基于MATLAB的特定人语音识别算法设计 - 图文(6)

2019-08-26 18:47

要额外的计算。所以对于孤立词语音识别,DTW算法得到广泛的应用。

无论在训练和建立模板阶段还是在识别阶段,都先采用端点检测算法确定语音的起点和终点。已存入模板库的各个词条称为参考模板,一个参考模板可以表示为

?R(1),R(2),...,R(m),...,R(M)?,m为训练语音帧的时序标号,m=1为起点语音帧,m=M为

终点语音帧,因此M为该模板所包含的语音帧总数,R(m)为第m帧语音特征矢量。所要识别的一个输入词条语音称为测试模板,可表示为?T(1),T(2),...,T(n),...,T(N)?,n为测试语音帧的时序标号,n=1为起点语音帧,n=N为终点语音帧,因此N为该模板所包含的语音帧总数,T(n)为第n帧语音特征矢量。参考模板与测试模板一般采用相同类型的特征矢量(如MFCC系数)、相同的帧长、相同的窗函数和相同的帧移。 假设测试和参考模板分别用T和R表示,为了比较它们之间的相似度,可以计算它们之间的距离D[T,R],距离越小则相似度越高。为了计算这一失真距离,应从T和R中各个对应帧之间的距离算起。设n和m分别是T和R中任意选择的帧号,d[T(n),R(m)]表示这两种特征矢量之间的距离。距离函数取决于实际采用的距离度量,在DTW算法中通常采用欧氏距离。

若N=M则可以直接计算,否则要考虑将T(n)和R(m)对齐。对齐可以采用线性扩张的方法,如果N

?R(1),R(2),...,但是这样的计算没有考虑到语音中各个段在不同的情况R(M)?之间的距离。

下的持续时间会产生或长或短的变化,因此识别效果不可能最佳。因而更多地是采用动态规划(DP)的方法。

通常,规整函数被限制在一个平行四边形的网格内,如图5.1所示。它的一条边斜率为2,另一条边斜率为1/2。规整函数的起点是(1, 1),终点为(N,M)。DTW算法的目的是在此平行四边形内由起点到终点寻找一个规整函数,使其具有最小的代价函数,保证了测试模板与参考模板之间具有最大的声学相似特性。

21

图5.1 DTW原理图

由于在模板匹配过程中限定了弯折的斜率,因此平行四边形之外的格点对应的帧匹配距离是不需要计算的。另外,因为每一列各格点上的匹配计算只用到了前一列的3个网格,所以没有必要保存所有的帧匹配距离矩阵和累积距离矩阵。充分利用这两个特点可以减少计算量和存储空间的需求,形成一种高效的DTW算法,如图所示。图中,把实际的动态弯折分为三段,(1,xa),(xa+1,xb),(xb+1,N),其中:

xa= (2M-N)/3, xb=2(2N-M)/3

xa和xb都取最相近的整数,由此可得出对M和N长度的限制条件:

2M-N≥3, 2N-M≥2

当不满足以上条件时,认为两者差别太大,则无法进行动态弯折匹配。在x轴上的每一帧不再需要与y轴上的每一帧进行比较,而只是与y轴上[ymin,ymax]间的帧进行比较,ymin和ymax的计算公式为:

ymin=x/2,0≤x≤xb, 2x+(M-2N),xb< x≤N ymax=2x,0≤x≤xa, x/2+(M-N/2),xa< x≤N

如果出现xa> xb的情况,则弯折匹配的三段为(1,xb),(xb+1,xa),(xa+1,N)。 对于x轴上每前进一帧,虽然所要比较的y轴上的帧数不同,但弯折特性是一样的,累积距离的更新都是用下式实现的:

22

D(x,y) = d(x,y)+min[D(x-1,y),D(x-1,y-1),D(x-1,y-2)]

5.2 DTW算法流程及实验结果 5.2.1 算法流程

通过DTW算法原理可以得出DTW算法的流程如图5.2所示

信号输入 帧匹配距离矩阵 累积距离矩阵 动态规划 信号输出 图5.2 DTW算法流程

首先申请两个n*m的矩阵D和d,分别为累计距离和帧匹配距离。这里n和m为测试模板与参考模板的帧数。然后通过一个循环计算两个模板的帧匹配距离矩阵d。接下来进行动态规划,为每个格点(i,j)都计算其三个可能的前续格点的累积距离1D,2D和3D。考虑到边界问题,有些前续格点可能不存在,因此要加用一些判断条件。最后利用最小值函数min,找到三个前续格点的累积距离的最小值作为累积距离,与当前帧的匹配距离d(i,j)相加,作为当前格点的累积距离。该计算过程一直达到格点(n,m),并将D(n,m)输出,作为模板匹配的结果。 5.2.2 实验结果

