IndoML 2026 Track 2: Event-Gated Ensemble Enhancement (Team TDS)
Checkpoints of our Datathon@IndoML 2026 Track 2: Noise Event Removal system. Authors: Shivam Dwivedi, Animish Yadav, Shubhi Jain (IIIT Delhi).
- Code, training and inference instructions: https://github.com/dwivediishivam/indoml26_track2
- Final Codabench submission 995085 (Phase 2 rank 13): SI-SDR 12.78 dB, ΔWER +1.87 (synthetic +5.41, natural +0.21), combined 14.65, ASR audit passed.
Model
The final system averages two enhancers and applies the result identically to every clip:
| File | Description | SHA-256 |
|---|---|---|
ft_dns64.pt |
Final member 1. DNS64 (Demucs, 33.5 M parameters), fine-tuned from the public DNS64 checkpoint on in-domain event mixtures, then on test-like mixtures (10 s crops, 1–2× events, +0–3 dB) | 071f5c47dce8baa8426112291b96b1122790b89a0378cbf3d006d6d40f8cfd63 |
ft_bsrnn.pt |
Final member 2. Band-split RNN (11.3 M parameters, 37 bands × 112 features, 6 time/band BLSTM blocks, complex mask) with a frame-level event-activity gate y = x + (0.2 + 0.8·p(t))·(ŝ − x); stage-2 fine-tune |
e3ba7fbafb005c71183f4022b8ca0e404490c2dc1b343c7d4a1983eacc9989a5 |
b200_dns64.pt |
Stage-1 DNS64; initialises ft_dns64.pt |
e34970ba13827bf58bc75468bacb6389c5603405fc78aff312b6ceca839380c9 |
colabA_bsrnn_feat112.pt |
Stage-1 BSRNN, trained from scratch; initialises ft_bsrnn.pt |
ef401e9b4e55011f6a83d05a5f0196f68b995e20337298c8e8afafa19c058cf4 |
colabB_dns64_ft.pt |
Second stage-1 DNS64 (8 s crops, ASR loss 0.2) | 2102ee0d542eae5c075e25f44228408fec706501cb2e89d380c8dc1d18ad09c1 |
Each file is a dict with model (state dict), args (the exact training arguments) and state (step, elapsed
time, evaluation log). configs/ holds the matching YAML stage configs.
Training:
- Loss: −SI-SDR + 0.5 × multi-resolution STFT; for BSRNN, also the gated output and BCE on event activity; plus an
ASR-consistency L1 loss on frozen
ARTPARK-IISc/SraVaani-1.0encoder features. - Data: on-the-fly mixtures of the IndoML validation noise events and ESC-50 noise with Vaani, FLEURS and validation clean speech, matched to the validation event statistics.
- Optimiser: AdamW with a wall-clock cosine schedule.
- Hardware: 1× NVIDIA B200 and 1× A100 80 GB.
Usage
git clone https://github.com/dwivediishivam/indoml26_track2.git && cd indoml26_track2
pip install -r requirements_inference.txt
python checkpoints/download_checkpoints.py # fetches ft_dns64.pt + ft_bsrnn.pt from this repo
HF_TOKEN=... python main.py INPUT_DIR OUTPUT_DIR # enhanced WAVs + transcripts.jsonl
- Input: 16 kHz mono WAVs.
- Output: same-length PCM-16 WAVs and SraVaani transcripts, in the Codabench Track 2 format.
Licence and attribution
The weights derive from DNS64 (facebookresearch/denoiser, CC BY-NC 4.0) and were trained with ESC-50
(CC BY-NC 3.0), so they are released for non-commercial use under CC BY-NC 4.0. Training data: Vaani Noise Event
Dataset (CC BY 4.0), the IndoML 2026 validation set, ESC-50, Google FLEURS (CC BY 4.0). The ASR used for the
consistency loss and the transcripts is ARTPARK-IISc/SraVaani-1.0.