基于网络的语音传输系统 毕业设计_第1页
基于网络的语音传输系统 毕业设计_第2页
基于网络的语音传输系统 毕业设计_第3页
基于网络的语音传输系统 毕业设计_第4页
基于网络的语音传输系统 毕业设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于网络的语音传输系统专业班级: 学生姓名: 指导教师: 职 称: 摘要:随着internet的迅速发展,数字通信网络不仅规模越来越大,服务也开始向话音通信等传统业务延伸。由于internet技术上的先进性,它可以以更低廉的价格提供话音服务,尤其是长途电话服务。未来的语音通信必定会统一到internet来。本文在讨论了有关的网络技术后,对internet上实现语音传输的关键问题进行了探讨,讨论基于分组交换技术的语音连续传输问题。在上述研究的基础上,本文基于tcp/ip网络模型,根据所得结论使用vb作为开发工具,开发出基于tcp/ip网络(主要指局域网)的语音实时交互系统。该语音传输系统由服务器

2、端和客户端(client/sever, c/s)组成,实现全双工语音通信。实验结果表明,在网络传输时延小,传输质量良好的条件下,该系统进行语音交互时语音清晰,杂声小,语音质量基本令人满意。通过大量测试比较发现该系统具有一定实用性。关键词:语音传输 分组交换 vb directsound。the system of voice transportation based on internetabstract:with the development of internet, the date communications network (dcn)began to expand its serv

3、ice to traditional area of voice service. due to the advantage of internet technology, it can provide voice service with much less price, especially in long distance telephone call. the future voice service will surely be united by internet.in this paper, we first introduce some related network tech

4、nology, then do some research work about the key points in voice communication through internet, and discuss speech transmission in succession on the basis of packet switching technology.after the above research work, this treatise base on tcp/ip network model, using vb to develop instrument accordi

5、ng to the conclusion, and develop a real- time speech communication system on the basis of tcp/ip network (means lans mainly). experimental result indicate, in the condition of network delay small and transmit quality well, this system get clear pronunciation, small noise, when being used to communi

6、cation, pronunciation quality satisfactory basically. through testing and relatively, we find that this system should have certain practicality.keyword: speech transmission packet switching vb directsound.目 录第一章 概述11.1 引言11.2 网络语音传输研究概况11.3 本文主要工作3第二章 网络通信42.1 现代通信网络概述42.1.1 基于分组交换的网络42.1.2 数据通信的交换方

7、式52.1.3 各种交换方式的适用范围62.2 现代通信网的发展62.3主要的通信协议92.3.1 tcp/ip协议102.3.2 udp协议132.4 本章小结13第三章 关于语音的处理143.1 声音的采集143.2 direct技术143.3 directsound163.3.1 directsound特性163.3.2 directsound使用173.3.3 声音采集等具体实现173.4 本章小结18第四章 语音传输系统的设计方案194.1 两层c/s结构简介194.2 使用c/s结构的语音传输系统设计方案204.3 本章小结25第五章 语音传输系统的实现与结果265.1 传输时延的

8、解决265.2语音全双工传输中的技术问题的实现275.2.l 采用全双工声卡275.2.2 双套接字技术285.2.3采用双缓冲区实现的语音的记录与播放305.3语音传输实现结果315.4 本章小结33第六章 总结346.1 小结346.2 展望34- 62 -第一章 概述1.1 引言随着信息高速公路的发展,人类社会进入了新的技术革命阶段信息技术革命,它主要涉及到两个方面:信息的采集、处理、存储和显示;信息的传输、共享和交互。其支撑是多媒体技术和网络处理技术。多媒体技术使得计算机处理的信息不再是单一的,而是丰富多彩的,如语音、图像、数据、文字、视频等;网络通信技术的高速发展,使得异地用户能共享

9、各种信息并及时进行实时交互。这也导致了语音传输应用技术的出现1。1.2 网络语音传输研究概况通过internet或intranet等互联网络利用分组交换来传递语音的技术最早出现在1995年2月,人们使用这种技术通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按tcp/ip标准打包,经过ip网络把数据包发送到接收地,再把这些语音数据包串起来,经解码解压处理后恢复成原来的语音信号,从而达到由互联网传送语音的目的。在目前网络传输语音技术主要有ip电话,谈到ip电话,我们不得不谈谈cti(computer telephony intergration)。cti技术是一种计算机与电信技术相

10、接合的产物,是在现有的通信交换设备上,综合计算机和电话的功能,提供更先进更完善的通信方法。它集计算机和通信的优势于一身,将计算机系统良好的用户界面、庞大的数据库、优良的应用软件和通信系统的呼叫控制相结合,能提供基于呼叫的数据选择、计算机拨号、呼叫监视、屏幕管理和语音等功能1。 在cti发展的基础上,近年来出现了ip电话技术。ip电话是ip网与公用电话网相结合的产物。最初ip电话是利用internet来实现远程通话的,只用于实现语音通信。1995年3月,以色列vocaltec公司率先推出了internet phone,他可以利用vocaltec软件、一个声卡、麦克风和internet连接在pc机

