Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

SpeechRecognitionEngine.EmulateRecognizeCompleted Event

Raised when the SpeechRecognitionEngine finalizes an asynchronous recognition operation of emulated input.

Namespace:  System.Speech.Recognition
Assembly:  System.Speech (in System.Speech.dll)
public event EventHandler<EmulateRecognizeCompletedEventArgs> EmulateRecognizeCompleted

Each EmulateRecognizeAsync method begins an asynchronous recognition operation. The SpeechRecognitionEngine raises the EmulateRecognizeCompleted event when it finalizes the asynchronous operation.

The EmulateRecognizeAsync operation can raise the SpeechDetected, SpeechHypothesized, SpeechRecognitionRejected, and SpeechRecognized events. The EmulateRecognizeCompleted event is the last such event that the recognizer raises for a given operation.

If emulated recognition was successful, you can access the recognition result using the either of the following:

If emulated recognition was not successful, the SpeechRecognized event is not raised and the Result will be null.

EmulateRecognizeCompletedEventArgs derives from AsyncCompletedEventArgs.

SpeechRecognizedEventArgs derives from RecognitionEventArgs.

When you create an EmulateRecognizeCompleted 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.

The following example is part of a console application that loads a speech recognition grammar and demonstrates asynchronous emulated input, the associated recognition results, and the associated events raised by the speech recognizer.

using System;
using System.Speech.Recognition;
using System.Threading;

namespace InProcessRecognizer
{
  class Program
  {
    // Indicate whether the asynchronous emulate recognition
    // operation has completed.
    static bool completed;

    static void Main(string[] args)
    {

      // Initialize an instance of an in-process recognizer.
      using (SpeechRecognitionEngine recognizer = 
        new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
      {
        // Create and load a sample grammar.
        Grammar testGrammar =
          new Grammar(new GrammarBuilder("testing testing"));
        testGrammar.Name = "Test Grammar";
        recognizer.LoadGrammar(testGrammar);

        // Attach event handlers for recognition events.
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(SpeechRecognizedHandler);
        recognizer.EmulateRecognizeCompleted +=
          new EventHandler<EmulateRecognizeCompletedEventArgs>(
            EmulateRecognizeCompletedHandler);

        completed = false;

        // This EmulateRecognizeAsync call mathches the grammar
        // and generates a SpeechRecognized event.
        recognizer.EmulateRecognizeAsync("testing testing");

        // Wait for the asynchronous operation to complete.
        while (!completed)
        {
          Thread.Sleep(333);
        }

        completed = false;

        // This EmulateRecognizeAsync call does not match the grammar
        // or generate a SpeechRecognized event.
        recognizer.EmulateRecognizeAsync("testing one two three");

        // Wait for the asynchronous operation to complete.
        while (!completed)
        {
          Thread.Sleep(333);
        }
      }

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

    // Handle the SpeechRecognized event.
    static void SpeechRecognizedHandler(
      object sender, SpeechRecognizedEventArgs e)
    {
      if (e.Result != null)
      {
        Console.WriteLine("Result of 1st call to EmulateRecognizeAsync = {0}",
          e.Result.Text ?? "<no text>");
        Console.WriteLine();
      }
      else
      {
        Console.WriteLine("No recognition result");
      }
    }

    // Handle the EmulateRecognizeCompleted event.
    static void EmulateRecognizeCompletedHandler(
      object sender, EmulateRecognizeCompletedEventArgs e)
    {
      if (e.Result == null)
      {
        Console.WriteLine("Result of 2nd call to EmulateRecognizeAsync = No result generated.");
      }

      // Indicate the asynchronous operation is complete.
      completed = true;
    }
  }
}

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.