黃文超,張 威,葛琳琳,李易霖
(1.遼寧石油化工大學,遼寧撫順113001;2.大連海洋大學,遼寧 大連116023)
隨著數(shù)字存儲設(shè)備的快速發(fā)展,錄音作為證據(jù)在法庭上廣泛應用,而語音容易受到攻擊,故其認證工作非常重要。存儲的語音可靠性的保證可以通過限制訪問內(nèi)容適當提高其安全性,加密是保存數(shù)字信息的一種方法,然而該方法不能完全保護信號處理級別的數(shù)字偽造,如替代、插入和刪除信號的數(shù)字偽造很難通過人們聽覺檢測出來,需要可靠的信號分析方法和先進的驗證工具來檢測。數(shù)據(jù)隱藏和提取技術(shù)是數(shù)字水印對數(shù)字版權(quán)保護的一種方式,可用于語音認證[1]。
利用音頻水印進行數(shù)據(jù)隱藏是人類聽覺系統(tǒng)的非關(guān)鍵頻帶中信號修改的一種方式,一些不能被人類聽覺系統(tǒng)聽到的信號被刪除或插入[2]。第一種應用于數(shù)字音頻水印技術(shù)是擴頻技術(shù),該方法加入由心理聲學模型或線性預測濾波器模型掩蓋的隨機信號,通過互相關(guān)完成水印的檢測[3-5],該技術(shù)的局限性在于通過數(shù)字濾波可以消除水印信息;回聲隱藏是另一種音頻水印標記技術(shù),利用原始信號和回聲信號的時間間隔很短時,人類聽不到回聲信號的理論[6],使用倒頻譜分析方法提取語音信號,易于開發(fā),該技術(shù)對數(shù)字壓縮信號具有魯棒性,但是該音頻水印很容易被發(fā)現(xiàn)和刪除,用全通濾波器的數(shù)字濾波方法嵌入水印信息,通過簡單的信號處理,可以很容易地刪除水印標記信息,從而改變相位信息[7]?,F(xiàn)有的一些方法用高度重復的信號作為數(shù)字水印,該數(shù)字水印可以通過原始信號的簡單修改產(chǎn)生[8]。本文提出了一種基于數(shù)字音頻水印和模式恢復技術(shù)提高語音信號魯棒性和有效性的方法。本文所提的方法解決了語音認證水印方法存在的問題。在語音信號中嵌入循環(huán)模式,與其他現(xiàn)有的方法相比,提取的模式不需要同步,如果語音內(nèi)容被修改,則必然修改嵌入模式。采用擴頻水印方法作為嵌入方案,通過循環(huán)模式的扭曲來測量修改的區(qū)域,在偽造檢測分析階段,采用曲線優(yōu)化的平滑技術(shù)增強了認證系統(tǒng)的魯棒性。
所提方法的執(zhí)行過程如圖1所示。
圖1 語音認證系統(tǒng)的處理流程
該過程從原始語音信號的輸入開始,用脈沖編碼調(diào)制(Pulse Code Modulation,PCM)格式存儲;水印的預檢測是為了避免冗余,如果預檢測沒有發(fā)現(xiàn)任何水印,則在語音信號中嵌入水印,嵌入水印的語音信號可以用壓縮或原始的格式存儲;為了檢測語音內(nèi)容是否被偽造或?qū)φZ音內(nèi)容進行認證,必須進一步處理,語音信號應該由MP3、WMA等存儲格式轉(zhuǎn)換為PCM信號;水印圖像的恢復需要對圖像進行位信息提取和預處理,通過對模式退化程度的分析,可以檢測出含有水印的語音信號是否被偽造。實驗中使用的語音數(shù)據(jù)是在一個普通的室內(nèi)環(huán)境中用6個設(shè)備記錄的(3個PDA、DVR,耳機和紐扣麥克風),并按8 kHz的速率采樣,16 bit的分辨率量化,語音的持續(xù)時間大約為60 s。為評估偽造檢測的準確性,在隨機點上替換、插入和刪除語音片段,并測試修改后的語音的完整性及抵抗MP3和CELP語音壓縮的魯棒性。
從根本上說,水印嵌入可以在時域和頻域中,水印技術(shù)關(guān)鍵在于隱藏擴頻序列,通過相關(guān)性技術(shù)不能檢測出該隱藏的擴頻序列。本文利用初始種子產(chǎn)生的偽隨機序列對頻譜的幅度進行了修正,這些序列的循環(huán)移位變換可以用來表示一個特定的隨機序列的多個信息,水印幅度向量由y=m+w計算得出。其中,m為原始幅度,水印w定義為Δb,隨機位序列b由b(i)組成,i=1,2,…,N,參數(shù)Δ表示嵌入強度。頻域嵌入水印方案如圖2所示。
圖2 頻域嵌入水印方案
DFT的塊變換存在塊回聲,該回聲在水印應用中會引起可聽到的噪聲,當水印強度變強時,塊回聲更突出。使用重疊相加(OLA)方法合成語音塊,可以減少塊回聲,重疊相加(OLA)方法如圖3所示。最終嵌入水印的幀2(F2)由式(1)計算得出。
式中,S'1為幀1和幀2的加窗信號和水印信號;S'2為幀2和幀3的加窗信號和水印信號;N為幀大??;W為窗口信號,如hamming窗口。
圖3 重疊相加(OLA)方法
在不考慮同步的情況下,對水印使用循環(huán)模式來檢測偽造,通過檢測模式的變化來測試偽造的存在。然而,需要在魯棒性和時間分辨率精度之間進行權(quán)衡,時間分辨率精度由時間長度(T)和水印信息的數(shù)量確定,水印信息的折中值如圖4所示。較長的時間長度和更多的水印信息能獲得更高的魯棒性,但是降低了時間分辨率的精度,本文確定T值為 0.6 s,水印信息為 0,1,2,3,4。
圖4 水印信息的折中值
相同的水印信息被嵌入到整個區(qū)域中,這些區(qū)域通過移位隨機比特序列形成,含有時間長度和水印信息。水印信息的循環(huán)模式如圖5所示。
圖5 水印信息的循環(huán)模式
為了避免水印信息被錯誤地重新嵌入,設(shè)計了一種預檢測方案,在預檢測階段通過進行簡單的相關(guān)運算來預先檢查水印,加水印和無水印信號的掃描寬度如圖6所示。從圖6可以看出,加水印的信號比無水印的信號顯示更大的峰值,如果峰值大于20,則內(nèi)容被視為水印信號。
圖6 加水印和無水印信號的掃描寬度
水印提取采用互相關(guān)法,水印信息的提取過程如圖7所示。利用水印信息的時間變化來恢復語音信號,并通過檢測水印圖形的退化程度來識別語音信號是否被偽造。
圖7 水印信息的提取過程
將水印信號分為原始信號和噪聲信號兩類,信號片段幅值的疊加提高信噪比(SNR),當嵌入的水印強度越弱時,SNR越高,水印檢測越困難。為了避免不同水印信號片段的積累,累加片段的大小應該小于用于嵌入的時間長度。
語音信號可以作為隱藏信息的載體,因此語音信號的方差直接影響水印的檢測結(jié)果,具有共振峰規(guī)范的語音信號會產(chǎn)生較大的方差,所以應用倒頻譜濾波(CF)作為濾化信號的方法,CF通過以下步驟去除語音信號的頻譜形狀。
步驟1 通過離散余弦變換(DCT)計算DFT向量幅度的近似倒頻譜z=DCT(y)。
步驟2 倒頻譜系數(shù)是過濾掉的第一部分,設(shè)zi=0,i=0,1,…,9。
步驟3 通過逆DCT重構(gòu)頻譜y?=IDCT(z)。
通常,水印檢測由定義的互相關(guān)函數(shù)來完成:
式中,r(i)為位移幅度;°為互相關(guān)函數(shù)。
如果?(i)=0,則p(i)=1?;ハ嚓P(guān)函數(shù)如圖8所示。根據(jù)隨機比特的位移幅度,必須在特定位置有較大的相關(guān)值,水印信息可以用0到N-1的峰值范圍索引來提取。
圖8 互相關(guān)函數(shù)
為了提高提取模式的魯棒性,采用下面兩個預處理步驟。
步驟1 向右信息趨近的估計。由于音頻壓縮和不穩(wěn)定的嵌入技術(shù),使水印信息的時間變化存在一些意想不到的錯誤,t幀的水印值(V(t))為0~4,其他值都是錯誤的,這些錯誤值可以用最臨近的正確值替換。
步驟2 曲線優(yōu)化(平滑)。v(t)的時間變量的正確結(jié)果類似于0,1,2,3,2,1,0,1,2,……,然而,由于一些無法避免的錯誤,存在一些非連續(xù)的值,可以應用曲線優(yōu)化技術(shù)恢復v(t)的時間變量。如果v(t)的長度為N,可以定義為(N-2)×(N-2)的矩陣B和(N-2)×N的矩陣D。
用式(4)和式(5)表示平滑模式(F)。
式中,V為大小為N×1中水印信息的時間變量;η是平滑參數(shù);F為平滑模式;A為平滑模式F的中間矩陣。
原始圖像和平滑圖像水印信息的提取模式如圖9所示。
圖9 水印信息的提取模式
基于局部峰之間長度(L)檢測偽造區(qū)域提出的方法可以檢測的偽造區(qū)域三種偽造信號為:類型I,插入沒有加入水印的語音信號;類型II,插入加入水印的語音信號;類型III,刪除語音信號。假設(shè)局部峰的長度為L,并且在最大峰值(最大峰值為4)中存在3個局部峰值,局部峰之間長度檢測語音信息偽造的結(jié)果如圖10所示。
圖10 局部峰之間長度檢測語音信息偽造的結(jié)果
在圖10(b)的類型I偽造中,有意插入一些信號,局部峰的長度大于L;在圖10(c)的類型II偽造中,由于添加了一些加入水印的信號,導致局部峰的長度變長或變短,最大峰之間的局部峰數(shù)可能大于3個;圖10(d)的類型III偽造可以通過觀察局部峰較短的長度檢測到,最大峰之間的局部峰數(shù)可能小于3個。
實驗使用6個錄音裝置(PDA(H)、PDA(C1)、PDA(C2)、數(shù)字錄音機 、內(nèi) 置 MIC+PC、外聯(lián)MIC+PC)來對語音信號進行記錄,語音數(shù)據(jù)采用8 kHz的采樣率和16 bit分辨率量化,語音記錄的長度為60 s,錄音分別在安靜和嘈雜的辦公室內(nèi)進行,使用奔騰663 MHz的PC機對語音信號進行水印的嵌入和檢測,幀由256個樣本組成,T為0.6 s,水印在DFT域的600~3 800 Hz頻帶內(nèi)進行嵌入,嵌入時間為時播放時間的9%。
采用了兩種嵌入強度(Δ)來測試對兩種語音壓縮(MP3和CELP)的魯棒性。水印嵌入的SNR結(jié)果如表1所示。3 dB是MP3壓縮格式(16 kbps)中完美偽造檢測的最小強度;10 dB是CELP壓縮格式(11.5 kbps)中完美偽造檢測的最小強度。由于環(huán)境噪聲和設(shè)備噪聲的摻雜,很難通過仔細聆聽來區(qū)分原始語音和水印語音(3 dB強度)。強度為10 dB時,水印噪聲是可聽的,但一般語音的失真較小。
本文對原始語音在隨機點使用三類偽造進行修改來檢測所提的方法,修改的長度為1 s,在每個語音數(shù)據(jù)偽造測試中,對每個類型進行32個不同類型的偽造測試,測試過程為:通過檢測L(正常值為3.6 s),無論比正常值長或短都可檢測到偽造,閾值為0.4 s,如果在局部峰之間存在偽造點,則不存在傾斜誤差;否則,用最近的峰與偽造點之間的差值來估計傾斜誤差,平滑參數(shù)(g)為300,檢測時間為播放時間的50%。16 kbps的MP3壓縮格式的魯棒性測試結(jié)果如表2所示。
表1 水印嵌入的SNR結(jié)果
表2 16 kbps的MP3壓縮格式的魯棒性測試結(jié)果
共測試了576個偽造樣本,所有的偽造都能夠成功地被檢測到,可以明顯地看到誤差;在測試中還對很難恢復的8 kbps的MP3壓縮格式的水印模式進行了檢測。為了保持語音質(zhì)量,16 kbps的壓縮是最小壓縮級別,所以本文所提的方法在實際應用中是有效的。當語音信號用MP3壓縮時,在8 kHz的采樣率下,在原始信號前添加56個樣本,這種添加是一種插入語音片段的偽造,并導致圖10中L的長度略微增加,但是在實際應用中這種增加不認為是偽造,因為0.07 s不足以對語音內(nèi)容進行有意義的偽造。11.5 kbps的CELP壓縮格式的魯棒性測試結(jié)果如表3所示。該測試除了嵌入強度以外與MP3壓縮格式的測試實驗方法相同,并且所有偽造檢測也與MP3壓縮格式的測試相同。
不同方法對語音信號的壓縮結(jié)果如表4所示。多光譜分析、特征提取、脆弱水印、本文方法的壓縮結(jié)果分別使用自然語音、比較加密特性、比較原始位和提取位、檢查恢復模式的變化方法進行檢測。從表4可以看出,與其他現(xiàn)有數(shù)字水印方法相比,該方法具有兩個優(yōu)點,不需要再同步,并且使用模式恢復的容錯能力更強。
采用嵌入循環(huán)模式解決同步問題和模式恢復問題,提高了算法的魯棒性。模式恢復采用預處理和曲線擬合相結(jié)合技術(shù),為避免冗余水印,采用快速預檢測方法。該方法可以檢測各種語音信號的偽造,并通過實際實驗驗證了該方法的有效性,在曲線逼近的過程中有可能產(chǎn)生誤差,當在接近局部峰值的地方進行偽造時,會產(chǎn)生傾斜誤差。針對這一問題,今后將對模式進行直接分析,使該技術(shù)不斷完善。
表3 11.5 kbps的CELP壓縮格式的魯棒性測試結(jié)果
表4 不同方法對語音信號的壓縮結(jié)果