一种音频信号分类方法和装置与流程

文档序号:11136043阅读:972来源:国知局
一种音频信号分类方法和装置与制造工艺

本发明涉及数字信号处理技术领域,尤其是一种音频信号分类方法和装置。



背景技术:

为了降低视频信号存储或者传输过程中占用的资源,音频信号在发送端进行压缩处理后传输到接收端,接收端通过解压缩处理恢复音频信号。

在音频处理应用中,音频信号分类是一种应用广泛而重要的技术。例如,在音频编解码应用中,目前比较流行的编解码器是一种混合编解码。这种编解码器通常包含了一个基于语音产生模型的编码器(如CELP)和一个基于变换的编码器(如基于MDCT的编码器)。在中低码率下,基于语音产生模型的编码器可以获得较好的语音编码质量,但对音乐的编码质量比较差,而基于变换的编码器能够获得较好的音乐编码质量,对语音的编码质量又比较差。因此,混合编解码器通过对语音信号采用基于语音产生模型的编码器进行编码,对音乐信号采用基于变换的编码器进行编码,从而获得整体最佳的编码效果。这里,一个核心的技术就是音频信号分类,或具体到这个应用,就是编码模式选择。

混合编解码器需要获得准确的信号类型信息,才能获得最优的编码模式选择。这里的音频信号分类器也可以被大致认为是一种语音/音乐分类器。语音识别率和音乐识别率是衡量语音/音乐分类器性能的重要指标。尤其对于音乐信号,由于其信号特征的多样/复杂性,对音乐信号的识别通常较语音困难。此外,识别延时也是非常重要的指标之一。由于语音/音乐特征在短时上的模糊性,通常需要在一段相对长的时间区间内才能够较准确的识别出语音/音乐来。一般来说,在同一类信号中段时,识别延时越长,识别越准确。但在两类信号的过渡段时,识别延时越长,识别准确率反而降低。这在输入是混合信号(如有背景音乐的语音)的情况下尤为严重。因此,同时兼具高识别率和低识别延时是一个高性能语音/音乐识别器的必要属性。此外,分类的稳定性也是影响到混合编码器编码质量的重要属性。一般来说,混合编码器在不同类型编码器之间切换时会产生质量下降。如果分类器在同一类信号中发生频繁的类型切换,对编码质量的影响是比较大的,这就要求分类器的输出分类结果要准确而平滑。另外,在一些应用中,如通信系统中的分类算法,也要求其计算复杂度和存储开销要尽可能的低,以满足商业需求。

ITU-T标准G.720.1包含有一个语音/音乐分类器。这个分类器以一个主参数,频谱波动方差var_flux,做为信号分类的主要依据,并结合两个不同的频谱峰度参数p1,p2,做为辅助依据。根据var_flux对输入信号的分类,是通过在一个FIFO的var_flux buffer中,根据var_flux的局部统计量来完成的。具体过程概述如下。首先对每一输入音频帧提取频谱波动flux,并缓存在一个第一buffer中,这里的flux是在包括当前输入帧在内的最新的4帧中计算的,也可以有其它的计算方法。然后,计算包括当前输入帧在内的N个最新帧的flux的方差,得到当前输入帧的var_flux,并缓存在第二buffer中。然后,统计第二buffer中包括当前输入帧在内的M个最新帧的var_flux中大于第一门限值的帧的个数K。如果K与M的比值大于一个第二门限值,则判断当前输入帧为语音帧,否则为音乐帧。辅助参数p1,p2主要用于对分类的修正,也是对每一输入音频帧计算的。当p1和/或p2大于某第三门限和/或第四门限时,则直接判断当前输入音频帧为音乐帧。

这个语音/音乐分类器的缺点一方面对音乐的绝对识别率仍然有待提高,另一方面,由于该分类器的目标应用没有针对混合信号的应用场景,所以对混合信号的识别性能也还有一定的提升空间。

现有的语音/音乐分类器有很多都是基于模式识别原理设计的。这类分类器通常都是对输入音频帧提取多个特征参数(十几到几十不等),并将这些参数馈入一个或者基于高斯混合模型,或者基于神经网络,或者基于其它经典分类方法的分类器来进行分类的。

这类分类器虽然有较高的理论基础,但通常具有较高的计算或存储复杂度,实现成本较高。



技术实现要素:

本发明实施例的目的在于提供一种音频信号分类方法和装置,在保证混合音频信号分类识别率的情况下,降低信号分类的复杂度。

第一方面,提供了一种音频信号分类方法,包括:

根据当前音频帧的声音活动性,确定是否获得当前音频帧的频谱波动并存储于频谱波动存储器中,其中,所述频谱波动表示音频信号的频谱的能量波动;

根据音频帧是否为敲击音乐或历史音频帧的活动性,更新频谱波动存储器中存储的频谱波动;

根据频谱波动存储器中存储的频谱波动的部分或全部有效数据的统计量,将所述当前音频帧分类为语音帧或者音乐帧。

在第一种可能的实现方式中,根据当前音频帧的声音活动性,确定是否获得当前音频帧的频谱波动并存储于频谱波动存储器中包括:

若当前音频帧为活动帧,则将当前音频帧的频谱波动存储于频谱波动存储器中。

在第二种可能的实现方式中,根据当前音频帧的声音活动性,确定是否获得当前音频帧的频谱波动并存储于频谱波动存储器中包括:

若当前音频帧为活动帧,且当前音频帧不属于能量冲击,则将当前音频帧的频谱波动存储于频谱波动存储器中。

在第三种可能的实现方式中,根据当前音频帧的声音活动性,确定是否获得当前音频帧的频谱波动并存储于频谱波动存储器中包括:

若当前音频帧为活动帧,且包含当前音频帧与其历史帧在内的多个连续帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,根据所述当前音频帧是否为敲击音乐,更新频谱波动存储器中存储的频谱波动包括:

若当前音频帧属于敲击音乐,则修改频谱波动存储器中已存储的频谱波动的值。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第五种可能的实现方式中,根据所述历史音频帧的活动性,更新频谱波动存储器中存储的频谱波动包括:

如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且前一帧音频帧为非活动帧,则将频谱波动存储器中已存储的除当前音频帧的频谱波动之外的其他频谱波动的数据修改为无效数据;

如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且当前音频帧之前连续三帧历史帧不全都为活动帧,则将当前音频帧的频谱波动修正为第一值;

如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且历史分类结果为音乐信号且当前音频帧的频谱波动大于第二值,则将当前音频帧的频谱波动修正为第二值,其中,第二值大于第一值。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第六种可能的实现方式中,根据频谱波动存储器中存储的频谱波动的部分或全部有效数据的统计量,将所述当前音频帧分类为语音帧或者音乐帧包括:

获得频谱波动存储器中存储的频谱波动的部分或全部有效数据的均值;

当所获得的频谱波动的有效数据的均值满足音乐分类条件时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第七种可能的实现方式中,该音频信号分类方法还包括:

获得当前音频帧的频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;其中,频谱高频带峰度表示当前音频帧的频谱在高频带上的峰度或能量锐度;频谱相关度表示当前音频帧的信号谐波结构在相邻帧间的稳定度;线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

根据所述当前音频帧的声音活动性,确定是否将所述频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度存储于存储器中;

其中,所述根据频谱波动存储器中存储的频谱波动的部分或全部数据的统计量,对所述音频帧进行分类包括:

分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

第二方面,提供了一种音频信号的分类装置,用于对输入的音频信号进行分类,包括:

存储确认单元,用于根据所述当前音频帧的声音活动性,确定是否获得并存储当前音频帧的频谱波动,其中,所述频谱波动表示音频信号的频谱的能量波动;

存储器,用于在存储确认单元输出需要存储的结果时存储所述频谱波动;

更新单元,用于根据语音帧是否为敲击音乐或历史音频帧的活动性,更新存储器中存储的频谱波动;

分类单元,用于根据存储器中存储的频谱波动的部分或全部有效数据的统计量,将所述当前音频帧分类为语音帧或者音乐帧。

在第一种可能的实现方式中,所述存储确认单元具体用于:确认当前音频帧为活动帧时,输出需要存储当前音频帧的频谱波动的结果。

在第二种可能的实现方式中,所述存储确认单元具体用于:确认当前音频帧为活动帧,且当前音频帧不属于能量冲击时,输出需要存储当前音频帧的频谱波动的结果。

在第三种可能的实现方式中,所述存储确认单元具体用于:确认当前音频帧为活动帧,且包含当前音频帧与其历史帧在内的多个连续帧都不属于能量冲击时,输出需要存储当前音频帧的频谱波动的结果。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述更新单元具体用于若当前音频帧属于敲击音乐,则修改频谱波动存储器中已存储的频谱波动的值。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第五种可能的实现方式中,所述更新单元具体用于:如果当前音频帧为活动帧,且前一帧音频帧为非活动帧时,则将存储器中已存储的除当前音频帧的频谱波动之外的其他频谱波动的数据修改为无效数据;或

如果当前音频帧为活动帧,且当前音频帧之前连续三帧不全都为活动帧时,则将当前音频帧的频谱波动修正为第一值;或

如果当前音频帧为活动帧,且历史分类结果为音乐信号且当前音频帧的频谱波动大于第二值,则将当前音频帧的频谱波动修正为第二值,其中,第二值大于第一值。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述分类单元包括:

计算单元,用于获得存储器中存储的频谱波动的部分或全部有效数据的均值;

