AI-инжиниринг

Voice Agents в production: Vapi, LiveKit, Retell - голос который не обрывается

Цели урока

  • Понять где накапливается latency в голосовом pipeline и как попасть в бюджет 500ms
  • Разобраться с VAD: почему energy-based недостаточно и как работает semantic interruption detection
  • Сравнить Vapi, Retell, LiveKit - выбрать под конкретный use case
  • Разобрать production проблемы: call drops, barge-in, state management, warm transfer

Whisper + GPT-4o + ElevenLabs. Склеил три API и получил голосового ассистента. На демо работает. В проде - задержка 3 секунды, перебивания ломают диалог, 15% звонков дропается на первой секунде. Вот где начинается настоящий voice engineering.

  • Voice AI рынок: USD 47B в 2025 году, рост 340% YoY - самый быстрорастущий сегмент AI-интеграций
  • Vapi.ai: 100K+ разработчиков, USD 20M Series A (Bessemer, декабрь 2024) - наиболее широко используемая managed платформа
  • Retell AI: задокументированный кейс в блоге OpenAI - 50% сокращение расходов на support для SaaS-клиентов
  • LiveKit Agents: open-source framework, используется в Claude Code (голосовой режим) и Cursor

Предварительные знания

  • Speech-to-text: распознавание речи, streaming STT, потоковая транскрипция
  • Text-to-speech: синтез речи, потоковая генерация аудио, задержка до первого чанка
  • Realtime AI и streaming: low-latency обработка, WebSocket/WebRTC, time-to-first-token
  • Realtime AI
  • Speech-to-text
  • Text-to-speech

Голосовой стек 2024: от STT-LLM-TTS pipeline к speech-to-speech

Долгое время голосовой агент собирался из трёх отдельных моделей: STT (распознавание) переводит речь в текст, LLM генерирует ответ, TTS (синтез) озвучивает его. Этот pipeline работал, но накапливал задержку на каждом шаге и терял эмоции, ударения и интонацию при переходе через текст. В 2024 году экосистема резко повзрослела. Появились managed-платформы: Vapi (декабрь 2024, USD 20M Series A от Bessemer) скрывает оркестрацию STT-LLM-TTS за простым API, LiveKit выпустил open-source фреймворк LiveKit Agents поверх своей WebRTC-инфраструктуры, а Pipecat (open-source от Daily) дал гибкий конвейер для построения realtime голосовых ботов. Главным сдвигом стал анонс OpenAI Realtime API на DevDay 1 октября 2024: модель работает speech-to-speech напрямую, без промежуточного текста, через streaming аудио в обе стороны. Это резко снизило задержку и сохранило просодию, но оказалось дороже и менее кастомизируемо, чем классический pipeline. С тех пор инженерный выбор сводится к балансу: native speech-to-speech (быстрее, дороже) против STT-LLM-TTS (дешевле и гибче на масштабе).

Архитектура voice pipeline: STT - LLM - TTS и где копится latency

Whisper + GPT-4o + ElevenLabs. Склеил три API и получил голосового ассистента. На демо работает. В проде - задержка 3 секунды, перебивания ломают диалог, 15% звонков дропается на первой секунде. Вот где начинается настоящий voice engineering.

Классический voice pipeline - три последовательных этапа, каждый добавляет latency:

ЭтапТехнологияLatency p50Оптимизация
VAD (конец речи)Silero VAD / WebRTC VAD100-300msReduce silence threshold
STTWhisper API200-400msDeepgram streaming (-100ms)
STTDeepgram Nova-2100-200msStreaming = нет ожидания конца
LLMGPT-4o (streaming)200-500ms TTFTPrompt caching, меньше токенов
TTSElevenLabs200-400ms first chunkTTS streaming + short sentences
TTSOpenAI TTS tts-1100-200ms first chunktts-1 быстрее tts-1-hd
NetworkWebRTC / WebSocket20-80msRegional endpoints

Latency бюджет для natural conversation:

OpenAI Realtime API (2024) и Anthropic Realtime API сворачивают весь pipeline в один speech-to-speech round trip: 200-500ms. Но цена выше: OpenAI Realtime - USD 0.06/min audio input + USD 0.24/min audio output vs USD 0.006/min Whisper + USD 0.015/min TTS. Имеет смысл при очень высоких требованиях к latency.

Почему классический voice pipeline (последовательный STT -> LLM -> TTS) медленнее оптимального?

VAD: голосовая активность - самая сложная часть

Voice Activity Detection (VAD) - определение когда пользователь начал и закончил говорить. Звучит просто. На практике - самая сложная часть voice pipeline.

Два подхода к VAD - energy-based и semantic:

ПодходКак работаетПлюсыМинусы
Energy-based VAD (WebRTC VAD, Silero)Порог громкости аудиосигналаБыстро (<5ms), дёшево, offlineНе различает речь и шум, много false positives
Semantic VAD (LLM-based)Анализирует транскрипт на завершённостьПонимает смысл, различает паузыМедленно (+100-200ms), дороже
Hybrid (LiveKit подход)Energy VAD для detection + semantic для interruptionБаланс скорости и точностиСложнее реализовать

LiveKit Agents framework (open-source, используется в Claude Code и Cursor) реализует semantic VAD из коробки: TurnDetector компонент анализирует транскрипт через LLM и принимает решение о прерывании. Это один из ключевых аргументов в пользу LiveKit для production voice agents.

