SpeechRecognitionEngine.EmulateRecognizeCompleted Ereignis

Definition

Wird ausgelöst, wenn das SpeechRecognitionEngine einen asynchronen Erkennungsvorgang einer emulierten Eingabe abschließt.

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 Event EmulateRecognizeCompleted As EventHandler(Of EmulateRecognizeCompletedEventArgs) 
Public Custom Event EmulateRecognizeCompleted As EventHandler(Of EmulateRecognizeCompletedEventArgs) 

Ereignistyp

Beispiele

Das folgende Beispiel ist Teil einer Konsolenanwendung, die eine Spracherkennungsgrammatik lädt und asynchron emulierte Eingaben, die zugeordneten 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 startet einen asynchronen Erkennungsvorgang. Löst SpeechRecognitionEngine das EmulateRecognizeCompleted -Ereignis aus, wenn der asynchrone Vorgang abgeschlossen wird.

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

Wenn die emulierte Erkennung erfolgreich war, können Sie mithilfe einer der folgenden Optionen auf das Erkennungsergebnis zugreifen:

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

EmulateRecognizeCompletedEventArgs wird von AsyncCompletedEventArgs abgeleitet.

SpeechRecognizedEventArgs wird von RecognitionEventArgs abgeleitet.

Beim Erstellen eines EmulateRecognizeCompleted-Delegaten geben Sie die Methode für die Ereignisbehandlung an. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Weitere Informationen zu Ereignishandlerdelegaten finden Sie unter Ereignisse und Delegaten.

Gilt für:

Weitere Informationen