趙巖松,錢 清,熊晶晶
(1. 信陽師范學(xué)院 外國語學(xué)院, 河南 信陽 464000; 2. 貴州財(cái)經(jīng)大學(xué) 信息學(xué)院, 貴州 貴陽 550025;3. 信陽市中心醫(yī)院 醫(yī)務(wù)科, 河南 信陽 464000)
5G網(wǎng)絡(luò)的發(fā)展,加深了數(shù)字音頻作為載體來轉(zhuǎn)播信息的應(yīng)用,其已成為傳遞和交流信息的重要載體之一。為了確保音頻內(nèi)容的真實(shí)性和完整性,數(shù)字水印[1]技術(shù)應(yīng)運(yùn)而生,并在版權(quán)保護(hù)和內(nèi)容取證方面發(fā)揮了積極的作用。對于音頻水印而言,根據(jù)水印嵌入域的不同,可以分為時(shí)間域的方法和頻率域的方法。一般而言,時(shí)間域的水印嵌入易受到信號處理等的影響,常用于內(nèi)容取證;而頻率域的水印嵌入具有一定的魯棒性,常用在音頻內(nèi)容的版權(quán)保護(hù)方面[2-7]。
數(shù)字語音信號,常作為載體來傳遞重要、敏感的信息。如果語音信號在傳播過程中,內(nèi)容被篡改,聽眾將接收不到正確的信息。更甚者,若聽眾按照接收到的錯(cuò)誤的信息來行事,會(huì)造成嚴(yán)重的后果。對于被攻擊的語音信號而言,聽眾最渴望的是盡快恢復(fù)被攻擊的內(nèi)容??苫謴?fù)的水印技術(shù)在數(shù)字圖像上已有相當(dāng)豐碩的研究成果。由于音頻信號的特殊性,該技術(shù)在音頻領(lǐng)域還相對匱乏。
基于數(shù)字水印技術(shù),本文提出了一種具有篡改恢復(fù)能力的語音取證算法。首先統(tǒng)計(jì)了語音信號離散余弦變換(Discrete Cosine Transform,DCT)[5]系數(shù)的分布。分布特性表明,語音信號DCT系數(shù)幅值較大的大部分都集中在低頻部分,中高頻系數(shù)幅值較小,趨近于0?;诖颂匦?,本文實(shí)驗(yàn)證明:在保持語義的前提下,僅保留DCT低頻系數(shù),將中、高頻系數(shù)取值為0,進(jìn)行逆DCT即可恢復(fù)原始語音信號的內(nèi)容。然后,給出了一種語音信號壓縮方法,將壓縮信號作為部分水印信息嵌入到載體信號中。此外,幀號作為另一部分水印信息來定位被攻擊的幀。如果含水印語音被攻擊,那么通過提取幀號來定位被攻擊的內(nèi)容,隨后提取壓縮數(shù)據(jù)重構(gòu)被攻擊的部分進(jìn)行篡改恢復(fù)。
假設(shè)語音信號用A={a(l),1≤l≤L}表示,其中a(l)表示第l個(gè)語音信號的樣本點(diǎn)。對信號A進(jìn)行DCT,可得長為L的DCT系數(shù),記為B={b(k),1≤k≤L},這里b(k)由式(1)得到[3]:
(1)
(2)
對比式(1)和式(2)可得,將DCT系數(shù)放大T倍,對應(yīng)的時(shí)域樣本同時(shí)也放大T倍。于是語音信號時(shí)域樣本和頻域系數(shù)之間存在線性關(guān)系,如式(3),其中T>0。若將水印嵌入到DCT系數(shù)中,可以通過同比例的縮放語音信號時(shí)域樣本來完成嵌入。
(3)
下面統(tǒng)計(jì)語音信號DCT系數(shù)的分布情況。從樣本庫隨機(jī)選取一段信號并進(jìn)行DCT,生成的系數(shù)如圖1所示。
圖1 隨機(jī)選取語音信號的DCT系數(shù)Fig. 1 The DCT coefficients of the speech signal selected randomly
由圖1可以看出,DCT系數(shù)高頻系數(shù)幾乎全部趨近于0,幅值較大的系數(shù)大多位于低頻部分。為了進(jìn)一步分析DCT系數(shù)不同幅值的分布,從樣本庫中選取在不同環(huán)境下(安靜的室內(nèi)、討論會(huì)現(xiàn)場、公園以及火車站)錄制的500段語音信號進(jìn)行測試。選取的信號采樣頻率為8 kHz,時(shí)間長約為10 s。對500段信號DCT,并統(tǒng)計(jì)不同幅值的個(gè)數(shù)分布,結(jié)果如圖2所示。
圖2 不同幅值DCT系數(shù)的語音信號的個(gè)數(shù)分布Fig. 2 Number distribution of speech signals DCT coefficients with different amplitudes
圖2所示結(jié)果再次表明,語音信號DCT系數(shù)幅值中為0的系數(shù)占了絕大部分,而幅值較大的系數(shù)(如幅值大于0.1)相對較少。受此啟發(fā),接下來選取幅值較大的低頻系數(shù),并將其余系數(shù)全部置零,來重構(gòu)原始信號。
1.2.1 壓縮方法
下面給出本文的對語音信號A的壓縮方法:
①首先對信號A進(jìn)行分幀,并等分為P幀,用Ai表示第i幀,N表示第i幀的長度。
②對第i幀信號Ai進(jìn)行DCT,并選擇前N1個(gè)DCT低頻系數(shù),記為Ci={cl,1≤l≤N1}。
(4)
1.2.2 重構(gòu)方法
(5)
1.2.3 壓縮、重構(gòu)舉例
隨機(jī)選取如圖3的信號作為測試樣本,將其等分為3幀,每幀樣本點(diǎn)個(gè)數(shù)為1000。根據(jù)以上的壓縮方法,對3幀信號的各幀進(jìn)行DCT,可得3段、每段包含1000個(gè)DCT系數(shù),如圖4所示。取各段信號DCT系數(shù)較大的部分(N1=N/10),并由式(5)對其進(jìn)行編碼,編碼后的DCT系數(shù)被視為壓縮后的數(shù)據(jù),如圖5所示。
在信號恢復(fù)過程中,首先對壓縮數(shù)據(jù)解碼;接著由解碼的壓縮數(shù)據(jù)重構(gòu)DCT系數(shù),由重構(gòu)的DCT系數(shù)進(jìn)行逆DCT,來近似恢復(fù)圖3中的語音信號,恢復(fù)結(jié)果如圖6所示。
圖3 隨機(jī)選取的測試樣本Fig. 3 The test samples selected randomly
圖4 各幀信號DCT系數(shù)Fig. 4 The DCT coefficients of the frames
圖5 編碼后的DCT系數(shù)Fig. 5 The encoded DCT coefficients
圖6 重構(gòu)的語音信號Fig. 6 The reconstructed signal
和常見的歌曲類音頻信號相比,語音信號一般情況下含有較多的靜音段,與表達(dá)含義比較密切的是非靜音段的部分。由上述重構(gòu)結(jié)果和原始信號的對比結(jié)果可得,由1.2.1節(jié)的壓縮數(shù)據(jù),可以較好地恢復(fù)非靜音部分的信號。雖然恢復(fù)的靜音部分的信號和原信號相比有一定的差異,但靜音部分信號不包含實(shí)際的語義,所以可以包容這些差異。從實(shí)際聽感來看,上述重構(gòu)的語音信號和原始信號語義相同,表明在保持語義不變的前提下,上述1.2節(jié)所提出的壓縮和重構(gòu)方法是可行的。
Step 1:如1.1部分,類似地用A表示語音信號,且將A等分為P幀,幀長為N。第i個(gè)幀記為Ai={ai,j|1≤j≤N},1≤i≤P,P=L/N。
Step 4:為了嵌入的方便,將每幀信號對應(yīng)的幀號歸一化,如式(6)所示。
Fi=i/(10)N1,
(6)
其中:N1為lgP向上取整所得的整數(shù),P表示語音信號A的分幀個(gè)數(shù)。
Step 1:對Ai進(jìn)行DCT,得到系數(shù)Ci={c1,c2,…,cN}。
Step 2:從第k個(gè)系數(shù)ck開始,連續(xù)選擇N2+2個(gè)系數(shù)(ck、ck+1、…、ck+N2+2)。用式(7)生成的水印信息替換N2+2個(gè)系數(shù)的小數(shù)部分Wi,來量化Ci中的部分系數(shù)。
(7)
Step 3:對量化后的系數(shù)進(jìn)行逆DCT,生成第i幀的含水印的語音信號。
依照上述方法,完成P幀信號水印的嵌入,最終得到完整的含水印的語音信號。含水印語音信號生成過程如圖7所示。
圖7 水印信號生成過程框圖Fig. 7 The process of watermark signal generation
(8)
圖8 語音內(nèi)容取證過程框圖Fig. 8 The process of audio forensics
以此方法,提取所有的和原始信號相同的音頻幀的幀號。分析幀號提取結(jié)果,缺失幀號的幀即被視為要被重構(gòu)恢復(fù)的內(nèi)容。假設(shè)根據(jù)幀號提取結(jié)果,第1幀的幀號是缺失的部分。
Step 6:根據(jù)置亂方法,反置亂找到第1幀信號的壓縮數(shù)據(jù)置亂后的位置,來定位用來重構(gòu)恢復(fù)數(shù)據(jù)的嵌入幀。從該幀中提取壓縮數(shù)據(jù),由1.2.2部分的方法重構(gòu)語音內(nèi)容,并替換第1幀的數(shù)據(jù)進(jìn)行恢復(fù)。
下面對所提算法的不可聽性和取證以及重構(gòu)恢復(fù)能力進(jìn)行測試。
和1.1部分所取的測試樣本相似,選取4種不同環(huán)境下錄制的500段語音信號,分別記為T1(安靜的室內(nèi))、T2(討論會(huì)現(xiàn)場)、T3(公園)和T4(火車站)。與本文算法相關(guān)的參數(shù)取值分別為L=160 000,P=20,N=8000,N1=2,N2=320。
水印嵌入本質(zhì)上是對原始信號的修改,如果修改的幅度過大,將會(huì)帶來較為強(qiáng)烈的噪聲,進(jìn)而影響原始語音的聽覺質(zhì)量。所以,下面測試本文算法水印的不可聽性,主要采用主觀、客觀兩種方法。主觀方法是將原始信號和含水印信號,由現(xiàn)場聽眾根據(jù)主觀區(qū)分度(SDG)[2]打分,并給出評分結(jié)果??陀^評價(jià)方法是計(jì)算含水印語音的信噪比SNR(Signal to Noise Ratio)[5]值。若SNR值大于20 dB,則表明不可聽性滿足要求。
對選取的測試樣本的不可聽性測試結(jié)果如表1所示。表1中的SDG值是由現(xiàn)場12位聽眾根據(jù)評分標(biāo)準(zhǔn)打分的結(jié)果。由表1的測試結(jié)果可以看出,本文算法生成的不同類型的含水印信號SDG值最小值均大于-1,SNR值均大于20 dB,因此本文算法嵌入的水印具有較好的不可聽性。
表1 不同類型語音信號的SDG值和SNR值Tab. 1 The value of SDG and SNR for different speech signals
本文所設(shè)計(jì)的篡改恢復(fù)方案為:將原始信號分幀,根據(jù)壓縮方法生成各幀的壓縮數(shù)據(jù);采用置亂的方法,將壓縮數(shù)據(jù)排序打亂;并將置亂后的壓縮數(shù)據(jù)依次嵌入到各幀載體信號中;在含水印音頻被攻擊后,若嵌入用于重構(gòu)被攻擊內(nèi)容的壓縮數(shù)據(jù)的幀是真實(shí)的,則可以提取壓縮數(shù)據(jù),重構(gòu)被攻擊的內(nèi)容。本文算法的篡改恢復(fù)能力(Tr)可由式(9)計(jì)算得到。
(9)
其中:f表示載體信號分幀總數(shù),fr表示可以被重構(gòu)的幀的個(gè)數(shù)。對含水印的信號而言,如果一半的內(nèi)容被攻擊,而被攻擊內(nèi)容的壓縮數(shù)據(jù)剛好嵌入在另一半沒有被攻擊的幀中,可以提取壓縮數(shù)據(jù),恢復(fù)被攻擊的內(nèi)容。此時(shí),篡改恢復(fù)能力達(dá)到最大值(fr=f/2時(shí))的50%。
從樣本庫中選取一段語音信號,如圖9所示。對語音信號常見的攻擊有刪除、插入和替換,基于此,分別對三類攻擊的取證和篡改恢復(fù)進(jìn)行測試。
圖9 隨機(jī)選取的一段語音信號Fig. 9 A segment of audio signal selected randomly
3.3.1 刪除攻擊
對刪除攻擊取證和篡改恢復(fù)的詳細(xì)過程如下:
①選取含水印信號8000個(gè)樣本點(diǎn),攻擊后的信號如圖10所示。
圖10 刪除攻擊后的語音信號Fig. 10 The signal deleting the attacked
②從第一個(gè)樣本點(diǎn)開始,取連續(xù)的N個(gè)樣本,作為要取證的第一幀。然后對該幀的信號進(jìn)行DCT。依據(jù)本文算法,從含水印的DCT系數(shù)中提取并重構(gòu)幀號,分別記為F11和F21。若F11=F21,則表明該幀內(nèi)容可以通過驗(yàn)證,且F11(或F21)即為該幀提取的幀號。若F11≠F21,則表明該幀內(nèi)容和原始信號相比存在不同的部分。然后移動(dòng)樣本,尋找緊接著的N長可以通過驗(yàn)證的樣本(如圖11所示)。
圖11 緊挨著攻擊內(nèi)容的可通過驗(yàn)證的語音信號Fig. 11 Intact signal next to attack content
以此方法,對所有的樣本進(jìn)行取證,并提取可以通過驗(yàn)證的幀的幀號,結(jié)果如圖12所示,其中TL=1表示對應(yīng)幀的幀號可以被提取。
圖12 幀號提取結(jié)果Fig. 12 The extracted frame number
③提取結(jié)果中沒有顯示的幀號,即為本文算法定位的和原始內(nèi)容不一致的內(nèi)容。這里檢測到第1和第2幀的內(nèi)容和原始信號不同。
④采用反置亂的方法,找到和原始信號不同的幀(第1和第2幀),壓縮數(shù)據(jù)的嵌入位置(嵌入在第5和第8幀中),并提取。依據(jù)重構(gòu)方法,由提取的壓縮數(shù)據(jù),重構(gòu)第1幀的內(nèi)容,并替換不真實(shí)的內(nèi)容,進(jìn)行恢復(fù)?;謴?fù)結(jié)果如圖13所示。
圖13 篡改恢復(fù)后的語音信號Fig. 13 The reconstructed signal
3.3.2 插入攻擊
對含水印語音信號進(jìn)行插入攻擊,攻擊后的信號如圖14所示?;诒疚牡娜∽C算法,給出篡改定位和篡改恢復(fù)結(jié)果,分別如圖15和圖16所示。
圖14 插入攻擊的含水印語音信號Fig. 14 The watermarked speech signal for insertion attack
圖15 插入攻擊的篡改定位結(jié)果Fig. 15 The results of tampering localization for insertion attack
圖16 插入攻擊的篡改恢復(fù)結(jié)果Fig. 16 The results of tampering recovery for insertion attack
3.3.3 替換攻擊
替換攻擊的語音信號如圖17所示?;诒疚牡娜∽C算法,對替換攻擊的篡改定位和篡改恢復(fù)結(jié)果如圖18和圖19所示。
圖17 替換攻擊的含水印語音信號Fig. 17 The watermarked signal substitution attacked
圖18 替換攻擊的篡改定位結(jié)果Fig. 18 Tampered location result for substitution attack
圖19 替換攻擊的篡改恢復(fù)結(jié)果Fig. 19 Tamper recovery result for substitution attack
由以上測試、對比結(jié)果可得,本文算法能夠驗(yàn)證語音信號的原始性和真實(shí)性,對于和原始信號不同的部分,可以進(jìn)行有效恢復(fù)。音頻水印技術(shù)研究至今,根據(jù)用途來進(jìn)行分類,可以分為用于版權(quán)保護(hù)的音頻水印算法和用于內(nèi)容真實(shí)性、完整性取證的音頻水印算法。本文算法在對音頻內(nèi)容取證的基礎(chǔ)上,增加了對被攻擊內(nèi)容的篡改恢復(fù)。表2給出了常見的不同音頻水印算法的適用范圍,進(jìn)一步表明本文算法在已有研究成果的基礎(chǔ)上,拓展了音頻水印技術(shù)的應(yīng)用范圍。
表2 不同水印算法篡改恢復(fù)能力對比結(jié)果Tab. 2 Comparison results of tamper recovery ability for different watermarking algorithms
為了對敏感語音內(nèi)容的真實(shí)性、原始性進(jìn)行取證,并在檢測到語音內(nèi)容被攻擊后,對被攻擊內(nèi)容的重構(gòu)恢復(fù),提出了一種基于DCT的數(shù)字語音篡改恢復(fù)算法。給出并實(shí)驗(yàn)了基于DCT的數(shù)字語音壓縮、編碼方法的可行性;將幀號和壓縮數(shù)據(jù)一起作為水印進(jìn)行嵌入;水印提取端,通過判斷幀號提取的異同來驗(yàn)證該幀信號的真?zhèn)?;確定一幀內(nèi)容和原始信號不同之后,從其他能通過驗(yàn)證的幀中提取壓縮數(shù)據(jù),來重構(gòu)與原始信號不同的語音內(nèi)容,進(jìn)行重構(gòu)恢復(fù)。理論分析和實(shí)驗(yàn)結(jié)果表明,本文算法水印的嵌入不影響原始信號的聽覺質(zhì)量,且具有最大可達(dá)50%的篡改恢復(fù)能力。