姚明明,杜慶治
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
隨著互聯網和多媒體技術的快速發展,音頻的產生、存儲以及傳播變得越來越方便快捷。與此同時,版權侵犯現象也日益增多,成為一項嚴重的問題,于是數字音頻水印作為保護音頻版權的方法應運而生[1]。一個有效的音頻水印系統需要滿足不可感知性、魯棒性以及容量3個方面的要求[2]。這3個指標互相制約,一個音頻水印系統通常不能同時保證三者都達到最優,只能按照實際運用場景的需求對三者進行折中。
音頻水印算法可以分為時域算法和頻域算法兩大類。時域音頻水印算法直接在時間域內修改信號樣本,具有代表性的包括回聲隱藏算法和最低比特位算法等[3,4]。早期音頻水印算法的研究都是在時域展開,優點是操作簡單,但其魯棒性表現得不好,因此后來的研究主要集中在頻域音頻水印算法上,包括離散傅里葉變換(Discrete Fourier Transform,DFT)、離散余弦變換(Discrete Cosine Transform,DCT)以及離散小波變換(Discrete Wavelet Transformation,DWT)等,此外奇異值分解(Singular Value Decomposition,SVD)和范數也用于音頻水印算法[5-15]。文獻[12]提出了一種基于小波熵的音頻水印算法,但是該方法對于重采樣和低通濾波攻擊的魯棒性表現得不好。文獻[14]提出將音頻信號奇異值分解后選取奇異值矩陣中最大的系數,用量化方法進行水印嵌入,從而實現水印的盲提取。近年來,不斷有學者研究混合域算法,文獻[16]提出了一種基于LWT-SVD的音頻水印算法,該算法對信號進行提升小波變換后,直接選取低頻分量進行一維奇異值分解,然后通過量化非零的奇異值嵌入水印。文獻[17]提出了一種基于DWTSVD的大容量音頻算法,將水印嵌在奇異值矩陣的非對角線元素上,這樣使得水印的容量得到提高。文獻[18]通過量化索引調制(Quantization Index Modulation,QIM)在奇異值分解過程中將水印嵌入到二維矩陣的矩陣F-范數中。盡管這種算法有較好的不可感知性和較大的容量,但是抵抗添加高斯白噪聲和低通濾波攻擊的魯棒性不好,而且矩陣范數的計算復雜度較大,相比之下,向量范數的計算復雜度較低。
為此,本文提出了一種基于范數的DWT域魯棒音頻水印算法,通過對含水印音頻進行各種常見信號處理攻擊,并與其他相似算法比較,仿真實驗結果證明了本文所提算法的可行性和有效性。
離散小波變換能夠給出信號的時頻表現特性,通過DWT分解可以將一維信號分成高頻子帶和低頻子帶,其中低頻子帶又可以繼續分解為高頻子帶和低頻子帶[19]。通過DWT分解,信號的能量主要集中在低頻部分,高頻部分所占的能量很少。低頻分量可以有效地抵抗各種攻擊,為了得到更好的魯棒性,可以將水印嵌入到經過DWT分解后的低頻分量中。另外,原始信號可以由高頻分量和低頻分量重新構建,稱為離散小波逆變換(Inverse Discrete Wavelet Transformation,IDWT)。圖1為6級DWT分解過程。

圖1 6級DWT分解
向量范數的魯棒性可以用來嵌入水印,假設A=(a1,a2,…,an)是一個1×n的向量,σ是A的p-范數,定義為:


這里p的取值范圍是 [1,+∞),u=AT/σ是一個n×1的向量。
水印圖像在嵌入到音頻信號之前需要經過預處理,降低圖像像素之間的相關性,以提高水印系統的安全性,假設水印圖像W={W(i,j),1≤i≤M,1≤j≤N},其中W(i,j)∈{0,1}為水印圖像第i行、第j列的像素值,M為像素的行數,N為像素的列數,對水印圖像進行如下操作。
首先,對原始二值水印圖像W進行K次Arnold變換,得到變換后的水印圖像W1,降低原始水印圖像像素之間的相關性。
其次,對W1進行混沌加密。由于Arnold變換具有周期性,在目前的計算條件下有可能采用窮舉法破解水印,所以對水印圖像再進行混沌加密處理。將W1降維得到一維序列W2={W2=(i),1≤i≤M×N}。假設Logistic序列為L={L(i),1≤i≤M×N},將序列L按轉化成二值序列B,轉化規則為:

式中,T為預先設定的一個閾值,這里取0.5。
最后,將一維序列W2和序列B進行異或運算,得到加密后的一維水印序列W3,計算為:

首先對載體音頻信號分幀處理,然后將每幀音頻信號進行6級DWT分解,選取低頻系數構造成兩個向量,分別計算向量范數,然后將經過置亂和加密后的水印通過量化向量范數嵌入,根據量化的向量范數求得變化后的低頻系數,最后通過逆離散小波變換得到含水印的音頻信號,該過程如圖2所示。

圖2 水印嵌入過程
(1)記原始音頻載體信號為S,L為音頻總采樣點數,將音頻載體S分成不重合的M×N幀,這里分的幀數和水印的大小相等,每幀音頻都有1 bit水印嵌入,每一幀的采樣點數為L/(M×N)。
(2)將各幀音頻信號進行6級DWT,小波基選擇“Haar”,產生一個低頻分量cA6,和6個高頻分量,分別是cD1、cD2、cD3、cD4、cD5以及cD6。系數cA6和cD6的長度為Lc=L/(M×N×26)。
(3)將低頻系數cA6記成向量V,再將向量V從中間等分為兩個向量,分別記為V1和V2,具體表示為:

(4)分別計算向量V1和V2的p-范數,這里p的值取2,計算向量2-范數的公式為:

式中,U1和U2表示原來向量V1和V2除以范數后得到的向量。
(5)嵌入水印比特,先計算N_V1和N_V2的平均值為:

按如下規則嵌入水印,若W3(i)=1,則:

若W3(i)=0,則:

式中,q為嵌入強度。
(6)用修改后的向量范數重新構造向量V1′和V2′為:

(8)將低頻系數cA6′和其他高頻系數進行IDWT,重構嵌入水印后的一幀音頻。
(9)重復以上步驟,直到水印全部嵌入,從而得到含水印的音頻信號。
水印的提取過程是嵌入的逆過程,流程如圖3所示。

圖3 水印提取過程
首先將待測音頻信號分成不重合的M×N幀,其次將分幀后的音頻信號重復進行水印嵌入步驟的第2步到第4步,再次提取每幀音頻信號的水印為:

式中,1≤i≤M×N。
最后將提取出的水印比特信息與Logistic混沌序列進行解密,然后升維,進行K次Arnold反置亂,得到提取出的水印圖像。
為了驗證本文算法的有效性,在Windows10操作系統環境下,用MATLAB2018作為實驗的軟件仿真平臺,測試鄉村音樂、爵士音樂以及流行音樂3種音頻。為了減小單一樣本的偶然性因素,對每類音頻選取10個音樂樣本,總共30首音頻進行實驗。音頻均為wav格式,線性PCM編碼,采樣頻率為44.100 kHz,16位單聲道,每段測試音頻包含1 048 576個采樣點。
實驗選取的水印為32×32的二值圖像,圖像的內容是“KUST”4個英文字母,在ASCII碼中,一個英文字母占用一個字節空間,用8 bit表示,表示4個英文字母需要32 bit。本文沒有直接選用英文字母的ASCII碼作為水印,而是用二值圖像信息共1 024 bit表示,大大增加了信息冗余,在一定程度上增加了魯棒性。圖4為水印圖像經過Arnold變換置亂后再經過Logistic混沌序列加密后的結果,其中Arnold變換次數K為8,Logistic混沌序列參數μ取3.6,隨機初始值x0為0.5,這些參數可以作為提取水印時的密鑰,只有知道密鑰才能正確地對水印進行解密,否則得到的將是一系列沒有明確意義的二進制序列。從圖中可以看出,原始水印圖像已經變得雜亂無章,幾乎不能直接獲得任何有用的信息,同時混沌加密處理也降低水印圖像中像素點之間的相關性,有利于水印的嵌入操作[20]。

圖4 水印置亂及加密
不可感知性是指在嵌入水印信息后,原始音頻載體和嵌入水印后的音頻之間的感知接臨近性,其評價方法有主觀評價方法和客觀評價方法。
3.2.1 主觀評價
通過觀察音頻信號的波形圖,可以對嵌入水印后的不可感知性在主觀上有一個大致認識。圖5是選取鄉村音樂中的一首編號為country_06的音頻文件波形圖,其中圖(a)為原始音頻信號的波形圖,圖(b)為添加水印后的音頻信號波形圖,從圖中可以看出,嵌入水印后的音頻信號和原始音頻信號相差甚微,幾乎看不出差別,這也在一定程度上說明了嵌入水印對原始載體音頻的影響非常小。

