肖 超,全海燕
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
語音與樂音的混合信號中包含了很多信息,如說話人、語音內容和樂器旋律等[1]。語音與樂音混合信號的分離在語音識別[2]、音頻檢索、音頻高效解碼等領域都有重要應用。盲源分離(Blind Source Separation,BSS)是指在源信號和傳輸通道參數未知的情況下,根據其輸入源信號的統計特性,僅對觀測信號進行處理而恢復出源信號的過程[3]。在語音和樂音線性瞬時混合信號中,語音信號和樂音信號可認為是相互獨立的。當源信號各個分量具有獨立性時,盲源分離過程稱為獨立分量分析(Independent Component Analysis,ICA)[4]。
獨立分量分析需要利用準則函數判斷分離后各信號的獨立性[4],常用的準則函數有互信息最小化法[5]、負熵最大化法[6]、極大似然法[7]以及四階累積量等。獨立分量分析在分離混合信號時的核心問題是選取性能優越的優化算法使準則函數結果達到最優,常見的優化算法有遺傳算法[8]、牛頓法[9]以及粒子群算法(Particle Swarm Optimization,PSO)等[10]。這些傳統優化算法都具有一定局限性,如在全局最優收斂時對控制參數的依賴較高,在全局尋優時容易陷入局部極值點,算法收斂到最優點時刻有時方差偏大等。針對以上問題,本文提出一種基于單形鄰域與多角色進化策略的智能優化算法(Surface-Simplex Swarm Evolution,SSSE)[11],思想是根據粒子的單形鄰域特點,利用單形鄰域搜索機制與多角色進化搜索策略,可僅需設置種群數目這一個參數,在全隨機二維子空間中利用單形鄰域凸集逐步逼近與搜索定位進行尋優。該算法利用群體協作搜索和競爭選擇的方式,一定程度上改進了粒子勘探局部區域性能與算法整體收斂的性能,減少了對初始值的依賴。該算法在搜索方案中利用粒子多角色態實現粒子多樣化,改進了搜索的全局性。
本文用四階累積量作為獨立分量分析的準則函數,將單形鄰域與多角色進化策略作為優化算法與獨立分量分析相結合,對語音與樂音混合信號進行盲分離,通過搜索算子的全隨機搜索性與多角色態特性對準則函數進行優化,使分離效果達到最優。最后,在MATLAB 平臺上進行仿真實驗,結果表明本算法分離效果明顯。
ICA 問題模型可以描述為:

式中X(t)=[x1(t),x2(t),x3(t),…,xm(t)]T為m路觀測信號,S(t)=[s1(t),s2(t),s3(t),…,sn(t)]T是n路相互獨立的源信號,A為m×n維線性混合矩陣。獨立分量分析根據去相關性或非高斯性準則,求取一個解混矩陣B,進而從m路觀測信號X(t)中提取出n路分離信號Y(t)=[y1(t),y2(t),y3(t),…,yn(t)]T使其最接近于源信號S(t)。

求取解混矩陣B一般分為兩步:
(1)球化,這是預處理。通過對X(t)的相關矩陣進行特征值分解,再利用其特征向量組成球化矩陣W,對X(t)作變換得到X(t)去二階相關性的白化信號Z(t)。
(2)獨立化,這是優化問題。根據準則函數求取正交分離矩陣U,然后對白化信號Z(t)進行解混變換得到分離信號Y(t),最終求取解混矩陣B:

ICA 解混過程如圖1 所示。
ICA 主要解決的問題[12]:在混合矩陣A未知的情況下,通過準則函數及優化算法找到正交分離矩陣U的最優估計矩陣U1,然后使得分離信號Y(t)對源信號S(t)最為接近:

文獻[11]提出一種基于單形鄰域與多角色進化策略的智能優化算法(Surface-Simplex Swarm Evolution,SSSE)。這一新型的智能優化算法基本原理如下:首先以均勻分布的方式在搜索空間內隨機定位對粒子進行初始化;其次利用單形鄰域搜索算子搜索每個粒子的新位置,并通過準則函數的取值衡量每個粒子新位置的優劣;再次,根據粒子新位置的優劣,確定每個粒子對應的角色態(勘探角色態、開采角色態、中心角色態);最后,記錄本次迭代搜索中最優粒子和最優位置,結束本次迭代搜索。啟動下一迭代搜索,直到粒子收斂到全局最優點位置。文獻[11]有關于本算法的具體性能討論,這里給出一般步驟如下。
(1)在搜索空間中,將m個粒子以均勻分布的方式進行隨機定位初始化。

