SpeechRecognitionEngine.SpeechRecognized Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывается при SpeechRecognitionEngine получении входных данных, которые соответствуют любому из загруженных и включенных Grammar объектов.
public:
event EventHandler<System::Speech::Recognition::SpeechRecognizedEventArgs ^> ^ SpeechRecognized;
public event EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs>? SpeechRecognized;
public event EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs> SpeechRecognized;
member this.SpeechRecognized : EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs>
Public Custom Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs)
Public Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs)
Тип события
Примеры
Следующий пример является частью консольного приложения, которое создает грамматику распознавания речи, создает Grammar объект и загружает его в SpeechRecognitionEngine выполнение распознавания. В этом примере показаны входные данные речи в SpeechRecognitionEngineрезультаты, связанные с распознаванием речи и связанные события, вызванные распознавательом речи.
Разговорные входные данные, такие как "Я хочу летать из Чикаго в Майами" вызовет SpeechRecognized событие. Говоря фразу "Летать меня из Хьюстона в Чикаго" не будет активировать SpeechRecognized событие.
В примере используется обработчик события для SpeechRecognized отображения успешно распознанных фраз и семантики, содержащихся в консоли.
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 SemanticResultValue objects that contain cities and airport codes.
SemanticResultValue chicago = new SemanticResultValue("Chicago", "ORD");
SemanticResultValue boston = new SemanticResultValue("Boston", "BOS");
SemanticResultValue miami = new SemanticResultValue("Miami", "MIA");
SemanticResultValue dallas = new SemanticResultValue("Dallas", "DFW");
// Create a Choices object and add the SemanticResultValue objects, using
// implicit conversion from SemanticResultValue to GrammarBuilder
Choices cities = new Choices();
cities.Add(new Choices(new GrammarBuilder[] { chicago, boston, miami, dallas }));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Load the grammar object to the recognizer.
recognizer.LoadGrammarAsync(bookFlight);
// Set the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start recognition.
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Комментарии
Вы можете инициировать операцию распознавания с помощью одного из Recognize методов или RecognizeAsync методов. Распознаватель вызывает SpeechRecognized событие, если он определяет, что входные данные соответствуют одному из загруженных Grammar объектов с достаточным уровнем достоверности для распознавания. Свойство Result объекта SpeechRecognitionRejectedEventArgs содержит принятый RecognitionResult объект. Обработчики событий могут получить распознаваемую фразу, а также список распознавания SpeechRecognizedAlternates с более низким уровнем достоверности.
Если приложение использует SpeechRecognitionEngine экземпляр, вы можете изменить уровень достоверности, с помощью которого входные данные речи принимаются или отклонены с помощью одного из UpdateRecognizerSetting методов. Вы можете изменить способ реагирования распознавания речи на входные данные, отличные от речи, с помощью BabbleTimeoutсвойств , InitialSilenceTimeoutEndSilenceTimeoutи EndSilenceTimeoutAmbiguous свойств.
Когда распознаватель получает входные данные, соответствующие грамматике, Grammar объект может вызвать его SpeechRecognized событие. Событие Grammar объекта SpeechRecognized возникает до события распознавателя SpeechRecognized речи. Все задачи, относящиеся к определенной грамматике, всегда должны выполняться обработчиком события SpeechRecognized .
При создании делегата SpeechRecognized вы определите метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, добавьте экземпляр делегата в событие. Обработчик событий вызывается всякий раз, когда происходит событие, если вы не удалите делегат.