dtw算法语音识别

dtw算法语音识别

ID:28970737

大小:162.22 KB

页数:4页

时间:2018-12-15

dtw算法语音识别_第1页
dtw算法语音识别_第2页
dtw算法语音识别_第3页
dtw算法语音识别_第4页
资源描述:

《dtw算法语音识别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案 DTW算法(语音识别)DTW主要是应用在孤立词识别的算法,用来识别一些特定的指令比较好用,这个算法是基于DP(动态规划)的算法基础上发展而来的。这里介绍语音识别就先介绍下语音识别的框架,首先我们要有一个比对的模版声音,然后需要去截取其里面包含真正属于语音的部分,这个要采用一个叫做vad(voiceactivedetection)语音活动检测的算法,而在vad中间我们最常使用双门限端点检测这种方法,如图所示,我们采用vad判断语音的开始和结束,判断方法就是通过音量的大小做一个阈值判定,在时域上很简单就能判定。图.speech(语音信号),En

2、ergy(短时能量),zcr(短时过零率值)然后需要寻找一个特征矢量,在语音识别中很多采用MFCC,也就是梅尔倒谱这个参数作为特征矢量。一般的谱分析我们都是采用频谱,或者小波这样与频谱的区别只是不同量度,这些都是解决加性噪声的滤波问题,而还存在倒谱,阶次谱这样是为了特定的需求所构建的另外的谱方法,这些是在NI的探讨会上次说的。倒谱是一种为了滤除乘性噪声的谱方法,简单的说就是对功率谱求log,再反傅里叶变换,公式如 ,这种方法用来做信号分离很有用,下面综合下matlab分析下DTW语音识别。  fname=sprintf('%da.wav',i);   x

3、=fname;   [x,fs]=wavread(x);   [x1x2]=vad(x);   m=mfcc(x);m=m(x1-2:x2-2,:);精彩文档实用标准文案ref(i).mfcc=m;首先这里是读取一段语音,通过wavread,然后通过vad函数获取语音的开始于结束部分,这里很多函数都是调用语音应用库voicebox的,获取x1,x2就是语音的两端时候,先对语音信号整体计算mfcc梅尔倒谱,然后截取其中语音部分的作为其函数值。    fname=sprintf('%db.wav',i);   x=fname;   [x,fs]=wavrea

4、d(x);      [x1x2]=vad(x);   m=mfcc(x);   m=m(x1-2:x2-2,:);   test(i).mfcc=m;然后以同样的方法计算需要识别的语音文件其语音段的梅尔倒谱系数,然后对模版与识别文件进行“比对”,这里的比对方法就是DTW算法,我们经常把整个语音识别算法叫做DTW语音识别,但实际上,DTW主要是应用在比对两个梅尔倒谱的比对上,而且这也是一种基于距离的比对,也可以认为是一种基于有导师学习的聚类方法。不过在讲比对之前我们需要讲下匹配,之前图像匹配我们是采用谱分析的方法,而这里属于一维信号的匹配,故解释下相关模

5、板匹配方法。语音识别的匹配需要解决的一个关键问题是说话人对同一个词的两次发音不可能完全相同,这些差异不仅包括音强的大小、频谱的偏移,更重要的是发音时音节的长短不可能完全相同,而且两次发音的音节往往不存在线性对应关系。设参考模板有M帧矢量{R(1),R(2),…R(m),…,R(M)},R(m)为第m帧的语音特征矢量,测试模板有N帧矢量{T(1),T(2),…T(n),…,T(N)},T(n)是第n帧的语音特征矢量。d(T(in),R(im))表示T中第in帧特征与R中im帧特征之间的欧几里得距离。直接匹配是假设测试模板和参考模板长度相等,即in=im;线

6、性时间规整技术假设说话速度是按不同说话单元的发音长度等比例分布的,即。这两种假设其实都不符合实际语音的发音情况,我们需要一种更加符合实际情况的非线性时间规整技术,也就是DTW算法。图.三种匹配模式的对比DTW算法的原理图如图,把测试模板的各个帧号n=1~N在一个二维直角坐标系中的横轴上精彩文档实用标准文案标出,把参考模板的各帧m=1~M在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网格,网格中的每一个交叉点(ti,rj)表示测试模式中某一帧与训练模式中某一帧的交汇。DTW算法分两步进行,一是计算两个模式各帧之间的距离,即求出帧匹配距离

7、矩阵,二是在帧匹配距离矩阵中找出一条最佳路径。搜索这条路径的过程可以描述如下:搜索从(1,1)点出发,对于局部路径约束如图,点(in,im)可达到的前一个格点只可能是(in-1,im)、(in-1,im-l)和(in-1,im-2)。那么(in,im)一定选择这三个距离中的最小者所对应的点作为其前续格点,这时此路径的累积距离为:D(in,im)=d(T(in),R(im))+min{D(in-1,im),D(in-1,im-1),D(in-1,im-2)},这样从(l,1)点出发(令D(1,1)=0)搜索,反复递推,直到(N,M)就可以得到最优路径,而且

8、D(N,M)就是最佳匹配路径所对应的匹配距离。在进行语音识别时,将测试模板与所有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。