關於空間音效的一些事情
4 min read

關於空間音效的一些事情

2021/7/6 更新:我找到在 macOS 做虛擬環繞的方法了,但是需要花錢買 AU(Audio Units)外掛,一個至少約三千元台幣左右,比如說 Binauralizer。這種 AU 外掛可以吃環繞聲然後吐雙聲道出來,所以只要找個支援環繞聲音軌的 DAW 軟體就可以了。問題是,這種 DAW 通常是專業的,所以也要錢,像是 Logic Pro 或 Protools 等等。做法跟 Crossfeed 類似,就是從 Soundflower (64) 輸入環繞聲(要在音訊 Midi 設定裡設成環繞聲輸出),然後把音軌輸出設成立體聲後,再加入 Binauralizer 外掛。但我實際測試之後,覺得先讓系統把環繞聲混成立體聲,然後再透過類似 Crossfeed 的 HRTF 外掛轉成 binaural 音軌的效果其實不會差太多,但是不用花任何錢,也吃比較少系統資源,穩定很多。我另外也找到另一個外掛叫做 DearVR MICRO,是 Sennheiser 有參與製作的外掛,可以調整的參數比 Crossfeed 多很多,是針對立體聲轉 binaural 的,可以調整虛擬雙聲道的寬度、方向以及高度等等。


空間音效指的是在耳機上面模擬出一個音場的效果。空間音效分成好幾種不同的實作方式,像是虛擬環繞與 crossfeed 等等,分別可以把環繞音效與立體聲轉換成 binaural 雙聲道音軌。

這裡要說一下什麼是 binaural。簡單來說,一般的雙聲道立體聲(stereo)音軌都是混音給喇叭放的,所以要用喇叭才能重現出混音者所設計的音場。耳機雖然也是雙聲道,但耳機對耳朵的相對位置跟喇叭完全不一樣,所以用耳機聽一般的立體聲音軌是會把音場扭曲變形的。而為了耳機所混音的雙聲道,就叫做 binaural。

虛擬環繞的原理是這樣:讓 source app (音樂播放程式、影片播放程式、遊戲等)輸出 5.1 或 7.1 的環繞音軌,然後讓一個 virtualizer app 去把環繞音軌轉換成 binaural 雙聲道音軌,再輸出給耳機。

在 Windows 底下,你可以手動設定音效要輸出成 7.1 聲道,然後透過 Equalizer APO + HeSuVi 去攔截它,把它轉成 binaural 音軌。這樣設定的好處是所有立體聲、5.1 與 7.1 環繞聲的音軌都可以在系統層級轉換為 binaural 音軌,不像 Dolby Atmos for Headphones 等空間音效軟體只支援透過 Windows Sonic API 出來的音效。

MacOS 我找不到可以在系統層級實作虛擬環繞的方法,只能等 Apple 官方支援。但我們還是可以把立體聲轉成 binaural 音軌,用 crossfeed 的方法。Crossfeed 原本就是指左或右喇叭發聲時雙耳都會聽見的情形,在耳機上模擬出來。在 macOS 上,有一個 Audio Unit plug-in 叫做 Crossfeed 就可以做到這件事情。它是雙聲道輸入、雙聲道輸出,要使用它的話,就要找個可以用 Audio Unit 的音效軟體去啟用它。我是用 Soundflower 把系統音效導入 Hosting AU 的 ext-in,加入 Crossfeed 效果,然後再把 Master 設成外接耳機。

在 iOS 上面就更慘了,系統的音效完全不讓你動。所以我下訂了一台有 crossfeed 功能的 USB DAC(Qudelix 5k),以達到系統層級的聲音調整。如果不拘泥於無線耳機的話,也可以找找 7.1 USB DAC 耳擴,這些才能真正接收 7.1 音效,只是我不確定 iPhone 與 iPad 能不能透過 USB 輸出環繞音效。也許 7.1 DAC 還是只能用在 PC 與 Mac?

講到空間音效,還是得提一下 Dolby Atmos。它跟立體聲、環繞聲不同的是,它本身希望跳過所謂「混音給喇叭」或「混音給耳機」的概念,只定義聲音物件的位置與屬性,而播放系統要怎麼把這些聲音物件混音給喇叭或耳機,那就是播放系統自己的事情。Windows Sonic API 基本上就是這個原理,而 Apple 的 Spatial Audio 也是類似的框架。我相信這會是未來的主流格式,因為就算是立體聲的錄音,也能即時 upmix 成這種物件導向音軌,只是目前不管 Windows 還是 macOS、iOS 都還沒有把 upmix 功能做進各自的空間音效框架裡,所以音源本身就一定要是物件導向的 Dolby Atmos 或者傳統環繞聲,才能啟用到系統的空間音效。所以如果要用 binaural 聽立體聲音樂的話,目前還是得透過各種第三方 virtualizer app(HeSuVi 或 Crossfeed 等)或裝置才可以。