Exercice - Configurer la compréhension du langage courant et de l’intention

Effectué

Dans ce module, vous allez explorer la reconnaissance de l’intention d’Azure Speech Service. La reconnaissance intentionnelle vous permet d’équiper votre application de commandes vocales avec intelligence artificielle, avec des utilisateurs capables de prononcer des commandes vocales non spécifiques qui sont malgré tout comprises par le système.

Préparer la scène

  1. Dans la fenêtre Hiérarchie, sélectionnez l’objet Lunarcom, puis, dans la fenêtre Inspector, utilisez le bouton Ajouter un composant pour ajouter le composant Module de reconnaissance de l’intention Lunarcom (Script) à l’objet Lunarcom.

    Screenshot of adding the Lunarcom Intent Recognizer (Script) component.

  2. Dans la fenêtre Projet, accédez à Ressources>MRTK.Tutorials.GettingStarted>Prefabs>RocketLauncher, faites glisser le prefab RocketLauncher_Complete dans la fenêtre Hiérarchie et placez-le dans un endroit qui convient devant la caméra. Par exemple :

    • Transform Position X = 0, Y = 1, Z = 1.5
    • Transform Rotation X = 0, Y = 90, Z = 0

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. Dans la fenêtre Hiérarchie, resélectionnez l’objet Lunarcom, puis développez l’objet RocketLauncher_Complete>Buttons et affectez à chaque objet enfant de l’objet Buttons le champ Boutons Lunar Launcher correspondant.

    Screenshot of assigning each of the buttons.

Créer la ressource de service de langage Azure

Dans cette section, vous allez créer une ressource de service de langage Azure pour l’application de compréhension du langage courant (CLU) que vous allez créer dans la section suivante.

  1. Connectez-vous au Portail Azure et sélectionnez Créer une ressource, puis recherchez et sélectionnez Service de langage :

    Screenshot of the Azure language service resource.

  2. Sélectionnez le bouton Créer pour créer une instance de ce service :

    Screenshot of creating an instance of this service.

  3. Sur la page Créer une langue, entrez les valeurs suivantes :

    • Pour Abonnement, sélectionnez Essai gratuit si vous disposez d’un abonnement d’essai. Si vous n’avez pas d’abonnement d’essai, sélectionnez l’un de vos autres abonnements.
    • Pour le Groupe de ressources, sélectionnez le lien Créer, puis entrez un nom approprié (par exemple : MRKT-Tutorials). Cliquez sur OK.

    Screenshot of the Create Language screen.

    Conseil

    Si vous disposez déjà d’un autre groupe de ressources approprié dans votre compte Azure, vous pouvez l’utiliser au lieu d’en créer un nouveau.

  4. Toujours dans la page Créer, entrez les valeurs suivantes :

    • Pour le Nom, entrez un nom approprié pour le service (par exemple : MRTK-Tutorials-AzureSpeechServices)
    • Pour la Région, choisissez un emplacement proche de l’emplacement physique des utilisateurs de votre application (par exemple USA Est)
    • Pour Niveau tarifaire, dans ce tutoriel, sélectionnez F0 (5 000 transactions sur 30 jours)

    Screenshot of the configured Create Language form.

  5. Sélectionnez ensuite Vérifier + créer, passez en revue les détails, puis sélectionnez le bouton Créer au bas de la page pour créer la ressource (et le groupe de ressources si vous en avez configuré un à créer) :

    Screenshot of the Review + Create screen.

  6. Une fois le processus de création de la ressource terminé, le message Votre déploiement est terminé s’affiche :

    Screenshot of the Overview screen.

Créer l’application de compréhension du langage courant (CLU)

Dans cette section, vous allez créer une application CLU, configurer, puis effectuer l'apprentissage de son modèle de prédiction et la connecter à la ressource de langage Azure que vous avez créée à l’étape précédente.

Plus précisément, vous allez créer une intention qui veut que, si l’utilisateur indique qu’une action doit être effectuée, l’application déclenche l’événement PressableButton.OnClicked() sur l’un des trois boutons bleus de la scène, en fonction du bouton auquel l’utilisateur fait référence.

Par exemple, si l’utilisateur dit feu vert pour lancer la fusée, l’application prédit que feu vert signifie qu’une action doit être exécutée et que l’événement PressableButton.OnClicked() sur cible se trouve sur le bouton lancer.

Voici les principales étapes à suivre pour y parvenir :

  1. Créer une application CLU
  2. Créer des intentions
  3. Créer des exemples d’énoncés
  4. Créer des entités
  5. Attribuer des entités aux exemples d’énoncés
  6. Entraîner, tester et publier l’application

1. Créer une application CLU

