この記事でできること
- Google Colab(無料版・T4 GPU)でQwen3-TTSを動かせるようになる
- 標準音声(プリセット)で日本語テキストを読み上げた音声ファイルを生成できる
- VOICEVOXなど既存TTSとの違いが分かる
自分の声でクローン音声を作る手順は、この記事では扱いません。標準音声で動作確認をした後、自分の声でやりたい方向けの情報は末尾にリンクを載せています。
Qwen3-TTSとは
Alibaba Cloud Qwenチームが2026年1月に公開したオープンソースのTTS(Text-to-Speech)モデルです。
公式リポジトリ:QwenLM/Qwen3-TTS
主要な特徴
- 3秒の音声サンプルからボイスクローン可能(長いサンプルほど精度向上)
- 10言語対応(中国語、英語、日本語、韓国語、ドイツ語、フランス語、ロシア語、ポルトガル語、スペイン語、イタリア語)
- 感情や話し方をテキストで指示できる(「落ち着いた口調で」「テンション高めで」など)
- 12Hzの低レート音声圧縮で、T4 GPUでも実用的に動作する
- Apache 2.0ライセンス(商用利用可能)
VOICEVOXとの違い
| 項目 | VOICEVOX | Qwen3-TTS |
|---|---|---|
| 料金 | 無料 | 無料(オープンソース) |
| ボイスクローン | 非対応(プリセットキャラのみ) | 対応(3秒の音声でOK) |
| 対応言語 | 日本語のみ | 10言語 |
| 自分の声での合成 | 不可 | 可能 |
| 感情・話し方の制御 | キャラごとのスタイル選択 | 自然言語で自由に指示 |
| 商用利用 | キャラごとの規約あり | Apache 2.0(自由) |
VOICEVOXは「ずんだもん」をはじめとしたキャラクターの声で合成できる優れたツールですが、自分の声で合成する機能はありません。Qwen3-TTSは「自分の声のクローン」が最大の強みです。
環境
- Google Colab(無料版)
- ランタイム:T4 GPU
- Python 3.10+
手順
1. Google Colabでノートブックを作成
Google Colab にアクセスし、「ノートブックを新規作成」。
ランタイムの設定でGPUを選択します。
メニュー → ランタイム → ランタイムのタイプを変更 → T4 GPU → 保存
2. Cell 1:共通初期設定
最初のセルに以下を貼り付けて実行します。ライブラリのインストールとモデル読み込みの準備です。
# Cell 1:共通初期設定
# ライブラリのインストール
!pip install -U qwen-tts soundfile
import torch
import soundfile as sf
import ipywidgets as widgets
import io
import gc
import numpy as np
from IPython.display import Audio, display
from scipy.io import wavfile
from qwen_tts import Qwen3TTSModel
# システム設定
DEVICE = "cuda:0"
DTYPE = torch.bfloat16
# メモリ解放用の共通関数
def clear_vram():
global model_custom, model_clone
if 'model_custom' in globals(): del model_custom
if 'model_clone' in globals(): del model_clone
gc.collect()
torch.cuda.empty_cache()
print("✅ セットアップが完了しました。")
初回はqwen-ttsのインストールに1〜2分かかります。✅ セットアップが完了しました。が表示されれば成功です。
3. Cell 2:標準音声で動作確認
次のセルに以下を貼り付けて実行します。Qwen3-TTSの標準音声(プリセット)で日本語テキストを読み上げます。
# Cell 2:デフォルトの音声モデルから音声ファイルを「standard_voice.wav」として自動保存(自動再生なし)
# ==================================================
# 【要編集エリア】
# ==================================================
input_text = "こんにちは、標準音声のテストです。"
speaker_id = "ono_anna"
output_filename = "standard_voice.wav"
# ==================================================
# メモリ管理:model_custom がない場合のみ読み込む
if 'model_custom' not in globals():
print("🔄 標準音声モデルを読み込んでいます(約2分)...")
clear_vram() # 別のモデルがあれば消去
model_custom = Qwen3TTSModel.from_pretrained("Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice", device_map=DEVICE, dtype=DTYPE)
else:
print("✅ 標準音声モデルは読み込み済みです。スキップします。")
# 音声生成
wav_data, sampling_rate = model_custom.generate_custom_voice(
text=input_text, language="Japanese", speaker=speaker_id, instruct="落ち着いた口調で"
)
display(Audio(wav_data[0], rate=sampling_rate))
sf.write(output_filename, wav_data[0], sampling_rate)
print(f"💾 {output_filename} として保存しました。")
初回はモデルのダウンロード(約4.5GB)に2〜3分かかります。✅ 音声ファイルを生成しましたが表示されたら、再生ボタンで音声を確認できます。
使える標準話者(speaker)
Qwen3-TTSには9種類のプリセット話者が用意されています。speaker="Ono_Anna" の部分を変更すると声が変わります。
| 話者名 | 性別 | 言語 |
|---|---|---|
| Ono_Anna | 女性 | 日本語 |
| Ryan | 男性 | 英語 |
| Claire | 女性 | 英語 |
| Sohee | 女性 | 韓国語 |
| ほか5種 | — | 中国語方言等 |
感情・話し方の指示
synthesize() に instruction パラメータを渡すと、話し方を制御できます。
ハマりポイント
モデルのダウンロードが途中で止まる
Google Colabの通信が不安定な場合に発生します。セルをもう一度実行すれば、途中からダウンロードが再開されます。
メモリ不足(OOM)
T4 GPU(16GB VRAM)で長いテキストを生成するとメモリ不足になることがあります。
- テキストを100文字程度に分割して生成する
- 生成後に
clear_vram()を呼んでメモリを解放する
日本語の読みが不自然
漢字の読みが間違っている場合は、ひらがなに置き換えると改善します。固有名詞は特にひらがな表記が安全です。
ここまでのまとめ
| 項目 | 内容 |
|---|---|
| モデル | Qwen3-TTS-12Hz-1.7B-CustomVoice |
| 環境 | Google Colab(無料版・T4 GPU) |
| やったこと | 標準音声(Ono_Anna)で日本語テキスト読み上げ |
| 所要時間 | 初回10分(モデルDL含む)、2回目以降は数十秒 |
ここまでで、Qwen3-TTSが動く環境の構築と、標準音声での読み上げ確認が完了しました。
「自分の声」でやりたい方へ
この記事では標準音声(プリセット)での動作確認までを扱いました。
標準音声じゃなくて、自分の声で読み上げさせたいという方も多いと思います。
Qwen3-TTSのボイスクローン機能を使えば、自分の声を10秒〜録音してAIに渡すだけで、自分の声で任意のテキストを読み上げた音声を生成できます。YouTubeナレーション、ポッドキャスト、プレゼン資料の音声ガイドなど、「自分の声で音声コンテンツを作りたい」場面で使えます。
ボイスクローンの具体的な手順(録音の準備、クローンモデルの読み込み、バッチ処理で複数音声を一括生成する方法、生成ファイルのZIPダウンロード)は、noteに書いています。
▶ いまから10分!完全無料で自分のAI音声クローンを構築する方法(note・コピペで動くコード全文+バッチ処理+ZIP一括DL)