-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdataset_parser.py
More file actions
51 lines (47 loc) · 2.09 KB
/
Copy pathdataset_parser.py
File metadata and controls
51 lines (47 loc) · 2.09 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
import argparse
import pandas as pd
import os
from shutil import copy
def dataset_parser(name,aggregate_annotations,input_data):
'''
This function take as input the aggregated annotations and creates a folder-organised dataset
(each sample located in a subfolder in accordance with the class belongs to)
:param aggregate_annotations: csv file of winner annotations per sample
:param input_data: directory which contains all audio files collected
'''
data = pd.read_csv(aggregate_annotations)
if not(os.path.exists('datasets')):
os.mkdir('datasets')
full_name = 'datasets/' + name
if not(os.path.exists(full_name)):
os.mkdir(full_name)
for i,k in enumerate(data['Winner_annotation']):
subfolder_name = full_name + '/' + str(k)
if not (os.path.exists(subfolder_name)):
os.mkdir(subfolder_name)
MA = data['Sample_Name'][i] + '_MetaAudio.npz'
LLA = data['Sample_Name'][i] + '_LowLevelAudio.npz'
T = data['Sample_Name'][i] + '_Text.npz'
asr = data['Sample_Name'][i] + '.asr'
src = input_data + '/' + MA
dst = subfolder_name + '/'+ MA
copy(src,dst)
src = input_data + '/' + LLA
dst = subfolder_name + '/' + LLA
copy(src, dst)
src = input_data + '/' + T
dst = subfolder_name + '/' + T
copy(src, dst)
src = input_data + '/' + asr
dst = subfolder_name + '/' + asr
copy(src, dst)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-n", "--name_of_classification_task",required=True,
help="the name of the classification task e.g. expressive")
parser.add_argument("-aa", "--aggregate_annotations",required=True,
help="the file which contains the winner annotations per sample")
parser.add_argument("-i", "--input_data", required=True,
help="the directory with all audio files collected")
args = parser.parse_args()
dataset_parser(args.name_of_classification_task,args.aggregate_annotations,args.input_data)