SpeechRecognitionEngine.UnloadGrammar(Grammar) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een opgegeven Grammar object uit het SpeechRecognitionEngine exemplaar verwijderd.
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)
Parameters
- grammar
- Grammar
Het grammaticaobject dat moet worden verwijderd.
Uitzonderingen
Grammar is null.
De grammatica wordt niet geladen in deze herkenning of deze recognizer laadt momenteel de grammatica asynchroon.
Voorbeelden
In het volgende voorbeeld ziet u een deel van een consoletoepassing die het synchron laden en lossen van grammatica's voor spraakherkenning laat zien.
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();
}
}
}
Opmerkingen
Als de recognizer wordt uitgevoerd, moeten toepassingen het RequestRecognizerUpdate exemplaar onderbreken voordat ze SpeechRecognitionEngine een Grammar object laden, lossen, inschakelen of uitschakelen. Als u alle Grammar objecten wilt verwijderen, gebruikt u de UnloadAllGrammars methode.