AI 味诊断(AI-Tell Audit)
生成回来的每一条都要过这个 skill。这是本库的终检。
核心命题:AI 味不是玄学。 生成模型不给规格就走默认值,而这些默认值是可枚举的。 本 skill 就是那份枚举,加上"每一条怎么查、归谁管"。
按任务读哪几节
| 任务 | 读 |
|---|---|
| 刚生成完,要验收 | §2 十四条 → §3 判定 |
| "听着像 AI 但说不出哪里" | §2(★ 逐条查,不要凭直觉) |
| 照做率很高但结果不好 | §4 |
| 要定阈值 | §3.2 零点校准 |
| 查出问题了要改 | §5 整改路径 |
| 人声的四条怎么查 | §6 |
边界
| 不归这里 | 归哪 |
|---|---|
| 规格写完时的检查 | mc-workflow §3.0 的 20 条自查表 |
| 照做率怎么算 | 本 skill §3.1(定义与标定);honors 三档怎么影响计分见 mc-render-compile §6 |
| 具体怎么改 | 各 L1/L2 skill(§5 给路由) |
| 后端做不到的字段怎么办 | mc-render-compile §6、§7 |
★ 与 20 条自查的分工: 自查问"规格写完没有",本 skill 问"生成出来的东西像不像人做的"。 两边都看过才算完。 17 条全过的规格照样可能生成出满是 AI 味的音频。
1. 动笔前必填
| 必填 | 问法 |
|---|---|
| ① 这一版的规格与种子 | 没记录就没法复现,审计结果也就没用 |
| ② 后端的 honors 表 | 哪些项是它做不到的——那些不算它的账 |
| ③ 有没有分轨 | 人声四条(§6)需要先分离人声轨 |
2. ★ 十四条枚举
逐条打勾。不要凭整体印象。
| # | AI 味来源(后端默认值) | 对抗的 spec 字段 | 可自动测 | 归谁管 |
|---|---|---|---|---|
| 1 | 段落全是 8 的整数倍 | form[].bars |
✅ 段落边界检测 | mc-arrangement-arch §4 |
| 2 | 能量曲线单调递增,从不减 | energy_curve、subtraction_events |
✅ 分段 RMS | mc-arrangement-arch §2、§3 |
| 3 | 编制从头到尾不变 | roster[].entry/exit |
✅ 分轨 onset 密度 | mc-arrangement-arch §5 |
| 4 | 全曲一个和声循环到底 | bridge 必须离调或转调 | ✅ 和弦识别 | mc-harmony、mc-modulation |
| 5 | fill 刻板落在 4 的倍数 | fill_policy |
✅ onset 峰值位置 | mc-rhythm-section §8 |
| 6 | 没有非人声记忆点 | hooks.arrangement_hook |
⚠️ 半自动(重复段落相似度) | mc-arrangement-arch §7 |
| 7 | 动态压死、频谱质心恒定 | dynamics、width_map |
✅ DR/LRA、质心时序方差 | mc-mix-intent |
| 8 | 网格化、无 push/pull | groove.push_pull |
✅ onset 相对网格偏移 | mc-rhythm-section §3 |
| 9 | 时长永远 3:30,没有尾巴 | target_duration + 结尾处理 |
✅ | mc-arrangement-arch §8 |
| 10 | 每句同样的力度与咬字,没有气声、破音、rubato | vocal.delivery、dynamics_by_section |
⚠️ 需分轨后测短时响度方差 | mc-vocal-direction §2、§4 |
| 11 | 副歌三遍唱得一模一样 | vocal.chorus_variation |
✅ 人声轨分段相似度 | mc-vocal-direction §1④ |
| 12 | 换气点不自然或听不到换气 | vocal.breath_points |
⚠️ 半自动 | mc-vocal-direction |
| 13 | ad-lib 均匀撒或干脆没有 | vocal.ad_libs |
⚠️ 半自动 | mc-vocal-direction |
| 14 | 音准全中 | vocal.pitch_policy |
⚠️ 半自动(分轨后测音高偏移分布) | mc-vocal-direction §4 |
★ 这张表一张三用:本 skill 的骨架、AB 实验评判表的骨架、 以及 20 条自查的来源。改一处要同步三处。
2.1 ★ 三条最容易漏、也最致命的
不是因为它们最难查,而是因为它们不难听——只是"不像人做的"。
| # | 为什么致命 |
|---|---|
| 2(能量只升不降) | 实测 62/62 真实编曲都有下降。这是命中率最高的一条强规则,也是听感上最像 AI 的一条 |
| 8(全部对齐网格) | 实测 62/62。注意读法是"不许全曲每一件都在网格上"——鼓组绝对量化是允许的(→ mc-rhythm-section §2.0) |
| 6(没有非人声记忆点) | 它的症状是"听着还行但记不住",最容易通过所有其他检查。缺它的歌听完就忘 |
3. 两个数,不许合并
3.1 定义
| 问什么 | 怎么得 | 范围 | |
|---|---|---|---|
| 照做率 | 后端照着规格做了多少 | 逐字段对照规格(仓库内部有度量工具可算成分数) | 0–100 |
| AI 味旗标数 | 成品有多少条机器指纹 | 本 skill §2 逐条打勾 | 0–14 |
★ 绝对不要把它们合成一个分数。 它们诊断的是不同的病:
照做率高 + 旗标少 → 好,接受
照做率高 + 旗标多 → ★ 规格本身写得像 AI(见 §4)
照做率低 + 旗标少 → 后端自己干得不错,但你不可复现(见 §4.2)
照做率低 + 旗标多 → 编译或后端选择有问题,回 mc-render-compile
3.2 ★ 零点校准:阈值为什么是 82 不是 60
不相关的、制作精良的成品在照做率表上得 63–66 分。
这是因为任何一首正常的歌都会"碰巧"满足一部分项(有拍速、有段落、有动态)。 所以:
| 线 | 值 |
|---|---|
| 零点(不相关成品) | 63–66 |
| 及格 | 70 |
| 合格 | 82 |
★ 上面三个数是仓库实验的标定值,用来理解量级,不是交付门槛;用户侧没有度量工具时,照做率就是逐字段对照后的一个判断。
★★ 一个踩过的坑:把权重从有区分度的项(boundaries)挪到
没区分度的项(energy_shape,不相关曲目也能拿 0.8),
会抬高所有人的分数,包括零点基线(66→72)。
加权重要加在能区分的项上。
3.3 后端做不到的不算它的账
honors: none 的字段排除计分,不是给 0 分。
详见 mc-render-compile §6.1——这是一个正确性问题,不是口径问题。
4. ★ 照做率高但仍然像 AI
这是本 skill 存在的主要理由。
照做率只衡量"后端有没有照做",不衡量"规格本身好不好"。 规格写得像 AI,后端忠实执行,结果就是一首照做率 95 的 AI 歌。
4.1 规格像 AI 的四个征兆
| 征兆 | 查哪 |
|---|---|
intent.one_thing 是为了过 lint 填的,念出来不像一句人话 |
mc-workflow §1 的 S0 |
reference_pair 的 borrow 写得很泛("借它的氛围") |
同上。"只借前奏的空"才叫写了 |
每个段落的 bars 只是为了避开 8 的倍数而选的怪数字 |
mc-arrangement-arch §4——非对称要有理由 |
| 用的进行 / 转调命中了套路警戒线且没写理由 | mc-progressions §3、mc-modulation §6 |
★ 共同点:规则被当成了要满足的条件,而不是要做的选择。 这正好是 AI 味的定义——没有人做过选择。
4.2 照做率低但好听
说明后端自己发挥得不错。可以接受这个成品,但要意识到:
- 你不可复现它
- 你不知道是哪个决定让它好
- 下一首得从头碰运气
★ 处理办法:把这个成品逐字段反推成一份实测 ARR-SPEC(仓库内部有工具可自动测), 看它和你原本的规格差在哪。那个差值就是你学到的东西。
5. 整改路径
按这个顺序,不要凭直觉跳。
听着"像 AI"
└─ ① 逐字段对照规格,拿照做率
└─ ② 逐条过 §2 的十四条,数出旗标数
├─ 照做率低 → 查 honors
│ ├─ 这个字段该后端是 none → 不是它的错。换后端(YuE2 控制力最强)或接受
│ └─ 不是 none → 编译问题 → mc-render-compile §3
└─ 照做率高但旗标多 → ★ 规格本身的问题 → §4.1
5.1 症状 → skill(速查)
| 症状 | 先查 |
|---|---|
| 平、没起伏 | mc-arrangement-arch §2 |
| 糊、浑 | mc-texture-layering §4(★ 先查持续音,不是先怪鼓) |
| 主角不突出 | mc-texture-layering §3 四条深度线索 |
| 机械、太准 | mc-rhythm-section §2 + mc-vocal-direction §4 |
| 听着还行但记不住 | mc-arrangement-arch §7(arrangement_hook 是不是空的) |
| 第二遍副歌和第一遍一样 | mc-arrangement-arch §6 + mc-vocal-direction §1④ |
| 人声埋在伴奏里 | 先查音准(mc-vocal-direction §4.1),再查频段 |
| 贝斯在手机上消失 | mc-sound-design §6 差音 |
| 结尾突兀 / 淡出了事 | mc-arrangement-arch §8;★ 检查 exclude 里有没有排除 fade out ending |
| 技术上干净但情绪不对 | mc-mix-intent §3.1(mood 是不是没写) |
| 和声一个循环到底 | mc-harmony §7、mc-modulation |
6. 人声四条(#10、#12、#13、#14)
这四条都需要先把人声轨分离出来。
6.1 分轨
用任何分轨工具把人声轨分出来即可(demucs 一类,或用户生成载体自带的分轨,通常分成人声/贝斯/鼓/其余)。 本 skill 不预设哪一个。
★ 这是分轨在本库里少数必要的场合之一: 多轨语料(Cambridge-MT)给不了"Suno 唱出来的人声",只能从生成结果里分。
6.2 分轨之后测什么
| # | 测什么 | 判据 |
|---|---|---|
| 10 力度 | 人声轨的短时响度方差 | 方差接近 0 = 全程一个力度 |
| 11 副歌雷同 | 各遍副歌人声轨的分段相似度 | 相似度过高 = 原样复制 |
| 12 换气 | 句间的低能量段 | ⚠️ 半自动,目前靠听 |
| 13 ad-lib | 装饰性发声的分布 | ⚠️ 半自动。均匀 = 撒的,不是唱的 |
| 14 音准 | 音高偏移的分布 | ⚠️ 半自动。全部落在 ±5 音分内 = 修过头/生成的 |
6.3 ⚠ 现状
#12、#13、#14 靠人工听,这是刻意的选择,不是漏了一步。
这三条测的是换气的能量谷、装饰音的分布、音高偏移的分布,它们的自动判据都要按生成模型分别标定阈值,不同模型的基线差得远,硬套一个统一数字容易把唱得好的判成有问题。人工听一遍这三条本来就很快,也正是耳朵天然比机器灵的地方,不算额外负担。
7. 验收清单
每一条生成结果都要过。
- 记录了规格版本与种子
- 逐字段对照过规格,照做率心里有数
- 逐条过了 §2 的十四条,数出了旗标数(不是凭印象)
-
honors: none的项被排除计分,不是给 0 - 照做率高但旗标多的话,查过 §4.1 的四个征兆
- 人声四条至少人工听过一遍
- ★ 耳朵是最后介入的:A/B 打乱 → 成对比较 → 同一对听两遍看结论稳不稳
- 结论两遍不一致 → 这个差异不存在,别改
附:来源
- 骨架来自 本库架构文档 §1.2(十四条枚举表)
- 实测数据来自 仓库实验记录「规则佐证第一轮」 (Cambridge-MT 多轨 62 首自然抽样)
- 仓库内部有度量工具(lint、音频分析、照做率、语料反推),不随插件发布;本 skill 的十四条全部可以人工判
- 十四条里 1–5、7–9、11 在仓库里可机器算,6、10、12、13、14 是人工项
★ 一条方法论提醒(踩过的坑): 指标测不准时,不要拿指标去推翻教科书,先问指标测的是不是那回事。 例:「最高潮前应有能量回落」在全量 62 首里只有 22%,但在 7 首人工标注真值里是 5/7—— 差距来自算法用能量峰值定位"最高潮",而人耳不是。 22% 那个数测的不是这条规则。