> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hubtalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 14. Голос

> STT, TTS, VAD и перебивания: как настроить казахско-русского агента.

# Голос: распознавание, синтез, перебивания

<Info>
  **Цель модуля:** настроить казахско-русский агент так, чтобы он слышал клиента, звучал естественно и вовремя замолкал.
</Info>

Секция **Голос (STT / TTS / VAD)** состоит из подсекций — разберём по одной. Общее правило: модели и голоса берутся из справочников организации, а ключи провайдеров живут в окружении сервера, не в агенте.

<Frame caption="STT — что агент слышит. ASR-модель из справочника (здесь Soniox Realtime, поддерживает kk и ru), язык или multi, плюс слова-подсказки для терминов и названий.">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-25-settings-stt.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=66afcaa7d39843a2269eecfbd7aa7944" alt="Подсекция STT: выбор ASR-модели из справочника и язык" style={{ width: "100%", maxWidth: "470px", height: "560px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="780" height="3285" data-path="images/tutorial/tut-25-settings-stt.webp" />
</Frame>

<Accordion title="Показать панель целиком">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-25-settings-stt.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=66afcaa7d39843a2269eecfbd7aa7944" alt="Подсекция STT: выбор ASR-модели из справочника и язык" width="780" height="3285" data-path="images/tutorial/tut-25-settings-stt.webp" />
</Accordion>

<Frame caption="TTS — как агент звучит. Голос из справочника, скорость, язык, провайдер-специфичные параметры и аварийный резервный провайдер на случай сбоя основного.">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-26-settings-tts.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=099f1d2bb478cc89909fb5f8668b44d5" alt="Подсекция TTS: голос из справочника, скорость, язык, формат, аварийный резервный TTS" style={{ width: "100%", maxWidth: "470px", height: "560px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="780" height="3315" data-path="images/tutorial/tut-26-settings-tts.webp" />
</Frame>

<Accordion title="Показать панель целиком">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-26-settings-tts.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=099f1d2bb478cc89909fb5f8668b44d5" alt="Подсекция TTS: голос из справочника, скорость, язык, формат, аварийный резервный TTS" width="780" height="3315" data-path="images/tutorial/tut-26-settings-tts.webp" />
</Accordion>

<Info>
  **Казахский и русский в одном звонке**

  Клиент может начать по-русски и перейти на казахский. Чтобы это работало:

  1. в STT берите модель с поддержкой `kk` + `ru` или режим `multi`;
  2. в TTS — двуязычный голос (в справочнике это, например, self-hosted `cybernet` или мультиязычные облачные);
  3. в общем промпте прямо потребуйте «отвечай на языке последней реплики клиента»;
  4. фиксированные фразы пишите на том языке, с которого начинаете звонок.

  Отдельная подсекция **Язык реплики клиента** включает определение языка каждого хода — полезно, когда нужно знать, на каком языке шёл разговор, в аналитике.
</Info>

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

Здесь настраивается, как агент реагирует, когда клиент заговорил поверх него:

* **Разрешить перебивания** — общий тумблер агента (узлы могут переопределять).
* **Минимальная длительность** и **минимум слов** — защита от ложных срабатываний: кашель, «ага» и шум в трубке не должны обрывать реплику агента.
* **Порог активации** и **длительность тишины** — чувствительность детектора речи.

Соседняя подсекция **Определение конца реплики** отвечает за то, как быстро агент решает «клиент договорил». Слишком агрессивно — агент перебивает сам; слишком осторожно — неприятные паузы.

<Frame caption="VAD и перебивания: порог, минимальная длительность перебивания и минимум распознанных слов.">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-27-settings-vad.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=7a2abdbe315ccf38ef607ef9bded1704" alt="Подсекция VAD и перебивания" style={{ width: "100%", maxWidth: "470px", height: "560px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="780" height="3312" data-path="images/tutorial/tut-27-settings-vad.webp" />
</Frame>

