Partager via


Sous-système principal : DictationSubsystem — MRTK3

Remarque

Pour obtenir des informations générales sur les sous-systèmes dans MRTK3, consultez cette page.

Le package Core Definitions est fourni DictationSubsystem, une implémentation de base de MRTKSubsystem et IDictationsystem qui sert de base de sous-systèmes responsables de la dictée dans MRTK3. L’implémentation concrète fournie dans le cadre de MRTK comme WindowsDictationSubsystem et d’autres sous-systèmes de dictée potentiels que vous pouvez générer doit toutes être basée sur cette classe. Les sous-systèmes qui héritent de vous permettent de DictationSubsystem démarrer et d’arrêter une session de dictée et de fournir des événements déclenchés lors du traitement de l’entrée vocale, lorsqu’un résultat final est reconnu et lorsqu’une session de dictée est terminée ou défectueuse. Les gestionnaires d’événements peuvent être ajoutés à ces événements pour gérer les fonctionnalités de dictée.

Pour des informations plus spécifiques, consultez la documentation de l’implémentation DictationSubsystem concrète.

Programme d’installation

Remarque

Ce guide décrit les étapes pour activer un sous-système vocal dans un nouveau projet MRTK (avec une autre configuration non vocale de base en place). Si vous utilisez notre exemple de projet, vous pouvez noter que certaines étapes ont été effectuées pour vous.

1. Activer le sous-système vocal

Accédez aux paramètres>du projet MRTK3 Sous-systèmes MRTK disponibles, puis activez le sous-système de dictée que vous souhaitez utiliser.

2. Affecter une ressource de configuration

Pour certains sous-systèmes, une ressource de configuration est nécessaire pour qu’elle fonctionne normalement.

  1. Cliquez sur le sous-système que vous avez activé dans la configuration 1.
  2. Vérifiez qu’un emplacement vide Configuration Asset s’affiche sous Subsystem Details à droite. Si c’est le cas, créez une configuration en sélectionnant Assets ->Create MRTK>Subsystems>[name of your sous-système] Config, puis faites glisser la configuration créée sur l’emplacement.
  3. Après avoir vérifié que l’emplacement de configuration est rempli, modifiez les paramètres dans la configuration nouvellement créée pour votre projet spécifique. N’oubliez pas d’enregistrer le projet quand vous avez terminé.

3. Vérifiez que les fonctionnalités appropriées sont définies dans les paramètres du lecteur

Différentes implémentations de DictationSubsystem ont différentes fonctionnalités requises. Pour plus d’informations, consultez la documentation du sous-système que vous voulez utiliser.

Par exemple, pour utiliser WindowsDictationSubsystem sur une plateforme UWP, accédez à Project Settings>Player>Publishing Settings>Capabilities et vérifiez que la fonctionnalité Microphone est définie.

4. Exécution de la scène sur l’appareil/dans l’éditeur

Le projet doit maintenant être prêt pour exécution sur un appareil ou dans un éditeur. Notez que vous devrez peut-être configurer vos paramètres de confidentialité speech pour que la dictée fonctionne dans l’éditeur.

Utilisation de DictationSubsystem

Pour l’utiliser DictationSubsystem dans le script, ajoutez des gestionnaires d’événements aux événements de dictée auxquels vous souhaitez répondre, puis appelez 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();
}

Vous implémentez ces gestionnaires d’événements avec ce que vous souhaitez faire lorsque l’événement est déclenché.

  • Recognizing est déclenché lorsque le module de reconnaissance traite l’entrée et retourne un résultat provisoire.
  • Recognized est déclenché lorsque le module de reconnaissance a reconnu l’entrée et retourne un résultat final.
  • RecognitionFinished est déclenché lorsque la session de reconnaissance est terminée et retourne une raison.
  • RecognitionFaulted est déclenché lorsque la reconnaissance est défectueuse (c’est-à-dire qu’une erreur s’est produite) et retourne une raison.

Lorsque vous avez terminé, supprimez ces gestionnaires d’événements.

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

Vous trouverez un exemple complet d’utilisation DictationSubsystem dans l’exemple DictationHandler de script dans l’exemple de DictationExample scène.