耳コピ/ボーカル抽出が捗る!Spleeterの使い方

この記事はあるくおすし氏による寄稿記事です。感謝。


はじめに

はじめまして、あるくおすしというものです。去年(2019)の半ばあたりから主に音MAD等の映像作品を作っています。自分に興味があるという方は@walkingsushiboxなりuser/52842941を覗いてやってください。

Spleeterってなんぞ

早速本題です。 Spleeterとはフランスの音楽配信サイトであるDeezerが開発したパート分離ソフトで、任意の楽曲をコイツに食わせるとドラム、ベース、伴奏、ボーカル、などのパート毎に分離された音声ファイルを出力してくれます。 今流行りの機械学習の技術を使用しており、自分の手元にある曲を使ってアルゴリズムを「訓練」することもできるそうです(自分はやりませんが)。 うまく活用すれば耳コピやボーカル抽出のワークフローが劇的に変化します。

実際に使用する方法ですが

  1. melody mlなどのオンラインサービスを使う
  2. ソフトをダウンロードして自分のパソコンで走らせる

の二種類があります。この記事では自分の手元で走らせる方法を解説していきますが、少々手間がかかります。しかし一度導入してしまえば様々な場面で強力な効果を発揮するので、地道にやっていきましょう。 また英語が分かるという方はこちらの動画をご覧ください。ぶっちゃけこの記事はこの動画の受け売りですので。 https://www.youtube.com/watch?v=tgnuOSLPwMI

前提

この記事で紹介するのはWindowsマシンへのインストール方法です。Macとか使ってる人は別の記事を探してください。またSpleeterはGPUで動作するバージョンも用意されていますが、今回解説するのはCPUで動作するバージョンです。グラフィックカードを持っていて、その性能を有効活用したい方は以下のリンクからGPUバージョンの導入方法を見てやってみてください。https://github.com/deezer/spleeter/wiki/1.-Installation

導入方法

Pythonの導入

SpleeterはPythonというプログラミング言語で書かれているため、その言語をパソコンにインストールする必要があります。こちらのサイトから自分の環境に合ったものを選びます。 Spleeterは3.6.xもしくは3.7.xで動作が保証されているので、僕は3.7.5を使っています。 

Python download page
Python download page
enter image description here

ダウンロードしたら実行してInstall Nowをクリックします。この時 “Add Python 3.x to PATH”という項目に必ずチェックを入れてください。

enter image description here

こんな感じになる 

enter image description here

PowerShellの起動

Pythonのインストールが終わったらPowerShellを起動してみましょう。コマンドプロンプトと同じようなものですがシンタックスハイライト(色分け)が行われるので非常に見やすいです。検索窓から探してもよし、任意のフォルダーのフィールドをShift + 右クリックするとPowerShell ウィンドウをここで開くというオプションが表れますのでそれを選択してもよし。 

enter image description here

 うまく起動できれば以下のような青い画面が立ち上がります。 Spleeterはコマンドラインで動作するソフトウェアなのでインストール・実行もすべてこの画面から行います。 

enter image description here

まずは先ほど入れたPythonが正しく動作しているかのチェック。 python --versionと入力してみます。 

enter image description here

Python 3.x.xと正しく出力されればOKです。

Spleeterのインストール

ではコマンドを使ってSpleeterをインストールしていきます。Spleeterはオンライン上でパッケージ化されて配布されているのでpipコマンドで取り寄せます。pip install spleeterと入力してください。 

enter image description here

少々待つとなんかうじゃうじゃ出てきますがこれでOKです。試しにspleeter --helpを実行してみましょう。

enter image description here

ご覧のようにヘルプが表示されれば成功です。ヨシ!

ffmpegの導入

ソフト本体は入ったわけですが、まだやることがあります。ffmpegの導入です。 ffmpegは音声や動画を扱うための前提ソフトとなります(動画編集とかやってる方なら知っていると思います)。https://ffmpeg.zeranoe.com/builds/にアクセスして必要なものをダウンロードしていきましょう。 

enter image description here

