【word】 计算机语音查询系统开发
计算机语音查询系统开发
计算机语音查询系统开发
赖友源
(广东
职业技术学院,广州510520)
系统解决方案
;-舞j秘口碧毋嚣|g
摘要:利用先进的Dialogic语音卡将电信,厶\共交换网与计算机数据
库技术相结合的语音查询系统,克服了传统窗13’
查询方式的不足,为用户提供优质的查询服务.
关键词:数据库服务器;功能模块;事件流
DevelopmentofComputerTelephonyQuerysystem
I—AIYou—yuan
(GuangdongPolytechnicCollege,Guangzhou510520,China)
Abtract:TheadvancedDialogicvoicecardisusedtoimplementavoicequerys
ystemwhichcombineswithtelecompublicswitchingnetwork
andcomputerdatabasetechnology.Thissystemcouldofferbetterservicesfor
theriserandovercomedefectsofthetraditionalquerywindows.
Keywords:databaseserver;functionmodule;eventflow
0引言
基于电话网的语音查询系统已经应用于各个领
域,掌握开发过程的关键步骤,可不断研究出与时宜相
配称的先进产品.以公金查询系统为例介绍计算机
语音查询系统的开发.
l总体
1.1功能需求
语音查询系统需满足用户的查询需求,可以在任
何时间,任何地点进行有效的查询,再没有时问和空间
上的限制,用户所需要做的就是拨打查询热线号码,并
提供查询用户ID和密码就可以了.
1.2系统配置
针对查询服务的现状和现有设备,语音查询系统
利用一块语音卡(Dialogic卡)进行前端电话查询受理,
并设立后端数据库服务器为受理前端进行数据提供
服务.
该语音查询系统以数据库服务器(DBSERVER)作
为整个公积金查询系统的中心服务器,它的数据来源
是各个业务营业点的业务受理计算机,这些计算机定
时将业务更新数据送到中心服务器,rI1心服务器接收
到这些数据后,经验证完整无误后,对DBSERVER进行
更新.
数据库服务器采用UNIX作为操作系统平台,数据
库服务器软件选用INFORMIX;电话查询受理前端的语
音平台选用Dialogic(两线),以及Dialogic的语音开发平
收稿日期:2010—03—03
台WindowsNT.
1.3查询实现步骤
查询实现步骤:
(1)拨通语音查询热线号码.
(2)按语音提示:键入用户查询号码(ID)并确认;
键人用户密码并确认;键入查询事项号;键人查询参数
(如需要的话).
(3)等待收听.
(4)重复(2),(3)或挂机.
2功能模块
从功能来看,该系统分为3个功能模块.
2.1语音卡接口功能模块
主要分为2个部分:从语音卡接受用户查询输入以
及通过语音卡输出查询结果(语音形式),所涉及的主
要是硬件的接口编程问题.
2.2身份验证模块
用户要真正进入功能查询
,必须先通过系统
身份验证,这是为保障用户信息的安全性而设置的.为
了给误输入的用户一个最为准确的提示,身份验证采
用逐层深入验证的
.
全部通过身份验证才算真正成功完成,可以进入
用户功能流程(系统功能结构见图1):
(1)金额查询模块.该模块根据用户的查询请求完
成用户金额的数据库查询,再以语音(话音)的形式将
查询结果表现给用户.
(2)时间查询模块.该功能模块查询用户的缴存时
间.
自动化应用20107期17
系统解决方案
语音接口模块f
l用户身份验证模块l
金额查询模块Il时间查询模块密码修改模块
\I//数据库查澍接r_I模块
图1语音查询系统功能结构图
(3)密码修改模块.该功能模块完成修改用户密码
的功能.
2.3系统设置与管理模块
该功能模块负责完成系统级的配置和管理功能,
主要针对数据库方面的管理.
3事件处理过程
当系统接到查询呼叫后,置状态为ST_WELCOME,
播放提示WELCOME—VOX+INPUTNO—VOX+
ENDLGLVOX,提示输人单位帐号.
事件处理过程详见表1.
表1流程处理表
接收完毕(getdlg—hdlr)提示完毕(play—hdlr)
当前状态:ST_WELCOME当前状态STWELCOME
操作:保存行号和单位帐号操作
1-将语音缓冲数据读人dxinfo;1接收~,-GetDigit0
2一判断数据是备有效.若(用户中断),rJ!IJSETHOOKON.跳.2状态=slrrNPL?O
3一复述输人R?删】MV0x+()+Rf妇l】MA0c_VO)椰1一v(?
当前状态:ST_INPUTNO当自状忿:STINPUTNO
操作排作:
1-将语音缓冲数据读入dxinfo;1接收数~}GetDigit0
2-判断数据:若为’#’,则:(重新输人)2.状~ST1NPUTACC
2-1一保持原状态
2_2_接收数据Ggit0
若为’,则:(继续)
2_3
积兀’A01_Vox+日虹VOx
当前状态ST_INPUTACC当前状态:ST_INPUTACC
操作:保存个人帐号和密码操作:
l一将语音缓冲数据读人dxinfo;l一接收数据GetDigit0
2一判断数据是否有效.若省(用户中断),则SETHOOKON.跳出.纠走
态=STCHOOSE
3-~REPERACC_VOX+(*)+REPWD_VOX”)~TJPS2VOX
当前状态:STCHOOSE当前状态:STCHOOSE
操作:操竹?:
1一将语音缓冲数据读/kdxinfo;1.接tr;~,GetDigit0
2一判断数据:若为’#’,则:(重新输人)2-状态=STPERFORM
2-1一保持原状态
2_2-接收数据GetDit0
若为’,则:(继续)
2.3胡O0sE-V?(+QR?慢vox
当前状态:ST_PERFORM
操作:
1将语音缓冲数据读人dxinfo;
2判断=‘1’,则查询金额并播放;
3判断=‘2’,则修改密码
4判断=‘3’.则查询缴存时间
5否则,
5-1状态=ST_CHOOSE
5播放a{00sE_v()x+QRHv()x
18;www.auto—apply.comi自动化应用
4程序维护
4.1程序内部处理流程
在程序内部,面向用户的大部分操作都是在2个函
数内发生的:gitdg—hdlr()~I]play—hdlr0.前者发生在用户
输入完毕(具体的中断terminal条件I~tpt结构决定)之
后,因此适合于在此进行程序的数据接收工作,以及对
数据的处理,并播放play语音提示,系统播放完毕之后
(同样,中断条件由tpt结构决定)则会调用后者;因此,
后者是发生在语音播放完毕之后,在这个函数里所要
进行的操作一般是进行自定义状态的切换和通过调
用getdigit0接收用户输入并在接收完毕之后系统调用
前者,从而形成一个完整的环状事件流.
4.2中断条件
一
般而言,中断条件分为2种情况:语音播放中断
(例如,用户要求在按键时原来正在播放的语音应该停
止);接受中断.接受中断比较复杂,涉及到的情况比较
多,如最长function时间,最长静默时间,最长接受字符
长度(个数),特殊字符等等,具体的控制在tpt结构(可
以定义tpt数组,从而组合多个terminal条件).
4.3自定义状态
gitdg—hdlr0和play—hdlr0不停地被调用,由于程序必
须区别当前接受到的字符的意义,作用如何,所以必须
自定义流程状态,通过状态的处理和切换来保证程序
实际处理的逻辑性.至于如何自定义流程处理的状态,
则必须根据不同的实际应用来设计.
5维护建议
系统错误一般可分为2类:程序逻辑错误;程序本
身运行出错.
对于第…种错误,重点应该检查以下几个部分:
自定义状态是否合乎实际应用逻辑(程序通盘设计一
级);状态切换是否合适(主要在play—hdlrO里,语句为
dxinfo[channum].state=ST_XXXXX);对状态的处理是
否恰当(主要在getdg,hdlrO里,可检查switch语句).
对于第二种错误,最可能发生在对数据库查询或
其它涉及到数据库的操作中,需第一时间检查的有2个
地方:SQL句柄的分配(初始化)和释放.
程序对于每一个语音通道的启动都将启动一个进
程来负责,因此,要重视如何避免进程间资源共享冲突.
6展望
该系统利用了电信公共网络资源,是融合通信
的一个例子.而融合的语音和数据网络将是一个开
放的分组传输网络,在这个意义上的应用前景是十
分广泛的.