專利名稱:基于濾波器相似度的語音lpc隱藏和提取算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是一種應(yīng)用于秘密語音實時通信的保密通信系統(tǒng)中的核心算法。該發(fā)明可以加載 到通用語音信號處理模塊上,通過公共交換通信網(wǎng)絡(luò)(公共交換電話網(wǎng)絡(luò)PSTN、視頻會議網(wǎng) 絡(luò)、VoIP網(wǎng)絡(luò)或移動通信GSM和CDMA網(wǎng)絡(luò))進行秘密語音的實時隱蔽通信。該發(fā)明屬于計 算機技網(wǎng)絡(luò)安全領(lǐng)域信息隱藏(Information Hiding)技術(shù)領(lǐng)域。
背景技術(shù):
自從1996年召開第一次信息隱藏技術(shù)的國際會議以來,信息隱藏的理論、方法和應(yīng)用研 究越來越廣泛地受到重視。隨著信息隱藏技術(shù)的不斷發(fā)展,它作為一種新興的信息安全技術(shù) 已經(jīng)被許多應(yīng)用領(lǐng)域所采用。國內(nèi)外有眾多的學(xué)術(shù)機構(gòu)和包括軍方在內(nèi)的其他各種團體正在 進行信息隱藏技術(shù)及其應(yīng)用研究,已經(jīng)開發(fā)出的多種基于不同載體信號信息隱藏方法,相應(yīng) 的產(chǎn)品已開始推出。
目前,對于信息隱藏的應(yīng)用大多集中在數(shù)字產(chǎn)品的著作權(quán)保護方面(或稱為數(shù)字水印) 研究。文本、圖像、語音信號、視頻信號和應(yīng)用軟件等多種的媒體均為研究中使用的載體信 號,其中研究最多的是有關(guān)各種格式圖像中的信息隱藏和水印技術(shù)。針對語音信號,國內(nèi)外 研究者對于語音中的隱藏技術(shù)作了大量研究工作,并開發(fā)出多種在語音中的信息隱藏算法。 現(xiàn)有開發(fā)的語音中各種隱藏算法大多利用了人類聽覺系統(tǒng)HAS (Human Auditory System)的 各種生理和心理的特性。而人類聽覺系統(tǒng)HAS是非常復(fù)雜和靈敏,它與人類視覺系統(tǒng)相比較 HAS更加靈敏。如人類聽覺系統(tǒng)對于附加的隨機噪聲很敏感,可以覺察到微小的擾動,可以 覺察出語音中附加的微小噪聲。它的作用動態(tài)范圍很寬,可以聽到從20Hz-20KHz頻率范圍的 聲音。并且對于加性噪聲也非常敏感,可以聽到比周圍環(huán)境低80dB的干擾噪聲。因此,實現(xiàn) 在語音中的信息隱藏,必須很巧妙的利用HAS的生理和心理的各種掩蔽特性,才能達到隱藏 信息的不可覺察性的要求。
目前已經(jīng)提出的可用于語音信息隱藏主要的算法有四種
① 最低有效位LSB (Least Significant Bit)方法;
② 相位編碼法; ◎頻譜變換法; 回聲隱藏法。
這四種信息隱藏算法的共同特性是對原始載體語音進行處理、嵌入,然后在處理后的復(fù)
合語音中提取嵌入信息。而語音經(jīng)過語音壓縮編碼后,特別對于中、低速率的語音編碼方案而言,只是保留了對人的聽覺最為重要的特征信息。合成后的語音和原始的語音在波形,以 及其他特征上有一定的差別。假如,秘密數(shù)據(jù)嵌入到原始語音中,然后進行編碼、傳輸和合 成操作后,從合成重構(gòu)的語音中提取秘密信息是十分困難的。因此,難以直接應(yīng)用于在數(shù)字 語音中進行信息隱藏。另外,本發(fā)明進行語音隱藏的目的是將秘密語音加密、隱藏在公開的 語音中用以安全地進行秘密語音的通信。為此,必須選擇隱藏容量大的嵌入算法,滿足實時 語音通信的需求。
1、最低有效位(LSB)方法
最低有效位LSB隱藏算法是將秘密信息嵌入到載體數(shù)據(jù)中最簡單的一種方法,屬于空域隱 藏算法。
LSB隱藏算法的基本思想是將秘密信號和載體信號均視為比特流序列,在隱藏秘密信息 時,用秘密信息的比特值替換載體語音信號中最不重要的比特值,從而達到在語音信號中隱 藏秘密語音信號的目的。
為了確保秘密信號內(nèi)容的安全性,將加密方法和信息隱藏方法有機結(jié)合在一起使用。在 秘密信號輸入嵌入部分之前,要經(jīng)過加密處理。根據(jù)某種密碼算法,產(chǎn)生偽隨機序列,將隨 機序列和秘密信號比特流按照預(yù)定的結(jié)合方式運算,生成加密后的秘密信號比特流序列。然 后,將此比特流序列利用嵌入算法進行嵌入。
(1) 秘密信號嵌入流程 秘密信號嵌入流程如下
① 以二進制形式讀取載體語音信號。將秘密信號轉(zhuǎn)換為二進制數(shù)據(jù)形式,并計算出秘密 語音信號的比特位總數(shù);
② 輸入加密所需的密鑰和其他有關(guān)參數(shù),產(chǎn)生加密所需的偽隨機序列;
③ 將秘密信號比特流序列和偽隨機序列按照預(yù)定的結(jié)合方式進行運算,產(chǎn)生加密后的秘 密信號比特流序列。結(jié)合運算方式有多種, 一般采用模二加運算。其主要原因是加、解密運 算簡便易行,也非常適合硬件實現(xiàn)。
將需要傳輸?shù)倪吘壭畔⑹紫惹度胼d體語音信號中。邊緣信息包括解密密鑰、嵌入控
制密鑰以及所需的其他輔助參數(shù)。
◎根據(jù)嵌入控制密鑰和控制算法確定的嵌入位置,讀取秘密信號比特流,用該比特替換 嵌入位置的比特,完成一次嵌入操作。
◎檢查秘密信號數(shù)據(jù)是否己經(jīng)全部嵌入。如果全部嵌入,則整個嵌入結(jié)束,產(chǎn)生復(fù)合數(shù) 據(jù)流序列。如果沒有,則返回④進行下一次嵌入操作。
(2) 秘密信號提取秘密信號提取流程如下
① 提取復(fù)合載體中嵌入的邊緣信息;
② 根據(jù)嵌入解密密鑰產(chǎn)生相應(yīng)的解密比特流序列;
③ 由嵌入控制密鑰和控制算法計算出秘密信息嵌入位置,并提取出加密的秘密信號,直到提取出所有的加密秘密信號為止;
對加密的秘密信號利用解密序列進行解密,將解密后的秘密信號按照原有的格式重組和輸出,完成秘密語音信號的通信。
要說明的是上述算法流程是非實時嵌入過程。在要求實時嵌入、傳輸?shù)膽?yīng)用系統(tǒng)中,該算法需要進行部分修改才能適應(yīng)實時嵌入、傳輸?shù)囊蟆?br>
LSB算法的優(yōu)點LSB算法在8位或16位語音采樣信號中,將每個樣點的最后一位作為替換位,可以獲得非常好的隱藏效果和較大的隱藏容量(《/8;《/16bps,《為載體語音信號
的采樣率)。經(jīng)過嵌入后的復(fù)合載體和原始的語音信號幾乎沒有差別。這一點可以從主觀的聽
覺效果和嵌入前后波形比較和信噪比指標(biāo)等都可以得出。同時,LSB算法簡便易于實現(xiàn)。
LSB算法的不足對信道干擾和數(shù)據(jù)操作的抵抗能力極差。 一般的信號處理,例如濾波、
壓縮編碼、時域縮放和重采樣等都能夠?qū)е虑度胄畔o法恢復(fù)。但在實際的信息隱藏系統(tǒng)應(yīng)用中,可以采用某種形式的自適應(yīng)算法,將秘密數(shù)據(jù)的嵌入位置放入"相對不重要"的比特位置,例如,語音采樣信號的第二位、第三位或者更高比特位置,這取決于信號自身情況和自適應(yīng)算法本身。但在魯棒性增強的同時不可避免的情況是嵌入信息的隱藏效果將有不同程度的降低。必須根據(jù)實際應(yīng)用要求適當(dāng)取舍,以達到隱藏效果、隱藏容量和魯棒性三者之間最佳平衡,滿足實際應(yīng)用的需求。
2、相位編碼(Phase Coding)方法
人類聽覺系統(tǒng)HAS具有一種特性對于語音信號的絕對相位不敏感,而對相對相位非常敏感。信息隱藏中的相位編碼正是基于HAS的這個特點,用不同的參考相位代表某一個比特值,再用參考相位替換原始語音的絕對相位,并對其他的語音段進行調(diào)整,以保持各段之間的相對相位保持不變,從而達到隱藏和傳輸秘密信號的目的。(2)嵌入過程
嵌入過程如下
①將語音文件5[/],/ = 1,#分為N段,每段語音&[/], (" = 0,iV-1; / = 0,M -1), M 為該段所含語音樣點個數(shù);(D對第"段語音作X點離散Fourier變換,其中,《=M/iV; —般情況下,X應(yīng)取2的方冪,以便使用FFT算法;
構(gòu)造相位矩陣①4A]和幅度矩陣A[ ];/ = 0,7V-1; 7 = 0,Ar-1;
③計算相鄰段之間的相位差分A<H"," = A"",W- ["-l,fc];其中"=0,7^-1;
"o,/:一i;
根據(jù)要嵌入的秘密信號比特值,規(guī)定
秘密信號比特值為"<=()"時,相位用"/2替換原有的相位值;
秘密信號比特值為"^=1"時,相位用-"/2替換原有的相位值;
⑤用相位差分矩陣A0和原始相位矩陣a)重新構(gòu)建相位矩陣
◎用修改后的相位矩陣和原始幅值矩陣,進行Fourier逆變換重構(gòu)語音文件,形成嵌入秘密信號后的復(fù)合載體信號。(2)提取過程提取過程如下
① 按照預(yù)定方式進行同步鎖定;
② 將接收到的復(fù)合載體語音信號按照嵌入分段長度進行分段;◎提取出第一段,并對其進行左變換,然后計算相位值;
根據(jù)相應(yīng)的閾值,判斷秘密信號比特值為"0"(或"l"),恢復(fù)秘密信號比特序列。在使用該方法隱藏信息時,由于當(dāng)秘密信號的參考相位急劇變化時會導(dǎo)致明顯的相位偏差,不僅使復(fù)合載體語音信號質(zhì)量下降,而且會使秘密信號比特序列的提取造成困難。因此,為了使參考相位變化平緩,必須要使變化的數(shù)據(jù)點保留一定的間距,嵌入信息的容量要保持在合理的范圍,以確保秘密信號的隱蔽性。另一方面,為了盡量提高秘密信號恢復(fù)的正確率,應(yīng)該選擇使參考相位差異最大化,如上選取的"0-^/2""l--;r/2"。因此必須在秘密信號嵌
入量和隱藏效果之間取得一個適當(dāng)?shù)恼壑?。也可以采用糾錯編碼的方法提高秘密信號恢復(fù)率,
但也同樣以降低嵌入數(shù)據(jù)量為代價的。
該隱藏算法的嵌入容量與載體信號有關(guān)。當(dāng)載體語音信號是較為安靜的環(huán)境,嵌入量較
小, 一般可以得到8bps的嵌入量;當(dāng)載體語音信號是較為嘈雜的環(huán)境,嵌入量較大,可以得到32bps的嵌入量。
3、回聲隱藏方法(Echo Coding)
回聲隱藏的思想是W. Bender等在1996年提出的,該方法使用單位沖擊信號構(gòu)成的系統(tǒng)在原聲中引入回聲,并把這個系統(tǒng)稱之為"核",后續(xù)研究沿用了這一提法。
在回聲隱藏方法中,采用了心理聲學(xué)中時域的掩蔽效應(yīng)。諸多聲學(xué)實驗證實了掩蔽效應(yīng)是一種常見的心理聲學(xué)現(xiàn)象,它是指人耳對一個聲音的聽覺感受,受到其它聲音影響的現(xiàn)象。表現(xiàn)為在一個較強的聲音附近,較弱的聲音變得聽不到了。這個較強的聲音稱為掩蔽者,弱的聲音稱為被掩蔽者。不可聞的被掩蔽者的最大聲壓級稱為掩蔽門限或掩蔽閾。
在回聲隱藏系統(tǒng)中利用的時域掩蔽又分為"前掩蔽"和"后掩蔽"。 一個弱信號可以被它之后的強信號所掩蔽掉的掩蔽現(xiàn)象稱為前掩蔽;而一個弱信號可以被它之前的強信號所掩蔽的掩蔽現(xiàn)象稱為后掩蔽。
聲音經(jīng)障礙物的反射形成回聲。引入回聲的數(shù)字語音信號可表示為
yM = 4"] + hs["-W],其中少["]是加入回聲后的語音信號;S["]是純凈的原語音信號;義為回聲的幅度系數(shù);M為延時參數(shù), 一般表示指回聲信號滯后于原始信號的樣點間隔;A為0至1之間正數(shù)。
回聲隱藏正是巧妙地利用人類聽覺系統(tǒng)的時域掩蔽特性,通過向語音信號中引入回聲來進行隱藏秘密信息的一種技術(shù)方法。該方法對載體語音的改變是環(huán)境條件而不是加入某種噪聲信號,同時,它在嵌入秘密信號的數(shù)據(jù)是尋求原始載體信號的最小失真,使得載體信號的改變不被感知。盡管引入回聲的方法必然會導(dǎo)致載體語音信號的失真,但從圖6-2所示的掩蔽
特性可以得知只要選擇合理的回聲參數(shù)A和^,附加的回聲就難以被人類聽覺系統(tǒng)所覺察。
該技術(shù)可以廣泛應(yīng)用于音像產(chǎn)品的所有權(quán)保護和保證內(nèi)容完整性等諸多方面的應(yīng)用。
典型的回聲隱藏方法是延時回聲隱藏。該方法基于HAS的時域后掩蔽特性,引入具有適
當(dāng)回聲參數(shù)的回聲信號,從而達到了隱藏秘密信號的目的。(1)回聲隱藏的嵌入算法回聲隱藏的嵌入算法如下
① 將語音采樣數(shù)據(jù)文件分成包含W個樣點子幀,子幀的時長可以根據(jù)隱藏數(shù)據(jù)量的大小劃分, 一般時長從幾毫秒到幾十毫秒。每個子幀隱藏一個比特的秘密信息。
② 需要定義兩種不同的回聲時延W。,附,,(其中附。,W均要求要遠遠小于子幀時長AO。當(dāng)秘密信號比特值為"0"時,回聲時延為附。;當(dāng)秘密信號比特值為"l"時,回聲時延為^;
由HAS的時域后掩蔽特性可知,對于回聲時延的大小是有限制的。 一般情況下,回聲時延附的
取值一般在50ms-200ms之間(這個值在具體的實驗環(huán)境中差別很大,視具體情況而定)?;?br>
聲時延w的取值過小會增加嵌入信息恢復(fù)的難度,過大則會影響隱藏信號的不可感知性。同
時,回聲的幅度系數(shù)/l的取值也需要精心的選擇,其值與信號傳輸環(huán)境和時延取值有關(guān),一
般取A在0.6-0.9之間。
載體信號的每個子幀按照=4"] +產(chǎn)生回聲信號y["〗。
(2)回聲隱藏提取算法回聲隱藏提取算法
回聲隱藏的最大難點在于嵌入的秘密信號的提取,其關(guān)鍵在于回聲間距的測定。由于回
聲信號是載體語音信號和引入回聲信號M"]的巻積。因此,在提取時需利用語音信號處理中的同態(tài)處理技術(shù),利用倒譜自相關(guān)測定回聲間距。在進行提取時,必須要確定數(shù)據(jù)的起點并
預(yù)先得到子幀的長度、時延、和W的等參數(shù)值。
① 將接收到的數(shù)據(jù)按照預(yù)定的時長劃分為子幀;
② 求出各段的倒頻譜自相關(guān)值,比較附。和附,處的自相關(guān)幅值,。和《,如果K大于^,則嵌入比特值為"0,,;如果^大于F。,則嵌入比特值為"1";
回聲隱藏算法的特點回聲隱藏算法優(yōu)處在于具有非常好的隱藏效果并且具有較好的抗攻擊能力,對于一般的數(shù)字信號處理,例如加入隨機噪聲、濾波、重采樣和失真壓縮等均具有較好魯棒性;但該方法的弱點也很明顯嵌入容量較小且計算量較大。 一般秘密信息嵌入量為2bps-64bps,其大小傳輸環(huán)境和參數(shù)設(shè)計有關(guān)。
4、變換域隱藏方法
變換域隱藏技術(shù)方法首先對原始載體語音信號進行某種變換運算,例如傅立葉變換FFT、離散余弦變換DCT和離散小波變換DWT等,得到相應(yīng)的頻域信號,然后通過修改其頻域信號某些指定的頻域系數(shù)來嵌入數(shù)據(jù)。通??紤]到對低頻區(qū)域系數(shù)的改動可能會影響到載體信號的感知效果,而高頻系數(shù)容易被破壞, 一般選取頻域信號的中頻區(qū)域上的系數(shù)來嵌入秘密信號,從而使之既滿足不可感知性,又滿足對諸如失真壓縮等操作的魯棒性。(1)變換域嵌入算法變換域嵌入算法如下
① 對原始載體語音采樣信號作變換T[口];
② 基于事先給定的加密算法,對秘密信號數(shù)據(jù)進行加密,得到加密的秘密信號數(shù)據(jù);
③ 按照預(yù)定的嵌入算法,在變換域上將秘密信號嵌入載體語音信號中;
進行相應(yīng)的逆變換^P],得到攜帶有隱藏信息的復(fù)合載體時域信號。
(2)變換域檢測算法變換域檢測算法如下-
① 對接收到的攜帶有隱藏信息的復(fù)合載體語音時域信號進行變換T[口];
② 在變換域上按照預(yù)定的檢測算法判斷是否存在嵌入秘密信號,如果有,則提取嵌入的秘密信息;
◎按照預(yù)定的解密算法對提取出的秘密信息進行解密,得到原秘密信號。變換域算法的優(yōu)點是具有較強的魯棒性,并且可以獲得極好的隱藏效果;但它的缺點
是隱藏容量較小,適合于隱藏較小數(shù)量秘密數(shù)據(jù)。對于要求隱藏容量大的信息隱藏系統(tǒng),
該類算法很難達到所需的隱藏容量要求。
發(fā)明內(nèi)容
本發(fā)明的研究是以語音媒體為載體對象的語音信息隱藏和提取,利用信息隱藏具有的信息隱匿特性,結(jié)合語音編碼的特點,設(shè)計語音信息隱藏和提取算法,建立語音閾下信道,進行秘密語音信息的隱蔽和實時傳送。
語音信號中存在著大量的冗余信息,這是低碼率語音編碼得以實現(xiàn)的前提,語音編碼的任務(wù)就是最大限度的除去這種冗余。在所有傳統(tǒng)的基于LPC (Linear Predictive Coding)的分析一合成ABS (Analysis-by-Synthesis)編碼方法中,所有的參數(shù)都是逐幀傳送的,這種做法的缺點有兩個
U)沒有考慮到語音中的濁音信號在產(chǎn)生過程中,聲道特性變化緩慢這一特點。因此,
從編碼的角度考慮就是如何利用這一特點,進一步除去冗余度,降低碼率'是十分必要的;而
從信息隱藏的角度考慮就是如何利用這個特點進行秘密信息的隱藏。(2)在基于LPC的分析-合成ABS編碼方法中,對于表示合成濾波器的LPC系數(shù)采用矢量量化的方法,這種量化方法可以大大減小表示LPC系數(shù)的比特數(shù)。但是,在傳統(tǒng)的方法中,其碼本設(shè)計是對所有的語音樣本的LPC矢量進行整體設(shè)計,得到一個單一的碼本。這樣做沒有考慮到不同語音段的特點,不但量化效率受到限制,而且碼本一般較大,需要較大的存儲空間和較大的搜索量。
因此,本發(fā)明提出的基于濾波器相似性(Filter Similarity)的語音LPC信息隱藏和提取算法就是利用基于LPC的分析一合成ABS編碼方法中的這兩個缺點,針對以下的關(guān)鍵問題進行研究-
第一,如何利用濁音語音段的聲道特征變化緩慢的特點,找到相近幀之間的相似性;第二,如何利用各語音段的不同特性,對LPC系數(shù)分類,針對不同類型的LPC系數(shù)分別進
行矢量量化,構(gòu)成不同的矢量量化碼本,以減小存儲量和搜索量,并提高量化效率。
本發(fā)明根據(jù)分析一綜合ABS語音編碼的特點,選擇不同的語音編碼方案(例如G.721、
G.728、 G729和GSM)作為公共語音載體,以MELP2.4K方案為秘密語音,設(shè)計基于濾波器相
似性的語音LPC信息隱藏和提取算法。本發(fā)明的主要內(nèi)容為
1、 提出了濾波器相似度的概念,并給出了濾波器相似應(yīng)的定義及定量計算方法。濾波器的相似度可以比較好的表現(xiàn)不同幀的語音信號間的相似性。對于兩個相似度較大的濾波器,用相同的激勵信號去激勵它們的時候,所得的輸出波形也很相似。而對于聲音特征變化比較緩慢的濁音發(fā)音,其相近鄰幀波形的變化主要反映在激勵信號上,往往它們的合成濾波器有較大的相似性;
2、 提出了基于濾波器相似度的LPC系數(shù)替代算法。在當(dāng)前幀語音信號的LPC合成濾波器與前面相近的某一幀語音信號的LPC合成濾波器的相似度大于某一閾值的時候,可以不用傳送該幀的LPC系數(shù),而只傳激勵信號參數(shù)。在解碼的時候利用前面的那幀語音信號的LPC濾波器替代該幀語音信號的LPC濾波器。合成的語音與用該幀語音的LPC合成濾波器合成的語音信號僅有很小的差別,對再生語音的質(zhì)量不會帶來較大的影響,但可以大大的降低碼率?;跒V波器相似度和LPC系數(shù)替代算法實現(xiàn)的語音編碼隱藏和提取算法,將秘密語音嵌入(隱藏)到載體語音中后,載體語音的質(zhì)量沒有明顯下降,而且嵌入(隱藏)的秘密語音信
息不可檢測的;在通信速率一定的情況下,該算法能提供足夠的隱藏容量保證通信語音的連續(xù)性。該算法綜合解決了保密通信中的實時性、穩(wěn)健性和安全性問題。
3、 基于濾波器相似度的語音LPC隱藏和提取算法
基于濾波器相似性的語音LPC隱藏和提取算法的中心思想是將語音綜合器引入譯碼器,使之與分析器相結(jié)合,在編碼器中產(chǎn)生與譯碼器端完全一致的合成語音,將此合成語音與原始語音進行比較,根據(jù)某種預(yù)定誤差準(zhǔn)則,對各個參數(shù)進行計算和調(diào)整,使得合成語音和原始語音之間的誤差達到最小。
在語音編碼碼流為載體的信息隱藏編碼方案中,引入語音合成器,并將秘密語音的比特流的隱藏融合于對載體的語音編碼過程中。在多碼字或多幀嵌入的情況下,將原始語音和嵌入后的復(fù)合語音碼流分別解碼、合成復(fù)合后語音。然后根據(jù)一定的誤差準(zhǔn)則,對所有的可能嵌入方法所得到的復(fù)合載體語音與原始語音比較并進行誤差計算,確定出誤差最小的一種嵌入方法,作為本幀入選的嵌入方案。其嵌入結(jié)果作為復(fù)合語音碼流輸出(誤差量度有多種方法,本算法必須根據(jù)所選編碼方案具體選擇)。對單幀嵌入的情況下,本算法充分利用載體語音編碼算法中的分析合成功能,實現(xiàn)秘密信息隱藏嵌入。
4、 基于各種標(biāo)準(zhǔn)編碼載體的語音隱藏和提取算法
在以數(shù)字化語音為載體的信息隱藏中,必須做到嵌入編碼流數(shù)據(jù)后的復(fù)合載體編碼符合載體的編解碼算法規(guī)律。也就是說,復(fù)合載體編碼經(jīng)過原載體解碼器解碼后合成的語音應(yīng)該類似于原始載體語音。最直接的嵌入方式的是對編碼后的語音碼字進行某種變換和處理使之?dāng)y帶秘密信息,但是這種方式只能適用個別編碼算法(例如G711編碼算法),對于一般的語音編碼的碼字直接進行處理容易產(chǎn)生很強的噪音,甚至嚴重失真。因此,嵌入算法必須以選擇的載體編碼算法為基礎(chǔ),經(jīng)過巧妙的嵌入處理,將秘密信息嵌入載體的編碼的碼字之中。本發(fā)明的語音隱藏算法將嵌入和編碼算法有機的融合起來,在保證語音質(zhì)量的前提下,可以針對不同的語音編碼算法進行秘密語音信息隱藏。具有適應(yīng)性較廣、嵌入量較大和隱藏效果較好的特點。
本發(fā)明具體設(shè)計和實現(xiàn)了幾種比較典型的語音壓縮編碼為載體語音編碼時隱藏和提取算法,包括G,721(ADPCM)、 GSM(RPE-LTP)、 G728(LD-CELP)、 G729(CS-ACELP)等標(biāo)準(zhǔn)。其中,秘密語音以MELP2.4kbps壓縮編碼算法為實驗標(biāo)準(zhǔn)。
圖1是本發(fā)明的濾波器相性計算方框圖;圖2是本發(fā)明的LPC系數(shù)替代算法框圖;圖3是本發(fā)明的秘密語音隱藏流程圖;圖4是本發(fā)明的秘密語音提取流程圖;圖5是本發(fā)明的0.721嵌入編碼方框圖;圖6是本發(fā)明的0.721嵌入編碼實現(xiàn)流程圖;圖7是本發(fā)明的GSM (RPE-LTP)嵌入編碼算法方框圖;圖8是本發(fā)明的GSM (RPE-LTP)提取算法方框圖;圖9是本發(fā)明的G.728 (LD-CELP)嵌入算法流程圖;圖10是本發(fā)明的G.728 (LD-CELP)提取算法流程圖;圖11是本發(fā)明的G.729 (CS-ACELP)嵌入流程圖12是本發(fā)明的G.729 (CS-ACELP)提取算法流程圖。
具體實施例方式
本發(fā)明的關(guān)鍵問題在于如何協(xié)調(diào)好語音隱藏容量、語音通信質(zhì)量(語音的連續(xù)性、可懂性和實時性)和秘密信息安全性三個方面的關(guān)系,達到設(shè)計的通信要求。而這些關(guān)系歸根結(jié)蒂具體體現(xiàn)在如何解決有關(guān)語音信息隱藏算法性能(隱藏容量和穩(wěn)健性)與語音通信質(zhì)量的技術(shù)問題上。其中涉及三個方面的問題
① 實時性為了保證在一定的語音傳輸(編碼)速率下,通信的秘密語音連續(xù)可懂,則語音隱藏算法就必須具有很大的隱藏容量來保證語音通信的實時性。
② 穩(wěn)健性為了保證秘密語音信息的隱藏性能,語音信息隱藏算法必須保證在具有較大
隱藏容量的前提下,保證秘密語音信息的不可見性(Invisible)或不可感知性(Imperceptible)。
③ 安全性為了保證秘密語音信息的安全性能,語音信息隱藏算法必須保證在具有較大隱藏容量和不可見性的前提下,保證秘密語音信息的不可檢測性。
本發(fā)明是在滿足上述3個特性的前提下進行設(shè)計的,具體的實施方式如下
1、濾波器相似度(Filter Similarity)
濾波器相似度主要利用語音信號中存在著大量的冗余信息,確定可以用于隱藏秘密語音信息的LPC參數(shù)。針對不同的語音編碼方案,根據(jù)語音特性和實際要求的需要,可以提取不同的語音參數(shù)用于嵌入(隱藏)秘密語音信息。
其中,對于波形編碼類型的主要的語音參數(shù)有語音樣點值、短時語音能量和差分參數(shù)等;對于合成-分析ABS編碼類型的主要的語音參數(shù)有語音清濁參數(shù)、語音能量參數(shù)、線性預(yù)測參數(shù)(或線譜頻率LSF)、激勵參數(shù)、基音參數(shù)和相應(yīng)的各種增益參數(shù)。這些語音參數(shù)特性,對于合成語音質(zhì)量的影響有很大差異。即使同一類型的參數(shù),在不同的編碼方案中,對于合成語音質(zhì)量的影響也有所不同。部分參數(shù)的微小改變對合成語音質(zhì)量的影響甚微,而有些語音參數(shù)(稱之為重要信息位)則相反。如線性預(yù)測系數(shù)的參數(shù),即使產(chǎn)生不大的誤差,也可能對合成后語音質(zhì)量產(chǎn)生的較大影響,甚至完全失真;同樣語音清濁標(biāo)志參數(shù),如果出現(xiàn)錯誤則導(dǎo)致合成后的語音完全失真。因此,必須對不同的語音編碼方法,確定對語音質(zhì)量相對較小的語音參數(shù)隱藏秘密信息。從隱藏容量和隱藏效果兩個方面權(quán)衡,認為GSM(RPE-LTP)、 G.728(LD~CELP)、 G729(CS^ACELP)等編碼算法較為適合。作為秘密語音信號編碼算法可以利用FS1015(LPC—10e)和MELP等低速率(甚低速率)壓縮編碼算法等均可以。但在目前比較成熟的編碼算法中,MELP編碼算法為最佳選擇。當(dāng)然,隨著語音壓縮編碼技術(shù)的不斷發(fā)展,還可以采用新的壓縮率更高、質(zhì)量更好的壓縮編碼算法。
在發(fā)明算法設(shè)計中,語音載體可以有多種選擇,視具體應(yīng)用場合的情況而定,例如G.728LD-CELP 16kbps編碼標(biāo)準(zhǔn)。而秘密語音的編碼則選定為MELP2.4kbps標(biāo)準(zhǔn)。
濾波器相似性的確定方法就是將綜合器引入到編碼器中,使它與分析器相結(jié)合,在編碼器中產(chǎn)生與譯碼器中完全一致的合成語音,再將此合成語音與原始語音相比較,并根據(jù)一定的誤差準(zhǔn)則來調(diào)整計算各個參數(shù),以使二者之間的誤差達到最小。
濾波器相似性的確定方法是在采用LPC的分析一合成ABS語音編碼方法的基礎(chǔ)上實現(xiàn)的,其編解碼器系統(tǒng)的基本結(jié)構(gòu)如圖l所示。在設(shè)計中,語音信息每幀長度為20ms (160個點),分成4個子幀(每個子幀長度為5ms, 40個點)。其實現(xiàn)過程為先將語音信號分幀(一般20ms左右一幀),對每一幀語音信號進行分析,得到LPC系數(shù),以及基音周期等信息;并將分析參數(shù)經(jīng)合成濾波器產(chǎn)生的合成語音與原始語音比較以調(diào)整參數(shù);然后再對各種參數(shù)進行量化,并進行傳輸或存儲;在解碼的時候,用激勵信號激勵LPC合成濾波器得到再生語音。將再生語音與原始輸入語音在誤差測量器中進行比較,利用最小誤差準(zhǔn)則判定當(dāng)前的誤差是否達到要求。如果達到要求,記錄當(dāng)前的LPC參數(shù),作為濾波器相似性輸出。
2、基于濾波器相似度的LPC系數(shù)替代算法
在作低速碼率語音編碼時,可以利用濾波器的相似度,以減少傳送LPC系數(shù)的碼率,即不是每一幀都傳送LPC系數(shù)。如果當(dāng)前幀的合成濾波器與前面某幀的合成濾波器的相似度S大于某個閥值SO時,則不傳該幀的LPC系數(shù)an,利用前面那幀的LPC系數(shù)aO代替該幀的LPC系數(shù)an。對激勵信號的分析表明,在LPC分析-合成ABS編碼中,相似的語音波形幀之間除了它們的濾波器具有較大的相似度外,還必須具有相同的激勵信號。但是,對于具有較大相似度的濾波器,當(dāng)激勵信號有所不同時,它們的語音波形便會有所不同。因此,當(dāng)濾波器相似度S大于SO時,可以不傳該幀的LPC系數(shù),但仍然用該幀信號,則不會對該幀和合成語音的質(zhì)量產(chǎn)生較大的影響?;跒V波器相似度的LPC系數(shù)替代算法框圖如圖2所示。
首先,輸入第W-1幀的參數(shù)^,計算當(dāng)前第A7幀的參數(shù)"n。如果當(dāng)前幀的合成濾波器與前一
幀的合成濾波器的相似度S (a", 大于某個閥值&時,則不傳該幀的LPC系數(shù)fl",利用前面那幀的LPC系數(shù)w代替該幀的LPC系數(shù)A。
采用基于濾波器相似度的LPC系數(shù)替代算法,針對包含漢語所有聲母和韻目的36個詞組進行了LPC系數(shù)替代試驗。實驗結(jié)果表明設(shè)置相似度閥值&=0.7,由統(tǒng)計得到,36個詞組總共860幀,其中,有520幀可以不傳送LPC系數(shù),占60%;以MELP2.4 kbps語音編碼算法為例,其幀長采用20ms時,每幀傳54bits。其中,25bits用于傳送LPC系數(shù)。
3、基于濾波器相似性的語音LPC隱藏和提取算法
為了敘述方便規(guī)定秘密語音碼流段為A;O",O為A對載體語音 ,幀的一種嵌入(或者說是一個變換)方法(其中,幀長為M個樣點,采樣率為8kbps) ;"O為第t幀的原始語音的采樣值乂(O為嵌入合成后的復(fù)合語音樣點值;O",U的定義域為Z, Z包含了iV個元素(W21); g表示相應(yīng)復(fù)合載體語音與原始載體語音的誤差值;Cod為語音編碼的碼字。這里,Cod可以是一個標(biāo)量或者是一個包含多個語音參數(shù)的矢量。
規(guī)定函數(shù)/表示秘密信息比特嵌入后,Cod和嵌入比特Bit —value之間滿足的等式關(guān)系。以嵌入l比特為例
/滿足/(Cod,Bit —value) = 0 式(1)
/"是由/導(dǎo)出的提取嵌入比特關(guān)系式
5// = /—乂Cod) 式(2)
注意復(fù)合參數(shù)是指經(jīng)過嵌入后發(fā)生變化了的輸出編碼參數(shù);指定編碼算法是指選定的
語音編碼算法,被嵌入的參數(shù)和位置以及關(guān)系等式/的定義(關(guān)系式/與具體載體語音編碼
算法和將要嵌入數(shù)據(jù)的數(shù)量和選擇的嵌入方式有關(guān));復(fù)合語音碼流是指嵌入秘密信息和的語音編碼器輸出的數(shù)字語音碼字序列。①秘密語音隱藏
秘密語音隱藏實現(xiàn)過程如圖3所示,圖3中OCs^,)為s,對載體語音(幀的一種嵌入(或者說是一個變換)方法(其中,幀長為M個樣點,采樣率為8kbps);①(A,0的定義域為Z, Z包含了W個元素(7V21);《表示相應(yīng)復(fù)合載體語音與原始載體語音的誤差值。
輸入原始語音后首先進行語音分段,并送入嵌入器進行秘密語音的隱藏。在多碼字或多幀嵌入的情況下,將原始語音和嵌入后的復(fù)合語音碼流分別解碼、合成復(fù)合后語音。然后根據(jù)一定的誤差準(zhǔn)則,對所有的可能嵌入方法所得到的復(fù)合載體語音與原始語音比較并進行誤差計算,確定出誤差最小的一種嵌入方法,作為本幀入選的嵌入方案。其嵌入結(jié)果作為復(fù)合語音碼流輸出(誤差量度有多種方法,必須根據(jù)所選編碼方案具體選擇)。對單幀嵌入的情況下,充分利用載體語音編碼算法中的分析合成功能,實現(xiàn)秘密信息嵌入(隱藏)。其步驟如下-
a. 為了獲得更好的語音質(zhì)量,對于原始載體語音進行適當(dāng)?shù)念A(yù)處理。主要目的去除由于設(shè)備帶來的低頻干擾和能量的均衡。
b. 將原始載體語音按照編碼算法的標(biāo)準(zhǔn)分段,分段樣點長度取決于載體編碼算法、嵌入語音編碼的特性和實際隱藏需要。同時,秘密語音按照指定的密語音編碼算法進行編碼,并對秘密語音碼流按照預(yù)定的加密算法進行加密,以確保數(shù)據(jù)的安全性,將得到加密的秘密語音bit流序列,并送入緩存待用。
c. 按照指定載體編碼方式進行嵌入編碼,在語音編碼器對載體語音編碼的流程中,根據(jù)要嵌入的比特對語音編碼中的部分參數(shù)計算方法進行改變,使變換后的編碼參數(shù)滿足約束關(guān)系式(1)的條件,并且復(fù)合參數(shù)作為原始的反饋參數(shù)送入語音編碼算法的合成分析系統(tǒng)中,
參與語音編碼。對于所有的可能o(&g得到相應(yīng)的復(fù)合載體語音參數(shù)。然后用載體解碼器將
復(fù)合語音參數(shù)合成原始復(fù)合語音,求取相應(yīng)的誤差
<formula>formula see original document page 16</formula>d.對求出iV個^,求取五柚-min^,.;f-l,W,其相應(yīng)的嵌入方法為0>(^in,fmin),并將該種嵌入方法的復(fù)合語音碼字Cod輸出。②秘密語音提取
秘密語音提取的整個過程非常簡便,快速,且不需要原始載體語音,屬于"盲"檢測過程,如圖4所示。圖4中Cod為語音編碼的碼字。這里,Cod可以是一個標(biāo)量或者是一個包含多個語音參數(shù)的矢量;Bit為嵌入秘密語音的比特信息。
復(fù)合語音信息輸入后首先進行按幀分段,然后根據(jù)Cod和嵌入比特Bit之間滿足的最小誤差準(zhǔn)則關(guān)系提取嵌入的秘密語音信息。最后將提取的秘密語音的比特信息進行解密和解碼得到秘密語音信息輸出。其過程步驟如下
a. 將接收到的復(fù)合碼流按照載體編碼算法的標(biāo)準(zhǔn)分幀;
b. 對每幀碼字Cod利用式(2)計算出嵌入的比特值,構(gòu)成密語音碼流;
c. 對提取出的比特流進行解密還原得到秘密語音碼流;通過相應(yīng)的秘密語音解碼器合成秘密語音。
4、基于各種標(biāo)準(zhǔn)編碼載體的語音隱藏和提取算法
下面介紹以幾種比較典型的語音壓縮編碼為載體語音編碼時隱藏和提取算法的實現(xiàn)。其中,包括公共語音載體G721(ADPCM)、 GSM(RPE-LTP)、 G728(LD-CELP)、 G,729(CS-ACELP)等標(biāo)準(zhǔn);秘密語音MELP2.4kbps壓縮編碼標(biāo)準(zhǔn)。
1) G721-ADPCM
G721(ADPCM)語音編碼標(biāo)準(zhǔn)的隱藏和提取算法的基本原理是在ADPCM編碼算法中將原始語音的線性PCM編碼樣點逐個輸入編碼器。
秘密語音信息嵌入之前首先對原始載體語音進行預(yù)處理,預(yù)處理分為兩步
① 帶通濾波目的是消除有錄音設(shè)備導(dǎo)致的低頻噪聲;
② 能量均衡將短時能量的最高值作為基準(zhǔn),進行歸一化處理。目的是防止語音能量過高,導(dǎo)致嵌入編碼造成自適應(yīng)量化溢出,在利用ADPCM編碼碼流為載體時,這是必需的一個步驟。否則,在嵌入后的復(fù)合載體中容易出現(xiàn)由于嵌入秘密信息而導(dǎo)致的量化溢出,產(chǎn)生很強的"喇喇"聲,嚴重影響復(fù)合載體編碼合成語音的音質(zhì)和隱藏效果。
對ADPCM語音編碼載體語音進行分幀,分幀的長度取決于嵌入信息的速率。幀長的計算按照下式-
尸rfl附e —/ew-8000/e附6ed — ^^e 式(4)
其中,ew6" — ^^為嵌入秘密語音信息的速率。
如果em6ed — rafc為2000 bps,則幀長Frawe —/e"為4個碼字。因此,S[/], / = 1,4,每幀數(shù)據(jù)只嵌入秘密語音信息的一個比特。(1)嵌入過程
ADPCM語音編碼嵌入編碼方框圖如圖5所示;嵌入編碼實現(xiàn)流程如圖6所示,圖中V—em&c/為嵌入數(shù)目值。
下面敘述ADPCM語音編碼嵌入的具體流程
① 載體語音分幀
分幀的長度按照式(4)計算,它與嵌入信息量的大小有關(guān);
② 自適應(yīng)量化表分裂
將原有的量化表^5i:五[8]分裂為兩個量化表7^5丄£0[4]和7^^^1[4]。規(guī)定經(jīng)過由Z4^^0[4]編碼的碼字,滿足碼重為偶數(shù);
經(jīng)過由L4^^1[4]編碼的碼字,滿足碼重為奇數(shù)。
4
令『=5^0賊;
6//,為碼字的4個比特位值。因此,選取嵌入關(guān)系函數(shù)/滿足:'
4
/(Cod, , Cod2 , Cod3, Cod4 , Bit一value) - J] ^十Bit—value = 0 式(5)②按照嵌入分組選取嵌入方式,確定并紀(jì)錄嵌入變化的個數(shù)
對于Frame—/e"-4的情況,根據(jù)試驗,本發(fā)明選取了碼字最低位進行變換,共有80種變化2'xd+22xc,+23xc,+24xc44 =80 。
在本發(fā)明中將第/種變換記為d>,v=l,80。
對于每一個O,,將一幀語音樣點和被嵌入秘密語音一個比特,輸入到嵌入模塊,按照式(5)函數(shù)關(guān)系進行嵌入編碼,并記錄嵌入編碼的過程有關(guān)過程參數(shù)和嵌入編碼值Cod[/][/M = 1,2,…,80;7' = 1,4 。將每一組編碼值輸入ADPCM解碼器進行解碼,得到80組合成語音樣點&[/]lj'],按照式(6)計算最小誤差值EW-
鄰]-t(鄧]-Sp[/][/l)x(鄧]-式(6)
£[A] = min{£:[/];/ = l,80} 式(7)
將誤差最小的①"乍為ADPCM語音編碼嵌入方式,并將它的嵌入編碼(C0d[W[y']J = l,4)
輸出。同時,用其編碼有關(guān)變量更新編碼器和解碼器的相應(yīng)參數(shù),用于下一幀嵌入編碼。
(2) 提取過程
在ADPCM語音隱藏方法中,由于嵌入秘密信息時,通過嵌入編碼器后的輸出碼字按照預(yù)定分段滿足式(7)。因此,提取算法極為簡便,且不需要原始的載體語音一 "盲"檢測。以Fmrne—= 4的情況描述秘密信息提取過程如下
① 首先按照預(yù)定的幀長^"a/^—/e"對復(fù)合載體編碼分幀;
② 然后計算出釅,『=tt(K 6!、);其嵌入比特值說Y —va/"e-『;如此循環(huán)逐幀提
'=i y=i
取出秘密信息的比特,直到提取完全部秘密信息;
③ 將秘密信息按照原有格式恢復(fù)輸出。
(3) 測試結(jié)果及分析
ADPCM編碼為載體的語音隱藏算法在不考慮提取是否方便的條件下,可以做到8/3 kbps的嵌入容量,且具有非常好的隱藏效果。
提取嵌入的秘密信息時,如果不需要原始載體,也不考慮復(fù)雜的解碼過程的條件下,可以做到1.6kbps和2kbps的嵌入容量,且具有較好的隱藏效果。但是,該嵌入算法明顯不足是運算量較大。
2) GSM (RPE-LTP)
GSM (RPE-LTP)語音編碼作為語音保密通信系統(tǒng)的載體編碼方案具有以下優(yōu)點
① GSM編碼方案具有比較低的碼速率(13kbps),并且重構(gòu)的合成語音的質(zhì)量較好;
② GSM編碼方案采用的部分參數(shù)具有比較強的魯棒性。因此,該部分參數(shù)的少量變動對于重構(gòu)語音質(zhì)量影響較小。這是GSM編碼方案作為實際的語音保密通信系統(tǒng)的載體語音編碼算法的最大優(yōu)勢所在。
為了更好的敘述基于GSM編碼的信息隱藏算法嵌入和提取算法的具體實現(xiàn)過程,規(guī)定如下符號
7i為GSM編碼一幀的時間長度;K為選用的低速率編碼一幀的時間長度;r為嵌入算法的幀長(緩沖區(qū)長度);
r=[7;,r2]即r為7;和r2的最小公倍數(shù),為確保載體語音和秘密語音滿足實時同步發(fā)送,
按照上面的計算方法,確定嵌入算法時延r為180ms;
/是嵌入編碼后碼字和嵌入比特組之間的函數(shù)關(guān)系,/—!是其逆關(guān)系式。(i)嵌入算法
基于GSM編碼的嵌入算法方框圖如圖7所示。秘密語音嵌入過程如下
① 為了更好地進行LPC分析,發(fā)送方將載體語音先進行預(yù)處理,以去除直流分量并進行高頻分量預(yù)加重,然后存儲待用。預(yù)加重采用一階FIR濾波器;
② 進行分幀處理,每20ms (160個采樣點)為一幀;③短時分析濾波,對信號S做LPC短時預(yù)測分析,產(chǎn)生短時余量信號;
長時預(yù)測,語音信號S經(jīng)短時預(yù)測分析之后,其余量信號d進入長時預(yù)測,進一步去
除信號的多余度;
⑤Z為原始秘密語音經(jīng)過A/D采樣后,經(jīng)選用的低速率編碼產(chǎn)生的碼流序列,《為第/幀(48bit)秘密語音碼流;
◎按照預(yù)定嵌入編碼方法將秘密語音《嵌入,產(chǎn)生復(fù)合編碼的碼字;⑦輸出的復(fù)合語音碼流序列,然后將復(fù)合碼流按照傳輸協(xié)議進行傳輸。
(2) 提取算法基于GSM編碼的提取算法流程如圖8所示。
提取算法過程為接收方收到復(fù)合碼流后,按照約定的分段長度對復(fù)合碼流分段,對每
一段的復(fù)合碼流按照嵌入信息提取方法/—'將秘密信息提取,并輸入到選用的低速率解碼器中,合成秘密語音輸出到耳機。
(3) 測試結(jié)果及分析
實驗結(jié)果表明提取后的秘密語音與嵌入前的秘密語音信息沒有很大的區(qū)別,很好的保持了原始語音質(zhì)量。因此,GSM是本發(fā)明方案實現(xiàn)的一個選擇。3) G.728 (LD-CELP)
CCITT于1992年公布了語音編碼標(biāo)準(zhǔn)G.728 — LD-CELP (Low Delay Code Excited LinearPrediction),它是由美國AT&TBell實驗室提出的方案。G728的編、譯碼原理在第二章中己經(jīng)介紹。本章在對該編碼方案特點研究的基礎(chǔ)上,利用ABS算法模型,設(shè)計出了信息隱藏和提取算法。
下面針對0.728語音編碼為載體的隱藏和提取算法,就每個子幀僅嵌入一個比特的情況進行敘述。
(1)嵌入算法0.728語音編碼為載體的語音隱藏流程圖如圖9所示。
載體語音x(")為均勻量化的PCM信號,每5個連續(xù)樣點值作為一個矢量(或者稱為子幀)。從G,728編碼算法知道,其編碼器輸出的是在最小誤差準(zhǔn)則下的最佳矢量的標(biāo)號。最佳矢量碼本長度為10個bits,共有1024個獨立矢量,儲存于矢量表中。為了減少碼本搜索的復(fù)雜度,該矢量碼本有被分解為兩個矢量表
第一個為7bit的"波形碼本"(Shape Codebook),含有128個獨立的碼矢量;
第二個為3bit的"增益碼本"(Gain codebook),含有8個以零為對稱的標(biāo)量化值,最高比特為增益符號位,其他兩位為增益幅度。
通過大量實驗得知增益碼本出現(xiàn)波動時,對語音音質(zhì)影響較大,容易產(chǎn)生較高的噪音。對于波形碼本矢量,按照一定規(guī)則在嵌入編碼中選取部分碼本編碼,對合成語音音質(zhì)產(chǎn)生的影響較小。因此,本發(fā)明選擇波形碼本矢量作為嵌入的參數(shù)。由于在不同條件下需要的不同嵌入容量,同時根據(jù)安全需求的不同,如何確定嵌入?yún)?shù)與嵌入信息比特位之間相應(yīng)/函數(shù)關(guān)系,是十分重要的一個環(huán)節(jié)。
按照該語音編碼算法的規(guī)定,每五個樣點作為一個子幀輸入,每四個子幀組成一幀數(shù)據(jù)。對于輸入的每一個子幀,嵌入編碼器根據(jù)嵌入比特的值依次選取每一個碼矢量-
如果嵌入比特值為"0"時,在TABLEO禾口TABLE-Z中選取;
如果嵌入比特值為"1"時,在TABLE1中選取。
其中,TABLE-Z為原始的增益碼本;TABLEO、 TABLE1各自含有64個獨立碼矢量。選取的碼本矢量滿足預(yù)定的約束函數(shù)/(X,Bit) = 0。
其中,X為10比特的矢量標(biāo)號;/為嵌入?yún)?shù)與嵌入信息比特位之間的函數(shù)關(guān)系;/—'為秘密信息提取函數(shù),滿足式(8):
Bit = /-、X) 式(8)
將選取的碼本矢量由增益標(biāo)定后輸入到激勵合成濾波器,產(chǎn)生本地解碼信號。求取本地信號和原始信號的頻率加權(quán)均方誤差(MES),然后選取誤差值最小的碼矢量作為最佳碼矢量。將最佳碼矢量的標(biāo)號(10bit)輸出作為嵌入編碼結(jié)果發(fā)送出去。線性預(yù)測器系數(shù)每幀更新一次,利用以前的量化激勵信號的增益,逐矢量地進行提取和更新激勵的增益。如果秘密信息全部嵌入后,嵌入編碼器恢復(fù)原始的編碼器狀態(tài),對載體語音進行正常的編碼和解碼。其中,頻率加權(quán)均方誤差(MES)按照式(9)計算
<formula>formula see original document page 23</formula>
式(9)
其中,//為綜合濾波器和知覺加權(quán)濾波器的級聯(lián);g,表示TABLE-Z中的第/個增益值;^表示TABLE0或TABLE1中的第個碼矢量;= /CT( )。
(2) 提取算法0.728語音編碼為載體的語音提取流程圖如圖10所示。
由于在嵌入秘密語音信息時,嵌入編碼器的輸出碼字X,按照子幀滿足約束函數(shù)關(guān)系/(X,Bit) = 0。因此,提取秘密信息時非常簡便,并且不需要原始的載體語音數(shù)據(jù)。屬于信息隱藏中"盲"檢測和提取方法。
首先,對于接收的復(fù)合載體編碼碼流,按照10個比特劃分為數(shù)據(jù)段,每個數(shù)據(jù)段構(gòu)成一個碼字X;然后,按照式(8)提取出秘密信息比特值。
將提取出來的秘密信息的比特流進行解密得到嵌入信息比特流。按照嵌入信息的原始格式輸出供秘密語音解碼器解碼,合成秘密語音。
&728語音嵌入編碼算法與0.728編碼算法融合為一體,總運算量與G728相比略小。所以,嵌入和提取的運算速度快。并且該嵌入編碼算法隱藏容量大,隱藏效果好。因此,可以作為本發(fā)明保密語音通信系統(tǒng)的一種較好的候選算法。
(3) 測試結(jié)果及分析
在16kbps的G728語音壓縮編碼為載體時,試驗證明可以達到3.2Kbps的信息嵌入容量,
完全滿足了實現(xiàn)秘密語音碼流在載體語音碼流中實時隱藏嵌入所需容量,并且隱藏效果好。由于為無損提取,試驗結(jié)果表明提取后的秘密語音與嵌入前的秘密語音信息沒有很大的區(qū)別,很好的保持了原始語音質(zhì)量。
4) G.729 (CS-ACELP)
共軛結(jié)構(gòu)一代數(shù)碼激勵線性預(yù)測CS-ACELP語音壓縮編碼算法是CCITT于1996年公布的編碼標(biāo)準(zhǔn)G.729。本發(fā)明對編碼方案特點進行了分析和研究,利用ABS隱藏算法模型,構(gòu)造了G729語音編碼隱藏算法。(1)語音嵌入算法
0.729語音編碼為載體的語音隱藏算法流程圖如圖11所示。
載體語音x(")為采樣率為8K的16位均勻量化的PCM信號,每80個樣點作為一幀。
嵌入編碼器輸出的編碼參數(shù)包括線性預(yù)測濾波器系數(shù)、自適應(yīng)碼本標(biāo)號、固定碼本的碼本標(biāo)號、自適應(yīng)碼矢量增益、固定碼矢量增益和基音時延奇偶檢驗。
其中,線性預(yù)測濾波器(LPC)系數(shù)轉(zhuǎn)換為線譜對(LSP)參數(shù)后編碼長度為18個bit;基音時延奇偶檢驗為lbit;自適應(yīng)碼本標(biāo)號為8+5共13個bit;固定碼本標(biāo)號13+13共26個bit;自適應(yīng)碼矢量增益和固定碼矢量增益共占用14bit。
通過實驗得知
① 如果對于線譜對(LSP)編碼的作較小變動,對語音質(zhì)量容易產(chǎn)生不可預(yù)料的結(jié)果。主要原因在于線譜對(LSP)系數(shù)的改變,將導(dǎo)致經(jīng)過線性預(yù)測器的所有樣點產(chǎn)生變化,
這種變化大小程度與輸入的語音樣點有關(guān),無法對此預(yù)先進行變化大小的估計。特別是對于語音由強到弱(或由弱到強)的過渡部分產(chǎn)生的影響最大。而這部分語音所攜帶的信息內(nèi)容較多,非常重要。因此,可能會導(dǎo)致部分樣點產(chǎn)生較大的變化,從而使合成語音與原始語音差別很大。
② 當(dāng)自適應(yīng)碼矢量增益和固定碼矢量增益參數(shù)出現(xiàn)波動時,對合成后的語音音質(zhì)影響較大,主要表現(xiàn)在合成語音有較強的噪音。因此,這些編碼參數(shù)不能用于隱藏秘密信息。G729的自適應(yīng)碼本采用了l/3分辨率的分數(shù)延遲。因此,對自適應(yīng)碼本的最小變動的影響為l/3樣點。當(dāng)基語音率在50Hz—400Hz之間,自適應(yīng)碼本變化產(chǎn)生的基音誤差為<formula>formula see original document page 25</formula>
當(dāng)基音周期為20時,gO)最大為400-8000/ (20+1/3) = 6.557Hz當(dāng)基音周期為160時,g("最大為50-8000/ (160+1/3) =0.104Hz從中可以得出結(jié)論如下
對于自適應(yīng)碼本標(biāo)號微調(diào),造成的基語音率誤差與信號基語音率成正比。但其誤差對合成語音造成的影響比較小,特別對于基語音率較低的語音影響更小一些。本發(fā)明可以將該參數(shù)作為可以隱藏信息的編碼參數(shù)之一。同時也要引起注意,選用自適應(yīng)碼本嵌入信息,應(yīng)該對于載體語音有所選擇,例如,選用基音較低男生語音,以達到最佳的隱藏效果。但是,從總體效果上看,自適應(yīng)碼本嵌入信息造成的合成語音音質(zhì)的下降要大于固定碼本。
基于上述試驗和分析,本發(fā)明選用了自適應(yīng)碼本、固定碼本作為可變化的編碼參數(shù)用于隱藏秘密信息。
G,729編碼算法的嵌入過程如下(僅就每幀嵌入8個比特情況敘述嵌入和提取算法)
① 按照G729編碼算法的規(guī)定每80個樣點S(")作為一幀數(shù)據(jù)輸入,同時輸入8個BIT為一組(B[z'], / = 0,7)的秘密信息;
② 對每幀語音樣點做一次LP分析,并轉(zhuǎn)化為LSF參數(shù)進行矢量量化編碼為18比特;
③ 按照40個樣點為一個子幀,用未量化和量化的LP參數(shù)分別構(gòu)成感覺加權(quán)濾波器『(z)及綜合濾波器^(z);
在嵌入數(shù)組B[/]和預(yù)定的約束函數(shù)F控制下,進行自適應(yīng)碼本和固定碼本的選取。將選取到的激勵分別乘以各自的增益,相加后激勵綜合濾波器,產(chǎn)生本地重建信號S(")(自適應(yīng)碼本和固定碼本各自的增益采用共軛結(jié)構(gòu)進行矢量量化;對于固定碼本的選擇控制是根據(jù)其代數(shù)結(jié)構(gòu)產(chǎn)生后的固定碼本檢驗是否符合選擇條件的。這一點與G728有明顯不同。);⑤通過S(")和S(")之間的感覺加權(quán)均方誤差的計算,確定使誤差最小的最佳激勵;◎?qū)⑺鼈冊诖a本中的序號、各自的增益、LP參數(shù)及其它的參數(shù)作為嵌入編碼器的本幀的
輸出碼字o^輸出,這一幀的嵌入編碼到此結(jié)束。
其中,函數(shù)關(guān)系F是一組函數(shù)關(guān)系,它使CoJ與嵌入數(shù)據(jù)B[/]形成一一映射關(guān)系
5W^F^Cod。其中,a^是該幀的嵌入編碼器輸出的碼字。
(2) 秘密語音提取算法G729語音編碼為載體的語音提取算法流程圖如圖12所示。
由于在秘密信息嵌入時,嵌入編碼器的輸出碼字X滿足BW與a^之間的映射關(guān)系F。因此,在接收端僅需要提供接收到的復(fù)合載體編碼數(shù)據(jù),就可以提取出嵌入的秘密語音信息B[/],而不需要原始的載體語音的任何信息。
G,729語音編碼為載體的語音提取算法提取過程如下
① 將接收到的復(fù)合載體編碼bit流數(shù)據(jù),按照10比特分為一組,每組構(gòu)成一個碼字X;
② 按照逆映射關(guān)系F—1,計算出秘密語音信息B"]的數(shù)值B[i]-F一 式U0)
③ 將B[z']數(shù)值按照解密算法還原出原始秘密語音編碼bit流,將其按照原始秘密語音格式排列輸出,提供給秘密語音解碼器解碼,合成輸出秘密語音。
(3) 測試結(jié)果及分析
在載體語音編碼為8 kbps的G729語音壓縮編碼時,G/729語音編碼隱藏算法可以達到800bps的信息嵌入容量,能夠滿足實現(xiàn)一路秘密語音碼流在載體語音碼流中實時隱藏嵌入所需容量,并且隱藏效果較好。
權(quán)利要求
1、一種語音編碼隱藏和提取算法,采用了信息隱藏的理論和技術(shù),將其應(yīng)用到語音保密通信中。利用該算法可以在正常的基于PSTN(Public Switched Telephone Network)、VoIP(Voice Over Internet Protocol)、移動通信GSM/CDMA和視頻會議通信網(wǎng)絡(luò)中建立了一條閾下(Subliminal)信道,用于秘密信息的隱蔽通信,即實現(xiàn)保密通信的功能。語音編碼隱藏和提取算法將綜合器(Synthesizer)引入到編碼器(Coder)中,使它與分析器(Analyzer)相結(jié)合,在編碼器中產(chǎn)生與譯碼器中完全一致的合成語音,再將此合成語音與原始語音相比較,并根據(jù)一定的誤差準(zhǔn)則來調(diào)整計算各個參數(shù),以使二者之間的誤差達到最小。
2、 信息隱藏就是將一個秘密信息M嵌入到主數(shù)據(jù)集(Host data set) ^得到一個包含有隱藏信息的新數(shù)據(jù)集X。因此,數(shù)據(jù)集X會被經(jīng)常進行數(shù)據(jù)處理操作(攻擊),這些數(shù)據(jù)處理操作試圖從數(shù)據(jù)集I提取有關(guān)信息M的蛛絲馬跡,將它刪除。因此,信息隱藏系統(tǒng)必須滿足兩個基本的要求(1) 通常指作為透明性(Transparency),或順從性(Unobtrusiveness)。這個要求是指按照一種適當(dāng)?shù)臏y試標(biāo)準(zhǔn),數(shù)據(jù)集i與X應(yīng)該十分相似;(2) 魯棒性或穩(wěn)健性(Robustness)。要求無論對數(shù)據(jù)集^進行何種形式和一定級別的數(shù)據(jù)處理,隱 藏信息必須保留。通常,對一個攻擊方故意引入的失真是有一定限制的。
3、 一個完整的基于通信問題的信息隱藏系統(tǒng)主要包括信息隱藏(嵌入)過程和提取(檢測)過程兩 個部分。語音信號中存在著大量的冗余信息,這是低碼率語音編碼得以實現(xiàn)的前提,語音編碼的任務(wù)就是 最大限度的除去這種冗余。在所有傳統(tǒng)的基于線性預(yù)測編碼LPC (Linear Predictive Coding)的分析一合成 ABS (Analysis勿-Synthesis)編碼方法中,所有的參數(shù)都是逐幀傳送的。本發(fā)明就是利用基于線性預(yù)測編 碼LPC參數(shù)的分析一合成ABS編碼方法中的這兩個缺點,針對以下的關(guān)鍵問題進行研究(1) 利用濁音語音段的聲道特征變化緩慢的特點,找到相近幀之間的相似性(Similarity);(2) 利用各語音段的不同特性,對LPC系數(shù)分類,針對不同類型的LPC系數(shù)分別進行矢量量化,構(gòu) 成不同的矢量量化碼本,以減小存儲量和搜索量,并提高量化效率。
4、 基于濾波器相似度的語音LPC隱藏和提取算法的研究工作主要包括(1) 提出了濾波器相似度(FilterSimilarity)的概念,并給出了濾波器相似應(yīng)的定義及定量計算方法。 濾波器的相似度可以比較好的表現(xiàn)不同幀的語音信號間的相似性。對于兩個相似度較大的濾波器,用相同 的激勵信號去激勵它們的時候,所得的輸出波形也很相似。而對于聲音特征變化比較緩慢的濁音發(fā)音,其 相近鄰幀波形的變化主要反映在激勵信號上,往往它們的合成濾波器有較大的相似性;(2) 提出了基于濾波器相似度的語音LPC隱藏和提取算法。在當(dāng)前幀語音信號的LPC合成濾波器與 前面相近的某一幀語音信號的LPC合成濾波器的相似度大于某一閾值的時候,可以不用傳送該幀的LPC 系數(shù),而只傳激勵信號參數(shù)。在解碼的時候利用前面的那幀語音信號的LPC濾波器替代該幀語音信號的 LPC濾波器。合成的語音與用該幀語音的LPC合成濾波器合成的語音信號僅有很小的差別,對再生語音 的質(zhì)量不會帶來較大的影響,但是可以大大的降低碼率。語音編碼隱藏和提取算法的原理就是根據(jù)這兩個 關(guān)鍵問題的解決來隱藏秘密語音信息,在不改變碼速率的情況下保證了語音質(zhì)量。
5、 語音編碼隱藏和提取算法在保證語音質(zhì)量的前提下,可以針對不同的語音編碼算法進行秘密語音 信息隱藏,例如幾種比較典型的語音壓縮編碼標(biāo)準(zhǔn)G.721(ADPCM)、 GSM(RPE-LTP)、 G.728(LD-CELP)和 G729(CS-ACELP)等標(biāo)準(zhǔn)。其中,秘密語音以MELP2.4kbps壓縮編碼算法為實驗標(biāo)準(zhǔn)。具有適應(yīng)性較廣、 嵌入量較大和隱藏效果較好的特點。
全文摘要
本發(fā)明是以語音媒體為載體對象的語音信息隱藏和提取,利用信息隱藏具有的信息隱匿特性,結(jié)合語音編碼的特點,設(shè)計秘密語音信息隱藏和提取算法,建立語音閾下信道,實現(xiàn)一種新型的實時語音保密通信方式。本發(fā)明的內(nèi)容(1)提出了濾波器相似度(Filter Similarity)的概念,并給出了濾波器相似應(yīng)的定義及定量計算方法,用于確定用于隱藏秘密語音信息的語音編碼LPC參數(shù);(2)提出了基于濾波器相似度的語音LPC隱藏和提取算法,將秘密語音嵌入到載體語音中后,載體語音的質(zhì)量沒有明顯下降,而且嵌入的秘密語音信息是不可檢測的。在保證通信速率的情況下,該算法能提供足夠的隱藏容量保證通信語音的連續(xù)性,可以大大的降低碼率。
文檔編號H04L9/00GK101577605SQ20081009419
公開日2009年11月11日 申請日期2008年5月8日 優(yōu)先權(quán)日2008年5月8日
發(fā)明者吳志軍, 偉 楊 申請人:吳志軍;楊 偉