本节摘要:XR 沉浸感有 50% 来自空间音频——这一节讲清三个核心机制:HRTF 头相关传递函数(让声音方位可信)、Ambisonic 环境音(让"空间"可信)、动态混音(让"距离"可信)。然后用 Unity + Resonance Audio / Steam Audio 演示一套完整的空间音频 pipeline。
阅读完本节,你应当能够:
XR 沉浸感有 50% 来自听觉——这不是营销话术,是有实验依据的。McGill 大学的 2018 年研究显示,关闭视觉仅保留双耳立体声,被试的临场感评分仍能达到 70%+。
XR 空间音频和传统"环绕声"的核心差异是**"方位感"**——环绕声是"水平一圈",空间音频是"任意方向"。它要让用户准确判断"声音从头顶来""声音从我身后 1 米 30° 来"。
人判断声源方位靠两个线索:
但仅有 ITD + ILD 不足以判断"上下"和"前后"——这两个维度靠耳廓(Pinna)对声波的反射。人耳廓的形状像一个"滤波器",不同方向来的声波经过不同反射路径,到达耳膜时频率响应不同。大脑用这个频率响应反推方向。
**HRTF(Head-Related Transfer Function)**就是"人耳廓滤波器"的数字化——用一对 Impulse Response 描述"某个方向来的声音,到达耳膜时的频率响应"。
工程实现:
Quest 3 头显自带 HRTF 引擎(Meta XR Audio SDK);Unity 用 Resonance Audio、Steam Audio、Fmod 等插件可以加 HRTF。
HRTF 解决"点声源"问题(脚步声、对话、单个物体)。环境音(风声、雨声、森林氛围)需要另一种处理——它不是"从某个点来",而是"弥漫在整个空间"。
**Ambisonic(环境立体声)**用"球谐函数"描述整个声场。它能表达任意方向的环境声,并且能动态调整环境大小(一阶/二阶/三阶 Ambisonic)。
Quest 3、Vision Pro 都支持一阶 Ambisonic;二阶/三阶要靠 Resonance Audio、Steam Audio 这类第三方插件。
💡 关键直觉:HRTF 处理"点声源"(脚步声、对话),Ambisonic 处理"环境声"(雨、风、森林)。XR 项目的音频是 HRTF + Ambisonic + 动态混音的组合。
空间音频不仅是"方向对",还要"距离对"——1 米和 5 米的脚步声听起来应该不一样。**动态混音(Dynamic Mixing)**实时调整音量、混响、低频衰减。
Unity + Resonance Audio 的动态混音参数:
// Resonance Audio 房间参数 public class SpatialAudioMixer : MonoBehaviour { [SerializeField] private AudioSource source; [SerializeField] private float roomSize = 10f; // 房间大小 [SerializeField] private float reverbDb = -10f; // 混响强度 void Start() { // 配置 Resonance Audio 源 var resonanceSource = source.GetComponent<ResonanceAudioSource>(); resonanceSource.distanceAttenuation = ResonanceAudioDistanceAttenuation.Logarithmic; resonanceSource.minDistance = 0.5f; resonanceSource.maxDistance = 50f; } }
这段代码让"脚步声"在 0.5 米处最大音量,50 米处几乎听不见。混响强度 -10dB 是"中房间"的感觉。
5.1 环绕是"水平 5 声道 + 1 低音"——只能表达"左前/右前/中/左后/右后"5 个方向。它在家庭影院里是合理的(用户坐在固定位置听),但在 VR 里用户会转头、走动——5.1 环绕变成"6 个固定喇叭",无法跟随用户。
双耳立体声(Binaural)+ HRTF是 XR 的正解:无论用户头怎么转,声音都从正确的方向来。5.1 环绕在 VR 里应该被废弃。
// 1. 安装 Resonance Audio Unity SDK // 2. 创建 ResonanceAudioListener 在主相机 // 3. 创建 ResonanceAudioSource 在每个声源 // 4. 配置混音参数 public class SpatialAudioDemo : MonoBehaviour { [SerializeField] private AudioSource footstepSource; [SerializeField] private AudioSource rainSource; void Start() { // 脚步声 - 用 HRTF 点声源 var resSrc1 = footstepSource.gameObject.AddComponent<ResonanceAudioSource>(); resSrc1.spatialize = true; resSrc1.spatialBlend = 1.0f; resSrc1.SetDistanceAttenuation(0.5f, 50f); // 雨声 - 用 Ambisonic 环境声 var resSrc2 = rainSource.gameObject.AddComponent<ResonanceAudioSource>(); resSrc2.ambisonicOrder = 1; // 一阶 Ambisonic resSrc2.loop = true; } }
跑起来后:脚步声随玩家移动而"从正确方向传来",雨声弥漫在整个空间——这就是 XR 空间音频的最简形态。
把 HRTF 的工作原理画出来——现实声波经过耳廓反射、头部遮蔽,到达耳膜时大脑反推方向。

下一节我们看最后一个内容主题:沉浸式 UI 与防眩晕。