林鈺哲,姚璇
(1.杭州電子科技大學 電子信息學院,浙江杭州,310018;2.浙江工業大學 信息工程學院,浙江杭州,310018)
在智能機器人、智能駕駛、視頻會議等眾多領域中,麥克風陣列信號處理仍處于重要地位。而聲源定位與追蹤技術是麥克風陣列信號處理中的關鍵技術。未來該技術的應用場景非常廣泛,在多個高新領域中都有重要意義,對其開展研究具有很強的理論意義與實踐價值。考慮到實際使用中,存在一些嵌入式開發板算力不足或是使用場景有一定時效性的要求,在眾多聲源定位技術中,TDOA 定位方法因其具有兼顧低運算量以及較高精度等優勢,成為實際使用中的不二選擇。TODA 方法的定位過程可以分為以下兩個階段:(1)對于聲音信號到達麥克風之間的時間差進行估計;(2)通過聲源定位算法確定聲源的位置。綜合以上優勢,本文決定采用TDOA 定位方法,設計了一個對近場聲源進行實時識別定位與追蹤的系統。
使用Sipeed 麥克風陣列對聲源所發出的聲音信號進行收集后進行簡單的處理,將信息通過K210 微處理器的特制端口傳遞到芯片中,使用TDOA 算法對麥克風陣列傳過來的信號進行計算和處理后,在算法中加入了對角度的修正,在處理出了各個麥克風方向的角度和強度后,用向量合成的方法來進行聲音方向的判斷,對其進行x,y方向角度的修正,多次調用該過程收集所得的角度,去掉最大最小角度,其余角度取均值得到一個誤差相對來說較小的角度,通過改變舵機占空比來控制舵機的運動。對于紅外線的控制,本文使用了對每個麥克風信號累加求和的方式,若麥克風的累加強度大于一個閾值則紅外燈亮,反之則不亮。總體思路為麥克風陣列驅動K210 微處理器,K210 通過輸出信號驅動舵機和紅外線模塊工作。在系統中具體軟硬件具體誤差消除方法如下:
由于考慮到地面反射的聲音和舵機轉動產生的噪音對系統識別和追蹤聲源的影響,將麥克風陣列放置在舵機模塊的高處,使用立柱固定住高處的麥克風陣列,用膠槍固定底部的舵機,盡量消除了舵機轉動的聲音對識別聲音方向帶來的干擾。進一步提高識別,追蹤的精確度。
該系統采用的麥克風陣列,可以分析十二個圓等分的角度上聲音的強度和方向,使用向量的加法運算找出音源的方向,使用去最大值和最小值后取均值的方法來進行誤差的消除,首先使用getdir 函數對聲音進行多次提取,進一步得到聲源的強度,隨后對聲源強度進行取均值操作,進一步減小隨機誤差,最后,通過不斷迭代的方式,對于所求的的平均值,進行不斷地更新,使得所預測值可以更接近目標值,提高系統精度。除此之外,為適應聲源追蹤實時性需求,本系統通過更改迭代次數,進一步縮短系統的響應,以此達到時效性要求。

圖1 系統整體方案框圖
麥克風陣列,采用麥克風模塊組裝而成,同時其中采用電容式駐極體話筒,可以將音頻信號轉換為電信號,之后使用固定端口與K210 進行通信。

