黃 蕊,趙曉群
(同濟(jì)大學(xué) 電子與信息工程學(xué)院,上海 201804)
在保證語(yǔ)音質(zhì)量的前提下降低編碼速率一直是提高低速率語(yǔ)音編碼性能的一個(gè)重要研究方向。在聲學(xué)模型中,由于線譜頻率(Line Spectral Frequency,LSF)有更為優(yōu)良的抗干擾性和量化性,所以在低速率語(yǔ)音編碼中,通常選取10維LSF參數(shù)來(lái)表征語(yǔ)音的聲道特性,并采用高效率的矢量量化技術(shù)對(duì)其進(jìn)行量化[1-2]。2.4 kbps的混合激勵(lì)線性預(yù)測(cè)編碼(Mixed Excitation Linear Prediction,MELP)一直是低速率語(yǔ)音編碼的一個(gè)重要研究方向,它可以通過(guò)改善量化性能來(lái)優(yōu)化編碼性能,其中包括了改進(jìn)矢量量化器和提高量化碼書(shū)質(zhì)量?jī)煞矫妗?/p>
語(yǔ)音編碼技術(shù)經(jīng)過(guò)幾十年的發(fā)展,為了滿足3G移動(dòng)通信的需求,在1999年8月3GPP公布了基于碼激勵(lì)線性預(yù)測(cè)(Code Excited Linear Prediction,CELP)的自適應(yīng)多速率窄帶編碼(Adaptive Multi Rate-Narrow Band,AMR-NB),其具有4.75~12.2 kbps的8種編碼速率,能夠更加智能地解決信源和信道編碼的速率分配問(wèn)題,應(yīng)用至今[3]。為了更充分地利用聲道參數(shù)的幀間相關(guān)性,AMR-NB利用一階滑動(dòng)平均(Moving Average,MA)預(yù)測(cè)模型來(lái)預(yù)測(cè)聲道參數(shù)之后,對(duì)LSF殘差矢量進(jìn)行量化[4]。在非12.2 kbps的7種速率模式下,AMR-NB使用分裂矢量量化,將LSF殘差矢量分裂為3、3、4維的3個(gè)子矢量進(jìn)行量化。并且在量化第三個(gè)子矢量時(shí)5.15 kbps和4.75 kbps共用一套碼書(shū)。這7種速率的聲道參數(shù)量化比特分配見(jiàn)表1。
表1 非12.2 kbps的速率模式下聲道參數(shù)量化比特分配
Tab.1 Non-12.2 kbps rate channel quantization bit allocation
編碼速率kbps子矢量一bit子矢量二bit子矢量三bit4.758875.158875.908996.708997.408997.9599910.20899
有許多研究工作從改善矢量量化方法和降低碼書(shū)尺寸兩方面開(kāi)展研究,達(dá)到降低編碼速率的目的。一方面,可以在矢量量化時(shí)引入幀間相關(guān)性[5],例如多幀聯(lián)合量化[6]和預(yù)測(cè)量化[7-8]。文獻(xiàn)[6]將8個(gè)語(yǔ)音幀組成一個(gè)超級(jí)幀,使用8幀聯(lián)合的方式對(duì)子帶聲音強(qiáng)度、基音周期、增益進(jìn)行矢量量化,使用4幀聯(lián)合的方式對(duì)聲道參數(shù)進(jìn)行多級(jí)矢量量化,將編碼速率降低到300 bps。但是,采用多幀聯(lián)合量化必然會(huì)導(dǎo)致碼書(shū)尺寸增加,算法復(fù)雜度增大,而且多幀聯(lián)合的編碼方式無(wú)法滿足低時(shí)延的要求。在這種情況下,預(yù)測(cè)量化就是一種更好的選擇,在AMR-NB標(biāo)準(zhǔn)編碼中,采用了復(fù)雜度較低的一階MA預(yù)測(cè)模型,對(duì)量化殘差進(jìn)行分裂矢量量化,量化性能良好。
另一方面,可以通過(guò)縮小碼書(shū)尺寸來(lái)進(jìn)一步降低編碼速率。傳統(tǒng)的碼書(shū)訓(xùn)練方法是設(shè)計(jì)一套訓(xùn)練方案,采用大量的語(yǔ)音得到訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,文獻(xiàn)[9]根據(jù)胞腔均勻度推導(dǎo)出清音和濁音參與訓(xùn)練的 LSF 參數(shù)的數(shù)量比,剔除清音中指定數(shù)量的非典型 LSF 參數(shù),采用不同類型的語(yǔ)音數(shù)據(jù)重新訓(xùn)練出碼書(shū)。此類方法的缺點(diǎn)是訓(xùn)練數(shù)據(jù)需求量較大導(dǎo)致碼書(shū)訓(xùn)練成本較高,同時(shí)用于訓(xùn)練的語(yǔ)音類型也難以確定。由于AMR-NB編碼應(yīng)用于商業(yè)通信中,其開(kāi)發(fā)投入相對(duì)較高,可以認(rèn)為它的矢量量化碼書(shū)性能優(yōu)良,適應(yīng)性強(qiáng)。如何利用一個(gè)較為成熟的碼書(shū)設(shè)計(jì)一套成本較低的訓(xùn)練方法是本文研究的重點(diǎn)之一。
因此,本文將一階MA預(yù)測(cè)模型的分裂矢量量化器應(yīng)用在2.4 kbps的MELP標(biāo)準(zhǔn)編碼中,并且將AMR-NB已有的矢量量化碼書(shū)作為先驗(yàn)知識(shí),提出一種高斯自干擾的碼書(shū)訓(xùn)練法,將獲得的碼書(shū)應(yīng)用到MELP中,從而達(dá)到降低編碼速率的目的。實(shí)驗(yàn)結(jié)果表明,2.4 kbps的MELP在優(yōu)化矢量量化器后性能良好,同時(shí)利用高斯自干擾的碼書(shū)訓(xùn)練法將23 bit碼書(shū)壓縮至17 bit,使得MELP在1.84 kbps上也有較好的語(yǔ)音質(zhì)量。
在2.4 kbps的MELP標(biāo)準(zhǔn)編碼中,對(duì)10維LSF參數(shù)去均值過(guò)后,采用三級(jí)矢量量化技術(shù)對(duì)LSF參數(shù)進(jìn)行量化[10]。它使用三個(gè)碼本逐級(jí)量化矢量,首先在第一級(jí)碼本中粗糙量化去均值后的LSF矢量,然后將第一級(jí)的量化殘差送入第二級(jí)碼本進(jìn)行矢量量化,接著將第二級(jí)量化的量化殘差送入第三級(jí)碼本,對(duì)比采用相同比特?cái)?shù)的全搜索量化方案,其可以達(dá)到降低碼本存儲(chǔ)量和最佳搜索的目的。
分裂矢量量化將一個(gè)高維矢量劃分為若干個(gè)低維矢量,然后分別對(duì)這若干個(gè)低維矢量進(jìn)行碼本設(shè)計(jì)和量化編碼,從而達(dá)到降低碼書(shū)尺寸的目的。4.75 kbps AMR-NB編碼在量化10維LSF參數(shù)時(shí),將LSF參數(shù)劃分為3、3、4維的LSF參數(shù),結(jié)合一階MA的預(yù)測(cè)模型對(duì)3個(gè)低維參數(shù)進(jìn)行矢量量化。其過(guò)程如下[11]:
首先進(jìn)行去均值操作。
(1)
r(n)=z(n)-p(n),
(2)
(3)
由3GPP所提供的AMR-NB標(biāo)準(zhǔn)編碼C代碼,在實(shí)現(xiàn)量化LSF參數(shù)的過(guò)程中,于q_plsf_3.tab中將LSF均值f和預(yù)測(cè)因子α設(shè)定為固定10維矢量,見(jiàn)表2。
表2 LSF均值和預(yù)測(cè)因子取值表
Tab.2 Table of LSF mean and predictor value
維數(shù)LSF均值/Hz預(yù)測(cè)因子1377.440.291 6262554.680.328 6443922.360.383 63641 339.840.405 64051 702.150.438 87362 046.390.355 56072 452.880.323 12082 741.460.298 06593 116.700.262 238103 348.140.197 876
去均值和一階MA平滑預(yù)測(cè)操作改進(jìn)為
(4)
(5)
本文將3GPP 中4.75 kbps的AMR-NB標(biāo)準(zhǔn)編碼中的LSF參數(shù)量化技術(shù)應(yīng)用于MELP中,改進(jìn)后的MELP矢量量化器如圖1。
圖1 改進(jìn)后的MELP矢量量化器
Fig.1 Improved vector quantization in MELP
2.4 kbps的MELP標(biāo)準(zhǔn)編碼矢量量化器改進(jìn)之后,在去均值的時(shí)候不需要對(duì)每一幀都計(jì)算均值,大大減少了計(jì)算量,降低編碼時(shí)延,并且不對(duì)去均值后的LSF參數(shù)取絕對(duì)值,可以簡(jiǎn)化譯碼時(shí)LSF參數(shù)的恢復(fù)。在一階MA平滑預(yù)測(cè)中使用10維矢量的預(yù)測(cè)因子來(lái)優(yōu)化預(yù)測(cè)模型的性能,能夠進(jìn)一步減小殘差矢量的動(dòng)態(tài)范圍,達(dá)到優(yōu)化量化效果的目的。
在未知信源分布的碼本生成算法中,如果擁有了足夠長(zhǎng)并且有代表性的訓(xùn)練數(shù)據(jù),可以采用LBG算法進(jìn)行訓(xùn)練獲得量化碼書(shū)。它將訓(xùn)練數(shù)據(jù)根據(jù)最鄰近準(zhǔn)則進(jìn)行胞腔劃分,劃分后再對(duì)每一個(gè)胞腔計(jì)算質(zhì)心,并把質(zhì)心作為新胞腔的最佳碼字。通過(guò)循環(huán)迭代計(jì)算,當(dāng)收斂時(shí)就得到胞腔的最佳劃分和最優(yōu)碼本[12]。這種情況下,訓(xùn)練數(shù)據(jù)會(huì)對(duì)生成碼書(shū)的結(jié)果造成較大影響。
準(zhǔn)備20 min的(中文)男/女評(píng)書(shū),(英文)男/女有聲小說(shuō)的語(yǔ)音數(shù)據(jù),并且分別從中截取5 min的語(yǔ)音數(shù)據(jù)拼接成一個(gè)長(zhǎng)度為20 min的混合語(yǔ)音。分別從這5段語(yǔ)音中獲取53 332個(gè)訓(xùn)練數(shù)據(jù),通過(guò)LBG訓(xùn)練出大小分別為8 bit、8 bit和7 bit的分裂矢量量化碼書(shū),其中初始碼書(shū)通過(guò)隨機(jī)選擇得到。對(duì)得到的碼書(shū)采用改進(jìn)后的MELP編碼并且采用平均譜失真測(cè)度(Average Spectral Distortion,ASD)的碼書(shū)的量化性能進(jìn)行評(píng)價(jià),量化結(jié)果如表3。
表3 四個(gè)碼書(shū)對(duì)不同語(yǔ)音的量化性能
Tab.3 Quantitative performance of four codebooksfor different speech
評(píng)價(jià)語(yǔ)音訓(xùn)練碼書(shū)用到的語(yǔ)音中文男聲中文女聲英文男聲英文女聲混合語(yǔ)音中文男聲1.801.931.891.941.79中文女聲1.931.791.901.881.83英文男聲1.881.991.781.951.83英文女聲1.961.891.981.801.88
從表3中可以看到,由于LBG算法趨向于局部收斂,前4個(gè)碼書(shū)在評(píng)價(jià)語(yǔ)音與訓(xùn)練碼書(shū)所用的語(yǔ)音相同時(shí),ASD值最小,此時(shí)量化性能最好;而當(dāng)用來(lái)量化其他語(yǔ)音時(shí),其量化效果均顯著下降。而把混合語(yǔ)音作為訓(xùn)練語(yǔ)音的碼書(shū)對(duì)中/英文男/女語(yǔ)音數(shù)據(jù)的量化效果相對(duì)均衡,對(duì)不同語(yǔ)音的量化適應(yīng)性強(qiáng),這是因?yàn)榛旌险Z(yǔ)音中獲得的訓(xùn)練數(shù)據(jù)涵蓋了4種不同類型的語(yǔ)音。
因此,進(jìn)行碼書(shū)訓(xùn)練時(shí)需要根據(jù)語(yǔ)音類型和編碼場(chǎng)景等等條件,選擇出合適的語(yǔ)音數(shù)據(jù)來(lái)訓(xùn)練,才有可能獲得一個(gè)性能優(yōu)良的碼書(shū)。
由2.1節(jié)可知為了獲得普適性較強(qiáng)的碼書(shū),用于訓(xùn)練碼書(shū)的語(yǔ)音數(shù)據(jù)需要足夠豐富,涵蓋各種類型。但是,如果訓(xùn)練語(yǔ)音數(shù)據(jù)量巨大,那么會(huì)出現(xiàn)計(jì)算量大、花費(fèi)時(shí)間長(zhǎng)的問(wèn)題。
如果已經(jīng)擁有性能良好的碼書(shū)作為先驗(yàn)知識(shí),可以通過(guò)將碼矢合并或者隨機(jī)選取來(lái)獲得尺寸減小的新碼書(shū),然而這樣并不能充分利用原先用于訓(xùn)練已有碼書(shū)的訓(xùn)練數(shù)據(jù)。因此,本文為了逼近原始訓(xùn)練數(shù)據(jù)的概率密度分布,使碼書(shū)重新收斂至更佳的狀態(tài),提出了基于高斯自擾動(dòng)的LBG算法。
為了更為便捷高效地訓(xùn)練出普適性強(qiáng)且性能優(yōu)良的碼書(shū),本文所提出的碼書(shū)訓(xùn)練方法依托于3個(gè)假設(shè)之上:
1) 已經(jīng)擁有了一個(gè)性能優(yōu)良的量化碼書(shū),它是通過(guò)對(duì)一個(gè)矢量平衡且遍歷的信源訓(xùn)練而得。
(6)
(7)
Σi表示X′協(xié)方差矩陣,N表示訓(xùn)練數(shù)據(jù)的維度,l表示矢量分布的概率密度。矢量各維之間相互獨(dú)立,協(xié)方差矩陣Σi可轉(zhuǎn)換為對(duì)角矩陣,
(8)
(9)
3) 本文假定當(dāng)碼書(shū)訓(xùn)練至最優(yōu)時(shí),落入每個(gè)胞腔的訓(xùn)練數(shù)據(jù)的數(shù)量趨近相同,圖2為一個(gè)2維矢量訓(xùn)練完成時(shí)胞腔與矢量分布關(guān)系圖。
圖2 2維矢量訓(xùn)練完成時(shí)胞腔與矢量分布關(guān)系
Fig.2 Relationship between cell size and vector distributionwhen 2 dimension vector training is finished
,
(10)
(11)
(12)
為了驗(yàn)證矢量量化器和碼書(shū)訓(xùn)練的性能,準(zhǔn)備了四類語(yǔ)音:(中文)男/女評(píng)書(shū),(英文)男/女有聲小說(shuō),各3 min。并且將四類語(yǔ)音合并成一段長(zhǎng)為12 min的混合語(yǔ)音。語(yǔ)音均為8 kHz采樣,16位PCM編碼。用客觀語(yǔ)音質(zhì)量評(píng)估PESQ評(píng)價(jià)語(yǔ)音質(zhì)量,用平均譜失真測(cè)度ASD評(píng)價(jià)碼書(shū)性能。
改進(jìn)MELP矢量量化器同時(shí),采用4.75 kbps AMR-NB編碼C代碼中所提供的三個(gè)碼書(shū)dico1_lsf,dico2_lsf,mr515_3_lsf進(jìn)行矢量量化。用四種測(cè)試語(yǔ)音分別進(jìn)行原始的和改進(jìn)后的MELP編碼,結(jié)果見(jiàn)表4。
表4 原始的和改進(jìn)后的MELP編碼性能
Tab.4 Original and improved MELP encoding performance
測(cè)試語(yǔ)音量化方式ASDPESQ中文男聲原始1.762.58改進(jìn)1.732.66中文女聲原始1.692.69改進(jìn)1.682.72英文男聲原始1.732.63改進(jìn)1.692.69英文女聲原始1.712.67改進(jìn)1.702.70混合語(yǔ)音原始1.762.65改進(jìn)1.722.68
原始的2.4 kbps MELP標(biāo)準(zhǔn)編碼中分配25個(gè)比特進(jìn)行量化,而改進(jìn)的MELP編碼中分配23個(gè)比特進(jìn)行LSF參數(shù)量化。盡管減少了2個(gè)了比特,從表4可以看到改進(jìn)的MELP編碼性能優(yōu)于原始MELP編碼,在中文男生和英文男生的測(cè)試中明顯優(yōu)于原始的MELP編碼。這歸結(jié)于兩個(gè)原因,一方面是改進(jìn)的矢量量化器性能較優(yōu),另一方面是AMR-NB中所提供的碼書(shū)較為成熟。為了進(jìn)一步降低編碼速率,可以對(duì)這些較為成熟的碼書(shū)進(jìn)一步縮減碼書(shū)的尺寸。
為了尋找出更佳的碼書(shū)訓(xùn)練方法,本文基于高斯自擾動(dòng)碼書(shū)訓(xùn)練法制定了三套不同的方案。在已有的AMR-NB量化碼書(shū)大小為256的dico_lsf1上隨機(jī)選取128個(gè)碼字,后續(xù)的訓(xùn)練方案都選用此作為初始碼書(shū),采用混合語(yǔ)音進(jìn)行測(cè)試碼書(shū)性能。
表5 方案一中的碼書(shū)性能
Tab.5 Codebook performance in 1st scheme
測(cè)試語(yǔ)音ASDPESQ混合語(yǔ)音1.692.67
圖4 碼書(shū)重新排序后每個(gè)碼字的胞腔大小
Fig.4 The cell size of each codeword after codebook reordering
(13)
表6 方案二中的碼書(shū)性能
Tab.6 Codebook performance in 2nd scheme
測(cè)試語(yǔ)音ASDPESQ混合語(yǔ)音1.652.71
方案三:分別截取20 s的(中文)男/女評(píng)書(shū),(英文)男/女有聲小說(shuō)四類語(yǔ)音數(shù)據(jù),在方案二的基礎(chǔ)上,采用這4類少量的語(yǔ)音數(shù)據(jù)對(duì)碼書(shū)進(jìn)行LBG訓(xùn)練,獲得的碼書(shū)性能如表7。
表7 方案三中的碼書(shū)性能
Tab.7 Codebook performance in 3rd scheme
測(cè)試語(yǔ)音ASDPESQ混合語(yǔ)音1.592.73
由于初始碼書(shū)是通過(guò)隨機(jī)選擇而獲得的,可能會(huì)出現(xiàn)所選碼字過(guò)偏的情況,導(dǎo)致訓(xùn)練后碼書(shū)性能下降。利用少量的語(yǔ)音數(shù)據(jù)再訓(xùn)練可以確保碼書(shū)收斂到更佳的狀態(tài),進(jìn)一步提升量化性能。
利用方案三中的高斯自擾動(dòng)碼書(shū)訓(xùn)練方案分別將已有的三套碼書(shū)尺寸訓(xùn)練至6 bit,6 bit和5 bit。MELP編碼器采用8 kHz采樣,幀長(zhǎng)為25 ms,每幀量化總比特?cái)?shù)為46 bit。MELP編碼速率由2.4 kbps降至1.84 kbps,性能如表8。
表8 1.84 kbps MELP的編碼性能
Tab.8 1.84 kbps MELP coding performance
測(cè)試語(yǔ)音ASDPESQ中文男聲1.702.69中文女聲1.692.70英文男聲1.722.68英文女聲1.682.71混合語(yǔ)音1.732.66
比較表4和表8,由于碼書(shū)尺寸縮減了8 bit,1.84 kbps MELP編碼的量化性能相比原始2.4 kbps MELP編碼有所下降,但是下降的幅度較小,在可接受的范圍之內(nèi),而也有優(yōu)于2.4 kbps MELP結(jié)果出現(xiàn),例如中文男聲和英文女聲,說(shuō)明高斯自干擾碼書(shū)訓(xùn)練效果較好;1.84 kbps MELP的編碼性能相比原始的2.4 kbps MELP有所提高,說(shuō)明改進(jìn)的矢量量化方案有效。因此,在矢量量化器和量化碼書(shū)改進(jìn)后,可以實(shí)現(xiàn)在保證語(yǔ)音質(zhì)量的前提下,降低MELP標(biāo)準(zhǔn)編碼的編碼速率。
本文為了在保證語(yǔ)音質(zhì)量的前提下,降低語(yǔ)音編碼的速率。對(duì)2.4 kbps的MELP標(biāo)準(zhǔn)編碼在矢量量化器和量化碼書(shū)進(jìn)行改進(jìn)。在改進(jìn)矢量量化器上,采用了4.75 kbps的AMR-NB中的矢量量化技術(shù),結(jié)合一階MA平滑的預(yù)測(cè)模型,對(duì)LSF殘差矢量分為3個(gè)子矢量進(jìn)行分裂矢量量化;在優(yōu)化量化碼書(shū)性能上,本文針對(duì)現(xiàn)有的碼書(shū)提出了一種高斯自干擾碼書(shū)訓(xùn)練算法,并提供了三套訓(xùn)練方案,從而獲得性能較優(yōu)的縮小尺寸的碼書(shū),實(shí)驗(yàn)證明:根據(jù)胞腔大小調(diào)整擾動(dòng)方差從而獲得訓(xùn)練集,并且在高斯自擾動(dòng)訓(xùn)練之后,利用少量語(yǔ)音數(shù)據(jù)進(jìn)一步收斂的碼書(shū)性能效果最佳。MELP編碼在改進(jìn)矢量量化器之后,利用高斯自干擾碼書(shū)訓(xùn)練法將4.75 kbps AMR-NB中23bit的量化碼書(shū)縮減至17 bit,從而將編碼速率降低至1.84 kbps。實(shí)驗(yàn)證明:在降低編碼速率后,1.84 kbps MELP編碼仍有較好的語(yǔ)音質(zhì)量。
相比多幀聯(lián)合編碼,本文所設(shè)計(jì)的量化性能方案,能夠減小時(shí)延,保證低速率編碼的實(shí)時(shí)性。同時(shí),本文所提出的高斯自擾動(dòng)訓(xùn)練法也適用于其他領(lǐng)域中,在已有較好數(shù)據(jù)作為先驗(yàn)知識(shí)的情況下,進(jìn)一步對(duì)數(shù)據(jù)進(jìn)行優(yōu)化和處理具有一定的參考價(jià)值和借鑒意義。