
基于BP神经网络的语音识别技术.ppt
19页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,基于,BP,神经网络的语音识别技术,汇报人:,目录,一,.,语音识别概述,二,.,语音识别流程,三,.,语音信号预处理,四,.,语音识别特征提取,五,.BP,神经网络原理,六,.,语音识别程序设计,一,.,语音识别概述,语音识别以语音为研究对象,涉及到生理学、心理学、语言学、计算机科学,以及信号处理等诸多领域,最终目的是实现人与机器进行自然语言通信,用语言操纵计算机语音识别系统可以分为孤立字,(,词,),语音识别系统、连接字语音识别系统以及连续语音识别系统语音识别系统分为两个方向:一是根据对说话人的依赖程度可以分为特定人和非特定人语音识别系统;二是根据词汇量大小,可以分为小词汇量、中等词汇量、大词汇量,以及无限词汇量语音识别系统二,.,语音识别流程,从图的系统整体架构可以看到,建立基于,BP,神经网络的语音识别系统可分为两个阶段,即,训练阶段,和,识别阶段,首先由用户通过麦克风输入语音形成原始语音,然后系统对其进行预处理预处理包括预加重,加窗分帧和端点检测三个过程系统的前端采用了端点检测,目的是在一段语音信号中确定起点和终点。
在特征提取部分,本系统采用了,MFCC,作为特征参数,用于有效地区分数字,1-5.,三,.,语音信号预处理,1.,预加重,语音从嘴唇辐射会有6dB/oct的衰减,因此在对语音信号进行处理之前,希望能按6dB/oct的比例对信号加以提升(或加重),以使得输出信号的电平相近似可采用以下差分方程定义的数字滤波器:,式中,系数常在,0.9,至,1,之间选取2.,语音信号的分帧,语音信号是一种典型的非平稳信号,它的均值函数,u(x),和自相关函数,R(xl,x2),都随时间而发生较大的变化但研究发现,语音信号在短时间内频谱特性保持平稳,即具有短时平稳特性因此,在实际处理时可以将语音信号分成很小的时间段,(,约,1030ms),,称之为“帧”在语音信号数字处理中常用的窗函数是矩形窗、汉明窗等,它们的表达式如下(其中,N,为帧长):,矩形窗:,汉明窗:,3,端点检测,基于短时能量和短时过零率的,双门限检测法,在该算法中,短时能量检测可以较好地区分出浊音和静音对于清音,由于其能量较小,在短时能量检测中会因为低于能量门限而被误判为静音,短时过零率则可以从语音中区分出静音和清音将两种检测结合起来,就可以检测出语音段及静音段。
下图是我本科课程设计中一个关于端点检测的程序,GUI,界面,其中语音是教材中的示例语音“他去无锡市”,我通过,cooledit,在示例语音中加入了白噪音,可以看出清音段混杂在噪音中,如果短时能量的门限值选取过高可能会屏蔽掉清音段,所以加入过零率能更好的识别出清音段由此图可以看出门限值选取的合不合理很大程度上影响到端点识别的效果,四,.,语音识别特征提取,特征提取,:即对不同的语音寻找其内在特征,由此来判别出未知语音,所以每个语音识别系统都必须进行特征提取语音信号的特征主要有时域和频域两种时域特征,:短时平均能量、短时平均过零率、共振峰、基音周期等;,频域特征,:线性预测系数,(LPC),、,LP,倒谱系数,(LPCC),、,Mel,频率,倒谱系数,(MFCC),等本实验选取,MEL,频率倒谱系数,(MFCC),进行提取特征参数通过阅读文献了解到基于DTW算法和MFCC就已经可以做到语音的识别了,但是泛化性比较差,中间测试过一个相关的程序只能识别特定的语音片段,更换说话人后识别效果很差五,.,BP,神经网络原理,BP神经网络又称误差反向传递神经网络提取了语音的特征参数后,靠神经网络中大量的连接权对输入模式进行非线性运算,产生最大兴奋的输入点就代表了输入模式对应的分类。
神经网络的连接权系数是在使用中根据识别结果的正确与否不断的进行自适应修正单隐层网络的整个体系结构如图所示,分为输入层、隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层结构六,.,语音识别程序设计,数字的语音识别,实验目的,:识别,1 3 5,三个数字(选择,135,是因为,135,三个数字的识别率最高),训练样本,:每个数字选取,5,个样本进行训练(均为同一个人的样本),测试样本,:每个数字选取,3,个样本进行识别测试(均为同一个人的样本),T1=1 0 0%,代表,1,T3=0 1 0%,代表,3,T5=0 0 1%,代表,5,文件,内容,备注,./pic,该文件夹中保存有实验效果分析结果的图片,./S,该文件夹中为所有的训练样本,夹内各个文件夹的名字代表其内音频的内容,例如名字为,1,的文件夹中所有的音频内容均为,1,的发音,./T,该文件夹中为所有的测试样本,夹内格式同上,./enframe.m,该函数将输入向量分为固定长度固定重叠量的帧,Matlab,语音工具箱组件,./melbankm,该函数为,Mel,滤波器,Matlab,语音工具箱组件,./mfcc.m,该函数求出输入数据的,mfcc,系数,12,维,mfcc,系数,./MfccProcess.m,将多组,mfcc,系数取平均,对,mfcc,系数的预处理,./SampleCreate.m,将取所有音频的,mfcc,系数处理成神经网络函数所需的输入格式,./Main.c,主程序函数,在这里设置参数,控制运行,下表格为所用到的,matlab,程序及其功能:,netBP=newff(PR,30,10,3,tansig,tansig,tansig,trainbfg);,%,使用,TRAINS,IG,,即共轭梯度法,其好处是当训练不收敛时,它会自动停止训练,而且耗时较其他算法(,TRAINLM,TRAINGD),少,也就是收敛很快,netBP.trainParam.epochs=100;,%,设置训练步数,net tr=train(netBP,PS,T);,%,网络训练,神经网络训练:,Y=sim(net,Test),%,输入测试语音参数进行识别,神经网络测试:,神经网络相关的部分程序:,训练曲线如下图所示:可见经过100次训练后基本接近于目标值,测试结果:输入语音为135135135,均方根误差:,谢谢,。












