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