La creación de aplicaciones de transmisión en vivo de extremo a extremo con interacción de voz en tiempo real presenta varios desafíos: las limitaciones del ancho de banda de la red pueden causar una alta latencia y degradación de la calidad en aplicaciones en las que el tiempo es crítico. Las barreras del idioma limitan la interacción efectiva entre humanos y máquinas en la comunicación por voz multilingüe. La escalabilidad y la resiliencia requieren un difícil equilibrio entre el rendimiento y los costos de infraestructura. La compatibilidad entre navegadores y dispositivos móviles exige un esfuerzo de desarrollo significativo, especialmente para las empresas emergentes.
Esta publicación presenta una solución basada en Amazon Nova 2 Sonic (Nova Sonic) y Amazon Kinesis Video Streams WebRTC (WebRTC) que aborda estos desafíos. WebRTC es responsable de ajustar dinámicamente la tasa de bits en redes inestables, lo que ayuda a mantener la calidad del audio y al mismo tiempo reduce las conexiones caídas. Nova Sonic proporciona diálogos efectivos en lenguaje humano, para que los usuarios puedan interactuar de forma más natural en el idioma elegido. Ambos servicios están completamente administrados por AWS, por lo que escalan automáticamente con alta resiliencia. AWS también proporciona ejemplos de código abierto que puede utilizar como punto de partida para su propia aplicación.
En esta publicación, analizaremos la arquitectura de la solución, los patrones de implementación y dos ejemplos de escenarios del mundo real.
Nova Sonic y WebRTC
Los canales de agentes de voz tradicionales suelen incluir módulos separados para el reconocimiento de voz, el procesamiento del lenguaje y la síntesis de voz. Nova Sonic ofrece una arquitectura unificada de voz a voz que permite conversaciones de voz en tiempo real entre usuarios y agentes de IA con baja latencia.
Con comprensión y generación de voz unificadas, Nova Sonic ofrece IA conversacional natural y similar a la humana. El modelo Nova Sonic proporciona diferentes estilos de habla e interfaces de herramientas para agentes externos. Puede usarlo para crear una interfaz de voz más intuitiva y con mayor capacidad de respuesta con mayor conocimiento contextual.
Un canal de streaming típico consta de tres componentes principales: fuente de medios, servidor de medios y consumidor de medios. El diagrama anterior muestra estos componentes y sus respectivos protocolos, como RTMP, RTSP, HLS, MPEG-DASH y WebRTC.
Web Real-Time Communication (WebRTC) es un protocolo público que moderniza la transmisión en vivo al proporcionar conexiones directas de igual a igual en tiempo real sin complementos ni instalaciones de software adicionales. Este enfoque elimina la necesidad de servidores intermedios y reduce significativamente la latencia. Entre todos los protocolos de transmisión de medios, WebRTC ofrece la latencia más baja, como se muestra en la siguiente imagen.
WebRTC también incluye funciones integradas como transmisión de velocidad de bits adaptativa (ABR), corrección de errores directos (FEC) y gestión del búfer de fluctuación. Estas funciones pueden ajustar automáticamente el consumo de ancho de banda y resolver problemas de pérdida de paquetes o fluctuaciones en una conectividad débil. Podrás mantener conversaciones fluidas incluso en malas condiciones de red.
La naturaleza de código abierto de WebRTC y su amplia compatibilidad con navegadores (Chrome, Firefox, Safari, Edge, Android, iOS, etc.) acelerarán la adopción de soluciones y fomentarán la mejora continua. También es muy adecuado para el procesamiento en tiempo real de flujos de medios con funciones de IA.
Arquitectura de la solución
Es posible que desee implementar soluciones de transmisión en vivo con interacción de voz multilingüe para los siguientes escenarios: Vehículos conectados que ayudan a los conductores con capacidades de traducción en tiempo real. Fábricas inteligentes que apoyan la comunicación de operadores interculturales a través de sistemas de control de calidad activados por voz. Aplicaciones robóticas que brindan interacciones de servicio al cliente multilingües. Dispositivos domésticos inteligentes que ofrecen control de voz instantáneo en diferentes idiomas, para que puedas obtener soporte técnico global a través de traducción de audio en tiempo real y guía visual.
El siguiente diagrama ilustra cómo implementar la solución Nova Sonic junto con Kinesis Video Streams como un servicio WebRTC administrado. Muestra la integración de herramientas con fuentes populares como Retrieval Augmented Generation (RAG), Model Context Protocol (MCP) y Strands Agents.
[1] En la aplicación cliente, los usuarios establecen el proceso de negociación WebRTC conectándose al canal de señalización WebRTC de Kinesis Video Streams. Los datos de audio y video se transmiten a través de la conexión WebRTC bidireccional.
[2] Después de señalar los mensajes para la oferta/respuesta del Protocolo de descripción de sesión (SDP) y el intercambio de candidatos de Establecimiento de conectividad interactiva (ICE), el cliente y el servidor inician los intentos de conexión entre pares bidireccionales. Luego, los datos de video y audio se pueden transmitir con baja latencia a través de una conexión RTC exitosa.
[3] El canal de medios maneja la transmisión de audio y video en tiempo real con control de velocidad de bits adaptativo y negociación de códec. El canal de datos proporciona una transmisión segura y ordenada de datos de aplicación arbitrarios, por ejemplo textos, archivos y mensajes de control. Ambos utilizan cifrado Datagram Transport Layer Security (DTLS) y utilidades de recorrido de sesión para NAT (STUN)/recorrido utilizando retransmisiones alrededor de protocolos NAT (TURN) para el recorrido de traducción de direcciones de red (NAT).
[4] El procesador de eventos de voz a voz organiza la interacción de los eventos de entrada y los eventos de salida con Nova Sonic. En nuestra solución, se clasifican en eventos de medios que se transmiten a través del canal de medios WebRTC y datos de texto a través del canal de datos WebRTC.
[5] Utilice el SDK de Python para establecer una conexión HTTP/2 para transmisión bidireccional con Nova Sonic. Esta conexión admite la comunicación de datos multimedia en tiempo real y minimiza la latencia para los usuarios.
[6] Además de la conversación de audio de voz a voz con conocimientos previamente capacitados, Nova Sonic admite llamadas de herramientas asincrónicas para acceder a servidores MCP, agentes de Strands o RAG. Esta publicación demuestra la función de uso de herramientas con ejemplos.
Si ya está utilizando Nova Sonic, notará que esta arquitectura es similar a la solución WebSocket. Te mostraré las diferencias clave.
Comparación de soluciones
En comparación con la opción de implementación WebSocket, esta solución de voz a voz basada en WebRTC proporciona una capa de red diferente adecuada para dispositivos móviles y de IoT. Estos dispositivos suelen requerir conexiones de baja latencia sin un gran ancho de banda de red. La solución también incorpora una capa personalizada de Detección de actividad de voz (VAD) para una experiencia de usuario mejorada.
El protocolo de transmisión de audio cambió de WebSocket a WebRTC
Los datos de voz se transmiten a través del canal de medios WebRTC en forma de streaming, es decir, a través de la pista de audio de la conexión entre pares en formato SRTP (Protocolo de transporte seguro en tiempo real), en lugar de mensajes WebSocket. Implementamos funciones WebRTC (como oferta/respuesta SDP, DTLS, protocolo de transmisión de control de flujo (SCTP), SRTP y conexión entre pares) utilizando la biblioteca aiortc Python.
Mecanismo de detección de voz humana.
El cliente React WebRTC captura audio continuamente y lo envía al servidor Python WebRTC. Para suprimir el ruido, aumentar la precisión del habla y reducir los tokens de audio para Nova Sonic, la solución aplica la detección de actividad de voz (VAD) a la canalización en el lado del servidor. La implementación del código basada en la biblioteca Python WebRTCVAD se muestra en la siguiente imagen. Construida sobre un modelo de mezcla gaussiana (GMM), esta biblioteca es liviana, estable y rápida para el procesamiento de audio a nivel de cuadro WebRTC. También puedes utilizar otras bibliotecas como Silero VAD, Pyannote VAD.
Adaptación del formato de datos de audio.
WebRTC define estándares de formatos de audio y video específicos. Al enviar y recibir datos de audio a través de una conexión WebRTC, debes realizar alguna adaptación de formato: [1] Los fotogramas estéreo entrelazados requieren extraer el canal de audio izquierdo o derecho; [2] Las frecuencias de muestreo de 48 kHz u otras frecuencias se remuestrearán a 16 kHz, según lo exige Nova Sonic API; [3] Los valores de datos Int16 se convertirán a Float32 para mejorar la precisión del cálculo. Para obtener más información, consulte la documentación de GitHub.
Tutorial de la solución
La solución en este repositorio de GitHub proporciona un ejemplo genérico y dos ejemplos de escenarios específicos: un ejemplo de hogar inteligente y un ejemplo de vehículo conectado. Puede adaptar estos patrones para sus propias aplicaciones.
Ejemplo de casa inteligente
En el escenario del hogar inteligente, abre un diálogo con Nova Sonic para controlar los dispositivos IoT. Para ilustrar una canalización de comandos completa, la solución utiliza una base de conocimientos de Amazon Bedrock para recuperar temas MQTT y generar respuestas de IA. Luego se conecta al servidor MCP para que AWS IoT Core entregue mensajes de comando. La arquitectura completa se muestra en la siguiente imagen.
Para conocer los pasos de configuración, consulte el archivo Léame del hogar inteligente en GitHub.
Ejemplo de vehículo conectado
En el escenario del vehículo conectado, el sistema establece un monitoreo en tiempo real para detectar comportamientos peligrosos de los conductores en el uso del teléfono. El sistema utiliza asistentes de voz para preguntar si se necesita asistencia y verificar la atención del conductor. El personal de supervisión puede acceder a transmisiones de monitoreo en tiempo real en un canal de video independiente para confirmar el estado de seguridad tanto de los vehículos como de los conductores. La siguiente arquitectura aborda este escenario:
En el siguiente diagrama se muestra el canal de medios completo en el escenario del vehículo conectado. Las conexiones WebRTC simultáneas son independientes entre sí con cifrado TLS dedicado.
Para conocer los pasos de configuración, consulte el archivo Léame del vehículo conectado en GitHub.
Conclusión
En esta publicación, le mostramos cómo crear una solución basada en WebRTC que combina Amazon Nova 2 Sonic y Amazon Kinesis Video Streams WebRTC. Esta solución aborda barreras comunes en la transmisión en vivo, como el rendimiento degradado en redes inestables y la falta de inteligencia conversacional. Puede utilizar esta solución como base para crear sus propias aplicaciones de asistente de voz inteligentes, robustas, flexibles y de baja latencia para usuarios de dispositivos inteligentes y vehículos conectados.
Para comenzar y aprender más: