Freigeben über


SpeechRecognitionEngine.EmulateRecognizeCompleted Ereignis

Definition

Wird ausgelöst, wenn der SpeechRecognitionEngine Abschluss eines asynchronen Erkennungsvorgangs der emulierten Eingabe erfolgt.

public:
 event EventHandler<System::Speech::Recognition::EmulateRecognizeCompletedEventArgs ^> ^ EmulateRecognizeCompleted;
public event EventHandler<System.Speech.Recognition.EmulateRecognizeCompletedEventArgs> EmulateRecognizeCompleted;
member this.EmulateRecognizeCompleted : EventHandler<System.Speech.Recognition.EmulateRecognizeCompletedEventArgs> 
Public Custom Event EmulateRecognizeCompleted As EventHandler(Of EmulateRecognizeCompletedEventArgs) 
Public Event EmulateRecognizeCompleted As EventHandler(Of EmulateRecognizeCompletedEventArgs) 

Ereignistyp

Beispiele

Das folgende Beispiel ist Teil einer Konsolenanwendung, die eine Spracherkennungsgrammatik lädt und asynchrone emulierte Eingaben, die zugehörigen Erkennungsergebnisse und die zugehörigen Ereignisse veranschaulicht, die von der Spracherkennung ausgelöst werden.

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

Hinweise

Jede EmulateRecognizeAsync Methode beginnt einen asynchronen Erkennungsvorgang. Das SpeechRecognitionEngine Ereignis wird ausgelöst EmulateRecognizeCompleted , wenn der asynchrone Vorgang abgeschlossen wird.

Der EmulateRecognizeAsync Vorgang kann die SpeechDetectedEreignisse , SpeechHypothesized, , SpeechRecognitionRejectedund SpeechRecognized Ereignisse auslösen. Das EmulateRecognizeCompleted Ereignis ist das letzte ereignis, das von der Erkennung für einen bestimmten Vorgang ausgelöst wird.

Wenn die emulierte Erkennung erfolgreich war, können Sie auf das Erkennungsergebnis zugreifen, indem Sie eine der folgenden Aktionen verwenden:

Wenn die emulierte Erkennung nicht erfolgreich war, wird das SpeechRecognized Ereignis nicht ausgelöst, und dies Result ist NULL.

EmulateRecognizeCompletedEventArgs wird von AsyncCompletedEventArgs abgeleitet.

SpeechRecognizedEventArgs wird von RecognitionEventArgs abgeleitet.

Wenn Sie einen EmulateRecognizeCompleted Delegaten erstellen, identifizieren Sie die Methode, die das Ereignis behandelt. Um das Ereignis dem Ereignishandler zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird immer dann aufgerufen, wenn das Ereignis auftritt, es sei denn, Sie entfernen den Delegaten. Weitere Informationen zu Ereignishandlerdelegatn finden Sie unter "Ereignisse und Stellvertretungen".

Gilt für:

Weitere Informationen