張林科 康 凱 肖明芳 王 苗
1(火箭軍工程大學(xué) 陜西 西安 710025)2(火箭軍裝備研究院 北京 100000)
音頻信息隱藏是基于人耳聽覺掩蔽特性在音頻信號(hào)中嵌入秘密信息,以實(shí)現(xiàn)隱蔽通信功能。語音信號(hào)使用廣泛,以語音為載體隱藏信息更不易被察覺,在信息安全傳輸領(lǐng)域具有重要應(yīng)用價(jià)值。語音自適應(yīng)隱藏考慮信號(hào)的局部特征,使得信息嵌入的位置、強(qiáng)度和容量隨著局部特征的變化而變化,進(jìn)一步改善語音信息隱藏性能。文獻(xiàn)[1]通過小波包分解和DCT變換估算掩蔽閾值,自適應(yīng)選取嵌入音頻段、嵌入的頻率系數(shù)和量化步長(zhǎng),與人耳頻域掩蔽特性關(guān)聯(lián)好,但掩蔽閾值計(jì)算過于復(fù)雜,嵌入強(qiáng)度提取誤差易導(dǎo)致算法不穩(wěn)定,隱藏容量有限。文獻(xiàn)[2]在DCT變換低頻系數(shù)計(jì)算掩蔽閾值,確定嵌入強(qiáng)度,設(shè)置能量補(bǔ)償點(diǎn)保持信息隱藏前后能量一致,算法穩(wěn)定、魯棒性強(qiáng),但計(jì)算復(fù)雜,隱藏容量有限。文獻(xiàn)[3]在DWT域計(jì)算掩蔽閾值,通過以前載密數(shù)據(jù)計(jì)算當(dāng)前嵌入強(qiáng)度,盲檢測(cè)嵌入強(qiáng)度準(zhǔn)確,魯棒性強(qiáng),但同樣存在計(jì)算復(fù)雜、隱藏容量有限等不足。文獻(xiàn)[4]在小波變換域依據(jù)信噪比最優(yōu)原則調(diào)整嵌入強(qiáng)度,與人耳掩蔽特性關(guān)聯(lián)不好。文獻(xiàn)[5]基于DWT-SVD和SNR優(yōu)化隱藏信息,不可感知性和魯棒性很好,但運(yùn)算量太大,隱藏容量太小,在80 bit/s左右,不適用于隱蔽通信。以上算法采用固定分幀或?qū)潭ǚ謳M(jìn)行優(yōu)選的方法確定信息隱藏位置,與語音信號(hào)的非平穩(wěn)特性關(guān)聯(lián)較差。
針對(duì)以上不足,本文提出一種基于人耳時(shí)域掩蔽效應(yīng)的語音自適應(yīng)隱藏算法,采用能零比和m序列動(dòng)態(tài)選取和標(biāo)記適于信息隱藏的語音段;通過QIM方法檢測(cè)時(shí)域掩蔽效應(yīng),根據(jù)時(shí)域掩蔽效應(yīng)強(qiáng)弱自適應(yīng)調(diào)整小波域嵌入強(qiáng)度和嵌入容量;結(jié)合QIM和容錯(cuò)處理消除提取端嵌入強(qiáng)度誤差。本文算法不可感知性好,隱藏容量大,算法簡(jiǎn)單,計(jì)算量小,同時(shí)具有不差的抗干擾性能,能夠?qū)崿F(xiàn)基于語音載體的隱蔽通信。
語音信號(hào)能零比能夠檢測(cè)語音端點(diǎn),區(qū)分有聲段和無聲段,但對(duì)數(shù)據(jù)平移不敏感,尤其是在信息嵌入和受擾后,提取端難以再次準(zhǔn)確定位隱藏信息。本文采用時(shí)域能零比檢測(cè)語音有聲段起始幀,插入m序列標(biāo)識(shí)起始幀位置;三層尺度系數(shù)能零比檢測(cè)當(dāng)前語音段結(jié)束幀,在起始幀和結(jié)束幀之間逐幀嵌入信息。隱藏?cái)?shù)據(jù)幀結(jié)構(gòu)如圖1所示。

