MOD-TRANSCRIPTION — Транскрипция и управление разговорами
Лицензия: Платный
Модуль превращает звук в управляемый текст. Разговор (звонок, запись встречи, загруженный аудиофайл) заводится карточкой со ссылкой на аудио в объектном хранилище контура, ставится в очередь, и фоновый воркер прогоняет его через ASR-движок. Результат — не «простыня», а транскрипт из сегментов: у каждого свои таймкоды начала и конца, метка говорящего и текст. Сегменты читаются инкрементально (from_idx отдаёт только новые), поэтому длинную расшифровку можно тянуть по мере готовности, а не ждать целиком.
Движок распознавания выбирается конфигурацией: self-host Whisper в контуре или облачный OpenAI-совместимый endpoint — код у них общий, различаются только адрес, модель и ключ. Если движок не настроен, модуль честно отказывает, а не возвращает пустую заглушку. Тот же принцип у summary: текст сводки и ключевые фразы генерирует ИИ-слой ядра (TRANSCRIPTION_AI_URL), сам модуль LLM не запускает; каждая ключевая фраза обязана ссылаться на реальный номер сегмента, чтобы сводку можно было перепроверить по таймкоду, а при ненастроенном ИИ-слое приходит честный отказ.
Диаризация в модуле держится на метках говорящих в сегментах. В живом режиме метку присылает агент встречи вместе с окном аудио на внутренний эндпоинт /transcribe-chunk (закрыт общим секретом X-Internal-Token); для готовых записей OpenAI-совместимый движок меток не отдаёт, и говорящих размечают вручную — переименовать, слить двух в одного, привязать к сотруднику или контакту CRM. Поиск по разговорам — полнотекстовый Postgres с русской морфологией и подсветкой совпадения; семантический режим объявлен, но не реализован и отвечает честной ошибкой вместо выдуманной выдачи. Жизненный цикл задач транскрипции (в очереди / выполняется / готово / ошибка) транслируется в live-канал transcription через SSE.
Хранение разговоров ограничено: удаление разговора мягкое (с confirm=true), а очистка по сроку хранения — необратимая и тоже требует подтверждения, вычищая вместе с разговором транскрипт, summary, говорящих и задания.
Возможности
- Разговор как карточка: источник, ссылка на аудио, привязка к сущности (
entity_ref), язык - Асинхронная очередь транскрипции: постановка идемпотентна, обработка фоновым воркером
- Транскрипт сегментами: таймкоды начала и конца, метка говорящего, текст
- Инкрементальное чтение транскрипта:
from_idxотдаёт только новые сегменты,totalиnext_idxдля продолжения - Синхронное распознавание короткого фрагмента (base64, ~10 МБ) тем же движком — для длинного аудио остаётся асинхронный конвейер
- Выбор ASR-движка конфигурацией: self-host Whisper в контуре или облачный OpenAI-совместимый endpoint
- Честный отказ при ненастроенном движке — без пустых заглушек
- Живая транскрипция: агент встречи шлёт окна аудио с меткой говорящего на внутренний эндпоинт, закрытый общим секретом
- Разметка говорящих: переименование по всем сегментам, слияние двух говорящих, привязка к сотруднику или контакту CRM
- Summary и ключевые фразы через ИИ-слой ядра, каждая фраза со ссылкой на номер сегмента; честный отказ, если ИИ-слой не настроен
- Полнотекстовый поиск по разговорам с русской морфологией и подсветкой; семантический режим не реализован и отвечает честной ошибкой
- Административная выдача всех транскриптов встреч с пагинацией и фильтром по статусу
- Мягкое удаление разговора и необратимая очистка по сроку хранения — обе с обязательным
confirm=true - Live-события жизненного цикла заданий транскрипции по SSE (канал
transcription)
Основные MCP-инструменты
| Инструмент | Назначение |
|---|---|
transcription__describe_entities | Метаданные сущностей модуля без самих данных |
transcription__describe_blocks | Блоки холста для библиотеки MOD-CANVAS (список пуст) |
transcription__get_roles | Ролевая модель модуля транскрипции |
transcription__get_canvas_presets | Пресеты холстов (JSON-DSL) по роли |
transcription__subscribe_events | Каналы live-событий и путь SSE-потока |
transcription__conversation.create | Создать разговор для транскрипции аудио-источника |
transcription__conversation.get | Метаданные разговора |
transcription__conversation.list | Список и фильтр разговоров с пагинацией |
transcription__conversation.delete | Мягко удалить разговор и транскрипт (нужен confirm=true) |
transcription__conversation.search | Полнотекстовый поиск по разговорам; семантический режим не реализован |
transcription__transcription.enqueue | Поставить транскрипцию разговора в очередь (идемпотентно) |
transcription__transcription.get | Статус задачи транскрипции по заданию или разговору |
transcription__transcript.get | Транскрипт разговора: статус, язык, текст, сегменты; инкрементально через from_idx |
transcription__transcript.list_all | Все транскрипты встреч (админ-поверхность): пагинация и фильтр по статусу |
transcription__transcribe_audio | Синхронно распознать короткий аудио-фрагмент (base64) тем же движком |
transcription__speaker.list | Говорящие разговора: наблюдаемые в сегментах, переименованные, привязанные |
transcription__speaker.rename | Переименовать говорящего во всех сегментах разговора |
transcription__speaker.merge | Слить двух говорящих: сегменты переносятся на целевого |
transcription__speaker.assign | Привязать говорящего к сотруднику или контакту CRM |
transcription__summary.generate | Сгенерировать summary и ключевые фразы через ИИ-слой ядра, со ссылками на сегменты |
transcription__summary.get | Получить готовое summary и ключевые фразы |
transcription__retention.purge | НЕОБРАТИМО удалить разговоры старше срока хранения (нужен confirm=true) |
Блоки холста
Собственных блоков холста у модуля нет: describe_blocks намеренно возвращает пустой список. MOD-TRANSCRIPTION — headless-инфраструктура распознавания речи, её результаты показываются виджетами модуля видеовстреч.
Связанные модули
- MOD-MEETINGS-VIDEO — записи видеовстреч как источник аудио и место показа транскриптов
- MOD-TEL — телефония: записи звонков, которые ставятся на расшифровку
- MOD-STT-WHISPER — локальное распознавание речи в контуре
- MOD-CALL-COACHING — оценка звонков по расшифрованному тексту
- MOD-MEETING-SCRIPTS — сценарии совещаний и протоколы поверх транскрипта
- MOD-CRM — карточки, к которым привязываются разговоры и говорящие