孙 震,张江鑫
(浙江工业大学信息工程学院,浙江杭州310023)
线性预测技术是如今一种强有力的分析技术,已经在很多语音处理领域中得到了应用,如语音编码、语音合成和语音识别等。G.729[1]是当前较新的一种低码率语音编码标准,广泛应用在IP电话、无线通信、数字卫星系统等领域,是当今的研究热点之一[2]。本文首先介绍线性预测技术的原理,然后以G.729为例研究了不同的阶数对编码系统的影响,最后对阶数的选择进行了总结。
线性预测技术的基本原理是通过使实际语音序列跟线性预测序列之间的最小均方误差趋于无穷小,得到一组最佳的线性预测系数,从而达到线性预测的目的。
其基本过程:在序列s(n)中任取一个时刻n,假设n之前P个样点上的语音样值s(n-1),s(n-2),…,s(n-P)为已知,而时刻n的语音样值s(n)未知。现在,用这P个已知的样值取某种线性组合来预测未知的样值。可表示为:
式中,各系数即为预测系数。预测值与真实值之间的误差称为预测误差,用e(n)表示:
G.729编码在经过对语音的信号定标和高通滤波的预处理后即开始进行线性预测分析。
G.729的短期分析和合成滤波器是建立在10阶线性预测滤波器的基础上的,其定义为:
具体过程是每80个样点计算一次开窗语音的自相关系数,通常采用加窗技术,使用30ms非对称窗的自相关方法,其中5ms来自下一帧(预留时间),15ms来自上一帧,当前帧10ms,窗函数为:
语音信号s(n)加窗后变为s'(n),计算其自相关函数为:
最终采用林文孙—杜宾算法[4]得到LP系数ai。
可以看出滤波器阶数在计算LP系数时贯穿始终。接下来的工作是通过实验来对之前的原理在不同的滤波器阶数情况下进行演绎,通过结果的对比分析,进行归纳。
本文采用matlab软件对语音进行处理仿真,读入的语音样本为央视科教频道的台标宣传音乐和一段猫叫声,分别记为CCTV10.wav和CAT.wav,并先将它们编辑为要求的8kHz、16位PCM 信号。
线性预测谱的质量可用均方预测误差(式2)粗略衡量,现将各阶均方误差归一化,其定义为:
式中,N为帧长,ei(k)表示第i帧第k阶预测误差。各阶数的归一化均方误差如表1所示。
表1 不同滤波器阶数下的归一化均方误差一览
从计算的归一化均方误差来看,前4阶随着滤波器阶数的增大均方误差下降非常明显,接下来进入缓慢下降期,从第7阶开始归一化的均方误差区分度变得很差。
先看G.729标准选用的10阶的情况如图1所示,图1中实线为原始语音信号的频谱,虚线为预测系数估计的原始语音信号的频谱,下同。同理,可以得到7~11阶其它的情况,如图2所示。
由图可得,至少到9阶时主要共振峰(频谱与估计谱主要从共振峰的匹配来比较,它是语音频谱中能量相对集中的一些区域,不但是音质的决定因素,而且反映声道的物理特征)才能初步被估计出来。而在可承受的质量损失前提下,结合归一化均方误差的结果,阶数可取9阶。而只要效率允许,调到11阶语音质量便可上升一个档次。因为11阶时归一化均方误差比10阶小,同12阶却是一样的;而估计谱中11阶时不但与原来的几个共振峰更加匹配了,而且质量也提高了甚至会有更多的共振峰体现。而G.729从自身应用出发,最终选择了折中的10阶作为其线性滤波器阶数。
图1 10阶线性预测滤波器估计谱与原始谱的比较(左为CCTV,右为CAT)
图2 7、8、9、11阶线性滤波器估计谱与原始谱的比较(上为CCTV,下为CAT)
通过对以上实验结果进行对比分析后便可以得到线性预测滤波器阶数的选择两个原则。
(1)最小均方误差原则。指选择阶数并确定系数时要时刻以使(归一化)均方误差最小为标准。
这是总的原则。一般模型的阶数P不能预先确定,按此原则,它在初期总能随P的增大而减小,而当P增大到一定值时,它便减小得越来越不明显直到不再减小,此时的P便是最佳理论预测阶数。
(2)均衡原则。指在最小均方误差原则条件下,充分考虑系统对语音质量、传输速率、编码效率、抗误码能力的要求和硬件平台的限制等实际进行的对滤波器阶数的综合性选择。
实际中,不可能撇开一切无所顾忌地追求单一的参数指标。一方面受制于拥有的硬件平台,以G.729A(G.729的简化版)为例,其算法复杂度很高(10.5MIPS),即使用高效的Blackfin-BF533 DSP处理芯片[5](顶峰时可达1.2GMIPS),处理一帧语音也要10.5/1 200=8.95ms,勉强可以实时处理一路语音(编码帧长度10ms),更不用说用一般的DSP或实现更多功能;另一方面,这些参量相互制约相互联系,如G.729中,虽然其编码速率可降到8kbps,但是是以牺牲语音质量为代价的,选择10阶滤波器,是充分考虑到通信过程中带宽不足的矛盾及应用中对语音质量的容忍度,局部的牺牲成为最终整体的胜利。滤波器阶数从更底层配合着实际中这些参量和硬件平台,它的选择至关重要。
本文以G.729为例对线性预测技术中的滤波器阶数对编码系统的影响进行了分析研究,通过研究阶数对归一化均方误差和估计谱两方面的影响,得出至少在9阶及以上才能满足语音重构的基本要求。最后,总结出对线性滤波器阶数的选择的最小化均方误差和均衡两个原则。
[1]ITU-T.RecommendationG.729:Coding of Speech at 8kbit/s Using Conjugate-Structure Algebraic Code-ExcitedLinear Prediction(CS-ACELP)[S].2007.
[2]鄂慧颖.G.729语音编码算法的研究[D].西安:西安科技大学,2007:1-3.
[3]杨行峻.语音信号数字处理[M].北京:电子工业出版社,1995:66-78.
[4]李昌立,吴善培.数字语音-语音编码实用教程[M].北京:人民邮电出版社,2004:347.
[5]陈峰.Blackfin系列DSP原理与系统设计(第2版)[M].北京:电子工业出版社,2010:1-12.