Open jc5201 opened 2 years ago
Hi @jc5201 , thanks for the feedback! It is true that I did not implement this as an option, however, all the functions natively support batching of any dimension, so you could simply reshape the input arrays into blocks with an extra batch dimension and run the functions as they are. You would probably need to do something to solve for the same permutation over all the blocks though...
Some previous libraries like museval (https://github.com/sigsep/sigsep-mus-eval/blob/master/museval/metrics.py) or mir-eval(https://github.com/craffel/mir_eval/blob/master/mir_eval/separation.py) have parameter named 'window'. It split large size data into multiple chunks and calculate metrics(like sdr) and aggregate them.
I tried fast_bss_eval simply replacing museval.evaluate() into fast_bss_eval.bss_eval_sources(), but facing out of memory error (requiring 800GB memory). If this library provide windowing methods to control the memory usage, it would be great and become more easy to use.
Anyway, thanks for your awesome implementation!