最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

基于對象的實(shí)時(shí)空間音頻渲染丨Dev for Dev 專欄

2022-07-28 12:18 作者:聲網(wǎng)RTE開發(fā)者社區(qū)  | 我要投稿

原創(chuàng)?李嵩?聲網(wǎng)開發(fā)者

本文為「Dev for Dev 專欄」系列內(nèi)容,作者為聲網(wǎng)音頻算法工程師?李嵩。


隨著元宇宙概念的引入,空間音頻這項(xiàng)技術(shù)慢慢映入大家的眼簾。關(guān)于空間音頻的基礎(chǔ)原理,我們做過一期科普視頻 —— 「空間音頻背后的原理」,想要了解的朋友可以復(fù)制文末的鏈接查看。


本期文章,我們將主要討論基于對象(object-based)的實(shí)時(shí)空間音頻渲染,也就是如耳機(jī)等應(yīng)用場景中,渲染對象為一個(gè)音源時(shí)的渲染思路與方案。





虛擬聲是指利用空間音頻技術(shù)合成的一路虛擬聲源。


在現(xiàn)實(shí)生活中,人們可以利用雙耳感知到真實(shí)聲源的位置,所謂的虛擬聲渲染,便是模仿真實(shí)聲源到達(dá)我們耳朵的過程,使聽者感受到虛擬聲源在空間中的位置等信息。


渲染過程中,我們需要幾個(gè)基礎(chǔ)的信息來進(jìn)行信號處理,比如:聲源、房間的模型、聲源和聽者的位置、聲源的朝向等等。在聲源和聽者之間沒有阻礙物的情況下,聲源發(fā)出的聲音會(huì)直接到達(dá)聽者的耳朵,我們把這個(gè)聽到的聲音叫做直達(dá)聲。


在直達(dá)聲到達(dá)后,聲源從墻壁、地板、天花板或其他障礙物反射產(chǎn)生的反射聲也會(huì)陸續(xù)到達(dá)聽者的耳朵。這些反射一開始很稀疏,隨著時(shí)間的推移會(huì)越來越密集,能量也會(huì)呈指數(shù)下降。通常,我們將一開始稀疏的反射稱作早期反射,一般在 50ms 到 80ms 內(nèi);把該段時(shí)間后的密集反射叫做后期混響(具體的時(shí)間和房間大小等環(huán)境因素有關(guān))。




前文描述的是聲源在房間內(nèi)通過空氣傳播到達(dá)人耳的過程,接下來我們討論這一過程如何實(shí)現(xiàn)??紤]到聲源經(jīng)過空氣到人耳的傳遞過程一般是線性的,如圖一所示,因此對于渲染來說最簡單的方法是卷積已知的單聲道聲源和一對雙耳房間的脈沖響應(yīng)?(Binaural room impulse response, BRIR)。?


圖一:卷積BRIR獲得雙耳聲


其中 BRIR 指的是在房間內(nèi)從聲源到人耳的雙耳房間脈沖響應(yīng),包括了直達(dá)聲和反射(這里的反射包括了早期反射和后期混響)。我們可以將其理解成當(dāng)聲源是一個(gè)脈沖信號(比如拍手,發(fā)令槍發(fā)出的聲音等)的時(shí)候,你聽到的聲音。正如我們前文所說,BRIR 與房間、聲源和聽者的位置有關(guān)。


圖二所示是一對在某個(gè)房間內(nèi)真實(shí)測量的 30° 水平角的 BRIR,其中藍(lán)色和紅色線分別代表左耳和右耳的 BRIR。我們可以清晰的看到在時(shí)域中的直達(dá)聲、早期反射和后期混響部分。


圖二:一對真實(shí)測量的雙耳房間脈沖響應(yīng) (來源: University of Surrey, IoSR-Surrey數(shù)據(jù)庫)


那么 BRIR 如何獲取呢?測量是一個(gè)真實(shí)并且準(zhǔn)確的做法,尤其是對于現(xiàn)實(shí)增強(qiáng)(AR)的場景而言。但即使在不考慮個(gè)性化的情況下,在每個(gè)房間借助人工頭來真實(shí)測量所有可能位置的 BRIR 都是不現(xiàn)實(shí)的。


另外 BRIR 的長度和房間的混響大小有很大關(guān)系,且實(shí)時(shí)卷積很長的 BRIR 需要耗費(fèi)很大的算力。因此通常會(huì)使用合成的方法來模擬真實(shí)的 BRIR。


1)直達(dá)聲的合成


BRIR 的第一部分是直達(dá)聲的脈沖響應(yīng)。直達(dá)聲的合成可以通過卷積聲源和頭部相關(guān)脈沖響應(yīng)(Head-related impulse response, HRIR)來獲取。HRIR 是頭部相關(guān)函數(shù) HRTF 的時(shí)域表達(dá)。


