代码之家  ›  专栏  ›  技术社区  ›  mtmurdock

vxml:需要在线语法方面的帮助

  •  0
  • mtmurdock  · 技术社区  · 14 年前

    我正在查看VXML.org中的一些VXML脚本示例。当我调用脚本时,提示将播放,但它根本不会接收任何输入。当我说话时,它回答“没有输入”。我是否可能缺少一些指示用户输入的标记?这是网站上的示例脚本:

    <?xml version="1.0" encoding="UTF-8"?>
    <vxml version = "2.1">
       <link next="#MainMenu">
          <grammar type="text/gsl">[main back begin]</grammar>
       </link>
    
       <form id="MainMenu">
          <block>
             <prompt bargein="false">
                This is the Hello World Main Menu.
             </prompt>
          </block>
    
          <field name="MeatOrPlant">
             <prompt>
                Are you a "Carnivore" or "Vegetarian".
             </prompt>
    
             <grammar type="text/gsl">
                <![CDATA[[
                  [vegetarian plant veggie] {<MeatOrPlant "plant">}
                  [meat carnivore flesh animal] {<MeatOrPlant "meat">}
                ]]]>
             </grammar>
    
             <noinput>
                <prompt>
                   I did not hear anything. Please try again.
                </prompt>
                <reprompt/>
             </noinput>
    
             <nomatch>
                <prompt>
                   I did not recognize that lifestyle choice.  Please try again.
                </prompt>
                <reprompt/>
             </nomatch>
    
          </field>
          <filled>
             <if cond="MeatOrPlant == 'meat'">
                <goto next="#Meat"/>
                <elseif cond="MeatOrPlant == 'plant'"/>
                <goto next="#Plant"/>
             </if>
          </filled>
       </form>
    
       <form id="Meat">
          <field name="BackToMain">
             <prompt>
                PETA is coming for you, be afraid.
                If you wish to try again, please say Main.
             </prompt>
          </field>
          <filled>
             <!-- no way this will get hit -->
          </filled>
       </form>
    
       <form id="Plant">
          <field name="BackToMain">
             <prompt>
                Protein is the spawn of the devil.
                If you wish to try again, please say "Main".
             </prompt>
          </field>
          <filled>
             <!-- no way this will get hit -->
          </filled>
       </form>
    </vxml>
    

    有人知道吗?蒂亚

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jim Rush    14 年前

    你没有提到使用的平台。因为您使用的是内联GSL,所以我对平台的第一个猜测是tellme或nvp,但我认为还有其他支持内联GSL的平台。

    在任何情况下,请确保没有收到编译错误。我见过一些平台忽略了没有编译的语法。这些代码片段看起来是正确的,但是考虑到您没有使用标准语法(SRG),我猜这是一个较旧的实现,而且实现的时间越长,您通常看到的怪癖和警告就越多。

    通常,我不会看到您的语法中voiceXML部分有任何错误来解释这种行为。虽然它与您的症状没有关联,但是由于缺乏语法和定义的出口(您依赖于默认的catch处理程序),您的目标表单可能会在某些平台上引起问题。为了只播放信息,字段部分应该是块。请注意,如果块刚刚播放音频并退出,则链接语法可能处于活动状态,也可能不处于活动状态(规范将暗示它们处于活动状态,但平台必须在处理和排队音频和执行识别之间切换。识别和连续的进出活动语法是罕见的…

    推荐文章