DBS-TIGER (DnR v2)

DBS-TIGER separates a 44.1 kHz mono soundtrack into music, sound effects and speech. It is the TIGER separator with Dynamic Band Splitting: the frequency boundaries of the 128 band tokens are predicted from each mixture instead of being fixed.

Paper · PDF · HF Paper · Code · Project page · Demo

Music Speech SFX Avg.
SI-SDR (dB), DnR v2 test (973 tracks) 7.78 15.90 6.70 10.13

1.0M parameters. The example uses the 6 s / 3 s overlap-add windows of the training recipe.

Usage

pip install git+https://github.com/JusperLee/Dynamic-Band-Splitting.git
import soundfile as sf
import torch
from dbs.engine import separate
from dbs.models import DBSTIGER

model = DBSTIGER.from_pretrained("JusperLee/DBS-TIGER-DnR").eval()
audio, rate = sf.read("soundtrack.wav", dtype="float32", always_2d=True)   # 44.1 kHz
mixture = torch.from_numpy(audio.mean(1)).view(1, 1, -1)
with torch.inference_mode():
    music, sfx, speech = separate(model, mixture, {"mode": "chunked", "chunk_seconds": 6.0, "hop_seconds": 3.0}, sample_rate=44100)[0]

model(mixture, return_aux=True) also returns the predicted boundaries of each frequency region. The outputs are in the order music, sfx, speech.

Training

Trained from scratch on the DnR v2 training set with configs/dnr/dbs_tiger.yaml.

Citation

@misc{zhang2026dbs,
  title         = {Learning Where to Split: Dynamic Band Splitting for Audio Source Separation},
  author        = {Zhang, Bingzhe and Li, Kai and Hu, Xiaolin},
  year          = {2026},
  eprint        = {2610.14993},
  archivePrefix = {arXiv},
  primaryClass  = {cs.SD},
  doi           = {10.48550/arXiv.2610.14993},
  url           = {https://arxiv.org/abs/2610.14993}
}
Downloads last month
3,908
Safetensors
Model size
1.01M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using JusperLee/DBS-TIGER-DnR 1

Paper for JusperLee/DBS-TIGER-DnR