我在 Windows7 64 位的 VS2012 中使用 System.Speech.Recognition。
我的问题是,当用户开始说话时,识别引擎似乎会听到所说的所有内容(即整个句子“请关闭活动程序”)并尝试将整个句子与我的语法相匹配。由于可靠性,我不想匹配整个句子,只想听关键词,例如“关闭”和“活动程序”。
据我了解,引擎会将用户输入“请关闭活动程序”映射到单个正确响应,而我希望通过某种方式让它识别出该单个输入中有多个“命中”。
如果用户在每个单词之间放置间隙,那么我现在所拥有的效果很好,因此它们都作为单独的输入进行处理,但问题是当你正常说话并且它接受整个句子作为单个输入时。
有什么方法可以让引擎只检测输入中的关键词,而不必在我的语法中为整个输入找到匹配项?(或者可能是一种在我的语法中设置正则表达式的方法?)
我正在使用一个简单的 SpeechRecognitionEngine 和一个从 Choices 构建的语法。