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