圖2 麥克風陣列電路
云臺主要通過舵機來帶動運轉,舵機驅動電路如圖3所示,本系統所使用的舵機額定工作電壓為6.0V,電路設計使用的是Buck 電路,進行降壓操作,通過選擇,最終選定采用XLSEMI 公司的設計的XL4015 降壓芯片。單芯片的最大持續輸出電流高達5A。輸出電壓等于,經過計算選取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 微處理器的信號,當各個麥克風收到的聲音強度大于設定值時,激光開啟。
系統軟件流程圖如圖7 所示,輸入音頻信號對麥克風陣列進行驅動之后,使用getdir 函數來判斷麥克風放出的聲音是否被接收以及在數組中記錄聲源的強度。隨后,對數組進行累加求和計算總的聲源強度,若累加結果小于閾值2,則說明為接收到聲音信號,則系統處于預接收狀態,紅外設備和舵機不工作;若接收到聲音信號,閾值大于2,開始對得到的音頻信息進行處理,對各個方向的麥克風聲音進行向量加法運算合成為一個音源方向,通過求取均值減小強度誤差和角度誤差。除此之外,程序設計通過按鈕key 來控制模式切換,模式一為精準定位模式,其代碼內取均值的次數和精度都較多,所以運行的速度比較緩慢,但比較精準,模式二為跟蹤模式,可以實時的跟蹤音源,但是精度不如模式一高。

圖7 系統軟件主流程框圖
本系統的麥克風陣列取得聲源的音頻信號后,由于受環境等多因素影響,音頻信號會混入噪聲,所以利用K210 處理器執行預設定算法,對該信號進行快速傅里葉變換(FFT),進而輸出純凈的音頻信號。
本系統中使用的云臺通過K210 微處理器計算聲源信號所處位置,輸出信號進而通過調整占空比,來控制云臺的轉向操作,使得紅外線裝置指向聲源位置。
因此發射聲音與拾音器之間滿足式(1):
然后可知Dis 代表發聲電路的第i 個接收模塊的距離差,則雙曲線定位中發生位置(x,y)和拾音器(xi,yi)滿足式(2):
采用相位檢波的方法,進一步將兩路正弦波直接的相位差轉換為電壓,隨后采用ADC 通過測量電壓,進而反向計算得到相位差,最終就可以通過方程組求解來實現聲源定位[1~2]。
實驗裝置能對聲源方向進行識別并計算距離,如圖8所示。

圖8 實驗裝置
將聲源識別裝置放置在符合比賽要求的場地上,將聲源放置在與識別裝置夾角分別為0°、10°、-10°、15°、-15°、20°和-20°的位置。測得聲源與識別裝置間的夾角與距離,并在LCD 屏幕上顯示,測試內容記錄在表1 中。

表1 聲源識別系統測試結果
用細繩拖動載有聲源的音響移動,速度控制在0.1 左右,緩慢拖動其從一頭滑向另一頭,觀察激光是否追蹤,測試內容記錄在表2 中。

表2 聲源跟蹤系統測試結果
本系統對每個角度共進行了3 次測試,在模式一:聲源識別系統測試中,對各角度進行充分的測試,相對來說,測量精度較高,且可以較快地對于聲源移動進行響應,大致響應時間為2s 左右。而針對模式二:聲源跟蹤系統測試中,可以明顯看到測量誤差有所提升,但是同時帶來了響應時間的下降大致在1.2s 左右。總的來說,多個麥克風傳入,導致信號計算產生的誤差會使得偏差顯著增大,誤差出現的主要原因有一:墻壁之間的和地面之間有聲音反射帶來干擾導致測量結果不穩定;二:舵機旋轉的聲音干擾了麥克風陣列判斷方向。
本系統對聲源進行識別定位以及追蹤的功能,從測試的結果來看,本系統有較高的精確度以及較低的耗時,所以有著較好的應用前景,可以進一步發展,降低誤差以及耗時。與此同時,本系統仍然存在一定的局限性,對于測量目標距離有一定限制,無法對過遠距離的目標應用;對于測量環境要求較高,由于地面以及墻面對于聲音的反射會對測量結果帶來干擾,需要對該系統的魯棒性進行提高,從而改進該系統的穩定性和精度,進一步研究將會朝著優化該系統的方向進行,例如采用較為先進的盲波束形成算法,它們的共同特點是在于不需要陣列校驗、波達方向、訓練序列、干擾和噪聲的空間自相關矩陣等的先驗知識[3]。