Skip to content

rybandrei2014/open-unmix-pytorch-clj

Repository files navigation

open-unmix-pytorch-clj

Clojure bindings for PyTorch implementation of Open-Unmix, a deep neural network reference implementation for music source separation, applicable for researchers, audio engineers and artists.

Clojars Project

Get Started

  • install python 3.6, pip

  • install python dependencies

pip3 install -r requirements.txt
  • add dependency to the project.clj
[dragoon000320/open-unmix-pytorch-clj "0.1.4-ALPHA"]

Usage

A little demo how to use it

;; require namespaces
(require '[open-unmix-pytorch-clj.core :refer :all])

(require '[open-unmix-pytorch-clj.io :refer :all])

(require '[open-unmix-pytorch-clj.convert :refer :all])

(-> "your-audio-file.wav"
    ;; reads audio file
    soundfile-read
    ;; converts audio data to 2 channel one
    ->2-channels
    ;; separates audio data into required audio sources
    (separate ["vocals" "drums" "other" "bass"]
        :device "cpu"
        ;; or if you have cuda enabled uncomment line below
        ;; :device "cuda"
        )
    ;; writes estimates for each audio source to the output directory
    (write-estimates "out-dir"))

Disclaimer

The library is in alpha at the moment, current state of library is described below:

  • for now only separation of audio source implemented
  • so there is no implementation of model training
  • performance must be further improved
  • a lot more to do...

Contributions

It is an open-source project so contributions are welcomed (pull-requests, issue reports).

Special Thanks To

License

Copyright © 2020

Distributed under the Eclipse Public License 2.0