Тестирование производительности для синтеза речи
Чтобы оценить производительность сервиса синтеза речи вашей инсталляции SpeechKit Hybrid, используйте контейнер с утилитой тестирования. Эта утилита выполняет синтетические тесты на основе подготовленного набора файлов с текстами.
Тесты и ожидаемые результаты
Примечание
Результаты тестирования зависят от конфигурации вашего оборудования и требований к скорости ответа системы.
Сервис SpeechKit выполняет синтез речи в режиме запрос-ответ
. Утилита тестирования отправляет в сервис запросы, имитируя реальную нагрузку на сервис. Интенсивность запросов задается в параметре RPS
(requests per second, количество запросов в секунду) в настройках утилиты. В лог контейнера записываются метрики ответов сервиса:
- Процессные метрики:
- Seconds per second (SPS) – количество секунд синтезированного текста, которое генерируется за секунду работы.
- Длина итогового аудио.
- Задержка ответа.
- Итоговые метрики:
q99
— квантиль уровня0.99
времени ответа сервиса на запрос (время синтеза фразы в 99% случаев меньше или равно величине квантиля):- на синтез фраз, длительность которых менее 6 секунд;
- на синтез фраз, длительность которых более 6 секунд;
- на синтез фраз любой длительности.
Пример фрагмента лога тестирования со значениями процессных метрик:
INFO: 2021-09-22 15:07:00.882 +0000 load_test.cpp:89 Sample=но боязнь и одновременно надежды на чудо останавливали меня от этого сообщения., duration=4.305375s, latency=0.371161s
INFO: 2021-09-22 15:07:00.882 +0000 load_test.cpp:92 Passed time: 4.384470733, seconds generated=49.561, sps=11.17579835, avgAudioLength=5506
Где:
duration
— длина итогового аудио.latency
— задержка ответа.sps
— SPS.
Пример фрагмента лога тестирования со значением квантиля q99
по фразам длительностью менее 6 секунд:
INFO: 2021-09-22 15:07:00.059 +0000 load_test.cpp:260 Audio < 6 seconds latencies
INFO: 2021-09-22 15:07:00.059 +0000 load_test.cpp:262 q=0.99: 390ms
Пример фрагмента лога тестирования со значением квантиля q99
по фразам длительностью более 6 секунд:
INFO: 2021-09-22 15:06:59.734 +0000 load_test.cpp:260 Audio >= 6 seconds latencies
INFO: 2021-09-22 15:06:59.734 +0000 load_test.cpp:262 q=0.99: 505ms
Пример фрагмента лога тестирования со значениями квантиля q99
по фразам любой длительности:
INFO: 2021-09-22 15:07:00.059 +0000 load_test.cpp:260 Utterance latency
INFO: 2021-09-22 15:07:00.059 +0000 load_test.cpp:262 q=0.99: 505ms
Контейнеры SpeechKit Hybrid рассчитаны на то, чтобы обеспечивать указанные значения метрики SPS для двух рекомендованных конфигураций сервера. При таких значениях SPS величина квантиля q99
не превышает 500-600 мс. Увеличивайте RPS
до тех пор, пока значения метрик SPS и q99
не выйдут за эти пределы. Результаты тестирования помогут оценить производительность вашей инсталляции и то, насколько увеличение количества запросов в секунду повышает SPS и влияет на задержку ответа сервиса.
Порядок проведения тестирования
-
Скачайте контейнер с тестами:
docker pull cr.yandex/${REGISTRY_ID}/tts-tools
-
Запустите контейнер
tts-tools
:docker run --network=host \ --env ENVOY_HOST=0.0.0.0 \ --env ENVOY_TTS_PORT=9080 \ --env RPS=1 \ tts-tools
Где:
ENVOY_HOST
— IP-адрес сервиса синтеза. Если тесты запускаются на том же сервере, что и сервис синтеза, укажите значение0.0.0.0
.ENVOY_TTS_PORT
— порт сервиса синтеза (по умолчанию9080
).RPS
— количество запросов синтеза в секунду.
-
Результаты теста будут доступны в логах контейнера:
docker logs tts-tools