看起来只是听一个和弦写一个名字,真正的难点全在细节约定里:时间粒度、转位、延伸音、斜杠和弦、无和弦段落。
和弦标注,是逐小节(或逐拍)标出这段音频正在响的和弦。看起来简单——听一个和弦写一个名字。实际做起来,难点全在细节里:
这六个问题没有统一答案,必须在开工前和甲方约定成《标注规范》。规范没约定清楚,返工是必然的。
| 方法 | 做法 | 准确率 | 成本 | 适用场景 |
|---|---|---|---|---|
| 纯人工听辨 | 音乐专业人员逐段听辨并记谱 | 高,复杂段落仍可靠 | 最高 | 训练集精标、转位与延伸音要求高的项目 |
| 算法自动识别 | 用和弦识别模型直接输出 | 基础三和弦尚可,转位、七和弦、复杂配器明显掉点 | 最低 | 对精度要求不高的大批量粗标 |
| 人机混合 | 算法出初稿,人工逐段校对修正 | 接近纯人工 | 中等 | 大批量训练数据的主流选择 |
人机混合的关键不在算法,而在校对的人懂不懂和弦。不懂的人校对算法输出,只会把对的改错,或者原样放过错的地方。
| 项目 | 约定 |
|---|---|
| 时间粒度 | 按和弦变化点切分,起止时间精确到 10 毫秒 |
| 和弦命名 | 根音 + 和弦性质,如 Dm7、G7sus4、Cmaj7 |
| 转位 | 低音非根音时用斜杠写法,如 C/E、G/B |
| 延伸音 | 区分 7 / 9 / 11 / 13,加音用 add 前缀 |
| 无和弦段落 | 标 N(无和弦),不强行填一个 |
| 不确定段落 | 标主选和弦 + 备选,并在备注列说明 |
| 交付格式 | CSV:start_ms,end_ms,chord,confidence,note |
不要只看整体准确率。和弦标注要分三档看:
| 错误类型 | 例子 | 严重程度 |
|---|---|---|
| 根音错 | 把 G7 标成 Dm7 | 严重,直接影响模型学习 |
| 性质错 | 把 Gmaj7 标成 G7 | 严重,和声色彩完全不同 |
| 转位 / 延伸音漏标 | 把 C/E 标成 C | 中等,多数场景可接受 |
| 边界偏差 | 和弦切换点偏 80 毫秒 | 轻微,在容差内可放过 |
建议在验收标准里把"根音错 + 性质错"单独算一个指标,要求它远低于整体错误率。整体准确率好看但根音错一堆的交付,训练出来是废数据。