Aracılığıyla paylaş


SpeechRecognizer.LoadGrammar(Grammar) Yöntem

Tanım

Konuşma tanıma dilbilgisini yükler.

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)

Parametreler

grammar
Grammar

Yüklenecek konuşma tanıma dilbilgisinde.

Örnekler

Aşağıdaki örnek, bir konuşma tanıma dilbilgisini yükleyen ve zaman uyumsuz öykünülmüş girişi, ilişkili tanıma sonuçlarını ve konuşma tanıyıcı tarafından oluşturulan ilişkili olayları gösteren bir konsol uygulamasının parçasıdır. Windows Konuşma tanıma çalışmıyorsa, bu uygulamayı başlatmak Windows Konuşma tanıma 'Yı da başlatacak. Windows Konuşma tanıma uyku durumundaysa, EmulateRecognizeAsync her zaman null değerini döndürür.

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

Açıklamalar

Konuşma tanıma dilbilgisinde zaten yüklüyse, zaman uyumsuz olarak yüklenirse veya herhangi bir tanıyıcıya yüklenemiyorsa, paylaşılan tanıyıcı bir özel durum oluşturur. Tanıyıcı çalışıyorsa, uygulamaların RequestRecognizerUpdate bir dilbilgisini yüklemeden, kaldırmadan, etkinleştirmeden veya devre dışı bırakamadan konuşma tanıma altyapısını duraklatmak için kullanması gerekir.

Konuşma tanıma dilbilgisini zaman uyumsuz olarak yüklemek için yöntemini kullanın LoadGrammarAsync .

Şunlara uygulanır

Ayrıca bkz.