Sottosistema core: PhraseRecognitionSubsystem — MRTK3

Nota

Per informazioni generali sui sottosistemi in MRTK3, vedere qui.

Il pacchetto Definizioni di base viene fornito PhraseRecognitionSubsystem, un'implementazione di base di MRTKSubsystem e IPhraseRecognitionSubsystem che funge da base di sottosistemi responsabili del riconoscimento delle parole chiave/frase in MRTK3. Implementazione concreta distribuita come parte di MRTK, WindowsPhraseRecognitionSubsystem ad esempio e altri sottosistemi di riconoscimento delle frasi potenziali che è possibile compilare, devono essere tutti basati su questa classe. I sottosistemi che ereditano da PhraseRecognitionSubsystem possono usare SpeechInteractor per attivare eventi StatefulInteractableselezionati in base alle impostazioni delle interazioni. Le sottoclassi ereditate consentiranno anche la registrazione di s arbitraria UnityActiona una parola chiave scelta in modo che l'azione venga richiamata quando tale parola viene detta.

Per informazioni più specifiche, vedere la documentazione dell'implementazione concreta PhraseRecognitionSubsystem da usare.

Eseguire la configurazione

Nota

Questa guida illustra i passaggi per abilitare un sottosistema vocale in un nuovo progetto MRTK (con altre configurazioni non vocali di base sul posto). Se si usa il progetto di esempio, è possibile notare che alcuni passaggi sono stati eseguiti per l'utente.

1. Abilitare il sottosistema voce

Passare a Project Impostazioni>MRTK3Sottosistemi MRTK disponibili e quindi abilitare il sottosistema voce da usare.

2. Assegnare un asset di configurazione (per determinati sottosistemi)

Per determinati sottosistemi, è necessario che un asset di configurazione venga eseguito normalmente.

  1. Fare clic sul sottosistema abilitato nell'installazione 1.
  2. Verificare se uno slot vuoto Configuration Asset viene visualizzato in Dettagli sottosistema a destra. In tal caso, creare una nuova configurazione selezionando Asset ->Creasottosistemi>MRTK>[nome del sottosistema] Config e quindi trascinando la configurazione creata nello slot.
  3. Dopo aver verificato che lo slot di configurazione sia popolato, modificare le impostazioni nella configurazione appena creata per il progetto specifico. Ricordarsi di salvare il progetto al termine.

3. Assicurarsi che il gameobject di riconoscimento vocale MRTK sia attivo (obbligatorio per StatefulInteractables (ad esempio, pulsanti) per rispondere alle frasi)

Assicurarsi che MRTK XR Rig -> MRTK Speech sia attivo e che gli script collegati siano abilitati.

4. Verificare che le funzionalità appropriate siano impostate in Player Impostazioni

Diverse implementazioni di PhraseRecognitionSubsystem hanno diverse funzionalità necessarie. Per altre informazioni, vedere la documentazione del sottosistema che si vuole usare.

Ad esempio, per usare WindowsPhraseRecognitionSubsystem nella piattaforma UWP, passare a Project ImpostazioniPlayer>Publishing Impostazioni>>Capabilities e assicurarsi che sia impostata la funzionalità Microfono.

5. Esecuzione della scena nel dispositivo/nell'editor

Il progetto dovrebbe ora essere pronto per l'esecuzione nel dispositivo o nell'editor.

Uso di PhraseRecognitionSubsystem

Uso di PhraseRecognitionSubsystem con StatefulInteractables (ad esempio, pulsanti)

Il modo più semplice da usare consiste nell'usarlo PhraseRecognitionSubsystem con StatefulInteractables. Se il passaggio 3 nella sezione di installazione viene eseguito, verrà attivato l'attivazione SpeechInteractor di eventi StatefulInteractablesu s quando vengono soddisfatte le condizioni specificate in tali interazioni (ad esempio, viene sentito un'espressione specificata e l'interazione è con il puntatore dello sguardo). Per le impostazioni configurabili, vedere il controllo di StatefulInteractable e SpeechInteractor (MRTK XR XR Rig -> MRTK Speech).

Uso manuale di PhraseRecognitionSubsystem

Un modo alternativo per l'uso PhraseRecognitionSubsystem consiste nel registrare manualmente la frase e si UnityAction vuole visualizzare richiamata quando la frase viene sentito con il sottosistema.

// Get the first running phrase recognition subsystem.
var phraseRecognitionSubsystem = XRSubsystemHelpers.GetFirstRunningSubsystem<PhraseRecognitionSubsystem>();

// If we found one...
if (phraseRecognitionSubsystem != null)
{
    // Register a phrase and its associated action with the subsystem
    phraseRecognitionSubsystem.CreateOrGetEventForPhrase("your phrase").AddListener(() => Debug.Log("Phrase recognized"));
}