SpeechRecognitionEngine.LoadGrammar(Grammar) 方法

定义

同步加载 Grammar 对象。

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)

参数

grammar
Grammar

要加载的语法对象。

例外

Grammarnull

Grammar 不在有效状态中。

示例

下面的示例演示了演示基本语音识别的控制台应用程序的一部分。 该示例创建一个 DictationGrammar 并将其加载到语音识别器。

using System;  
using System.Speech.Recognition;  

namespace SpeechRecognitionApp  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  

      // Create an in-process speech recognizer for the en-US locale.  
      using (  
      SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(  
          new System.Globalization.CultureInfo("en-US")))  
      {  

        // Create and load a dictation grammar.  
        recognizer.LoadGrammar(new DictationGrammar());  

        // Add a handler for the speech recognized event.  
        recognizer.SpeechRecognized +=   
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  

        // Configure input to the speech recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

        // Start asynchronous, continuous speech recognition.  
        recognizer.RecognizeAsync(RecognizeMode.Multiple);  

        // Keep the console window open.  
        while (true)  
        {  
          Console.ReadLine();  
        }  
      }  
    }  

    // Handle the SpeechRecognized event.  
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)  
    {  
      Console.WriteLine("Recognized text: " + e.Result.Text);  
    }  
  }  
}  

注解

如果 Grammar 对象已加载、正在异步加载或者未能加载到任何识别器中,则识别器会引发异常。 不能将同一个 Grammar 对象加载到的多个实例中 SpeechRecognitionEngine 。 应 Grammar 为每个实例创建一个新的对象 SpeechRecognitionEngine

如果识别器正在运行,则应用程序必须使用在 RequestRecognizerUpdate 加载、卸载、启用或禁用语法之前暂停语音识别引擎。

加载语法时,它默认处于启用状态。 若要禁用已加载的语法,请使用 Enabled 属性。

若要以 Grammar 异步方式加载对象,请使用 LoadGrammarAsync 方法。

适用于

另请参阅