はじめに
Google Colab上で曲の音源分離を試していたのですが、分離された音源を簡単に聴けるUIが欲しいと感じましたので、Google Colab上で動かすStreamlitとDemucsという音源分離ライブラリを使った簡易アプリを作ってみました。
何ができるか
YouTubeの音源をURLで指定し、その音源をDemucsという音源分離ライブラリを使ってbass, vocals, drums, other の4種類に音源分離します。Streamlit でアプリ化することで、曲を指定して音源分離された音源を聴くこととダウンロードすることが可能です。
また、一度音源分離を実行した曲はColabのランタイムが続いている限り再生可能です。
※ 音源分離の実行時間は、音源の長さに比例するようです
ノートブック
使い方(上から順に実行するだけです)
➀ 最初にランタイムを GPU に変更 しておきます。
②. 必要なライブラリをダウンロードします
!python3 -m pip install -U git+https://github.com/facebookresearch/demucs#egg=demucs
!pip install streamlit
!pip install yt-dlp
③app.py を作成
というセルを実行すると、app.py というファイルが作成されソースコードが書き込まれます。
④ 最後のセルを実行します
!streamlit run app.py & sleep 3 && npx localtunnel --port 8501
- localtunnelは一時的なウェブサイトや開発サーバーの公開に使用されるツールですが、悪意のある第三者によるフィッシングサイトの作成などに使われることがあるため、注意喚起のページが表示されます。
- 上記の出力された 「External URL」 内の IPアドレス(XX.XX.XX.XX) を「Endpoint IP」に入力すると、Streamlitのアプリにリダイレクトされます。(グローバルIPアドレスの入力が必要な理由は、正規のウェブサイトであることを確認し、フィッシングサイトへの誤ったアクセスを防ぐため)
参考