Изменение доверительного интервала диалога Choregraphe для Nao

В настоящее время я работаю с роботом Nao, используя Choregraphe, и пытаюсь снизить доверительный интервал, необходимый для выполнения запроса, сделанного через QiChat, с 50% по умолчанию до 30%.

Я нашел это решение, https://community.ald.softbankrobotics.com/en/forum/change-speech-engine-confidence-threshold-choregraphe-dialog-8624, но, к сожалению, функции сценариев для диалоговых окон устарели в Choregraphe v2. 1. Кто-нибудь знает, что такое «новый» способ сделать это?


person deanshanahan    schedule 05.01.2018    source источник


Ответы (3)


Я нашел решение. Сценарии для диалоговых окон не разрешены, но вы можете добавить сценарий 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
person deanshanahan    schedule 05.01.2018

Два решения для увеличения скорости распознавания:

1) Добавьте больше вариантов к вашему вводу — например, если вы слушаете «да», вы также должны убедиться, что слушаете «да», «ага», «да», «конечно», «хорошо», "хорошо" и т. д. - для этого полезны понятия, см. документ по кичату.

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

ОДНАКО обратите внимание, что это не очень элегантно; вам нужно будет сбросить его, и это значительно увеличивает риск ложных срабатываний, поэтому вам следует использовать это, только если вы не можете решить эту проблему, просто добавив больше вариантов.

person Emile    schedule 05.01.2018

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
person user3708371    schedule 03.03.2020