Notes

メモ書き雑記ブログ(テニス・ガジェット・音楽活動など)

mac に Spleeter (音楽素材分割エンジン) をインストールして実行してみる

音楽データからボーカル・ドラム・ベースの音を個別に抽出できる「spleeter」

ざっくりな機能は以下を見てもらえればわかるかと。

 

mac にインストールして使えるようにしてみます。

※実施日は 2021/04/08 

 

環境

MacBook Air (Retina, 13-inch, 2019)

macOS Big Sur 11.2.3(20D91)

 

インストール

Miniconda インストール (※Python環境構築済みの場合は不要)

spleeter は Python で動くので、まずその環境を作ってあげる必要があります。

すでにPython環境構築済みの場合は不要です。

今回は Python 3.9 をインストール。

 

Miniconda の mac用 pkg をダウンロード。

pkgファイルを実行して画面に従えばインストールできます。

 

spleeter インストール

ターミナルを開いて以下のコマンドを実行していく。

まずは github から spleeter をダウンロード。

 

git clone https://github.com/deezer/spleeter

 

以下を実行して使えるようにしていく。

 

conda install -c conda-forge spleeter (注1)

conda env create -f spleeter/conda/spleeter-cpu.yaml (注2)

 

注1:conda install -c conda-forge spleeter でエラーの場合

こんなエラーが出た場合、

$ conda install -c conda-forge spleeter
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.9.2
  latest version: 4.10.0

Please update conda by running

    $ conda update -n base -c defaults conda

 

# All requested packages already installed.

書いてある通りターミナルで

 

conda update -n base -c defaults conda

 

を実行する。 

 

注2: conda env create -f spleeter/conda/spleeter-cpu.yaml でエラーの場合

こんなエラーが出た場合、

EnvironmentFileNotFound: '/Users/*****/spleeter/conda/spleeter-cpu.yaml' file not found

 

エラー内容の通り、 spleeter-cpu.yaml がないので作ります。

テキストエディタを開いて以下をコピペ。

ファイル名を spleeter-cpu.yaml で保存して、/Users/*****/spleeter/conda/ に置きます。

name: spleeter-cpu

channels:
- conda-forge
- anaconda

dependencies:
- python=3.7
- tensorflow=1.14.0
- ffmpeg
- pandas==0.25.1
- requests
- pip
- pip:
- museval==0.3.0
- musdb==0.3.1
- norbert==0.2.1
- spleeter

 

これで成功するはず。

 

Spleeter の実行

ターミナルで以下のコマンドを実行。

 

conda activate spleeter-cpu

spleeter separate 変換前の音楽ファイル.mp3 -p spleeter:2stems -o 出力フォルダ名

 

-p spleeter: のところで以下のように分割方法を変えられる。

2stems:ボーカル/伴奏に分類。

4stems:ボーカル/ドラム/ベース/その他の楽器

5stems:ボーカル/ドラム/ベース/ピアノ/その他の楽器

 

注意点として spleeter separate -i で紹介されている記事が多いけど、逆に -i があるとエラーになります。

ヘルプの記載が以下になってるので仕様が変わったみたい。

Options:
  -i, --inputs TEXT              (DEPRECATED) placeholder for deprecated
                                  input option

 

オプションをいじると色々細かいこともできそうですが、本日はここまで。