2024年1月3日发(作者:)

□ 3D音频技术完全介绍

、3D音效

随着软、硬件的不断发展,传统的双声道单层面立体声音场,

拟3D音效。

已经不能满足人们的需要。

----模 为了得到更好的立体感受和空间感受,科学家借助数字化音频生成了一种全新的声音

日常生活中,我们用两只耳朵来听东西, 从各处音源中获得信息, 再通过人脑的计算来

定位声音。计算机模拟人脑的 3D音效计算,通过数字音源播放出来,让我们感到自己处身 于虚拟的世界。

既然在现实世界中,我们可以用一双耳朵分辨出 3D音场,那么仅靠贴近耳朵的两只耳

因为扬声器离

否则

机也能实现近似效果。 你可能会问,用两只扬声器也可以吗?答案是否定的,

各厂商也不会狂推四声道产品。

人耳的距离太远了, 在空气中传播时造成了失真, 效果绝对没有多扬声器系统那么好,

以两个音箱实现的3D音效,对算法有很高要求,但不需要太复杂的硬件。用多音箱达 到的3D音效,需要极为昂贵的硬件和复杂的扬声器位置设定,对软件的要求相对较低。

人类的听觉

为了更好地说明3D音效对我们的影响,有必要先讲解一下人类的听觉系统。人耳的基

本声音定位原理是 IID和ITD。两侧声音强度差别(Interaural Intensity Differenee,IID )指 距离音源较近的哪一边耳朵, 所收到的声音强度比另一侧高,

IID+ITD

感到声音更大一些。 两侧声音

的结果是把音源定位到以听

时间延迟差别(Interaural Time Differenee,ITD )指方位的不同,使声音到达两耳的时间有 差别,人们会觉得声音位于到达时间早些的那一边,

者两耳之间连线为轴线的锥体范围之内。

耳廓(外耳)的作用是滤波器,根据声音的不同角度,加强 /减弱音波能量,过滤之后

传给大脑,让我们更准确地声源的位置。 耳廓的大小有限,因此能够收到的音波范围也有限,

通常是20Hz到20KHZ,即波长16米到1.6厘米的音波。换言之,低于此范围是次声波,高 于此范围是超声波。

由于两耳机的距离约为 15厘米(除非你的头特别大),当波长大于15厘米时IIT和ITD 将会减弱。频率低的声音波长大,因此我们很难判断出低音的位置, 却能轻易分辨高音的方

位。实际上,耳廓对于声音的定位, 是至关重要的一环, 没有外耳的人难以判断声音发出的

声音波长=音速/频率,假设频率为10 KHz,即每秒振荡10000次,音速定值为330米/ 秒,波长=330/10000=0.033 米=3.3 厘米。

许多时候,我们听到的声音并不是直线进入耳道,

化,这种反射混合起来的效果称为交互混响。

出墙的位置和门的开闭。

而是通过了几次反射才进入大脑。 在

音波行进的过程中, 音波能量会减弱,再加上反射造成的消音和延迟作用, 声音已经有了变

特别是在封闭的环境之中, 你会明显感受到声

音变轻了。靠着这些变化,我们才能判断出声音是否经过反射,并借以确定周围的环境,甚 至能判断模拟3D音效需要还原以上定位效果:IID、ITD、耳廓、反射,并分析不同角度声音发 生的变化,通过计算机模拟合成来建立一种虚拟声音系统 ----数字化音场。

三、HRTF

HRTF ( Head Related Transfer Function,头部关联传输功能)是一种依靠听到的声音来 判断它发出位置的系统。每个人的 HRTF都不尽相同,还可以进行交换。如果有一套 HRTF

能够很好地对声音进行定位,那么此系统也能让位于虚拟世界的你获得同样准确的声音信 息。

HRTF的检测非常简单,先在人的耳道内放置两个微型麦克风, 再在听者附近放一个音

箱,播放确定的信号,同时记录麦克风收到的信号。比较源信号和麦克风的脉冲特性曲线就 可以得到其中一个滤波效果。最后于听者附近的所有位置重复上述过程,即可获取完整的

HRTF系统。

