Blame view
volia/data.py
2.69 KB
65cfb375f
|
1 2 |
import argparse import sys |
e200c0b6f
|
3 |
from utils import SubCommandRunner |
65cfb375f
|
4 |
|
37c010cba
|
5 |
import core.data |
65cfb375f
|
6 |
|
65cfb375f
|
7 |
|
37c010cba
|
8 9 10 11 12 13 14 15 16 17 18 |
def filter_file(file, filter, outfile): file_path = file filter_path = filter file_data = core.data.read_id_values(file_path) filter_data = core.data.read_lst(filter_path) with open(outfile, "w") as out: for id_ in filter_data: core.data.write_line(id_, file_data[id_], out) |
65cfb375f
|
19 |
|
37c010cba
|
20 |
|
65cfb375f
|
21 22 |
def convert(file, type_from, type): |
88260de93
|
23 |
|
65cfb375f
|
24 |
pass |
88260de93
|
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
def utt2dur(wavscp: str, outfile: str): import wave import contextlib with open(wavscp, "r") as f, open(outfile, "w") as of: for line in f: splited = line.replace(" ", "").split(" ") id_ = splited[0] wav_ = splited[1] duration = 0 with contextlib.closing(wave.open(wav_,'r')) as wav_f: frames = wav_f.getnframes() rate = wav_f.getframerate() duration = frames / float(rate) of.write(f"{id_} {duration} ") |
65cfb375f
|
45 46 |
if __name__ == "__main__": |
0baf1624a
|
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# Main parser parser = argparse.ArgumentParser(description="manage files") subparsers = parser.add_subparsers(title="actions") # Filter ids parser_filter = subparsers.add_parser("filter", help="filter a file") parser_filter.add_argument("--file", type=str, help="path of the file to filter", required=True) parser_filter.add_argument("--filter", type=str, help="filter file [id_from] [id_to]", required=True) parser_filter.add_argument("--outfile", type=str, help="output file", required=True) parser_filter.set_defaults(which="filter") # Convert parser_convert = subparsers.add_parser("convert", help="convert a file") parser_convert.add_argument("--file", type=str, help="...", required=True) parser_convert.add_argument("--type-from", type=str, choices=["old-masseffect", "new-masseffect"], help="...", required=True) parser_convert.add_argument("--type", choices=["old-masseffect", "new-masseffect"], required=True) parser_convert.set_defaults(which="convert") |
88260de93
|
64 65 66 67 68 69 70 71 72 |
# utt2dur parser_utt2dur = subparsers.add_parser("utt2dur", help="generate utt2dur file") parser_utt2dur.add_argument("--wavscp", type=str, help="wav file", required=True) parser_utt2dur.add_argument("--outfile", type=str, default="utt2dur", help="output file") parser_utt2dur.set_defaults(which="utt2dur") # TODO: utt2label_to_label2utt # TODO: label2utt_to_utt2label |
0baf1624a
|
73 74 75 76 |
# Parse args = parser.parse_args() # Run commands |
65cfb375f
|
77 78 79 |
runner = SubCommandRunner({ "convert" : convert, "filter": filter_file, |
88260de93
|
80 |
"utt2dur": utt2dur |
65cfb375f
|
81 82 83 |
}) runner.run(args.which, args.__dict__, remove="which") |