2017-10-05 10 views
1

나는 내 동료 중 한 명의 Python 코드를 가지고 있습니다 (누가 내 회사를 떠났습니다). Pepper는 당신이 원하는 것을 묻습니다. 당신은 칵테일을 원한다고 대답합니다. Pepper는 어떤 칵테일을 원하십니까, 칵테일 이름을 주시겠습니까? Pepper는 모든 재료 (단 두 가지 성분)가 있는지 물어보고 당신에게 레시피. 제 동료가 떠나기 전에 응용 프로그램이 정상적으로 작동했습니다. naoqi 버전은 2.1 버전입니다.; Pepper : 코드가 naoqi 업그레이드 후 제대로 작동하지 않습니다.

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() 

:

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

여기 내 함수의 코드입니다 : 내가 (수정없이) 코드를 테스트 할 때 나는 2 주 전에 고추 naoqi 업그레이드하고, 나는 다음과 같은 메시지가 그녀는 TEH 오류가 발생하는 특정 라인이다 :

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

는 음성 인식의 첫 번째 실행에서, 나는 오류를하지 않은 것으로 나타났습니다를, 페퍼 최초의 세계에 법과를 reconize d (칵테일), 내가 원하는 것을 나에게 묻는다, 그것은 칵테일의 이름을 재조정한다, 내가 첫번째 성분을 가지고 있는지 나에게 묻는다, 나는 긍정이라고 말한다. 그리고 그것이 두 번째 성분에 대해 나에게 묻을 때, 오류가 발생한다. 스크립트를 다시 시작한 후에도 첫 단어 인식 전에 오류가 발생했습니다.
문제의 근원을 알려주는 사람이 있습니까?

감사합니다.

답변

1

ASR을 중지하지 않고 두 번 setVocabukary를 시도하고 있다고 생각합니다. 마지막에 코드에 removeAllContext를 추가하려고합니까?

+0

감사합니다. 나는 작동하지 않는 popcontext를 가지고 있었고 나는 그것을 주석 처리했다. 그래서 마지막 문맥은 제거되지 않았습니다. allcontext를 제거하면 코드가 정상적으로 작동합니다. –