Views
No views yet
F16 → F32 → Q8_0 CPU step) at no change to what gets
uploaded to the GPU.| F16 source + runtime quant | This GGUF | |
|---|---|---|
| Vocoder load | 298 ms | 98 ms |
| Cold time-to-first-audio (end-to-end) | 1694 ms | 1492 ms |
| File size | 325 MiB | 283 MiB |
| GPU VRAM upload | 175.9 MiB Q8 | 175.9 MiB Q8 (identical) |
gguf.quants.quantize and C++ ggml_quantize_chunk
round slightly differently; the resulting diff sits at −47 dB SNR vs
signal — perceptually invisible.khimaros/Qwen3-TTS-Tokenizer-12Hz-GGUF
(F16). All weights are reused as-is; only the dtype of the subset
listed above changes.python scripts/convert_vocoder_to_q8_mixed.py \
Qwen3-TTS-Tokenizer-12Hz-F16.gguf \
Qwen3-TTS-Tokenizer-12Hz-Q8mixed-Q8_0.ggufqwen3-tts.cpp/scripts/convert_vocoder_to_q8_mixed.py.
The quantization selector mirrors
src/audio_tokenizer_decoder.cpp::should_quantize_q8 including the
ne[0] % 32 == 0 gate, so the four vq_first / vq_rest
input/output projections (whose inner dim is 1) stay F16 to match
runtime behaviour.qwen3-tts-server \
--hf-repo khimaros/Qwen3-TTS-12Hz-1.7B-VoiceDesign-GGUF:Q8_0 \
--hf-repo-v dbrains/Qwen3-TTS-Tokenizer-12Hz-Q8mixed-GGUF:Q8_0 \
...qwen3-tts-server \
-v /path/to/Qwen3-TTS-Tokenizer-12Hz-Q8mixed-Q8_0.gguf \
...