摘要:从语音编码技术中常用的三种编码方法入手,由浅入深地引出了IP网络电话中常用的几种语音压缩编码方法,并对之进行了性能分析和比较。
关键词:IP网络电话 语音压缩编码 线性预测(LP) 合成-分析法
随着互联网的迅速发展,最近几年出现了一种在互联网上提供电话服务的新业务——IP电话业务。一次IP电话呼叫的成本为本地市话费、IP网络使用费以及远端市话费,与传统长途电话昂贵的长途通信费相比,可以极大地降低用户的通信费用。正是由于这种极大的价格优势,使得它一出现便引起了世人充分的注意,同时互联网的蓬勃发展,有效地利用现有的网络资源,来缓解现有通信网的紧张局面,也是促成这项新技术迅速发展的另一原因。从另一个角度来看,互联网的巨大成功,必将使IP成为未来信息网络的支柱技术,以IP为核心的分组化和以移动通信为核心的无线化已成为电信网络演进的主流方向。其于TCP/IP的网络技术不但无可置疑地成为数据领域的主导技术,而且已经开始进入电信领域,其突破口就是电话业务。IP网络电话的成功开发和应用,预示了以IP为基础的新一代信息网络的出现。积极地探索和跟踪这项新技术无疑是一项十分有必要和有意义的工作。
IP网络电话是一项涉及计算机网络、信令协议、数字信号处理等多个领域的综合性技术,它具有价格低廉、可以灵活地提供各种增值业务、有利于企业建立高效综合服务内部网、有利于运营商开拓新的市场、有助于和IP网络新技术的融合、促进网络技术的发展等独特的优势。其中价格低廉是IP电话能够进入市场的首要因素,其根本原因是IP电话均采用语音分组技术、语音压缩编码和统计复用,带宽利用率高,完成一次通信所需的成本大幅度降低。IP网络电话中的语音处理主要需要解决两个问题,一是在保证一定话音质量的前提下尽可能地降低编码比特率,二是在IP网络环境下保证一定的通话质量。前者正是我们刚刚提到的语音编码技术。
1 语音编码技术的分类
语音处理的研究是和通信技术的发展服密切相关的。人们为提高通信系统的效率而研究语音编码方法,为满足低码率的通信要求,而研究语音分析合成系统——声码器。研究语音编码就是要解决传输速率和语音质量的矛盾。最早的标准化语音编码系统是速率为64kb/s的PCM波形编码器。到二十世纪90年代中期,速率为4ks/s~8kb/s的波形与参数混合编码器,在语音质量上已逼近前者的水平且已达到实用化阶段。根据语音编码的发展过程,我们把该技术归纳为以下三类:
(1)波形编码(或称为非参数编码)
波形编码方式是能够忠实地表现波形的编码方式。语音信号的波形编码力图使重建的语音波形保持原语音信号的波形状态。这类编码器通常是将语音信号作为一般的波形信号来处理,比如:脉冲编码调制(PCM)、自适应增量调制(ADM或ΔM编码)、自适应差分编码(ADPCM)、自适应预测编码(APC)、自适应子带编码(ASBC)、自适应变换编码(ATC)等都属于这类编码器。以上几种波形编码方式分别在64kb/s~16kb/s的速率上能给出高的编码质量。当速率进一步降低时,其性能会下降较快。由于这类编码器通常将语音信号作为一般的波形信号来处理,所以它具有适应能力强、话音质量好、抗噪抗误码的能力强等特点,但所需的编码速率高,其中64kb/s PCM的语音质量成为一个编码质量的参照标准。
(2)参数编码(或称为模型编码或声码化编码)
参数编码是根据声音的形成模型,把声音变换成参数的编码方式。其基本方法是通过对语音信号特征参数的提取及编码,力图使重建语音信号具有尽可能的可懂性,即保持原语音的语义。而重建的信号的波形同原语音信号的波形可能会有相当大的差别。参数编码的典型例子语音信号的线性预测编码(LPC)已被公认为是目前参数编码中最有效的方法,它能够在2.4kb/s的低比特速率下获得清晰、可懂的合成音。并且易于硬件实现。这种方法的优点是不但能极为精确地估计参数,还在于它的计算速度比较快。另外多带激励(MBE)编码,余弦变换编码(STC)均属参数编码。
由于参数编码是保护语声模型,重建清晰可识别的语声,而不注重波形的拟合,所以这类编码技术实现的是合成语声质量下的低速或极低速的编码。参数编码的优点是:编码速率低,编码速率通常小于4.8kb/s,可以低至600b/s至2.4kb/s。缺点是:合成语音质量差,特别是自然度较低,连熟人之间都不一定能听出讲话人是谁;另外,这类编码器对讲话环境噪声较敏感,需要安静的讲话环境才能给出较高的可懂度,且时延大。
(3)混合编码
混合编码是将波形编码与参数编码结合而产生的一种编码方式。使语音编码技术有了突破性的进展。其中提出了一些非常有效的处理方法,产生了新一代的参数编码算法,构成了新一代的声码器。
混合编码结合了以上两种编码方式的优点,采用线性技术构成声道模型,不只传输预测参数和清浊音信息,而是将预测误差信息和预测参数同时传输,在接收端构成新的激励激去激励预测参数构成的合成滤波器,使得合成滤波器输出的信号波形与原始语声信号的波形最大程序的拟合,从而获得自然度较高的语声。这种编码技术的关键是:如何高效地传输预测误差信息。依据对激励信息的不同处理,这类编码主要有:多脉冲线性预测编码(MPLPC)、规则脉冲激励线性预测编码(RPELPC)、码激励线性预测编码(CELPC)、低时延的码激励线性预测编码(LD-CELPC)。
混合编码克服了原有波形编码器与声码器的弱点,而结合了它们的优点,在4~16kb/s速率上能够得到高质量合成语音。在本质上具有波形编码的优点,有一定抗噪和抗误码的性能,但时延较大。
2 语音压缩编码的原理
IP网络电话中的语音处理需要解决的两个问题之一是在保证一定话音质量的前提下,尽可能降低编码比特率。这主要依靠语音编码技术来解决。IP网络电话宜使用ITU-T定义的低比特率编码标准,其比特率为5.3~16kbit/s,均为低复杂度编码算法,话音分组长度在30ms以下,话音质量较好。从前面列举的几种编码方式也可看出,同一段语音信号,采用不同的编码方式,其编码后的比特率各不相同。那么为什么我们能够对语音信号进行压缩编码从而达到降低语音信号的比特率呢?
(1)利用了语音信号的相关性
语音信源是相关信源,因此经过采样和量化的信号之间还有很强的相关性,为了降低编码速率,人们就希望尽可能多地去除语音信号之间的相关性。线性预测编码技术(LPC)就是一种用来去除语音信号之间相关性的常用技术。语音信号中存在两种类型的相关性:其一是在样点之间短时相关性。语音信号在某些短时段中呈现出随机噪声的特性,在另一些短时段中,则呈现出周期信号的特性,其它一些是二者的混合。简而言之,语音信号的特征是随时间而变化的,只是在一短段时间中,语音信号才保持相对稳定一致的特征,也就是语音信号的短时平稳性。其二是相邻基音周期之间存在的长时相关性。由于语音信号中的短时相关性和长时相关性很强,通过减弱这些相关性,使语音信号之间相关性降低,然后再进行编码,这样就可以实现语音压缩编码,降低比特率。例如差分脉冲编码(DPCM)就是利用了语音信号的相关性来降低比特率的。所谓语音信号的相关性,就是相邻样点之差很小,其包含的信息量远小于抽样值本身,对差值编码而不是对抽样值本身进行编码,这样所需的比特率必然下降,这就是DPCM能够降低比特率的原因。
(2)利用了人耳的听觉特性
利用人耳的掩蔽效应也可以进行语音压缩编码,降低比特率。两个响度不等的声音作用于人耳时,则响度较高的频率成份的存在会影响到对响度较低的频率成份的感觉,使其变得不易被察觉,这就是我们所说的掩蔽效应。在语音频谱中,能量较高的频段即共振峰处的噪声相对于能量较低频段的噪声而言不易被感知。因此在度量原始语音与合成语音之间的误差时可计入这一因素。在语音能量高的频段,允许二者的误差大一些,从而进一步降低编码比特率。为此引入一个频域感觉加权滤波器W(f)来计算二者的误差。感觉加权滤波器的频率响应中的峰、谷值正好与语音谱中相反。所以感觉加权滤波器的作用就是使实际误差信号的谱不再平坦,而是有着与语音信号谱具有相似的包络形状。这就使误差度量的优化过程与感觉上的共振峰对误差的掩蔽效应相吻合,产生较好的主观听觉效果。
(3)线性预测分析-合成编码方法
IP网络电话中所使用的语音信号压缩编码方式大多数是基于合成-分析法的线性预测编码(AbS-LPC)方法,这是一种混合编码方法。线性预测技术就是用过去样点的线性组合来预测当前样点。假如用s(n)代表原始语音信号,用线性预测的方法求出预测器的系统ai,构成线性预测逆滤波器,s(n)通过该滤波器后得到了去除短时相关性的语音信号。再将其进行基音预测,建立基音逆滤波器,去除它的长时相关性后,就可得到最后的残差信号。残差信号是完全随机的、不可预测的部分。根据速率的不同要求,可对残差信号采用不同的量化方法,从而得到不同的编码速率,让量化后的残差信号作为激励信号依次通过基音滤波器与线性预测滤波器后,便得到了合成语音信号,见图1。
编码的过程就是不断改变模型参数,使模型更好地适应原始语音信号。为此又引入了合成分析的概念。同时,利用人耳的掩蔽效应,引入了感觉加权滤波器。综合以上两方面,可以得到图2所示的线性预测分析-合成编码的方框图。
合成-分析法的基本原理可以概括如下:假定一原理信号可以用一个模型来表示,这个模型又是由一组参数来决定的,随着这组参数的变化,模型所产生的合成信号也就是一样,原始信号与合成信号之间的误差也随之而变化。为了使模型参数能更好地适应原始信号,可以规定一个误差准则:当误差越小,模型合成信号就和原始信号发越接近。这样总线找到一组参数,使误差最小,此时这组参数决定的模型就可以用时,一般在编码端配备编码和本地解码两个部分,配备本地解码的目的是完成合成功能,以便计算原始语音信号与合成语音信号之间的误差值。为了获得较好的语音效果,在分析合成语音与原始语音的误差时,经常采用感觉加权均方差技术,即将合成语音与原始误差最小的一组语音参数。原理图2中之所以采用反馈控制,是为了求出最佳模型参数,使合成语音与原始语音在某种准确则下最为接近。
基于合成-分析法的线性预测编码的过程实质上就是不断地改变模型参数,使模型更好地适应原始语音信号的过程。原始语音信号被分成帧,帧的长度和模型参数决定了编码速率。
3 IP网络电话中常用的几种语音压缩编码算法的性能分析
IP网络电话应用主要使用ITU定义的三个标准:G.723.1、G.728、G.729。它们采用的都是线性预测分析-合成编码和码本激励矢量量化技术,即混合编码的方法。
3.1 G.723协议
G.723协议是一个双速率语音编码建议,其两种速率分别是5.3kb/s和6.3kb/s。此协议是一个数字传输系统概况协议,适用于低速率多媒体服务中语音或音频信号的压缩算法。它作为完整的H.324系列标准的一部分,是其中语音编码建议,主要配合低速率图像编码H.263标准。在IP电话网关中,G.723协议被用来实现实时语音编码解码处理。
G.723.1协议的编解码算法中两种速率的编解码基本原理是一样的,只是激励信号的量化方法有差别。对高速率(6.3kbit/s)编码器,其激励信号采用多脉冲最大似然量化(MP-MLQ)法进行量化,对低速率(5.3kbit/s)编码器,其激励信号采用代数码激码线性预测(ACELP)法量化。
编码过程是首先选速率为kbit/s的PCM语音信号转化成均匀量化的PCM信号,然后把输入语音信号的每240个样点组成一个帖,也就是30ms的帧长。每个帧通过高通滤波器后再分为4个子帧。对于每个子帧,计算出10阶线性预测滤波器的系数。为了适于矢量量化,把预测系数转化为线性频谱对(LSP-Line Spectrum Pair),然后进行矢量量化。量化前的系数构成短时感觉加权滤波器,原始语音信号经过该滤波器得到感觉加权语音信号。对于每两个子帧,编码器用感觉加权语音信号求得开环基音周期,基音周期范围从18个样点到142个样点。此后编码器所进行的操作都是基于60个样点进行的。由开环基音周期和感觉加权是在开环基音周期点周围的一定范围内求得的。最后,激励信号被量化,然后把这些参数和激励信号量化结果传送到解码器。由于帧长为30ms,并存在另外的7.5ms的前向延迟,导致37.5ms总的编码延迟。
G.723.1协议是为了低速可视会议业务而设计的。由于可视会议业务每秒钟只传输很少数量的帧,而且又有比较大的时延,这就是G.723.1允许有30ms帧长的原因。这个帧长比较大,却正好适合可视会议这种情况。而且它的编码速度比较低,可以把尽可能多的比特用的图象传输上。
3.2 G.728协议
G.728建议是16kb/s整编语音编码标准,是H.723协议中有关音频编码的标准,采用的编码算法是LD-CELP,即低时延-码激励线性预测的算法。G.728协议有一般CELP编码器的共同点:利用合成-分析、感觉加权、矢量量化和线性预测技术,从码本中搜索出最佳矢量,把它乘以最佳增益,代替余量信号作为激励信号。不同之处在于:一般的CELP编码器采用前向自适应预测器(Forword Adaptive Predictor)来去除语音信号的冗余度,而LD-CELP采用后向自适应预测器(Backword Adaptive Predictor)对短时谱包括和增益进行预测。LD-CELP编码器发送的只是激励矢量在码本中的地址标号,而解码端的滤波器参数和增益参数都是在解码端计算得来的。在大多数编码系统中,这类参数都是在编码端求得,然后传输到解码端。
LD-CELP的一个帧只有5个样点,因此编码器只要等5个样点就可以开始计算最佳激励矢量。它的线性预测周期是20个样点,但编码器不必等20个样点的语音信号才开始进行线性预测,它用以前已经量化的语音信号来进行预测分析。它不用象前向自适应预测器中必须等一帧语音信号到齐后才能进行预测分析。因此LD-CELP的延迟很小,为0.625ms,一路编解码时延不超过2ms,完全达到了进入公众网的标准。这种在低时延下还能保证很高语音质量的系统有很好的实用价值,付出的代价是算法计算复杂度很高,约为25MIPS左右。编码过程是首先将速率为64kb/s的PCM输入信号转化成均匀量化的PCM信号,接着由5个连续的语音样点组成一个5维矢量,激励码本中共有1024个5维矢量。对每一个输入矢量,编码器利用合成-分析法从码本中搜索出最佳码本矢量,然后将10bits的码本标号传给对方。每20个样点构成一个复帧,一个复帧构成一个自适应周期,每复帧更新一次LP系数。最佳码本矢量通过增益加权和合成滤波器后形成合成语音,该合成语音用来更新滤波器状态,以便继续为下一个输入矢量进行编码。合成滤波器系数和增益分别通过各自的后向自适应单元进行周期性地更新。
G.728建议最大的优点是它能提供高质量和低过延的语音。为此,它也要付出一定的代价,也就是在实现中和实际应用中有其它方面的麻烦,如在误差叠加、计算复杂度(它的线性预测阶数是50阶,而一般的编码器是10阶)、计算量的分配、互连问题等方面存在问题。
3.3 G.729协议
G.729协议是一个能在8kb/s速率上实现高质量语音编码的建议,也是H.323协议中有关音频编码的标准。在IP电话网关中,G.729协议被用来实现实时语音编码处理。G.729协议采用的是CS-ACELP即共轭结构算术码激励线性预测的算法。CS-ACELP以CELP编码模型为基础,它把语音分成帧,每帧10ms,也就是80个采样点。对于每一帧语音,编码器从中分析出CELP模型参数,其中包括线性预测系数,自适应码本和随机码本的索引值和增益。然后把这些参数传送到解码端,解码器利用这些参数构成激励源和合成滤波器,从而重量现原始语音。
编码过程是首先将速率为64kbit/s的PCM语音信号转化成均匀量化的PCM信号,通过高通滤波器后,把输入语音信号的每80个样点组成一个帖,也就是10ms的帧长。对于每个帧用线性预测法求得LP滤波器系数,为了适于矢量量化,把预测系数转化为线谱对(LSP-Line Spectrum Pair),然后进行矢量量化。利用合成-分析方法,使原始语音和合成语音之间的误差最小,来获得最佳激励信号。激励信号的量化是通过两个码本来实现的,即自适应码本和随机码本。自适应码本反映的是长时预测结果,也就是基音预测结果。随机码本反映的是经过长时预测和短时预测后的残留信号。
3.4 几种语音压缩编码方法的共同之处
它们都是采用的把参数编码和波形编码结构起来所形成了混合编码。混合编码有一个共同的特点,都是都有一个相同的算是过程:先进行线性预测分析,去掉语音的短时相关性,然后再用合成-分析法和感觉加权均方误差最小准则分析出合适的替代余量信号的最佳激励信号,最后对激励信号和线性预测参数进行编码传送。
混合编码中把激励模型和语音的时域波形结合到一起,从而改善了合成语音的质量。以上三种语音压缩编码算法的主要区别在于激励模型的不同。
虽然IP网络电话目前正处于蒸蒸日上的阶段,但它也存在这样或那样一些不尽如人意的方面。如何提高IP分组语音通信的质量,或者更一般地说,如何在IP网络上实现包括实时通信业务在内的综合业务通信,这正是我们需要进一步研究的特点。