




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、外福;啜噢,学智能仪器课程设计题 目:MATLAB 实现语言识别功能班 级:学 号:姓 名:同组人员:任课教师:完成时间:2012/11/3Word资料目录一、设计任务及要求 1二、语音识别的简单介绍2.1 语者识别的概念22.2 特征参数的提取 32.3 用矢量量化聚类法生成码本 32.4 VQ的说话人识别 4三、算法程序分析3.1 函数关系 .43.2 代码说明53.2.1 函数mfcc 53.2.2 函数disteu 53.2.3 函数 vqlbg .63.2.4 函数test 63.2.5 函数testDB 73.2.6 函数 train 83.2.7 函数 melfb 8四、演示分析
2、 .9五、心得体会 .11附:GUI程序代码12、设计任务及要求用MATLAB实现简单的语音识别功能;具体设计要求如下:用MATLAB实现简单的数字19的语音识别功能二、语音识别的简单介绍基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个 说话者所提取的特征参数进行分类, 产生不同码字所组成的码本。在识别(匹配) 阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d时,采用欧氏距离 测度),从而判断说话人是谁。语音识别系统结构框图如图1所示。谙肯数据陨处理:前加直、 加汉明茴训特征参数识别4 A提 取码本库:说话人:的码本说语人2的码本VQ 槐型 训练VQ眄本 匹配
3、39;M算说话人N的蚂W 图1语音识别系统结构框图2.1 语者识别的概念语者识别就是根据说话人的语音信号来判别说话人的身份。 语音是人的自然 属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过分析语音信号来识别说话人成为可 能。用语音来鉴别说话人的身份有着许多独特的优点, 如语音是人的固有的特征, 不会丢失或遗忘;语音信号的采集方便,系统设备成本低;利用网络还可实现远 程客户服务等。因此,近几年来,说话人识别越来越多的受到人们的重视。与其 他生物识别技术如指纹识别、手形识别等相比较,说话人识别不仅使用方便,而 且属于非接触性,容易被用户
4、接受,并且在已有的各种生物特征识别技术中, 是 唯一可以用作远程验证的识别技术。因此,说话人识别的应用前景非常广泛:今 天,说话人识别技术已经关系到多学科的研究领域,不同领域中的进步都对说话人识别的发展做出了贡献。说话人识别技术是集声学、语言学、计算机、信息处 理和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信 号的时候如何提取信号中关键的成分尤为重要。 语音信号的特征参数的好坏直接 导致了辨别的准确性。2.2 特征参数的提取对于特征参数的选取,我们使用 mfcc的方法来提取。MFC俸数是基于人的 听觉特性利用人听觉的屏蔽效应,在 Mel标度频率域提取出来的倒谱特征参数。M
5、FC惨数的提取过程如下:1 .对输入的语音信号进行分帧、加窗,然后作离散傅立叶变换,获得频谱 分布信息。设语音信号的DFT为:N ij2 nkXa(k) x(n)e -,0 k N 1 (1) n 1其中式中x(n)为输入的语音信号,N表示傅立叶变换的点数。2 .再求频谱幅度的平方,得到能量谱。3 .将能量谱通过一组Mel尺度的三角形滤波器组。我们定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为 f(m),m=1,2,3,,M本系统取M=1004 .计算每个滤波器组输出的对数能量。N 1_2S(m) ln JXa(k) | Hm(k),0
6、m M 1其中Hm(k)为三角滤波器的频率响应。5 .经过离散弦变换(DCT得到MFCC数。M 1C(n) S (m)cos( n(m 0.5/m),(3) m 00 n N 1MFCCS数个数通常取2030,常常不用0阶倒谱系数,因为它反映的是频谱能 量,故在一般识别系统中,将称为能量系数,并不作为倒谱系数,本系统选取 20阶倒谱系数。2.3 用矢量量化聚类法生成码本我们将每个待识的说话人看作是一个信源,用一个码本来表征。码本是从该 说话人的训练序列中提取的 MFC破征矢量聚类而生成。只要训练的序列足够长, 可认为这个码本有效地包含了说话人的个人特征,而与讲话的容无关。本系统采用基于分裂的L
7、BG的算法设计VQ河本,Xk(k 1,2, ,K)为训练序列,B为码本。具体实现过程如下:1 .取提取出来的所有帧的特征矢量的型心(均值)作为第一个码字矢量B1。2 .将当前的码本Bm艮据以下规则分裂,形成2m码字。Bm Bm(1)(4)Bm Bm(1)其中m从1变化到当前的码本的码字数,£是分裂时的参数,本文£=0.01。3 .根据得到的码本把所有的训练序列(特征矢量)进行分类,然后按照下面两个公式计算训练矢量量化失真量的总和Dn以及相对失真(n为迭代次数,初始n=0, d1=8, B为当前的码书),若相对失真小于某一阈值 迭代结束,当前的码书就是设计好的2m码字的码书,
8、转5。否则,转下一步 量化失真量和:KDmin d(Xk,B)(5)k 1相对失真:(6)D(n D Dn D74.重新计算各个区域的新型心,得到新的码书,转3。5.重复2 , 3和4步,直到形成有M个码字的码书(M是所要求的码字数), 其中 D0=10000 2.4 VQ的说话人识别设是未知的说话人的特征矢量X1,K ,Xt,共有T帧是训练阶段形成的码书,表示码书第m个码字,每一个码书有M个码字。再计算测试者的平均量化失真 D, 并设置一个阈值,若D小于此阈值,则是原训练者,反之则认为不是原训练者。D 1/T. mind(Xj,Bm) j 11 m M3、 算法程序分析在具体的实现过程当中,
9、采用了 matlab软件来帮助完成这个项目。在matlab 中主要由采集,分析,特征提取,比对几个重要部分。以下为在实际的操作中, 具体用到得函数关系和作用一一列举在下面。3.1 函数关系主要有两类函数文件Train.m和Test.m在Train.m 调用Vqlbg.m获取训练录音的vq码本,而Vqlbg.m调用mfcc.m 获取单个录音的mel倒谱系数,接着mfcc.m调用Melfb.m-将能量谱通过一组 Mel尺度的三角形滤波器组。在Test.m函数文件中调用Disteu.m计算训练录音(提供vq码本)与测试 录音(提供mfcc) mel倒谱系数的距离,即判断两声音是否为同一录音者提供。
10、Disteu.m 调用mfcc.m获取单个录音的 mel倒谱系数。mfcc.m调用Melfb.m- 将能量谱通过一组Mel尺度的三角形滤波器组。3.2 具体代码说明3.2.1 函数 mffc:function r = mfcc(s, fs)m = 100;n = 256;1 = length(s);nbFrame = floor(l - n) / m) + 1; %沿-00方向取整for i = 1:nfor j = 1:nbFrameM(i, j) = s(j - 1) * m) + i); %对矩阵 M赋值end endh = hamming(n); % 力口 hamming窗,以增加音框
11、左端和右端的连续性 M2 = diag(h) * M;for i = 1:nbFrameframe(:,i) = fft(M2(:, i); %对信号进行快速傅里叶变换 FFTendt = n / 2;tmax = l / fs;m= melfb(20, n, fs); %等上述线性频谱通过 Mel频率滤波器组得到 Mel频 谱,下面在将其转化成对数频谱n2 = 1 + floor(n / 2);z = m * abs(frame(1:n2, :).A2;r = dct(log(z); %将上述对数频谱,经过离散余弦变换(DCT)变换到倒谱域,即可得到Mel倒谱系数(MFCC#数)3.2.2
12、函数 disteu-计算测试者和模板码本的距离function d = disteu(x, y) M, N = size(x); % 音频x赋值给【M MM2, P = size(y); % 音频 y 赋值给M2 Pif (M = M2)error('不匹配! )%两个音频时间长度不相等endd = zeros(N, P);if (N < P)% 在两个音频时间长度相等的前提下copies = zeros(1,P);for n = 1:Nd(n,:) = sum(x(:, n+copies) - y).八2, 1);endelsecopies = zeros(1,N); for
13、p = 1:Pd(:,p) = sum(x - y(:, p+copies) .A2, 1)'end%成对欧氏距离的两个矩阵的列之间的距离 endd = d.A0.5;3.2.3 函数 vqlbg-该函数利用矢量量化提取了音频的vq码本function r = vqlbg(d,k)e = .01;r = mean(d, 2);dpr = 10000;for i = 1:log2(k)r = r*(1+e), r*(1-e);while (1 = 1)z = disteu(d, r);m,ind = min(z, , 2);t = 0;for j = 1:2Air(:, j) = mea
14、n(d(:, find(ind = j), 2);x = disteu(d(:, find(ind = j), r(:, j);for q = 1:length(x)t = t + x(q);endendif (dpr - t)/t) < e)break;elsedpr = t;endendend3.2.4 函数 testfunction finalmsg = test(testdir, n, code)for k = 1:n% read test sound file of each speakerfile = sprintf('%ss%d.wav', testdir,
15、 k);得到测试人语音的mel倒谱系数阈值设置处就判断一次,因为模板里面只有一个文件计算得到模板和要判断的声音之间的s, fs = wavread(file);v = mfcc(s, fs);%distmin = 4;%d = disteu(v, code1); %变换得到一个距离的量“距离”dist = sum(min(d,2) / size(d,1); %测试阈值数量级msgc = sprintf('与模板语音信号的差值为:10f ', dist);disp(msgc);%此人匹配一个阈值,小于阈值,则就是这个人。第%d位说话者与模板语音信号匹配,符合要此位说话者符合要求!
16、' %界面显示语句,可随意设if dist <= distmin % msg = sprintf(' 求!n', k);finalmsg ='定disp(msg);end%此人不匹配if dist > distminmsg = sprintf('第位说话者与模板语音信号不匹配,不符合要求!n', k);finalmsg=此位说话者不符合要求!'%界面显示语句,可随意设定disp(msg);endend3.2.5 函数 testDB这个函数实际上是对数据库一个查询,根据测试者的声音,找相应的文件,并且给 出是谁的提示functi
17、on testmsg = testDB(testdir, n, code)nameList='1','2','3','4','5','6','7','8','9' ;%这个是我们要识别的9个数for k = 1:n%数据库中每一个说话人的特征file = sprintf('%ss%d.wav', testdir, k);哦出文件的路径s, fs = wavread(file);对找到的文件取mfcc变换v = mfcc(s, fs);
18、distmin = inf;k1 = 0;for l = 1:length(code)d = disteu(v, codel);dist = sum(min(d,2) / size(d,1);这里和test函数里面一样 但多了一个具体语if dist < distmin distmin = dist;% 者的识别k1 = l;end end msg=nameListk1 msgbox(msg);end3.2.6 函数 train一该函数就是对音频进行训练,也就是提取特征参数function code = train(traindir, n)k = 16;% number of centr
19、oids requiredfor i = 1:n%对数据库中的代码形成码本file = sprintf('%ss%d.wav', traindir, i);disp(file);s, fs = wavread(file);v = mfcc(s, fs); %计算MFCC's提取特征特征,返回值是Mel倒谱系数,是一个log的dct得到的codei = vqlbg(v, k);%训练VQ码本 通过矢量量化,得到原说话人的VQ码本end4、 演示分析我们的功能分为两部分:对已经保存的9个数字的语音进行辨别和实时的 判断说话人说的是否为一个数.在前者的实验过程中,先把9个数字的声音保存 成wav的格式,放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平凉职业技术学院《影视美术》2023-2024学年第二学期期末试卷
- 衡阳师范学院南岳学院《食品分析(含仪器分析)》2023-2024学年第一学期期末试卷
- 南阳职业学院《热力学与统计物理》2023-2024学年第一学期期末试卷
- 劳务分包担保合同
- 委托技术服务合同
- 委托设备维修合同
- 废旧物资回收承包合同
- 《对不良诱惑说不》学会拒绝课件-3
- 20253月合同明确的楼宇自控系统第三方接入标准
- 店房租赁合同范本
- 无人机操控技术课件:多旋翼无人机的飞行原理
- DB34∕T 3790-2021 智慧药房建设指南
- 被盗窃赔偿协议书范文范本
- 中职数学基础模块下册8-1随机事件教案
- 汽车行业系列深度五:复刻手机高端之路 华为赋能智电未来
- 物理因子治疗技术-光疗法
- 美观而安全的衣衫-包装设计 课件-2023-2024学年高中美术人美版(2019)选择性必修4 设计
- 垃圾填埋场运营合同范本
- CJT 289-2008 城镇污水处理厂污泥处置 制砖用泥质
- 2024年四川省眉山市中考地理+生物试卷(含答案)
- 当代世界经济与政治 李景治 第八版 课件 第1、2章 当代世界政治、当代世界经济
评论
0/150
提交评论