更改 Nao 的 Choregraphe 对话置信区间
Changing Choregraphe Dialog Confidence Interval for Nao
我目前正在使用 Choregraphe 与 Nao 机器人合作,我正在尝试将根据通过 QiChat 发出的请求采取行动所需的置信区间从默认的 50% 降低到 30%。
我找到了这个解决方案,https://community.ald.softbankrobotics.com/en/forum/change-speech-engine-confidence-threshold-choregraphe-dialog-8624,但不幸的是,对话框的脚本功能在 Choregraphe v2.1 中已被弃用。有谁知道 "new" 的方法是什么?
我找到了解决办法。不允许为对话框编写脚本,但您可以在对话框之前添加 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) 为您的输入添加更多变体 - 例如,如果您正在收听 "yes",您还应确保收听 "yep"、"yup"、"yeah"、"sure"、"okay"、"fine" 等 - 概念对此很有用,请参阅 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
但是,请注意,这不是很优雅;你将需要重置它,它会大大增加误报的风险,所以只有在你不能通过添加更多变体来解决它时才应该使用它。
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
我目前正在使用 Choregraphe 与 Nao 机器人合作,我正在尝试将根据通过 QiChat 发出的请求采取行动所需的置信区间从默认的 50% 降低到 30%。
我找到了这个解决方案,https://community.ald.softbankrobotics.com/en/forum/change-speech-engine-confidence-threshold-choregraphe-dialog-8624,但不幸的是,对话框的脚本功能在 Choregraphe v2.1 中已被弃用。有谁知道 "new" 的方法是什么?
我找到了解决办法。不允许为对话框编写脚本,但您可以在对话框之前添加 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) 为您的输入添加更多变体 - 例如,如果您正在收听 "yes",您还应确保收听 "yep"、"yup"、"yeah"、"sure"、"okay"、"fine" 等 - 概念对此很有用,请参阅 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
但是,请注意,这不是很优雅;你将需要重置它,它会大大增加误报的风险,所以只有在你不能通过添加更多变体来解决它时才应该使用它。
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