SpeechRecognitionEngine.UnloadGrammar(Grammar) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Hebt ein angegebenes Grammar Objekt aus der SpeechRecognitionEngine Instanz auf.
public:
void UnloadGrammar(System::Speech::Recognition::Grammar ^ grammar);
public void UnloadGrammar(System.Speech.Recognition.Grammar grammar);
member this.UnloadGrammar : System.Speech.Recognition.Grammar -> unit
Public Sub UnloadGrammar (grammar As Grammar)
Parameter
- grammar
- Grammar
Das Grammatikobjekt, das entladen werden soll.
Ausnahmen
Grammar ist null.
Die Grammatik wird in dieser Erkennung nicht geladen, oder diese Erkennung lädt derzeit die Grammatik asynchron.
Beispiele
Das folgende Beispiel zeigt einen Teil einer Konsolenanwendung, die das synchrone Laden und Entladen von Spracherkennungsgrammatiken veranschaulicht.
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();
}
}
}
Hinweise
Wenn die Erkennung ausgeführt wird, müssen RequestRecognizerUpdate Anwendungen die Instanz vor dem SpeechRecognitionEngine Laden, Entladen, Aktivieren oder Deaktivieren eines Grammar Objekts anhalten. Verwenden Sie die UnloadAllGrammars Methode, um alle Grammar Objekte zu entladen.