SpeechRecognitionEngine.EmulateRecognizeCompleted Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возникает, если SpeechRecognitionEngine оформляет асинхронную операцию распознавания эмулированного ввода.
public:
event EventHandler<System::Speech::Recognition::EmulateRecognizeCompletedEventArgs ^> ^ EmulateRecognizeCompleted;
public event EventHandler<System.Speech.Recognition.EmulateRecognizeCompletedEventArgs> EmulateRecognizeCompleted;
member this.EmulateRecognizeCompleted : EventHandler<System.Speech.Recognition.EmulateRecognizeCompletedEventArgs>
Public Custom Event EmulateRecognizeCompleted As EventHandler(Of EmulateRecognizeCompletedEventArgs)
Public Event EmulateRecognizeCompleted As EventHandler(Of EmulateRecognizeCompletedEventArgs)
Тип события
Примеры
Следующий пример является частью консольного приложения, которое загружает грамматику распознавания речи и демонстрирует асинхронные эмулированные входные данные, связанные результаты распознавания и связанные события, вызванные распознавателями речи.
using System;
using System.Speech.Recognition;
using System.Threading;
namespace InProcessRecognizer
{
class Program
{
// Indicate whether the asynchronous emulate recognition
// operation has completed.
static bool completed;
static void Main(string[] args)
{
// Initialize an instance of an in-process recognizer.
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
{
// Create and load a sample grammar.
Grammar testGrammar =
new Grammar(new GrammarBuilder("testing testing"));
testGrammar.Name = "Test Grammar";
recognizer.LoadGrammar(testGrammar);
// Attach event handlers for recognition events.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(SpeechRecognizedHandler);
recognizer.EmulateRecognizeCompleted +=
new EventHandler<EmulateRecognizeCompletedEventArgs>(
EmulateRecognizeCompletedHandler);
completed = false;
// This EmulateRecognizeAsync call matches the grammar
// and generates a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing testing");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
completed = false;
// This EmulateRecognizeAsync call does not match the grammar
// or generate a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing one two three");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the SpeechRecognized event.
static void SpeechRecognizedHandler(
object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null)
{
Console.WriteLine("Result of 1st call to EmulateRecognizeAsync = {0}",
e.Result.Text ?? "<no text>");
Console.WriteLine();
}
else
{
Console.WriteLine("No recognition result");
}
}
// Handle the EmulateRecognizeCompleted event.
static void EmulateRecognizeCompletedHandler(
object sender, EmulateRecognizeCompletedEventArgs e)
{
if (e.Result == null)
{
Console.WriteLine("Result of 2nd call to EmulateRecognizeAsync = No result generated.");
}
// Indicate the asynchronous operation is complete.
completed = true;
}
}
}
Комментарии
Каждый EmulateRecognizeAsync метод начинает асинхронную операцию распознавания. вызывает SpeechRecognitionEngine событие при EmulateRecognizeCompleted завершении асинхронной операции.
Операция EmulateRecognizeAsync может вызывать SpeechDetectedсобытия , SpeechHypothesized, SpeechRecognitionRejectedи SpeechRecognized . Событие EmulateRecognizeCompleted является последним таким событием, которое распознаватель вызывает для данной операции.
Если эмулированное распознавание прошло успешно, вы можете получить доступ к результату распознавания с помощью следующего:
Свойство Result в объекте EmulateRecognizeCompletedEventArgs в обработчике события EmulateRecognizeCompleted .
Result свойство в объекте SpeechRecognizedEventArgs в обработчике SpeechRecognized события.
Если эмулированное распознавание не было успешным, SpeechRecognized событие не вызывается и Result будет иметь значение NULL.
Интерфейс EmulateRecognizeCompletedEventArgs является производным от интерфейса AsyncCompletedEventArgs.
Интерфейс SpeechRecognizedEventArgs является производным от интерфейса RecognitionEventArgs.
При создании делегата EmulateRecognizeCompleted определяется метод обработки события. Чтобы связать событие с обработчиком событий, нужно добавить в событие экземпляр делегата. Обработчик событий вызывается всякий раз, когда происходит событие, если делегат не удален. Дополнительные сведения о делегатах обработчика событий см. в разделе События и делегаты.