




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、語(yǔ)音信號(hào)處理實(shí)驗(yàn) 2015年10月28日語(yǔ)音信號(hào)處理實(shí)驗(yàn)實(shí)驗(yàn)學(xué)時(shí)數(shù):8實(shí)驗(yàn)學(xué)分:0.5實(shí)驗(yàn)項(xiàng)目數(shù):41、目的與基本要求實(shí)驗(yàn)為研究型(設(shè)計(jì)型)實(shí)驗(yàn),共安排4個(gè),為了真正達(dá)到研究設(shè)計(jì)型實(shí)驗(yàn)的目的,采用開(kāi)放實(shí)驗(yàn)的辦法,將自主學(xué)習(xí)和研究設(shè)計(jì)型實(shí)驗(yàn)結(jié)合起來(lái),統(tǒng)一安排。自主學(xué)習(xí)內(nèi)容由學(xué)生自主學(xué)習(xí)參考教材的內(nèi)容,并采用多種渠道,如查閱最新語(yǔ)音信號(hào)處理方面的科技文獻(xiàn)、資料,作出學(xué)習(xí)報(bào)告。目的是培養(yǎng)學(xué)生的自學(xué)能力和科技文獻(xiàn)的檢索和查閱能力,同時(shí)可以有助于學(xué)生了解和掌握語(yǔ)音信號(hào)處理領(lǐng)域的最新技術(shù)進(jìn)展和應(yīng)用情況,將理論知識(shí)和實(shí)際應(yīng)用結(jié)合起來(lái),促進(jìn)學(xué)生學(xué)習(xí)的積極性和主動(dòng)性。通過(guò)開(kāi)放實(shí)驗(yàn),目的使學(xué)生進(jìn)一步理解數(shù)字語(yǔ)音信
2、息處理的基本方法,提高學(xué)生自主分析、發(fā)現(xiàn)及解決問(wèn)題的能力,鍛煉學(xué)生論文寫(xiě)作能力,為實(shí)際的應(yīng)用打下扎實(shí)的基礎(chǔ)。2、研究設(shè)計(jì)型實(shí)驗(yàn)的內(nèi)容1)研究設(shè)計(jì)型實(shí)驗(yàn)1:基于MATLAB的語(yǔ)音信號(hào)時(shí)域特征分析要求:按所學(xué)相關(guān)語(yǔ)音處理的知識(shí),通過(guò)網(wǎng)上學(xué)習(xí)、資料查閱,自己設(shè)計(jì)程序,給出某一語(yǔ)音信號(hào)的短時(shí)過(guò)零率、短時(shí)能量、短時(shí)自相關(guān)特征的分析結(jié)果,并借助時(shí)域分析方法檢測(cè)所分析語(yǔ)音信號(hào)的基音周期。2)研究設(shè)計(jì)型實(shí)驗(yàn)2:基于MATLAB分析語(yǔ)音信號(hào)頻域特征要求:按所學(xué)相關(guān)語(yǔ)音處理的得知識(shí),通過(guò)網(wǎng)上學(xué)習(xí)、資料查閱,自己設(shè)計(jì)程序,給出某一語(yǔ)音信號(hào)的短時(shí)譜、倒譜、語(yǔ)譜圖的分析結(jié)果,并借助頻域分析方法檢測(cè)所分析語(yǔ)音信號(hào)的基音周
3、期或共振峰。3)研究設(shè)計(jì)型實(shí)驗(yàn)3:基于MATLAB進(jìn)行語(yǔ)音信號(hào)的LPC分析要求:按所學(xué)相關(guān)語(yǔ)音處理的知識(shí),通過(guò)網(wǎng)上學(xué)習(xí)、資料查閱,自己設(shè)計(jì)程序,給出某一語(yǔ)音信號(hào)的LPC分析結(jié)果,包括LPC譜、LPCC譜的分析結(jié)果,并借助LPC分析方法檢測(cè)所分析語(yǔ)音信號(hào)的基音周期和共振峰。4)研究設(shè)計(jì)型實(shí)驗(yàn)4:基于VQ的特定人孤立詞語(yǔ)音識(shí)別研究要求:按所學(xué)相關(guān)語(yǔ)音處理的知識(shí),通過(guò)網(wǎng)上學(xué)習(xí)、資料查閱,借助MATLAB工具,自己設(shè)計(jì)基于VQ的碼本訓(xùn)練程序和識(shí)別程序(盡量選用所學(xué)HMM或DTW方法設(shè)計(jì)識(shí)別程序),能識(shí)別特定人的語(yǔ)音,分析所設(shè)計(jì)系統(tǒng)的特性。實(shí)驗(yàn)一 基于MATLAB的語(yǔ)音信號(hào)時(shí)域特征分析(2學(xué)時(shí))1、 實(shí)
4、驗(yàn)?zāi)康恼Z(yǔ)音信號(hào)是一種非平穩(wěn)的時(shí)變信號(hào),它攜帶著各種信息。在語(yǔ)音編碼、語(yǔ)音合成、語(yǔ)音識(shí)別和語(yǔ)音增強(qiáng)等語(yǔ)音處理中無(wú)一例外需要提取語(yǔ)音中包含的各種信息。語(yǔ)音信號(hào)分析的目的就在與方便有效的提取并表示語(yǔ)音信號(hào)所攜帶的信息。語(yǔ)音信號(hào)分析可以分為時(shí)域和變換域等處理方法,其中時(shí)域分析是最簡(jiǎn)單的方法,直接對(duì)語(yǔ)音信號(hào)的時(shí)域波形進(jìn)行分析,提取的特征參數(shù)主要有語(yǔ)音的短時(shí)能量,短時(shí)平均過(guò)零率,短時(shí)自相關(guān)函數(shù)等。本實(shí)驗(yàn)要求掌握時(shí)域特征分析原理,并利用已學(xué)知識(shí),編寫(xiě)程序求解語(yǔ)音信號(hào)的短時(shí)過(guò)零率、短時(shí)能量、短時(shí)自相關(guān)特征,分析實(shí)驗(yàn)結(jié)果,并能掌握借助時(shí)域分析方法所求得的參數(shù)分析語(yǔ)音信號(hào)的基音周期及共振峰。2、 實(shí)驗(yàn)原理及實(shí)驗(yàn)結(jié)
5、果1) 短時(shí)能量 (1)加矩形窗a=wavread('C:UsersAdministratorDesktopshiyan.wav');subplot(6,1,1),plot(a);N=32;for i=2:6h=linspace(1,1,2.(i-2)*N);%形成一個(gè)矩形窗,長(zhǎng)度為2.(i-2)*N En=conv(h,a.*a);% 求短時(shí)能量函數(shù)En subplot(6,1,i),plot(En);if(i=2) legend('N=32');elseif(i=3) legend('N=64');elseif(i=4) legend(
6、9;N=128');elseif(i=5) legend('N=256');elseif(i=6) legend('N=512');endEnd (2)加漢明窗 a=wavread('beifeng.wav');subplot(6,1,1),plot(a);N=32;for i=2:6h=hanning(2.(i-2)*N);%形成一個(gè)漢明窗,長(zhǎng)度為2.(i-2)*N En=conv(h,a.*a);% 求短時(shí)能量函數(shù)En subplot(6,1,i),plot(En);if(i=2) legend('N=32');els
7、eif(i=3) legend('N=64');elseif(i=4) legend('N=128');elseif(i=5) legend('N=256');elseif(i=6) legend('N=512');endend 加矩形窗 加漢明窗2) 短時(shí)平均過(guò)零率a=wavread('C:UsersAdministratorDesktopshiyan.wav');n=length(a);N=320;subplot(3,1,1),plot(a),title('shiyan');h=linspace
8、(1,1,N);En=conv(h,a.*a); %求卷積得其短時(shí)能量函數(shù)Ensubplot(3,1,2),plot(En),title('卷積得其短時(shí)能量函數(shù)En'); for i=1:n-1 if a(i)>=0 b(i)= 1; else b(i) = -1; end if a(i+1)>=0 b(i+1)=1; else b(i+1)= -1; end w(i)=abs(b(i+1)-b(i); %求出每相鄰兩點(diǎn)符號(hào)的差值的絕對(duì)值 end k=1; j=0;while (k+N-1)<n Zm(k)=0; for i=0:N-1; Zm(k)=Zm(k
9、)+w(k+i); end j=j+1; k=k+N/2; %每次移動(dòng)半個(gè)窗 end for w=1:j Q(w)=Zm(160*(w-1)+1)/(2*N); %短時(shí)平均過(guò)零率 end subplot(3,1,3),plot(Q),title('短時(shí)平均過(guò)零率');3) 自相關(guān)函數(shù) N=240Y=wavread('C:UsersAdministratorDesktopshiyan.wav');x=x.*rectwin(240);R=zeros(1,240);for k=1:240for n=1:240-kR(k)=R(k)+x(n)*x(n+k);endend
10、 j=1:240;plot(j,R);grid;實(shí)驗(yàn)二 基于MATLAB分析語(yǔ)音信號(hào)頻域特征一、實(shí)驗(yàn)?zāi)康男盘?hào)的傅立葉表示在信號(hào)的分析與處理中起著重要的作用。因?yàn)閷?duì)于線性系統(tǒng)來(lái)說(shuō),可以很方便地確定其對(duì)正弦或復(fù)指數(shù)和的響應(yīng),所以傅立葉分析方法能完善地解決許多信號(hào)分析和處理問(wèn)題。另外,傅立葉表示使信號(hào)的某些特性變得更明顯,因此,它能更深入地說(shuō)明信號(hào)的各項(xiàng)紅物理現(xiàn)象。 由于語(yǔ)音信號(hào)是隨著時(shí)間變化的,通常認(rèn)為,語(yǔ)音是一個(gè)受準(zhǔn)周期脈沖或隨機(jī)噪聲源激勵(lì)的線性系統(tǒng)的輸出。輸出頻譜是聲道系統(tǒng)頻率響應(yīng)與激勵(lì)源頻譜的乘積。聲道系統(tǒng)的頻率響應(yīng)及激勵(lì)源都是隨時(shí)間變化的,因此一般標(biāo)準(zhǔn)的傅立葉表示雖然適用于周期及平穩(wěn)隨機(jī)信
11、號(hào)的表示,但不能直接用于語(yǔ)音信號(hào)。由于語(yǔ)音信號(hào)可以認(rèn)為在短時(shí)間內(nèi),近似不變,因而可以采用短時(shí)分析法。本實(shí)驗(yàn)要求掌握傅里葉分析原理,會(huì)利用已學(xué)的知識(shí),編寫(xiě)程序估計(jì)短時(shí)譜、倒譜,畫(huà)出語(yǔ)譜圖,并分析實(shí)驗(yàn)結(jié)果,在此基礎(chǔ)上,借助頻域分析方法所求得的參數(shù)分析語(yǔ)音信號(hào)的基音周期或共振峰。二、實(shí)驗(yàn)原理(自己補(bǔ)充)1)濾波器頻率響應(yīng)對(duì)特定頻率的頻點(diǎn)或該頻點(diǎn)以外的頻率進(jìn)行有效濾除的電路,就是濾波器。其功能就是得到一個(gè)特定頻率或消除一個(gè)特定頻率,濾波器是一種對(duì)信號(hào)有處理作用的器件或電路。主要作用是:讓有用信號(hào)盡可能無(wú)衰減的通過(guò),對(duì)無(wú)用信號(hào)盡可能大的。濾波器的類型:巴特沃斯響應(yīng)(最平坦響應(yīng)),貝賽爾響應(yīng),切貝雪夫響應(yīng)
12、 。 濾波器沖激響應(yīng)的傅里葉變換就是該濾波器的頻率響應(yīng)。2)快速卷積卷積定理指出,函數(shù)卷積的傅里葉變換是函數(shù)傅里葉變換的乘積。即一個(gè)域中的卷積相當(dāng)于另一個(gè)域中的乘積,例如時(shí)域中的卷積就對(duì)應(yīng)于頻域中的乘積。其中表示f 的傅里葉變換。 這一定理對(duì)拉普拉斯變換、雙邊拉普拉斯變換等各種傅里葉變換的變體同樣成立。在調(diào)和分析中還可以推廣到在局部緊致的阿貝爾群上定義的傅里葉變換。 利用卷積定理可以簡(jiǎn)化卷積的運(yùn)算量。對(duì)于長(zhǎng)度為n的序列,按照卷積的定義進(jìn)行計(jì)算,需要做2n - 1組對(duì)位乘法,其計(jì)算復(fù)雜度為;而利用傅里葉變換將序列變換到頻域上后,只需要一組對(duì)位乘法,利用傅里葉變換的快速算法之后,總的計(jì)算復(fù)雜度為。
13、這一結(jié)果可以在快速乘法計(jì)算中得到應(yīng)用。信號(hào)的離散傅里葉變換有限長(zhǎng)序列的離散傅里葉變換公式為:MATLAB函數(shù):fft功能是實(shí)現(xiàn)快速傅里葉變換,fft函數(shù)的格式為:返回向量x的不連續(xù)fourier變換。若是一個(gè)N=12的有限序列,利用MATLAB計(jì)算它的離散傅里葉變換并畫(huà)出圖形,然后再對(duì)進(jìn)行離散傅里葉反變換求出并畫(huà)出其波形。頻率分辨率與DFT參數(shù)的選擇在DFT問(wèn)題中,頻率分辨率是指在頻率軸上所得到的最小頻率間隔,即最小頻率間隔反比于數(shù)據(jù)的長(zhǎng)度N。若在中有兩個(gè)頻率分別為和的信號(hào),對(duì)用矩形窗截?cái)鄷r(shí),要分辨出這兩個(gè)頻率,N必須滿足 通過(guò)下面實(shí)驗(yàn),驗(yàn)證上面的結(jié)論: 設(shè)一序列中含有兩種頻率成分,采樣頻率取
14、為,表示為根據(jù)上面的結(jié)論,要區(qū)分這兩種頻率成分,必須滿足。取時(shí),計(jì)算的DFT;取時(shí),計(jì)算的DFT參考程序1)短時(shí)譜 cleara=wavread('shiyan.wav');subplot(2,1,1),plot(a);title('original signal');gridN=256;h=hamming(N);for m=1:N b(m)=a(m)*h(m)end y=20*log(abs(fft(b)subplot(2,1,2)plot(y);title('短時(shí)譜');grid2)語(yǔ)譜圖 x,fs,nbits=wavread('sh
15、iyan.wav')specgram(x,512,fs,100); xlabel('時(shí)間(s)');ylabel('頻率(Hz)');title('語(yǔ)譜圖');3)倒譜和復(fù)倒譜(1)加矩形窗時(shí)的倒譜和復(fù)倒譜cleara=wavread('shiayn.wav',4000,4350);N=300;h=linspace(1,1,N);for m=1:Nb(m)=a(m)*h(m);end c=cceps(b);c=fftshift(c);d=rceps(b);d=fftshift(d); subplot(2,1,1)plot(
16、d);title('加矩形窗時(shí)的倒譜')subplot(2,1,2)plot(c);title('加矩形窗時(shí)的復(fù)倒譜')(2)加漢明窗時(shí)的倒譜和復(fù)倒譜cleara=wavread('shiyan.wav',4000,4350);N=300;h=hamming(N);for m=1:Nb(m)=a(m)*h(m);end c=cceps(b);c=fftshift(c);d=rceps(b);d=fftshift(d); subplot(2,1,1)plot(d);title('加漢明窗時(shí)的倒譜')subplot(2,1,2)plo
17、t(c);title('加漢明窗時(shí)的復(fù)倒')實(shí)驗(yàn)三 基于MATLAB的LPC分析一、實(shí)驗(yàn)?zāi)康木€性預(yù)測(cè)分析是最有效的語(yǔ)音分析技術(shù)之一,在語(yǔ)音編碼、語(yǔ)音合成、語(yǔ)音識(shí)別和說(shuō)話人識(shí)別等語(yǔ)音處理領(lǐng)域中得到了廣泛的應(yīng)用。語(yǔ)音線性預(yù)測(cè)的基本思想是:一個(gè)語(yǔ)音信號(hào)的抽樣值可以用過(guò)去若干個(gè)取樣值的線性組合來(lái)逼近。通過(guò)使實(shí)際語(yǔ)音抽樣值與線性預(yù)測(cè)抽樣值的均方誤差達(dá)到最小,可以確定唯一的一組線性預(yù)測(cè)系數(shù)。采用線性預(yù)測(cè)分析不僅能夠得到語(yǔ)音信號(hào)的預(yù)測(cè)波形,而且能夠提供一個(gè)非常好的聲道模型。如果將語(yǔ)音模型看作激勵(lì)源通過(guò)一個(gè)線性時(shí)不變系統(tǒng)產(chǎn)生的輸出,那么可以利用LP分析對(duì)聲道參數(shù)進(jìn)行估值,以少量低信息率的時(shí)變參
18、數(shù)精確地描述語(yǔ)音波形及其頻譜的性質(zhì)。此外,LP分析還能夠?qū)舱穹?、功率譜等語(yǔ)音參數(shù)進(jìn)行精確估計(jì),LP分析得到的參數(shù)可以作為語(yǔ)音識(shí)別的重要參數(shù)之一。由于語(yǔ)音是一種短時(shí)平穩(wěn)信號(hào),因此只能利用一段語(yǔ)音來(lái)估計(jì)模型參數(shù)。此時(shí)有兩種方案:一種是將長(zhǎng)的語(yǔ)音序列加窗,然后對(duì)加窗語(yǔ)音進(jìn)行LP分析,只要限定窗的長(zhǎng)度就可以保證分析的短時(shí)性,這種方案稱為自相關(guān)法;另一種方案不對(duì)語(yǔ)音加窗,而是在計(jì)算均方預(yù)測(cè)誤差時(shí)限制其取和區(qū)間,這樣可以導(dǎo)出LP分析的自協(xié)方差法。本實(shí)驗(yàn)要求掌握LPC原理,會(huì)利用已學(xué)的知識(shí),編寫(xiě)程序估計(jì)線性預(yù)測(cè)系數(shù)以及LPC的推演參數(shù),并能利用所求的相關(guān)參數(shù)估計(jì)語(yǔ)音的端點(diǎn)、清濁音判斷、基因周期、共振峰等。
19、2、 實(shí)驗(yàn)原理LPC分析為線性時(shí)不變因果穩(wěn)定系統(tǒng)V(z)建立一個(gè)全極點(diǎn)模型,并利用均方誤差準(zhǔn)則,對(duì)已知的語(yǔ)音信號(hào)s(n)進(jìn)行模型參數(shù)估計(jì)。如果利用P個(gè)取樣值來(lái)進(jìn)行預(yù)測(cè),則稱為P階線性預(yù)測(cè)。假設(shè)用過(guò)去P個(gè)取樣值的加權(quán)之和來(lái)預(yù)測(cè)信號(hào)當(dāng)前取樣值,則預(yù)測(cè)信號(hào)為: (1)其中加權(quán)系數(shù)用表示,稱為預(yù)測(cè)系數(shù),則預(yù)測(cè)誤差為: (2)要使預(yù)測(cè)最佳,則要使短時(shí)平均預(yù)測(cè)誤差最小有: (3) (4)令 (5) 最小的可表示成: (6)顯然,誤差越接近于零,線性預(yù)測(cè)的準(zhǔn)確度在均方誤差最小的意義上為最佳,由此可以計(jì)算出預(yù)測(cè)系數(shù)。通過(guò)LPC分析,由若干幀語(yǔ)音可以得到若干組LPC參數(shù),每組參數(shù)形成一個(gè)描繪該幀語(yǔ)音特征的矢量,
20、即LPC特征矢量。由LPC特征矢量可以進(jìn)一步得到很多種派生特征矢量,例如線性預(yù)測(cè)倒譜系數(shù)、線譜對(duì)特征、部分相關(guān)系數(shù)、對(duì)數(shù)面積比等等。不同的特征矢量具有不同的特點(diǎn),它們?cè)谡Z(yǔ)音編碼和識(shí)別領(lǐng)域有著不同的應(yīng)用價(jià)值。三、實(shí)驗(yàn)結(jié)果我們使用的原始語(yǔ)音為“shiyan”,采樣頻率為11000Hz,運(yùn)行程序見(jiàn)附錄。在這里我們?nèi)〉?0幀進(jìn)行觀察,線性預(yù)測(cè)階數(shù)為12,看到圖3.1所示的原始語(yǔ)音幀的波形,預(yù)測(cè)語(yǔ)音幀波形和它們之間預(yù)測(cè)誤差的波形。圖3.2為原始語(yǔ)音幀和預(yù)測(cè)語(yǔ)音幀的短時(shí)譜和LPC譜的波形圖3.1 原始語(yǔ)音幀和預(yù)測(cè)誤差的波形圖3.2 原始語(yǔ)音幀和預(yù)測(cè)語(yǔ)音幀的短時(shí)譜和LPC譜的波形 圖3.3 原始語(yǔ)音和預(yù)測(cè)誤
21、差的倒譜波形圖3.4預(yù)測(cè)誤差倒頻譜三、實(shí)驗(yàn)程序MusicSource = wavread(shiyan');Music_source = MusicSource'N = 256; % window length,N = 100 - 1000;Hamm = hamming(N); % create Hamming windowframe = input('請(qǐng)鍵入想要處理的幀位置 = ');% origin is current frameorigin = Music_source(frame - 1) * (N / 2) + 1):(frame - 1) * (N
22、 / 2) + N);Frame = origin .* Hamm' %Short Time Fourier Transform%s1,f1,t1 = specgram(MusicSource,N,N/2,N); Xs1,Ys1 = size(s1);for i = 1:Xs1 FTframe1(i) = s1(i,frame);end N1 = input('請(qǐng)鍵入預(yù)測(cè)器階數(shù) = '); % N1 is predictor's ordercoef,gain = lpc(Frame,N1); % LPC analysis using Levinson-Durbi
23、n recursionest_Frame = filter(0 -coef(2:end),1,Frame); % estimate frame(LP)FFT_est = fft(est_Frame);err = Frame - est_Frame; % error% FFT_err = fft(err);subplot(2,1,1),plot(1:N,Frame,1:N,est_Frame,'-r');grid;title('原始語(yǔ)音幀vs.預(yù)測(cè)后語(yǔ)音幀')subplot(2,1,2),plot(err);grid;title('誤差');pau
24、se fLength(1 : 2 * N) = origin,zeros(1,N); Xm = fft(fLength,2 * N);X = Xm .* conj(Xm);Y = fft(X , 2 * N);Rk = Y(1 : N);PART = sum(coef(2 : N1 + 1) .* Rk(1 : N1);G = sqrt(sum(Frame.2) - PART); A = (FTframe1 - FFT_est(1 : length(f1') ./ FTframe1 ; % inverse filter A(Z)subplot(2,1,1),plot(f1',2
25、0*log(abs(FTframe1),f1',(20*log(abs(1 ./ A),'-r');grid;title('短時(shí)譜');subplot(2,1,2),plot(f1',(20*log(abs(G ./ A);grid;title('LPC譜');pause temp = FTframe1 - FFT_est(1 : length(f1'); % not move higher frequnce pitch1 = log(abs(temp);pLength = length(pitch1);result1 =
26、 ifft(pitch1,N); % move higher frequncepitch1(pLength - 32) : pLength) = 0;result2 = ifft(pitch1,N); % direct do real cepstrum with errpitch = fftshift(rceps(err);origin_pitch = fftshift(rceps(Frame);subplot(211),plot(origin_pitch);grid;title('原始語(yǔ)音幀倒譜(直接調(diào)用函數(shù))');subplot(212),plot(pitch);grid;
27、title('預(yù)測(cè)誤差倒譜(直接調(diào)用函數(shù))');pause subplot(211),plot(1:length(result1),fftshift(real(result1);grid;title('預(yù)測(cè)誤差倒譜(根據(jù)定義編寫(xiě),沒(méi)有去除高頻分量)');subplot(212),plot(1:length(result2),fftshift(real(result2);grid;title('預(yù)測(cè)誤差倒譜(根據(jù)定義編寫(xiě),去除高頻分量)');實(shí)驗(yàn)四 基于VQ的特定人孤立詞語(yǔ)音識(shí)別研究一、實(shí)驗(yàn)?zāi)康氖噶苛炕╒ector Quantization)是一
28、種極其重要的信號(hào)壓縮方法,是自70年代末才發(fā)展起來(lái)的。它廣泛應(yīng)用于語(yǔ)音編碼、語(yǔ)音識(shí)別與合成、圖象壓縮等領(lǐng)域。VQ在語(yǔ)音信號(hào)處理中占有十分重要的地位。許多重要的研究課題中,特別是低速語(yǔ)音編碼和語(yǔ)音識(shí)別的研究中,VQ都起著非常重要的作用。量化可以分為兩大類:一類是標(biāo)量量化,另一類是矢量量化。標(biāo)量量化是將取樣后的信號(hào)值逐個(gè)地進(jìn)行量化,而矢量量化是將若干個(gè)取樣信號(hào)分成一組,即構(gòu)成一個(gè)矢量,然后對(duì)此矢量一次進(jìn)行量化。當(dāng)然,矢量量化壓縮數(shù)據(jù)的同時(shí)也有信息的損失,但這僅取決于量化的精度。矢量量化是標(biāo)量量化的發(fā)展,可以說(shuō),凡是要用量化的地方都可以應(yīng)用矢量量化。 本實(shí)驗(yàn)要求掌握矢量量化的原理,會(huì)利用已學(xué)的相關(guān)語(yǔ)
29、音特征,構(gòu)建語(yǔ)音特征矢量,然后利用VQ技術(shù),編寫(xiě)訓(xùn)練VQ碼表的程序,并在此基礎(chǔ)上利用所學(xué)的語(yǔ)音識(shí)別技術(shù),編程實(shí)現(xiàn)基于矢量量化的特定人孤立詞語(yǔ)音識(shí)別,要注意的是識(shí)別過(guò)程中語(yǔ)音端點(diǎn)如何檢測(cè),從識(shí)別的實(shí)時(shí)性角度出發(fā),建議能利用VC技術(shù)實(shí)現(xiàn)。2、 實(shí)驗(yàn)原理1 矢量量化1)基本原理矢量量化的過(guò)程是:將語(yǔ)音信號(hào)波形的K個(gè)樣點(diǎn)的每一幀,或者有K個(gè)參數(shù)的每一參數(shù)幀,構(gòu)成K維空間中的一個(gè)矢量,然后對(duì)這個(gè)矢量進(jìn)行量化。通常所說(shuō)的標(biāo)量量化,也可以說(shuō)是K=1的一維矢量量化。矢量量化的過(guò)程與標(biāo)量量化相似。在標(biāo)量量化時(shí),在一維的零至無(wú)大值之間設(shè)置若干個(gè)量化階梯,當(dāng)某輸入信號(hào)的幅度值落在某相鄰的兩個(gè)量化階梯之間時(shí),就被量化
30、為兩階梯的中心值。而在矢量量化時(shí),將K維無(wú)限空間劃為M個(gè)區(qū)域邊界,然后將輸入矢量與這些邊界進(jìn)行比較,并被量化為“距離”最小的區(qū)域邊界的中心矢量值。2)、失真測(cè)度設(shè)計(jì)矢量量化器的關(guān)鍵是編碼器的設(shè)計(jì),而譯碼器的工作僅是一個(gè)簡(jiǎn)單的查表過(guò)程。在編碼的過(guò)程中,需要引入失真測(cè)度的概念。失真是將輸入信號(hào)矢量用碼書(shū)的重構(gòu)矢量來(lái)表征時(shí)的誤差或所付出的代價(jià)。而這種代價(jià)的統(tǒng)計(jì)平均值(平均失真)描述了矢量量化器的工作特性。在矢量量化器的設(shè)計(jì)中,失真測(cè)度的選擇是很重要的。失真測(cè)度選用的合適與否,直接影響系統(tǒng)的性能。要使所選擇的失真測(cè)度有實(shí)際意義,必須具備以下幾個(gè)條件:在主觀評(píng)價(jià)上有意義,即最小的失真應(yīng)該對(duì)應(yīng)與好的主觀語(yǔ)
31、言質(zhì)量;易于處理,即在數(shù)學(xué)上易于實(shí)現(xiàn),這樣可以用于實(shí)際的矢量量化器的設(shè)計(jì);平均失真存在并且可以計(jì)算。2 LBG算法算法是由Linde,Buzo和Gray在1980年首次提出的,常稱為L(zhǎng)BG算法。它是標(biāo)量量化器中Lioyd算法的多維推廣。整個(gè)算法實(shí)際上就是反復(fù)迭代的過(guò)程,既用初始碼書(shū)尋找最佳碼書(shū)的迭代過(guò)程。它由對(duì)初始碼書(shū)進(jìn)行迭代優(yōu)化開(kāi)始,一直到系統(tǒng)性能滿足要求或者不再有明顯的改進(jìn)為止。這種算法既可以用于已知信號(hào)源概率分布的場(chǎng)合,也可以用于未知信號(hào)源概率分布的場(chǎng)合,但此時(shí)要知道它的一系列輸出值(稱為訓(xùn)練序列)。由于通常語(yǔ)音信號(hào)的概率分布隨著各種應(yīng)用場(chǎng)合的不同,不可能事先統(tǒng)計(jì)過(guò),因而無(wú)法知道它的概率
32、分布;3語(yǔ)音識(shí)別;語(yǔ)音識(shí)別是研究使機(jī)器能夠準(zhǔn)確地聽(tīng)出人的語(yǔ)音內(nèi)容的;運(yùn)用語(yǔ)音識(shí)別技術(shù),人們?cè)O(shè)計(jì)了各種語(yǔ)音識(shí)別系統(tǒng);這種系統(tǒng)存在的問(wèn)題最少,因?yàn)閱卧~之間有停頓,可以;不管用何種語(yǔ)音識(shí)別方法,主要過(guò)程由兩部分組成,一;要實(shí)現(xiàn)上面的隱馬爾可夫模型,模型的輸入信號(hào)必須??;三、實(shí)驗(yàn)結(jié)果;就算法模型方面而言,需要有進(jìn)一步的突破;就強(qiáng)健性方面而言.3 語(yǔ)音識(shí)別語(yǔ)音識(shí)別是研究使機(jī)器能夠準(zhǔn)確地聽(tīng)出人的語(yǔ)音內(nèi)容的問(wèn)題,即準(zhǔn)確的識(shí)別所說(shuō)的語(yǔ)音。語(yǔ)音識(shí)別是近二三十幾年發(fā)展起來(lái)的新興學(xué)科,在計(jì)算機(jī)、信息處理、通信與電子系統(tǒng)、自動(dòng)控制等領(lǐng)域中有著廣泛的應(yīng)用。運(yùn)用語(yǔ)音識(shí)別技術(shù),人們?cè)O(shè)計(jì)了各種語(yǔ)音識(shí)別系統(tǒng)。有的已經(jīng)應(yīng)用于實(shí)際
33、,有的還處在研究階段。其中對(duì)孤立詞的識(shí)別,研究的最早也最成熟,目前,對(duì)孤立詞的識(shí)別無(wú)論是小詞匯量還是大詞匯量,無(wú)論是與講話者有關(guān)還是與講話者無(wú)關(guān),在實(shí)驗(yàn)室中的正識(shí)率已經(jīng)達(dá)到95%以上。這種系統(tǒng)存在的問(wèn)題最少,因?yàn)閱卧~之間有停頓,可以使識(shí)別問(wèn)題簡(jiǎn)單化;且單詞之間的端點(diǎn)檢測(cè)比較容易;單詞之間的協(xié)同發(fā)音影響也可以減至最低;對(duì)孤立詞的發(fā)音都比較認(rèn)真。由于此系統(tǒng)本身用途廣泛,且其許多技術(shù)對(duì)其他類型系統(tǒng)有通用性并易于推廣,所以稍加補(bǔ)充一些知識(shí)就可用于其他類型系統(tǒng)(如在識(shí)別部分加用適當(dāng)語(yǔ)義信息等,則可用于連續(xù)語(yǔ)音識(shí)別中)。采用矢量量化技術(shù)主要用于減少計(jì)算量,應(yīng)用于特征處理可減少特征的類型從而減少計(jì)算量,也可
34、以推廣應(yīng)用到摸板的歸并壓縮。其主要工作就是聚類,即在特征空間中合理的擬定一組點(diǎn)(稱為一組聚類中心或碼本),每個(gè)中心稱為碼字。于是特征空間中任一點(diǎn)均可按最小距離準(zhǔn)則用碼本之一來(lái)代表。不管用何種語(yǔ)音識(shí)別方法,主要過(guò)程由兩部分組成,一是訓(xùn)練,一是識(shí)別。在進(jìn)行訓(xùn)練時(shí),用觀察的序列訓(xùn)練得到參考模型集,每一個(gè)模型對(duì)應(yīng)于摸板中的一個(gè)單詞。在進(jìn)行識(shí)別時(shí),為每一個(gè)參考模型計(jì)算出產(chǎn)生測(cè)試觀察的概率,且測(cè)試信號(hào)(即輸入信號(hào))按最大概率被識(shí)別為某個(gè)單詞。三、實(shí)驗(yàn)結(jié)果 實(shí)驗(yàn)程序:1、mfcc.mfunction ccc = mfcc(x)bank=melbankm(24,256,8000,0,0.5,'m
35、9;);bank=full(bank);bank=bank/max(bank(:); for k=1:12 n=0:23; dctcoef(k,:)=cos(2*n+1)*k*pi/(2*24);end w = 1 + 6 * sin(pi * 1:12 ./ 12);w = w/max(w);xx=double(x);xx=filter(1 -0.9375,1,xx); xx=enframe(xx,256,80);for i=1:size(xx,1) y = xx(i,:); s = y' .* hamming(256); t = abs(fft(s); t = t.2; c1=dc
36、tcoef * log(bank * t(1:129); c2 = c1.*w' m(i,:)=c2'end dtm = zeros(size(m);for i=3:size(m,1)-2 dtm(i,:) = -2*m(i-2,:) - m(i-1,:) + m(i+1,:) + 2*m(i+2,:);enddtm = dtm / 3; ccc = m dtm;ccc = ccc(3:size(m,1)-2,:);2、vad.mfunction x1,x2 = vad(x)x = double(x);x = x / max(abs(x); FrameLen = 240;Fra
37、meInc = 80; amp1 = 10;amp2 = 2;zcr1 = 10;zcr2 = 5; maxsilence = 8; % 6*10ms = 30msminlen = 15; % 15*10ms = 150msstatus = 0;count = 0;silence = 0;tmp1 = enframe(x(1:end-1), FrameLen, FrameInc);tmp2 = enframe(x(2:end) , FrameLen, FrameInc);signs = (tmp1.*tmp2)<0;diffs = (tmp1 -tmp2)>0.02;zcr = s
38、um(signs.*diffs, 2);amp = sum(abs(enframe(filter(1 -0.9375, 1, x), FrameLen, FrameInc), 2);amp1 = min(amp1, max(amp)/4);amp2 = min(amp2, max(amp)/8);x1 = 0; x2 = 0;for n=1:length(zcr) goto = 0; switch status case 0,1 if amp(n) > amp1 x1 = max(n-count-1,1); status = 2; silence = 0; count = count +
39、 1; elseif amp(n) > amp2 | . zcr(n) > zcr2 status = 1; count = count + 1; else status = 0; count = 0; end case 2, if amp(n) > amp2 | . zcr(n) > zcr2 count = count + 1; else silence = silence+1; if silence < maxsilence count = count + 1; elseif count < minlen status = 0; silence = 0
40、; count = 0; else status = 3; end end case 3, break; endend count = count-silence/2;x2 = x1 + count -1; 3、codebook.m%clear;function xchushi= codebook(m)a,b=size(m);m1,m2=szhixin(m);m3,m4=szhixin(m2);m1,m2=szhixin(m1);m7,m8=szhixin(m4);m5,m6=szhixin(m3);m3,m4=szhixin(m2);m1,m2=szhixin(m1);m15,m16=szh
41、ixin(m8);m13,m14=szhixin(m7);m11,m12=szhixin(m6);m9,m10=szhixin(m5);m7,m8=szhixin(m4);m5,m6=szhixin(m3);m3,m4=szhixin(m2);m1,m2=szhixin(m1);chushi(1,:)=zhixinf(m1);chushi(2,:)=zhixinf(m2);chushi(3,:)=zhixinf(m3);chushi(4,:)=zhixinf(m4);chushi(5,:)=zhixinf(m5);chushi(6,:)=zhixinf(m6);chushi(7,:)=zhix
42、inf(m7);chushi(8,:)=zhixinf(m8);chushi(9,:)=zhixinf(m9);chushi(10,:)=zhixinf(m10);chushi(11,:)=zhixinf(m11);chushi(12,:)=zhixinf(m12);chushi(13,:)=zhixinf(m13);chushi(14,:)=zhixinf(m14);chushi(15,:)=zhixinf(m15);chushi(16,:)=zhixinf(m16);sumd=zeros(1,1000); k=1;dela=1;xchushi=chushi;while(k<=1000
43、)sum=ones(1,16);for p=1:a for i=1:16d(i)=odistan(m(p,:),chushi(i,:); end dmin=min(d); sumd(k)=sumd(k)+dmin; for i=1:16if d(i)=dmin xchushi(i,:)=xchushi(i,:)+m(p,:); sum(i)=sum(i)+1;end endend for i=1:16 xchushi(i,:)=xchushi(i,:)/sum(i); endif k>1 dela=abs(sumd(k)-sumd(k-1)/sumd(k);end k=k+1; chus
44、hi=xchushi;end return 4、testvq.m clear;disp('這是一個(gè)簡(jiǎn)易語(yǔ)音識(shí)別系統(tǒng),請(qǐng)保證已經(jīng)將您的語(yǔ)音保存在相應(yīng)文件夾中')disp('正在訓(xùn)練您的語(yǔ)音模版指令,請(qǐng)稍后.')for i=1:10 fname = sprintf('D:matlabworkdtw1海兒的聲音%da.wav',i-1); x = wavread(fname); x1 x2 = vad(x); m = mfcc(x); m = m(x1:x2-5,:); ref(i).code=codebook(m);enddisp('語(yǔ)音指令
45、訓(xùn)練成功,恭喜!¡') disp('正在測(cè)試您的測(cè)試語(yǔ)音指令,請(qǐng)稍后.')for i=1:10fname = sprintf('D:matlabworkdtw1海兒的聲音%db.wav',i-1); x = wavread(fname); x1 x2 = vad(x); mn = mfcc(x); mn = mn(x1:x2-5,:); %mn = mn(x1:x2,:) test(i).mfcc = mn;endsumsumdmax=0;sumsumdmin=0;disp('對(duì)訓(xùn)練過(guò)的語(yǔ)音進(jìn)行測(cè)試')for w=1:10 su
46、md=zeros(1,10); a,b=size(test(w).mfcc);for i=1:10 for p=1:a for j=1:16 d(j)=odistan(test(w).mfcc(p,:),ref(i).code(j,:); end dmin=min(d); sumd(i)=sumd(i)+dmin;%×ÜʧÕæendendsumdmin=min(sumd)/a;sumdmin1=min(sumd);sumdmax(w)=max(sumd)/a;sumsumdmin=sumdmin+sumsumdmax;sumsumd
47、max=sumdmax(w)+sumsumdmax; disp('正在匹配您的語(yǔ)音指令,請(qǐng)稍后.')for i=1:10 if (sumd(i)=sumdmin1) switch (i) case 1 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','前', '前'); case 2 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','后', '后'); case 3 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn',
48、'左', '左'); case 4 fprintf('您輸入的語(yǔ)音指令為ª:%s; 識(shí)別結(jié)果為%sn','右', '右'); case 5 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','東', '東'); case 6 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','南', '南'); case 7 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn
49、','西', '西'); case 8 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','北', '北'); case 9 fprintf('您輸入的語(yǔ)音指令為ª:%s; 識(shí)別結(jié)果為%sn','上', '上'); case 10 fprintf('您輸入的語(yǔ)音指令為ª:%s; 識(shí)別結(jié)果為%sn','下', '下'); otherwise fprintf('error&
50、#39;); end endendenddelamin=sumsumdmin/10;delamax=sumsumdmax/10; disp('對(duì)沒(méi)有訓(xùn)練過(guò)的語(yǔ)音進(jìn)行測(cè)試') disp('正在測(cè)試你的語(yǔ)音,請(qǐng)稍后.')for i=1:10fname = sprintf('D:matlabworkdtw1º£¶ùµÄÉùÒô%db.wav',i-1); x = wavread(fname); x1 x2 = vad(x); mn = mfcc(x);
51、mn = mn(x1:x2-5,:); %mn = mn(x1:x2,:) test(i).mfcc = mn;end for w=1:10 sumd=zeros(1,10); a,b=size(test(w).mfcc);for i=1:10 for p=1:a for j=1:16 d(j)=odistan(test(w).mfcc(p,:),ref(i).code(j,:); end dmin=min(d); sumd(i)=sumd(i)+dmin;%×ÜʧÕæendendsumdmin=min(sumd); z=0;for
52、 i=1:10 if (sumd(i)/a)>delamax)| z=z+1; endend disp('正在匹配您的語(yǔ)音指令,請(qǐng)稍后.') if z<=3for i=1:10 if (sumd(i)=sumdmin) switch (i) case 1 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','前', '前'); case 2 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','后', '后'); case 3 fprintf(
53、'您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','左', '左'); case 4 fprintf('您輸入的語(yǔ)音指令為ª:%s; 識(shí)別結(jié)果為%sn','右', '右'); case 5 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','東', '東'); case 6 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','南', '南'); case 7 fp
54、rintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','西', '西'); case 8 fprintf('您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn','北', '北'); case 9 fprintf('您輸入的語(yǔ)音指令為ª:%s; 識(shí)別結(jié)果為%sn','上', '上'); case 10 fprintf('您輸入的語(yǔ)音指令為ª:%s; 識(shí)別結(jié)果為%sn','下', '下'); otherwise fprintf('error'); end endendelse fprintf('您
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 假山施工合同承包書(shū)
- 房屋建筑工程保修合同協(xié)議
- 影視制作與發(fā)行合作合同
- 三方消防施工合同
- 苗木種植土地承包合同
- 加氣塊砌筑合同協(xié)議書(shū)
- 勞務(wù)中介公司服務(wù)合同
- 溫州浙江溫州瑞安市人民醫(yī)院招聘合同制工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 法語(yǔ)獨(dú)家商務(wù)代理合同
- 廣州華商職業(yè)學(xué)院《典型企業(yè)云平臺(tái)搭建》2023-2024學(xué)年第二學(xué)期期末試卷
- GB/T 2624.6-2024用安裝在圓形截面管道中的差壓裝置測(cè)量滿管流體流量第6部分:楔形裝置
- 《理床鋪》教案 蘇科版一年級(jí)上冊(cè)小學(xué)勞動(dòng)
- 全國(guó)英語(yǔ)等級(jí)考試二級(jí)(pets2級(jí))歷年真題試卷(二)
- 社團(tuán)活動(dòng)情況登記表
- 2025屆湖北武漢武昌區(qū)武漢大學(xué)附屬中學(xué)數(shù)學(xué)高三上期末達(dá)標(biāo)測(cè)試試題含解析
- 山東省濰坊市2023-2024學(xué)年高二下學(xué)期期末測(cè)試+英語(yǔ)試卷
- 生涯規(guī)劃與就業(yè)創(chuàng)業(yè)全套課件電子教案板
- 湘少版六年級(jí)英語(yǔ)下冊(cè)《全冊(cè)課件》
- 2024-2030年中國(guó)護(hù)眼臺(tái)燈行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 《土壤肥料學(xué)通論》課程教學(xué)大綱
- 第十四屆全國(guó)交通運(yùn)輸行業(yè)職業(yè)技能競(jìng)賽(公路收費(fèi)及監(jiān)控員)賽項(xiàng)題庫(kù)-下(多選題-共3部分-2)
評(píng)論
0/150
提交評(píng)論