VITS:オープンソース TTS の大きな一角を静かに支えるアーキテクチャ
テキストと録音を、聴ける作品に
ナレーション、ステム分離、カバー、効果音を、ブラウザだけで。
- テキスト読み上げも、ボイスクローンも
- ステムを分離、またはカバーを生成
- 登録して試聴。聴いてから決められる
よく知られたオープンソース音声モデルの多くは、ほとんどのユーザーが気づかないまま、実は同じ祖先を共有しています。Piper の ONNX 音声、MeloTTS の多言語バックボーン、YourTTS の話者条件付きクローン、そして GPT-SoVITS の SoVITS 側は、すべてこのページで扱うアーキテクチャの上に直接構築されています。VITS は、単一段階の並列生成モデルが従来の二段階パイプラインの品質に本当に匹敵できることを証明した、古典的なエンドツーエンド TTS システムです。その証明こそが、現在のオープンソース TTS エコシステムの非常に多くの部分が今なお VITS にさかのぼる理由です。
VITS とは?
VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)は、Kakao Enterprise の Jaehyeon Kim、Jungil Kong、Juhee Son によって発表され、ICML 2021 で公開されました。入力テキスト列から単一段階で波形を直接予測するエンドツーエンド音声合成モデルで、MIT ライセンスの下でリリースされています。VITS 以前にも、単一段階での学習と並列サンプリングが可能なエンドツーエンドモデルは存在しましたが、その出力品質は、一つの独立して学習された音響モデルから別の独立して学習されたボコーダーへ渡す二段階システムに一貫して及びませんでした。VITS はその差を直接埋め、公式評価では LJSpeech データセットを用いた平均オピニオン評点で、公開されていた最も強力な二段階モデルを上回りました。
VITS の機能上の利点
- 真のエンドツーエンド。 テキストを入力すると波形が出力され、別途学習されたボコーダー段階を管理する必要がありません。これは、VITS が上回るために設計された二段階パイプラインと比べて、アーキテクチャを本当に簡素化しています。
- 並列・非自己回帰生成。 VITS は音声を token ごとに順次生成しないため、自己回帰型の代替手法と比べて推論が高速です。
- 確率的継続時間予測器。 同じ入力テキストでも、常に同一の決定論的な結果になるのではなく、生成ごとに異なる妥当なリズムやテンポで表現できます。
- 二段階システムに対抗できる品質が、単一話者(LJSpeech)と複数話者(VCTK)の両ベンチマークにおける平均オピニオン評点で検証されています。
- 話者埋め込みによるネイティブな複数話者対応を備え、複数話者の場合だけ根本的に異なるアーキテクチャを必要としません。
- 寛容な MIT ライセンスに加え、分野内での存在感が十分に大きかったため、その後の多くのプロジェクトは音響アーキテクチャを一から作るのではなく、VITS を土台として直接構築するようになりました。
内部の仕組み:条件付き VAE アーキテクチャ
VITS は、連携して動作する三つの要素、すなわち事後エンコーダー、デコーダー、条件付き事前分布から成る条件付き変分オートエンコーダーとして構成されています。条件付き事前分布では、Transformer ベースのテキストエンコーダーと正規化フローのカップリング層のスタックが連携し、入力テキストからスペクトログラムベースの音響特徴をモデル化します。その後、デコーダーは転置畳み込み層のスタックを通じて実際の波形を再構成します。これは、HiFi-GAN を真に独立した後段として必要とするのではなく、HiFi-GAN ボコーダーと似た設計思想に従っています。
この組み合わせがこれほど有効に機能する理由は学習方法にあります。正規化フローで強化した変分推論と、GAN 系の手法から取り入れた敵対的学習プロセスを組み合わせることで、基盤となる生成モデルの表現力を、標準的な VAE 単独で通常達成できる範囲を超えて高めています。
確率的継続時間予測器
これは VITS で最も特徴的な設計上の選択であり、それ以前の多くの TTS システムが抱えていた現実的な制約に対処しています。同じ文を実際の人が二度話しても、タイミングとリズムは毎回まったく同じにはなりません。VITS は確率的継続時間予測器によってこれを直接モデル化し、潜在変数の不確実性モデリングを用いて、同じ入力テキストから本当に多様なリズムの音声を合成します。文脈に関係なく各音素に一つの決定論的な継続時間を強制するわけではありません。これによって VITS の出力は自然な一対多の性質を持ちます。一つのテキストから、テンポの異なる複数の妥当な表現が得られ、実際の話し言葉の振る舞いと一致します。
VITS を始める
- Hugging Face から Kakao Enterprise の公式事前学習済みチェックポイントを取得する。
kakao-enterprise/vits-ljsは LJ Speech で学習された単一話者モデル、kakao-enterprise/vits-vctkは VCTK データセットで学習された複数話者モデル(109 人の話者、さまざまな英語アクセント)です。一貫した一つの音声が必要か、複数の話者が必要かに応じて選んでください。 - 最も簡単にセットアップするには Hugging Face Transformers 連携を使う。 VITS は
transformersライブラリのVitsModelとVitsTokenizerクラスで直接サポートされています。from transformers import VitsModel, VitsTokenizerに続いて、どちらかのチェックポイントを名前で読み込めば、独立したボコーダーを設定することなく、数行で推論を始められます。 - 学習やファインチューニングを行うなら、元の
jaywalnut310/vitsGitHub リポジトリを使う。 これは論文著者による公式のリファレンス実装であり、多くの派生プロジェクト(Piper、YourTTS など)が、それぞれの具体的な用途に VITS を適応させる際の出発点としたものです。 - 自分で学習する前に、言語やデータセットに特化したコミュニティのチェックポイントを探す。 VITS はコミュニティによって多くの言語やデータセットで広く再学習されているため、Hugging Face で対象言語の既存チェックポイントを探すほうが、一から学習するより速い場合がよくあります。
VITS の系譜:実際に何がその上に構築されているのか
Piper は、VITS ベースのモデルに ONNX エクスポートと espeak-ng による音素化を組み合わせ、CPU のみで動作する超軽量なエッジ展開を実現しています。MeloTTS は特に VITS と VITS2 を土台とし、韻律を改善するために BERT ベースの言語特徴を重ねています。YourTTS は専用の話者エンコーダーと Speaker Consistency Loss で VITS の基盤を変更し、ゼロショットの複数話者機能と音声変換機能を追加しています。GPT-SoVITS は、ハイブリッドパイプラインの音響・音声変換側に VITS ベースのシステム(名称の「SoVITS」の部分)を使い、意味モデリング用の GPT ベースコンポーネントと組み合わせています。これらはどれも VITS のコピーではありません。それぞれが同じコアアーキテクチャを採用し、具体的かつ異なる目的に合わせて変更しています。このような適応力こそ、アーキテクチャを真に基盤的なものにする性質です。
より良い結果を得るためのヒント
- 一貫した一つの音声には LJSpeech チェックポイント、複数話者には VCTK を使う。 プロジェクトで実際に必要な話者要件にどちらが合うかを確認せず、片方をデフォルトで選ばないでください。
- 生成ごとの自然な違いはバグではなく、想定されたものと考える。 確率的継続時間予測器があるため、VITS で同じテキストを複数回生成すると、毎回テンポがわずかに異なります。これはアーキテクチャが設計どおりに動いている結果であり、デバッグすべき不整合ではありません。
- 基本的な TTS より具体的な要件があるなら、まず派生プロジェクトを見る。 音声クローン、極端に軽量な展開、中国語に特化したチューニングが必要な場合、VITS の直接的な派生モデル(YourTTS、Piper、GPT-SoVITS)のいずれかが、ベースアーキテクチャを自分で適応させるよりも、その具体的な問題をすでにうまく解決している可能性があります。
- 学習効率と品質向上がプロジェクトで重要なら VITS2 を確認する。 Kong らは、敵対的学習とアーキテクチャの改良によって、初代よりも品質と効率を高めることに特化した直接の後継モデルを発表しました。
VITS、VITS2、フローマッチングの代替手法を比較
| VITS | VITS2 | F5-TTS | |
|---|---|---|---|
| コア手法 | 条件付き VAE + 正規化フロー + 敵対的学習 | 同じ基盤、改良されたアーキテクチャと学習 | Diffusion Transformer + 条件付きフローマッチング |
| 生成方式 | 非自己回帰、並列 | 非自己回帰、並列 | 非自己回帰 |
| 継続時間モデリング | 確率的継続時間予測器 | 改良された継続時間モデリング | 明示的な継続時間モデルなし |
| 公開年 | 2021 | 2023 | 2024 |
| ライセンス | MIT | 実装ごとに確認 | CC-BY-NC(非商用) |
| 派生モデルのエコシステム | 非常に大規模 | より小規模で新しい | 成長中の、より新しいパラダイム |
VITS が長く重要であり続ける理由は、それ自体が今なお最先端だからではありません。生のベンチマーク数値では、すでに複数の新しいアーキテクチャが上回っています。重要なのは、そのコア設計が十分に大きな影響力と適応性を持つことを証明し、現在実際に利用されているオープンソース TTS ツールの相当な割合を支える、文字どおりの基盤になった点です。
よくある質問
VITS を今でも直接使う価値はありますか。それとも派生モデルを使うべきですか?
一般的な研究や、単純な単一話者・複数話者 TTS の用途には、VITS の基本チェックポイントが今も有力です。音声クローン、極端に軽量な展開、言語固有のチューニングといった、より具体的な要件には、その派生モデル(YourTTS、Piper、MeloTTS、GPT-SoVITS)のいずれかが、通常はその目的に合わせてすでにアーキテクチャを適応させています。
VITS と VITS2 の違いは何ですか?
VITS2 は一部共通する著者による直接の後継モデルで、同じ条件付き VAE の中核思想を保ちながら、敵対的学習の改良とアーキテクチャ変更を通じて、初代よりも品質と学習効率を高めることを特に目指しています。
同じテキストでも VITS の出力が毎回少し違って聞こえるのはなぜですか?
これは意図された挙動で、確率的継続時間予測器によるものです。この予測器は、テキストと音声の間にある自然な一対多の関係をモデル化します。同じ文でも異なる妥当なリズムやテンポで話せるため、VITS は毎回同一の出力を強制せず、その違いを意図的に反映します。
VITS は商用でも無料で使えますか?
はい。元の VITS は、より寛容な選択肢の一つである MIT ライセンスの下でリリースされています。ただし、特定の派生モデルやコミュニティが学習したチェックポイントを使用する場合は、そのプロジェクト独自のライセンスを別途確認してください。ベースモデルの条件と異なる場合があります。
VITS は複数話者に対応していますか?
はい。話者埋め込みによって対応します。公式の kakao-enterprise/vits-vctk チェックポイントがこれを直接示しており、さまざまな英語アクセントを持つ 109 人の話者で学習されています。
Echoraでテキストを音声に変換
テキストから一人の話者による音声を作る同様のワークフローをブラウザで利用したい場合は、Echoraのテキスト読み上げを使えます。最大5,000文字を入力し、内蔵音声または保存したカスタム音声を選び、必要に応じて対応している話し方タグを追加して安定性を調整できます。生成結果はプレビューしてMP3でダウンロードできます。