Reciprocal Latent Fields for Precomputed Sound Propagation
Ubisoft; Audiokinetic
一句话总结
把游戏里”预计算声传播”所需的海量声学参数场,压缩进一个可训练的体素隐向量网格,再用一个对称解码器(尤其是黎曼度量解码器)现场预测任意声源–接收点对的声学参数,在保持听感与真值几乎无差别的前提下,把内存占用降低了几个数量级。
研究背景
- 领域现状:虚拟场景里逼真的声音靠”脉冲响应”(impulse response, IR,描述单位冲激从声源传到接收点时经历的时频变换)来刻画。物理精确的波动仿真能自然重现衍射、混响,但太慢,实时用不起。游戏里常用三条路线:光线追踪(忽略相位、难建模衍射,且声源/接收点一动就要重算可见性树)、房间–门户系统(要人工标注房间边界,室外或混合场景就失效)、以及波场编码。
- 核心痛点:波场编码(wave coding)把波动仿真挪到离线,预计算一批声源和密集接收探针的 IR,从中抽取一组紧凑的标量声学参数(响度、反射能量、衰减时间、到达方向)来驱动运行时滤波器,既能自动处理衍射又不用人工标注。但它的内存开销正比于”声源数 × 接收点数”,大地图上即便压缩也会膨胀到无法接受的规模。
- 本文 idea:与其显式存储 6 维参数场(声源 3 维 + 接收点 3 维),不如学两个耦合的 3 维映射——把 3D 位置映射成 \(n\) 维隐向量,再用隐空间里的一个对称函数(度量)解码出参数值。对称性天然保证了声学互易性(声源和接收点互换,结果不变),而网格式的隐向量既省内存又能保留衍射所需的尖锐不连续。
方法
整体框架分两层:先用第 3 节自建的波场编码流水线(PFFDTD 波动仿真 + 参数估计 + 渲染)生成训练用的真值声学参数场;再用第 4 节的 Reciprocal Latent Field(RLF)框架把这些参数场压进隐向量网格,并训练对称解码器来预测。
flowchart LR
A["场景网格"] --> B["PFFDTD 波动仿真"]
B --> C["估计声学参数真值场"]
C --> D["训练: 隐向量网格 + 对称解码器"]
D --> E["运行时: 输入声源/接收点坐标"]
E --> F["查隐向量 + 解码"]
F --> G["预测声学参数 → 驱动渲染"]
关键设计:
-
参数化波场编码流水线(真值来源)。用 Pretty Fast FDTD 求解器把场景体素化后解波动方程,得到接收点规则网格上的 IR。再从 IR 估计六类参数:波程距离 \(\pi(a,b)\)、直达声级 \(L_{DS}\)、早期反射级 \(L_{ER}\)、早/晚反射衰减时间 \(\tau_{ER}, \tau_{LR}\),以及到达方向向量 \(\delta(a,b)\)。其中波程距离考虑了绕障绕行,是”最短可达路径”;到达方向由波程距离场对接收点求梯度得到 \(\delta(a,b) = -\nabla_b \pi(a,b) / \lVert \nabla_b \pi(a,b) \rVert\)。渲染时把信号拆成干声(直达)与两条湿声(早/晚反射),湿声用真实录制的小/中/大空间参考 IR 卷积、按衰减时间做分段线性加权混合,再用 VBAP 做空间化。
-
Reciprocal Latent Fields 核心表述。把波程距离建模为 \(\hat{\pi}(a,b) = h(f(a), f(b))\),其中 \(f: \mathbb{R}^3 \to \mathbb{R}^n\) 把位置映射到隐向量,\(h\) 是隐空间里的一个度量。\(f\) 用可训练向量网格 \(\theta\) 上的三线性插值实现,插值只在对查询点可见的顶点间进行以防”穿墙泄漏”。相比隐式神经表示会把高频抹平,网格式表示能保住衍射所需的尖锐不连续。只要 \(h\) 是伪度量,\(\hat{\pi}\) 就继承非负、恒等、对称、三角不等式等性质,从而设计上就满足互易性。
-
黎曼度量解码器(本文最有效的解码器)。最简单的 \(h\) 是欧氏距离 \(\hat{\pi}_{EUC}(a,b) = \lVert f_\theta(a) - f_\theta(b) \rVert\),但在障碍附近隐向量会被”过约束”、产生扭曲。为此引入随隐空间位置变化的局部度量张量 \(G\),用中点线性化避免测地线积分:\(\hat{\pi}_{RIE}(a,b) \approx \sqrt{(f_\theta(a) - f_\theta(b))^\top G(m)(f_\theta(a) - f_\theta(b))}\),可理解为带局部协方差的马氏距离,\(G\) 取单位阵时退回欧氏。\(G\) 用无偏置线性层建模,提供两种变体:完整半正定 \(G_{PSD}(m) = \Lambda(m)^\top \Lambda(m)\) 精度最高,轻量对角 \(G_{DIAG}(m) = \mathrm{diag}(\lambda(m)^2)\) 以极小代价近似。此外还有一个把拼接隐向量对映射到标量、并对称化的 MLP 解码器作为对照。
-
非度量参数的适配。声级不天然是距离:直达声级建模为全局参考级减隐空间距离 \(\hat{L}_{DS}(a,b) = L_0 - h(f_\theta(a), f_\theta(b))\);早反射级把常数 \(L_0\) 换成位置相关的局部级场并对声源/接收点取平均以保互易。衰减时间用两点隐向量的点积加 sigmoid 建模 \(\hat{\tau}_{ER/LR}(a,b) = K\sigma(f_\theta(a)^\top f_\theta(b))\)。到达方向不互易,仍由预测出的波程距离场求梯度得到,因此要求该场既准又平滑。训练上把参数分成距离、声级、衰减三组各用一张网格;隐向量网格用比解码器小一个数量级的学习率,并对声源处的隐向量停梯度以防过拟合;配合自适应声源采样保证全场视线覆盖。
实验结果
在两张地图上评测:自建的 Audio Gym(含 3D 迷宫、强吸声房间耦合强反射房间等病态结构)和更接近真实游戏的 Wwise Audio Lab(WAL,含建筑与大片开阔地)。主实验是各解码器在两图上的精度与开销对比(隐维统一 \(n=16\),误差用测试集 MAE,格式为 “Audio Gym / WAL”)。
| 模型 | \(\pi\) (m) | \(L_{DS}\) (dB) | \(L_{ER}\) (dB) | 内存 | 延迟 (μs) |
|---|---|---|---|---|---|
| Wave Coding(真值) | – | – | – | 3.1 / 182 GB | 0 |
| RLF Euclidean | 1.2 / 0.94 | 3.3 / 5.1 | 2.6 / 5.7 | 1.8 / 14 MB | 10 |
| RLF \(G_{PSD}\) | 0.17 / 0.34 | 1.9 / 4.2 | 1.5 / 2.6 | 1.8 / 14 MB | 93 |
| RLF \(G_{DIAG}\) | 0.19 / 0.40 | 2.2 / 4.3 | 1.7 / 2.8 | 1.8 / 14 MB | 46 |
| MLP - Large | 0.30 / 0.51 | 2.0 / 4.2 | 1.8 / 3.0 | 1.8 / 14 MB | 247 |
核心结论:内存从波场编码的几十上百 GB 降到十几 MB,降幅达几个数量级;\(G_{PSD}\) 精度最高,\(G_{DIAG}\) 以远低的推理成本拿到接近精度,是精度/开销平衡最好的选择。隐维消融显示黎曼 RLF 随隐维增大持续受益、不像欧氏版很快饱和;MLP 在小隐维下占优,但约 \(n=8\)–\(16\) 后反被黎曼模型反超,且 MLP 的场重建变好并不带来更好的方向梯度估计(DOA 反而更差)。
主观测试用 MUSHRA 式实验,28 位游戏音频专业人士在五类声学场景下对真值(GT)、本文方法(RLF,采用 16 维 \(G_{DIAG}\) + 8 维点积)、低锚(自由场传播)打分。RLF 与 GT 总分几乎持平(61.8 vs 62.6,\(p=0.41\),效应量可忽略),两者都显著高于低锚(\(p<0.001\)),即 RLF 与真值在听感上无法区分。
亮点与局限
- 亮点:
- 用”对称解码”从设计层面强制互易性,而不是靠训练去逼近,物理上更干净。
- 黎曼局部度量以极小参数量显著提升重建精度,中点线性化规避了测地线积分的昂贵求解。
- 内存降低几个数量级且推理成本适配实时游戏,主观听感与真值无显著差异。
- RLF 是通用框架,可推广到其它”受几何影响的互易标量场”。
- 局限:
- 未对隐场做空间压缩;作者也承认基于压缩后内存的对比才更贴近实际应用。
- 框架限定静态几何——隐向量要针对特定地图的仿真训练,完全动态环境尚未解决(仅有预定义门户等有限变通)。
- 衰减时间(尤其 ER)受真值仿真与信号处理流水线本身的噪声影响,较难重建。
延伸思考
本文把”距离编码/测地线学习”(如 NeuroGF)的思路迁移到声学互易场,隐向量网格 + 局部度量的组合类似 Instant-NGP 式网格特征叠加一个可学习几何变形。最值得追的方向是作者点明的动态几何:若能让隐表示在运行时随场景变化自适应,就能突破”一图一训”的瓶颈。此外波程距离场及其梯度本身就是一种绕障最短路场,作者提出它还能反哺寻路、视线查询等非声学应用,这条”用声学副产品服务通用几何查询”的线索颇有想象空间。