From 233b7d451bb4f8b0632c25899452061b70018c96 Mon Sep 17 00:00:00 2001 From: quillotm Date: Thu, 19 Aug 2021 13:29:17 +0200 Subject: [PATCH] adding changelabels function --- volia/masseffect.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/volia/masseffect.py b/volia/masseffect.py index 329b0e7..b5f5ef7 100644 --- a/volia/masseffect.py +++ b/volia/masseffect.py @@ -4,6 +4,7 @@ import core.data from utils import SubCommandRunner import os + def utt2char(features: str, outfile: str): """Allow the user to generate utt2char file from masseffect features file. @@ -54,7 +55,6 @@ def wavscp(datadir: str, outfile: str): directories = dir_en + dir_fr filenames = filenames_en + filenames_fr - with open(outfile, "w") as f: for i, fn in enumerate(filenames): @@ -66,7 +66,18 @@ def wavscp(datadir: str, outfile: str): f.write(f"{lang},{character},{record_id} {path}\n") - +def changelabels(source: str, labels: str, outfile: str): + data_dict = core.data.read_id_values(source) + labels_dict = core.data.read_labels(labels) + keys = list(data_dict.keys()) + + with open(outfile, "w") as f: + for key in keys: + splited = key.split(",") + splited[1] = labels_dict[key] + core.data.write_line(",".join(splited), data_dict[key]) + + if __name__ == '__main__': # Main parser parser = argparse.ArgumentParser(description="...") @@ -90,6 +101,13 @@ if __name__ == '__main__': parser_wavscp.add_argument("--outfile", default="wav.scp", help="wav.scp output file") parser_wavscp.set_defaults(which="wavscp") + # Change labels + parser_changelabels = subparsers.add_parser("changelabels", help="...") + parser_changelabels.add_argument("--source", required=True, type=str, help="source file where we want to change ids.") + parser_changelabels.add_argument("--labels", required=True, type=str, help="file with labels") + parser_changelabels.add_argument("--outfile", required=True, type=str, help="Output file") + parser_changelabels.set_defaults(which="changelabels") + # Parse args = parser.parse_args() @@ -97,7 +115,8 @@ if __name__ == '__main__': runner = SubCommandRunner({ "utt2char" : utt2char, "char2utt": char2utt, - "wavscp": wavscp + "wavscp": wavscp, + "changelabels": changelabels }) runner.run(args.which, args.__dict__, remove="which") \ No newline at end of file -- 1.8.2.3