最近在精讀一本書,開個系列做筆記。

書名《Audio Source Separation and Speech Enhancement》

editor: Emmanuel Vincent ,Tuomas Virtanen ,Sharon Gannot

出版:2018 Wiley


本文粗略介紹語音中的時頻分析。分兩大類:線性時頻變換非線性時頻變換

時頻變換過程略述,詳述為什麼和各自優勢。總結在文章末尾,沒時間的同學可以跳著看。


一、線性時頻變換

在語音中,線性時頻變換最常見的方法就是STFT了。其流程如下:

STFT完整流程

具體流程不贅述。

窗分析之前文章詳述了,鏈接如下:

何苦:音頻知識(四)——加窗?

zhuanlan.zhihu.com
圖標
何苦:音頻知識(五)——加窗之完美重建?

zhuanlan.zhihu.com
圖標

1、STFT在語音信號處理中優勢:

1、 The frequency scale v_{f} is a linear function of the frequency bin index f . 2、 The resulting complex-valued STFT spectrum allows easy treatment of the phase angle x(n,f) and the magnitude left| x(n,f) 
ight| or the power left| x(n,f) 
ight|^{2} separately.

3、The DFT can be efficiently calculated using the fast Fourier transform.4、The DFT is simple to invert, which will be discussed in the next section.

大意如下:

1、頻率尺度是線性尺度。即16kHZ的採樣率,做100點的STFT,則頻率間隔為 frac{16k}{100} = 160 HZ

2、在複數頻譜中,可以很好的且分開處理語音信號的相位信息、幅度信息和能量信息。FFT後,信號的時頻點會是 a+b*j 形式。提取幅度信息,只需要 real(x(n,f)) 即可;提取相位信息,angle(x(n,f)) 即可;提取能量信息, power(real(x(n,f)),2) 即可。

3、計算簡單,可以使用FFT進行時頻搬移,複雜度低。

4、容易回到時域信號。

2、SFTF在語音信號處理中劣勢:

無法同時滿足高頻域解析度和高時域解析度:

When the time resolution is high, the frequency resolution is low, and vice versa.

我們設想一下,選擇16KHZ的採樣率。

512點的窗長對應著的頻域解析度為 frac{16000}{512} = 31.25HZ ,而時域解析度為 frac{512}{16000} = 32ms

1024點的窗長對應著的頻域解析度為 frac{16000}{1024} = 15.625HZ ,而時域解析度為 frac{1024}{16000} = 64ms

從上面可以看出兩點:

1、頻域解析度提高後,時域解析度降低了。

2、時域解析度提高後,頻域解析度降低了。

為了解決這一問題,或者說是為了使時頻圖更加符合語音特徵。有了非線性時頻變換。

二、非線性時頻變換

主要有兩種: Mel scaleequivalent rectangular bandwidth (ERB) scale 。這兩種尺度常見用途如下所述:

The Mel scale is popular in speech processing, while the ERB scale is widely used in computational methods inspired by auditory scene analysis.

在實際工程和科研中,語音增強一塊我們用的是 Mel scale

兩個非線性時頻變換與頻率之間的換算如下:

v(HZ) = 700	imes(e^{v(Mel)/1127}-1)

v(HZ) = 229	imes(e^{v(ERB/9.26)}-1)

在這兩種尺度下,都有一個特徵:低頻下頻率解析度高,高頻下頻率解析度低。

對於STFT和Mel尺度之間的區別可以從下面一個實例看出:

STFT and Mel spectrograms of an example music signal

可以看出,STFT上的時頻圖更加稀疏,而Mel尺度下的時頻圖沒有那麼稀疏。包含信息更多。

具體Mel尺度下的非線性化

因為我經常用 Mel尺度,粗略描述一下如何講頻率信號轉換到 Mel 尺度:

1、 通過STFT計算 Mel 能量頻譜

1)Window the signal into frames and calculate the DFT x(n,f^{}) of each frame.

2) Compute the power spectrum left| x(n,f^{}) 
ight|^{2} in each frame.3) Multiply this spectrum elementwise by a set of bandpass filter responses h(f,f^{}) that are linearly spaced on the chosen frequency scale.4) Sum over f^{} to obtain the nonlinear spectrum left| x(n,f) 
ight|^{2} = Sigma_{f^{}=0}^{F^{}-1}h(f,f^{})left| x(n,f^{}) 
ight|^{2} for each fepsilon left{ 0,...,F-1 
ight}

大意如下:

1、對信號加窗,計算DFT。

2、計算頻域下信號每一幀的能量譜

3、將能量譜乘以一個帶通濾波器,濾波器響應為選擇的頻率( Mel )尺度

4、新的尺度下,每一個點的頻譜為之前經過帶通濾波器的信號(Mel尺度下對應著該點的信號)和。

2、 通過濾波器組計算 Mel 頻譜

設計一個FIR濾波器,時域信號卷積這個濾波器。濾波器要求如下:

A filterbank consists of a set of time-domain finite impulse response(FIR)filters h_{f}(	au) , 	auepsilonleft{ -T_{f}/2,...,T_{f}/2 
ight} whose center frequencies are linearly spaced on the desired scale and whose lengths T_{f} vary with frequency and are inversely proportional to the desired bandwidth.

大意如下:濾波器組的中心頻率是Mel尺度下的線性分布。desired scale視為Mel scale

這種方法因為沒有對頻域信號取實部,所以會保留相位信息。

這一塊我沒有做過。只是有所知道。

在此,提出一個問題:為什麼語音信號處理中,時頻變換更傾向於用這種非線性變換,即低頻採用高頻域解析度,高頻採用低頻域解析度。

解釋:

1、高頻時:語音信號幅度在高頻變化快,用更寬的帶寬表示它是更加穩定的。可以這麼認為,高頻時,語音變化快,時間就短,那麼對應的頻域則需要更長的帶寬。

2、低頻時:語音信號在低頻具有更加明顯的結構性特徵(基頻特徵),對於這種特徵,採用高頻域解析度更有利於對其進行建模。


至此,本章主要內容結束,總結如下:

在語音信號處理中,STFT憑藉著其計算複雜度低和計算簡單成為了線性時頻變換中的一把手。而由於其無法同時滿足高頻域解析度和高時域解析度,且因為它的線性尺度沒有更好的表徵語音信號,所以我們常用非線性頻域尺度來表徵語音信號。

而非線性頻域尺度主要有 Mel 尺度和 ERB (等效矩形帶寬)尺度,Mel 尺度是一位心理學家發現的(上個世紀的發現,據說做過大量真人實驗),這種尺度下更加符合人耳的聽覺系統,因為這一特性,在實際科研和工程中,我們都是在 Mel 尺度下進行特徵提取的。


推薦閱讀:
相关文章