我想,如果用户说“帮助”,以下字段没有填写,并且用户获得了所有可能的选项。
<form id="test">
<field name="var1">
<prompt bargein="true" bargeintype="hotword" >say xy </prompt>
<grammar src = "grammar.grxml" type="application/srgs+xml" />
<filled>
<assign name="myProdukt" expr="var1" />
you said <value expr="myProdukt"/>
</filled>
</field>
(假设外部语法是“p1”,“p2”和“p3”,用户说“帮助”,系统说“p1”,“p2”,“p3”,用户可以选择再次 - 因此“帮助”一词也必须在外部语法中,不是吗?)
提前致谢
答案 0 :(得分:2)
是的,活动语法必须包含一个“帮助”话语,它返回值“帮助”。然后,您使用help
标记来捕获该事件:
<?xml version="1.0" encoding="UTF-8"?>
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd">
<form id="test">
<field name="var1">
<prompt bargein="true" bargeintype="hotword" >say xy </prompt>
<grammar src = "grammar.grxml" type="application/srgs+xml" />
<filled>
<assign name="myProdukt" expr="var1" />
you said <value expr="myProdukt"/>
</filled>
<help>
To choose a product, say,
<!-- whatever the product choices are -->
frobinator, submarine, curling iron, ..
<reprompt/>
</help>
</field>
</form>
</vxml>
或者,在DRY principle之后,使用包含link
元素的应用程序根文档,可以为您的应用程序全局完成此效果。在下面的示例app-root.vxml
文档中,link
绑定了help
事件的全局语法“帮助”话语:
<?xml version="1.0"?>
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml">
<link event="help">
<grammar mode="voice" root="root_rule" tag-format="semantics/1.0"
type="application/srgs+xml" version="1.0" xml:lang="en-US">
<rule id="root_rule" scope="public">
<one-of>
<item weight="1.0">
help
</item>
</one-of>
</rule>
</grammar>
</link>
</vxml>
这个语法在任何地方都是活跃的 - 有效地与每个活动字段语法合并。如果您需要有关应用程序根文档的更多信息,请参阅VoiceXML规范Executing a Multi-Document Application部分。另请参阅 Tellme Studio 文档
中的Handling Events然后,在应用程序的页面中,通过application
元素的vxml
属性引用应用程序根文档,并在help
catch块中正确说出:
<?xml version="1.0" encoding="UTF-8"?>
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd"
application="app-root.vxml">
<form id="test">
<field name="var1">
<prompt bargein="true" bargeintype="hotword" >say xy </prompt>
<grammar src = "grammar.grxml" type="application/srgs+xml" />
<filled>
<assign name="myProdukt" expr="var1" />
you said <value expr="myProdukt"/>
</filled>
<help>
To choose a product, say,
<!-- whatever the product choices are -->
frobinator, submarine, curling iron, ..
<reprompt/>
</help>
</field>
</form>
</vxml>
当然,您可以将link
代码放在与您的表单相同的页面中,但除非与某些内容发生冲突,否则您可能希望help
对应用程序的每个字段都有效在特定领域的语法。