基于麥克風(fēng)陣列的聲源跟蹤系統(tǒng)
作者 / 王宇威 雍洋 孫新 西安交通大學(xué) 信息與通信工程系(陜西 西安 710000)
本文引用地址:http://2s4d.com/article/201811/395037.htm*本項目獲得“2018年瑞薩杯”信息科技前沿專題邀請賽的最高獎“瑞薩杯”獎。
摘要:隨著科技的發(fā)展,聲源定位技術(shù)在越來越多的地方發(fā)揮著重要的作用,在多個領(lǐng)域有著廣泛的應(yīng)用。聲源目標(biāo)跟蹤技術(shù)可以應(yīng)用在視頻錄制、安防監(jiān)控、鳴笛抓拍等場景中,在這些場景中,針對目標(biāo)對象的語音信號,可以應(yīng)用陣列信號處理的知識,將麥克風(fēng)按照特定陣列放置在空域中,利用空間不同位置點的聲源對麥克風(fēng)陣列響應(yīng)的時延相位誤差,對聲源進行測向,實現(xiàn)低成本的聲源定位跟蹤功能。
本作品便是基于麥克風(fēng)陣列的聲源跟蹤系統(tǒng),將6路麥克風(fēng)按照線型排列,并接入瑞薩SK-S7G2單片機的6路ADC中,單片機將采樣值通過陣列信號處理中波達方向(DOA)估計等算法,獲得聲源的來波方向。然后用單片機去驅(qū)動云臺,上面搭載攝像頭或者高指向性麥克風(fēng),可以實現(xiàn)用戶特定的跟蹤需求。
我們結(jié)合瑞薩單片機的性能與實際測試效果,選用了周期圖法進行角度估計,利用頻率采樣型的FIR濾波器實現(xiàn)了對人聲信號的切片,并對得到的角度結(jié)果進行低通濾波、設(shè)定閾值、非線性約束等處理,解決了環(huán)境噪聲、室內(nèi)混響等因素帶來的問題。此外,我們將陣列置于云臺上,進一步提高了跟蹤的精度,云臺的驅(qū)動采用步進方式,實現(xiàn)了實時跟蹤。最后,我們將所有算法移植到瑞薩單片機上,制作了GUI界面,并添加了噪聲訓(xùn)練功能,使之成為一個完整的系統(tǒng)。
0 引言
當(dāng)今社會,人們對自動控制的需求越來越高,而其中一個重要的分支就是目標(biāo)跟蹤技術(shù)。伴隨著人工智能的熱潮,通過圖像識別來進行目標(biāo)跟蹤是現(xiàn)在的主流做法,但是神經(jīng)網(wǎng)絡(luò)算法的復(fù)雜度極高,不可能在普通的MCU上實現(xiàn),只能借助于一些高性能的芯片如FPGA,這樣就會需要較高的成本。其實在一些特定場合,可以通過或者只能通過聲源定位的方法進行目標(biāo)跟蹤,而其中用到的陣列信號處理技術(shù)經(jīng)過改進和優(yōu)化之后,可以將算法移植到普通的MCU中進行實現(xiàn),從而可以保證跟蹤效果的同時降低產(chǎn)品的成本。
現(xiàn)在隨著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)公開課越來越受歡迎,而網(wǎng)絡(luò)公開課的錄制就需要對講課的教師進行攝像跟蹤,在這種場景下,就可以利用陣列信號處理中的DOA技術(shù)對聲源進行估計,從而使云臺轉(zhuǎn)動,跟蹤攝像目標(biāo)。除此之外,現(xiàn)在的城市中,為了減少噪音污染,有不少的禁止鳴笛區(qū)。在這些鳴笛區(qū)中,為了精確地抓拍到違章鳴笛的車輛,就必須要用到聲源定位,這里就需要陣列麥克風(fēng)進行波達方向估計,才能精確地找到違章車輛。在這些場景下使用DOA估計來實現(xiàn)目標(biāo)跟蹤是完全可以滿足要求的,而且可以在單片機上實現(xiàn),并且可以最大限度地節(jié)省計算資源。
1 作品設(shè)計與實現(xiàn)
1.1 系統(tǒng)方案
先用六陣元線陣的陣列麥克風(fēng)進行拾音,然后使用Renesas(瑞薩)SK-S7G2單片機的ADC進行采樣,采樣率8000Hz,采樣結(jié)束之后對采樣數(shù)據(jù)進行DOA估計(波達方向估計),把估計出來的角度與當(dāng)前云臺的角度比較,來確定是否轉(zhuǎn)動云臺以及轉(zhuǎn)動方向,從而使攝像頭或者高指向性麥克風(fēng)對準(zhǔn)聲源,實現(xiàn)聲源跟蹤的目的。
1.2 理論分析及計算
1.2.1 陣列信號處理基本模型
陣列信號處理(Array Signal Processing)作為信號處理的一個重要內(nèi)容,其含義是指將一批傳感器按照特定陣列流型放置在空域中,對空域信號進行采樣,得到信源的空域采樣數(shù)據(jù)并進行處理。
在傳統(tǒng)的陣列信號處理中,主要處理的是窄帶信號,窄帶信號是指帶寬遠遠小于中心頻率的信號,并且假設(shè)信號源位于陣列的遠場,因此可以使用平面波傳播理論,認(rèn)為信號平行入射,各陣元接收到的信號之間沒有幅度差異,只存在傳播延時造成的相位差異。最常用的是均勻線陣,其遠場模型如圖2所示。
其中θ為信號入射方向角,d為陣元間距。為“避免混疊”,陣元間距一般取入射信號的半波長。記信號波長為λ,陣元個數(shù)為N ,陣列等效孔徑為:
可以將麥克風(fēng)陣列和單片機ADC結(jié)合起來看作進行空間采樣的裝置,陣列每接收一次數(shù)據(jù)就是在空間的一次采樣或者快拍(snapshot),陣列信號就是由快拍組成的向量序列。均勻線陣是在空間的一條直線上均勻采樣,它對應(yīng)于時間序列的均勻采樣。由于陣元間距 為空間采樣間隔, 即為空間采樣頻率,而為陣列信號的空間頻率。與奈奎斯特采樣定理相似,為避免空域混疊,對空間采樣頻率有一定的要求:
(3)
12.2 頻率切片
傳統(tǒng)陣列信號處理的模型與算法都是建立在窄帶信號的條件下,可是語音信號的頻率范圍為300~3400 Hz,帶寬較大,所以不能對語音信號直接進行處理,要先通過頻率采樣型的FIR濾波器進行頻率切片,然后對切片之后的數(shù)據(jù)進行處理。頻率采樣濾波器由一個梳狀濾波器和一個諧振器組成。
頻率采樣型結(jié)構(gòu)中諧振器的極點恰好各自抵消梳狀濾波器的零點,其系數(shù)就是濾波器在處的響應(yīng)。為了防止濾波器不穩(wěn)定,可以將梳狀濾波器的零點和諧振器的極點同時向圓內(nèi)移一點,就可以保證濾波器的穩(wěn)定,即:
(7)
頻率采樣型結(jié)構(gòu)的作用就是一個“濾波器柜”,想要濾出信號的某個頻率分量,只需在對應(yīng)的那一路后面接抽頭,輸出即為該頻率分量的時域信號。所以只要把語音信號以200 Hz為間隔切片,得到各個頻率分量的窄帶信號,對窄帶信號進行處理之后再相加即可。
1.2.3 DOA(波達方向估計)
(1)DOA估計的基本模型
在前面模型的基礎(chǔ)上,在只有一個聲源的情況下,陣列麥克風(fēng)各個陣元接收到的信號為:
實現(xiàn)DOA的算法有很多種,有周期圖法,Capon算法,Music算法等等,其中,周期圖法是在角度和頻率方向的二維搜索,相對穩(wěn)健,即使在有混響的情況下也能找到方向,并且該算法可以移植到單片機中進行實現(xiàn),而Music算法的仿真效果較好,其主瓣窄,旁瓣小,但算法復(fù)雜度較高,且極易受到混頻干擾的影響。在進行了實際實驗驗證之后,綜合樓室內(nèi)混響帶來的誤差,我們選擇了相對穩(wěn)健的周期圖法,下面簡單介紹一下周期圖法。
(2)周期圖法
周期圖法是通過算出每個角度入射信號的功率,然后找出最大值所對應(yīng)的角度,就是聲音信號入射的角度。做法是先對采集的N次快拍求平均估計自相關(guān)矩陣:
這種方法較為穩(wěn)健,從仿真結(jié)果來看,雖然主瓣較寬,但在精度要求不是十分嚴(yán)格的情況下可以應(yīng)用,尤其在有混頻干擾的情況下,周期圖法也能較為準(zhǔn)確地估計出角度。且該算法的復(fù)雜度較低,易于在單片機上實現(xiàn),所以我們就選擇了周期圖法,并且選用了6陣元的線陣,由于聲速v=340 m/s,人聲頻率在300~3400 Hz之間,其中f=1700 Hz對應(yīng)的半波長λ = 0.5*v/f = 0.1 m = 10 cm,陣元間距為10 cm。
1.3 系統(tǒng)優(yōu)化
1.3.1 頻率切片
傳統(tǒng)陣列信號處理的模型與算法都是建立在窄帶信號的條件下,可是語音信號的頻率范圍為300 Hz-3400 Hz,帶寬較大,所以不能對語音信號直接進行處理,要先進行切片。但是各個頻率分量的功率有很大區(qū)別,如果對300 Hz~3400 Hz都進行切片的話會造成計算資源的浪費,我們在實驗過后發(fā)現(xiàn)正常人聲在600 Hz~1200 Hz內(nèi)頻率分量的功率最大,所以我們在這個范圍內(nèi)進行切片,以200 Hz為間隔,共切四片。
1.3.2 結(jié)果濾波
為了提高系統(tǒng)的穩(wěn)定性和準(zhǔn)確性,我們進行了結(jié)果濾波,分為兩個階段:適應(yīng)噪聲和線性約束濾波。
(1)噪聲自適應(yīng)
在開始進行DOA估計且云臺跟蹤之前,需要先對電路噪聲及環(huán)境噪聲進行適應(yīng)。進入噪聲適應(yīng)模式之后,通過麥克風(fēng)采集當(dāng)前的電路及環(huán)境噪聲,計算其功率,然后設(shè)定一個合適的閾值。在之后的計算中,若功率大于閾值,則視為有用的聲音,否則視為噪聲,不計算角度。這樣可以有效地濾除底噪的干擾,當(dāng)人停止說話時,攝像頭不會因為噪聲的干擾而隨意擺動。
(2)線性約束
為了提高系統(tǒng)的穩(wěn)定性以及減小放射徑的影響,我們采用了線性約束的方法,這樣能有效地減小突變以及放射徑的影響,即:
最終角度=0.8 上次角度+0.2 當(dāng)前計算角度
由于每一秒會計算出15次結(jié)果,所以難免會有一些計算出來的結(jié)果不太準(zhǔn)確,這樣使用了線性約束之后,即使有一些角度不太準(zhǔn)確也不會造成較大的影響,大大地提高了系統(tǒng)的穩(wěn)定性。
1.3.3 云臺目標(biāo)跟蹤
云臺的控制是通過單片機串口給解碼器發(fā)指令來完成的,并且采用了步進的方法控制。在云臺和麥克風(fēng)陣列擺放關(guān)系的問題上,我們采取的方案是陣列固定在云臺上面,跟隨云臺一起轉(zhuǎn)動,云臺根據(jù)DOA的估計結(jié)果不斷向0°方向靠攏。
2 參賽感受
本次比賽我們的作品得到了不少評委老師的肯定與認(rèn)可,并且摘得了本次比賽的最高獎瑞薩杯獎,我認(rèn)為是因為我們作品的以下一些亮點:首先,我們的作品的處理器只使用了組委會提供的開發(fā)板,在我們的不斷改進與優(yōu)化下,全部的算法與控制都在瑞薩單片機上實現(xiàn),把單片機的計算資源、內(nèi)存都運用到了極致。這樣就大大降低了成本,增加了把該作品變成產(chǎn)品推向市場的可能性。其次,我們的系統(tǒng)的穩(wěn)定性很好,我們使用了噪聲自適應(yīng)、線性約束、結(jié)果濾波等方法增加了系統(tǒng)的穩(wěn)定性,并且在不同的環(huán)境下都進行了測試。還有一點,就是實際應(yīng)用價值較高,現(xiàn)在的市場對聲源定位的需求越來越高,可以在網(wǎng)絡(luò)視頻自動錄制、鳴笛抓拍等場景中有廣泛的應(yīng)用。
這次的比賽,我們收獲的不僅僅是瑞薩杯這個獎項,更多的是在比賽過程中能力的提升。在這個過程中,我們不僅在理論知識上得到了提高,動手能力也有了很大的進步,解決問題的能力也得到了很大的提升,意志力也得到了鍛煉,在即將升入大四,開始更多地接觸科研任務(wù)之際,這次比賽也給了我們很多前行的動力和信心。
參考文獻:
[1]McCowan I A.,Robust Speech Recognition using Microphone Arrays[D]. Queensland University of Technology,Australia,2001.
[2]梁玉杰. 基于超格點DOA的室內(nèi)無線傳感器網(wǎng)絡(luò)定位技術(shù)研究[D]. 上海:上海交通大學(xué),2015-4-7.
[3]Jacob Benesty,Jingdong Chen,Yiteng Huang,Microphone Array Signal Processing[M]. 北京:國防工業(yè)出版社,2015.
[4]張小飛,陳華偉,仇小鋒. 陣列信號處理及MATLAB實現(xiàn)[M].北京:電子工業(yè)出版社,2014.
[5]姚天任. 數(shù)字信號處理[M]. 北京:清華大學(xué)出版社,2011.
本文來源于《電子產(chǎn)品世界》2018年第12期第48頁,歡迎您寫論文時引用,并注明出處。
評論