RTX 5090のローカルPCでQwen3-TTSを動かすまでのメモ
今回は、Windows環境で RTX 5090 を使って、ローカルに Qwen3-TTS をインストールして動かす手順をまとめます。

場所は例として D:\ruanjian に入れていきます。
まず、作業用フォルダに移動して、Qwen3-TTSのソースコードをcloneします。
cd D:\ruanjian
git clone https://github.com/QwenLM/Qwen3-TTS.git
cd D:\ruanjian\Qwen3-TTS
次に、Python 3.12で仮想環境を作ります。
py -3.12 -m venv .venv
.venv\Scripts\activate
python -m pip install -U pip setuptools wheel
ここまでできたら、プロンプトの先頭に (.venv) が出ているはずです。
これが出ていれば、仮想環境に入れている状態です。
RTX 5090用にCUDA 12.8版のPyTorchを入れる
Qwen3-TTSを入れる前に、まずPyTorchを入れます。
RTX 5090の場合は、CUDA 12.8版のPyTorchを使います。
python -m pip install torch==2.10.0 torchvision==0.25.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu128
インストールが終わったら、ちゃんとGPUが認識されているか確認します。
python -c "import torch; print(torch.__version__); print(torch.version.cuda); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0)); print(torch.cuda.get_arch_list())"
正常なら、だいたいこんな感じで表示されます。
2.10.0+cu128
12.8
True
NVIDIA GeForce RTX 5090
['sm_70', 'sm_75', 'sm_80', 'sm_86', 'sm_90', 'sm_100', 'sm_120']
ここで特に大事なのは、torch.cuda.is_available() が True になることです。
それから、get_arch_list() の中に sm_120 のような表示があると安心です。
もしここが False になっていたら、そのまま進めないほうがいいです。
先にNVIDIAドライバを入れ直すか、CUDA 12.8版のPyTorchをもう一度入れ直したほうがいいです。
Qwen3-TTSをeditable modeでインストールする
GPUまわりが問題なければ、次はQwen3-TTS本体を入れます。
cd /d D:\ruanjian\Qwen3-TTS
python -m pip install -e .
これはいわゆる editable mode、日本語で言うと「編集可能モード」でのインストールです。
この方法で入れておくと、あとで
D:\ruanjian\Qwen3-TTS\qwen_tts\
の中にあるソースコードを直接編集しても、基本的には再インストールしなくて大丈夫です。
Qwen3-TTSの pyproject.toml では、パッケージ名は qwen-tts になっています。
依存関係には、たとえば以下のようなものが入っています。
transformers==4.57.3
accelerate==1.12.0
gradio
librosa
torchaudio
soundfile
モデルのキャッシュもDドライブ側に置く
モデルやキャッシュがCドライブに入ると容量を圧迫しやすいので、今回はプロジェクトフォルダの中にまとめます。
まず、キャッシュ用とモデル用のフォルダを作ります。
mkdir D:\ruanjian\Qwen3-TTS\.cache
mkdir D:\ruanjian\Qwen3-TTS\models
毎回実行する前に、環境変数を設定します。
これは現在開いているコマンドプロンプト、またはPowerShellのウィンドウ内だけで有効です。
システム全体の設定は変えません。
set HF_HOME=D:\ruanjian\Qwen3-TTS\.cache\huggingface
set TORCH_HOME=D:\ruanjian\Qwen3-TTS\.cache\torch
set MODELSCOPE_CACHE=D:\ruanjian\Qwen3-TTS\.cache\modelscope
次に、Hugging Faceからモデルを落とすためのツールを入れます。
cd /d D:\ruanjian\Qwen3-TTS
.venv\Scripts\activate
python -m pip install -U "huggingface_hub[cli]" hf_xet
ダウンロード前に、もう一度Hugging Face関連の環境変数を設定しておきます。
set HF_HOME=D:\ruanjian\Qwen3-TTS\.cache\huggingface
set HF_XET_HIGH_PERFORMANCE=1
set HF_HUB_DOWNLOAD_TIMEOUT=120
それから、必要なモデルをダウンロードします。
hf download Qwen/Qwen3-TTS-Tokenizer-12Hz --local-dir D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-Tokenizer-12Hz
hf download Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local-dir D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-VoiceDesign
hf download Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local-dir D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-CustomVoice
hf download Qwen/Qwen3-TTS-12Hz-1.7B-Base --local-dir D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-Base
モデルはサイズが大きいので、回線やディスク速度によってはそれなりに時間がかかります。
Qwen3-TTSを起動する
CustomVoiceモデルを起動する場合は、こんな感じです。
qwen-tts-demo D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-CustomVoice --ip 127.0.0.1 --port 8000 --dtype bfloat16 --no-flash-attn
Baseモデルを起動する場合はこちらです。
qwen-tts-demo D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-Base --ip 127.0.0.1 --port 8001 --dtype bfloat16 --no-flash-attn
--ip 127.0.0.1 にしているので、基本的には自分のPCからアクセスする形です。
ポートはそれぞれ 8000 と 8001 に分けています。
また、ここでは --dtype bfloat16 を指定しています。
RTX 5090なら、この設定で動かすのが現実的です。
--no-flash-attn は、FlashAttentionまわりでトラブルを避けたい場合に付けておくと無難です。
最終的なフォルダ構成
最終的に、モデルフォルダはこんな感じになります。
D:\ruanjian\Qwen3-TTS\models\
├─ Qwen3-TTS-Tokenizer-12Hz
├─ Qwen3-TTS-12Hz-1.7B-CustomVoice
├─ Qwen3-TTS-12Hz-1.7B-VoiceDesign
└─ Qwen3-TTS-12Hz-1.7B-Base
各モデルの使い分けは、ざっくり言うとこんな感じです。
| モデル | 用途 |
|---|---|
1.7B-CustomVoice | 公式の内蔵音色を使う普通のTTS向け |
1.7B-Base | 参考音声をアップロードして、声のクローンや調整をしたいとき向け |
1.7B-VoiceDesign | テキストで声をデザインしたいとき向け |
VoiceDesign は、たとえば
若い女性、やさしい声、日本語のアナウンサー風、ゆっくり話す
みたいに、文字で声の雰囲気を指定できるモデルです。
公式説明では、中国語、英語、日本語、韓国語、ドイツ語、フランス語、ロシア語、ポルトガル語、スペイン語、イタリア語の10言語に対応していて、streamingやinstruction controlにも対応しています。
SoXがないと言われた場合
もし実行時にSoXがないというエラーが出たら、Windows版のSoXを入れます。
おすすめはZIP版です。
SoX 14.4.2 Windows ZIP
https://sourceforge.net/projects/sox/files/sox/14.4.2/sox-14.4.2-win32.zip/download
ZIP版ならインストーラーを使わなくてもいいので、D:\ruanjian に置いて管理しやすいです。
ダウンロードして解凍すると、たぶんこんな名前のフォルダが出てきます。
sox-14.4.2
これを
sox
にリネームして、以下の場所に置きます。
D:\ruanjian\sox
最後に、このファイルがあるか確認します。
D:\ruanjian\sox\sox.exe
ここまでできれば、Qwen3-TTSのローカル環境はだいたい完成です。
RTX 5090でCUDA 12.8版PyTorchがちゃんと認識されていれば、あとはモデルを切り替えながらTTSを試していけます。
ワンクリック起動用のBATファイルを作る
毎回コマンドを手で入力するのは面倒なので、最後にワンクリック起動用のBATファイルを作っておくと便利です。
たとえば、Base 1.7B モデルを 8001 ポートで起動する場合は、以下の内容でBATファイルを作ります。
ファイル名は、たとえばこんな感じでOKです。
start_qwen3_tts_base_8001.bat
保存場所は分かりやすく、
D:\ruanjian\Qwen3-TTS\start_qwen3_tts_base_8001.bat
にしておくといいです。
中身はこちらです。
@echo off
chcp 65001 >nul
title Qwen3-TTS Base 1.7B - Port 8001
D:
cd \ruanjian\Qwen3-TTS
if not exist ".venv\Scripts\activate.bat" (
echo [ERROR] Not found: D:\ruanjian\Qwen3-TTS\.venv
echo Please install Qwen3-TTS first.
pause
exit /b 1
)
if not exist "D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-Base" (
echo [ERROR] Model folder not found:
echo D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-Base
echo Please download: Qwen/Qwen3-TTS-12Hz-1.7B-Base
pause
exit /b 1
)
set HF_HOME=D:\ruanjian\Qwen3-TTS\.cache\huggingface
set TORCH_HOME=D:\ruanjian\Qwen3-TTS\.cache\torch
set MODELSCOPE_CACHE=D:\ruanjian\Qwen3-TTS\.cache\modelscope
set PATH=D:\ruanjian\sox;%PATH%
call ".venv\Scripts\activate.bat"
echo.
echo ============================================
echo Starting Qwen3-TTS 1.7B Base
echo Open: http://127.0.0.1:8001
echo ============================================
echo.
where sox
sox --version
qwen-tts-demo "D:\ruanjian\Qwen3-TTS\models\Qwen3-TTS-12Hz-1.7B-Base" --ip 127.0.0.1 --port 8001 --dtype bfloat16 --no-flash-attn
pause
このBATをダブルクリックすると、自動で以下の処理をしてくれます。