声纹识别Word下载.docx
- 文档编号:19098928
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:27
- 大小:879.33KB
声纹识别Word下载.docx
《声纹识别Word下载.docx》由会员分享,可在线阅读,更多相关《声纹识别Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
(1),
式中u为预加重系数,通常取值0.95左右。
本系统采用一个窗长为256,窗移是128的汉明窗在语音序列上滑动,对语音进行加窗分帧处理。
通过对语音信号的短时能量和短时过零率实现比较精确的端点切分,可以剔除掉静默帧、白噪声帧和清音帧,最后保留对求取MFCC等特征参数非常有用的浊音信号。
2.2问题二是对说话人的语音进行识别,语音特征信号识别是语音识别研究领域中的一个重要方面,我们采用模式匹配的原理解决。
语音识别的运算过程为:
首先,待识别语音转化为电信号后输入识别系统,经过预处理后用数学方法提取语音特征信号,提取出的语音特征信号可以看成该段语音的模式。
然后将该段语音模型同已知参考模式相比较,获得最佳匹配的参考模式为该段语音的识别结果。
语音识别流程如图2.2.1所示
流程图如下:
图2.2.1说话人识别模型流程图
本模型中我们选取了001,002,003,004四类不同音频,用BP神经网络实现对这四类音频的有效分类。
每段音频都用上述倒谱系数法提取500组24维语音特征信号,提取出的语音特征信号。
2.3问题三要求利用语音数据评价你的说话人模型或声纹识别模型评价的好坏。
通过本文建立BP神经网络模型,我们可运行测试其准确性。
2.4问题四要求我们分析影响准确率的因素,并采取措施进一步提高声纹识别的准确率。
三、模型假设
1.假设预加重系数u的值为0.9375
2.假设所用的音频的录音环境为同一环境,为封闭式录音教室;
3.假设录用人员讲的语言为较标准的普通话;
4.假设录音人员是处于正常说话模式,没有经过特殊仪器进行变音;
5.假设数据训练量每增加100,训练时长增加1s;
6.本模型使用的文本无关的声纹识别文件;
7.假设所提供的数据完整、可靠、有效;
8.假设我们网络上查阅的资料以及结论真实可靠。
四、符号说明
1、
·
预加重系数;
2、P(f)·
短时能量谱;
3、P(M)·
美尔坐标上的能量谱;
4、Hm(K)·
滤波器组;
5、MFCC·
美尔倒谱系数;
6、a·
隐含层阈值;
7、b·
输出层阈值;
8、
学习速率;
9、e·
网络预测误差;
10、
欧式范数;
11、
高斯函数中心;
12、
高斯函数方差;
13、
输入层、隐含层和输出层神经元之间的连接权值;
14、
隐含层输出;
15、
BP神经网络预测输出。
五、模型建立与求解
5.1问题一:
5.1.1构建声纹特征MFCC系数模型
在语音信号预处理后,接着是特征参数的提取。
选取的特征必须能够有效地区分不同的说话人,且对同一说话人的变化保持相对稳定。
基于人耳的听觉机理,反映听觉特性,模拟人耳对声音频率感知的特征参数,如美尔倒谱系数等。
很多研究证明,由于Mel频率特性反映了人耳的听觉特性,常用于代替人耳来分析语音,其性能和鲁棒性都是最符合实际听音效果的。
MFCC参数与线性预测倒谱分析相比,突出的优点是不依赖全极点语音产生模型,因此,在与文本无关的说话人识别系统中,MFCC参数能够更好地提高系统的识别性能。
5.1.2模型求解:
MFCC参数计算步骤如下:
首先,语音信号在经过预处理、分帧加窗后转变为短时信号,经过FFT变换将x(n)转化为X(m),并计算出其短时能量谱P(f)。
在将P(f)在频率轴上的频谱转化为在美尔坐标上的P(M)。
接着在美尔频域内将在美尔坐标上加入三角带通滤波器得到滤波器组Hm(K),再计算美尔坐标上的能量谱P(M)通过该滤波器组的输出值。
最后在美尔刻度谱上能够采取修改的离散余弦反变换来求取美尔倒普参数MFCC:
(2)
式中,p为MFCC阶数。
5.1.2.1音频001-004的3s短时信号短时能量谱P(f)图如下图:
5.1.2.2音频001-004的前10行24列美尔倒普参数见附录8.2
5.2问题二
5.2.1BP神经网络模型的建立
BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传播。
在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。
每一层的神经元状态只影响下一层神经元状态。
如果输出层得不到期望输出,则转入反向传播,根据预测误差调整网络权值和阈值,从而使BP神经网络预测输出不断逼近期望输出。
BP神经网络的拓扑结构
如图1-1所示。
图1-1中,X1,X2,…,Xn是BP神经网络的输入值,Y1,Y2,…,Ym是BP神经网络的测值,ωij和ωjk为BP神经网络权值。
从图11可以看出,BP神经网络可以看成一个非线性函数,网络输入值和预测值分别为该函数的自变量和因变量。
当输入节点数为n,输出节点数为m时,BP神经网络就表达了从n个自变量到m个因变量的函数映射关系。
BP神经网络预测前首先要训练网络,通过训练使网络具有联想记忆和预测能力。
BP神经网络的训练过程包括以下七个步骤:
步骤1:
网络初始化。
根据系统输入输出序列(X,Y)确定网络输入层节点数你、隐含层节点数
,输出层节点数m,初始化输入层、隐含层和输出层神经元之间的连接权值
,初始化隐含阈值a,输出层阈值b,给定学习速率和神经元激励函数。
步骤2:
隐含层输出计算。
根据输入向量X,输入层和隐含层间连接权值
以及隐含层阈值a,计算隐含层输出H。
(1)
式中,
为隐含层节点数;
f隐含层激励函数,该函数有多种表达形式,本章所选函数为:
(2)
步骤3:
输出层输出计算。
根据隐含层输出H,连接权值
和阈值b,计算BP神经网络预测输出O。
(3)
步骤4:
误差计算。
根据网络预测输出O和期望输出Y,计算网络预测误差e。
(4)
步骤5:
权值更新。
根据网络预测误差e更新网络连接权值
,
。
(5)
(6)
为学习速率。
步骤6:
阈值更新。
根据网络预测误差e更新网络节点阈值a,b。
(7)
(8)
步骤7:
判断算法迭代是否结束,若没有结束,返回步骤2。
基于BP神经网络的语音特征信号识别分类算法建模包括BP神经网络构建、BP神经网络训练和BP神经网络分类三步,算法流程如图1-4所示。
图1-4算法流程
BP神经网络构建根据系统输入输出数据特点确定BP神经网络的结构,由于语音特征输入信号有24维,待分类的语音信号共有4类,所以BP神经网络的结构为24—25—4,即输入层有24个节点,隐含层有25个节点,输出层有4个节点。
BP神经网络训练用训练数据训练BP神经网络。
共有2000组语音特征信号,从中随机选择1500组数据作为训练数据训练网络,500组数据作为测试数据测试网络识别分类能力。
BP神经网络分类用训练好的神经网络对测试数据所属语音类别进行识别分类。
5.1.4模型求解
5.1.4.1运用数据选择和归一化方法对数据进行处理
数据归归一化是神经网络预测前对数据常做的一种处理方法法。
数据归一化处理把所有数据都转化为[0,1]之间的数,其目的是取消各维数据见数量级差别,避免因为输入输出数据数量级差别较大而造成网络预测误差较大。
本模型使用的是最大最小法。
函数公式为:
(9)
式中,
为数据序列中的最小数;
为序列中的最大的数。
首先,根据倒谱系数法提取四个人的语音特征信号,不同的语音信号分别用
1,2,3,4标识,提取出的信号分别存储与不同的数据库文件中,每组数据为25维,第1维为类别标识,后24维为语音特征信号。
把四种语音特征信号合为一组,从中随机选择15000组数据作为训练数据,500组数据作为测试数据,并对训练数据进行归一化处理。
根据语音种类标识设定每组语音信号的期望输出值,如标识类为1是,期望输出向量为[1000]。
用训练好的BP神经网络分类语音特征信号测试数据,预测语音种类和实际语音种类的分类图如图
(2)所示
图
(2)预测语音种类和实际语音种类的分类
图(3)BP神经网络分类误差
BP神经网络分类正确率
语音信号类别
第一类
第二类
第三类
第四类
识别正确率
0.9194
0.7886
0.8462
0.7724
从BP神经网络分类结果可以看出,基于BP神经网络的语音信号分类算法具有较高的准确性,能够准确识别出语音信号所属类别,识别正确率最高可达91%。
5.3问题三利用语音数据评价你的说话人模型或声纹识别模型评价的好坏;
5.3.1数据分析:
我们使用005、006、007、008音频的特征信号数据量2000分别随机用训练样本1500,测试样本500,以及训练样本1900,测试样本100对所建的说话人模型进行进一步的测试检验如下:
一.随机用训练样本1500,测试样本500测试检验说话人模型
二.随机训练样本1900,测试样本100测试检验说话人模型
1.虽然对随机用训练样本1500,测试样本500测试检验说话人模型BP神经网络总体识别正确率能达到83%,但BP神经网络存在对于数据量大的学习收敛速度慢、容易陷入局部极小点而无法得到全局最优解等缺点。
2.虽然BP神经网络具有较高的拟合能力,,但其拟合能力不是绝对的,而且网络预测结果仍有一定误差,某些样本点的预测误差较大。
3.而且我们的神经网络权值与结构的设计往往依靠经验获得,存在实践的检验性。
4.训练数据量增加,识别正确率有所提高,但运行时间有所增加;
为此我们得出结果我们建立的BP神经网络模型有一定的缺陷性,在满足识别时间为一定的情况下能满足数据量较少时的BP神经网络说话人识别的准确率,并且经过数据分析我们得到神经网络识别预测的准确性和训练数据的多少有较大的关系,于此后面方案中我们使用遗传算法优化BP神经网络,以得到更高的识别正确率。
5.4问题四
通过对模型二的数据分析,我们发现建立遗传算法优化BP神经网络基函数中心以及宽度因素受拓扑结构影响较大,其处理还可进一步的优化,但是BP神经网络参数难以确定,根据经验数据归一化全局寻优能力有点欠佳,种种原因影响了说话人识别的准确率,对此我们做以下遗传算法BP神经网络模型进一步优化上述遇到的问题,从而提高说话人识别的准确率。
5.4.1运用遗传算法BP神经网络进行优化
BP网络的基本思想是:
用BP作为隐单元的“基”构成隐藏层空间,隐含层对输入矢量进行变换,将低维的模式输入变换到高维空间内,使得在低维空间内的线性不可分的问题在高维空间内线性可分。
三层网络的BP神经网络结构如图2所示。
图2中,三层BP神经网络结构第一层是输人层,由信号源结点组成;
第二层为隐藏层,其节点数目根据所描述问题的需要而确定,该层中神经元变换函数即径向基函数是对中心点径向对称且衰减的非负线性函数;
第三层为输出层,它对输入模式作出响应。
通常RBF的径向基函数采用高斯函数,其激活函数表示为:
为欧式范数;
为高斯函数的中心;
为高斯函数的方差。
由图2所示的RBF网络的结构可得到网络的输出为:
其中,
为第P个输入样本;
为
网络隐含层节点的中心;
为隐含层到输出层的连接权值;
为与输入样本对应的网络的第j个输出节点的实际输出。
5.4.2对遗传算法的讲解
遗传算法是1962年由美国Michigan大学Hol—land教授提出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。
它把自然界“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值很好地被个体保留。
遗传算法的基本操作可分为:
①选择操作,从旧群体中以一定的概率选择个体到新群体中,个体被选中的概率跟适应度值有关,个体适应度值越好,被选中的概率越大;
②交叉操作,从个体中选择两个个体,通过两个染色体的交换组合,来产生新的优秀个体;
③变异操作,从群体中任选一个个体,选择染色体中的一点进行变异以产生更优秀的个体。
5.4.3遗传优化BP神经网络模型建立
本系统中遗传优化RBF神经网络结构与参数的训练过程如下:
基函数的中心以及隐含层单元的高斯函数的宽度可以通过遗传算法获得,有效地克服了传统RBF网络难以确定基函数的中心和宽度的缺点,同时根据聚类问题的实际情况设计编码、交叉和变异算子,使得算法更快、更有效地收敛于全局最优解。
①种群初始化
个体编码采用实数编码,每个个体均为一个实数串,仅对应RBF隐藏层中一个单元。
在每一代中,包含了代表隐藏层单元数中心和宽度的字符串集合。
②适应度函数
根据个体得到的神经网络的初始隐层中心和宽度,用训练数据训练RBF神经网络后预测系统输出,把预测输出和期望输出之间的误差绝对值和E作为个体适应度值F,计算公式为:
式中,n为网络输出节点数,Y为第i个节点的期望输出;
0为第i个节点预测输出,k为系数。
这样选取的适应度函数比较直观地反映了每个个体性能的好与差。
③选择操作
遗传算法性能会直接受到选择策略的影响,本系统采用轮盘赌法的选择策略。
每个个体i选择的概率P为:
式中,Σ为适应度值,由于适应度值越小越好,所以在个体选择前对适应度值求倒数,Ⅳ为种群个体数目。
④交叉和变异操作
交叉操作在遗传算法中起核心作用,遗传算法通过交叉操作,其搜索能力得以提高。
由于本系统的编码过程中是将BP的中心和宽度编码放在同一个个体中,因此在交叉过程中必须对它们分别进行操作。
按照一定的交叉概率随机地从群体中取出两个个体,对两个个体进行交叉,交叉点的位置不是无条件随机产生的,它们必须分别落在宽度和中心的编码中。
交叉概率一般在0.5—1。
0之间取值,因为交叉概率太小会使搜索过程停滞不前。
变异算子通过对所有个体随机的确定基因位以变异概率改变该基因值,目的是增强遗传算法的局部搜索能力,同时增加了群体的多样性。
如果没有变异,就不会产生新的基因,但变异概率太大,会使遗传算法变成随机搜索,一般变异概率取值在0.01~0.2之间。
5.4.4模型结果及分析
六、模型评价与推广
6.1优点:
本文对BP神经网络进行了深入分析,运用遗传算法优化BP神经网络对数据量较大时进行处理并将优化后的RBF神经网络用于声纹识别系统,试验结果证明取得了较好的效果。
6.2缺点:
在训练的数据量较多时,该方法效果不佳;
6.3模型推广:
BP神经网络能运用于短时交通流量预测。
本文的研究对其他复杂分类问题的解决也具有普遍的借鉴意义。
七、参考文献
[1]、易克初,田斌,付强《语音信号处理》[M],北京:
国防工业出版社,2OO0
[2]、林道荣、秦志林《数学实验与数学建模》北京:
科学出版社,2011
[3]、刘亚丽等“基于加权Md倒谱系数的说话人识别”,
[4]、MATLAB中文论坛编著《MATLAB神经网络30个案例分析》,北京:
北京航空航天大学出版社,2010.04
八、附录
8.1美尔倒普参数代码:
clear;
tic;
t1=clock;
[Y,fs,bit]=wavread('
004.wav'
);
x=Y(((fs*10+1):
fs*13),:
wavwrite(x,fs,bit,'
test_new3.wav'
);
%截取001.wav中10-13秒的语音
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%对输入的语音序列x进行MFCC参数的提取,返回MFCC参数和一阶
%差分MFCC参数,Mel滤波器的阶数为24
%fft变换的长度为256,采样频率为8000Hz,对x256点分为一帧
bank=melbankm(24,256,8000,0,0.5,'
m'
%归一化mel滤波器组系数
bank=full(bank);
bank=bank/max(bank(:
));
%DCT系数,12*24
fork=1:
12
n=0:
23;
dctcoef(k,:
)=cos((2*n+1)*k*pi/(2*24));
end
%归一化倒谱提升窗口
w=1+6*sin(pi*[1:
12]./12);
w=w/max(w);
%预加重滤波器
xx=double(x);
xx=filter([1-0.9375],1,xx);
%语音信号分帧
xx=enframe(xx,256,80);
amp1=sum(abs(xx),2);
amp2=sum(xx.*xx,2);
amp3=sum(log(xx.*xx+eps),2);
%短时能量不同表述
subplot(311)%3种比较表述
plot(amp1);
ylabel('
amp1'
subplot(312)
plot(amp2);
amp2'
subplot(313)
plot(amp3);
amp3'
%计算每帧的MFCC参数
fori=1:
size(xx,1)%size(xx,1)返回xx的维数
y=xx(i,:
s=y'
.*hamming(256);
%加汉明窗
t=abs(fft(s));
%傅里叶变换
t=t.^2;
%计算能量
c1=dctcoef*log(bank*t(1:
129));
%dctcoef为DCT系数,bank归一化mel滤波器组系数
c2=c1.*w'
;
%w为归一化倒谱提升窗口
m(i,:
)=c2'
%差分系数
dtm=zeros(size(m));
fori=3:
size(m,1)-2
dtm(i,:
)=-2*m(i-2,:
)-m(i-1,:
)+m(i+1,:
)+2*m(i+2,:
dtm=dtm/3;
%合并mfcc参数和一阶差分mfcc参数
ccc4=[mdtm];
%去除首尾两帧,因为这两帧的一阶差分参数为0
ccc4=ccc4(3:
size(m,1)-2,:
)
disp(['
etime程序总运行时间:
'
num2str(etime(clock,t1))]);
%figure
(2)
%subplot(211)
%ccc_1=ccc(:
1);
%plot(ccc_1);
title('
MFCC'
%ylabel('
幅值'
%[h,w]=size(ccc);
%A=size(ccc);
%subplot(212)
%plot([1,w],A);
%xlabel('
维数'
%title('
维数与幅值的关系'
8.2音频001-004的前10行24列美尔倒普参数:
001.wav—004.wav部分特征参数(10行24列):
8.2.1音频001.wav
8.2.2音频002.wav
8.2.3音频003.wav
8.2.4音频004.wav
8.3说话人识别模型代码:
%%清空环境变量
clc
clear
%%训练数据预测数据提取及归一化
%下载四类语音信号
loaddata1ccc1
loaddata2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 声纹 识别