Share via


SpeechRecognitionEngine.LoadGrammarCompleted Olay

Tanım

bir nesnenin SpeechRecognitionEngine zaman uyumsuz yüklemesini Grammar tamamladığında tetiklenir.

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

Olay Türü

Örnekler

Aşağıdaki örnek bir işlem içi konuşma tanıyıcısı oluşturur ve ardından belirli sözcükleri tanımak ve ücretsiz dikteyi kabul etmek için iki tür dil bilgisi oluşturur. Örnek, tamamlanmış konuşma tanıma dil bilgisinin her birinden bir Grammar nesne oluşturur, ardından nesneleri zaman uyumsuz olarak örneğe SpeechRecognitionEngine yüklerGrammar. Tanıyıcının LoadGrammarCompleted ve SpeechRecognized olayların işleyicileri, konsola sırasıyla tanıma işlemini gerçekleştirmek için kullanılan nesnenin adını Grammar ve tanıma sonucunun metnini yazar.

using System;  
using System.Speech.Recognition;  

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

      // Initialize an in-process speech recognition engine and set its input.  
      recognizer = new SpeechRecognitionEngine();  
      recognizer.SetInputToDefaultAudioDevice();  

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

      // Create the "yesno" grammar.  
      Choices yesChoices = new Choices(new string[] { "yes", "yup", "yeah" });  
      SemanticResultValue yesValue =  
          new SemanticResultValue(yesChoices, (bool)true);  
      Choices noChoices = new Choices(new string[] { "no", "nope", "neah" });  
      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 the "done" grammar.  
      Grammar doneGrammar =  
        new Grammar(new Choices(new string[] { "done", "exit", "quit", "stop" }));  
      doneGrammar.Name = "Done";  

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

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

      // Start asynchronous, continuous recognition.  
      recognizer.RecognizeAsync(RecognizeMode.Multiple);  

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

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

    // Handle the SpeechRecognized event.  
    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.  
    }  
  }  
}  

Açıklamalar

Tanıyıcının LoadGrammarAsync yöntemi zaman uyumsuz bir işlem başlatır. işlemi SpeechRecognitionEngine tamamladığında bu olayı tetikler. Tanıyıcının Grammar yüklediğini nesnesini almak için, ilişkili LoadGrammarCompletedEventArgsözelliğini kullanınGrammar. Tanıyıcının yüklediği geçerli Grammar nesneleri almak için tanıyıcının Grammars özelliğini kullanın.

Tanıyıcı çalışıyorsa uygulamaların dil bilgisini yüklemeden, kaldırmadan, etkinleştirmeden veya devre dışı bırakmadan önce konuşma tanıma altyapısını duraklatmak için kullanması RequestRecognizerUpdate gerekir.

Bir LoadGrammarCompleted temsilci oluşturduğunuzda, olayı işleyecek yöntemi tanımlarsınız. Olayı olay işleyicinizle ilişkilendirmek için olaya temsilcinin bir örneğini ekleyin. Olay her gerçekleştiğinde, olay işleyici (siz temsilciyi kaldırmadığınız sürece) çağrılır. Olay işleyicisi temsilcileri hakkında daha fazla bilgi için bkz . Olaylar ve Temsilciler.

Şunlara uygulanır

Ayrıca bkz.