
Compartir:
Autores
Integra Deepgram con Vonage AI Studio para el reconocimiento de voz
Tiempo de lectura: 11 minutos
Este artículo se actualizó en julio de 2025
Introducción
El reconocimiento automático del habla (ASR) es un componente esencial de las aplicaciones modernas basadas en la voz, que permite a las máquinas convertir el lenguaje hablado en texto para su procesamiento e interacción. El ASR desempeña un papel fundamental en los centros de contacto, los asistentes virtuales y otros servicios habilitados por voz, ya que facilita la comunicación en tiempo real entre los usuarios y los agentes de IA. Si bien Vonage AI Studio ofrece una solución de ASR integrada, existen situaciones en las que se puede utilizar un motor de ASR personalizado. motor ASR personalizado personalizado. La ASR personalizada se puede adaptar a la jerga específica de la industria, los idiomas o los acentos regionales que la ASR incorporada puede no manejar con la misma eficacia.
Además, la integración de un motor ASR externo, como Deepgram puede ofrecer más control sobre la precisión, la velocidad de transcripción y el vocabulario personalizado, proporcionando un mayor grado de flexibilidad en aplicaciones especializadas.
En este artículo se utilizará Deepgramun proveedor de servicios de motor ASR. Utilizaremos el Conector ASR para integrar el Agente AI de ejemplo o tu Agente AI con el Motor ASR de Deepgram. Dado que el Conector ASR gestiona la parte de telefonía, utilizaremos un Agente AI de tipo HTTP en lugar de un Agente AI de tipo Telefonía. El Agente AI y el Conector ASR se comunican vía HTTP.
TLDR; Puede encontrar la integración la integración completa en Github
Requisitos previos
Todos los enlaces y las versiones correspondientes para los requisitos previos están disponibles en el repositorio de código:
Una cuenta API de Vonage
> Nota: Si estás usando el SDK de Deepgram Node directamente, asegúrate de usar la versión 3.x o superior, que es la última soportada en julio de 2025. Este tutorial utiliza la integración directa WebSocket, que sigue siendo estable y no depende del SDK.
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
Descripción general de la integración de Deepgram ASR y Vonage AI Studio
ASR Connector Key Components
En este proceso, un cliente inicia una llamada telefónica a través de la Red Telefónica Pública Conmutada (RTPC), que es gestionada por el Conector ASR. El conector ASR conecta la llamada de voz del cliente (PSTN 1) a una conexión WebSocket, lo que permite al sistema procesar la llamada en tiempo real. El audio del cliente pasa a través de este WebSocket al motor ASRque transcribe las palabras habladas en texto. A continuación, el conector ASR envía esta transcripción al agente de Agente AI Studio.
Una vez que el agente de AI Studio recibe el texto transcrito, procesa la información del cliente y genera una respuesta adecuada. Esta respuesta se envía al conector ASR, donde se convierte en texto a voz (TTS) y se reproduce para el cliente. A lo largo de la interacción, la IA escucha y responde continuamente al cliente, guiando la conversación. En cualquier momento, si la IA determina que se necesita más ayuda, el sistema puede transferir la llamada a un agente humano. agente humano (PSTN 2), indicando que la sesión de IA ha terminado.
Esta configuración garantiza una comunicación fluida entre el cliente y la IA mediante el reconocimiento de voz y la respuesta automáticos. El Conector ASR actúa como intermediario, gestionando tanto la transcripción como la interacción con la IA, mientras que el motor ASR permite el procesamiento en tiempo real de las palabras habladas. El sistema está diseñado para gestionar llamadas de forma eficiente, pero puede pasar a un agente en directo si se requiere una entrada más compleja.
¿Cómo funciona el conector ASR?
El sitio Conector ASR es un único programa ejecutable que gestiona el flujo de llamadas de voz entre un cliente, el motor ASR y el Agente AI. Aunque el programa puede funcionar como un archivo de código unificado, se divide conceptualmente en dos partes para simplificar su comprensión y despliegue. La parte 2 gestiona las llamadas telefónicas (PSTN 1 y PSTN 2) y la interacción con el Agente AI, mientras que la Parte 1 se encarga del procesamiento del audio transmitiendo el audio del cliente al motor ASR y devolviendo las transcripciones a la Parte 2. Esta división permite una comprensión más fácil del flujo y también puede implementarse en servidores separados si es necesario.
Cuando se inicia una llamada (entrante o saliente), Parte 2 establece una sesión con el Agente AI y utiliza un WebSocket para transmitir el audio del cliente a Parte 1. A continuación, este audio se envía al motor ASR para su transcripción. El motor ASR devuelve el texto transcrito a la Parte 2, que lo envía al agente de IA como parte de un "paso" de IA. El agente de IA procesa esta transcripción y devuelve una respuesta, que se reproduce al cliente mediante texto a voz (TTS) a través del tramo 1 de la RTC.
La interacción continúa de este modo, enviando cada transcripción como un paso de IA y reproduciendo las respuestas al cliente. Si el agente de IA determina que el cliente necesita ser transferido a un agente en directo, envía una solicitud a Parte 2 para finalizar la sesión de IA e iniciar la transferencia. A continuación, la Parte 2 conecta al cliente (RTC 1) con el agente en directo (RTC 2), finalizando la conexión WebSocket y la sesión ASR. A partir de este punto, el audio fluye directamente entre el cliente y el agente en directo, completando la transferencia.
ASR Connector Overview
¿Cómo funciona el agente de IA?
La muestra Agente AI Studio funciona tanto en modo de llamada entrante como saliente, y la dirección la determina el Conector ASRque inicia el flujo del Agente AI. La función principal del agente es preguntar al usuario su nombre y, a continuación, hacerle entrar en un bucle en el que puede escuchar una broma o ser transferido a un agente en directo. Cuando se inicializa la sesión del agente, éste recibe parámetros clave como la dirección de la llamada, un identificador único de llamada (UUID) y una dirección webhook para gestionar las transferencias de llamadas.
El agente comienza comprobando el parámetro de dirección y saluda al usuario en consecuencia. A continuación, pregunta al usuario su nombre utilizando un nodo "Collect Input", que almacena la respuesta. Toda la comunicación entre el Agente AI y el usuario fluye a través del Conector ASRque actúa como intermediario para la transmisión de mensajes y entradas del usuario entre ambos. El Agente AI no interactúa directamente con el usuario sino a través de llamadas a la API, donde el Conector ASR informa al Agente AI de las entradas del usuario y espera la respuesta del agente.
El agente continúa preguntando si el usuario desea escuchar un chiste o transferirse a un agente en directo. Para entregar los chistes, el agente llama a un Webhook que recupera chistes de un sitio web externo (como una API de "chistes de papás") y luego lee el chiste al usuario a través de un nodo "Enviar mensaje". Se vuelve a preguntar al usuario si desea escuchar otro chiste o ser transferido. En función de la respuesta del usuario, se establece una Clasificación determina si el usuario quiere escuchar otro chiste o si desea ponerse en contacto con un agente.
Cuando el usuario elige transferir a un agente en vivo, el agente utiliza otro Webhook para notificarlo a la aplicación que controla la parte de telefonía. El webhook pasa información esencial, como un anuncio para el usuario, el UUID para identificar de forma única la llamada y el número de teléfono del agente en directo. Una vez que este webhook se activa, el agente ha completado su tarea, y el flujo termina cuando la llamada se transfiere al agente en vivo.
Cómo configurar su aplicación
Crear un proyecto Deepgram y recupera tu Deepgram API Key
Crear un túnel ngrok para escuchar el puerto 8000
Por favor, tome nota de la URL ngrok Endpoint, ya que será necesario en las próximas secciones, que la URL se parece: https://yyyyyyyy.ngrok.io
Para obtener más ayuda, consulte pruebas con ngrok
Ingresa a tu panel de desarrollador de Vonage y crea una nueva aplicación y haz lo siguiente:
Activar las funciones de Voice
Lo verás en la sección de capacidades o haz clic en Editar si no lo ves.
En URL de respuesta, deje HTTP GET e introduzca https://yyyyyyyy.ngrok.io/answer (sustituya <host> y <port> por el nombre de host público y, si es necesario, el puerto público del servidor en el que se ejecuta esta aplicación de ejemplo).
En Event URL, seleccione HTTP POST, e introduzca https://yyyyyyyy.ngrok.io/event (sustituya <host> y <port> por el nombre de host público y, si es necesario, el puerto público del servidor en el que se ejecuta esta aplicación de ejemplo).
Tome nota de la región de su aplicación
Haga clic en "Generar clave pública y privada".
Guarde el archivo de clave privada en esta carpeta de aplicaciones como .private.key
IMPORTANTE: No olvide hacer clic en [Guardar cambios] en la parte inferior de la pantalla si ha creado un nuevo conjunto de claves.
Vincule un número de teléfono a esta aplicación si no se ha vinculado ninguno a la aplicación.
Toma nota de algunos valores que necesitarás más adelante en el tutorial:
Clave API de tu cuenta Account API keyen adelante denominada variable de entorno API_KEY
La API secreta de tu cuenta de Vonage Account API secreten lo sucesivo denominada variable de entorno API_SECRET
Su ID de aplicación, denominado en lo sucesivo APP_ID
Su región seleccionada, denominada en lo sucesivo variable de entorno API_REGION
El número de teléfono vinculado a su aplicación, denominado en lo sucesivo variable de entorno SERVICE_PHONE_NUMBER.
Cómo configurar su agente HTTP
Ir al Panel de AI Studio
Importar el Agente AI de ejemplo BlogAgent.zip del repositorio de Github
Puede cambiar el Nombre del agente
Haga clic en [Importar agente].
Abra su nuevo agente
Establezca el número de teléfono del agente en directo
Vaya a Propiedades (iconos de la columna de la izquierda) > Parámetros >Parámetros personalizados > callee
Cambia el valor al número de destinatario que desees
debe ser un número de teléfono en formato E.164 sin el signo "+" inicial
Haga clic en "Cerrar".
Toma nota de algunos valores más que necesitarás más adelante en el tutorial:
Su ID de agente, denominada en lo sucesivo variable de entorno AGENT_ID
Tu Vonage AI API, denominada en lo sucesivo variable de entorno X_VGAI_KEY
No confundas tu clave API de Vonage AI (X-Vgai-Key) con la clave API de tu cuenta de Vonage
Vonage AI Studio ahora admite funciones avanzadas como webhooks de eventos en tiempo real (`onSpeechEnd`,
onStepComplete), selección de voz de texto a voz personalizada y modo de susurro. Puedes explorarlas en las pestañas "Eventos" y "Configuración de voz" en el creador de agentes.
Cómo ejecutar la aplicación ASR localmente en su ordenador
Copiar o renombrar .env-ejemplo a .env
El argumento de la variable de entorno VG_AI_HOST debe coincidir con el argumento de la variable de entorno API_REGION.
Instala los módulos de node con el comando npm install
Inicie la aplicación en una pestaña de terminal diferente a la de su túnel ngrok: nodo asr-conector
La aplicación se ejecuta por defecto en el puerto 8000. Recuerde tener su túnel ngrok ejecutándose en el mismo puerto que la aplicación.
Esta configuración es ideal para realizar pruebas, pero no debe utilizarse en producción sin proteger el conector ASR. En entornos de producción, utilice siempre HTTPS, valide las solicitudes entrantes con tokens firmados y restrinja los rangos de IP o las cabeceras de autenticación para proteger los datos confidenciales de audio y transcripción.
Cómo probar el agente de IA de muestra y el conector ASR
Tanto si la primera llamada es saliente como entrante, se le preguntará al usuario (por ejemplo, al cliente) su nombre y, a continuación, se reproducirán algunos chistes en lugar de música en espera, hasta que el usuario diga "no" para que no haya más chistes, tras lo cual la llamada se transferirá al otro usuario (por ejemplo, al agente en directo) cuyo número de teléfono es el que se ha configurado al desplegar el agente de IA.
Cómo probar las llamadas RTC salientes
Puede activar la llamada saliente abriendo la siguiente dirección web con su URL ngrok: https://yyyyyyyy.ngrok.io/startcall?callee=12995551515
Cómo probar las llamadas RTC entrantes
Llama al número de teléfono vinculado a tu cuenta API de Vonage.
Conclusión
En este tutorial, aprendiste a extender Vonage AI Studio para integrarlo con un motor ASR alternativo mediante un agente AI de tipo HTTP y la aplicación de servidor ASR Connector, que se encarga de la parte de telefonía (a través de Vonage Voice API) y administra la conexión con el motor ASR.
Esta integración gestiona eficazmente las llamadas de tipo RTC, pero también puede ampliarse para admitir canales de comunicación adicionales. Una posible mejora es ampliar esta configuración para llamadas SIP, lo que le permitiría aprovechar la telefonía basada en IP, proporcionando aún más flexibilidad a las empresas que utilizan redes privadas. Además, podría adaptar la integración para que funcione con clientes WebRTC, lo que permitiría la comunicación en tiempo real directamente a través de navegadores web, convirtiéndola en una solución adecuada para la atención al cliente en sitios web sin necesidad de servicios de telefonía tradicionales.
También puede considerar la posibilidad de cambiar el motor de texto a voz predeterminado en AI Studio por un proveedor externo como Eleven Labs o Google Cloud TTS, utilizando webhooks para controlar la experiencia de voz con mayor precisión. Los metadatos de transcripción en tiempo real de Deepgram también pueden utilizarse para activar eventos en sistemas externos, lo que resulta útil para el registro, el análisis o la lógica de escalada.
Si tiene preguntas, únase a nuestra Slack de la comunidad o envíenos un mensaje en X.
Recursos adicionales
Tengo una considerable deuda de gratitud con Mark Berkelandcuya inestimable ayuda y asombrosa brillantez han convertido este blog en una obra de arte técnica de categoría mundial.
