孤立词语音识别程序

上传人:大米 文档编号:568587784 上传时间:2024-07-25 格式:PDF 页数:5 大小:299.29KB
返回 下载 相关 举报
孤立词语音识别程序_第1页
第1页 / 共5页
孤立词语音识别程序_第2页
第2页 / 共5页
孤立词语音识别程序_第3页
第3页 / 共5页
孤立词语音识别程序_第4页
第4页 / 共5页
孤立词语音识别程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《孤立词语音识别程序》由会员分享,可在线阅读,更多相关《孤立词语音识别程序(5页珍藏版)》请在金锄头文库上搜索。

1、信息处理仿真实验信息处理仿真实验语音处理部分语音处理部分一、一、实验目的实验目的按所学相关语音处理的知识,自己设计一个孤立词语音识别程序,分析所设计系统的特性。熟悉不同模块间如何进行有效的组合,以及模块内的设计,重点掌握特征参数的提取和模式识别方法,并对不同的特征参数提取方法和模式匹配方法有大概的了解,知道其不同的优缺点。二、二、实验内容实验内容1、 熟悉预处理、特征参数提取、模式匹配三个模块的原理,并设计这三个模块的 matlab 子程序。2、 设计主程序, 将上述 3 个模块合理组合构成一个系统, 训练模板并测试。三、三、实验原理及设计步骤实验原理及设计步骤1、孤立词语音识别系统:先用端点

2、检测将语音中有用的语音部分提取出来即将头部和尾部的静音部分除掉 ,然后提取语音信号的 Mel 尺度倒谱参数(MFCC),进行动态归整(DTW 算法)后与模板库里面的标准语音作比较,具体流程如下:图 3.1 孤立词语音识别系统2、各模块解析预处理:包括反混叠失真滤波器、预加重器、端点检测和噪声滤波器。这里将预加重器和噪声滤波器放在下一个模块里,所以预处理主要进行端点检测以捕捉到数据中的语音信息。端点检测采用双门限法来检测端点。同时,利用过零率检测清音,用短时能量检测浊音, 两者配合。 整个语音信号的端点检测可以分为四段: 静音、过渡段、语音段、结束。程序中使用一个变量 status 来表示当前所

3、处的状态。在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果在过渡段中两个参数中任意一个超过了高门限, 就可以确信进入语音段了。学习文档 仅供参考一些突发性的噪声可以引发短时能量或过零率的数值很高,但是往往不能维持足够长的时间,这些可以通过设定最短时间门限来判别。当前状态处于语音段时,如果两个参数的数值降低到低门限以下,而且总的计时长度小于最短时间门限,则认为这是一段噪音,继续扫描以后的语音数据。否则就标记好结束端点,并返回特征参数

4、提取:常用的语音识别参数有线性预测参数 (LPC),线性预测倒谱参数(LPCC)和 Mel 尺度倒谱参数(MFCC)等。这里提取语音信号的 Mel 尺度倒谱参数(MFCC),步骤如下:语音信号预加重汉明窗傅立叶变换三角滤波函数组取对数归一离散MFCC化导余弦谱提变换升计算差分系数并合并取模特征参数图 3.2 特征参数提取分析:预加重y(n) x(n)-0.97x(n1)加汉明窗xw(n) y(n)w(n) FFTXw(k) xw(n)e j2nk/Nn0N1这里直接采用现成的 FFT 快速算法。对频谱进行三角滤波程序采用归一化 mel 滤波器组系数计算每个滤波器的输出能量N12S(m) lnX

5、w(k) Hm(k)0 m Mk0离散余弦变换(DCT)得到 MFCCC(n) S(m)cosn(m0.5)/ Mn 1,2,., pm1M通常协方差矩阵一般取对角阵,三角滤波器组的对数能量输出之间存在着很大的相关,采用 DCT 这种正交变换可以去除参数之间的相关性,从而使后端识别模型采用对角阵具有更高的识别率归一化倒谱提升学习文档 仅供参考w = 1 + 6 * sin(u / 12) 1 u 12w = w/max(w)计算差分系数并合并 mfcc 参数和一阶差分 mfcc 参数将其作为一个整体,让参数更完备。模式匹配:有矢量量化技术、DTW、HMM 技术、人工神经网络技术。目前,语音识别

6、的匹配主要应用 HMM 和 DTW 两种算法。 DTW 算法由于没有一个有效地用统计方法进行训练的框架,也不容易将低层和顶层的各种知识用到语音识别算法中,因此在解决大词汇量、连续语音、非特定人语音识别问题时较之 HMM 算法相形见绌。HMM 是一种用参数表示的,用于描述随机过程统计特性的概率模型。 而对于孤立词识别,HMM 算法和 DTW 算法在相同条件下,识别效果相差不大, 又由于 DTW 算法本身既简单又有效, 但 HMM算法要复杂得多。 它需要在训练阶段提供大量的语音数据,通过反复计算才能得到参数模型,而 DTW 算法的训练中几乎不需要额外的计算。 鉴于此,DTW 更适合本系统的要求。D

