□□ 蔚志堅(jiān)
(山西職業(yè)技術(shù)學(xué)院,山西 太原 030006)
隨著科技不斷改善人們的生活環(huán)境,定位系統(tǒng)已經(jīng)填充在生活的各個(gè)角落。居家民用、工業(yè)生產(chǎn)以及軍事重地均有應(yīng)用。研究聲源的檢測(cè)與定位系統(tǒng)逐漸成為開(kāi)發(fā)人員研究的新熱點(diǎn)。判斷聲音的垂直和水平方位及探測(cè)方與聲源的距離是聲源定位的基本要求。精確的聲源定位可以讓人們快速判斷出聲源位置,以確保安全距離盡快躲避潛在危險(xiǎn),這正是人與動(dòng)物所具備的基本生存能力。當(dāng)人行走在路上,不需要回頭依然可以大概判斷出后方來(lái)車(chē)情況,同時(shí)借助于視覺(jué)進(jìn)一步確定目標(biāo),以保證行人安全的行進(jìn)過(guò)程。但當(dāng)遇到上下班等高峰時(shí),聲源環(huán)境變得嘈雜且混亂,甚至無(wú)法確定同行者的位置。此時(shí)聲源定位能力可以幫助人們第一時(shí)間確定通信者,并且完成預(yù)期交談內(nèi)容。這是人體自身聲源定位系統(tǒng)的基本功能。但是對(duì)于聲源定位較差的人,或者特殊情況下無(wú)法采用主動(dòng)聲源探測(cè)定位系統(tǒng),則需要被動(dòng)地進(jìn)行聲源定位。
K210人工智能單片機(jī)是采用超低功耗的28 nm先進(jìn)制程,雙核64位RISC-V處理器,內(nèi)置多種硬件加速單元。每個(gè)核心內(nèi)置獨(dú)立FPU,可單獨(dú)進(jìn)行浮點(diǎn)運(yùn)算,自帶計(jì)算卷積人工神經(jīng)網(wǎng)絡(luò)加速器KPU,以及處理麥克風(fēng)陣列的APU,能夠進(jìn)行高性能機(jī)器視覺(jué)和聽(tīng)覺(jué)處理,總算力可達(dá)10 000億次[1]。此單片機(jī)具有視聽(tīng)一體、自主IP內(nèi)核及可編程能力強(qiáng)三大特點(diǎn),能夠支持多種神經(jīng)網(wǎng)絡(luò)算法,支持機(jī)器視覺(jué)與聽(tīng)覺(jué)多模態(tài)識(shí)別,可廣泛應(yīng)用于智能廠區(qū)、智能家居和智能城市等場(chǎng)景。
麥克風(fēng)是一種將聲音轉(zhuǎn)換成電信號(hào)的能量轉(zhuǎn)換裝置,通常只有一個(gè)信號(hào),靈敏度低且音色中夾雜的噪聲多。而麥克風(fēng)陣列是將兩個(gè)及以上的麥克風(fēng)信號(hào)通過(guò)陣列耦合為一個(gè)信號(hào),耦合后的信號(hào)強(qiáng)度增大,通過(guò)芯片可以消除聲源環(huán)境中的干擾噪聲,提升音色的辨識(shí)度[2]。麥克風(fēng)陣列在手機(jī)和平板電腦等電子設(shè)備中使用較多,通過(guò)兩個(gè)麥克風(fēng)接收聲波,利用兩個(gè)聲波相位差值對(duì)聲波進(jìn)行過(guò)濾,從而最大程度地將環(huán)境中不需要的背景聲音去掉,僅留下有用聲波[3]。
擬設(shè)計(jì)一種利用電子設(shè)備確定聲源目標(biāo)位置的系統(tǒng)。以K210單片機(jī)主控制核心,基于聲學(xué)傳感器麥克風(fēng)陣列,對(duì)聲場(chǎng)環(huán)境信號(hào)進(jìn)行收集。依靠估計(jì)聲源信號(hào)到達(dá)各個(gè)陣列單元的時(shí)間差值以及延遲時(shí)間估計(jì)的方法,實(shí)現(xiàn)被動(dòng)聲源信號(hào)的方向和測(cè)距。PWM通過(guò)脈沖寬度波控制舵機(jī)帶動(dòng)紅外激光儀轉(zhuǎn)動(dòng)指向聲源位置,同時(shí)在OLED屏上實(shí)時(shí)顯示出聲源目標(biāo)的準(zhǔn)確角度及方位。
1.1 傳聲定位設(shè)計(jì)
針對(duì)發(fā)聲目標(biāo)的追蹤定位分析,設(shè)計(jì)采用時(shí)延估計(jì)算法。因?yàn)槁曇粜盘?hào)在常溫下傳播速度為340 m·s-1,均勻列陣的結(jié)構(gòu)最簡(jiǎn)單,且處理方便,故系統(tǒng)采用6個(gè)麥克風(fēng)組成一維線性陣列作為聲源接收器,其陣列間距為10 cm。音頻依次經(jīng)過(guò)麥克風(fēng)后收到的聲音信號(hào)會(huì)產(chǎn)生時(shí)間差。在頻率響應(yīng)中根據(jù)時(shí)域中波束形成與空間濾波器相仿的應(yīng)用,分析出接收到聲源信號(hào)的方向及其變化。而這些分析可由極坐標(biāo)圖以波束形式來(lái)顯示語(yǔ)音信號(hào)的強(qiáng)度與角度。麥克風(fēng)矩陣中獨(dú)立設(shè)備收到聲源信號(hào)所表征出的機(jī)械性不完全相同,在頻率響應(yīng)中對(duì)同一聲源信號(hào)的響應(yīng)時(shí)間也不同,進(jìn)而估算出運(yùn)動(dòng)聲源的準(zhǔn)確位置。麥克風(fēng)矩陣中各獨(dú)立設(shè)備的MPA416相位差控制在3°,能更利于達(dá)到系統(tǒng)的精度和穩(wěn)定性要求。
1.2 舵機(jī)旋轉(zhuǎn)角度設(shè)計(jì)
聲音目標(biāo)和檢測(cè)裝置之間的連線與中心線的夾角設(shè)為θ,麥克風(fēng)陣列對(duì)運(yùn)動(dòng)中聲源進(jìn)行周期性檢測(cè),當(dāng)接收到音頻信號(hào)后經(jīng)過(guò)模/數(shù)轉(zhuǎn)換輸出所得電壓信號(hào)并傳輸?shù)絾纹瑱C(jī)。單片機(jī)利用延遲信號(hào)估算法對(duì)陣列信號(hào)進(jìn)行分析得出控制信號(hào),進(jìn)而對(duì)舵機(jī)實(shí)施機(jī)械控制轉(zhuǎn)向聲音目標(biāo)方向。在控制舵機(jī)的同時(shí)記錄其所處的角度,并對(duì)中心值進(jìn)行比較,即可確定舵機(jī)轉(zhuǎn)角θ。
1.3 聲音目標(biāo)測(cè)定設(shè)計(jì)
麥克風(fēng)將按照語(yǔ)音定位時(shí)的最優(yōu)空間位置進(jìn)行排布。由于這些麥克風(fēng)矩陣中各個(gè)麥克風(fēng)的空間位置不同,故其聲源信號(hào)之間存在延遲,這正是聲音目標(biāo)測(cè)定的關(guān)鍵。設(shè)聲音目標(biāo)為D,檢測(cè)裝置為C,兩者之間的直線距離為S。通過(guò)多次測(cè)試,發(fā)現(xiàn)同一音頻信號(hào)被麥克風(fēng)矩陣中不同位置麥克風(fēng)接收的時(shí)間存在間隔,以此時(shí)間差作為6個(gè)接收器采集到的聲音信號(hào)為變化量,則可推算出運(yùn)動(dòng)物體發(fā)出聲源的位置,進(jìn)而精準(zhǔn)定位其移動(dòng)的具體路線。
1.4 顯示模塊設(shè)計(jì)
常規(guī)顯示可以采用耐老化和低功耗的數(shù)碼管顯示,但是其存在兩點(diǎn)不足:一是常規(guī)數(shù)碼管與K210單片機(jī)連接時(shí),需外接鎖存器對(duì)顯示數(shù)據(jù)進(jìn)行鎖存,同時(shí)使用三極管進(jìn)行電路驅(qū)動(dòng),整體設(shè)計(jì)相對(duì)復(fù)雜;二是常規(guī)數(shù)碼管無(wú)法顯示漢字,只能顯示少量字符,不能滿足設(shè)計(jì)要求,OLED屏更適合設(shè)計(jì)要求。OLED是一種電流型有機(jī)發(fā)光器件,通過(guò)載流子的流動(dòng)和復(fù)合而產(chǎn)生發(fā)光現(xiàn)象,且發(fā)光強(qiáng)弱與流入電流成正比。OLED屏色彩鮮艷,通過(guò)覆有薄涂層的有機(jī)材料做為基板,當(dāng)有電流流過(guò)時(shí)有機(jī)材料會(huì)自動(dòng)發(fā)光。另外,其顯示屏幕可視角度大,減少普通LED的背光且可以彎曲,功耗大大降低,并且顯示屏可與單片機(jī)直接相連,電路設(shè)計(jì)及連接簡(jiǎn)單更適合設(shè)計(jì)方案。
2.1 硬件電路的設(shè)計(jì)
硬件設(shè)計(jì)由主控電路板、聲音傳感器和直流舵機(jī)等部分組成,主控電路板由K210單片機(jī)、麥克風(fēng)矩陣電路、OLED顯示器和電源等組成部分,系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)總體框圖
由K210單片機(jī)完成控制任務(wù),通過(guò)主控制器K210單片機(jī)接收的PWM波形來(lái)控制直流舵機(jī)的運(yùn)轉(zhuǎn),提高了精度。由K210自帶的麥克風(fēng)定位函數(shù)可以得到12個(gè)聲音目標(biāo)的強(qiáng)度采樣值。將前6個(gè)強(qiáng)度采樣值取反,后6個(gè)值采樣不變,然后將變化前后12個(gè)值相加可得出總聲源采樣強(qiáng)度值。由于目標(biāo)物體存在移動(dòng)性,因而收到實(shí)時(shí)性的制約,將200 ms內(nèi)的總聲源采樣強(qiáng)度值進(jìn)行卡爾曼濾波,通過(guò)系統(tǒng)輸入輸出觀測(cè)數(shù)據(jù),對(duì)系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的算法,減少噪聲干擾[4]。通過(guò)測(cè)試,可以得到聲源采樣強(qiáng)度的兩個(gè)邊界值為Amin和Amax,通過(guò)計(jì)算可以得到約為±π/6內(nèi)的最大和最小值。當(dāng)θ<0時(shí),當(dāng)前角度θ為當(dāng)前總聲源采樣強(qiáng)度值θmin(最小聲強(qiáng)值);當(dāng)θ>0時(shí),當(dāng)前角度θ為當(dāng)前總聲源采樣強(qiáng)度值θmax(最大聲強(qiáng)值)。再根據(jù)θ得出位置坐標(biāo)(Px,Py)和距離S,將聲源位置實(shí)時(shí)顯示在OLED屏上。最后單片機(jī)通過(guò)控制PWM波的占空比,來(lái)精準(zhǔn)控制舵機(jī)的運(yùn)轉(zhuǎn),紅外激光配合即完成指示跟蹤。電路原理圖如圖2所示。
圖2 系統(tǒng)電路原理圖
2.2 主要程序設(shè)計(jì)
系統(tǒng)軟件部分由STM32主控電路、K210芯片模塊和麥克風(fēng)陣列組成的聲音目標(biāo)信號(hào)采集系統(tǒng)構(gòu)成。C語(yǔ)言編寫(xiě)主控程序完成距離計(jì)算。具體流程為串口收到K210芯片采集的數(shù)據(jù),PWM調(diào)制來(lái)實(shí)現(xiàn)聲音大小的調(diào)節(jié),經(jīng)過(guò)時(shí)延估計(jì)算和濾波后得到聲音目標(biāo)與麥克風(fēng)陣列之間的最短距離[5]。由距離轉(zhuǎn)換出θ角,控制舵機(jī)轉(zhuǎn)動(dòng)紅色激光指向目標(biāo),同時(shí)在OLED上顯示角度和距離。對(duì)K210芯片模塊與麥克風(fēng)陣列構(gòu)成的聲音目標(biāo)信號(hào)采集,可實(shí)現(xiàn)K210芯片通過(guò)麥克風(fēng)陣列采集自制聲源的聲音信號(hào),并對(duì)采集到的信號(hào)進(jìn)行處理,并由串口通信傳輸給STM32單片機(jī)。
2.2.1聲源定位跟蹤系統(tǒng)程序
原始數(shù)據(jù)由麥克風(fēng)陣列采集,首先通過(guò)卡爾曼濾波進(jìn)行預(yù)處理,將環(huán)境噪聲盡可能降低;最后采用時(shí)延估計(jì)算法,計(jì)算出聲源的相對(duì)位置,如圖3所示。
圖3 系統(tǒng)電路原理圖
2.2.2主程序
開(kāi)機(jī)之后,可通過(guò)觸摸屏選擇任務(wù)。任務(wù)一為靜態(tài)定位,通過(guò)數(shù)據(jù)處理程序計(jì)算出聲源位置并顯示到LCD屏上,檢測(cè)用戶是否按下了切換任務(wù)按鈕,如果沒(méi)有,繼續(xù)檢測(cè),否則跳出此任務(wù);任務(wù)二是在任務(wù)一基礎(chǔ)上,添加了激光筆指示功能;任務(wù)三的聲源是移動(dòng)的,首先啟動(dòng)拖拽裝置,使得聲源勻速移動(dòng)。同時(shí)處理器進(jìn)行數(shù)據(jù)處理,定位聲源,并用激光筆的光點(diǎn)跟蹤聲源移動(dòng)。具體如圖4所示。
圖4 主程序流程圖
3.1 測(cè)試方案
測(cè)試原理如圖5所示,具體如下:
圖5 測(cè)試原理
(1)在給定的自制聲源檢測(cè)裝置上標(biāo)記A點(diǎn)為指定測(cè)試參考點(diǎn)。B點(diǎn)為隨機(jī)聲音目標(biāo)點(diǎn),A、B兩點(diǎn)直線距離為S;將A點(diǎn)可作為坐標(biāo)原點(diǎn),線段AB與水平中線之間的夾角為θ,通過(guò)測(cè)量記錄S和θ的數(shù)值,進(jìn)行誤差計(jì)算。
(2)確定舵機(jī)位置控制紅色激光筆指向聲源。延時(shí)估算時(shí),紅色激光關(guān)閉;延時(shí)估算完成后,紅色激光開(kāi)啟。測(cè)試聲音目標(biāo)時(shí),測(cè)試過(guò)程記錄反應(yīng)時(shí)間、光點(diǎn)以及到達(dá)B點(diǎn)的偏差,并對(duì)聲音目標(biāo)進(jìn)行動(dòng)態(tài)跟蹤。在D區(qū)域內(nèi),將聲音目標(biāo)緩慢移動(dòng)時(shí),紅色激光會(huì)指向B,記錄光點(diǎn)與B點(diǎn)的偏差,跟蹤反應(yīng)時(shí)間。
3.2 測(cè)試結(jié)果及數(shù)據(jù)
通過(guò)改變?chǔ)鹊拇笮?所得距離S也將變化,記錄數(shù)據(jù)并計(jì)算誤差,具體見(jiàn)表1~3。
表2 直線距離S測(cè)試記錄
表3 移動(dòng)目標(biāo)追蹤測(cè)試記錄
分析測(cè)試結(jié)果可得θ角平均誤差為0.9%,最大誤差為1.5%;直線距離S平均誤差為0.71%,最大誤差為1.3%。測(cè)量位置平均誤差為1.3%,最大偏差≯1.5 cm,反應(yīng)時(shí)間平均誤差為0.96,最大誤差≯1.5 s,定位跟蹤反應(yīng)速度快,效果較好。
從測(cè)試數(shù)據(jù)分析可得,設(shè)計(jì)的聲源定位系統(tǒng)在一般室內(nèi)狀態(tài)下可以較好地實(shí)現(xiàn)聲音目標(biāo)的定位。但是現(xiàn)實(shí)環(huán)境和試驗(yàn)環(huán)境存在很大差異,同時(shí)存在不可預(yù)料性和復(fù)雜性,且無(wú)法消除。所以在嘈雜的環(huán)境下定位精度會(huì)受到客觀因素影響而下滑。
設(shè)計(jì)對(duì)聲音目標(biāo)的識(shí)別采集和追蹤定位功能均實(shí)現(xiàn),且具有良好的精準(zhǔn)度及低功耗。通過(guò)STM32單片機(jī)為信號(hào)控制輸出,K210芯片與麥克風(fēng)矩陣共同工作可完成紅外跟蹤、定位以及OLED屏幕顯示的整體功能,設(shè)計(jì)簡(jiǎn)單完成度好。但是在降低時(shí)間誤差和距離誤差等方面仍然存有局限性,目前僅對(duì)近距離目標(biāo)完成測(cè)試,今后除了在距離方面需要改進(jìn)外,還可以對(duì)測(cè)試環(huán)境提升難度。