AI 音源分離の仕組みと、完璧に分かれない理由
ミックスされた曲では、楽器の音が足し合わされて 1 つ(ステレオなら 2 つ)の波形になっています。元に戻すスイッチはありません。AI による音源分離は、各楽器がどんな音だったはずかを推定する方法です。とてもよく推定できますが、完璧ではありません。仕組みを知っておくと、上手に使えます。
ミックスを分けるのが難しい理由
バンドの楽器は、同じ周波数の範囲を共有しています。ベースの倍音はギターと重なり、スネアの音はほぼすべての周波数に広がり、歌とギターが同時に同じ音を出すこともあります。ミックスではこれらが足し合わされていて、同じミックスになる楽器の組み合わせはいくらでも考えられます。昔ながらの方法は、たとえば「ステレオの中央にある音を消してボーカルを消す」といった単純なもので、ベースやキックまで消え、ボーカルの残響は残ってしまいました。
AI が分け方を学ぶ方法
分離のモデルは、パートごとの録音(ステム)がそろっている曲で学習します。学習中はミックスを聞いて各パートを推定し、本物のステムと比べて修正されることを、たくさんの曲で何千回も繰り返します。そうして、声・ベース・ドラムがふつうどんな音かを覚え、初めて聞く曲でもその知識でパートを分けます。
例から学んでいるので、学習した音楽に近いもの(主にポップス・ロックの一般的なバンド編成)ほどうまく分けられ、珍しい楽器や音は苦手なことがあります。
使っているモデル:Demucs(htdemucs)
Band Stem Mixer は、Meta の研究者が公開した音源分離モデル Demucs の Hybrid Transformer 版(htdemucs。Rouard、Massa、Défossez、ICASSP 2023)を使っています。
- ハイブリッド – 音を 2 つの見方で同時に扱います。波形(信号が時間とともにどう動くか)と、スペクトログラム(各瞬間にどの周波数があるか)です。ドラムの鋭い音は波形で、伸ばした音はスペクトログラムで捉えやすく、それぞれ得意な音が違います。
- Transformer – 中心部には Transformer(最近の多くの AI で使われるニューラルネットワークの一種)があり、区間の中のあらゆる時点どうし、また 2 つの見方どうしを関連づけます。
- 学習データ – Demucs の説明によると、MUSDB HQ データセットと、それとは別の 800 曲で学習しています。
- 精度 – 説明では、MUSDB HQ のテスト用の曲で SDR(信号対歪み比)9.00 dB とされています。SDR は分離したパートが本物のステムにどれだけ近いかを測る指標で、モデルどうしを比べるための標準的な数字です。聞いたときの良さを表すものではありません。
学習済みのモデル(重み)は、Meta が科学研究目的に限って提供しているもので、Demucs のコードの MIT ライセンスの対象外です。このため Band Stem Mixer は広告を付けず、非営利で運営しています。
4 パートである理由と、ギターと鍵盤が分かれない理由
ボーカル・ドラム・ベース・その他の 4 つは、モデルが学習したデータセットのステムの分け方から来ています。「その他」はギター・鍵盤・シンセ・ストリングス・管楽器など残りすべてで、モデルはこれらを区別することを学んでいないので、まとめて出てきます。
Demucs にはギターとピアノを足した 6 パートの試験的な版もありますが、Demucs 自身の説明でも、ギターはまずまずの品質に見える一方、ピアノは音の混ざりやノイズが多いとされています。メモリも多く必要で、私たちのテストではブラウザでメモリが足りなくなったため、Band Stem Mixer では 4 パートのモデルを使っています。
パートの間で音が混ざる理由
モデルの出力はあくまで推定なので、一部の音が違うパートに入ったり、2 つのパートに分かれて入ったりします(かぶり、ブリードと呼びます)。
- 周波数もタイミングも重なる音ほど難しくなります(キックとベース、ギターが重ねた歌のメロディなど)。
- リバーブやエフェクトは楽器どうしをぼかすので、声の残響が「その他」に残ることがあります。
- 音圧を強く上げたミックスや歪んだ音は、手がかりが少なくなります。ビットレートの低い MP3 などは、すでに細かい情報が失われています。
- 学習であまり聞いていない楽器は、パートに分かれて入ることがあります(シンセベースが「ベース」と「その他」に分かれるなど)。
自分のパートを消す、フレーズを聞き取るといった練習では、ほとんど問題になりません。コツはうまく分離するコツにまとめています。
ブラウザの中で動かす仕組み
このようなモデルは、ふつうはサーバーで動かします。Band Stem Mixer は自分の端末の中で動かすので、曲をアップロードしません。
- ブラウザがモデル(ONNX 形式に変換したもの、約 172 MB)を 1 回だけダウンロードして保存します。
- ONNX Runtime Web がモデルを動かします。ブラウザが WebGPU に対応していればグラフィックス(GPU)で、そうでなければプロセッサ(CPU)で処理します。
- このモデルは一度に 7.8 秒ずつしか扱えないので、曲を 4 分の 1 ずつ重ねた区間に分け、重なりをクロスフェードしてつなぎ目が聞こえないようにします。4 分の曲なら 42 区間で、進み具合のバーに出る数です。
- 1 区間の処理に約 1 GB のメモリを使います。パソコンのほうがずっと速く、スマホでは最後まで分離できない機種があるのはこのためです。
分離が終わると 4 つのパートをそろえて再生し、ミキサーは音量だけを変えるので、フェーダーを動かすとすぐに反映されます。