【ddPn08 – RVC v2モデル対応版】移行ガイド:RunPodでRVC WebUIを使う方法(要点解説)

【ddPn08 - RVC v2モデル対応版】移行ガイド:RunPodでRVC WebUIを使う方法(要点解説)

 

Table of Contents

RunPod移行ガイド:はじめに

 

【更新状況】

2024年12月24日(火)
記事ページを公開しました。

 

 

この記事では

✔︎ クラウドGPUサービスの「RunPod」を初めて使う方
✔︎ Google ColaboratoryでRVC WebUIを使われていた方

を対象に

・RunPodの導入方法
・RVC WebUIを使うにあたっての「Google Colaboratory」と「RunPod」の操作の違い

などについて解説していきます。
尚、RVC WebUIを初めて使い始める方の場合には、このページの情報で基本的なことを理解した上で、以下のチュートリアル記事

【ddPn08 – RVC v2モデル対応版】RunPod編:日本人のためのRVC WebUIの使い方(設定詳解)

を参照いただくと、RVC WebUIの使い方に対する理解が深まるのではないかと思います。

 

 

【動画で解説】移行ガイド:RunPodでRVC WebUIの使う方法

 

 

【移行ガイド】RunPod編 – RVC WebUIの使い方入門:AIボイスチェンジャー
RVC WebUI with RunPod – AI Voice Changer Tutorial


視聴時間:1時間14分37秒

文字情報だけでは理解しにくい場合などにご活用ください。
一度動画を視聴いただき、手順の全体像のイメージを作ってから、記事の内容に沿って手順をすすめていただけると、つまずきにくいかと思います。

 




 

【動画の内容:移行ガイド – RunPodでRVC WebUIの使い方】

0:00 オープニング
0:39 はじめに
2:39 RunPodでRVC WebUIを実行する手順
3:55 RunPodの登録手順
5:40 RunPodの課金方法
8:30 ポッドの設定
22:04 JupyterLabの起動
25:02 RVC WebUIの起動
42:10 実行コード:RVC WebUIの起動
47:15 RVC WebUIで学習
54:43 RVC WebUIでモデル推論
59:11 聴き比べ:4パターンのRVC WebUI
1:01:37 ディスク容量を管理する方法
1:07:41 ポッドを停止・削除する方法
1:08:59 ディスク容量の変更方法
1:10:09 GPUの数を変更する方法
1:13:08 おわりに

 

 

RunPodでRVC WebUIを実行する手順

 

 

①ファイルのダウンロード:

 

 

ノートブックのファイルをダウンロードされていない方は、以下のページ

ダウンロード:RVC v2モデル – ddPn08版RVC WebUIチュートリアル用のノートブック

のノートブック(ipynbファイル)をダウンロードします。

 

 

②RunPodのウェブサイトへ:

 

 

その後、RunPodに「Login」(ログイン)します。
登録がまだの方は「Sign up・Sign in」(サインアップ・サインイン)します。

 

RunPodのウェブサイトへ:ログイン・サインアップ方法
RunPodのウェブサイトの外観

 

確認時点の情報では、RunPodでは、2024年12月31日までベータ版として「Referral Program」(紹介プログラム)を実施中のようです。
紹介リンクから、新規登録をしていただくと

・Pod(ポッド)利用料の3%のクレジット
* Pod:利用するコンピュータの1単位
* クレジット:RunPodのサービス内のみで使えるお金

が紹介者に還元される仕組みになっています。

 

過去の海外のチュートリアルなどを参照してみると、紹介リンクから新規登録してくださった方にも

・RunPod上で使えるクレジットがいくらか付与される

という情報も見かけましたが、2024年11月時点では、新規登録してくださった方への特典はRunPodの公式サイト上には明記されていませんでしたので、RunPodに問い合わせをしてみました。

 

2024年11月時点で頂いた回答としては

・紹介者のみの特典

ということで、新規登録してくださった方への特典はないとのことでした。
新規登録してくださった方への特典はありませんが、もし、このサイトの運営者の活動をご支援いただける心の器の大きな方は、こちら

RunPod紹介リンク:
RunPod – 子供プログラマー(RehabC – デジタルで、遊ぶ。)の紹介リンク

から新規登録をしていただけますと幸いです。

ご支援いただいたクレジットは、RVC WebUIを起動するためのプログラムの保守・点検や、GPUを活用したRVC WebUIをはじめとした新たなAIプログラムのチュートリアル・コンテンツ作成に向けた検証の際などにご活用させていただきます。

 

また、そういうのはちょっと…
という方は、こちら

RunPodリンク:
RunPod

の通常のRunPodへのリンクや、ご自身で検索したRunPodのページから新規登録をしてみてください。

 

 

③RunPodの登録手順:

 

RunPodへの登録
RunPodへの登録:2パターンあります

 

RunPodへの登録はGoogleアカウントでもできます。

以下は、Eメールアドレスを使った登録方法の手順です。
登録方法は、まず

・Eメールアドレス
・パスワード

を入力後に「Continue」(続ける)をクリックします。

 

画面が以下の表示に変わります。

Eメールの認証:RunPodへの登録
Eメールの認証

 

その後、登録したEメールアドレスに「Sign up Link」(サインアップリンク)が送られてくるので、送られてきたメール内の

・「Sign up to RunPod」(サインアップRunPod)

Sign up to RunPod:RunPodにサインアップ
RunPodにサインアップ

のボタンをクリックすると認証(Verify)されます。

 

認証後に表示される画面の「Terms of Service」(利用規約)画面内にある

・「Terms of Service」(利用規約)

Terms of Service(利用規約)の確認:RunPodへの登録
Terms of Service(利用規約)の確認

のテキストリンク先で利用規約を確認後に

・I have read and agree to the RunPod Terms of Service.
(私はRunPodの利用規約に同意します)

にチェックを入れます。
RunPodのニュースレターの希望有無である

・Subscribe to newsletter for latest news from RunPod.
(RunPodの最新ニュースのニュースレターのメール配信を希望する)

は、お好みに応じてチェックを入れます。
チェックを入れた場合には、ニュースレターが配信されます。

 

チェックができたら「Agree」(同意)をクリックします。

Terms of Service(利用規約):RunPodへの登録
Terms of Service(利用規約)

これで、RunPodへの新規登録は完了です。

 

 

④RunPodへの課金方法:

 

 

クラウドGPUサービスを使うには、RunPodへの課金が必要です。
RunPodは事前支払い制ですので、思いのほか計算量を使い過ぎてしまった場合に意図しない支払いを防げます。

 

課金するには
 
・ダッシュボードの左側の「Billing」(課金)
・ダッシュボード右上の「$0.00」(0ドル)

課金のページへ行く方法:RunPodの使い方
課金のページへ行く方法

などをクリック後に表示される画面の「Add Credit」(クレジットを追加する)の「Amount」(課金金額)の所で課金する金額を入力します。

Amount(課金金額)の所で課金する金額を入力:RunPodの使い方
Amount(課金金額)の所で課金する金額を入力

課金はドル計算で

・最低10ドル

から指定できます。
その後

・Pay with Card(クレジットカード・プリペイドカードで支払いする)

カード支払い:RunPodの使い方
カード支払い

・Pay with Crypto(仮想通貨Cryptoで支払いをする)

仮想通貨「Crypto」で支払い:RunPodの使い方
仮想通貨「Crypto」で支払い

で、支払方法を選択します。

 

クレジットカード・プリペイドカードで支払いする場合には

・Pay with Card(クレジットカード・プリペイドカードで支払いする)

と表示されている状態でボタンをクリックします。
Cryptoという仮想通貨で支払いをする場合には

・Pay with Crypto(仮想通貨Cryptoで支払いをする)

と表示された状態でボタンをクリックします。

 

Pay with Crypto」(仮想通貨Cryptoで支払いをする)を選択した場合の支払いは、Cryptoのアプリ

Cryptoでの支払いはアプリで:RunPodの使い方
Cryptoでの支払いはアプリで行う
CryptoのアプリでQRコードを読み込む:RunPodの使い方
CryptoのアプリでQRコードを読み込む

を介して支払いを行います。

 

Pay with Card」(クレジットカード・プリペイドカードで支払いする)を選択した場合の支払いは「stripe」(ストライプ)というサービスを介して行われます。
通貨を選択」で日本円を選択後に、必要情報を入力後に

・「支払う」
* 両替手数料も含まれるようでした
(2024年10月時点では「2%」の手数料・2024年11月時点では「4%」の手数料)

「stripe」(ストライプ)- 「Pay with Card」(クレジットカード・プリペイドカードで支払いする)の例:RunPodの使い方
「stripe」(ストライプ)- 「Pay with Card」(クレジットカード・プリペイドカードで支払いする)の例

ボタンをクリックします。
カード支払いの場合、「カード保有者の名称」はカードに記載されているローマ字の名前を入力すれば大丈夫でした。
プリペイドカードで支払いを行われる方の注意点としては

・その時点で「100ドル」換算のお金がチャージされていないと拒否される

プリペイドカードでの支払いの注意点:RunPodの使い方
プリペイドカードでの支払いの注意点:100ドルのチャージが必要

ことです。
100ドルのチャージが満たされていないと

・カードが支払い拒否されました。別のカードをお試しください。

と表示されます。
支払日のレートで100ドル換算のお金をチャージした後に支払いをすると課金ができるようでした。

 

「stripe」(ストライプ)で課金成功:RunPodの使い方
「stripe」(ストライプ)で課金成功

 

課金がうまくいけば「Billing」(課金)のページの表示の

・Balance(残高)

に課金額が反映されます。

「Balance」(残高)に課金額が反映:RunPodの使い方
「Balance」(残高)に課金額が反映

これで、RunPodを使うための最低限の準備ができました。
以下に、事前にダウンロードしたノートブックを使ってRVC WebUIを起動するまでの方法を解説していきます。

 

 

⑤RunPodでGPUのコンピュータの構成を設定:

 

 

RunPodでGPUをレンタルするには管理画面の左側の「Pods」をクリック後に表示される画面の

・「+ Deploy」
・「Deploy a Pod」

RunPodでGPUをレンタルする:RunPodの使い方
RunPodでGPUをレンタルする

をクリックします。

 

Select an Instance」(インスタンスの選択)の設定で

・GPU

GPUを選択:RunPodの使い方
GPUを選択

を選択しておきます。

 

次に、「Cloud Type」(クラウドの種類)の選択メニューで

・Secure Cloud(セキュア・クラウド:安全なクラウド)
* 信頼できるパートナーによってT3/T4データセンターで実行。緊密なパートナーシップにより、冗長性、セキュリティ、およびダウンタイムを軽減する高速応答時間を備えた高い信頼性が実現。機密性の高い環境を求める方は、Secure Cloudがお勧め。

「Secure Cloud」(セキュア・クラウド:安全なクラウド)を選択:RunPodの使い方
「Secure Cloud」(セキュア・クラウド)を選択

を選択します。
特に、セキュリティ面を気にされない方は

・Community Cloud(コミュニティ・クラウド)
* RunPodの招待制で、RunPod社の基準を満たした方を採用。電力とネットワークの冗長性はそれほど高くないが、品質と手頃な価格を兼ね備えた優れたサーバーを提供。機密性は求めないが、安価なサーバーを求める方向けのサービス。

の利用も検討してみてください。
また、一部の高性能GPUに限られますが「Global Networking」(グローバル・ネットワーキング)というオプションもあります。
Global Networking」を有効化すると、ポッドの管理画面に「Global Network Hostname: 〜.runpod.internal」(グローバル・ネットワークのホストの名前:〜.runpod.internal)というDNSレコードの項目が追加されます。
同じローカル ネットワーク上にあるかのようにポッドが相互に通信できるようになるとのことです。
説明ページの情報を参考に、ターミナルで試行錯誤してみましたが、使い方はわかりませんでした…

このチュートリアルでは、この機能は使わずに手順を進めていきます。

 

続いて、具体的なGPUを選択していきます。
GPUは「NVIDIA製のGPU」を使います。

一般的にRVC WebUIに必要なGPUとしては

・GPUメモリ(VRAM) 6GB以上

という情報があります。
ただ、これまでに報告されている情報や個人的な経験値を考慮すると、ある程度の「データセットの規模」や「バッチサイズ」で学習させる際には、おそらく

・最低でもGPUメモリは16GB

はないと、現状では厳しいのではないかと推測しています。

【参考例】

1〜3秒の音声ファイル100個で100回学習させた際には
バッチサイズ 20 → GPUメモリの消費量 12GB台
* Google ColaboratoryのGPUメモリ:NVIDIA Tesla T4 16GBの例

 

そのため、チュートリアルでは試しに

・RTX A4000(16 GB VRAM)
* NVIDIA製GPU(Previous gen:前世代)

RTX A4000(16 GB VRAM)を選択(表示は一例):RunPodの使い方
RTX A4000(16 GB VRAM)を選択(表示は一例)

を選択してみます。
GPUに関しては、「データセットの規模」や「バッチサイズ」によって要求される容量が変わりますので、何回か使う中で、個々の方にとっての(コストパフォーマンス的に)最善のGPUを探してみてください。

【参考情報】

RVC v2モデル – ddPn08版RVC WebUIチュートリアル用のノートブック」(「CUDA:11.8」を利用)に対応しているRunPodのGPUの一覧です。

NVIDIA Latest Gen(最新世代のNVIDIAのGPU)
 - LA40S 48GB
 - L40 48GB
 - RTX 6000 Ada 48GB
 - RTX 4090 24GB
 - L4 24GB
 - RTX 4000 Ada 20GB
 - RTX 2000 Ada 16GB

NVIDIA Previous Gen(前世代のNVIDIAのGPU)
 - A100 SXM 80GB
 - A100 PCIe 80GB
 - A40 48GB
 - RTX A6000 48GB
 - RTX A5000 24GB
 - RTX 3090 24GB
 - RTX A4500 20GB
 - RTX A4000 16GB

GPUを選択する際に参考にしてみてください。

 

Configure Deployment」(デプロイの設定)では、はじめに

・Pod Template(ポッドのテンプレート)

を選択します。
RVC v2モデル – ddPn08版RVC WebUIチュートリアル用のノートブック」を使うためには、このサイトの運営者が作成した以下のRunPodのテンプレート

・Ubuntu 22.04 – Python 3.10 – CUDA 11.8 – 30GB
 注:Container Disk 30GB・Volume Disk 30GB:合計 60GB

・Ubuntu 22.04 – Python 3.10 – CUDA 11.8 – 60GB
 注:Container Disk 60GB・Volume Disk 60GB:合計 120GB

・Ubuntu 22.04 – Python 3.10 – CUDA 11.8 – 100GB
 注:Container Disk 100GB・Volume Disk 100GB:合計 200GB

をご活用ください。
RunPodで使えるテンプレートの作成に難渋しましたが、試行錯誤を繰り返すうちに、ようやくオリジナル版のRVC WebUIのための環境を構築できるテンプレートの作成に成功しました。
テンプレートでは「RVC v2モデル – ddPn08版RVC WebUI」を使うためのコンピュータの構成(Linux OS・Python・CUDAバージョンの指定)と、RunPod上でRVC WebUIを使うために必要なポート番号を設定してありますので、テンプレートの選択で間違えないように注意してください。

 

チュートリアルでは

・Ubuntu 22.04 – Python 3.10 – CUDA 11.8 – 30GB

テンプレート選択:Ubuntu 22.04 - Python 3.10 - CUDA 11.8 - 30GB:RunPodの使い方
テンプレート選択:Ubuntu 22.04 – Python 3.10 – CUDA 11.8 – 30GB

を選択しています。

ここで、ディスク容量に関して、違いを理解しにくいかと思いますので、簡単に解説しておきます。

 

Container Disk」(コンテナディスク領域)は一時的な保存領域であり、そこに保存したものはすべてポッドを停止するとリセット(削除)されます。

一方、「Volume Disk」(ボリュームディスク領域)は永続的な保存領域で、ポッドを停止後も保持されます。ポッドを削除するとリセット(削除)されますので、ポッドを削除する前に、必要なファイルなどはローカル環境(自分のパソコンなど)にダウンロードしておいてください。
また、「Network Volume」(ネットワークボリューム)というオプション(別途料金)もあります。

 

暫定的に容量を設定しておきましたが、RVC WebUIを使う中で、必要に応じて容量を変更することもできますので、容量の変更方法に関しては、「RunPodでディスク容量の変更方法」の項目で、後ほど解説させていただきます。

【参考情報】

拡張オプションのダウンロードなしの場合

ddPn08版のRVC v2モデルのRVC WebUIを起動するために必要な容量の目安

・「Container Disk」(コンテナディスク領域:一時保存領域)
2.6GB

・「Volume Disk」(ボリュームディスク領域:永続保存領域)
13GB
*「Volume Disk」は「workspace」フォルダ内の情報が保持される仕組みのようです。

拡張オプションのダウンロードありの場合

ddPn08版のRVC v2モデルのRVC WebUIを起動するために必要な容量の目安

・「Container Disk」(コンテナディスク領域:一時保存領域)
2.6GB

・「Volume Disk」(ボリュームディスク領域:永続保存領域)
16GB

 

GPUを搭載する数を設定する

・GPU Count(GPUの数)

GPU Count - GPU数を指定:RunPodの使い方
GPU Count – GPU数を指定

では、GPU数を指定できます。
チュートリアルでは、「RTX A4000(16 GB VRAM)」のGPUを1つだけ使いますので

・16GB × 1 = 16GB

ということで合計「16GB」のGPUメモリでRVC WebUIを使っています。
割り当てられるコンピュータにもよるようですが、GPUの数に関しても後ほど幾らかは調整できるようでしたので、こちらも後ほど「RunPodでGPUの数を変更する方法」の項目で解説させていただきます。

 

Instance Pricing」(インスタンスの価格)では

On-Demand(オンデマンドプラン)
* 使用者の意思で終了しない限り、基本的に使用中のポッドを使い続けることができるプラン。秒単位で課金されます。

Savings Plan(セービングプラン:お値打ちプラン)
* 所定の期間中(例:1週間分)の料金が一括で要求されますが、24時間使い続ける方の場合には「On-Demand」(オンデマンドプラン)よりはお値打ちになるプラン。

Spot(スポットプラン)
* 余剰分のGPUを安価で使える分、余剰のGPUがなくなった場合に、使用者の意思に反して突然、使用中のポッドが使えなくなることもあるプラン。秒単位で課金されます。

「Instance Pricing」(インスタンスの価格)の各種プラン:RunPodの使い方
「Instance Pricing」(インスタンスの価格)の各種プラン

のプランから選択できます。
チュートリアルでは、コンピュータを使った分だけ、支払いが発生し、安定的に使える

On-Demand(オンデマンドプラン)

を選択していきます。

Spot」(スポットプラン)を試した感じでは、RVC WebUIを起動するための依存関係をインストール中に突然終了してしまうことがありましたので、RVC WebUIを使う方にはお勧めしません。
数分程度でできる、ちょっとした、GPUを使うプログラムを使いたい場合には便利かもしれません。

Savings Plan」(セービングプラン:お値打ちプラン)は、24時間常時プログラムを動かし続けている方にとってはいいかもしれませんが、RVC WebUIを自分で使う分には、「On-Demand」(オンデマンドプラン)が妥当ではないかと思われます。

 

Encrypt Volume」(ボリュームの暗号化)では、ボリュームを暗号化するかどうかを設定できます。
表示される説明を読んでみると

【Encrypt Volumeの説明】

Encrypted volumes provide better data security but will incur a performance penalty and CANNOT be resized later.

日本語訳:
暗号化されたボリュームは、より良いデータセキュリティを提供しますが、パフォーマンスペナルティが発生し、後でサイズを変更することはできません。

「Encrypt Volume」(ボリュームの暗号化)の説明:RunPodの使い方
「Encrypt Volume」(ボリュームの暗号化)の説明

ということのようです。

おそらく「Volume Disk」(ボリュームディスク領域:永続保存領域)のことかと思いますが、チュートリアルでは「この機能はオフ」にしておきます。
RVC WebUIを使う中で、適正なボリュームの容量がわかってきたら必要に応じて再度RVC WebUIの環境を構築し直して、この機能をオンにするといいかもしれません。

注意点として「Encrypt Volume」(ボリュームの暗号化)の「機能をオン」にすると「Pods」の管理画面上で「Volume Disk」(ボリュームディスク領域:永続保存領域)の現在の使用率が表示されなくなるようでした。

コンテナディスク領域の使用率のみ - 「Encrypt Volume」(ボリュームの暗号化)の「機能をオン」:RunPodの使い方
コンテナディスク領域の使用率のみ – 「Encrypt Volume」(ボリュームの暗号化)の「機能をオン」の例

機能をオン」にした場合に、「Volume Disk」(ボリュームディスク領域:永続保存領域)の容量を確認できるコードを【残りのディスク容量の確認方法】の項目に掲載しておきましたので、必要時にご活用ください。

 

ここまでの設定を行うと、最後に以下のサマリー

・Pricing Summary(価格の要約)
・Pod Summary(ポッドの構成の要約)

サマリー:Pricing Summary(価格の要約)・Pod Summary(ポッドの構成の要約)- RunPodの使い方
サマリー:Pricing Summary(価格の要約)・Pod Summary(ポッドの構成の要約)

が確認できます。
確認時点の「Pricing Summary」(価格の要約)では

GPU Cost: $0.32 / hr
Running Pod Disk Cost: $0.008 / hr
Stopped Pod Disk Cost: $0.008 / hr

ということで

・GPU使用量はポッド “起動中” に “1時間あたり0.32ドル” を秒換算で請求
・容量の使用量はポッドの “起動・停止問わず” に “1時間あたり0.008ドル” を秒換算で請求

とのことでした。
注意点としては、容量の使用料金は、事前に設定した容量の確保量

・「Container Disk」(コンテナディスク領域:一時保存領域):30GB
*「Running Pod Disk Cost」(ポッド稼働中の使用料)に反映

・「Volume Disk」(ボリュームディスク領域:永続保存領域):30GB
*「Running Pod Disk Cost」(ポッド稼働中の使用料)「Stopped Pod Disk Cost」(ポッド停止中の使用料)に反映

に依存するという点です。

 

ポッド停止中の料金を支払いたくない場合には、「Volume Disk」(ボリュームディスク領域:永続保存領域)を「0GB」にします。
ただ、今回の「RVC v2モデル – ddPn08版RVC WebUIチュートリアル用のノートブック」では

・「workspace」フォルダ内にRVC WebUI起動用の開発環境を整える

ので「Volume Disk」(ボリュームディスク領域:永続保存領域)を「0GB」にすると

・次回起動時に、再度、1から環境を整える必要

がありますので、用途に応じてどうするか検討してみてください。

 

Volume Disk」(ボリュームディスク領域:永続保存領域)を「30GB」とした場合に

・0.008ドル × 24時間 × 31日 = 5.952ドル/月
* 価格は一例です。

ということで、維持費に月換算で約「6ドル」(一例)かかります。
30GB」を「60GB」に変更した場合には約2倍の維持費になりますので、あまり費用をかけたくない場合には、

・適宜ファイルをローカル環境にダウンロードし、不要となった学習モデルのファイルやログフォルダを削除する

などの対応をするといいかと思います。

RVC v2モデル – ddPn08版RVC WebUIチュートリアル用のノートブック」にも、ファイルやフォルダ削除用の参考コードを「RunPodでディスク容量を管理する方法」の項目に記載しておきましたので、必要な方は適宜ご活用いただけますと幸いです。

 

サマリーを確認し、料金やコンピュータの構成に問題がなければ

・Deploy On-Demand

Deploy On-Demand(デプロイ):RunPodの使い方
Deploy On-Demand(デプロイ)

をクリックし、コンピュータを起動させます。

 

何度か試した範囲では「Pod Summary」(ポッドの構成の要約)

Pod Summary
1x RTX A4000 (16 GB VRAM)
20 GB RAM • 5 vCPU

の情報の一番下の構成「20 GB RAM • 5 vCPU」(一例)が、「Deploy On-Demand」を実行後に変更されることがあるようでしたので、あくまで参考程度に捉えていただくといいかもしれません。

Spot」(スポットプラン)で検証中に経験した例としては、コンピュータのメモリ(上の例では「20 GB RAM」)が「512MB」となった場合には、RVC WebUIの依存関係をインストール中にメモリオーバー(メモリの容量越え)となりRVC WebUIの起動まで到達できないことも経験しました。

On-Demand」(オンデマンドプラン)の場合には、コンピュータのメモリの兼ね合いでRVC WebUIの起動に至らないといったことはありませんでしたので、そいった点からも「Spot」(スポットプラン)ではなく、「On-Demand」(オンデマンドプラン)を利用するのが無難かもしれません。

 

 

⑥RunPodでGPUクラウドに接続:

 

 

先ほどの手順を実施後に、設定した構成でコンピュータが構築されます。

ポッドをビルド中・・・:RunPodの使い方
ポッドをビルド中・・・

処理の経過を確認するには、右端の丸いボタンをクリックします。

処理の経過を確認 - ddPn08 RVC WebUI:RunPodの使い方
処理の経過を確認 – ddPn08 RVC WebUI

準備が完了するまでしばらく待ちます。

ダウンロード中・・・:RunPodの使い方
ダウンロード中・・・

ビルド完了までの時間は、主に、割り当てられたコンピュータの回線の「下り速度」(データ受信の通信速度:ダウンロードに関係)に左右されるようでした。

ビルド完了は回線の下り速度が影響 - ddPn08 RVC WebUI:RunPodの使い方
ビルド完了は回線の下り速度が影響 – ddPn08 RVC WebUI

何回か試した範囲の情報では、今回のコンピュータの構成(Secure Cloud・RTX A4000・On-Demand)の場合には

・2000Mbps(メガビット/秒)
* 8で割るとMB/秒の単位になる

台の回線が割り当てられる傾向がありました。
2000Mbps」あたりだと「4分前後」で処理が完了するようでしたので、準備が完了するまでしばらく待ちます。
稀に「10000Mbps」あたりの下り速度の回線が割り当てられることがありましたが、1分程度で準備ができることもありました。
ただ、RunPod自体やダウンロード先の回線の混み具合なども影響するのか、必ずしも「下り速度」(データ受信の通信速度:ダウンロードに関係)が速いからといって環境構築が速いとは限らないようでした。

 

コンピュータの準備ができたので、GPUクラウドに接続してRVC WebUIを起動していきましょう。

 

 

⑦RunPodでJupyterLabを起動する:

 

 

今回の方法では、RVC WebUIを起動するためには、まずは、JupyterLabを起動する必要があります。
それでは、GPUクラウドに接続して、JupyterLabを起動する手順を一緒にやっていきましょう。

 

GPUクラウドに接続するには

Connect(接続)

「Connect」GPUクラウドに接続 - ddPn08 RVC WebUI:RunPodの使い方
「Connect」GPUクラウドに接続 – ddPn08 RVC WebUI

ボタンをクリックします。
JupyterLabで「RVC v2モデル – ddPn08版RVC WebUIチュートリアル用のノートブック」を使うための「token」(トークン:パスワード)を取得するために、まずは、「Web Terminal」(ターミナル)を起動しておきます。

Web Terminal」(ターミナル)を起動するには

Start Web Terminal(ウェブターミナルを開始)

Start Web Terminal(ウェブターミナルを開始) - ddPn08 RVC WebUI:RunPodの使い方
Start Web Terminal(ウェブターミナルを開始) – ddPn08 RVC WebUI

のボタンをクリックします。
その後、画面に表示される

Connect to Web Terminal(ウェブターミナルに接続)

Connect to Web Terminal(ウェブターミナルに接続)- ddPn08 RVC WebUI:RunPodの使い方
Connect to Web Terminal(ウェブターミナルに接続)- ddPn08 RVC WebUI

のボタンをクリックします。
クリック後に、新規のタブで「Web Terminal」(ターミナル)を使えるようになります。

「Web Terminal」(ターミナル)の準備完了 - ddPn08 RVC WebUI:RunPodの使い方
「Web Terminal」(ターミナル)の準備完了 – ddPn08 RVC WebUI

 

続いて、ノートブックを使えるようにするために、JupyterLabを起動します。
JupyterLabを起動するには

Connect to HTTP Service【Port 8888】(HTTPサービスに接続:ポート 8888)

Connect to HTTP Service【Port 8888】(HTTPサービスに接続:ポート 8888) - ddPn08 RVC WebUI:RunPodの使い方
Connect to HTTP Service【Port 8888】(HTTPサービスに接続:ポート 8888) – ddPn08 RVC WebUI

をクリックします。
クリック後に表示される新規のタブの画面上に表示されている以下のコマンド

コピー&ペースト用コード

jupyter server list
「jupyter server list」をコピー:RunPodの使い方
「jupyter server list」をコピー

をコピーして、先ほど起動しておいた「Web Terminal」(ターミナル)に貼り付け、コードを実行(「enter」キーを押す)します。
コードを実行後に

出力結果:(一例)

[JupyterServerListApp] Currently running servers:
[JupyterServerListApp]http://localhost:8888/?token=2ic9fs16qop11hjzfjib ::
ターミナルでトークンをコピー - ddPn08 RVC WebUI:RunPodの使い方
ターミナルでトークンをコピー – ddPn08 RVC WebUI

などと表示されるので「token=」〜「::」の間の文字をコピーします。
(上記の例では「2ic9fs16qop11hjzfjib」の部分をコピーしています。)

JupyterLabが起動しているタブに戻り、コピーしたトークンを

Password or token:(パスワード または トークン)

コピーしたトークンを入力欄に貼り付けてログイン:RunPodの使い方
コピーしたトークンを入力欄に貼り付けてログイン

の入力欄に貼り付けて「Log in」(ログイン)をクリックします。

JupyterLab起動中・・・:RunPodの使い方
JupyterLab起動中・・・:
JupyterLab起動完了:RunPodの使い方
JupyterLabの起動完了

これで、JupyterLabが起動できました。

 

ここまでの手順、お疲れ様でした。
英語環境の上に初めての作業のため、かなりお疲れではないかと思います。
ここからは、既にGoogle ColaboratoryでRVC WebUIを使ったことがある方であれば、それほど難しくはないかと思いますので、もう少し、お付き合いいただけますと幸いです。

 

 

⑧RunPodでRVC WebUIを起動する:

 

 

まずは、事前にダウンロードしておいたノートブック

・RunPod-v2-RVC-WebUI-ddPn08-Historical-Legacy-for-Japanese-AI-beginners.ipynb

をJupyterLabにアップロードします。
アップロード方法は簡単で

・JupyterLabの左側の枠の中にファイルをドラッグ&ドロップ

JupyterLabにノートブックをアップロード(ドラッグ&ドロップ)- ddPn08 RVC WebUI:RunPodの使い方
JupyterLabにノートブックをアップロード(ドラッグ&ドロップ)- ddPn08 RVC WebUI

するだけです。
JupyterLabを起動直後の環境では

・「workspace」フォルダ

内に、ノートブックのファイルがアップロードされます。
アップロードされたノートブックを開くには

・「ファイルをダブルクリック」または 「ファイルを選択した状態で “enter” キーを押す」

JupyterLabでノートブックを開く:RunPodの使い方
JupyterLabでノートブックを開く

とノートブックを画面上に表示させることができます。

画面上にノートブックを表示 - ddPn08 v2 RVC WebUI:ReuPodの使い方
画面上にノートブックを表示 – ddPn08 v2 RVC WebUI

 

後は、基本的に、ノートブックに記載されている手順を実行していただければ大丈夫です。
ここからは、ポイントを絞って解説していきます。

 

 

【手順0:JupyterLabの日本語化】

 

 

今回指定しているRunPodのテンプレートには、日本人の方が開発環境の操作で困らないように、事前にJupyterLabを日本語化するために必要なファイルをインストールしておきました。
英語の環境のままで大丈夫な方は、ここの手順は飛ばしてください。
個人的には、やはり日本人ですので、日本語にすると安心感があります。

 

JupyterLabを日本語化するには、画面上部の「Settings」(設定)をクリック後に表示される「Language」(言語)の所で

・Japanese(Japan)- 日本語(日本)

JupyterLabの日本語化手順「Japanese(Japan)- 日本語(日本)」を選択

をクリックします。
その後、画面に表示される

・Change interface language?(インターフェイスの言語を変更しますか?)

・Change and reload(言語を変更し再起動する)

「Change and reload」(言語を変更し再起動する)を選択:RunPodの使い方
「Change and reload」(言語を変更し再起動する)を選択

のボタンをクリックします。
未保存の状況など日本語化を実行するタイミングによっては、ページから移動するか?聞かれるので、問題がなければ

・「このページから移動する」

「このページから移動する」をクリック:RunPodの使い方
「このページから移動する」をクリック

をクリックします。
再起動後に、JupyterLabが日本語化されます。

JupyterLabの日本語化 - ddPn08 v2 RVC WebUI:RunPodの使い方
JupyterLabの日本語化 – ddPn08 v2 RVC WebUI

 

JupyterLabの日本語化の設定は、一度ポッドを停止させると、言語の設定がリセットされるようでしたので、ポッドを再度使う際に、一番初めにJupyterLabを日本語化するようにしてみてください。

 

 

【手順1:GPU・各種バージョンの確認】

 

 

ここの手順はコードを実行します。
ここで、Google Colaboratoryとの操作の違いに戸惑う方もいるのではないかと思いますので、以下に解説しておきます。

 

コードを実行するにはJupyterLab上で以下の

実行コードを選択した状態

実行コードを選択した状態 - ddPn08 RVC WebUI:RunPodの使い方
実行コードを選択した状態 – ddPn08 RVC WebUI

ノートブックの画面の上にある「▶︎」(三角マーク)をクリック

コードを選択した状態で「▶︎」をクリック - ddPn08 RVC WebUI:RunPodの使い方
コードを選択した状態で「▶︎」をクリック – ddPn08 RVC WebUI

するか

【Windowsの場合のショートカットキー】「Ctrl」+「enter」キーを押す

【Macの場合のショートカットキー】「command」+「enter」キーを押す

と選択したコードを実行できます。
コードを実行中は、コードが記載されている枠の左上に

[*](アスタリスク)

[*](アスタリスクマーク)コードを実行中 - ddPn08 RVC WebUI:RunPodの使い方
[*](アスタリスクマーク)コードを実行中 – ddPn08 RVC WebUI

が表示されます。
コードの実行が完了すると

[1]

[1]コードの実行完了:RunPodの使い方
[1]コードの実行完了

などとコードを実行した順番を表す数字が表示されます。

 

GPUは「NVIDIA製」(エヌビディア製)のものを選択しておきます。
RunPodのテンプレート「Ubuntu 22.04 – Python 3.10 – CUDA 11.8」を使う場合には、出力結果の表示が

・CUDA:11.8
・cuDNN:8.9.6.50
・Linux OS:Ubuntu 22.04.3 LTS(Jammy Jellyfish:debian)
・Python:3.10.x(2024年12月時点:3.10.12)
・PyTorch:torch 2.0.0+cu118

になるかと思います。

実行コード

# @title 実行コード
# GPUの情報を確認
print("CUDAのバージョン確認")
!nvidia-smi
!nvcc -V
!free -h

print("\n\n")
print("cuDNNのバージョン確認")
!pip show nvidia-cudnn-cu11

print("\n\n")
print("Linux OSのバージョン確認")
# Linuxのバージョン確認
!cat /etc/os-release

print("\n\n")
print("Pythonのバージョン確認")
# Pythonのバージョン確認
!python3 --version

print("\n\n")
print("PyTorchのバージョン確認")
import torch
print('PyTorch' + torch.__version__)

 

出力結果
[1]

CUDAのバージョン確認
Fri Nov  1 13:56:59 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.90.07     Driver Version: 550.90.07      CUDA Version: 12.4              |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA RTX A4000               On  |   00000000:82:00.0 Off |                  Off |
| 41%   30C    P8             13W /  140W |       2MiB /  16376MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
               total        used        free      shared  buff/cache   available
Mem:           440Gi        59Gi       110Gi       121Mi       271Gi       377Gi
Swap:             0B          0B          0B



cuDNNのバージョン確認
Name: nvidia-cudnn-cu12
Version: 8.9.6.50
Summary: cuDNN runtime libraries
Home-page: https://developer.nvidia.com/cuda-zone
Author: Nvidia CUDA Installer Team
Author-email: cuda_installer@nvidia.com
License: NVIDIA Proprietary Software
Location: /usr/local/lib/python3.10/dist-packages
Requires: nvidia-cublas-cu12, nvidia-cuda-nvrtc-cu12
Required-by: 



Linux OSのバージョン確認
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy



Pythonのバージョン確認
Python 3.10.12



PyTorchのバージョン確認
PyTorch2.0.0+cu118

出力結果の右上に表示されている

・「CUDA Version: 12.4

出力結果の右上の表示「CUDA Version」- ddPn08 RVC WebUI:RunPodの使い方
出力結果の右上の表示「CUDA Version」- ddPn08 RVC WebUI

というのは、今回使わせていただいているGPUの

・NVIDIA RTX A4000(16GB)

が対応している

・互換性のある最高バージョンのCUDA
* CUDA(Compute Unified Device Architecture):クーダ
* NVIDIAが開発・提供しているGPU向けの汎用並列コンピューティングプラットフォーム・プログラミングモデル

を示しています。
その他にも、GPUの種類とCUDAバージョンの関係について調べてみると

・GPUの世代によって「互換性のある最低バージョンのCUDA」がある
* アーキテクチャの世代

ということがわかりました。
参考までに、2024年11月時点でRunPod上で表示されているNVIDIA製のGPUを世代ごとに列挙し、互換性のある最低バージョンをあてはめてみると、以下のようになります。

 

【NVIDIA Latest Gen】(最新世代のNVIDIAのGPU)

・アーキテクチャ名:
 Hopper(ホッパー)

・互換性のある最低バージョンのCUDA:
 CUDA 12

・GPU名:
 H100 NVL 94GB
 H100 SXM 80GB
 H100 PCIe 80GB

・アーキテクチャ名:
 Ada Lovelace(エイダ・ラブレス)

・互換性のある最低バージョンのCUDA:
 CUDA 11.8

・GPU名:
 LA40S 48GB
 L40 48GB
 RTX 6000 Ada 48GB
 RTX 4090 24GB
 L4 24GB
 RTX 4000 Ada 20GB
 RTX 2000 Ada 16GB

 

【NVIDIA Previous Gen】(前世代のNVIDIAのGPU)

・アーキテクチャ名:
 Hopper(ホッパー)

・互換性のある最低バージョンのCUDA:
 CUDA 12

・GPU名:
 H200 SXM 143GB

・アーキテクチャ名:
 Ampere(アンペア)

・互換性のある最低バージョンのCUDA:
 CUDA 11.1

・GPU名:
 A100 SXM 80GB
 A100 PCIe 80GB
 A40 48GB
 RTX A6000 48GB
 RTX A5000 24GB
 RTX 3090 24GB
 RTX A4500 20GB
 RTX A4000 16GB

 

これらの情報から、今回利用しているテンプレートの設定である「CUDA 11.8」の環境では

・「NVIDIA Latest Gen」(最新世代のNVIDIAのGPU)の「Ada Lovelace」(エイダ・ラブレス)

・「NVIDIA Previous Gen」(前世代のNVIDIAのGPU)の「Ampere」(アンペア)

のGPUを使う必要があることがわかります。
具体的には、以下のGPU

【CUDA:11.8に対応しているGPU】

NVIDIA Latest Gen(最新世代のNVIDIAのGPU)
 - LA40S 48GB
 - L40 48GB
 - RTX 6000 Ada 48GB
 - RTX 4090 24GB
 - L4 24GB
 - RTX 4000 Ada 20GB
 - RTX 2000 Ada 16GB

NVIDIA Previous Gen(前世代のNVIDIAのGPU)
 - A100 SXM 80GB
 - A100 PCIe 80GB
 - A40 48GB
 - RTX A6000 48GB
 - RTX A5000 24GB
 - RTX 3090 24GB
 - RTX A4500 20GB
 - RTX A4000 16GB

を使うようにします。
これからだだっこぱんださん版のRVC WebUIをRunPodで使う予定の方は、GPUを選択する際に上記の情報を参考にしながらGPUを選択してみてください。

今回のコンピュータの環境(使用しているテンプレート)では「CUDA:11.8」に設定してありますので「12.4」以下に互換性があるという表示ですので

・「NVIDIA RTX A4000(16GB)」は、「CUDA:11.1〜12.4」に対応

ということで「NVIDIA RTX A4000(16GB)」は使えるということがわかります。

 

 

【手順2:RVC WebUIのリポジトリをクローン】

 

 

