mir_eval
mir_eval copied to clipboard
fftpack → fft
Fixes #373
This PR implements a number of small improvements to the separation module:
- Migrate to the newer scipy.fft API, instead of fftpack
- Replace fft() by rfft()
- Use the built-in helper for computing fast FFT lengths instead of brute-forcing
2**k
- Remove padding when we can
This should altogether get us about a 50% speedup in separation metrics and bring down the test build times considerably. I don't think this will affect accuracy at all. However, we should probably also roll in #376 once the dust settles.
This PR bumps the minimum supported scipy to 1.5.4 (from 1.4.0) to avoid a bug in the next_fast_length
implementation for real-valued inputs. 1.5.4 was released in Nov. 2020, while 1.4.0 was Dec. 2019. These are both far enough in the past that I don't consider it a big deal, but I am noting it here in case it warrants discussion.