AGONTSbeta
Все записиБлог

Голосовые агенты: Анатомия телефонии и SIP-интеграций

Инженерный разбор архитектуры голосовых AI-сотрудников с ультранизкой задержкой. Как подружить телефонию (SIP/VoIP), потоковое распознавание речи (STT), генерацию текста (LLM) и синтез звука (TTS) в реальном времени.

Голосовые интерфейсы — один из сложнейших разделов прикладного искусственного интеллекта. Порог, при котором человек начинает чувствовать дискомфорт в разговоре с роботом, составляет около 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).

Если модель в процессе диалога понимает, что не может решить проблему (или клиент явно просит: «Соедините с человеком»), агент инициирует событие перевода:

  1. LLM возвращает специальный тег функции: call_transfer(queue_id).
  2. Платформа отправляет команду SIP REFER обратно на SBC провайдера.
  3. SBC перекоммутирует RTP-поток клиента на внутреннюю очередь АТС компании, а голосовой агент AGONTS вежливо прощается и вешает трубку.

Такой гибридный подход позволяет автоматизировать до 80% рутинных звонков, сохраняя лояльность клиентов за счет мгновенного бесшовного перевода на живого оператора при сложных запросах.

Первый AI-сотрудник — за 5 минут

4 недели, фиксированный объём работ, демо на ваших данных.