SpeechRecognitionEngine.SpeechDetected SpeechRecognitionEngine.SpeechDetected SpeechRecognitionEngine.SpeechDetected SpeechRecognitionEngine.SpeechDetected Event


SpeechRecognitionEngine が音声として識別できる入力を検出すると発生します。Raised when the SpeechRecognitionEngine 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 an in-process speech recognition engine.  
      using (SpeechRecognitionEngine recognizer =  
         new SpeechRecognitionEngine())  

        // 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);  

        // Set the input to the recognizer.  

        // Start recognition.  

        // 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);  


各音声認識エンジンには、サイレント状態と音声認識とを区別するためのアルゴリズムがあります。Each speech recognizer has an algorithm to distinguish between silence and speech. ときに、SpeechRecognitionEngine音声認識操作を実行発生、SpeechDetectedのアルゴリズムが音声として入力を識別するときにイベント。When the SpeechRecognitionEngine performs a speech recognition operation, it raises the SpeechDetected event when its algorithm identifies the input as speech. AudioPositionプロパティ、関連付けられているSpeechDetectedEventArgsオブジェクトが、認識エンジンが音声を認識する場合、入力ストリーム内の場所を示します。The AudioPosition property of the associated SpeechDetectedEventArgs object indicates location in the input stream where the recognizer detected speech. SpeechRecognitionEngine発生させる、SpeechDetectedイベントのいずれかが発生する前に、 SpeechHypothesizedSpeechRecognized、またはSpeechRecognitionRejectedイベント。The SpeechRecognitionEngine raises the SpeechDetected event before it raises any of the SpeechHypothesized, SpeechRecognized, or SpeechRecognitionRejected events.

詳細については、次を参照してください。、 RecognizeRecognizeAsyncEmulateRecognize、およびEmulateRecognizeAsyncメソッド。For more information see the Recognize, RecognizeAsync, EmulateRecognize, and EmulateRecognizeAsync methods.

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