11、上进行实时语音通信。虽然开始ip电话以cti的子集出现,但到目前,从技术上看它与cti已没有太大的区别,并且产品已大规模地应用于市场。 ip电话也称为voip(voice over ip,基于ip协议的语音通信),它诞生于cti(computer telephony intergration),是cti的一个子集,是随着cti的发展而发展起来的。它是一种利用tcpip协议实现计算机计算机、电话电话、计算机电话之间的语音通信的技术,由于其采用分组交换技术,整个网络的运营成本大大低于传统的基于线路交换技术的公用电话网,因此具有广阔的发展前景。而h.323作为一种国际标准,为建立技术上统一、可互连互

12、通的 ip电话系统提供了很好的基础。图1-1为ip电话系统的一般结构。该系统可以完成电话电话、电话计算机、计算机计算机之间的语音通信。图中的 ip电话网关属于h.323网关,它提供与公用电话交换网(pstn)的接口,并完成话音数据的编码解码;h.323管理器负责将受话方的电话号码转换为ip地址,并完成认证、计费等工作。自从ip电话出现至今,它已经经历了4代演变。 第一代ip电话称为internet电话,是通过pc上的软件来实现的。通话双方必须用在线pc上相同的软件和语音压缩声卡进行通话。这是初级阶段的ip电话,它比传统的电话繁琐。 第二代ip电话是通过电话黑盒子实现的,在黑盒子中集成了mode

13、m和ip电话软件的功能,通过这个黑盒子用户可以直接用电话上网通话而不必经过pc。但是,这种方式在本质上和第一代ip电话没有区别,你仍不能和没有约好的人通话。 前两代ip电话由于自身的局限性,还没能构成对传统电话的威胁。 第三代ip电话是用软件进行通话,它向传统电话发起了挑战。这也是一种基于ip的通话方式,通过ip电话软件,用户可以通过pc将电话拨到任意一部普通电话机上,这时打ip电话已经没有时间限制,所要求的只是主叫方的pc在线,并且安装了ip电话软件。这种方式已经能够降低电话费用,但对用户来讲还不够方便。 ip电话发展过程中的一个重大突破是1996年vocaltec公司推出了“网关服务器。网

14、关负责将internet和企业intranet等数据网络与公用电话网连接起来,这样internet电话就能通过网关从计算机传送到对方的电话机,也可以在两端都安装网关,实现从一方的电话机向另一方的电话机传送internet电话,而费用仅为本地的电话费加上很少的服务费,于是就出现了第四代ip电话。 目前,第四代ip电话已经有成熟的产品出现,它和打普通电话一样方便,而费用只有普通电话的几分之一到几十分之一。第四代ip电话是基于ip网关的真正意义上的ip电话,对用户来讲,它既经济又方便。1.3 本文主要工作本文对语音传输处理方法做了基本的一些说明和分类,特别介绍了现在网络的基础,现状以及未来的发展趋势

15、。当今较为重要、流行的协议,语音传输实现过程以及如何处理的方法。下面的章节将包含以下部分:第二章描述了现代网络通信网络方面的基本知识,包括通信网的种类,各种网络的优劣,主要的协议以及未来的发展趋势。第三章叙述了语音的处理方式过程,如何采集,采集完后又是如何实现的具体步骤。第四章讲述了语音传输的设计方案,主要是cs模型结构。第五章说明了语音传输系统的实现与结果。第六章是结束语同时包含了对这一技术未来的展望。第二章 网络通信2.1 现代通信网络概述现代通信网络种类繁多,根据使用的交换方式的不同,可将网络分为基于电路交换的网络和基于分组交换的网络。2电路交换(circuit switching)是两

16、计算机或终端相互通信时,使用的同一条实际物理链路,在通信中自始至终使用该线路传输,且不允许其它计算机或终端同时共享该链路。电路交换适用于一次接续后传输长报文的通信。具有实时性强,延迟小的优点,但是也存在线路利用率低的缺点。目前,其承载的主要是语音业务,如传统的电话通信网。电话通信网是进行交互型话音通信,开放电话业务的电信网,简称电话网。它是一种电信业务量最大,服务面积最广的专业网,可兼容其它许多种非话业务网,是电信网的基本形式和基础,包括本地电话网、长途电话网和国际电话网。电话网主要采用电路交换方式,主要由四部分组成:发送和接收电话信号的用户终端设备、进行电路交换的交换设备、连接用户终端和交换

