生成虛擬環(huán)繞聲的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種生成虛擬環(huán)繞聲的方法和裝置,尤其涉及以立體聲耳機為播放設(shè) 備的虛擬環(huán)繞聲生成方法和裝置,屬于信號處理技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 在用虛擬現(xiàn)實頭戴設(shè)備(head-mounted display,HMD)向用戶呈現(xiàn)內(nèi)容時,采用虛 擬3D音頻技術(shù),通過立體聲耳機向用戶播放音頻內(nèi)容,目的是想要達到一種效果讓用戶就 像用揚聲器陣列(如5. 1或7. 1)聽一樣。
[0003] 在制作虛擬現(xiàn)實音頻內(nèi)容時,通常需要幾種聲音元素。第一,需要將自然聲場(或 稱為環(huán)境音)錄制并回放。第二,需要將音頻對象(audio object)進行混音。音頻對象由 一系列參數(shù)描述聲音(如小鳥的叫聲),包括不同時刻和在三維空間中的位置。
[0004] 自然聲場的錄制與回放有幾種常見方法。其中一種是基于ambisonics理論???以為:終端獲取音頻文件中包括的B格式信號,將該B格式信號轉(zhuǎn)換為虛擬揚聲器陣列信 號,將虛擬揚聲器陣列信號通過HRTF (Head Related Transfer Function,頭相關(guān)變換函 數(shù))濾波器進行濾波,得到虛擬環(huán)繞聲。HRTF在時間域所對應(yīng)的名稱是HRIR(Head Related Impulse Response)〇
[0005] 對于音頻對象通常的做法是加上房間模型(room model),將音源與雙耳房間脈沖 響應(yīng)(Binaural Room Impulse Response,BRIR)做卷積。雙耳房間脈沖響應(yīng)由三個部分組 成:直達聲、一些離散的早期反射聲和晚期混響(混響尾)。
[0006] 直接將音頻對象和BRIR做卷積這種做法的缺點是如果場景復雜,含有大量的音 頻對象,則復雜度會變得非常高,對于很多音頻播放終端,這將導致功耗過大,甚至無法播 放。另外,在虛擬現(xiàn)實設(shè)備上,還需要根據(jù)頭部的動作對音頻對象位置實時調(diào)整,這更極大 的加大了運算量,使得在移動虛擬現(xiàn)實設(shè)備上應(yīng)用傳統(tǒng)做法變的不切實際。
[0007] 傳統(tǒng)算法還常常用數(shù)學和統(tǒng)計的做法在線生成BRIR來避免存儲大量的BRIR,比 如用反饋延遲網(wǎng)絡(luò)(feedback delay network FDN)來模擬晚期混響。然而人工在線生成 的BRIR仍然存在質(zhì)量不高的問題,無法和真實錄制和離線房間模擬工具生成的BRIR相比。
[0008] 因此,現(xiàn)有的針對立體聲耳機播放音頻的虛擬環(huán)繞聲生成方法普遍面臨著虛擬環(huán) 繞聲質(zhì)量不高、運算量大的問題。
【發(fā)明內(nèi)容】
[0009] 為了克服現(xiàn)有技術(shù)下的上述缺陷,本發(fā)明的目的在于提供一種生成虛擬環(huán)繞聲的 方法和裝置,其能有效且高質(zhì)量地生成虛擬環(huán)繞聲,主要用于配合虛擬現(xiàn)實頭戴設(shè)備進行 音頻的立體聲耳機播放。
[0010] 本發(fā)明的技術(shù)方案是:
[0011] -種生成虛擬環(huán)繞聲的方法,包括對音頻對象的如下處理步驟:
[0012] 獲取用戶頭部旋轉(zhuǎn)角度;
[0013] 根據(jù)所述旋轉(zhuǎn)角度,將音頻對象編碼到高階B-格式信號(優(yōu)選為3階);
[0014] 將所述B-格式信號轉(zhuǎn)換成虛擬揚聲器陣列信號;
[0015] 對所述音頻對象的所述虛擬揚聲器陣列信號基于雙耳房間脈沖響應(yīng)(BRIR)進行 雙耳轉(zhuǎn)碼,得到音頻對象的雙耳輸出虛擬環(huán)繞聲信號。
[0016] 所述音頻信號可以為一個或多個。
[0017] 所述雙耳房間脈沖響應(yīng)優(yōu)選為離線生成,可以采用真實測量或由專門的軟件生 成。
[0018] 將音頻對象編碼到B-格式信號時,其中水平方向階數(shù)大于或等于垂直方向階數(shù)。 進一步地,水平方向編碼優(yōu)選為3階B-格式信號,垂直方向編碼優(yōu)選為2階或1階B-格式 信號。
[0019] 優(yōu)選的,當電量變低至一定程度時或接收到進入低功耗模式的指令時,將音頻對 象編碼到B-格式信號的階數(shù)調(diào)低,具體調(diào)低階數(shù)的方式為:
[0020] 在已知內(nèi)容在垂直方向上沒有大量角度變化時,調(diào)低垂直方向的階數(shù),在已知內(nèi) 容在垂直方向上有大量角度變化時,根據(jù)對聽覺效果的綜合影響,調(diào)低垂直方向和/或水 平方向的階數(shù),
[0021] 在電量變低過程中對階數(shù)的調(diào)低采用一步式或多步式,當采用一步式時,只設(shè)置 一個電量閾值,當?shù)陀陔娏康陀谠撾娏块撝禃r進行一次性的調(diào)低,當采用多步式時,劃分多 個低電量區(qū)間,當電量位于某一低電量區(qū)間時,將階數(shù)調(diào)低到該區(qū)間對應(yīng)的調(diào)低程度,低電 量區(qū)間涵蓋的電量值越低,對應(yīng)的階數(shù)越低,
[0022] 所述低功耗模式的檔位為一檔或多檔,當采用多檔低功耗模式時,在高檔位的低 功耗模式下,所調(diào)低的B-格式信號的階數(shù)低于在低檔位下相應(yīng)B-格式信號的階數(shù)。
[0023] 所述生成虛擬環(huán)繞聲的方法還優(yōu)選包括將環(huán)境聲轉(zhuǎn)換成環(huán)境聲的雙耳輸出虛擬 環(huán)繞聲信號,再將所述音頻對象和所述環(huán)境聲各自的雙耳輸出虛擬環(huán)繞聲信號對應(yīng)混音并 雙耳輸出。
[0024] 所述將環(huán)境聲轉(zhuǎn)換成環(huán)境聲的雙耳輸出虛擬環(huán)繞聲信號優(yōu)選包括如下步驟:
[0025] 獲取環(huán)境聲的1階B-格式信號;
[0026] 根據(jù)所述旋轉(zhuǎn)角度,將環(huán)境聲的所述B-格式信號旋轉(zhuǎn)得到旋轉(zhuǎn)后的B-格式信 號;
[0027] 將環(huán)境聲的所述旋轉(zhuǎn)后的B-格式信號轉(zhuǎn)換成虛擬揚聲器陣列信號;
[0028] 對環(huán)境聲的所述虛擬揚聲器陣列信號基于頭相關(guān)變換函數(shù)(HRTF)進行雙耳轉(zhuǎn) 碼,得到環(huán)境聲的雙耳輸出虛擬環(huán)繞聲信號。
[0029] 所述生成虛擬環(huán)繞聲的方法在實施運算時優(yōu)選基于以下假定:虛擬揚聲器陣列具 有左右對稱性,用戶在房間的中軸線上,用戶對應(yīng)的所述雙耳房間脈沖響應(yīng)和頭相關(guān)變換 函數(shù)也具有左右對稱性。
[0030] 一種生成虛擬環(huán)繞聲的裝置,包括:
[0031] 頭部跟蹤裝置,用于檢測用戶頭部旋轉(zhuǎn)角度;
[0032] 音頻對象輸入模塊,用于輸入原始的音頻對象聲道信號;
[0033] 音頻對象B格式編碼模塊,其設(shè)有聲道信號輸入端和角度輸入端,分別連接所述 音頻對象輸入模塊的輸出端和所述頭部跟蹤裝置的輸出端,用于根據(jù)所述旋轉(zhuǎn)角度將音頻 對象編碼到B-格式信號;
[0034] 音頻對象虛擬揚聲器陣列信號生成模塊,其輸入端連接所述音頻對象B格式編碼 模塊的輸出端,用于將所述B-格式信號轉(zhuǎn)換成音頻對象的虛擬揚聲器陣列信號;
[0035] 音頻對象雙耳房間脈沖響應(yīng)模塊,其輸入端連接所述音頻對象虛擬揚聲器陣列信 號生成模塊的音頻對象虛擬揚聲器陣列信號輸出端,用于對所述音頻對象的虛擬揚聲器陣 列信號基于雙耳房間脈沖響應(yīng)進行雙耳轉(zhuǎn)碼,得到音頻對象的雙耳輸出虛擬環(huán)繞聲信號。
[0036] 所述生成虛擬環(huán)繞聲的裝置,還優(yōu)選包括:
[0037] 環(huán)境聲B格式信號輸入模塊,用于輸入原始獲取的環(huán)境聲1階B-格式信號;
[0038] 旋轉(zhuǎn)矩陣生成模塊,設(shè)有用于接收所述頭部跟蹤裝置的輸出信號的輸入端,用于 根據(jù)所述頭部跟蹤裝置所檢測到的頭部旋轉(zhuǎn)角度生成旋轉(zhuǎn)矩陣;
[0039] 環(huán)境聲方位調(diào)整模塊,其待調(diào)整信號輸入端和旋轉(zhuǎn)矩陣輸入端分別連接所述環(huán)境 聲B格式信號輸入模塊的輸出端和所述旋轉(zhuǎn)矩陣生成模塊的輸出端,用于根據(jù)所述旋轉(zhuǎn)矩 陣,對環(huán)境聲的所述B-格式信號進行旋轉(zhuǎn)得到環(huán)境聲旋轉(zhuǎn)后的B-格式信號;
[0040] 環(huán)境聲虛擬揚聲器陣列信號生成模塊,其輸入端連接所述環(huán)境聲方位調(diào)整模塊的 輸出端,用于將環(huán)境聲旋轉(zhuǎn)后的B-格式信號轉(zhuǎn)換成環(huán)境聲的虛擬揚聲器陣列信號;
[0041] 環(huán)境聲頭相關(guān)變換函數(shù)濾波器模塊,其輸入端連接所述環(huán)境聲虛擬揚聲器陣列信 號生成模塊的輸出端,用于對環(huán)境聲的所述虛擬揚聲器陣列信號基于頭相關(guān)變換函數(shù)進行 雙耳轉(zhuǎn)碼,得到環(huán)境聲的雙耳輸出虛擬環(huán)繞聲信號;
[0042] 左聲道混音器模塊,其輸入端連接所述音頻對象雙耳房間脈沖響應(yīng)模塊的左聲道 輸出端和所述環(huán)境聲頭相關(guān)變換函數(shù)濾波器模塊的左聲道輸出端,用于對上述兩路輸出進 行混音;
[0043] 右聲道混音器模塊,其輸入端連接所述音頻對象雙耳房間脈沖響應(yīng)模塊的右聲道 輸出端和所述環(huán)境聲頭相關(guān)變換函數(shù)濾波器模塊的右聲道輸出端,用于對上述兩路輸出進 行混音;
[0044] 左數(shù)模轉(zhuǎn)換模塊和右數(shù)模轉(zhuǎn)換模塊,其輸入端分別連接所述左聲道混音器模塊和 右聲道混音器模塊,分別用于將左、右聲