SpeechRecognizer.SpeechRecognitionRejected Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда распознаватель получает входные данные, не соответствующие ни одной из загруженных грамматик распознавания речи.
public:
event EventHandler<System::Speech::Recognition::SpeechRecognitionRejectedEventArgs ^> ^ SpeechRecognitionRejected;
public event EventHandler<System.Speech.Recognition.SpeechRecognitionRejectedEventArgs> SpeechRecognitionRejected;
member this.SpeechRecognitionRejected : EventHandler<System.Speech.Recognition.SpeechRecognitionRejectedEventArgs>
Public Custom Event SpeechRecognitionRejected As EventHandler(Of SpeechRecognitionRejectedEventArgs)
Public Event SpeechRecognitionRejected As EventHandler(Of SpeechRecognitionRejectedEventArgs)
Тип события
Примеры
В следующем примере распознают такие фразы, как "Отображение списка исполнителей в джазовой категории" или "Отображение евангелия для альбомов". В примере используется обработчик события для SpeechRecognitionRejected отображения уведомления в консоли, когда входные данные речи не могут быть сопоставлены с содержимым грамматики с достаточной уверенностью для успешного распознавания.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize a shared speech recognition engine.
{
using (SpeechRecognizer recognizer =
new SpeechRecognizer())
{
// Create a grammar.
// Create lists of alternative choices.
Choices listTypes = new Choices(new string[] { "albums", "artists" });
Choices genres = new Choices(new string[] {
"blues", "classical", "gospel", "jazz", "rock" });
// Create a GrammarBuilder object and assemble the grammar components.
GrammarBuilder mediaMenu = new GrammarBuilder("Display");
mediaMenu.Append("the list of", 0, 1);
mediaMenu.Append(listTypes);
mediaMenu.Append("in the", 0, 1);
mediaMenu.Append(genres);
mediaMenu.Append("category", 0, 1);
// Build a Grammar object from the GrammarBuilder.
Grammar mediaMenuGrammar = new Grammar(mediaMenu);
mediaMenuGrammar.Name = "Media Chooser";
// Attach event handlers.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
recognizer.SpeechRecognitionRejected +=
new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected);
// Load the grammar object to the recognizer.
recognizer.LoadGrammarAsync(mediaMenuGrammar);
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the SpeechRecognitionRejected event.
static void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
{
Console.WriteLine("Speech input was rejected.");
}
// 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);
}
}
}
Комментарии
Общий распознаватель вызывает это событие, если определяет, что входные данные не соответствуют с достаточной достоверностью ни одной из загруженных грамматик распознавания речи. Свойство ResultSpeechRecognitionRejectedEventArgs объекта содержит отклоненный RecognitionResult объект.
Пороговые значения достоверности для общего распознавателя, управляемого с помощью SpeechRecognizer, связаны с профилем пользователя и хранятся в реестре Windows. Приложения не должны записывать изменения в реестр для свойств общего распознавателя.
При создании делегата SpeechRecognitionRejected для события определяется метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, нужно добавить в событие экземпляр делегата. Обработчик событий вызывается всякий раз, когда происходит событие, если делегат не удален. Дополнительные сведения о делегатах обработчика событий см. в разделе События и делегаты.