Помочь в настройке ПО Vosk/Kaldi
Реализую учебный проект по автоматическому распознаванию речи со следующим стеком:
1) ОС Centos 8;
2) сервер VoIP-телефонии Asterisk v.18;
3) движок распознавания Kaldi + сервер распознавания Vosk;
4) сервер Apache Tomcat v.9.
5) софтфон Zoiper v.5.5
И пытаюсь настроить обработку голоса по схеме:
1) аудиопоток поступает в PBX, следует звонок на софтфон;
2) параллельно тот же поток передаётся на сервер распознавания и в real time преобразуется в текст с помощью Kaldi;
3) полученный текст поступает на Apache, где подвергается дальнейшей обработке (отдельная задача, в данном проекте не учитываем)
Т.е. Vosk/Kaldi обеспечивают потоковое распознавание по аналогии с ASR-софтом от Google или Яндекс. Но именно с организацией такого режима у меня и возникают проблемы. Пробовал установить движок по этому мануалу
https://voxlink.ru/kb/asterisk-configuration/kaldi-server-s-asterisk/, с уже существующей моделью распознавания - всё удалось при том, что в руководстве описан процесс настройки системы для перевода в текст готовых файлов. Зато насчёт потоковой обработки с выводом текста прямо во время диалога всё достаточно туманно, поскольку на сайте Kaldi никакой внятной инфы об этом режиме попросту нет (по крайней мере я ничего релевантного на https://kaldi-asr.org/doc/ так и не обнаружил). В результате возникает потребность в эксперте, который способен:
1) воспроизвести состав и схему взаимодействия вышеперечисленного ПО в локальной системе;
2) интегрировать Kaldi/Vosk на платформу Asterisk, используя существующие модели распознавания (никакого обучения сети не требуется, берём готовые решения) для потокового перевода речи в текст;
3) обеспечить передачу данных с Vosk на Apache по мере получения результатов от Kaldi;
4) описать схему настройки распознавания в виде небольшого мануала (инструкция сугубо для личного пользования, скрины + текстовые пояснения (при необходимости) с максимально чётким представлением всех этапов, чтобы те или иные детали не приходилось угадывать по звёздам или уточнять в каком-нибудь чате);
5) предоставить файлы конфигураций Asterisk (extensions.conf и др.) в случае, если их создание необходимо для реализации схемы распознавания (если необходимости в них нет и обмен данными возможно организовать вне ядра Asterisk, то, разумеется, ограничиваемся мануалом).
Задание считается выполненным после проверки и подтверждения корректности инструкций из мануала на ПК заказчика.