SpeechRecognitionEngine.SpeechRecognitionRejected Ereignis

Definition

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

public:
 event EventHandler<System::Speech::Recognition::SpeechRecognitionRejectedEventArgs ^> ^ SpeechRecognitionRejected;
public event EventHandler<System.Speech.Recognition.SpeechRecognitionRejectedEventArgs> SpeechRecognitionRejected;
member this.SpeechRecognitionRejected : EventHandler<System.Speech.Recognition.SpeechRecognitionRejectedEventArgs> 
Public Event SpeechRecognitionRejected As EventHandler(Of SpeechRecognitionRejectedEventArgs) 
Public Custom Event SpeechRecognitionRejected As EventHandler(Of SpeechRecognitionRejectedEventArgs) 

Ereignistyp

Beispiele

Im folgenden Beispiel werden Ausdrücke wie "Liste der Künstler in der Kategorie Jazz anzeigen" oder "Album gospel anzeigen" erkannt. Im Beispiel wird ein Handler für das SpeechRecognitionRejected Ereignis verwendet, um eine Benachrichtigung in der Konsole anzuzeigen, wenn die Spracheingabe nicht mit dem Inhalt der Grammatik abgeglichen werden kann, der ausreichend Confidence ist, um eine erfolgreiche Erkennung zu erzeugen. Der Handler zeigt auch das Erkennungsergebnis Alternates an, das aufgrund der niedrigen Konfidenzwerte abgelehnt wurde.

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(new System.Globalization.CultureInfo("en-US")))  
      {  

        // Create a grammar.  
        //  Create lists of alternative choices.  
        Choices listTypes = new Choices(new string[] { "albums", "artists" });  
        Choices genres = new Choices(new string[] {   
          "blues", "classical", "gospel", "jazz", "rock" });  

        //  Create a GrammarBuilder object and assemble the grammar components.  
        GrammarBuilder mediaMenu = new GrammarBuilder("Display");  
        mediaMenu.Append("the list of", 0, 1);  
        mediaMenu.Append(listTypes);  
        mediaMenu.Append("in the", 0, 1);  
        mediaMenu.Append(genres);  
        mediaMenu.Append("category", 0, 1);  

        //  Build a Grammar object from the GrammarBuilder.  
        Grammar mediaMenuGrammar = new Grammar(mediaMenu);  
        mediaMenuGrammar.Name = "Media Chooser";  

        // Attach event handlers.  
        recognizer.LoadGrammarCompleted +=  
          new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  
        recognizer.SpeechRecognitionRejected +=  
          new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected);  

        // Load the grammar object to the recognizer.  
        recognizer.LoadGrammarAsync(mediaMenuGrammar);  

        // Set the input to the recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

        // Start recognition.  
        recognizer.RecognizeAsync(RecognizeMode.Multiple);  

        // Keep the console window open.  
        Console.ReadLine();  
      }  
    }  

    // Handle the SpeechRecognitionRejected event.  
    static void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)  
    {  
      Console.WriteLine("Speech input was rejected.");  
      foreach (RecognizedPhrase phrase in e.Result.Alternates)  
      {  
      Console.WriteLine("  Rejected phrase: " + phrase.Text);  
      Console.WriteLine("  Confidence score: " + phrase.Confidence);  
      }  
    }  

    // 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);  
      Console.WriteLine("  Confidence score: " + e.Result.Confidence);  
    }  
  }  
}  

Hinweise

Die Erkennung löst dieses Ereignis aus, wenn festgestellt wird, dass die Eingabe keines der geladenen und aktivierten Grammar Objekte mit ausreichender Zuverlässigkeit übereinstimmt. Die Result -Eigenschaft des SpeechRecognitionRejectedEventArgs enthält das abgelehnte RecognitionResult Objekt. Sie können den Handler für das SpeechRecognitionRejected Ereignis verwenden, um die Erkennung Alternates , die abgelehnt wurde, und deren Bewertungen Confidence abzurufen.

Wenn Ihre Anwendung einen 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.

Beim Erstellen eines SpeechRecognitionRejected-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