The project's objective is to be able take an input audio file (optimized for songs) and separate into its constituent sources or instruments, like guitar, bass, drums, vocals, violins, percussion, etc.
This script provides a command-line interface to separate audio sources using one of two popular tools: Spleeter or Demucs. You can choose which tool to use and specify input/output files. The configuration for each tool (like the specific model to use) is managed using Pydantic models.
This project uses Poetry for dependency management and packaging.
First, ensure you have Poetry installed. Then, navigate to the project root directory and run:
poetry install- libsndfile: Required by
torchaudio(a dependency of Demucs) for audio file operations on some systems. On Debian/Ubuntu:sudo apt-get install libsndfile1 - (Optional but Recommended) FFmpeg: While
ffmpeg-pythonis listed in requirements, having theffmpegcommand-line tool installed system-wide can be beneficial for broader compatibility. On Debian/Ubuntu:sudo apt install ffmpeg