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