判断单元,用于将所述频谱波动的有效数据的均值与音乐分类条件做比较,当所述频谱波动的有效数据的均值满足音乐分类条件时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,在第七种可能的实现方式中,该音频信号分类装置还包括:

参数获得单元,用于获得当前音频帧的频谱高频带峰度、频谱相关度、浊音度参数和线性预测残差能量倾斜度;其中,频谱高频带峰度表示当前音频帧的频谱在高频带上的峰度或能量锐度;频谱相关度表示当前音频帧的信号谐波结构在相邻帧间的稳定度;浊音度参数表示当前音频帧与一个基音周期之前的信号的时域相关度;线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

所述存储确认单元还用于,根据所述当前音频帧的声音活动性,确定是否将所述频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度存储于存储器中;

所述存储单元还用于,当存储确认单元输出需要存储的结果时存储所述频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;

所述分类单元具体用于,分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧。

结合第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所述分类单元包括:

计算单元,用于分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

判断单元,用于当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

第三方面,提供了一种音频信号分类方法,包括:

将输入音频信号进行分帧处理;

获得当前音频帧的线性预测残差能量倾斜度;所述线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

将线性预测残差能量倾斜度存储到存储器中;

根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类。

在第一种可能的实现方式中,将线性预测残差能量倾斜度存储到存储器中之前还包括:

根据所述当前音频帧的声音活动性,确定是否将所述线性预测残差能量倾斜度存储于存储器中;并在确定需要存储时将将所述线性预测残差能量倾斜度存储于存储器中。

结合第三方面的或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,预测残差能量倾斜度部分数据的统计量为预测残差能量倾斜度部分数据的方差;所述根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类包括:

将预测残差能量倾斜度部分数据的方差与音乐分类阈值相比较,当所述预测残差能量倾斜度部分数据的方差小于音乐分类阈值时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

结合第三方面的或第三方面的第一种可能的实现方式,在第三种可能的实现方式中,该音频信号分类方法还包括:

获得当前音频帧的频谱波动、频谱高频带峰度和频谱相关度,并存储于对应的存储器中;

其中,所述根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类包括:

分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值。

结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧包括:

分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

结合第三方面的或第三方面的第一种可能的实现方式,在第五种可能的实现方式中,该音频信号分类方法还包括:

获得当前音频帧的频谱音调个数和频谱音调个数在低频带上的比率,并存储于对应的存储器;

其中,所述根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类包括:

分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量;

根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧;所述统计量指对存储器中存储的数据运算操作后获得的数据值。

结合第三方面的第五种可能的实现方式,在第六种可能的实现方式中,分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量包括:

获得存储的线性预测残差能量倾斜度的方差;

获得存储的频谱音调个数的均值;

根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧包括:

当当前音频帧为活动帧,且满足下列条件之一,则将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:

线性预测残差能量倾斜度的方差小于第五阈值;或

频谱音调个数的均值大于第六阈值;或

频谱音调个数在低频带上的比率小于第七阈值。

结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式或第三方面的第六种可能的实现方式,在第七种可能的实现方式中,获得当前音频帧的线性预测残差能量倾斜度包括:

根据下列公式计算当前音频帧的线性预测残差能量倾斜度:

其中,epsP(i)表示当前音频帧第i阶线性预测的预测残差能量;n为正整数,表示线性预测的阶数,其小于等于线性预测的最大阶数。

结合第三方面的第五种可能的实现方式或第三方面的第六种可能的实现方式,在第八种可能的实现方式中,获得当前音频帧的频谱音调个数和频谱音调个数在低频带上的比率包括:

统计当前音频帧在0~8kHz频带上频点峰值大于预定值的频点数量作为频谱音调个数;

计算当前音频帧在0~4kHz频带上频点峰值大于预定值的频点数量与0~8kHz频带上频点峰值大于预定值的频点数量的比值,作为频谱音调个数在低频带上的比率。

第四方面,提供一种信号分类装置,用于对输入的音频信号进行分类,其包括:

分帧单元,用于对输入音频信号进行分帧处理;

参数获得单元,用于获得当前音频帧的线性预测残差能量倾斜度;所述线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

存储单元,用于存储线性预测残差能量倾斜度;

分类单元,用于根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类。

在第一种可能的实现方式中,信号分类装置还包括:

存储确认单元,用于根据所述当前音频帧的声音活动性,确定是否将所述线性预测残差能量倾斜度存储于存储器中;

所述存储单元具体用于,当存储确认单元确认需要确定需要存储时将将所述线性预测残差能量倾斜度存储于存储器中。

结合第四方面的或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,预测残差能量倾斜度部分数据的统计量为预测残差能量倾斜度部分数据的方差;

所述分类单元具体用于将预测残差能量倾斜度部分数据的方差与音乐分类阈值相比较,当所述预测残差能量倾斜度部分数据的方差小于音乐分类阈值时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

结合第四方面的或第四方面的第一种可能的实现方式,在第三种可能的实现方式中,参数获得单元还用于:获得当前音频帧的频谱波动、频谱高频带峰度和频谱相关度,并存储于对应的存储器中;

所述分类单元具体用于:分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值。

第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述分类单元包括:

计算单元,用于分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

判断单元,用于当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

结合第四方面的或第四方面的第一种可能的实现方式,在第五种可能的实现方式中,所述参数获得单元还用于:获得当前音频帧的频谱音调个数和频谱音调个数在低频带上的比率,并存储于存储器;

所述分类单元具体用于:分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量;根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的数据运算操作后获得的数据值。

第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述分类单元包括:

计算单元,用于获得线性预测残差能量倾斜度有效数据的方差和存储的频谱音调个数的均值;

判断单元,用于当当前音频帧为活动帧,且满足下列条件之一,则将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:线性预测残差能量倾斜度的方差小于第五阈值;或频谱音调个数的均值大于第六阈值;或频谱音调个数在低频带上的比率小于第七阈值。

结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式或第四方面的第五种可能的实现方式或第四方面的第六种可能的实现方式,在第七种可能的实现方式中,所述参数获得单元根据下列公式计算当前音频帧的线性预测残差能量倾斜度:

其中,epsP(i)表示当前音频帧第i阶线性预测的预测残差能量;n为正整数,表示线性预测的阶数,其小于等于线性预测的最大阶数。

结合第四方面的第五种可能的实现方式或第四方面的第六种可能的实现方式,在第八种可能的实现方式中,所述参数获得单元用于统计当前音频帧在0~8kHz频带上频点峰值大于预定值的频点数量作为频谱音调个数;所述参数获得单元用于计算当前音频帧在0~4kHz频带上频点峰值大于预定值的频点数量与0~8kHz频带上频点峰值大于预定值的频点数量的比值,作为频谱音调个数在低频带上的比率。

本发明实施例根据频谱波动的长时统计量对音频信号进行分类,参数较少,识别率较高且复杂度较低;同时考虑声音活动性和敲击音乐的因素对频谱波动进行调整,对音乐信号识别率更高,适合混合音频信号分类。

附图说明

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

图1为对音频信号分帧的示意图;

图2为本发明提供的音频信号分类方法的一个实施例的流程示意图;

图3为本发明提供的获得频谱波动的一个实施例的流程示意图;

图4为本发明提供的音频信号分类方法的另一个实施例的流程示意图;

图5为本发明提供的音频信号分类方法的另一个实施例的流程示意图;

图6为本发明提供的音频信号分类方法的另一个实施例的流程示意图;

图7至图10为本发明提供的音频信号分类的一种具体分类流程图;

图11为本发明提供的音频信号分类方法的另一个实施例的流程示意图;

图12为本发明提供的音频信号分类的一种具体分类流程图;

图13为本发明提供的音频信号的分类装置一个实施例的结构示意图;

图14为本发明提供的分类单元一个实施例的结构示意图;

图15为本发明提供的音频信号的分类装置另一个实施例的结构示意图;

图16为本发明提供的音频信号的分类装置另一个实施例的结构示意图;

图17为本发明提供的分类单元一个实施例的结构示意图;

图18为本发明提供的音频信号的分类装置另一个实施例的结构示意图;

图19为本发明提供的音频信号的分类装置另一个实施例的结构示意图。

具体实施方式

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

数字信号处理领域,音频编解码器、视频编解码器广泛应用于各种电子设备中,例如:移动电话,无线装置,个人数据助理(PDA),手持式或便携式计算机,GPS接收机/导航器,照相机,音频/视频播放器,摄像机,录像机,监控设备等。通常,这类电子设备中包括音频编码器或音频解码器,音频编码器或者解码器可以直接由数字电路或芯片例如DSP(digital signal processor)实现,或者由软件代码驱动处理器执行软件代码中的流程而实现。一种音频编码器中,首先对音频信号进行分类,对不同类型的音频信号采用不同的编码模式进行编码后,再将编码后码流传输给解码端。

一般的,音频信号在处理时采用分帧的方式,每一帧信号代表一定时长的音频信号。参考图1,当前输入的需要分类的音频帧可以称为当前音频帧;当前音频帧之前的任意一帧音频帧可以称为历史音频帧;按照从当前音频帧到历史音频帧的时序顺序,历史音频帧可以依次成为前一音频帧,前第二帧音频帧,前第三帧音频帧,前第N帧音频帧,N大于等于四。

本实施例中,输入音频信号为16kHz采样的宽带音频信号,输入音频信号以20ms为一帧进行分帧,即每帧320个时域样点。在提取特征参数前,输入音频信号帧首先经降采样为12.8kHz采样率,即256采样点每帧。后文中的输入音频信号帧均指降采样后的音频信号帧。

