自动应答系统的设计与实现.docx
- 文档编号:4775516
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:31
- 大小:367.66KB
自动应答系统的设计与实现.docx
《自动应答系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《自动应答系统的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
自动应答系统的设计与实现
学号14062402041
毕业设计(论文)
题目:
自动应答系统的设计与实现
作者李科届别2010届
院别计算机学院专业计算机科学与技术
指导老师胡娟职称讲师
完成时间2010年5月15日
摘要
自动应答系统是指在没有工作人员值班的情况下,由系统自动处理来自用户的呼叫,通过语音给出用户各种操作提示,并根据用户的操作来执行相应的命令,完成用户所要实现的功能或提供用户所需要的信息。
例如当前流行的一些语音电话系统,手机的客户服务中心以及各种自动查分系统等都是自动应答系统的具体应用。
随着信息需求的急剧增加,这种应答系统已经不仪仅局限在电信,银行等大型企业中,许多中小公司和企业对应答系统的需求也越来越强烈。
而传统的呼叫中心的建立完全依仗于硬件平台,因此成本较高,往往超过了中小企业的承受范围。
在这种中小用户简单的自动应答需求、传统应答系统的硬件高成本的工程背景下,本软设计采用Visualc++实现,硬件仅需一块语音Modem。
其使用的TAPI是TelephonyApplicationProgrammingInterface的缩写,是桌面集成的标准。
本设计可以由用户定制功能,对不同的硬件兼容。
该系统可以实现:
振铃语句等候呼入的电话,可以取得来电的主叫号码、被叫号码和设置应答前振铃的次数。
应答语句等候呼入的电话,可以应答来电。
呼叫语句可以对外进行呼叫。
放音语句可以播放语音文件。
留言语句可以将对方的声音录制到语音文件。
说话语句可以将文字通过语音合成转化为声音,播放给通话的另一方。
休眠语句可以暂停流程的运行。
话筒耳机语句可以操作VoiceModem的麦克风和扬声器。
关键词:
自动应答系统;TAPI3组件;呼叫中心
Abstract
Telephoneautomaticansweringsystemmeansthereisnostaffondutyinthecase,automaticprocessingbythesystemfromTheuser'scall,throughthevoicepromptsgiveusersavarietyofoperationsand,basedontheuser'sactionstoimplementthecorrespondingCommand,completeuserfunctionalitytobeachievedortoprovideuserstheinformationtheyneed.Forexample,someofthepopularVoicetelephonesystem,mobilephonecustomerservicecenterandavarietyofautomatedinspectionsubsystemsareallautomatedvoiceresponseConcreteapplicationofthesystem.Withtherapidincreaseininformationneeds,thisresponsesystemisnotonlylimitedtoelectricalapparatusLetter,banksandotherlargeenterprises,manysmallandmediumcompaniesandenterprisedemandresponsesystemmorestrongly.Thetraditionalcallcentertoestablishafullyrelyonthehardwareplatform,thehighcost,oftenmorethanTolerancerangeofsmallandmediumenterprises.
Inthissmalluserdemandforsimpleautomatedvoiceresponse,thetraditionalresponsesystemHardwarecostoftheprojectbackground,thesoftdesignwithVisualc++implementation,thehardwareonlyavoiceModem.ItsuseofTAPIistheTelephonyApplicationProgrammingInterfaceacronymIsthedesktopintegrationstandards.Thedesignfeaturescanbecustomizedfordifferenthardwarecompatibility.Thesystemcanberealized:
ringingstatementtowaitforincomingphonecallscanbemadecallingnumber,beingCalledthenumberandsetnumberofringsbeforeanswering.Statementtowaitforincomingcallanswering,cananswerthecall.CallStatementcanbecalledtheexternalcall.Playbackstatementcanplayaudiofiles.RecordingstatementsiJ'totheothersideSoundrecordingtoaudiofiles.Talkstatementscanbetransformedintotextthroughaspeechsynthesizersounds,playtopass.Iftheotherparty.Sleepstatementcansuspendtheprocessrunning.VoiceheadsetmicrophonecanoperatestatementModem'smicrophoneandspeakers.
Keywords:
QuestionAnswerSystem;TAPI3components;CallCenter
1绪论
1.1课题背景
随着一些智能化仪表及控制设置在生产和生活中的普遍应用,使得控制和测试的准确度有了进一步的提高。
而这些仪表或控制系统通常还提供另一种功能——数字通讯,通过数字通讯接口可以使之与计算机或其它设置实现数据共享,从而实现更高层次的数据分析及综合控制。
这此仪表通常提供一种或多种通讯接口,其中比较常见的通讯接口有:
RS-232(串口)、RS-485、RS-422、HART、乙太网接口等。
RS-232接口由于具有电器特性简单、实现成本较低的特点,而为大多数设备所支持。
使用计算机直接与串口设备通讯实现过程比较简单,只需按着相关指命或协议建立应答关系即可。
在这里我要介绍的是一种串口通讯的扩展方式——利用Modem自动应答实现远程串口通讯。
在实现应用中,我们经常会遇到数据使用者(计算机、其它具有通讯功能的智能通讯设备)与智能仪表或控制设备之间的距离较远(超出了RS-232直接通讯距离),这时我们就要根据通讯距离及环境条件对通讯进行扩展。
在距离不太远(不超过RS-485或RS-422通讯距离)时,我们可以通过在两端增加RS-485/RS-422转换器,并铺设通讯电线即可。
对于通讯距离更远且通讯的两端都具有可互通的电话网的环境(没有其它网络环境)时,使用Modem对通讯距离进行扩展,不失为一种比好的方法。
使用Modem对通讯距离进行扩展时,在数据请示端和远程应答端都要安装一个Modem,并将它们连接到本地的电话网上。
另外,我们需通过AT命令对Modem进行初始化,使通讯网络具有自动恢复能力。
自动应答系统是指在没有工作人员值班的情况下,由系统自动处理来自用户的呼叫,通过语音给出用户各种操作提示,并根据用户的操作来执行相应的命令,完成用户所要实现的功能或提供用户所需要的信息[1]。
例如当前流行的一些语音电话系统,手机的客户服务中心以及各种自动查分系统等都是自动应答系统的具体应用。
随着信息需求的急剧增加,这种应答系统已经不仅仅局限在电信,银行等大型企业中,许多中小公司和企业对应答系统的需求也越来越强烈。
但另一方面,不少中小企业对建立呼叫中心持谨慎态度,担心企业的投入未见成效反增负担。
在这种中小用户简单的自动应答需求、传统应答系统的硬件高成本的工程背景下,本软设计采用Visualc++实现,硬件仅需一块语音Modem。
系统面向的用户对象:
l,中、小型企业:
2,服务性行业;3,个人电话留言。
1.2课题内容与意义
随着电子技术非凡是数字技术的迅猛发展,电脑自动应答、数字点歌、自动音频服务、自动应答留言电话等各种自动答录系统在越来越多的场合发挥着重要的作用。
这些技术极大地方便了人们的工作和生活,提高了效率。
本文介绍以数字存储方式设计实现的一种简单的自动应答留言系统。
该系统主要采用ISD2590语音芯片进行数字留言,其特点是:
音质好,且可随时更改主人留言信息。
长期以来,全国计量所的业务查询工作是靠收发员接听电话后,由收发员通过所内的查询系统进行查询,答复客户。
仪器收发部门的工作除了收发仪器外,大量工作就是接待客户的完工电话查询,为此需要固定的工作人员专门接听电话。
由于人工接听和操作,不免出现效率低、查询出差、服务态度不理想的现象,这也是广大客户对技术机构服务的一个投诉热点。
随着计算机与电话的融合,国内外的许多大公司都在投入人力和资金进行研究,开发大而全的系统,如Hotvoice公司的XIVR系统作为电信网与数据网互通的解决方案,适应了互联网发展的新趋势,利用现有的发达、便利的电话网络,使得普通用户可以利用常用的电话座机或移动电话,通过友好的语音界面,在任何时候、任何地方都能快捷方便地获得数据网上的信息和服务。
也有一些小的、不稳定的试用产品(如留言精灵),在网上提供。
本设计力求在上述二者问寻找更好的性价比,主要逻辑功能完全是由软件来实现。
当使用计算机自动应答系统,由客户通过电话,根据语音提示,自己在普通电话机的按键上,直接操作我所的业务查询系统,完成查询。
由于电话查询是直接进入电脑系统,方便、准确、快速,不需要人工介入,不存在电话打入不接的现象,减轻了仪器收发部门的工作量,提高了工作效率,改善了服务手段,这是为客户提供优质服务的一种实实在在的具体表现。
2系统开发工具及关键技术
2.1自动应答
自动应答系统(QuestionAnswerSystem,缩写为QASl60)是一种基于因特网的高性能软件系统[2]。
用户通过浏览器以自然语言形式提出问题,在针对某一领域知识库进行特殊处理之后,系统以多媒体的形式自动给出答案,并能针对用户要求进行相关的统计和针对具体情况给出适当的建议。
1)自动应答系统的结构与组成系统采用多层B/S结构,从逻辑上分为Web服务器、应用服务器和数据库服务器。
如图1.1自动应答系统结构图所示。
图1.1自动应答系统结构图
由Web服务器提供系统的输入/输出服务,应用服务器为web服务器提供问题处理的逻辑运算服务,数据库服务器管理系统的应用数据库、语义知识库和领域知识库等。
系统主要组成如下:
l、用户界面:
能与用户用中文或英文进行日常会话交流,接受用户的自然语言问句,并以自然语言语句的形式进行回答。
2、问句分析子系统:
根据统计的疑问词规则、常见疑问句语料、疑问句句模和有关语境,结合领域术语词库和其她语法、语义方面的资源,分析用户输入的问题,在解决歧义、指代关系等问题后,提供问点和寻找相应答案的信息集。
3、词典与知识库:
用于存储受限或非受限领域的知识资源。
4、XML服务子系统:
根据问句分析子系统得到的推理信息集,在相应的电子资源中析取符合要求的答案并提交给界面。
5、答案处理模块:
分析答案间的语义关系,进行适当的合并和裁剪。
6、知识资源管理子系统:
本子系统管理自动应答系统中用到的词库、规则库、领域知识库、语料库等知识资源。
它应提供可视化的知识维护界面,能够显示不同知识资源的结构及其关系,便于灵活操作知识库的存取和维护。
2)词典与知识库
词典与知识库是自动应答系统能够正常工作的本源。
制作一个规模适当、分级合理并可灵活配置的词典是建造自动应答系统的第一步。
这里我们需要强调的是,在自动应答技术涉及的诸多因素中,机器词典的适用性是要求很高的。
词典作为最重要的知识库,它的规模及其词汇知识的描述质量从根本上决定了信息获取效果的好坏。
信息获取的目标是以表达某个事物的概念为基本单位的。
而词是表达概念的基本单位,因而也是信息获取和自动应答的最小单位。
但是一个概念却可以由许多不同的词或词组来表示。
比如同一概念可以有许多不同的名称,实名和指称、指代、缩写、简称等有等价关系;一个名词性概念有代用、相关、从属等关系,动词性概念有方式、工具、程度、时间和原因等谓词框架。
对于这些情况,必须认真搞清楚词之间的同义、近义、反义、从属、隐含、关联等关系,这也就是用概念及其语义关系的集合来组成一个概念语义词典(简称概念词典),信息获取和自动应答实际上是依靠概念词典来搜索过滤语料文本的。
整个过程需要使用知识库和推理机制来确认和提取概念,并且确认其问各种关系的有无,进而组织有序的答案语句。
解决这个问题的基础条件是需要一个用于信息获取和自动应答的基于词典的知识库。
系统使用这个知识库,就可以事先对文献进行语义概念(义项)标注,这样,其查找效用会极大地提高。
而概念(义项)标注要求对现代汉语词语进行语义分类(义类),使表达同一个概念的词都出现在同一个义项代表的词群中,即每个词语都按其义项确定了类别嘲[3]。
实践也已经表明,现代汉语信息处理的关键问题在于对于名词和动词两类词的语法、语义研究的深入。
二者在汉语语法、语义方面占有无可替代的支配地位,而且二者在汉语词汇量中占有压倒优势的份额。
汉语信息获取和自动应答的语言分析也应该以动词和名词作为重点。
因此,用于自动应答的基于词典的知识库的主要内容应该是有关动词和名词的全面信息。
2.2TAPI
TAPI(电话应用程序编程接口)技术是Microsoft公司和INTEL联合提出的一套用于CTI(计算机电话集成)的技术标准[4].它朝代了简单而通用的在两个或更多的机器之间建立连接的方法,并可访问连接里的媒体流.TAPI将呼叫控制机制抽象为应用程序通用接口,从而允许不同的通信协议共同存在.利用TAPI技术开发的应用系统与硬件无关,也说是说,应用系统可以在支持TAPI标准的任何硬件上运行.采用TAPI技术,开发人员几乎可以不用了解硬件的相关细节,而只要了解系统的业务流程以及利用TAPI技术实现的原理就可以了。
利用TAPI技术开发的系统,可以实现与公用电话交换网(PSTN)的直接连接、自动拨号;传送文件、传真、电子邮件;接收、存储语音信件:
自动处理拨入呼叫功能。
目前最新版本的TAPl3.0能够支持传统的PSTN电话和IP电话两种电话,为用户提供了一个良好的开发环境[5]。
随着电话和呼叫控制在个人计算机中越来越普通,需要一个通用的电话接口来支持应用程序,使其能够访问任何一台计算机上的电话,通过一个统一的标准,一个呼叫的媒介和数据对应用程序也必须是可用的。
微软的TAPl3.0提供了一个简单和基本的方法,来完成两台或多台计算机连接的建立和传输媒体的访问。
它将呼叫控制的功能抽象出来,以屏蔽不同的、不兼容的通讯协议,为应用程序提供一个统一的接口。
IP电话保持稳步增长,许多企业和组织开始从昂贵的、不灵活的、电路交换的公用电话网向智能的、灵活的、廉价的IP网络转变。
微软预期到该趋势,因此建立起强大的计算机电话体系结构TAPI。
目前它的第三版本,TAPl3.0适合于快速方便地IP电话应用程序的开发。
微软公司的TAPl3.0集成了传统电话的媒体流控制功能。
另处,将原来的TAPl2.1发展为COM组件模式,允许TAPI应用程序以任何一种语言来写,如C/C++或微软的VB。
在TAPl3.0中,无论是呼叫中心、IP电话的集成,还互联网呼叫,其功能都得到了进一步扩充。
TAPl3.0可多点传送媒体IP会议、基于H.323协议的语音呼叫,它将在具有追踪多代理能力的呼叫中心应用程序、基于PSTN的基本语音呼叫、PBX控制、交互式语音应答系统(IVR)、语音信件[6]。
几个方面有广泛的应用。
除了支持传统电话的功能外,微软的TAPl3.0还支持标准的H.323会议和IP广播会议,微软的TAPl3.0还提供QOS质量保证,从而提高会议质量和网络的管理能力。
2.2.1TAPl的4个组件
TAPl3.0COMAPI、TAPIServer、TelephonyServiceProviders、MediaStreamProviders与TAPl2.1相比,微软的TAPl3.0是按COM对象方式来实现的。
从TAPI转向COM组件模式使得组件能够升级TAPI的特性,并允许开发者能够以任何一种语言来编写TAPI应用程序。
TAPIServer从微软的TAPl3.0和TAPl2.1中抽象出来TSPI(TelephonyServiceProvidersIn—terfaee),从而使得TAPl2.1TelephonyServiceProviders能够与TAPl3.0一起使用,保持TAPI的内部状态[7]。
TelephonyServiceProviders(TSPS)负责独立于低层协议的呼叫模型并解释为特定协议的呼叫控制机制。
TAPl3.0对TAPl2.1TSPS提供可靠的后向兼容性,两个IPTSPS缺省地与微软公司的TAPl3.0相匹配:
一个是H.323TSPS,另一个是IP广播会议的TSP。
微软公司的TAPl3.0为访问在一个呼叫中的媒体层提供了一个统一的方式。
TAPIMediaStreamPr—oviders(MSPs)为指定的TSP提供DirectShow的接口[8]。
2.2.2TAPI3的呼叫控制模型
呼叫控制模型如下图2.1所示。
图2.1呼叫控制模型
(1)TAPI
TAPI对象是应用程序访问TAPl3.0的接入点。
该对象代表了本地计算机访问的所有计算机资源,允许一个应用程序解析所有的本地和远程地址[9]。
(2)Address
Address对象表示一个呼叫的源地址或目标地址。
媒体层和中断所支持的地址的容量可以从这个对象中获取。
一个应用程序可以在一个地址等待呼叫,同样也可以向一个目标地址呼出
(3)Call
Call对象代表一个本地地址和一个或多个的其她地址的连按。
Call对象可以想象成电话的主控模式。
所有的呼叫控制都要通过Call对象。
在CallHub中的每一个成员就是一个Call对象。
(4)CallHub
CallHub对象代表了系列相关呼叫的集合。
CallHub对象不能直接由应用程序创建。
它是当有呼叫通过TAPl3.0接入时间接建立的。
通过CallHub对象用户可以解析出在一个呼叫或会议中的其她参与者,可以对其她相关的远程Call对象进行呼叫控制。
(5)Terminal
呼叫终端。
2.2.3TAPl3的使用与主要流程设计
用TAPI能够比较方便地执行一个呼叫和作一个呼叫应答,它对电话的操作方便快捷,给编程者。
带来了很大的方便。
下面是执行一个呼叫和呼叫应答的大体过程。
执行一个呼叫:
创建和初始化一个TAPI对象用TAPI对象解析在一个计算机上的可用地址。
解析每一个地址对象所支持的地址类型。
选择一个地址对象。
有Address对象中的CreateCall方法创建一个Call对象。
选择Call对象的适当终端。
用Call的对象的Connect方法执行一次呼叫。
呼叫应答;创建和初始化一个TAPI对象。
用TAH对象解析在一个计算机上的可用地址。
解析每一个地址对象所支持的地址类型。
选择一个地址对象。
根据不同的媒体类型用适当的Address对象来登记。
用一个Address对象登记呼叫事件句柄。
TAPI通过ITCallNotification通知一个呼叫,并创建一个Call对象。
选择Call对象的适当终端。
用Call对象的Connect方法执行呼叫用Call对象的Answer方法执行应答。
流程控制设计如下:
其中,条件控制语句可以根据条件的逻辑值选择真或假分支继续执行。
多路分支语句可以根据条件的值选择匹配的分支继续执行。
分支匹配语句可以加入多路分支语句中进行匹配。
循环控制语句可以根据条件的逻辑值决定是否反复执行其下的子语句。
程序块语句可以执行其下的子语句。
标号位置语句在流程中设置一个位置,可以让跳转语句转到这里继续执行。
跳转语句可以将流程转到标号所在位置继续执行。
结束流程语句可以跳转到流程结束部分继续执行。
重新开始语句可以跳过流程结束部分,直接返回流程开始部分继续执行。
数据定义部分用于在流程中定义数据,比如变量和数据库,供流程的其她部分引用和操作。
流程开始部分是流程的主要部分,用于应答来话、对外呼叫及和对方进行交互。
流程结束部分是流程的附加部分,用于当对方挂机或退出时的结束处理[10]。
2.3开发环境需求
采用VisualStudio2003集成开发环境,在WindowsXP系统中用c++语言来实现的。
2.4操作系统需求
TAPI是本程序的核心,目前TAPI最新版本是TAPl3.1。
TAPI已经与操作系统集成,所以无需另外安装,但Windows2000中集成的是TAPl3.0,WindowsXP中集成的是TAPl3.1,由于在程序中用到了TAPl3.1中的一些函数,如ITBasicCaallControl2接口,因此要求操作系统为WindowsXP,若用Windows2000则程序的应答功能无法全部使用,只有呼叫功能可用。
2.5MODEM
本程序所实现的上述功能,一方面要有软件的支持,另一方面,也需要有相关的支持。
比如实现来电显示,就需要具备三个条件:
本地电话向当地电信审请了来电显示服务,TSP支持来电显示,以及MODEM也要支持来电显示。
下面是本软件开发时使用的MODEM及效果说明[11]。
型号:
IntelHaMDataFaxVoice(内置)intel56data,fax,voice,speakerphone;
芯片Conexant/rockwell6793
3系统设计目标
3.1分布式系统结构
自动应答系统适用的范围非常广泛,可能需要与各种各样的软件和系统打交道,因此需要和很多其她的系统通讯和集成,而把这些系统都安装到一台服务器上是不现实的,也实际上是不可能的,因为一台服务器毕竟软硬件资源有限,无法同时满足各种业务系统的需求,而且有很多业务软件还相互冲突,根本就无法安装到同一台服务器上.因此有必要采用分布式系统结构和技术,分布式系统(distributedsystem)是建立在网络之上的软件系统。
正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。
因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
把自动应答平台和基本的功能组件安装到一台服务器上,而其她的功能组件则可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 应答 系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)