楊 超,黃雋逸,孫 云,徐向旭,趙瑞青
(1.海軍航空大學(xué),山東煙臺264001;2.91604部隊,山東龍口265706;3.92635部隊,山東青島266041)
音頻壓縮已經(jīng)廣泛應(yīng)用于消費類及專業(yè)級的音頻產(chǎn)品中,如激光唱盤(CD)、迷你型光譜(MD)、數(shù)字多用光盤(DVD)、數(shù)字音頻廣播(DAB)以及分布在Internet上的運動圖像專家組(Motion Picture Experts Group、MPEG)第3層音頻編碼標(biāo)準(zhǔn)(MP3)等。隨著通信網(wǎng)絡(luò)的普及,音頻編碼又大量應(yīng)用在互聯(lián)網(wǎng)應(yīng)用、遠(yuǎn)程醫(yī)療和錄放系統(tǒng)中。在現(xiàn)代通信系統(tǒng)中,隨著帶寬和存儲容量需求的不斷增長[1-3],音頻編碼研究也越來越受到重視,而集成電路和信號處理技術(shù)的發(fā)展,使得實現(xiàn)高效的信源編碼技術(shù)成為可能。目前聲音編碼技術(shù)分為3類:波形編碼、參數(shù)編碼以及混合編碼[4-5]。傳統(tǒng)的音頻編碼標(biāo)準(zhǔn)通過各種降低延時和碼率的技術(shù),提高其對聲音的編碼效率[6-8]。當(dāng)前最新的低延時音頻編碼格式Opus對互聯(lián)網(wǎng)上的交互式聲音和音樂傳輸來說是最佳的選擇,同時也用于存儲和流媒體應(yīng)用。它的采樣率從8~48 kHz,它的碼率范圍為6~510 kb/s,算法時延在2.5~30 ms之間。一些新的音頻編碼算法也在不斷涌現(xiàn),例如一種將預(yù)測編碼[9]、基于SOM自組織神經(jīng)網(wǎng)絡(luò)[10-14]的矢量編碼[15-17]及Huffman[18]編碼相結(jié)合的音頻編碼算法[19](以下簡稱聯(lián)合編碼算法)。在保證聲音質(zhì)量的前提下,該編碼方法的碼率小于MEPG-1 Layer3[20]的最低的64 kb/s標(biāo)準(zhǔn)碼率,高維聯(lián)合編碼的碼率更小,最小碼率在音頻編碼格式Opus碼率的范圍內(nèi),且接近Opus碼率的下限。但是,聯(lián)合編碼算法中,需要從每一段待編碼的聲音信號中用SOM的自組織神經(jīng)網(wǎng)絡(luò)提取相應(yīng)的專用碼書,為了進(jìn)一步減小聯(lián)合編碼算法的復(fù)雜度,本文提出在聯(lián)合編碼中,用通用碼書取代專用碼書的嘗試。
隨著聯(lián)合編碼算法中的碼書長度的增加,碼率會增加;隨著量化矢量維數(shù)的增加,碼率會下降。圖1是碼書長度為64的8維聯(lián)合編碼程序流程圖[21]。
圖1 碼書長度為64的8維聯(lián)合編碼程序流程圖Fig.1 Flow chart of 8 dimensional joint coding program with codebook length of 64
圖1是碼書長度為64的8維聯(lián)合編碼程序流程圖。首先,將1列聲音采樣信號按照順序轉(zhuǎn)換成8列,即將原序號為(8n+1)的數(shù)據(jù)組成為新的第i列,其中n取值為自然數(shù),i取值為1~8的整數(shù)。每列信號分別按照線性預(yù)測編碼原理各自進(jìn)行預(yù)測,計算當(dāng)前的預(yù)測值和誤差值,共得到8個誤差值,將該8個誤差值組成一組8維矢量,進(jìn)行基于SOM自組織神經(jīng)網(wǎng)絡(luò)的碼書長度為64的8維矢量編碼;然后,進(jìn)行Human編碼;譯碼過程與編碼過程相反;最后,對譯碼數(shù)據(jù)用切比雪夫Ⅰ型濾波器濾波。
通用碼書較專用碼書實時性強。圖1的聯(lián)合編碼算法中,碼書是以錄入的聲音信號為基礎(chǔ),通過神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練后得到的一個能將該錄入的聲音進(jìn)行預(yù)測編碼時的平均失真降為最小的包含64個碼矢量的碼書,在其他條件不變的條件下,它使錄入的聲音的譯碼恢復(fù)聲音質(zhì)量達(dá)到最好,其缺點是,隨著圖1中錄入的聲音的不同,相應(yīng)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練后得到的碼書不同,每一個聲音編碼,都需要進(jìn)行一次神經(jīng)網(wǎng)絡(luò)訓(xùn)練,也因此稱為專用碼書。所謂專用碼書,就是只適合參與訓(xùn)練的那一段特定音頻樣本的碼書。與此對應(yīng),所謂通用碼書,就是適合普遍的不同音頻信號的碼書,使用通用碼書編碼,對不同的聲音可以使用同一個碼書,省去了神經(jīng)網(wǎng)絡(luò)訓(xùn)練碼書的時間,從而可減少了編碼時間,提高編碼的實時性。
研究通用碼書的聯(lián)合編碼算法時,需要從更廣泛的具有代表性的音頻信號中提取神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本,并計算譯碼結(jié)果,根據(jù)譯碼聲音質(zhì)量,得到通用碼本的可行性。
本文從日常生活中常出現(xiàn)的聲音信號,作為提取通用碼書的樣本信號;試驗證明,專用碼書條件下,碼書長度為64的8維聯(lián)合編碼具有接近算法最小極限的碼率。因此,本文選擇了碼書長度為64的8維聯(lián)合編碼作為通用碼書的研究模式。具體方法是,將音頻標(biāo)準(zhǔn)庫里的“雷聲”、“警報”、“音樂”“心跳”、“鳥鳴”和“古箏”6個樣本,6段聲音信號接續(xù)組合成一段較長的聲音信號,作為圖1中的“錄入聲音數(shù)據(jù)”,按圖1的流程得到一組8維誤差數(shù)據(jù),并以此為樣本進(jìn)行基于自組織神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,得到的結(jié)果即為通用碼書。為了研究通用碼本的性能,從標(biāo)準(zhǔn)音頻庫選取“水滴”和“提示音”2個聲音段作為研究樣本,分別對他們進(jìn)行專用碼書和通用碼書條件下的聯(lián)合編碼。
表1是通用碼書和專用碼書研究結(jié)果。其中,碼書建立源的”從3段聲音信號提取碼書”和”從6段聲音信號提取碼書”分別指從將音頻標(biāo)準(zhǔn)庫里的“雷聲”、“警報”、“音樂”聲音信號中提取碼書和從音頻標(biāo)準(zhǔn)庫里的“雷聲”、“警報”、“音樂”“心跳”、“鳥鳴”和“古箏”6個樣本提取碼書。
表1 通用碼書和專用碼書條件下的聯(lián)合編碼研究結(jié)果Tab.1 Research results of joint coding under universal codebook and special codebook
專業(yè)碼書是分別從對應(yīng)的“水滴”和“提示音”信號提取碼書。
信噪比定義如下:
式(1)中:原始信號的功率為Ps;聲音的噪聲功率Pnx、y分別代表音頻編碼算法的輸入信號和輸出信號;N代表音頻的樣點數(shù)。
壓縮率的計算公式為:
式(2)中:α為壓縮率;r0為編碼后表示聲音信號的二進(jìn)制碼總位數(shù);ri為原始聲音信號的二進(jìn)制碼總位數(shù)。
碼率β的計算公式為:
式(3)中:μ為采樣率;η為平均碼長。
信噪比的計算如式(1)所示。
譯碼端數(shù)字低通濾波器的通帶截止頻率設(shè)為4 kHz,阻帶截止頻率設(shè)為6 kHz,通帶波紋設(shè)為0.3dB,阻帶衰減設(shè)為10dB。采樣率為22 050 Hz。
從表1可見,聲音信號“水滴”在專用碼書條件下的聯(lián)合編碼的譯碼MOS值為2.5、譯碼端信噪比為6.2361,略高于聲音信號“水滴”在通用碼書條件下的聯(lián)合編碼的譯碼MOS值2.1和2.3,和譯碼端信噪比6.1168和6.2132。聲音信號“提示音”在專用碼書條件下的聯(lián)合編碼的譯碼MOS值為2.6、譯碼端信噪比為8.8207,略高于聲音信號“提示音”的通用碼書條件下的聯(lián)合編碼的譯碼MOS值2.3和2.4,和譯碼端信噪比8.5931和8.7134。他們的碼率均為13.230 kb/s。由此可見,當(dāng)聯(lián)合編碼的碼書長度為64,矢量碼本維數(shù)為8時,通用碼本較專用碼本條件下得到的譯碼聲音質(zhì)量略差,但二者都達(dá)到“差”等級,即可以聽懂內(nèi)容,但音色較原始信號略差。從表1可見,聲音信號“提示音”也可以得到相同的結(jié)論。
圖2是聲音信號“水滴”的專用碼書和通用碼書條件下的聯(lián)合編碼計算結(jié)果。由圖2可見,譯碼聲音信號圖2 e)和圖2 f)的時域中的包絡(luò)和圖2 a)中原始聲音信號的包絡(luò)基本一致,所以譯碼聲音信號內(nèi)容沒有變化。由圖2 c)和圖2 d)可見,專用碼書和通用碼書條件下的聯(lián)合編碼譯碼信號的頻譜較圖2 b)原始信號的頻譜在大于6 kHz的高頻部分的分量小(圖中的縱坐標(biāo)|F(f)|表示頻譜幅值),在小于8 kHz的低頻部分的分量基本相等,由于人耳對大于6 kHz的高頻分量不敏感,所以聽到的譯碼聲音較原始聲音內(nèi)容不變,但音色略差。
圖3是聲音信號“提示音”在專用碼書和通用碼書條件下的聯(lián)合編碼計算結(jié)果。用和圖2相同的方法分析圖3,得到和圖2相同的結(jié)論。
圖2 聲音信號“水滴”在專用碼書和通用碼書條件下的聯(lián)合編碼計算結(jié)果Fig.2 Results of joint coding of sound signal“droplet”under special codebook and general codebook conditions
圖3 聲音信號“提示音”在專用碼書和通用碼書條件下的聯(lián)合編碼計算結(jié)果Fig.3 Results of joint coding of sound signal“warning sound”under special codebook and general codebook conditions
當(dāng)前,最新的低延時音頻編碼格式Opus對于互聯(lián)網(wǎng)上的交互式聲音和音樂傳輸來說是最佳的選擇,同時也用于存儲和流媒體應(yīng)用。它的采樣率從8~48 kHz,它的碼率范圍為 6~510 kb/s,算法時延在2.5~30 ms之間。碼書長度為64、量化矢量為8維的通用碼書條件下的聯(lián)合編碼,其采樣率為22.05Hz,碼率達(dá)到13.230 kb/s,采樣率和碼率都在Opus編碼可取的參數(shù)范圍內(nèi),但是,算法較Opus簡單,所以實時性較好,更適合于音頻實時通信。因此,通用碼本的聯(lián)合編碼算法將會有廣泛的應(yīng)用前景。