| # | Model | Score | Steps | In tok | Out tok | Avg cost | Avg time |
|---|---|---|---|---|---|---|---|
| 1 | Claude Fable 5.1 | 0.5140 ±0.026 | 166 | 19.0M | 122k | $12.45 | 17.3h |
| 2 | GPT-5.6 | 0.4946 ±0.022 | 337 | 72.2M | 153k | $66.37 | 13.7h |
| 3 | GLM-5.3 | 0.4554 ±0.027 | 365 | 80.4M | 272k | $28.41 | 18.6h |
| 4 | Gemini 3.7 Flash | 0.4425 ±0.031 | 419 | 128.9M | 253k | $23.34 | 8.7h |
| 5 | Qwen3.8-Max | 0.4265 ±0.027 | 479 | 97.8M | 527k | $28.25 | 18.9h |
| 6 | Kimi K3 | 0.3999 ±0.027 | 263 | 40.9M | 207k | $16.40 | 18.9h |
| 7 | DeepSeek V4 Flash Exp | 0.3901 ±0.056 | 494 | 115.3M | 294k | $2.06 | 18.5h |
| 8 | Muse Spark 1.2 | 0.3626 ±0.015 | 339 | 105.8M | 303k | $27.77 | 4.9h |
| 9 | Grok 4.6 | 0.3418 ±0.193 | 1,125 | 274.3M | 1.3M | $270.37 | 19.4h |
| 10 | Inkling | 0.0541 ±0.089 | 139 | 8.2M | 42k | $7.97 | 0.8h |
Music diarization asks "who or what is sounding, and when": for instrumental audio that means transcribing every note — instrument label, MIDI pitch, onset, and offset — and for vocal audio it means segmenting which singer is active over time. Polyphonic transcription is a long-standing hard problem: notes overlap across instruments with similar timbres, onsets must be localized to within a fraction of a second, and singer identity must be inferred without any enrollment data.
This task combines both problems in one offline command-line tool evaluated across four source datasets (BabySlakh, URMP, MusicNet, and vocadito) whose manifests are deliberately anonymized — IDs and filenames are opaque, so the diarizer cannot shortcut by recognizing which dataset a clip came from. It must genuinely analyze the audio, on CPU only, within a hard batch time limit.
Build an offline diarizer for short instrumental-music and solo-vocal WAV clips. For clips in the instrument_note family it must emit timestamped instrument-note events with integer MIDI pitches; for singer_segment clips it must emit singer-identity activity segments. All runtime files live in /app/diarizer.
python /app/diarizer/diarize.py --input-dir /path/to/songs --output /path/to/predictions.jsonl, reading a songs.jsonl manifest and writing exactly one JSON object per input ID.singer_a through singer_l.Labeled development data under /app/datain three splits — train (with gzipped labels), val, and public— comprising over 11 hours of WAV audio derived from BabySlakh, URMP, and MusicNet (instrument-note clips) and vocadito (solo-vocal singer-segment clips), all resampled excerpts with per-file hash-validated integrity. The interface and label schemas are documented in /app/README.md, and a starter stub lives at /app/diarizer/diarize.py. The preinstalled Python 3.13 stack is CPU-only: torch and torchaudio 2.8.0, librosa, soundfile, scipy, scikit-learn, and numpy. The machine is offline with no GPU; a sandbox-timer CLI reports the remaining budget.
A root-owned clean-room verifier stages a hidden 233-clip replay set drawn from the same task families, deletes the visible /app/data, and runs the submitted diarizer as the unprivileged agentuser under a 900-second timeout — with stracemonitoring for any attempt to write the verifier's reward artifacts. Before staging, a manifest-privacy check confirms the replay exposes no source metadata.
| Base image | python:3.13-slim-trixie |
| Tools available | PyTorch, FFmpeg, Python 3 |
| Compute | 4 CPUs · 32 GB RAM |
| Time limit | 20h |