SpeechRecognitionEngine.EmulateRecognizeCompleted SpeechRecognitionEngine.EmulateRecognizeCompleted SpeechRecognitionEngine.EmulateRecognizeCompleted SpeechRecognitionEngine.EmulateRecognizeCompleted Event

定義

SpeechRecognitionEngine がエミュレートされた入力の非同期認識操作を終了すると発生します。Raised when the SpeechRecognitionEngine finalizes an asynchronous recognition operation of emulated input.

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) 

次の例は、音声認識の文法を読み込み、非同期のエミュレートされた入力、関連する認識結果、音声認識エンジンによって発生した関連イベントを示すコンソールアプリケーションの一部です。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 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;  
    }  
  }  
}  

注釈

EmulateRecognizeAsyncメソッドは、非同期認識操作を開始します。Each EmulateRecognizeAsync method begins an asynchronous recognition operation. SpeechRecognitionEngine 、非同期EmulateRecognizeCompleted操作を終了するときにイベントを発生させます。The SpeechRecognitionEngine raises the EmulateRecognizeCompleted event when it finalizes the asynchronous operation.

SpeechDetected SpeechRecognizedこの操作では、、 SpeechHypothesizedSpeechRecognitionRejected、およびの各イベントを発生させることができます。 EmulateRecognizeAsyncThe EmulateRecognizeAsync operation can raise the SpeechDetected, SpeechHypothesized, SpeechRecognitionRejected, and SpeechRecognized events. EmulateRecognizeCompletedイベントは、特定の操作でレコグナイザーが発生させる最後のイベントです。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:

エミュレートされた認識が成功SpeechRecognizedしなかった場合、イベントは発生せず、 Resultは null になります。If emulated recognition was not successful, the SpeechRecognized event is not raised and the Result will be null.

EmulateRecognizeCompletedEventArgs は、AsyncCompletedEventArgs から派生します。EmulateRecognizeCompletedEventArgs derives from AsyncCompletedEventArgs.

SpeechRecognizedEventArgs は、RecognitionEventArgs から派生します。SpeechRecognizedEventArgs derives from RecognitionEventArgs.

EmulateRecognizeCompleted デリゲートを作成する場合は、イベントを処理するメソッドを指定します。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.

適用対象

こちらもご覧ください