用于在具有不同采样速率的各帧之间的过渡时的声音信号的线性预测编码和解码的方法、编码器和解码器与流程

文档序号:11851778阅读:388来源:国知局
用于在具有不同采样速率的各帧之间的过渡时的声音信号的线性预测编码和解码的方法、编码器和解码器与流程

本公开涉及声音编码的领域。更具体地说,本公开涉及用于在具有不同采样速率的各帧之间的过渡时的声音信号的线性预测编码和解码的方法、编码器和解码器。



背景技术:

对于具有良好主观质量/比特率折衷的高效数字宽带话音/音频编码技术的需求关于大量应用(例如音频/视频电话会议、多媒体以及无线应用以及互联网和分组网络应用)正在增加。直到近来,200-3400Hz的范围中的电话带宽才并非主要用在话音编码应用中。然而,存在增加的对于宽带应用的需求,以增加话音信号的智能性和自然性。发现范围50-7000Hz中的带宽对于传递面对面话音质量是足够的。对于音频信号,该范围给出可接受的音频质量,但仍低于在范围20-20000Hz中操作的CD(压缩盘)质量。

话音编码器将话音信号转换为通过通信信道发送(或存储在存储介质中)的数字比特流。话音信号受数字化(通过通常每采样16比特受采样和量化),并且话音编码器具有在保持良好主观话音质量的同时通过较小数量的比特表示这些数字采样的作用。话音解码器或合成器对所发送或存储的比特流进行操作,并且将其转换回到声音信号。

能够实现良好质量/比特率折衷的最佳可用技术之一是所谓的CELP(码激励线性预测)技术。根据该技术,所采样的话音信号在通常称为帧的L个采样的连续块中受处理,其中,L是(与话音的10-30ms对应的)某预定数。在CELP中,每一帧计算并且发送LP(线性预测)合成滤波器。L个采样帧进一步划分为N个采样的称为子帧的更小的块,其中,L=kN,并且k是帧中的子帧的数量(N通常与话音的4-10ms对应)。在每个子帧中确定激励信号,其通常包括两个分量:一个来自过去激励(又称为音调贡献或自适应码本),另一个来自新进的码本(又称为固定码本)。该激励信号被发送并且在解码器处用作LP合成滤波器的输入,以获得合成的话音。

为了根据CELP技术合成话音,凭借通过对话音信号的谱特性进行建模的时变滤波对来自新进的码本的适当的码矢量进行滤波来合成N个采样的每个块。这些滤波器包括音调合成滤波器(通常实现为包含过去激励信号的自适应码本)和LP合成滤波器。在编码器端处,对于来自新进的码本的码矢量的全部或其子集计算合成输出(码本搜索)。所保留的新进的码矢量是根据感知上加权的失真测度产生最接近原始话音信号的合成输出的码矢量。使用通常从LP合成滤波器推导的所谓的感知加权滤波器执行这种感知加权。

在基于LP的编码器(例如CELP)中,LP滤波器被计算,然后每帧一次地被量化并且发送。然而,为了确保LP合成滤波器的平滑演变,基于来自过去帧的LP参数在每个子帧中内插滤波器参数。归因于滤波器稳定性问题,LP滤波器参数不适合于量化。通常使用对于量化和内插更高效的另一LP表示。一般使用的LP参数表示是线谱频率(LSF)域。

在宽带编码中,声音信号以每秒16000个采样被采样,并且所编码的带宽扩展上至7kHz。然而,在低比特率宽带编码(小于16kbit/s)时,通常更高效的是,将输入信号下采样为稍微更低的速率,并且将CELP模型以用于较低带宽,然后在解码器处使用带宽扩展以生成上至7kHz的信号。这是归因于这样的事实:CELP模型对具有高能量的较低频率建模得比较高频率更好。因此,更高效的是,在低比特率时将模型关注于较低带宽。AMR-WB标准(参考文献[1])是这样的编码示例:其中,输入信号下采样为每秒12800个采样,并且CELP对上至6.4kHz的信号进行编码。在解码器处,带宽扩展用于生成从6.4kHz到7kHz的信号。然而,在比16kbit/s更高的比特率时,由于存在足够的比特以表示整个带宽,因此更高效的是,使用CELP以对上至7kHz的信号进行编码。

