Tutoriel : Activer votre bot

Vous pouvez utiliser Azure AI Speech pour ajouter la voix à un bot de conversation.

Dans ce didacticiel, vous allez utiliser Microsoft Bot Framework pour créer un bot qui répète ce que vous lui dites. Vous allez déployer votre bot sur Azure et l’inscrire avec le canal Direct Line Speech de Bot Framework. Ensuite, vous allez configurer un exemple d’application cliente pour Windows qui vous permet de parler à votre bot et d’entendre ses réponses vocales.

Pour suivre ce tutoriel, vous n’avez pas besoin d’une expérience ou d’une connaissance étendue avec Azure, les bots de Bot Framework ou Direct Line Speech.

Le bot de conversation vocal que vous faites dans ce tutoriel suit les étapes suivantes :

  1. L’exemple d’application cliente est configuré pour se connecter au canal Direct Line Speech et au bot d’écho.
  2. Lorsque l'utilisateur appuie sur un bouton, le son de la voix est transmis par le microphone. Ou l’audio est enregistré en continu lorsqu’un mot clé personnalisé est utilisé.
  3. Si un mot clé personnalisé est utilisé, la détection de mot clé se produit sur l’appareil local, en conservant la diffusion audio en continu vers le Cloud.
  4. L’exemple d’application cliente utilise le Kit de développement logiciel (SDK) Speech pour se connecter au canal Direct Line Speech et diffuser l’audio en continu.
  5. Si vous le souhaitez, il est possible de configurer avec plus de précision la vérification du mot clé dans le service.
  6. L’audio est transmis au service de reconnaissance vocale, puis il est retranscrit en texte.
  7. Le texte reconnu est passé au bot d’écho en tant qu’activité Bot Framework.
  8. Le texte de la réponse est converti en audio par le service de synthèse vocale, puis il diffusé en continu vers l’application cliente afin d’être lu.

Diagram that illustrates the flow of the Direct Line Speech channel.

Remarque

Les étapes de ce tutoriel ne nécessitent pas l’utilisation d’un service payant. Pour suivre ce tutoriel, en tant que nouvel utilisateur Azure, vous pouvez utiliser les crédits de votre essai gratuit Azure, ainsi que le niveau de service gratuit du service Speech.

Voici ce qui est couvert par ce tutoriel :

  • Créer des ressources Azure.
  • Générer, tester et déployer l’exemple de bot d’écho dans Azure App Service.
  • Inscrire votre bot auprès d’un canal Direct Line Speech
  • Générer et exécuter le client Assistant vocal Windows pour interagir avec votre Echo Bot.
  • Ajouter l’activation du mot clé personnalisée.
  • Découvrir comment modifier la langue du texte reconnu et prononcé.

Prérequis

Voici ce dont vous aurez besoin pour ce didacticiel :

Créer un groupe de ressources

L’application cliente que vous allez créer dans ce tutoriel utilise un petit nombre de services Azure. Pour réduire la durée d’aller-retour des réponses envoyées par votre bot, vous devez placer ces services dans la même région Azure.

Cette section vous guide tout au long de la création d’un groupe de ressources dans la région États-Unis de l’Ouest. Vous utiliserez ce groupe de ressources lors de la création de ressources pour Bot Framework, le canal Direct Line Speech et le service Speech.

  1. Accédez à la page portail Azure pour créer un groupe de ressources.
  2. Fournissez les informations suivantes :
    • Mise à niveau de votre abonnement vers la version Évaluation gratuite. (Vous pouvez également utiliser un espace de noms existant.)
    • Entrez le nom de votre Groupe de ressources. Nous recommandons d’utiliser le nom suivant : SpeechEchoBotTutorial-ResourceGroup.
    • Dans la liste déroulante Région, sélectionnez USA Ouest.
  3. Sélectionnez Examiner et créer. Vous devez voir une bannière indiquant : Validation réussie.
  4. Sélectionnez Créer. La création du groupe de ressources peut prendre quelques minutes.
  5. Comme pour les ressources que vous allez créer plus loin dans ce tutoriel, il est recommandé d’épingler ce groupe de ressources à votre tableau de bord afin d’y accéder plus facilement. Si vous souhaitez épingler ce groupe de ressources, sélectionnez l’icône d’épingle en regard du nom.