7、TW 算法原理:该算法基于动态规划DP的思想,解决了发音长短不一的模板匹配问题。 如果把测试模板的各个帧号 n=1N 在一个二维直角坐标系中的横轴上标出,把参考模板的各帧号 m=1M 在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网络,网络中的每一个交叉点n,m表示测试模式中某一帧的交汇点。DP 算法可以归结为寻找一条通过此网络中假设干格点的路径,路径通过的格点即为测试和参考模板中进行计算的帧号。路径不是随意选择的,首先任何一种语音的发音快慢都有可能变化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束。DTW 算法可以直接按上面的描述来实现

8、,即分配两个 NM 的矩阵,分别为积累距离矩阵 D 和帧匹配距离矩阵 d,其中帧匹配距离矩阵di,j的值为测试模板的第 i 帧与参考模板的第 j 帧间的距离。DN,M即为最正确匹配路径所对应的匹配距离。无论在训练和建立模板阶段还是在识别阶段,都先采用端点算法确定语音的起点和终点。已存入模板库的各个词条称为参考模板,一个参考模板可表示为 R=R1 ,R2 ,Rm ,RM,m 为训练语音帧的时序标号,m=1 为起点语音帧,m=M 为终点语音帧,因此 M 为该模板所包含的语音帧总数,Rm为第 m 帧的语音特征矢量。所要识别的一个输入词条语音称为测试模板,可表示为T=T1 ,T2 ,Tn ,TN,n

9、为测试语音帧的时序标号,n=1 为起点语音帧,n=N 为终点语音帧, 因此 N 为该模板所包含的语音帧总数, T n 为第 n 帧的语音特征矢量。参考模板与测试模板采用相同形式的 MFCC 系数、相同的帧长、相同的窗函数和相同的帧移。假设测试和参考模板分别用 T 和 R 表示,为了比较它们之间的相似度,可以计算它们之间的距离 DT,R,距离越小则相似度越高。为了计算这一失真距离,应从 T 和 R 中各个对应帧之间的距离算起。设 n 和 m 分别是 T和 R 中任意选择的帧号,dTn ,Rm表示这两帧特征矢量之间的距离。距离函数取决于实际采用的距离度量,在 DTW 算法中通常采用欧氏距离。学习文

10、档 仅供参考四、实验结果及分析四、实验结果及分析首先通过训练得到词汇表中盘古;伏羲;女娲;神农各参考语音的特征序列,直接将这些序列存储为模板。在进行识别时,将待识语音的特征序列依次与各参考语音特征序列进行 DTW 匹配,最后得到的总失真度最小且小于识别阈值的就认为是识别结果:正在计算参考模板的参数.ans =6824ans =7324ans = 6524ans = 6724正在计算测试模板的参数.ans =5024ans =6724ans =5324ans =5024正在进行模板匹配.正在计算匹配结果.测试模板 1 的识别结果为:盘古测试模板 2 的识别结果为:伏羲测试模板 3 的识别结果为:

11、女娲测试模板 4 的识别结果为:神农分析:从输出的结果看,识别得到了正确的结果,这是由于采用了预加重、归一化导谱提升、加入差分系数。为了进一步验证识别的正确性,看一下匹配距离距阵 dist 的数据:dist = 1.0e+004 *2.31214.77227.22964.62766.82742.85809.49807.19587.25066.66242.40805.37983.97504.71984.77173.6102距离距阵的对角线上是正确匹配模板的对应分数,可见对角线上的4个数值都是在本行中最小的,由此验证了识别结果的正确性。但由于需要对大量路径及这些路径中的所有节点进行匹配计算,导致计

12、算量极大,随着词汇量的增大其识别过程甚至将到达难以接受的程度,因此无法直接应用于大、中词汇量识别系统。五、实验体会与思考五、实验体会与思考这次实验,我所做的工作主要是设计并实现各模块的合理组合。虽然在学习课程中已经对 MATLAB 有过一定的理论学习,但是要读懂 MATLAB 的程序还需要找相关的书来看, 通过这次实践, 对 matlab 的语法与应用更加了解,培养了我们独立分析问题和解决问题的能力。学习文档 仅供参考在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独

13、立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次实验的最大收获和财富,使我终身受益。要实现这个 Dtw 与 Test的算法, 主要是弄懂它的帧匹配距离的由来和累积距离的计算公式。这也是实现本系统最难得一环,经过不断的调试修改,最终实现了算法的要求。Dtw 算法采用动态规划技术,存在一些问题:(1)运算量大。由于要找出最正确匹配点,因此要考虑多种可能的情况虽然路径限制减少了运算量,但运算量仍然很大,因而使识别速度减慢这在

14、大词汇量的识别中是一个严重缺点。(2)识别性能过分依赖于端点检测。端点检测的精度随着不同音素而有所不同,有些音素的瑞点检测精度较低。由此影响识别率的提高。 (3)没有充分利用语音信号的时序动态信息。在检测语音信号的端点时,一般采用平均能量或平均幅度值与过零率相乘的方法来判断。如果所取窗长度较小,显然能够比较精确地检测到语音的端点,但会使运算量加大识别速度减慢,同时会把一些短时的脉冲噪音误认为语音,从而产生错误的识别。如果所取窗长较大,可以加快语音处理的速度,会跳过一些短时噪音,但是端点的检测误差增加,对 DTW 这种端点非常敏感的算法几乎是致命的。窗长取一合适的中间值固然可以减少窗长过短和过长的消极影响,但毋庸置疑也减弱了其积极的一面。学习文档 仅供参考

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号