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














2 欠定盲源分離兩步法

2.1 混疊矩陣估計原理


2.2 源信號恢復原理





2.3 欠定盲源分離算法步驟





2.4 重構時域語音源信號


3 仿真實驗及結果分析


3.1 六路長笛信號欠定盲源分離







3.2 四路人聲信號欠定盲源分離






3.3 三路觀測信號欠定盲源分離



4 結束語