駱潤卿,張雙彪,陳 晨,佘怡欣,游凱卉
(北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101)
智能寵物陪伴機(jī)器人是一類具有智能喂食、寵物監(jiān)護(hù)、與寵物互動等功能的機(jī)器人,其設(shè)計(jì)目的是幫助外出的主人陪伴、監(jiān)護(hù)家中寵物。智能寵物陪伴機(jī)器人大多配備有攝像頭,便于主人遠(yuǎn)程查看寵物動態(tài)。而寵物在家中的活動范圍較大,可能出現(xiàn)寵物不在攝像頭范圍內(nèi)的情況,此時主人便無法通過攝像頭遠(yuǎn)程查看寵物動態(tài)。解決上述問題的方案之一是:機(jī)器人首先定位家中寵物,然后控制移動機(jī)構(gòu)到達(dá)寵物附近,使得攝像頭范圍內(nèi)有寵物。而目前已有的智能寵物陪伴機(jī)器人缺少對寵物進(jìn)行室內(nèi)定位的技術(shù)路線或功能模塊。本文提出利用基于麥克風(fēng)陣列的聲源定位技術(shù)路線設(shè)計(jì)解決機(jī)器人對寵物室內(nèi)定位的問題。單個麥克風(fēng)易受噪聲干擾,為了增強(qiáng)聲音信號的采集、定位等,多數(shù)研究采用麥克風(fēng)陣列形式,即多個麥克風(fēng)以不同幾何結(jié)構(gòu)排列組合而成的陣列。較之單個麥克風(fēng),麥克風(fēng)陣列在減少環(huán)境噪聲干擾等方面具有明顯優(yōu)勢。基于麥克風(fēng)陣列的聲源定位技術(shù)利用麥克風(fēng)陣列采集聲音信號,運(yùn)用數(shù)字信號處理技術(shù)處理所得樣本,采取合適聲源定位算法對處理后的數(shù)據(jù)進(jìn)行計(jì)算得出位置信息、聲源相對位置坐標(biāo)及角度等[1]。基于麥克風(fēng)陣列的聲源定位算法主要有基于可控波束形成的聲源定位算法、基于高分辨率頻譜估計(jì)的聲源定位算法及基于到達(dá)時間差的聲源定位算法,其中基于到達(dá)時間差(Time Difference Of Arrival, TDOA)的聲源定位算法相對來說實(shí)時性好、計(jì)算量小,具有較高的實(shí)用性[2]。基于TDOA 的定位算法通過計(jì)算所收集的聲源信號到達(dá)麥克風(fēng)陣列的時間差進(jìn)行時延估計(jì),再通過構(gòu)成麥克風(fēng)陣列的幾何形狀建立聲源定位模型,最后通過算法求解相對位置從而進(jìn)行定位估計(jì)。已有將基于TDOA 的聲源定位算法應(yīng)用于室內(nèi)實(shí)時定位系統(tǒng)中的研究[3]。本文將介紹寵物音頻信號的預(yù)處理方法,以及基于麥克風(fēng)陣列對寵物聲源進(jìn)行室內(nèi)定位的聲源定位算法。
采集到的寵物聲音信號會由于寵物的發(fā)聲器官本身和用于采集音頻信號的設(shè)備產(chǎn)生混疊、高頻和高次諧波失真等,被降低音頻質(zhì)量。在對聲音信號進(jìn)行預(yù)加重、分幀、加窗、端點(diǎn)檢測等預(yù)處理操作后,得到的信號更均勻、平滑,能提取效果更好的信號參數(shù),更加有效地進(jìn)行寵物聲音信號的分析與處理,提高音頻信號的質(zhì)量和處理音頻信號的效率。
通常來說,語音信號的頻率范圍為300 ~3 400 Hz,貓的叫聲的頻率范圍為760 ~1 500 Hz,而狗的叫聲的頻率范圍為452 ~1 800 Hz。因?yàn)樨埞仿曇舻念l率范圍均在語音信號的頻率范圍內(nèi),所以對寵物發(fā)出的聲音進(jìn)行預(yù)加重處理可以采用語音信號的處理方法。
1.1.1 預(yù)加重處理目的
由于語音信號s(n)的平均功率譜受聲門激勵和口鼻輻射的影響,大約在200 ~500 Hz 范圍內(nèi),以6 dB/倍頻程衰減,并且隨著頻率的升高,對應(yīng)的分量也變得更少,因此要在對語音信號s(n)進(jìn)行分析前對其高頻部分進(jìn)行改進(jìn),使其始終處于由低頻率至高頻率的全頻段,在同樣的信噪比條件下可以方便地進(jìn)行頻譜分析和聲道參數(shù)分析。
1.1.2 預(yù)加重處理方法
寵物發(fā)聲與語音信號類似,口鼻輻射在高頻段較為明顯,而對低頻段的影響較小。因?yàn)榭诒禽椛渌鸬哪芰繐p耗與輻射阻抗的實(shí)部成正比,所以輻射模型R(z)為一階類高通濾波的形式,是一階后向差分,表達(dá)式為:
為使聲門脈沖的影響減到最小,保留聲道部分,便于后續(xù)進(jìn)行聲道參數(shù)的分析,結(jié)合輻射模型,在取樣后插入一個一階高通濾波器。
預(yù)加重處理采用一階FIR 高通數(shù)字濾波器來實(shí)現(xiàn)[4],其輸出和輸入的語音信號s(n)的關(guān)系式為:
式中,α為預(yù)加重系數(shù),通常取0.9 ~1.0,音頻信號預(yù)加重處理中α取0.937 5。一階FIR 高通數(shù)字濾波器幅頻特性、相頻特性曲線如圖1 所示。
圖1 一階FIR 高通數(shù)字濾波器的幅頻、相頻特性
音頻信號是時變的,但是在很短的時間內(nèi)(一般認(rèn)為在10 ~30 ms 內(nèi)),其特性基本上沒有改變,即相對穩(wěn)定,因此可將其看作是一個準(zhǔn)穩(wěn)態(tài)過程,即聲音信號的短時平穩(wěn)。短時分析技術(shù)貫穿語音分析的整個過程,對音頻信號進(jìn)行分割,每個片段被稱作“幀”,而幀長度通常是10 ~30 ms,對每幀的特性參數(shù)進(jìn)行分析,從而在整體上分析出每個特征參數(shù)的時間序列。
加窗的目的是對抽樣n附近的音頻波形進(jìn)行加強(qiáng),同時削弱其他波形。使用最多的3 種窗函數(shù)分別為矩形窗、漢明窗(Hamming)和漢寧窗(Hanning),由于漢明窗相對另兩種窗函數(shù)能更好地保留原始音頻信號的頻譜特性,所以在短時分幀后,寵物音頻信號利用漢明窗口對聲音信號進(jìn)行處理。
漢明窗定義公式為:
端點(diǎn)檢測的目的主要是實(shí)現(xiàn)對寵物語音信號的起始和終止點(diǎn)的自動檢測。寵物音頻信號的端點(diǎn)檢測采用了雙門限比較方法[5]。利用雙門限比較方法,將短時能量E和短時平均過零率Z相結(jié)合,提高了檢測精度,有效地縮短了系統(tǒng)的運(yùn)行周期,排除了靜音部分的噪聲,提高了音頻信號的處理性能。
1.4.1 短時能量
短時能量序列反映了聲波的振幅和能量隨時間而逐漸改變的一種規(guī)律,表達(dá)式為:
音頻信號的短時平均能量如圖2 所示。
圖2 音頻信號短時平均能量
1.4.2 過零率
短時過零率表示在一幀語音信號中,其波形穿過零點(diǎn)的次數(shù),可以在一定程度上反映頻率的高低,適用于音頻信號噪聲較高的情況。音頻信號的短時過零率如圖3 所示。
圖3 音頻信號短時過零率
基于TDOA 的聲源定位算法通常分為兩步,首先利用時延估計(jì)算法求出聲源達(dá)到兩麥克風(fēng)的時延值,然后利用位置解算算法根據(jù)時延值對聲源進(jìn)行定位。
在空間中僅有一個聲源s(t)(位于S位置),將兩個麥克風(fēng)m1、m2所在位置記為M1、M2。TDOA 時延計(jì)算模型如圖4 所示。
圖4 TDOA 計(jì)算模型
所接收信號記為xi(t),τi為聲源到達(dá)麥克風(fēng)的延遲時間,ni(t)為加性噪聲,則有:
式中:
由此可以算出聲源信號到達(dá)兩個麥克風(fēng)的TDOA 為:
時延估計(jì)算法采用廣義相關(guān)函數(shù)(Generalized Cross-Correlation Function, GCCF),為了減少噪聲和混響使用,在互功率譜域使用加權(quán)函數(shù)加權(quán),然后經(jīng)過IFFT 運(yùn)算后找到峰值估計(jì)時延[6]。
兩個麥克風(fēng)之間的到達(dá)時間(Time Of Arrival, TOA)可以等效為能夠使麥克風(fēng)輸出的濾波信號之間的互相關(guān)函數(shù)最大的時間間隔,表達(dá)式為:
廣義互相關(guān)函數(shù)(Generalized Cross Correlation, GCC)計(jì)算公式為:
式中,ψ12為頻域加權(quán)函數(shù),常見的有互相關(guān)函數(shù)(Cross-Correlation, CC)、平滑相關(guān)函數(shù)、PHAT(PHAse Transformation)加權(quán)等。此處將CC 與PHAT 進(jìn)行對比。
廣義互相關(guān)函數(shù)有多種不同的變形,其中廣義互相關(guān)- 相位變換(Generalized Cross Correlation PHAse Transformation, GCC-PHAT)方法應(yīng)用最為廣泛[7-10]。
在不同聲場下的聲源信號應(yīng)采用不同的處理模型,需要根據(jù)實(shí)際來確定選擇近場或是遠(yuǎn)場模型,從而實(shí)現(xiàn)較為精準(zhǔn)的定位。當(dāng)聲源與麥克風(fēng)之間的距離r符合式(13)的條件時,則為遠(yuǎn)場模型。
式中,λmin為聲源最高頻率語音的波長,即聲源的最小波長[2]。遠(yuǎn)場模型如圖5 所示。
圖5 遠(yuǎn)場模型
由于距離較遠(yuǎn),可以將聲源信號傳播視為平面波,兩個麥克風(fēng)的距離為d,聲源傳播到兩個陣元的方位角均為θR(z),以m1作為參考陣元,使用簡單的幾何知識,可得:
圖6 近場模型
用MATLAB 對移動聲源的定位進(jìn)行仿真,并對比在不同信噪比條件下CC 算法和GCC-PHAT 算法的表現(xiàn)。
3.1.1 聲源信號
使用audioread()函數(shù)讀取一段音頻作為寵物聲源,采樣頻率fs=48 kHz,得到聲源信號。聲源信號時域波形如圖7所示。
圖7 聲源信號時域波形
3.1.2 麥克風(fēng)陣列
采用由水平方向和垂直方向共9 個麥克風(fēng)組成的麥克風(fēng)陣列對移動的聲源定位。麥克風(fēng)在直角坐標(biāo)系中的位置坐標(biāo)見表1 所列。麥克風(fēng)在空間中的分布如圖8 所示。
表1 麥克風(fēng)坐標(biāo)
圖8 麥克風(fēng)位置分布
3.2.1 比較GCC-PHAT 算法和CC 算法
用MATLAB 對二麥克風(fēng)模型下的固定聲源定位進(jìn)行仿真,并對比在不同信噪比條件下CC 算法和GCC-PHAT 算法的表現(xiàn)。
(1)建立模型
設(shè)置聲源位置s(sx,sy)、麥克風(fēng)位置M1(Mx1,My1)、M2(Mx2,My2),并計(jì)算s(sx,sy)與M1(Mx1,My1)間的距離distance1,以及s(sx,sy)與M2(Mx2,My2)間的距離distance2。計(jì)算∠sM1M2并畫出圖像,如圖9 所示。
圖9 聲源與麥克風(fēng)坐標(biāo)
這里設(shè)置s(10, 10)、M1(0, 0)、M2(2, 0)。計(jì)算得出distance1=14.142 135 623 730 951 m,distance2=12.806 248 474 865 697 m,angle=45°。
(2)模擬聲源
加載MATLAB 自帶的chirp(掃頻余弦信號)來擬合寵物的聲音,采樣頻率fs=48 kHz。為模擬真實(shí)場景,用delayseq()函數(shù)給聲源設(shè)置時延,用awgn()函數(shù)給聲源添加噪聲。原始聲源信號的時域波形如圖10 所示。
圖10 聲源信號波形
(3)聲源定位
設(shè)置兩組信噪比(SNR)值。第一組為110 dB,即大信噪比的情況下,分別用GCC-PHAT 算法和CC 算法計(jì)算聲源的到達(dá)角(Angle Of Arrival, AOA),與真實(shí)值angle=45°對比,比較兩種算法定位的準(zhǔn)確度;再畫出GCC 函數(shù)和CC 函數(shù)的圖像,根據(jù)互相關(guān)函數(shù)的特點(diǎn),在M1(0, 0)處峰值越突出,效果越好,以此來比較兩種算法實(shí)現(xiàn)聲源定位的效果。第二組設(shè)置SNR=1 dB,即小信噪比情況下,仿真步驟同第一組。仿真結(jié)果如下:
① 高信噪比情況
添加的高斯白噪聲信號波形如圖11 所示。
圖11 噪聲信號波形(SNR=110 dB)
GCC-PHAT 算法計(jì)算得出AOA=44.900 5°,CC 算法計(jì)算得出AOA=44.612 3°。GCC-PHAT 算法函數(shù)圖像如圖12所示。CC 算法函數(shù)圖像如圖13 所示。
圖12 GCC-PHAT 函數(shù)圖像(SNR=110 dB)
圖13 CC 函數(shù)圖像(SNR=110 dB)
從AOA 的計(jì)算結(jié)果可以看出,GCC-PHAT 算法比CC 算法準(zhǔn)確。由函數(shù)圖像可以看出,在大信噪比情況下,GCC-PHAT的函數(shù)圖像在M1(0, 0)尖峰突出,其他位置函數(shù)值為0;而CC 的函數(shù)圖像雖在麥克風(fēng)位置尖峰突出,但在其他位置處仍有函數(shù)值。故在大信噪比情況下,GCC-PHAT 算法優(yōu)于CC 算法。
② 低信噪比情況
用delayseq()函數(shù)給聲源設(shè)置時延,用awgn()函數(shù)給聲源信號添加噪聲。繪制出原始聲源信號波形、含噪聲信號波形、延遲含噪聲信號的波形,如圖14 所示。
圖14 聲源信號(上)、含噪信號(中)、延遲含噪信號(下)(SNR=1 dB)
GCC-PHAT 算法計(jì)算得出AOA=[(1.800 0e+02)-(1.183 6e+02i)]°,CC 算法計(jì)算得出AOA=44.900 5°。
GCC-PHAT 算法的函數(shù)圖像如圖15 所示。CC 算法的函數(shù)圖像如圖16 所示。
圖15 GCC-PHAT 函數(shù)圖像(SNR=1 dB)
圖16 CC 函數(shù)圖像(SNR=1 dB)
從AOA 的計(jì)算結(jié)果看出,CC 算法比GCC-PHAT 算法更準(zhǔn)確。從函數(shù)圖像可以看出,在小信噪比情況下,GCC-PHAT 函數(shù)在非M1(0, 0) 處的函數(shù)值比CC 函數(shù)更大,CC 函數(shù)在M1(0, 0)的峰值比GCC-PHAT 函數(shù)突出。故在小信噪比情況下,GCC-PHAT 的聲源定位效果比CC 算法差。
綜合兩組仿真結(jié)果可知,GCC-PHAT 方法本身具有一定的抗噪聲和抗混響能力,但是在信噪比降低和混響增強(qiáng)時,該算法性能急劇下降。麥克風(fēng)的信噪比一般不低于70 dB。根據(jù)理論分析和仿真實(shí)驗(yàn)的結(jié)果,聲源定位算法選擇GCCPHAT 算法效果更佳。
3.2.2 利用GCC-PHAT 算法對移動聲源定位
采用GCC-PHAT 算法對移動聲源進(jìn)行定位,并繪制定位過程的俯視圖和立體圖。俯視圖如圖17 所示。
圖17 對移動聲源定位的俯視圖
如圖18 所示,立體圖中,XOZ平面內(nèi)有小五角星共9 個,代表麥克風(fēng)位置,由于麥克風(fēng)之間距離較近有重疊,立體圖中只能看到5 個小五角星。XOY平面內(nèi)的圓形是移動的聲源,粗實(shí)線是根據(jù)聲源定位算法計(jì)算出的聲源與麥克風(fēng)陣列的距離和AOA 畫出的。
圖18 對移動聲源定位的立體圖
設(shè)在t時刻,移動聲源的實(shí)際坐標(biāo)為(xi,yi),聲源定位算法估計(jì)出的聲源坐標(biāo)為, 誤 差,將每個時刻t和對應(yīng)的θ(t)描點(diǎn)連線,得到的圖像如圖19 所示。
圖19 時間與定位誤差的關(guān)系
由圖19 的曲線可以看出:0 ~0.3 s 時定位誤差較大;0.3 s 以后,定位誤差在5 m 以內(nèi)變化。而智能寵物陪伴機(jī)器人配置的攝像頭可視范圍一般超過10 m,因此可以采用麥克風(fēng)陣列、GCC-PHAT 算法對室內(nèi)的寵物進(jìn)行聲源定位,定位后機(jī)器人控制移動機(jī)構(gòu)運(yùn)動到寵物附近,使得攝像頭范圍內(nèi)有寵物。
本文針對智能寵物陪伴機(jī)器人對寵物的室內(nèi)定位問題,提出了寵物聲源定位算法設(shè)計(jì)。對采集的音頻信號進(jìn)行預(yù)加重、分幀、加窗、端點(diǎn)檢測預(yù)處理,改善音頻信號的質(zhì)量,提高處理音頻信號的效率。然后利用基于到達(dá)時間差的聲源定位算法,通過時延估計(jì),得出聲源的位置。對TDOA 聲源定位算法當(dāng)中的時延估計(jì)算法和位置解算算法分別建立了物理模型,并在此基礎(chǔ)上進(jìn)行推導(dǎo)計(jì)算。最后使用MATLAB 對GCC-PHAT 算法和CC 算法分別在大信噪比和小信噪比情況下的聲源定位效果進(jìn)行對比,得出GCCPHAT 方法在大信噪比條件下具有較好的聲源定位效果,但是在信噪比降低時該算法性能急劇下降。綜合考慮實(shí)際情況和仿真結(jié)果,選擇GCC-PHAT 算法進(jìn)行聲源定位,并將GCC-PHAT 算法應(yīng)用于采用麥克風(fēng)陣列對移動聲源實(shí)時定位的場景,通過MATLAB 仿真得到該場景下的定位效果圖并計(jì)算出定位誤差。結(jié)果顯示,定位誤差在5 m 以內(nèi),在機(jī)器人攝像頭可視距離范圍,可以滿足寵物室內(nèi)定位要求。