Ćwiczenie — konfigurowanie intencji i zrozumienia języka naturalnego
W tym module zapoznasz się z rozpoznawaniem intencji usługi Azure Speech Service. Rozpoznawanie intencji umożliwia wyposażenie aplikacji za pomocą poleceń mowy opartej na sztucznej inteligencji, w których użytkownicy mogą powiedzieć nieokreślone polecenia mowy i nadal mają system zrozumieć ich intencję.
Przygotowywanie sceny
W oknie Hierarchia wybierz obiekt Lunarcom , a następnie w oknie Inspector (Inspektor) użyj przycisku Dodaj składnik, aby dodać składnik Lunarcom Intent Recognizer (Script) do obiektu Lunarcom.
W oknie Projekt przejdź do zestawu narzędzi Assets>MRTK. Tutorials.GettingStarted Prefabs>RocketLauncher folder, przeciągnij RocketLauncher_Complete prefab do okna Hierarchii i umieść go w odpowiedniej lokalizacji przed kamerą.> Na przykład:
- Położenie przekształcenia X = 0, Y = 1, Z = 1,5
- Przekształcanie obrotu X = 0, Y = 90, Z = 0
W oknie Hierarchy (Hierarchia) ponownie wybierz obiekt Lunarcom, a następnie rozwiń obiekt RocketLauncher_Complete>Buttons i przypisz wszystkie obiekty podrzędne obiektu Buttons do odpowiedniego pola Przyciski uruchamiania księżycowego.
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 witryny Azure Portal i wybierz pozycję Utwórz zasób, a następnie wyszukaj i wybierz pozycję Usługa językowa:
Wybierz przycisk Utwórz, aby utworzyć wystąpienie tej usługi:
Na stronie Tworzenie języka wprowadź następujące wartości:
- W obszarze Subskrypcja wybierz pozycję Bezpłatna wersja próbna, jeśli masz subskrypcję wersji próbnej. Jeśli nie masz subskrypcji próbnej, wybierz jedną z innych subskrypcji.
- W polu Grupa zasobów wybierz link Utwórz nowy, a następnie wprowadź odpowiednią nazwę, na przykład MRTK-Tutorials. Wybierz przycisk 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 Tworzenie wprowadź następujące wartości:
- W polu Nazwa wprowadź odpowiednią nazwę usługi, na przykład MRTK-Tutorials-AzureSpeechServices
- W obszarze Region wybierz lokalizację znajdującą się blisko lokalizacji fizycznej użytkowników aplikacji, na przykład Wschodnie stany USA
- W obszarze Warstwa cenowa w tym samouczku wybierz pozycję F0 (transakcje 5k 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 PressableButton.OnClicked()
zdarzenie 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 startuje rakietę, aplikacja przewiduje, że zostanie podjęta pewna akcja, a PressableButton.OnClicked()
zdarzenie docelowe znajduje się na przycisku uruchamiania.
Główne kroki, które należy wykonać, to:
- Tworzenie aplikacji CLU
- Tworzenie intencji
- Tworzenie przykładowych wypowiedzi
- Tworzenie jednostek
- Przypisywanie jednostek do przykładowych wypowiedzi
- Trenowanie, testowanie i publikowanie aplikacji
1. Tworzenie aplikacji CLU
Używając tego samego konta użytkownika, które zostało użyte podczas tworzenia zasobu platformy Azure w poprzedniej sekcji, zaloguj się do programu Language Studio.
Po zalogowaniu zostanie wyświetlony monit o wybranie zasobu platformy Azure. Wybierz wartości, które zostały użyte podczas tworzenia zasobu usługi językowej platformy Azure, a następnie wybierz pozycję Gotowe.
Po nawiązaniu połączenia z zasobem platformy Azure wybierz pozycję Utwórz nową > usługę Language Understanding konwersacji i wprowadź następujące wartości w oknie podręcznym Tworzenie projektu :
- W polu Nazwa wprowadź odpowiednią nazwę, na przykład : MRTK-Tutorials-AzureSpeechServices. Zanotuj wybraną nazwę. Będzie ona potrzebna w dalszej części samouczka.
- W przypadku języka podstawowego wypowiedzi wybierz język.
- W polu Opis opcjonalnie wprowadź odpowiedni opis.
Wybierz pozycję Dalej , aby przejrzeć konfigurację projektu. Wybierz polecenie Create (Utwórz), aby utworzyć projekt.
Po utworzeniu nowej aplikacji zostanie wyświetlona strona definicji schematu tej aplikacji.
2. Tworzenie intencji
Na stronie Definicja schematu wybierz pozycję Dodaj i wprowadź następującą wartość w oknie podręcznym Dodawanie intencji:
- W polu Nazwa intencji wprowadź pressButton
Wybierz pozycję Dodaj intencję , aby utworzyć nową intencję:
Uwaga
Na potrzeby tego samouczka projekt aparatu Unity będzie odwoływać się do tej intencji pod jego nazwą (
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 Wypowiedzi intencji PressButton dodaj następujące przykładowe wypowiedzi:
- aktywowanie sekwencji uruchamiania
- pokaż mi wskazówkę umieszczania
- 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 środowiska
- wystartuj i wystrzelij rakietę
Po dodaniu wszystkich przykładowych wypowiedzi strona etykietowania danych powinna wyglądać następująco:
Uwaga
Na potrzeby tego samouczka projekt aparatu Unity będzie odwoływać 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łanie po prawej stronie i wprowadź następujące wartości w oknie podręcznym Dodawanie jednostki:
- W polu Nazwa jednostki wprowadź wartość Akcja
Wybierz pozycję Dodaj jednostkę , aby utworzyć nową jednostkę.
Powtórz poprzedni krok, aby utworzyć inną jednostkę o nazwie Target, więc masz dwie jednostki o nazwie Action (Akcja) i Target (Target).
Uwaga
Na potrzeby tego samouczka projekt aparatu 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 przejdź, a następnie wybierz pozycję Akcja (prosta) z menu podręcznego kontekstowego, aby oznaczyć etykietę dalej jako wartość jednostki Akcja.
Fraza z wyprzedzeniem jest teraz zdefiniowana jako wartość jednostki Akcja . Teraz istnieje wartość jednostki akcji pod słowami "przejdź do przodu".
Uwaga
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 uruchamianie wyrazu, a następnie wybierz pozycję Target (Cel) z menu podręcznego kontekstowego, aby oznaczyć etykietę uruchamiania jako wartość jednostki Docelowej.
Słowo uruchamiania jest teraz zdefiniowane jako wartość jednostki Docelowej. Istnieje teraz wartość jednostki Target w obszarze słowa "launch".
Przykładowa wypowiedź
go ahead and launch the rocket
intencji PressButton jest teraz skonfigurowana do przewidywania w następujący sposób:- Intencja: PressButton
- 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, mając na uwadze, że następujące wyrazy powinny być oznaczone jako jednostki docelowe :
- hint (dotyczy elementu HintsButton w projekcie aparatu Unity)
- hints (targets HintsButton w projekcie aparatu Unity)
- reset (element docelowy ResetButton w projekcie aparatu Unity)
- launch (element docelowy LaunchButton w projekcie aparatu Unity)
Wybierz 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 Trenuj na pasku bocznym po lewej stronie. Powinna zostać wyświetlona strona Zadania trenowania.
Wybierz pozycję Rozpocznij zadanie szkoleniowe i wybierz następujące wartości:
- Wybierz pozycję Train a new model (Trenowanie nowego modelu ) i wprowadź odpowiednią nazwę, na przykład MRTK-Tutorials-AzureSpeechServices.
- Wybierz pozycję Trenowanie standardowe.
- Wybierz pozycję Automatycznie podziel zestaw testów z danych treningowych.
Wybierz pozycję Trenuj , aby rozpocząć proces trenowania. Po zakończeniu przetwarzania trenowania zostanie wyświetlone powiadomienie Zakończone trenowanie .
Aby przejrzeć wyniki trenowania, wybierz model wyjściowy na ekranie Zadania trenowania, a następnie wybierz kartę Wydajność modelu.
Aby wdrożyć aplikację, wybierz przycisk Deploying a model (Wdrażanie modelu) na pasku bocznym po lewej stronie. Powinna zostać wyświetlona strona Wdrażanie modelu.
Wybierz pozycję Dodaj wdrożenie i wprowadź następujące wartości w oknie podręcznym Dodawanie wdrożenia :
- Wybierz pozycję 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 wybierz przycisk Pobierz adres URL przewidywania.
Połączenie projektu aparatu Unity do aplikacji CLU
W oknie podręcznym Pobierz adres URL przewidywania wybierz ikonę Kopiuj , aby skopiować adres URL przewidywania.
W projekcie aparatu Unity w oknie Hierarchia wybierz obiekt Lunarcom, a następnie w oknie Inspector (Inspektor) znajdź składnik Lunarcom Intent Recognizer (Script) i skonfiguruj go w następujący sposób.
- W polu Punkt końcowy CLU przekaż adres URL przewidywania skopiowany w poprzednim kroku.
- W polu Nazwa projektu CLU przekaż nazwę projektu zanotowaną podczas tworzenia aplikacji CLU.
- W polu Wdrożenie CLU przekaż zanotowaną nazwę wdrożenia podczas tworzenia nowego wdrożenia.
- W polu Klucz interfejsu API usługi językowej przekaż klucz interfejsu API (Klucz1 lub Klucz2) dla usługi językowej. Tę pozycję można znaleźć w witrynie Azure Portal, wybierając usługę językową, a następnie wybierając pozycję Klucze i punkt końcowy w menu po lewej stronie.
Testowanie rozpoznawania intencji
Aby używać rozpoznawania intencji bezpośrednio w edytorze aparatu Unity, należy zezwolić komputerowi programistycznemu na używanie dyktowania. Aby zweryfikować to ustawienie, otwórz Ustawienia systemu Windows, a następnie wybierz pozycję Mowa prywatności>i upewnij się, że funkcja rozpoznawania mowy online jest włączona.
Jeśli wprowadzisz tryb Gry, możesz przetestować rozpoznawanie intencji, naciskając przycisk rakiety. Następnie, gdy powiesz pierwszą przykładową wypowiedź, wystartujesz i uruchomisz rakietę, zobaczysz wystrzelenie modułu LunarModule w kosmos.
Wypróbuj wszystkie przykładowe wypowiedzi, a następnie niektóre odmiany przykładowych wypowiedzi, a następnie kilka losowych wypowiedzi.