私は同僚の 1 人 (私の会社を辞めた人) の python コードを持っています。Pepper は何が欲しいか尋ね、あなたはカクテルが欲しいと答える、Pepper はどのカクテルが欲しいかを尋ねる、あなたはそれにカクテルの名前を付ける、Pepper はすべての材料 (材料は 2 つだけ) があるかどうかを尋ね、レシピ。私の同僚が去る前に、アプリケーションは正常に動作しました。naoqi バージョンは 2.1 バージョンでした。2 週間前に 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 は最初の単語 (カクテル) を認識し、何が欲しいかを尋ねます。カクテルの名前を認識し、最初の材料があったかどうかを尋ねます。 、はいと言いますが、2 番目の成分を尋ねられると、エラーが発生します。その後、スクリプトを再起動しても、最初の単語認識の前にエラーが発生します。
問題の原因を知っている人はいますか?
ありがとう。