Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让语音识别从句子中挑出一个单词_C#_Regex_Grammar_Voice Recognition_System.speech.recognition - Fatal编程技术网

C# 让语音识别从句子中挑出一个单词

C# 让语音识别从句子中挑出一个单词,c#,regex,grammar,voice-recognition,system.speech.recognition,C#,Regex,Grammar,Voice Recognition,System.speech.recognition,我正在Windows 7 64位上使用VS2012中的System.Speech.Recognition 我的问题是,当用户开始说话时,识别引擎似乎会听到所说的一切(即“请关闭活动程序”的整个句子),并尝试将整个句子与我的语法相匹配。由于可靠性,我不想匹配整个句子,只想听关键词,如“关闭”和“活动程序” 据我所知,引擎会将用户输入“请关闭活动程序”映射为一个正确的响应,同时我希望通过某种方式使其能够识别该单个输入中存在多个“点击” 如果用户在每个单词之间设置空格,使它们都作为单独的输入进行处理,

我正在Windows 7 64位上使用VS2012中的System.Speech.Recognition

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

据我所知,引擎会将用户输入“请关闭活动程序”映射为一个正确的响应,同时我希望通过某种方式使其能够识别该单个输入中存在多个“点击”

如果用户在每个单词之间设置空格,使它们都作为单独的输入进行处理,那么我现在所做的工作很好,但问题是当您正常说话时,它会将整个句子作为单个输入接受

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

我使用的是一个简单的SpeechRecognitionEngine,它的语法是根据选项构建的。

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