SpeechRecognitionEngine.SpeechDetected Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывается при SpeechRecognitionEngine обнаружении входных данных, которые он может идентифицировать как речь.
public:
event EventHandler<System::Speech::Recognition::SpeechDetectedEventArgs ^> ^ SpeechDetected;
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 Custom Event SpeechDetected As EventHandler(Of SpeechDetectedEventArgs)
Public 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 Вызывает SpeechDetected событие, прежде чем оно вызывает любое из SpeechHypothesizedсобытий SpeechRecognizedили SpeechRecognitionRejected событий.
Дополнительные сведения см. в Recognizeразделе , RecognizeAsyncEmulateRecognizeи EmulateRecognizeAsync методы.
При создании делегата SpeechDetected вы определите метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, добавьте экземпляр делегата в событие. Обработчик событий вызывается всякий раз, когда происходит событие, если вы не удалите делегат.