書名《Audio Source Sepatation and Speech Enhancement》

作者:Emmanuel Vincent, Tuomas Virtanen, Sharon Gannot

出版時間:2018 出版商:Wiley

題外話:立個flag,一周三更,督促一下自己。


本章節是本書的第五章,章節名為Spectral Masking and Filtering

主要描述單通道的濾波方法:譜減法,維納濾波(線性MMSE),貝葉斯估計(非線性MMSE)。

本文以粗講濾波過程,細講原理,各自優勢。文章較長,文末有總結。


Time-Frequency Masking

這一點不翻譯是因為比較難翻,直譯過來詞不達意,所以就保留原標題。

我們思考一個問題:不管什麼理論和技術,在時頻域的操作中,落腳於信號的數值上,我們是如何對這些數值矩陣進行分離的?其核心在於什麼?

答:估計 Time-Frequency mask

	ilde{s_{j}}(n,f)=w_{j}(n,f)*x_{j}(n,f)

其中, n,f 表示幀和頻點, w 表示所需要估計的TF-mask, x 表示觀測信號, s 代表處理後的信號。

在實際操作中,我們都是估計出每一個時頻點的mask,即 w_{j}(n,f) ,再對每一個時頻點上的觀測信號乘以該mask,乘出的結果就是處理後的信號。而這一步相乘就是絕大多數單通道分離中進行的處理。

舉例來說,對於第100幀第100個頻點數,此時數值可能為 x=0.95+0.34i ,估計出的w=0 ,在這種情況下處理便是:

	ilde{s_{j}}(n,f)=w_{j}(n,f)*x_{j}(n,f)=0*(0.95+0.34i)=0

所以,我們可以得出一般的結論:一般來講,語音分離的處理都是估計出一個TF-maks,再將其乘以對應的觀測信號的時頻點。

那麼如何估計 Mask 呢,一般來說,都是建立一個目標函數:

其中, c_{j}(n,f) 表示實際的乾淨信號, w_{j}(n,f)x(n,f) 代表降噪後的信號。上式的意義就在於:找出一個 w_{j}(n,f) ,使得降噪後的信號與原始乾淨信號儘可能一致。上式採用的是歐式距離。

而根據此限制,再計算估計出的相關性:

據此來估計 Mask ,一般來說,分為兩種 Mask

Binary Mask:

即與哪個源接近便劃為哪一類。這是一種看似比較粗暴的方法,但是有文獻從理論上說明此種方法的可行性:根據w-disjoint orthogonality,即同一個時頻點上,只有一個源信號。據此,才可以使用二值掩模技術。

Oracle Soft Mask:

即mask的取值不僅僅是0,1那麼粗暴,還可以是一個範圍值,在 [0,1] 之間變化。

mask 也成為 ratio mask

就此兩種選擇來說,對於增強或者是降噪來說,因為這種場景下,更像是一種回歸問題,所以 ratio mask 更為好一些;但是對於分離或者是麥克風陣列的方向指向性,這種問題更像是聚類問題,非0即1,所以 binary mask 更好一些。


至此,我們達成一點共識:單通道分離便是估計出這麼一個 TF-masking (矩陣形式),再逐一乘以相應的原觀測數據,得出處理後的數據。

接下來,介紹三種估計 TF-masking 的方法:譜減法,維納濾波(線性MMSE),貝葉斯估計(非線性MMSE)。

一、譜減法

簡單來說,譜減法便是估計出干擾(雜訊)聲的幅度譜,再減去。模型如下:

其中

為干擾聲(雜訊)的幅度譜,換成上文的 TF-mask 形式,如下所示:

下標SS代表 Spectral Subtraction

但是鑒於一點:即真實信號在幅度上,並不等於觀測信號減去干擾信號:

It is important to realize that even though the complex spectral coefficients of the target and the interference are additive, neither their magnitudes nor the averages or the expected values of their magnitudes are additive.

所以將幅度譜上相減改成能量譜上進行相減:

下表PSS代表Power Spectral Subtraction

小結:譜減法只需估計出干擾聲即可,而且對於這種求完均值再進行整體相減的方法,對平穩雜訊比較好用,但對於非平穩雜訊比較難。如果想使譜減法更好地應對非平穩雜訊,可以對其進行實時化處理:實時化的VAD+實時化的譜減法。而這又取決於VAD的性能了,如果VAD能估計且跟蹤到干擾聲,那麼譜減法的效果還是可以的,否則不行。

其次,譜減假設過於簡單,實際處理時會引入非常多的失真和畸變。

二、維納濾波(線性MMSE)

單通道維納濾波的核心在於,尋找到這麼一個 TF-mask ,最小化均值平方誤差即 MMSE

將上式展開,得到

式5.18

所以我們的核心是使得上式最小化。

對信號來說,最佳逼近可以分成最佳相位逼近和最佳幅度,先看如何對這個目標函數進行最佳相位估計,即optimal phase

optimal phase

相位隻影響 2R(w*Eleft{ c*w 
ight}) 這一項,那麼要使目標函數最小,就相位來說,應該儘快讓 2R(w*Eleft{ c*w 
ight}) 最大,那麼如何讓這一項最大化呢:只有讓 wEleft{ c*w 
ight} 相位保持一致才可以。

To minimize (5.18) we need to maximize the real part of w*Eleft{ c*w 
ight} . It is easy to show that this happens when the phase of w is the same as that of Eleft{ c*w 
ight} such that the product w*Eleft{ c*w 
ight} is real-valued:

怎麼理解,從數學上看, 要使2R(w*Eleft{ c*w 
ight}) 實部最大,可以把問題轉換為兩個向量相乘,如何使相乘後實部最大——兩個向量要方向一致。如何保持方向一致,那麼就是相位一致即可。所以得出上述結論。

optimal magnitude

對5.18式進行求導得:

解出方程中得 w

這就是對應得最佳幅度逼近。

將相位和幅度結合起來,求得的 TF-mask 如下:

再代入 Eleft{ left| x 
ight|^{2} 
ight}= Eleft{ left| c 
ight|^{2} 
ight} +Eleft{ left| u 
ight|^{2} 
ight} ,即在能量譜上,觀測信號能量等於干擾聲能量加上目標信號能量。便得:

最後的結果非常漂亮:頻譜下的維納濾波化為了求一個 TF-mask ,而這個 TF-mask目標信號能量除以目標信號能量與干擾信號能量之和。

從此可以看出,w為觀測信號的線性函數,而處理後的信號為w乘以觀測信號,那麼處理後的信號便是觀測信號的線性函數。這也是為什麼稱維納濾波為線性MMSE的原因了。

那麼這樣一來,維納濾波的實踐就非常簡單了,只需檢測出目標信號干擾信號,就工程上實現非常簡單,只需要一個不錯的VAD即可。但其理論代表的物理意義和數學推導卻是如此美妙!

視估計出的雜訊為y_noise,估計出的語音為y_speech,觀測信號為y_ori,處理後的數據為y

偽代碼
y1 = y_noise.^2;
y2 = y_speech.^2;
w = y2/(y1+y2);
y = w*y_ori

三、貝葉斯估計(非線性MMSE)

在處理MMSE的時候,維納濾波的視角只有一個假設:信號不相關。但當我們從統計處理的角度來逼近MSE時,我們得出的便是非線性MMSE:

將其改成貝葉斯估計,即後驗概率:

上式的意思是,當觀測到觀測信號,它屬於目標信號的概率,換作語音增強的場景,即當給一個混合信號,對於這個時頻點,它屬於語音的概率。

對於後驗概率,我們利用貝葉斯理論,將其轉寫成似然函數:

所以,對於原目標,我們的目標便是求 p(x|c) , p(c) , p(x)

下面,我們以三個概率分布為零均的高斯分布作為示例,體驗一下如何推這個公式:

代入相消:

回到原式,我們所求的是 Eleft{ c|x 
ight} ,即在給定混合信號下,它屬於語音的概率。

從上式這麼一個高斯分布可以看出,其均值為:

而這,就是維納濾波的形式。

但對於非高斯分布的干擾而言,統計概率下的MMSE就不是觀測信號的線性函數了。

In other words, for Gaussian target and interference, the optimal estimate in the MMSE sense is the Wiener filter no matter whether we constrain the filter to be linear or not.Note,however,that for nongaussian target or interference this is not necessarily true and the MMSE estimate is generally a nonlinear function of the observation.

下面是我自己手推的,當語音和雜訊都符合拉普拉斯分布(有文獻說,在時頻域上,語音信號更加符合拉普拉斯分布,我們做的實驗也是如此)時,上述條件概率的樣子:

可以看出,其均值不再是觀測信號x的線性變換了。


總結:至此我們描述完了單通道濾波的基本步驟:語音裡面單通道濾波主要是估計 TF-mask ,再用這個時頻掩模乘以觀測信號,以達到信號增強(分離)的作用。

而常見的估計時頻掩模的方法有三類:1、譜減法 2、維納濾波法 3、貝葉斯估計法。

其中譜減法較為簡單容易引入語音失真,維納濾波法是線性MMSE法,貝葉斯估計則是非線性MMSE。

就線性MMSE和非線性MMSE而言,線性MMSE在求解過程中,只能在一個範圍內進行求解,局限性比較大,而且其物理意義不夠明確。而非線性MMSE,在理論推導過程中,因為加入了信號的概率密度函數,引入了其物理上的分布,就理論上更加符合實際。

比較如下:


推薦閱讀:
相关文章