ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:443.32KB ,
资源ID:12478345      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12478345.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(语音信号处理课程设计报告--基于动态时间规整的小规模孤立词语音识别系统设计与开发.doc)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

语音信号处理课程设计报告--基于动态时间规整的小规模孤立词语音识别系统设计与开发.doc

1、课 程 设 计 报 告名 称 语音信号处理课程设计 基于动态时间规整的小规模孤立词语音识别系统设计 与开发 指导教师 李红莲 设计起止日期 2015-5-14 至 2015-6-14 学 院 信息与通信工程 专 业 电子信息工程 学生姓名 班级/学号 成 绩 指导老师签字 12级“语音信号处理课程设计”任务书题目3基于动态时间规整的小规模孤立词语音识别系统设计与开发主要内容 编程实现基于动态时间规整的小规模孤立词语音识别系统,可以实时识别每个集合内的孤立词。设计要求1. 录制训练及测试语音。2. 能够提取特征参数MFCC。3. 能够使用动态时间规整(DTW)算法计算语音模板之间的距离。4. 编

2、程实现基于动态时间规整的小规模孤立词语音识别系统。5. 对某个集合内的孤立词语音实时进行识别6. 准确率应不低于80%。主要仪器设备计算机1台,安装MATLAB软件及cooledit录音软件主要参考文献数字语音处理及MATLAB仿真M.北京:电子工业出版社,2010. 课程设计进度计划(起止时间、工作内容)本课程设计共安排3个题目,这是其中题目之一。具体进度如下:6学时 复习题目相关知识,掌握实现的原理;16学时 用MATLAB语言实现题目要求;6学时 进一步完善功能,现场检查、答辩;4学时 完成课程设计报告。课程设计开始日期2015.5.14课程设计完成日期2015.6.14课程设计实验室名

3、称电子信息技术实验室 地 点实验楼3-507资料下载地址摘 要本论文主要阐述了语音识别系统开发的过程,采用了端点检测和特征参数提取的思路,主要的关注点是如何运用MEL频率倒谱系数(MFCC)的算法,也运用了动态时间规整(DTW)算法,以MATLAB语言为编程语言,编程和获得语音识别算法。笔者设计的语音识别算法的识别率相对较高,而以该算法为基础的语音识别系统可以达到设计的要求,所以其市场前景广阔。关键词:语音识别系统;MFCC;DTW;孤立词识别 Abstract This paper mainly expounds the voice recognition system developmen

4、t process, using the endpoint detection and feature extraction of ideas, the main concern is how to use MEL Frequency Cepstral Coefficients (MFCC) algorithm, also used the Dynamic Time Warping (DTW) algorithm in MATLAB language programming language programming and access to speech recognition algori

5、thm.The author design the speech recognition algorithm of the recognition rate is relatively high, and based on the algorithm of speech recognition system can meet the design requirements, so its wide prospect of market. Keywords: speech recognition system, MFCC,the DTW (dynamic time warping); isola

6、ted words recognition; 目 录12级“语音信号处理课程设计”任务书2摘 要3Abstract 4第一章 概述61.1主要内容61.2要求61.3主要仪器设备61.4基本方法6第二章 信号特征参数MFCC提取7第三章 DTW算法9第四章 实现过程及结果114.1 实现过程114.2 结果及分析12结束语12参考文献12附录131、place_recgrnition132、vad143、mfcc164、dtw175、out19 第一章 概述21世纪,人类要不断地进行信息交流和传递,而在这一过程中,语音无疑是最为方便的工具和主要的交流媒介。所以,为了达到交流方便的目的,我们往往

7、在人机系统中,采用语音识别系统。说得更通俗一点,语音识别就是要能让机器理解人在说什么,即准确地识别出语音的内容,以此来达到人的意愿执行机器指令的目的。就语音识别技术的应用的主要内容来看,主要就是语音拨号、导航、语音文档检索等一系列功能。语音识别技术就好像其他的自然语言处理技术一样,在处理了相关的技术之后,就能够顺利地展开语音间翻译。1.1主要内容 编程实现基于动态时间规整的小规模孤立词语音识别系统,可以实时识别每个集合内的孤立词。1.2要求 1.录制训练及测试语音。 2.能够提取特征参数MFCC。 3.能够使用动态时间规整(DTW)算法计算语音模板之间的距离。 4.编程实现基于动态时间规整的小