通过运行Testdtw.m主函数,MATLAB将会自动读取对应文件夹中的wav格式的音频,然后进行端点检测,计算非线性预测系数MFCC,并保留为参考库及测试库。接着通过DTW算法进行匹配并计算它们的dist距离。最终得出结果,其流程图如图5.3所示。

读取文件 端点 检测 计算 MFCC 参考库 DTW运算 得出结果 测试库 图5.3 主程序流程图

从MATLAB的命令窗口可以看到以下的测试结果及dist距离数据。从dist距离数据可以看出对角线上的数据都是该行中数值最小的,这也就验证了该实验的正确性。其运行结果窗口如图5.4所示。

23

dist =

1.0e+004 *

1.5359 2.3349 3.8123 4.1780 4.6839 2.2932 2.0359 4.2362 3.2646 3.1334 3.2942 1.4107 5.3812 5.5230 5.0843 4.0441 2.3339 2.4955 5.2014 3.6000 3.2979 3.6796 0.9630 2.1408 3.0627 2.3539 3.1909 3.5132 1.0917 3.4542 4.6339 5.3516 2.3987 1.6835 2.6805 3.6010 5.0491 5.0117 2.4483 4.0254 4.9343 5.1314 4.0286 2.4937 1.3894 4.8771 4.0853 3.0484 3.7600 3.6349 3.4006 4.0532 5.1802 5.5313 7.3506 1.2226 4.9291 5.7831 5.5257 3.6698 2.3213 2.1029 3.4088 3.7696 3.4587 2.4957 1.3511 3.3066 2.9855 2.6333 4.5684 2.9031 4.7227 3.6066 2.1753 4.5245 3.4731 1.1810 4.5038 2.9552 4.3106 4.4430 1.1208 2.7778 3.8481 2.9481 4.0198 4.4473 0.9146 4.5795 3.8292 4.6297 5.8129 4.8871 4.5467 4.0913 3.4527 4.0854 5.6082 1.3980 正在计算匹配结果...

测试模板0的识别结果为:0 测试模板1的识别结果为:1 测试模板2的识别结果为:2 测试模板3的识别结果为:3 测试模板4的识别结果为:4 测试模板5的识别结果为:5 测试模板6的识别结果为:6 测试模板7的识别结果为:7 测试模板8的识别结果为:8 测试模板9的识别结果为:9

图5.4 运行结果窗口图

24

6 GUI设计

6.1 概述

在开发一个实际的应用程序时都会尽量做到界面友好,最常用的方法就是使用图形界面。其能够使用户的学习和使用更为方便容易。用户不需要知道应用程序究竟怎样执行各种命令的,而只需要了解可见界面组件的使用方法;用户也不需要知道命令是怎么执行的,只要通过与界面交互就可以使指定的行为得以正确执行。

正是MATLAB为用户开发图形界面提供了一个方便高效的集成开发环境,MATLAB图形用户界面开发环境GUIDE(MATLAB Graphical User Interface Development Environment)。GUIDE主要是一个界面设计工具集,MATLAB R2011B将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户设计好的GUI界面保存在一个FIG资源文件中,同时还能够生成包含GUI初始化和组件界面布局控制代码的M文件。这个M文件为实现回调函数(当用户激活GUI某一组件时执行的函数)提供了一个参考框架。

设置GUIDE 应用程序 图6.1 GUI设计框架图

GUI界面设计 编写GUI回调函数代码 实现一个GUI主要包括GUI界面设计和GUI组件编程两项工作。整个GUI的实现过程如图6.1所示 6.2 GUI界面的打开

在MATLAB R2011B中,GUIDE提供了多种设计模块以方便用户轻松的定制属于自己的GUI。这些模块均包括了相关的回调函数,用户可以打开它所对应的M文件,修改实现自己需要的功能的函数。

在MATLAB R2011B中,可以通过两种方法来进入GUI界面: ① 在MATLAB R2011B的命令窗口中直接输入GUIDE。 ② 点击如图6.2所示的红色标志就可以打开GUI建立窗口。

然后再弹出来的选择窗口中选择Blank GUI(Default),并将其保存在自己选择的文件夹中。点击OK后,就会弹出组合面板窗口,如图6.3所示,在这个面板中,用户可以按照自己的需要添加相应的控件。

25


基于MATLAB的特定人语音识别算法设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:马崩小学推进学校章程建设实施方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: