2012-11-09 32 views
3

我是Kinect用户的第一次寻找编程应用程序,当它听到句子中的特定关键字(或关键词)时会作出响应。例如,如果该短语是“这样”,我想Kinect的接受作为下列句子匹配:“难道是这样使用Kinect识别句子中的关键词

  • “我应该去这种方式?”
  • “是这种方式是否正确?”

...等等。

环顾在线文档,我觉得Kinect只能通过Grammar类实现对话语的识别 - 实质上,在编写此应用程序之前,我必须知道包含这些关键字/短语的所有话语,而不是只能匹配更大,未知话语中的关键字/短语。

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

+1

您可能对以下答案感兴趣,以了解Kinect中实现的语音识别和关键词识别之间的区别http://stackoverflow.com/a/12823055/432021 –

回答

2

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

首先要指出的是Kinect实际上只是一个用于语音的麦克风。它对语音处理没有任何作用,所以如果你找到一个能够更好地满足你的需求的软件包,你就不会被绑定到任何特定的库。

使用微软语音时,您必须更清楚您想要匹配的内容。寻找单词(例如,“玛丽”和“羔羊”)并且希望它会提取短语(例如,“玛丽有一只小羊羔”)将很困难。这里有两个链接,会给你什么是可能与微软的语音是一个好主意:

第二个环节是一个非常好的一个,会告诉你如何可以调整语法查找的方式,这会让您更好地找到您要查找的内容。例如,添加可选单词和替代短语。对于更复杂的语法,SRGS格式的文件实际上是(我认为)通过代码的方式。

但是所有的希望都不会丢失。微软演讲提供了几个宝石,可以帮助你...

置信水平 - 你可以告诉引擎对词汇更宽松一点。如果你只是用4-5字的词组来查找2个单词,这对你来说可能会奏效! Millage根据不同的应用而有所不同,所以我无法确定它会满足您的需求......但它可能有所帮助。

言语虚拟 - 除语音识别事件外,Microsoft Speech还有一个虚拟事件。它稍微宽松一点,可以捕捉属于较大短语的项目。再次,耕种总是各种各样,所以我不能肯定地说这将是解决方案 http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognizer.speechhypothesized.aspx

最后一点,你可以看看像龙Natural Speaking这样的软件包。像Dragon这样的公司已经投入了大量的精力来创建软件包,让人们更自然地讲话,而不需要学习一组新词组。

+0

感谢您提供所有这些信息。我有一段时间可以在周末使用它,并且 - 使用您的建议 - 我认为Kinect足以满足我的需求。对于那些不会为之工作的人来说,你的文章是一个很好的资源。 –

+0

@魔鬼衣橱猴子有一些使用BabbleTimeout,EndSilenceTimeout,...来缓解匹配单词中的一句话?你有一个聪明的使用语言假设的例子吗? –

+0

@ Jean-PhilippeEncausse - 抱歉,我之前没有使用过'BabbleTimeout'或'EndSilenceTimeout'。我没有使用“SpeechHypothesized”,它不仅仅是利用抓住一个短语并对其采取行动,或者要求用户验证他们是否说过并回答“是”或“否”。 –