最新近的编码器是多速率编码器,其覆盖宽范围的比特率,以在不同的应用场景中实现灵活性。再次,AMR-WB是这样的示例:其中,编码器按从6.6kbit/s到23.85kbit/s的比特率进行操作。在多速率编码器中,编解码器应能够基于帧在不同比特率之间进行切换,而不引入切换假声。在AMR-WB中,由于在12.8kHz内部采样速率时所有速率使用CELP,因此这是容易实现的。然而,在使用以小于16kbit/s的比特率的12.8kHz采样以及高于16kbit/s的比特率的16kHz采样的新近的编码器中,与在使用不同采样速率的各帧之间切换比特率有关的问题需要解决。主要问题在于LP滤波器过渡,并且在于合成滤波器和自适应码本的记忆。

因此,仍需要用于在具有不同内部采样速率的两个比特率之间切换基于LP的编解码器的高效方法。



技术实现要素:

根据本公开,提供一种在用于将线性预测(LP)滤波器参数从声音信号采样速率S1转换为声音信号采样速率S2的声音信号编码器中实现的方法。使用LP滤波器参数在采样速率S1计算LP合成滤波器的功率谱。修改所述LP合成滤波器的功率谱,以将其从所述采样速率S1转换为所述采样速率S2。逆变换所述LP合成滤波器的修改后的功率谱,以确定在所述采样速率S2的所述LP合成滤波器的自相关。在所述采样速率S2使用所述自相关以计算所述LP滤波器参数。

根据本公开,还提供一种在用于将接收到的线性预测(LP)滤波器参数从声音信号采样速率S1转换为声音信号采样速率S2的声音信号解码器中实现的方法。使用接收到的LP滤波器参数在采样速率S1计算LP合成滤波器的功率谱。修改所述LP合成滤波器的功率谱,以将其从所述采样速率S1转换为所述采样速率S2。逆变换所述LP合成滤波器的修改后的功率谱,以确定在所述采样速率S2的所述LP合成滤波器的自相关。在所述采样速率S2使用所述自相关以计算所述LP滤波器参数。

根据本公开,还提供一种用于在将线性预测(LP)滤波器参数从声音信号采样速率S1转换为声音信号采样速率S2的声音信号编码器中使用的设备。所述设备包括处理器,被配置为:

·在所述采样速率S1使用接收到的LP滤波器参数计算LP合成滤波器的功率谱;

·修改所述LP合成滤波器的功率谱,以将其从所述采样速率S1转换为所述采样速率S2;

·逆变换所述LP合成滤波器的修改后的功率谱,以确定在所述采样速率S2的所述LP合成滤波器的自相关;以及

·在所述采样速率S2使用所述自相关以计算所述LP滤波器参数。

本公开还涉及一种用于在用于将接收到的线性预测(LP)滤波器参数从声音信号采样速率S1转换为声音信号采样速率S2的声音信号解码器中使用的设备。所述设备包括处理器,被配置为:

·在所述采样速率S1使用接收到的LP滤波器参数计算LP合成滤波器的功率谱;

·修改所述LP合成滤波器的功率谱,以将其从所述采样速率S1转换为所述采样速率S2;

·逆变换所述LP合成滤波器的修改后的功率谱,以确定在所述采样速率S2的所述LP合成滤波器的自相关;以及

·在所述采样速率S2使用所述自相关以计算所述LP滤波器参数。

在阅读参照附图仅通过示例的方式给出的本公开的说明性实施例的以下非限定性描述时,其前述和其它目的、优点和特征将变得更清楚。

附图说明

在附图中:

图1是描述使用声音编码和解码的示例的声音通信系统的示意性框图;

图2是示出图1的声音通信系统的部分的基于CELP的编码器和解码器的结构的示意性框图;

图3示出LP参数的成帧和内插的示例;

图4是示出用于在两个不同采样速率之间转换LP滤波器参数的实施例的框图;以及

图5是形成图1和图2的编码器和/或解码器的硬件组件的示例配置的简化框图。

具体实施方式

本公开的非限定性说明性实施例涉及一种用于在使用不同内部采样速率的各帧之间在基于LP的编解码器中的高效切换的方法和设备。所述切换方法和设备可以用于包括话音信号和音频信号的任何声音信号。通过示例的方式给出16kHz内部采样速率与12.8kHz内部采样速率之间的切换,然而,切换方法和设备也可以应用于其它采样速率。

