SpeechRecognitionEngine.EmulateRecognizeCompleted Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывается при SpeechRecognitionEngine завершении асинхронной операции распознавания эмулированных входных данных.
public:
event EventHandler<System::Speech::Recognition::EmulateRecognizeCompletedEventArgs ^> ^ EmulateRecognizeCompleted;
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события , SpeechHypothesizedSpeechRecognitionRejectedи SpeechRecognized события. Это EmulateRecognizeCompleted событие является последним таким событием, которое распознаватель вызывает для данной операции.
Если эмулированное распознавание выполнено успешно, вы можете получить доступ к результату распознавания с помощью одного из следующих вариантов:
Свойство Result в объекте EmulateRecognizeCompletedEventArgs в обработчике EmulateRecognizeCompleted события.
Result свойство в объекте SpeechRecognizedEventArgs в обработчике SpeechRecognized события.
Если эмулированное распознавание не выполнено, SpeechRecognized событие не вызывается и Result значение null.
EmulateRecognizeCompletedEventArgs является производным от AsyncCompletedEventArgs.
SpeechRecognizedEventArgs является производным от RecognitionEventArgs.
При создании делегата EmulateRecognizeCompleted вы определите метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, добавьте экземпляр делегата в событие. Обработчик событий вызывается всякий раз, когда происходит событие, если вы не удалите делегат.