17、设备的线路和交换设备之间的链路。2.1.1 基于分组交换的网络分组交换(packet switching)也叫包交换,它将用户发来的一整份报文分割成若干定长的数据块(即分组),让它们以“存储转发”的方式在网内传输。每一个分组信息都载有接收地址和发送地址的标识,在传送数据分组之前,必须首先进行路由选择建立虚电路,然后依序传送。它主要有x.25分组交换数据网、帧中继网( frame relay)、atm异步传输模式等。相对于电话通信网的话音业务,分组交换网主要用来传输数据业务。1 x.25分组交换数据网1976年, itui(国际电讯联盟标准化部门)正式公布了分组交换数据网的重要标准 x.25协议

18、。以 x.25为核心的数据通讯网有传输率高、通讯质量好、接续时间短、响应快等特点。这些特性的产生是由于该网采用了统计复用技术,实现了建立数据通信链路由固定性、永久性连接向交换式任意连接的转换,大大提高了通信线路的利用率。 2 帧中继网( frame relay)帧中继不象 x.25在低层中实现处理功能,简化了节点的处理过程、缩短处理时间,有效地利用了高速数字传输信息。智能计算机的发展使用户终端设备可处理更高层的协议,从而简化网络功能。帧中继是一种快速分组技术,具有简化网络规程、高速(1.544mbps45mbps)、延迟短、吞吐量大等特点,目前己被广泛采用。 3 atm异步传输模式atm是一种

19、新兴的网络技术,它与现用的时分交换的信息传输方式不同,它是采用统计复用的快速分组交换技术,特别适用于突发式信息传输业务。atm的标准目前还正在进一步完善中。2.1.2 数据通信的交换方式 通常数据通信有三种交换方式:3()电路交换 电路交换是指两台计算机或终端在相互通信时,使用同一条实际的物理链路,通信中自始至终使用该链路进行信息传输,且不允许其它计算机或终端同时共亨该电路。 ()报文交换 报文交换是将用户的报文存储在交换机的存储器中(内存或外存),当所需输出电路空闲时,再将该报文发往需接收的交换机或终端。这种存储转发的方式可以提高中继线和电路的利用率。 ()分组交换 分组交换是将用户发来的整

20、份报文分割成若于个定长的数据块(称为分组或打包),将这些分组以存储转发的方式在网内传输。第一个分组信息都连有接收地址和发送地址的标识。在分组交换网中,不同用户的分组数据均采用动态复用的技术传送,即网络具有路由选择,同一条路由可以有不同用户的分组在传送,所以线路利用率较高。2.1.3 各种交换方式的适用范围 ()电路交换方式通常应用于公用电话网、公用电报网及电路交换的公用数据网()等通信网络中。前两种电路交换方式系传统方式;后一种方式与公用电话网基本相似,但它是用四线或二线方式连接用户,适用于较高速率的数据交换。正由于它是专用的公用数据网,其接通率、工作速率、用户线距离、线路均衡条件等均优于公用

21、电话网。其优点是实时性强、延迟很小、交换成本较低;其缺点是线路利用率低。电路交换适用于一次接续后,长报文的通信。 ()报文交换方式适用于实现不同速率、不同协议、不同代码终端的终端间或一点对多点的同文为单位进行存储转发的数据通信。由于这种方式,网络传输时延大,并且占用了大量的内存与外存空间,因而不适用于要求系统安全性高、网络时延较小的数据通信。 ()分组交换是在存储转发方式的基础上发展起来的,但它兼有电路交换及报文交换的优点。它适用于对话式的计算机通信,如数据库检索、图文信息存取、电子邮件传递和计算机间通信等各方面,传输质量高、成本较低,并可在不同速率终端间通信。其缺点是不适宜于实时性要求高、信

22、息量很大的业务使用。2.2 现代通信网的发展进入信息社会,人类的活动越来越多地依赖于网络,网络日益成为现代社会的基础结构,网络社会将由包含若干个不同种类的网络逐渐发展为仅包含一个综合性的网络。这就是网络发展的趋势综合化。如果从电路交换和分组交换方式来看信息网的发展,那么它们最终将过渡到isdn。如图2-1所示。 图2-1 网络的发展网络的发展不仅要实现交换和传输的综合,也将实现各种信息业务(包括语音业务)的综合。数字传输和数字交换技术的发展,促使传统的模拟电话网向综合数字网(integrated digital network)过渡。在idn的基础上,80年代初提出了不仅可实现传输和交换的综合

23、,也可实现各种业务信息的综合,即综合业务数字网(isdn:integrated service digital network)。综合业务数字网(isdn)是通过网络为用户提供包括数据、话音、图象和传真等各类业务的手段。1984年6月ccitt通过了i系列建议书,提出了isdn的概念:isdn是以电话idn的概念为基础发展而成的网络。它可以在同一个网络中支持话音和非话音的多种业务,提供端对端的数字连接,用户可通过有限的一组标准多用途用户/网络接口接入网络。“综合业务”的关键是指用标准的用户/网络接口实现对业务范围的保证,它既应保证话音信号的传输,又应保证非话音数字信号的传输。isdn的定义可以

