こんにちは。
今回は音声と演奏を分けるSpleeterを使用してYoutubeから動画をダウンロードして音声と演奏を分けてみようと思います。
こんなことができるようになります。
Spleeter
Spleeterとは音楽ストリーミングサービス「dezzer」が公開しているオープンソースのTensorflowをつかったAIの演奏分離ライブラリになります。
GitHub - deezer/spleeter: Deezer source separation library including pretrained models.
最大でボーカル / ドラム / ベース / ピアノ / その他 の5つの音に分解することができます(5 stems)
今回はボーカルと演奏の二つに分けていきます。
インストール
今回はYouTubeからPythonで動画をダウンロードするのにpytubeのパッケージを使います。
ダウンロードした動画から音声mp3の抽出はffmpeg、最後に音声分離のspleeterを使用します。
それぞれpipでインストールできるのでインストールします。
コード
コードはとりあえず以下のようにしました。
流れとしては
みたいな感じです。
ちなみにSpleeterによる分離する音声の時間をdurationで決められるのですが、デフォルトで10分、伸ばしても1000秒程度までで、それ以上だとエラーを吐いてしまいます。
暇なときに10分毎に処理できるようにアップデートしようと思います。
あとは、出力されたmp3をうまく使えば冒頭の動画のようにできます。
コードのレポジトリはこちら。
GitHub - Aki-R/YouTube_Downloader
これでVtuber歌枠を編集しやすくなりました。