李嘉新,魏 爽,2,俞守庚,劉 睿
(1.上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 201418;2.上海交通大學(xué) 感知與導(dǎo)航研究所,上海 200030)
欠定盲源分離(Underdetermined Blind Source Separation,UBSS)廣泛應(yīng)用于語(yǔ)音分離[1]、干擾減緩[2]、圖像處理[3]和通信信號(hào)處理[4]等領(lǐng)域。由于缺乏足夠的先驗(yàn)信息,UBSS是一類不適定問(wèn)題[1]?,F(xiàn)有的“兩步法”利用稀疏表示技術(shù)解決語(yǔ)音UBSS中的上述問(wèn)題[5-6],但是“兩步法”利用頻域的稀疏性來(lái)恢復(fù)語(yǔ)音源信號(hào),容易出現(xiàn)相位解耦和時(shí)延等問(wèn)題[7]??紤]到字典學(xué)習(xí)算法可以直接在時(shí)域捕獲語(yǔ)音信號(hào)的稀疏性[8-10],研究人員在“兩步法”框架中應(yīng)用字典學(xué)習(xí)技術(shù),將UBSS問(wèn)題轉(zhuǎn)化為稀疏信號(hào)恢復(fù)問(wèn)題[1],提高算法的通用性。
主流的字典學(xué)習(xí)算法包括在線字典學(xué)習(xí)(Online Dictionary Learning,ODL)[11]、K-SVD(K-means Singular Value Decomposition)[12]、同步碼字優(yōu)化(Simultaneous Codeword Optimization,SimCO)[13]等,采用優(yōu)化算法訓(xùn)練字典,以獲取語(yǔ)音信號(hào)的稀疏特征。但對(duì)于復(fù)雜多變的語(yǔ)音信號(hào),上述算法始終使用固定的字典尺寸,導(dǎo)致字典對(duì)信號(hào)的稀疏表示效果不佳。此外,它們利用先驗(yàn)知識(shí)來(lái)預(yù)設(shè)字典尺寸,當(dāng)訓(xùn)練數(shù)據(jù)或約束條件發(fā)生變化時(shí),需要重新進(jìn)行實(shí)驗(yàn)來(lái)確定字典尺寸。如果字典太大,訓(xùn)練字典的成本會(huì)增加,也會(huì)導(dǎo)致過(guò)擬合問(wèn)題;字典太小,會(huì)導(dǎo)致信號(hào)的稀疏表示效果變差。以上問(wèn)題限制了算法的性能,因此確定合適的字典尺寸是當(dāng)前研究的重點(diǎn)和難點(diǎn)[14]。
目前,調(diào)整字典尺寸的算法有尺度自適應(yīng)字典學(xué)習(xí)(Scale Adaptive Dictionary Learning,SADL)[15]、Stagewise K-SVD[16]、尺寸優(yōu)化字典學(xué)習(xí)(Size-Optimizing Dictionary Learning,SODL)[14]、自適應(yīng)字典學(xué)習(xí)(Adaptive Dictionary Learning,ADL)[17]、自適應(yīng)尺寸字典學(xué)習(xí)(Adaptive-Size Dictionary Learning,AS-DL)[18-19]等。SADL將多元莫羅近端指標(biāo)(Multivariate Moreau Proximal Indictor,MMPI)作為字典學(xué)習(xí)目標(biāo)函數(shù)中的懲罰項(xiàng),在圖像重建中優(yōu)化字典尺寸。SODL首先根據(jù)先驗(yàn)知識(shí)預(yù)設(shè)一組字典尺寸,訓(xùn)練字典時(shí)在預(yù)設(shè)的字典尺寸范圍內(nèi)篩選出一個(gè)符合訓(xùn)練數(shù)據(jù)的字典尺寸。雖然該方法簡(jiǎn)單易懂,但是它在確定最佳字典尺寸方面存在限制,具有不靈活性。Stagewise K-SVD與ADL在迭代訓(xùn)練字典的過(guò)程中,通過(guò)擴(kuò)大字典尺寸來(lái)降低稀疏表示誤差,然而它們面對(duì)不同訓(xùn)練數(shù)據(jù)時(shí)的適應(yīng)性較差,應(yīng)用于語(yǔ)音UBSS中的效果不理想。AS-DL應(yīng)用信息論準(zhǔn)則(Information-Theoretic Criteria,ITC)來(lái)優(yōu)化字典尺寸,并且在磁共振成像(Magnetic Resonance Imaging,MRI)中取得了不錯(cuò)的效果。但是該算法過(guò)渡依賴ITC,導(dǎo)致訓(xùn)練的字典不能很好地?cái)M合語(yǔ)音數(shù)據(jù),造成語(yǔ)音源信號(hào)的恢復(fù)效果不佳。
針對(duì)上述算法存在的問(wèn)題,本文提出一種尺度自適應(yīng)同步碼字優(yōu)化(Scale Adaptive Simultaneous Codeword Optimization,SASimCO)算法來(lái)解決語(yǔ)音UBSS中優(yōu)化字典尺寸的問(wèn)題。本文算法既不會(huì)在預(yù)設(shè)的字典尺寸中進(jìn)行機(jī)械地篩選,也不會(huì)簡(jiǎn)單地增加字典尺寸,而是在訓(xùn)練字典的過(guò)程中同時(shí)調(diào)節(jié)尺寸與更新原子,降低稀疏表示誤差,得到一個(gè)具有良好稀疏性的過(guò)完備字典。這使得字典對(duì)語(yǔ)音信號(hào)的稀疏表示更加靈活和穩(wěn)定,有效提高語(yǔ)音源信號(hào)的恢復(fù)效果,具有實(shí)際應(yīng)用價(jià)值。
不考慮噪聲的情況下,UBSS的模型為
X=AS。
(1)
式中:X∈m×T表示m個(gè)真實(shí)已知的觀測(cè)信號(hào),T表示樣本點(diǎn);S∈n×T表示n個(gè)未知的源信號(hào),需要通過(guò)重構(gòu)算法恢復(fù);A∈m×n表示混合矩陣,需要從X中估計(jì)。該模型的目的是求解在m (2) 現(xiàn)把式(2)簡(jiǎn)寫成 b=Hf。 (3) 式中:f,b和H表示變換后的元素,f表示源信號(hào),b表示觀測(cè)信號(hào),H表示混合矩陣。假設(shè)f在字典域是稀疏的,那么f可以寫成 f=Dy。 (4) 式中:D∈M×K表示字典,K表示字典原子數(shù)量;y表示稀疏系數(shù)。根據(jù)式(3)和式(4),可以得到 b=HDy。 (5) 式中:H本質(zhì)上由混合矩陣估計(jì)算法估計(jì)得到,字典D由字典學(xué)習(xí)算法訓(xùn)練得到,b由已知的觀測(cè)信號(hào)X變換而來(lái)。至此,源信號(hào)f可由稀疏信號(hào)恢復(fù)算法得到。 SASimCO算法具有優(yōu)化字典尺寸的策略,它根據(jù)訓(xùn)練數(shù)據(jù)自適應(yīng)地優(yōu)化字典尺寸。該策略的關(guān)鍵在于設(shè)計(jì)候選矩陣,以及根據(jù)候選原子分?jǐn)?shù)和字典原子“能量”在字典中添加或刪除原子。首先,為了避免不恰當(dāng)?shù)某跏甲值涑叽缬绊懹?xùn)練字典的效果,SASimCO算法將字典尺寸設(shè)置為可選值范圍的中間值,并使用離散余弦變換(Discrete Cosine Transform,DCT)來(lái)初始化字典原子。然后,SASimCO算法利用SimCO算法[13]來(lái)更新字典原子,利用正交匹配追求(Orthogonal Matching Pursuit,OMP)算法[21]進(jìn)行稀疏編碼。但是不同于傳統(tǒng)的字典學(xué)習(xí)算法,SASimCO算法在預(yù)設(shè)初始字典尺寸后,執(zhí)行優(yōu)化字典尺寸的策略,刪除無(wú)用的原子并且增加有用的原子,最會(huì)得到一個(gè)最優(yōu)的字典尺寸,使得該字典對(duì)信號(hào)的稀疏表示誤差最小。因此,SASimCO算法訓(xùn)練得到的字典尺寸與初始字典尺寸有本質(zhì)的區(qū)別。SASimCO算法既可以提高訓(xùn)練字典的效率,又可以降低字典對(duì)信號(hào)的稀疏表示誤差,是同時(shí)兼具效率與性能的算法。 SASimCO算法的偽代碼如下: 輸入:Y∈M×N,K0,Kmin,Kmax,L,SP,Imax,errmin 輸出:D∈M×K 初始化DCT字典D0∈M×K0 fori=1 toImax Gi-1=OMP(Di-1,Y,SP) (Di,Gi)=SimCO(Y,Di-1,Gi-1) 訓(xùn)練候選矩陣Ui∈M×L 刪除Di中很少使用的原子 將Ui中原子添加到Di (Di,Gi)=SimCO(Y,Di,Gi) 迭代停止 設(shè)計(jì)候選矩陣是為了存儲(chǔ)能夠提高字典對(duì)信號(hào)稀疏表示性能的原子,通過(guò)對(duì)殘差矩陣r∈M×N進(jìn)行奇異值分解(Singular Value Decomposition,SVD)來(lái)訓(xùn)練候選矩陣中的原子。殘差矩陣r的計(jì)算方法如下: r=Y-DG。 (6) 式中:Y∈M×N表示訓(xùn)練數(shù)據(jù);D表示當(dāng)前字典;G∈K×N表示稀疏矩陣。對(duì)殘差矩陣r執(zhí)行SVD,只取前L個(gè)最大奇異值對(duì)應(yīng)的的左奇異向量構(gòu)成候選矩陣U∈M×L,在這些最大奇異值所對(duì)應(yīng)的左奇異向量的方向上儲(chǔ)存有殘差矩陣r的重要信息。因此,候選矩陣U能最大限度地保留殘差矩陣r的本質(zhì)特征,并且減少了殘差矩陣r的冗余信息。候選矩陣U中L個(gè)原子的候選分?jǐn)?shù)Cscores可以根據(jù)式(7)來(lái)計(jì)算: (7) 式中:i0=1:L表示候選矩陣U中每列原子的索引;⊙表示哈德瑪積;δ表示風(fēng)險(xiǎn)閾值;|·|表示絕對(duì)值;V∈1×N與p∈1×N分別表示矩陣|UTr|∈L×N中每列的最大值和對(duì)應(yīng)的行索引;J={p≡i0}表示p中等于i0的索引集合?,F(xiàn)在用E表示(V⊙V)∈1×N,Υ(E≥δ)∈1×N,el與Υl分別表示E與Υ的第l個(gè)元素,表示計(jì)算指定集合J中Υ(E≥δ)的非零元素個(gè)數(shù)。候選分?jǐn)?shù)較高的原子在對(duì)信號(hào)的稀疏表示中發(fā)揮著重要作用,首先考慮將它們添加到字典中。在訓(xùn)練字典的過(guò)程中,這些重要的原子將從候選矩陣添加到字典中來(lái)減少稀疏表示誤差,從而提高字典對(duì)語(yǔ)音信號(hào)的恢復(fù)效果。因此,候選矩陣的性能直接影響到字典對(duì)語(yǔ)音信號(hào)的稀疏表示效果,進(jìn)而又影響到語(yǔ)音源信號(hào)的重構(gòu)效果。 為了降低字典對(duì)信號(hào)的稀疏表示誤差,需要將候選矩陣中的部分原子添加到字典中來(lái)促進(jìn)語(yǔ)音信號(hào)的恢復(fù)效果。當(dāng)候選矩陣中原子的候選分?jǐn)?shù)Cscores大于候選閾值τ時(shí)(Cscores為正實(shí)數(shù),不失一般性,τ設(shè)為1),就將該原子添加到字典中,從而減小字典對(duì)信號(hào)的稀疏表示誤差,字典和語(yǔ)音信號(hào)之間的擬合程度可以得到提高,語(yǔ)音UBSS的效果就可以在很大程度上得到改善。 在字典域?qū)φZ(yǔ)音信號(hào)進(jìn)行稀疏表示時(shí),字典中有部分原子沒(méi)有被使用或很少被使用。為了優(yōu)化字典尺寸,提高語(yǔ)音信號(hào)的恢復(fù)效果,應(yīng)該從字典中刪除這部分原子。受到字典學(xué)習(xí)問(wèn)題即式(8) (8) 啟發(fā),有 (9) 式中:dj表示字典的第j列;gj表示稀疏矩陣的第j行。由于每一列字典原子dj都對(duì)應(yīng)著特定的稀疏系數(shù)gj,因此原子的重要性,即原子“能量”,可以通過(guò)其稀疏系數(shù)來(lái)表達(dá)。原子“能量”O(jiān)energy根據(jù)以下公式計(jì)算: (10) 式中:ζj={l|gjl≠0}表示gj中第j行非零元素的位置,j=1:K,l=1:N?!澳芰俊痹礁?原子的重要性就越大。具有較低“能量”的原子首先考慮從字典中刪除,這樣可以保證字典中沒(méi)有無(wú)用或很少使用的原子,在保證不增大誤差的同時(shí)又縮小了字典尺寸。 在訓(xùn)練字典之前,考慮到語(yǔ)音信號(hào)的短時(shí)平穩(wěn)性[22-23],并且每一幀語(yǔ)音成分都存在差異性,首先將語(yǔ)音訓(xùn)練數(shù)據(jù)分幀處理,然后逐幀去訓(xùn)練字典原子,從而應(yīng)用SASimCO算法來(lái)優(yōu)化語(yǔ)音UBSS的字典尺寸。訓(xùn)練好的過(guò)完備字典在字典域中對(duì)混合語(yǔ)音進(jìn)行稀疏表示,然后經(jīng)過(guò)分離系統(tǒng),在時(shí)域重建分離后的語(yǔ)音源信號(hào)。 圖1 基于SASimCO算法的欠定盲語(yǔ)音分離框架 實(shí)驗(yàn)在Matlab R2020a中進(jìn)行仿真,實(shí)驗(yàn)數(shù)據(jù)來(lái)自SiSEC “Underdetermined speech and music mixtures development 2”數(shù)據(jù)庫(kù)的4個(gè)男聲和女聲。每段語(yǔ)音信號(hào)持續(xù)時(shí)間為10 s,采樣頻率為16 kHz,這意味著每段語(yǔ)音信號(hào)有T=160 000個(gè)樣本點(diǎn)。該實(shí)驗(yàn)中預(yù)定義的混合矩陣A為 (11) (12) 圖2 語(yǔ)音源信號(hào)混合與恢復(fù) 語(yǔ)音源信號(hào)的分離性能可以通過(guò)信噪比(Signal-to-Noise Ratio,SNR)來(lái)衡量[28]: (13) 4.2.1 候選原子數(shù)對(duì)源信號(hào)分離效果分析 本節(jié)評(píng)估不同候選原子數(shù)L對(duì)所提算法性能的影響。候選原子是候選矩陣U的基礎(chǔ),字典訓(xùn)練過(guò)程中會(huì)選擇U中的候選原子添加到字典。L越多,U中存在重要候選原子的機(jī)會(huì)就越大,從U向字典添加重要的候選原子數(shù)量也會(huì)變多。通過(guò)L,可以間接地控制添加候選原子到字典的數(shù)量,從而影響所提算法的性能。圖3展示了實(shí)驗(yàn)數(shù)據(jù)為4個(gè)女聲時(shí),本文算法在不同L下語(yǔ)音源信號(hào)分離的平均SNR結(jié)果。根據(jù)實(shí)驗(yàn)結(jié)果可以看出,隨著L的增加,語(yǔ)音源信號(hào)的分離性能逐漸增加。本文綜合考慮了算法性能與計(jì)算成本,將L設(shè)置為20,并將用于后續(xù)實(shí)驗(yàn)。 圖3 不同L下語(yǔ)音源信號(hào)分離的平均信噪比 4.2.2 字典學(xué)習(xí)算法對(duì)源信號(hào)分離效果分析 本節(jié)將SASimCO與上述幾種主流的字典學(xué)習(xí)算法在語(yǔ)音UBSS中的效果進(jìn)行比較,算法的測(cè)試參數(shù)完全相同,實(shí)驗(yàn)結(jié)果如表1和表2所示。通過(guò)對(duì)比發(fā)現(xiàn),在每路源信號(hào)恢復(fù)結(jié)果或者平均恢復(fù)結(jié)果上,本文提出的SASimCO算法比其他字典學(xué)習(xí)算法的源分離性高1~3 dB,性能優(yōu)勢(shì)較為明顯。 表1 恢復(fù)4個(gè)女聲的SNR結(jié)果 單位:dB 表2 恢復(fù)4個(gè)男聲的SNR結(jié)果 單位:dB 為了探究SASimCO算法在訓(xùn)練字典過(guò)程中對(duì)字典尺寸的優(yōu)化性能,使用4個(gè)女聲為實(shí)驗(yàn)數(shù)據(jù),圖4展示了ADL、SODL和SASimCO在迭代過(guò)程中字典原子數(shù)的變化情況??梢钥闯?SODL在迭代過(guò)程中首先達(dá)到規(guī)定預(yù)設(shè)的最大尺寸,并保持字典原子數(shù)2 048不變。ADL在迭代過(guò)程中逐漸增加字典尺寸,最終字典原子數(shù)為1 705。SASimCO在前期迭代中,從候選矩陣添加了大量重要的原子到字典;在迭代后期,刪除了字典中較多“能量”低的原子,最終SASimCO訓(xùn)練的字典原子數(shù)為1 453。ADL和SASimCO在不同數(shù)據(jù)的多個(gè)稀疏水平下對(duì)字典尺寸優(yōu)化的結(jié)果如表3和表4所示。當(dāng)面對(duì)不同的語(yǔ)音數(shù)據(jù)時(shí),ADL獲得的字典尺寸沒(méi)有太大差別,但SASimCO獲得的字典尺寸卻有明顯不同。相比于SODL與ADL,SASimCO優(yōu)化字典尺寸的策略最成功,并且經(jīng)過(guò)SASimCO訓(xùn)練得到的字典尺寸最小,降低了訓(xùn)練字典的成本。 圖4 字典原子數(shù)在迭代中的變化情況 表4 男混合語(yǔ)音的字典尺寸優(yōu)化結(jié)果 信號(hào)在字典域中的稀疏表示誤差定義為 err=‖Y-DG‖F(xiàn)。 (14) 誤差越小,字典對(duì)信號(hào)的稀疏表示性能就越好。SimCO和SASimCO在訓(xùn)練字典的過(guò)程中誤差變化情況如圖5(a)所示,實(shí)驗(yàn)數(shù)據(jù)為4個(gè)女聲。SimCO在100次迭代訓(xùn)練的過(guò)程中,字典原子數(shù)保持512不變;SASimCO在優(yōu)化字典尺寸的過(guò)程中,字典原子數(shù)由初始的512變?yōu)? 453。由圖5(a)可知,SimCO訓(xùn)練的字典稀疏表示誤差約為12.6,SASimCO的誤差約為12.2。SASimCO誤差下降的幅度與速度都優(yōu)于SimCO,具有明顯優(yōu)勢(shì)。 (a)迭代100次 (b)迭代1 000次圖5 稀疏表示誤差在迭代中的變化情況 由于圖5(a)中誤差沒(méi)有達(dá)到穩(wěn)定狀態(tài),為了進(jìn)一步驗(yàn)證SASimCO對(duì)字典的優(yōu)化性能,在前100次迭代訓(xùn)練的基礎(chǔ)上增加了900次的迭代訓(xùn)練。在900次的迭代訓(xùn)練中,SASimCO字典原子數(shù)保持1 453不變,只更新字典原子不再優(yōu)化字典尺寸。SimCO在字典原子數(shù)分別為512與1 453時(shí),迭代1 000次的誤差變化情況如圖5(b)所示。當(dāng)原子數(shù)為512時(shí),SimCO的誤差約為10.5,SASimCO訓(xùn)練的字典誤差約為9.5;SimCO在字典原子數(shù)為1 453時(shí)的誤差與SASimCO相近,但是SimCO獲取與SASimCO相同的字典尺寸有一定滯后性。只有當(dāng)SASimCO訓(xùn)練得到最優(yōu)的字典原子數(shù)1 453時(shí),SimCO才能設(shè)置與SASimCO相同的字典尺寸;在SASimCO訓(xùn)練字典結(jié)束之前,SimCO的字典原子數(shù)并不知道該設(shè)置為1 453。因此,SASimCO在優(yōu)化字典尺寸的策略上是成功的。 SimCO與SASimCO訓(xùn)練1 000次后的字典用于語(yǔ)音UBSS的SNR結(jié)果如表5所示。即使當(dāng)SimCO設(shè)置與SASimCO相同的字典尺寸,其訓(xùn)練的字典用于語(yǔ)音UBSS的效果依然不如SASimCO。主要原因是SASimCO訓(xùn)練字典的策略包括更新原子與優(yōu)化尺寸,它不僅可以將候選矩陣中候選分?jǐn)?shù)較高的原子增加到字典,還可以刪除字典中“能量”低的原子,而SimCO只單純地更新字典。 表5 訓(xùn)練1 000次的字典恢復(fù)4個(gè)女聲的SNR結(jié)果 單位:dB 綜上所述,經(jīng)過(guò)SASimCO訓(xùn)練得到字典的稀疏表示性能比SimCO更好,用于語(yǔ)音UBSS具有明顯的優(yōu)勢(shì)。 為了衡量算法的復(fù)雜度,表6展示了不同字典學(xué)習(xí)算法訓(xùn)練一次字典所需CPU運(yùn)行時(shí)間的對(duì)比結(jié)果,可以看到SimCO算法運(yùn)行時(shí)間最短;由于SODL需要對(duì)一組字典尺寸進(jìn)行遍歷,所以花費(fèi)時(shí)間最多;由于本文算法需要進(jìn)行字典尺寸更新的策略,故其運(yùn)行時(shí)間高于SimCO算法;但是SASimCO運(yùn)行時(shí)間比同類需要優(yōu)化字典尺寸的ADL算法降低了約17.2%,比SDOL算法降低了約66.3%,具有明顯的實(shí)用價(jià)值。 表6 不同算法的CPU運(yùn)行時(shí)間 本文提出SASimCO算法來(lái)解決傳統(tǒng)字典學(xué)習(xí)算法不能優(yōu)化字典尺寸的問(wèn)題,根據(jù)不同的訓(xùn)練數(shù)據(jù)自適應(yīng)地獲得不同大小的字典,在很大程度上增強(qiáng)了字典域中語(yǔ)音信號(hào)的稀疏表示性能。從多個(gè)角度的驗(yàn)證表明,SASimCO算法比基于先驗(yàn)知識(shí)預(yù)先定義字典尺寸的方法更靈活,并且比其他優(yōu)化字典尺寸算法訓(xùn)練的字典更緊湊,用于語(yǔ)音UBSS具有明顯的優(yōu)勢(shì)。然而,本文算法可能對(duì)噪聲缺乏魯棒性,在接下來(lái)的研究工作中將重點(diǎn)考慮噪聲環(huán)境下的欠定盲語(yǔ)音分離問(wèn)題。1.2 稀疏信號(hào)恢復(fù)模型
2 SASimCO算法
2.1 訓(xùn)練候選矩陣
2.2 添加原子
2.3 刪除原子
3 基于SASimCO算法的欠定盲語(yǔ)音分離框架
4 仿真與分析
4.1 實(shí)驗(yàn)仿真
4.2 源信號(hào)分離效果分析
4.3 優(yōu)化字典性能分析
4.4 稀疏表示誤差分析
4.5 運(yùn)行時(shí)間分析
5 結(jié)束語(yǔ)