一種用於端到端音頻分離的多尺度神經網絡

摘要:

大多數聲源分離的模型通常是依賴於幅度頻譜,然而忽略聲音的相位信息,使幅度頻譜前端的分離性能依賴於超參數。我們研究了一種時域端到端信源分離模型,允許建模相位信息,避免固定幅度頻譜轉換。由於音頻的高採樣,在採樣層上使用長時間輸入上下文是困難的,但高質量的分離結果是依賴長期的時間相關性。在此背景下,我們提出了Wave-U-Net,一種適應性U-Net的一維時域函數在不同的時間尺度上,反覆對feature map進行重新分組,計算和組合feature。
我們進一步改進模型架構,包括一個輸出層實施了音源加和、上採樣技術和上下文感知的預測框架,以減少輸出瑕疵。
唱歌聲音分離的實驗表明我們的體系結構的性能可與最先進的基於幅度頻譜的U-Net體系結構相媲美。
最後,我們揭示了異常值的一個問題目前使用SDR評估指標,並建議報告基於排名的統計數據,以緩解這一問題

1.簡介:

目前音頻源分離的方法幾乎完全依賴於音頻信號的譜圖表示[6,7],因爲它們允許直接訪問時間和頻率上的組件。特別是對輸入混合信號進行短時傅里葉變換(STFT)後,復值譜圖被分解爲幅值和相位分量。然後,只有大小被輸入到參數模型,它返回估計的聲源單獨聲源的光譜圖大小。爲了產生相應的音頻信號,這些幅度與混合相位相結合,然後用反STFT轉換到時域。可選地,可以使用Griffin-Lim算法[5]分別爲每個源恢復 階段。

