audiosronnx-mossformergan
ONNX export of the MossFormerGAN_SE_16K generator from
ClearerVoice-Studio (Alibaba,
Apache-2.0), for the mossformergan engine in
audiosronnx.
MossFormerGAN pairs the MossFormer attention backbone with a metric-GAN objective and holds the highest published PESQ of any model surveyed for this library — 3.47 on VoiceBank+DEMAND. It predicts a masked magnitude plus an additive complex residual, so it corrects phase rather than reusing the noisy phase.
spec[1, 2, 401, 201] -> enhanced[1, 2, 401, 201] (real, imag)
Only the generator is exported; the discriminator supplies the training loss.
| File | Rate | Size | Params |
|---|---|---|---|
mossformergan.onnx |
16 kHz | 17.7 MB | 3.13 M |
Measured SNR gain on speech at 19 / 11 / 5 dB input: +2.6 / +8.3 / +11.6 dB.
Fixed window
MossFormer's group attention reshapes the sequence into fixed-size groups, and that reshape captures the traced length — a dynamic-length graph runs at its trace size and fails elsewhere, even with constant folding disabled. The graph therefore takes a fixed 401-frame window (~2.5 s at 16 kHz, hop 100); audiosronnx slides it with a crossfaded overlap, as upstream's own decode segments long audio.
Tracing at 1601 frames (upstream's 10 s decode window) exhausted memory during export, which is why the window is 401.
Export notes
Two operators needed rewriting, each bit-for-bit equivalent:
torch.complexhas no ONNX operator, butangle(complex(re, im))isatan2(im, re).torch.eye(dtype=bool)exports toEyeLike(bool), for which onnxruntime has no kernel; an arange equality builds the same identity mask from supported ops.
License
Apache-2.0, inherited from ClearerVoice-Studio.