社会人博士の深層学習ブログ

深層学習を使った環境音認識研究で、働きながら博士号を取得しました

【深層学習】無料で歌声分離や楽器分離を行う方法

はじめに 

皆さんは、自分の好きなアーティストの楽曲のカラオケ版がほしいと思ったことや、オリジナル音源でカラオケを歌いたいと思ったことはないでしょうか?

 

あるいは、楽器を練習するために、あるパートの音源だけを聞きたいと思ったことはないでしょうか。

 

本記事では、AIを使ってボーカルやドラムなど、各パートの音源を分離する技術を紹介し、私が実際に分離してみた結果を聞いていただこうと思います。

 

音楽分離(Music source separation)とは

f:id:ys0510:20210605104811p:plain

https://source-separation.github.io/tutorial/landing.html より引用

 

まず、音楽分離について簡単に説明します。

音楽分離とは、様々なパートが混合された音源から、各パートの音源だけを分離するというタスクです。

 

 「それくらい簡単にできるんじゃないの?」と思われる方もいらっしゃるかもしれませんが、実はかなり難しい技術です。

 

これは、下の図のように混ざりあった絵の具から、元の色だけを取り出すようなものと考えるとイメージしやすいかと思います。

 

f:id:ys0510:20210605105306p:plain

 

音楽分離の必要性

 楽曲をレコーディングする際は、各パートを別々に録音して、個別に調整がなされた後でミキシングされます。

アーティスト側はもちろん個別の音源を持っていると思いますが、一般には完成された楽曲しか公開されません。

(1990年代はカラオケ版も一緒に収録されていたこともありましたが、、)

f:id:ys0510:20210605111346p:plain

なので、今まではカラオケ音源を作るにも、楽器の練習をするにも、耳コピに頼るしかなかったわけですが、音色が再現できなかったり旋律が間違っていたりすることがありるわけです。

 

今後、カラオケ店にもこのような技術が採用されてくると、もっとオリジナルに近い音源でカラオケを楽しむことができるようになるかもしれません。

 

AIによる音楽分離の原理

詳細は説明しませんが、簡単にAIを使った音楽分離の原理について説明します。

以下は先ほどの図と同じですが、Source separationと書かれたボックスがAIモデルです。

事前に用意された大量のデータ(混合音と分離音のペア)をAIモデルに学習させることで分離性能が向上します。 

f:id:ys0510:20210605104811p:plain

https://source-separation.github.io/tutorial/landing.html より引用

 

 

音楽分離の方法(Ubuntuが使える方向け)

さて、AIモデルを学習させるためには、大量のデータ(混合音と分離音のペア)が必要だということを述べましたが、一般人が大量のデータを収集することは非常に難しいです。

しかし、近年では、最新の音楽分離技術の研究者たちがすでに大量のデータで学習済みのAIモデルを公開してくれており、一般の人にも使えるようになっています。

 

ubuntuやpythonを使うことに慣れていて、詳細を知りたいという方は、以下のgithubページを参考にしてみてください。

github.com

 

pythonの環境が変わってしまう可能性があるので、自己責任で行っていただければと思いますが、基本的には以下のコマンドだけで、自分の手持ち音源の分離を実行することができました。

python3 -m pip -U install demucs
python3 -m demucs.separate -n demucs48_hq PATH_TO_AUDIO_FILE_1

※PATH_TO_AUDIO_FILE_1 のところに、分離したい音楽ファイルパスを指定

 

 

音楽分離デモ

学習済みのモデルを使って、実際に手持ちの音源を分離してみた結果がこちらです。

 

著作権に配慮し、混合音やボーカルは載せていませんが、何の曲かわかりますでしょうか?私が大好きなあるJ-POPのイントロです。ヒントは200万枚以上売れたCDシングルです。

 

よく聞くと完璧ではありませんが、想像を遥かに超えるレベルで技術は進化しているなと感じました。

 

 Bass

 Drums

 

まとめ

本記事では、学習済みモデルを使った音楽分離の紹介、デモを行いました。

 

著作権や学習データの入手性の問題があるので、J-POPは学習データに含まれていないことが多いのですが、それでもこの精度で分離することができました。

 

AIの最大の課題の1つは、学習データの収集コストにあると思いますが、十分に利用できるレベルに達してきているように感じました。

 

もちろん著作権は守りつつですが、ご自身の手持ちの楽曲に試して遊んでみてはいかがでしょうか。