Saltar al contenido principal
AI-1101 • 34 Horas • Nivel Avanzado / Principal Voice AI Architect

Agentes de Voz Full-Duplex en Tiempo Real (WebRTC, VAD, STT/TTS Neural) y Pipelines Generativos Multimedia

Presupuesto de latencia voz-a-voz sub-500ms, transporte WebRTC sobre UDP (Opus/SRTP) vs WebSockets, detección de actividad de voz (Silero VAD) y Turn-Taking semántico, manejo de interrupciones (Barge-In), Streaming ASR y TTS neural por chunks.

Módulo 1: Módulo 1: Arquitectura de Agentes de Voz Sub-500ms, WebRTC vs. WebSockets y Procesamiento DSP

Anatomía del Presupuesto de Latencia Sub-500ms: Turn-Taking Humano y Cascada vs. Speech-to-Speech (50 min)

Anatomía del Presupuesto de Latencia Sub-500ms: Turn-Taking Humano y Cascada vs. Speech-to-Speech

1. La Barrera Psicoacústica de los 500 Milisegundos

En la conversación humana natural (estudios de Stivers et al. en lingüística conversacional), la mediana de transición entre turnos de habla (gap between turns) es de $200 ext{ ms}$ a $300 ext{ ms}$. Superar los $800 ext{ ms}$ induce colisiones de habla donde el usuario asume que la línea se cayó y vuelve a hablar.

flowchart LR
    MIC["Audio Usuario (Opus 20ms frame)"] --> WEBRTC["WebRTC Edge SFU (25ms)"]
    WEBRTC --> VAD["Silero VAD + End-of-Turn (120ms)"]
    VAD --> STT["Streaming ASR / Deepgram Nova-3 (90ms)"]
    STT --> LLM["LLM TTFT Speculative/Flash (140ms)"]
    LLM -->|"Clause Chunking"| TTS["Streaming TTS / Cartesia Sonic (75ms TTFB)"]
    TTS --> SPK["Audio Agente (Total ~450ms)"]

2. Arquitectura en Cascada (STT $ o$ LLM $ o$ TTS) vs. Modelos Nativos Speech-to-Speech (Omni/Live)

| Dimensión Arquitectónica | Pipeline en Cascada Streaming | Modelo Nativo Audio-a-Audio (Speech-to-Speech) | | :--- | :--- | :--- | | Latencia Media (Voz a Voz) | $420 ext{ ms} - 650 ext{ ms}$ (con pipelining de cláusulas) | $220 ext{ ms} - 350 ext{ ms}$ (sin cuello de botella textual intermedio) | | Auditabilidad y Guardrails DLP | 100% determinista: El texto intermedio puede filtrarse antes de sintetizar audio | Complejo: requiere transcripción paralela y bloqueo de audio en vuelo | | Prosodia y Paralingüística | Pierde emoción/sarcasmo al proyectar a texto plano | Preserva tono, emoción, énfasis y ritmo acústico nativamente | | Costo por Minuto y Tool Calling | Bajo costo y máxima precisión en llamadas a herramientas complejas | Mayor costo de tokens de audio y menor determinismo en esquemas largos |

Ingeniería de Transporte en Tiempo Real: Por Qué WebRTC (UDP/RTP/Opus) Supera a WebSockets (TCP) (50 min)

Ingeniería de Transporte en Tiempo Real: Por Qué WebRTC (UDP/RTP/Opus) Supera a WebSockets (TCP)

1. El Problema del Head-of-Line (HoL) Blocking en TCP/WebSockets

Conectar el micrófono del navegador o app móvil al agente de voz mediante WebSockets (que corren sobre TCP) es un anti-patrón severo en redes celulares o Wi-Fi con pérdida de paquetes ($1% - 3%$): - Cuando se pierde un único paquete TCP que contiene $20 ext{ ms}$ de audio, el kernel del sistema operativo congela la entrega de todos los paquetes subsiguientes hasta que se completa la retransmisión ACK/NACK, provocando pausas robóticas y ráfagas aceleradas.

2. Pila de Protocolos WebRTC para Agentes de Voz (LiveKit / Pipecat / Mediasoup)

