SpeechRecognitionEngine::SetInputToDefaultAudioDevice Method ()
.NET Framework (current version)
Configures the SpeechRecognitionEngine object to receive input from the default audio device.
Assembly: System.Speech (in System.Speech.dll)
The following example shows part of a console application that demonstrates basic speech recognition. The example uses output from the default audio device, performs multiple, asynchronous recognition operations, and exits when a user utters the phrase, "exit".
using System; using System.Globalization; using System.Speech.Recognition; using System.Threading; namespace DefaultInput { class Program { // Indicate whether asynchronous recognition has finished. static bool completed; static void Main(string[] args) { using (SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new CultureInfo("en-US"))) { // Create and load the exit grammar. Grammar exitGrammar = new Grammar(new GrammarBuilder("exit")); exitGrammar.Name = "Exit Grammar"; recognizer.LoadGrammar(exitGrammar); // Create and load the dictation grammar. Grammar dictation = new DictationGrammar(); dictation.Name = "Dictation Grammar"; recognizer.LoadGrammar(dictation); // Attach event handlers to the recognizer. recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>( SpeechRecognizedHandler); recognizer.RecognizeCompleted += new EventHandler<RecognizeCompletedEventArgs>( RecognizeCompletedHandler); // Assign input to the recognizer. recognizer.SetInputToDefaultAudioDevice(); // Begin asynchronous recognition. Console.WriteLine("Starting recognition..."); completed = false; recognizer.RecognizeAsync(RecognizeMode.Multiple); // Wait for recognition to finish. while (!completed) { Thread.Sleep(333); } Console.WriteLine("Done."); } Console.WriteLine(); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } static void SpeechRecognizedHandler( object sender, SpeechRecognizedEventArgs e) { Console.WriteLine(" Speech recognized:"); string grammarName = "<not available>"; if (e.Result.Grammar.Name != null && !e.Result.Grammar.Name.Equals(string.Empty)) { grammarName = e.Result.Grammar.Name; } Console.WriteLine(" {0,-17} - {1}", grammarName, e.Result.Text); if (grammarName.Equals("Exit Grammar")) { ((SpeechRecognitionEngine)sender).RecognizeAsyncCancel(); } } static void RecognizeCompletedHandler( object sender, RecognizeCompletedEventArgs e) { Console.WriteLine(" Recognition completed."); completed = true; } } }
.NET Framework
Available since 3.0
Available since 3.0
Show: