优选VR虚拟现实IVR动态语音树整体设计概要.docx
- 文档编号:27504304
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:13
- 大小:91.40KB
优选VR虚拟现实IVR动态语音树整体设计概要.docx
《优选VR虚拟现实IVR动态语音树整体设计概要.docx》由会员分享,可在线阅读,更多相关《优选VR虚拟现实IVR动态语音树整体设计概要.docx(13页珍藏版)》请在冰豆网上搜索。
优选VR虚拟现实IVR动态语音树整体设计概要
优选(VR虚拟现实)IVR动态语音树整体设计概要
XX银行客服中心
IVR动态语音树
概要设计
YY科技(中国)有限公司
二零零三年十月
文档信息
基本信息
项目
XX银行客服中心
用户
XX银行
编号
HXBCC-20032016-PM-00001
版本
1.0
原著
建立日期
2003-10-16
修订状态
○等待修订
●正在修订
○已修订
审核状态
●等待审核
○正在审核
○已审核
修订记录
日期
修订说明
修订者
审核记录
日期
审核意见
审核者
一、动态语音树要求:
在XX银行西安分行的呼叫中心的项目建设中,通过与XX银行总行科技处、软件中心和网上银行业务部的交流,并听取了XX银行已建设呼叫中心的地市分行在客户服务中心使用中的一些经验和建议,针对客户服务中心IVR系统在运行中语音响应慢,交易经常延时的问题特提出本解决方案。
XX银行西安分行对IVR语音系统的功能、性能要求罗列如下:
(1)提供统一管理和定制、维护ivr流程和功能的界面
(2)语音菜单可灵活配置
(3)语音应用的启动与关闭容易操作,有良好的界面
(4)在工作系统可实现流程变更,对生产系统影响小
(5)IVR播音迅速,延迟小
二、设计思想:
(1)我们将整棵语音树划分为若干个过程和功能,过程是只播放语音或播放语音并取得用户输入,不直接返回结果给用户,不执行交易的语音流程段,相当于语音树的开始和中间节点;功能是指返回结果给用户,执行交易的最末端的语音流程段,相当于语音树的叶子节点。
(2)将每个过程进行编号,将他们的定义和相关信息以及彼此的关系在数据库中(Access)给与定义和存储,并在前端提供界面让用户管理和定制、维护和修改。
每个过程自身所需的参数和过程与过程之间,以及过程与功能之间彼此联系的接口参数,存储在数据库中。
(3)将每个功能也进行编号,将他们的定义和相关信息以及彼此的关系在数据库中(Access)给与定义和存储,并在前端提供界面让用户管理和定制、维护和修改。
(4)edify流程设计、开发时利用数据库中的定义和相关信息来进行模块的开发和连接。
(5)设计动态语音树前端通过程序将数据库中的数据和前端展现联系起来,用户对语音树的定制、维护修改与数据存储对应。
(6)用户每次定制、修改语音树完毕后,执行一遍我们开发的语音树修改提交程序,将edify流程运行前先将所需的参数值预先取到edify服务器本地,解决ivr播音慢,延迟大的问题。
(7)Unihub为XX银行西安分行提供的IVR系统建立在EdifyEWF8.0语音平台之上。
通过简洁明了的系统管理界面就可以集成EdifyEWF8.0强大的语音应用编辑与管理功能。
系统架构如下图所示:
三、数据库模型设计和说明:
(1)表Procedure1
说明:
1、我们将一个过程中的语音分为两类:
一类是只播放录音,不需要与用户交互,不取得用户输入的,或是取得用户输入(如让用户输入用户名、口令),但不影响语音流程走向的的语音,在表中存放这类语音文件名字的字段我们以Pro_Vox开头,其描述以Pro_Desc开头,如:
Pro_Vox1,Pro_Desc1。
从1开始,我们在表中最多可定义30个这类语音。
edify程序调用并播放语音时我们可以按照需求指定播放哪些编号的语音,也可以从前往后依次播放,如:
Pro_Vox1、Pro_Vox2……….Pro_Vox10。
我们初步设计预留10个位置给这些需要连续播放的语音文件,用户可以随意增删改,只是需要注意我们是按照1-10这样的顺序播放的,而且注意业务逻辑和需要。
剩下的20个位置我们预留给过程中其他的需要取得用户输入,但不确定语音流程走向的语音,如输入客户号,密码,输入股票代码等等,这些语音就需要根据需求和应用需要,在开发前就指定位置,可以根据应用需要变更语音内容(但注意其业务意义),但这个位置语音所代表的意义就不能随便变更了。
因为,我们是根据位置来确定这段语音的意义的,如:
Pro_Vox11是提示输入客户号的,Pro_Vox12是提示输入客户号密码的,这样我们写应用时,当需要调出提示用户输入客户号的语音时,我们就会去指定位置找这个语音。
因此,用户维护时其提示语音内容可以修改,但修改后这个位置的语音的功能还必须保持不变。
另一类是既播放录音,而且提示用户输入其选择,一般是(0,1,2,3,4,5,6,7,8,9,#)等单键值,最终结果影响过程走向的语音,在表中我们以Key开头存放可以的按键,存放这类提示选择按键的语音文件名字的字段我们以Voxfile开头,其描述以Voxdesc开头,如:
Key0,Voxfile0,Voxdesc0。
从0开始,我们在表中最多可定义12个这类语音。
edify程序调用并播放语音时我们可以按照需求指定播放哪些编号的语音,也可以从前往后依次播放,如:
Key0,Voxfile0,……….Key11,Voxfile11。
我们是按照从0到11的依次顺序播放这些提示选择按键语音的,用户调整了他们的存放位置,就调整了播放顺序。
不想播放哪段录音也很方便,只需要将这个语音文件名从表中相应的位置删除掉。
2、我们将一些程序调用中可能用到的定义信息也放在了表中,如此过程中总共有几个按键走向(也就是有几个二类语音文件)Total_key,有几个一类语音文件Vox_No,最多按几个键,最少按几个键,确认键,返回退出键等。
3、我们每个功能块在需要使用,即处于没有关闭的状态时,都必须对应有一个或多个上级父节点(过程)。
其实就是在过程表中,能找到它被使用的定义。
我们可以定制一个功能,如:
FuncClose内容为提示播音:
对不起,此功能尚未开通(或已经关闭)。
这样当我们需要关闭某一功能的时候,就维护过程表,将相应的按键对应的CallName字段的值置为FuncClose。
需要开放时再将相应的按键对应的CallName字段的值置为所对应的功能名称。
一般,我们会在某一功能执行完后,将语音流程返回上级菜单。
另外,我们在程序中进行了适当的出错控制,如:
在数据库中找不到按键对应的功能名称,或找到的名称与现有所有的功能或过程的名称不能对应,我们提示:
系统错误,然后返回让用户重新选择按键。
最多返回次数,可以由系统变量MaxError来在表lstVar中定制。
字段名
字段类型
说明
Pro_name
TextString(ALL)
过程名称(用英文或数字代码)PK
用来唯一标识此过程,不可重复,不可让用户修改。
Pro_desc
过程中文描述
Total_key
共有几个按键走向
Vox_No
共有几个一类语音文件
Max_key
最多按几个键
Min_key
做少按几个键
Valid_ke
有效键
Complete_key
完成确认键
Abort_key
返回退出键
Key0
电话上可以输入的按键:
0,1,2,3,4,5,6,7,8,9,#,*
Voxfile0
与按键相关的语音文件名(二类),
带后缀,如:
1000.vox
Voxdesc0
语音文件描述
Flag0
按键后执行过程还是功能的标志:
1、过程
2、功能
CallName0
按键后执行的过程或功能的名称或代码
。
。
。
。
。
。
。
Key11
Voxfile11
Voxdesc11
Flag11
CallName11
Pro_Vox1
一类语音文件名,带后缀
Pro_Desc1
语音文件描述
。
。
。
。
。
。
。
。
。
Pro_Vox30
Pro_Desc30
(2)表Function
功能表中是语音树中叶子节点的相关信息,我们主要在这里保存语音信息,现在我们暂定每个功能最多可以使用11条语音,从Voxfile1到Voxfile11。
针对不同的功能每个文件的意义不同,因此需要注意是维护人员要对业务非常清楚,定义好每个编号的文件的意义后,语音内容可变动,但此编号代表的意义不能随意变动。
字段名
字段类型
说明
Fun_name
TextString(ALL)
功能名称(用英文或数字代码)PK
用来唯一标识此过程,不可重复,不可让用户修改。
注意与过程表(Procedure1)中过程所对应的功能保持一致性。
Fun_desc
功能中文描述
TotalVox
共有语音文件
Voxfile1
语音文件名称,带后缀,如:
1000.vox
Voxdesc1
语音文件描述
。
。
。
。
。
。
。
Voxfile11
Voxdesc11
(3)表SystemVar
这里面的内容需要根据需求,在需求分析之后,详细设计阶段进行确定,目前能想到的有:
容许用户出错次数(MaxError)、执行到功能后的返回键(RetKey)(在过程中返回键,可以自己定义)、放置语音文件的目录(VoxDir),如:
c:
\vox\,注意路径之后带上”\”。
字段名
字段类型
说明
Name
TextString
Edify流程设计时可能用到的系统变量的
代码
Value
TextString
值
(4)表AppVar
这里面的内容需要根据应用,在开发过程中间逐步充实,目前能想到的有Icm需要的信息和各种交易过程中需要用到的信息。
程序在使用的过程中可以增、删、改。
字段名
字段类型
说明
Name
TextString
Edify流程设计时可能用到的系统变量的
代码
Value
TextString
值
详细表结构和模拟数据参见数据库dongtai.mdb
四、基于动态语音树的Edify设计、开发思想
(1)基本思想说明
我们基本的思想是根据数据库中各个过程、功能和系统变量、应用变量的定义来动态的去实现根据客户选择的语音树。
首先将四个表读到EWF本地,将所有数据取出放在四个相应的List变量中,然后我们从中取得第一个需要执行的过程的相应信息,如:
Start,这第一个过程相对来说比较特殊,因为它是程序的开始,相对比较固定,我们可以直接Call(Start)。
当我们取得了Start中的相应参数后,播放语音并取得用户输入按键后,我们根据这个按键值去List中取得相应的下一个需要执行的过程或功能的名称,假如是Query。
然后,需要我们注意了:
1、我们首先约定所有过程和功能在定义和被调用时都是统一的7个参数:
lstApp(应用变量),lstVar(系统变量),lstProc(过程定义),lstFunc(功能定义),Phone(电话),Icm(Icm变量),strError(返回错误变量)。
2、然后我们根据事先的设计将所有需要的子过程和功能开发出来。
3、我们定义一个变量如:
strProOrFunName来接收我们取得的下一个需要调用的过程或功能的名称。
然后,我们Call(strProOrFunName),如果strProOrFunName的值是Query,我们就调用了Query这个过程,如果是其他的如:
Balance,我们就调用了Balance这个过程。
这样我们就能通过修改数据库中下一个节点的名称,来实现动态的配置语音树。
(2)公用函数说明
1、GetProcVoice
功能:
取得过程中那些不需要用户输入的连续播放的语音文件:
Pro_Vox1、Pro_Vox2……….Pro_Vox10。
有则播放,没有则不播放。
输入:
lstProc,strProcName,lstVar
输出:
strError,sentence
说明:
返回的strError如果是“Good”,说明取得播放语音的文件,则PlaySentence,否则没有可以播放的语音文件,不播放,程序往下走。
2、GetProcVoxS
功能:
取得过程中那些提示用户输入的,但不是决定走向的,需要播放的语音文件:
Pro_Vox11、Pro_Vox12……….Pro_Vox30。
根据应用规则,一次只能取一条。
输入:
lstProc,strProcName,lstVar,intVoxNo
输出:
strError,sentence
说明:
intVoxNo是指定取第几条语音,11则是Pro_Vox11,12是Pro_Vox12,以此类推。
返回的strError如果是“Good”,说明取得播放语音的文件,则PlaySentenc,否则没有可以播放的语音文件,不播放,程序往下走,可能再执行Call(GetProcVoxS),继续去取需要的下面的语音。
3、GetProcKeyPara
功能:
取得过程中那些提示用户按键输入的语音文件所需要的一些参数。
一般要求全部都取到,如有空缺,取默认值。
输入:
lstProc,strProcName,lstVar
输出:
strValidKey,strCompleteKey,strAbortKey,intMaxKeyNum,intMinKeyNum,strError
说明:
返回的strError如果是“Good”,说明至少取得了一个需要的按键参数,否则说明此过程数据库中定义有错,提示系统错误,挂机。
这些参数在CallAskSentence时是需要当作输入参数的,我们一般可以定义确认键和退出键的默认值为:
#和*。
4、GetProcVoxK
功能:
取得过程中那些提示用户按键输入的,决定语音流程走向,去下一个过程或功能的,与按键一一对应的需要播放的语音文件:
Voxfile0、Voxfile1……….Voxfile11。
根据应用规则,一次将从0到11全部扫描,将各字段位置上有语音文件的全部拿出来,依照顺序播放。
输入:
lstProc,strProcName,lstVar
输出:
strError,sentence
说明:
返回的strError如果是“Good”,说明取得播放语音的文件,则PlaySentenc,否则没有可以播放的语音文件,说明此过程数据库中定义有错,提示系统错误,挂机。
5、AskSentence
功能:
将需要取得用户输入的语音文件播放出来,并取得用户的输入,然后输出出来。
输入:
phone
(1),Sentence,strValidKey,strCompleteKey,strAbortKey,intMaxKeyNum,intMinKeyNum
输出:
strChoice
说明:
返回的strChoice只要不是空,我们就可以根据这按键去数据库中取得此按键所对应的下一个功能或过程的名称。
6、GetProcApp
功能:
根据取得的用户按键去搜索lstFunc,得到该过程,此按键下,应该调用的下一个过程或功能的名称。
输入:
lstProc,strProcName,lstVar,strChoice
输出:
strError,strAppOrProc,strAppOrProcName
说明:
返回的strError如果是“Good”,说明取得了此按键下应该流转的下一个功能或过程的名称,则Call(strAppOrProcName),否则此过程数据库中在此按键下没有定义过程或功能,提示系统错误,回返,让用户重新选择按键。
如果用户选择了4次(具体多少次可从系统变量中取),还是没有获得下一个过程或功能的名称,则提示系统错误,,记下日志,然后挂机。
7、GetFuncVox
功能:
取得功能中那些在特定阶段需要播放的语音文件:
Voxfile1
、Voxfile12……….Voxfile11。
根据应用规则,一次只能取一条。
输入:
lstFunc,strFuncName,lstVar,intVoxNo
输出:
strError,sentence
说明:
intVoxNo是指定取第几条语音,1则是Voxfile1,2是Voxfile2,以此类推。
返回的strError如果是“Good”,说明取得播放语音的文件,则PlaySentenc,否则没有可以播放的语音文件,不播放,程序往下走,可能再执行Call(GetFuncVox),继续去取需要的下面的语音。
Unihub呼叫中心事业部宋奇志
2003年10月16日
谢谢阅读!
!
!
随心编辑,值得下载拥用!
专业│专注│精心│卓越
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优选 VR 虚拟现实 IVR 动态 语音 整体 设计 概要