Source code for museval.cli

import sys
import argparse
from . import eval_mus_dir, eval_dir
from .version import _version
import musdb


[docs]def bsseval(inargs=None): """ Generic cli app for bsseval results. Expects two folder with """ parser = argparse.ArgumentParser() parser.add_argument("reference_dir", type=str) parser.add_argument("estimates_dir", type=str) parser.add_argument("-o", help="output_dir") parser.add_argument("--win", type=float, help="Window size in seconds", default=1.0) parser.add_argument("--hop", type=float, help="Hop size in seconds", default=1.0) parser.add_argument( "-m", type=str, help="bss_eval version [`v3`, `v4`]", default="v4" ) parser.add_argument( "--version", "-v", action="version", version="%%(prog)s %s" % _version ) args = parser.parse_args(inargs) if not args.o: output_dir = args.estimates_dir else: output_dir = args.o # evaluate an existing estimate folder with wav files data = eval_dir( args.reference_dir, args.estimates_dir, output_dir=output_dir, mode=args.m, win=args.win, hop=args.hop, ) print(data)
[docs]def museval(inargs=None): """ Commandline interface for museval evaluation tools """ parser = argparse.ArgumentParser() parser.add_argument("estimates_dir", type=str) parser.add_argument("-o", help="output_dir") parser.add_argument("--musdb", help="path to musdb", type=str) parser.add_argument( "--is-wav", help="Read musdb wav instead of stems", action="store_true", ) args = parser.parse_args(inargs) mus = musdb.DB(root=args.musdb, is_wav=args.is_wav) if not args.o: output_dir = args.estimates_dir else: output_dir = args.o # evaluate an existing estimate folder with wav files eval_mus_dir( dataset=mus, # instance of musdb estimates_dir=args.estimates_dir, # path to estiamte folder output_dir=output_dir, # set a folder to write eval json files )
if __name__ == "__main__": museval(sys.argv[1:])