Band Stem Mixer

AI 音源分離の仕組みと、完璧に分かれない理由

ミックスされた曲では、楽器の音が足し合わされて 1 つ(ステレオなら 2 つ)の波形になっています。元に戻すスイッチはありません。AI による音源分離は、各楽器がどんな音だったはずかを推定する方法です。とてもよく推定できますが、完璧ではありません。仕組みを知っておくと、上手に使えます。

ミックスを分けるのが難しい理由

バンドの楽器は、同じ周波数の範囲を共有しています。ベースの倍音はギターと重なり、スネアの音はほぼすべての周波数に広がり、歌とギターが同時に同じ音を出すこともあります。ミックスではこれらが足し合わされていて、同じミックスになる楽器の組み合わせはいくらでも考えられます。昔ながらの方法は、たとえば「ステレオの中央にある音を消してボーカルを消す」といった単純なもので、ベースやキックまで消え、ボーカルの残響は残ってしまいました。

AI が分け方を学ぶ方法

分離のモデルは、パートごとの録音(ステム)がそろっている曲で学習します。学習中はミックスを聞いて各パートを推定し、本物のステムと比べて修正されることを、たくさんの曲で何千回も繰り返します。そうして、声・ベース・ドラムがふつうどんな音かを覚え、初めて聞く曲でもその知識でパートを分けます。

例から学んでいるので、学習した音楽に近いもの(主にポップス・ロックの一般的なバンド編成)ほどうまく分けられ、珍しい楽器や音は苦手なことがあります。

使っているモデル:Demucs(htdemucs)

Band Stem Mixer は、Meta の研究者が公開した音源分離モデル Demucs の Hybrid Transformer 版(htdemucs。Rouard、Massa、Défossez、ICASSP 2023)を使っています。

学習済みのモデル(重み)は、Meta が科学研究目的に限って提供しているもので、Demucs のコードの MIT ライセンスの対象外です。このため Band Stem Mixer は広告を付けず、非営利で運営しています。

4 パートである理由と、ギターと鍵盤が分かれない理由

ボーカル・ドラム・ベース・その他の 4 つは、モデルが学習したデータセットのステムの分け方から来ています。「その他」はギター・鍵盤・シンセ・ストリングス・管楽器など残りすべてで、モデルはこれらを区別することを学んでいないので、まとめて出てきます。

Demucs にはギターとピアノを足した 6 パートの試験的な版もありますが、Demucs 自身の説明でも、ギターはまずまずの品質に見える一方、ピアノは音の混ざりやノイズが多いとされています。メモリも多く必要で、私たちのテストではブラウザでメモリが足りなくなったため、Band Stem Mixer では 4 パートのモデルを使っています。

パートの間で音が混ざる理由

モデルの出力はあくまで推定なので、一部の音が違うパートに入ったり、2 つのパートに分かれて入ったりします(かぶり、ブリードと呼びます)。

自分のパートを消す、フレーズを聞き取るといった練習では、ほとんど問題になりません。コツはうまく分離するコツにまとめています。

ブラウザの中で動かす仕組み

このようなモデルは、ふつうはサーバーで動かします。Band Stem Mixer は自分の端末の中で動かすので、曲をアップロードしません。

分離が終わると 4 つのパートをそろえて再生し、ミキサーは音量だけを変えるので、フェーダーを動かすとすぐに反映されます。