Голосовой агент перебивает сам себя: эхо и ложный barge-in
Если бот обрывает собственную реплику, хотя человек молчит, проверьте возврат звука из динамика в микрофон. Детектор может принять этот сигнал за речь пользователя. Это другой сбой, чем преждевременный ответ на паузе: проблема появляется именно во время воспроизведения.
Воспроизведите один и тот же звонок двумя способами
В учебном стенде агент произносит фразу из двух предложений. Первый прогон проводят через громкую связь, второй — через гарнитуру. Пользователь в обоих случаях молчит, затем отдельно произносит «остановись». Сравнивают момент обрыва и возможность настоящего перебивания. Исчезновение ошибки с гарнитурой поддерживает гипотезу акустического эха, но ещё не доказывает её.
| Наблюдение | Что проверить |
|---|---|
| Во входе слышна реплика самого бота | Акустический возврат или ошибочная маршрутизация |
| Дублируется отдельная дорожка | Подписки и микширование аудио |
| Есть событие речи без текста | Ложное срабатывание, шум или сбой STT |
| Обрыв остаётся при отключённом динамике | Другие причины остановки и журналы приложения |
Сопоставьте вход, выход и события
Запишите тестовые дорожки раздельно: звук, отправленный ботом, и звук, полученный со стороны пользователя. Привяжите к одной шкале времени начало воспроизведения, событие перебивания и транскрипт. Не ограничивайтесь общим смешанным файлом: в нём трудно понять, какой сигнал попал в распознавание. Для стенда используйте вымышленные реплики.
Проверьте, где выполняется акустическое эхоподавление и есть ли у него нужный опорный сигнал. Шумоподавление и подавление эха решают разные задачи. Наличие настройки в клиенте не доказывает, что она действует на фактическом телефонном тракте. Возможности браузерного клиента и SIP-подключения могут различаться.
После исправления сохраните управляемость
Не считайте отключение всех перебиваний полноценным исправлением: пользователь должен иметь возможность остановить агента. Повторите тест с тишиной, громкой связью, гарнитурой и настоящей репликой поверх TTS. Отдельно проверьте начало сессии и возобновление после ложного события. В некоторых конфигурациях автоматическое продолжение требует аудиовыхода, поддерживающего паузу.
Критерий готовности — отсутствие самоперебивания в выбранных контрольных звонках при сохранённой реакции на человека. Это проверка конкретного тракта и конфигурации, а не обещание устранить любое эхо во всех устройствах.
Этот разбор подготовлен Latorn. Если вы уже знаете основы Python и API и хотите практиковать такие решения системно, сравните программу платного курса Voice AI Agents PRO со своей задачей. Открытый пример выше можно проверить самостоятельно; он не заменяет полный проект.
Технические источники: LiveKit noise and echo cancellation, LiveKit interruption handling. Учебные ситуации и числа в статье придуманы для объяснения механизма.
Следующий шаг: Голосовые AI-агенты: диагностика диалога и аудио. По смежным вопросам: Голосовой бот путает номера и даты: как подтверждать данные, Голосовой агент шипит или молчит: проверьте формат аудио.
