Голосовые агенты: как собрать говорящего ассистента
Текстовый чат - прошлый век интерфейса: голосовой агент слушает, думает и отвечает вслух с паузой меньше секунды. За этой магией - конвейер из четырёх звеньев, и слабое звено определяет всё.
Текстовый чат - прошлый век интерфейса: голосовой агент слушает, думает и отвечает вслух с паузой меньше секунды. За этой магией - конвейер из четырёх звеньев, и слабое звено определяет всё.
Конвейер: уши, мозг, рот
STT превращает речь в текст - быстро и с пунктуацией, иначе модель получит кашу. LLM думает и решает, когда отвечать, а когда подождать. TTS озвучивает ответ - современные движки вроде ElevenLabs звучат почти как человек, с интонациями и паузами. Оркестратор (LiveKit и подобные) склеивает всё в реальном времени: аудио идёт потоком, а не файлами.
Прерывание - главный признак качества
Отличие «говорящего чат-бота» от агента - умение заткнуться, когда его перебили. Для этого нужен VAD (детектор голосовой активности) и отмена генерации на полуслове: TTS останавливается, контекст помечается, модель продолжает с учётом сказанного. Без этого разговор превращается в обмен монологами.
Задержка: бюджет в миллисекундах
Человек замечает паузу дольше 800 мс. Бюджет: STT 150-300 мс, первый токен модели 300-500, первые аудио-кадры TTS 200-400. Сумма - на грани. Режут задержку потоковой генерацией (озвучка начинается до конца ответа модели) и маленькими быстрыми моделями для классификации намерений.
Подводные камни
Стоимость: минута голосового диалога в разы дороже текстового - TTS и STT капают постоянно. Шум и акценты: STT ошибается, ошибки едут в модель. Тишина в трубке: отличить «думает» от «ушёл» сложно, нужны звуковые маркеры. И приватность: голос - биометрия, храните записи только с согласия и по минимуму.
С чего начать
Соберите прототип на готовых API: STT + LLM + ElevenLabs, без оркестратора - просто чтобы услышать, как это звучит. Потом добавляйте LiveKit для реалтайма и прерываний. И сразу считайте юнит-экономику минуты разговора: она решает, взлетит ли продукт.