在现实世界中,我们不仅是靠耳朵来获得声音的位置,

声音。比如我们位于一座房子的正门外面,门是打开的,

算可产生类似真实世界的 3D音效。

耳朵提醒大脑视觉范围以内的事情, 使我们改变注意力, 从而转动头部,所以头部运动

90度的时间差不多,

只须 比如不能判断声音位于前方还是后方时,

有时还按照视听协同作用来定位

我们听到正前方有一个音源,即使

3D图像系统+心理学运 看不见声音发出的地方,也能轻易地判断声音来自房子里面,视学

也对HRTF有影响。由于声音从左/右侧传到正面的时间与头部快速转动

因此我们可以用头部转动来确定声音的位置。

把头部向左或向右转动一些就可以定位了。

科学家设计出相应的数字信号处理软件和算法, 能有效地依据声学和心理学产生的特定 滤波效果,实时地运用于即将出现的音频信号上。

游戏、战斗机座舱警报和空中交通管制。

HRTF的应用非常广泛,包括视像会议、

四、3D音效的分类

3D音效的两个最重要因素是定位和交互。定位即让人们准确地判断出声音的来源,可 以通过预选录制声音,再进行特定的解码来实现。实时的定位就是交互,声音并非预选录制 好的,而是按照你的控制来决定声音的位置。 即时生成的交互式声音对输入设备的要求, 比

预选录制音轨的放音设备(如:电影)要更强一些。

1、 Extended Stereo (扩展式立体声)

它使用声音延迟技术对传统的立体声进行额外处理,

音箱以外的空间,让我们感觉的

能称之为3D定位音效。

2、 Surrou nd Sou nd (环绕立体声)

它采用音频压缩技术(如:杜比 AC-3 )把多通道音源编码成一段程序,再以一组多扬

最适合于电

扩宽了音场的位置,使声音延展到

3D世界更广阔。这是一种被动播放音轨的技术,充其量只

声器系统来进行解码, 实现多区域环绕效果。 这也是一种被动播放音轨的技术,

影播放。另外,环绕立体声的主要工作是编

箱模拟5个音箱的环绕效果。

3、 In teractive 3D Audio (交互式 3D 音效)

/解码,当然亦能通过特殊的算法,做到两个音

交互式3D尽量地复制了人耳在真实世界中听到的声音, 并使用一定的算法来播放出来, 让我们感到整个三维空间的所有地方都可能产生声音,并随听者的移动

它是最接近实际生活的 3D音效,通常应用于第一人称 3D游戏。

而做出相应改变。

五、微软

Direct Sound 3D

3D音效的控制是通过软件来实现的,这些软件称为

EAX、 Qsound。

API (Application Programming

In terfaces,应用程序接口),常见的 API 有:微软 Direct Sou nd 3D > Aureal A3D、Creative

为了让Windows更好地运行各种多媒体程序, 微软把DirectX提供给软、硬件发展商和 消费者,Direct Sou nd 3D是其中处理3D音效的那部分。与图形方面的 Direct 3D不同,它 拥有一定的扩展能力,受到许多厂家的欢迎( D3D因为缺乏扩展而败给了 OpenGL )。

DS3D是一个命令集,用特定的运算法则帮助游戏发展商定义声音位置和音量。如果你 的声卡不支持DS3D,可以用软件3D引擎来混合立体声,并模拟出

的RSX和QSound的QMixer就是这类东西,软件处理的最大缺点是占用

的声卡支持DS3D,证明它拥有某种运算法则(通常来自

用CPU资源的同时表现 3D音场。

由于3D音频流极为珍贵,软件商只会把它用在比较重要的地方(如怪兽的叫声)

于背景音乐一般都是 2D音频。最新的游戏支持多条

频流,这会造成玩游戏时声音突然改变。

3D音效定位的主要对象是声音源、玩家的位置和方向,在虚拟的 3D世界中,软件商

,至

3D音效处理,英特尔

CPU时间。如果你

Aureal、CRL等),能够在减少使

3D音频流,而旧式的显卡只有少数音

无须计算出声音传播的真实速度, 只要按照多普勒效应就能模拟出

真实世界还要好得多。

3D音场。程序员会在0、

1之间作出选择,0表示无多普勒效应,1表示使用真实的多普勒效应,有时通过此法做出 来的音效比受到16位音频的限制,我们不可能给游戏中的每一种音效设置音量,因此你会遇到汽 车声和人的说话声同样音量的情形。 使用DS3D之后,程序员能定义每一种声音的初始音量,

如航天飞机的初始音量为 300英尺,昆虫的初始音量为 1英寸,还能定义声音的距离,距离 远的声音小,距离近的声音大。通过音量的控制,亦能模拟出真实世界的声音环境。

音量控制只适用于向所有方向扩散的点音源,

不足够的,只有用圆锥形的声音带(类似

对于特定方向的声音来说, 仅调节音量是

IIT+ITD )才能更好地模拟出这类音源,在圆锥形

内部音量为最大,在圆锥形外部音量随着距离的增大而减弱。

圆锥音带的真实性比普通的音量控制更高, 十分适合制造动态音效。女口:在房间的中间

声音,只有经过 设置一个音源,并面向门口,在房间外面(圆锥音带外)无法听到房间内

门口的时候,才会听到声音突然从房间内出现,让人感受到一种互动的效果。

六、Aureal A3D

当微软在96年夏天发布DirectX 3时,并没有给DS3D提供任何硬件加速能力。

应用的急剧发展,促使着 3D音效的变革。Aureal再也不能等待微软发布新的

自己开发出一套3D算法----A3D,并提供简单的工具给软件发展商,

支持3D音效的游戏。

那时的A3D拥有DS3D所没有的优点,不仅占用

多媒体

DS3D,只好

让他们更容易地制造出

CPU资源少、效果真实,还能发出一

97年秋 些DS3D 3.0不支持的音效,很快地占领了市场。微软的动作一向是慢吞吞的,直到

季推出的DirectX 5才开始兼容3D音频流的硬件加速。

1、与DS3D相比,A3D 1.x的优点有:

1)提供了一个声音资源管理程序给软件发展商,让它们更容易控制

比如:重要的音效使用A3D算法来处理,不主要的背景音乐用立体声

3D音频流及声卡。

混音器来完成,它可

以部分改善新游戏音频流多于声卡本身可处理音频流时出现的暂时式失声问题。

现在,新版DirectX 7.0已经在QSound和SenSaura的帮助下实现了类似的功能,

身设计成可扩展 API。Qsound甚至开发出可供所有声卡使用的

Kit ,软件开发工具包) --- QMDX 和 QMixer。

2)增加了超远距离音效模型,能够模拟多种大气环境,如:雾、水底等。

2、 A3D 波形追踪和定位

并把自

SDK (Software Development

在真实世界之中,有许多音源, 它们会互相造成影响。除了声音干扰之外,音波的一部 分还会被周围的物体吸收和阻碍。 Aureal 使用 A3D 波形追踪和定位技术来模拟以上效果, 常见的应用是舞台和房间内反射音效。 波形追踪的实质是造出一个虚拟空间, 并依照特定的 物体反射来计算出波形,甚至能够模拟出隔壁房间的声音或地毯吸音等真实环境。

3、 A3D 的特点

尽管 A3D 是最早提出的 3D 音效标准,但调整声音过滤器的技术是不能完全模拟真实。

A3D 2.0 增强了声音的定位,添加了反射音效库,并对声音进行实时补偿。它的最大特点, 是会即时改变游戏的音量,有时会出现音量忽大忽小的情况。如:当离墙壁的距离不同时, 你就能听到 A3D

2.0 制造出来的声音差异。

EAX(Environmental Audio Extensions ,环境音效扩展技术 )可以自由定制回响音效,如: 声音提前反射、延迟回响、音效扩散、失谐比率、声音深度、高频率中止。软件发展商多用 EAX 来制定大范围空地、墙壁反射等特殊音效,由于它是一个应用接口,很容易就能调用。

对比之下, A3D 实时制造出来的 3D 音场,要比 EAX 更为真实(实时当然要比预先选 定的好啦),因此 A3D 很适合做 3D 游戏的标准三维音效,许多著名的射击游戏都宣布支持 A3D 2.0,如:

Quake 3、Diablo 2。

4、 A3D 声卡的分类

A3D声卡分为四种类型:模拟型、 DSP型、Vortex1和Vortex2。模拟型声卡即所谓的

A3D 软解压, 它可以从 DS3D 中捕获 A3D 发出的 命令,并生成一个伪造的 文件。 并非所有 A3D 都可以被翻译成 DS3D 等价命令,模拟常会造成游戏不能发声,如: Descent:

FreeSpace。

DSP型是采用可编程 DSP芯片来进行 A3D硬件解压,如如: Diamond Monster Sound、Xitel

Storm 3D、Shark Predator 3D,其优点是CPU占用率低。不同厂商的 DSP声卡对于音频流的 处理各不相同,例: Monster 不使用 A3D 时可处理 23个 DirectSound 2D 音频;如果使用 6 个A3D音源,剩下的资源只处理

能处理任何 2D 音频数据。

Vortex1 是 Aureal 推出的标准 A3D 声音芯片,可以同时处理 8 个 3D 音频流和 8 个 2D 音频流,如果不使用 3D 音频时,能处理 48 个 2D 音频 流。 Vortex1 和普通的 DSP 芯片稍 有不同,它会调用部分CPU资源来进行A3D声音渲染,而且不能对2D音频进行硬件加速, 不属于可编程DSP,称为半软硬芯片比较合适。

Vortex2是Vortexl的加强型产品,A3D已经无须运行在芯片的小型软件可编程区域, 而是采用了一部分硬件来进行纯硬型解压。它能够同时加

个DirectSound 2D音频流,并且不占用太多 CPU资源。

速16个A3D/DS3D音频流和80

4个2D音频;若是使用 8个16位22K A3D音源,将不

尽管Vortex2的处理能力十分强大,由于 A3D的波形追踪非常复杂,在开启 A3D的同 时处理2D音频,亦无可避免地造成性能下降。 玩Quake 3时这个变化最为明显,enabled A3D 选项会使游戏帧数下降 5帧之多。

七、创新EAX

我们听到的声音分为直接声音和反射声音两种:直接声音是由音源直接传到人耳的声 音;反射声音是在声音传播过程中遇到障碍物

音组成的,反射音 /直接音的比率即 湿/干率。

3D场景的形状、尺寸和物质对反射音效起决定性作用,创新利用它制成了环境音效,

换言之,EAX亦是一个反射音效引擎。EAX 1.0支持的环境是很有限的,并不能完全反映所 有环境的声音,但它可以随时扩展 1, 2.0就提供了更多的环境。上面已经说过了, A3D本

身是直接音效引 擎,在2.0中也加入了反射音效,在同一时间内能处理

可见反射音效是虚拟 3D音效发展史上的第二次飞跃。

EAX增强了 DS3D的功能,让软件发展商随心所欲地控制各种音效,比如一次性关闭 某种音效,测试它对游戏的影响。这在以前是难以想象的事情,今天只须动几下鼠标就能完 成。

在EAX游戏中,软件发展商按照玩家的定位、 环境、音源距离、湿/干率来决定反射效

/干率越高, 但比率是由EAX自

/干

60个反射音波流,

(如墙壁)再反射到我们耳朵中,此种情况也

称为occlusion (闭塞)。除非你站消音室中,否则我们平常听到的声音都是同时由直接声音 和反射声果,远距离的声音都是由反射组成的。虽然越远的声音湿

率能够造出许多种不同的环境,无须更改环境的尺 寸。

动计算的,不用人工干预,大大降低了编程的难度。软件发展商通过改变反射时间和湿

EAX的最大优点是 CPU占用率低,在经过创新授权之后,其它公司的声卡也可以兼容

EAX。看到这一点,许多厂商开始从 Vortex2、Qsound、Sensaura转向EAX 阵营,可惜的

CPU占用率条件下完成反射算法。

SBLive啲

是,由于各厂商采用的反射引擎各不相同,未必能在低

我要提醒一下大家,支持 EAX的声卡不一定占用 CPU频率低,如果没有

EMK10K1等强力DSP ( Digital Signal Processing数字信号处理)芯片的配合,仅靠软件去 模拟,会极大地拖慢整个系统的性能(同样道理也适用于软解压 A3D的声卡)。

某些游戏( Unreal 虚幻、 Half-Life 半条命等)拥有自己的反射引擎,至于 EAX 是否比 这些引擎好,则见仁见智了。除此之外, EAX 还能应 用于音乐 CD 、MP3 和非 EAX 游戏, 让你无时无刻都可以感受到 EAX 的魅力。

八、

Sensaura

别以为3D音效只有创新 EAX和Aureal A3D , Sensaura的历史比它们要长得多, 它是在

10 年前由几个音频设备大厂提出的, 多用于专业级音乐, 直到最近几年才步向 3D 音频游戏。

依照 Mercury 的调查, ESS、Yamaha 和 Cirrus Logic/Crystal Semiconductor 等厂商制造的

Sensaura系声卡,占PC声音芯片70%以上市场,便宜、效果好和普及率高是它们选择

的原 因。

Sensaura

与 Aureal 等公司一样,Sensaura在耳机中采用了 HRTF ( Head Related Transfer Function,

头部关联传输功能)技术,而双扬声器系统则应用了十字交错

MultiDrive 可连接四个扬声

器,前后两个方位同时实现 HRTF,ESS已经发布了支持此技术的 Canyon 3D芯片。注 意,千万不要把扬声器的位置弄错了, 否则得到来的声音会变得不伦不类, 还不如使用两个 扬声器的效果好。

从理论上说,人类不能识别 6 个以上的音源, 8 个 3D 音频流对游戏来说已经是足够的 啦。但是为了得到更佳的效果, 越来越多游戏厂商开始研制 8个音源以上 的游戏,比如 Unreal 就支持16个3D音频流。由于Sensaura可以提供多达成 32个声音通道,而且 3D内核效率 相当高,声音解码比

DS3D 要更 快一些。

这在游戏音效需求日益增加的今天是非常重要的, 毕竟 8 通道音效已经开始难以满足玩 家的胃口了。Sensaura提供了一个DS3D声音管理程序给软件发展商,

音频流。

为了得到更多厂商的支持, Sensaura兼容A3D 1.x标准和EAX。不过,它并没有创新

Live!或Aureal Vortex2等DSP( Digital Signal Processing数字信号处理) 芯片可用,只能依靠

CPU 和内存等主机资源来进行软件解码,速度当然比标准的

通道滤波器来做到封闭 / 阻碍的反射音效,并支持 I3DL2 标准。

旧版本Sensaura只能在1米以内实现HRTF,为了改善这种情况,人们又发明了 MacroFX 技术,可以提供更精确的音量模式。 它分为 6 个区 域, 0区超远距离和 1 区远距离模式 =DS3D 的远距离模式。其它四个区分别是:领近区、左耳区、右耳区和中心区,可以造出低语声、 风声(对滑雪、赛车等 RAC game 十分有用) 、耳机模拟、急速飞行的子弹或火箭。

3D 音效的实质是时间延迟,不同音源发出的声音进入两只耳朵的时间各不相同,我们 就会感到处于虚拟的 3D 世界之中。假设有一个音源位于 2 米之前,它将 呈 85度进入我们 的双耳,并且两面的声音有小许差别。大部分音效模型没有表现出这点差别,而 MacroFX 却做到了,还不需要额外的指令来编程,很容易地 达到更佳的声音效果。

DS3D 把所有声音都看成是一个点音源,用于表现远处的大型物体是很好的技术。但对

于由远至近的物体而言,点音源的不足就会变得很明显。 Sensaura采用ZoomFX技术解决

了以上问题,顾名思义, Zoom 表现的是音效缩放技术,当然可以很好的模拟出诸如火车从 远到近的声音。与 MacroFX 不同的是, ZoomFX 必须进行额外的编程才能实现,并且需要 3 个以上的 3D 音频流。

支持 Sensaura的声卡有:Yamaha 724 ESS Maestor 2/2E、Canyon3D 等,虽然它们使用 同样的运算法则和滤波库,

Ratio,信噪比)和失真率。

