王一群,李興旭,楊鴻波,劉 瓊,陳雯柏
(北京信息科技大學(xué)自動(dòng)化學(xué)院,北京 100096)
機(jī)器人聽覺系統(tǒng)是一種利用聲學(xué)傳感器采集聲音信號(hào)與外界環(huán)境完成感知與交互的方式。聲源定位是指利用聲音信號(hào),經(jīng)過處理和計(jì)算獲得聲源位置的技術(shù)。由于聲音信號(hào)和光信號(hào)存在著本質(zhì)上的區(qū)別,機(jī)器人聽覺系統(tǒng)在障礙物遮擋、能見度低等不利于視覺系統(tǒng)的工況下仍可有效工作,常獨(dú)立或輔助機(jī)器人視覺系統(tǒng)完成定位、導(dǎo)航、避障等工作[1]。
對(duì)于發(fā)聲目標(biāo)檢測(cè)應(yīng)用,基于聲音信號(hào)相比圖像方法,有著先天優(yōu)勢(shì),常用于軍事、工業(yè)和日常生活。如對(duì)汽車違法鳴笛抓拍[2-4],車輛與飛機(jī)等通過噪聲來源定位[5-7],工業(yè)異常工件檢查[8-9],管道氣體泄漏點(diǎn)檢測(cè)[10],智能監(jiān)控[11]。上述聲源定位應(yīng)用中的傳感器陣列多為固定安放,傳感器位置移動(dòng)中追蹤聲源的研究較少。
本文將設(shè)計(jì)一種通過聲音信號(hào)實(shí)現(xiàn)跟蹤拍攝的輪式機(jī)器人,并在室內(nèi)室外進(jìn)行機(jī)器人追蹤聲源功能試驗(yàn),分析性能與抗干擾能力,為機(jī)器人聽覺系統(tǒng)相關(guān)研究提供參考。
圖1 所示為常用目標(biāo)跟隨拍攝方式,而目前市面上支持目標(biāo)跟隨拍攝的智能設(shè)備主要分固定式[見圖1(a)]和手持式[見圖1(b)]2 種。固定式云臺(tái)因位置固定,限制被拍攝者僅能在小范圍內(nèi)移動(dòng)。手持式云臺(tái)需要借助人力完成跟隨。近年來無人機(jī)航拍(圖1(c)成為攝影師們的新寵,但仍存在著無法室內(nèi)使用、成本高昂、續(xù)航時(shí)間短和噪音大等問題。因此,成本低廉的輪式跟隨拍攝機(jī)器人存在一定市場(chǎng)。
圖1 常用目標(biāo)跟隨拍攝方式
本文提出的移動(dòng)機(jī)器人聲源定位與跟蹤攝錄系統(tǒng)主要分為音視頻采集、目標(biāo)檢測(cè)和控制跟隨3 個(gè)部分。音視頻采集部分調(diào)用硬件設(shè)備(麥克風(fēng)陣列、攝像頭)獲取并保存音頻和數(shù)字圖像信號(hào),以供后續(xù)算法使用。目標(biāo)檢測(cè)通過基于到達(dá)時(shí)間差的聲源定位方法(Time Difference of Arrival,TDOA)實(shí)現(xiàn),完成對(duì)發(fā)聲目標(biāo)位置的解算,包含2 個(gè)步驟:①估計(jì)目標(biāo)所發(fā)出聲音到不同麥克風(fēng)之間的時(shí)間差,再根據(jù)時(shí)間差和幾何關(guān)系解算出發(fā)聲目標(biāo)相對(duì)于麥克風(fēng)陣列的位置;②控制跟隨部分將利用解算出的位置信息,控制舵機(jī)與電動(dòng)機(jī)工作使小車靠近且跟隨目標(biāo)移動(dòng)。
常見的聲源定位算法有基于最大輸出功率的可控波束形成定位方法(Steered Beamforming,BS)、基于高分辨率估計(jì)的定位方法(High Resolution Spectral Estimation,HRSE)和TDOA。
本文考慮到機(jī)器人跟蹤發(fā)聲目標(biāo)屬于近場(chǎng)模型,且硬件計(jì)算能力有限,因此選擇使用TDOA。
處于不同位置的2 個(gè)麥克風(fēng)接收到來自聲源的聲音信號(hào),如圖2 所示。各麥克風(fēng)接收到的音頻信號(hào)x1(t)和x2(t)由下式表示:
圖2 聲源與各麥克風(fēng)空間位置關(guān)系示意圖
式中:S為聲源信號(hào);m1與m2為在不同時(shí)刻到達(dá)各麥克風(fēng)且?guī)в屑有栽肼?;t為傳播時(shí)間;τ1和τ2分別為聲源到達(dá)2 個(gè)麥克風(fēng)的延遲時(shí)間。由式(1)可得麥克風(fēng)之間的時(shí)延
通過測(cè)量獲得傳感器間距L,結(jié)合τ 與t,可計(jì)算出聲音在空氣中傳播的方向:
式中:c為聲音在空氣中的傳播,本文取c=340 m/s;β為智能車作極坐標(biāo)中心面對(duì)兩個(gè)聲源的中心線的夾角,正值表示聲源在車左側(cè),反之則在右側(cè)。
TDOA算法將聲源定位的問題轉(zhuǎn)化為求不同麥克風(fēng)接收時(shí)延的問題,時(shí)延估計(jì)的精度將直接影響到聲源定位的精度。
時(shí)延估計(jì)(Time delay estimation,TDE)方法中得到最廣泛應(yīng)用的是廣義互相關(guān)算法(Generalized Cross Correlation,GCC)和自適應(yīng)最小均方法(Least Mean Square,LMS)[12-13]??紤]到機(jī)器人對(duì)實(shí)時(shí)性的要求,本文選擇了計(jì)算量較小且能保證一定精度的GCC 方法。廣義GCC表達(dá)式如下:
式中:Ψ12(ω)為加權(quán)函數(shù);Gx1x2(ω)為信號(hào)互功率譜。
端點(diǎn)檢測(cè)是指從一段音頻信號(hào)中確定目標(biāo)聲音信號(hào)的起始點(diǎn)和結(jié)束點(diǎn)位置,利用語音端點(diǎn)檢測(cè)只對(duì)有目標(biāo)聲音的信號(hào)片段進(jìn)行處理,可以減少數(shù)據(jù)輸入及系統(tǒng)的運(yùn)行時(shí)間,并抑制噪聲對(duì)系統(tǒng)的干擾。
端點(diǎn)檢測(cè)常用方法有短時(shí)能量法、譜質(zhì)心和頻譜擴(kuò)展度法等[14]。其中,短時(shí)能量法是在時(shí)域?qū)用孢M(jìn)行端點(diǎn)檢測(cè),有著運(yùn)算量小、簡單易理解的優(yōu)點(diǎn),適合本次實(shí)驗(yàn)。
采集N幀語音信號(hào),計(jì)算第i幀語音信號(hào)yi(n)的短時(shí)能量
式中,yi(n)為當(dāng)前時(shí)刻采樣的數(shù)值,其中n=1,2,…,l,l為幀長。
當(dāng)前音頻信號(hào)短時(shí)能量大于所設(shè)定的閾值時(shí)即可認(rèn)為環(huán)境中存在目標(biāo),閾值的選擇直接影響到靜音檢測(cè)的效果。圖3 中藍(lán)色區(qū)域是由算法判斷存在語音的區(qū)間。若閾值設(shè)定過低,算法易受噪聲干擾產(chǎn)生誤判,如圖3(a)多數(shù)片段被判定為存在語音;若閾值設(shè)置過高,部分音量較小的語音信號(hào)片段會(huì)被漏判。
圖3 不同閾值的語音端點(diǎn)檢測(cè)效果比較
(1)主控板。本文搭建的設(shè)備主控板采用德州儀器公司的工業(yè)派(見圖4),包含AM5708 處理器、C66x系列數(shù)字信號(hào)處理器(DSP)和豐富的接口,適合作為本次設(shè)計(jì)的實(shí)驗(yàn)平臺(tái)進(jìn)行算法驗(yàn)證、功能測(cè)試、應(yīng)用開發(fā)等環(huán)節(jié)。
圖4 主控板
(2)麥克風(fēng)陣列。選擇T型四聲道麥克風(fēng)陣列采集聲音信號(hào),該麥克風(fēng)陣列頂部有3個(gè)麥克風(fēng)處在同一水平線上、間距6 cm,底部有1 個(gè)麥克風(fēng),如圖5 所示。頂部3 個(gè)麥克風(fēng)也可在實(shí)驗(yàn)中單獨(dú)作為線型麥克風(fēng)陣列使用,以簡化實(shí)驗(yàn)實(shí)現(xiàn)流程[15-16]。麥克風(fēng)信噪比為59 dB(A),靈敏度為-22 dBV/Pa,最大輸出阻抗為400 Ω。實(shí)驗(yàn)背景的短視頻錄制、主直播等應(yīng)用場(chǎng)景一般要求距離攝錄設(shè)備8 m內(nèi)、移動(dòng)緩慢和持續(xù)發(fā)聲、T型麥克風(fēng)陣列的精度能夠滿足設(shè)計(jì)需求。
圖5 基于麥克風(fēng)陣列的跟隨攝錄設(shè)備實(shí)物
(3)運(yùn)動(dòng)底盤。系統(tǒng)使用TI-RSLK 機(jī)器人套件,運(yùn)動(dòng)底盤結(jié)構(gòu)為前輪舵機(jī)轉(zhuǎn)向-后輪電動(dòng)機(jī)驅(qū)動(dòng)形式,輪徑68 mm。直流電動(dòng)機(jī)采用脈沖寬度調(diào)制(Pulse Width Modulation,PWM)波調(diào)整轉(zhuǎn)速,帶有AB 相編碼器,減速比1∶20。電池組由18 650 節(jié)鋰電池及充放控制板組成,額定電壓12 V,額定容量10 000 mAh,能夠滿足長時(shí)間的供電要求。
使用多線程技術(shù)、(ARM+DSP)異構(gòu)架構(gòu)完成程序設(shè)計(jì),程序交叉編譯后以應(yīng)用的形式運(yùn)行在板卡上的Linux-Rt系統(tǒng)中。主任務(wù)循環(huán)中對(duì)輸入數(shù)據(jù)進(jìn)行靜音檢測(cè)、聲源定位運(yùn)算,并根據(jù)解算方位結(jié)果通過比例導(dǎo)數(shù)(Proportional Derivative,PD)控制算法控制運(yùn)動(dòng)底盤向目標(biāo)移動(dòng)。程序結(jié)構(gòu)如圖6 所示。
圖6 程序結(jié)構(gòu)框圖
(1)聲源定位實(shí)現(xiàn)。TDOA算法的程序?qū)崿F(xiàn)主要分2 步:①TDE,即用互相關(guān)算法估計(jì)聲源信號(hào)到達(dá)麥克風(fēng)陣列中各麥克風(fēng)的時(shí)間差;②根據(jù)τ,按照幾何關(guān)系解算出聲源目標(biāo)關(guān)于麥克風(fēng)陣列的方位信息。
主進(jìn)程中創(chuàng)建一個(gè)線程調(diào)用Linux pcm模塊完成對(duì)多聲道音頻信號(hào)的采集,將連續(xù)的模擬信號(hào)轉(zhuǎn)為離散數(shù)字信號(hào)存儲(chǔ)在緩沖區(qū),等待運(yùn)算線程讀取作為后續(xù)算法輸入并保存為WAV 格式音頻文件。針對(duì)語音信號(hào)頻率特點(diǎn)和對(duì)硬件性能的綜合考慮,設(shè)置采樣頻率f為44.1 kHz,取2 048 個(gè)采樣點(diǎn)為一幀,即幀長l=2 048。
互相關(guān)算法的程序?qū)崿F(xiàn)流程如圖7 所示,將2 個(gè)含有各時(shí)間點(diǎn)音頻信號(hào)幅值的數(shù)組通過離散傅里葉變換轉(zhuǎn)換至頻域進(jìn)行共軛運(yùn)算再加權(quán)求和得到中間結(jié)果,通過傅里葉反變換獲得結(jié)果數(shù)組H(j),j=1,2,…,2l。通過程序查找,獲得結(jié)果數(shù)組中峰值Hmax及自變量j的值a:
圖7 互相關(guān)算法軟件實(shí)現(xiàn)流程
以s為單位的時(shí)延τ的計(jì)算式如下:
式中:r為算法獲得的時(shí)延結(jié)果值;f為采樣率。
算法計(jì)算獲得時(shí)延數(shù)值結(jié)果r=-5 時(shí),經(jīng)計(jì)算時(shí)延τ 約為-11.338 μs,表明聲音先到達(dá)右側(cè)麥克風(fēng)。根據(jù)(3)式,2 個(gè)麥克風(fēng)間距L為6 cm,可獲得目標(biāo)β=-18.737 9°(右側(cè))。
為了更好地利用硬件資源、提升實(shí)時(shí)性,將端點(diǎn)檢測(cè)算法放在DSP 核心中進(jìn)行,并將最終結(jié)果回傳到ARM端。
(2)控制跟隨。由于舵機(jī)硬件特性,控制過程中不存在累積誤差,所以本實(shí)驗(yàn)中簡化PID 控制算法中的積分項(xiàng),采用PD 控制器控制舵機(jī)轉(zhuǎn)角實(shí)現(xiàn)跟隨任務(wù),即:
式中,out 為控制器的輸出值;Kp與Kd分別為控制器的比例與微分系數(shù);err為本次角度誤差;err_last 為上次計(jì)算周期所得誤差。
在控制中,目標(biāo)值將一直設(shè)置為0(即期望控制車體始終正對(duì)前方的發(fā)聲目標(biāo))。out 通過線性變化后為當(dāng)前時(shí)刻舵機(jī)的控制量即PWM 占空比值,用于控制舵機(jī)和電動(dòng)機(jī)。
實(shí)驗(yàn)中選擇經(jīng)典GCC 算法(即Ψ12(ω)=1)與GCC-PHAT算法作對(duì)比。在聲源位置固定相距麥克風(fēng)陣列右側(cè)15°距離3.5 m、室內(nèi)環(huán)境下,經(jīng)典GCC 和GCC-PHAT實(shí)測(cè)計(jì)算結(jié)果見表1 所列。
表1 經(jīng)典GCC和GCC-PHAT實(shí)測(cè)計(jì)算部分結(jié)果
由表1 可見,GCC-PHAT的計(jì)算結(jié)果穩(wěn)定,數(shù)值主要集中在-4 附近;而經(jīng)典GCC 的r值在-650~1 697之間浮動(dòng),無法表征目標(biāo)的準(zhǔn)確位置,其結(jié)果誤差大。主要是經(jīng)典GCC算法對(duì)噪聲敏感,在低信噪比條件下的互相關(guān)結(jié)果會(huì)出現(xiàn)峰值不集中且相對(duì)真實(shí)值偏移的現(xiàn)象。而GCC-PHAT 算法的誤差主要來源于環(huán)境中其他噪聲的干擾,當(dāng)目標(biāo)聲源并未發(fā)聲時(shí)(例如人說話過程中會(huì)有間斷),將不含語音音頻信息的環(huán)境聲作為聲源定位系統(tǒng)的輸入,導(dǎo)致無法獲得正確的目標(biāo)聲源定位結(jié)果,這也體現(xiàn)了增加語音端點(diǎn)檢測(cè)處理環(huán)節(jié)的必要性。
在多個(gè)場(chǎng)景中用自然人聲和藍(lán)牙音箱(型號(hào)coowoobs100)播放說書音頻作為聲源,距離小車2~6.5 m 情況下測(cè)試,如圖8 和9 所示。環(huán)境中存在的噪聲類型有:大型空調(diào)外機(jī)運(yùn)行噪聲、人群活動(dòng)聲、汽車駛過的噪聲還有來自自身通過固體傳導(dǎo)形式到達(dá)麥克風(fēng)陣列的舵機(jī)電動(dòng)機(jī)噪聲。系統(tǒng)測(cè)試結(jié)果見表2 所示。測(cè)試得出,基于TODA 和GCC-PHAT 算法的聲源定位方案具有一定的抗干擾能力。
表2 測(cè)試結(jié)果總結(jié)
圖8 多場(chǎng)景測(cè)試實(shí)拍
圖9 小車視角畫面
本文提出的移動(dòng)機(jī)器人聲源定位與跟蹤攝錄系統(tǒng)設(shè)計(jì)能夠多個(gè)場(chǎng)景下根據(jù)聲音信號(hào)完成跟隨和拍攝,并經(jīng)實(shí)驗(yàn)測(cè)試。結(jié)果表明,該實(shí)驗(yàn)系統(tǒng)支持720p(30f/s),480p(60f/s)錄像及48K 四聲道音頻;能在8 m遠(yuǎn)進(jìn)行跟隨;平均單次采集時(shí)間僅為8.5 ms??蓾M足短視頻博主等對(duì)低成本、可移動(dòng)的跟隨攝錄設(shè)備的需求,具有一定的實(shí)用價(jià)值,可為基于機(jī)器聽覺的各種機(jī)器人環(huán)境感知和交互研究提供參考。
同時(shí),實(shí)驗(yàn)可作為教學(xué)設(shè)計(jì),有助于提升自動(dòng)化類專業(yè)學(xué)生對(duì)“信號(hào)與系統(tǒng)”“數(shù)字信號(hào)處理”“自動(dòng)控制原理”等專業(yè)知識(shí)的綜合應(yīng)用能力、獨(dú)立解決工程問題的能力和創(chuàng)新實(shí)踐能力,為面向多學(xué)科融合的自動(dòng)化類人才的培養(yǎng)奠定基礎(chǔ)。