Ćwiczenie — tworzenie intencji i zrozumienie języka naturalnego
W tym module zapoznasz się z rozpoznawaniem intencji usługi Azure Speech Service. Rozpoznawanie intencji umożliwia wyposażenie aplikacji w komendy głosowe wspierane przez sztuczną inteligencję, w których użytkownicy mogą wypowiadać niespecyficzne komendy głosowe, a system nadal zrozumie ich intencje.
Przygotowywanie sceny
W oknie Hierarchia wybierz obiekt Lunarcom, a następnie w oknie Inspektor użyj przycisku Dodaj komponent, aby dodać komponent Lunarcom Intent Recognizer (skrypt) do obiektu Lunarcom.
W oknie Project (Projekt) przejdź do Assets>MRTK. Tutorials.GettingStarted>Prefabs>RocketLauncher folder, przeciągnij prefab RocketLauncher_Complete do okna Hierarchii i umieść go w odpowiedniej lokalizacji przed kamerą. Na przykład:
- Przekształć położenie X = 0, Y = 1, Z = 1,5
- Transformacja rotacji X = 0, Y = 90, Z = 0
W oknie Hierarchia wybierz ponownie obiekt Lunarcom, a następnie rozwiń obiekt RocketLauncher_Complete>oraz jego sekcję Przyciski i przypisz każdy z obiektów podrzędnych Przycisków do odpowiednich pól przycisków wyrzutni lunarnych .
Tworzenie zasobu usługi językowej platformy Azure
W tej sekcji utworzysz zasób usługi językowej platformy Azure dla aplikacji Conversational Language Understanding (CLU), którą utworzysz w następnej sekcji.
Zaloguj się do portalu Azure i wybierz Utwórz zasób, a następnie wyszukaj i wybierz Usługa językowa.
Wybierz przycisk Utwórz, aby stworzyć wystąpienie tej usługi:
Na stronie Tworzenie języka wprowadź następujące wartości:
- Dla subskrypcji, wybierz bezpłatną wersję próbną, jeśli masz wersję próbną. Jeśli nie masz subskrypcji próbnej, wybierz jedną z innych subskrypcji.
- W obszarze Grupa zasobówwybierz link Utwórz nową, a następnie wprowadź odpowiednią nazwę, na przykład MRTK-Tutorials. Wybierz pozycję OK.
Napiwek
Jeśli masz już inną odpowiednią grupę zasobów na koncie platformy Azure, możesz użyć tej grupy zasobów zamiast tworzyć nową.
Na stronie tworzenia wprowadź następujące wartości:
- W polu nazwa wprowadź odpowiednią nazwę usługi; na przykład MRTK-Tutorials-AzureSpeechServices
- W przypadku regionwybierz lokalizację znajdującą się blisko lokalizacji fizycznej użytkowników aplikacji; na przykład Wschodnie stany USA
- W przypadku warstwy cenowej w tym samouczku wybierz pozycję F0 (5k transakcji na 30 dni)
Następnie wybierz pozycję Przejrzyj i utwórz, przejrzyj szczegóły, a następnie wybierz przycisk Utwórz w dolnej części strony, aby utworzyć zasób (i nową grupę zasobów, jeśli skonfigurowano ją do utworzenia):
Po zakończeniu procesu tworzenia zasobów zostanie wyświetlony komunikat Wdrożenie zostało ukończone:
Tworzenie aplikacji do interpretacji języka konwersacji (CLU)
W tej sekcji utworzysz aplikację CLU, skonfigurujesz i wytrenujesz jej model przewidywania oraz połączysz go z zasobem języka platformy Azure utworzonym w poprzednim kroku.
W szczególności utworzysz intencję, że jeśli użytkownik twierdzi, że należy wykonać akcję, aplikacja wyzwala zdarzenie PressableButton.OnClicked()
na jednym z trzech niebieskich przycisków w scenie, w zależności od przycisku, do którego odwołuje się użytkownik.
Jeśli na przykład użytkownik mówi, że iść do przodu i wystrzelić rakietę, aplikacja przewiduje, że iść do przodu, oznacza, że należy wykonać pewne działania i że zdarzenie PressableButton.OnClicked()
docelowy znajduje się na start.
Główne kroki, które należy wykonać, to:
- Tworzenie aplikacji CLU
- Utwórz intencje
- Tworzenie przykładowych wypowiedzi
- Tworzenie jednostek
- Przypisywanie jednostek do przykładowych wypowiedzi
- Trenowanie, testowanie i publikowanie aplikacji
1. Tworzenie aplikacji CLU
Korzystając z tego samego konta użytkownika użytego podczas tworzenia zasobu platformy Azure w poprzedniej sekcji, zaloguj się do usługi Language Studio.
Po zalogowaniu zostanie wyświetlony monit o wybranie zasobu platformy Azure. Wybierz wartości używane podczas tworzenia zasobu usługi Azure Language Service, a następnie wybierz pozycję Gotowe.
Po nawiązaniu połączenia z zasobem platformy Azure wybierz pozycję Utwórz nową usługę > Conversational Language Understanding i wprowadź następujące wartości w oknie podręcznym Utwórz projekt:
- W polu Nazwawprowadź odpowiednią nazwę, na przykład: MRTK-Tutorials-AzureSpeechServices. Zanotuj wybraną nazwę. Będzie ona potrzebna w dalszej części samouczka.
- Wybierz język dla głównego języka wypowiedzi .
- W przypadku Opisopcjonalnie wprowadź odpowiedni opis.
Wybierz pozycję Dalej, aby przejrzeć konfigurację projektu. Wybierz pozycję Utwórz, aby utworzyć projekt.
Po utworzeniu nowej aplikacji przeniesiesz się do strony definicji schematu tej aplikacji.
2. Tworzenie intencji
Na stronie Definicja schematu wybierz pozycję Dodaj i wprowadź następującą wartość w oknie podręcznym Dodaj intencję:
- Dla nazwy intencji wprowadź PressButton
Wybierz pozycję Dodaj intencję, aby utworzyć nową intencję:
Ostrożność
Na potrzeby tego samouczka projekt Unity będzie odwoływać się do tego zamiaru po jego nazwie (
PressButton
). Bardzo ważne jest, aby nazwać swoją intencję dokładnie tak samo.Po utworzeniu nowej intencji nastąpi powrót do strony Definicji schematu. Intencja PressButton zostanie wyświetlona na liście intencji.
3. Tworzenie przykładowych wypowiedzi
Na pasku bocznym po lewej stronie wybierz przycisk Etykietowanie danych. Na ekranie Etykietowanie danych wybierz pozycję PressButton z listy rozwijanej Wybierz intencję.
Na liście PressButton intencji wypowiedzi dodaj następujące przykładowe wypowiedzi:
- aktywowanie sekwencji uruchamiania
- pokaż mi wskazówkę dotyczącą rozmieszczenia
- inicjowanie sekwencji uruchamiania
- przycisk wskazówek dotyczących umieszczania
- daj mi wskazówkę
- naciśnięcie przycisku uruchamiania
- Potrzebuję wskazówki
- naciśnij przycisk resetuj
- czas resetowania doświadczenia
- wystartuj i wystrzelij rakietę
Po dodaniu wszystkich przykładowych wypowiedzi strona etykietowania danych powinna wyglądać następująco:
Ostrożność
Na potrzeby tego samouczka projekt Unity odwołuje się do słów "hint", "hints", "reset" i "launch". Niezwykle ważne jest, aby pisownia tych słów była dokładnie taka sama we wszystkich wystąpieniach.
4. Tworzenie jednostek
Na stronie Etykietowanie danych wybierz pozycję Dodaj jednostkę w okienku działania po prawej stronie, a następnie wprowadź następujące wartości w oknie podręcznym Dodaj jednostkę:
- Dla nazwa jednostki, wprowadź akcja
Wybierz Dodaj encję, aby utworzyć nową encję.
Powtórz poprzedni krok, aby utworzyć inną jednostkę o nazwie Target, więc masz dwie jednostki o nazwie Action i Target.
Ostrożność
Na potrzeby tego samouczka projekt Unity będzie odwoływać się do tych jednostek według ich nazw,
Action
iTarget
. Bardzo ważne jest, aby nazwać jednostki dokładnie tak samo.
5. Przypisywanie jednostek do przykładowych wypowiedzi
Wybierz wyraz idź, a następnie na wyraz naprzód, wybierz Akcja (prosta) z menu kontekstowego, aby oznaczyć idź naprzód jako wartość jednostki Akcja.
Fraza go ahead jest teraz zdefiniowana jako wartość jednostki Action. Teraz istnieje wartość jednostki akcji pod słowami "przejdź do przodu".
Notatka
Czerwona linia widoczna pod etykietą na obrazie wskazuje, że wartość jednostki nie została przewidywana; Zostanie to rozwiązane podczas trenowania modelu w następnej sekcji.
Następnie wybierz wyraz uruchom, a następnie wybierz pozycję Target z menu kontekstowego, aby oznaczyć etykietę jako wartość jednostki Target.
Wyraz jest teraz zdefiniowany jako wartość jednostki docelowej . Istnieje teraz wartość jednostki Target pod słowem "uruchomienie".
Przykładowa wypowiedź intencji "PressButton"
go ahead and launch the rocket
jest teraz skonfigurowana, aby była przewidywana w następujący sposób:- Intencja: WciśnijPrzycisk
- Jednostka akcji: przejdź do przodu
- Jednostka docelowa: uruchamianie
Powtórz poprzedni proces, aby przypisać akcję i etykietę jednostki Docelowej do każdej z przykładowych wypowiedzi, pamiętając, że następujące wyrazy powinny być oznaczone jako jednostki Target:
- wskazówka (dotyczy elementu HintsButton w projekcie Unity)
- wskazówki (cele HintsButton w projekcie Unity)
- reset (przycisk ResetButton w projekcie Unity)
- Uruchomienie (przycisk docelowy LaunchButton w projekcie programu Unity)
Wybierz pozycję Zapisz zmiany. Po oznaczeniu etykietą wszystkich przykładowych wypowiedzi strona intencji PressButton powinna wyglądać następująco:
6. Trenowanie, testowanie i publikowanie aplikacji
Aby wytrenować aplikację, wybierz przycisk Train na pasku bocznym po lewej stronie. Powinna się wyświetlić strona Zadania szkoleniowe.
Wybierz pozycję Uruchom zadanie szkoleniowe i wybierz następujące wartości:
- Wybierz pozycję Przeszkol nowy model i wprowadź odpowiednią nazwę; na przykład MRTK-Tutorials-AzureSpeechServices.
- Wybierz szkolenie standardowe.
- Wybierz opcję Automatycznie oddziel zestaw testowy od danych treningowych.
Wybierz Train, aby rozpocząć proces trenowania. Po zakończeniu przetwarzania szkolenia zostanie wyświetlone powiadomienie Szkolenie ukończone.
Aby przejrzeć wyniki trenowania, wybierz model danych wyjściowych na ekranie Zadania trenowania, a następnie wybierz kartę Wydajność modelu.
Aby wdrożyć aplikację, wybierz przycisk Wdrażanie modelu na pasku bocznym po lewej stronie. Powinna zostać wyświetlona strona Wdrażanie modelu.
Wybierz Dodaj wdrożenie i wprowadź następujące wartości w oknie podręcznym Dodaj wdrożenie.
- Wybierz Utwórz nową nazwę wdrożenia i wprowadź odpowiednią nazwę. Zanotuj wybraną nazwę. Będzie ona potrzebna w dalszej części samouczka.
- Wybierz wcześniej utworzony model z listy rozwijanej Wybierz wytrenowany model.
Wybierz pozycję Wdróż i poczekaj na zakończenie procesu publikowania.
Wybierz nowe wdrożenie i kliknij przycisk Uzyskaj adres URL przewidywania.
Połącz projekt Unity z aplikacją CLU
W oknie podręcznym Pobierz adres URL przewidywania, wybierz ikonę Kopiuj, aby skopiować adres URL przewidywania .
W swoim projekcie Unity w Hierarchii wybierz obiekt Lunarcom, a następnie w oknie Inspektora zlokalizuj składnik Lunarcom Intent Recognizer (Script) i skonfiguruj go w następujący sposób.
- W polu punktu końcowego CLU przekaż adres URL przewidywania skopiowany w poprzednim kroku.
- W polu Nazwa projektu CLU przekaż nazwę projektu , którą zanotowałeś podczas tworzenia aplikacji CLU.
- W polu wdrażania CLU przekaż nazwę wdrożenia zanotowaną podczas tworzenia nowego wdrożenia.
- W polu Klucz interfejsu API usługi językowej przekaż klucz interfejsu API (Key1 lub Key2) dla usługi językowej . Można to znaleźć w portalu Azure, wybierając usługę językową, a następnie opcję Klucze i punkt końcowy w menu po lewej stronie.
Testowanie rozpoznawania intencji
Aby używać rozpoznawania intencji bezpośrednio w edytorze Unity, należy zezwolić komputerowi deweloperskiemu na używanie dyktowania. Aby sprawdzić to ustawienie, otwórz pozycję Ustawienia systemu Windows, a następnie wybierz pozycję Prywatność> mowy i upewnij się, że rozpoznawanie mowy online jest włączone.
Jeśli wprowadzisz tryb Gry, możesz przetestować rozpoznawanie intencji, naciskając przycisk rakiety. Następnie, gdy powiesz pierwszą przykładową wypowiedź, możesz przystąpić do wystrzelenia rakiety, zobaczysz, jak Moduł Księżycowy startuje w kosmos.
Wypróbuj wszystkie przykładowe wypowiedzi, a następnie niektóre odmiany przykładowych wypowiedzi, a następnie kilka losowych wypowiedzi.