Views
No views yet
| variant | location | params | FP32 PESQ | int8 PESQ | Δ (FP32→int8) | int8 RTF | int8 size |
|---|---|---|---|---|---|---|---|
| 192/384 (deployed) | repo root | 1.45 M | 2.931 | 2.911 | +0.020 | 0.017 | 1.6 MiB |
| 128/256 (compact) | 128-256/ | 0.67 M | 2.891 | 2.883 | +0.008 | 0.032 | 0.80 MiB |
n_channels_res / n_channels_conv are the only differences — identical
recipe (mag-compressed input, 200-epoch PESQ metric-GAN, cosine LR). The
128/256 variant is ~54% fewer params and half the int8 size for ~0.03 PESQ,
with int8 PTQ again essentially loss-free (+0.008). PESQ is on the full
824-utterance VoiceBank-DEMAND test split; RTF is the int8 streaming session
under onnxruntime CPU (single thread).| file | what it is |
|---|---|
g_best | PyTorch checkpoint ({"generator": state_dict}) |
g_best_fp32.onnx | Streaming FP32 ONNX (per-frame inputs + FIFO state buffers) |
g_best.onnx | Static int8 ONNX (QDQ, per-channel weights, MinMax calibration; compression prologue kept FP32) |
config.json | Training config (architecture + STFT params) |
128-256/ are
the compact model.SUB = "" for the root 192/384 model, or "128-256/" for the compact one):1import json, torch
2from huggingface_hub import hf_hub_download
3from common.env import AttrDict
4from convfsenet.model import build_causal_model
5
6REPO, SUB = "claroche1/convfsenet", "128-256/" # or SUB = "" for the deployed 192/384 model
7cfg = json.load(open(hf_hub_download(REPO, SUB + "config.json")))
8ckpt = torch.load(hf_hub_download(REPO, SUB + "g_best"),
9 map_location="cuda", weights_only=False)
10model = build_causal_model(AttrDict(cfg)).cuda().eval()
11model.load_state_dict(ckpt["generator"])1import onnxruntime as ort
2from huggingface_hub import hf_hub_download
3
4REPO, SUB = "claroche1/convfsenet", "128-256/" # or SUB = "" for the root model
5sess = ort.InferenceSession(
6 hf_hub_download(REPO, SUB + "g_best.onnx"), # or SUB + "g_best_fp32.onnx"
7 providers=["CPUExecutionProvider"],
8)
9# Streaming shape: feed one frame of magnitude STFT (B, n_freq) + the per-block
10# FIFO state buffers per call. End-to-end RMS-norm + STFT + frame loop + iSTFT
11# pipeline lives in convfsenet/inference_onnx.py in the source repo.