欢迎光临钟爱文库,如需获取更多资料请使用搜索功能。
钟爱文库
当前位置:首页 » 工程科技 » 信息与通信 » 正文

基于BP神经网络语音识别方法研究

基于 BP 神经网络语音识别方法研究摘要: 神经网络是近年来信息科学、脑科学、神经心理学等诸多学科共同关注和研究的热 点。

由于其具有良好的抽象分类特性,现已应用于语音识别系统的研究和开发,并成为解决 识别相关问题的有效工具。

文章在讲述语音识别过程的基础上重点讨论利用 BP 神经网络对 语音进行识别,用 MATLAB 完成对神经网络的训练和测试,并获得满意的结果。

关键词:语音识别;模式识别;BP神经网络,1 绪论计算机的飞速发展,使人们的生活方式发生了根本性的改变,鼠标、键盘,这些传统的 人机接口使人们体会到了生活的便利。

科学技术日新月异,假如让“机器”能够听懂人的语 言,并根据其信息去执行人的意图,那么这无疑是最理想的人机智能接口方式,因此语音识 别作为一门极具吸引力的学科应运而生, 很多专家都指出语音识别技术将是未来十年信息技 术领域十大重要的科技发展技术之一。

1.1 研究背景及意义语言在人类的智能组成中充当着很重要的角色, 人与人之间的交流和沟通大部分是通过 语言的方式有效的完成。

作为人与人之问交流最方便、自然、快捷的手段,人们自然希望它 成为人与计算机交流的媒介。

随着数字信号处理及计算机科学的飞速发展, 人们对实现人机 对话产生越来越迫切的要求, 使得语音识别技术近年来得到了迅速的发展, 语音识别技术的 研究进入了一个比较成熟的时期。

语音识别是一门交叉科学,它综合了声学、语言学、语音 学、生理科学、数字信号处理、通信理论、电子技术、计算机科学、模式识别和人工智能等 众多学科。

也是人机交互最重要的一步。

1.2 语音识别的国内外研究现状通过语音传递信息是人类最重要,最有效,和最方便的交换信息的形式,语音识别主要 指让机器转达人说的话,即在各种情况下,准确的识别出语音的内容,从而根据其信息,执 行人的各种意图。

广义的语音识别包括说话人的识别和内容的识别两部分。

这里所说的语音识别, 是指内 容识别方面。

采用计算机进行语音识别到现在已经发展了50年。

从特征参数上改进,采用各种办法进行语音增强是一个研究方向,但是到目前为止,还 没有一种办法能把语音信号完美地从噪音环境提取出来。

语音识别有广泛的商业化运用前景, 主要可以分为通用场合和专用场合两个方面。

1.3 研究内容本文研究的主要内容是结合模式识别的基本理论, 研究BP神经网络孤立词语音识别的问

基于BP神经网络语音识别方法研究

题, 实现1-5共5个数字的识别。

分析了语音信号的预处理, 特征提取及BP神经网络算法实现。

2 语音识别技术2.1 语音识别系统结构孤立词语音识别是对特定的不连续的词语作为处理单元。

语音识别系统的基本组成一般 可以分为预处理模块、特征值提取模块及模式匹配三个模块。

如图2.1所示为语音识别系统 结构框图。

样本语言预加重加窗分帧端点检测建立 BP 神经网络输入样本 训练 BP 神经网络 使用神经网络特征提取 识别结果待测语音预处理特征提取图 2.1 语音识别系统结构框图从图2.1的系统整体架构可以看到,建立基于BP神经网络的语音识别系统可分为两个阶 段,即训练阶段和识别阶段。

首先由用户通过麦克风输入语音形成原始语音,然后系统对其进 行预处理。

预处理包括预加重, 加窗分帧和端点检测三个过程。

系统的前端采用了端点检测, 目的是在一段语音信号中确定起点和终点。

在特征提取部分,本系统采用了MFCC作为特征参 数,用于有效地区分数字1-5. 在训练阶段,通过说话人多次重复语音,本系统从原始语音样本中去除冗余信息,提取说 话人的特征参数并存储为BP神经网络的输入样本, 在此基础上建立输入与输出的BP神经网络 模型。

在识别阶段,待测语音经过预处理, 使用已经训练好的BP神经网络进行识别得到结果。

2.2 语音信号预处理图2.2是语音信号的预处理的流程图。

从图2.2可以看到预处理模块包括预加重, 加窗分 帧和端点检测。

前级预加重、加窗分帧及端点检测是语音识别的准备工作,每一个环节对整 个识别系统的性能有着重要的影响。

前级预处理主要是对信号进行一定的滤波和分帧; 加窗 分帧就是将语音信号进行分段处理, 使语音信号连续并保持一定的重叠率: 端点检测是确定 语音有用信号的起始点与终止点,并通过一定的手段处理,将没有意义的语音信号去除,从 而减少语音匹配识别模块的运算量, 同时也可以提高系统的识别率。

预处理不合理或语音起

基于BP神经网络语音识别方法研究