参考图2,一种音频信号分类方法的一个实施例包括:

S101:将输入音频信号进行分帧处理,根据当前音频帧的声音活动性,确定是否获得当前音频帧的频谱波动并存储于频谱波动存储器中,其中,频谱波动表示音频信号的频谱的能量波动;

音频信号分类一般按帧进行,对每个音频信号帧提取参数进行分类,以确定该音频信号帧属于语音帧还是音乐帧,以采用对应的编码模式进行编码。一个实施例中,可以在音频信号进行分帧处理后,获得当前音频帧的频谱波动,再根据当前音频帧的声音活动性,确定是否将该频谱波动存储于频谱波动存储器中;另一个实施例中,可以在音频信号进行分帧处理后,根据当前音频帧的声音活动性,确定是否将该频谱波动存储于频谱波动存储器中,在需要存储时再获得该频谱波动并存储。

频谱波动flux表示信号频谱的短时或长时能量波动,为当前音频帧与历史帧在中低频带频谱上对应频率的对数能量差的绝对值的均值;其中历史帧指当前音频帧之前的任意一帧。一个实施例中,频谱波动为当前音频帧与其历史帧在中低频带频谱上对应频率的对数能量差的绝对值的均值。另一个实施例中,频谱波动为当前音频帧与历史帧在中低频带频谱上对应频谱峰值的对数能量差的绝对值的均值。

参考图3,获得频谱波动的一个实施例包括如下步骤:

S1011:获得当前音频帧的频谱;

一个实施例中,可以直接获得音频帧的频谱;另一个实施例中,获得当前音频帧任意两个子帧的频谱,即能量谱;利用两个子帧的频谱的平均值得到当前音频帧的频谱;

S1012:获得当前音频帧历史帧的频谱;

其中历史帧指当前音频帧之前的任意一帧音频帧;一个实施例中可以为当前音频帧之前的第三帧音频帧。

S1013:计算当前音频帧与历史帧分别在中低频带频谱上对应频率的对数能量差的绝对值的均值,作为当前音频帧的频谱波动。

一个实施例中,可以计算当前音频帧在中低频带频谱上所有频点的对数能量与历史帧在中低频带频谱上对应频点的对数能量之间差值的绝对值的均值;

另一个实施例中,可以计算当前音频帧在中低频带频谱上频谱峰值的对数能量与历史帧在中低频带频谱上对应频谱峰值的对数能量之间差值的绝对值的均值。

中低频带频谱,例如0~fs/4,或者0~fs/3的频谱范围。

以输入音频信号为16kHz采样的宽带音频信号,输入音频信号以20ms为一帧为例,对每20ms当前音频帧分别做前后两个256点的FFT,两个FFT窗50%重叠,得到当前音频帧两个子帧的频谱(能量谱),分别记做C0(i),C1(i),i=0,1…127,其中Cx(i)表示第x个子帧的频谱。当前音频帧第1子帧的FFT需要用到前一帧第2子帧的数据。

Cx(i)=rel2(i)+img2(i)

其中,rel(i)和img(i)分别表示第i频点FFT系数的实部和虚部。当前音频帧的频谱C(i)则由两个子帧的频谱平均得到。

一个实施例中,当前音频帧的频谱波动flux为当前音频帧与其60ms前的帧在中低频带频谱上对应频率的对数能量差的绝对值的均值,在另一实施例中也可为不同于60ms的间隔。

其中C-3(i)表示当前当前音频帧之前的第三历史帧,即在本实施例中当帧长为20ms时,当前音频帧60ms以前的历史帧的频谱。在本文中类似X-n()的形式,均表示当前音频帧的第n历史帧的参数X,当前音频帧可省略下角标0。log(.)表示以10为底的对数。

在另一个实施例中,当前音频帧的频谱波动flux也可由下述方法得到,即,为当前音频帧与其60ms前的帧在中低频带频谱上对应频谱峰值的对数能量差的绝对值的均值,

其中P(i)表示当前音频帧的频谱的第i个局部峰值能量,局部峰值所在的频点即为频谱上能量高于高低两相邻频点上能量的频点。K表示中低频带频谱上局部峰值的个数。

其中,根据当前音频帧的声音活动性,确定是否将该频谱波动存储于频谱波动存储器中,可以用多种方式实现:

一个实施例中,若音频帧的声音活动性参数表示音频帧为活动帧,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。

另一个实施例中,根据音频帧的声音活动性和音频帧是否为能量冲击,确定是否将所述频谱波动存储于存储器中。若音频帧的声音活动性参数表示音频帧为活动帧,且表示音频帧是否为能量冲击的参数表示音频帧不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储;另一个实施例中,若当前音频帧为活动帧,且包含当前音频帧与其历史帧在内的多个连续帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。例如,当前音频帧为活动帧,且当前音频帧、前一帧音频帧和前第二帧音频帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。

声音活动性标识vad_flag表示当前输入信号是活动的前景信号(语音,音乐等)还是前景信号静默的背景信号(如背景噪声,静音等),由声音活动性检测器VAD获得。vad_flag=1表示输入信号帧为活动帧,即前景信号帧,反之vad_flag=0表示背景信号帧。由于VAD不属本发明的发明内容,VAD的具体算法在此不再详述。

声音冲击标识attack_flag表示当前当前音频帧是否属于音乐中的一个能量冲击。当当前音频帧之前的若干历史帧以音乐帧为主时,若当前音频帧的帧能量较其之前第一历史帧有较大跃升,且较其之前一段时间内音频帧的平均能量有较大跃升,且当前音频帧的时域包络较其之前一段时间内音频帧的平均包络也有较大跃升时,则认为当前当前音频帧属于音乐中的能量冲击。

根据所述当前音频帧的声音活动性,当当前音频帧为活动帧时,才存储当前音频帧的频谱波动;能够降低非活动帧的误判率,提高音频分类的识别率。

当如下条件满足时,attack_flag置1,即表示当前当前音频帧为一个音乐中的能量冲击:

其中,etot表示当前音频帧的对数帧能量;etot-1表示前一音频帧的对数帧能量;lp_speech表示对数帧能量etot的长时滑动平均;log_max_spl和mov_log_max_spl分别表示当前音频帧的时域最大对数样点幅度及其长时滑动平均;mode_mov表示信号分类中历史最终分类结果的长时滑动平均。

以上公式的含义是,当当前音频帧之前的若干历史帧以音乐帧为主时,若当前音频帧的帧能量较其之前第一历史帧有较大跃升,且较其之前一段时间内音频帧的平均能量有较大跃升,且当前音频帧的时域包络较其之前一段时间内音频帧的平均包络也有较大跃升时,则认为当前当前音频帧属于音乐中的能量冲击。

对数帧能量etot,由输入音频帧的对数总子带能量表示:

其中,hb(j),lb(j)分别表示输入音频帧频谱中第j子带的高低频边界;C(i)表示输入音频帧的频谱。

当前音频帧的时域最大对数样点幅度的长时滑动平均mov_log_max_spl只在活动声音帧中更新:

一个实施例中,当前音频帧的频谱波动flux被缓存在一个FIFO的flux历史buffer中,本实施例中flux历史buffer的长度为60(60帧)。判断当前音频帧的声音活动性和音频帧是否为能量冲击,当当前音频帧为前景信号帧且当前音频帧及其之前的两帧均未出现属于音乐的能量冲击,则将当前音频帧的频谱波动flux存储于存储器中。

在缓存当前当前音频帧的flux之前,检查是否满足如下条件:

若满足,则缓存,否则不缓存。

其中,vad_flag表示当前输入信号是活动的前景信号还是前景信号静默的背景信号,vad_flag=0表示背景信号帧;attack_flag表示当前当前音频帧是否属于音乐中的一个能量冲击,attack_flag=1表示当前当前音频帧为一个音乐中的能量冲击。

上述公式的含义为:当前音频帧为活动帧,且当前音频帧、前一帧音频帧和前第二帧音频帧均不属于能量冲击。

S102:根据音频帧是否为敲击音乐或历史音频帧的活动性,更新频谱波动存储器中存储的频谱波动;

一个实施例中,若表示音频帧是否属于敲击音乐的参数表示当前音频帧属于敲击音乐,则修改频谱波动存储器中存储的频谱波动的值,将频谱波动存储器中有效的频谱波动值修改为小于等于音乐阈值的一个值,其中当音频帧的频谱波动小于该音乐阈值时该音频被分类为音乐帧。一个实施例中,将有效的频谱波动值重置为5。即当敲击声响标识percus_flag被置为1时,flux历史buffer中所有的有效缓冲数据均被重置为5。这里,有效缓冲数据等价于有效频谱波动值。一般的,音乐帧的频谱波动值较低,而语音帧的频谱波动值较高。当音频帧属于敲击音乐时,将有效的频谱波动值修改为小于等于音乐阈值的一个值,则能提高该音频帧被分类为音乐帧的概率,从而提高音频信号分类的准确率。

另一个实施例中,根据当前音频帧的历史帧的活动性,更新存储器中的频谱波动。具体的,一个实施例中,如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且前一帧音频帧为非活动帧,则将频谱波动存储器中已存储的除当前音频帧的频谱波动之外的其他频谱波动的数据修改为无效数据。前一帧音频帧为非活动帧而当前音频帧为活动帧时,当前音频帧与历史帧的语音活动性不同,将历史帧的频谱波动无效化,则能降低历史帧对音频分类的影响,从而提高音频信号分类的准确率。

