Switch the runtime to the reflow-distilled 4-step model:
- worker: cfgStrength from tuning/manifest, skip the null pass at cfg=0
- tuning: flowSteps 4, cfgStrength 0
- model repo: dit_step_4s_int4.onnx (Split->Slice + aux outputs so JSEP
does not miscompile it) and vocoder_4s_int4.onnx; manifest steps=4, cfg=0
- README: 435 MB download, few-seconds synthesis on WebGPU
Synthesis on this M3 Air: ~2.8-3.4 s per short clip on WebGPU (was ~22 s at
32 steps, ~8 s at 16), ~31 s on the wasm fallback.
- tts.worker.js: rewrite synthesis to the F5-TTS zero-shot layout
(cond = ref mel + zero tail, x = whole-length noise, text_ids =
ref+gen, slice gen frames after the flow) and RMS-normalize the
PCM to 0.1; fixes unintelligible output on both backends.
- New gemma-style UI (index.html/app.js), self-hosted fonts,
coi-serviceworker, trimmed ort runtime (ort.mjs + jsep pair).
- Load fp16 dit/vocoder graphs on WebGPU (int8 wasm fallback).
- README: accurate download sizes and fallback note.