2019年11月07日 08時00分 レビュー

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



ボーカルや複数の楽器で構成された音楽データを、機械学習を用いてそれぞれの音に分類したファイルとして出力する「spleeter」がGitHubで公開されています。ボーカルの声や伴奏の部分だけを抽出できるとのことで、実際に使ってみました。



deezer/spleeter: Deezer source separation library including pretrained models.

https://github.com/deezer/spleeter



以下のURLにアクセスすれば、spleeterでサンプルの楽曲を分離することができます。



spleeter.ipynb - Colaboratory

https://colab.research.google.com/github/deezer/spleeter/blob/master/spleeter.ipynb#scrollTo=dGL-k5xxoKbu



[]にマウスオーバー。





再生ボタンが表示されるので、上から順に10個のコマンドをクリックしていきます。





すべて実行すれば、「Audio('output/audio_example/vocals.wav')」ではボーカルのみを抽出した音源、「Audio('output/audio_example/accompaniment.wav')」では楽器のみを抽出した音源を再生することができます、





◆Gitのインストール

PC上でspleeterを実行するためには、まずGitをインストールする必要があります。今回はWindowsでspleeterを使用するので以下のウェブサイトにアクセス。



Git

https://git-scm.com/



「Download X.XX.X for Windows」をクリックします。なお、「X.XX.X」の部分はバージョンによって異なります。





「ファイルを保存」をクリック。





「Git-2.28.0-64-bit.exe」をダブルクリックして実行します。





「実行」をクリック。





「Next」をクリック。





ファイルの保存場所を選択します。変更の必要がなければそのまま「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Git from the command line and also from 3rd-party software」を選んで「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





「Next」をクリック。





どちらもチェックを外して「Next」をクリックすれば完了です。





◆Condaのインストール

次に、「Conda」をインストールするため下記のURLにアクセス。



Conda — Conda documentation

https://docs.conda.io/en/latest/



「Conda-build」をクリック。





「Installing and updating conda-build」をクリック。





「install conda」をクリック。





今回はWindowsでspleeterを使用するため「Windows.」をクリック。





spleeterは「Anaconda」と「Miniconda」のどちらでも実行可能です。今回はMinicondaを使用するので「Miniconda installer for Windows」をクリック。





使っているPCに応じて、64bit版か32bit版を選んでクリックします。今回は64bit版をダウンロードします。





デスクトップにMinicondaをダウンロードすると画像のようなアイコンが表示されるので、クリックして実行します。





「実行」をクリック。





「Next」をクリック。





「I Agree」をクリック。





Minicondaをインストールするフォルダを選択して、「Next」をクリック。





「Finish」を押せばインストールは完了です。





◆spleeterの実行

インストールしたMinicondaをクリックして起動します。





以下の赤枠部分のコマンドをMinicondaへ順番に打ち込めば、音楽データを楽器ごとに分類できます。なお、以下の手順およびスクリーンショットは2019年11月時点の内容であるため、最新版の手順とコマンドはGitHub・spleeterのページにある「Quick start」の記載内容を確認する必要があります。





spleeterが実行可能な状態になったら、Minicondaに「spleeter separate -i (分類したい音楽データのフォルダパス) -p spleeter:(分類方法) -o output」を入力すると、楽器ごとに抽出されたデータが作成されます。



分類方法は、記事作成時点では3種類用意されていました。

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

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

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



たとえば、spleeterに付属しているサンプルデータ「audio_example.mp3」を、ボーカルと伴奏の2種類に分類する場合は「spleeter separate -i spleeter/audio_example.mp3 -p spleeter:2stems -o output」と入力します。





spleeterのフォルダと同じ場所に作成された「output」というフォルダにデータが出力されます。





元の音楽データの名前でフォルダが作成されているので、フォルダをクリックすると……





ボーカル部分は「vocals.wav」、伴奏部分は「accompaniment.wav」で出力されていました。





試しに、以下のMP3ファイルをボーカルと伴奏に分けて抽出してみます。抽出前のデータはこんな感じ。

MP3を再生できません。



ボーカルの音声だけを抽出したものがこちら。息継ぎの音までしっかり抽出されており、伴奏部分が全く聞こえなくなっています。

MP3を再生できません。



伴奏部分は以下のようになります。ほんの少しボーカルの高音部分が残っていますが、ほぼ伴奏のみになっています。

MP3を再生できません。



「ルルル」や「ラララ」のような歌詞が言葉ではない楽曲は、うまくデータを抽出できない場合があるので注意が必要です。