Partager via


SpeechRecognitionEngine.UnloadGrammar(Grammar) Méthode

Définition

Décharge un objet Grammar spécifié de l'instance 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)

Paramètres

grammar
Grammar

Objet de grammaire à décharger.

Exceptions

Grammar a la valeur null.

La grammaire n'est pas chargée dans ce module de reconnaissance, ou ce module de reconnaissance charge actuellement la grammaire de façon asynchrone.

Exemples

L’exemple suivant montre une partie d’une application console qui illustre le chargement et le déchargement synchrones des grammaires de reconnaissance vocale.

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

Remarques

Si le module de reconnaissance est en cours d’exécution, les applications doivent utiliser RequestRecognizerUpdate pour suspendre l’instance SpeechRecognitionEngine avant de charger, de décharger, d’activer ou de désactiver un Grammar objet. Pour décharger tous les Grammar objets, utilisez la UnloadAllGrammars méthode .

S’applique à

Voir aussi