24、归纳为以下几点:(1) isdn是以综合数字网(idn)为基础发展而成的通信网;(2) isdn支持端到端的数字连接;(3) isdn支持话音和非话音的各种通信;(4) isdn提供标准的用户/网络接口。isdn的发展大致可分为以下四个阶段:第一阶段:19851990年,实现64kbit/s电路交换的isdn,即由idn演变形成isdn。第二阶段:19901995年,实现用户数字化以及通过数字接口使得用户出入口系统能够和64kbit/s的电路交换网及分组交换网连接。结构如图2-3所示。第三阶段:19952000年,提供各种已有的和即将出现的新业务,实现语音、数据及图象等三种业务的融合,形成高速

25、电路交换和高速分组交换的宽带isdn(b-isdn)。第四阶段:2000年之后,isdn将是能够提供各种通信业务,具有智能功能的宽带综合业务通信网。此时的isdn应具有分组交换功能。结构如图2-4所示。图2-4 高级isdn结构 由于网络发展的趋势必然是综合化,话音业务也将由基于传统的电路交换的网络承载逐步向基于分组交换的网络转变,这也使得研究基于分组交换网络的语音传输变得更有意义,这也促使了这种技术的迅速发展。2.3主要的通信协议几年前,internet仅仅是用于文件传输(ftp )、电子邮件(email )、终端仿真(telnet )和网络新闻,用户数量很少,数据通信基于建立在ip上的两个

26、传输层协议:传输控制协议(tcp)和用户数据报协议(udp)。随着用户的不断增加以及多媒体应用的不断发展,现有的internet协议系统己经逐渐转向多媒体应用的需要。多媒体应用的需求促成了ip版本6 ( ipv6 )、实时传输协议(rtp)和资源预留协议(rsvp)等协议的产生。这些底层协议使得一些internet上的多媒体应用如视频会议、视频点播等成为可能。下图显示了适应多媒体应用的internet协议系统。标准的internet应用(snmp,nfs,ftp)可靠的组播应用(srm)实时(音/视频)应用(rtp)www应用(http,rstp)udprsvptcpip v4/v6低层(ie

27、ee802,xlan,atm)随着音频、视频压缩技术的发展,低速率的视频音频广播己开始出现。在internet上传送实时业务的新技术、新协议也将有着较快的发展和完善。实时业务的传送有着本身的特点,主要是对传输的时延、抖动和带宽有严格要求,即服务质量要有保证。根据tcp/ip协议,ip网络并不能提供严格的服务质量保证。实际上,当初internet设计只有一种简单的服务质量,即点对点的“best effort”数据传送。为了适应实时业务的需求,ietf规定了internet的综合业务结构(integrated service architecture),其中按照业务的应用要求不同,将业务分为两类:

28、弹性业务和非弹性业务。弹性业务,如ftp, email等,能够按照网络的当前状态调整自身的服务质量要求。属于非弹性业务的实时业务不能按照网络的状态调整自身的业务特性,网络必须保证其服务质量,这就需要网络在流量处理、队列管理、拥塞控制等方面建立相应的机制。目前ietf已经提出了rtp. rtcp, rsvp等协议。rtp是实时信息传输协议,通过在数据包内采用时间标签、包含序号、编码方式等方法保证实时信息的传送.rsvp在ip协议的基础上实现资源预留,为非弹性业务保留带宽,并设置队列管理办法。当一个业务需要在一条路径上预定带宽资源时,它向目的地发出一条路径消息,该消息向路径上所有的路由器申请保留资

29、源,同时包含数据流的信息,如平均速率、突发长度等。2.3.1 tcp/ip协议tcp/ip(transmission control protocol/ internet protocol)协议是网络上流行的通信协议,它也是一套工业标准协议。它具有路由性,其耐用性好,功能高效。它最初是为维护核战争情况下现场通信联系和数据发送的快速传递而设计的一套wan协议。在此之后,该协议的发展从政府部门传到了internet团体手中。tcp/ip协议有如下优点:如今它是一个工业标准协议。由于tcp/ip不是由某个公司维护或编写的,所以就不存在像其它协议那样的兼容性问题.internet从总体上考虑是否需要改

30、变某个实现。当然,这与迅速改变它相比,减慢了新特点和性能的实现速度,但它确实保证了该变动是经过详细考虑的并能利用其它的大多数tcp/ip工具为它提供功能,也保证了在internet上可以随时获得公开说明书,它详细说明了怎样使用这一套协议和协议是怎样实现的。它是一组连接不同操作系统的实用程序.人们为tcp/ip开发了许多连通性实用程序,包括文件传送协议(ftp)和终端仿真协议(telnet )。由于这些实用程序使用windows socketsapi,计算机之间的连接并不依赖于其上的操作系统。例如,microsoft的ftp客户可通过unix ftp服务器来发送文件,而收发双方都不用担心兼容性问