Choisir une région Azure

Veillez à utiliser une région Azure prise en charge. Le canal Direct Line Speech utilise le service de synthèse vocale, qui comprend les options de voix standard et neuronale. Les voix neurones sont utilisées dans ces régions Azure, et les voix standard (mise hors service) sont utilisées dans ces régions Azure.

Pour plus d’informations sur les régions, consultez Régions Azure.

Créer des ressources

Maintenant que vous disposez d’un groupe de ressources dans une région prise en charge, l’étape suivante consiste à créer des ressources pour chaque service que vous allez utiliser dans ce tutoriel.

Créer une ressource de service Speech

  1. Accédez à la page portail Azure pour créer un groupe de ressources Speech.
  2. Fournissez les informations suivantes :
    • Pour leNom, nous vous recommandons SpeechEchoBotTutorial-Speech comme nom de votre ressource.
    • Pour Abonnement, vérifiez que l’option Essai gratuit est bien sélectionnée.
    • Pour Emplacement, sélectionnez USA Ouest.
    • Pour Niveau tarifaire, sélectionnez F0. Il s’agit du niveau de service gratuit.
    • Pour Groupe de ressources, sélectionnez SpeechEchoBotTutorial-ResourceGroup.
  3. Après avoir entré toutes les informations nécessaires, sélectionnez Créer. La création de la ressource peut prendre quelques minutes.
  4. Plus loin dans ce tutoriel, vous aurez besoin d’une clé d’abonnement pour ce service. Vous pouvez accéder à ces clés à tout moment à partir de la page Vue d’ensemble (sous Gérer les clés) ou la page Clés de votre ressource.

À ce stade, vérifiez que votre groupe de ressources (SpeechEchoBotTutorial-ResourceGroup) comprend une ressource Speech :

Name Type Emplacement
SpeechEchoBotTutorial-Speech Voix USA Ouest

Créer un plan Azure App Service

Un plan App Service définit un ensemble de ressources de calcul nécessaires à l’exécution d’une application web.

  1. Accédez à la page portail Azure pour créer un plan Azure App Service.
  2. Fournissez les informations suivantes :
    • Mise à niveau de votre abonnement vers la version Évaluation gratuite. (Vous pouvez également utiliser un espace de noms existant.)
    • Pour Groupe de ressources, sélectionnez SpeechEchoBotTutorial-ResourceGroup.
    • Pour leNom, nous vous recommandons SpeechEchoBotTutorial-AppServicePlan comme nom de votre plan.
    • Pour Système d’exploitation, sélectionnez Windows.
    • Pour Région, sélectionnez USA Ouest.
    • Pour Niveau tarifaire, vérifiez que l’option Standard S1 est bien sélectionnée. Il doit s’agir de la valeur par défaut. Si ce n’est pas le cas, définissez le système d’exploitation sur Windows.
  3. Sélectionnez Examiner et créer. Vous devez voir une bannière indiquant : Validation réussie.
  4. Sélectionnez Créer. La création de la ressource peut prendre quelques minutes.

À ce stade, vérifiez que votre groupe de ressources (SpeechEchoBotTutorial-ResourceGroup) comprend les deux ressources suivantes :

Nom Type Emplacement
SpeechEchoBotTutorial-AppServicePlan Plan App Service USA Ouest
SpeechEchoBotTutorial-Speech Azure AI services USA Ouest

Créer un bot d’écho

Maintenant que vous avez créé des ressources, commencez par l’exemple de bot echo, qui renvoie le texte que vous avez entré en tant que réponse. L’exemple de code est déjà configuré pour fonctionner avec le canal Direct Line Speech, auquel vous vous connecterez après avoir déployé le bot dans Azure.

Remarque

Les instructions qui suivent, ainsi que les informations supplémentaires sur le bot d’écho, sont disponibles dans le fichier README de l’exemple sur GitHub.

Exécuter l’exemple de bot sur votre machine

  1. Clonez le référentiel de l’exemple :

    git clone https://github.com/Microsoft/botbuilder-samples.git
    
  2. Ouvrez Visual Studio.

  3. À partir de la barre d’outils, sélectionnez fichier>Ouvrir>Projet/Solution. Ouvrez ensuite la solution de projet :

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. Une fois le projet chargé, appuyez sur F5 pour le générer et l’exécuter.

    Dans le navigateur qui s’ouvre, vous verrez un écran semblable à celui-ci :

    Screenshot that shows the EchoBot page with the message that your bot is ready.

Tester l’exemple de bot avec Bot Framework Emulator

Bot Framework Emulator est une application de bureau qui permet aux développeurs de bots de tester et de déboguer leurs bots localement ou à distance, via un tunnel. L’émulateur prend en charge le texte tapé en tant qu’entrée (pas la voix). Le bot répond également avec du texte.

Suivez ces étapes pour utiliser Bot Framework Emulator pour tester votre Echo Bot exécuté localement, avec une entrée texte et une sortie texte. Une fois le bot déployé sur Azure, vous le testerez avec une entrée vocale et une sortie vocale.

  1. Installez Bot Framework Emulator version 4.3.0 ou ultérieure.

  2. Ouvrez Bot Framework Emulator, puis sélectionnez Fichier>Ouvrir le bot.

  3. Entrez l’URL de votre bot. Par exemple :

    http://localhost:3978/api/messages
    
  4. Sélectionnez Connecter.

  5. Le bot est censé vous accueillir avec un message « Bonjour et bienvenue ! » Tapez un message texte et vérifiez que vous recevez une réponse de la part du bot.

    Voici à quoi peut ressembler un échange de communication avec une instance Echo Bot : Screenshot shows the Bot Framework Emulator.

Déployer votre bot dans Azure App Service

L’étape suivante consiste à déployer le bot d’écho dans Azure. Il existe plusieurs façons de déployer un bot, y compris les Azure CLI et les modèles de déploiement. Ce didacticiel se concentre sur la publication directement à partir de Visual Studio.

Notes

Si Publier n’apparaît pas au fur et à mesure que vous effectuez les étapes suivantes, utilisez Visual Studio Installer pour ajouter la charge de travail ASP.NET et développement web.

  1. Dans Visual Studio, ouvrez le bot d’écho qui a été configuré pour être utilisé avec le canal Direct Line Speech :

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet EchoBot, puis sélectionnez Publier.

  3. Dans la fenêtre Publier qui s’ouvre :

    1. Sélectionnez Azure>Suivant.
    2. Sélectionnez Azure App Service (Windows)>Suivant.
    3. Sélectionnez Créer un nouveau Azure App service via le signe plus vert.
  4. Lorsque la fenêtre App Service (Windows) s’affiche :

    • Cliquez sur Ajouter un compte, puis connectez-vous avec les informations d’identification de votre compte Azure. Si vous êtes déjà connecté, sélectionnez le compte que vous souhaitez dans la liste déroulante.

    • Pour le Nom, entrez un nom unique au monde pour votre point de terminaison. Ce nom sera utilisé pour créer l’URL unique du bot.

      Un nom par défaut qui comprend la date et l’heure apparaît dans la zone (par exemple, EchoBot20190805125647). Pour ce tutoriel, vous pouvez utiliser le nom par défaut.

    • Pour Abonnement, sélectionnez Essai gratuit.

    • Pour Groupe de ressources, sélectionnez SpeechEchoBotTutorial-ResourceGroup.

    • Pour Plan d’hébergement, sélectionnez SpeechEchoBotTutorial-AppServicePlan.

  5. Sélectionnez Créer. Dans l’écran final de l’Assistant, cliquez sur Terminer.

  6. Sélectionnez Publier. Visual Studio déploie le bot sur Azure.

    Un message de réussite similaire à celui-ci doit s’afficher dans la fenêtre de sortie Visual Studio :

    Publish Succeeded.
    Web App was published successfully https://EchoBot20190805125647.azurewebsites.net/
    

    Votre navigateur par défaut doit s’ouvrir sur une page indiquant ceci : « Votre bot est prêt ! ».

À ce stade, accédez à votre groupe de ressources SpeechEchoBotTutorial-ResourceGroup dans le portail Azure. Confirmez qu’il contient les trois ressources suivantes :

Name Type Emplacement
EchoBot20190805125647 App Service USA Ouest
SpeechEchoBotTutorial-AppServicePlan Plan App Service USA Ouest
SpeechEchoBotTutorial-Speech Azure AI services USA Ouest

Activer les sockets web

Vous devez apporter une petite modification à la configuration afin que votre bot puisse communiquer avec le canal Direct Line Speech à l’aide de WebSockets. Effectuez les étapes suivantes pour activer les WebSockets :

  1. Accédez à votre ressource App Service dans le portail Azure. La ressource doit porter un nom similaire à EchoBot20190805125647 (le nom unique de votre application).
  2. Sous Paramètres dans le volet gauche, sélectionnez Configuration.
  3. Sélectionnez l’onglet Paramètres généraux.
  4. Localisez le bouton bascule des Web sockets et sélectionnez la valeur Activé.
  5. Sélectionnez Enregistrer.

Conseil

Vous pouvez utiliser les contrôles situés en haut de la page Azure App Service pour arrêter ou redémarrer le service. Cette fonctionnalité peut s’avérer utile lors d’un dépannage.

Créer une inscription de canal

Une fois que vous avez créé une ressource Azure App Service pour héberger votre bot, vous devez créer une inscription de canal de bot. La création d’une inscription de canal est un prérequis à l’inscription de votre bot auprès de canaux Bot Framework, notamment auprès du canal Direct Line Speech. Si vous souhaitez en savoir plus sur la façon dont les bots utilisent les canaux, consultez Connecter un bot à des canaux.

  1. Accédez à la page portail Azure pour créer un bot Azure.
  2. Fournissez les informations suivantes :
    • Pour Descripteur de bot, entrez SpeechEchoBotTutorial-BotRegistration-####. Remplacez #### par un grand nombre de vos choix.

      Remarque

      Notez que le descripteur du bot doit être globalement unique. Si vous entrez un descripteur de bot mais recevez le message d’erreur « L’ID de bot demandé n’est pas disponible », choisissez un autre nombre. Les exemples suivants utilisent 8726.

    • Pour Abonnement, sélectionnez Essai gratuit.

    • Pour Groupe de ressources, sélectionnez SpeechEchoBotTutorial-ResourceGroup.

    • Pour Emplacement, sélectionnez USA Ouest.

    • Pour Niveau tarifaire, sélectionnez F0.

    • Ignorez Création automatique de l’ID d’application et du mot de passe.

  3. Au bas du panneau Bot Azure, sélectionnez Créer.
  4. Après avoir créé la ressource, ouvrez votre ressource SpeechEchoBotTutorial-BotRegistration-#### dans le portail Azure.
  5. Dans la barre de navigation Paramètres, sélectionnez Configuration.
  6. Pour Point de terminaison de messagerie, entrez l’URL de votre application web, à laquelle vous ajoutez le chemin /api/messages. Par exemple, si votre nom d’application global unique est EchoBot20190805125647, votre point de terminaison de messagerie sera https://EchoBot20190805125647.azurewebsites.net/api/messages/.

À ce stade, accédez à votre groupe de ressources SpeechEchoBotTutorial-ResourceGroup dans le portail Azure. Il doit maintenant afficher quatre ressources :

Nom Type Emplacement
EchoBot20190805125647 App Service USA Ouest
SpeechEchoBotTutorial-AppServicePlan Plan App Service USA Ouest
SpeechEchoBotTutorial-BotRegistration-8726 Bot Service Global
SpeechEchoBotTutorial-Speech Azure AI services USA Ouest

Important

La ressource Azure AI Bot Service affiche la Région globale, même si vous avez sélectionné USA Ouest. Ceci est normal.

Facultatif : Tester dans une discussion web

La page Bot Azure comporte une option Tester dans Chat Web sous Paramètres. Elle ne fonctionnera pas par défaut avec votre bot, car Chat Web doit s’authentifier auprès de votre bot.

Si vous souhaitez tester votre bot déployé avec entrée de texte, procédez comme suit. Notez que ces étapes sont facultatives et ne sont pas requises pour passer aux étapes suivantes de ce tutoriel.

  1. Recherchez et ouvrez votre ressource EchoBotTutorial-BotRegistration-#### dans le portail Azure

  2. Dans la barre de navigation Paramètres, sélectionnez Configuration. Copiez la valeur figurant sous ID d’application Microsoft

  3. Ouvrez la solution Visual Studio EchoBot. Dans l’Explorateur de solutions, recherchez et double-cliquez sur appsettings.json.

  4. Remplacez la chaîne vide en regard de MicrosoftAppId dans le fichier JSON par la valeur d’ID copiée.

  5. Revenez au portail Azure. Dans la barre de navigation Paramètres, sélectionnez Configuration. Sélectionnez ensuite Gérer en regard de ID d’application Microsoft.

  6. Sélectionnez Nouveau secret client. Ajoutez une description (par exemple, conversation sur le Web), puis sélectionnez Ajouter. Copiez le nouveau secret.

  7. Remplacez la chaîne vide en regard de MicrosoftAppPassword dans le fichier JSON par la valeur de secret copiée

  8. Enregistrez le fichier JSON. Il devrait ressembler à ce code :

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Republiez l’application (cliquez avec le bouton droit sur le projet EchoBot dans Explorateur de solutions Visual Studio, sélectionnez Publier, puis cliquez sur le bouton Publier).

Inscrire le canal Direct Line Speech

Il est temps d’inscrire votre bot auprès du canal Direct Line Speech. Ce canal est utilisé pour créer une connexion entre votre bot et une application cliente compilée avec le SDK Speech.

  1. Recherchez et ouvrez votre ressource SpeechEchoBotTutorial-BotRegistration-#### dans le portail Azure.

  2. Dans la zone Paramètres , sélectionnez Canaux , puis procédez comme suit :

    1. Recherchez Autres canaux, puis cliquez sur Direct Line Speech.
    2. Passez en revue le texte de la page intitulée Configurer Direct line Speech, puis développez le menu déroulant intitulé Compte Cognitive Services.
    3. Sélectionnez la ressource Speech que vous avez créée précédemment (par exemple, SpeechEchoBotTutorial-Speech) dans le menu pour associer votre bot à votre clé d’abonnement Speech.
    4. Ignorez les autres champs facultatifs
    5. Sélectionnez Enregistrer.
  3. Dans la zone Paramètres, sélectionnez Configuration, puis procédez comme suit :

    1. Cochez la case Activer un point de terminaison de streaming. Cela permet de créer un protocole de communication reposant sur les WebSockets entre votre bot et le canal Direct Line Speech.
    2. Sélectionnez Enregistrer.

Pour plus d’informations, consultez Connecter un bot à Direct Line Speech.

Exécuter le client Assistant vocal Windows

Le client Assistant vocal Windows est une application Windows Presentation Foundation (WPF) en langage C# qui utilise le SDK Speech pour gérer les communications avec votre bot à l’aide du canal Direct Line Speech. Utilisez-le pour interagir avec votre bot et pour le tester avant d’écrire une application cliente personnalisée. Il est open source et vous pouvez donc télécharger l'exécutable et l’exécuter, ou le générer vous-même.

Le client Assistant vocal Windows offre une interface utilisateur simple qui vous permet de configurer la connexion à votre bot, d’afficher la conversation textuelle, d’afficher les activités Bot Framework au format JSON et d’afficher les cartes adaptatives. Il prend également en charge l’utilisation de mots clés personnalisés. Vous utiliserez ce client pour parler avec votre bot et recevoir ses réponses vocales.

Remarque

Avant de continuer, vérifiez que votre micro et vos haut-parleurs sont activés et qu’ils fonctionnent.

  1. Accédez au référentiel GitHub du client Assistant vocal Windows.

  2. Suivez les instructions fournies à l’un des éléments suivants :

    • Télécharger un fichier exécutable prédéfini dans un package .zip à exécuter, ou
    • générer l'exécutable vous-même, en clonant le référentiel et en générant le projet
  3. Lancez l’application cliente VoiceAssistantClient.exe et configurez-la pour qu’elle se connecte à votre bot, en fonction des instructions fournies dans le dépôt GitHub

  4. Cliquez sur Reconnexion et vérifiez que vous voyez le message « Nouvelle conversation démarrée, ou appuyez sur le bouton microphone ».

  5. Nous allons le tester. Sélectionnez le bouton microphone et prononcez quelques mots en anglais. Le texte reconnu s’affiche à mesure que vous parlez. Lorsque vous avez fini de parler, le bot répond de sa propre voix, en disant « écho », puis les mots qu’il a reconnus.

    Vous pouvez également utiliser du texte pour communiquer avec le bot. Il vous suffit pour cela de taper du texte dans la barre inférieure.

Résolution d’erreurs dans le client Assistant vocal Windows

Si un message d’erreur s’affiche dans la fenêtre principale de votre application, utilisez le tableau suivant pour identifier et résoudre le problème :

Message Que faire ?
Error (AuthenticationFailure) : WebSocket Upgrade failed with an authentication error (401). Check for correct resource key (or authorization token) and region name Dans la page des paramètres de l’application, vérifiez que vous avez entré correctement la clé ainsi que sa région.
Error (ConnectionFailure) : Connection was closed by the remote host. Code d’erreur : 1011. Détails de l’erreur : Nous n’avons pas pu nous connecter au bot avant d’envoyer un message Assurez-vous que vous avez sélectionné la case à cocher Activer le point de terminaison de streaming et/ou les sockets Web activés.
Vérifiez qu’Azure App Service est en cours d’exécution. Si c’est le cas, essayez de le redémarrer.
Error (ConnectionFailure) : Connection was closed by the remote host. Code d’erreur : 1002. Détails de l’erreur : Le serveur a retourné le code d’état ’503’ alors que le code d’état attendu était ’101’. Assurez-vous que vous avez sélectionné la case à cocher Activer le point de terminaison de streaming et/ou les sockets Web activés.
Vérifiez qu’Azure App Service est en cours d’exécution. Si c’est le cas, essayez de le redémarrer.
Error (ConnectionFailure) : Connection was closed by the remote host. Code d’erreur : 1011. Détails de l’erreur : Le code d’état de la réponse indique un échec : 500 (InternalServerError) Votre bot a spécifié une voix neurale dans le champ speak de l’activité de sortie, mais la région Azure qui est associée à votre clé de ressource ne prend pas en charge les voix neurales. Consultez voix neuronales et voix standard.

Si les actions de la table ne résolvent pas votre problème, consultez assistants vocaux : Forum aux questions. Si la procédure décrite dans ce didacticiel ne vous a pas permis de résoudre votre problème, entrez un nouveau problème dans la page GitHub Voice Assistant.

Note relative à l’expiration du délai de connexion

Si vous êtes connecté à un bot et qu’aucune activité ne s’est produite au cours des 5 dernières minutes, le service ferme automatiquement la connexion web socket avec le client et le bot. C'est la procédure normale. Un message s’affiche dans la barre inférieure : « La connexion active a expiré mais est prête à se reconnecter à la demande. »

Vous n’avez pas besoin de sélectionner le bouton Reconnecter . Appuyez sur le bouton microphone et commencez à parler, entrez un message texte ou prononcez le mot clé (s’il est activé). La connexion est automatiquement rétablie.

Afficher les activités du bot

Chaque bot envoie et reçoit des messages liés aux activités. Dans la fenêtre Journal d’activité du client Assistant vocal Windows, vous verrez des journaux horodatés pour chaque activité que le client reçoit du bot. Vous pouvez également voir les activités que le client a envoyées au bot à l’aide de la méthode DialogServiceConnector.SendActivityAsync . Lorsque vous sélectionnez un élément du journal, les détails de l’activité associée sont affichés au format JSON.

Voici un exemple de code JSON provenant d’une activité reçue par le client :

{
    "attachments":[],
    "channelData":{
        "conversationalAiData":{
             "requestInfo":{
                 "interactionId":"8d5cb416-73c3-476b-95fd-9358cbfaebfa",
                 "version":"0.2"
             }
         }
    },
    "channelId":"directlinespeech",
    "conversation":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79",
        "isGroup":false
    },
    "entities":[],
    "from":{
        "id":"SpeechEchoBotTutorial-BotRegistration-8726"
    },
    "id":"89841b4d-46ce-42de-9960-4fe4070c70cc",
    "inputHint":"acceptingInput",
    "recipient":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79|0000"
    },
    "replyToId":"67c823b4-4c7a-4828-9d6e-0b84fd052869",
    "serviceUrl":"urn:botframework:websocket:directlinespeech",
    "speak":"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-JennyNeural'>Echo: Hello and welcome.</voice></speak>",
    "text":"Echo: Hello and welcome.",
    "timestamp":"2019-07-19T20:03:51.1939097Z",
    "type":"message"
}

Pour plus d’informations sur la sortie JSON, consultez Champs de l’activité. Pour ce didacticiel, vous pouvez vous concentrer sur les champs Text et Speak.

Afficher le code source client pour les appels au SDK Speech

Le client Assistant vocal Windows utilise le package NuGet Microsoft.CognitiveServices.Speech qui contient le Kit de développement logiciel (SDK) Speech. Pour passer en revue l’exemple de code, nous vous conseillons de commencer par la méthodeInitSpeechConnector() dans le fichier VoiceAssistantClient\MainWindow.xaml.cs, qui crée les deux objets suivants dans le SDK Speech :

  • DialogServiceConfig: pour les paramètres de configuration tels que la clé de ressource et sa région.
  • DialogServiceConnector : Pour gérer les événements de connexion au canal et d’abonnement client dans le cadre de la gestion des mots reconnus et des réponses du bot.

Ajouter l’activation du mot clé personnalisée

Le SDK Speech prend en charge l’activation du mot clé personnalisé. Comme avec « Hey Cortana » pour l’Assistant Microsoft, vous pouvez écrire une application qui écoute en permanence dans le but de détecter le mot clé de votre choix. Le mot clé peut comporter un ou plusieurs mots.

Notes

Le terme mot clé est souvent utilisé de façon interchangeable avec le terme mise en mot-séquence. Vous verrez peut-être tous deux utilisés dans la documentation Microsoft.

La détection du mot clé est effectuée dans l’application cliente. Si vous utilisez un mot clé, l’audio ne sera diffusé en continu vers le canal Direct Line Speech que si le mot clé est détecté. Le canal Direct Line Speech comprend un composant appelé Key Word Verification (KWV) (Vérification du mot clé), qui effectue un traitement plus complexe dans le cloud afin de vérifier que le mot clé que vous avez choisi se trouve au début du flux audio. Si la vérification du mot clé aboutit à un résultat positif, le canal communiquera avec le bot.

Procédez comme suit pour créer un modèle de mot clé, configurer le client Assistant vocal Windows de sorte qu’il utilise ce modèle, puis pour le tester avec votre bot.

  1. Créer un mot clé personnalisé à l’aide du service Speech.
  2. Décompressez le fichier de modèle que vous avez téléchargé à l’étape précédente. Son nom doit se composer de votre mot clé. Le fichier que vous recherchez doit se nommer kws.table.
  3. Dans le client Assistant vocal Windows, accédez au menu Paramètres. Celui-ci est accessible via l’icône en forme de roue dentée qui est située dans l’angle supérieur droit. Dans Model file path (Chemin du fichier de modèle), entrez le nom complet du chemin du fichier kws.table de l’étape 2.
  4. Cochez la case Activé. Vous devez voir ce message en regard de la case à cocher : « Écoutera le mot clé lors de la prochaine connexion ». Si vous avez fourni le mauvais fichier ou un chemin non valide, un message d’erreur doit s’afficher.
  5. Entrez les valeurs de la clé d’abonnement et la région de la clé d’abonnement, puis cliquez sur OK pour fermer le menu des Paramètres.
  6. Sélectionnez Reconnexion. Le message suivant doit s’afficher : « Nouvelle conversation démarrée-type, appuyez sur le bouton microphone ou prononcez le mot clé ». L’application est maintenant à l’écoute continue.
  7. Prononcez n’importe quelle phrase précédée de votre mot clé. Par exemple : « {votre mot clé}, quelle est l’heure ? » Vous n’avez pas besoin de suspendre après avoir mis en circulation le mot clé. Lorsque vous avez terminé, deux événements se produisent :
    • Vous verrez la transcription de ce que vous venez de dire.
    • Vous entendez la réponse du robot.
  8. Continuez de tester les trois types d’entrées pris en charge par le bot :
    • Saisie de texte sur la barre inférieure
    • Appuyer sur l’icône du micro et parler
    • Prononcer une phrase précédée de votre mot clé

Afficher le code source qui active la détection de mot clé

Dans le code source du Client Windows Voice Assistant, utilisez ces fichiers pour passer en revue le code permettant la détection de mots clés :

Facultatif : Changer la langue et la voix du bot

Le bot que vous avez créé est à l’écoute et répond en anglais, avec par défaut une voix de synthèse vocale en anglais US. Vous n’êtes cependant pas limité à l’utilisation de l’anglais ni à une voix par défaut.

