SpeechRecognizer::Grammars Property

 

Gets a collection of the Grammar objects that are loaded in this SpeechRecognizer instance.

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

public:
property ReadOnlyCollection<Grammar^>^ Grammars {
	ReadOnlyCollection<Grammar^>^ get();
}

Property Value

Type: System.Collections.ObjectModel::ReadOnlyCollection<Grammar^>^

A collection of the Grammar objects that the application loaded into the current instance of the shared recognizer.

This property does not return any speech recognition grammars loaded by another application.

The following example outputs information to the console for each speech recognition grammar loaded into the shared speech recognizer.


using System;
using System.Collections.Generic;
using System.Speech.Recognition;
using System.Threading;

namespace SharedRecognizer
{
  class Program
  {
    static void Main(string[] args)
    {
      using (SpeechRecognizer recognizer = new SpeechRecognizer())
      {
        Grammar sampleGrammar = new Grammar(new GrammarBuilder("sample phrase"));
        sampleGrammar.Name = "Sample Grammar";
        recognizer.LoadGrammar(sampleGrammar);

        OutputGrammarList(recognizer);
      }

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    private static void OutputGrammarList(SpeechRecognizer recognizer)
    {
      List<Grammar> grammars = new List<Grammar>(recognizer.Grammars);
      if (grammars.Count > 0)
      {
        Console.WriteLine("Loaded grammars:");
        foreach (Grammar g in grammars)
        {
          Console.WriteLine("  Grammar: {0}",
            (g.Name != null) ? g.Name : "<no name>");
        }
      }
      else
      {
        Console.WriteLine("No grammars loaded.");
      }
    }
}

.NET Framework
Available since 3.0
Return to top
Show: