phonon-31m-en-small
gradium/phonon-31m-en in 43.2 MB instead of 64.5 MB, with the same voice. Same network, tokenizer, voice and runtime; only the bits per weight changed.
Blind test
Same sentence, same seed. One clip is the official 64.5 MB model, the other is this build.
A
B
Which one is 43.2 MB?
A is this build. B is the official model.
What changed
| Part | Official | This build |
|---|---|---|
| Transformer inside the frame-by-frame loop | Q8_0 | Q8_0 |
| Flow head residual blocks | BF16 | Q5_K |
| Flow head time, final and conditioning layers | BF16 | Q8_0 |
| Text and voice conditioning tables | BF16 | Q8_0 |
| Mimi decoder transformer | BF16 | Q6_K |
| Mimi convolutions | BF16 | F16 |
| Tensors under 16k elements | BF16 | F32 |
The loop transformer keeps 8 bits because its output is fed back in as the next frame's input, so errors compound; at 6 bits the voice drifts. The text and voice tables need 8 bits too. The decoder runs once per frame and takes 6 bits. The runtime cannot block-quantize the convolutions (their last dimension is the kernel size), so they stay 16-bit, as F16, which keeps 3 more mantissa bits than the official BF16.
Measured
3 seeds ร 24 sentences per model. Distance is the DTW log-mel gap between a model's takes and takes of the official model at 3 other seeds (9 pairs, lower is closer). Word error is from an ASR model.
| size | distance | word error | |
|---|---|---|---|
| Original weights (f32) | 102.8 MB | 1.972 | 4.41% |
Official model.q8.gguf |
64.5 MB | 1.968 | 4.29% |
| This build | 43.2 MB | 1.988 | 3.80% |
Smaller builds drifted on the same test: the loop transformer at 6 bits (38.6 MB) +0.048 with all 9 pairs higher, its layers 0-2 at 4 bits (36.2 MB) +0.144, and the text and voice tables at 4 bits about +0.03.
Usage
Same runtime as the parent. Point it at this repo:
uvx ptts -m "hf://edge37/phonon-31m-en-small" --lang en --quant q8 "Hello from Phonon." -o speech.wav
import ptts
tts = ptts.TTS("hf://edge37/phonon-31m-en-small", lang="en", quant="q8")
tts.save("speech.wav", "Hello from Phonon.")
This repo ships the GGUF runtime build only; it has no model.safetensors.
How it was made
shrink_phonon.py streams the parent's original weights from the Hub and writes this GGUF with llama.cpp-compatible Q8_0 / Q6_K / Q5_K blocks. Notes for upstream: gradium-ai/xn-ptts#328.
License
Apache 2.0, inherited from gradium/phonon-31m-en.
- Downloads last month
- 53
We're not able to determine the quantization variants.
Model tree for edge37/phonon-31m-en-small
Base model
gradium/phonon-31m-en