刘 威,袁 键
(1.金陵科技学院 网络与通信工程学院,江苏 南京 211169;2.亨通集团有限公司 江苏亨通工控安全研究院,江苏 苏州 215131)
水印和隐写的区别之处在于水印强调不可感知性,而隐写强调不可检测性[1]。根据隐藏数据嵌入位置的不同,数字音频水印可分为无编码(或编码前)水印和有编码水印两类[2];若按嵌入原理,可分为扩频通信水印和量化指数调制(quantization index modulation,QIM)水印[3]。本文所涉及的公共交换电话网(PSTN)声带信道是指用于传输窄带语音(通带范围为0.3 kHz~3.4 kHz)的模拟信道,语音编解码的标准为G.711。
语音水印一直是国内外信息隐藏领域的研究热点。如文献[4]应用基于感知成形法的水印算法来对数字电话录音作取证分析。文献[5]提出一种对抗神经网络的语音水印方法。文献[6]提出一种抗重捕获和去同步攻击的语音水印方法。文献[7]基于离散小波低频子带和扩展抖动调制的语音水印方法。但是,上述水印算法要么未考虑PSTN声道信道的模拟带通和平坦衰落特性,要么需要较高的采样率[7]。文献[8]提出一种奇异谱分析的音频水印方法。文献[9]将语音视为干扰信号,并采用扩频通信来传递水印数据,并应用到射频领域。文献[10]利用小波变换和格点矢量化进行语音水印。文献[11]提出多尺度Costa算法(scalar costa scheme,SCS)进行语音水印。这些算法使用矢量量化器或抖动调制器将水印信号嵌入载体信号,通常水印系统容量较高,但容易受幅度变换攻击。
本文提出了结合扩频通信和听觉感知滤波的水印方法,改进了产生、嵌入与提取水印信号的方法。其主要创新总结如下:
(1)语音水印信号采用曼彻斯特非归零线码,且在嵌入水印信号时利用子带技术改善心理声学模型和听觉感知滤波器。
(2)设计了带水印信号的预处理算法,可抵御重量化攻击和非线性滤波攻击等。
水印系统对攻击应是顽健的。常见的攻击包括加性噪声、滤波、重量化、重采样、有损压缩等。本文所涉及的PSTN声带信道具有以下特点:①信道是模拟、带通的;②攻击由PSTN声带信道的固有属性造成,即并非存在某一个可能的、单独的攻击,而是同时存在多个攻击(称为联合攻击);③水印算法须是实时的。
总体上,PSTN声带信道可被视为一个具有有限脉冲响应和非线性相位的带通滤波器,脉冲响应的周期约为10 ms,信道时延一般不超过4 ms,这种特性不以硬件电路的改变而改变[12]。其中,带通特性决定了传统的全通带水印算法是不能被直接使用的,必须加以修正以适应该特性。
由于PSTN声带信道主要由双绞线和PSTN网络(端局线路卡和主干网)组成[13],因此,本文将信道联合攻击细分为双绞线信道攻击和PSTN网络信道攻击(如图1所示),并分别加以讨论。其中,双绞线信道代表从用户到端局之间的物理线路特性,可用线性滤波器E(z) 加上噪声n(t) 来描述。为了对抗该类攻击,可以在提取端采用FIR类型的递归最小二乘自适应均衡器来对信道进行补偿[14]。
图1 声带信道攻击模型
在声带信道中,压扩攻击最为常见,主要包括重量化攻击和非线性滤波攻击两类。其中,“压扩”表示压缩和扩展两部分,其标准有两个:μ律(美国和日本采用)和A律(欧洲和中国采用),ITU-T G.711标准[15]规定了压扩的实现原理。
由于压扩攻击不但引入了量化噪声,而且影响通过信号的动态范围,因此,为了使带水印信号尽可能通过线路卡,需要在嵌入端使用预处理算法来使带水印信号的动态范围应能对抗该攻击。不同攻击产生的位置、类型、对抗方法见表1。
表1 信道攻击的总结
若假设量化噪声是AWGN型的,压扩标准为μ律,文中仿真用到的攻击类型总结见表2。其中,前3个攻击属于独立攻击,后2个攻击属于联合攻击。独立攻击主要用来与其它算法的结果作比较,联合攻击则模拟了真实的PSTN声带信道。
表2 仿真中用到的信道攻击类型
本文的PSTN声带信道水印算法由嵌入端、信道、提取端3部分组成。其中信道部分已经在上一节分析过了,本节将具体描述嵌入端和提取端的算法原理。
水印嵌入如图2所示。载体语音信号x(n) 经过带通滤波器后,进行带通心理声学模型(psychoacoustic model,PAM)分析,得到子带掩蔽频响特性曲线,该曲线用来设计听觉谱成形滤波器H(f)。 隐藏信息bm∈{0,1} 先与扩频序列c相乘,经过带通滤波器和听觉谱成形滤波器后,生成水印信号w(n)。 水印信号w(n) 与载体信号x(n) 相加,生成带水印信号y(n)。y(n) 经预处理后,送到数模转换器转化成模拟的嵌入信号s(t)。 文中语音信号的采样频率为fs=8000 Hz, 量化位数为16 bits。下面详细介绍扩频、听觉感知滤波器和预处理的工作原理。
图2 嵌入端
图3 提取端
本文的水印算法细分为以下3个步骤:
(1)根据扩频原理,生成水印信号。
(2)嵌入水印信号,生成带水印信号。
(3)根据失真的带水印信号,提取水印信号。
下面将详细介绍上述步骤涉及到的算法原理与实现。
PMan(f)=Tbsin4(πfTb/2)/(πfTb/2)2
(1)
在区间 [0,2R] 内,该线码功率谱密度函数的正频率部分如图4所示。可以看出,选用曼彻斯特非归零码,可以保证主瓣能量集中在通带内,适用于带通滤波攻击。
图4 曼彻斯特非归零码的功率谱密度
若在一个符号周期Tb内对p(t) 进行采样,可得到一个包含Nb个样本点的序列c=[c0,c1,…,cNb-1]T, 进而可将离散的已扩信号v(n) 表示为
(2)
其中,am=2bm-1∈{-1,+1} 为水印序列,bm∈{0,1} 为原始消息序列,Mb为水印序列的比特数量。v(n) 的产生也可以通过串联扩频码c得到,即vm=amc。v(n) 经过带通滤波和听觉谱成形滤波器H(f) 后,生成水印信号w(n)。 由于1比特的消息对应于Nb个样本点,所以水印信号的比特率R=fs/Nbbit/s。
2.3.1 设计听觉感知滤波器
本文设计心理声学模型及对应的听觉感知滤波器算法来抵抗PSTN声带信道的带通特性。提出了通带内子带频率掩蔽的算法,以图2为例,对xbp(n) 做无重叠的分帧处理,在一帧内,将其通带频率范围分成若干个子带,在各个子带内分别计算频率掩蔽曲线,阻带内的频响曲线部分舍弃,如图5所示。图中包括了载体信号、掩蔽门限和感知滤波器3种频响曲线,还有低频和高频两个阻带,中间的通带被分成若干子带,用于根据载体信号的频响计算掩蔽门限的频响。
图5 通带内按子带划分的3种频响曲线
计算听觉掩蔽频响曲线的步骤为:
(1)计算xbp(n) 的通带功率谱
Px(f)=10·log10(|X(f)|2/Nfft)
(3)
其中,f∈[fl,fh],fl为通带的低截止频率,fh为通带的高截止频率,X(f) 为xbp(n) 的离散傅里叶变换,Nfft为变换的点数。当然,也可以使用其它正交变换,如离散余弦变换、离散Hartley变换等。另外,在通带内共有Nbp个频点,功率谱的单位为dB。
(2)将通带分成M个子带,每个子带的样本点个数为Nsub=Nbp/M, 分别计算各个子带内的功率谱平均值
(4)
其中,Px(fn) 代表子带k内频点fn处的功率谱。
(3)对各子带作动态压缩
Px(fn)=[Px(fn)+μk]/2
(5)
其中,n∈[(k-1)Nsub+1,Nsub],k=1,2,…,M。
(4)令Px(f) 通过扩展函数获得通带内各临界频带的功率谱密度Px,cb(f)。 其中扩展函数是一个10阶的对称FIR滤波器。
(5)根据Px,cb(f), 依子带计算频率掩蔽曲线M(f)。 其中,第1个子带内M(f) 的频响曲线与Px,cb(f) 的相同。在第2个子带内,对Px,cb(f) 每2个频点计算平均值,将该值赋给M(f)。 在第3个子带内,对Px,cb(f) 每3个频点计算平均值,将该值赋给M(f)。 以此类推,在第M个子带内,对Px,cb(f) 每M个频点计算平均值,将该值赋给M(f)。
(6)考虑听觉效果,再次调整M(f) 的范围
M(f)=M(f)-β
(6)
其中,β用来调节掩蔽门限M(f) 的最终值,单位为dB。
水印信号的功率谱密度Sw(f) 不能超过M(f), 否则会被听出来。为了达到最优性能,需要满足Sw(f)=M(f)。
2.3.2 带水印信号的预处理
嵌入端中采用预处理的目的是让带水印信号工作在最佳动态范围内。这是因为原始载体信号为16-bit均匀量化,而端局线路卡中的ADC为13-bit(μ律)或者12-bit(A律)量化,然后再经过压扩,产生非线性失真。因此,信号经过线路卡时,幅值过低的带水印信号将不能通过线路卡。本文水印系统的动态工作范围如图6所示,其中,16-bit均匀量化的动态范围大约为96 dB,人耳的听力范围大约为90 dB,μ律的动态范围为仅48.4 dB。若带水印信号落在灰色区域内,则不能通过线路卡。为此,带水印信号本身应处在该动态范围内,或者采用预处理算法,使带水印信号处于该动态范围内。
图6 动态范围
ITU G.169标准建议采用预处理来保证网络的稳定性,并且使语音或者声带信令音频的衰减最小化[15],但它没有具体给出标准算法。
本文预处理算法如下。预处理被建模成线性增益函数g(n), 其与输入信号x(n) 相乘,产生输出信号y(n)=g(n)x(n)。 输入和输出信号电平通过对 |x(n)|k和 |y(n)|k进行低通滤波得到,k=1,2,…。 为了简便起见,文中采用单极点低通滤波器为H(z)=(1-a)/(1-az-1), 0 Px(n)=aPx(n-1)+(1-a)x2(n) (7) 预处理算法通过最小化误差e(n)=Pref-Py(n) 的平方得到,其中,Pref是y(n) 的一个参考(目标)信号功率水平。求解e2(n) 关于g(n) 梯度,可以得到 (8) 其中用到了近似的Py(n)=g2(n)Px(n)。 这样,可以产生最小均方(LMS)意义上的自适应算法 g(n)=g(n-1){1+μPx(n)[Pref-Py(n)]} (9) 其中,μ>0是步进值,用来控制增益信号g(n) 的变化速率。小的步长值会使更新速度变慢,大的步长值则使更新加快。最优的步进值取决于预设的目标信号电平范围,如果Pref>Py(n), 那么g(n)>g(n-1), 如果Pref (1)估计输入信号的电平Px(n); (2)更新增益信号g(n); (3)产生输出信号y(n)=g(n)x(n); (4)估计输出信号的水平Py(n); (5)对于新的输入样本,重述以上4个步骤。 (10) 其中, sign(·) 为符号函数。 实验语音的样本来自TIMIT数据库[16],采样频率为8 kHz。从语音数据库中随机选择了20个样本作为载体信号,其中男性10人,女性10人。水印嵌入频带为300 Hz~3400 Hz。 带水印的语音信号服从于多种信道攻击,仿真中使用的信道类型如下: (1)理想全通信道。 (2)带通滤波。采用FIR数字带通滤波器滤波,阶数为N=200,通带为300 Hz~3400 Hz。 (3)重量化。为AWGN型,大小为80 dB。 (4)μ律压扩。非线性攻击,算法符合ITU-T G.711标准的要求。 (5)重量化与μ律压扩的组合。 (6)带通滤波、重量化与μ律压扩的组合。 需要说明的是,重量化引起的噪声被设置到一个很低的水平,以便有良好的BER性能。实际的PSTN声带信道中会有噪声增大的情况出现,此时需要改变参数配置,如增加扩频增益、降低速率、使用高效的编码和调制技术等。 PSTN是个带限信道,根据香农公式,信道容量为Cpstn=Wlog2(1+P/N) bit/s, 其中,W表示带宽,P/N是信号噪声的功率比(单位不是dB)。假定W为3 kHz,噪声门限为35 dB,则可以算出Cpstn≈35 k(bit/s), 其典型应用的例子为ITU-T V.34标准,此类系统的设计有以下特点: (1)为了减少码间干扰,嵌入端需要对QAM信号做脉冲成形和上变频,产生带限的带通信号;通常,一个符号对应于若干个样本点(上采样)。 (2)提取端需要复杂的载波同步、时序同步和等效低通信道均衡技术(如判决反馈均衡器)。 本文的水印系统与该类系统的差异在于: (1)信道条件恶劣,信噪比极低(一般不超过-15 dB,此时的理论速率仅为43 bit/s)。 (2)收发机制不同,本文中的嵌入端直接将二进制符号映射为扩频序列,没有做脉冲成形和上变频;提取端中则是使用一个码元周期内扩频波形的离散化序列进行相关检测,无载波同步、时序同步和等效低通均衡技术。 由于存在这些显著差异,需重新推导本文所用系统的容量与误码率的关系。 (11) 由式(12)可以推出错误概率为 Pe=P(αm≥0|bm=0)P(bm=0)+ (12) 在等概嵌入时,式(13)简化为 (13) 在不同SNR下的比特率-误码率曲线如图7所示,可以看出当信噪比为-15 dB时,若速率为45 bit/s,误码率Pe≈10-2; 若速率为27 bit/s,误码率Pe≈10-3。 这个结果表明,在该信噪比条件下,水印信号刚好足够低,且不被听出来。 图7 不同信噪比条件下的速率-误码率曲线 3.3.1 顽健性 实验比较了前文中提到的理想信道和其余5类信道攻击下的误码率情况。在40 bit/s的速率下,仿真结果如图8所示。攻击类型1为理想信道,其结果作为比较的依据。从图中可以看出,带通滤波(类型2)导致了误码率的轻微下降,这是由于已扩信号通过带通滤波器后有一小部分信号被滤除了,引起了能量的损失。重量化攻击(类型3)对于系统性能的影响很小,与理想信道条件下结果近似,这是因为与有用信号相比,量化噪声的功率很小。压扩攻击(类型4)使得误码率有所增加,但是使用了由于预处理算法,依然保持在较低的水平。重量化与压扩联合攻击(类型5)下,系统的性能与单独的压扩攻击结果近似,这说明在联合攻击中起主导作用的是压扩攻击。在带通滤波、重量化和压扩联合攻击(类型6)下,系统的性能进一步下降,误码率变为1.2%,但依然可接受。 图8 水印系统对各种类型信道攻击的顽健性 3.3.2 综合性能比较 在带通滤波、重量化和压扩联合攻击下,表3给出了各种传输速率下的误码率情况。与图7中的理论结果相比较,该结果处于-15 dB和-20 dB的理论曲线之间。 表3 联合攻击下的传输速率与误码率情况 表4给出了算法性能比较的结果,从中可以看出,所提方法优于大多数当前的语音水印算法。涉及到的信道攻击类型更加完整,考虑了联合攻击,并且实现了较高的容量和较低的误码率,以及高效的带宽利用。此外,还设计了嵌入端和提取端的完整结构,还考虑了PSTN声带信道中存在的双绞线信道、端局信道、主干网信道等实际信道的情况。文献[4,5]虽然有较高的速率,但是均未考虑PSTN声带信道的攻击,难以在实际中应用;文献[9]没有采用感知滤波技术,各项指标最差;文献[3]考虑了带通滤波攻击的情况,但是没有考虑端局攻击,而且速率比本文低;文献[17]中没有考虑带通滤波攻击和端局攻击,同时其误码率较高,不具有实用参考价值。 表4 水印算法性能比较 3.3.3 听觉效果 水印算法通常要求隐藏信息不被察觉到,且带水印信号与原始载体信号的听觉差异应尽可能小。本文采用总体信噪比、分段信噪比和语音质量感知评价(PESQ)这3个客观评价指标来衡量听觉效果。 (1)总体信噪比 (14) (2)分段信噪比 (15) 该方法将x(n) 分成若干帧,式中Nseg为帧长,M帧的数量。与整体SNR一样,该值越大,说明失真越小。 (3)语音质量的感知评价 在ITU-T P.862中给出了PESQ标准。根据文献[18],PESQ的分数与主观评价的打分具有很强的相关性,其优点在于它具有客观评价的特征,同时又能反应主观评价。PESQ的值计算公式如下[18] PESQ=4.5-0.1·dsym-0.0309·dasym (16) 其中,dsym为平均对称干扰值,dasym为平均非对称干扰值。另外,PESQ的值一般在1~4.5之间。 表5列出了采用上述评价方法,将本文算法与其它算法对比的平均结果。从表中可以看出,本文算法在信噪比较高的情况下,保持了良好的听觉不可感知性。具体来说,本文算法的整体SNR和分段信噪比大约在15 dB左右,比其它算法要低,这是由于PSTN声带信道的带通特性造成了载体语音的能量损失。即便如此,本文算法的PESQ值较高,在8 kHz采样率的条件下,该值仅比文献[4]略低,优于文献[9]、文献[3]和文献[17]。这说明本文水印算法的听觉不可感知性良好。文献[5]的整体信噪比和PSEQ值虽然都比本文算法高,但是其载体语音的采样率高(44.1 kHz),这意味着在同样的嵌入速率下,水印对载体的损害也较小。 表5 听觉效果评价 本文研究了PSTN声带信道中的语音水印问题,提出了结合扩频通信和听觉感知滤波的水印算法。PSTN声带信道存在时变线性滤波、带通滤波、重量化、非线性滤波和频偏等多种攻击,为了对抗这些攻击,改进了扩频通信和听觉感知滤波器的设计,还提出了利用预处理算法来减少重量化和非线性滤波对水印系统性能的影响。这些机制保证了水印系统对PSTN声带信道的顽健性。实验结果表明,与其它优秀算法相比,所提水印系统对于带通滤波、压扩等攻击具有高顽健性,嵌入容量较高,且有满意的听觉效果。 由于提出的水印算法是基于扩频通信的,与基于量化指数调制的水印算法相比,其固有容量较低,未来考虑将高容量的水印算法应用于PSTN声带信道水印系统中。
Py(n)=aPy(n-1)+(1-a)y2(n)2.4 提取水印信号
3 实验结果与分析
3.1 实验参数设置
3.2 语音水印系统容量分析
P(αm<0|bm=1)P(bm=1)3.3 系统性能评估
4 结束语