基于WiFi的Android移动设备语音通信系统的设计开发_第1页
基于WiFi的Android移动设备语音通信系统的设计开发_第2页
基于WiFi的Android移动设备语音通信系统的设计开发_第3页
基于WiFi的Android移动设备语音通信系统的设计开发_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、基于 wifi 的 android 移动设备语音通信系统的设计开发虎1彭正涛2赵俊逸1徐1 ( 华东师范大学计算中心 上海 200241)2 ( 武汉科技大学信息科学与工程学院 湖北 武汉 430000)鉴于 wifi 信号的覆盖范围的日益扩大和智能终端设备的普遍应用,设计开发一种应用于 android 移动设备的无线语音摘 要通信系统。语音信号通过 wifi 无线网络传输。接入无线局域网内的 android 系统终端用户可通过 wifi 无线网络相互之间进行免费的全双工语音通话,也可以通过服务器上的 voip 接口发起和接收远程呼叫。同时实现了服务器对终端设备的控制和管理。该 系统获得良好的

2、通话质量,并具有较强的可扩展性。关键词无线语音通信android wifi voip中图分类号 tp311文献标识码 adoi: 10 3969 / j issn 1000-386x 2012 11 058design and development of audio communication system inandroid mobile devices using wifixu hu1 peng zhengtao2 zhao junyi11 ( compute centre,east china normal university,shanghai 200241,china)2 ( co

3、llege of information science and engineering,wuhan university of science and technology,wuhan 430000,hubei,china)in view of increasing expansion of area the wifi signal covers and pervasive use of smart terminal devices,we design andabstractdevelop a wireless audio communication system using in andr

4、oid mobile devices the audio signals are transmitted though wifi wirelessnetwork users with android system devices can make free full-duplex voice calls to each other through wifi network when accessing to wlan,and can also initiate and receive remote calls though a voip interface on the server,and

5、simultaneously the control and management of the server on terminal devices are realised as well the system is good in call quality and has quite high scalabilitykeywordsandroid wifi voip wireless audio communication线接入。1997 年 ieee 发布了 802 11 第一个版本,随后又增加了 802 11a 和 802 11b。其中 802 11b 定义了一个在 2 4ghz 的

6、 ism 频段上数据传输速率可达 11mbps 的物理层,得到广泛应 用。1999 年工业界成立了 wifi 联盟,致力于解决符合 802 11 标准的产品的生产和设备兼容性问题。wifi 具有无需布线、较 长距离工作、高速无线传输、与有线网络无缝融合、支持无线漫 游等特点,得到广泛应用。wifi 功能模块也越来越多地集成在 智能手机中。目前广泛使用的 android、iphone 智能手机中一般 都提供了 wifi 功能模块。0引言网络通信技术的快速发展和应用正改变着人们的通信和交流方式,其中 voip 技术使用户能够通过互联网以低廉的费用实 现语音甚至视频通信而受到人们的青睐,因此得到广泛

7、的研究 和应用。随着 wifi 无线网络信号覆盖范围的逐渐扩大以及支 持 wifi 的智能手机、平板电脑等手持终端设备的大量增加,利 用现有的无线网络进行语音通信将会成为更加廉价和便利的方 式。市场上已出现 wifi 手机实现上述应用,但功能较单一,使 用不便,还要增加额外开支。voip 技术在国内应用还不是十分 广泛,特别是普通的智能手机上基于 wifi 的语音通信系统还有 待进一步研发和推广应用。本系统基于广泛使用的 android 系 统平台设计开发,使用户可以直接在 android 操作系统的手机 或其他智能设备上实现免费的相互语音通信。android 操作系统简介2android 系

8、统是 google 公司的基于 linux 的开源操作系统,主要应用于智能手机和平板电脑等设备中,是目前使用最广泛的手机操作系统之一。android 操作系统自顶向下分成 4 个层次,即应用层、应用框架层、组件库层和虚拟机、linux 内核层。wifi 技术的发展和应用1其架构如图 1 所示1。802 11 协议是由美国电子和电器工程师协会( ieee) 制定收稿日期: 2012 02 26。徐虎,硕士生,主研领域: 嵌入式系统应用技术,物联网技术。彭正涛,硕士生。赵俊逸,高工。的一个无线局域网标准,主要用于解决局域网中用户终端的无声音信号进行采样和编码等处理后发送出去,经服务器传送给另一个终

9、端设备。3 2 系统原理和设计用户终端应用程序中设置服务器的 ip 地址,终端设备首先根据该 ip 地址登录服务器。服务器服务器接收到终端设备的连接请求后,获取与其建立连接的终端设备的信息,如 ip 地址mac 地址、设备状态等,将 mac 地址进行哈希映射后得到各终端的 id 用来标识各个终端设备,并把这些信息存放在数据库图 1 android 系统架构1android 系统中的 wifi 模块相关 api 见表 1。表 1 android net wifi 的主要类 / 接口说明2中。终端设备和服务器建立连接后,将从服务器的数据库中得到所有可建立连接的终端的 id。用户就可以向设备列表中的

10、任一设备发起呼叫了。根据呼叫发起方不同,将呼叫分为由本地( 局域网内部) 终端发起的呼叫和接收到的来自 voip 软件的远程呼叫两类。其中由终端发起的呼叫根据呼叫目的的不同又分为本地呼叫和远程呼叫。本地呼叫即接收端为局域网内部终端设备,数据流由服务器直接转发。而如果终端发起的是远程呼叫,则服务器要通过 voip 接口和远程语音服务器之间进行传输和接收数据获取 wifi 网络状态前,必须在 androidmanifest xml 文件中添加如下访问许可。 uses-permission android: name = android permission access _wifi_statek

11、/ 本系统中 voip 接口基于常用的 voip 软件 skpye 开发,实现本地数据流和 voip 软件的交互。由终端发起的呼叫建立的过程如下:( 1)终端向服务器发送 new call 命令以及被呼叫方地址及系统设计3id,服务器监听到指令,执行相关操作。( 2) 如果被呼叫方为本局域网内用户,服务器向目的终端系统架构本系统主要功能是实现基于 wifi 的终端设备之间的语音 通话。系统由语音服务器 ( 以 下 简 称 服 务 器) 、无 线 接 入 点 ( ap) 、终端设备( 手机、平板电脑等) 以及 pc、路由器组成。系统的网络拓扑结构如图 2 所示。发送呼叫命令,建立通信链路,直接将

12、接收到的语音数据向目的3 1终端进行转发。( 3)如果被呼叫方为远程地址,则调用 voip 接口,将语音数据通过 voip 软件进行传输。( 4) 通话接束时,服务器将从一端接收到的 end call( 结束通话) 命令发送至另一终端,撤销通话。此外,服务器还可实现对其他通话状态的控制,如暂停通话、转移通话等。当服务器接收到的是来自远程终端或 voip 软件的呼叫时服务器从本地的 voip 接口中获取到数据流,向注册到服务器的某一本地移动终端进行转发。目的终端的选择由各终端设备的网络信号强弱、优先级设置等因素综合计算得到的权值决定。设备间传输的数据除了音频数据之外,还要包括控制信息以实现服务器

13、和终端设备的相互控制、信息传递。因此将数据图 2 系统拓扑结构图服务器主要承担终端设备管理和数据转发功能。能够响应 并处理终端请求,管理终端状态,转发语音数据流。服务器接收 到请求后进行语音通道的建立,双向转发语音数据,实现一个终 端到另一个终端的语音通信。服务器的主要功能模块包括: 网 络传输、账户管理、数据库管理、消息处理、终端设备管理、voip 接口等。本系统中的终端设备指接入网络的装有 android 操作系统 的智能手机、平板电脑等移动设备( 当然以后可能扩展到其他 操作系统) 。终端设备通过 wifi 接入网络。它们相互之间可进 行呼叫,实现语音通话。终端设备上需要安装相应的应用软

