SpeechRecognitionEngine::UnloadAllGrammars Method ()
.NET Framework (current version)
Unloads all Grammar objects from the recognizer.
Assembly: System.Speech (in System.Speech.dll)
If the recognizer is currently loading a Grammar asynchronously, this method waits until the Grammar is loaded, before it unloads all of the Grammar objects from the SpeechRecognitionEngine instance.
To unload a specific grammar, use the UnloadGrammar method.
The following example shows part of a console application that demonstrates the synchronous loading and unloading of speech recognition grammars.
Loading grammars... Loaded grammars: - Grammar1 - Grammar2 - Grammar3 Unloading Grammar1... Loaded grammars: - Grammar2 - Grammar3 Unloading all grammars... No grammars loaded. Press any key to exit...
using System; using System.Collections.Generic; using System.Globalization; using System.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(); } } }
.NET Framework
Available since 3.0
Available since 3.0
Show: