Sarashina2.2-TTSは日本語寄りのゼロショット音声合成モデル
目次
SB Intuitions が sarashina2.2-tts を公開していた。
日本語中心の Text-to-Speech モデルで、Hugging Face 上のモデルサイズは0.8B params。
短い参照音声から話者の声、話し方、音響的な特徴を拾って、ファインチューニングなしで音声を生成する。
このブログでは Qwen3-TTS、MioTTS、LuxTTS あたりを見てきた。
その流れで見ると、sarashina2.2-tts は「軽い」「商用利用しやすい」「既存LLMランタイムに乗る」よりも、日本語の発音・スタイル・学習データの出どころを前面に出したモデルに見える。
日本語の話し方サンプルが細かい
モデルカードで目立つのは、単に「日本語対応」と書いて終わっていないところ。
サンプルはナレーション、ニュース読み、会話、カスタマーサービス、落語風の発話まで分かれている。
日本語TTSで困るのは、読みの正確さだけではない。
句読点の間、口語の崩れ方、ニュース原稿っぽい硬さ、電話応対の丁寧さみたいなスタイル差がすぐ耳につく。
sarashina2.2-tts は、そこをモデルカード上の訴求としてかなり明示している。
対応言語は日本語と英語。
英語話者の参照音声から日本語を生成する例、日本語話者の参照音声から英語を生成する例、さらに日本語文の中に英語句が混じるコードスイッチの例も載っている。
日本語だけに閉じた読み上げモデルではなく、日英をまたいだ声質維持を狙っている。
参照音声を3系統に分けて渡す
GitHub リポジトリ のサンプルコードを見ると、生成時には参照音声から複数の特徴を取り出している。
audio_prompt_tokens = generator._extract_audio_prompt_tokens(
audio_prompt_path=audio_prompt_path
)
flow_embedding = generator._extract_zero_shot_embedding(
audio_prompt_path=audio_prompt_path
)
audio_prompt_feat = generator._extract_audio_prompt_feat(
audio_prompt_path=audio_prompt_path
)
そのうえで、生成したいテキスト、参照音声に対応する文字起こし、参照音声のトークン、ゼロショット埋め込み、音響特徴を generate() に渡す。
リファレンス音声をそのまま一つの入力として投げるというより、テキスト内容、話者性、音響特徴を分けて条件づける設計だ。
内部で使っている、または取り込んでいるプロジェクトとして CosyVoice、HiFT-GAN、3D-Speaker、SilentCipher が挙がっている。
CosyVoice 系のTTSパイプライン、話者埋め込み、ボコーダー、生成音声の不可聴ウォーターマークが組み合わさっていると見ると理解しやすい。
ウォーターマークはデフォルトで埋め込まれる。
README には、生成音声には SilentCipher による不可聴ウォーターマークが入り、削除や無効化をしないように書かれている。
ボイスクローン系のモデルでは、この手の透かしが最初からREADMEに出てくるかどうかも運用上の差になる。
ローカル実行はGPU前提寄り
セットアップは通常の Python パッケージとして入れられる。
git clone https://github.com/sbintuitions/sarashina2.2-tts.git
cd sarashina2.2-tts
python -m venv venv
source venv/bin/activate
pip install -e .
python server/gradio_app.py
vLLM を使う場合は pip install -e ".[vllm]" で追加し、python server/gradio_app.py --use-vllm を起動する。
Docker も用意されていて、Transformers backend の標準イメージは「VRAM 約6GBのGPUでも動く」ことを狙った構成になっている。
vLLM 版は高速化・高スループット向けだが、README ではより多いVRAMが必要とされている。
Hugging Face の Inference Provider には現時点で載っていない。
ブラウザでモデルページを開いて即API利用、という状態ではない。
試すならGitHubのWeb UIかDockerを使い、初回にHugging Faceからモデルを落とす流れになる。
Qwen3-TTSやMioTTSとは軸が違う
既存のローカルTTS記事と並べると、sarashina2.2-tts の立ち位置はわりとはっきりする。
| モデル | 強い軸 | 日本語 | ボイスクローン | ライセンス面 |
|---|---|---|---|---|
| Qwen3-TTS | pipで入る手軽さ、プリセット音声、自然言語での声デザイン | 対応 | 対応 | Apache 2.0 |
| MioTTS | GGUF、llama.cpp、Ollama、vLLMなどLLM推論基盤への寄せ方 | 対応 | 設計上は限定的 | モデルごとに異なる |
| LuxTTS | 1GB VRAMと高速推論 | 弱め | 対応 | Apache 2.0 |
| sarashina2.2-tts | 日本語中心の発話スタイル、日英またぎ、学習データの出どころ | 中心 | 対応 | 非商用 |
Qwen3-TTS は、アプリやプロダクトに組み込む候補として扱いやすい。
MioTTS は、TTSをLLM推論基盤に寄せる実験として面白い。
LuxTTS は、軽さと速度に振り切っている。
sarashina2.2-tts は、そのどれとも少し違う。
日本語の自然さとゼロショット声質転写を見たいなら気になるが、商用利用や軽量配布を前提にするとすぐ制約に当たる。
非商用ライセンスとデータ説明
ライセンスは Sarashina Model NonCommercial License Agreement。
モデルの商用利用は禁じられていて、商用利用したい場合は SB Intuitions に問い合わせる形になる。
Hugging Face のモデルカードでは、ページ上の音声サンプルも研究目的であり、再配布や商用利用はできないとされている。
一方で、ライセンス本文では、モデルの出力データについて SB Intuitions は権利を主張しない、という趣旨の記述もある。
ただしモデル自体は非商用なので、生成物をどう扱えるかは「出力の権利」と「モデル利用条件」を分けて読む必要がある。
学習データについては、正当に購入した音声ソース、公開音声アーカイブ、国内法に従って収集したデータを使い、robots.txt や利用規約を守ったと説明している。
TTSでは「誰の声を何から学習したか」がモデル評価と同じくらい問題になりやすいので、この説明を前に出しているのは重要だ。
まだ判断できないところ
独立したベンチマークや第三者評価は、少なくともモデルカードとREADME上では見当たらなかった。
サンプル音声はかなり参考になるが、長文読み上げ、未知固有名詞、数字・記号混じり、方言寄りの口語、ノイズのある参照音声でどこまで安定するかは別問題になる。
Apple Silicon やCPUでの現実的な速度もまだ読みづらい。
0.8B params なので巨大モデルではないが、TTSはLLM本体だけでなく音声特徴抽出やボコーダー側も効いてくる。
手元のMacで雑に動かして実用速度、という期待を置くより、まずはCUDA GPU前提で見たほうが安全だ。
日本語TTSは、英語中心モデルの「日本語も一応出る」と、日本語ネイティブの読み上げに耐えるモデルの差がかなり大きい。
sarashina2.2-tts はその差を正面から取りに行ったモデルなので、非商用でも試す価値はある。
商用プロダクト候補というより、いまの日本語ゼロショットTTSの上限を聴くための比較対象として置きたい。