基于MATLAB的特定人语音识别软件开发与设计 下载本文

内容发布更新时间 : 2024/7/2 2:15:45星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于MATLAB的特定人语音识别软件开发与设计

作者:蒲开放 李智慧 黄明慧 王凤鑫 王超 来源:《数字技术与应用》2017年第04期

摘要:本文介绍了基于MATLAB的特定人语音识别软件开发方法以及GUI界面设计,阐述了具体开发设计的过程。本识别方法以Mel频率倒谱系数作为特征参量,采用DTW技术进行识别,识别效果较好。本软件仍有待改进的地方,如:在有背景噪声的条件下如何提高识别率。

关键词:MATLAB;语音识别;Mel频率倒谱系数;DTW;GUI

中图分类号:TN912.34 文献标识码:A 文章编号:1007-9416(2017)04-0170-03 1 引言

语音识别主要指让机器听懂人说的话,即在各种情况下,准确的识别出语音的内容,从而根据其信息,执行人的各种意图[1]。当今,语音识别产品在人机交互应用中,已经占到越来越大的比例。语音识别系统根据对说话人的依赖程度,可以分为特定人和非特定人语音识别系统[2]。本文提出一种基于MATLAB的特定人语音识别系统,通过测试,能够达到试验要求。 2 系统功能及子模块介绍

基于MATLAB进行语音识别软件的开发与设计,识别过程分为录入语音、预处理、端点检测(即提取语音)、提取语音特征参数、与模板库中的特征参数逐一进行比较,然后选取失真测度最小的作为识别结果输出,其流程图如图1所示。 2.1 录入语音

MATLAB中录入语音可以通过wavrecord函数来录入语音。 2.2 预处理

预处理包括预加重、分帧、对语音信号加窗。

(1)预加重。预加重就是把语音信号乘以一个高通滤波器,用来对语音信号进行高频率提升,高通滤波器用一阶FIR滤波器来实现,公式为: 预加重对于语音信号有两个作用:

龙源期刊网 http://www.qikan.com.cn

①增加一个零点,用来去除声门脉冲的高频频谱下跌,使得语音信号频谱变得更加平滑,所提取的语音特征符合原始声道模型;

②由于是乘以一个高通滤波器,不但对高频提升外,还把低频部分也进行衰减,同时降低基频对共振峰的检测的干扰。

(2)分帧。由于语音信号是时变的,处理时变的信号计算非常复杂,也不容易观察到语音信号的特征。但是在很短的时间内,即10ms-30ms内,语音信号可以看成非时变的。这就用到了语音的分帧技术。如果两帧不重叠,可能有一个跳变。为了使其平稳过渡,在相邻两帧设置重叠部分。

(3)加窗。语音信号经过采样后为,实际上是无限长的,需要处理的量将会很大。但进行分帧处理过后相当于乘以一个有限长的窗函数,这样就可以很好的进行运算。加窗函数的数学表达式为:

窗函数一般具有低通特性,窗函数的不同将会有不同的带宽和频谱泄漏。在语音分析中常用到的窗函数为矩形窗,汉明窗(Hamming)和海宁窗(Hanning)。本文采用的是汉明窗。 2.3 端点检测

在说话人识别的技术中,端点检测的好坏不仅关系到计算量的大小,而且关系到识别的准确率。端点检测的方法有如下几种:短时能量法、短时过零率、短时自相关函数、双门限端点检测、能熵比端点检测。本文采用双门限检测法,该方法结合了短时过零率和短时能量法两种方法。

在开始进行端点检测前,首先为短时能量和过零率分别确定两个门限。一个是较低的门限,其数值较小,对信号的变化较敏感,很容易被超过。另一个是比较高的门限,数值较大,信号必须达到一定的强度,该门限才可能被超过。 2.4 语音特征参数提取

语音信号的特征参数提取主要是提取每个人的发音特征,个性特征。这些特征经过语音处理所表现的就是共振峰,基音频率,频谱,平均基频,说同一句子时间长短的差异。而语音信号的特征提取就是要把这些参数提取出来,在训练阶段作为模板训练,形成模板库保存起来。在识别阶段,把测试语音的特征参数提取出来,与原来形成的模板库中的数据进行比较,最后识别说话人身份。选取特征参数的好坏直接影响到以后识别的准确率,因此如何准确完整的提取语音特征参数是当今说话人识别所面临的一个难题。

在众多的特征参数方法中,经过比较最后选定MFCC(Mel倒谱系数)做为特征提取的方法。它能很好的反应每个人的听觉特性,且它与频谱的非特性关系,决定了它是一种非常适合的特征参数。

龙源期刊网 http://www.qikan.com.cn

MFCC提取语音信号特征参数的过程如图2所示。 (1)语音快速傅里叶变换。

对进行过预处理过的每一帧信号进行FFT变换,语音从时域数据变为频域数据,公式为:

(2)计算谱线能量。

利用式(5)对每一帧语音信号进行FFT傅里叶变换后的数据计算谱线的能量: (3)计算通过Mel滤波器组的能量。

通过Mel滤波组计算在该Mel滤波器中每帧谱线的能量。在频域中相当把每帧的能量谱与Mel滤波器的频域响应相乘并且相加: (4)利用式(7)计算DCT倒谱。

这样就求出了MFCC参数,即求取语音信号的特征参数的任务就完成了。 2.5 动态时间规整(DTW)

在实际生活中,语音信号具有相当大的随机性,即便是同一个人在不同时刻所讲的同一句话,发的同一个音,也不可能具有完全相同的时间长度。在进行模板匹配时,这些时间长度的变化会影响测度的估计,从而使识别率降低,因此时间规整处理就显得很有必要。DTW就是把时间规整和距离测度结合起来的一种非线性规整技术,动态时间规整就是要寻找一个时间规整函数,它将测试矢量的时间轴i非线性地映射到模板的时间轴j上,并使该函数满足 式(9)中,d[T(i),R(ω(i))]是第i帧测试矢量T(i)和第j帧模板矢量R(j)的距离测度;D则是处于最优时间规整情况下两矢量的距离。由于DTW不断地计算两矢量的距离以寻找最优的匹配路径,所以得到的两矢量匹配是累计距离最小的规整函数,这就保证了它们之间存在最大的声学相似特性[3]。 2.6 GUI界面设计

在MATLAB界面下点击新建GUI,进入到创建GUI的界面,先放入按钮,波形显示器等控件,然后加入静态文本等必要说明[4]。设计过程中的GUI如图3所示,然后保存。保存后,打开由系统自动为本图形用户界面所产生的M文件,然后在M文件中的各个子程序中加入相应的函数实体,然后运行,这样GUI界面就创建完毕。 3 实验结果