-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Librosa backend #282
Librosa backend #282
Conversation
Changes in the EstimatorBuilder to set attributes instead of returning tensors for the _build methods. InputProvider classes to handle the different backend cases. New method in Separator.
|
I tried to test your Librosa backend implementation, but it seems like the -w argument is unrecognized. How are you using the new stft_backend flag on the command line? |
Hi @jaolan, the option is -B or --stft-backend. You can pass "tensorflow", "librosa", or "auto" as parameter. |
Hi @alreadytaikeune, I got it working, but with an unexpected key for the 'waveform' entry in input dict:
|
Hi @jaolan can you show me a code snippet to reproduce the error? Thank's a lot. |
This is the output I get upon trying 2 or 4 stems. Thanks for your help! |
Hi @jaolan I can't figure out which version of the |
Hi @alreadytaikeune , here is the separator.py code: https://gist.github.com/jaolan/c7c5be3dc2d3d5a4090dc65d67e3e165 |
I don't have the rights to access this. |
Apologies, everything is working as intended after merge to master. Thanks! |
[Spleeter-282] - Using librosa as an alternative backend for stft computation
Description
Tensorflow's implementation of stft and istft on CPU is extremely slow and glutton in memory. I implemented the possibility to defer these computations to librosa which results in faster inference on CPU and vastly diminished memory usage. The use of the backend can be controlled by an additional parameter on the command line, which defaults to the following logic:
How this patch was tested
Ran the separate commands using all the different backend options and checked the consistencies of the outputs as well as the memory use.