0

我在使用 VXML 表单时遇到问题,基本上我有一个带有初始提示的字段,并且有一组 noinput nomatch 块使用计数器播放不同的提示,具体取决于已抛出的 noinput/nomatch 事件的数量。

我需要报告每次尝试,因此 ASR 置信度设置得非常低,在填充元素中我检查置信度,然后我想接受,如果置信度低或置信度处于临界点,则重新提示,播放确认提示. 我遇到的问题是,在填充块中,我正在执行一个操作来检查置信度,如果太低,我会执行以下操作(字段名称是集合):

<clear namelist="collection"/>
<throw event="nomatch"/>

问题是这会清除 nomatch/noinput 计数器,但我需要保留这些计数器。如果我删除了清除标签,则会命中 nomatch 事件,但由于该字段仍然“填充”,因此它不接受输入。

有没有办法在不清除计数器的情况下从填充的块重新输入字段,或者有没有办法可以通过 ECMA 脚本访问计数器以再次设置它们或类似的东西?我可以只清除“集合”字段中的某些值,以便填充的元素不会立即重新输入而是保留计数器吗?

干杯

4

2 回答 2

0

这不是问题,这是标准: https ://www.w3.org/TR/voicexml20/#dml5.3.3

“另外,如果变量名对应一个表单项,那么该表单项的提示计数器和事件计数器都会被重置。”

您可以使用变量添加自己的计数器。在流程块中增加并使用提示或属性“cond”测试值。

于 2017-07-12T16:36:30.580 回答
0

我发现了这个问题的答案——简单的解决方案是将 nomatch noinput 事件处理程序从集合字段范围移到文档范围——这意味着当我在集合字段上调用 ​​clear 时,没有清除 noinput 和 nomatch 计数器

于 2017-06-21T09:56:12.367 回答