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

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

應(yīng)用壓縮感知理論重構(gòu)語(yǔ)音的核心思想是利用信號(hào)在某一變換域中的稀疏性,根據(jù)M維觀測(cè)信號(hào)重建N維源信號(hào)。由于語(yǔ)音信號(hào)的時(shí)間長(zhǎng)度較長(zhǎng),重建完整信號(hào)將大大降低算法效率,因此為將CS基本模型應(yīng)用于UBSS場(chǎng)景,需對(duì)信號(hào)做分段處理,如圖2所示。

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









2.2 動(dòng)態(tài)字典學(xué)習(xí)的稀疏信號(hào)重構(gòu)算法


3 實(shí)驗(yàn)仿真分析
3.1 所提算法的實(shí)驗(yàn)仿真結(jié)果


3.2 不同算法的性能對(duì)比分析


3.3 不同信號(hào)分段長(zhǎng)度對(duì)恢復(fù)性能的影響


4 結(jié)束語(yǔ)