SpeechRecognitionEngine..::..UnloadGrammar Method |
SpeechRecognitionEngine Class Example See Also Send Feedback |
Unloads a specified Grammar object from the SpeechRecognitionEngine instance.
Namespace:
Microsoft.Speech.Recognition
Assembly:
Microsoft.Speech (in Microsoft.Speech.dll)
Syntax
Visual Basic (Declaration) |
---|
Public Sub UnloadGrammar ( _ grammar As Grammar _ ) |
Visual Basic (Usage) |
---|
Dim instance As SpeechRecognitionEngine Dim grammar As Grammar instance.UnloadGrammar(grammar) |
C# |
---|
public void UnloadGrammar( Grammar grammar ) |
Parameters
- grammar
- Type: Microsoft.Speech.Recognition..::..Grammar
The grammar object to unload.
Remarks
If the Grammar specified by the grammar parameter is not currently loaded, TargetInvocationException will be generated.
If the recognizer is running, applications must use RequestRecognizerUpdate()()()() to pause the SpeechRecognitionEngine instance before loading, unloading, enabling, or disabling a Grammar object. To unload all Grammar objects, use the UnloadAllGrammars method.
Examples
The following example shows part of a console application that demonstrates the synchronous loading and unloading of speech recognition grammars.
Copy Code | |
---|---|
Loading grammars... Loaded grammars: - Grammar1 - Grammar2 - Grammar3 Unloading Grammar1... Loaded grammars: - Grammar2 - Grammar3 Unloading all grammars... No grammars loaded. Press any key to exit... |
C# | Copy Code |
---|---|
using System;
using System.Collections.Generic;
using System.Globalization;
using Microsoft.Speech.Recognition;
namespace UnloadGrammars
{
class Program
{
static void Main(string[] args)
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
Console.WriteLine("Loading grammars...");
// Create and load a number of grammars.
Grammar grammar1 = new Grammar(new GrammarBuilder("first grammar"));
grammar1.Name = "Grammar1";
recognizer.LoadGrammar(grammar1);
Grammar grammar2 = new Grammar(new GrammarBuilder("second grammar"));
grammar2.Name = "Grammar2";
recognizer.LoadGrammar(grammar2);
Grammar grammar3 = new Grammar(new GrammarBuilder("third grammar"));
grammar3.Name = "Grammar3";
recognizer.LoadGrammar(grammar3);
// List the recognizer's loaded grammars.
ListGrammars(recognizer);
// Unload one grammar and list the loaded grammars.
Console.WriteLine("Unloading Grammar1...");
recognizer.UnloadGrammar(grammar1);
ListGrammars(recognizer);
// Unload all grammars and list the loaded grammars.
Console.WriteLine("Unloading all grammars...");
recognizer.UnloadAllGrammars();
ListGrammars(recognizer);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
private static void ListGrammars(SpeechRecognitionEngine recognizer)
{
// Make a copy of the recognizer's grammar collection.
List<Grammar> loadedGrammars = new List<Grammar>(recognizer.Grammars);
if (loadedGrammars.Count > 0)
{
Console.WriteLine("Loaded grammars:");
foreach (Grammar g in recognizer.Grammars)
{
Console.WriteLine(" - {0}", g.Name);
}
}
else
{
Console.WriteLine("No grammars loaded.");
}
Console.WriteLine();
}
}
} |