Esercizio - Configurare la comprensione del linguaggio naturale e della finalità

Completato

In questo modulo si esplorerà il riconoscimento delle finalità del servizio Voce di Azure. Il riconoscimento delle finalità consente di equipaggiare l'applicazione con comandi vocali basati sull'intelligenza artificiale, in cui gli utenti possono pronunciare comandi vocali non specifici e avere comunque il sistema a comprendere la loro finalità.

Preparare la scena

  1. Nella finestra Hierarchy (Gerarchia) selezionare l'oggetto Lunarcom , quindi nella finestra Inspector (Controllo) usare il pulsante Aggiungi componente per aggiungere il componente Lunarcom Intent Recognizer (Script) all'oggetto Lunarcom.

    Screenshot of adding the Lunarcom Intent Recognizer (Script) component.

  2. Nella finestra Progetto passare a Asset>MRTK. Tutorials.GettingStarted>Prefabs>RocketLauncher cartella, trascinare il prefab RocketLauncher_Complete nella finestra Hierarchy (Gerarchia) e posizionarlo in una posizione appropriata davanti alla fotocamera. Ad esempio:

    • Trasformare la Posizione X = 0, Y = -1, Z = 1.5
    • Trasforma la rotazione X = 0, Y = 90, Z = 0

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. Nella finestra Hierarchy (Gerarchia) selezionare di nuovo l'oggetto Lunarcom, quindi espandere l'oggetto RocketLauncher_Complete>Buttons e assegnare ognuno degli oggetti figlio dell'oggetto Buttons al campo Pulsanti di avvio lunare corrispondente.

    Screenshot of assigning each of the buttons.

Creare la risorsa del servizio di linguaggio di Azure

In questa sezione si creerà una risorsa del servizio di linguaggio di Azure per l'app Comprensione del linguaggio di conversazione che verrà creata nella sezione successiva.

  1. Accedere a portale di Azure e selezionare Crea una risorsa, quindi cercare e selezionare Servizio linguistico:

    Screenshot of the Azure language service resource.

  2. Selezionare il pulsante Crea per creare un'istanza del servizio:

    Screenshot of creating an instance of this service.

  3. Nella pagina Crea linguaggio, immettere i valori seguenti:

    • Per Sottoscrizione, selezionare Prova se si dispone di una sottoscrizione di prova gratuita. altrimenti selezionare una delle altre sottoscrizioni.
    • Per Gruppo di risorse selezionare il collegamento Crea nuovo , quindi immettere un nome appropriato, ad esempio MRTK-Tutorials. Seleziona OK.

    Screenshot of the Create Language screen.

    Suggerimento

    Se nell'account Azure è già presente un altro gruppo di risorse appropriato, è possibile usare questo gruppo di risorse anziché crearne uno nuovo.

  4. Sempre nella pagina Create (Crea) immetti i valori seguenti:

    • In Nome immettere un nome appropriato per il servizio, ad esempio MRTK-Tutorials-AzureSpeechServices
    • Per Area scegliere una località vicina alla posizione fisica degli utenti dell'app, ad esempio Stati Uniti orientali
    • Per Piano tariffario, in questa esercitazione selezionare F0 (5.000 transazioni per 30 giorni)

    Screenshot of the configured Create Language form.

  5. Selezionare quindi Rivedi e crea, esaminare i dettagli, quindi selezionare il pulsante Crea nella parte inferiore della pagina per creare la risorsa e il nuovo gruppo di risorse se ne è stato configurato uno per la creazione:

    Screenshot of the Review + Create screen.

  6. Al termine del processo di creazione delle risorse, verrà visualizzato il messaggio La distribuzione è stata completata:

    Screenshot of the Overview screen.

Creare un'app di comprensione del linguaggio di conversazione (CLU)

In questa sezione si creerà un'app CLU, si configurerà ed eseguirà il training del modello di stima e la si connetterà alla risorsa del linguaggio di Azure creata nel passaggio precedente.

In particolare, si creerà una finalità in base alla quale se l'utente pronuncia un'azione da eseguire, l'app attiva l'evento PressableButton.OnClicked() su uno dei tre pulsanti blu della scena, a seconda del pulsante a cui fa riferimento l'utente.

Se ad esempio l'utente pronuncia vai avanti e lancia il missile, l'app stima che vai avanti indica un'azione da eseguire e che l'evento PressableButton.OnClicked() ha come obiettivo il pulsante di lancio.

Di seguito sono riportati i passaggi principali da eseguire per ottenere questo risultato:

  1. Creare un'app CLU
  2. Creare finalità
  3. Creare espressioni di esempio
  4. Creazione di entità
  5. Assegnare entità alle espressioni di esempio
  6. Eseguire il training, il test e la pubblicazione dell'app

1. Creare un'app CLU

