數(shù)字語(yǔ)音信號(hào)處理實(shí)驗(yàn)(共54頁(yè))_第1頁(yè)
數(shù)字語(yǔ)音信號(hào)處理實(shí)驗(yàn)(共54頁(yè))_第2頁(yè)
數(shù)字語(yǔ)音信號(hào)處理實(shí)驗(yàn)(共54頁(yè))_第3頁(yè)
數(shù)字語(yǔ)音信號(hào)處理實(shí)驗(yàn)(共54頁(yè))_第4頁(yè)
數(shù)字語(yǔ)音信號(hào)處理實(shí)驗(yàn)(共54頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、語(yǔ)音(yyn)信號(hào)處理實(shí)驗(yàn)班級(jí)(bnj):學(xué)號(hào):姓名(xngmng):2015年10月語(yǔ)音信號(hào)處理(xn ho ch l)實(shí)驗(yàn)實(shí)驗(yàn)(shyn)學(xué)時(shí)數(shù):8實(shí)驗(yàn)(shyn)學(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)的目的,采用開放實(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í)

2、和實(shí)際應(yīng)用結(jié)合起來(lái),促進(jìn)學(xué)生學(xué)習(xí)的積極性和主動(dòng)性。通過開放實(shí)驗(yàn),目的使學(xué)生進(jìn)一步理解數(shù)字語(yǔ)音信息處理的基本方法,提高學(xué)生自主分析、發(fā)現(xiàn)及解決問題的能力,鍛煉學(xué)生論文寫作能力,為實(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í),通過網(wǎng)上學(xué)習(xí)、資料查閱,自己設(shè)計(jì)程序,給出某一語(yǔ)音信號(hào)的短時(shí)過零率、短時(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í),通過網(wǎng)上學(xué)習(xí)、資料查閱,自己設(shè)計(jì)程序,

3、給出某一語(yǔ)音信號(hào)的短時(shí)譜、倒譜、語(yǔ)譜圖的分析結(jié)果,并借助頻域分析方法檢測(cè)所分析語(yǔ)音信號(hào)的基音周期或共振峰。3)研究設(shè)計(jì)型實(shí)驗(yàn)3:基于MATLAB進(jìn)行語(yǔ)音信號(hào)的LPC分析要求(yoqi):按所學(xué)相關(guān)語(yǔ)音處理的知識(shí),通過網(wǎng)上學(xué)習(xí)、資料查閱,自己設(shè)計(jì)程序,給出某一語(yǔ)音信號(hào)的LPC分析(fnx)結(jié)果,包括LPC譜、LPCC譜的分析結(jié)果,并借助LPC分析方法檢測(cè)所分析語(yǔ)音信號(hào)的基音周期和共振峰。4)研究(ynji)設(shè)計(jì)型實(shí)驗(yàn)4:基于VQ的特定人孤立詞語(yǔ)音識(shí)別研究要求:按所學(xué)相關(guān)語(yǔ)音處理的知識(shí),通過網(wǎng)上學(xué)習(xí)、資料查閱,借助MATLAB工具,自己設(shè)計(jì)基于VQ的碼本訓(xùn)練程序和識(shí)別程序(盡量選用所學(xué)HMM或DT

4、W方法設(shè)計(jì)識(shí)別程序),能識(shí)別特定人的語(yǔ)音,分析所設(shè)計(jì)系統(tǒng)的特性。參考資料實(shí)驗(yàn)一 基于MATLAB的語(yǔ)音信號(hào)時(shí)域特征分析(2學(xué)時(shí))一、實(shí)驗(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í)平均過零率,短時(shí)自相關(guān)函數(shù)等。本實(shí)驗(yàn)要求掌握時(shí)域特征分析原理,并利用已學(xué)知識(shí),編寫程序求解語(yǔ)音信號(hào)的短時(shí)過零

5、率、短時(shí)能量、短時(shí)自相關(guān)特征,分析實(shí)驗(yàn)結(jié)果,并能掌握借助時(shí)域分析方法所求得的參數(shù)分析語(yǔ)音信號(hào)的基音周期及共振峰。二、實(shí)驗(yàn)原理及實(shí)驗(yàn)結(jié)果(自己補(bǔ)充)附錄(參考程序)1) 短時(shí)能量 (1)加矩形窗 a=wavread(beifeng.wav);subplot(6,1,1),plot(a);N=32;for i=2:6h=linspace(1,1,2.(i-2)*N);%形成(xngchng)一個(gè)矩形窗,長(zhǎng)度為2.(i-2)*N En=conv(h,a.*a);% 求短時(shí)能量(nngling)函數(shù)En subplot(6,1,i),plot(En);if(i=2) legend(N=32);else

6、if(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)加漢明窗 a=wavread(beifeng.wav);subplot(6,1,1),plot(a);N=32;for i=2:6h=hanning(2.(i-2)*N);%形成(xngchng)一個(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);el

