我必须运行一个涉及在python中编程的NAO机器人的项目。我要做的是为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()的指定单词之一时,会引发此问题。如果当前未识别任何单词,则重新初始化该值。
所以我想我的答案的关键在这里,但我需要帮助。 我怎么能解决这个问题?有没有更好的文件我可以参考?
提前致谢!
答案 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
唯一的问题是您希望在非常低的级别上使用识别器。