ここも、【手順1】と同様にコードを実行します。
コードを実行するとGitHubからだだっこぱんださん版の「rvc-webui」(Retrieval-based-Voice-Conversion-WebUI)のプログラムをRunPodのこのポッドにコピーされます。

(実行コードは省略)

処理が完了後に

「rvc-webui」フォルダ

「rvc-webui」フォルダを開く - ddPn08 v1 RVC WebUI:RunPodの使い方
「rvc-webui」フォルダを開く – ddPn08 v1 RVC WebUI

を「ダブルクリック」または「フォルダを選択した状態で “enter” キーを押す」操作をして、フォルダの中身を表示させます。

「rvc-webui」フォルダの中身が表示される - ddPn08 RVC WebUI:RunPodの使い方
「rvc-webui」フォルダの中身が表示される – ddPn08 RVC WebUI

前のフォルダの場所に戻りたい場合には

・「現在のフォルダ」が表示されている「1つ前のフォルダをクリック」

フォルダ操作の仕組み:RunPodの使い方
フォルダ操作の仕組み:RunPodの使い方

すると、直前のフォルダに移動することができます。

 

RVC WebUIを使うにあたっては

・「workspace」フォルダに行ける(戻れる)

こと

・「rvc-webui」フォルダ内でファイル操作ができる

ことが求められます。
ここまでのファイル操作の手順が理解できれば、Google Colaboratoryを使ってきた方にとっては、JupyterLabの操作は概ね大丈夫なのではないかと思います。

 

 

【手順3:「data augmentation」(データ拡張)用ファイルのダウンロード】
– 拡張オプション①(省略可)

 

 

nadareさんにより公開してくださっている「data augmentation」(データ拡張)用ファイルをGoogle Driveからダウンロードできるようにしておきました。

hubert-base-japanese」を指定した場合、話者の音声の特徴が残りやすいようですが、追加の事前学習済みモデルを使うことで、軽減するようです。

ここのコードを実行してファイルがダウンロードしておくと、「Training」(学習)の際に「Augment」(データオーグメンテーション機能)を有効化したい場合に便利です。

(実行コードは省略)

 

【利用規約を確認】

data augmentation」(データ拡張)用のファイルを利用する際には、事前に以下のページなどで説明・利用規約などをご確認ください。

RVC-WebUI-tuned-weights(MIT License)by nadare | Kaggle

また、「Augment」(データオーグメンテーション機能)を使う予定がない方は、ここの手順を省いてください。

 

【使い方】

Training」(学習)の際のデータオーグメンテーション機能の設定で

・Augment:(データオーグメンテーション機能の有効化の設定)
 チェックを入れる
・Augment From Pretrain:(追加の事前学習済みモデルによるデータオーグメンテーション機能の有効化の設定)
 チェックを入れる
・Pre trained generator path:(追加の事前学習生成器のパス)
 初期設定で以下のパスに設定済み
/workspace/rvc-webui/models/pretrained/augment/vctk_multispeaker_jphubert_augment_f048k768.pth
・speaker info path (npy): (追加の事前学習済みモデルの「npyファイル」のパス)
 初期設定で以下のパスに設定済み
/workspace/rvc-webui/models/pretrained/augment/speaker_info.npy

【手順3】「data augmentation」(データ拡張)の有効化 - ddPn08 v2 RVC WebUI:RunPodの使い方
【手順3】「data augmentation」(データ拡張)の有効化 – ddPn08 v2 RVC WebUI

と設定すると使えるようになります。
【手順3】の実行コードでダウンロードした場合の例
注:手動でダウンロードした際には、各ファイルのパスをご自身で入力します

試した感じでは

・Target sampling rate:(サンプリングレート)
40k」「48k」どちらでも使えます
・Using phone embedder:(phone embedderの設定)
hubert-base-japanese」「contentvec」どちらでも使えますが、「contentvec」にすると推論(音声変換)が不安定になるようでした

などと、各種設定に対応しているようでした。

 

 

【手順4:「48k」の「hubert-base-japanese」用のファイルをダウンロード】
– 拡張オプション②(省略可)

 

 

nadareさんにより公開してくださっている「Target sample rate」(サンプリングレート)が「48k」の「hubert-base-japanese」の事前学習済みモデルのファイルをGoogle Driveからダウンロードできるようにしておきました。

hubert-base-japanese」の「40k」版は、音質が不安定な印象を受けていましたが、「48k」版では音質が改善されているようでした。
hubert-base-japanese」を使いたい場合には、ここのコードでダウンロードする「48k」版を使うのが無難かと思います。

Target sample rate」(サンプリングレート)が「48k」の「hubert-base-japanese」を使いたい場合に、ここのコードでダウンロードしておくと便利です。

(実行コードは省略)

 

【利用規約を確認】

48k」の「hubert-base-japanese」用のファイルを利用する際には、事前に以下のページなどで説明・利用規約などをご確認ください。

RVC-WebUI-tuned-weights(MIT License)by nadare | Kaggle

また、「Target sample rate」(サンプリングレート)の「48k」を使う予定がない方は、ここの手順を省いてください。

 

【使い方】

Training」(学習)の際の事前学習済みモデルなどの設定で

・Model version:(RVCのモデルのバージョン)
 v2
・Target sampling rate:(サンプリングレート)
 48k
・f0 Model:(f0モデルの設定)
 Yes
・Using phone embedder:(phone embedderの設定)
 hubert-base-japanese
・Embedding channels:(次元数の設定)
 768
・Embedding output layer:(出力層の設定)
 12(「9」層でも学習はできるようでした)
