Запись и расшифровка совещаний локально на компьютере, голосовой ввод текста, обработка аудио- и видеофайлов. Программа пишет микрофон и звук звонка, распознаёт речь, обрабатывает записи или ссылки, разводит реплики по говорящим, делает из стенограммы документы (протоколы, сводки) и складывает в заметки (*.md)
Всё распознаётся локально. Звук совещаний никуда не уходит: модели распознавания работают на вашем компьютере, без интернета. В сеть уходит только текст стенограммы если вы собираете из неё документ через Claude CLI или облачный сервис по API-ключу. Способ выбирается в настройках.
Записи с телефона - возможность скинуть файлы с телефона через локальную сеть на локальный сервер программы (телефон открывает в браузере по QR-коду и отправляет файл). Автообработка файлов из отслеживаемых папок по правилу (например общие папки для записей, обновляемые файлами с телефона - LocalSend, «Связь с телефоном», папка облачного хранилища или загрузки Telegram) Приложения на телефон не нужно;
- Windows 10 или 11;
- 8 ГБ памяти (16 — комфортно), около 1 ГБ на диске вместе с одной моделью распознавания (с полными весами — около 2 ГБ, с двумя моделями — около 3 ГБ);
- микрофон; для записи собеседников — звук, который выводит компьютер;
- для документов — Claude CLI по подписке Claude или API-ключ любого облачного сервиса / роутера.
Всё локальное — поиск речи, распознавание, разметка говорящих — считает
onnxruntime. Разметка говорящих работает без регистрации и токенов: модель
лежит в репозитории. Есть и релиз с разметкой через pyannote — ему нужны
torch и бесплатный токен Hugging Face; какой релиз собран, решает release.json.
Как выбрать модели распознавания и подключить документы — «Как устроен Hagen», раздел 4.
На странице Releases выпуски двух видов. Выберите один; что менялось от выпуска к выпуску — в CHANGELOG.md:
Лёгкий — рекомендуется (_compact или без пометки) |
Полный — _full_int8 или _full_fp32 |
|
|---|---|---|
| Файл | Hagen-v<версия>-windows.zip, около 70 МБ — берите самый свежий |
Hagen-v<версия>-windows-full-int8.zip, около 0,7 ГБ, или …-full-fp32.zip |
| Что внутри | код, Python 3.12, модели разметки говорящих и поиска речи | всё сразу: ещё библиотеки, ffmpeg и модель распознавания |
| Что докачивается при установке | около 0,6 ГБ: библиотеки с PyPI, ffmpeg с GitHub и модель с Hugging Face | ничего |
| Точная модель | сжатые веса (полные — кнопкой в Настройках) | _full_int8 — сжатые веса (полные — в Настройках), _full_fp32 — полные веса (сжатые — в Настройках) |
| Кнопка «Проверить обновления» | есть | есть |
Любая сборка имеет выбор и докачку моделей в настройках. Сборки Full приведены лишь для удобства и не отличаются от компактных сборок по коду. В настройках можно выбрать более быструю (giga am v3_e2e_ctc) или более точную (giga am v3_e2e_rnnt) модель. Обе работают по-своему хорошо - зависит от задачи и от мощности компьютера. Быстрая (ctc) меньше нагружает процессор — примерно на 30 % меньше, чем точная со сжатыми весами, и вдвое меньше, чем точная с полными, — и быстрее выдаёт текст. Точная со сжатыми весами (rnnt int8) меньше всех занимает памяти - около 0,3 ГБ против 0,9 ГБ у быстрой и у точной с полными весами (rnnt fp32), и также меньше грузит процессор, чем полновесная rnnt fp32, — примерно на 25 %. Точные модели распознают слово с учётом уже распознанных, поэтому ошибаются реже; быстрая угадывает каждый звук отдельно.
Лёгкий. Распакуйте в постоянное место (например, C:\Apps\Hagen,
не на рабочий стол и не в облачную папку) и запустите Ustanovka.cmd. Он
докачает библиотеки, ffmpeg и модель распознавания из их открытых источников
— PyPI, GitHub, Hugging Face. Всё докачивается из версий, на которых
выпуск проверен: они записаны в описи lock.json, каждый файл сверяется
с контрольной суммой. Прервалась установка — запустите Ustanovka.cmd ещё раз.
Полный (выпуск с пометкой _full_int8 или _full_fp32 — веса точной
модели внутри, сжатые или полные; у старых — _full) — всё уже в архиве.
Распакуйте и запустите Ustanovka.cmd: он ничего не скачивает, только
настраивает пути и создаёт ярлык. Если PyPI, GitHub и Hugging Face с вашего
компьютера открываются, удобнее лёгкий; обновляются оба одинаково.
Дальше — Hagen.cmd или ярлык «Hagen».
Из исходников (этот репозиторий): то же самое, только Python 3.12
Ustanovka.cmd возьмёт установленный или скачает сам (15 МБ).
Быстрая модель распознавания, английская модель и браузер для входа в SharePoint качаются по кнопке, когда понадобятся.
Обновление (с v0.9.2) — «Настройки → О программе → Проверить обновления». Программа сама в интернет не ходит, только по этой кнопке. Скачивается архив нового выпуска и то, что в нём поменялось; замена — при следующем запуске программы. Если GitHub с этого компьютера не открывается, архив можно скачать где угодно и выбрать кнопкой «Установить из файла…».
Ustanovka.cmd — установить или настроить папку программы
Hagen.cmd — запустить
Портативная папка: программа ничего не пишет в систему и переносится копированием.
Записи лежат в data\, настройки — в settings.json, журнал — в logs\.
.venv\Scripts\python.exe tests\run_all.py --fast быстрые: без моделей, звука, браузера и сети
.venv\Scripts\python.exe tests\run_all.py всё, кроме черновых сценариев
.venv\Scripts\python.exe tests\run_all.py --only t71,t85
.venv\Scripts\python.exe tests\run_all.py --list что есть и кому что нужно
Проверки сценарные: каждая поднимает нужный кусок программы и проверяет
поведение, а не внутренности. Те, которым нужны модели, звуковые устройства,
окна Windows или сеть, в --fast пропускаются с указанием причины.
Служба на FastAPI слушает 127.0.0.1:8787, окно — обычная страница в WebView2.
Распознавание — GigaAM v3 в ONNX через onnx-asr (точная модель со сжатыми или
полными весами, по желанию — быстрая для звонков и голосового ввода), разметка
говорящих — модель pyannote community-1 в ONNX с группировкой VBx на numpy (или
сам pyannote — в релизе с ним), поиск речи — Silero VAD в ONNX. Всё на
onnxruntime, без torch.
Подробнее — «Как устроен Hagen».
- Документы локальными языковыми моделями: подключение настраивается в программе. Туда же — Codex CLI и другие агенты с командной строкой.
- Теги и проекты: доработка, плотнее обмен с Obsidian и Todoist.
- правка (оптимизация) промптов для создания документов / сводок.
Программа распространяется на условиях свободной лицензии GNU General Public License v3.0. Исходный текст — в файле LICENSE.
- Правообладатель и архитектор проекта: @prankhitevil.
- Поддержка: проект личный, отвечаю по возможности. Pull request'ы не принимаются, пожелания и ошибки — в Issues, см. CONTRIBUTING.md.
- Технический ассистент: Claude (Anthropic).
- Как это делалось: программа задумана, проверена и отлажена человеком. Написание кода, перестройка и рутинные операции выполнены ИИ-ассистентом под полным замыслом и контролем автора. Подробнее — «Как устроен Hagen», раздел 6.
Hagen — local meeting recorder and transcriber for Windows. Records the microphone and call audio, also processes existing recordings and links, transcribes speech with GigaAM, assigns speakers with the pyannote community-1 model running on ONNX Runtime (no account or token needed), turns the transcript into documents and stores them in an Obsidian vault. Speech recognition runs entirely on the local machine; audio never leaves the computer. Interface and documentation are in Russian.