Övning – Konfigurera avsikt och förståelse för naturligt språk

Slutförd

I den här modulen utforskar du Avsiktsigenkänning för Azure Speech Service. Med avsiktsigenkänning kan du utrusta ditt program med AI-baserade talkommandon, där användarna kan säga icke-specifika talkommandon och fortfarande låta systemet förstå deras avsikt.

Förbereda scenen

  1. I hierarkifönstret väljer du Lunarcom-objektet och i fönstret Inspector använder du knappen Lägg till komponent för att lägga till komponenten Lunarcom Intent Recognizer (Script) i Lunarcom-objektet.

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

  2. I fönstret Projekt navigerar du till MRTK för tillgångar>. Tutorials.GettingStarted>Prefabs>RocketLauncher-mappen , dra RocketLauncher_Complete prefab till hierarkifönstret och placera den på en lämplig plats framför kameran. Till exempel:

    • Transformera position X = 0, Y = 1, Z = 1,5
    • Transformera rotation X = 0, Y = 90, Z = 0

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. I hierarkifönstret väljer du Lunarcom-objektet igen, expanderar sedan objektet RocketLauncher_Complete>Knappar och tilldelar vart och ett av knapparnas underordnade objekt till motsvarande fält för lunar launcher-knappar.

    Screenshot of assigning each of the buttons.

Skapa azure-språktjänstresursen

I det här avsnittet skapar du en Azure-språktjänstresurs för appen För konversationsspråkstolkning (CLU) som du skapar i nästa avsnitt.

  1. Logga in på Azure-portalen och välj Skapa en resurs, sök sedan efter och välj Språktjänst:

    Screenshot of the Azure language service resource.

  2. Välj knappen Skapa för att skapa en instans av den här tjänsten:

    Screenshot of creating an instance of this service.

  3. På sidan Skapa språk anger du följande värden:

    • För Prenumeration väljer du Kostnadsfri utvärderingsversion om du har en utvärderingsprenumeration. Om du inte har en utvärderingsprenumeration väljer du en av dina andra prenumerationer.
    • För resursgruppen väljer du länken Skapa ny och anger sedan ett lämpligt namn, till exempel MRTK-Tutorials. Välj OK.

    Screenshot of the Create Language screen.

    Dricks

    Om du redan har en annan lämplig resursgrupp i ditt Azure-konto kan du använda den här resursgruppen i stället för att skapa en ny.

  4. När du fortfarande är på sidan Skapa anger du följande värden:

    • Som Namn anger du ett lämpligt namn för tjänsten, till exempel MRTK-Tutorials-AzureSpeechServices
    • För Region väljer du en plats nära appanvändares fysiska plats, till exempel USA, östra
    • För Prisnivå väljer du F0 i den här självstudien (5 000 transaktioner per 30 dagar)

    Screenshot of the configured Create Language form.

  5. Välj sedan Granska + skapa, granska informationen och välj sedan knappen Skapa längst ned på sidan för att skapa resursen (och den nya resursgruppen om du har konfigurerat en som ska skapas):

    Screenshot of the Review + Create screen.

  6. När resursskapandeprocessen är klar visas meddelandet Din distribution är klar:

    Screenshot of the Overview screen.

Skapa appen För att förstå konversationsspråk (CLU)

I det här avsnittet skapar du en CLU-app, konfigurerar och tränar dess förutsägelsemodell och ansluter den till den Azure-språkresurs som du skapade i föregående steg.

Mer specifikt skapar du en avsikt att om användaren säger att en åtgärd ska vidtas utlöser PressableButton.OnClicked() appen händelsen på en av de tre blå knapparna i scenen, beroende på vilken knapp användaren refererar till.

Om användaren till exempel säger gå vidare och starta raketen, förutspår appen att gå vidare innebär att vissa åtgärder bör vidtas och att PressableButton.OnClicked() händelsen som ska riktas är på startknappen.

De viktigaste stegen du ska vidta för att uppnå detta är:

  1. Skapa en CLU-app
  2. Skapa avsikter
  3. Skapa exempelyttranden
  4. Skapa entiteter
  5. Tilldela entiteter till exempelyttranden
  6. Träna, testa och publicera appen

1. Skapa en CLU-app

