31AI Research

Synthetic Music Diarization

#ModelScoreStepsIn tokOut tokAvg costAvg time
1GPT-6 Astra
0.5675
±0.035
416143.0M346k$295.5416.8h
2Claude Sonnet 5.5
0.5453
±0.003
408185.1M612k$44.9316.9h
3Claude Opus 5.5
0.5267
±0.021
26160.6M268k$19.3318.0h
4Gemini 4 Argon
0.5207
±0.057
21371.8M549k$67.54*8.9h
5Claude Fable 5.1
0.5140
±0.026
16619.0M122k$12.4517.3h
6GPT-5.6 Sol
0.4946
±0.022
33772.2M153k$66.3713.7h
7Claude Haiku 5.5
0.4725
±0.034
28174.6M354k$4.6116.3h
8Claude Opus 5
0.4602
±0.134
19437.1M252k$27.9518.6h
9GLM-5.3
0.4554
±0.027
36580.4M272k$28.4118.6h
10Claude Fable 5
0.4552
±0.115
19631.1M210k$46.5918.8h
11Qwen3.8-Max-0902
0.4444
±0.054
728292.2M1.3M$82.7019.4h
12Gemini 3.7 Flash
0.4425
±0.031
419128.9M253k$23.348.7h
13Grok 4.7
0.4364
±0.020
31379.9M275k$97.5914.5h
14Qwen3.8-Max
0.4265
±0.027
47997.8M527k$28.2518.9h
15Muse Spark 1.3
0.4264
±0.022
486119.4M299k$104.6616.4h
16Gemini 3.8 Flash
0.4196
±0.036
31777.0M187k$11.784.3h
17GLM-5.3 Flash
0.4010
±0.043
34762.7M213k$3.3118.0h
18Kimi K3
0.3999
±0.027
26340.9M207k$16.4018.9h
19DeepSeek V4 Flash Vision Exp
0.3901
±0.056
494115.3M294k$2.0618.5h
20Muse Spark 1.2
0.3626
±0.015
339105.8M303k$27.774.9h
21Grok 4.6
0.3418
±0.193
1,125274.3M1.3M$270.3719.4h
22Inkling
0.0541
±0.089
1398.2M42k$7.970.8h

*Gemini 4 Argon: Cache hit rate is much lower due to a non-production setting.

Background

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.

Task

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.

  • The entrypoint must support 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.
  • Instrument events carry a label from a fixed 27-instrument vocabulary plus a MIDI note; singer events use labels singer_a through singer_l.
  • Production batches may contain up to 233 clips, must finish within 900 seconds, and must produce at most 8 MiB of JSONL.
  • Missing, extra, or duplicate IDs invalidate the output, and labels must not be inferred from IDs or file paths — the manifests are intentionally opaque.

What The Agent Gets

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.

Verification

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.

  • An instrument note matches only with equal label and MIDI note, onset error at most 0.12 s, and interval IoU at least 0.35; singer segments match with equal label and IoU at least 0.35.
  • Each family is scored by event F1 blended with temporal-boundary quality; instrument-note transcription is weighted 75% and singer segmentation 25%, and a gate scales the instrument contribution down until its component reaches 0.20.
  • A contract multiplier penalizes invalid events and zeroes the score for structural errors (missing, extra, or duplicate IDs).
  • A crashed or timed-out diarizer, oversized output, or an attempted reward-file write zeroes the result; submission sources are also scanned for suspicious references to verifier paths.

Environment

Base imagepython:3.13-slim-trixie
Tools availablePyTorch, FFmpeg, Python 3
Compute4 CPUs · 32 GB RAM
Time limit20h

References

  • BabySlakh / Slakh2100 (CC-BY-4.0): Synthesized multi-track audio by Ethan Manilow et al.; excerpt WAVs and derived instrument-note annotations are redistributed in the task data.
  • URMP (CC0-1.0): The University of Rochester Multi-Modal Music Performance Dataset (Bochen Li, Xinzhao Liu, Karthik Dinesh et al.), released through Dryad; the task uses excerpts prepared from the YourMT3 16 kHz archive, distributed under CC-BY-4.0.
  • MusicNet (CC-BY-4.0): Classical recordings with note annotations by John Thickstun, Zaid Harchaoui, and Sham Kakade; excerpt WAVs and derived labels are included.
  • vocadito (CC-BY-4.0): Solo-vocal recordings by Rachel Bittner, Katherine Pasalo, Juan José Bosch, Gabriel Meseguer Brocal, and David Rubinstein; the source of the singer-segment clips. Only task-specific excerpts and derived annotations are included; preparation and verification code is original to this benchmark.