【Spleeter】DeepLearning でバンドの音を歌・ドラム・ベースなどのトラックに分ける【Google Colab】

spleeter

知人が、Twitterで耳コピストに便利??と つぶやいていた記事があり

https://gigazine.net/news/20191107-spleeter/

どうやら、バンド演奏の楽曲から、それぞれの音(ボーカル・ドラム・ベース・その他の楽器)に、分けるようです。

元記事は、こちらになるようで、Deezer.ioの一部の機能として発表されているようです。

https://deezer.io/releasing-spleeter-deezer-r-d-source-separation-engine-2b88985e797e

フランスの会社で、音楽ストリーミング関係のAPI等を販売している会社のようですね。

https://developers.deezer.com/

で、元のGithubに行ってみました。

追記1/June/2021:Ver2.2.2まで来てますね.  spleeter4maxというのも出てる。

Google Colab で体験できます。

Google Colab での実装

あんまり難しいこと考えずに、これだけでいいかも(笑)

使い方は、上のをクリックして、実行していってくださいませ。

曲を変更するなら。

!wget https://github.com/deezer/spleeter/raw/master/audio_example.mp3

の行を変更するといいですね。

Google colab の Google Driveとの連携や ファイルのアップロードなどはこちらのファイルが参考になると思います。

Mount_Google_Drive.ipynb

spleeter自体のコマンドオプションは、これだけあります。

usage: spleeter separate [-h] [-a AUDIO_ADAPTER] [-p PARAMS_FILENAME]
[–verbose] -i AUDIO_FILENAMES [AUDIO_FILENAMES …]
[-o OUTPUT_PATH] [-n {directory,filename}]
[-d MAX_DURATION] [-c {wav,mp3,ogg,m4a,wma,flac}]
[-m]

オプションの説明

-h、-help このヘルプメッセージを表示して終了
-a   AUDIO_ADAPTER、-adapter AUDIO_ADAPTER 
   オーディオI / Oに使用するオーディオアダプターの名前
-p  PARAMS_FILENAME、
-params_filename PARAMS_FILENAME
  パラメーターを含むJSONファイル名

--verbose詳細ログを表示します
-i AUDIO_FILENAMES [AUDIO_FILENAMES ...]、
-audio_filenames AUDIO_FILENAMES [AUDIO_FILENAMES ...]
  入力オーディオファイル名のリスト
-o OUTPUT_PATH、-output_path OUTPUT_PATH
  オーディオファイルを書き込む出力ディレクトリのパス
-n {ディレクトリ、ファイル名}、-output_naming {ディレクトリ、ファイル名}
  出力ベースパスの名前の選択: "filename"
 (入力ファイル名、つまり/path/to/audio/mix.wavを使用します
  に分離されます
  <output_path> / mix / <instument1> .wav、
  <output_path> / mix / <instument2> .wav ...)または「ディレクトリ」
 (入力最終レベルディレクトリの名前を使用します。
  インスタンス/path/to/audio/mix.wavはに分離されます
  <output_path> / audio / <instument1> .wav、
  <output_path> / audio / <instument2> .wav)
-d MAX_DURATION、-max_duration MAX_DURATION
  オーディオ処理の最大期間を設定します(入力ファイルの最初の数秒のmax_durationのみを分離します)
-c {wav、mp3、ogg、m4a、wma、flac}、-audio_codec {wav、mp3、ogg、m4a、wma、flac}
  分離出力に使用されるオーディオコーデック
-m、-mwf  分離にマルチチャネルウィナーフィルタリングを使用するかどうか

例では、audio_example.mp3 という入力ファイルを、outputディレクトリに出力するってことですね。

!spleeter separate -i audio_example.mp3 -o output/

ちなみに、-p のところは分類する方法で、

2stems:ボーカル/伴奏に分類。
4stems:ボーカル/ドラム/ベース/その他の楽器
5stems:ボーカル/ドラム/ベース/ピアノ/その他の楽器

何曲かやってみました

フリーのバンド素材ってあんまり知らないんで。。小平で有名なBig市川さんの楽曲で(笑)

Happy Townという曲があります。ビデオは、こちら

このボーカルを取り出してみました。

どうです?ちゃんと切り出せていますね!

楽器の方も

すごい!カラオケができてますよ!!

Deep Learning恐るべし!!

Open Resources for Audio Source Separation

PythonとTensorflowを使ったDeeplearningで作られているようです。このプロジェクトすごくて。。 Opensourceのプロジェクトのようです。

https://sigsep.github.io/

詳しいことは、このページがすごい。なんと300個も引用文献があります。Audio souceの分離や、ストリーミングシグナル(時系列信号)の分離などの処理についての技術資料としてとても有益におもいました。

https://sigsep.github.io/literature/

こちらにチュートリアルで、Google Colabで、機械学習のサンプルとしても、Pythonを使った音声処理や、信号処理の教材としても使えそうな内容です。

https://sigsep.github.io/tutorials/#eusipco-2019-deep-learning-for-music-separation

EUSIPCO 2019: Deep learning for music separation

論文形式でもダウンロードできます。

凄いですね。

Open In Colab ← 一応、ファイルアップロード・ダウンロードの機能つけておきました。

しかし、この方法でいろいろできるってことは、いろんな信号処理やノイズ処理とかかなり進むんじゃないかな? 上司の声は聞こえないフィルターとか??(笑)

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください