内容提要
1.數字信号處理基礎
2.常用特征提取
1.數字信号處理基礎1.1模拟信号到數字信号的轉化(ADC)—— 采樣和量化
- 其中f_0是信号本身的頻率,單位是HZ,即一秒内的周期數
- 如果我們對此正弦波進行采樣,每隔t_s秒進行一次采樣,并使用一定範圍的離散數值表示采樣值,則可以得到采樣後的離散信号
- 公式(2)即為離散信号的定義
- 其中,t_s為采樣周期
- f_s = 1/t_s,為采樣頻率,或者采樣密度,表示一秒之内采樣的點數,t_s為采樣周期
- n = 0,1,......為離散整數序列
- 對圖(a)進行采樣得到圖(b)
- Q1:那麼給定一個正弦波采樣後的序列,如圖(b),如何恢複出一個連續的正弦波?
1.2頻率混疊現象- 首先,給出如下的離散序列如圖(a),要求畫出其對應的連續正弦波
- 對于該離散序列,可給出如圖(b)不同的正弦波,也就是說,不同頻率的正弦波,經過采樣後出現了完全相同的離散信号,\textcolor{red}{why?}
- 可作如下解釋,對于離散信号的定義可做變形,其中m為任意整數
- 再做如下替換,令 m = kn,所以 m/(nt_s) = k/t_s = kf_s,其中f_s = 1/t_s,k為整數,因為n也為整數,所以m必為整數,
- 對比公式(2)和(4),發現初始頻率為f_0的正弦波和初始頻率為f_0 kf_s的正弦波,在經過采樣周期為t_s的采樣後,兩者的離散信号相同
Q2:為什麼會出現頻率混疊這種現象呢?
答:肯定存在一個正弦波采樣不滿足奈奎斯特定理
1.3奈奎斯特定理
- 即,在原始信号的一個周期内,至少要采樣兩個點,才能有效地杜絕頻率混疊問題
頻率混疊中的圖(b)顯然不滿足奈奎斯特定理,故産生了頻率混疊
1.4離散傅裡葉變換(DFT)- 為什麼要進行DFT?
- DFT将時域信号變換到頻域,分析信号中的頻率成分
- 理解:對于剛剛的正弦波,很明顯隻有一種頻率,而對于語音而言,通常是各種頻率的正弦波相互疊加,這時候如果橫軸還是為 t 的話就不好分析這個信号,而将橫軸變換為頻率 f 後,這些疊加的正弦波就會在 f = f_0,f_1,...,f_n上顯示出n個峰值,即代表一共有n種不同的頻率,橫看成嶺側成峰,如下圖
- 什麼信号可以進行DFT?
- 時域離散且周期的信号
- 非周期離散信号可以進行DFT嗎?
- 需要進行周期延拓【也就是将當前信号作為整個信号的一個周期,然後使用這一個周期的信号去進行DFT】
- 傅裡葉家族
1.4.1DFT的定義
給定一個長度為N的時域離散信号x(n),對應的離散頻域序列為X(m)為:
- 其中,j = \sqrt{-1}
- e為自然對數底
- m = 0,1,2,...,N-1,頻率索引
- X(m)為DFT的第m個輸出
- 根據歐拉公式,DFT的公式還可以變換為:
1.4.2DFT的性質
- 如上圖所示,DFT之後的離散頻率序列的幅度具有對稱性,因此在進行N點的DFT特征提取後,隻需要保留N/2 1個點。語音信号特征提取時,一般使用512點DFT,由于對稱性,我們隻需要保留257個有效點。
- 性質2:X(m)實際上表示的是“譜密度”,如果對一個幅度為A實正弦波進行N點DFT,則DFT之後,對應頻率上的幅度M和A之間的關系為:
- DFT之後的頻域序列X(m)的幅值實際上是一個“密度”的概念,通俗講,即單位帶寬上有多少信号存在
- 性質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,有
1.4.3DFT的頻率軸- 頻率分辨率:f_s/N,表示最小的頻率間隔。N越大,頻率分辨率越高,在頻域上,第m個點所表示的分析頻率(原始頻率)為:
- 從這個角度也可以理解X(m)的幅值,體現了原信号中頻率為\frac{m}{N}f_s的信号強度
- 對于上圖 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特征提取
Inverse Fourier transform of logarithm of spectrum 對數譜的逆傅裡葉變換
2.1 Step1 預加重- 為什麼需要預加重?
- 提高信号高頻部分的能量,高頻信号在傳遞過程中,衰減較快,但是高頻部分又蘊含很多對語音識别有利的特征,因此,在特征提取部分,需要提高高頻部分能量
- 預加重濾波器就是一個一階高通濾波器,給定時域輸入信号x[n],預加重之後的信号為
- 公式解讀:直觀解釋: 預加重是一個高通濾波器,因此,低頻信号(即時域上信号變換慢的信号)将被抑制;從公式(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個采樣點
- 分幀的過程,在時域上,即用一個窗函數和原始信号函數進行相乘:
- 為什麼不直接使用矩形窗?
- 加窗的過程,實際上是在時域上将信号截斷,窗函數與信号在時域相乘,就等于對應的頻域示進行卷積(*),矩形窗主瓣窄,但是旁瓣較大(紅色部分),将其與原信号的頻域表示進行卷積,就會導緻頻率洩露。
2.3 Step3 DFT
在經過上一步的加窗分幀後,會将原語音信号分割成很多個小段的語音信号,但這個小段語音信号并不是在時域上離散周期的,因此需要周期延拓,把這400個采樣點認為是某個語音信号的一個周期來進行DFT
- DFT的作用:将上一步分幀之後的語音幀,由時域變換到頻域,取DFT系數的模,得到譜特征
- 上圖展示了語譜圖的生成過程:
- 加窗分幀
- 将每一幀信号進行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得到了每個頻帶上信号的能量,但是人耳對于頻率的感知不是等間隔的,而是近似于對數的
- 将線性頻率轉換為梅爾頻率,梅爾頻率與線性頻率的轉換公式為:
- 梅爾三角濾波器組:根據起始頻率、中間頻率和截止頻率,确定各濾波器的系數
- 梅爾濾波器組設計
- 确定濾波器組數目P
- 根據采樣頻率f_s,DFT點數N,濾波器個數P,在梅爾域上等間隔的産生每個濾波器的起始頻率、中間頻率和截至頻率,注意:上一個濾波器的中間頻率是下一個濾波器的起始頻率
- 将梅爾域上每個三角濾波器的起始、中間和截止頻率轉換線性頻率域,并對DFT之後的譜特征進行濾波,得到P個濾波器組能量,進行log 操作,得到Fbank特征
- MFCC在Fbank特征基礎上繼續進行IDFT變換等操作
上圖中,左邊的倒譜明顯是有兩種正弦波複合而成,紅線所示的正弦波與比較尖銳的正弦波(即高頻和低頻),低頻的稱為譜包絡,高頻的稱之為譜細節,而譜包絡的峰值稱為共振峰,頻域信号可以分解成譜包絡(Envelope)和譜細節的乘積,不同音素的譜包絡和共振峰具有區分性,為了提取譜包絡,進行對數操作,即右邊的變換
對X[m] = H[m]E[m]進行對數操作後,可變換為log|X[m]| = log|H[m]| log|E[m]|,此時譜包絡和譜細節都将被提取到
Step5 IDFT
Step6 動态特征計算- 一階差分(Delta,Δ),類比于速度,簡單計算方法
- 二階差分(Delta delta,ΔΔ),類比加速度,簡單計算方法
Step7 能量計算
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!