魏 爽,楊璟安,徐 朋,龍艷花
(上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 200234)
欠定盲源分離(underdetermined blind source separation,UBSS)是一項(xiàng)用于盲信號(hào)處理的關(guān)鍵技術(shù)[1-6]。對(duì)于欠定盲源分離問題,混疊矩陣不可逆,無(wú)法通過混疊矩陣求逆來(lái)求解源信號(hào),需要利用信號(hào)在變換域中的稀疏特征作為優(yōu)化附加條件[7]。當(dāng)前主要存在的欠定盲源分離方法是基于稀疏分量分析 (sparse component analysis,SCA)[8,9]的兩步法,主要分為估計(jì)混疊矩陣階段與恢復(fù)源信號(hào)階段[10,11]。
在SCA的第一階段,現(xiàn)有的方法采用勢(shì)函數(shù)法[10]、聚類算法[12-14]、高階統(tǒng)計(jì)估計(jì)量[15]等方法實(shí)現(xiàn)混疊矩陣的估計(jì)。其中,聚類算法更廣泛地應(yīng)用于變換域中具有稀疏性的源信號(hào)分離。但是,傳統(tǒng)聚類算法容易存在陷入局部最優(yōu)的問題。
在SCA的第二階段,最短路徑法[10]是最初用于恢復(fù)源信號(hào)的方法。但是,最短路徑法僅適用于兩路觀測(cè)信號(hào)。當(dāng)前對(duì)于多路觀測(cè)信號(hào),恢復(fù)源信號(hào)的方法主要分兩類,一類是通過對(duì)近似L0范數(shù)的函數(shù)優(yōu)化實(shí)現(xiàn)源信號(hào)的恢復(fù),如:平滑L0范數(shù)(SL0)法[16-18],采用平滑連續(xù)函數(shù)近似L0范數(shù)。CTNRAL0方法[19]利用復(fù)合三角函數(shù)近似L0范數(shù)。這類算法對(duì)于源信號(hào)的來(lái)波方向較接近的情況恢復(fù)精度欠佳。另一類是采用壓縮感知方法將L1范數(shù)優(yōu)化代替L0范數(shù)優(yōu)化實(shí)現(xiàn)源信號(hào)的恢復(fù),避免了L0范數(shù)優(yōu)化NP-hard問題。
通常情況下,語(yǔ)音信號(hào)在時(shí)域中的稀疏特征不明顯。本文主要針對(duì)在頻域中具有稀疏特征的語(yǔ)音信號(hào),設(shè)計(jì)了一種基于貪婪稀疏優(yōu)化的SCA兩步法解決語(yǔ)音信號(hào)欠定盲分離問題。在估計(jì)混疊矩陣階段,設(shè)計(jì)一種改進(jìn)蟻群算法的K均值聚類算法,此方法在不具備先驗(yàn)知識(shí)的情況下實(shí)現(xiàn)自主聚類,解決傳統(tǒng)聚類算法容易陷入局部最優(yōu)的問題。在恢復(fù)源信號(hào)階段,設(shè)計(jì)一種貪婪最優(yōu)化思想逼近稀疏最優(yōu)解,實(shí)現(xiàn)對(duì)語(yǔ)音源信號(hào)的恢復(fù)。該方法可以實(shí)現(xiàn)兩路以上混疊信號(hào)的欠定盲分離,提高盲源信號(hào)來(lái)波方向比較接近情況下的信號(hào)恢復(fù)精度,保證了信號(hào)分離效率。
欠定盲源分離的數(shù)學(xué)模型如式(1)
X=A*S+E
(1)
式中:S=[s1,s2,…,sn]T為n個(gè)源信號(hào)向量,每個(gè)源信號(hào)表示長(zhǎng)度為l的向量si=[si(1),si(2),…,si(l)];X=[x1,x2,…,xm]T為接收的m個(gè)觀測(cè)信號(hào)向量,其中,xi(t)=[xi(1),xi(2),…,xi(l)],A為m×n的混疊矩陣;E=[e1,e2,…,en]T為噪聲信號(hào)。在欠定盲源分離模型下,觀測(cè)信號(hào)的數(shù)量小于源信號(hào)的數(shù)量(m 一般來(lái)說(shuō),1.1中欠定模型問題下的解是不唯一的。不過,當(dāng)該問題中加入解的稀疏特性作為約束條件時(shí),則可以得到唯一的稀疏解。信號(hào)的稀疏性通常定義為單個(gè)信號(hào)中一部分點(diǎn)的取值不為零,而其余點(diǎn)的取值均為零或接近于零[20]。因此,獲取語(yǔ)音源信號(hào)的稀疏特征,是求解欠定盲源分離問題的關(guān)鍵。 但是,一般情況下的語(yǔ)音信號(hào)在時(shí)域中的散點(diǎn)圖是雜亂無(wú)章的,如圖1所示。此時(shí)無(wú)法獲取語(yǔ)音信號(hào)的稀疏特征,導(dǎo)致無(wú)法求解欠定問題。而語(yǔ)音信號(hào)在頻域中的表征更具有稀疏特性。所以,首先需要對(duì)時(shí)域觀測(cè)信號(hào)進(jìn)行時(shí)頻變換,將時(shí)域信號(hào)轉(zhuǎn)換為頻域信號(hào),獲取語(yǔ)音信號(hào)的稀疏特征。 圖1 時(shí)域語(yǔ)音信號(hào)散點(diǎn) 圖2 信號(hào)分幀處理 (2) 繼續(xù)分別取出每個(gè)頻域幀信號(hào)正半頻譜的實(shí)部和虛部作為一種幀系數(shù)矩陣 (3) (4) (5) 圖3 稀疏模型下語(yǔ)音信號(hào)散點(diǎn) 忽略噪聲影響,將式(1)的時(shí)域模型轉(zhuǎn)化為頻域模型,如式(6)所示 (6) (7) (8) 圖4 系統(tǒng)框架 蟻群算法是意大利學(xué)者Dorigo模擬螞蟻覓食的原理設(shè)計(jì)出的一種集群智能算法[22]。螞蟻覓食過程中會(huì)釋放一種叫作信息素的分泌物,螞蟻總是朝著更高信息素濃度方向移動(dòng)?;殳B矩陣的估計(jì)可以看成是螞蟻沿著信息素尋找食物的過程。最終所有螞蟻匯聚于相對(duì)于自己最優(yōu)的食物點(diǎn),形成若干個(gè)聚類中心,從而組成混疊矩陣A。 令預(yù)處理后的數(shù)據(jù)為Y,首先計(jì)算數(shù)據(jù)點(diǎn)之間的歐式距離,定義K均值優(yōu)化準(zhǔn)則。每個(gè)數(shù)據(jù)點(diǎn)i到其它數(shù)據(jù)點(diǎn)j的歐式距離如式(9)所示 (9) 式中:yk(i)表示i采樣點(diǎn)第k個(gè)觀測(cè)信號(hào)的數(shù)據(jù),k的最大值為m,即觀測(cè)信號(hào)的個(gè)數(shù)。 令螞蟻從數(shù)據(jù)點(diǎn)i到數(shù)據(jù)點(diǎn)j的路徑上產(chǎn)生的信息素為τij,則初始信息素矩陣定義為 (10) r為設(shè)定的閾值。dij≤r的數(shù)據(jù)被分為同一路徑,對(duì)同一路徑數(shù)據(jù)的坐標(biāo)求解算數(shù)平均值,即得到了初始聚類中心C0。再利用式(9)計(jì)算每個(gè)數(shù)據(jù)點(diǎn)到初始聚類中心的距離即K均值優(yōu)化準(zhǔn)則函數(shù) (11) 從而進(jìn)一步利用式(11)計(jì)算結(jié)果更新數(shù)據(jù)到初始聚類中心的信息素,最終數(shù)據(jù)點(diǎn)根據(jù)轉(zhuǎn)移概率進(jìn)行聚類合并,轉(zhuǎn)移概率如式(12) (12) (13) 式中:Yp(i)表示一個(gè)數(shù)據(jù)集合V(p)的第i個(gè)數(shù)據(jù),g為V(p)中元素個(gè)數(shù)。 對(duì)于每只螞蟻,將可行路徑中所有數(shù)據(jù)點(diǎn)與不同聚類中心的歐式距離之和作為目標(biāo)函數(shù) (14) 式中:l為觀測(cè)信號(hào)所有數(shù)據(jù)點(diǎn)的個(gè)數(shù),p為各個(gè)聚類中心索引。 目標(biāo)函數(shù)值越小,則聚類結(jié)果越緊湊。為了避免陷入局部最優(yōu)解,本文利用變異操作在每次迭代中隨機(jī)引入新的螞蟻可行路徑。計(jì)算變異后的臨時(shí)聚類中心及相應(yīng)的目標(biāo)函數(shù)Ftemp。隨后采取精英選擇策略,比較原始目標(biāo)函數(shù)值F與變異后的臨時(shí)目標(biāo)函數(shù)Ftemp,選取兩者較小值作為新的目標(biāo)函數(shù)值Fnew,將Fnew對(duì)應(yīng)的可行路徑作為最優(yōu)路徑,以此來(lái)得到全局最優(yōu)解。隨后計(jì)算新的聚類中心,重復(fù)迭代直至輸出最優(yōu)聚類中心Copt。 (15) 考慮到模型的欠定性與不同源信號(hào)之間的稀疏性, 本文使用貪婪最優(yōu)化思想迭代尋找每個(gè)采樣點(diǎn)的關(guān)鍵非零位置作為最優(yōu)的源信號(hào)。 兩個(gè)向量間的內(nèi)積值表明了向量在方向上的接近程度,內(nèi)積值越大則向量間的投影越大,相關(guān)性越大。本文算法以此為依據(jù)定義選擇最優(yōu)列原子的貪婪稀疏優(yōu)化決策。最優(yōu)列原子與觀測(cè)信號(hào)相關(guān)性最高表明了在該采樣點(diǎn)的所有源信號(hào)中,最優(yōu)列原子位置對(duì)應(yīng)的源信號(hào)的組成貢獻(xiàn)值最大,則該位置對(duì)應(yīng)的組成分量在源稀疏信號(hào)中具有非零值。組合每次迭代的最優(yōu)解即得到了貪婪全局最優(yōu)解。 在每次迭代選擇結(jié)束之前,為了排除已選列原子對(duì)下次迭代選擇的干擾,應(yīng)從前一次的觀測(cè)數(shù)據(jù)中減去已選列原子集合貢獻(xiàn)的分量部分作為殘差,如式(16)所示 (16) (17) 式中:n為混疊矩陣列數(shù),與源信號(hào)數(shù)目相同。 本文所提方法依靠上述貪婪最優(yōu)化思想,保證每次迭代中選擇的原子都是最優(yōu)的,從而減少迭代次數(shù)。因?yàn)榈鷶?shù)與稀疏信號(hào)的非零數(shù)目相同,因此該算法具有工作量少,計(jì)算速度快,程序易于調(diào)試等優(yōu)點(diǎn)。該方法能提高語(yǔ)音源信號(hào)的恢復(fù)性能,彌補(bǔ)了最短路徑法和平滑L0范數(shù)法所存在的問題。 通過上述原理分析,本文所提的欠定盲源分離算法流程如下: 欠定盲源分離算法 (7)將所選列向量添加到增量矩陣 A_new=A_new∪Aj (8)使用最小二乘法計(jì)算源信號(hào)的近似值 在源信號(hào)穩(wěn)定的情況下,可直接在頻域內(nèi)恢復(fù)源信號(hào),再通過逆傅里葉變換將頻域信號(hào)轉(zhuǎn)換成時(shí)域源信號(hào)。 (3)每一幀乘以逆漢寧窗,兩端各截去重疊部分的50%長(zhǎng)度:(L-d)/2,保留每幀的中間部分; 在Matlab 2017b環(huán)境下使用兩種不同類型的聲信號(hào)進(jìn)行仿真實(shí)驗(yàn)。其中,穩(wěn)定聲音源信號(hào)為來(lái)自于www.ac.upc.es/home/pau的六路長(zhǎng)笛源信號(hào),信號(hào)格式為.wav,采樣點(diǎn)選擇為35 000;不穩(wěn)定語(yǔ)音源信號(hào)來(lái)自于TIMIT數(shù)據(jù)庫(kù)的四路人聲信號(hào),信號(hào)格式為.wav,采樣點(diǎn)選擇為58 061。上述語(yǔ)音源信號(hào)分別經(jīng)過六路混疊矩陣A1和四路混疊矩陣A2混合,形成兩路觀測(cè)信號(hào),仿真實(shí)驗(yàn)中的混疊矩陣由人為設(shè)定,分別為 A1= 采用本文算法,進(jìn)行欠定盲源分離,以分離后恢復(fù)信號(hào)的信噪比SNR為評(píng)價(jià)指標(biāo)。具體實(shí)驗(yàn)及結(jié)果分析如下。 經(jīng)過六路混疊矩陣A1獲得的兩路笛聲觀測(cè)信號(hào)如圖5所示。對(duì)觀測(cè)信號(hào)進(jìn)行傅里葉變換,采用改進(jìn)蟻群聚類算法得到的聚類結(jié)果如圖6所示。圖中6個(gè)聚類中心坐標(biāo)分別代表了混疊矩陣的6個(gè)列向量?;殳B矩陣估計(jì)結(jié)果如下 圖5 兩路笛聲混疊信號(hào) 圖6 六路笛聲源信號(hào)蟻群聚類結(jié)果 在兩步法第二步恢復(fù)源信號(hào)實(shí)驗(yàn)中,將本文所提恢復(fù)算法與SL0恢復(fù)算法進(jìn)行仿真對(duì)比。SL0算法求解過程中采用的步長(zhǎng)μ=2,平滑L0函數(shù)的σ下降因子σdecrease_factor=0.5,迭代閾值σmin=0.001。分別討論了混疊矩陣列向量角度分布于0°~90°和0°~180°兩種不同范圍內(nèi)的恢復(fù)效果。在相同數(shù)目源信號(hào)前提下,混疊矩陣列向量的角度分布范圍越小表示不同源信號(hào)的來(lái)波方向接近。圖7為六路長(zhǎng)笛源信號(hào)。圖8(a)、圖8(b)分別為本文算法與SL0算法在混疊矩陣列向量角度分布于0°~90°范圍內(nèi)的源信號(hào)恢復(fù)結(jié)果。圖8(c)、圖8(d)分別為本文算法與SL0算法在混疊矩陣列向量角度分布于0°~180°范圍內(nèi)的源信號(hào)恢復(fù)結(jié)果。表1給出了這兩種方法在不同混疊角度范圍的六路恢復(fù)信號(hào)SNR結(jié)果。 表1 六路笛聲恢復(fù)信號(hào)的SNR指標(biāo)對(duì)比 圖7 六路笛聲源信號(hào) 圖8 六路笛聲不同混疊角度范圍下的恢復(fù)結(jié)果對(duì)比 經(jīng)過四路混疊矩陣A2獲得的兩路人聲語(yǔ)音觀測(cè)信號(hào)如圖9所示。對(duì)觀測(cè)信號(hào)進(jìn)行短時(shí)傅里葉變換,分幀幀長(zhǎng)為2048個(gè)采樣點(diǎn),幀移為614個(gè)采樣點(diǎn)。采用改進(jìn)蟻群聚類算法得到的聚類結(jié)果如圖10所示。圖中4個(gè)聚類中心分別代表了混疊矩陣的4個(gè)列向量?;殳B矩陣估計(jì)結(jié)果如下 圖9 兩路語(yǔ)音混疊信號(hào) 圖10 四路語(yǔ)音信號(hào)蟻群聚類結(jié)果 四路語(yǔ)音源信號(hào)如圖11所示。圖12(a)、圖12(b)分別為本文算法與SL0算法在混疊矩陣列向量角度分布于0°~90°范圍內(nèi)的恢復(fù)結(jié)果。圖12(c)、圖12(d)分別為本文算法與SL0算法在混疊矩陣列向量角度分布于0°~180°范圍內(nèi)的恢復(fù)結(jié)果。表2給出了這兩種方法在不同混疊角度范圍的四路恢復(fù)源信號(hào)SNR結(jié)果。 圖11 四路人聲源信號(hào) 圖12 四路人聲不同混疊角度范圍下的恢復(fù)結(jié)果對(duì)比 表2 四路語(yǔ)音恢復(fù)信號(hào)的SNR指標(biāo)對(duì)比 為了驗(yàn)證本文所提方法可以突破最短路徑法只能恢復(fù)兩路觀測(cè)信號(hào)的局限性。本實(shí)驗(yàn)使用三路觀測(cè)信號(hào)情況下的六路笛聲源信號(hào)進(jìn)行欠定盲源分離,混疊矩陣設(shè)定為 A= 恢復(fù)結(jié)果如圖13所示,恢復(fù)信號(hào)的SNR指標(biāo)見表3。通過恢復(fù)結(jié)果圖與SNR指標(biāo)可以看到:該方法可以成功恢復(fù)六路笛聲,實(shí)現(xiàn)了三路觀測(cè)信號(hào)的欠定盲源分離。 表3 三路觀測(cè)信號(hào)六路笛聲恢復(fù)信號(hào)的SNR指標(biāo) 圖13 六路笛聲三路觀測(cè)信號(hào)恢復(fù)結(jié)果 通過3.1節(jié)與3.2節(jié)的仿真實(shí)驗(yàn)結(jié)果可見:本文所提算法可以精確估計(jì)欠定混疊矩陣。當(dāng)混疊矩陣列向量角度分布范圍在0°~90°時(shí),無(wú)論是穩(wěn)定的笛聲源信號(hào)還是不穩(wěn)定的人聲語(yǔ)音源信號(hào),SL0范數(shù)恢復(fù)源信號(hào)的效果都欠佳,而本文方法仍然適用。當(dāng)混疊矩陣列向量角度分布范圍在0°~180°時(shí),本文方法與SL0算法恢復(fù)結(jié)果相近,恢復(fù)信號(hào)都具有較高的SNR指標(biāo)。由此可知本文方法的應(yīng)用范圍更廣,更符合實(shí)際情況。表1的SNR指標(biāo)普遍低于表2,這主要由于不穩(wěn)定語(yǔ)音源信號(hào)的高復(fù)雜性以及在獲取稀疏特征采取了短時(shí)處理和信號(hào)恢復(fù)重構(gòu)后處理等原因造成的。3.3節(jié)的仿真實(shí)驗(yàn)驗(yàn)證了本文算法不僅適用于兩路觀測(cè)信號(hào)的情況,而且適用于多通道數(shù)的觀測(cè)信號(hào)情況下的源信號(hào)恢復(fù)。 本文主要研究一種基于貪婪稀疏優(yōu)化的語(yǔ)音信號(hào)欠定盲分離方法。在稀疏分量分析方法的第一步采用改進(jìn)蟻群算法的K均值聚類算法對(duì)欠定混疊矩陣進(jìn)行估計(jì)。第二步將貪婪最優(yōu)化思想與稀疏分量分析方法相結(jié)合恢復(fù)語(yǔ)音源信號(hào)。實(shí)驗(yàn)結(jié)果表明,本文方法使用范圍更廣,可以較準(zhǔn)確地從多通道觀測(cè)信號(hào)中恢復(fù)信號(hào),可以有效提高來(lái)波方向較近的語(yǔ)音盲信號(hào)分離性能??紤]到在恢復(fù)不穩(wěn)定源信號(hào)時(shí),由于獲取信號(hào)稀疏特征時(shí)的短時(shí)分析和信號(hào)恢復(fù)時(shí)重構(gòu)后處理等原因造成的誤差。下一步的研究中將通過算法的改進(jìn)進(jìn)一步提高不穩(wěn)定源信號(hào)的恢復(fù)性能。1.2 語(yǔ)音信號(hào)在變換域中的稀疏特征獲取
2 欠定盲源分離兩步法
2.1 混疊矩陣估計(jì)原理
2.2 源信號(hào)恢復(fù)原理
2.3 欠定盲源分離算法步驟
2.4 重構(gòu)時(shí)域語(yǔ)音源信號(hào)
3 仿真實(shí)驗(yàn)及結(jié)果分析
3.1 六路長(zhǎng)笛信號(hào)欠定盲源分離
3.2 四路人聲信號(hào)欠定盲源分離
3.3 三路觀測(cè)信號(hào)欠定盲源分離
4 結(jié)束語(yǔ)