1. ICE / STUN / TURN: Descubrimiento de ruta NAT y relevo UDP de baja latencia en el borde. 2. DTLS-SRTP: Cifrado simétrico ligero paquete a paquete sin bloqueo de flujo. 3. Códec Opus (RFC 6716): Opera con frames de $20 ext{ ms}$ a $48 ext{ kHz}$, incorpora In-Band FEC (Forward Error Correction) y Packet Loss Concealment (PLC) para reconstruir frames perdidos sin esperar retransmisiones.

DSP Acústico: Cancelación de Eco Acústico (AEC), Supresión de Ruido Neural y Troncal SIP (G.711 μ-law) (45 min)

DSP Acústico: Cancelación de Eco Acústico (AEC), Supresión de Ruido Neural y Troncal SIP (G.711 μ-law)

1. El Bucle de Auto-Interrupción por Falta de AEC

Si el usuario utiliza altavoces sin audífonos y la tubería carece de Acoustic Echo Cancellation (AEC), la voz sintetizada del agente rebota en la habitación, entra por el micrófono del usuario y dispara falsamente el detector de voz (VAD), haciendo que el agente se interrumpa a sí mismo continuamente.

2. Interconexión con Telefonía PSTN / SIP Trunking

Las troncales telefónicas SIP (Twilio, Telnyx, Genesys) transmiten audio codificado en G.711 $mu$-law o A-law a $8 ext{ kHz}$ (8 bits logarítmicos). Antes de alimentar modelos VAD/STT modernos entrenados a $16 ext{ kHz}$ PCM Lineal (int16le), el gateway de medios debe aplicar: 1. Decodificación de ley $mu$ a PCM 16-bit. 2. Remuestreo polifásico con filtro anti-aliasing sinc de $8 ext{ kHz} o 16 ext{ kHz}$.

Módulo 2: Módulo 2: VAD Neural, Turn-Taking Semántico y Máquina de Estados de Barge-In (Full-Duplex)

Detección de Actividad de Voz (Silero VAD) vs. Turn-Taking Semántico Basado en Transformers (55 min)

Detección de Actividad de Voz (Silero VAD) vs. Turn-Taking Semántico Basado en Transformers

1. El Dilema del Umbral de Silencio Estático (Endpointing Dilemma)

Un detector acústico como Silero VAD evalúa cada ventana de $32 ext{ ms}$ ($512$ muestras a $16 ext{ kHz}$) y emite la probabilidad $P( ext{speech}_t) in [0, 1]$. Pero detectar silencio acústico no equivale a detectar el fin de turno conversacional: - Si el usuario dice: "Quiero transferir fondos a la cuenta número... eh..." (pausa de $700 ext{ ms}$ mientras lee su tarjeta), un umbral fijo de $400 ext{ ms}$ cortará al usuario a mitad de frase. - Si el usuario dice: "Sí, confirma." (frase completa), esperar $900 ext{ ms}$ de silencio introduce una latencia inaceptable.

2. Endpointing Híbrido Acústico + Semántico

Combinamos la duración del silencio acústico $d_{ ext{silence}}$ con un modelo ligero de completitud sintáctica/prosódica $P_{ ext{EOT}}( ext{transcript parcial})$:

$ ext{Threshold}_{ ext{wait}}(x) = au_{min} + ( au_{max} - au_{min}) cdot left(1 - P_{ ext{EOT}}(x) ight)$

Donde $ au_{min} = 180 ext{ ms}$ cuando la oración está sintácticamente completa y $ au_{max} = 1,100 ext{ ms}$ cuando termina en una conjunción, preposición o muletilla.

Arquitectura Full-Duplex de Barge-In: Cancelación Atómica en Cascada y Sincronización de Contexto (50 min)

Arquitectura Full-Duplex de Barge-In: Cancelación Atómica en Cascada y Sincronización de Contexto

1. Qué Debe Ocurrir en Menos de 50ms Cuando el Usuario Interrumpe al Agente

Cuando el agente está hablando (estado SPEAKING) y el usuario pronuncia una interrupción real (> $150 ext{ ms}$ de voz sostenida para descartar tos o backchanneling como "ajá"), el orquestador ejecuta una Cancelación Atómica en 4 Niveles:

