def METHOD_NAME():
    # parse args and config and redirect to train_sp
    parser = argparse.ArgumentParser(
        description="Generate mel with diffsinger.")
    parser.add_argument(
        "--dataset",
        default="opencpop",
        type=str,
        help="name of dataset, should in {opencpop} now")
    parser.add_argument(
        "--rootdir", default=None, type=str, help="directory to dataset.")
    parser.add_argument(
        "--diffsinger-config", type=str, help="diffsinger config file.")
    parser.add_argument(
        "--diffsinger-checkpoint",
        type=str,
        help="diffsinger checkpoint to load.")
    parser.add_argument(
        "--diffsinger-stat",
        type=str,
        help="mean and standard deviation used to normalize spectrogram when training diffsinger."
    )
    parser.add_argument(
        "--diffsinger-stretch",
        type=str,
        help="min and max mel used to stretch before training diffusion.")
    parser.add_argument(
        "--phones-dict",
        type=str,
        default="phone_id_map.txt",
        help="phone vocabulary file.")
    parser.add_argument(
        "--speaker-dict", type=str, default=None, help="speaker id map file.")
    parser.add_argument(
        "--dur-file", default=None, type=str, help="path to durations.txt.")
    parser.add_argument("--output-dir", type=str, help="output dir.")
    parser.add_argument(
        "--ngpu", type=int, default=1, help="if ngpu == 0, use cpu.")
    args = parser.parse_args()
    if args.ngpu == 0:
        paddle.set_device("cpu")
    elif args.ngpu > 0:
        paddle.set_device("gpu")
    else:
        print("ngpu should >= 0 !")
    with open(args.diffsinger_config) as f:
        diffsinger_config = CfgNode(yaml.safe_load(f))
    print("========Args========")
    print(yaml.safe_dump(vars(args)))
    print("========Config========")
    print(diffsinger_config)
    evaluate(args, diffsinger_config)