摘 要

  本文主要介绍并运用了高斯混合模型(GMM)和MFCC(Mel频率倒谱系数)这两个算法来实现语音识别的过程。用高斯函数最大程度的近似表示信号的概率。首先,对语音信号进行预处理;其次通过Mel倒谱系数MFCC提取语音特征参数;设置一个模板库,用来存储大量并已提取特征参数的语音信号;将待识别的语音信号与模板库中的语音信号经过同一通道后进行比较,最终得到比较结果。由于在程序中难以观察到结果,故添加了MATLAB GUI界面,用户可以通过操作MATLAB GUI界面中的按钮观看到语音识别的基本过程,并且最终的识别结果也会清晰的显示在界面上。本次设计经过多次的实际操作,语音识别正确率可达百分之九十左右。 关键词:MATLAB GUI,GMM,MFCC

一、系统介绍

1.1 课题研究主要内容

(1)本文主要围绕国内外语音识别技术的研究背景,意义和研究现状。语音识别技术之所以吸引了各国科学界的关注的原因,对于人类来说具体的重要意义。 (2)本文对语音识别技术设计系统方案,根据软件代码编写思路,介绍了高斯混合模型(GMM)的数学原理和算法及语音信号的预处理、语音信号的特征参数提取,语音识别的过程,还介绍了MFCC的算法。 (3)最后对程序的运行和设计做了简要介绍,也表明对本次毕业设计的总结及对课题设计的展望。

1.2 课题研究方法

(1)理论推导+文献研究法:根据所学的专业理论知识和查阅相关的专业书籍,针对语音识别研究目的以及课题的需要,对语音识别技术研究进行全面系统的设计和选择设计的方案。从而全面了解语音识别技术,不断发现问题,解决问题。 (2)仿真法:用MATLAB对设计的语音识别系统进行仿真、调试,并不断加以改进。 (3)实验法:对设计出的系统进行试验分析,不断改进直至达到预期效果。

1.3 方案设计思想方法

  本文语音识别系统以MATLAB软件为平台。语音识别系统本质上是一种模式识别过程,首先输入需要识别的语音信号;其次对输入的语音信号进行分析和处理以过滤掉冗余信息;之后是提取出语音信号中具有区分性的语音特征,建立语音识别所需的参考模式库,并把处理过的语音特征保存到模板库;最后语音信号经过相同信道得到的语音参数与模板库里的语音匹配得到最终识别结果[4]。其研究基本思路方法如下图1.1展示。

图1.1 语音识别流程

二、提取语音信号特征参数

.1 MFCC概述   梅尔频率倒谱(简称MFCC)是一种基于人类听力的模型,主要基于频率作为基本特征。它将频谱转化为基于梅尔标度频域提取出来的非线性频谱,然后将其转换为倒谱域上。用滤波器组计算MFCC参数,频带在梅尔刻度上是等宽的,信号能量通过滤波器输出,用作信号的基本特征,再进一步的处理,就可以作为语音信号的输入特征。由于人类的听觉特性,在不做任何前提假设和无限制的情况下,使用MFCC提取语音信号特性参数具有出色的抗干扰和识别能力。MFCC的过程主要是把经过预处理后的信号前后经过分帧、加窗、快速傅里叶变换(FFT)、Mel滤波器组、对数运算、离散余弦变换(DCT)、动态差分参数(一阶差分和二阶差分参数)的提取。对信号进行帧化并进行汉明窗处理,然后通过短时傅立叶变换获得频谱,并对频谱进行平方,即能量谱。然后用m个Mel带通滤波器进行滤波,对每个滤波器的输出进行对数运算,以获得对应频带对数的功率谱,并进行离散余弦变换。获得的MFCC特征用作静态特征以提取动态差分参数,得到动态特性[6]。提取语音信号过程与下图3.1所示。

图3.1 语音信号提取参数流程 3.2 语音信号的截取   在MATLAB中对语音信号的截取主要是通过epInSampleIndex=epdByVol(y, fs)函数来实现的,信号的MFCC特征参数可以通过melcepst函数计算[7]。人在说话的时候可能会有停顿且说话时也不能一次性表达完整,所以本次设计采取端点检测法,能在一段语音信号中准确检测出信号的始端和终端。系统对语音进行端点定位,然后去除语音前后多余的噪音段,所以本次语音识别设计采用端点检测法截取有效的语音信号。利用具有短期能量和短时平均过零率的特性的双门限算法,实现了语音信号端点的检测,有效消除语音的无声部分引起的噪声,减少处理信号的时间,提高性能[8]。 3.3 分帧   语音信号只有处于平稳的状态时才能更好地对信号进行处理和分析,由于语音信号具有短期稳定的特点,在短时间里能维持它的基本特征,因此要采用短期分析技术。把语音信号进行帧处理来变成平稳的状态,即分割成多个片段,这可以通过重叠信号来实现。移帧是指两个帧之间的重叠的部分。通常情况下,语音信号的帧长约为20ms,可以看做处于平稳的状态,帧移和帧长的比率通常是0-0.5。可用enframe函数对语音信号进行分帧。 3.4 加窗   在对语音信号进行分帧后,每一帧都会出现间断或重叠,且分割的帧越多,原始信号的误差越大,故在帧处理后要进行加窗,加窗后可以增加语音信号的连续性,且每一帧都能表现出周期函数的特性。故在本文对语音信号的处理中,增加的是汉明窗,用hamming函数来实现加窗。

三、MATLAB GUI与程序流程设计

4.1GUI界面的设计

  创建一个GUI界面,在命令行中输入guide,然后按回车,如下图4.1所示。

图4.1 创建GUI界面   启动GUIDE快速入门,选择Blank GUI(Default),然后单击“确定”按钮,如下图4.2所示。

图4.2 选择保存界面 之后出现主界面,即用户使用的图形界面。在图形用户界面中添加程序所需的按钮或图标,就可以实现程序的操作。如下图4.3所示。在学习GUI界面中,我们必须了解主界面中每一个图标的含义,从而正确语音识别设计所需要的操作按钮。

图4.3 GUI界面

4.2 程序流程设计

4.2.1 创建文件

  首先创建YUYINSHIBIE.m文件,先设置一个全局变量sc,把sc附一个内容并显示在listbox2上,并在listbox2上显示“请选择需要训练的语音库”这一字样。

4.2.2 录制语音库

  下面对现场录音识别进行操作,用户在“请输入需要录制的语音名称”这一可编辑文本框里输入想命名的文件名,点击录制语音库,此时界面上显示“开始录音”,本次设计是6秒的语音录制,6秒过后,界面则显示“结束录音”,保存文件并在界面上可显示文件保存的路径。如下图4.7所示。

图4.7 录制语音库

4.2.3 添加语音库

  接下来对按钮1进行编辑,如下列程序所示,把按钮1命名为“添加语音库”。需要先设置一个全局变量,读取文件夹的路径代码,然后读取文件夹里的说话人数,如果文件夹里没有语音文件,在listbox2中提示“抱歉,请在文件夹中放入需要训练的语音”,如果文件夹里有语音文件则显示“需要训练的语音有’,num2str(speakerNum),'个”,如下图4.8所示。

图4.8 添加语音库

4.2.4 提取并训练语音库

  下列程序是对按钮2,编辑成“提取并训练语音库”。在listbox2中提示用户“正在提取第’,num2str(i),'个人”,并停顿0.5秒,让用户更直观的观察。这段程序是实现经过预处理和高斯混合模型(GMM)),提取语音信号的特征并将其保存在一个模式库中,如下图4.9所示。

图4.9 提取训练语音库

4.2.5 选择识别语音

  下列程序是对按钮3,编辑成 “选择识别的语音”。这段程序是让用户选择需要识别的语音文件,并对它进行预加重、特征提取等步骤。如下图4.10所示。

图4.10 选择识别语音

4.2.6 语音识别

  下列程序是对按钮4,编辑成“开始识别”。这段程序是把选择的语音信号文件与模式库中的语音文件进行对比,得出的最终识别结果会显示在listbox2上,如下图4.11所示。

图4.11 识别结果

四、结论

  通过这次毕业设计的制作与编写,我有了非常多的收获常言道,一个好的开始意味着成功的一半。在这次毕业设计的选题当中,我选择了一个自己非常感兴趣的题目,本课题研究的是基于Matlab的语音识别系统设计。在该次论文的编写上,我首先对语音识别技术做了一个基本的介绍,然后在分析语音信号的基础上,采用高斯混合模型(GMM)和MFCCC参数算法来保证语音特征识别的准确性。同时为了更直观的观测到语音识别的结果和实现算法的运行,利用MATLAB编写图形界面GUI。除此之外介绍了语音识别的各个功能模块,编写了一套基于MATLAB的语音识别程序,在编写程序中遇到了许多的困难,不断地查阅文献和请教老师同学。也介绍了程序的设计和运行。通过MATLAB强大的算法功能,能够非常准确地实现语音识别的检测。

五、 目录

目 录

第1章 绪 论 1 1.1 语音识别技术的研究背景与意义 1 1.2 文献综述 1 1.2.1 国内研究 1 1.2.2 国外研究 2 1.3 课题研究主要内容 2 1.4 课题研究方法 3 1.5 方案设计思想方法 3 第2章 高斯混合模式及语音信号的预处理 4 2.1 高斯混合模式(GMM)介绍与数学原理 4 2.2 语音信号的数字化处理 5 2.3 预加重处理 5 2.4 预滤波处理 5 第3章 提取语音信号特征参数 6 3.1 MFCC概述 6 3.2 语音信号的截取 6 3.3 分帧 7 3.4 加窗 7 3.5 快速傅里叶变换(FFT) 7 3.6 应用Mel滤波器组 7 3.7 对数运算 8 3.8 离散余弦变换(DCT) 8 3.9 动态差分参数的提取 9 第4章 MATLAB GUI与程序流程设计 10 4.1 MATLAB GUI 10 4.1.1 MATLAB GUI的背景介绍 10 4.1.2 GUI界面的设计 10 4.2 程序流程设计 13 4.2.1 创建文件 13 4.2.2 录制语音库 14 4.2.3 添加语音库 14 4.2.4 提取并训练语音库 15 4.2.5 选择识别语音 16 4.2.6 语音识别 16 4.2.7 退出 17 第5章 总结与展望 18 5.1 总结 18 5.2 展望 18 参考文献 19 致谢 20 附录 21

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。