Logga in på Language Studio med samma användarkonto som du använde när du skapade Azure-resursen i föregående avsnitt.

  1. När du har loggat in uppmanas du att välja en Azure-resurs. Välj de värden som du använde när du skapade Azure Language-tjänstresursen och välj sedan Klar.

    Screenshot showing the Select an Azure resource popup.

  2. När du har anslutit Azure-resursen väljer du Skapa ny > konversationsspråkstolkning och anger följande värden i popup-fönstret Skapa ett projekt :

    • Som Namn anger du ett lämpligt namn, till exempel: MRTK-Tutorials-AzureSpeechServices. Anteckna namnet du valde. Du behöver det senare i självstudien.
    • För Primärt språk för yttranden väljer du ett språk.
    • För Beskrivning kan du ange en lämplig beskrivning.

    Screenshot of the Create a project popup.

  3. Välj Nästa för att granska projektkonfigurationen. Välj Skapa för att skapa projektet.

    Screenshot of the Review and finish screen.

  4. När den nya appen har skapats tas du till appens schemadefinitionssida.

    Screenshot of the App's dashboard page.

2. Skapa avsikter

  1. På sidan Schemadefinition väljer du Lägg till och anger följande värde i popup-fönstret Lägg till en avsikt :

    • Som Avsiktsnamn anger du PressButton
  2. Välj Lägg till avsikt för att skapa den nya avsikten:

    Screenshot of the Add an intent screen.

    Varning

    I den här självstudien refererar Unity-projektet till den här avsikten med namnet (PressButton). Det är oerhört viktigt att du namnger din avsikt på exakt samma sätt.

  3. När den nya avsikten har skapats kommer du tillbaka till sidan Schemadefinition. Avsikten PressButton visas i listan över avsikter.

    Screenshot of the list of Intents.

3. Skapa exempelyttranden

  1. I det vänstra sidofältet väljer du knappen Dataetikettering . På skärmen Dataetiketter väljer du Tryckknapp i listrutan Välj avsikt.

    Screenshot of the Data labeling page.

  2. Lägg till följande exempelyttranden i listan Yttranden för PressButton-avsikten:

    • aktivera startsekvens
    • visa mig ett placeringstips
    • initiera startsekvensen
    • tryck på knappen placeringstips
    • ge mig en ledtråd
    • tryck på startknappen
    • Jag behöver ett tips
    • tryck på återställningsknappen
    • tid för att återställa upplevelsen
    • gå vidare och starta raketen
  3. När du har lagt till alla exempelyttranden bör sidan Dataetiketter se ut så här:

    Screenshot of the updated Data labeling page.

    Varning

    I den här självstudien refererar Unity-projektet till orden "hint", "hints", "reset" och "launch". Det är oerhört viktigt att du stavar dessa ord på exakt samma sätt i alla instanser.

4. Skapa entiteter

  1. På sidan Dataetiketter väljer du Lägg till entitet i fönstret Aktivitet till höger och anger följande värden i popup-fönstret Lägg till en entitet:

    • Som Entitetsnamn anger du Åtgärd
  2. Välj Lägg till entitet för att skapa den nya entiteten.

    Screenshot of adding a new entity.

  3. Upprepa föregående steg för att skapa en annan entitet med namnet Target, så att du har två entiteter med namnet Åtgärd och Mål.

    Screenshot of creating a target entity.

    Varning

    I den här självstudien refererar Unity-projektet till dessa entiteter efter deras namn Action och Target. Det är mycket viktigt att du namnger dina entiteter på exakt samma sätt.

5. Tilldela entiteter till exempelyttranden

  1. Välj ordet go och sedan på ordet framåt och välj sedan Åtgärd (Enkel) på snabbmenyn för att märka gå vidare som ett åtgärdsentitetsvärde.

    Screenshot of labeling go ahead as an action entity value.

  2. Go Ahead-frasen definieras nu som ett åtgärdsentitetsvärde. Det finns nu ett åtgärdsentitetsvärde under orden "go ahead".

    Screenshot of the added action entity value.

    Kommentar

    Den röda linje som visas under etiketten i bilden anger att entitetsvärdet inte har förutsagts. Detta kommer att lösas när du tränar modellen i nästa avsnitt.

  3. Välj sedan ordstarten och välj sedan Mål på snabbmenyn för att märka start som ett målentitetsvärde.

    Screenshot of selecting the word launch.

  4. Startordet definieras nu som ett målentitetsvärde. Det finns nu ett målentitetsvärde under ordet "launch".

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

  5. Exempelyttrandet för PressButton-avsikten go ahead and launch the rocket har nu konfigurerats för att förutsägas på följande sätt:

    • Avsikt: Tryckknapp
    • Åtgärdsentitet: gå vidare
    • Målentitet: starta
  6. Upprepa föregående process för att tilldela en åtgärd och en målentitetsetikett till vart och ett av exempelyttrandena, med tanke på att följande ord ska märkas som Målentiteter :

    • tips (riktar sig till HintsButton i Unity-projektet)
    • tips (riktar in sig på HintsButton i Unity-projektet)
    • reset (riktar in sig på ResetButton i Unity-projektet)
    • launch (riktar in sig på LaunchButton i Unity-projektet)
  7. Välj Spara ändringar. När du har etiketterat alla exempelyttranden bör sidan För avsikt för PressButton se ut så här:

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

