SpeechRecognitionEngine.SpeechRecognized イベント

定義

SpeechRecognitionEngine が読み込み済みで有効な Grammar オブジェクトのいずれかのリストに一致する入力を受け取ると、発生します。Raised when the SpeechRecognitionEngine receives input that matches any of its loaded and enabled Grammar objects.

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

次の例は、音声認識の文法を作成し、 Grammarオブジェクトを構築し、それSpeechRecognitionEngineをに読み込んで認識を実行するコンソールアプリケーションの一部です。The following example is part of a console application that creates speech recognition grammar, constructs a Grammar object, and loads it into the SpeechRecognitionEngine to perform recognition. この例では、に対するSpeechRecognitionEngine音声入力、関連する認識結果、音声認識エンジンによって発生した関連イベントを示しています。The example demonstrates speech input to a SpeechRecognitionEngine, the associated recognition results, and the associated events raised by the speech recognizer.

"シカゴからマイアミへの飛行を希望する" などの音声入力は、 SpeechRecognizedイベントをトリガーします。Spoken input such as "I want to fly from Chicago to Miami" will trigger a SpeechRecognized event. "ヒューストンからシカゴに移動する" という語句は、イベントをSpeechRecognizedトリガーしません。Speaking the phrase "Fly me from Houston to Chicago " will not trigger a SpeechRecognized event.

この例では、 SpeechRecognizedイベントのハンドラーを使用して、正常に認識された語句と、コンソールに含まれるセマンティクスを表示します。The example uses a handler for the SpeechRecognized event to display successfully recognized phrases and the semantics they contain in the console.

using System;  
using System.Speech.Recognition;  
  
namespace SampleRecognition  
{  
  class Program  
  {  
    static void Main(string[] args)  
  
    // Initialize an in-process speech recognition engine.  
    {  
      using (SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine())  
      {  
  
        // Create SemanticResultValue objects that contain cities and airport codes.  
        SemanticResultValue chicago = new SemanticResultValue("Chicago", "ORD");  
        SemanticResultValue boston = new SemanticResultValue("Boston", "BOS");  
        SemanticResultValue miami = new SemanticResultValue("Miami", "MIA");  
        SemanticResultValue dallas = new SemanticResultValue("Dallas", "DFW");  
  
        // Create a Choices object and add the SemanticResultValue objects, using  
        // implicit conversion from SemanticResultValue to GrammarBuilder  
        Choices cities = new Choices();  
        cities.Add(new Choices(new GrammarBuilder[] { chicago, boston, miami, dallas }));  
  
        // Build the phrase and add SemanticResultKeys.  
        GrammarBuilder chooseCities = new GrammarBuilder();  
        chooseCities.Append("I want to fly from");  
        chooseCities.Append(new SemanticResultKey("origin", cities));  
        chooseCities.Append("to");  
        chooseCities.Append(new SemanticResultKey("destination", cities));  
  
        // Build a Grammar object from the GrammarBuilder.  
        Grammar bookFlight = new Grammar(chooseCities);  
        bookFlight.Name = "Book Flight";  
  
        // Add a handler for the LoadGrammarCompleted event.  
        recognizer.LoadGrammarCompleted +=  
          new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);  
  
        // Add a handler for the SpeechRecognized event.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  
  
        // Load the grammar object to the recognizer.  
        recognizer.LoadGrammarAsync(bookFlight);  
  
        // 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);  
      Console.WriteLine();  
    }  
  
    // Handle the SpeechRecognized event.  
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)  
    {  
      Console.WriteLine("Speech recognized:  " + e.Result.Text);  
      Console.WriteLine();  
      Console.WriteLine("Semantic results:");  
      Console.WriteLine("  The flight origin is " + e.Result.Semantics["origin"].Value);  
      Console.WriteLine("  The flight destination is " + e.Result.Semantics["destination"].Value);  
    }  
  }  
}  
  

注釈

RecognizeまたはRecognizeAsyncメソッドのいずれかを使用して、認識操作を開始できます。You can initiate a recognition operation using the one of the Recognize or RecognizeAsync methods. 認識エンジンは、 SpeechRecognized認識を構成するために十分なレベルの信頼Grammarを持つ、読み込まれたオブジェクトの1つに入力が一致すると判断した場合に、イベントを発生させます。The recognizer raises the SpeechRecognized event if it determines that input matches one of its loaded Grammar objects with a sufficient level of confidence to constitute recognition. のプロパティにResultは、受け入れらRecognitionResultれたオブジェクトが含まれています。SpeechRecognitionRejectedEventArgsThe Result property of the SpeechRecognitionRejectedEventArgs contains the accepted RecognitionResult object. イベントのSpeechRecognizedハンドラーは、認識された語句を取得できます。 Alternatesまた、信頼度の低いスコアを持つ認識の一覧も取得できます。Handlers of SpeechRecognized events can obtain the recognized phrase as well as a list of recognition Alternates with lower confidence scores.

アプリケーションでSpeechRecognitionEngineインスタンスを使用している場合は、いずれかUpdateRecognizerSettingの方法で音声入力が受け入れられるか拒否されるかの信頼レベルを変更できます。If your application is using a SpeechRecognitionEngine instance, you can modify the confidence level at which speech input is accepted or rejected with one of the UpdateRecognizerSetting methods. 、 、、およびBabbleTimeoutEndSilenceTimeoutAmbiguous各プロパティを使用して、音声認識が音声以外の入力にどのように応答するかを変更できます。 EndSilenceTimeout InitialSilenceTimeoutYou can modify how the speech recognition responds to non-speech input using the BabbleTimeout, InitialSilenceTimeout, EndSilenceTimeout, and EndSilenceTimeoutAmbiguous properties.

認識エンジンが文法に一致する入力を受け取るとGrammar 、オブジェクトはそのSpeechRecognizedイベントを発生させることができます。When the recognizer receives input that matches a grammar, the Grammar object can raise its SpeechRecognized event. オブジェクトのSpeechRecognizedイベントは、音声認識エンジンのSpeechRecognizedイベントの前に発生します。 GrammarThe Grammar object's SpeechRecognized event is raised prior to the speech recognizer's SpeechRecognized event. 特定の文法に固有のタスクは、常にSpeechRecognizedイベントのハンドラーによって実行する必要があります。Any tasks specific to a particular grammar should always be performed by a handler for the SpeechRecognized event.

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

適用対象

こちらもご覧ください