1

ユーザーが「ヘルプ」と言った場合、次のフィールドが入力されず、ユーザーが可能なすべてのオプションを取得することを望みます。

<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」と言い、ユーザーはもう一度選択できます-したがって、 「ヘルプ」という言葉も外部文法に含まれている必要がありますよね?)

前もって感謝します

4

1 に答える 1

2

はい、アクティブな文法には、値「help」を返す「help」発話が含まれている必要があります。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 原則に従って、要素 を含むアプリケーション ルート ドキュメントを使用して、この効果をアプリケーションに対してグローバルに実行できます。以下の文書例では、グローバル文法の「ヘルプ」発話をイベントにバインドしています。linkapp-root.vxmllinkhelp

<?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ドキュメントのイベントの処理も参照してください。

application次に、アプリケーションのページで、要素の属性を介してアプリケーション ルート ドキュメントへの参照を作成し、 catch ブロックvxmlで適切に話します。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"
    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

于 2011-01-19T15:57:29.377 に答える