この記事のポイント
- so-vits-svc は Ubuntu 22.04 LTS で動作します。Python 3.10(
3.10.12-1~22.04.15)・git・ffmpeg・libsndfile1-dev の4パッケージが apt 公式リポジトリで揃います(実測済み) - Ubuntu 24.04 LTS は Python 3.12 がデフォルトのため、
deadsnakesPPA で Python 3.10 を別途インストールする必要があります - 歌声変換の「推論」だけなら VRAM 2〜4GB でも動作しますが、話者モデルの「学習(fine-tune)」には VRAM 6GB 以上の NVIDIA GPU が必須です
- so-vits-svc には Gradio ベースの WebUI が付属しており、ブラウザで音声ファイルをアップロードして変換できます
- 本記事は
ubuntu:22.04Docker 公式イメージで実際にコマンドを実行し、パッケージバージョンを実測しています(2026-06-21 計測)
so-vits-svc(SoftVC VITS Singing Voice Conversion)は、
ある人物の声のサンプルを学習させて、任意の歌声を「その人の声」に変換するオープンソースモデルです。
AI カバー曲として SNS で流通しているものの多くが、このモデル(またはその派生)を使っています。
Ubuntu 上でセットアップするには Python 3.10 と CUDA 環境が必要です。
正直なところ、依存の多さと GPU 要件のハードルが高くて詰まる人が多いです。
この記事では、実際に Ubuntu 22.04 の Docker コンテナでパッケージを確認しながら、
つまずきやすい箇所を重点的に解説します。

so-vits-svc とは
so-vits-svc は「Soft VC(Voice Conversion)」と呼ばれる技術をベースにした歌声変換モデルです。
元来は VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)を
歌声変換に応用したもので、2022〜2023年に爆発的に広まりました。
仕組みをざっくり説明すると、
- 話者(変換先の声の主)の音声サンプルを収集する
- その音声から「声の特徴(話者埋め込み)」をモデルに覚え込ませる(学習)
- 入力音声(原曲の歌声など)から音程・フォルマントを抽出し、話者の声質に置き換えて出力する(推論)
2026年現在、メインリポジトリは svc-develop-team/so-vits-svc(GitHub)の
4.1-Stable ブランチです。
これより古い 3.0 系や 4.0 系とは依存関係が大きく異なるため、
古い記事の手順をそのまま使うと詰まります。
著作権・肖像権に注意
実在するアーティストや声優の声を無断で学習・公開するのは著作権・肖像権の侵害になる可能性があります。本記事の手順は個人の学習・実験目的を前提としています。生成物の取り扱いは各自の責任のもとで行ってください。
動作環境と必要スペック
まず「どのハードウェアが必要か」を整理します。
推論(変換)だけか、話者モデルを自分で学習するかで要件が変わります。

話者モデルを自前で学習するなら、VRAM 8GB 以上の NVIDIA GPU(RTX 3060 以上)が現実的なラインです。
RTX 3060(12GB)で 5〜10分のサンプル音声を学習させると、数時間〜半日かかります。
推論だけであれば、配布済みの学習済みモデル(有志が公開しているもの)を使えば
VRAM 2〜4GB 程度でも動きます。ただし CPU のみの環境は「動かないことはない」程度で、
30秒の音声を変換するのに数分かかります。実用には向きません。
OS・ソフトウェア要件
| 項目 | 要件 | 推奨 |
|---|---|---|
| OS | Linux / macOS / Windows(WSL2) | Ubuntu 22.04 LTS(本記事の対象) |
| Python | 3.10.x(3.11以上は一部非対応) | 3.10.12(Ubuntu 22.04 apt 標準) |
| GPU | NVIDIA(CUDA 11.7+) | VRAM 8GB 以上推奨 |
| CUDA | 11.7 以上 | CUDA 11.8 / 12.x |
| RAM | 16GB 以上 | 32GB 推奨(学習時) |
| ストレージ | 20GB 以上 | 50GB 以上(モデルが数GB) |
so-vits-svc 4.1 は Python 3.10 に最も最適化されています。
3.11 や 3.12 でも動く場合はありますが、praat-parselmouth など一部ライブラリで
ビルドエラーが出ることが報告されています。Ubuntu 22.04 を使う理由の一つがここです。

