SpeechRecognitionEngine.SpeechRecognitionRejected Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyvolá se, SpeechRecognitionEngine když obdrží vstup, který neodpovídá žádnému z načtených a povolených Grammar objektů.
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)
Event Type
Příklady
Následující příklad rozpozná fráze jako "Zobrazit seznam umělců v kategorii jazz" nebo "Zobrazit alba gospel". Příklad používá obslužnou rutinu události SpeechRecognitionRejected k zobrazení oznámení v konzole, když vstup řeči nemůže být spárován s obsahem gramatiky s dostatečným Confidence pro úspěšné rozpoznání. Obslužná rutina také zobrazí výsledek Alternates rozpoznávání, který byl odmítnut z důvodu nízkého skóre spolehlivosti.
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(new System.Globalization.CultureInfo("en-US")))
{
// 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);
// Set the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start recognition.
recognizer.RecognizeAsync(RecognizeMode.Multiple);
// 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.");
foreach (RecognizedPhrase phrase in e.Result.Alternates)
{
Console.WriteLine(" Rejected phrase: " + phrase.Text);
Console.WriteLine(" Confidence score: " + phrase.Confidence);
}
}
// 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);
Console.WriteLine(" Confidence score: " + e.Result.Confidence);
}
}
}
Poznámky
Rozpoznávání vyvolá tuto událost, pokud zjistí, že vstup neodpovídá s dostatečnou jistotou žádný z načtených a povolených Grammar objektů. Vlastnost ResultSpeechRecognitionRejectedEventArgs obsahuje odmítnutý RecognitionResult objekt. Obslužnou rutinu události můžete použít k SpeechRecognitionRejected načtení uznání Alternates , které byly odmítnuty, a jejich Confidence skóre.
Pokud vaše aplikace používá SpeechRecognitionEngine instanci, můžete upravit úroveň spolehlivosti, při které se přijímá nebo odmítá hlasový vstup, pomocí jedné z UpdateRecognizerSetting těchto metod. Způsob, jakým rozpoznávání řeči reaguje na jiný než řečový vstup, můžete změnit pomocí BabbleTimeoutvlastností , InitialSilenceTimeout, EndSilenceTimeouta EndSilenceTimeoutAmbiguous .
Při vytváření delegáta SpeechRecognitionRejected identifikujete metodu, která bude zpracovávat událost. Pokud chcete událost přidružit k obslužné rutině události, přidejte do události instanci delegáta. Obslužná rutina události je volána při každém výskytu události, dokud neodeberete delegáta. Další informace o delegátech obslužné rutiny událostí najdete v tématu Události a delegáti.