林鈺哲,姚璇
(1.杭州電子科技大學 電子信息學院,浙江杭州,310018;2.浙江工業(yè)大學 信息工程學院,浙江杭州,310018)
在智能機器人、智能駕駛、視頻會議等眾多領域中,麥克風陣列信號處理仍處于重要地位。而聲源定位與追蹤技術是麥克風陣列信號處理中的關鍵技術。未來該技術的應用場景非常廣泛,在多個高新領域中都有重要意義,對其開展研究具有很強的理論意義與實踐價值??紤]到實際使用中,存在一些嵌入式開發(fā)板算力不足或是使用場景有一定時效性的要求,在眾多聲源定位技術中,TDOA 定位方法因其具有兼顧低運算量以及較高精度等優(yōu)勢,成為實際使用中的不二選擇。TODA 方法的定位過程可以分為以下兩個階段:(1)對于聲音信號到達麥克風之間的時間差進行估計;(2)通過聲源定位算法確定聲源的位置。綜合以上優(yōu)勢,本文決定采用TDOA 定位方法,設計了一個對近場聲源進行實時識別定位與追蹤的系統(tǒng)。
使用Sipeed 麥克風陣列對聲源所發(fā)出的聲音信號進行收集后進行簡單的處理,將信息通過K210 微處理器的特制端口傳遞到芯片中,使用TDOA 算法對麥克風陣列傳過來的信號進行計算和處理后,在算法中加入了對角度的修正,在處理出了各個麥克風方向的角度和強度后,用向量合成的方法來進行聲音方向的判斷,對其進行x,y方向角度的修正,多次調用該過程收集所得的角度,去掉最大最小角度,其余角度取均值得到一個誤差相對來說較小的角度,通過改變舵機占空比來控制舵機的運動。對于紅外線的控制,本文使用了對每個麥克風信號累加求和的方式,若麥克風的累加強度大于一個閾值則紅外燈亮,反之則不亮??傮w思路為麥克風陣列驅動K210 微處理器,K210 通過輸出信號驅動舵機和紅外線模塊工作。在系統(tǒng)中具體軟硬件具體誤差消除方法如下:
由于考慮到地面反射的聲音和舵機轉動產(chǎn)生的噪音對系統(tǒng)識別和追蹤聲源的影響,將麥克風陣列放置在舵機模塊的高處,使用立柱固定住高處的麥克風陣列,用膠槍固定底部的舵機,盡量消除了舵機轉動的聲音對識別聲音方向帶來的干擾。進一步提高識別,追蹤的精確度。
該系統(tǒng)采用的麥克風陣列,可以分析十二個圓等分的角度上聲音的強度和方向,使用向量的加法運算找出音源的方向,使用去最大值和最小值后取均值的方法來進行誤差的消除,首先使用getdir 函數(shù)對聲音進行多次提取,進一步得到聲源的強度,隨后對聲源強度進行取均值操作,進一步減小隨機誤差,最后,通過不斷迭代的方式,對于所求的的平均值,進行不斷地更新,使得所預測值可以更接近目標值,提高系統(tǒng)精度。除此之外,為適應聲源追蹤實時性需求,本系統(tǒng)通過更改迭代次數(shù),進一步縮短系統(tǒng)的響應,以此達到時效性要求。
圖1 系統(tǒng)整體方案框圖
麥克風陣列,采用麥克風模塊組裝而成,同時其中采用電容式駐極體話筒,可以將音頻信號轉換為電信號,之后使用固定端口與K210 進行通信。
圖2 麥克風陣列電路
云臺主要通過舵機來帶動運轉,舵機驅動電路如圖3所示,本系統(tǒng)所使用的舵機額定工作電壓為6.0V,電路設計使用的是Buck 電路,進行降壓操作,通過選擇,最終選定采用XLSEMI 公司的設計的XL4015 降壓芯片。單芯片的最大持續(xù)輸出電流高達5A。輸出電壓等于,經(jīng)過計算選取R5=11.5kΩ,R2=3.3kΩ。
圖3 舵機驅動電路
圖4 微處理器K210 電路
接受麥克風陣列傳入的信息后計算角度和距離,將角度信息轉換為占空比傳遞給舵機,用各個麥克風聲音強度信息來控制紅外模塊的開關信息。
使用自制的萬向輪小車拖動聲源移動播放,聲源采用微型藍牙音箱內置SD 卡可以存儲聲音離線播放。
本實驗以2.8 寸的LCD 屏作為屏幕,如圖5 所示,其驅動電壓為3.3V,使用的驅動為ST7789V,通過8 位接口與K210 微處理器進行信息傳輸。
圖5 LCD 屏幕
圖6 KY—008 激光頭傳感器
采用KY-008激光頭傳感器模塊,其工作電壓為5V,光源的波長為650nm,符合實際使用需要。通過接收K210 微處理器的信號,當各個麥克風收到的聲音強度大于設定值時,激光開啟。
系統(tǒng)軟件流程圖如圖7 所示,輸入音頻信號對麥克風陣列進行驅動之后,使用getdir 函數(shù)來判斷麥克風放出的聲音是否被接收以及在數(shù)組中記錄聲源的強度。隨后,對數(shù)組進行累加求和計算總的聲源強度,若累加結果小于閾值2,則說明為接收到聲音信號,則系統(tǒng)處于預接收狀態(tài),紅外設備和舵機不工作;若接收到聲音信號,閾值大于2,開始對得到的音頻信息進行處理,對各個方向的麥克風聲音進行向量加法運算合成為一個音源方向,通過求取均值減小強度誤差和角度誤差。除此之外,程序設計通過按鈕key 來控制模式切換,模式一為精準定位模式,其代碼內取均值的次數(shù)和精度都較多,所以運行的速度比較緩慢,但比較精準,模式二為跟蹤模式,可以實時的跟蹤音源,但是精度不如模式一高。
圖7 系統(tǒng)軟件主流程框圖
本系統(tǒng)的麥克風陣列取得聲源的音頻信號后,由于受環(huán)境等多因素影響,音頻信號會混入噪聲,所以利用K210 處理器執(zhí)行預設定算法,對該信號進行快速傅里葉變換(FFT),進而輸出純凈的音頻信號。
本系統(tǒng)中使用的云臺通過K210 微處理器計算聲源信號所處位置,輸出信號進而通過調整占空比,來控制云臺的轉向操作,使得紅外線裝置指向聲源位置。
因此發(fā)射聲音與拾音器之間滿足式(1):
然后可知Dis 代表發(fā)聲電路的第i 個接收模塊的距離差,則雙曲線定位中發(fā)生位置(x,y)和拾音器(xi,yi)滿足式(2):
采用相位檢波的方法,進一步將兩路正弦波直接的相位差轉換為電壓,隨后采用ADC 通過測量電壓,進而反向計算得到相位差,最終就可以通過方程組求解來實現(xiàn)聲源定位[1~2]。
實驗裝置能對聲源方向進行識別并計算距離,如圖8所示。
圖8 實驗裝置
將聲源識別裝置放置在符合比賽要求的場地上,將聲源放置在與識別裝置夾角分別為0°、10°、-10°、15°、-15°、20°和-20°的位置。測得聲源與識別裝置間的夾角與距離,并在LCD 屏幕上顯示,測試內容記錄在表1 中。
表1 聲源識別系統(tǒng)測試結果
用細繩拖動載有聲源的音響移動,速度控制在0.1 左右,緩慢拖動其從一頭滑向另一頭,觀察激光是否追蹤,測試內容記錄在表2 中。
表2 聲源跟蹤系統(tǒng)測試結果
本系統(tǒng)對每個角度共進行了3 次測試,在模式一:聲源識別系統(tǒng)測試中,對各角度進行充分的測試,相對來說,測量精度較高,且可以較快地對于聲源移動進行響應,大致響應時間為2s 左右。而針對模式二:聲源跟蹤系統(tǒng)測試中,可以明顯看到測量誤差有所提升,但是同時帶來了響應時間的下降大致在1.2s 左右??偟膩碚f,多個麥克風傳入,導致信號計算產(chǎn)生的誤差會使得偏差顯著增大,誤差出現(xiàn)的主要原因有一:墻壁之間的和地面之間有聲音反射帶來干擾導致測量結果不穩(wěn)定;二:舵機旋轉的聲音干擾了麥克風陣列判斷方向。
本系統(tǒng)對聲源進行識別定位以及追蹤的功能,從測試的結果來看,本系統(tǒng)有較高的精確度以及較低的耗時,所以有著較好的應用前景,可以進一步發(fā)展,降低誤差以及耗時。與此同時,本系統(tǒng)仍然存在一定的局限性,對于測量目標距離有一定限制,無法對過遠距離的目標應用;對于測量環(huán)境要求較高,由于地面以及墻面對于聲音的反射會對測量結果帶來干擾,需要對該系統(tǒng)的魯棒性進行提高,從而改進該系統(tǒng)的穩(wěn)定性和精度,進一步研究將會朝著優(yōu)化該系統(tǒng)的方向進行,例如采用較為先進的盲波束形成算法,它們的共同特點是在于不需要陣列校驗、波達方向、訓練序列、干擾和噪聲的空間自相關矩陣等的先驗知識[3]。