Con lo stesso account utente usato durante la creazione della risorsa di Azure nella sezione precedente, accedere a Language Studio.

  1. Dopo l'accesso, verrà richiesto di selezionare una risorsa di Azure. Selezionare i valori usati durante la creazione della risorsa del servizio lingua di Azure e quindi selezionare Fine.

    Screenshot showing the Select an Azure resource popup.

  2. Dopo aver connesso la risorsa di Azure, selezionare Crea nuovo > Language Understanding conversazionale e immettere i valori seguenti nella finestra popup Crea un progetto :

    • Per Nome immettere un nome appropriato, ad esempio MRTK Tutorials - AzureSpeechServices. Annotare il nome selezionato, che sarà necessario più avanti in questa esercitazione.
    • Per Linguaggio primario delle espressioni selezionare una lingua.
    • Per Descrizione immettere facoltativamente una descrizione appropriata.

    Screenshot of the Create a project popup.

  3. Selezionare Avanti per esaminare la configurazione del progetto. Selezionare Crea per creare il progetto.

    Screenshot of the Review and finish screen.

  4. Dopo aver creato la nuova app, viene visualizzata la pagina di definizione dello schema dell'app.

    Screenshot of the App's dashboard page.

2. Creare finalità

  1. Nella pagina Definizione schema selezionare Aggiungi e immettere il valore seguente nella finestra popup Aggiungi una finalità:

    • In Intent name (Nome finalità) immetti PressButton
  2. Selezionare Aggiungi finalità per creare la nuova finalità:

    Screenshot of the Add an intent screen.

    Attenzione

    Ai fini di questa esercitazione, il progetto Unity farà riferimento a questa finalità in base al nome (PressButton). È estremamente importante denominare la finalità esattamente la stessa.

  3. Dopo aver creato la nuova finalità, si tornerà alla pagina Definizione dello schema. La finalità PressButton verrà visualizzata nell'elenco delle finalità.

    Screenshot of the list of Intents.

