我正在编写一个应用程序,它应该监听用户命令并将键击发送到另一个程序 . 我正在使用语音识别引擎类,但我的脚本无法正常工作 .
如果我使用自定义语法(只有很少的单词,如“开始”或“退出”),程序将始终识别我的一个单词,即使我说的完全不同 . 对于istance,我说“stackoverflow”,程序识别“开始” .
使用默认字典,程序几乎不可能使用(我必须100%正确,否则它将无法理解) .
奇怪的是,如果我使用语音识别,而不是语音识别引擎我的程序运行完美,但ofcourse每次我说点什么无关它搅乱了,因为Windows语音识别处理结果,我不希望这种情况发生 . 这就是我实际使用语音识别引擎的原因 .
我究竟做错了什么?
Choices c = new Choices(new string[] { "use", "menu", "map", "save", "talk", "esc" });
GrammarBuilder gb = new GrammarBuilder(c);
Grammar g = new Grammar(gb);
sr = new SpeechRecognitionEngine();
sr.LoadGrammar(g);
sr.SetInputToDefaultAudioDevice();
sr.SpeechRecognized += sr_SpeechRecognized;
几乎忘了,我不知道这是否相关,但我使用的是Visual Studio 11 Ultimate Beta .
1 回答
对于检测到的每个语音识别结果,您还会获得识别的置信度 - 低置信度表示引擎对结果“不太确定”并且您可能想要拒绝它,例如: