Звук сегодня является важным интерфейсом. Работа с чат-ботом своей «ИИшечки» упрощается в разы. Кроме того, помимо вайб-кодинга — есть еще и обычная жизнь — с совещаниями, лекциями, собраниями, которых столько, что не успеваешь фиксировать все, о чем было обсуждение. С этими мыслями, а также увидев потрясающий по своей внешней эстетике приборчик — был заказан ИИ-диктофон PLAUD. Но. Ограничения для России такие, что заплатить за сервис (ок 20 тыс. руб.) — не получилось. Но, уже появилось желание и даже потребность в удобном цифровом распознавании. Конечно, были установлены все простые приложения на телефон, а также распознавание в Telegram, но все это было не то. Сформилировал требования, которые у меня есть:
-
Уметь работать с длинными аудиофайлами — до нескольких часов
-
Поддерживать русский язык на приемлемом уровне.
-
Не зависеть от зарубежной оплаты и подписок.
-
Иметь обычные файлы на выходе: Markdown, папки, Obsidian.
Сначала я хотел решить задачу готовым устройством.
1. Купить другой ИИ-диктофон
Стал смотреть аналоги на маркетплейсах. Сейчас таких устройств уже много: отдельные диктофоны с ИИ, мини-рекордеры, гаджеты с приложениями, устройства в разных форм-факторах.
По ценам встречаются разные уровни:
|
Тип устройства |
Ориентир по цене |
Что смущает |
|---|---|---|
|
Простые ИИ-диктофоны |
6–8 тыс. руб. |
закрытое приложение, непонятное качество распознавания |
|
Более продвинутые модели |
12–15 тыс. руб. |
всё равно закрытая экосистема |
|
PLAUD и близкие устройства |
около 20 тыс. руб. и выше |
подписка, облако, ограничения по оплате |
Но по мере погружения в этот мир стало понятно, что дело даже не в стоимости гаджета, а в логике организации работы: устройство + приложение + облачный сервис. Что именно происходит с аудио, какие модели используются, можно ли забрать данные в удобном формате, можно ли заменить модель распознавания — обычно неизвестно или невозможно.
Для бытовых заметок это может быть нормально. Для лекций, рабочих встреч и длинных записей мне хотелось больше контроля.
2. Решение сделать свой сервис на VDS
У меня уже был небольшой VDS. Поэтому я решил проверить, можно ли собрать собственный конвейер:
телефон → аудиофайл → VDS → распознавание → Markdown → постобработка → Obsidian
Железо сервера не специализированное: 12 CPU, без GPU. Большие модели на таком сервере либо не запускаются, либо работают слишком медленно для регулярного использования.
Важным также представлялся вопрос качества русского языка. Мне нужно было не просто получить любой транскрипт, а получить качественный текст, который потом можно читать и использовать.
Аппаратная часть
Вместо отдельного диктофона я купил компактный микрофон-петлички с подключением к телефону через USB Type-C. Цена — примерно 1500 рублей.
Даже совсем недорогие петлички дают звук для распознавания лучше, чем встроенный микрофон телефона или микрофон наушников, кроме того, можно положить два микрофона в разных точках офиса.
Для моих задач это оказалось практичнее, чем отдельный ИИ-диктофон. Одно из важных решений была установка, что само устройство записи не обязано быть «умным». Умной должна быть обработка. И, конечно, ориентир на open sources. Никаких закрытых и платных систем.
Выбор модели распознавания
Дальше началась основная техническая часть: выбрать STT-модель, которая нормально работает на русском и не убивает мой VDS.
Wisper — Популярная экосистема, хорошее качество русского языка, можно запускать локально, но на CPU длинные записи обрабатываются настолько медленно, что каждая втора сессия падала.
Vosk — это очень легкая open-source-библиотека для распознавания мультиязычной речи, которая работает полностью офлайн. Скорость высочайшая! Для английского — лучше и не придумать, но качество русского языка не просто проигрывает, а, на мой личный взгляд, не выдерживает критики. Короткие рубленные предложения, потеря контекста, маленький словарный запас.
GigaSTT — из всех найденных моделей, неожиданно, GigaSTT показала очень хорошую скорость при приемлемом качестве распознавании! Файл в 15 минут распознается (на моем оборудовании) те же 15 минут.
Но оказалось, что аппетит приходит во время еды. GigaSTT — это транскрибатор. Он решает первый слой задачи — превращает аудио в текст. Но хотелось и короткого конспекта, и как то мочь настраивать логику распознавания, раз уж замахнулся на собственную систему.
Поэтому поверх распознавания я сделал ещё несколько слоёв, которые позволяю запускать и переработку текстов, и синхронизировать работу с файлами, удобным для меня образом. Cursor мне в помощь и поехали.
Что глобально хотелось достичь?
-
Умение работать с существующими файлами, а не только записанными с помощью системы
-
Работа с файлами любого объема
-
Формат Markdown и возможность не просто увдиеть файлы в папке, а иметь интерфейс для быстрой их оценки
-
Работа на том оборудовании, которое мне доступно
-
Простота — без сложной многодневной разработки и настроек.
Сейчас система состоит из четырёх слоёв.
1. Распознавание речи2. Постобработка текста3. Управление моделями и скиллами4. Файловый обмен и Markdown-база
Слой 1. Распознавание речи
На вход подаётся аудиофайл. Это может быть новая запись с телефона или уже существующий файл. Вход — это «положить в папку файл». У меня их много, и поэтому решение было именно такое, без организации сложной загрузки.
Слой 2. Постобработка
Сырой транскрипт читать неудобно. Там много повторов, устной речи, неполных фраз, технического мусора и не всегда понятная структура.
Поэтому после распознавания запускается второй слой с постобработкой.
Решение простое — добавлять к существующей расшифровке — еще два файла. С коротким резюме (abstract) и файл со структурированными блоками (executive)
После нескольких проб добавил несколько проходов через LLM-рецензента (локальная Ollama, qwen 2.5). Скрипт берёт распознанный Markdown, отправляет его в модель, получает результат, затем прогоняет его через проверку качества и при необходимости переписывает.
Это не идеальная редактура, но результат уже полезнее сырого транскрипта.
Слой 3. Модели и скиллы
На моём сервере нельзя гонять тяжёлые модели. Поэтому сделал возможность выбирать модель и режим обработки, поскольку разные задачи требуют разных профилей. И скиллы, конечно.
Команды можно добавлять прямо в текст записи. После распознавания система видит эти маркеры и выбирает нужный режим постобработки. Это требует определенной концентрации перед записью — надо про это явно сказать, но, думаю, что лично для меня — это посильная задача.
Слой 4. Файлы, синхронизация и Obsidian
Я не хотел делать отдельное большое приложение. Мне нужен был понятный интерфейс, который уже есть в моём рабочем процессе. Мне привычно и удобно работать с Markdown. Ну и конечно, Obsidian. Организовал обмен файлами между устройствами с помощью Syncthing
Файлы синхронизируются между:
-
телефоном;
-
сервером;
-
настольным компьютером;
-
Obsidian.
Применяемые системы
Система
Где используется
Роль
Источник
Fossify Voice Recorder
Android
Запись WAV/MP3/M4A в локальную папку
Syncthing
Android, сервер, Windows/ПК
Двусторонняя и односторонняя синхронизация папок
Syncthing-Fork
Android
Android-обёртка Syncthing с фоновым режимом
GigaSTT
Сервер, Docker
Локальное русское STT через REST API
Docker
Сервер
Изоляция GigaSTT, локальный порт
127.0.0.1:9876FFmpeg
Сервер
Нарезка и нормализация длинных аудиофайлов
jq
Сервер
Разбор JSON-ответов GigaSTT
incron
Сервер
Автозапуск обработки при появлении Markdown-файла
Ollama
Сервер
Локальная LLM-постобработка расшифровок
Qwen 2.5 3B
Сервер, Ollama
Быстрая лёгкая модель для CPU-режима
Vikhr-YandexGPT-5-Lite-8B-it GGUF
Сервер, Ollama
Более крупная русскоязычная модель для сравнения качества
Obsidian
Android, Windows/ПК
Чтение и ведение синхронизированных Markdown-заметок
Markor
Android
Лёгкий Markdown-ридер/редактор для папки расшифровок
Ключевые папки:
audio_in → входящие аудиофайлыaudio_out → транскрипты и обработанные заметки
В таком виде это не «коробочный» UX, но для меня он удобен: я могу читать, править, связывать заметки, добавлять теги и использовать всё это как часть своей базы знаний.
Что получилось
Репозиторий лежит здесь:
https://github.com/voodoo2serg/recognition
Сейчас система умеет:
-
принимать аудиофайлы;
-
работать с длинными записями;
-
распознавать русскую речь через GigaSTT;
-
сохранять результат в Markdown;
-
делать abstract и расширенный конспект;
-
использовать разные модели постобработки;
-
переключать режимы через текстовые/голосовые команды;
-
синхронизировать результаты через обычные папки;
-
работать с Obsidian и Markdown-редакторами.
Быстрый старт
На сервере:
git clone https://github.com/voodoo2serg/recognition.gitcd recognition./scripts/install-server.sh
Проверка:
curl http://127.0.0.1:9876/health./scripts/healthcheck.sh
Я использую связку с Syncthing и Obsidian/Markor, но это не обязательное требование. Главное — чтобы аудиофайлы попадали во входную папку, а Markdown-результаты возвращались обратно.
Ограничения
Это не коробочный продукт. Но зато систему можно адаптировать под свои папки, устройства и привычки.
Что сейчас не идеально:
-
На CPU всё работает медленнее, чем хотелось бы.
-
Интерфейс файловый, без красивой веб-панели.
-
Постобработка зависит от качества локальной LLM.
Что стоит улучшить
Сейчас делаю Телеграм-бота. Дальше него не пойду, но, очевидно, что если появится веб-интерфейс, позволяющий загрузить аудио, открыть транскрипт, запустить повторную постобработку и в принципе реализовать LoRa -конечно, будет хорошо.
Еще очередь задач — сейчас логика сделана максимально просто. Для одного пользователя этого хватает. Если подключать несколько телефонов или несколько преподавателей, нужна нормальная очередь — Redis, RQ, Celery, отдельные статусы задач и настройка работы при повторных попытках при ошибках.
Плюс «коробочность» — полноценный самодостаточный файл для установки, без сложных настроек целого зоопарка.
Вывод
Я хотел использовать PLAUD, но не смог оплатить сервис и поэтому магей вайб-кодинга я сделал свое. Это рабочая лошадка, которая уже помогает мне с протоколами совещаний и, главное, с голосовыми заметками. Проект открыт, код лежит на GitHub.
Репозиторий:
https://github.com/voodoo2serg/recognition
ссылка на оригинал статьи https://habr.com/ru/articles/1045154/