6. Träna, testa och publicera appen

  1. Om du vill träna appen väljer du knappen Träna i det vänstra sidofältet. Du bör se sidan Träningsjobb.

    Screenshot of the Training jobs screen.

  2. Välj Starta ett träningsjobb och välj följande värden:

    • Välj Träna en ny modell och ange ett lämpligt namn, till exempel MRTK-Tutorials-AzureSpeechServices.
    • Välj Standardträning.
    • Välj Dela upp testuppsättningen automatiskt från träningsdata.
  3. Välj Träna för att starta träningsprocessen. När träningen är klar visas ett meddelande om slutförd träning .

    Screenshot of Finished training notification.

  4. Om du vill granska resultatet av träningen väljer du utdatamodellen på skärmen Träningsjobb och väljer sedan fliken Modellprestanda.

    Screenshot of the Model performance screen.

  5. Om du vill distribuera appen väljer du knappen Distribuera en modell i det vänstra sidofältet. Du bör se sidan Distribuera en modell.

    Screenshot of the Deploying a model page.

  6. Välj Lägg till distribution och ange följande värden i popup-fönstret Lägg till distribution :

    • Välj Skapa ett nytt distributionsnamn och ange ett lämpligt namn. Anteckna namnet du valde. Du behöver det senare i självstudien.
    • Välj den modell som du tidigare har skapat i listrutan Välj en tränad modell .
  7. Välj Distribuera och vänta tills publiceringsprocessen har slutförts.

    Screenshot of the Deployment completed notification.

  8. Välj den nya distributionen och välj knappen Hämta förutsägelse-URL .

    Screenshot of the Get Prediction URL page.

Anslut unity-projektet till CLU-appen

  1. I popup-fönstret Hämta förutsägelse-URL väljer du ikonen Kopiera för att kopiera förutsägelse-URL:en.

    Screenshot of Get Prediction URL popup.

  2. I Unity-projektet går du till fönstret Hierarki och väljer Lunarcom-objektet . I fönstret Inspector letar du upp komponenten Lunarcom Intent Recognizer (Skript) och konfigurerar det på följande sätt.

    • I fältet CLU-slutpunkt skickar du förutsägelse-URL :en som du kopierade i föregående steg.
    • I fältet CLU-projektnamn skickar du det projektnamn som du antecknade när du skapade en CLU-app.
    • I fältet CLU-distribution skickar du det distributionsnamn som du antecknade när du skapade en ny distribution.
    • I fältet API-nyckel för Språktjänst skickar du API-nyckeln (Key1 eller Key2) för din språktjänst. Du hittar detta i Azure-portalen genom att välja din språktjänst och sedan välja Nycklar och slutpunkt på den vänstra menyn.

    Screenshot of passing the example query you copied.

Testa avsiktsigenkänningen

  1. Om du vill använda avsiktsigenkänning direkt i Unity-redigeraren måste du tillåta att utvecklingsdatorn använder diktering. Kontrollera den här inställningen genom att öppna Windows Inställningar och sedan välja Sekretesstal> och se till att Taligenkänning online är aktiverat.

    Screenshot of Testing the intent recognition.

  2. Om du anger spelläge kan du testa avsiktsigenkänningen genom att först trycka på raketknappen. När du sedan säger det första exempelyttrandet, går vidare och startar raketen, ser du LunarModule-uppskjutningen i rymden.

    Screenshot of Enter the game mode.

  3. Prova alla exempelyttranden, sedan någon variant av exempelyttranden och sedan några slumpmässiga yttranden.