首页> 中国专利> 在音频解码器中限制自适应激励增益的方法

在音频解码器中限制自适应激励增益的方法

摘要

本发明涉及一种用于解码由包括长期预测滤波器的编码器编码的音频信号的解码器。根据本发明,该解码器包括:用于检测传输帧的丢失的块(211);用于计算误差指示函数的值的模块(222),该误差指示函数的值其代表所述传输帧丢失之后的自适应激励解码中的累积误差,将任意值分配给丢失帧的所述自适应激励;用于基于所述误差指示函数的值计算误差指示参数的模块(213);比较器(214),将所述误差指示参数与至少一个给定阈值进行比较;以及鉴别器(215),用于基于由比较器(214)提供的结果确定将由该解码器使用的至少一个自适应激励增益的值。本发明适用于编码和解码诸如音频信号的数字信号。

著录项

  • 公开/公告号CN101395659A

    专利类型发明专利

  • 公开/公告日2009-03-25

    原文格式PDF

  • 申请/专利权人 法国电信公司;

    申请/专利号CN200780007107.7

  • 发明设计人 巴拉茨·科维西;戴维·维里特;

    申请日2007-02-13

  • 分类号G10L19/00(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张玉红

  • 地址 法国巴黎

  • 入库时间 2023-12-17 21:40:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-06

    未缴年费专利权终止 IPC(主分类):G10L19/00 授权公告日:20121107 终止日期:20170213 申请日:20070213

    专利权的终止

  • 2012-11-07

    授权

    授权

  • 2009-05-20

    实质审查的生效

    实质审查的生效

  • 2009-03-25

    公开

    公开

说明书

技术领域

本发明涉及在音频解码器中限制自适应激励增益的方法。本发明还涉及用于解码已由包含长期预测滤波器的编码器编码的音频信号的解码器。

本发明在编码和解码诸如声音频率信号的数字信号的领域中得到有益的应用。

本发明特别适合于分组交换网络中的语音和/或音频信号的传输,例如通过IP的语音传输,以在分组丢失之后的解码上提供可接受的质量,特别是,避免用于在编码激励线性预测(CELP)编码背景中解码的长期预测(LTP)滤波器的饱和。

背景技术

CELP编码器的一个示例是ITU-T建议G.729涉及的系统,其被设计用于以8kHz采样、利用10毫秒(ms)帧以8千位每秒(kbps)的固定位速率传输的从300赫兹(Hz)到3400Hz的电话频带中的语音信号。该编码器的操作由R.Salami、C.Laflamme、J.P.Adoul、A.Kataoka、S.Hayashi、T.Moriya、C.Lamblin、D.Massaloux、S.Proust、P.Kroom和Y.Shoham在他们的论文(“Design and description of CS-ACELP:a toll quality 8 kbps speechcoder”,IEEE Trans.On Speech and Audio processing,Vol.6-2,March 1998,pp.116-130)中进行了详细描述。

图1(a)是G.729编码器的高级视图。该图示出用于消除处于50Hz以下频率的信号的高通预处理滤波101。滤波后的语音信号S(n)接着由块102分析,以确定线性预测编码(LPC)滤波器该LPC滤波器以索引的形式被发送到多路复用器104,该索引将量化向量(QV)在字典中编索引。

由滤波器滤波后的原始信号S(n)(称为激励信号)由块103来处理,以从中提取图2中的表中列出的参数。这些参数接着被编码并发送到多路复用器MUX 104。

图1(b)详细示出激励编码块103的操作。如图中可以看出,通过三个步骤编码激励信号:

·在第一步中,利用块106、107、111实施长期预测(LTP)滤波;G.729编码器的LTP滤波器是一阶滤波器;通过综合分析(analysis by synthesis)来确定自适应激励周期P和自适应激励增益gp 以将来自块105的目标激励信号与由x(n)=gp·x(n-P)给出的合成信号之间的误差最小化,其中自适应激励周期P也称为“基音(pitch)”周期,被表示为整数值P0并由分数值P0_fractional来适当补充,自适应激励增益gp也称为“基音”增益,n代表信号的采样;

·接着,在第二步中,将这两个信号之间的残余差首先由从具有4脉冲±1的ACELP开发者(innovator)字典108中提取的固定码c(n)(也称为开发者码)、其次由固定激励增益gc109进行模拟(model);通过在111′处将来自前一LTP级的残余信号与信号gc·c(n)之间的误差最小化来确定固定码c(n)和增益gc

·最终在最后一步中,将结果参数,即基音周期P、固定码c(n)、基音增益gp、以及固定激励增益gc编码并发送到多路复用器104。

图1(c)示出标准G.729解码器如何根据由多路解复用器112从多路复用器104接收的数据重构语音信号。通过将下述两种组分相加而以5ms子帧的形式重构激励信号:

·第一种组分由对基音周期P进行解码(115)和对基音增益gp进行解码(118)以在块116、117的输出处重构自适应激励LTP信号x(n)=gp·x(n-P)而产生;

·第二种组分由对用块118解码的增益gp调节(scale)的固定激励信号c(n)进行解码(113)以重构固定激励信号gc·c(n)而产生;

·接着将这两种组分相加以给出解码后的激励信号x(n)=gp·x(n-P)+gc·c(n)。

解码后的激励信号由LPC合成滤波器120整形(shape),其系数由LSF(线谱频率)域中的块119解码,并以5ms子帧等级插值。为了改善质量和隐藏某些编码伪像,重构后的信号接着由自适应后滤波器121和高通后处理滤波器122进行处理。因而图1(c)的解码器依据源滤波器模型来合成信号。

由于激励信号来自长期预测(LTP)滤波器,而且带着产生能够迅速跟踪信号的发动(attack)的激励信号的目的,CELP编码器通常准许选择大于1的基音增益gp。结果,解码器局部不稳定。然而,该不稳定性由综合分析模型控制,其连续地将激励信号LTP与原始目标信号之间的差最小化。

在传输误差或帧丢失的情形下,这样的不稳定性可以导致由编码器与解码器之间的偏移引起的严重恶化。在这些情况下,未在帧中接收到的基音增益值gp通常由前一帧中的值gp来代替,而且虽然由交替的具有接近于1的基音增益的浊音(voiced)周期和具有小于1的基音增益的清音(unvoiced)周期构成的语音信号的可变性质通常限制与该局部不稳定性有联系的潜在问题,但是仍然成立的是,对于某些信号,特别是浊音信号,如果例如替代增益gp高于真实增益而且涉及的帧后面跟随的是高增益帧(如同在信号的发动期间发生的),则周期性固定区域中的传输误差会导致严重的恶化。该情形接着迅速导致由与长期预测滤波的递归特性联系的累积效应引起LTP滤波器的饱和。

对该问题的第一种解决方案是将增益gp限制为1,但是该限制具有降低CELP解码器在信号的发动期间的性能的效应。

其它解决方案建议仅在认为必要时将基音增益gp限制为小于或等于1的值。特别地:

·美国专利5960386中描述的方法可以被划分为在编码器中执行的多个级。首先,有一个利用先前计算得到的基音增益、以及之前的多个基音增益的平均值来检测可能的不稳定性的进程。如果没有不稳定性的危险,则保留该先前计算得到的基音增益。否则,迭代的基音增益控制进程改编(adapt)该增益以消除不稳定性的危险。

·美国专利5893060和5987406中描述了用于检测编码器中的不稳定性的进程。其利用LSP参数来确定频谱中谐振的存在,计算谐振的持续时间(以帧的数量表示),并将不稳定的可能性评估为基音增益值的函数。如果检测到不稳定性,则基音增益的值在阈值处饱和,而且修改在基音增益的向量量化中对增益向量的搜索,以使得所选择的向量具有低于阈值的基音增益值。

·上面提到的R.Salami的论文、以及美国专利5708757描述了在标准G.729编码器中用于检测可能的饱和、或用于计算存在的相关基音增益值的进程。该方法(称为“驯化(taming)”)在激励计算中考虑解码器的最大潜在误差。如果当基音增益大于1时该误差超过某阈值,对应于不稳定的滤波器,则将增益修改为具有小于1的值以稳定滤波器。因而该思想在于在编码器中检测在其中之前的传输误差的累积可以导致局部不稳定的长期滤波器饱和的区域,特别是在长强浊音片段(passage)期间。通过检查具有模拟最大潜在误差的恒定激励的二阶长期滤波器的输出来检测这些片段。ITU-T建议G.723.1中提到了同样的技术,其中编码器使用五阶长期预测器,对于五阶长期预测器来说,基音增益是施加到来自过去的5个连续的样本的5个系数的向量。可以利用向量量化将这些增益向量量化。虽然一阶长期滤波器的稳定性与G.729的一样很容易通过将单增益系数与值1进行比较来检验,但是对于更高阶的长期滤波器,该检验要复杂得多。使用增益组的长期滤波器的稳定性也依赖于信号(例如基音)的性质。因此,同样的增益组可能在一种情形下稳定但在另一种情形下不稳定。这使得难以估计误差传播,因为潜在误差的性质可能不为编码器所知,而且检测潜在不稳定区域或确定用于重新稳定滤波器所要施加的衰减并不是简单的事情。建议G.723.1中实现的解决方案是通过学习过程为编码器的每个可能的增益向量寻找等效平均的一阶增益。将这些值存储在表中。因而使用该等效一阶滤波器来估计长期滤波器中的最大潜在累积误差,从而识别在其中在高累积误差的情况下必须限制增益、而且必须计算用于稳定滤波器所要施加的增益的区域。

然而,这些已知技术提出的用于避免在存在丢失或传输误差时LTP滤波器饱和的危险的解决方案导致以下问题:

·先验地在编码器中做出修改与长期预测相关的增益gp的决定,其无法在帧已经丢失之后完全控制解码器的状态及其行为,其假定为对编码器是未知的。而且,所述现有技术可以继续导致在传输误差的情况下解码方面的音频恶化,不管由编码器采取的用于修改增益的决定怎样。

·与上述技术关联的基音增益gp为1的限制可以导致质量的轻微恶化,例如在发动阶段中,其通常产生大于1的增益。所选择的触发阈值是质量与安全之间的折衷。低阈值将过于频繁地触发限制,导致不必要的恶化,特别是在没有传输误差时。相反地,较高的阈值将无法保证在高误差率的情况下的足够的保护。

发明内容

因此,本发明的主题要解决的技术问题是,提出一种在编码器和解码器之间丢失帧之后、在解码由包括长期预测滤波器的编码器编码的音频信号时在解码器中限制自适应激励增益的方法,该方法将仅在确实发现LTP滤波器的不稳定性时才限制自适应激励增益、或基音增益gp,并在面临帧丢失时达到解码质量与鲁棒性之间的最佳的可能的折衷。

根据本发明,所述技术问题的解决方案是,在解码器中所述方法包括下列步骤:

·建立误差指示函数,其意在提供代表所述传输帧丢失之后自适应激励解码的累积误差的值,将任意值分配给所述丢失的帧的所述自适应激励;

·在解码期间计算所述误差指示函数的值;

·根据所述误差指示函数的值计算误差指示参数;

·将所述误差指示参数与至少一个给定阈值进行比较;以及

·如果与至少一个自适应激励增益等效的增益高于给定值,则在肯定比较的情况下对至少一个自适应激励增益施加限制。

这里“帧丢失”通常是指未接收到帧或帧传输错误。

在一个实施例中,所述任意值等于利用误差掩饰(dissimulation)算法在所述丢失帧期间确定的自适应激励增益的值。

作为误差掩饰算法的示例,所述任意值等于已丢失的帧之前的未丢失的帧的自适应激励增益的值。

在另一个示例中,基于检测前一帧的浊音来定义所述任意值。对于浊音帧,所述任意值等于1;否则所述任意值等于0,而激励信号由随机噪声构成。

如下面更详细地显现的,本发明的方法的优点在于,其不修改基音增益gp,除非在解码器自身中检测到LTP滤波器的不稳定的可能,而不是像现有技术在编码器中检测到LTP滤波器的不稳定的可能。另外,本发明的方法考虑解码器的真实状态以及关于已经发生的任何传输误差的确切信息。

可以自治地使用本发明的方法,即在不在编码器中提供基音增益的限制的编码结构中使用本发明的方法。

然而,本发明有益地教导,利用安装有增益限制器设备的编码器向所述解码器提供所述自适应激励增益。因而本发明的方法也可以与安装在编码器中的已知的先验“驯化”技术结合使用。从而两种技术的优势得到累加:先验技术限制大于1的基音增益的过长的序列。这是因为,这样的序列导致严重的误差传播,迫使本发明的方法在长时间期间修改信号。然而,过低的用于触发先验“驯化”技术的阈值使信号退化。本发明通过提高阈值来减少先验“驯化”技术被触发的次数,因为虽然该先验技术不检测爆发(explosion)的危险,但是本发明的后验方法检测并对其进行补救。

在本发明的特定实施例中,所述误差指示函数的形式为:

Xt(n)=et(n)+Σigit·xt(n-P+i), i∈[-(N-1)/2,(N-1)/2]

其中:

·N是长期预测滤波器的阶数,通常为奇数;

·增益git对于接收到的帧等于所述自适应长期滤波器的自适应激励增益,对于丢失的帧等于前一帧中的所述长期预测滤波器的自适应激励增益;

·et(n)对于接收到的帧具有值0,而对于丢失的帧具有值1;

·P是自适应激励周期。

当然,在最简单情形下,可以将LTP滤波器的阶数N取为等于1。

在本发明的方法的第一实施例中,如果所述误差指示参数高于所述给定阈值,则将一阶长期预测滤波器的自适应激励增益gp限制为值1。

类似地,本发明教导,如果所述误差指示参数高于所述给定阈值,则向阶数高于1的长期预测滤波器的自适应激励增益gi施加修正因子。

在第二实施例中,如果所述误差指示参数高于所述阈值,则利用所述给定阈值的线性函数来限制所述至少一个自适应激励增益。该有益配置使得增益限制更加渐进(progressive)并避免急剧(sharp)的阈值效应。

本发明还涉及包括存储在计算机可读介质上的指令的程序,用于在计算机中执行所述程序时执行本发明的方法的步骤。

最后,本发明涉及一种用于由包括长期预测滤波器的编码器编码的音频信号的解码器,值得注意的是该解码器包括:

·用于检测传输帧丢失的块;

·用于计算代表所述传输帧丢失之后的解码期间的累积自适应激励误差的误差指示函数的值的模块,将任意值分配给所述丢失的帧的自适应激励增益;

·用于根据所述误差指示函数的值计算误差指示参数的模块;

·用于将所述误差指示参数与至少一个给定阈值进行比较的比较器;以及

·被适配为按照由比较器提供的结果的函数确定要由该解码器使用的至少一个自适应激励增益的值的鉴别器。

下面以非限制性示例提供的参照附图的描述清楚地说明了本发明的构成以及如何将其变为实践。

附图说明

图1(a)是G.729编码器的高级框图;

图1(b)是图1(a)编码器的激励编码块的详细框图;

图1(c)是与来自图1(a)的编码器相关的解码器的图;

图2是列出来自图1(a)的编码器的编码参数的表;

图3是本发明的解码器的图。

具体实施方式

下面以G.729解码器和阶数N=1的长期预测(LTP)滤波为背景详细描述本发明。本说明书的末尾涉及任意阶N的LTP滤波。

来自图1(a)的激励编码块103而且在图1(b)中示出的激励信号xe(n)是自适应激励信号gp·xe(n-P)和固定激励信号gc·c(n)的和:

xe(n)=gp·xe(n-P)+gc·c(n)

其中:

·gp是自适应激励增益或基音增益;

·P是基音或周期长度的值;G.729编码器对长基音值(P<85)使用步长1/3的分数分辨率以更好地模拟高基音浊音声音;通过插值和过采样获得具有分数基音的自适应激励;

·gc是固定激励增益;

·c(n)是固定或开发者码字。

自适应激励仅依赖于过去的激励而且高效率地模拟周期性信号,特别是浊音信号,其中激励自身实质上被周期性地重复。固定部分c(n)的创新在于其使用总激励来模拟周期之间的差,即修正自适应增益与预测残余之间的误差。

如上可见,利用综合分析技术在编码器中优化该激励信号。从而利用量化的滤波器实现该激励的合成滤波以检验将在解码器中获得的结果。这解释了为什么有可能使用局部不稳定的长期滤波(即具有大于1的gp值)来模拟信号的发动,因为由该不稳定性导致的能量增加在控制之下。另外,该控制受到任何帧丢失的干扰。

在解码器中,如果帧丢失,或者如果接收到不正确的帧,则误差掩饰算法使用从过去的激励信号估计得到的激励信号。典型地仅使用长期预测(LTP)滤波,保留最后修正的解码的基音值gp_FEC。因而将扰动注入解码器的激励信号xd(n)。对于后续的有效帧,即便有可能正确地解码用于产生激励信号的全部参数gp、P、gc和c(n),所获得的激励信号也不是精确的,因为过去的激励信号xd(n-P)已经被干扰。由于浊音周期中的长期滤波的递归性质,在丢失帧期间注入的误差因而可以向前传播经过许多个帧,特别是当gp接近于1时。相反,当在多个非浊音区域中gp具有低值或等于0时,扰动的效果被衰减或抵偿,因为开发者码c(n)的权重大于其在过去的权重。

因而必不可少的是能够估计由传输误差导致的自适应部分中的累积误差的量值。为此,建议根据图3来修改图1(c)中所示的解码器。

图3示出,与长期预测(LTP)滤波并列地,解码器包括由块211至215构成的线路,用于处理来自多路解复用器112的激励信号。该解码器的该处理线路也被描述为用于说明本发明的限制自适应激励增益的方法的主要步骤。

块211用于检测是否正确地接收到帧。该检测块之后是模块212,其实现与长期LTP滤波类似的操作。更准确地说,模块212计算误差指示函数xt(n),其值代表传输损失之后自适应激励的累积解码误差。该实施例中,该函数由下面等式给出:

xt(n)=gt·xt(n-P)+et(n)

其中et(n)等于:

·1,对未接收到的帧或错误帧,以模拟注入自适应循环的误差;

·0,对有效帧,当误差仅因长期滤波器的递归性质而传播时。

gt等于:

·gp_FEC,前一帧的基音增益的值,对未接收到的帧;

·gp,对有效帧。

模块213接着根据由模块212提供的函数xt(n)的值计算误差指示参数St。对于有效帧,比较器214检验参数St是否已经超过某阈值S0。如果已经超过阈值而且如果解码的基音增益gp大于1,则限制gp的值,因为在该情形下有使LTP滤波器饱和的危险。

误差指示参数St可以是函数xt(n)的值的和或最大值、平均值或这些值的平方的和。

比较器214之后是鉴别器215,其被适配为对当前帧确定要向块117施加的基音增益的值g′t,即解码的基音值gp或限制值。

如果参数St超过阈值S0而且如果解码的基音增益gp大于1,则例如可以将增益g′t系统地限制为1,不论过冲的量值如何。然而,也可以提供更渐进的限制,其在于将增益g′t定义为如下形式的参数St的线性函数:

g′t=gp+(gp-1)(S0-St)/S

其中S是任意系数,用于调整g′t随St变化的斜率。

同样可能的是,利用在两个阈值之间线性限制以及在第二个阈值之上限制为1,来相对于两个连续的阈值限制增益,如下面示例所示。

给出实用示例,对于每5ms包含40个样本的子帧,发送有效帧的LTP参数P和gp。同样以子帧定时速率执行用于避免滤波器LTP的饱和的处理,该处理是本发明的主题。对于每个子帧计算误差指示参数St,例如函数xt(n)的和。将该参数的值限制为120,其对应于平均值3:

St=min(Σi=039xt(n),120)

如果当前子帧的基音增益大于1而且St的值大于阈值80,其对应于样本xt(n)的平均值大约2,表示累积误差较高,则根据以下等式减少基音增益值:

g′t=1+(gt-1)·(120-St)/40

对于St的最大值(St=120),新的基音增益为g′t=1,而对于St的其它值(80<St<120),1>g′t>gt

当如上所述修改基音增益的值时,用新的值g′t更新信号xt(n)的存储器。

相反,如果当前子帧的基音增益小于1或者St的值小于80,其对应于合成滤波器中的累积误差长期较低,则不修改解码的基音增益的值且g′t=gt

最后,使用g′t代替解码的基音增益来产生合成滤波器的激励信号:

xd(n)=g′t·xd(n-P)+gc(n)·c(n)

这里描述的实施例中,编码器的长期滤波器是一阶滤波器。然而,如果编码器使用更高的阶数N的长期LTP滤波器,例如对于G.723.1编码器,则用于定义误差指示函数的LTP伪滤波器可以是等效一阶滤波器,或者更有利地,是与编码器中所使用的相同的滤波器,特别是阶数相同。总是使用一阶等效滤波器来在有效帧期间识别在其中在高累积误差的情况下有必要限制增益的不稳定区域、并确定必要的衰减。

如果参数St超过S0而且如果等效增益ge大于1,则可以以与一阶滤波器相同的方式计算增益g′t。接着向较高阶滤波器的增益gi施加修正因子g′t/ge

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号