À l’aide du même compte d’utilisateur que celui que vous avez utilisé pour créer la ressource Azure dans la section précédente, connectez-vous à Language Studio.

  1. Une fois connecté, vous êtes invité à sélectionner une ressource Azure. Sélectionnez les valeurs utilisées lors de la création de la ressource du service de langage Azure, puis sélectionnez Terminé.

    Screenshot showing the Select an Azure resource popup.

  2. Après avoir connecté la ressource Azure, sélectionnez Créer > Compréhension du langage courant et entrez les valeurs suivantes dans la fenêtre contextuelle Créer un projet :

    • Pour Nom, entrez un nom approprié, par exemple, MRTK-Tutorials-AzureSpeechServices. Notez le nom que vous avez sélectionné, vous en aurez besoin plus loin dans ce tutoriel.
    • Pour Langage principal des énoncés, sélectionnez un langage.
    • Comme Description, entrez éventuellement une description appropriée.

    Screenshot of the Create a project popup.

  3. Sélectionnez Suivant pour passer la configuration de projet. Sélectionnez Créer pour créer le projet.

    Screenshot of the Review and finish screen.

  4. Une fois l’application créée, vous êtes dirigé vers sa page Définition du schéma.

    Screenshot of the App's dashboard page.

2. Créer des intentions

  1. Dans la page Définition du schéma, sélectionnez Ajouter et entrez la valeur suivante dans la fenêtre contextuelle Ajouter une intention :

    • Pour Nom de l’intention, entrez PressButton.
  2. Sélectionnez Ajouter une intention pour créer l’intention :

    Screenshot of the Add an intent screen.

    Attention

    Dans le cadre de ce didacticiel, votre projet Unity fera référence à cette intention par son nom (PressButton). Il est extrêmement important de nommer votre intention exactement de la même façon.

  3. Une fois l’intention créée, vous êtes redirigé vers la page Définition du schéma. L’intention PressButton s’affiche dans la liste des intentions.

    Screenshot of the list of Intents.

3. Créer des exemples d’énoncés

  1. Dans la barre latérale gauche, sélectionnez le bouton Étiquetage des données. Dans l’écran Étiquetage des données, sélectionnez PressButton dans la liste déroulante Sélectionner une intention.

    Screenshot of the Data labeling page.

  2. À la liste Énoncés de l’intention PressButton, ajoutez les exemples d’énoncés suivants :

    • activer la séquence de lancement
    • me montrer un indicateur de placement
    • démarrer la séquence de lancement
    • appuyer sur le bouton des indicateurs de placement
    • me donner un indicateur
    • appuyer sur le bouton de lancement
    • j’ai besoin d’un indicateur
    • appuyer sur le bouton de réinitialisation
    • délai de réinitialisation de l’expérience
    • procéder au lancement de la fusée
  3. Une fois que vous avez ajouté tous les exemples d’énoncés, votre page Étiquetage des données doit ressembler à ceci :

    Screenshot of the updated Data labeling page.

    Attention

    Dans le cadre de ce tutoriel, votre projet Unity va référencer les mots « conseil », « conseils » « réinitialisation » et « lancement ». Il est extrêmement important d’épeler ces mots exactement de la même façon dans toutes les instances.

4. Créer des entités

  1. Dans la page Étiquetage des données, sélectionnez Ajouter une entité dans le volet Activité de droite, puis entrez les valeurs suivantes dans la fenêtre contextuelle Ajouter une entité :

    • Pour Nom de l’entité, entrez Action.
  2. Sélectionnez Ajouter une entité pour créer l’entité.

    Screenshot of adding a new entity.

  3. Répétez l’étape précédente pour créer une autre entité nommée Cible, afin d’avoir deux entités nommées Action et Cible.

    Screenshot of creating a target entity.

    Attention

    Dans le cadre de ce tutoriel, votre projet Unity fera référence à ces entités par leurs noms, Action et Target. Il est extrêmement important de nommer les entités exactement de la même façon.

5. Attribuer des entités aux exemples d’énoncés

  1. Sélectionnez le mot go, ensuite ahead, puis sélectionnez Action (simple) dans le menu contextuel pour étiqueter go ahead en tant que valeur de l’entité Action.

    Screenshot of labeling go ahead as an action entity value.

  2. La locution procéder au est maintenant définie en tant que valeur d’entité Action. Une valeur d’entité d’action se trouve maintenant sous les mots « go ahead ».

    Screenshot of the added action entity value.

    Remarque

    La ligne rouge qui s’affiche sous l’étiquette dans l’image indique que la valeur de l’entité n’a pas été prédite. Cela va être résolu lorsque vous allez effectuer la formation du modèle dans la section suivante.

  3. Sélectionnez ensuite le mot launch, puis Cible (Simple) dans le menu contextuel pour étiqueter launch comme valeur de l’entité Cible.

    Screenshot of selecting the word launch.

  4. Le mot lancement est maintenant défini en tant que valeur d’entité Cible. Une valeur de l’entité cible se trouve maintenant sous le mot « launch ».

    Screenshot of the added Target entity value under the word launch.

  5. L’énoncé go ahead and launch the rocket de l’exemple de l’intention PressButton est maintenant configuré pour être prédit comme suit :

    • Intention : PressButton
    • Entité Action : procéder au
    • Entité Cible : lancement
  6. Répétez le processus précédent pour affecter une action et une étiquette d’entité cible à chacun des exemples d’énoncés, en gardant à l’esprit que les mots suivants doivent être étiquetés comme entités cibles :

    • indicateur (Cible HintsButton dans le projet Unity.)
    • indicateurs (Cible HintsButton dans le projet Unity.)
    • réinitialisation (Cible ResetButton dans le projet Unity.)
    • lancement (Cible LaunchButton dans le projet Unity.)
  7. Sélectionnez Enregistrer les modifications. Une fois tous les exemples d’énoncés étiquetés, votre page d’intention PressButton doit ressembler à ceci :

    Screenshot of the PressButton intent page with all example utterances labeled.

