Голосовой агент перебивает сам себя: эхо и ложный barge-in

Если бот обрывает собственную реплику, хотя человек молчит, проверьте возврат звука из динамика в микрофон. Детектор может принять этот сигнал за речь пользователя. Это другой сбой, чем преждевременный ответ на паузе: проблема появляется именно во время воспроизведения.

Воспроизведите один и тот же звонок двумя способами

В учебном стенде агент произносит фразу из двух предложений. Первый прогон проводят через громкую связь, второй — через гарнитуру. Пользователь в обоих случаях молчит, затем отдельно произносит «остановись». Сравнивают момент обрыва и возможность настоящего перебивания. Исчезновение ошибки с гарнитурой поддерживает гипотезу акустического эха, но ещё не доказывает её.

НаблюдениеЧто проверить
Во входе слышна реплика самого ботаАкустический возврат или ошибочная маршрутизация
Дублируется отдельная дорожкаПодписки и микширование аудио
Есть событие речи без текстаЛожное срабатывание, шум или сбой STT
Обрыв остаётся при отключённом динамикеДругие причины остановки и журналы приложения

Сопоставьте вход, выход и события

Запишите тестовые дорожки раздельно: звук, отправленный ботом, и звук, полученный со стороны пользователя. Привяжите к одной шкале времени начало воспроизведения, событие перебивания и транскрипт. Не ограничивайтесь общим смешанным файлом: в нём трудно понять, какой сигнал попал в распознавание. Для стенда используйте вымышленные реплики.

Проверьте, где выполняется акустическое эхоподавление и есть ли у него нужный опорный сигнал. Шумоподавление и подавление эха решают разные задачи. Наличие настройки в клиенте не доказывает, что она действует на фактическом телефонном тракте. Возможности браузерного клиента и SIP-подключения могут различаться.

После исправления сохраните управляемость

Не считайте отключение всех перебиваний полноценным исправлением: пользователь должен иметь возможность остановить агента. Повторите тест с тишиной, громкой связью, гарнитурой и настоящей репликой поверх TTS. Отдельно проверьте начало сессии и возобновление после ложного события. В некоторых конфигурациях автоматическое продолжение требует аудиовыхода, поддерживающего паузу.

Критерий готовности — отсутствие самоперебивания в выбранных контрольных звонках при сохранённой реакции на человека. Это проверка конкретного тракта и конфигурации, а не обещание устранить любое эхо во всех устройствах.

Этот разбор подготовлен Latorn. Если вы уже знаете основы Python и API и хотите практиковать такие решения системно, сравните программу платного курса Voice AI Agents PRO со своей задачей. Открытый пример выше можно проверить самостоятельно; он не заменяет полный проект.

Технические источники: LiveKit noise and echo cancellation, LiveKit interruption handling. Учебные ситуации и числа в статье придуманы для объяснения механизма.

Следующий шаг: Голосовые AI-агенты: диагностика диалога и аудио. По смежным вопросам: Голосовой бот путает номера и даты: как подтверждать данные, Голосовой агент шипит или молчит: проверьте формат аудио.