
「オープンソースのTTSで、ここまで自然な日本語が出るのか」——正直、驚きました。
2026年1月22日に Alibaba Cloud のQwen Teamが公開した Qwen3-TTS を、手元のMacBook Air(Apple Silicon M3)で試してみました。結論から言うと、日本語の読み上げ品質がかなり良い。そして何より、VoiceDesign機能で「自分だけの声」を作れるのが面白い。権利的にもクリーンな声を、自然言語の指示だけで生成できます。
この記事では、Apple Silicon(MPS)での動作確認結果と、VoiceDesign→Cloneワークフローの実用性をまとめます。動作確認に使ったコードは GitHub に置いてあります。
Qwen3-TTSとは
Qwen3-TTS は、Apache License 2.0 で公開されているオープンソースのTTS(Text-to-Speech)モデル群です。商用利用も可能。公式ブログ(Qwen公式ブログ )も出ています。
モデルは用途別に分かれていて、ざっくり次の3系統を押さえると理解しやすいです。
- CustomVoice: あらかじめ用意された「プレミアム話者」から選び、指示文(instruct)でスタイルを調整する
- VoiceDesign: 指示文(instruct)で声の音色・感情・韻律を設計する(これが面白い)
- Base: 参照音声から3秒程度でボイスクローンする
モデルは Hugging Face の Qwen3-TTS collection にまとまっています。対応言語は中/英/日/韓/独/仏/露/葡/西/伊の10言語です。
Apple Silicon M3で動かしてみた
環境
| 項目 | 値 |
|---|---|
| マシン | MacBook Air (Apple Silicon M3) |
| OS | macOS |
| Python | 3.13.1 |
| PyTorch | 2.10.0 |
| バックエンド | MPS (Metal Performance Shaders) |
インストール
| |
FlashAttentionはMacでは使えませんが、以下の警告が出るだけで問題なく動作します。
| |
モデルファイルの保存場所
モデルは初回実行時に自動でダウンロードされ、Hugging Faceのキャッシュに保存されます。
| |
| モデル | サイズ |
|---|---|
Qwen3-TTS-12Hz-0.6B-Base | 2.3GB |
Qwen3-TTS-12Hz-1.7B-VoiceDesign | 4.2GB |
両方使う場合は合計 約6.5GB になります。Voice Cloneだけなら0.6B-Baseの2.3GBで済みます。
不要になったら以下で削除できます(再実行時に自動で再ダウンロード)。
| |
ちなみにCUDA版だとFlashAttentionなど追加のライブラリが必要になりますが、Mac版はその辺が不要なのでセットアップはシンプルです。
動作確認結果
| モデル | 動作 | 備考 |
|---|---|---|
Qwen3-TTS-12Hz-1.7B-VoiceDesign | ✅ | float16でOK |
Qwen3-TTS-12Hz-1.7B-Base | ✅ | float32が必須 |
Qwen3-TTS-12Hz-0.6B-Base | ✅ | float32が必須 |
重要: Voice Clone(Baseモデル)は float32 が必須です。float16 だと RuntimeError: probability tensor contains either inf, nan or element < 0 が発生します。
CUDAとの設定差分
| 設定 | CUDA(公式README) | Mac(MPS) |
|---|---|---|
device_map | "cuda:0" | "mps" |
dtype(VoiceDesign) | torch.bfloat16 | torch.float16 |
dtype(Voice Clone) | torch.bfloat16 | torch.float32 |
attn_implementation | "flash_attention_2" | 省略 |
VoiceDesign: 声を「設計」する
この記事で一番伝えたいのが VoiceDesign です。
従来のTTSは「用意された声から選ぶ」のが基本でした。VoiceDesignは「声を自然言語で設計する」方向に寄せています。
例えば、次のような指示(instruct)で声を定義します。
| |
| |
これだけで、その場で新しい声が生成されます。既存の声をクローンするわけではないので、権利的にクリーンな声を作れるのが大きい。
実装例(Mac向け)
| |
実際に生成してみると、日本語のイントネーションがかなり自然です。「合成音声っぽさ」が少なく、普通に聞いていられるレベル。
instruct の書き方
instruct パラメータで声を制御します。以下の要素を組み合わせると効果的です。
| 要素 | 説明 | 例 |
|---|---|---|
| 音色(timbre) | 声質 | 低め、高め、ハスキー、息成分多め |
| 感情(emotion) | 気持ち | 落ち着いた、緊張している、明るい |
| 韻律(prosody) | リズム・速度 | ゆっくり、早口、語尾を上げる |
| キャラクター | 年齢・性別 | 若い女性、中年男性、お年寄り |
| |
VoiceDesign→Clone ワークフロー
VoiceDesignの弱点は「同じ指示でも毎回微妙に声が揺れる」ことです。単発の読み上げなら自然で良いのですが、キャラクターのセリフを何十行も生成したいときは、揺れが"別人感"として積み上がります。
そこで、VoiceDesignで作った参照音声を、Baseモデルでクローンして再利用可能にするというワークフローが効きます。
- VoiceDesignで「声の設計図」から参照音声を作る
- 参照音声+書き起こしから
create_voice_clone_promptを作る - 以降は
generate_voice_clone(..., voice_clone_prompt=...)で量産する
実装例(Mac向け、完全版)
| |
これで、VoiceDesignで作った声を「資産化」して、一貫性のある音声を量産できます。
3秒クローンとの使い分け
Qwen3-TTSには「既存の音声を3秒でクローンする」機能もあります。使い分けの基準を整理します。
| 観点 | 3秒クローン | VoiceDesign→Clone |
|---|---|---|
| 目的 | 既存の声を再現したい | 新しい声を作る |
| 入力 | 参照音声(+書き起こし) | 設計文(instruct) |
| 権利 | 元の声の権利に直結(許諾が重要) | 権利的にクリーン |
| 一貫性 | 参照音声の品質に依存 | プロンプト化すると安定 |
自分の結論:
- 誰かの声を再現したいなら3秒クローン(ただし許諾は必須)
- 自分のプロダクトのキャラクター音声を作りたいなら VoiceDesign→Clone
VoiceDesignで作った声は「誰の声でもない」ので、著作権や肖像権の問題を回避しやすいのが大きなメリットです。
日本語品質の感想
実際に試して驚いたポイント:
- イントネーションが自然: 「合成音声っぽさ」が少ない
- 漢字の読みが正確: 専門用語でなければほぼ問題なし
- 感情表現が効く: instruct で「緊張している」と指定すると、本当にそう聞こえる
- 句読点の間が自然: 「……」や「、」の扱いが上手い
まとめ
Qwen3-TTSを Apple Silicon M3 で試してみて、以下の点に驚きました。
- 日本語品質が高い: オープンソースでここまで自然な読み上げは初めて
- VoiceDesignで声を作れる: 権利フリーの声を自然言語で設計できる
- Macでも動く: MPS対応で、float32の制約はあるが実用レベル
「声を選ぶ」から「声を作る」へ。TTSの使い方が変わる可能性を感じるツールです。
興味のある方は、ぜひ手元で試してみてください。VoiceDesignで「自分だけの声」を作る体験は、なかなか面白いですよ。