本記事では、機械学習手法Demucsを用いて音声ファイルから音源分離、ボーカル抽出を行う方法をご紹介します。
Demucs
概要
DemucsはFacebookresearchによって発表された音源分離手法です。
Wave-U-NetをベースとしたU-Net
CNNアーキテクチャで構成され2020年4月のv1リリースから改善を重ね、2021年12月にはv3がリリースされています。
spectrogramとwaveform domainの両方で機能するEnd to Endのhybrid source
separation(ハイブリッドソース分離)であるDemucsは、SONY主催のMusic Demixing
Challenge 2021で優勝した手法となっています。
詳細はこちらの論文をご参照ください。
本記事では上記手法を用いて、音声ファイルからボーカル抽出を行っていきます。
デモ(Colaboratory)
それでは、実際に動かしながらボーカル抽出を行っていきます。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
また、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
はじめにライブラリをインストールします。
最後にライブラリをインポートします。
以上で環境セットアップは完了です。
音声ファイル取得
ボーカル音源を抽出したい動画をGoogle Colaboratoryにダウンロードしていきます。
YoutubeDLライブラリを使用してYoutubeから動画を取得します。
まずYoutubeのURLと切り抜き区間を設定します。
動画をダウンロードします。
指定した秒数の区間を切り抜いた動画を作成します。
切り抜いた動画から音声ファイルを取り出します。
ボーカル抽出
それでは、取り出した音声ファイルからボーカルのみ抽出します。
Demucsライブラリを利用すればコマンド一つで実行可能です。
抽出したボーカル音源を元動画に挿入し、ボーカルのみの動画を作成します。
出力結果は以下の通りです。
機械学習手法Demucsを用いてボーカル抽出してみました。
— 12kaz (@12_technology) July 17, 2022
以下の動画では、途中からDemucsで抽出したボーカル音声のみに切り替えています。
ブラウザでお試しいただけますhttps://t.co/VaLXsUVbli#Demucs #Python pic.twitter.com/5Cdx31VDXW
ボーカルのみ綺麗に抽出された動画を作成することができています。
まとめ
本記事では、Demucsを用いてボーカル抽出を行う方法をご紹介しました。
moviepyと組み合わせて使用すると簡単にボーカルのみの動画を作成することができます。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
0 件のコメント :
コメントを投稿