當你在 Mac 上播放音樂時,聲音並不是直接從音樂檔案傳到揚聲器。
在到達輸出裝置之前,音訊訊號會經過多個軟體層級和系統服務。
理解這條路徑,有助於解釋許多關於播放質量、取樣率切換以及“bit-perfect”播放的討論。
macOS 的典型音訊路徑
簡化來看,一條典型的播放路徑大致如下:
音訊檔案
解碼器
應用播放器引擎
Core Audio
系統混音器
輸出裝置(DAC)
每一個階段都承擔著不同的角色,最終將儲存的資料轉換成能夠驅動耳機或揚聲器的電訊號。
檔案解碼
像 FLAC、ALAC、WAV、AIFF 這樣的音樂檔案首先需要被解碼成 PCM 音訊樣本。
對於無損格式來說,解碼過程會恢復原始的 PCM 資料。
在這一階段,最重要的是準確性:解碼後的樣本應當與檔案中原始的數字資料一致。
現代解碼庫通常非常成熟,只要實現正確,解碼本身很少成為音質問題的來源。
應用播放器引擎
解碼之後,音訊資料會進入播放器內部的播放引擎。
在這一層,應用程式決定如何處理訊號。
例如:
- 緩衝管理
- 取樣率轉換
- DSP 處理
- 音量控制
- 向作業系統輸出音訊
一些播放器會在這裡加入額外的處理,例如均衡器或響度標準化。
而另一些播放器則儘量保持訊號路徑的簡潔。
Core Audio
Core Audio 是 macOS 的底層音訊框架。
它負責連線應用程式與系統音訊硬體之間的通訊。
Core Audio 主要管理:
- 裝置訪問
- 音訊緩衝
- 時間同步
- 取樣率處理
應用程式通常將音訊流傳送給 Core Audio,由系統負責將資料傳遞到選定的輸出裝置。
系統混音器
當多個應用同時發出聲音時,macOS 會透過系統混音器將這些訊號合併。
例如:音樂播放器、系統提示音、瀏覽器影片聲音。
這些聲音會被混合成一條統一的音訊流,然後傳送到輸出裝置。
在混音過程中,系統通常需要將不同取樣率的音訊轉換到同一個取樣率。
這也是很多發燒友討論取樣率問題的原因之一。
輸出裝置
播放鏈路的最後一環是輸出裝置。
這可能是:
- Mac 內建音效卡
- USB DAC
- Thunderbolt 音訊介面
- 藍芽耳機
DAC 會將數字訊號轉換為模擬電訊號,再驅動耳機或揚聲器。
DAC 的設計、耳機或音箱以及聽音環境都會影響最終聽到的聲音。
播放質量在哪裡決定
在這條鏈路中,有多個環節可能影響播放行為:
- 解碼
- 播放器引擎
- 取樣率轉換
- 系統混音
- 輸出裝置
但它們的影響程度並不相同。
在很多情況下,錄音質量與母帶製作對最終聽感的影響遠遠大於播放軟體本身。
理解這個系統
macOS 提供了一套非常穩定且成熟的音訊架構。
大多數播放器並不是繞過系統,而是在 Core Audio 框架內實現穩定可靠的播放。
理解這套系統,有助於更清晰地看待很多關於音訊軟體設計的討論。