Übung: Einrichten von Absicht und Natural Language Understanding

Abgeschlossen

In diesem Modul machen Sie sich mit der Absichtserkennung des Azure Speech-Diensts vertraut. Die Absichtserkennung ermöglicht Ihnen, Ihre Anwendung mit KI-gestützten Sprachbefehlen auszustatten – damit können Benutzer*innen unspezifische Sprachbefehle äußern, und das System versteht ihre Absicht dennoch.

Vorbereiten der Szene

  1. Wählen Sie im Hierarchiefenster das Lunarcom-Objekt aus, und verwenden Sie dann im Inspektorfenster die Schaltfläche Komponente hinzufügen, um die Komponente Lunarcom Intent Recognizer (Script) zum Lunarcom-Objekt hinzuzufügen.

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

  2. Navigieren Sie im Projektfenster zum Ordner Assets>MRTK.Tutorials.GettingStarted>Prefabs>RocketLauncher, ziehen Sie das Prefab RocketLauncher_Complete in Ihr Hierarchiefenster, und platzieren Sie es an einem passenden Ort vor der Kamera. Beispiel:

    • Transformationsposition X = 0, Y = 1, Z = 1.5
    • Transformationsrotation X = 0, Y = 90, Z = 0

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. Wählen Sie im Hierarchiefenster das Objekt Lunarcom erneut aus, erweitern Sie dann das Objekt RocketLauncher_Complete>Buttons, und weisen Sie jedem untergeordneten Objekt des Buttons-Objekts das entsprechende Lunar Launcher Buttons-Feld zu.

    Screenshot of assigning each of the buttons.

Erstellen der Azure-Sprachdienstressource

In diesem Abschnitt erstellen Sie eine Azure-Sprachdienstressource für die CLU-App (Conversational Language Understanding), die Sie im nächsten Abschnitt erstellen werden.

  1. Melden Sie sich beim Azure-Portal, und wählen Sie Ressource erstellen aus. Suchen Sie dann nach Sprachdienst, und wählen Sie den entsprechenden Eintrag aus:

    Screenshot of the Azure language service resource.

  2. Wählen Sie die Schaltfläche Erstellen aus, um eine Instanz dieses Diensts zu erstellen:

    Screenshot of creating an instance of this service.

  3. Geben Sie auf der Seite „Sprache erstellen“ die folgenden Werte ein:

    • Wählen Sie für Abonnement die Option Kostenlose Testversion aus, wenn Sie über ein Testabonnement verfügen. Wenn Sie kein Testabonnement haben, wählen Sie eines Ihrer anderen Abonnements aus.
    • Wählen Sie für die Ressourcengruppe den Link Neu erstellen aus, und geben Sie einen passenden Namen ein, beispielsweise: MRTK-Tutorials. Klickan Sie auf OK.

    Screenshot of the Create Language screen.

    Tipp

    Wenn Sie in Ihrem Azure-Konto bereits über eine andere geeignete Ressourcengruppe verfügen, können Sie diese Ressourcengruppe verwenden, anstatt eine neue zu erstellen.

  4. Geben Sie noch auf der Seite „Erstellen“ die folgenden Werte ein:

    • Geben Sie für Name einen passenden Namen für den Dienst ein, zum Beispiel MRTK-Tutorials-AzureSpeechServices.
    • Wählen Sie als Region einen Standort aus, der sich in der Nähe der physischen Standorte Ihrer App-Benutzer*innen befindet, beispielsweise USA, Osten.
    • Wählen Sie für dieses Tutorial als Tarif die Option F0 (5.000 Transaktionen pro 30 Tage) aus.

    Screenshot of the configured Create Language form.

  5. Wählen Sie als Nächstes Überprüfen und erstellen aus. Überprüfen Sie die Details, und wählen Sie dann unten auf der Seite die Schaltfläche Erstellen aus, um die Ressource (und die neue Ressourcengruppe, falls Sie eine konfiguriert haben) zu erstellen:

    Screenshot of the Review + Create screen.

  6. Nachdem der Vorgang zum Erstellen der Ressource abgeschlossen ist, wird diese Meldung angezeigt: Ihre Bereitstellung wurde abgeschlossen.

    Screenshot of the Overview screen.

Erstellen der CLU-App (Conversational Language Understanding)

In diesem Abschnitt erstellen Sie eine CLU-App, konfigurieren und trainieren ihr Vorhersagemodell und verbinden die App mit der Azure-Sprachressource, die Sie im vorherigen Schritt erstellt haben.

Insbesondere erstellen Sie eine Absicht für die folgende Situation: Wenn der Benutzer oder die Benutzerin sagt, dass eine Aktion ausgeführt werden soll, löst die App das PressableButton.OnClicked()-Ereignis für eine der drei blauen Schaltflächen in der Szene aus, je nachdem, auf welche Schaltfläche sich der Benutzer bzw. die Benutzerin bezieht.

Wenn der Benutzer z. B. sagt los geht‘s und Rakete starten, sagt die App Folgendes voraus: los geht‘s bedeutet, dass eine Aktion ausgeführt werden soll, und das PressableButton.OnClicked()-Ereignis, das als Ziel dient, befindet sich auf der Schaltfläche Starten.

Dazu müssen Sie die folgenden Hauptschritte ausführen:

  1. Erstellen einer CLU-App
  2. Erstellen von Absichten
  3. Erstellen von Beispieläußerungen
  4. Erstellen von Entitäten
  5. Zuweisen von Entitäten zu den Beispieläußerungen
  6. Trainieren, Testen und Veröffentlichen der App

1. Erstellen einer CLU-App

Melden Sie sich mit demselben Benutzerkonto, das Sie beim Erstellen der Azure-Ressource im vorherigen Abschnitt verwendet haben, bei Language Studio an.

  1. Nach der Anmeldung werden Sie aufgefordert, eine Azure-Ressource auszuwählen. Wählen Sie die Werte aus, die Sie beim Erstellen der Azure-Sprachdienstressource verwendet haben, und wählen Sie Fertig aus.

    Screenshot showing the Select an Azure resource popup.

  2. Nachdem Sie eine Verbindung mit der Azure-Ressource hergestellt haben, wählen Sie Neu erstellen > Conversational Language Understanding aus, und geben Sie die folgenden Werte in das Popupfenster Projekt erstellen ein:

    • Geben Sie bei Name einen passenden Namen ein, zum Beispiel: MRTK-Tutorials-AzureSpeechServices. Notieren Sie sich den Namen, den Sie eingegeben haben – Sie werden ihn im weiteren Verlauf dieses Tutorials benötigen.
    • Wählen Sie für Primäre Sprache für Äußerungen eine Sprache aus.
    • Geben Sie unter Beschreibung optional eine geeignete Beschreibung ein.

    Screenshot of the Create a project popup.

  3. Wählen Sie Weiter aus, um die Projektkonfiguration zu überprüfen. Wählen Sie Create (Erstellen), um das Projekt zu erstellen.

    Screenshot of the Review and finish screen.

  4. Wenn die neue App erstellt wurde, werden Sie zur Seite Schemadefinition für diese App weitergeleitet.

    Screenshot of the App's dashboard page.

2. Erstellen von Absichten

  1. Wählen Sie auf der Seite „Schemadefinition“ Hinzufügen aus, und geben Sie den folgenden Wert in das Popupfenster Absicht hinzufügen ein:

    • Geben Sie als AbsichtsnamePressButton ein
  2. Wählen Sie Absicht hinzufügen aus, um die neue Absicht zu erstellen:

    Screenshot of the Add an intent screen.

    Achtung

    Für die Zwecke dieses Tutorials verweist Ihr Unity-Projekt auf diese Absicht über ihren Namen (PressButton). Es ist äußerst wichtig, dass Sie Ihre Absicht genau so benennen.

  3. Wenn die neue Absicht erstellt wurde, werden Sie zur Seite „Schemadefinition“ zurückgeleitet. Die Absicht PressButton wird in der Liste der Absichten angezeigt.

    Screenshot of the list of Intents.

3. Erstellen von Beispieläußerungen

  1. Wählen Sie in der linken Randleiste die Schaltfläche Datenbeschriftung aus. Wählen Sie auf dem Bildschirm Datenbeschriftung die Option PressButton aus der Dropdownliste Absicht auswählen aus.

    Screenshot of the Data labeling page.

  2. Fügen Sie der Liste der Äußerungen für die Absicht PressButton die folgenden Beispieläußerungen hinzu:

    • Startsequenz aktivieren
    • Platzierungshinweis anzeigen
    • Startsequenz einleiten
    • Schaltflächen für Platzierungshinweise drücken
    • Gib mit einen Hinweis
    • Startschaltfläche drücken
    • Ich brauche einen Hinweis
    • Taste „Zurücksetzen“ drücken
    • Zeit zum Zurücksetzen des Experiments
    • Fahre fort, starte die Rakete
  3. Wenn Sie alle Beispieläußerungen hinzugefügt haben, sollte die Seite „Datenbeschriftung“ so aussehen:

    Screenshot of the updated Data labeling page.

    Achtung

    Im Rahmen dieses Tutorials verweist Ihr Unity-Projekt auf die Wörter „hint“ (Hinweis), „hints“ (Hinweise), „reset“ (Zurücksetzen) und „launch“ (Starten). Es ist äußerst wichtig, dass Sie diese Wörter in allen Fällen genau gleich schreiben.

4. Erstellen von Entitäten

  1. Während Sie sich noch auf der Seite „Datenbeschriftung“ befinden, wählen Sie im Aktivitätsbereich auf der rechten Seite Entität hinzufügen aus, und geben Sie im Popupfenster Entität hinzufügen die folgenden Werte ein:

    • Geben Sie als EntitätsnameAktion ein
  2. Wählen Sie Entität hinzufügen aus, um die neue Entität zu erstellen.

    Screenshot of adding a new entity.

  3. Wiederholen Sie den vorhergehenden Schritt, um eine weitere Entität mit dem Namen Target (Ziel) zu erstellen, sodass Sie über zwei Entitäten mit den Namen Action und Target verfügen.

    Screenshot of creating a target entity.

    Achtung

    Für die Zwecke dieses Tutorials verweist Ihr Unity-Projekt auf diese Entitäten über ihre Namen, Action und Target. Es ist äußerst wichtig, dass Sie Ihre Entitäten genau so benennen.

5. Zuweisen von Entitäten zu den Beispieläußerungen

  1. Wählen Sie das Wort go und dann das Wort ahead aus. Wählen Sie danach aus dem Popupkontextmenü Aktion (einfach) aus, um go ahead als Entitätswert für die Aktion zu beschriften.

    Screenshot of labeling go ahead as an action entity value.

  2. Der Ausdruck Fahre fort ist jetzt als Entitätswert für Aktion definiert. Jetzt befindet sich unter den Wörtern „go ahead“ ein Entitätswert für eine Aktion.

    Screenshot of the added action entity value.

    Hinweis

    Die rote Linie, die Sie unter der Bezeichnung im Bild sehen, gibt an, dass der Wert der Entität nicht vorhergesagt wurde. Dies wird behoben, wenn Sie das Modell im nächsten Abschnitt trainieren.

  3. Wählen Sie als Nächstes das Wort launch und dann im Popupkontextmenü Target aus, um launch als Entitätswert von Target zu bezeichnen.

    Screenshot of selecting the word launch.

  4. Das Wort starte ist jetzt als Entitätswert für Ziel definiert. Unter dem Wort „launch“ befindet sich jetzt ein Entitätswert für ein Ziel.

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

  5. Die Beispieläußerung der Absicht PressButton go ahead and launch the rocket ist jetzt so konfiguriert, dass sie wie folgt vorhergesagt wird:

    • Absicht: PressButton
    • Action-Entität: Fahre fort
    • Zielentität: starte
  6. Wiederholen Sie den vorherigen Prozess, um jeder der Beispieläußerungen eine Bezeichnung für eine Aktion und eine Zielentität zuzuweisen. Beachten Sie dabei, dass die folgenden Wörter als Target-Entitäten bezeichnet werden sollten:

    • Hinweis (zielt auf die HintsButton-Schaltfläche im Unity-Projekt ab)
    • Hinweise (zielt auf die HintsButton-Schaltfläche im Unity-Projekt ab)
    • Zurücksetzen (zielt auf die ResetButton-Schaltfläche im Unity-Projekt ab)
    • starte (zielt auf die LaunchButton-Schaltfläche im Unity-Projekt ab)
  7. Wählen Sie Änderungen speichern. Wenn Sie alle Beispieläußerungen bezeichnet haben, sollte Ihre Seite der Absicht „PressButton“ wie folgt aussehen:

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

6. Trainieren, Testen und Veröffentlichen der App

  1. Um die App zu trainieren, wählen Sie in der linken Randleiste die Schaltfläche Trainieren aus. Die Seite „Trainingsaufträge“ sollte angezeigt werden.

    Screenshot of the Training jobs screen.

  2. Wählen Sie Trainingsauftrag starten und dann die folgenden Werte aus:

    • Wählen Sie Neues Modell trainieren aus, und geben Sie einen geeigneten Namen ein, beispielsweise MRTK-Tutorials-AzureSpeechServices.
    • Wählen Sie Standardtraining aus.
    • Wählen Sie Testsatz aus Trainingsdaten automatisch aufteilen aus.
  3. Wählen Sie Trainieren aus, um den Trainingsprozess zu starten. Wenn der Trainingsprozess abgeschlossen ist, wird die Benachrichtigung Training abgeschlossen angezeigt.

    Screenshot of Finished training notification.

  4. Um die Trainingsergebnisse zu überprüfen, wählen Sie ihr Ausgabemodell auf dem Bildschirm „Trainingsaufträge“ und dann die Registerkarte Modellleistung aus.

    Screenshot of the Model performance screen.

  5. Um die App bereitzustellen, wählen Sie in der linken Randleiste die Schaltfläche Modell bereitstellen aus. Die Seite „Modell bereitstellen“ sollte angezeigt werden.

    Screenshot of the Deploying a model page.

  6. Wählen Sie Bereitstellung hinzufügen aus, und geben Sie die folgenden Werte im Popupfenster Bereitstellung hinzufügen ein:

    • Wählen Sie Namen für neue Bereitstellung erstellen aus, und geben Sie einen geeigneten Namen ein. Notieren Sie sich den Namen, den Sie eingegeben haben – Sie werden ihn im weiteren Verlauf dieses Tutorials benötigen.
    • Wählen Sie aus der Dropdownliste Trainiertes Modell auswählen das Modell aus, das Sie zuvor erstellt haben.
  7. Wählen Sie Bereitstellen aus, und warten Sie, bis der Veröffentlichungsvorgang abgeschlossen ist.

    Screenshot of the Deployment completed notification.

  8. Wählen Sie die neue Bereitstellung und dann die Schaltfläche Vorhersage-URL abrufen aus.

    Screenshot of the Get Prediction URL page.

Verbinden des Unity-Projekts mit der CLU-App

  1. Während Sie sich im Popupfenster Vorhersage-URL abrufen befinden, wählen Sie das Symbol Kopieren aus, um die Vorhersage-URL zu kopieren.

    Screenshot of Get Prediction URL popup.

  2. Wechseln Sie zurück zum Unity-Projekt. Wählen Sie im Hierarchiefenster das Lunarcom-Objekt aus, suchen Sie im Inspektorfenster die Komponente Lunarcom Intent Recognizer (Script), und konfigurieren Sie sie wie folgt.

    • Fügen Sie im Feld CLU-Endpunkt die Vorhersage-URL ein, die Sie im vorherigen Schritt kopiert haben.
    • Fügen Sie im Feld Name des CLU-Projekts den Projektnamen ein, den Sie sich beim Erstellen der CLU-App notiert haben.
    • Fügen Sie im Feld CLU-Bereitstellung den Bereitstellungsnamen ein, den Sie sich beim Erstellen einer neuen Bereitstellung notiert haben.
    • Fügen Sie im Feld Schlüssel der Sprachdienst-API den API-Schlüssel (Key1 oder Key2) für Ihren Sprachdienst ein. Sie finden diesen im Azure-Portal, indem Sie Ihren Sprachdienst und dann im linken Menü Schlüssel und Endpunkt auswählen.

    Screenshot of passing the example query you copied.

Testen der Absichtserkennung

  1. Um Absichtserkennung direkt im Unity-Editor zu verwenden, müssen Sie Ihrem Entwicklungscomputer die Verwendung der Diktatfunktion erlauben. Um diese Einstellung zu überprüfen, öffnen Sie „Windows-Einstellungen“. Wählen Sie dann Datenschutz>Sprache aus, und vergewissern Sie sich, dass Onlinespracherkennung aktiviert ist.

    Screenshot of Testing the intent recognition.

  2. Wenn Sie in den Spielmodus wechseln, können Sie die Absichtserkennung testen, indem Sie zuerst auf die Raketenschaltfläche klicken. Wenn Sie die erste Beispieläußerung aussprechen (go ahead and launch the rocket), sehen Sie, wie die Mondlandefähre in den Weltraum startet.

    Screenshot of Enter the game mode.

  3. Probieren Sie alle Beispieläußerungen und dann einige Variationen der Beispieläußerungen sowie einige zufällige Äußerungen aus.