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.
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}
}