SpeechRecognizer.StateChanged SpeechRecognizer.StateChanged SpeechRecognizer.StateChanged SpeechRecognizer.StateChanged Event

Definizione

Viene generato quando lo stato di esecuzione del motore di riconoscimento della tecnologia Windows Desktop Speech viene modificato.Occurs when the running state of the Windows Desktop Speech Technology recognition engine changes.

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 Event StateChanged As EventHandler(Of StateChangedEventArgs) 

Esempi

Nell'esempio seguente crea un sistema di riconoscimento vocale condiviso e quindi crea due tipi di grammatiche per il riconoscimento delle parole specifiche e per accettare la dettatura gratuita.The following example creates a shared speech recognizer, and then creates two types of grammars for recognizing specific words and for accepting free dictation. Nell'esempio vengono caricati in modo asincrono tutte le grammatiche create per il riconoscimento.The example asynchronously loads all the created grammars to the recognizer. Un gestore per il StateChanged evento Usa i EmulateRecognizeAsync metodo per inserire il riconoscimento di Windows in modalità di "ascolto".A handler for the StateChanged event uses the EmulateRecognizeAsync method to put Windows Recognition in "listening" mode.

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

Commenti

Il riconoscimento condiviso genera questo evento quando viene modificato lo stato del riconoscimento vocale di Windows per il Listening o Stopped dello stato.The shared recognizer raises this event when the state of Windows Speech Recognition changes to the Listening or Stopped state.

Per ottenere lo stato del riconoscitore condiviso al momento dell'evento, usare il RecognizerState proprietà del controllo associato StateChangedEventArgs.To get the state of the shared recognizer at the time of the event, use the RecognizerState property of the associated StateChangedEventArgs. Per ottenere lo stato corrente del riconoscitore condiviso, usare il riconoscimento State proprietà.To get the current state of the shared recognizer, use the recognizer's State property.

Quando si crea un delegato per un StateChanged evento, si identifica il metodo che gestirà l'evento.When you create a delegate for a StateChanged event, you identify the method that will handle the event. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato.To associate the event with your event handler, add an instance of the delegate to the event. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non venga rimosso il delegato.The event handler is called whenever the event occurs, unless you remove the delegate. Per altre informazioni sui delegati del gestore eventi, vedere eventi e delegati.For more information about event-handler delegates, see Events and Delegates.

Si applica a

Vedi anche