SpeechRecognitionEngine.LoadGrammar(Grammar) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
同步載入 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
要載入的文法物件。
例外狀況
Grammar
為 null
。
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 方法。