Skip to content

Li Yang

Agent skill wrapper over my existing** Qwen3TTS single-speaker finetuning script translated from PyTorch to MLX.

Core trick

Ports a Qwen3-TTS LoRA fine-tuning pipeline to MLX so single-speaker voice cloning runs on Apple Silicon.

Tags

Description

Agent skill wrapper over my existing** Qwen3TTS single-speaker finetuning script translated from PyTorch to MLX. High quality TTS for any Apple Silicon Mac with >16GB RAM. Can hook up to OpenClaw's on such devices to respond to you in a voice you like.
hewliyang/qwen-tts★ 30 forksPythonCreated Mar 1, 2026 · last push Mar 7, 2026

README excerpt

# qwen-tts

Voice cloning & fine-tuning for [Qwen3-TTS](https://github.com/QwenLM/Qwen3-TTS) on Apple Silicon via MLX.

## Pipeline

```
source audio → split → prepare → train → generate → check
```

The CLI handles the full pipeline: ASR-based splitting & transcription, codec encoding, LoRA training, inference, and evaluation (local ASR + Gemini-as-judge). See [SKILL.md](SKILL.md) for the full cookbook.

## CLI commands

| Command    | Description                                        |
| ---------- | -------------------------------------------------- |
| `split`    | ASR-based split + transcribe source audio to clips |
| `prepare`  | Encode audio → codec tokens for training           |
| `train`    | Fine-tune a custom voice (LoRA SFT)                |
| `generate` | Generate speech from text                          |
| `check`    | Evaluate output (ASR intelligibility + Gemini)     |
| `speakers` | List available speakers in a voice model           |
| `voices`   | List trained voice models in a directory           |

### Split

```bash
# ASR-based split + transcribe (outputs clips + transcript.txt)
qwen-tts split raw_audio/source_24k.wav -o ./clips --max-dur 8
```

### Generate

```bash
# Basic TTS
qwen-tts generate -p "Hello world"

# Voice cloning (zero-shot, no training)
qwen-tts generate -p "Hello world" --voice ref.wav

# VoiceDesign (1.7B only)
qwen-tts generate -p "Hello world" --model voice-design --instruct "A warm, cheerful female voice"

# CustomVoice with em

Team