馬 昊,鄭 翔,張 煜,陳 敏,朱炎民
(1.陸軍工程大學(xué)通信工程學(xué)院,江蘇 南京 210007;2.解放軍32125部隊(duì);3.解放軍31101部隊(duì))
盲源分離是指從接收到的混合信號(hào)中分離出未知源信號(hào)的過程,即對(duì)于系統(tǒng)中測(cè)得的傳感器信號(hào)x(t)=[x1(t),x2(t),…,xm(t)]T(m為接收端陣元數(shù)),要求找到一個(gè)逆系統(tǒng)以重構(gòu)原始的源信號(hào)s(t)=[s1(t),s2(t),…,sn(t)]T(n為發(fā)射端陣元數(shù))[1]。由于源信號(hào)s(t)未知,源信號(hào)如何混合得到觀測(cè)信號(hào)也未知,這體現(xiàn)了求解問題的“盲”。盲源分離技術(shù)根據(jù)源信號(hào)與觀測(cè)信號(hào)數(shù)目關(guān)系分為欠定(m<n)、正定(m=n)和超定(m>n)[2]盲源分離。隨著盲源分離技術(shù)的研究和運(yùn)用越來越深入,盲源分離在醫(yī)學(xué)信號(hào)處理、機(jī)械故障檢測(cè)、圖像處理識(shí)別、雷達(dá)及通信信號(hào)處理等方面都發(fā)揮著重要的作用[3-5]。
盲源分離問題根據(jù)關(guān)注點(diǎn)的不同存在不同的劃分方式。根據(jù)混合方式不同,主要分為線性混合和非線性混合,而線性混合又包括線性瞬時(shí)混合和線性卷積混合兩種。具體描述如下:
線性瞬時(shí)混合是最理想的一種混合方式,也是研究另外兩種類型的基礎(chǔ)。線性瞬時(shí)混合模型如下:
其中,v(t)為噪聲,A是未知的混合矩陣。如圖1 所示,在s(t)和混合矩陣A均未知的情況下,源信號(hào)y(t)可通過盲源分離算法只根據(jù)觀測(cè)信號(hào)x(t)恢復(fù)出來。
圖1 線性瞬時(shí)混合信號(hào)分離示意圖
由于在實(shí)際的信號(hào)傳播過程中,多徑和時(shí)延幾乎是無法避免的。因此線性卷積混合將多徑和時(shí)延因素納入到模型中,其表達(dá)式如下:
其中,Q表示無線傳播路徑數(shù),Aq表示第q個(gè)傳播路徑下的混合矩陣,δ(·)表示脈沖響應(yīng),和別為第i個(gè)源信號(hào)通過第q個(gè)路徑到第k個(gè)傳感器的振幅衰減和時(shí)延。卷積混合的盲源分離本質(zhì)是通過解卷積運(yùn)算進(jìn)而估計(jì)源信號(hào)。
非線性混合主要應(yīng)用于圖像處理中。一般非線性混合模型如下:
其中,f(·)是可逆非線性映射,一般非線性盲源分離就是在s(t)及f(·)未知情況下求得一個(gè)映射g:y(t)=g[x(t) ]。
截止目前,盲源分離算法可分為兩大類:一類是無監(jiān)督分離算法,此類算法主要是以信號(hào)的某種特性或者先驗(yàn)知識(shí)作為分離準(zhǔn)則,比如信號(hào)的獨(dú)立性、非高斯性、稀疏性、非負(fù)性、有界性等,由此衍生出獨(dú)立成分分析(Independent Component Analysis,ICA)[6]、稀疏分量分析(Sparse Component Analysis,SCA)[7]、非負(fù)矩陣分解(Non-negative Matrix Factorization,NMF)[8]、有界成分分析(Bounded Component Analysis,BCA)[9]等經(jīng)典的分離算法;另一類是有監(jiān)督分離算法,即通過搭建深度學(xué)習(xí)框架,利用大規(guī)模的已知信號(hào)對(duì)其進(jìn)行訓(xùn)練,得到映射函數(shù)或掩碼矩陣,以此對(duì)未知混合信號(hào)進(jìn)行分離[10],此類算法在語音分離領(lǐng)域得到了成功應(yīng)用。
一般的盲源分離算法主要分為兩步:首先估計(jì)分離矩陣,然后對(duì)混合信號(hào)進(jìn)行分離。分離矩陣的估計(jì)算法主要由代價(jià)函數(shù)和優(yōu)化算法兩部分組成。通過構(gòu)建代價(jià)函數(shù),將盲源分離問題轉(zhuǎn)換為最優(yōu)化問題,通過選擇合適的優(yōu)化算法尋求目標(biāo)函數(shù)的最值,以此估計(jì)分離矩陣;分離算法的核心在于根據(jù)源信號(hào)特性構(gòu)建優(yōu)化目標(biāo)函數(shù)。利用混合矩陣和源信號(hào)的不同特性,發(fā)展出不同的BSS 理論,即:①如果源信號(hào)S是統(tǒng)計(jì)獨(dú)立的,則可以通過ICA方法進(jìn)行信號(hào)分離;②如果源信號(hào)S在源域或變換域是稀疏的,則可以采用SCA方法進(jìn)行源分離;③假如X、A、S元素均為非負(fù)元素,則可采用NMF 方法進(jìn)行源分離;④如果A和S有界,可以利用BCA方法分離源信號(hào)。
2.1.1 ICA算法
ICA 算法是根據(jù)源信號(hào)的統(tǒng)計(jì)獨(dú)立性原則建立代價(jià)函數(shù),然后通過優(yōu)化算法從線性混合信號(hào)中分離出源信號(hào)。為了實(shí)現(xiàn)有效分離,ICA 算法需要滿足獨(dú)立性、非高斯性以及混合矩陣可逆等假設(shè)。根據(jù)對(duì)統(tǒng)計(jì)獨(dú)立性的不同度量方法,可建立不同的代價(jià)函數(shù):互信息最小化、信息傳輸最大化或負(fù)熵最大化、最大似然估計(jì)等。在建立代價(jià)函數(shù)后需要尋優(yōu)算法來求解。尋優(yōu)算法主要分為在線算法和離線算法,前者屬于實(shí)時(shí)的方法,如隨機(jī)梯度法等,但自適應(yīng)算法存在算法收斂問題,后者是對(duì)接收到的數(shù)據(jù)進(jìn)行批量處理,典型的有FastICA[11-12]。
2.1.2 SCA算法
雖然ICA 算法在盲信號(hào)分離領(lǐng)域應(yīng)用廣泛,但在實(shí)際中的信號(hào)混合模型并不能滿足信號(hào)的非高斯性或者非欠定條件下混合的假設(shè)。近年來,越來越多的學(xué)者開始利用信號(hào)的稀疏性來分離混合信號(hào)。這種利用信號(hào)稀疏性分離混合信號(hào)的方法稱為稀疏分量分析,即SCA算法。
SCA 算法在時(shí)域的稀疏性體現(xiàn)在源信號(hào)S在某一時(shí)刻包含盡可能多的0元素。SCA 算法的唯一解總是假設(shè)S有m-n+1 個(gè)0 元素或有n-1 個(gè)非0 元素,即n-1個(gè)稀疏元素。如果源信號(hào)在時(shí)域沒有稀疏性,可以通過短時(shí)傅里葉變換、小波變換等變換將信號(hào)轉(zhuǎn)換到具有稀疏性的域上實(shí)現(xiàn)分離。稀疏域的轉(zhuǎn)換同樣需要根據(jù)信號(hào)的特性來做選擇,這要求一定的先驗(yàn)知識(shí)作為基礎(chǔ)。稀疏性的度量通常采用L0范數(shù)度量,在保證恢復(fù)信號(hào)準(zhǔn)確性的基礎(chǔ)上,代價(jià)函數(shù)可表示為:
在數(shù)學(xué)中,S的L0范數(shù)的最小化是一個(gè)NP難問題。特別是隨著m的增大,L0范數(shù)最小化在計(jì)算上變得不可行,而且L0范數(shù)最小化對(duì)噪聲或近似誤差很敏感。因此,L1通常被作為L0范數(shù)的替代,因?yàn)長1范數(shù)是凸的,并且可以提供唯一解。
2.1.3 NMF算法
NMF 是基于非負(fù)約束獲取源信號(hào)的基本BSS 方法。在處理機(jī)制上,基于NMF的BSS注重源分量的非負(fù)條件,即將混合信號(hào)分解為兩個(gè)非負(fù)矩陣:基矩陣和系數(shù)矩陣,從而將矩陣分解問題轉(zhuǎn)化為兩個(gè)非負(fù)矩陣誤差最小化問題。衡量?jī)蓚€(gè)非負(fù)矩陣之間的誤差函數(shù)有歐式距離[14]、KL 散度[14]、IS 散度[15]、β 散度等[16]。通過不斷優(yōu)化目標(biāo)函數(shù)即可得到目標(biāo)源信號(hào)矩陣。與傳統(tǒng)方法相比,NMF 在實(shí)現(xiàn)復(fù)雜性、全面的分解解決方案和較少的存儲(chǔ)需求等方面具有許多優(yōu)勢(shì)。
NMF 算法應(yīng)用在BSS 領(lǐng)域的核心思想是在一定約束條件下將混合信號(hào)矩陣分解為源信號(hào)矩陣和混合矩陣,從而求出重構(gòu)信號(hào)的近似最優(yōu)解。數(shù)學(xué)模型描述如下:
其中,l表示信號(hào)長度。NMF 的求解過程較為復(fù)雜,總體上可分為三大類:乘性迭代法、投影梯度法和交替非負(fù)最小二乘法,其中應(yīng)用最為廣泛的是乘性迭代算法。在原有的非負(fù)矩陣分解問題中,同時(shí)求解矩陣A和S是非凸問題,求解較為困難。乘性迭代算法原理是在固定A或S的情況下更新求解另一矩陣,此時(shí)為凸優(yōu)化問題。在預(yù)設(shè)迭代次數(shù)時(shí),可完成對(duì)矩陣A、S的近似求解。矩陣A和S的更新公式如下:
其中,?表示哈達(dá)瑪積。
2.1.4 BCA算法
BCA 算法以源信號(hào)的幾何有界性作為基本原則,對(duì)觀測(cè)到的混合信號(hào)進(jìn)行線性分解。在BCA 算法中,笛卡兒分解和凸支撐緊致是提取源信號(hào)的基本假設(shè)。應(yīng)用BCA算法一般需要滿足以下條件:
⑴源信號(hào)和噪聲具有有界屬性;
⑵源信號(hào)S=(S1,…,Sm)T的凸支撐是邊緣凸支撐集的笛卡爾積;
⑶混合矩陣A為列滿秩矩陣;
⑷高斯噪聲的臨界統(tǒng)計(jì)量(如凸支撐或協(xié)方差矩陣)已知或者可以從觀測(cè)到的混合噪聲中得到。
在BCA 算法中,代價(jià)函數(shù)的選擇可以有多種,比如常見的代價(jià)函數(shù)有周長最小化、體積比最大化以及最小化風(fēng)險(xiǎn)準(zhǔn)則等。在優(yōu)化算法方面,主要采用經(jīng)典的優(yōu)化算法如梯度下降法、梯度投影法等。
區(qū)別于模型驅(qū)動(dòng)型的傳統(tǒng)盲源分離算法,應(yīng)用于信號(hào)分離的深度學(xué)習(xí)算法是一種數(shù)據(jù)驅(qū)動(dòng)型的有監(jiān)督學(xué)習(xí)算法,即通過輸入混合信號(hào)和已知的源信號(hào)對(duì)深度模型進(jìn)行訓(xùn)練。模型根據(jù)已知源信號(hào)學(xué)習(xí)混合信號(hào)的特征,以及特征到分離目標(biāo)的映射函數(shù),訓(xùn)練完成后對(duì)未知的混合信號(hào)進(jìn)行分離。從輸入信號(hào)的形式劃分,基于深度學(xué)習(xí)的語音分離技術(shù)可分為基于頻域和時(shí)域兩大類。
2.2.1 基于頻域上的深度學(xué)習(xí)方法
基于頻域上的深度學(xué)習(xí)方法是指通過短時(shí)傅里葉變換(STFT)將原始波形變換到時(shí)頻域進(jìn)行處理。
深度聚類(Deep Clustering,DPCL)[17-18]是MERL實(shí)驗(yàn)室在2016年提出的一種語音分離算法。DPCL算法主要是利用神經(jīng)網(wǎng)絡(luò)將混合信號(hào)的時(shí)頻表示投影到高維的嵌入空間中,然后對(duì)嵌入空間進(jìn)行聚類,得到時(shí)頻掩碼(TF Mask),并用得到的掩碼分離混合信號(hào)。DPCL 算法很好地解決了說話者排列不匹配問題,但是由于該方法的目標(biāo)函數(shù)是嵌入空間內(nèi)的源信號(hào)之間的關(guān)聯(lián)關(guān)系,而不是關(guān)于分離信號(hào)本身,所以存在不能有效地進(jìn)行端到端訓(xùn)練的缺點(diǎn)。
文獻(xiàn)[19]在深度聚類的基礎(chǔ)上,提出深度吸引子網(wǎng)絡(luò)(Deep Attractor Network,DAN),它也學(xué)習(xí)了TF單元的高維嵌入。與深度聚類不同,此深度網(wǎng)絡(luò)會(huì)創(chuàng)建類似于聚類中心的吸引點(diǎn),以將由不同說話者主導(dǎo)的TF 單元拉到其對(duì)應(yīng)的吸引子。然后通過比較嵌入點(diǎn)和每個(gè)吸引子的相似性得到掩膜,實(shí)現(xiàn)端到端的訓(xùn)練與測(cè)試,文獻(xiàn)[19]的結(jié)果表明,深吸引子網(wǎng)絡(luò)比深度聚類產(chǎn)生更好的結(jié)果。
文獻(xiàn)[20-21]提出了PIT(Permutation Invariant Training)算法以及其改進(jìn)算法uPIT(Utterance-level PIT),與DPCL 以及DAN 不同,PIT 算法直接使用最小化分離誤差,有效的實(shí)現(xiàn)了端到端的映射。PIT 首先確定最佳的輸出目標(biāo)分配組合,然后通過排列組合,計(jì)算所有可能出現(xiàn)的分配組合的誤差,選擇其中最小分離誤差的分配組合并以此來優(yōu)化模型,其中所有輸出目標(biāo)組合就是參考源信號(hào)和估計(jì)源信號(hào)之間的所有可能存在的排列組合。該策略直接在網(wǎng)絡(luò)結(jié)構(gòu)中實(shí)現(xiàn),很好地解決了長期困擾基于深度學(xué)習(xí)的盲源分離技術(shù)發(fā)展的標(biāo)簽置換問題。由于PIT 每一次要計(jì)算所有可能存在的排序組合的分離誤差,當(dāng)源數(shù)量變大時(shí)就會(huì)導(dǎo)致計(jì)算成本成倍增長。
2.2.2 基于時(shí)域上的深度學(xué)習(xí)方法
與基于信號(hào)頻域上的深度學(xué)習(xí)方法不同,在文獻(xiàn)[25]中首次提出基于時(shí)域上的學(xué)習(xí)方法,即直接將信號(hào)波形送入模型進(jìn)行學(xué)習(xí)。羅藝在文獻(xiàn)中指出,基于頻域上的深度學(xué)習(xí)方法有三個(gè)不足:一是STFT 是一種通用的信號(hào)變換方法,應(yīng)用于語音分離不一定是最佳的;二是相位信息無法學(xué)習(xí),利用混合信號(hào)的相位進(jìn)行信號(hào)重構(gòu)會(huì)產(chǎn)生分離性能的上界;三是STFT 需要較高的頻率分辨率,導(dǎo)致較長的時(shí)間延遲,限制了在低延遲場(chǎng)景下的應(yīng)用。基于此,羅藝提出了一種Tasnet(Time-Domain Audio Separation Network)模型。Tasnet 模型包括編碼器、分離器、解碼器三部分。其中編碼器通過一維卷積學(xué)習(xí)信號(hào)特征,分離器通過堆疊長短期記憶網(wǎng)絡(luò)(LSTM)生成掩碼,分離器通過轉(zhuǎn)置卷積將信號(hào)還原為時(shí)域波形形式。此后,研究者基于編碼器—分離器—解碼器架構(gòu)改進(jìn)學(xué)習(xí)模型,使得分離性能不斷提高。
在分離器改進(jìn)方面,文獻(xiàn)[24]在Tasnet 模型基礎(chǔ)上提出Conv-Tasnet 模型。由于使用堆疊LSTM 作為分離模塊,使得Tasnet模型存在模型訓(xùn)練難以管理、大量參數(shù)導(dǎo)致的計(jì)算成本過高以及分離精度不一致的問題,在Conv-Tasnet 模型中將分離模塊替換為堆疊一維空洞卷積模塊,模塊使用空洞卷積增加了模型的感受野,大大減少了模型復(fù)雜度,使得延遲更短同時(shí)分離精度更高。針對(duì)傳統(tǒng)模型對(duì)超長序列建模困難的問題,文獻(xiàn)[25]又提出了dual-path RNN (DPRNN)模型,模型首先對(duì)編碼向量進(jìn)行分割堆疊形成三維張量塊,然后通過塊遞歸神經(jīng)網(wǎng)絡(luò)(RNN)獨(dú)立處理局部塊,塊間RNN將所有塊的信息聚合起來進(jìn)行話語級(jí)處理,通過塊內(nèi)和塊間的交錯(cuò)處理實(shí)現(xiàn)了對(duì)信號(hào)的局部建模和全局建模,不僅能夠達(dá)到長序列建模要求,模型也更加簡(jiǎn)單。DPRNN 為長序列建模問題提供了有效的解決思路。由于RNN無法進(jìn)行串行計(jì)算,對(duì)長序列建模時(shí)會(huì)導(dǎo)致計(jì)算效率下降。為解決這一問題,文獻(xiàn)[26]在DPRNN 模型基礎(chǔ)上提出了Dual-Path Transformer Network,即將LSTM 網(wǎng)絡(luò)替換為Transformer,利用Transformer 的自注意力機(jī)制獲取上下文信息,實(shí)現(xiàn)長序列建模。為進(jìn)一步提高分離性能,在文獻(xiàn)[27]中基于Conv-Tasnet 模型提出多種改進(jìn)方式:一是將一個(gè)分離模塊擴(kuò)展為多個(gè)模塊并行連接,每個(gè)模塊包含不同數(shù)量的子模塊,另外通過設(shè)計(jì)權(quán)重模塊控制不同模塊的權(quán)重,以此實(shí)現(xiàn)對(duì)序列的不同尺度建模;二是對(duì)一維空洞卷積模塊進(jìn)行并行集成,通過對(duì)所有不同分支的輸出進(jìn)行平均,得到每個(gè)并行內(nèi)卷積分量的總輸出,從而減小性能方差,提高分離穩(wěn)定性;三是在一維空洞卷積模塊的輸入端和輸出端引入門控機(jī)制,控制信息的流入和流出。以上改進(jìn)均不同程度地提高了分離精度。
在編解碼器改進(jìn)方面,文獻(xiàn)[28]提出用一個(gè)由聽覺特征驅(qū)動(dòng)的確定性的Gammtone 濾波器組代替網(wǎng)絡(luò)中的可學(xué)習(xí)編碼器,他認(rèn)為對(duì)于訓(xùn)練數(shù)據(jù)有限的條件下,替換后的濾波器組更能有效地提取語音信號(hào)的特征;相反,在文獻(xiàn)[29]中作者認(rèn)為使用單層一維卷積不能完整有效地表示信號(hào)特征,并提出了深度編碼器/解碼器。深度編碼器/解碼器使用四層一維空洞卷積作為編碼器,同時(shí)使用門控線性單元(GLUs)取代深度編碼器/解碼器中的帶參整流線性單元(PReLU),解碼器采取與編碼器對(duì)稱結(jié)構(gòu),通過加深編解碼器網(wǎng)絡(luò)提高信號(hào)的表征能力。
在訓(xùn)練方式改進(jìn)方面,文獻(xiàn)[30]提出兩階段的訓(xùn)練模式。第一階段保持分離器參數(shù)不變,預(yù)先訓(xùn)練編碼器和解碼器,以學(xué)習(xí)合適的潛在表示。在第二階段,保持編解碼器參數(shù)不變訓(xùn)練分離模塊。這種兩步訓(xùn)練法在多個(gè)語音分離任務(wù)中獲得了一致的性能改進(jìn)。
本文主要從盲源分離模型分類以及無監(jiān)督和有監(jiān)督兩類算法對(duì)盲源分離算法進(jìn)行了總結(jié)。根據(jù)混合方式的不同將盲源分離模型分為線性瞬時(shí)混合、線性卷積混合以及非線性混合三類。然后分別討論了無監(jiān)督和有監(jiān)督條件下的分離算法。無監(jiān)督條件下的分離算法主要包括ICA、SCA、NMF、BCA 等經(jīng)典的算法。不同的算法是在不同的場(chǎng)景以及假設(shè)條件提出并完善起來的。在對(duì)具體某個(gè)問題使用時(shí)需預(yù)先對(duì)該問題的前提條件進(jìn)行分析,然后選擇合適的分離算法。有監(jiān)督條件下的分離算法是深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)在語音分離領(lǐng)域的典型應(yīng)用,本文從基于頻域和時(shí)域兩大類方法上進(jìn)行總結(jié)。隨著深度學(xué)習(xí)的興起,深層模型開始廣泛應(yīng)用到語音分離中,目前已經(jīng)成為監(jiān)督性語音分離最主流的學(xué)習(xí)模型。深層模型具有強(qiáng)大的建模能力,能夠挖掘數(shù)據(jù)中的深層結(jié)構(gòu),相對(duì)于淺層模型,深層模型分離的語音不僅在感知質(zhì)量和可懂度方面都有巨大的提升,而且隨著數(shù)據(jù)的增大,其泛化性能和分離性能得到不斷的提高。
盲源分離技術(shù)自提出以來,在理論和應(yīng)用方面不斷豐富和發(fā)展,取得了豐碩的成果,但也應(yīng)當(dāng)看到還存在一些難題尚未得到良好的解決。對(duì)于無監(jiān)督算法,需進(jìn)一步研究的問題主要有低信噪比條件下的盲信號(hào)分離、欠定條件下特別是單通道的盲源分離、更加符合實(shí)際應(yīng)用的卷積混合和非線性混合模型的盲源分離。對(duì)于有監(jiān)督算法,隨著深度學(xué)習(xí)技術(shù)的進(jìn)一步應(yīng)用,盲源分離技術(shù)在以下幾方面可能會(huì)有所突破:一是有監(jiān)督分離技術(shù)在通信信號(hào)等領(lǐng)域的拓展,雖然有監(jiān)督分離技術(shù)在語音分離領(lǐng)域取得了成功,但在其他領(lǐng)域如通信信號(hào)等尚未有深入的研究;二是泛化性能的提高,盡管監(jiān)督性語音分離取得了很好的分離性能,特別是深度學(xué)習(xí)的應(yīng)用,極大地促進(jìn)了監(jiān)督性語音分離的發(fā)展,但在聽覺條件或者訓(xùn)練數(shù)據(jù)不匹配的情況下,例如噪音不匹配和信噪比不匹配的情況下,分離性能會(huì)急劇下降;三是深度學(xué)習(xí)框架的改進(jìn)完善。近年來,新的具有更強(qiáng)表征能力如多模態(tài)變分自編碼器(MVAE)、GAN等深度模型不斷涌現(xiàn),推動(dòng)深度學(xué)習(xí)技術(shù)的發(fā)展,同時(shí)隨著在語音分離領(lǐng)域的廣泛應(yīng)用,語音分離性能也將不斷提高。