顧曉瑜,楊 悅
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
一種基于SVM的聲源定位算法
顧曉瑜,楊 悅
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
隨著多媒體技術的快速發展,獲取高質量的語音成為一種越來越受到廣泛重視的技術手段,以麥克風陣列定位聲源的方法在諸多領域得到了廣泛的應用。支持向量機(Support Vector Machine,SVM)是一種基于統計學習理論和結構風險最小化原則的機器學習方法,其諸多參數的選擇直接影響到SVM的性能,SVM可作為估計聲源位置的分類器,且可通過選取適當的參數提高算法的抗噪聲能力。為此,提出了一種基于SVM的聲源定位新算法。該算法提取鑒別互相關函數的特征,通過選取合適的參數,對SVM的核函數進行優化。基于Matlab對提出的新算法進行了仿真實驗驗證。仿真實驗結果表明,該算法較為顯著地增加了混響和噪聲條件下聲源定位的準確性,且具有良好的魯棒性。
支持向量機;機器學習;聲源定位;核函數
作為人機交互的重要媒介,語音是人類最重要的交際工具,具有顯著的優勢。但是,在實際生活中,常常會有干擾語音的情況出現,比如環境中的噪聲、其他聲源的干擾等,使得語音質量下降。因此,如何獲取高質量的語音成為一個密切關注的話題。一種基于麥克風陣列的語音系統由于其廣泛的應用前景,受到了越來越廣泛的關注。
在基于麥克風陣列的語音信號處理中,聲源定位技術處在核心位置。除了能夠提供位置信息之外,聲源定位技術在基于麥克風陣列的語音增強中也發揮著重要作用,對于如何增強語音信號處理的性能以及增強聲源定位的性能有很重要的意義[1]。
對于絕大多數的定位系統來說,采用的都是麥克風陣。從規模上進行劃分,麥克風陣系統可分為兩種:一種是大型的麥克風陣,主要用來進行語音控制,這其中包含了幾十到幾百的陣元;另一種則是小型的麥克風陣,主要在一些電子產品(比如手提電腦以及移動電話)中使用[2]。聲源定位算法大致可分為三種:基于高分辨率譜估計的定位算法、基于時延估計的定位算法和基于可控波束形成的定位算法[3]。
迄今為止,已經提出了很多類時間差估計算法,比如基本互相關法、廣義互相關法、最小均方自適應濾波法、互功率譜相關法[4]等。在這些算法中,比較經典的是由Knapp等提出的GCC-PHAT(相位變換加權廣義互相關)算法。它的實用性非常強,抑制旁瓣的效果很好,而且通過銳化互相關函數主峰的行為,可以使得時延估計的精度增強。然而當室內的混響很嚴重時,GCC-PHAT這種時延估計算法的抗噪能力會下降。因此提高GCC-PHAT對噪聲的魯棒性顯得尤為重要。利用SVM作為估計聲源位置的分類器,并且通過合適參數的選取提高該模型的抗噪能力。
為此,研究重點集中在兩方面。一方面是鑒別互相關函數特征的提取,利用得到的特征結合SVM分類器得到互相關函數的模型;另一方面是在已得到模型的基礎上,調整SVM的參數,比較不同參數選擇的定位效果。
支持向量機(SVM)[5]是這樣的一種機器學習算法:SVM建立在統計學習的VC維度(Vapnik-Chervonenkis Dimension)理論[6]以及結構風險最小化原理的基礎上,可以對有限的樣本實現模型復雜度以及學習能力的平衡。支持向量機利用對最大間距的超平面的尋找進行分類,有著很強的泛化能力,并且對小樣本的分類尤為適用。SVM主要處理二分類的情況,主要思想是面向線性可分的問題設計。在樣本是線性不可分時,SVM通過非線性映射,也就是核函數[7],使低維空間的樣本映射到高維空間中,這樣就可以使樣本線性可分,從而可以在高維空間線性分類。對超平面的尋找是建立在結構風險最小理論的基礎上,通過對兩個間隔最大的平行超平面的尋找,實現樣本分類,這就可以讓分類器獲得全局最優解,并且在樣本空間中,符合期望風險以某個概率滿足一定上界的情況。
SVM是按照如下方法實現的:對訓練集合內的樣本(xi,yi),i=1,2,…,N,其中N表示樣本數量,xi∈Rl,y∈{-1,1},正樣本用+1表示,負樣本用-1表示,Rl表示樣本空間,xi表示第i個l維的樣本向量,yi表示此樣本被包含的類的標記。在樣本處于線性可分的情況下,可以使用一個分類平面,使得訓練的樣本分離,這個平面稱作超平面[8-9],可以用下面的函數來表示:
wT·x+b=0
(1)
其中,w和b分別表示該超平面的法向量和截距。
超平面的作用是劃分樣本空間,使樣本空間變成兩個區域。在一側區域,與樣本對應的wT·x+b大于零,但是在另一側區域,與樣本對應的wT·x+b則小于零。
以上是SVM的分類原理,目的是通過尋找兩個互相平行的超平面來劃分樣本,并且這兩個超平面之間的距離也是最大的。通過這種方法定下的超平面可以在最大范圍內對兩類不同的樣本進行劃分,要讓兩個超平面間的距離最大,等價于使‖w‖2最小,也就是:
(2)
通過引入拉格朗日對偶的概念,使用拉格朗日系數α,將式(2)的限制條件與目標函數進行融合,得到的拉格朗日函數如下:

