私は私の同僚(私の会社を離れる)の1つのpythonコードを持っています。ペッパーは何をしたいのですか?あなたはカクテルを食べたいと答えた、ペッパーはあなたにカクテルの名前を教えてください。あなたはそれにカクテルの名前をつけて、ペッパーはすべての成分を持っていますか?レシピ。 私の同僚が去る前に、アプリケーションは正常に機能しました。 naoqiバージョンは2.1バージョンでした。 私は2週間前に交じりにnaoqiアップグレード、および、私は(変更なしで)コードをテストするとき、私は次のようなメッセージがありますが解決しました。ペッパー:コードは、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()
彼女はTEHエラーが発生した特定の行です:
self.asr.setVocabulary(self.listPhrToReco, enableWordSpotting)
は、音声認識の最初の実行では、私がエラーを持っていないことを気づい、ペッパーは、最初のWORをreconize d(カクテル)、私が欲しいものを私に尋ね、それはカクテルの名前を再調整する、それは私が最初の成分を持っていれば私に尋ねる、私ははいと言う、そして、スクリプトを再起動しても、最初の単語認識の前にエラーが発生します。
誰かが問題の起源を知っていますか?
ありがとうございました。
ありがとうございましたJLS。私はうまくいかなかったpopcontextを持っていて、私はそれをコメントしていました。したがって、最後の文脈は削除されませんでした。 allcontextを削除すると、コードは正常に動作します。 –