3

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

  • “是这样吗?”
  • “我应该走这条路吗?”
  • 这种方式正确吗?”

...等等。

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

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

4

1 回答 1

2

一般来说,是的——你的印象是正确的。

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

使用 Microsoft Speech 时,您必须更清楚要匹配的内容。寻找单个单词(例如,“Mary”和“Lamb”)并希望它能够找到短语(例如,“Mary had a little lamb”)将被证明是困难的。这里有两个链接可以让您很好地了解 Microsoft Speech 的功能:

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

但所有的希望都没有丢失。Microsoft Speech 提供了一些可以帮助您的宝石...

置信水平- 您可以告诉引擎对词汇表宽容一点。如果您只是在 4-5 个单词的短语中寻找 2 个单词,这对您来说可能非常有效!Millage 取决于应用程序,所以我不能肯定它会满足您的需求......但它可能会有所帮助。

Speech Hypothesized - 除了 Speech Recognized 事件外,Microsoft Speech 还有一个 Hypothesized 事件。它有点松散,可以捕捉到较大短语的一部分。同样,millage 总是各种各样,所以我不能肯定这将是解决方案 http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognizer.speechhypothesized.aspx

最后一点,您可以查看诸如 Dragon Natural Speech 之类的软件包。像 Dragon 这样的公司已经付出了很多努力来创建能够让人们更自然地说话并且无需学习一套新短语的软件包。

于 2012-11-09T18:27:08.480 回答