dataset-spec.md
2.8 KB
ACR Dataset / 输入输出规范
更新:2026-06-02
一页结论
- 数据规范的核心不是文件格式,而是分离 catalog 与 query
- 外部数据集进入系统前必须先转换成统一 manifest
- 当前系统的标准输入是:
- 16k mono audio
- 128 Mel
- window-level retrieval
- 当前系统的标准输出是:
- top-k candidates
- confidence
- reject/accept
- metadata
1. 数据流图
flowchart LR
A[External / Synthetic Audio] --> B[Manifest Conversion]
B --> C[Catalog Manifest]
B --> D[Query Manifest]
C --> E[Reference Index Build]
D --> F[Training / Evaluation Queries]
E --> G[Hybrid Retrieval]
F --> G
2. 数据对象表
| 对象 | 作用 | 必要字段 | 说明 |
|---|---|---|---|
| Reference | 可检索曲库 |
song_id, audio_path, duration, type=reference
|
用于建索引 |
| Query Segment | 待识别片段 |
song_id, audio_path, duration, type
|
用于训练/评测 |
| Catalog Manifest | reference 总表 | JSON list | 用于离线索引 |
| Query Manifest | query 总表 | JSON list | 用于训练与评测 |
3. Manifest 结构图
flowchart TD
M[Manifest] --> R[Reference Records]
M --> Q[Query Records]
R --> R1[song_id]
R --> R2[audio_path]
R --> R3[duration]
R --> R4[type=reference]
Q --> Q1[song_id]
Q --> Q2[audio_path]
Q --> Q3[duration]
Q --> Q4[type=clean/augmented/confused/humming_like]
4. 输入输出总表
| 环节 | 输入 | 输出 |
|---|---|---|
| 训练 | query segments | embeddings + logits |
| 索引 | catalog references | chromaprint index + embedding index |
| 识别 | query audio | ranked candidates |
| 评测 | query manifest + catalog | top1/top5/hard-case report |
5. 文字说明
5.1 为什么必须分离 catalog 和 query
早期原型容易把 train split 直接当搜索库,这会让评测和真实服务语义混乱。工业化系统必须把:
- “可搜索曲库”
- “训练/评测 query”
明确分离。
5.2 为什么输入层是 128 Mel
音乐任务需要更丰富的频带表达,128 Mel 更适合 band-split 和音乐 timbre/harmony 建模。
5.3 query 类型为什么要显式标注
clean / augmented / confused / humming_like 是评测与训练策略的重要条件,不应只放在隐式文件名里。
6. 细节附录
Reference 示例
{
"song_id": "song_0001",
"audio_path": "songs/song_0001.wav",
"duration": 20.0,
"type": "reference"
}
Query 示例
{
"song_id": "song_0001",
"audio_path": "segments/song_0001_seg_04_confused.wav",
"duration": 5.0,
"type": "confused",
"offset": 8.3,
"segment_type": "mid"
}
Sources
- See
docs/references-and-sources.mdfor the current source map.