8、规模孤立词语音识别系统。 5.对某个集合内的孤立词语音实时进行识别 6.准确率应不低于80%。1.3主要仪器设备 计算机1台,MATLAB软件及cooledit录音软件1.4基本方法 一般开说,我们在识别语音的时候,主要有三种语音识别方法:第一种是声道模型和语音知识方法,第二种是模板匹配方法,第三种是人工神经网络语音识别方法。(1)声道模型和语音识别方法: 这种方法是较早就开始进行过研究的,当时主要是在语音识别技术的基础上提出来的,但是考虑到其模型及语音知识相对来说不是很简单,所以就是到了现在也没有采用于实际的工作中。一般来说,人们都会以为,在一些我们经常使用到的语言中,语音基元的数量是有限的

9、,在区分它们的时候,我们通常都是以时域特性和语音信号频域为基础的,具体地来说,要实现该方法主要是按以下步骤进行的:其一,分段和标号,通过以时间为基本单元,把语音信号按划分成若干个离散的段,任何一段都与若干个语音基元特性存在着相互对应的联系。从此之后,人们在对语音基元进行分段的时候,都是以声学特性为基础,会给出相对应的标音符号。其二,我们成功地获取到了词序列之后,下一步的工作就是以语音识别序列为基础,获取到首个语音基元网格。(2) 主要的模版匹配方法模板匹配方法目前的发展情况非常好,可以所已经处于一个比较成熟的实用阶段。我们在匹配模板的时候,通常都是按照下面的顺序来进行的:提取特征、讯乱模板、分

10、类模板、判决。其中,往往用来开展此工作的方法如下:动态时间规整(DTW)、隐马尔可夫(HMM)理论等。第二章 信号特征参数MFCC提取语音信号在端点检测以后,就把其中的噪声消去了,同时也把有价值的语音信息全部提出来了,这也就进到了语音识别的最关键的阶段:特征提取阶段。正确又合理地把特征参数选择出来,有利于提高系统的识别率,而且还会系统的实时性能产生较大的影响。语音信号特征提取往往就是出于二个目的,其一就是想尽办法取得模式匹配数据库中的模板样本:其二就是在进行语音识别时,采取一切措施,减少相同类的类间距离,与此同时,语音信号的端点还要保持在类的类间距离尽量大,这也就意味着异音字特征间的距离尽可能

11、的大,而使得同音字的间距尽可能地缩小。近几年以来,充分地利用人耳的特殊感知特性的参数在实际中得到了普及应用,这就是Mel频率倒谱参数(Mel Frequency Cepstrum Coefficient,MFCC),简称MFCC。MFCC参数能够比LPCC参数可以更好地优化系统的性能。Mel频率和线性频率的具体关系式如下:对于频率轴,我们主要是使用了不均匀划分方法,而这也是MFCC特征最大的特点。如图2.2所示的滤波器组中,就有16个滤波器。图2.2 Mel带通滤波器组图我们往往也按帧来计算MFCC倒谱系数,在实际应用中,MFCC倒谱系数的计算过程如图2.3:图2.3 MFCC计算的一般流程(

12、1)其一,就是要对信号进行预加重和加窗处理,然后以此为基础,做好离散FFT的变换工作,在进行了取模,再平方以后,又得到了离散功率谱。在此次文章中,我们主要是用了帧长为256点,帧移为80点的信号。所以,我们根据此,得到了第n帧语音信号,另外也做了离散傅里叶变换工作,并得到了下面的关系式:除此之外,我们再根据短时功率谱与短时傅里叶变换的关系,可以直接地把其中的短时功率谱求解出来,具体的可以用如下的关系式:(2)对 做准确的计算,其主要的思路就是通过M(M往往是取1624)个Mel带通滤波器,在滤波处理了以后,以此得到了相关的功率值。所以,在任何的频带里,人耳在其中的作用是叠加形成的,所以我们把滤

13、波器的能量放在一起,也主要是对和在各点离散频率点上的乘积的和做一些详细的计算,以此来获得M个参数只(3)对的自然对数,我们运用如下的公式进行计算,以此来计算出对数功率谱,接下来,我们开展离散余弦变换(DCT)工作,从而得到了L个MFCC系数。对于L,我们往往是取12-16位为主。(4)对于其中的任何一个帧的语音信号,我们都要想办法把其中的L维MFCC参数计算出来,往往还是使用其中的一个参数进行提升。总的来说,标准的MFCC参数往往就只能显示出语音信号的某些静态特性,虽然纯净语音信号情况下可能会产生比较好的识别率。但是,有一点要注意的,那就是如果测试环境和训练环境无法进行匹配,就有可能会导致识别

