Separate audio tracks with AI on Home Server: Guide to Spleeter Web with Docker
Those who work with audio, produces music or manages a home server, he knows well the satisfaction of automating complex processes. I recently decided to complement my trusty automatic mastering setup (Matching) a system for separation of audio tracks (Stem Separation), with the aim of extracting voices, battery, bass and instruments from any song directly from my home server.
The choice fell on Cracked Web, a splendid graphical interface based on the well-known AI engine developed by Deezer. Installation and production on my little one Lenovo ThinkCentre (pushed by the CPU AMD M320t) they reserved some interesting technical challenges. Here's how it went and what lessons I learned from it.
The architecture: because Spleeter Web is a giant
Unlike other monolithic tools that launch with a single Docker command, Spleeter Web is a real structured web application. Its ecosystem is made up of 5 distinct containers that work in synergy:
- Nginx: manages the web frontend and acts as a reverse proxy.
- API (Backend): the heart in Python that receives instructions.
- Celery (Fast & Slow): two separate workers to manage file processing queues.
- Redis: the in-memory database that coordinates messages between backend and worker.
This structure guarantees excellent queue management, but it requires resources and some care in port configuration to avoid conflicts with other services already present on the ThinkCentre.
The first stumbling block: transfer 9GB of images without saturating the network
After testing the stack locally on the main PC, the idea of having the ThinkCentre re-download over 9GB of Docker images didn't appeal to me. The most efficient solution was to export the entire stack from the local PC into a single compressed archive and transfer it 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
With this step, starting the file docker-compose.yml on the ThinkCentre it was almost instantaneous, without downloading a single additional megabyte from the Internet.
I realize that this need was mine alone, but I wanted to include it anyway. For those who want to do a typical and linear installation, I recommend following the installation notes on the GitHub repo official project.
The hardware challenge: spremere la CPU AMD M320t
Artificial intelligence models for audio (like Spleeter or the more recent Demucs v4) they are extremely resource hungry. Sul ThinkCentre, where the CPU AMD M320t it has to do all the heavy lifting of mathematical calculations without the aid of a dedicated GPU, separation takes several minutes per track and puts a strain on the processor.
In compact PCs like ThinkCentres (specie nei form factor Small Form Factor o Tiny), adding a GPU requires a lot of attention:
- Form Factor and Space: you need a card Low Profile (or even ultra-compact) that physically fits into the PCIe slot.
- Energy consumption: the integrated power supply forces you to choose boards without auxiliary power (sotto i 50-75W), come the NVIDIA T400 or T1000.
- VRAM per AI: separation models need at least 4GB of VRAM to avoid memory errors (Out of Memory).
YouTube e i “whims” of automatic download
Spleeter Web theoretically allows you to paste a YouTube link to download and extract the audio on the fly. In practice, sometimes we come across errors like this This video is not available in the backend logs.
This is because YouTube continually updates its anti-bot mechanisms, quickly making internal extraction libraries obsolete (come yt-dlp) included in the Docker container.
How to solve? The most stable and trouble-free way is to manage the download externally and extract the audio locally before uploading to the server. With FFmpeg, eg, you can extract a high-quality OGG Vorbis format audio track with a single command:
ffmpeg -i video_scaricato.mp4 -vn -c:a libvorbis -q:a 6 audio_estratto.ogg
Final thoughts
Having an instance of Spleeter Web on your home server is a priceless convenience for anyone involved in audio production or simply wanting to analyze the components of a song. Although the M320t CPU takes its time to process each track, the Docker pairing + Home Server once again confirms itself as the definitive solution for having full control over your digital tools.


0 Comments