This tool allows you to experiment and learn the two speech recognition classes that are present in System.Speech.Recognition namespace: SpeechRecognizer: This class allows you to use the system's default shared speech recognizer. You have limited control over this shared recognizer. SpeechRecognitionEngine: Use this class if you need greater control over the speech recognition engine such as selecting any engine installed on the system or setting input to wave files or streams. You can just start experimenting with these classes by selecting the tabs above, or continue reading to learn more. How to use this tool First you need to decide what type of recognizer object you want to create. You can use the system's default shared speech recognizer by creating a SpeechRecognizer object. You have limited control over this shared recognizer. In Windows Vista the settings of the shared recognizer can be accessed in Control Panel under "Ease of Access -> Speech Recognition Options -> Advanced Speech Options". Creating a SpeechRecognizer object will also activate the Windows Speech Recognition if it's not running already. If you want more control over speech recognition, you can create a SpeechRecognitionEngine object. You'll be able to select the engine that you want to use and to set the input to the engine. The recognizer created in this way will only be accessible by your application (not shared among the system). Grammars After creating the engine, the next step is to load the grammars. Grammars let the engine know which phrases to listen for. The Default Dictation grammar allows the engine to recognize any free speech fragment and it's based on statistical language models. Spelling Dictation grammar allows you to spell any word. If you want only some certain phrases to be recognized, or to add some semantic information, you can create your own grammars. System.Speech.Recognition namespace has the GrammarBuilder class to make it easy to create grammars programatically. This application has a sample GrammarBuilder which recognizes phrases like: Please check the status of today's flight from Seattle to Boston. Status of tomorrow's flight from T. F. Green to Boston Logan International Airport. Try enabling the Flight Status Grammar on the right section by checking the box, and speak the sentences above. Observe the semantics information on the bottom right. You can check the source code (FlightStatusGrammarBuilder method) to see how this grammar is created. Another way of loading custom grammars is to open and load SRGS files. You can learn more about this grammar specification format on http://www.w3.org/TR/speech-grammar/ . Events Various events are fired during the recognition process. This tool reports the following events with color animations so you can see when and in which order the events are fired. SpeechHypothesized event is generated when part of the audio input speech has been tentatively recognized. This event is indicated by blue color by the associated grammar. SpeechRecognized event is generated when speech has been recognized. A green color animation by the associated grammar will indicate this event. SpeechRecognitionRejected event is generated when the engine detects speech, but can only return candidate phrases with low confidence levels. Red color will indicate this event.