Supertonic: half the storage did not mean faster CPU speech
Three variants ran the same twelve phrases per language at eight synthesis steps, twice each: FP32, FP16 with the duration component retained, and a mixed INT8 graph. The latter quantized only the verified vector-estimator path; a directory label was not…
Key finding
FP16 roughly halved the model storage but increased measured median time to first audio on this CPU workload.
Edited finding from the pinned experiment record. The report and figure metadata preserve the original workload and limits.
The boundary
144 renders across twelve phrases per language, two languages and two repeats. The INT8 label covers selected components, not a fully quantized model.
Data
Reviewed aggregate results with explicit units, sources and qualification limits. Different cohorts remain separate.
FP16 saved storage without winning CPU latency
Verified graph inventory · same source Supertonic 3
- FP32398.1
- FP16 except duration201.6
- Mixed INT8383.6
decimal MB
Mixed INT8 quantizes the vector estimator only; other components remain FP32.
View data & source
| Configuration | Value |
|---|---|
| FP32 | 398.1 |
| FP16 except duration | 201.6 |
| Mixed INT8 | 383.6 |
Origin: reviewed report table. Revision 7e6fdbe3b1d1.
Write-ups
Report tts/supertonic3-precision-triton-2026-10-13/README.md
Inspect the graph before naming the model
Three variants ran the same twelve phrases per language at eight synthesis steps, twice each: FP32, FP16 with the duration component retained, and a mixed INT8 graph. The latter quantized only the verified vector-estimator path; a directory label was not accepted as proof that the whole model used INT8.
Storage and responsiveness
FP32 occupied about 398 MB, FP16 202 MB and mixed INT8 384 MB. Across forty-eight utterances per variant, pooled WER was 1.914%, 2.392% and 2.871%. Median time to first audio was 0.9407, 0.9944 and 0.9238 seconds; median RTF was 0.2965, 0.3175 and 0.2888.
The uncertainty changes the conclusion
Paired bootstrap WER differences for FP16 and INT8 versus FP32 both crossed zero. That does not prove equivalence. The paired FP16 first-audio difference was +0.073 seconds, with interval [+0.059, +0.087], whereas the mixed INT8 interval included zero.
For this workload, FP16 offered storage savings without a latency win. The follow-up question was whether keeping FP32 and moving execution to the GPU could improve responsiveness more convincingly.
Evidence and publication boundary
This is an edited account of the recorded experiment. The linked archive is private; the methods, aggregate findings and limits are included above. Reference recordings, raw conversations, authentication material and workstation configuration are excluded.
More in Speech & codecs
MOSS on a 3090: Q2 failed, AWQ4 stayed closer
Every profile began with the pinned BF16 generator. The comparison reused fixed reference codes and an FP32 decoder for the main quality measurements, keeping codec changes separate from generator quantization.
AWQ4 stayed close to the BF16 reference on WavLM and character errors; the sensitivity Q2 candidate was rejected.
Drama3: BF16 decoded the same codes about three times faster
The experiment replayed saved Spanish and English codes representing 21.5481 and 15.8824 seconds of audio. It compared FP32, BF16, mixed BF16 and two INT8 decoder variants on one RTX 3090.
BF16 reduced median decoder time from 390.07 to 129.54 ms in Spanish and from 292.42 to 96.88 ms in English.
Keeping FP32 and moving Supertonic to Triton
Rather than reduce the CPU graph precision again, this follow-up used NVIDIA Triton’s ONNX backend with CUDA execution and the unchanged FP32 graphs. The paired comparison retained both speed and acoustic checks.
The paired GPU test cut median first-audio time to about 0.35 seconds while preserving the measured ASR results.