Learning Where to Split: Dynamic Band Splitting for Audio Source Separation
Bingzhe Zhang, Kai Li, Xiaolin Hu
cs.SD
2026-10-10
清华大学团队提出动态频带切分,锁定频带 token 数,按每条混合音频移动频率边界,在 DnR v2 上把 DBS-BSRNN 的平均 SI-SDR 从 7.69 dB 升到 9.07 dB。
音源分离要把音乐、语音、音效从一条混合里拆开。band-split 模型先做短时傅里叶变换(STFT,波形变成时频网格),再把频率轴切成若干频带,每个频带压成一个 token 交给分离器。BSRNN、BS-RoFormer、Mel-Band RoFormer、TIGER 都这么做。频带数远小于 STFT 频点数,时序和跨带建模才算得动。
边界是手写的,所有混合共用一套。人声谐波挤在低频、金属撞击出现在高频时,一条宽频带会把不该合并的成分压进同一个 token,细切的频带又可能铺在没能量的区域。频带加多能换分辨率,分离器序列也变长。预算不动,分辨率就得跟着这条混合走。
动态频带切分(Dynamic Band Splitting,DBS)让每条混合自己选边界,频带条数锁死。频率轴先分成固定块,块与块的边界不动,高低频都有定额。块内边界才随输入变。实验用 4 块。DnR v2 和 MUSDB18-HQ 用 1025 个 STFT 频点、128 个 band token,每块 32 个。EchoSet 是 16 kHz,321 个频点、67 个 token,四块预算 40、10、8、9。
每个块里,实部和虚部先做时间卷积,双向 LSTM 收成频点上下文。相邻表示差得越远,越像边界。幅度的时间均值、峰值比均值、标准差比均值另算一项,相邻差乘 0.15 加进分数。尺度和位置偏置过 sigmoid 得到概率。块起点固定为边界,其余名额用 Hard Top-K 取概率最高的位置。频带连续,条数等于预算,宽窄不限。
宽度变了,分离器仍要固定维度。每个频点先编码,再按时间平均特征打一个权重,在频带内做加权池化,得到一个向量。序列长度和维度不变,变的是谁和谁被池在一起。四种骨干的时序和跨带模块原样留下。
掩码要落在每个 STFT 频点上。token 先用该频带的平均边界概率与前一带插值,概率高就多留自己,再复制回原网格。沿频率做一层残差细化,相邻频点能交换信息。全频共享头输出复数掩码,乘回混合频谱后做逆 STFT。
Hard Top-K 前向不可导。直通估计保持前向用硬边界,反向走「边界在或不在」的局部软差。密度正则把每块平均概率拉向预设压缩比,DnR v2 上权重是 0.01。实际频带数仍锁在 J。
DnR v2 分音乐、语音、音效,指标是 SI-SDR(尺度不变信号失真比,越高越好)。同样 128 个频带、从零训练时,静态 BSRNN 平均 7.69 dB,DBS-BSRNN 9.07 dB,高 1.38 dB。音乐 4.83 到 6.48,语音 14.87 到 15.01,音效 3.38 到 5.73。TIGER 从 8.74 到 10.13 dB。摘要的相对增益 29.0% 以已发表 BSRNN 的 7.03 dB 为分母,不是这组同预算静态模型。
| 方法 | 平均 SI-SDR | 参数量 | 算力 |
| BSRNN (128) | 7.69 dB | 35.5M | 76.6 G/s |
| DBS-BSRNN | 9.07 dB | 4.7M | 124.0 G/s |
| TIGER (128) | 8.74 dB | 1.4M | 20.4 G/s |
| DBS-TIGER | 10.13 dB | 1.0M | 31.6 G/s |
DBS-BSRNN 参数从 35.5M 降到 4.7M,每秒乘加从 76.6 G/s 升到 124.0 G/s。边界预测和全分辨率解码把计算加了回来。
MUSDB18-HQ 用一个模型同时出人声、鼓、贝斯、其他,只用官方训练集的 100 首,没有外部数据。平均 SDR 上,BSRNN 5.09 到 5.43 dB,BS-RoFormer 4.50 到 6.34 dB,MelRoFormer 7.25 到 8.07 dB。BS-RoFormer 参数从 378.5M 降到 33.9M,算力 292.7 对 290.5 G/s。MelRoFormer 算力从 171.7 升到 252.9 G/s。绝对分低于带外部数据的公开模型,比较只在同设置里成立。
EchoSet 是带噪和混响的双人语音。DBS-BSRNN 的 SDRi(相对未分离混合的提升)、SI-SDRi 为 13.21、12.66 dB,比已发表 BSRNN 的 12.75、12.23 高 0.46 和 0.43 dB。DBS-TIGER 为 14.55、14.04 dB,比 TIGER 的 14.22、13.73 高 0.33 和 0.31 dB。
64 条 DnR 测试混合的中间 3 秒,四块合起来的划分全部不同。同一输入再推理,边界相同。高频块 B4 跨混合替换 46.13% 的内部边界,B2 只有 7.20%。相邻窗口会变,窗口内部不变。
四块改成一块,平均 SI-SDR 掉到 6.30 dB,边界堆进低频。去掉相邻幅度跳变掉到 4.09 dB,去掉频率细化掉到 3.92 dB,只靠幅度统计打分则掉到 6.93 dB。同一套权重在推理时改用 BSRNN 布局,9.07 降到 8.62 dB,均匀边界降到 7.80 dB。相对从零训练的静态模型,1.38 dB 里只有 0.45 dB 来自换边界。
序列可以不延长,分辨率按混合重分。同一 BSRNN、128 个频带,DnR 上另训的均匀切分 8.00 dB,Mel 频带(按听觉刻度切)5.87 dB,DBS 9.07 dB。音乐和音效落点差得远,固定网格顾不齐。
接上已有骨干时,换的是切分和掩码头,时序模块留下。逐频带的头改成全频共享,参数常降,算力不一定。EchoSet 上相对已发表 BSRNN,DBS-BSRNN 从 98.7 G/s 降到 38.1 G/s。DnR 上同预算对照从 76.6 G/s 升到 124.0 G/s。
电影声大约多 1.4 dB,四轨音乐多 0.35 到 1.84 dB。双人语音不到 0.5 dB。语音频谱更稳,固定切分亏得少。收益集中在内容换得勤的任务上。
频带数写死,一个窗口只给一套边界。DnR 的窗口是 3 秒、步长 1.5 秒,窗内频谱变了也不会重切。每块自己学条数时,模型把预算顶到上限。可变预算还得另加复杂度约束。比 3 秒更碎的事件看不见。
1.38 dB 不能都算到边界上。权重不动、只换布局,相对 BSRNN 切分只少 0.45 dB。其余混着共享掩码头、加权池化和频率细化。MelRoFormer 的对照换的是整套频带接口。BS-RoFormer 参数从 378.5M 降到 33.9M,远不止挪了几条线。
可学习滤波器组平均 -11.72 dB。附录里分析合成把探针做成 SNR -42.5 dB、相关 0.03,1025 个滤波器有 923 个峰在 1 kHz 以下。排除的是一个坏掉的前端。
MUSDB 的绝对分不能跟带外部数据的公开模型比。EchoSet 比的是已发表数字,不是同日程重训。没有主观听感。