(2)在搜索空間Rn中,群體中的每個粒子i以均勻分布方式隨機選取兩個維度p和q,建構搜索子空間R2。此搜索子空間中,各粒子利用單形鄰域搜索算子和多角色態搜索策略搜索新位置,定義如下:

單形進化優化算法二維結構如圖2 所示。

圖2 SSSE 二維結構
(3)群體中的各個粒子i,利用步驟2 在搜索子空間R2搜索到的4 個新中心角色位置vic1(t+1)、vic2(t+1)、vic3(t+1)、vic4(t+1),保持其在其他維度上的位置不變,并更新每個粒子在Rn上的4 個新中心角色位置:

(4)各個粒子據準則函數進行評價優劣,確定各個粒子的3 個角色態——中心角色態,開采角色態,勘探角色態。
中心角色態:以貪婪性為原則,每個粒子搜索到的最優位置vic(t+1)。
開采角色態:以最近性為原則,定義為每個粒子搜索到的最新位置:

勘探角色態:以隨機均勻分布為原則,粒子以均勻分布在搜索空間隨機定位的位置vig(t+1)。
(5)記錄群體中當前最優粒子的位置voc(t+1),返回步驟2,開啟下一次迭代搜索,直到群體中粒子最后收斂到最優位置。
SSSE 算法流程如圖3 所示。

圖3 單形進化算法流程
為了提取獨立分量,需要確定一個目標函數作為分離信號的獨立性判據。由中心極限定理可知,非高斯程度可以作為逐次提取獨立分量時獨立程度的判據,而負熵可以衡量一個任意概率密度函數的非高斯程度[13]。本文采用四階累積量作為負熵的逼近,以判斷分離信號的獨立程度。

式中yi(i=1,2,3,…,n)是分離信號Y(t)的第i個分量,K4(yi)是yi的四階累積量,因為:

式中ui為正交分離矩陣U的第i個分量,又因為Z是球化矩陣,可得:

則:

代入式(16),可得:

四階累積量的絕對值越大,則表示各信號獨立性越強。在準則函數確定后,獨立分量分析可歸結為優化問題,即求取正交分離矩陣U的最優估計矩陣U1,對白化信號Z(t)進行逆變換,使得到分離信號Y(t)的四階累積量絕對值最大,各分量的獨立性最強。
基于單形鄰域與多角色進化策略的ICA 算法步驟如下。
(1)對m路混合信號作預處理。去均值,根據C(t)=X(t)-E[X(t)]對信號進行歸一化,使處理后信號的均值為零。白化,根據Z(t)=W C(t)進行白化處理,去除信號分量間的相關性,令變換之后的輸出變量相互之間獨立,得到白化信號Z(t)。其中,白化矩陣W=D-1/2ET,D為C(t)的特征值矩陣,E為C(t)的特征向量矩陣。
(2)在粒子群中選取w個粒子,隨機均勻分布在搜索空間中,每個粒子對應一個正交分離矩陣U(0),共產生w個隨機的正交分離矩陣。
(3)利用粒子群中每個粒子對應的正交分離矩陣U(k)進行粒子對鄰域搜索,得到最新的正交分離矩陣U(k+1)。
(4)每次都利用新得到的正交分離矩陣U(k+1)對白化信號Z(t)進行變換,得到最新分離信號Y(t)。
(5)利用式(21)對每個粒子最新分離信號Y(t)作判定,若,則更新最優粒子對應的正交分離矩陣U1;否則,不更新。如果最優粒子的準則函數值已收斂不變,進入步驟6;否則,跳到步驟3,展開下一次的搜索評價。
(6)利用最優粒子對應的正交分離矩陣U1對白化信號Z(t)進行變換,最終得到解混信號Y(t)。
SSSE-ICA 算法流程如圖4 所示。
實驗數據為錄音棚實際環境錄制信號,采樣頻率為16 kHz,數據長度為20 000 點的語音s1與樂音信號s2,二路源信號波形圖如圖5(a)所示,二路源信號語譜圖如圖5(b)所示。

圖4 基于單形進化算法的獨立分量分析流程

圖5 二路源信號

圖6 二路混疊信號
利用基于SSSE 算法構成的分離系統對語音與樂音混疊信號進行盲分離,得到分離后的輸出信號y1、y2波形圖如圖7(a)所示,語譜圖如圖7(b)所示。


圖7 二路分離信號
通過圖7(a)、圖7(b)與圖5(a)、圖5(b)的波形圖和語譜圖進行對照,可以看出分離后信號與源信號較為相似,說明本算法可以較好地提取出目標語音。為客觀驗證算法的有效性,利用信號的相似系數[14]評價分離的效果,公式如下:

式中yi為分離后信號,sj為輸入的源信號。當ri,j≈1時,認為yi是sj的較好估計。由于在盲源分離中,分離信號存在幅度與順序的差異,在相似系數矩陣中的每行每列中有且僅有一個元素接近于1 而其他元素接近于0 時,認為yi與sj較為接近,算法的分離效果較為理想。
對不同的初始矩陣混合信號,以四階累積量作為準則函數的SSSE-ICA 算法,對語音與樂音混疊信號進行大量盲分離測試,隨機選取其中3 次結果如表1 所示。

表1 不同初始矩陣下的性能指標
表1 中將語音與背景樂音分別在不同的3 個初始混合矩陣A1、A2、A3混疊,運用SSSE-ICA 算法進行分離,對應得到分離信號與源信號的相似系數矩陣分別為R1、R2、R3。從相似系數矩陣中可以看出,每行每列只有一個值接近于1 其他值接近于0,說明本算法在語音與背景樂音信號的混疊分離實驗中具有一定的有效性。與基于PSO、FastICA 等傳統算法相比較,本算法無需設置慣性因子、步長系數等控制參數。SSSE-ICA 算法在進行目標函數的優化過程中,以基于單形鄰域的全隨機的方式進行搜索,減少了對控制參數的依賴,有效避免了因參數設置不當而導致造成算法陷入局部最優甚至不收斂的問題。
語音信號是由人的肺部收縮產生氣流通過聲門使聲帶振動而發出的聲音,具有一定規律的波動性。樂音信號是由樂器本身或其部件振動產生的聲音,具有連貫性,兩者特征有一定差別。為進一步驗證算法的有效性,從TIMIT 語音庫中選兩路語音信號(女聲sa1、男聲sx414),從MIR-1K 數據庫選取兩路音樂信號(abjones_1_01.wav、abjones_2_01.wav)進行語音與語音混疊、樂音與樂音疊的分離實驗,實驗結果如表2 所示。

表2 二路語音和二路樂音的分離性能指標
從表2 可以看出,在不同的初始矩陣下,本算法對特征較為接近的信號進行分離效果也比較明顯。
SSSE-ICA 算法在對目標函數(四階累積量)進行優化的過程中,僅需設置種群數目這一個參數,通過群體協作搜索和競爭選擇的方式使算法粒子具有隨機性、多樣性的特點,保證了在整體尋優過程中的全局性。通過測試結果的相似系數可以看出,算法對不同的初始矩陣、不同的信號都能夠將混合信號進行分離并取得較好效果。本算法結構簡單,對參數設置要求低,尋優效果明顯。
本文結合單形鄰域進化與多角色進化策略,改進ICA 算法,并將其應用于語音與背景樂音混疊信號分離。測試實驗表明:算法對不同的隨機混合的信號均能有效搜索到獨立性判決函數(四階累積量)的最優點,較好地分離出源信號。通過分離后的波形圖和評價參數可見,分離后的人聲與樂聲都較為徹底。相對其他分離算法,本文改進算法的整個搜索過程為隨機搜索,只需要設定群體數量一個參數,降低了算法嵌入神經網絡的復雜度,避免了由于控制參數設置對算法性能的影響。同時,多角色態的進化搜索過程,保證了群體的多樣性與全局性,使得進化的種群個體可以有效搜索到最優解,可靠地分離出獨立分量。