内容提要
1.數字信号處理基礎
2.常用特征提取
1.數字信号處理基礎1.1模拟信号到數字信号的轉化(ADC)—— 采樣和量化
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)1](/uploads3/large/tos-cn-i-qvj2lq49k0/ba8b055f7acf44ff9cf590c9099549e5.jpg)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)2](/uploads3/large/tos-cn-i-qvj2lq49k0/76057e2c69b14045a07e07779e8d05ec.jpg)
- 其中f_0是信号本身的頻率,單位是HZ,即一秒内的周期數
- 如果我們對此正弦波進行采樣,每隔t_s秒進行一次采樣,并使用一定範圍的離散數值表示采樣值,則可以得到采樣後的離散信号
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)3](/uploads3/large/tos-cn-i-qvj2lq49k0/ecacdd7a42914300a3cf6afeb2623468.jpg)
- 公式(2)即為離散信号的定義
- 其中,t_s為采樣周期
- f_s = 1/t_s,為采樣頻率,或者采樣密度,表示一秒之内采樣的點數,t_s為采樣周期
- n = 0,1,......為離散整數序列
- 對圖(a)進行采樣得到圖(b)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)4](/uploads3/large/tos-cn-i-qvj2lq49k0/afacffccaeae430bad8606fe7136da90.jpg)
- Q1:那麼給定一個正弦波采樣後的序列,如圖(b),如何恢複出一個連續的正弦波?
1.2頻率混疊現象- 首先,給出如下的離散序列如圖(a),要求畫出其對應的連續正弦波
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)5](/uploads3/large/tos-cn-i-qvj2lq49k0/ae0379222d884974ab9aae3460669fd3.jpg)
- 對于該離散序列,可給出如圖(b)不同的正弦波,也就是說,不同頻率的正弦波,經過采樣後出現了完全相同的離散信号,\textcolor{red}{why?}
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)6](/uploads3/large/tos-cn-i-qvj2lq49k0/d438ce34ec5547b98b59e61a76e7191d.jpg)
- 可作如下解釋,對于離散信号的定義可做變形,其中m為任意整數
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)7](/uploads3/large/tos-cn-i-qvj2lq49k0/fbc8c77ccd924b8183b54594c558ade5.jpg)
- 再做如下替換,令 m = kn,所以 m/(nt_s) = k/t_s = kf_s,其中f_s = 1/t_s,k為整數,因為n也為整數,所以m必為整數,
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)8](/uploads3/large/tos-cn-i-qvj2lq49k0/c910479ebea04773959188e8ffa160c5.jpg)
- 對比公式(2)和(4),發現初始頻率為f_0的正弦波和初始頻率為f_0 kf_s的正弦波,在經過采樣周期為t_s的采樣後,兩者的離散信号相同
Q2:為什麼會出現頻率混疊這種現象呢?
答:肯定存在一個正弦波采樣不滿足奈奎斯特定理
1.3奈奎斯特定理
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)9](/uploads3/large/tos-cn-i-qvj2lq49k0/831b554fc6c04fb38559fe8d1b5cd34f.jpg)
- 即,在原始信号的一個周期内,至少要采樣兩個點,才能有效地杜絕頻率混疊問題
頻率混疊中的圖(b)顯然不滿足奈奎斯特定理,故産生了頻率混疊
1.4離散傅裡葉變換(DFT)- 為什麼要進行DFT?
- DFT将時域信号變換到頻域,分析信号中的頻率成分
- 理解:對于剛剛的正弦波,很明顯隻有一種頻率,而對于語音而言,通常是各種頻率的正弦波相互疊加,這時候如果橫軸還是為 t 的話就不好分析這個信号,而将橫軸變換為頻率 f 後,這些疊加的正弦波就會在 f = f_0,f_1,...,f_n上顯示出n個峰值,即代表一共有n種不同的頻率,橫看成嶺側成峰,如下圖
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)10](/uploads6/large/tos-cn-i-qvj2lq49k0/e2eb02ecddbe450eb9bfe546ac43c1eb.jpg)
- 什麼信号可以進行DFT?
- 時域離散且周期的信号
- 非周期離散信号可以進行DFT嗎?
- 需要進行周期延拓【也就是将當前信号作為整個信号的一個周期,然後使用這一個周期的信号去進行DFT】
- 傅裡葉家族
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)11](/uploads3/large/tos-cn-i-qvj2lq49k0/5ae009abff3244498a4f0d15a73fc98f.jpg)
1.4.1DFT的定義
給定一個長度為N的時域離散信号x(n),對應的離散頻域序列為X(m)為:
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)12](/uploads3/large/tos-cn-i-qvj2lq49k0/1e348682d2e043f9bbffe39f76c17a3c.jpg)
- 其中,j = \sqrt{-1}
- e為自然對數底
- m = 0,1,2,...,N-1,頻率索引
- X(m)為DFT的第m個輸出
- 根據歐拉公式,DFT的公式還可以變換為:
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)13](/uploads3/large/tos-cn-i-qvj2lq49k0/c3a6ccd284dd45e48a9cb7ae99881aa4.jpg)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)14](/uploads3/large/tos-cn-i-qvj2lq49k0/0eb8b1bc91ad41229842d381c4b44d8c.jpg)
1.4.2DFT的性質
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)15](/uploads3/large/tos-cn-i-qvj2lq49k0/fcb9a794123749bb9786315438950b33.jpg)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)16](/uploads3/large/tos-cn-i-qvj2lq49k0/3b58afff3d9c47a692778e1a5e034345.jpg)
- 如上圖所示,DFT之後的離散頻率序列的幅度具有對稱性,因此在進行N點的DFT特征提取後,隻需要保留N/2 1個點。語音信号特征提取時,一般使用512點DFT,由于對稱性,我們隻需要保留257個有效點。
- 性質2:X(m)實際上表示的是“譜密度”,如果對一個幅度為A實正弦波進行N點DFT,則DFT之後,對應頻率上的幅度M和A之間的關系為:
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)17](/uploads3/large/tos-cn-i-qvj2lq49k0/d07352ff7d17444e9ad82b7367b440cc.jpg)
- DFT之後的頻域序列X(m)的幅值實際上是一個“密度”的概念,通俗講,即單位帶寬上有多少信号存在
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)18](/uploads3/large/tos-cn-i-qvj2lq49k0/e679a19f14df476eb6000685db7001ae.jpg)
- 性質3:DFT的線性
- 如果x_{sum}(n) = x_1(n) x_2(n),則對應的頻域上有:X_{sum}(n) = X_1(n) X_2(n)
- 性質4:時移性
對x(n)左移k個采樣點,得到x_{shift}(n) =x(n-k),對x_{shift}(n)進行DFT,有
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)19](/uploads3/large/tos-cn-i-qvj2lq49k0/c755efd4ef8141deab3ae0447c00285d.jpg)
1.4.3DFT的頻率軸- 頻率分辨率:f_s/N,表示最小的頻率間隔。N越大,頻率分辨率越高,在頻域上,第m個點所表示的分析頻率(原始頻率)為:
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)20](/uploads3/large/tos-cn-i-qvj2lq49k0/81d3f8a74cd245c78d68a9bdeca94b44.jpg)
- 從這個角度也可以理解X(m)的幅值,體現了原信号中頻率為\frac{m}{N}f_s的信号強度
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)21](/uploads3/large/tos-cn-i-qvj2lq49k0/fc680543224f469aa5bf865b6cb5d0f7.jpg)
- 對于上圖 m = 1時,1/8* f_s = 1000,m = 2 時間,2/8* f_s = 2000
為了提高DFT頻率軸的分辨率,而不會影響原始信号的頻率成分。我們可以将時域長度為N的信号x(n) 補0,增加信号的長度,從而提高頻率軸分辨率。對信号進行補0的操作,不會影響DFT的結果,這在FFT(快速傅裡葉變換)中和語音信号分析中非常常見。比如,在語音特征提取階段,對于16k采樣率的信号,一幀語音信号長度為400個采樣點,為了進行512點的FFT,通常将400個點補0,得到512個采樣點,最後隻需要前257個點。
2.Fbank和MFCC特征提取
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)22](/uploads6/large/tos-cn-i-qvj2lq49k0/859125651a4a43adb565607c91707b66.jpg)
Inverse Fourier transform of logarithm of spectrum 對數譜的逆傅裡葉變換
2.1 Step1 預加重- 為什麼需要預加重?
- 提高信号高頻部分的能量,高頻信号在傳遞過程中,衰減較快,但是高頻部分又蘊含很多對語音識别有利的特征,因此,在特征提取部分,需要提高高頻部分能量
- 預加重濾波器就是一個一階高通濾波器,給定時域輸入信号x[n],預加重之後的信号為
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)23](/uploads3/large/tos-cn-i-qvj2lq49k0/d6918809437945839f1b27578029713d.jpg)
- 公式解讀:直觀解釋: 預加重是一個高通濾波器,因此,低頻信号(即時域上信号變換慢的信号)将被抑制;從公式(13)中,我們知道
- 如果信号x是低頻信号(變化較慢),那麼x[n] 和 x[n-1] 的值應該很接近,當在接近1的時候,[]−[−1] 接近于0,此信号的幅度将被大大抑制;
- 如果x是高頻信号(變化很快),那麼x[n] 和x[n-1] 的值将相差很大,[]−[−1] 的值不會趨近0,此信号的幅度還能保持,可以通過此濾波器
2.2 Step2 加窗分幀- 為什麼需要加窗?
- 語音信号為非平穩信号,其統計屬性是随着時間變化的,以漢語為例,一句話中包含很多聲母和韻母,不同的拼音,發音的特點很明顯是不一樣的;
- 但是!語音信号又具有短時平穩的屬性,比如漢語裡一個聲母或者韻母,往往隻會持續幾十到幾百毫秒,在這一個發音單元裡,語音信号表現出明顯的穩定性,規律性,也就是在很短的時間裡呈現出穩定性
- 在進行語音識别的時候,對于一句話,識别的過程也是以較小的發音單元(音素、字、字節)為單位進行識别,因此用滑動窗來提取短時片段,
- 幀長、幀移、窗函數的概念,對于采樣率為16kHz的信号,幀長、幀移一般為25ms、10ms,即400和160個采樣點
- 分幀的過程,在時域上,即用一個窗函數和原始信号函數進行相乘:
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)24](/uploads3/large/tos-cn-i-qvj2lq49k0/653e81ee656d4e48862ea14b4a3f6cb0.jpg)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)25](/uploads3/large/tos-cn-i-qvj2lq49k0/16b3a05c06834ecda8365956197d1fb3.jpg)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)26](/uploads3/large/tos-cn-i-qvj2lq49k0/385676d1a39e421695a40830ba30c03c.jpg)
- 為什麼不直接使用矩形窗?
- 加窗的過程,實際上是在時域上将信号截斷,窗函數與信号在時域相乘,就等于對應的頻域示進行卷積(*),矩形窗主瓣窄,但是旁瓣較大(紅色部分),将其與原信号的頻域表示進行卷積,就會導緻頻率洩露。
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)27](/uploads3/large/tos-cn-i-qvj2lq49k0/2bedd325155f4724b8a0e2ae9c247456.jpg)
2.3 Step3 DFT
在經過上一步的加窗分幀後,會将原語音信号分割成很多個小段的語音信号,但這個小段語音信号并不是在時域上離散周期的,因此需要周期延拓,把這400個采樣點認為是某個語音信号的一個周期來進行DFT
- DFT的作用:将上一步分幀之後的語音幀,由時域變換到頻域,取DFT系數的模,得到譜特征
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)28](/uploads3/large/tos-cn-i-qvj2lq49k0/02ab70cf9dd44fe0adf0a880b4e14508.jpg)
- 上圖展示了語譜圖的生成過程:
- 加窗分幀
- 将每一幀信号進行DFT(FFT),如第t幀信号,DFT系數為X_t(m),m = 0,1,...N
- 将每一幀DFT系數按照時間順序排列起來,得到一個矩陣Y \epsilon C^{T*N},且Y[t,m] = X_t(m)
- 語譜圖是一個三維圖,橫軸表示時間(t),縱軸表示頻率,顔色的深淺表示當前時頻點上幅度的大小|Y[t,m]|
2.4Step4 梅爾濾波器組和對數操作- DFT得到了每個頻帶上信号的能量,但是人耳對于頻率的感知不是等間隔的,而是近似于對數的
- 将線性頻率轉換為梅爾頻率,梅爾頻率與線性頻率的轉換公式為:
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)29](/uploads3/large/tos-cn-i-qvj2lq49k0/98458736e3b747c093e1b1ca78bc9b3f.jpg)
- 梅爾三角濾波器組:根據起始頻率、中間頻率和截止頻率,确定各濾波器的系數
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)30](/uploads3/large/tos-cn-i-qvj2lq49k0/95ffcffe90e94bd1ac880ff3e49d3757.jpg)
- 梅爾濾波器組設計
- 确定濾波器組數目P
- 根據采樣頻率f_s,DFT點數N,濾波器個數P,在梅爾域上等間隔的産生每個濾波器的起始頻率、中間頻率和截至頻率,注意:上一個濾波器的中間頻率是下一個濾波器的起始頻率
- 将梅爾域上每個三角濾波器的起始、中間和截止頻率轉換線性頻率域,并對DFT之後的譜特征進行濾波,得到P個濾波器組能量,進行log 操作,得到Fbank特征
- MFCC在Fbank特征基礎上繼續進行IDFT變換等操作
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)31](/uploads3/large/tos-cn-i-qvj2lq49k0/13ab827e20fb4ac69a88b766c5a456a6.jpg)
上圖中,左邊的倒譜明顯是有兩種正弦波複合而成,紅線所示的正弦波與比較尖銳的正弦波(即高頻和低頻),低頻的稱為譜包絡,高頻的稱之為譜細節,而譜包絡的峰值稱為共振峰,頻域信号可以分解成譜包絡(Envelope)和譜細節的乘積,不同音素的譜包絡和共振峰具有區分性,為了提取譜包絡,進行對數操作,即右邊的變換
對X[m] = H[m]E[m]進行對數操作後,可變換為log|X[m]| = log|H[m]| log|E[m]|,此時譜包絡和譜細節都将被提取到
Step5 IDFT
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)32](/uploads3/large/tos-cn-i-qvj2lq49k0/8cc823dee04b40098ffa53fdb7a13bf7.jpg)
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)33](/uploads3/large/tos-cn-i-qvj2lq49k0/39da03858cfa4679819581257f1d12be.jpg)
Step6 動态特征計算- 一階差分(Delta,Δ),類比于速度,簡單計算方法
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)34](/uploads3/large/tos-cn-i-qvj2lq49k0/97835d8237814e1fb33e42deefed200b.jpg)
- 二階差分(Delta delta,ΔΔ),類比加速度,簡單計算方法
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)35](/uploads3/large/tos-cn-i-qvj2lq49k0/0076bd859ce342cb92d3327cb56d1e4f.jpg)
Step7 能量計算
![語音信号處理和自然語言處理(語音信号處理以及特征提取) 語音信号處理和自然語言處理(語音信号處理以及特征提取)36](/uploads3/large/tos-cn-i-qvj2lq49k0/70e8e30f3e1f4f23bea948ddc8d7e625.jpg)
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!