Dans cette section, vous allez découvrir comment changer la langue utilisée par votre bot pour écouter et répondre. Vous allez aussi découvrir comment sélectionner une autre voix pour cette langue.

Changer la langue

Vous pouvez choisir l’une des langues mentionnées dans le tableau de reconnaissance vocale. L’exemple suivant modifie la langue en allemand.

  1. Ouvrez l’application client Assistant vocal Windows, cliquez sur le bouton des Paramètres (l’icône en forme de roue dentée en haut à droite), puis entrez de-de dans le champ Langue. Il s’agit de la valeur de paramètres régionaux mentionnée dans le tableau de reconnaissance vocale.

    Cela définit la langue qui doit être reconnue, et remplace donc la valeur par défaut en-us. Cela indique également au canal Direct Line Speech d’utiliser une voix allemande par défaut pour la réponse du bot.

  2. Fermez la page Paramètres, puis cliquez sur le bouton Reconnecter pour établir une nouvelle connexion à votre bot d’écho.

  3. Cliquez sur le bouton du microphone et prononcez une phrase en allemand. Le texte reconnu et le bot d’écho répondant à la voix allemande par défaut.

Changer la voix par défaut du bot

La sélection de la voix de synthèse vocale et le contrôle de la prononciation sont possibles si le bot spécifie la réponse sous forme de SSML (Speech Synthesis Markup Language) au lieu d’un texte simple. Le bot d’écho n’utilise pas SSML, mais vous pouvez facilement modifier le code pour que ce soit le cas.

L'exemple suivant ajoute le SSML à la réponse du bot d'écho afin que la voix allemande de-DE-RalfNeural (une voix masculine) soit utilisée au lieu de la voix féminine par défaut. Consultez la liste des voix standard et des voix neuronales prises en charge pour votre langue.

  1. Open samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.

  2. Recherchez les lignes suivantes :

    var replyText = $"Echo: {turnContext.Activity.Text}";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    

    Remplacez-les par le code suivant :

    var replyText = $"Echo: {turnContext.Activity.Text}";
    var replySpeak = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='de-DE'>
                    <voice name='de-DE-RalfNeural'>" +
                    $"{replyText}" + "</voice></speak>";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replySpeak), cancellationToken);
    
  3. Générez votre solution dans Visual Studio et corrigez les éventuelles erreurs de build.

Le deuxième argument de la méthode MessageFactory.Text définit le champ speak d’activité dans la réponse du bot. Avec la modification ci-dessus, il a été remplacé et changé de texte simple en SSML afin de spécifier une voix allemande non définie par défaut.

Redéployer le bot

Maintenant que vous avez apporté les modifications nécessaires au bot, l’étape suivante consiste à le republier dans Azure App Service et à le tester :

  1. Dans la fenêtre de l’Explorateur de solutions, cliquez avec le bouton droit sur le projet EchoBot, puis sélectionnez Publier.

  2. Votre configuration de déploiement précédente a déjà été chargée comme configuration par défaut. Cliquez sur Publier à côté de EchoBot20190805125647 - Web Deploy.

    Le message Publication réussie s’affiche dans la fenêtre sortie de Visual Studio, et une page web s’ouvre avec le message « Votre bot est prêt ! ».

  3. Ouvrez l'application Windows Voice Assistant Client. Sélectionnez le bouton Paramètres (icône d'engrenage en haut à droite), et assurez-vous que vous avez toujours de-de dans le champ Langue.

  4. Suivez les instructions fournies dans Exécuter le client Assistant vocal Windows pour vous reconnecter au bot nouvellement déployé, prononcez des mots dans la nouvelle langue et attendez la réponse du bot dans la langue et la voix définies.

Nettoyer les ressources

Si vous ne souhaitez pas continuer à utiliser le bot d’écho déployé dans ce tutoriel, vous pouvez le supprimer, ainsi que toutes les ressources Azure associées, en supprimant le groupe de ressources Azure ;

  1. Dans le portail Azure, sélectionnez Groupes de ressources sous services Azure.
  2. Sélectionnez le groupe de ressources SpeechEchoBotTutorial-ResourceGroup. Cliquez sur les points de suspension (...).
  3. Sélectionnez Supprimer le groupe de ressources.

Explorer la documentation

Étapes suivantes