魏 爽,王曉楠,楊璟安
(上海師范大學 信息與機電工程學院,上海 201418)
語音盲分離技術性能的提高有利于嘈雜環境中語音的精準獲取[1]及計算聽覺場景的有效分析[2]。而現實應用中,通常混合后的接收語音數目少于源語音數目,無法使用普通盲源分離方法求解,因此欠定盲源分離(underdetermined blind source separation,UBSS)成為當前語音處理領域需要關注的熱難點問題。
稀疏分量分析兩步法[3]是實現UBSS的重要技術,根據兩步法框架,研究者們引入了壓縮感知(compressed sensing,CS)[4]理論以實現源信號恢復。考慮到UBSS優化模型與CS稀疏重構模型的高度一致性[4],需將信號變換至稀疏域進行稀疏表示,其中字典學習算法因適應性強且能精確抓取并存儲語音特征[5]成為當前信號稀疏表示的熱門方法,如K-SVD算法[6]、MOD算法[7]、正則化同步碼字優化(simultaneous codeword optimization,SimCO)算法[8]。文獻[9]表明,正則化SimCO算法的字典更新速度及自適應學習性能均優于K-SVD與MOD算法。但對于復雜多變的語音信號,若始終固定信號的分段長度,則字典稀疏效果存在局限性。
本文提出動態字典學習實現欠定盲語音改進算法,通過逐段恢復SimCO字典域的稀疏信號,根據源信號重構結果動態選取合適的分段長度,對稀疏重構過程進行優化迭代從而得到全局最優的重構語音。與傳統SimCO算法采用固定的分段長度重構源信號相比,所提算法能夠充分利用動態字典學習稀疏結果,進一步精確抓取語音重構特征,提高語音恢復精度。
本文利用源信號在變換域的可稀疏性,構建基于CS的分段語音欠定盲分離模型。即根據UBSS的兩步法思路,在第一步估計得出混合矩陣后,構建信號的稀疏表示模型,并對觀測信號作分段處理,運用CS稀疏重構算法逐段恢復源信號。
本文研究的對象是欠定盲信號分離問題的瞬時模型。假設存在n維未知且統計獨立的源信號S=[s1(t),s2(t),…,sn(t)]T, 在混合系統中經未知矩陣A混合并引入m維加性觀測噪聲E=[e1(t),e2(t),…,em(t)]T, 通過m個傳感器采集可得到觀測信號X=[x1(t),x2(t),…,xm(t)]T, 如圖1所示。

圖1 語音欠定盲分離模型
其中,上標 [·]T表示轉置運算,t=1,2,…,T,T為采樣點數,混合矩陣A=[a1,a2,…,an],ai(i=1,2,…,n) 為A的m維列向量。
為方便描述,忽略系統引入的噪聲干擾,即令E=0,則一般的欠定盲源分離數學模型為
X=AS
(1)

應用壓縮感知理論重構語音的核心思想是利用信號在某一變換域中的稀疏性,根據M維觀測信號重建N維源信號。由于語音信號的時間長度較長,重建完整信號將大大降低算法效率,因此為將CS基本模型應用于UBSS場景,需對信號做分段處理,如圖2所示。

