基于DTW算法的语音识别原理与实现
- 格式:doc
- 大小:325.23 KB
- 文档页数:15
编程实现语音处理中的DTW算法在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。
用于孤立词识别,DTW算法与HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模型参数,而DTW算法的训练中几乎不需要额外的计算。
所以在孤立词语音识别中,DTW算法仍然得到广泛的应用。
无论在训练和建立模板阶段还是在识别阶段,都先采用端点算法确定语音的起点和终点。
已存入模板库的各个词条称为参考模板,一个参考模板可表示为R={R(1),R(2),……,R(m),……,R(M)},m为训练语音帧的时序标号,m=1为起点语音帧,m=M为终点语音帧,因此M为该模板所包含的语音帧总数,R (m)为第m帧的语音特征矢量。
所要识别的一个输入词条语音称为测试模板,可表示为T={T(1),T(2),……,T(n),……,T(N)},n为测试语音帧的时序标号,n=1为起点语音帧,n=N为终点语音帧,因此N为该模板所包含的语音帧总数,T(n)为第n帧的语音特征矢量。
参考模板与测试模板一般采用相同类型的特征矢量(如MFCC,LPC系数)、相同的帧长、相同的窗函数和相同的帧移。
假设测试和参考模板分别用T和R表示,为了比较它们之间的相似度,可以计算它们之间的距离 D[T,R],距离越小则相似度越高。
为了计算这一失真距离,应从T和R中各个对应帧之间的距离算起。
设n和m分别是T和R中任意选择的帧号,d[T(n),R(m)]表示这两帧特征矢量之间的距离。
距离函数取决于实际采用的距离度量,在DTW算法中通常采用欧氏距离。
若N=M则可以直接计算,否则要考虑将T(n)和R(m)对齐。
对齐可以采用线性扩张的方法,如果N<M可以将T线性映射为一个M帧的序列,再计算它与{R(1),R(2),……,R(M)}之间的距离。
华南理工大学《语音信号处理》实验报告实验名称:DTW算法实现及语音模板匹配姓名:学号:班级:11级电信7班日期:2014年5 月一、实验目的利用DTW(Dynamic Time Warping,动态时间规整)算法,进行说话者的语音识别。
二、实验原理1、语音识别系统概述一个完整特定人语音识别系统的方案框图如图1所示。
输入的模拟语音信号首先要进行预处理,包括预滤波、采样和量化、加窗、端点检测、预加重等,然后是参数特征量的提取。
提取的特征参数满足如下要求:(1)特征参数能有效地代表语音特征,具有很好的区分性;(2)参数间有良好的独立性;(3)特征参数要计算方便,要考虑到语音识别的实时实现。
图1 语音识别系统方案框图语音识别的过程可以被看作模式匹配的过程,模式匹配是指根据一定的准则,使未知模式与模型库中的某一个模型获得最佳匹配的过程。
模式匹配中需要用到的参考模板通过模板训练获得。
在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。
在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。
2、语音信号的处理1、语音识别的DTW算法本设计中,采用DTW算法,该算法基于动态规划(DP)的思想解决了发音长短不一的模板匹配问题,在训练和建立模板以及识别阶段,都先采用端点检测算法确定语音的起点和终点。
在本设计当中,我们建立的参考模板,m为训练语音帧的时序标号,M为该模板所包含的语音帧总数,R(m)为第m帧的语音特征矢量。
所要识别的输入词条语音称为测试模板,n为测试语音帧的时序标号,N为该模板所包含的语音帧总数,T(n)为第n帧的语音特征矢量。
参考模板和测试模板一般都采用相同类型的特征矢量(如LPCC系数)、相同的帧长、相同的窗函数和相同的帧移。
通常,规整函数被限制在一个平行四边形的网格内,如图2所示。
它的一条边斜率为2,另一条边斜率为1/2。
基于DTW和HMM的语音识别算法仿真及软件设计的开题报告一、研究背景与意义随着信息技术的不断发展,语音识别技术逐步成熟,逐渐应用到语音唤醒、人机交互、语音翻译、语音控制等各种领域。
目前,基于概率模型的语音识别技术已经占据主流,其中,基于DTW和HMM的语音识别算法是最为广泛应用的方法之一。
DTW是一种基于动态规划的模式匹配算法,其主要用于处理两个时间序列模式之间的相似性匹配问题。
而HMM则是一种统计模型,主要用于处理隐含在观测序列中的状态序列,其在语音识别中也有广泛的应用。
本研究旨在基于DTW和HMM算法,开发一种语音识别仿真系统,通过实现该系统,熟悉DTW和HMM算法的原理及应用,提高各种语音信号处理技术的算法实现水平,并为相关领域的研究提供支持。
二、研究内容与方案1.研究内容(1)DTW算法的原理及应用(2)HMM算法的原理及应用(3)基于DTW和HMM的语音识别算法(4)搭建语音识别仿真系统(5)语音信号传输与处理实现2.方案(1)理论研究通过查阅文献,了解DTW算法和HMM算法的原理及其在语音识别中的应用,熟悉相关基本概念和算法流程。
(2)算法设计基于理论研究的基础,设计基于DTW和HMM的语音识别算法,包括算法流程、数学模型及程序实现等。
(3)软件开发使用MATLAB等工具,搭建语音识别仿真系统,实现语音信号的生成、传输和处理等功能。
(4)实验验证通过模拟实验和实际语音识别测试,验证基于DTW和HMM的语音识别算法在不同情景下的稳定性和准确性,并对系统进行优化和改进。
三、预期成果(1)基于DTW和HMM算法的语音识别程序和仿真系统。
(2)语音识别测试数据和结果统计分析报告。
(3)相关算法的理论和应用研究论文。
四、研究进展目前,已经完成了阶段性的理论研究和算法设计工作,并搭建了部分语音识别仿真系统。
下一步,将继续完善语音信号传输和处理部分,进行实验验证和优化。
预计两个月内完成本研究任务。
基于DTW 算法的语音识别系统实现吴晓平,崔光照,路 康(郑州轻工业学院信息与控制工程系,河南省郑州市450002)【摘 要】 动态时间归整(DTW )算法的实现简单有效,在孤立词语音识别系统中得到了广泛的应用。
介绍了将DTW 算法移植到TMS320VC5402上实现孤立词语音识别的原理、系统硬件组成和软件设计。
研究结果表明,系统能满足实时性能要求,识别效果良好。
关键词:动态时间归整(DTW )算法,语音识别,线性预测,端点检测中图分类号:TN912.34收稿日期:2004-03-240 引 言动态时间归整(DTW )算法是把时间归整和间距测量计算结合起来的一种非线性归整技术,与隐式马尔可夫模型(H MM )算法相比,它不是一种有效的利用统计方法进行训练的算法,同时,也不容易将底层和顶层的各种知识用到识别算法中,在解决大词汇量、连续语音、非特定发音人语音识别系统时,识别效果较差,但在孤立词语音识别系统中识别效果良好,并且,由于DTW 算法计算量较少。
因此,DTW 算法在孤立词语音识别系统中得到了较为广泛的应用。
将DTW 算法移植到TMS320VC5402上实现语音识别,能满足实时性要求。
1 识别系统基本原理图1是实时语音识别系统的结构框图。
图1 语音识别系统原理框图语音信号的数字化包括预滤波和A /D 采样。
语音信号的频率一般介于100Hz ~3400H z 之间,需设计一个带通滤波器以便滤去语音信号频率以外的干扰。
语音信号经滤波和采样后,由A /D 转换器转换为二进制数字码。
语音信号的预处理一般包括预加重、加窗和分帧处理。
预加重的目的是提升高频部分,使信号的频谱变得平坦,以保持在信号的整个频带内具有同样的信噪比,便于声道参数分析。
在语音信号的数字处理中常用的是矩形窗和汉明窗等,窗口的形状、长度对短时分析参数的影响很大,为此,应选择合适的窗函数。
语音信号有10ms ~30ms 的短时平稳性,一般每秒的帧数为33帧~100帧。
基于DTW 的话者识别系统的实现余良俊(中国地质大学江城学院,湖北武汉430200)摘要:首先,采用传统的DTW (Dynamic Time Warping ,动态时间弯折)算法,计算积累距离矩阵,求得最佳匹配路径所对应的匹配距离;然后,将最后的匹配分数用min 函数找到最小值对应的模板;最后,返回对应的模板代码。
在此基础上,还探讨并提出了进一步提高识别率的方法和提高系统效率的高效算法,即放宽端点的DTW 算法,并进行了一定量的实验。
使识别效果达到更好。
关键词:话者识别;端点检测;DTW 中图分类号:TP391.42文献标识码:A文章编号:1672-7800(2010)05-0098-031话者识别系统的基本原理无论是哪一种说话人识别,本质上都是一种模式识别的问题,基本原理都一样,说话人识别主要包括两个阶段,即训练阶段和识别阶段。
为了有效的进行话者识别,包含以下几个基本步骤:①语音信号的预处理和特征提取;②说话人模型的建立和模型参数的训练;③测试音与说话人模型的匹配距离计算;④识别或者判决策略。
语音识别系统的典型方案如图1所示:图1语音识别系统方案2具体实现步骤2.1语音信号的预处理语音信号的预处理是指对语音信号的特殊处理,这个过程是在对语音信号进行数字化之后,特征提取前进行的。
语音信号经麦克风转换为电信号后加在识别系统的输入端,它首先要经过预处理。
它包括预滤波、采样和量化、加窗、端点检测、预加重等阶段。
2.1.1语音信号的产生为了将原始模拟语音信号变为数字信号,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。
根据采样定理,当采样频率大于信号的两倍带宽时,采样过程不会丢失信息,利用理想滤波器可从采样信号中不失真地重构原始信号波形。
语音信号是随时间而变的一维信号,它所占据的频率范围可达l0kHz 以上,但是对语音清晰度和可懂度有明显影响的成分,最高频率约为5.7kHz 。
在将语音信号进行数字化前,必须先进行防混叠滤波,滤除高于1/2采样率的信号成分或噪声。
广州大学机械与电气工程学院数字语音信号处理基于DTW算法的语音识别原理与实现院系: 机电学院电子与通信工程姓名: 张翔学号: 2111307030 指导老师: 王杰完成日期: 2014-06-11基于DTW算法的语音识别原理与实现[摘要]以一个能识别数字0~9的语音识别系统的实现过程为例,阐述了基于DTW算法的特定人孤立词语音识别的基本原理和关键技术。
其中包括对语音端点检测方法、特征参数计算方法和DTW算法实现的详细讨论,最后给出了在Matlab下的编程方法和实验结果,结果显示该算法可以很好的显示特定人所报出的电话号码。
[关键字]语音识别;端点检测;MFCC系数;DTW算法Principle and Realization of Speech Recognition Based on DTW AlgorithmAbstract With an example of the realization of a 0~9 identifiable speech recognition system, the paper described the basic principles and key technologies of isolated word speech recognition based on DTW algorithm, including method of endpoint detection, calculation of characteristic parameters, and implementation of DTW algorithm. Programming method under Matlab and experimental results are given at the end of the paper.,and the results show that the algorithm can well display the phone number of the person reported.Keyword speech recognition; endpoint detection; MFCC parameter; DTW algorithm一、引言自计算机诞生以来,通过语音与计算机交互一直是人类的梦想,随着计算机软硬件和信息技术的飞速发展,人们对语音识别功能的需求也更加明显和迫切。
语音识别技术就是让机器通过识别和理解过程把人类的语音信号转变为相应的文本或命令的技术,属于多维模式识别和智能计算机接口的范畴。
传统的键盘、鼠标等输入设备的存在大大妨碍了系统的小型化,而成熟的语音识别技术可以辅助甚至取代这些设备。
在PDA、智能手机、智能家电、工业现场、智能机器人等方面语音识别技术都有着广阔的前景。
语音识别技术起源于20世纪50年代,以贝尔实验室的Audry系统为标志。
先后取得了线性预测分析(LP)、动态时间归整(DTW)、矢量量化(VQ)、隐马尔可夫模型(HMM)等一系列关键技术的突破和以IBM的ViaVoice、Microsoft的V oiceExpress为代表的一批显著成果。
国内的语音识别起步较晚,1987年开始执行国家863计划后语音识别技术才得到广泛关注。
具有代表性的研究单位为清华大学电子工程系与中科院自动化研究所模式识别国家重点实验室,中科院声学所等。
其中中科院自动化所研制的非特定人连续语音听写系统和汉语语音人机对话系统,其准确率和系统响应率均可达90%以上。
常见的语音识别方法有动态时间归整技术(DTW)、矢量量化技术(VQ)、隐马尔可夫模型(HMM)、基于段长分布的非齐次隐马尔可夫模型(DDBHMM)和人工神经元网络(ANN)。
DTW是较早的一种模式匹配和模型训练技术,它应用动态规划的思想成功解决了语音信号特征参数序列比较时时长不等的难题,在孤立词语音识别中获得了良好性能。
虽然HMM模型和ANN在连续语音大词汇量语音识别系统优于DTW,但由于DTW算法计算量较少、无需前期的长期训练,也很容易将DTW算法移植到单片机、DSP上实现语音识别且能满足实时性要求,故其在孤立词语音识别系统中仍然得到了广泛的应用。
本文将通过能识别数字0~9的语音识别系统的实现过程详细阐述基于DTW算法的特定人孤立词识别的相关原理和关键技术。
二、语音识别系统概述语音识别系统的典型原理框图如图1-1所示。
从图中可以看出语音识别系统的本质就是一种模式识别系统,它也包括特征提取、模式匹配、参考模式库等基本单元。
由于语音信号是一种典型的非平稳信号,加之呼吸气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。
预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。
经过预处理的语音数据就可以进行特征参数提取。
在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。
在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。
后续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输入的语音信号转变成文本或命令。
图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.9375z-1,即为预加重滤波器。
其目的是滤除低频干扰,特别是50Hz到60Hz的工频干扰,将对语音识别更为有用的高频部分进行频谱提升。
在计算短时能量之前将语音信号通过预加重滤波器还可起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。
3.1.2、加窗为了保持语音信号的短时平稳性,利用窗函数来减少由截断处理导致的Gibbs效应。
用的最多的三种为矩形窗、汉明窗(Hamming)和汉宁窗(Hanning)。
其窗函数如下,式中的N为窗长,一般等于帧长。
窗口的选择非常重要,不同的窗口将使能量的平均结果不同。
矩形窗的谱平滑,但波形细节丢失;而汉明窗则刚好相反,可以有效克服泄漏现象,具有平滑的低通特性。
因此,在语音的时域处理方法中,一般选择矩形窗,而在语音的频域处理方法中,一般选择汉明窗或汉宁窗。
本系统中的端点检测采用时域方法故加矩形窗,计算MFCC 系数时加汉明窗。
3.2、端点检测在基于DTW 算法的语音识别系统中,无论是训练和建立模板阶段还是在识别阶段,都先采用端点检测算法确定语音的起点和终点。
语音端点检测是指用计算机数字处理技术从包含语音的一段信号中找出字、词的起始点及结束点,从而只存储和处理有效语音信号。
对汉语来说,还可进一步找出其中的声母段和韵母段所处的位置。
语音端点检测是语音分析、合成和识别中的一个重要环节,其算法的优劣在某种程度上也直接决定了整个语音识别系统的优劣。
进行端点检测的基本参数主要有短时能量、幅度、过零率和相关函数等。
端点检测最常见的方法是短时能量短时过零率双门限端点检测,近年来在此基础上发展出的动态窗长短时双门限端点检测方法也被广泛使用。
3.2.1、短时能量语音和噪声的主要区别在它们的能量上,语音段的能量比噪声段的大,语音段的能量是噪声段能量叠加语音声波能量的和。
对第n 帧语音信号的短时能量E n 的定义为:∑-==102)(N m n n m x E (3-4)x n 为原样本序列在窗函数所切取出的第n 段短时语音,N 为帧长。
因为在计算时使用的是信号的平方,故将E n 作为一个度量语音幅度值变化的函数有一个缺陷,即对高电平非常敏感。
矩形窗:汉明窗(Hamming):汉宁窗(Hanning): W R = 1 (0≤n <N-1) 0 (Other)W HM = 0.5-0.46cos(2πn/(N-1)) (0≤n <N-1) 0 (Other) W HN = 0.5-0.5cos(2πn/(N-1)) (0≤n <N-1) { {{ 0 (Other)(3-1) (3-2)(3-3)因此在许多场合会将E n 用下式来代替:|)(|10∑-==N m n n m x E (3-5)这样就不会因为取平方而造成信号的小取样值的大取样值出现较大差异。
本系统中窗函数为矩形窗W R (见式3-1),N 为240。
图3-1(I)和图3-2(I)分别为数字0的训练语音00.wav 和数字4的训练语音40.wav 的波形,图3-1(III)和图3-2(III)分别为它们的短时能量。
(I) “00.wav”语音信号波形Time:sA m p l i t u d e (n o r m a l i z e d )(II) 短时过零率FrameZ c r(III) 短时能量Frame E n e r g y图3-1 语音00.wav 的时域分析参数(I) “40.wav”语音信号波形Time:sA m p l i t u d e (n o r m a l i z e d)(II) 短时过零率FrameZ cr(III) 短时能量Frame E n e r g y图3-2 语音40.wav 的时域分析参数3.2.2、短时过零率短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。
对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号则称为过零。
过零率就是样本改变符号次数,定义语音信号x(m)的短时过零率Zn 为:∑-=--=1|)]1(sgn[)](sgn[|21N m n n n m x m x Z (3-6) (3-7)清音的能量多集中在较高的频率上,它的平均过零率要高于浊音,故短时过零率可 以用来区分清音、浊音以及无声。