Liking cljdoc? Tell your friends :D

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.7, pip

  • install python dependencies

pip3 install -r requirements.txt
  • add dependency to the project.clj
[dragoon000320/open-unmix-pytorch-clj "0.1.3-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
    (writes-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 Andrei Rybin

Distributed under the Eclipse Public License 2.0

Can you improve this documentation? These fine people already did:
arybin & Andrei Rybin
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close