1. 網上取一份 HRTF 資料,比如:HRTF Measurements of a KEMAR Dummy-Head Microphone;
2. 實現一個 FIR 濾波器。對於這麼長的衝激響應,應該需要使用分段傅立葉變換來計算;
3. 可能需要實現一個均衡器和一個混響器,用來給變換後的音訊加上空間感,以及頻響的調整;
4. 確定好你的 5.1 聲道中各個聲道使用的 HRTF 響應資料、均衡器和混響的引數;
5. 剩下的就是具體的技術問題了,比如做成 VST 還是什麼播放器的外掛形式;
6. 使用你的效果器對 5.1 聲道中每個聲道進行渲染,輸出立體聲。
理論上很簡單,但決定效果好不好的最重要兩個因素就是:
1. HRTF 資料本身的質量;
2. 引數的調整。
這兩步可以使得最終效果相差非常大。真要做好,必須得弄個聲學實驗室和人工頭等一整套裝置來做實驗。
如果目標渲染物件不是耳機而是音箱的話,可能還需要:
1. crosstalk cancellation(這個不知道中文怎麼翻?),就是一種利用聲波干涉原理的處理技術,使得左聲道的聲音不會被右耳聽到,右聲道的聲音不會被左耳聽到;
2. beamforming(波束形成?),要做得更好的話可能需要這個技術,效果是使得音箱的回放效果聽起來像耳機,並且(理論上做到最好的話)只有你一個人聽得見音箱發出的聲音。但環境引數的測定以及人耳位置的跟蹤是個難點。
1. 網上取一份 HRTF 資料,比如:HRTF Measurements of a KEMAR Dummy-Head Microphone;
2. 實現一個 FIR 濾波器。對於這麼長的衝激響應,應該需要使用分段傅立葉變換來計算;
3. 可能需要實現一個均衡器和一個混響器,用來給變換後的音訊加上空間感,以及頻響的調整;
4. 確定好你的 5.1 聲道中各個聲道使用的 HRTF 響應資料、均衡器和混響的引數;
5. 剩下的就是具體的技術問題了,比如做成 VST 還是什麼播放器的外掛形式;
6. 使用你的效果器對 5.1 聲道中每個聲道進行渲染,輸出立體聲。
理論上很簡單,但決定效果好不好的最重要兩個因素就是:
1. HRTF 資料本身的質量;
2. 引數的調整。
這兩步可以使得最終效果相差非常大。真要做好,必須得弄個聲學實驗室和人工頭等一整套裝置來做實驗。
如果目標渲染物件不是耳機而是音箱的話,可能還需要:
1. crosstalk cancellation(這個不知道中文怎麼翻?),就是一種利用聲波干涉原理的處理技術,使得左聲道的聲音不會被右耳聽到,右聲道的聲音不會被左耳聽到;
2. beamforming(波束形成?),要做得更好的話可能需要這個技術,效果是使得音箱的回放效果聽起來像耳機,並且(理論上做到最好的話)只有你一個人聽得見音箱發出的聲音。但環境引數的測定以及人耳位置的跟蹤是個難點。