Choregraphe Dialog ボックスの音声認識閾値の変更
(2016/10/15 補足 NAOqi 2.4.2 以降を利用(Pepper の現行バージョンは 2.4.3) は次の記事も参考にしてください
Dialogの認識率変更の不具合 | SoftBank Robotics Community)
Choregrahe Dialog の音声認識について、いまいち期待通りに認識してくれないなどの理由で Confidence Threshold (音声認識の閾値)を変更したくなることがあります。
NAOqi のAPI としてはこの閾値を変更するインターフェースが用意されていますが、標準ボックスライブラリにはこれを変更できるものがなさそうです。
次のようなコードを持つスクリプトボックスを作ることで対応してみました。
class MyClass(GeneratedClass): def __init__(self): GeneratedClass.__init__(self) try: self.prevThreshold = None self.dialog = ALProxy("ALDialog") except Exception as e: self.dialog = None self.logger.error(e) def onLoad(self): if self.dialog != None: self.prevThreshold = self.dialog.getASRConfidenceThreshold() def onUnload(self): if self.dialog != None and self.prevThreshold != None: self.dialog.setASRConfidenceThreshold(self.prevThreshold) def onInput_onStart(self): if self.dialog != None and self.prevThreshold != None: t = self.getParameter("ASR confidence threshold") self.dialog.setASRConfidenceThreshold(t) self.logger.info("Dialog ASRConfidenceThreshold changed fro :%0.2f to %0.2f" % (self.prevThreshold, t)) self.onStopped() def onInput_onStop(self): self.onUnload() #it is recommended to reuse the clean-up as the box is stopped self.onStopped() #activate the output of the box
ボックスパラメータ ASR confidence threshold で値を変更できるようにしています。ボックスが呼び出されると設定された値に変更。ボックスがアンロードされるタイミングでもとの値に戻しています。
アプリ起動時にこれを実行、その後 Dialog を呼び出すと Dialog ボックスはこのボックスで指定された音声認識の閾値で音声認識をしてくれるはずです。
デフォルトでは 0.5、NAO の場合 0.45 から 0.46 ぐらいが日本語認識において最も使い勝手がいいという噂があります、、
参考まで、ボックスパラメータの追加方法: