Übung: Einrichten von Absicht und Natural Language Understanding
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
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.
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
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.
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.
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:
Wählen Sie die Schaltfläche Erstellen aus, um eine Instanz dieses Diensts zu erstellen:
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.
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.
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.
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:
Nachdem der Vorgang zum Erstellen der Ressource abgeschlossen ist, wird diese Meldung angezeigt: Ihre Bereitstellung wurde abgeschlossen.
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:
- Erstellen einer CLU-App
- Erstellen von Absichten
- Erstellen von Beispieläußerungen
- Erstellen von Entitäten
- Zuweisen von Entitäten zu den Beispieläußerungen
- 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.
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.
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.
Wählen Sie Weiter aus, um die Projektkonfiguration zu überprüfen. Wählen Sie Create (Erstellen), um das Projekt zu erstellen.
Wenn die neue App erstellt wurde, werden Sie zur Seite Schemadefinition für diese App weitergeleitet.
2. Erstellen von Absichten
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
Wählen Sie Absicht hinzufügen aus, um die neue Absicht zu erstellen:
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.Wenn die neue Absicht erstellt wurde, werden Sie zur Seite „Schemadefinition“ zurückgeleitet. Die Absicht PressButton wird in der Liste der Absichten angezeigt.
3. Erstellen von Beispieläußerungen
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.
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
Wenn Sie alle Beispieläußerungen hinzugefügt haben, sollte die Seite „Datenbeschriftung“ so aussehen:
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
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
Wählen Sie Entität hinzufügen aus, um die neue Entität zu erstellen.
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.
Achtung
Für die Zwecke dieses Tutorials verweist Ihr Unity-Projekt auf diese Entitäten über ihre Namen,
Action
undTarget
. Es ist äußerst wichtig, dass Sie Ihre Entitäten genau so benennen.
5. Zuweisen von Entitäten zu den Beispieläußerungen
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.
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.
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.
Wählen Sie als Nächstes das Wort launch und dann im Popupkontextmenü Target aus, um launch als Entitätswert von Target zu bezeichnen.
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.
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
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)
Wählen Sie Änderungen speichern. Wenn Sie alle Beispieläußerungen bezeichnet haben, sollte Ihre Seite der Absicht „PressButton“ wie folgt aussehen:
6. Trainieren, Testen und Veröffentlichen der App
Um die App zu trainieren, wählen Sie in der linken Randleiste die Schaltfläche Trainieren aus. Die Seite „Trainingsaufträge“ sollte angezeigt werden.
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.
Wählen Sie Trainieren aus, um den Trainingsprozess zu starten. Wenn der Trainingsprozess abgeschlossen ist, wird die Benachrichtigung Training abgeschlossen angezeigt.
Um die Trainingsergebnisse zu überprüfen, wählen Sie ihr Ausgabemodell auf dem Bildschirm „Trainingsaufträge“ und dann die Registerkarte Modellleistung aus.
Um die App bereitzustellen, wählen Sie in der linken Randleiste die Schaltfläche Modell bereitstellen aus. Die Seite „Modell bereitstellen“ sollte angezeigt werden.
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.
Wählen Sie Bereitstellen aus, und warten Sie, bis der Veröffentlichungsvorgang abgeschlossen ist.
Wählen Sie die neue Bereitstellung und dann die Schaltfläche Vorhersage-URL abrufen aus.
Verbinden des Unity-Projekts mit der CLU-App
Während Sie sich im Popupfenster Vorhersage-URL abrufen befinden, wählen Sie das Symbol Kopieren aus, um die Vorhersage-URL zu kopieren.
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.
Testen der Absichtserkennung
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.
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.
Probieren Sie alle Beispieläußerungen und dann einige Variationen der Beispieläußerungen sowie einige zufällige Äußerungen aus.