【Voice Conversion】So‑VITS‑SVC 4.1 Stable 実行メモ

Voice Conversion(VC,声質変換 は、元の話者が発話した内容を保持したまま、声質だけを別人のものへ変換する技術です。本ガイドでは、高品質な非リアルタイム VC を実現するために、 So‑VITS‑SVC を初めて触る方でも再現できるように詳細かつステップバイステップで解説します。

はるか
はるか
声質だけを変える技術。VCっていう。
ふゅか
ふゅか
中身はそのままで、声だけ別人になるんだよね!すごい時代だなぁ~。

1. So‑VITS‑SVC とは?

  • SoftVC(HuBERT による音響特徴抽出)と VITS(TTS モデル)を統合したフレームワーク。
  • 歌声・話し声の双方で高い自然性を実現。
  • 入力:変換したい音声(話者 A)
    参照:目標声(話者 B)
    出力:話者 B の声質で話者 A の内容を再合成。
  • 2025 年 4 月時点で最も安定しているリリースは v4.1‑Stable。実験的な音質向上や高速化を狙った v5.0 系

依存関係の問題で

    PyYAML (>=5.1.*)
            ~~~~~~^
Please use pip<24.1 if you need to use this version.

と表示される可能性があります。この場合、pipのバージョンを下げてみましょう。

pip install "pip<24.1"

このコマンドを実行後に、ERROR: To modify pip, please run the following command:といわれるので、表示された次の行のコマンドを実行してください。

ふゅか
ふゅか
SoftVCとVITSを組み合わせたフレームワークなんだって!すごく自然な声になるみたい!
はるか
はるか
入力音声と参照音声、両方使う。自然な合成できる。

2. 環境構築手順(Windows + Anaconda)

# v4.1-Stable を例に
git clone https://github.com/svc-develop-team/so-vits-svc.git
cd so-vits-svc
conda create -n svc python=3.9 -y
conda activate svc
pip install -r requirements.txt

4.1と4.0の使い方は全然違うので気を付けましょう。

3. データセット準備

3.1. 参照音声(目標声)の収録ガイド

静かな部屋で、同じマイク・同じ距離を保ち 24‑bit/48 kHz で録音。

バックグラウンドミュージックやリバーブは避ける。

3.2. 変換元音声

実際に変換したい朗読や対話音声(フォーマット自由だが WAV 推奨)。

3.3. フォルダ構成例

dataset_raw/
└── my_speaker/
    ├── ref_0001.wav
    ├── ref_0002.wav
    └── ...

my_speakerに音声を保存。my_speakerのフォルダ名は自由。

4. 学習ワークフロー

4.1. contentvec

speech encoderというものを特徴抽出で利用するので、Githubを見てください。

hubertというフォルダに配置してください。

4.2. config.json

configs/config.jsonで学習時の設定を行うことができます。設定例は次のようになります。

  "train": {
    "log_interval": 200,
    "eval_interval": 800,
    "seed": 1234,
    "epochs": 10000,
    "learning_rate": 0.0001,
    "betas": [
      0.8,
      0.99
    ],

4.3.  学習

# (1) 音声の切り出し・正規化
python resample.py
# (2)hubert と f0の生成
python preprocess_hubert_f0.py --f0_predictor dio
# (3) モデル学習
python train.py -c configs/config.json -m my_speaker

この部分の実行ファイルのパスが、4.1と4.0で全然違うので注意が必要です。

5. 推論ワークフロー

python inference_main.py -m "logs/44k/G_100000.pth" \
 -c "configs/config.json" \
-n "input/src.wav" \
-t 0 \
-s "my_speaker" -a

 

注意点

  • resultsというフォルダに音声が生成されます。
  • 入力音声はrawフォルダに入っている必要がある。

 

 

PR