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 StatefulInteractable
selezionati in base alle impostazioni delle interazioni. Le sottoclassi ereditate consentiranno anche la registrazione di s arbitraria UnityAction
a 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.
- Fare clic sul sottosistema abilitato nell'installazione 1.
- 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. - 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 StatefulInteractable
s (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 StatefulInteractable
s (ad esempio, pulsanti)
Il modo più semplice da usare consiste nell'usarlo PhraseRecognitionSubsystem
con StatefulInteractable
s. Se il passaggio 3 nella sezione di installazione viene eseguito, verrà attivato l'attivazione SpeechInteractor
di eventi StatefulInteractable
su 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"));
}