当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于移动终端的局域网集群双工语音通信方法技术

技术编号:12222991 阅读:79 留言:0更新日期:2015-10-22 01:10
本发明专利技术公开了一种基于移动终端的局域网集群双工语音通信方法,采用服务器/客户端架构,以安卓手机作为客户端,以计算机作为服务器,客户端和服务器在局域网内进行通信;客户端分为发送部分和接收部分,发送部分包括拾音模块、采样模块、压缩编码模块和发送模块四个主要部分,接收部分包括接收模块、数据分路模块、解码模块和语音合成模块成四个主要部分;本发明专利技术使用无线局域网作为通信环境,采用单播作为数据传输的方式,通过多线程机制实现集团双工的实时语音通信,由服务器程序实现集群通信的数据控制。

【技术实现步骤摘要】

本专利技术涉及一种集群语音通信的方法,尤其是针对局域网环境中,使用安卓移动终端进行集群语音通信的方法。
技术介绍
随着智能手机的性能和网络的速度不断提高,人们希望借助手机和身边随处可见的局域网来进行更加多样化的语音通信,而集群语音通信就是其中的一种。传统的集群通信系统是在特定的频段上利用对讲机进行单工或者半双工的通信,这种通信方式不仅占据宝贵的频率资源,而且需要携带笨重的无线电台作为发射设备,非常不方便。而且单工或者半双工的通信方式效率非常低,不适用于实时通信的应用场景。而新型的网络电话VoIP则抛弃了这些笨重的设备,其便携性、实时性和廉价的特点使得其成为理想的替代方案。VoIP技术在创建之初是为了替代传统的运营商电话网络,所以它解决的是点对点的语音通信问题,要想实现集群的语音通信,仍然需要对现有的技术进行改进。
技术实现思路
专利技术目的:为了克服现有技术中存在的不足,本专利技术根据局域网的传输特点,提供了一种在实时语音通信系统中进行集群通信的方法,对点对点的语音通信进行扩展,使得人们可以使用智能手机在局域网环境中进行集群语音通信,其中每一个智能手机都能够同时与其他所有智能手机进行全双工的通信。技术方案:为实现上述目的,本专利技术采用的技术方案为:,采用服务器/客户端架构,以安卓手机作为客户端,以计算机作为服务器,客户端和服务器在局域网内进行通信;客户端分为发送部分和接收部分,发送部分包括拾音模块、采样模块、压缩编码模块和发送模块四个主要部分,接收部分包括接收模块、数据分路模块、解码模块和语音合成模块成四个主要部分;客户端发送部分的工作过程为:客户端首先通过拾音模块获取模拟语音数据,然后经过采样模块进行量化得到PCM语音数据,接着使用压缩编码模块对PCM语音数据进行压缩编码,最后压缩编码形成的数据包经由发送模块的IP链路以UDP包的形式发送给服务器;服务器的工作过程为:服务器首先将多个客户端发送来的数据包拼接为一个大数据包,然后将大数据包安排给各个目标客户端,同时将大数据包中目标客户端自身发送的数据置0,避免客户端接收到自身发出的数据导致回声,最后将大数据包以UDP包的形式发送给各个目标客户端;客户端接收部分的工作过程为:客户端首先通过接收模块接收到服务器发送来的大数据包,然后通过数据分路模块将大数据包切分为多路小数据块,接着使用解码模块分别解码各路小数据块得到PCM语音数据,最后使用语音合成模块将所有路的PCM语音数据按采样点叠加得到合成语音,最终完成集群语音的目标。该方法具体包括如下步骤:(I)拾音模块首先启动压缩编码模块,并初始化待编码数据队列为压缩编码做准备,所述队列满足先进先出的原则;然后拾音模块不断从麦克风中获取模拟语音数据;(2)采样模块首先将模拟语音数据量化为数字数据,得到数字语音流,再将数字语音流切分成待编码数据块,再依次添加进待编码数据队列;(3)压缩编码模块首先启动发送模块,并初始化待发送数据队列为发送数据做准备,所述队列满足先进先出的原则;然后压缩编码模块依次从待编码数据队列的头部将待编码数据块取出进行压缩编码,再依次添加进待发送数据队列;(4)发送模块依次从待发送数据队列的头部将待发送数据取出并发送到服务器,数据发送采用的是UDP协议;(5)服务器同时接收一个以上客户端发送来的数据,并根据发送客户端的不同对接收到的数据分别做临时存储:为了实现集群通信的目标,服务器为每个客户端维护一个数据队列,将各个发送客户端发送的数据临时存储在各自的数据队列中;(6)服务器首先将多个客户端发送来的数据包拼接为一个大数据包,然后为每个目标客户端分别产生一个相应的大数据包,具体实现方法是:服务器从所有数据队列中取出位于队列头部的数据包,将其拼接为一个大数据包;对于某一个目标客户端,将该大数据包中,该目标客户端自身发送的数据置0,形成对应该目标客户端的相应的大数据包;服务器将相应的大数据包发送给对应的目标客户端;(7)接收模块首先启动解码模块,并初始化待解码数据队列为解码做准备,所述队列满足先进先出的原则;然后不断从服务器处接受大数据包并交由数据分路模块;解码模块为每个客户端维护一个待解码数据队列;(8)数据分路模块对大数据包进行切分形成多路小数据块,多路小数据块根据发送客户端的不同分别添加进不同的待解码数据队列;(9)解码模块首先启动语音合成模块,并初始化待合成数据队列为语音播放做准备,然后将所有待解码数据队列中位于队列头部的小数据块进行解码,并将解码后的数据依次分别添加进不同的待合成数据队列;语音合成模块为每个客户端维护一个待合成数据队列;(10)语音合成模块将所有待合成数据队列中位于队列头部的数据按采样点进行叠加,将叠加后数据添加进待播放数据队列;依次取出待播放数据队列中的数据,不断写入播放缓存中。经过以上步骤,客户端在发出语音的同时,可以接收并听到其余客户端发送的语音,并除去本机回声,完成集群通信的场景需求。所述步骤(10)中,将所有待合成数据队列中位于队列头部的数据按采样点进行叠加,具体方法为:将两路数据叠加为一路后再与另一路叠加,直至将所有路数据叠加为一路数据:对于η比特量化的语音幅度数据,若两路数据分别为A和B,则叠加的方法为:当Α〈0 且 Β〈0 时:Y = Α+Β-(ΑΧΒ/(-(2~(η-1)-1)))其他情况:Y= Α+Β-(ΑΧΒ/(2~ (η_1))其中为Y为叠加后的语音数据。有益效果:本专利技术提供的基于移动终端的局域网集群双工语音通信方法,经过服务器处理和转发的通信系统实现了多个客户端之间的全双工语音通信,任一客户端可以接收集群内其他客户端发出的语音数据,实时重现多路语音的合成音效,并且没有回声;经理论分析和实际测试表明,采用本专利技术所述方法,可以满足集群通信中实时语音通信的要求。【附图说明】图1为客户端中对语音数据的具体处理流程;图2为服务器端对数据进行处理的示意图。【具体实施方式】下面结合附图对本专利技术作更进一步的说明。,采用服务器/客户端架构,以安卓手机作为客户端,以笔记本电脑作为服务器,客户端和服务器在无线局域网内进行通信;笔记本电脑作为控制中心,负责对多个安卓手机发送来的数据进行处理和转发;安卓手机作为用户持有的终端,充当语音通信中话筒和听筒的角色;客户端分为发送部分和接收部分,发送部分包括拾音模块、采样模块、压缩编码模块和发送模块四个主要部分,接收部分包括接收模块、数据分路模块、解码模块和语音合成模块成四个主要部分。如图1所示,客户端发送部分的工作过程为:客户端首先通过拾音模块获取模拟语音数据,然后经过采样模块进行量化得到PCM语音数据,接着使用压缩编码模块对PCM语音数据进行压缩编码,最后压缩编码形成的数据包经由发送模块的IP链路以UDP包的形式发送给服务器。如图2所示,服务器的工作过程为:服务器首先将多个客户端发送来的数据包拼接为一个大数据包,然后将大数据包安排给各个目标客户端,同时将大数据包中目标客户端自身发送的数据置0,避免客户端接收到自身发出的数据导致回声,最后将大数据包以UDP包的形式发送给各个目标客户端。如图1所示,客户端接收部分的工作过程为:客户端首先通过接收模块接收到服务器发送来的大数据包,然后通过数据分路模块将大数据包切分为多路小数据本文档来自技高网...
一种基于移动终端的局域网集群双工语音通信方法

【技术保护点】
一种基于移动终端的局域网集群双工语音通信方法,其特征在于:采用服务器/客户端架构,以安卓手机作为客户端,以计算机作为服务器,客户端和服务器在局域网内进行通信;客户端分为发送部分和接收部分,发送部分包括拾音模块、采样模块、压缩编码模块和发送模块四个主要部分,接收部分包括接收模块、数据分路模块、解码模块和语音合成模块成四个主要部分;客户端发送部分的工作过程为:客户端首先通过拾音模块获取模拟语音数据,然后经过采样模块进行量化得到PCM语音数据,接着使用压缩编码模块对PCM语音数据进行压缩编码,最后压缩编码形成的数据包经由发送模块的IP链路以UDP包的形式发送给服务器;服务器的工作过程为:服务器首先将多个客户端发送来的数据包拼接为一个大数据包,然后将大数据包安排给各个目标客户端,同时将大数据包中目标客户端自身发送的数据置0,避免客户端接收到自身发出的数据导致回声,最后将大数据包以UDP包的形式发送给各个目标客户端;客户端接收部分的工作过程为:客户端首先通过接收模块接收到服务器发送来的大数据包,然后通过数据分路模块将大数据包切分为多路小数据块,接着使用解码模块分别解码各路小数据块得到PCM语音数据,最后使用语音合成模块将所有路的PCM语音数据按采样点叠加得到合成语音,最终完成集群语音的目标。...

【技术特征摘要】

【专利技术属性】
技术研发人员:衡伟孙慧徐明
申请(专利权)人:东南大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1