Spleeterを使ってMacで流れる音楽を(5秒遅れで)楽器毎に音量調整できるアプリを作った

Late5

Spleeterを使って、Macで流れる音楽のボーカル・ドラム・ベース・ピアノ・その他のパートを個別にリアルタイムで音量調整できるアプリを作りました。

f:id:kyab:20200915164326p:plain

下記からダウンロードできます。

github.com

 

デモ。Spotifyで流している曲の楽器を個別に音量調整しています。

youtu.be

リアルタイムと言いつつ、実は音声は約5秒遅延して流れます。

この遅延は入力された音声を数秒毎に区切ってからSpleeterで分離して出力しているためで、SpotifyYoutubeで次の曲へのスキップやシークをしても、反応は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重で聞こえてしまいます。

f:id:kyab:20200915164214p:plain

 

その後、ここからLate5_v0.1.dmgをダウンロードして、SpotifyYoutube, iTunesなどで音楽を流しながら起動してください。しばらく待つと、5つの音量調整スライダーがついたウィンドウが出ます。あとは各スライダーで音量調整。

 

うまく動かなかったり、エラーが出る場合はTwitterGithubで報告いただけると幸いです。

 

今後はPANを調整したり、楽器毎にフィルターをかけれたらいいなぁと考えています。