Stack de Voz AI
Zonos, Moshi, OpenAI Realtime, LiveKit Agents — agentes de voz en tiempo real y TTS listos para producción.
Qué incluye este pack
La voz AI es el área donde el hueco entre "demo en un portátil" y "envío a usuarios" es más amplio. Latencia, turn-taking, interrupciones y barge-in tienen que funcionar todo a la vez — y no lo hacen por defecto. Este pack reúne los seis recursos que los equipos que sí están enviando productos de voz en 2026 están corriendo.
| # | Recurso | Capa | Por qué está aquí |
|---|---|---|---|
| 1 | OpenAI Realtime API | speech-to-speech | hosted, latencia de turno sub-300ms, sin fontanería STT/TTS |
| 2 | Moshi | speech-to-speech | open-source full-duplex; los datos quedan locales |
| 3 | Zonos | TTS | TTS open-source de alta calidad con clonación |
| 4 | LiveKit Agents | infra | WebRTC + orquestación de agentes, el sustrato de producción |
| 5 | Patrones agente de voz | diseño | turn-taking, barge-in, detección de fin de utterance |
| 6 | Hoja de presupuesto de latencia | ops | checklist <800ms end-to-end por componente |
Por qué importa
Una respuesta de 1.5 segundos se siente rota en voz. Una respuesta de 600ms se siente humana. La diferencia es arquitectónica, no solo compute — viene de cómo compones STT, LLM, TTS y la capa de red.
Tres decisiones arquitectónicas determinan si tu agente de voz se siente vivo:
- Speech-to-speech vs cascada. Una cascada tradicional (audio → STT → LLM → TTS → audio) tiene 4 cuellos secuenciales y típicamente cae en 1.2-2.0s por turno. Modelos speech-to-speech (OpenAI Realtime, Moshi) lo recortan a 200-400ms saltándose el intermedio de texto. Elige speech-to-speech para casos conversacionales; elige cascada solo cuando necesitas control preciso del paso LLM (p. ej. tool calling que los modelos de audio aún luchan).
- TTS streaming vs no-streaming. El TTS no-streaming espera el texto completo antes de generar audio. El streaming empieza a emitir audio tras los ~100ms primeros de texto. Para una respuesta de 5s, eso son 4-5 segundos de diferencia de latencia percibida. Zonos y la mayoría de TTS de producción soportan streaming; úsalo.
- WebRTC vs WebSocket. WebRTC maneja pérdida de paquetes, jitter y bitrate adaptativo. WebSocket no. En redes celulares reales la diferencia entre una llamada que funciona y una que tartamudea es qué transporte elegiste. LiveKit Agents envuelve el loop del agente en WebRTC apropiado; esto es no-negociable para móvil.
Instala en un comando
# Instala el pack completo
tokrepo install pack/voice-ai-stack
# O elige la capa que necesitas primero
tokrepo install livekit-agents
tokrepo install moshi
tokrepo install zonos
TokRepo CLI deja el scaffolding del agente, config de room y código init del SDK en tu proyecto. Una room LiveKit conectada a OpenAI Realtime puede correr localmente en menos de 10 minutos desde un checkout limpio.
Errores comunes
- Construir una cascada para un caso conversacional. Si los usuarios están charlando (no dictando comandos), usa speech-to-speech. La arquitectura cascada tenía sentido en 2023; en 2026 es un costo de latencia sin beneficios compensatorios para chat.
- Saltarse voice activity detection (VAD). Sin VAD el agente o habla sobre el usuario (sin detección de fin) o se queda en silencio esperando timeouts fijos. LiveKit Agents trae VAD cableado; úsalo.
- Sin manejo de barge-in. Cuando el usuario empieza a hablar mientras el agente habla, el agente debe detectarlo en ~150ms y parar. Hardcodear "esperar a terminar" se siente robótico. Los cuatro motores soportan barge-in apropiado pero está apagado por defecto en algunas configs.
- Prompts TTS que no encajan con habla. "$1,234.56" se lee terriblemente. Pre-procesa números, fechas y abreviaciones antes de enviar a TTS. El recurso voice-agent-patterns de TokRepo trae un normalizador.
- Olvidar presupuestar la latencia del primer turno. La primera respuesta en una sesión siempre es 200-400ms más lenta que el estado estable porque los modelos cargan cachés. Tapa el hueco con un sonido de "listo" o animación de conexión.
Concepciones erróneas comunes
"Speech-to-speech no puede hacer tool calls." Desactualizado — OpenAI Realtime soporta function calling nativamente y Moshi puede envolverse en un agente tool-router. La limitación de 2024 ya no aplica.
"Necesitas una GPU por llamada concurrente." Para TTS-solo a calidad moderada, el TTS open-source moderno alcanza tiempo real en CPU. Para speech-to-speech necesitas GPU para Moshi self-hosted, o externalizas latencia a OpenAI Realtime. LiveKit Agents maneja multiplexión de conexiones así que una máquina puede intermediar muchas sesiones concurrentes incluso si el modelo vive en otro lado.
"Clonar voz es demasiado arriesgado para enviar." Zonos y motores similares envían con flags de watermarking que requieren consentimiento. Usado responsablemente con consentimiento explícito (el usuario clona su propia voz para accesibilidad, p. ej.), es un feature seguro y de alto valor.
6 recursos listos para instalar
Preguntas frecuentes
¿Es gratis OpenAI Realtime?
No — se mide por minuto de audio (entrada y salida) y el precio es varias veces más alto que las llamadas API de solo texto porque los tokens de audio son más densos. Para prototipado el coste es negligible; para un producto desplegado manejando miles de minutos/día, haz las cuentas por adelantado. Moshi self-hosted tiene cero coste por minuto pero requiere GPU. La mayoría corre Realtime en producción hasta que el volumen justifica la factura GPU, luego migra a Moshi.
¿Cómo se compara Moshi con OpenAI Realtime?
Moshi es open-source, auto-alojable, speech-to-speech full-duplex de Kyutai. OpenAI Realtime es hosted, closed-source y algo mayor calidad en inglés. El árbol de decisión: soberanía de datos o cero coste por minuto → Moshi; menor latencia hosted sin infra → OpenAI Realtime. Comparten el mismo patrón arquitectónico, así que un wrapper alrededor de cualquiera se ve similar en tu código.
¿Funcionará con Cursor o Codex CLI?
Los agentes de voz son servicios server-side, no extensiones de editor. Los construyes como aplicaciones standalone usando LiveKit Agents y Realtime/Moshi. Cursor o Codex CLI son útiles para escribir el código de estos agentes (la instalación TokRepo deja scaffolds funcionando), pero el runtime es su propio servicio. La entrada de tool Codex CLI tiene ejemplos de construcción de agentes que apuntan a Realtime API.
¿Cuál es la diferencia vs el pack de Observabilidad LLM?
La observabilidad te da trazas de qué pasó — latencia por turno, errores de modelo, coste de tokens. El pack Voice AI Stack es sobre construir el runtime. Quieres ambos: instala el voice stack para enviar un agente de voz, instala observabilidad para depurar por qué el turno 47 tuvo 2 segundos de delay. LiveKit Agents emite trazas OpenTelemetry estándar que Langfuse y Phoenix pueden ingerir directo.
¿Puedo usar mi TTS existente con esto?
Sí. El pack documenta el contrato que LiveKit Agents espera (frames de audio, señales de fin de utterance, eventos barge-in) y puedes enchufar ElevenLabs, Cartesia, Azure TTS o cualquier motor con capacidad streaming. Zonos se incluye como un default open-source fuerte. El recurso voice-agent-patterns tiene una guía para cambiar motores TTS sin reescribir el loop del agente.
12 packs · 80+ recursos seleccionados
Explora todos los packs curados en la página principal
Volver a todos los packs