Mel-Band RoFormer Karaoke (aufr33/viperx) — WebGPU-friendly ONNX
Re-export of bdsqlsz/mel_band_roformer_karaoke_aufr33-ONNX (checkpoint
mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956) with graph surgery so it
runs on onnxruntime-web's WebGPU EP:
- all 26
Einsum ops replaced with MatMul/Mul/Transpose subgraphs;
- two 60-output
Split ops (mel-band split) rebuilt as binary trees of
2-output splits.
Reason: the stock export produces shaders with 11+ storage buffers and hits
WebGPU's maxStorageBuffersPerShaderStage = 10 limit. The rewritten graph is
numerically identical (maxAbsDiff = 0.0 on probe inputs).
Interface (host-STFT)
- input
stft_features [1, frames, 4100] — frames-major packing:
t*4100 + (2*freq + channel)*2 + (0=re, 1=im)
- output
mask [1, 1, 2050, frames, 2] — single LEAD-vocal mask
(backing = input − lead), packed bins 2*freq + channel
- STFT params: 44100 Hz, n_fft 2048, hop 441, center, periodic Hann
Used by
KaraokeVideoEditor.
Surgery script:
eval/fix-karaoke-onnx.mjs in the repo.