Классический пайплайн: STT — LLM — TTS
Содержание курса
STT: как агент слышит клиента
Входящий звонок — это аудиопоток. STT-движок преобразует его в текст. Именно здесь чаще всего ломаются продакшн-агенты при первом контакте с реальной телефонией.
Как устроено распознавание внутри
Современные STT-системы работают на основе нейросетевых архитектур — преимущественно трансформеров. Процесс выглядит так:
- Аудиопоток делится на перекрывающиеся фреймы по 20–40 мс.
- Из каждого фрейма извлекаются акустические признаки — числовое представление звука, удобное для нейросети.
- Энкодер нейросети преобразует последовательность признаков в скрытые представления.
- Декодер предсказывает наиболее вероятную последовательность токенов (букв, слогов или слов).
- Языковая модель (LM) корректирует результат с учётом контекста: акустически похожее «яндекх» исправляется на «Яндекс» как более вероятное слово в данном контексте.
Большинство российских облачных STT-сервисов используют сквозное обучение (end-to-end), где вся цепочка от акустики до текста — единая нейросеть. Whisper от OpenAI — одна из таких моделей, доступная для локального развёртывания.
VAD, end-of-turn и barge-in: как агент понимает очередь в разговоре
До того как текст уйдёт в LLM, срабатывает отдельный компонент — VAD (Voice Activity Detection). Его задача — определить, есть ли сейчас речь в канале. Но в продакшне этого мало.
Полная очерёдность реплик в разговоре складывается из четырёх задач:
- VAD — есть ли речь прямо сейчас. Работает по энергии сигнала и спектральным признакам, отличает речь от тишины и фонового шума.
- End-of-turn detection — закончил ли пользователь мысль. Пауза в речи не всегда означает конец реплики: клиент может делать паузы внутри фразы. Современные STT-сервисы (SaluteSpeech, GPT-Realtime-2) решают это на уровне модели, а не только порога тишины.
- Barge-in / interruption — клиент перебивает агента. Система должна остановить TTS, принять новую реплику и продолжить диалог. Без поддержки barge-in агент зачитывает ответ до конца, даже если клиент уже сказал что-то важное.
- Backchannel / preamble — агент даёт короткую фразу-подтверждение ("секунду, проверяю") пока обрабатывает запрос, чтобы клиент не решил, что связь оборвалась.
Ошибки на уровне порога тишины дорого стоят:
- Слишком ранний срез — клиент ещё не договорил, LLM получает обрезанную фразу и отвечает невпопад.
- Слишком поздний срез — агент держит паузу дольше необходимого, диалог ощущается как зависший.
Большинство STT-API позволяют настроить порог тишины (silence_duration_ms) — время паузы, после которого считается, что реплика завершена. Оптимальное значение для телефонии — 600–800 мс; меньше — слишком много ложных срабатываний, больше — агент кажется тугодумом.
Что влияет на качество распознавания
Четыре фактора определяют точность STT в реальных звонках:
- Качество связи и шум. Звонок с мобильного на улице и звонок с VoIP-гарнитуры в тихом офисе — это разные задачи для модели. Мобильная телефония (кодек G.711, 8 кГц) режет верхние частоты, что снижает разборчивость согласных.
- Акцент и диалект. Модели, обученные преимущественно на московском произношении, заметно чаще ошибаются на региональных акцентах и нестандартном произношении.
- Отраслевая лексика. Названия препаратов, артикулы деталей, юридические термины — распознаются хуже общеупотребительных слов. Yandex SpeechKit и Salute Speech поддерживают пользовательские словари для адаптации модели к конкретной предметной области.
- Длина и структура реплики. Короткие чёткие фразы («Запишите меня на вторник») распознаются лучше, чем длинные с вводными словами и паузами. Это важно учитывать при проектировании сценария: агент должен задавать узкие вопросы, а не ждать монолога клиента.
Метрики качества STT
WER (Word Error Rate) — основная метрика распознавания речи. Считается как:
- — замены слов
- — пропуски
- — вставки
- — общее число слов в эталоне
Ориентиры для русского языка:
- Чистая студийная речь: WER 3–8%
- Телефония без шума: WER 8–15%
- Телефония с фоновым шумом: WER 20–40%
Каждый процент WER прямо влияет на то, насколько точно LLM поймёт запрос клиента. При WER 30% каждое третье слово распознано неправильно — агент начинает отвечать на то, чего клиент не говорил.
CER (Character Error Rate) — то же самое, но считается на уровне символов, а не слов. Для русского языка иногда точнее отражает реальное качество: из-за сложной морфологии одно неверное окончание даёт ошибку в слове, но затрагивает лишь один-два символа.
RTF (Real-Time Factor) — отношение времени обработки к длине аудио. RTF = 0.3 означает, что одна секунда звука обрабатывается за 0.3 секунды. Для продакшн-агента RTF должен быть меньше 1 — иначе движок физически не успевает за звонком. WER ничего об этом не говорит, поэтому при выборе STT-сервиса смотрят на обе метрики.
Для российских проектов доступны: Yandex SpeechKit (сильнее всего на русской телефонии), Salute Speech (Сбер, есть on-premise вариант), TinkoffVoice и локально развёртываемый Whisper от OpenAI.
