StemDeck: DemucsとTauriを活用した無料・ローカル完結型の6トラックAI音源分離

StemDeckは、クラウドへのサブスクリプションやアップロードを一切行わずに、ボーカル、ドラム、ベース、ギター、ピアノを分離できるオープンソースのローカルファーストなステム抽出スタジオです。

Moises、LALAL.AI、Splitter.aiなどのクラウドベースのステム分離ツールにより、ミュージシャン、リミキサー、プロデューサーにとってトラックの分解が身近なものになりました。しかし、これらのサービスには利用制限、未発表音源に関するプライバシーの懸念、そして継続的な月額サブスクリプションがほぼ必ず伴います。

StemDeckは、ローカルファーストのオーディオ分離スタジオを提供することで、これらの課題を解決します。クラウドへの依存ゼロ、アカウント不要、データアップロードなしで、マシン上で直接最大6つのステム(ボーカル、ドラム、ベース、ギター、ピアノ、その他)を抽出します。


StemDeckのアーキテクチャ

StemDeckは、高性能なMLモデルと操作しやすいWebネイティブのスタジオUIを組み合わせ、軽量なクロスプラットフォームのデスクトップシェルでラップしています。

+-------------------------------------------------------------+
|                 StemDeck Desktop (Tauri v2)                 |
|  +-------------------------------------------------------+  |
|  |            Frontend (Vanilla JS + Web Audio)          |  |
|  |   - Multi-lane Canvas Waveforms  - Per-stem VU Meters |  |
|  |   - Loop Regions & Scrubbing     - Live Mixer Bus     |  |
|  +-------------------------------------------------------+  |
|                             │ SSE / REST API                |
|  +──────────────────────────▼────────────────────────────+  |
|  |                 FastAPI Backend (Python 3.12)         |  |
|  |   - Demucs (htdemucs_6s) [CUDA / MPS / CPU]           |  |
|  |   - UVR-MDX-NET Karaoke 2 (Lead/Backing Vocal Split)  |  |
|  |   - Librosa (BPM & Key) | Pyloudnorm (BS.1770 LUFS)   |  |
|  |   - FFmpeg Transcoding & Custom Mixdown Engine        |  |
|  +-------------------------------------------------------+  |
+-------------------------------------------------------------+
  • 分離エンジン: PyTorch経由でMeta AIのhtdemucs_6sモデルを活用。Linux/Windows上のNVIDIA CUDA、macOS上のApple Silicon MPSを自動検出してバインドし、GPUがない場合はCPUスレッドに適切にフォールバックします。
  • ボーカル分割: UVR-MDX-NET Karaoke 2モデル(audio-separator経由)を使用したオプションのセカンドパスをサポートし、リードボーカルとバッキングボーカルを個別に分離します。
  • オーディオ解析: BPM(librosa経由)、キーおよびスケールの信頼度(Albrecht-Shanahanピッチプロファイル経由)、統合ラウドネス測定(pyloudnorm ITU-R BS.1770経由)を含むトラックメタデータを自動抽出します。
  • フロントエンド & DAWミキサー: 重量級のフロントエンドフレームワークを使わずに構築されています。バニラJavaScriptとHTML5 <canvas>による最小/最大サンプル描画、Web Audio APIによるポストゲインRMSモニタリング、ソロ/ミュートロジック、位相のズレない正確なループ再生を採用しています。
  • デスクトップシェル: Tauri v2(Rust + ネイティブシステムWebView: macOSではWKWebView、WindowsではWebView2)を採用。

主な機能

  1. 6ステム分離: 一般的な非圧縮・圧縮フォーマット(MP3WAVFLACOGG/OpusMP4M4A)のドラッグ&ドロップ、またはYouTube URLの直接入力に対応。
  2. スマートなサブセット抽出: ステムのサブセット(例: ベースとドラムのみ)を選択すると、StemDeckが自動的に選択外の補完ミックス(フルミックスから選択項目を引いたもの)を含むOriginalバッキングトラックレーンを作成し、誤った音の重複を防ぎます。
  3. ブラウザ内での非破壊ミキシング: リアルタイムVUメーターを備え、各ステムトラックごとのリアルタイムゲイン調整、ソロ、ミュート、モニター操作が可能。
  4. 即時ミックスエクスポート: FFmpegのamixを通じて結合されたmix.wavステムや、個別に分離されたオーディオファイルをその場で生成。

クイックスタートとインストール

1. ネイティブデスクトップバイナリ

macOS(Apple Silicon arm64およびIntel x64)およびWindows(CPU版またはパッケージ済みCUDAバンドル)向けのビルド済みバイナリがGitHub Releasesから直接入手可能です。初回起動時に必要な環境をセットアップし、モデルの重み(約170 MB)をローカルデータディレクトリにダウンロードします。

2. PythonとUVを使用したローカル実行

Webサーバーを直接実行したい場合:

# リポジトリのクローン
git clone https://github.com/stemdeckapp/stemdeck && cd stemdeck

# macOS / Linux 自動セットアップ(ffmpegとuvが必要)
./run.sh setup
./run.sh start

NVIDIA GPUを搭載したWindows PowerShellの場合:

# uvで依存関係をインストール
uv sync
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# デバイスを設定してFastAPIサーバーを起動
$env:STEMDECK_DEMUCS_DEVICE = "cuda"
uv run uvicorn app.main:app --host 127.0.0.1 --port 8000 --timeout-graceful-shutdown 5

3. Dockerによるデプロイ

GPUパススルーを有効にして公式GHCRコンテナを実行します:

docker run -d --name stemdeck \
  -p 8000:8000 \
  --runtime=nvidia \
  -e NVIDIA_VISIBLE_DEVICES=all \
  -e STEMDECK_PERSIST_LIBRARY=1 \
  -v /local/jobs:/app/jobs \
  -v /local/cache:/cache \
  ghcr.io/stemdeckapp/stemdeck:edge

REST APIとジョブワークフロー

StemDeckは、ジョブ監視用のServer-Sent Events (SSE) とともに、洗練されたRESTインターフェースを提供します:

メソッド エンドポイント 説明
POST /api/jobs ローカルファイルのマルチパートアップロードまたは { "url": "...", "stems": [...] } を送信
GET /api/jobs/{id}/events ジョブの進行状況(ダウンロード、解析、分離、ミックス)を配信するSSEストリーム
GET /api/jobs/{id}/stems/{stem}.wav 特定のステム音声(vocals.wavbass.wavdrums.wavなど)をストリーミング
POST /api/jobs/{id}/cancel 実行中のサブプロセスパイプラインを直ちに終了し、作業ディスク領域をクリーンアップ
PATCH /api/jobs/{id}/sections マーカー境界と波形アノテーションを保存

まとめ

高度なモバイル連携や独自の10ステム分離モデルが必要な場合は、商用SaaSプラットフォームも選択肢の1つです。しかし、完全なプライバシー保護、無制限の利用、ローカルオフライン処理を求めるプロデューサー、採譜者、ミュージシャンにとって、StemDeckは魅力的なオープンソースのDAWスタイルのワークフローを提供します。

出典

stemdeckapp/stemdeck: Stemdeck is an modern stem extraction platform for musicians,producers and hobbyists, designed to isolate vocals, drums, bass, piano and guitar for practice, transcription, remixing, and creative audio workflows through a modern and interactive interface