圖2 分段語音CS重構模型
將m路T點的觀測信號X分段為若干τ點子信號,通過CS重構算法可逐段求得n路T點的源信號S。通過逐段重建子信號,可在降低算法復雜度的同時獲得更優的重建效果。
因此,選取某一分段信號為例,對其CS重構模型做以下描述
(2)
其中,τ 分段源信號s可由稀疏基Ψ∈RN×K的線性組合進行表示 s=Ψy (3) 其中,矩陣y∈RK×1為源信號的Ψ域表示,且當y僅有p(p?K) 項非零系數時稱y為p稀疏的,因此式(3)為源信號在變換域的稀疏表示。若混合矩陣Λ與稀疏基矩陣Ψ不相關,將式(3)代入式(2)可構造CS的稀疏重構模型如下 x=ΛΨy (4) 在已知矩陣x與Λ的前提下,需根據稀疏表示方法求解稀疏基Ψ;進而若y的稀疏度滿足p (5) 基于正則化SimCO字典學習方法,本文提出動態改變信號分段長度以實現語音稀疏重構的改進算法,即先通過正則化SimCO算法訓練冗余字典D,并根據混合信號訓練字典(mixture-trained dictionary,MTD)[8]方法在動態選取的不同信號分段長度τ下構造稀疏字典域Ψ,使用稀疏重構算法則可在多次迭代過程中獲取重構效果最佳的一組源信號。 正則化SimCO字典學習的目的是尋求最優的冗余字典稀疏表示給定的語音訓練數據,該方法能夠同時更新字典的任意原子及對應稀疏系數[9],不僅改善了字典學習規模小、更新速度慢的弊端,同時正則化處理很好地解決了原始字典的病態(ill-conditioned)問題。 (6) (7) (8) (9) (10) (11) 為解決CS重構長語音過程中運算復雜度高的問題,同時為提高字典稀疏域下信號的重構質量,可根據最速下降原理[12]中的優化思想動態改變信號分段長度,對分段的語音信號進行稀疏表示,并對比不同分段長度下信號的重構質量,從而在多次優化迭代過程中選取恢復效果最佳的各路源信號。 在CS稀疏信號重構模型中,已知字典域Ψ可根據重構算法求解信號的Ψ域表示,進而恢復源信號。因此在利用正則化SimCO方法求得字典矩陣D的前提下,對于不同的分段長度τ,需采用MTD方法根據D構造不同的字典域Ψ,即:對D∈RL×L以重疊長度F進行矩陣行數的疊加,得到τ行的矩陣Dτ;將Dτ作為對角元素進行n×n的對角矩陣組合,得Ψ∈RN×K。 為量化對比每次迭代過程中稀疏重構的源信號效果,通過計算輸出語音信噪比的方式來表征每路源信號的重構準確度σ,定義如下 (12) 在動態字典學習算法的設計過程中,為了動態改變信號的分段長度,將第i路信號在第k次迭代的σ值記作σi(k), 并令前k-1次迭代過程的最優值記為σi_best,通過計算σi_best與σi(k)間的差值Δσi(k)構造差分優化函數,當Δσi(k)<0時表明σi(k)更優,需將σi(k)賦值給σi_best以更新最優值;當Δσi(k)≥0時表明σi_best更優,則σi_best值保持不變。根據差分優化函數的絕對值增大迭代的步長,使σi_best值不斷更新,當所求的Δσi(k)小于某一給定的閾值時,則迭代過程最終收斂。 令n路信號在第k次迭代的差分優化函數矩陣如下 Γ(σ)(k)=[Δσ1(k),Δσ2(k),…,Δσn(k)] (13) 其中,k=1,2,3,…, 且Δσi(k)=σi_best-σi(k),i=1,2,…,n。 為了統計分析各路源信號的重構結果,對n路恢復信號的差分函數結果進行均方根計算[13],則n路信號總體重構準確度的變化ΔΓ描述如下 (14) 令相鄰兩次迭代過程的τ變化值為步長λ,則第k次迭代的信號分段長度為τ(k)=τ(k-1)+λ(k-1)。 根據n路信號的總體重構準確度,增加全局搜索的步長,則依據最速下降思想定義步長 (15) 其中,ι>0為調節步長增量的常系數。 為求得每路信號的全局最優解,需設置閾值ε。由于各路信號通常具備不同的語音特征,其σ值的范圍有所差異,因此在[-1,1]范圍內,對信號的重構準確度差值Δσi進行歸一化處理求得Δσni, 以取得統一的閾值[13]。當滿足條件0<Δσni<ε時,則視作第i路信號的優化過程近似收斂,此時該路信號的全局最優值σi_best停止更新;若n路信號的重構準確度差值均滿足上述條件,則信號全部收斂,此時算法停止迭代。 因此利用分段稀疏信號的動態重構算法,尋找重構效果最佳的一組源信號的步驟可總結如下: 初始化:初始分段長度τ,初始步長λ,常系數ι,閾值ε。迭代次數k=1。 輸入:觀測矩陣x,混合矩陣Λ。 輸出:各路源信號對應的全局最優值σi_best。 1)更新當前觀測矩陣x與混合矩陣Λ。 2)根據2.1節,通過正則化SimCO字典學習算法訓練字典D,并使用MTD方法根據D求解字典域Ψ。 4)計算各路信號的σi值與對應的差值Δσi,根據所求的Δσi更新最優值σi_best。 (2)給定當前各路信號的σi與σi_best,動態確定信號分段長度τ: 1)根據式(13)更新當前的目標函數Γ(σ)。 2)根據式(15)更新步長λ與對應的信號分段長度τ。 (3)k=k+1。計算歸一化差值Δσni并迭代上述兩步直至各路信號均滿足0<Δσni<ε時停止迭代過程。 本文實驗仿真在Matlab R2017b的環境下進行,實驗目的是對比分析本文所提出的動態字典學習的改進SimCO算法與傳統SimCO算法在UBSS模型中同一字典域下源語音信號的重構結果,同時進一步與頻域稀疏優化方法[14]對比研究源信號在不同稀疏域下的恢復質量。 實驗仿真數據選用SiSEC2011提供的3組語音[15]:dev1_female、dev1_male、dev2_female,其中每組數據均包含4路源語音s1、s2、s3、s4,每路語音信號的時長為10 s且采樣率為16 kHz,即每路數據有T=160 000個樣本點。 在兩步法框架中,為研究第二步優化過程中源信號的重構效果,給定一個2×4的混合矩陣如下 (16) 對4路源信號進行混合,可求得2路混合信號x1、x2。 在所提改進算法中,首先通過正則化SimCO字典學習方法訓練字典D:對混合信號X進行分幀處理,幀長L=512,重疊長度F=450,形成樣本矩陣B∈R512×5148,設置字典更新次數為5,正則項參數μ=0.1,稀疏矩陣Y的稀疏度為5,得到字典矩陣D∈R512×512;進而通過動態優化策略設計分段長度τ:設定初始分段長度τ=1×102及步長λ=3×102,常系數ι=1×103,閾值ε=0.4,并在MTD框架下,將D構造為字典域Ψ;最后根據OMP稀疏重構算法[16]逐段恢復源信號。取一組混合語音dev2_female,應用本文改進算法所求得的語音重構結果如圖3所示。 圖3 所提改進算法的實驗結果 可見,與源信號的時域波形相比,重構源信號在有聲波形部分的恢復效果較好,尤其在波形幅度變化較明顯及語音段的集中區域,本文算法能夠基本實現源語音的盲分離過程,實驗結果較為理想。 采用文獻[14]中的頻域優化算法處理這3組混合語音時,需將時域信號變換至頻域進行稀疏重構。首先對混合語音X進行STFT處理,設置幀長為2048,幀重疊長度為717,并選用Hanning窗進行加窗操作,從而得到頻域稀疏信號;在頻域根據稀疏優化算法重構信號,最終通過逆STFT處理實現源語音恢復。 對STFT處理后的兩路混合信號虛部作散點圖進行稀疏表征分析,可獲得3組語音信號在同一混合條件下的頻域稀疏情況,如圖4所示。 圖4 3組混合語音的頻域散點 若混合語音的數據分布在頻域散點圖上呈現較為明顯的線性聚集性,則源信號的頻域稀疏性較強[17]。可見,dev1_female組的4路語音數據分布均比較清晰,而dev1_male組的4路語音數據分布均比較模糊,dev2_female組的4路語音中有2路數據的線性分布相對明顯。 采用傳統SimCO算法和本文所提改進算法處理這3組混合語音時,需將時域信號變換至字典域進行稀疏重構。在使用正則化SimCO字典學習方法求得相同的字典矩陣D∈R512×512后,分別在傳統算法的固定分段長度τ=2048和改進算法的動態分段長度τ下,構造字典域Ψ,從而逐段重構源信號。 針對3組不同的混合語音信號,表1展示了改進算法與另兩種對比算法的重構準確度結果,其中,一種對比算法采用頻域稀疏優化算法處理混合語音,另一種對比算法采用基于固定信號分段長度的傳統SimCO算法。 表1 不同算法下3組源信號的重構準確度對比 對表1中的3組數據作如下分析: (1)對比同一組語音中3種算法的語音分離結果,可知:傳統SimCO算法在字典域的重構準確度較低,而改進算法可動態尋找得到全局重構準確度最高的4路源信號,3組語音中各路信號的最優σ值與傳統算法相比可高出約0.9 dB~2.7 dB,且信號在字典域的稀疏性越強,改進算法的重構準確度提高越多;相較于頻域優化算法的重構結果,改進算法在各組語音中均能有1~3路源信號的最優σ值高于在頻域的重構結果,且最高可相差約1.0 dB。 (2)對比不同組語音在同一算法下的語音分離結果,可知:在頻域優化算法中,對照圖4可得,信號在頻域散點圖的線性分布越明顯,即信號稀疏性越強,則重構準確度越高;在同一字典變換域中,本文改進算法能夠進一步利用信號的稀疏特征并提高信號的重構準確度,且各路信號在頻域與字典域的稀疏性相近。 為進一步對比在固定分段長度與動態確定的分段長度下語音信號的恢復效果,定量分析固定較小值τ=100、固定較大值τ=160 000及動態值τ下信號的重構準確度,取其中一組混合語音dev2_female,分別根據傳統SimCO算法與改進算法求得重構結果,見表2。 表2 不同分段長度下四路源信號的重構準確度對比 可見,在不同分段長度中信號的重構σ值有所差異:較小值下的重構效果并不理想,而較大值下的重構結果不一定為全局最優,因此固定信號分段長度的求解方法無法確保各路語音均能取得最佳重構精度。 因此,為了進一步統計分析源信號在優化重構過程中的收斂情況,對4路恢復信號的全局最優值σi_best進行均方根計算,并求得每次迭代中4路信號的總體最優值 (17) 利用Matlab的Curve Fitting工具箱擬合3組語音在動態學習算法中分段長度τ與總體最優值σbest的趨勢圖,如圖5所示。 圖5 3組語音分段長度τ與σbest的曲線 可見,3組語音信號的τ-σbest變化趨勢相似:τ<200時,函數值呈直線增長趨勢;當σbest增大至全局最優值附近時,曲線總體平穩且基本收斂[13]。因此所提改進算法適用于具有不同語音特征的語音組,通過動態改變分段長度對各路信號進行優化重構能夠得到總體最優解,并有效降低了算法運行成本。 本文基于UBSS場景下語音信號在字典域的稀疏性,依據兩步法框架下的CS理論提出基于動態字典學習的稀疏信號重構算法,通過動態選取信號分段長度,探究信號重構結果的變化趨勢并優化求解恢復效果最佳的一組源信號。對比本文算法與傳統SimCO字典學習算法及在不同變換域中稀疏重構的實驗數據,分析可知所提的改進算法能夠充分挖掘信號在字典域的語音特征,提高源信號的稀疏重構準確度,改善盲語音分離質量,為信號的稀疏表示方法提供了更多可能性,從而進一步擴大欠定盲源分離模型的應用范圍。2 基于動態字典學習的欠定語音信號重構算法
2.1 正則化SimCO字典學習算法









2.2 動態字典學習的稀疏信號重構算法


3 實驗仿真分析
3.1 所提算法的實驗仿真結果


3.2 不同算法的性能對比分析


3.3 不同信號分段長度對恢復性能的影響


4 結束語