Перейти к содержанию

Голос и коммуникация

SpeakNode использует WebRTC для голосовой связи в реальном времени между пользователями и AI-агентами.

Как это работает

  1. При запуске агента создаётся LiveKit-комната
  2. AI-агент (Python worker) подключается к комнате и начинает слушать
  3. Пользователь подключается через браузер (виджет или клиент) или телефон
  4. Аудио передаётся в обе стороны в реальном времени
  5. Сессия записывается автоматически (audio egress)

Голосовой пайплайн

Пользователь говорит → WebRTC аудио → STT (речь в текст) → 
LLM обрабатывает текст → генерирует ответ → 
TTS (текст в речь) → WebRTC аудио → Пользователь слышит

Распознавание речи (STT)

Преобразует речь пользователя в текст для LLM. Поддерживаемые провайдеры:

  • Azure Speech Services
  • Другие провайдеры через конфигурацию

Языковая модель (LLM)

Обрабатывает разговор и генерирует ответы. Поддерживаемые провайдеры:

  • OpenAI (GPT-4 и др.)
  • OpenRouter (доступ к множеству моделей)
  • Cloudflare AI

Синтез речи (TTS)

Преобразует ответы агента в речь. Поддерживаемые провайдеры:

  • ElevenLabs
  • Azure Speech Services
  • Minimax

Детекция голосовой активности (VAD)

Определяет, когда пользователь начинает и прекращает говорить. Управляет поведением очерёдности — когда агент должен начать или прекратить говорить.

Запись аудио

Каждый разговор автоматически записывается через LiveKit Egress. Записи включают:

  • Полное аудио сессии (композитная запись)
  • Треки отдельных участников
  • Хранение в S3-совместимом объектном хранилище

Уведомления в реальном времени

Платформа использует SignalR для уведомления фронтенда о событиях сессии:

  • Agent Ready — агент подключился к комнате
  • Session Completed — разговор завершён, аудио доступно

Жизненный цикл сессии

Статус Описание
Pending Сессия создана, комната ещё не готова
Dispatching LiveKit-комната создана, ожидание подключения агента
Active Агент подключился, разговор идёт
Completed Разговор завершён нормально
Failed Произошла ошибка во время сессии