cstr/qwen3-tts-tokenizer-12hz-GGUF
Qwen3-TTS Tokenizer 12Hz — GGUF (CrispASR)
GGUF / ggml conversions of `Qwen/Qwen3-TTS-Tokenizer-12Hz` for use with the qwen3-tts backend in [CrispStrobe/CrispASR](https://github.com/CrispStrobe/CrispASR).
Qwen3-TTS-Tokenizer-12Hz is the separate speech tokenizer / codec used by the Qwen3-TTS family:
- 10 supported languages:
zh en ja ko de fr ru pt es it - 12.5 Hz, 16-codebook speech representation
- used for reference-audio encoding, voice-pack baking, and final waveform decode
- Apache-2.0 licence
This repo contains the tokenizer / codec only. Use it together with the talker GGUF from `cstr/qwen3-tts-0.6b-base-GGUF`.
Files
Quick Start
./build/bin/crispasr \
--backend qwen3-tts \
-m qwen3-tts-12hz-0.6b-base.gguf \
--codec-model qwen3-tts-tokenizer-12hz.gguf \
--voice clone.wav \
--ref-text "Exact transcript of clone.wav" \
--tts "Hello there" \
--tts-output hello.wavThe tokenizer GGUF is used for:
- encoding reference audio into
ref_code - baking / loading voice-pack GGUFs
- decoding generated codes back into 24 kHz mono WAV
Quantisation Notes
Current CrispASR validation status:
qwen3-tts-tokenizer-12hz.gguf- reference baseline
qwen3-tts-tokenizer-12hz-q8_0.gguf- usable, but numerically less faithful than the F16 codec in strict diff tests
For best fidelity, keep the tokenizer / codec at F16 even when quantising the talker. In current CrispASR testing, codec quantisation drifts earlier in the codec-encoder path than talker-only quantisation.
This repo may also publish lower-bit talker variants in the companion talker repo. If you use them, the safest pairing is still:
- quantised talker
qwen3-tts-tokenizer-12hz.ggufkept at F16
In other words: if you must choose where to keep precision, keep it in the tokenizer / codec first.
How this was made
- The upstream tokenizer / codec checkpoint was converted to GGUF F16 by `models/convert-qwen3-tts-tokenizer-to-gguf.py`.
- Quantised variants are produced with CrispASR's GGUF quantiser.
- Encode / decode inference is implemented in `src/qwen3_tts.cpp`, sharing the same runtime as the
qwen3-ttstalker backend.
Reference implementation
Architecture and behaviour were checked against the official Qwen release:
- upstream tokenizer model card: `Qwen/Qwen3-TTS-Tokenizer-12Hz`
- upstream repository: `QwenLM/Qwen3-TTS`
- technical report: `Qwen3-TTS Technical Report`
Related
- Companion talker GGUF: `cstr/qwen3-tts-0.6b-base-GGUF`
- Upstream tokenizer: `Qwen/Qwen3-TTS-Tokenizer-12Hz`
- C++ runtime: `CrispStrobe/CrispASR`
License
Apache-2.0, inherited from the base model.
Provenance and EU AI Act Art. 53 note
- Upstream model: Qwen/Qwen3-TTS-Tokenizer-12Hz — published by
Qwen. - Upstream licence:
apache-2.0. This repository redistributes under the same terms; it grants no rights the upstream licence does not. - What was done here: format conversion and/or quantisation only (GGUF/GGML). No training, no fine-tuning, no merging, no distillation, no change to architecture, vocabulary or capability. Only the numeric representation of the upstream weights differs.
- Training data: documented — where it is documented at all — by the upstream provider; see the upstream model card. No training data was used, added or selected by this repository. No training-content summary was found on the upstream model card at the time of writing; that documentation gap is upstream's and is not filled here.
- Provider status: under Regulation (EU) 2024/1689 the upstream authors remain the provider of this model. Converting the serialisation format does not make this repository the provider of a new general-purpose AI model, and no such claim is made. Questions about training content, copyright policy or model capability belong upstream.
