Comment extraire n'importe quel son d'une piste avec du texte ordinaire

Si vous avez déjà eu besoin de supprimer des aboiements de chien d'un podcast ou d'extraire les voix d'une vieille piste, vous avez probablement utilisé des séparateurs standards. En général, ils ne peuvent diviser une piste qu'en exactement quatre stems : voix, basse, batterie et le reste. Sortez de ce cadre—comme isoler des applaudissements spécifiques ou le tintement de verres—et les réseaux de neurones classiques montrent leurs limites.
Récemment, Meta a publié le modèle SAM-Audio, qui segmente les pistes audio selon des descriptions textuelles. Le problème est que le dépôt original nécessite d'énormes quantités de VRAM et ne fonctionne pas sur toutes les machines. Le projet audioghost-ai résout exactement ce problème : l'auteur a supprimé les parties inutiles de l'architecture, réduit les besoins en VRAM de près de moitié, et a tout intégré dans une application web prête à l'emploi.
Ce que le projet peut faire
L'idée centrale d'AudioGhost est de donner des ordres au modèle en langage humain ordinaire. Vous téléchargez un fichier audio ou vidéo, tapez une description dans le champ de saisie drums, crowd noise ou a dog barking, et choisissez une action : extraire ce son ou, au contraire, le supprimer de la piste.
L'interface fournit immédiatement un mixeur intégré. Vous pouvez écouter l'original, le son isolé et la piste résiduelle directement dans le navigateur, en comparant les résultats en temps réel. Le flux vidéo n'est pas encore analysé visuellement—le service se contente d'extraire la piste audio de la vidéo—mais l'auteur prévoit d'intégrer SAM 2 pour cliquer sur les objets dans l'image.
Comment ils ont réussi à réduire le modèle à 4 Go de VRAM
Le SAM-Audio original était conçu comme un modèle multimodal universel. De ce fait, les encodeurs vidéo et les classifieurs textuels restaient constamment en mémoire, même si l'utilisateur voulait simplement nettoyer un fichier MP3.
AudioGhost utilise le mode Lite proposé dans l'une des discussions sur le dépôt original de Meta. Voici comment ils ont économisé des ressources :
- Suppression de l'encodeur visuel et du classifieur visuel, soit environ 4 Go de VRAM économisés
- Désactivation du classifieur textuel et des prédicteurs de segments, soit encore 3 à 4 Go
- Passage aux calculs en précision
bfloat16par défaut - Découpage des pistes longues en fragments de 25 secondes
Le modèle de base peut ainsi fonctionner sur des GPU grand public comme le RTX 3070 ou le RTX 4060 avec 8 Go de mémoire. Si vous activez le mode haute qualité dans float32, les exigences passent à 13 Go, mais pour la plupart des tâches quotidiennes, le mode de base est suffisant. En termes de vitesse, l'inférence sur un RTX 4090 de test atteint une accélération dix fois supérieure au temps réel audio.
Architecture et pile technique
Le développeur n'a pas compliqué le projet avec des outils exotiques. L'architecture est simple :
┌─────────────────────────────────────────────────┐
│ Frontend │
│ (Next.js + Tailwind v4) │
└──────────────────────┬──────────────────────────┘
│
┌──────────────────────▼──────────────────────────┐
│ Backend API │
│ (FastAPI + Python) │
└──────────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ Task Queue │
│ (Celery + Redis) │
└──────────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ SAM Audio Lite │
│ (Memory-optimized Meta SAM-Audio) │
└─────────────────────────────────────────────────┘
Le frontend est construit avec Next.js et Tailwind v4. Le backend fonctionne avec FastAPI, et les tâches lourdes de séparation audio sont déchargées vers une file d'attente via Celery et Redis. Cela garde l'interface réactive pendant les opérations de traitement de fichiers longs.
Démarrage rapide
Pour Windows, le dépôt contient des scripts bat prêts à l'emploi qui configurent automatiquement l'environnement Conda, récupèrent Redis et installent les dépendances.
Si vous construisez manuellement sur Linux ou via le terminal :
# Создаем окружение
conda create -n audioghost python=3.11 -y
conda activate audioghost
# Ставим PyTorch с поддержкой CUDA 12.6 и FFmpeg
pip install torch==2.9.0+cu126 torchvision==0.24.0+cu126 torchaudio==2.9.0+cu126 --index-url https://download.pytorch.org/whl/cu126
conda install -c conda-forge ffmpeg -y
# Ставим SAM Audio и зависимости бэкенда
pip install git+https://github.com/facebookresearch/sam-audio.git
cd backend && pip install -r requirements.txt
# Ставим фронтенд
cd ../frontend && npm install
Avant de lancer, vous aurez besoin d'un compte HuggingFace. Le modèle sam-audio-large est soumis à l'accord de base, vous devez donc demander l'accès sur la page du modèle et générer un jeton, qui est ensuite saisi via l'interface web du service.
Impressions et à qui cela s'adresse
Le projet compte environ 470 étoiles sur GitHub et le statut MVP v1.0, vous pourriez donc rencontrer des imperfections. Par exemple, des problèmes de binaire FFmpeg apparaissent parfois lors de la construction de TorchCodec sur Windows, et le modèle peut avoir des difficultés avec des descriptions textuelles trop abstraites.
Néanmoins, c'est l'une des rares implémentations open source qui transforme le modèle de recherche lourd de Meta en un service local fonctionnel. Si vous montez des vidéos, nettoyez des pistes audio ou expérimentez le design sonore sur un GPU local, ce projet mérite définitivement un clone dans votre dossier local.
Projets similaires