matlab語(yǔ)音識(shí)別系統(tǒng)_第1頁(yè)
matlab語(yǔ)音識(shí)別系統(tǒng)_第2頁(yè)
matlab語(yǔ)音識(shí)別系統(tǒng)_第3頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、智能儀器課程設(shè)計(jì)題 目:MATLAB 實(shí)現(xiàn)語(yǔ)音識(shí)別功能 班 級(jí):學(xué) 號(hào):姓 名:同組人員:任課教師:完成時(shí)間:2012/11/3目錄一、設(shè)計(jì)任務(wù)及要求 1二、語(yǔ)音識(shí)別的簡(jiǎn)單介紹2.1語(yǔ)者識(shí)別的概念22.2 特征參數(shù)的提取 32.3用矢量量化聚類法生成碼本 32.4VQ的說(shuō)話人識(shí)別 4三、算法程序分析3.1函數(shù)關(guān)系.43.2 代碼說(shuō)明 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附:G

2、UI程序代碼12、設(shè)計(jì)任務(wù)及要求用MATLAB實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)音識(shí)別功能;具體設(shè)計(jì)要求如下:用MATLAB實(shí)現(xiàn)簡(jiǎn)單的數(shù)字19的語(yǔ)音識(shí)別功能二、語(yǔ)音識(shí)別的簡(jiǎn)單介紹基于VQ的說(shuō)話人識(shí)別系統(tǒng),矢量量化起著雙重作用。在訓(xùn)練階段,把每一個(gè) 說(shuō)話者所提取的特征參數(shù)進(jìn)行分類, 產(chǎn)生不同碼字所組成的碼本。在識(shí)別(匹配) 階段,我們用VQ方法計(jì)算平均失真測(cè)度(本系統(tǒng)在計(jì)算距離d時(shí),采用歐氏距離 測(cè)度),從而判斷說(shuō)話人是誰(shuí)。語(yǔ)音識(shí)別系統(tǒng)結(jié)構(gòu)框圖如圖1所示諳言數(shù)據(jù)預(yù)處理加漢明窗訓(xùn)持征琴數(shù)識(shí)別亠A標(biāo) 取VQ 慎型111練k馮本 心配 il算歸出識(shí)就結(jié)果闔碼本庫(kù):說(shuō)話人:的碼孫圖1語(yǔ)音識(shí)別系統(tǒng)結(jié)構(gòu)框圖2.1語(yǔ)者識(shí)別的概念語(yǔ)

3、者識(shí)別就是根據(jù)說(shuō)話人的語(yǔ)音信號(hào)來(lái)判別說(shuō)話人的身份。 語(yǔ)音是人的自然 屬性之一,由于說(shuō)話人發(fā)音器官的生理差異以及后天形成的行為差異,每個(gè)人的語(yǔ)音都帶有強(qiáng)烈的個(gè)人色彩,這就使得通過(guò)分析語(yǔ)音信號(hào)來(lái)識(shí)別說(shuō)話人成為可 能。用語(yǔ)音來(lái)鑒別說(shuō)話人的身份有著許多獨(dú)特的優(yōu)點(diǎn), 如語(yǔ)音是人的固有的特征, 不會(huì)丟失或遺忘;語(yǔ)音信號(hào)的采集方便,系統(tǒng)設(shè)備成本低;利用電話網(wǎng)絡(luò)還可實(shí) 現(xiàn)遠(yuǎn)程客戶服務(wù)等。因此,近幾年來(lái),說(shuō)話人識(shí)別越來(lái)越多的受到人們的重視。 與其他生物識(shí)別技術(shù)如指紋識(shí)別、手形識(shí)別等相比較,說(shuō)話人識(shí)別不僅使用方便, 而且屬于非接觸性,容易被用戶接受,并且在已有的各種生物特征識(shí)別技術(shù)中, 是唯一可以用作遠(yuǎn)程驗(yàn)證的識(shí)

