https://d226lax1qjow5r.cloudfront.net/blog/blogposts/speech-to-text-with-nexmo-and-azure-speech-dr/Speech-To-Text-with-Nexmo-and-Microsoft-Azure.png

Voz a texto con Nexmo y Microsoft Azure

Publicado el April 19, 2021

Tiempo de lectura: 6 minutos

Si alguna vez ha necesitado algo que le ayude a recibir llamadas telefónicas entrantes y transcribirlas automáticamente en tiempo real, está de suerte, porque puede hacerlo utilizando nuestro recién actualizado conector conector Nexmo-to-Azure Speech Service.

Recientemente hemos actualizado el código y las opciones de despliegue de este conector, por lo que ahora es aún más fácil de desplegar, modificar o ampliar si esto coincide con un problema que te has encontrado tratando de resolver.

Si eso ya te ha convencido y estás deseando ponerte en marcha, puedes consultar más detalles en nuestra nexmo-comunidad repositorio Github.

Cómo funciona la aplicación con el servicio de voz de Azure

La plataforma Azure de Microsoft ofrece un gran conjunto de servicios cognitivos vía API que permite trabajar con Voz, Visión, Lenguaje y más. Esta aplicación utiliza su API de voz a texto para reconocer el audio que se transmite en tiempo real a través de un websocket de una llamada telefónica facilitada por un Objeto de control de llamadas Nexmo.

En pocas palabras, usted literalmente llamas a la API y hablas con ella. Azure Speech reconoce el audio y devuelve las frases a la consola.

Nexmo  Azure Speech Service

Ejecutar su propia instancia

Esta aplicación forma parte de Nexmo Extend donde creamos aplicaciones útiles y reutilizables para ayudarte a poner en marcha Nexmo con otros grandes proveedores de servicios como Microsoft Azure, Google Cloud y Servicios Web de Amazon.

Le hemos facilitado la implantación y el uso inmediato de su propia instancia de esta aplicación con un solo clic.

Opciones de despliegue con un solo clic

Tienes la opción de desplegar la aplicación en Heroku o Azure a través de los botones de la parte superior del Léame en el repositorio de GitHub.

Sin embargo, si quieres desplegarla y tener una forma segura (¡rompible!) de trabajar con el código directamente desde tu navegador, prueba a remezclar la aplicación en Glitch y empieza a extender el código directamente.

Despliegue/ejecución con Docker

Esta aplicación también está disponible para ejecutarse o desplegarse con Docker. La forma más rápida de hacerlo es clonar el repositorio y, desde el directorio raíz, utilizar Docker Compose para ponerlo en marcha:

docker-compose up

Sea cual sea la opción de despliegue que elija, terminará con un nuevo hostname donde se ejecuta la aplicación, por lo que tendrás que vincular tu número virtual Nexmo al mismo para completar la configuración.

Vincular la aplicación a Nexmo

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.

This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.

Uso del panel de control

  1. Crear una aplicación de voz

  2. Añade la URL del evento - https://<your_new_hostname>/ncco

  3. Añade la URL de la respuesta - https://<your_new_hostname>/event

  4. Haga clic en Create Application

  5. Haga clic en Numbers y vincule el número virtual recién creado.

  6. Copie el número virtual para utilizarlo en el siguiente paso.

Uso de la interfaz de línea de comandos

Puede instalar la CLI siguiendo estas instrucciones. A continuación, cree una nueva aplicación Nexmo que también configura su answer_urly event_url para la aplicación que se ejecuta localmente en su máquina.

nexmo app:create ms-speech-to-text http:///ncco http:///event

Esto devolverá un ID de aplicación. Anótelo.

Alquilar un nuevo número virtual

Si aún no dispone de un número, deberá alquilar uno. Puedes conseguirlo utilizando la CLI:

nexmo number:buy

Vincular el número virtual a la aplicación

Por último, vincula tu nuevo número a la aplicación que has creado ejecutando:

nexmo link:app YOUR_NUMBER YOUR_APPLICATION_ID

Pruébelo

Ahora, con tu aplicación en marcha -dondequiera que la hayas desplegado-, llama al número que le hayas asignado y empieza a hablar. Tras una breve pausa, verás lo que dices escrito en la consola, en tiempo real.

Cómo ampliarlo

El siguiente paso lógico sería empezar a enviar las frases devueltas por Azure Speech Service a otro servicio que las consuma y actúe en función de lo recibido.

Puede hacerlo modificando la función on_return_message que actualmente termina así:

if data['RecognitionStatus'] == "Success":
    # Extend From here to handle your transcription messages
    print(data["DisplayText"])

Usando la librería Requests (que ya es una dependencia, por lo que no es necesario instalarla de nuevo), podrías POST las frases como un objeto JSON a otra API donde se consumirían, y posteriormente se actuaría sobre ellas. Para añadir esta funcionalidad, cambie la terminación if en on_return_message para que sea algo como esto

if data['RecognitionStatus'] == "Success":
    # Extend From here to handle your transcription messages
    print(data["DisplayText"])

    url = "http://<another_api>/<endpoint>"
    headers = {'Content-Type': 'application/json'}
    
    resp = requests.post(url, headers=headers, data=json.dumps({'phrase': data["DisplayText"]}))

    if resp.status_code == 200:
        print(resp.content)
    else:
        print(resp.status_code)
        print(resp.content)

Cada vez que el Azure Speech Service devuelva una nueva frase, se enviará un objeto {"phrase":"Words returned by the app."} será enviado.

Lo que haga después con él depende de usted.

Si amplías esta aplicación o tienes alguna pregunta sobre su funcionamiento, dirígete al canal de canal Slack de la Comunidad Nexmo donde estaremos encantados de ayudarle con cualquier duda y escuchar cualquier sugerencia.

Compartir:

https://a.storyblok.com/f/270183/250x250/d0444194cd/martyn.png
Martyn DaviesAntiguos alumnos de Vonage

Antiguo Director de Educación para Desarrolladores en Vonage. Con experiencia como desarrollador creativo, gestor de productos y organizador de jornadas de hacking, Martyn lleva trabajando como defensor de la tecnología desde 2012, tras haber pasado anteriormente por el mundo de la radiodifusión y las grandes discográficas. Educa y capacita a desarrolladores de todo el mundo.