本記事では、CWS-PResUNetと呼ばれる機械学習手法を用いて、音楽からボーカルのみを抽出する方法をご紹介します。
出典: 2021-ISMIR-MSS-Challenge-CWS-PResUNet |
CWS-PResUNet
概要
Channel-wise Subband Phase-aware
ResUNet(CWS-PResUNet)は、音声ソース分離(Music source separation:MSS)タスクを実現する技術です。
従来技術の多くは、境界比マスクを推定し、スペクトログラムを分離しています。CWS-PResUNetでは、入力信号をサブバンドに分解し、各ソースのunbound
complex ideal ratio
mask(cIRM)を推定することによって分離を実現しています。また、CWS機能を利用して、スペクトログラムで共有される不要なグローバルウェイトを制限し計算リソースを削減することにより、より大きなアーキテクチャが計算可能になっています。
詳細はこちらの論文をご参照ください。
本記事では、上記手法を用いて、任意の音楽からボーカルを抽出する方法をご紹介します。
免責事項
下記のデモでは、Youtube上の動画を取得し、編集等行います。著作権等にご注意いただき正しくご利用頂くようお願い致します。
これからご紹介する技術はあくまでご自身の技術理解を深めるためにのみご活用ください。本記事を参考にして生じたいかなる損害に関しても当ブログは責任を負いません。
デモ(Colaboratory)
それでは、実際に動かしながらボーカル抽出を行っていきます。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
まず、論文発表元のGitHubからソースコードを取得します。
次に、ボーカル抽出に必要なライブラリをインストールします。
以上で、セットアップは完了です。
ボーカル抽出(wavファイル)
まず、クローンしたソースコードに付随していたテスト用wavファイルからボーカル音声を抽出します。
上記を実行すると、/content/2021-ISMIR-MSS-Challenge-CWS-PResUNet/example/results/xuemaojiao/vocals.wav
がボーカル抽出音声として出力されます。
ボーカル抽出(Youtube)
続いて、任意のYoutube動画からボーカルを抽出していきます。
まず、必要なライブラリをインストール・インポートします。
次に、Youtubeから取得する動画のURLなどを指定します。
start_sec, end_secは、動画中の開始、終了区間です。目安として30秒以内になるように指定してください。
あまりに長いと後続の処理でメモリが足らずエラーになります。
本記事では、フリー楽曲である魔王魂様のシャイニングスターを使用させていただきます。
設定に基づいて動画を取得します。
指定区間を切り出した動画を作成します。
切り出した動画から音声ファイルを生成します。
それでは、生成した音声ファイルをCWS-PResUNetに入力してボーカルを抽出します。
最後に元の動画の音声を抽出したボーカル音声に差し替えます。
生成結果は以下の通りです。
ボーカル以外の音声が除去されています。
機械学習で音楽からボーカル抽出してみました。
— 12kaz (@12_technology) March 18, 2022
アカペラ風で歌詞により集中できます。#機械学習 #シャイニングスター #魔王魂
抽出方法はこちらhttps://t.co/b1504JYCBI pic.twitter.com/z5l6j2iu2N
まとめ
本記事では、CWS-PResUNetを用いたボーカル抽出を行いました。
これを機に機械学習に興味を持つ方が一人でもいらっしゃいましたら幸いです。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. 論文 - CWS-PResUNet: Music Source Separation with Channel-wise Subband Phase-aware ResUNet
0 件のコメント :
コメントを投稿