Действия

SPR. Руководство администратора: различия между версиями

Материал из Флора AI

(Описани параметров в файле конфигурации SPR 2)
Нет описания правки
Строка 59: Строка 59:
|+
|+
!Параметр
!Параметр
!По умолчанию
!Назначение
!Назначение
|-
|-
|namespace
|namespace
|''По умолчанию spr.'' префикс пути вызова методов методам API. <nowiki>http://СЕРВЕР:6183/ПРЕФИКС/ПУТЬ_К</nowiki> _МЕТОДУ.
|spr
|Префикс пути вызова методов методам API. <nowiki>http://СЕРВЕР:6183/ПРЕФИКС/ПУТЬ_К</nowiki> _МЕТОДУ.
|-
|-
|max_gpu_memory
|max_gpu_memory
|''По умолчанию 0.6.'' Лимит использования ОЗУ видеокарты.
|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
|calls
|Модель по умолчанию при работе с API SBS
|-
|-
|sbs.conn_timeout
|sbs.conn_timeout
|''По умолчанию 2.'' Таймаут на подключение к API SBS
|2
|Таймаут на подключение к API SBS
|-
|-
|sbs.conn_timeout
|sbs.conn_timeout
|''По умолчанию 30.'' Таймаут на получения ответа от API SBS
|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.'' Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты.
|500
|Длительность паузы в речи в миллисекундах для разбивки длинных аудиофайлов на фрагменты.
|-
|-
|timers.minSpeech
|timers.minSpeech
|''По умолчанию 200.'' Минимальный по продолжительности в миллисекундах фрагмент речи, который следует считать возможным отдельным фрагментом.
|200
|Минимальный по продолжительности в миллисекундах фрагмент речи, который следует считать возможным отдельным фрагментом.
|-
|-
|timers.garbage
|timers.garbage
|''По умолчанию 50.'' Максимальный по продолжительности в миллисекундах отдельный фрагмент речи, который следует считать мусором.
|50
|Максимальный по продолжительности в миллисекундах отдельный фрагмент речи, который следует считать мусором.
|-
|-
|vad.window
|vad.window
|''По умолчанию 0.15.'' Продолжительность фрагмента аудиофайла в секундах, отправляемого на анализ наличия речи.
|0.15
|Продолжительность фрагмента аудиофайла в секундах, отправляемого на анализ наличия речи.
|-
|-
|vad.shift
|vad.shift
|''По умолчанию 0.005.'' Ширина сдвига в секундах для вычленения фрагментов аудиофайла для последующего анализа наличия речи.
|0.005
|Ширина сдвига в секундах для вычленения фрагментов аудиофайла для последующего анализа наличия речи.
|-
|-
|vad.confidence
|vad.confidence
|''По умолчанию 0.5.'' Пороговый коэффициент отсечения речь/шум.
|0.5
|Пороговый коэффициент отсечения речь/шум.
|-
|-
|vad.batch
|vad.batch
|''По умолчанию 1024.'' Количество одновременного анализируемых на наличие речи аудиофрагментов.
|1024
|Количество одновременного анализируемых на наличие речи аудиофрагментов.
|-
|vad.defaultModel
|neuro
|Тип VAD по умолчанию для разбивки аудиофайлов. Возможные значения neuro и webrtc.
|-
|vad.defaultPreset
|call
|Используемая модель neuro VAD по умолчанию. Доступные варианты call и microphone.
|-
|-
|speakers.similarityThreshold
|speakers.similarityThreshold
|''По умолчанию 0.5.'' Порог различия для разделения говорящих.
|0.5
|Порог различия для разделения говорящих.
|-
|-
|speakers.maxSpeechLength
|speakers.maxSpeechLength
|''По умолчанию 1000.'' Максимальная длительность фрагмента для сравнения говорящих в миллисекундах.
|1000
|Максимальная длительность фрагмента для сравнения говорящих в миллисекундах.
|-
|-
|speakers.batch
|speakers.batch
|''По умолчанию 8.'' Количество одновременного анализируемых аудиофрагментов при разделении говорящих.
|8
|Количество одновременного анализируемых аудиофрагментов при разделении говорящих.
|-
|speakers.minCompareSpeechLength
|500
|Минимальная длительность аудиофрагмента для использования в алгоритме определения говорящих.
|-
|-
|recognition.batch
|recognition.batch
|''По умолчанию 8.'' Количество одновременного распознаваемых аудиофрагментов.
|8
|-
|Количество одновременного распознаваемых аудиофрагментов.
|punctuation
|''По умолчанию false.'' Дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте.
|-
|smc.url
| Путь к [[SMC. Руководство пользователя|сервису классификации текстовых фрагментов]] для расстановки знаков препинания в распознанном тексте.
|-
|smc.conn_timeout
|''По умолчанию 2.'' Таймаут на подключение к API SMC
|-
|-
|smc.read_timeout
|balcklist
|''По умолчанию 30.'' Таймаут на получения ответа от API SMC
|[]
|Список моделей распознавания в папках 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. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.