14、件。 终端程序的主要功能有: 建立与服务器的连接并得到可呼叫设 备列表,向服务器发送发起呼叫、登录、状态变更、设置优先级、分为命令和音频数据两部分。服务器发送给终端设备的命令主要有: changestatus ( 更改状态) 、changepriority ( 更 改 优 先 级) 、newterminal ( 新 终 端 加入) 、call( 接收呼叫) 等。终端发送给服务器的命令主要有:register( 注册) 、login ( 登 录) 、getterminals ( 获取终端设备 列表) 、changestatus( 更改自身状态) 、changepriority ( 更改自身优先级

15、) 、new call( 呼叫请求) 等。服务器和终端设备接收到命令后,根据不同的命令执行相应操作。终端程序中通过后台运行一个 service 来监听接受到的数据,既不影响用户使用终端设备上的其他软件,又能实时地接收来自服务器的信息。系统开发中采用多线程机制,采样、播放、发送、接收等操作类或接口说明wifimanager提供了管理所有 wifi 连接的 apiwifiinfo描述了 wifi 连接状态wificonfiguration代表一个已配置的 wifi 网络scanresult描述探测到的存取点的信息本系统中通过以下途径提高安全性:( 1)为无线网络设置安全机制。wifi 设置为 wp

16、a2-psk加密方式( 即预共享密钥 wi-fi 保护访问,版本 2 ) 。加密类型为 aes,即 advanced encryption system( 高级加密系统) ,其利用 对称 128 位块数据加密。目前该加密方式可有效防止破解和攻 击。( 2) 采用移动终端和服务器双向认证机制。移动终端登录 服务器时,需要提供用户名和密码,以供服务器验证。服务器端 认通过后,也会将自身信息发送给终端设备,终端设备对其验 证。只有双方认证通过后,才能进入并使用系统功能。有效防 止通过伪装方式入侵系统。( 3)采用一定的加密算法对传输数据进行加密。4主要模块的实现4 1 开发环境系统以 java 作为

17、主要编程语言,开发环境如下:( 1 ) 服务器端程序的开发环 境: eclipse + visualstudio 2010。( 2) 终端应用程序的开发环境: eclipse + adt 插件。eclipse 是开发 android 应用程序的首选集成开发环境。安 装 android 开发环境,首先需要安装 java 开发工具包( jdk) ,然 后安装集成开发环境 eclipse,最后安装 android sdk 和 eclipse 的 adt 插件。本系统在 android 2 3 版本上开发和测试。在 eclipse 上创建一个 android project,每个 android 程序

18、必 须在根目录下包含一个 androidmanifest xml 文件。androidma- nifest xml 是 xml 格式的 android 应用程序声明文件,包含了系 统运行 android 程序前所必须掌握的重要信息,包括应用程序 名、图标、包名、模块组成等。res / main xml 目录下是与用户界 面相关的布局文件,描述所要显示的用户界面,src 文件夹则为 源代码存放目录。在 pc 上开发完成后,需要将程序下载到真 机上进行测试。4 2 音频数据的采样、编码和播放用户发出的声音通过麦克风接收后传给系统,经过采样、编 码生成音频数据后再发送出去。接收到音频数据后,也需要经

19、 过解码,将声音送给播放设备进行播放,才能收听到声音。为了图 3 客户端程序流程图图 4 服务器程序流程图为在一定程度上降低网络信号强度微弱时对语音通信的影 响,根据无线信号强度对终端进行优先级设置和量化。接收到 远程呼叫时优先将呼叫转移至信号强度较高的终端设备。对信 号强度非常弱、达不到通话要求的设备的呼叫请求给出提示,拒 绝其呼叫请求,而只是以发送命令的形式通知对方。另外,建立语音数据通路必须要求移动终端和服务器之间 通过无线信号相连接。然而由于始终开启 wifi 功能功耗较大, 设备待机时间将大大缩短。许多终端设备可以通过进入休眠状 态来节省电量,此时无线网络可能处于不可用状态。而有时人

