閆 姝,徐 巖
(1.蘭州石化職業(yè)技術(shù)學(xué)院電子電氣工程學(xué)院,甘肅 蘭州 730060;2.蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅 蘭州 730070)
負(fù)熵最大化條件下的語音信號盲源分離技術(shù)研究
閆 姝1,徐 巖2
(1.蘭州石化職業(yè)技術(shù)學(xué)院電子電氣工程學(xué)院,甘肅 蘭州730060;2.蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅 蘭州730070)
語音信號盲源分離是在不知道源信號和傳輸信道任何先驗(yàn)知識的情況下,僅根據(jù)輸入語音源信號的統(tǒng)計(jì)特性,通過觀察信號恢復(fù)出各個獨(dú)立源信號的過程?;谪?fù)熵的FastICA算法的最大優(yōu)點(diǎn)在于其收斂速度較快,是一種性能較好的學(xué)習(xí)算法,在語音信號盲源分離應(yīng)用中具有較高的實(shí)用價(jià)值,但該算法存在計(jì)算量大的缺點(diǎn)。針對這一問題,提出了以負(fù)熵最大化作為目標(biāo)函數(shù),采用牛頓迭代法求解FastICA算法的方法。但由于牛頓迭代法求解非線性方程計(jì)算量較大,需改進(jìn)雅克比矩陣算式,并使用相關(guān)系數(shù)來觀察分離效果的優(yōu)劣。仿真分析結(jié)果證明,改進(jìn)后的算法由于未增加雅克比矩陣運(yùn)算次數(shù),所以收斂的迭代次數(shù)大幅度減少,使程序運(yùn)行時(shí)間顯著減小。該算法在兼顧算法收斂速度的同時(shí),提高了算法的性能,較好地恢復(fù)了源語音信號。
負(fù)熵最大化; 牛頓迭代; FastICA; 雅可比矩陣; 混合矩陣; 分離矩陣; 盲源分離; 語音增強(qiáng)
盲源分離(blindsoruceseparation,BSS)是指除了假設(shè)源信號統(tǒng)計(jì)獨(dú)立外,僅由觀測信號得到原始信號的過程[1]。獨(dú)立分量分析(independentcomponentanalysis,ICA)算法是較為有效的資源分離處理方法[2]。ICA算法利用源信號的獨(dú)立性和非高斯性,通??梢詣澐譃閮纱箢悾夯谛畔⒄摐?zhǔn)則的迭代估計(jì)法和基于統(tǒng)計(jì)學(xué)的代數(shù)方法。
FastICA作為經(jīng)典的ICA算法之一,由芬蘭赫爾辛基工業(yè)大學(xué)的Hyvarien等在1997年提出。作為一種快速尋優(yōu)迭代算法,F(xiàn)astICA在每一步迭代中需有大量的樣本數(shù)據(jù)參與運(yùn)算?;谪?fù)熵的FastICA算法采用基于負(fù)熵最大化判據(jù)的方法,依托非高斯性最大化原理,通過負(fù)熵最大化目標(biāo)函數(shù),使用固定點(diǎn)迭代理論尋找wTX的非高斯性最大值,實(shí)現(xiàn)對分離信號的最佳估計(jì)。
1.1盲源分離問題
盲源分離問題的研究對象,是由n維相互獨(dú)立的信號源S(t)混迭形成的m維觀測信號X(t)所產(chǎn)生的。盲源分離系統(tǒng)原理圖[3]如圖1所示。

圖1 盲源分離系統(tǒng)原理圖
根據(jù)圖1,對盲源分離系統(tǒng)建立混合數(shù)學(xué)模型[4]:
X(t)=AS(t)+n(t)
(1)
式中:S(t)為n維未知源信號矢量;S(t)=[s1(t),s2(t),…,sn(t)]T,si(t)(i=1,2,…,n)為n個相互獨(dú)立的隨機(jī)信號;A為未知混合矩陣,A=(aij),j=1,2,…,m;X(t)為m維觀測信號矢量X(t)=[x1(t),x2(t),…,xm(t)]T,每個觀測信號xi(t)都是d個未知信號s(t)的線性組合;n(t)為m維加性觀測噪聲,n(t)=[n1(t),n2(t),…,nm(t)]T。
估計(jì)矢量Y(t)如式(2)所示。
Y(t)=WX(t)
(2)
若不考慮加性噪聲影響,式(2)可簡化為:
Y(t)=WX(t)=WAS(t)=PS(t)
(3)
式中:向量Y(t)和S(t)的近似程度用矩陣P來表示。P是一個n×n的矩陣,稱為系統(tǒng)矩陣。盲源分離的問題就是估計(jì)W,即在源信號S(t)和混合矩陣A未知的情況下,求一個m×n的分離矩陣W(反混合矩陣)[5]。
ICA的發(fā)展與BSS緊密相連。在源信號相互統(tǒng)計(jì)獨(dú)立的假設(shè)前提下,可以認(rèn)為ICA與BSS的提法是完全一致的[6]。ICA算法目的就是找到混合信號的一個分離矩陣,其實(shí)質(zhì)是線性變換矩陣,使輸出盡可能地獨(dú)立,即Y(t)=PS(t)。向量Y(t)是源信號S(t)的估計(jì),若S(t)=Y(t),即達(dá)到了恢復(fù)信號的目的。實(shí)際上,當(dāng)矩陣P的各行各列只有一個元素接近1,其他元素接近0,就可以認(rèn)為分離成功。
1.2FastICA算法
負(fù)熵最大化也稱為信息傳輸最大化,是較為重要的非高斯性度量方法,在SNR較高的條件下,輸入/輸出之間信息量越大,它們之間的冗余量就越小。想要使輸出的分量相互統(tǒng)計(jì)獨(dú)立,則要使負(fù)熵最大化,即對應(yīng)的互信息量最小。
假設(shè)輸入X(t)=[x1(t),x2(t),…,xm(t)]T的概率密度函數(shù)為p1,高斯概率密度函數(shù)為pg,且p1、pg有相同的均值和方差。通過KL散度給出負(fù)熵定義[7],如式(4)所示。

(4)
由式(4)可以得到p1(x)與高斯分布的相似程度。負(fù)熵的值是一個正數(shù),或者當(dāng)x為高斯分布時(shí)其值為0。由于負(fù)熵需要計(jì)算變量的概率密度函數(shù),為了簡化,常采用近似計(jì)算。
基于上述理論可以得知,系統(tǒng)輸出負(fù)熵的最大化可以導(dǎo)致信號的分離,負(fù)熵的取值為非負(fù)性,當(dāng)且僅當(dāng)信號都是高斯分布時(shí)負(fù)熵的值為0,而且對y的任意線性變不受影響。所以負(fù)熵是一個很好的目標(biāo)函數(shù),可以用來描述一個分布與高斯分布的差異程度。式(5)為負(fù)熵和互信息兩者之間的關(guān)系[8]。

(5)
式中:Ji(yi)為yi的負(fù)熵;C為y的協(xié)方差矩陣;Cii為矩陣C的對角元素。

(6)

(7)
FastICA算法是獨(dú)立分量分析中常用的一種快速算法。該算法的實(shí)質(zhì)是一種快速尋優(yōu)迭代算法,在每一步迭代中有大量的樣本數(shù)據(jù)參與運(yùn)算。負(fù)熵最大化作為FastICA算法的目標(biāo)函數(shù),得到的優(yōu)化函數(shù)如式(8)所示[9]。

(8)
式中:ki為一個正常數(shù);v為一個高斯隨機(jī)變量,并且v的均值和單位方差為0。
假設(shè)y具有和隨機(jī)變量v相同的形式,Gi(x)是一個非二次函數(shù)。當(dāng)p=1時(shí),負(fù)熵可以近似表示為式(9)。
J(y)∝{E[G(y)]-E[G(v)]}2
(9)
由式(2)可得:y=wTX。其中:X為接收到的混合矩陣;y為一個獨(dú)立成分;w為分離矩陣W的任意一行。可將負(fù)熵的近似函數(shù)表述為式(10)[10]。
JG(W)∝{E[G(wTX)]-E[G(v)]}2
(10)
此時(shí)該問題就是求解分離矩陣W,可轉(zhuǎn)化為求解信號y=wTX,使得JG(W)達(dá)到最大值。又因?yàn)镋[wTx)2]=1,所以目標(biāo)函數(shù)可寫為:
(11)
在Kuhn-Tucker條件下,該問題轉(zhuǎn)化為無限制的優(yōu)化問題,進(jìn)而得到目標(biāo)函數(shù):
F(w)=E[G(wTX)]+c(‖w‖2-1)
(12)
式中:c為常數(shù)。
用牛頓法求解該目標(biāo)函數(shù)的最優(yōu)解,可得快速ICA算法的迭代公式:
(13)
在利用牛頓迭代法求解非線性方程過程中,為了減少求雅克比矩陣的次數(shù),對牛頓迭代法進(jìn)行改進(jìn),即迭代過程的雅克比矩陣均為J(w0),得到迭代公式:

