10116xx37周项勇-基于BP神经网络的语音识别系统-毕业设计论文(8)

2019-05-27 21:08

洛阳师范学院2012届本科生毕业设计

第5章 语音识别系统的实现与分析

5.1语音识别系统前端

5.1.1 语音库

语音识别实验的语音样本均采集自一个WAV录音机。WAV是微软开发的一种声音文件格式,具有较高的声音质量。实验中的语音文件采样率为22.050kHz,单声道,16位量化。

实验的目标设定为识别0, 1, 2?9这10个数字语音,采用中文普通话发音。语音库包括一个训练样本库和一个识别测试库。每个库中的每个数字发音5遍,这样训练样本库和识别测试库均有50个语音样本,总共100个语音样本。

5.1.2 实验环境

实验平台的操作系统为Windows 7,CUP主频为3.20GHz,内存2G。

实验环境为Matlab7,实验使用了其中的信号处理函数以及神经网络工具箱等。

5.1.3 前端参数

1.帧长与帧移

根据短时分析技术,时间范围在10ms到30ms内的语音信号片段被认为是稳定的随机信号。基于这个前提,第三章的特征参数模型才得以构建。因此语音识别首先需要对语音进行分帧。语音样本的采样率为22.050kHz,所以实验中设置帧长为256,帧移为128。

2.端点检测

端点检测的过程,需要设置的参数有低平均幅度、高平均幅度、低平均过零率、过零率阀值和最短持续时间。

平均幅度参数的取值范围与语音帧长有关,与声音能量有关。它的设置一般基于对语音样本的平局幅度的观察统计。如图5-1显示了几个语音样本的平均幅度。实验中设置低平均幅度Lapt=15,高平均幅度Hapt=25。

32

基于BP神经网络的语音识别系统

数字710080平均幅度604020050100150200250300350400450语音帧

(a) 数字7

数字8706050平均幅值40302010050100150200250300350400450语音帧

(b) 数字8

图5-1 语音样本的短时平均幅值

低平均过零率和低平均幅度同样,用于决定实际语音的起始点和结束点。实验中,低平均过零率与过零率阀值密切相关,如图5-2。而过零率阀值的设置与否关系到噪音的影响问题,在第二章的图2-5中表明了这点。系统中,过零率阀值为0.3,而低平均过零率设置为6。

threshold=0.2250200平均过零率15010050050100150200250300350400450500语音帧

33

洛阳师范学院2012届本科生毕业设计

(a) 阀值threshold=0.2

threshold=0.3200150平均过零率10050050100150200250300350400450500语音帧

(b) 阀值threshold=0.3

图5-2 数字3的短时平均过零率

5.2 BP神经网络实现与分析

5.2.1 BPNN的Matlab函数

1.BPNN的创建函数

net=newff(pr, sn, transf, trainf);

其中,pr为样本输入的数值范围;sn是一维数组,指定BP神经网络各层神经元个数;transf也是一维数组,指定BP神经网络各层的传递函数;trainf为BP神经网络的训练函数。该创建函数返回一个未经训练的BP神经网络。

2.BPNN的训练函数

net=train(net, sample, target);

其中,参数中的net为未经训练的BP神经网络;sample为供训练的语音样本特征;target为与sample相对应的期望输出。该训练函数返回一个已经训练的BP神经网络。

3.BPNN的仿真函数 Y=sim(net, sample);

其中,net为已经训练的BP神经网络;sample为供识别测试使用的语音样本特征。该仿真函数返回每个样本特征对应的识别结果。

34

基于BP神经网络的语音识别系统

5.2.2 BPNN的层次设计

1.BPNN的输入层

在训练阶段或者识别测试阶段,BP神经网络的输入均由语音的特征参数组成。这些特征参数构成一个矩阵;矩阵的每一列数据单独代表一个语音;那么矩阵的行数为每个输入的维数,列数则为语音样本数量。

BP神经网络的训练或者识别均是针对固定维度的样本来进行的。而语音的时间长短不稳定,所以在进行训练或者识别前需要截取固定维的语音特征参数。由于实验中语音识别的对象是10个单独的数字语音,样本的时长即使不完全相同,相差也不会大。实验选定的输入维数为600维,可表示的时间估算为600/12×(128~256)×[1/(22.050×10^3)],约为500ms。

2.BPNN的输出层

BP神经网络的期望输出,用于训练阶段的输出监督和识别测试阶段的正误判决。实验中总共需要表示0~9这10个数字,故BP神经网络的输出可设计为4维输出,即使用4位二进制数表示数字语音。如,数字0表示为0000,数字9表示为1001。

3.BPNN的隐含层

当神经网络的各节点采用S型传递函数时,一个隐含层就可以实现任意判决分类问题。对于规模不大的神经网络的模式分类、边界判决问题,使用两层隐含层并不一定比一层隐含层更优越。同时考虑语音识别系统效率问题,实验采用隐含层只有一层的BP神经网络。

4.样本顺序

为了保证BP神经网络在训练阶段不会过于着重某个数字语音的特征,而忽略其他数字语音的,训练语音样本的输入序列设计成:012?9012...9。相应地,作为监督的期望输出的序列也设计成这个顺序。

5.2.3 参数分析

1.传递函数的选择

根据实验中语音识别系统的输出期望的要求,识别结果的每一位必须是0或1,因此实验为BP神经网络的输出层选择了logsig(x)作为传递函数。函数logsig(x)的值域为(0, 1),当输出层的一位输出数值小于0.5时,表示0;当输出数值大于0.5时,表示1。这可以通过简单的四舍五入运算得到。

35

洛阳师范学院2012届本科生毕业设计

同时,实验中为BP神经网络的隐含层选择了tanlog(x)作为传递函数。它的值域为(-1, 1),能为神经网络内部提供更灵活的数值表示。

2.隐含层神经元个数

BP神经网络隐含层神经元个数的选择对网络性能的影响很大,对语音识别系统的识别率有着关键作用。若隐含层神经元个数太少,神经网络可能训练不出所期望的输出结果。因为个数过少时,网络容易陷入局部极小,鲁棒性较弱,容错能力不强,结果造成识别率低。若隐含层神经元个数过多,网络的训练时间很长,而性能不一定得到提高。

1.000.950.900.850.800.750.700.650.600.550.500.450.400.350.300510152025hidec30354045 LPC MFCCmatchrate

图5-3 BPNN在不同隐含层神经元个数下的性能表现

图5-3显示了BP神经网络在不同隐含层神经元个数下的性能表现。X轴为隐含层神经元个数hidec;Y轴为语音识别系统的识别率。带加号曲线描述的是LPC特征参数对应的网络性能;带圆点曲线描述的是MFCC特征参数对应的网络性能。从图中看出,随着隐含层神经元个数hidec的不断变化,BPNN的识别率不断变化。整体上,在hidec从5到40的变化过程中,识别率的性能曲线不断上升;当hidec大于20后,识别率趋于稳定。从局部上看,在BPNN的识别率并不稳定,曲线上有许多的峰值和波谷。这是BPNN每次训练的误差不同造成的。从另一角度,曲线的峰值随着hidec的增多而变优,波谷也随着hidec的增多而变优。因此,可以认为BPNN的识别能力是随着hidec的增加而逐渐提高的。为了保证神经网络的效率,hidec的数值不宜过大。实验中,隐含层神经元个数hidec=30。另外,使用MFCC特征参数来训练BP神经网络得到的识别率要高得多,识别率多次达到80%以上。

36


10116xx37周项勇-基于BP神经网络的语音识别系统-毕业设计论文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:干热灭菌柜URS

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: