基于BP神经网络语音识别方法研究Word格式文档下载.docx
《基于BP神经网络语音识别方法研究Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于BP神经网络语音识别方法研究Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
作为人与人之问交流最方便、自然、快捷的手段,人们自然希望它成为人与计算机交流的媒介。
随着数字信号处理及计算机科学的飞速发展,人们对实现人机对话产生越来越迫切的要求,使得语音识别技术近年来得到了迅速的发展,语音识别技术的研究进入了一个比较成熟的时期。
语音识别是一门交叉科学,它综合了声学、语言学、语音学、生理科学、数字信号处理、通信理论、电子技术、计算机科学、模式识别和人工智能等众多学科。
也是人机交互最重要的一步。
1.2语音识别的国内外研究现状
通过语音传递信息是人类最重要,最有效,和最方便的交换信息的形式,语音识别主要指让机器转达人说的话,即在各种情况下,准确的识别出语音的内容,从而根据其信息,执行人的各种意图。
广义的语音识别包括说话人的识别和内容的识别两部分。
这里所说的语音识别,是指内容识别方面。
采用计算机进行语音识别到现在已经发展了50年。
从特征参数上改进,采用各种办法进行语音增强是一个研究方向,但是到目前为止,还没有一种办法能把语音信号完美地从噪音环境提取出来。
语音识别有广泛的商业化运用前景,主要可以分为通用场合和专用场合两个方面。
1.3研究内容
本文研究的主要内容是结合模式识别的基本理论,研究BP神经网络孤立词语音识别的问题,实现1-5共5个数字的识别。
分析了语音信号的预处理,特征提取及BP神经网络算法实现。
2语音识别技术
2.1语音识别系统结构
孤立词语音识别是对特定的不连续的词语作为处理单元。
语音识别系统的基本组成一般可以分为预处理模块、特征值提取模块及模式匹配三个模块。
如图2.1所示为语音识别系统结构框图。
图2.1语音识别系统结构框图
从图2.1的系统整体架构可以看到,建立基于BP神经网络的语音识别系统可分为两个阶段,即训练阶段和识别阶段。
首先由用户通过麦克风输入语音形成原始语音,然后系统对其进行预处理。
预处理包括预加重,加窗分帧和端点检测三个过程。
系统的前端采用了端点检测,目的是在一段语音信号中确定起点和终点。
在特征提取部分,本系统采用了MFCC作为特征参数,用于有效地区分数字1-5.
在训练阶段,通过说话人多次重复语音,本系统从原始语音样本中去除冗余信息,提取说话人的特征参数并存储为BP神经网络的输入样本,在此基础上建立输入与输出的BP神经网络模型。
在识别阶段,待测语音经过预处理,使用已经训练好的BP神经网络进行识别得到结果。
2.2语音信号预处理
图2.2是语音信号的预处理的流程图。
从图2.2可以看到预处理模块包括预加重,加窗分帧和端点检测。
前级预加重、加窗分帧及端点检测是语音识别的准备工作,每一个环节对整个识别系统的性能有着重要的影响。
前级预处理主要是对信号进行一定的滤波和分帧;
加窗分帧就是将语音信号进行分段处理,使语音信号连续并保持一定的重叠率:
端点检测是确定语音有用信号的起始点与终止点,并通过一定的手段处理,将没有意义的语音信号去除,从而减少语音匹配识别模块的运算量,同时也可以提高系统的识别率。
预处理不合理或语音起止点及终止点判别不够准确都会使后续的特征矢量提取及模式匹配过程等工作受到很大的影响,甚至达不到语音识别的效果,因此预处理工作作为语音识别的第一步工作,必须达到所需的要求,为下一步的特征参数提取做好铺垫。
图2.2语音信号预处理流程图
2.2.1语音信号的采样
Matlab环境中语音信号的采集可使用wavrecord(n,fs,ch,dtype)函数录制,也可使用Windows的“录音机”程序录制成.wav文件然后使用wavread(file)函数读入。
在本实验中,使用matlab的语音工具包录取1-5共5段语音,。
如图2.3所示为数字0的训练语音00.wav的信号波形图,第(I)幅图为完整的语音波形,第(II)、(III)幅图分别为语音的起始部分和结束部分的放大波形图。
2.2.2语音信号的分帧
语音信号是一种典型的非平稳信号,它的均值函数u(x)和自相关函数R(xl,x2)都随时间而发生较大的变化。
但研究发现,语音信号在短时间内频谱特性保持平稳,即具有短时平稳特性。
因此,在实际处理时可以将语音信号分成很小的时间段(约10~30ms),称之为“帧”,作为语音信号处理的最小单位,帧与帧的非重叠部分称为帧移,而将语音信号分成若干帧的过程称为分帧。
分帧小能清楚地描绘语音信号的时变特征但计算量大;
分帧大能减少计算量但相邻帧间变化不大,容易丢失信号特征。
一般取帧长20ms,帧移为帧长的1/3~1/2。
2.2.3语音信号的预加重
预加重是指在A/D转换后加一个6dB/倍频程的高频提升滤波器,语音信号的平均功率谱由于受声门激励和口鼻辐射的影响,高频端大约在800Hz以上按6dB/Oct(倍频程)跌落。
所以求语音信号频谱时,频率越高相应的成份越小,高频部分的频率比低频部分的难求。
因此,预加重的目的是加强语音中的高频共振峰,使语音信号的短时频谱变得更为平坦,还可以起到消除直流漂移、抑制随机噪声和提高清音部分能量的效果,便于进行频谱分析和声道参数分析。
此外,通常的方法是使用一阶零点数字滤波器实现预加重,其形式为:
(2-1)
频域相对应的形式为:
(2-2)
其中,a为预加重系数。
2.2.4基于短时能量和过零率的端点检测
在语音信号的预处理中,端点检测是关键的一步,语音信号的模型参数和噪声模型参数以及自适应滤波器中的适应参数都得依赖对应的信号段(语音段或噪声段)来计算确定。
因此,只有准确地判定语音信号的端点,才能正确地进行语音处理。
端点检测的目的是从包含语音的一般信号中确定出语音的起点以及终点,一般采用平均能量或平均幅度值与过零率相乘的方法来判断。
这种利用短时能量和短时平均过零率两种特征共同参与检测,也被称为双门限法。
(1)短时能量
设S(n)为加窗语音信号,第t帧语音的短时平均能量为:
(2-5)
(2-6)
其中N为分析窗宽度,St(n)为第t帧语音信号中的第n个点的信号取样值。
上面两式原理是相同的,但后式有利于区别小取样值和大取样值,不会因为取平方而造成很大的差异。
短时平均能量是时域特征参数,把它用于模型参数时,应进行归一化处理,本文将取其对数值后使用,使计算和识别结果均取得了较好的效率和结果。
(2)短时过零率
短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。
对于连续语音信号,过零意味着时域波形通过时间轴;
而对于离散信号,如果相邻的取样值的改变符号则称为过零。
过零率就是样本改变符号次数,定义语音信号寿(m)的短时过零率Zn为:
(2-7)
(2-8)
(3)双门限检测的方法
在开始进行端点检测之前,首先为短时能量和过零率分别确定两个门限。
一个是比较低的门限,其数值比较小,对信号的变化比较敏感,很容易就会被超过。
另一个是比较高的门限,数值比较大,信号必须达到一定的强度,该门限才可能被超过。
低门限被超过未必就是语音的开始,有可能是时间很短的噪声引起的。
高门限被超过则可以基本确信是由于语音信号引起的。
整个语音信号的端点检测可以分成四段:
静音、过渡段、语音段、结束。
在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。
在过波段中,由于参数的数值比较小,不能确信是否处于真伪的语音段,因此只要两个参数的数值回落到低l、J限以下,就将当前状态恢复到静音状态。
而如果在过渡段中两个参数中的任一个超过了高门限,就可以确信进入语音段了。
当前状态处于语音段时,如果两个参数的数值降低到低门限以下,而且总的计时长度小于最短时间门限,则认为这是段噪音,继续扫描以后的语音数据。
否则就标记好结束端点,并返回。
从而达到抗干扰的目的、提高识别率。
如图2.4所示。
图2.3语音信号的端点检测图
2.3特征参数提取
特征值的提取是对原始的语音信号运用一定的数字信号处理技术进行适当的处理,从而得到一个矢量序列,这个矢量序列可以代表原始的语音信号所携带的信息,初步实现数据压缩。
特征参数主要有:
能量、幅度、过零率、频谱、倒谱和功率谱等,另外考虑到其他因素的影响,还有许多基于基本参数的参数,本文选用了MEL频率倒谱系数(MFCC)进行提取特征参数。
MFCC系数的计算是以“bark”为其频率基准的,它和线性频率的转换关系是:
(2-9)
MFCC系数也是按帧计算的,首先要通过FFT得到该帧信号的功率谱S(n),转换为Mel频率下的功率谱。
这需要在计算之前先在语音的频谱范围内设置若干个带通滤波器:
NHm(n)m=0,1,…,M-1;
n=0,1,…,N/2-1(2-10)
M为滤波器的个数,通常取24,与临界带的个数一样;
N为一帧语音信号的点数,为了计算FFT的方便,通常取256。
滤波器在频域上为简单的三角形,其中心频率fm在Mel频率轴上是均匀分布的。
从图2.5就可以看到MFCC系数的计算过程如下:
(1)预处理:
确定每一帧语音采样序列的长度(如N=256),并对每帧序列s(n)进行预加重、分帧和加窗处理;
(2)计算离散功率谱:
对预处理的每帧进行离散FFT变换得到其频谱,再取模的平方作为离散功率谱S(n);
(3)将功率谱通过滤波器组:
计算S(n)通过M个Hm(n)后所得的功率值,即计算S(n)和Hm(n)在各离散频率点上的乘积之和,得到M个参数Pm,m=0,1,……M-1;
(4)取对数:
计算Pm的自然对数,得到Lm,m=0,1,……M-1;
(5)离散余弦变换:
对Lm计算其离散余弦变换,得到Dm,m=0,1,……M-1,舍去代表直流成份的D0,取D1,D2,……,Dk作为MFCC参数。
图2.4语音信号MFCC系数的算法流程图
3基于BP神经网络语音识别算法实现
3.1BP神经网络原理
BP神经网络又称误差反向传递神经网络。
它是一种依靠反馈值来不断调整节点之间的连接权值而构建的一种网络模型。
它的整个体系结构如图1所示,分为输入层、隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层结构。
BP算法的基本思想是:
学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输人层传人,经各隐藏层逐层处理后,传向输出层。
若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。
误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始的进行的。
权值不断调整的过程,也就是网络的学习训练过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。
图3.1BP神经网络体系结构
3.2输入层神经元个数的确定