matlab语音识别系统(源代码)

上传人:pu****.1 文档编号:509794873 上传时间:2024-02-18 格式:DOC 页数:29 大小:548KB
返回 下载 相关 举报
matlab语音识别系统(源代码)_第1页
第1页 / 共29页
matlab语音识别系统(源代码)_第2页
第2页 / 共29页
matlab语音识别系统(源代码)_第3页
第3页 / 共29页
matlab语音识别系统(源代码)_第4页
第4页 / 共29页
matlab语音识别系统(源代码)_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《matlab语音识别系统(源代码)》由会员分享,可在线阅读,更多相关《matlab语音识别系统(源代码)(29页珍藏版)》请在金锄头文库上搜索。

1、(威海) 智能仪器课程设计题 目: MALB实现语音辨认功能 班 级: 学 号: 姓 名: 同组人员: 任课教师: 完毕时间: /3 目录一、 设计任务及规定1二、 语音辨认的简朴简介2.语者辨认的概念 2.特性参数的提取 2.用矢量量化聚类法生成码本 2.4V的说话人辨认 三、 算法程序分析3.1函数关系 3.代码阐明 3.2.1函数fcc5 3.22函数disteu5 3.3函数vqlg63.2.4函数est6.5函数tetDB7 3.2.6函数tran 3.7函数mb四、 演示分析.9五、 心得体会.1附:GUI程序代码12一、 设计任务及规定用MATLA实现简朴的语音辨认功能;具体设计

2、规定如下: 用TLAB实现简朴的数字19的语音辨认功能。二、 语音辨认的简朴简介基于VQ的说话人辨认系统,矢量量化起着双重作用。在训练阶段,把每一种说话者所提取的特性参数进行分类,产生不同码字所构成的码本。在辨认(匹配)阶段,我们用VQ措施计算平均失真测度(本系统在计算距离d时,采用欧氏距离测度),从而判断说话人是谁。语音辨认系统构造框图如图1所示。图1语音辨认系统构造框图2.1语者辨认的概念语者辨认就是根据说话人的语音信号来鉴别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差别以及后天形成的行为差别,每个人的语音都带有强烈的个人色彩,这就使得通过度析语音信号来辨认说话人成为也

3、许。用语音来鉴别说话人的身份有着许多独特的长处,如语音是人的固有的特性,不会丢失或遗忘;语音信号的采集以便,系统设备成本低;运用电话网络还可实现远程客户服务等。因此,近几年来,说话人辨认越来越多的受到人们的注重。与其她生物辨认技术如指纹辨认、手形辨认等相比较,说话人辨认不仅使用以便,并且属于非接触性,容易被顾客接受,并且在已有的多种生物特性辨认技术中,是唯一可以用作远程验证的辨认技术。因此,说话人辨认的应用前景非常广泛:今天,说话人辨认技术已经关系到多学科的研究领域,不同领域中的进步都对说话人辨认的发展做出了奉献。说话人辨认技术是集声学、语言学、计算机、信息解决和人工智能等诸多领域的一项综合技

