Oefening: intentie en begrip van natuurlijke taal instellen
In deze module verkent u de intentieherkenning van de Azure Speech Service. Met intentieherkenning kunt u uw toepassing uitrusten met door AI gemaakte spraakopdrachten, waar gebruikers niet-specifieke spraakopdrachten kunnen zeggen en het systeem hun intentie nog steeds begrijpt.
De scène voorbereiden
Selecteer in het venster Hierarchy het Lunarcom-object en gebruik vervolgens in het venster Inspector de knop Component toevoegen om het onderdeel Lunarcom Intent Recognizer (Script) toe te voegen aan het Lunarcom-object.
Navigeer in het venster Project naar de MRTK assets>. Tutorials.GettingStarted Prefabs>RocketLauncher map, sleep de RocketLauncher_Complete prefab naar uw hiërarchievenster en plaats deze op een geschikte locatie voor de camera.> Voorbeeld:
- Positie X transformeren = 0, Y = 1, Z = 1,5
- Draaiing X = 0, Y = 90, Z = 0
Selecteer in het venster Hierarchy het Lunarcom-object opnieuw, vouw vervolgens het object RocketLauncher_Complete>Knoppen uit en wijs elk van de onderliggende objecten van het knoppenobject toe aan het bijbehorende veld Knoppen voor het startprogramma voor maan.
De Azure-taalserviceresource maken
In deze sectie maakt u een Azure-taalserviceresource voor de CLU-app (Conversational Language Understanding) die u in de volgende sectie gaat maken.
Meld u aan bij Azure Portal en selecteer Een resource maken, zoek en selecteer Language Service:
Selecteer de knop Maken om een exemplaar van deze service te maken:
Voer op de pagina Taal maken de volgende waarden in:
- Selecteer voor Abonnement de optie Gratis proefversie als u een proefabonnement hebt. Als u geen proefabonnement hebt, selecteert u een van uw andere abonnementen.
- Selecteer voor de resourcegroep de koppeling Nieuwe maken en voer vervolgens een geschikte naam in, bijvoorbeeld MRTK-Tutorials. Selecteer OK.
Tip
Als u al een andere geschikte resourcegroep in uw Azure-account hebt, kunt u deze resourcegroep gebruiken in plaats van een nieuwe te maken.
Voer op de pagina Maken de volgende waarden in:
- Voer voor Naam een geschikte naam in voor de service, bijvoorbeeld MRTK-Tutorials-AzureSpeechServices
- Kies voor Regio een locatie dicht bij de fysieke locatie van uw app-gebruikers, bijvoorbeeld VS - oost
- Voor prijscategorie selecteert u in deze zelfstudie F0 (5k transacties per 30 dagen)
Selecteer vervolgens Controleren en maken, controleer de details en selecteer vervolgens de knop Maken onder aan de pagina om de resource te maken (en de nieuwe resourcegroep als u deze hebt geconfigureerd om te worden gemaakt):
Zodra het proces voor het maken van resources is voltooid, ziet u het bericht dat uw implementatie is voltooid:
De Conversational Language Understanding-app (CLU) maken
In deze sectie maakt u een CLU-app, configureert en traint u het voorspellingsmodel en verbindt u het met de Azure-taalresource die u in de vorige stap hebt gemaakt.
U maakt met name een intentie die als de gebruiker zegt dat er actie moet worden ondernomen, de app de PressableButton.OnClicked()
gebeurtenis activeert op een van de drie blauwe knoppen in de scène, afhankelijk van de knop waarnaar de gebruiker verwijst.
Als de gebruiker bijvoorbeeld zegt dat de raket gaat starten, voorspelt de app dat er actie moet worden ondernomen en dat de PressableButton.OnClicked()
gebeurtenis die moet worden gericht zich op de startknop bevindt.
De belangrijkste stappen die u moet uitvoeren om dit te bereiken zijn:
- Een CLU-app maken
- Intents maken
- Voorbeelduitingen maken
- Entiteiten maken
- Entiteiten toewijzen aan de voorbeelduitingen
- De app trainen, testen en publiceren
1. Een CLU-app maken
Meld u aan bij Language Studio met hetzelfde gebruikersaccount dat u hebt gebruikt bij het maken van de Azure-resource in de vorige sectie.
Zodra u bent aangemeld, wordt u gevraagd om een Azure-resource te selecteren. Selecteer de waarden die u hebt gebruikt bij het maken van de Azure Language-serviceresource en selecteer Vervolgens Gereed.
Nadat u de Azure-resource hebt verbonden, selecteert u Nieuw > Conversational Language Understanding maken en voert u de volgende waarden in het pop-upvenster Een project maken in:
- Voer voor Naam een geschikte naam in, bijvoorbeeld: MRTK-Tutorials-AzureSpeechServices. Noteer de naam die u hebt geselecteerd. U hebt deze later in de zelfstudie nodig.
- Selecteer een taal voor de primaire taal van Utterances.
- Voer eventueel een geschikte beschrijving in voor Beschrijving.
Selecteer Volgende om de projectconfiguratie te controleren. Selecteer Maken om het project te maken.
Wanneer de nieuwe app is gemaakt, gaat u naar de pagina Schemadefinitie van die app.
2. Intenties maken
Selecteer op de pagina Schemadefinitie de optie Toevoegen en voer de volgende waarde in het pop-upvenster Een intentie toevoegen in:
- Voer PressButton in als intentienaam
Selecteer Intentie toevoegen om de nieuwe intentie te maken:
Let op
Voor deze zelfstudie verwijst uw Unity-project naar deze intentie met de naam (
PressButton
). Het is uiterst belangrijk dat u uw intentie precies hetzelfde noemt.Wanneer de nieuwe intentie is gemaakt, gaat u terug naar de pagina Schemadefinitie. De intent PressButton wordt weergegeven in de lijst met intenties.
3. Voorbeelduitingen maken
Selecteer in de zijbalk aan de linkerkant de knop Gegevenslabeling . Selecteer In het scherm Gegevenslabelen de optie PressButton in de vervolgkeuzelijst Intentie selecteren.
Voeg de volgende voorbeelduitingen toe aan de Utterances-lijst van de PressButton-intentie:
- startvolgorde activeren
- laat me een plaatsingstip zien
- de startvolgorde initiëren
- druk op de knop Tips voor plaatsing
- geef me een hint
- druk op de startknop
- Ik heb een hint nodig
- druk op de knop Opnieuw instellen
- tijd om de ervaring opnieuw in te stellen
- Ga verder en lanceren de raket
Wanneer u alle voorbeelduitingen hebt toegevoegd, moet de pagina gegevenslabeling er als volgt uitzien:
Let op
Voor deze zelfstudie verwijst uw Unity-project naar de woorden 'hint', 'hints', 'reset' en 'launch'. Het is uiterst belangrijk dat u deze woorden precies op dezelfde manier spelt in alle gevallen.
4. Entiteiten maken
Selecteer op de pagina Gegevenslabeling de optie Entiteit toevoegen in het rechterdeelvenster Activiteit en voer de volgende waarden in het pop-upvenster Een entiteit toevoegen in:
- Voer voor entiteitsnaam actie in
Selecteer Entiteit toevoegen om de nieuwe entiteit te maken.
Herhaal de vorige stap om een andere entiteit met de naam Target te maken, dus u hebt twee entiteiten met de naam Action en Target.
Let op
Voor deze zelfstudie verwijst uw Unity-project naar deze entiteiten op hun naam en
Action
Target
. Het is uiterst belangrijk dat u uw entiteiten exact hetzelfde noemt.
5. Entiteiten toewijzen aan de voorbeelduitingen
Selecteer het woord ga en selecteer vervolgens actie (eenvoudig) in het contextmenu om het label als een actie-entiteitswaarde te labelen.
De volgende woordgroep wordt nu gedefinieerd als een actie-entiteitswaarde . Er is nu een actie-entiteitswaarde onder de woorden 'Ga vooruit'.
Notitie
De rode lijn die u onder het label in de afbeelding ziet, geeft aan dat de entiteitswaarde niet is voorspeld; dit wordt opgelost wanneer u het model traint in de volgende sectie.
Selecteer vervolgens het woord starten en selecteer Vervolgens Doel in het contextmenu om het starten als een doelentiteitswaarde te labelen.
Het startwoord is nu gedefinieerd als een doelentiteitswaarde . Er is nu een doelentiteitswaarde onder het woord 'launch'.
De voorbeelduiting
go ahead and launch the rocket
van de PressButton-intentie is nu geconfigureerd om als volgt te worden voorspeld:- Intentie: PressButton
- Actie-entiteit: ga verder
- Doelentiteit: starten
Herhaal het vorige proces om een actie en een label voor een doelentiteit toe te wijzen aan elk van de voorbeelduitingen. Houd er rekening mee dat de volgende woorden moeten worden gelabeld als doelentiteiten :
- hint (richt zich op hintsButton in het Unity-project)
- hints (doelen HintsButton in het Unity-project)
- reset (is gericht op resetbutton in het Unity-project)
- starten (richt zich op LaunchButton in het Unity-project)
Selecteer Wijzigingen opslaan. Wanneer u alle voorbeelduitingen hebt gelabeld, ziet de intentiepagina PressButton er als volgt uit:
6. De app trainen, testen en publiceren
Als u de app wilt trainen, selecteert u de knop Trainen in de zijbalk aan de linkerkant. U ziet nu de pagina Trainingstaken.
Selecteer Een trainingstaak starten en selecteer de volgende waarden:
- Selecteer Een nieuw model trainen en voer een geschikte naam in, bijvoorbeeld MRTK-Tutorials-AzureSpeechServices.
- Selecteer Standard-training.
- Selecteer Automatisch de testset splitsen uit trainingsgegevens.
Selecteer Trainen om het trainingsproces te starten. Wanneer de training is verwerkt, ziet u een melding Voltooide training .
Als u de resultaten van de training wilt bekijken, selecteert u het uitvoermodel op het scherm Trainingstaken en selecteert u vervolgens het tabblad Modelprestaties .
Als u de app wilt implementeren, selecteert u de knop Een model implementeren in de zijbalk aan de linkerkant. U ziet nu de pagina Een model implementeren.
Selecteer Implementatie toevoegen en voer de volgende waarden in het pop-upvenster Implementatie toevoegen in:
- Selecteer Een nieuwe implementatienaam maken en voer een geschikte naam in. Noteer de naam die u hebt geselecteerd. U hebt deze later in de zelfstudie nodig.
- Selecteer het model dat u eerder hebt gemaakt in de vervolgkeuzelijst Een getraind model selecteren.
Selecteer Implementeren en wacht tot het publicatieproces is voltooid.
Selecteer de nieuwe implementatie en selecteer de knop Voorspellings-URL ophalen.
Verbinding maken het unity-project naar de CLU-app
Selecteer in het pop-upvenster Voorspellings-URL ophalen het pictogram Kopiëren om de voorspellings-URL te kopiëren.
Selecteer in het venster Hierarchy in uw Unity-project het Lunarcom-object en zoek vervolgens in het venster Inspector het onderdeel Lunarcom Intent Recognizer (Script) en configureer het als volgt.
- Geef in het veld CLU-eindpunt de voorspellings-URL door die u in de vorige stap hebt gekopieerd.
- Geef in het veld CLU-projectnaam de projectnaam door die u hebt genoteerd bij het maken van een CLU-app.
- Geef in het veld CLU-implementatie de implementatienaam door die u hebt genoteerd bij het maken van een nieuwe implementatie.
- Geef in het veld Language Service-API-sleutel de API-sleutel (Key1 of Key2) door voor uw Taalservice. U vindt dit in Azure Portal door uw taalservice te selecteren en vervolgens Sleutels en eindpunt te selecteren in het menu links.
De intentieherkenning testen
Als u intentieherkenning rechtstreeks in de Unity-editor wilt gebruiken, moet u toestaan dat uw ontwikkelcomputer dicteren gebruikt. Als u deze instelling wilt controleren, opent u Windows Instellingen en kiest u Privacy>speech en zorgt u ervoor dat online spraakherkenning is ingeschakeld.
Als u de gamemodus opent, kunt u de intentieherkenning testen door eerst op de raketknop te drukken. Wanneer u vervolgens de eerste voorbeelduiting zegt, gaat u verder met het lanceren van de raket, dan ziet u dat de LunarModule in de ruimte wordt gelanceerd.
Probeer alle voorbeelduitingen, vervolgens een variant van de voorbeelduitingen en vervolgens een paar willekeurige utterances.