matlab語音識(shí)別系統(tǒng)(源代碼) - 副本_第1頁
matlab語音識(shí)別系統(tǒng)(源代碼) - 副本_第2頁
matlab語音識(shí)別系統(tǒng)(源代碼) - 副本_第3頁
matlab語音識(shí)別系統(tǒng)(源代碼) - 副本_第4頁
matlab語音識(shí)別系統(tǒng)(源代碼) - 副本_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGEPAGE16(威海)(威海)《智能儀器》課程設(shè)計(jì)題目:MATLAB實(shí)現(xiàn)語音識(shí)別功能班級(jí):學(xué)號(hào):姓名:同組人員:任課教師:完成時(shí)間:2012/11/3目錄設(shè)計(jì)任務(wù)及要求………………1語音識(shí)別的簡單介紹2.1語者識(shí)別的概念……………22.2特征參數(shù)的提取……………32.3用矢量量化聚類法生成碼本………………32.4VQ的說話人識(shí)別…………4算法程序分析3.1函數(shù)關(guān)系………………….4 3.2代碼說明……………………53.2.1函數(shù)mfcc………………53.2.2函數(shù)disteu……………53.2.3函數(shù)vqlbg…………….63.2.4函數(shù)test………………63.2.5函數(shù)testDB……………73.2.6函數(shù)train……………83.2.7函數(shù)melfb………………8演示分析…………………….9心得體會(huì)…………………….11附:GUI程序代碼………………12設(shè)計(jì)任務(wù)及要求用MATLAB實(shí)現(xiàn)簡單的語音識(shí)別功能;具體設(shè)計(jì)要求如下:用MATLAB實(shí)現(xiàn)簡單的數(shù)字1~9的語音識(shí)別功能。語音識(shí)別的簡單介紹基于VQ的說話人識(shí)別系統(tǒng),矢量量化起著雙重作用。在訓(xùn)練階段,把每一個(gè)說話者所提取的特征參數(shù)進(jìn)行分類,產(chǎn)生不同碼字所組成的碼本。在識(shí)別(匹配)階段,我們用VQ方法計(jì)算平均失真測度(本系統(tǒng)在計(jì)算距離d時(shí),采用歐氏距離測度),從而判斷說話人是誰。語音識(shí)別系統(tǒng)結(jié)構(gòu)框圖如圖1所示。圖1語音識(shí)別系統(tǒng)結(jié)構(gòu)框圖2.1語者識(shí)別的概念語者識(shí)別就是根據(jù)說話人的語音信號(hào)來判別說話人的身份。語音是人的自然屬性之一,由于說話人發(fā)音器官的生理差異以及后天形成的行為差異,每個(gè)人的語音都帶有強(qiáng)烈的個(gè)人色彩,這就使得通過分析語音信號(hào)來識(shí)別說話人成為可能。用語音來鑒別說話人的身份有著許多獨(dú)特的優(yōu)點(diǎn),如語音是人的固有的特征,不會(huì)丟失或遺忘;語音信號(hào)的采集方便,系統(tǒng)設(shè)備成本低;利用電話網(wǎng)絡(luò)還可實(shí)現(xiàn)遠(yuǎn)程客戶服務(wù)等。因此,近幾年來,說話人識(shí)別越來越多的受到人們的重視。與其他生物識(shí)別技術(shù)如指紋識(shí)別、手形識(shí)別等相比較,說話人識(shí)別不僅使用方便,而且屬于非接觸性,容易被用戶接受,并且在已有的各種生物特征識(shí)別技術(shù)中,是唯一可以用作遠(yuǎn)程驗(yàn)證的識(shí)別技術(shù)。因此,說話人識(shí)別的應(yīng)用前景非常廣泛:今天,說話人識(shí)別技術(shù)已經(jīng)關(guān)系到多學(xué)科的研究領(lǐng)域,不同領(lǐng)域中的進(jìn)步都對(duì)說話人識(shí)別的發(fā)展做出了貢獻(xiàn)。說話人識(shí)別技術(shù)是集聲學(xué)、語言學(xué)、計(jì)算機(jī)、信息處理和人工智能等諸多領(lǐng)域的一項(xiàng)綜合技術(shù),應(yīng)用需求將十分廣闊。在吃力語音信號(hào)的時(shí)候如何提取信號(hào)中關(guān)鍵的成分尤為重要。語音信號(hào)的特征參數(shù)的好壞直接導(dǎo)致了辨別的準(zhǔn)確性。2.2特征參數(shù)的提取對(duì)于特征參數(shù)的選取,我們使用mfcc的方法來提取。MFCC參數(shù)是基于人的聽覺特性利用人聽覺的屏蔽效應(yīng),在Mel標(biāo)度頻率域提取出來的倒譜特征參數(shù)。MFCC參數(shù)的提取過程如下:1.對(duì)輸入的語音信號(hào)進(jìn)行分幀、加窗,然后作離散傅立葉變換,獲得頻譜分布信息。設(shè)語音信號(hào)的DFT為:(1)其中式中x(n)為輸入的語音信號(hào),N表示傅立葉變換的點(diǎn)數(shù)。2.再求頻譜幅度的平方,得到能量譜。3.將能量譜通過一組Mel尺度的三角形濾波器組。我們定義一個(gè)有M個(gè)濾波器的濾波器組(濾波器的個(gè)數(shù)和臨界帶的個(gè)數(shù)相近),采用的濾波器為三角濾波器,中心頻率為f(m),m=1,2,3,···,M本系統(tǒng)取M=100。4.計(jì)算每個(gè)濾波器組輸出的對(duì)數(shù)能量。(2)其中為三角濾波器的頻率響應(yīng)。5.經(jīng)過離散弦變換(DCT)得到MFCC系數(shù)。MFCC系數(shù)個(gè)數(shù)通常取20—30,常常不用0階倒譜系數(shù),因?yàn)樗从车氖穷l譜能量,故在一般識(shí)別系統(tǒng)中,將稱為能量系數(shù),并不作為倒譜系數(shù),本系統(tǒng)選取20階倒譜系數(shù)。2.3用矢量量化聚類法生成碼本我們將每個(gè)待識(shí)的說話人看作是一個(gè)信源,用一個(gè)碼本來表征。碼本是從該說話人的訓(xùn)練序列中提取的MFCC特征矢量聚類而生成。只要訓(xùn)練的序列足夠長,可認(rèn)為這個(gè)碼本有效地包含了說話人的個(gè)人特征,而與講話的內(nèi)容無關(guān)。本系統(tǒng)采用基于分裂的LBG的算法設(shè)計(jì)VQ碼本,為訓(xùn)練序列,B為碼本。具體實(shí)現(xiàn)過程如下:1.取提取出來的所有幀的特征矢量的型心(均值)作為第一個(gè)碼字矢量B1。2.將當(dāng)前的碼本Bm根據(jù)以下規(guī)則分裂,形成2m個(gè)碼字。(4)其中m從1變化到當(dāng)前的碼本的碼字?jǐn)?shù),ε是分裂時(shí)的參數(shù),本文ε=0.01。3.根據(jù)得到的碼本把所有的訓(xùn)練序列(特征矢量)進(jìn)行分類,然后按照下面兩個(gè)公式計(jì)算訓(xùn)練矢量量化失真量的總和以及相對(duì)失真(n為迭代次數(shù),初始n=0,=∞,B為當(dāng)前的碼書),若相對(duì)失真小于某一閾值ε,迭代結(jié)束,當(dāng)前的碼書就是設(shè)計(jì)好的2m個(gè)碼字的碼書,轉(zhuǎn)5。否則,轉(zhuǎn)下一步。量化失真量和:(5)相對(duì)失真:(6)4.重新計(jì)算各個(gè)區(qū)域的新型心,得到新的碼書,轉(zhuǎn)3。5.重復(fù)2,3和4步,直到形成有M個(gè)碼字的碼書(M是所要求的碼字?jǐn)?shù)),其中D0=10000。2.4VQ的說話人識(shí)別設(shè)是未知的說話人的特征矢量,共有T幀是訓(xùn)練階段形成的碼書,表示碼書第m個(gè)碼字,每一個(gè)碼書有M個(gè)碼字。再計(jì)算測試者的平均量化失真D,并設(shè)置一個(gè)閾值,若D小于此閾值,則是原訓(xùn)練者,反之則認(rèn)為不是原訓(xùn)練者。(7)算法程序分析在具體的實(shí)現(xiàn)過程當(dāng)中,采用了matlab軟件來幫助完成這個(gè)項(xiàng)目。在matlab中主要由采集,分析,特征提取,比對(duì)幾個(gè)重要部分。以下為在實(shí)際的操作中,具體用到得函數(shù)關(guān)系和作用一一列舉在下面。3.1函數(shù)關(guān)系主要有兩類函數(shù)文件Train.m和Test.m在Train.m調(diào)用Vqlbg.m獲取訓(xùn)練錄音的vq碼本,而Vqlbg.m調(diào)用mfcc.m獲取單個(gè)錄音的mel倒譜系數(shù),接著mfcc.m調(diào)用Melfb.m將能量譜通過一組Mel尺度的三角形濾波器組。在Test.m函數(shù)文件中調(diào)用Disteu.m計(jì)算訓(xùn)練錄音(提供vq碼本)與測試錄音(提供mfcc)mel倒譜系數(shù)的距離,即判斷兩聲音是否為同一錄音者提供。Disteu.m調(diào)用mfcc.m獲取單個(gè)錄音的mel倒譜系數(shù)。mfcc.m調(diào)用Melfb.m將能量譜通過一組Mel尺度的三角形濾波器組。3.2具體代碼說明3.2.1函數(shù)mffc:functionr=mfcc(s,fs)m=100;n=256;l=length(s);nbFrame=floor((l-n)/m)+1;%沿-∞方向取整fori=1:nforj=1:nbFrameM(i,j)=s(((j-1)*m)+i);%對(duì)矩陣M賦值endendh=hamming(n);%加hamming窗,以增加音框左端和右端的連續(xù)性M2=diag(h)*M;fori=1:nbFrameframe(:,i)=fft(M2(:,i));%對(duì)信號(hào)進(jìn)行快速傅里葉變換FFTendt=n/2;tmax=l/fs;m=melfb(20,n,fs);%將上述線性頻譜通過Mel頻率濾波器組得到Mel頻譜,下面在將其轉(zhuǎn)化成對(duì)數(shù)頻譜n2=1+floor(n/2);z=m*abs(frame(1:n2,:)).^2;r=dct(log(z));%將上述對(duì)數(shù)頻譜,經(jīng)過離散余弦變換(DCT)變換到倒譜域,即可得到Mel倒譜系數(shù)(MFCC參數(shù))3.2.2函數(shù)disteu計(jì)算測試者和模板碼本的距離functiond=disteu(x,y)[M,N]=size(x);%音頻x賦值給【M,N】[M2,P]=size(y);%音頻y賦值給【M2,P】if(M~=M2)error('不匹配!')%兩個(gè)音頻時(shí)間長度不相等endd=zeros(N,P);if(N<P)%在兩個(gè)音頻時(shí)間長度相等的前提下copies=zeros(1,P);forn=1:Nd(n,:)=sum((x(:,n+copies)-y).^2,1);endelsecopies=zeros(1,N);forp=1:Pd(:,p)=sum((x-y(:,p+copies)).^2,1)';end%%成對(duì)歐氏距離的兩個(gè)矩陣的列之間的距離endd=d.^0.5;3.2.3函數(shù)vqlbg該函數(shù)利用矢量量化提取了音頻的vq碼本functionr=vqlbg(d,k)e=.01;r=mean(d,2);dpr=10000;fori=1:log2(k)r=[r*(1+e),r*(1-e)];while(1==1)z=disteu(d,r);[m,ind]=min(z,[],2);t=0;forj=1:2^ir(:,j)=mean(d(:,find(ind==j)),2);x=disteu(d(:,find(ind==j)),r(:,j));forq=1:length(x)t=t+x(q);endendif(((dpr-t)/t)<e)break;elsedpr=t;endendend3.2.4函數(shù)testfunctionfinalmsg=test(testdir,n,code)fork=1:n%readtestsoundfileofeachspeakerfile=sprintf('%ss%d.wav',testdir,k);[s,fs]=wavread(file);v=mfcc(s,fs);%得到測試人語音的mel倒譜系數(shù)distmin=4;%閾值設(shè)置處%就判斷一次,因?yàn)槟0謇锩嬷挥幸粋€(gè)文件d=disteu(v,code{1});%計(jì)算得到模板和要判斷的聲音之間的“距離”dist=sum(min(d,[],2))/size(d,1);%變換得到一個(gè)距離的量%測試閾值數(shù)量級(jí)mTLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globaldata2;%globaldataDN2;sound(data2)%sound(dataDN2)axes(handles.axes2)%settoplotataxes1plot(data2);%plot(dataDN2);xlabel('測試采樣序列'),ylabel('信號(hào)幅');%xlabel('2aê?2é?ùDòáD'),ylabel('sym8D?2¨?μ??oóμ?D?o?·ù');%%gridon;clear%Executesonbuttonpressinpushbutton11.functionpushbutton11_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton11(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalmoodle;testDB('測試\',1,moodle)%Executesonbuttonpressinpushbutton12.functionpushbutton12_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton12(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalmoodle;moodle=train('實(shí)時(shí)模板\',1)%Executesonselectionchangeinpopupmenu3.functionpopupmenu3_Callback(hObject,eventdata,handles)%hObjecthandletopopupmenu3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:contents=get(hObject,'String')returnspopupmenu3contentsascellarray%contents{get(hObject,'Value')}returnsselecteditemfrompopupmenu3str=get(handles.popupmenu3,'String');val=str2num(str{get(handles.popupmenu3,'Value')});switchvalcase1case2case3case4case5case6case7case8case9end%Executesduringobjectcreation,aftersettingallproperties.functionpopupmenu3_CreateFcn(hObject,eventdata,handles)%hObjecthandletopopupmenu3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:popupmenucontrolsusuallyhaveawhitebackgroundonWindows.%SeeISPCandCOMPUTER.ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end%Executesonbuttonpressinpushbutton9.functionpushbutton13_Callback(hObject,eventdata,handles)%hOb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論