Trennen Sie Audiospuren mit KI auf dem Home Server: Leitfaden für Spleeter Web mit Docker
Diejenigen, die mit Audio arbeiten, Ob er Musik produziert oder einen Heimserver verwaltet, er weiß genau, wie befriedigend es ist, komplexe Prozesse zu automatisieren. Ich habe vor kurzem beschlossen, mein bewährtes automatisches Mastering-Setup zu ergänzen (Passend) un sistema per la separazione delle tracce audio (Stammtrennung), con l’obiettivo di estrarre voci, batterie, bassi e strumenti da qualsiasi brano musicale direttamente dal mio home server.
La scelta è caduta su Spleeter Web, una splendida interfaccia grafica basata sul noto motore AI sviluppato da Deezer. L’installazione e la messa in produzione sul mio piccolo Lenovo ThinkCentre (spinto dalla CPU AMD M320t) hanno riservato qualche sfida tecnica interessante. Ecco com’è andata e quali lezioni ne ho tratto.
L’architettura: perché Spleeter Web è un gigante
A differenza di altri tool monolitici che si lanciano con un singolo comando Docker, Spleeter Web è una vera e propria applicazione web strutturata. Il suo ecosistema si compone di 5 container distinti che lavorano in sinergia:
- Nginx: gestisce il frontend web e fa da reverse proxy.
- API (Backend): il cuore in Python che riceve le istruzioni.
- Celery (Fast & Slow): due worker separati per gestire le code di elaborazione dei file.
- Redis: il database in-memory che coordina i messaggi tra backend e worker.
Questa struttura garantisce una gestione eccellente delle code, ma richiede risorse e qualche accortezza nella configurazione delle porte per evitare conflitti con altri servizi già presenti sul ThinkCentre.
Il primo scoglio: trasferire 9GB di immagini senza saturare la rete
Dopo aver testato lo stack in locale sul PC principale, l’idea di far scaricare nuovamente oltre 9GB di immagini Docker al ThinkCentre non mi allettava. La soluzione più efficiente è stata esportare l’intero stack dal PC locale in un unico archivio compresso e trasferirlo via SSH/SCP:
# Esportazione dal PC locale
docker save \
jeffreyca/spleeter-web-nginx:latest \
jeffreyca/spleeter-web-backend:latest \
redis:6.0-buster | gzip > spleeter_full_stack.tar.gz
# Caricamento sul server via SSH
docker load < spleeter_full_stack.tar.gz
Con questo passaggio, l’avvio del file docker-compose.yml sul ThinkCentre è stato quasi istantaneo, senza scaricare un solo megabyte aggiuntivo da Internet.
Mi rendo conto che questa esigenza era solo mia, ma ho voluto includerla ugualmente. Per chi vuole fare una installazione tipica e lineare consiglio di seguire le note di installazione sul repo GitHub del progetto ufficiale.
La sfida hardware: spremere la CPU AMD M320t
I modelli di intelligenza artificiale per l’audio (come Spleeter o il più recente Demucs v4) sono estremamente famelici di risorse. Sul ThinkCentre, dove la CPU AMD M320t deve fare tutto il lavoro pesante di calcolo matematico senza l’ausilio di una GPU dedicata, la separazione richiede diversi minuti per traccia e mette a dura prova il processore.
Nei PC compatti come i ThinkCentre (specie nei form factor Small Form Factor o Tiny), l’aggiunta di una GPU richiede molta attenzione:
- Form Factor e Spazio: serve una scheda Low Profile (o addirittura ultra-compatta) che entri fisicamente nello slot PCIe.
- Consumo energetico: l’alimentatore integrato impone di scegliere schede senza alimentazione ausiliaria (sotto i 50-75W), come le NVIDIA T400 o T1000.
- VRAM per l’AI: i modelli di separazione necessitano di almeno 4GB di VRAM per evitare errori di memoria (Out of Memory).
YouTube e i “capricci” del download automatico
Spleeter Web permette teoricamente di incollare un link di YouTube per scaricare ed estrarre l’audio al volo. Nella pratica, ci si scontra a volte con errori del tipo This video is not available nei log del backend.
Questo accade perché YouTube aggiorna continuamente i propri meccanismi anti-bot, rendendo presto obsolete le librerie interne di estrazione (kommen yt-dlp) incluse nei container Docker.
Come risolvere? La via più stabile e priva di intoppi consiste nel gestire il download esternamente ed estrarre l’audio in locale prima del caricamento sul server. Bei FFmpeg, zB, è possibile estrarre una traccia audio in formato OGG Vorbis di alta qualità con un singolo comando:
ffmpeg -i video_scaricato.mp4 -vn -c:a libvorbis -q:a 6 audio_estratto.ogg
Abschließende Gedanken
Avere un’istanza di Spleeter Web sul proprio home server è una comodità impagabile per chiunque si occupi di produzione audio o desideri semplicemente analizzare le componenti di un brano. Sebbene la CPU M320t richieda il suo tempo per elaborare ogni traccia, l’accoppiata Docker + Home Server si conferma ancora una volta la soluzione definitiva per avere pieno controllo sui propri strumenti digitali.


0 Kommentare