Голосовые интерфейсы — один из сложнейших разделов прикладного искусственного интеллекта. Порог, при котором человек начинает чувствовать дискомфорт в разговоре с роботом, составляет около 1.5 секунд полной задержки (Latency). Если ваша система отвечает дольше, диалог превращается в раздражающую рацию, где собеседники постоянно перебивают друг друга.
В AGONTS мы построили собственную голосовую платформу с задержкой ответа менее 800 мс (Glass-to-Glass Latency). В этой статье мы разберем, как устроена ее внутренняя архитектура и как работают интеграции с традиционной телефонией по протоколу SIP.
Конвейер реального времени: Из чего состоит пайплайн
Классический текстовый агент работает по схеме «Запрос-Ответ». В голосовом агенте система должна обрабатывать непрерывный аудиопоток в обоих направлениях. Наш стек состоит из четырех последовательных шагов:
[ SIP Trunk ] ---> ( RTP Stream ) ---> [ STT (Whisper Stream) ]
|
( Text Token Stream )
v
[ TTS (Cartesia) ] <--- ( Audio Chunk ) <--- [ LLM (Claude/GPT) ]
1. Транспортный уровень: SIP и RTP
Звонок из телефонной сети общего пользования (PSTN) через SIP-транк приходит на наш пограничный медиа-контроллер (SBC) на базе FreeSWITCH/Kamailio. SBC преобразует сигнальный трафик и начинает стримить аудио в формате Raw PCM (G.711a/u или Opus, 8-16kHz, 16bit) по протоколу RTP в наш голосовой шлюз (Voice Gateway).
2. Потоковое распознавание речи (Streaming STT)
Голосовой шлюз захватывает RTP-пакеты и отправляет их чанками по 100-200 мс в движок распознавания речи через постоянное WebSocket-соединение. Мы используем оптимизированный форк Whisper (например, Whisper-Live) со специальной моделью VAD (Voice Activity Detection).
VAD играет критическую роль: она мгновенно определяет, говорит человек или молчит. Как только VAD фиксирует окончание фразы (Silence threshold ~300ms), накопленный текст отправляется дальше по конвейеру.
3. Генерация ответа (LLM Streaming)
Текст попадает в LLM. Здесь критически важно использовать потоковую отдачу токенов (Token Streaming). Мы не ждем полного ответа модели. Как только модель генерирует первые 3-5 слов, мы сразу отправляем их на синтез речи.
4. Потоковый синтез (Streaming TTS)
Современные TTS-движки нового поколения (такие как Cartesia, ElevenLabs Reader или кастомные скомпилированные модели vits) поддерживают стриминг звука. Они принимают текстовые токены по WebSocket и начинают возвращать чанки аудиофайла с задержкой менее 50 мс. Эти чанки собираются в RTP-пакеты и отправляются обратно в SIP-канал клиенту.
Борьба за миллисекунды: Главные инженерные вызовы
Вызов 1: Interruption Handling (Обработка перебивания)
В реальной жизни люди часто перебивают собеседника. Если робот продолжает бубнить свой скрипт, когда человек уже сказал «Нет, спасибо, мне это не интересно», магия цифрового сотрудника рушится.
В нашей архитектуре это решено через двунаправленный WebSocket-контроллер:
- Когда VAD на входящем канале ловит голос человека в момент, когда идет воспроизведение ответа робота, шлюз немедленно шлет команду
CLEAR_BUFFERна исходящий RTP-канал. - Воспроизведение звука мгновенно обрывается, генерация LLM останавливается, а новый аудиопоток человека начинает распознаваться с чистого листа.
Вызов 2: Джиттер и потеря пакетов
В сотовых сетях пакеты RTP могут теряться или приходить с разной задержкой (Jitter). Если воспроизводить аудио «как есть», звук будет прерывистым.
Мы внедрили адаптивный Jitter Buffer на медиа-шлюзе. Он накапливает небольшую подушку данных (~40-60 мс) и сглаживает воспроизведение звука, жертвуя минимальной, незаметной для уха задержкой ради стабильности качества.
Fallback и переводы на оператора
Каким бы умным ни был голосовой агент, всегда будут сценарии, требующие участия человека. Для этого в AGONTS реализован механизм безусловного перевода вызова (SIP REFER).
Если модель в процессе диалога понимает, что не может решить проблему (или клиент явно просит: «Соедините с человеком»), агент инициирует событие перевода:
- LLM возвращает специальный тег функции:
call_transfer(queue_id). - Платформа отправляет команду
SIP REFERобратно на SBC провайдера. - SBC перекоммутирует RTP-поток клиента на внутреннюю очередь АТС компании, а голосовой агент AGONTS вежливо прощается и вешает трубку.
Такой гибридный подход позволяет автоматизировать до 80% рутинных звонков, сохраняя лояльность клиентов за счет мгновенного бесшовного перевода на живого оператора при сложных запросах.