Qwen3-TTS voice cloning has been merged into mainline llama.cpp, enabling local text-to-speech with voice cloning from short reference audio via the llama-tts binary, supporting multiple languages. Limitations remain, including only the Base model and no server endpoint yet.
People may remember the Qwen3-TTS llama.cpp demo from a few months ago. That PR said it probably wouldn’t be merged because llama.cpp was missing some of the graph and API pieces it needed. A new implementation was merged into master yesterday. What works now: - Qwen3-TTS-12Hz-1.7B-Base in GGUF - WAV or MP3 files as the speaker reference - English, Chinese, German, Italian, Spanish, French, Portuguese, Russian, Japanese and Korean - Audio generation through the llama-tts binary Example: llama-tts -hf ggml-org/Qwen3-TTS-12Hz-1.7B-Base-GGUF \ -p "Hello, this is running locally." \ --tts-lang en \ --tts-speaker-file speaker.mp3 \ --output out.wav Qwen describes the Base model as capable of cloning a voice from around three seconds of reference audio. I haven’t seen an independent test yet showing whether the llama.cpp version matches the original PyTorch implementation in voice similarity or stability. The interesting part is not that Qwen3-TTS can run locally. Dedicated C++ implementations already existed. It is that voice cloning is now part of mainline llama.cpp, which should make it much easier to add local speech output to projects already built around that runtime. There are still some important limitations: - The merged implementation currently uses llama-tts - The /tts server endpoint is still a draft PR - It only targets the 1.7B Base model, not CustomVoice or VoiceDesign - There are no proper comparisons yet against qwen3-tts.cpp or audio.cpp - The update includes a breaking change to the existing llama-tts binary The comparison I’d like to see is one identical three-second reference clip and one identical paragraph tested across CPU, Metal, CUDA and ROCm, with: - Real-time factor - Peak RAM and VRAM - Voice similarity - Long-form stability - Time until the first audio The specialized ports may still win on speed, while llama.cpp may win on portability and integration. Has anyone updated and tested it yet? M-series Mac and CPU-only results would be especially useful. Source: https://github.com/ggml-org/llama.cpp/pull/26254 Draft server endpoint: https://github.com/ggml-org/llama.cpp/pull/26603
The Qwen3-TTS technical report introduces a series of advanced multilingual text-to-speech models with voice cloning and controllable generation, featuring a dual-track LM architecture and specialized tokenizers for low-latency streaming.
Alibaba's Tongyi Lab released Qwen-Audio-3.0-TTS, a new text-to-speech model with Flash (real-time) and Plus (high-quality) versions, supporting 16 languages, natural language style control, and robust voice cloning.
Developer shows how to run Qwen3 TTS locally in real-time with streaming, quantization, word-level alignment, and custom voice fine-tuning for an expressive open-source TTS pipeline.
The developer improved qwen3-tts.cpp to run 5x realtime on RTX 5080 and created a cross-platform desktop GUI with Kotlin Compose Multiplatform, featuring voice cloning, streaming, and speaker embedding management.