Übung: Einrichten von Absicht und Natural Language Understanding

Abgeschlossen

In diesem Modul erkunden Sie die Absichtserkennung des Azure-Sprachdiensts. Mit der Absichtserkennung können Sie Ihre Anwendung mit KI-unterstützten Sprachbefehlen ausstatten, in denen Benutzer nicht spezifische Sprachbefehle sagen können und das System weiterhin ihre Absicht verstehen kann.

Vorbereiten der Szene

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

    Screenshot des Hinzufügens der Lunarcom Intent Recognizer (Script)-Komponente.

  2. Navigieren Sie im Projektfenster zu Assets>MRTK.Tutorials.GettingStarted>Prefabs>RocketLauncher-Ordner, ziehen Sie den RocketLauncher_Complete Prefab in Ihr Hierarchiefenster und platzieren Sie ihn an einer geeigneten Position vor der Kamera. Beispiel:

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

    Screenshot des Hinzufügens des RocketLauncher_Complete Prefab.

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

    Screenshot der Zuweisung der einzelnen Schaltflächen.

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.

  1. Melden Sie sich beim Azure-Portal an und wählen Sie "Ressource erstellen" aus, suchen und wählen Sie "Sprachdienst" aus.

    Screenshot der Azure-Sprachdienstressource.

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

    Screenshot der Erstellung einer Instanz dieses Diensts.

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

    • Wählen Sie für das 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 Gruppe "Ressource" den Link " Neuen Erstellen" aus, und geben Sie dann einen geeigneten Namen ein. Beispiel: MRTK-Tutorials. Wählen Sie "OK" aus.

    Screenshot des Bildschirms

    Tipp

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

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

    • Geben Sie für "Name" einen geeigneten Namen für den Dienst ein; z. B. MRTK-Tutorials-AzureSpeechServices
    • Wählen Sie für "Region" einen Standort in der Nähe des physischen Standorts Ihrer App-Benutzer aus. Beispiel: Ost-USA
    • Wählen Sie für das Preisniveau in diesem Lernprogramm F0 (5k-Transaktionen pro 30 Tage) aus.

    Screenshot des konfigurierten Formulars

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

    Screenshot des Bildschirms

  6. Nachdem der Ressourcenerstellungsprozess abgeschlossen ist, wird die Meldung " Ihre Bereitstellung abgeschlossen" angezeigt:

    Screenshot des Bildschirms

Erstellung einer Konversationssprachverständnis-App (CLU)

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

Insbesondere erstellen Sie eine Absicht, dass, wenn der Benutzer sagt, dass eine Aktion ausgeführt werden soll, die App das PressableButton.OnClicked() Ereignis auf eine der drei blauen Schaltflächen in der Szene auslöst, je nachdem, auf welche Schaltfläche der Benutzer verweist.

Wenn die benutzende Person 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. Beispieläußerungen erstellen
  4. Erstellen von Entitäten
  5. Entitäten den Beispieläußerungen zuordnen
  6. Trainieren, Testen und Veröffentlichen der App

1. Erstellen einer CLU-App

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

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

    Screenshot mit dem Popup

  2. Nachdem Sie die Azure-Ressource verbunden haben, wählen Sie " Neues > Unterhaltungssprachenverständnis erstellen " aus, und geben Sie die folgenden Werte in das Popupfenster " Projekt erstellen " ein:

    • Geben Sie für "Name" einen geeigneten Namen ein, z. B. MRTK-Tutorials-AzureSpeechServices. Notieren Sie sich den ausgewählten Namen, den Sie später im Lernprogramm benötigen.
    • Wählen Sie die Hauptsprache für Utterances aus.
    • Geben Sie optional eine geeignete Beschreibung ein.

    Screenshot des Popups

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

    Screenshot des Bildschirms

  4. Wenn die neue App erstellt wurde, gelangen Sie zur Schemadefinitionsseite dieser App.

    Screenshot der Dashboardseite der App.

