


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、智能儀器課程設(shè)計題目:MATLAB實現(xiàn)語音識別功能班級:學號:姓名:同組人員:任課教帥:完成時間:2012/11/3目錄一、設(shè)計任務(wù)及要求1二、語音識別的簡單介紹2.1語者識別的概念22.2 特征參數(shù)的提取32.3用矢量量化聚類法生成碼本32.4VQ的說話人識別4三、算法程序分析3.1函數(shù)關(guān)系.43.2 代碼說明53.2.1 函數(shù)mfcc53.2.2 函數(shù)disteu53.2.3 函數(shù)vqlbg.63.2.4 函數(shù)test63.2.5 函數(shù)testDB73.2.6 函數(shù)train83.2.7 函數(shù)melfb8四、演示分析.9五、心得體會.11附:GUI程序代碼12設(shè)計任務(wù)及要求用MATLAB實
2、現(xiàn)簡單的語音識別功能;具體設(shè)計要求如下:用MATLAB實現(xiàn)簡單的數(shù)字19的語音識別功能。二、語音識別的簡單介紹基丁VQ的說話人識別系統(tǒng),欠量量化起著雙重作用。在訓練階段,把每一個說話者所提取的特征參數(shù)進行分類,產(chǎn)生不同碼字所組成的碼本。在識別(匹配)階段,我們用VQ方法計算平均失真測度(本系統(tǒng)在計算距離d時,采用歐氏距離測度),從而判斷說話人是誰。語音識別系統(tǒng)結(jié)構(gòu)框圖如圖1所示。VQ根型誥本庫:說話人的碼本施處理M提取|I訓練卜'說活人2的碼志清言_a預(yù)加更.JL/I瀉本匹配信圖1語音識別系統(tǒng)結(jié)構(gòu)框圖2.1語者識別的概念語者識別就是根據(jù)說話人的語音信號來判別說話人的身份。語音是人的自然
3、屆性之一,由丁說話人發(fā)音器官的生理差異以及后天形成的行為差異,每個人的語音都帶有強烈的個人色彩,這就使得通過分析語音信號來識別說話人成為可能。用語音來鑒別說話人的身份有著許多獨特的優(yōu)點,如語音是人的固有的特征,不會丟失或遺忘;語音信號的采集方便,系統(tǒng)設(shè)備成本低;利用電話網(wǎng)絡(luò)還可實現(xiàn)遠程客戶服務(wù)等。因此,近幾年來,說話人識別越來越多的受到人們的重視。與其他生物識別技術(shù)如指紋識別、手形識別等相比較,說話人識別不僅使用方便,而且屆丁非接觸性,容易被用戶接受,并且在已有的各種生物特征識別技術(shù)中,是唯一可以用作遠程驗證的識別技術(shù)。因此,說話人識別的應(yīng)用前景非常廣泛:今天,說話人識別技術(shù)已經(jīng)關(guān)系到多學科的
4、研究領(lǐng)域,不同領(lǐng)域中的進步都對說話人識別的發(fā)展做出了貢獻。說話人識別技術(shù)是集聲學、語言學、計算機、信息處理和人工智能等諸多領(lǐng)域的一項綜合技術(shù),應(yīng)用需求將十分廣闊。在吃力語音信號的時候如何提取信號中關(guān)鍵的成分尤為重要。語音信號的特征參數(shù)的好壞直接導致了辨別的準確性。2.2特征參數(shù)的提取對丁特征參數(shù)的選取,我們使用mfcc的方法來提取。MFC茲數(shù)是基丁人的聽覺特性利用人聽覺的屏蔽效應(yīng),在Mel標度頻率域提取出來的倒譜特征參數(shù)。MFC爹數(shù)的提取過程如下:1. 對輸入的語音信號進行分幀、加窗,然后作離散傅立葉變換,獲得頻譜分布信息。設(shè)語音信號的DFT為:Xa(k)x(n)e,0kN1(1)n1其中式中
5、x(n)為輸入的語音信號,N表示傅立葉變換的點數(shù)。2. 再求頻譜幅度的平方,得到能量譜。3. 將能量譜通過一組Mel尺度的三角形濾波器組。我們定義一個有M個濾波器的濾波器組(濾波器的個數(shù)和臨界帶的個數(shù)相近),采用的濾波器為三角濾波器,中心頻率為f(m),m=1,2,3,,M本系統(tǒng)取M=1004. 計算每個濾波器組輸出的對數(shù)能量。N1_2S(m)lnJXa(k)|Hm(k),0mM1其中Hm(k)為二角濾波器的頻率響應(yīng)。5. 經(jīng)過離散弦變換(DCT得到MFCC數(shù)。M1C(n)S(m)cos(n(m0.5/m),(3)m00nN1MFCC數(shù)個數(shù)通常取20-30,常常不用0階倒譜系數(shù),因為它反映的是
6、頻譜能量,故在一般識別系統(tǒng)中,將稱為能量系數(shù),并不作為倒譜系數(shù),本系統(tǒng)選取20階倒譜系數(shù)。2.3用欠量量化聚類法生成碼本我們將每個待識的說話人看作是一個信源,用一個碼本來表征。碼本是從該說話人的訓練序列中提取的MFC(»征欠量聚類而生成。只要訓練的序列足夠長,可認為這個碼本有效地包含了說話人的個人特征,而與講話的內(nèi)容無關(guān)。本系統(tǒng)采用基丁分裂的LBG的算法設(shè)計VQ碼本,Xk(k1,2,K)為訓練序歹0,B為碼本。具體實現(xiàn)過程如下:1. 取提取出來的所有幀的特征欠量的型心(均值)作為第一個碼字欠量B1。2. 將當前的碼本Bm艮據(jù)以下規(guī)則分裂,形成2m碼字。(BmBm(1)(4)BmBm(
7、1)其中m從1變化到當前的碼本的碼字數(shù),£是分裂時的參數(shù),本文£=0.01。根據(jù)得到的碼本把所有的訓練序列(特征欠量)進行分類,然后按照下面兩個公式計算訓練欠量量化失真量的總和Dn以及相對失真(n為迭代次數(shù),初始n=0,D1=8,B為當前的碼書),若相對失真小丁某一閾值£,迭代結(jié)束,當前的碼書就是設(shè)計好的2m碼字的碼書,轉(zhuǎn)5。否則,轉(zhuǎn)下一步量化失真量和:KD(n)mind(Xk,B)(5)相對失真:D(n1)Dn|_n|Dn(6)3. 重新計算各個區(qū)域的新型心,得到新的碼書,轉(zhuǎn)3。重復(fù)2,3和4步,直到形成有M個碼字的碼書(M是所要求的碼字數(shù)),其中D0=1000
8、Q2.4VQ的說話人識別設(shè)是未知的說話人的特征欠量X1,K,Xt),共有T幀是訓練階段形成的碼書,表示碼書第m個碼字,每一個碼書有M個碼字。再計算測試者的平均量化失真D,并設(shè)置一個閾值,若D小丁此閾值,則是原訓練者,反之則認為不是原訓練者。D1/T.mind(Xj,Bm)(7)j11mM三、算法程序分析在具體的實現(xiàn)過程當中,采用了matlab軟件來幫助完成這個項目。在matlab中主要由采集,分析,特征提取,比對幾個重要部分。以下為在實際的操作中,具體用到得函數(shù)關(guān)系和作用一一列舉在下面。3.1函數(shù)關(guān)系主要有兩類函數(shù)文件Train.m和Test.m在Train.m調(diào)用Vqlbg.m獲取訓練錄音的
9、vq碼本,而Vqlbg.m調(diào)用mfcc.m獲取單個錄音的mel倒譜系數(shù),接著mfcc.m調(diào)用Melfb.m-將能量譜通過一組Mel尺度的三角形濾波器組。在Test.m函數(shù)文件中調(diào)用Disteu.m計算訓練錄音(提供vq碼本)與測試錄音(提供mfcc)mel倒譜系數(shù)的距離,即判斷兩聲音是否為同一錄音者提供。Disteu.m調(diào)用mfcc.m獲取單個錄音的mel倒譜系數(shù)。mfcc.m調(diào)用Melfb.m-將能量譜通過一組Mel尺度的三角形濾波器組。3.2.1 3.2具體代碼說明函數(shù)mffc:functionr=mfcc(s,fs)m=100;n=256;l=length(s);nbFrame=floo
10、r(l-n)/m)+1;%沿-00方向取整fori=1:nforj=1:nbFrameM(i,j)=s(j-1)*m)+i);%對矩陣M賦值endendh=hamming(n);%加hamming窗,以增加音框左端和右端的連續(xù)性M2=diag(h)*M;fori=1:nbFrameframe(:,i)=fft(M2(:,i);%對信號進行快速傅里葉變換FFTendt=n/2;tmax=l/fs;m=melfb(20,n,fs);%務(wù)上述線性頻譜通過Mel頻率濾波器組得到Mel頻譜,下面在將其轉(zhuǎn)化成對數(shù)頻譜n2=1+floor(n/2);z=m*abs(frame(1:n2,:).A2;r=dc
11、t(log(z);%將上述對數(shù)頻譜,經(jīng)過離散余弦變換(DCT)變換到倒譜域,即可得到Mel倒譜系數(shù)(MFCC數(shù))函數(shù)disteu-計算測試者和棋板碼本的距離functiond=disteu(x,y)M,N=size(x);%音頻x賦值給【MN1M2,P=size(y);%音頻y賦值給【M2P】if(M=M2)error('不匹配!)%兩個音頻時間長度不相等endd=zeros(N,P);if(N<P)%在兩個音頻時間長度相等的前提下copies=zeros(1,P);forn=1:Nd(n,:)=sum(x(:,n+copies)-y),2,1);endelsecopies=ze
12、ros(1,N);forp=1:Pd(:,p)=sum(x-y(:,p+copies).A2,1)'end%成對歐氏距離的兩個矩陣的列之間的距離endd=d.A0.5;函數(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:2Air(:,j)=mean(d(:,find(ind=j),2);x=disteu(d(:,find(ind
13、=j),r(:,j);forq=1:length(x)t=t+x(q);endendif(dpr-t)/t)<e)break;elsedpr=t;endendend函數(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è)置處%就判斷一次,因為棋板里面只有一個文件d=dist
14、eu(v,code1);%計算得到棋板和要判斷的聲音之間的“距離”dist=sum(min(d,2)/size(d,1);%變換得到一個距離的量%測試閾值數(shù)量級msgc=sprintf('與棋板語音信號的差值為:10f',dist);disp(msgc);ifdist<=distmin%msg=sprintf('求!n',k);finalmsg='disp(msg);end%此人不匹配%此人匹配一個閾值,小于閾值,則就是這個人。第%d位說話者與棋板語音信號匹配,符合要此位說話者符合要求!'%界面顯示語句,可隨意設(shè)ifdist>dist
15、minmsg=sprintf('第%d位說話者與棋板語音信號不匹配,不符合要求!n',k);finalmsg='此位說話者不符合要求!'%界面顯示語句,可隨意設(shè)定disp(msg);endend函數(shù)testDB這個函數(shù)實際上是對數(shù)據(jù)庫一個查詢,根據(jù)測試者的聲音,找相應(yīng)的文件,并且給出是誰的提示functiontestmsg=testDB(testdir,n,code)nameList='1','2','3','4','5','6','7','8
16、','9'%這個是我們要識別的9個數(shù)fork=1:n%數(shù)據(jù)庫中每一個說話人的特征file=sprintf('%ss%d.wav',testdir,k);瞰出文件的路徑對找到的文件取mfcc變換s,fs=wavread(file);v=mfcc(s,fs);distmin=inf;k1=0;forl=1:length(code)d=disteu(v,codel);dist=sum(min(d,2)/size(d,1);ifdist<distmin這里和test函數(shù)里面一樣但多了一個具體語distmin=dist;%者的識別k1=l;endendmsg
17、=nameListk1msgbox(msg);end函數(shù)train-該函數(shù)就是對首頻進行訓練,也就是提取特征參數(shù)functioncode=train(traindir,n)k=16;%numberofcentroidsrequiredfori=1:n%對數(shù)據(jù)庫中的代碼形成碼本file=sprintf('%ss%d.wav',traindir,i);disp(file);計算MFCC's提取特征特征,返回值是Mel倒譜系數(shù),是一個log的dct得到的訓練V眼本通過矢量量化,得到原說s,fs=wavread(file);v=mfcc(s,fs);%codei=vqlbg(v
18、,k);%話人的VQ碼本end四、演示分析我們的功能分為兩部分:對已經(jīng)保存的9個數(shù)字的語音進行辨別和實時的判斷說話人說的是否為一個數(shù).在前者的實驗過程中,先把9個數(shù)字的聲音保存成wav的格式,放在一個文件夾中,作為一個檢測的數(shù)據(jù)庫.然后對檢測者實行識別,系統(tǒng)給出提示是哪個數(shù)字.在第二個功能中,實時的錄取一段說話人的聲音作為棋板,提取mfcc特征參數(shù),隨后緊接著進行遇著識別,也就是讓其他人再說相同的話,看是否是原說話者.實驗過程及具體功能如下:先打開Matlab使CurrentDirectory為錄音及程序所所在的文件夾再打開文件“enter.m”,點run運行,打開enter界面,點擊“進入”按鈕進入系統(tǒng)。(注:文件包未封裝完畢,目前只能通過此方式打開運行。)(如下圖figure1)figurel在對數(shù)據(jù)庫中已有的語者進行識別模塊選擇載入語音庫語音個數(shù);點擊語音庫錄制模版進行已存語音信息的提取;點擊錄音-test進行現(xiàn)場
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學年一年級下學期英語教學設(shè)計(牛津上海版(試用本))
- 12 干點家務(wù)活 (教學設(shè)計)2023-2024學年統(tǒng)編版道德與法治一年級下冊
- 核心價值觀友善教育
- 樹干兒童畫課件
- 三年級英語上冊 Unit 2 Friends and Colours Lesson 8 Letters教學設(shè)計 冀教版(三起)
- 七年級英語上冊 Unit 4 Food and Restaurants Lesson 22 In the Restaurant教學設(shè)計 (新版)冀教版
- Unit 7 Happy Birthday Section A(2a-2e)教學設(shè)計 2024-2025學年人教版(2024)七年級英語上冊
- 23《月跡》教學設(shè)計-2024-2025學年語文五年級上冊統(tǒng)編版
- 藝術(shù)培訓年終工作總結(jié)
- 七年級生物下冊 第四單元 生物圈中的人 第八章 人是生殖和發(fā)育 第二節(jié) 人的生長發(fā)育和青春期教學設(shè)計(1)(新版)蘇教版
- 仿生原理與創(chuàng)新設(shè)計課件
- 小學英語《I could eat a horse》優(yōu)質(zhì)教學課件
- 22、小便斗-工程建筑類
- 《滅火器維修》GA95-2015(全文)
- 學校學生特異體質(zhì)調(diào)查表
- vmvare虛擬化平臺巡檢細則和方法
- 市政工程監(jiān)理規(guī)劃范本(完整版)
- 剪刀式升降機
- 法院辦公室廉政風險防控責任清單
- 并聯(lián)高抗中性點小電抗補償原理分析及參數(shù)選擇方法
- 水蛭深加工提取天然水蛭素項目資金申請報告寫作模板
評論
0/150
提交評論