止点及终止点判别不够准确都会使后续的特征矢量提取及模式匹配过程等工作受到很大的 影响,甚至达不到语音识别的效果,因此预处理工作作为语音识别的第一步工作,必须达到 所需的要求,为下一步的特征参数提取做好铺垫。

开始预加重分帧端点检测,确定起止点特征参数提取 MFCC结束图 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(倍频程)跌落。

基于BP神经网络语音识别方法研究

所以求语音信号频谱时,频率越高相应的成份越小,高频部分的频率比低频部分的难求。

因 此,预加重的目的是加强语音中的高频共振峰,使语音信号的短时频谱变得更为平坦,还可 以起到消除直流漂移、 抑制随机噪声和提高清音部分能量的效果, 便于进行频谱分析和声道 参数分析。

此外,通常的方法是使用一阶零点数字滤波器实现预加重,其形式为: (2-1)y  n   x  n    x  n  1频域相对应的形式为: (2-2) 其中,a为预加重系数。

H  z   1   z 1 ,   [0.90, 0.98]2.2.4 基于短时能量和过零率的端点检测在语音信号的预处理中,端点检测是关键的一步,语音信号的模型参数和噪声模型参数 以及自适应滤波器中的适应参数都得依赖对应的信号段(语音段或噪声段)来计算确定。

因此, 只有准确地判定语音信号的端点,才能正确地进行语音处理。

端点检测的目的是从包含语音的一般信号中确定出语音的起点以及终点,一般采用平均 能量或平均幅度值与过零率相乘的方法来判断。

这种利用短时能量和短时平均过零率两种特 征共同参与检测,也被称为双门限法。

(1)短时能量 设S(n)为加窗语音信号,第t帧语音的短时平均能量为:Eng (t ) 1 N S nn 0 2 tN 1(2-5)Eng (t ) 1 N S nn 0 tN 1(2-6) 其中N为分析窗宽度,St(n)为第t帧语音信号中的第n个点的信号取样值。

上面两式原 理是相同的,但后式有利于区别小取样值和大取样值,不会因为取平方而造成很大的差异。

短时平均能量是时域特征参数,把它用于模型参数时,应进行归一化处理,本文将取其对数 值后使用,使计算和识别结果均取得了较好的效率和结果。

(2)短时过零率短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。

对于连续语音信号, 过零意 味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号则称为过零。

过 零率就是样本改变符号次数,定义语音信号寿(m)的短时过零率Zn为:Zn 1 N 1 | sgn[xn (m)]  sgn[xn (m  1)] | 2 m0(2-7)

基于BP神经网络语音识别方法研究

sgn[x]= (3)双门限检测的方法{1 -1(x≥0) (x≤0)(2-8)在开始进行端点检测之前, 首先为短时能量和过零率分别确定两个门限。

一个是比较低 的门限,其数值比较小,对信号的变化比较敏感,很容易就会被超过。

另一个是比较高的门 限,数值比较大,信号必须达到一定的强度,该门限才可能被超过。

低门限被超过未必就是 语音的开始, 有可能是时间很短的噪声引起的。

高门限被超过则可以基本确信是由于语音信 号引起的。

整个语音信号的端点检测可以分成四段:静音、过渡段、语音段、结束。

在静音段,如 果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。

在过波段中,由于参 数的数值比较小,不能确信是否处于真伪的语音段,因此只要两个参数的数值回落到低l、J 限以下, 就将当前状态恢复到静音状态。

而如果在过渡段中两个参数中的任一个超过了高门 限,就可以确信进入语音段了。

当前状态处于语音段时,如果两个参数的数值降低到低门限 以下, 而且总的计时长度小于最短时间门限, 则认为这是段噪音, 继续扫描以后的语音数据。

否则就标记好结束端点,并返回。

从而达到抗干扰的目的、提高识别率。

如图2.4所示。

图2.3 语音信号的端点检测图2.3 特征参数提取特征值的提取是对原始的语音信号运用一定的数字信号处理技术进行适当的处理, 从而 得到一个矢量序列, 这个矢量序列可以代表原始的语音信号所携带的信息, 初步实现数据压 缩。

特征参数主要有:能量、幅度、过零率、频谱、倒谱和功率谱等,另外考虑到其他因素

基于BP神经网络语音识别方法研究

的影响,还有许多基于基本参数的参数,本文选用了MEL频率倒谱系数(MFCC)进行提取特征 参数。

MFCC系数的计算是以“bark”为其频率基准的,它和线性频率的转换关系是:f mel  2595 log10 (1 f ) 700(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 计算其离散余弦变换,得到 D m,m=0,1,„„M-1,舍去代表 直流成份的 D0,取 D1,D2,„„,Dk 作为 MFCC 参数。

预加重,加窗 FFT Mel 频率滤波器 组DCT 求倒谱 图 2.4 语音信号 MFCC 系数的算法流程图Log 对数能量3 基于BP神经网络语音识别算法实现3.1 BP 神经网络原理BP神经网络又称误差反向传递神经网络。

它是一种依靠反馈值来不断调整节点之间的连 接权值而构建的一种网络模型。

它的整个体系结构如图1所示,分为输入层、隐藏层和输出

基于BP神经网络语音识别方法研究