Partager via


SpeechRecognizer.StateChanged Événement

Définition

Se produit lorsque l’état en cours d’exécution du moteur de reconnaissance vocale Windows Desktop Speech change.

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

Type d'événement

Exemples

L’exemple suivant crée un module de reconnaissance vocale partagée, puis crée deux types de grammaires pour reconnaître des mots spécifiques et accepter la dictée libre. L’exemple charge de manière asynchrone toutes les grammaires créées dans le module de reconnaissance. Un gestionnaire pour l’événement StateChanged utilise la méthode pour placer la EmulateRecognizeAsync reconnaissance Windows en mode « d’écoute ».

using System;
using System.Speech.Recognition;

namespace SampleRecognition
{
  class Program
  {
    private static SpeechRecognizer recognizer;
    public static void Main(string[] args)
    {

      // Initialize a shared speech recognition engine.
      recognizer = new SpeechRecognizer();

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

      // Add a handler for the StateChanged event.
      recognizer.StateChanged += new EventHandler<StateChangedEventArgs>(recognizer_StateChanged);

      // Create "yesno" grammar.
      Choices yesChoices = new Choices(new string[] { "yes", "yup", "yah}" });
      SemanticResultValue yesValue =
          new SemanticResultValue(yesChoices, (bool)true);
      Choices noChoices = new Choices(new string[] { "no", "nope", "nah" });
      SemanticResultValue noValue = new SemanticResultValue(noChoices, (bool)false);
      SemanticResultKey yesNoKey =
          new SemanticResultKey("yesno", new Choices(new GrammarBuilder[] { yesValue, noValue }));
      Grammar yesnoGrammar = new Grammar(yesNoKey);
      yesnoGrammar.Name = "yesNo";

      // Create "done" grammar.
      Grammar doneGrammar =
        new Grammar(new Choices(new string[] { "done", "exit", "quit", "stop" }));
      doneGrammar.Name = "Done";

      // Create dictation grammar.
      Grammar dictation = new DictationGrammar();
      dictation.Name = "Dictation";

      // Load grammars to the recognizer.
      recognizer.LoadGrammarAsync(yesnoGrammar);
      recognizer.LoadGrammarAsync(doneGrammar);
      recognizer.LoadGrammarAsync(dictation);

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

    // Put the shared speech recognizer into "listening" mode.
    static void  recognizer_StateChanged(object sender, StateChangedEventArgs e)
    {
     if (e.RecognizerState != RecognizerState.Stopped)
      {
        recognizer.EmulateRecognizeAsync("Start listening");
      }
    }

    // Write the text of the recognized phrase to the console.
    static void  recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
     Console.WriteLine("Grammar({0}): {1}", e.Result.Grammar.Name, e.Result.Text);

      // Add event handler code here.
    }

    // Handle the LoadGrammarCompleted event.
    static void  recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
    {
     string grammarName = e.Grammar.Name;
      bool grammarLoaded = e.Grammar.Loaded;
      if (e.Error != null)
      {
        Console.WriteLine("LoadGrammar for {0} failed with a {1}.",
        grammarName, e.Error.GetType().Name);
      }

      // Add exception handling code here.
      Console.WriteLine("Grammar {0} {1} loaded.",
      grammarName, (grammarLoaded) ? "is" : "is not");
    }
  }
}

Remarques

Le module de reconnaissance partagée déclenche cet événement lorsque l’état de la reconnaissance vocale Windows passe à l’état ou Stopped à l’étatListening.

Pour obtenir l’état du module de reconnaissance partagé au moment de l’événement, utilisez la RecognizerState propriété de l’élément associé StateChangedEventArgs. Pour obtenir l’état actuel du module de reconnaissance partagée, utilisez la propriété du module de State reconnaissance.

Lorsque vous créez un délégué pour un StateChanged événement, vous identifiez la méthode qui gère l’événement. Pour associer l’événement à votre gestionnaire d’événements, ajoutez une instance du délégué à l’événement. Le gestionnaire d’événements est appelé chaque fois que l’é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