4、术,应用需求将十分广阔。在吃力语音信号的时候如何提取信号中核心的成分尤为重要。语音信号的特性参数的好坏直接导致了辨别的精确性。2.2特性参数的提取对于特性参数的选用,我们使用mc的措施来提取。MCC参数是基于人的听觉特性运用人听觉的屏蔽效应,在el标度频率域提取出来的倒谱特性参数。MFC参数的提取过程如下: 1. 对输入的语音信号进行分帧、加窗,然后作离散傅立叶变换,获得频谱分布信息。 设语音信号的DFT为:(1)其中式中x()为输入的语音信号,N表达傅立叶变换的点数。 2.再求频谱幅度的平方,得到能量谱。 3. 将能量谱通过一组l尺度的三角形滤波器组。我们定义一种有M个滤波器的滤波器组(滤波

5、器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为f(m),=1,2,,,M本系统取=100。4. 计算每个滤波器组输出的对数能量。 (2)其中为三角滤波器的频率响应。 5. 通过离散弦变换(DC)得到MFCC系数。 MFC系数个数一般取230,常常不用0阶倒谱系数,由于它反映的是频谱能量,故在一般辨认系统中,将称为能量系数,并不作为倒谱系数,本系统选用阶倒谱系数。2.3用矢量量化聚类法生成码本 我们将每个待识的说话人看作是一种信源,用一种码本来表征。码本是从该说话人的训练序列中提取的MFC特性矢量聚类而生成。只要训练的序列足够长,可觉得这个码本有效地涉及了说话人的个人特性,而

6、与发言的内容无关。本系统采用基于分裂的LBG的算法设计V码本,为训练序列,B为码本。 具体实现过程如下:1. 取提取出来的所有帧的特性矢量的型心(均值)作为第一种码字矢量1。2. 将目前的码本B根据如下规则分裂,形成m个码字。 (4)其中m从1变化到目前的码本的码字数,是分裂时的参数,本文=0.01。 3. 根据得到的码本把所有的训练序列(特性矢量)进行分类,然后按照下面两个公式计算训练矢量量化失真量的总和以及相对失真(为迭代次数,初始n0,=,B为目前的码书),若相对失真不不小于某一阈值,迭代结束,目前的码书就是设计好的2m个码字的码书,转。否则,转下一步。 量化失真量和: ()相对失真:

7、(6) 4. 重新计算各个区域的新型心,得到新的码书,转。 5. 反复 ,和4步,直到形成有M个码字的码书(M是所规定的码字数),其中D0=10000。 2.4 VQ的说话人辨认 设是未知的说话人的特性矢量,共有帧是训练阶段形成的码书,表达码书第m个码字,每一种码书有M个码字。再计算测试者的平均量化失真D,并设立一种阈值,若D不不小于此阈值,则是原训练者,反之则觉得不是原训练者。 ()三、 算法程序分析在具体的实现过程当中,采用了malab软件来协助完毕这个项目。在atab中重要由采集,分析,特性提取,比对几种重要部分。如下为在实际的操作中,具体用到得函数关系和作用一一列举在下面。3.函数关系

8、重要有两类函数文献Train.m和Test.m在Train.m调用Vqlg.获取训练录音的vq码本,而lbg.m调用mc获取单个录音的mel倒谱系数,接着cc.m调用elf.m-将能量谱通过一组Me尺度的三角形滤波器组。 在Test.m函数文献中调用Disteu.m计算训练录音(提供v码本)与测试录音(提供mc)l倒谱系数的距离,即判断两声音与否为同一录音者提供。Dsteu调用fc获取单个录音的el倒谱系数。mc.m调用elfb.m-将能量谱通过一组M尺度的三角形滤波器组。 3.2具体代码阐明.2.1函数mffc:funcionr = mfcc(s, f)-m = 0;n256;l =leng

9、h(s);nbrme =floor((l - n)/ m) + ; %沿-方向取整 for i = 1:nfor j = 1:FrameM(i, j) =s(((j ) * m) + i); 对矩阵赋值endend = ammng(n); %加 hamming窗,以增长音框左端和右端的持续性M2 = ig(h) ;fr 1:nbFramra(:,i) = ff((:, ); 对信号进行迅速傅里叶变换FTnd n ;tmax= / f; =lb(20, ,s); 将上述线性频谱通过Me 频率滤波器组得到Mel 频谱,下面在将其转化成对数频谱n2 = 1+ floo(n2);z =m*ab(fme

10、(1:n,:)2;r = dct(lg(z)); %将上述对数频谱,通过离散余弦变换(CT)变换到倒谱域,即可得到Mel倒谱系数(MCC参数)2.2函数diste-计算测试者和模板码本的距离funton d = ste(x,y)M, N =iz(); %音频x赋值给【M,】M2, = size();%音频赋值给【M2,P】i (M =M2) erro(不匹配!) %两个音频时间长度不相等ndd= ers(N, P);if ( P)%在两个音频时间长度相等的前提下 copies = zros(1,P); for n = 1: (n,:) = sm(x(:, n+opies) - y) .2, )

11、; els copies = er(1,); or = 1:P (:,p)= sm(x- (:, +opes)) .2,1); nd%成对欧氏距离的两个矩阵的列之间的距离ndd= d.0.;3.2.函数vqlbg-该函数运用矢量量化提取了音频的vq码本uncon r = lbg(d,k)e .01;r =en(d, );dr= 100;for i 1:log2(k) r(+), r(-e); wle (1 = 1) z = diste(d,r); m,in min(z,); t = 0; foj= 1:2i r(:, j) = mean(d(:, fid(ind=j), 2); =ieu(d(:, find(ind = j), r(:, ); for q = :ngt(x) t = t +x(q); end end if(dpr -t)/t)e) rak; else pr = t; d edend3.函数tstfunctio finlmsg est(testr, n,d)for k = 1:n % reatst sound file of each seakr fl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

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