一种基于BP网络的噪声分类方法与流程

文档序号:19998765发布日期:2020-02-22 02:59阅读:567来源:国知局
一种基于BP网络的噪声分类方法与流程

本发明涉及一种噪声分类方法。特别是涉及一种基于bp网络的噪声分类方法。



背景技术:

在语音信号的处理过程中,噪声污染的问题不可避免。随着数字语音信号在科研和生活中的广泛应用,噪声对数字语音信号的影响愈发明显,如何有效地抑制噪声,提高语音信号的质量和可懂度成为众多学者研究的热点。而在语音增强技术中,一大研究难点则是噪声的来源众多。不同噪声的统计特性不尽相同,因此在实际应用中,为了达到更好的信号处理效果,需根据应用场合,对不同噪声特性的噪声进行区别处理。

一般来说,解决噪声分类问题的关键技术点主要有两个,一是要提取何种特征用于噪声类型的区分;二是对提取的特征运用何种分类技术。对于第一个关键技术点,目前常用的噪声特征有自适应子波特征、短时自相关函数(shortauto-correlationfunction,sacf)、bark域能量分布、梅尔倒谱系数(melfrequencycepstrumcoefficient,mfcc)、一阶差分梅尔倒谱系数(first-ordermfcc,δmfcc)、离散傅里叶系数、线性预测编码系数以及伽马通滤波器系数等。对于噪声分类方法,目前常用的技术包括基于隐马尔科夫模型(hiddenmarkovmodel,hmm)的噪声分类算法、基于混合高斯模型(gaussianmixturemodel,gmm)的噪声分类算法、基于支持向量机(supportvectormachine,svm)的噪声分类算法以及基于神经网络的噪声分类算法等。

然而目前所提出噪声分类方法存在分类准确低的情况。由于噪声分类的准确性能会直接影响信号处理的性能,那么提出一种高准确的噪声分类方法则成为了信号处理领域的一个新挑战。



技术实现要素:

本发明所要解决的技术问题是,提供一种具有更高分类准确率的基于bp网络的噪声分类方法。

本发明所采用的技术方案是:一种基于bp网络的噪声分类方法,包括如下步骤:

1)对输入的噪声信号进行预处理,包括分帧以及加窗处理;

2)对预处理后的每一帧噪声信号分别进行傅里叶变换得到噪声信号功率谱;

3)利用所述的每一帧噪声信号功率谱分别计算每一帧噪声信号的梅尔频率倒谱系数及梅尔频率倒谱系数的一阶差分;

4)计算每一帧噪声信号的伽玛通频率倒谱系数;

5)将每一帧噪声信号的梅尔频率倒谱系数、梅尔频率倒谱系数的一阶差分和伽玛通频率倒谱系数组合作为该帧噪声信号的联合特征,将全部帧噪声信号的联合特征中的一部分作为训练数据,另一部分作为测试数据;

6)训练一级bp网络;

7)训练二级bp网络;

8)将一级bp网络和二级bp网络联合进行测试,得到最终的噪声信号分类结果。

步骤2)是采用如下公式对每一帧噪声信号进行傅里叶变换:

x(i,k)=fft[xi(n)]

其中,x(i,k)是第i帧信号在第k条谱线处的功率谱,fft表示傅里叶变换,xi(n)表示第i帧信号,n表示序列索引号。

步骤3)包括:

(3.1)对每一帧噪声信号的功率谱计算谱线能量:

e(i,k)=[x(i,k)]2

其中,e(i,k)表示第i帧数据在第k条谱线的谱线能量;x(i,k)是第i帧信号在第k条谱线处的功率谱;

(3.2)计算每一帧噪声信号通过梅尔滤波器的能量

其中,s(i,m)表示第i帧信号通过第m个梅尔滤波器的能量,m是梅尔滤波器的总数,hm(k)表示第m个梅尔滤波器在第k条谱线处的频域响应,n是谱线的总数;

(3.3)计算梅尔频率倒谱系数:

其中,mfcc(i,n)为第i帧噪声信号在第k条谱线处的梅尔频率倒谱系数;

(3.4)计算梅尔频率倒谱系数的一阶差分:

δmfcc(i,k)=2mfcc(i-2,k)-mfcc(i-1,k)+mfcc(i+1,k)+2mfcc(i+2,k)

其中,δmfcc(i,k)表示第i帧信号在第k条谱线处的梅尔频率倒谱系数的一阶差分,mfcc(i-2,k)、mfcc(i-1,k)、mfcc(i+1,k)和mfcc(i+2,k)分别表示第i-2帧信号、i-1帧信号、i+1帧信号和i+2帧信号在第k条谱线处的梅尔频率倒谱系数。

步骤4)包括:

(4.1)通过所得到的谱线能量,计算通过伽玛通滤波器的能量:

其中,r(i,p)表示第i帧噪声信号通过第p个伽玛通滤波器的能量,p是伽玛通滤波器的总数,hp(k)表示第p个伽玛通滤波器在第k条谱线的频域响应,n是谱线的总数,e(f)表示指数压缩值;

(4.2)计算伽玛通频率倒谱系数:

其中,gfcc(i,k)表示第i帧信号在第k条谱线处的伽玛通频率倒谱系数。

步骤6)所述的训练一级bp网络,是将所述的训练数据输入到一级bp网络中进行网络训练,经一级bp网络训练后得到每一帧噪声信号所属的大类类别,并保存已训练好的一级bp网络的网络权重。

步骤7)所述的训练二级bp网络,是将经一级bp网络训练得到的每一大类中的每一帧噪声信号的梅尔频率倒谱系数、梅尔频率倒谱系数的一阶差分和伽玛通频率倒谱系数进行组合输入到相应类别的二级bp网络中进行网络训练,经二级bp网络训练后得到每一大类中的每一帧噪声信号的识别结果,并保存已训练好的二级bp网络的网络权重。

步骤8)是根据保存的一级bp网络的网络权重和二级bp网络的网络权重,将所述的测试数据输入到由一级bp网络和二级bp网络相串联构成的联合网络中进行测试,得到对测试数据中每一帧噪声信号的识别结果。

本发明的一种基于bp网络的噪声分类方法,采用两级bp网络的形式对对噪声信号的噪声类别进行识别,采用该种网络结构的噪声分类方法相比于只采用单级bp网络的噪声分类方法来说有着更高的噪声分类准确率。同时,本发明提出的方案适用性广,可实验性较强,对于噪声分类有一定的借鉴意义。

附图说明

图1是本发明一种基于bp网络的噪声分类方法的流程图。

具体实施方式

下面结合实施例和附图对本发明的一种基于bp网络的噪声分类方法做出详细说明。

如图1所示,本发明的一种基于bp网络的噪声分类方法,包括如下步骤:

1)对输入的噪声信号进行预处理,包括分帧以及加窗处理;

2)对预处理后的每一帧噪声信号分别进行傅里叶变换得到噪声信号功率谱;具体是采用如下公式对每一帧噪声信号进行傅里叶变换:

x(i,k)=fft[xi(n)]

其中,x(i,k)是第i帧信号在第k条谱线处的功率谱,fft表示傅里叶变换,xi(n)表示第i帧信号,n表示序列索引号。

3)利用所述的每一帧噪声信号功率谱分别计算每一帧噪声信号的梅尔频率倒谱系数(mfcc)及梅尔频率倒谱系数的一阶差分(δmfcc);具体包括:

(3.1)对每一帧噪声信号的功率谱计算谱线能量:

e(i,k)=[x(i,k)]2

其中,e(i,k)表示第i帧数据在第k条谱线的谱线能量;x(i,k)是第i帧信号在第k条谱线处的功率谱;

(3.2)计算每一帧噪声信号通过梅尔滤波器的能量

其中,s(i,m)表示第i帧信号通过第m个梅尔滤波器的能量,m是梅尔滤波器的总数,hm(k)表示第m个梅尔滤波器在第k条谱线处的频域响应,n是谱线的总数;

(3.3)计算梅尔频率倒谱系数:

其中,mfcc(i,n)为第i帧噪声信号在第k条谱线处的梅尔频率倒谱系数;

(3.4)计算梅尔频率倒谱系数的一阶差分(δmfcc)

δmfcc(i,k)=2mfcc(i-2,k)-mfcc(i-1,k)+mfcc(i+1,k)+2mfcc(i+2,k)

其中,△mfcc(i,k)表示第i帧信号在第k条谱线处的梅尔频率倒谱系数的一阶差分,mfcc(i-2,k)、mfcc(i-1,k)、mfcc(i+1,k)和mfcc(i+2,k)分别表示第i-2帧信号、i-1帧信号、i+1帧信号和i+2帧信号在第k条谱线处的梅尔频率倒谱系数。

