VoiceXML语法输入序列

时间:2015-06-09 18:57:44

标签: grammar voice-recognition vxml voicexml

我需要允许来电者输入他们的ID。它长7个字符,是字母和数字的混合,但它有一个结构。

实施例: F0G0000

  • 第一个字符总是一个字母。
  • 第二个字符始终是数字。
  • 第三个可以是以太字母或数字。
  • 最后4个字符总是数字。

根据上面的结构,我可以对语法做些什么来让它在字母和数字之间切换?

1 个答案:

答案 0 :(得分:0)

绝对:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd" version="1.0" mode="voice" tag-format="semantics/1.0" root="main">

  <rule scope="public" id="main">

    <!-- a letter -->
    <ruleref uri="#letter" /><tag>out = rules.latest</tag>

    <!-- a digit -->    
    <ruleref uri="#digit" /><tag>out += rules.latest</tag>

    <!-- a letter or a digit -->
    <one-of>
      <item><ruleref uri="#letter" /></item>
      <item><ruleref uri="#digit" /></item>
    </one-of>
    <tag>out += rules.latest</tag>

    <!-- 4 digits -->
    <item repeat="4">
      <ruleref uri="#digit" />
      <tag>out += rules.latest</tag>
     </item>

  </rule>

  <rule scope="private" id="letter">
    <one-of>
      <item>a</item>
      <item>b</item>
      <item>c</item>
      <item>d</item>
      <item>e</item>
      <item>f</item>
      <item>g</item>
      <item>h</item>
      <item>i</item>
      <item>j</item>
      <item>k</item>
      <item>l</item>
      <item>m</item>
      <item>n</item>
      <item>o</item>
      <item>p</item>
      <item>q</item>
      <item>r</item>
      <item>s</item>
      <item>t</item>
      <item>u</item>
      <item>v</item>
      <item>w</item>
      <item>x</item>
      <item>y</item>
      <item>z</item>
    </one-of>
  </rule>

  <rule scope="private" id="digit">
    <one-of>
      <item>
        <one-of>
          <item>zero</item>
          <item>oh</item>
        </one-of>
        <tag>out="0"</tag>
      </item>
      <item> one
        <tag>out = 1;</tag>
      </item>
      <item> two
        <tag>out = 2;</tag>
      </item>
      <item> three
        <tag>out = 3;</tag>
      </item>
      <item> four
        <tag>out = 4;</tag>
      </item>
      <item> five
        <tag>out = 5;</tag>
      </item>
      <item> six
        <tag>out = 6;</tag>
      </item>
      <item> seven
        <tag>out = 7;</tag>
      </item>
      <item> eight
        <tag>out = 8;</tag>
      </item>
      <item> nine
        <tag>out = 9;</tag>
      </item>
    </one-of>
  </rule>
</grammar>

免责声明:我没有测试过。