StemDeck : Séparation audio IA 6 pistes gratuite et locale avec Demucs et Tauri

StemDeck est un studio d'extraction de stems open source et local-first qui isole la voix, la batterie, la basse, la guitare et le piano, sans abonnement cloud ni téléversement de données.

Les outils de séparation de pistes (stems) basés sur le cloud comme Moises, LALAL.AI et Splitter.ai ont rendu la déconstruction de morceaux accessible aux musiciens, remixeurs et producteurs. Cependant, ils s'accompagnent presque toujours de quotas d'utilisation restrictifs, de préoccupations quant à la confidentialité des fichiers audio non publiés et d'abonnements mensuels récurrents.

StemDeck répond à ces problématiques en proposant un studio de séparation audio axé sur le local (local-first). Il extrait jusqu'à six pistes distinctes (voix, batterie, basse, guitare, piano et autre) directement sur votre machine, sans aucune dépendance au cloud, sans compte et sans téléversement de données.


L'architecture de StemDeck

StemDeck associe des modèles de ML haute performance à une interface de studio web-native et accessible, le tout encapsulé dans un environnement de bureau léger et multiplateforme.

+-------------------------------------------------------------+
|                 StemDeck Desktop (Tauri v2)                 |
|  +-------------------------------------------------------+  |
|  |            Frontend (Vanilla JS + Web Audio)          |  |
|  |   - Waveforms Canvas multipistes - Vumètres par stem  |  |
|  |   - Régions de boucle & Scrub    - Bus de mix en direct |  |
|  +-------------------------------------------------------+  |
|                             │ SSE / REST API                |
|  +──────────────────────────▼────────────────────────────+  |
|  |                 FastAPI Backend (Python 3.12)         |  |
|  |   - Demucs (htdemucs_6s) [CUDA / MPS / CPU]           |  |
|  |   - UVR-MDX-NET Karaoke 2 (Séparation Lead/Chœurs)    |  |
|  |   - Librosa (BPM & Tonalité) | Pyloudnorm (BS.1770)   |  |
|  |   - Transcodage FFmpeg & Moteur de mixage sur mesure  |  |
|  +-------------------------------------------------------+  |
+-------------------------------------------------------------+
  • Moteur de séparation : Exploite le modèle htdemucs_6s de Meta AI via PyTorch. Il détecte et utilise automatiquement NVIDIA CUDA sous Linux/Windows, Apple Silicon MPS sous macOS, ou bascule en douceur sur les threads du processeur (CPU).
  • Séparation vocale : Prend en charge une seconde passe optionnelle via le modèle UVR-MDX-NET Karaoke 2 (via audio-separator) pour isoler la voix principale et les chœurs.
  • Analyse audio : Extrait automatiquement les métadonnées de la piste, y compris le BPM (via librosa), la tonalité et l'indice de confiance de la gamme (via les profils de hauteur d'Albrecht-Shanahan), ainsi que les mesures de sonie intégrée (via pyloudnorm ITU-R BS.1770).
  • Frontend & Mixeur STAN/DAW : Conçu sans frameworks frontend lourds. Il utilise du JavaScript pur (Vanilla JS) avec un rendu des échantillons min/max sur balise <canvas> HTML5 et l'API Web Audio pour le monitoring RMS post-gain, la logique solo/mute et une lecture en boucle avec précision de phase.
  • Shell de bureau : Propulsé par Tauri v2 (Rust + WebViews système natives : WKWebView sous macOS et WebView2 sous Windows).

Fonctionnalités clés

  1. Isolation 6 pistes : Prise en charge par glisser-déposer des formats non compressés et compressés standard (MP3, WAV, FLAC, OGG/Opus, MP4, M4A) ou d'URL YouTube directes.
  2. Extraction intelligente de sous-ensembles : Sélectionnez un sous-ensemble de pistes (par exemple, uniquement la basse et la batterie) et StemDeck génère automatiquement une piste d'accompagnement Original contenant le mixage complémentaire (mix complet moins votre sélection), évitant ainsi tout doublon accidentel.
  3. Mixage non destructif dans le navigateur : Contrôle du gain en temps réel, solo, mute et monitoring par piste avec vumètres en direct.
  4. Export instantané du mixage : Génère à la volée des stems combinés mix.wav via FFmpeg amix ou des fichiers audio isolés individuels.

Démarrage rapide et installation

1. Fichiers binaires de bureau natifs

Des binaires précompilés pour macOS (Apple Silicon arm64 et Intel x64) ainsi que pour Windows (CPU ou paquets préconfigurés CUDA) sont disponibles directement sur les Releases GitHub. Au premier lancement, l'application configure l'environnement requis et télécharge les poids du modèle (~170 Mo) dans un répertoire de données local.

2. Exécution locale avec Python et UV

Si vous préférez exécuter le serveur web directement :

# Cloner le dépôt
git clone https://github.com/stemdeckapp/stemdeck && cd stemdeck

# Configuration automatisée pour macOS / Linux (nécessite ffmpeg et uv)
./run.sh setup
./run.sh start

Pour Windows PowerShell avec un GPU NVIDIA :

# Installer les dépendances avec uv
uv sync
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# Définir le périphérique et lancer le serveur FastAPI
$env:STEMDECK_DEMUCS_DEVICE = "cuda"
uv run uvicorn app.main:app --host 127.0.0.1 --port 8000 --timeout-graceful-shutdown 5

3. Déploiement avec Docker

Lancez le conteneur GHCR officiel avec l'accès GPU activé :

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

API REST et gestion des tâches

StemDeck propose une interface REST claire accompagnée de Server-Sent Events (SSE) pour le suivi des tâches :

Méthode Point de terminaison Description
POST /api/jobs Soumettre un fichier local via upload multipart ou { "url": "...", "stems": [...] }
GET /api/jobs/{id}/events Flux SSE transmettant la progression de la tâche (téléchargement, analyse, séparation, mixage)
GET /api/jobs/{id}/stems/{stem}.wav Diffuser l'audio d'une piste spécifique (vocals.wav, bass.wav, drums.wav, etc.)
POST /api/jobs/{id}/cancel Interrompre immédiatement les pipelines de sous-processus actifs et nettoyer l'espace disque temporaire
PATCH /api/jobs/{id}/sections Enregistrer les délimitations de marqueurs et les annotations sur la forme d'onde

En résumé

Si vous avez besoin d'intégrations mobiles poussées ou de modèles propriétaires de séparation à 10 pistes, les plateformes SaaS commerciales restent une option. Mais pour les producteurs, transcripteurs et musiciens en quête d'une confidentialité totale, sans limites d'utilisation et avec un traitement 100 % hors ligne, StemDeck propose un flux de travail impressionnant de type DAW, le tout en open source.

Source

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