・Pre trained generator path:(事前学習生成器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/48kjphubert/f0G48k768_jphubert_v2.pth
・Pre trained discriminator path:(事前学習弁別器・識別器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/48kjphubert/f0D48k768_jphubert_v2.pth

と設定すると使えるようになります。
【手順4】の実行コードでダウンロードした場合の例
注:手動でダウンロードした際には、各ファイルのパスを入力します

 

【初期設定の「40k」に戻す用のパス】

・Pre trained generator path:(事前学習生成器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/v2/f0G40k.pth
・Pre trained discriminator path:(事前学習弁別器・識別器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/v2/f0D40k.pth

 

 

【手順5:「48k」の「contentvec」用のファイルをダウンロード】
– 拡張オプション③(省略可)

 

 

nadareさんにより公開してくださっている「Target sample rate」(サンプリングレート)が「48k」の「contentvec」の事前学習済みモデルのファイルをGoogle Driveからダウンロードできるようにしておきました。

Target sample rate」(サンプリングレート)が「48k」の「contentvec」を使いたい場合に、ここのコードでダウンロードしておくと便利です。

(実行コードは省略)

 

【利用規約を確認】

48k」の「contentvec」用のファイルを利用する際には、事前に以下のページなどで説明・利用規約などをご確認ください。

RVC-WebUI-tuned-weights(MIT License)by nadare | Kaggle

また、「Target sample rate」(サンプリングレート)の「48k」を使う予定がない方は、ここの手順を省いてください。

 

【使い方】

Training」(学習)の際の事前学習済みモデルなどの設定で

・Model version:(RVCのモデルのバージョン)
 v2
・Target sampling rate:(サンプリングレート)
 48k
・f0 Model:(f0モデルの設定)
 Yes
・Using phone embedder:(phone embedderの設定)
 contentvec
・Embedding channels:(次元数の設定)
 768
・Embedding output layer:(出力層の設定)
 12(「9」層でも学習はできるようでした)
・Pre trained generator path:(事前学習生成器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/48kcontentvec/f0G48k768_contentvec_v2.pth
・Pre trained discriminator path:(事前学習弁別器・識別器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/48kcontentvec/f0D48k768_contentvec_v2.pth

と設定すると使えるようになります。
【手順5】の実行コードでダウンロードした場合の例
注:手動でダウンロードした際には、各ファイルのパスを入力します

 

【初期設定の「40k」に戻す用のパス】

・Pre trained generator path:(事前学習生成器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/v2/f0G40k.pth
・Pre trained discriminator path:(事前学習弁別器・識別器のパス)
 以下のパスをコピー&ペースト
/workspace/rvc-webui/models/pretrained/v2/f0D40k.pth

 

 

【手順6:RunPod内にデータセットと音声変換させたい音声ファイルを準備】

 

 

今回利用しているノートブックでは

「/workspace/rvc-webui/datasets/dataset」
*「workspace」フォルダ内の「rvc-webui」内にある「datasets」フォルダの中に「dataset」フォルダ

に「dataset」フォルダが配置されています。
音声ファイルをアップロード前に、「dataset」フォルダが現在のフォルダになるように移動しておきます。

JupyterLabへは、フォルダ自体をアップロードすることができないので、

・アップロードしたい音声ファイルを全選択した状態

で、「dataset」フォルダ内にドラッグ&ドロップしてアップロードします。

データセットをアップロード:RunPodの使い方
データセットをアップロード

 

JupyterLabへのアップロードは、主に、

割り当てられたコンピュータの回線の「下り速度」(データ受信の通信速度:ダウンロードに関係)に左右

されますので、「2000Mbps」あたりの「下り速度」が割り当てられた方の場合には、「数百MB(メガバイト)台」の容量をアップロードされる場合には時間がかかります。
2000Mbps」あたりの「下り速度」ですと、【手順6:RVC WebUIの起動】でも時間がかかりますので、アップロード待ちと並行して【手順6:RVC WebUIの起動】を実行していただいてもいいかと思います。

 

Training」(学習)の設定の「Multiple speakers:」(複数の話者かどうか)を「チェックあり」にした場合には、データセットフォルダのフォルダ構造が違いますので注意しておください。

【フォルダ構造:複数の話者の場合】

Multiple speakers:
(複数の話者かどうか)
チェックあり

dataset
 |
 |—voiceA
 |   |— 〜1.wav
 |   |— 〜2.wav
 |   ・
 |   ・
 |   ・
 |   |— 〜10.wav
 |
 | 
 |—voiceB
     |— 〜1.wav
     |— 〜2.wav
     ・
     ・
     ・
     |— 〜10.wav

Multiple speakers(複数の話者)のデータセットのフォルダ構造の例【ddPn08 - RVC v2モデル対応版】RunPod編:日本人のためのRVC WebUIの使い方(設定詳解)
Multiple speakers(複数の話者)のデータセットのフォルダ構造の例 – RVC v2モデル対応のddPn08版RVC WebUI

dataset」フォルダ内に各話者のフォルダを作成し、それぞれの音声を配置します。

 

【フォルダ構造:単一の話者の場合】

Multiple speakers:
(複数の話者かどうか)
チェックなし

dataset
 |— 〜1.wav
 |— 〜2.wav
 |— 〜3.wav
 |— 〜4.wav
 ・
 ・
 ・
 |— 〜10.wav

dataset」フォルダ内に単一話者の音声を配置します。

 

【参考コード】

Google ColaboratoryでRVC WebUIを使われていた方は、Google Driveからファイルを操作できるようにされていた方が主体かと思います。
ノートブックには、参考コードとして、Google Drive の「MyDrive」内のファイルを扱えるようにするコードも掲載しておきました。

JupyterLabにドラッグ&ドロップでアップロードする場合には、「数百MB(メガバイト)台」の容量の場合には、かなりの時間がかかります。
一方で、既にGoogle Driveにある同量のファイルを以下の実行コードでアップロードして頂ければ、より速くアップロードできるのではないかと思います。

手順①:
事前にGoogle Drive上でフォルダの共有設定で「リンクを知っている全員」に設定しておきます。

手順②:
共有フォルダのリンクを取得して以下のコード内の「共有フォルダのURL」のところを書き換えます。

 

【セル内でペーストを実行する方法】

JupyterLabのコードを記載するセル内では、右クリックを利用した「ペースト」(貼り付け)ができないようでしたので、ショートカットキーを利用して、「ペースト」(貼り付け)を実施します。

以下、パソコンのOS別の「ペースト」(貼り付け)のショートカットキーです。

【Windowsの場合】「Ctrl」+「V」キーを押す
【Macの場合】「command」+「V」キーを押す

その他にも「コピー」のショートカットキーも知っておくと便利です。

【Windowsの場合】「Ctrl」+「C」キーを押す
【Macの場合】「command」+「C」キーを押す

実行コード

# @title 実行コード

# カレントディレクトリ(作業フォルダ)を「rvc-webui」フォルダに設定
%cd /workspace/rvc-webui

# gdownをインストール
!pip3 install --root-user-action=ignore gdown==5.2.0

# Google Driveにアップロードした音声ファイルのフォルダをRunPodにアップロードすることもできます
# 手順①:事前にGoogle Drive上でフォルダの共有設定で「リンクを知っている全員」に設定しておきます
# 手順②:共有フォルダのリンクを取得して以下の「共有フォルダのURL」のところを書き換えます
# コード例:!gdown --folder https://drive.google.com/drive/folders/〜?usp=drive_link -O /workspace/rvc-webui/datasets/datasetDRIVE

#「/workspace/rvc-webui/datasets」内に「datasetDRIVE」という名前のフォルダを作成
!mkdir /workspace/rvc-webui/datasets/datasetDRIVE

# 以下に指定したGoogle Driveの「共有フォルダのURL」から共有フォルダ内のファイルを「datasetDRIVE」フォルダ内にダウンロード
!gdown --folder 共有フォルダのURL -O /workspace/rvc-webui/datasets/datasetDRIVE

# 手順③:ここのコードを実行後にRunPodにアップロードが完了したら、必要に応じて共有フォルダのリンクを共有設定を「制限付き」に戻しておきます

1回目の実行であれば「共有フォルダのURL」の記載のところを実際のURLに変更していただければ「datasets」フォルダ内の「datasetDRIVE」フォルダに音声ファイルがアップロードできると思います。
他にも追加で新たなデータセットをアップロードしたい場合には、

・「!mkdir /workspace/rvc-webui/datasets/datasetDRIVE」

のコードの

・「datasetDRIVE」

という名前を、半角英数で違う名前(例:「datasetDRIVE2」)にしていただき

・!gdown –folder 共有フォルダのURL -O /workspace/rvc-webui/datasets/datasetDRIVE

のコードの

・「datasetDRIVE」

という名前を、「!mkdir 〜」のところで変更した名前と同じ名前(例:「datasetDRIVE2」)に変更してコードを実行すれば、新たなデータセットフォルダにデータセットをアップロードできるのではないかと思います。

実行コード(2回目の例:「datasetDRIVE2」フォルダにアップロード)

# @title 実行コード(Google Driveからファイルをコピー)

# カレントディレクトリ(作業フォルダ)を「rvc-webui」フォルダに設定
%cd /workspace/rvc-webui

# gdownをインストール
!pip3 install --root-user-action=ignore gdown==5.2.0

# Google Driveにアップロードした音声ファイルのフォルダをRunPodにアップロードすることもできます
# 手順①:事前にGoogle Drive上でフォルダの共有設定で「リンクを知っている全員」に設定しておきます
# 手順②:共有フォルダのリンクを取得して以下の「共有フォルダのURL」のところを書き換えます
# コード例:!gdown --folder https://drive.google.com/drive/folders/〜?usp=drive_link -O /workspace/rvc-webui/datasets/datasetDRIVE2

#「workspace/rvc-webui/datasets」内に「datasetDRIVE2」という名前のフォルダを作成
!mkdir /workspace/rvc-webui/datasets/datasetDRIVE2

# 以下に指定したGoogle Driveの「共有フォルダのURL」から共有フォルダ内のファイルを「datasetDRIVE2」フォルダ内にダウンロード
!gdown --folder 共有フォルダのURL -O /workspace/rvc-webui/datasets/datasetDRIVE2

# 手順③:ここのコードを実行後に「/workspace/rvc-webui」フォルダ内にRunPodにアップロードが完了したら、必要に応じて共有フォルダのリンクを共有設定を「制限付き」に戻しておきます

 

また、推論(音声変換)を試してみたい音声ファイル(WAV形式 or MP3形式)もアップロードしておきます。
このノートブックでは

・「 /workspace/rvc-webui/voice
*「workspace」フォルダ内の「rvc-webui」内にある「voice」フォルダ

に音声ファイルをアップロードします。

推論(音声変換)用の音声ファイルをアップロード - ddPn08 RVC WebUI:RunPodの使い方
推論(音声変換)用の音声ファイルをアップロード – ddPn08 RVC WebUI

 

 

【手順7:RVC WebUIの起動】

 

 

ウェブインターフェース上で、学習や推論(音声変換)を実施します。
以下のコード

実行コード

# @title 実行コード

# カレントディレクトリ(作業フォルダ)を「rvc-webui」フォルダに設定
%cd /workspace/rvc-webui

# 仮想環境を有効化しRVC WebUIを起動
!bash webui.sh --host 0.0.0.0 --port 7860

を実行後に表示される

Running on local URL: http://0.0.0.0:7860

のURLが表示されたら、RunPodの「Pods」の管理画面の「Connect」(接続)をクリック後に表示される画面で

・Connect to HTTP Service [Port 7860](HTTPサーバーのポート7860に接続)

RunPodの管理画面で「Connect to HTTP Service Port 7860」をクリックする - ddPn08 RVC WebUI:RunPodの使い方
RunPodの管理画面で「Connect to HTTP Service Port 7860」をクリックする – ddPn08 RVC WebUI

をクリックするとRVC WebUIが使えます。

【参考情報】

初回実行時には「PyTorch」をはじめとした、依存関係のインストールがありますので、かなりの時間がかかります。
以下は、初回実行時の所要時間の目安です。

下り速度:↓2341 Mbps(データ受信・ダウンロードの速度)の一例

・Create and activate python venv…
(仮想環境を構築中)
1分以内

・Installing torch and torchaudio etc..
(PyTorchなどをインストール中です…)
4分

・Requirements are being installed and checked…
(RVC WebUI起動に必要な依存関係をインストール&チェック中です…)
8分

・事前学習モデルのダウンロード
:2分

処理が完了する時間は、下り速度以外にも、RunPod自体やPython Package Index(PyPI)、Hugging Faceのサイトの回線の混み具合なども影響してくるのではないかと思います。
初回実行時は、数十分単位で、ある程度の時間がかかるので、不具合かと思わずに焦らずに待ってください。
また、「事前学習モデルのダウンロード」の際に、ダウンロードの進捗状況の出力が大量に表示されます。そのため、「Running on local URL」が出力されたのか?を確認するためには、最終出力地点まで移動する必要があります。

2回目以降は、依存関係のインストールがありませんので、1分以内にはRVC WebUIが起動すると思います。

 

Google Colaboratoryとの違いとして、RunPodの場合には、一度ここまでの手順を実行していただければ、特定のポッドと契約中の永続的な保存領域である「Volume Disk」(ボリュームディスク領域)を確保している場合には、ポッドを停止後も現在の環境が保持されます。
そのため、2回目以降のポッドの起動時には 

・【手順0:JupyterLabの日本語化】(任意)
・【手順7:RVC WebUIの起動】

の手順を実行するだけで大丈夫です。

 

【RVC v2モデル – ddPn08版RVC WebUIの外観】

Inference(モデル推論)の外観 - 【RunPod編】RVC v2モデル - ddPn08(だだっこぱんださん)版
Inference(モデル推論)の外観
Training(学習)の外観 - 【RunPod編】RVC v2モデル - ddPn08(だだっこぱんださん)版
Training(学習)の外観

 

【重要:ファイル・フォルダのパスを入力する際の注意点】

Google Colaboratoryの仕様と違う点として、JupyterLabの画面上で該当ファイル・フォルダを右クリック後に表示される「パスをコピー」を使って、パスを貼り付けると

JupyterLabで「パスをコピー」:「dataset」フォルダの例

workspace/rvc-webui/datasets/dataset

となります。
RVC WebUIの「Train」(学習)で、データセットへのパスを入力するには

RVC WebUIの正しいパスの入力方法:「dataset」フォルダの例

/workspace/rvc-webui/datasets/dataset

と入力する必要があります。
そのため、適宜、貼り付けたパスの先頭に半角英数で

・「/」(スラッシュ)

を追加していただく必要がありますので注意してください。

 

以下は、「Model Inference」(モデル推論)で音声変換したい音声ファイルへのパスを入力する例です。

ダメな例:「originalvoice.wav」の音声ファイルを使う例

workspace/rvc-webui/voice/originalvoice.wav

正しい例:「originalvoice.wav」の音声ファイルを使う例

/workspace/rvc-webui/voice/originalvoice.wav

 

【学習モデル・indexファイルの出力先】

学習モデル(pthファイル)は「models」フォルダ内の

・「checkpoints_link」フォルダの中

学習モデルの出力先 - 「models」フォルダ内の「checkpoints_link」フォルダの中に出力される ddPn08 RVC WebUI:RunPodの使い方
学習モデルの出力先 – 「models」フォルダ内の「checkpoints_link」フォルダの中に出力される ddPn08 RVC WebUI

*「Model Name」(学習モデル名)を「test0」とした例

に出力されます。
また、indexファイルなどは「models」フォルダ内の

・「checkpoints_link」フォルダ内の該当フォルダの中

indexファイルの出力先 -「models」フォルダ内の「checkpoints_link」フォルダ内の該当フォルダ ddPn08 RVC WebUI:RunPodの使い方
indexファイルの出力先 -「models」フォルダ内の「checkpoints_link」フォルダ内の該当フォルダ ddPn08 RVC WebUI

*「Model Name」(学習モデル名)を「test0」とした例

に出力されます。
JupyterLabの画面上で該当ファイルを右クリック後に表示される「ダウンロード」をクリックするとファイルをダウンロードできます。
その他にも、該当ファイルを右クリック後に表示される「現在のフォルダーをアーカイブとしてダウンロード」をクリックすると表示中のフォルダ(の中身)を圧縮ファイルにしてダウンロードできるようでした。

 

【モデル推論後の音声ファイルの出力先】

outputs」フォルダに出力されます。

ボイスチェンジ後の音声ファイルの出力先 -「outputs」フォルダ ddPn08 RVC WebUI:RunPodの使い方
ボイスチェンジ後の音声ファイルの出力先 -「outputs」フォルダ ddPn08 RVC WebUI

その他にも、その都度、RVC WebUIの画面上からダウンロードすることもできます。
ブラウザの種類によってはRVC WebUI上にダウンロードできる機能が反映されないようでしたので

Google Chrome

Microsoft Edge

のブラウザを使うようにしてください。
上記以外のプラウザでRVC WebUIを起動後も、一度割り当てられた以下のようなRVC WebUIのURL

https://〜-7860.proxy.runpod.net/
* 現在のポッドと契約中は、同じURLが割り当てられます。
* 現在のポッドを削除すると、新規作成したポッドのURLは変更されます。

を、他のブラウザで閲覧すると、【手順7:RVC WebUIの起動】のコードを実行中の状態であれば、起動中のRVC WebUIを操作できます。
必要に応じて、上記のブラウザに切り替えて「Inference」(推論)を実行してみてください。

 

【RVC WebUIを終了(停止)する方法】

RVC WebUIを終了(停止)するには

ノートブックの画面の上にある「■」(四角マーク)をクリック

「■」(四角マーク)をクリックしてRVC WebUIを終了 - ddPn08 RVC WebUI:RunPodの使い方
「■」(四角マーク)をクリックしてRVC WebUIを終了 – ddPn08 RVC WebUI

し、【手順7:RVC WebUIの起動】のコードを停止させます。

 

 

RunPodでディスク容量を管理する方法

 

 

以下の操作は【手順7:RVC WebUIの起動】のコードを停止(RVC WebUIを終了・停止)してから実行してください。
RVC WebUIが起動中は【手順7:RVC WebUIの起動】のコードが処理中の扱いになるため、ノートブック上の他のコードを実行できませんので注意してください。

 

 

【残りのディスク容量の確認方法】

 

 

GPUのコンピュータの構成を設定」の際に「Encrypt Volume」(ボリュームの暗号化)の「機能をオフ

「Encrypt Volume」(ボリュームの暗号化)「機能をオフ」:RunPodの使い方
「Encrypt Volume」(ボリュームの暗号化)「機能をオフ」

にした場合には、ポッドを停止するとリセット(削除)される一時的な保存領域の「Container Disk」(コンテナディスク領域)と、特定のポッドと契約中の永続的な保存領域である「Volume Disk」(ボリュームディスク領域)を「Pods」の管理画面上で

・「Disk Utilization:Container」(ディスク使用率:コンテナ)
・「Disk Utilization:Volume」(ディスク使用率:ボリューム)

【拡張オプションのダウンロードなしの場合】管理画面でコンテナ&ボリュームディスク領域の使用率確認 – ddPn08 v2 RVC WebUI:RunPodの使い方
【拡張オプションのダウンロードなしの場合】管理画面でコンテナ&ボリュームディスク領域の使用率確認 – ddPn08 v2 RVC WebUI
【拡張オプションのダウンロードありの場合】管理画面でコンテナ&ボリュームディスク領域の使用率確認 – ddPn08 v2 RVC WebUI:RunPodの使い方
【拡張オプションのダウンロードありの場合】管理画面でコンテナ&ボリュームディスク領域の使用率確認 – ddPn08 v2 RVC WebUI

として割合(パーセンテージ)を確認できます。

しかし、「Encrypt Volume」(ボリュームの暗号化)の「機能をオン」にした場合には、特定のポッドと契約中の永続的な保存領域である「Volume Disk」(ボリュームディスク領域)がどの程度使われているのか?を確認できる仕様ではないようでした。

コンテナディスク領域の使用率のみ - 「Encrypt Volume」(ボリュームの暗号化)の「機能をオン」:RunPodの使い方
コンテナディスク領域の使用率のみ – 「Encrypt Volume」(ボリュームの暗号化)の「機能をオン」

Volume Disk」は「workspace」以下のフォルダの容量をカウントしているようです。
そのため、コードを実行すると確認できるようにしておきました。

以下のコードを実行すると現在の「Volume Disk」の使用量を確認できます。
*「Container Disk」「Volume Disk」のディスク容量は「Pods」の管理画面上の左端の3本線をクリックした際に表示される「Edit Pod」(ポッドを編集)で変更することができます。変更する際には、ポッドを一旦停止後に編集・保存するようにします。
使用状況に応じて調整してみてください。

実行コード

# @title 実行コード(「Volume Disk:永続保存領域」容量の確認)

# カレントディレクトリ(作業フォルダ)を「workspace」フォルダに設定
%cd /workspace

# 現在の「Volume Disk」(ボリュームディスク領域:永続保存領域)の使用量の表示
!du -sh /workspace 2>/dev/null

 

出力例(拡張オプションのダウンロードなしの場合)

# 表示例(拡張オプションのダウンロードなしの場合):13GB利用中
13G	/workspace

出力例(拡張オプション①〜③のダウンロードありの場合)

# 表示例(拡張オプション①〜③のダウンロードありの場合):16GB利用中
16G	/workspace

 

RunPodでは、学習の途中で「Volume Disk」(ボリュームディスク領域)の容量がオーバーになるとRVC WebUIの処理がエラーとなるようでした。

ノートブック上のエラー出力例:
Traceback (most recent call last):
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/torch/serialization.py”, line 441, in save
_save(obj, opened_zipfile, pickle_module, pickle_protocol)
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/torch/serialization.py”, line 668, in _save
zip_file.write_record(name, storage.data_ptr(), num_bytes)
RuntimeError: [enforce fail at inline_container.cc:471] . PytorchStreamWriter failed writing file data/10: file write failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/queueing.py”, line 407, in call_prediction
output = await route_utils.call_process_api(
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/route_utils.py”, line 226, in call_process_api
output = await app.get_blocks().process_api(
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/blocks.py”, line 1550, in process_api
result = await self.call_function(
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/blocks.py”, line 1199, in call_function
prediction = await utils.async_iteration(iterator)
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/utils.py”, line 519, in async_iteration
return await iterator.__anext__()
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/utils.py”, line 512, in __anext__
return await anyio.to_thread.run_sync(
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/anyio/to_thread.py”, line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py”, line 2441, in run_sync_in_worker_thread
return await future
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py”, line 943, in run
result = context.run(func, *args)
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/utils.py”, line 495, in run_sync_iterator_async
return next(iterator)
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/gradio/utils.py”, line 649, in gen_wrapper
yield from f(*args, **kwargs)
File “/workspace/rvc-webui/modules/tabs/training.py”, line 248, in train_all
train_model(
File “/workspace/rvc-webui/lib/rvc/train.py”, line 345, in train_model
training_runner(
File “/workspace/rvc-webui/lib/rvc/train.py”, line 961, in training_runner
utils.save_state(
File “/workspace/rvc-webui/lib/rvc/utils.py”, line 135, in save_state
torch.save(
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/torch/serialization.py”, line 440, in save
with _open_zipfile_writer(f) as opened_zipfile:
File “/workspace/rvc-webui/venv/lib/python3.10/site-packages/torch/serialization.py”, line 291, in __exit__
self.file_like.write_end_of_file()
RuntimeError: [enforce fail at inline_container.cc:337] . unexpected pos 72960 vs 7291

RVC WebUI上のエラー出力例:
File Save Error for RunPod_v2_RVC_WebUI_ddPn08_Historical_Legacy_for_Japanese_AI_beginners.ipynb
Unexpected error while saving file: workspace/RunPod_v2_RVC_WebUI_ddPn08_Historical_Legacy_for_Japanese_AI_beginners.ipynb [Errno 122] Disk quota exceeded

その後、JupyterLab上の操作ができなくなりますが、表示されるウインドウの「Dismiss」(却下する)ボタンをクリック後に、RunPodの管理画面で「Volume Disk」(ボリュームディスク領域)の容量を増やすと、再度JupyterLab上の操作ができるようになります。

 

 

【フォルダを削除する方法】

 

 

何度も「Train」(学習)をするとファイルが増えて容量を圧迫してしまいます。
不要になったファイルは、フォルダごとまとめて削除すると容量を軽減できます。
必要なファイルをローカル環境(自分のパソコン)などにダウンロード後に、不要となったフォルダを削除します。
基本的に、ファイルが配置されているフォルダは手動では削除できないようですので、こちらのコードを使ってフォルダを削除してください。

例:
・不要となった「dataset」フォルダ
・「Training」(学習)後に出力される「models」フォルダ内の「checkpoints_link」フォルダに出力されるindexファイルなどが入っている不要となったフォルダ
・「Training」(学習)後に出力される「models」フォルダ内の「training」フォルダの中の「models」フォルダ内の不要となった該当フォルダ(学習ログ)

実行コード

# @title 実行コード

# カレントディレクトリ(作業フォルダ)を「workspace」フォルダに設定
%cd /workspace

# コード「!rm -r ⚪︎」の⚪︎の部分にフォルダのパスを入力してコードを実行します
#「dataset」フォルダを削除する例
!rm -r /workspace/rvc-webui/datasets/dataset
# 実行後に特に何も出力はありません。コードの実行が完了後に該当フォルダが消えます


# その他の例
# import shutil
# # コード「shutil.rmtree('⚪︎')」の⚪︎の部分にフォルダのパスを入力してコードを実行します
# #「dataset」フォルダを削除する例
# shutil.rmtree('/workspace/rvc-webui/datasets/dataset')

 

 

【ファイルを削除する方法】

 

 

特定のファイルを削除したい場合には、以下のコードを実行します。
基本的に、JupyterLabの画面上で該当ファイルを右クリック後に表示される「削除」でも削除できます。
画面上の操作で削除できない場合などに以下のコードを実行すると削除できます。

例:
・「Training」(学習)後に出力される「models」フォルダ内の「checkpoints_link」フォルダに出力される学習モデル
・「Training」(学習)後に出力される「models」フォルダ内の「training」フォルダの中の「models」フォルダの該当フォルダ内の「state」フォルダに出力される学習ログのチェックポイントファイル(D_〜.pthG_〜.pth」ファイルが容量を圧迫する原因です。再学習させたい場合には一番数字の大きな「D_〜.pthG_〜.pth」ファイルを残しておくだけで大丈夫です
・「Inference」(推論)後に出力される「outputs」フォルダ内の音声ファイル

実行コード

# @title 実行コード

# カレントディレクトリ(作業フォルダ)を「workspace」フォルダに設定
%cd /workspace

# コード「!rm ⚪︎」の⚪︎の部分にファイルのパスを入力してコードを実行します
#「dataset」フォルダ内の「audio.wav」(ファイル名は一例)ファイルを削除する例
!rm /workspace/rvc-webui/datasets/dataset/audio.wav


# その他の例
# import os
# # コード「os.remove('⚪︎')」の⚪︎の部分にファイルのパスを入力してコードを実行します
# #「dataset」フォルダ内の「audio.wav」(ファイル名は一例)ファイルを削除する例
# os.remove('/workspace/rvc-webui/datasets/dataset/audio.wav')

 

 

RunPodで使用中のコンピュータ(Pod)を停止・削除する方法

 

 

RVC WebUIのために構築したコンピュータの環境を停止するにはRunPodの「Pods」の管理画面の

「■」(四角マーク)をクリック

ポッドの停止:RunPodの使い方
ポッドの停止

します。
ポッドを停止した状態では

・「Volume Disk」(ボリュームディスク領域:ポッド契約中の永続的な保存領域)

ポッド停止後も「Volume Disk」(ボリュームディスク領域)の維持費が発生 - ddPn08 RVC WebUI:RunPodの使い方
ポッド停止後も「Volume Disk」(ボリュームディスク領域)の維持費が発生 – ddPn08 RVC WebUI

の請求が発生します。
ポッドを削除する場合には、ポッドを停止後に表示される

・ゴミ箱マークをクリック

ゴミ箱マークをクリック:RunPodの使い方
ゴミ箱マークをクリック

し、その後の指示

全てのデータが削除 - ddPn08 RVC WebUI:RunPodの使い方
全てのデータが削除 – ddPn08 RVC WebUI

に従い、ポッドを削除します。
ポッドを削除すると、これまでに構築・保存したデータは全て失われますが、ポッドに対する費用は発生しません。

注:オプションの「Network Volume」(ネットワークボリューム)を利用されている方は、「Network Volume」自体を削除しないと、「Network Volume」上で作成したポッドを削除しても「Network Volume」の容量の確保分の利用料が発生しますので注意してください。

 

 

RunPodでディスク容量の変更方法

 

 

RunPodでテンプレートのディスク容量を変更するには、ポッドを停止した状態で、RunPodの「Pods」の管理画面の

・3本の横線マークをクリック

More Actions(更なる設定)- RVC WebUI:RunPodの使い方
More Actions(更なる設定)- RVC WebUI

後に表示されるメニュー内の

Edit Pod(ポッドを編集)

「Edit Pod」(ポッドを編集)をクリック - RVC WebUI:RunPodの使い方
「Edit Pod」(ポッドを編集)をクリック – RVC WebUI

をクリックします。
テンプレートの編集画面で

・お好みのディスク容量に変更し、「Save」(保存)をクリック

ディスク容量を変更し保存する方法 - ddPn08 RVC WebUI:RunPodの使い方
ディスク容量を変更し保存する方法 – ddPn08 RVC WebUI

すると設定が反映されます。

【参考】

・「Container Disk」(コンテナディスク領域)は一時的な保存領域。ポッドを停止するとリセット(削除)されます。

・「Volume Disk」(ボリュームディスク領域)は永続的な保存領域。ポッドを停止後も保持されます。ポッドを削除するとリセット(削除)されます。

 

尚、「Volume Disk」(ボリュームディスク領域:ポッド契約中の永続的な保存領域)を「0GB」に設定した場合には、ポッドを停止する機能は表示されず

・ボッドを削除

ボッドを削除:「Volume Disk:0GB」の場合の表示:RunPodの使い方
ボッドを削除:「Volume Disk:0GB」の場合の表示

する機能のみ表示される仕様のようでした。

 

 

 

RunPodでGPUの数を変更する方法

 

 

RVC WebUIの場合は、主に「Train」(学習)を実行中にGPUメモリが消費される傾向があります。
Google Colaboratoryに比べるとGPUの使用量・使用率の詳細の確認がしにくいのですが、RunPodの「Pods」の管理画面上に

・現在のGPUの使用状況

GPUの使用状況を確認(学習実行時) - ddPn08 v1 RVC WebUI:RunPodの使い方
GPUの使用状況を確認(学習実行時) – ddPn08 v1 RVC WebUI

が反映される仕様となっているようでしたので、GPUの使用率が100%あたりになり

・学習が正常にできない、または、何かしらのエラーとなる

ようでしたら、GPUのメモリ数を調整するようにしてみてください。

 

一度設定したGPUの数を変更するには、RunPodで作成したポッドを一旦停止

ポッドの停止:RunPodの使い方
ポッドの停止

します。
RunPodの「Pods」の管理画面の起動させるボタン

・「▶︎」(三角マーク)をクリック

ポッドを起動:RunPodの使い方
ポッドを起動

すると、初期設定の時に比べると選択できる数は少なくなりますが、GPUの数を設定

GPUメモリをクリック:RunPodの使い方
GPUメモリをクリック
GPUメモリ数の指定(数の表示は一例) - v2 RVC WebUI:RunPodの使い方
GPUメモリ数の指定(数の表示は一例) – v2 RVC WebUI

できる場合がありますので、必要に応じて変更してみてください。
尚、1つだけGPUを利用していた時に比べて、2つGPUを利用する際には、GPUの時間あたりの利用料が2倍になります。
費用を確認し、問題がなければ

・「Start」(ポッドの起動)

「Start」(ポッドの起動):RunPodの使い方
「Start」(ポッドの起動)

をクリックし、指定したGPUメモリ数でポッドを起動させます。

これまで試した範囲の情報では、割り当てられたコンピュータによっては、GPU数を再設定することができないことも経験していますので、必ずしも変更できるわけではなさそうです。必要に応じてポッドを再構築してGPUの数を調整してみてください。

 

GPUの数が「1つ」の場合には、RVC WebUI上の設定で

【Training】(学習)
GPU ID
(使用するGPUのID)
0

になっています。
GPUの数を増やしたい場合には、

・ハイフン[-]で区切って使用するカード番号を入力
(例:0-1-2はカード0、カード1とカード2を使用)

します。
GPUの数を「2つ」にした場合には、RVC WebUI上の設定で

【Training】(学習)
GPU ID
(使用するGPUのID)
0-1

と半角英数で「」「1」を付け足します。
GPUの数を「3つ」にした場合には、同じように

【Training】(学習)
GPU ID
(使用するGPUのID)
0-1-2

と半角英数で「」「1」「」「2」を付け足します。
試した範囲では、メモリを2つ以上使用している場合には、自動的に設定が反映されるようでした。
ただ、学習を実行中にJupyterLab上の出力でエラー表示

エラー出力例:(メモリを2つ以上利用している場合)

gin_channels: 256 self.spk_embed_dim: 109 emb_channels: 768
gin_channels: 256 self.spk_embed_dim: 109 emb_channels: 768

〜

-- Process 0 terminated with the following error:
Traceback (most recent call last):
  File "/workspace/rvc-webui/venv/lib/python3.10/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
    fn(i, *args)
  File "/workspace/rvc-webui/lib/rvc/train.py", line 597, in training_runner
    net_g.module.load_state_dict(net_g_state)
  File "/workspace/rvc-webui/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1614, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'SynthesizerTrnMs256NSFSid' object has no attribute 'module'. Did you mean: 'modules'?
(属性エラー:'SynthesizerTrnMs256NSFSid' オブジェクトには 'module' という属性がありません。'modules'のことを意味していますか?)

になり、学習の処理が完了しないようでした。
そのため、

・GPUメモリは1つだけにする

ように注意してください。

 

 

RunPod移行ガイド:おわりに

 

 

Google ColaboratoryでRVC WebUIを使われていた方に対してRunPodへの移行ガイドの作成を思い立ち、当初は

・要点だけなので短い記事になるのかな?

と思ったら….
最終的に、とても長い移行ガイドになってしまいました…

これだけの情報があれば、元々RVC WebUIを使われていた方なら、RunPodでも(おそらく?)気軽にRVC WebUIを使い始められるのではないかと思います。
長文になってしまいましたが、一連の情報が、RVC WebUIを再開したい音声AI領域に関心の高い日本人の方の参考になることがありましたら幸いです。

 

あまりにも長い文章になってしまうため、この記事では設定の解説はしていませんが、これからRVC WebUIを始めてみたい方は、

RVC WebUIの設定が意味不明・・・

と思われているのではないかと思います。
以下のチュートリアル記事

【ddPn08 – RVC v2モデル対応版】RunPod編:日本人のためのRVC WebUIの使い方(設定詳解)

では、RVC WebUIの使い方や設定の詳細の解説に焦点を当てて記事を書いていますので、まだ、RVC WebUIについてよくわからない方は、今回の記事と併せてご活用いただけますと幸いです。

 

 

by 子供プログラマー

 

【RunPod編】RVC WebUIをはじめよう – AIボイスチェンジャー(一覧)