Muchas aplicaciones de voz a texto (STT) o reconocimiento de voz (ASR) requieren que la conversión de audio a texto se produzca en tiempo real. Estas aplicaciones pueden ser bots de voz, subtitulación en directo de vídeos, eventos o charlas, transcripción de reuniones, análisis de voz en tiempo real de llamadas de ventas o asistencia a agentes en un centro de contacto.
Una cuestión importante para los desarrolladores que buscan integrar STT en tiempo real en sus aplicaciones es la elección del protocolo y/o mecanismo para transmitir audio en tiempo real a la plataforma STT. Mientras que algunos proveedores de STT ofrecen sólo un método, en Voicegain ofrecemos múltiples opciones que los desarrolladores pueden elegir. En este post, exploramos en detalle todos estos métodos para que un desarrollador pueda elegir el más adecuado para su caso de uso específico.
Algunos de los factores que pueden orientar la elección concreta son:
- Lenguaje de programación y plataforma de implementación: ¿hay bibliotecas de clientes disponibles en el lenguaje de programación/plataforma de desarrollo (Java, Javascript, Python, Go, etc.) en el que se basa la aplicación?
- Cómo se pone a disposición de la aplicación el flujo de audio: es posible que la aplicación ya reciba el flujo de audio de una manera y en un formato determinados.
- El tipo de aplicación y sus requisitos de latencia y resistencia de la red.
- Relacionado con lo anterior: la calidad de la red entre la aplicación y la plataforma STT.
En Voicegain actualmente ofrecemos siete métodos/protocolos diferentes para soportar streaming a nuestra plataforma STT. Los tres primeros están basados en TCP y los cuatro últimos en UDP.
- Los métodos basados en TCP suelen ser una buena idea si la calidad de la red es muy robusta
- Los métodos basados en UDP podrían ser una mejor opción si la aplicación admite telefonía
Las opciones
1. WebSockets
El uso de WebSockets es una opción sencilla y popular para transmitir audio a Voicegain para el reconocimiento de voz. WebSockets han existido por un tiempo y la mayoría de los lenguajes de programación web tienen bibliotecas que lo soportan. Esta opción puede ser la forma más fácil de empezar. La API de Voicegain utiliza WebSockets binarios, y tenemos algunos ejemplos sencillos para empezar.
2. HTTP 1.1 con codificación de transferencia Chunked
Voicegain también soporta streaming sobre HTTP 1.1 utilizando codificación de transferencia por trozos. Esto le permite enviar datos de audio sin procesar con un tamaño desconocido, que es generalmente el caso para el streaming de audio. Voicegain soporta escenarios pull y push - podemos obtener el audio de una URL que usted proporcione o la aplicación puede enviar el audio a una URL que nosotros proporcionemos. Para utilizar este método, su lenguaje de programación debe tener bibliotecas que soporten la codificación de transferencia en trozos a través de HTTP, algunas de las bibliotecas HTTP más antiguas o más simples no lo soportan.
3. gRPC
gRPC se basa en el protocolo HTTP/2, diseñado para soportar conexiones bidireccionales de larga duración. Además, gRPC utiliza búferes de protocolo, que son un formato de serialización de datos más eficiente que JSON, utilizado habitualmente en las API HTTP RESTful. Ambos aspectos de gRPC permiten que los datos de audio se envíen de forma eficiente a través de la misma conexión que también se utiliza para enviar comandos y recibir resultados.
Con gRPC, se pueden generar fácilmente librerías del lado del cliente para múltiples lenguajes, como Java, C#, C++, Go, Python, Node Js, etc. El código cliente generado contiene stubs para que los clientes gRPC llamen a los métodos definidos por el servicio.
Usando gRPC, los clientes pueden invocar las APIs Voicegain STT como un objeto local cuyos métodos exponen las APIs. Este método es una forma rápida, eficiente y de baja latencia de transmitir audio a Voicegain y recibir respuestas de reconocimiento. Las respuestas se envían a través de la misma conexión de vuelta desde el servidor al cliente - esto elimina la necesidad de sondeo o callbacks para obtener los resultados cuando se utiliza HTTP.
gRPC es genial cuando se utiliza desde el código back-end o desde Android. No es una solución plug and play cuando se utiliza desde navegadores web, sino que requiere algunos pasos adicionales.
Métodos basados en UDP
Los tres primeros métodos descritos son métodos basados en TCP. Funcionan muy bien para el streaming de audio siempre que la conexión no tenga pérdida de paquetes o ésta sea mínima. La pérdida de paquetes provoca retrasos y fluctuaciones significativas en las conexiones TCP. Esto puede estar bien si el audio no tiene que ser procesado realmente en tiempo real y puede ser almacenado en buffer.
Si el comportamiento en tiempo real es importante y se sabe que la red no es fiable, el protocolo UDP es una alternativa mejor que TCP para la transmisión de audio. Con UDP, la pérdida de paquetes se manifestará como cortes de audio, pero eso puede ser preferible a las pausas y fluctuaciones excesivas en el caso de TCP.
4. Protocolo RTP con extensiones Voicegain
RTP es un protocolo estándar para la transmisión de audio a través de UDP. Sin embargo, RTP por sí mismo no suele ser suficiente y normalmente se utiliza con el Protocolo de Control RTP (RTCP) que lo acompaña. Voicegain ha implementado su propia variación de RTCP que puede utilizarse para controlar los flujos de audio RTP enviados al reconocedor.
Actualmente, la única forma de transmitir audio utilizando RTP a la plataforma Voicegain es utilizar nuestra librería propietaria Audio Sender Java. También proporcionamos Audio Sender Daemon que es capaz de leer los datos directamente desde los dispositivos de audio y transmitirlos a Voicegain para la transcripción en tiempo real.
5. SIP/RTP
Si está buscando invocar voz a texto en un centro de contacto, Voicegain ofrece APIs de bots de telefonía. Puede leer más sobre ellas aquí. Esencialmente, la plataforma Voicegain puede actuar como un punto final SIP y puede ser invitada a una sesión SIP. Podemos hacer dos cosas 1) Como parte de un IVR o Bot, reproducir avisos y recopilar información de la persona que llama 2) Como parte de una asistencia al agente en tiempo real, podemos escuchar y transcribir la interacción entre el agente y la persona que llama.
Para profundizar en (1), con estas API puede invitar a la plataforma Voicegain a una sesión SIPque proporcione al motor de voz a texto de Voicegain acceso al audio. Una vez establecido el flujo de audio, puede emitir comandos para reconocer las expresiones de la llamada y recibir la respuesta del reconocimiento utilizando nuestras devoluciones de llamada web. Puede escribir la lógica de su aplicación utilizando cualquier lenguaje de programación o un motor NLU de su elección - todo lo que se necesita es ser capaz de manejar peticiones HTTP y enviar respuestas.
En este escenario, la plataforma Voicegain actúa esencialmente como "boca" y "oído" de toda la conversación que tiene lugar a través de SIP/RTP. La aplicación puede emitir comandos JSON a través de HTTP que reproducen indicaciones y convierten la voz del interlocutor en texto durante toda la duración de la llamada en una única sesión. También puede grabar toda la conversación si la llamada se transfiere a un agente en directo y transcribirla a texto.
6. MRCP
Los proveedores de plataformas de centros de contacto como Cisco, Genesys, Avaya y las plataformas CCaaS basadas en FreeSWITCH suelen admitir MRCP para conectarse a los motores de reconocimiento de voz. Voicegain admite el acceso a través de MRCP tanto al reconocimiento del habla basado en un amplio vocabulario como al basado en la gramática. Recomendamos MRCP sólo para implementaciones Edge, Private Cloud u On-premise.
7. SIPREC
En los Contact Centers, para la transcripción en tiempo real de la interacción entre el agente y el llamante, Voicegain soporta SIPREC. Más información aquí.
Prueba Voicegain.
1. Haga clic aquí para obtener instrucciones para acceder a nuestro sitio de demostración en vivo.
2. Si estás creando una aplicación de voz interesante y quieres probar nuestras API, haz clic aquí pararegistrarte y obtener una cuenta de desarrollador y recibir 50 dólares en créditos gratuitos.
3. Si quieres llevar a Voicegain como tu propio asistente de transcripción de IA a las reuniones, haz clic aquí.