Sunday, December 5, 2021

支持ASIO輸出的音頻播放器

ASIO的全稱是“Audio Stream Input Output”,是由德國Steinberg公司所提出的一種音頻技術規範,為音頻API標準之一。ASIO的主要特點是低延遲和多軌多通道傳輸。ASIO完全擺脫了Windows操作系統對硬件的集中控制,它能實現在音頻處理軟件與硬件之間進行多通道傳輸的同時,將系統對音頻流的響應時間降至最短。

Windows自有的MME驅動程式其延遲時間為200~500毫秒,DirectSound為50~100毫秒,Mac OS的Sound Manager則為20~50毫秒,使用ASIO的情況下,緩衝器依照設定的不同可至10毫秒以下,也有因環境較佳而到1毫秒以下的情況產生。 因此,在錄音作業與音樂製作上,可達到實時處理的效果。

在播放音樂時選擇ASIO輸出,除了延遲低,而且能避開系統重採樣、音效以及規格化處理,達到原汁原味的輸出效果。

這裡需要指出的是,據維基百科中的描述,ASIO對於音質是沒有影響的。

於電腦音源,早期 AC’97 規範(Intel 制訂 AC’97 規範規定芯片處理音效時要以 48KHz 取樣)及部分聲卡設計上的缺陷(硬件做即時的取樣頻率轉換,受限於成本,轉換品質差),導致音頻輸出會強制 SRC 為 48kHz。在當時 Windows NT 5.x 環境下,也由於使用者想規避 Kmixer (Kmixer 本身不會主動取樣頻率轉換,除非在同時播放不同取樣頻率音效的情況下),進而使用 PPHS (or SSRC),而 ASIO 的使用也是其中一種手段(Kernel Streaming 亦同)。但這方法並非能套用在所有環境與硬件上,亦有無法規避的情形存在。

在Windows NT 5.x環境下,有部分使用者套用ASIO設定之後,得到音質提升的結論。這是因為,ASIO避開Windows NT 5.x Kmixer的音量、音頻控制,所以不會受到原先音量設定的影響,而得到音量0dB的音頻輸出。許多使用者不會特意去調整音效主控台的音量設定,所以當音量0dB化之後,聲音變得更大聲(音量的差異),便往往產生“音質獲得提升”的主觀聽感。事實上在其它的API(DirectSound、waveOut),只要將主音量、Wave(或設備相關設定)拉杆拉至最高(或音效驅動程式定義的0dB位置),音質與ASIO是完全沒有差別的。

目前市場上的大多數普通獨立聲卡(如創新和華碩的聲卡)和專業錄音聲卡都支持ASIO,在音頻播放器中的音頻輸出中設置ASIO輸出即可。

但是目前市場佔有率極高的集成聲卡如Realtek ALC269、Realtek ALC892、Realtek ALC1150聲卡等默認不支持ASIO,這類聲卡通常需要安裝集成了ASIO支持的Realtek聲卡特別驅動(6.0.1.7255版 / 6.0.1.7432版)才能支持ASIO。

目前已知能支持ASIO輸出的音頻播放器有Foobar2000(通過foo_out_asio插件支持)、QQ音樂酷狗音樂千千音樂。其中千千音樂對ASIO的支持尚不完善,在通過ASIO輸出音樂時,拖動進度條會出現卡頓和無法繼續播放的現象。

目前尚不支持ASIO輸出的音頻播放器有酷我音樂網易雲音樂

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.