Skip to main content

Голос: STT, TTS и VAD

Настройки STT, TTS и VAD хранятся в сценарии и применяются к звонкам. Провайдеры выбираются из настроенных каталогов. Ключи провайдеров хранятся в конфигурации окружения, а self-hosted endpoint’ам ключ провайдера не нужен.

STT

STT (speech-to-text) преобразует речь абонента в текст для агента.
  • «ASR-модель из справочника» — модель распознавания выбирается ссылкой на запись справочника ASR-моделей; рядом показан её «Провайдер». Модель, помеченную устаревшей, кабинет подписывает прямо в поле.
  • language (пусто = язык флоу; kk → multi) — язык распознавания. Пустое поле наследует язык агента, kk включает мультиязычный режим.
  • interim_results — живой промежуточный транскрипт — расшифровка приходит по ходу речи, а не одним куском в конце. У пакетных моделей промежуточных результатов нет: реплика распознаётся целиком, когда абонент договорил.
  • keywords (через запятую, вес — «слово:1.5») — слова, которые распознаванию стоит слышать точнее; вес указывается через двоеточие.
Секция STT: ASR-модель из справочника, язык распознавания и keywords

TTS

TTS (text-to-speech) преобразует текстовые ответы агента в аудио.
  • «Голос из справочника» — голос выбирается ссылкой на запись справочника голосов; рядом показан его «Провайдер».
  • voice_id (пусто = голос по умолчанию) — идентификатор голоса у провайдера, если нужно переопределить запись справочника.
  • model_id (низкая задержка, мультиязычность ru/kk) — модель синтеза.
  • speed (пусто — дефолт) — скорость речи.
  • language (ISO 639-1; пусто = язык флоу) — язык синтеза.
  • output_format (пусто — дефолт плагина) — аудиоформат.
  • optimize_streaming_latency (0–4, пусто = выкл) — оптимизация потоковой отдачи.
  • «Провайдер-специфичные параметры (JSON)» — всё остальное, что умеет конкретный провайдер: stability и similarity у ElevenLabs, emotion у Cartesia, instructions у OpenAI.
  • «Аварийный резервный TTS»«Включить запасного провайдера» — срабатывает только при сбое или лимите основного синтеза. Смена провайдера меняет звучание, поэтому переключение помечается в звонке.
  • «Кэш TTS-аудио» — повторяющиеся фразы отдаются из кэша без обращения к провайдеру. Под ним раскрываются «Кэш TTS — расширенные настройки»: «TTL записей, сек» и «Сбрасывать кэш при публикации».
Секция TTS: голос из справочника, voice_id, model_id и параметры провайдера

VAD и перебивания

VAD (voice activity detection) определяет начало и конец речи, а настройки перебивания управляют тем, может ли абонент оборвать агента. Параметры читаются при старте звонка, пересобирать ничего не нужно.
  • prefix_padding_duration, сек — предбуфер аудио — сколько звука сохраняется перед обнаруженной речью.
  • sample_rate (8000/16000) — частота дискретизации.
  • max_buffered_speech, сек — потолок буферизуемой речи.
  • allow_interruptions — разрешить перебивать агента.
  • «Фильтр по громкости (шум не считается речью)» — вторая проверка: тихий кадр не начнёт запись реплики, даже если модель сочла его речью. Пока фильтр выключен, пороги громкости в карточках ниже не применяются.
  • min_interruption_duration, сек — мин. речь для перебивания.
  • min_interruption_words — мин. распознанных слов для перебивания (0 — гейта нет) — сколько слов должен произнести абонент, прежде чем агент замолчит. Значение по умолчанию — 2.
  • min_duration_all_branches — порог длительности действует на все перебивания, не только посреди речи.
  • min_endpointing_delay, сек и max_endpointing_delay, сек — задержка перед фиксацией конца реплики.
Ниже раскрывается «Настройки VAD во время звонка» — те же пороги, но по состояниям агента: карточка «Когда агент говорит или думает» и карточка «Остальные состояния». В каждой — activation_threshold, deactivation_threshold, min_speech_duration, min_silence_duration, activation_volume и deactivation_volume. Пустое поле в первой карточке означает «как в остальных состояниях»; набор самих правил задан кодом, меняются только числа. Секция «VAD и перебивания»: пороги перебивания и раскрытые настройки VAD по состояниям агента
У словесного гейта есть цена, и её стоит знать до настройки. При значении по умолчанию 2 одно- и двухсловные реплики агента не перебивают — в том числе «стоп» и «нет». Эти слова не теряются: короткая реплика ниже порога сохраняется и склеивается со следующей фразой абонента, то есть агент реагирует на такт позже, а не посреди фразы. Поставьте 0, если сценарию нужно обрывать агента одним словом, — и учитывайте, что так же его оборвут кашель, «угу» и «ага».Если распознавание не отдаёт промежуточные результаты потоком, число слов можно проверить только на первой паузе абонента — на такой связке гейт срабатывает позже, чем при потоковом распознавании.
Рядом в голосовом блоке лежат ещё два раздела: «Определение конца реплики» — выбор режима (авто, только пауза VAD, аудио-детектор или STT-провайдер) — и «Активное слушание» с частотой срабатывания и списком слов-поддакиваний.

Фоновый звук

Фоновая запись — например, офисный шум — подмешивается в голос агента и делает разговор естественнее. Она проигрывается бесшовным лупом на всю длительность звонка и на распознавание не влияет: фон никогда не анализируется как речь, поэтому ни определение речи абонента, ни транскрипт от него не меняются.
  • «Включить фоновый звук».
  • «Аудио-ассет (библиотека фонов)» — выбор записи из библиотеки; «Загрузить аудио… (wav/mp3/ogg/opus)» добавляет новую. Если выбранный ассет удалён из библиотеки, кабинет так и пишет — фон не включится.
  • «Громкость фона» — уровень подмешивания относительно голоса агента.
Секция «Фоновый звук»: включение, аудио-ассет из библиотеки и громкость фона Если выбранный ассет не удаётся загрузить, звонок продолжается как обычно, без фонового звука.

Язык реплики клиента

Определяет язык каждой реплики и передаёт его в синтез и аналитику. Нужен двуязычным и многоязычным агентам.
  • «Определять язык реплики клиента» — по умолчанию выключено.
  • «Источник» — откуда берётся язык:
    • «LLM (переменная dynamic_language — без лишних вызовов)» — язык приходит из динамической переменной самого сценария. Рекомендуемый вариант: дополнительных обращений не делает.
    • «Сервис-классификатор (URL)» — язык определяет внешний сервис на каждой реплике; адрес указывается тут же.
  • «Языки-кандидаты (через запятую)» — из чего детектору разрешено выбирать.
Секция «Язык реплики клиента»: источник определения и языки-кандидаты Определённый язык используется для синтеза речи (чтобы голос звучал на нужном языке) и фиксируется в звонке как событие turn_language для последующего анализа.

Пре-TTS нормализатор

Приводит адреса электронной почты, аббревиатуры, числа и латиницу к произносимой форме перед синтезом.
  • «Включить нормализатор».
  • «Таймаут, с» — сколько ждать ответа сервиса нормализации.
  • «Языки (через запятую; пусто — любые)» — ограничение по языкам.
Секция «Пре-TTS нормализатор»: включение, таймаут и ограничение по языкам Если нормализатор не успевает ответить вовремя, на синтез уходит исходный текст без изменений — звонок при этом не прерывается.