<Accordion title="Показать панель целиком">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-27-settings-vad.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=7a2abdbe315ccf38ef607ef9bded1704" alt="Подсекция VAD и перебивания" width="780" height="3312" data-path="images/tutorial/tut-27-settings-vad.webp" />
</Accordion>

<Warning>
  **Минимум слов по умолчанию — 2, и это осознанный компромисс**

  Агент, которого никто не настраивал руками, не перебивается на одно- и двухсловных репликах. Это спасает от кашля и «угу», но той же меркой отмеряются «стоп» и «нет»: они не теряются, а доходят следующей репликой либо через обработку тишины — агент отреагирует на такт позже, а не посреди фразы.

  Если сценарий требует обрывать агента одним словом (например, юридический отказ, который нужно поймать немедленно), ставьте `0` — и учитывайте, что тогда его оборвёт и кашель. Агенты, у которых ноль выставлен явно, остались на нуле.
</Warning>

<Frame caption="Фоновый звук. Тихий офисный шум под голосом агента отдельным аудиотреком: в распознавание и в транскрипт он не попадает. Даёт ощущение живого звонка, но требует аккуратной громкости.">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-28-settings-background-sound.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=53739485409d216f084e993cf46a11a8" alt="Подсекция «Фоновый звук»" style={{ width: "100%", maxWidth: "470px", height: "560px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="780" height="3296" data-path="images/tutorial/tut-28-settings-background-sound.webp" />
</Frame>

<Accordion title="Показать панель целиком">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-28-settings-background-sound.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=53739485409d216f084e993cf46a11a8" alt="Подсекция «Фоновый звук»" width="780" height="3296" data-path="images/tutorial/tut-28-settings-background-sound.webp" />
</Accordion>

**Активное слушание** (backchannel) — короткие «ага», «понятно» во время длинной речи клиента. Это не реплика диалога: слово идёт отдельным треком, не попадает в транскрипт и не сбивает определение конца реплики. Частота 0,6 — разумная середина; 1,0 звучит навязчиво.

**Кэш синтеза** (в подсекции TTS) отдаёт уже озвученные фразы мгновенно: приветствие и другие фиксированные фразы звучат без задержки синтеза. Поэтому «Фраза» вместо «Промпта» в начале разговора — не только про формулировки, но и про скорость.

<Note>
  **Пауза в речи — `[pause N]`**

  Между словами можно поставить `[pause 0.5]`, и агент остановится на полсекунды; допустимы значения от 0,1 до 3,0. Это способ прочитать номер телефона группами, а не одной строкой, и дать абоненту мгновение перед вопросом, требующим решения.

  Тег понимают и фиксированный текст узла, и генерируемые реплики — модели можно прямо в промпте сказать, когда ставить паузу. В транскрипт, Историю и отчёты тег не попадает: его видит только синтез.

  **Но длина паузы зависит от голоса.** ElevenLabs (кроме `eleven_v3`), Cartesia, Inworld и Azure держат паузу точной длины; OpenAI, Soniox, собственный голос `cybernet` и ElevenLabs `eleven_v3` не умеют, и там тег превращается в запятую или многоточие — остановка слышна, но `[pause 2]` и `[pause 0.5]` звучат одинаково. У realtime-агента пауз не будет вовсе, валидатор об этом предупредит. Проверяется ушами: сделайте тестовый звонок, транскрипт пауз не покажет. Подробности — в [правках фраз и паузах](/ru/v4/platform/agent-settings/speech-corrections).
</Note>

<Frame caption="/voices — справочник голосов организации: провайдер, языки, потоковость, признак «рекомендуем». Здесь же массовая замена голоса во всех агентах и пометка устаревших." hint="Нажмите, чтобы открыть целиком">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-29-voices-catalog.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=883b7664233ffa9b23ed65f40fa1931a" alt="Справочник голосов: провайдеры, языки, признаки" style={{ width: "100%", height: "620px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="1280" height="1331" data-path="images/tutorial/tut-29-voices-catalog.webp" />
</Frame>
