基于BP神经网络语音识别方法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BP神经网络语音识别方法研究
摘要:神经网络是近年来信息科学、脑科学、神经心理学等诸多学科共同关注和研究的热点。由于其具有良好的抽象分类特性,现已应用于语音识别系统的研究和开发,并成为解决识别相关问题的有效工具。文章在讲述语音识别过程的基础上重点讨论利用BP神经网络对语音进行识别,用MATLAB完成对神经网络的训练和测试,并获得满意的结果。
关键词:语音识别;模式识别;BP神经网络,
1 绪论
计算机的飞速发展,使人们的生活方式发生了根本性的改变,鼠标、键盘,这些传统的人机接口使人们体会到了生活的便利。科学技术日新月异,假如让“机器”能够听懂人的语言,并根据其信息去执行人的意图,那么这无疑是最理想的人机智能接口方式,因此语音识别作为一门极具吸引力的学科应运而生,很多专家都指出语音识别技术将是未来十年信息技术领域十大重要的科技发展技术之一。
1.1 研究背景及意义
语言在人类的智能组成中充当着很重要的角色,人与人之间的交流和沟通大部分是通过语言的方式有效的完成。作为人与人之问交流最方便、自然、快捷的手段,人们自然希望它成为人与计算机交流的媒介。随着数字信号处理及计算机科学的飞速发展,人们对实现人机对话产生越来越迫切的要求,使得语音识别技术近年来得到了迅速的发展,语音识别技术的研究进入了一个比较成熟的时期。语音识别是一门交叉科学,它综合了声学、语言学、语音学、生理科学、数字信号处理、通信理论、电子技术、计算机科学、模式识别和人工智能等众多学科。也是人机交互最重要的一步。
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) ()()()1y n x n x n α=--
频域相对应的形式为:
(2-2) ()11,[0.90,0.98]H z z αα-=-=
其中,a 为预加重系数。
2.2.4 基于短时能量和过零率的端点检测
在语音信号的预处理中,端点检测是关键的一步,语音信号的模型参数和噪声模型参数
以及自适应滤波器中的适应参数都得依赖对应的信号段(语音段或噪声段)来计算确定。因此,
只有准确地判定语音信号的端点,才能正确地进行语音处理。
端点检测的目的是从包含语音的一般信号中确定出语音的起点以及终点,一般采用平均
能量或平均幅度值与过零率相乘的方法来判断。这种利用短时能量和短时平均过零率两种特
征共同参与检测,也被称为双门限法。
(1)短时能量
设S(n)为加窗语音信号,第t 帧语音的短时平均能量为: ()1
2
1
0()N t
N n Eng t S n -==∑ (2-5) ()1
1
0()N t
N n Eng t S n -==∑ (2-6)
其中N 为分析窗宽度,S t (n )为第t 帧语音信号中的第n 个点的信号取样值。上面两式原
理是相同的,但后式有利于区别小取样值和大取样值,不会因为取平方而造成很大的差异。
短时平均能量是时域特征参数,把它用于模型参数时,应进行归一化处理,本文将取其对数
值后使用,使计算和识别结果均取得了较好的效率和结果。
(2)短时过零率
短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。对于连续语音信号,过零意
味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号则称为过零。过
零率就是样本改变符号次数,定义语音信号寿(m)的短时过零率Zn 为:
∑-=--=1
|)]1(sgn[)](sgn[|21N m n n n m x m x Z (2-7)