這種方法有幾個侷限性。首先,STFT輸出依賴於許多參數,例如音頻幀的大小和重疊,這些參數會影響時間和頻率分辨率。
理想情況下,這些參數應該與分離模型的參數一起優化,以最大化特定分離任務的性能。然而,在實踐中,轉換參數被固定爲特定的值。
其次,由於分離模型沒有對源相位進行估計,因此通常假設源相位等於混合相位,這對於重疊部分是不正確的。或者,GriffinLim算法可以用於找到一個信號的近似值,這個信號的大小等於估計的大小,但是速度很慢,而且通常不存在這樣的信號[8。
最後,在估計源時忽略了混合階段,這可能會限制性能。因此,分離模型最好是學會直接估計源信號,包括它們的相位。

爲了解決上述問題,最近提出了幾種直接作用於時域音頻信號的音頻處理模型,包括語音去噪作爲一項與一般音頻源分離相關的任務[1,16,18]。在這些初步結果的啓發下,我們在本文中研究了完全端到端時域分離系統在面臨未解決的挑戰時的潛力。
特別是,目前還不清楚這樣的系統是否能夠有效地處理音頻中存在的非常長期的時間依賴性,因爲它的採樣率很高。
此外,額外的階段信息是否確實對任務有益,或者嘈雜的階段是否可能對這樣一個系統中的學習動態有害,這一點還不是很明顯。
總之,我們在本文中的貢獻可以總結如下

  • 我們提出了Wave-U-Net,這是對U-Net體系結構的一維調整[7,19],它可以在時域中直接分離源,並且可以考慮大的時間上下文。
  • 與以前的工作相比,我們展示了一種爲模型提供額外輸入上下文的方法,以避免輸出窗口邊界上的工件[7,16]。
  • 爲了避免僞影,我們用線性插值後的普通卷積取代了之前工作[7,16]中用於特徵圖上採樣的橫紋置換卷積。
  • Wave-U-Net實現了良好的多樂器和歌唱聲音分離,後者比我們在可比設置下訓練的最先進的網絡架構[7]的重新實現要好。
  • 由於Wave-U-Net可以處理多聲道音頻,我們比較了立體聲與單聲道聲源分離的性能,
  • 重點討論了常用的信噪比評估指標的一個問題,並提出了一個解決方案。

值得注意的是,我們期望[7]中呈現的當前SOTA模型比我們在這裏展示的產生更高的分離質量,因爲[7]中使用的訓練數據集設計良好、高度無偏且相當大。
但是,我們認爲,我們與在類似條件下訓練的重新實現的比較可能表明相對的性能改進。

2.相關的工作

爲了解決以往文獻[6,11,13,14,20,23]中廣泛使用的固定譜表示問題,開發了與分離網絡聯合訓練的自適應譜圖計算前端[24],該前端對產生的幅值譜圖進行操作。儘管性能相對提高了,但是模型並沒有利用混合相位來更好地預測源星等,也沒有輸出源相位,因此必須使用混合相位來進行源信號重構,這兩者都限制了性能。
據我們所知,只有TasNet[12]和MRCAE[4]系統在時域處理音頻源分離的一般問題。
任務網絡將信號分解成一組基信號和權重

然後在權重上創建一個掩碼,最後用來重構源信號。
該模型適用於語音分離任務。
然而,這項工作在概念上做了權衡,允許低延遲應用程序,而我們關注離線應用程序,允許我們利用大量上下文信息。
多分辨率卷積自動編碼器(MRCAE)[4]使用了兩層卷積和置換卷積。
作者認爲,不同的卷積濾波器大小可以檢測出不同分辨率的音頻頻率,但它們只能在一個時間分辨率上工作(輸入的分辨率),因爲網絡不執行任何重採樣。
由於輸入和輸出只包含1025個音頻樣本(相當於23 ms),因此它只能利用很少的上下文信息。
此外,在測試時,輸出段使用規則的間隔重疊,然後合併,這與網絡的訓練方式不同。
這種不匹配和較小的上下文可能會影響性能,這也解釋了爲什麼所提供的合理示例展示了許多工件。
爲了實現語音增強和去噪的目的,開發了SEGAN[16],採用了一種帶有編碼器和解碼器通道的神經網絡,該神經網絡的每一層的特徵圖分辨率分別是原來的一半和兩倍,特徵跳過了編碼器和解碼器層之間的連接。
當我們使用類似的架構時,我們糾正了生成輸出中使用strided transpconvolutions時的別名問題,如[15]所示。
此外,該模型不能很好地預測音頻樣本接近其邊界輸出,因爲它沒有提供額外的輸入上下文,這是我們使用帶有適當填充的卷積來解決的問題。
目前還不清楚model s的性能能否轉移到其他更具挑戰性的音頻源分離任務上。
Wavenet[1]被用來對[18]進行語音去噪,使每個預測都有一個非因果的條件輸入和一個並行的樣本輸出,它的基礎是在上下文信息中使用成倍增長的膨脹因子反覆應用擴展卷積。
雖然這種架構具有很高的參數效率,但是內存消耗很高,因爲每個由擴展卷積產生的特徵圖仍然以原始音頻採樣率作爲分辨率。
相比之下,我們的方法是基於具有更多特徵和越來越低分辨率的特徵圖來計算長期依賴關係。
這節省了內存並啓用了大量高級功能,這些功能可能不需要樣本級別的分辨率就可以使用,比如儀器活動或當前測量中的位置。

3.wave-u-net 模型

我們的目標是分離一個混合波形M[1,1]Lm×CM∈[-1,1]^{L_m×C}轉換爲K源波形S1;:::;SK

Sk[1,1]Ls×CS^k∈[-1,1]^{L_s×C}or C爲音頻通道數,LmL_mLsL_s分別爲音頻樣本數。對於具有額外輸入上下文的模型變量,我們有Lm>LsL_m>L_s並對輸入的中心部分進行預測。

模塊 操作 形狀
輸入 input (16384,1)
降採樣重複i=1~L Conv1D(Fci,fdF_c•i,f_d) Decimate
Decimate (4,288)
Conv1D(Fc(L+1),fdF_c•(L+1),f_d) (4,312)
上採樣重複i=1~L Upsample
Concat(DS block i)
Conv1D(Fci,fuF_c•i,f_u) (16384,24)
Concat(input) (16384,25)
Conv1D(K,1) (16382,2)

Conv1D(x,y)表示一維卷積大小爲y的窗口x,包括零填充,之後接一個LeakyReLU 激活函數
Decimate 表示每一個時間步長上,將時間的結果進行二等分
Upsample 上採樣,使用線性差值
Concat 連接個高層的信息,結合局部信息x

3.1 基礎模型結構

在這裏插入圖片描述
Wave-U-Net架構示意圖如圖1所示。
它使用向下採樣(DS)塊在較粗的時間尺度上計算越來越多的高級特性。
這些特徵與早期使用上採樣(US)塊計算出的局部高分辨率特徵相結合,生成用於進行預測的多尺度特徵。
網絡總共有L個層,每個連續層的運行時間分辨率只有前一層的一半。
對於K個估計源,模型返回區間(1;1),每個源音頻樣本一個。
詳細的體系結構如表1所示。Conv1D(x,y)表示與大小爲y的x過濾器的一維卷積。它包括基本架構的零填充,然後是一個LeakyReLU激活(除了最後一個使用tanh的激活)。每隔一個時間步抽取丟棄特徵使時間分辨率減半。
Upsample在時間方向上以2倍的倍數執行上採樣,對此我們使用線性插值(詳見3.1.1節)。Concat(x)將當前的高級特性與更多的本地特性x連接起來。在基本架構的擴展(見下文)中,Conv1D不涉及零填充,x首先被中心裁剪,因此它具有與當前層相同的時間步長。

3.1.1避免因向上採樣而產生的混疊僞影

許多相關的方法都是使用帶跨步的轉置卷積對特徵圖進行向上採樣[7,16]。
這可以在輸出中引入混疊效果,如圖像生成網絡[15]的情況所示。
在最初的測試中,我們還發現了在我們的Wave-U-Net模型中以高頻嗡嗡噪聲的形式使用卷積作爲上採樣塊時產生的僞跡。
置換卷積的濾波器大小爲k,步幅爲x >
1可以看作是卷積,應用於特徵映射,在每個原始值[2]之間填充x 1個零。
我們懷疑,在沒有後續低通濾波的情況下,零交織將高頻模式引入到特徵圖中,如圖2所示,這也導致了最終輸出中的高頻噪聲。
因此,我們對上採樣進行線性插值,以保證特徵空間的時間連續性,而不是進行移位的大步卷積,然後進行正常的卷積。
在最初的測試中,我們沒有觀察到任何高頻聲音僞影在輸出時都與此技術取得了非常相似的性能。

3.2架構改進

上一節描述了Wave-U-Net的基線變量。
下面,我們將描述Wave-U-Net的一系列架構改進,旨在提高模型性能。
我們的基線模型通過獨立地應用K個卷積濾波器,並在最後一個feature map上加入tanh非線性,輸出每個K個源的一個源估計。
在我們考慮的分離任務中,混合信號是其源信號分量的和:Mj=1KSjM≈\sum_{j=1}^{K}{S^j}
由於我們的基線模型不受這種方式的約束,它必須近似地學習這個規則,以避免非常不可能的輸出,這可能會減慢學習速度並降低性能。
因此,我們使用不同的輸出層限制輸出S^j{\hat{S}^j},執行M=j=1KSjM=\sum_{j=1}^{K}{S^j}:只有K-1卷積過濾器的大小應用的最後特徵映射網絡,其次是雙曲正切非線性,估計第一個K -1源信號。
最後一個源被簡單地計算爲SK=Mj=1K1S^jS^K = M -\sum_{j=1}^{K-1}{\hat{S}^j}
這種類型的輸出也用於語音去噪[18]作爲節能的一部分損失,而且可以找到類似的想法非常普遍在spectrogrambased源分離面具的形式分發的能量輸入混合大小輸出源。我們研究了引入該層及其可加性假設的影響,因爲它取決於數據滿足該可加性的程度。

3.2.2在適當的輸入上下文和重新採樣的情況下進行預測

在之前的工作[4,7,16]中,在適當的輸入上下文和重新採樣的情況下,在進行卷積之前,輸入和feature map用0填充,這樣得到的feature map的維數不會發生變化,如圖2a所示。
這簡化了網絡s的實現,因爲輸入和輸出維度是相同的。
這種方式有效地擴展了輸入,在輸入的開始和結束都使用了靜音。
然而,從全音頻信號中的隨機位置出發,邊界處的信息就變得人爲了,也就是說,這個摘錄的時間背景在全音頻信號中給出,但被忽略,並假定爲無聲的。
如果沒有適當的上下文信息,網絡就很難預測序列開始和結束附近的輸出值。
因此,在測試時簡單地將輸出連接爲非重疊段來獲得完整音頻信號的預測,可以在段邊界上創建可聽的構件,因爲在沒有正確上下文信息的情況下,相鄰輸出可能不一致。
在第5.2節中,我們將在實踐中調查這種行爲

作爲一種解決方案,我們使用沒有隱式填充的卷積,並提供比輸出預測更大的混合輸入,以便在正確的音頻上下文中計算卷積(參見圖2b)。
由於這減少了特徵映射的大小,我們限制了網絡可能的輸出大小,以便使特徵映射總是足夠大,以滿足後續的卷積。
此外,當重新採樣feature maps時,feature dimensions往往恰好減半或加倍[7,16],如圖2a所示,對於轉置的strided convolution。
然而,這必然涉及到在邊界外推至少一個值,這又會引入工件。
相反,我們只在已知的鄰近值之間插入,並保留最開始和最後的項,從n產生2n1項,反之亦然,如圖2b所示。
爲了在保持邊界值不變的情況下,恢復抽取後的中間值,我們保證特徵圖的維數爲奇數。

3.2.3立體通道爲了適應C通道的多通道輸入,我們簡單地將輸入M從lm1改爲lmc矩陣。

由於第二維被視爲一個特徵信道,所以網絡的第一個卷積考慮了所有的輸入信道。
對於帶有C通道的多通道輸出,我們修改了輸出組件,使其具有K個獨立的卷積層,每個層有大小爲1的過濾器和C過濾器。
對於不同的輸出層,我們只使用k1這樣的卷積層。
我們在C = 2的情況下使用這種簡單的方法對立體聲錄音進行實驗,並研究使用立體聲而不是單聲道估計時源分離指標的改進程度。

3.2.4上採樣的Wave-U-net

線性插值學習上採樣簡單,無參數,鼓勵特徵連續性。
但是,這可能對網絡容量的限制太大了。
也許,這些特徵圖中使用的特徵空間並不是結構化的,因此特徵空間中兩點之間的線性插值本身就是一個有用的點,因此,一個學習的上採樣可以進一步提高性能。
爲此,我們提出了學習上採樣層。
ft+0.5=σ(w)ft+(1σ(w))ft+1f_{t+0.5} = σ(w) ⊙f_t + (1 − σ(w)) ⊙f_{t+1}
這可以實現爲一個一維卷積跨越時間與F濾波器的大小爲2,沒有填充與適當的約束矩陣。學習的插值層可以被看作是簡單線性插值的概括,因爲它允許特徵的凸組合與權重0:5之外。

4. 實驗

我們以低音、鼓、吉他、人聲和其他樂器爲分類,評估我們的模型在兩項任務上的表現:唱腔分離和音樂分離。

4.1 數據集

來自MUSDB[17]多徑數據庫訓練分區的75條軌跡被隨機分配給我們的訓練集,剩下的25條軌跡形成驗證集,用於早期停止。
在包含50首歌曲的MUSDB測試分區上評估最終性能。
對於歌唱語音分離,我們還將整個CCMixter數據庫[9]添加到訓練集中。作爲兩個任務的數據擴充,我們將源信號乘以一個從間隔[0:7]中均勻選擇的因子;
設置輸入混合信號爲源信號的和。
不做進一步的數據預處理,只轉換到單聲道(立體聲模型除外),並向下採樣到22050 Hz。

4.2訓練過程

在訓練過程中,隨機採樣音頻摘要,並對帶有輸入上下文的模型進行相應的輸入填充。
作爲損失,我們在批處理中對所有源輸出樣本使用均方誤差(MSE)。
我們使用與學習速率0:0001亞當優化器,衰減率β1 = 0:9β2 = 0:999和批處理大小爲16。
我們將2000個迭代定義爲一個epoch,並在驗證集沒有改進的20個epoch之後執行早期停止,以MSE損失來度量。
之後,對最後一個模型進行進一步微調,批量增加一倍,學習率降低到0:00001,再次調整到20個epoch,驗證損失沒有改善。
最後選擇驗證損失最優的模型。

4.3模型設置以及變量

對於我們的基線模型,我們使用Lm = Ls = 16384輸入和輸出樣本,L = 12層,Fc =每層24個額外的過濾器,以及過濾器大小fd = 15和fu = 5
確定的影響3.2節中描述的模型改進,我們訓練一個基線模型M1如3.1節所述和模型M2 M5,添加不同的輸出層從3.2.1節(M2),輸入上下文和重採樣3.2.2節(M3),立體聲通道從3.2.3節(M4),和學習從3.2.4條部分upsampling (M5),也包含所有的特徵分別之前的模型。
我們將上述(M4)的最佳模型應用於多儀器分離(M6)。
具有輸入上下文(M3到M6)的模型有Lm = 147443輸入和Ls = 16389輸出樣本。
爲了與之前的工作進行比較,我們還訓練了基於聲譜圖的U-Net架構7,實現了最先進的聲音分離性能,並在相同的條件下訓練了一個Wave-U-Net比較模型(M7),這兩個模型都使用了基於音頻的MSE損耗和採樣到8192 Hz的mono信號。
M4 M7是基於最好的模型,但將Lm = 233459和Ls = 102405相比有非常相似的輸出尺寸得以(Ls = 98650個樣本),Fc = 34使我們的網絡一樣的大小得以參數(20米),和初始批量大小設置爲四由於高數量的內存需要每個樣品。
爲了訓練U7,我們通過反STFT操作反向傳播誤差,該操作用於從估計的譜圖大小和混合相位構建源音頻信號。
在[7]之後,我們也對同樣的模型進行了頻譜強度(U7a)的L1損失的訓練。
自培訓過程和損失是完全相同的網絡得以和M7,我們可以相當比較這兩種架構,確保性能差異並不僅僅因爲出現的訓練數據量或使用何種類型的損失函數,並與spectrogrambased損失(U7a)。
儘管我們努力進行了全面的模型比較,但請注意,在[7]中使用的一些訓練設置(如學習率)可能與我們的有所不同(而且部分未知),並且使用U7和U7a可以提供比這裏顯示的更好的性能,即使使用相同的數據集也是如此。

Model name (from paper) Description Separate vocals or multi-instrument? Command for training
M1 Baseline Wave-U-Net model Vocals python Training.py
M2 M1 + difference output layer Vocals python Training.py with cfg.baseline_diff
M3 M2 + proper input context Vocals python Training.py with cfg.baseline_context
M4 BEST-PERFORMING: M3 + Stereo I/O Vocals python Training.py with cfg.baseline_stereo
M5 M4 + Learned upsampling layer Vocals python Training.py with cfg.full
M6 M4 applied to multi-instrument sep. Multi-instrument python Training.py with cfg.full_multi_instrument
M7 Wave-U-Net model to compare with SotA models U7,U7a Vocals python Training.py with cfg.baseline_comparison
U7 U-Net replication from prior work, audio-based MSE loss Vocals python Training.py with cfg.unet_spectrogram
U7a Like U7, but with L1 magnitude loss Vocals python Training.py with cfg.unet_spectrogram_l1

We also include the following models not part of the paper (also with pre-trained weights for download!):

Model name (not in paper) Description Separate vocals or multi-instrument? Command for training
M5-HighSR M5 with 44.1 KHz sampling rate Vocals python Training.py with cfg.full_44KHz

M5-HighSR is our best vocal separator, reaching a median (mean) vocal/acc SDR of 4.95 (1.01) and 11.16 (12.87), respectively.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章