以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML在语音技术中的应用 』   (http://bbs.xml.org.cn/list.asp?boardid=47)
----  求助:dtmf按键输入  (http://bbs.xml.org.cn/dispbbs.asp?boardid=47&rootid=&id=61469)


--  作者:lucg_mongolia
--  发布时间:4/17/2008 1:15:00 PM

--  求助:dtmf按键输入
密码、身份证号码等按键输入的voicexml怎么写?需要指定语法文件吗?按键的长度、最大间隔时间、打断按键等参数怎么传递?
--  作者:佛间花
--  发布时间:4/17/2008 5:19:00 PM

--  
好像在voicexml的使用教程里面应该有差不多的例子,你看这个例子对你有帮助吗?
    1   <?xml version="1.0"?>
    2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
    3   <form>
    4     <error>
    5     <prompt>对不起您输入了错误密码。</prompt>
    6     <disconnect/>
    7     </error>
    8     <field name="password " type="digits">
    9       <prompt>请输入密码</prompt>
    10     <filled>
    11     <if cond="password != '1234567'">
    12     <throw event="error"/>
    13     <else/>
    14       密码正确。
    15     </if>
    16     </filled>
    17     </field>
    18   </form>
    19   </vxml>
--  作者:lucg_mongolia
--  发布时间:4/17/2008 6:08:00 PM

--  
这个例子我试过,但是报了一个错误:
Apr 17 18:14:36.83|129817520|0|8001|com.vocalocity.vxi|Default error handler:  error.grammar
可能是需要一个语法,但是不知道这个语法该怎么写
--  作者:佛间花
--  发布时间:4/17/2008 7:51:00 PM

--  
这个跟解析器有关系吧?我刚开始用openvxi,不太了解啊。
--  作者:zlei12
--  发布时间:4/19/2008 11:56:00 AM

--  
输入密码等数字信息,从vxml规范的角度,2楼提供的例子完全正确。3楼提到的错误,应该是一个与平台相关的错误,需要查询vocalocity参考手册解决,参数传递可阅读<property>标记。

输入数字串如指定grammar,对输入格式等可以严密地定义。简便起见,对digits我在实现中选择无需grammar的方式,最大按键长度、最大间隔等相对固定信息采用系统级配置方式,而按键结束参数(一般为#)则采用<property>指定。


--  作者:tropic_desert
--  发布时间:5/5/2008 11:06:00 AM

--  
楼上所说的是内建(built-in)语法,需要平台来实现,是在VXIrec.cpp的VXIrecLoadGrammarFromURI()函数中实现的吗?能不能说一下是如何实现的?如果能贴上源码,那就太感谢了!
--  作者:zlei12
--  发布时间:5/5/2008 7:24:00 PM

--  
OSBrecLoadGrammarFromURI表示从外部URI获取Grammar信息。我实现的是OSBrecLoadGrammarFromString(),即grammar从const VXIchar *str获得。

代码比较多,无法帖出,且记不清哪些是示例代码中的程序。
大致如下:
1) 使用CreateGrammarFromString()将string表示为grammar的内部表示


--  作者:zlei12
--  发布时间:5/5/2008 7:32:00 PM

--  
2) 其内部表示是一个list<AsrGrammarEntry*>
3) 再护一个GrammarQueue,记录所有grammar,enable/disable时也要用;
4) 每个Grammar类有一个CheckPhrase()方法,用于检查输入是否符合这个Grammar,因为Recognize()接口需要返回匹配的grammar。参见http://bbs.xml.org.cn/dispbbs.asp?boardID=47&ID=61488的5楼。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
60.547ms