圖1 隱藏?cái)?shù)據(jù)幀結(jié)構(gòu)
由人耳時(shí)域掩蔽效應(yīng)可知,大強(qiáng)度信號(hào)會(huì)對(duì)小強(qiáng)度信號(hào)產(chǎn)生較強(qiáng)的前向、后向和同時(shí)掩蔽效應(yīng)。由人耳的聽閾特性可知,人耳對(duì)2~4 kHz的聲音最為敏感,對(duì)低頻和高頻成分都不敏感。大強(qiáng)度和低頻率可以通過信號(hào)能零比來表征,在能零比大的語音段隱藏信息具有更好的魯棒性和不可感知性。
由語音信號(hào)的激勵(lì)模型可知,基音范圍為60~500 Hz, 由基音激勵(lì)產(chǎn)生的濁音集中了語音信號(hào)的大部分能量;基音范圍與8 kHz采樣語音信號(hào)三層尺度系數(shù)所表征的頻率范圍基本一致,則三層尺度系數(shù)能零比恰能反映語音信號(hào)的時(shí)域能零比變化,且較時(shí)域能零比檢測(cè)具有更好的穩(wěn)定性。本文采用時(shí)域能零比檢測(cè)語音起始幀,采用尺度系數(shù)能零比檢測(cè)語音結(jié)束幀,將隱藏信息嵌入在有聲段。
設(shè)幀長(zhǎng)為L(zhǎng),第i幀信號(hào)為yi(n),1≤n≤L,第i幀短時(shí)能量為:
(1)
設(shè)第i幀短時(shí)過零率為ZCR(i),則短時(shí)能零比為:
ECR(i)=E(i)/(ZCR(i)+b)
(2)
式中:b是一個(gè)較小的常數(shù),防止ZCR(i)為0時(shí)發(fā)生溢出情況。
提取端采用尺度系數(shù)能零比檢測(cè)當(dāng)前段結(jié)束幀時(shí),能零比靠近閾值的語音幀易因干擾、數(shù)據(jù)隱藏等因素造成提取端錯(cuò)檢,進(jìn)而導(dǎo)致提取信息錯(cuò)誤。為克服上述問題,在發(fā)送端對(duì)尺度系數(shù)能零比做容錯(cuò)處理。
本文采用線性放大縮小尺度系數(shù)的方法調(diào)整能零比,不改變信號(hào)的過零率和頻譜結(jié)構(gòu),且設(shè)定多個(gè)調(diào)整閾值對(duì)尺度系數(shù)劃分區(qū)間,不同區(qū)間采用不同的調(diào)整系數(shù),盡量減小容錯(cuò)處理對(duì)原信號(hào)的影響。尺度系數(shù)能零比容錯(cuò)處理算法數(shù)學(xué)形式表示如下:
(3)

語音信號(hào)小波變換三層系數(shù)具有較好的穩(wěn)定性,在三層尺度系數(shù)中嵌入信息具有很好魯棒性[6],但仿真實(shí)驗(yàn)表明,過強(qiáng)的魯棒性會(huì)導(dǎo)致定位不精準(zhǔn)。因此本文在三層小波系數(shù)中采用QIM的方法嵌入m序列作為起始幀檢測(cè)標(biāo)識(shí)。設(shè)m序列為m(i),則有:

(4)
式中:d(i)、d′(i)為嵌入前后的小波系數(shù);s表示嵌入強(qiáng)度;?·」表示向下取整。
1.2.1 自適應(yīng)隱藏
由人耳的時(shí)域掩蔽效應(yīng)可知,同時(shí)掩蔽效果最好,一般前向掩蔽發(fā)生在掩蔽音出現(xiàn)前5~20 ms,后向掩蔽發(fā)生在掩蔽音消失后50~200 ms,掩蔽效應(yīng)具有疊加特性,每個(gè)數(shù)據(jù)點(diǎn)嵌入1比特信息的方法不能很好地利用時(shí)域掩蔽效應(yīng)。本文采用改進(jìn)的量化索引調(diào)制(QIM)方法對(duì)三層系數(shù)大小進(jìn)行區(qū)分。首先對(duì)大于設(shè)定閾值的系數(shù),根據(jù)系數(shù)大小確定不同的嵌入強(qiáng)度,嵌入不等量信息;再用已嵌入信息量的多少表征時(shí)域前向和后向疊加掩蔽效應(yīng)強(qiáng)弱,據(jù)此確定小于閾值系數(shù)的嵌入信息量。
不等距QIM量化器結(jié)構(gòu)如圖2所示。