關(guān)于 HRTF 相信大家已經(jīng)有所了解,它表示的是聲源到人耳的傳遞方程,但并不包含反射(早期反射和后期混響)部分。也就是說,如果只是用 HRTF 去渲染的一個(gè)聲源,我們所在的虛擬聽音場景是無反射的場景,類似消聲室,雪山頂?shù)忍厥鈭龅亍?/p>


圖三:直達(dá)聲部分渲染


圖三為直達(dá)聲部分的渲染鏈路,包括聲源朝向的渲染、隨距離改變的聲壓、空氣衰減的模擬,和一對指定方向的 HRTF 濾波。這里的每一個(gè)模塊在之前的文章中都有介紹過?(歷史文章詳見文末拓展閱讀)。


在實(shí)時(shí)音頻處理中,考慮到 HRIR 的長度,一般不會(huì)在時(shí)域上直接進(jìn)行卷積,而是在頻域上通過快速傅里葉變化(FFT)進(jìn)行。當(dāng)聲源的位置發(fā)生改變時(shí),就需要切換使用對應(yīng)的 HRIR。為了防止切換 HRIR 時(shí)產(chǎn)生雜音,前一個(gè)和后一個(gè)的 HRIR 會(huì)進(jìn)行類似淡入淡出操作。


如果 HRIR 對應(yīng)的采樣點(diǎn)不是很密集,則需要在渲染時(shí)進(jìn)行實(shí)時(shí)插值來獲取對應(yīng)方位的 HRIR。當(dāng)然也可以先進(jìn)行離線插值直到足夠密集為止(小于 Just noticeable difference),在實(shí)時(shí)渲染的時(shí)候就可以直接選擇離目標(biāo)位置最近的 HRTF 來使用。


這樣一來可以減少實(shí)時(shí)插值帶來的算力,但需要存儲(chǔ)的 HRIR 的包體積會(huì)變大。因此需要在 HRIR 存儲(chǔ)體積和實(shí)時(shí)插值的算力間進(jìn)行取舍。


2)反射的合成


BRIR 的第二部分是早期反射的脈沖響應(yīng)。早期反射對音色,聲源定位等有著很大的影響。由于早期反射比較稀疏,每個(gè)早期反射會(huì)被當(dāng)作一個(gè)虛擬聲源。這些虛擬聲源的位置可以通過鏡面法、光線追蹤法或者數(shù)值求解等方法得到。


鏡面法是一種比較省算力且相對直觀的方法,但一般只適用于墻面光滑的情況,其無法模擬由于墻面不光滑引起的散射場景。光線追蹤法可以模擬反射和散射場景,但聲線方向以及數(shù)量的選擇需要做更為仔細(xì)的考慮。在模擬低階早期反射時(shí),算力會(huì)比鏡面反射要大。數(shù)值計(jì)算的精確度是最高的,但是其計(jì)算復(fù)雜度很高,適用于做線下模擬和仿真。


在實(shí)時(shí)計(jì)算早期反射的時(shí)候,考慮到算力問題,一般我們會(huì)精確計(jì)算 1-2 階早期反射。這里的階數(shù)是指和墻面經(jīng)過幾次碰撞,比如一階反射是指聲源和墻面經(jīng)過一次碰撞到達(dá)人的耳朵。當(dāng)這些早期反射的位置計(jì)算出來后,需要對每一個(gè)反射做和直達(dá)聲一樣的處理,包括反射聲源的朝向,和距離有關(guān)的聲壓和空氣衰減模擬,以及對應(yīng)的 HRTF 濾波。


需要注意的是,由于每個(gè)反射到達(dá)人耳的時(shí)間不同,需要計(jì)算反射到達(dá)人耳相對于直達(dá)聲的延遲時(shí)間。如果按照嚴(yán)格的物理意義,直達(dá)聲也需要包括一段由聲源到達(dá)人耳的延遲。


假如在一個(gè)虛擬場景,聲源離聽者 100 米,那么需要額外引入大概 291 毫秒的延遲。這樣處理的話,雖然符合了物理含義,但是額外增加了延遲,并且這段直達(dá)聲的延遲對空間感沒有任何幫助。因此反射的延遲只會(huì)考慮相對于直達(dá)聲到達(dá)人耳的延遲。


另外,由于反射聲源是經(jīng)過墻壁的反射/散射造成的,需要模擬墻壁反射/散射造成的能量衰減。要真實(shí)的模擬這一個(gè)音效,就要知道墻面材料等房間信息。


圖四:早期反射的渲染


生成早期反射的大致流程由圖四所示。圖示是將每一個(gè)早期反射都進(jìn)行了單獨(dú)處理,最后生成雙耳聲的時(shí)候,每一個(gè)反射都經(jīng)過對應(yīng)的 HRTF 濾波。另外一種方式是先合成早期反射的脈沖響應(yīng),當(dāng)然長度會(huì)隨著房間增大而增大,但最后聲源只需要進(jìn)行一次和早期反射脈沖響應(yīng)的卷積。


3)后期混響的合成


