Ćwiczenie — tworzenie intencji i zrozumienie języka naturalnego

Ukończone

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

  1. 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.

    zrzut ekranu przedstawiający dodawanie składnika Rozpoznawanie intencji Lunarcom (Script).

  2. 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

    Zrzut ekranu przedstawiający dodawanie prefab RocketLauncher_Complete.

  3. 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 .

    Zrzut ekranu przedstawiający przypisywanie poszczególnych przycisków.

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.

  1. Zaloguj się do portalu Azure i wybierz Utwórz zasób, a następnie wyszukaj i wybierz Usługa językowa.

    zrzut ekranu przedstawiający zasób usługi językowej platformy Azure.

  2. Wybierz przycisk Utwórz, aby stworzyć wystąpienie tej usługi:

    Zrzut ekranu przedstawiający tworzenie instancji tej usługi.

  3. 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.

    zrzut ekranu tworzenia języka.

    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ą.

  4. 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)

    zrzut ekranu przedstawiający skonfigurowany formularz 'Tworzenie języka'.

  5. 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):

    zrzut ekranu ekranu Przeglądanie i Tworzenie.

  6. Po zakończeniu procesu tworzenia zasobów zostanie wyświetlony komunikat Wdrożenie zostało ukończone:

    Zrzut ekranu ekranu Przegląd.

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:

  1. Tworzenie aplikacji CLU
  2. Utwórz intencje
  3. Tworzenie przykładowych wypowiedzi
  4. Tworzenie jednostek
  5. Przypisywanie jednostek do przykładowych wypowiedzi
  6. 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.

  1. 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.

    Zrzut ekranu przedstawiający wyskakujące okienko Wybierz zasób platformy Azure.

  2. 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.

    zrzut ekranu okienka popup 'Tworzenie projektu'.

  3. Wybierz pozycję Dalej, aby przejrzeć konfigurację projektu. Wybierz pozycję Utwórz, aby utworzyć projekt.

    zrzut ekranu przedstawiający ekran Przegląd i zamknięcie.

  4. Po utworzeniu nowej aplikacji przeniesiesz się do strony definicji schematu tej aplikacji.

    Zrzut ekranu przedstawiający stronę pulpitu nawigacyjnego aplikacji.

2. Tworzenie intencji

  1. Na stronie Definicja schematu wybierz pozycję Dodaj i wprowadź następującą wartość w oknie podręcznym Dodaj intencję:

    • Dla nazwy intencji wprowadź PressButton
  2. Wybierz pozycję Dodaj intencję, aby utworzyć nową intencję:

    Zrzut ekranu przedstawiający ekran Dodawanie intencji.

    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.

  3. Po utworzeniu nowej intencji nastąpi powrót do strony Definicji schematu. Intencja PressButton zostanie wyświetlona na liście intencji.

    zrzut ekranu przedstawiający listę intencji.

3. Tworzenie przykładowych wypowiedzi

  1. Na pasku bocznym po lewej stronie wybierz przycisk Etykietowanie danych. Na ekranie Etykietowanie danych wybierz pozycję PressButton z listy rozwijanej Wybierz intencję.

    Zrzut ekranu przedstawiający stronę etykietowania danych.

  2. 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ę
  3. Po dodaniu wszystkich przykładowych wypowiedzi strona etykietowania danych powinna wyglądać następująco:

    Zrzut ekranu przedstawiający zaktualizowaną stronę etykietowania danych.

    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

  1. 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
  2. Wybierz Dodaj encję, aby utworzyć nową encję.

    Zrzut ekranu przedstawiający dodawanie nowej jednostki.

  3. Powtórz poprzedni krok, aby utworzyć inną jednostkę o nazwie Target, więc masz dwie jednostki o nazwie Action i Target.

    Zrzut ekranu przedstawiający tworzenie jednostki docelowej.

    Ostrożność

    Na potrzeby tego samouczka projekt Unity będzie odwoływać się do tych jednostek według ich nazw, Action i Target. Bardzo ważne jest, aby nazwać jednostki dokładnie tak samo.

5. Przypisywanie jednostek do przykładowych wypowiedzi

  1. 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.

    Zrzut ekranu przedstawiający etykietowanie działania 'go ahead' jako wartość jednostki akcji.

  2. Fraza go ahead jest teraz zdefiniowana jako wartość jednostki Action. Teraz istnieje wartość jednostki akcji pod słowami "przejdź do przodu".

    Zrzut ekranu przedstawiający wartość jednostki akcji dodanej.

    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.

  3. Następnie wybierz wyraz uruchom, a następnie wybierz pozycję Target z menu kontekstowego, aby oznaczyć etykietę jako wartość jednostki Target.

    Zrzut ekranu przedstawiający wybieranie wyrazu 'launch'.

  4. Wyraz jest teraz zdefiniowany jako wartość jednostki docelowej . Istnieje teraz wartość jednostki Target pod słowem "uruchomienie".

    Zrzut ekranu przedstawiający dodaną wartość elementu Target pod słowem 'launch'.

  5. 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
  6. 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)
  7. Wybierz pozycję Zapisz zmiany. Po oznaczeniu etykietą wszystkich przykładowych wypowiedzi strona intencji PressButton powinna wyglądać następująco:

    zrzut ekranu przedstawiający stronę intencji PressButton ze wszystkimi przykładowymi wypowiedziami oznaczonymi etykietą.

6. Trenowanie, testowanie i publikowanie aplikacji

  1. Aby wytrenować aplikację, wybierz przycisk Train na pasku bocznym po lewej stronie. Powinna się wyświetlić strona Zadania szkoleniowe.

    Zrzut ekranu ekranu zadań szkoleniowych.

  2. 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.
  3. Wybierz Train, aby rozpocząć proces trenowania. Po zakończeniu przetwarzania szkolenia zostanie wyświetlone powiadomienie Szkolenie ukończone.

    zrzut ekranu przedstawiający powiadomienie o zakończeniu szkolenia.

  4. Aby przejrzeć wyniki trenowania, wybierz model danych wyjściowych na ekranie Zadania trenowania, a następnie wybierz kartę Wydajność modelu.

    zrzut ekranu przedstawiający ekran wydajności modelu.

  5. Aby wdrożyć aplikację, wybierz przycisk Wdrażanie modelu na pasku bocznym po lewej stronie. Powinna zostać wyświetlona strona Wdrażanie modelu.

    zrzut ekranu przedstawiający stronę Wdrażanie modelu.

  6. 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.
  7. Wybierz pozycję Wdróż i poczekaj na zakończenie procesu publikowania.

    Zrzut ekranu przedstawiający powiadomienie o ukończeniu wdrożenia.

  8. Wybierz nowe wdrożenie i kliknij przycisk Uzyskaj adres URL przewidywania.

    zrzut ekranu przedstawiający stronę uzyskiwania adresu URL przewidywania.

Połącz projekt Unity z aplikacją CLU

  1. W oknie podręcznym Pobierz adres URL przewidywania, wybierz ikonę Kopiuj, aby skopiować adres URL przewidywania .

    zrzut ekranu przedstawiający wyskakujące okno dialogowe Pobieranie adresu URL prognozy.

  2. 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.

    Zrzut ekranu przedstawiający przekazywanie skopiowanego przykładowego zapytania.

Testowanie rozpoznawania intencji

  1. 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.

    zrzut ekranu przedstawiający testowanie rozpoznawania intencji.

  2. 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.

    zrzut ekranu przedstawiający wprowadzanie trybu gry.

  3. Wypróbuj wszystkie przykładowe wypowiedzi, a następnie niektóre odmiany przykładowych wypowiedzi, a następnie kilka losowych wypowiedzi.