SpeechRecognizer.SpeechDetected SpeechRecognizer.SpeechDetected SpeechRecognizer.SpeechDetected SpeechRecognizer.SpeechDetected Event


認識機能が音声として識別できる入力を検出すると発生します。Occurs when the recognizer detects input that it can identify as speech.

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

次の例は、フライトの発信元と送信先の市区町村を選択するためのコンソールアプリケーションの一部です。The following example is part of a console application for choosing origin and destination cities for a flight. アプリケーションでは、"マイアミからシカゴに向けて飛ぶことができます" などの語句を認識します。The application recognizes phrases such as "I want to fly from Miami to Chicago." この例ではSpeechDetected 、イベントを使用AudioPositionして、音声が検出されるたびにを報告します。The example uses the SpeechDetected event to report the AudioPosition each time speech is detected.

using System;  
using System.Speech.Recognition;  
namespace SampleRecognition  
  class Program  
    static void Main(string[] args)  
    // Initialize a shared speech recognition engine.  
      using (SpeechRecognizer recognizer =  
         new SpeechRecognizer())  
        // Create a grammar.  
        Choices cities = new Choices(new string[] {   
          "Los Angeles", "New York", "Chicago", "San Francisco", "Miami", "Dallas" });  
        GrammarBuilder gb = new GrammarBuilder();  
        gb.Append("I would like to fly from");  
        // Create a Grammar object and load it to the recognizer.  
        Grammar g = new Grammar(gb);  
        g.Name = ("City Chooser");  
        // Attach event handlers.  
        recognizer.LoadGrammarCompleted +=  
          new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);  
        recognizer.SpeechDetected +=   
          new EventHandler<SpeechDetectedEventArgs>(recognizer_SpeechDetected);  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  
        // Keep the console window open.  
    // Handle the SpeechDetected event.  
    static void recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e)  
      Console.WriteLine("Speech detected at AudioPosition = {0}", e.AudioPosition);  
    // Handle the LoadGrammarCompleted event.  
    static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)  
      Console.WriteLine("Grammar loaded: " + e.Grammar.Name);  
    // Handle the SpeechRecognized event.  
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)  
      Console.WriteLine("Speech recognized: " + e.Result.Text);  


共有認識エンジンは、入力に応じてこのイベントを発生させることができます。The shared recognizer can raise this event in response to input. 関連付けAudioPositionられSpeechDetectedEventArgsたオブジェクトのプロパティは、認識エンジンが音声を検出した入力ストリーム内の位置を示します。The AudioPosition property of the associated SpeechDetectedEventArgs object indicates location in the input stream where the recognizer detected speech. 詳細についてはAudioPosition RecognizerAudioPosition 、プロパティとプロパティEmulateRecognize EmulateRecognizeAsync 、およびメソッドとメソッドを参照してください。For more information see the AudioPosition and RecognizerAudioPosition properties and the EmulateRecognize and EmulateRecognizeAsync methods.

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