SpeechRecognitionEngine.UnloadGrammar(Grammar) メソッド
定義
Grammar インスタンスから、指定された SpeechRecognitionEngine オブジェクトをアンロードします。Unloads a specified Grammar object from the SpeechRecognitionEngine instance.
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)
パラメーター
- grammar
- Grammar
アンロードする文法オブジェクト。The grammar object to unload.
例外
Grammar
が null
です。Grammar
is null
.
文法は、この認識エンジンに読み込まれていないか、この認識エンジンは現在文法を非同期に読み込んでいます。The grammar is not loaded in this recognizer, or this recognizer is currently loading the grammar asynchronously.
例
次の例は、音声認識文法の同期読み込みとアンロードを示すコンソールアプリケーションの一部を示しています。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();
}
}
}
注釈
レコグナイザーが実行されている場合、アプリケーションは、を使用して、 RequestRecognizerUpdate SpeechRecognitionEngine オブジェクトの読み込み、アンロード、有効化、または無効化の前にインスタンスを一時停止する必要があり Grammar ます。If the recognizer is running, applications must use RequestRecognizerUpdate to pause the SpeechRecognitionEngine instance before loading, unloading, enabling, or disabling a Grammar object. すべてのオブジェクトをアンロードするには Grammar 、メソッドを使用し UnloadAllGrammars ます。To unload all Grammar objects, use the UnloadAllGrammars method.