分組投入約150天;說到會做語音增強(去噪音),這一切真的只是因為那有一面之緣的圖靈獎大神在FB發文介紹FAIR的最新成果;噪音去除你可以跟另外一個聲音分離做聯想,基本概念其實差不多,只是噪音去除是把非人聲給去除 (記得注意一下是不是多通道);而做這個項目時,一樣也是匯整準備了相當多的學術論文和實驗結果 (如下所附) ;做語音感覺上數據也是很重要,但噪音去除相對的數據集就比較好處理,網路上都可以找到,只要進行前後調整合併,就可以產出數量頗大的數據集,唯一需要考量的就是你的 GPU 夠不夠大整個吃下了,還有你這些數據集裡的人聲是不是一樣是英文,或者是你想要中文的效果?順道一提最後我們的模型大小是經過優化的9 MB,而 RTF 是 0.08。

Youtube: https://www.youtube.com/watch?v=77cm_MVtLfk

特點與優勢

DEMUCS

TasNet v.s. Conv-TasNet v.s. DEMUCS v.s. This Paper

 前三個架構皆源自於語音分離任務,首先檢視TasNet原論文 Fig. 1 架構圖:主要可分為 Encoder、Separator 與 Decoder 三塊,重點在於中間的 Separator 會計算出對應要切出的音源數量(原論文與大部分評測都是兩個聲音的分離)的 Mask 並與編碼後的輸入音源相乘計算出各個分離後的聲音,可想像成是 Ideal Binary Mask(IBM)的進階版。Conv-TasNet 則是基於 TasNet 的再改良,中間的 Separator 放棄使用 LSTM,改成使用 TCN來計算 Mask,TCN 架構改良自 Google 的 WaveNet ,原被用在執行語音合成任務。DEMUCS 則源自2019 Facebook 的論文 “Music Source Separation in the Waveform Domain”,用於音樂的分離。Separator的部分與上圖基本相同,而 Encoder 與 Decoder 對應層數的部分新增了類似於 U-Net 的 Skip-connection 設計。Facebook denoiser 便是基於上圖的 DEMUCS模型。但此模型原本設計是用於語音分離,在中間 Separator (LSTM) 的部分會有兩個輸出,在去噪的使用場景中並不需要。因此,在論文內提到Separator 輸出後會用一層的 Linear layer 將兩個輸出合併為一個,便可維持單一語音輸入,單一語音輸出的模式。

資料需求:(吵雜聲音 - 乾淨聲音)的兩兩一組配對,需為同一聲音的噪音版與乾淨版,可分開提供各種雜訊與乾淨聲音自行做相加。原始論文與我們自己的實驗都證明過自行加噪的聲音訓練出來的模型應用在實際場景仍然有效。

多通道實驗

DCCRN: Deep Complex Convolution Recurrent Network for Phase-Aware Speech Enhancement(2020)

特點與優勢:

缺點:

Phase-aware Speech Enhancement with Deep Complex U-Net(2019)

特點與優勢:

RHRNET

特點與優勢:

缺點:

Speech-enhancement with Deep learning

特點與優勢:Training data: clean:LibriSpeech + SiSec, noise: ESC-50 + [https://www.ee.columbia.edu/~dpwe/sounds/]

架構:U-Net

缺點:

A Wavenet For Speech Denoising

特點與優勢:

RNNoise

特點與優勢:

缺點:

傳統方法

簡述:先檢測出聲音中哪些部分只含噪音哪部分包含語音並得出噪音訊號,並在計算後消除噪聲。

範例:

缺點:

SEANet: A Multi-modal Speech Enhancement Network(Google, 2020)

特點與優勢:

缺點: