康 坊 楊飛然 楊 軍
(1 中國科學(xué)院聲學(xué)研究所 北京 100190)
(2 中國科學(xué)院大學(xué) 北京 100049)
盲源分離(Blind source separation, BSS)旨在將感興趣的信號從混合信號當中分離出來,可廣泛應(yīng)用于聲頻信號處理領(lǐng)域,其中一個重要應(yīng)用是語聲分離。相較于有監(jiān)督的分離算法[1],BSS 可以在沒有任何傳輸信道信息和聲源先驗信息的情況下從卷積混合的觀測信號中無監(jiān)督地分離出原始聲源。頻域獨立成分分析(Independent component analysis, ICA)[2?5]作為解決卷積BSS 問題的一類廣泛且經(jīng)典的方法,需要在各個頻點上獨立建模并獨立分離源信號的各個頻率成分,因此無法確保不同頻點間聲源順序的一致性,即存在順序模糊性問題。獨立向量分析(Independent vector analysis, IVA)[6]以及其改進的輔助函數(shù)IVA(Auxiliaryfunction IVA, AuxIVA)[7]通過在全頻帶建立球?qū)ΨQ聯(lián)合概率密度函數(shù),使得同一聲源的各頻率成分具有統(tǒng)一的頻間依賴性,有效地減輕了順序模糊性問題,提高了分離性能。然而,統(tǒng)一的頻間依賴假設(shè)導(dǎo)致聲源模型缺少靈活性,可能導(dǎo)致子帶間出現(xiàn)順序錯排的問題。為了更好地表征聲頻信號中相近頻點或諧波頻點的依賴性要強于較遠頻點的特點,基于子帶依賴性假設(shè)的聲源模型[8?10]被提出以用于增強相關(guān)頻點、弱化不相關(guān)頻點的依賴性。此外,為了提高AuxIVA 算法的收斂速度和穩(wěn)定性,改進的快速迭代IVA(本文簡稱Fast AuxIVA)算法[11]通過秩1 更新的方式來估計分離信號,避免估計分離濾波器帶來的矩陣求逆,降低計算復(fù)雜度和數(shù)值不穩(wěn)定性,但并未提升分離性能。
為了進一步提升IVA 算法在語聲分離任務(wù)中的分離性能和穩(wěn)定性,本文提出一種基于子帶聲源模型的快速IVA 算法,并采用更適合語聲信號重尾特性的t分布[12]作為聲源概率密度函數(shù)。該算法首先根據(jù)信號特性將全頻帶劃分為多個子帶,其中包含一個重疊子帶,在各個子帶內(nèi)假設(shè)聲源服從聯(lián)合t 分布,由于子帶間的重疊設(shè)置使得各個子帶間依然具有頻間依賴性。此外,該算法將聲源模型聯(lián)合秩1 更新方法,推導(dǎo)出新的空間模型參數(shù)優(yōu)化準則,在基于子帶t 分布的聲源模型下實現(xiàn)混合語聲信號的快速分離。實驗結(jié)果表明,本文提出的算法能夠在少量的迭代次數(shù)下取得比目前已有的IVA 算法更好的語聲分離性能。
假設(shè)正定BSS 中N個聲源信號由N個傳聲器信號接收,聲源信號、估計的聲源信號以及觀測信號的頻域復(fù)數(shù)表示分別為
其中,i= 1,2,··· ,I為頻率索引(I為頻點數(shù)),j= 1,2,··· ,J為時間索引(J是幀數(shù)),(·)T表示矩陣轉(zhuǎn)置。經(jīng)過短時傅里葉變換(Short-time Fourier transform, STFT)后,時域卷積混合模型可以變換到頻域瞬時混合模型,
其中,Ai是N ×N的混合矩陣。當Ai可逆時,混合矩陣Wi=(wi1,wi2,··· ,wiN)H可以被定義成Ai的逆矩陣,因此分離信號yij可以通過以下公式恢復(fù)得到,
其中,wi,n=(wi,n1,wi,n2,··· ,wi,nN)T是第n個聲源的分離向量,(·)H表示矩陣共軛轉(zhuǎn)置。
在IVA 中,根據(jù)式(5)以及聲源間的獨立性假設(shè),觀測信號xij在所有時間幀上的負對數(shù)似然函數(shù)可表示為
其中,G(yj,n)=?logp(yj,n)為對比函數(shù)。在超高斯假設(shè)下,聲源的概率密度函數(shù)p(yj,n)可表示為
其中,G(·)需要滿足φ(r)=G′(r)/(2r)在r >0 時單調(diào)遞減,(·)′表示微分。分離矩陣Wi可以通過最小化式(6)中的目標函數(shù)得到,進而估計出分離信號yij。
為了更快更穩(wěn)定地優(yōu)化分離矩陣,AuxIVA 算法構(gòu)建輔助目標函數(shù)Q()代替直接求解
其中,Vi,n是輔助變量。 通過不斷最小化Q()和更新輔助變量Vi,n來逼近原函數(shù)的最優(yōu)解,因此得到以下迭代準則:
其中,en是第n個元素為1 的單位向量。上述迭代準則適用于多種聲源模型,但需要在每次迭代時計算N個輔助變量矩陣和N個矩陣的逆。此外,當矩陣病態(tài)時,求逆操作在迭代過程中可能導(dǎo)致數(shù)值不穩(wěn)定。
為了避免矩陣求逆,降低計算復(fù)雜度,文獻[11]提出一種秩1更新的方式來優(yōu)化Wi,
其中,vi,n=(vi,n1,vi,n1,··· ,vi,nN)T是待估計的優(yōu)化向量。將式(13)代入輔助函數(shù)Q得到
最小化上述目標函數(shù)可得到vi,n的優(yōu)化準則,
根據(jù)式(13),得到y(tǒng)ij新的計算公式:
因此分離信號的估計不需要計算分離矩陣Wi,與迭代過程式(9)~(12)不同,F(xiàn)ast AuxIVA 的迭代過程式(15)~(16)不需要矩陣求逆操作。
為了增強聲源模型相鄰頻點間的依賴性來避免分離過程中出現(xiàn)的順序模糊性問題,本文將全頻帶劃分為C個子帶,并假設(shè)聲源在各子帶內(nèi)獨立服從如下分布:
其中,Ycj,n={yij,n}i∈?c,?c表示第c個子帶內(nèi)的頻點集合,κ是自由度參數(shù),κ越大,分布越接近于高斯分布,σcj,n是第c個子帶的時變尺度參數(shù)。由于語聲信號的時變特性,在不同時間幀上引入不同的時變參數(shù)σcj,n更有利于表示聲源的能量變化情況,且同一子帶內(nèi)的所有頻點共用相同的σcj,n,建立了頻率間的依賴性。前C ?1 個子帶采用無重疊劃分方式,保證子帶內(nèi)的頻點擁有一致的高階依賴性。但無重疊的設(shè)置會讓子帶間缺少依賴性而導(dǎo)致帶間的順序不確定問題,因此在第C個子帶中包含了所有頻點,與其他子帶均有重疊,增加子帶間的依賴性,從而避免了子帶間順序校正的后處理操作。將式(17)中的聲源模型代入目標函數(shù)式(6)可得
σcj,n的估計可通過對得到,其中N?c表示集合?c的元素個數(shù)。σcj,n可以看作是對當前時刻的信號能量求期望,能夠表示聲源在時間維度上的活動情況。此外,同一子帶內(nèi)的各個頻點共用相同的σcj,n,這說明子帶內(nèi)的各頻點信號協(xié)同出現(xiàn),具有較強的頻間依賴性。
其中,
可以看作是第c個子帶內(nèi),觀測信號的加權(quán)協(xié)方差矩陣。當輔助變量時,式(19)中等號成立。為了快速估計分離信號,將本文采用的聲源模型與秩1 更新的優(yōu)化方法結(jié)合,推導(dǎo)出新的空間參數(shù)優(yōu)化準則。首先將分離矩陣的更新方式(式(16))代入式(19)得到目標函數(shù):
通過最小化Q(vi,n)得到關(guān)于vi,n的如下優(yōu)化準則:
其中,?i表示包含第i個頻點的子帶集合。由于子帶的重疊設(shè)置,在計算頻點i上的輔助變量vi,nm時,需要考慮所包含該頻點的所有子帶內(nèi)的信息。這說明在參數(shù)估計中引入了頻帶間的依賴性,從而避免子帶間的聲源順序錯排問題。
通過上述迭代準則,交替更新式(22)和式(16),避免了分離矩陣的更新和存儲以及矩陣求逆操作,并且可在少量的迭代后達到收斂。最后的分離信號yij通過(16)計算得到。
計算復(fù)雜度是衡量算法性能的重要指標之一,本節(jié)將重點分析AuxIVA、Fast AuxIVA 和所提出的算法在更新過程中的復(fù)雜度。在AuxIVA 中,計算復(fù)雜度主要取決于協(xié)方差矩陣Vi,n的計算和分離矩陣Wi的計算。以復(fù)數(shù)乘法為單位,在各頻點上Vi,n的復(fù)雜度為O(N3J),Wi的復(fù)雜度為O(N4)。通常情況下,幀數(shù)J遠大于聲源個數(shù),因此,在一次迭代中遍歷所有頻點,AuxIVA 所需的計算復(fù)雜度為
Fast AuxIVA的計算復(fù)雜度主要取決于式(15)中vi,nm的計算。在一次迭代中,遍歷所有頻點和聲源所需的計算復(fù)雜度為
該計算量相當于AuxIVA算法計算一次協(xié)方差矩陣的計算量,因此需要計算協(xié)方差矩陣的分離算法,其計算復(fù)雜度均要大于Fast AuxIVA算法。
在提出的基于子帶t 分布的Fast AuxIVA 中,由于重疊子帶的引入,計算重疊頻點的參數(shù)時需要對重疊子帶個數(shù)Nc求和,而t 分布的聲源模型相較于傳統(tǒng)模型未增加額外的計算量,因此計算復(fù)雜度為
本文提出的模型中,僅采用一個全頻點子帶與來建立其他非重疊子帶間的依賴性,因此Nc= 2 ≤N。由此可得,基于子帶t 分布的Fast AuxIVA復(fù)雜度滿足
所提算法在更新參數(shù)時所需的計算復(fù)雜度介于傳統(tǒng)AuxIVA算法和Fast AuxIVA算法之間。
分離實驗所需要的房間脈沖響應(yīng)來自RWCP庫[13]中實際測量的不同場景下的混響數(shù)據(jù),分別為E2A(RT60= 300 ms)、JR2(RT60= 470 ms)、JR1(RT60= 600 ms)、OFC(RT60= 780 ms)和E2B(RT60= 1300 ms)。以兩種不同聲源位置布局的E2A 和JR2 為例,實驗環(huán)境設(shè)置如圖1 所示。對于純凈語聲數(shù)據(jù),從TIMIT 數(shù)據(jù)庫[14]中隨機選擇120 位錄制者、長度為8 s 的測試語料。在兩聲源混合(N= 2)中,測試語料分別與不同混響時間的脈沖響應(yīng)卷積得到混合數(shù)據(jù)(包括男-男混合、男-女混合和女-女混合各20 組)。所有的數(shù)據(jù)采樣率為16000 Hz。對于混響時間為300 ms 的混合信號,STFT窗長為256 ms;對混響時間大于300 ms的混合信號,STFT 窗長為512 ms,幀移均為1/4 窗長。在AuxIVA 算法中,Wi初始化為單位矩陣。在所有算法中總迭代次數(shù)設(shè)置為10N。選擇BSS EVAL 3.0[15]中的信號干擾比(Signal to interference ratio, SIR)和信號失真比(Signal to distortion ratio,SDR)作為分離性能的評價指標。
圖1 實驗環(huán)境設(shè)置Fig.1 Simulated room environment
子帶劃分方式會影響聲源頻點間的依賴程度。為了探討不同的劃分方式對分離性能的影響,本文測試了在4 種不同的劃分方式下SIR 和SDR 的提升結(jié)果。如圖2 所示,圖2(a)~圖2(d)分別為重疊子帶均勻劃分、重疊子帶非均勻劃分、無重疊子帶均勻劃分和無重疊子帶非均勻劃分,其中在無重疊劃分中為了避免子帶間的模糊性,額外引入一個全頻點子帶。
圖2 不同子帶劃分方式Fig.2 Different frequency clique divisions
按照圖2 中的劃分方式,在E2A(聲源位置50?和130?)和JR2 下進行分離實驗,其中κ= 1。圖3給出了各子帶劃分方式在30 組獨立實驗下的平均分離結(jié)果。從圖3 中可以看出,在混響時間較短的E2A下,不同的子帶劃分方式對分離性能的影響較小。這是因為當混響時間較短時,STFT窗長更能覆蓋房間脈沖響應(yīng)長度,頻域瞬時模型的假設(shè)更容易成立,分離任務(wù)簡單。由于在簡單的分離任務(wù)下發(fā)生順序模糊性的概率較低,所以避免模糊性的子帶模型作用相對不明顯。當混響時間增加,如圖3(b)所示,分離任務(wù)難度增大,此時對聲源模型的準確性要求更高,不同的子帶劃分方式對分離結(jié)果影響較大。在4 種劃分方式中,無重疊劃分要略優(yōu)于重疊子帶劃分,其中無重疊均勻劃分取得了最優(yōu)的分離結(jié)果。因為重疊子帶劃分方式會使得同一子帶內(nèi)重疊部分的頻點與非重疊部分頻點間聲源模型參數(shù)不一致,而無重疊子帶劃分方式保留了子帶內(nèi)頻點間統(tǒng)一的依賴性,更有利于避免順序模糊性問題。根據(jù)此實驗結(jié)果,在后續(xù)實驗中均選用如圖2(c)所示的無重疊均勻劃分方式。
圖3 不同子帶劃分方式下的分離性能Fig.3 Separation performance with different frequency clique divisions
為了探討提出的改進算法在不同t 分布自由度下的分離性能, 分別設(shè)置自由度為κ={1,2,5,10,50,100}。每種自由度設(shè)置下,實驗結(jié)果是60 組混合數(shù)據(jù)分離后的平均值。其中E2A 下聲源位置選擇50?和130?。
從圖4 中可以看出,無論是在混響時間300 ms還是470 ms 時,改進的算法在自由度κ= 1 時分離性能最優(yōu)。隨著自由度κ的增大,假設(shè)的聲源概率密度函數(shù)逐漸接近高斯分布,分離性能逐漸下降,這也說明語聲信號的分布更符合重尾分布,在合適的聲源模型下能取得更好的分離結(jié)果。因此,在后續(xù)實驗中,經(jīng)驗選取自由度κ=1。
圖4 不同自由度下所提算法的分離性能Fig.4 Separation performance with different κ
本文對比了傳統(tǒng)AuxIVA[7]和Fast AuxIVA[11]算法,并將子帶超高斯模型引入到AuxIVA 和Fast AuxIVA中,來進一步對比驗證子帶t分布模型的合理性和有效性。在每種實驗條件下,對30 組混合數(shù)據(jù)分離后的平均結(jié)果進行了對比。首先驗證了上述算法在不同聲源位置下的分離性能。各聲源組合為圖1(a)E2A中的聲源位置(10?,90?)、(10?,170?)、(50?,70?)、(50?,130?)和(130?,170?)。
圖5 給出了不同聲源位置下,各算法的SIR 和SDR 結(jié)果。可以看出引入子帶模型后,各算法均有較明顯的性能提升,說明子帶模型更能表示聲源內(nèi)相鄰頻點比相距較遠頻點有更高頻間依賴性的特征。在子帶模型中,基于t分布的改進算法取得了整體最優(yōu)的分離性能,也進一步說明t 分布比傳統(tǒng)超高斯分布更符合語聲信號的重尾特性。此外,對于相距較近的聲源,所有算法的分離性能均有所下降,這是因為當聲源位置較近時,不同聲源與傳聲器之間的傳遞函數(shù)相似度更高,在估計各個聲源的分離濾波器時難度也越大。
圖5 不同聲源位置下的分離性能對比Fig.5 Comparison of different algorithms for different source locations
為了進一步驗證算法的分離性能,給出了不同混響時間下各算法的SIR 和SDR 提升結(jié)果。除JR2 聲源位置布放為60?和120?,其他混響時間下聲源位置均選擇50?和130?。從圖6中可以看出,混響時間對分離性能影響明顯,但混響超過300 ms的條件下,分離性能變化較小。其中一個原因是超過300 ms 的數(shù)據(jù)均采用一樣的STFT 窗長,信號在各頻點上的時間序列長度相同,因此分離信號滿足統(tǒng)計獨立性假設(shè)的程度類似。此外,當混響嚴重時,子帶劃分的聲源模型要比傳統(tǒng)模型的性能提升更加明顯,這是因為隨著分離難度的增加,分離算法對聲源模型的準確性要求更高,一個更精確的聲源模型能夠取得更好的分離結(jié)果。改進的基于子帶t 分布的聲源模型,在各混響條件下均取得了最優(yōu)的分離性能,這也進一步說明了該模型更適合語聲分離任務(wù)。
圖6 不同混響時間下的分離性能對比Fig.6 Comparison of different algorithms for different reverberation time
除了分析不同算法的分離性能之外,本文也比較了上述5 種算法在本文參數(shù)設(shè)置下的計算復(fù)雜度。與所提算法相似,子帶AuxIVA 和子帶Fast AuxIVA 的計算復(fù)雜度相較于各自對應(yīng)的非子帶模型而言,其區(qū)別在于重疊子帶個數(shù)的設(shè)置。因此,子帶Fast AuxIVA 和所提出的算法具有相同的計算復(fù)雜度。各算法在更新參數(shù)時的復(fù)數(shù)乘法次數(shù)結(jié)果如圖7所示。
圖7 計算復(fù)雜度對比Fig.7 Computational complexity comparison
從圖7 可以看出,各算法的計算復(fù)雜度差異隨著分離通道數(shù)(即分離聲源個數(shù))的增加而愈加明顯。在所有算法中,F(xiàn)ast AuxIVA 并未進行子帶劃分,因此計算復(fù)雜度最低。子帶(t 分布)Fast AuxIVA 復(fù)雜度略高于Fast AuxIVA,但卻明顯低于未采用快速迭代的AuxIVA 及其子帶算法。結(jié)合分離結(jié)果可以看出,與Fast AuxIVA 相比,子帶(t分布)Fast AuxIVA在輕微增加計算代價的情況下,實現(xiàn)了分離性能的明顯提升;與傳統(tǒng)AuxIVA 和子帶AuxIVA相比,取得更好的分離結(jié)果的同時,顯著地降低了計算復(fù)雜度。
本文提出了一種基于子帶t 分布的Fast Aux-IVA 算法,采用更適合語聲統(tǒng)計特性的子帶t 分布聲源模型,并結(jié)合秩1更新的快速迭代方法,推導(dǎo)出了改進的優(yōu)化更新準則。該迭代準則避免了優(yōu)化過程中矩陣求逆操作,提高了分離算法的穩(wěn)定性和計算有效性。為了保證子帶內(nèi)各頻點間具有統(tǒng)一的高階依賴性,算法首先采用無重疊的方式對頻帶進行劃分。同時,為避免子帶劃分導(dǎo)致的帶間順序模糊性問題,本文利用一個全頻子帶建立子帶間的依賴性。實驗結(jié)果表明,相較于AuxIVA和Fast AuxIVA算法,提出的方法可以在語聲分離任務(wù)中進一步提升分離性能。