Pepper:naoqi升级后代码不能正常工作

时间:2017-10-05 09:42:28

标签: python pepper

我有一位同事(离开我公司)的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()

她是产生错误的特定行:

self.asr.setVocabulary(self.listPhrToReco, enableWordSpotting)

注意到在第一次执行语音识别时,我没有错误,Pepper重新调整第一个单词(鸡尾酒),问我想要什么,它重新调整鸡尾酒的名称,它问我是否有第一种成分,我说是的,当它问我第二种成分时,会发生错误。之后,即使我重新启动脚本,我在第一个单词识别之前就有错误。
有人知道问题的根源吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我认为你试图在没有ASR停止的情况下两次设置Vocabukary。尝试在最后添加一个removeAllContext到你的代码?

答案 1 :(得分:0)

在退订

之前先设置asr.pause(False)