在千千静听等播放器软件的介绍中,常常会见到“支持ASIO输出”的说明,这到底是什么意思?
ASIO的全称是Audio Stream Input Output,直接翻译过来就是音频流输入输出接口的意思。通常这是专业声卡或高档音频工作站才会具备的性能。采用ASIO技术可以减少系统对音频流信号的延迟,增强声卡硬件的处理能力。同样一块声卡,假设使用MME驱动[1]时的延迟时间为750毫秒,那么当换成ASIO驱动后延迟量就有可能会降低到40毫秒以下。
1.理解ASIO的含义
也许你仍无法认识到解决音频延迟的具体意义,那么,我们姑且换一个角度来看问题:许多朋友都试过用计算机与互联网进行语音通话,就连著名的聊天工具OICQ都有此功能。其实互联网上的语音通讯跟电信部门提供的IP电话是同样机理,只不过由于网络带宽的限制而使得前者的声音延迟现象远比后者严重得多。当话音的延迟在一定的范围内时,人们会觉得尚可接受;但如果延迟量实在太大(比如说每说一句话都要等到5秒以上),那么大家就会觉得这是无法忍受的了。
2.谁会需要ASIO
普通声卡在播放音频流的时候是有延迟的,尽管一般用户都不易察觉到它的存在。毕竟,对于播放影碟和双声道的MP3音乐以及玩游戏来说,几百毫秒的声音延迟对应用的影响根本是微乎其微的,完全可以被忽略不计。但是,对于专业的录音师和音乐制作人来说,这几百毫秒延迟所带来的后果就好比我们普通用户要面对响应极慢的互联网IP电话那样,同样是不能容忍。试想,当按下一个琴键时,要经过0.6以上的时间才能够听到声响,恐怕任何演奏者都很难发挥其正常的水平,更无法控制音乐表演的情绪;录音师进行后期制作的过程中,需要给不同的音频信号做相应的实时效果处理,并对分轨录制的多通道音频流进行混音,以得到最终的双声道立体声或是5.1声道的环绕声格式。在对多个声部的音频进行缩混时,如果声音有延迟且延迟时间各不相等,那么多个声道之间的信号同步就会成为大问题,录音师就会因此而无法对混音的结果进行准确判断。为此,他们十分迫切需要一种能够让音频设备实现“零延迟”的技术,这个技术就是Steinberg定义的ASIO。
3.ASIO的本质
为了实现“音频设备零延迟”的理想,著名的音乐制作软件Cubase VST的开发者Steinberg公司提出了被称为Audio Stream Input Output的标准规范,其目的是为了让各硬件厂商开发出来的设备能够很好地与Steinberg的音频处理软件Cubase VST相结合,以使其在数字音频处理和软件音源模拟方面发挥出最佳的性能水平。ASIO完全摆脱了Windows操作系统对硬件的集中控制,它能实现在音频处理软件与硬件之间进行多通道传输的同时,将系统对音频流的响应时间降至最短。根据ASIO规范中定义的细节,声卡厂商可以为其硬件产品编写出高效能的ASIO驱动程序,使用声卡硬件对音频流的响应时间降低到十几毫秒以内。要知道,即便是对于那些极其苛刻的专业音乐制作人,这样低的延迟量也是根本无法察觉到的。
4.ASIO与DirectSound
ASIO的目的在于最大程度地降低系统播放音频流时的延迟时间。也许有读者会因此联想到DirectSound——不错,ASIO跟DirectSound的确十分相似,二者都是以设法绕过Windows操作系统对硬件设备的控制、直接与硬件端口取得通讯的思路来实现提高响应速度的目的。不过,ASIO的革命性要比DirectSound更彻底一些:如果把DirectSound比喻成用高级语言实现的程序,那么ASIO就是用汇编代码构成的程序——不仅结构更为紧凑,效率也大为提高。更何况,ASIO不仅是驱动上的革命,还需要硬件芯片的支持。在驱动与硬件的紧密结合下,ASIO将延迟降至极低的程度是必然的事情。
不过,如果你的声卡仅支持ASIO而不支持DirectSound,那么就无法用Windows任务条上的小喇叭来实现音量控制,而运行最常用的一些娱乐软件,诸如超级解霸和WinAmp等的时候,也无法通过播放器界面中的音量推子来控制声音的大小。
某些声卡可以同时支持MME、DirectSound、ASIO、GSIF[2]等多种标准,并通过软件实现不同兼容方式之间的切换。对于那些需要兼顾专业创作和日常应用的朋友而言,这样的声卡无疑是十分方便的。
5.哪些声卡支持ASIO
并非所有的声卡都能够支持ASIO。如前所述。ASIO不仅定义驱动标准,还必须要求声卡主芯片的硬件支持才能够得以实现。在过去,只有那些价格高贵的专业声卡,在设计中才会考虑到对ASIO的支持。我们日常所用的声卡,包括创新过去的SB Live!系列都属于民用卡的范畴,所以没有哪一款是配备了ASIO驱动的。
有趣的是,SB Live!的主芯片EMU10K1本身支持ASIO,只是这一性能并未在创新自带的LiveWare! 3.0驱动中体现出来。因此,当你将SB Live!的驱动程序换成采用同样规格设计的E_mu APS录音卡的驱动后,音频处理软件就会报告说找到ASIO!
另一个比较有意思的例子是采用CMI8738芯片的各种多通道声卡。CMI8738本身也是具备ASIO的潜质,只不过至今还没有合适的驱动将其发挥出来。
首款公开声称彻底支持ASIO技术的民用声卡是创新最新推出的SoundBlaster Audigy。这款SB Live!的换代产品不仅提供了高达24bit / 96 kHz的声音品质,而且还全面支持ASIO、SB 1394等最新的先进技术。SB Audigy的面市,使得民用声卡跟专业声卡之间的距离又缩小了一层。
6.如何判断与应用ASIO
在音频处理软件的菜单栏中找到“Setup Preferences Audio”或是“Setup Audio Hardware”,在Device下拉选单中会列出当前可用的音频设备。如果声卡不支持ASIO,那么下拉选单中就就只会显示出ASIO Multimedia Driver一项,这实际上是MME驱动对ASIO的软模拟;如果声卡使用的是ASIO驱动,那么在此下拉选单中还会有另外一项,例如MAYA ASIO Driver或SB Audigy ASIO。
将软件的音频输出设置为ASIO设备后,播放多轨音频、使用实时效果器以及使用VSTi软音源时就会得到近乎完美的效果。不过,要想真正达到“零延迟”(指延迟时间在10ms以下),还须对ASIO设备的缓冲区进行设置。
单击音频属性设置中的Control Panel打开ASIO控制对话框,单击Advance按钮进入高级设置。这里最重要的参数是Buffer Size,也就是音频缓冲区的大小。一般来说,缓冲区设置得大一些,可以增加系统的稳定性,缓解因数据传输或处理过程中的速度差异而导致的爆音现象;而把缓冲区设置得小一写,则会提升系统的响应时间,减少音频延迟。总之,缓冲区的大小设置,需要根据你所用电脑的CPU和内存等硬件的性能而定。
设置好音频缓冲区后,音频软件会提示说环境设置已改变,要求进行测试以保证将来的工作正常。测试的主要内容是检查数据包是否会有丢失,整个过程大概需要数十秒至1分钟左右。当看到如下图所示的成功信息后,你就可以在音频处理软件中充分享受到“零延迟”所带来的种种乐趣了!