Back to Skills

qwen-tts-on-macos

verified

Qwen3-TTS (VoiceDesign mode) をMac MLXで効率的に実行するためのガイド。パラメータ最適化、RTFチューニング、Web UI構築、Remotion連携に使用

View on GitHub

Marketplace

kazuph-dotfiles

kazuph/dotfiles

Plugin

qwen-tts-on-macos

development

Repository

kazuph/dotfiles
14stars

plugins/qwen-tts-on-macos/skills/qwen-tts-on-macos/SKILL.md

Last Verified

January 25, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/kazuph/dotfiles/blob/main/plugins/qwen-tts-on-macos/skills/qwen-tts-on-macos/SKILL.md -a claude-code --skill qwen-tts-on-macos

Installation paths:

Claude
.claude/skills/qwen-tts-on-macos/
Powered by add-skill CLI

Instructions

# Qwen3-TTS MLX ガイド

Mac M2+(MLX)でQwen3-TTS VoiceDesignモードを効率的に実行するためのベストプラクティス。

## 最重要ポイント

**警告**: デフォルト `max_tokens=4096` は **327秒の音声** を生成してしまう!

**推奨設定**:
```python
max_tokens=150  # 約12秒の音声
```

## RTF(Real-Time Factor)早見表

| 意味 | RTF値 | ステータス |
|------|------|----------|
| リアルタイムより速い | < 1 | 配信可能 |
| 等速 | = 1 | ギリギリ可能 |
| リアルタイムより遅い | > 1 | 事前生成向け |

**計算式**: `RTF = 生成時間 ÷ 音声の長さ`

### 環境別パフォーマンス

| 環境 | 設定 | RTF | リアルタイム |
|------|-----|-----|------------|
| **Mac M2 MLX** | max_tokens=150 | **0.955** | ほぼ可能 |
| Mac M2 MLX | max_tokens=4096 | 7.0 | 不可 |
| RTX 3090 | バッチ3 | 0.63 | 可能 |
| RTX 3090 | バッチ1 | 1.9 | 不可 |

## クイックスタート

### インストール

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install mlx-audio soundfile
```

### 最小コード(安定版)

```python
from mlx_audio.tts import load

model = load('mlx-community/Qwen3-TTS-12Hz-1.7B-VoiceDesign-4bit')

result = next(model.generate_voice_design(
    text="こんにちは、私はクエンTTSです。",
    instruct="明るく元気な若い女性の声",
    language="Japanese",
    max_tokens=150,           # 重要: 約12秒
    temperature=0.65,         # 安定性向上
    repetition_penalty=1.15,  # 繰り返し防止
    top_k=35,
    top_p=0.92,
))

# result.audio: 音声データ (numpy array)
# result.sample_rate: 24000Hz
```

### 音声ファイル保存

```python
import soundfile as sf
sf.write("output.wav", result.audio, result.sample_rate)
```

## max_tokens と音声長

**計算式**: `音声長(秒)≈ max_tokens / 12.5`

| max_tokens | 想定音声長 | 用途 |
|------------|----------|------|
| 50 | ~4秒 | 短い挨拶 |
| 100 | ~8秒 | ショートフレーズ |
| **150** | **~12秒** | **標準(推奨)** |
| 200 | ~16秒 | 長めの説明 |
| 500 | ~40秒 | ナレーション |
| 2000 | ~160秒 | 長文読み上げ |
| 4096 | ~327秒 | 使用非推奨 |

## パラメータリファレンス

詳細は [PARAMETERS.md](PARAMETERS.md) を参照。

| パラメータ | デフォルト | 推奨 | 効果 |
|-----------|-----------|------|------|
| max_tokens | 4096 | 150 | 音声長制御 |
| temperature | 0.9 | 0.65 | 安定性向上 |
| repetition_penalty | 1.05 | 1.15 | 繰り返し防止 |
| top_k | 50 | 35 | 選択肢制限 |
| top_p | 1.0 | 0.92 | 確率カットオフ |

## 声質プリセット例

VoiceDesignモードは `instruct` パラメータでテキスト指定:

```py

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
3076 chars