藤本健のDigital Audio Laboratory
第965回
AIでボーカル・ドラムを取り出す、無料音声分離「Demucs」を試す
2022年12月5日 09:27
ステレオミックスされたオーディオからボーカルを抽出したり、ベースを抽出するなど、任意の音を取り出したり消すということは、昔からいろいろな人がさまざまな方法でトライしてきた、ある意味、夢のテクニックだ。それが近年、AIを用いた手法により、ほぼ完ぺきな形で実現できるようになってきており、さまざまな企業が製品化を行っている。
そうした中、オープンソースのフリーウェアでもかなり優秀なものが登場している。「Demucs」というソフトがそれだ。以前からPythonで実行するタイプのものは出ていたようだが、現在はWindowsやMacで普通に起動できるソフトも登場しており、誰でも手軽に使えるようになっている。実際試してみたので、どんなものなのか紹介してみたい。
AI技術の進化で、大きく変わった夢の“音声分離”
“ステレオにミックスされた音からボーカルを消してカラオケにする”ということは、古くから多くの人がチャレンジしてきた。
例えば、レコードの時代にはカートリッジの配線を差し替えて位相反転させることで、センター打ち消しあってボーカルを消す……なんてことを行なったことがある方も少なくないだろう。一方、イコライザを利用して中域あたりを落としてボーカルを小さくするなんて手法をとった方もいるのではないだろうか?
こうした処理をすることである程度、ボーカルを小さくすることはできたけれど、そもそもオリジナルとは音質が変わってしまったり、聴こえ方が大きく変化してしまうため、気持ちのいい聴こえ方にならなかったのは事実だ。またイコライザやフィルタなどをいくら使ったとしても、その延長線上の処理や技術で、完全な“ボーカルオフバージョン”を作るのは不可能なのも自明だった。
しかし昨今のAI技術というか、ディープラーニングの技術進化によって、状況が大きく変わってきた。
具体的には約10年ほど前から、世界中の研究者たちがAIを用いた音源分離技術に取り組むようになり、飛躍的に進化していったのだ。そうした研究において、単にボーカルを抽出するだけでなく、ステレオミックスからボーカル、ベース、ドラムとその他の4つに分離するというのが研究テーマになり、競い合ってきたのだ。
実際、学会系の国際コンペティションであるSiSEC(Signal Separation Evaluation Campaign)において、こうした音源分離技術を競い合ってきた歴史もある。
よく知られるものとしては、iZotopeが出すRXに搭載された「Music Rebalance」、SteinbergのSpectraLayersに搭載されている「Unmix」などがある。実はこれらはフランスの音楽配信サービス会社として知られるdeezerが開発したSpleeterエンジンが使われている。
一方で、そのSiSECで3年連続で優勝してきたのがソニーだ。このソニーが開発した音源分離技術はXperiaに搭載されたり、LINE MUSICのカラオケ機能に利用されているほか、ソニー・ミュージックエンタテインメントが展開するSoundmain Studioにも搭載されるなど、広く展開されてきている。実際、筆者がいろいろと見た中では、このSoundmain Studioに搭載されているソニーのエンジンが現時点では最高品質だと思う。
が、今回テーマとするのはソニーの技術ではなく、Facebookを展開するMetaの研究部門Meta Researchが開発しているオープンソースプロジェクトである「Demucs」だ。
Meta Researchは何年も前から、この研究を行なっていたようだが、オープンソースとして公開したのは2021年4月にv2.0.0をリリースしたタイミングのようだ。システム概念図なども公開しており、オープンソースとして誰でも入手できるようになっている。
もっともPythonの実行環境であるAnacondaなどをインストールし、環境を構築して利用のが基本であり、Googleが提供するWebブラウザー上でPythonを実行できる無料のサービス「Colaboratory」を利用することでも使うことができたので、使い方の解説などを見れば、Pythonの知識がなくても実行することは可能だ。
が、中国・北京の高校生と名乗るCarlGao4氏により、DemucsをWindowsおよびMac環境において、もっと簡単に使えるようにしたDemucs-Guiなるものが今年3月に0.1a1というバージョンで公開。現在は、6月に公開された0.1というバージョンになっている。
ダウンロードサイトを見ると分かるが、ここにはWindowsのx64環境で動くCPU版、 NVIDIAのグラフィックカードを持っていることを前提とするCUDA版、それにmacOS x64版の3種類が用意されている。CarlGao4氏はM1 Macを持ってないので、Appleシリコン対応版は作れてないというのが、ちょっと可愛くも思えるところだが、しっかりとしたスキルを持った高校生のようだ。
ちなみに本家Meta Researchでは11月16日にDemucs v4をリリースしているが、このDemucs Guiのほうは6月のリリースで止まっているのでエンジンとしてはDemucs v3.0.4という前世代のバージョンにとどまっている模様。
というわけで、ここではこのDemucs GuiのWindowsのCPU版を使って、どれくらいのことができるのか試してみた。
ここまでキタか無料音声分離! ボーカル、ドラム、ベース取り出しが自在に!?
まず、「Demucs-GUI_0.1_CPU_Release_Win_x64.7z」というソフトをダウンロード。7zで圧縮されているので、7-Zipなど7zに対応した展開ソフトが必須だ。展開してみるとPython環境を含め、結構多くのファイルから構成されている。
中にある「Demucs-GUI.exe」というのが実行ファイルなので、これをダブルクリックして起動。するとシンプルなダイアログが開き、「load model」と書かれたボタンが表示される。
これを使って学習データをダウンロードする、ということなのだろう。早速ボタンをクリックしてみると、ダウンロードが行なわれるようだ。しばらくすると、画面が広がり、下にDeviceという項目が追加されており、ここには現在動かしているPCのCPUが表示される模様。
使っているのは、1年前に記事で紹介したMINISFORUMのマシンで、AMD Ryzen 9 5900HXを搭載したものだから、「AMD64 Family」と表示されているようだ。
約3年ぶりメインPC新調。スリムなAMDマシン「MINISFORUM」を導入した
一方画面右にはOptionsとしてSplitとOverlapとあるが、ここはよくわからないのでいったん放置する。
その下のSeparateのところにある「Browse File to Separte」というボタンを押すと、分解したいファイルを開くダイアログとなっている。ファイルの種類を見るボタンを押してみると、WAVだけでなくAIFF、FLAC、OggVorbis、MP3など、さまざまなフォーマットが読み込めるようになっている。
ここでは筆者が運営しているレーベルであるDTMステーションCreativeの第2弾アルバムで、小岩井ことりさん歌唱、2018年リリースの「Harmony of birds」の1曲目「ハレのち☆ことり」を読み込んでみた。
すると、音源分離処理がスタートするのだが、動き出すと普段静かなPCのファンが回り出し、唸るように動き出すのだ。試しにタスクマネージャーを見てみるとCPU使用率が70%程度の高負荷になっている。パフォーマンスメーターを見てみると16あるスレッドのうち半分は、完全頭打ち状態。フルパワーで動作しているようだ。
結局4分36秒の曲である「ハレのち☆ことり」の処理が終わったのはスタートしてから7分2秒後。実時間の倍近くかけて処理を行なっていた。ちなみに、GPUを使うCUDA環境であれば20倍近い速度で処理できるとのことなので、機会があれば試してみたいところである。
この実行の結果、オリジナルファイルのあったのと同じフォルダ内に、新たなフォルダが作成され、その中にvocals.wav、bass.wav、drums.wav、other.wav、という4つのファイルができている。見れば分かる通りボーカル、ベース、ドラム、その他という4つに分解されている。
それぞれ聴いてみると、確かに分離されているようだが、この手の音源分離の面白いのは、再度4つを重ね合わせればオリジナルの状態に戻るという点。そこで、これら4つのファイルをDAWに並べてみて、ミュートやソロなどの機能を使って、それぞれのトラック内容を聴いてみたので、以下のビデオをご覧いただきたい。
いかがだろうか? フリーウェアのオープンソースのソフトだが、かなりキレイに音源分離ができていたのが分かったと思う。ボーカルトラックをミュートすれば、まさにカラオケになるし、ドラムだけを取り出したり、ベースだけを取り出したり、反対に消したり……ということが自由自在。まさに昔は夢の夢だった技術が現在のAIによって実現できているのだ。
前述の通り、ソニーの技術はさらにその上を行く品質となっているわけだが、誰でも無料で使えるので、こんな音源分離の世界に触れてみてはいかがだろうか? もちろん使う上では、著作権や著作隣接権などに十分配慮した上で楽しんでいただきたい。