2023年语音识别系统实验报告.pdf
《2023年语音识别系统实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年语音识别系统实验报告.pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、语音辨认系统实验报告专业班级:信息安全学号:姓名:目录一、设计任务及规定.1二、语音辨认的简朴介绍2.1语者辨认的概念.22.2特性参数的提取.32.3用矢量量化聚类法生成码本.32.4 V Q的说话人辨认.4三、算法程序分析3.1 函数关系.43.2 代码说明.53.2.1 函数 mfcc.53.2.2 函数 disteu.53.2.3 函数 v q Ibg.63.2.4 函数 t e s t.63.2.5 函数 te s t DB.73.2.6 函数 t rain.83.2.7 函数 me Ifb.8四、演示分析.9五、心得体会.1 1附:GUI程序代码.1 2一、设计任务及规定实现语音辨
2、认功能。二、语音辨认的简朴介绍基 于 VQ的说话人辨认系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特性参数进行分类,产生不同码字所组成的码本。在辨认(匹配)阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d 时,采用欧氏距离测度),从而判断说话人是谁。语音辨认系统结构框图如图1 所示。图1语音辨认系统结构框图2.1语者辨认的概念语者辨认就是根据说话人的语音信号来判别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过度析语音信号来辨认说话人成为也许。用语音来鉴别说话人的身份有着许多独特的
3、优点,如语音是人的固有的特性,不会丢失或遗忘;语音信号的采集方便,系统设备成本低;运用电话网络还可实现远程客户服务等。因此,近几年来,说话人辨认越来越多的受到人们的重视。与其他生物辨认技术如指纹辨认、手形辨认等相比较,说话人辨认不仅使用方便,并且属于非接触性,容易被用户接受,并且在已有的各种生物特性辨认技术中,是唯一可以用作远程验证的辨认技术。因此,说话人辨认的应用前景非常广泛:今天,说话人辨认技术已经关系到多学科的研究领域,不同领域中的进步都对说话人辨认的发展做出了奉献。说话人辨认技术是集声学、语言学、计算机、信息解决和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信号的时
4、候如何提取信号中关键的成分尤为重要。语音信号的特性参数的好坏直接导致了辨别的准确性。2.2 特性参数的提取对于特性参数的选取,我们使用m f e e 的方法来提取。M F C C 参数是基于人的听觉特性运用人听觉的屏蔽效应,在Me l标度频率域提取出来的倒谱特性参数。M F C C 参数的提取过程如下:1 .对输入的语音信号进行分帧、加窗,然后作离散傅立叶变换,获得频谱分布信息。设语音信号的D F T 为:N-T j2mkX“(k)=Z x(n)e N(1)/l=l其中式中X(n)为输入的语音信号,N表达傅立叶变换的点数。2 .再求频谱幅度的平方,得到能量谱。3 .将能量谱通过一组M el尺度
5、的三角形滤波器组。我们定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为f(m),m=l,2,3,M本系统取M=1 0 0。4 .计算每个滤波器组输出的对数能量。N-1S(m)=l n(|Xa(k)|2 Hm(k),0 m M-1其中Hm(k)为三角滤波器的频率响应。5.通过离散弦变换(D C T)得到M F C C系数。M-C(n)=Z$(?)c os(乃 (加 一 0.5 /m),(3)/n=00 n N-1M F C C系数个数通常取2 0-3 0,经常不用0阶倒谱系数,由于它反映的是频谱能量,故在一般辨认系统中,将称为能量系数,并不作
6、为倒谱系数,本系统选取2 0阶倒谱系数。2.3用矢量量化聚类法生成码本我们将每个待识的说话人看作是一个信源,用一个码本来表征。码本是从该说话人的训练序列中提取的M F C C特性矢量聚类而生成。只要训练的序列足够长,可认为这个码本有效地包含了说话人的个人特性,而与发言的内容无关。本系统采用基于分裂的LB G的算法设计VQ码本,X上 伏=1,2,K)为训练序歹人B为码本。具体实现过程如下:1 .取提取出来的所有帧的特性矢量的型心(均值)作为第一个码字矢量B 1。2 .将当前的码本B m根据以下规则分裂,形成2 m个码字。产=纥(1 +)BH)其中m从1变化到当前的码本的码字数,是分裂时的参数,本
7、文=0.0 1。3.根据得到的码本把所有的训练序列(特性矢量)进行分类,然后按照下面两个公式计算训练矢量量化失真量的总和以及相对失真(n为迭代次数,初始n=0,T=8,B为当前的码书),若相对失真小于某一阈值 ,迭代结束,当前的码书就是设计好的2 m 个码字的码书,转5。否则,转下一步。量化失真量和:KO()=Z m i n a(X*,8)(5)k=相对失真:4.重新计算各个区域的新型心,得到新的码书,转 3。5.反复2 ,3 和4步,直到形成有M个码字的码书(M是所规定的码字数),其中 D0=1 0 0 0 0。2.4 VQ 的说话人辨认设是未知的说话人的特性矢量XL.,X 7,共有T 帧是
8、训练阶段形成的码书,表达码书第m 个码字,每一个码书有M 个码字。再计算测试者的平均量化失真D,并设立一个阈值,若D小于此阈值,则是原训练者,反之则认为不是原训练者。D=l/Tm int/(x.,&XJ mM三、算法程序分析在具体的实现过程当中,采用了 m a t l a b软件来帮助完毕这个项目。在m a t l a b 中重要由采集,分析,特性提取,比对几个重要部分。以下为在实际的操作中,具体用到得函数关系和作用一一列举在下面。3.1 函数关系重要有两类函数文献T r a i n.m 和 T e s t.m在T r a i n.m 调用Vq l b g.m获取训练录音的v q 码本,而Vq
9、 l b g.m 调用mf ee.m获取单个录音的m el 倒谱系数,接着m f c c.m 调用M el f b.m-将能量谱通过一组M e 1 尺度的三角形滤波器组。在 T e s t .m函数文献中调用D i s t eu.m计算训练录音(提供v q 码本)与测试录音(提供m f ee)m e l 倒谱系数的距离,即判断两声音是否为同一录音者提供。D i s t eu.m 调用m f c c .m获取单个录音的m e l 倒谱系数。m f c c .m调用M el f b.m -将能量谱通过一组M el 尺度的三角形滤波器组。3.2 具体代码说明3.2.1 函数 m f f c:f u
10、n c t i o n r =m f c c(s,f s )m =1 0 0;n =2 5 6;1 =l e n gt h(s);n bF r a m e =f l o o r(l -n)/m)+1;%沿-8方向取整f o r i =1:nf o r j =1:n bF r a m eM(i,j)=s(j -1)*m)+i);/对矩阵M赋值e n de n dh=h a m m i n g(n);%加 h a m m i n g 窗,以增长音框左端和右端的连续性M 2 =d i a g(h)*M;f o r i =1:n bF r a m ef r a m e(:,i)=f f t(M 2(:
11、,i);%对信号进行快速傅里叶变换F F Te n dt =n /2;t m a x =1/f s;m =m e l f b(2 0,n,f s);%将上述线性频谱通过M e 1 频率滤波器组得到Mel频谱,下面在将其转化成对数频谱n 2 =1 +f l o o r (n /2);z =m *a bs(f r a m e (1:n 2,:).2;r=d e t (l o g(z);%将上述对数频谱,通过离散余弦变换(D C T)变换到倒谱域,即可得到Mel倒谱系数(M F C C 参数)3.2.2 函数 disteu计算测试者和模板码本的距离f u n c t i o n d =d i s t
12、 e u (x,y )M,N =s i z e (x );%音频 x 赋值给 M,N M 2,P =s i z e(y);%音频y赋值给【M 2 ,P】i f (M =M 2)e r r o r C不匹配!)两个音频时间长度不相等e n dd =z e r o s(N,P);i f (N P)%在两个音频时间长度相等的前提下c o pi e s =z e r o s(1,P);f o r n =1:Nd(n ,:)=s u m(x(:,n +c o p i e s)-y).2,1);e n de l s ec o p i e s =z e r o s (1,N);f o r p=1:Pd (:
13、,p)=s u m(x -y (:,p+c o p i e s ).2 1)e n d厥成对欧氏距离的两个矩阵的列之间的距离endd =d.0.5;3.2.3函数v q l b g该函数运用矢量量化提取了音频的v q码本function r =v q 1 bg(d,k)e =.0 1;r =m e a n(d,2);d pr =1 0 0 0 0;f o r i =1:l o g2(k)r =r*(l+e),r *(1 e);w h i l e (1 =1)z =d i s t e u(d,r);m,i n d =m i n (z,口,2);t =0;f o r j =1 :2r (:,j)=
14、m e a n(d (f i n d(i n d =j),2);x=d i s t e u (d (:,f i n d(i n d =j ),r(:,j );f o r q =1:1 e n gt h(x)t =t +x(q);e n dendi f (d pr -t )/t)e )b r e a k;e l s ed p r =t ;e n de n de n d3.2.4 函数 t e s tf u n c t i o n f i n a l m s g=t e s t (t e s t d i r,n,c o d e )f o r k=l:n%r e a d t e s t sound
15、f i le o f e a c h s pe a k e rf i l e =s p r i n t f (z%s s%d.w a v ,t e s t d i r,k);s,f s =w a v r e a d (f i l e);v =m f c c(s,f s);%得到测试人语音的m e l 倒谱系数d i s t m i n =4 ;%阈值设立处%就判断一次,由于模板里面只有一个文献d =d i s t e u(v ,c o d e 1 );%计算得到模板和要判断的声音之间的“距离”d i s t =s u m (m i n(d,2)/s i z e(d,1);%变换得到一个距离的量
16、%测试阈值数量级m s g c =s p r i n t f (与模板语音信号的差值为:1 0 f ,d i s t);d i s p(m s g c);为此人匹配i f d i s t d i s t m i nm s g=s p r i n t f (第知 位说话者与模板语音信号不匹配,不符合规定!n ,k);f i n a l m s g=此位说话者不符合规定!;界面显示语句,可随意设定d i s p(m s g);e n de n d3.2.5 函数 t e s t D B这个函数事实上是对数据库一个查询,根据测试者的声音,找相应的文献,并且给出是谁的提醒f u n c t i o n
17、 t e s t m s g =t e s t D B (t e s t d i r,n,c o d e)n a m e L i s t=1,2 ,3 ,4 ,5 ,6 ,7、8 ,9,;%这个是我们要辨认的9个数f o r k =1 :n%数据库中每一个说话人的特性f i l e =s pr i n t f%s s%d.w a v ,t e s t d i r,k);跳找出文献的途径 s,f s =w a v r e a d(f i 1 e);v =m fc c(s,f s);%对找到的文献取m f c c变换distm in =in f;k 1 =0;fo r 1 =1:1 en g th
18、 (c o de)d=d i steu(v ,c o d e l );d is t=su m (m i n(d,2)/siz e(d,1);i f dist d i stm indis t m i n =di s t;版这里和tes t函数里面同样 但多了一个具体语者的辨认k 1 =1;en den dm s g=n a m e L ist k 1 m sg b o x (m s g );e n d3.2.6 函数 tr a in一-一该函数就是对音频进行训练,也就是提取特性参数fu n c tio n c o d e=tr a in (t r a i n dir,n )k=1 6;%n u
19、m b er o f c en tr o idsr eq u i r edfo r i =1:n%对数据库中的代码形成码本fil e=sp r in tf(%s s%d.w a v*,tr a in d i r ,i);disp (f i 1 e);s,fs =w a v r ea d(f i l e);v =m f c c (s,f s);%计 算M FC C s提取特性特性,返回值是M e 1倒谱系数,是一个l o g的det得到的c o de i =v q l b g(v ,k);%训练V Q码本 通过矢量量化,得到原说话人的VQ码本en d3.2.7 函数 m e 1 fb一一拟定矩阵
20、的滤波器fu n c ti o n m =m eIfb (p,n,fs)fO =7 0 0 /f s;f n 2 =f 1 o o r (n /2 );Ir =1 o g (1 4-0.5/fO)/(p+1);%c o n v e r t to fft b in n u m b e r s w i t h 0 fo r DC t e r mb l =n *(f 0 *(ex p (0 1 p p+1 *1 r )D);直接转换为FFT 的数字模型b 1 =fl o o r (b l (1)+1 ;b 2 =c ei 1 (b l (2);b 3 =fl o o r(b 1(3);b 4 =m
21、in (fn 2,c e i 1 (b l (4)-1;p f=l o g(l+(b l:b 4)/n /fO)/Ir;fp =fl o o r(p f);p m =p f-f p ;r =fp(b 2:b 4)1 +f p (1:b 3);c =Eb 2 :b 4 1:b 3 +1 ;v =2 *l-p m(b 2:b 4)p m(l:b 3);m =s p a r se(r,c,v ,p,l+fn 2);四、演示分析我们的功能分为两部分:对已经保存的9个数字的语音进行辨别和实时的判断说话人说的是否为一个数.在前者的实验过程中,先把9个数字的声音保存成wav的格式,放在一个文献夹中,作为一个
22、检测的数据库.然后对检测者实行辨认,系统给出提醒是哪个数字.在第二个功能中,实时的录取一段说话人的声音作为模板,提取m fc c 特性参数,随后紧接着进行遇着辨认,也就是让其别人再说相同的话,看是否是原说话者.实验过程及具体功能如下:先打开Mat la b使Curr e nt D i rect o ry为录音及程序所所在的文献夹再打开文献“ente r.m,点ru n运营,打 开ente r界面,点 击 进 入”按钮进入系统。(注:文献包未封装完毕,目前只能通过此方式打开运营。)(如下图 fig u re l)Q enter=I.(f a ilf i gure 1在对数据库中已有的语者进行辨认
23、模块:选择载入语音库语音个数;点击语音库录制模版进行已存语音信息的提取;点击录音-te s t进行现场录音;点击语者判断进行判断数字,并显示出来。在实时语者辨认模块:点击实时录制模板上的“录音-tr a in”按钮,是把新语者的声音以w a v格式存放在“实时模板”文献夹中,接 着 点 击“实时录制模板”,把新的模板提取特性值。随后点击实时语者辨认模板上的“录音-tr a in”按钮,是把语者的声音以w a v格式存放在“测试”文献夹中,再点击“实时语者辨认”,在对测得的声音提取特性值的同时,和实时模板进行比对,然后得出是否是实时模板中的语者。此外面板上的播放按钮都是播放相相应左边录取的声音。
24、想要测量多次,只要接着录音,自动保存,然后程序比对音频就可以。退出只要点击菜单F i l e/E x i t ,退出程序。程序运营截图:(f i g.2)运营后系统界面五、心得体会实验表白,该系统能较好地进行语音的辨认,同时,基于矢量量化技术(VQ)的语音辨认系统具有分类准确,存储数据少,实时响应速度快等综合性能好的特点.矢量量化技术在语音辨认的应用方面,特别是在孤立词语音辨认系统中得到很好的应用,特别是有限状态矢量量化技术,对于语音辨认更为有效。通过这次课程设计,我对语音辨认有了更加形象化的结识,也强化了MATLAB的应用,对将来的学习奠定了基础。附:G U I程序代码f u n c t i
25、 o n p u s h b u t t o n l _ Ca 1 I b a c k (h O b j e c tA e v e n t d a t az h a n d l e s)%h O b j e c t h a n d 1 e t o p u s h b u t t o n l (s e e G C B 0)%e v e n t d a t a r e s e r v e d -t o b e d e f i n e d i n a f u t u r e v e r s i o n o fMA TL A B%h a n d l e s s t r u c t u r e w i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 语音 识别 系统 实验 报告
限制150内