SpeechRecognitionEngine.SpeechRecognized Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zgłaszane, gdy SpeechRecognitionEngine odbiera dane wejściowe zgodne z dowolnym załadowanym Grammar i włączonym obiektem.
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)
Typ zdarzenia
Przykłady
Poniższy przykład jest częścią aplikacji konsolowej, która tworzy gramatykę Grammar rozpoznawania mowy, konstruuje obiekt i ładuje go do SpeechRecognitionEngine funkcji rozpoznawania. W tym przykładzie pokazano dane wejściowe mowy do SpeechRecognitionEngineelementu , skojarzone wyniki rozpoznawania i skojarzone zdarzenia zgłoszone przez rozpoznawanie mowy.
Mówione dane wejściowe, takie jak "Chcę latać z Chicago do Miami" wyzwoli SpeechRecognized wydarzenie. Mówiąc frazę "Fly me from Houston to Chicago" (Fly me from Houston to Chicago) nie wyzwoli SpeechRecognized wydarzenia.
W przykładzie SpeechRecognized użyto programu obsługi dla zdarzenia, aby wyświetlić pomyślnie rozpoznane frazy i semantyka, które zawierają w konsoli programu .
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);
}
}
}
Uwagi
Operację rozpoznawania można zainicjować przy użyciu jednej z Recognize metod lub RecognizeAsync . Rozpoznawanie SpeechRecognized zgłasza zdarzenie, jeśli określa, że dane wejściowe pasują do jednego z załadowanych Grammar obiektów z wystarczającym poziomem ufności do utworzenia rozpoznawania. Właściwość Result obiektu SpeechRecognitionRejectedEventArgs zawiera zaakceptowany RecognitionResult obiekt. Programy obsługi zdarzeń SpeechRecognized mogą uzyskać rozpoznaną frazę, a także listę rozpoznawania Alternates z niższymi wynikami ufności.
Jeśli aplikacja używa SpeechRecognitionEngine wystąpienia, możesz zmodyfikować poziom ufności, na którym dane wejściowe mowy są akceptowane lub odrzucane przy użyciu jednej z UpdateRecognizerSetting metod. Możesz zmodyfikować sposób reagowania rozpoznawania mowy na dane wejściowe inne niż mowa przy użyciu BabbleTimeoutwłaściwości , , InitialSilenceTimeoutEndSilenceTimeouti EndSilenceTimeoutAmbiguous .
Gdy rozpoznawanie odbiera dane wejściowe zgodne z gramatyką, Grammar obiekt może zgłosić zdarzenie SpeechRecognized . Zdarzenie Grammar obiektu SpeechRecognized jest zgłaszane przed zdarzeniem rozpoznawania SpeechRecognized mowy. Wszystkie zadania specyficzne dla określonej gramatyki powinny być zawsze wykonywane przez program obsługi dla SpeechRecognized zdarzenia.
Podczas tworzenia delegata należy zidentyfikować metodę SpeechRecognized , która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z procedurą obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Procedura obsługi zdarzeń jest wywoływana za każdym razem, gdy wystąpi zdarzenie, chyba że usuniesz delegata.