14、系统的性能下降的情形。其具体的计算公式如下: 第三章 DTW算法DTW(Dynamic Time Warping, 动态时间规整)算法简介:在识别孤立词语音的时候,较好的方法就是DTW算法,它在语音识别中实用得比较早,也是其中最有影响力的一种,在识别孤立词的时候,经常都会使用到这种方法。在DTW算法中,无需做更多的计算。不管是建立模板还是训练模板的阶段,还是识别的阶段,需要判断最终的语音起点和终点。用R(1),R(2),R(m),R(M)来表示其中的一个参考模板,其中起点语音帧用m=1表示,而m=M表示的则是终点语音帧。在表示参考模板和测试的时候,分别用T和R来表示它们。通常来说,相似度越高的

15、距离就越小。(1)如果N和M是相等的,那么就表示R和T事实上就是相同的。直接匹配T(1)与R(1)帧,T(2)与R(2)帧,T(m)与R(m)帧,计算出它们的失真度,并对其进行求和,这样一来就可以获得总失真。(2)如果N和M值不相等的话,那么就表示R和T事实上是不相同的,这时可以采用动态规划(DP)方法首先需要对测试模式的各个帧号进行标记,具体情况如下图2.3所示:在对齐的时候,使用的主要办法是动态规划。实际上,首先需要查找出网络中所有格点的路径,当然,不可能随意地选择其中的路径,其主要原因就在于任何一种语音发音都有快慢,然而有一点是不能变的,那就是其各部分的先后次序。所以,无论选择什么样的路

16、径,都是从左下角到右上角,参见图3:图2.3 DTW算法搜索路径为了能够准确地描述这条路径,按照先后的顺序来设定这些格点,分别是( ), ,而在这其中( )=(1,1), =(N,M)。为了保持路径之间能够平稳过渡,可以限制其斜率在0.5:2左右,这也就是说若路径通过格点,那么下一个格点就是: 为了能够获取到最准确的路径函数,确保积累的路径距离是最小的,最佳的搜索思路应该是:首先确定( )为起点,假设 表示的是所有路径的累计距离,最佳路径积累的距离才是最小的。不难证明,在限定条件下,所有的格点 ,满足要求的路径只有一条。也就是说可以达到该格点的前一个格点只可能是 、 和,所以说一定是从上面三者

