做了2年半的語音信號(hào)處理方面的研究了,主要從事算法方面的研究,從一開始的采用S變換提取語音特征進(jìn)行說話人識(shí)別,到后來的語音增強(qiáng)算法研究,HTK學(xué)習(xí),然后又回到語音特征提取分析,感覺學(xué)習(xí)語音信號(hào)處理應(yīng)該有個(gè)循序漸進(jìn)的過程,總結(jié)一下,也希望能有這方面的專業(yè)人士批評指正。 語音信號(hào)處理知識(shí)準(zhǔn)備階段: 基礎(chǔ):
語音信號(hào)處理方面必看書籍:離散時(shí)間語音信號(hào)處理——原理與應(yīng)用 強(qiáng)烈推薦三本利用MATLAB做語音信號(hào)處理的電子書: 1、http://neural.cs./jang/books/dcpr/(Data Clustering and Pattern Recognition (資料分群與樣式辨認(rèn))) 2、http:///jang/books/audioSignalProcessing/index.asp(Audio Signal Processing and Recognition (音訊處理與辨識(shí))) 3、MATLAB擴(kuò)展編程 這三本中有很多語音處理相關(guān)的源程序。 學(xué)習(xí)理解階段: 1.理解語音的發(fā)聲機(jī)理 語音一般模型
2.熟悉語音分析一般分析的特征,理解各種算法在提取這些特征的實(shí)現(xiàn)過程,理解別人的算法時(shí)候,試著用其他算法實(shí)現(xiàn),這是個(gè)培養(yǎng)興趣的好方法。總結(jié)語音特征提取的方法: 基頻提出(pitch): 共振峰:一般來說,語音段的波形重復(fù)率比較高,找出一個(gè)基本周期,這個(gè)基本周期形狀和頻率的大小分別代表著內(nèi)容和音色,對它進(jìn)行FFT,求得頻率極大值點(diǎn),稱之為共振峰。共振峰也代表著聲帶震動(dòng)后,經(jīng)過聲道這個(gè)諧振腔,得到的語言的頻譜最大值點(diǎn),因此也表示聲道的諧振頻率點(diǎn),因此也可以通過求LPC間接求得。即先由LPC得到聲道系統(tǒng)函數(shù),再求聲道頻譜響應(yīng),接著用峰值檢測法(或別的方法)檢測峰值點(diǎn),即為共振峰。 共振峰反映了聲道的特征,一般多用來作為情感識(shí)別特征。 LPC:自相關(guān)法 LPC系數(shù)代表聲道特征,利用線性預(yù)測系數(shù)可以求得共振峰,由LPC得到的LPCC可以用來做語音識(shí)別,說話人識(shí)別等。 MFCC:分幀加窗——FFT——MEL濾波器——DCT MFCC相對LPCC考慮了人的聽覺掩蔽效果,即一個(gè)強(qiáng)度較小的頻率成分可能被鄰近的一個(gè)較強(qiáng)頻率成分所掩蔽(頻域掩蔽),或者兩個(gè)時(shí)間上很接近的信號(hào)也可能產(chǎn)生掩蔽現(xiàn)象(時(shí)域掩蔽)。 過零率(ZCR):1.先將語音轉(zhuǎn)化為整數(shù)形式(減小double型運(yùn)算的誤差),2.求取一幀信號(hào)ZCR時(shí),可以將信號(hào)先減去直流分量,3.然后再點(diǎn)乘新信號(hào)向前或者向后移位一個(gè)信號(hào)點(diǎn)的信號(hào),計(jì)算負(fù)數(shù)個(gè)數(shù)。 1.wave=wave*2^(bit-1); 2.frameMat(:,i)=frameMat(:,i)-round(mean(frameMat(:,i))); 3.zcr1=sum(frameMat(1:end-1, :).*frameMat(2:end, :)<0); 一般噪聲和清音的過零率高,濁音的過零率低,過零率和音量配合可以用作端點(diǎn)檢測
語譜(短時(shí)頻譜):分幀加窗——FFT——平方 這個(gè)程序小點(diǎn),上傳上來 function
[x,y,L]=sogram(Data,Winsiz,Shift,Base,Mode,Gray,Fs) 短時(shí)功率譜:信號(hào)分幀加窗——自相關(guān)——FFT
音量:可以理解為每幀信號(hào)的能量大小 3.對研究領(lǐng)域的探索 語音增強(qiáng):做得最多的就屬語音增強(qiáng)這塊,方法很多,譜減、Decision-director、non-cause、cause、MMSE、logMMES、掩蔽、維納濾波、LMS等等,一般是將其中的幾種方法結(jié)合。 對語音增強(qiáng)這塊的理解,看了很多人開發(fā)的算法,自己也寫過一些算法,我將它們分成了兩類:譜衰減和非譜衰減,譜衰減就是利用帶噪語音乘以譜衰減因子,原理簡單,便于實(shí)現(xiàn),從數(shù)字信號(hào)處理的角度來看就是尋找一個(gè)自適應(yīng)的濾波器,這個(gè)濾波器的自適應(yīng)因子是和每個(gè)時(shí)刻的噪聲聯(lián)系的,將帶噪語音經(jīng)過這樣一個(gè)濾波器得到增強(qiáng)語音。非譜衰減理解為利用時(shí)頻或者小波等方法分解語音,對每個(gè)部分去噪,然后再合成,諸如此類的方法??催^我?guī)熋玫腅MD語音增強(qiáng)方法,效果相當(dāng)不錯(cuò),只是計(jì)算時(shí)間上需要改進(jìn)。 語音識(shí)別: 語音識(shí)別根據(jù)識(shí)別對象和處理語音不同可以分為不同類,按對象分特定人和非特定人,按處理語音分孤立詞識(shí)別和連續(xù)語音識(shí)別 接觸的是HMM,理解HMM的一些好的網(wǎng)址:http://www.comp./roger/HiddenMarkovModels/html_dev/main.html舉例解釋說明,適合初學(xué)者。 HTKBook里面說的比較清楚,但是也比較多。 HTK:下載地址http://htk.eng./ HTK安裝http://blog.sina.com.cn/s/blog_61c485330100iki0.html HTK使用http://blog.sina.com.cn/s/blog_61c485330100ilpx.html 利用HTK做簡單的YES/NO語音識(shí)別http://blog.sina.com.cn/s/blog_61c485330100in91.html HTK使用過程可以抽象成為 準(zhǔn)備階段:編寫語法規(guī)則、詞典文件、特征參數(shù)提取配置文件、HMM原型文件
處理階段:錄音HSLab(訓(xùn)練、識(shí)別用數(shù)據(jù))——提取特征HCopy(可以同時(shí)提取訓(xùn)練、識(shí)別數(shù)據(jù))—— 說話人識(shí)別 這塊目前主要采用GMM說話人識(shí)別模型。 利用GMM模型,在訓(xùn)練的時(shí)候得到特征參數(shù): 端點(diǎn)檢測
ZCR和能量結(jié)合的檢測方法 待續(xù)。。。 |
|