mir_eval
mir_eval copied to clipboard
Replace scipy.fftpack with scipy.fft
This came up in #370, but the source separation metrics are presently implemented using the old / legacy scipy.fftpack API. As the modernization PR bumps the minimum scipy version requirement to 1.4, we can now update this to use the newer scipy.fft API. See https://docs.scipy.org/doc/scipy/release/1.4.0-notes.html#scipy-fft-added
The main benefits of doing so are that we can get some speed and memory improvements by using rffts instead of ffts (big benefit for long signals!). We can also squeak out a bit more performance by using the next_fast_len function instead of assuming 2**k
.
Probably we can also vectorize some of the transform implementations.