中文語者分離(分割)

Chinese Speech Separation (Speaker Separation)

從多個聲音信號中提取出目標信號;多個說話人情況的語音辨識問題,比如雞尾酒會上很多人講話

Call for Partner or POC (Proof of Concept) Contact: TonTon ( at ) TWMAN.ORG

本文由 Gui-Ru Li & Hsiang Hsu、Ian Wang 撰寫初稿後再進行編修,且持續更新中

Dual-Path Transformer Network: Direct Context-Aware Modeling for End-to-End Monaural Speech Separation

  • 過去的語音分離模型使用複雜的RNN/CNN進行建模,這種需要透過中間狀態傳遞資訊的方式使得模型分離的效果不好

  • 本文提出一種end-to-end模型, dual-path transformer network (DPT- Net), 並在wsj0-2mix資料集上取得SDR=20.6的成果

  • Proposed Methods

    • 加入修改的transformer:原本的 transformer block 中的 Feed-Forward Network 是由 linear+activation function+linear 組成,現在改成使用 **RNN**+activation function+linear,用來獲取有順序性的資訊,並省去原本的 positional encodings

    • 由於transformer只處理數百個長度的序列,而語音分離的輸入通常很長,因此作者整合了 dual-path network 使模型能處理長語音序列

  • Architecture

    • Encoder: 由L個濾波器(1-D Conv)組成,目的是將聲音轉成特徵

    • Separation Layer

      • 分割: 將聲音分割成重疊的chunk後組成3-D向量

      • dual-path transformer processing: 將向量傳遞給transformer進行局部建模與全局建模,由於transformer不用透過intermedia state傳送訊息,因此資訊可直接交流。另外,原始transformer使用positional encoding來整合順序訊息,本文則使用RNN來整合順序訊息

      • overlap-add: 重建原始聲音

    • Decoder:轉換特徵並將聲音輸出

不考慮重疊情況下的語音切割

Unbounded Interleaved-State Recurrent Neural Network (UIS-RNN):https://github.com/google/uis-rnn

58 同城

  • 聲音輸入 -> 基於空白音做切段 -> 使用 K-mean 等 Cluster 方法分群

優點:

  • 語音切割後能得到說話人之間的斷點,可明確知道在何時切換。

  • 說話人總數無須事先設定,且無論人數多少模型皆可通用。

缺點:

  • 無法處理聲音重疊的問題。

  • 若是使用空白音切割,在語者之間說話沒有間隔的情況下必報錯。

  • 若是使用固定時長切割,依據時長的設定可能切出空白佔多數或是一段內同時包含兩個人的情況。

  • K-means 等 Cluster 演算法經實驗後發現效果不佳。

VoiceFilter

  • 透過GE2E模型生成目標說話人的Speaker embedding(d-vector)作為分離的參考依據

  • 模型輸入raw signal的混合人聲,經過CNN後會和d-vector進行拼接,再經過LSTM與fully-connected層後生成mask

  • 將mask乘上原始輸入,並透過inverse short-time Fourier transform重建增強的聲音

  • 原始論文

VoiceFilter-Lite

  • VoiceFilter-Lite 專注在提高ASR性能,所以不需要使用逆STFT重建聲音波形,

  • 模型輸入是將聲學特徵作為輸入,並輸出增強的聲學特徵,也就是使用聲音特徵而非頻譜圖作為輸入,因此也不需要重建波形

  • 由於ASR模型中若加上聲音過濾的話會使效能降低,造成wer很高(大部分是誤刪造成的),所以作者提出asymmetric loss,新增penalty以控制抑制噪音的錯誤,並在過度抑制時進行補償

  • 原始論文

使用 Mask 訓練的方式將一段聲音轉換為二個(或多個)聲音。

TasNet & Conv-TasNet

  • 聲音輸入 -> Encode -> Separation -> Decode -> 分離後的多個聲音,兩者差異只在 Separation的設計。

VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking

  • 此模型設計較特殊,用於抓出一段聲音中用戶指定的聲音。因此在模型的設計上相較 TasNet 多了一段引入指定聲音 d-vector 的部分,且輸出只有一段聲音,其他大致上維持不變。

優點:

  • 即使多個人聲音重疊仍能有成功分離的機會。

  • 同模型可使用在去噪功能。

缺點:

  • 此類模型大多建立在兩個說話人的場景,雖說多人場景能在修改模型後實現但未經驗證。

  • 模型即使修改成多人,但一個模型只能適用在一個固定人數的場景。

  • 分離後的聲音不會有明確切分點,在分成 A、B 兩人後仍可能在 A 的聲音某幾個小點被判斷成 B。