Oefening: intentie en begrip van natuurlijke taal instellen

Voltooid

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

  1. 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.

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

  2. 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

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. 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.

    Screenshot of assigning each of the buttons.

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.

  1. Meld u aan bij Azure Portal en selecteer Een resource maken, zoek en selecteer Language Service:

    Screenshot of the Azure language service resource.

  2. Selecteer de knop Maken om een exemplaar van deze service te maken:

    Screenshot of creating an instance of this service.

  3. 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.

    Screenshot of the Create Language screen.

    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.

  4. 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)

    Screenshot of the configured Create Language form.

  5. 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):

    Screenshot of the Review + Create screen.

  6. Zodra het proces voor het maken van resources is voltooid, ziet u het bericht dat uw implementatie is voltooid:

    Screenshot of the Overview screen.

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:

  1. Een CLU-app maken
  2. Intents maken
  3. Voorbeelduitingen maken
  4. Entiteiten maken
  5. Entiteiten toewijzen aan de voorbeelduitingen
  6. 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.

  1. 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.

    Screenshot showing the Select an Azure resource popup.

  2. 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.

    Screenshot of the Create a project popup.

  3. Selecteer Volgende om de projectconfiguratie te controleren. Selecteer Maken om het project te maken.

    Screenshot of the Review and finish screen.

  4. Wanneer de nieuwe app is gemaakt, gaat u naar de pagina Schemadefinitie van die app.

    Screenshot of the App's dashboard page.

2. Intenties maken

  1. 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
  2. Selecteer Intentie toevoegen om de nieuwe intentie te maken:

    Screenshot of the Add an intent screen.

    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.

  3. Wanneer de nieuwe intentie is gemaakt, gaat u terug naar de pagina Schemadefinitie. De intent PressButton wordt weergegeven in de lijst met intenties.

    Screenshot of the list of Intents.

3. Voorbeelduitingen maken

  1. Selecteer in de zijbalk aan de linkerkant de knop Gegevenslabeling . Selecteer In het scherm Gegevenslabelen de optie PressButton in de vervolgkeuzelijst Intentie selecteren.

    Screenshot of the Data labeling page.

  2. 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
  3. Wanneer u alle voorbeelduitingen hebt toegevoegd, moet de pagina gegevenslabeling er als volgt uitzien:

    Screenshot of the updated Data labeling page.

    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

  1. 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
  2. Selecteer Entiteit toevoegen om de nieuwe entiteit te maken.

    Screenshot of adding a new entity.

  3. 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.

    Screenshot of creating a target entity.

    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

  1. Selecteer het woord ga en selecteer vervolgens actie (eenvoudig) in het contextmenu om het label als een actie-entiteitswaarde te labelen.

    Screenshot of labeling go ahead as an action entity value.

  2. De volgende woordgroep wordt nu gedefinieerd als een actie-entiteitswaarde . Er is nu een actie-entiteitswaarde onder de woorden 'Ga vooruit'.

    Screenshot of the added action entity value.

    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.

  3. Selecteer vervolgens het woord starten en selecteer Vervolgens Doel in het contextmenu om het starten als een doelentiteitswaarde te labelen.

    Screenshot of selecting the word launch.

  4. Het startwoord is nu gedefinieerd als een doelentiteitswaarde . Er is nu een doelentiteitswaarde onder het woord 'launch'.

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

  5. 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
  6. 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)
  7. Selecteer Wijzigingen opslaan. Wanneer u alle voorbeelduitingen hebt gelabeld, ziet de intentiepagina PressButton er als volgt uit:

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

6. De app trainen, testen en publiceren

  1. Als u de app wilt trainen, selecteert u de knop Trainen in de zijbalk aan de linkerkant. U ziet nu de pagina Trainingstaken.

    Screenshot of the Training jobs screen.

  2. 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.
  3. Selecteer Trainen om het trainingsproces te starten. Wanneer de training is verwerkt, ziet u een melding Voltooide training .

    Screenshot of Finished training notification.

  4. Als u de resultaten van de training wilt bekijken, selecteert u het uitvoermodel op het scherm Trainingstaken en selecteert u vervolgens het tabblad Modelprestaties .

    Screenshot of the Model performance screen.

  5. 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.

    Screenshot of the Deploying a model page.

  6. 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.
  7. Selecteer Implementeren en wacht tot het publicatieproces is voltooid.

    Screenshot of the Deployment completed notification.

  8. Selecteer de nieuwe implementatie en selecteer de knop Voorspellings-URL ophalen.

    Screenshot of the Get Prediction URL page.

Verbinding maken het unity-project naar de CLU-app

  1. Selecteer in het pop-upvenster Voorspellings-URL ophalen het pictogram Kopiëren om de voorspellings-URL te kopiëren.

    Screenshot of Get Prediction URL popup.

  2. 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.

    Screenshot of passing the example query you copied.

De intentieherkenning testen

  1. 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.

    Screenshot of Testing the intent recognition.

  2. 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.

    Screenshot of Enter the game mode.

  3. Probeer alle voorbeelduitingen, vervolgens een variant van de voorbeelduitingen en vervolgens een paar willekeurige utterances.