4、別技術(shù)。因此,說(shuō)話人識(shí)別的應(yīng)用前景非常廣泛: 今天,說(shuō)話人識(shí)別技術(shù)已經(jīng)關(guān)系到多學(xué)科的研究領(lǐng)域, 不同領(lǐng)域中的進(jìn)步都對(duì)說(shuō) 話人識(shí)別的發(fā)展做出了貢獻(xiàn)。說(shuō)話人識(shí)別技術(shù)是集聲學(xué)、語(yǔ)言學(xué)、計(jì)算機(jī)、信息 處理和人工智能等諸多領(lǐng)域的一項(xiàng)綜合技術(shù),應(yīng)用需求將十分廣闊。在吃力語(yǔ)音 信號(hào)的時(shí)候如何提取信號(hào)中關(guān)鍵的成分尤為重要。 語(yǔ)音信號(hào)的特征參數(shù)的好壞直 接導(dǎo)致了辨別的準(zhǔn)確性。2.2特征參數(shù)的提取對(duì)于特征參數(shù)的選取,我們使用 mfcc的方法來(lái)提取。MFC(參數(shù)是基于人的 聽(tīng)覺(jué)特性利用人聽(tīng)覺(jué)的屏蔽效應(yīng),在 Mel標(biāo)度頻率域提取出來(lái)的倒譜特征參數(shù)。MFC(參數(shù)的提取過(guò)程如下:1. 對(duì)輸入的語(yǔ)音信號(hào)進(jìn)行分幀、加窗,然后

5、作離散傅立葉變換,獲得頻譜 分布信息。設(shè)語(yǔ)音信號(hào)的DFT為:N 1j 2 nkXa(k)x(n)e ,0 k N 1( 1)n 1其中式中x(n)為輸入的語(yǔ)音信號(hào),N表示傅立葉變換的點(diǎn)數(shù)。2. 再求頻譜幅度的平方,得到能量譜。3. 將能量譜通過(guò)一組Mel尺度的三角形濾波器組。我們定義一個(gè)有M個(gè)濾波器的濾波器組(濾波器的個(gè)數(shù)和臨界帶的個(gè)數(shù)相近), 采用的濾波器為三角濾波器,中心頻率為f(m),m=1,2,3, ,M本系統(tǒng)取M=10Q4. 計(jì)算每個(gè)濾波器組輸出的對(duì)數(shù)能量。N 12S(m) In' JXa(k) | Hm(k),0 m M 1其中Hm(k)為三角濾波器的頻率響應(yīng)。5. 經(jīng)過(guò)離

6、散弦變換(DCT得到MFC系數(shù)。M 1C(n) S (m)cos( n(m 0.5/m),(3)m 00 n N 1MFCC系數(shù)個(gè)數(shù)通常取2030,常常不用0階倒譜系數(shù),因?yàn)樗从车氖穷l譜能 量,故在一般識(shí)別系統(tǒng)中,將稱為能量系數(shù),并不作為倒譜系數(shù),本系統(tǒng)選取 20階倒譜系數(shù)。2.3用矢量量化聚類法生成碼本我們將每個(gè)待識(shí)的說(shuō)話人看作是一個(gè)信源,用一個(gè)碼本來(lái)表征。碼本是從該 說(shuō)話人的訓(xùn)練序列中提取的 MFC(特征矢量聚類而生成。只要訓(xùn)練的序列足夠長(zhǎng), 可認(rèn)為這個(gè)碼本有效地包含了說(shuō)話人的個(gè)人特征,而與講話的內(nèi)容無(wú)關(guān)。本系統(tǒng)采用基于分裂的LBG的算法設(shè)計(jì)VQ碼本,Xk(k 1,2, ,K)為訓(xùn)練序

7、列,B為碼本。具體實(shí)現(xiàn)過(guò)程如下:1. 取提取出來(lái)的所有幀的特征矢量的型心(均值)作為第一個(gè)碼字矢量B1。2. 將當(dāng)前的碼本Bn根據(jù)以下規(guī)則分裂,形成2m個(gè)碼字。BmBm(1)( 4)BmBm(1)其中m從1變化到當(dāng)前的碼本的碼字?jǐn)?shù),&是分裂時(shí)的參數(shù),本文&=0.01 o3. 根據(jù)得到的碼本把所有的訓(xùn)練序列(特征矢量)進(jìn)行分類,然后按照下面兩個(gè)公式計(jì)算訓(xùn)練矢量量化失真量的總和Dn以及相對(duì)失真(n為迭代次數(shù),初始n=0, D1=x,B為當(dāng)前的碼書),若相對(duì)失真小于某一閾值&,迭代結(jié)束,當(dāng)前的碼書就是設(shè)計(jì)好的2n個(gè)碼字的碼書,轉(zhuǎn)5。否則,轉(zhuǎn)下一步量化失真量和:KD(n)mi

8、nd(Xk,B)(5)k 1相對(duì)失真:(6)D(n 1) Dn D74. 重新計(jì)算各個(gè)區(qū)域的新型心,得到新的碼書,轉(zhuǎn)3o5重復(fù)2 ,3和4步,直到形成有M個(gè)碼字的碼書(M是所要求的碼字?jǐn)?shù)), 其中 D0=1000Q 2.4 VQ的說(shuō)話人識(shí)別設(shè)是未知的說(shuō)話人的特征矢量X1,K ,Xt,共有T幀是訓(xùn)練階段形成的碼書,表示碼書第m個(gè)碼字,每一個(gè)碼書有M個(gè)碼字。再計(jì)算測(cè)試者的平均量化失真 D, 并設(shè)置一個(gè)閾值,若D小于此閾值,則是原訓(xùn)練者,反之則認(rèn)為不是原訓(xùn)練者。D 1/Tj1mind(Xj,Bm)(7)J1 m M三、算法程序分析在具體的實(shí)現(xiàn)過(guò)程當(dāng)中,采用了 matlab軟件來(lái)幫助完成這個(gè)項(xiàng)目。在m

