この記事の対象読者
- 動画ナレーションやゲーム開発で音声合成を使いたい方
- VOICEVOX以外のTTS選択肢を探している方
- ローカル環境でプライバシーを守りつつ音声生成したい方
- GPUを活かしてAI音声合成を高速化したい方
この記事で得られること
- 主要ローカルTTS 5種類の日本語品質・速度・導入難度の実測比較
- 用途別の最適解: ゲーム/動画/ポッドキャスト/対話AIそれぞれのベストチョイス
- 各TTSのセットアップと最小動作コード: コピペで動く環境構築手順
- RTX 5090(Blackwell)での動作検証結果
この記事で扱わないこと
- クラウドTTSサービス(Google Cloud TTS, Amazon Polly等)
- 有料サービス(ElevenLabs, にじボイス等)
- 音声合成の理論的な詳細(Transformerアーキテクチャ等)
1. 「ローカルTTS多すぎ問題」との出会い
「VOICEVOX以外に、もっといいのがあるんじゃないか?」
きっかけは、自分のOSSプロジェクトに音声合成を組み込もうとしたことだった。最初はVOICEVOXでサクッと済ませるつもりだったが、調べ始めたら選択肢が多すぎて混乱した。VOICEVOX、Style-BERT-VITS2、AivisSpeech、CosyVoice、そして最近登場したQwen3-TTS。「結局どれ使えばいいの?」という疑問に、ネット上の情報は断片的で答えてくれない。
ならば全部自分で試すしかない。RTX 5090を積んだWindows環境に片っ端からインストールして、同じ文章を読ませて比較してみた。その結果、日本語品質に衝撃的な差があることがわかった。
ここまでで「比較してみたい」という気持ちが伝わっただろうか。次は、比較に使った環境と評価基準を整理しておこう。
2. 前提知識の確認
本題に入る前に、この記事で登場する用語を確認する。
2.1 TTS(Text-to-Speech)とは
テキストを音声に変換する技術のこと。Siriの読み上げ機能が身近な例だ。最近はAIの進化で、人間と聞き分けが困難なレベルに到達している。
2.2 ボイスクローンとは
特定の人物の声を少量の音声データから学習し、任意のテキストをその声で読み上げる技術。従来は数時間の音声データが必要だったが、最新モデルでは3秒で実現できるものもある。
2.3 VRAMとは
GPUに搭載されたメモリのこと。AIモデルのサイズが大きいほど多くのVRAMが必要になる。TTSモデルでは2GB〜8GB程度を消費するものが多い。
2.4 CUDAとは
NVIDIAのGPUで汎用計算を行うためのプラットフォーム。ほとんどのローカルTTSはCUDAを使ってGPU上で高速に音声を生成する。
これらの用語が押さえられたら、各TTSの背景と特徴を見ていこう。
3. ローカルTTSが群雄割拠する背景
3.1 なぜ今、ローカルTTSが盛り上がっているのか
2024年後半から2026年にかけて、ローカルTTSを取り巻く環境が激変した。
| 時期 | 出来事 | 影響 |
|---|---|---|
| 2024年前半 | Style-BERT-VITS2 JP-Extra公開 | 日本語特化TTSの品質が劇的に向上 |
| 2024年後半 | AivisSpeech登場 | VOICEVOX互換APIで乗り換えが容易に |
| 2025年後半 | CosyVoice v2公開 | 中国発の多言語TTSが日本語にも対応 |
| 2026年1月 | Qwen3-TTS公開 | 3秒ボイスクローン+10言語対応の衝撃 |
| 2026年〜 | RTX 50シリーズ普及 | ローカルでの高速推論がさらに身近に |
3.2 ローカルTTSを選ぶ理由
クラウドTTSも優秀だが、ローカルTTSには明確なメリットがある。
- プライバシー: 音声データが外部に送信されない
- コスト: API課金なし。電気代のみ
- カスタマイズ: 学習データやパラメータを自由に調整
- 遅延: ネットワーク遅延ゼロ。対話AIに最適
背景がわかったところで、今回比較する5つのTTSの基本スペックを見ていこう。
4. 比較対象5つのTTS ─ 基本スペック一覧
4.1 今回の比較対象
| TTS | 開発元 | ライセンス | ボイスクローン | 多言語 | GPU必須 |
|---|---|---|---|---|---|
| VOICEVOX | ヒホ氏 | 独自(利用規約あり) | 不可 | 日本語のみ | 不要(CPU可) |
| Style-BERT-VITS2 | litagin氏 | AGPL v3 | 要学習(30分〜) | 日本語特化 | 学習時のみ |
| AivisSpeech | Aivis Project | 独自 | 要学習 | 日本語特化 | 不要(CPU可) |
| CosyVoice | Alibaba DAMO | Apache 2.0 | 可(数秒) | 中英日韓他 | 推奨 |
| Qwen3-TTS | Alibaba Qwen | Apache 2.0 | 可(3秒) | 10言語 | 推奨 |
4.2 テスト環境
| 項目 | 詳細 |
|---|---|
| OS | Windows 11 Pro |
| CPU | Intel Core Ultra 9 285K |
| GPU | NVIDIA RTX 5090 (32GB VRAM) |
| メモリ | 64GB DDR5 |
| Python | 3.11 |
| CUDA | 12.8 |
4.3 評価基準
全TTSで以下の同一テキストを読ませて評価した。
テストテキスト:
「本日は晴天なり。東京都心の最高気温は28度。
明日は一転して雨模様となるでしょう。傘をお忘れなく。」
| 評価軸 | 説明 | 配点 |
|---|---|---|
| 日本語の自然さ | アクセント、イントネーション、発音の正確性 | 5点満点 |
| 感情表現力 | 抑揚、感情のニュアンス表現 | 5点満点 |
| 導入の簡単さ | 音声生成できるまでの手順数と難易度 | 5点満点 |
| 生成速度 | リアルタイム係数(RTF) | 実測値 |
| VRAM消費 | 推論時のGPUメモリ使用量 | 実測値 |
基本スペックが理解できたところで、実際にコードを書いて動かし、各TTSを比較していこう。
5. 実践:5つのTTSを動かして比較する
5.1 環境構築
以下の3種類の設定を用意した。用途に応じて選択してほしい。
開発環境用(全TTS共通ベース)
# config.dev.yaml - 開発環境用
environment: development
python_version: "3.11"
cuda_version: "12.8"
gpu:
device: "cuda:0"
dtype: "float16" # 開発時はfp16で軽量に
logging:
level: DEBUG
output: console
tts:
default_model: "voicevox" # まずはVOICEVOXで動作確認
cache_dir: "./cache"
output_dir: "./output"
本番環境用(高品質設定)
# config.prod.yaml - 本番環境用
environment: production
python_version: "3.11"
cuda_version: "12.8"
gpu:
device: "cuda:0"
dtype: "bfloat16" # 本番はbf16で高品質
logging:
level: INFO
output: file
path: "/var/log/tts/production.log"
tts:
default_model: "qwen3-tts" # 本番はQwen3-TTSで最高品質
cache_dir: "/data/tts/cache"
output_dir: "/data/tts/output"
streaming: true # ストリーミング有効化
テスト環境用(CI/CD向け)
# config.test.yaml - テスト環境用
environment: test
python_version: "3.11"
cuda_version: "12.8"
gpu:
device: "cpu" # CIではCPU実行
dtype: "float32"
logging:
level: DEBUG
output: console
tts:
default_model: "voicevox" # テストはCPU対応モデルで
cache_dir: "./test_cache"
output_dir: "./test_output"
max_length: 100 # テスト時は短いテキストに制限
5.2 各TTSのセットアップと実行コード
VOICEVOX
日本語TTSの定番。キャラクターボイスが豊富で、導入が最も簡単。
"""
VOICEVOX 音声合成スクリプト
前提: VOICEVOX Engine が http://localhost:50021 で起動していること
実行方法: python tts_voicevox.py
"""
import requests
import json
import wave
import io
def generate_voicevox(text: str, speaker_id: int = 3, output_path: str = "voicevox_output.wav"):
"""VOICEVOXで音声を生成する"""
base_url = "http://localhost:50021"
# 音声合成用のクエリを作成
query_response = requests.post(
f"{base_url}/audio_query",
params={"text": text, "speaker": speaker_id}
)
query_response.raise_for_status()
query = query_response.json()
# 音声合成を実行
synthesis_response = requests.post(
f"{base_url}/synthesis",
params={"speaker": speaker_id},
headers={"Content-Type": "application/json"},
data=json.dumps(query)
)
synthesis_response.raise_for_status()
# WAVファイルとして保存
with open(output_path, "wb") as f:
f.write(synthesis_response.content)
print(f"✅ VOICEVOX: {output_path} に保存しました")
return output_path
if __name__ == "__main__":
text = "本日は晴天なり。東京都心の最高気温は28度。明日は一転して雨模様となるでしょう。傘をお忘れなく。"
generate_voicevox(text)
Style-BERT-VITS2
感情表現の制御が圧倒的に細かい。日本語特化で品質が高い。
"""
Style-BERT-VITS2 音声合成スクリプト
前提: Style-BERT-VITS2のAPIサーバーが起動していること
実行方法: python tts_style_bert_vits2.py
"""
import requests
def generate_sbv2(
text: str,
model_id: int = 0,
style: str = "Neutral",
style_weight: float = 5.0,
output_path: str = "sbv2_output.wav"
):
"""Style-BERT-VITS2で音声を生成する"""
base_url = "http://127.0.0.1:5000"
params = {
"text": text,
"model_id": model_id,
"style": style,
"style_weight": style_weight,
"language": "JP",
}
response = requests.get(f"{base_url}/voice", params=params)
response.raise_for_status()
with open(output_path, "wb") as f:
f.write(response.content)
print(f"✅ Style-BERT-VITS2: {output_path} に保存しました")
return output_path
if __name__ == "__main__":
text = "本日は晴天なり。東京都心の最高気温は28度。明日は一転して雨模様となるでしょう。傘をお忘れなく。"
generate_sbv2(text)
AivisSpeech
VOICEVOX互換APIを持ちつつ、Style-BERT-VITS2ベースの高品質音声を生成。
"""
AivisSpeech 音声合成スクリプト
前提: AivisSpeech Engine が http://localhost:10101 で起動していること
実行方法: python tts_aivisspeech.py
"""
import requests
import json
def generate_aivisspeech(text: str, speaker_id: int = 888753760, output_path: str = "aivis_output.wav"):
"""AivisSpeechで音声を生成する(VOICEVOX互換API)"""
base_url = "http://localhost:10101"
# 音声合成用のクエリを作成(VOICEVOX互換)
query_response = requests.post(
f"{base_url}/audio_query",
params={"text": text, "speaker": speaker_id}
)
query_response.raise_for_status()
query = query_response.json()
# 音声合成を実行
synthesis_response = requests.post(
f"{base_url}/synthesis",
params={"speaker": speaker_id},
headers={"Content-Type": "application/json"},
data=json.dumps(query)
)
synthesis_response.raise_for_status()
with open(output_path, "wb") as f:
f.write(synthesis_response.content)
print(f"✅ AivisSpeech: {output_path} に保存しました")
return output_path
if __name__ == "__main__":
text = "本日は晴天なり。東京都心の最高気温は28度。明日は一転して雨模様となるでしょう。傘をお忘れなく。"
generate_aivisspeech(text)
CosyVoice
Alibaba DAMO発。Few-shotボイスクローンが強力。
"""
CosyVoice 音声合成スクリプト
前提: pip install cosyvoice
実行方法: python tts_cosyvoice.py
"""
import torch
import soundfile as sf
def generate_cosyvoice(text: str, output_path: str = "cosyvoice_output.wav"):
"""CosyVoiceで音声を生成する"""
from cosyvoice.cli.cosyvoice import CosyVoice2
model = CosyVoice2(
"iic/CosyVoice2-0.5B",
load_jit=False,
load_trt=False,
)
# 日本語で生成(組み込み話者使用)
for i, result in enumerate(model.inference_sft(
text,
"日本語女性",
stream=False
)):
audio = result["tts_speech"].numpy().flatten()
sf.write(output_path, audio, 22050)
print(f"✅ CosyVoice: {output_path} に保存しました")
return output_path
if __name__ == "__main__":
text = "本日は晴天なり。東京都心の最高気温は28度。明日は一転して雨模様となるでしょう。傘をお忘れなく。"
generate_cosyvoice(text)
Qwen3-TTS
2026年1月公開の最新モデル。3秒ボイスクローンと10言語対応が最大の武器。
"""
Qwen3-TTS 音声合成スクリプト
前提: pip install qwen-tts
実行方法: python tts_qwen3.py
"""
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel
def generate_qwen3tts(text: str, output_path: str = "qwen3tts_output.wav"):
"""Qwen3-TTSで音声を生成する"""
model = Qwen3TTSModel.from_pretrained(
"Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice",
device_map="cuda:0",
dtype=torch.bfloat16,
)
# 日本語プリセットボイスで生成
wavs, sr = model.generate_custom_voice(
text=text,
language="Japanese",
speaker="Ono_Anna",
instruct="落ち着いた、明瞭な日本語で",
)
sf.write(output_path, wavs[0], sr)
print(f"✅ Qwen3-TTS: {output_path} に保存しました")
return output_path
if __name__ == "__main__":
text = "本日は晴天なり。東京都心の最高気温は28度。明日は一転して雨模様となるでしょう。傘をお忘れなく。"
generate_qwen3tts(text)
Qwen3-TTSの環境構築やGUI操作の詳細は、私が書いた別記事で徹底解説している。日本語GUI版のフォークも公開中だ。
→ Qwen3-TTSってなんだ?〜3秒の音声でボイスクローンできる最新AIを日本語環境で完全攻略〜
5.3 実行結果 ─ 衝撃の比較データ
同一テキストを各TTSで生成した結果がこちらだ。
$ python benchmark_all.py
[VOICEVOX] 生成時間: 0.8秒 | VRAM: 0GB (CPU) | RTF: 0.12
[Style-BERT-VITS2] 生成時間: 1.2秒 | VRAM: 2.1GB | RTF: 0.18
[AivisSpeech] 生成時間: 1.0秒 | VRAM: 1.8GB | RTF: 0.15
[CosyVoice] 生成時間: 2.3秒 | VRAM: 3.5GB | RTF: 0.34
[Qwen3-TTS] 生成時間: 1.5秒 | VRAM: 4.2GB | RTF: 0.22
5.4 日本語品質の主観評価
ここが本記事の核心だ。同じテキストでも、TTSによってこれほど差が出るのかと驚いた。
| TTS | 日本語の自然さ | 感情表現力 | 導入の簡単さ | 総合 |
|---|---|---|---|---|
| VOICEVOX | ★★★☆☆ | ★★☆☆☆ | ★★★★★ | 3.3 |
| Style-BERT-VITS2 | ★★★★★ | ★★★★★ | ★★★☆☆ | 4.3 |
| AivisSpeech | ★★★★★ | ★★★★☆ | ★★★★☆ | 4.3 |
| CosyVoice | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | 2.7 |
| Qwen3-TTS | ★★★★☆ | ★★★★☆ | ★★★☆☆ | 3.7 |
上記スコアは私個人の主観評価であり、テキストの内容や話者設定によって印象は大きく変わる。特にQwen3-TTSはボイスクローン時の品質が飛躍的に向上するため、プリセットボイスだけでは真価がわからない。
5.5 結果の分析 ─ 何がこの差を生んでいるのか
日本語の自然さで頭一つ抜けていたのがStyle-BERT-VITS2とAivisSpeechだ。どちらもBERT(日本語BERT)を使ってテキストの文脈を理解し、音素列にアクセント情報を付加している。日本語はアクセントの位置が意味を変える言語(「箸」と「橋」など)なので、この処理が品質に直結する。
一方、Qwen3-TTSとCosyVoiceは多言語対応モデルのため、日本語特化度では一歩譲る。ただし、Qwen3-TTSのボイスクローン品質は別格だ。3秒の参照音声から生成した音声は、元の声と聞き分けがつかないレベルだった。
5.6 よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
CUDA out of memory |
GPUメモリ不足 | バッチサイズを1にする。または小さいモデル(0.6B)を使用 |
Connection refused (VOICEVOX) |
VOICEVOX Engine未起動 |
run.exe --host 0.0.0.0 でEngine起動 |
ModuleNotFoundError: No module named 'qwen_tts' |
パッケージ未インストール |
pip install qwen-tts を実行 |
RuntimeError: CUDA error: no kernel image |
CUDA Gap(GPUアーキテクチャ非対応) | PyTorch Nightly版を使用(cu128/cu130対応版) |
| Style-BERT-VITS2の音声が途切れる | テキストが長すぎる | 句読点で分割してリクエスト |
5.7 環境診断スクリプト
問題が発生した場合は、以下のスクリプトで環境を診断できる。
#!/usr/bin/env python3
"""
TTS環境診断スクリプト
実行方法: python check_tts_env.py
"""
import sys
import shutil
def check_tts_environment():
"""TTS環境をチェックして問題を報告する"""
issues = []
info = []
# Python バージョン確認
if sys.version_info < (3, 10):
issues.append(f"Python 3.10以上が必要です(現在: {sys.version})")
else:
info.append(f"Python: {sys.version}")
# CUDA確認
try:
import torch
if torch.cuda.is_available():
gpu_name = torch.cuda.get_device_name(0)
vram = torch.cuda.get_device_properties(0).total_mem / 1024**3
info.append(f"GPU: {gpu_name} ({vram:.1f}GB VRAM)")
info.append(f"CUDA: {torch.version.cuda}")
info.append(f"PyTorch: {torch.__version__}")
else:
issues.append("CUDAが利用できません(CPUモードで動作可能なTTSもあります)")
except ImportError:
issues.append("PyTorchがインストールされていません")
# 各TTSの利用可能性チェック
tts_status = {}
for pkg, name in [
("qwen_tts", "Qwen3-TTS"),
("cosyvoice", "CosyVoice"),
]:
try:
__import__(pkg)
tts_status[name] = "✅ 利用可能"
except ImportError:
tts_status[name] = "❌ 未インストール"
# VOICEVOX Engine確認
try:
import requests
r = requests.get("http://localhost:50021/version", timeout=2)
tts_status["VOICEVOX"] = f"✅ Engine v{r.json()}"
except:
tts_status["VOICEVOX"] = "❌ Engine未起動 or 未インストール"
# ffmpeg確認
if shutil.which("ffmpeg"):
info.append("ffmpeg: ✅ インストール済み")
else:
issues.append("ffmpegが見つかりません(音声変換に必要)")
# 結果出力
print("=" * 50)
print("🔍 TTS環境診断結果")
print("=" * 50)
print("\n📋 環境情報:")
for i in info:
print(f" {i}")
print("\n🎙️ TTS利用状況:")
for name, status in tts_status.items():
print(f" {name}: {status}")
if issues:
print(f"\n❌ {len(issues)}件の問題が見つかりました:")
for issue in issues:
print(f" - {issue}")
else:
print("\n✅ 環境は正常です")
if __name__ == "__main__":
check_tts_environment()
実装方法がわかったので、次は具体的なユースケースごとの最適解を見ていこう。
6. ユースケース別ガイド ─ 結局どれを使えばいいのか
6.1 ユースケース1: ゲーム/VTuber向けキャラクターボイス
想定読者: ゲーム開発者、VTuber制作者、同人ゲーム制作者
最適解: Style-BERT-VITS2 or AivisSpeech
理由: 感情の強弱やスタイルを数値で細かく制御でき、キャラクターの「演技」が可能。日本語のアクセントが正確なので、違和感のないキャラボイスが作れる。
"""
ゲームキャラクター向け: Style-BERT-VITS2 でスタイル制御
"""
import requests
def generate_game_voice(text: str, emotion: str = "Happy", strength: float = 7.0):
"""感情制御付きのゲームボイスを生成"""
params = {
"text": text,
"model_id": 0,
"style": emotion, # "Happy", "Sad", "Angry" 等
"style_weight": strength, # 0.0〜10.0 で感情の強さを制御
"language": "JP",
}
response = requests.get("http://127.0.0.1:5000/voice", params=params)
with open(f"game_{emotion.lower()}.wav", "wb") as f:
f.write(response.content)
print(f"✅ {emotion} ボイス生成完了")
if __name__ == "__main__":
generate_game_voice("やった!レベルアップだ!", "Happy", 8.0)
generate_game_voice("ここは…危険な場所のようだ…", "Sad", 5.0)
generate_game_voice("絶対に許さない!", "Angry", 9.0)
6.2 ユースケース2: YouTube/ポッドキャストのナレーション
想定読者: 動画クリエイター、ポッドキャスター
最適解: Qwen3-TTS(ボイスクローン)
理由: 自分の声を3秒でクローンして、長時間のナレーションを自動生成できる。一度クローンすれば、どんなテキストも「自分の声」で読み上げてくれる。
"""
ナレーション向け: Qwen3-TTS でボイスクローン
"""
import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel
def generate_narration(text: str, ref_audio: str = "my_voice_3sec.wav"):
"""自分の声のクローンでナレーションを生成"""
model = Qwen3TTSModel.from_pretrained(
"Qwen/Qwen3-TTS-12Hz-1.7B-Base",
device_map="cuda:0",
dtype=torch.bfloat16,
)
wavs, sr = model.generate_voice_clone(
text=text,
language="Japanese",
ref_audio=ref_audio,
ref_text="", # Whisperで自動文字起こし可能
)
sf.write("narration.wav", wavs[0], sr)
print("✅ ナレーション生成完了")
if __name__ == "__main__":
script = """
皆さんこんにちは。本日のテーマはローカルAIの最新事情です。
2026年に入って、音声合成技術は驚くほど進化しました。
今日はその中でも特に注目すべき5つのツールをご紹介します。
"""
generate_narration(script)
Qwen3-TTSのボイスクローンをGUIで簡単に試したい場合は、日本語対応フォーク版がおすすめ。Whisperによる自動文字起こし機能も搭載している。
→ Qwen3-TTSってなんだ?〜3秒の音声でボイスクローンできる最新AIを日本語環境で完全攻略〜
6.3 ユースケース3: 対話AIアシスタント(リアルタイム応答)
想定読者: AIチャットボット開発者、対話システム開発者
最適解: VOICEVOX(低遅延重視)or Qwen3-TTS(品質重視)
理由: 対話AIでは応答遅延が命。VOICEVOXはCPUでも高速に動作し、APIがシンプル。品質を重視するならQwen3-TTSのストリーミングモード(97ms低遅延)が強力。
"""
対話AI向け: VOICEVOX で低遅延レスポンス
"""
import requests
import json
import time
def generate_realtime_response(text: str, speaker_id: int = 3):
"""対話AI用の低遅延音声生成"""
base_url = "http://localhost:50021"
start_time = time.time()
# クエリ作成
query = requests.post(
f"{base_url}/audio_query",
params={"text": text, "speaker": speaker_id}
).json()
# speedScale を上げてテンポよく
query["speedScale"] = 1.15
# 合成
audio = requests.post(
f"{base_url}/synthesis",
params={"speaker": speaker_id},
headers={"Content-Type": "application/json"},
data=json.dumps(query)
).content
elapsed = time.time() - start_time
print(f"✅ 生成完了({elapsed:.2f}秒)")
return audio
if __name__ == "__main__":
generate_realtime_response("はい、お調べしますね。少々お待ちください。")
ユースケースを把握できたところで、この先の学習パスを確認しよう。
7. 学習ロードマップ
この記事を読んだ後、次のステップとして以下をおすすめする。
初級者向け(まずはここから)
- VOICEVOXをインストールして音声生成を体験する → VOICEVOX公式
- AivisSpeechでワンランク上の品質を試す → AivisSpeech公式
中級者向け(実践に進む)
- Qwen3-TTSでボイスクローンに挑戦する → Qwen3-TTSってなんだ?(私の詳細解説記事)
- Style-BERT-VITS2で自分の声を学習させる → Style-BERT-VITS2 GitHub
- APIサーバーを立てて自分のアプリに組み込む
上級者向け(さらに深く)
- Qwen3-TTSのファインチューニングで独自モデルを作成 → 公式ドキュメント
- 複数TTSをパイプラインで組み合わせるハイブリッドシステムを構築
- vLLMでLLM推論 + Qwen3-TTSで音声応答のエンドツーエンドシステムを構築
8. まとめ ─ 結局どれを使えばいいのか
この記事では、主要ローカルTTS 5種類を実際に動かして比較した。結論を一言でまとめると:
| 目的 | 最適解 | 理由 |
|---|---|---|
| とにかく手軽に始めたい | VOICEVOX | インストールが最も簡単。CPU動作OK |
| 日本語の品質を最優先 | Style-BERT-VITS2 / AivisSpeech | 日本語特化のアクセント処理が優秀 |
| 自分の声をクローンしたい | Qwen3-TTS | 3秒の音声で驚異的なクローン品質 |
| 多言語ナレーション | Qwen3-TTS | 10言語対応、97ms低遅延ストリーミング |
| ゲームの感情表現 | Style-BERT-VITS2 | スタイル制御の柔軟性が圧倒的 |
私の所感
正直、この比較をする前は「どれも似たようなものだろう」と思っていた。しかし実際に試してみると、日本語の自然さには明確な格差が存在した。
特に衝撃だったのはQwen3-TTSのボイスクローン品質だ。たった3秒の音声から、本人と聞き分けがつかない声が生成される。これは良い意味でも悪い意味でも「やばい」技術だと感じた。
一方で、日本語の読み上げ品質だけなら、Style-BERT-VITS2やAivisSpeechの方が上だ。つまり「何をしたいか」で最適解が変わる。この記事がその選択の一助になれば幸いだ。
Qwen3-TTSの詳しいセットアップ手順、日本語GUI版フォーク、Whisper統合については以下の記事で完全解説している。この記事が参考になったらぜひ合わせて読んでほしい。
→ Qwen3-TTSってなんだ?〜3秒の音声でボイスクローンできる最新AIを日本語環境で完全攻略〜
参考文献
- VOICEVOX 公式サイト
- Style-BERT-VITS2 GitHub
- AivisSpeech 公式サイト
- CosyVoice GitHub
- Qwen3-TTS GitHub
- Qwen3-TTS 技術レポート(arXiv)
- Qwen3-TTS 日本語フォーク版
宣伝
Xはじめました。GPU環境でのAI開発Tipsを発信中。