BricksDisplay/Qwen3-TTS-12Hz-0.6B-GGUF
Qwen3-TTS-12Hz-0.6B GGUF
GGUF conversion of `Qwen/Qwen3-TTS-12Hz-0.6B-Base` — Alibaba's Qwen3-based voice-clone TTS model with a 16-codebook RVQ audio tokenizer at 12.5 Hz frame rate.
The model splits into two GGUFs:
- Backbone (`qwen3-tts-0.6b-<quant>.gguf`) — the Qwen3 talker (28 layers, hidden 1024) extracted from
talker_config. Stockqwen3arch, runs in stock llama.cpp withembeddings=true. Vocab 3072 (audio-only cb-0);tie_word_embeddings=true. - Codec + codec_lm (`codec-<quant>.gguf`) — the
qwen3_tts_tokenizeraudio tokenizer (12.5 Hz frame rate, 16 RVQ codebooks) bundled with theresidual_depth_arcodeclm adaptor (4-layer Qwen3-style depth decoder + 15 codebookshead slices + per-cb audio embed tables). Runs in codec.cpp.
This is an audio-modality codec_lm: cb-0 is sampled by the codeclm itself (not the backbone's lmhead); the backbone's hidden state feeds the depth decoder. No text token mid-stream.
Voice cloning is driven by the speaker encoder + reference codes path. The processor pulls spk_emb (1024-dim) from a separate wav2vec2-style speaker encoder and pairs it with ref-audio codes from the codec encoder. Both must be precomputed (the speaker encoder isn't bundled here; consume Qwen/Qwen3-TTS-12Hz-Speaker-Encoder or use a precompiled speaker artefact).
Files
Backbone (qwen3-tts-0.6b-<quant>.gguf)
Codec + codec_lm (codec-<quant>.gguf)
Inference shape (audio-modality codec_lm AR)
backbone (Qwen3, embeddings=true) hidden h
→ codec_lm_step_begin(state, h)
→ for cb in 0..15: codec_lm_step_logits → sample → codec_lm_step_push_code
→ codec_lm_step_finish → codes[16]
→ codec_lm_compose_audio_embd(codes) → next-step embedding
→ feed via b.embd; loop until EOSOutput codes (T × 16) feed directly into codec_decode to produce 24 kHz mono PCM.
Sources
- Upstream model: `Qwen/Qwen3-TTS-12Hz-0.6B-Base`
- Conversion tooling: `mybigday/codec.cpp` (
prep_qwen3_tts+lm_adaptor/qwen3_tts.py) - Inference runtime: `mybigday/llama.rn`
