Действия

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

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

Нет описания правки
Строка 101: Строка 101:
|5242880
|5242880
|Максимальный размер текущего лог-файла, в байтах
|Максимальный размер текущего лог-файла, в байтах
|-
|cache.lifetime
|604800
|Время жизни кэша результатов отложенного распознавания
|-
|-
| sbs.url
| sbs.url

Версия от 11:19, 27 октября 2023

Общее описание

Сервис предназначен для преобразования естественной речи в текст. Входными данными для сервиса являются аудиофайлы в формате *.wav, результатом работы выступают данные в текстовом формате.


Термины и определения

Short Phrase Recognizer (SPR) – сервис распознавания речи. Модель - модель нейронной сети, описывает её архитектуру и конфигурацию, а также используемые алгоритмы обучения.


Расчет нагрузки

Для нормальной работы сервиса на каждый канал распознавания требуется 1 CPU >= 2.20GHz с поддержкой иструкций AVX2 или новее:

  • Intel Haswell
  • Intel Broadwell
  • Intel Skylake
  • Intel Kaby Lake
  • Intel Coffee Lake
  • Intel Comet Lake
  • Intel Rocket Lake
  • Intel Alder Lake
  • AMD Excavator
  • AMD Zen (AMD Ryzen)
  • AMD Zen 2 (AMD Ryzen)
  • AMD Zen 3 (AMD Ryzen)

Оперативной памяти необходимо не менее 8Gb.


Требования к загружаемому аудио

Для преобразования фрагментов речи в текст используйте аудио в формате *.wav RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, 8000 Hz или 16000 Hz.


Установка/обновление сервиса

Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.

Перед установкой непосредственно сервиса необходимо установить сервисный пакет окружения.

Установка/обновление непосредственно SPR осуществляется скриптом chmod +x ./spr-<версия>-<релиз>.sh && ./spr-<версия>-<релиз>.sh с правами администратора.

Не забудьте запустить сервис и включить в автозапуск в системе:

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 производится в файле /opt/spr/params.json

Описание параметров приведено в таблице

Параметр По умолчанию Назначение
namespace spr Префикс пути вызова методов методам API. http://СЕРВЕР:6183/ПРЕФИКС/ПУТЬ_К _МЕТОДУ.
max_gpu_memory 0.6 Лимит использования ОЗУ видеокарты.
punctuation false Расстановка знаков препинания через сервис сервис классификации.
logs.path logs/ Путь к папке логов
logs.backups 10 Количество старых сохраняемых логов
logs.maxSize 5242880 Максимальный размер текущего лог-файла, в байтах
cache.lifetime 604800 Время жизни кэша результатов отложенного распознавания
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. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.