1

私は同僚の 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 番目の成分を尋ねられると、エラーが発生します。その後、スクリプトを再起動しても、最初の単語認識の前にエラーが発生します。
問題の原因を知っている人はいますか?

ありがとう。

4

2 に答える 2

0

asr.pause(False)退会前に設定

于 2018-07-05T12:38:49.460 に答える