Skip to main content

Separate audio into stems (vocals, instruments) using AI-powered Spleeter

Project description

demix

Version

separates audio from songs into stems (vocals, instruments)

installation

I suggest to create virtualenv for this project to not break system-wide packages installations (replace python path below with your own python3.8 path):

brew install virtualenvwrapper
brew install ffmpeg
mkdir demix-cli
cd demix-cli
mkvirtualenv -p /Users/pw/.pyenv/versions/3.8.16/bin/python demix-cli
workon demix-cli
pip install demix
demix -v
deactivate demix-cli

Please note: I'm using homebrew for installing virtualenvwrapper and ffmpeg. If you're using another package manager or different operating system than macOS (e.g. Linux), you need to install it differently.

update

pip install demix --upgrade

development

prepare environment (replace python path below with your own python3.8 path):

brew install virtualenvwrapper
brew install ffmpeg
mkvirtualenv -p /Users/pw/.pyenv/versions/3.8.16/bin/python demix
workon demix
pip install -r requirements.txt
python demix.py -v

Please note: I'm using homebrew for installing virtualenvwrapper and ffmpeg. If you're using another package manager or different operating system than macOS (e.g. Linux), you need to install it differently.

exit virtualenv, when you're done:

deactivate

to activate env again:

workon demix

testing

install pytest:

pip install pytest

run all tests (-v param for verbose):

pytest -v

usage

python demix.py -u <youtube-url> [options]
python demix.py -f <audio-file> [options]

options

Option Description
-u, --url YouTube video URL to process
-f, --file Local audio file to process (mp3, wav, flac, etc.)
-o, --output Output directory (default: output)
-t, --tempo Tempo factor for output audio (default: 1.0, use < 1.0 to slow down)
-p, --transpose Transpose pitch by semitones (default: 0, range: -12 to +12)
-ss, --start Start time for cutting (format: MM:SS or HH:MM:SS)
-to, --end End time for cutting (format: MM:SS or HH:MM:SS)
-m, --mode Separation mode: 2stems, 4stems, or 5stems (default: 2stems)
-c, --clean Clean up files: output, models, or all
-v, --version Show version number
-h, --help Show help message

separation modes

Mode Stems
2stems vocals, accompaniment
4stems vocals, drums, bass, other
5stems vocals, drums, bass, piano, other

examples

# separate a YouTube video into vocals and accompaniment
demix -u 'https://www.youtube.com/watch?v=VIDEO_ID'

# separate a local file with 4 stems
demix -f /path/to/song.mp3 -m 4stems

# cut audio from 1:30 to 3:45 before separation
demix -f song.mp3 -ss 1:30 -to 3:45

# start from 0:30 (skip intro)
demix -f song.mp3 -ss 0:30

# keep only the first 2 minutes
demix -f song.mp3 -to 2:00

# combine cutting with tempo and transpose
demix -f song.mp3 -ss 1:00 -to 4:00 -t 0.8 -p -2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

demix-1.0.2.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

demix-1.0.2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file demix-1.0.2.tar.gz.

File metadata

  • Download URL: demix-1.0.2.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for demix-1.0.2.tar.gz
Algorithm Hash digest
SHA256 ed72cc19d4f7d375eea3cc498bca385e6ae8f08f17993620ac897b83f71e86f0
MD5 e4f249127351fc5eee33a3eb6ad5be04
BLAKE2b-256 9d68b390a93a469e05b3ef936d99db6e3f7302abae26b7b2ea6f9ce474f8c51f

See more details on using hashes here.

File details

Details for the file demix-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: demix-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for demix-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7c31ab966b9d62504e66599787eb7f5b103abff19af708b5a993d2083fd849cb
MD5 b2862debd5142944607baf5974cda02a
BLAKE2b-256 73509ae2aed681be46d033e96c52289761ff66e02d83f90e78bd5c70447a9e29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page