20、 们又需要向 wifi 关闭或处于休眠状态中的移动终端发起呼叫, 希望能随时得到响应,使通信具有随时可达性。为解决这个矛 盾,在本系统中加入了远程唤醒模块,实现服务器对某些终端设 备的远程唤醒功能( 注: 目前仅限于智能手机,该技术已申请专 利) 。向 wifi 关闭的智能手机发起呼叫时,服务器会先向终端 发送一个特殊的“唤醒信号”,终端应用程序捕获这一信号后, 从休眠状态中唤醒,开启 wifi 功能,然后向服务器发送状态更 新信息。接下来就可以进行正常的通信了。协调采集与发送、接收与播放之间的速度差异,保证通话质量,可将得到的音频数据先放入数据队列中进行缓存。声音处理流程图如图 5 所示。图

21、 5 音频处理流程android 系统 提了音频管理框架。 audiorecord 和 audio- track 相对应,用于音频记录。audiorecord 的常用方法包括3:( 1)( 2) ( 3)read( )/ / 从硬件音频设备中记实录数据到缓冲中。startrecording( ) / / 开始音频记录。stop( ) / / 停止音频记录。在创建 audiorecord 对象时,audiorecord 会初始化,并和音频缓冲区连接,用来缓冲新的音频数据。根据构造时指定的缓 冲区大小,来决定 audiorecord 能够记录多长的数据。从硬件设系统安全性3 3由于用户语音信息在局

22、域网内通过无线信号传输,用户数备读取的数据,应小于整个记录缓冲区。本系统选用的采样频率为 48 000hz,通道配置为 encoding _ pcm _16bit,即采用 pcm 编码。根据采样率,采样精度,声道数,通过计算得到缓冲 区大小。关键代码如下:/ / 创建 audiorecord 对象audiorecord m_in_rec =new audiorecord( mediarecorder audiosource mic,48000, audioformat channel_configuration_mono, audioformat encoding_pcm_16bit,m_in

23、_buf_size) ;/ / 开始录音m_in_rec startrecording( ) ;pcm 格式的原始数字音频信号流数据保留了完整的音频 信息,但数据冗余量大。为减少数据量、提高传输效率,将音频 数据编码为 mp3 ( moving picture experts group audio layer ) 格式后再进行传输。mp3 是目前最流行的音频编码格式,丢弃 pcm 数据中对人类听觉不重要的数据和采用较好的压缩算法, 可以获得 1: 10 甚至更高的压缩率3。android 的多媒体框架 opencore 中提供了对 mp3 编码的支持。终端收到语音数据流后,要进行解码和播放。

24、android 系统 中可使用 audiotrack 类来管理单个音频资源,播放音频数据。 解码 mp3 音频并输出到缓冲区后,通过移动终端的音频设备进 行播放。/ / 创建 audiotrack 对象audiotrack trackplayer = newaudiotrack( audiomanager stream _ voice _ call,48000,audio- format channel_ configuration _ mono,audioformat encoding _ pcm_16bit,m_out_buf_size,audiotrack mode_stream) ;/

25、 / 往 audiotrack 对象中写数据trackplayer write( buff,0, buff length) ;/ / receiver 类定义public class wifireceiver extends broadcastreceiver overridepublic void onreceive( context context,intent intent) if( intent getaction( ) equals( wifimanager supplicant_connection_change_action) ) wifimanager wm =( wifima

26、nager) context getsystemservice( context wifi_service) ;if( wm getwifistate ( ) = = wifimanager wifi _ state _ enabled) / / 如果 wifi 开启,将状态置为 active 并通知服务器updateselfstatus( constant active) ; 设备间的数据传输4 4要传输的数据包括命令和音频数据两部分。为保障通话质量,数据的传输采用 tcp 协议。命令以 xml 格式传输,便于进行扩展,并采用 base64 编码确保数据传输的安全性。音频数据直接进行传输。分

27、别采用两个不同的 tcp 端口传输命令和音频数据。通过基于 tcp 协议的 socket 通信开发实现设备间数据的传输。5系统测试系统开发完成后需要对语音通信系统的处理能力、语音质量进行真机测试。选用 samsung galaxy 系列平板电脑和 htcdesire 智能手机作为测试终端。对于语音质量,采用判断通话质量的两个标准 mos 值和 psqm 值衡量。mos 是考虑主观因素的参考值,取值范围为 1 5,代表由语音质量由低到高 psqm 是一个客观采集数据比对值,使用计算机产生的波型文/ / 开始播放trackplayer play( ) ;/ / 停止播放trackplayer st

