天刀怎么关闭智能屏蔽:VoIP中的语音编码技术分析

来源:百度文库 编辑:中财网 时间:2024/05/12 17:50:49

VoIP中的语音编码技术分析

(2009-04-01 10:38:00)转载 标签:

杂谈

分类: 技术天地 随着互联网的迅速发展,出现了一种基于Internet的电话新业务——VoIP业务。VoIP(Voice overIP,基于IP的语音通信)也称为IP电话,是建立在Internet上的新型数字化传输技术。VoIP的使用,可以极大地降低用户的通信费用,而互联网的蓬勃发展也促进VoIP技术的迅猛发展。VoIP网络电话的成功开发和应用,预示了以IP为基础的新一代信息网络的出现,积极地探索和跟踪这项新技术无疑具有十分重要的意义。
1 语音编码的原理
为使VoIP网络电话能够可靠地进行语音通信,必须解决好两个问题:一是在保证一定话音质量的前提下尽可能地降低编码比特率,二是在IP网络环境下保证一定的通话质量。前者正是我们要探讨的语音编码技术,同一段语音信号,采用不同的编码方式,其编码后的比特率各不相同。那么如何对语音信号进行压缩编码从而达到降低语音信号的比特率呢?
1.1 利用了语音信号的相关性
语音信号主要存在两方面的冗余度,即语音信号幅度分布的非均匀性和样本之间的相关性。非均匀性表现为小幅度语音信号出现的概率大而大幅度语音信号出现的概率小,非均匀量化技术正是针对语音信号的这一特点而提出的,例如ADPCM编码算法;样本之间的相关性表现为样本点之间的短时相关性和相邻基音周期之间的长时相关性,利用语音信号的相关性,可以在实现低速率编码时,也能保持较高的语音编码质量,例如线性预测算法就是利用这一原理。
1.2 利用了人耳的听觉特性
人耳对语音信号的听觉特性表现在3个方面:一是人耳对语音信号的分辨率有限;二是人耳对语音信号某些失真不是很敏感;三是人耳的掩蔽效应。低速率高品质语音编码算法的实现就是基于人耳的这些听觉特性,既可以保证人耳感觉不到语音质量的下降,又降低了语音编码速率。
1.3 静音压缩
测试表明,人在正常谈话时,有50%左右是静音,而静音信息只需很少几个参数(4字节/帧)来表示。静音编码主要由两个算法组成:语音检测(VoiceActivity Detection VAD)和柔和噪声再生(Comfort NoiseGenerator  CNG)。VAD是用来检测输入的信号是实际语音信号还是背景噪声。如果检测到是语音信号,则对语音信号进行固定速率的编码;如果输入信号被检测为背景噪声,编码器则对其进行低速率编码。CNG的作用是在话音信号的接收端重构背景噪声。在G.723.1编码器中引入静音压缩技术后,实际的平均编码速率要小于5.3kb/s,可以达到3.5 kb/s以下。VoIP网络电话中已被广泛使用的线性预测合成分析编码就是基于此项原理的应用。
2 语音编码技术的分类
根据语音编码的发展过程,我们把该技术归纳为以下3类:
2.1 波形编码(或称为非参数编码)
波形编解码器基本上不考虑信号是如何产生的,而直接将输入的模拟信号抽样编码,然后将量化后的样值传送到终端,在终端原始信号被重组到与原信号大致接近的程度。因此波形编码方式是能够忠实地表现波形的编码方式。由于这类编码器通常将语音信号作为一般的波形信号来处理,所以它具有适应能力强、话音质量好、抗噪抗误码的能力强等特点,它最大的缺点是同其他的编解码器相比,它要使用大量的带宽,当波形编解码器用于低带宽时,话音质量下降得非常快。
脉冲编码调制(PCM)、自适应增量调制(ADM或ΔM编码)、自适应差分编码(ADPCM)、自适应预测编码(APC)、自适应子带编码(ASBC)、自适应变换编码(ATC)等都属于波形编码。
2.2 参数编码(或称为模型编码或声码化编码)
参数编码是根据声音的形成模型,把声音变换成参数的编码方式。其基本方法是通过对语音信号特征参数的提取及编码,力图使重建语音信号具有尽可能的可懂性,即保持原语音的语义。而重建的信号波形同原语音信号的波形可能会有相当大的差别。由于参数编码是保护语声模型,重建清晰可识别的语声,而不注重波形的拟合,所以这类编码技术实现的是合成语声质量下的低速或极低速的编码。参数编码的优点是:编码速率低,编码速率通常小于4.8kb/s,可以低至600 b/s~2.4kb/s;缺点是:合成语音质量差,特别是自然度较低,连熟人之间都不一定能听出讲话人是谁。另外,这类编码器对讲话环境噪声较敏感,需要安静的讲话环境才能给出较高的可懂度,且时延大。
线性预测编码(LPC)、多带激励(MBE)编码、余弦变换编码(STC)均属参数编码。
2.3 混合编码
混合编码是将波形编码与参数编码结合而产生的一种编码方式。采用线性技术构成声道模型,不只传输预测参数和清浊音信息,而是将预测误差信息和预测参数同时传输,在接收端构成新的激励减去激励预测参数构成的合成滤波器,使得合成滤波器输出的信号波形与原始语声信号的波形最大程度地拟合,从而获得自然度较高的语声。混合编码克服了原有波形编码器与声码器的弱点,结合了它们的优点,在4kb/s~16 kb/s速率上能够得到高质量合成语音,在本质上具有波形编码的优点,有一定抗噪和抗误码的性能,但时延较大。
多脉冲线性预测编码(MPLPC)、规则脉冲激励线性预测编码(RPELPC)、码激励线性预测编码(CELPC)、低时延的码激励线性预测编码(LD-CELPC)等都属于混合编码。
3 VoIP中常用语音编码算法的性能分析和比较
3.1 G.711协议
G.711是在电路交换电话网中普遍使用的一种波形编解码算法。G.711以8kHz作为抽样频率,如果使用统一量化方式,话音中通用的信号层次的每一个样本就要12比特来表示,这就产生了96kb/s的比特速率。如果使用不统一的量化方式,表示一个样本只需要8比特。G.711通常被称为PCM(脉冲编码调制)。
G.711有A律和u律两个变型,两者之间的区别主要在于不统一量化的使用方式,两者都是关于0对称。对于较低的信号层次来讲,A律对于信号的歪曲程度比u律更小一些,这是因为它对一个较大范围内的低层次信号提供较小的量化间隔,但以较大范围内的高层信号的较大量化层次为代价。A律和u律都提供了良好的语音质量,并且Mos等级都在4.3左右。
3.2 G.723协议
G.723协议是一个双速率语音编码协议,其两种速率分别是5.3 kb/s和6.3kb/s,较高比特率的输出基于ML-MLQ技术,提供某种程度上较高质量的音质;较低速率的输出基于CELP,为系统设计人员提供了更大的灵活性。G.723.1协议的编解码算法中两种速率的编解码基本原理是一样的,只是激励信号的量化方法有差别。对高速率(6.3kb/s)编码器,其激励信号采用多脉冲最大似然量化(MP-MLQ)法进行量化,对低速率(5.3kb/s)编码器,其激励信号采用代数码激码线性预测(ACELP)法量化。
编码过程是首先选速率为64kb/s的PCM语音信号转化成均匀量化的PCM信号,然后把输入语音信号的每240个样点组成一个帧,也就是30ms的帧长。每个帧通过高通滤波器后再分为4个子帧。对于每个子帧,计算出10阶线性预测滤波器的系数。为了适于矢量量化,把预测系数转化为线性频谱对(LineSpectrumPair,LSP),然后进行矢量量化。量化前的系数构成短时感觉加权滤波器,原始语音信号经过该滤波器得到感觉加权语音信号。对于每两个子帧,编码器用感觉加权语音信号求得开环基音周期,基音周期范围从18个样点到142个样点。此后编码器所进行的操作都是基于60个样点进行的。由开环基音周期和感觉加权是在开环基音周期点周围的一定范围内求得的。最后,激励信号被量化,然后把这些参数和激励信号量化结果传送到解码器。由于帧长为30ms,并存在另外的7.5 ms的前向延迟,导致37.5 ms总的编码延迟。
G.723协议适用于低速率多媒体服务中语音或音频信号的压缩算法,在IP电话网关中,被用来实现实时语音编码解码处理。
3.3 G.726协议
G.726协议采用的是ADPCM语音编码算法,提供了64 kb/s PCM码流至低速率ADPCM码流的转换。协议给出40kb/s,32 kb/s,24 kb/s和16 kb/s 4种比特率。其中,40kb/s信道主要用于在数字电路倍增设备(DCME)上传送数据modem信号,特别用于4.8 kb/s以上速率的modem;24kb/s和16kb/s信道主要用作DCME语音传送的过载信道。G.726设计的主要用途仍然是传统的电路交换网,但是其低比特率方案也可用于VoIP。
3.4 G.728协议
G.728协议采用的编码算法是LD-CELP,即低时延的码激励线性预测的算法。LD-CELP采用后向自适应预测器(BackwordAdaptivePredictor)对短时谱和增益进行预测。LD-CELP编码器发送的只是激励矢量在码本中的地址标号,而解码端的滤波器参数和增益参数都是在解码端计算得来的。在大多数编码系统中,这类参数都是在编码端求得,然后传输到解码端。
编码过程是首先将速率为64kb/s的PCM输入信号转化成均匀量化的PCM信号,接着由5个连续的语音样点组成一个5维矢量,激励码本中共有1024个5维矢量。对每一个输入矢量,编码器利用合成—分析法从码本中搜索出最佳码本矢量,然后将10比特的码本标号传给对方。每20个样点构成一个复帧,一个复帧构成一个自适应周期,每复帧更新一次LP系数。最佳码本矢量通过增益加权和合成滤波器后形成合成语音,该合成语音用来更新滤波器状态,以便继续为下一个输入矢量进行编码。合成滤波器系数和增益分别通过各自的后向自适应单元进行周期性地更新。
3.5 G.729协议
G.729协议是一个能在8kb/s速率上实现高质量语音编码的协议,它采用的是CS-ACELP即共轭结构算术码激励线性预测的算法。CS-ACELP以CELP编码模型为基础,它把语音分成帧,每帧10ms,也就是80个采样点。对于每一帧语音,编码器从中分析出CELP模型参数,其中包括线性预测系数,自适应码本和随机码本的索引值和增益,然后把这些参数传送到解码端,解码器利用这些参数构成激励源和合成滤波器,从而重现原始语音。
编码过程是首先将速率为64kb/s的PCM语音信号转化成均匀量化的PCM信号,通过高通滤波器后,把输入语音信号的每80个样点组成一个帧,也就是10ms的帧长。对于每个帧用线性预测法求得LP滤波器系数,为了适于矢量量化,把预测系数转化为线谱对,然后进行矢量量化。利用合成—分析方法,使原始语音和合成语音之间的误差最小,来获得最佳激励信号。激励信号的量化是通过两个码本来实现的,即自适应码本和随机码本。自适应码本反映的是长时预测结果,也就是基音预测结果。随机码本反映的是经过长时预测和短时预测后的残留信号。
在IP电话网关中,G.729协议被用来实现实时语音编码处理。
3.6 VoIP常用语音编码算法的性能分析和比较
从表1可以看出:G.711由于采用的是波形编码算法,具有高质量和低时延的语音,主要的缺点是需要64kb/s的带宽。G.723.1,G728,G.729都采用了混合编码算法,混合编码把激励模型和语音的时域波形结合到一起,从而改善了合成语音的质量。但这3种语音压缩编码算法的区别在于激励模型的不同。G.723.1Mos值约为3.8,优点在于仅需要很窄的语音带宽便可具有较高的语音质量;缺点在于在编码器一端至少有37.5ms的时延。G.728最大的优点是它能提供高质量和低时延的语音。
4 结语
语音编码技术是建立和处理VoIP网络电话的原动力,可以预见,随着互联网技术的发展,原来G.711的64kb/s语音编码算法最终会被淘汰,并由低比特率编码算法所替代。