一种音频信号的时域包络处理方法及装置、编码器与流程

文档序号:11136034阅读:957来源:国知局
一种音频信号的时域包络处理方法及装置、编码器与制造工艺

本发明实施例涉及通信技术领域,尤其涉及一种音频信号的时域包络处理方法及装置、编码器。



背景技术:

随着语音频压缩技术的高速发展,各种语音频编码算法也相继出现。在语音频编码算法的处理过程中,需要计算时域包络,现有的计算并量化时域包络的过程为:根据事先设定好的计算时域包络的个数M,M为正整数,将预处理后的原始高带信号和预测的高带信号分别分成M个子帧,对子帧进行加窗,然后计算各个子帧内预处理后的原始高带信号和预测的高带信号的能量或幅度比。其中,事先设定好的计算时域包络的个数M是根据前向缓存(lookahead buffer)的长度来确定。前向缓存是当前帧为了计算一些参数的需要,将输入信号的最后某些样点缓存不用,在下一帧计算参数时使用,当前帧使用的是前一帧缓存的样点。缓存的这些样点即为前向缓存,缓存的样点的个数即为前向缓存的长度。

上述对时域包络的处理过程存在的问题是:在求解时域包络时,利用的都是对称窗,同时为了保证子帧间和帧间的混叠,根据前向缓存(lookahead)的长度计算了多个时域包络。但在计算时域包络时,如果信号的时域分辨率太高,会造成帧内能量的不连续,从而引入很差的听觉感受。



技术实现要素:

本发明实施例提供一种音频信号的时域包络处理方法及装置、编码器,可解决在计算时域包络时造成的帧内能量的不连续的问题。

第一方面,本发明实施例提供一种音频信号的时域包络处理方法,包括:

根据接收到的当前帧信号,得到所述当前帧信号的高带信号;

根据预先确定的时域包络个数M将所述当前帧的高带信号分成M个子帧,其中,M为大于等于2的整数;

计算每一个所述子帧的时域包络;

其中,所述计算每一个所述子帧的时域包络包括:

采用非对称窗对所述M个子帧中的最前端的子帧和所述M个子帧中的最末端的子帧进行加窗;

对所述M个子帧中除所述最前端的子帧和所述最末端的子帧之外的子帧进行加窗。

根据本发明实施例提供的音频信号的时域包络的处理方法,在不同的条件下采用不同的窗长度和/或窗形状求解时域包络,减少因为时域包络差别太大引入的能量不连续的影响,能够提升输出信号的性能。

在第一方面的第一种可能的实施方式中,在采用非对称窗对所述M个子帧中的最前端的子帧和所述M个子帧中的最末端的子帧进行加窗之前,所述方法还包括:

根据所述当前帧信号的高带信号的前向缓存的长度确定所述非对称窗;或者,

根据所述当前帧信号的高带信号的前向缓存的长度和所述时域包络个数M确定所述非对称窗。

结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述对所述M个子帧中除所述最前端的子帧和所述最末端的子帧之外的子帧进行加窗,包括:

对所述M个子帧中除最前端的子帧和所述最末端的子帧之外的子帧采用对称窗进行加窗;或者,

对所述M个子帧中除最前端的子帧和所述最末端的子帧之外的子帧采用非对称窗进行加窗。

结合第一方面,在第一方面的第三种可能的实施方式中,所述非对称窗的窗长与对所述M个子帧中除所述最前端的子帧和所述最末端的子帧之外的子帧进行加窗所采用的窗的窗长相同。

结合第一方面的第一种可能的实施方式至第一方面的第三种可能的实施方式任意之一所述的方法,在第一方面的第四种可能的实施方式中,所述根据所述当前帧音频信号的高带信号的前向缓存的长度确定非对称窗,包括:

当所述当前帧信号的高带信号的前向缓存的长度小于第一阈值时,根据当前帧的前一帧信号的高带信号和所述当前帧信号的高带信号的前向缓存的长度确定所述非对称窗,其中,所述当前帧的前一帧信号的高带信号的最末端子帧采用的非对称窗和所述当前帧信号的高带信号的最前端子帧采用的非对称窗的混叠部分等于所述当前帧信号的高带信号的前向缓存的长度,所述第一阈值等于所述当前帧的高带信号的帧长除以M。

结合第一方面的第一种可能的实施方式至第一方面的第三种可能的实施方式任意之一所述的方法,在第一方面的第五种可能的实施方式中,所述根据所述当前帧信号的高带信号的前向缓存的长度确定非对称窗,包括:

当所述当前帧信号的高带信号的前向缓存的长度大于第一阈值时,根据所述当前帧的前一帧信号的高带信号和所述当前帧信号的高带信号的前向缓存的长度确定所述非对称窗,其中,所述当前帧的前一帧信号的高带信号的最末端子帧采用的非对称窗和所述当前帧信号的高带信号的最前端子帧采用的非对称窗的混叠部分等于所述第一阈值,所述第一阈值等于所述当前帧的高带信号的帧长除以M。

结合第一方面至第一方面的第五种可能的实施方式任意之一所述的方法,在第一方面的第六种可能的实施方式中,根据下列之一方式确定所述时域包络个数M:

根据所述当前帧信号得到所述当前帧信号的低带信号,当所述当前帧信号的低带信号的基音周期大于第二阈值时,M=M1;或者,

根据所述当前帧信号得到所述当前帧信号的低带信号,当所述当前帧信号的低带信号的基音周期不大于第二阈值时,M=M2;

其中,M1,M2均为正整数,且M2>M1。

