SpeechRecognitionEngine.UnloadGrammar(Grammar) SpeechRecognitionEngine.UnloadGrammar(Grammar) SpeechRecognitionEngine.UnloadGrammar(Grammar) Method

定義

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

パラメーター

grammar
Grammar Grammar Grammar

アンロードする文法オブジェクト。The grammar object to unload.

例外

Grammarnullです。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.

適用対象

こちらもご覧ください