asio

Steinberg公司開發的音效卡驅動模式

ASIO是專業音效卡驅動模式的一種簡稱。由 Steinberg 公司開發。應用很廣泛的個人電腦音效卡專業驅動。它的全稱是Audio Stream Input Output,直接翻譯過來就是高級音頻流輸入輸出介面的意思。通常這是專業音效卡或高檔音頻工作站才會具備的性能。採用ASIO技術可以減少系統對音頻流信號的延遲,增強音效卡硬體的處理能力。同樣一塊音效卡,假設使用MME驅動時的延遲時間為750毫秒,那麼當換成ASIO驅動后延遲量就有可能會降低到10毫秒以下。

asio
asio

功能


簡單的來說,ASIO的目的是降低音頻延遲;同時ASIO作為系統中獨立的音頻通道可以避開DirectSound(或其他通道)的干擾,從而使得ASIO應用程序(如音樂創作軟體)可以不受系統中正在運行的其他程序的干擾。
當程序使用ASIO通道時,可以避免其他程序因為“獨佔模式”而造成通道獨佔情況,因此您的工作可以不受到影響。如果您使用的程序也是DirectSound,或者其他什麼通道(如KS、WASAPI等),當某個使用同樣通道的程序啟動“獨佔模式”后,比如騰訊QQ,您的程序將受到干擾,最直觀的感覺是,除了騰訊QQ外,其他程序全部無聲。因此在音頻編輯時,如果使用ASIO通道,在降低延遲的情況下還可以避免干擾。
舉個簡單的例子來說明降低延遲的意義所在:許多朋友都試過用計算機與網際網路進行語音通話,就連著名的聊天工具QQ都有此功能。其實網際網路上的語音通訊跟電信部門提供的IP電話是同樣機理,只不過由於網路帶寬的限制而使得前者的聲音延遲現象遠比後者嚴重得多。當話音的延遲在一定的範圍內時,人們會覺得尚可接受;但如果延遲量實在太大(比如說每說一句話都要等到5秒以上),那麼大家就會覺得這是無法忍受的了。

使用


普通音效卡在播放音頻流的時候是有延遲的,儘管一般用戶都不易察覺到它的存在。畢竟,對於播放影碟和雙聲道的MP3音樂以及玩遊戲來說,幾百毫秒的聲音延遲對應用的影響根本是微乎其微的,完全可以被忽略不計。但是,對於專業的錄音師和音樂製作人來說,這幾百毫秒延遲所帶來的後果就好比我們普通用戶要面對響應極慢的網際網路IP電話、用1000的Ping玩魔獸世界那樣,是不能容忍。試想,當按下一個琴鍵時,要經過0.6秒以上的時間才能夠聽到聲響,恐怕任何演奏者都很難發揮其正常的水平,更無法控制音樂表演的情緒;錄音師進行後期製作的過程中,需要給不同的音頻信號做相應的實時效果處理,並對分軌錄製的多通道音頻流進行混音,以得到最終的雙聲道立體聲或是5.1聲道的環繞聲格式。在對多個聲部的音頻進行縮混時,如果聲音有延遲且延遲時間各不相等,那麼多個聲道之間的信號同步就會成為大問題,錄音師就會因此而無法對混音的結果進行準確判斷。為此,他們十分迫切需要一種能夠讓音頻設備實現“零延遲”的技術,這個技術就是Steinberg定義的ASIO。

目的


為了實現“音頻設備零延遲”的理想,著名的音樂製作軟體Cubase VST的開發者Steinberg公司提出了被稱為Audio Stream Input Output的標準規範,其目的是為了讓各硬體廠商開發出來的設備能夠很好地與Steinberg的音頻處理軟體Cubase VST相結合,以使其在數字音頻處理和軟體音源模擬方面發揮出最佳的性能水平。ASIO完全擺脫了Windows操作系統對硬體的集中控制,它能實現在音頻處理軟體與硬體之間進行多通道傳輸的同時,將系統對音頻流的響應時間降至最短。根據ASIO規範中定義的細節,音效卡廠商可以為其硬體產品編寫出高效能的ASIO驅動程序,使用音效卡硬體對音頻流的響應時間降低到十幾毫秒以內。要知道,即便是對於那些極其苛刻的專業音樂製作人,這樣低的延遲量也是根本無法察覺到的。

辨析


ASIO的目的在於最大程度地降低系統播放音頻流時的延遲時間。也許有讀者會因此聯想到DirectSound——不錯,ASIO跟DirectSound的確十分相似,二者都是以設法繞過Windows操作系統對硬體設備的控制、直接與硬體埠取得通訊的思路來實現提高響應速度的目的。不過,ASIO的革命性要比DirectSound更徹底一些:如果把DirectSound比喻成用高級語言實現的程序,那麼ASIO就是用彙編代碼構成的程序——不僅結構更為緊湊,效率也大為提高。更何況,ASIO不僅是驅動上的革命,還需要硬體晶元的支持。在驅動與硬體的緊密結合下,ASIO將延遲降至極低的程度是必然的事情。
不過,如果你的音效卡僅支持ASIO而不支持DirectSound,那麼就無法用Windows任務條上的小喇叭來實現音量控制;當運行最常用的一些娛樂軟體,諸如超級解霸和WinAmp等的時候,也無法通過播放器界面中的音量推子來控制聲音的大小。
某些音效卡可以同時支持MME、DirectSound、ASIO、GSIF等多種標準,並通過軟體實現不同兼容方式之間的切換。對於那些需要兼顧專業創作和日常應用的朋友而言,這樣的音效卡無疑是十分方便的。

兼容


並非所有的音效卡都能夠支持ASIO。如前所述。ASIO不僅定義驅動標準,還必須要求音效卡主晶元的硬體支持才能夠得以實現。在過去,只有那些價格高貴的專業音效卡,在設計中才會考慮到對ASIO的支持。
不過目前看來,不管是主流的多媒體娛樂音效卡,或者偏向PC-HIFI的音樂音效卡,大多數都保留了ASIO功能,如Creative Audigy系列、Creative X-Fi系列、樂之邦US系列、樂之邦PS系列、華碩Xonar ST、Audiotrak MAYA 44等等。當然,對於常見的Realtek ALC或VIA VT等集成音效卡來說,並不硬性支持ASIO。
判斷音效卡支持ASIO的最簡單的方法是翻閱音效卡參數與技術支持,如Creative音效卡在包裝盒上都注有“ASIO”的LOGO。
其他方法均為通過軟體來查看兼容性的方法,各個軟體均不同,下面介紹一些常見的。
- 音頻處理軟體:在音頻處理軟體的菜單欄中找到“Setup Preferences Audio”或是“Setup Audio Hardware”,在Device下拉選單中會列出當前可用的音頻設備。如果音效卡不支持ASIO,那麼下拉選單中就就只會顯示出ASIO Multimedia Driver一項,這實際上是MME驅動對ASIO的軟模擬;如果音效卡使用的是ASIO驅動,那麼在此下拉選單中還會有另外一項,例如MAYA ASIO Driver或SB Audigy ASIO。
- 音樂播放軟體Foobar 2000:將Foobar 2000裝上ASIO插件,在設置中找到“輸出”標籤頁,在裡面找到“ASIO虛擬設備”,之後在右邊窗口進行設備添加,如果您的音效卡能順利添加,則說明您的音效卡支持ASIO。
- 音樂播放軟體千千靜聽:裝好千千靜聽后,在設置中設置輸出為ASIO,如果播放器能順利播放音樂說明您的音效卡支持ASIO。
- 音樂播放軟體CPlay:裝好CPlay后,如果能正常播放音樂,則說明您的音效卡支持ASIO。
-某些使用了REALTEK集成音效卡的電腦也被識別出了ASIO,使用FOOBAR 2000裝上ASIO插件后,可以識別出REALTEK ASIO設備,並且選擇之後能正常使用,且聲音比起默認的DS輸出更加直白了一些。例如某品牌的筆記本電腦自帶的ALC663晶元,並且安裝好了該廠商提供的驅動包,版本號為6.0.1.6809,即可自帶了REALTEK ASIO驅動,可以使用ASIO進行輸出。
REALTEK驅動支持ASIO
REALTEK驅動支持ASIO

應用


將軟體的音頻輸出設置為ASIO設備后,播放多軌音頻,使用實時效果器以及使用VSTi軟音源時就會得到近乎完美的效果。不過,要想真正達到“零延遲”(指延遲時間在10ms以下),還須對ASIO設備的緩衝區進行設置。
單擊音頻屬性設置中的Control Panel打開ASIO控制對話框,單擊Advance按鈕進入高級設置。這裡最重要的參數是Buffer Size,也就是音頻緩衝區的大小。一般來說,緩衝區設置得大一些,可以增加系統的穩定性,緩解因數據傳輸或處理過程中的速度差異而導致的爆音現象;而把緩衝區設置得小一些,則會提升系統的響應時間,減少音頻延遲。總之,緩衝區的大小設置,需要根據你所用電腦的CPU和內存等硬體的性能而定。
設置好音頻緩衝區后,音頻軟體會提示說環境設置已改變,要求進行測試以保證將來的工作正常。測試的主要內容是檢查數據包是否會有丟失,整個過程大概需要數十秒至1分鐘左右。當看到如下圖所示的成功信息后,你就可以在音頻處理軟體中充分享受到“零延遲”所帶來的種種樂趣了!