陸 煒,朱定局
(華南師范大學計算機學院,廣東 廣州 510631)
在現實世界中,語音交流通常發(fā)生在復雜的多人環(huán)境中。在此條件下運行的語音處理系統(tǒng)需能夠分離不同說話者的語音,而這項任務難以在機器中建模。近年來,與傳統(tǒng)的語音分離方法相比,利用深度學習的語音分離方法顯著改善了此問題的現狀[1-6]。傳統(tǒng)的神經網絡語音分離算法在過程一開始會通過短時傅里葉變換(Short-Time Fourier Transform, STFT)來創(chuàng)建混合語音信號的時-頻域(Time-Frequency Domain)表征,然后利用對應于時頻表征的掩膜將聲源的單元盒進行分離,最后通過逆短時傅里葉變換(Inverse Short-Time Fourier Transform, ISTFT)來恢復分離后的語音信號。在這個框架中存在以下幾個問題:
1)無法確定傅里葉變換是最優(yōu)的語音分離變換方法。
2)由于短時傅里葉變換將語音信號轉換至復數域,分離算法需同時處理語音信號的幅度和相位信息,而相位信息的修改難度較大,所以大多數方法僅通過計算每個語音信號源的時頻掩膜來修改短時傅里葉變換的幅度,并使用經掩膜操作后的幅度譜圖與語音混合信號的原始相位信息進行合成,這使得語音分離的性能存在上限。盡管存在若干系統(tǒng)[7-8]是利用相位信息來設計掩膜的,但由于分離過程存在不準確性,因此語音分離的性能上限仍然存在。
3)短時傅里葉變換域中的語音分離需要高頻分辨率,但這將導致時間窗口長度變大,例如,時間窗口長度在語音研究領域中一般超過32 ms[3-4],在音樂分離領域中一般超過90 ms[9]。由于語音分離系統(tǒng)的最小延遲時間受制于短時傅里葉變換的時間窗口長度,因此這個框架會限制需要低延遲要求的系統(tǒng)或設備的使用與發(fā)展。解決這些問題的一種方法是在時域中對語音信號進行建模。
近年來,在時域中對語音信號進行建模的方法已成功應用于語音識別、合成和增強等任務[10-14],但尚未利用深度學習的方法進行波形級的語音分離。Luo等人[15]在2018年提出了時域音頻分離網絡(Time-domain audio separation Network, TasNet),這種神經網絡使用編碼器-解碼器的框架直接對混合語音信號進行建模并對編碼器的輸出執(zhí)行分離操作。在這個框架中,混合波形由N個基信號的非負加權和表示,其中,權重是編碼器的輸出,基信號是解碼器的濾波器。分離操作是通過從混合信號的權重中估計對應于每個信號源的權重來完成的。因為權重值是非負的,源權重的估計值可以通過公式化操作找到表征每個信號源相對于混合語音信號權重貢獻度的掩膜,這個掩膜類似于STFT系統(tǒng)中所使用的T-F掩膜。然后利用經學習得出的解碼器重建聲源波形。由于TasNet框架可以對小至5 ms的波形段進行操作,因此該系統(tǒng)可以以極低的延遲進行實時的語音分離操作。除了具有較低的延遲外,TasNet較基于短時傅里葉變換的系統(tǒng)有著更優(yōu)的性能,其在不需要實時處理語音信號的應用中,也可以利用非因果的分離模塊,結合來自整個聲音信號的信息,從而進一步提高性能。本文接下來將從橫、縱2個方向的對比來研究基于TasNet框架的單通道語音分離研究進展,并闡述目前基于TasNet的單通道語音分離模型的局限性,最后從模型、數據集、說話人數量以及如何解決復雜場景下的語音分離等層面對未來的研究方向進行討論。
“語音分離”這一概念源自經典的雞尾酒會問題,其目標是在復雜的多人說話環(huán)境中,將每個目標說話人的對應語音信號分離出來。深度學習的語音分離算法在單通道語音分離領域已經超越了傳統(tǒng)信號處理算法,故本文將不探討非深度學習的語音分離方法。
語音信號在時域有很強的時變性,在一段時間內會呈現出周期信號的特點,而在另一段時間內呈現出隨機信號的特點,或者呈現出兩者混合的特性。若將語音信號轉換到頻域或者其他變換域,則語音信號在時域中表現不明顯的信號特征在變換域上將表現得明顯,這樣就可以對表現出的信號特征進行分析。
由于語音信號的時變性,研究者常用短時傅里葉變換方法進行語音信號的處理。具體做法是首先選取適當的窗函數將語音信號進行分幀處理,然后將各幀語音信號分別進行傅里葉變換。語音信號分幀后,因每幀時間較短,則可將每幀的信號看作是平穩(wěn)的,這樣便可觀察語音信號的頻譜圖了,頻譜圖可較好地反映出語音隨時間、頻率的變化特性。同時經短時傅里葉變換后,語音信號為二維信號,可以將其看作一個二維矩陣,以便于后續(xù)的語音信號處理。目前,比較典型的基于深度學習的語音分離方法有深度聚類(Deep Clustering, DPCL)、置換不變訓練(Permutation Invariant Train, PIT)以及本文將重點介紹的時域語音分離網絡(TasNet)。表1展示了深度聚類、置換不變性訓練及時域分離網絡的主要特點。
表1 深度聚類、置換不變性訓練及時域分離網絡的比較
深度聚類方法是MERL實驗室Hershey等人[16]于2016年提出的語音分離方法。這一方法的基本思路是將混合語音信號轉化為頻譜圖,將頻譜圖上每個時-頻塊(TF)通過一個深度神經網絡映射到一個特征空間,使得在該特征空間中各個TF塊的相鄰矩陣與依實際標注得到的相鄰矩陣盡可能相似。基于這一特征空間,對混合語音的TF塊進行聚類,再將同一類的TF塊選出來作為一個聲源的頻譜,即可實現語音分離。深度聚類的性能和泛化性較好,但缺點是它不是一個端到端的方法。
置換不變訓練是Yu等人[17]于2017年提出的一種端到端的語音分離方法。PIT模型的設計思想是當模型給定時,就可以給出一個確定的分離后的語音排列,并選擇可以使得損失函數最小化的排列方式,反之,當排列給定時則可以訓練模型,因此可在實驗最初隨機初始化一個分離模型,在得到一個排列后,更新模型,反復迭代至收斂。該方法有效地解決了基于深度學習的語音分離技術中長期存在的標簽排列問題。
時域分離網絡是由Luo等人[15]在2018年提出的一種基于時域的端到端的語音分離方法,即直接輸入混合語音信號,不經過短時傅立葉變換(STFT)從而得到聲音特征。傳統(tǒng)的基于時-頻域的語音分離方法因STFT而存在相位不匹配的問題,TasNet則既可以利用幅度信息也可以利用相位信息。TasNet的結構由編碼器、分離網絡和解碼器組成,與基于時-頻域的語音分離方法相比,編碼過程不是固定的而是通過網絡學習生成的,信號通過分離網絡得到相應目標者個數的掩膜,再經學習得到的掩膜矩陣與編碼器輸出矩陣進行點乘后,最后經過解碼器輸出分離后的語音信號。
基于時-頻域的語音分離方法存在相位不匹配的問題,即在語音分離的最后階段中,增強的幅值譜和原始混合的相位譜進行逆短時傅里葉變換后會對語音分離的性能產生一定的影響,Wang等人在2018年和2019年提出了WA-MISI[18]和Sign prediction net[19]等方法,以解決語音分離中相位補償的問題,Liu等人[20]在2019年提出了Deep CASA的方法,以解決在復數譜中進行語音分離的問題。解決相位不匹配問題的另一種解決辦法就是在時域上進行語音分離,基于時域的分離系統(tǒng)與將音頻的時頻表示作為輸入的系統(tǒng)有所不同,時域音頻分離網絡通過學習產生自適應的前端,用時域卷積的非負自動編碼器替代時頻域表征,即利用時域的波形點作為特征輸入,并同樣在時域上輸出波形點,因為時域上包含了語音的所有特征,所以這種端到端的訓練模型可以避免相位不匹配的問題,從而突破語音分離問題中的一大瓶頸。
Luo等人2018年提出的TasNet是一種直接對混合聲音波形進行操作的深度學習語音分離系統(tǒng)(模型示意圖如圖1所示),它包含3個部分:用于估計混合權重的編碼器、分離模塊和用于重建源波形的解碼器。編碼器和解碼器模塊的組合為混合波形構建了一個非負的自動編碼器,其中非負權重值是由編碼器經過計算得出的,并且基礎信號是解碼器中的一維濾波器,分離模塊中使用了深度長短期記憶(Long Short-Term Memory, LSTM)網絡,最終通過在混合權重矩陣中對應的信號源掩膜來解決在時域上的語音分離問題。該研究成果相較于基于短時傅里葉變換的系統(tǒng)而言,其分離速度提高了6倍,具有更好的語音分離性能。同年,Luo等人[21]開展了TasNet在語音去噪問題上的工作,他們通過將去混響問題類比為語音分離問題,進而表述成直接路徑與混響分離的去噪問題,最終證明,TasNet在頻譜圖輸入方面優(yōu)于深度LSTM基線,并且通過在卷積自動編碼器中調整步幅的大小進一步提高了語音分離和去混響任務的性能。圖1是TasNet模型示意圖。
圖1 TasNet模型示意圖
盡管TasNet在因果和非因果實現方面都優(yōu)于基于時-頻域的語音分離方法,但在分離模塊中使用深度長短期記憶網絡會限制原始的TasNet框架。原因如下:1)在編碼器中選擇較短的波形段作為輸入會增加編碼器輸出的長度,這使得基于LSTM網絡的訓練難以被管理;2)深度LSTM網絡中所使用的大量參數會增加其計算的成本,從而限制了原始TasNet框架在諸如嵌入式系統(tǒng)、可穿戴聽力設備等低資源、低功耗平臺的適用性;3)LSTM網絡具有對長期時間的依賴性,這通常會影響語音的分離精度。為了緩解原始TasNet框架的局限性,Luo等人[22]在原有基礎上于2019年進一步提出了全卷積的TasNet(Conv-TasNet)模型,即在語音處理的所有階段僅使用卷積層。受時間卷積網絡(Temporal Convolutional Network, TCN)模型[23-25]的啟發(fā),Conv-TasNet中使用TCN架構來代替深度LSTM網絡進行分離步驟,為了進一步減少參數的數量和計算的成本,Luo和Mesgarani等人用深度可分離卷積[26-27]代替了原始卷積。最終證明,Conv-TasNet在因果和非因果實現中顯著提高了基于LSTM神經網絡的TasNet的分離精度。此外,Conv-TasNet的分離精度超過了在信號失真比(Signal Distortion Ratio, SDR)和平均意見得分(Mean Opinion Score, MOS)測量評判標準下的理想時-頻域幅度掩膜如理想二值掩膜[28](Ideal Binary Mask, IBM)、理想比率掩膜[29-30](Ideal Ratio Mask, IRM)和維納濾波器掩膜[7](Wiener Filtering Mask, WFM)等的性能。
表2 針對Conv-TasNet的一些改進工作
針對Conv-TasNet,有諸多學者展開了相關的改進工作(如表2所示)。Tuan等人[31]于2019年提出了Mini-TasNet(MiTAS)模型,MiTAS模型對混合音頻中背景噪音和起始點的干擾具有魯棒性。與TasNet和Conv-TasNet相比,MiTAS能夠減少4倍的模型大小,同時有著更高的語音分離穩(wěn)定性,其模型更適合實時、低延遲的應用程序;Conv-TasNet被證實存在人工的操作,FaceBook人工智能實驗室的Défossez等人[32]于2019年提出了一種基于掩膜方法的波形到波形的替代模型Demucs,其架構更接近于音頻生成模型,解碼器容量更大。Défossez等人推測,當信息在混合儀器中丟失且不能簡單地通過掩膜恢復時,該方法將發(fā)揮用處;由于Conv-TasNet的訓練編碼器與聽覺濾波器組存在相似性,Ditter等人[33]采用確定性GammaTone濾波器組,于2020年提出了確定性多相伽馬色調濾波器組(MP-GTF),以替換Conv-TasNet中的學習編碼器,研究表明,當Conv-TasNet中的學習編碼器被MP-GTF取代時,整體系統(tǒng)性能不會降低,相反,該模型可以讓SI-SNR的平均值提高0.7 dB。此外,在不會影響整體性能的情況下,MP-GTF濾波器的數量可以從512個減少到128個。該模型整體性能類似于端到端系統(tǒng),同時可減少訓練數據的過度擬合;Conv-TasNet模型主要關注分離器,其編碼器和解碼器為淺層線性算子,Kadioglu等人[34]于2020年提出了基于Conv-TasNet的深度非線性的編碼器與解碼器變體。研究表明,編碼器與解碼器的變體可以將SI-SNR的平均值提高1 dB以上;受生成對抗網絡(Generative Adversarial Networks, GAN)在語音增強任務上的成功應用的啟發(fā)[35-36],Deng等人[37]于2020年提出了一種名為Conv-TasSAN的新型分離對抗網絡,其中分離器是采用Conv-TasNet架構實現的。鑒別器目標使用客觀語音質量評估(Perceptual Evaluation of Speech Quality, PESQ)或可短時客觀可懂(Short-time Objective Intelligibility, STOI)語音質量評價方法,以提高由分離器建模的源分布的準確性。研究證明,通過在WSJ0-2mix數據集上的實驗表明,Conv-TasSAN在SI-SNR和PESQ方面優(yōu)于Conv-TasNet;由于回聲和遠端信號之間的非線性關系,線性自適應濾波器不能完全去除聲學回聲,因此通常需要一個后處理模塊來進一步抑制回聲,Chen等人[38]于2020年提出了一種基于改進的Conv-TasNet的殘余回聲抑制方法,該方法采用線性聲學回聲消除系統(tǒng)的殘余信號和自適應濾波器的輸出,為Conv-TasNet形成多個流,在保持整個系統(tǒng)具有較低延遲性的同時,有效地抑制了回聲。研究證明,仿真結果驗證了所提出的方法在單方通話和雙方通話情況下的有效性;Conv-TasNet的去噪性能和計算效率主要受掩膜預測網絡結構的影響,Koizumi等人[39]于2021年提出了一種基于Conformer的時域語音增強網絡DF-Conformer,研究者旨在通過將Conformer集成到新的掩碼預測網絡中來提高Conv-TasNet模型的順序建模能力。為了提高計算復雜度和局部順序建模,研究者使用線性復雜度注意力機制和一維擴張可分離卷積擴展了Conformer。研究證明,使用線性復雜性注意力機制可解決計算復雜性問題,并且DF-Conformer模型比改進后的時間擴張卷積網絡(TDCN++)有著更高的性能。
由于Conv-TasNet使用固定的時間上下文長度,即Conv-TasNet沒有辦法整合整句話的信息,它只能關注到所切割的固定語音長度范圍內的信息,因此在需要長期跟蹤某個目標說話者語音信息的場景中,尤其是在混合音頻中存在長時間停頓的情況下,該方法可能會失效。為了解決這個問題,Luo等人[40]在2020年提出了一種雙路徑循環(huán)神經網絡(Dual-Path RNN, DPRNN)的語音分離方法(模型示意圖如圖2所示)。
圖2 DPRNN模型示意圖
DPRNN不僅會考慮所切割語音的長度信息,同時也會整合目標說話者整句的信息,使得語音分離網絡可以關注到更長時間的語音信息。傳統(tǒng)的循環(huán)神經網絡(RNN)無法有效地對由大量時間步長組成的輸入序列進行建模,而一維卷積神經網絡(1-D CNN)在其感受野小于序列長度時無法進行話語級別的序列建模。DPRNN可在深層結構中組織RNN層以對長時間序列進行建模。DPRNN將長時間序列的輸入拆分成塊并不斷迭代塊內和塊間操作,其塊處理過程為:將通過分割處理后得到的三維向量送入連續(xù)堆疊的DPRNN中,每個DPRNN的輸入及輸出維度保持一致,每個DPRNN中,輸入的三維向量首先經過塊內RNN,再將每個塊分別作為輸入送進雙向RNN中,以進行局部的建模,緊接著將上述輸出作為輸入經過全連接層、層歸一化和殘差連接之后送入塊間RNN,塊間RNN與塊內RNN類似,只是RNN的輸入是每個時間步的所有塊,而不是一個塊的所有時間步,以此來進行全局建模,前一個DPRNN的輸出結果將會是下一個DPRNN的輸入,以此進行迭代處理。這種神經網絡的設計允許每個RNN輸入的長度與原始輸入長度的平方根成正比,從而實現次線性的處理并減輕優(yōu)化過程中面臨的挑戰(zhàn)。
表3 基于WSJ0-2mix的各模型性能對比
Luo等人在TasNet框架中通過使用深度DPRNN替換一維CNN模塊來執(zhí)行樣本級分離的方法,使得該方法在WSJ0-2mix數據集上獲得了較之于先前語音分離方法[3-4, 6, 18-20, 22, 41-43]更優(yōu)的性能,表3展示了部分方法的性能對比。
表4 針對DPRNN的一些改進工作
針對DPRNN-TasNet,有諸多學者展開了相關的改進工作(如表4所示)。2020年,Facebook團隊的Nachmani等人[44]改進了DPRNN模型,采用了一種特定RNN架構的新型語音分離模型。由于語音信號包含無聲部分,因此僅憑連續(xù)性無法分離實例,Nachmani等人在工作中添加了基于識別的恒定損失組件并使用它來檢測混合信號中的實例數量。另外,為了解決因揚聲器數量增多導致的語音分離性能下降問題,Nachmani等人在工作中通過引入了一個新的循環(huán)塊,該塊結合了2個雙向RNN和一個跳過連接,并使用了多尺度損失以及語音恒定項。最后證明該模型在多說話人語音分離的性能方面優(yōu)于Conv-TasNet以及DPRNN;2020年,Shi等人[45]針對端到端的單聲道語音分離方法提出了LaFurca模型,該模型是對基于雙路徑BiLSTM的網絡模型的改進。首先,該研究引入了具有塊間并行BiLSTM和塊內并行BiLSTM結構的雙路徑網絡,以減少不同分支之間的性能差異。接下來,該研究在先前研究的基礎上使用可進行全局上下文感知的塊間-塊內交叉并行的BiLSTM網絡模型來進一步感知全局上下文信息。最后,該研究提出了一種螺旋多級的雙路徑BiLSTM網絡模型,通過迭代從而細化前幾級的分離結果,即混合語音先經過一個DPRNN模型得到2個分離語音,再將分離后的語音與混合語音一起送入第二個DPRNN模型,分離出2個語音,并不斷迭代。所有這些網絡都是將2個說話者的混合語音映射到2個單獨的語音中,其中每個語音塊只包含一個說話者的聲音。最終證明LaFurca模型在WSJ0-2mix數據集上的性能超過了DPRNN網絡框架。2021年,Wijayakusuma等人[46]嘗試使用因果配置在TasNet和DPRNN神經網絡中實現實時的說話人分離。該研究中主要使用3種實驗變量類型:RNN(LSTM和GRU)、優(yōu)化器(Adam和RAdam)和批量大小(128和64),以期發(fā)現較好的參數集。最終得出結論,“LSTM神經網絡+批量大小64+優(yōu)化器RAdam”的組合是較好的一組TasNet參數集。2021年,Wang等人[47]提出了一種稱為雙路徑濾波器網絡(Dual-Path Filter Network, DPFN)的方法。它是一個基于過濾器的模型,這意味著它將充當語音過濾器來傳遞混合中的目標源波形。該模型結合了雙路徑方法的優(yōu)點和說話人信息的使用。在DPFN模型中,揚聲器模塊是全新設計的,靈感來自分離模型。它可以為語音分離產生更多有用的說話人嵌入,而且DPFN模型專注于語音分離的后處理,所以該模型可以連接到任何的分離模型以提高各模型的分離性能。研究最終證明,基于DPRNN模型構建的DPFN不僅優(yōu)于DPRNN模型,而且避免了置換不變性訓練(PIT)的問題。
盡管基于時域的語音分離方法的性能超過了基于時-頻域的語音分離方法,但處理真實世界的音頻仍具有挑戰(zhàn)性。目前基于TasNet的語音分離方法還存在以下問題:
1)在模型層面,TasNet在幀跳數較大的情況下表現不佳,導致這種性能下降的主要原因可能是因為2個相鄰窗口之間錯開的采樣數較大而引起的混疊現象[48]。
2)在實驗數據集層面,基于TasNet的語音分離雖在模擬數據集上運行良好,但由于模擬訓練集中的語音和閱讀語音中的說話風格不匹配,在現實會話場景下語音分離效果會存在不穩(wěn)定性[49],即泛化性還有待加強。
3)在說話人數量層面,大多數TasNet語音分離模型只能處理固定數量說話者的語音信息。為了解決這個限制,研究人員受語音提取的啟發(fā)[50-52],開始使用說話人信息來更好地支持語音分離,即每一次的操作只需根據說話人信息提取單個目標說話人,則分離模型就不會受固定說話人數量的限制。有很多方法可以將說話者身份通過揚聲器合并到分離模塊中。例如,聯合TasNet和說話人提取網絡的SpEx[53]和SpEx+[54]模型每次只輸出一個說話人的掩膜從而實現多說話人聲源提取的工作,說話人向量在WaveSplit[55-56]架構的分離模塊中進行仿射變換,與說話人條件鏈模型(Speaker-Conditional Chain Model,SCCM)[57]中混合的逐幀特征向量連接,以及僅用于計算TasTas[58]中的說話人分類損失,或者基于DPRNN-TasNet的DPFN模型[47]。
4)在復雜場景下,為了貼合真實說話人場景,TasNet模型側重中低頻語音信號的分離,但是在更廣音頻分布的場景中將會受限。要解決復雜聽覺場景下語音分離問題,需要將計算模型和聽覺研究中的一些相關機制深度結合起來[59]。為了使其泛化性更高,研究者可以嘗試挖掘人耳的聽覺心理學知識以及更多地關注和挖掘語音的固有特性等[60]。未來語音分離會朝著更低延遲、更低功耗、更長時間序列的方向發(fā)展,以期實現廣義語音分離[61]。
綜上所述,本文提出TasNet語音分離技術可以從TasNet本身的模型優(yōu)化層面、實驗數據集的泛化性層面、說話人數量層面以及如何解決復雜場景下的語音分離的層面進行更加深入地探索和研究。