ダウンロードが完了したら任意の場所に解凍します。このとき解凍後のフォルダをどこか忘れない場所に設置してください(デスクトップはお勧めしない)。今回はドキュメントに設置した前提で話を進めます。

環境変数の追加

次にffmpegをspleeterが呼び出せるようにします。 ドキュメントに戻り、フォルダの名称をffmpegに変更し、アイコンをShift + 右クリックしてパスのコピーを行います。 

enter image description here

検索欄に「システム」と入力しシステムのコントロールパネルを開きます。

enter image description here

  パネルから システムの詳細設定 > 環境変数 > システムの環境変数 > PATH にたどり着きます(画像拡大推奨)。

enter image description here

 編集を押すと以下の画面が出てくるので、右上から新規を選択し、さっきコピーしたフォルダへのパスを貼り付けます。  

enter image description here

このとき左右の””を外し、末尾に/binを追加することを忘れないでください。 最後にPowerShellでffmpegを実行し、ffmpegが正しく認識されているか確認しましょう。 

enter image description here

以上のように表示されれば成功です。インストールは完了しました。お疲れ様。

使用方法

早速ソフトを使ってみましょう。今回は相対性理論の「ミスパラレルワールド」を例に使用方法を解説していきます。

東京都心 is 並行世界

spleeterには音を分割する際全部で3つのモードがあります。

  • stem2: ボーカル/伴奏
  • stem4: ボーカル/ベース/ドラム/その他
  • stem5: ボーカル/ベース/ピアノ/ドラム/その他

Stem2はオーソドックスなボーカル抽出が行えますが、stem4, 5を使うと楽器ごとにパートを分離できます。半端ねえ!実際にコマンドを打っていきましょう。

 spleeter separate -i 音源のパス -o 出力先のパス -p spleeter:[2/4/5]stems

今回はデスクトップにあるoriginal.mp3をボーカルと伴奏に分離したいので

spleeter separate -i C:\Users\UserName\Desktop\original.mp3 -o C:\Users\UserName\Desktop\ -p spleeter:2stems

と入力しました(音源へのパスは、Shift + 右クリックからコピーできます)。 CPUの性能にもよりますが、少なくとも1分ほどはかかるので気ままに待ちましょう。 

Spleeterの初回実行時、学習モデルのダウンロードがあるため多少時間がかかります。根気強く待ちましょう。
モデルの初回ダウンロードを失敗した場合、再ダウンロードする方法が用意されておらず何度実行してもCouldn't find trained model at pretrained_models\2stems.と表示されうまく行かなくなります。
その場合は手動で学習済みモデルDLする必要があります。URL
アーカイブを解凍し、PowerShellを実行したフォルダにpretraind_modelsフォルダを用意し、そこに入れて実行します。

enter image description here

/accompaniment.wav/vocals.wavがしっかり書き込まれてますね。 では実際にどの程度分離できているのか、出力された音声ファイルを聞いていきたいと思います。

2stems (ボーカル/伴奏)

かなりクオリティの高いボーカル抽出が行えていますね。カラオケ音源が手に入らない場合、これを使ってカバー音源を作ったりできそう。

4stems (ボーカル/ベース/ドラム/その他)

ボーカル、othersがところどころ聞きづらくなっていますが、ベースやギターの耳コピは格段にやり易くなっていると思います。

5stems (ボーカル/ベース/ピアノ/ドラム/その他)

今回の楽曲にはピアノが入っていないため4stemsとほとんど同じような結果になってしまいました。 電子音楽やクラシックなどジャンルが違う曲を使えば全く違った結果になると思われます。

まとめ

以上でSpleeterの導入方法と使用方法の解説は終わりとなります。少々手間はかかりますが、手軽に先端技術に触れるよい機会になるのではないでしょうか。また記事で紹介していない機能に、手元にある楽曲データを用いてモデルをさらに強化する方法などがあります。興味がある人はGitHubのドキュメントを読んでもっと遊んでみてください。機械学習に関する開発は昨今技術の進展が目覚ましいため、今後このサービスがどのように変わっていくのか引き続き動向をチェックしていきたいと思います。 ブログ初の寄稿ということで気合を入れて書きました。それではまた逢う日までノシ。

コメントする?

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です