SpeechRecognitionEngine.SpeechRecognitionRejected Événement

Définition

Déclenché lorsque l'objet SpeechRecognitionEngine reçoit l'entrée qui ne correspond pas à l'un de ses objets Grammar chargés et activés.

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 Custom Event SpeechRecognitionRejected As EventHandler(Of SpeechRecognitionRejectedEventArgs) 
Public Event SpeechRecognitionRejected As EventHandler(Of SpeechRecognitionRejectedEventArgs) 

Type d'événement

Exemples

L’exemple suivant reconnaît des expressions telles que « Afficher la liste des artistes de la catégorie jazz » ou « Afficher des albums gospel ». L’exemple utilise un gestionnaire pour l’événement SpeechRecognitionRejected pour afficher une notification dans la console lorsque l’entrée vocale ne peut pas être mise en correspondance avec le contenu de la grammaire avec suffisamment Confidence pour produire une reconnaissance réussie. Le gestionnaire affiche également le résultat Alternates de reconnaissance qui a été rejeté en raison de scores de confiance faibles.

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

Remarques

Le module de reconnaissance déclenche cet événement s’il détermine que l’entrée ne correspond pas avec suffisamment de confiance à l’un de ses objets chargés et activés Grammar . La Result propriété de contient SpeechRecognitionRejectedEventArgs l’objet rejeté RecognitionResult . Vous pouvez utiliser le gestionnaire pour l’événement pour récupérer la SpeechRecognitionRejected reconnaissance Alternates qui a été rejetée et leurs Confidence scores.

Si votre application utilise une SpeechRecognitionEngine instance, vous pouvez modifier le niveau de confiance auquel l’entrée vocale est acceptée ou rejetée avec l’une UpdateRecognizerSetting des méthodes. Vous pouvez modifier la façon dont la reconnaissance vocale répond aux entrées non vocales à l’aide des BabbleTimeoutpropriétés , InitialSilenceTimeout, EndSilenceTimeoutet EndSilenceTimeoutAmbiguous .

Lorsque vous créez un délégué SpeechRecognitionRejected, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d’informations sur les délégués de gestionnaire d’événements, consultez Événements et délégués.

S’applique à

Voir aussi