SpeechRecognitionEngine.SpeechDetected Ereignis

Definition

Wird ausgelöst, wenn das SpeechRecognitionEngine eine Eingabe erkennt, die es als Sprache identifizieren 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 Ursprungs- und Zielstädten für einen 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 Sprache 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 einen Spracherkennungsvorgang ausführt, löst es das SpeechDetected Ereignis aus, wenn sein Algorithmus die Eingabe als Sprache identifiziert. Die AudioPosition -Eigenschaft des zugeordneten SpeechDetectedEventArgs Objekts gibt den Speicherort im Eingabedatenstrom an, an dem die Erkennung sprache erkannt hat. Löst SpeechRecognitionEngine das SpeechDetected -Ereignis aus, bevor eines der SpeechHypothesizedEreignisse , SpeechRecognizedoder SpeechRecognitionRejected ausgelöst wird.

Weitere Informationen finden Sie unter den RecognizeMethoden , RecognizeAsync, EmulateRecognizeund EmulateRecognizeAsync .

Beim Erstellen eines SpeechDetected-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Weitere Informationen zu Ereignishandlerdelegierten finden Sie unter Ereignisse und Delegaten.

Gilt für:

Weitere Informationen