中文語音增強(去噪)

Chinese Speech Enhancement

找到描述特定聲音特徵,並將其去除以提高質量;從含雜訊的語音信號中提取出純淨語音的過程

應用在人機交互的語音辨識場景中,提取出人的語音,最大化去除非其他的噪音,使得處理後輸出的聲音保證是人的語音

POC (Proof of Concept) Contact: TonTon ( at ) TWMAN.ORG

本文由 Ian Wang 撰寫初稿後再進行編修,且持續更新中

Real Time Speech Enhancement in the Waveform Domain

https://arxiv.org/pdf/2006.12847.pdf

特點:

  • CPU Real-time執行速度。

  • End-to-end 模型。

  • 效果與當前 SOTA 相當。

  • 基於 DEMUCS 模型。

Ideal Binary Mask:語音分離概念數學化

Deep Clustering:基於 Ideal Binary Mask 加入模型實際應用與訓練方法設計

VoiceFilter:基於 TasNet 加入 Reference 聲音輸入的設計

DEMUCS @By Facebook: https://github.com/facebookresearch/demucs

  • DEMUCS—> denoiser:基於 TasNet,其中 Encoder Decoder 改良成 U-Net(skip-connection)

  • 原用於語音分離,基於 U-Net 設計,原架構與本論文稍有不同

  • DEMUCS 屬於可實際使用的套件,不一定只提供單一種模型,在官方 github 中提到使用的為 Conv-TasNet,但所放的架構圖為 TasNet 的另一種改良。Separator的部分與上圖基本相同,而 Encoder 與 Decoder 對應層數的部分新增了類似於 U-Net 的 Skip-connection 設計

  • 本論文便是基於上圖的 DEMUCS 類似 U-Net 的模型。但此模型原本設計是用於語音分離,在中間 Separator (LSTM) 的部分會有兩個輸出,在去噪的使用場景中並不需要。因此,在論文內提到 Separator 輸出後會用一層的 Linear layer 將兩個輸出合併為一個,便可維持單一語音輸入,單一語音輸出的模式。

TasNet v.s. DEMUCS v.s. Conv-TasNet

  • TasNet:基於 Deep Clustering 的 End2End 模型設計

  • Conv-TasNet:基於 TasNet,其中 LSTM 改良成 TCN

  • 主要可分為 Encoder、Separator 與 Decoder 三塊,重點在於中間的 Separator 會計算出對應要切出的音源數量(原論文與大部分評測都是兩個聲音的分離)的 Mask 並與編碼後的輸入音源計算出各個分離後的聲音,可想像成是 Ideal Binary Mask(IBM)的進階版。

  • Conv-TasNet 則是基於 TasNet 的再改良,中間的 Separator 放棄使用 LSTM,改成使用多個 Convolution block 來計算 Mask

資料需求:

(吵雜聲音 - 乾淨聲音)的兩兩一組配對,需為同一聲音的噪音版與乾淨版,可分開;提供各種噪聲與乾淨聲音自行做相加。

評分標準:

• STOI(Short-Time Objective Intelligibility)

0.0 ~ 1.0,值愈大愈好(來源:https://zhuanlan.zhihu.com/p/59151327)

• PESQ(Perceptual Evaluation of Speech Quality)

1.0 ~ 4.5,值愈大愈好(來源:https://baike.baidu.com/item/PESQ)

備註:根據 STOI 來源網站介紹,PESQ 值範圍介於 -0.5 ~ -4.5 愈大愈好,但訓練過程的

PESQ 為正值,因此參考第二來源。

傳統方法


RNNoise


Speech-enhancement with Deep learning


A Wavenet For Speech Denoising