陳玨
關(guān)鍵詞:聲源定位;交叉相關(guān);互動(dòng)裝置
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)36-0023-03
1 概述
人的雙耳可以分辨從三維空間中的各個(gè)方向傳來(lái)聲音的位置,專業(yè)領(lǐng)域已經(jīng)有很多基于人耳定位原理的研究成果。斯達(dá)克(Starkey)是全球定制機(jī)式助聽(tīng)器最大的研發(fā)和制造商,Starkey 的Cetera 技術(shù)使助聽(tīng)器在大腦中“隱形”。Cetera消除了聲音和大腦處理信號(hào)的能力之間的障礙。Cetera算法是一種聲音定位算法,它忠實(shí)地再現(xiàn)了立體聲耳機(jī)的三維定位,雖然最初是為使用助聽(tīng)器而設(shè)計(jì)的。如果戴上立體聲耳機(jī),聽(tīng)一些樣本音軌(最著名的樣本是一個(gè)理發(fā)店里的立體聲效果),三維定位的準(zhǔn)確無(wú)誤會(huì)令人吃驚。
但實(shí)際應(yīng)用中情況較為復(fù)雜,涉及頭部產(chǎn)生的遮擋和外耳邊緣造成的反射。在本研究中僅僅通過(guò)使用2組麥克風(fēng)來(lái)模擬完整的聽(tīng)覺(jué)系統(tǒng),雖然定位精度不夠高,但低成本、低技術(shù)(Low-Cost & Low-Tech)方式對(duì)學(xué)生制作互動(dòng)裝置原型有實(shí)際應(yīng)用的意義。
這個(gè)研究的目的是用2組麥克風(fēng)模擬人類在二維區(qū)域的聽(tīng)覺(jué)系統(tǒng)。該研究將解決一類實(shí)體互動(dòng)的I/O系統(tǒng),例如:一個(gè)基于傳入聲音方向的轉(zhuǎn)向系統(tǒng)(如:動(dòng)態(tài)雕塑中的舵機(jī)陣列)。使用低成本的微控制器(Arduino)作為系統(tǒng)的處理中心,目前該微控制器及配套傳感器的價(jià)格都很便宜,并且在市場(chǎng)上也很容易買到。當(dāng)然用2組麥克風(fēng),只能在二維空間檢測(cè)到傳入的聲音,而無(wú)法區(qū)分聲音是來(lái)自系統(tǒng)的前面還是后面,但對(duì)互動(dòng)作品的原型演示已經(jīng)夠用了。
定位傳入聲音方向的方法是基于同一音源的聲波到達(dá)兩個(gè)麥克風(fēng)的時(shí)間差,這需要應(yīng)用交叉相關(guān)法和位置估計(jì)技術(shù)。這套實(shí)時(shí)定位(方向)算法是由微控制器Arduino實(shí)現(xiàn)。Arduino是一套開源硬件系統(tǒng),在數(shù)字媒體互動(dòng)設(shè)計(jì)方向已經(jīng)被普遍使用,它的低成本和易開發(fā)以及模塊化設(shè)計(jì)已經(jīng)讓很多缺乏專業(yè)技術(shù)的藝術(shù)設(shè)計(jì)者受益匪淺,本文的實(shí)現(xiàn)硬件系統(tǒng)即為Arduino UNO。
2 交叉相關(guān)算法與位置估算
2.1 交叉相關(guān)算法理論
研究的第1 步是對(duì)最簡(jiǎn)單的時(shí)延估計(jì)算法:直接交叉相關(guān)算法(Cross-Correlation)的波束成形理論進(jìn)行測(cè)試。
交叉相關(guān)的定義為:時(shí)間序列x(t)和y(t)中,兩個(gè)變量之間同時(shí)或非同時(shí)的一種重合關(guān)系[1]。這里x 和y 可以代表在不同地點(diǎn)測(cè)得的同一個(gè)變量,或代表在同一地點(diǎn)不同時(shí)間測(cè)得的單一變量。也可以理解為對(duì)兩個(gè)波形之間相似性的檢測(cè),是應(yīng)用于其中一個(gè)波形的時(shí)間滯后的函數(shù)。
圖1 是一個(gè)交叉相關(guān)的例子,用于測(cè)量相關(guān)信號(hào)源之間的滯后時(shí)間。找到兩個(gè)相似信號(hào)的延遲時(shí)間的表達(dá)式由下面的公式給出。
其中x(t)是傳感器x收到的信號(hào),y(t)是傳感器y收到的信號(hào),τ是2個(gè)信號(hào)之間的延遲時(shí)間[2]。交叉相關(guān)結(jié)果的峰值所在點(diǎn)顯示了兩個(gè)信號(hào)的延遲時(shí)間,如圖1所示。有兩種方法可以對(duì)信號(hào)進(jìn)行關(guān)聯(lián)。第一種是周期法。如果信號(hào)是正弦波或矩形波這樣的連續(xù)周期信號(hào),或者說(shuō)采樣信號(hào)只代表信號(hào)整體形式的某些部分,則采用這種方法。之所以說(shuō)它是周期,是因?yàn)楫?dāng)數(shù)據(jù)指標(biāo)(幅值)超出范圍時(shí),它還可以被轉(zhuǎn)換到范圍內(nèi),例如:x(N+τ)=x(τ)。第二種是非周期法(沒(méi)有周期重復(fù)信號(hào)出現(xiàn))??梢哉J(rèn)為信號(hào)是不連續(xù)的,或者說(shuō)采樣的信號(hào)代表了信號(hào)的整個(gè)形式。在目前的項(xiàng)目中互動(dòng)方式大都為單一聲源的隨機(jī)觸發(fā),所以采用第二種方式較多。
2.2 聲源角度計(jì)算方法
一旦進(jìn)行了交叉關(guān)聯(lián),計(jì)算出了信號(hào)的延遲時(shí)間,那就可以在限定條件下預(yù)測(cè)或估算傳入聲音的方向,先簡(jiǎn)化建模做如下定義:
限定條件:已有當(dāng)前空氣聲速數(shù)據(jù);聲源離傳聲器較遠(yuǎn)(測(cè)量值過(guò)小對(duì)精度影響較大);假設(shè)環(huán)境較理想(沒(méi)有回聲和發(fā)射效應(yīng)等)。
位置估計(jì)的幾何原理如圖2,聲音傳入角度可以通過(guò)簡(jiǎn)單的三角函數(shù)計(jì)算得到。
α是聲源的方向(角度);
c是空氣中的實(shí)際聲速(測(cè)量值);
d是2組麥克風(fēng)模塊的間距;
Δτ是聲源信號(hào)達(dá)到2個(gè)麥克風(fēng)的延遲時(shí)間(由交叉關(guān)聯(lián)計(jì)算得出)。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)硬件架構(gòu)
圖3是一套完整的互動(dòng)裝置系統(tǒng)架構(gòu),包含了輸入-處理-輸出整流程。聲源放在輸入傳感器前面的任何地方(可感應(yīng)范圍設(shè)定為20°~160°)。將由2 組麥克風(fēng)接收傳入的聲音信號(hào),然后在系統(tǒng)中進(jìn)行處理。在實(shí)驗(yàn)裝置中有2個(gè)輸出,1個(gè)是輸出到電腦(與Unity 進(jìn)行串口通信)實(shí)現(xiàn)UI 響應(yīng),另一個(gè)是輸出到舵機(jī),使攝像頭轉(zhuǎn)向音源位置。
前級(jí)采集信號(hào)使用了DFRobot SKU:DFR0034模擬聲音傳感器,這款MIC聲音傳感器是一款低成本高靈敏度的聲音傳感器,可用來(lái)檢測(cè)環(huán)境中聲音的強(qiáng)度,并內(nèi)置了放大器(300倍),輸出模擬信號(hào)能使用3.3V和5V為基準(zhǔn)AD采集,可以用來(lái)實(shí)現(xiàn)根據(jù)聲音大小進(jìn)行互動(dòng)的效果[3]。工作電壓:5V,工作電流:<10mA,最長(zhǎng)響應(yīng)時(shí)間:220ms,麥克風(fēng)靈敏度在50dBμ。采集的信號(hào)為模擬量,不能直接轉(zhuǎn)成分貝數(shù)值,中間的信號(hào)處理會(huì)非常的復(fù)雜,增益自動(dòng)調(diào)節(jié)、頻率計(jì)權(quán)、積分電路、時(shí)間計(jì)權(quán),這些是需要硬件電路來(lái)實(shí)現(xiàn)的,因此不能單靠單片機(jī)的程序來(lái)實(shí)現(xiàn),商家推薦直接使用現(xiàn)成的分貝計(jì)模塊,但費(fèi)用高昂且接口兼容性差。
3.2 系統(tǒng)優(yōu)化
基于成本的考慮,解決方案中的后級(jí)處理選用了DFRobot SKU_DFR00126 頻譜分析模塊。這是一款音頻信號(hào)分析模塊,此模塊選用了音頻頻譜分析儀芯片MSGEQ7,并有了2.0改進(jìn)版。通過(guò)接收音頻信息,可運(yùn)算分析出63 Hz、160 Hz、400 Hz、1,000Hz、2,500Hz七個(gè)頻段的振幅[4]。使用該模塊和麥克風(fēng)傳感器(DFR0034)配套使用,完成與Arduino 的音頻采集。
因?yàn)樵诨?dòng)裝置作品中對(duì)聲音的定位需求是感應(yīng)人聲,傳感器不必采集到全聲域。正常人耳能聽(tīng)見(jiàn)的頻率范圍是20Hz 到20000Hz(圖4)。頻率1000Hz~4000Hz是人耳能感受到的頻率中最敏感的范圍。據(jù)測(cè)定,標(biāo)準(zhǔn)普通話語(yǔ)音頻率在500~3000Hz,聲強(qiáng)在10dB~50dB 之間[5]。所以,通過(guò)濾波器保留400Hz,1KHz,2.5kHz 頻段的幅值,并根據(jù)不同的展覽環(huán)境設(shè)定不同的閾值。
依靠雙耳的聽(tīng)覺(jué)。從某方位發(fā)送的聲音到達(dá)兩耳時(shí),由于聲源與兩耳的距離不同,其間距與聲源的方位密切相關(guān),因此有時(shí)間(或相位)差,聲強(qiáng)也不同。低頻定位主要依據(jù)雙耳在相同瞬間接收聲音的時(shí)間差,而高頻定位則依據(jù)強(qiáng)度差,而耳郭的聚聲效應(yīng)又有利于高頻定位[6]。完全模擬人耳較為困難,因此實(shí)驗(yàn)中使用了單一不連續(xù)的聲源進(jìn)行了測(cè)試。
所有交叉關(guān)聯(lián)和位置估計(jì)技術(shù)的計(jì)算都由Ar?duino UNO(ATmega328p微處理器)程序?qū)崿F(xiàn)。
4 測(cè)試
4.1 聲速數(shù)值測(cè)定
通過(guò)在搭建的硬件原型上做了多次實(shí)驗(yàn),獲得了有價(jià)值的實(shí)測(cè)數(shù)據(jù)。聲源是通過(guò)喇叭播放一個(gè)人聲樣本聲音,并且以喇叭至麥克風(fēng)中心垂直位置的距離作為半徑,在圓弧上各個(gè)角度進(jìn)行測(cè)試。
位置估計(jì)技術(shù)第一步是先確定空氣中的聲音傳播速度??諝庵械穆曀僭诓煌牡胤绞遣煌模@取決于環(huán)境因素。因此,應(yīng)該先進(jìn)行一個(gè)實(shí)驗(yàn)來(lái)測(cè)量實(shí)際測(cè)試環(huán)境中的聲速??諝庵械钠骄曀贋閏=317m/s。但這個(gè)值會(huì)和實(shí)際值有較大偏差,空氣中的音速在1 個(gè)標(biāo)準(zhǔn)大氣壓條件下的傳播速度是:空氣(15℃)340m/s ,空氣(25℃)346m/s 。表1是測(cè)聲速的實(shí)驗(yàn)數(shù)據(jù),實(shí)驗(yàn)測(cè)試環(huán)境下的平均聲速c≈337.55m/s。
4.2 誤差校正
第二步是獲取測(cè)試系統(tǒng)的誤差校正值,這應(yīng)該是本次研究中最容易忽略的環(huán)節(jié)。2個(gè)信號(hào)到達(dá)麥克風(fēng)的延遲時(shí)間受到了很多因素的影響,例如:相同元件存在的公差,單片機(jī)A/D 多路復(fù)用造成的2 個(gè)通道的延時(shí),這些都將導(dǎo)致信號(hào)的相位偏差。
因?yàn)閿?shù)字媒體藝術(shù)專業(yè)的學(xué)生偏藝術(shù),普遍存在技術(shù)不夠精通的問(wèn)題,他們不了解也不可能使用專業(yè)領(lǐng)域中的校準(zhǔn)方式。所以,時(shí)間延遲校準(zhǔn)只能通過(guò)比較實(shí)際和理論計(jì)算之間的差異值來(lái)計(jì)算誤差。實(shí)際獲得誤差值的方式是:假設(shè)聲源方向是兩個(gè)麥克風(fēng)相對(duì)水平(0°或180°)的位置,麥克風(fēng)之間的距離是D,在檢測(cè)程序中使用交叉相關(guān)技術(shù)計(jì)算的實(shí)際延遲是42。查閱了Arduino UNO板微處理器Atmel 芯片數(shù)據(jù)手冊(cè),ATMega328p 的內(nèi)部A/D 轉(zhuǎn)換器的復(fù)用延遲是每通道100μs,使用了2個(gè)通道,采樣的延遲時(shí)間為200μs。推演出以下公式用來(lái)計(jì)算到達(dá)2個(gè)麥克風(fēng)的聲音的延遲時(shí)間的理論值:
通過(guò)將公式(1)代入公式(2),并設(shè)置D=50厘米和C=338米/秒,那么:s= 42.604。因此,校準(zhǔn)值Δs=42.604-42=0.604。在這個(gè)實(shí)驗(yàn)中,最終在數(shù)據(jù)校正時(shí),結(jié)果都會(huì)向下取整后再對(duì)比。
4.3 實(shí)驗(yàn)結(jié)果
聲源被放置在不同的位置,測(cè)試結(jié)果記錄在表中,上面的表格顯示了位置估計(jì)實(shí)驗(yàn)的結(jié)果。例如,聲源被放置在與系統(tǒng)有關(guān)的60°處(見(jiàn)表2)。延遲時(shí)間的理論值是7.4。接下來(lái),理論值減去校準(zhǔn)值(0.604 采樣)結(jié)果是6.79,最后得到理論值是6。這個(gè)理論值與實(shí)驗(yàn)數(shù)據(jù)獲得的數(shù)據(jù)6 一致,多次實(shí)驗(yàn)的結(jié)果都驗(yàn)證了這套解決方案是正確的。
5 結(jié)束語(yǔ)
由于A/D采樣頻率不夠高,方向估算的準(zhǔn)確性還有待提高。通過(guò)替換高精度高采樣率的A/D轉(zhuǎn)換器,以及提高主板控制器的配置,可以有效提高信號(hào)采集的有效性和算法的執(zhí)行效率。在現(xiàn)有實(shí)驗(yàn)的基礎(chǔ)上,完全有可能迭代出更高精度的定位計(jì)算系統(tǒng),最終目標(biāo)是更高難度的三維空間的音源定位。
其實(shí),還有另一種優(yōu)化解決方案。通過(guò)分頻方式提取人聲的效率和準(zhǔn)確率都不高,但通過(guò)語(yǔ)音識(shí)別技術(shù),將采樣的聲音進(jìn)行過(guò)濾,去除噪聲(如背景聲,雜音)后,只提取符合要求的聲音以提高計(jì)算效率,這個(gè)方法也將在下一步研究中進(jìn)行測(cè)試。
一種最新的聲源定位技術(shù)也值得關(guān)注,這項(xiàng)新技術(shù)是利用音視一致性深度學(xué)習(xí)的方式實(shí)現(xiàn)聲源定位,這與上述研究中利用聲源到達(dá)不同麥克風(fēng)的時(shí)差,聲強(qiáng)差來(lái)定位思路完全不同。深度學(xué)習(xí)利用大規(guī)模視頻數(shù)據(jù)集學(xué)習(xí)聲音與聲源物體之間的一致對(duì)應(yīng)關(guān)系,進(jìn)而達(dá)到定位的目的。當(dāng)然,這項(xiàng)技術(shù)需要更多專業(yè)領(lǐng)域的知識(shí),這將是下一步的研究計(jì)劃。
最后,本研究只是針對(duì)特定單一聲源方向的一種估算方法。雖然該解決方案有很大的局限性,但在很多作品中都得到了應(yīng)用,也符合設(shè)計(jì)目標(biāo)中的低成本低技術(shù)的要求。