SpeechRecognitionEngine.UnloadGrammar(Grammar) 메서드

정의

인스턴스에서 지정된 개체를 Grammar 언로드합니다 SpeechRecognitionEngine .

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

언로드할 문법 개체입니다.

예외

Grammarnull입니다.

문법이 이 인식기에서 로드되지 않거나 이 인식기가 현재 문법을 비동기적으로 로드하고 있습니다.

예제

다음 예제에서는 음성 인식 문법의 동기 로드 및 언로드를 보여 주는 콘솔 애플리케이션의 일부를 보여 줍니다.

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 합니다. 모든 Grammar 개체를 언로드하려면 메서드를 UnloadAllGrammars 사용합니다.

적용 대상

추가 정보