SpeechRecognitionEngine.SpeechRecognized Ereignis

Definition

Wird ausgelöst, wenn das SpeechRecognitionEngine eine Eingabe empfängt, die mit einem seiner geladenen und aktivierten Grammar-Objekte übereinstimmt.

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 Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs) 
Public Custom 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 lädt, um die SpeechRecognitionEngine Erkennung durchzuführen. Das Beispiel veranschaulicht die Spracheingabe für ein SpeechRecognitionEngine, die zugeordneten 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 Ereignis aus SpeechRecognized . Wenn sie den Ausdruck "Fly me from Houston to Chicago " (Fliegen Sie mich von Houston nach Chicago) 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 mit einer der Recognize Methoden oder RecognizeAsync initiieren. Die Erkennung löst das SpeechRecognized -Ereignis aus, wenn sie feststellt, dass die Eingabe mit einem seiner geladenen Grammar Objekte übereinstimmt, wobei ein ausreichendes Maß an Zuverlässigkeit für die Erkennung vorhanden ist. Die Result -Eigenschaft von SpeechRecognitionRejectedEventArgs enthält das akzeptierte RecognitionResult -Objekt. Handler von SpeechRecognized Ereignissen können den erkannten Ausdruck sowie eine Liste der Erkennung Alternates mit niedrigeren Konfidenzwerten abrufen.

Wenn Ihre Anwendung eine SpeechRecognitionEngine instance verwendet, können Sie mit einer der Methoden die Konfidenzstufe ändern, bei der UpdateRecognizerSetting Spracheingaben akzeptiert oder abgelehnt werden. Sie können ändern, wie die Spracherkennung auf Nicht-Spracheingaben reagiert, indem Sie die BabbleTimeoutEigenschaften , InitialSilenceTimeout, EndSilenceTimeoutund EndSilenceTimeoutAmbiguous verwenden.

Wenn die Erkennung eine Eingabe empfängt, die mit einer Grammatik übereinstimmt, kann das Grammar Objekt sein SpeechRecognized -Ereignis auslösen. Das Grammar -Ereignis des SpeechRecognized Objekts 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.

Beim Erstellen eines SpeechRecognized-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 Ereignishandlerdelegaten finden Sie unter Ereignisse und Delegaten.

Gilt für:

Weitere Informationen