语音信号数字水印技术.docx
- 文档编号:26190842
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:19
- 大小:520.51KB
语音信号数字水印技术.docx
《语音信号数字水印技术.docx》由会员分享,可在线阅读,更多相关《语音信号数字水印技术.docx(19页珍藏版)》请在冰豆网上搜索。
语音信号数字水印技术
数字信号处理课程设计报告
题目:
语音信号水印技术系统设计
系(院):
专业:
班级:
学号:
姓名:
指导教师:
学年学期:
2013~2014学年第学期
2013年月日
摘要
随着网络和信息技术的发展,越来越多的数字多媒体信息通过网络进行传播,与传统的模拟媒体相比,数字媒体产品的编辑、复制和传播都很方便,它一方面促进了社会的进步与发展,另一方面正是这些优点突出了版权问题。
由于数字多媒体信息很容易被XX的用户复制,且采用传统密码方法加密,不能完全解决盗版问题。
数字水印技术正是应运而生的信息隐藏技术,它通过特定的水印算法把版权信息嵌入在数字产品中,被嵌入的可以是一段文字、标识、序列号等等,人们无法从表面上感知水印的存在,只有专用的检测仪器或计算机软件才可以检测出隐藏的数字水印,从而达到了保护数字作品的所有者利益的目的,并促进了数字产品的开发与使用。
在数字产品中,音频数据产品的版权保护也显得越来越重要,因为随着数字化音像制品和音乐制品的大量制作与发行,一个令人关注的突出问题是网上下载音乐对传统CD业的巨大冲击。
音频水印技术主要利用了人类听觉模型,在不影响音频信号质量的前提下,将水印信息隐藏在人耳不能感知的位置,来隐藏水印数据。
本文主要研究语音信号水印技术,利用小波变换的优点和特性对音频信号嵌入水印,并提取。
使嵌入水印音频想好具有良好的安全性,鲁棒性和不可感知性。
关键词数字水印嵌入提取小波变换
1课题综述1
1.1数字水印技术的介绍1
1.2数字水印设计原理2
2系统分析与设计3
2.1涉及基础知识3
2.2算法的流程图5
2.3算法实现5
3代码编写7
3.1主要代码7
3.2程序调试10
3.3程序运行与测试10
结论14
致谢16
参考文献17
1课题综述
1.1数字水印技术的介绍
数字水印就是指嵌入到被保护对象(如静止图像、音频、视频)中的某些能够证明其版权归属的数字信息,可以是作者的姓名、序列号、公司标志等等。
数字水印技术有着其固有的特点与研究方法。
例如,从信息安全保密角度而言,隐藏的信息如果被破坏掉,系统可以视为安全的,因为秘密信息并未泄漏,但是,在数字水印系统中,隐藏信息的丢失意味着版权信息的丢失,从而失去了版权保护的功能。
因此数字水印系统必须具有较强的鲁棒性、安全性、透明性等特点:
透明性(隐藏性):
经过一系列隐藏处理,目标数据必须没有明显的降质现象,隐藏的数据无法人为的看见或听见。
1)鲁棒性:
指抗拒各种处理操作和恶意攻击而不导致水印信息丢失的能力。
所谓的操作包括:
传输过程中的信道噪声、滤波、增强有损压缩、几何变换、D/A或A/D转换等等。
所谓的攻击包括:
篡改、伪造、去除水印等等。
数字水印起源于信息隐藏技术,这一点可以从它的隐藏性要求得到证实。
2)安全性:
指将水印信息隐藏于目标数据的内容之内,而非文件头等处,防止因格式转换而遭到破坏。
3)无歧义性:
恢复出的水印或水印判决的结果应该能够确定地表明所有权,不会发生多重所有权的纠纷。
4)通用性:
好的水印算法适用于多种文件格式和媒体格式。
通用性在某种程度上意味着易用性。
但数字水印技术并不等同于信息隐藏技术,两者的区别在于对鲁棒性的要求上。
信息隐藏的鲁棒性要求可以降低,也就是说在数据经过改动后允许隐藏信息的丢失,信息隐藏主要是关注隐藏信息的检测,而数字水印主要关注被盗版者擦除的可能性。
数字水印必须能在一定限度内承受各种攻击而留存下来,这样才能实现有意义的版权保护。
在音频中加入水印,要考虑到音频载体信号的在人类听觉系统、音频格式以及传送环境等方面的特点。
与图像和视频相比,音频信号在相同的时间间隔内采样的点数少。
这使得音频信号中可嵌入的信息量要比可视媒体也要少。
并且由于人耳听觉系统(HAS)要比人眼视觉系统(HVS)敏感得多,因此听觉上的不可知觉性实现起来要比视觉上困难得多。
1.2数字水印设计原理
数字水印技术包含水印的嵌入、提取/检测两个过程。
数字作品拥有的特定信息,如数字序列、数字标识、文本或图像等,按某种算法嵌入到数字作品中,在需要时,通过相应的算法提取出该水印,从而能够验证数字作品的合法性。
为了给攻击者增加去除水印的难度,目前大多数水印制作方案都采用密码学中的加密体系来加强安全性,在水印的嵌入和提取/检测时采用一种密钥,甚至几种密钥联合使用。
数字水印的嵌入过程如图1-1所示,数字水印的提取/检测过程如图1-2所示
2系统分析与设计
2.1涉及基础知识
2.1.1离散小波变换(DiscreteWaveletTransform,DWT)
小波变换是由法国科学家Morlet于1980年进行地震分析工作时提出的,但小波变换研究的热潮始于1986年。
小波变换优于傅立叶变换的主要原因在于它的多分辨率特性,它可以针对不同信号变换而进行窗口的伸缩变化。
加窗傅立叶变换可以形象地看成是固定尺寸的矩形时频窗口在时频域中滑动,并透过这个窗口来“观察”信号。
这种固定矩形窗口的观察方法与人们期望的观察不太一致。
例如,对一个高频成分丰富的信号,即变化很快的信号,最感兴趣的问题是它的发生时间,而对其频率则不要求知道的很准确;但是对一个变化很慢的信号,被关注的是频率,而对时间范围则不要求很精细。
小波分析适应这种要求,它可以对高频成分使用大的频域窗口、小的时域窗口,而对于低频成分采用小的频域窗口、大的时域窗口。
1988年,Mallat受到塔式算法的启发,在多分辨率分析的指导下建立了Mallat算法,对小波变换的实际应用具有划时代的意义。
Mallat算法本质上不需要知道尺度函数Φ(t)和小波函数Ψ(t)的具体结构,只由系数hn和gn就可以实现信号的分解与重构,因此也称为快速小波变换。
利用快速小波变换,选择一定的小波函数对输入信号进行一定尺度的分解,得到这个尺度下信号的高频部分和低频部分,在一个尺度下,高频部分和低频部分包含了完全恢复上一尺度下信号的全部信息。
这种分解如果重复进行,就得到了信号的多尺度分解,从而得到了信号的多层小波系数,即信号的低频系数和一系列的高频系数。
如图2-1所示的小波分解树。
图2-1小波分解树
对于大多数信号来说,低频部分给出了信号的特征,往往是最重要的,而高频部分则与噪音及扰动联系在一起。
将信号的高频部分去掉,信号的基本特征仍然可以保留。
所以,一般的信号处理都是针对这部分来进行的。
因此,在信号分析中,经常会提到信号的近似部分与细节部分。
近似主要是系统全局的、低频的部分,而细节往往是信号局部、高频的成分。
将信号分解成一个个互相正交小波函数的线性组合,可以展示信号的重要特性,但这并不是小波分析的全部。
小波分析另一个重要的方面就是分析、比较、处理(如去掉高频信号、加密等)小波系数后,根据新得到系数去重构信号。
这个过程称之为逆离散小波变换(IDWT),或小波重构、合成等。
信号重构的基本过程如图2-2所示。
图2-2小波重构
2.1.2主要算法
近几年来,数字水印技术研究取得了很大的进步,本文对一些典型的算法进行分析,除特别指明,这些算法主要针对图象数据(某些算法也适合视频和音频数据)。
生理模型算法,人的生理模型包括人类视觉系统HVS(HumanVisualSystem)和人类听觉系统HAS。
该模型不仅被多媒体数据压缩系统所利用,同样可以供数字水印系统所利用。
利用视觉模型,实现了一个基于分块DCT框架的数字水印系统;实现了一个基于小波分解框架的数字水印系统;实现了一个空域数字水印系统。
它们的基本思想均是利用从视觉模型导出的JND(JustNoticeableDifference)描述来确定在图象的各个部分所能容忍的数字水印信号的最大强度,从而能避免破坏视觉质量。
也就是说,利用视觉模型来确定与图象相关的调制掩模,然后再利用其来插入水印。
这一方法同时具有好的透明性和强健性。
变换域算法:
这是一种DCT域数字水印算法,其方法是首先把图象分成8x8的不重叠象素块,在经过分块DCT变换,得到由DCT系数组成的频率块,然后随机选取一些频率块,将水印信号嵌入到由密钥控制选择的一些DCT系数中。
该算法是通过对选定的
DCT系数进行微小变换以满足特定的关系,来表示一个比特的信息。
在水印信号提取时,则选取相同的DCT系数,并根据系数之间的关系抽取比特信息。
其思想类似于扩展频谱通讯中的跳频(frequencyhopping)技术,特点是数据改变幅度较小,且透明性好,但是其抵抗几何变换等攻击的能力较弱。
另外基于DFT和DWT算法与上述算法具有相似的原理。
这种以变换域算法为代表的通用算法普遍采用变换技术,以便在频率域实现水印信号叠加,并借鉴扩展频谱通讯等技术对水印信号进行有效的编码,从而提高了透明性和鲁棒性,同时还适当利用滤波技术对水印信号引入的高频噪声进行了消除,从而增加了对低频滤波攻击的抵抗力。
2.2算法的流程图
算法流程图如图2-3所示
图2-3算法流程图
2.3算法实现
2.3.1水印嵌入
1)设A是原始音频信号,根据音频文件类型将它分为两部分
A=AH+AL
其中:
AH是与文件类型相关的部分,所以保留下来不做处理;AL是可以嵌入水印的部分,长度是L,它可以表示为
A={a(l),0
l 其中a(l)是AL第I个数据的幅值。 2)假设水印是长度LS的音频文件,用ls表示: ls={ls(j),0 j 3)水印分段操作: 因为原音频信号进行小波变换后,利用量化的方法将其分段,所以讲水印音频也进行相应的分段,最后对应相加。 N=L/LS 这里水印分段不一定取得正数段,所以对其取整,将余数归为最后一段。 4)原始音频信号的一维离散小波变换: 选择合适的小波基进行一维小波三级分解。 DL=DWT(AL)=cA3 cD3 cD2 cD1 其中: cA3和cD3是三级分解的近似分量和细节分量;cD2和cD1是二级和一级小波分解的细节分量。 由于小波分解的近似分量是信号的低频部分,往往是最重要的,水印嵌入在这部分可以增强水印的稳健性。 因此,提取这部分小波系数来进行下一步的变换。 5)特征区的检测: 因为离散余弦变换的中低频系数集中了信号的大部分特征,同时也是数值较大的部分,所以将水印信号嵌入在此,一是水印的嵌入对其影响不大;二是水印的稳健性也会加强。 因此,通过排序将满足水印长度的最大的离散余弦系数作为嵌入水印的特征点。 设这些点所组成的序列为 Ck={MAX(CL’),0 k K} 6)水印信号的嵌入: 这里通过修改系数来进行水印的嵌入,设C*为嵌入水印后的音频信号 (0≤k≤K) 这里的 是大于0的比例因子,通过调节它的大小,在具有听觉不可见性的同时,保证所嵌入的水印信息强度足够大,便于水印信息的正确提取。 在此期间其他的离散余弦系数值不变。 7)离散小波逆变换: 以C*’代替5式的cA3作离散小波变换,得到嵌入水印后的小波变换域的表示式为 D’L=C*’ cD3 cD2 cD1 将其倒置 A’L=D 将A’L代替AL最终得到含有水印的音频信号 Aw=AH+A’L 最后将其输出。 2.3.2水印提取 1)读取嵌入水印的音频信号。 对信号进行三级小波分解,再次提取其低频分量ca31和其他主要分量cd31、cd21、cd11。 2)读取原音频信号,对进行一级小波分解,读取低频分量ca3。 3)对低频分量ca31和ca3进行分段,使用嵌入算法中分段的方式,找到水印嵌入的数据点。 使用嵌入水印音频信号的低频分量减去元信号低频分量,即可得到,原水印信号c3。 c3=ca31–ca3 3代码编写 3.1主要代码 3.1.1三级小波分解 [c,l]=wavedec(y,3,'db4');%3级小波分解,低频又叫近似,高频又叫细节 ca3=appcoef(c,l,3,'db4');%提取3级小波分解的最低频部分 cd3=detcoef(c,l,3);%提取3级小波分解的次低频部份 cd2=detcoef(c,l,2); cd1=detcoef(c,l,1); 分析: 这段为小波分解过程,对原始音频信号进行三重小波分解,提取其第三级低频分量ca3和一些主要分量cd3、cd2、cd1。 并保留到重构时候使用。 3.1.2原始音频频谱分析 fs=8000;%声卡默认采样频率为8000Hz [kk.wave,fs,bits]=wavread('c.wav')%采样率fs,采样精度bits xmax=max(abs(kk.wave));%计算最大幅度 xmin=min(abs(kk.wave));%计算最小幅度 l1=size(kk.wave);%计算出总长度l1,便于FFT分析频谱 t=(0: length(kk.wave)-1)/fs; sound(kk.wave,fs);%回放监听 y1=fft(kk.wave,fs);%对信号做FFT变换 f=fs*(0: 900)/fs;%采样 分析: 这段为原始语音信号的读入,以及实现它的时域波形和频域波形,作FFT时域频谱分析。 3.1.3水印信号频谱分析 fs=8000;%声卡默认采样频率为8000Hz [mark.wave,fs,nbits]=wavread('d.wav')%采样率fs,采样精度bits symax=max(abs(mark.wave));%计算最大幅度 symin=min(abs(mark.wave));%计算最小幅度 l2=size(mark.wave);%计算出总长度l2,便于FFT分析频谱 t=(0: length(mark.wave)-1)/fs; sound(mark.wave,fs);%回放监听 syfft=fft(mark.wave,fs);%对信号做FFT变换 f=fs*(0: 900)/fs;%采样 分析: 这段为原始水印信号的读入,以及实现它的时域波形和频域波形,作FFT时域频谱分析。 3.1.4嵌入水印 randn('seed',10);%产生随机高斯序列 lz=randn(1,lx); ss=lz; q=0.2;%设置水印嵌入强度 rr=ss*q; x(i)=x(i).*(1+2*rr');%嵌入水印 c1=[x',cd3',cd2',cd1'];%小波 s1=waverec(c1,l,'db4'); file1='已加水印.wav'; dd=length(s1); ee=reshape(s1,dd/2,2); wavwrite(ee,fs,bits,file1); 分析: 这段首先产生随机的高斯序列,将水印信号分别加到分好段的原始音频信号中。 最后乘以一个系数q(这里我们设置为0.2),系数q为水印嵌入强度,可以自由设置,最后生成加入了水印后的音频。 3.1.5加入白噪 fz=sum(y.*y);%计算嵌入了水印的信号的信噪比 %fm=sum((y-yc).*(y-yc)); %SNR=-10*log(fm/fz) yyy=randn(1,dd);%加入白噪声 b=sqrt(0.01); yyy=b*yyy; s1=s1+yyy; file2='已加白噪.wav'; ee1=reshape(s1,dd/2,2); wavwrite(ee1,fs,bits,file2); kk.wave=wavread('已加白噪.wav');%读入声音文件 sound(kk.wave,fs);%回放监听 yr=kk.wave; [cr,lr]=wavedec(yr,3,'db4'); car3=appcoef(cr,lr,'db4',3); cdr3=detcoef(cr,lr,3); cdr2=detcoef(cr,lr,2); cdr1=detcoef(cr,lr,1); xr=car3; 分析: 这段是在原课程设计要求的基本上添加的一个功能,加入白噪声,并将已加白噪的音频进行了过滤,生成去除了白噪声后的含水印信号的原始音频频谱。 3.1.6水印之差 rr1=reshape(rrr,1,lx); syc=rr1-rr; plot(syc);%画出水印差别图 %axis([016e3-11]); rrr=((xr(i)./x1(i))-1)/2; d=length(rr); x=0; y=0; z=0; fori=1: d x=x+rr(i)*rrr(i); y=y+rr(i)^2; z=z+rrr(i)^2; end p=x/((y^0.5)*(z^0.5))%计算相关度 分析: 这段为完成了前面的嵌入水印和加入噪声后,通过相关度的计算,做的一个关于加入水印前和加入水印后音频信号差别的频谱分析。 3.2程序调试 本次语音信号水印技术系统设计程序代码相对较少,但是计算比较复杂。 在原理弄懂之后,调试还是比较简单的。 试调中碰到最多的问题是数据维数不对称,导致水印信号不能嵌入。 因为我们设计的算法使用的是一维数组,可以进行简单的行列转换即可解决。 但由于设计之初算法只能满足一些数据量较小的音频数据,对于数据量大的音频数据会出现无法计算的情况,即便可以计算,时间相当之长。 这只能不断提高算法的效率性和方便性,这我们会在将来的学习中不断改进。 3.3程序运行与测试 3.3.1三级小波分解 图3-1三级小波分解波形图 3.3.2原始音频频谱 图3-2原始语音信号波形与频谱图 3.3.3原始水印频谱 图3-3原始水印信号波形与频谱图 3.3.4嵌入水印信号 图3-4加入水印后语音信号波形图 3.3.5去噪提取水印 图3-5加入白噪声后提取水印的波形图 3.3.6水印之差 图3-6水印之差波形图 通过嵌入水印后波形图与原音频波形图比较,我们可以看到嵌入水印的波形变化较小,具有较好的水印隐藏性。 结论 本次课程设计我主要设计语音信号数字水印的嵌入和提取。 相对于其他设计题目,音频水印的嵌入与提取难度相对较大,并且借鉴的例子也很少,我和选择相同设计题目的同学通过了大量的学习和不断的讨论,最终将一个稳定性、鲁棒性、透明性都相对良好的算法给确定了下来,并且完成了音频水印的嵌入和提取。 在此基础上还添加了噪声和去噪等功能。 在设计之初,我认为要设计一个水印系统满足以设计要求是很困难的。 有些性质如鲁棒性、透明性和数据容量之间是相互矛盾的,因此,在这些要求中寻找最佳平衡是水印系统设计的目标。 并且在没有先例的情况下,我借鉴了一些图像水印嵌入的方法,试图将其代码变为音频所用。 事实证明这并不可取,图像水印可以二值转换,数据处理量瞬间减少很多。 音频信号数据量巨大,若要硬性相加,可能出现差错,并且占用数据空间巨大,计算困难。 但是图像水印的嵌入思想我可以借鉴,即基于小波分解的方法嵌入水印信号。 小波分解的方法可以提取低频分量,将水印信号嵌入其低频分量,并保持较多的原始音频信息,比较合适水印的要求。 这使得我们很快进入算法设计,在未清楚相应算法的情况下我和同学讨论后提出原音频信号与水印信号相加的想法。 将原音频信号进行小波分解,提取第三级低频分量,直接与水印信号相加。 但是我们发现嵌入水印的音频信号还保留了不少水印信号的声音,波形变化也比较大,不能满足较好的鲁棒性,不能较好的满足水印设计的要求。 在完成初步的水印嵌入后,我们并不满足于简单的相加算法。 之后的大量是间,我都在和同学讨论新的算法——分段相加法。 这个方法来源于小波分解,小波分解是将高低频率的信号进行分解,而我们是将时域上的信号进行分段。 这个算法由我和同学自主研究,在结合了一些图像水印嵌入和小波分解的思想后,我们终于完成该算法,并顺利应用在信息量适中的音频信号中,水印嵌入效果良好,嵌入水印音频中水印信号声音几乎不可闻,具有较好的鲁棒性和透明性。 并且避免了之前提到的维度不同无法相加的情况,因为我们一直是在一维数组的情况下对信息分段,不会出现多维情况。 但实验结束后,我们对该算法仍然保有怀疑态度。 该算法虽然采用较先进的思想,但是计算上还是比较传统。 计算数据量有所提高,但是并不能满足所有的音频信号。 最后通过大量的课外学习,我和同学大胆提出量化的方法,量化的方式是将某段区间内接近 1或0的数据向1或0靠拢,最后将他们分别合并到一个区间,最后只剩下1和0的区间,这使得计算量大量减少,并且计算出错率大幅减少。 但是该算法及其复杂,我们在短时间内并不能将其完善,只是提出一个框架,并设计了一些量化的步骤和方式。 由于时间原因,我们未能将采用量化思想的算法完成,对此我感到比较遗憾。 但是在今后的学习中,量化的思想可以应用于较多的数字信息处理当中,这为我今后的学习提供了先进的方法。 本次课程设计,我能按照设计要求和目的,较好的完成任务。 并且在多少情况下,具有自主研究的心态,并且感觉良好。 也参与了较多个讨论,体会到了团队合作的快乐。 在快乐的学习环境下完成了本次课程设计。 并且对将来的数字信号处理学习奠定了良好的基础和浓厚的兴趣。 致谢 感谢给我这次锻炼的机会。 感谢我的老师,严谨细致、一丝不苟的作风一直是我学习的榜样;循循善诱的教导和不拘一格的思路给予我无尽的启迪。 老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。 无论是在程序的编写,还是在系统界面的设计上,我都得到了老师悉心细致的教诲和无私的帮助。 多次为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。 渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。 不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。 在此,谨向指导老师们表示崇高的敬意和衷心的感谢! 同时也要表达对淮阴工学院计算机工程学院实验室的工作人员表达我真挚的谢意,他们为我们提供良好的学习环境,为此次我们课程设计提供了很大的方便,再次对他们辛勤的工作表示感谢! 在课程设计过程中,也得到了许多同学的宝贵建议和真诚的帮助,在此也对他们表示真诚的感谢! 在这里我要对我的老师以及我的同学真挚的说一声: “谢谢! ”没有你们的帮助,我可能要花费更多的时间与精力来完成这次课程设计,最后,对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢! 参考文献 1丁玉美,高西全.数字信号处理.3版.西安: 西安电子科技大学出版社,2011.3 2胡广书.数字信号处理—理论、算法与实现.北京: 清华大学出版社,1998 3A.V.奥本海姆,等.刘树裳,译.西安: 西安交通大学出版社,1985.5 4米特拉,等.余翔宇,译.数字信号处理: 基于计算机的方法(第4版).北京: 电子工业出版社,2012.1 5黎洪松,陈冬梅.数字视频与音频处理.北京: 清华大学出版社.2011.11 6何子述.现代数字信号处理及其应用.北京: 清华大学出版社2009.4 (注: 可编辑下载,若有不当之处,请指正,谢谢! )
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 信号 数字 水印 技术
![提示](https://static.bdocx.com/images/bang_tan.gif)