昨日、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は、「評価」を行うために必要とのこと。
「評価」を行わないと不要ということになります。
そのため、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上の方が速く処理できる道理がないので。