Sdílet prostřednictvím


SpeechRecognizer.LoadGrammar(Grammar) Metoda

Definice

Načte gramatiku rozpoznávání řeči.

public:
 void LoadGrammar(System::Speech::Recognition::Grammar ^ grammar);
public void LoadGrammar (System.Speech.Recognition.Grammar grammar);
member this.LoadGrammar : System.Speech.Recognition.Grammar -> unit
Public Sub LoadGrammar (grammar As Grammar)

Parametry

grammar
Grammar

Gramatika rozpoznávání řeči, která se má načíst

Příklady

Následující příklad je součástí konzolové aplikace, která načte gramatiku rozpoznávání řeči a znázorňuje asynchronní emulované vstupy, přidružené výsledky rozpoznávání a související události vyvolané nástrojem pro rozpoznávání řeči. Pokud rozpoznávání řeči systému Windows není spuštěno, spuštění této aplikace také spustí rozpoznávání řeči systému Windows. Pokud je rozpoznávání řeči systému Windows v režimu spánku , EmulateRecognizeAsync vždy vrátí hodnotu null.

using System;  
using System.Speech.Recognition;  
using System.Threading;  

namespace SharedRecognizer  
{  
  class Program  
  {  
    // Indicate whether the asynchronous emulate recognition  
    // operation has completed.  
    static bool completed;  

    static void Main(string[] args)  
    {  
      // Initialize an instance of the shared recognizer.  
      using (SpeechRecognizer recognizer = new SpeechRecognizer())  
      {  
        // Create and load a sample grammar.  
        Grammar testGrammar =  
          new Grammar(new GrammarBuilder("testing testing"));  
        testGrammar.Name = "Test Grammar";  

        recognizer.LoadGrammar(testGrammar);  

        // Attach event handlers for recognition events.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(  
            SpeechRecognizedHandler);  
        recognizer.EmulateRecognizeCompleted +=  
          new EventHandler<EmulateRecognizeCompletedEventArgs>(  
            EmulateRecognizeCompletedHandler);  

        completed = false;  

        // This EmulateRecognizeAsync call generates a SpeechRecognized event.  
        recognizer.EmulateRecognizeAsync("testing testing");  

        // Wait for the asynchronous operation to complete.  
        while (!completed)  
        {  
          Thread.Sleep(333);  
        }  

        completed = false;  

        // This EmulateRecognizeAsync call does not match the grammar   
        // or generate a SpeechRecognized event.  
        recognizer.EmulateRecognizeAsync("testing one two three");  

        // Wait for the asynchronous operation to complete.  
        while (!completed)  
        {  
          Thread.Sleep(333);  
        }  
      }  

      Console.WriteLine();  
      Console.WriteLine("Press any key to exit...");  
      Console.ReadKey();  
    }  

    // Handle the SpeechRecognized event.  
    static void SpeechRecognizedHandler(  
      object sender, SpeechRecognizedEventArgs e)  
    {  
      if (e.Result != null)  
      {  
        Console.WriteLine("Recognition result = {0}",  
          e.Result.Text ?? "<no text>");  
      }  
      else  
      {  
        Console.WriteLine("No recognition result");  
      }  
    }   

    // Handle the EmulateRecognizeCompleted event.   
    static void EmulateRecognizeCompletedHandler(  
      object sender, EmulateRecognizeCompletedEventArgs e)  
    {  
      if (e.Result == null)  
      {  
        Console.WriteLine("No result generated.");  
      }  

      completed = true;  
    }  
  }  
}  

Poznámky

Sdílený Nástroj pro rozpoznávání vyvolá výjimku, pokud je již načtena gramatika rozpoznávání řeči, je asynchronně načtena nebo se nemohla načíst do žádného nástroje pro rozpoznávání. Pokud je spuštěný Nástroj pro rozpoznávání řeči, aplikace musí RequestRecognizerUpdate před načtením, uvolněním, povolením nebo zakázáním gramatiky pozastavit modul pro rozpoznávání řeči.

Chcete-li spustit gramatiku rozpoznávání řeči asynchronně, použijte LoadGrammarAsync metodu.

Platí pro

Viz také