自检(?selftest=1)

运行中…

盲 RIR 估计:名词与发现的可视化说明

这两天的实验到底发现了什么,每个词是什么意思。

  1. 一条 RIR 的频率响应可以用倒谱拆成两部分:整体形状(频谱包络)和细密起伏(频谱精细结构)。
  2. 最强的现有系统(公开 Rec-RIR)精细结构较好、频谱包络偏差大;我们的系统 A 频谱包络较准、精细结构较差;把两者按倒谱拆开再拼起来,在我们的主指标上四个测试集都更好。
  3. 换成更接近人耳的度量(梅尔频带、只看有语音的帧)后,拆分方案仍优于 J2(四个测试集)和 Rec-RIR(点估计四个测试集都更好,ACE 的区间碰到零);主指标上的收益 91% 以上来自 1 kHz 以下;C50、DRR、EDC 几乎不变。以上重评尚未独立审计。

全页统一配色

真实 RIR 频谱包络 频谱精细结构 时间能量(衰减) Rec-RIR 的估计 A 的估计 拆分方案的结果

页面里带虚线下划线的词,鼠标悬停(触屏点一下)会给出一句话解释;完整解释见第 12 节术语表。所有演示信号都在浏览器里按 16 kHz 现场合成,随机种子固定。

1. RIR 是什么

一句话:在房间里拍一次手,话筒录到的那一整段声音,就是这个房间的 RIR。

声音从声源出发,一条直线走到话筒(直达声),另外一些先撞墙再拐到话筒。撞墙的路更长,所以来得更晚、更弱。把"撞一次墙"画成"墙对面有一个镜像声源",就能一眼看出每条回声的到达时间。

点"拍手"看波前扩散;右图同步画出 RIR。

右图:① 直达声(5 ms) ② 早期反射(其后几十毫秒,能分辨出一个个回声) ③ 晚期混响(密集、按指数衰减)

要点

  • RIR=房间对一次"拍手"的完整回应。本项目把它截为 0.65 s、10440 个采样点(16 kHz)。
  • 最高的尖峰是直达声;随后几十毫秒里能分辨出一个个回声,叫早期反射;再往后是密集、按指数衰减的晚期混响。
  • 旧称"核"=RIR。"卷积核"是信号处理里的泛称,本领域直接说 RIR。

2. 卷积:干声 ⊛ RIR = 混响语音

一句话:卷积就是"把干声的每一个瞬间都换成一次拍手的回响,再全部叠起来"。

盲估计的处境:只给你最下面那条混响语音,上面两条都看不到,要把 RIR 猜出来。

三条波形:干声探针(2 s 合成"类语音")、RIR、两者卷积的结果。

首次播放需要点击(浏览器要求)

要点

  • 混响语音的每一个采样,都是干声在各个延迟上按 RIR 加权叠加的结果。
  • 干声估计=网络从混响语音里猜出来的干声(旧称"源")。第 8 节的方案要用到它。

3. RIR 的频率响应

一句话:同一条 RIR 换个角度看——每个频率上它有多强,这就是频率响应。

下图是合成 RIR 的对数幅度谱(16384 点 FFT,0–8 kHz)。可以看到两种尺度的变化同时存在:大范围的缓慢起伏(例如低频偏重、高频偏暗)和非常细密的上下抖动。下一节用倒谱把两者分开。

合成 RIR 的对数幅度谱

4. 倒谱:把"整体形状"和"细密起伏"分开

一句话:对对数幅度谱再做一次傅里叶变换,就得到倒谱;倒谱的低端是频谱包络,高端是频谱精细结构。

横轴的单位仍然是时间(毫秒),因为它是"频谱上起伏的周期"换算回来的——为了区别于普通时间,习惯上叫倒频率。拖动滑块改变倒谱截断点,三张图同时变化。

上:对数幅度谱(灰)+频谱包络(橙)。中:倒谱,竖线是截断点。下:频谱精细结构=对数谱 − 包络。

4.00 ms

要点

  • "对数谱再做一次傅里叶变换"就是倒谱(cepstrum),1963 年为分析回声而发明,是经典工具,不是本项目的发明。
  • 倒谱低端(截断点以内)=频谱包络:RIR 频率响应的整体形状,音频工程里也叫 coloration/EQ(旧称"着色")。
  • 倒谱高端=频谱精细结构:反射造成的细密梳状起伏(旧称"纹理")。
  • 截断点越小,包络越平滑。实验里用 4 ms;截断点取 2 ms 或更小时,合成测试集上的收益消失。

5. 一个回声为什么在倒谱上是一个尖峰

一句话:延迟 τ 的一个反射,让频谱出现周期为 1/τ 的梳状起伏,倒谱就在 τ 处冒出一个尖峰。

这里的 RIR 只有两个点:直达声,加一个延迟 τ、幅度 g 的反射。拖动两个滑块看三张图怎么变。

上:只含直达声+一个反射的 RIR。中:对数幅度谱,呈梳状。下:倒谱,在 τ 处有尖峰。

8.00 ms
0.60

要点

  • 梳齿的间距正好是 1/τ Hz:τ 越大,梳齿越密;倒谱上的尖峰也越往右。
  • 所以晚于截断点(4 ms)的反射落在频谱精细结构里;早于截断点的(例如直达声前后 ±2 ms 内的换能器响应、很近的桌面反射)落在频谱包络里。
  • 直达声的绝对到达时间在幅度谱里完全看不到——整体平移只改变相位,不改变幅度谱。

6. 三层:频谱包络、时间能量、频谱精细结构

一句话:一条 RIR 可以分成三层;声学参数(T60、C50、DRR、EDC)只盯住"时间能量"这一层,对"频谱包络"几乎不反应。

下面用合成 RIR 当"真实 RIR"。三组滑块各自只改一层,五个量都与真实 RIR 比较(都是越小越好,0 表示完全一致)。

左:对数幅度谱(灰=真实,红=扰动后)。右:EDC 能量衰减曲线(三个频带取平均)。

① 频谱包络误差

0.0 dB
0.0 dB

② 时间能量误差

T60 × 1.00

③ 频谱精细结构误差

0.00 ms
同时随机翻转部分反射的符号

要点

  • 只动频谱包络时,重卷积谱距离明显变差,而分频带计算的 C50、DRR、T60、EDC 几乎不变——因为它们都是同一频带内的能量比值,一个频带整体乘以增益会被约掉。这正是实验里观察到的现象:频谱包络替换让主指标降低 0.05–0.07,C50、DRR、EDC 几乎不动。
  • 只动时间能量时,T60、EDC、C50 跟着变。
  • 只动精细结构时,T60 基本不变,重卷积谱距离变差。
  • 所以"声学参数"(T60、C50、DRR、EDC)属于时间能量层,不属于频谱包络层。

7. 频谱包络替换 旧称着色移植

一句话:保留 X 的精细结构,把它的频谱包络换成 Y 的——两条都有明显缺陷的估计,拼起来就接近真实 RIR。

三条演示 RIR:X=真实 RIR 的精细结构+偏差很大的频谱包络(高频 −10 dB、低频 +6 dB);Y=真实 RIR 的频谱包络+被打乱的精细结构(反射时刻随机偏移、尾巴换成同能量包络的另一段噪声)。

灰=真实 RIR 的对数幅度谱,彩色=当前选中的那条。

播放的是混响后的类语音

要点

  • X 对应公开 Rec-RIR(精细结构较好、频谱包络偏差可达 ±10 dB);Y 对应我们的系统 A(先估干声、再做幅度匹配求解;频谱包络较准、精细结构较差)。
  • 被替换包络的 RIR(旧称"底座")就是 X。替换全程不使用真实 RIR,所以仍然是盲的。
  • 同一个做法作用在 Rec-RIR 自己的 RIR 上,与作用在"最小二乘辨识出的 RIR"上,主指标几乎相同——主指标上的收益来自换对了包络;在对包络不敏感的时间结构度量(M3,见第 10 节)上,被替换包络的 RIR 的时间结构才是区分方法的部分。

8. 实际方案流程 旧称分解式链路

一句话:两条支路各出一样东西——一条出精细结构,一条出频谱包络——最后按倒谱拼成一条 RIR。

点任意一个方框看它的说明。

点上面的方框查看说明。

要点

  • 输入只有混响语音。两条支路都不使用真实 RIR,所以整条流程是盲的。
  • 虚线旁支:公开 Rec-RIR 自己输出的 RIR 也可以当 RIR_X,结果几乎相同。

9. 结果

一句话:在四个测试集上,拆分方案的重卷积谱距离都比公开 Rec-RIR、J2 和 A 低。

重卷积谱距离(越低越好)。虚线框=Rec-RIR + 真实 RIR 的频谱包络,是真值辅助的上限参照,不是可用系统。

262 条输入、131 条 RIR、46 个房间组。按房间配对的 bootstrap 95% 区间,拆分方案相对 Rec-RIR 与 J2 在四个测试集上全部低于零;去掉开发子集的 12 条 RIR 或其整个房间组后,16 个比较中 15 个仍成立;换六条新评分语音和 384/1536 窗后排序不变。

同数据检验(24 条输入的开发子集):灰=替换包络前,红=替换包络后。

旧称"前端底座仍更弱"的意思是:两种 Rec-RIR 从包络替换得到的改善差不多(0.084、0.071),剩下的差距来自精细结构,而精细结构的好坏取决于训练数据规模。

为什么固定一条曲线不行:能解释真值校正曲线多少变化。

注意

  • 用一条全局固定曲线校正几乎无效(ACE 上反而变差 0.073)。
  • 各测试集自己的平均曲线能解释真值校正曲线 73% 的变化,全局一条只能解释 24%。
  • A 的包络与真值校正曲线的逐输入相关 0.61——包络需要逐条输入地估,不能预先写死。

10. 主指标是什么,以及它的局限

一句话:重卷积谱距离="拿两段新干声分别过一遍估计 RIR 和真实 RIR,听起来的频谱有多像"。

主指标的计算流程

为什么这个领域报 T60、C50、DRR、EDC

  • 任务历史:2015 年 ACE 挑战赛就是盲估 T60 与 DRR。
  • ISO 3382 标准里的量,有感知含义。
  • 它们对频谱包络和测量设备的频响不敏感——这是有意的设计。
  • 频谱包络与说话人音色混在一起,盲条件下难以分辨。

主指标的频率加权(更正了此前的猜测)

主指标由两项组成:对数幅度 L1 按线性频点等权,0–8 kHz 的频点有一半在 4 kHz 以上;谱收敛按能量加权,而语音的能量绝大部分在 1 kHz 以下。拖动分界线看三种加权下"分界线以下"各占多少。

三条横条:线性频点的分布、本页类语音探针的能量分布、ERB(人耳频带)刻度。

1000 Hz

重评结果(固定文本)

  • 包络替换带来的主指标改善,全部来自谱收敛这一项,其中 91% 以上来自 1 kHz 以下、41%–133% 来自 250 Hz 以下;4 kHz 以上的贡献为 −36%…−2%。
  • 此前"主指标高估高频"的担心不成立,它实际上偏重低频。

其他局限

  • 真实 RIR 带着测量扬声器和话筒的频响,主指标会奖励复现它。
  • 尚未与听感对照验证。

用途对照表

用途主指标是否对口
声学匹配/渲染对口
数据增广部分相关
去混响/逆滤波会误导:只匹配幅度、相位随机的 RIR 也能得高分,但不能用于逆滤波
房间分析、距离估计应看参数指标(T60、C50、DRR、EDC)

三种补充度量的重评(262 条输入,未独立审计)

度量看什么结果
M1 梅尔频带对数距离梅尔频带、只看有语音的帧 拆分方案比 J2 低 0.20–0.57 dB(四个测试集区间都低于零);比 Rec-RIR 低 0.24–0.60 dB(ACE 区间 [−0.52, +0.06] 碰到零)
M2 长时音色误差1/3 倍频程、去掉整体音量 拆分方案与 A 相差不到 0.15 dB——它拿到的是 A 的音色
M3 混响时间结构误差每个频带各自归一后比较能量随时间的变化,对频谱包络不敏感(真值包络校正只让它变 0.01–0.03 dB) Rec-RIR 优于 J2(0.26–0.50 dB)和 A(0.45–0.93 dB);拆分方案与它保留的最小二乘 RIR 相同,在三个实测测试集上优于 Rec-RIR(低 0.35–0.47 dB),在合成测试集上差 0.40 dB

含义

  • 三层的分工在这些度量下得到印证:音色(M2)来自 A,时间结构(M3)来自被替换包络的 RIR。
  • J2 与 Rec-RIR 在主指标上接近,是因为 J2 音色更好、时间结构更差。
  • 此前审计说"辨识出的结构对主指标没有贡献"只对主指标成立;在 M3 上它正是区分方法的部分。

11. 上界阶梯:主指标需要 RIR 的什么信息

一句话:在这个主指标下,多分辨率幅度(含 128 ms 长窗)几乎就够了,相位基本不需要。

重卷积谱距离(越短越好)。前四项使用真实 RIR 的部分信息,是参照而非可用系统;最后两项是同一 24 条开发输入上的实际系统。

要点

  • 只给短窗能量包络远远不够;补上 128 ms 长窗的幅度之后,距离就掉到很低的水平。
  • 这只说明"这个指标需要什么",不说明 RIR 物理上只由幅度决定。

12. 术语表

一句话:统一用法在左,旧的自造叫法只出现在最后一列。

统一用法英文白话解释旧称