? 耳コピ/ボーカル抽出が捗る!Spleeterの使い方 – YTPMV.info

耳コピ/ボーカル抽出が捗る!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://www.gyan.dev/ffmpeg/builds/にアクセスして必要なものをダウンロードしていきましょう。 

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

環境変数の追加

次に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のドキュメントを読んでもっと遊んでみてください。機械学習に関する開発は昨今技術の進展が目覚ましいため、今後このサービスがどのように変わっていくのか引き続き動向をチェックしていきたいと思います。 ブログ初の寄稿ということで気合を入れて書きました。それではまた逢う日までノシ。

コメント

  • ダウンロードが成功し試しに上記のコマンド(“”ありなし)を入力したところ、指定されたモジュールがないと出てしまいました。解決法を教えていただけませんか?

      • 返信ありがとうございます。
        ffmpegは、上記の通りに入力しコマンドでも確認できました。
        Anacondaで試してもやはり最終的にモジュールがないと言われ使えませんでした。
        しかし、
        https://qiita.com/Ryo0o0oOO/items/65acd38f4034800388c0
        このサイトのspleeterは上手く動いてくれました。
        しばらくは、これを使って出力しようと思います。

        • ImportError: DLL load failed: 指定されたモジュールが見つかりません。

          Failed to load the native TensorFlow runtime.

          See https://www.tensorflow.org/install/errors

          for some common reasons and solutions. Include the entire stack trace
          above this error message when asking for help.

          私もこのメッセージがでます。
          ffmpegは、上記の通りに入力しコマンドでも確認できました。
          Anacondaで試してもやはり最終的にモジュールがないと言われ使えませんでした。
          リンク先のサイトではうまくいきましたが、アップロードをするタイプなので長い曲のwav等がうまく行かない時があるのがネックですね。

  • インストールしようとしても、

    ERROR: Could not find a version that satisfies the requirement spleeter (from versions: none)
    ERROR: No matching distribution found for spleeter

    と出て、止まってしまっています。
    どうすればいいですか?

  • PC初心者なので、Anaconda経由の記事で、完全に手詰まりしていて、本当に助かりました!
    ありがとうございます!

  • 以前のセットアップ方法でspleeterを使おうとするとエラーになるようになり、このページのやり方で再インストール中です。

    本文中のhttps://www.gyan.dev/ffmpeg/builds/のリンク先が、記載されているのとは別のURLになっていて、404になり一瞬戸惑いました。

  • 上記に記載されている方法でDLしいざ、やってみよう!
    としたらこちらが出てきました。何が悪いのでしょうか。

    PS C:\Users\Users\Desktop> spleeter separate -i C:\Users\Users\Desktop\01.mp3 -o C:\Users\Users\Desktop\ -p spleeter:2stems
    Usage: spleeter separate [OPTIONS] FILES…
    Try ‘spleeter separate –help’ for help.

    Error: Missing argument ‘FILES…’.

    • インストール自体は出来ているように見えるので、指定した場所にファイル、フォルダが存在するか、またコマンドにスペースなど余計な文字が含まれないか確認してみると良いかもしれません。
      あるいはファイルのパスを””で括るとか?現在試す環境が無いのでわかりませんが…

    • 私も同様のエラーが発生します。
      過去にspleeterで分割した元ファイルでも試しましたが同様のエラーが発生しています。
      python 3.7.5での動作保証がなくなったか?

    • 自分も同じエラーで困っていたのですが、最近 -i の指定ができなくなったようで
      spleeter separate -p spleeter:2stems C:\Users\Users\Desktop\01.mp3
      といった感じにすれば動くようです。

  • お世話になります。
    上の方で紹介されていた方法を活用し、
    spleeter separate -p spleeter:2stems -o c:\spleeter C:\Users\user\spleeter\spleeter_music\1.wav
    を実行すると、無事に分離に成功したのですが、4stemsや5stemsで分離しようとすると、エラーも表示されずにスルー状態になります。
    しかし、コマンド実行直後にCドライブをチェックすると確実に容量が減っています。何度も実行し続けると、その度に容量が減り続けているので、おそらくどこかに保存されているのだと思います。
    思い当たるフォルダ(userフォルダ直下の「spleeter」や「miniconda3」「pretrained_models」など)は一通りチェックしましたが、そもそも容量が増加した形跡は確認できませんでした。
    この件につきまして、何か情報をお持ちの方はいらっしゃいますか?
    4つや5つで分離を試してみたいので、よろしくお願いします。

    • 4stemsや5stemsを試してみましたが私は成功しました。私の場合は
      spleeter separate -p spleeter:5stems C:\Users\UserName\Downloads\音源.wav
      で実行し、処理が終わると
      C:\Users\UserName\AppData\Local\Temp\separated_audio\音源
      にvocals,piano,other,drums,bass,accompaniment の計6つの音声データが確認できました。成功例として参考になれば良いのですが、私はこういった知識に疎いため的確なアドバイスが出来ず申し訳ありません。

コメントする?

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