0

我正在查看来自 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>

有人有线索吗?TIA

4

1 回答 1

1

你没有提到正在使用的平台。由于您使用的是内联 GSL,我对平台的第一个猜测是 TellMe 或 NVP,但我认为还有其他支持内联 GSL。

无论如何,请确保您没有收到编译错误。我见过一些平台只是忽略没有编译的语法。片段看起来是正确的,但鉴于您没有使用标准语法 (SRGS),我猜这是一个较旧的实现,而且实现越旧,您通常会看到更多的怪癖和警告。

一般来说,我认为解释行为的语法的 VoiceXML 部分没有任何问题。虽然它与您的症状无关,但由于缺少语法和定义的出口(您依赖默认的 catch 处理程序),您的目标表单可能会在某些平台上导致问题。只是播放信息,字段部分应该是块。并注意,如果块刚刚播放音频并退出链接语法可能会或可能不会激活(规范暗示它们是,但平台必须在处理和排队音频以及执行识别之间切换。识别和连续切换进出主动语法很少见……

于 2010-06-25T12:42:35.200 回答