2

我在 Windows7 64 位的 VS2012 中使用 System.Speech.Recognition。

我的问题是,当用户开始说话时,识别引擎似乎会听到所说的所有内容(即整个句子“请关闭活动程序”)并尝试将整个句子与我的语法相匹配。由于可靠性,我不想匹配整个句子,只想听关键词,例如“关闭”和“活动程序”。

据我了解,引擎会将用户输入“请关闭活动程序”映射到单个正确响应,而我希望通过某种方式让它识别出该单个输入中有多个“命中”。

如果用户在每个单词之间放置间隙,那么我现在所拥有的效果很好,因此它们都作为单独的输入进行处理,但问题是当你正常说话并且它接受整个句子作为单个输入时。

有什么方法可以让引擎只检测输入中的关键词,而不必在我的语法中为整个输入找到匹配项?(或者可能是一种在我的语法中设置正则表达式的方法?)

我正在使用一个简单的 SpeechRecognitionEngine 和一个从 Choices 构建的语法。

4

1 回答 1

1

您需要在您的选择中包含垃圾规则,然后它将能够将句子的其他部分与垃圾匹配。但是,使用识别器实现关键字定位并不简单,因为您将无法正确调整检测/误报率。专门的解决方案可能会更好。

于 2014-05-30T15:53:30.010 回答