Local speech recognition & synthesis
Run Qwen3-TTS locally: preset voices to voice design
For narration with a supplied speaker and no reference recording, try CustomVoice. For a voice described in natural language, use 1.7B VoiceDesign. For matching an authorized reference voice, consider Base. Choose the language and task first, confirm a runtime1 path for that model, then synthesize a short passage and listen for pronunciation and style.
Choose among the three generation paths
The official release list shows CustomVoice and Base in both 0.6B and 1.7B sizes, while VoiceDesign is listed only at 1.7B. CustomVoice chooses a supplied speaker; VoiceDesign describes voice traits in natural language; Base uses reference audio for speaker matching. For Korean scripts, the official speaker list includes Sohee, a Korean-native voice.
A short reference clip in a Base example is an input condition, not a quality guarantee. Obtain explicit permission before using another person's voice. For an initial test, try a supplied speaker; use reference-audio features only with your own or authorized recordings.

Check languages and model sizes
The official list names ten languages, including Korean. If Korean is required, test Qwen3-TTS2 CustomVoice/Base or Chatterbox Multilingual V3, which lists Korean. Kokoro's official language list does not include Korean, so do not choose it for Korean narration. Coverage and pronunciation quality on your own text are separate questions.
The language list alone cannot decide between the smaller and larger checkpoint3. Compare pronunciation, pauses and correction effort on your own text and speaker setting. Loading a model once is also different from reliably producing a long script.
Set up the official Python and CUDA path
The official quick start uses an isolated Python 3.12 environment and `pip install -U qwen-tts`. Unless you need to modify source, the package path avoids an editable source install. Dependency setup, checkpoint download and first model load can add substantial waiting, so record them separately from synthesis time.
The CUDA4 example selects `device_map="cuda:0"`, `dtype=torch.bfloat165` and optional `attn_implementation="flash_attention_2"`. The README requires compatible hardware and precision for FlashAttention6 2, so do not enable it blindly. This is a Windows/Linux-style NVIDIA path, not a timing or minimum-memory guarantee for each RTX model.
qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --ip 127.0.0.1 --port 8000
If you have a Mac or CPU-only machine
To try Qwen3-TTS on Apple Silicon, you can use community-converted checkpoints through the separate MLX7-Audio runtime. It lists 0.6B and 1.7B CustomVoice conversions; these are a different distribution path from upstream Qwen weights and its official CUDA runtime.
Before installing, check the publisher, conversion date, available speakers and options, and keep this route distinct from Qwen's official Python/CUDA quick start.
Before deciding whether to buy a Mac, try the MLX-Audio Qwen conversion or a documented Kokoro/Chatterbox path on Apple Silicon you can access. Check that installation and synthesis work, and that the converted checkpoint includes the Korean speaker and features you need. The overview guide's MLX-Audio example starts with a short 0.6B CustomVoice request.
Read the 97 ms claim correctly
The README's 97 ms appears with a claim that the first audio packet can follow a single character. It does not accompany a device, text length, batch, precision, repetition count or measurement boundary. Read it as a first-response claim for streaming, not a full-sentence or long-form completion speed.
For your own measurement, timestamp first audio and the final chunk separately. If useful, split model load, preprocessing, generation, decoding8 and WAV writing. Keep warm requests separate from cold start, and repeat the same text, speaker and settings.

Handle cloned voices and published audio responsibly
Use only your own voice or a recording you have explicit permission to use. Even with permission, make context clear so generated speech is not mistaken for the person's real statement or endorsement. Avoid uploading reference audio to public servers; try a supplied voice locally first.
The repository's Apache-2.0 notice is for code. Check the card for the specific checkpoint and separately review rights in recordings, text and distribution. A model license does not settle every rights question about input audio or generated speech.
Terminology notes
Runtime — Software that loads model files and runs their computations. Supported formats, hardware, and optimizations vary by runtime.
Back to the textText-to-Speech — Technology that converts text into spoken audio with pronunciation and prosody. Output characteristics depend on the model and settings.
Back to the textCheckpoint — A file containing saved model weights and related state. Versions or tasks in one model family may use different checkpoints.
Back to the textCUDA — A software platform for general-purpose computing on NVIDIA GPUs. Programs built for CUDA are not guaranteed to run unchanged on other GPUs.
Back to the textBF16 — A 16-bit floating-point format for storing and computing model values. Support depends on the hardware and runtime.
Back to the textFlashAttention — An implementation that improves memory access in attention computation. Availability and effects depend on hardware, model, and runtime.
Back to the textMLX — A machine-learning framework for Apple silicon. It uses Apple silicon’s unified-memory architecture; supported models and features vary by MLX tool.
Back to the textDecode — For an LLM, this is the stage that generates output tokens after input processing. For a VAE or audio codec, decoding can mean reconstructing the original form from a compressed representation or encoded data.
Back to the text