【メモ】Spleeterで、楽曲の伴奏とボーカルを分離させる
こんにちは、未来のポスト米津玄師です(超適当
私も米津玄師になりたくて、「歌ってみた」動画を作りたいと思ったんですけど、どうも著作権が色々きびしくて、簡単にはいかなそうとわかりました。
それで、最終手段として次のような作戦を考えました。
「AIに作曲させた音源の、伴奏とボーカルを分離し、その伴奏に私が歌を入れる」
で、今日はそのために、自前のPCで伴奏とボージャルを分離させるソフト、spleeterというのを動作させてみました。
この記事は、そのやり方の自分用のメモですが、よかったら参考にしてください。
では参りましょう。
01.spleeterって?
spleeterというのは、Pythonで書かれたプログラムであり、音源を伴奏とボーカルに分離してくれるものです。
Githubのリポジトリはこちら。
02.インストールの手順確認
インストール方法を見るには、まず上記のリポジトリにアクセスし、上部のメニューから「Wiki」を選びます。
移動した先で、「Installation」という水色の文字をクリックします。
すると下のような情報が表示されます。ffmpeg、libsndfileというパッケージをまずインストールして、そのあとspleeterをインストール、という手順のようです。ただしlibsndfileは、「only needed if you plan to perform evaluation(評価を行う時のみ必要)」とのことで、spleeter実行時に「evaluate」オプションを使いたい時に必要なようですが、ここでは不要としておきます。
03.インストールの開始。まずAnacondaで、spleeter実行環境を用意する
私はPC上で、いろんなPythonの環境を構築できるように、Anaconda NavigatorというPython実行環境をインストールしています。まずはこれを前提とさせてください。
Anacondaの左のメニューから、「Environment」を選びます。すると中央に、作成済の環境(Environment)が表示されます。そのずーっと下の緑色の「+」、Createを押します。
すると作成したい環境の名称と、Pythonのバージョンなどを指定する窓が開きます。名前は自分でわかりやすいものにしてください。
Spleeter最新版が動作可能なPythonのバージョンの確認は、Slpeeterのリポジトリの右側のペインから、「Releases」という文字をクリックすると、みることができました。「Python 3.9含むすべてを有効にするために、TensorFlow 2.5の依存関係をアップデートしています」、とあります。よく意味がわかりませんでしたが、どうやら「現在はPython 3.8以前の環境を推奨します」ということのようです。
3.8.20というのがあったので、それを選びました。右下の「Create」ボタンを押して、環境を生成します。
※なお、3.9.20でも確認してみたらspleeterの実行でエラーが発生して動きませんでした。
環境「For_Spleeter」が出来たのを確認して、左のメニューの「Home」を選びます。
上部に選択中の環境名が表示されています。これがさっき作ったSpleeter用の環境であることを確認して、下の「Powershell Prompt 0.0.1」のパネルの「install」をクリックします。すると選択中の環境で、Powershell Promptを使うための準備がされます。
準備が完了すると「install」ボタンは「Launch」ボタンに変化します。それを押して、Powershell Promptを開きます。
PowerShellが開きました。
04.作成した環境に、ffmpegをインストールする。
ここでさっき確認した、「ffmpeg」のパッケージのインストールを行います。
上記コマンドを実行すると、「Proceed ([y]/n)?」、と聞かれますので何も入力せずEnterを押すと、インストールが開始されます。
インストールが完了しました。
試しにffmpegと入力してEnterを押してみます。次のように、バージョンなどが表示されればOKです。
05.spleeterのパッケージをインストールする
次にspleeterのパッケージを、次のコマンドでインストールします。
インストールが完了しました。
こちらも「spleeter」と入力しEnterを押して、動作するか確認してみましょう。次のように、使い方(Usage)などが表示されればOKです。
06.インストールしたspleeterで、曲を伴奏とボーカルに分割してみる
動作確認です。まず分割してみたい曲を用意しましょう。私は次の曲で試してみることにしました。「♪キトクロー、キトクロー、キノクトロー」っていう歌ですね(笑
上記をダウンロードして、C:\spleeter_test\inputというフォルダの下に置きます。
実行方法については、Githubの下記ページで確認できます。英語ですが(白目
下記のように、「separate」コマンドの後ろに出力フォルダ、入力ファイルと記述した場合、デフォルトで伴奏とボーカルの分割が行われるようです。
次のようなコマンドで実行してみます。うまく分離できるでしょうか?
実行完了しました。
「accompaniment.wav」(伴奏)、「vocals.wav」(ボーカル)の2つのファイルが出来ており、再生するとうまく分離されてました! ありがとうspleeter!
このspleeterというツールにも、AIの技術が使われているようで、いやあもうAI様さまですねえ。ありがたやー。