一种扩频的方法及装置

文档序号:1600029 发布日期:2020-01-07 浏览:13次 >En<

阅读说明:本技术 一种扩频的方法及装置 (Method and device for spreading spectrum ) 是由 邵纬航 于 2018-06-29 设计创作,主要内容包括:本申请实施例公开了一种扩频的方法及装置,该方法包括:确定数据帧的截止频率;根据截止频率确定低频带范围[f&lt;Sub&gt;1&lt;/Sub&gt;,f&lt;Sub&gt;2&lt;/Sub&gt;]和待扩充频带范围[f&lt;Sub&gt;3&lt;/Sub&gt;,f&lt;Sub&gt;4&lt;/Sub&gt;];根据低频带范围确定目标滤波器,利用目标滤波器对数据帧进行滤波处理,得到第一低频信息;对第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息;对处理结果和数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对第二FFT结果在[f&lt;Sub&gt;3&lt;/Sub&gt;,f&lt;Sub&gt;4&lt;/Sub&gt;]内的信息,用第一FFT结果在[f&lt;Sub&gt;3&lt;/Sub&gt;,f&lt;Sub&gt;4&lt;/Sub&gt;]内的信息进行替换,得到扩频后的第二FFT结果。采用本申请,可自适应的对各种类型的音频序列进行扩频,得到良好的扩频效果。(The embodiment of the application discloses a method and a device for spreading spectrum, wherein the method comprises the following steps: determining a cutoff frequency of the data frame; determining a low frequency band range [ f ] from a cut-off frequency 1 ,f 2 ]And the band range to be extended [ f 3 ,f 4 ](ii) a Determining a target filter according to the low-frequency band range, and performing filtering processing on the data frame by using the target filter to obtain first low-frequency information; carrying out nonlinear processing on the first low-frequency information, wherein the processing result comprises second low-frequency information and high-frequency information; performing Fast Fourier Transform (FFT) on the processing result and the data frame to respectively obtain a first FFT result and a second FFT result; for the second FFT result at f 3 ,f 4 ]Information in [ f ] using the first FFT result 3 ,f 4 ]And replacing the internal information to obtain a second FFT result after the frequency spreading. By adopting the application, the pair can be self-adaptiveAnd various types of audio sequences are subjected to spread spectrum, so that a good spread spectrum effect is obtained.)

一种扩频的方法及装置

技术领域

本发明涉及音频技术领域,尤其涉及一种扩频的方法及装置。

背景技术

通过对各大音视频网站和移动终端应用内涉及的音视频内容调研得知,大多数音视频内容的音频序列(audio sequence),即各种声音信息比如语音、音乐、背景声、对白等等大都经过压缩编码。除了音视频网站,电话、电视以及一些实时在线影院,为追求信息传输率也会对传输的音频信号进行压缩编码。常见的音频序列压缩码率包括48kbps、64kbps、96kbps和128kbps等。对音频序列进行压缩编码会带来音质的损失,尤其是音频序列的高频成分会被裁去,造成音频序列在频率饱满度上的不足,使得用户的听感单调乏味。此外,还有一些音频序列由于录制条件的限制,如年代久远的老唱片中的音频序列,在录制时由于技术条件上的原因导致音频序列在一开始就存在高频成分不足的情况。

为此,有必要开发扩频技术对音频序列中的数据帧进行扩频,即扩充或丰富音频序列中数据帧的频谱信息,从而提升音质听感。音频序列的截止频率离人耳可听频域上限20kHz有一定距离(gap)。在gap里填充一定的频率成分,可提高序列的音质听感。在现有技术中,通过在编码端压缩音频序列的同时,记录下音频序列原有的高频成分信息,解码端再根据这些信息恢复原音频序列被压缩裁剪掉的高频成分。这种方式必须依赖编码端所提供的高频成分信息,即需要编码端提供先验知识,需要构建庞大的样本库,适应性较差。此外,有些音频序列因录制条件限制在一开始就高频成分不足,因此也就无法为其扩充高频成分。

发明内容

本申请实施例所要解决的技术问题在于,提供一种扩频的方法及装置。以解决无法对各种音频序列进行适应性扩频的问题。

第一方面,本申请实施例提供了一种扩频的方法,包括:

确定数据帧的截止频率fc

根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4],其中,f1、f2、f3、或f4均是基于所述fc的函数,且f1<f2≤f3<f4

根据所述低频带范围确定目标滤波器,利用所述目标滤波器对所述数据帧进行滤波处理,得到第一低频信息,其中,所述目标滤波器的通带范围与所述低频带范围对应;

对所述第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息,所述第二低频信息对应频带为[f1,f2],所述高频信息对应频带为[f3,f4];

对所述处理结果和所述数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;

对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果。

在一种可能的实施方式中,所述方法还包括:

对所述扩频后的第二FFT结果进行反FFT处理,得到扩频后的数据帧。

在一种可能的实施方式中,所述根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4],包括:

取f3=fc

如果fc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

如果2kHz≤fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

如果6kHz≤fc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

如果8kHz≤fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

如果9kHz≤fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

如果12kHz≤fc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

在一种可能的实施方式中,所述根据所述低频带范围确定目标滤波器,根据如下方式进行:

[bp,ap]=butter(n,[fleft fright]/fs*2);

其中,bp为滤波器的时域输入响应系数,ap为滤波器的时域输出响应系数,bp和ap统称为滤波器参数,butter为巴特沃斯滤波器参数的预设函数,所述预设函数的自变量包括:n为预配置的常数,用于调控滤波器参数bp和ap包含的元素个数;频率区间[fleft,fright]是滤波器的通带范围,fleft=f1,fright=f2,fs为所述数据帧的采样频率。

在一种可能的实施方式中,所述非线性处理包括:

取绝对值,或者取平方值,或者构造关于所述第一低频信息的多项式,或者根据詹姆斯约翰斯顿James Johnston函数进行处理。

在一种可能的实施方式中,所述确定数据帧的截止频率,包括:

计算所述数据帧的每个频点的谱能量,确定谱能量分布;

将预设匹配函数与所述谱能量分布进行迭代匹配,直到迭代后得到的目标匹配函数图与所述谱能量分布图的重合度满足预设要求,其中,所述预设匹配函数以频点序号作为自变量;

根据所述目标匹配函数图对应的频点序号,确定所述数据帧的截止频率。

在一种可能的实施方式中,在所述确定数据帧的截止频率之前,还包括:

将所述数据帧与所述数据帧的前一个数据帧拼成第一复合帧;

对所述第一复合帧使用预设加窗函数进行加窗处理;

所述确定数据帧的截止频率,包括:

确定所述加窗处理后的第一复合帧的截止频率;

所述对所述处理结果和所述数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果,包括:

将所述数据帧非线性处理对应的处理结果,和所述数据帧的前一个数据帧非线性处理对应的处理结果,拼成第二复合帧;

对所述第二复合帧使用预设加窗函数进行加窗处理;

对所述第二复合帧和所述第一复合帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果。

在一种可能的实施方式中,在对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果之前,所述方法还包括:

计算所述第一FFT结果在[f3,f4]内的信息的增益因子,所述增益因子用于增强所述第一FFT结果在[f3,f4]内的部分和所述第二FFT结果在[f3,f4]外的部分的连续性;

在对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换时,包括:

对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息乘以所述增益因子之后,进行替换。

在一种可能的实施方式中,所述计算所述第一FFT结果在[f3,f4]内的信息的增益因子,包括:

计算所述第二FFT结果的绝对值在频带[fc/2,3fc/4]内的平均值a1

计算所述第二FFT结果的绝对值在频带[3fc/4,fc]内的平均值和a2

计算所述第一FFT结果在[f3,f4]内的信息的绝对值的平均值a3

当a2<=a1时,根据g=a2*a2/a1/a3计算所述增益因子;

当a2>a1时,根据g=a2/a3计算所述增益因子。

在一种可能的实施方式中,所述方法还包括:

对所述扩频后的第一复合帧进行反FFT处理;

对反FFT处理后的第一复合帧使用所述预设加窗函数进行加窗处理;

将加窗处理后的第一复合帧,与所述第一复合帧经过相同处理的下一个复合帧进行交叠相加后输出,所述下一个复合帧为所述数据帧与所述数据帧的下一个数据帧拼合得到。

第二方面,本申请实施例提供了一种扩频的装置,包括:

确定单元,用于确定数据帧的截止频率fc;根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4],其中,f1、f2、f3、或f4均是基于所述fc的函数,且f1<f2≤f3<f4

滤波单元,用于根据所述低频带范围确定目标滤波器,利用所述目标滤波器对所述数据帧进行滤波处理,得到第一低频信息,其中,所述目标滤波器的通带范围与所述低频带范围对应;

高频生成单元,用于对所述第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息,所述第二低频信息对应频带为[f1,f2],所述高频信息对应频带为[f3,f4];

扩频单元,用于对所述处理结果和所述数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果。

在一种可能的实施方式中,所述扩频单元还用于:

对所述扩频后的第二FFT结果进行反FFT处理,得到扩频后的数据帧。

在一种可能的实施方式中,在根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4]时,所述确定单元具体用于:

取f3=fc

如果fc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

如果2kHz≤fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

如果6kHz≤fc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

如果8kHz≤fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

如果9kHz≤fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

如果12kHz≤fc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

在一种可能的实施方式中,在根据所述低频带范围确定目标滤波器时,所述滤波单元具体用于根据如下方式进行:

[bp,ap]=butter(n,[fleft fright]/fs*2);

其中,bp为滤波器的时域输入响应系数,ap为滤波器的时域输出响应系数,bp和ap统称为滤波器参数,butter为巴特沃斯滤波器参数的预设函数,所述预设函数的自变量包括:n为预配置的常数,用于调控滤波器参数bp和ap包含的元素个数;频率区间[fleft,fright]是滤波器的通带范围,fleft=f1,fright=f2,fs为所述数据帧的采样频率。

在一种可能的实施方式中,所述高频生成单元具体用于:

取绝对值,或者取平方值,或者构造关于所述第一低频信息的多项式,或者根据詹姆斯约翰斯顿James Johnston函数进行处理。

在一种可能的实施方式中,在确定截止频率时,所述确定单元具体用于:

计算所述数据帧的每个频点的谱能量,确定谱能量分布;

将预设匹配函数与所述谱能量分布进行迭代匹配,直到迭代后得到的目标匹配函数图与所述谱能量分布图的重合度满足预设要求,其中,所述预设匹配函数以频点序号作为自变量;

根据所述目标匹配函数图对应的频点序号,确定所述数据帧的截止频率。

在一种可能的实施方式中,所述装置还包括:

交叠相加单元,用于将所述数据帧与所述数据帧的前一个数据帧拼成第一复合帧;

对所述第一复合帧使用预设加窗函数进行加窗处理;

所述确定单元具体用于:

确定所述加窗处理后的第一复合帧的截止频率;

所述交叠相加单元还用于:

将所述数据帧非线性处理对应的处理结果,和所述数据帧的前一个数据帧非线性处理对应的处理结果,拼成第二复合帧;

对所述第二复合帧使用预设加窗函数进行加窗处理;

所述扩频单元还用于:

对所述第二复合帧和所述第一复合帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果。

在一种可能的实施方式中,所述装置还包括:

增益计算单元,用于计算所述第一FFT结果在[f3,f4]内的信息的增益因子,所述增益因子用于增强所述第一FFT结果在[f3,f4]内的部分和所述第二FFT结果在[f3,f4]内的部分在频域上的连续性;

所述扩频单元具体用于:

对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息乘以所述增益因子之后,进行替换。

在一种可能的实施方式中,所述增益计算单元具体用于:

计算所述第二FFT结果的绝对值在频带[fc/2,3fc/4]内的平均值a1

计算所述第二FFT结果的绝对值在频带[3fc/4,fc]内的平均值和a2

计算所述第一FFT结果在[f3,f4]内的信息的绝对值的平均值a3

当a2<=a1时,根据g=a2*a2/a1/a3计算所述增益因子;

当a2>a1时,根据g=a2/a3计算所述增益因子。

在一种可能的实施方式中,所述交叠相加单元还用于:

对所述扩频后的第一复合帧进行反FFT处理;

对反FFT处理后的第一复合帧使用所述预设加窗函数进行加窗处理;

将加窗处理后的第一复合帧,与所述第一复合帧经过相同处理的下一个复合帧进行交叠相加后输出,所述下一个复合帧为所述数据帧与所述数据帧的下一个数据帧拼合得到。

第三方面,本申请实施例提供了一种扩频的设备,包括:

处理器、存储器、接口电路和总线,所述处理器、存储器和接口电路通过所述总线连接并完成相互间的通信,其中,所述存储器用于存储一组程序代码,所述处理器用于调用所述存储器中存储的程序代码,执行如本申请实施例第一方面或第一方面任一实施方式所述的步骤。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令在计算机上运行时,使得计算机执行如本申请实施例第一方面或第一方面任一实现方式所述的方法。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的扩频的方法的应用的系统架构示意图;

图2为本申请实施例提供的一种扩频的方法的流程示意图;

图3为本申请实施例提供的一种确定截止频率的方法的流程示意图;

图4为本申请实施例提供的另一种扩频的方法的流程示意图;

图5为不同压缩码率的歌曲片段根据本申请实施例所述方法扩频后的语谱示意图;

图6为本申请实施例提供的一种扩频的装置的组成示意图;

图7为本申请实施例提供的一种扩频的设备的组成示意图。

具体实施方式

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

请参照图1,为本申请实施例提供的扩频的方法的应用的系统架构示意图;该系统架构包括音频输入接口、音频处理器、存储器和音频输出接口。

音频输入接口10,用于从网络服务器或本地存储器30获取音频序列并输入到音频处理器20进行处理。

音频处理器20,用于根据写入的各种音频处理算法对音频序列进行各种处理如包括本申请实施例中所述的扩频处理,其可以是各种终端如智能手机、平板电脑、计算机或其他智能电子设备的音频处理芯片。

存储器30,可用于存储本地的音频序列以及缓存从网络服务器获取的音频序列。

音频输出接口40,用于将音频处理器20处理后的音频序列输出,其可以与终端设备的喇叭或耳机接口相连接。

本申请实施例中的扩频的方法可以作为一种算法程序写入音频处理器中运行。可适用于智能手机、平板电脑、计算机或其他智能电子设备的通话应用、音视频播放应用、游戏应用、语音导航应用等与音频相关的软件中。

下面结合图2-图5对本申请扩频的方法及效果进行详细说明。

请参照图2,为本申请实施例提供的一种扩频的方法的流程示意图;在本申请实施例中,将音频序列进行分帧处理,每帧共N个数据点。对于每一帧数据的处理,可包括如下步骤:

S201.确定数据帧的截止频率。

可选地,在对当前数据帧进行具体的截止频率计算时,可以将当前数据帧也和它的前一数据帧拼出一个复合帧,计算这个复合帧的截止频率作为当前数据帧的截止频率。

具体在对某个帧的截止频率计算时,可以采用常用的人为阈值设定法。具体是人为设定一个合适的阈值,基于快速傅里叶变换(Fast Fourier Transformation,FFT)求出该帧的频谱能量,如果找到当前帧的第m个频点处的频谱能量不小于该阈值,而第m个频点后直到第N/2个(若是计算两帧的复合帧的截止频率则是第N个)频点之间的频谱能量都小于该阈值,则第m个频点即是当前帧的截止频率点。

或者,还可以通过先对处理对象(音频序列谱能量分布)的目标特征(下降沿)进行认知(cognition),再引入/构造有相似特征的匹配函数,然后通过迭代匹配的方法精确逼近处理对象的目标特征如截止频率的方式,从而达到确定截止频率的目的。当然,还可以采用其他的截止频率算法来进行计算,本申请实施例不作任何限定。

S202.根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4]。

其中,f1、f2、f3、或f4均是基于所述fc的函数,且f1<f2≤f3<f4.

可选地,上述两个与扩频相关的对象均是基于截止频率的函数,具体的函数关系可以用户的主观需求进行设定,或者也可以根据音频序列播放的场景(室外、卧室、大厅等)或音频序列的风格类型(动感、安静、高音、低音等)进行设定,本申请实施例不作任何限定。

对于低频带范围[f1,f2]和待扩充频带范围[f3,f4]:f1、f2、f3和f4均为fc的函数;如可以是分段的线性或者多项式函数。可以取:

f3=fc

如果fc≤2kHz:

f1=0kHz;f2=fc;f4=2fc;此时可以不使用滤波器,即滤波输出恒等于滤波输入。

如果2kHz≤fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

如果6kHz≤fc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

如果8kHz≤fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

如果9kHz≤fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

如果12kHz≤fc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz);

在上述函数关系中,通常取f3=fc,如果考虑制造特殊音效,可以改变函数关系令fc不等于f3,甚至单个待扩充频带范围[f3,f4]的频带可以换为多个相互间有间隔的频带。此外,越是高频部分,如靠近f4这一侧的频率成分可以考虑做弱化或者说虚化处理,使高频成分听起来更舒适而不至于太尖锐。这个部分可取[f3,f4]频带的后20%左右,即[f4–0.2*(f4–f3),f4]。具体操作可以是让这部分频带能量随频率升高而线性递减。

由于低频带范围和待扩充频带范围的左右边界点均基于截止频率进行确定,因此只需要在确定截止频率之后便可以完成扩频,无需和编码端通信,无需任何先验知识,无需构建样本库,计算开销小。

S203.根据所述低频带范围确定目标滤波器,利用所述目标滤波器对所述数据帧进行滤波处理,得到第一低频信息。

其中,所述目标滤波器的通带范围与所述低频带范围对应。

对于滤波器参数的确定:

已知滤波器差分方程为:

Figure BDA0001713906510000071

ap为滤波器的时域输出响应系数、bp为滤波器的时域输入响应系数,ap和bp统称为滤波器参数,ap(0)=1,Lin和Lout分别指示bp和ap的元素个数,也称为滤波器的阶数,其中IN和OUT分别为滤波器的时域输入响应和时域输出响应,l和j为自然数,表示时间序号。在本申请实施例中,可以根据截止频率确定低频带范围,然后将低频带范围作为滤波器的通带范围,即可以根据截止频率来确定滤波器参数,即[bp,ap]=func(fc),func为待定函数。

在滤波器类型的选择上,可以取Lin=Lout=4的带通butterworth滤波器,在确定一个目标滤波器时,所述目标滤波器可以以所述低频带范围为通带范围,

可以调用matlab代码,根据如下方式进行:

[bp,ap]=butter(n,[fleft fright]/fs*2);

其中,bp为滤波器的时域输入响应系数,ap为滤波器的时域输出响应系数,bp和ap统称为滤波器参数,butter为巴特沃斯滤波器系数的确定函数,所述确定函数的自变量包括:n为预配置的常数,直观上看用于调控滤波器参数bp和ap包含的元素个数,n越大则bp和ap包含的元素个数越多、滤波器通带与阻带之间的过渡带越窄、阻带衰减越大,频率区间[fleft,fright]是滤波器的通带范围,fleft=f1,fright=f2,fs为所述数据帧的采样频率。[bp,ap]=butter(2,[fleft fright]/fs*2);

因为f1和f2为fc的函数,当取fleft=f1,fright=f2时,所以butter(2,[fleft fright]/fs*2)就是一个给定的func(fc)。

需要说明的是,本申请实施例中采用了巴特沃斯滤波器进行滤波,当然也可以采用其他滤波器进行滤波,也可以将滤波器的选择(包括滤波器的种类、具体频响特性如过渡带范围和阻带衰减、bp和ap的元素个数)和截止频率之间构建函数关系,本申请实施例不作任何限定。

S204.对所述第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息。

所述第二低频信息对应频带为[f1,f2],所述高频信息对应频带为[f3,f4];

可选地,取绝对值,或者取平方值,或者构造关于所述第一低频信息的多项式,或者根据詹姆斯约翰斯顿James Johnston函数进行处理。或者还可以采用其他一些硬件电路激励方法。

S205.对所述处理结果和所述数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果。

S206.对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果。

可选地,所述方法还包括:

对所述扩频后的第二FFT结果进行反FFT处理,得到扩频后的数据帧。最终获得时域输出的数据帧的扩频结果。

在本申请实施例中,通过确定数据帧的截止频率,并通过截止频率确定低频带范围和待扩充频带范围,然后基于低频带范围确定目标滤波器并对所述数据帧进行时域滤波,在时域上取出数据帧在低频带范围上的第一低频信息,进行非线性处理后得到包含高频成分的处理结果,并将处理结果和数据帧做FFT分别得到第一FFT结果和第二FFT结果之后,将第一FFT结果在待扩充频带范围上的部分替换到第二FFT结果对应的频带位置,从而完成扩频。高频成分来自于低频成分处理得到,扩出的高频成分和原音频序列和谐共存,衔接过渡自然,特征相近,可清晰的包含原音频序列的音乐逻辑信息,切实提高了音频序列的音质听感,且基本上听不出杂音或怪音。另外无需编码端提供先验知识,计算开销小,适用于各种类型的音频序列。

为了得到准确的截止频率,可以根据图3所述方法确定截止频率。

请参见图3,为本申请实施例提供的一种确定截止频率的方法的流程示意图,具体包括如下步骤:

S301.计算数据帧的每个频点的谱能量,确定谱能量分布。

S302.将预设匹配函数与所述谱能量分布进行迭代匹配,直到迭代后得到的目标匹配函数图与所述谱能量分布图的重合度满足预设要求。

其中,所述预设匹配函数以频点序号作为自变量。频点序号可表示频点按顺序排列后的编号,可以用于表征频点的排序以及频点在预设匹配函数图或谱能量分布图中的位置。例如在谱能量分布图中,可以用频点序号作为横坐标,谱能量作为纵坐标;在预设匹配函数图中,可以用频点序号作为横坐标,预设匹配函数的函数值作为纵坐标。

需要说明的是,目标匹配函数图即以频点序号为横坐标,目标匹配函数的函数值为纵坐标的图形,根据不同频点及其对应的函数值可以确定与频点数量对应的位置点,将这些位置点连接后得到的平滑曲线即为目标匹配函数图,也可以称为目标匹配函数的图形或图像,是目标匹配函数在二维空间上的具体体现,二者存在对应关系,在一些场景的描述中二者可以互换。同理,谱能量分布图是以频点序号作为横坐标,谱能量作为纵坐标的图形,根据不同频点及其对应的谱能量值可以确定与频点数量对应的位置点,将这些位置点连接后得到的平滑曲线即为谱能量分布图,也可以称为谱能量分布的图形或图像,是谱能量分布在二维空间上的具体体现,二者同样也存在对应关系,在一些场景的描述中二者可以互换。

目标匹配函数图与谱能量分布图的重合度满足预设要求,可以理解为通过迭代,目标匹配函数的图形越来越逼近谱能量分布的图形,当二者的图形大部分重合尤其是目标匹配函数中类似阶梯状的图形部分与谱能量下降沿的位置重合时,则可以视为二者的重合度满足预设要求。

S303.根据所述目标匹配函数图对应的频点序号,确定所述数据帧的截止频率。

当二者图形的重合度达到预设要求时,此时目标匹配函数图所对应的频点序号可以视为谱能量分布下降沿中心点位置的估计;在迭代匹配完成时可以输出该频点序号,并根据该频点序号对应的采样频率确定数据帧的截止频率。

可选地,所述预设匹配函数为:

Figure BDA0001713906510000091

其中,k表示频点序号,A表示所述预设匹配函数的幅度,L表示所述预设匹配函数对称中心点所对应的频点序号,α表示所述预设匹配函数下降沿倾斜因子;A和L与k相关,也可以理解为是基于自变量k的一种函数。

所述将预设匹配函数与所述谱能量分布进行迭代匹配,直到迭代后得到的目标匹配函数图与所述谱能量分布图的重合度满足预设要求具体包括:

根据以下公式进行迭代:

Figure BDA0001713906510000092

Figure BDA0001713906510000093

k(n+1)L=knR

k(n+1)R=Ln

其中,n为迭代匹配的次数,knL为第n次迭代时所需的频点区间的左边界点,也即第n次迭代时所需的频点区间的最小的频点;knR为第n次迭代时所需的频点区间的右边界点,也即第n次迭代时所需的频点区间的最大的频点;

Figure BDA0001713906510000094

为频点序号为k的频点的谱能量,An表示第n次迭代时所述预设匹配函数的幅度,An根据区间[knL,knR]内频点谱能量的平均值计算得到;Ln为代价函数

Figure BDA0001713906510000095

最小时L的取值,[kdown,kup]为代价函数的求和区间,kup为所述代价函数求和区间的最大边界值,Kdown为所述代价函数求和区间的最小边界值0,在计算时,可以取kdown=knR

Figure BDA0001713906510000096

需要进行下一次迭代计算即第n+1次迭代计算时,可以取kdown=k(n+1)RN为所述数据帧的采样频点数量,q为范数;k(n+1)L为第n+1次迭代时所需的频点区间的左边界点,k(n+1)R为第n+1次迭代时所需的频点区间的右边界点;

直到满足|Ln-Ln+1|<δ,其中,δ为最大允许误差。

可以确定点(Ln+1,s(Ln+1;An+1,α,Ln+1))为谱能量分布下降沿中心点位置的估计;将Ln+1作为迭代匹配完成时确定并输出的频点序号,并作为所述数据帧的截止频率所在位置的估计。

于是可以根据如下公式计算截止频率:

fc=Ln+1*fs/N

其中,fc为截止频率,fs为数据帧的采样频率,N为数据帧的采样频点数量,也即数据帧时域采样点数总和。

或者,也可以确定点(Ln,s(Ln;An,α,Ln))为谱能量分布下降沿中心点位置的估计;Ln作为迭代匹配完成时确定并输出的频点序号,并作为所述数据帧的截止频率所在位置的估计。本申请实施例不作任何限定。

若谱能量分布存在截止频率,即有下降沿,忽略谱能量分布的上下波动(fluctuation),则可视之为一个台阶形状。因此在本申请实施例中,也采用一个函数图形类似台阶形状的匹配函数来与谱能量分布进行匹配。通过不断的迭代计算使得函数图形不断向谱能量分布逼近,直至两者的下降沿位置足够靠近或重合,从而确定截止频率。

上述的预设匹配函数对于达到准确计算截止频率的目的是非常有效的。具体地,对于初次迭代所用的区间[k1L,k1R]的选择,考虑到现在的技术标准决定了当前使用的音频序列有明确的截止频率下限finf,所以只要满足k1R<inf即可。一般而言,语音通话类的音频序列截止频率下限不小于4kHz,音乐音效类的音频序列截止频率下限不小于6kHz,可以取

Figure BDA0001713906510000101

其中fs为音频序列的采样频率。随着迭代的进行,区间[knL,knR]会越来越接近谱能量分布的下降沿,而[knL,knR]内的谱能量的平均值An会越来越接近谱能量分布下降沿左侧附近的谱能量值。在迭代收敛/结束时,

Figure BDA0001713906510000102

即关于L的代价函数(cost function),取到最小值的时候就是匹配函数下降沿和谱能量分布下降沿两者位置足够靠近或重合的时候。

需要说明的是,区间[k1L,k1R]可以根据具体finf灵活选取。当k1L选取过小时,因为一般音频序列低频能量比高频能量大,有时甚至可能会大很多。k1L取过小会导致A1值过大,经过迭代An可能难以趋近谱能量分布下降沿左侧附近的谱能量值,这会影响计算精度。对已知finf值是4kHz的情形,可以取

Figure BDA0001713906510000104

对大量音频序列测试都获得了理想的效果。对于截止频率下限finf为其他值的情况,可以根据测试结果灵活选择,本申请不作任何限定。

对于α的取值,可以记Δ为匹配函数下降沿的宽度,Δ也可以作为目标匹配函数图与谱能量分布图二者重合度的一个参考值。(可参见图4所示频点15与频点25对应的两条竖线之间的距离),显然Δ是α的函数,Δ也反映了匹配函数下降沿的倾斜度。每个音频序列谱能量分布下降沿的倾斜度存在大小的不同,但经数值测试,若Δ取太大或太小,计算精确度都会有略微的下降。通常可以设定Δ为大约10个频点的距离,即α=0.85。大量音频序列测试表明这对于处理一帧N=1024个频点的音频数据效果是比较理想的。与之对应的,δ的取值可以为δ=6≈Δ/2。计算结果允许误差控制在半径大约为6的匹配函数下降沿宽度范围内是比较合理的。这样的计算准确度已经足够满足如扩频技术、削波处理、语音/场景识别、音频人工智能等应用的要求。当然,以上仅为示例性的描述,本申请对α和δ的取值不作任何限定。

可选地,如果为了减少计算开销,若不考虑预设匹配函数下降沿倾斜因子,可以将α视为正无穷,此时预设匹配函数即是简单的阶跃阶梯函数:

Figure BDA0001713906510000105

而为了进一步减少计算开销,还可以缩小所述代价函数的求和区间,具体可以根据如下公式进行:

kdown=max(L-mδ,knR),kup=min(L+mδ,N/2);或者

kdown=max(L-mδ,knR),kup=min(kdown+2mδ,N/2);

其中,kup为所述代价函数求和区间的最大边界值,Kdown为所述代价函数求和区间的最小边界值;自然数m用于调节求和区间的大小。例如,对于N=1024的情形,m可以取4。

经大量序列测试,代价函数的求和区间范围可以收缩到预设匹配函数下降沿附近区域,即不考虑那些远离预设匹配函数下降沿的频点,因为这些频点的信息对于计算精确度影响很小。事实上匹配的重点也确实是在下降沿区域。通过减少计算的频点数便可以减少计算开销,因此可以收缩代价函数的求和区间。但是相应地,求Ln用的代价函数要改为:

Figure BDA0001713906510000111

因为对不同的L,此时求和的总频点数是不同的,故而有分母kup-kdown+1,为的是将频点数平均。如果取到kup=kdown+2mδ,则相当于分母为常数,可以不用除这个分母。求和区间范围收缩策略可以是灵活的,其目的在于减少计算开销但同时保证计算精度,包括但不限于本申请实施例中举例的这两种方式。

此外,因为α是定值,且迭代计算中k和L都是有限范围内的自然数,因此为了进一步节省计算开销,可以穷举匹配函数的

Figure BDA0001713906510000112

因子的所有可能的计算值,预先将它们存储在表格中。这样,这个因子的计算就可以通过查表法(look-up table method)完成,从而显著节省计算开销。

迭代计算中,对于Ln的计算需要对L在[knR,N/2]范围内进行搜索。可以基于每次步进1个频点进行搜索,为节省计算开销,搜索步长可以大于1个频点例如3个或5个等。当然当搜索步长满足小于等于δ时计算更准确。此外,若知道截止频率的上限信息,则搜索到上限对应的频点即可,可以不用搜索到N/2。音频序列的截止频率上限往往可能是人耳可听域上限20kHz。因此,通过改变搜索步长以及缩小搜索上限范围,可以进一步节省计算开销。

对于迭代次数的选择,通过大量测试表明:先不计迭代结束条件,本方法处理每帧数据都能在三次迭代以内(包括三次)准确找到谱能量分布的下降沿。对于下降沿右侧旁瓣比重较大的某些情形,本方法会进行超过三次的迭代并最终收敛到旁瓣区域。当然,大旁瓣也有可能是重要的频域信息从而应该算作主要频率成分。这确实需要看具体应用场景而言。若为有效减小计算开销和减小大旁瓣影响,避免过度迭代,可以设置本方法的迭代计算总次数不超过三次。

另外,如果遇到谱能量分布没有明显下降沿,全频带都有显著的谱能量分布的情形,本方法没有下降沿可以收敛。注意到这样的情形相当于音频序列的截止频率是fs/2(采样频率的1/2),可以将fs/2附近的谱能量强行置为0,这样本方法就会收敛到fs/2附近。对于截止频率小于fs/2的序列,这样的操作并不影响截止频率计算的准确性。事实上现在常见的音频序列采样频率基本上都是48kHz,而人耳可听域上限为20kHz,即高过20kHz的频谱成分意义不大,因此不妨将20kHz到24kHz频带内的谱能量全置为0。这样对于“满频带”序列,本方法迭代计算便可以收敛到20kHz对应的人造下降沿,告知用户这个音频序列的截止频率至少是20kHz。

在本申请实施例中,通过预设匹配函数与数据帧的谱能量分布进行迭代匹配的方法精确地计算出数据帧乃至音频序列的截止频率,可直接使用而无须事先针对不同音频序列而人为调节计算参数,即普遍适用于各种音频序列,使用方便,且计算开销较小,计算效率较高,计算结果准确,可以为多种音频序列的处理如扩频等提供准确的参考数据。

请参见图4,为本申请实施例提供的另一种扩频的方法的流程示意图,可包括如下步骤:

S401.将数据帧与所述数据帧的前一个数据帧拼成第一复合帧。

数据帧的前一个数据帧为与所述数据帧相邻的前一个数据帧,如数据帧为第2个数据帧,则其前一个数据帧为第1个数据帧。

S402.对所述第一复合帧使用预设加窗函数进行加窗处理得到y。

由于音频序列通常比较长,因此可以截断即时域分帧来进行处理,但截断会带来负面效果,比如失真和杂音。所以本申请扩频的方法引入了交叠相加的方法(overlap-addmethod),使处理过程连续平滑,避免截断带来的负面效果,同时也保证基本上不改变和损伤原序列。交叠相加法可以贯穿整个算法。数据帧可以和数据帧的前一个数据帧(此处所述的前一个数据帧为所述数据帧相邻的前一个数据帧)拼出一个复合帧,共2N个数据点。然后对该复合帧加窗(win),可选地,可以采用半波正弦窗:

当然,也可以采用其他窗(如Hamming窗和Bartlett窗)来进行加窗处理。

若数据帧为音频序列中的第一帧,则第一帧的前一个数据帧可以设为长度为N的全零帧。此外,如果2N不是2的幂次方,对复合帧做FFT处理前要将加窗后的复合帧的末尾补上足够个数的0使长度等于2的幂次方。

S403.确定所述数据帧的截止频率。

当采用交叠相加的方式处理时,此处即为确定加窗处理后的第一复合帧的截止频率。

截止频率的具体地确定过程可以参见图3所述实施例的描述,相对于直接计算当前数据帧的截止频率,由于第一复合帧包含更多数据点,因此计算结果更精确。计算所得的第一复合帧的截止频率可以视为当前数据帧的截止频率。其是后续进行扩频的依据。由于截止频率计算是对每帧数据进行的,如果相邻两个数据帧截止频率相差不大(在1kHz以内),为了尽量减少跳变杂音出现的可能,当前数据帧的下一个数据帧可以沿用当前数据帧的截止频率,即沿用相同扩频策略。若相邻两个数据帧的截止频率有显著变化,则可以将滤波器的初始输入全部设为0,根据当前计算得到的截止频率来确定滤波器参数。

当然,在进行扩频之前,滤波器的初始输入也可以设为0。然后根据确定的截止频率确定低频带范围之后再设计目标滤波器的参数。通常,同一种压缩编码率下的各种音频序列拥有相同的截止频率。此时,不必每帧都检测截止频率,为减少计算量又保证计算准确度,可以在从一开始计算若干帧的截止频率,后续帧的截止频率可以取所计算出的所有截止频率值的中位数。取中位数可以最大程度避免选中计算误差大的数值,提高结果的置信度。可选地,每一帧截止频率的计算结果也可以和之前帧计算的结果一起取中位数作为最后结果。

S404.根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4]。

其中,f1、f2、f3、或f4均是基于所述fc的函数,且f1<f2≤f3<f4

在根据所述截止频率fc确定低频带范围[f1,f2]和待扩充频带范围[f3,f4]时,其中,f1为所述低频带范围的左边界点,f2为所述低频带范围的右边界点,f3为所述待扩充频带范围的左边界点,f4为所述待扩充频带范围的右边界点;f1、f2、f3和f4均为fc的函数,如可以是分段的线性或者多项式函数,包括:

f3=fc

如果fc≤2kHz:

f1=0kHz;f2=fc;f4=2fc;此时可以不使用滤波器,即滤波输出恒等于滤波输入。

如果2kHz≤fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

如果6kHz≤fc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

如果8kHz≤fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

如果9kHz≤fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

如果12kHz≤fc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz);

在上述函数关系中,通常取f3=fc,如果考虑制造特殊音效,可以改变函数关系令fc不等于f3,甚至单个待扩充频带范围[f3,f4]的频带可以换为多个相互间有间隔的频带。此外,越是高频部分,如靠近f4这一侧的频率成分可以考虑做弱化或者说虚化处理,使高频成分听起来更舒适而不至于太尖锐。这个部分可取[f3,f4]频带的后20%左右,即[f4–0.2*(f4–f3),f4]。具体操作可以是让这部分频带能量随频率升高而线性递减。

S405.根据所述低频带范围确定目标滤波器,利用所述目标滤波器对所述数据帧y进行滤波处理,得到第一低频信息x。

其中,所述目标滤波器的通带范围与所述低频带范围对应。

根据所述低频带范围确定目标滤波器,根据如下方式进行:

已知滤波器差分方程为:

Figure BDA0001713906510000131

ap为滤波器的时域输出响应系数、bp为滤波器的时域输入响应系数,ap和bp统称为滤波器参数,ap(0)=1,Lin和Lout分别指示bp和ap的元素个数,也称为滤波器的阶数,其中IN和OUT分别为滤波器的时域输入响应和时域输出响应,l和j为自然数,表示时间序号。本发明使滤波器参数为所述数据帧的截止频率fc的函数,即[bp,ap]=func(fc),func为所述待定函数。

滤波器可以采用阶数有限的巴特沃斯(Butterworth)滤波器,巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。在本申请中使用效果不错且计算开销小。滤波器参数的确定可由matlab软件代码实现:[bp,ap]=butter(n,[f1f2]/fs*2),其中fs为所述数据帧的采样频率,n为预配置的常数,可用于调控滤波器参数bp和ap具体包含的元素个数,可以取2(对应Lin=Lout=4)。因为f1和f2为fc的函数,所以butter(n,[f1f2]/fs*2)就是一个给定的func(fc)。

相应地,对y进行时域滤波处理得到x的具体matlab代码可以是:

persistent stateBP

stateBP=zeros(1,4,'single');

[x,stateBP(1,:)]=filter(bp,ap,y,stateBP(1,:));

或者:

persistent stateBP

stateBP=zeros(2,2,'single');

[z,p,k]=tf2zpk(bp,ap);

[sos]=zp2sos(z,p,k);

H=dfilt.df2tsos(sos);

H.arithmetic='single';

sos=single([H.getsosmatrix]);

sos_size=single(size(sos,1));

x(:,1)=y(:,1);

for m=1:sos_size

[x(:,1),stateBP(m,:)]=filter(sos(m,1:3),sos(m,4:6),y(:,1),stateBP(m,:));

end

其中,stateBP用来存储每次滤波的初始输入(初始IN),是一个不断传递的变量。后一种实现代码中用到matlab的tf2sos功能将原滤波系统分解成一系列二阶子系统(Lin=Lout=2)的级联形式。这样可以优化滤波系统的零极点配对,提高滤波稳定性,还可以减少初始IN的时间跨度(前者时间跨度为Lout=4,后者时间跨度为Lout=2)。

此外,对于2kHz≤fc≤8kHz的情形,也可以相应地取f1=0kHz;确定滤波器参数的matlab代码为[bp,ap]=butter(4,f2/fs*2,'low')。

