SPR. Руководство администратора: различия между версиями
Материал из Флора AI
(Описани параметров в файле конфигурации SPR 2) |
Нет описания правки |
||
| Строка 59: | Строка 59: | ||
|+ | |+ | ||
!Параметр | !Параметр | ||
!По умолчанию | |||
!Назначение | !Назначение | ||
|- | |- | ||
|namespace | |namespace | ||
| | |spr | ||
|Префикс пути вызова методов методам API. <nowiki>http://СЕРВЕР:6183/ПРЕФИКС/ПУТЬ_К</nowiki> _МЕТОДУ. | |||
|- | |- | ||
|max_gpu_memory | |max_gpu_memory | ||
| | |0.6 | ||
|Лимит использования ОЗУ видеокарты. | |||
|- | |||
|punctuation | |||
|false | |||
|Расстановка знаков препинания через сервис [[SMC. Руководство пользователя|сервис классификации]]. | |||
|- | |- | ||
| sbs.url | | sbs.url | ||
|<nowiki>http://127.0.0.1:6185</nowiki> | |||
|Путь к [[SBS. Руководство пользователя|сервису биометрии]] для получения метаданных голосового фрагмента. | |Путь к [[SBS. Руководство пользователя|сервису биометрии]] для получения метаданных голосового фрагмента. | ||
|- | |- | ||
|sbs.model | |sbs.model | ||
| | |calls | ||
|Модель по умолчанию при работе с API SBS | |||
|- | |- | ||
|sbs.conn_timeout | |sbs.conn_timeout | ||
| | |2 | ||
|Таймаут на подключение к API SBS | |||
|- | |- | ||
|sbs.conn_timeout | |sbs.conn_timeout | ||
| | |30 | ||
|Таймаут на получения ответа от API SBS | |||
|- | |||
|smc.url | |||
|<nowiki>http://127.0.0.1:6181</nowiki> | |||
|Путь к [[SMC. Руководство пользователя|сервису классификации]] для дополнительной работы с распознанным текстом. | |||
|- | |||
|smc.conn_timeout | |||
|2 | |||
|Таймаут на подключение к API SMC | |||
|- | |||
|smc.conn_timeout | |||
|30 | |||
|Таймаут на получения ответа от API SMC | |||
|- | |- | ||
|timers.maxSilence | |timers.maxSilence | ||
| | |500 | ||
|Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты. | |||
|- | |- | ||
|timers.minSpeech | |timers.minSpeech | ||
| | |200 | ||
|Минимальный по продолжительности в миллисекундах фрагмент речи, который следует считать возможным отдельным фрагментом. | |||
|- | |- | ||
|timers.garbage | |timers.garbage | ||
| | |50 | ||
|Максимальный по продолжительности в миллисекундах отдельный фрагмент речи, который следует считать мусором. | |||
|- | |- | ||
|vad.window | |vad.window | ||
| | |0.15 | ||
|Продолжительность фрагмента аудиофайла в секундах, отправляемого на анализ наличия речи. | |||
|- | |- | ||
|vad.shift | |vad.shift | ||
| | |0.005 | ||
|Ширина сдвига в секундах для вычленения фрагментов аудиофайла для последующего анализа наличия речи. | |||
|- | |- | ||
|vad.confidence | |vad.confidence | ||
| | |0.5 | ||
|Пороговый коэффициент отсечения речь/шум. | |||
|- | |- | ||
|vad.batch | |vad.batch | ||
| | |1024 | ||
|Количество одновременного анализируемых на наличие речи аудиофрагментов. | |||
|- | |||
|vad.defaultModel | |||
|neuro | |||
|Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения neuro и webrtc. | |||
|- | |||
|vad.defaultPreset | |||
|call | |||
|Используемая модель neuro VAD по умолчанию. Доступные варианты call и microphone. | |||
|- | |- | ||
|speakers.similarityThreshold | |speakers.similarityThreshold | ||
| | |0.5 | ||
|Порог различия для разделения говорящих. | |||
|- | |- | ||
|speakers.maxSpeechLength | |speakers.maxSpeechLength | ||
| | |1000 | ||
|Максимальная длительность фрагмента для сравнения говорящих в миллисекундах. | |||
|- | |- | ||
|speakers.batch | |speakers.batch | ||
| | |8 | ||
|Количество одновременного анализируемых аудиофрагментов при разделении говорящих. | |||
|- | |||
|speakers.minCompareSpeechLength | |||
|500 | |||
|Минимальная длительность аудиофрагмента для использования в алгоритме определения говорящих. | |||
|- | |- | ||
|recognition.batch | |recognition.batch | ||
| | |8 | ||
|Количество одновременного распознаваемых аудиофрагментов. | |||
|- | |- | ||
| | |balcklist | ||
| | |[] | ||
|Список моделей распознавания в папках nnets и external, которые не должны быть загружены при старте сервиса SPR. | |||
|} | |} | ||
Версия от 13:37, 25 октября 2023
Общее описание
Сервис предназначен для преобразования естественной речи в текст. Входными данными для сервиса являются аудиофайлы в формате *.wav, результатом работы выступают данные в текстовом формате.
Термины и определения
Short Phrase Recognizer (SPR) – сервис распознавания речи. Модель - модель нейронной сети, описывает её архитектуру и конфигурацию, а также используемые алгоритмы обучения.
Расчет нагрузки
Для нормальной работы сервиса на каждый канал распознавания требуется один CPU. Оперативной памяти необходимо не менее 8Gb.
Требования к загружаемому аудио
Для преобразования фрагментов речи в текст используйте аудио в формате *.wav RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, 8000 Hz или 16000 Hz.
Установка/обновление сервиса
Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.
Перед установкой непосредственно сервиса необходимо установить сервисный пакет окружения.
Установка/обновление непосредственно SPR осуществляется скриптом ./spr-<версия>-install с правами администратора.
Не забудьте запустить сервис и включить в автозапуск в системе:
sudo systemctl enable spr.service && sudo systemctl start spr.service
Удостоверьтесь, что сервис стартовал:
systemctl status spr.service
Разрешите доступ к порту 6183 на нужном интерфейсе по протоколу tcp.
Установка моделей
Установка моделей возможна как прямым копирование файла модели, так и загрузкой по API. Подробнее о загрузке моделей по API смотрите в руководстве пользователя.
Модели располагаются в каталоге /opt/spr/nnets/. Для установки модели необходимо создать каталог /opt/spr/nnets/<название модели>/ и скопировать в него файл model, после чего перезагрузить сервис командой systemctl restart spr
Чтобы убедиться, что модели доступны, выполните запрос
curl -H "accept: application/json" -X GET "http://АДРЕС_СЕРВЕРА:6183/spr/"
В ответе должно содержаться название новой модели или перечень названий моделей в формате json.
Проверить корректность работы модели можно запросто к API с отправкой файла на распознавание:
curl -X POST "http://АДРЕС_СЕРВЕРА:6183/spr/stt/common" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "wav=@ФАЙЛ.wav;type=audio/wav"
Конфигурирование параметров сервиса spr
Настройка параметров сервиса spr производится в файле /opt/spr/params.json
Описание параметров приведено в таблице
| Параметр | По умолчанию | Назначение |
|---|---|---|
| namespace | spr | Префикс пути вызова методов методам API. http://СЕРВЕР:6183/ПРЕФИКС/ПУТЬ_К _МЕТОДУ. |
| max_gpu_memory | 0.6 | Лимит использования ОЗУ видеокарты. |
| punctuation | false | Расстановка знаков препинания через сервис сервис классификации. |
| sbs.url | http://127.0.0.1:6185 | Путь к сервису биометрии для получения метаданных голосового фрагмента. |
| sbs.model | calls | Модель по умолчанию при работе с API SBS |
| sbs.conn_timeout | 2 | Таймаут на подключение к API SBS |
| sbs.conn_timeout | 30 | Таймаут на получения ответа от API SBS |
| smc.url | http://127.0.0.1:6181 | Путь к сервису классификации для дополнительной работы с распознанным текстом. |
| smc.conn_timeout | 2 | Таймаут на подключение к API SMC |
| smc.conn_timeout | 30 | Таймаут на получения ответа от API SMC |
| timers.maxSilence | 500 | Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты. |
| timers.minSpeech | 200 | Минимальный по продолжительности в миллисекундах фрагмент речи, который следует считать возможным отдельным фрагментом. |
| timers.garbage | 50 | Максимальный по продолжительности в миллисекундах отдельный фрагмент речи, который следует считать мусором. |
| vad.window | 0.15 | Продолжительность фрагмента аудиофайла в секундах, отправляемого на анализ наличия речи. |
| vad.shift | 0.005 | Ширина сдвига в секундах для вычленения фрагментов аудиофайла для последующего анализа наличия речи. |
| vad.confidence | 0.5 | Пороговый коэффициент отсечения речь/шум. |
| vad.batch | 1024 | Количество одновременного анализируемых на наличие речи аудиофрагментов. |
| vad.defaultModel | neuro | Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения neuro и webrtc. |
| vad.defaultPreset | call | Используемая модель neuro VAD по умолчанию. Доступные варианты call и microphone. |
| speakers.similarityThreshold | 0.5 | Порог различия для разделения говорящих. |
| speakers.maxSpeechLength | 1000 | Максимальная длительность фрагмента для сравнения говорящих в миллисекундах. |
| speakers.batch | 8 | Количество одновременного анализируемых аудиофрагментов при разделении говорящих. |
| speakers.minCompareSpeechLength | 500 | Минимальная длительность аудиофрагмента для использования в алгоритме определения говорящих. |
| recognition.batch | 8 | Количество одновременного распознаваемых аудиофрагментов. |
| balcklist | [] | Список моделей распознавания в папках nnets и external, которые не должны быть загружены при старте сервиса SPR. |
Сбор данных об ошибках
Для увеличения информативности журналов можно выполнить от суперпользователя команду:
sed -i 's/log-level error/log-level debug/g' /etc/systemd/system/spr.service && systemctl daemon-reload && systemctl restart spr.service
При возникновении проблем в работе сервиса и недостаточной информативности журналов, можно запустить сервис вручную с привилегиями суперпользователя и выводом информации в stdout:
systemctl stop spr.service && source /opt/pve/bin/activate && cd /opt/spr/ && python3 api.py && deactivate
или
systemctl stop spr.service
source /opt/pve/bin/activate
cd /opt/spr/ && python3 api.py
deactivate
Удаление
Для удаления выполните команду: /opt/spr/uninstall. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.