Звонивший услышал тишину в теч... Заметка
DEV Community на русском

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

Голосовой агент имел критический сбой, из-за которого звонящие перебивали приветствие из-за двухсекундной задержки воспроизведения аудио. Эта задержка возникала потому, что система ждала полной генерации ответа LLM перед отправкой его в систему преобразования текста в речь. Первоначальное расследование включало замеры времени каждого этапа аудиоконвейера: преобразование речи в текст, обработка LLM, преобразование текста в речь и сетевая передача. Анализ показал, что завершение работы LLM и "холодный старт" TTS были основными причинами чрезмерной задержки.Для исправления этого вывод LLM передавался в TTS-движок предложение за предложением, что позволяло начать генерацию аудио гораздо раньше. Кроме того, соединение с TTS было предварительно прогрето и поддерживалось открытым для сокращения времени запуска. Важным улучшением стало немедленное отправление короткого, предварительно синтезированного подтверждения сразу после того, как звонящий закончил говорить. Эта немедленная аудиообратная связь маскировала любое оставшееся время обработки, предотвращая ощущение "мертвого эфира". Эти оптимизации сократили время до первого аудио с двух секунд примерно до 150 миллисекунд для подтверждения. Ключевым выводом стало рассмотрение задержки как бюджета по этапам и приоритезация немедленной аудиообратной связи над ожиданием полного, идеального ответа. Стратегия потоковой передачи вывода LLM и предоставления мгновенных подтверждений решила проблему перебивания и улучшила пользовательский опыт.