神经网络在语音识别上的应用

上传人:mg****85 文档编号:34524150 上传时间:2018-02-25 格式:DOC 页数:7 大小:668.50KB
返回 下载 相关 举报
神经网络在语音识别上的应用_第1页
第1页 / 共7页
神经网络在语音识别上的应用_第2页
第2页 / 共7页
神经网络在语音识别上的应用_第3页
第3页 / 共7页
神经网络在语音识别上的应用_第4页
第4页 / 共7页
神经网络在语音识别上的应用_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《神经网络在语音识别上的应用》由会员分享,可在线阅读,更多相关《神经网络在语音识别上的应用(7页珍藏版)》请在金锄头文库上搜索。

1、1Harbin Institute of Technology神经网络与智能信号处理实验报告神经网络实验报告1、实验名称:神经网络在语音识别上的应用2、实验目的:进一步了解神经网络在语音识别上的应用,了解神经网络的基本原理,学习神经网络的算法,还可以进一步分析不同的隐节点数以及训练步数对误差性能的影响。3、实验要求:1、设计一个标准的 BP 学习算法网络来对语音信号 26 个字母进行识别。2、在训练时采用不同的隐含层神经元个数,分析其对网络性能、语音识别系统的识别率的影响。3、用所创建的 BP 神经网络进行 26 个字母的语音识别,观察并记录结果,并分析其误差。4、实验步骤:1、语音识别的基本

2、原理2预处理模式匹配特征提取参考模式库语音输入识别训练识别结果语音识别的总体流程如下:语音输入时要先经过预处理,包括预加重、分帧加窗等。然后进行特征提取,该实验中的特征参数为 MFCC 参数。语音特征参数的时间序列构成语音的模式,将其与获得的参考模式逐一比较,获得最佳匹配的参考模式便是识别结果。由于语音信号的复杂性,所以在一开始在语音信号输入语音识别系统时需要进行预处理,预处理包括预加重,分帧加窗,端点检测等。预加重的目的是为了加强语音的高频部分,以便在特征提取阶段进行频谱分析。分帧加窗的目的是为了使帧与帧之间平滑过渡,保持连续性以及保持语音信号的短时平稳性,降低由于不连续而产生的 Gibbs

3、 效应。端点检测的目的就是从语音信号序列中截取实际有效的语音信号。特征提取阶段,是从语音数据中提取能反映语音信号特征和变化规律的参数,以唯一表征语音,这儿选用的语音信号特征参数为 MEL 频率倒谱系数,即MFCC。MEL 频率倒谱的实现过程如下图所示:预加重 、 分帧 、 加窗短时傅立叶变换得到频谱 ,平方M 个 M E L 滤波器滤波 , 对能量谱在每个频带的分量求和求 M 个频带功率 , 再作离散余弦变换( D C T )一帧语音信号能量谱 M 个频带功率 L 个 M F C C 参数(1)对语音信号进行预处理,加窗、分帧将其变为短时信号。(2) 将短时时域信号转变为频域信号,并计算其短时

4、能量,离散傅立叶变换。将时域信号 后补若干 0 形成长为 N 的序列,再经过离散傅立叶变换得到线()性频谱 ,变换公式:( )0 n,k N-1( ) =1=0()2 (3)在频标内三角带通滤波器个加于坐标得到滤波器组,转化关系为=2595(1+700)(4)求对数能量。为了使计算结果对噪声和谱估计噪声有更好的鲁棒性,一般3将上述经过 Mel 频谱取对数能量。则由线性频谱 得到对数频谱 的总的() ()传递函数为:()=1=0|()|2() 0()=ln() 0(5)离散余弦变换(DCT)将上述的对数频谱 经过离散余弦变换到倒谱域,即可得到 MEL 倒谱系数()即 MFCC 系数()=1=0(

5、)cos(+12) ) 02、BP 神经网络的建立BP 神经网络是一种多层前馈神经网络,采用的算法是误差反传法,误差反传法特点就是使输入输出层连接权值进行调整,而且隐含层连接权值可根据误差与上层输出进行修改,即有了学习能力。在 BP 神经网络中存在前向传播信息流和误差反传信息流。前向传播信息流就是输入信号从输入层进入到隐含层,再从输出层输出。它的输出是整个神经网络的计算结果。网络会计算最后输出与期望间的误差。如果误差超过一定的范围,就沿着神经网络反传,进行误差反传。误差反传就是误差从输出层经隐含层到输入层的过程。误差衡量的是输出信息与期望信息的距离。在误差反传的过程中,连接权值根据误差值等一些