Ubuntu 22.04 での環境構築手順
ここから実際の手順です。Ubuntu 22.04 LTS を前提にします。
VPS を借りる場合は Vultr や DigitalOcean の Ubuntu 22.04 テンプレートを選ぶと
この手順がそのまま使えます。
手順1:システムの更新と必要パッケージのインストール
apt-cache policy でパッケージ候補バージョンを確認すると、
Ubuntu 22.04 は python3.10(3.10.12)・git・ffmpeg・libsndfile1-dev
がすべて公式リポジトリで揃っています(実測 2026-06-21)。

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Reading package lists… Done
$ sudo apt install -y python3.10 python3.10-venv python3-pip git ffmpeg libsndfile1-dev
The following NEW packages will be installed:
python3.10 python3.10-venv python3-pip git ffmpeg libsndfile1-dev …
Setting up python3.10 (3.10.12-1~22.04.15) …
Setting up ffmpeg (7:4.4.2-0ubuntu0.22.04.1) …
Setting up libsndfile1-dev (1.0.31-2ubuntu0.2) …
インストール後に Python バージョンを確認します。
Python 3.10.12
$ ffmpeg -version 2>&1 | head -1
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
$ git –version
git version 2.34.1
手順2:NVIDIA ドライバと CUDA Toolkit のインストール
GPU を使う場合は NVIDIA ドライバと CUDA Toolkit が必要です。
ドライバが未インストールなら ubuntu-drivers を使うのが手軽です。
$ sudo ubuntu-drivers autoinstall
nvidia-driver-535 が推奨ドライバとして選択されました
…
$ sudo reboot
$ nvidia-smi
+—————————————————————————–+
| NVIDIA-SMI 535.xx.xx Driver Version: 535.xx.xx CUDA Version: 12.2 |
+—————————————————————————–+
VPS の場合は GPU 付きプランを選ぶ
一般的な VPS インスタンスには GPU が搭載されていません。学習を行う場合は、GPU 付きのプランを選ぶか RunPod・Vast.ai などのクラウド GPU サービスを利用してください。推論だけなら CPU でも動きますが、時間は大幅にかかります。
リポジトリのクローンと設定
手順3:so-vits-svc をクローンする
メインリポジトリの 4.1-Stable ブランチを使います。
main ブランチは開発中の変更が入るため、安定版のブランチを明示してクローンします。
Cloning into ‘so-vits-svc’…
remote: Enumerating objects: 1842, done.
Receiving objects: 100% (1842/1842), 2.31 MiB | 4.1 MiB/s, done.
$ cd so-vits-svc && ls
cluster/ configs/ filelists/ inference/ logs/ models/
preprocess.py requirements.txt train.py inference_main.py webUI.py
手順4:仮想環境の作成と依存のインストール
Python 3.10 の仮想環境を作ってから requirements.txt を入れます。
PyTorch は CUDA バージョンに合わせる必要があるので、ここが一番時間がかかる部分です。
$ source venv/bin/activate
(venv) $
$ pip install –upgrade pip
Successfully installed pip-24.0
$ pip install torch==2.0.1+cu118 torchaudio==2.0.2+cu118 –index-url https://download.pytorch.org/whl/cu118
Collecting torch==2.0.1+cu118 …
Downloading torch-2.0.1+cu118-cp310-cp310-linux_x86_64.whl (2.4 GB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 GB 8.2 MB/s eta 0:00:00
$ pip install -r requirements.txt
Successfully installed librosa-0.9.2 soundfile-0.12.1 praat-parselmouth-0.4.3 …
PyTorch のバージョンは CUDA に合わせる
nvidia-smi で確認した CUDA バージョンに合わせて PyTorch を選んでください。CUDA 11.8 なら cu118、CUDA 12.x なら cu121 などのビルドを使います。バージョンが合わないと torch.cuda.is_available() が False になります。
手順5:事前学習モデルのダウンロード
so-vits-svc の推論(変換)には、声の特徴を抽出する HuBERT の事前学習モデルと
NSF-HiFiGAN のボコーダが必要です。これらは学習・推論の両方で使います。
$ # HuBERT モデル(約 365MB)を公式リポジトリからダウンロード
$ wget -O pretrain/checkpoint_best_legacy_500.pt \
“https://dl.fbaipublicfiles.com/hubert/hubert_base_ls960.pt”
Saving to: ‘pretrain/checkpoint_best_legacy_500.pt’
100%[================================================] 365MB 4.2MB/s in 87s
$ # NSF-HiFiGAN ボコーダ(約 64MB)
$ wget -P pretrain/ “https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt”
音声素材の準備と前処理
データセットのディレクトリ構造
学習用の音声素材は以下のディレクトリ構造で配置します。
話者名は英数字のみ(日本語名は使わない)、
音声ファイルは 44100Hz のモノラル WAV にリサンプリングしておくのが安定します。
└── speaker_name/ ← 話者名(英数字)
├── audio_001.wav ← 10〜30秒 × 複数ファイル
├── audio_002.wav
└── … ← 合計 3〜5分以上が目安
ここが実は一番大変なところです。音声の「クオリティ」が学習結果に直結します。
BGM が混じった音源・エコーのある録音・低ビットレートのファイルは、
そのまま使うと精度が大幅に落ちます。
可能であればアカペラ素材を用意するか、Demucs などのボーカル分離ツールで
伴奏を除去してから使うのが現実的です。
手順6:前処理スクリプトの実行
リサンプリングとスライシングを自動化する前処理スクリプトを実行します。
speaker_name: 127 files found
Generating filelist: dataset/44k/speaker_name/audio_001.wav|0
…
Config saved to configs/44k/config.json
$ python preprocess_hubert_f0.py –f0_predictor dio
Processing: 100%|██████████| 127/127 [04:21<00:00, 0.48it/s]
Preprocessing done.
前処理の完了後、dataset/44k/speaker_name/ 配下に
.pt 形式の特徴量ファイルが生成されます。
これが学習に使われます。
モデルの学習

学習には NVIDIA GPU(VRAM 6GB 以上)が必須です
学習ステップで GPU が使えない環境だと、数日〜数週間かかる可能性があります。ローカルに GPU がない場合は RunPod や Vast.ai などの時間課金のクラウド GPU を借りるのが現実的です。
手順7:学習の開始
設定ファイル(configs/44k/config.json)に話者名と学習パラメータが書かれています。
エポック数はデータ量によりますが、まず 100〜200 エポックで様子を見るのが定石です。
Epoch 1/200: loss=4.2183, g_loss=1.2344
Epoch 2/200: loss=3.8921, g_loss=1.1102
…
Saving checkpoint to logs/44k/G_1000.pth
Epoch 50/200: loss=1.1247, g_loss=0.4381
学習中に生成されるチェックポイント(logs/44k/G_XXXX.pth)を
そのまま推論に使えます。
損失が下がりきったころ(100〜200 エポック付近)のチェックポイントを使うと品質が安定します。
推論(WebUI で歌声変換)
so-vits-svc には Gradio ベースの WebUI が付属しています。
ブラウザから音声ファイルをアップロードして変換結果を試聴できます。

手順8:WebUI の起動
Loading model: logs/44k/G_2000.pth
Running on local URL: http://127.0.0.1:7860
Running on public URL: https://xxxxxxxx.gradio.live
ブラウザで http://127.0.0.1:7860 にアクセスすると WebUI が開きます。
VPS 上で動かしている場合は、SSH ポートフォワーディングを使うか、
--server_name 0.0.0.0 オプションを追加して外部からアクセスします。
# これで localhost:7860 から VPS 上の WebUI にアクセスできます
WebUI では以下の手順で変換を実行します。
- 「Model」タブで学習済みモデル(
G_XXXX.pth)を選択する - 「Inference」タブに変換したい音声ファイル(WAV/MP3)をアップロードする
- 話者名・音程の移調量(Transpose)・変換アルゴリズムを設定して「Convert」を押す
- 変換完了後、出力音声が再生できる状態になります
Transpose は歌声の音程を半音単位でずらすパラメータです。
男声から女声への変換なら +6 前後、女声から男声なら -6 前後が出発点の目安です。
コマンドラインで推論する(WebUI なし)
WebUI を使わずにコマンドラインで変換する場合は inference_main.py を使います。
-m “logs/44k/G_2000.pth” \
-c “configs/44k/config.json” \
-n “input_audio.wav” \
-t 0 \
-s “speaker_name”
100%|██████████| 312/312 [00:47<00:00, 6.6it/s]
Saved: results/input_audio_0key_speaker_name_pm.wav
よくあるエラーと解決策
① ModuleNotFoundError: No module named 'librosa'
仮想環境を有効化せずに実行している場合です。
source venv/bin/activate を実行してから再試行してください。
② RuntimeError: CUDA error: no kernel image is available for execution
インストールした PyTorch の CUDA バージョンと、
実際のドライバ/CUDA Toolkit のバージョンが合っていません。
nvidia-smi で確認した CUDA バージョンに合わせた PyTorch ビルドを再インストールします。
2.0.1+cu118 True
$ nvidia-smi –query-gpu=name –format=csv,noheader
NVIDIA GeForce RTX 3060
③ praat-parselmouth のビルドエラー
Python 3.11 / 3.12 環境で起きやすいエラーです。
Ubuntu 22.04 + Python 3.10.12 の組み合わせに戻すのが最短の解決策です。
どうしても 3.11/3.12 を使いたい場合は praat-parselmouth のバイナリビルドが
提供されているかを PyPI で確認してください。
④ 学習が途中で CUDA out of memory で止まる
バッチサイズを小さくします。configs/44k/config.json の
"batch_size" を 6 → 4 や 2 に変更してから再実行します。
VRAM 6GB なら batch_size 4〜6、8GB なら 8〜12 が目安です。
⑤ Ubuntu 24.04 で apt install python3.10 が見つからない
Ubuntu 24.04 の公式リポジトリには python3.10 が収録されていないため、
deadsnakes PPA を追加する必要があります。
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update && sudo apt install -y python3.10 python3.10-venv
$ python3.10 –version
Python 3.10.14
まとめ
so-vits-svc を Ubuntu 22.04 にセットアップする手順をまとめます。
- Ubuntu 22.04 LTS を使うと、Python 3.10(
3.10.12-1~22.04.15)・ffmpeg・libsndfile1-dev がすべて公式 apt で揃います(実測確認済み) - Ubuntu 24.04 は Python 3.12 がデフォルトのため、
deadsnakesPPA で 3.10 を別途入れる追加手順が必要です - 学習(fine-tune)には VRAM 6GB 以上の NVIDIA GPU が実質必須です。推論だけなら VRAM 2〜4GB でも動きます
- PyTorch は
nvidia-smiで確認した CUDA バージョンに合わせてインストールしないと GPU が認識されません - データセットの音質が変換品質に直結します。BGM 混じりの音源はボーカル分離ツールで事前処理するのが現実的です
GPU なしの VPS で試したい場合は、まず推論だけを試してみる(配布済みモデルを使う)のが低コストな入門です。
本格的に学習したいなら、GPU 付きの VPS か RunPod などのクラウド GPU を一時的に借りるのが現実的なルートです。
VPS 選びで迷っている方は もあわせて参考にしてください。


コメント