PSOBP神经网络+3QMFCC

来源:互联网 发布:win10怎么重置网络配置 编辑:程序博客网 时间:2024/05/20 16:33

5.1 音乐特征的提取

音乐特征提取是指从音乐的波形文件中获得一组能够描述音乐信号特征的参数的过程。由于音乐属于语音的一种,我们考虑使用常用的语音信号特征作为音乐特征。特征的选择和提取是系统构建的关键。

特征提取模块负责计算音乐的声学参数,并进行特征的计算,以便提取出反映信号特征的关键特征参数,以降低维数并便于后继处理。音乐分类系统常用的特征参数有幅度、频域能量、子带能量、过零率、线性预测系数(LPC)、LPC倒谱系数(LPCC)、线谱对参数(LSP)、短时频谱、共振峰频率、反映人耳听觉特性的Mel频率倒谱系数(MFCC)等。这些特征都能对音乐分类起到一定的辅助作用,但在音乐分类中起主要作用的还是MFCC系数[1],MFCC符合人们的听觉特性,具有较好的稳健性。

5.1.1 MFCC的提取

在语音识别和说话人识别中,常用的语音特征是基于Mel频率的倒谱系数,由于MFCC参数是将人耳的听觉感知特性和语音的产生机制相结合,因此目前大多数语音识别系统中广泛使用这种特征。由于Mel频率与Hz频率之间非线性的对应关系,使得MFCC随着频率的提高,其计算精度随之下降。因此,在应用中常常只使用低频MFCC,而丢弃中高频MFCC[2]。

如图2所示,MFCC参数的提取包括以下几个步骤[3]:

(1)预滤波: 用 900Hz 低通滤波器对一帧音频信号进行滤波,并去掉开头的 20 个输出值不用,得到;

(2)A/D变换:8kHz的采样频率,12bit的线性量化精度

(3)预加重处理:预加重的目的是提高高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱,以便于频谱分析或声道参数分析。在参数分析之前在计算机里用具有 6dB/倍频程的提升高频特性的预加重数字滤波器来实现,它一般是一阶的数字滤波器,;

(4)分帧:为了保证了语音信号在每一帧内保持短时平稳,在预处理阶段首先应对原语音信号进行分帧处理采样周期、窗口长度N和频率分辨率存在关系,根据不同的需要选择合适的窗口长度。

(5)加窗: 采用哈明窗Hamming window对一帧语音加窗,以减小吉布斯效应的影响

(6)快速傅立叶变换(FastFourierTransformation,FFT): 将时域信号变换成为信号功率谱

(7)三角窗滤波:用一组Mel频标上线性分布的三角窗滤波器,对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的掩蔽效应;

图2 MFCC参数提取步骤

(8)求对数:三角窗滤波器组的输出求取对数,得到近似于同态变换的结果;

(9)离散余弦变换(DiscreteCosineTransformation,DCT):即转换为两次一维变换,其间通过转置矩阵连接,去除各维信号之间的相关性,将信号映射到低维空间

(10)谱加权:倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数的分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数

(11)倒谱均值减(CepstrumMeanSubtraction,CMS):CMS减小语音输入信道对特征参数的影响

(12)差分参数:

式中c,d都是一帧语音参数,k为常数通常取2,用以上公式求得的参数是当前帧的前两帧和后两帧的线性组合,即是一阶差分MFCC差分倒谱参数。

在MATLAB中, s=wavread(FILE) ,FILE表示音乐“.wav”格式的音乐文件,s表示语音信号。信号工具箱VioceBox中集成了计算MFCC参数的函数melcepst(s)。此函数默认的是12维MFCC。也可以自己改动里面的默认维数。然后将此MFCC存入“.mat”文件中。

5.1.2 3QMFCC的提取

标准的 MFCC只反映了语音参数的静态特性, 而人耳对语音的动态特性更为敏感。为更好地拟合人发声和人耳听觉的动态特性,引入MFCC的一阶差分(),MFCC的二阶差分(),整合即构成了3Q维特征矢量(3QMFCC)[4]。

5.2 分类器的设计

5.2.1 BP神经网络与MFCC

5.2.1.1 BP神经网络算法

目前音频分类方法有模式匹配法、隐 Markov(Hidden Markov Models,HMM)法、等,但是这些方法都有自身的不足。模式匹配法要求输入模式与相应每一个音频类型建立的标准模式比较匹配,计算量大,且分类精度低。HMM方法有很强的动态时间序列建模能力,计算量小,但是分类决策能力差,需要其他先验统计知识等缺陷。解决语音识别模式分类问题可以使用模拟了人类神经元活动原理的人工神经网络。

