SpeechRecognitionEngine Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides the means to access and manage an in-process speech recognition engine.
public ref class SpeechRecognitionEngine : IDisposable
public class SpeechRecognitionEngine : IDisposable
type SpeechRecognitionEngine = class
interface IDisposable
Public Class SpeechRecognitionEngine
Implements IDisposable
- Inheritance
-
SpeechRecognitionEngine
- Implements
Examples
The following example shows part of a console application that demonstrates basic speech recognition. Because this example uses the Multiple
mode of the RecognizeAsync method, it performs recognition until you close the console window or stop debugging.
using System;
using System.Speech.Recognition;
namespace SpeechRecognitionApp
{
class Program
{
static void Main(string[] args)
{
// Create an in-process speech recognizer for the en-US locale.
using (
SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(
new System.Globalization.CultureInfo("en-US")))
{
// Create and load a dictation grammar.
recognizer.LoadGrammar(new DictationGrammar());
// Add a handler for the speech recognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure input to the speech recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start asynchronous, continuous speech recognition.
recognizer.RecognizeAsync(RecognizeMode.Multiple);
// Keep the console window open.
while (true)
{
Console.ReadLine();
}
}
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Recognized text: " + e.Result.Text);
}
}
}
Remarks
You can create an instance of this class for any of the installed speech recognizers. To get information about which recognizers are installed, use the static InstalledRecognizers method.
This class is for running speech recognition engines in-process, and provides control over various aspects of speech recognition, as follows:
To create an in-process speech recognizer, use one of the SpeechRecognitionEngine constructors.
To manage speech recognition grammars, use the LoadGrammar, LoadGrammarAsync, UnloadGrammar, and UnloadAllGrammars methods, and the Grammars property.
To configure the input to the recognizer, use the SetInputToAudioStream, SetInputToDefaultAudioDevice, SetInputToNull, SetInputToWaveFile, or SetInputToWaveStream method.
To perform speech recognition, use the Recognize or RecognizeAsync method.
To modify how recognition handles silence or unexpected input, use the BabbleTimeout, InitialSilenceTimeout, EndSilenceTimeout, and EndSilenceTimeoutAmbiguous properties.
To change the number of alternates the recognizer returns, use the MaxAlternates property. The recognizer returns recognition results in a RecognitionResult object.
To synchronize changes to the recognizer, use the RequestRecognizerUpdate method. The recognizer uses more than one thread to perform tasks.
To emulate input to the recognizer, use the EmulateRecognize and EmulateRecognizeAsync methods.
The SpeechRecognitionEngine object is for the sole use of the process that instantiated the object. By contrast, the SpeechRecognizer shares a single recognizer with any application that wants to use it.
Note
Always call Dispose before you release your last reference to the speech recognizer. Otherwise, the resources it is using will not be freed until the garbage collector calls the recognizer object's Finalize
method.
Constructors
SpeechRecognitionEngine() |
Initializes a new instance of the SpeechRecognitionEngine class using the default speech recognizer for the system. |
SpeechRecognitionEngine(CultureInfo) |
Initializes a new instance of the SpeechRecognitionEngine class using the default speech recognizer for a specified locale. |
SpeechRecognitionEngine(RecognizerInfo) |
Initializes a new instance of the SpeechRecognitionEngine using the information in a RecognizerInfo object to specify the recognizer to use. |
SpeechRecognitionEngine(String) |
Initializes a new instance of the SpeechRecognitionEngine class with a string parameter that specifies the name of the recognizer to use. |
Properties
AudioFormat |
Gets the format of the audio being received by the SpeechRecognitionEngine. |
AudioLevel |
Gets the level of the audio being received by the SpeechRecognitionEngine. |
AudioPosition |
Gets the current location in the audio stream being generated by the device that is providing input to the SpeechRecognitionEngine. |
AudioState |
Gets the state of the audio being received by the SpeechRecognitionEngine. |
BabbleTimeout |
Gets or sets the time interval during which a SpeechRecognitionEngine accepts input containing only background noise, before finalizing recognition. |
EndSilenceTimeout |
Gets or sets the interval of silence that the SpeechRecognitionEngine will accept at the end of unambiguous input before finalizing a recognition operation. |
EndSilenceTimeoutAmbiguous |
Gets or sets the interval of silence that the SpeechRecognitionEngine will accept at the end of ambiguous input before finalizing a recognition operation. |
Grammars |
Gets a collection of the Grammar objects that are loaded in this SpeechRecognitionEngine instance. |
InitialSilenceTimeout |
Gets or sets the time interval during which a SpeechRecognitionEngine accepts input containing only silence before finalizing recognition. |
MaxAlternates |
Gets or sets the maximum number of alternate recognition results that the SpeechRecognitionEngine returns for each recognition operation. |
RecognizerAudioPosition |
Gets the current location of the SpeechRecognitionEngine in the audio input that it is processing. |
RecognizerInfo |
Gets information about the current instance of SpeechRecognitionEngine. |
Methods
Dispose() |
Disposes the SpeechRecognitionEngine object. |
Dispose(Boolean) |
Disposes the SpeechRecognitionEngine object and releases resources used during the session. |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
Emulates input of specific words to the speech recognizer, using text in place of audio for synchronous speech recognition, and specifies how the recognizer handles Unicode comparison between the words and the loaded speech recognition grammars. |
EmulateRecognize(String, CompareOptions) |
Emulates input of a phrase to the speech recognizer, using text in place of audio for synchronous speech recognition, and specifies how the recognizer handles Unicode comparison between the phrase and the loaded speech recognition grammars. |
EmulateRecognize(String) |
Emulates input of a phrase to the speech recognizer, using text in place of audio for synchronous speech recognition. |
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Emulates input of specific words to the speech recognizer, using an array of RecognizedWordUnit objects in place of audio for asynchronous speech recognition, and specifies how the recognizer handles Unicode comparison between the words and the loaded speech recognition grammars. |
EmulateRecognizeAsync(String, CompareOptions) |
Emulates input of a phrase to the speech recognizer, using text in place of audio for asynchronous speech recognition, and specifies how the recognizer handles Unicode comparison between the phrase and the loaded speech recognition grammars. |
EmulateRecognizeAsync(String) |
Emulates input of a phrase to the speech recognizer, using text in place of audio for asynchronous speech recognition. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
InstalledRecognizers() |
Returns information for all of the installed speech recognizers on the current system. |
LoadGrammar(Grammar) |
Synchronously loads a Grammar object. |
LoadGrammarAsync(Grammar) |
Asynchronously loads a speech recognition grammar. |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
QueryRecognizerSetting(String) |
Returns the values of settings for the recognizer. |
Recognize() |
Performs a synchronous speech recognition operation. |
Recognize(TimeSpan) |
Performs a synchronous speech recognition operation with a specified initial silence timeout period. |
RecognizeAsync() |
Performs a single, asynchronous speech recognition operation. |
RecognizeAsync(RecognizeMode) |
Performs one or more asynchronous speech recognition operations. |
RecognizeAsyncCancel() |
Terminates asynchronous recognition without waiting for the current recognition operation to complete. |
RecognizeAsyncStop() |
Stops asynchronous recognition after the current recognition operation completes. |
RequestRecognizerUpdate() |
Requests that the recognizer pauses to update its state. |
RequestRecognizerUpdate(Object, TimeSpan) |
Requests that the recognizer pauses to update its state and provides an offset and a user token for the associated event. |
RequestRecognizerUpdate(Object) |
Requests that the recognizer pauses to update its state and provides a user token for the associated event. |
SetInputToAudioStream(Stream, SpeechAudioFormatInfo) |
Configures the SpeechRecognitionEngine object to receive input from an audio stream. |
SetInputToDefaultAudioDevice() |
Configures the SpeechRecognitionEngine object to receive input from the default audio device. |
SetInputToNull() |
Disables the input to the speech recognizer. |
SetInputToWaveFile(String) |
Configures the SpeechRecognitionEngine object to receive input from a Waveform audio format (.wav) file. |
SetInputToWaveStream(Stream) |
Configures the SpeechRecognitionEngine object to receive input from a stream that contains Waveform audio format (.wav) data. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
UnloadAllGrammars() |
Unloads all Grammar objects from the recognizer. |
UnloadGrammar(Grammar) |
Unloads a specified Grammar object from the SpeechRecognitionEngine instance. |
UpdateRecognizerSetting(String, Int32) |
Updates the specified setting for the SpeechRecognitionEngine with the specified integer value. |
UpdateRecognizerSetting(String, String) |
Updates the specified speech recognition engine setting with the specified string value. |
Events
AudioLevelUpdated |
Raised when the SpeechRecognitionEngine reports the level of its audio input. |
AudioSignalProblemOccurred |
Raised when the SpeechRecognitionEngine detects a problem in the audio signal. |
AudioStateChanged |
Raised when the state changes in the audio being received by the SpeechRecognitionEngine. |
EmulateRecognizeCompleted |
Raised when the SpeechRecognitionEngine finalizes an asynchronous recognition operation of emulated input. |
LoadGrammarCompleted |
Raised when the SpeechRecognitionEngine finishes the asynchronous loading of a Grammar object. |
RecognizeCompleted |
Raised when the SpeechRecognitionEngine finalizes an asynchronous recognition operation. |
RecognizerUpdateReached |
Raised when a running SpeechRecognitionEngine pauses to accept modifications. |
SpeechDetected |
Raised when the SpeechRecognitionEngine detects input that it can identify as speech. |
SpeechHypothesized |
Raised when the SpeechRecognitionEngine has recognized a word or words that may be a component of multiple complete phrases in a grammar. |
SpeechRecognitionRejected |
Raised when the SpeechRecognitionEngine receives input that does not match any of its loaded and enabled Grammar objects. |
SpeechRecognized |
Raised when the SpeechRecognitionEngine receives input that matches any of its loaded and enabled Grammar objects. |