7、seif(i=3) legend(N=64);elseif(i=4) legend(N=128);elseif(i=5) legend(N=256);elseif(i=6) legend(N=512);endend2) 短時(shí)平均過零率a=wavread(beifeng.wav);n=length(a);N=320;subplot(3,1,1),plot(a);h=linspace(1,1,N);En=conv(h,a.*a); %求卷積得其短時(shí)能量函數(shù)Ensubplot(3,1,2),plot(En); for i=1:n-1 if a(i)=0 b(i)= 1; else b(i) = -1

8、; end if a(i+1)=0 b(i+1)=1; else b(i+1)= -1; end w(i)=abs(b(i+1)-b(i); %求出每相鄰(xin ln)兩點(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)+w(k+i); end j=j+1; k=k+N/2; %每次移動(dòng)(ydng)半個(gè)窗 end for w=1:j Q(w)=Zm(160*(w-1)+1)/(2*N); %短時(shí)平均(pngjn)過零率 end subplot(3,1,3),plot(Q),grid;3) 自相關(guān)函數(shù)

9、 N=240Y=WAVREAD(beifeng.wav);x=Y(13271:13510);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 j=1:240;plot(j,R);grid;實(shí)驗(yàn)(shyn)二 基于MATLAB分析語(yǔ)音信號(hào)(xnho)頻域特征一、實(shí)驗(yàn)(shyn)目的信號(hào)的傅立葉表示在信號(hào)的分析與處理中起著重要的作用。因?yàn)閷?duì)于線性系統(tǒng)來(lái)說,可以很方便地確定其對(duì)正弦或復(fù)指數(shù)和的響應(yīng),所以傅立葉分析方法能完善地解決許多信號(hào)分析和處理問題。另外,傅立葉表示使信號(hào)的某些

10、特性變得更明顯,因此,它能更深入地說明信號(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ī)信號(hào)的表示,但不能直接用于語(yǔ)音信號(hào)。由于語(yǔ)音信號(hào)可以認(rèn)為在短時(shí)間內(nèi),近似不變,因而可以采用短時(shí)分析法。本實(shí)驗(yàn)要求掌握傅里葉分析原理,會(huì)利用已學(xué)的知識(shí),編寫程序估計(jì)短時(shí)譜、倒譜,畫出語(yǔ)譜圖,并分析實(shí)驗(yàn)結(jié)果,在此基礎(chǔ)上,借助頻域分析方法所求得的參數(shù)分析語(yǔ)音信號(hào)的基音周期或共振峰。二、實(shí)驗(yàn)原理(自己補(bǔ)充)參考