4)计算每一帧噪声信号的伽玛通频率倒谱系数(gfcc);具体包括:

(4.1)通过所得到的谱线能量,计算通过伽玛通(gammatone)滤波器的能量:

其中,r(i,p)表示第i帧噪声信号通过第p个伽玛通滤波器的能量,p是伽玛通滤波器的总数,hp(k)表示第p个伽玛通滤波器在第k条谱线的频域响应,n是谱线的总数,e(f)表示指数压缩值;

(4.2)计算伽玛通频率倒谱系数:

其中,gfcc(i,k)表示第i帧信号在第k条谱线处的伽玛通频率倒谱系数。

5)将每一帧噪声信号的梅尔频率倒谱系数、梅尔频率倒谱系数的一阶差分和伽玛通频率倒谱系数组合作为该帧噪声信号的联合特征,将全部帧噪声信号的联合特征中的一部分作为训练数据,另一部分作为测试数据;

6)训练一级bp网络,是将所述的训练数据输入到一级bp网络中进行网络训练,经一级bp网络训练后得到每一帧噪声信号所属的大类类别,并保存已训练好的一级bp网络的网络权重。

7)训练二级bp网络,是将经一级bp网络训练得到的每一大类中的每一帧噪声信号的梅尔频率倒谱系数、梅尔频率倒谱系数的一阶差分和伽玛通频率倒谱系数进行组合输入到相应类别的二级bp网络中进行网络训练,经二级bp网络训练后得到每一大类中的每一帧噪声信号的识别结果,并保存已训练好的二级bp网络的网络权重。

8)将一级bp网络和二级bp网络联合进行测试,得到最终的噪声信号分类结果,是根据保存的一级bp网络的网络权重和二级bp网络的网络权重,将所述的测试数据输入到由一级bp网络和二级bp网络相串联构成的联合网络中进行测试,得到对测试数据中每一帧噪声信号的识别结果。

下面给出具体实例:

(一)对输入的噪声信号进行预处理:

1、选取数据:

从noisex-92标准噪声库中选取pink,factory1,f16,destoryerengine,buccaneer1;babble,white,hfchannel,factory2,buccaneer2;volvo,machinegun,m109,leopard,destoryerops共15种噪声作为样本,采样频率为16khz,分为三大类作为第一级bp网络的分类依据,分别为:a1类:pink,factory1,f16,destoryerengine,buccaneer1;a2类:babble,white,hfchannel,factory2,buccaneer2;a3类:volvo,machinegun,m109,leopard,destoryerops.

2、分帧及加窗

(1)分帧:帧长为256点,帧移为128点;

(2)窗函数为汉明窗;

(二)预处理后,每一类噪声有36713帧数据,15类噪声共550695帧数据。对每帧数据进行傅里叶变换得到信号功率谱:

(三)计算550695帧数据中的每帧数据的24维mfcc和δmfcc系数;

(四)计算550695帧数据中的每帧数据的24维gfcc系数;

(五)将每帧数据的24维mfcc和δmfcc系数以及24维gfcc系数联合组成48维联合特征,从550695帧数据中选取500000帧数据作为训练数据,其余数据作为测试数据;

(六)将(五)中的训练数据输入到第一级bp网络(bp0)中进行训练,其中bp0网络的参数设置为:输入层为48个节点,隐含层49个节点,输出层3个节点。训练成功后保存已训练好的网络权重;

(七)将a1、a2和a3每一大类中的5种噪声的48维联合特征分别输入到三个二级bp网络(bp1、bp2和bp3)中进行训练,其中bp1、bp2和bp3网络的参数设置为:输入层为48个节点,隐含层49个节点,输出层5个节点。训练成功后保存已训练好的网络权重。

(八)将训练好的一级bp网络和二级bp网络进行组合测试,组合后的网络的输入数据为(五)中所获得的测试数据。

(九)组合网络的测试输出结果为该组合网络对15类噪声中每一类噪声的分类类别并通过计算得出本发明方法对每一类噪声的分类准确率,具体结果如表1所示。其中,bp0表示第一级bp网络对三大类噪声的分类准确率,bp表示三个二级分类网络分别对每一大类中各个噪声的分类准确率,bp0+bp表示最终的组合网络对15类噪声的分类准确率。

表1bp网络对15类噪声的分类准确率

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