(14)
該改進(jìn)方法雖然能減少計(jì)算量,但卻降低了迭代的收斂速度,有可能導(dǎo)致算法最后不能收斂,所以這種方法并不理想。本文提出的改進(jìn)算法從減少計(jì)算量的角度出發(fā),由于未增加雅克比矩陣次數(shù),所以大幅度減少了收斂的迭代次數(shù)。假設(shè)wk已知,則wk+1為:
(15)
式中:收斂階為m+1,且m每次迭代只需要計(jì)算1次J(w)。因此,該方法減少了計(jì)算量,提高了迭代速度。當(dāng)m=2時(shí),式(15)可以簡化為式(16)。

(16)
將F(wk)和J(wk)所表示的內(nèi)容代入式(16),就是改進(jìn)的FastICA在m=2時(shí)算法的迭代過程。
改進(jìn)后的FastICA迭代算法步驟如下。
①選擇初始隨機(jī)權(quán)值矢量w0。
②用式(16)更新wk+1。
③歸一化wk+1。

(17)
④如果|wk+1-wk|>ε,說明算法不收斂,返回步驟②;否則,計(jì)算出一個獨(dú)立成分,算法結(jié)束。
由于在算法中每次只提取一個獨(dú)立成分,在進(jìn)行算法分離過程中,為避免重復(fù)抽取,每次提取后必須從觀測信號中刪減該獨(dú)立成分。如此循環(huán),直到所有的獨(dú)立成分全部抽取出來。抽取計(jì)算式為:
(18)
仿真采用MatlabR2011a作為仿真工具,源信號是自行錄制的3個相互統(tǒng)計(jì)獨(dú)立的聲音信號。先驗(yàn)條件是假設(shè)源信號相互獨(dú)立。為保證算法有效性,對已錄的3個語音信號進(jìn)行測試,得到其相關(guān)系數(shù)分別為rs1s2=0.0070、rs1s3=0.0015、rs2s3=0.0185。測試3個語音信號的相關(guān)系數(shù)值rxy<0.2,可近似認(rèn)為其相互獨(dú)立。
源信號仿真結(jié)果如圖2所示。

圖2 源信號仿真圖
由系統(tǒng)隨機(jī)產(chǎn)生混合矩陣A,考慮m=n,得:

(19)
盡管混合矩陣A是系統(tǒng)生成的,但是所研究對象是觀測信號,所以對信號分離沒有影響。不考慮加性噪聲的影響,在接收端可以得到觀測信號X(t)=AS(t)。觀測信號仿真結(jié)果如圖3所示。

圖3 觀測信號仿真圖
通過計(jì)算求得分離矩陣,同時(shí)生成解混信號。
分離W1矩陣為:
(20)
改進(jìn)前的解混信號仿真結(jié)果如圖4所示。
在仿真測試中,分離信號的順序與源信號的順序不一致,這就表明恢復(fù)信號的排列順序有不確定性。具體對應(yīng)關(guān)系為語音信號S1對應(yīng)解混信號1,語音信號S2對應(yīng)解混信號3,語音信號S3對應(yīng)解混信號2。對比圖4和圖2可知,經(jīng)過基于負(fù)熵最大化的FastICA算法,可以大致恢復(fù)源信號。
保持混合矩陣A不變,即觀測信號不變,應(yīng)用基于牛頓迭代法的改進(jìn)算法來實(shí)現(xiàn)語音信號的分離,得到改進(jìn)后的解混信號仿真結(jié)果如圖5所示。
對比圖5和圖2可知,采用改進(jìn)后的算法,分離后的信號與源信號基本一致。經(jīng)計(jì)算,F(xiàn)astICA算法程序所用時(shí)間為1.024s,改進(jìn)后程序所用時(shí)間為0.5735s。改進(jìn)后算法所用的時(shí)間明顯少于未改進(jìn)算法,這表明算法的速度得到提高,即算法更加收斂。

