研究
AI beatmap 的 timing 有多准?ManiaGAI 对比 Mapperatorinator
我们为 2,501 首 ranked osu! mania 歌曲自动 timing,并在四种容差下将 ManiaGAI v2、ManiaGAI v1 和 Mapperatorinator 的结果与作谱者自己的 timing 对比。各方法的优势所在,以及这个基准测试不能告诉你的事。
玩家对一张 beatmap 可以容忍很多东西,唯独不能容忍 timing。音符只要偏离拍子几毫秒,不管配置写得多好,从第一小节起就会感觉不对——所以 AI 作谱者在放下第一个音符之前,必须先回答两个人类作谱者靠耳朵回答的问题:这首歌的 BPM 是多少?拍子究竟落在哪里?
这篇文章讲的就是 ManiaGAI 把这两个问题答得有多好。我们在所有能评估的 ranked osu! mania 歌曲上运行了它的 timing 检测,并把结果与作谱者写下的 timing 进行比较——同时对比 ManiaGAI v1 和开源的 Mapperatorinator。简单来说:在玩家真正听得出来的容差下,ManiaGAI v2 答对的歌曲最多;在最严格的容差下,Mapperatorinator 更精确;而这个基准测试也留下了一些真正悬而未决的问题。详情如下。
测了什么
自动 timing 必须产出作谱者在编辑器里产出的东西:一个 BPM 和一个 offset,以 timing 线的形式写下。对于速度恒定的歌曲,就是一条线。所以测试集是所有作谱者只用一条 timing 线完成 timing 的 ranked 或 approved osu! mania mapset——在去掉变速(rate-edit)合集和重复 mapset 之后,共 2,507 个 mapset。三种方法都在其中 2,501 个上给出了结果,下面的每个数字都基于这 2,501 首歌。
三种方法:
- ManiaGAI v2——自第 2 版(2026 年 10 月 1 日)起 ManiaGAI 背后的 timing 检测:由开源 Beat This 模型输出节拍激活值,再用我们自己的拟合方法转换成 timing 网格。基准测试运行的配置与实际上线的配置接近,但并不完全相同。
- ManiaGAI v1——网站在第 2 版之前使用的检测器。
- Mapperatorinator——OliBomby 的开源 AI 作谱工具的 timing 模式,按发布版本原样运行。它是我们测试过的唯一一个开源 timing 基线。
当检测出的 BPM 与作谱者的一致——允许半速或倍速,因为按 85 或 170 BPM timing 的歌曲可以写出完全相同的谱面——并且节拍相位落在作谱者相位的某个容差之内时,这首歌就算正确。我们报告从 10 到 40 ms 的四种容差。
结果
| 方法 | ≤10 ms | ≤20 ms | ≤30 ms | ≤40 ms | BPM 正确 | 单条 timing 线 |
|---|---|---|---|---|---|---|
| ManiaGAI v2 | 71.4% | 92.3% | 96.5% | 97.1% | 98.0% | 100% |
| Mapperatorinator | 78.0% | 90.9% | 91.7% | 91.7% | 92.6% | 11.0% |
| ManiaGAI v1 | 74.8% | 88.0% | 90.3% | 90.7% | 94.0% | 92.8% |
占 2,501 首歌的比例。“BPM 正确”允许半速/倍速。“单条 timing 线”= 这首歌和作谱者一样,只用一条线完成 timing。
哪种方法领先取决于容差,这也是表中最有信息量的地方。在 10 ms 时,Mapperatorinator 领先;从 20 ms 起,ManiaGAI v2 领先。在 40 ms 时,ManiaGAI v2 在 97.1% 的歌曲上正确,Mapperatorinator 为 91.7%,ManiaGAI v1 为 90.7%。
为什么以 40 ms 作为主要指标
严格的容差衡量的是精度;宽松一些的容差衡量的是 timing 是否可用。我们选 40 ms 作为主要指标,是因为一次试听检查:在 10 ms 标准判为错误的 31 首歌里,有 30 首实际播放时听起来 timing 是正确的。10–40 ms 的误差是真实存在的,表格里也如实列出——但在这个量级上,BPM 和拍子都是对的,而这才是决定谱面能不能踩在拍子上的关键。
逐首对比
百分比掩盖了每种方法具体答对了哪些歌。统计两种方法中恰好只有一种正确的歌曲:
- 在 40 ms 时,ManiaGAI v2 正确而 Mapperatorinator 错误的有 187 首,反过来的情况有 51 首。两者都正确的有 2,242 首;都错误的有 21 首。
- 在 20 ms 时差距小得多:187 首对 153 首。
- 在 40 ms 时与自己的前代相比,ManiaGAI v2 赢了 190 首,输了 30 首。
Mapperatorinator 更强的地方
在速度判断正确时,Mapperatorinator 对拍子的定位更精确:
- 在 10 ms 以内,它在 78.0% 的歌曲上正确,ManiaGAI v2 为 71.4%。
- 它的节拍相位误差更小:中位数为 5.0 ms,ManiaGAI v2 为 5.8 ms。
ManiaGAI 更强的地方
ManiaGAI v2 判断对速度的次数更多(允许半速/倍速时为 98.0% 对 92.6%),而且虚假变速的问题要小得多。这个测试集里的每首歌都只有一个恒定速度,所以任何多出来的 timing 线都是音乐里并不存在的变速——放在谱面里,就意味着拍子网格在歌曲中途突然偏移。
- ManiaGAI v2 为全部 2,501 首歌都只写了一条线。
- ManiaGAI v1 在 181 首歌(7.2%)上多加了线。
- Mapperatorinator 在 2,226 首歌(89.0%)上多加了线——每首歌中位数 6 条,平均 7.9 条。
这需要放在背景下看:Mapperatorinator 并不假设一首歌只有一个速度,而对于真正会变速的歌曲,写多条线才是正确的做法。这个基准测试只包含速度恒定的歌曲,所以它只能体现这种设计的代价,体现不出它的好处。
离上限还有多远?
在 40 ms 时,有 16 首歌(0.6%)难倒了全部三种方法。即使有一个完美的裁判为每首歌挑出三者中最好的结果,也只能达到 99.4%——所以 ManiaGAI v2 的 97.1% 与这个上限之间的距离很小。在这 16 首歌里,对 ManiaGAI v2 来说有 12 首是速度错误,4 首是相位错误。
这个基准测试不能告诉你的事
- 它不是留出集测试。其中 344 首歌在调校 ManiaGAI v2 检测器时用过。我们检查了这是否抬高了结果:在 40 ms 时,ManiaGAI v2 在这些歌上的得分是 97.1%,在它从没见过的 2,157 首歌上是 97.1%;在 10 ms 时,分别是 70.3% 和 71.5%。调校并没有换来无法泛化的准确率——但一个干净的留出集会是更有力的证据。
- 只有速度恒定的歌曲。会变速的歌曲对每种方法来说都更难,而它们不在测试集里。在 ManiaGAI v2 学习的数据中,有 15.8% 的谱面会在歌曲中途变速。
- 只有 ranked 谱面,并以作谱者为标准答案。ranked 谱面的 timing 经过人工检查,这让它成为能找到的最好参照——但它仍然是某一个人的 timing,而样本也只是那些会被 rank 的音乐。
- 只有一个外部基线。Mapperatorinator 是我们运行过的唯一其他方法。我们没有测试过不是为 osu! 打造的节拍追踪器,也不对它们作任何断言。
- 测的是 timing,不是谱面。这个基准测试只给 timing 网格打分,不评价生成的谱面质量如何。
- 接近上线配置,但不完全相同。生产环境的检测器在细节上与这里测量的版本有所不同。
timing 的下一步
有三点很突出。剩下的恒定速度错误大多与速度有关,而不是相位。在最严格的容差下,精度仍有提升空间。而最大的悬而未决的问题,恰恰是这个基准测试回答不了的:每种方法——包括我们自己的——如何处理真正会变速的歌曲。这是未来的基准测试需要填补的空白。
如果你想知道 timing 在实际中意味着什么,osu! 中的 BPM 与 timing 详解介绍了基础知识,技术页面展示了 timing 在整个流程中的位置,而最快的检验方法,就是用一首你很熟悉的歌试试。