我遇到了VXML表单的问题,基本上我有一个带有初始提示的字段,并且有一组无输入的nomatch块,使用计数器根据已经抛出的noinput / nomatch事件的数量来回放不同的提示。
我需要报告每次尝试,因此ASR置信度设置得相当低,在填充元素中我检查置信度并且从中我想接受,如果信心低或者信心是临界的,则重新开始,玩确认提示。我遇到的问题是,在填充的块中,我正在执行检查置信度的操作,如果太低,则执行以下操作(字段名称为集合):
<clear namelist="collection"/>
<throw event="nomatch"/>
问题是这会清除nomatch / noinput计数器,但我需要保留这些。如果我删除了clear标记,则会触发nomatch事件,但由于该字段仍处于“已填充”状态,因此它不接受输入。
有没有办法从填充块中重新输入字段而不清除计数器,或者有没有办法通过ECMA脚本访问计数器再次设置它们或类似的东西?我是否只能清除“集合”字段中的某些值,以便不会立即重新输入已填充的元素但保留计数器?
干杯
答案 0 :(得分:0)
我找到了答案 - 简单的解决方案是将nomatch noinput事件处理程序从集合字段范围移到文档范围 - 这意味着当我在集合字段上调用clear时,noinput和nomatch counter是没有清除
答案 1 :(得分:0)
这不是问题,它是标准: https://www.w3.org/TR/voicexml20/#dml5.3.3
“此外,如果变量名称对应于表单项,那么 表单项的提示计数器和事件计数器被重置。“
您可以使用变量添加自己的计数器。增加过程块并使用或者“cond”属性为提示测试值。