另一个实施例中,如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且当前音频帧之前连续三帧不全都为活动帧,则将当前音频帧的频谱波动修正为第一值。第一值可以为语音阈值,其中当音频帧的频谱波动大于该语音阈值时该音频被分类为语音帧。另一个实施例中,如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且历史帧的分类结果为音乐帧且当前音频帧的频谱波动大于第二值,则将当前音频帧的频谱波动修正为第二值,其中,第二值大于第一值。

如果当前音频帧的flux被缓存,且前一帧音频帧为非活动帧(vad_flag=0),则除被新缓存入flux历史buffer的当前音频帧flux以外,其余flux历史buffer中的数据全部重置为-1(等价于将这些数据无效化)。

如果flux被缓存入flux历史buffer,且当前音频帧之前连续三帧不全都为活动帧(vad_flag=1),则将刚缓存入flux历史buffer的当前音频帧flux修正为16,即是否满足如下条件:

若不满足,则将刚缓存入flux历史buffer的当前音频帧flux修正为16;

如果当前音频帧之前连续三帧都为活动帧(vad_flag=1),则检查是否满足如下条件:

若满足,则将刚缓存入flux历史buffer的当前音频帧flux修正为20,否则不做操作。

其中,mode_mov表示信号分类中历史最终分类结果的长时滑动平均;mode_mov>0.9表示信号处于音乐信号中,根据音频信号的历史分类结果将flux进行限制,以降低flux出现语音特征的概率,目的是提高判断分类的稳定性。

当当前音频帧之前连续三帧历史帧都为非活动帧,当前音频帧为活动帧时,或当前音频帧之前连续三帧不全都为活动帧,当前音频帧为活动帧时,此时处于分类的初始化阶段。在一个实施例中为了使分类结果倾向于语音(音乐),可以将当前音频帧的频谱波动修改为语音(音乐)阈值或接近于语音(音乐)阈值的数值。在另一个实施例中,如果当前信号之前的信号是语音(音乐)信号,则可以将当前音频帧的频谱波动修改为语音(音乐)阈值或接近于语音(音乐)阈值的数值以提高判断分类的稳定性。在另一个实施例中,为了使分类结果倾向于音乐,可以对频谱波动进行限制,即可以修改当前音频帧的频谱波动使其不大于一个阈值,以降低频谱波动判定为语音特征的概率。

敲击声响标识percus_flag表示音频帧中是否有敲击声响存在。percus_flag置1表示检测到敲击声响,置0则表示没有检测到敲击声响。

当当前信号(即包括当前音频帧和其若干历史帧在内的若干最新的信号帧)在短时和长时均出现较尖锐的能量突起,且当前信号不具有明显的浊音特征时,若当前音频帧之前的若干历史帧以音乐帧为主,则认为当前信号是一个敲击音乐;否则,进一步的若当前信号的每个子帧均不具有明显的浊音特征且当前信号的时域包络较其长时平均也出现较明显的跃升变化时,则也认为当前信号是一个敲击音乐。

敲击声响标识percus_flag通过如下步骤获得:

首先获得输入音频帧的对数帧能量etot,由输入音频帧的对数总子带能量表示:

其中,hb(j),lb(j)分别表示输入帧频谱第j子带的高低频边界,C(i)表示输入音频帧的频谱。

当满足如下条件时,percus_flag置1,否则置0。

其中,etot表示当前音频帧的对数帧能量;lp_speech表示对数帧能量etot的长时滑动平均;voicing(0),voicing-1(0),voicing-1(1)分别表示当前输入音频帧第一子帧和第一历史帧的第一,第二子帧的归一化开环基音相关度,浊音度参数voicing是通过线性预测分析得到的,代表当前音频帧与一个基音周期之前的信号的时域相关度,取值在0~1之间;mode_mov表示信号分类中历史最终分类结果的长时滑动平均;log_max_spl-2和mov_log_max_spl-2分别表示第二历史帧的时域最大对数样点幅度,及其长时滑动平均。lp_speech在每一活动声音帧中进行更新(即vad_flag=1的帧),其更新方法为:

lp_speech=0.99·lp_speech-1+0.01·etot

以上两式的含义为:当当前信号(即包括当前音频帧和其若干历史帧在内的若干最新的信号帧)在短时和长时均出现较尖锐的能量突起,且当前信号不具有明显的浊音特征时,若当前音频帧之前的若干历史帧以音乐帧为主,则认为当前信号是一个敲击音乐,否则进一步的若当前信号的每个子帧均不具有明显的浊音特征且当前信号的时域包络较其长时平均也出现较明显的跃升变化时,则也认为当前信号是一个敲击音乐。

浊音度参数voicing,即归一化开环基音相关度,表示当前音频帧与一个基音周期之前的信号的时域相关度,可以由ACELP的开环基音搜索中获得,取值在0~1之间。由于属现有技术,本发明不做详述。本实施例中当前音频帧的两个子帧各计算一个voicing,求平均得到当前音频帧的voicing参数。当前音频帧的voicing参数也被缓存在一个voicing历史buffer中,本实施例中voicing历史buffer的长度为10。

mode_mov在每一活动声音帧且在该帧之前已出现连续30帧以上的声音活动帧时进行更新,更新方法为:

mode_mov=0.95·move_mov-1+0.05·mode

其中mode为当前输入音频帧的分类结果,二元取值,“0”表示语音类别,“1”表示音乐类别。

S103:根据频谱波动存储器中存储的频谱波动的部分或全部数据的统计量,将该当前音频帧分类为语音帧或者音乐帧。当频谱波动的有效数据的统计量满足语音分类条件时,将所述当前音频帧分类为语音帧;当频谱波动的有效数据的统计量满足音乐分类条件时,将所述当前音频帧分类为音乐帧。

此处的统计量为频谱波动存储器中存储的有效的频谱波动(即有效数据)做统计操作得到的值,例如统计操作可以为平均值或者方差。下面实施例中的统计量具有类似的含义。

一个实施例中,步骤S103包括:

获得频谱波动存储器中存储的频谱波动的部分或全部有效数据的均值;

当所获得的频谱波动的有效数据的均值满足音乐分类条件时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

例如,当所获得的频谱波动的有效数据的均值小于音乐分类阈值时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

一般的,音乐帧的频谱波动值较小,而语音帧的频谱波动值较大。因此可以根据频谱波动对当前音频帧进行分类。当然还可以采用其他分类方法对该当前音频帧进行信号分类。例如,统计频谱波动存储器中存储的频谱波动的有效数据的数量;根据该有效数据的数量,将频谱波动存储器由近端到远端划分出至少两个不同长度的区间,获得每个区间对应的频谱波动的有效数据的均值;其中,所述区间的起点为当前帧频谱波动存储位置,近端为存储有当前帧频谱波动的一端,远端为存储有历史帧频谱波动的一端;根据较短区间内的频谱波动统计量对所述音频帧进行分类,若此区间内的参数统计量足够区分出所述音频帧的类型则分类过程结束,否则在其余较长区间中最短的区间内继续分类过程,并以此类推。在每个区间的分类过程中,根据每一个区间对应的分类阈值,对所述当前音频帧进行分类,将所述当前音频帧分类为语音帧或者音乐帧,当频谱波动的有效数据的统计量满足语音分类条件时,将所述当前音频帧分类为语音帧;当频谱波动的有效数据的统计量满足音乐分类条件时,将所述当前音频帧分类为音乐帧。

在信号分类后,可以对不同的信号采用不同的编码模式进行编码。例如,语音信号采用基于语音产生模型的编码器(如CELP)进行编码,对音乐信号采用基于变换的编码器(如基于MDCT的编码器)进行编码。

上述实施例,由于根据频谱波动的长时统计量对音频信号进行分类,参数较少,识别率较高且复杂度较低;同时考虑声音活动性和敲击音乐的因素对频谱波动进行调整,对音乐信号识别率更高,适合混合音频信号分类。

参考图4,另一个实施例中,在步骤S102之后还包括:

S104:获得当前音频帧的频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度,将所述频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度存储于存储器中;频谱高频带峰度表示当前音频帧频谱在高频带上的峰度或能量锐度;频谱相关度表示信号谐波结构在相邻帧间的稳定度;线性预测残差能量倾斜度表示线性预测残差能量倾斜度表示输入音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

可选的,在存储这些参数之前,还包括:根据所述当前音频帧的声音活动性,确定是否将频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度存储于存储器中;如果当前音频帧为活动帧,则存储上述参数;否则不存储。

频谱高频带峰度表示当前音频帧频谱在高频带上的峰度或能量锐度;一个实施例中,通过下列公式计算频谱高频带峰度ph:

其中p2v_map(i)表示频谱第i个频点的峰度,峰度p2v_map(i)由下式得到

其中peak(i)=C(i),如果第i频点是频谱的局部峰值,否则peak(i)=0。vl(i)和vr(i)分别表示第i个频点的高频侧和低频侧与之最临近的频谱局部谷值v(n)。

C(i)<C(i-1),C(i)<C(i+1)

当前音频帧的频谱高频带峰度ph也被缓存在一个ph历史buffer中,本实施例中ph历史buffer的长度为60。

频谱相关度cor_map_sum表示信号谐波结构在相邻帧间的稳定度,其通过以下步骤获得:

首先获得输入音频帧C(i)的去底频谱C’(i)。

C'(i)=C(i)-floor(i)

