请查看以下代码
private void button2_Click(object sender, EventArgs e)
{
SpeechRecognizer sr = new SpeechRecognizer();
Choices colors = new Choices();
colors.Add(new string[] { "red arrow", "green", "blue" });
GrammarBuilder gb = new GrammarBuilder();
gb.Append(colors);
Grammar g = new Grammar(gb);
sr.LoadGrammar(g);
// SpeechSynthesizer s = new SpeechSynthesizer();
// s.SpeakAsync("start speaking");
sr.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sr_SpeechRecognized);
}
void sr_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
MessageBox.Show(e.Result.Text);
}
这是使用MS语音引擎的普通语音识别代码。你可以在这里看到我加载了一些语法。但是,也有一个问题。也就是说,这不仅仅响应给定的语法,而且还响应MS内置语音命令!像语音命令,以最小化窗口,打开开始菜单等!
我真的不需要那个。我的应用程序应该只响应我的语法而不是MS内置命令。有没有办法实现这个目标?
答案 0 :(得分:1)
SpeechRecognizer
对象建立在现有Windows语音系统之上。来自MSDN:
应用程序使用共享识别器访问Windows语音 承认。使用SpeechRecognizer对象添加到Windows 语音用户体验。
考虑使用SpeechRecognitionEngine对象,因为它在进程内而不是在系统范围内运行。