kaiyun官方注册
您所在的位置: 首页> 其他> 业界动态> 用于VOIP的G.729A算法的优化改进

用于VOIP的G.729A算法的优化改进

2008-07-08
作者:杨召青, 黄 冰, 宋钦梅

摘 要:在VOIP应用的基础上,介绍了VOIP的现状及其用于VOIP语音编码" title="语音编码">语音编码标准的发展方向,并对VOIP网路通信语音编码标准之一的G.729 A[1]进行了优化改进,提出了一种利用重新初始化来获得状态恢复(RbR)与WD-LSP[8](Weighted delta-LSP)相结合的CS-ACELP语音编码算法,利用重新初始化来获得状态恢复,解决了包丢失阶段和在包丢失以后阶段产生差错脉冲所引起的重建语音质量" title="语音质量">语音质量下降问题的同时,采用WD-LSP降低了算法复杂度" title="算法复杂度">算法复杂度。
关键词:G.729A WD-LSP CS-ACELP RbR

VOIP是近年来快速发展起来的一项新的网络通信技术,已在全世界得到了广泛应用。然而受网络传输带宽、传输速率和网络环境等因素的制约,目前网络电话在语音质量和传输延时方面还有待完善。低速率语音编解码" title="编解码">编解码技术是IP网络多媒体通信中最关键的技术之一。有低速率语音压缩编解码技术的基础上,结合网络通信技术,提出了一种高效的语音实时通信方案。
1 编解码方案的选择
压缩和解压缩方案的选择需要考虑语音质量、速度、复杂度、延时四个方面。IP 语音通信主要使用ITU定义的几个语音编码的标准:G.723.1、G.728和G.929。G.729A是ITU推出的用于第四代语音编码标准,采用了共轭结构-算术码本激励线性预测编码(CS-ACELP)算法。
2 VOIP语音编码改进中的关键技术
VOIP中语音编码或称语音压缩编码研究的基本问题主要包括:(1)在给定编码速率的条件下如何得到尽量好的重建语音质量,或称编码质量。同时应尽量减小编解码时延以及算法的复杂度。(2)由于语音在网络传输使用UDP的协议,对在传输过程中出现错误或丢失采用的帧检错纠错和丢失补偿处理,以保证更好的语音质量,因此对整个 G.729A声码器的改进也是针对上述两个方面进行的。
3 RbR与WD-LSP[8]相结合的CS-ACELP语音编码算法
3.1 WD-LSP在G.729A中的应用
G.729A编码器中功能模块的改进重点在于自适应码本搜索,因为它们占用了声码器大部分的处理时间。这包括自适应码本矢量的产生、自适应码本时延的码字编码、自适应码本增益的计算、固定码本搜索、固定码本矢量的产生、固定码本的码字编码、固定码本增益的量化。同时与自适应码本搜索相关的开环基音分析也有改进的余地。本文采用一种新的降低算法复杂度的方法,即结合WD-LSP(Weighted delta-LSP)采用次最优部分码本快速搜索的CS-ACELP 语音编码算法[3],其原理图如图1所示。


在G.729A语音编码阶段,为了减少搜索最佳自适应码本延迟必需的计算量,开环基音延迟Top在每帧(10ms)都作一次分析,因而需要较多的CPU时间用于开环基音分析。因此可采用WD-LSP函数来减少用于开环基音分析的计算量。WD-LSP函数主要用于区分UV-V(unvoice-voice)/S-V(silence-voice)的边界。其原理是:如果函数值大于给定的极限值η,则开环基音延迟Top重新估计,否则,Top用前一帧的自适应码本延迟来更新。在第i帧Fi的WD-LSP函数和用于确定Top的算法描述如下:

如果Fi>η,重新估计Top
另外Top=自适应码本延迟
其中LSPi(k)是在第i帧中的k阶LSP系数;wk是加权系数,它用于增强UV-V/S-V边界的WD-LSP函数。为了获取wk,一个包含23 014个UV-V边界和9 519个S-V边界的大型数据库用于估计delta-LSP在UV-V/S-V边界的平方根值(RMS)。因此,WD-LSP用于检测VU-V/S-V边界非常敏感。η是一个设为0.01的极限值。整个计算可节省21%的计算量,且合成语音质量仍然较好。
3.2 RbR改善包丢失所引起的语音质量
由于G.729A具有15ms的低算法延迟[8]和丢失包的恢复机制,因此G.729A应用于VOIP是一种很好的选择。G.729A把语音分为每10ms为一帧,同时每一帧再被分为两个5ms的子帧。需要传输的参数以每帧80bit进行传输,因此导致要求8kbps的数据传输率。
语音传输过程中,在包丢失阶段和在包丢失以后的一个阶段都会产生差错脉冲。跟在包丢失后面的差错称为状态错误,这些错误都可以被耳朵察觉到从而会明显地降低语音的质量。
包丢失后一段延时内有错误,原因就是在包丢失的一个阶段编码器与解码器的状态不能够再同步。在本文中用于状态的所有存储器都在编码器和解码器中不会相互交换,但是会进行经常的更新以保证它们在两边相同。编码器产生以系列的参数来模拟基于当前状态的语音。这些参数传输到解码器再由这些参数和本地的状态来重新产生语音。在正规操作下,编码器和解码器的状态不断更新以保持相同,从而使解码器重新合成原始语音。但是在包丢失阶段,因为接收者不能完全对状态进行更新,因此编码器与解码器不再同步。即使之后没有数据包丢失,正确接收数据包时,解码器用错误的状态来重新产生语音,无疑会导致明显的语音失真。本文所定义的G.729A算法的状态如表1所示。这是通过分析和基于文献[5]确定的。


在大量仿真的基础上,可以注意到在状态#1、#4和#5重新同步以前,该算法分别采用4帧、2帧和1帧。而状态#2和#3是基于过去的输出,所以对于这些状态所采用的帧的数量是变化的,并且随着包丢失发生的位置而变化。仿真表明:在上一帧为帧擦除的情况下,对应于状态#2和#3分别以32帧和30帧来获得重新的同步。这些结果显示在一帧丢失后,所有的状态获得重新同步平均需要32帧。然而,也应该注意到,在包丢失后语音质量下降不会持续很长时间。
另外做了一个测试来核实哪种状态对语音质量的下降影响最大。修改算法,以便在需要进行帧的数据擦除时独立地对值进行修改,而不需要擦除一帧的数据。结果表明#2状态无疑是引起语音下降的主要状态,同时在当同步丧失时对状态错误的影响最大。
在G.729A中,对包丢失发生时有很好的应对处理方法,但是对于因包丢失引起的状态错误没能得到好的恢复。在G.729A中采用了一种新的方法来提高在包丢失期间自错误状态的恢复情况。
对于一个给定的状态,解码器产生了与这个状态相对应的一系列最佳的语音压缩参数。然而压缩质量无疑依赖于状态的最佳性,在包丢失发生后差错发生的主要原因是状态和压缩参数的不匹配。
基于上面的讨论,建议当发生包丢失时,通过每N帧在编码器和解码器两端对状态#2进行周期性的归零初始化来维持解码器和编码器的匹配。这种通过重新初始化来获得恢复的方法具有简单性同时保证了在包丢失时减少了状态差错的数量。
通过试验发现,为了获得更好的结果必须对所描述的关于执行RbR的技术进行修改。这是由于对其进行初始化的帧以及跟随此帧的下一帧比未进行初始化的帧对于包丢失更敏感。为了补偿这种情况,试验表明最有效的方式是增加冗余信息" title="冗余信息">冗余信息。如果对其进行初始化的帧为帧#n,那么解决的方法就是将帧#n的增益值和固定码本向量与帧#n+1一起传输。同样的,将#n+1帧的基音值和增益与帧#n+2一起传送。无论包丢失发生在帧#n+1还是帧#n+2,都可以用冗余信息来减少包丢失的影响。每个初始化间隔冗余信息需要76bit,从而去除了这些帧对于帧丢失的额外的敏感度。对于N=10的初始化间隔,RbR需要8.76kbps(大约9.5%的冗余)。
3.3 试验结果
为了评价RbR的性能,需要一个合适的方法来评价语音质量。因为人耳的特性,并不是所有的误差都能被察觉,这取决于作为语音质量的指标的平方误差的数值。为了客观地评价语音质量,采用了图2所示的系统。这个系统用一个知觉模型来计算两个语音文件的听觉差,这个知觉模型类似于MPEG声频压缩的模型[6]。这个误差是所有语音帧的总和除以采样的数量来获得每个采样的知觉误差(PEpS)。这种方法被证明是检测语音质量的一种很好的指标。


需要考虑的首要问题是证明当未发生帧擦除时,RbR是否会对语音产生影响。这是因为传输者没有办法预知包丢失是否发生,而在未发生包丢失时也要进行RbR操作。对应于不同初始化间隔的进行RbR操作的PEpS和未进行RbR操作的PEpS的比较如图3所示。可以看到,当初始化间隔N的选取大于9时其降低不明显。如果N进一步减小,其质量将会降低从而使得输出语音变为噪声。测试将状态#2设置为0的影响,因为需要内插状态#2的数值,因此自适应码本向量为0。在这种情况下,所有的激励都是由用于无声语音的固定码本向量组成。如果语音为有声语音,则编码器以分析-合成的特性来选取最佳的固定码本向量,因此可以使原始语音与合成语音之间的知觉误差最小,从而使下降度维持在最小。同样,自适应前向滤波器用于对所有固定码本向量进行滤波也可以减少下降度的影响,这是因为它增加了一些有声元素到固定码本向量中。这也能达到笔者所期望的状态,即如果RbR不是进行经常操作,则在未发生包丢失的阶段由RbR引起的下降度不明显。


本文就提高重建语音的音质与降低算法复杂度方面,针对G.729A目前的现状,提出了利用重新初始化来获得状态恢复(RbR)与WD-LSP(Weighted delta-LSP)相结合的CS-ACELP 语音编码算法,解决了目前网络通信由于带宽和包丢失带来的问题,保证了语音的质量。对今后G.729A语音编码的发展改进以及在VOIP中的应用具有一定的意义。
参考文献
[1] ITU-T Recommendation G.729 Annex A[S].
[2] HWANG Shaw-Hwa. Computional improvement for G.729 standard[J]. ELECTRONIC LETTERS.22nd June 2000:
1163-1164.
[3] ITU-T G.729: Coding of speech at 8kb/s using conjugat-estructure algebraic-code excited linear-prediction(CSACELP).International Telecommunications Union, March1996.
[4] 杨国芳,高飞.一种基于G[1].729的CS-ACELP新算法[J].语音技术,2004,(1):56-59.
[5] ROSENBERG J. G.729 Error Recovery for InternetTele-phony. Columbia University report, Spring 1997,
http://www.cs.columbia.edu/-jdrosen/e688O/index.html
[6] NOLL P. MPEG digital audio coding. IEEE Signal Processing Magazine, September 1997:59-81.
[7] SALAMI R. ITU-T G.729 Annex A: Reduced complexity 8kb/s CS-ACELP codec for digital simultaneous voice
and Data. IEEE Communications Magazine,Sept.1997:56-63.
[8] HWANG Shaw Hwa. Computional improvement for G.729 standard[J]. Electronic Letters. 22nd June 2000:1163-1164.
[9] MERMELSTEIN P, QIAN Ya sheng. Analysis by synthesis speech coding with generalized pitch prediction[D]. IEEE International Conference on Acoustics, Speech and Signal Processing, Vol. I of VI,1-4(HC), 1999.
[10] COMBESCURE P, SCHNITZLER J. A 16, 24, 32kbit/s wideband speech codec based on ATCELP[C]. IEEE
International Conference on Acoustics, Speech and Signal Processing, Vol. I of VI,5-8(HC), 1999.
[11] MONTMINY C, ABOULNASR T. Improving the performance of ITU-T G.729A for VoIP[J].

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map