Почему energy-based VAD недостаточен для production voice агента?

Платформы: Vapi vs Retell vs LiveKit vs собственный стек

Четыре пути к production voice agent: managed платформы (Vapi, Retell), open-source framework (LiveKit), полностью собственный стек. Каждый со своим trade-off.

ПлатформаТипЦенаСложностьКогда выбирать
Vapi.aiManaged SaaSUSD 0.05/min + STT/LLM/TTSНизкаяБыстрый старт, не хочется DevOps
Retell AIManaged SaaSUSD 0.07-0.12/minНизкаяEnterprise, OpenAI-featured, SaaS support
LiveKit AgentsOpen-source frameworkПлатить только за infra + AI APIsСредняяПолный контроль, кастомизация VAD/logic
Собственный стекDIYТолько AI APIsВысокаяУникальные требования, compliance, scale

Vapi.ai: наиболее широко используемая managed платформа для voice agents.

LiveKit Agents: open-source framework, используется в Claude Code для голосового режима и в Cursor.

Retell AI упомянут в официальном блоге OpenAI как пример успешного voice agent в enterprise. Задокументированный кейс: 50% сокращение расходов на support для SaaS-клиентов после внедрения Retell-based voice agent. Фокус на enterprise telephony интеграции (Twilio, Vonage).

LiveKit Agents предпочтителен перед Vapi.ai когда:

Production проблемы: dropped calls, barge-in, state management

Voice agent в проде сталкивается с проблемами которых нет в демо: telephony интеграция, сохранение контекста между поворотами разговора, recovery когда LLM не отвечает вовремя.

ПроблемаСимптомРешение
Call drop в первую секунду15% звонков дропаются сразуWebRTC ICE candidates timeout - увеличить gathering timeout
LLM timeout mid-responseОборванная фразаFallback phrase + retry с сохранённым context
Barge-in ломает stateПосле прерывания агент путаетсяFlush TTS buffer + reset turn на прерывании
Telephony latency (PSTN)Дополнительные 100-300ms через SIPWebRTC-first, SIP только для legacy
Context window overflowАгент 'забывает' начало разговораSliding window + summarization старых turns
Echo cancellationАгент слышит свой голос как inputAEC (Acoustic Echo Cancellation) на уровне WebRTC

15% звонков дропаются в первую секунду - типичная проблема новых voice agent деплоев. Причина: WebRTC ICE negotiation timeout при плохом сетевом соединении или NAT-проблемах. Решение: TURN server для relay, увеличение ICE gathering timeout до 5 секунд, fallback на SIP при WebRTC failure.

При warm transfer (передаче оператору) в каком порядке должны выполняться шаги?

Voice agent = STT + LLM + TTS. Склеить три API - и готово

Техническая склейка - это 20% работы. Остальные 80%: VAD, barge-in handling, latency оптимизация, telephony интеграция, state management, error recovery

Демо на localhost без фоновых шумов и без interruptions выглядит хорошо. Production - это 100+ одновременных звонков, плохой сети, пользователи перебивают, LLM иногда таймаутит. Каждый из этих случаев нужно обрабатывать.

Realtime API (OpenAI / Anthropic) лучше классического pipeline для всех случаев

Realtime API быстрее, но в 10-15x дороже и менее кастомизируемый. Классический pipeline гибче и дешевле при масштабе

OpenAI Realtime: USD 0.06/min input + USD 0.24/min output. Deepgram + GPT-4o streaming + OpenAI TTS: ~USD 0.02/min. При тысячах минут в день разница существенная. Realtime API оправдан для premium tier с жёсткими latency требованиями.

Итоги

  • Latency бюджет 500ms: Deepgram streaming (150ms) + GPT-4o TTFT (200ms) + TTS first chunk (100ms)
  • VAD - самая сложная часть: semantic turn detection нужен чтобы различать прерывания и реакции согласия
  • Vapi/Retell: managed, USD 0.05-0.12/min, низкий порог входа; LiveKit: open-source, полный контроль
  • Production: WebRTC ICE для надёжности, conversation state в DB, warm transfer с предварительным контекстом
  • Мониторинг: totalResponseMs p50, callDropRate, taskCompletionRate - три главных метрики

Вопросы для размышления

  • Для конкретного use case (support bot vs sales agent vs scheduling) - какой компонент pipeline критичнее всего оптимизировать для лучшего user experience?
  • Как архитектурно обрабатывать ситуацию когда LLM возвращает неполный ответ и пользователь уже слышит первые слова - что происходит с TTS?
  • При каком объёме звонков в месяц имеет смысл переходить с managed платформы (Vapi) на собственный LiveKit деплой - посчитать break-even?

Что дальше

Voice agents в production освоены. Следующий уровень - System Design для AI: как проектировать большие AI-системы.

  • Realtime AI — Deepdive в OpenAI/Anthropic Realtime API - фундамент voice pipeline
  • Speech to Text — Deepgram, Whisper, streaming STT - первый этап pipeline
  • Streaming — Streaming архитектура - ключ к low-latency voice pipeline
  • Autonomous Agents — Voice agent как частный случай autonomous agent с voice interface

Связанные уроки

  • aie-43-realtime-ai
  • aie-23-speech-to-text
  • aie-24-text-to-speech
  • aie-47-autonomous-agents
  • aie-08-streaming
Voice Agents в production: Vapi, LiveKit, Retell - голос который не обрывается

0

1

Войти