2.4 kbps MELP标准编码的量化性能优化
2019-03-21赵晓群
黄 蕊,赵晓群
(同济大学 电子与信息工程学院,上海 201804)
0 引言
在保证语音质量的前提下降低编码速率一直是提高低速率语音编码性能的一个重要研究方向。在声学模型中,由于线谱频率(Line Spectral Frequency,LSF)有更为优良的抗干扰性和量化性,所以在低速率语音编码中,通常选取10维LSF参数来表征语音的声道特性,并采用高效率的矢量量化技术对其进行量化[1-2]。2.4 kbps的混合激励线性预测编码(Mixed Excitation Linear Prediction,MELP)一直是低速率语音编码的一个重要研究方向,它可以通过改善量化性能来优化编码性能,其中包括了改进矢量量化器和提高量化码书质量两方面。
语音编码技术经过几十年的发展,为了满足3G移动通信的需求,在1999年8月3GPP公布了基于码激励线性预测(Code Excited Linear Prediction,CELP)的自适应多速率窄带编码(Adaptive Multi Rate-Narrow Band,AMR-NB),其具有4.75~12.2 kbps的8种编码速率,能够更加智能地解决信源和信道编码的速率分配问题,应用至今[3]。为了更充分地利用声道参数的帧间相关性,AMR-NB利用一阶滑动平均(Moving Average,MA)预测模型来预测声道参数之后,对LSF残差矢量进行量化[4]。在非12.2 kbps的7种速率模式下,AMR-NB使用分裂矢量量化,将LSF残差矢量分裂为3、3、4维的3个子矢量进行量化。并且在量化第三个子矢量时5.15 kbps和4.75 kbps共用一套码书。这7种速率的声道参数量化比特分配见表1。
表1 非12.2 kbps的速率模式下声道参数量化比特分配
Tab.1 Non-12.2 kbps rate channel quantization bit allocation
编码速率kbps子矢量一bit子矢量二bit子矢量三bit4.758875.158875.908996.708997.408997.9599910.20899
有许多研究工作从改善矢量量化方法和降低码书尺寸两方面开展研究,达到降低编码速率的目的。一方面,可以在矢量量化时引入帧间相关性[5],例如多帧联合量化[6]和预测量化[7-8]。文献[6]将8个语音帧组成一个超级帧,使用8帧联合的方式对子带声音强度、基音周期、增益进行矢量量化,使用4帧联合的方式对声道参数进行多级矢量量化,将编码速率降低到300 bps。但是,采用多帧联合量化必然会导致码书尺寸增加,算法复杂度增大,而且多帧联合的编码方式无法满足低时延的要求。在这种情况下,预测量化就是一种更好的选择,在AMR-NB标准编码中,采用了复杂度较低的一阶MA预测模型,对量化残差进行分裂矢量量化,量化性能良好。
另一方面,可以通过缩小码书尺寸来进一步降低编码速率。传统的码书训练方法是设计一套训练方案,采用大量的语音得到训练数据进行训练,文献[9]根据胞腔均匀度推导出清音和浊音参与训练的 LSF 参数的数量比,剔除清音中指定数量的非典型 LSF 参数,采用不同类型的语音数据重新训练出码书。此类方法的缺点是训练数据需求量较大导致码书训练成本较高,同时用于训练的语音类型也难以确定。由于AMR-NB编码应用于商业通信中,其开发投入相对较高,可以认为它的矢量量化码书性能优良,适应性强。如何利用一个较为成熟的码书设计一套成本较低的训练方法是本文研究的重点之一。
因此,本文将一阶MA预测模型的分裂矢量量化器应用在2.4 kbps的MELP标准编码中,并且将AMR-NB已有的矢量量化码书作为先验知识,提出一种高斯自干扰的码书训练法,将获得的码书应用到MELP中,从而达到降低编码速率的目的。实验结果表明,2.4 kbps的MELP在优化矢量量化器后性能良好,同时利用高斯自干扰的码书训练法将23 bit码书压缩至17 bit,使得MELP在1.84 kbps上也有较好的语音质量。
1 MELP矢量量化技术优化
1.1 2.4 kbps MELP中的矢量量化器
在2.4 kbps的MELP标准编码中,对10维LSF参数去均值过后,采用三级矢量量化技术对LSF参数进行量化[10]。它使用三个码本逐级量化矢量,首先在第一级码本中粗糙量化去均值后的LSF矢量,然后将第一级的量化残差送入第二级码本进行矢量量化,接着将第二级量化的量化残差送入第三级码本,对比采用相同比特数的全搜索量化方案,其可以达到降低码本存储量和最佳搜索的目的。
1.2 4.75 kbps AMR-NB中的矢量量化器
分裂矢量量化将一个高维矢量划分为若干个低维矢量,然后分别对这若干个低维矢量进行码本设计和量化编码,从而达到降低码书尺寸的目的。4.75 kbps AMR-NB编码在量化10维LSF参数时,将LSF参数划分为3、3、4维的LSF参数,结合一阶MA的预测模型对3个低维参数进行矢量量化。其过程如下[11]:
首先进行去均值操作。
(1)
r(n)=z(n)-p(n),
(2)
(3)
1.3 MELP矢量量化器性能优化
由3GPP所提供的AMR-NB标准编码C代码,在实现量化LSF参数的过程中,于q_plsf_3.tab中将LSF均值f和预测因子α设定为固定10维矢量,见表2。
表2 LSF均值和预测因子取值表
Tab.2 Table of LSF mean and predictor value
维数LSF均值/Hz预测因子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平滑预测操作改进为
(4)
(5)
本文将3GPP 中4.75 kbps的AMR-NB标准编码中的LSF参数量化技术应用于MELP中,改进后的MELP矢量量化器如图1。
图1 改进后的MELP矢量量化器
Fig.1 Improved vector quantization in MELP
2.4 kbps的MELP标准编码矢量量化器改进之后,在去均值的时候不需要对每一帧都计算均值,大大减少了计算量,降低编码时延,并且不对去均值后的LSF参数取绝对值,可以简化译码时LSF参数的恢复。在一阶MA平滑预测中使用10维矢量的预测因子来优化预测模型的性能,能够进一步减小残差矢量的动态范围,达到优化量化效果的目的。
2 码书训练算法的改进
2.1 传统LBG算法
在未知信源分布的码本生成算法中,如果拥有了足够长并且有代表性的训练数据,可以采用LBG算法进行训练获得量化码书。它将训练数据根据最邻近准则进行胞腔划分,划分后再对每一个胞腔计算质心,并把质心作为新胞腔的最佳码字。通过循环迭代计算,当收敛时就得到胞腔的最佳划分和最优码本[12]。这种情况下,训练数据会对生成码书的结果造成较大影响。
准备20 min的(中文)男/女评书,(英文)男/女有声小说的语音数据,并且分别从中截取5 min的语音数据拼接成一个长度为20 min的混合语音。分别从这5段语音中获取53 332个训练数据,通过LBG训练出大小分别为8 bit、8 bit和7 bit的分裂矢量量化码书,其中初始码书通过随机选择得到。对得到的码书采用改进后的MELP编码并且采用平均谱失真测度(Average Spectral Distortion,ASD)的码书的量化性能进行评价,量化结果如表3。
表3 四个码书对不同语音的量化性能
Tab.3 Quantitative performance of four codebooksfor different speech
评价语音训练码书用到的语音中文男声中文女声英文男声英文女声混合语音中文男声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个码书在评价语音与训练码书所用的语音相同时,ASD值最小,此时量化性能最好;而当用来量化其他语音时,其量化效果均显著下降。而把混合语音作为训练语音的码书对中/英文男/女语音数据的量化效果相对均衡,对不同语音的量化适应性强,这是因为混合语音中获得的训练数据涵盖了4种不同类型的语音。
因此,进行码书训练时需要根据语音类型和编码场景等等条件,选择出合适的语音数据来训练,才有可能获得一个性能优良的码书。
2.2 基于高斯自扰动的LBG算法
由2.1节可知为了获得普适性较强的码书,用于训练码书的语音数据需要足够丰富,涵盖各种类型。但是,如果训练语音数据量巨大,那么会出现计算量大、花费时间长的问题。
如果已经拥有性能良好的码书作为先验知识,可以通过将码矢合并或者随机选取来获得尺寸减小的新码书,然而这样并不能充分利用原先用于训练已有码书的训练数据。因此,本文为了逼近原始训练数据的概率密度分布,使码书重新收敛至更佳的状态,提出了基于高斯自扰动的LBG算法。
为了更为便捷高效地训练出普适性强且性能优良的码书,本文所提出的码书训练方法依托于3个假设之上:
1) 已经拥有了一个性能优良的量化码书,它是通过对一个矢量平衡且遍历的信源训练而得。
(6)
(7)
Σi表示X′协方差矩阵,N表示训练数据的维度,l表示矢量分布的概率密度。矢量各维之间相互独立,协方差矩阵Σi可转换为对角矩阵,
(8)
(9)
3) 本文假定当码书训练至最优时,落入每个胞腔的训练数据的数量趋近相同,图2为一个2维矢量训练完成时胞腔与矢量分布关系图。
图2 2维矢量训练完成时胞腔与矢量分布关系
Fig.2 Relationship between cell size and vector distributionwhen 2 dimension vector training is finished
,
(10)
(11)
(12)
3 结果
为了验证矢量量化器和码书训练的性能,准备了四类语音:(中文)男/女评书,(英文)男/女有声小说,各3 min。并且将四类语音合并成一段长为12 min的混合语音。语音均为8 kHz采样,16位PCM编码。用客观语音质量评估PESQ评价语音质量,用平均谱失真测度ASD评价码书性能。
3.1 优化MELP矢量量化器后的结果
改进MELP矢量量化器同时,采用4.75 kbps AMR-NB编码C代码中所提供的三个码书dico1_lsf,dico2_lsf,mr515_3_lsf进行矢量量化。用四种测试语音分别进行原始的和改进后的MELP编码,结果见表4。
表4 原始的和改进后的MELP编码性能
Tab.4 Original and improved MELP encoding performance
测试语音量化方式ASDPESQ中文男声原始1.762.58改进1.732.66中文女声原始1.692.69改进1.682.72英文男声原始1.732.63改进1.692.69英文女声原始1.712.67改进1.702.70混合语音原始1.762.65改进1.722.68
原始的2.4 kbps MELP标准编码中分配25个比特进行量化,而改进的MELP编码中分配23个比特进行LSF参数量化。尽管减少了2个了比特,从表4可以看到改进的MELP编码性能优于原始MELP编码,在中文男生和英文男生的测试中明显优于原始的MELP编码。这归结于两个原因,一方面是改进的矢量量化器性能较优,另一方面是AMR-NB中所提供的码书较为成熟。为了进一步降低编码速率,可以对这些较为成熟的码书进一步缩减码书的尺寸。
3.2 高斯自扰动码书性能
为了寻找出更佳的码书训练方法,本文基于高斯自扰动码书训练法制定了三套不同的方案。在已有的AMR-NB量化码书大小为256的dico_lsf1上随机选取128个码字,后续的训练方案都选用此作为初始码书,采用混合语音进行测试码书性能。
表5 方案一中的码书性能
Tab.5 Codebook performance in 1st scheme
测试语音ASDPESQ混合语音1.692.67
图4 码书重新排序后每个码字的胞腔大小
Fig.4 The cell size of each codeword after codebook reordering
(13)
表6 方案二中的码书性能
Tab.6 Codebook performance in 2nd scheme
测试语音ASDPESQ混合语音1.652.71
方案三:分别截取20 s的(中文)男/女评书,(英文)男/女有声小说四类语音数据,在方案二的基础上,采用这4类少量的语音数据对码书进行LBG训练,获得的码书性能如表7。
表7 方案三中的码书性能
Tab.7 Codebook performance in 3rd scheme
测试语音ASDPESQ混合语音1.592.73
由于初始码书是通过随机选择而获得的,可能会出现所选码字过偏的情况,导致训练后码书性能下降。利用少量的语音数据再训练可以确保码书收敛到更佳的状态,进一步提升量化性能。
3.3 降低MELP的编码速率
利用方案三中的高斯自扰动码书训练方案分别将已有的三套码书尺寸训练至6 bit,6 bit和5 bit。MELP编码器采用8 kHz采样,帧长为25 ms,每帧量化总比特数为46 bit。MELP编码速率由2.4 kbps降至1.84 kbps,性能如表8。
表8 1.84 kbps MELP的编码性能
Tab.8 1.84 kbps MELP coding performance
测试语音ASDPESQ中文男声1.702.69中文女声1.692.70英文男声1.722.68英文女声1.682.71混合语音1.732.66
比较表4和表8,由于码书尺寸缩减了8 bit,1.84 kbps MELP编码的量化性能相比原始2.4 kbps MELP编码有所下降,但是下降的幅度较小,在可接受的范围之内,而也有优于2.4 kbps MELP结果出现,例如中文男声和英文女声,说明高斯自干扰码书训练效果较好;1.84 kbps MELP的编码性能相比原始的2.4 kbps MELP有所提高,说明改进的矢量量化方案有效。因此,在矢量量化器和量化码书改进后,可以实现在保证语音质量的前提下,降低MELP标准编码的编码速率。
4 结论
本文为了在保证语音质量的前提下,降低语音编码的速率。对2.4 kbps的MELP标准编码在矢量量化器和量化码书进行改进。在改进矢量量化器上,采用了4.75 kbps的AMR-NB中的矢量量化技术,结合一阶MA平滑的预测模型,对LSF残差矢量分为3个子矢量进行分裂矢量量化;在优化量化码书性能上,本文针对现有的码书提出了一种高斯自干扰码书训练算法,并提供了三套训练方案,从而获得性能较优的缩小尺寸的码书,实验证明:根据胞腔大小调整扰动方差从而获得训练集,并且在高斯自扰动训练之后,利用少量语音数据进一步收敛的码书性能效果最佳。MELP编码在改进矢量量化器之后,利用高斯自干扰码书训练法将4.75 kbps AMR-NB中23bit的量化码书缩减至17 bit,从而将编码速率降低至1.84 kbps。实验证明:在降低编码速率后,1.84 kbps MELP编码仍有较好的语音质量。
相比多帧联合编码,本文所设计的量化性能方案,能够减小时延,保证低速率编码的实时性。同时,本文所提出的高斯自扰动训练法也适用于其他领域中,在已有较好数据作为先验知识的情况下,进一步对数据进行优化和处理具有一定的参考价值和借鉴意义。