NAO机器人语音识别未知单词

时间:2014-02-03 11:52:56

标签: python speech-recognition nao-robot

我必须运行一个涉及在python中编程的NAO机器人的项目。我要做的是为NAO分配一些知识。

例如:

  • 一个人向NAO显示一张照片(在白板上手工绘制)
  • 这个人说" House" (让我们说这个人画房子)
  • NAO现在知道所显示的图片代表房屋

我遇到的问题是在语音识别模块中。只能识别某个词汇中的单词。但是在我的项目环境中,一个人应该在白板上画画,并告诉NAO那里画的是什么。所以,意味着我无法知道这个人将要画什么,我不能提前设置词汇。

我的出发点是tutorial here。正如您通过阅读教程所看到的那样,只能识别属于词汇表的某些单词,就像在这行代码中一样:

wordList=["yes","no","hello Nao","goodbye Nao"]
asr.setWordListAsVocabulary(wordList)

在识别过程中,会引发一个名为WordRecognized的事件。它有这样的结构:

Event: "WordRecognized"
callback(std::string eventName, AL::ALValue value, std::string subscriberIdentifier)

当识别出具有ALSpeechRecognitionProxy :: setWordListAsVocabulary()的指定单词之一时,会引发此问题。如果当前未识别任何单词,则重新初始化该值。

所以我想我的答案的关键在这里,但我需要帮助。 我怎么能解决这个问题?有没有更好的文件我可以参考?

提前致谢!

1 个答案:

答案 0 :(得分:2)

问题在于NAO语音识别模块是专有的,我非常怀疑你能用它来做这些事情。

但是,如果你考虑像CMUSphinx这样的ROS平台和开源引擎,你绝对可以做你想要的。将占位符单词包含在一个语法中很容易,该语法将与未知单词匹配,然后放入字典中。

这是一个非常复杂的研究问题,通过语音交互来学习词汇,但之前已经完成了。例如,您可以阅读本出版物

专有名词自动语音转录的组合系统 A. Laurent,T。Merlin,S。Meignier,Y。Esteve,P。Deleglise

http://www.lrec-conf.org/proceedings/lrec2008/pdf/455_paper.pdf

唯一的问题是您希望在非常低的级别上使用识别器。