Views
No views yet
| File | Size | Description |
|---|---|---|
bs_polarformer.onnx | 201 MB | FP32 ONNX model (core: band split → transformers → mask estimator) |
bs_polarformer_fp16.onnx | 103 MB | FP16 quantized (weights stored as float16, ~same quality) |
model_bs_polarformer_float16.yaml | 3.6 KB | Model config |
convert_to_onnx.py | 19 KB | Conversion script (PyTorch → ONNX) |
run_onnx_inference.py | 7 KB | CLI inference script |
index.html | 18 KB | Web app (runs in browser via WebGPU/WASM) |
Audio → [STFT] → Core Model (ONNX) → [Mask] → [iSTFT] → Vocals
├─ BandSplit (60 frequency bands)
├─ 12× (TimeTransformer + FreqTransformer)
│ └─ 8-head attention, dim=256, PoPE embeddings
└─ MaskEstimator (2-layer MLP per band)(batch, time_frames, 4100) — interleaved stereo STFT features (1025 freq × 2 channels × 2 real/imag)(batch, 1, 2050, time_frames, 2) — complex mask| FP32 ONNX | FP16 ONNX | |
|---|---|---|
| Mask max abs diff | ~1e-7 | ~4e-5 |
| Audio SNR | 107 dB | 48.6 dB |
| Pearson correlation | 1.00000000 | 0.99999642 |
| Model size | 201 MB | 103 MB |
1pip install onnxruntime librosa soundfile pyyaml einops torch
2
3# Download this repo, then:
4python run_onnx_inference.py song.mp3 --output_dir output/
5python run_onnx_inference.py song.mp3 --fp16 # use smaller modelindex.html:1python -m http.server 8080
2# Open http://localhost:80801# Download checkpoint
2wget https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.20/model_bs_polarformer_float16.ckpt
3
4# Convert
5python convert_to_onnx.py # FP32 only
6python convert_to_onnx.py --fp16 # FP32 + FP16