> For the complete documentation index, see [llms.txt](https://docs.mikopbx.com/mikopbx/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mikopbx.com/mikopbx/modules/miko/module-local-speech-to-text/miko-ai-worker.md).

# Local STT Worker

Local STT Worker для macOS: подключение к MikoPBX, локальная транскрибация, история, модели, диагностика, настройки и обновление Worker API.

**Local STT Worker** - приложение для локального распознавания записей звонков из MikoPBX. Оно скачивает одно назначенное задание, подготавливает аудио, запускает выбранный в MikoPBX движок и отправляет на станцию сегменты с таймкодами и техническую диагностику.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FC7WECu4qVhaZchmYEIct%2FSTTWorkerTranscribationProcess.png?alt=media&amp;token=c7eb366d-9827-4403-9640-b0949b51d391" alt=""><figcaption><p>Вкладка "Обзор" в обработчике STT</p></figcaption></figure>

### Требования

* Mac с Apple Silicon.
* macOS 14.0 или новее.
* MikoPBX 2025.1.1 или новее.
* Доступ к PBX по сети.
* Доступ в интернет для первой загрузки выбранной модели и ее служебных файлов.

### Модели

Модель выбирается в MikoPBX: **Модули** → **Локальная транскрибация** → вкладка **Каталог моделей**, платформа **macOS**. Обработчик скачивает модель при первом задании и хранит ее локально (см. раздел «Модели» в приложении ниже). Модели работают на Core ML с аппаратным ускорением Apple.

| Модель                     | Когда выбирать                          | Особенности                                                                                   |
| -------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------- |
| **Parakeet TDT 0.6B v3**   | Большинство звонков                     | Модель по умолчанию. Быстро распознает длинную речь на 25 языках через движок Parakeet.       |
| **Whisper Large V3 Turbo** | Нужна проверенная универсальная модель  | Хороший баланс скорости и качества для обычных многоязычных звонков через WhisperKit.         |
| **Whisper Podlodka Turbo** | Почти все разговоры проходят на русском | Дообученная версия Whisper для русской речи из `smkrv/whisper-podlodka-turbo-coreml`.         |
| **Whisper Large V3**       | Качество важнее скорости                | Самая тяжелая модель каталога для сложных и неразборчивых записей. Работает через WhisperKit. |

### Первый запуск

{% hint style="info" %}
Подробнее про онбоардинг можно прочитать [здесь](https://docs.mikopbx.com/mikopbx/modules/miko/module-local-speech-to-text/pages/2WenauKLwVRPlJl4LHfA#shag-1.-yazyk).
{% endhint %}

Онбоардинг состоит из трех шагов:

1. **Выбор языка** - русский или английский интерфейс. После смены языка приложение может предложить перезапуск и продолжит настройку после запуска.
2. **Подключение к MikoPBX** - адрес `https://...`, имя Worker и токен с вкладки **Обработчики**. В дополнительных настройках находятся проверка TLS, собственный CA и UID.
3. **Завершение** - проверка готовности MikoPBX и Speech to Text, настройка запуска при входе и переход в приложение.

### Навигация

| Раздел          | Назначение                                                                            |
| --------------- | ------------------------------------------------------------------------------------- |
| **Обзор**       | Состояние Worker, подключение, текущая работа, готовность системы и последние звонки. |
| **История**     | Локальная история заданий этого Mac с фильтрами и поиском.                            |
| **Модели**      | Локально загруженные Core ML-модели WhisperKit и Parakeet и размер хранилища.         |
| **Диагностика** | Проверка подключения, UID, heartbeat и локальные события.                             |
| **Настройки**   | Подключение к MikoPBX и параметры, относящиеся только к этому Mac.                    |

### Раздел «Обзор»

Верхний блок показывает одно из основных состояний:

| Состояние               | Значение                                                  |
| ----------------------- | --------------------------------------------------------- |
| **Все работает**        | Worker подключен и автоматически проверяет очередь.       |
| **Расшифровка звонка**  | Выполняется активное задание.                             |
| **Требуется внимание**  | Возникла ошибка подключения, совместимости или обработки. |
| **Готов к запуску**     | Подключение настроено, но Worker остановлен.              |
| **Требуется настройка** | Не хватает адреса PBX, токена или регистрации.            |

Основная кнопка меняется в зависимости от состояния: **Запустить обработчик**, **Остановить обработчик** или **Открыть настройки**. При остановке новые звонки остаются в очереди MikoPBX.

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

Во время активной работы отображается текущий этап и прогресс:

1. проверка контракта и регистрация;
2. получение lease задания;
3. скачивание записи;
4. анализ и подготовка аудио;
5. выбор движка, загрузка или открытие модели;
6. локальная транскрибация через Parakeet или WhisperKit;
7. отправка результата или ошибки;
8. удаление временных файлов.

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

### Раздел «История»

История содержит задания, которые получил именно этот Mac. Это не общий список расшифровок PBX.

Доступны периоды **24 часа**, **7 дней** и **30 дней**, фильтры по завершенным, проблемным и активным заданиям, а также поиск по `call_id`. Строку можно раскрыть для просмотра этапов и технических данных; из проблемного задания можно перейти в **Диагностика**.

Локальная история сохраняется между запусками приложения. Готовая расшифровка и запись разговора по-прежнему хранятся и управляются на стороне MikoPBX.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FzCgazCDNzgVT4TGfmnZb%2FSTTNEWHistory.png?alt=media&amp;token=114d95ae-1ac9-473d-934e-14f9c7a1c5b7" alt=""><figcaption><p>Раздел "История" в STT обработчике</p></figcaption></figure>

### Раздел «Модели»

Модель для новых заданий выбирается в MikoPBX на вкладке **Каталог моделей**. Worker синхронизирует выбранную модель с PBX и автоматически скачивает требуемые файлы при первом задании.

Раздел показывает:

* количество моделей и общий размер;
* размер служебных данных;
* список локально загруженных моделей;
* расположение модели в Finder.

Для Parakeet раздел может показывать два набора файлов: **ASR** с Core ML-моделью для распознавания и **Tokenizer**, который используется при подготовке подсказок из списка терминов. Оба набора относятся к одной модели.

Кнопки **Обновить** и **Открыть папку** перечитывают хранилище и открывают его в Finder. Ненужную локальную копию можно удалить только после остановки Worker. Если модель снова понадобится, она будет загружена повторно.

{% hint style="info" %}
Первая обработка новой модели занимает больше времени из-за загрузки и подготовки кэша. Не отключайте интернет до окончания загрузки.
{% endhint %}

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FaORFx9AkAeN9AKPV2aib%2FSTTNEWModels.png?alt=media&amp;token=a2d312c4-a636-4f98-bf50-e4ae55459724" alt=""><figcaption><p>Раздел "Модели" в STT обработчике</p></figcaption></figure>

### Раздел «Диагностика»

Диагностика объединяет состояние подключения, автоматического восстановления и локальный журнал.

В верхней части доступны:

* общая оценка состояния;
* кнопка **Проверить соединение**;
* кнопка **Открыть папку логов**.

Техническая сводка показывает адрес MikoPBX, состояние подключения, UID и время последнего успешного heartbeat. UID можно скопировать для сопоставления с таблицей обработчиков на PBX.

Локальные события можно ограничить по времени (**Все**, **1 час**, **Сегодня**) и уровню (**Все**, **Предупреждения**, **Ошибки**), найти по тексту, скопировать или экспортировать. На экране показываются последние 250 подходящих событий.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FScn0aiP7awKtwQGsEAc2%2FSTTNEWDiagnostic.png?alt=media&amp;token=69b78891-facd-4253-bd26-6d52ccc08ad1" alt=""><figcaption><p>Раздел "Диагностика" в STT обработчике</p></figcaption></figure>

### Раздел «Настройки»

#### Подключение к MikoPBX

| Поле              | Назначение                                               |
| ----------------- | -------------------------------------------------------- |
| **Адрес MikoPBX** | Адрес PBX, с которой работает Worker.                    |
| **Токен Worker**  | Ограниченный токен модуля, сохраненный в macOS Keychain. |
| **Имя Worker**    | Понятное имя Mac в таблице обработчиков.                 |
| **UID Worker**    | Стабильный технический идентификатор этого Mac.          |

Кнопка **Зарегистрировать этот Mac** проверяет подключение и создает или обновляет регистрацию.

#### Общие настройки

| Настройка                           | Назначение                                                                                                  |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Язык приложения**                 | Русский, английский или системный язык. Для применения требуется перезапуск.                                |
| **Запуск вместе с macOS**           | Запускать приложение после входа пользователя.                                                              |
| **Поддерживать работу обработчика** | Сохранять намерение работать и автоматически восстанавливаться после потери сети, сна или временной ошибки. |
| **Временные файлы**                 | Папка загруженных записей и промежуточных WAV-сегментов.                                                    |
| **Проверка TLS**                    | Проверять HTTPS-сертификат MikoPBX.                                                                         |
| **Собственный CA**                  | Необязательный PEM/CRT/CER-файл для частного сертификата.                                                   |

Кнопка **Запустить настройку заново** повторно открывает онбоардинг.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2Fjbx1vMwSwJ5bGXlERtN2%2FSTTNEWSettings.png?alt=media&amp;token=b4d0251a-dc28-4fc4-a1bc-b6659445009d" alt=""><figcaption><p>Раздел "Настройки" в STT обработчике</p></figcaption></figure>

### Статус в строке меню

Значок Local STT Worker в строке меню показывает, работает ли STT, выполняется ли транскрибация или требуется внимание. Меню содержит состояние, текущий этап или время последнего контакта и кнопку **Открыть приложение**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F5WcHGd3TguY1pcjmgPBG%2FSTTNEWStatusbar.png?alt=media&amp;token=0086c4f3-292b-41e8-a98a-6e1c8fe40106" alt="" width="330"><figcaption><p>Состояние обработчика в строке меню</p></figcaption></figure>

### Локальные данные и безопасность

| Данные          | Расположение                                               |
| --------------- | ---------------------------------------------------------- |
| Модели          | `~/Library/Application Support/Local STT Worker/Models`    |
| Временные файлы | `~/Library/Application Support/Local STT Worker/Temporary` |
| Журналы         | `~/Library/Logs/Local STT Worker`                          |
| Пароли/Токены   | Keychain service `LocalSTTWorker.PBX`                      |
| Настройки       | UserDefaults приложения `com.mikopbx.LocalSTTWorker`       |

Worker принимает запись только от авторизованной MikoPBX и сохраняет ее в безопасную временную директорию. После завершения задания временные аудиофайлы удаляются.

Для Parakeet Worker проверяет ожидаемую модель и репозиторий, загружает компоненты только по HTTPS, проверяет служебные файлы и не использует символические ссылки внутри каталога модели. Локальные пути к модели не включаются в сообщения об ошибках, отправляемые в PBX.

### Что настраивается в MikoPBX, а что на Mac

| Где                  | Параметры                                                                                                                                              |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **MikoPBX / модуль** | Период обработки, срок хранения, движок и модель, язык задания, словарь терминов, профиль обработки, очередь, ключи, расшифровки и журнал модуля.      |
| **Local STT Worker** | Параметры подключения, UID и имя Mac, запуск и восстановление Worker, локальный кэш моделей, временная папка, TLS/CA, локальная история и диагностика. |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mikopbx.com/mikopbx/modules/miko/module-local-speech-to-text/miko-ai-worker.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
