Share via


Note

Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.

SpeechRecognitionEngine.AudioStateChanged Event

Raised when the state changes in the audio being received by the SpeechRecognitionEngine.

Namespace:  Microsoft.Speech.Recognition
Assembly:  Microsoft.Speech (in Microsoft.Speech.dll)

Syntax

'Declaration
Public Event AudioStateChanged As EventHandler(Of AudioStateChangedEventArgs)
'Usage
Dim instance As SpeechRecognitionEngine
Dim handler As EventHandler(Of AudioStateChangedEventArgs)

AddHandler instance.AudioStateChanged, handler
public event EventHandler<AudioStateChangedEventArgs> AudioStateChanged

Remarks

To get the audio state at the time of the event, use the AudioState property of the associated AudioStateChangedEventArgs. To get the current audio state of the input to the recognizer, use the recognizer's AudioState property. For more information about audio state, see the AudioState enumeration.

When you create an AudioStateChanged delegate, you identify the method that will handle the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For more information about event-handler delegates, see Events and Delegates.

Examples

The following example uses a handler for the AudioStateChanged event to write the recognizer's new AudioState to the console each time it changes, using a member of the AudioState enumeration.

using System;
using Microsoft.Speech.Recognition;

namespace SampleRecognition
{
  class Program
  {
    static void Main(string[] args)

    // Initialize a SpeechRecognitionEngine object.
    {
      using (SpeechRecognitionEngine recognizer =
         new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
      {

        // Create and load a grammar.
        Choices animals = new Choices(new string[] { "cow", "pig", "goat" });
        GrammarBuilder farm = new GrammarBuilder("On this farm he had a");
        farm.Append(animals);
        Grammar farmAnimals = new Grammar(farm);
        farmAnimals.Name = "Farm";
        recognizer.LoadGrammar(farmAnimals);

        // Attach event handlers.
        recognizer.AudioStateChanged +=
          new EventHandler<AudioStateChangedEventArgs>(recognizer_AudioStateChanged);
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
        recognizer.LoadGrammarCompleted +=
          new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);

        // Set the input to the recognizer.
        recognizer.SetInputToDefaultAudioDevice();

        // Start recognition.
        recognizer.RecognizeAsync();

        // Keep the console window open.
        Console.ReadLine();
      }
    }

    // Handle the LoadGrammarCompleted event.
    static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
    {
      Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
    }

    // Handle the SpeechRecognized event.
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      if (e.Result != null && e.Result.Text != null)
      {
        Console.WriteLine();
        Console.WriteLine("  Recognized text =  {0}", e.Result.Text);
        Console.WriteLine();
      }
      else
      {
        Console.WriteLine("  Recognized text not available.");
      }

      Console.WriteLine();
      Console.WriteLine("Done.");
      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    // Handle the AudioStateChanged event.
    static void recognizer_AudioStateChanged(object sender, AudioStateChangedEventArgs e)
    {
      Console.WriteLine("The new audio state is: " + e.AudioState);
    }
  }
}

See Also

Reference

SpeechRecognitionEngine Class

SpeechRecognitionEngine Members

Microsoft.Speech.Recognition Namespace

AudioState

AudioStateChangedEventArgs

AudioState