https://a.storyblok.com/f/270183/1368x665/f4716b6780/automatic-speech-recognition.png

Intégrer Deepgram à Vonage AI Studio pour la reconnaissance vocale

Publié le October 24, 2024

Temps de lecture : 11 minutes

Cet article a été mis à jour en juillet 2025

Introduction

La reconnaissance automatique de la parole (ASR) est un composant essentiel des applications modernes basées sur la voix, permettant aux machines de convertir le langage parlé en texte à des fins de traitement et d'interaction. La RAS joue un rôle central dans les centres de contact, les assistants virtuels et d'autres services à commande vocale en facilitant la communication en temps réel entre les utilisateurs et les agents d'IA. Bien que Vonage AI Studio offre une solution ASR intégrée, il existe des scénarios où l'utilisation d'un moteur ASR personnalisé peut s'avérer préférable. La RAS personnalisée peut être adaptée au jargon spécifique de l'industrie, aux langues ou aux accents régionaux que la RAS intégrée pourrait ne pas gérer aussi efficacement.

En outre, l'intégration d'un moteur ASR externe, tel que Deepgram peut offrir plus de contrôle sur la précision, la vitesse de transcription et le vocabulaire personnalisé, offrant ainsi un plus haut degré de flexibilité dans les applications spécialisées.

Cet article utilisera Deepgramun fournisseur de services de moteur ASR. Nous utiliserons le connecteur ASR fourni pour intégrer l'exemple d'agent AI ou votre agent AI au moteur ASR de Deepgram. Étant donné que le connecteur ASR gère la partie téléphonie, nous utiliserons un agent AI de type HTTP au lieu d'un agent AI de type téléphonie. L'agent AI et le connecteur ASR communiquent via HTTP.

TLDR ; Vous pouvez trouver l'intégration sur Github

Conditions préalables

Tous les liens et les versions correspondantes des prérequis sont disponibles dans le dépôt de code:

> Note: Si vous utilisez directement le SDK Deepgram Node, assurez-vous d'utiliser la version 3.x ou supérieure, qui est le dernier SDK pris en charge en juillet 2025. Ce tutoriel utilise l'intégration directe de WebSocket, qui reste stable et ne dépend pas du 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.

Aperçu de l'intégration de Deepgram ASR et de Vonage AI Studio

asr_connector_key_componentsASR Connector Key Components

Dans ce processus, un client lance un appel téléphonique via le réseau téléphonique public commuté (RTPC), qui est pris en charge par le connecteur connecteur ASR. Le connecteur ASR établit un pont entre l'appel vocal du client (RTPC 1) et une connexion WebSocket, ce qui permet au système de traiter l'appel en temps réel. L'audio du client est transmis par cette WebSocket au moteur ASRqui transcrit les mots prononcés en texte. Cette transcription est ensuite transmise par le connecteur ASR à l'agent AI Studio Agent.

Une fois que l'agent AI Studio Agent reçoit le texte transcrit, il traite les données du client et génère une réponse appropriée. Cette réponse est renvoyée au connecteur ASR, où elle est convertie en synthèse vocale (TTS) et retransmise au client. Tout au long de l'interaction, l'IA écoute et répond en permanence au client, guidant ainsi la conversation. À tout moment, si l'IA détermine qu'une assistance supplémentaire est nécessaire, le système peut transférer l'appel à un agent humain en chair et en os (PSTN 2), signalant ainsi que la session de l'IA est terminée.

Cette configuration assure une communication transparente entre le client et l'IA grâce à la reconnaissance et à la réponse vocales automatisées. Le connecteur connecteur ASR sert d'intermédiaire, gérant à la fois la transcription et l'interaction avec l'IA, tandis que le moteur ASR permet le traitement en temps réel des mots prononcés. Le système est conçu pour traiter efficacement les appels, mais il peut faire appel à un agent en direct si des données plus complexes sont requises.

Comment fonctionne le connecteur ASR ?

Le connecteur Connecteur ASR est un programme exécutable unique qui gère le flux des appels vocaux entre un client, le moteur ASR et l'agent AI. Bien que le programme puisse fonctionner comme un fichier de code unifié, il est conceptuellement divisé en deux parties pour simplifier la compréhension et le déploiement. La partie 2 gère les appels téléphoniques (PSTN 1 et PSTN 2) et l'interaction avec l'agent AI, tandis que la la partie 1 s'occupe du traitement audio en relayant l'audio du client au moteur ASR et en renvoyant les transcriptions à la partie 2. Cette séparation permet de mieux comprendre le flux et peut également être mise en œuvre sur des serveurs distincts si nécessaire.

Lorsqu'un appel est initié (qu'il soit entrant ou sortant), Partie 2 établit une session avec l'agent AI et utilise une WebSocket pour transmettre l'audio du client à la Partie 1. Cet audio est ensuite transmis au moteur ASR pour transcription. Le moteur ASR renvoie le texte transcrit à la partie 2, qui l'envoie à l'agent AI dans le cadre d'une "étape" AI. L'agent AI traite cette transcription et renvoie une réponse, qui est restituée au client par le biais d'une synthèse vocale (TTS) sur le tronçon RTPC 1.

L'interaction se poursuit de cette manière, chaque transcription étant envoyée en tant qu'étape de l'agent d'intelligence artificielle et les réponses étant diffusées au client. Si l'agent d'intelligence artificielle détermine que le client a besoin d'être transféré à un agent en chair et en os, il envoie une demande à l'agent d'intelligence artificielle. Partie 2 pour mettre fin à la session d'IA et lancer le transfert. La partie 2 établit alors un pont entre le client (PSTN 1) et l'agent en direct (PSTN 2), mettant fin à la connexion WebSocket et à la session ASR. À partir de ce point, l'audio circule directement entre le client et l'agent en direct, achevant ainsi le transfert.

asr_connector_overviewASR Connector Overview

Comment fonctionne l'agent d'intelligence artificielle ?

L'échantillon AI Studio Agent fonctionne à la fois en mode d'appel entrant et en mode d'appel sortant, et la direction est déterminée par le connecteur Connecteur ASRqui lance le flux de l'agent AI. La fonction principale de l'agent est de demander à l'utilisateur son nom, puis de l'engager dans une boucle où il peut soit entendre une blague, soit être transféré à un agent en chair et en os. Lorsque la session de l'agent est initialisée, elle reçoit des paramètres clés tels que la direction de l'appel, un identifiant d'appel unique (UUID) et une adresse webhook pour gérer les transferts d'appels.

L'agent commence par vérifier le paramètre de direction et accueille l'utilisateur en conséquence. Il lui demande ensuite son nom à l'aide d'un nœud "Collect Input", qui stocke la réponse. Toutes les communications entre l'agent AI et l'utilisateur passent par le connecteur connecteur ASRqui sert d'intermédiaire pour la transmission des messages et des données de l'utilisateur entre les deux. L'agent agent AI n'interagit pas directement avec l'utilisateur, mais plutôt par le biais d'appels API, où le connecteur ASR informe l'agent AI des entrées de l'utilisateur et attend la réponse de l'agent.

L'agent poursuit en demandant à l'utilisateur s'il souhaite entendre une blague ou être transféré vers un agent en direct. Pour délivrer les blagues, l'agent appelle un Webhook qui récupère des blagues sur un site web externe (comme une API "blagues de papa") et lit ensuite la blague à l'utilisateur par l'intermédiaire d'un nœud "Envoyer un message". L'utilisateur est à nouveau invité à décider s'il souhaite entendre une autre blague ou être transféré. En fonction de la réponse de l'utilisateur, un nœud de classification détermine si l'utilisateur veut une autre blague ou s'il souhaite entrer en contact avec un agent en chair et en os.

Lorsque l'utilisateur choisit d'être transféré à un agent en direct, l'agent utilise un autre Webhook pour en informer l'application qui contrôle le côté téléphonie. Le webhook transmet des informations essentielles, telles qu'une annonce pour l'utilisateur, l'UUID pour identifier l'appel de manière unique, et le numéro de téléphone de l'agent en direct. Une fois que ce webhook est déclenché, l'agent a terminé sa tâche et le flux se termine lorsque l'appel est transféré à l'agent en direct.

Comment configurer votre application

  1. Créez un projet Deepgram et récupérez votre clé API Deepgram

  2. Créer un tunnel ngrok pour écouter le port 8000

    1. Veuillez prendre note de l'URL du point de terminaison ngrok car elle sera nécessaire dans les sections suivantes : https://yyyyyyyy.ngrok.io

    2. Pour plus d'aide, voir tester avec ngrok

  3. Connectez-vous à votre tableau de bord de développeur Vonage et créez une nouvelle application et procédez comme suit :

    1. Activer les capacités Voice

      1. Vous verrez cela dans la section des capacités ou cliquez sur modifier si vous ne le voyez pas.

      2. Sous Answer URL, laissez HTTP GET et entrez https://yyyyyyyy.ngrok.io/answer (remplacez <host> et <port> par le nom d'hôte public et, si nécessaire, le port public du serveur sur lequel tourne cet exemple d'application)

      3. Sous URL de l'événement, sélectionnez HTTP POST et entrez https://yyyyyyyy.ngrok.io/event (remplacez <host> et <port> par le nom d'hôte public et, si nécessaire, le port public du serveur sur lequel tourne cet exemple d'application).

    2. Prenez note de la région de votre application

    3. Cliquez sur "Générer une clé publique et privée".

      1. Enregistrez le fichier de la clé privée dans ce dossier d'application sous le nom de .private.key

    4. IMPORTANT : N'oubliez pas de cliquer sur [Enregistrer les modifications] en bas de l'écran si vous avez créé un nouveau jeu de clés.

    5. Associez un numéro de téléphone à cette application si aucun n'a été associé à l'application.

Prenez note de quelques valeurs dont vous aurez besoin plus tard dans le tutoriel :

  • Votre compte Vonage Account API keyappelée ci-après variable d'environnement API_KEY

  • Le secret API de votre Account API secretappelé ci-après variable d'environnement API_SECRET

  • Votre identifiant d'application, ci-après dénommé APP_ID

  • La région que vous avez choisie, désignée ci-après par la variable d'environnement API_REGION

  • Le numéro de téléphone lié à votre application, désigné ci-après par la variable d'environnement SERVICE_PHONE_NUMBER