当确定了截止频率的具体数值之后,便可以根据函数关系选取相应的低频带范围[f1,f2]和时域滤波器(Filter)的参数,根据滤波器参数对所述数据帧进行时域过滤得到所述数据帧在低频带范围的信息x=Filter(y),其中滤波器通带范围即低频带范围[f1,f2]。

各种滤波器的数学结构(时域差分方程结构)是相同的,不同滤波器即表示不同滤波器参数,滤波器参数即滤波时域差分方程的系数。相对而言,截止频率越高,相应的合适的低频带的具体所在频率也越高。

S406.对所述第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息。

所述第二低频信息对应频带为[f1,f2],所述高频信息对应频带为[f3,f4]。

非线性生成高次谐波即高频成分的方法较多,例如:

1)绝对值法xh=|x|;

2)取平方xh=x2,或者构造关于x的多项式;

3)詹姆斯约翰斯顿(James Johnston)函数:xh=x/(K|x|+1),1≤K≤5;

4)一些硬件电路激励方法等。

这些方法的生成效果差别有限,其中绝对值法最简单而有效。事实上,除了非线性法,只要是能有效生成高频成分的方法都可以。本申请实施例不作任何限定。

截止频率体现了一个音频序列所拥有的频谱信息量的多少。相对来说,截止频率低则音频序列包含的频率信息越贫乏,供给一个扩频算法推测生成其高频信息成分的原始信息越少,所以算法能够扩出有效的即可用的高频成分也越少。此时若强行扩出很多高频成分,就容易出现“过度推理”,出现失真或杂音。而且,算法的扩频难度也更大。这也是本申请实施例之所以要按音频序列截止频率自适应确定扩频所需的参数信息的原因。可以从根本上使扩频效果更优,并有效避免扩出失真音或杂音。截止频率越低,相对而言所扩出来的频带宽度f4–f3也应该越小或者说总体扩频量应该越小,不然就会增加出失真音或杂音的风险。但是对低截止频率序列,哪怕是往上扩少量的高频,对听感的提升也是很明显的。

为了进一步调控扩频效果,在获取高频成分时,也可以按截止频率的不同选取不同的非线性方法。如可以对fc≤4kHz的情形采用第2)或第3)种非线性方法,而对fc≥4kHz的情形用第1)种非线性方法。

S407.将所述数据帧非线性处理对应的处理结果,和所述数据帧的前一个数据帧非线性处理对应的处理结果,拼成第二复合帧。

S408.对所述第二复合帧使用预设加窗函数进行加窗处理;

S409.对所述第二复合帧和所述第一复合帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果。

其中,对第一复合帧y进行FFT处理得到Y=FFT(y)的步骤可以在步骤S402-步骤S409之间任意位置执行,本申请实施例不作任何限定。

S410.计算所述第一FFT结果在[f3,f4]内的信息Xm的增益因子的增益因子g。

所述增益因子用于增强所述第一FFT结果在[f3,f4]内的部分和所述第二FFT结果在[f3,f4]外的部分的连续性;可以使得扩充的高频成分与原音频序列的低频成分相和谐。

所述计算所述第一FFT结果在[f3,f4]内的信息的增益因子,包括:

计算所述第二FFT结果的绝对值在频带[fc/2,3fc/4]内的平均值a1

计算所述第二FFT结果的绝对值在频带[3fc/4,fc]内的平均值和a2

计算所述第一FFT结果在[f3,f4]内的信息的绝对值的平均值a3

当a2<=a1时,根据g=a2*a2/a1/a3计算所述增益因子;

当a2>a1时,根据g=a2/a3计算所述增益因子。

如果要进一步突出高频成分,可以相应增大增益g。此外只要是能达到连续目的的增益因子计算方法都可以考虑使用。

S411.对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息Xm乘以所述增益因子g之后,进行替换,得到扩频后的第二FFT结果。

其中,第二复合帧在进行FFT后的第一FFT结果为X=FFT(xh),其位于[f3,f4]的信息即为Xm,将g*Xm替换所述第一复合帧进行FFT后的第二FFT结果Y中对应的位置,即替换掉Y中位于[f3,f4]内对应位置的部分,从而得到最终扩频后的频谱Ym

此外,对[f3,f4]频带作替换时,附带地可以对(2fs–f4,2fs–f3)频带也作相应替换,其中fs是音频序列的采样频率,从而保证最终频谱的共轭对称性。

S412.对所述扩频后的第二FFT结果进行反FFT处理。输出扩频后的第一复合帧z=IFFT(Ym)。

S413.对反FFT处理后的第一复合帧使用所述预设加窗函数进行加窗处理。

S414.将加窗处理后的第一复合帧与所述第一复合帧经过相同处理的下一个复合帧进行交叠相加后输出。

对Ym做完IFFT得到IFFT(Ym)之后,还要再对其加一次步骤S402中用的窗,以顺应交叠相加方法。所述数据帧的下一个数据帧也会得到一个对IFFT(Ym)加窗的结果,那么交叠相加最后结果就是:所述数据帧的处理结果即最后时域输出=所述数据帧所得的IFFT(Ym)的后N个数据点+所述数据帧的下一个数据帧所得的IFFT(Ym+1)的前N个数据点,此处的相加为点对点的对应相加。

此外,呼应前面做FFT的注意事项,如果2N不是2的幂次方,则前面做FFT前已经补过0,于是对Ym做完IFFT后是只取前2N个点,再进行加窗等后续操作。

其中,与所述第一复合帧经过相同处理的下一个复合帧,指的是在原始音频序列进行分帧处理时,第一复合帧由所述数据帧与前一个数据帧组成的第一复合帧,下一个复合帧则来自所述数据帧与其后一个数据帧组成的复合帧,该复合帧经过步骤S401-S414的相同处理之后即得到与第一复合帧经过相同处理的下一个复合帧。

在本申请实施例中,通过交叠相加的方式提升了处理的连续性和平滑度,通过建立截止频率与低频带范围和待扩充频带范围的函数关系以自适应调优扩频效果,适用于各种类型的音频序列;采用数据帧低频成分生成高频成分并在频域上实现高频成分的补充,扩频后的音频序列听感自然和谐,无杂音,具备良好的扩频效果,总体计算开销小。

通过本申请实施例中的扩频之后,可以获得很好的高音效果,具体可以参见图5,图5为不同压缩码率的歌曲片段根据本申请实施例所述方法扩频后的语谱示意图。

