基于DTW算法的语音识别原理与实现.docx
- 文档编号:7733897
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:14
- 大小:483.93KB
基于DTW算法的语音识别原理与实现.docx
《基于DTW算法的语音识别原理与实现.docx》由会员分享,可在线阅读,更多相关《基于DTW算法的语音识别原理与实现.docx(14页珍藏版)》请在冰豆网上搜索。
基于DTW算法的语音识别原理与实现
广州大学机械与电气工程学院
数字语音信号处理
基于DTW算法的语音识别原理与实现
院系:
机电学院电子与通信工程
姓名:
张翔
学号:
2111307030
指导老师:
王态
完成日期:
2014-06-11
基于DTW算法的语音识别原理与实现
[摘要〕以一个能识别数字0〜9的语音识别系统的实現过程为例,阐述了基于DTW算法的特定人孤立词语音识别的基本原理和关镀技术。
其中包括对语音端点检测方法.特征参数计算方法和DTW算法实现的详细讨论,最后给出了在Matlab下的编程方法和实验结果.结果显示该算法可以很好的显示轻定人所报出的电话号码。
[关键字]语咅识别:
端点检測:
MFCC系数:
DTW兀法
PrincipleandReaIizationofSpeechRecognitionBasedonDTWAlgorithm
AbstractWithanexampleoftherealizationofa0~9identifiablespeechrecognitionsystem,thepaperdescribedthebasicprinciplesandkeytechnologiesofisolatedwordspeechrecognitionbasedonDTWalgorithm,includingmethodofendpointdetection,calculationofcharacteristicparameters,andimplementationofDTWalgorithm.ProgrammingmethodunderMatlabandexperimentalresultsaregivenattheendofthepaper.,andtheresultsshowthatthealgorithmcanwelldisplaythephonenumberofthepersonreponed・
Keywordspeechrecognition:
endpointdetection:
MFCCparameter:
DTWalgorithm
—'引言
自计算机诞生以来,通过语音与计算机交互一直是人类的梦想,随着计算机软硬件和信息技术的飞速发展,人们对语音识别功能的需求也更加明显和迫切。
语音识别技术就是让机器通过识别和理解过程把人类的语音信号转变为相应的文本或命令的技术,属于多维模式识别和智能计算机接口的范畴。
传统的键盘、鼠标等输入设备的存在大大妨碍了系统的小型化,而成熟的语音识别技术可以辅助甚至取代这些设备。
在PDA、智能手机、智能家电、工业现场、智能机器人等方而语音识別技术都有着广阔的前景。
语音识别技术起源于20世纪50年代,以贝尔实验室的Audry系统为标志。
先后取得了线性预测分析(LP)、动态时间归整(DTW)、矢量量化(VQ)、隐马尔可夫模型(HMM)等一系列关键技术的突破和以IBM的ViaVoice.Microsoft的VoiceExpress为代表的一批显著成果。
国内的语音识別起步较晚,1987年开始执行国家863II-划后语音识别技术才得到广泛关注。
具有代表性的研究单位为淸华大学电子工程系与中科院自动化研究所模式识别国家重点实验室,中科院声学所等。
其中中科院自动化所研制的非特左人连续语音听写系统和汉语语音人机对话系统,其准确率和系统响应率均可达90%以上。
常见的语音识别方法有动态时间归整技术(DTW)、矢量量化技术(VQ)、隐马尔可夫模型(HMM).基于段长分布的非齐次隐马尔可夫模型(DDBHMM)和人工神经元网络(ANN)。
DTW是较早的一种模式匹配和模型训练技术,它应用动态规划的思想成功解决了语音信号特征参数序列比较时时长不等的难题,在孤立词语音识别中获得了良好性能。
虽然HMM模型和ANN在连续语音大词汇量语音识别系统优于DTW,但由于DTW算法计算量较少、无需前期的长期训练,也很容易将DTW算法移植到单片机、DSP上实现语音识别且能满足实时性要求,故其在孤立词语音识别系统中仍然得到了广泛的应用。
本文将通过能识别数字0〜9的语音识别系统的实现过程详细阐述基于DTW算法的特定人孤立词识别的相关原理和关键技术。
二、语音识别系统概述
语音识别系统的典型原理框图如图所示。
从图中可以看岀语音识别系统的本质就是一种模式识别系统,它也包括特征提取、模式匹配、参考模式库等基本单元。
由于语音信号是一种典型的非平稳信号,加之呼吸气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。
预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。
经过预处理的语音数据就可以进行特征参数提取。
在训练阶段,将特征参数进行一左的处理之后,为每个词条得到一个模型,保存为模板库。
在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识別结果。
后续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输入的语音信号转变成文本或命令。
图1-1语音识别系统顶理框图
本文所描述的语音识别系统将对数字0~9共10段参考语音进行训练并建立模板库,之后将对多段测试语音进行识别测试。
系统实现了上图中的语音输入、预处理、特征提取、训练建立模板库和识別等模块,最终建立了一个比较完整的语音识别系统。
三'具体实现过程
3.1、语音信号预处理
语音信号的预处理模块一般包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。
在不同的系统中对各子模块会有不同的要求,如在嵌入式语音识别系统中一般要求有防混叠滤波电路、A/D转换电路和采样滤波电路等,而在计算机上实验时则可由音频采集卡完成,无需实验者亲自动手。
3.1.1、分帧
语音信号是一种典型的非平稳信号,它的均值函数u(x)和自相关函数R(xl,x2)都随时间而发生较大的变化。
但研究发现,语音信号在短时间内频谱特性保持平稳,即具有短时平稳特性。
因此,在实际处理时可以将语音信号分成很小的时间段(约10~30ms),称之为“帧”,作为语音信号处理的最小单位,帧与帧的非重叠部分称为帧移,而将语音信号分成若干帧的过程称为分帧。
分帧小能淸楚地描绘语音信号的时变特征但计算量大;分帧大能减少计算量但相邻帧间变化不大,容易丢失信号特征。
3.1.2、预加重
对于语音信号的频谱,通常是频率越髙幅值越小,在语音信号的频率增加两倍时,其功率谱的幅度下降6dB°因此必须对高频进行加重处理,一般是将语音信号通过一个一阶髙通滤波器1-0.9375Z1,即为预加重滤波器。
其目的是滤除低频干扰,特别是50Hz到60Hz的工频F•扰,将对语音识別更为有用的高频部分进行频谱提升。
在汁算短时能量之前将语音信号通过预加重滤波器还可起到消除直流漂移、抑制随机噪声和提升淸音部分能量的效果。
3.1.2、加窗
为了保持语音信号的短时平稳性,利用窗函数来减少由截断处理导致的Gibbs效应。
用的最多的三种为矩形窗、汉明窗(Hamming)和汉宁窗(Hanning)。
其窗函数如下,式中的N为窗长,一般等于帧长。
矩形窗:
-1(OWnVN・l)Wr=(
I0(Other)
(3-1)
汉明窗(Hamming):
Whm=r0-5-0.46cos(2nn/(N-l))
10
汉宁窗(Hanning):
(0WnVN・l)
(Other)
(3-2)
w(0.5・0.5cos(2nn/(N-l))
Whn=<
I0
(0WnVN・l)(Other)
(3-3)
窗口的选择非常重要,不同的窗口将使能量的平均结果不同。
矩形窗的谱平滑,但波形细肖丢失:
而汉明窗则刚好相反,可以有效克服泄漏现象,具有平滑的低通特性。
因此,在语音的时域处理方法中,一般选择矩形窗,而在语音的频域处理方法中,一般选择汉明窗或汉宁窗。
本系统中的端点检测采用时域方法故加矩形窗,计算MFCC系数时加汉明窗。
3.2、端点检测
在基于DTW算法的语音识别系统中,无论是训练和建立模板阶段还是在识别阶段,都先采用端点检测算法确立语音的起点和终点。
语音端点检测是指用汁算机数字处理技术从包含语音的一段信号中找出字、词的起始点及结朿点,从而只存储和处理有效语音信号。
对汉语来说,还可进一步找岀其中的声母段和韵母段所处的位宜。
语音端点检测是语音分析、合成和识别中的一个重要环节,其算法的优劣在某种程度上也直接决定了整个语音识别系统的优劣。
进行端点检测的基本参数主要有短时能量、幅度、过零率和相关函数等。
端点检测最常见的方法是短时能量短时过零率双门限端点检测,近年来在此基础上发展出的动态窗长短时双门限端点检测方法也被广泛使用。
3.2.1、短时能量
语音和噪声的主要区别在它们的能量上,语音段的能量比噪声段的大,语音段的能量是噪声段能疑叠加语音声波能量的和。
对第n帧语音信号的短时能量E,的左义为:
A'-l
m-0
Xn为原样本序列在窗函数所切取出的第n段短时语音,N为帧长。
因为在计算时使用的是信号的平方,故将&作为一个度量语音幅度值变化的函数有一个缺陷,即对高电平非常敏感。
因此在许多场合会将En用下式来代替:
JV-1
耳=工1捡(加)1(3-5)
/N-0
这样就不会因为取平方而造成信号的小取样值的大取样值岀现较大差异。
本系统中窗函数为矩形窗Wr(见式3-1),N为240。
图3-1
(1)和图3-2
(1)分别为数字0的训练语音OO.wav和数字4的训练语音40.wav的波形,图3-1(111)和图3-2(111)分别为它们的短时能量。
«(I)-OO.waVgS(3号波形
图3・1语音OO.wav的时域分析参数
3.2.2x短时过零率
短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。
对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号则称为过零。
过零率就是样本改变符号次数,立义语音信号x(m)的短时过零率Zn为:
1N-I
乙=:
72?
sgn["(〃2)]-sgn[£(〃?
-l)]l(3-6)
2
w-o
淸音的能量多集中在较髙的频率上,它的平均过零率要高于浊音,故短时过零率可
以用来区分淸音、浊音以及无声。
图3・1(11)和图3・2(11)分别为数字0的训练语音00.wav和
数字4的训练语音40.wav的短时过零率。
从图中可以看到淸音d的过零率明显髙于其后的'i'音,有声段过零率明显高于无声段,但在鼻音阶段过零率迅速滑落到无声水平而能量值则是缓慢下滑。
在实际应用时并不能通过上式直接讣算过零率,因为在无声段噪声使语音波形在0值附近来回摆动,导致计算岀的过零率和有声段的区别并不十分明显。
比较简单的解决方法是对语音信号做中心截幅处理(过门限率),设立一个差的阈值&进行如下处理。
3.2.3、双门限端点检测
双门限端点检测顾剑思义需要两级检测,即短时能量检测和短时过零率检测。
在开始检测之前需要设左3个门限,即分别为短时能量和设置一个高门限和一个低门限:
ampl、amp2和为过零率设巻门限zcr2,则整个语音端点检测分为四部分:
静音段、过度段、语音段、结朿段。
在静音段中如果能捲过了其低门限或过零率超过苴所设门限,则认为进入了过度段。
在过度段中,由于参数数值较小,还不能确泄是否真的进入语音段,只有两个参数的苴中一个超越了高门限才被认为是进入语音段。
当参数降至低门限则认为进入结朿。
此外,还有两种可能会引起端点检测的误判:
一是短时噪音引起的误判,此时则需要引入最小语音长度门限进行噪声判左,即语音段时间小于一沱数值则认左为是噪声,重新回到静音段,本系统设为15帧长:
二是语音中字与字的时间空隙引起的误判,此时需要设泄最大静音长度门限来降低识别的错误率,本系统所识别的字既包括单字,有包括一段语音,故需设巻此门限,设
置为10帧长。
在双门限端点检测中3个门限的设左至关重要,门限设定的好坏将直接影响端点检测的结果。
门限值的设置还没有一个通用可靠的方法,需要根据经验和特左环境进行调整。
本系统根据所设置静音段进行设置,取刚开始0.1s静音段为噪声估计信号,NIS为噪声段帧长,则anipl,amp2,zcr2的取值分别为:
ampth=mean(amp(l:
NIS);zcrth=mean(zcr(1:
NIS);(其中,amp,zcr为能量和过零率)ampl=4*ampth;amp2=2*ampth;zcr2=2*zcrth:
图3-3和图3-4分别是数字0的训练语音00.wav和数字4的训练语音40.wav的端点检测结果,红线之间的部分为检测出的语音有声段。
同时为了验证该端点检测系统同样对一段语•音适用,我们对一段所报电话号码的语音进行端点检测,结果如图3-5所示:
图3-5
3.3、语音识别参数提取
经过预处理的语音数据就可以进行特征参数提取,特征参数的好坏将直接影响系统的性能和效率,对特征参数的要求包括:
(1)提取的特征参数能有效地代表语音特征,具有很好的区分性:
(2)各阶参数之间有良好的独立性:
(3)特征参数要计算方便,最好有髙效的汁算方法,以保证语音识别的实时实现。
3.3.1、LPC与LPCC系数
LPC(LinearPredictionCoefficient,线性预测系数)模拟人发音器官的声管模型,是一种基于语音合成的参数模型。
在语音识别系统中很少直接使用LPC系统,而是由LPC系数推出的另一种参数LPCCaLPCC(LinearPredictionCepstrumCoefficient,线性预测倒谱系数)是LPC在倒谱域中的表示。
该特征是基于语音信号为自回归信号的假设,利用线性预测分析获得倒谱系数。
LPCC的优点是计算量小,易于实现,对元音有较好的描述能力,缺点是对辅音描述能力较差。
3.3.2、MFCC系数
LPC模型是基于发音模型建立的,LPCC系数也是一种基于合成的系数,这种参数没有充分利用人耳的听觉特性。
实际上,人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系。
近年来,一种能够比较充分利用人耳的这种特殊感知特性的系数得到了广泛应用,这就是Mel尺度倒谱系数(Mel-scaledCepstrumCoefficients,简称MFCC)。
大量研究表明,MFCC系数能够比LPCC参数更好地提高系统的识別性能。
MFCC系数的讣算是以“bark”为其频率基准的,它和线性频率的转换关系是:
fmel=25951ogI0(l+(3-9)
MFCC系数也是按帧汁算的,首先要通过FFT得到该帧信号的功率谱S(n),转换为Mcl频率下的功率谱。
这需要在计算之前先在语音的频谱范用内设置若干个带通滤波器:
7/m(n)加=0」,…,M-l;n=0,l,…,A72-1(3-10)
M为滤波器的个数,通常取24,与临界带的个数一样:
N为一帧语音信号的点数,为了计算FFT的方便,通常取256。
滤波器在频域上为简单的三角形,其中心频率庙在Mcl频率轴上是均匀分布的。
如图3-6所示为Mcl尺度滤波器组,包含24个滤波器,语音信号帧长取为256个点,语音信号的采样频率为8KHz,。
Mel-SpacedFilterbank
图3-6Me!
尺度滤波器组
带通滤波器的系数事先计算好,在计算MFCC系数是直接使用。
MFCC系数的计算过程如下:
(1)预处理:
确左每一帧语音采样序列的长度(如N=256),并对每帧序列s(n)进行预加重、分帧和加窗处理;
(2)计算离散功率谱:
对预处理的每帧进行离散FFT变换得到其频谱,再取模的平方作为离散功率谱S(n);
⑶将功率谱通过滤波器组:
计算S(n)通过何个HMn)后所得的功率值,即il•算S(n)和
Hm(n)在各离散频率点上的乘积之和,得到何个参数Pm,m=0.1,……M-1:
(4)取对数:
计算Pm的自然对数,得到Lm,m=o,l,……M-1;
(5)离散余弦变换:
对Lm讣算苴离散余弦变换,得到Dm,m=O,l,……M-1,舍去代表
直流成份的Do,取Di,6,……,Dk作为MFCC参数。
具体流程可以用框图3-7表示为:
图3-7MFCC系数计算流程图
3.4、DTW算法实现
DTW(DynamicTimeWarping,动态时间规整)是语音识别中较为经典的一种算法。
在实现小词汇表孤立词识别系统时,其识别率及英它指标与HMM算法实现几乎等同。
又由于HM1V1算法复杂,在训练阶段需要提供大量的语音数据通过反复计算才能得到模型参数,而DTW算法本身既简单又有效,因此在特左的场合下获得了广泛的应用。
3.4.1、匹配模式
模板匹配方法的语音识别算法需要解决的一个关键问题是说话人对同一个词的两次发音不可能完全相同,这些差异不仅包括音强的大小、频谱的偏移,更重要的是发音时音节的长短不可能完全相同,而且两次发音的音节往往不存在线性对应关系。
设参考模板有M帧矢量{R⑴,R⑵,-R(m),…,R(M)},R(m)为第m帧的语音特征矢量,测试模板有N帧矢量{T(l),T
(2),…T(n),…,T(N)},T(n)是第n帧的语音特征矢量。
d(T(in),R(im))表示T中第in帧特征与R中im帧特征之间的距离,通常用欧几里徳距离表示。
直接匹配是假设测试模板和参考模板长度相等,即in=im:
线性时间规整技术假设说话速度是按不同说话单元
N
的发音长度等比例分布的,即=—/;„。
显然,这两种假设都不符合实际语音的发音情况,
我们需要一种更加符合实际情况的非线性时间规整技术。
如图3-8所示为三种匹配模式对同一词两次发音的匹配距离(两条曲线间的阴彫面积),显然D3 图3-8三种匹配模式对比 342、DTW算法原理 DTW是把时间规整和距离测度计算结合起来的一种非线性规整技术,它寻找一个规整函数im=G(in),将测试矢量的时间轴n非线性地映射到参考模板的时间轴mh,并使该函数满足: N d=&①('“)))(3-H) 輕爲): ”=1 D就是处于最优时间规整情况下两矢疑的距离。 由于DTW不断地汁算两矢量的距离以寻找最优的匹配路径,所以得到的是两矢量匹配时累积距离最小所对应的规整函数,这就保证了它们之间存在的最大声学相似性。 DTW算法的实质就是运用动态规划的思想,利用局部最佳化的处理来自动寻找一条路径,沿着这条路径,两个特征矢量之间的累积失真量最小,从而避免由于时长不同而可能引入的误差 DTW算法要求参考模板与测试模板采用相同类型的特征矢量、相同的帧长、相同的窗函数和相同的帧移。 为了使动态路径搜索问题变得有实际意义,在规整函数上必须要加一些限制,不加限制使用式(3-11)找出的最优路径很可能使两个根本不同的模式之间的相似性很大,从而使模式比较变得亳无意义。 通常规整函数必须满足如下的约束条件: (1)边界限制: 当待比较的语音已经进行精确的端点检测,在这种情况下,规整发生在 起点帧和端点帧之间,反映在规整函数上就是: 严 (1)=1 (53-12) (2)单调性限制由于语音在时间上的顺序性,规整函数必须保证匹配路径不违背语音信号各部分的时间顺序。 即规整函数必须满足单调性限制: ①(7„+1)>①(山)(3-12) (3)连续性限制有些特殊的音素有时会对正确的识别起到很大的帮助,某个音素的差异很可能就是区分不同的发声单元的依据,为了保证信息损失最小,规整函数一般规左不允许跳过任何一点。 即: DTW算法的原理图如图3-9,把测试模板的各个帧号n=l~N在一个二维直角坐标系中的横轴上标出,把参考模板的各帧m=l~M在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网格,网格中的每一个交叉点(ti,r))表示测试模式中某一帧与训练 T 图3-10局部约束路径 图3-9DTW算法原理图 模式中某一帧的交汇。 DTW算法分两步进行,一是计算两个模式各帧之间的距离,即求出帧匹配距离矩阵,二是在帧匹配距离矩阵中找出一条最佳路径。 搜索这条路径的过程可以描述如下: 搜索从(1,1)点岀发,对于局部路径约束如图3-10,点山,订)可达到的前一个格点只可能是dm)、(in-l,imJ)和(in-l,im-2)。 那么(站)一定选择这三个距离中的最小者所对应的点作为英前续格点,这时此路径的累积距离为: D(inJm)=d(T(in).R(im))+min{D(in-14mXD(in-1M1),D(订14m-2)}(3-14) 这样从(LI)点出发(令D(l,1)=0)搜索,反复递推,直到(N.M)就可以得到最优路径,而且D(N.M)就是最佳匹配路径所对应的匹配距离。 在进行语音识别时,将测试模板与所有参考模板进行匹配,得到的最小匹配距离Dmm(N.M)所对应语音即为识别结果。 四、结果分析 我们首先对单个数字进行语音信号分析,特左人进行录音(也就是训练的那个人),简单进行四次实验,结果如表格牛1所示。 数字 0 1 2 3 4 5 6 7 8 9 0-9 正确数 4 2 4 4 3 4 3 3 4 2 33 错误数 0 2 0 0 1 0 1 1 0 2 7 正确率 1.00 0.50 1.00 1.00 0.75 1.00 0.75 0.75 1.00 0.50 0.825 表牛1(特左人语音识别) 我们对非特左人(随机选择四个人)进行录音,结果表格4・2所示。 数字 0 1 2 3 4 5 6 7 8 9 0-9 正确数 2 1 1 4 2 3 3 2 4 2 24 错误数 2 3 3 0 9 1 1 2 0 2 16 正确率 0.50 0.25 0.25 1.00 0.50 0.75 0.75 0.50 1.00 0.50 0.60 表4・2 对于特泄人所报电话号码进行识别,端点检测与所测结果分析如图4・1和表牛3所示。 图4」 数字 1 8 8 2 5 0 5 8 1 0 6 tel 正确数 3 4 4 4 4 4 3 4 9 ** 4 4 40 错误数 1 0 0 0 0 0 1 0 9 ** 0 0 4 正确率 0.75 1.00 1.00 1.00 1.00 1.00 0.75 1.00 0.50 1.00 1.00 0.91 表4・3 验结果表示该算法,对于特泄人语音识别来说,真确率可髙达80%以上,但对于非特定人来说,识別率过低。 我们需要通过对要测试的人进行训练,让他
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DTW 算法 语音 识别 原理 实现