Version: 2022.3
  • C#


class in UnityEngine.Windows.Speech


Implemented in:UnityEngine.CoreModule

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




DictationRecognizer listens to speech input and attempts to determine what phrase was uttered.

Users can register and listen for hypothesis and phrase completed events. Start() and Stop() methods respectively enable and disable dictation recognition. Once done with the recognizer, it must be disposed using Dispose() method to release the resources it uses. It will release these resources automatically during garbage collection at an additional performance cost if they are not released prior to that.

using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Windows.Speech;

public class DictationScript : MonoBehaviour { [SerializeField] private Text m_Hypotheses;

[SerializeField] private Text m_Recognitions;

private DictationRecognizer m_DictationRecognizer;

void Start() { m_DictationRecognizer = new DictationRecognizer();

m_DictationRecognizer.DictationResult += (text, confidence) => { Debug.LogFormat("Dictation result: {0}", text); m_Recognitions.text += text + "\n"; };

m_DictationRecognizer.DictationHypothesis += (text) => { Debug.LogFormat("Dictation hypothesis: {0}", text); m_Hypotheses.text += text; };

m_DictationRecognizer.DictationComplete += (completionCause) => { if (completionCause != DictationCompletionCause.Complete) Debug.LogErrorFormat("Dictation completed unsuccessfully: {0}.", completionCause); };

m_DictationRecognizer.DictationError += (error, hresult) => { Debug.LogErrorFormat("Dictation error: {0}; HResult = {1}.", error, hresult); };

m_DictationRecognizer.Start(); } }

Dictation recognizer is currently functional only on Windows 10, and requires that dictation is permitted in the user's Speech privacy policy (Settings->Privacy->Speech, inking & typing). If dictation is not enabled, DictationRecognizer will fail on Start. Developers can handle this failure in an app-specific way by providing a DictationError delegate and testing for SPERR_SPEECH_PRIVACY_POLICY_NOT_ACCEPTED (0x80045509).


AutoSilenceTimeoutSecondsThe time length in seconds before dictation recognizer session ends due to lack of audio input.
InitialSilenceTimeoutSecondsThe time length in seconds before dictation recognizer session ends due to lack of audio input in case there was no audio heard in the current session.
StatusIndicates the status of dictation recognizer.


DictationRecognizerCreate a DictationRecognizer with the specified minimum confidence and dictation topic constraint. Phrases under the specified minimum level will be ignored.

Public Methods

DisposeDisposes the resources this dictation recognizer uses.
StartStarts the dictation recognization session. Dictation recognizer can only be started if PhraseRecognitionSystem is not running.
StopStops the dictation recognization session.


DictationCompleteEvent that is triggered when the recognizer session completes.
DictationErrorEvent that is triggered when the recognizer session encouters an error.
DictationHypothesisEvent that is triggered when the recognizer changes its hypothesis for the current fragment.
DictationResultEvent indicating a phrase has been recognized with the specified confidence level.


DictationCompletedDelegateDelegate for DictationComplete event.
DictationErrorHandlerDelegate for DictationError event.
DictationHypothesisDelegateCallback indicating a hypothesis change event. You should register with DictationHypothesis event.
DictationResultDelegateCallback indicating a phrase has been recognized with the specified confidence level. You should register with DictationResult event.