AI大語音(二)——語音預處理


1 預濾波
CODEC(所謂Codec,就是編碼-解碼器“Coder-Decoder”的縮寫。說得通俗一點,對於音頻就是A/D和D/A轉換。)前端帶寬為300-3400Hz(語音能量主要集中在250~4500Hz)。的抗混疊濾波器。
工程測量中采樣頻率不可能無限高也不需要無限高,因為一般只關心一定頻率范圍內的信號成份。為解決頻率混疊,在對模擬信號進行離散化采集前,采用低通濾波器濾除高於1/2采樣頻率的頻率成份。實際儀器設計中,這個低通濾波器的截止頻率(fc) 為:
  截止頻率(fc)= 采樣頻率(fs) / 2.56
2 A/D轉化
8kHz的采樣頻率,12bit的線性量化精度。
一段3.5秒的語音,經過A/D轉化后共28000個點的數據。
signal: [ -919 -1314 -1049 ..., 148 136 120]
一幀25毫秒的語音,經過A/D轉化后共200個點的數據。
3 預加重
為什么要預加重?
目的是為了對語音的高頻部分進行加重,去除口唇輻射的影響,增加語音的高頻分辨率。因為高頻端大約在800Hz以上按6dB/oct (倍頻程)衰減,頻率越高相應的成分越小,為此要在對語音信號進行分析之前對其高頻部分加以提升。
一般通過傳遞函數為高通數字濾波器來實現預加重,其中a為預加重系數,0.9<a<1.0。設n時刻的語音采樣值為x(n),經過預加重處理后的結果為y(n))=x(n)-ax(n-1),這里取a=0.97。
傳遞函數為:
經過預加重后整體語音信號和一幀語音時域效果:
emphasized_signal: [-919. -422.57 225.58 ..., -12.05 -7.56 -11.92]
-1314-0.97*(-919)=-422.57
預加重后的語音信號頻域效果對比:
4 分幀
傅里葉變換要求輸入信號是平穩的,但是語音信號從整體上來講是不平穩的,嘴巴一動,就game over,如果把不平穩的信號作為輸入,傅里葉變換將無意義。雖然語音信號具有時變特性,但是在一個短時間范圍內(一般認為在10~30ms),其特性基本保持不變即相對穩定,因而可以將其看作是一個准穩態過程,即語音信號具有短時平穩性。,因此我們需要將語音信號進行分幀處理。
分幀一般采用交疊分段的方法,這是為了使幀與幀之前平滑過渡,保持其連續性。前一針和后一幀的交疊部分稱為幀移。幀移與幀長的比值一般取為0~1/2。
 
取一幀25毫秒的語音。
幀長:0.025*8KHZ=200
幀移:80
幀數:(28000-200)/80=347.5,取348幀。
補零:348*80+200=28040
28040-28000=40
多出40要補0, 填充信號以確保所有幀具有相同數量的樣本,而不會截斷原始信號中的任何樣本。
5 加窗
加窗的目的是可以認為對抽樣n附近的語音波形加以強調而對波形的其余部分加以減弱。對語音信號的各個短段進行處理,實際上就是對各個短段進行某種變換或施以某種運算,其實加窗相當於把每一幀里面對應的元素變成它與窗序列對應元素的乘積。用得最多的三種窗函數是矩形窗、漢明窗(Hamming)和漢寧窗(Hanning);以漢明窗舉例如下:
漢明窗函數如下:
漢明窗的時域和頻域波形,窗長N=200,窗函數的寬度其實就是幀長。
加窗即與一個窗函數相乘,加窗之后是為了進行傅里葉展開,
使全局更加連續,避免出現吉布斯效應;加窗時候,原本沒有周期性的語音信號呈現出周期函數的部分特征。
加窗的代價是一幀信號的兩端部分被削弱了,所以在分幀的時候,幀與幀之間需要有重疊。
(吉布斯效應: 將具有不連續點的周期函數(如矩形脈沖)進行傅立葉級數展開后,選取有限項進行合成。當選取的項數越多,在所合成的波形中出現的峰起越靠近原信號的不連續點。當選取的項數很大時,該峰起值趨於一個常數,大約等於總跳變值的9%。這種現象稱為吉布斯現象。)
*
=
6 端點檢測
端點檢測,也叫語音活動檢測,Voice Activity Detection,VAD,它的目的是對語音和非語音的區域進行區分。通俗來理解,端點檢測就是為了從帶有噪聲的語音中准確的定位出語音的開始點,和結束點,去掉靜音的部分,去掉噪聲的部分,找到一段語音真正有效的內容。
VAD 算法可以粗略的分為三類:基於閾值的 VAD、作為分類器的 VAD、模型 VAD。
基於閾值的 VAD: 通過提取時域(短時能量、短期過零率等)或頻域(MFCC、譜熵等)特征,通過合理的設置門限,達到區分語音和非語音的目的。這是傳統的 VAD 方法。
作為分類器的 VAD:可以將語音檢測視作語音/非語音的兩分類問題,進而用機器學習的方法訓練分類器,達到檢測語音的目的。
模型 VAD:可以利用一個完整的聲學模型(建模單元的粒度可以很粗),在解碼的基礎,通過全局信息,判別語音段和非語音段。
雙門限法有三個閾值,前兩個是語音能量的閾值,最后一個是語音過零率的閾值。濁音的能量高於清音,清音的過零率高於無聲部分。這樣的話,我們就可以先利用能量,將濁音部分區分出來,再利用過零率,將清音也提取出來,就完成了端點檢測。
33秒原始信號端點檢測結果:
附錄(魔鬼寫手)
 
 
 
 
——————
淺談則止,細致入微AI大道理
掃描下方“AI大道理”,選擇“關注”公眾號
 
 
歡迎加入!
 
▼下期預告▼
AI大語音(三)——語音特征提取
 
▼往期精彩回顧▼
AI大語音(一)——語音識別基礎
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM