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 d’intention vous permet d’équiper votre application avec des commandes vocales optimisées par l’IA, où les utilisateurs peuvent dire des commandes vocales non spécifiques et que le système comprend toujours leur intention.
Préparer la scène
Dans la fenêtre Hierarchy, sélectionnez l’objet Lunarcom , puis, dans la fenêtre Inspector, utilisez le bouton Ajouter un composant pour ajouter le composant Lunarcom Intent Recognizer (Script) à l’objet Lunarcom.
Dans la fenêtre Projet, accédez à Assets>MRTK. Tutorials.GettingStarted>Prefabs>RocketLauncher dossier, faites glisser le RocketLauncher_Complete préfabriqué dans votre fenêtre Hierarchy et placez-le à un emplacement approprié devant la caméra. Par exemple:
- Position Transform X = 0, Y = 1, Z = 1,5
- Transformer Rotation X = 0, Y = 90, Z = 0
Dans la fenêtre Hierarchy, sélectionnez à nouveau l’objet Lunarcom , puis développez l’objet RocketLauncher_Complete>Buttons et affectez chacun des objets enfants de l’objet Buttons au champ Boutons du lanceur lunaire correspondant.
Créer la ressource du service de langage Azure
Dans cette section, vous allez créer une ressource de service de langage Azure pour l’application Conversational Language Understanding (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 Language Service :
Sélectionnez le bouton Créer pour créer une instance de ce service :
Dans la page Créer une langue, entrez les valeurs suivantes :
- Pour l’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 un nouveau lien, puis entrez un nom approprié ; par exemple , MRTK-Tutorials. Sélectionnez OK.
Conseil / Astuce
Si vous disposez déjà d’un autre groupe de ressources approprié dans votre compte Azure, vous pouvez utiliser ce groupe de ressources au lieu de en créer un nouveau.
Lorsque vous êtes toujours sur la page Créer, entrez les valeurs suivantes :
- Pour Nom, entrez un nom approprié pour le service ; par exemple , MRTK-Tutorials-AzureSpeechServices
- Pour Région, choisissez un emplacement proche de l’emplacement physique des utilisateurs de votre application ; par exemple, USA Est
- Pour le niveau tarifaire, dans ce tutoriel, sélectionnez F0 (5 000 transactions par 30 jours)
Ensuite, sélectionnez Vérifier + créer, passez en revue les détails, puis sélectionnez le bouton Créer en bas de la page pour créer la ressource (et le nouveau groupe de ressources si vous avez configuré un groupe de ressources à créer) :
Une fois le processus de création de ressource terminé, le message suivant s’affiche :
Créer l’application Conversational Language Understanding (CLU)
Dans cette section, vous allez créer une application CLU, configurer et entraîner 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 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 aller de l’avant et lancer la fusée, l’application prédit que aller de l'avant signifie qu'une action doit être entreprise, et que l’PressableButton.OnClicked() événement à cibler se trouve sur le bouton lancer.
Les principales étapes à suivre sont les suivantes :
- Créer une application CLU
- Créer des intentions
- Créer des exemples d’énoncés
- Créer des entités
- Affecter des entités à l’exemple 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é lors de la création de 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 que vous avez utilisées lors de la création de la ressource du service Azure Language, puis sélectionnez Terminé.
Après avoir connecté la ressource Azure, sélectionnez Créer un nouveau projet > de Compréhension du langage conversationnel et entrez les valeurs suivantes dans la fenêtre pop-up 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 le tutoriel.
- Pour la langue principale des énoncés, sélectionnez une langue.
- Pour Description, entrez éventuellement une description appropriée.
Sélectionnez Suivant pour passer en revue la configuration du projet. Sélectionnez Créer pour créer le projet.
Une fois la nouvelle application créée, vous accédez à la page définition de schéma de cette application.
2. Créer des intentions
Dans la page Définition de schéma, sélectionnez Ajouter et entrez la valeur suivante dans la fenêtre contextuelle Ajouter une intention :
- Pour lenom de l’intention, saisissez PressButton
Sélectionnez Ajouter une intention pour créer l’intention :
Avertissement
Dans le cadre de ce didacticiel, votre projet Unity référencera cette intention par son nom (
PressButton). Il est extrêmement important que vous nommiez votre intention exactement de la même manière.Une fois la nouvelle intention créée, vous revenez à la page définition de 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 l'intention.
À la liste Énoncés de l’intention PressButton, ajoutez les exemples d’énoncés suivants :
- activer la séquence de lancement
- montre-moi un indicateur de placement
- lancer la séquence de lancement
- appuyer sur le bouton indicateurs de positionnement
- donnez-moi un conseil
- Appuyez sur le bouton lancer
- j’ai besoin d’un indicateur
- Appuyez sur le bouton de réinitialisation
- temps de réinitialisation de l’expérience
- aller de l’avant et lancer la fusée
Lorsque vous avez ajouté tous les exemples d’énoncés, votre page d’étiquetage de données doit ressembler à ceci :
Avertissement
Dans le cadre de ce didacticiel, votre projet Unity référence les mots « hint », « hints », « reset » et « launch ». Il est extrêmement important que vous ayez orthographié ces mots 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 et entrez les valeurs suivantes dans la fenêtre contextuelle Ajouter une entité :
- Pour le 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 Target. Vous disposez donc de deux entités nommées Action et Target.
Avertissement
Dans le cadre de ce didacticiel, votre projet Unity référence ces entités par leurs noms et
ActionTarget. Il est extrêmement important que vous nommez vos entités exactement les mêmes.
5. Affecter des entités à l’exemple d’énoncés
Sélectionnez le mot aller , puis sur le mot à l’avance, puis sélectionnez Action (simple) dans le menu contextuel contextuel pour étiqueter aller de l’avant en tant que valeur d’entité Action .
L’expression aller-avant est maintenant définie comme une valeur d’entité Action . Une valeur d’entité d’action se trouve maintenant sous les mots « go ahead ».
Remarque
La ligne rouge que vous voyez sous l’étiquette dans l’image indique que la valeur d’entité n’a pas été prédite ; cela sera résolu lorsque vous entraînez le modèle dans la section suivante.
Ensuite, sélectionnez le mot lancement, puis sélectionnez Cible dans le menu contextuel pour étiqueter lancement en tant que valeur d’entité Cible.
Le mot de lancement est maintenant défini comme une valeur d’entité cible . Une valeur de l’entité cible se trouve maintenant sous le mot « launch ».
L’énoncé
go ahead and launch the rocketde l’exemple de l’intention PressButton est maintenant configuré pour être prédit comme suit :- Intention : Appuyer sur le bouton
- Entité d’action : poursuivre
- 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 en tant qu’entités cibles :
- conseil (cible le HintsButton dans le projet Unity)
- conseils (cible HintsButton dans le projet Unity)
- réinitialiser (cible le ResetButton dans le projet Unity)
- launch (cible le LaunchButton dans le projet Unity)
Sélectionnez Enregistrer les modifications. Lorsque vous avez étiqueté tous les exemples d’énoncé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 d’apprentissage doit s’afficher.
Sélectionnez Démarrer un travail d’entraînement 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 l’entraînement standard.
- Choisissez Séparer automatiquement l’ensemble de tests des données d’apprentissage.
Sélectionnez Entraîner pour démarrer le processus d’entraînement. Une fois que la formation est terminée, une notification Formation terminée s’affiche.
Pour passer en revue les résultats de l’entraînement, sélectionnez votre modèle de sortie dans l’écran Travaux d’entraînement, 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. Vous devez voir la page Déploiement d’un modèle.
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 le tutoriel.
- Sélectionnez le modèle que vous avez créé précédemment dans la liste déroulante Sélectionner un modèle entraîné .
Sélectionnez Déployer et attendre 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 Hierarchy, 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 , transmettez l’URL de prédiction que vous avez copiée à l’étape précédente.
- Dans le champ Nom du projet CLU , transmettez le nom du projet que vous avez noté lors de la création d’une application CLU.
- Dans le champ Déploiement CLU , transmettez le nom de déploiement que vous avez noté lors de la création d’un déploiement.
- Dans le champ Clé API Language Service , passez la clé API (Key1 ou Key2) pour votre service de langage. Vous pouvez le trouver dans le portail Azure en sélectionnant votre service linguistique, 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 d’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 Paramètres Windows, puis choisissez Privacy>Speech et vérifiez que la reconnaissance vocale en ligne est activée.
Si vous entrez en mode Jeu, vous pouvez tester la reconnaissance de l’intention en appuyant d’abord sur le bouton de fusée. Ensuite, lorsque vous dites le premier exemple d’énoncé, allez de l’avant et lancez la fusée, vous verrez le lancement de LunarModule dans l’espace.
Essayez tous les exemples d’énoncés, puis certaines variantes des exemples d’énoncés, puis quelques énoncés aléatoires.