我有一位同事(他离开我的公司)的python代码。 Pepper询问您想要什么,回答您想要一杯鸡尾酒,Pepper询问您想要哪种鸡尾酒,给它取一个鸡尾酒的名字,Pepper询问您是否有所有配料(只有两种配料),然后给您食谱。
在我的同事离开之前,该应用程序运行良好。 naoqi版本是2.1版本。
我两周前在Pepper上升级了naoqi,当我测试代码(无修改)时,我收到以下消息:
RuntimeError:ALSpeechRecognition :: setVocabulary NuanceContext :: addContext语法为
“ modifiable_grammar_wordspotting”已存在。
这是我的功能的代码:
def onInput_onStart(self, enableWordSpotting):
from threading import Lock
self.mutex.acquire()
if(self.bIsRunning):
self.mutex.release()
return
self.bIsRunning = True
try:
if self.asr:
self.asr.pause(True)#need to pause the ASR system while configuring it
self.asr.setVisualExpression(True)
self.asr.pushContexts()
self.hasPushed = True
if self.asr:
self.asr.setLanguage(language)
self.asr.setVocabulary(self.listPhrToReco, enableWordSpotting)
self.memory.subscribeToEvent("WordRecognized", self.getName(), "onWordRecognized")
self.hasSubscribed = True
self.asr.pause(False)#
self.phrReco = "" #additional layer to recover the last recognized sentence (ow. it is only accessible from callback:on )
except RuntimeError, e:
self.mutex.release()
self.onUnload()
raise e
self.mutex.release()
Hers是产生错误的特定行:
self.asr.setVocabulary(self.listPhrToReco, enableWordSpotting)
注意到在语音识别的第一次执行中,我没有出错,Pepper调和了第一个单词(鸡尾酒),问我想要什么,它调和了鸡尾酒的名字,它问我是否有第一种成分,我说是的,当它要求我提供第二种成分时,就会发生错误。之后,即使我重新启动了脚本,在第一个单词识别之前也出现了错误。
请问有人知道问题的根源吗?
谢谢。
最佳答案
我认为您正在尝试两次设置Vocabukary,而没有停止ASR。尝试在最后将removeAllContext添加到您的代码中?
关于python - Pepper:直击升级后,代码无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46582484/