其中,floor(i),i=0,1,…127,表示输入音频帧频谱的谱底。

其中,idx[x]表示x在频谱上的位置,idx[x]=0,1,…127。

然后在每两个相邻的频谱谷值之间,求输入音频帧与之前一帧的去底频谱的互相关cor(n),

其中,lb(n),hb(n)分别表示第n个频谱谷值区间(即位于两个相邻得谷值之间的区域)的端点位置,即限定该谷值区间的两个频谱谷值的位置。

最后,通过下列公式计算输入音频帧的频谱相关度cor_map_sum:

其中,inv[f]表示函数f的反函数。

线性预测残差能量倾斜度epsP_tilt表示输入音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度。可以通过下列公式计算获得:

其中,epsP(i)表示第i阶线性预测的预测残差能量;n为正整数,表示线性预测的阶数,其小于等于线性预测的最大阶数。例如一个实施例中,n=15。

则步骤S103可以被以下步骤替代:

S105:分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值,运算操作可以包括求均值,求方差等操作。

一个实施例中,该步骤包括:

分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

一般的,音乐帧的频谱波动值较小,而语音帧的频谱波动值较大;音乐帧的频谱高频带峰度值较大,语音帧的频谱高频带峰度较小;音乐帧的频谱相关度的值较大,语音帧的频谱相关度值较小;音乐帧的线性预测残差能量倾斜度的变化较小,而语音帧的线性预测残差能量倾斜度的变化较大。而因此可以根据上述参数的统计量对当前音频帧进行分类。当然还可以采用其他分类方法对该当前音频帧进行信号分类。例如,统计频谱波动存储器中存储的频谱波动的有效数据的数量;根据该有效数据的数量,将存储器由近端到远端划分出至少两个不同长度的区间,获得每个区间对应的频谱波动的有效数据的均值、频谱高频带峰度有效数据的均值、频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;其中,所述区间的起点为当前帧频谱波动的存储位置,近端为存储有当前帧频谱波动的一端,远端为存储有历史帧频谱波动的一端;根据较短区间内的上述参数的有效数据的统计量对所述音频帧进行分类,若此区间内的参数统计量足够区分出所述音频帧的类型则分类过程结束,否则在其余较长区间中最短的区间内继续分类过程,并以此类推。在每个区间的分类过程中,根据每一个区间对应的分类阈值,对所述当前音频帧进行分类,当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

在信号分类后,可以对不同的信号采用不同的编码模式进行编码。例如,语音信号采用基于语音产生模型的编码器(如CELP)进行编码,对音乐信号采用基于变换的编码器(如基于MDCT的编码器)进行编码。

上述实施例中,根据频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度的长时统计量对音频信号进行分类,参数较少,识别率较高且复杂度较低;同时考虑声音活动性和敲击音乐的因素对频谱波动进行调整,根据当前音频帧所处信号环境,对频谱波动进行修正,提高分类识别率,适合混合音频信号分类。

参考图5,音频信号分类方法的另一个实施例包括:

S501:将输入音频信号进行分帧处理;

音频信号分类一般按帧进行,对每个音频信号帧提取参数进行分类,以确定该音频信号帧属于语音帧还是音乐帧,以采用对应的编码模式进行编码。

S502:获得当前音频帧的线性预测残差能量倾斜度;线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

一个实施例中,线性预测残差能量倾斜度epsP_tilt可以通过下列公式计算获得:

其中,epsP(i)表示第i阶线性预测的预测残差能量;n为正整数,表示线性预测的阶数,其小于等于线性预测的最大阶数。例如一个实施例中,n=15。

S503:将线性预测残差能量倾斜度存储到存储器中;

可以将线性预测残差能量倾斜度存储到存储器中。一个实施例中,该存储器可以为一个FIFO的buffer,该buffer的长度为60个存储单位(即可存储60个线性预测残差能量倾斜度)。

可选的,在存储线性预测残差能量倾斜度之前,还包括:根据所述当前音频帧的声音活动性,确定是否将线性预测残差能量倾斜度存储于存储器中;如果当前音频帧为活动帧,则存储线性预测残差能量倾斜度;否则不存储。

S504:根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类。

一个实施例中,预测残差能量倾斜度部分数据的统计量为预测残差能量倾斜度部分数据的方差;则步骤S504包括:

将预测残差能量倾斜度部分数据的方差与音乐分类阈值相比较,当所述预测残差能量倾斜度部分数据的方差小于音乐分类阈值时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

一般的,音乐帧的线性预测残差能量倾斜度值变化较小,而语音帧的线性预测残差能量倾斜度值变化较大。而因此可以根据线性预测残差能量倾斜度的统计量对当前音频帧进行分类。当然还可以结合其他参数采用其他分类方法对该当前音频帧进行信号分类。

另一个实施例中,步骤S504之前还包括:获得当前音频帧的频谱波动、频谱高频带峰度和频谱相关度,并存储于对应的存储器中。则步骤S504具体为:

分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值。

进一步的,分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧包括:

分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

一般的,音乐帧的频谱波动值较小,而语音帧的频谱波动值较大;音乐帧的频谱高频带峰度值较大,语音帧的频谱高频带峰度较小;音乐帧的频谱相关度的值较大,语音帧的频谱相关度值较小;音乐帧的线性预测残差能量倾斜度值变化较小,而语音帧的线性预测残差能量倾斜度值变化较大。而因此可以根据上述参数的统计量对当前音频帧进行分类。

另一个实施例中,步骤S504之前还包括:获得当前音频帧的频谱音调个数和频谱音调个数在低频带上的比率,并存储于对应的存储器。则步骤S504具体为:

分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量;

根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧;所述统计量指对存储器中存储的数据运算操作后获得的数据值。

进一步的,分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量包括:获得存储的线性预测残差能量倾斜度的方差;获得存储的频谱音调个数的均值。根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧包括:

当当前音频帧为活动帧,且满足下列条件之一,则将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:

线性预测残差能量倾斜度的方差小于第五阈值;或

频谱音调个数的均值大于第六阈值;或

频谱音调个数在低频带上的比率小于第七阈值。

其中,获得当前音频帧的频谱音调个数和频谱音调个数在低频带上的比率包括:

统计当前音频帧在0~8kHz频带上频点峰值大于预定值的频点数量作为频谱音调个数;

计算当前音频帧在0~4kHz频带上频点峰值大于预定值的频点数量与0~8kHz频带上频点峰值大于预定值的频点数量的比值,作为频谱音调个数在低频带上的比率。一个实施例中,预定值为50。

频谱音调个数Ntonal表示当前音频帧中的0~8kHz频带上频点峰值大于预定值的频点个数。一个实施例中,可以通过如下方式获得:对当前音频帧,统计其在0~8kHz频带上频点峰值p2v_map(i)大于50的个数,即为Ntonal,其中,p2v_map(i)表示频谱第i个频点的峰度,其计算方式可以参考上述实施例的描述。

频谱音调个数在低频带上的比率ratio_Ntonal_lf表示频谱音调个数与低频带音调个数的比值。一个实施例中,可以通过如下方式获得:对当前当前音频帧,统计其在0~4kHz频带上p2v_map(i)大于50的个数,Ntonal_lf。ratio_Ntonal_lf即为Ntonal_lf与Ntonal的比值,Ntonal_lf/Ntonal。其中,p2v_map(i)表示频谱第i个频点的峰度,其计算方式可以参考上述实施例的描述。另一个实施例中,分别获得存储的多个Ntonal的均值和存储的多个Ntonal_lf的均值,计算Ntonal_lf的均值与Ntonal的均值的比值,作为频谱音调个数在低频带上的比率。

本实施例中,根据线性预测残差能量倾斜度的长时统计量对音频信号进行分类,同时兼顾了分类的鲁棒性和分类的识别速度,分类参数较少但结果较为准确,复杂度低、内存开销低。

参考图6,音频信号分类方法的另一个实施例包括:

S601:将输入音频信号进行分帧处理;

S602:获得当前音频帧的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;

频谱波动flux表示信号频谱的短时或长时能量波动,为当前音频帧与历史帧在中低频带频谱上对应频率的对数能量差的绝对值的均值;其中历史帧指当前音频帧之前的任意一帧。频谱高频带峰度ph表示当前音频帧频谱在高频带上的峰度或能量锐度。频谱相关度cor_map_sum表示信号谐波结构在相邻帧间的稳定度。线性预测残差能量倾斜度epsP_tilt表示线性预测残差能量倾斜度表示输入音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度。这几个参数的具体计算方法参照前文实施例。

进一步的,可以获得浊音度参数;浊音度参数voicing表示当前音频帧与一个基音周期之前的信号的时域相关度。浊音度参数voicing是通过线性预测分析得到的,代表当前音频帧与一个基音周期之前的信号的时域相关度,取值在0~1之间。由于属现有技术,本发明不做详述。本实施例中当前音频帧的两个子帧各计算一个voicing,求平均得到当前音频帧的voicing参数。当前音频帧的voicing参数也被缓存在一个voicing历史buffer中,本实施例中voicing历史buffer的长度为10。

S603:分别将所述频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度存储于对应的存储器;

可选的,在存储这几个参数之前,还包括:

一个实施例,根据所述当前音频帧的声音活动性,确定是否将所述频谱波动存储频谱波动存储器中。若当前音频帧为活动帧,则将当前音频帧的频谱波动存储于频谱波动存储器中。

