改变Nao的Choregraphe对话置信区间

时间:2018-01-05 09:26:47

标签: nao-robot choregraphe

我目前正在与使用Choregraphe的Nao机器人合作,并且我试图降低根据QiChat从默认的50%到30%做出请求所需的置信区间。

我找到了这个解决方案https://community.ald.softbankrobotics.com/en/forum/change-speech-engine-confidence-threshold-choregraphe-dialog-8624,但不幸的是,Choregraphe v2.1中不推荐使用对话框的脚本功能。有谁知道这样做的“新”方式是什么?

3 个答案:

答案 0 :(得分:0)

我找到了解决方案。不允许使用对话框的脚本,但可以在“对话框”框之前添加Python脚本以更改此间隔。应在此框中输入的代码如下所示。

class MyClass(GeneratedClass):
def __init__(self):
    GeneratedClass.__init__(self)

def onLoad(self):
    #put initialization code here
    pass

def onUnload(self):
    #put clean-up code here
    pass

def onInput_onStart(self):
    # Lower confidence threshold from 50% to 30%
    ALDialog = ALProxy('ALDialog')
    ALDialog.setASRConfidenceThreshold(0.3) 
    self.onStopped() #activate the output of the box

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

答案 1 :(得分:0)

两种提高识别率的解决方案:

1)为您的输入添加更多变体 - 例如,如果您正在倾听"是",您还应该确保您倾听"是的",& #34;是","是的","肯定","好的","罚款"等等 - 概念很有用为此,请参阅the qichat doc

1)如你所知,设置置信度阈值 - 对于更紧凑的版本(我更喜欢样板):

class MyClass(GeneratedClass):
    def onInput_onStart(self):
        # Lower confidence threshold from 50% to 30%
        ALProxy('ALDialog').setASRConfidenceThreshold(0.3) 
        self.onStopped() # activate the output of the box

然而,请注意,这不是很优雅;你需要重置它,这会大大增加误报的风险,所以你只能通过增加更多的变种来解决这个问题。

答案 2 :(得分:0)

setASRConfidenceThreshold用于Nao V5;在Pepper和Nao V6中,您应该使用setConfidenceThreshold

class MyClass(GeneratedClass):
    def onInput_onStart(self):
        # Lower confidence threshold from 50% to 30%
        ALProxy('ALDialog').setConfidenceThreshold("BNF", 0.3)

        self.onStopped() # activate the output of the box