ボーカル抽出ができるSpleeterを簡単に動かす方法【Python on Ubuntu】

ボーカル抽出ができるSpleeterを簡単に動かす方法【Python on Ubuntu】 プログラミング

昨日、Spleeterによるボーカル抽出を検証しました。
検証したのは、Windows環境でした。

その様子は、次の記事で解説しています。
また、Spleeterやボーカル抽出に関する説明は次の記事内で行っています。

しかし、どうやらSpleeterをWindows環境で動かすのは大変なようです。
確かに、Spleeterのインストールは決して簡単とは言えないかもしれません。

ただ、「Linux環境であれば、簡単にインストールできるのでは?」と感じていました。
Windows環境へSpleeterをインストールしている際に。

そこで、今回はSpleeterをLinux環境、Ubuntuにインストールします。
Windows環境しか用意できない場合でも、大丈夫です。

本記事の内容

  • Ubuntu環境の準備
  • ffmpegのインストール
  • libsndfileのインストール
  • Spleeterのインストール
  • 【注意点あり】Spleeterの動作検証

それでは、上記に沿って解説していきます。

Ubuntu環境の準備

自宅サーバー楽勝という方は、リアルにUbuntuを用意してもOKです。
Windows環境しか用意できない方には、仮想環境があります。

ただし、いづれであってもメモリ8GBは必要です。
このことは、後で注意点としても記載しています。

また、PCのスペックが低いと仮想環境はおススメしません。
Windows上でUbuntuを動かす方法は以下の記事が参考になります。

上記の順番に対応していけば、Windows上にUbuntuを用意できます。
おそらく、WindowsにSpleeterをインストールよりは簡単です。

ちなみに、仮想環境として構築されるUbuntuのバージョンは18.04.5です。
あと、インストール作業に入る前に、Ubuntuにログインした状態で次のコマンドを実行しておいてください。

$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install python3-pip
$ sudo python3 -m pip install --upgrade pip

インストールを行うツールを導入・更新しているのです。
なお、PythonはUbuntuにデフォルトでインストールされています。

ffmpegのインストール

Spleeterを動かすための前提条件です。
インストールは必須。

ただし、Windowsでのインストールは若干面倒です。
ちなみに、Windows環境へのインストールは次の記事で解説しています。

Windows環境へのインストールと比べると、Ubuntuへのインストールは拍子抜けします。
それぐらい簡単です。

$ sudo apt install ffmpeg

上記コマンドを実行して、聞いてくる問いには「y」でEnter。
ffmpegのインストール完了には、数分かかります。

インストールが完了したら、以下のコマンドで確認しましょう。

$ ffmpeg -version
ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libavresample   3.  7.  0 /  3.  7.  0
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100

問題なさそうです。
では、次にlibsndfileのインストールを行います。

libsndfileのインストール

Libsndfile は、標準的なライブラリインターフェイスを介して、サンプリングされたサウンド (MS Windows WAV や Apple/SGI AIFF 形式など) を含むファイルを読み書きするための C ライブラリです。

libsndfileは、「評価」を行うために必要とのこと。
「評価」を行わないと不要ということになります。

そのため、Windows環境へのインストールの際には、libsndfileはインストールしていません。
今回は、将来的に「評価」を検証してみたいのでインストールしておきます。
何より、Ubuntuには簡単にlibsndfileをインストールできるので。

インストールコマンドは、以下。

$ sudo apt install libsndfile1-dev

上記コマンドを実行して、聞いてくる問いには「y」でEnter。
libsndfileのインストールだけでは、ツールのようなモノがインストールされません。

そのため、バージョンを確認できるコマンドも存在していません。
よって、ファイルのありなしで確認しておきます。

$ find /usr/ -name libsndfile*
/usr/lib/x86_64-linux-gnu/libsndfile.a
/usr/lib/x86_64-linux-gnu/libsndfile.so.1
/usr/lib/x86_64-linux-gnu/libsndfile.so.1.0.28
/usr/lib/x86_64-linux-gnu/libsndfile.so
/usr/share/doc/libsndfile1-dev
/usr/share/doc/libsndfile1-dev/html/libsndfile.jpg
/usr/share/doc/libsndfile1-dev/html/libsndfile.css
/usr/share/doc/libsndfile1
/usr/share/doc-base/libsndfile

ファイルがあることにより、libsndfileのインストール完了とします。
では、Spleeterのインストールを行いましょう。

Spleeterのインストール

pipコマンドにより、インストールします。
root権限でインストールしておきます。

$ sudo pip3 install spleeter

たった1分程度でSpleeterのインストールが完了しました。
Windows環境だと10分ほどかかりましたけどね。

そもそも、マシンスペックが圧倒的に異なるので、比較するのは適切ではないかもしれません。
そうだとしても、Linux系のOSだとインストールが速いのは確かでしょう。

Spleeterのインストール状況の確認です。
root権限でインストールしたので、「sudo」を付けて実行。

$ sudo spleeter -h
usage: spleeter [-h] {separate,train,evaluate} ...

positional arguments:
  {separate,train,evaluate}
    separate            Separate audio files
    train               Train a source separation model
    evaluate            Evaluate a model on the musDB test dataset

optional arguments:
  -h, --help            show this help message and exit

Spleeterのインストールは、問題なさそうです。

【注意点あり】Spleeterの動作検証

Windows環境と同じ動作検証を行います。
動作検証の詳細に関しては、以下の記事の「Spleeterによるボーカル抽出」をご覧ください。

その動作検証中に判明した事実があります。
その事実とは、メモリが少ないとメモリ系のエラーになることです。

メモリが、4GBではアウトでした。
そして、メモリを8GBにすると正常に動作しました。
(仮想環境では自由に増減できる)

各環境によるため一概には言えませんが、メモリ8GBは欲しいところです。
なお、Windows環境で動作検証した際は、メモリ8GBのPCでした。
結構ギリギリセーフだったのかもしれません。

実際、メモリに関するエラーの報告がちょこちょこあるようです。
よって、メモリ8GBのPCを用意しましょう。

メモリを8GBに増やしたら、動作検証は問題ありませんでした。
Windows環境と同じようにボーカル抽出ができました。

最後になりますが、今後はUbuntu上のSpleeterを利用していきます。
マシン自体の性能が違いますが、やはりLinux上の方が速く処理するはずです。
Windows上の方が速く処理できる道理がないので。

タイトルとURLをコピーしました