論文閱讀 — Permutation Invariant Training of Deep Models for Speaker-Independent Multi-Talker Speech Separation

陳明佐
我就問一句,怎麼寫?
7 min readJun 14, 2019

來哦,又是一篇關於語音分離技術的論文。最近看了許多偏大神所提出的架構與系統甚至是細微的調校。這篇則是要介紹來自MicroSoft微軟團隊的研究員,大神Dong Yu所提出來的新穎演算法(2017年,其實也不算新了), PIT Permutation Invariant Training 置換不變訓練的深度學習架構。後續他還有再提出uPIT, u指的是utterance,從分析單位為frame變成到一句話。此篇則是以原始PIT作為介紹。

PIT用於語者獨立的多語者情境中的語音分離,通常稱為雞尾酒派對問題。 與多類回歸(Multi-class regression)技術和深度聚類(Deep Clustering)技術不同,此新方法直接最小化了分離的誤差。 該方法有效地解決了持久的標籤排列問題,這阻礙了基於深度學習的語音分離技術的進步。 針對特定資料集對所提的方式進行評估,發現它與非負矩陣分解(NMF),計算機聽覺場景分析(CASA)和DPCL相比具有優勢,並且優於未見過(Unseen)的語者和語言。 由於PIT易於實施,並且可以輕鬆整合並與其他先進技術相結合,因此我們認為基於PIT的方法最終可以解決雞尾酒派對問題。

Monaural Speech Separation 單聲道語音分離

Fourier transformation (STFT) of these signals are Xs(t,f) and
Y(t,f) = Summation Xs(t,f) for s from 1 to S, which S means the number of sources, Y(t,f) is the spectrogram of mixture signal.
文中提及,因為YX多種線性組合而成,所以可能的組合千百種,很難找出真正的組合係數。所以為了克服此議題,系統必須從訓練資料集S其中包含Y & X,去尋找規律性。
更具體地說,文中訓練深度學習模型 g(·)使得g(f(| Y |);θ)= | X s |,s = 1,…..,S,其中θ是模型參數,向量f(| Y |)是| Y |的一些特徵表示法。
為了得到更好的效果,與其估計|Xs| 不如間接估計|Ms|
Ms為估計出來的遮罩,算式為:

h(f(|Y|);θ) = M̃s(t,f)
with the constraint that M̃ s(t,f) ≥ 0 and
Summation of M̃ s(t,f) = 1 from s=1 to S, for all time-frequency bins (t, f ).
上述的限制可以透過Softmax的activation function來達成。
且估計|Xs| as |X̃s| = M̃s ◦ |Y| ,為兩矩陣的點積(element-wise)

然而因為當 |Xs|=0 且 導致|Y|=0時,Ms並能完善的定義
所以在計算最小誤差函數時是透過真實|Xs|與估計出來的|X̃s|誤差來最佳化整個深度架構。

Permutation Invariant Training

Two-speaker speech separation with PIT

在訓練期間,我們需要提供正確的參考(或目標)| X1 |和| X2 |到相應的輸出層進行監督訓練。由於模型具有多個輸出層,每個mixture source一個輸出層(一個來源對應到一個輸出結果),並且它們依賴於相同的輸入混合聲源,因此參考(Reference)分配是棘手的,尤其是當訓練集包含許多語者且多句話語。這個問題在其他論文中被稱為標籤歧義(或置換)問題。
上圖說明了這項工作中提出的解決方案。在這個新模型中有兩個關鍵的發明:置換不變訓練(PIT)和基於分段的決策(segment-based decision making)。
在我們的新模型中,參考source streams是作為集合而不是給有序排列。換句話說,無論以何種順序列出這些來源,都可以獲得相同的訓練結果。

為了將Reference與output layers相關聯,我們首先確定reference和estimated source 之間的可能分配(Source的總數)。然後我們計算每個分配的總MSE,其被定義為每個Reference of | Xs |和估計聲源|X̃ s |之間的成對MSE。選擇具有最小的MSE的分配,並且優化模型以減少該特定MSE。換句話說,我們同時進行標籤分配和錯誤評估。

性能

PIT的方式,當沒有speaker tracing ( Def. Assign)其性能與DPCL差不多,以CNN based的PIT則是大幅提升超越DPCL。
但當我們將輸入縮小並大幅度縮小輸出frames數目時,如果正確的speaker tracing (Opt. Assign),則可以提高系統的分離性能並得到更高的SDR。但是因為frames數目減小,輸出的語者分配會更加地頻繁更變,所以當如果沒有speaker tracing時,則性能很淒慘。

而上表格則是表示,此PIT-DNN是透過Danish-2mix 資料集進行訓練的,在閉集合跟開集合上都有不錯的表現,意味著PIT的方式亦可以在沒有見過的資料集中有良好的表現(unseen data)。更有趣地是,WSJ0是英文語音錄音,又是一個開放式資料集,可以看見表格上仍具備一定程度的效能。

結論

對含有雙語者混合的語音分離任務,實驗表明PIT訓練的模型可以很好地概括未看見過的的語者和語言。雖然我們的結果主要是兩個語者的分離任務,但PIT可以輕鬆有效地擴展到三個語者。
在本文中,我們重點關注PIT — 這是一種關鍵技術,可以實現多語者混合語音分離的訓練。

首先,由於overlapping frames的輸出 — 語者分配的變化,在Opt. Assign — 語者分配和default assign之間存在很大的性能差異,尤其是在相同性別的情況下以及當輸出frame數目小時。
使用separate speaker tracing可以減少這種差距,該算法可以在輸出meta-frame中顯示重疊的frame和speaker特性(例如,相似性)。
其次,本文在這項工作中只探索了簡單的DNN / CNN結構。更強大的模型,如雙向LSTM,帶有deconvolution的CNN,甚至更大的模型,都可以進一步提高性能。超參數調整也有助於並且有時可以顯著提高性能。
第三,在本論文中,我們重建source stream,僅透過頻譜的振幅能量。與DPCL不同,PIT可以很容易地與利用複值頻譜的重建技術相結合,以進一步提高性能。
第四,模型學習的聲學提示主要是語者和語言無關的。因此,可以在各種語者,語言和噪聲條件下使用語音訓練通用語音分離模型。

Reference

  1. https://github.com/pchao6/LSTM_PIT_Speech_Separation
  2. https://github.com/funcwj/uPIT-for-speech-separation
  3. https://arxiv.org/abs/1607.00325

--

--