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

Speech-To-Text avec Nexmo et Microsoft Azure

Publié le April 19, 2021

Temps de lecture : 6 minutes

Si vous avez déjà eu besoin de recevoir des appels téléphoniques entrants et de les transcrire automatiquement en temps réel, vous avez de la chance, car vous pouvez le faire en utilisant notre nouveau connecteur Nexmo-to-Azure Speech Service connector.

Nous avons récemment mis à jour le code et les options de déploiement de ce connecteur, de sorte qu'il est désormais encore plus facile de le déployer, de le modifier ou de l'étendre s'il correspond à un problème que vous avez essayé de résoudre.

Si cela vous a déjà convaincu et que vous êtes impatient de vous lancer, vous pouvez consulter plus de détails dans notre nexmo-community sur Github.

Comment l'application fonctionne avec le service vocal d'Azure

La plateforme Azure de Microsoft fournit un grand nombre de services cognitifs via une API qui vous permet de travailler avec la parole, la vision, le langage et bien plus encore. Cette application utilise leur API de reconnaissance vocale pour reconnaître des données audio diffusées en temps réel via une connexion websocket d'un appel téléphonique facilité par un objet de contrôle d'appel Nexmo.

En d'autres termes, vous littéralement appeler l'API et lui parler. Azure Speech effectue la reconnaissance de l'audio et les phrases sont renvoyées à la console.

Nexmo  Azure Speech Service

Exécution de votre propre instance

Cette application fait partie de notre Nexmo Extend où nous créons des Applications utiles et réutilisables pour vous aider à utiliser Nexmo avec d'autres grands fournisseurs de services tels que Microsoft Azure, Google Cloud et Amazon Web Services.

Nous avons facilité le déploiement et l'utilisation immédiate de votre propre instance de cette application, en un seul clic.

Options de déploiement en un clic

Vous avez la possibilité de déployer l'application sur Heroku, ou Azure via les boutons en haut du Readme dans le dépôt GitHub.

Cependant, si vous souhaitez le déployer et avoir un moyen sûr (cassable !) de travailler avec le code directement depuis votre navigateur, essayez de remixer l'application sur Glitch et commencez à étendre la base de code immédiatement.

Déployer/exécuter avec Docker

Cette application est également disponible pour être exécutée ou déployée avec Docker. Le moyen le plus rapide de le faire est de cloner le dépôt et, à partir du répertoire racine, d'utiliser Docker Compose pour lancer l'application :

docker-compose up

Quelle que soit l'option de déploiement choisie, vous obtiendrez un nouveau numéro virtuel Nexmo. hostname où l'application est exécutée, vous devrez donc y associer votre numéro virtuel Nexmo pour terminer l'installation.

Lier l'application à 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.

Utilisation du tableau de bord

  1. Créer une application vocale

  2. Ajouter l'URL de l'événement - https://<your_new_hostname>/ncco

  3. Ajouter l'URL de la réponse - https://<your_new_hostname>/event

  4. Cliquez sur Create Application

  5. Cliquez sur Numbers et liez le numéro virtuel récemment créé.

  6. Copiez le numéro virtuel pour l'utiliser à l'étape suivante.

Utilisation de l'interface de ligne de commande

Vous pouvez installer l'interface de programmation en suivant les instructions suivantes. Ensuite, créez une nouvelle application Nexmo qui met également en place vos answer_urlet event_url pour l'application fonctionnant localement sur votre machine.

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

Vous obtiendrez un numéro d'identification de l'application. Notez-le.

Louer un nouveau numéro virtuel

Si vous n'avez pas de numéro déjà en place, vous devrez en louer un. Vous pouvez le faire en utilisant le CLI :

nexmo number:buy

Lier le numéro virtuel à l'Application

Enfin, reliez votre nouveau numéro à l'application que vous avez créée en cours d'exécution :

nexmo link:app YOUR_NUMBER YOUR_APPLICATION_ID

Essayez-le

Maintenant que votre application fonctionne - quel que soit l'endroit où vous l'avez déployée - appelez le numéro que vous lui avez attribué et commencez à parler. Après une brève pause, vous verrez ce que vous dites écrit sur la console, en temps réel.

Comment l'étendre

La prochaine étape logique consisterait à transmettre les phrases renvoyées par Azure Speech Service à un autre service qui les utiliserait et agirait en fonction de ce qu'il reçoit.

Vous pouvez le faire en modifiant la fonction on_return_message qui se termine actuellement comme suit :

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

En utilisant la bibliothèque Requests (qui est déjà une dépendance, il n'est donc pas nécessaire de l'installer à nouveau), vous pouvez envoyer des phrases en tant qu'objet JSON à une autre API où elles seront consommées, puis exploitées. POST les phrases en tant qu'objet JSON vers une autre API où elles seront consommées, puis exploitées. Pour ajouter cette fonctionnalité, modifiez la fin de l'instruction if dans on_return_message par quelque chose comme ceci :

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)

Chaque fois qu'une nouvelle phrase est renvoyée par Azure Speech Service, un objet {"phrase":"Words returned by the app."} est envoyé.

À vous de voir ce que vous en ferez ensuite !

Si vous étendez cette application, ou si vous avez des questions sur son fonctionnement, rendez-vous sur le canal Slack de la communauté Nexmo où nous serons plus qu'heureux de vous aider à répondre à vos questions et d'écouter vos suggestions.

Partager:

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

Ancien directeur de la formation des développeurs chez Vonage. Avec une expérience de développeur créatif, de gestionnaire de produits et d'organisateur de journées de hacking, Martyn travaille comme défenseur de la technologie depuis 2012, après avoir travaillé dans le secteur de la radiodiffusion et dans de grandes maisons de disques. Il forme et responsabilise les développeurs du monde entier.