




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
即时消息系统的设计与实现即时消息系统的设计与实现-语音通讯模块的实现语音通讯模块的实现 摘要:摘要: .3 3 ABSTRACTABSTRACT: : .3 3 第一章第一章 引言引言 .4 4 1.1 论文背景 .4 1.2 国内外研究现状及发展趋势 .5 1.2.1 研究现状.5 1.2.2 发展趋势.5 第二章第二章 关键技术关键技术 .7 7 2.1 XMPP 协议.7 2.1.1 XMPP 协议简介.7 2.1.2 XMPP 协议基本网络结构.7 2.1.2 选择 XMPP 协议的理由.7 2.2 网络通信协议.8 2.3 SOCKET网络编程.9 2.4 音频捕获技术.9 2.5 音频回放技术.9 2.6 音频采样技术.10 2.7 音频压缩/解压技术.10 2.8 P2P 技术.10 第三章第三章 语音通讯系统的分析语音通讯系统的分析 .1111 3.1 语音通讯系统可行性分析 .11 3.2 语音通讯系统需求分析 .11 3.2.1 项目总述.12 3.2.2 市场需求分析.12 3.2.3 用户需求分析.12 3.2.4 软件性能要求.13 3.2.5 软件功能需求.13 3.3 语音通讯系统流程分析 .14 3.4 语音通讯系统数据流图 .15 第四章第四章 语音通讯系统的设计语音通讯系统的设计 .1717 4.1 系统结构.17 4.2 开发工具.17 4.3 流程设计.18 4.4 语音通讯系统总体设计.19 4.5 语音通讯系统详细设计.19 4.5.1 登录模块.19 4.5.2 建立连接模块.20 4.5.3 音频捕获模块.21 4.5.4 音频回放模块.23 第五章第五章 语音通讯系统的实现语音通讯系统的实现 .2626 5.1 构建语音通讯系统的用户登录系统.26 5.2 连接建立模块的实现.26 5.2.1 麦克风相关操作.26 5.2.2 建立通信连接.28 5.3 音频捕获模块.32 5.3.1 确定音频格式.32 5.3.2 建立音频捕获对象并为其分配缓冲区.32 5.3.3 打开录音设备.33 5.3.4 开始录音.33 5.3.5 音频压缩并发送给远程主机.33 5.3.6 结束录音.34 5.4 音频回放模块的实现.35 5.4.1 确定音频格式.35 5.4.2 建立音频回放对象.35 5.4.3 循环接收音频数据.35 5.4.4 打开回放设备.36 5.4.5 音频解压并回放.37 5.4.6 结束回放.37 5.5 常用结构体定义及介绍.38 5.5.1 WAVEHDR.38 5.5.2 WAVEFORMATEX.38 5.6 常用WINMM.DLL方法参数介绍.38 5.6.1 waveOutOpen.39 5.6.2 waveInOpen.39 5.6.3 waveOutWrite.39 5.6.4 waveOutPrepareHeader.40 5.6.5 waveInAddBuffer.40 5.7 本系统的开发难点与解决技巧.40 5.7.1 通信连接的建立.40 5.7.2 语音捕获、压缩、解压、回放.41 5.7.3 音量大小的调节.41 5.7.4 委托、回调和异步.41 结结 语语 .4242 参考文献参考文献: : .4343 致致 谢谢 .4444 即时消息系统的设计与实现即时消息系统的设计与实现-语音通讯模块的实现语音通讯模块的实现 刘永忠 西南大学计算机与信息科学学院,重庆 400715 摘要:摘要:本论文主要讨论了语音通讯系统的研究与实现,笔者在探讨即时通讯系统在国内外研究现状 及发展趋势的基础上,结合当前计算机技术的发展情况,选择使用了Vistudio 2005开发环境和当 前比较流行的C#编程语言,结合语音捕获和回放相关知识和Socket相关知识开发了此语音通讯系统。 本系统主要包括连接建立、音频捕获、音频回放三大模块,实现了用户登录、通信连接建立、音频 数据捕获、数据压缩与发送、数据接收及解压、音频数据回放等功能,重点介绍了通信连接建立、 音频数据捕获和回放的实现。在实现方法上,主要采用面向对象编程基本思想,利用C#编程语言将 系统分为接口类、音频捕获类、音频回放类、音频压缩与解压类和异常处理类,再加一个公用的结 构体类进行实现,并采用了现代比较流行的XMPP协议进行消息发送和建立其语音连接,通过Socket 技术实现最终音频数据的发送和接收。最后,本论文对基于C#技术的语音通讯系统的开发设计进行 了总结和展望。 关键字:关键字:音频捕获;音频回放;音频数据压缩;XMPP协议; Instant Messaging System Design and Implementation -the implementation of Audio communications module LIU Yongzhong Computer and information science college of Southwest University, Chongqing 400715, China Abstract: This thesis mainly discuss the research and implementation of audio communication system. Based on the research and development trend of instant messaging at home and abroad, combine with the current computer technology, the author use Visual studio 2005 development environment, C# programming language, audio capture and playback technology, as well as the relevant knowledge of Socket develop the audio communication system. This system mainly introduce three modules,including the connection establishment, audio capture, and audio playback , as well as the detailed implementation of the user log on ,the establishment of communication links, audio data capture, data compression and transmission, data reception and decompression, audio data playback and so on, focusing on the implementation of the establishment of communication links, audio data capture and playback. On the realization, mainly using basic idea of object-oriented programming, and C# programming language to divide the system into some classes as Interface,Audio caputure,Audio playback,Audio compression and decompression, Exception handler, and a common type of structure, then use XMPP messaging protocol to establish the audio connections, send and receive data via Socket technique. Finally, the thesis summarize and outlook the development and design of C#-based audio communication systems. Key word: Audio capture;Audio playback;Voice data compression;Xmpp protocol 第一章第一章 引言引言 1.11.1 论文背景论文背景 随着移动互联网的发展,即时通信技术也得到飞速的发展。自 1998 年面世以来, 特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、 音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的聊天工具,它已经 发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的 综合化信息平台。近年来,即时通信市场用户规模增长迅速,市场规模前景广阔。随 着互联网用户的快速增长,即时通信用户也日益增长,2004 年中国即时通信用户数达 7000 万人,2005 年达到 9300 万人。中国即时通信市场规模在 2005 年约为 6200 万美 元, 2006 年达到 7700 万美元,到 2010 年将达到 1.14 亿美元。 目前在互联网上受欢迎的即时通讯软件包括 QQ、MSN Messenger、AOL Instant Messenger、Yahoo Messenger、NET Messenger Service、ICQ 等。在这具大的市场份 额的诱惑下,众多公司都希望在这一领域有所突破,各大门户网站纷纷挤入即时通信 市场跑马圈地;国内的电信运营商也是虎视眈眈。基于即时通信在现实生活中广泛的 运用场景和发展趋势,考虑到其在生活中的实用性以及现在市场上流行的即时通信系 统的局限性,我们考虑到很多公司其内部的交流需求,所以我们开发了一个可以在局 域网内实现在线交流、文件传输、实时语音通讯和视屏通讯等功能的一个即时通信系 统。 语音聊天是此即时通信系统的一个核心子模块,它采用现代比较流行的网络编程 技术,面向各类企事业部门等局域网用户,利用即时通信协议以及相关技术实现在局 域网内的实时语音聊天,方便内部人员进行实时交流,共同解决工作生活中遇到的困 难,为企事业以及其它的局域网用户带来方便。而传统的一些诸如飞鸽传书之类的局 域网聊天工具虽然实现了在局域网内文字聊天、文件传送等一系列功能,但其在语音 方面却尚未涉足,给用户的实时交流带来一定的影响。所以,本系统以现在即时通信 在现实生活中大量应用为契机,实现了局域网内实时语音聊天,为人们的生活、工作, 学习带来了极大的便利。 1.21.2 国内外研究现状国内外研究现状及发展及发展趋势趋势 .1 研究现状研究现状 即时通信(IM)是指能够即时发送和接收互联网消息等的业务。自 1998 年面世以来, 特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、 音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的聊天工具,它已经 发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的 综合化信息平台。随着移动互联网的发展,互联网即时通信也在向移动化扩张。目前, 微软、AOL、Yahoo 等重要即时通信提供商都提供通过手机接入互联网即时通信的业务, 用户可以通过手机与其他已经安装了相应客户端软件的手机或电脑收发消息。2006 年 6 月,中国移动已经推出了自己的即时通信工具Fetion,中国联通也将推出即时通 讯工具“超信” ,但由于进入市场较晚,其用户规模和品牌知名度还比不上原有的即时 通信服务提供商。 .2 发展趋势发展趋势 目前即时通信行业仍处于高速发展期,通过调查发现,即时通信在未来的发展中 呈现出整合多种业务、扩张移动平台、渗透企业用户、融入收费内容的发展趋势。 1整合多种业务 随着宽带的普及,即时通信的内涵也开始变化。与过去的纯文本交流不同,新型 的即时通信业务融合了视频、音频交流等宽带应用元素。目前各种即时通信除提供了 基本的即时互动交流外,还能提供视频、语音通信服务,在短信收发、文件共享、数 据传输、游戏、娱乐、个性化设置等方面也都有大的开拓和创新。总之,多媒体化是 即时通信未来的发展方向,未来即时通信将捆绑更多的互联网和电信增值业务功能。 以腾讯 QQ 为例,它目前正在大力发展游戏、音乐、用户定制等业务,今后还可能推广 新的通信录、博客服务、视频音频等服务。同时,QQ.com 已经是个成熟的内容网站, 现在访问量已经排名第四,它会和 QQ 客户端形成一纵一横互相支持的业务模式。 2扩张移动平台 移动通信业务的迅速发展使得传统的互联网即时通信服务商将移动用户作为下一 步市场发展的重点,这在移动增值服务成为即时通信服务商收入的主要来源之后体现 尤为突出。即时通信业务承载的设备也趋于多样化,用户通过 PC、手机、PDA 以及其 他设备等都可以使用即时通信。MSN 和国内的手机厂商如:多普达、联想等合作,推出 自带即时通信业务的手机;腾讯 QQ 也推出移动 QQ 的即时通信服务。 3渗透企业用户 即时通信从个人通信向企业综合通信发展是其发展史上的重要一步。随着企业信 息化建设步伐的加快,企业即时通信工具(EIM)也将作为联系和沟通的方式被有针对性 地应用在企业的日常生产中,作为企业内外沟通方式之一。企业即时通信应用包括综 合信息服务、内部即时通信、在线客户支持服务、在线呼叫、在线广告等。2003 年全 球企业即时通信市场收入 1.19 亿美元,随着企业对 EIM 的了解日益加深,这个数字会 继续增长。据预测,全球的即时通信服务用户到 2007 年将增长至 14.39 亿户,其中企 业用户数量将成倍增长,到 2007 年将增至 3.49 亿户。另据 Gartner 的调查数字显示, 2004 年在所有使用即时通信的用户中,有约 50%是商业用户。 4融入收费内容 在互联网这个以免费、自由、互通为生存法则的世界里,即时通信从一个免费聊 天工具不断生长壮大,吸引聚集了一些忠诚用户。在此基础上,开始搭建网络广告、 无线增值等一系列各种潜在的交易平台,增加了收费的内容。未来即时通信行业的盈 利点在互联网及增值业务、移动及固网增值业务、广告业务三个方面。其中,互联网 及增值业务包括两部分,核心业务主要是即时通信服务,包括传输文本信息、图像、 视频、音频以及会员服务、号码服务、电子邮件等;另外还有娱乐资讯门户的建设, 包括向用户提供新闻、体育、娱乐等多类资讯,还包括游戏中心、交友中心、校友录、 电子贺卡等多种娱乐服务。而移动及固网增值业务则主要是短信互通和部分 2.5G 产品, 如彩信、彩铃下载和自写短信、短信订阅、新闻等多种服务。也就是说,当用户通过 手机短信与即时通信软件上的好友聊天,下载或订阅短信、彩信等产品时,通过电信 运营商的平台付费,电信运营商收到费用之后再与 SP 结算分成。 第二章第二章 关键技术关键技术 语音实时通讯涉及到很多方面的技术,在开发的过程中受到诸多方面的制约, 在本系统的实现过程中主要运用的关键技术有: 2.12.1 XMPPXMPP协议协议 .1 XMPPXMPP协议协议简介简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议) 的前身是 Jabber,一个开源形式组织产生的网络即时通信协议。XMPP 目前被 IETF 国 际标准组织完成了标准化工作。标准化的核心结果分为两部分:核心的 XML 流传输协 议和基于 XML 流传输的即时通讯扩展应用。 (1)XMPP 的核心 XML 流传输协议的定义使得 XMPP 能够在一个比以往网络通信协 议更规范的平台上。借助于 XML 易于解析和阅读的特性,使得 XMPP 的协议能够非常漂 亮地完成相关工作。 (2)XMPP 的即时通讯扩展应用部分是根据 IETF 在这之前对即时通讯的一个抽象 定义的,与其他业已得到广泛使用的即时通讯协议,诸如 AIM,QQ 等有功能完整、完 善等先进性。 .2 XMPPXMPP协议基本网络结构协议基本网络结构 XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两 个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。 网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信) , MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上 传输XML。 .2 选择选择XMPPXMPP协议的理由协议的理由 XMPP 是目前主流的四种 IM(IM:instant messaging,即时消息)协议之一,其 他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时 通讯和空间平衡扩充的进程开始协议 SIP(SIMPLE)。 在这四种协议中,XMPP 是最灵活的。XMPP 用传送与即时通讯相关的指令是用 TCP 传 XML 流,在以前这些命令要么用 2 进制的形式发送(比如 QQ) ,要么用纯文本指令加 空格加参数加换行苻的方式发送(比如 MSN) 。而 XMPP 传输的即时通讯指令的逻辑与以 往相仿,只是协议的形式变成了 XML 格式的纯文本。这不但使得解析容易了,人也容 易阅读了,方便了开发和查错。XMPP 是一种基于 XML 的协议,它继承了在 XML 环境中 灵活的发展性。 因此,基于 XMPP 的应用具有超强的可扩展性。经过扩展以后的 XMPP 可以通过发 送扩展的信息来处理用户的需求,以及在 XMPP 的顶端建立如内容发布系统和基于地址 的服务等应用程 序。而且,XMPP 包含了针对服务器端的软件协议,使之能与另一个进 行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。这一切 也是笔者选择此协议的原因。 2.22.2 网络通信协议网络通信协议 网络中不同的工作站,服务器之间能传输数据,源于协议的存在。随着网络的发 展,不同 的开发商开发了不同的通信方式。为了使通信成功可靠,网络中的所有主机 都必须使用同 一语言,不能带有方言,因而必须开发严格的标准定义主机之间的每个 包中每个字中的每 一位。这些标准来自于多个组织的努力,约定好通用的通信方式, 即协议。 TCP/IP 协议是目前在网络中应用得最广泛的协议,TCP/IP 实际上是一个关于 Internet 的标准,并随着的 Internet 广泛应用而风靡全球,它也成为局域网的首选协 议。TCP/IP 协议中的核心协议有 TCP(传输控制协议) 、UDP(用户数据报协议)和 IP(因特网协议) 。TCP 协议可以在网络用户启动的软件应用进程之间建立通信会话, 并实现数据流量控制和错误检测,这样就可以在不可靠的网络上提供可靠的端到端数 据传输。UDP 协议是一种无连接的协议,它在传输数据之前不建立连接,也不提供良好 的可靠性和差错检查,只仅仅依赖于校验来保证可靠性。UDP 不进行流量控制,没有序 列或者确认,因此它处理和传输数据的速度快,还被用来传输关键的网络状态消息。 IP 协议的基本功能是提供数据传输、数据包编址、数据包路由,分段等。通过 IP 编址 约定,可以成功地将数据通过路由传输到正确的网络或者子网。每个网络站点具有一 个 32 位的 IP 地址,它和 48 位 MAC 地址一起协作,完成网络通信,IP 协议也是一种无 连接的协议。 因为考虑到语音数据音比较大(与你的采样频率密切相关) ,而且丢失一小部分数 据并不会影响双方进行正常通讯,所以本系统中的语音通讯模块采用了无连接、不可 靠、没有流量控制但处理和传输数据的速度快的 UDP 进行实现。 2.32.3 SocketSocket网络编程网络编程 利用 Socket 编程实现典型的网络通信程序,特别是在实时性要求比较高的项目中, Winsock 编程方法是非常实用的。在此必须了解怎样建立一个 Socket,并怎样用用 Socket 建立两台计算机之间的连接,最终实现两台计算机之间的数据传送等一系列问 题。 2.42.4 音频捕获技术音频捕获技术 语音通讯最先要解决的就是怎样捕获说话者从麦克风中传进来的语音,本系统中 主要是采用 Windows 多媒体相关应用程序接口 winmm.dll 中所提供的一系列系统函数 进行音频捕获。其中主要运用的函数有: (1) waveInOpen 为录音而打开一个波形输入设备(即得到一个麦克风句柄) 。 (2) waveInPrepareHeader 为波形输入设备准备一个输入缓冲区。 (3) waveInAddBuffer 向波形输入设备添加一个输入缓冲区。 (4) waveInStart 启动在指定的波形输入设备的输入,开始录音。 (5) waveInUnprepareHeader 清除缓存。 (6) waveInClose 关闭设备,停止录音。 2.52.5 音频回放技术音频回放技术 当本面接收到远程主机捕获发送过来的音频数据后,还必须经过回放,才能将音 频数据从音响中播放出来,从而达到语音通讯的目的。本系统中主要是采用Windows 多媒体相关应用程序接口winmm.dll中所提供的一系列函数进行音频回放。其中主要运 用的函数有: (1) waveOutOpen 打开回放设备,并得到其句柄。 (2) waveOutPrepareHeader 为回放设备准备一个波形缓冲区(内存块)。 (3) waveOutWrite 向指定的波形输出设备发送一个数据块。 (4) waveOutRest 停止放音。 (5) waveOutClose 关闭回放设备。 2.62.6 音频采样技术音频采样技术 由于计算机只能处理离散的二进制信息,而人的语音又是连续的模拟信号,所以 我们必须通过采样把模拟信号转换成离散信号。实现这个步骤使用的设备是模/数转换 器(A/D) ,它以每秒上万次的速率对声波进行采样,每一次采样都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版水电暖工程绿色施工劳务承包合同示范文本
- 2025版微信小程序商城用户行为分析合作协议
- 2025年淘宝店铺美工设计及市场推广合作协议
- 2025版信用修复与再认证服务合同
- 心理健康服务在社区2025年推广中的心理健康服务与社区心理健康服务需求研究报告
- 2025年城市轨道交通项目土地租赁与承包合同
- 2025年文化中心临时活动场地出租合同
- 2025版区域内授权经销商销售合作协议
- 2025版生殖医学手术医疗事故赔偿及生育保障协议
- 2025版淘宝店铺店铺会员体系设计与运营合同
- 部编版三年级语文上册说课标说教材
- 医德医风课件培训宣传
- 【艾瑞咨询】2024年中国健康管理行业研究报告494mb
- 2025java中高级面试题及答案
- 偷盗自愿赔偿协议书
- 民航飞行员招飞心理测试题及答案
- 《物业管理条例》教学课件
- 篮球课件介绍
- 2024艺考乐理试题及答案
- 资产回收合同协议模板
- 基层司法所规范化建设
评论
0/150
提交评论