《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 利用Java实现携带隐藏信息的实时语音传输

利用Java实现携带隐藏信息的实时语音传输

2009-01-06
作者:李民政,赵榛,鲍飞,刘克钧

1. 引言
    随着网络的发展和以电子商务为代表的网络经济的兴起,Java技术的应用越来越广泛,特别是在网络传输方面,Java以其跨平台的通用性和程序实现的简单性逐渐成为计算机网络方向的主导技术之一,然而由于其通用性的限制,使得Java在诸如 语音载体的样本采集,编解码等领域中很少被应用,这对于纯Java技术的发展而言无疑是一个需要迫切解决的问题。
    另外,网络的发展也使信息安全问题日益突出,采取有效的技术实现信息的安全传输成为当前网络安全的主要研究课题。把保密信息嵌入到图片、文本、音频、视频等媒体数据中的信息隐藏技术的研究正好迎合了网络信息安全发展的要求。
    传统保密通信的方式主要是加密解密技术,利用密钥把信息变换成密文使外部不可理解,通过公开信道发送到接收端,没有密钥的非法用户无法进行解密,也就无法正确使用保密信息。加密解密技术经历了经典的加密解密(DES)技术,公开密钥加密解密(RSA)技术,椭圆曲线加密解密(EEC)技术三个发展阶段。虽然技术不断提高,但算法复杂度高、容易被截取、攻击的缺点一直没有解决。
    本文提出通过Java来实现携带隐藏信息的实时语音传输新方案。该方案利用纯Java技术在实时采集的语音数据中隐藏信息,然后实现了在IP网上的实时传输。不但解决了传统加密技术易被获取,易受攻击的问题,也避免了目前很多实时语音传输中大量与操作系统相关而造成的通用性差的缺点。
    本文结构如下:第2节概述了系统的设计思路和要求,第3节介绍如何使用Java进行前端语音的采集播放,压缩与解压,同步信息的嵌入检测,隐藏信息的嵌入提取的过程。第4节介绍实时语音在IP网的传输及网络信息反馈、压缩码率的自适应调整过程。第5节介绍系统软件的Java控制实现。第6,7节介绍系统的实验结果和结论。
2. 系统的设计思路和要求
2.1 系统的设计思路
    系统的设计思路如图1所示:虚线框内为系统传输前端的处理,包括语音的采集播放,隐藏信息的嵌入提取,语音的压缩解压。虚线框外是实时语音的传输和控制部分,包括发送方语音数据RTP封包、发送,网络状况信息反馈及发送码率自适应调整,以及接收方的相应部分。


                                     图 1 IP网信息隐藏传输系统的设计框图
2.2系统前端的处理要求
    由于IP网是一个有限带宽、变动,时延,抖动,丢包率随时间变化的通道,网络带宽总是处于一个变动的状态,在某个时段无法满足语音压缩速率的要求时,就会出现丟包的现象。解决该问题的方法之一是降低语音数据的发送速率,因此,语音编码器的压缩比必须是可调节的。
    隐藏信息的嵌入策略还必须具备:(1)不可察觉性:要提高系统的伪装性,就必须保证人耳听觉特性无法识别嵌入保密信息语音与原始语音播放时的不同。(2)较强的鲁棒性:语音信息是在干扰信道中传输的,嵌入在语音数据中的保密信息要完整的传送到接收方就必须有较强的抗噪声、压缩的攻击。(3)抗强裁剪攻击的性能:网络拥塞造成的丟包现象将使接收方接收到的数据不完整,同步信息也将随之丢失,这将意味者无法提取隐藏信息。因此隐藏信息的嵌入策略就必须能够抵抗强裁剪的攻击。(4)较低的运算复杂度和时间复杂度:隐藏信息的嵌入处理需要损耗一定的时间,为减少语音延时,隐藏信息的嵌入算法要尽可能降低处理时间。
    同步信息的鲁棒性较隐藏信息更高:接收方要能提取出隐藏信息必须准确的检测出同步信息,同步信息必须满足比隐藏信息更强的鲁棒性才能检测出隐藏信息的嵌入位置。
2.3系统语音传输的处理要求
    IP网有限带宽、变动,时延,抖动,丢包率随时间变化的信道特点无法预先得知,它依赖于网络上其他连接的状态。IP网上实现语音数据的传输和Qos控制有更多需要考虑和解决的地方:
    在多媒体数据传输中对实时性有一定的要求,相比之下语音传输对实时性要求更高,必须采用UDP协议传输实时语音数据包。但是这会引起丟包,导致隐藏信息传输的不完整。因此,语音传输的实时性和隐藏信息的传输的完整性之间存在无法协调的矛盾。
    IP网上数据包是以不同路径到达目的地,后发的包可能会先到。因此每个数据包在发送前必须标记一个序号。接收方将收到的数据包先存放到缓存中,排序后再播放。
    语音数据包在传输中遭遇网络拥塞将会丢包严重,这不仅会影响正常的通话过程,隐藏信息也将随之丢失。因此必须采取相应措施。可行的办法是利用Java的server监控平台实时监控网络状况,针对当前网络状况自适应的调整语音数据包的发送速率。
3 系统前端的的设计实现
3.1 语音的采集和播放
    语音的采集和播放的实现是应用Java Sound 的API函数。采样频率根据需要可以选择8 KHz,11.025KHz,22.05KHz,44.1KHz;样本的量化位数可以是8bit或16bit;声道可为单声道或双声道。采样前将先打开采样设备(计算机声卡),获得采样设备句柄,指定采样格式(采样频率,量化位数),分配若干用于保存采样数据的内存(内存的大小和数量将进一步分析)。开始采样时,所有内存块都被提交给采样设备,采样设备将依次把语音数据写入内存,当一块内存写满后,采样设备就会发消息通知程序作相应的处理,然后把该内存返还给采样设备进行下次采样,这样就形成一个循环的采样过程。结束采样时释放所有内存块,关闭采样设备。
3.2  语音压缩与解压
  系统中语音的采样率是11.025KHz,量化精度是8 bits,每秒采集的数据量是88.2 kbit,Modem的最高传输速率只有56kbit通常低于38kbit。 因此数据在传输前必须进行压缩处理,且压缩比大于3:1尚可保证通信的畅通。语音的压缩和解压的编解码器采用自己用Java API直接编程的Java.audio.realspeech来实现。Java.audio.realspeech实现了G.729.1的语音压缩标准。其特点是:1基音分析采用开环基音分析和自适应码本搜索相结合,降低了运算量,减少了基音的量化比特数,提高了基音预测的准确度;2代数码本算法简单,不需要存储码本,恢复音质清晰,8Kb/s码率下合成音质不低于32kb/sADPCM的水平;3算法延时15ms,适合于语音的实时传输;4语音压缩比达到10:1。