9、atlab 中主要由采集,分析,特征提取,比對(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-將能量譜通過(guò)一組 Mel尺度的三角形濾波器組。在Test.m函數(shù)文件中調(diào)用Disteu.m計(jì)算訓(xùn)練錄音(提供vq碼本)與測(cè)試 錄音(提供mfcc) mel倒譜系數(shù)的距離,即判斷兩聲音是否為同一錄音者提供。 Disteu.m 調(diào)用mfcc.m獲取單個(gè)錄音的

10、meI倒譜系數(shù)。mfcc.m調(diào)用Melfb.m- 將能量譜通過(guò)一組Mel尺度的三角形濾波器組。3.2 具體代碼說(shuō)明3.2.1 函數(shù) mffc: function r = mfcc(s, fs)m = 100;n = 256;l = length(s);nbFrame = floor(l - n) / m) + 1; %沿-x方向取整for i = 1:nfor j = 1:nbFrameM(i, j) = s(j - 1) * m) + i); %對(duì)矩陣 M賦值endendh = hamming(n); % 加 hamming 窗,以增加音框左端和右端的連續(xù)性M2 = diag(h) * M;

11、for i = 1:nbFrameframe(:,i) = fft(M2(:, i); %對(duì)信號(hào)進(jìn)行快速傅里葉變換 FFTendt = n / 2;tmax = l / fs;m= melfb(20, n, fs); %將上述線性頻譜通過(guò) Mel 頻率濾波器組得到 Mel 頻 譜 , 下面在將其轉(zhuǎn)化成對(duì)數(shù)頻譜n2 = 1 + floor(n / 2);z = m * abs(frame(1: n2, :).A2;r = dct(log(z); %將上述對(duì)數(shù)頻譜,經(jīng)過(guò)離散余弦變換(DCT)變換到倒譜域,即可得到Mel倒譜系數(shù)(MFCC參數(shù))3.2.2 函數(shù) disteu- 計(jì)算測(cè)試者和模板碼本的

12、距離function d = disteu(x, y) M, N = size(x); % 音頻x賦值給【M N】 M2, P = size(y); % 音頻 y 賦值給【 M2, P】 if (M = M2)error(' 不匹配! ') % 兩個(gè)音頻時(shí)間長(zhǎng)度不相等 endd = zeros(N, P);if (N < P)% 在兩個(gè)音頻時(shí)間長(zhǎng)度相等的前提下copies = zeros(1,P);for n = 1:Nd(n,:) = sum(x(:, n+copies) - y) .A2, 1);endelsecopies = zeros(1,N);for p = 1

13、:Pd(:,p) = sum(x - y(:, p+copies) .A2, 1)'end% 成對(duì)歐氏距離的兩個(gè)矩陣的列之間的距離 endd = d.A0.5;3.2.3 函數(shù) vqlbg- 該函數(shù)利用矢量量化提取了音頻的 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 函數(shù) testfunction finalmsg = test(testdir, n, code)for k = 1:n% read test sound file of each speakerfile = sprintf('%ss%d.wav', testdir,

15、 k);s, fs = wavread(file);v = mfcc(s, fs); % distmin = 4;%d = disteu(v, code1);%距離”變換得到一個(gè)距離的量得到測(cè)試人語(yǔ)音的 mel 倒譜系數(shù) 閾值設(shè)置處 就判斷一次,因?yàn)槟0謇锩嬷挥幸粋€(gè)文件 計(jì)算得到模板和要判斷的聲音之間的dist = sum(min(d,2) / size(d,1); %msgc = sprintf(' disp(msgc);% 此人匹配測(cè)試閾值數(shù)量級(jí)與模板語(yǔ)音信號(hào)的差值為 :%10f ', dist);if dist <= distmin %一個(gè)閾值,小于閾值,則就是這個(gè)

16、人。msg = sprintf('第 %d 位說(shuō)話者與模板語(yǔ)音信號(hào)匹配, 符合要求 !n', k);finalmsg = '此位說(shuō)話者符合要求 !' % 界面顯示語(yǔ)句,可隨意設(shè)定disp(msg);end% 此人不匹配if dist > distmin msg = sprintf(' 求 !n', k);finalmsg 設(shè)定disp(msg);end end第%d位說(shuō)話者與模板語(yǔ)音信號(hào)不匹配,不符合要= ' 此位說(shuō)話者不符合要求 !'%界面顯示語(yǔ)句,可隨意3.2.5 函數(shù) testDB 這個(gè)函數(shù)實(shí)際上是對(duì)數(shù)據(jù)庫(kù)一個(gè)查詢 ,

17、 根據(jù)測(cè)試者的聲音 , 找相應(yīng)的文件 , 并且給 出是誰(shuí)的提示function testmsg = testDB(testdir, n, code) nameList='1','2','3','4','5','6','7','8','9' ;% 這個(gè)是我們要識(shí)別的 9個(gè)數(shù)for k = 1:n%數(shù)據(jù)庫(kù)中每一個(gè)說(shuō)話人的特征file = sprintf('%ss%d.wav', testdir, k);%找出文件的路徑s, fs = wav

18、read(file);v = mfcc(s, fs); distmin = inf; k1 = 0;對(duì)找到的文件取mfcc變換for l = 1:length(code) d = disteu(v, codel); dist = sum(min(d,2) / size(d,1);if dist < distmin distmin = dist;% 者的識(shí)別這里和 test 函數(shù)里面一樣 但多了一個(gè)具體語(yǔ)k1 = l;end end msg=nameListk1 msgbox(msg);end 3.2.6 函數(shù) train- 該函數(shù)就是對(duì)音頻進(jìn)行訓(xùn)練,也就是提取特征參數(shù) function

19、code = train(traindir, n)k = 16; % number of centroids requiredfor i = 1:n%file = sprintf('%ss%d.wav', traindir, i); disp(file);s, fs = wavread(file);v = mfcc(s, fs);%codei = vqlbg(v, k); %話人的VQ碼本end對(duì)數(shù)據(jù)庫(kù)中的代碼形成碼本計(jì)算 MFCC's 提取特征特征,返回值是Mel 倒譜系數(shù),是一個(gè) log 的 dct 得到的訓(xùn)練VQ碼本通過(guò)矢量量化,得到原說(shuō)四、演示分析 我們的功能分為兩部分 : 對(duì)已經(jīng)保存的 9 個(gè)數(shù)字的語(yǔ)音進(jìn)行辨別和實(shí)時(shí)的 判斷說(shuō)話人說(shuō)的是否為一個(gè)數(shù) . 在前者的實(shí)驗(yàn)過(guò)程中 ,先把 9 個(gè)數(shù)字的聲音保存 成wav的格式,放在一個(gè)文件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論