姚明明,杜慶治
(昆明理工大學,云南 昆明 650500)
近年來多媒體技術不斷進步,使得各種音頻數字產品的傳播變得越來越便捷,隨之出現了一些負面影響,如盜版、侵權現象。因此,數字音頻的使用和傳輸面臨許多挑戰,如安全、隱私和所有權等問題[1]。知識產權保護是數字音頻中尚未解決的主要問題之一,而數字音頻水印技術是解決這一問題行之有效的方法。數字音頻水印是在音頻信號中嵌入認證信息,以證明其所有權或版權的技術[2]。一個有效的數字音頻水印方案必須滿足魯棒性、不可感知性和水印容量3個條件[3]。這3個條件相互制約,在實際的應用場景需要進行折中,如增加水印的嵌入容量就會使音頻的質量下降。
數字音頻水印算法主要包括時域和變換域。時域音頻水印算法是直接在音頻信號的采樣點嵌入水印的方法,簡單且嵌入容量高,具有代表性的算法有回聲隱藏算法和最低比特位算法等。早期的音頻水印算法是在時域內展開的,經過實驗驗證發現,其在抵抗音頻信號攻擊時表現的魯棒性不佳。后來關于音頻水印的算法主要集中在變換域上,變換域音頻水印算法比時域音頻水印算法有更好的魯棒性和不可感知性[4]。常見的變換域包括離散傅里葉變換(Discrete Fourier Transform,DFT)[5]、離散余弦變換(Discrete Cosine Transform,DCT)[6]、離散小波變換(Discrete Wavelet Transform,DWT)[7]、奇異值分解(Singular Value Decomposition,SVD)[8]和范數[9]等。文獻[10]提出一種基于LWT-SVD 的音頻水印算法,對信號進行提升小波變換(Lifting Wavelet Transform,LWT)分解后,直接選取低頻分量進行一維SVD 運算,然后通過量化非零奇異值嵌入水印。文獻[11]提出了一種基于DWT-SVD 的大容量音頻算法,把進行DWT 分解后的低頻系數構造成一個矩陣進行SVD,然后把水印信息嵌入到奇異值矩陣的非對角線元素上,使得水印的嵌入容量得到提高。文獻[12]提出了一種基于LWT 的音頻水印算法,但魯棒性不佳。文獻[13]通過量化索引調制和SVD 將水印嵌入到二維矩陣的F-范數中。盡管這種算法有較好的不可感知性和較大的嵌入容量,但是其抵抗添加高斯白噪聲和低通濾波攻擊的魯棒性表現不好,且矩陣范數的計算復雜度較大。相比之下,向量范數的計算復雜度較低。
為此,本文提出一種基于范數比的LWT 域自適應音頻水印算法,根據音頻信號的質量最佳即信噪比取最大值為約束條件對LWT 分解后的低頻系數進行縮放,通過量化范數比動態地在音頻信號中嵌入水印。仿真結果證明,本文算法具有有效性和可靠性。
LWT 是一種新的在時域中采用提升方法構造小波的第二代小波算法。它對原有的小波變換算法做出改進,是一種更加快速有效的手段。
LWT 具備以下優勢:
(1)不依賴于傅里葉變換,在時域中實現對雙正交小波的構造,具有結構化設計和自適應構造方面的特點;
(2)構造方法靈活,可以用簡單的小波函數,通過提升改善小波函數的特性,構造具有期望特點的小波;
(3)算法簡單,運算速度快;
(4)占用內存少,執行效率高,可以分析任意長度的信號。
LWT 過程包括分解、預測和更新3 個步驟。通常,在MATLAB 中運用LWT 的主要過程如下:
(1)先用小波函數得到與之相對應的提升小波方案;
(2)設置原始的提升步驟,把提升步驟添加到提升方案;
(3)應用提升方案對向量進行提升小波變換。
LWT 把信號進行一級分解后會得到低頻分量cA1和高頻分量cD1。低頻分量cA1可以繼續進行分解,得到低頻分量cA2和高頻分量cD2。經過n級LWT 分解得到的低頻分量cAn的能量最大,最具有魯棒性。通常,把水印信息嵌入到經過LWT 分解的低頻分量中。
向量范數的魯棒性可以用來嵌入水印。假設A=(a1,a2,…,an)是一個1×n的向量,σ是A的向量范數,定義如下:

假設要量化的系數為f,量化步長為e,量化后的對應系數為f′,要嵌入的水印比特為w,取值為0 或1,則量化算法嵌入水印原理如圖1 所示。

圖1 量化算法嵌入水印原理
第1 步:根據量化步長e將坐標軸上所有區域分成A 區間集和B 區間集。其中,只要是A 區間集的坐標都表示1,只要是B區間集的坐標都表示0。
第2 步:對待量化系數f,按照式(3)和式(4)進行運算:

第3 步:量化操作。
(1)當m=0 且w=1 時,有:

(2)當m=0 且w=0 時,有:

(3)當m ≠0 且w=1 時,有:

水印圖像在嵌入到音頻信號之前需要經過預處理,降低圖像像素之間的相關性,以提高水印系統的安全性[14]。假設水印圖像表示為W={W(i,j),1 ≤i≤M,1 ≤j≤N},其中W(i,j)∈{0,1}為水印圖像第i行、第j列的像素值,M為像素的行數,N為像素的列數,則對水印圖像進行如下的預處理操作。
(1)對原始二值水印圖像W進行K次Arnold變換,降低原始水印像素之間的相關性。
(2)對Arnold 變換后的圖像進行Logistic 混沌序列加密。由于Arnold 變換具有周期性,在現有的計算條件下有可能采取窮舉法破解水印,因此對水印圖像進行混沌加密處理。生成一個長度為M×N的Logistic 混沌序列,設定一個閾值,將序列內所有元素都轉化為0 或1,然后與降維后的水印圖像異或運算進行加密。Arnold 變換和Logistic 混沌序列的參數可以作為提取水印時的密鑰。只有知道密鑰,才能對水印信息正確解密。
本文提出基于范數比的LWT 域自適應音頻水印算法,對原始音頻信號分幀后進行LWT 分解,然后把得到的低頻系數分成兩部分分別計算范數,通過量化范數比來實現嵌入水印的目的。根據音頻信號的質量最優即信噪比取最大值為約束條件,對低頻系數進行縮放。水印嵌入過程流程如圖2 所示。

圖2 水印嵌入過程流程
水印嵌入的具體步驟如下。
第1 步:記原始音頻的采樣點數為L,把原始音頻信號分成不重合的M×N幀,這里的幀數和水印圖像的比特數保持一致,使每幀音頻信號都嵌入1 bit 水印信息,然后對每幀音頻信號進行LWT 分解。這里的級數為3,低頻分量記為Ci(j),i代表幀數,j代表低頻分量的長度,1 ≤j≤Lc,其中Lc=L/(M×N×23)。
第2 步:把低頻系數Ci(j)平均分成兩部分,第一部分表示為Ci,1(j),第二部分表示為Ci,2(j),按照 式(1)計算它們的向量范數,分別表示為σi,1和σi,2。
第3 步:計算范數比ρi=σi,1/σi,2,使用1.3 節介紹的量化方法求出量化后的范數比。
第4 步:將低頻系數Ci,1(j)和Ci,2(j)分別用縮放因子α1和α2進行縮放。這里,縮放因子α1和α2按照后面給出的步驟優化,修改低頻系數,
信噪比(Signal Noise Ratio,SNR)是用來衡量音頻信號質量的重要指標,公式如下:

式中,S(i)代表原始音頻信號的采樣點,S′(i)代表嵌入水印后的音頻信號采樣點。
由于嵌入水印的過程中使用正交小波,因此信噪比在小波域的相關指標可以表示為:

式中,Ci(j)和是對應的LWT 系數。把它們用向量范數{σi,1,σi,2}和縮放因子{α1,α2}表示,該性能指標可以轉化為:

使音頻的質量保持最優,即信噪比取最大值,這就相當于式(11)中進行對數運算的部分有最小值,等價于式(12)有最小值:

對式(12)求導,有:

求得尺度因子α1和α2:

第5 步:利用縮放因子α1和α2改變低頻系數Ci,1(j)和Ci,2(j)的值,再經過信號重構獲得每一幀信號,最后組合成含水印的音頻信號。
水印提取過程的流程如圖3 所示。

圖3 水印提取過程流程
水印提取過程的具體步驟如下。
第1 步:將待測音頻信號分成不重合的M×N幀,對每幀音頻信號進行3 級LWT 分解獲得低頻系數,然后分成兩段分別計算向量范數,分別記為。