28、op( ) ;/ / 释放底层资源trackplayer release( ) ;终端状态管理服务器通过检测终端设备的 wifi 是否连通来作为判断终件,通过比较其通过本系统传输前后的变化计算出 psqm 中相对应的级别及好坏程度。表 2 为在局域网内进行的测试结果。表 2 系统测试结果4 3端状态的依据。一种是主动方式,即服务器每间隔一定时间,向终端设备发送检测命令,如果固定时间后收到终端设备的反馈 信息,则将设备状态设为 active( 如果原状态已为 active,则保持 原状态不变) 。反之,如果没有收到终端反馈信息,则将状态置 为 inactive。另一种方式为被动方式。终端设备开启

29、 wifi 时, 会自动发送信息给服务器,表示其可以接收呼叫。服务器收到 状态更改信号后对其状态做相应更新。终端 wifi 连接状态的改变可以通过接收 android 系统的 android net wifi supplicant connection _ change 广 播 来 捕 获。首先在 androidmanifest xml 文件中注册广播接收者。 receiver android: name = wifireceiver intent-filter action android: name = android net wifi supplicant con- nection_ch

30、ange / / intent filter / receiver 测试结果表明,在网络状态较稳定的环境下,本系统可以获得良好的通话质量,达到商用标准( mos 值 4 0 以上) ,等同或优于一般 voip 软件的通话质量。结语6本系统实现了 android 终端设备通过 wifi 进行实时、免费的全双工语音通信,能够得到较好的通话质量,具有广泛的应用价值和现实意义。系统具有较强的可扩展性,方便进行功能上的扩展和设备间的移植,并有较强的安全性、可用性。在音频数据的加密、通信协议的选择、voip 接口的实现等方面可做进一步改进,以使系统获得更高的安全性、实时性和鲁棒性,如可采平均呼叫建立时间

31、3s呼叫接通率 99%mos 语音质量4 5丢包率 3%网络抖动30mspsqm 值0 25获取某个监测单元实体的某一状态位获取某个监测单元的所有状态位 获取某个监测单元实体的所有状态位 获取某个监测单元的实体个数 逻辑运算 相等不等运算 与或非运算 存在运算控制机制定义了在异常情况下如何控制应用系统进行异常 容错处理,典型的例子如下: 报警 通知系统运维人员手工处理; 主机隔离 在部署多台应用主机的情况下,通知应用系 统将异常的主机隔离,不要再发送请求到异常主机; 数据库切换 在部署多个数据库服务器的情况下,通知 应用系统切换到其他可用的热备份数据库,不要再访问异常数 据库。异常判定方法与控

32、制机制的对应关系定义了在某种异常场 景下采用某种控制机制。典型的例子如下: 一台主机多个同样功能的进程中的一个进程异常退出:报警。 一台主机的数据库访问异常且其他主机的数据库访问 正常: 隔离该主机。 所有主机的数据库访问异常: 数据库切换。心,整个应用系统部署一个。健康 master 的状态接收模块接收各健康 slave 的状态数据,差异分析模块根据历史状态模型的定 义,采用差异分析模型的方法进行差异分析,若分析结果是状态 正常,则将此结果通知数据加工模块,采用历史数据模型的方法 合并到历史状态数据并记录到历史状态数据库; 若分析结果是 状态异常,则将此结果通知决策模块,决策模块采用决策模型进 行决策,产生控制指令,发送给欲控制应用主机的健康 slave,实 施异常应对措施。结语7本文提出了一种通过自适应的机制实现应用系统自动化的健康监测及控制的方法。首先,分析了应用系统的健康模型的 关键点; 然后,介绍了如何通过状态关系模型、历史数据模型、差 异分析模型、决策模型来设计自适应机制的健康模型; 最后,给 出了一个典型的系统架构实现。基于本方法,应用系统的健康 监测与控制能从根本上改进异常鉴别机制,既能获

温馨提示

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

评论

0/150

提交评论