Demucsはオープンソースの音楽トラック分離ツールで、音楽ミックスをボーカル、ドラム、ベース、その他のバッキングパートのような別々のトラックに分解することに重点を置いている。Alexandre Défossezによって開発され、元々はMeta AIによって動かされ、現在は作者によってGitHub上でメンテナンスされているDemucsは、U-Net畳み込みアーキテクチャとHybrid Transformerモデルを組み合わせた高度なディープラーニング技術を使用して、高品質のトラック分離結果を提供します。そのv4バージョンは、分離精度を向上させるHybrid Transformer技術を導入しており、特に音楽制作、カラオケ生成、オーディオ分析に適している。このプロジェクトは簡単なコマンドライン操作を提供し、CPUとGPUの操作をサポートし、音楽愛好家と専門家に適しています。
機能一覧
- 複数のトラックを分離:ボーカル、ドラム、ベース、ギター、ピアノ、その他のバッキング・トラックの分離をサポート。
- 複数モデルのサポート:v4ハイブリッドトランスフォーマーモデルを提供(例.
htdemucs_ft
)とv3クラシックモデルの2種類を用意し、さまざまなニーズに応えている。 - GPUアクセラレーション:NVIDIA GPU、Intel Arc、Apple MPSをサポートし、処理を高速化。
- 柔軟なオーディオ・フォーマット:MusDB-HQとあらゆるWAVファイルに対応し、幅広いオーディオ入力に対応。
- コマンドライン操作:コマンドライン操作は、単純なコマンド(例えば
demucs input_audio.mp3
)でトラック分離を完了させる。 - オープンソースでフリー:コードはMITライセンスに基づいており、ユーザーは自由に使用・変更できる。
ヘルプの使用
設置プロセス
Demucsはインストールが簡単で、Pythonの基本的な経験を持つユーザーに適している。詳しいインストール手順は以下の通りです:
- 環境準備
- Python 3.10以降がシステムにインストールされていることを確認してください。
- 依存関係の衝突を避けるため、仮想環境を推奨する。以下のコマンドを実行して、仮想環境を作成してください:
python -m venv demucs_env source demucs_env/bin/activate # Linux/Mac demucs_env\Scripts\activate # Windows
- Gitをインストールし、コードベースをクローンできるようにする。
- pipによるインストール(お勧め、手早く簡単)
Demucsを直接インストールするには、以下のコマンドを実行する:pip install demucs
この方法は、PyTorchやtorchaudioといった必要な依存関係を自動的にインストールします。
- ソースコードのインストール(開発者向け、または最新バージョンが必要)
最新のコードやカスタム変更が必要な場合は、GitHub経由でリポジトリをクローンすることができる:git clone https://github.com/adefossez/demucs cd demucs pip install -e .
これは、デバッグや開発に参加する必要があるシナリオのために、Demucsとその依存関係をインストールします。
- GPUサポート
- GPUアクセラレーションを使用する場合は、GPUバージョンのPyTorchがインストールされていて、互換性のあるGPUがあることを確認してください(NVIDIAは3.5以上の計算能力を必要とし、3GB以上のビデオメモリを推奨します)。
- GPUが使用可能かどうかを確認するには、以下を実行します。
python -c "import torch; print(torch.cuda.is_available())"
出力True
GPUが使用可能であることを示す。 - 十分なビデオメモリがない場合
--segment 8
パラメータを追加してメモリフットプリントを減らすか、あるいは-d cpu
CPU処理を使用する。
- よくある質問
- Windowsユーザー
OSError: [WinError 126]
手動による設置が必要libuv
.推奨設置はコンダ:conda install conda-forge::libuv
- Linuxユーザーは、システムに
glibc 2.27
を追加インストールする必要がある場合があります。libxcb-cursor0
.
- Windowsユーザー
使用方法
Demucsの主な機能は、コマンドラインでオーディオトラックを分離することである。以下はその詳細な手順である:
- 基本的なトラック・セパレーション
以下のコマンドを実行して音声を分離する:demucs input_audio.mp3
- 入力ファイルはMP3、WAVと他の一般的なフォーマットをサポートしています。
- 分離されたトラックは
separated/
ボーカルの入ったフォルダ (vocals.wav
)、ドラム(drums.wav
)、ベース(bass.wav
)などがある。other.wav
). - デフォルトはv4の
htdemucs
モデルの場合、処理時間はオーディオ時間の約1.5倍となる。
- 特定モデルの選択
Demucsは、以下のような幅広いモデルを提供しています。-n
パラメータが指定されている:-n htdemucs_ft
最適な分離のためにモデルを微調整するにはv4を使ってください。-n htdemucs
v4 自明なモデリングではない。-n hdemucs_mmi
旧バージョンと互換性のあるv3クラシックモデル。
例
demucs -n htdemucs_ft song.mp3
- 高度なオプション
- セグメントのサイズ変更ビデオメモリが不足している場合は、次のように設定します。
--segment 8
メモリフットプリントを削減するが、分離の質が低下する可能性がある。 - CPUの使用グラフィックスカードがサポートされていない場合は
-d cpu
::demucs -d cpu song.mp3
- マルチコアCPUアクセラレーション追加
-j
パラメーターは複数のコアを使用して処理される。-j 4
4CPUコアを使用。 - 6トラック分離: v4は実験的な6トラック・モデリング(ギターとピアノ)をサポートしているが、ピアノのセパレーションには欠陥があるかもしれない。使用方法
-n htdemucs_6s
.
- セグメントのサイズ変更ビデオメモリが不足している場合は、次のように設定します。
- ヘルプを見る
うごきだすdemucs --help
すべてのコマンドラインパラメーターと説明を見ることができる。
注目の機能操作
- カラオケ・プロダクションボーカルを分離した後、伴奏を直接 (
no_vocals.wav
)カラオケ・トラックを作成する。 - リアルタイム分離NeutoneのVST/AUプラグインを使えば、Deumucsをデジタル・オーディオ・ワークステーション(DAW)に組み込んで、リアルタイムでトラック・セパレーションを行うことができます。
- オンラインサービス: Audiostrip (https://audiostrip.co.uk/)とMVSepは、ローカル環境のない初心者のために、Demucsをベースにした無料のオンラインデタッチメントを提供しています。
ほら
- 分離の質は音質とモデルの選択に依存しますが、入力として高音質のWAVファイルを使用することをお勧めします。
- プロジェクトは積極的にメンテナンスされておらず、主要なバグの修正のみを行っている。
README
最新情報を入手 - 長いオーディオを処理する場合は、少なくとも8GBのシステムメモリ(物理メモリとスワップメモリの両方)を確保してください。
アプリケーションシナリオ
- 音楽制作
音楽プロデューサーはDemucsを使って、トラックを分割したり、ボーカルやドラム、ベースを個別に調整したり、リミックスしたり、新しいバージョンの曲を作ったりすることができる。 - カラオケ・プロダクション
ヴォーカルとバッキング・トラックを分離することで、ホーム・エンターテイメントや商業用に高品質なカラオケ・バッキング・トラックを素早く作成することができる。 - オーディオ分析
研究者は、Demucsを使ってオーディオトラックを分離したり、音楽構造を分析したり、学術研究に適した他のオーディオモデルを訓練したりすることができる。 - 映画とテレビの後処理
映画やテレビのポストプロダクション・チームは、ポストプロダクションの柔軟性を高めるために、BGMやダイアログを分離したり、サウンドエフェクトをダビングし直したり、調整したりすることができます。
品質保証
- Demucsはどのようなオーディオフォーマットに対応していますか?
Demucsは、MP3、WAVなどの一般的なオーディオフォーマットをサポートしています。 - GPUが使用できない場合はどうなりますか?
増加-d cpu
パラメータはCPUを使って処理されるため、処理速度は遅くなるが、GPUを使う必要はない。 - 分離の結果が満足のいくものでなかった場合は?
モデルを変えてみる(例-n htdemucs_ft
)、または入力オーディオの音質をチェックしてください。音質が低いとセパレーション不良の原因となります。 - メモリーのフットプリントを減らすには?
利用する--segment 8
パラメータや環境変数を設定するPYTORCH_NO_CUDA_MEMORY_CACHING=1
必要なメモリを減らすことができる。