SpeechRecognitionEngine.SpeechDetected 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 erkannt wird, die als Sprache identifiziert werden kann.
public:
event EventHandler<System::Speech::Recognition::SpeechDetectedEventArgs ^> ^ SpeechDetected;
public event EventHandler<System.Speech.Recognition.SpeechDetectedEventArgs> SpeechDetected;
member this.SpeechDetected : EventHandler<System.Speech.Recognition.SpeechDetectedEventArgs>
Public Custom Event SpeechDetected As EventHandler(Of SpeechDetectedEventArgs)
Public Event SpeechDetected As EventHandler(Of SpeechDetectedEventArgs)
Ereignistyp
Beispiele
Das folgende Beispiel ist Teil einer Konsolenanwendung zum Auswählen von Herkunfts- und Zielstädten für ein Flug. Die Anwendung erkennt Ausdrücke wie "Ich möchte von Miami nach Chicago fliegen". Im Beispiel wird das SpeechDetected Ereignis verwendet, um jedes Mal zu melden, wenn die AudioPosition Spracherkennung erkannt wird.
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 a grammar.
Choices cities = new Choices(new string[] {
"Los Angeles", "New York", "Chicago", "San Francisco", "Miami", "Dallas" });
GrammarBuilder gb = new GrammarBuilder();
gb.Append("I would like to fly from");
gb.Append(cities);
gb.Append("to");
gb.Append(cities);
// Create a Grammar object and load it to the recognizer.
Grammar g = new Grammar(gb);
g.Name = ("City Chooser");
recognizer.LoadGrammarAsync(g);
// Attach event handlers.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
recognizer.SpeechDetected +=
new EventHandler<SpeechDetectedEventArgs>(recognizer_SpeechDetected);
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Set the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start recognition.
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the SpeechDetected event.
static void recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e)
{
Console.WriteLine(" Speech detected at AudioPosition = {0}", e.AudioPosition);
}
// 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);
}
}
}
Hinweise
Jede Spracherkennung verfügt über einen Algorithmus, um zwischen Stille und Sprache zu unterscheiden. Wenn der SpeechRecognitionEngine Vorgang zur Spracherkennung ausgeführt wird, löst er das SpeechDetected Ereignis aus, wenn sein Algorithmus die Eingabe als Sprache identifiziert. Die AudioPosition Eigenschaft des zugeordneten SpeechDetectedEventArgs Objekts gibt die Position im Eingabedatenstrom an, an der die Erkennung spracherkennung erkannt hat. Das SpeechRecognitionEngine Ereignis wird ausgelöst SpeechDetected , bevor es eines der SpeechHypothesizedEreignisse SpeechRecognizedoder SpeechRecognitionRejected Ereignisse auslöst.
Weitere Informationen finden Sie unter den RecognizeMethoden , , RecognizeAsync, EmulateRecognizeund EmulateRecognizeAsync
Wenn Sie einen SpeechDetected 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. Weitere Informationen zu Ereignishandlerdelegatn finden Sie unter "Ereignisse und Stellvertretungen".