Перейти к основному содержимому

Филлеры и фоновое аудио

Для создания естественного диалогового опыта голосовые агенты поддерживают голосовые филлеры (хезитации), фоновые звуки и тонкую настройку обработки прерываний.

Обработка прерываний​

Настройки прерываний определяют, как агент реагирует, когда пользователь начинает говорить во время ответа агента.

Параметры​

ПараметрОписаниеПо умолчанию
Allow InterruptionsРазрешить пользователю перебивать агентаВключено
Min Interruption DurationМинимальная длительность речи пользователя (в секундах) для распознавания как прерывание0.5 сек
Resume After False InterruptionПродолжить ответ агента, если прерывание оказалось ложным (короткий звук)Включено
False Interruption TimeoutВремя ожидания (в секундах) после прерывания -- если пользователь не продолжает говорить, агент возобновляет свой ответ2.0 сек
Совет

Для телефонных агентов рекомендуется увеличить Min Interruption Duration до 0.7-1.0 секунды, чтобы фоновые шумы телефонной линии не воспринимались как прерывания.

Как это работает​

  1. Агент произносит ответ
  2. Пользователь начинает говорить
  3. Если речь пользователя длится дольше Min Interruption Duration:
    • Агент останавливается и начинает слушать
  4. Если речь короче порога (ложное прерывание):
    • Агент ждёт False Interruption Timeout
    • Если пользователь не продолжает -- агент возобновляет свой ответ

Простой и возврат в диалог​

Когда пользователь перестаёт говорить на длительное время, агент может попытаться возобновить разговор. Настройки находятся в секции Простой и возврат в диалог.

Параметры​

ПараметрОписаниеПо умолчанию
Таймаут молчания пользователя (сек)Время до определения пользователя как "отсутствующего". От 5 до 120 секунд15 сек
Попыток вернуть в диалогКоличество попыток перед завершением сессии. От 1 до 103
Сообщение для возврата в диалогФразы, которые агент произносит, чтобы вернуть пользователя. Несколько фраз разделяются символом |"Вы ещё здесь? | Я вас не слышу, вы на связи? | Если вас нет, я завершу звонок."

Логика работы​

  1. Пользователь молчит дольше таймаута молчания
  2. Агент произносит очередную фразу из сообщения для возврата в диалог: первая попытка -- первая фраза, вторая -- вторая и далее по кругу. Если фраз меньше, чем попыток, они повторяются с начала
  3. Ожидает ещё один таймаут
  4. Повторяет, пока не исчерпает число попыток
  5. Если пользователь так и не ответил -- сессия автоматически завершается с итогом "Таймаут"

Как только пользователь заговорил, счётчик попыток сбрасывается.

Сообщение по умолчанию и язык​

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

Важно

Стандартные фразы подставляются на языке интерфейса, а не агента. Если вы работаете в русском интерфейсе, а агент говорит по-английски (или наоборот), перепишите сообщение на языке агента -- иначе он обратится к собеседнику на другом языке.

Если у агента сообщение не сохранено совсем (например, он создан через API), агент использует встроенные фразы на своём языке: русском, английском или иврите. Язык берётся из настройки Язык секции TTS. Для остальных языков встроенные фразы английские -- задайте сообщение вручную.

Realtime-режим

В режиме Pipeline фраза произносится дословно. В режиме Realtime она передаётся модели с указанием произнести именно этот текст, и модель может слегка его перефразировать.

Примечание

В фразах можно использовать плейсхолдеры {attempt} (номер попытки), {max_retries} и {timeout}, а также {{key}} из метаданных сессии. Например, если в метаданных передано customer_name: {{customer_name}}, вы ещё здесь? (попытка {attempt} из {max_retries})


Фоновое аудио​

Фоновые звуки делают разговор более естественным и создают ощущение "живого" call-центра.

Фоновый шум (Ambient Sound)​

ПараметрОписаниеПо умолчанию
Background noiseВключить фоновый звук офиса во время разговораВыключено
VolumeГромкость фонового звука (10% -- 70%)30%

При включении воспроизводится лёгкий офисный эмбиент, создающий ощущение рабочего пространства.