stateDiagram-v2
    [*] --> LISTENING
    LISTENING --> THINKING: End-of-Turn Confirmado
    THINKING --> SPEAKING: Primer Chunk TTS Listo
    SPEAKING --> INTERRUPTED: VAD sostenido > 150ms + Energía > Umbral
    INTERRUPTED --> LISTENING: 1. Flush Buffer WebRTC
2. AbortSignal a TTS y LLM
3. Truncar Historial al Timestamp Reproducido

[!CAUTION]
Bug Crítico de Desincronización de Memoria: El LLM genera texto a $120 ext{ tokens/seg}$, pero la voz humana se reproduce a $approx 3 ext{ palabras/seg}$. Si el LLM ya generó 4 párrafos en el buffer y el usuario interrumpe en la primera oración, debes truncar el mensaje del asistente en el historial de conversación exactamente en la palabra cuyo timestamp de audio ya salió por el altavoz del cliente. De lo contrario, el agente creerá que ya dijo información que el usuario jamás escuchó.

Streaming LLM-a-TTS sin Esperar la Respuesta Completa: Segmentación por Fronteras Prosódicas (45 min)

Streaming LLM-a-TTS sin Esperar la Respuesta Completa: Segmentación por Fronteras Prosódicas

1. El Buffer de Acumulación Sintáctica para Síntesis Fluida

Enviar tokens individuales uno por uno al motor TTS destruye la coarticulación y la entonación de la frase; esperar a que el LLM termine toda su respuesta añade $2$ a $5$ segundos de latencia muerta.

Algoritmo de Segmentación Adaptativa (First-Chunk Fast, Subsequent Smooth): - Primer Chunk (Prioridad TTFB): Se despacha al motor TTS tan pronto se alcanza el primer signo de puntuación o cláusula mínima de $ge 6$ palabras (,, ., :, ?). - Chunks Subsiguientes (Prioridad Prosodia): Mientras el cliente escucha el primer chunk ($approx 1.5 ext{ s}$ de colchón de reproducción), acumulamos oraciones completas antes de sintetizar, garantizando entonación natural y cero underruns en el buffer de audio.

Módulo 3: Módulo 3: Tool Calling Asíncrono en Voz y Pipelines Generativos Multimedia

Tool Calling No-Bloqueante en Agentes de Voz: Ejecución Asíncrona y Retención de Canal Acústico (50 min)

Tool Calling No-Bloqueante en Agentes de Voz: Ejecución Asíncrona y Retención de Canal Acústico

1. Cómo Evitar el Silencio Incómodo Durante Llamadas a APIs Externas

En una interfaz de chat de texto, esperar $1.8 ext{ s}$ a que una API bancaria o ERP responda muestra un spinner visual. En una llamada telefónica, $1.8 ext{ s}$ de silencio absoluto tras una pregunta provoca que el usuario diga "¿Hola? ¿Sigues ahí?", disparando un Barge-In destructivo mientras la herramienta aún se está ejecutando.

Patrón de Ejecución Dual (Dual-Track Async Tool Execution): 1. El LLM emite simultáneamente un preámbulo conversacional corto ("Permíteme verificar el estado de tu transacción en el sistema...") y el bloque tool_call. 2. La pista de audio reproduce esa frase puente ($1.5 ext{ s}$) mientras la corrutina de backend ejecuta la petición HTTP/SQL en paralelo. 3. Si la API tarda más de $2.5 ext{ s}$, un temporizador de canal inyecta un marcador acústico sutil o actualización de progreso.

Pipelines Generativos Multimedia: Sincronización Labial (Lip-Sync), Avatares en Tiempo Real y Codecs (50 min)

Pipelines Generativos Multimedia: Sincronización Labial (Lip-Sync), Avatares en Tiempo Real y Codecs

1. Alineación Temporal Audio-Visual ($Delta t_{ ext{AV}} in [-45 ext{ ms}, +125 ext{ ms}]$)

El estándar ITU-R BT.1359 establece que el sistema perceptual humano detecta asincronía labial cuando el audio se adelanta más de $45 ext{ ms}$ o se retrasa más de $125 ext{ ms}$ respecto al movimiento de los visemas.

