在变换域中实现的能量自适应音频隐藏算法*
2022-03-16杨青林
杨青林,高 勇
(四川大学,四川 成都 610065)
0 引言
在互联网、人工智能等行业迅速发展的背景下,多媒体数据的传输与分发技术也得到了发展,随之出现的也包括隐私泄秘、版权受侵和数字媒体内容被篡改等信息安全问题,因此,数字水印[1-3]越来越得到人们的关注。数字水印是信息隐藏的一个主要分支,信息隐藏是将秘密信息嵌入数字化的载体信息中,并使得这个嵌入引起的变化不被发现的行为,简而言之,将秘密信息S嵌入载体信息C中,形成载密信息W,而载密信息W与载体信息C的差别并不能直观感受到,需要通过特殊的处理方法,才能获知两者的差别。载体可以是音频、文本、图像及视频[4]等。音频水印系统具有多个性能指标,从信号处理角度出发,可利用透明性、鲁棒性和水印容量[5-7]指标。本文提出的算法是以音频为载体实现的音频隐藏算法。
音频隐藏是信息隐藏的一个主要分支,文献[8]介绍了信息隐藏技术的历史背景与数字应用,从中可知,大多数音频隐写算法是在变换域中进行,如傅里叶变换[9]、离散余弦变换[10]、小波变换[11]和小波包分解[12]等,如文献[11]是将载体音频经过小波变换后,通过调整中高频系数改变每级小波变换高频系数前后两部分的能量状态来隐藏二进制信息,但是该方法的嵌入容量与鲁棒性有待提高;文献[12]将载体音频经过小波包分解后,以一种自适应的方式将嵌入秘密信息的小波包控制在中高频,通过调整小波包能量的大小关系来隐藏信息,该算法虽然嵌入容量较大,但是鲁棒性较低;文献[13]先对音频信号分帧,然后对每帧信号进行6 级离散小波变分解,并选取低频系数将其构造成两个向量,分别计算向量范数,最后通过量化向量范数实现水印的嵌入,但鲁棒性有待提高。
为了克服上述鲁棒性不足之处,并且保证透明性较好,本文提出了一种基于小波包分解、EO-LO以及能量自适应的音频隐藏算法。本文算法的主要特点如下:
(1)结合了小波包分解、EO-LO 和能量自适应;
(2)采用含有混沌特征的高斯映射对秘密音频进行预处理,以提高安全性;
(3)对载体音频进行分帧处理,选取能量最大的L帧进行秘密信息的嵌入以此提高透明性;
(4)秘密音频的提取是全盲的过程;
(5)在透明性、鲁棒性和嵌入容量之间实现了良好的权衡。
本文提出的算法中,载体音频与载密音频的信噪比均值为23.872 7 dB。该算法在抗攻击方面,误码率均值为0.00%~0.57%,而相关研究算法误码率为0.219 1%~6.466 9%。
1 盲水印音频隐藏算法
1.1 小波包分解
傅里叶变换作为全局分析手段存在一定的局限性,而小波变换能弥补它的不足之处。小波变换在频率上将音频信号分为高频系数H1部分(又叫细节分量)和低频系数L1部分(又叫近似分量),高频分量一般保存了音频信号细节部分,而低频分量一般保留了音频信号的基本特征,而在当前分解级数下,可以再将该级的低频系数进行小波变换得到该部分的高频系数H2和低频系数L2,以此类推。
由于小波变换不停地在对音频的低频分量做分解,所以小波变换对高频分量的分解度较低,即频率分辨率低,而且对低频分量的时间分辨较差。为了应对上述缺陷,小波包分解应运而生。小波包分解不仅在低频分量上对信号进行分解,也在高频分量上对信号进行分解,所以小波包分解能对信号进行更加精细的分解。当信号是音频信号时,小波包分解的结果是一棵完全二叉树。
从时域上观察小波包分解,有以下特点:
(1)第F层小波包的数目是第F+1 层小波包数目的一半;
(2)每个第F层小波包中所包含的数据长度是第F+1 层小波包的两倍;
(3)第F层小波包的时域分辨率是第F+1 层小波包时域分辨率的两倍。
从频域上观察小波包分解,有以下特点:
(1)每一个小波包被一分为二,分成了高频段系数与低频段系数;
(2)小波包的带宽相等且频带相邻;
(3)分解的级数越多,小波包数量越多,频段被划分得越精细。
1.2 局部能量最大值算法
音频信号一般可以分为浊音段和清音段。浊音段的特点是短时能量大、短时平均幅度大、短时过零率低,与此相对应的清音段则具有短时能量小、过零率高的特点。根据人耳听觉系统的掩蔽效应,选择短时能量最高的L帧音频段作为载体音频。短时能量的计算公式为:
式中:xk(i)为第k个音频帧的第i个采样点的幅值;n为帧长;L为待嵌入秘密bit 的长度。
局部能量最大值算法在本文中的应用为:首先将音频帧分为帧数大于L的M(L≤M)帧,其次求得每个音频帧的能量,最后选取能量最大的L帧[11,14]作为载体音频帧。
2 水印的嵌入和提取
2.1 水印预处理
假设带嵌入的信息是S1,将其表示为:
式中:s1(i)与l分别为采样点的幅值与采样点的总个数。S1转化为二进制码流后,可表示为:
式中:L=l×q0;q0为s1(i)量化的位数;s2(q)∈{0,1}。在将秘密信息转化为二进制信息后,可以通过式(4)所示的Logistic 映射对信息加密,以此来提高信息的安全性。
式中:0<xq<1,当q=1 时x1∈{0,1}为该序列的初始值。为了使得Logistic 系统处于混沌状态得到有类似于白噪声特性的序列,需将α设置在3.569 945 6与4 之间,即3.569 945 6<α<4,然后利用式(5)产生二进制混沌序列c(q):
式中:δ为判决门限,在[0,1]上取值。通过δ将与δ进行异或运算得到加密过后的水印S3,然后通过三元密钥(x1,α,δ)可将S3解密。
2.2 水印嵌入
由于人耳听觉系统对音频中部分频率成分的微小变化不敏感,可以通过对能量的调整将秘密信息嵌入载体音频的多级小波包分解后的中高频系数中,这样不易被发觉。载体音频信号为:
式中:c(t)为第t个数据的幅度;K为采样点总数。
为求得小波包子带系数,首先对载体音频C进行分帧处理,得到每帧信号Cl(1 ≤l≤M,M ≥L);其次对能量最大的L帧音频进行r级小波包分解,得到小波包子带系数Co(l,j)(1 ≤j≤2r)。Co(l,j)是第l个片段的第j个节点的小波包子带系数,它的分解结果是一棵完全二叉树,将每个节点(根节点除外)从左至右、从上至下依次标号为1,…,2r。
得到小波包子带系数后,先对小波包子带系数Coj进行EO 指数运算y=ax(a>0 且a ≠1),即Coj=aCoj,再将其分为前后两段数据,并按式(7)和式(8)计算这两部分的能量。
图1 水印信息的嵌入过程
第j个节点的小波包子带系数前半部分的能量为:
其后半部分的能量为:
可通过调节小波包子带系数的幅值来嵌入1 bit信息。根据S3(l)的二进制取值并按照式(9)、式(10)和式(11)来调节系数幅值,从而获得嵌入信息后的小波包系数Co(i,j)′(i):
式中:j表示第j节点小波包子带系数中嵌入;r表示第r级小波包分解;λj为第j节点小波包子带系数中水印嵌入深度;λ1j为该小波包子带系数的前半段增益;λ2j为后半段增益,且λj>1。据S3(l)的取值,按式(10)和式(1)设置λ1j和λ2j。
完成嵌入后,进行LO 对数运算y=logax(a ≠1),其中x为嵌入信息后的小波包系数x,接着进行逆小波包分解,最后重构音频帧得到载密音频信号。
2.3 水印提取
如图2 所示,提取信息时,先将载密音频按照嵌入时的分帧长度进行分帧,然后选出能量最大的L个音频帧,对选中的每帧音频进行r级小波包分解,接着对嵌入了水印的小波包子带系数Co(i,j)′进行EO 指数运算。当每帧音频中被选中的小波包子带系数按照式(9)、式(10)和式(11)修改系数值来完成水印的嵌入后,其前后两部分的能量大小与嵌入的水印取值有关。当S3(i)=1 时,按式(7)和式(8)计算其前后两部分的能量EQ(l,j)′和EH(l,j)′(j=1,…,2r)为:
图2 水印信息的提取过程
由式(12)与式(13)可知,当λj>1 时,有EQ(l,j)′>EH(l,j)′。同理,S3(i)=0 时,调整后的小波包子带系数前后两部分的能量分别为:
由式(14)与式(15)可知,当λj>1 时,有EQ(l,j)′<EH(l,j)′。
因此水印的提取规则为:
得到提取的二进制比特流后,利用逆混沌高斯映射恢复水印,最后得到提取的水印信息。
3 实验结果及讨论
选择不同的小波包子带系数、载体音频分帧的帧长和嵌入深度会对载密音频的听觉质量和提取水印信息的误码率都有不同程度的影响,设置参数为:
(1)嵌入频段:4 级小波包分解后的第17 节点小波包子带系数与第19 节点小波包子带系数。
(2)嵌入深度:λ17=1.2,λ19=1.2。
(3)音频分段长度:20 ms。
(4)三元密钥:(x1,α,δ)=(0.2,3.9,0.5)。
(5)载体音频格式的无损音频,采样率44.1 kHz,量化位数16 bit。
(6)音频水印:为了减少数据量,使用一段长为3 s 的语音“两支队伍胜利会师”,采样率6 kHz,量化精度8 bit。选择这些参数是为了更好地权衡透明性、鲁棒性和嵌入容量。
本节中载体音频类型分别为人声类、摇滚类歌曲、说唱类歌曲、DJ 类歌曲各20 首。由仿真实验结果可知,该算法具有较好的透明性与鲁棒性。
3.1 透明性测试
信息隐藏旨在隐藏秘密信息的存在,以音频为载体的隐蔽通信是将水印信息嵌入到原始载体音频中。信噪比(Signal to Noise Ratio,SNR)广泛应用于测量水印音频信号的客观质量,其计算方式为:
式中:s(n)与s*(n)分别为时域中的原始载体音频信号和含水印音频信号。按照国际唱片业联合会标准[15],当SNR>20 dB 时水印不可察觉。测试结果如表1 所示,它们的信噪比均值为23.872 7 dB。
表1 不同载体音频信号的信噪比
从表2 可以看出,本文的信噪比相对于文献[11]提高了3.061 dB,相对于文献[16]提高了1.877 dB。由以上数据可知,本文算法具有更好的透明性。
3.2 鲁棒性测试
使用归一化相关系数(Normalizaed Correlation,NC)来比较原始水印s与提取的水印的相似性,其公式为:
式中:a为音频水印的索引。如果NC(S,S*)接近1,则S与S*之间的相关性非常高;如果NC(S,S*)接近0,则S与S*之间的相关性非常低。
使用误码率(Bit Error Rate,BER)来衡量水印方案的鲁棒性,其公式为:
式中:⊕为异或运算。
下面用NC与BER来评估该算法的鲁棒性并对含水印音频进行无攻击与攻击测试,攻击包括:
(1)加入信噪比为20 dB 的加性高斯白噪声到音频信号;
(2)加入信噪比为30 dB 的加性高斯白噪声到音频信号;
(3)将含水印音频信号降采样到22.05 kHz,再升采样到44.10 kHz;
(4)剪裁。
表3 显示了无攻击与不同攻击时该算法的鲁棒性结果。
从实验数据来看,由于加噪20 dB 比加噪30 dB时的噪声大,所以在使用摇滚类歌曲为载体时,会存在少许误码率,但总体而言该算法在无攻击以及20 dB 噪声、30 dB 噪声、剪裁这几种攻击下,误码率几乎为零,基本实现了对原始水印信息的无损恢复。因此,该算法对这几种攻击具有不错的抵抗力,而在接受降采样攻击时,BER最大值为0.570 0%,由此可见,本方案的鲁棒性比较好。
表4 中显示的是所有歌曲在无攻击以及各种攻击下BER的均值,在本文算法中,被攻击的载密音频在加噪20 dB 与降采样攻击下的平均误码率分别为0.000 9%和0.502 0%,其余攻击平均误码率均为0%,从嵌入容量可以看出,本文算法的嵌入容量为100 bit/s,与另外两篇文献一样。
表4 算法间的性能比较
在表4 中,纵向对比,在对载密音频进行20 dB的高斯白噪声攻击时,其他方案在抗噪性方面的BER均远远大于0.000 9%,其中,文献[17]高达3.460 0%,为本文算法的7 185 倍,而文献[11]高达6.466 9%,为本文算法的3 844 倍,非常不利于秘密信息的提取。在加噪30 dB 与剪裁攻击下,本文算法的误码率均为0%,其余文献的算法的误码率都大于0%。在降采样攻击下,文献[11]的误码率是本文算法误码率的7.87 倍,通过对比发现,本文算法是一种具有高鲁棒性的音频隐藏算法。
3.3 嵌入容量
嵌入容量表示的是单位时间内可以嵌入的原始音频信号的比特数,单位为每秒比特数,即bit/s,单位时间内隐藏的比特数越多,则隐藏容量越大。本文算法的隐藏容量与载体的分帧长度La、小波包分解的级数r以及承载水印信息的频段个数P有关,计算容量的公式为:
在本次实验中,每帧载体音频时长为20 ms,即La=20 ms,小波包分解的级数r=4,在编号为17 与19 的小波包子带系数中嵌入水印信息,即P=2,因此,嵌入容量。如果在更多的小波包频带系数中嵌入信息,则容量会更大,但由于受到算法透明性与鲁棒性的制约,本文选在第17 与第19 的小波包子带系数中嵌入水印信息,透明性与鲁棒性均较好,在应用该算法时应根据具体需求来设计嵌入容量。
4 结语
本文提出了一种基于EO-LO 的变换和小波包能量的自适应盲水印音频隐藏算法。该算法选择能量最大的L个音频帧并且利用小波包分解将秘密信息嵌入,小波包分解能弥补小波变换的不足,提高了音频隐写算法的鲁棒性。仿真结果表明,该算法具有较好的鲁棒性与透明性。此外,与一些相关水印方案相比,本文方法在透明性与鲁棒性方面做到了较好的平衡。