SpeechRecognitionEngine.SpeechDetected 이벤트

정의

SpeechRecognitionEngine가 음성으로 식별할 수 있는 입력을 감지할 때 발생했습니다.

public:
 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) 
Public Custom Event SpeechDetected As EventHandler(Of SpeechDetectedEventArgs) 

이벤트 유형

예제

다음 예제는 항공편에 대 한 원본 및 대상 도시를 선택 하는 것에 대 한 콘솔 애플리케이션의 일부입니다. 애플리케이션은 "마이애미에서 시카고로 비행하고 싶다"와 같은 문구를 인식합니다. 이 예제에서는 이벤트를 사용하여 SpeechDetected 음성이 AudioPosition 검색될 때마다 보고합니다.

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");  
        gb.Append(cities);  
        gb.Append("to");  
        gb.Append(cities);  

        // Create a Grammar object and load it to the recognizer.  
        Grammar g = new Grammar(gb);  
        g.Name = ("City Chooser");  
        recognizer.LoadGrammarAsync(g);  

        // 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.  
        recognizer.SetInputToDefaultAudioDevice();  

        // Start recognition.  
        recognizer.RecognizeAsync();  

        // Keep the console window open.  
        Console.ReadLine();  
      }  
    }  

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

설명

각 음성 인식기에는 무음과 음성을 구분하는 알고리즘이 있습니다. 는 SpeechRecognitionEngine 음성 인식 작업을 수행할 때 알고리즘이 입력을 SpeechDetected 음성으로 식별할 때 이벤트를 발생합니다. 합니다 AudioPosition 속성은 연결 된 SpeechDetectedEventArgs 개체를 인식기에서 음성을 검색 하는 경우 입력 스트림의 위치를 나타냅니다. 는 SpeechRecognitionEngine , SpeechRecognized또는 SpeechRecognitionRejected 이벤트를 발생하기 전에 이벤트를 발생 SpeechDetected 합니다SpeechHypothesized.

자세한 내용은 , , RecognizeAsyncEmulateRecognizeEmulateRecognizeAsync 메서드를 Recognize참조하세요.

SpeechDetected 대리자를 만들 때, 이벤트를 처리할 메서드를 식별합니다. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다. 이벤트 처리기 대리자에 대 한 자세한 내용은 참조 하세요. 이벤트 및 대리자합니다.

적용 대상

추가 정보