Freigeben über


Kernsubsystem: Diktiersystem — MRTK3

Hinweis

Allgemeine Informationen zu Subsystemen in MRTK3 finden Sie hier.

Das Kerndefinitionspaket wird ausgeliefert DictationSubsystem, eine Basisimplementierung von MRTKSubsystem und IDictationsystem die als Basis von Subsystemen dient, die für das Diktieren in MRTK3 verantwortlich sind. Konkrete Implementierung, die als Teil von MRTK geliefert wird, z WindowsDictationSubsystem . B. und andere potenzielle Diktiersubsysteme, die Sie erstellen können, sollten alle auf dieser Klasse basieren. Subsysteme, von DictationSubsystem denen Sie erben, ermöglichen es Ihnen, eine Diktiersitzung zu starten und zu beenden, und stellt Ereignisse bereit, die ausgelöst werden, wenn die Spracheingabe verarbeitet wird, wenn ein Endergebnis erkannt wird und wenn eine Diktiersitzung beendet oder fehlerhaft ist. Ereignishandler können diesen Ereignissen hinzugefügt werden, um die Diktierfunktion zu behandeln.

Weitere Informationen finden Sie in der Dokumentation der konkreten DictationSubsystem-Implementierung, die Sie verwenden möchten.

Setup

Hinweis

Dieser Leitfaden enthält Schritte zum Aktivieren eines Sprachsubsystems in einem neuen MRTK-Projekt (bei dem ein anderes grundlegendes, nicht sprachbezogenes Setup implementiert ist). Wenn Sie unser Beispielprojekt verwenden, werden Sie bemerken, dass einige Schritte bereits für Sie ausgeführt wurden.

1. Aktivieren des Sprachsubsystems

Wechseln Sie zu Den Projekteinstellungen>MRTK3 Verfügbare MRTK-Subsysteme, und aktivieren Sie dann das Diktiersubsystem, das Sie verwenden möchten.

2. Zuweisen einer Konfigurationsressource

Für bestimmte Subsysteme ist eine Konfigurationsressource erforderlich, damit sie normal ausgeführt werden können.

  1. Klicken Sie auf das Subsystem, das Sie in Setup 1 aktiviert haben.
  2. Überprüfen Sie, ob ein leerer Configuration Asset Steckplatz auf der rechten Seite unter Subsystemdetails angezeigt wird. Falls ja, erstellen Sie eine neue Konfiguration, indem Sie "Assets ->Create MRTK>Subsystems>[name of your subsystem]" (Teilsystemname) auswählen und dann die erstellte Konfiguration auf den Platz ziehen.
  3. Nachdem Sie sich vergewissert haben, dass der Konfigurationssteckplatz gefüllt ist, ändern Sie die Einstellungen in der neu erstellten Konfiguration für Ihr bestimmtes Projekt. Denken Sie daran, das Projekt zu speichern, wenn Sie fertig sind.

3. Stellen Sie sicher, dass die richtigen Funktionen in den Spielereinstellungen festgelegt sind.

Für unterschiedliche Implementierungen von DictationSubsystem sind unterschiedliche Funktionen erforderlich. Weitere Informationen finden Sie in der Dokumentation des Subsystems, das Sie verwenden möchten.

Wenn Sie beispielsweise WindowsDictationSubsystem auf der UWP-Plattform verwenden möchten, wechseln Sie zu Projekteinstellungen>Player>Veröffentlichungseinstellungen>Funktionen, und vergewissern Sie sich, dass die Mikrofonfunktion festgelegt ist.

4. Ausführen der Szene auf dem Gerät/im Editor

Das Projekt sollte jetzt für die Ausführung auf dem Gerät oder im Editor bereit sein. Beachten Sie, dass Sie möglicherweise Ihre Datenschutzeinstellungen für Die Spracherkennung konfigurieren müssen, damit das Diktieren im Editor funktioniert.

Verwenden von DiktatSubsystem

DictationSubsystem Fügen Sie ereignishandler zu den Diktierereignissen hinzu, auf die Sie reagieren möchten, und rufen Sie dann aufStartDictation.

// 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();
}

Sie würden diese Ereignishandler mit dem implementieren, was Beim Auslösen des Ereignisses geschehen soll.

  • Recognizing wird ausgelöst, wenn die Erkennung die Eingabe verarbeitet und ein vorläufiges Ergebnis zurückgibt.
  • Recognized wird ausgelöst, wenn die Erkennung die Eingabe erkannt hat und ein endgültiges Ergebnis zurückgibt.
  • RecognitionFinished wird ausgelöst, wenn die Erkennungssitzung abgeschlossen ist und einen Grund zurückgibt.
  • RecognitionFaulted wird ausgelöst, wenn die Erkennung fehlerhaft ist (d. h. Fehler aufgetreten) und gibt einen Grund zurück.

Wenn Sie fertig sind, entfernen Sie diese Ereignishandler.

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

Ein vollständiges Beispiel für die DictationHandler Verwendung DictationSubsystem finden Sie im Beispielskript in der DictationExample Beispielszene.