Compartir a través de


Subsistema principal: DictadoSubsystem — MRTK3

Nota:

Para información general sobre los subsistemas de MRTK3, consulte aquí.

El paquete Core Definitions incluye DictationSubsystem, una implementación base de MRTKSubsystem y IDictationsystem que actúa como base de subsistemas responsables de dictado en MRTK3. La implementación concreta enviada como parte de MRTK, como WindowsDictationSubsystem y otros subsistemas de dictado potenciales, podría compilarse en función de esta clase. Los subsistemas que heredan de DictationSubsystem le permiten iniciar y detener una sesión de dictado y proporcionan eventos que se desencadenan cuando se procesa la entrada de voz, cuando se reconoce un resultado final y cuando se finaliza o se produce un error en una sesión de dictado. Los controladores de eventos se pueden agregar a estos eventos para controlar la funcionalidad de dictado.

Para información más específica, consulte la documentación relativa a la implementación concreta de DictationSubsystem que quiera usar.

Configurar

Nota:

En esta guía se proporcionan los pasos necesarios para habilitar un subsistema de voz en un nuevo proyecto de MRTK (dando por hecho que ya se ha establecido alguna configuración básica no relacionada con la voz). Si usa nuestro proyecto de ejemplo, es posible que observe que algunos pasos se han realizado automáticamente.

1. Habilite el subsistema de voz

Vaya a Configuración del>proyecto MRTK3 Subsistemas de MRTK disponibles y, a continuación, habilite el subsistema de dictado que desea usar.

2. Asignar un recurso de configuración

Para que determinados subsistemas funcionen normalmente, estos requieren un recurso de configuración.

  1. Haga clic en el subsistema que habilitó en la configuración 1.
  2. Compruebe si aparece una ranura vacía Configuration Asset en Detalles del subsistema a la derecha. Si es así, cree una nueva configuración seleccionando Assets -Create MRTK Subsystems[name of your subsystem] Config (Activos:>Crear subsistemas> de MRTK>[nombre del subsistema] Config y arrastre la configuración creada a la ranura.
  3. Después de asegurarse de que la ranura de configuración ya no esté vacía, cambie los parámetros de la configuración que acaba de crear para que se ajusten mejor al proyecto específico. No olvide guardar el proyecto cuando haya terminado.

3. Asegúrese de que las funcionalidades adecuadas están establecidas en Configuración del reproductor

Cada implementación del subsistema DictationSubsystem requiere diferentes capacidades. Para más información, consulte la documentación relativa al subsistema que quiere usar.

Por ejemplo, para usar WindowsDictationSubsystem en la plataforma UWP, vaya a Available MRTK Subsystems>Player>Publishing Settings>Capabilities y asegúrese de que la funcionalidad Micrófono está establecida.

4. Ejecución de la escena en el dispositivo o en el editor

Ahora, el proyecto estará listo para ejecutarse en un dispositivo o en el editor. Tenga en cuenta que es posible que tenga que configurar la configuración de privacidad de voz para que el dictado funcione en el editor.

Uso de DictationSubsystem

Para usarlo DictationSubsystem en el script, agregue controladores de eventos a los eventos de dictado a los que desea responder y, a continuación, llame a 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();
}

Implementaría estos controladores de eventos con lo que quiera que suceda cuando se desencadene el evento.

  • Recognizing se desencadena cuando el reconocedor está procesando la entrada y devuelve un resultado provisional.
  • Recognized se desencadena cuando el reconocedor reconoce la entrada y devuelve un resultado final.
  • RecognitionFinished se desencadena cuando finaliza la sesión de reconocimiento y devuelve un motivo.
  • RecognitionFaulted se desencadena cuando se produce un error en el reconocimiento (es decir, se produjo un error) y devuelve un motivo.

Cuando termine, quite estos controladores de eventos.

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

Puede encontrar un ejemplo completo del uso DictationSubsystem en el DictationHandler script de ejemplo de la DictationExample escena de ejemplo.