聲音是怎么被定位的?
——以鳴笛抓拍為例
當我們閉上眼睛,仍然能夠判斷出聲音是從哪個方向來的。當然了,前提是兩只耳朵都是健康的。如果完全捂住一只耳朵,那么就無法判斷聲音的具體方位了。這究竟是怎么回事兒呢?
由于兩只耳朵存在一定的距離,聲源傳播到兩耳的聲音存在頻率、強度和時間上的差異。我們就可以利用這些微小的差異進行聲源來向定位?,F(xiàn)有科學研究表明,哺乳動物更多的是通過感知聲音達到的雙耳的時間差進行定位。貓可以判斷聲源位置的最小角度為5°,人在相同情境下的判斷精度大約可以達到3°。
顯然,如果只有一只耳朵工作,肯定是無法判斷聲音來自何方了。
1.仿生學、雙耳定位和麥克風陣列
仿生學大家一定不會陌生,它是一門既古老又年輕的學科,我們很多應用的科技都是從自然界學到了作用原理或者得到了啟發(fā)后設計發(fā)明出來的。大家耳熟能詳?shù)氖鞘茗B兒飛翔的啟發(fā)發(fā)明了飛機、根據(jù)蝙蝠的夜間飛行發(fā)明了雷達、根據(jù)螢火蟲發(fā)明了冷光……,諸如此類,不一而足。
類似的,在雙耳定位的啟發(fā)下,我們設計了麥克風陣列。利用麥克風來模擬人的耳朵,理論上說,構造包括兩個以上麥克風的陣列,就可以實現(xiàn)聲音的定位了。但是,人的定位機理更為復雜,可能利用兩個麥克風還不夠,那就增加麥克風的數(shù)量,總能可以達到滿意的定位精度。
麥克風陣列是指由兩個或多個麥克風按照一定的幾何結構排列而成的陣列。按照拓撲結構不同,麥克風陣列可以分為均勻線性陣列、非均勻線性陣列、非線性陣列、環(huán)形陣列、平面陣列、立體陣列等。
【陣列類型】
線性陣列可以定位一個角度,即只能定位方位角,無法定位仰角。平面陣列可以定位方位角和仰角,實用性更強,但也意味著更復雜的計算,無法進行定距。立體陣列既可以定向也可以定距。
圓形坐標定向示例(θ1---俯仰角,φ1---方位角)
目前線性陣列和平面陣列是較為常見的兩類陣列。線性陣列常見于會議拾音、教室吊麥等;平面陣列在智能音箱、聲學照相機等設備中更為常見。立體陣列見于反狙擊手系統(tǒng)。
桌面線性麥克風陣列
鳴笛抓拍用麥克風陣列(平面陣列)
反狙擊手系統(tǒng)
2.基于麥克風陣列的聲學定位
2.1 聲學定位基本原理
所謂聲源定位,就是利用一組按照一定幾何位置擺放的麥克風定出聲源的空間位置。對于空間中位于不同位置的兩個麥克風而言,聲源只要不位于它們之間的中線上,那么它們和聲源之間的距離就存在差異,如下圖所示??梢钥闯?,聲源與兩個麥克風之間存在距離差△L=Cτ,因此,聲波到達兩個麥克風的信號在時間上存在時延τ=△L/C。理想情況下,麥克風i和j接收的信號滿足關系Si=Sj(t-τ)。
基于麥克風陣列的聲源定位技術基本上可以分為4類:基于最大輸出功率的可控波束形成技術;高分辨率譜估計技術;基于聲壓幅度比的定位技術以及基于聲音到達時間差(Time Delay of Arrival, TDOA)的定位技術。
(1) 波束形成技術(Beamforming)
該技術也稱為波束成型,這是一種直接定位方法,基本思想是對麥克風所接收到的聲音信號加權求和來形成波束,通過調(diào)整權值使麥克風陣列的輸出功率最大,波束輸出功率的點就是聲源的位置。傳統(tǒng)的波束形成器的權值取決于各陣元上信號的相位延遲,而相位又和時延以及聲音的到達時間差有關,故又稱為時延求和波束形成器。
假設麥克風的數(shù)量為M,第i個麥克風接收到的信號為,對進行時延對齊后,累加可得
上式中,指的是當陣列指向搜索點時的可控時延,與麥克風的數(shù)量、陣列孔徑、聲源的入射角以及采樣頻率成正比,與聲音的傳播速度成反比。累加輸出的功率,即波束的功率為
是的頻域表示。聲源的位置可按照下式計算:
通過控制陣列方向來引導波束,使波束輸出功率的點就是聲源的位置。
(2) 高分辨率譜估計技術
高分辨率譜估計技術是利用接收信號相關矩陣的空間譜,求解麥克風之間的相關矩陣來確定方向角,進而確定聲源的位置。這種定位技術主要包括自相關AR模型法、最小方差(MV)譜估計法和特征值分解算法(如MUSIC算法等)。
高分辨率譜估計技術適合于處理多個聲源的情形,但它們都是通過獲取麥克風陣列的信號來計算空間譜的相關矩陣。此時,如果所需的矩陣未知,則須通過已得到的數(shù)據(jù)進行估計,這要求空間中的聲源或噪聲須平穩(wěn)時不變,這在實際中很難實現(xiàn);此外,該方法的計算量大,在聲源定位系統(tǒng)中的應用不多見。
(3) 基于聲壓幅度比的定位方法
該方法利用不同麥克風接收的來自于同一個聲源的聲音信號在強度上的差異來實現(xiàn)聲源定位。根據(jù)由聲壓在麥克風處產(chǎn)生的電壓輸出與對應聲源到麥克風的距離兩者之間存在的關系導出一個用于聲源定位的約束條件。由這個約束條件可確定三維空間中的一個球面。每個麥克風可以導出這樣一個約束條件,利用這些約束條件可確定出聲源的位置。它們既可以是單獨使用,也可以和由基于時間差的方法導出的約束條件一起使用。
(4) 基于聲音到達時間差的聲源定位技術
基于聲音到達時間差(TDOA)估計的定位方法精度相對較高,計算量小,適合于實時實現(xiàn)。基于TDOA的定位方法是一種兩步方法。第一步,開展TDOA估計,獲得麥克風陣列中相對陣元之間的TDOA。估計TDOA的方法有很多,大致可以分為互相關方法、廣義互相關方法、自適應濾波器法、互功率譜相位法和高階統(tǒng)計量法等。第二步,利用估計得到的相對陣元之間的時間差,結合已知的麥克風陣列的空間幾何關系確定聲源的位置。這種方法實時性較好,但存在誤差傳遞放大、無法進行多聲源定位等問題。
2.2 定位用麥克風陣列的性能指標
麥克風陣列的性能指標包括主瓣寬度(波束寬度)、旁瓣增益、陣列增益等。從定位的角度出發(fā),陣列增益是無關的性能指標,需要考慮主瓣寬度和旁瓣增益這兩個指標。
波束圖示例
上面給出了一個波束圖示例,這是一個由12個麥克風組成的均勻線性陣列,陣列間距d=8cm,聲源入射角度為陣列側(cè)邊正前方(即90°的位置),聲源頻率f=2000Hz。上圖共包括11個波束,具有大幅度的波束稱為主瓣(聲源所在方向),其他都是旁瓣。主瓣寬度定義為主瓣兩邊的兩個第一過零點之間的范圍,上圖的主瓣寬度大約是20°。旁瓣增益指的是旁瓣高度,上圖的旁瓣增益大約是-12dB。
旁瓣增益越低,對于目標方向以外的干擾噪聲的抑制能力就越強,可以更好的降低目標檢測的虛警概率,對于鳴笛抓拍而言,就是不會出現(xiàn)“虛像”。比如,視野范圍之外有車輛鳴笛,它所產(chǎn)生的“虛像”可能恰好位于視野范圍之內(nèi),這樣就容易造成“假定位”,無法區(qū)別視野范圍內(nèi)外的鳴笛車輛。主瓣寬度越小,目標方向的分辨能力越強,陣列的指向性越好。對應于鳴笛抓拍,就意味著光斑越準確,不會出現(xiàn)一個光斑覆蓋多臺車輛的情況。
通常情況下,在麥克風數(shù)量相同的情況下,麥克風分布形式越規(guī)則,主瓣寬度和旁瓣增益會越大。下面給出了兩個麥克風陣列構型,都由32個麥克風構成,從對應波束圖中可以明顯看到這一規(guī)律。因此,在設計麥克風陣列時,應該盡可能地設計優(yōu)化構型,而不是選擇均勻的規(guī)則構型。
規(guī)則型陣列及其波束圖
非規(guī)則型陣列及其波束圖
3.應用案例:鳴笛抓拍系統(tǒng)
基于麥克風陣列的聲音定位技術已經(jīng)在工程領域中得到了廣泛應用,典型包括異常聲響定位的聲學照相機、飛機飛躍噪聲分析使用的大型地面陣列、戰(zhàn)場中的狙擊手定位系統(tǒng)等。
目前,得到廣泛應用的聲學定位技術莫過于交通領域中的鳴笛抓拍系統(tǒng)了,實際上這也是聲學照相機的一個具體應用??v觀市場上已有的鳴笛抓拍系統(tǒng),基本都是由一個平面麥克風陣列、一個電警(卡口)相機和主機組成,麥克風陣列用于鳴笛聲音定位、相機用于識別鳴笛車輛車牌并抓拍圖片生成證據(jù)。
世邦鳴笛抓拍系統(tǒng)
系統(tǒng)的整個抓拍流程如下圖所示。在前端,系統(tǒng)捕獲到機動車鳴笛聲音,啟動定位分析軟件進行定位,如果定位結果位于抓拍視野范圍內(nèi),則啟動高清相機進行抓拍;根據(jù)定位坐標,進行相關車輛的車牌識別,如果能夠識別出符合要求的車牌,則將車牌推送到LED屏顯示,同時生成完整證據(jù)鏈,包括車牌圖片及識別結果、車輛特寫、車輛全景、鳴笛云圖、鳴笛聲紋圖和鳴笛過程的音視頻(疊加云圖),并將其推送到后臺。
鳴笛抓拍工作流程
系統(tǒng)計算監(jiān)測路面有效探測區(qū)域的聲音大小分布,用顏色表示聲音相對大小生成聲音分布圖,聲音分布與高清圖片疊加形成聲音云圖,對鳴笛聲連續(xù)采集分析,持續(xù)生成聲音云圖,聲音云圖疊加到視頻上連續(xù)播放生成“聲音視頻”;同時,自動生成4張圖片(違法時刻車輛全景圖、全景云圖、車輛特寫圖和車牌特寫與鳴笛頻譜圖)和音視頻證據(jù),其證據(jù)支持添加水印信息、防偽信息。證據(jù)信息如下圖所示。
鳴笛抓拍記錄證據(jù)
鳴笛抓拍FAQs:
Q1:前后車緊鄰,后車車牌被遮擋,后車鳴笛,是否會誤抓前車?
A1:不會。首先在算法上進行處理,如果兩車距離特別近,后車鳴笛聲音會被前車遮擋,到達聲吶陣列已經(jīng)不是直達波,可以在定位算法上排除這種定位結果,不予定位抓拍;其次,通過對抓拍圖像的結構化處理,設計合適的定位光斑與車輛方框的“容納”算法,可準確判斷鳴笛光斑所在車輛位置。
Q2:機動車緊鄰一側(cè)有電動車/摩托車鳴笛,是否會誤拍機動車?
A2:不會。對抓拍圖像進行結構化處理,可以準確區(qū)分出電動車/摩托車、機動車、自行車等,根據(jù)定位光斑的位置,可以準確判斷出鳴笛來自于電動車/摩托車。
Q3:多車同時鳴笛,如何處理?
A3:如果多臺車在同一時刻按下喇叭,又在同一時刻松開喇叭,那么這段時間只會定位一臺鳴笛車輛;如果兩臺車的按喇叭時刻前后相差數(shù)十毫秒以上,系統(tǒng)可以定位到兩臺車輛。
Q4:車輛鳴笛后快速駛離,能否快速反應準確抓拍?
A4:能。世邦鳴笛抓拍系統(tǒng)創(chuàng)新采用了“預抓拍”技術,預留一個數(shù)秒左右的抓拍圖片緩沖區(qū),當鳴笛發(fā)聲并定位之后,會綜合考慮聲音傳播時間、定位所需的笛聲時長,從緩沖區(qū)中提取出接近鳴笛時刻的圖片作為證據(jù)圖片,能夠準確定位鳴笛車輛。實驗表明,時間誤差在±20ms的范圍,以60km/h的市區(qū)時速計算,折算距離誤差為±30cm,不會對定位車輛結果產(chǎn)生影響。