Голосовой агент, которого мы собирались выпускать, постоянно перебивал звонящих, из-за чего уровень прерываний достигал 18 %, и это вынудило нас переписывать логику определения окончания реплики всего за десять дней до запуска. Добавив проверку грамматики и детектирование поддакиваний (back-channel detection) к правилу таймаута тишины, мы снизили количество прерываний до 3 % и избавились от затяжных пауз, из-за которых система казалась нереактивной.

Почему одного таймаута тишины было недостаточно

В нашей первоначальной версии любая пауза длительностью 700 мс считалась сигналом того, что пользователь закончил говорить. В условиях контролируемого демо — когда один спикер произносит полные предложения в тихой комнате — это правило работает отлично. Однако реальные собеседники делают паузы, чтобы подумать, разбивают числа на группы и вставляют «ага» или «угу», чтобы показать, что они слушают. Агент интерпретировал каждую такую паузу как завершение реплики.

Анализ 312 рабочих звонков выявил две проблемы. Во-первых, агент вклинивался в разговор, пока спикер еще формулировал следующую фразу, что портило 18 % реплик. Во-вторых, когда мы увеличили таймаут до 1500 мс, чтобы прекратить прерывания, система стала работать медленнее и начала «зависать» на шумных линиях. Фоновый шум постоянно сбрасывал счетчик тишины, поэтому агент так и не понимал, что пользователь закончил говорить.

Три сигнала вместо одного числа

Мы отказались от фиксированного таймаута и создали небольшой конечный автомат, который отслеживает три признака:

  • Длительность тишины — как долго пользователь молчит.
  • Грамматика — заканчивается ли транскрипция законченной синтаксической единицей или незавершенным словом, например, предлогом или союзом?
  • Детектирование поддакиваний — был ли последний звук полноценной репликой (например, ответом) или коротким подтверждением вроде «да»?

На основе этих сигналов мы определили два «бюджета тишины»:

  1. Завершенная транскрипция — если распознанный текст выглядит законченным, мы применяем короткий таймаут в 550 мс. Это позволяет агенту отвечать мгновенно.
  2. Незавершенная транскрипция — если последний токен указывает на то, что пользователь находится в середине предложения, мы увеличиваем таймаут до 1300 мс, давая спикеру возможность продолжить.

Два дополнительных предохранителя предотвращают ложные прерывания:

  • Минимальная длительность речи — короткое «угу» не считается полноценной репликой, поэтому агент ждет более длинного высказывания, прежде чем принять решение.
  • Жесткое ограничение — независимо от фонового шума, максимальный лимит тишины заставляет агента ответить через разумный промежуток времени, предотвращая бесконечные зависания.

Результаты и значение для голосового ИИ

После внедрения системы трех сигналов уровень прерываний упал с 18 % до 3 %. Звонящие больше не слышали, как агент перебивает их, а проблема «мертвой тишины» исчезла. Агент стал казаться одновременно отзывчивым и вежливым, имитируя то, как люди управляют очередностью реплик в разговоре.

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

Потенциальные недостатки и открытые вопросы

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

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

Итог: Рассмотрение завершения реплики как решения на основе нескольких сигналов, а не просто по таймеру тишины, снижает количество ошибок прерывания на порядок и восстанавливает естественный ход беседы, которого пользователи ожидают от голосовых агентов.