Repository navigation
Expand file tree
/
Copy pathpreliminary.py
More file actions
124 lines (104 loc) · 3.52 KB
/
Copy pathpreliminary.py
File metadata and controls
124 lines (104 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import argparse
import pprint
from collections import OrderedDict
from pathlib import Path
from evasion_attack.utils import check_file_exists, unzip, save_config
from evasion_attack.tfrecord import TFRecordGenerator
def define_argparser():
""" Define arguments.
"""
p = argparse.ArgumentParser()
## Seed.
p.add_argument(
"--seed",
type=int,
default=42,
help="Arbitrary seed value for reproducibility. Default=%(default)s",
)
## Path.
p.add_argument(
"--data_path",
type=str,
default="data",
help="Folder where initial data is stored. Default=%(default)s",
)
## Params.
p.add_argument(
"--unzip",
dest="unzip",
action="store_true",
)
p.add_argument(
"--no-unzip",
dest="unzip",
action="store_false",
)
p.set_defaults(
unzip=True
)
p.add_argument(
"--generate_tfrecords",
dest="generate_tfrecords",
action="store_true",
)
p.add_argument(
"--no-generate_tfrecords",
dest="generate_tfrecords",
action="store_false",
)
p.set_defaults(
generate_tfrecords=True
)
p.add_argument(
"--file_num_per_tfrecord",
type=int,
default=5_000,
help="Maximum number of utterances to be saved in one '*.tfrec' file. Default=%(default)s",
)
config = p.parse_args()
## Add some arguments.
config.__setattr__("tr_folder", str(Path(config.data_path, "vox1_dev_wav", "wav")))
config.__setattr__("ts_folder", str(Path(config.data_path, "vox1_test_wav", "wav")))
config.__setattr__("split_ids", str(Path(config.data_path, "iden_split.txt")))
config.__setattr__("veri_test", str(Path(config.data_path, "veri_test.txt")))
config.__setattr__("tfrec_folder", str(Path(config.data_path, "tfrecord")))
config.__setattr__("iden_tfrec_folder", str(Path(config.tfrec_folder, "iden")))
config.__setattr__("veri_tfrec_folder", str(Path(config.tfrec_folder, "veri")))
config.__setattr__("num_classes_for_iden", 1_251)
config.__setattr__("num_classes_for_veri", 1_211)
return config
def main(config):
""" Main body.
"""
def print_config(config):
pprint.PrettyPrinter(indent=4).pprint(OrderedDict(vars(config)))
print_config(config)
## Unzip.
if config.unzip:
## Assert the zip file exists.
for fname in ["vox1_dev_wav.zip", "vox1_test_wav.zip", "iden_split.txt", "veri_test.txt"]:
check_file_exists(Path(config.data_path, fname))
## Unzip.
unzip(data_path=config.data_path)
## Generate tfrecord dataset.
if config.generate_tfrecords:
## Whether iden or veri, datasets are, after all, one kind,
## creating objects that specify a common path.
gen = TFRecordGenerator(
seed=config.seed,
tr_folder=config.tr_folder,
ts_folder=config.ts_folder,
split_ids=config.split_ids,
veri_test=config.veri_test,
iden_tfrec_folder=config.iden_tfrec_folder,
veri_tfrec_folder=config.veri_tfrec_folder,
num_classes_for_iden=config.num_classes_for_iden,
num_classes_for_veri=config.num_classes_for_veri,
)
gen.generate_iden_tfrecords()
gen.generate_veri_tfrecords()
## Save configuation.
save_config(vars(config), file_path=Path("config", "preliminary.json"))
if __name__ == "__main__":
config = define_argparser()
main(config)