劉 威,袁 鍵
(1.金陵科技學院 網(wǎng)絡(luò)與通信工程學院,江蘇 南京 211169;2.亨通集團有限公司 江蘇亨通工控安全研究院,江蘇 蘇州 215131)
水印和隱寫的區(qū)別之處在于水印強調(diào)不可感知性,而隱寫強調(diào)不可檢測性[1]。根據(jù)隱藏數(shù)據(jù)嵌入位置的不同,數(shù)字音頻水印可分為無編碼(或編碼前)水印和有編碼水印兩類[2];若按嵌入原理,可分為擴頻通信水印和量化指數(shù)調(diào)制(quantization index modulation,QIM)水印[3]。本文所涉及的公共交換電話網(wǎng)(PSTN)聲帶信道是指用于傳輸窄帶語音(通帶范圍為0.3 kHz~3.4 kHz)的模擬信道,語音編解碼的標準為G.711。
語音水印一直是國內(nèi)外信息隱藏領(lǐng)域的研究熱點。如文獻[4]應用基于感知成形法的水印算法來對數(shù)字電話錄音作取證分析。文獻[5]提出一種對抗神經(jīng)網(wǎng)絡(luò)的語音水印方法。文獻[6]提出一種抗重捕獲和去同步攻擊的語音水印方法。文獻[7]基于離散小波低頻子帶和擴展抖動調(diào)制的語音水印方法。但是,上述水印算法要么未考慮PSTN聲道信道的模擬帶通和平坦衰落特性,要么需要較高的采樣率[7]。文獻[8]提出一種奇異譜分析的音頻水印方法。文獻[9]將語音視為干擾信號,并采用擴頻通信來傳遞水印數(shù)據(jù),并應用到射頻領(lǐng)域。文獻[10]利用小波變換和格點矢量化進行語音水印。文獻[11]提出多尺度Costa算法(scalar costa scheme,SCS)進行語音水印。這些算法使用矢量量化器或抖動調(diào)制器將水印信號嵌入載體信號,通常水印系統(tǒng)容量較高,但容易受幅度變換攻擊。
本文提出了結(jié)合擴頻通信和聽覺感知濾波的水印方法,改進了產(chǎn)生、嵌入與提取水印信號的方法。其主要創(chuàng)新總結(jié)如下:
(1)語音水印信號采用曼徹斯特非歸零線碼,且在嵌入水印信號時利用子帶技術(shù)改善心理聲學模型和聽覺感知濾波器。
(2)設(shè)計了帶水印信號的預處理算法,可抵御重量化攻擊和非線性濾波攻擊等。
水印系統(tǒng)對攻擊應是頑健的。常見的攻擊包括加性噪聲、濾波、重量化、重采樣、有損壓縮等。本文所涉及的PSTN聲帶信道具有以下特點:①信道是模擬、帶通的;②攻擊由PSTN聲帶信道的固有屬性造成,即并非存在某一個可能的、單獨的攻擊,而是同時存在多個攻擊(稱為聯(lián)合攻擊);③水印算法須是實時的。
總體上,PSTN聲帶信道可被視為一個具有有限脈沖響應和非線性相位的帶通濾波器,脈沖響應的周期約為10 ms,信道時延一般不超過4 ms,這種特性不以硬件電路的改變而改變[12]。其中,帶通特性決定了傳統(tǒng)的全通帶水印算法是不能被直接使用的,必須加以修正以適應該特性。
由于PSTN聲帶信道主要由雙絞線和PSTN網(wǎng)絡(luò)(端局線路卡和主干網(wǎng))組成[13],因此,本文將信道聯(lián)合攻擊細分為雙絞線信道攻擊和PSTN網(wǎng)絡(luò)信道攻擊(如圖1所示),并分別加以討論。其中,雙絞線信道代表從用戶到端局之間的物理線路特性,可用線性濾波器E(z) 加上噪聲n(t) 來描述。為了對抗該類攻擊,可以在提取端采用FIR類型的遞歸最小二乘自適應均衡器來對信道進行補償[14]。
圖1 聲帶信道攻擊模型
在聲帶信道中,壓擴攻擊最為常見,主要包括重量化攻擊和非線性濾波攻擊兩類。其中,“壓擴”表示壓縮和擴展兩部分,其標準有兩個:μ律(美國和日本采用)和A律(歐洲和中國采用),ITU-T G.711標準[15]規(guī)定了壓擴的實現(xiàn)原理。
由于壓擴攻擊不但引入了量化噪聲,而且影響通過信號的動態(tài)范圍,因此,為了使帶水印信號盡可能通過線路卡,需要在嵌入端使用預處理算法來使帶水印信號的動態(tài)范圍應能對抗該攻擊。不同攻擊產(chǎn)生的位置、類型、對抗方法見表1。
表1 信道攻擊的總結(jié)
若假設(shè)量化噪聲是AWGN型的,壓擴標準為μ律,文中仿真用到的攻擊類型總結(jié)見表2。其中,前3個攻擊屬于獨立攻擊,后2個攻擊屬于聯(lián)合攻擊。獨立攻擊主要用來與其它算法的結(jié)果作比較,聯(lián)合攻擊則模擬了真實的PSTN聲帶信道。
表2 仿真中用到的信道攻擊類型
本文的PSTN聲帶信道水印算法由嵌入端、信道、提取端3部分組成。其中信道部分已經(jīng)在上一節(jié)分析過了,本節(jié)將具體描述嵌入端和提取端的算法原理。
水印嵌入如圖2所示。載體語音信號x(n) 經(jīng)過帶通濾波器后,進行帶通心理聲學模型(psychoacoustic model,PAM)分析,得到子帶掩蔽頻響特性曲線,該曲線用來設(shè)計聽覺譜成形濾波器H(f)。 隱藏信息bm∈{0,1} 先與擴頻序列c相乘,經(jīng)過帶通濾波器和聽覺譜成形濾波器后,生成水印信號w(n)。 水印信號w(n) 與載體信號x(n) 相加,生成帶水印信號y(n)。y(n) 經(jīng)預處理后,送到數(shù)模轉(zhuǎn)換器轉(zhuǎn)化成模擬的嵌入信號s(t)。 文中語音信號的采樣頻率為fs=8000 Hz, 量化位數(shù)為16 bits。下面詳細介紹擴頻、聽覺感知濾波器和預處理的工作原理。
圖2 嵌入端
圖3 提取端
本文的水印算法細分為以下3個步驟:
(1)根據(jù)擴頻原理,生成水印信號。
(2)嵌入水印信號,生成帶水印信號。
(3)根據(jù)失真的帶水印信號,提取水印信號。
下面將詳細介紹上述步驟涉及到的算法原理與實現(xiàn)。
PMan(f)=Tbsin4(πfTb/2)/(πfTb/2)2
(1)
在區(qū)間 [0,2R] 內(nèi),該線碼功率譜密度函數(shù)的正頻率部分如圖4所示??梢钥闯觯x用曼徹斯特非歸零碼,可以保證主瓣能量集中在通帶內(nèi),適用于帶通濾波攻擊。
圖4 曼徹斯特非歸零碼的功率譜密度
若在一個符號周期Tb內(nèi)對p(t) 進行采樣,可得到一個包含Nb個樣本點的序列c=[c0,c1,…,cNb-1]T, 進而可將離散的已擴信號v(n) 表示為
(2)
其中,am=2bm-1∈{-1,+1} 為水印序列,bm∈{0,1} 為原始消息序列,Mb為水印序列的比特數(shù)量。v(n) 的產(chǎn)生也可以通過串聯(lián)擴頻碼c得到,即vm=amc。v(n) 經(jīng)過帶通濾波和聽覺譜成形濾波器H(f) 后,生成水印信號w(n)。 由于1比特的消息對應于Nb個樣本點,所以水印信號的比特率R=fs/Nbbit/s。
2.3.1 設(shè)計聽覺感知濾波器
本文設(shè)計心理聲學模型及對應的聽覺感知濾波器算法來抵抗PSTN聲帶信道的帶通特性。提出了通帶內(nèi)子帶頻率掩蔽的算法,以圖2為例,對xbp(n) 做無重疊的分幀處理,在一幀內(nèi),將其通帶頻率范圍分成若干個子帶,在各個子帶內(nèi)分別計算頻率掩蔽曲線,阻帶內(nèi)的頻響曲線部分舍棄,如圖5所示。圖中包括了載體信號、掩蔽門限和感知濾波器3種頻響曲線,還有低頻和高頻兩個阻帶,中間的通帶被分成若干子帶,用于根據(jù)載體信號的頻響計算掩蔽門限的頻響。
圖5 通帶內(nèi)按子帶劃分的3種頻響曲線
計算聽覺掩蔽頻響曲線的步驟為:
(1)計算xbp(n) 的通帶功率譜
Px(f)=10·log10(|X(f)|2/Nfft)
(3)
其中,f∈[fl,fh],fl為通帶的低截止頻率,fh為通帶的高截止頻率,X(f) 為xbp(n) 的離散傅里葉變換,Nfft為變換的點數(shù)。當然,也可以使用其它正交變換,如離散余弦變換、離散Hartley變換等。另外,在通帶內(nèi)共有Nbp個頻點,功率譜的單位為dB。
(2)將通帶分成M個子帶,每個子帶的樣本點個數(shù)為Nsub=Nbp/M, 分別計算各個子帶內(nèi)的功率譜平均值
(4)
其中,Px(fn) 代表子帶k內(nèi)頻點fn處的功率譜。
(3)對各子帶作動態(tài)壓縮
Px(fn)=[Px(fn)+μk]/2
(5)
其中,n∈[(k-1)Nsub+1,Nsub],k=1,2,…,M。
(4)令Px(f) 通過擴展函數(shù)獲得通帶內(nèi)各臨界頻帶的功率譜密度Px,cb(f)。 其中擴展函數(shù)是一個10階的對稱FIR濾波器。
(5)根據(jù)Px,cb(f), 依子帶計算頻率掩蔽曲線M(f)。 其中,第1個子帶內(nèi)M(f) 的頻響曲線與Px,cb(f) 的相同。在第2個子帶內(nèi),對Px,cb(f) 每2個頻點計算平均值,將該值賦給M(f)。 在第3個子帶內(nèi),對Px,cb(f) 每3個頻點計算平均值,將該值賦給M(f)。 以此類推,在第M個子帶內(nèi),對Px,cb(f) 每M個頻點計算平均值,將該值賦給M(f)。
(6)考慮聽覺效果,再次調(diào)整M(f) 的范圍
M(f)=M(f)-β
(6)
其中,β用來調(diào)節(jié)掩蔽門限M(f) 的最終值,單位為dB。
水印信號的功率譜密度Sw(f) 不能超過M(f), 否則會被聽出來。為了達到最優(yōu)性能,需要滿足Sw(f)=M(f)。
2.3.2 帶水印信號的預處理
嵌入端中采用預處理的目的是讓帶水印信號工作在最佳動態(tài)范圍內(nèi)。這是因為原始載體信號為16-bit均勻量化,而端局線路卡中的ADC為13-bit(μ律)或者12-bit(A律)量化,然后再經(jīng)過壓擴,產(chǎn)生非線性失真。因此,信號經(jīng)過線路卡時,幅值過低的帶水印信號將不能通過線路卡。本文水印系統(tǒng)的動態(tài)工作范圍如圖6所示,其中,16-bit均勻量化的動態(tài)范圍大約為96 dB,人耳的聽力范圍大約為90 dB,μ律的動態(tài)范圍為僅48.4 dB。若帶水印信號落在灰色區(qū)域內(nèi),則不能通過線路卡。為此,帶水印信號本身應處在該動態(tài)范圍內(nèi),或者采用預處理算法,使帶水印信號處于該動態(tài)范圍內(nèi)。
圖6 動態(tài)范圍
ITU G.169標準建議采用預處理來保證網(wǎng)絡(luò)的穩(wěn)定性,并且使語音或者聲帶信令音頻的衰減最小化[15],但它沒有具體給出標準算法。
本文預處理算法如下。預處理被建模成線性增益函數(shù)g(n), 其與輸入信號x(n) 相乘,產(chǎ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) 關(guān)于g(n) 梯度,可以得到 (8) 其中用到了近似的Py(n)=g2(n)Px(n)。 這樣,可以產(chǎn)生最小均方(LMS)意義上的自適應算法 g(n)=g(n-1){1+μPx(n)[Pref-Py(n)]} (9) 其中,μ>0是步進值,用來控制增益信號g(n) 的變化速率。小的步長值會使更新速度變慢,大的步長值則使更新加快。最優(yōu)的步進值取決于預設(shè)的目標信號電平范圍,如果Pref>Py(n), 那么g(n)>g(n-1), 如果Pref (1)估計輸入信號的電平Px(n); (2)更新增益信號g(n); (3)產(chǎn)生輸出信號y(n)=g(n)x(n); (4)估計輸出信號的水平Py(n); (5)對于新的輸入樣本,重述以上4個步驟。 (10) 其中, sign(·) 為符號函數(shù)。 實驗語音的樣本來自TIMIT數(shù)據(jù)庫[16],采樣頻率為8 kHz。從語音數(shù)據(jù)庫中隨機選擇了20個樣本作為載體信號,其中男性10人,女性10人。水印嵌入頻帶為300 Hz~3400 Hz。 帶水印的語音信號服從于多種信道攻擊,仿真中使用的信道類型如下: (1)理想全通信道。 (2)帶通濾波。采用FIR數(shù)字帶通濾波器濾波,階數(shù)為N=200,通帶為300 Hz~3400 Hz。 (3)重量化。為AWGN型,大小為80 dB。 (4)μ律壓擴。非線性攻擊,算法符合ITU-T G.711標準的要求。 (5)重量化與μ律壓擴的組合。 (6)帶通濾波、重量化與μ律壓擴的組合。 需要說明的是,重量化引起的噪聲被設(shè)置到一個很低的水平,以便有良好的BER性能。實際的PSTN聲帶信道中會有噪聲增大的情況出現(xiàn),此時需要改變參數(shù)配置,如增加擴頻增益、降低速率、使用高效的編碼和調(diào)制技術(shù)等。 PSTN是個帶限信道,根據(jù)香農(nóng)公式,信道容量為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標準,此類系統(tǒng)的設(shè)計有以下特點: (1)為了減少碼間干擾,嵌入端需要對QAM信號做脈沖成形和上變頻,產(chǎn)生帶限的帶通信號;通常,一個符號對應于若干個樣本點(上采樣)。 (2)提取端需要復雜的載波同步、時序同步和等效低通信道均衡技術(shù)(如判決反饋均衡器)。 本文的水印系統(tǒng)與該類系統(tǒng)的差異在于: (1)信道條件惡劣,信噪比極低(一般不超過-15 dB,此時的理論速率僅為43 bit/s)。 (2)收發(fā)機制不同,本文中的嵌入端直接將二進制符號映射為擴頻序列,沒有做脈沖成形和上變頻;提取端中則是使用一個碼元周期內(nèi)擴頻波形的離散化序列進行相關(guān)檢測,無載波同步、時序同步和等效低通均衡技術(shù)。 由于存在這些顯著差異,需重新推導本文所用系統(tǒng)的容量與誤碼率的關(guān)系。 (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。 這個結(jié)果表明,在該信噪比條件下,水印信號剛好足夠低,且不被聽出來。 圖7 不同信噪比條件下的速率-誤碼率曲線 3.3.1 頑健性 實驗比較了前文中提到的理想信道和其余5類信道攻擊下的誤碼率情況。在40 bit/s的速率下,仿真結(jié)果如圖8所示。攻擊類型1為理想信道,其結(jié)果作為比較的依據(jù)。從圖中可以看出,帶通濾波(類型2)導致了誤碼率的輕微下降,這是由于已擴信號通過帶通濾波器后有一小部分信號被濾除了,引起了能量的損失。重量化攻擊(類型3)對于系統(tǒng)性能的影響很小,與理想信道條件下結(jié)果近似,這是因為與有用信號相比,量化噪聲的功率很小。壓擴攻擊(類型4)使得誤碼率有所增加,但是使用了由于預處理算法,依然保持在較低的水平。重量化與壓擴聯(lián)合攻擊(類型5)下,系統(tǒng)的性能與單獨的壓擴攻擊結(jié)果近似,這說明在聯(lián)合攻擊中起主導作用的是壓擴攻擊。在帶通濾波、重量化和壓擴聯(lián)合攻擊(類型6)下,系統(tǒng)的性能進一步下降,誤碼率變?yōu)?.2%,但依然可接受。 圖8 水印系統(tǒng)對各種類型信道攻擊的頑健性 3.3.2 綜合性能比較 在帶通濾波、重量化和壓擴聯(lián)合攻擊下,表3給出了各種傳輸速率下的誤碼率情況。與圖7中的理論結(jié)果相比較,該結(jié)果處于-15 dB和-20 dB的理論曲線之間。 表3 聯(lián)合攻擊下的傳輸速率與誤碼率情況 表4給出了算法性能比較的結(jié)果,從中可以看出,所提方法優(yōu)于大多數(shù)當前的語音水印算法。涉及到的信道攻擊類型更加完整,考慮了聯(lián)合攻擊,并且實現(xiàn)了較高的容量和較低的誤碼率,以及高效的帶寬利用。此外,還設(shè)計了嵌入端和提取端的完整結(jié)構(gòu),還考慮了PSTN聲帶信道中存在的雙絞線信道、端局信道、主干網(wǎng)信道等實際信道的情況。文獻[4,5]雖然有較高的速率,但是均未考慮PSTN聲帶信道的攻擊,難以在實際中應用;文獻[9]沒有采用感知濾波技術(shù),各項指標最差;文獻[3]考慮了帶通濾波攻擊的情況,但是沒有考慮端局攻擊,而且速率比本文低;文獻[17]中沒有考慮帶通濾波攻擊和端局攻擊,同時其誤碼率較高,不具有實用參考價值。 表4 水印算法性能比較 3.3.3 聽覺效果 水印算法通常要求隱藏信息不被察覺到,且?guī)⌒盘柵c原始載體信號的聽覺差異應盡可能小。本文采用總體信噪比、分段信噪比和語音質(zhì)量感知評價(PESQ)這3個客觀評價指標來衡量聽覺效果。 (1)總體信噪比 (14) (2)分段信噪比 (15) 該方法將x(n) 分成若干幀,式中Nseg為幀長,M幀的數(shù)量。與整體SNR一樣,該值越大,說明失真越小。 (3)語音質(zhì)量的感知評價 在ITU-T P.862中給出了PESQ標準。根據(jù)文獻[18],PESQ的分數(shù)與主觀評價的打分具有很強的相關(guān)性,其優(yōu)點在于它具有客觀評價的特征,同時又能反應主觀評價。PESQ的值計算公式如下[18] PESQ=4.5-0.1·dsym-0.0309·dasym (16) 其中,dsym為平均對稱干擾值,dasym為平均非對稱干擾值。另外,PESQ的值一般在1~4.5之間。 表5列出了采用上述評價方法,將本文算法與其它算法對比的平均結(jié)果。從表中可以看出,本文算法在信噪比較高的情況下,保持了良好的聽覺不可感知性。具體來說,本文算法的整體SNR和分段信噪比大約在15 dB左右,比其它算法要低,這是由于PSTN聲帶信道的帶通特性造成了載體語音的能量損失。即便如此,本文算法的PESQ值較高,在8 kHz采樣率的條件下,該值僅比文獻[4]略低,優(yōu)于文獻[9]、文獻[3]和文獻[17]。這說明本文水印算法的聽覺不可感知性良好。文獻[5]的整體信噪比和PSEQ值雖然都比本文算法高,但是其載體語音的采樣率高(44.1 kHz),這意味著在同樣的嵌入速率下,水印對載體的損害也較小。 表5 聽覺效果評價 本文研究了PSTN聲帶信道中的語音水印問題,提出了結(jié)合擴頻通信和聽覺感知濾波的水印算法。PSTN聲帶信道存在時變線性濾波、帶通濾波、重量化、非線性濾波和頻偏等多種攻擊,為了對抗這些攻擊,改進了擴頻通信和聽覺感知濾波器的設(shè)計,還提出了利用預處理算法來減少重量化和非線性濾波對水印系統(tǒng)性能的影響。這些機制保證了水印系統(tǒng)對PSTN聲帶信道的頑健性。實驗結(jié)果表明,與其它優(yōu)秀算法相比,所提水印系統(tǒng)對于帶通濾波、壓擴等攻擊具有高頑健性,嵌入容量較高,且有滿意的聽覺效果。 由于提出的水印算法是基于擴頻通信的,與基于量化指數(shù)調(diào)制的水印算法相比,其固有容量較低,未來考慮將高容量的水印算法應用于PSTN聲帶信道水印系統(tǒng)中。
Py(n)=aPy(n-1)+(1-a)y2(n)2.4 提取水印信號
3 實驗結(jié)果與分析
3.1 實驗參數(shù)設(shè)置
3.2 語音水印系統(tǒng)容量分析
P(αm<0|bm=1)P(bm=1)3.3 系統(tǒng)性能評估
4 結(jié)束語