1. 程式人生 > 其它 >消滅非穩態噪音的利器 - AI 降噪

消滅非穩態噪音的利器 - AI 降噪


 

摘要:輕量級神經網路降噪方法,解析 ZegoAIDenoise 的演算法實現!

文|即構引擎開發團隊

一、輕量級神經網路降噪——ZegoAIDenoise

當下,使用者在進行音訊通話時常常置身於各種不同的場景中,嘈雜的背景聲音以及非穩態噪音往往會對通話產生干擾,其中非穩態噪音是指在時間分佈上不連續,並有其形態特徵的噪聲,是相對穩態噪聲而言的,例如,滑鼠點選聲、鍵盤聲、敲擊聲、空調聲、廚房碗碟碰撞聲等都屬於非穩態噪音。

而基於訊號處理的傳統音訊降噪演算法對於平穩噪聲有比較好的降噪效果,但是對於非平穩噪聲,低信噪比等複雜場景,降噪效果較差,甚至失效。

隨著目前深度學習的廣泛應用,基於神經網路的音訊降噪演算法大量湧現,這些演算法無論在降噪效果上,還是泛化能力上,都能取得比較好的結果,很好的彌補了傳統演算法的不足。

但是,這些方案大多是直接基於短時傅立葉變換後的頻域訊號或者時域訊號的端到端方案,存在網路模型過於複雜,效能消耗巨大等問題,給實時場景交付提出了很大的挑戰。

基於上述挑戰,ZEGO 即構科技提出了一個輕量級的神經網路降噪方法 —— ZegoAIDenoise,對於平穩和非平穩噪聲都有很好的降噪效果,保證了語音的質量和可懂度,同時將效能開銷控制在一個很低的量級,與傳統降噪演算法相當,成功覆蓋大部分中低端機型。

那麼今天將詳細為大家介紹 ZegoAIDenoise 的實現原理,及如何在低效能開銷的前提下,提高深度學習演算法的降噪效果及泛化能力。

二、ZegoAIDenoise 演算法原理解析

ZegoAIDenoise 採用傳統演算法和深度學習相結合的 Hybrid 方法,為了降低效能開銷,採用頻域分成子帶方案,並無限縮小深度學習網路模型,用盡量小的網路模型達到更好的降噪效果。

1、訊號模型

 

如圖 1 所示,傳統降噪基本原理多采用譜減法,即根據譜能量估算噪聲能量及各頻點增益,得到乾淨語音。所以,只要 ZegoAIDenoise 能準確估算出頻點增益 G,就能從帶噪的麥克風訊號中得到期望的乾淨語音訊號 x(n)。

頻點增益 G 的推導過程如下:

y(n) = x(n) + d(n) ……… (1)

公式(1) 中,x(n)代表乾淨語音訊號,d(n)代表噪聲訊號,y(n)代表麥克風採集的訊號。

對公式 (1) 做 STFT 之後,得到公式 (2):

Y(i, k) = X(i, k) + D(i, k) ……… (2)

其中,Y(i, k),X(i, k) 和 D (i, k) 分別代表 y(n),x(n),d(n)的頻域訊號,i代表第i個時域幀,k代表頻點,由此,得到公式(3):

G(i, k) = |S(i, k)| / |Y(i, k)| ……… (3)

G(i, k) 代表的是估算的頻點增益。所以,只要估算出 G(i, k),就能通過帶噪訊號Y(i, k),估算出語音訊號 S(i, k)。

2、 特徵值

為了避免大量的輸出,避免使用大量神經元,ZegoAIDenoise 決定不直接使用語音樣本或者能量譜。作為代替,ZegoAIDenoise 考慮一種符合人類聽覺感知的頻率尺度 —— 巴克頻帶尺度,總共用了 22 個子帶。

為了更好估算 G(i, k),需要選擇更能代表語音特性的特徵,從而區分語音和噪聲,ZegoAIDenoise 引入了基於基因週期的梳狀濾波器 (4)。式中,M 是中心抽頭兩側的週期數,通過調整 M 值,改變時延。

 

……… (4)

自適應目標增益,如果通過梳狀濾波器得到的相干效能量低於乾淨語音的相干效能量,則調整目標增益,限制最大衰減量,能有效地解決在大嘈雜的場景的過抑制問題。

使用梳狀濾波器,能有效地提高語音的諧波特性,降低諧波間噪聲,用一定時延的代價,換取更好的降噪效果。

3、CRNN網路模型

 

如圖 2 所示,ZegoAIDenoise 採用傳統演算法和深度學習相結合的 Hybrid 方法,傳統演算法對實時資料進行特徵提取及後處理,深度學習估計子帶增益,Hybrid 不僅能滿足實時性要求,同時能適應場景複雜的噪聲環境,給實時通訊帶來良好的使用者體驗。

 

如圖 3 所示,CRNN 模型使用兩個卷積層和多個 GRU 層。卷積層的使用能進一步地提高特徵提取的有效性及泛化能力。

訓練時,通過對語音和噪聲應用不同的隨機二階零極點濾波器,ZegoAIDenoise 改進了模型的泛化性。ZegoAIDenoise 還對兩個訊號應用相同的隨機頻譜傾斜,以便更好地概括不同的麥克風頻率響應。為了實現頻寬獨立性,ZegoAIDenoise 採用了一個低通濾波器,其隨機截止頻率在 3 kHz 和 16 kHz 之間。這使得在窄帶到全波段音訊上使用同一型號成為可能。

訓練過程中,損失函式的設計也尤為重要。除了平方誤差,ZegoAIDenoise 還引入四次方誤差來強調訓練估計錯誤的代價。同時,還增加了注意力機制,用以減少對語音的損傷。

三、ZegoAIDenoise 效果及效能對比

在對比項上,ZegoAIDenoise 主要和傳統降噪及 RNNoise 降噪進行了對比,無論在 MOS,還是在可懂度上都有明顯提升。

 

如上效果展示,ZegoAIDenoise 針對不同的噪聲型別及場景,均取得比較理想的降噪效果。在實時處理的效能測試方面,預設取樣率 32kHz,幀長 10ms,在 1.4G Hz主頻的 iPhone 6上,CPU 效能開銷為 1% 左右,與 WebRTC 的通用降噪相當。所以,ZegoAIDenoise 無論在降噪效果、泛化能力,還是效能開銷上,都取得了長足的進步,實現了機型和場景的全覆蓋。

ZEGO

綜上所述,ZegoAIDenoise 實現了一個輕量級的神經網路降噪方法,無論是在穩態還是非穩態的噪聲環境,都能取得比較好的降噪效果,高質量的音訊降噪能夠有效提升使用者實時互動體驗。

目前,ZEGO Express SDK 已正式提供 AI 降噪功能,開發者可以在使用麥克風採集聲音時,對聲音進行降噪處理,並在傳統降噪(詳情請參考 噪聲抑制)消除穩態噪聲的基礎上,同步處理非穩態噪聲(包括滑鼠點選聲、鍵盤聲、敲擊聲、空調聲、廚房碗碟碰撞聲、餐廳嘈雜聲、環境風聲、咳嗽聲、吹氣聲等非人聲噪聲),保留純淨語音,提升使用者的通話體驗。

未來,我們會結合具體行業和場景,引入更多的深度學習演算法,提升產品的場景適應能力,給使用者提供更好的音訊體驗!