-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfeaturize.py
34 lines (31 loc) · 1.15 KB
/
featurize.py
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
import os
import sys
import argparse
from prosody import Voice_Prosody
import pandas as pd
from datetime import datetime
'''
Featurize Wrapper for grabbing prosody features for audio stored in a folder
'''
def main(audio,fsize):
output_path = 'Output_Folder'
if output_path not in os.listdir():
os.mkdir(output_path)
df = pd.DataFrame()
vp = Voice_Prosody()
if os.path.isdir(audio) == False:
print("Provided path is not a directory. Please pass a directory")
sys.exit(1)
for fi in os.listdir(audio):
if '.wav' in fi:
print('Featurizing:',fi)
feat_dict = vp.featurize_audio(os.path.join(audio,fi),int(fsize))
df = df.append(feat_dict,ignore_index=True)
date = datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
df.to_csv(os.path.join(output_path,'prosody_features_' + date + '.csv'))
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-a','--audio_path',help='Audio Path',required=True)
parser.add_argument('-f','--frame_size',help='Frame Size',required=True)
args = parser.parse_args()
main(args.audio_path,args.frame_size)