はじめに
おめシスの動画 を見て、「私もボイチェンやってみたい!」と思い、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
の部分は不要になります。
$ sudo yum install python pip python-devel
4. Getting Started に従う
ここは言われている通りに。 faiss は MacOS で必要になるようなことが書いてありますが、AmazonLinux でもエラーを吐いたので入れておきます。前述の通り python
です、 3
は不要です。
$ pip install torch torchvision torchaudio
$ curl -sSL https://install.python-poetry.org | python -
$ pip install faiss-cpu==1.7.0
5. コードを Clone してくる
前述のリポジトリを clone してきてから、手順に載っている pip コマンドを実行します。
$ 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 ディレクトリ内のファイルを指定のディレクトリにダウンロードしたいだけです。(ディレクトリ指定でスマートにダウンロードできる方法があれば教えて下さい…。)
- https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/pretrained
- https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights
$ 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 は こちらのページ で確認しました。
$ 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 インスタンスを利用しているので、終わった後にはインスタンス停止や削除などをお忘れなく。(忘れてしまうと課金が膨らんでしまうので…。)
以上です、ここまで読んで下さってありがとうございました~。