Exercice - Configurer la compréhension du langage courant et de l’intention
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
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.
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
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.
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.
Connectez-vous au Portail Azure et sélectionnez Créer une ressource, puis recherchez et sélectionnez Service de langage :
Sélectionnez le bouton Créer pour créer une instance de ce service :
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.
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.
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)
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) :
Une fois le processus de création de la ressource terminé, le message Votre déploiement est terminé s’affiche :
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 :
- Créer une application CLU
- Créer des intentions
- Créer des exemples d’énoncés
- Créer des entités
- Attribuer des entités aux exemples d’énoncés
- 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.
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é.
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.
Sélectionnez Suivant pour passer la configuration de projet. Sélectionnez Créer pour créer le projet.
Une fois l’application créée, vous êtes dirigé vers sa page Définition du schéma.
2. Créer des intentions
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.
Sélectionnez Ajouter une intention pour créer l’intention :
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.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.
3. Créer des exemples d’énoncés
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.
À 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
Une fois que vous avez ajouté tous les exemples d’énoncés, votre page Étiquetage des données doit ressembler à ceci :
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
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.
Sélectionnez Ajouter une entité pour créer l’entité.
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.
Attention
Dans le cadre de ce tutoriel, votre projet Unity fera référence à ces entités par leurs noms,
Action
etTarget
. 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
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.
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 ».
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.
Sélectionnez ensuite le mot launch, puis Cible (Simple) dans le menu contextuel pour étiqueter launch comme valeur de l’entité Cible.
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 ».
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
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.)
Sélectionnez Enregistrer les modifications. Une fois tous les exemples d’énoncés étiquetés, votre page d’intention PressButton doit ressembler à ceci :
6. Entraîner, tester et publier l’application
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.
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.
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.
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.
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.
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é.
Sélectionnez Déployer et attendez la fin du processus de publication.
Sélectionnez le nouveau déploiement et sélectionnez le bouton Obtenir l’URL de prédiction.
Connecter le projet Unity à l’application CLU
Dans la fenêtre contextuelle Obtenir l’URL de prédiction, sélectionnez l’icône Copier pour copier l’URL de prédiction.
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.
Tester la reconnaissance de l’intention
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.
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.
Testez tous les exemples d’énoncés, puis quelques variations des exemples d’énoncés, ainsi que quelques énoncés aléatoires.