SpeechRecognitionEngine.SpeechRecognized Événement

Définition

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

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) 

Type d'événement

Exemples

L’exemple suivant fait partie d’une application console qui crée une grammaire de reconnaissance vocale, construit un Grammar objet et le charge dans pour effectuer la SpeechRecognitionEngine reconnaissance. L’exemple illustre l’entrée vocale à un SpeechRecognitionEngine, les résultats de la reconnaissance associée et les événements associés déclenchés par le module de reconnaissance vocale.

Une entrée orale telle que « Je veux voler de Chicago à Miami » déclenche un SpeechRecognized événement. L’expression « Volez-moi de Houston à Chicago » ne déclenchera pas d’événement SpeechRecognized .

L’exemple utilise un gestionnaire pour l’événement SpeechRecognized afin d’afficher les expressions reconnues avec succès et la sémantique qu’elles contiennent dans la console.

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

Remarques

Vous pouvez lancer une opération de reconnaissance à l’aide de l’une des Recognize méthodes ou RecognizeAsync . Le module de reconnaissance déclenche l’événement SpeechRecognized s’il détermine que l’entrée correspond à l’un de ses objets chargés Grammar avec un niveau de confiance suffisant pour constituer une reconnaissance. La Result propriété de contient SpeechRecognitionRejectedEventArgs l’objet accepté RecognitionResult . Les gestionnaires d’événements SpeechRecognized peuvent obtenir l’expression reconnue ainsi qu’une liste de reconnaissance Alternates avec des scores de confiance inférieurs.

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 à l’aide de 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 le module de reconnaissance reçoit une entrée qui correspond à une grammaire, l’objet Grammar peut déclencher son SpeechRecognized événement. L’événement Grammar de l’objet SpeechRecognized est déclenché avant l’événement du module de SpeechRecognized reconnaissance vocale. Toutes les tâches spécifiques à une grammaire particulière doivent toujours être effectuées par un gestionnaire pour l’événement SpeechRecognized .

Lorsque vous créez un délégué SpeechRecognized, 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 gestionnaires d’événements, consultez Événements et délégués.

S’applique à

Voir aussi