11、(cnko)程序1)短時(shí)譜 cleara=wavread(beifeng.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(beifeng.wav)specgram(x,512,fs,100); xlabel(時(shí)間(shjin)(s);ylabel(頻率(pnl)(Hz);title

12、(語(yǔ)譜圖);3)倒譜和復(fù)倒譜(1)加矩形窗時(shí)的倒譜和復(fù)倒譜cleara=wavread(beifeng.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(d);title(加矩形窗時(shí)的倒譜)subplot(2,1,2)plot(c);title(加矩形窗時(shí)的復(fù)倒譜)(2)加漢明窗時(shí)的倒譜和復(fù)倒譜cleara=wavread(beifeng.wav,4000,4350);N=

13、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)plot(c);title(加漢明窗時(shí)的復(fù)倒譜)實(shí)驗(yàn)(shyn)三 基于MATLAB的LPC分析一、實(shí)驗(yàn)(shyn)目的線性預(yù)測(cè)分析是最有效的語(yǔ)音分析技術(shù)之一,在語(yǔ)音編碼、語(yǔ)音合成、語(yǔ)音識(shí)別和說話人識(shí)別等語(yǔ)音處理領(lǐng)域中得到了廣泛的應(yīng)用。語(yǔ)音線性預(yù)測(cè)的基本思想是:一個(gè)語(yǔ)音信號(hào)的抽樣值可以用過去若干個(gè)取樣值的

14、線性組合來(lái)逼近。通過使實(shí)際語(yǔ)音抽樣值與線性預(yù)測(cè)抽樣值的均方誤差達(dá)到最小,可以確定唯一(wi y)的一組線性預(yù)測(cè)系數(shù)。采用線性預(yù)測(cè)分析不僅能夠得到語(yǔ)音信號(hào)的預(yù)測(cè)波形,而且能夠提供一個(gè)非常好的聲道模型。如果將語(yǔ)音模型看作激勵(lì)源通過一個(gè)線性時(shí)不變系統(tǒng)產(chǎn)生的輸出,那么可以利用LP分析對(duì)聲道參數(shù)進(jìn)行估值,以少量低信息率的時(shí)變參數(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分析,只

15、要限定窗的長(zhǎng)度就可以保證分析的短時(shí)性,這種方案稱為自相關(guān)法;另一種方案不對(duì)語(yǔ)音加窗,而是在計(jì)算均方預(yù)測(cè)誤差時(shí)限制其取和區(qū)間,這樣可以導(dǎo)出LP分析的自協(xié)方差法。本實(shí)驗(yàn)要求掌握LPC原理,會(huì)利用已學(xué)的知識(shí),編寫程序估計(jì)線性預(yù)測(cè)系數(shù)以及(yj)LPC的推演參數(shù),并能利用所求的相關(guān)參數(shù)估計(jì)語(yǔ)音的端點(diǎn)、清濁音判斷、基因周期、共振峰等。二、實(shí)驗(yàn)(shyn)原理三、實(shí)驗(yàn)(shyn)結(jié)果(參考)我們使用的原始語(yǔ)音為“北風(fēng)”,采樣頻率為11000Hz,運(yùn)行程序見附錄。在這里我們?nèi)〉?0幀進(jìn)行觀察,線性預(yù)測(cè)階數(shù)為12,看到圖3.1所示的原始語(yǔ)音幀的波形,預(yù)測(cè)語(yǔ)音幀波形和它們之間預(yù)測(cè)誤差的波形。圖3.2為原始語(yǔ)音幀

16、和預(yù)測(cè)語(yǔ)音幀的短時(shí)譜和LPC譜的波形圖3.1 原始語(yǔ)音幀、預(yù)測(cè)語(yǔ)音幀和預(yù)測(cè)誤差的波形圖3.2 原始語(yǔ)音幀和預(yù)測(cè)語(yǔ)音幀的短時(shí)譜和LPC譜的波形這里我們可以改變線性誤差的階數(shù)來(lái)觀察語(yǔ)音幀的短時(shí)譜和LP譜的變化情況,如圖3.3。圖3.3 預(yù)測(cè)(yc)階數(shù)對(duì)語(yǔ)音(yyn)幀短時(shí)譜和LPC譜的影響從圖中可以看出,P越大,LPC譜越能反映出語(yǔ)音短時(shí)譜的細(xì)節(jié)部分,但LPC譜的光滑度隨之下降。由于我們的目的只是用LPC譜反映聲道綜合效應(yīng)的譜的表示式,而具體的諧波形狀是通過激勵(lì)(jl)譜來(lái)控制的,因此LPC譜只要能夠體現(xiàn)出語(yǔ)音的共振峰的結(jié)構(gòu)和譜包絡(luò)就可以,因此從計(jì)算復(fù)雜性的角度分析,預(yù)測(cè)階數(shù)P應(yīng)該適中。圖3.4

17、是原始語(yǔ)音和預(yù)測(cè)誤差的倒譜波形,我們可以從中計(jì)算出原始語(yǔ)音的基音周期。從圖中看出兩峰值之間的間隔為40點(diǎn)左右,基音周期為40/11000=3.6ms,頻率為278Hz左右。圖3.4 原始語(yǔ)音和預(yù)測(cè)誤差的倒譜波形圖3.5給出了原始語(yǔ)音的語(yǔ)譜圖和預(yù)測(cè)語(yǔ)音的語(yǔ)譜圖,通過比較發(fā)現(xiàn),預(yù)測(cè)語(yǔ)音的預(yù)測(cè)效果還可以,基音頻率相差無(wú)幾。圖3.5 原始(yunsh)語(yǔ)音的語(yǔ)譜圖和預(yù)測(cè)語(yǔ)音的語(yǔ)譜圖三、附錄(LPC分析(fnx)參考程序)MusicSource = wavread(bei);Music_source = MusicSource;N = 2048; % window length,N = 100 - 10

18、00;Hamm = hamming(N); % create Hamming windowframe = input(請(qǐng)鍵入(jin r)想要處理的幀位置 = );% origin is current frameorigin = Music_source(frame - 1) * (N / 2) + 1):(frame - 1) * (N / 2) + N);Frame = origin .* Hamm; %Short Time Fourier Transform%s1,f1,t1 = specgram(MusicSource,N,N/2,N); Xs1,Ys1 = size(s1);for

