5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RVC Web-UI を AmazonLinux2023 で構築してみた

Posted at

はじめに

おめシスの動画 を見て、「私もボイチェンやってみたい!」と思い、RVC なるツールの Web UI (サーバーサイド)を立ち上げてみました。

この記事の手順で、ひとまず http でアクセスできるところまでは確認できました。しかし、traning したりは試していないので、これで本当に動くかは全く保証がありません。

とりあえず試してみたい人の足掛かりになればなと。フィードバックいただけたら記事を修正するので、あわよくば有識者の方々のご指導をいただきたい気持ちです。

なお、執筆にあたっては以下のサイトを参考にさせていただいています。

RVC Web-UI を構築する

1. EC2 インスタンスを起動する

ffmpeg のパッケージが AMD ベースのものしか見つからなかったので、EC2 も AMD のプロセッサを採用した m6a ファミリ を利用します。
AMI は ID をわざわざ指定しなくても、EC2 インスタンスの起動ウィザードで選択できるやつで大丈夫だと思います。

項目 設定値
インスタンスタイプ m6a.large
リージョン 東京リージョン
AMI ID ami-01b32aa8589df6208

ちなみに一度 T 系ファミリで試したのですが、poetry か何かのインストールで CPU 100% に張り付いたまま進まなくなったので、諦めました。
上表以外のパラメータは特に気にしていません。(インターネットへの Outbound 通信はできるサブネットで起動してください。)

これ以降の手順では ec2-user でログインし、そのホームディレクトリから開始する前提で紹介していきます。

私は悪いエンジニアなので、最初は全部 root でやっていたんですが、途中で「root だとうまく動かないかも」みたいな warn メッセージに出くわしたので、大人しく ec2-user で一からやり直しました。

2. 開発関連ツールをインストールする

gcc でコンパイルしているっぽいパートがあるので、予め開発系のパッケージを入れておきます。
わざわざ全部入れなくても絞れるかもしれませんが、Try & Error するのが手間だったのでまとめてインストールします。

開発ツールのインストール
$ sudo yum groupinstall development

3. python パッケージのインストール

前述の github では python のコマンドが python3 として登場しますが、下記の手順で python を導入すればデフォルトで python3 がインストールされるので、 3 の部分は不要になります。

python のインストール
$ sudo yum install python pip python-devel

4. Getting Started に従う

ここは言われている通りに。 faiss は MacOS で必要になるようなことが書いてありますが、AmazonLinux でもエラーを吐いたので入れておきます。前述の通り python です、 3 は不要です。

Getting Started に従う
$ pip install torch torchvision torchaudio
$ curl -sSL https://install.python-poetry.org | python -
$ pip install faiss-cpu==1.7.0

5. コードを Clone してくる

前述のリポジトリを clone してきてから、手順に載っている pip コマンドを実行します。

コードを Clone してからインストール
$ git clone https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
$ cd Retrieval-based-Voice-Conversion-WebUI/
$ pip install -r requirements.txt

6. Hugging face から必要なファイルを取得する

手順が雑だったのでコマンドを補完します。
wget を連打していますが、やりたいことは次の 2 ディレクトリ内のファイルを指定のディレクトリにダウンロードしたいだけです。(ディレクトリ指定でスマートにダウンロードできる方法があれば教えて下さい…。)

  1. https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/pretrained
  2. https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights
Hugging face から必要なファイルをダウンロード
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt
$ cd pretrained/
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D32k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D40k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D48k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G32k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G40k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/G48k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D32k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D40k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0D48k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G32k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G40k.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G48k.pth
$ cd ../uvr5_weights/
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP2-%E4%BA%BA%E5%A3%B0vocals%2B%E9%9D%9E%E4%BA%BA%E5%A3%B0instrumentals.pth
$ wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP5-%E4%B8%BB%E6%97%8B%E5%BE%8B%E4%BA%BA%E5%A3%B0vocals%2B%E5%85%B6%E4%BB%96instrumentals.pth

リストは更新されるかもしれないので、リポジトリを確認して下さい。

7. ffmpeg をインストールする

参考にさせてもらったサイトの手順ほぼそのままやったので、ちょっと回りくどいことをしている気がします、このままでも動きますが、気持ち悪い人はアレンジしてください。
取得先のダウンロード URL は こちらのページ で確認しました。

ffmpeg をインストールする
$ cd /usr/local/bin
$ sudo mkdir ffmpeg
$ cd ffmpeg/
$ sudo wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
$ sudo tar -xf ffmpeg-git-amd64-static.tar.xz
$ sudo ln -s /usr/local/bin/ffmpeg/ffmpeg-git-20230313-amd64-static/ffmpeg /usr/bin/ffmpeg
$ sudo ln -s /usr/local/bin/ffmpeg/ffmpeg-git-20230313-amd64-static/ffprobe /usr/bin/ffprobe

8. 起動する

最後にもとのディレクトリに移動して起動です。

起動する
$ cd ~/Retrieval-based-Voice-Conversion-WebUI/
$ python infer-web.py

おわりに

冒頭にも記載した通り、これで本当に使えるかはまだ試していないので、この記事の手順はあくまで参考としてください。
また、アクセス時のプロトコルは言うまでもなく http なので、通信の安全性も確保されていない点に注意してください。
私は ALB(https) → EC2 にしようと試みましたが、502 エラーになってしまったのでどうしようかな~って感じです。

最後に、EC2 インスタンスを利用しているので、終わった後にはインスタンス停止や削除などをお忘れなく。(忘れてしまうと課金が膨らんでしまうので…。)

以上です、ここまで読んで下さってありがとうございました~。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?