C# 使用Kinect识别句子中的关键词

C# 使用Kinect识别句子中的关键词,c#,kinect,speech-recognition,C#,Kinect,Speech Recognition,我是Kinect的第一位用户,希望编写一个应用程序,当它听到句子中的某个特定关键字(或关键字短语)时,该应用程序会做出响应。例如,如果短语是“那样”,我希望Kinect接受以下句子的匹配: “是这样的吗?” “我应该往这边走吗?” “这样做是否正确?” ……等等 在网上查看文档时,我得到的印象是Kinect只能通过语法类实现对话语的识别-本质上,在编写此应用程序之前,我必须了解所有包含这些关键字/短语的话语,而不是仅仅在一个更大的未知话语中匹配关键词/短语 这准确吗?或者有没有办法用Kine

我是Kinect的第一位用户,希望编写一个应用程序,当它听到句子中的某个特定关键字(或关键字短语)时,该应用程序会做出响应。例如,如果短语是“那样”,我希望Kinect接受以下句子的匹配:

  • “是这样的吗?”
  • “我应该往这边走吗?”
  • “这样做是否正确?”
……等等

在网上查看文档时,我得到的印象是Kinect只能通过
语法
类实现对话语的识别-本质上,在编写此应用程序之前,我必须了解所有包含这些关键字/短语的话语,而不是仅仅在一个更大的未知话语中匹配关键词/短语


这准确吗?或者有没有办法用Kinect做到这一点?

一般来说,是的-您的印象是正确的

首先要指出的是,Kinect实际上只是一个语音麦克风。它对语音处理没有任何作用,因此如果您找到一个更好地满足您需求的包,您就不必绑定到任何特定的库

使用Microsoft Speech时,您必须更清楚地了解要匹配的内容。寻找单独的单词(例如,“玛丽”和“羔羊”)并希望它能找到短语(例如,“玛丽有一只小羔羊”)将证明是困难的。以下两个链接将让您很好地了解Microsoft Speech的功能:

第二个链接是一个非常好的链接,它将向您展示如何定制语法查找,从而使您有更好的机会找到所需的内容。例如,添加可选单词和可选短语。对于更复杂的语法,SRGS格式的文件(在我看来)确实比代码好

但所有的希望都没有丧失。Microsoft Speech提供了一些可以帮助您解决问题的宝石

信心级别-您可以告诉引擎对词汇表要宽容一点。如果你只是在一个4-5个单词的短语中寻找2个单词,这可能会非常适合你!Millage根据应用程序的不同而不同,所以我不能确定它是否能满足您的需要。。。但这可能会有所帮助

假设语音-除了语音识别事件外,Microsoft Speech还有一个假设事件。它有点松散,可以捕捉属于较大短语的项目。再说一次,millage总是各种各样的,所以我不能肯定这将是解决方案


最后,您可以查看像Dragon Natural Speaking这样的软件包。像Dragon这样的公司已经投入了大量精力来创建软件包,使人们能够更自然地说话,而不必学习新的短语。

您可能会对以下答案感兴趣,以了解Kinect中实现的语音识别和关键字识别之间的区别谢谢您提供的所有这些信息。周末我有一些时间玩它,根据你的建议,我认为Kinect足以满足我的需求。你的帖子对那些不适合你的人来说是一个很好的资源。@Evil Closer Monkey是否有一些使用BabbleTimeout、EndSilenceTimeout、。。。让句子中的匹配词更容易?你有一个聪明的假设言语使用例子吗?@Jean-philippencausse-对不起,我以前没有用过
BabbleTimeout
endsilenetimeout
。我使用的
SpeechAspective
除了抓住一个短语的优势,或者采取行动,或者要求用户验证他们说了什么,然后回答“是”或“否”之外,没有其他功能。