6、参数来进行调整,使得调整后的 BP 网络的实际输出更接近于理想输出。本实验中的 BP 神经网络设计为 3 层,即其隐含层只有一层。在训练阶段和识别阶段 BP 网络的输入均是由输入语音的 MFCC 参数组成。这些特征参数构成一个矩阵,矩阵的每一列代表一个单独的语音,矩阵的行数为每个输入的维数,矩阵的列数为语音样本数。要识别所有的字母,BP 神经网络的输出层采用 5 维的来识别 26 个英文字母。00000 11010 分别对应字母 AZ。但实际中我们只识别 AE,所以只需 3维就够了,001101 分别对应 AE。当神经网络的各节点采用 S 型传递函数时一个隐含层就可以实现任意判决分类问题。对于

7、规模不大的神经网络的模式分类、边界判决问题,使用两层隐含层并不一定比一层隐含层更优越。同时考虑到语音识别系统的效率问题,所以本实验只采用一层隐含层,隐含层神经元的数目为 15 个。BP 神经网络的创建函数:net=newff(pr,sn,transf,trainf)其中 pr 为输入的数值范围;sn 为一维数组,数组的维数表示神经网络的层数,数组的大小表示该层的神经元个数。transf 也是一维数组,表示神经网络各层的传递函数。trainf 为神经网络的训练函数。BP 神经网络的训练函数:net=train(net,sample,target)参数中的 net 是指未经训练的 BP 神经网络,

8、sample 为供训练的语音样本,target 为相对应的 sample 的期望输出,该函数返回一个已经训练好的 BP 神经网络。BP 神经网络的仿真函数:Y=sim(net,sample)Net 为已经训练好的 BP 神经网络,sample 为供测试使用的语音样本特征。该仿真函数返回每个样本特征对应的识别结果。45、试验结果分析由于识别 26 个字母的输入较大,本实验中只用 AE 五个字母来训练识别,它们的基本原理是一样的。BP 神经网络的网络参数设置为:BP 网络共 3 层,输入神经元的个数为 30,隐含层神经元的个数为 20,输出层神经元的个数为3。如果训练步数为 150。则输出为每一列

9、代表一个字母,则输出 Y 接近于001,010,011,100,101.即输出为 A,B,C,D,E,A,B,C,D,E,A,B,C,D,E下图为其误差图:当隐含层为 15,训练步数为 150 时, 则其输出为: 5输出 Y 的误差就比较大,下图是其误差图:当隐含层为 30 时,训练步数为 150 时,其输出:其误差也比较大,误差图如下:6比较上面 3 幅误差图可以发现,当训练步数为 150 时,隐含层数目为 20 时,其误差最小,隐含层数目为 15 和 30 时,其误差都较大。得出结论,BP 神经网络隐含层个数的选择对网络性能的影响很大。若隐含层神经元个数较少,神经网络就可能训练不出所期望的

10、输出结果,因为个数较少时,网络容易陷入局部较小,鲁棒性能较弱,容错能力不强,结果造成识别率低。若隐含层神经元个数过多,网络的训练时间很长性能也不定能得到提高。所以综上所述,隐含层神经元数目最终选取 20 个。当神经元个数选取 20 个时,训练步数分别选取 100,150,200,比较其误差。训练步数=100训练步数=1507训练步数=200通过比较上面 3 幅图发现训练步数越多,其误差越小。但是训练步数越多带来的问题就是训练时间较长,在误差要求不是太高情况下,选取训练步数为150 就能够满足误差要求了。6、实验体会与收获语音识别时 BP 神经网络研究的热点。由于水平和时间的有限,本实验内容难免有不足之处,本实验仍有很大的改进空间。本实验的语音库包含的字母元素少,实际应用中需要更大的语音库,不仅包含数字,字母,还包括单词,难度也要高得多。通过本实验对 BP神经网络的工作原理有了进一步的了解。能够简单运用神经网络实现一些简单的识别,为以后神经网络的应用打下基础。本实验的语音识别仍未具有可连续性,神经网络的样本数据是在预处理从原始语音中提取实际语音段后再从该数据段提取出来的多个 MFCC 参数的总和,但是语音是连续变化的,所以未来可以让语音识别具有可连续性,即语音在时域上进行着语音识别系统不断地对语音进行预处理,特征提取。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号