Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Download Microsoft Edge
More info about Internet Explorer and Microsoft Edge
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.
Contains Windows Desktop Speech technology types for implementing speech recognition.
The Windows Desktop Speech Technology software offers a basic speech recognition infrastructure that digitizes acoustical signals, and recovers words and speech elements from audio input.
Applications use the
System.Speech.Recognition
namespace to access and extend this basic speech recognition technology by defining algorithms for identifying and acting on specific phrases or word patterns, and by managing the runtime behavior of this speech infrastructure.
Create Grammars
You create grammars, which consist of a set of rules or constraints, to define words and phrases that your application will recognize as meaningful input. Using a constructor for the
Grammar
class, you can create a grammar object at runtime from
GrammarBuilder
or
SrgsDocument
instances, or from a file, a string, or a stream that contains a definition of a grammar.
Using the
GrammarBuilder
and
Choices
classes, you can programmatically create grammars of low to medium complexity that can be used to perform recognition for many common scenarios. To create grammars programmatically that conform to the
Speech Recognition Grammar Specification 1.0 (SRGS)
and take advantage of the authoring flexibility of SRGS, use the types of the
System.Speech.Recognition.SrgsGrammar
namespace. You can also create XML-format SRGS grammars using any text editor and use the result to create
GrammarBuilder
,
SrgsDocument
, or
Grammar
objects.
In addition, the
DictationGrammar
class provides a special-case grammar to support a conventional dictation model.
See
Create Grammars
in the
System Speech Programming Guide for .NET Framework
for more information and examples.
Manage Speech Recognition Engines
Instances of
SpeechRecognizer
and
SpeechRecognitionEngine
supplied with
Grammar
objects provide the primary access to the speech recognition engines of the Windows Desktop Speech Technology.
You can use the
SpeechRecognizer
class to create client applications that use the speech recognition technology provided by Windows, which you can configure through the
Control Panel
. Such applications accept input through a computer's default audio input mechanism.
For more control over the configuration and type of recognition engine, build an application using
SpeechRecognitionEngine
, which runs in-process. Using the
SpeechRecognitionEngine
class, you can also dynamically select audio input from devices, files, or streams.
See
Initialize and Manage a Speech Recognition Engine
in the
System Speech Programming Guide for .NET Framework
for more information.
Respond to Events
SpeechRecognizer
and
SpeechRecognitionEngine
objects generate events in response to audio input to the speech recognition engine. The
AudioLevelUpdated
,
AudioSignalProblemOccurred
,
AudioStateChanged
events are raised in response to changes in the incoming signal. The
SpeechDetected
event is raised when the speech recognition engine identifies incoming audio as speech. The speech recognition engine raises the
SpeechRecognized
event when it matches speech input to one of its loaded grammars, and raises the
SpeechRecognitionRejected
when speech input does not match any of its loaded grammars.
Other types of events include the
LoadGrammarCompleted
event which a speech recognition engine raises when it has loaded a grammar. The
StateChanged
is exclusive to the
SpeechRecognizer
class, which raises the event when the state of Windows Speech Recognition changes.
You can register to be notified for events that the speech recognition engine raises and create handlers using the
EventsArgs
classes associated with each of these events to program your application's behavior when an event is raised.
See
Using Speech Recognition Events
in the
System Speech Programming Guide for .NET Framework
for more information.
See also
System.Speech.AudioFormat
System.Speech.Recognition.SrgsGrammar
System.Speech.Synthesis
System.Speech.Synthesis.TtsEngine
Speech Recognition
Create Grammars
Initialize and Manage a Speech Recognition Engine
Using Speech Recognition Events