圖5 嵌入水印前后波形比較
3.2.2 客觀評價
主觀評價往往具有一定的不確定性,因此用信噪比(Signal Noise Ratio,SNR)作為不可感知性的客觀評價標準。國際留聲機工業聯盟要求嵌入水印后的音頻至少要達到20 dB的信噪比。信噪比的定義為:

式中,S(·)表示原始音頻信號,S′(·)代表嵌入水印后的音頻信號,L表示音頻信號的采樣點數。鄉村音樂、爵士音樂以及流行音樂音頻信號的SNR值分別為28.166 6 dB、30.206 6 dB及31.654 7 dB,均大于20 dB,滿足國際留聲機工業聯盟的要求。
魯棒性是指含水印音頻信號在經過常規的信號處理攻擊后,還能夠檢測出水印的能力,反映出音頻水印算法的抗攻擊能力。在實際應用中,常采用誤碼率(Bit Error Rate,BER)和相關系數(Normalized Correlation,NC)這兩個評價指標來衡量水印的魯棒性。
誤碼率能夠反映出從含水印音頻中提取出來的水印和原水印之間的差異性,其值越小表示魯棒性越強,計算公式為:

式中,BERR表示提取出的水印和原水印相比,錯誤的比特位數,M×N表示水印圖像像素的個數。
相關系數反映的是從含水印音頻中提取出來的水印與原水印之間的相似性,其值越大,相應的魯棒性越強,計算公式為:

式中,W(·)表示原始水印,W′(·)表示提取出的水印。
為了驗證本文提出算法的魯棒性,對含水印音頻信號進行如下常見的音頻信號處理操作。一是添加噪聲,在含水印音頻信號中添加信噪比為20 dB的高斯白噪聲。二是低通濾波,采用巴特沃斯濾波器對含水印音頻信號進行濾波,截止頻率為11.025 kHz。三是重采樣,將含水印音頻信號原來44.100 kHz的采樣率降為22.050 kHz,然后再恢復至44.100 kHz。四是重量化,將16 bit的含水印音頻信號重新量化為8 bit,然后再恢復為16 bit。五是MP3壓縮,將含水印音頻信號由wav格式轉換成MP3格式,再恢復至wav格式,比特率為128 kb·s-1。
為了直觀地表示本文所提算法的魯棒性,選取鄉村音樂中的一首編號為country_06的音頻文件,待其嵌入音頻水印后,分別進行添加噪聲、低通濾波、重采樣、重量化以及MP3壓縮攻擊后,提取出水印如圖6所示。

圖6 遭受攻擊后提取出的水印
從圖中可以看出,提取出的6張水印圖片均能較清晰地識別出水印信息,表明本文算法在遭受各種常見攻擊時有良好的魯棒性。
表1是3種含水印音頻信號在經過各種常見攻擊后,誤碼率及相關系數的值,取值為每類音頻10首樣本的平均值。從表中可以看出,本文算法在所有音頻信號測試過程中得到的BER值都非常小,大部分情況下接近于0,而得到的NC值都較大,大部分情況下接近于1,這表明本文算法對常見的音頻信號攻擊表現出良好的魯棒性。為了進一步驗證本文所提算法的魯棒性,與近期的相似文獻[14]進行對比,選用同樣的水印信息及音頻文件進行仿真實驗。從相對較高的NC值和相對較低的BER值可以看出,本文提出算法的魯棒性比文獻[14]中提到的算法要好。

表2 不同類型音頻的魯棒性
水印容量是指在單位時間原始音頻信號中嵌入水印的比特數,單位是b·s-1,計算公式為:

式中,fs代表音頻信號的采樣率,L代表音頻信號的長度,n表示水印的比特數。國際留聲機工業聯盟要求水印容量應該超過20 b·s-1。在本文所提的算法中,嵌入的水印容量為43.07 b·s-1,達到標準的2倍。
本文提出了一種基于范數的DWT域魯棒音頻水印算法,對音頻信號分幀后選取DWT低頻分量構造兩個向量,計算其向量范數,通過量化向量范數的值嵌入水印,實現水印盲提取。此外,對水印進行Arnold變換和Logistic混沌序列加密,提升水印的安全性。選取3種不同類型的音頻進行仿真實驗,結果表明水印的安全性高、不可感知性好,能滿足嵌入水印容量要求。此外,通過與近期的一篇文獻進行對比實驗可以看出,本文算法在疊加高斯白噪聲、低通濾波、重采樣、重量化以及MP3壓縮等常見音頻信號處理中魯棒性更強。