SpeechRecognitionEngine.SpeechRecognized 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 při příjmu SpeechRecognitionEngine vstupu, který odpovídá libovolnému z jeho načtených a povolených Grammar objektů.
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)
Event Type
Příklady
Následující příklad je součástí konzolové aplikace, která vytváří gramatiku rozpoznávání řeči, vytvoří Grammar objekt a načte ho do objektu SpeechRecognitionEngine pro rozpoznávání. Příklad ukazuje vstup řeči do , SpeechRecognitionEnginepřidružené výsledky rozpoznávání a přidružené události vyvolané rozpoznáváním řeči.
Mluvený vstup, například "Chci letět z Chicaga do Miami", aktivuje SpeechRecognized událost. Když mluvíte s frází "Fly me from Houston to Chicago" (Přiletět z Houstonu do Chicaga) neaktivuje SpeechRecognized událost.
Příklad používá obslužnou rutinu SpeechRecognized události k zobrazení úspěšně rozpoznaných frází a sémantiky, které obsahují v konzole.
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);
}
}
}
Poznámky
Operaci rozpoznávání můžete zahájit pomocí jedné z Recognize metod nebo RecognizeAsync metod. Rozpoznávání vyvolá SpeechRecognized událost, pokud zjistí, že vstup odpovídá jednomu z jeho načtených Grammar objektů s dostatečnou úrovní spolehlivosti pro rozpoznávání. Vlastnost ResultSpeechRecognitionRejectedEventArgs obsahuje akceptované RecognitionResult objekty. Obslužné rutiny SpeechRecognized událostí mohou získat rozpoznanou frázi a seznam rozpoznávání Alternates s nižšími skóre spolehlivosti.
Pokud vaše aplikace používá SpeechRecognitionEngine instanci, můžete upravit úroveň spolehlivosti, na které je vstup řeči přijat nebo odmítnut pomocí jedné z UpdateRecognizerSetting metod. Způsob, jakým rozpoznávání řeči reaguje na vstup bez řeči, můžete upravit pomocí parametru BabbleTimeout, InitialSilenceTimeoutEndSilenceTimeout, a EndSilenceTimeoutAmbiguous vlastností.
Když rozpoznávání obdrží vstup, který odpovídá gramatice, Grammar může objekt vyvolat událost SpeechRecognized . Událost Grammar objektu SpeechRecognized se vyvolá před událostí rozpoznávání SpeechRecognized řeči. Všechny úkoly specifické pro konkrétní gramatiku by měly vždy provádět obslužná rutina události SpeechRecognized .
Při vytváření delegáta SpeechRecognized 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 se volá při každém výskytu události, pokud delegáta neodeberete.