🔬

GPT-SoVITS 実践分析

Pre-trainingとFine-tuningが実際のコードでどう動作するか

GPT-SoVITSは1分分の音声だけで話者の声を複製できるオープンソースFew-shot TTSシステムです。2段階パイプラインで構成されています。

Stage 1 — GPT(Text-to-Semantic): テキストと参照音声を入力してSemantic Token(意味トークン)を生成します。24層Transformerで、自己回帰(autoregressive)方式でトークンを一つずつ予測します。核心はCN-HuBERT(自己教師あり学習SSLモデル)が抽出したsemantic tokenを予測ターゲットとして使用することです。

Stage 2 — SoVITS(Semantic-to-Audio): Semantic Tokenを実際のオーディオ波形に変換します。VITSアーキテクチャベースで、VQ(Vector Quantization)コードブック + Flowモデル + HiFi-GANデコーダーで構成されます。

Pre-trainingで学習されるもの:

  • CN-HuBERT: 2,000〜5,000時間の多話者データで音声の意味表現を学習(SSL)

  • Chinese-RoBERTa: テキストのBERT特徴抽出器(別途事前学習)

  • SoVITS VQコードブック: 多話者データで汎用音声コードブックを学習

  • GPTモデル: 多話者データでテキスト→semantic tokenマッピングを学習

Fine-tuningで行うこと:

  • ユーザーが1分の音声 + テキストを提供

  • データ前処理: 音素抽出、BERT/SSL/Semanticトークン抽出

  • s1_train.py: GPTモデルを対象話者データで20エポック学習(lr=0.01)

  • s2_train.py: SoVITSモデルを対象話者データで〜100エポック学習(lr=0.0001)

  • v3ではCFMモジュールにLoRA(rank=32)を適用して効率的な微調整

キーコンセプト

1

Pre-training ① CN-HuBERT: 数千時間の音声データで自己教師あり学習 → 音声のsemantic表現を学習

2

Pre-training ② SoVITS VQ: 多話者データで汎用音声コードブック学習 → semantic↔acousticマッピング

3

Pre-training ③ GPTモデル: 多話者データでテキスト→semantic token自己回帰生成を学習

4

Fine-tuningデータ準備: 1分音声 → 音素(phoneme)、BERT特徴、SSL特徴、semantic token抽出

5

Fine-tuning ① s1_train.py: GPTモデルを対象話者データで20エポック学習(lr=0.01)

6

Fine-tuning ② s2_train.py: SoVITSモデルを対象話者データで〜100エポック学習(lr=0.0001)

7

推論: テキスト → GPTがsemantic tokenを生成 → SoVITSが対象話者の音声波形に変換

メリット

  • 1分のデータだけで高品質な音声複製
  • オープンソース — コード分析とカスタマイズが可能
  • 2段階パイプラインで各段階を独立最適化
  • v3でLoRAサポート → Fine-tuning効率向上
  • Pre-training/Fine-tuningの概念を実践で理解可能

デメリット

  • Pre-trainedモデルの品質に依存
  • 中国語中心の事前学習 → 他の言語で性能低下の可能性
  • GPU必要(Fine-tuningにVRAM 6GB+)
  • 音声ディープフェイク悪用のリスク

ユースケース

1分の音声で話者の声を複製 多言語TTS(韓国語、日本語、英語、中国語) オーディオブック/ポッドキャストの自動生成 AI音声アシスタントのカスタマイズ ゲーム/アニメーションの吹き替え