(3)
這樣,w以及b的值就可以通過式(3)求得,也就可以得到兩個平行的分類超平面,此超平面是支持向量機分類器中距離最大的一組超平面,同時可以計算出支持向量機的判別函數:

(4)
當訓練的樣本集合滿足理想的且完全線性可分的情況時,該方法通過計算支持向量機的決策函數達到很好的效果。然而在實際情況中,許多的訓練樣本集合不是線性可分而是近似線性可分的,因此提出松弛變量和核函數的思想是很有必要的。
SVM的核函數有許多類型,包括線性內核、多項式內核、徑向基內核(RBF)、sigmoid核[9-11]。其中,RBF應用最廣泛,其適用性表現在對大小樣本以及高低維都適用。
基于鑒別互相關函數的聲源定位算法包括兩種過程,分別是訓練過程以及定位過程[12-13]。在訓練過程中,計算互相關函數作為特征,利用特征向量,計算出互相關函數SVM模型的參數。測試時通過計算獲得互相關函數,并作為特征,利用SVM分類器估計聲源的位置。
訓練過程和定位過程的模型分別見圖1和圖2。
在訓練過程中,實驗目的是創建一個互相關函數的SVM模型,步驟如下:
(1)利用麥克風陣列,記錄下聲源在不同位置產生的混響信號,此時假設每一個訓練的位置為li,i=1,2,…,M;
(2)根據得到的混響信號,計算出互相關函數;
(3)根據互相關函數,生成特征向量z;
(4)對于每一個訓練位置li,利用特征向量計算出SVM模型的法向量wi和截距bi。

圖1 訓練過程

圖2 定位過程
(1)麥克風陣列記錄下信號,此信號包括聲源發出的信號(混響信號)以及噪聲。
(2)根據得到的混響信號,計算出互相關函數。
(3)根據互相關函數,生成特征向量z。
(4)利用已經訓練得到的SVM分類器來估計聲源的位置。
在利用SVM分類器估計聲源的位置信息時,能夠使類間距2/‖w‖最小的位置可定義為聲源的位置:
(5)
其中,類間距2/‖w‖由法向量wi和截距bi得到。
3.1特征提取
實驗中采用由兩個麥克風組成的麥克風陣,其中,對于第i個麥克風,它接收到的信號是:
xi(k)=hi(ls,k)*s(k),i=1,2
(6)
其中,s(k)表示聲源,它的位置在ls;hi(ls,k)表示從聲源到第i個麥克風房間的脈沖響應。
假設房間脈沖響應的長度為H,則對第i個麥克風,接收到的信號可以表示為:
(7)
在實際情況中,由于受到噪聲以及混響的干擾,相關函數往往會受到以下影響:最大峰被弱化,以及出現多個峰值。廣義互相關法是對一對麥克風信號的互功率譜實行加權處理,這樣便可以達到相關函數在時延的峰值位置更加突出的效果。信號x1(k)和x2(k)的廣義互相關函數可以表示為:
(8)
其中,“*”表示復共軛;X1(ω)是x1(t)的傅里葉變換;Φ1,2(ω)表示加權函數。
為了進一步提高互相關函數的抗混響的能力,實驗利用了相位變換加權函數:

(9)
將式(9)代入到式(8),可以得到:

(10)
在實際環境下,信號x1(t)和x2(t)在經過預處理加窗之后,接著通過傅里葉變換便可得到X1(ω)和X2(ω)。由式(7)可知,若房間脈沖響應的長度H比窗函數短很多,那么在頻域內,S(ω)和Hi(ls,ω)分別為s(k)和hi(ls,k)的傅里葉變換。那么麥克風信號可表示為:
Xi(ω)=Hi(ls,ω)S(ω),i=1,2
(11)
將式(11)代入式(10),可以求得:

(12)
但是,在實際環境中,窗函數的長度會比房間脈沖響應的長度H小很多,于是麥克風信號可在頻域內近似表示為:
Xi(ω)≈Hi(ls,ω)*S(ω),i=1,2
(13)
除此之外,信號x1(k)和x2(k)之間的廣義互相關函數約為房間脈沖響應h1(ls,k)和h2(ls,k)之間的廣義互相關函數,也就是:

(14)
3.2SVM定位算法
3.2.1 互相關函數的SVM模型
特征向量是通過廣義互相關函數Rx1x2(τ)而產生的:
z=[Rx1x2(-τm),Rx1x2(-τm+1),…,Rx1x2(τm)]T? [z1,z2,…,zi,…,z2τm+1]T
(15)
其中,τm=round(αLfs/c),因子α設置為1.67,L、fs、c分別表示一對麥克風之間的距離、采樣頻率以及聲速,round(·)表示取整函數。
假設對于單個特征zi,i=1,2,…,2τm+1滿足SVM模型,那么特征zi的幾何間隔為:
(16)
其中,yi、wi、bi分別為第i個特征zi的法向量、結果標簽以及截距。
當處于訓練過程時,針對任意一個位置li,i=1,2,…,J,可以利用K幀的訓練數據來估算幾何間隔φj(li)。由于對于任意一個超曲面來說,這個超平面都可以用一個法向量w和一個常數截距b來表示,所以一個點到這個超曲面的距離可以表示為:

(17)

3.2.2 SVM分類器的定位實現
在該實驗中,可以利用一個特征向量z實現SVM分類器對聲源位置的估計功能。
假設有這樣一個前提,對于任意一個特征zi,i=1,2,…,2τm+1,它們之間都是統計獨立的,那么特征zi的幾何間隔為:

(18)
對于給定的樣本點,可以選出一組(wi,bi)來表示,所以可令w·x+b=1,超平面的距離可以表示為2/‖w‖。使得幾何間隔最小的位置就被認為是聲源的位置:

(19)
4.1實驗數據
實驗利用一種改進的鏡像法,用來模擬測量房間脈沖響應的實際系統[14-16]。在房間中,從聲源發出的聲波能量,在傳播過程中由于不斷被壁面吸收而逐漸衰減,聲波在各個不同的方向來回反射,而又逐漸衰減的現象稱為室內混響。當聲源停止后,從初始的聲壓降到60 dB所需的時間稱為混響時間,這里用T60表示室內聲音的混響時間[1]。
利用一種仿真的矩形長方體房間,仿真軟件為Roomsim,模擬生成房間脈沖響應。得到混響時間和反射系數的關系:
(20)
其中,T60表示混響時間;ε表示反射系數:a,b,c分別表示矩形房間的長、寬、高;342表示聲速,約為342 m/s。
仿真矩形房間的尺寸為8 m×6 m×4 m,調整反射系數ε使得混響時間T60為0.3 s。仿真的房間平面圖如圖3所示。實驗條件是:假設加性白噪聲與聲源的信號以及麥克風的噪聲都不相關。一對麥克風的位置相距0.3 m,并且分別位于矩形房間的(4.25 m,3 m,2 m)和(4.55 m,3 m,2 m)處,聲源到一對麥克風中點的距離為1.5 m。通過采樣率為16 kHz的信號和房間脈沖響應的卷積生成混響信號。加入噪聲,并取不同的信噪比作對比。幀長是32 ms,有512個采樣點,給每幀信號加漢明窗。實驗中訓練和測試的聲源的位置有17種,分別為10,20,…,170度。

圖3 仿真的矩形長方體房間平面圖
實驗是在Matlab R2014a環境下實現的,通過安裝由臺灣大學林智仁[9]教授開發的LibSVM工具包進行。LibSVM是以源代碼和可執行文件這兩種方式設計的。它的使用步驟包括:準備數據集、對數據進行縮放操作,以及利用獲取的模型進行測試與預測。
4.2實驗結果
計算得到GCC-PHAT,轉換為特征z,得到420幀特征數據。將此特征分為訓練集和測試集。基于SVM的定位算法使用了90幀訓練數據,330幀測試數據。然后利用訓練集建立分類模型,利用建立的SVM模型觀察其在訓練集上的分類效果,得到測試的結果準確度。
實驗中,選取了SVM的不同參數,包括SVM三種類型:C-SVC(C-支持向量分類)、V-SVC(V-支持向量分類)和一類SVM。其中一類SVM是用于一類分類的分類器,在這里不予考慮。SVM核函數有三種選擇:線性核函數、多項式核函數和RBF函數。為了比較不同情況下SVM的定位性能,分別選擇純凈語音,信噪比為25 dB、15 dB以及5 dB的信號,通過對SVM不同參數的選擇而得到不同的抗噪性能。實驗結果如表1和表2所示。

表1 選擇C-SVC時的分類準確率 %

表2 選擇V-SVC時的分類準確率 %
從實驗結果可以看出,基于SVM的聲源定位算法的定位準確率隨著信噪比的增加而上升。當處于相同的信噪比時,選擇核函數的類型為RBF,都有較高的分類準確率。在混響時間T60為0.3 s時,核函數選擇類型為多項式的定位算法隨著信噪比的降低,定位精度下降幅度較大。當選擇C-SVC的SVM類型且核函數為RBF時,有最高的分類準確率,定位效果最好。
針對現有聲源定位算法的定位和魯棒性有所不足的問題,提出了一種新的基于SVM的聲源定位算法,通過Matlab仿真進行了實驗驗證,同時還比較了6種不同的SVM參數的組合情況。結果表明,該算法提高了定位的魯棒性,在混響和噪聲情況下也有很好的定位效果。在多媒體技術日益成熟的今天,該算法具有一定的實用性。
[1] 萬新旺.基于陣列信號處理與空間聽覺的聲源定位算法研究[D].南京:東南大學,2011.
[2] 郭俊成.基于傳聲器陣列的聲源定位技術研究[D].南京:南京航空航天大學,2007.
[3] 宗志亞.基于麥克風陣列的室內聲源定位方法研究[D].重慶:重慶大學,2012.
[4] Wan Xinwang,Liang Juan.Improved sound source localization using classifier in reverberant noisy environment[J].Journal of Applied Sciences,2013,13(21):4897-4901.
[5] 李 瓊,陳 利.一種改進的支持向量機文本分類方法[J].計算機技術與發展,2015,25(5):78-82.
[6] 平 源.基于支持向量機的聚類及文本分類研究[D].北京:北京郵電大學,2012.
[7] 常甜甜.支持向量機學習算法若干問題的研究[D].西安:西安電子科技大學,2010.
[8] Laouti N,Othman S,Alamir M,et al.Combination of model-based observer and support vector machines for fault detection of wind turbines[J].International Journal of Automation and Computing,2014,11(3):274-287.
[9] 丁世飛,齊丙娟,譚紅艷.支持向量機理論與算法研究綜述[J].電子科技大學學報,2011,40(1):2-10.
[10] Xue X H,Yang X G,Chen X.Application of a support vector machine for prediction of slope stability[J].Science China Technological Sciences,2014,57(12):2379-2386.
[11] 何 清,李 寧,羅文娟,等.大數據下的機器學習算法綜述[J].模式識別與人工智能,2014,27(4):327-336.
[12] Campbell D.ROOMSIM toolbox[DB/OL].2012-08-08.http://media.paisley.ac.uk/~campbell/Roomsim/(Last viewed.
[13] 柯 昆.聲源定位技術研究[D].西安:西安電子科技大學,2010.
[14] Wan X,Wu Z.Improved speech source localization in reverberant environments based on correlation dimension[C]//International conference on wireless communications & signal processing.[s.l.]:IEEE,2009:1-4.
[15] Wan X,Wu Z.Sound source localization based on discrimination of cross-correlation functions[J].Applied Acoustics,2013,74(1):28-37.
[16] Dibiase J H.A high-accuracy,low-latency technique for talker localization in reverberant environments using microphone arrays[J].European Journal of Biochemistry,2010,216(1):281-291.
A Sound Source Localization Algorithm with Support Vector Machine
GU Xiao-yu,YANG Yue
(College of Telecommunications and Information Engineering,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)
With the rapid development of multimedia technology,the method to obtain high-quality voice has become an increasingly widespread technical means,which has been widely used for microphone array sound source localization in many fields.Support Vector Machine (SVM) is a machine learning method based on statistical learning theory and structural risk minimization principle,and its performance depends on the correct selection of related parameters.SVM can be used as a classifier to estimate the position of the sound source,and it can improve the anti-noise ability of the algorithm by selecting the appropriate parameters.Therefore a new kind of sound source localization based on SVM is proposed.By extracting the features of cross-correlation function and selecting appropriate parameters,the kernel function of SVM is optimized.The simulation has been carried out with the proposed algorithm using Matlab,results of which show that it has increased the accuracy of sound source localization significantly in noisy and reverberant environments,with good robustness.
support vector machine;machine learning;sound source localization;kernel function
2016-06-29
:2016-10-11 < class="emphasis_bold">網絡出版時間
時間:2017-07-11
聲納技術國防科技重點實驗室開放研究基金(KF201503);江蘇省自然科學基金(BK20140891)
顧曉瑜(1992-),女,碩士研究生,研究方向為聲源定位、機器學習。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170711.1452.018.html
TP301.6
:A
:1673-629X(2017)09-0070-05
10.3969/j.issn.1673-629X.2017.09.015