3.3隐藏信息的嵌入和提取
    隐藏信息嵌入法可分为空域嵌入法和变换域嵌入法。权衡各种信息嵌入方法及系统的要求,采用离散小波变换法来嵌入和提取隐藏信息是由于小波变换有许多优点: 1具有时频局部性;2具有更多的灵活性,可选择不同的分解层数,分解层数越多隐藏信息越鲁棒;3计算量小,设音频样本的长为N,DCT的计算量为O(N*N), 则FFT的计算量为O(log2(N)*N),而小波变换的计算复杂度为O(L*N),其中L是小波基的长度

    隐藏信息是要嵌入到语音载体中的字符串,而字符串是以字节方式存储的,参照[15]为待嵌入和检测的隐藏字符串设计了一个(r,8)形式的BCH码,其中r表示BCH码长。用一个具有256个BCH码字的信号集,Sm, ,来表示一个字节的256个不同的值。
    接收方对同步信息的准确识别是隐藏信息被提取出的关键。可以将同步信息嵌入到时域 或频域中。时域算法的好处是搜索时计算量较小,但嵌入强度受到限制,抗攻击能力较差。嵌入到DCT,DFT域中可以得到较好的健壮性,缺点是搜索困难,计算量较大。DWT有良好的时频局部分解特性[16],如同步信号嵌入到DWT域可保证在较小的搜索计算量前提下,有效地提高同步信号的抗攻击性能。设 是原始信号,对于紧支撑的小波可导出:对于 层小波分解, 每发生 位平移,相应的低频系数将发生一位平移。这样对于 层小波分解,音频信号段 与 的低频系数中除去边界几个系数外绝大部分系数只是相对地发生了一位的平移。在逐位搜索同步信号时可以节约大量的计算量,从而提高同步信号的搜索效率。
    将原始的音频数据分段并对每一数据段作若干层的小波分解,在低频系数部分嵌入信息序列 ,嵌入过程如图2所示:

                                             图2 隐藏信息嵌入工作流程
    提取隐藏信息时,将待检测的音频分段并作相应层数的小波分解,同步信号确定后,就可以提取其后的水印信息。提取过程如图3所示:

                                                图 3 信息的提取工作流程
4. 语音的传输及Qos控制的实现
    实时传输协议RTP是IETF专门为声音、视频等实时数据提供的端到端的的传输服务而设计的。利用RTP帧格式中的Sequence(序列号)和RealTime(时间戳)字段可实现端到端的媒体流内和流间同步机制。网络带宽充足的的情况下,RTP具有一定的带宽调控能力,保证多媒体流传输的畅通。
  网络状况信息反馈的实现是参照RTCP的协议标准来完成,RTCP协议是RTP协议的重要组成部分,通过RTCP协议的发送者报告SR 和接收者报告RR来传送网络状况反馈信息,直接用于语音压缩码率的自适应调整。
    RTCP报文的传送是消耗系统带宽资源的,如果该报文收发过于频繁,则影响正常的语音数据报传送。一般来说,该报文发送对带宽消耗不超过5%为宜。即RTCP报文的传送应是周期性的。
    实际的操作中,我们利用JMF2.0中的javax.media.rtp.rtcp的类来实现,将网络的负载情况分为正常和过载两种状态。发送端根据RTCP报文所反馈的网络状况信息和域值 进行比较,如果大于 ,则认为是当前网络处于过载状态,就要提高语音的编码率,如下图4所示:

                                     图4系统网络状况反馈和带宽调整框图
5 系统的软件设计实现
    系统是利用编程实现实时语音进行收发工作,发送方要经过语音的采集、隐藏信息的嵌入、语音数据的压缩和发送的环节。接收方也要经过语音数据接收、解压、播放和隐藏信息提取的环节。为减少语音数据在多个环节处理中的延时,软件的设计采用多线程的流水线工作方式。
    信息的发送方通过创建Java.lang.Thread类的子类并重载run()来生成三个工作线程和一个辅助线程。分别是语音采集线程、信息嵌入线程、压缩打包及发送线程、网络监控和调整线程。在内存开辟两个内存队列:原始语音数据队列、嵌入信息的语音数据队列。语音采集线程采集满定长的语音数据后置入原始语音数据队列(队列没有溢出时);信息嵌入线程一经启动就始终监控原始语音数据队列,当对不空时,取出数据嵌入隐藏信息,后置入嵌入信息的语音数据队列;压缩打包发送线程一经启动就便从嵌入信息的语音数据队列取出数据进行压缩、封装成RTP包和发送,语音编码器的压缩比是可调的,在网络监控和调整线程的控制下随时调整将要发送语音数据的压缩比;而网络监控和调整线程在定时器的控制下定时发送SR包,同时接收RR包,分析当前网络状况,根据需要调整语音发送码率。
    信息的接收方同时启动四个工作线程和一个辅助线程,即接收及包处理线程,语音解压线程,信息提取线程,语音播放线程和网络状况反馈线程。开辟四个内存队列:两个数据缓冲线性队列,一个语音播放数据循环队列、一个信息提取数据循环队列。接收及包处理线程一经启动就开始从网络接口接收RTP语音数据压缩包,按照RTP包中的序列号将拆包后的语音压缩包重新排序,置入数据缓冲队列1的相应位置,缓冲数据队列1满时,按相同的方法将数据置入从缓冲数据队列2的相应位置。语音解压缩线程触发后先从数据缓冲队列1开始获取语音压缩数据并解压,之后分别存入信息提取数据队列和语音播放数据队列。当数据队列1空后,便从数据队列2获取数据完成相同的操作。信息提取线程和语音播放线程一经启动便监控对应的两个循环数据队列,不为空时,便从队列中取出数据分别进行隐藏信息的提取和语音的播放。网络状况反馈线程在定时器的控制下,根据当前接收RTP语音数据压缩包的情况和接收到SR包的情况生成RR包,通过网络接口发送出去。
