Condividi tramite


Sottosistema principale: DettaturaSubsystem — MRTK3

Nota

Per informazioni generali sui sottosistemi in MRTK3, vedere qui.

Il pacchetto Core Definitions include DictationSubsystem, un'implementazione di base di MRTKSubsystem e IDictationsystem che funge da base di sottosistemi responsabili della dettatura in MRTK3. Implementazione concreta fornita come parte di MRTK come WindowsDictationSubsystem e altri potenziali sottosistemi di dettatura che è possibile compilare dovrebbero essere tutti basati su questa classe. I sottosistemi che ereditano da DictationSubsystem consentono di avviare e arrestare una sessione di dettatura e di fornire eventi attivati durante l'elaborazione dell'input vocale, quando viene riconosciuto un risultato finale e quando una sessione di dettatura viene completata o interrotta. I gestori eventi possono essere aggiunti a questi eventi per gestire la funzionalità di dettatura.

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

Attrezzaggio

Nota

Questa guida illustra i passaggi per abilitare un sottosistema vocale in un nuovo progetto MRTK (con un'altra configurazione non correlata alla voce di base). Se si usa il progetto di esempio, è possibile notare che sono stati eseguiti alcuni passaggi.

1. Abilitare il sottosistema vocale

Passare a Impostazioni>progetto MRTK3 Sottosistemi MRTK disponibili e quindi abilitare il sottosistema di dettatura che si vuole usare.

2. Assegnare un asset di configurazione

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

  1. Fare clic sul sottosistema abilitato nell'installazione 1.
  2. Controllare se uno slot vuoto Configuration Asset viene visualizzato in Dettagli sottosistema a destra. In tal caso, creare una nuova configurazione selezionando Asset ->Crea sottosistemi> 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 le funzionalità appropriate siano impostate in Impostazioni lettore

Diverse implementazioni di DictationSubsystem hanno diverse funzionalità necessarie. Per altre informazioni, vedere la documentazione del sottosistema da usare.

Ad esempio, per usare WindowsDictationSubsystem nella piattaforma UWP, passare a Impostazioni progetto Impostazioni>lettore>Impostazioni di>pubblicazione Funzionalità e assicurarsi che la funzionalità Microfono sia impostata.

4. Esecuzione della scena nel dispositivo/nell'editor

Il progetto dovrebbe ora essere pronto per l'esecuzione nel dispositivo o nell'editor. Si noti che potrebbe essere necessario configurare le impostazioni di privacy del riconoscimento vocale per il funzionamento della dettatura nell'editor.

Uso di DettaturaSubsystem

Per usare DictationSubsystem nello script, aggiungere gestori eventi agli eventi di dettatura a cui si vuole rispondere e quindi chiamare StartDictation.

// Get the first running dictation subsystem.
DictationSubsystem dictationSubsystem = XRSubsystemHelpers.GetFirstRunningSubsystem<DictationSubsystem>();

// If we found one...
if (dictationSubsystem != null)
{
    // Add event handlers to all dictation subsystem events. 
    dictationSubsystem.Recognizing += DictationSubsystem_Recognizing;
    dictationSubsystem.Recognized += DictationSubsystem_Recognized;
    dictationSubsystem.RecognitionFinished += DictationSubsystem_RecognitionFinished;
    dictationSubsystem.RecognitionFaulted += DictationSubsystem_RecognitionFaulted;

    // And start dictation
    dictationSubsystem.StartDictation();
}

Questi gestori eventi verranno implementati con qualsiasi elemento che si vuole verificare quando viene attivato l'evento.

  • Recognizing viene attivato quando il riconoscitore elabora l'input e restituisce un risultato provvisorio.
  • Recognized viene attivato quando il riconoscitore ha riconosciuto l'input e restituisce un risultato finale.
  • RecognitionFinished viene attivato al termine della sessione di riconoscimento e restituisce un motivo.
  • RecognitionFaulted viene attivato quando il riconoscimento viene generato in caso di errore (ad esempio si è verificato un errore) e restituisce un motivo.

Al termine, rimuovere questi gestori eventi.

if (dictationSubsystem != null)
{
    dictationSubsystem.StopDictation();
    dictationSubsystem.Recognizing -= DictationSubsystem_Recognizing;
    dictationSubsystem.Recognized -= DictationSubsystem_Recognized;
    dictationSubsystem.RecognitionFinished -= DictationSubsystem_RecognitionFinished;
    dictationSubsystem.RecognitionFaulted -= DictationSubsystem_RecognitionFaulted;
}

Un esempio completo di utilizzo DictationSubsystem è disponibile nello DictationHandler script di esempio nella DictationExample scena di esempio.