APP下载

基于DTW改进算法的孤立词语音识别仿真

2013-06-28曲金玉李东荣

关键词:端点语音模板

刘 静,王 儒,曲金玉,李东荣

(山东理工大学交通与车辆工程学院山东淄博255091)

基于DTW改进算法的孤立词语音识别仿真

刘 静,王 儒,曲金玉,李东荣

(山东理工大学交通与车辆工程学院山东淄博255091)

为提高识别率和识别效率,采用双门限过零率和短时能量作为端点检测的依据,提取Mel频率倒谱系数作为语音特征参数,并使用DTW算法进行模式匹配.由于传统DTW算法计算量大,所以采用局部路径约束和区域约束进行改进,并用Matlab对改进后的DTW算法进行了仿真.实验证明该算法对孤立词语音识别能够达到较好的识别结果.

孤立词;语音识别;Matlab;DTW

语音识别研究开始于20世纪50年代,贝尔实验室的Davis等人研制了特定说话人孤立数字识别系统[1].20世纪60年代末,RAC实验室的Martin等人开始研究语音信号时间尺度不统一的解决办法,开发了一系列的时间规正方法,明显地改变了识别性能[2].1972年,Sakoe提出了DTW算法,DTW是把时间归正和距离测度计算结合起来的一种非线性归正技术,也是语音识别中一种很成功的匹配算法,掀起了语音识别研究的热潮[3].

孤立词语音识别是语音识别的一个重要研究领域,不仅比连续语音识别灵活性好,而且具有很高的应用价值[4],主要应用于自动控制,如驾驶、机器人操纵、仪器设备操纵及收集拨号、智能玩具、家用电器操纵,尤其当人手已被占用或无法使用的情况下,进行声音控制可以起到不可替代的作用.

1 系统设计

本系统基于Matlab软件,系统主要功能有语音信号的采样及量化、预处理、端点检测、特征提取、训练和识别,系统的开发流程如图1所示.

1.1 采样及量化

Matlab软件运用wavrecord函数可进行语音录制,应用wavread函数读取录制好的wav语音文件,采样频率为8k Hz.为了处理方便,先将信号进行幅度归一化处理,运用命令x=x/max(abs(x))便可实现.

图1 语音识别系统流程图

1.2 预处理

1)预加重

经过采样和量化过程后,还要对语音信号进行预加重[2].预加重用具有6dB/倍频程提升高频特性的预加重数字滤波器实现,其计算公式为

式中,u=0.95,预加重后的信号在分析处理之前要进行去加重处理,即加上―6dB/倍频程下降的频率特性来还原成原来的特性.数字“6”预加重后的波形如图2所示.

图2 数字“6”预加重后的波形

2)加窗分帧

为了得到短时的语音信号,要对语音信号进行加窗操作.本系统采用可以有效克服泄漏现象的汉明窗,汉明窗公式为

数字“6”加窗分帧后的波形如图3所示.

图3 数字“6”加窗分帧后的波形

1.3 端点检测

语音的端点检测就是确定语音的起点和终点,从语音信号中排除无声段[5],常用的检测参数有短时能量和短时过零率等[6].本文采用双门限端点检测算法,利用短时能量来检测浊音,利用短时过零率来检测清音,两者配合以实现可靠的端点检测.

1)短时能量分析

由于短时能量是对信号进行平方运算,人为增加了高低信号之间的差距,因此采用短时平均幅度来表示能量的变化[7].短时能量的计算公式为

3)检测语音起点和终点

用短时平均过零率区分无声和清音在有些情况下不是很可靠[8],本文采用双门限端点检测法,将门限提高一些,这对于清音的影响不大,而在无背景噪声的情况下,无声段将不会穿越这一提高的电平,因此可以正确区分清音段和无声段.

首先根据浊音情况下的短时平均幅度参数的概率密度函数P(M|V)确定一个阈值参数MH,MH= min(M1,max(M)/4).根据MH可判定输入语音的前后两个点A1和A2,但语音的精确起点还要在A1之前和A2之后仔细查找.再设定一个较低的阈值参数ML,由A1点向前找,当短时平均幅度由大到小减至ML时,可以确定B1点.类似地,可以确定B2点.在A2和B2之间仍能肯定是语音段.数字“6”的端点检测结果如图4所示.

图4 端点检测结果

1.4 特征提取

特征提取是语音识别的一个重要步骤,本系统采用Mel频率倒谱系数(MFCC,Mel-Frequency Cepstral Coefficients)进行特征提取.Mel频率表示公式为

Mel滤波器组如图5所示,MFCC倒谱系数的计算过程如图6所示.

图5 Mel滤波器组

图6 MFCC倒谱系数的计算流程图

先将信号进行预加重和汉明窗处理,然后进行短时傅里叶变换得到其频谱.求出频谱平方,即能量谱,再用24个带通滤波器进行滤波,得到功率谱.将每个滤波器的输出取对数并进行反离散余弦变换,得到15个MFCC系数,MFCC系数计算公式为