图1是描述使用声音编码和解码的示例的声音通信系统的示意性框图。声音通信系统100支持穿过通信信道101发送并且再现声音信号。通信信道101可以包括例如有线链路、光链路或光纤链路。替代地,通信信道101可以至少部分地包括射频链路。射频链路一般支持例如可以关于蜂窝电话发现的需要共享的带宽资源的多个同时话音通信。虽然未示出,但通信信道101可以由接收并且存储所编码的声音信号以用于稍后回放的通信系统101的单个设备实施例中的存储设备替换。

仍参照图1,例如,麦克风102产生原始模拟声音信号103,其提供给模数(A/D)转换器104,以用于将其转换为原始数字声音信号105。也可以从存储设备(未示出)记录并且提供原始数字声音信号105。声音编码器106对原始数字声音信号105进行编码,由此产生编码参数集合107,其编码为二进制形式并且传递到可选信道编码器108。可选信道编码器108当出现时将冗余性加入到编码参数的二进制表示,然后通过通信信道101发送它们。在接收机侧上,可选信道解码器109利用数字比特流111中的上述冗余信息,以检测并且校正可能在通过通信信道101的发送期间已经产生的信道误码,产生接收到的编码参数112。声音解码器110转换接收到的编码参数112,以用于创建所合成的数字声音信号113。声音解码器110中所重构的所合成的数字声音信号113在数模(D/A)转换器115中转换为所合成的模拟声音信号114,并且在外放扬声器单元116中被回放。替代地,所合成的数字声音信号113也可以提供给并且记录在存储设备(未示出)中。

图2是示出图1的声音通信系统的部分的基于CELP的编码器和解码器的结构的示意性框图。如图2所示,声音编解码器包括两个基本部分:声音编码器106以及声音解码器110,二者在图1的前面描述中介绍。编码器106被提供有原始数字声音信号105,确定下文中所描述的表示原始模拟声音信号103的编码参数107。参数107编码为数字比特流111,其使用通信信道(例如图1的通信信道101)发送到解码器110。声音解码器110将所合成的数字声音信号113重构为与原始数字声音信号105尽可能相似。

目前,最广泛的话音编码技术基于线性预测(LP)(具体地说,CELP)。在基于LP的编码中,凭借通过具有传递函数1/A(z)的LP合成滤波器216对激励214进行滤波产生所合成的数字声音信号113。在CELP中,激励214典型地包括两个部分:第一级,自适应码本贡献222,选自自适应码本218并且放大达自适应码本增益gp226;以及第二级,固定码本贡献224,选自固定码本220,并且放大达固定码本增益gc228。一般而言,自适应码本贡献222对激励的周期性部分进行建模,固定码本贡献214加入以对声音信号的演变进行建模。

通过典型地20ms的帧处理声音信号,并且每帧一次地发送LP滤波器参数。在CELP中,帧进一步划分为若干子帧,以对激励进行编码。子帧长度典型地是5ms。

CELP使用称为分析合成的原理,其中,可能的解码器输出已经在编码器106处的编码处理期间得以尝试(合成)并且然后与原始数字声音信号105进行比较。编码器106因此包括与解码器110的元件相似的元件。这些元件包括:自适应码本贡献250,选自自适应码本242,其提供与加权合成滤波器H(z)(见238)的冲击响应卷积的过去激励信号v(n)(LP合成滤波器1/A(z)和感知加权滤波器W(z)的级联),其结果y1(n)放大达自适应码本增益gp240。此外,所包括的是固定码本贡献252,选自固定码本244,其提供与加权合成滤波器H(z)的冲击响应卷积的新进的码矢量ck(n),其结果y2(n)放大达固定码本增益gc248。

编码器106还包括感知加权滤波器W(z)233以及LP合成滤波器1/A(z)和感知加权滤波器W(z)的级联(H(z))的零输入响应的提供器234。减法器236、254和256分别从感知加权滤波器233所滤波的原始数字声音信号105减去零输入响应、自适应码本贡献250和固定码本贡献252,以提供原始数字声音信号105与所合成的数字声音信号113之间的均方差232。

码本搜索在感知加权域中使得原始数字声音信号105与所合成的数字声音信号113之间的均方差232最小化,其中,离散时间指数n=0、1、……、N-1,N是子帧的长度。感知加权滤波器W(z)利用频率掩蔽效应,并且典型地是从LP滤波器A(z)推导的。

用于WB(宽带,50Hz-7000Hz的带宽)的感知加权滤波器W(z)的示例可见于参考文献[1]。

由于LP合成滤波器1/A(z)和加权滤波器W(z)的记忆独立于所搜索的码矢量,因此可以在固定码本搜索之前从原始数字声音信号105减去该记忆。然后可以通过图2中的H(z)所表示的滤波器1/A(z)和W(z)的级联的冲击响应的卷积完成候选码矢量的滤波。

从编码器106发送到解码器110的数字比特流111典型地包含以下参数107:LP滤波器A(z)的量化的参数、自适应码本242和固定码本244的指数以及自适应码本242和固定码本244的增益gp240和gc248。

当在具有不同采样速率的帧边界处进行切换时转换LP滤波器参数

在基于LP的编码中,LP滤波器A(z)得以每帧一次地确定,并且然后对于每个子帧内插。图3示出LP参数的成帧和内插的示例。在该示例中,目前的帧划分为四个子帧SF1、SF2、SF3和SF4,并且LP分析窗口在最后子帧SF4处居中。因此,如在最后子帧中那样使用源自目前帧F1中的LP分析的LP参数,也就是说,SF4=F1。对于前三个子帧SF1、SF2和SF3,通过在目前帧F1和先前帧F0中内插参数获得LP参数。也就是说:

SF1=0.75F0+0.25F1;

SF2=0.5F0+0.5F1;

SF3=0.25F0+0.75F1

SF4=F1。

取决于LP分析窗口形状、长度和位置,可以替代地使用其它内插示例。在另一实施例中,编码器在12.8kHz内部采样速率与16kHz内部采样速率之间切换,其中,在12.8kHz时使用每帧4个子帧,在16kHz时使用每帧5个子帧,并且其中,还在目前帧(Fm)的中间量化LP参数。在该另外实施例中,用于12.8kHz帧的LP参数内插给出如下:

SF1=0.5F0+0.5Fm;

SF2=Fm;

SF3=0.5Fm+0.5F1;

SF4=F1。

对于16kHz采样,内插给出如下:

SF1=0.55F0+0.45Fm;

SF2=0.15F0+0.85Fm;

SF3=0.75Fm+0.25F1;

SF4=0.35Fm+0.65F1;

SF5=F1。

LP分析产生使用下式计算LP合成滤波器的参数:

<mrow> <mfrac> <mn>1</mn> <mrow> <mi>A</mi> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <msup> <mi>z</mi> <mrow> <mo>-</mo> <mi>i</mi> </mrow> </msup> </mrow> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <msup> <mi>z</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mo>+</mo> <msub> <mi>a</mi> <mn>2</mn> </msub> <msup> <mi>z</mi> <mrow> <mo>-</mo> <mn>2</mn> </mrow> </msup> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msub> <mi>a</mi> <mi>M</mi> </msub> <msup> <mi>z</mi> <mrow> <mo>-</mo> <mi>M</mi> </mrow> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,ai,i=1、……、M是LP滤波器参数,M是滤波器阶数。

LP滤波器参数变换到另一域,目的是量化和内插。通常使用的其它LP参数表示是反射系数、对数面积比率、导抗谱配对(用在AMR-WB中;参考文献[1])以及线谱配对(其又称为线谱频率(LSF))。在该说明性实施例中,使用线谱频率表示。可以用于将LP参数转换为LSF参数并且反之亦然的方法的示例可见于参考文献[2]中。前述段落中的内插示例应用于LSF参数,其可以处于0至Fs/2之间的范围中(其中,Fs是采样频率)的频域中或0至π之间的比例化的频域中或余弦域(比例化频率的余弦)中。

如上所述,可以在不同的比特率时使用不同内部采样速率,以改进基于多速率LP的编码的质量。在该说明性实施例中,使用多速率CELP宽带编码器,其中,在较低比特率时使用12.8kHz的内部采样速率,在较高比特率时使用16kHz的内部采样速率。在12.8kHz采样速率时,LSF覆盖从0到6.4kHz的带宽,而在16kHz采样速率,它们覆盖从0到8kHz的范围。当在内部采样速率不同的两个帧之间切换比特率时,一些问题要解决以确保无缝切换。这些问题包括在不同采样速率时的LP滤波器参数的内插以及合成滤波器和自适应码本的记忆。

本公开引入一种用于在处于不同内部采样速率的两个帧之间高效内插LP参数的方法。通过示例的方式,考虑12.8kHz采样速率与16kHz采样速率之间的切换。然而,所公开的技术不限于这些特定采样速率,并且可以应用于其它内部采样速率。

让我们假设编码器从具有内部采样速率S1的帧F1切换到具有内部采样速率S2的帧F2。第一帧中的LP参数表示为LSF1S1,第二帧处的LP参数表示为LSF2S2。为了更新帧F2的每个子帧中的LP参数,内插LP参数LSF1和LSF2。为了执行内插,滤波器必须设置在相同的采样速率。这要求在采样速率S2执行帧F1的LP分析。为了避免在帧F1中在两个采样速率发送LP滤波器两次,可以对在编码器和解码器处都可用的过去合成信号执行在采样速率S2的LP分析。该方法包括:从速率S1到速率S2对过去合成信号重新采样;以及执行完整LP分析,该操作在解码器处重复,这通常在计算上是费力的。

在此公开替选方法和设备,用于将LP合成滤波器参数LSF1从采样速率S1转换为采样速率S2,而无需对过去合成重新采样并且执行完整LP分析。在编码和/或在解码时所使用的该方法包括:在速率S1计算LP合成滤波器的功率谱;修改功率谱,以将其从速率S1转换为速率S2;将修改后的功率谱转换回到时域,以获得在速率S2的滤波器自相关;以及最后使用自相关以在速率S2计算LP滤波器参数。

在至少一些实施例中,修改功率谱以将其从速率S1转换为速率S2包括以下操作:

如果S1大于S2,则修改功率谱包括:截断K采样功率谱下至K(S2/S1)个采样,也就是说,移除K(S1-S2)/S1个采样。

另一方面,如果S1小于S2,则修改功率谱包括:扩展K采样功率谱上至K(S2/S1)个采样,也就是说,加入K(S2-S1)/S1个采样。

可以使用Levinson-Durbin算法(见参考文献[1])完成从自相关在速率S2计算LP滤波器。一旦LP滤波器转换为速率S2,LP滤波器参数就变换到内插域,其在该说明性实施例中为LSF域。

在图4中概述上述方法,图4是示出用于在两个不同采样速率之间转换LP滤波器参数的实施例的框图。

操作的序列300示出,用于计算LP合成滤波器1/A(z)的功率谱的简单方法是在从0到2π的K个频率处估计滤波器的频率响应。

合成滤波器的频率响应由下式给出:

<mrow> <mfrac> <mn>1</mn> <mrow> <mi>A</mi> <mrow> <mo>(</mo> <mi>&omega;</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mi>j</mi> <mi>&omega;</mi> <mi>i</mi> </mrow> </msup> </mrow> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&omega;</mi> <mi>i</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>j</mi> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&omega;</mi> <mi>i</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

并且合成滤波器的功率谱计算为合成滤波器的频率响应的能量,给出如下:

<mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>&omega;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <mi>A</mi> <mrow> <mo>(</mo> <mi>&omega;</mi> <mo>)</mo> </mrow> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mo>(</mo> <mi>&omega;</mi> <mi>i</mi> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mo>(</mo> <mi>&omega;</mi> <mi>i</mi> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

初始地,LP滤波器处于等于S1的速率(操作310)。通过从0到2π的频率范围进行采样计算LP合成滤波器的K采样(即离散)功率谱(操作320)。也就是说

<mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mo>(</mo> <mfrac> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>i</mi> <mi>k</mi> </mrow> <mi>K</mi> </mfrac> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mo>(</mo> <mfrac> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>i</mi> <mi>k</mi> </mrow> <mi>K</mi> </mfrac> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>,</mo> <mi>k</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>......</mn> <mo>,</mo> <mi>K</mi> <mo>-</mo> <mn>1</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

注意,由于从π到2π的功率谱是从0到π的功率谱的镜像,因此可以通过仅对于k=0、……、K/2计算P(k)减少运算复杂度。

测试(操作330)确定以下情况中的哪些应用。在第一情况下,采样速率S1大于采样速率S2,并且用于帧F1的功率谱被截断(操作340),从而采样的新的数量是K(S2/S1)。

更详细地说,当S1大于S2时,截断的功率谱的长度是K2=K(S2/S1)个采样。由于功率谱被截断,因此从k=0、……、K2/2计算它。由于功率谱在K2/2周围是对称的,因此于是假设:

P(K2/2+k)=P(K2/2-k),从k=1、……、K2/2-1

信号的自相关的傅立叶变换给出该信号的功率谱。因此,将逆傅立叶变换应用于截断的功率谱产生在采样速率S2的合成滤波器的冲击响应的自相关。

截断的功率谱的逆离散傅立叶变换(IDFT)给出如下:

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>K</mi> <mn>2</mn> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>P</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <msup> <mi>e</mi> <mrow> <mi>j</mi> <mn>2</mn> <mi>&pi;</mi> <mi>i</mi> <mi>k</mi> <mo>/</mo> <msub> <mi>K</mi> <mn>2</mn> </msub> </mrow> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

由于滤波器阶数是M,因此于是可以仅对于i=0、……、M计算IDFT。此外,由于功率谱是实数并且对称的,因此于是功率谱的IDFT也是实数并且对称的。给定功率谱的对称性,并且仅需要M+1个相关,那么功率谱的逆变换可以给出为:

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>K</mi> <mn>2</mn> </msub> </mfrac> <mrow> <mo>(</mo> <mi>P</mi> <mo>(</mo> <mn>0</mn> <mo>)</mo> <mo>+</mo> <msup> <mrow> <mo>(</mo> <mrow> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mi>i</mi> </msup> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> </mrow> <mo>)</mo> <mo>+</mo> <mn>2</mn> <msup> <mrow> <mo>(</mo> <mrow> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mi>i</mi> </msup> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mi>k</mi> </mrow> <mo>)</mo> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mo>(</mo> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>i</mi> <mi>k</mi> <mo>/</mo> <msub> <mi>K</mi> <mn>2</mn> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

也就是说

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>K</mi> <mn>2</mn> </msub> </mfrac> <mrow> <mo>(</mo> <mi>P</mi> <mo>(</mo> <mn>0</mn> <mo>)</mo> <mo>+</mo> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> </mrow> <mo>)</mo> <mo>+</mo> <mn>2</mn> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>P</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>K</mi> <mn>2</mn> </msub> </mfrac> <mrow> <mo>(</mo> <mi>P</mi> <mo>(</mo> <mn>0</mn> <mo>)</mo> <mo>-</mo> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> </mrow> <mo>)</mo> <mo>-</mo> <mn>2</mn> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mi>k</mi> </mrow> <mo>)</mo> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mo>(</mo> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>i</mi> <mi>k</mi> <mo>/</mo> <msub> <mi>K</mi> <mn>2</mn> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mi>f</mi> <mi>o</mi> <mi>r</mi> <mi> </mi> <mi>i</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>3</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> <mo>-</mo> <mn>1</mn> </mrow>

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>K</mi> <mn>2</mn> </msub> </mfrac> <mrow> <mo>(</mo> <mi>P</mi> <mo>(</mo> <mn>0</mn> <mo>)</mo> <mo>+</mo> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> </mrow> <mo>)</mo> <mo>+</mo> <mn>2</mn> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>P</mi> <mo>(</mo> <mrow> <msub> <mi>K</mi> <mn>2</mn> </msub> <mo>/</mo> <mn>2</mn> <mo>-</mo> <mi>k</mi> </mrow> <mo>)</mo> <mi>cos</mi> <mo>(</mo> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>i</mi> <mi>k</mi> <mo>/</mo> <msub> <mi>K</mi> <mn>2</mn> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mi>f</mi> <mi>o</mi> <mi>r</mi> <mi> </mi> <mi>i</mi> <mo>=</mo> <mn>2</mn> <mo>,</mo> <mn>4</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>M</mi> </mrow>

于在采样速率S2计算自相关之后,Levinson-Durbin算法(见参考文献[1])可以用于在采样速率S2计算LP滤波器的参数。然后,LP滤波器参数变换到LSF域,以用于与帧F2的LSF的内插,以在每个子帧处获得LP参数。

在编码器对宽带信号进行编码并且从具有内部采样速率S1=16kHz的帧切换为具有内部采样速率S2=12.8kHz的帧的说明性示例中,假设K=100,那么截断的功率谱的长度是K2=100(12800/16000)=80个采样。使用公式(4)对于41个采样计算功率谱,并且然后在K2=80的情况下使用公式(7)计算自相关。

在第二情况下,当测试(操作330)确定S1小于S2时,所扩展的功率谱的长度是K2=K(S2/S1)个采样(操作350)。在从k=0、……、K/2计算功率谱之后,功率谱扩展为K2/2。由于K/2与K2/2之间不存在原始谱内容,因此可以通过使用非常低的采样值插入上至K2/2的多个采样完成扩展功率谱。简单方法是在K/2上至K2/2重复采样。由于功率谱在K2/2周围是对称的,因此于是假设:

P(K2/2+k)=P(K2/2-k),从k=1、……、K2/2-1

在任一情况下,如在公式(6)中那样计算逆DFT,以获得在采样速率S2的自相关(操作360),并且Levinson-Durbin算法(见参考文献[1])用于在采样速率S2计算LP滤波器参数(操作370)。然后,滤波器参数变换到LSF域,以用于与帧F2的LSF的内插,以在每个子帧处获得LP参数。

再次,让我们采用说明性示例,其中,编码器从具有内部采样速率

S1=12.8kHz的帧切换到具有内部采样速率S2=16kHz的帧,并且让我们假设K=80。扩展的功率谱的长度是K2=80(16000/12800)=100个采样。使用公式(4)对于51个采样计算功率谱,并且然后在K2=100的情况下使用公式(7)计算自相关。

注意,在不脱离本公开的精神的情况下,其它方法可以用于计算LP合成滤波器的功率谱或功率谱的逆DFT。

注意,在该说明性实施例中,在不同内部采样速率之间转换LP滤波器参数应用于量化的LP参数,以确定每个子帧中的内插的合成滤波器参数,并且该操作在解码器处重复。注意,加权滤波器使用非量化的LP滤波器参数,但发现,在新的帧F2中的非量化的滤波器参数与来自过去帧F1的采样转换后的量化的LP参数之间进行内插以确定每个子帧中的加权滤波器的参数是足够的。这样同样无需在非量化的LP滤波器参数上应用LP滤波器采样转换。

当在具有不同采样速率的帧边界处进行切换时的其它考虑

当在具有不同内部采样速率的各帧之间进行切换时要考虑的另一问题是自适应码本的内容,其通常包含过去激励信号。如果新的帧具有内部采样速率S2并且先前帧具有内部采样速率S1,则从速率S1到速率S2对自适应码本的内容重新采样,并且在编码器和解码器处都重复该操作。

为了减少复杂度,在本公开中,强制新的帧F2使用瞬时编码模式,其独立于过去激励历史并且因此不使用自适应码本的历史。瞬时模式编码的示例可见于PCT专利申请WO 2008/049221 A1“Method and device for coding transition frames in speech signals”中,其公开通过引用合并到此。

当在具有不同采样速率的帧边界处进行切换时的另一考虑是预测量化器的记忆。作为示例,LP参数量化器通常使用预测量化,其当参数处于不同采样速率时可能不正确地工作。为了减少切换假声,当在不同采样速率之间进行切换时,可以强制LP参数量化器进入非预测编码模式。

另一考虑是合成滤波器的记忆,当在具有不同采样速率的各帧之间进行切换时,可以对其重新采样。

最后,可以通过修改编码处理或解码处理的部分补偿当在具有不同内部采样速率的各帧之间进行切换时源自转换LP滤波器参数的附加复杂度。例如,为了不增加编码器复杂度,可以通过降低帧的第一子帧中的迭代的数量修改固定码本搜索(见参考文献[1],用于固定码本搜索的示例)。

此外,为了不增加解码器复杂度,可以跳过特定后处理。例如,在该说明性实施例中,可以使用描述于美国专利7,529,660“Method and device for frequency-selective pitch enhancement of synthesized speech”中的后处理技术,其公开通过引用合并到此。在切换到不同的内部采样速率之后,在第一帧中跳过该后处理(跳过后处理还克服对于后滤波器中所利用的过去合成的需要)。

此外,相应地可以比例化取决于采样速率的其它参数。例如,对于解码器分类器和帧擦除隐藏所使用的过去音调延迟可以由因子S2/S1比例化。

图5是形成图1和图2的编码器和/或解码器的硬件组件的示例配置的简化框图。设备400可以实现为移动终端的部分、便携式媒体播放器的部分、基站、互联网装备或在任何相似的设备中,并且可以合并编码器106、解码器110或编码器106和解码器110二者。设备400包括处理器406和存储器408。处理器406可以包括用于执行代码指令以执行图4的操作的一个或多个独特处理器。处理器406可以实施图1和图2的编码器106和解码器110的各个元件。处理器406可以进一步执行移动终端、便携式媒体播放器、基站、互联网装备等的任务。存储器408可操作地连接到处理器406。可以是非瞬时存储器的存储器408存储可由处理器406执行的代码指令。

音频输入402当用作编码器106时出现在设备400中。音频输入402可以包括例如麦克风或可连接到麦克风的接口。音频输入402可以包括麦克风102和A/D转换器104,并且产生原始模拟声音信号103和/或原始数字声音信号105。替代地,音频输入402可以接收原始数字声音信号105。类似地,当设备400用作编码器106并且被配置为将编码参数107或包含包括LP滤波器参数的参数107的数字比特流111经由通信链路(例如,经由通信信道101)转发到远程解码器或朝向另一存储器(未示出)以用于存储时,已编码输出404出现。已编码输出404的非限定性实现方式示例包括移动终端的无线电接口、物理接口(例如比如便携式媒体播放器的通用串行总线(USB)端口等)。

已编码输入403和音频输出405都出现在当用作解码器110时的设备400中。已编码输入403可以构造为从编码器106的已编码输出404接收编码参数107或包含包括LP滤波器参数的参数107的数字比特流111。当设备400包括编码器106和解码器110时,已编码输出404和已编码输入403可以形成公共通信模块。音频输出405可以包括D/A转换器115和外放扬声器单元116。替代地,音频输出405可以包括可连接到音频播放器、外放扬声器、记录设备等的接口。

音频输入402或已编码输入403也可以从存储设备(未示出)接收信号。以相同方式,已编码输出404和音频输出405可以将输出信号提供给存储设备(未示出),以用于记录。

音频输入402、已编码输入403、已编码输出404以及音频输出405都可操作地连接到处理器406。

本领域技术人员应理解,用于声音信号的线性预测编码和解码的方法、编码器和解码器的描述仅是说明性的,而非意图以任何方式进行限制。其它实施例将容易地对具有本公开的益处的本领域技术人员建议它们自身。此外,所公开的方法、编码器和解码器可以定制为提供对于在具有不同采样速率的两个比特率之间切换基于线性预测的编解码器的现有需要和问题的有价值的解决方案。

为了清楚,在此并未示出并且描述方法、编码器和解码器的实现方式的所有常规特征。当然,应理解,在方法、编码器和解码器的任何这样的实际实现方式的发展中,可能需要进行大量实现方式特定的判断,以实现开发者的特定目的(例如与和应用、系统、网络和商业有关的约束的顺应性),并且这些特定目的将随着实现方式并且随着开发者而变化。此外,应理解,开发努力可能是复杂并且耗时的,但对于具有本公开的益处的声音编码领域的技术人员将绝非是承揽工程的常规。

根据本公开,可以使用各种类型的操作系统、计算平台、网络设备、计算机程序和/或通用机器实现在此所描述的组件、处理操作和/或数据结构。此外,本领域技术人员应理解,也可以使用较不通用的性质的设备(例如硬连线设备、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)。在通过计算机或机器实现包括一系列操作的方法并且这些操作可以存储为一系列可由机器读取的指令的情况下,它们可以存储在有形介质上。

在此所描述的系统和模块可以包括适合于在此所描述的目的之软件、固件、硬件或软件、固件或硬件的任何组合。

虽然在上文中已经通过本公开的非限定性说明性实施例描述了本公开,但在不脱离本公开的精神和性质的情况下,可以在所附权利要求的范围内任意修改这些实施例。

参考文献

在此通过引用合并以下参考文献。

[1]3GPP Technical Specification 26.190,"Adaptive Multi-Rate-Wideband(AMR-WB)speech codec;Transcoding functions,"July 2005;http://www.3gpp.org.

[2]ITU-T Recommendation G.729"Coding of speech at 8kbit/s usingconjugate-structure algebraic-code-excited linear prediction(CS-ACELP)",01/2007.

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1