SpeechRecognitionEngine.SpeechRecognized Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wird ausgelöst, wenn die SpeechRecognitionEngine Eingabe mit einem der geladenen und aktivierten Grammar Objekte übereinstimmt.
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)
Ereignistyp
Beispiele
Das folgende Beispiel ist Teil einer Konsolenanwendung, die Spracherkennungsgrammatik erstellt, ein Grammar Objekt erstellt und in die SpeechRecognitionEngine Erkennung lädt. Das Beispiel veranschaulicht die Spracheingabe in ein SpeechRecognitionEngine, die zugehörigen Erkennungsergebnisse und die zugehörigen Ereignisse, die von der Spracherkennung ausgelöst werden.
Gesprochene Eingaben wie "Ich möchte von Chicago nach Miami fliegen" löst ein SpeechRecognized Ereignis aus. Wenn Sie den Ausdruck "Von Houston nach Chicago fliegen" sprechen, wird kein SpeechRecognized Ereignis ausgelöst.
Im Beispiel wird ein Handler für das SpeechRecognized Ereignis verwendet, um erfolgreich erkannte Ausdrücke und die Semantik anzuzeigen, die sie in der Konsole enthalten.
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);
}
}
}
Hinweise
Sie können einen Erkennungsvorgang mithilfe einer der Recognize Methoden oder RecognizeAsync Methoden initiieren. Die Erkennung löst das Ereignis aus, wenn festgestellt wird, dass die SpeechRecognized Eingabe einem seiner geladenen Grammar Objekte mit einem ausreichenden Konfidenzniveau übereinstimmt, um die Erkennung zu bilden. Die Result Eigenschaft des SpeechRecognitionRejectedEventArgs akzeptierten Objekts.RecognitionResult Handler von SpeechRecognized Ereignissen können den erkannten Ausdruck sowie eine Liste der Erkennung Alternates mit niedrigeren Konfidenzergebnissen abrufen.
Wenn Ihre Anwendung eine SpeechRecognitionEngine Instanz verwendet, können Sie den Konfidenzfaktor ändern, auf dem die Spracheingabe akzeptiert oder mit einer der UpdateRecognizerSetting Methoden abgelehnt wird. Sie können ändern, wie die Spracherkennung auf Nicht-Spracheingaben reagiert, indem Sie die BabbleTimeoutEigenschaften , InitialSilenceTimeout, und EndSilenceTimeoutEndSilenceTimeoutAmbiguous dies verwenden.
Wenn die Erkennung Eingaben empfängt, die einer Grammatik entsprechen, kann das Objekt sein GrammarSpeechRecognized Ereignis auslösen. Das Grammar Objektereignis SpeechRecognized wird vor dem Ereignis der Spracherkennung SpeechRecognized ausgelöst. Alle für eine bestimmte Grammatik spezifischen Aufgaben sollten immer von einem Handler für das SpeechRecognized Ereignis ausgeführt werden.
Wenn Sie einen SpeechRecognized Delegaten erstellen, identifizieren Sie die Methode, die das Ereignis behandelt. Um das Ereignis dem Ereignishandler zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird immer dann aufgerufen, wenn das Ereignis auftritt, es sei denn, Sie entfernen den Delegaten.