Come estrarre qualsiasi suono da una traccia usando testo normale

Se hai mai avuto bisogno di rimuovere il latrato di un cane da un podcast o estrarre le voci da una vecchia traccia, probabilmente hai a che fare con i separatori standard. Di solito, possono dividere una traccia solo in esattamente quattro stem: voci, bassi, batteria e tutto il resto. Andare oltre questi limiti—come isolare un applauso specifico o il tintinnio dei bicchieri—e le reti neurali classiche non sono all'altezza.
Recentemente, Meta ha rilasciato il modello SAM-Audio, che divide le tracce audio in base a descrizioni testuali. Il problema è che il repository originale richiede enormi quantità di VRAM e non funziona su ogni macchina. Il progetto audioghost-ai risolve esattamente questo problema: l'autore ha eliminato le parti non necessarie dell'architettura, ridotto i requisiti di VRAM quasi della metà e ha confezionato tutto in un'applicazione web pronta all'uso.
Cosa può fare il progetto
L'idea fondamentale dietro AudioGhost è dare comandi al modello in linguaggio umano normale. Carichi un file audio o video, digiti una descrizione nel campo di input drums, crowd noise o a dog barking e scegli un'azione: estrarre quel suono o, al contrario, rimuoverlo dalla traccia.
L'interfaccia fornisce immediatamente un mixer di tracce integrato. Puoi ascoltare l'originale, il suono isolato e la traccia residua direttamente nel browser, confrontando i risultati al volo. Il flusso video non viene ancora analizzato visivamente—il servizio si limita a estrarre la traccia audio dal video—ma l'autore prevede di integrare SAM 2 per cliccare sugli oggetti nel fotogramma.
Come sono riusciti a ridurre il modello a 4 GB di VRAM
Il SAM-Audio originale era progettato come un cavallo di battaglia multimodale universale. Per questo motivo, gli encoder video e i ranker testuali rimanevano costantemente in memoria, anche se l'utente voleva solo pulire un file MP3.
AudioGhost utilizza la Lite Mode proposta in una delle discussioni sul repository originale di Meta. Ecco come hanno risparmiato risorse:
- Eliminato il Vision Encoder e il Visual Ranker, risparmiando circa 4 GB di VRAM
- Disabilitato il Text Ranker e i span predictor, guadagnando altri 3–4 GB
- Passato i calcoli a precisione
bfloat16per impostazione predefinita - Dividere le tracce lunghe in frammenti da 25 secondi
Di conseguenza, il modello base può funzionare su GPU consumer come la RTX 3070 o la RTX 4060 con 8 GB di memoria. Se abiliti la modalità alta qualità in float32, i requisiti salgono a 13 GB, ma per la maggior parte dei compiti quotidiani, la modalità base è sufficiente. In termini di velocità, l'inferenza su una RTX 4090 di test raggiunge un'accelerazione dieci volte rispetto all'audio in tempo reale.
Architettura e stack
Lo sviluppatore non ha complicato il progetto con strumenti esotici. L'architettura è semplice:
┌─────────────────────────────────────────────────┐
│ Frontend │
│ (Next.js + Tailwind v4) │
└──────────────────────┬──────────────────────────┘
│
┌──────────────────────▼──────────────────────────┐
│ Backend API │
│ (FastAPI + Python) │
└──────────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ Task Queue │
│ (Celery + Redis) │
└──────────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ SAM Audio Lite │
│ (Memory-optimized Meta SAM-Audio) │
└─────────────────────────────────────────────────┘
Il frontend è costruito con Next.js e Tailwind v4. Il backend gira su FastAPI e i compiti pesanti di separazione audio vengono scaricati su una coda tramite Celery e Redis. Questo mantiene l'interfaccia reattiva durante le operazioni di elaborazione di file lunghi.
Avvio rapido
Per Windows, il repository contiene script bat pronti all'uso che configurano automaticamente l'ambiente Conda, scaricano Redis e installano le dipendenze.
Se stai costruendo manualmente su Linux o tramite terminale:
# Создаем окружение
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
Prima di avviare, avrai bisogno di un account HuggingFace. Il modello sam-audio-large è protetto dall'accordo base, quindi devi richiedere l'accesso sulla pagina del modello e generare un token, che viene poi inserito tramite l'interfaccia web del servizio.
Impressioni e a chi è rivolto
Il progetto ha circa 470 stelle su GitHub e lo stato MVP v1.0, quindi potresti incontrare qualche spigolo. Ad esempio, problemi con il binario FFmpeg a volte saltano fuori quando si costruisce TorchCodec su Windows e il modello potrebbe avere difficoltà con descrizioni testuali troppo astratte.
Nonostante ciò, è una delle poche implementazioni open-source che trasforma il pesante modello di ricerca di Meta in un servizio locale funzionante. Se modifichi video, pulisci tracce audio o sperimenti con sound design su una GPU locale, questo progetto merita sicuramente un clone nella tua cartella locale.
Progetti correlati