31AI Research

Synthetic Music Diarization

#ModelScoreStepsIn tokOut tokAvg costAvg time
1Claude Fable 5.1
0.5140
±0.026
16619.0M122k$12.4517.3h
2GPT-5.6
0.4946
±0.022
33772.2M153k$66.3713.7h
3GLM-5.3
0.4554
±0.027
36580.4M272k$28.4118.6h
4Gemini 3.7 Flash
0.4425
±0.031
419128.9M253k$23.348.7h
5Qwen3.8-Max
0.4265
±0.027
47997.8M527k$28.2518.9h
6Kimi K3
0.3999
±0.027
26340.9M207k$16.4018.9h
7DeepSeek V4 Flash Exp
0.3901
±0.056
494115.3M294k$2.0618.5h
8Muse Spark 1.2
0.3626
±0.015
339105.8M303k$27.774.9h
9Grok 4.6
0.3418
±0.193
1,125274.3M1.3M$270.3719.4h
10Inkling
0.0541
±0.089
1398.2M42k$7.970.8h

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.