31、题。这个功能也使得运行telnet的windows nt机可以在运行telnet服务器的ibm主机上访问和运行命令。它是一个可伸缩的交叉平台客户/服务器结构。考虑tcp/ip协议组的应用程序的最初发展情况.厂商都想编写他们自己的客户/服务器应用程序,例如,sql服务器和简单网络管理协议(snmp )。如何编写该应用程序的详细说明也是公开的。究竟应该包括哪种操作系统?每个用户都想利用tcp/ip提供的连通性选项,而不因使用的操作系统不同而改变。因此,人们使用windows sockets api,从而使得利用tcp/ip协议的应用程序被写成标准的、统一的界面。由于使用者各异,所以操作系统也是多种

32、多样,tcp/ip的windows sockets的详细说明使得操作系统对应用程序是透明的。tcp/ip既支持windows sockets,也支持其它的windows sockets连通性,与tcp/ip组一致。可访问internet. tcp/ip实际上是internet协议,允许访问地球上成千上万个站点的大量信息。tcp/ if模型有四个层次组成,如图2-5所示:应用层application传输层tcp网间网层ip网络接口lan图2-5应用层:向用户提供一组常用的应用程序。比如文件传输访问,电子邮件等,用户也可以在传输层之上建立自己的专用的应用程序。传输层:提供应用程序间(端到端)的通讯

33、。其功能包括:格式化信息流,提供可靠传输,为实现后者,传输层协议规定接收端必须发回确认(acknowledge),并且假如分组丢失,必须重新发送。传输层还要解决不同应用程序的识别问题,为区别各种应用程序,传输层在每一分组中增加识别信源和信宿应用程序的信息。另外,传输层每一分组均带校验和,接收机以此校验收到分组的正确性。网间网层ip:负责相邻计算机之间的通讯(点到点)。其功能包括三个方面:a.处理来自传输层的分组发送请求:收到请求后,将分组装到ip数据报,填充报头,选择去往信宿机的路径,然后将数据发送到适当的网络接口。b.处理输入数据报:首先检验其合法性。然后进行寻址 假如该数据报己经到达信宿地

34、(本机),则去掉报头,将剩下部分(传输层分组)交给适当的传输协议,假如该数据报尚未到达信宿,则转发该数据报。c.处理icmp (internet control message protocol)报文,处理路径、流控、拥塞等问题。网络接口层:这是tcp/ip的最底层,负责接收if,数据报并发送出去,或者从网络上接收物理帧,抽出if数据报,交给ip层。网络接口有两种类型,第一种是设备驱动程序(如局域网的网络接口),第二重是含自身链路协议的复杂子系统(如x.25中的网络接口)。其中,传输层的tcp是提供应用程序间(即端到端)的通信。其功能包括:格式化信息流;提供可靠传输。它向应用程序提供面向连接的

35、服务,即每次完整的数据传输都要经过建立连接、使用连接、终止连接的过程。本质上,服务类型中的连接是一个管道,发送者在一端放入数据,接收者从另一端接收数据。其特点是:收发数据不但顺序一致而且内容相同。这种基于流的连接方式非常符合网络软件的控制命令的传递要求:保持顺序并且内容无误。因此,网络软件的控制连接应采用tcp协议。在tcp/ip网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式,即客户向服务器发出请求,服务器接收到请求后,提供相应的服务。客户服务器模式的建立基于以下两点:一、建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资

36、源较少的客户请求服务这一非对等作用。二、网络间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户/服务器模式的tcp/ip.2.3.2 udp协议用户数据报协议(udp)是传输层中的第二个协议udp。该协议是基于非连接的协议,在数据传送前不需在两台计算机之间建立会话。udp包与tcp包一样,仍然传送给接口或端口。由于udp不要求在计算机间建立会话,它不能保证包被正确发送,当包丢失时,也不保证重新发送。使用udp的一个主要原因是发送udp数据报只需非常小的额外开销。udp数据报不需要同步

37、参数或优先选项。它不必跟踪序列数、重发定时器以及延时确认定时器,也不需重发包。只需要源端口,目标端口,数据长度,头校验和数据。lop快速,流线式工作,不带保证。因此,udp非常适用于广播、网络通告或实时数据传送。udp的用场是流动视频和音频。不带保证性的包传送不仅能够传送更多的数据,而且重发包也是没有意义的。在流广播中,用户更关心下面是什么,而并不特别在意一两个未到达的包是什么。例如在听cd时,某cd凹槽落入了灰尘。这点小错误听者往往是觉察不到的;大脑可能自动补上了。如果cd播放机要保证每个数据的准确性,就不能随意地跳过了。这实际上浪费了大量的时间,udp就是为使用这种方式的应用程序开发的。在

