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
GGUF
Model size
41.1M params
Architecture
Hardware compatibility
Log In to add your hardware

We're not able to determine the quantization variants.

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for edge37/phonon-31m-en-small

Quantized
(14)
this model