ボーカル分離ソフト Spleeter を Apple silicon で動かす
Spleeter は曲のパート(ボーカル、ドラムなど)を分離してくれるソフトウェアである。 機械学習を利用しており、精度が高い。
これを手元の M2 Macbook Air で動かすことができたので備忘録を残す。
主な部分は以下の issue のコメントを参考にしている。
必要なもの
手順
レポジトリを任意の場所にクローンして、Apple silicon に対応したブランチに切り替える
git clone https://github.com/deezer/spleeter.git git checkout tf_apple
pyproject.toml
の [tool.poetry.dependencies]
をいじる
llvmlite
を^0.37.0
にするprotobuf = ">3.19.0,<3.21.0"
を追加するgrpcio = "1.49.1"
を追加する*1
conda 環境をつくってアクティベート(名前はなんでもいい)
conda create -n spleeter python=3.9 poetry conda activate spleeter
lock ファイルを更新
poetry update --lock
依存モジュールを入れる
(各モジュールのバージョンは記事執筆時点のもので、インストールするタイミングによって変わるかもしれないので、poetry.lock
の中身を参照するなどして適切なバージョンに合わせること)
conda install -c conda-forge numpy==1.19.5 numba==0.54.1 grpcio==1.49.1 cffi==1.15.1 typed-ast==1.4.3 h5py==3.1.0 librosa==0.8.0
本体をインストール
poetry install
うまく動いているか確認
spleeter --version poetry run pytest tests/
テストはいくつか失敗するかもしれないが、動作に支障はない。
実際に使う
spleeter separate -p spleeter:2stems -o [出力先ディレクトリ] [音楽ファイル]
出力先に、ボーカルとそれ以外が分かれた wav ファイルが吐き出される。
2stems
のところを 4stems
にすればドラムとベースも分けてくれるし、5stems
にすればピアノも分かれるようだ。
*1:これを追加しないと 1.50.0 が選択されるが、記事執筆時点で conda-forge に 1.50.0 がなくてインストール時にエラーになるため