我目前正在与使用Choregraphe的Nao机器人合作,并且我试图降低根据QiChat从默认的50%到30%做出请求所需的置信区间。
我找到了这个解决方案https://community.ald.softbankrobotics.com/en/forum/change-speech-engine-confidence-threshold-choregraphe-dialog-8624,但不幸的是,Choregraphe v2.1中不推荐使用对话框的脚本功能。有谁知道这样做的“新”方式是什么?
答案 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