圖4 解混信號仿真圖(改進(jìn)前)

圖5 解混信號仿真圖(改進(jìn)后)
從仿真結(jié)果分析得知,基于牛頓迭代法的改進(jìn)FastICA算法有效地實(shí)現(xiàn)了信號分離。從減少計(jì)算量的角度出發(fā),改進(jìn)后的算法,由于未增加雅克比矩陣次數(shù),收斂的迭代次數(shù)大幅度減少,程序運(yùn)行時(shí)間顯著縮短,算法更加高效。
[1] 馬建芬.語音信號盲分離與增強(qiáng)算法的研究[M].北京:電子工業(yè)出版社,2012.
[2] 徐巖,王春麗.語音信號增強(qiáng)及其應(yīng)用[M].北京:科學(xué)出版社,2014.
[3] 余先川,胡丹.盲源分離理論與應(yīng)用[M].北京:科學(xué)出版社,2011.
[4] 同曉榮.獨(dú)立分量分析盲源分離研究[J].微型電腦應(yīng)用,2017,33(1):39-41.
[5] 高建彬.盲源分離算法及相關(guān)理論研究[D].成都:電子科技大學(xué),2012:1-25.
[6] 吳微,彭華,張帆.FSATICA和ROBUSTICA算法在盲源分離中的性能分析[J].計(jì)算機(jī)應(yīng)用研究,2014,31(1):95-98.
[7] 李智明.基于改進(jìn)FastICA算法的混合語音盲分離[D].上海:上海交通大學(xué),2015:29-33.
[8] 白琳,陳豪.一種語言信號欠定盲分離的新方法[J].空間電子技術(shù),2012(2):16-19.
[9] 陳豪,白琳,周治宇.盲源分離技術(shù)的發(fā)展及應(yīng)用淺談[J].空間電子技術(shù),2013(1):1-6.
[10]張?jiān)?負(fù)熵最大化的FASTICA心電消噪研究[D].太原:太原理工大學(xué),2012:32-33.
ResearchontheBlindSourceSeparationTechnologyofSpeechSignalsunderNegativeEntropyMaximization
YAN Shu1,XU Yan2
(1.School of Electronic and Electrical Engineering,Lanzhou Petrochemical College of Vocational Technology,Lanzhou730060,China;
2.School of Electronic and Information Engineering,Lanzhou JiaoTong University,Lanzhou730070,China)
Voice signal blind source separation is the recovery process of each independent source signal,by observing signals and only in accordance with the statistical characteristics of the input speech source signals,without any prior knowledge about the source signal and transmission channel.The negative entropy based FastICA algorithm is a learning algorithm with better performance,its biggest advantage is fast convergence,and it has a good practical value in the application of blind source separation of voice signals; but the disadvantage of the algorithm is large amount of calculation.To solve this problem,the negative entropy maximization is used as the objective function,and FastICA formula is solved by Newton iterative method.Because the process of Newton iterative method for solving nonlinear equations still has a large amount of calculation,the Jacobian matrix formula is studied and improved; the correlation coefficient is used to observe the effect of separation.The results of simulation analysis prove that the improved algorithm does not increase the operation times of Jacobian matrix,so the number of iterations of convergence is greatly reduced and the running time of programs significantly decreased.Besides convergence speed,the algorithm also improves the performance,it well recovers the source voice signal.
Negative entropy maximization; Newton iteration; FastICA; Jacobian matrix; Mixed matrix; Separation matrix; Blind source separation; Speech enhancement
TH841;TP301.6
10.16086/j.cnki.issn1000-0380.201710012
修改稿收到日期:2017-06-06
國家自然科學(xué)基金資助項(xiàng)目(61461024)
閆姝(1984—),女,碩士,講師,主要從事多媒體信息處理方向的研究。E-mail274143818@qq.com。