Тестирование производительности для распознавания речи
Чтобы оценить производительность сервиса распознавания речи вашей инсталляции SpeechKit Hybrid, используйте контейнер с утилитой тестирования. Эта утилита выполняет синтетические тесты на основе подготовленного набора аудиофайлов.
Тесты и ожидаемые результаты
Примечание
Результаты тестирования зависят от конфигурации вашего оборудования и требований к скорости ответа системы.
Сервис SpeechKit предназначен для распознавания речи в режиме реального времени. При этом информация передается в двух потоках данных — от пользователя к серверу и от сервера к пользователю. Утилита тестирования использует эти потоки, имитируя реальную нагрузку на сервис. Число одновременно активных каналов в потоке задается параметром CONNECTIONS
в настройках утилиты. В лог контейнера записываются метрики потоковой обработки аудиоданных сервисом.
Распознавание речи происходит порциями до момента окончания потока данных. Промежуточные результаты распознавания каждой порции аудио (части фразы) отправляются пользователю с задержкой. Полный результат распознавания возвращается в потоке от сервиса к пользователю после получения последней порции аудио (также с задержкой).
Отзывчивость
сервиса описывает метрика q99
— квантиль уровня 0.99
времени ответа сервиса на последний фрагмент данных (время ответа в 99% случаев меньше или равно величине квантиля). Например, пользователь закончил отправлять аудиопоток в момент времени T0
, ответ получил в момент времени T1
. Время отклика T1-T0
— характеристика того, насколько обработка всей сессии отстала от реального времени.
Пример фрагмента лога тестирования со значением квантиля q99
:
INFO: 2021-09-22 13:48:25.677 +0000 load_test.cpp:110 Last chunk latency
INFO: 2021-09-22 13:48:25.677 +0000 load_test.cpp:119 q=0.99: 200ms
Контейнеры SpeechKit Hybrid рассчитаны на то, чтобы поддерживать указанное количество каналов для двух рекомендованных конфигураций сервера. При таких характеристиках величина q99
не превышает 600 мс. Увеличивайте CONNECTIONS
до тех пор, пока значение метрики q99
не выйдет за этот порог. Результаты тестирования помогут оценить производительность вашей инсталляции и то, насколько увеличение числа активных каналов влияет на задержку ответа сервиса.
Порядок проведения тестирования
-
Скачайте контейнер с тестами:
docker pull cr.yandex/${REGISTRY_ID}/stt-tools
-
Запустите контейнер
stt-tools
:docker run -it --network=host \ --env ENVOY_HOST="0.0.0.0" \ --env ENVOY_PORT=8080 \ --env CONNECTIONS=10 \ stt-tools
Где:
ENVOY_HOST
— IP-адрес сервиса распознавания. Если тесты запускаются на том же сервере, что и сервис распознавания, укажите значение0.0.0.0
.ENVOY_PORT
— порт сервиса распознавания (по умолчанию8080
).CONNECTIONS
— количество одновременно активных каналов.
-
Результаты теста будут доступны в логах контейнера:
docker logs stt-tools