6 试验结果
    系统经过测试运行,结果良好,能够在接收方提取出嵌入的隐藏信息和听到清晰的语音,网络状况良好丢包率不大的情况下,隐藏信息的准确识别率能达到90%以上。系统能达到的性能指标有1隐藏的信息量为24bits每秒。2稳健性好,能抵抗语音压缩,信道噪声的攻击。3隐藏信息的同步性能较好,具有自同步能力。4系统具有良好的伪装性,在当前的信息嵌入量和嵌入强度的情况下,很难用人耳辨别出嵌入信息的语音同原始语音的区别。
7 结论
    本文的主要贡献是:1提出了一种新的涉密传输系统原型并编程实现;2经验证该系统具有良好的伪装性和抗攻击性能,克服了传统加密传输技术和隐写术的不足;3为信息的隐密传输技术的研究开辟了新的思路。
参考文献
[1] 黄继武.自适应图象压缩编码和图象水印技术的研究.博士学位论文.中国科学院自动化研究.1998:72-73
[2] 黄继武.Yun Q. Shi, Yi Shi. Embedding image watermarks in DC components. IEEE Trans. on Circuits and Systems for Video Technology. 2000, 10(6): 974-979
[3] 黄继武.Shi Yun Q. An adaptive image watermarking scheme based on visual masking. Electronics Letters, 1998,34(8):748-750
[4] R. G. Van Schyndel, A.Z. Tirkel, C.F. Osborne. A digital watermark.Proc.of 1994 IEEE Int. Conf. Image Processing.Vol.2: 86-89
[5] Cox, Ingemar J, Linnartz, Jean-Paul M.G.Public watermarks and resistance to tampering. Proc. of IEEE Int. Conf. O Image Processing,1997
[6] J.Cox,J.Kilian,T.Leighton,T.Shamoon.Secure spread spectrum watermarking for multimedia.IEEE Trans. on Image Processing,6(12): 1673-1687,Dec.1997
[7] 丁玮, 齐东旭.数字图象变换及信息隐藏与伪装技术.计算机学报,1998.21(9):838-843
[8] 刘振华,尹萍.信息隐藏技术及其应用.北京:科学出版社,2002.2
[9] Stefan Katazenbeisser,Fabien A.P.Petitcolas编.吴秋新,钮心忻译.信息隐藏技术-隐写术和数字水印.北京.人民邮电出版社,2001

[10] (美)William Stallings.密码学和网络安全:原理与实践.北京:电子工业出版社,2001
[11] 岳军巧,钮心忻,杨义先. 语音保密通信中的信息隐藏技术.北京邮电大学学报,2002,25(1):79-82.
[12] 王泳.快速重同步的有意义音频水印盲检测算法.计算机研究与发展,2003,40(2):215-221.

[13] Java Sound API Home Page, java.sun.com/products/java-media/sound
[14] JMF 2.0 API (03/10/01): Class SourceDescription
java.sun.com/products/java-media/jmf/2.1.1/apidocs/ javax/media/rtp/rtcp/SourceDescription.html



本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。