【Oculus】虛擬現實音頻處理VR Audio - Part 2【翻譯】

3、3D音頻的空間化

前文討論了人類如何在三維空間中定位聲音,如今,咱們反過來問,「咱們能不能應用這些信息來讓人們認爲一個聲音來自於空間中的某個具體位置?」it

答案是YES,否者的話,這篇文章就會很是短了。VR音頻很重要的一部分就是空間化:可以讓一個聲音聽起來來自於三維空間中的某個位置。空間化給用戶提供了在一個真實3D環境中的感受,能夠加深immersion。io

和定位同樣,空間化有兩個重要部分:方向和距離。基礎

3.1 使用HRTF的方向空間化

咱們知道不一樣方向的聲音,在身體和耳朵裏的傳播是不一樣的。這些不一樣的影響構成了HRTF的基礎,讓咱們來定位聲音。音頻

3.1.1 獲得HRTFs

最準確的方法是把話筒放在人的耳朵裏,而後放在一個無回聲的環境裏,而後在房間裏從各個重要的方向播放聲音,並記錄下話筒裏的聲音,經過比較原始聲音和話筒的聲音就能夠計算出HRTF。(Oculus的音頻工程師在一次演講中提到,這種方法不是很實際,對於被測者是個torture)軟件

兩隻耳朵都必須這樣作,而且須要從足夠多的離散的方向來創建模型。可是這些模型只是針對一我的的,在現實世界中,咱們沒法獲得每一個人的模型,所以生成一個通用的模型通常也夠用了。List

大多數基於HRTF的空間化方法,都採用一些現有的公開數據集,例以下面的4個。model

  • IRCAM Listen Database反射

  • MIT KEMAR方法

  • CIPIC HRTF Databaseim

  • ARI(Acoustics Research Institute) HRTF Database

大多數HRTF的數據集中不包含各個方向的HRTF,例如頭下區域。有些HRTF數據集只進行了稀疏採樣,只有5-15個自由度。

大多數方法,或者採用最近的HRTF,或者進行插值。在這個領域有許多研究,可是對於基於桌面的VR應用,一般狀況下都可以找到足夠的數據集。

3.1.2 應用HRTFs

給定一個HRTF數據集,若是咱們知道了聲源的方向,咱們就能夠選擇一個HRTF而後把它應用到該聲源。這常經過一個時域的卷積或者一個FFT/IFFT對實現。

若是你不知道這些事什麼東西,也不用着急,這些細節只有當你本身實現HRTF時才用獲得。本文討論的是應用的細節,例如怎麼存儲一個HRTF,當處理音頻時如何調用。咱們關注的是高層的邏輯,「將音頻進行進行過濾讓它聽起來來自於一個特定的方向」。

因爲HRTFs會考慮到聽衆的頭部位置,所以在進行空間化時,須要帶耳機。若是沒有耳機,就須要應用兩個HRTF方程組:模擬的一個,和真實經過身體獲得的。

3.1.3 頭部追蹤

聽衆本能的會經過頭部的運動來分辨空間中的聲音,若是一個聽衆的腦殼向一側轉了45度,那咱們就必須在他們的聽覺環境中體現出來,不然音響就會出錯。

VR頭部設備(例如Rift)能夠追蹤聽者的頭部方向(或者位置),根據這些信息,咱們就能夠投射聲音信息到聽者的空間中。這些的前提是聽者戴了耳機,不然難度係數對於大多數VR應用是沒法接受的。

3.2 距離模型

HRTFs幫助咱們定位聲音的方向,可是不能對距離進行建模。人們經過一些因素來估計聲音的距離,這些能夠經過在軟件中調整參數和精度來進行模擬。

  • 聲音大小:最重要的因素,很容易經過聽者和聲源的距離進行建模。

  • 起始時間延遲(Initial Time Delay):很難建模,須要根據空間進行計算反射,可是依然有幾個數據集嘗試對此進行建模,從簡單的 shoebox models到完整的空間幾何建模。

  • 聲音和混音(Reverberation)的比例:經過對反射和回聲進行建模能夠獲得,有一些現有模型,但計算複雜度很高。

  • 運動視差:根據聲源的速度能夠直接計算獲得。

  • 高頻衰變:經過低通濾波器能夠很容易的建模,實際應用中,該因素並非很重要。

相關文章
相關標籤/搜索