SpeechRecognitionEngine.LoadGrammar(Grammar) SpeechRecognitionEngine.LoadGrammar(Grammar) SpeechRecognitionEngine.LoadGrammar(Grammar) Method


Synchronously loads a Grammar object.

 void LoadGrammar(System::Speech::Recognition::Grammar ^ grammar);
public void LoadGrammar (System.Speech.Recognition.Grammar grammar);
member this.LoadGrammar : System.Speech.Recognition.Grammar -> unit


Grammar Grammar Grammar

The grammar object to load.



The following example shows part of a console application that demonstrates basic speech recognition. The example creates a DictationGrammar and loads it into a speech recognizer.

using System;  
using System.Speech.Recognition;  

namespace SpeechRecognitionApp  
  class Program  
    static void Main(string[] args)  

      // Create an in-process speech recognizer for the en-US locale.  
      using (  
      SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(  
          new System.Globalization.CultureInfo("en-US")))  

        // Create and load a dictation grammar.  
        recognizer.LoadGrammar(new DictationGrammar());  

        // Add a handler for the speech recognized event.  
        recognizer.SpeechRecognized +=   
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  

        // Configure input to the speech recognizer.  

        // Start asynchronous, continuous speech recognition.  

        // Keep the console window open.  
        while (true)  

    // Handle the SpeechRecognized event.  
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)  
      Console.WriteLine("Recognized text: " + e.Result.Text);  


The recognizer throws an exception if the Grammar object is already loaded, is being asynchronously loaded, or has failed to load into any recognizer. You cannot load the same Grammar object into multiple instances of SpeechRecognitionEngine. Instead, create a new Grammar object for each SpeechRecognitionEngine instance.

If the recognizer is running, applications must use RequestRecognizerUpdate to pause the speech recognition engine before loading, unloading, enabling, or disabling a grammar.

When you load a grammar, it is enabled by default. To disable a loaded grammar, use the Enabled property.

To load a Grammar object asynchronously, use the LoadGrammarAsync method.

Applies to

See also