この記事のゴール
音源分離のモデルを調べていくと、必ず行き着くのが RoFormer です。Demucs でも UVR5/MDX-Net でもなく、2026年時点で最も分離品質が高いとされる系統——それが BS-RoFormer(Band-Split RoPE Transformer) と Mel-Band RoFormer です。実際、定番ライブラリ audio-separator の既定モデルは BS-RoFormer になっています。
本稿は、この最新 SOTA を 公式論文(arXiv)に忠実に解説し、今日から本番で使えるところまで持っていきます。読み終えたとき、あなたは次ができます。
- RoFormer がなぜ最高品質なのか(帯域分割 × RoPE Transformer)を、人に説明できる。
- audio-separator で BS/Mel-Band RoFormer を実行し、自分の音源で品質を確かめられる。
- VRAM・速度の現実を踏まえ、RoFormer を使うべき場面と、MDX-Net に留めるべき場面を判断できる。
筆者について(信頼性の開示):私は音源分離を第1段に持つ AI動画ローカライズ基盤を単独で設計・実装し、本番運用しています。素材ごとに「速度重視なら MDX-Net、品質最優先なら RoFormer」とモデルを切り替える設計を実運用しており、本稿の使い分けは実際にコストと品質を天秤にかけてきた知見です。ツール全体の選び方は選定ガイド、Demucs は専用ガイドにまとめています。
30秒のまとめ(結論を先に)
| 観点 | 結論 |
|---|---|
| 何のモデルか | 音源分離の現行SOTA。複素スペクトログラムを帯域分割し、Transformer+RoPEでマスク推定 |
| BS-RoFormer | Band-Split RoPE Transformer(arXiv:2309.02612、ByteDance、ICASSP2024) |
| Mel-Band RoFormer | 帯域分割をMel尺度の重複帯域に(arXiv:2310.01809)。一部ステムでBSを上回る |
| 実績 | SDX23のMSS標準部門1位、小型版でもMUSDB18HQで追加データなし9.80dB |
| 使い方 | audio-separatorの既定モデル。load_model でファイル名指定するだけ |
| 代償 | 最も重い・遅い・VRAMを食う(コミュニティ知見) |
| 使うべき場面 | 品質最優先の最終納品・アップの主役・難しい素材 |
| 留めるべき場面 | 大量バッチ・低VRAM・速度/コスト重視 → MDX-Net |
| ライセンス | audio-separatorはMIT。各モデル重みの配布条件と音源の著作権は別途確認 |
RoFormer はなぜ最高品質なのか(論文準拠でやさしく)
ここは RoFormer の核心を、正確さを保ったまま噛み砕く章です。実装だけ知りたい人は使い方へ飛んで構いません。
出発点:スペクトログラムを「帯域」で見る
音源分離の周波数領域アプローチは、音声を STFT で**複素スペクトログラム(時間×周波数)**に変換し、各成分のマスクを推定します。問題は、周波数の全域を一様に扱うと、低域の太い成分と高域の繊細な成分を同じ重みで見てしまうこと。
BS-RoFormer の答え:帯域分割 × 階層 Transformer × RoPE
BS-RoFormer(arXiv:2309.02612、Lu・Wang・Kong・Hung、ByteDance SAMI)の要旨が設計を端的に表します。
BS-RoFormer relies on a band-split module to project the input complex spectrogram into subband-level representations, and then arranges a stack of hierarchical Transformers to model the inner-band as well as inter-band sequences for multi-band mask estimation. To facilitate training the model for MSS, we propose to use the Rotary Position Embedding (RoPE).
3つの要素に分解できます。
- 帯域分割(band-split):複素スペクトログラムを周波数帯(subband)ごとの表現に射影する。周波数の構造に合わせて細かさを変えられる。
- 階層 Transformer:帯域内(inner-band)と帯域間(inter-band)の両方の系列を、積み重ねた Transformer で関係づける。「ある帯域の中の時間変化」と「帯域どうしの関係」を両取りする。
- RoPE(回転位置埋め込み):Transformer に位置情報を回転で与える仕組み。長い系列でも位置関係を安定して扱え、分離学習を助ける。
この「周波数を帯域で構造化し、Transformer で帯域内外を同時にモデル化する」のが、従来の U-Net 系(MDX-Net や Demucs)を上回る品質の源です。
Mel-Band RoFormer:帯域の切り方を「人間の聴覚」に寄せる
Mel-Band RoFormer(arXiv:2310.01809、Wang・Lu・Won)は、BS-RoFormer の帯域分割の仕方を変えた派生です。論文の言葉では——
we propose Mel-RoFormer, which adopts the Mel-band scheme that maps the frequency bins into overlapped subbands according to the mel scale.
BS-RoFormer の帯域分割がヒューリスティックな非重複だったのに対し、Mel-Band RoFormer はMel尺度に沿った重複する帯域に分けます(Mel尺度=人間の聴覚に近い周波数スケール)。Transformer+RoPE のバックエンドは共通で、入口の帯域分割だけが違う。論文は「vocals / drums / other で BS-RoFormer を上回る」と報告しています(要旨に具体 dB 値の記載はなし)。
🧩 どこから来るモデルか:これらの RoFormer チェックポイントは、ZFTurbo の MSST フレームワーク(MIT)や MVSep のエコシステムで学習・配布されているものが多く、audio-separator から直接ダウンロードできます。RoFormer のモデルコードは lucidrains による再実装が広く使われています。
実績:SDX23 と MUSDB18HQ の数字
RoFormer の強さはコンペとベンチマークの数字で裏付けられています(一次情報のみ)。
| 指標 | 数値 | 条件 | 出典 |
|---|---|---|---|
| SDX23 MSS 標準部門 | 1位(チーム SAMI-ByteDance=BS-RoFormer) | 任意データ可 | SDX23論文 |
| BS-RoFormer 小型版 | 9.80 dB SDR | MUSDB18HQ・追加データなし | arXiv:2309.02612 |
| 参考:Demucs v4(htdemucs) | 9.00 dB(基本)/9.20 dB(FT) | MUSDB HQ | Demucs |
⚠️ 数字の読み方:SDR の 0.x〜1 dB 差は、用途によっては聴感で「言われれば分かる」程度です。RoFormer は確かに最高品質ですが、その差が速度・VRAM・コストの代償に見合うかは用途次第。品質を客観評価する方法は品質評価ガイドに、モデル横断の選定は選定ガイドにまとめています。
使い方:audio-separator で RoFormer を動かす
最大の朗報は、RoFormer も MDX-Net や Demucs と同じ Separator API から呼べること。しかも audio-separator の既定モデルが BS-RoFormer なので、モデルを指定しなければ自動的に RoFormer が使われます。
pip install "audio-separator[gpu]" # GPU。CPUは [cpu]
# roformer_quickstart.py — BS-RoFormerで最高品質の分離を行う
from audio_separator.separator import Separator
separator = Separator(output_dir="stems", output_format="flac") # 可逆で品質維持
# 既定がBS-RoFormer。明示するならファイル名を渡す
separator.load_model(model_filename="model_bs_roformer_ep_317_sdr_12.9755.ckpt")
output_files = separator.separate("song.wav")
print(output_files) # ['..._(Vocals)_....flac', '..._(Instrumental)_....flac']
代表的な RoFormer モデル(実在は 必ず audio-separator --list_models で確認):
| モデルファイル名 | 系統 | 用途 |
|---|---|---|
model_bs_roformer_ep_317_sdr_12.9755.ckpt | BS-RoFormer | audio-separator既定。汎用・高品質 |
model_bs_roformer_ep_368_sdr_12.9628.ckpt | BS-RoFormer | 別エポックの高品質版 |
vocals_mel_band_roformer.ckpt | Mel-Band RoFormer | ボーカル抽出 |
mel_band_roformer_kim_ft_unwa.ckpt | Mel-Band RoFormer | ボーカル特化のFT版 |
# RoFormer系の"今この瞬間"の正確なファイル名を確認
audio-separator --list_models --list_filter roformer
🔧 モデル名(特にエポック/SDR入りの長い名前)は配布で更新されます。本稿の名前は執筆時点で確認済みですが、実在は
--list_modelsで確認してください。RoFormer の細かい推論パラメータは、まず公式の既定値のまま回し、不満な点だけ調整するのが鉄則です。
代償:VRAM と速度の現実
RoFormer はただ速くて軽い銀の弾丸ではありません。以下はコミュニティ・実務の知見です(🟡 公式の統一ベンチマークは存在しません)。
| 観点 | MDX-Net | Demucs v4 | BS/Mel-RoFormer |
|---|---|---|---|
| 品質 | 中〜高 | 高 | 最高 |
| 速度 | 速い | 中 | 遅い |
| VRAM | 少 | 中 | 多 |
帯域 × 時間にわたる大きな Transformer を回すため、最も計算が重く、VRAM を食い、処理時間も長い——これが品質の代償です。長尺・大量処理で CUDA out of memory に当たりやすいのも RoFormer です。
OOM 対策の基本は segment_size(GPU に載せるチャンク)を下げること。GPU が CPU にフォールバックして「動くのに激遅」になる罠も含め、詰まりどころはトラブルシューティングガイドに体系化しています。
いつ RoFormer を使い、いつ MDX-Net に留めるか
「常に最高品質を使えばいい」は、本番ではコストとスループットの観点で間違いです。用途で使い分けます。
RoFormer を使うべき場面:
- 品質最優先の最終納品(アップの主役カット、商用音源のクリーン分離)。
- 難しい素材(密なミックス、ボーカルと楽器が近い帯域に重なる曲)。
- 処理時間・VRAM・コストを許容できるとき。
MDX-Net に留めるべき場面:
- 大量バッチで単価を刻みたいとき(速度と VRAM 効率が効く)。
- 低VRAM環境しかないとき。
- 品質要件が「十分」で、最高でなくてよいとき。
実務では二段構えが効きます——ドラフトは MDX-Net で高速に全体確認 → 採用カットだけ RoFormer で本生成。これで品質とコストを両立できます。モデル横断の意思決定は選定ガイドを、本番のスケールはGPUワーカー基盤の記事を参照してください。
よくある質問(FAQ)
Q. BS-RoFormer と Mel-Band RoFormer、どちらを使う? A. まず BS-RoFormer(audio-separator 既定で実績豊富)。論文では Mel-Band RoFormer が vocals/drums/other で上回ると報告されているので、ボーカル抽出で更に品質を詰めたいなら Mel-Band 版も試し、自分の音源で客観評価して決めます。
Q. RoFormer は MDX-Net や Demucs より必ず良い? A. 品質(SDR)では上ですが、速度・VRAM では不利です。0.x〜1 dB の差がコストに見合うかは用途次第。大量処理は MDX-Net、最高品質は RoFormer、4ステムは Demucs、と使い分けます。
Q. どれくらいの GPU が要る?
A. RoFormer は VRAM を食うため、VRAM の大きい GPU ほど安定します。足りなければ segment_size を下げます。CUDA out of memory の対処はトラブルシューティングガイドに。
Q. 商用利用できる? A. audio-separator は MITですが、各モデル重みの配布条件は個別で、何より処理する音源(市販曲など)の著作権は別問題です。商用は必ず一次情報で確認してください。
Q. 既定モデルが RoFormer だと知らずに使っていた。
A. はい、audio-separator はモデル未指定だと BS-RoFormer(model_bs_roformer_ep_317_sdr_12.9755)を使います。軽くしたいなら load_model(model_filename="UVR-MDX-NET-Inst_HQ_3.onnx") のように MDX-Net を明示してください。
まとめ:最高品質を「使いどころ」で活かす
RoFormer の本質は、周波数を帯域で構造化し、帯域内・帯域間を Transformer と RoPE で同時にモデル化する点にあります。だからこそ現行 SOTA であり、だからこそ重い。
- 品質が要るなら RoFormer:SDX23 1位・MUSDB18HQ 9.80dB の実力。
- 実装は簡単:audio-separator の既定モデル。
load_modelでファイル名を指定するだけ。 - 代償を理解する:最も遅く・VRAM を食う。OOM は
segment_sizeで対処。 - 使い分けが正解:大量処理は MDX-Net、最高品質は RoFormer、4ステムは Demucs。
「最高品質のモデルを知っている」ことと、「用途に応じて最適なモデルを使い分け、本番でコストを抑えつつ品質を出す」ことは別物です。後者こそ外注で差がつくところ。音源分離を含む音声・動画 AI の構築・改善は、実績とともにご相談ください。一人 × 生成AIで、設計から本番運用まで一気通貫で支援します。
出典・公式リソース
- BS-RoFormer:arXiv:2309.02612(Music Source Separation with Band-Split RoPE Transformer, ByteDance SAMI, ICASSP 2024)
- Mel-Band RoFormer:arXiv:2310.01809(Mel-Band RoFormer for Music Source Separation)
- SDX23(Sound Demixing Challenge 2023):AIcrowd / TISMIR論文
- 学習/推論フレームワーク:ZFTurbo/Music-Source-Separation-Training(MIT)
- 実行ライブラリ:nomadkaraoke/python-audio-separator(MIT)
※ モデル名・SDR・ライセンスは更新されます。実装前に必ず一次情報を確認してください(特にモデル名は audio-separator --list_models)。速度/VRAM のトレードオフはコミュニティ知見であり、自分のハードでの計測を推奨します。