Edit

Share via


SpeechRecognitionEngine.SetInputToDefaultAudioDevice Method

Definition

Configures the SpeechRecognitionEngine object to receive input from the default audio device.

public:
 void SetInputToDefaultAudioDevice();
public void SetInputToDefaultAudioDevice();
member this.SetInputToDefaultAudioDevice : unit -> unit
Public Sub SetInputToDefaultAudioDevice ()

Examples

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;
    }
  }
}

Applies to

See also