sigsep / bsseval

audio source separation evaluation metrics
MIT License
26 stars 10 forks source link

Efficient permutation #6

Open fakufaku opened 5 years ago

fakufaku commented 5 years ago

Hi, I have tried modifying the code to use an efficient algorithm to solve for the permutation, as described in Issue #5. I removed all references and loops over the exhaustive candidate_permutations. Instead, we can use double for loops on all pairs to fill the metrics array. At the end, the permutation is solved for every frame. I have also simplified a little bit the code so that the single frame case is handled in the same way. For silent frames, the metrics are set to nan as previously and the permutation output is fixed to np.arange(nsrc).

I have only run simple test cases and the output seems to be the same as that of mir_eval. I would love to run the tests but I couldn't find the instructions to download the test dataset. Note that the modification is very similar to what I proposed in craffel/mir_eval#318

faroit commented 5 years ago

Hi, and thanks again for this initiative. Since I just released a new stable version of museval a few days ago, the next step is now to remove the bsseval code in museval and instead make this repository a requirement for museval. I will update the code to make the unit tests run asap so that this PR can be tested.

fakufaku commented 5 years ago

Sounds great! Thanks you!

fakufaku commented 4 years ago

Hey @faroit , just pinging this. Also, I'd be happy to help to get bsseval on track for a release on pypi. I'd love to be able to use this in the research code I publish.