另一个实施例,根据音频帧的声音活动性和音频帧是否为能量冲击,确定是否将所述频谱波动存储于存储器中。若当前音频帧为活动帧,且当前音频帧不属于能量冲击,则将当前音频帧的频谱波动存储于频谱波动存储器中;另一个实施例中,若当前音频帧为活动帧,且包含当前音频帧与其历史帧在内的多个连续帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。例如,当前音频帧为活动帧,且当前音频帧其前一帧以及历史第二帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。

声音活动性标识vad_flag和声音冲击标识attack_flag的定义和获得方式参照前述实施例的描述。

可选的,在存储这些参数之前,还包括:

根据所述当前音频帧的声音活动性,确定是否将频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度存储于存储器中;如果当前音频帧为活动帧,则存储上述参数;否则不存储。

S604:分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值,运算操作可以包括求均值,求方差等操作。

可选的,在步骤S604之前,还可以包括:

根据所述当前音频帧是否为敲击音乐,更新频谱波动存储器中存储的频谱波动;一个实施例中,若当前音频帧为敲击音乐,将频谱波动存储器中有效的频谱波动值修改为小于等于音乐阈值的一个值,其中当音频帧的频谱波动小于该音乐阈值时该音频被分类为音乐帧。一个实施例中,若当前音频帧为敲击音乐,则将频谱波动存储器中有效的频谱波动值重置为5。

可选的,在步骤S604之前,还可以包括:

根据当前音频帧的历史帧的活动性,更新存储器中的频谱波动。一个实施例中,如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且前一帧音频帧为非活动帧,则将频谱波动存储器中已存储的除当前音频帧的频谱波动之外的其他频谱波动的数据修改为无效数据。另一个实施例中,如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且当前音频帧之前连续三帧不全都为活动帧,则将当前音频帧的频谱波动修正为第一值。第一值可以为语音阈值,其中当音频帧的频谱波动大于该语音阈值时该音频被分类为语音帧。另一个实施例中,如果确定当前音频帧的频谱波动存储于频谱波动存储器中,且历史帧的分类结果为音乐帧且当前音频帧的频谱波动大于第二值,则将当前音频帧的频谱波动修正为第二值,其中,第二值大于第一值。

例如,如果当前音频帧前一帧为非活动帧(vad_flag=0),则除被新缓存入flux历史buffer的当前音频帧flux以外,其余flux历史buffer中的数据全部重置为-1(等价于将这些数据无效化);如果当前音频帧之前连续三帧不全都为活动帧(vad_flag=1),则将刚缓存入flux历史buffer的当前音频帧flux修正为16;如果当前音频帧之前连续三帧都为活动帧(vad_flag=1),且历史的信号分类结果长时平滑结果为音乐信号且当前音频帧flux大于20,则将缓存的当前音频帧的频谱波动修改为20。其中,活动帧以及历史的信号分类结果长时平滑结果的计算可以参考前述实施例。

一个实施例中,步骤S604包括:

分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

一般的,音乐帧的频谱波动值较小,而语音帧的频谱波动值较大;音乐帧的频谱高频带峰度值较大,语音帧的频谱高频带峰度较小;音乐帧的频谱相关度的值较大,语音帧的频谱相关度值较小;音乐帧的线性预测残差能量倾斜度值较小,而语音帧的线性预测残差能量倾斜度值较大。而因此可以根据上述参数的统计量对当前音频帧进行分类。当然还可以采用其他分类方法对该当前音频帧进行信号分类。例如,统计频谱波动存储器中存储的频谱波动的有效数据的数量;根据该有效数据的数量,将存储器由近端到远端划分出至少两个不同长度的区间,获得每个区间对应的频谱波动的有效数据的均值、频谱高频带峰度有效数据的均值、频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;其中,所述区间的起点为当前帧频谱波动的存储位置,近端为存储有当前帧频谱波动的一端,远端为存储有历史帧频谱波动的一端;根据较短区间内的上述参数的有效数据的统计量对所述音频帧进行分类,若此区间内的参数统计量足够区分出所述音频帧的类型则分类过程结束,否则在其余较长区间中最短的区间内继续分类过程,并以此类推。在每个区间的分类过程中,根据每一个区间区间对应的分类阈值,对所述当前音频帧分类进行分类,当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

在信号分类后,可以对不同的信号采用不同的编码模式进行编码。例如,语音信号采用基于语音产生模型的编码器(如CELP)进行编码,对音乐信号采用基于变换的编码器(如基于MDCT的编码器)进行编码。

本实施例中,根据频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度的长时统计量进行分类,同时兼顾了分类的鲁棒性和分类的识别速度,分类参数较少但结果较为准确,识别率较高且复杂度较低。

一个实施例中,在将上述频谱波动flux、频谱高频带峰度ph、频谱相关度cor_map_sum和线性预测残差能量倾斜度epsP_tilt存储于对应的存储器之后,可以根据存储的频谱波动的有效数据的数量,采用不同判断流程进行分类。如果声音活动性标识置为1,即当前音频帧为活动声音帧,则,检查存储的频谱波动的有效数据的个数N。

存储器中存储的频谱波动中有效数据的个数N的值不同,判断流程也不同:

(1)参考图7,若N=60,则分别获得flux历史buffer中全部数据的均值,记为flux60,近端30个数据的均值,记为flux30,近端10个数据的均值,记为flux10。分别获得ph历史buffer中全部数据的均值,记为ph60,近端30个数据的均值,记为ph30,近端10个数据的均值,记为ph10。分别获得cor_map_sum历史buffer中全部数据的均值,记为cor_map_sum60,近端30个数据的均值,记为cor_map_sum30,近端10个数据的均值,记为cor_map_sum10。并分别获得epsP_tilt历史buffer中全部数据的方差,记为epsP_tilt60,近端30个数据的方差,记为epsP_tilt30,近端10个数据的方差,记为epsP_tilt10。获得voicing历史buffer中数值大于0.9的数据的个数voicing_cnt。其中,近端为存储有当前音频帧对应的上述参数的一端。

首先检查flux10,ph10,epsP_tilt10,cor_map_sum10,voicing_cnt是否满足条件:flux10<10或epsPtilt10<0.0001或ph10>1050或cor_map_sum10>95,并且voicing_cnt<6,若满足,则将当前音频帧分类为音乐类型(即Mode=1)。否则,检查flux10是否大于15且voicing_cnt是否大于2,或者flux10是否大于16,若满足,则将当前音频帧分类为语音类型(即Mode=0)。否则,检查flux30,flux10,ph30,epsP_tilt30,cor_map_sum30,voicing_cnt是否满足条件:flux30<13且flux10<15,或epsPtilt30<0.001或ph30>800或cor_map_sum30>75,若满足,则将当前音频帧分类为音乐类型。否则,检查flux60,flux30,ph60,epsP_tilt60,cor_map_sum60是否满足条件:flux60<14.5或cor_map_sum30>75或ph60>770或epsP_tilt10<0.002,并且flux30<14。若满足,则将当前音频帧分类为音乐类型,否则分类为语音类型。

(2)参考图8,如果N<60且N>=30,则分别获得flux历史buffer,ph历史buffer和cor_map_sum历史buffer中近端N个数据的均值,记为fluxN,phN,cor_map_sumN,并同时得到epsP_tilt历史buffer中近端N个数据的方差,记为epsP_tiltN。检查fluxN,phN,epsP_tiltN,cor_map_sumN是否满足条件:fluxN<13+(N-30)/20或cor_map_sumN>75+(N-30)/6或phN>800或epsP_tiltN<0.001。若满足,则将当前音频帧分类为音乐类型,否则为语音类型。

(3)参考图9,如果N<30且N>=10,则分别获得flux历史buffer,ph历史buffer和cor_map_sum历史buffer中近端N个数据的均值,记为fluxN,phN和cor_map_sumN,并同时得到epsP_tilt历史buffer中近端N个数据的方差,记为epsP_tiltN。

首先检查历史分类结果的长时滑动平均mode_mov是否大于0.8。若是,则检查fluxN,phN,epsP_tiltN,cor_map_sumN是否满足条件:fluxN<16+(N-10)/20或phN>1000-12.5×(N-10)或epsP_tiltN<0.0005+0.000045×(N-10)或cor_map_sumN>90-(N-10)。否则,获得voicing历史buffer中数值大于0.9的数据的个数voicing_cnt,并检查是否满足条件:fluxN<12+(N-10)/20或phN>1050-12.5×(N-10)或epsP_tiltN<0.0001+0.000045×(N-10)或cor_map_sumN>95-(N-10),并且voicing_cnt<6。如果满足上面两组条件中的任一组,则将当前音频帧分类为音乐类型,否则为语音类型。

(4)参考图10,如果N<10且N>5,则分别获得ph历史buffer,cor_map_sum历史buffer中近端N个数据的均值,记为phN和cor_map_sumN.以及epsP_tilt历史buffer中近端N个数据的方差,记为epsP_tiltN。同时获得voicing历史buffer中近端6个数据中数值大于0.9的数据的个数voicing_cnt6。

检查是否满足条件:epsP_tiltN<0.00008或phN>1100或cor_map_sumN>100,并且voicing_cnt<4。若满足,则将当前音频帧分类为音乐类型,否则为语音类型。

(5)如果N<=5,则以前一音频帧的分类结果作为当前音频帧的分类类型。

上述实施例为根据频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度的长时统计量进行分类的一种具体分类流程,本领域技术人员可以理解的是,可以使用别的流程进行分类。本实施例中的分类流程可以应用在前述实施例中的对应步骤,例如作为图2的步骤103、图4的步骤105或者图6中的步骤604的具体分类方法。

