DictationGrammar Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Represents a speech recognition grammar used for free text dictation.

Namespace:   System.Speech.Recognition
Assembly:  System.Speech (in System.Speech.dll)


public class DictationGrammar : Grammar


Initializes a new instance of the DictationGrammar class for the default dictation grammar provided by Windows Desktop Speech Technology.


Initializes a new instance of the DictationGrammar class with a specific dictation grammar.


Gets or sets a value that controls whether a Grammar can be used by a speech recognizer to perform recognition.(Inherited from Grammar.)


Gets whether a grammar is strongly typed.(Inherited from Grammar.)


Gets whether a Grammar has been loaded by a speech recognizer.(Inherited from Grammar.)


Gets or sets the name of a Grammar object.(Inherited from Grammar.)


Gets or sets the priority value of a Grammar object.(Inherited from Grammar.)


Gets or sets a value with the name of a binary resource that was used to load the current Grammar.(Inherited from Grammar.)


Gets the name of the root rule or entry point of a Grammar object.(Inherited from Grammar.)


Gets or sets the weight value of a Grammar object.(Inherited from Grammar.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSetDictationContext(String, String)

Adds a context to a dictation grammar that has been loaded by a SpeechRecognizer or a SpeechRecognitionEngine object.


The StgInit method initializes a strongly-typed grammar.(Inherited from Grammar.)


Returns a string that represents the current object.(Inherited from Object.)


Raised when a speech recognizer performs recognition using the Grammar object.(Inherited from Grammar.)

This class provides applications with a predefined language model that can process spoken user input into text. This class supports both default and custom DictationGrammar objects. For information about selecting a dictation grammar, see the DictationGrammar(String) constructor.

By default, the DictationGrammar language model is context free. It does not make use of specific words or word order to identify and interpret audio input. To add context to the dictation grammar, use the SetDictationContext method.


DictationGrammar objects do not support the Priority property. DictationGrammar throws a NotSupportedException if Priority is set.

The following example creates three dictation grammars, adds them to a new SpeechRecognitionEngine object, and returns the new object. The first grammar is the default dictation grammar. The second grammar is the spelling dictation grammar. The third grammar is the default dictation grammar that includes a context phrase. The SetDictationContext method is used to associate the context phrase with the dictation grammar after it is loaded to the SpeechRecognitionEngine object.

private SpeechRecognitionEngine LoadDictationGrammars()

  // Create a default dictation grammar.
  DictationGrammar defaultDictationGrammar = new DictationGrammar();
  defaultDictationGrammar.Name = "default dictation";
  defaultDictationGrammar.Enabled = true;

  // Create the spelling dictation grammar.
  DictationGrammar spellingDictationGrammar =
    new DictationGrammar("grammar:dictation#spelling");
  spellingDictationGrammar.Name = "spelling dictation";
  spellingDictationGrammar.Enabled = true;

  // Create the question dictation grammar.
  DictationGrammar customDictationGrammar =
    new DictationGrammar("grammar:dictation");
  customDictationGrammar.Name = "question dictation";
  customDictationGrammar.Enabled = true;

  // Create a SpeechRecognitionEngine object and add the grammars to it.
  SpeechRecognitionEngine recoEngine = new SpeechRecognitionEngine();

  // Add a context to customDictationGrammar.
  customDictationGrammar.SetDictationContext("How do you", null);

  return recoEngine;

.NET Framework
Available since 3.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top