VITS ベースの音声変換フレームワーク RVC-Project/Retrieval-based-Voice-Conversion-WebUI のフォークです。Windows 環境でのリアルタイム VC に特化し、WinUI 3 ネイティブ GUI と FastAPI バックエンドを追加しています。ライセンスは上流と同じ MIT を維持しています。
Releases ページから最新の RvcRealtimeGui-Setup-<Version>.exe をダウンロードしてインストールが可能です。
uv コマンドと、ffmpeg をあらかじめインストールし、パスを通しておく必要があります。
RvcRealtimeGui-Setup-<Version>.exeを実行してインストール- 初回起動時に Python 仮想環境 (
.venv) がuv syncにより自動構築 - 「事前学習モデルの取得」の節を参考にモデルを配置
- パッケージ管理を uv に移行:
requirements*.txt/ Poetry を廃止し、pyproject.tomlに一本化 - Python 3.10 に固定:
fairseq/pkg_resourcesまわりの非互換を回避 - WinUI 3 デスクトップアプリ
RvcRealtimeGui/を追加: ネイティブ Windows UI からリアルタイム VC を制御 - FastAPI サーバ
api_gui.pyを追加: WinUI 3 アプリとの連携用 HTTP/WebSocket バックエンド
- Windows 10 / 11
- uv インストール済み
- NVIDIA GPU + CUDA 12.x ドライバ(
nvidia-smiで確認) ffmpeg/ffprobeが PATH に通っていること- WinUI 3 アプリをビルドする場合は .NET SDK(
RvcRealtimeGui/RvcRealtimeGui.csprojのTargetFrameworkを参照)
uv sync --extra nvidiaPython 3.10 の仮想環境 (.venv) が作成され、依存パッケージがインストールされます。
| 環境 | コマンド |
|---|---|
| NVIDIA CUDA(デフォルト) | uv sync --extra nvidia |
| Intel DirectML(AMD / Intel iGPU) | uv sync --extra dml |
以下のファイルを手動で配置してください。
| ファイル | 配置先 | 入手先 |
|---|---|---|
hubert_base.pt |
assets/hubert/ |
lj1995/VoiceConversionWebUI |
rmvpe.pt |
assets/rmvpe/ |
rmvpe.pt |
| pretrained モデル | assets/pretrained/, assets/pretrained_v2/ |
同上 |
変換対象の .pth |
assets/weights/ |
自分で学習したもの |
インデックス .index |
任意の場所 | 自分で構築したもの(任意) |
ffmpeg.exe と ffprobe.exe を PATH に通すか、リポジトリルートに置きます。
アプリ内の「サーバー起動」ボタンを押すと api_gui.py が自動起動します。手動で起動する場合:
# FastAPI サーバ(http://127.0.0.1:6242)
uv run python api_gui.py
# WinUI 3 アプリ
dotnet run --project RvcRealtimeGuiWinUI 3 アプリは /hostapis、/devices、/config、/start、/stop、/status、/metrics(WebSocket)を通じてリアルタイム VC を制御します。学習パイプライン(/train/*)、UVR5 ボーカル分離(/uvr/*)、モデルマージ/情報表示/変更/抽出(/model/*)も同じ FastAPI サーバーが提供し、WinUI3 アプリの「モデル調整モード」(ModelTuningPage)から操作します。
WinUI 3 アプリ単体(自己完結ビルド)を配布する NSIS インストーラーを作成できます。Python 環境やモデルは含まれないため、別途 uv sync とモデル配置が必要です。
前提条件
- .NET SDK(
RvcRealtimeGui/RvcRealtimeGui.csprojのTargetFrameworkを参照) - NSIS(
makensis.exe)choco install nsis -y
ビルド
./installer/build.ps1 -Version 1.0.0installer/RvcRealtimeGui-Setup-<Version>.exe が生成されます。スクリプト本体は installer/RvcRealtimeGui.nsi。
タグ push (v*) 時には同じ手順が GitHub Actions 上で自動実行され、GitHub Release にインストーラーが添付されます(.github/workflows/release.yml)。
- モデル (.pth) と インデックス (.index) のパスを指定
- オーディオデバイス(入力マイク・出力先)を選択
- サーバー起動 ボタンで
api_gui.pyを起動 - 音声変換 開始 ボタンで変換を開始
主な設定項目:
| 項目 | 内容 |
|---|---|
| 音高 (transpose) | 半音単位。男声→女声なら +12 程度 |
| F0 推定方法 | rmvpe 推奨 |
| インデックス強度 | 0〜1。高いほど学習音色に寄る |
| バッファ長 / クロスフェード / 追加時間 | レイテンシと品質のトレードオフ |
| パス | 役割 |
|---|---|
api_gui.py |
WinUI 3 連携用 FastAPI サーバ |
RvcRealtimeGui/ |
WinUI 3 デスクトップアプリ(C# / XAML) |
infer/lib/rtrvc.py |
リアルタイム VC コア |
infer/lib/rmvpe.py |
RMVPE F0 推定 |
infer/lib/jit/ |
HuBERT / Synthesizer JIT ローダ |
infer/lib/infer_pack/ |
VITS Synthesizer 本体 |
tools/torchgate/ |
ノイズゲート |
configs/ |
モデル設定 JSON(v1: 256dim, v2: 768dim) |
| 症状 | 対処 |
|---|---|
No supported Nvidia GPU found |
nvidia-smi でドライバ確認 |
numpy.dtype size changed |
NumPy 2.x と pyworld の非互換。pyproject.toml で numpy<2.0 を維持 |
UnpicklingError: Weights only load failed |
PyTorch 2.6+ の torch.load デフォルト変更。configs/config.py でモンキーパッチ済み |
| CUDA が認識されない | uv run python -c "import torch; print(torch.cuda.is_available())" で確認後、uv sync --extra nvidia を再実行 |
MIT License。詳細は LICENSE を参照。
このリポジトリは RVC-Project/Retrieval-based-Voice-Conversion-WebUI のフォークです。
- Retrieval-based-Voice-Conversion-WebUI(上流)
- ContentVec
- VITS
- HIFIGAN
- FFmpeg
- RMVPE(事前学習モデルは yxlllc と RVC-Boss によるもの)