Comment configurer votre agent HTTP

  1. Accéder au AI Studio Dashboard

  2. Importer l'exemple d'agent AI BlogAgent.zip à partir du répertoire Github

    1. Vous pouvez modifier le Nom de l'agent

  3. Cliquez sur [Importation d'un agent].

  4. Ouvrez votre nouvel agent

  5. Définir le numéro de téléphone de l'agent en direct

    1. Allez dans Propriétés (icônes de la colonne de gauche) > Paramètres >Paramètres personnalisés > appelant

    2. Modifiez la valeur pour obtenir le numéro de destinataire souhaité.

      1. il doit s'agir d'un numéro de téléphone au format E.164 sans le signe "+".

    3. Cliquez sur "Fermer"

  6. Publier l'agent d'intelligence artificielle

Prenez note de quelques valeurs supplémentaires dont vous aurez besoin plus tard dans le tutoriel :

  • Votre identifiant d'agent, désigné ci-après par la variable d'environnement AGENT_ID

  • Votre Vonage AI appelée ci-après variable d'environnement X_VGAI_KEY

Vonage AI Studio prend désormais en charge des fonctions avancées telles que les webhooks d'événements en temps réel (`onSpeechEnd`, onStepComplete), la sélection vocale personnalisée de la synthèse vocale et le mode chuchotement. Vous pouvez explorer ces fonctions sous les onglets " Événements " et " Paramètres Voice " dans le générateur d'agents.

Comment exécuter l'application ASR localement sur votre ordinateur ?

  1. Copier ou renommer .env-example en .env

  2. L'argument de la variable d'environnement VG_AI_HOST doit être cohérent avec l'argument de la variable d'environnement API_REGION.

  3. Installez les modules node avec la commande : npm install

  4. Lancez l'application dans un terminal différent de votre tunnel ngrok : node asr-connector

L'application fonctionne par défaut sur le port 8000. N'oubliez pas de faire tourner votre tunnel ngrok sur le même port que l'application.

Cette configuration est idéale pour les tests, mais ne doit pas être utilisée en production sans sécuriser le connecteur ASR. Dans les environnements de production, utilisez toujours HTTPS, validez les demandes entrantes avec des jetons signés et limitez les plages d'adresses IP ou les en-têtes d'authentification pour protéger les données audio et de transcription sensibles.

Comment tester l'exemple d'agent AI et le connecteur ASR ?

Que le premier appel soit sortant ou entrant, l'utilisateur (par exemple le client) se verra demander son nom, puis quelques blagues seront jouées à la place de la musique d'attente, jusqu'à ce que l'utilisateur dise "non" pour ne plus avoir de blagues, après quoi l'appel est transféré à l'autre utilisateur (par exemple l'agent en direct) dont le numéro de téléphone est celui qui a été défini lors du déploiement de l'agent d'IA.

Comment tester les appels sortants vers le RTCP ?

Vous pouvez déclencher l'appel sortant en ouvrant l'adresse web suivante avec votre URL ngrok : https://yyyyyyyy.ngrok.io/startcall?callee=12995551515

Comment tester les appels RTPC entrants ?

Appelez le numéro de téléphone lié à votre compte API Vonage.

Conclusion

Dans ce tutoriel, vous avez appris à étendre Vonage AI Studio pour l'intégrer à un autre moteur ASR à l'aide d'un agent AI de type HTTP et de l'application serveur ASR Connector, qui prend en charge la partie téléphonie (via l'API Voice de Vonage) et gère la connexion au moteur ASR.

Cette intégration gère efficacement les appels de type RTPC, mais elle peut également être étendue pour prendre en charge d'autres canaux de communication. Une amélioration potentielle consiste à étendre cette configuration aux appels SIP, ce qui vous permettrait de tirer parti de la téléphonie sur IP et offrirait encore plus de flexibilité aux entreprises utilisant des réseaux privés. En outre, vous pourriez adapter l'intégration pour qu'elle fonctionne avec des clients WebRTC, permettant une communication en temps réel directement via les navigateurs web, ce qui en fait une solution appropriée pour le support client sur les sites web sans nécessiter de services de téléphonie traditionnels.

Vous pouvez également envisager de remplacer le moteur de synthèse vocale par défaut dans AI Studio par un fournisseur tiers tel que Eleven Labs ou Google Cloud TTS, en utilisant des webhooks pour contrôler l'expérience vocale de manière plus précise. Les métadonnées de transcription en temps réel de Deepgram peuvent également être utilisées pour déclencher des événements dans des systèmes externes, utiles pour la journalisation, l'analyse ou la logique d'escalade.

Si vous avez des questions, rejoignez notre Communauté Slack ou envoyez-nous un message sur X.

Ressources complémentaires


J'ai une dette considérable de gratitude envers Mark Berkelanddont l'aide inestimable et le brio stupéfiant ont transformé ce blog, par ailleurs standard, en une œuvre d'art technique de classe mondiale.

Partager:

Auteurs