19、 i = 1:Xs1 FTframe1(i) = s1(i,frame);end N1 = input(請(qǐng)鍵入預(yù)測(cè)器階數(shù) = ); % N1 is predictors ordercoef,gain = lpc(Frame,N1); % LPC analysis using Levinson-Durbin 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(

20、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(誤差);pause %subplot(2,1,2),plot(f,20*log(abs(FTframe2);grid;title(短時(shí)譜) % Gain solution using G2 = Rn(0) - sum(ai*Rn(i),i = 1,2,.,P%fLength(1 : 2 * N) = origin,zeros(1,N); Xm = fft(fLengt

21、h,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,20*log(abs(FTframe1),f1,(20*log(abs(1 ./ A),-r);grid;title(短時(shí)譜);subpl

22、ot(2,1,2),plot(f1,(20*log(abs(G ./ A);grid;title(LPC譜);pause %plot(abs(ifft(FTframe1 ./ (G ./ A);grid;title(excited)%plot(f1,20*log(abs(FFT_est(1 : length(f1) .* A / G );grid;%pause % find_pitch%temp = FTframe1 - FFT_est(1 : length(f1); % not move higher frequnce pitch1 = log(abs(temp);pLength = len

23、gth(pitch1);result1 = 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(原始(yunsh)語(yǔ)音幀倒譜(直接調(diào)用函數(shù));subplot(212),

24、plot(pitch);grid;title(預(yù)測(cè)(yc)誤差倒譜(直接調(diào)用函數(shù));pause subplot(211),plot(1:length(result1),fftshift(real(result1);grid;title(預(yù)測(cè)誤差倒譜(根據(jù)定義(dngy)編寫,沒有去除高頻分量);subplot(212),plot(1:length(result2),fftshift(real(result2);grid;title(預(yù)測(cè)誤差倒譜(根據(jù)(gnj)定義編寫,去除高頻分量);實(shí)驗(yàn)四 基于VQ的特定(tdng)人孤立詞語(yǔ)音識(shí)別研究一、實(shí)驗(yàn)(shyn)目的矢量量化(Vector Quan

25、tization)是一種極其重要的信號(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ā)展,可以說,凡是要用量化的地方都可以應(yīng)用矢量量化。 本實(shí)驗(yàn)要求掌握矢量量化的原

26、理,會(huì)利用已學(xué)的相關(guān)語(yǔ)音特征,構(gòu)建語(yǔ)音特征矢量,然后利用VQ技術(shù)(jsh),編寫訓(xùn)練VQ碼表的程序,并在此基礎(chǔ)上利用所學(xué)的語(yǔ)音識(shí)別技術(shù),編程實(shí)現(xiàn)基于矢量量化的特定人孤立詞語(yǔ)音識(shí)別,要注意的是識(shí)別過程中語(yǔ)音端點(diǎn)如何檢測(cè),從識(shí)別的實(shí)時(shí)性角度出發(fā),建議能利用VC技術(shù)實(shí)現(xiàn)。二、實(shí)驗(yàn)(shyn)原理三、實(shí)驗(yàn)(shyn)結(jié)果(根據(jù)所給的資料,仔細(xì)加以整理)基于VQ的特定人孤立詞語(yǔ)音識(shí)別徐海兒044100230摘要: 本次設(shè)計(jì)采用基于矢量量化的特定人孤立詞語(yǔ)音識(shí)別。先對(duì)語(yǔ)音進(jìn)行預(yù)加重端點(diǎn)檢測(cè)處理,接著提取特征矢量參數(shù)(采用MFCC系數(shù)),然后對(duì)模版語(yǔ)音用適量量化方法進(jìn)行訓(xùn)練得到語(yǔ)音模版,最后用測(cè)試語(yǔ)音測(cè)試系

27、統(tǒng)性能。實(shí)驗(yàn)結(jié)果顯示對(duì)訓(xùn)練人的語(yǔ)音識(shí)別率能達(dá)到100%,但對(duì)沒有訓(xùn)練過的人的拒識(shí)率卻不盡人意。關(guān)鍵字: 語(yǔ)音識(shí)別,MFCC系數(shù),矢量量化語(yǔ)音識(shí)別系統(tǒng)根據(jù)對(duì)說話人說話方式的要求,可以分為孤立字(詞)語(yǔ)音識(shí)別系統(tǒng),連接詞語(yǔ)音識(shí)別系統(tǒng)以及連續(xù)語(yǔ)音識(shí)別系統(tǒng);根據(jù)對(duì)說話人的依賴程度,可以分為特定人和非特定人語(yǔ)音識(shí)別系統(tǒng)。孤立字識(shí)別系統(tǒng)用于識(shí)別孤立發(fā)音的字(詞)。孤立字在字與字之間存在發(fā)音停頓,單字之間的端點(diǎn)檢測(cè)比較容易;同時(shí)一般對(duì)單字的發(fā)音都比較認(rèn)真,且單字之間的協(xié)同發(fā)音影響較小,較容易得到較高的識(shí)別率。采用模式匹配原理的語(yǔ)音識(shí)別系統(tǒng)組語(yǔ)音識(shí)別系統(tǒng)根據(jù)對(duì)說話人說話方式的要求,可以分為孤立字(詞)語(yǔ)音識(shí)別

28、系統(tǒng),連接詞語(yǔ)音識(shí)別系統(tǒng)以及連續(xù)語(yǔ)音識(shí)別系統(tǒng);根據(jù)對(duì)說話人的依賴程度,可以分為特定人和非特定人語(yǔ)音識(shí)別系統(tǒng)。孤立字識(shí)別系統(tǒng)用于識(shí)別孤立發(fā)音的字(詞)。孤立字在字與字之間存在發(fā)音停頓,單字之間的端點(diǎn)檢測(cè)比較容易;同時(shí)一般對(duì)單字的發(fā)音都比較認(rèn)真,且單字之間的協(xié)同發(fā)音影響較小,較容易得到較高的識(shí)別率。本次設(shè)計(jì)采用基于矢量量化的特定人孤立詞語(yǔ)音識(shí)別。1 、系統(tǒng)(xtng)整體設(shè)計(jì)失真測(cè)度 識(shí)別(shbi) 輸出模式匹配特征參數(shù)提取預(yù)處理語(yǔ)音(yyn)信號(hào)語(yǔ)音模版 訓(xùn)練 圖1 系統(tǒng)整體框圖如圖1所示,其基本算法包括以下幾個(gè)階段:首先是端點(diǎn)檢測(cè),通過端點(diǎn)檢測(cè)捕捉到數(shù)據(jù)中的語(yǔ)音信息,然后將語(yǔ)音信息進(jìn)行分幀和

29、加窗處理,提取一種用于語(yǔ)音識(shí)別的基本識(shí)別參數(shù),接著進(jìn)行矢量量化,最后將量化得到的特征矢量送入識(shí)別模型進(jìn)行識(shí)別。2 、端點(diǎn)檢測(cè)采用雙門限法來(lái)檢測(cè)端點(diǎn)。同時(shí),利用過零率檢測(cè)清音,用短時(shí)能量檢測(cè)濁音,兩者配合。首先為短時(shí)能量和過零率分別確定兩個(gè)門限。一個(gè)比較低的門限,數(shù)值很小,對(duì)信號(hào)的變化比較敏感,很容易超過;另一個(gè)是比較高的門限,數(shù)值很大。低門限被超過未必是語(yǔ)音的開始,有可能是很短的噪聲引起。超過高門限意味著語(yǔ)音信號(hào)開始。整個(gè)端點(diǎn)檢測(cè)可分為四段:靜音、過渡段、語(yǔ)音段、結(jié)束。實(shí)驗(yàn)時(shí)使用一個(gè)變量status表示當(dāng)前狀態(tài)。靜音段,如果能量或過零率超過低門限,就開始標(biāo)記起始點(diǎn),進(jìn)入過渡段。過渡段當(dāng)兩個(gè)參數(shù)

30、值都回落到低門限以下,就將當(dāng)前狀態(tài)恢復(fù)到靜音狀態(tài)。而如果過渡段中兩個(gè)參數(shù)中的任一個(gè)超過高門限,則進(jìn)入到語(yǔ)音段。處于語(yǔ)音段時(shí),如果兩參數(shù)降低到門限以下,而且總的記時(shí)長(zhǎng)度小于最短時(shí)間門限,則認(rèn)為這是一段噪音,繼續(xù)掃描以后的語(yǔ)音數(shù)據(jù),否則標(biāo)記好結(jié)束端點(diǎn)。3 、特征參數(shù)提取 常用的語(yǔ)音識(shí)別參數(shù)有線性預(yù)測(cè)參數(shù)(LPC),線性預(yù)測(cè)倒譜參數(shù)(LPCC)和Mel尺度倒譜參數(shù)(MFCC)等。MFCC參數(shù)表示人對(duì)聲音高低的感受是一種主觀感受,用客觀度量來(lái)表征這種主觀感受就采用了Mel標(biāo)度。Mel濾波器組是一組采用Mel刻度的線性相位FIR帶通濾波器,這組濾波器中的每一個(gè)中心頻率按Mel刻度在討論的頻帶上均勻分布,

31、每個(gè)濾波器的帶寬都為臨界帶寬。主要是MFCC參數(shù)考慮了聽覺系統(tǒng)的非線性特點(diǎn),能夠有效地提高系統(tǒng)的性能。MFCC參數(shù)與LPCC相比的優(yōu)點(diǎn):1)語(yǔ)音的信息大多集中在低頻部分,而高頻部分易受環(huán)境噪聲干擾。MFCC參數(shù)將線性頻標(biāo)轉(zhuǎn)化為Mel頻標(biāo),強(qiáng)調(diào)語(yǔ)音的低頻信息,從而突出了有利于識(shí)別的信息,屏蔽了噪聲干擾。2) MFCC沒有任何前提假設(shè),在各種情況(qngkung)下均可使用。而LPCC參數(shù)假定(jidng)所處理的信號(hào)為AR信號(hào),對(duì)于動(dòng)態(tài)特性較強(qiáng)的輔音,這個(gè)假設(shè)并不嚴(yán)格成立。以上(yshng)分析可以得出MFCC的識(shí)別性能和噪聲魯棒性優(yōu)于LPCC,根據(jù)有關(guān)記錄使用Mel倒譜參數(shù)(MFCC)的識(shí)別率

32、確比使用線性預(yù)測(cè)參數(shù)(LPC)的識(shí)別率高4個(gè)百分點(diǎn),因此本系統(tǒng)選擇MFCC (Mel倒譜參)作為基本識(shí)別參數(shù)。MFCC參數(shù)提取的過程如圖2,其中Mel濾波器組的作用是利用人耳聽覺特性對(duì)語(yǔ)音信號(hào)的幅度平方譜進(jìn)行平滑。對(duì)數(shù)操作的用途:壓縮語(yǔ)音譜的動(dòng)態(tài)范圍;考慮乘性噪聲,將頻域中的乘性成分轉(zhuǎn)換成加性成分。離散余弦變化主要是用來(lái)對(duì)不同頻段的頻譜成份進(jìn)行解相關(guān)處理,使得各維向量之間相互獨(dú)立。預(yù)加重DFT、FFTLogMEL頻率濾波器組DCT求倒譜 圖2 MFCC參數(shù)提取流程4 、矢量量化4.1 概念矢量量化(Vector Quantization)是一種重要的信號(hào)壓縮方法。矢量量化主要適用于小詞匯量、孤

33、立詞的語(yǔ)音識(shí)別。其過程是:將語(yǔ)音信號(hào)波形的k個(gè)樣點(diǎn)的每一幀,或有k個(gè)參數(shù)的每一參數(shù)幀,構(gòu)成k維空間中的一個(gè)矢量,然后對(duì)矢量進(jìn)行量化。量化時(shí),將k維無(wú)限空間劃分為M個(gè)區(qū)域邊界,然后將輸入矢量與這些邊界進(jìn)行比較,并被量化為“距離”最小的區(qū)域邊界的中心矢量值。矢量量化器的設(shè)計(jì)就是從大量信號(hào)樣本中訓(xùn)練出好的碼書,從實(shí)際效果出發(fā)尋找到好的失真測(cè)度定義公式,設(shè)計(jì)出最佳的矢量量化系統(tǒng),用最少的搜索和計(jì)算失真的運(yùn)算量,實(shí)現(xiàn)最大可能的平均信噪比。失真測(cè)度主要有均方誤差(即歐氏距離)、加權(quán)的均方誤差、ltakura-Saito譜失真測(cè)度、似然比失真測(cè)度等。初始碼書的生成可以是隨機(jī)選取、分裂生成法、乘積碼書法。在選

34、定了失真測(cè)度和初始碼書后,就用LBG算法,對(duì)初始碼書進(jìn)行迭代優(yōu)化,一直到系統(tǒng)性能滿足要求或不再有明顯的改進(jìn)為止。核心思想可以這樣理解:如果一個(gè)碼書是為某一特定的信源而優(yōu)化設(shè)計(jì)的,那么由這一信息源產(chǎn)生的信號(hào)與該碼書的平均量化失真就應(yīng)小于其它信息的信號(hào)與該碼書的平均量化失真,也就是說編碼器本身存在區(qū)分能力。VQ是將若干個(gè)幅度連續(xù)取值的時(shí)域采樣信號(hào)分成一組,即構(gòu)成矢量,然后用若干離散的數(shù)字值(稱為標(biāo)號(hào))來(lái)表示各種矢量。一個(gè)VQ編碼器(或譯碼器),往往擁有一個(gè)或多個(gè)由具有代表意義的矢量組成的集合,稱為“碼本”,其中每個(gè)矢量稱為“碼矢量”,或稱為“碼字”VQ的原理用在語(yǔ)音識(shí)別中,訓(xùn)練用的語(yǔ)音特征通過聚類

35、的方法形成碼書。識(shí)別時(shí),VQ編碼器將待識(shí)別語(yǔ)音的特征矢量與碼書中的每個(gè)矢量進(jìn)行是真測(cè)度運(yùn)算,最小的是真測(cè)度所對(duì)應(yīng)的碼字的標(biāo)號(hào)代替輸入矢量,這就完成了VQ編碼的任務(wù)。 VQ編碼器端只需將標(biāo)號(hào)對(duì)應(yīng)的碼字輸出即可。這個(gè)輸出矢量并非編碼器的輸入矢量,而是與輸入矢量不同的碼字,因此,VQ會(huì)帶來(lái)一定的量化誤差。4.2 碼本設(shè)計(jì)目前訓(xùn)練碼書時(shí)最基本也是最常用(chn yn)的算法是LBG算法,反復(fù)迭代、逐步優(yōu)化。我們(w men)采用以歐氏距離計(jì)算兩個(gè)矢量之間的畸變:1)存儲(chǔ)(cn ch)形成VQ碼本所需全部輸入矢量x的集合S.2)設(shè)置迭代算法的最大迭代次數(shù)L.3)設(shè)置相對(duì)失真改進(jìn)量4)設(shè)置M個(gè)初始碼字Y1

36、,Y2,YM5)設(shè)置總失真6)設(shè)置迭代初值m=1;7)根據(jù)最近鄰準(zhǔn)則,將s分成M個(gè)子集S1,S2,.,SM,即當(dāng)X屬于S1時(shí),下式成立:d(X,Y1)=d(X,Yi), i =M其中d (x, Y)表示X和Y的歐氏距離。這種劃分方法稱為最鄰近劃分。8)計(jì)算總失真初始碼字的選擇也是碼本設(shè)計(jì)中一個(gè)重要問題。LBG算法是一個(gè)使總畸變單調(diào)下降的算法。一個(gè)VQ系統(tǒng)的總畸變是它的M個(gè)碼字決定的狀態(tài)空間點(diǎn)的函數(shù)。大部分情況下,這個(gè)函數(shù)往往都是凸函數(shù),因此LBG算法僅僅只能收斂到某個(gè)局部最優(yōu)點(diǎn)上,而收斂不到全局最優(yōu)點(diǎn)上。具體收斂到哪一個(gè)局部最優(yōu)點(diǎn),就由M個(gè)初始碼字決定。初始碼字的選擇有很多種方法。最簡(jiǎn)單的是隨

37、機(jī)選取,但是這種方法的效果并不好,因?yàn)檫@些被選中碼字在集合中的分布可能很不均勻,偶然性很大。一般采取的方法是分裂法。其基本步驟為:第一步先求得s中全體x的質(zhì)心x1;,然后在s中找一個(gè)與此質(zhì)心畸變最大的矢量x2,以此兩個(gè)矢量x1,x2;以x1,x2為基準(zhǔn)作最近鄰劃分,形成兩個(gè)子集。然后對(duì)著兩個(gè)子集分別按同樣的方法處理就可以得到四個(gè)子集。以此類推,經(jīng)過B次分裂后,便可以得到2的B次方個(gè)子集,這M個(gè)子集的質(zhì)心便是初始碼字。碼本生成程序:從輸入信號(hào)中經(jīng)過預(yù)加重、分幀、加窗等處理計(jì)算出短時(shí)能量,然后經(jīng)過離散傅立葉變換DFT)得到線性頻譜,通過Mel頻率濾波器組得到Mel頻譜,并通過對(duì)數(shù)能量的處理得到對(duì)數(shù)

38、頻譜,再經(jīng)過離散余弦變換到倒譜頻譜域,提取Met頻率倒譜系數(shù)(MFCC參數(shù)),最后保存MFCC參數(shù)的雙精度數(shù)組;并從MFCC的結(jié)果建立程序中用到的點(diǎn)數(shù)組坐標(biāo),一個(gè)單詞一個(gè)點(diǎn)序列:根據(jù)這些點(diǎn)為每個(gè)單詞建立一個(gè)VQ碼本;此程序?qū)⑤斎胝Z(yǔ)音信號(hào)轉(zhuǎn)換成一系列聚類質(zhì)心點(diǎn)和對(duì)應(yīng)的下標(biāo)。4.3 碼本搜索當(dāng)一個(gè)待量化矢量輸入vQ編碼器時(shí),vQ編碼器需要從碼本中搜索出與輸入矢量最接近的碼字。如何快速而準(zhǔn)確地找到這個(gè)碼字,就是研究搜索策略的意義所在。最簡(jiǎn)單的方法是比較所有碼字和輸入矢量的距離。距離最小的便是目標(biāo)碼字,這種搜索方法稱為“全搜索”,這種方法流程簡(jiǎn)單,但是當(dāng)碼本容量很大時(shí)全搜索方法的計(jì)算量很大。優(yōu)化的方法

39、主要有兩種:改變碼本結(jié)構(gòu)和改進(jìn)搜索算法,這兩種算法會(huì)節(jié)省一定的計(jì)算量,但是性能上跟全搜索算法相比有一定程度的下降,由于本次實(shí)驗(yàn)的設(shè)計(jì)目的是進(jìn)行孤立詞識(shí)別,選擇全搜索算法。4.4 拒識(shí)采用一個(gè)平均失真測(cè)度來(lái)判定測(cè)試語(yǔ)音是否為訓(xùn)練人。設(shè)置置信區(qū)間Dmin(i)/K,Dmax(i)/K,若輸入語(yǔ)音的失真測(cè)度30%不在置信區(qū)間,則拒識(shí)。5實(shí)驗(yàn)輸入語(yǔ)音“前”,“后”,“左”,“右”,“東”,“南”,“西”,“北”,“上”,“下”,一遍用來(lái)訓(xùn)練語(yǔ)音模版,一遍用來(lái)測(cè)試。Matlab仿真結(jié)果:這是一個(gè)簡(jiǎn)易語(yǔ)音識(shí)別系統(tǒng),請(qǐng)保證(bozhng)已經(jīng)將您的語(yǔ)音保存在相應(yīng)文件夾中!正在(zhngzi)訓(xùn)練您的語(yǔ)音模版

40、指令,請(qǐng)稍后.語(yǔ)音指令訓(xùn)練(xnlin)成功,恭喜!正在處理您的測(cè)試語(yǔ)音指令,請(qǐng)稍后.對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:前; 識(shí)別結(jié)果為:前對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:后; 識(shí)別結(jié)果為:后對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:左; 識(shí)別結(jié)果為:左對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:右; 識(shí)別結(jié)果為:右對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:東; 識(shí)別結(jié)果為:東對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令

41、,請(qǐng)稍后.您輸入的語(yǔ)音指令為:南; 識(shí)別結(jié)果為:南對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:西; 識(shí)別結(jié)果為:西對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:北; 識(shí)別結(jié)果為:北對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:上; 識(shí)別結(jié)果為:上對(duì)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:下; 識(shí)別結(jié)果為:下統(tǒng)計(jì)結(jié)果如下:特征參數(shù)正確詞/詞數(shù)(女)正確詞/詞數(shù)(男)MFCC10/1010/10 表1 訓(xùn)練人識(shí)別統(tǒng)計(jì)結(jié)果如表1所示,用MFCC系數(shù)作為特征矢量,對(duì)于訓(xùn)練人它的識(shí)別率可

42、以達(dá)到100%。同時(shí),我們又對(duì)非訓(xùn)練人進(jìn)行測(cè)試。沒有加拒識(shí)條件:特征參數(shù)正確詞/詞數(shù)(女)MFCC4/10增加拒識(shí)條件(tiojin):實(shí)驗(yàn)結(jié)果對(duì)已經(jīng)訓(xùn)練過的語(yǔ)音(yyn)進(jìn)行測(cè)試;正在處理您的測(cè)試(csh)語(yǔ)音指令,請(qǐng)稍后.正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:前; 識(shí)別結(jié)果為:前正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:后; 識(shí)別結(jié)果為:后正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:左; 識(shí)別結(jié)果為:左正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:右; 識(shí)別結(jié)果為:右正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:東; 識(shí)別結(jié)果為:東正在匹配您的語(yǔ)音指令,請(qǐng)

43、稍后.您輸入的語(yǔ)音指令為:南; 識(shí)別結(jié)果為:南正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音指令為:西; 識(shí)別結(jié)果為:西正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!對(duì)沒有訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試:正在處理您的測(cè)試語(yǔ)音指令,請(qǐng)稍后.正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的

44、語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音無(wú)效!正在匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入(shr)的語(yǔ)音無(wú)效!正在(zhngzi)匹配您的語(yǔ)音指令,請(qǐng)稍后.您輸入的語(yǔ)音(yyn)無(wú)效!特征參數(shù)(正確詞/詞數(shù))訓(xùn)練人 (拒識(shí)/詞數(shù))非訓(xùn)練人MFCC系數(shù)7/1010/10若增加拒識(shí)條件,對(duì)于非訓(xùn)練人,拒識(shí)率能達(dá)到100%,但降低了訓(xùn)練人語(yǔ)音的識(shí)別率,為70%,說明本系統(tǒng)存在問題,需要改進(jìn)的空間還很大。尤其是失真測(cè)度,拒識(shí)條件等還需要改進(jìn)。6程序(部分)1、mfcc.mfunction ccc =

45、mfcc(x)bank=melbankm(24,256,8000,0,0.5,m);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

46、); t = abs(fft(s); t = t.2; c1=dctcoef * 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(a

47、bs(x); FrameLen = 240;FrameInc = 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.02;zcr = sum(s

48、igns.*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 + 1; elsei

49、f 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; count = 0; else status = 3; end end c

50、ase 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=szhixin(m8);m13,m14=szhixin(m7);m11,m12=sz

51、hixin(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,:)=zhixinf(m7);chushi(8,:)=zhixinf(m8);chushi(

52、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(k1 dela=abs(sumd(k)-sumd(k-1)/sumd(k);end k=k+1;

53、chushi=xchushi;end return 4、testvq.m clear;disp(這是一個(gè)簡(jiǎn)易語(yǔ)音識(shí)別系統(tǒng),請(qǐng)保證已經(jīng)(y jing)將您的語(yǔ)音保存在相應(yīng)文件夾中)disp(正在訓(xùn)練您的語(yǔ)音模版指令(zhlng),請(qǐng)稍后.)for i=1:10 fname = sprintf(D:matlabworkdtw1海兒的聲音(shngyn)%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ǔ)音指令訓(xùn)練成功,恭喜!

54、) 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)練過的語(yǔ)音進(jìn)行測(cè)試)for w=1:10 sumd=zeros(1,10); a,b=size(test(w).mfcc);for i=1:10

55、 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;sumsumdmax=sumdmax(w)+sumsumdmax; disp(正在匹配(ppi)您的語(yǔ)音指令,請(qǐng)稍后.)for i=1:10 if (sumd(i)=sumdmin1)

56、 switch (i) case 1 fprintf(您輸入(shr)的語(yǔ)音指令為:%s; 識(shí)別(shbi)結(jié)果為%sn,前, 前); case 2 fprintf(您輸入的語(yǔ)音指令為:%s; 識(shí)別結(jié)果為%sn,后, 后); case 3 fprintf(您輸入的語(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

57、fprintf(您輸入的語(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 endendenddelamin=sumsumdmin/10;delamax=sumsumdmax/10; disp(對(duì)沒有(mi yu)訓(xùn)練過的語(yǔ)音進(jìn)行測(cè)試) disp(正在測(cè)試你的語(yǔ)音(y

58、yn),請(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;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).cod

59、e(j,:); end dmin=min(d); sumd(i)=sumd(i)+dmin;%endendsumdmin=min(sumd); z=0;for i=1:10 if (sumd(i)/a)delamax)| z=z+1; endend disp(正在(zhngzi)匹配您的語(yǔ)音指令,請(qǐng)稍后.) if z Question 2:畫出原始語(yǔ)音(yyn)波形);t = 0:1/fs1:(length(s1) - 1)/fs1;plot(t, s1), axis(0, (length(s1) - 1)/fs1 -0.4 0.5);title(原始語(yǔ)音s1的波形);xlabel(時(shí)間/s)

60、;ylabel(幅度)pause close all%Question 3 (linear)disp( Question 3: 畫出線性譜);M = 100;%當(dāng)前(dngqin)幀數(shù)N = 256;%幀長(zhǎng)frames = blockFrames(s1, fs1, M, N);%分幀t = N / 2;tm = length(s1) / fs1;subplot(121);imagesc(0 tm, 0 fs1/2, abs(frames(1:t, :).2), axis xy;title(能量(nngling)譜(M = 100, N = 256);xlabel(時(shí)間(shjin)/s);yl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論