Esercizio - Configurare la comprensione del linguaggio naturale e della finalità
In questo modulo si esaminerà 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
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.
Nella finestra Progetto, passare alla cartella Risorse>MRTK.Tutorials.GettingStarted>Prefabs>RocketLauncher, trascinare il prefab RocketLauncher_Complete nella finestra Gerarchia e posizionarlo in un luogo adatto davanti alla fotocamera. Per esempio:
- Transform Position X = 0, Y = 1, Z = 1,5
- Trasforma Rotazione X = 0, Y = 90, Z = 0
Nella finestra Gerarchia selezionare di nuovo l'oggetto Lunarcom, quindi espandere l'oggetto RocketLauncher_Complete>Pulsante e assegnare ognuno degli oggetti figlio dell'oggetto Pulsanti al campo Pulsanti lancio lunare corrispondente.
Creare la risorsa del servizio di linguaggio di Azure
In questa sezione si creerà una risorsa del servizio linguistico di Azure per l'app CLU (Conversational Language Understanding) che verrà creata nella sezione successiva.
Accedere al portale di Azure e selezionare Crea una risorsa, quindi cercare e selezionare Servizio linguistico:
Selezionare il pulsante Crea per creare un'istanza del servizio:
Nella pagina Crea lingua immettere i valori seguenti:
- Per Sottoscrizione selezionare Versione di valutazione gratuita se si ha un abbonamento di prova. Se non hai una versione di prova, seleziona una delle tue altre sottoscrizioni.
- Per Gruppo di risorse selezionare il collegamento Crea nuovo , quindi immettere un nome appropriato; ad esempio MRTK-Tutorials. Selezionare OK.
Suggerimento
Se nell'account Azure è già presente un altro gruppo di risorse appropriato, è possibile usare questo gruppo di risorse anziché crearne uno nuovo.
Nella pagina Crea immettere 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)
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:
Al termine del processo di creazione delle risorse, verrà visualizzato il messaggio La distribuzione è stata completata:
Creare l'app CLU (Conversational Language Understanding)
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, creerai una finalità che, se l'utente dice che deve essere eseguita un'azione, l'app attiva l'evento PressableButton.OnClicked() su uno dei tre pulsanti blu nella scena, a seconda del pulsante a cui fa riferimento l'utente.
Ad esempio, se l'utente dice di andare avanti e avviare il razzo, l'app prevede che andare avanti significa che deve essere eseguita un'azione e che l'evento PressableButton.OnClicked() di destinazione è sul pulsante di avvio .
I passaggi principali da eseguire per ottenere questo risultato sono:
- Creare un'app CLU
- Creare finalità
- Creare espressioni di esempio
- Creare entità
- Assegnare entità alle espressioni di esempio
- Eseguire il training, testare e pubblicare l'app
1. Creare un'app CLU
Usando lo stesso account utente usato durante la creazione della risorsa di Azure nella sezione precedente, accedere a Language Studio.
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.
Dopo aver connesso la risorsa di Azure, selezionare Crea nuovo > Conversational Language Understanding e immettere i valori seguenti nella finestra pop-up Crea un progetto :
- In Nome immettere un nome appropriato, ad esempio MRTK-Tutorials-AzureSpeechServices. Annotare il nome selezionato, che sarà necessario più avanti nell'esercitazione.
- Per Linguaggio primario delle espressioni selezionare una lingua.
- Per Descrizione immettere facoltativamente una descrizione appropriata.
Selezionare Avanti per esaminare la configurazione del progetto. Selezionare Crea per creare il progetto.
Dopo aver creato la nuova app, viene visualizzata la pagina di definizione dello schema dell'app.
2. Creare finalità
Nella pagina Definizione schema selezionare Aggiungi e immettere il valore seguente nella finestra popup Aggiungi una finalità :
- Per Nome finalità immettere PressButton
Selezionare Aggiungi finalità per creare la nuova finalità:
Attenzione
Ai fini di questa esercitazione, il progetto Unity farà riferimento a questa finalità in base al nome (
PressButton). È estremamente importante che denomini il tuo intento esattamente nello stesso modo.Dopo aver creato la nuova finalità, si tornerà alla pagina Definizione dello schema. La finalità PressButton verrà visualizzata nell'elenco delle finalità.
3. Creare espressioni di esempio
Sulla barra laterale sinistra selezionare il pulsante Etichetta dati . Nella schermata Etichettatura dei dati selezionare PressButton dal menu a discesa Seleziona finalità.
Nell'elenco Espressioni della finalità PressButton aggiungere le espressioni di esempio seguenti:
- attivare la sequenza di avvio
- mostrami un suggerimento di posizionamento
- avviare la sequenza di avvio
- premere il pulsante per i suggerimenti di posizionamento
- dammi un suggerimento
- premere il pulsante di avvio
- Ho bisogno di un suggerimento
- premere il pulsante di reimpostazione
- tempo per reimpostare l'esperienza
- andare avanti e lanciare il razzo
Dopo aver aggiunto tutte le espressioni di esempio, la pagina Etichettatura dati dovrebbe essere simile alla seguente:
Attenzione
Ai fini di questa esercitazione, il progetto Unity farà riferimento alle parole "hint", "hints", "reset" e "launch". È estremamente importante scrivere queste parole nello stesso modo in tutte le occorrenze.
4. Creare entità
Nella pagina Etichettatura dati selezionare Aggiungi entità nel riquadro Attività di destra e immettere i valori seguenti nella finestra popup Aggiungi un'entità :
- Per Nome entità immettere Azione
Selezionare Aggiungi entità per creare la nuova entità.
Ripetere il passaggio precedente per creare un'altra entità denominata Target, in modo da avere due entità denominate Action e Target.
Attenzione
Ai fini di questa esercitazione, il progetto Unity farà riferimento a queste entità in base ai nomi
ActioneTarget. È estremamente importante assegnare alle entità lo stesso nome.
5. Assegnare entità alle espressioni di esempio
Selezionare la parola vai e poi la parola avanti, quindi selezionare Azione (semplice) dal menu popup contestuale per etichettare go ahead come valore dell'entità Azione.
La frase go ahead è ora definita come valore dell'entità Action . Ora è presente un valore dell'entità Azione sotto le parole “go ahead” (vai avanti).
Annotazioni
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.
Selezionare quindi la parola launch, quindi selezionare Target (Destinazione) dal menu a comparsa contestuale per etichettare launch come valore di entità Target.
La parola di avvio è ora definita come valore dell'entità Target . Ora è presente un valore dell'entità Obiettivo sotto la parola “launch” (lancia).
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à di destinazione: avvio
Ripetere il processo precedente per assegnare un'etichetta di entità Action e Target a ognuna delle espressioni di esempio, tenendo presente che le parole seguenti devono essere etichettate come entità target :
- hint (il target è HintsButton nel progetto Unity)
- hints (il target è HintsButton nel progetto Unity)
- reset (il target è ResetButton nel progetto Unity)
- launch (il target è ResetButton nel progetto Unity)
Selezionare Salva modifiche. Dopo aver etichettato tutte le espressioni di esempio, la pagina delle finalità PressButton dovrebbe essere simile alla seguente:
6. Eseguire il training, testare e pubblicare l'app
Per eseguire il training dell'app, selezionare il pulsante Train (Esegui training) sulla barra laterale sinistra. Verrà visualizzata la pagina Processi di training.
Selezionare Avvia un processo di training e selezionare i valori seguenti:
- Selezionare Esegui training di un nuovo modello e immettere un nome appropriato; ad esempio MRTK-Tutorials-AzureSpeechServices.
- Selezionare Formazione standard.
- Scegliere Separa automaticamente il set di test dai dati di training.
Selezionare Train per avviare il processo di allenamento. Al termine dell'elaborazione della formazione, verrà visualizzata una notifica Formazione completata.
Per esaminare i risultati del training, selezionare il modello di output nella schermata Processi di training e quindi selezionare la scheda Prestazioni modello .
Per distribuire l'app, selezionare il pulsante Deploying a model (Distribuzione di un modello ) nella barra laterale sinistra. Verrà visualizzata la pagina Distribuzione di un modello.
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 nell'esercitazione.
- Selezionare il modello creato in precedenza dall'elenco a discesa Selezionare un modello sottoposto a training .
Selezionare Distribuisci e attendere il completamento del processo di pubblicazione.
Selezionare la nuova distribuzione e quindi Ottieni URL stima:
Connettere il progetto Unity all'app CLU
Nella finestra popup Recupera URL previsione selezionare l'icona Copia per copiare l'URL di stima.
Nel tuo progetto Unity, nella finestra Gerarchia, seleziona l'oggetto Lunarcom, quindi nella finestra Controllo individua il componente Lunarcom Intent Recognizer (Script) e configurarlo come segue.
- 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 della 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 nel portale di Azure selezionando il servizio linguistico e quindi selezionando Chiavi ed endpoint nel menu a sinistra.
Testare il riconoscimento delle finalità
Per usare il riconoscimento delle finalità direttamente nell'editor di Unity, è necessario consentire al computer di sviluppo di usare la dettatura. Per verificare questa impostazione, aprire Impostazioni di Windows, quindi scegliere Privacy>Speech e assicurarsi che il riconoscimento vocale online sia attivato.
Se si entra in modalità gioco, è possibile testare il riconoscimento delle finalità premendo prima il pulsante del razzo. Quindi, quando si pronuncia la prima espressione di esempio, vai avanti e lancia il razzo, vedrai il LunarModule lanciarsi nello spazio.
Provare tutte le espressioni di esempio, quindi alcune varianti delle espressioni di esempio, quindi alcune espressioni casuali.