38、因特网上传送声音有一些可以利用的特点。如:1.声音相对于别的类型的数据如程序、文本等对误码不敏感,一般不需要误码重传机制来保证声音数据的准确率;2.接收方并不严格要求声音分组的严格按序到达,少量的不按序到达只会造成声音的偶尔抖动。2.4 本章小结本章叙述了现代通信网络的基本知识,发展方向,分类情况等,同时也介绍了一些十分重要的通信协议以及各自的用途,有了这些基本的知识理论我们将可以更好的进行语音处理的研究。下一章,我们将就这个问题继续展开探讨。第三章 关于语音的处理3.1 声音的采集windows通过高级音频函数,媒体控制接口mci( media control interface)设备驱动程

39、序、低级音频函数、midi mapper以及低级音频设备驱动提供了音频服务.对于声音的采集以及回放,可以分别有两种相应的方法。第一种方法是采用windows提供的媒体控制接口,mci为用户提供了高层应用的开发手段, 并且提供了与设备无关( device independence)的应用程序接口。程序设计人员在编写程序时,可以不考虑硬件设备而把它当作一个标准的mci设备即可。这里我们必须注意,当我们使用mci进行开发时,对于媒体的操作只能在文件级别上,即我们须对文件进行操作,如音频所对应的wav文件、视频所对应的avi以及midi所对应的mid等。第二种方法是采用windows提供的低级音频服务

40、,使用低级音频函数使应用程序与音频设备驱动程序直接通信的方式。低级音频函数在多媒体计算机中同样为音频硬件提供了与设备无关的接口.使用低级音频函数时,我们可以直接控制声音实时的采集与回放;即我们并没有把声音形成相应的文件方式,而是把采集到的声音放到内存中,形成一种类似流的存储单元。我们可以对此内存中的声音文件进行编辑、传输等。当我们不断将此内存块中的声音数据传向远端计算机时,而远端计算机在收到数据时就回放,这样就形成了一个简单的声音实时通信的功能利用directx技术中的direct sound capture对象来完成对声音的捕获,direct sound进行声音的播放。有了directx技术

41、的支持,不但增强了系统的实时性和高效性,而且使三方通话成为可能。3.2 direct技术directx是windows下图形、声音、输入和网络、游戏等应用程序开发的借口。directx推出的目的是使基于windows的应程序能够高效、实时地访问计算机系统的硬件设备,从而使windows操作系统成为优秀的游戏和多媒体开发平台。directx使windows应用程序开发人员能够直接访问硬件设备,又不破坏windows的设备独立性。41、directx组成directx包含下面几个部分:directdraw实用页面切换的方法提供动画,直接访问图形协处理器,内存的管理。它是direct3d和direc

42、tshow的基础。direct3d它提供了高层和底层的3d硬件接口.directsound提供了立体声和3d声音效果,同时管理声卡内存的使用。directplay为多人游戏软件提供了消息服务,同时还提供启动和组织多人游戏的功能。directinput为大量的设备提供输入服务,同时支持输出服务。direct setup自动安装directx驱动程序。directx原理directx原理称为directness原理,它分为下面三个规则:最快速,这是directx最重要的一点,要使它的操作速度尽可能的快。在这方面需要硬件厂商的大力协助。下面举一异步方法提高速度的例子。如果硬件提供特定的功能,比如内存

43、的移动,directx将首先执行这一操作,然后立即返回执行下一条指令。这一功能将使软件开发这能够从这种多媒体的并行结构中获得最大性能。最短延迟,windows是一个高层的操作系统,它能抽象地使软件从特定的运行环境中独立出来。但是这一优越性的代价是时间延迟的产生。directx的目的是使这一延迟尽可能的短.底层接口,只有实用底层接口才能够使软件开发者自由地操纵硬件,发挥他们的创造性,将五彩缤纷的多媒体世界展现给人们。2、directx结构directx的结构如图3-1所示:directxhal硬件hel图3-1这里是由两个驱动程序:硬件抽象层(hal)和硬件模拟层(hel)组合起来一起响应dir

44、ectx的请求。当directx对象创建时,它会查询硬件并把参数添入“兼容表”。如果硬件能够提供某种特定的功能例如,某图形协处理器能够处理拉伸操作那么directx将会直接调用硬件所提供的功能;如果硬件不支持某项功能,那么与其等价的某hel命令将会被调用.如图所示,hal层包围了硬件层,而hel层则为程序开发人员提供了一组必要的、互相独立的接口。当更先进的硬件生产出来之,以前编写的软件将能够自动地利用硬件的先进特性。例如,当intel推出mmx技术之后,directx马上实现了对它的支持,这样,用directx开发的多媒体程序都能自动地利用mmx技术,使程序运行得更快。3.3 directso

45、und3.3.1 directsound特性directsound提供了两个主要的特性:速度快,可控制性强。以下是它优于win32多媒体api函数的关键领域:.当硬件空闲时自动启用硬件加速。.不受数量限制的声源混音。.声音重现延迟时间短。.自动将输入的wave数据转换位于输出匹配的格式 及时输入为复杂的格式。.支持属性设置,利用硬件的新特性而不改变api函数。正是因为directsound所提供的这些特性特别是硬件混音,使得多方通话成为可能。3.3.2 directsound使用directsound的使用步骤如下:. 枚举输出设备用于寻找可用的硬件驱动程序并返回驱动程序信息。. 生成dire

46、ctsound对象. 设置协作优先级这决定了与其它应用程序之间怎样分享声音设备。. 设置主缓冲区格式. 生成缓冲区对象. 填充并播放缓冲区对象期间涉及到缓冲区的加锁、解锁、声音播放提醒(notify)等内容。3.3.3 声音采集等具体实现使用低层的声音函数对声音进行采集、回放时,声音是存放在一个内存数据块中,当采集缓冲区中数据满时以及回放缓冲区中数据为空时,可以采用相应的消息映射函数来处理相应的过程。声音回放的一般步骤是:1.创建directsound对象;2.创建回放缓冲区,设置数据格式;3 设立缓冲区回放位置通告事件;4.回放声音,利用通告事件获得信息;5.关闭并释放directsound

47、对象,释放缓冲区。声音采集的一般步骤是:1.创建direct sound capture对象;2.建立采集缓冲区,设置数据格式;3.设立缓冲区采集位置通告事件;4.采集声音,利用通告事件获得信息;5.关闭并释放direct sound capture对象,释放缓冲区。首先我们必须检查设备的能力,看该设备所具有的声音处理能力;然后我们就可以使用wave in open或wave out open函数打开录音或放音设备;打开相应的设备后,我们必须为相应的录音或放音设备准备相应的数据结构;相应的数据结构准备好之后我们就可以使用wave in start函数进行录音或wave out write函数将

48、录好的声音数据播放;对录音以及放音缓冲区内容使用后,释放使用的内存单元;所有任务完成后,应该关闭相应的设备。3.4 本章小结本章讨论了语音处理的一些技术,主要是direct技术。包括其组成、结构、作用的概述。同时也大致介绍了directsound的特性及使用。还让我们了解到声音是如何进行采集和其详细的步骤。下面我们将就语音传输系统做具体的设计。第四章 语音传输系统的设计方案由于将要在给出的关于网络传输语音的讨论的基础上使用vb设计开发语音实时交互系统,因此必须先讨论一下程序使用的系统结构。设计方案中本程序将使用两个分立的应用程序,分别作为客户端和服务器端。因此在该软件系统中将使用目前应用比较广

49、泛的c/s结构,下面简单来谈谈c/s结构的基本原理和优缺点。5近年来,客户/服务器(client/sever, c/s)体系结构在分布式系统中得到了广泛的应用。尽管这种模式至今还没有一个完整的权威性定义,但人们对这个概念的基本看法是一致的。在c/s结构下,一个或更多个客户机和一个或更多个服务器,以及下层的硬件网络、操作系统和支撑平台进程间通信系统,共同组成一个支持分布式计算、分析和表示的系统,在该模式下,应用分为前端的客户部分和后端的服务器部分。客户方发出请求,网络通信服务系统将请求的内容传到服务器,服务器根据请求完成预定的操作,然后把结果送回客户。c/s软件体系结构根据层次的不同又分为两层c

50、/s结构和三层c/s结构。根据本系统的应用要求,将使用两层c/s结构。4.1 两层c/s结构简介20世纪80年代,随着人们对友好的人机界面的追求以及微机技术、网络技术的快速发展和成熟,c/s结构应用逐渐普及。传统的c/s结构一般分为两层:客户端和服务器端。其简单图示如图4-1:图4-1两层c/s结构图其基本工作原理是,客户程序向数据服务器发送sql请求,服务器返回数据和结果。客户端负责实现用户接口功能,同时封装了部分或全部的应用逻辑。服务器端的数据库服务器主要提供数据存储功能,也可通过触发器和存储过程提供部分应用逻辑。4.2 使用c/s结构的语音传输系统设计方案该语音传输系统由服务器端和客户端

51、组成,两者之间通过2个winsock连接进行通信,一个连接a负责接收语音(相对于本地应用程序),另一个连接b负责发送语音(相对于本地应用程序)。如图4-2所示。图4-2 客户端与服务器端的语音传输模型考虑到该系统的使用环境为100mbps的局域网,网络延时较小,通信质量较好,故客户端和服务器都采用1s定时器控制语音发送,即每隔一秒钟发送一次压缩过的语音数据。接收端接收到一秒钟的语音数据后,解压后开始播放。使用2个缓冲区,每当发送或接收数据后,就交换使用另一个缓冲区,避免重复写缓冲区引起的语音数据丢失。如此反复使得通信双方都能听到对方的连续语音,但要注意,此时的通信是准实时的,即双方听到的声音都

