Open3
M2 MacBookでRVCを動かすメモ
https://github.com/w-okada/voice-changer を動かす
macOS用の事前ビルド済みファイルは起動したがモデルファイルを選ぶとすぐにクラッシュした
issue検索するといかがヒットしたのでこの手順で試してみる
このissueの投稿ではcondaを使っているが自分はvenvでいいかなと思ったのでvenv
git clone https://github.com/w-okada/voice-changer.git
cd voice-changer
python3.10 -m venv venv
source venv/bin/activate
Pythonバージョンは3.11だと依存ライブラリの一部がインストールできなかったのでv3.10に
issueではパッチ用意してくれているがそのままではうまく適用できなかったので手で修正
cd server
vim requirements.txt
-onnxruntime-gpu==1.13.1
+#onnxruntime-gpu==1.13.1
+onnxruntime-silicon==1.13.1
vim restapi/MMVC_Rest.py
- if sys.platform.startswith("darwin"):
+ #if sys.platform.startswith("darwin"):
+ if sys.platform.startswith("darwin") and hasattr(sys, "_MEIPASS"):
必要ならpyworldの個別インストールと書いてあるがいったん無視して依存ライブラリをインストール
pip install -r requirements.txt
...
Building wheels for collected packages: pyworld, fairseq
Building wheel for pyworld (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for pyworld (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [107 lines of output]
...
TypeError: Object of type PosixPath is not JSON serializable
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pyworld
Building wheel for fairseq (pyproject.toml) ... done
Created wheel for fairseq: filename=fairseq-0.12.2-cp310-cp310-macosx_13_0_arm64.whl size=10354278 sha256=d3f8088065c485450ec38f0f953125a27b001c8646ce65f8ffc35042f0d8062f
Stored in directory: /Users/demmy/Library/Caches/pip/wheels/e4/35/55/9c66f65ec7c83fd6fbc2b9502a0ac81b2448a1196159dacc32
Successfully built fairseq
Failed to build pyworld
ERROR: Could not build wheels for pyworld, which is required to install pyproject.toml-based projects
pyworld周りのビルドでコケたのでissueの通りpyworldの個別インストールを試す
numpyが無いと言われるのでインストールして試すとbdist_wheelが無いエラー
pip install numpy==1.23.5 # requirements.txtとバージョン合わせて指定しておく
ARCHFLAGS="-arch arm64" pip install pyworld==0.3.3 --compile --no-cache-dir --force-reinstall --no-build-isolation
...
error: invalid command 'bdist_wheel'
[end of output]
pyworldのインストールの過程でrequirements.txtから入れた場合と同じエラーが出て調べると以下のissueに当たったので --no-build-isolation
をつけてインストールしたが不要だったかも?
とりあえずこのエラーはwheelがないということみたいなのでインストールしてあげてリトライしたらいけた
pip install wheel
ARCHFLAGS="-arch arm64" pip install pyworld==0.3.3 --compile --no-cache-dir --force-reinstall --no-build-isolation
pip install -r requirements.txt
最初のissue通りのコマンドで起動
しばらくうんともすんとも言わないが、めっちゃダウンロード走った上でエラー
PYTORCH_ENABLE_MPS_FALLBACK=1 python3 MMVCServerSIO.py -p 18888 --https false \
--content_vec_500 pretrain/checkpoint_best_legacy_500.pt \
--content_vec_500_onnx pretrain/content_vec_500.onnx \
--content_vec_500_onnx_on true \
--hubert_base pretrain/hubert_base.pt \
--hubert_base_jp pretrain/rinna_hubert_base_jp.pt \
--hubert_soft pretrain/hubert/hubert-soft-0d54a1f4.pt \
--nsf_hifigan pretrain/nsf_hifigan/model \
--crepe_onnx_full pretrain/crepe_onnx_full.onnx \
--crepe_onnx_tiny pretrain/crepe_onnx_tiny.onnx \
--model_dir model_dir \
--samples samples.json
[Errno 2] No such file or directory: 'voice-changer-native-client'
Booting PHASE :__mp_main__
サーバプロセスを起動しています。
Booting PHASE :__mp_main__
サーバプロセスを起動しています。
Process SpawnProcess-1:1:
...
OSError: [Errno 9] Bad file descriptor
あれー、と思っていったん終了して再度起動したら同じNo such fileのエラーは出るものの起動できた。
なんこれ。