次の方法で共有


SpeechRecognitionEngine.UnloadAllGrammars メソッド

定義

すべての Grammar オブジェクトを認識エンジンから削除します。

public:
 void UnloadAllGrammars();
public void UnloadAllGrammars();
member this.UnloadAllGrammars : unit -> unit
Public Sub UnloadAllGrammars ()

次の例は、音声認識文法の同期読み込みとアンロードを示すコンソール アプリケーションの一部を示しています。

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();
    }
  }
}

注釈

認識エンジンが現在非同期的に を読み込んでいる場合、このメソッドは が読みGrammar込まれるまでGrammar待機してから、インスタンスからすべてのオブジェクトをGrammarSpeechRecognitionEngineアンロードします。

特定の文法をアンロードするには、 メソッドを使用します UnloadGrammar

適用対象

こちらもご覧ください