はじめに
2026年3月26日、Mistral AIがVoxtral TTSを公開しました。Mistralにとって初のテキスト音声合成(TTS)モデルであり、ElevenLabsなどの商用プロプライエタリモデルを凌駕するパフォーマンスを持ちながら、オープンウェイトとして公開されている点が大きな特徴です。
この記事で学べること
- Voxtral TTSの技術仕様とアーキテクチャ
- Mistral公式APIでのTTS実装(Python/curl)
- vLLM-Omniを使ったローカル推論のセットアップ
- ゼロショットボイスクローニングの実装方法
- ElevenLabsとのベンチマーク比較
対象読者
- 音声AIをサービスに組み込みたいエンジニア
- ElevenLabsなど商用TTSのコスト削減を検討している方
- オープンウェイトモデルのローカル運用に興味がある方
前提環境
- Python 3.10以上
- (ローカル推論の場合)VRAM ≥ 16GB のGPU
- Mistral APIキー(クラウドAPI利用時)
TL;DR
- Voxtral-4B-TTS-2603は4Bパラメータのオープンウェイト多言語TTSモデル
- ElevenLabs Flash v2.5に対し多言語ボイスクローニングで68.4%勝率
- 9言語対応、20種プリセット音声、わずか3秒の参照音声でボイスクローニング可能
- クラウドAPI価格は**$0.016/1,000文字**、ウェイトはCC BY-NC 4.0で公開
- vLLM-Omniを使えばVRAM 16GB以上のGPU1枚でローカル運用可能
Voxtral TTSとは
Voxtral TTSは、Mistral AIが開発した初のTTS(Text-to-Speech)モデルです。同社はすでに音声認識モデル「Voxtral Transcribe 2」を提供しており、Voxtral TTSはその対となる音声合成モデルとして登場しました。
これにより、Mistralのオープンウェイトモデルだけで音声認識 → LLM推論 → 音声合成という完全なローカル音声エージェントパイプラインを構築できるようになりました。
主な仕様
| 項目 | 値 |
|---|---|
| パラメータ数 | 4B |
| 動作GPU | 単一GPU(VRAM ≥ 16GB) |
| 対応言語 | 9言語(英語・フランス語・スペイン語・ドイツ語・イタリア語・ポルトガル語・オランダ語・アラビア語・ヒンディー語) |
| プリセット音声 | 20種 |
| ボイスクローニング | 2〜3秒の参照音声からゼロショット |
| モデルレイテンシ | 約70ms(10秒音声・500文字入力) |
| RTF(リアルタイム係数) | 約9.7x |
| 出力フォーマット | WAV / PCM / FLAC / MP3 / AAC / Opus(24kHz) |
| API価格 | $0.016 / 1,000文字 |
| ライセンス | CC BY-NC 4.0(ウェイト) |
出典: Mistral AI – Speaking of Voxtral、Voxtral TTS Model Card
アーキテクチャ
Voxtral TTSは2段階パイプラインで構成されています。
Voxtral TTS is decomposed into a two-stage pipeline: a generation stage that predicts the audio tokens (semantic and acoustic), followed by a codec decoding stage that converts the tokens into a waveform.
— Voxtral TTS Paper(arxiv.org/html/2603.25551v1)
| ステージ | 内容 |
|---|---|
| 生成ステージ | 3.4B・26層のMistralバックボーンがセマンティックトークンを自己回帰生成、390M・3層の音響トランスフォーマー(フローマッチング、8 Euler steps)が音響トークンに変換 |
| デコードステージ | Voxtral Codec(ハイブリッドVQ-FSQ量子化)が音響トークンを24kHz波形にデコード |
2つのステージは共有メモリ上の非同期チャンクストリーミングプロトコルで通信するため、波形が全て生成される前にストリーミング再生を開始できます。
ベンチマーク:ElevenLabsとの比較
ネイティブスピーカーによる人間評価では以下の結果が得られています。
| 比較対象 | 評価項目 | Voxtral TTS 勝率 |
|---|---|---|
| ElevenLabs Flash v2.5 | 多言語ボイスクローニング(自然さ) | 68.4% |
| ElevenLabs v3 | スピーカー類似度 | 同等(パリティ) |
ElevenLabs Flash v2.5は主要な商用競合製品であり、その勝率68.4%はオープンウェイトモデルとしては特筆すべき成果です。また最上位のElevenLabs v3と同等の品質を達成しています。
Mistral公式APIで利用する方法
API認証
Mistral APIキーを取得し、環境変数に設定します。
export MISTRAL_API_KEY="your_api_key_here"
curlによる基本的な音声生成
curl -X POST https://api.mistral.ai/v1/audio/speech \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voxtral-mini-tts-2603",
"input": "Hello! This is Voxtral speaking.",
"voice": "casual_male"
}' --output output.wav
Pythonによる実装
httpxとsoundfileを使った音声生成の例です。
import io
import os
import httpx
import soundfile as sf
MISTRAL_API_KEY = os.environ["MISTRAL_API_KEY"]
BASE_URL = "https://api.mistral.ai/v1"
def generate_speech(text: str, voice: str = "casual_male", output_format: str = "wav") -> bytes:
"""Voxtral TTS APIで音声を生成する"""
payload = {
"model": "voxtral-mini-tts-2603",
"input": text,
"voice": voice,
"response_format": output_format,
}
response = httpx.post(
f"{BASE_URL}/audio/speech",
headers={"Authorization": f"Bearer {MISTRAL_API_KEY}"},
json=payload,
timeout=120.0,
)
response.raise_for_status()
return response.content
# 音声生成
audio_bytes = generate_speech("こんにちは!Voxtral TTSです。")
# WAVファイルとして保存
audio_array, sr = sf.read(io.BytesIO(audio_bytes), dtype="float32")
sf.write("output.wav", audio_array, sr)
print(f"生成完了: {len(audio_array)} サンプル, {sr} Hz")
ストリーミング出力(MP3形式)
レイテンシを最小化したいリアルタイムアプリには、PCMストリーミングが最適です。
import httpx
import os
def stream_speech(text: str, voice: str = "vivian") -> None:
"""音声をストリーミング再生する"""
with httpx.stream(
"POST",
"https://api.mistral.ai/v1/audio/speech",
headers={"Authorization": f"Bearer {os.environ['MISTRAL_API_KEY']}"},
json={
"model": "voxtral-mini-tts-2603",
"input": text,
"voice": voice,
"response_format": "pcm", # PCMが最も低レイテンシ
},
timeout=120.0,
) as response:
response.raise_for_status()
# sounddevice等で逐次再生可能
for chunk in response.iter_bytes(chunk_size=4096):
# ここでchunkをオーディオデバイスに送信
print(f"受信チャンク: {len(chunk)} bytes")
レイテンシの目安(公式ドキュメントより)
- PCM形式: Time-to-First-Audio 約0.8秒
- MP3形式: Time-to-First-Audio 約3秒
リアルタイム音声エージェントにはPCMが推奨されます。
ゼロショットボイスクローニング
Voxtral TTSの特筆機能の一つが、わずか2〜3秒の参照音声からのゼロショットボイスクローニングです。
import base64
import httpx
import os
def clone_voice(text: str, reference_audio_path: str) -> bytes:
"""参照音声からボイスクローニングして音声生成する"""
# 参照音声をBase64エンコード
with open(reference_audio_path, "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode("utf-8")
payload = {
"model": "voxtral-mini-tts-2603",
"input": text,
"ref_audio": audio_b64, # Base64エンコードした参照音声
"response_format": "wav",
}
response = httpx.post(
"https://api.mistral.ai/v1/audio/speech",
headers={"Authorization": f"Bearer {os.environ['MISTRAL_API_KEY']}"},
json=payload,
timeout=120.0,
)
response.raise_for_status()
return response.content
# 3秒程度の参照音声で音声をクローン
audio = clone_voice(
text="The quick brown fox jumps over the lazy dog.",
reference_audio_path="reference_3sec.wav",
)
with open("cloned_voice.wav", "wb") as f:
f.write(audio)
クローニングは音声の抑揚・リズム・感情表現まで再現します。明示的な感情タグは不要で、参照音声の話し方を自動的に継承します。
ローカル推論(vLLM-Omni)
クラウドAPIを使わずローカルで動かす場合は、vLLM-Omniを使います。
環境セットアップ
# vLLM >= 0.18.0 をインストール
pip install vllm>=0.18.0
# vllm-omniをインストール(mainブランチ)
uv pip install git+https://github.com/vllm-project/vllm-omni.git --upgrade
# バージョン確認
python3 -c "import mistral_common; print(mistral_common.__version__)"
# 1.10.0 以上が必要
サーバー起動
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Voxtral-4B-TTS-2603 \
--port 8000
Python クライアント(ローカル)
import io
import httpx
import soundfile as sf
BASE_URL = "http://localhost:8000/v1"
payload = {
"input": "Bonjour! Je m'appelle Voxtral.",
"model": "mistralai/Voxtral-4B-TTS-2603",
"response_format": "wav",
"voice": "casual_male",
}
response = httpx.post(f"{BASE_URL}/audio/speech", json=payload, timeout=120.0)
response.raise_for_status()
audio_array, sr = sf.read(io.BytesIO(response.content), dtype="float32")
sf.write("output_local.wav", audio_array, sr)
print(f"ローカル推論完了: {len(audio_array)} サンプル at {sr} Hz")
プリセット音声一覧
Voxtral TTSは20種類のプリセット音声を提供しています。主な音声名は以下の通りです(公式ドキュメント参照)。
| カテゴリ | 音声名(例) |
|---|---|
| 男性・カジュアル | casual_male |
| 女性・カジュアル | casual_female |
| 女性・プロフェッショナル | vivian |
| ナレーション系 | ... |
完全な音声リストは Mistral Studio または 公式ドキュメント で確認できます。
注意点
ライセンスについて
Voxtral TTSのウェイトとプリセット音声はCC BY-NC 4.0でライセンスされており、非商用利用が前提です。商用利用にはMistral公式API($0.016/1,000文字)を使用してください。
GPUメモリ要件
ローカル推論にはVRAM 16GB以上のGPUが必要です。BF16フォーマットでのロードが前提となります。
言語ごとの品質差
9言語に対応していますが、英語・フランス語・スペイン語の品質が特に高く評価されています。日本語は現時点では対応言語に含まれていません。
まとめ
- Mistral Voxtral TTS(2026-03-26リリース)は4Bパラメータのオープンウェイト多言語TTSモデル
- ElevenLabs Flash v2.5を多言語ボイスクローニングで68.4%勝率で上回り、ElevenLabs v3と同等品質
- 3秒の参照音声でゼロショットボイスクローニングが可能
- Mistral APIで$0.016/1,000文字から利用でき、vLLM-Omni経由でVRAM 16GB+ GPUにてローカル運用も可能
- Voxtral Transcribe 2と組み合わせることで、Mistralモデルだけでフルローカル音声エージェントパイプラインを構築できる
音声AIを本番サービスに組み込む際、Voxtral TTSはコスト・品質・プライバシーの観点から有力な選択肢になりました。
参考リンク
- Speaking of Voxtral | Mistral AI — 公式発表ブログ
- Text to Speech | Mistral Docs — 公式APIドキュメント
- Voxtral TTS Model Card — モデル詳細
- Voxtral-4B-TTS-2603 on HuggingFace — ウェイト・モデルカード
- Voxtral TTS Paper — 技術論文
- vLLM-Omni GitHub — ローカル推論ライブラリ
- Voxtral TTS Demo — HuggingFace Spaceデモ