用公式(7)求一阶和二阶差分参数,得到相应的动态特征.

1.5 模板匹配

在孤立词语音识别中,最为简单有效的方法是采用DTW算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法[9].

假设参考模板的特征矢量序列为

输入语音特征矢量序列为

DTW算法就是要寻找一个最佳的时间归正函数,使待测语音的时间轴j非线性地映射到参考模板的时间轴i上,使总的累计失真量最小.

设时间归正函数为

式中,N为路径长度,c(n)表示第n个匹配点对是由参考模板的第i(n)个特征矢量与待测模板的第j(n)个特征矢量构成的匹配点对.两者之间的距离称为局部匹配距离.DTW算法就是通过局部最优化的方法实现加权距离总和最小,即

为了提高识别速度,给时间规正函数如图7(a)所示的局部路径约束和如图7(b)所示的平行四边形区域约束Reg.平行四边形有两个位于(1,1)和(N,M)的顶点,相邻两条边的斜率分别为2和1/2.

求累计距离的递推公式为

图7 局部路径约束和区域约束

对于图7(a)所示的局部路径,一般取距离加权值为Wn(1)=Wn(3)=1,Wn(2)=2.

2 Matlab仿真实验结果

程序运行后,首先读入wav文件,用vad函数对其进行端点检测,用mfcc函数获得其MFCC参数,并保存语音部分的MFCC参数到参考模板的结构数组ref(i).mfcc中或测试模板的结构数组test (i).mfcc中.

在模板匹配阶段,计算所有测试模板和参考模板之间的距离,保存到矩阵中,将最后的匹配分数用min函数找到最小值对应的模板.

表1为测试语音与标准模板库之间的匹配矩阵,图中行表示数字“1~10”的标准模板库,列表示数字“1~10”的测试语音.语音样本“1~10”均和模板库中的模板“1~10”有最小的距离,因此具有较好的相似性,即都取得了较好的识别效果.

表1 测试语音与标准模板库之间的匹配矩阵

3 结束语

本文在Matlab编程上实现了简单词的语音识别.DTW算法较HMM算法运算量小,在孤立词小词汇量的语音识别系统有着较为广泛的应用.实验结果证明,通过提高端点检测结果的准确率和运用改进的DTW算法,系统取得了较好的识别效果.后续可以通过完善语音数据库来提高模板搜寻匹配的效率和可靠性,通过改进语音识别算法来提高识别的精度和准确性.

[1]韩纪庆,张磊,郑铁然.语音信号处理[M].北京:清华大学出版社,2004.

[2]杨曦,苏娟,彭勇群.孤立词语音识别系统的MATLAB实现[J].微计算机信息,2007,23(3-1):288-290.

[3]吴黎明,王桂堂,吴正光.语音信号及单片机处理[M].北京:科学出版社,2007.

[4]彭辉,魏玮,陆建华.特定人孤立词的语音识别系统研究[J].控制工程,2011,5(3):397-400.

[5]朱蕊楠.车载蓝牙语音控制系统的语音识别算法研究与设计[D].长春:吉林大学,2011.

[6]江官星,王建英.一种改进的检测语音端点的方法[J].微计算机信息,2006,22(5-1):138-139.

[7]刘志伟,卢文科.孤立词的语音识别[J].微计算机信息,2011,27 (6):181-182.

[8]刘长明,任一峰,语音识别中DTW特征匹配的改进算法研究[J].中北大学学报:自然科学版,2007,27(1):37-40.

[9]肖春华,黄樟钦,侯义斌,等.基于孤立词语音识别系统的DTW硬件实现[J],微计算机信息,2010,26(11-2):114-117.

(编辑:郝秀清)

Design of isolated words speech recognition system based on improved DTW algorithm

LIU Jing,WANG Ru,QU Jin-yu,LI Dong-rong
(School of Traffic and Vehicle Engineering,Shandong University of Technology,Zibo 255091,China)

To improve recognizing rate and recognizing efficiency,double-threshold zero-crossing rate is adopted in the endpoint detection,Mel-Frequency Cepstral Coefficients is obtained as speech characteristic parameters,and DTW algorithm is used for matching of the model.For the large amount of data in the matching process,DTW algorithm is improved by using local constraints and global constraints and it was simulated by Matlab.The experiment shows that this algorithm can achieved good results in isolated word speech recognition.

isolated word;speech recognition;Matlab;DTW

1672―6197(2013)01―0063―04

TP391.42

A

2012- 12- 27

刘静,女,15064360598@126.com;通信作者:曲金玉,男,qujinyu@sina.com

猜你喜欢

端点语音模板
铝模板在高层建筑施工中的应用
铝模板在高层建筑施工中的应用
非特征端点条件下PM函数的迭代根
不等式求解过程中端点的确定
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
参数型Marcinkiewicz积分算子及其交换子的加权端点估计
基丁能虽匹配延拓法LMD端点效应处理