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 方法。

適用於

另請參閱