For the complete documentation index, see llms.txt. This page is also available as Markdown.

Локальная транскрибация

Локальная транскрибация звонков в MikoPBX: записи остаются внутри PBX, распознавание выполняется на Mac-обработчике, а готовые расшифровки доступны в интерфейсе модуля и через API.

Модуль локальной транскрибации распознает речь в записанных звонках MikoPBX и сохраняет готовую расшифровку как диалог. Аудиофайлы не отправляются во внешние облачные сервисы: PBX создает очередь заданий, а отдельное приложение Local STT Worker скачивает назначенную запись, распознает ее локально через WhisperKit и отправляет результат обратно в MikoPBX.

PBX-модуль работает внутри MikoPBX. Отдельное приложение Local STT Worker выпускается для Mac на Apple Silicon. Подробное описание приложения приведено в статье Local STT Worker.

Пример результата транскрибации

Как проходит обработка

  1. Звонок завершается, и MikoPBX сохраняет запись разговора.

  2. Фоновый процесс модуля находит запись и создает задание.

  3. Local STT Worker получает lease задания.

  4. PBX отдает назначенному обработчику файл записи.

  5. Worker подготавливает аудио, запускает WhisperKit/Core ML и отправляет сегменты записи разговора на транскрибацию.

  6. Модуль фильтрует результат, сохраняет расшифровку и публикует событие для интеграций.

Если Worker перестает продлевать lease, задание возвращается в очередь.

Требования и совместимость

  • MikoPBX 2025.1.1 или новее.

  • macOS 14.0 или новее на Mac с Apple Silicon.

  • Включенная запись разговоров для нужных маршрутов, очередей или сотрудников.

  • Сетевой доступ от Mac к веб-интерфейсу MikoPBX.

  • Интернет при первой загрузке модели с Hugging Face. После загрузки модели для обработки достаточно доступа к PBX.

Установка модуля

  1. Откройте веб-интерфейс MikoPBX.

  2. Перейдите в раздел МодулиМаркетплейс модулей.

Маркетплейс модулей
  1. Найдите Модуль локальной транскрибации и установите его.

  2. Откройте список установленных модулей и включите модуль.

Включение модуля
  1. Нажмите кнопку настроек справа от версии модуля.

Переход на страницу модуля

Вкладка «Настройки»

Настройка
По умолчанию
Назначение

Язык по умолчанию

Автоматически

Языковая подсказка для WhisperKit. В автоматическом режиме Worker определяет язык по распознанным сегментам.

Базовый интервал проверки, сек.

30

Интервал сканирования новых CDR-записей. Диапазон: 303600.

Максимальная длительность распознаваемой записи, мин.

60

Записи с известной длительностью выше лимита пропускаются. Диапазон: 11440.

Звонков за один проход

200

Количество CDR, проверяемых за один цикл. Диапазон: 11000.

Время ожидания задания, сек.

1800

Срок lease без успешного продления. Диапазон: 6086400.

Период обработки записей

30 дней

За какой период искать завершенные звонки с записью: 1, 7, 30, 90, 180, 365 дней или все записи.

Срок хранения расшифровок

1 год

Через сколько удалять результаты транскрибации: 30, 90, 180, 365 дней или никогда.

Термины для распознавания

пусто

Названия компаний, продуктов, систем и другие слова-подсказки.

Период обработки не может превышать срок хранения расшифровок. Срок хранения отсчитывается от завершения распознавания; CDR и исходные аудиозаписи не удаляются.

При изменении периода обработки позиция сканирования сбрасывается, чтобы модуль пересмотрел историю в новом диапазоне.

Устарело

Раздел настроек модуля

Термины для распознавания

Термины можно вводить через запятую, точку с запятой или с новой строки, а также загрузить из TXT-файла. Модуль удаляет дубликаты и передает Worker до 100 терминов длиной до 120 символов каждый.

Кнопка Скачать шаблон сохраняет пример TXT-файла.

Термины для распознавания

Параметры обработки аудио

Профиль декодирования WhisperKit, нормализация, VAD, максимальная длительность сегмента и перекрытие централизованно хранятся в MikoPBX и передаются зарегистрированным обработчикам. В текущей версии расширенный блок этих параметров скрыт, поэтому настраивать их через интерфейс модуля или Worker нельзя.

Вкладка «Каталог моделей»

Здесь выбирается модель, которую PBX передает в новые задания.

Модель
Когда выбирать
Особенности

Base

Тесты и слабые Mac

Самая быстрая, но менее точная на шуме и коротких фразах.

Small

Большая очередь

Быстрая модель с приемлемым качеством.

Medium

Повседневные звонки

Баланс качества и нагрузки.

Large V3 Turbo

Рабочая транскрибация (рекомендуемая модель)

Рекомендуемый баланс качества и скорости.