BRIR 的最后一部分是后期混響。需要注意的是所有的混響部分都可以像計(jì)算早期反射一樣進(jìn)行計(jì)算,但是計(jì)算高階早期反射需要很大的算力,并且我們?nèi)硕鷮Ω唠A反射所在的位置不敏感,因此我們不需要精確的計(jì)算高階反射,也就是多級經(jīng)過墻面反射/散射的聲波的具體位置。


通常情況下,我們可以用人工混響器來渲染生成后期混響。比較常見的人工混響器有:全通濾波器、反饋梳狀濾波器、全通濾波器和梳狀濾波器的組合濾波器等。在混響器中,反饋延遲網(wǎng)絡(luò)是一種比較常見也是性價(jià)比很高的實(shí)現(xiàn)方法。


4)實(shí)時(shí)空間音頻渲染流程


圖五:雙耳聲渲染過程


整體的實(shí)時(shí)空間音頻渲染流程圖如圖五所示。要注意的是,其中每一個(gè)模塊都可以設(shè)計(jì)的很復(fù)雜,也可以很簡單。舉例來說,每一個(gè)房間都是形狀各異,但有時(shí)候?yàn)榱撕喕?jì)算復(fù)雜度,會(huì)用一個(gè)簡單的長方體的房間模型來代替。空氣衰減的模擬可以用 FIR 濾波器來實(shí)現(xiàn),但是在實(shí)際應(yīng)用中,會(huì)用低階的 IIR 濾波器來逼近結(jié)果從而節(jié)省算力。


這當(dāng)中的核心模塊如 HRTF 也是一直很熱門的研究話題。HRTF 是高度個(gè)性化的,如果使用了非個(gè)性化 HRTF,可能會(huì)出現(xiàn)定位不準(zhǔn)確,前后混淆的現(xiàn)象。雖然真實(shí)測量的個(gè)性化 HRTF 準(zhǔn)確度最高,但是在實(shí)際應(yīng)用中,測量 HRTF 是不現(xiàn)實(shí)的。在實(shí)際應(yīng)用中,基于耳朵照片的個(gè)性化HRTF預(yù)測或者個(gè)性化 HRTF 選擇會(huì)是一種更為合適的方式。


除了 HRTF 的個(gè)性化問題外,HRTF 在遠(yuǎn)場?(一般來說聲源和聽者的距離大于 1 米)時(shí)候,頻譜和距離無關(guān)。也就是說在同一個(gè)方向下,2 米的 HRTF 的頻譜和 3 米的 HRTF 頻譜是一樣的,只是幅度不一樣了。


然而 HRTF 在近場(一般來說聲源和聽者的距離小于 1 米)的時(shí)候,頻譜會(huì)隨著距離發(fā)生巨大變化。為了更加真實(shí)的渲染近場聲源的效果,需要用遠(yuǎn)場 HRTF 通過外插的方法來合成近場 HRTF。




當(dāng)音源不是一個(gè)對象,而是一個(gè)聲場或者是有大量的對象需要同時(shí)被渲染時(shí)候,上述的方法就不太適用了,可以用 Ambisonic 的方法進(jìn)行實(shí)時(shí)渲染。


另外拋出一個(gè)問題,?假設(shè)我們正確地渲染了基于某個(gè)房間的空間音頻,我們就會(huì)有很好地沉浸式體驗(yàn)了嗎?我們會(huì)在之后的文章聊一聊如何使用 Ambisonic 的方法進(jìn)行空間音頻的實(shí)時(shí)渲染以及關(guān)于空間音頻的主觀聽感,請大家持續(xù)關(guān)注 Dev for Dev 專欄。



關(guān)于 Dev for Dev

Dev for Dev 專欄全稱為 Developer for Developer,該專欄是聲網(wǎng)與 RTC 開發(fā)者社區(qū)共同發(fā)起的開發(fā)者互動(dòng)創(chuàng)新實(shí)踐活動(dòng)。


透過工程師視角的技術(shù)分享、交流碰撞、項(xiàng)目共建等多種形式,匯聚開發(fā)者的力量,挖掘和傳遞最具價(jià)值的技術(shù)內(nèi)容和項(xiàng)目,全面釋放技術(shù)的創(chuàng)造力。


基于對象的實(shí)時(shí)空間音頻渲染丨Dev for Dev 專欄的評論 (共 條)

分享到微博請遵守國家法律
潍坊市| 策勒县| 墨竹工卡县| 蚌埠市| 托里县| 广昌县| 金沙县| 元谋县| 谢通门县| 长岛县| 山西省| 普宁市| 德化县| 潜江市| 兰州市| 同心县| 新河县| 静宁县| 通州区| 凤庆县| 牙克石市| 台中市| 花莲市| 左云县| 康马县| 平原县| 光泽县| 闽清县| 穆棱市| 龙泉市| 睢宁县| 南宫市| 青川县| 天台县| 漳浦县| 侯马市| 常德市| 神农架林区| 新竹市| 合作市| 台山市|