Skip to main content

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

Project description

demix

version build deploy release

separates audio from songs into stems (vocals, instruments), transpose music, change tempo, operates on music from youtube video or local file

installation

I suggest to create virtualenv for this project to not break existing system-wide 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

[!NOTE] 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

[!NOTE] 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.

virtualenv

exit virtualenv, when you're done:

deactivate

to activate env again:

for user installation:

workon demix-cli

for dev setup:

workon demix

[!TIP] You can change local names of these envs if you want to.

testing

install pytest:

pip install pytest

run all tests (-v param for verbose):

pytest -v

usage

demix -u <youtube-url> [options]
demix -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.3.tar.gz (17.6 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.3-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: demix-1.0.3.tar.gz
  • Upload date:
  • Size: 17.6 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.3.tar.gz
Algorithm Hash digest
SHA256 418d72d418baf1bfacb5915171c675b37277664b2eb2d1e0436d4460bddefe75
MD5 42a0be60447a0fd875413dfc033e1676
BLAKE2b-256 1d631db5f9b96870d32a6cc00f47d7a88df6dd07e4008cc1708f6637f5554a4f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: demix-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.3 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2aab6362b157430879895e804134512a24c1acbed8ba5eeb1280a74b1994d02b
MD5 f3196a110b4a66e0e5e09f91d2d350a0
BLAKE2b-256 d09cd7e90438e95050c6f9b20caaa0932344bd90654127a03ec15533b1fa9ac9

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