如图5所示,从左至右分别为48kbps和64kbps压缩码率的歌曲片段的语谱示意图。其中,白色方框内即为根据本申请实施例所述的扩频方法扩充得到的高频成分,从图中可以看出,在不同压缩码率下都可以获得非常好的高频扩充效果。且不同压缩码率的音频序列截止频率不同,截止频率体现了一个音频序列所拥有的频谱信息量的多少。在本申请实施例的扩频算法中,会根据序列的自身条件即截止频率来择优选择相匹配的扩频参数,使扩频效果更优,并有效避免扩出失真音或杂音。由于48kbps和64kbps压缩码率的歌曲片段截止频率不同,因此根据本申请实施例所述的扩频方法确定的滤波器参数、低频带范围和待扩充频带范围也不同。从而可以实现对不同截止频率的音频序列的自适应扩频效果。对于高压缩码率的音频序列,其低频信息较为丰富,扩充得到的高频成分相对于低压缩码率的音频序列可以相应更多一点。且本申请的扩频算法直接根据音频序列的现有信息进行计算,无需先验知识,计算开销较小,且性能较高,扩出的高频成分与原音频序列相协调,清晰地包含了原序列的语音音乐逻辑信息,切实提高了序列的音质听感,且基本上听不出杂音或怪音。

需要说明的是,本申请实施例提供的自适应扩频策略,调控标准与音频序列截止频率有关,具体的调控参数与截止频率的函数关系可以为适应具体的场景或不同音频序列类型风格而进行调整,灵活度较高。在语音特征识别这一应用场景中,扩频有可能放大某种目标语音的特征,使识别更为容易。此外,若截止频率越低,所能够扩出的有效高频成分也相对越少,扩频难度也越大。本申请实施例所述的扩频的方法仍然能够针对不同的截止频率,自适应择优选择/调整推测模型的结构和参数(如调整可能用到的滤波器模型阶数),可以给出合理的所用的数据量和数据区域(时域或频域)范围,以及最终扩出的频带(数量、位置、带宽度),在现有信息有限的情况下,尽可能的获取较佳的扩频效果。本申请实施例中根据截止频率和扩频参数的函数关系自适应择优选取或调整扩频策略的方式,也可以用到其他扩频技术中。

请参考图6,为本申请实施例提供的一种扩频的装置的组成示意图;在本实施例中,所述装置包括:

确定单元100,用于确定数据帧的截止频率fc;根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4],其中,f1、f2、f3、或f4均是基于所述fc的函数,且f1<f2≤f3<f4

滤波单元200,用于根据所述低频带范围确定目标滤波器,利用所述目标滤波器对所述数据帧进行滤波处理,得到第一低频信息,其中,所述目标滤波器的通带范围与所述低频带范围对应;

高频生成单元300,用于对所述第一低频信息作非线性处理,处理结果包含第二低频信息和高频信息,所述第二低频信息对应频带为[f1,f2],所述高频信息对应频带为[f3,f4];

扩频单元400,用于对所述处理结果和所述数据帧进行快速傅里叶变换FFT,分别得到第一FFT结果和第二FFT结果;对所述第二FFT结果在[f3,f4]内的信息,用所述第一FFT结果在[f3,f4]内的信息进行替换,得到扩频后的第二FFT结果。

可选地,所述扩频单元400还用于:

对所述扩频后的第二FFT结果进行反FFT处理,得到扩频后的数据帧。

可选地,在根据所述截止频率确定低频带范围[f1,f2]和待扩充频带范围[f3,f4]时,所述确定单元100具体用于:

取f3=fc

如果fc≤2kHz:

f1=0kHz;f2=fc;f4=2fc

如果2kHz≤fc≤6kHz:

f1=1kHz;f2=2kHz;f4=fc+2kHz;

如果6kHz≤fc≤8kHz:

f1=1kHz;f2=2kHz;f4=fc+2fc/3–2kHz;

如果8kHz≤fc≤9kHz:

f1=fc-7kHz;f2=fc-6kHz;f4=fc+2fc/3–2kHz;

如果9kHz≤fc≤12kHz:

f1=4fc/3-10kHz;f2=3fc-24kHz;f4=fc+2fc/3–2kHz;

如果12kHz≤fc:

f1=fc/2;f2=fc;f4=min(fs,fc+2fc/3–2kHz)。

可选地,在根据所述低频带范围确定目标滤波器时,所述滤波单元200具体用于根据如下方式进行:

[bp,ap]=butter(n,[fleft fright]/fs*2);

其中,bp为滤波器的时域输入响应系数,ap为滤波器的时域输出响应系数,bp和ap统称为滤波器参数,butter为巴特沃斯滤波器参数的预设函数,所述预设函数的自变量包括:n为预配置的常数,用于调控滤波器参数bp和ap包含的元素个数;频率区间[fleft,fright]是滤波器的通带范围,fleft=f1,fright=f2,fs为所述数据帧的采样频率。

可选地,所述高频生成单元300具体用于:

取绝对值,或者取平方值,或者构造关于所述第一低频信息的多项式,或者根据詹姆斯约翰斯顿James Johnston函数进行处理。

可选地,所述装置还包括:

交叠相加单元500(图未示出),用于对音频序列中的数据帧进行处理时吗,采用交叠相加的方式来进行处理,从而提升处理的连续性和平滑性。

在本申请装置的一种实施例中,该装置可以执行如图2-图4所述方法中的任一操作。

请参照图7,为本申请实施例提供的一种扩频的设备的组成示意图,可以包括处理器110、存储器120和总线130。处理器110和存储器120通过总线130连接,该存储器120用于存储指令,该处理器110用于执行该存储器120存储的指令,以实现如上图2-图4所述方法的任一操作。

进一步的,该设备还可以包括、输入口140和输出口150。其中,处理器110、存储器120、输入口140和输出口150可以通过总线130相连。

处理器110用于执行该存储器120存储的指令,以控制输入口140接收信号和数据,并控制输出口150发送信号和数据,完成上述方法中设备执行的步骤。其中,输入口140和输出口150可以为相同或者不同的物理实体。为相同的物理实体时,可以统称为输入输出口。所述存储器120可以集成在所述处理器110中,也可以与所述处理器110分开设置。

作为一种实现方式,输入口140和输出口150的功能可以考虑通过收发电路或者收发的专用芯片实现。处理器110可以考虑通过专用处理芯片、处理电路、处理器或者通用芯片实现。

作为另一种实现方式,可以考虑使用通用计算机的方式来实现本申请实施例提供的设备。即将实现处理器110,输入口140和输出口150功能的程序代码存储在存储器中,通用处理器通过执行存储器中的代码来实现处理器110,输入口140和输出口150的功能。

该设备所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。

本领域技术人员可以理解,为了便于说明,图7中仅示出了一个存储器和处理器。在实际的控制器中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。

应理解,在本申请实施例中,处理器可以是中央处理单元(Central ProcessingUnit,简称为“CPU”),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。

该总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:音频编码器、音频解码器及相关方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!