参考图11,一种音频信号分类方法的另一个实施例包括:

S1101:将输入音频信号进行分帧处理;

S1102:获得当前音频帧的线性预测残差能量倾斜度、频谱音调个数和频谱音调个数在低频带上的比率;

线性预测残差能量倾斜度epsP_tilt表示输入音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;频谱音调个数Ntonal表示当前音频帧中的0~8kHz频带上频点峰值大于预定值的频点个数;频谱音调个数在低频带上的比率ratio_Ntonal_lf表示频谱音调个数与低频带音调个数的比值。具体计算参照前述实施例的描述。

S1103:分别将线性预测残差能量倾斜度epsP_tilt、频谱音调个数和频谱音调个数在低频带上的比率存储到对应的存储器中;

当前音频帧的线性预测残差能量倾斜度epsP_tilt、频谱音调个数各自被缓存入各自的历史buffer中,本实施例中这两个buffer的长度也均为60。

可选的,在存储这些参数之前,还包括:根据所述当前音频帧的声音活动性,确定是否将所述线性预测残差能量倾斜度、频谱音调个数和频谱音调个数在低频带上的比率存储于存储器中;并在确定需要存储时将将所述线性预测残差能量倾斜度存储于存储器中。如果当前音频帧为活动帧,则存储上述参数;否则不存储。

S1104:分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量;所述统计量指对存储器中存储的数据运算操作后获得的数据值,运算操作可以包括求均值,求方差等操作。

一个实施例中,分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量包括:获得存储的线性预测残差能量倾斜度的方差;获得存储的频谱音调个数的均值。

S1105:根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧;

一个实施例中,该步骤包括:

当当前音频帧为活动帧,且满足下列条件之一,则将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:

线性预测残差能量倾斜度的方差小于第五阈值;或

频谱音调个数的均值大于第六阈值;或

频谱音调个数在低频带上的比率小于第七阈值。

一般的,音乐帧的线性预测残差能量倾斜度值较小,而语音帧的线性预测残差能量倾斜度值较大;音乐帧的频谱音调个数较多,而语音帧的频谱音调个数较少;音乐帧的频谱音调个数在低频带上的比率较低,而语音帧的频谱音调个数在低频带上的比率较高(语音帧的能量主要集中在低频带上)。而因此可以根据上述参数的统计量对当前音频帧进行分类。当然还可以采用其他分类方法对该当前音频帧进行信号分类。

在信号分类后,可以对不同的信号采用不同的编码模式进行编码。例如,语音信号采用基于语音产生模型的编码器(如CELP)进行编码,对音乐信号采用基于变换的编码器(如基于MDCT的编码器)进行编码。

上述实施例中,根据线性预测残差能量倾斜度、频谱音调个数的长时统计量和频谱音调个数在低频带上的比率对音频信号进行分类,参数较少,识别率较高且复杂度较低。

一个实施例中,分别将线性预测残差能量倾斜度epsP_tilt、频谱音调个数Ntonal和频谱音调个数在低频带上的比率ratio_Ntonal_lf存储到对应的buffer后,获得epsP_tilt历史buffer中所有数据的方差,记为epsP_tilt60。获得Ntonal历史buffer中所有数据的均值,记为Ntonal60。获得Ntonal_lf历史buffer中所有数据的均值,并计算该均值与Ntonal60的比,记为ratio_Ntonal_lf60。参考图12,根据如下法则进行当前音频帧的分类:

如果声音活动性标识为1(即vad_flag=1),即当前音频帧为活动声音帧,则,则检查是否满足条件:epsP_tilt60<0.002或Ntonal60>18或ratio_Ntonal_lf60<0.42,若满足,则将当前音频帧分类为音乐类型(即Mode=1),否则为语音类型(即Mode=0)。

上述实施例为根据线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率进行分类的一种具体分类流程,本领域技术人员可以理解的是,可以使用别的流程进行分类。本实施例中的分类流程可以应用在前述实施例中的对应步骤,例如作为图5的步骤504或图11步骤1105的具体分类方法。

本发明是一种低复杂度低内存开销的音频编码模式选择方法。同时兼顾了分类的鲁棒性和分类的识别速度。

与上述方法实施例相关联,本发明还提供一种音频信号分类装置,该装置可以位于终端设备,或网络设备中。该音频信号分类装置可以执行上述方法实施例的步骤。

参考图13,本发明一种音频信号的分类装置的一个实施例,用于对输入的音频信号进行分类,其包括:

存储确认单元1301,用于根据所述当前音频帧的声音活动性,确定是否获得并存储当前音频帧的频谱波动,其中,所述频谱波动表示音频信号的频谱的能量波动;

存储器1302,用于在存储确认单元输出需要存储的结果时存储所述频谱波动;

更新单元1303,用于根据语音帧是否为敲击音乐或历史音频帧的活动性,更新存储器中存储的频谱波动;

分类单元1304,用于根据存储器中存储的频谱波动的部分或全部有效数据的统计量,将所述当前音频帧分类为语音帧或者音乐帧。当频谱波动的有效数据的统计量满足语音分类条件时,将所述当前音频帧分类为语音帧;当频谱波动的有效数据的统计量满足音乐分类条件时,将所述当前音频帧分类为音乐帧。

一个实施例中,存储确认单元具体用于:确认当前音频帧为活动帧时,输出需要存储当前音频帧的频谱波动的结果。

另一个实施例中,存储确认单元具体用于:确认当前音频帧为活动帧,且当前音频帧不属于能量冲击时,输出需要存储当前音频帧的频谱波动的结果。

另一个实施例中,存储确认单元具体用于:确认当前音频帧为活动帧,且包含当前音频帧与其历史帧在内的多个连续帧都不属于能量冲击时,输出需要存储当前音频帧的频谱波动的结果。

一个实施例中,更新单元具体用于若当前音频帧属于敲击音乐,则修改频谱波动存储器中已存储的频谱波动的值。

另一个实施例中,更新单元具体用于:如果当前音频帧为活动帧,且前一帧音频帧为非活动帧时,则将存储器中已存储的除当前音频帧的频谱波动之外的其他频谱波动的数据修改为无效数据;或,如果当前音频帧为活动帧,且当前音频帧之前连续三帧不全都为活动帧时,则将当前音频帧的频谱波动修正为第一值;或,如果当前音频帧为活动帧,且历史分类结果为音乐信号且当前音频帧的频谱波动大于第二值,则将当前音频帧的频谱波动修正为第二值,其中,第二值大于第一值。

参考图14,一个实施例中,分类单元1303包括:

计算单元1401,用于获得存储器中存储的频谱波动的部分或全部有效数据的均值;

判断单元1402,用于将所述频谱波动的有效数据的均值与音乐分类条件做比较,当所述频谱波动的有效数据的均值满足音乐分类条件时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

例如,当所获得的频谱波动的有效数据的均值小于音乐分类阈值时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

上述实施例,由于根据频谱波动的长时统计量对音频信号进行分类,参数较少,识别率较高且复杂度较低;同时考虑声音活动性和敲击音乐的因素对频谱波动进行调整,对音乐信号识别率更高,适合混合音频信号分类。

另一个实施例中,音频信号分类装置还包括:

参数获得单元,用于获得当前音频帧的频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;其中,频谱高频带峰度表示当前音频帧的频谱在高频带上的峰度或能量锐度;频谱相关度表示当前音频帧的信号谐波结构在相邻帧间的稳定度;线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

该存储确认单元还用于,根据所述当前音频帧的声音活动性,确定是否存储所述频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;

该存储单元还用于,当存储确认单元输出需要存储的结果时存储所述频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;

该分类单元具体用于,分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧。当频谱波动的有效数据的统计量满足语音分类条件时,将所述当前音频帧分类为语音帧;当频谱波动的有效数据的统计量满足音乐分类条件时,将所述当前音频帧分类为音乐帧.

一个实施例中,该分类单元具体包括:

计算单元,用于分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

判断单元,用于当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

上述实施例中,根据频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度的长时统计量对音频信号进行分类,参数较少,识别率较高且复杂度较低;同时考虑声音活动性和敲击音乐的因素对频谱波动进行调整,根据当前音频帧所处信号环境,对频谱波动进行修正,提高分类识别率,适合混合音频信号分类。

参考图15,本发明一种音频信号的分类装置的另一个实施例,用于对输入的音频信号进行分类,其包括:

分帧单元1501,用于对输入音频信号进行分帧处理;

参数获得单元1502,用于获得当前音频帧的线性预测残差能量倾斜度;其中,线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

存储单元1503,用于存储线性预测残差能量倾斜度;

分类单元1504,用于根据存储器中预测残差能量倾斜度部分数据的统计量,对所述音频帧进行分类。

参考图16,音频信号的分类装置还包括:

存储确认单元1505,用于根据所述当前音频帧的声音活动性,确定是否将所述线性预测残差能量倾斜度存储于存储器中;

则该存储单元1503具体用于,当存储确认单元确认需要确定需要存储时将将所述线性预测残差能量倾斜度存储于存储器中。

一个实施例中,预测残差能量倾斜度部分数据的统计量为预测残差能量倾斜度部分数据的方差;

所述分类单元具体用于将预测残差能量倾斜度部分数据的方差与音乐分类阈值相比较,当所述预测残差能量倾斜度部分数据的方差小于音乐分类阈值时,将所述当前音频帧分类为音乐帧;否则将所述当前音频帧分类为语音帧。

