【精品】基于VC的语音聊天系统的设计与开发(源代码+论文)
收藏
资源目录
压缩包内文档预览:(预览前20页/共23页)
编号:1639559
类型:共享资源
大小:3.56MB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
基于
vc
语音
聊天
系统
设计
开发
源代码
论文
- 资源描述:
-
【精品】基于VC的语音聊天系统的设计与开发(源代码+论文),精品,基于,vc,语音,聊天,系统,设计,开发,源代码,论文
- 内容简介:
-
分类号: U D C: 007)6248 级:公 开 编 号: 2002032151 成 都 信 息 工 程 学 院 学 位 论 文 基于 论文作者姓名: 孙景元 申请学位专业: 网络工程 申请学位类别: 工学学士 指导教师姓名(职称): 戴维中( 教授) 论文提交日期: 2007 年 6 月 6 日 基于 摘 要 随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便 。 很多人都使用过传统的文字输入聊天方式,与之不同的另外一种聊天方式就是语音聊天。主要对那些不会使用键盘的老年用户和追求时尚的年轻人,语音聊天是一种非常好的聊天方式,它能增加聊天双方的亲切感 和真实感,语音聊天就涉及到语音的传输。 本系统主要讨论了 其是对网 络编程做了较深入的学习和应用,并以语音聊天为例给出了应用实例。本系统主要利用过半年多的努力,终于完成了语音传输系统的需求分析、模块功能划分、多媒体编程、服务器 系统可以实现网络间文字、语音信息的传输。 关键词 信息传输;网络编程;语音传输;多媒体 of C is in of of us in to is a we to in is do to or it of by in as is PI of of In be 目 录 论文总页数: 19页 1 引言 . 1 2 语音传输系统需求分析 . 1 3 开发工具与环境介绍 . 2 +概述 . 2 +简介 . 2 +的发展过程 . 2 +的特点 . 3 +的集成开发环境 . 3 . 4 述 . 4 息处理函数 . 4 口的建立 . 5 息循环 . 6 4 络编程 . 8 络和协议 . 8 口 . 9 务器程序和客户程序创建过程 . 11 5 语音传输系统功能实现 . 12 音模块实现 . 13 务器和客户端功能的实现 . 14 6 系统功能的测试与分析 . 15 音聊天程 序使用介绍 . 15 试与分析 . 16 结 论 . 16 参考文献 . 17 致 谢 . 18 声 明 . 19 第 1 页 共 19 页 1 引言 20 世纪是计算机的世纪,计算机及相关技术的快速发展令人目不暇接。伴随着计算机技术的发展,网络的发展更加迅猛,令人不禁有“只有想不到,没有做不到”之感。网络已经成为最大的信息传输方式之一。在新的 世纪里,我们更要掌握好计算机知识。随着高新技术的不断发展,计算机更新速度越来越快,计算机已经逐渐溶入人们的生活。很难想象没有计算机的现代社会将变成一个什么样子。计算机已经和我们的生活息息相关。而 可视化操作简单的 我们带来了很多便利。随着计算机的不断发展,网络技术也在不断发展。现在我们通过网络进行学习、讨论、交流、游戏等等,网络正逐渐成为我们身边不可或缺的东西。那么要进行交流,语言、文字是不可缺少的。如何进行网络间的语言文字交流? 通过对 +和 络编程技术的学习,本系统研制出一个能够进行网络间语言文字交流的语音传输软件。 +是一种可视化的、面向对象的 具有易用、通用和开发效率高的特点。随着微软公司对他不断的改进以及计算机本身在性能上的迅速提高,使得 +越来越适合于一般的应用程序的开发。自从+ 出以来,已经为非常多的开发人员所使用,一直是当前最主流的开发工具之一。而 么提到 简写,意思是应用程序编程接口。可以把它想象成一个程序库,提供各式各样与 如 用来创建文件的 数, C 的标准库函数 是他是靠调用 数完成创建文件功能的。事实上,在 此,可以把 成是最底层的服务。本文所介绍的网 络语音传输程序就是一个在 境下以 +为编程语言的应用程序。 2 语音传输系统需求分析 随着现代计算机技术的不断发展,多媒体已经成为现代计算机不可缺少的功能,而计算机的音频,视频功能是其中最为重要的部分。而随着网络的不断发展,网络已经成为人们最重要的交流方式之一。计算机硬件的更新,特别是海量存储设备和大容量内存在 上的实现,对音频媒体进行数字化处理早已经成为可能。 现在,企业、机关、学校都建立起了局域网。虽然可以通过文件共享的方式进行通讯,但单使用这种方式,非常不方便。在网上邻居 里,只能看到机器名, 第 2 页 共 19 页 不清楚对方是谁,也不知道对方机器里有什么资源可以共享,尤其当局域网的机器很多时,这种方式就更加麻烦了 。而文字聊天方式比较单一缺乏真实感,所以语音通信就有了必要。 但是语音传输需要有很大的网络带宽,对于拨号上网用户,语音传输仍然是奢侈品,不过对于局域网和宽带用户来说,是很不错的选择,本系统 就是 研究的 基于局域网的语音 传输,并以语音聊天为例给出了实例 。 语音 聊天 方式一般有两种,一种是专门的语音 聊天 室,采用 式, B/外一中则是类似于 用 C/设计是采 用的后者。 服务器模式(该模式的建立基于以下两点: 1、非对等作用; 2、通信完全是异步的。客户机 /服务器模式在操作过程中采取的是主动请示方式,首先服务器方要先启动,并根据请示提供相应服务 。 综上所述,做一个语音通信软件是有必要的,也是能够实现的。 3 开发工具与环境介绍 +概述 +简介 司的重要残品之一 具集的重要组成部 分。他用来在 括 95、 98、 2000、 )环境下开发应用程序,是一种功能强大、行之有效的可视化编程工具。 可视化技术为基础,以 C+语言为蓝本,以众多的集成工具为骨架,在计算机领域的诸多方面都发挥着重要的作用。 供了简洁实用的开发环境,集成的工具集能让用户高效率地开发应用程序。 般性的工作可以全部交给 户只要在其基础上做出自己想要实现的功能即可。 成目标所花费的时间要少得多。 +的发展过程 作为一种 C/C+语言的集成 开发环境( 产生 初 让程序员们深刻感受到了把编辑器和编译器集成在一起的 软公司也看到了这一优点,于是相继开发了 和 +等多个 本的 C/C+集成开发工具。随着 不断成熟, 司决定放弃 式推出 的 期的 用起来也不方 便, 和 都是 16 位编程工具。 革命性改变得益于 推出,从 始,微软公司又放弃了 16 位编程,以后的 2位编程开发,为了与 第 3 页 共 19 页 软公司跳过了版本 3,直接推出了 个版本及修订版 部分界面风格一直保留到 各种功能不断增强, 库的内容也越来越丰富,现在利用 +的特点 在 进他的 C/C+开发工具,并相继推出了 +和 C+ 实,现在的 C+ 是一个非常优秀的开发工具,但是基于下边的几点原因,我们可以看出 着不可比拟的优越性: 1 2 的其他可视化开发工具紧密集成,可用于开发非常专业的应用程序。 3 者包含了微软公司大部分产品的技术文档和支持 资料,内容相当丰富,是程序员不可多得的参考资料,现在 起发行,极大地方便了用户。 +的集成开发环境 业版一共有 6 张光盘,如果只安装 么需要第一张光盘和 。 以安装在所有运行 5/98/000/装按提示完成后,开始菜单的程序中应生成 从 程序组中运行 可启动 开发环境 次运行 先会弹出一个“ of 对话框,其中介绍有很多关于开发环境的使用方法以及编程调试方面的小技巧,如果不想看他,可以选择在下一次启动时不再显示。 如图 3上边是标题条、菜单和工具栏,中间左边的窗口是工作区窗口,右边为文档窗口,显示正在编辑的文本文件(或资源),下方为输出窗口和状态栏。 除了主菜单和工具栏外, 鼠标右键单击窗口中的很多地方都会弹出一个关联菜单,此菜单包含与被单击项目相关的各种命令,从而可以加快一些常规操作的速度。 第 4 页 共 19 页 口中几乎一切都是空白的,所以我打开了一个工程。中文版的 工作界面如下: 图 3述 构,对编写者而言,不需要书写整个过程,大部分过程由系统完成。程序中只要按一定的格式填写系统留给客户的那一小部分。 所需要完成的有:窗口类的定义、窗口的建立、消息函数的书写、消息循环。 息处理函数 动 的,对于一个窗口,它的大部分例行维护是由系统维护的。每个窗口都有一个消息处理函数。 在消息处理函数中,对传入的消息进行处理。系统内还有它自己的缺省消息处理函数。 第 5 页 共 19 页 客户写一 个消息处理函数,在窗口建立前,将消息处理函数与窗口关联。这样,每当有消息产生时,就会去调用这个消息处理函数。 通常情况下,客户都不会处理全部的消息,而是只处理自己感兴趣的消息,其他的,则送回到系统的缺省消息处理函数中去。 . . . . ; 口的建立 客户需要自己建立窗口,建立后会得到系统返回的窗口句柄 (后继的针对窗口的操作都针对句柄进行 。 建立窗口前,需要制定好这个窗口的相关属性,最主要的就是将自己定义的消息处理函数与窗口关联,其他的属性还包括:菜单、图标等等。 这个属性指定步骤是通过指定 窗口类 来完成的。 对于自己建立的窗口,这个 窗口类 需要自己制定,也即自己充一个然后向 系统注册。 对于一些特殊窗口,如按钮等控件,他们的行为是系统制定好了的,所以不需要自己注册,直接使用对应的“窗口类”名称就行了。 建立窗口时,注册的 窗口类 名称作为参数传入。 这样,当有针对该窗口的消息时,将调用“窗口类”中指定的消息处理函数,在其中得到处理。 第 6 页 共 19 页 在应用程序中使用对话框是很方便的,因为对话框可以从模板创建,而模板可以使用可视化资源编译器进行编译,这就大大简化了窗口界面的设计过程。同时为了简化程序设计, 常说的字窗口控件,应用程序直接使用这 些类名就可以创建子窗口。 同子窗口控件类似,对话框的窗口函数也由 供,所以在创建对话框之前不需要注册窗口类。在创建对话框时并不需要调用 是调用了 数。前一个函数用来创建模式对话框,后一个函数用来创建非模式对话框,它们都在内部调用了数,使用的风格、大小和位置等参数取自资源中定义的对话框模板。 要创建对话框就要先创建对话框模板。对话框模板定义了对话框的基本属性,这包括该 对话框的宽度和高度及其中包含的控件。创建对话框模板最简单的方法是使用 用 的“ 单命令,可以非常方便地向工程中加入对话框资源。 息循环 系统会将针对这个程序的消息依次放到程序的“消息队列”中,由程序自己依次取出消息,在分发到对应的窗口中去。 因此,建立窗口后,将进入一个循环。 在循环中,取出消息、派发消息,循环往复,直到取得的消息是退出消息。 循环退出后,程序即结束。 # /消息处理函数 /参数 :窗口句柄,消息,消息参数,消息参数 /处理感兴趣的消息 ,窗口销毁,程序需结束,发退出消息,以退出消息循环 0) ; 第 7 页 共 19 页 ; /其他消息交给由系统提供的缺省处理函数 :; /应用程序主函数 /参数 :实例句柄、前一个实例的句柄、命令行参数、窗口显示方式 /注册窗口类 = ; /窗口类名称 /定制 窗口类 结构 /关联消息处理函数 0 ; 0 ; /实例句柄 ; /图标 ; /光标 ( /画刷 (!& ), ; ; 第 8 页 共 19 页 /建立窗口 (, /窗口标题 , ); ; ; /消息循环 &0, 0) /从消息队列中取消息 &; /转换消息 &; /派发消息 4 络编程 络和协议 网络是可以交换数据的互相连接的计算机的集合。网络的类型很多,如 域网)、 域网)、 了确保所有的传输平稳地进行,网络建立在协议之上。协议是一组规定,他描述了数据传送的格式。 用户发送的信息要经过各层协议的封装,如图 4 1所示: 第 9 页 共 19 页 用户 cp p cp p cp 件 应用层 链路层 图 4P 协议栈 P 是面向连接的协议。连接的两个设备之间,每一方都使用他自己的址和端口号。通常,一方称为客户,另外一方称为服务器。客户是发出请求方,服务器响应他们。例如,当打开网站时,浏览器是客户, 服务器。浏览器发出连接请求,初始化和服务器的连接,请求指定的资源。服务器然后返回响应和请求的数据。 服务器通常是等待客户连接,这叫做监听,这一般是在特定的 址和端口号进行。客户仅在有需要时才启动,因为客户总是一个连接的发起者,信息的请 求者。为了创建连接,客户需要知道服务起正在监听的 服务器和客户方都需要使用 是服务器的 址和端口号一般都是固定的。在客户方,端口号并不重要,任何端口都可以使用。 工作在软件层的几个协议,如 多数是以服务器 /客户机方式工作的。例如,客户产生请求,服务器响应。请求和响应数据的准确格式由这些协议定义。 口 多函数与 同的。 通信的双方要建立连接,这个连接的终端就是套接字。客户端和服务器端都有一个套接字,每个套接字与特定的 几乎所有的 数都在套接字上进行操作,因为套接字是连接的句柄。连接的两端都要使用一贯套接字,它们与平台无关。套接字是双通的,也就 第 10 页 共 19 页 是说在同一个套接字上既能够接收也能够发送数据。 套接字主要有两种类型,一种是流套接字( ,另外一种是数据报套接字( 。流套接字是为需要可靠连接的应用程序设计的。这些程序经常使用连续的数据流。用于这种 类型套接字的协议是 套接字最常用,一些众所周知的协议如 数据报套接字使用 无连接的,有一个最大缓冲区大小。它是为那些需要发送小数据包,并且对可靠性要求不高的应用程序设计的。与套接字不同,数据包套接字并不保证数据会到达终端,也不保证他是以正确的顺序到来的。数据报套接字传输效率相当高,他经常用于音频或视频应用程序。对这些程序来说,速度比可靠性更加重要。 另外,也存在一些不常用的套接字类型,如原始套接字( 。 因为 兼容几个协议,所以必须使用通用的寻址方式。 P 使用 址和端口号来指定一个地址,但是其他协议也许采用不同的形式。如果迫使用特定的寻址方式,添加其他协议就不大可能。 第一个版本使用 构来解决此问题。 4; ; 如果仅仅使用互联网地址家族( P), 经定义了 构的 P 版本 构。它们本质上是相同的结构,但是第 2个更容易操作。 / 地址家族 / 端口号 /址 ; /空字节,要设为 0 ; P 地址( 32位),他被定 义为一个联合来处理整个 32位的值,两个 16 位部分或者每个字节单独分开。描述 32 位 址的 构定义如下。 第 11 页 共 19 页 ; 使用 较固定的,如下: 1 始化和释放 2套接字的创建和关闭 3绑定套接字到指定的 4设置套接字进入监听状态 5接受连接请求 6收发数据 务器程序和客户程序创建过程 在现在的软件开发中,软件开发环境越来越多地涉及了网络环境以及网络下的 C/S( 模式。 C/客户机 /服务器模式兴起于 20世纪 90年代初,到 90年代中期达到鼎盛时期。 C/S 模式是第一个应用于网络的模式,它在拥有友好的用户界面的基础上,利用分布技术成功地提高了执行效率和系统容 量,从而得到了广泛的应用。 C/S 模式的基本思想是把原先集中在一起的应用划分为功能不同的两个部分,一个成为服务器软件,用来响应和提供固定的服务;另一个被称为客户机软件,用来向服务器端提请和要求某种服务。运行服务器软件的计算机被简称为服务器,而运行客户机软件的计算机被成为客户机,从这个意义上来说,客户机和服务器都是软件意义上的概念,同时也是相对的概念。例如,一台计算机运行了某个网络应用的服务器软件,它就成为这个应用的服务器;如果同时它还在运行另外一个软件的客户机程序,则它同时又是另外一个应用的客户机。不过,因 为服务器通常被设计为可以响应多台客户机的请求,所以一般都工作在性能较强、配置较高的计算机上。 服务器方创建监听套接字,并为他关联一个本地地址(指定 址和端口号)。然后进入监听状态准备接收客户的连接请求。为了接受客户的连接请求,服务器必须调用 数。 客户方创建套接字后即可调用 数去试图连接服务器监听套接字。当服务起方接受函数返回后。连接函数也返回。此时客户方使用 数创建套接字,服务器使用 数创建的套接字,双方就可以进行相互间的通信了。 第 12 页 共 19 页 其过程图如下: 图 4务器程序和客户程序的创建过程 5 语音传输系统功能实现 本系统以语音聊天为例给出了应用实例。 服务器方 客户方 ,建立流式套接字,返回套接字句柄 s ,关联一个本地地址到套接字 s。 ,设置 入监听状态。 ,等待接受客户连接请求。 建立连接, 数返回,得到新的套接字,如 /,在套接字 收发数据,直到完成交换。 ,关闭套接字 ,关闭监听套接字 s,服务结束。 ,将套接字s 与服务器 连接。 -) /,在套接字上收发数据,直到数据交换完。 ,关闭套接字 s,结束 话。 ,建立流式套接字 s。 第 13 页 共 19 页 音模块实现 随着计算机技术的发展,特别是海量存储设备和大容量内存在 上的实现,对音频媒体进行数字化处理便成为可能。数字化处理的核心是对音频信息的采样,通过对采集到的样本进行加工,达成各种效果,这是对音频媒体数字化处理的基本含义。 基本的音频数字化处理包括以下几种。 1、不同采样率、频率、通道数之间的变换和转换。其中变换只是将其视为另外一种 格式,而转换通过重新采样来进行,其中还可以根据需要采用插值算法以补偿失真。 2、针对音频数据本身进行的各种变换,如淡入、淡出、音量调节等。 3、通过数字滤波算法进行的变换,如高通、低通滤波器。 但是最基本、最常用的还是声音的录制和播放。作为一个语音传输软件,声音的录制、保存、传输和播放都是必不可少的,也是最重要的一环。本软件需要语音输入、输出功能。这些技术的实现借助了 它在微软公司开发 统以前就有的一个用于电子键盘的标准。 义了一个传输和存储音乐信息的协议。它在多媒体音频中占有重要的位置,是播放和录制音乐的国际标准,它确定了连接音乐设备的电缆线、硬件和通信协议。 下边将介绍程序的具体实现。 对于录入和播放的声音存储时必须以特定的格式才可以,本软件的格式定义如下: ; 000; 6000; ; ; 6; 只定义了声音的格式是不够的,要实现声音的存储还得对数据块进行定义,数据块的定义采用如下结构描述: ; ; 第 14 页 共 19 页 为了能够进行录制和播放,还需要利用低级音频函数 列函数。对于播放过程,需要利用 数准备缓冲数据头信息,然后调用函数 音频数据缓冲区中的数据写到播放设备中去进行播放。对于录制过程,需要先调用 行接收数据缓冲区的准备工作,然后调用 数添加录制数据缓冲区,最后调用函数边将列出这些函数在源程序中的应用: ,; ( T(); ; 下函数省略。 ,; ,; ,; 务器和客户端功能的实现 服务器端与客户端是程序与外界联系的窗口。其主要功能实现如下: if(1&(= 第 15 页 共 19 页 ; /对方关闭了连接 (。其他实现详见源文件。 6 系统功能的测试与分析 音聊天程序使用介绍 语音聊天程序的使用方法如下: (1) 双击应用程序图标,将会弹出一窗口。 (2) 在窗口相应位置填写服务器 址和端口号,默认 址为本机 认端口号为 4000。 (3) 如果是要建立服务器,点击建立服务器按钮,此时如果建立成功文本框会显示“ K!”。如果失败则会 弹出警告窗口,请仔细检查务端运行界面见图 5 (4) 如果要建立客户端,那么在填写好服务器 端口号后点击连接服务器按钮。客户端运行界面见 5 (5) 此时,大家可以进行文本聊天。如果想进行语音聊天那么请点击语音聊天按钮,当然你要有相应的硬件设备 音箱(耳机)和麦克风。那么现在你就可以进行语音聊天了。 (6) 如果想停止语音聊天的话,那么请点击停止语音聊天按钮,此按钮和语音聊天按钮是同一个。 (7) 如果想关闭本系统,那么请点击 钮或者直接关闭程序窗口。 (8)服务器如果关闭那么客户端将自动断开。 下边是语音聊天系统程序运行窗口: 第 16 页 共 19 页 图 5务器建立界面 图 5户端运行界面 试与分析 在程序基本完成之后,我对软件的功能进行了测试。测试的主要部分包括: 1、服务器 2、文本信息传输 3、语音传输功能 经过测试以上模块均能正常工作实现预期功能,作品已达到预期目的。但亦有许多美中不足,如:程序无数据库无法实现会员注册登陆等功能,只能以游客身份登陆。程序界面为 结 论 +是 一款十分强大的编程软件,简单、易用、开发效率高。而 于 于水平有限,本程序只是 络编程 第 17 页 共 19 页 和强大的 台的一个小小的应用,能对文本和声音信息进行录入和输出,简单实现了网络中文字语音信息的交流。通过对该软件的制作,我对多媒体编程、C/展了我的知识,培养了自己的动
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。