Голос и коммуникация
WebRTC голосовая связь в реальном времени в Voxagent
Voxagent использует WebRTC для голосовой связи в реальном времени между пользователями и AI-агентами.
Как это работает
- При запуске агента создаётся LiveKit-комната
- AI-агент (Python worker) подключается к комнате и начинает слушать
- Пользователь подключается через браузер (виджет или клиент) или телефон
- Аудио передаётся в обе стороны в реальном времени
- Сессия записывается автоматически (audio egress)
Голосовой пайплайн
Пользователь говорит → WebRTC аудио → STT (речь в текст) →
LLM обрабатывает текст → генерирует ответ →
TTS (текст в речь) → WebRTC аудио → Пользователь слышитРаспознавание речи (STT)
Преобразует речь пользователя в текст для LLM. STT-провайдер настраивается для каждого агента отдельно.
Языковая модель (LLM)
Обрабатывает разговор и генерирует ответы. LLM-провайдер и модель настраиваются для каждого агента отдельно (напрямую или через агрегатор).
Синтез речи (TTS)
Преобразует ответы агента в речь. TTS-провайдер настраивается для каждого агента отдельно.
Детекция голосовой активности (VAD)
Определяет, когда пользователь начинает и прекращает говорить. Управляет поведением очерёдности — когда агент должен начать или прекратить говорить.
Запись аудио
Каждый разговор автоматически записывается через LiveKit Egress. Записи включают:
- Полное аудио сессии (композитная запись)
- Треки отдельных участников
- Хранение в S3-совместимом объектном хранилище
Уведомления в реальном времени
Платформа использует SignalR для уведомления фронтенда о событиях сессии:
- Agent Ready — агент подключился к комнате
- Session Completed — разговор завершён, аудио доступно
Жизненный цикл сессии
| Статус | Описание |
|---|---|
| Pending | Сессия создана, комната ещё не готова |
| Dispatching | LiveKit-комната создана, ожидание подключения агента |
| Active | Агент подключился, разговор идёт |
| Completed | Разговор завершён нормально |
| Failed | Произошла ошибка во время сессии |