Как отключить грамматику VoiceXML? - PullRequest
2 голосов
/ 03 декабря 2008

Я пишу приложение VoiceXML , в котором есть грамматика речи и грамматика DTMF . Если звонящий звонит из особенно шумной среды, нам нужно отключить речевую грамматику. Есть ли способ сделать это, не включающий копирование всей формы в другую форму и удаление грамматики речи?

Ответы [ 3 ]

6 голосов
/ 12 января 2009

То, что вы ищете, это, вероятно, свойство inputmodes:

<property name="inputmodes" value="dtmf"/>

Это включит грамматику DTMF, когда голосовая грамматика отключена.

2 голосов
/ 10 сентября 2009

Вы не упоминаете, какую платформу (ы) вы используете, но это важно, потому что это одна из тех областей, где у вас есть различия между платформами.

В разделе [3.1.4] [1] спецификации VoiceXMl 2.0 говорится, что inputmodes = "dtmf" не деактивирует речевые грамматики, а лишь делает невозможным их сопоставление. Таким образом, если вы отключите грамматику распознавания речи, вы будете надеяться, что указатель конца не позволит использовать речевую реплику, но это не обязательно запрещено спецификацией.

Запрет любых расширений для конкретной платформы, которые вы можете использовать, вы также можете рассмотреть свойство чувствительности. Если установить значение 0, ASR прекратит прослушивание речи.

Вы также можете попробовать установить для свойства bargeintype значение "hotword", если ваша платформа поддерживает это. Это не отключит речевые грамматики, но уменьшит вероятность того, что пользователи не будут слышать подсказки из-за помех, связанных с шумом, которых иногда достаточно для работы приложения.

0 голосов
/ 03 мая 2011

Использование режимов ввода может работать, но вам все равно понадобятся две формы. Однако есть обходной путь, если вы используете voicexml 2.1 и убедитесь, что вы не указали мод ввода в теге грамматики и убедитесь, что он указан в самой грамматике, тогда вы можете использовать srcexpr, чтобы «выключить» свою речь грамматика.

Допустим, вы указали грамматику следующим образом:

<grammar type="application/srgs+xml" src="/grammars/menu.grxml" />
<grammar type="application/srgs+xml" src="/grammars/menu-dtmf.grxml" />

Вы можете отключить грамматику речи, повторив использование версии dtmf:

<grammar type="application/srgs+xml" srcexpr="'/grammars/menu' + (dtmfMode?'-dtmf':'') + '.grxml'" />
<grammar type="application/srgs+xml" src="/grammars/menu-dtmf.grxml" />

Так что все, что вам нужно сделать, это установить логическую переменную с именем dtmfMode, которая имеет значение true, когда вам нужен только DTMF.

...