Commit 62fc82e59a9eb5d76499d57175ed1a8475ecf995
1 parent
d6dec28e54
Exists in
master
Allow user to generate utt2char file. char2file is in building
Showing 1 changed file with 58 additions and 0 deletions Side-by-side Diff
volia/masseffect.py
1 | +import argparse | |
2 | +import core.data | |
3 | +from utils import SubCommandRunner | |
4 | + | |
5 | + | |
6 | +def utt2char(features: str, outfile: str): | |
7 | + """Allow the user to generate utt2char file from masseffect features file. | |
8 | + | |
9 | + TODO: Don't forget to manage two cases: one with old ids, and an other with | |
10 | + new ones. | |
11 | + | |
12 | + Args: | |
13 | + features (str): [description] | |
14 | + outfile (str): [description] | |
15 | + """ | |
16 | + data = core.data.read_features(features) | |
17 | + keys = list(data.keys()) | |
18 | + | |
19 | + with open(outfile, "w") as f: | |
20 | + for key in keys: | |
21 | + splited = key.replace("\n", "").split(",") | |
22 | + character = splited[1] | |
23 | + f.write(",".join(splited) + " " + character + "\n") | |
24 | + | |
25 | + | |
26 | +def char2utt(features: str, outfile: str): | |
27 | + raise Exception("Not implemented yet") | |
28 | + pass | |
29 | + | |
30 | + | |
31 | +if __name__ == '__main__': | |
32 | + # Main parser | |
33 | + parser = argparse.ArgumentParser(description="...") | |
34 | + subparsers = parser.add_subparsers(title="action") | |
35 | + | |
36 | + # utt2char | |
37 | + parser_utt2char = subparsers.add_parser("utt2char") | |
38 | + parser_utt2char.add_argument("--features", type=str, help="features file") | |
39 | + parser_utt2char.add_argument("--outfile", type=str, help="output file") | |
40 | + parser_utt2char.set_defaults(which="utt2char") | |
41 | + | |
42 | + # char2utt | |
43 | + parser_char2utt = subparsers.add_parser("char2utt") | |
44 | + parser_char2utt.add_argument("--features", type=str, help="features file") | |
45 | + parser_char2utt.add_argument("--outfile", type=str, help="output file") | |
46 | + parser_char2utt.set_defaults(which="char2utt") | |
47 | + | |
48 | + | |
49 | + # Parse | |
50 | + args = parser.parse_args() | |
51 | + | |
52 | + # Run commands | |
53 | + runner = SubCommandRunner({ | |
54 | + "utt2char" : utt2char, | |
55 | + "char2utt": char2utt, | |
56 | + }) | |
57 | + | |
58 | + runner.run(args.which, args.__dict__, remove="which") |