6. Entraîner, tester et publier l’application

  1. Pour entraîner l’application, sélectionnez le bouton Entraîner dans la barre latérale gauche. La page Travaux de formation doit s’afficher.

    Screenshot of the Training jobs screen.

  2. Sélectionnez Démarrer une tâche d’apprentissage et sélectionnez les valeurs suivantes :

    • Sélectionnez Entraîner un nouveau modèle et entrez un nom approprié (par exemple : MRTK-Tutorials-AzureSpeechServices).
    • Sélectionnez Formation Standard.
    • Choisissez Séparer automatiquement l’ensemble de tests des données de formation.
  3. Sélectionnez Entraîner pour démarrer le processus d’entraînement. Une fois le traitement de l’entraînement terminé, une notification Fin de la formation s’affiche.

    Screenshot of Finished training notification.

  4. Pour évaluer les résultats de l’apprentissage, sélectionnez votre modèle de sortie dans l’écran Travaux de formation, puis sélectionnez l’onglet Performances du modèle.

    Screenshot of the Model performance screen.

  5. Pour déployer l’application, sélectionnez le bouton Déploiement d’un modèle dans la barre latérale gauche. La page Déploiement d’un modèle doit s’afficher.

    Screenshot of the Deploying a model page.

  6. Sélectionnez Ajouter un déploiement et entrez les valeurs suivantes dans la fenêtre contextuelle Ajouter un déploiement :

    • Sélectionnez Créer un nom de déploiement et entrez un nom approprié. Notez le nom que vous avez sélectionné, vous en aurez besoin plus loin dans ce tutoriel.
    • Sélectionnez le modèle précédemment créé dans la liste déroulante Sélectionner un modèle formé.
  7. Sélectionnez Déployer et attendez la fin du processus de publication.

    Screenshot of the Deployment completed notification.

  8. Sélectionnez le nouveau déploiement et sélectionnez le bouton Obtenir l’URL de prédiction.

    Screenshot of the Get Prediction URL page.

Connecter le projet Unity à l’application CLU

  1. Dans la fenêtre contextuelle Obtenir l’URL de prédiction, sélectionnez l’icône Copier pour copier l’URL de prédiction.

    Screenshot of Get Prediction URL popup.

  2. De retour dans votre projet Unity, dans la fenêtre Hiérarchie, sélectionnez l’objet Lunarcom, puis, dans la fenêtre Inspector, localisez le composant Lunarcom Intent Recognizer (Script) et configurez-le comme suit.

    • Dans le champ Point de terminaison CLU, indiquez l’URL de prédiction que vous avez copiée à l’étape précédente.
    • Dans le champ Nom du projet CLU, indiquez le Nom du projet que vous avez noté lors de la création d’une application CLU.
    • Dans le champ Déploiement CLU, indiquez le nom de déploiement que vous avez noté lors de la création d’un déploiement.
    • Dans le champ Clé API du service de langage, transmettez la clé API (Key1 ou Key2) pour votre service de langage. Vous pouvez le trouver dans le Portail Azure en sélectionnant votre service de langage, puis en sélectionnant Clés et point de terminaison dans le menu de gauche.

    Screenshot of passing the example query you copied.

Tester la reconnaissance de l’intention

  1. Pour utiliser la reconnaissance de l’intention directement dans l’éditeur Unity, vous devez autoriser votre ordinateur de développement à utiliser la dictée. Pour vérifier ce paramètre, ouvrez les Paramètres Windows, puis choisissez Confidentialité>Speech et assurez-vous de l’activation de l’option Reconnaissance vocale en ligne.

    Screenshot of Testing the intent recognition.

  2. Si vous entrez en mode Jeu, vous pouvez tester la reconnaissance intentionnelle en appuyant d’abord sur le bouton rocket. Ensuite, quand vous prononcez le premier exemple d’énoncé, feu vert pour lancer la fusée, vous allez assister au lancement du module LunarModule dans l’espace.

    Screenshot of Enter the game mode.

  3. Testez tous les exemples d’énoncés, puis quelques variations des exemples d’énoncés, ainsi que quelques énoncés aléatoires.