但不同的DSP和CODEC都会影响到声卡的 SNR(Signal to Noise

A3D 和 EAX 硬件加速要慢。

如果在 P2/300上运行EAX解码,约占用 2%的资源。除此之外,Sensaura还使用了一个变 量切点低让人们更好地控制 3D

HRTF。最新型的 Sensaura

当前大多数Sensaura仅使用了 8个声道,而且 MacroFX和ZoomFX都没有得到很好的 应用,还不能完全发挥出它的威力。幸运的 是,Sensaura是一种纯粹的技术型产品,并不 像创新或 Aureal

那样被市场所限制, 因此能够任意地进行革新, 把更好的 3D 音效带给我们, 我热切期望在新世纪能看到 Sensaura有所表现。

九、

Qsound Q3D

与Sensaura-样,Q3D也是相当古老的 3D音效API,自从1991年进入市场以来,经 过了几次大的变革,进步成为一种十分成熟的 3D 音效。 最近的应用有: Sega DreamCast 家用游戏机、

VLSI 的 Thunderbird、 Trident 的 4DWAVE-DX 和 4DWAVE-NX 。 Qsound 的 3D 音频技 术不仅仅用在声卡领域,还包括 iQ 和 QCreator 等专业级软件。其实,它在游戏机 方面的应用比PC更为广泛,在许多大型游戏机中你都可以看到 Qsound的身影。

Qsound采用了 HRTF过滤器技术,用两个喇叭来完成桌面式( Q1)和耳机式(Q2) Q3D定位。Qsound的最大特点是在音乐中加入了 HRTF,增强其3D效果,反而对真正游

5%

Q3D 2.0拥有反射音效引擎,支

戏的改善不大,尽管如此, QSound的方法对于3D游戏来说还是很有效的,它能够在约

的低CPU占用率下实 现32个3D音频通道,确实不简单。

持DS3D、EAX和A3D 1.X,以及流行的四声道。

QSurround 是 Qsound 的环绕声分支,能用两 /四个音箱做到类似杜比环绕立体声效果, 适合

DVD 影碟播放。

为了打开专业级用户市场, Qsound 提供 QMDX 和 QMixer, QMDX 是自由的软件开发 工具包,QMixer让不支持DS3D的声卡使用 Q3D,更厉害的是,这两款软件还支持

能在非 EAX 声卡上用软件模拟 EAX。

Qsound的三个音效技术是 QXpander、QMSS和2D-to-3D重映射。QXpander增强了音 频的处理,把混音变成 3D音效(QX),用两个扬声器实现的称为 QX,用耳机实现的称为

EAX ,

Q2X °QXpander并非真正的交互式 3D音效,不能直接支持游戏,只是加宽和加深了音场 (特

别是音乐的音场) ,充其量是扩展式立体声,不过,在播放音乐 CD、MIDI 、WAV 、DVD 影像文件时,你就能够感受到它的好处。

QXpander 的配套软件有 iQ、iQfx 和 UltraQ, iQ 可以把 QXpander 技术加到大部分声音 上,包括视窗系统声音、 MP3 文件和 Real Player。 iQ 暂时还不支持音乐 CD 和 MIDI 文件, 这是个极大的遗憾。随着AC-97规格和新MIDI标准的出现,相信Qsound很快会补足这个 缺 陷。 iQfx 是 iQ

的特别版本,它集成了 Real-Audio 播放器和低音推进技术。 UltraQ 用于连接 分离的混音输出设备(功放) ,提供额外的阔音 场效果。

当你使用4个扬声器时,就要动用到

声器,但不包括反射特效。

QMSS,它可以把前置扬声器的信息复制到后置扬

如果想把 QXpander 用在直接音效游戏上,必须通过 2D-to-3D 重映射才能做到。为了 单独定位单声道音频流(2D),混合平面数据并映射到一 个宽度可变的 3D方位上,就叫 2D-to-3D 重映射。它是对 QXpander 的强力补充,所有 Q3D 引擎都支持此技术。