改进语音丢包修补质量的语音编码系统
技术领域
本发明属于信号编码领域。具体讲是语音编码领域;尤其是专为改进在语音包传输时丢包后性能的补偿。
背景技术
传统来讲,所有的参数化语音编码方法常常都是利用语音信号本身的冗余,来减少必须传输的信息量,并估算语音信号短时段内的参数。这种冗余首先起因于语音波形周期性的重复和频谱包络慢变过程。
不同形式语音波形的冗余对应于不同类型的语音信号,如浊声和清声。就浊声语音而言,语音信号基本上是周期性的;然而,这种周期性在语音段中是变化的,且周期波形在语音段之间缓慢变化。低比特率的语音编码可以很大地受益于这种周期性。浊声周期称为基音周期(pitch),这种基音周期性预测被命名为长项预测。至于清音,其信号更像一个随机噪声,周期性也较小。
在任何情况下,参数编码通过分割频谱包络和语音段的激励来减少语音段的冗余。频谱包络慢变过程被描述成线性预测(也称作短项预测)。低比特率的语音编码也同样受益于短项预测。这种编码的优点就来自于参数的慢速变化。然而,在几毫秒内这些参数值有很大变化的可能性很小。因此,在8k Hz或16k Hz采样时,语音编码算法是将10~30毫秒语音段作为一帧。而20毫秒是最常用的帧长。在较近期的知名国际标准中,诸如G.723、G.729、EFR、AMR,编码激励线性预测技术(CELP)已经被广泛采用;通常编码激励线性预测技术(CELP)被理解为是编码激励、长项预测和短项预测各技术的综合。利用编码激励线性预测技术(CELP)的语音编码算法在语音压缩领域已经相当流行。
图1显示CELP初始语音编码器,利用综合分析法,综合语音102和原始语音101之间的加权误差109被减到最小,即最小化113。W(z)是加权滤波器110。它对误差信号111进行加权滤波处理。1/B(z)是长项预测滤波器105,1/A(z)是短项预测滤波器,标为103。编码激励108,又被称作固化码本(fixed codebook)激励,在通过线性滤波器前乘于增益Gc(标为106)。短项预测线性滤波(标为103)通过分析原始信号101完成,并由一个线性预测系数集合表示:
加权滤波器(110)涉及和用到上面的短项预测滤波。一个典型的加权滤波器可表示为:
其中β<α,0<β<1,0<α≤1。长项预测(105)取决于基音周期和基音周期增益;
对基音周期的估计基于原始信号、残留信号或者加权原始信号。长项预测函数可表示为:
B(z)=1-β·z-Pitch (3)
编码激励(108)通常由类似脉冲的信号或类似噪音的信号构成,这些信号可用数学方法实时产生或者存到码本中。最后,将编码激励指数,量化的增益指数,量化的长项预测参数指数和量化的短项预测参数指数传到解码器中。
图2显示初始的语音解码器,在综合语音后添加后处理单元207。解码器由编码激励201、长项预测203、短项预测205、后期处理207等几个单元组成。除后期处理单元,其它都和图1中的编码器定义相同。后期处理单元由短项后期处理和长项后期处理组成。
图3显示基本的CELP编码器。它和图1的唯一不同之处在于用含有过去的综合激励304的自适应码本307来实现长项预测。语音的基音周期信息用来产生相应的自适应激励分量。这一激励分量将乘于一增益Gp(标为305)(也称作周期增益)。两个由增益控制幅度的激励分量在通过短项预测滤波器(标为303)前被加到一起。这两个增益变量(Gp305和Gc306)需量化,然后送到解码器。自适应码本307激励分量和固化码本308激励分量加在一起产生总的激励e(n)。
图4显示基本的CELP解码器,它完全对应于图3中的编码器,但在综合语音407后添加了后处理单元408。这个解码器除自适应码本外,其它类似于图2。解码器也由几个单元组成,包括编码激励402、自适应码本401、短项预测406和后期处理408。除了后期处理单元,每个单元都和图3中的编码器有相同的定义。
如果前次的比特流包有丢失,同时周期增益Gp也很大,那么以前的综合激励的错误估计将造成误差传播相当长时间,这一误差传播即使在解码器收到正确的比特流包后也不会马上停止。误差传播的部分原因是由于ep(n)和ec(n)的相位关系已经在上次的比特流包丢失时改变。一个简单的解决办法是将帧之间的周期相关性完全切除;就是说增益Gp在编码时置0。尽管这种方法解决了误差传播的问题,但同时也牺牲了在没有包丢失时的质量,或者说只有在更高比特率下才可以补偿因此而损失的质量。本文将在随后给出和论证一个折衷的解决方案。
发明内容
本发明的目的是为了克服上述现有技术中的不足之处,提供一种利用可变换的长项预测技术改进丢包补偿的质量的改进语音丢包修补质量的语音编码系统。
本发明的改进语音丢包修补质量的语音编码系统,主要是使用可变换的长项预测技术降低因语音包丢失而产生错误传播,它通过适当限制一帧内第一个基音周期的最大周期增益(Gp)值来实现;这里假设一帧内会有多个基音周期。
所述第一个基音周期增益限制为小于1的一个适当值;为补偿这个较低的周期增益值,对于这第一个基音周期,适当增大激励码本的大小或者再加一级编码激励。
所述第一个基音周期设置的最大周期增益值在0.5左右。
所述第一个基音周期之外的其它基音周期保持常规的基音周期增益值和激励码本大小。
所述第一个基音周期限制适当的周期增益最大值是针对强浊音而言的。
所述语音编解码系统对语音信号进行编解码;语音信号分为很多个帧,而每帧又有多个语音基音周期;根据帧内第一个基音周期是否占有一个子帧或多个子帧来对每一帧分为不同的类。
所述子帧在覆盖第一个基音周期时,将基音周期增益限制为小于1的一个适当值;为补偿这个较低的周期增益值,对这个子帧,适当增大激励码本的大小或者再加一级编码激励。
所述子帧在覆盖第一个基音周期时,将基音周期增益最大值限制在0.5左右。
所述第一个基音周期所覆盖的子帧外的其它子帧保持常规的基音周期增益值和激励码本大小。
所述的限制最大周期增益是针对强浊音而言的。
本发明的改进语音丢包修补质量的语音编码系统,由于使用可变换的长项预测技术,主要通过适当限制一帧内第一个基音周期的最大周期增益(Gp)值,能有效降低因语音包丢失而产生错误传播,具有构思巧妙、方法合理、保真度效果明显等优点。
附图说明
图1是初始CELP语音编码器方框图;
图2是初始CELP语音解码器方框图;
图3是基本CELP语音编码器方框图;
图4是基本的CELP解码器方框图;
图5是一个基音周期503小于子帧长度502的示例图;
图6是一个基音周期603大于子帧长度602但小于半帧长度的示例图。
具体实施方法
结合附图对本发明作进一步描述如下:
以下描述包括了相关的编码激励线性预测技术CELP的详细信息。同时,熟悉相关技术的人会发现本方法可以实践于其它各种不同的语音编码技术算法中,而非只局限于本文所讨论的应用。此外,为了突出本发明的特性,本文对一些本技术领域内的一般性知识细节并没有讨论。
本文附图及其附带说明也只是针对本发明的一些举例。为了简明扼要,其它应用本发明的相关方法的实体将不一一详细叙述或给出图示。
图3举了一个能说明本发明的编码器示例。参照图3和图4,长项预测在浊音编码中扮演着重要角色,这是由于浊音的强周期性。同时,相邻的语音基音周期非常相似,这就导致下面表达式中激励的基音周期增益Gp 305数值上很高。
e(n)=Gp·ep(n)+Gc·ec(n) (4)
上式中ep(n)是以n为取样序数的一个子帧,它从包含过去激励304的自适应码本307得来;ec(n)来自于作用于当前激励的编码激励码本308(又叫固化码本fixed codebook)。对于浊音,ep(n)的作用更显著,周期增益Gp 305是一个1附近的值。一般情况下激励每一子帧更新一次。典型的帧长为20毫秒;子帧长为5毫秒。
如果前次的比特流包有丢失,同时周期增益Gp也很大,那么以前的综合激励的错误估计将造成误差传播相当长时间,这一误差传播即使在解码器收到正确的比特流包后也不会马上停止。误差传播的部分原因是由于ep(n)和ec(n)的相位关系已经在上次的比特流包丢失时改变。一个简单的解决办法是将帧之间的周期相关性完全切除;就是说增益Gp在编码时置0。尽管这种方法解决了误差传播的问题,但同时也牺牲了在没有包丢失时的质量,或者说只有在更高比特率下才可以补偿因此而损失的质量。本文将在随后给出和论证一个折衷的解决方案。
对于大多数浊音,一帧都含有两个以上的基音周期。图5给出了一帧501的一个基音周期503小于子帧长度502的示例;图6给出了一个基音周期603大于子帧长度602但小于帧长度601的一半的示例。如果浊音性很强,为了避免由丢包造成的错误传播,一个折衷的办法是,在受益于长项预测的同时,限制每一帧的第一个基音周期的周期增益的最大值。我们可以对语音信号分类,给予不同的对待。让我们看下面的示例,有效语音被分为如下4类:
第1类:(强浊音)且(基音周期<=子帧长度)。对于这种帧,第一个子帧的基音周期增益限制在一个远远小于1的值(比如说0.5)。对于第一个子帧,编码激励码本应该大于同一帧内的其它子帧。也可以在第一个子帧中再加一级编码激励以补偿其较低的基音周期增益值。对于其它子帧,使用常规的CELP算法就可以。由于这是强浊音帧,基音周期和周期增益在帧内是稳定的,所以基音周期和周期增益可以用更少的比特数来有效编码。
第2类:(强浊音)且(基音周期>子帧长度和基音周期<=半帧长度)。对于这种帧,前两个子帧(半帧)的基音周期增益限制在一个远远小于1的值(比如说0.5)。对于这两个子帧,编码激励码本应该大于同一帧内的其它子帧。也可以在这两个子帧中再加一级编码激励以补偿其较低的基音周期增益值。对于其它子帧,使用常规的CELP算法就可以。由于这是强浊音帧,基音周期和周期增益在帧内是稳定的,所以基音周期和周期增益可以用更少的比特数来有效编码。
第3类:(强浊音)且(基音周期>半帧长度)。当基音周期很长时,错误传播效应受长项预测的影响比之基音周期较短时小。对于这类帧,覆盖第一个基音周期的子帧的周期增益可限制为一个小于1的值;编码激励码本的大小可超出常规,也可以再加一级编码激励以补偿其较低的基音周期增益值。由于长基音周期产生较少的错误传播,而出现长基音周期的情况也较少,所以常规的CELP算法也可以用于帧内所有子帧。由于这是强浊音帧,基音周期和周期增益在帧内是稳定的,所以基音周期和周期增益也可以用更少的比特数来有效编码。
第4类:除第1,2,3类之外的所有情况。使用常规的CELP算法就可以。
上面规定的类别编号(类序号)可以更换而不影响实际结果。例如,(强浊音)且(基 音周期<=子帧长度)也可以定义为第2类而非第1类;(强浊音)且(基音周期>子帧和基音 周期<=半帧长度)也可以定义为第3类而不是第2类,等等。
大体上讲,可以通过适当缩小二帧边界处基音周期之间的相关性来降低因语音包丢失而产生的错误传播效应,同时保持长项预测的重要贡献。
本发明可以有其他具体的不偏离其精髓或本质特征的表现形式。文中所述的实例也只是具有说明性的而非严格限制性的意义。因此,较前面的叙述,后面的附加权利要求更明显地体现了本发明的范围。全部与权利要求的意义等价的变化都包含在这权利要求的范围内。