第3 步:將提取的水印信息根據Logistic 混沌序列和Arnold 變換的參數進行解密,得到提取出的水印圖像。
為了驗證本文算法的有效性,采用的計算機為Windows 10 操作系統環境,實驗仿真平臺為MATLAB 2018,對鄉村音樂、流行音樂和語音3 類音頻進行測試。音頻均為wav 格式,線性PCM 編碼,采樣率為44.100 kHz,16 位單聲道,每段音頻包含1 048 576 個采樣點。提升小波方案采用haar 小波,提升步驟為{‘p’,[-0.125 0.125],0}。
選用大小為32×32 的二值圖像作為水印,內容是一個漢字“卓”。在ASCII 碼中,表示一個漢字需要16 bit,而選用的圖像占1 024 bit,可見在增大信息冗余的角度提高了水印的魯棒性。對于水印的預處理,Arnold 變化的次數為10,生成Logistic混沌序列的μ為3.9,初始值x0為0.418。水印圖像經過置亂和加密后的結果如圖4 所示。
從圖4 可以看出,經過Arnold 變換和Logistic混沌加密,圖像像素之間的相關性被破壞,只有知道密鑰才能對其解密。

圖4 水印置亂及加密
3.2.1 主觀評價
通過觀察音頻信號在嵌入水印前后波形的變化,能對嵌入水印后音頻的不可感知性有一個大致認識。圖5 是鄉村音樂在嵌入水印后的波形圖。從圖5 可以看出,嵌入水印后波形差別不大,說明嵌入水印后造成的影響非常小。

圖5 嵌入水印前后波形比較
3.2.2 客觀評價
信噪比(SNR)作為不可感知性的客觀評價標準,國際留聲機工業聯盟要求嵌入水印后的音頻至少要達到20 dB 的信噪比。3 類音頻的信噪比如 表1 所示。

表1 不同類型音頻信號的信噪比
魯棒性用來衡量在音頻信號中添加水印后的抗攻擊能力,有相關系數(Normalized Correlation,NC)和誤碼率(Bit Error Rate,BER)兩個指標衡量。
NC 指的是提取的水印和原始水印之間的相關程度。NC 的值越接近于1,表明二者的相關程度越高,計算公式如下:

式中,W表示原始水印,W′表示提取的水印。
BER指的是從含水印音頻中提取的水印和原始水印之間的差異程度。BER的值越接近于0,說明水印系統的魯棒性越好,定義如下:

為了驗證本文提出算法的魯棒性,對含水印音頻進行如下信號處理操作。
(1)添加噪聲:在含水印音頻信號中添加信噪比為20 dB 的高斯白噪聲。
(2)低通濾波:采用巴特沃斯濾波器對含水印音頻信號進行濾波,截止頻率為11.025 kHz。
(3)重采樣:把含水印音頻信號的原來44.100 kHz 的采樣率降為22.050 kHz,然后再恢復至44.100 kHz。
(4)重量化:將16 bit 的含水印音頻信號重新量化為8 bit,然后再恢復為16 bit。
(5)MP3 壓縮:將含水印音頻信號由wav 格式轉換成mp3 格式,再恢復至wav 格式,比特率為128 kb/s。
表2 列出了3 種類型的含水印音頻信號在遭到信號攻擊后的NC值和BER值。

表2 不同類型音頻的魯棒性
從表2 可以看出,在整個測試過程中得到的BER值都非常小,不大于0.031 3,大部分情況下接近于0,得到的NC值都不小于0.981 2,大部分情況下接近于1,說明本文算法對常見的音頻信號攻擊表現出良好的魯棒性。
為了進一步說明本文算法的魯棒性,與近期的一篇相似文獻[10]進行對比,選用鄉村音樂以及同樣的水印信息進行實驗,對比實驗結果如表3 所示。表3 給出了本文算法提取的水印,從相對高的NC值和相對低的BER 值可以看出,本文算法的魯棒性優于文獻[10]提到的算法。

表3 不同算法魯棒性比較
水印容量指單位時間的音頻信號中嵌入水印的比特數,單位為比特每秒(b/s),計算公式如下:

式中:fs表示音頻信號的采樣率;L代表音頻信號的采樣點數;n表示水印的像素點數。國際留聲機工業聯盟要求水印容量不小于20 b/s。在本文所提的算法中,水印容量為43.07 b/s,符合要求。
本文提出了一種基于范數比的LWT 域自適應音頻水印算法,能夠實現對水印的盲提取,選取二值圖像作為水印信息,從增大信息冗余的角度提高了水印系統的魯棒性。另外,通過Arnold 變換置亂和Logistic混沌序列加密提高了水印系統的安全性。實驗結果表明,本文算法有較好的不可感知性,達到水印嵌入容量的要求,在抵抗添加噪聲、低通濾波、重采樣、重量化和MP3 壓縮等信號攻擊時,表現出良好的魯棒性。