Podlodka Turbo

Русская разговорная речь

Core ML-модель smkrv/whisper-podlodka-turbo-coreml.

Large V3

Максимальное качество

Самая ресурсоемкая и медленная модель.

После выбора нажмите Сохранить модель.

Выбор модели

Пользовательская модель Hugging Face

Можно добавить собственную WhisperKit/Core ML-совместимую модель. Укажите репозиторий owner/repository, имя runtime-модели, название, язык, лицензию, ярлыки, ссылку и описание.

Добавление модели Hugging Face

Вкладка «Очередь»

Статус
Значение

В очереди

Задание ждет свободный Worker.

В работе

Задание закреплено за Worker действующим lease.

Готово сегодня

Задания, завершенные за текущий день.

Ошибки

Неуспешные задания, которые можно вернуть в очередь.

Ожидают файл записи

CDR найден, но файл еще не появился или недоступен для чтения.

Пропущенные записи

Записи, которые не будут обработаны без изменения условий.

Причины пропуска включают превышение максимальной длительности, фиксированного предела 500 MiB, отсутствие файла по истечении срока ожидания и выход звонка за период обработки. Неизвестная или нулевая длительность CDR сама по себе не блокирует создание задания.

Вид очереди в интерфейсе модуля

Вкладка «Обработчики»

На этой вкладке создаются ключи доступа, отображаются зарегистрированные Mac и проверяется их совместимость.

Ключ показывается только один раз после создания. Один ключ не может быть привязан сразу к нескольким worker_uid; для нескольких Mac создайте отдельные ключи. После удаления ключа связанный Worker необходимо зарегистрировать с новым токеном.

Таблица обработчиков показывает имя, UID, IP, модель, версию приложения, версию Worker API, совместимость, состояние и последнюю активность. Worker с неподдерживаемой версией API отображается как несовместимый и офлайн.

В верхней части вкладки предусмотрен блок загрузки приложения для macOS. Пока сборка не опубликована в этом блоке, кнопка загрузки остается недоступной.

Устарело

Прежний вид вкладки обработчиков

Вкладка «Расшифровки»

Список можно фильтровать по диапазону дат звонков. В таблице отображаются дата, call_id, номер задания, файл, язык, длительность, модель и время создания результата.

Карточка диалога содержит проигрыватель и скачивание записи, реплики с таймкодами, отдельные колонки каналов для стерео, сгруппированную диагностику, исходную техническую информацию и JSON расшифровки. Нажатие на реплику переводит проигрыватель к соответствующему моменту.

Список расшифровок
Вид карточки расшифровки

Вкладка «Журнал»

Журнал содержит структурированные технические события модуля и обработчиков без расшифровок, аудиозаписей и секретов. Доступны периоды 1h, 3h, 12h, 1d и весь журнал, фильтры по уровню и компоненту, полнотекстовый поиск и обновление списка. В интерфейсе показывается не более 1000 последних подходящих событий.

Обновление модуля и Worker

При переходе на Worker API v2 соблюдайте порядок:

  1. Обновите ModuleLocalSpeechToText до версии 1.45.

  2. Старые обработчики временно станут несовместимыми и офлайн; активные lease v1 вернутся в очередь без увеличения числа попыток.

  3. Обновите Local STT Worker до версии 1.7 build 34.

  4. Откройте Диагностика или Настройки Worker и повторите проверку подключения.

Очередь, готовые результаты, настройки, UID обработчиков и существующие API-ключи сохраняются. Обновление MikoPBX Core сверх версии 2025.1.1 для этого перехода не требуется.

REST API

Базовый путь:

Расшифровки для интеграций

  • GET /transcripts?limit=50&offset=0&date_from=YYYY-MM-DD&date_to=YYYY-MM-DD

  • GET /transcripts/{result_id}

  • GET /transcripts/events?cursor=created_at:event_id&limit=100

  • GET /call-transcripts/{call_transcript_id}?revision={revision}

  • GET /call-transcripts/events?cursor={cursor}&limit=100

transcripts/events публикует идемпотентные события transcript.completed. Детальная расшифровка содержит стабильные segment_id, исходные сегменты, объединенные реплики turns и простой текст.

Worker API v2

Worker сначала вызывает GET /worker-api-contract, а затем передает заголовок X-MikoPBX-Worker-API-Version: 2 во всех запросах Worker API.

Операция
Endpoint

Регистрация

POST /workers

Профиль обработки

GET /worker-processing-settings

Получение lease

POST /job-leases

Скачивание записи

GET /job-recordings/{job_id}

Продление lease

PATCH /job-leases/{job_id}

Освобождение lease

DELETE /job-leases/{job_id}

Отправка результата

PUT /job-results/{job_id}

Отправка ошибки

PUT /job-failures/{job_id}

Last updated

Was this helpful?