Para mantener sincronización exacta en WebRTC: - Los flujos RTP de audio y video comparten el reloj de referencia mediante paquetes RTCP Sender Reports (SR) que vinculan el RTP Timestamp de cada pista con el reloj de pared NTP (Network Time Protocol) de 64 bits. - El Jitter Buffer del receptor retiene los cuadros PCM de audio hasta alinear su Presentation Timestamp (PTS) con el cuadro de video H.264/VP9 renderizado a partir de los fonemas/visemas del TTS.

Telemetría de Calidad en Producción: WER, Diarización de Hablantes, MOS (UTMOS/DNSMOS) y Jitter (45 min)

Telemetría de Calidad en Producción: WER, Diarización de Hablantes, MOS (UTMOS/DNSMOS) y Jitter

1. Métricas Objetivas Sin Intervención Humana

En producción monitoreamos cada sesión de voz con cuatro indicadores continuos: 1. End-to-End Voice Latency (V2V p50 / p95 / p99): Medida desde el último frame de voz del usuario ($t_{ ext{user_eos}}$) hasta el primer frame de audio del agente enviado por el SFU ($t_{ ext{agent_first_audio}}$). 2. Non-Intrusive Neural MOS (DNSMOS / UTMOS): Redes neuronales ligeras que estiman el Mean Opinion Score ($1.0$ a $5.0$) directamente sobre el audio sin requerir señal limpia de referencia. 3. Interruption False Positive Rate (IFPR): Porcentaje de eventos Barge-In causados por ruido de fondo o eco mal cancelado.

Módulo 4: Módulo 4: Laboratorio de Telemetría de Latencia Full-Duplex y Evaluación de Certificación

Ingeniería de Capacidad para Agentes de Voz: Concurrencia de Streams y Batching Dinámico en GPU (45 min)

Ingeniería de Capacidad para Agentes de Voz: Concurrencia de Streams y Batching Dinámico en GPU

1. Cálculo de Sesiones Concurrentes por Nodo GPU

A diferencia de las peticiones HTTP stateless, una llamada de voz mantiene abiertos buffers de estado (estados ocultos RNN de Silero VAD, contexto de streaming ASR y caché KV del LLM) durante $3$ a $15$ minutos. Sin embargo, el usuario y el agente hablan de forma alternada: el ciclo de trabajo activo (duty cycle) de inferencia TTS/LLM por llamada es del $approx 35%$, permitiendo multiplexar hasta $80-120$ sesiones concurrentes en una sola GPU L4/A10G mediante Continuous Batching.

Laboratorio Práctico: Auditoría de SLA de Latencia Voz-a-Voz (Sub-500ms) por Etapa del Pipeline (60 min)

Laboratorio Práctico: Auditoría de SLA de Latencia Voz-a-Voz (Sub-500ms) por Etapa del Pipeline

Contexto del Desafío SRE de Voz

Eres el Arquitecto Principal del motor de agentes de voz en tiempo real. La tabla voice_turn_telemetry registra la telemetría de cada turno conversacional por región de borde (edge_region): - vad_ms: tiempo de confirmación de fin de turno - stt_ms: latencia final de transcripción streaming - llm_ttft_ms: tiempo al primer token del LLM - tts_ttfb_ms: tiempo al primer byte de audio del TTS

La latencia total Voz-a-Voz de un turno es vad_ms + stt_ms + llm_ttft_ms + tts_ttfb_ms. Nuestro SLA exige que esta suma sea estrictamente menor o igual a 500 ms.

Objetivo de la Consulta SQL

Escribe una consulta SQL agrupada por edge_region que devuelva: 1. edge_region 2. total_turns: cantidad total de turnos en la región 3. avg_v2v_ms: promedio de la latencia total Voz-a-Voz redondeado a 2 decimales 4. sla_breaches: cantidad de turnos donde la latencia total Voz-a-Voz fue > 500 ms Ordena por avg_v2v_ms ASC.

Evaluación de Certificación: Agentes de Voz Full-Duplex en Tiempo Real y Multimedia (45 min)

Evaluación de Certificación: AI-1101

Comprueba tu dominio de transporte WebRTC, endpointing semántico, máquinas de estado de Barge-In y sincronización multimedia.