结合第一方面至第一方面的第五种可能的实施方式任意之一所述的方法,在第一方面的第七种可能的实施方式中,所述方法还包括:

根据所述当前帧信号得到所述当前帧信号的低带信号的基音周期;

当所述当前帧信号的类型与所述当前帧的前一帧信号的类型相同,且所述当前帧的低带信号的基音周期大于第三阈值时,对每一个所述子帧的时域包络进行平滑处理。

第二方面,本发明实施例提供一种音频信号的时域包络处理装置,包括:

高带信号获取模块,用于根据接收到的当前帧信号,得到所述当前帧信号的高带信号;

子帧获取模块,用于根据预先确定的时域包络个数M将所述当前帧的高带信号分成M个子帧,其中,M为大于等于2的整数;

时域包络获取模块,用于计算每一个所述子帧的时域包络;

其中,所述时域包络获取模块具体用于:

采用非对称窗对所述M个子帧中的最前端的子帧和所述M个子帧中的最末端的子帧进行加窗;

对所述M个子帧中除所述最前端的子帧和所述最末端的子帧之外的子帧进行加窗。

根据本发明实施例提供的音频信号的时域包络的处理装置,在不同的条件下采用不同的窗长度和/或窗形状求解时域包络,减少因为时域包络差别太大引入的能量不连续的影响,能够提升输出信号的性能。

在第二方面的第一种可能的实施方式中,所述时域包络获取模块还用于:

根据所述当前帧信号的高带信号的前向缓存的长度确定所述非对称窗;或者,

根据所述当前帧信号的高带信号的前向缓存的长度和所述时域包络个数M确定所述非对称窗。

结合第二方面的实施方式,在第二方面的第二种可能的实施方式中,所述时域包络获取模块具体用于:

采用非对称窗对所述M个子帧中的最前端的子帧和所述M个子帧中的最末端的子帧进行加窗,对所述M个子帧中除最前端的子帧和所述最末端的子帧之外的子帧采用对称窗进行加窗;或者,

采用非对称窗对所述M个子帧中的最前端的子帧和所述M个子帧中的最末端的子帧进行加窗,对所述M个子帧中除最前端的子帧和所述最末端的子帧之外的子帧采用非对称窗进行加窗。

结合第二方面的实施方式,在第二方面的第三种可能的实施方式中,所述非对称窗的窗长与对所述M个子帧中除所述最前端的子帧和所述最末端的子帧之外的子帧进行加窗所采用的窗的窗长相同。

结合第二方面至第二方面的第三种可能的实施方式任意之一所述的装置,在第二方面的第四种可能的实施方式中,还包括:确定模块,用于根据下列之一方式确定所述时域包络个数M:

根据所述当前帧信号得到所述当前帧信号的低带信号,当所述当前帧信号的低带信号的基音周期大于第二阈值时,M=M1;或者,

根据所述当前帧信号得到所述当前帧信号的低带信号,当所述当前帧信号的低带信号的基音周期不大于第二阈值时,M=M2;

其中,M1,M2均为正整数,且M2>M1。

本发明第三方面的实施例公开了一种编码器,所述编码器具体用于:

用于根据接收到的当前帧信号,得到所述当前帧信号的低带信号和所述当前帧信号的高带信号;

对所述当前帧信号的低带信号进行编码,得到低带编码的激励信号;

对所述当前帧信号的高带信号进行线性预测,得到线性预测系数;

量化所述线性预测系数,得到量化后的线性预测系数;

根据所述低带编码的激励信号和所述量化后的线性预测系数得到预测的高带信号;

计算及量化所述预测的高带信号的时域包络;

其中,所述计算所述预测的高带信号的时域包络包括:

根据预先确定的时域包络个数M将所述预测的高带信号分成M个子帧,其中,M为大于等于2的整数,

采用非对称窗对所述M个子帧中的最前端的子帧和所述M个子帧中的最末端的子帧进行加窗,

对所述M个子帧中除所述最前端的子帧和所述最末端的子帧之外的子帧进行加窗;

对量化后的时域包络进行编码。

根据本发明实施例提供的编码器,在不同的条件下采用不同的窗长度和/或窗形状求解时域包络,减少因为时域包络差别太大引入的能量不连续的影响,能够提升输出信号的性能。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为一种对音频信号进行编码的过程示意图;

图2为本发明音频信号的时域包络处理方法实施例一的流程图;

图3为本发明实施例中对音频信号进行处理的示意图;

图4为本发明另一实施例的对音频信号进行处理的示意图;

图5为本发明另一实施例的对音频信号进行处理的示意图;

图6为本发明音频信号的时域包络处理方法实施例二的流程图;

图7为本发明实施例的时域包络处理装置的结构示意图;

图8为本发明实施例的编码器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为一种对语音频信号进行编码的过程示意图,如图1所示,在编码端,在获得原始音频信号后,首先对原始音频信号进行信号分解,得到原始音频信号的低带信号和高带信号,接着对低带信号通过已有算法进行编码得到低带的码流,已有算法(例如代数码本激励线性预测编码(Algebraic Code Excited Linear Prediction,简称:ACELP),或码本激励线性预测编码(Code Excited Linear Prediction,简称:CELP等算法),同时,在进行低带编码过程中,得到低带的激励信号,并对低带激励信号进行预处理;对于原始音频信号的高带信号,首先进行预处理,然后做线性预测(Linear prediction,以下简称:LP)分析得到LP系数,量化该LP系数。接着将预处理后的低带激励信号通过LP合成滤波器(滤波器系数为量化后的LP系数)得到预测的高带信号。根据预处理后的高带信号和预测的高带信号,计算及量化高带信号的时域包络,最后输出编码码流(MUX)。计算并量化高带信号的时域包络的过程为:根据事先设定好的时域包络的个数N,将预处理后的高带信号和预测的高带信号分别分成N个子帧,对每一个子帧进行加窗,然后计算预处理后的原始高带信号每一个子帧和预测的高带信号的相对应的每一个子帧的时域能量或子帧内每个样点幅度的平均值。其中,事先设定好的时域包络的个数N是根据前向缓存(lookahead)的长度来确定的,N为正整数。

本发明实施例提供一种音频信号的时域包络处理方法,主要用于图1中所示的计算及量化时域包络的步骤,还可以用于其它采用同样原理的求解时域包络的处理流程中。下面结合附图详细说明本发明实施例提供的音频信号的时域包络处理方法。

图2为本发明音频信号的时域包络处理方法实施例一的流程图,如图2所示,本实施例的方法包括:

S21、根据接收到的当前帧信号,得到当前帧信号的高带信号。

当前帧信号即可以是语音信号,也可以是音乐信号,还可能是噪音信号,在此不做具体的限制。

S22、根据预先确定的时域包络个数M将当前帧的高带信号分成M个子帧,其中,M为大于等于2的整数。

其中,具体来说,要预先确定的时域包络个数M可以是根据整体算法要求和经验值确定。时域包络个数M例如是编码器事先根据整体算法或经验值确定,确定后不会改变。例如一般对20ms一帧的输入信号,如果输入信号相对平稳,求解4个或者2个时域包络,但对一些非平稳信号,需要求解更多如8个时域包络。

S23、计算每一个子帧的时域包络。

其中,计算每一个子帧的时域包络包括:

采用非对称窗对M个子帧中的最前端的子帧和M个子帧中的最末端的子帧进行加窗。

对M个子帧中除最前端的子帧和最末端的子帧之外的子帧进行加窗。

进一步地,在采用非对称窗对M个子帧中的最前端的子帧和M个子帧中的最末端的子帧进行加窗之前,本实施例的方法还可以包括:

根据当前帧信号的高带信号的前向缓存的长度确定非对称窗;或者,

根据当前帧信号的高带信号的前向缓存的长度和时域包络个数M确定非对称窗。

其中,对M个子帧中除最前端的子帧和最末端的子帧之外的子帧进行加窗,具体可以包括:

对M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用对称窗进行加窗;或者,

对M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用非对称窗进行加窗。

其中,在一种可能的实施方式中,对最前端子帧和最末端子帧加窗使用的非对称窗的窗长与对M个子帧中除最前端的子帧和最末端的子帧之外的子帧进行加窗所采用的窗的窗长相同。

在上述实施例中,作为一种可实施的方式,根据当前帧音频信号的高带信号的前向缓存的长度确定非对称窗,包括:

当当前帧信号的高带信号的前向缓存的长度小于第一阈值时,根据当前帧的前一帧信号的高带信号和当前帧信号的高带信号的前向缓存的长度确定非对称窗,其中,当前帧的前一帧信号的高带信号的最末端子帧采用的非对称窗和当前帧信号的高带信号的最前端子帧采用的非对称窗的混叠部分等于当前帧信号的高带信号的前向缓存的长度,第一阈值等于当前帧的高带信号的帧长除以M。

在一种可能的实施方式中,根据当前帧信号的高带信号的前向缓存的长度确定非对称窗,包括:

当当前帧信号的高带信号的前向缓存的长度大于第一阈值时,根据当前帧的前一帧信号的高带信号和当前帧信号的高带信号的前向缓存的长度确定非对称窗,其中,当前帧的前一帧信号的高带信号的最末端子帧采用的非对称窗和当前帧信号的高带信号的最前端子帧采用的非对称窗的混叠部分等于第一阈值,第一阈值等于当前帧的高带信号的帧长除以M。

在本发明的一种实施例中,根据下列之一方式确定时域包络个数M:

根据当前帧信号得到当前帧信号的低带信号,当当前帧信号的低带信号的基音周期大于第二阈值时,M=M1;或者,

根据当前帧信号得到当前帧信号的低带信号,当当前帧信号的低带信号的基音周期不大于第二阈值时,M=M2;

其中,M1,M2均为正整数,且M2>M1。在一种可能的方式中,M1=4,M2=8。

在上述实施例中,进一步地,本实施例的方法还可以包括:

根据当前帧信号得到当前帧信号的低带信号的基音周期;

当当前帧信号的类型与当前帧的前一帧信号的类型相同,且当前帧的低带信号的基音周期大于第三阈值时,对每一个子帧的时域包络进行平滑处理。

对时域包络做平滑处理,具体可以是:将相邻的两个子帧的时域包络加权,加权后的时域包络作为这两个子帧的时域包络。例如,当解码端连续两帧信号都是浊音信号,或者一帧是浊音信号一帧是普通信号,且低带信号的基音周期大于给定阈值(大于70个样点,此时低带信号的采样率为12.8kHz采样)时,则对解码的高带信号时域包络做平滑处理,否则保持时域包络不变。平滑处理可以为:

env[0]=0.5*(env[0]+env[1]);

env[1]=0.5*(env[0]+env[1]);

env[N-1]=0.5*(env[N-1]+env[N]);

env[N]=0.5*(env[N-1]+env[N])。

其中,env[]为时域包络。

可以理解的是,上述步骤序号只是为了帮助理解本发明实施例而做出的一种示例,而不是对本发明实施例的具体限制。在实际的处理过程中,并不需要严格的按照上述顺序的限制。例如,可以先对除最前端和最末端的子帧之外的子帧进行加窗,再对最前端和最末端的子帧进行加窗。

图3为本发明实施例中对音频信号进行处理的示意图。

如图3所示,在编码端,在获得原始音频信号后,首先对原始音频信号进行信号分解,得到原始音频信号的低带信号和高带信号,接着对低带信号通过已有算法进行编码得到低带的码流,同时,在进行低带编码过程中,得到低带的激励信号,并对低带激励信号进行预处理;对于原始音频信号的高带信号,首先进行预处理,然后做LP分析得到LP系数,量化该LP系数。接着将预处理后的低带激励信号通过LP合成滤波器(滤波器系数为量化后的LP系数)得到预测的高带信号。根据预处理后的高带信号和预测的高带信号,计算及量化高带信号的时域包络,最后输出编码码流。

除了计算及量化高带信号的时域包络的步骤之外,对于音频信号的其它步骤的处理可以参考现有技术中所采用的方法,在此不再赘述。

下面以具体对图3中所示的N+1帧的处理来描述本发明实施例中计算及量化时域包络的步骤。

如图3所示,将第N+1帧按照需要计算的时域包络的个数划分为M个子帧,M为正整数。在一种可能的实施方式中,M的值可以是3、4、5、8等。在此不做限制。

对M个子帧中的最前端的子帧和M个子帧中最末端的子帧采用非对称窗进行加窗。N+1帧的M个子帧中最前端的子帧为与前一帧(N帧)的信号有重叠部分的子帧;最末端的子帧为与后一帧(N+2帧,图中未示出)的信号有重叠部分的子帧。在一种可能的方式中,如图3所示,最前端的子帧即为N+1帧中最左端的子帧,最末端的子帧即为N+1帧中最右端的子帧。可以理解的是,最左和最右只是结合图3的一种具体示例,而不是对本发明实施例的限制。实际中子帧的划分是不存在最左、最右这种方向性限制的。

对于最前端的子帧和最末端的子帧加窗所使用的非对称窗可以完全相同,也可以不同。在此不做限制。在一种可能的实现方式中,最前端子帧使用的非对称窗的窗长和最末端子帧所使用的非对称窗的窗长相同。

在本发明的一个实施例中,如图3所示,对N+1帧的M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用对称窗进行加窗。

在本发明的一个实施例中,对于最前端的子帧和最末端的子帧加窗所采用的非对称窗的窗长与对其它子帧采用的对称窗的窗长相等。可以理解的是,在另一种可能的方式中,非对称窗的窗长和对称窗的窗长也可以不等。

在本发明的一个实施例中,当第N+1帧的帧长为80个样点,采样率为4kHz时,可以求解8个时域包络。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz时,也可以求解4个时域包络。

在本发明的一个实施例中,除了预先设定之外,还可以根据N+1帧的其它信息预先确定时域包络的个数N。下面是确定时域包络的个数N的实现方式的示例:

在一种可能实现的方式中,当第N+1帧的低带信号的基音周期大于第二阈值时,N=4;或者,当第N+1帧的低带信号的基音周期不大于第二阈值时,N=8。对于采用率为12.8kHz的低带信号,第二阈值可以为70个样点。可以理解的是,上述数值只是为了帮助理解本发明实施例而做出的一种具体举例,而不是对本发明实施例的具体限制。如图3所示,在对第N+1帧的信号进行信号分解时可以得到第N+1帧的低带信号,信号分解所采用的方法和求解低带信号的基音周期的方式可以采用现有技术中的任意一种方式,在此不做具体的限制。

可以理解的是,除了利用低带信号的基音周期以外,还可以利用信号的能量等其它参数。

在本发明的一个实施例中,在利用非对称窗对最前端的子帧和最末端的子帧进行加窗时,根据前向缓存的长度确定非对称窗。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解8个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为20个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于10。则当前向缓存的长度小于10个样点时,第8个子帧(即,最末端的子帧)采用的窗和第1个子帧(即,最前端的子帧)采用的窗的混叠部分等于前向缓存的长度。当前向缓存的长度大于等于10个样点时,第8个子帧采用的窗的右侧和第1个子帧采用的窗的左侧的长度可以等于另一侧(例如第一个子帧采用的窗的右侧或第八个子帧采用的窗的左侧)的窗长(10个样点),也可以根据经验设定一个长度(如,保持和前向缓存小于10个样点时相同的长度)。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解4个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为40个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于20。

在加窗后,计算各个子帧内预处理后的原始高带信号和预测的高带信号的时域能量或子帧内每个样点幅度的平均值。具体的计算方式可参考现有技术中提供的方式,本发明实施例提供的信号处理的方法在加窗时所采用的窗的形状和所需要加窗的个数的确定方式与现有技术不同。其它的计算方式均可参考现有技术中提供的方式。

根据本发明实施例提供的音频信号的时域包络的处理方法,在不同的条件下采用不同的窗长度和/或窗形状求解时域包络,减少因为时域包络差别太大引入的能量不连续的影响,能够提升输出信号的性能。

下面以具体对图4中所示的N+1帧的处理来描述本发明另一实施例中计算及量化时域包络的步骤。

图4为本发明另一实施例的对音频信号进行处理的示意图,如图4所示,和图3所示类似,将第N+1帧按照需要计算的时域包络的个数划分为M个子帧,M为正整数。在一种可能的实施方式中,M的值可以是3、4、5、8等。在此不做限制。

对M个子帧中的最前端的子帧和M个子帧中最末端的子帧采用非对称窗进行加窗。如图4所示,对于最前端的子帧和最末端的子帧加窗所使用的非对称窗不同。在一种可能的实现方式中,最前端子帧使用的非对称窗的窗长和最末端子帧所使用的非对称窗的窗长相同,也可以不同。

在本发明的一个实施例中,如图4所示,对N+1帧的M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用形状相同的非对称窗进行加窗。

在本发明的一个实施例中,当第N+1帧的帧长为80个样点,采样率为4kHz时,可以求解8个时域包络。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz时,也可以求解4个时域包络。

在本发明的一个实施例中,除了预先设定之外,还可以根据N+1帧的其它信息预先确定时域包络的个数N。下面是确定时域包络的个数N的实现方式的示例:

在一种可能实现的方式中,当第N+1帧的低带信号的基音周期大于第二阈值时,N=4;或者,当第N+1帧的低带信号的基音周期不大于第二阈值时,N=8。对于采用率为12.8kHz的低带信号,第二阈值可以为70个样点。可以理解的是,上述数值只是为了帮助理解本发明实施例而做出的一种具体举例,而不是对本发明实施例的具体限制。如图4所示,在对第N+1帧的信号进行信号分解时可以得到第N+1帧的低带信号,信号分解所采用的方法和求解低带信号的基音周期的方式可以采用现有技术中的任意一种方式,在此不做具体的限制。

可以理解的是,除了利用低带信号的基音周期以外,还可以利用信号的能量等其它参数。

在本发明的一个实施例中,在利用非对称窗对最前端的子帧和最末端的子帧进行加窗时,根据前向缓存的长度确定非对称窗。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解8个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为20个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于10。则当前向缓存的长度小于10个样点时,第8个子帧采用的窗(即,最末端的子帧)和第1个子帧(即,最前端的子帧)采用的窗的混叠部分等于前向缓存的长度。当前向缓存的长度大于等于10个样点时,第8个子帧采用的窗的右侧和第1个子帧采用的窗的左侧的长度可以等于另一侧(例如第1个子帧采用的窗的右侧或第8个子帧采用的窗的左侧)的窗长(10个样点),也可以根据经验设定一个长度(如,保持和前向缓存小于10个样点时相同的长度)。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解4个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为40个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于20。

在加窗后,计算各个子帧内预处理后的原始高带信号和预测的高带信号的时域能量或子帧内每个样点幅度的平均值。具体的计算方式可参考现有技术中提供的方式,本发明实施例提供的信号处理的方法在加窗时所采用的窗的形状和所需要加窗的个数的确定方式与现有技术不同。其它的计算方式均可参考现有技术中提供的方式。

下面以具体对图5中所示的N+1帧的处理来描述本发明另一实施例中计算及量化时域包络的步骤。

图5为本发明另一实施例的对音频信号进行处理的示意图,如图5所示,在编码端,在获得原始音频信号后,首先对原始音频信号进行信号分解,得到原始音频信号的低带信号和高带信号,接着对低带信号通过已有算法进行编码得到低带的码流,同时,在进行低带编码过程中,得到低带的激励信号,并对低带激励信号进行预处理;对于原始音频信号的高带信号,首先进行预处理,然后做LP分析得到LP系数,量化该LP系数。接着将预处理后的低带激励信号通过LP合成滤波器(滤波器系数为量化后的LP系数)得到预测的高带信号。根据预处理后的高带信号和预测的高带信号,计算及量化高带信号的时域包络,最后输出编码码流。

除了计算及量化高带信号的时域包络的步骤之外,对于音频信号的其它步骤的处理可以参考现有技术中所采用的方法,在此不再赘述。

下面以具体对图5中所示的N+1帧的处理来描述本发明实施例中计算及量化时域包络的步骤。

如图5所示,将第N+1帧按照需要计算的时域包络的个数划分为M个子帧,M为正整数。在一种可能的实施方式中,M的值可以是3、4、5、8等。在此不做限制。

对M个子帧中的最前端的子帧和M个子帧中最末端的子帧采用非对称窗进行加窗。N+1帧的M个子帧中最前端的子帧为与前一帧(N帧)的信号有重叠部分的子帧;最末端的子帧为与后一帧(N+2帧,图中未示出)的信号有重叠部分的子帧。在一种可能的方式中,如图3所示,最前端的子帧即为N+1帧中最左端的子帧,最末端的子帧即为N+1帧中最右端的子帧。可以理解的是,最左和最右只是结合图3的一种具体示例,而不是对本发明实施例的限制。实际中子帧的划分是不存在最左、最右这种方向性限制的。

对于最前端的子帧和最末端的子帧加窗所使用的非对称窗可以完全相同,也可以不同。在此不做限制。在一种可能的实现方式中,最前端子帧使用的非对称窗的窗长和最末端子帧所使用的非对称窗的窗长相同。

在本发明的一种可能实现的方式中,对M个子帧中的最前端的子帧和M个子帧中最末端的子帧采用非对称窗进行加窗,其中对M个子帧中的最前端的子帧采用的非对称窗与对M个子帧中最末端的子帧采用的非对称窗的形状不同,其中一个非对称窗以水平方向旋转180度可以与另一个非对称窗重合。在一种可能的实现方式中,最前端子帧使用的非对称窗的窗长和最末端子帧所使用的非对称窗的窗长相同。在本发明的一个实施例中,如图5所示,对N+1帧的M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用对称窗进行加窗。对称窗的窗长与非对称窗的窗长不同。例如,对帧长为20ms(80个样点)采样率为4kHz的信号:如果前向缓存为5个样点,求解4个时域包络,采用本实施例的窗,两端的窗长为30个样点,连续两帧混叠时的样点数为5个样点,中间的两个窗长为50个样点,混叠25个样点。

在本发明的一个实施例中,如图5所示,对N+1帧的M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用对称窗进行加窗。

在本发明的一个实施例中,对于最前端的子帧和最末端的子帧加窗所采用的非对称窗的窗长与对其它子帧采用的对称窗的窗长相等。可以理解的是,在另一种可能的方式中,非对称窗的窗长和对称窗的窗长也可以不等。

在本发明的一个实施例中,当第N+1帧的帧长为80个样点,采样率为4kHz时,可以求解8个时域包络。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz时,也可以求解4个时域包络。

在本发明的一个实施例中,除了预先设定之外,还可以根据N+1帧的其它信息预先确定时域包络的个数N。下面是确定时域包络的个数N的实现方式的示例:

在一种可能实现的方式中,当第N+1帧的低带信号的基音周期大于第二阈值时,N=4;或者,当第N+1帧的低带信号的基音周期不大于第二阈值时,N=8。对于采用率为12.8kHz的低带信号,第二阈值可以为70个样点。可以理解的是,上述数值只是为了帮助理解本发明实施例而做出的一种具体举例,而不是对本发明实施例的具体限制。如图3所示,在对第N+1帧的信号进行信号分解时可以得到第N+1帧的低带信号,信号分解所采用的方法和求解低带信号的基音周期的方式可以采用现有技术中的任意一种方式,在此不做具体的限制。

可以理解的是,除了利用低带信号的基音周期以外,还可以利用信号的能量等其它参数。

在本发明的一个实施例中,在利用非对称窗对最前端的子帧和最末端的子帧进行加窗时,根据前向缓存的长度确定非对称窗。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解8个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为20个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于10。则当前向缓存的长度小于10个样点时,第8个子帧(即,最末端的子帧)采用的窗和第1个子帧(即,最前端的子帧)采用的窗的混叠部分等于前向缓存的长度。当前向缓存的长度大于等于10个样点时,第8个子帧采用的窗的右侧和第1个子帧采用的窗的左侧的长度可以等于另一侧(例如第一个子帧采用的窗的右侧或第八个子帧采用的窗的左侧)的窗长(10个样点),也可以根据经验设定一个长度(如,保持和前向缓存小于10个样点时相同的长度)。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解4个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为40个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于20。

在加窗后,计算各个子帧内预处理后的原始高带信号和预测的高带信号的时域能量或子帧内每个样点幅度的平均值。具体的计算方式可参考现有技术中提供的方式,本发明实施例提供的信号处理的方法在加窗时所采用的窗的形状和所需要加窗的个数的确定方式与现有技术不同。其它的计算方式均可参考现有技术中提供的方式。

根据本发明实施例提供的音频信号的时域包络的处理方法,在不同的条件下采用不同的窗长度和/或窗形状求解时域包络,减少因为时域包络差别太大引入的能量不连续的影响,能够提升输出信号的性能。

本实施例提供的音频信号的时域包络处理方法,通过根据接收到的音频帧信号得到音频帧的高带信号,然后根据预先确定的时域包络个数M将音频帧的高带信号分成M个子帧,最后计算每一个子帧的时域包络。从而有效避免了在lookahead很短,同时要保证子帧间很好的混叠引起的求解过多时域包络的问题,进而避免了对一些信号,因过多求解时域包络而引入的能量不连续的问题,同时降低了计算复杂度。

图6为本发明音频信号的时域包络处理方法实施例二的流程图,如图6所示,本实施例的方法可以包括:

S60、接收到待处理信号后,根据第一频带内时域信号的平稳状态或第二频带信号的基音周期大小,确定对待处理信号计算的时域包络个数M,第一频带为待处理信号的时域信号的频带或整个输入信号的频带,第二频带为低于给定阈值的频带或整个输入信号的频带。

其中,确定对待处理信号计算的时域包络个数M,具体包括:

当第一频带内时域信号处于平稳状态或第二频带信号的基音周期大于预设阈值时,M等于M1,否则M等于M2,M1大于M2,M1、M2都为正整数,预设阈值根据采样率确定。

平稳状态是指时域信号在一定时间内的能量或幅度的均值变化不大,或时域信号在一定时间内的偏差小于给定阈值。

例如,对帧长为20ms(80个样点)采样率为4kHz的高带信号,如果高带时域信号子帧间的能量的比值小于给定阈值(小于0.5),或低带信号的基音周期大于给定阈值(大于70个样点,此时低带信号的采样率为12.8kHz采样),则在对高带信号求解时域包络时,求解4个时域包络;否则,求解8个时域包络。

例如,对帧长为20ms(320个样点)采样率为16kHz的高带信号,如果高带时域信号子帧间的能量的比值小于给定阈值(小于0.5),或低带信号的基音周期大于给定阈值(大于70个样点,此时低带信号的采样率为12.8kHz采样),则在对高带信号求解时域包络时,求解2个时域包络;否则,求解4个时域包络。

S61、将待处理信号分成M个子帧,计算每一个子帧的时域包络。

其中,本实施例对每一个子帧进行加窗处理时,不限定采用何种加窗方式进行加窗处理。

本实施例提供的音频信号的时域包络处理方法,通过根据不同的条件求解不同个数的时域包络,有效避免了对一定条件下的信号求解过多的时域包络造成的能量不连续,进而引起的听觉质量下降,同时,可以有效降低算法的平均复杂度。

本发明实施例还提供一种音频信号的时域包络处理装置,可以用于执行图1-图5中所示部分方法,还可以用于其它采用同样原理的求解时域包络的处理流程中。下面结合附图详细说明本发明实施例提供的音频信号的时域包络处理装置的结构。

图7为本发明实施例的时域包络处理装置的结构示意图,如图7所示,本实施例的时域包络处理装置70包括:高带信号获取模块71,用于根据接收到的当前帧信号,得到当前帧信号的高带信号;子帧获取模块72,用于根据预先确定的时域包络个数M将当前帧的高带信号分成M个子帧,其中,M为大于等于2的整数;时域包络获取模块73,用于计算每一个子帧的时域包络;其中,时域包络获取模块73具体用于:采用非对称窗对M个子帧中的最前端的子帧和M个子帧中的最末端的子帧进行加窗;对M个子帧中除最前端的子帧和最末端的子帧之外的子帧进行加窗。

在本发明实施例一种可能的方式中,时域包络获取模块73还用于:

根据当前帧信号的高带信号的前向缓存的长度确定非对称窗;或者,

根据当前帧信号的高带信号的前向缓存的长度和时域包络个数M确定非对称窗。

在本发明一个实施例中,时域包络获取模块73具体用于:

采用非对称窗对M个子帧中的最前端的子帧和M个子帧中的最末端的子帧进行加窗,对M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用对称窗进行加窗;或者,

采用非对称窗对M个子帧中的最前端的子帧和M个子帧中的最末端的子帧进行加窗,对M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用非对称窗进行加窗。

在本发明实施例一种可能的实现方式中,非对称窗的窗长与对M个子帧中除最前端的子帧和最末端的子帧之外的子帧进行加窗所采用的窗的窗长相同。在本发明的一个实施例中,时域包络获取模块73还用于:根据当前帧信号得到当前帧信号的低带信号的基音周期;

当当前帧信号的类型与当前帧的前一帧信号的类型相同,且当前帧的低带信号的基音周期大于第三阈值时,对每一个子帧的时域包络进行平滑处理。

对时域包络做平滑处理,具体可以是:将相邻的两个子帧的时域包络加权,加权后的时域包络作为这两个子帧的时域包络。例如,当解码端连续两帧信号都是浊音信号,或者一帧是浊音信号一帧是普通信号,且低带信号的基音周期大于给定阈值(大于70个样点,此时低带信号的采样率为12.8kHz采样)时,则对解码的高带信号时域包络做平滑处理,否则保持时域包络不变。平滑处理可以为:

env[0]=0.5*(env[0]+env[1]);

env[1]=0.5*(env[0]+env[1]);

env[N-1]=0.5*(env[N-1]+env[N]);

env[N]=0.5*(env[N-1]+env[N])。

其中,env[]为时域包络。

在本发明的一个实施例中,时域包络处理装置70还包括:确定模块74,用于根据下列之一方式确定时域包络个数M:

根据当前帧信号得到当前帧信号的低带信号,当当前帧信号的低带信号的基音周期大于第二阈值时,M=M1;或者,

根据当前帧信号得到当前帧信号的低带信号,当当前帧信号的低带信号的基音周期不大于第二阈值时,M=M2;

其中,M1,M2均为正整数,且M2>M1。

在本发明的实施例中,要预先确定的时域包络个数M可以是根据整体算法要求和经验值确定。时域包络个数M例如是编码器事先根据整体算法或经验值确定,确定后不会改变。例如一般对20ms一帧的输入信号,如果输入信号相对平稳,求解4个或者2个时域包络,但对一些非平稳信号,需要求解更多如8个时域包络。

具体来说,首先,在编码端,在获得原始音频信号后,首先对原始音频信号进行信号分解,得到原始音频信号的低带信号和高带信号,接着对低带信号通过已有算法进行编码得到低带的码流,同时,在进行低带编码过程中,得到低带的激励信号,并对低带激励信号进行预处理;对于原始音频信号的高带信号,首先进行预处理,然后做LP分析得到LP系数,量化该LP系数。接着将预处理后的低带激励信号通过LP合成滤波器(滤波器系数为量化后的LP系数)得到预测的高带信号。根据预处理后的高带信号和预测的高带信号,计算及量化高带信号的时域包络,最后输出编码码流。

除了计算及量化高带信号的时域包络的步骤之外,对于音频信号的其它步骤的处理可以参考现有技术中所采用的方法,在此不再赘述。

本实施例的装置,可以用于执行图2-图5所示方法实施例的技术方案,其实现原理类似。

在一个具体的示例中,在编码端,在获得原始音频信号后,首先对原始音频信号进行信号分解,得到原始音频信号的低带信号和高带信号,接着对低带信号通过已有算法进行编码得到低带的码流,同时,在进行低带编码过程中,得到低带的激励信号,并对低带激励信号进行预处理;对于原始音频信号的高带信号,首先进行预处理,然后做LP分析得到LP系数,量化该LP系数。接着将预处理后的低带激励信号通过LP合成滤波器(滤波器系数为量化后的LP系数)得到预测的高带信号。根据预处理后的高带信号和预测的高带信号,计算及量化高带信号的时域包络,最后输出编码码流。

除了计算及量化高带信号的时域包络的步骤之外,对于音频信号的其它步骤的处理可以参考现有技术中所采用的方法,在此不再赘述。

将第N+1帧按照需要计算的时域包络的个数划分为M个子帧,M为正整数。在一种可能的实施方式中,M的值可以是3、4、5、8等。在此不做限制。

对M个子帧中的最前端的子帧和M个子帧中最末端的子帧采用非对称窗进行加窗。N+1帧的M个子帧中最前端的子帧为与前一帧(N帧)的信号有重叠部分的子帧;最末端的子帧为与后一帧(N+2帧,图中未示出)的信号有重叠部分的子帧。在一种可能的方式中,最前端的子帧即为N+1帧中最左端的子帧,最末端的子帧即为N+1帧中最右端的子帧。可以理解的是,最左和最右只是一种具体示例,而不是对本发明实施例的限制。实际中子帧的划分是不存在最左、最右这种方向性限制的。

对于最前端的子帧和最末端的子帧加窗所使用的非对称窗可以完全相同,也可以不同。在此不做限制。在一种可能的实现方式中,最前端子帧使用的非对称窗的窗长和最末端子帧所使用的非对称窗的窗长相同。

在本发明的一个实施例中,对N+1帧的M个子帧中除最前端的子帧和最末端的子帧之外的子帧采用对称窗进行加窗。

在本发明的一个实施例中,对于最前端的子帧和最末端的子帧加窗所采用的非对称窗的窗长与对其它子帧采用的对称窗的窗长相等。可以理解的是,在另一种可能的方式中,非对称窗的窗长和对称窗的窗长也可以不等。

在本发明的一个实施例中,当第N+1帧的帧长为80个样点,采样率为4kHz时,可以求解8个时域包络。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz时,也可以求解4个时域包络。

在本发明的一个实施例中,除了预先设定之外,还可以根据N+1帧的其它信息预先确定时域包络的个数N。下面是确定时域包络的个数N的实现方式的示例:

在一种可能实现的方式中,当第N+1帧的低带信号的基音周期大于第二阈值时,N=4;或者,当第N+1帧的低带信号的基音周期不大于第二阈值时,N=8。对于采用率为12.8kHz的低带信号,第二阈值可以为70个样点。可以理解的是,上述数值只是为了帮助理解本发明实施例而做出的一种具体举例,而不是对本发明实施例的具体限制。在对第N+1帧的信号进行信号分解时可以得到第N+1帧的低带信号,信号分解所采用的方法和求解低带信号的基音周期的方式可以采用现有技术中的任意一种方式,在此不做具体的限制。

可以理解的是,除了利用低带信号的基音周期以外,还可以利用信号的能量等其它参数。

在本发明的一个实施例中,在利用非对称窗对最前端的子帧和最末端的子帧进行加窗时,根据前向缓存的长度确定非对称窗。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解8个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为20个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于10。则当前向缓存的长度小于10个样点时,第8个子帧(即,最末端的子帧)采用的窗和第1个子帧(即,最前端的子帧)采用的窗的混叠部分等于前向缓存的长度。当前向缓存的长度大于等于10个样点时,第8个子帧采用的窗的右侧和第1个子帧采用的窗的左侧的长度可以等于另一侧(例如第一个子帧采用的窗的右侧或第八个子帧采用的窗的左侧)的窗长(10个样点),也可以根据经验设定一个长度(如,保持和前向缓存小于10个样点时相同的长度)。

在一种可能的实现方式中,当第N+1帧的帧长为80个样点,采样率为4kHz,求解4个时域包络时,加窗所采用的非对称窗的窗长和对称窗的窗长可以都为40个样点。利用帧长除以包络个数得到第一阈值,此示例中第一阈值等于20。

在加窗后,计算各个子帧内预处理后的原始高带信号和预测的高带信号的时域能量或子帧内每个样点幅度的平均值。具体的计算方式可参考现有技术中提供的方式,本发明实施例提供的信号处理的方法在加窗时所采用的窗的形状和所需要加窗的个数的确定方式与现有技术不同。其它的计算方式均可参考现有技术中提供的方式。

本实施例提供的音频信号的时域包络处理装置,通过根据不同的条件求解不同个数的时域包络,有效避免了对一定条件下的信号求解过多的时域包络造成的能量不连续,进而引起的听觉质量下降,同时,可以有效降低算法的平均复杂度。

下面结合图8描述本发明实施例的一种编码器80,图8为本发明实施例的编码器的结构示意图,如图8所示,编码器80具体用于:

用于根据接收到的当前帧信号,得到当前帧信号的低带信号和当前帧信号的高带信号;

对当前帧信号的低带信号进行编码,得到低带编码的激励信号;

对当前帧信号的高带信号进行线性预测,得到线性预测系数;

量化线性预测系数,得到量化后的线性预测系数;

根据低带编码的激励信号和量化后的线性预测系数得到预测的高带信号;

计算及量化预测的高带信号的时域包络;

其中,计算所述预测的高带信号的时域包络包括:

根据预先确定的时域包络个数M将预测的高带信号分成M个子帧,其中,M为大于等于2的整数,

采用非对称窗对M个子帧中的最前端的子帧和M个子帧中的最末端的子帧进行加窗,

对M个子帧中除所述最前端的子帧和最末端的子帧之外的子帧进行加窗;

对量化后的时域包络进行编码。

可以理解的是,编码器80可以用于执行上述任意的方法实施例。也可以包括任意实施例的时域包络处理装置70。具体的编码器80所执行的功能可参考前述方法和装置实施例,在此不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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