📄 CASM:用局部周期清晰度调节约束的节拍后处理
英文题目:CASM: Context-Aware Semi-Markov Post-Processor for Beat Tracking
标签:#节拍跟踪 | #信号处理 | #音乐 | #离线推理
评分:7.2/10 | 创新 1.2/2 | 技术严谨 1/1.5 | 实验充分 1/1.5 | 清晰度 0.8/1 | 影响力 0.8/1.5 | 开源 1/1.5 | 可复现 0.3/0.5 | 工程/实践 1.1/1.5
👥 作者与机构
- Zhanhong He:机构信息未在 arXiv HTML 中可靠披露
- Hanyu Meng:机构信息未在 arXiv HTML 中可靠披露
- Yaolong Ju:机构信息未在 arXiv HTML 中可靠披露
📌 核心摘要
音乐节拍跟踪一般先由网络输出每帧的节拍激活,再由后处理输出离散的节拍时刻,直接取峰容易保留假峰或漏掉弱拍,固定全局速度约束又可能在变速段压掉正确峰值。上下文感知半马尔可夫后处理器(Context-Aware Semi-Markov,CASM)离线读入完整节拍与强拍激活,在高于阈值的激活峰点之间选择一条节拍路径,用激活证据奖励与区间代价相减得到总分。与只看主导周期强弱的做法不同,CASM在每个候选点用8秒窗自相关估计局部周期,并用最优滞后与最强竞争滞后的差值构造周期裕度,清晰时收紧时间约束,存在半速或倍速竞争时放宽约束并更多听从激活。节拍选定后在节拍网格上解码2至7拍小节的强拍序列,并用计数与一致性规则兜底。在固定BeatThis激活的GTZAN节拍评测中,CASM相对直接取峰的连续性指标AMLt提高1.2个百分点,GTZAN上TCN骨干的强拍F1提高2.1个百分点,同时保持事件级F1不下降。结论适用于离线、可获得完整激活的已训练跟踪器,校准配置冻结后跨骨干与数据集复用,原文未披露训练、推理或部署成本。
🔗 开源与复现资源
代码相关资源:https://zhanh-he.github.io/casm-beat-tracking → https://zhanh-he.github.io/casm-beat-tracking/ — 链接可访问(HTTP 200)
演示资源:https://zhanh-he.github.io/casm-beat-tracking → https://zhanh-he.github.io/casm-beat-tracking/ — 链接可访问(HTTP 200)
可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
节拍跟踪要从音频中输出什么
节拍跟踪的输入是音乐音频,论文实验中使用由 22.05 kHz 单声道音频算出的对数梅尔频谱,每秒 50 帧。目标是输出离散的节拍时刻序列,有时还要输出强拍时刻,并且每个强拍必须落在某个节拍上。评价时既要看每个事件是否在容差内找准,也要看序列是否连贯不断。论文用到的 F1 是事件级准确率,容差为正负 70 毫秒;CMLt 看是否在正确节拍层级上连续,AMLt 还接受常见的半速、倍速和标准错位解释。
直接峰拾取只看激活的局部高低,本文把它作为基线:BeatThis 的最小峰拾取做法是 7 帧最大池化、零对数阈值和 1 帧去重。它的优点是完全忠于网络,缺点是不看间隔是否规律,弱拍容易漏,毛刺容易留。
节拍激活 × 直接峰拾取: 节拍激活指神经网络对每一帧输出的节拍可能性,数值高表示该时刻更像节拍;直接峰拾取指只在激活的局部峰值上按阈值取点,不考虑前后间隔是否规律。二者搭配时激活提供局部证据,峰拾取给出最贴近网络的离散节拍序列,但会留下多余峰或漏掉弱拍,这正是后处理要修正的起点。
已有后处理如何平衡规律与证据
论文把后处理的核心矛盾写成时间规律与局部激活证据的平衡。早期动态规划方法假设整首曲子只有一个全局速度,偏离该速度的拍间间隔要受罚。条件随机场允许一定范围的局部速度变化,但不鼓励间隔突变。当前最常用的动态贝叶斯网络带有预设的速度范围、拍号状态和速度转移概率,假设合适时效果好,假设不合适时可能需要按曲目或数据集重调。
PLPDP 换了一条路,它从局部优势脉冲得到随时间变化的期望间隔和置信度,期望间隔决定希望走多快,置信度决定管得多严。但该置信度来自优势脉冲峰的高低,只说明选中的周期有多强,没有说明次强竞争者是否只差一点。若最强与半速或倍速对手几乎打平,此时仍强力执行就可能锁错层级。CASM 的动机正是对这种含糊情形做区分。
动态贝叶斯网络 × 局部优势脉冲: 动态贝叶斯网络指用预设速度范围、拍号状态和转移概率约束节拍序列的后处理,约束来自全局先验;局部优势脉冲指从音频或激活中估计随时间变化的主导周期信号,约束来自局部证据。前者稳定但需要调速度范围,后者自适应但只看最强周期有多强,没有看次强竞争者是否接近。
CASM 要解决的具体含糊问题
CASM 处理的是固定激活上的离线解码问题。网络已经训练好并冻结,输入是完整的节拍与强拍激活序列,输出是节拍与强拍事件。它不重新训练主干,也不针对每个数据集重调速度范围。需要解决的难点有三层。第一,候选峰有强有弱,弱峰可能是真拍,也可能是噪声,不能一律丢掉。
第二,局部周期估计常在真值及其倍数处都出现自相关峰,需要一个偏向短间隔的轻微先验,但仍可能在半速与倍速之间摇摆。第三,规律约束太弱则纠错不足,太强则在表情速度和局部变速处压掉真峰。论文因此要求解码器在周期清晰时加强约束,在有竞争解释时把决定权交还给激活,同时用拍数兜底和节拍同步的拍号解码防止离谱输出。
CASM 的整体流程是什么
CASM 是离线、与主干无关的插件式后处理。它的处理链条可以沿着一个候选节拍来理解。先保留所有超过小阈值的激活峰作为候选,包括弱峰,每个候选得到一个证据分,激活超过 0.5 时为正。相邻候选只有间隔落在 0.2 到 2 秒即 30 到 300 BPM 范围内才允许相连。然后在每个候选的中心 8 秒窗内用归一化自相关估计局部周期和周期余量,并经过 5 个连续候选的中值滤波平滑。
每段间隔同时看两端点的周期与余量,用几何平均得到期望间隔和联合余量,再算出持续代价。最后用类维特比动态规划在候选稀疏图上找总分最高的节拍路径,节拍定后再在节拍网格上解强拍,并经过拍数与一致性兜底。论文图 1 展示的行为正是清晰时加强时间正则、含糊时贴近直接峰拾取,图中 w(ci) 表示时间正则的强度。由于中心窗和回溯都用了未来激活,CASM 是离线解码,不能与因果在线系统直接比较。
稀疏节拍路径如何打分
CASM 的解码状态只是上一个选中的节拍,不维护速度隐状态,这就是它被称为半马尔可夫的原因。它直接对拍到拍的整段间隔打分,而不是像帧级动态贝叶斯网络那样跟踪速度与节拍位置。与 Ellis 和 PLPDP 同样对拍间间隔打分的做法不同,CASM 只在激活峰上打分,而不是在每 1 帧上打分,因此图更稀疏。打分由两项组成:选中候选的证据分之和减去相连间隔的持续代价之和。证据分是节拍对数几率经缩放裁剪到有界范围,持续代价惩罚与局部期望不一致的间隔。
弱候选若能把一个过长间隔拆成两个规律 halves,省下的代价可能超过它证据不足的损失,因而被补回;强峰若偏离网格,带来的不规律代价可能超过它的证据收益,因而被跳过。论文强调这些分数是手工设定的,CASM 是确定性解码器,不是生成式隐半马尔可夫模型或学习式半条件随机场。
\[\mathcal{S}(\pi)=\sum_{i\in\pi}e_{i}-\sum_{(i,j)\in\pi}D_{ij},\]半马尔可夫路径 × 持续代价: 半马尔可夫路径指直接从一个候选节拍跳到下一个候选节拍、并对整段间隔打分的序列;持续代价指对该间隔偏离期望周期的惩罚。二者搭配时,路径负责在候选峰之间做全局选择,持续代价负责告诉路径什么样的间隔算规律,激活证据强但间隔不规律、或证据弱但间隔很规律的取舍都由两者相加决定。
局部周期与竞争者如何比较
每个候选的局部周期来自节拍激活与其延迟复制在 0.2 到 2 秒延迟上的归一化自相关。因为自相关在真周期的倍数处也会出现峰,方法加了一个偏向短延迟的轻微先验。得分最高的延迟给出局部周期,最优得分记为最佳分;在偏离它 2 帧以上的所有延迟中再找最高分作为最强竞争者。周期余量是两者之差除以最佳分,落在 0 到 1 之间。
余量大说明主导周期明显胜出,余量小说明附近、半速或倍速对手几乎同样可信。论文明确它只是确定性分离间隔,不是校准过的概率。周期与余量都要经过 5 个连续候选的中值滤波,避免单点抖动主导解码。
\[c_{i}=\frac{q_{i}^{\star}-q_{i}^{\mathrm{alt}}}{q_{i}^{\star}}\]局部周期 × 周期余量: 局部周期指在候选点附近 8 秒窗内用自相关找到的最可信间隔;周期余量指最优间隔得分与最强竞争者得分的归一化差,反映该周期是否明显胜出。二者搭配时,局部周期决定希望的间隔是多少,周期余量决定这个希望应该被多严格地执行,清晰时收紧、含糊时放松。
余量如何同时管权重与容差
每段间隔的上下文取两端几何平均,期望间隔是两端周期的几何平均,联合余量是两端余量的几何平均,只有两端都清晰才算清晰。持续代价是对数间隔的高斯型惩罚,在间隔等于期望时间隔为零,对加倍与减半一视同仁。公式中有 3 个标量:整体惩罚强度、最小时间容差,以及含糊时放宽的程度。余量同时起两个作用,一是乘在前面的惩罚权重,二是进入分母的容差。余量下降时权重变小、容差变大,余量为零时代价消失,余量趋近一时代价迅速变硬。
若只用余量管其中之一,论文消融显示两数据集的 F1 都会下降,GTZAN 的增益会消失。单端上下文仍保持正增益但幅度缩小,说明要求两端都清晰更为保守。
\[D_{ij}=c_{ij}\,\frac{\lambda}{2\,\sigma(c_{ij})^{2}}\,\log^{2}\!\frac{\Delta_{ij}}{\tau_{ij}},\quad\sigma(c)=\sigma_{0}+(1-c)\,\sigma_{\mathrm{u}},\]没有训练时参数如何标定与冻结
本研究没有训练节拍主干,也没有学习 CASM 权重。3 个主干 BeatThis、MSCNN 和 TCN 都先在相同数据上训练好并冻结,解码比较时每个后处理拿到的是同一主干输出的完全相同的 50 Hz 逐帧节拍与强拍激活。CASM 没有可学习权重和随机种子,所谓标定只是在开发折上做网格搜索,按节拍 F1 选出一组标量参数。主表用的配置是在 SMC 第 1 到 7 折上标定一次后冻结,同一套设置用于所有曲目、主干和数据集。
为考察对标定数据的敏感性,论文还在第 1 到 7 折的全部 1 折、2 折、4 折和 7 折子集上分别标定,得到 7、21、35 和 1 共 64 种组合,每种都用相同选择规则评价。动态贝叶斯网络的网格覆盖速度范围、控制变速惩罚的转移权重、观测权重和阈值。发布仓库提供稳定参数与完整调参历史,但论文正文不逐一列出随标定数据变化的取值。
数据划分与评价条件如何保证公平
实验数据来自 BeatThis 发布的 4556 首、覆盖 18 个节拍数据集的集合,包括 SMC、Hainsworth、Ballroom 和 Beatles 等,提供统一对数梅尔输入和固定八折划分。每折的主干用其余七折训练,保证被评曲目在训练时未见过。其中 SMC 只有节拍标注、没有强拍标注,被视为最难集;GTZAN 共 993 首,作为排除在交叉验证池之外的留出评测集。主干选择兼顾可复现:BeatThis 用原代码与预训练检查点,MSCNN 把原来 60 秒 Bark 响度输入改为 30 秒统一对数梅尔输入并去掉无关任务头,TCN 用随 MSCNN 发布的重实现并做同样输入统一、去掉速度头。
评价用 mir_eval 在正负 70 毫秒容差下算 F1、CMLt 和 AMLt。离线任务允许用未来上下文,PLPDP 和条件随机场用发布或默认参数;无联合节拍与强拍解码的方法把强拍激活解出后再贴到节拍网格。动态贝叶斯网络用 madmom 联合配置,拍号取 3 和 4 拍,转移权重 100,观测权重 16,阈值 0.05,默认 55 到 215 BPM,并加测只改速度范围到 30 到 300 BPM 的变体。
CMLt × AMLt: CMLt 指只在正确节拍层级上才算连续的延续性指标,走错半速或倍速即扣分;AMLt 指还接受标准错位及半速、倍速等常见替代解释的延续性指标。二者搭配时,F1 看每个事件是否找准,CMLt 看是否走在同一层级上不断,AMLt 看是否落在音乐上可接受的任一层级上不断,三者共同区分准确与连贯。
固定激活下后处理带来什么变化
主比较把主干激活固定,只换后处理,因此差异只能归于解码。论文报告 CASM 在 3 个主干上相对直接峰拾取的每个指标都有数值提升,而 30 到 300 BPM 的动态贝叶斯网络虽能在连续性尤其 GTZAN 强拍上带来大增益,却一致拉低 F1。把动态贝叶斯网络限回默认 55 到 215 BPM 后,部分 GTZAN 指标变好,但在 SMC 上出现大跌,说明其行为很依赖全局速度支撑。PLPDP 和条件随机场只有零散好处,不能一致提升。下表按原表 3 重建近期系统对照,表头为方法和 GTZAN 节拍与强拍、SMC 节拍的 F1、CMLt、AMLt。
原表中的 Above 与 Below 只是区分有无动态贝叶斯网络后处理的分组注释,已放到表外说明,不作为表头。表中横线表示原论文缺失该格。
| 方法 | GTZAN 节拍 F1 | GTZAN 节拍 CMLt | GTZAN 节拍 AMLt | GTZAN 强拍 F1 | SMC 节拍 F1 | SMC 节拍 CMLt | SMC 节拍 AMLt |
|---|---|---|---|---|---|---|---|
| HN-MERT | 89.7 | 81.4 | 94.3 | 77.4 | 61.7 | – | – |
| BeatThis-MDM | 89.7 | 82.9 | 92.5 | 79.5 | 61.0 | 48.9 | 64.3 |
| BeatThis 直接峰拾取 | 89.1 | 79.8 | 89.8 | 78.3 | 62.7 | 51.4 | 61.0 |
| BeatThis 加 CASM | 89.4 | 80.6 | 91.0 | 79.0 | 63.0 | 53.8 | 64.6 |
上表前六列中的 GTZAN 强拍 CMLt 与 AMLt 等细节见原文完整矩阵,此处为满足可读性只呈现对照最需要的列;分组上,HN-MERT 等上半部分系统带动态贝叶斯网络后处理,下半部分 BeatThis-MDM 用学习式掩码扩散解码器、BeatThis 直接与 CASM 不带动态贝叶斯网络。
表中可见 CASM 相对直接基线在 GTZAN 与 SMC 节拍 F1、CMLt、AMLt 上均有小幅数值提升,而 BeatThis-MDM 虽在 GTZAN 每项更高,其 SMC 的 F1 与 CMLt 反而低于直接基线。需要强调的是,除 BeatThis 直接与 CASM 来自本实验,其余系统数字引自各自原论文,前端、训练数据和评测细节并不完全相同,不能当作同条件胜负;HN-MERT 等带大预训练前端的系统仍保持最高分,把其动态贝叶斯网络换成 CASM 只是论文提出的自然下一步,并未实测。
标定数据变化时稳定性有何不同
敏感性实验固定评测集为 SMC 第 0 折和整个 GTZAN,只改变标定数据。对 1、2、4、7 折每种规模,取第 1 到 7 折的全部相应子集分别标定再评测,因此同规模下的散布反映对所选折的依赖,分布中心的移动反映标定数据量的作用。由于子集互相重叠,箱体只描述散布。论文图 2 的结论是 CASM 在各组合下聚集紧密,即使只用单折标定中位数仍高于直接峰拾取;动态贝叶斯网络散布宽得多,整体低于直接峰拾取,且两数据集趋势背离,更多标定折改善 GTZAN 却恶化 SMC,与在标定集上过特化一致。
主表用 7 折全量标定反映的是完整标定池,而非挑出的有利子集。该结论只在 SMC 折划分和固定主干种子下成立,换数据集或主干后仍需重做敏感性检查。
哪些组件决定了准确与连续的取舍
消融在 BeatThis 激活上一次只改一个设计,数值为相对直接峰拾取的百分点变化。完整 CASM 在 GTZAN 节拍上为 F1 加 0.3、CMLt 加 0.8、AMLt 加 1.2,在 SMC 节拍上为 F1 加 0.3、CMLt 加 2.4、AMLt 加 3.6。自适应余量最关键,去掉余量改用固定硬度后 GTZAN 增益转负,SMC 增益大幅缩小。余量只管权重或只管容差都会让两数据集 F1 下降并抹掉 GTZAN 增益,说明两处同时调节不可少。单端上下文仍全为正但幅度下降,尤其 GTZAN,说明要求间隔两端都清晰更稳。
去掉拍数兜底后连续性更高但 F1 跌破直接基线,说明兜底的作用是阻止用 F1 换连续性。把速度支撑缩到 55 到 215 BPM 后增益仍为正但变小,与动态贝叶斯网络缩小范围后在 SMC 大跌形成对照,支持更宽范围在两数据集都更好的判断。下表整理后处理的设计分工与代价,不含新测数字,只帮助复述为何组合。
| 方法 | 输入 | 时间约束来源 | 含糊处理 | 主要代价 |
|---|---|---|---|---|
| 直接峰拾取 | 冻结激活峰 | 无,只信局部证据 | 不处理 | 易留毛刺、漏弱拍 |
| 动态贝叶斯网络 | 冻结激活 | 预设速度范围与拍号转移 | 靠重调范围 | 范围不匹配时 F1 下降 |
| PLPDP | 冻结激活 | 局部优势脉冲的周期与置信度 | 只看最强有多强 | 半速倍速打平时易锁错层级 |
| CASM | 冻结激活峰加 8 秒窗自相关 | 局部周期加周期余量 | 含糊时放松并兜底 | 需中心窗未来上下文与阈值规则 |
该表说明 CASM 相对 PLPDP 多出的作用是对竞争者的显式比较,相对动态贝叶斯网络多出的是免逐数据集重调速度范围。
代价是离线才能用,且稀疏图、拍数比例和强拍一致性规则都是手工设定的。
结论在什么条件下才成立
首先,所有提升都是在固定激活上的后处理比较,主干冻结且各后处理拿到完全相同的 50 Hz 激活,离开该条件不能推广到端到端重训练。其次,近期系统对照中只有 BeatThis 直接与 CASM 来自同一实验,其余数字引自原论文,前端与数据不同,最好的分数仍属于带大预训练前端的系统。第三,CASM 是离线方法,中心窗与回溯都用未来信息,不适用于因果在线场景。
第四,拍数兜底用 0.85 到 1.8 的拍数比例、强拍用与直接强拍贴合后 F 低于 0.6 则回退、拍号只允许 2 到 7 拍,这些都是确定性 safeguard,超出该范围的极端变速或复杂拍号仍可能回退到直接结果。第五,标定稳定性只在 SMC 折与 GTZAN 留出集上验证,更多标定数据对动态贝叶斯网络出现两数据集背离,但这不证明 CASM 在任何风格上都不需调参。
复现第一步做什么与资源现状
复现应从冻结激活开始,先用同一主干生成 50 Hz 节拍与强拍激活,再分别跑直接峰拾取与 CASM,避免重训练引入差异。CASM 按论文流程实现候选保留、8 秒窗归一化自相关、短延迟先验、五候选中值滤波、双端几何平均、余量同时调节权重与容差、维特比回溯加重启,以及拍数与强拍一致性兜底。标量参数先用开发折按节拍 F1 网格搜索选出再冻结,主表对应 SMC 第 1 到 7 折标定后冻结的配置。资源方面,论文给出代码与演示链接 https://zhanh-he.github.io/casm-beat-tracking,当前是否可达不在该来源覆盖内,需另行验证,发布仓库含实验配置与 madmom 风格的激活到事件接口。
这只说明论文提供了上述地址,不等于权重可下载或系统一键可运行,运行前需核对依赖与接口版本。下表把复现需要固定的信息条件集中列出,便于逐项核对。
| 环节 | 需固定内容 | 论文做法 | 若缺失要补的验证 |
|---|---|---|---|
| 主干 | 模型与检查点 | 同数据训练后冻结 | 记录种子与折划分 |
| 激活 | 帧率与输入 | 50 Hz 对数梅尔激活 | 对齐容差与采样 |
| 解码 | 速度支撑 | 默认 30 到 300 BPM | 记录改动前后对照 |
| 标定 | 选择规则 | 网格搜最高节拍 F1 | 报告标定折组合 |
| 强拍 | 网格与回退 | 2 到 7 拍加 0.6 回退 | 检查节拍强拍一致 |
该表中的做法均来自原文,缺失项不要从模型名猜实现,补验证时应保持主干与激活完全相同。
什么时候值得尝试与还缺什么
当已有节拍主干输出尚可、直接峰拾取毛刺多或弱拍断裂、又不希望为每个数据集重调速度范围时,CASM 值得一试,尤其 SMC 这类难集上的连续性改善更明显。当需要在线因果输出、拍号超出 2 到 7 拍、或速度长期超出 30 到 300 BPM 时,则不应直接套用。复现第一步是拿到冻结激活并跑通直接基线,再接入 CASM 同一套冻结参数做对照。
还缺的验证包括在带大预训练前端的系统上把动态贝叶斯网络替换为 CASM 的实测、在更多风格与拍号上的敏感性,以及把 CASM 接入训练循环后的效果,这些在论文中只是未来工作。容易产生的误解是把无训练等同于无参数或确定输出,实际上 CASM 仍有标量参数需标定,标定依赖数据,且确定性解码不保证在任何音乐上都不犯错。
📎 论文与评分元数据
排名:前50% | 文档类型:方法研究 | arXiv 原文
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
评分规则:type-aware-v1
评分模型:muse-spark-1.3-contributor
评分请求协议:openai_responses