圖2 不等距QIM量化器結(jié)構(gòu)示意圖
量化器以某一閾值Y為起點(diǎn),設(shè)基本量化步長(zhǎng)為J,嵌入強(qiáng)度為Qn,則第n個(gè)量化區(qū)間對(duì)應(yīng)的嵌入強(qiáng)度Qn= 2n + 1J,嵌入n+1比特信息;第n個(gè)量化區(qū)間量化步長(zhǎng)為:
Jn=2×Qn+2×J
(5)
式中:n為正整數(shù),不大于nmax。
Y+J1+J2+…+Jn (6) 設(shè)待量化數(shù)據(jù)為x,根據(jù)x絕對(duì)值對(duì)應(yīng)量化區(qū)間確定嵌入強(qiáng)度Qn,確定嵌入強(qiáng)度的數(shù)學(xué)表示形式為: (7) 設(shè)由式(7)確定當(dāng)前幀嵌入信息比特總數(shù)為N,再通過判斷N值大小確定x絕對(duì)值小于Y值樣點(diǎn)嵌入強(qiáng)度Q0。數(shù)學(xué)表示形式為: (8) 式中:Nmax、Nmin為設(shè)定的閾值,取值大小根據(jù)基本步長(zhǎng)J和實(shí)驗(yàn)結(jié)果確定,本文取Nmax=100,Nmin=20。 為與前文一致,便于下文表述,將前述嵌入強(qiáng)度Qn(n為正整數(shù))與此處Q0統(tǒng)一采用Qn表示,n取非負(fù)整數(shù)。 各量化區(qū)間內(nèi)均以基本步長(zhǎng)J再量化,以不同量化區(qū)間號(hào)代表嵌入信息;量化區(qū)間嵌入強(qiáng)度Qn不同,嵌入信息多少不同。上述方案數(shù)學(xué)形式表示為: (9) 式中:md為嵌入強(qiáng)度Qn對(duì)應(yīng)的m比特待隱藏信息M(i:i+m-1)的十進(jìn)制表示;x′表示嵌入信息前數(shù)值;x″表示嵌入信息后數(shù)值;?·」表示向下取整。 由上述嵌入算法可知,載體數(shù)據(jù)嵌入前后最大增量為嵌入強(qiáng)度的1/2,小波域抗干擾能力均為J/2,為防止載體數(shù)據(jù)在嵌入和受擾后越界導(dǎo)致提取錯(cuò)誤,上下邊界各設(shè)置大小為J的保護(hù)區(qū)間,由此確定各量化區(qū)間量化步長(zhǎng)Jn和容錯(cuò)處理容限。 嵌入和受擾后數(shù)據(jù)會(huì)發(fā)生變化,靠近量化區(qū)間邊界的數(shù)據(jù)易發(fā)生越界造成提取錯(cuò)誤。因此,數(shù)據(jù)量化前先進(jìn)行容錯(cuò)處理,使待量化數(shù)據(jù)遠(yuǎn)離量化區(qū)間邊界,容錯(cuò)處理容限設(shè)為Qn/2+J。容錯(cuò)處理算法的數(shù)學(xué)形式表示如下: x>0時(shí), x<0時(shí), (10) 式中:x表示原始數(shù)值;x′表示x容錯(cuò)處理后的值。 1.2.2 重定位 提取端利用小波變換的時(shí)頻局部特性,在小波域搜索匹配m序列實(shí)現(xiàn)精準(zhǔn)重定位。DWT變換不是平移不變的,但DWT變換具有時(shí)頻局部特性。以哈爾(Haar)三層小波變換為例,由經(jīng)典的Mallat離散小波變換公式可得哈兒小波變化三層尺度系數(shù)cj-3(i)和三層小波系數(shù)dj-3(i)分別為: (11) 式中:k=1,2,…,L,i=0,1,…,(L/8-1);L為幀長(zhǎng),為便于計(jì)算,本文取L=2N,N為不小于3的整數(shù),通過控制N的大小調(diào)整幀長(zhǎng);cj是語音信號(hào)采樣值。 由式(11)易知, Haar小波變換三層系數(shù)只與原信號(hào)8個(gè)樣點(diǎn)有關(guān),當(dāng)原信號(hào)平移8個(gè)樣點(diǎn)時(shí),三層系數(shù)產(chǎn)生1個(gè)樣點(diǎn)的平移。在三層小波系數(shù)中搜索同步碼時(shí),可利用這種特殊的平移性,只全部計(jì)算前8次逐點(diǎn)平移的小波系數(shù),后續(xù)小波系數(shù)可依次通過對(duì)應(yīng)的前8次小波系數(shù)向左平移1位,再計(jì)算最后8個(gè)樣點(diǎn)對(duì)應(yīng)的小波系數(shù)作為最后1位而得到,這樣可以極大提高搜索效率。 設(shè)待檢序列為m′(i),提取端三層小波系數(shù)為hd′(i),待檢序列盲提取公式如下: (12) m序列自相關(guān)函數(shù)為: (13) 式中:p為m序列周期。 做自相關(guān)檢測(cè),如果有: (14) 則認(rèn)為檢測(cè)到同步碼。式中:z是一個(gè)適當(dāng)?shù)拈撝怠的取值應(yīng)根據(jù)信道質(zhì)量、同步碼嵌入強(qiáng)度確定,過小易發(fā)生假同步,過大易發(fā)生漏同步。 1.2.3 盲提取 采用QIM的方法嵌入信息,提取端在搜索匹配m序列后,只需知道閾值Y、量化步長(zhǎng)J、Nmax、Nmin,就能夠通過構(gòu)造同樣的量化器實(shí)現(xiàn)盲提取。 三層系數(shù)盲提取公式如下: cmd′(i)=?(hcj-3(i)-?hcj-3(i)/Qn」×Qn)/J」dmd′(i)=?(hdj-3(i)-?hdj-3(i)/Qn」×Qn)/J」 (15) 式中:hcj-3(i)、hdj-3(i)分別表示提取端當(dāng)前幀三層小波變換的尺度系數(shù)和小波系數(shù),仍由式(7)無誤差恢復(fù)hcj-3(i)、hdj-3(i)對(duì)應(yīng)的嵌入強(qiáng)度Qn和嵌入位數(shù)n;cmd′(i)、dmd′(i)分別表示從尺度系數(shù)和小波系數(shù)提取到的量化區(qū)間索引號(hào)十進(jìn)制表示值。 先對(duì)每幀大于閾值Y的系數(shù)提取隱藏信息,根據(jù)已提取信息比特?cái)?shù)與Nmax、Nmin關(guān)系由式(8)確定Q0,再采用式(15)提取小于閾值Y系數(shù)隱藏的信息,將cmdec′(i)、dmdec′(i)轉(zhuǎn)換為對(duì)應(yīng)n位二進(jìn)制序列,順序組合得到隱藏的二進(jìn)制信息碼流。 仿真實(shí)驗(yàn)流程如圖3所示。性能測(cè)試載體語音采用采集的3段8 kHz采樣率、16位采樣精度、時(shí)長(zhǎng)5 s(40 000點(diǎn))單聲道語音信號(hào)(樣本一為女聲、樣本二為男中音、樣本三為男低音),隱藏信息用偽隨機(jī)序列進(jìn)行模擬,m序列周期p=63,使用MATLAB R2016b進(jìn)行仿真。 圖3 仿真實(shí)驗(yàn)流程框圖 文獻(xiàn)[1]采用db8小波基進(jìn)行部分小波包分解,再對(duì)小波包分解系數(shù)進(jìn)行DCT變換和Bark域映射,通過擴(kuò)展函數(shù)做卷積計(jì)算掩蔽閾值,幀長(zhǎng)L為2 048;文獻(xiàn)[2]采用DCT變換,映射到Bark域后只計(jì)算單個(gè)臨界頻帶掩蔽閾值,幀長(zhǎng)L為4 160;文獻(xiàn)[3]采用db8小波對(duì)44.1 kHz采樣30秒時(shí)長(zhǎng)信號(hào)進(jìn)行5層DWT變換,由前128個(gè)嵌入后的小波系數(shù)和掩蔽閾值計(jì)算當(dāng)前嵌入強(qiáng)度,關(guān)聯(lián)運(yùn)算量大;文獻(xiàn)[6]在DWT域低頻系數(shù)直接嵌入固定容量隱藏信息,幀長(zhǎng)L選取對(duì)性能影響不大;本文算法在DWT域利用時(shí)域掩蔽效應(yīng)隱藏信息,測(cè)試中選取幀長(zhǎng)L為504,對(duì)于8 kHz采樣信號(hào)相當(dāng)于時(shí)長(zhǎng)63毫秒,在后向掩蔽效應(yīng)作用時(shí)間范圍內(nèi)。 涉及頻域掩蔽閾值計(jì)算時(shí),必須保證足夠的幀長(zhǎng)以滿足分辨率要求,因此文獻(xiàn)[1-3]幀長(zhǎng)L難以縮短,且算法本身涉及DCT、卷積、相關(guān)運(yùn)算等,導(dǎo)致運(yùn)算量極大。本文算法采用只采用DWT變換,幀長(zhǎng)小,只在幀內(nèi)進(jìn)行簡(jiǎn)單比較和選擇運(yùn)算,因而運(yùn)算量只略大于文獻(xiàn)[6],遠(yuǎn)小于文獻(xiàn)[1-3]。 圖4 樣本一嵌入前后時(shí)域圖和時(shí)域差值圖 圖5給出文獻(xiàn)[12]嵌入前后時(shí)域差值圖,由于采用固定分幀方法,所有幀都有隱藏信息,導(dǎo)致時(shí)域差值始終存在,實(shí)測(cè)中能夠聽到類似底噪的聲音,而本文算法不是所有數(shù)據(jù)幀都有數(shù)據(jù)嵌入,具有更好的不可感知性。 圖5 文獻(xiàn)[12]嵌入前后時(shí)域差值圖 圖6給出分段信噪比與對(duì)應(yīng)的隱藏量對(duì)比圖。 圖6 分段信噪比與隱藏量對(duì)比圖 分段信噪比圖中,SNR大于100 dB的幀沒有隱藏?cái)?shù)據(jù),只是限于計(jì)算精度而存在有限極大值;信噪比低的段隱藏容量大,時(shí)域差值大,但載體語音能零比大、掩蔽效應(yīng)強(qiáng),不可感知性仍然較好。 表1給出不同樣本、不同幅度在不同J、Y值時(shí)的MOS和SNR值。由測(cè)試數(shù)據(jù)可知,選取合適的J、Y值,MOS值始終大于4.5,SNR值不低于25 dB,不隨載體語音類別和幅度變化而大幅變化。 表1 不可感知性測(cè)試表 分/db 表2給出基于頻域掩蔽效應(yīng)[1-3]和采用固定強(qiáng)度小波域隱藏算法[6]的MOS和SNR參考值,并與本文算法進(jìn)行對(duì)比。結(jié)果表明本文算法不可感知性與文獻(xiàn)[1-3]相當(dāng),優(yōu)于文獻(xiàn)[6],尤其是信噪比不隨語音信號(hào)大動(dòng)態(tài)范圍變動(dòng)而劇烈改變,MOS值基本保持不變,不可感知性好,性能穩(wěn)定。 表2 不同隱藏算法MOS和SNR值 表3給出不同樣本、樣本不同幅度、不同參數(shù)選取時(shí)的隱藏容量值。由測(cè)試數(shù)據(jù)可知,參數(shù)J、Y值對(duì)隱藏容量影響很大,需根據(jù)應(yīng)用環(huán)境選取合理值。參數(shù)確定后,隱藏容量受語音樣本、幅度影響,載體語音能零比大,隱藏容量大;反之,隱藏容量小。語音信號(hào)是典型的非平穩(wěn)隨機(jī)信號(hào),且不同于連續(xù)音頻信號(hào),有聲段無聲段特征明顯,固定隱藏容量顯然不能適應(yīng)其特點(diǎn),自適應(yīng)隱藏容量具有更高應(yīng)用價(jià)值。由表2-表3測(cè)試結(jié)果可知,本文算法嵌入容量動(dòng)態(tài)范圍大。 表3 隱藏容量測(cè)試表 bit/s 表4給出基于頻域掩蔽效應(yīng)[1-3]和不采用自適應(yīng)小波域隱藏算法[6]隱藏容量參考值,并與本文算法進(jìn)行對(duì)比。文獻(xiàn)[1]自適應(yīng)選取嵌入幀和嵌入強(qiáng)度,隱藏容量受載體信號(hào)影響大;文獻(xiàn)[2-3]嵌入容量不受載體音頻影響;文獻(xiàn)[6]是小波域非自適應(yīng)嵌入,嵌入容量固定;本文算法自適應(yīng)選取嵌入位置、嵌入強(qiáng)度和嵌入量,嵌入容量隨載體信號(hào)不同而大范圍變化。 表4 不同算法隱藏容量 信息隱藏受到的干擾主要為采樣精度和計(jì)算精度引入的噪聲和信道傳輸過程中誤碼導(dǎo)致的噪聲,本文采用高斯白噪聲模擬干擾,誤比特率(BER)測(cè)試抗擾能力。表5給出不同樣本加入σ=0.001、σ=0.000 2高斯白噪聲和無干擾情況下的誤比特率(BER)。 表5 抗噪聲能力(BER)測(cè)試表 不同樣本BER值差距很小,考慮隱藏信息偽隨機(jī)特性對(duì)測(cè)試結(jié)果的影響,可以認(rèn)為抗擾能力不受載體影響。各種參數(shù)下無干擾時(shí)誤比特率均為0,說明本文算法基于QIM和多重容錯(cuò)處理方法在提取端檢測(cè)嵌入強(qiáng)度和嵌入量沒有誤差,不受數(shù)據(jù)隱藏過程影響,允許采用較大的嵌入強(qiáng)度,算法自身十分穩(wěn)定;文獻(xiàn)[1]提取端嵌入強(qiáng)度誤差影響數(shù)據(jù)提取問題,導(dǎo)致算法自身不夠穩(wěn)定。文獻(xiàn)[2-3]嵌入強(qiáng)度根據(jù)掩蔽閾值自適應(yīng)調(diào)整,而掩蔽閾值與載體音頻密切相關(guān),采用固定分幀時(shí)小信號(hào)或靜音段嵌入強(qiáng)度小,將導(dǎo)致抗干擾能力急劇下降。 基于小波變換的隱藏算法,采樣率高,低頻子帶穩(wěn)定,抗噪聲能力就強(qiáng)。本文算法測(cè)試載體采樣率為8 kHz,因而抗擾能力相對(duì)有限;采樣率44.1 kHz情況下,抗擾能力與文獻(xiàn)[6]相同,能夠?qū)怪夭蓸印?位重量化、4 kHz低通濾波等;由于加入m序列標(biāo)識(shí)信息隱藏位置,因而還具有一定抗裁剪能力。 本文基于時(shí)域掩蔽效應(yīng)的語音自適應(yīng)隱藏算法,采用能零比檢測(cè)有聲段和無聲段,m序列標(biāo)識(shí)信息隱藏位置,小波變換時(shí)頻局部特性加速m序列搜索匹配,實(shí)現(xiàn)信息隱藏位置的動(dòng)態(tài)自適應(yīng)優(yōu)選和精確重定位;采用不等距的QIM方法實(shí)現(xiàn)時(shí)域掩蔽效應(yīng)檢測(cè),逐點(diǎn)調(diào)整嵌入強(qiáng)度和隱藏量,以較小運(yùn)算量得到很好的不可感知性和大動(dòng)態(tài)范圍的嵌入容量,自適應(yīng)效果明顯;采用QIM和多重容錯(cuò)處理方法消除了提取端嵌入強(qiáng)度誤差,算法自身十分穩(wěn)定,能夠穩(wěn)定適應(yīng)各種語音信號(hào);小波域隱藏提取具有較好抗干擾能力,滿足語音隱蔽通信抗干擾性能要求。


2 仿真實(shí)驗(yàn)及性能分析
2.1 實(shí)驗(yàn)方案

2.2 運(yùn)算復(fù)雜度分析
2.3 不可感知性分析






2.4 隱藏容量分析


2.5 抗干擾能力分析

3 結(jié) 語