mir_eval icon indicating copy to clipboard operation
mir_eval copied to clipboard

Replace scipy.fftpack with scipy.fft

Open bmcfee opened this issue 3 months ago • 1 comments

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.

bmcfee avatar Mar 22 '24 19:03 bmcfee