王嘯臻,王兆魁,張育林,
(1.國防科技大學(xué) 空天科學(xué)學(xué)院,湖南 長沙 410073; 2.清華大學(xué) 航天航空學(xué)院,北京 100084)
當(dāng)前空間站的穩(wěn)定運(yùn)營主要依賴于航天員的長期在軌工作。航天員需要獨(dú)立完成飛船操控、在軌科學(xué)實(shí)驗(yàn)操作、科學(xué)演示等多項(xiàng)任務(wù),在軌工作效能有限。隨著機(jī)器人技術(shù)的快速發(fā)展,利用機(jī)器人輔助完成在軌任務(wù)成為可能。國際上已先后提出多個(gè)艙內(nèi)輔助機(jī)器人項(xiàng)目,如PSA[1]、Astrobee[2],以及曾在國際空間站服役的Smart Spheres[3]和Int-Ball等。這些機(jī)器人多采用遙控方式運(yùn)行,其自主運(yùn)行、人機(jī)智能交互能力有限,需要航天員在軌照料。為發(fā)展更自主的艙內(nèi)服務(wù)機(jī)器人,提升機(jī)器人的任務(wù)輔助能力,需要解決機(jī)器人對航天員的信息感知問題。慣性與視覺導(dǎo)航主要用于獲取艙內(nèi)的相對位置和姿態(tài),而艙內(nèi)機(jī)器人無法有效實(shí)時(shí)地獲取航天員的相對位置。利用麥克風(fēng)陣列進(jìn)行聲源定位,感知航天員的語音信息,可有效區(qū)分航天員與環(huán)境,實(shí)時(shí)獲取航天員角度位置關(guān)系,這一方法計(jì)算速度快,結(jié)構(gòu)簡單。
目前使用麥克風(fēng)陣列進(jìn)行聲源定位的方法一般可分為3類:基于高分辨率譜估計(jì)、基于可控功率響應(yīng)和基于時(shí)延估計(jì)。而機(jī)器人聲源定位系統(tǒng)一般要求麥克風(fēng)陣列數(shù)量少且易搭載,機(jī)器人運(yùn)動(dòng)特性則要求定位方法高效迅速且具備一定的抗混響和抗噪聲能力[4]。由于基于時(shí)延估計(jì)的聲源定位方法計(jì)算復(fù)雜度低,實(shí)時(shí)性高,且硬件成本較低,因此在機(jī)器人系統(tǒng)中得到了廣泛應(yīng)用。
基于時(shí)延估計(jì)的定位方法是一種雙步定位方法,它首先估計(jì)聲源到達(dá)不同麥克風(fēng)的時(shí)間差,再利用得到的時(shí)延結(jié)合麥克風(fēng)陣列結(jié)構(gòu),確定聲源的位置[5]。自1976年以來相關(guān)學(xué)者提出了許多時(shí)延估計(jì)的算法,如基于聲學(xué)傳遞函數(shù)比的算法[6]、基于基音加權(quán)的算法[7]、基于自適應(yīng)特征值分解的算法[8]、基于廣義互相關(guān)函數(shù)的算法[9]等。廣義互相關(guān)函數(shù)法由于其計(jì)算速度快且符合實(shí)時(shí)解算要求,因此應(yīng)用最廣泛,它通過計(jì)算兩路信號(hào)的互相關(guān)函數(shù)求取峰值,相關(guān)函數(shù)峰值對應(yīng)的時(shí)間就是兩路信號(hào)的時(shí)延差。這類方法原理簡單,但受噪聲和時(shí)域采樣頻率的限制,所以時(shí)延估計(jì)精度不高。
為提高時(shí)延估計(jì)精度,針對廣義互相關(guān)時(shí)延估計(jì)方法使用快速傅里葉變換(FFT)會(huì)在頻域上產(chǎn)生柵欄效應(yīng),從而影響時(shí)延估計(jì)精度的問題,提出了基于相關(guān)峰精確插值(FICP)的空間六元陣列發(fā)話人定位方法。該方法基于機(jī)器人球形結(jié)構(gòu)設(shè)計(jì),利用譜減法和二次相關(guān)降低噪聲干擾,通過對聲音信號(hào)進(jìn)行頻譜細(xì)化提高相關(guān)函數(shù)的時(shí)間分辨率,能有效改善FFT帶來的柵欄效應(yīng),提高時(shí)延估計(jì)及定位精度。改進(jìn)算法既繼承了相關(guān)峰插值算法的優(yōu)點(diǎn),又增強(qiáng)了語音處理的抗噪聲能力。本文對傳統(tǒng)廣義互相關(guān)算法和改進(jìn)算法在時(shí)延估計(jì)準(zhǔn)確性方面進(jìn)行了比較分析,實(shí)驗(yàn)結(jié)果表明:改進(jìn)算法可有效改善發(fā)話人定位性能。
考慮到艙內(nèi)服務(wù)機(jī)器人為球形結(jié)構(gòu)設(shè)計(jì)(直徑D=230 mm),因此系統(tǒng)中的麥克風(fēng)陣列結(jié)構(gòu)采用空間六元陣??臻g六元陣可進(jìn)行全空域聲源定位,相比平面四元陣在保證分維特性的同時(shí)還擁有更優(yōu)的定位精度[10]。艙內(nèi)服務(wù)機(jī)器人結(jié)構(gòu)如圖1所示。
圖1 艙內(nèi)服務(wù)機(jī)器人結(jié)構(gòu)Fig.1 Layout of assistant robots
在直角坐標(biāo)系下對空間六元麥克風(fēng)陣列進(jìn)行描述,如圖2所示。6個(gè)陣元的坐標(biāo)分別為M1(d/2,0,0)、M2(0,d/2,0)、M3(-d/2,0,0)、M4(0,-d/2,0)、M5(0,0,d/2)、M6(0,0,-d/2),其中d為陣列孔徑;r為目標(biāo)(聲源)S(x,y,z)到陣列中心(坐標(biāo)原點(diǎn))的距離;φ為目標(biāo)方位角;θ為目標(biāo)俯仰角;C為空氣中聲音傳播速率。假設(shè)目標(biāo)為點(diǎn)聲源,到達(dá)各陣元的傳播時(shí)間為τi(i=1,2,…,6),則目標(biāo)到各陣元的距離為ri=C·τi(i=1,2,…,6)。若到達(dá)兩陣元的時(shí)延差為τij,則聲源到M1和M3的距離差d1=C·τ31,到M2和M4的距離差d2=C·τ42,到M6和M5的距離差d3=C·τ65。
圖2 空間六元陣列結(jié)構(gòu)Fig.2 Schematic diagram of six-element cone-shaped microphone array
由麥克風(fēng)陣列和目標(biāo)的幾何位置關(guān)系可聯(lián)立方程組
(1)
由直角坐標(biāo)與球坐標(biāo)的轉(zhuǎn)換關(guān)系可得目標(biāo)方位信息r、φ、θ。因r,ri?dj,故可得
(2)
(3)
對式(2)、(3)進(jìn)行簡化和反三角變換可得方位角φ和俯仰角θ的解算表達(dá)式為
(4)
平面四元陣列的方位角和俯仰角的解算表達(dá)式[11]為
(5)
根據(jù)實(shí)際測量經(jīng)驗(yàn),一般得到的方位角和俯仰角誤差較小,而距離的測量誤差較大。考慮到機(jī)器人的實(shí)際需要,僅得到高精度的角度測量信息即可準(zhǔn)確找到人員位置,從而能為視覺導(dǎo)航與人機(jī)交互提供輔助,因此本文僅給出角度測量公式。式(5)中測角精度受聲速估計(jì)誤差和陣元安裝誤差影響。由式(4)可知,空間六元陣測量方位角φ和俯仰角θ僅與時(shí)延τij有關(guān),與聲速C和陣列孔徑d無關(guān),定位精度受時(shí)延τij和聲速C的估計(jì)誤差影響。對比平面四元陣,空間六元陣的測角受干擾更小,定位精度更高。由此可見,得到高精度的時(shí)延估計(jì)值即可求得較準(zhǔn)確的角度位置信息。
為提高相關(guān)函數(shù)的分辨率,對相關(guān)峰進(jìn)行插值計(jì)算,一般采用基于信號(hào)內(nèi)插法的時(shí)延估計(jì)算法,其估計(jì)精度受限于內(nèi)插倍數(shù),復(fù)雜度較高。如果要達(dá)到0.01采樣間隔估計(jì)精度,需要計(jì)算100倍插值,不僅計(jì)算量大,還會(huì)帶來新的誤差源,因此需要計(jì)算相關(guān)峰的精確算法。相關(guān)峰精確插值算法的基本思想是針對兩路長度均為N點(diǎn)的語音信號(hào),計(jì)算其互功率密度譜并進(jìn)行頻域補(bǔ)零,構(gòu)建完整的頻譜序列以提高頻譜采樣率及時(shí)域內(nèi)相關(guān)函數(shù)分辨率。FICP算法是在線性調(diào)頻Z變換(MCZT)的基礎(chǔ)上,利用互譜的前后兩端計(jì)算相關(guān)函數(shù)的峰值波形,并對相關(guān)峰進(jìn)行細(xì)化。FICP算法的具體實(shí)現(xiàn)過程如下:
R1(k)=
(6)
2) 對R1(k)補(bǔ)零,將互譜拉長至N2(N2>N1)點(diǎn),得到新的互譜
R2(k)=
(7)
3) 對R2(k)進(jìn)行IMCZT逆變換得到相關(guān)函數(shù)R(n),由此可突破時(shí)域采樣率限制,提高相關(guān)函數(shù)分辨率,其分辨率可提高N2/N1倍。因陣列信號(hào)的時(shí)延估計(jì)值在有限范圍內(nèi),故僅計(jì)算相關(guān)函數(shù)主峰左右各N點(diǎn),組成長度為2N的新相關(guān)函數(shù),降低運(yùn)算量。
對于n=0,1,…,N-1的時(shí)域范圍,相關(guān)函數(shù)為
(8)
對于n=N2-N,N2-N+1,…,N2-1的時(shí)域范圍,取n=N2-N+n1,對應(yīng)n1=0,1,…,N-1的相關(guān)函數(shù)為
Rn2(N2-N+n1)=
(9)
由Rn1(n)和Rn2(n)組成的相關(guān)函數(shù)為
Rn(n)=
(10)
經(jīng)過復(fù)雜公式推導(dǎo)[12],可得化簡后的相關(guān)函數(shù)表達(dá)式
(11)
(12)
線性調(diào)頻Z變換為計(jì)算細(xì)化頻譜的有效方法,計(jì)算精度高且運(yùn)算速度快。DMCZT和DIMCZT分別代表線性調(diào)頻Z變換及其逆變換,其定義式分別為
(13)
x′(n)=DIMCZT[X(k)]=
(14)
選取一段時(shí)長0.3 s的語音信號(hào)進(jìn)行分析,采樣頻率fs=44 100 Hz,F(xiàn)ICP計(jì)算參數(shù)N1=44 100,N2=500 000。分別用FICP和FFT計(jì)算頻域頻譜,圖3選取了包含譜峰的一段頻譜圖(頻率為400~600 Hz),可以看出用FICP得到的頻譜信息比FFT更豐富,譜峰高度也更精確。在譜峰附近,用FFT計(jì)算得到的頻率依次為470.1、478.2、486.4、502.6、510.7 Hz,用FICP計(jì)算得到的頻率依次為484、485、486、487、488 Hz,F(xiàn)ICP的頻譜泄漏更少。通過互功率譜計(jì)算能提高時(shí)延估計(jì)值精度,頻譜分辨率從8 Hz提高到1 Hz。用FICP和FFT計(jì)算得到的相關(guān)函數(shù)波形比較如圖4所示??梢钥闯龈倪M(jìn)算法相當(dāng)于對峰值附近的一段相關(guān)函數(shù)進(jìn)行插值,使峰值附近的相關(guān)函數(shù)波形更精細(xì),局部分辨率明顯提高,時(shí)延估計(jì)值更逼近真實(shí)值,精度更高。
圖3 FICP和FFT計(jì)算頻譜比較Fig.3 Calculated spectra of FICP and FFT algorithms
圖4 FICP和FFT計(jì)算相關(guān)函數(shù)波形圖比較Fig.4 Signal cross-correlation waveforms calculated by FICP and FFT algorithms
FICP算法雖然能提高相關(guān)函數(shù)的分辨率,但并未改進(jìn)抗噪聲性能[13-14]。因此,通過語音信號(hào)預(yù)處理和二次相關(guān)進(jìn)一步提高算法時(shí)延估計(jì)的魯棒性。
首先利用譜減法對語音信號(hào)進(jìn)行降噪處理,設(shè)定前導(dǎo)無話段時(shí)長估計(jì)環(huán)境噪聲能量,將譜減算法與原信號(hào)“作差”得到降噪信號(hào),并利用基于倒譜距離的端點(diǎn)檢測篩選有話段,減小互相關(guān)函數(shù)計(jì)算長度,從而提高計(jì)算效率。
采用二次相關(guān)的目的在于抑制噪聲,每進(jìn)行一次相關(guān)計(jì)算,都能提高信號(hào)的信噪比[15]。對信號(hào)1作自相關(guān),對信號(hào)1和2作互相關(guān),將信號(hào)1的自相關(guān)函數(shù)和互相關(guān)函數(shù)作相關(guān)計(jì)算,進(jìn)一步削弱噪聲影響。時(shí)延估計(jì)改進(jìn)算法流程如圖5所示。
完整的改進(jìn)時(shí)延估計(jì)算法如下:1)利用MCZT取代FFT計(jì)算兩路預(yù)處理后的語音信號(hào)1和2的細(xì)化頻譜來提升頻譜精度;2)計(jì)算信號(hào)1的自功率譜及信號(hào)1和2的互功率譜,在此基礎(chǔ)上進(jìn)行二次相關(guān),提高抗噪性能,得到二次互功率密度譜;3)對上述互功率密度譜進(jìn)行相關(guān)峰精確插值,提高二次相關(guān)函數(shù)的分辨率,通過峰值檢測計(jì)算得到兩路信號(hào)的時(shí)延差值。
實(shí)驗(yàn)中分別選取頻率fs為20 000、40 000、80 000 Hz的單頻正弦模擬信號(hào),預(yù)設(shè)兩接收信號(hào)時(shí)延差Td=1.7×10-4s,采樣點(diǎn)數(shù)N=5 000,F(xiàn)ICP算法參數(shù)N1=10 000,N2=40 000,預(yù)設(shè)信噪比RSN=8 dB,仿真次數(shù)為10次,如圖6所示。
圖6 10次計(jì)算結(jié)果比較Fig.6 Comparison of calculation results for ten times
由圖6可知,當(dāng)真實(shí)時(shí)延值為采樣間隔的整數(shù)倍時(shí),基于FFT計(jì)算的GCC法計(jì)算的時(shí)延值始終解算為采樣間隔的整數(shù)倍,而FICP法計(jì)算的時(shí)延值則可準(zhǔn)確求取真值,有
Ts=(1.7±0.02)×10-4s
(15)
式中:Ts為時(shí)延估計(jì)值。
實(shí)驗(yàn)中選取采樣頻率fs=16 000 Hz,采樣點(diǎn)數(shù)N=16 347的兩路真實(shí)語音信號(hào),F(xiàn)ICP算法參數(shù)N1=16 000,N2=100 000。經(jīng)過譜減法降噪處理、倒譜距離端點(diǎn)檢測篩選有話段后計(jì)算時(shí)延差。端點(diǎn)檢測后得到有話段為58~137幀,計(jì)6 321個(gè)采樣點(diǎn)。語音信號(hào)處理如圖7所示。
圖7 語音信號(hào)處理Fig.7 Voice signal processing
從圖7可看出,用FICP法得到的計(jì)算頻譜比GCC法更精細(xì),頻譜分辨率得到提升,峰值附近的相關(guān)函數(shù)波形更精細(xì),局部分辨率明顯提高。用GCC法計(jì)算的時(shí)延估計(jì)值為3.75×10-4s,即6個(gè)采樣時(shí)長;用FICP法得到的時(shí)延估計(jì)值為3.94×10-4s,位于3.75×10-4s(6個(gè)采樣時(shí)長)和4.375×10-4s(7個(gè)采樣時(shí)長)之間。實(shí)驗(yàn)結(jié)果表明:用FICP法計(jì)算的時(shí)延值更接近時(shí)延差的真實(shí)值。
為驗(yàn)證空間六元麥克風(fēng)陣列的定位效果,進(jìn)行了靜止目標(biāo)的定位實(shí)驗(yàn),如圖8所示。實(shí)驗(yàn)條件如下:六元陣列及信號(hào)處理模塊預(yù)設(shè)在簡易結(jié)構(gòu)的球形模型中,模型直徑23 cm,放置在高約20 cm的空心基座上。采用全指向性的PDM數(shù)字MEMS麥克風(fēng),頻率響應(yīng)20~20 kHz,信號(hào)采樣頻率為16 000 Hz。實(shí)際測量中,聲源(音響)固定在距離麥克風(fēng)陣列的一定范圍內(nèi),通過改變目標(biāo)聲源的相對位置,完成對方位角和俯仰角的實(shí)時(shí)測量。
圖8 空間六元麥克風(fēng)陣列Fig.8 Six-element cone-shaped microphone array
第1組實(shí)驗(yàn)中,聲源相對陣列距離分別為50、60、70 cm,保持同一水平高度,方位角φ間隔30°進(jìn)行音頻采集,定位求解結(jié)果如圖9所示。
圖9 方位角測定值Fig.9 Results of azimuth angle measurement
第2組實(shí)驗(yàn)中,聲源保持同一水平高度,方位角φ設(shè)為40°和70°,聲源相對距離為40、50、60、70、80、90 cm的6組,采集12次音頻,定位求解結(jié)果如圖10所示。
圖10 方位角測定值Fig.10 Results of azimuth angle measurement
圖9、10對比分析了基于廣義互相關(guān)與相關(guān)峰精確插值這2種聲源定位方法的定位結(jié)果。發(fā)話人定位旨在為機(jī)器人視覺導(dǎo)航提供與人員的相對位置關(guān)系,由于機(jī)器人服務(wù)工作在極其有限的艙內(nèi)空間,優(yōu)于5°的穩(wěn)定定位精度即可滿足機(jī)器人對人員的定位需求。隨著相對距離的增大,基于GCC法的方位角測量誤差逐漸增大,而基于改進(jìn)算法的定位準(zhǔn)確率則能保持在90%以上??梢钥吹?,基于改進(jìn)算法的聲源定位結(jié)果明顯優(yōu)于基于GCC法的聲源定位結(jié)果。
第3組實(shí)驗(yàn)中,聲源保持同一方位角和水平距離,方位角φ設(shè)為70°,俯仰角θ為70°、80°、90°、100°、110°的5組,采集10次音頻,定位求解結(jié)果如圖11所示。
圖11 俯仰角測定值Fig.11 Results of pitching angle measurement
圖11對比分析了空間六元陣列與平面四元陣列的俯仰角測量結(jié)果??梢钥吹?,平面四元陣的俯仰角測量誤差很大,而空間六元陣列的俯仰角測量精度相對較高。綜上所述,基于改進(jìn)時(shí)延估計(jì)算法的空間六元陣列定位方法可有效改善發(fā)話人定位性能。
發(fā)話人定位是空間站艙內(nèi)服務(wù)機(jī)器人實(shí)現(xiàn)人員相對位置關(guān)系確定及人機(jī)交互任務(wù)輔助的重要前提。本文提出了基于FICP和二次相關(guān)的發(fā)話人定位算法,并對算法的流程進(jìn)行了推導(dǎo)說明。該方法基于機(jī)器人球形結(jié)構(gòu)設(shè)計(jì),利用信號(hào)預(yù)處理和二次相關(guān)降低噪聲干擾,通過對聲音信號(hào)進(jìn)行頻譜細(xì)化以提高相關(guān)函數(shù)的時(shí)間分辨率,能有效改善FFT變換帶來的柵欄效應(yīng),提高時(shí)延估計(jì)及發(fā)話人定位精度。實(shí)驗(yàn)結(jié)果表明:相對基于廣義互相關(guān)的定位方法,基于FICP的空間六元陣列發(fā)話人定位方法能得到更高的時(shí)延估計(jì)精度,從而對發(fā)話人進(jìn)行更準(zhǔn)確的定位。未來將圍繞發(fā)話人定位與視覺導(dǎo)航方法的融合問題展開進(jìn)一步研究,實(shí)現(xiàn)艙內(nèi)輔助機(jī)器人的穩(wěn)定跟蹤。