52、是延时1s后的声音,也就是说听到声音是前1s对方说的话。这是由于语音传输的算法决定的,在对只要求能进行语音通话而对实时性要求不高的场合是不存在问题的。双方通信过程如图4-3所示。1 语音传输系统服务器端服务器端负责设置监听端口号并建立winsock连接的监听,若监听到a连接请求,如果此时允许进行连接,则接受a的连接。同时向客户端发起b连接,等待客户端接受连接。如果双方都建立好了连接,就开始按照语音传输的算法传输语音。同时,基于directx控件,可方便实现声音的录制、播放,故该服务器端也具有录音和放音功能,相当于简单的录音机程序。具体流程如图4-4所示。图4-4 服务器端系统组成其中,要实现双

53、方的语音交互,首先要建立可靠的连接,此处使用winsock控件建立2个基于tcp/ip的连接,每个连接的数据传输都是单向的,即使用2个信道实现全双工通信。连接建立后,按语音传输流程发送、接收播放语音。并且加入了连接错误处理程序,对发生的错误进行相应处理。图4-5为语音交互的流程。 图4-5 语音交互的流程 图4-6至图4-8是该系统实现的一些算法流程和程序流程:语音交互的算法流程,音频设备初始化程序流程, winsock接收程序流程。图4-6 语音交互的算法流程2 客户端基本同服务器端,增加了建立连接功能。4.3 本章小结本章对语音传输系统的设计做了具体的介绍,主要就是服务器客户端之间是如何进

54、行语音的传输识别的。再有就是语音交互的算法、流程。以此为基础,我们对算法、程序将做具体的探讨与设计。第五章 语音传输系统的实现与结果5.1 传输时延的解决在分组交换方式下,a与b之间是一种虚拟连接,无论a或b都可以有多条虚拟连接,这就使第三方c介入成为可能。但随之而来的是时延问题,下面来分析包交换方式下的时延情况。 图4-1为a与b语音通讯时包交换方式的模型图。a用户的话音,首先经过声卡变为数字量并存放于计算机的发送缓存,当发送缓存满后,写到winsock发送缓冲区,通过网络适配器将数据发送到b用户的网络适配器,并按相反的过程使a用户的语音在b用户的音箱播放出来,从图4-1可以看出,时延tde

55、lay,由以下几部分组成:图4-1 包交换模型t1a 声卡转换声音的时间t2a 声卡获得的数据向内存写占用的时间t3a 写入到 winsock发送缓冲区占用的时间t4a winsock发送缓冲区发出数据占用的时间t5a 为介质访问控制的访问延迟及发送时间的和t4b+t5b 网络适配器收到数据包井将之写入到winsock缓冲区的时间t6 传播延迟t3b 写入播放缓冲区的时间t2b 接受缓冲区到声卡的时间t1b 由数据变为声音的时间 tdelay=t1a+t2a+t3a+t4a+t5a+t6+t5b+t4b+t3b+t2b+t1b为减少tdelay,必须使上式中的右边的每一项都尽可能减到最小,t1

56、a、t1a取决于声卡;t2a、t3a都是存储器间的数据传输,所以值较小;t4a要经过从内存到网卡再到网线的过程,所以其值要在毫秒数量级;t5a中的访问延迟取决干介质访问控制的方法及信道的拥挤程度,本系统采用 csma cd(载波监听、冲突检测)方法,若信道过于拥挤,t5a增加,反之减小,但在局域网情况下,该值几乎为零,在广域网情况下,该值较大;t6与传播途径有关,局域网的话音传输不受t6影响,在广域网上,传播路径较为复杂,经过的结点较多,每个结点均会引起时延,t6成为话音传输的主要影响因素。尽管t1a,t2a,t1a,t3a值都较小,但是由干通话的过程是双向的,即不仅有发送数据包,而且还要有接

57、收数据包,如果发送与接收不能同时进行,势必增加时延,而且不能做到双工,从图1可以看出,要想减少时延,实现全双工,必须:1.使用全双工声卡,即可以同时录、放音;2.使用发送及接收两个缓冲区;3.建立两个winsock套接字,一个为发送套接字,另一为接收套接字;4.使用速度尽可能快的网卡;5.采用星型或总线型结构的局域网;基于以上5点,提出了以下技术。5.2语音全双工传输中的技术问题的实现5.2.l 采用全双工声卡选用的声卡有两个中断,两个dma通道。在对该声卡编程时,初始化放音设备及录音设备。程序段如下:创建direct的捕捉缓冲set directx = new directx7set directs = di

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论