3. Creare espressioni di esempio

  1. Sulla barra laterale sinistra selezionare il pulsante Etichettatura dei dati. Nella schermata Etichettatura dati selezionare PressButton dall'elenco a discesa Seleziona finalità .

    Screenshot of the Data labeling page.

  2. Nella finalità PressButton aggiungere le espressioni di esempio seguenti all'elenco Espressioni:

    • activate launch sequence (attiva sequenza di lancio)
    • show me a placement hint (mostra un suggerimento per il posizionamento)
    • initiate the launch sequence (avvia la sequenza di lancio)
    • press placement hints button (premi il pulsante dei suggerimenti per il posizionamento)
    • give me a hint (fornisci un suggerimento)
    • push the launch button (premi il pulsante di lancio)
    • i need a hint (ho bisogno di un suggerimento)
    • press the reset button (premi il pulsante di reimpostazione)
    • time to reset the experience (tempo per reimpostare l'esperienza)
    • go ahead and launch the rocket (vai avanti e lancia il missile)
  3. Dopo aver aggiunto tutte le espressioni di esempio, la pagina Etichettatura dati dovrebbe essere simile alla seguente:

    Screenshot of the updated Data labeling page.

    Attenzione

    Ai fini di questa esercitazione, il progetto Unity farà riferimento alle parole "hint", "hint", "reset" e "launch". È estremamente importante scrivere queste parole nello stesso modo in tutte le istanze.

4. Creare entità

  1. Nella pagina Etichettatura dati selezionare Aggiungi entità nel riquadro Attività a destra e immettere i valori seguenti nella finestra popup Aggiungi un'entità:

    • In Entity name (Nome entità) immetti Action (Azione)
  2. Selezionare Aggiungi entità per creare la nuova entità.

    Screenshot of adding a new entity.

  3. Ripetere il passaggio precedente per creare un'altra entità denominata Target, in modo da avere due entità denominate Action e Target.

    Screenshot of creating a target entity.

    Attenzione

    Ai fini di questa esercitazione, il progetto Unity farà riferimento a queste entità in base al nome, Action e Target. È estremamente importante assegnare alle entità lo stesso nome.

5. Assegnare entità alle espressioni di esempio

  1. Selezionare la parola vai e quindi in avanti, quindi selezionare Azione (semplice) dal menu popup contestuale per etichettare come valore dell'entità Azione.

    Screenshot of labeling go ahead as an action entity value.

  2. La frase go ahead (vai avanti) è ora definita come valore dell'entità Action (Azione). Ora è presente un valore dell'entità azione sotto le parole "Vai avanti".

    Screenshot of the added action entity value.

    Nota

    La riga rossa visualizzata sotto l'etichetta nell'immagine indica che il valore dell'entità non è stato stimato; questo verrà risolto quando si esegue il training del modello nella sezione successiva.

  3. Selezionare quindi la parola launch (Avvia parola), quindi selezionare Target (Destinazione) dal menu a comparsa contestuale per etichettare l'avvio come valore di entità target.

    Screenshot of selecting the word launch.

  4. La parola launch (lancia) è ora definita come valore dell'entità Target. Ora è presente un valore di entità Target sotto la parola "launch".

    Screenshot of the added Target entity value under the word launch.

  5. L'espressione di esempio della finalità PressButton go ahead and launch the rocket è ora configurata per essere prevista come indicato sotto:

    • Finalità: PressButton
    • Entità Action (Azione): go ahead (vai avanti)
    • Entità Target: launch (lancia)
  6. Ripetere il processo precedente per assegnare un'etichetta di entità Azione e Obiettivo a ogni espressione di esempio, tenendo presente che le parole seguenti devono essere etichettate come entità Obiettivo:

    • hint (suggerimento) (il target è HintsButton nel progetto Unity)
    • hints (suggerimenti) (il target è HintsButton nel progetto Unity)
    • reset (reimpostazione) (il target è ResetButton nel progetto Unity)
    • launch (lancia) (il target è LaunchButton nel progetto Unity)
  7. Seleziona Salva modifiche. Dopo aver etichettato tutte le espressioni di esempio, la pagina delle finalità PressButton dovrebbe essere simile alla seguente:

    Screenshot of the PressButton intent page with all example utterances labeled.

6. Eseguire il training, il test e la pubblicazione dell'app

  1. Per eseguire il training dell'app, selezionare il pulsante Training dalla barra laterale sinistra. Verrà visualizzata la pagina Processi di training.

    Screenshot of the Training jobs screen.

  2. Selezionare Avvia un processo di training e selezionare i valori seguenti:

    • Selezionare Eseguire il training di un nuovo modello e immettere un nome appropriato, ad esempio MRTK-Tutorials-AzureSpeechServices.
    • Selezionare Training standard.
    • Selezionare Divide automaticamente il set di test dai dati di training.
  3. Selezionare Esegui training per avviare il processo di training. Al termine dell'elaborazione del training, verrà visualizzata una notifica Di training completato.

    Screenshot of Finished training notification.

  4. Per esaminare i risultati del training, selezionare il modello di output nella schermata Processi di training e quindi selezionare la scheda Prestazioni modello.

    Screenshot of the Model performance screen.

  5. Per distribuire l'app, selezionare il pulsante Distribuisci un modello nella barra laterale sinistra. Verrà visualizzata la pagina Distribuzione di un modello.

    Screenshot of the Deploying a model page.

  6. Selezionare Aggiungi distribuzione e immettere i valori seguenti nel popup Aggiungi distribuzione:

    • Selezionare Crea un nuovo nome di distribuzione e immettere un nome appropriato. Annotare il nome selezionato, che sarà necessario più avanti in questa esercitazione.
    • Selezionare il modello creato in precedenza dall'elenco a discesa Selezionare un modello sottoposto a training.
  7. Selezionare Distribuisci e attendere il completamento del processo di pubblicazione.

    Screenshot of the Deployment completed notification.

  8. Selezionare la nuova distribuzione e selezionare il pulsante Recupera URL previsione.

    Screenshot of the Get Prediction URL page.

Connettere il progetto Unity all'app CLU

  1. Nella finestra popup Recupera URL previsione selezionare l'icona Copia per copiare l'URL di stima.

    Screenshot of Get Prediction URL popup.

  2. Nella finestra Hierarchy (Gerarchia) del progetto Unity selezionare l'oggetto Lunarcom , quindi nella finestra Inspector (Controllo) individuare il componente Lunarcom Intent Recognizer (Script) e configurarlo come indicato di seguito.

    • Nel campo Endpoint CLU incollare l'URL di stima copiato nel passaggio precedente.
    • Nel campo Nome progetto CLU passare il Nome del progetto annotato durante la creazione di un'app CLU.
    • Nel campo Distribuzione CLU passare il Nome di distribuzione annotato durante la creazione di una nuova distribuzione.
    • Nel campo Language Service API Key (Chiave API del servizio di linguaggio) passare la chiave API (Key1 o Key2) per il servizio linguistico. È possibile trovarla nella portale di Azure selezionando il servizio linguistico, quindi selezionando Chiavi ed endpoint nel menu a sinistra.

    Screenshot of passing the example query you copied.

Testare il riconoscimento finalità

  1. Per usare il riconoscimento delle finalità direttamente nell'editor di Unity, devi consentire al computer di sviluppo di usare la dettatura. Per verificare questa impostazione, aprire Windows Impostazioni, quindi scegliere Riconoscimento vocale sulla privacy>e assicurarsi che il riconoscimento vocale online sia attivato.

    Screenshot of Testing the intent recognition.

  2. Se ora si attiva la modalità di gioco, è possibile testare il riconoscimento delle finalità selezionando prima il pulsante relativo al missile. Quindi, quando si dice la prima espressione di esempio, andare avanti e lanciare il razzo, si vedrà il lancio LunarModule nello spazio.

    Screenshot of Enter the game mode.

  3. Provare tutte le espressioni di esempio, quindi alcune varianti delle espressioni di esempio, quindi alcune espressioni casuali.