SpeechRecognizer.LoadGrammar(Grammar) Yöntem

Tanım

Konuşma tanıma dil bilgisini 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 dil bilgisi.

Örnekler

Aşağıdaki örnek, konuşma tanıma dil bilgisini 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 tetiklenen ilişkili olayları gösteren bir konsol uygulamasının parçasıdır. Windows Konuşma Tanıma çalışmıyorsa, bu uygulamanın başlatılması Windows Konuşma Tanıma'yı da başlatır. Windows Konuşma Tanıma Uyku durumundaysa, EmulateRecognizeAsync her zaman null 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

Paylaşılan tanıyıcı, konuşma tanıma dil bilgisi zaten yüklüyse, zaman uyumsuz olarak yükleniyorsa veya herhangi bir tanıyıcıya yüklenemediyse bir özel durum oluşturur. Tanıyıcı çalışıyorsa, uygulamaların dil bilgisini yüklemeden, kaldırmadan, etkinleştirmeden veya devre dışı bırakmadan önce konuşma tanıma altyapısını duraklatmak için kullanması RequestRecognizerUpdate gerekir.

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

Şunlara uygulanır

Ayrıca bkz.