神经网络具有自学习、联想、对比、推理和概括能力,并且具有能够逼近任意的非线性函数、并行化处理信息、容错能力强等诸多优点。它具有高度的并行性、容错性以及能够快速判别,特别适合解决如音乐分类这类难以用算法来描述而又有大量样本可供学习的问题。

BP(BackPropagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,即单向传播的多层前向网络,网络中除了输入输出节点外,还有一层或多层的隐含层节点,且同层节点间没有任何祸合。输入信号从输入层节点依次传过各隐含层节点,然后传到输出层节点,每一层节点的输出只影响下一层节点的输出[5]。

BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

如图3所示为一个两层的BP神经网络结构,该网络只有一个隐含层。

图3 BP神经网络结构

在BP神经网络预测前,首先要训练网络,通过训练使网络具有联想记忆和预测能力。

根据系统输入输出序列(X,Y)确定网络输入层节点数n、隐含层节点数l,输出层节点数m,初始化输入层、隐含层和输出层神经元Y1,Y2,…Ym之间的连接权值wij,wjk,初始化隐含层阈值a,输出层阈值b,给定学习速度和神经元激励函数。

隐含层输出H:

式中,l为隐含层节点数;f为隐含层激励函数,此处为:

连接权值wij和阈值b,BP神经网络预测输出O:

网络预测误差e:

更新权值:

更新阈值:

最后判断算法迭代是否结束。若没有结束,则返回计算隐含输出层。

在MATLAB中,运行自己编写的BP.m文件,BP.m中加载了存有MFCC的“.mat”文件,并实现了BP神经网络算法,以及获得下面的测试数据。

5.2.1.2 BP神经网络测试数据

用BP神经网络分类语音特征信号测试六组音乐数据,音乐数据各选500组24维特征信号。测试前使用2500组作为训练组。预测结果如图4所示,BP神经网络分类误差如图5所示。神经网络分类正确率如表1所示。

图4 BP神经网络预测结果

从图4中显示,红色线代表500组预测音频类别,蓝色代表500组实际音频类别,蓝色覆盖红色的区域是预测正确的部分,只显示红色的区域是预测与实际不符的部分。

图5显示的内容为图4中显示红色区域,即预测有误的部分。

图5 BP神经网络分类误差

从分类结果可以看出,使用BP神经网络语音信号分类算法有较高的正确性,能够较准确地识别音频分类类别。

表1 神经网络分类正确率

Classification

Country

Jazz

NewAge

Pop

R&B

Rock

Rightridio

0.9500

0.9865

0.9000

0.8721

0.9333

0.9889

5.2.2  BP神经网络与3QMFCC

对于已求出的一阶差分参数,把结果再代入差分计算公式就可以得到二阶参数。

在matlab中,自编写的函数mfcc_3Q(mfcc_music)实现了把MFCC整合成3QMFCC的算法。

使用BP神经网络对3QMFCC特征值数据进行测试,如表2所示分类的正确率:

表2 MFCC的改进后的分类正确率

Classification

Country

Jazz

NewAge

Pop

R&B

Rock

Rightridio

0.9518

0.9778

0.9595

0.9300

0.9744

0.9600

5.2.3 自适应变异的粒子群优化BP神经网络与3QMFCC

5.2.3.1自适应变异的粒子群优化BP神经网络算法

多次试验后,发现BP神经网络做自动分类存在缺陷。主要有:

(1)收敛速度慢

(2)BP算法的学习速度很慢,原因是:1由于BP算法本质上为梯度下降法,它所要优化的目标函数又非常复杂,因此BP算法略显低效;2神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;

(3)网络训练失败的可能性较大,BP算法为一种局部搜索的优化方法,求解复杂非线性函数的全局极值时有可能陷入局部极值,使训练失败。

为解决上述BP神经网络存在的缺陷,使用自适应变异的粒子群算法优化BP神经网络。

粒子群优化算法PSO(ParticleSwarmOptimization)是由Kennedy和Eberhart于1995年提出的一种基于群体智能理论的全局优化方法,通过群体中粒子在解空间追随最优的例子进行搜索。根据群体适应度变化率自适应调整惯性权重的取值,根据当前种群的平均粒距对种群中部分粒子进行变异操作。自适应调整与变异操作能增强算法跳出局部最优的能力,增大寻找全局最优的几率[6]。

PSO参数的研究对提高算法的收敛速度和解的精度有着很重要的意义,所做的研究主要是针对惯性因子W、学习因子c1,和c2,粒子群的规模N以及速度上限,其中对PSO参数取值的改进技术中研究最多的是关于惯性因子W的取值问题。W表明粒子原先的速度能在多大程度上得到保留,对算法的局部搜索能力和全局搜索能力进行平衡调整。

在一个D维的目标搜索空间中,由m个粒子构成一个群体,其中第i个粒子(i=1,2,…,m)的位置可表示为D维的矢量。 m也被称为群体规模,过大的m会影响算法的运算速度和收敛性。根据一定标准计算当前的适应值,即可衡量粒子位置的优劣。每次迭代中粒子i移动的距离为粒子的飞行速度,表示为,粒子迄今为止搜索到的最优位置为, 整个粒子群迄今为止搜索到的最优位置为。每次迭代中,粒子根据以下式子更新速度和位置: 

                                       

                                                  

其中 ,k是迭代次数, 和 为[0,1]之间的随机数。为学习因子,也称加速因子,其使粒子具有自我总结和向群体中优秀个体学习的能力,从而向自己的历史最优点以及群体内历史最优点靠近。此外速度 取值范围, 位置 的取值范围为。 在矢量量化过程中, 一般分别为0和255。

算法流程如图6所示:

图6 自适应变异的粒子群优化BP神经网络算法流程图

5.2.3.2 自适应变异的粒子群优化的BP神经网络+3QMFCC测试数据

测试时,选取Pop(流行)、Country(乡村)、Jazz(爵士)、Rock(摇滚)、R&B(节奏布鲁斯)、New Age(新世纪)六类不同音乐,每段音乐都用倒谱法提取500组12维语音特征信号MFCC,然后用MFCC实现一阶差分(△MFCC),二阶差分(△△MFCC).然后合并MFCC,△MFCC,△△MFCC,使其变成36维的3Q_MFCC.共有3000组语音特征信号。由于语音特征输入信号有36维,待分类的语音信号共有6类,所以psoBP神经网络的结构为36-37-6,即输入层有36个节点,隐含层有37个节点,输出层有6个节点。从语音特征信号数据中随机选择2500组数据作为训练数据用来训练网络。

根据语音特征信号的特性并参考经典PSO参数集,设置算法的基本参数如下:

(1)粒子规模数n=40;

(2)粒子维数D=1597;

(3)最大速度vmax=1;

(4)最大迭代次数设为100次;

(5)终止条件,循环达到终止迭代次数或最优适度值连续迭代50次,计算结果差值小于0.0005;

(6)粒子群节点适应度函数使用BP算法的MSE(MeanSquaredError)定义。

用PSO得出的最优解确定BP网络的权值和阈值,从3000组语音特征信号中随机选择2500组数据作为训练数据用来训练网络,500组数据作为测试数据用来测试网络的分类能力。将这个分类号与输入自带的分类号进行比较,相等则识别正确;反之,识别错误。最后将识别正确的个数与所有待识别数作比值即可得到最终的识别率。

图7 PSOBP神经网络预测结果

图7与上图4比较,显示红色的区域明显减少,即预测准确率增高。以此得出自适应变异的粒子群优化的BP神经网络+3QMFCC测试数据比单一BP神经网络准确率提高,说明了PSOBP神经网络在音乐分类上的有效性。

图8显示了PSOBP神经网络分类误差,图中只有少量的线条,即表明了PSOBP神经网络于音乐分类的有效性。

图8 PSOBP神经网络分类误差

自适应变异的粒子群优化的BP神经网络分类正确率如表3所示。

表3 自适应变异的粒子群优化的BP神经网络分类正确率

Classification

Country

Jazz

NewAge

Pop

R&B

Rock

Rightridio

0.97778

0.9878

1.0000

0.9691

0.9552

1.0000

自适应变异的粒子群神经网络训练查找最优值过程的记录如图9所示。

图9 PSOBP训练记录(最优值的查找)

5.2.4 基于PSOBP神经网络与3QMFCC建立模型的优越性

本文通过建立三个模型分别给音乐分类,通过比较,选择最优的模型。这三个模型是依次优化的模型,最后得出的第三个基于PSOBP神经网络与3QMFCC建立的模型是最优的。三个模型依次如图所示:

最后以自适应变异粒子群算法优化(PSOBP)神经网络算法建立模型,(MFCC+△MFCC+△△MFCC)为音乐分类特征,克服了BP神经网络的局部极小值的缺陷,又克服了用MFCC为音乐分类特征,不能分辨音乐动态特征的缺陷。又由matlab中试验算得的数据说明该推论成立。三个模型各自算得的音乐分类准确度依次是:87.21%<93%<95.2%。所以充分说明了用PSOBP神经网络为分类算法,结合3QMFCC在音乐风格分类中的优越性。

原创粉丝点击