17、中选择最小者所对应的格点来充当其前续结点,若用来代表这一格点,则路径的积累距离可以通过下面的公式来计算: 因此,在开展搜索工作的时候,应该以出发点为起点。在现实工作过程中,必须严格存放好所有的前一格点及相应的帧匹配距离。如果能够搜索得到,需要将最佳路径留下来。有时需要向前寻找来进一步得到整条路径。这就是DTW算法。第四章 实现过程及结果4.1实现过程 1.应用cooledit录音软件录制及测试语音,共录入50个孤立词。 2.使用8000Hz的采样率,对录入的音频进行端点检测。 3.提取特征参数MFCC。提取原理图如下:MFCCLn(M(p)X(n)M(p)X(k)DCT变换MFCC 4.使用动

18、态时间规整(DTW)算法计算语音模板之间的距离。 5.编程实现基于动态时间规整的小规模孤立词语音识别系统。6.对集合内的孤立词语音实时进行识别。4.2 结果及分析分析:对麦克风读入“北京”,语音识别系统识别为“北京”。结果正确无误。结束语在本次课程设计中,我应用MFCC特征参数、端点检测等方法提高语音识别的准确性,得到了一个完整的语音识别系统。 在整个语音识别系统的研究和设计时,我查阅了相应的资料,而由于语音识别技术毕竟是一个新的领域,所以会在具体的研究上碰到各种各样的困难,造成了在系统中出现各种各样的问题,主要表现在系统在噪音较大的环境下识别的准确度不高等。 就当前来看,在语音技术领域有较大

19、的潜力可以挖掘。我们还需要不断地改进其算法,提高识别的精确度。而在其中,人工智能是一个比较重要的前沿发展方向。参考文献1 数字语音处理及MATLAB仿真M.北京:电子工业出版社,2010. 2 中国科技论文在线语音识别中双门限端点检测算法的研究WvcWpapereduca,200804073 ZHANGJun,WEIGang Robust Multi stream Speech Recognition Based on Weighting the Output Probabilities of Feature Components J.声学学报(英文版),20094 Yang Jianhua,

20、Zhao Li. Recognition Of Spoken Chinese Digit Based On Integration Of VQ And HMM, Department of Elect ronic Engineering, NUAA 20005 郭春霞,裘学红.基于MFCC的说话人识别系统,电子科技,2005,11:53-566 赵力.语音信号处理M 机械工业出版社,20037 蒋珉 . MATLAB程序设计及应用,北京邮电大学出版,20108 王志强.孤立词语识别系统关键问题的研究D.北京:北京邮申大学,2008附录1、place_recgrnitionclcclear al

21、l for i=1:50 name=num2str(i) .wav; y,fs,bits=wavread(name);StartPoint,EndPoint=vad(y);%端点检测msi=mfcc(y(StartPoint:EndPoint); enda=1;while aFs = 8000;y = wavrecord(3*Fs,Fs,int16);StartPoint,EndPoint=vad(y);%plot(y(StartPoint:EndPoint);ms_unknown=mfcc(y(StartPoint:EndPoint);for i=1:50 d(i)=dtw(ms_unkno

22、wn,msi);endindex=find(d=min(d);out(index);a=input(1继续);End2、vadfunction n1,n2 = vad(x) %幅度归一化到-1,1x = double(x);x = x / max(abs(x); %常数设置FrameLen = 240;FrameInc = 80;amp1 = 10;amp2 = 2;zcr1 = 10;zcr2 = 5; maxsilence = 8; % 6*10ms = 30msminlen = 15; % 15*10ms = 150msstatus = 0;count = 0;silence = 0;

23、%计算过零率tmp1 = enframe(x(1:end-1), FrameLen, FrameInc);tmp2 = enframe(x(2:end) , FrameLen, FrameInc);signs = (tmp1.*tmp2)0.02;zcr = sum(signs.*diffs, 2); %计算短时能量amp = sum(abs(enframe(filter(1 -0.9375, 1, x), FrameLen, FrameInc), 2); %调整能量门限amp1 = min(amp1, max(amp)/4);amp2 = min(amp2, max(amp)/8); %开始

24、端点检测x1 = 0; x2 = 0;for n=1:length(zcr) goto = 0; switch status case 0,1 % 0 = 静音, 1 = 可能开始 if amp(n) amp1 % 确信进入语音段 x1 = max(n-count-1,1); status = 2; silence = 0; count = count + 1; elseif amp(n) amp2 | . % 可能处于语音段 zcr(n) zcr2 status = 1; count = count + 1; else % 静音状态 status = 0; count = 0; end ca

25、se 2, % 2 = 语音段 if amp(n) amp2 | . % 保持在语音段 zcr(n) zcr2 count = count + 1; else % 语音将结束 silence = silence+1; if silence maxsilence % 静音还不够长,尚未结束 count = count + 1; elseif count minlen % 语音长度太短,认为是噪声 status = 0; silence = 0; count = 0; else % 语音结束 status = 3; end end case 3, break; endend count = cou

26、nt-silence/2;x2 = x1 + count -1;n1=(x1+2)/3)*240;n2=(x2+2)/3)*240;3、 mfccfunction ccc = mfcc(x)%function ccc=mfcc(x);%对输入的语音序列x进行MFCC参数的提取,返回MFCC参数和一阶%差分MFCC参数,Mel滤波器的阶数为24%fft变换的长度为256,采样频率为8000Hz,对x 256点分为一帧%bank=melbankm(24,256,8000,0,0.5,m);% 归一化mel滤波器组系数bank=full(bank);bank=bank/max(bank(:);% D

27、CT系数,12*24for k=1:12 n=0:23; dctcoef(k,:)=cos(2*n+1)*k*pi/(2*24);end% 归一化倒谱提升窗口w = 1 + 6 * sin(pi * 1:12 ./ 12);w = w/max(w);% 预加重滤波器xx=double(x);xx=filter(1 -0.9375,1,xx);% 语音信号分帧xx=enframe(xx,256,80);% 计算每帧的MFCC参数for i=1:size(xx,1) y = xx(i,:); s = y .* hamming(256); t = abs(fft(s); t = t.2; c1=dctcoef * log(bank * t(1:129); c2 = c

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2