Spleeterを使ってMacで流れる音楽を(5秒遅れで)楽器毎に音量調整できるアプリを作った
Late5
Spleeterを使って、Macで流れる音楽のボーカル・ドラム・ベース・ピアノ・その他のパートを個別にリアルタイムで音量調整できるアプリを作りました。
下記からダウンロードできます。
デモ。Spotifyで流している曲の楽器を個別に音量調整しています。
リアルタイムと言いつつ、実は音声は約5秒遅延して流れます。
この遅延は入力された音声を数秒毎に区切ってからSpleeterで分離して出力しているためで、SpotifyやYoutubeで次の曲へのスキップやシークをしても、反応は5秒遅れます・・。
Spleeter
Spleeterは機械学習を使って、入力された音楽をstemと呼ばれる楽器別の音声に分けることができる音源素材分離ライブラリ(エンジン?)です。Deezerがオープンソースとしてしています。事前に用意されたトレーニング済みの分離モデルを使うこともできるし、その気になれば自分で用意したデータをもとにトレーニングさせることもできるようです。かなり良く分離してくれます。AI恐るべし。
事前準備
今はストリーミングサービス全盛なので、曲を手元にファイルとして持っていないケースも多いと思います。
そこで、Late5では音声ループバックデバイスの利用を前提としています。これにより、iTunesだろうがSpotifyだろうがYoutubeだろうが、流れている音声は全て分離できます。
そのループバックデバイスを備えたアプリとして"Background Music"の事前インストールが必要です。"Background Music"はアプリ毎の音量調整ができるアプリなのですが、ついでにループバックデバイスをインストールしてくれます(SoundFlowerをご存知の方は似たようなものと思ってください)。
Background Music
https://github.com/kyleneideck/BackgroundMusic/releases/tag/0.4.0-DEBUG-f20dd57
注意が必要なのは、Background Musicのインストールは必要なものの、欲しいのはループバックデバイスだけなので、"Background Music"アプリをメニューバーから終了しておく必要があることです。そうしないと音声が2重で聞こえてしまいます。
その後、ここからLate5_v0.1.dmgをダウンロードして、SpotifyやYoutube, iTunesなどで音楽を流しながら起動してください。しばらく待つと、5つの音量調整スライダーがついたウィンドウが出ます。あとは各スライダーで音量調整。
うまく動かなかったり、エラーが出る場合はTwitterやGithubで報告いただけると幸いです。
今後はPANを調整したり、楽器毎にフィルターをかけれたらいいなぁと考えています。