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 объекта указывает расположение во входном потоке, где распознаватель обнаружил речь. вызывает SpeechRecognitionEngineSpeechDetected событие до того, как оно вызывает любое из SpeechHypothesizedсобытий , SpeechRecognizedили SpeechRecognitionRejected .

Дополнительные сведения см. в методах Recognize, RecognizeAsync, EmulateRecognizeи EmulateRecognizeAsync .

При создании делегата SpeechDetected необходимо указать метод, обрабатывающий событие. Чтобы связать событие с обработчиком событий, нужно добавить в событие экземпляр делегата. Обработчик событий вызывается всякий раз, когда происходит событие, если делегат не удален. Дополнительные сведения о делегатах обработчика событий см. в разделе События и делегаты.

Применяется к

См. также раздел