Skip to content

Commit

Permalink
Update Dictation Handler
Browse files Browse the repository at this point in the history
  • Loading branch information
marlenaklein-msft committed Jul 10, 2023
1 parent 7bff152 commit 62f3abc
Showing 1 changed file with 26 additions and 2 deletions.
28 changes: 26 additions & 2 deletions UnityProjects/MRTKDevTemplate/Assets/Scripts/DictationHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public class StringUnityEvent : UnityEvent<string> { }
[field: SerializeField]
public StringUnityEvent OnRecognitionFaulted { get; private set; }

private DictationSubsystem dictationSubsystem;
private IDictationSubsystem dictationSubsystem = null;
private IKeywordRecognitionSubsystem keywordRecognitionSubsystem = null;

/// <summary>
/// Start dictation on a DictationSubsystem.
Expand All @@ -54,9 +55,16 @@ public void StartRecognition()
// Make sure there isn't an ongoing recognition session
StopRecognition();

dictationSubsystem = XRSubsystemHelpers.GetFirstRunningSubsystem<DictationSubsystem>();
dictationSubsystem = XRSubsystemHelpers.DictationSubsystem;
if (dictationSubsystem != null)
{

keywordRecognitionSubsystem = XRSubsystemHelpers.KeywordRecognitionSubsystem;
if (keywordRecognitionSubsystem != null)
{
keywordRecognitionSubsystem.Stop();
}

dictationSubsystem.Recognizing += DictationSubsystem_Recognizing;
dictationSubsystem.Recognized += DictationSubsystem_Recognized;
dictationSubsystem.RecognitionFinished += DictationSubsystem_RecognitionFinished;
Expand All @@ -73,11 +81,13 @@ public void StartRecognition()
private void DictationSubsystem_RecognitionFaulted(DictationSessionEventArgs obj)
{
OnRecognitionFaulted.Invoke("Recognition faulted. Reason: " + obj.ReasonString);
HandleDictationShutdown();
}

private void DictationSubsystem_RecognitionFinished(DictationSessionEventArgs obj)
{
OnRecognitionFinished.Invoke("Recognition finished. Reason: " + obj.ReasonString);
HandleDictationShutdown();
}

private void DictationSubsystem_Recognized(DictationResultEventArgs obj)
Expand Down Expand Up @@ -105,5 +115,19 @@ public void StopRecognition()
dictationSubsystem = null;
}
}

/// <summary>
/// Stop dictation on the current DictationSubsystem.
/// </summary>
public void HandleDictationShutdown()
{
StopRecognition();

if (keywordRecognitionSubsystem != null)
{
keywordRecognitionSubsystem.Start();
keywordRecognitionSubsystem = null;
}
}
}
}

0 comments on commit 62f3abc

Please sign in to comment.