>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
TypeScript

Hoe je elk geluid uit een track kunt halen met gewone tekst

AudioGhost Banner

Demo Python License

Als je ooit hondengeblaf uit een podcast hebt moeten verwijderen of zang uit een oude track hebt willen halen, heb je waarschijnlijk te maken gehad met standaard splitters. Meestal kunnen ze een track alleen in precies vier stems verdelen: zang, bas, drums en alles eromheen. Stap je links of rechts van dat pad af—zoals het isoleren van specifiek applaus of het rinkelen van glazen—dan schieten klassieke neurale netwerken tekort.

Onlangs heeft Meta het SAM-Audio-model uitgebracht, dat audiotracks splitst op basis van tekstbeschrijvingen. Het probleem is dat de oorspronkelijke repository enorme hoeveelheden VRAM vereist en niet op elke machine draait. Het audioghost-ai-project lost dit precies op: de auteur heeft onnodige delen van de architectuur verwijderd, de VRAM-vereisten bijna gehalveerd en alles verpakt in een direct bruikbare webapplicatie.

Wat het project kan doen

Het kernidee achter AudioGhost is om het model commando's te geven in gewone menselijke taal. Je uploadt een audio- of videobestand, typt een beschrijving in het invoerveld drums, crowd noise of a dog barking, en kiest een actie: dat geluid extraheren of, omgekeerd, het uit de track verwijderen.

De interface biedt direct een ingebouwde trackmixer. Je kunt het origineel, het geïsoleerde geluid en het resterende spoor direct in de browser beluisteren, waarbij je resultaten direct kunt vergelijken. De videostream wordt nog niet visueel geanalyseerd—de service haalt alleen het audiotrack uit de video—maar de auteur is van plan om SAM 2 te integreren voor het klikken op objecten in het beeld.

Hoe ze het model hebben weten te verkleinen tot 4 GB VRAM

Het oorspronkelijke SAM-Audio was ontworpen als een universele multimodale werkpaard. Hierdoor bleven video-encoders en tekst-rangers constant in het geheugen, zelfs als de gebruiker alleen een MP3-bestand wilde opschonen.

AudioGhost maakt gebruik van de Lite-modus die werd voorgesteld in een van de discussies op Meta's oorspronkelijke repository. Zo hebben ze resources bespaard:

  • De Vision Encoder en Visual Ranker verwijderd, wat ongeveer 4 GB VRAM bespaart
  • De Text Ranker en span predictors uitgeschakeld, wat nog eens 3–4 GB oplevert
  • Computaties standaard omgeschakeld naar bfloat16 precisie
  • Lange tracks opgesplitst in fragmenten van 25 seconden

Als gevolg hiervan kan het basismodel draaien op consumenten-GPU's zoals de RTX 3070 of RTX 4060 met 8 GB geheugen. Als je de hoge-kwaliteitsmodus inschakelt in float32, springen de vereisten naar 13 GB, maar voor de meeste dagelijkse taken is de basismodus voldoende. Qua snelheid haalt inferentie op een test-RTX 4090 een tienvoudige versnelling ten opzichte van realtime audio.

Architectuur en Stack

De ontwikkelaar heeft het project niet gecompliceerd met exotische tools. De architectuur is eenvoudig:

┌─────────────────────────────────────────────────┐
                   Frontend                       
             (Next.js + Tailwind v4)             
└──────────────────────┬──────────────────────────┘
                       
┌──────────────────────▼──────────────────────────┐
               Backend API                        
            (FastAPI + Python)                    
└──────────────────────┬──────────────────────────┘
                       
                       
┌─────────────────────────────────────────────────┐
              Task Queue                          
          (Celery + Redis)                        
└──────────────────────┬──────────────────────────┘
                       
                       
┌─────────────────────────────────────────────────┐
           SAM Audio Lite                         
    (Memory-optimized Meta SAM-Audio)            
└─────────────────────────────────────────────────┘

Het frontend is gebouwd met Next.js en Tailwind v4. De backend draait op FastAPI, en zware audio-scheidingstaken worden via een queue afgehandeld door Celery en Redis. Dit houdt de interface responsief tijdens langdurige bestandverwerking.

Snel aan de slag

Voor Windows bevat de repository kant-en-klare bat-scripts die automatisch de Conda-omgeving instellen, Redis ophalen en dependencies installeren.

Als je handmatig bouwt op Linux of via de 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

Voor het opstarten heb je een HuggingFace-account nodig. Het model sam-audio-large valt onder de basisovereenkomst, dus je moet toegang aanvragen op de modelpagina en een token genereren, dat vervolgens via de webinterface van de service wordt ingevoerd.

Indrukken en voor wie het bedoeld is

Het project heeft ongeveer 470 sterren op GitHub en MVP v1.0-status, dus je kunt ruwe randjes tegenkomen. FFmpeg-binaire problemen duiken bijvoorbeeld soms op bij het bouwen van TorchCodec op Windows, en het model kan moeite hebben met al te abstracte tekstbeschrijvingen.

Desondanks is het een van de weinige open-source implementaties die Meta's zware onderzoeksmodel omzet in een werkende lokale service. Als je video's bewerkt, audiotracks opschoont of experimenteert met sound design op een lokale GPU, verdient dit project zeker een clone naar je lokale map.

Gerelateerde projecten