Звук обработки (Typing Sound)​

ПараметрОписаниеПо умолчанию
Typing soundВоспроизводить звук при обработке запросаВыключено

Когда включен, пользователь слышит звук печати/обработки, пока агент "думает" над ответом.

Звук печати управляется только своим переключателем и не зависит от хезитаций: включение блока "Хезитации при обдумывании" звук печати не включает.


Голосовые филлеры (Хезитации)​

Филлеры -- это короткие звуковые фрагменты ("угу", "хмм", "так..."), которые агент воспроизводит во время разговора для имитации естественной речи.

Две категории филлеров​

Филлеры делятся на два независимых списка, каждый со своим переключателем и своим набором фраз:

КатегорияКогда звучитПримеры фраз
Хезитации при обдумыванииАгент ждёт ответ от LLM (режим Pipeline) и пауза затянулась"ммм...", "так...", "эм...", "хм..." -- только очень короткие звуки: до ответа LLM обычно около секунды, а ответ агента ждёт, пока клип доиграет, поэтому длинная фраза только оттянет ответ
ПоддакиваниеПользователь говорит длинную фразу -- агент показывает, что слушает"угу", "ага", "понятно"

Фразы разные по смыслу, поэтому списки раздельные: одна и та же фраза редко годится в обе роли.

Важно

Раньше список филлеров был один. При разделении все ранее сгенерированные фразы попали в категорию Поддакивание, а список Хезитации при обдумывании остался пустым. Если у агента были включены хезитации при обдумывании, сгенерируйте для них фразы заново -- иначе в паузах перед ответом ничего не прозвучит.

Управление филлерами​

В каждом блоке:

  1. Включите переключатель категории -- появятся поля с фразами по умолчанию. Язык фраз берётся из языка распознавания (STT), а в режиме Realtime -- из языка модели. Если в STT стоит Auto-detect, фразы предлагаются на английском -- замените их на язык агента
  2. Отредактируйте или удалите ненужные фразы, добавьте свои
  3. Нажмите Сгенерировать у фразы (или Сгенерировать все) -- система синтезирует аудио голосом текущего TTS-провайдера агента и сохранит его
  4. Сгенерированные фразы можно прослушать, удалить или перегенерировать все (удаляет только фразы этой категории)

Настройки воспроизведения​

Когда включена хотя бы одна категория, появляются общие параметры:

ПараметрОписаниеПо умолчанию
Задержка поддакивания (мин -- макс)Сколько пользователь должен говорить, прежде чем агент поддакнёт в первый раз (показывается только при включённом поддакивании). У хезитаций при обдумывании задержки нет -- они звучат сразу, как только агент ждёт ответа модели1.5с -- 3.5с
ГромкостьГромкость воспроизведения филлеров обеих категорий80%

Как это работает​

  1. Хезитации при обдумывании (только режим Pipeline) -- как только агент входит в состояние "думает" (ждёт ответ LLM), звучит одна случайная фраза из списка -- не та, что звучала в прошлый раз. Фраза всегда доигрывает до конца: она никогда не обрывается и не приглушается. Если ответ агента готов раньше, чем фраза закончилась, его речь ждёт окончания фразы и начинается сразу после неё. Поэтому фразы должны быть очень короткими.

  2. Поддакивание -- после начала речи пользователя выжидается случайная задержка из диапазона, затем периодически (каждые 2--5 секунд) звучит фраза из списка поддакивания. Подряд одна и та же фраза не повторяется. На короткой паузе в речи пользователя (вдох, пауза между словами) новые фразы не планируются, а уже звучащая доигрывает до конца; когда агент берёт слово, его речь ждёт окончания звучащей фразы -- фразы никогда не обрываются.

Realtime-режим

В Realtime-режиме блок "Хезитации при обдумывании" не показывается: модель отвечает аудио-в-аудио, состояния "думает" у агента нет. Поддакивание работает в обоих режимах.

Символ | в фразах филлеров​

