本發(fā)明涉及語音信號處理領域,特別是一種基于麥克風陣列的聲源定位跟隨系統(tǒng)及方法。
背景技術:
早在20世紀七八十年代,就開始將麥克風陣列應用于語音信號處理的研究中,進入90年代以來,基于麥克風陣列的語音信號處理算法逐漸成為一個新的研究熱點。1995年flanagan在混響環(huán)境下用陣列信號處理對聲音進行捕獲。1996年silverman和brandstein開始將其應用于聲源定位中,用于確定和實時跟蹤說話人的位置。
目前,麥克風陣列系統(tǒng)已經(jīng)應用于許多場合,包括視頻會議、語音識別、說話人識別、汽車環(huán)境語音獲取、混響環(huán)境聲音拾取、聲源定位和助聽裝置等。雖然基于麥克風陣列的語音處理技術正成為一個新的研究熱點,但相關應用技術還不成熟。
因此,需要一種基于麥克風陣列的聲源定位跟隨系統(tǒng)及方法
技術實現(xiàn)要素:
本發(fā)明的目的之一是提出一種基于麥克風陣列的聲源定位跟隨系統(tǒng);本發(fā)明的目的之二是提出一種基于麥克風陣列的聲源定位跟隨方法。
本發(fā)明的目的之一是通過以下技術方案來實現(xiàn)的:
本發(fā)明提供的一種基于麥克風陣列的聲源定位跟隨系統(tǒng),包括信號接收模塊、AD采樣電路、信號預處理模塊、算法處理模塊和輸出模塊;
所述信號接收模塊為麥克風陣列,用于獲取聲源到各個麥克風的語音信號;
所述AD采樣電路,用于獲取各麥克風的語音采樣信號;
所述信號預處理模塊,用于預處理語音采樣信號;
所述算法處理模塊,用于根據(jù)語音采樣信號計算聲源位置;
所述輸出模塊,用于輸出聲源位置信息。
進一步,所述麥克風陣列包括相互垂直設置的均勻線性子陣列A、均勻線性子陣列B和參考點麥克風;所述參考點麥克風設置于相互垂直設置的均勻線性子陣列A、均勻線性子陣列B的中間點。
進一步,所述信號預處理模塊對語音采樣信號進行預處理是對采樣信號進行加窗操作得到加窗處理信號。
進一步,所述算法處理模塊按照以下步驟來計算聲源位置:
根據(jù)加窗處理信號來判斷聲源位于采樣位置的前后方向;
根據(jù)加窗處理信號來判斷聲源位于采樣位置的左右方向;
根據(jù)聲源位于采樣位置的前后方向和左右方向來確定聲源的位置。
進一步,所述算法處理模塊中聲源的位置是通過聲源定位方法來確定的,具體步驟如下:
S631:按照以下公式對語音采樣信號進行快速傅里葉變換得到聲源信號的幅度譜:
S(k)=FFT[sw(n)];
其中,S(k)為加窗信號sw(n)的傅里葉變換;
S632:根據(jù)得聲源信號的幅度譜按照以下公式計算聲源信號到各麥克風間的波程差:
其中,d1為一個周期內聲源信號到麥克風M1與M2間的波程差;d2為一個周期內聲源信號到麥克風M1與M3間的波程差;λ為聲源信號一個周期的波長,f為聲源信號頻率;β1=θ2-θ1為麥克風1與2間相位差;β2=θ3-θ1為麥克風1與3間相位差;θ1表示麥克風M1接收的聲源信號的相位;θ2表示麥克風M2接收的聲源信號的相位;θ3表示麥克風M3接收的聲源信號的相位;
S633:根據(jù)波程差按照以下公式計算聲源位置坐標:
其中,(x,y)為聲源坐標,a為相鄰麥克風間距;
為聲源距行走裝置所載麥克風M1距離;
S634:根據(jù)聲源位置坐標按照以下公式計算聲源方位角:
聲源方位角
其中,α聲源方位角。
本發(fā)明的目的之二是通過以下技術方案來實現(xiàn)的:
本發(fā)明提供的一種基于麥克風陣列的聲源定位跟隨方法,包括以下步驟:
S1:設置麥克風陣列;
S2:通過麥克風陣列來獲取聲源到各個麥克風的語音信號;
S3:將語音采樣信號轉換為信號序列;
S4:對信號序列進行加窗操作得到加窗處理信號;
S5:對加窗處理信號判斷聲源位于采樣位置的前后方向和左右方向;
S6:根據(jù)聲源位于采樣位置的前后方向和左右方向來確定聲源的位置;
進一步,所述聲源的位置是通過聲源定位方法來確定的,具體步驟如下:
S631:按照以下公式對語音采樣信號進行快速傅里葉變換得到聲源信號的幅度譜:
S(k)=FFT[sw(n)];
其中,S(k)為加窗信號sw(n)的傅里葉變換;
S632:根據(jù)得聲源信號的幅度譜按照以下公式計算聲源信號到各麥克風間的波程差:
其中,d1為一個周期內聲源信號到麥克風M1與M2間的波程差;d2為一個周期內聲源信號到麥克風M1與M3間的波程差;λ為聲源信號一個周期的波長,f為聲源信號頻率;β1=θ2-θ1為麥克風1與2間相位差;β2=θ3-θ1為麥克風1與3間相位差;θ1表示麥克風M1接收的聲源信號的相位;θ2表示麥克風M2接收的聲源信號的相位;θ3表示麥克風M3接收的聲源信號的相位;
S633:根據(jù)波程差按照以下公式計算聲源位置坐標:
其中,(x,y)為聲源坐標,a為相鄰麥克風間距;
為聲源距行走裝置所載麥克風M1距離;
S634:根據(jù)聲源位置坐標按照以下公式計算聲源方位角:
聲源方位角
其中,α聲源方位角。
進一步,所述麥克風陣列包括相互垂直設置的均勻線性子陣列A、均勻線性子陣列B和參考點麥克風;所述參考點麥克風設置于相互垂直設置的均勻線性子陣列A、均勻線性子陣列B的中間點。
進一步,所述聲源位置按照以下步驟來計算:
S61:根據(jù)加窗處理信號來判斷聲源位于采樣位置的前后方向;
S62:根據(jù)加窗處理信號來判斷聲源位于采樣位置的左右方向;
S63:根據(jù)聲源位于采樣位置的前后方向和左右方向來確定聲源的位置。
進一步,所述聲源位于采樣位置的前后方向是按照以下步驟來計算:
S611:獲取均勻線性子陣列A中位于中間點前后的麥克風與參考點麥克風的間距為a;
S612:獲取均勻線性子陣列A中位于中間點前后的麥克風的加窗處理信號;
S613:按照以下公式計算加窗處理信號的短時能量:
其中,N為窗函數(shù)的長度;xw表示加窗處理信號;n表示第n個加窗處理信號;m表示第m個加窗處理信號;
S614:比較位于中間點前后的麥克風的短時能量,如果位于中間點前的麥克風的短時能量大于位于中間點后的麥克風的短時能量,則聲源位于采樣位置的前方;如果位于中間點前的麥克風的短時能量小于位于中間點后的麥克風的短時能量,則聲源位于采樣位置的后方;
所述聲源位于采樣位置的左右方向是按照以下步驟來計算:
S621:獲取均勻線性子陣列B中各麥克風到參考點麥克風的間距為b;
S622:獲取均勻線性子陣列B中位于中間點左右的麥克風的加窗處理信號;
S623:按照以下公式計算加窗處理信號的短時能量:
其中,N為窗函數(shù)的長度;xw表示加窗處理信號;n表示第n個加窗處理信號;m表示第m個加窗處理信號;
S624:比較位于中間點左右的麥克風的短時能量,如果位于中間點左的麥克風的短時能量大于位于中間點右的麥克風的短時能量,則聲源位于采樣位置的左方;如果位于中間點左的麥克風的短時能量小于位于中間點右后的麥克風的短時能量,則聲源位于采樣位置的右方。
由于采用了上述技術方案,本發(fā)明具有如下的優(yōu)點:
本發(fā)明提供的基于麥克風陣列的聲源定位跟隨系統(tǒng),通過手持設備與行走裝置所載聲源構成定位系統(tǒng),該定位系統(tǒng)可以通過藍牙建立無線通信,當手持設備發(fā)出聲源信號時,即觸發(fā)定位系統(tǒng)開始采樣,當手持設備無聲源信號發(fā)出時,定位系統(tǒng)關閉。采用這種方式,可以實現(xiàn)行走裝置的實時定位跟隨。本發(fā)明在行走裝置近距離跟隨情況下,可以準確確定聲源位置,實時性強,并且算法簡單,易于實現(xiàn)。
本發(fā)明的其他優(yōu)點、目標和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領域技術人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導。本發(fā)明的目標和其他優(yōu)點可以通過下面的說明書來實現(xiàn)和獲得。
附圖說明
本發(fā)明的附圖說明如下。
圖1是本發(fā)明的硬件框圖。
圖2是本發(fā)明的麥克風陣列模型。
圖3是本發(fā)明聲源S與麥克風陣列的位置關系示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明作進一步說明。
實施例1
如圖所示,本實施例提供的基于麥克風陣列的聲源定位跟隨系統(tǒng),包括信號接收模塊、AD采樣電路、信號預處理模塊、算法處理模塊和輸出模塊;
所述信號接收模塊為麥克風陣列,用于獲取聲源到各個麥克風的語音信號;
所述AD采樣電路,用于獲取各麥克風的語音采樣信號;
所述信號預處理模塊,用于預處理語音采樣信號;
所述算法處理模塊,用于根據(jù)語音采樣信號計算聲源位置;
所述輸出模塊,用于輸出聲源位置信息。
所述麥克風陣列包括相互垂直設置的均勻線性子陣列A、均勻線性子陣列B和參考點麥克風;所述參考點麥克風設置于相互垂直設置的均勻線性子陣列A、均勻線性子陣列B的中間點。
所述信號預處理模塊按照以下步驟對語音采樣信號進行預處理:首先將語音采樣信號轉換為信號序列;然后對信號序列進行加窗操作得到加窗處理信號。
所述算法處理模塊按照以下步驟來計算聲源位置:
根據(jù)加窗處理信號來判斷聲源位于采樣位置的前后方向;
根據(jù)加窗處理信號來判斷聲源位于采樣位置的左右方向;
根據(jù)聲源位于采樣位置的前后方向和左右方向來確定聲源的大致位置。
所述算法處理模塊中聲源的位置是通過聲源定位方法來確定的,具體步驟如下:
S631:按照以下公式對語音采樣信號進行快速傅里葉變換得到聲源信號的幅度譜:
S(k)=FFT[sw(n)];
其中,S(k)為加窗信號sw(n)的傅里葉變換;
S632:根據(jù)得聲源信號的幅度譜按照以下公式計算聲源信號到各麥克風間的波程差:
其中,d1為一個周期內聲源信號到麥克風M1與M2間的波程差;d2為一個周期內聲源信號到麥克風M1與M3間的波程差;λ為聲源信號一個周期的波長,f為聲源信號頻率;β1=θ2-θ1為麥克風1與2間相位差;β2=θ3-θ1為麥克風1與3間相位差;θ1表示麥克風M1接收的聲源信號的相位;θ2表示麥克風M2接收的聲源信號的相位;θ3表示麥克風M3接收的聲源信號的相位;
S633:根據(jù)波程差按照以下公式計算聲源位置坐標:
其中,(x,y)為聲源坐標,a為相鄰麥克風間距;
為聲源距行走裝置所載麥克風M1距離;
S634:根據(jù)聲源位置坐標按照以下公式計算聲源方位角:
聲源方位角
其中,α聲源方位角。
本發(fā)明還提供了一種基于麥克風陣列的聲源定位跟隨方法,包括以下步驟:
S1:設置麥克風陣列;
S2:通過麥克風陣列來獲取聲源到各個麥克風的語音信號;
S3:將語音采樣信號轉換為信號序列;
S4:對信號序列進行加窗操作得到加窗處理信號;
S5:對加窗處理信號判斷聲源位于采樣位置的前后方向和左右方向;
S6:根據(jù)聲源位于采樣位置的前后方向和左右方向來確定聲源的位置;
所述麥克風陣列包括相互垂直設置的均勻線性子陣列A、均勻線性子陣列B和參考點麥克風;所述參考點麥克風設置于相互垂直設置的均勻線性子陣列A、均勻線性子陣列B的中間點。
所述聲源位置按照以下步驟來計算:
S61:根據(jù)加窗處理信號來判斷聲源位于采樣位置的前后方向;
S62:根據(jù)加窗處理信號來判斷聲源位于采樣位置的左右方向;
S63:根據(jù)聲源位于采樣位置的前后方向和左右方向來確定聲源的位置。
所述聲源位于采樣位置的前后方向是按照以下步驟來計算:
S611:獲取均勻線性子陣列A中位于中間點前后的麥克風與參考點麥克風的間距為a;
S612:獲取均勻線性子陣列A中位于中間點前后的麥克風的加窗處理信號;
S613:按照以下公式計算加窗處理信號的短時能量:
其中,N為窗函數(shù)的長度;xw表示加窗處理信號;n表示第n個加窗處理信號;m表示第m個加窗處理信號;
S614:比較位于中間點前后的麥克風的短時能量,如果位于中間點前的麥克風的短時能量大于位于中間點后的麥克風的短時能量,則聲源位于采樣位置的前方;如果位于中間點前的麥克風的短時能量小于位于中間點后的麥克風的短時能量,則聲源位于采樣位置的后方。
所述聲源位于采樣位置的左右方向是按照以下步驟來計算:
S621:獲取均勻線性子陣列B中各麥克風到參考點麥克風的間距為b;
S622:獲取均勻線性子陣列B中位于中間點左右的麥克風的加窗處理信號;
S623:按照以下公式計算加窗處理信號的短時能量:
S624:比較位于中間點左右的麥克風的短時能量,如果位于中間點左的麥克風的短時能量大于位于中間點右的麥克風的短時能量,則聲源位于采樣位置的左方;如果位于中間點左的麥克風的短時能量小于位于中間點右后的麥克風的短時能量,則聲源位于采樣位置的右方。
實施例2
本實施例提供的基于麥克風陣列的聲源定位跟隨方法,通過手持設備與行走裝置所載聲源構成進行定位的定位系統(tǒng),該定位系統(tǒng)設置于行走裝置,如助行裝置和助行輪椅,如圖1中虛線框所示,虛線框內表示行走裝置,并通過藍牙建立無線通信,當手持設備發(fā)出聲源信號時,即觸發(fā)定位系統(tǒng)開始采樣,當手持設備無聲源信號發(fā)出時,定位系統(tǒng)關閉。采用這種方式,可以實現(xiàn)行走裝置的實時定位跟隨。在行走裝置近距離跟隨情況下,可以準確確定聲源位置,實時性強,并且算法簡單,易于實現(xiàn)。
基于麥克風陣列的聲源定位跟隨系統(tǒng)示意圖如圖1所示:包括信號接收模塊、信號預處理模塊、算法處理模塊以及結果輸出模塊。
信號接收模塊為置于行走裝置上的十字麥克風陣列,結構示意圖如圖2所示,用于獲取聲源到各個麥克風的語音信號,由均勻線性子陣列A和均勻線性子陣列B構成,兩個子陣列相互垂直,共用中間麥克風1并將其作為參考點;麥克風M2、M3與麥克風M1間距為a;所述麥克風M4、M5與麥克風M1間距為b;本實施例中的M4位于前方,M5位于后方;麥克風M2位于麥克風M1左方,麥克風M3位于麥克風M1右方。
信號預處理模塊包括AD采樣電路,AD采樣電路以20KHZ采樣頻率對各個麥克風獲取的語音信號進行采樣,將模擬信號轉化為離散信號。
算法處理模塊以及結果輸出模塊包括STM32F103ZE處理器及外圍電路、音頻輸出電路,用于運行相關算法確定聲源位置,并輸出位置信息音頻。
具體實現(xiàn)步驟如下:
手持設備發(fā)出單頻聲源信號s(t),通過藍牙與行走裝置建立無線通信,觸發(fā)定位系統(tǒng)開始采樣;
行走裝置利用麥克風陣列接收聲源信號;
將接收到的聲源信號進行AD采樣,采樣頻率為20KHZ;將模擬信號s(t)轉換為信號序列s(n);
對麥克風所接收語音信號進行加窗操作。假設語音信號在10~30ms短時間內是平穩(wěn)的,窗函數(shù)平滑地在語音信號上滑動,將語音信號分成幀。窗函數(shù)選用漢明窗
其中,N為窗口長度,也為一幀采樣點數(shù)。加窗處理后的信號為sw(n):
sw(n)=s(n)*w(n)
判斷聲源信號基于行走裝置的前后方向。窗函數(shù)的長度為N,短時能量可表示為:
其中,N為窗函數(shù)的長度;xw表示加窗處理信號;n表示第n個加窗處理信號;m表示第m個加窗處理信號;
比較麥克風M4和M5接收語音信號的強度大小,如果E4n>E5n聲源信號在行走裝置前方;如果E4n<E5n,聲源信號在行走裝置后方。
其中,E4n表示麥克風4所接受語音信號的強度,E5n表示麥克風5所接受語音信號的強度。
判斷聲源信號基于行走裝置的左右方向。窗函數(shù)的長度為N,短時能量可表示為:
比較麥克風M2和M3接收語音信號的強度大小,如果E2n>E3n聲源信號在行走裝置左方;如果E2n<E3n聲源信號在行走裝置右方。
其中,E2n表示麥克風2所接受語音信號的強度,E3n表示麥克風3所接受語音信號的強度。
由聲源定位方法定位聲源的具體位置。
8)行走裝置根據(jù)聲源方位以及位置自主跟隨。
步驟(6)具體包括如下步驟:
(6.1)對信號序列進行快速傅里葉變換。S(k)=FFT[sw(n)];其中,S(k)為加窗信號sw(n)的傅里葉變換。
(6.2)計算聲源信號到各麥克風間的波程差。由FFT變換可求得聲源信號的幅度譜,聲源信號頻率為f,該頻率處所對應各麥克風接收語音信號的幅度與相位分別為:
M1=a1+b1j;相位:
M2=a2+b2j;相位:
M3=a3+b3j;相位:
麥克風1與2間相位差為:β1=θ2-θ1;麥克風1與3間相位差為:β2=θ3-θ1;
一個周期內聲源信號到麥克風M1與M2、M1與M3間的波程差d1和d2分別為:
其中λ為聲源信號一個周期的波長,f為聲源信號的頻率;
(6.3)建立平面直角坐標系,求聲源位置到坐標系原點距離r;其中,聲源坐標為(x,y),a為相鄰麥克風間距。建立方程組如下:
聲源距行走裝置所載麥克風M1距離為r:
(6.4)由已知平面坐標系,求聲源方位角;
聲源方位角
手持設備與行走裝置所載聲源定位系統(tǒng)可以通過藍牙建立無線通信,當手持設備發(fā)出聲源信號時,即觸發(fā)定位系統(tǒng)開始采樣,當手持設備無聲源信號發(fā)出時,定位系統(tǒng)關閉。采用這種方式,可以實現(xiàn)行走裝置的實時定位跟隨。本發(fā)明在行走裝置近距離跟隨情況下,可以準確確定聲源位置,實時性強,并且算法簡單,易于實現(xiàn)。
最后說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本技術方案的宗旨和范圍,其均應涵蓋在本發(fā)明的保護范圍當中。