О проекте
Бот принимает аудио и возвращает текстовый файл с таймкодами и разделением по спикерам. Длинная обработка отслеживается через проверку статуса.
Ключевая особенность решения — использование профессионального ИИ-движка Soniox, который используется для распознавания речи и разделения реплик по спикерам (разделение текста по спикерам: Спикер 1, Спикер 2 и т.д.) с точными таймкодами.
Задача бизнеса
Ручная расшифровка аудиозаписей совещаний, интервью или лекций — трудоемкий процесс и требует времени на прослушивание и проверку.
Стандартные бесплатные инструменты часто выдают «сплошную простыню» текста без знаков препинания и не умеют различать голоса разных людей, что делает протоколирование встреч невозможным.
Задача: Создать инструмент, который автоматически:
- Принимает аудиофайл в удобном мессенджере.
- Распознает речь с высокой точностью.
- Определяет, кто и когда говорил (диаризация).
- Возвращает готовый текстовый файл .txt.
Как работает решение
Воркфлоу построен в n8n и реализует паттерн Asynchronous Polling (Асинхронный опрос), так как транскрибация длинных файлов занимает время.
Этап 1: Захват данных (Ingest)
- Триггер: Пользователь отправляет аудиофайл или голосовое сообщение боту в Telegram.
- Загрузка: Система получает файл через Telegram API и отправляет его на сервер распознавания (Soniox API).
Этап 2: Инициация задачи (Processing)
- n8n отправляет запрос на начало транскрибации с параметрами:
- enable_speaker_diarization: true (включить разделение по голосам).
- enable_language_identification: true (автоопределение языка).
Этап 3: Умное ожидание (Polling Loop)
Поскольку обработка аудио длится от нескольких секунд до минут, реализован цикл проверки статуса:
- Проверка: Система спрашивает API: «Готово ли?»
- Условие (IF):
- Если статус completed — переход к следующему шагу.
- Если статус processing — переход в режим ожидания (Wait 15 секунд) и повторный запрос. Так сценарий отслеживает длительную обработку файлов через повторные запросы статуса.
Этап 4: Пост-обработка данных (Data Parsing)
Полученный «сырой» JSON-ответ от нейросети проходит через кастомный JavaScript-код:
- Алгоритм группирует разрозненные токены (слова) в цельные предложения.
- Определяет смену спикера.
- Форматирует таймкоды в читаемый вид [MM:SS].
- Собирает итоговый текст в формате: [00:15 -> 00:42] (Speaker A): Текст реплики…
Этап 5: Доставка результата
- Сформированный текст конвертируется в физический файл transcript.txt.
- Бот отправляет этот документ пользователю в Telegram.
Технологии и интеграции
| Категория | Технология | Роль в проекте |
|---|---|---|
| Backend / Logic | n8n | Оркестрация процессов, циклические проверки |
| ИИ Service | Soniox API | Speech-to-Text движок корпоративного уровня |
| Scripting | JavaScript (ES6) | Парсинг JSON, форматирование таймкодов |
| Interface | Telegram Bot API | Взаимодействие с пользователем |
Что изменилось
На выходе — текстовый файл с репликами спикеров и таймкодами. Точность распознавания зависит от исходной записи; аудио обрабатывается внешним API Soniox.