2. Erstellen von Absichten

  1. Wählen Sie auf der Seite „Schemadefinition“ Hinzufügen und geben Sie im Popup-Fenster „Intent hinzufügen“ den folgenden Wert ein:

    • Geben Sie für Intent-NamenPressButton ein.
  2. Wählen Sie " Absicht hinzufügen" aus, um die neue Absicht zu erstellen:

    Screenshot des Bildschirms „Absicht hinzufügen“.

    Vorsicht

    Im Rahmen dieses Lernprogramms referenziert Ihr Unity-Projekt diese Absicht anhand seines Namens (PressButton). Es ist äußerst wichtig, dass Sie Ihre Absicht genau so benennen.

  3. Wenn die neue Absicht erstellt wurde, gelangen Sie zurück zur Schemadefinitionsseite. Die PressButton-Absicht wird in der Liste der Absichten angezeigt.

    Screenshot der Liste der Absichten.

3. Erstellen von Beispiel-Äußerungen

  1. Wählen Sie auf 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 der Seite

  2. Fügen Sie der Liste "Utterances" der PressButton-Absicht die folgenden Beispieläußerungen hinzu:

    • Startsequenz aktivieren
    • Zeige mir einen Platzierungshinweis
    • Starten der Startsequenz
    • Schaltfläche „Hinweise zur Platzierung“
    • Geben Sie mir einen Hinweis
    • Drücken der Startschaltfläche
    • Ich benötige einen Hinweis
    • drücken Sie die Schaltfläche "Zurücksetzen"
    • Zeit zum Zurücksetzen der Erfahrung
    • fahren Sie fort, und starten Sie die Rakete
  3. Wenn Sie alle Beispiel-Äußerungen hinzugefügt haben, sollte Ihre Datenbezeichnungsseite wie folgt aussehen:

    Screenshot der aktualisierten Seite

    Vorsicht

    Im Rahmen dieses Tutorials verweist Ihr Unity-Projekt auf die Wörter „Hinweis“, „Hinweise“, „zurücksetzen“ und „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ählen Sie auf der Seite "Datenbeschriftung" im rechten Aktivitätsbereichdie Option "Entität hinzufügen" aus, und geben Sie die folgenden Werte in das Popupfenster "Entität hinzufügen" ein:

    • Geben Sie für den Entitätsnamen"Aktion" ein.
  2. Wählen Sie "Entität hinzufügen" aus, um die neue Entität zu erstellen.

    Screenshot des Hinzufügens einer neuen Entität.

  3. Wiederholen Sie den vorherigen Schritt, um eine andere Entität namens Target zu erstellen, sodass Sie zwei Entitäten mit dem Namen "Action " und "Target" haben.

    Screenshot des Erstellens einer Zielentität.

    Vorsicht

    Im Rahmen dieses Lernprogramms referenziert Ihr Unity-Projekt diese Entitäten anhand ihrer 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, dann wählen Sie Aktion (Einfach) aus dem Kontextmenü aus, um go ahead als Action-Entitätswert zu kennzeichnen.

    Screenshot der Bezeichnung als Aktionsentitätswert.

  2. Der Begriff Go Ahead ist jetzt als Aktion-Entitätswert definiert. Unter den Wörtern "Go ahead" gibt es jetzt einen Aktionsentitätswert.

    Screenshot des Hinzugefügten Aktionsentitätswerts.

    Hinweis

    Die rote Linie, die sie unter der Beschriftung in der Abbildung sehen, gibt an, dass der Entitätswert 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 aus, und wählen Sie dann Target aus dem Kontextmenü, um launch als Target-Entitätswert zu kennzeichnen.

    Screenshot der Auswahl des Wortes 'Launch'.

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

    Screenshot des hinzugefügten Zielentitätswerts unter dem Wort „starten“.

  5. Die PressButton-Absichtsbeispiel-Äußerung go ahead and launch the rocket ist jetzt so konfiguriert, dass sie wie folgt vorhergesagt wird:

    • Absicht: PressButton
    • Aktionsentität: Fahren Sie fort
    • Zielentität: Starten
  6. Wiederholen Sie den vorherigen Vorgang, um jedem Beispiel die Bezeichnung "Aktion" und eine Zielentitätsbezeichnung zuzuweisen. Beachten Sie dabei, dass die folgenden Wörter als Zielentitäten bezeichnet werden sollten:

    • hint (zielt auf "HintsButton" im Unity-Projekt ab)
    • Hinweise (zielt auf „HintsButton“ im Unity-Projekt ab)
    • Zurücksetzen (zielt auf „ResetButton“ im Unity-Projekt ab)
    • Starten (zielt auf „LaunchButton“ im Unity-Projekt ab)
  7. Wählen Sie " Änderungen speichern" aus. Wenn Sie alle Beispiel-Äußerungen beschriftet haben, sollte Ihre PressButton-Absichtsseite wie folgt aussehen:

    Screenshot der Seite „PressButton-Absicht“ mit allen Beispielen mit Bezeichnungen.

6. Trainieren, Testen und Veröffentlichen der App

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

    Screenshot des Bildschirms

  2. Wählen Sie "Schulungsauftrag starten" aus, und wählen Sie die folgenden Werte aus:

    • Wählen Sie Trainieren Sie ein neues Modell und geben Sie einen geeigneten Namen ein; z. B. MRTK-Tutorials-AzureSpeechServices.
    • Wählen Sie "Standardschulung" aus.
    • Wählen Sie "Den Testsatz automatisch von den Schulungsdaten trennen".
  3. Wählen Sie "Trainieren" aus, um den Schulungsvorgang zu starten. Wenn die Verarbeitung der Schulung abgeschlossen ist, wird eine Benachrichtigung über die abgeschlossene Schulung angezeigt.

    Screenshot der Benachrichtigung

  4. Um die Ergebnisse der Schulung zu überprüfen, wählen Sie ihr Ausgabemodell auf dem Bildschirm "Schulungsaufträge" aus, und wählen Sie dann die Registerkarte " Modellleistung " aus.

    Screenshot des Bildschirms „Leistung des Modells“.

  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 der Seite

  6. Wählen Sie "Bereitstellung hinzufügen" aus, und geben Sie die folgenden Werte in das Popup " Bereitstellung hinzufügen " ein:

    • Wählen Sie "Neuen Bereitstellungsnamen erstellen" aus, und geben Sie einen geeigneten Namen ein. Notieren Sie sich den ausgewählten Namen, den Sie später im Lernprogramm 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 der Benachrichtigung über den Abschluss der Bereitstellung.

  8. Wählen Sie die neue Bereitstellung aus, und wählen Sie die Schaltfläche " Get prediction URL " aus.

    Screenshot der Seite

Verbinden des Unity-Projekts mit der CLU-App

  1. Wählen Sie im Popup " Vorhersage-URL abrufen " das Symbol "Kopieren " aus, um die Vorhersage-URL zu kopieren.

    Screenshot des Popups

  2. Wählen Sie in Ihrem Unity-Projekt im Hierarchiefenster das Lunarcom-Objekt aus, und suchen Sie dann im Inspektorfenster die Lunarcom Intent Recognizer (Script) -Komponente, und konfigurieren Sie es wie folgt.

    • Übergeben Sie im Feld "CLU-Endpunkt " die Vorhersage-URL , die Sie im vorherigen Schritt kopiert haben.
    • Übergeben Sie im Feld "CLU-Projektname " den Projektnamen , den Sie beim Erstellen einer CLU-App notiert haben.
    • Übergeben Sie im Feld "CLU-Bereitstellung " den Bereitstellungsnamen , den Sie beim Erstellen einer neuen Bereitstellung notiert haben.
    • Übergeben Sie im Feld "Sprachdienst-API-Schlüssel " den API-Schlüssel (Key1 oder Key2) für Ihren Sprachdienst. Sie finden dies im Azure-Portal, indem Sie Ihren Sprachdienst auswählen und dann im linken Menü Schlüssel und Endpunkt auswählen.

    Screenshot der Übergabe der kopierten Beispielabfrage.

Testen Sie die Absichtserkennung

  1. Um die Absichtserkennung direkt im Unity-Editor zu verwenden, müssen Sie ihrem Entwicklungscomputer die Verwendung des Diktierens gestatten. Um diese Einstellung zu überprüfen, öffnen Sie Windows-Einstellungen, und wählen Sie dann "Datenschutzsprache>" aus, und stellen Sie sicher, dass die Online-Spracherkennung aktiviert ist.

    Screenshot des Testens der Absichtserkennung.

  2. Wenn Sie in den Spielmodus wechseln, können Sie die Absichtserkennung testen, indem Sie zuerst die Raketentaste drücken. Wenn Sie die erste Beispieläußerung aussprechen (log geht‘s und Rakete starten), sehen Sie, wie die Mondlandefähre in den Weltraum startet.

    Screenshot des Spielmodus 'Enter'.

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