Раньше символ | в тексте филлера задавал точку прерывания -- место, где фразу можно было оборвать, когда готов ответ агента. Теперь филлеры не обрываются никогда: начавшаяся фраза всегда доигрывает, а речь агента ждёт её окончания (не дольше 5 секунд). Символ | в тексте филлера на звучание не влияет и при генерации убирается.

Поэтому вместо длинных фраз с точками прерывания используйте короткие звуки -- они не задерживают ответ.

Примечание

Не путайте с сообщением для возврата в диалог: там | по-прежнему разделяет фразы для разных попыток.

Фонемная запись для Yandex SpeechKit​

Неслова вроде «ммм», «мгм» или «э-э» обычный синтез читает непредсказуемо: один голос тянет звук, другой произносит по буквам. Если TTS-провайдер агента -- Yandex SpeechKit, текст филлера можно записать фонемами в блоке [[ ]]: фонемы перечисляются через пробел, например [[m g m]]. Разметка работает только для русского языка. Текст филлера передаётся в синтез как есть, поэтому в нём можно использовать и паузы sil<[мс]> (длительность в миллисекундах), и ударение + перед гласной в обычных словах: зам+ок.

Особенности разметки:

  • Ударение внутри [[ ]] задаётся выбором гласного, а не знаком +. Ударные гласные: a, ɛ, i, ɔ, u; безударные: ʌ (а/о в первом предударном слоге), ə (о/а в остальных слогах), ɪ (е/и), ʊ (у); отдельно ɨ (ы).
  • Мягкость согласного помечается знаком ʲ: nʲ, tʲ, sʲ. Шипящие и аффрикаты: ʂ (ш), ʐ (ж), ɕː (щ), t͡ɕ (ч), t͡s (ц); x -- х, j -- й.
  • Знака долготы нет. Протяжный звук записывается повторением фонемы ([[m m m]], [[ɛ ɛ]]) или паузой между двумя блоками ([[m]] sil<[120]> [[m]]). Как голос озвучит повтор, зависит от голоса -- прослушайте результат после генерации.
  • Символ | внутри [[ ]] ставить нельзя.

Полная таблица фонем -- в документации Yandex SpeechKit.

Хезитации при обдумывании​

Только короткие звуки: клип доигрывает до конца, а ответ агента ждёт его окончания.

ТекстФонемыКомментарий
ммм[[m m m]]базовый вариант
м-м[[m]] sil<[120]> [[m]]два такта
хм[[x m]]задумчивый
мгм[[m g m]]с закрытым ртом
э-э[[ɛ ɛ]]открытая хезитация
эм[[ɛ m]]
а-а[[a a]]
так[[t a k]]короткое переключение
та-ак[[t a a k]]растянутый вариант
ну[[n u]]перед ответом
ну-у[[n u u]]растянутый вариант
сейчас[[sʲ ɪ t͡ɕ a s]]на грани по длительности -- проверьте, не задерживает ли ответ

Поддакивание​

ТекстФонемы
угу[[ʊ g u]]
ага[[ʌ g a]]
мм[[m m]]
мгм[[m g m]]
да[[d a]]
да-да[[d a]] sil<[150]> [[d a]]
так[[t a k]]
так-так[[t a k]] sil<[120]> [[t a k]]
ясно[[j a s n ə]]
понятно[[p ʌ nʲ a t n ə]]
хорошо[[x ə r ʌ ʂ ɔ]]
конечно[[k ʌ nʲ ɛ ʂ n ə]]
Совет

Фонемы оправданы для неслов: «ммм», «мгм», «хм», «э-э». Обычные слова («понятно», «хорошо») синтез и так произносит правильно -- сгенерируйте оба варианта и оставьте тот, что звучит естественнее для выбранного голоса.

Совет

Включение филлеров значительно улучшает пользовательский опыт в телефонных разговорах. Пользователь чувствует, что агент "слушает" и "думает", а не просто молчит.

Важно

Филлеры генерируются выбранным голосом агента с теми же настройками, что и живая речь: язык, скорость и эмоция (для Yandex SpeechKit -- роль голоса). Если вы измените голос или эти настройки, перегенерируйте филлеры, чтобы они совпадали с речью агента.