另一个实施例中,参数获得单元还用于:获得当前音频帧的频谱波动、频谱高频带峰度和频谱相关度,并存储于对应的存储器中;

则该分类单元具体用于:分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据所述有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值。

参考图17,具体的,一个实施例中,分类单元1504包括:

计算单元1701,用于分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

判断单元1702,用于当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

另一个实施例中,参数获得单元还用于:获得当前音频帧的频谱音调个数和频谱音调个数在低频带上的比率,并存储于存储器;

则该分类单元具体用于:分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量;根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的数据运算操作后获得的数据值。

具体的该分类单元包括:

计算单元,用于获得线性预测残差能量倾斜度有效数据的方差和存储的频谱音调个数的均值;

判断单元,用于当当前音频帧为活动帧,且满足下列条件之一,则将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:线性预测残差能量倾斜度的方差小于第五阈值;或频谱音调个数的均值大于第六阈值;或频谱音调个数在低频带上的比率小于第七阈值。

具体的,参数获得单元根据下列公式计算当前音频帧的线性预测残差能量倾斜度:

其中,epsP(i)表示当前音频帧第i阶线性预测的预测残差能量;n为正整数,表示线性预测的阶数,其小于等于线性预测的最大阶数。

具体的,该参数获得单元用于统计当前音频帧在0~8kHz频带上频点峰值大于预定值的频点数量作为频谱音调个数;所述参数获得单元用于计算当前音频帧在0~4kHz频带上频点峰值大于预定值的频点数量与0~8kHz频带上频点峰值大于预定值的频点数量的比值,作为频谱音调个数在低频带上的比率。

本实施例中,根据线性预测残差能量倾斜度的长时统计量对音频信号进行分类,同时兼顾了分类的鲁棒性和分类的识别速度,分类参数较少但结果较为准确,复杂度低、内存开销低。

本发明一种音频信号的分类装置的另一个实施例,用于对输入的音频信号进行分类,其包括:

分帧单元,用于将输入音频信号进行分帧处理;

参数获得单元,用于获得当前音频帧的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;其中,频谱波动表示音频信号的频谱的能量波动,频谱高频带峰度表示当前音频帧的频谱在高频带上的峰度或能量锐度;频谱相关度表示当前音频帧的信号谐波结构在相邻帧间的稳定度;线性预测残差能量倾斜度表示音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;

存储单元,用于存储频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;

分类单元,用于分别获得存储的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度中有效数据的统计量,根据有效数据的统计量将所述音频帧分类为语音帧或者音乐帧;其中,所述有效数据的统计量指对存储器中存储的有效数据运算操作后获得的数据值,运算操作可以包括求均值,求方差等操作。

一个实施例中,音频信号的分类装置还可以包括:

存储确认单元,用于根据所述当前音频帧的声音活动性,确定是否存储当前音频帧的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度;

存储单元,具体用于当存储确认单元输出需要存储的结果时,存储频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度。

具体的,一个实施例中,存储确认单元根据所述当前音频帧的声音活动性,确定是否将所述频谱波动存储频谱波动存储器中。如果当前音频帧为活动帧,则存储确认单元输出存储上述参数的结果;否则输出不需要存储的结果。另一个实施例中,存储确认单元根据音频帧的声音活动性和音频帧是否为能量冲击,确定是否将所述频谱波动存储于存储器中。若当前音频帧为活动帧,且当前音频帧不属于能量冲击,则将当前音频帧的频谱波动存储于频谱波动存储器中;另一个实施例中,若当前音频帧为活动帧,且包含当前音频帧与其历史帧在内的多个连续帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。例如,当前音频帧为活动帧,且当前音频帧其前一帧以及历史第二帧都不属于能量冲击,则将音频帧的频谱波动存储于频谱波动存储器中;否则不存储。

一个实施例中,分类单元包括:

计算单元,用于分别获得存储的频谱波动有效数据的均值,频谱高频带峰度有效数据的均值,频谱相关度有效数据的均值和线性预测残差能量倾斜度有效数据的方差;

判断单元,用于当下列条件之一满足时,将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:所述频谱波动有效数据的均值小于第一阈值;或者频谱高频带峰度有效数据的均值大于第二阈值;或者所述频谱相关度有效数据的均值大于第三阈值;或者线性预测残差能量倾斜度有效数据的方差小于第四阈值。

当前音频帧的频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度的具体计算方式,可以参照上述方法实施例。

进一步的,该音频信号的分类装置还可以包括:

更新单元,用于根据语音帧是否为敲击音乐或历史音频帧的活动性,更新存储器中存储的频谱波动。一个实施例中,更新单元具体用于若当前音频帧属于敲击音乐,则修改频谱波动存储器中已存储的频谱波动的值。另一个实施例中,更新单元具体用于:如果当前音频帧为活动帧,且前一帧音频帧为非活动帧时,则将存储器中已存储的除当前音频帧的频谱波动之外的其他频谱波动的数据修改为无效数据;或,如果当前音频帧为活动帧,且当前音频帧之前连续三帧不全都为活动帧时,则将当前音频帧的频谱波动修正为第一值;或,如果当前音频帧为活动帧,且历史分类结果为音乐信号且当前音频帧的频谱波动大于第二值,则将当前音频帧的频谱波动修正为第二值,其中,第二值大于第一值。

本实施例中,根据频谱波动、频谱高频带峰度、频谱相关度和线性预测残差能量倾斜度的长时统计量进行分类,同时兼顾了分类的鲁棒性和分类的识别速度,分类参数较少但结果较为准确,识别率较高且复杂度较低。

本发明一种音频信号的分类装置的另一个实施例,用于对输入的音频信号进行分类,其包括:

分帧单元,用于对输入音频信号进行分帧处理;

参数获得单元,用于获得获得当前音频帧的线性预测残差能量倾斜度、频谱音调个数和频谱音调个数在低频带上的比率;其中,线性预测残差能量倾斜度epsP_tilt表示输入音频信号的线性预测残差能量随线性预测阶数的升高而变化的程度;频谱音调个数Ntonal表示当前音频帧中的0~8kHz频带上频点峰值大于预定值的频点个数;频谱音调个数在低频带上的比率ratio_Ntonal_lf表示频谱音调个数与低频带音调个数的比值。具体计算参照前述实施例的描述。

存储单元,用于存储线性预测残差能量倾斜度、频谱音调个数和频谱音调个数在低频带上的比率;

分类单元,用于分别获得存储的线性预测残差能量倾斜度的统计量、频谱音调个数的统计量;根据所述线性预测残差能量倾斜度的统计量、频谱音调个数的统计量和频谱音调个数在低频带上的比率,将所述音频帧分类为语音帧或者音乐帧;所述有效数据的统计量指对存储器中存储的数据运算操作后获得的数据值。

具体的,该分类单元包括:

计算单元,用于获得线性预测残差能量倾斜度有效数据的方差和存储的频谱音调个数的均值;

判断单元,用于当当前音频帧为活动帧,且满足下列条件之一,则将所述当前音频帧分类为音乐帧,否则将所述当前音频帧分类为语音帧:线性预测残差能量倾斜度的方差小于第五阈值;或频谱音调个数的均值大于第六阈值;或频谱音调个数在低频带上的比率小于第七阈值。

具体的,参数获得单元根据下列公式计算当前音频帧的线性预测残差能量倾斜度:

其中,epsP(i)表示当前音频帧第i阶线性预测的预测残差能量;n为正整数,表示线性预测的阶数,其小于等于线性预测的最大阶数。

具体的,该参数获得单元用于统计当前音频帧在0~8kHz频带上频点峰值大于预定值的频点数量作为频谱音调个数;所述参数获得单元用于计算当前音频帧在0~4kHz频带上频点峰值大于预定值的频点数量与0~8kHz频带上频点峰值大于预定值的频点数量的比值,作为频谱音调个数在低频带上的比率。

上述实施例中,根据线性预测残差能量倾斜度、频谱音调个数的长时统计量和频谱音调个数在低频带上的比率对音频信号进行分类,参数较少,识别率较高且复杂度较低。

上述音频信号的分类装置可以与不同的编码器相连接,对不同的信号采用不同的编码器进行编码。例如,音频信号的分类装置分别与两个编码器连接,对语音信号采用基于语音产生模型的编码器(如CELP)进行编码,对音乐信号采用基于变换的编码器(如基于MDCT的编码器)进行编码。上述装置实施例中的各个具体参数的定义和获得方法可以参照方法实施例的相关描述。

与上述方法实施例相关联,本发明还提供一种音频信号分类装置,该装置可以位于终端设备,或网络设备中。该音频信号分类装置可以由硬件电路来实现,或者由软件配合硬件来实现。例如,参考图18,由一个处理器调用音频信号分类装置来实现对音频信号的分类。该音频信号分类装置可以执行上述方法实施例中的各种方法和流程。该音频信号分类装置的具体模块和功能可以参照上述装置实施例的相关描述。

图19的设备1900的一个例子是编码器。设备100包括处理器1910和存储器1920。

存储器1920可以包括随机存储器、闪存、只读存储器、可编程只读存储器、非易失性存储器或寄存器等。处理器1920可以是中央处理器(Central Processing Unit,CPU)。

存储器1910用于存储可执行指令。处理器1920可以执行存储器1910中存储的可执行指令,用于:

设备1900的其它功能和操作可参照上面图3至图12的方法实施例的过程,为了避免重复,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

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

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。

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