2017-10-05 174 views
1

我有一位同事(离开我的公司)的Python代码。 Pepper问你想要什么,你回答说你想要一杯鸡尾酒,Pepper问你你想要哪种鸡尾酒,你给它一个鸡尾酒的名字,Pepper问你是否有所有的成分(只有两种成分),并给你食谱。 我的同事离开前,该应用程序正常工作。 naoqi版本是2.1版本。 我对辣椒升级闹起两周前,当我测试代码(不修改),我有以下消息:已解决;胡椒:代码在naoqi升级后无法正常工作

RuntimeError: ALSpeechRecognition::setVocabulary
NuanceContext::addContext
A grammar named "modifiable_grammar_wordspotting" already exists.

这是我的函数的代码:

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) 

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

谢谢。

回答

1

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

+0

谢谢JLS。我有一个不起作用的popcontext,我评论了它。所以,最后的上下文不会被删除。随着删除allcontext,代码工作正常。 –

相关问题