Downloads · 30 days
3K
36% of all-time downloads
BricksDisplay/Qwen3-TTS-12Hz-0.6B-GGUF
Qwen3-TTS-12Hz-0.6B-GGUF is a text-to-speech model from BricksDisplay. Use it when you need text read aloud. The card lists the license as apache-2.0.
Qwen3-TTS-12Hz-0.6B-Base: voice-cloning TTS in 10 languages.
Downloads · 30 days
3K
36% of all-time downloads
All-time downloads
8.3K
Public
Repo size
49.2 GB
Likes
0
Public
Click a slice to open those files.
.gguf17.6 GB · 100%
From the Hugging Face model README
Qwen3-TTS-12Hz-0.6B-Base: voice-cloning TTS in 10 languages.
Two files make one model, as with llama.cpp's multimodal projectors: the model file is the text-to-speech LM backbone, run by llama.cpp; the codec file holds the audio side (decoder / vocoder, speaker encoders and the adaptor between the two), run by codec.cpp. The runtimes below wire the two graphs together, on CPU or GPU (CUDA, Vulkan, Metal), fully offline.
Every run needs one model file + one codec file from this repo.
--backbone | --model (codec) | Total | |
|---|---|---|---|
| Recommended | qwen3-tts-0.6b-q8_0.gguf | codec-q8_0.gguf | 1.9 GB |
| Smallest | qwen3-tts-0.6b-q4_k_m.gguf | codec-q4_k_m.gguf | 1.7 GB |
| Best quality | qwen3-tts-0.6b-f16.gguf | codec-f16.gguf | 2.6 GB |
| File | Size |
|---|---|
codec-f32.gguf | 1.7 GB |
codec-q5_k_m.gguf | 1.3 GB |
qwen3-tts-0.6b-bf16.gguf | 1.2 GB |
qwen3-tts-0.6b-f32.gguf | 2.4 GB |
qwen3-tts-0.6b-q2_k.gguf | 296 MB |
qwen3-tts-0.6b-q3_k_l.gguf | 368 MB |
qwen3-tts-0.6b-q3_k_m.gguf | 347 MB |
qwen3-tts-0.6b-q3_k_s.gguf | 323 MB |
qwen3-tts-0.6b-q4_0.gguf | 382 MB |
qwen3-tts-0.6b-q4_1.gguf | 409 MB |
qwen3-tts-0.6b-q4_k_s.gguf | 383 MB |
qwen3-tts-0.6b-q5_0.gguf | 437 MB |
qwen3-tts-0.6b-q5_1.gguf | 464 MB |
qwen3-tts-0.6b-q5_k_m.gguf | 444 MB |
qwen3-tts-0.6b-q5_k_s.gguf | 437 MB |
qwen3-tts-0.6b-q6_k.gguf | 495 MB |
With codec.cpp's tts-cli (build it; it bundles llama.cpp), then:
hf download BricksDisplay/Qwen3-TTS-12Hz-0.6B-GGUF qwen3-tts-0.6b-q8_0.gguf codec-q8_0.gguf --local-dir Qwen3-TTS-12Hz-0.6B
./build/tts-cli synthesize --backbone Qwen3-TTS-12Hz-0.6B/qwen3-tts-0.6b-q8_0.gguf --model Qwen3-TTS-12Hz-0.6B/codec-q8_0.gguf \
--ref-audio my_voice.wav --text "Hello, nice to meet you." --output out.wav
All tts-cli options (voices, voice cloning, sampling, GPU) are described in the codec.cpp README.
The codec_cpp package runs the same pipeline (it builds codec.cpp with its
bundled llama.cpp, so it needs CMake and a C++ compiler):
pip install "codec-cpp @ git+https://github.com/mybigday/codec.cpp" huggingface_hub soundfile
import codec_cpp, soundfile
from huggingface_hub import hf_hub_download
tts = codec_cpp.TTS(hf_hub_download("BricksDisplay/Qwen3-TTS-12Hz-0.6B-GGUF", "qwen3-tts-0.6b-q8_0.gguf"),
hf_hub_download("BricksDisplay/Qwen3-TTS-12Hz-0.6B-GGUF", "codec-q8_0.gguf"))
audio, sr = tts.synthesize("Hello, nice to meet you.", ref_audio="my_voice.wav")
soundfile.write("out.wav", audio, sr)
tts.voices() lists the builtin voices; ref_audio= clones a voice where the
model supports it; tts.stream(text) yields audio as it is generated. More in
the Python docs.
llama.rn loads the same two files on iOS and Android:
const ctx = await initLlama({ model: 'qwen3-tts-0.6b-q8_0.gguf', embedding: true })
await ctx.initVocoder({ path: 'codec-q8_0.gguf' })
const { prompt, grammar, embedding, flow } = await ctx.getFormattedAudioCompletion({
prompt: 'Hello world',
speaker: await ctx.createSpeaker({ refAudio, refAudioSampleRate }), // required: no builtin voice
})
const result = await ctx.completion({ prompt, grammar, embedding })
const pcm = flow === 'continuous_embd'
? await ctx.decodeAudioEmbeddings(result.embeddings, result.embedding_dim)
: await ctx.decodeAudioTokens(result.audio_tokens)
Voice cloning, saved voices and per-model notes: llama.rn TTS docs.
The model files carry the recommended sampling as llama.cpp's
general.sampling.* metadata, the settings of the original model's generation_config.json;
tts-cli, tts-server, llama.rn and any llama.cpp host apply them unless
you set your own.
| Setting | Value | tts-cli flag |
|---|---|---|
| temperature | 0.9 | --temp 0.9 |
| top-k | 50 | --top-k 50 |
| top-p | 1.0 (off) | --top-p 1.0 |
| min-p | 0 (off) | --min-p 0.0 |
| repetition penalty | 1.05 | --repeat-penalty 1.05 |
| repetition window | 4096 (every generated token) | --repeat-last-n 4096 |
| sampler order | penalties → temperature → top-k → top-p | --samplers "penalties;temperature;top_k;top_p" |
Every codebook of a frame is sampled with these settings; the repetition penalty applies to the first codebook only, as in the original model. Keep it: without it a cloned voice with a reference transcript can loop on the smaller quantizations instead of ending.
This is the Base model: it has no builtin voice, so every run needs
--ref-audio with a short, clean clip of the voice to use (any sample rate).
Save it with --save-speaker to reuse it without the clip.
apache-2.0, the same as the original model.