Freigeben über


SpeechRecognizer.SpeechRecognized Ereignis

Definition

Tritt auf, wenn die Erkennung Eingaben empfängt, die mit einer ihrer Spracherkennungsgrammatiken übereinstimmen.

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 eine Spracherkennungsgrammatik lädt und die Spracheingabe für die freigegebene Erkennung, die zugeordneten Erkennungsergebnisse und die zugehörigen Ereignisse veranschaulicht, die von der Spracherkennung ausgelöst werden. Wenn die Windows-Spracherkennung nicht ausgeführt wird, wird beim Starten dieser Anwendung auch die Windows-Spracherkennung gestartet.

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 a shared speech recognition engine.  
    {  
      using (SpeechRecognizer recognizer = new SpeechRecognizer())  
      {  

        // 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);  

        // 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

Die Erkennung löst das SpeechRecognized Ereignis aus, wenn sie mit ausreichender Zuverlässigkeit feststellt, dass die Eingabe mit einer der geladenen und aktivierten Spracherkennungsgrammatiken übereinstimmt. Die Result -Eigenschaft von SpeechRecognitionRejectedEventArgs enthält das akzeptierte RecognitionResult -Objekt.

Vertrauensschwellenwerte für die freigegebene Erkennung, die von SpeechRecognizerverwaltet wird, werden einem Benutzerprofil zugeordnet und in der Windows-Registrierung gespeichert. Anwendungen sollten keine Änderungen an der Registrierung für die Eigenschaften der freigegebenen Erkennung schreiben.

Wenn die Erkennung eine Eingabe empfängt, die mit einer Grammatik übereinstimmt, kann das Grammar -Objekt das SpeechRecognized -Ereignis auslösen. Das Grammar -Ereignis des SpeechRecognized Objekts wird vor dem Ereignis der Spracherkennung SpeechRecognized ausgelöst.

Wenn Sie einen Delegaten für ein SpeechRecognized Ereignis erstellen, identifizieren Sie die Methode, die das Ereignis behandelt. 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