handcrafted features
This commit is contained in:
		
							parent
							
								
									6b3fbce6d1
								
							
						
					
					
						commit
						71e262b340
					
				| @ -1,5 +1,4 @@ | |||||||
| import json | import os | ||||||
| import os |  | ||||||
| import sys | import sys | ||||||
| import warnings | import warnings | ||||||
| from math import pi | from math import pi | ||||||
| @ -13,7 +12,7 @@ warnings.filterwarnings("ignore") | |||||||
| 
 | 
 | ||||||
| SR = 22050  # sample rate | SR = 22050  # sample rate | ||||||
| FRAME_LEN = int(SR / 10)  # 100 ms | FRAME_LEN = int(SR / 10)  # 100 ms | ||||||
| HOP = int(FRAME_LEN / 2)  # 50% overlap, meaning 5ms hop length | HOP = int(FRAME_LEN / 2)  # 50% overlap, meaning 5 ms hop length (step size) | ||||||
| MFCC_dim = 13  # the MFCC dimension | MFCC_dim = 13  # the MFCC dimension | ||||||
| 
 | 
 | ||||||
| def sta_fun(np_data): | def sta_fun(np_data): | ||||||
| @ -190,16 +189,17 @@ def extract_features(signal, signal_sr): | |||||||
|      |      | ||||||
|      |      | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|     # data path (raw_files\devel OR test OR train folder) |     # data path (dist/wav/) | ||||||
|     path = sys.argv[1]   |     path = sys.argv[1] | ||||||
|  | 
 | ||||||
|  |     # train, devel or test subset | ||||||
|  |     dataset = sys.argv[2]   | ||||||
|      |      | ||||||
|     x_data = [] |     x_data = [] | ||||||
|     y_label = [] |     y_label = [] | ||||||
|     y_uid = [] |  | ||||||
| 
 | 
 | ||||||
|     #extract features |     # extract features for all audio samples from correct subset | ||||||
|     files = os.listdir(path) |     for file in sorted([f for f in os.listdir(path) if dataset in f]): | ||||||
|     for file in files:  |  | ||||||
|         try: |         try: | ||||||
|             sample_path = os.path.join(path,file)                       |             sample_path = os.path.join(path,file)                       | ||||||
|             file_b = sample_path |             file_b = sample_path | ||||||
| @ -213,18 +213,11 @@ if __name__ == "__main__": | |||||||
|         yt, index = librosa.effects.trim( |         yt, index = librosa.effects.trim( | ||||||
|             y, frame_length=FRAME_LEN, hop_length=HOP |             y, frame_length=FRAME_LEN, hop_length=HOP | ||||||
|         ) |         ) | ||||||
|         duration = librosa.get_duration(y=yt, sr=sr) |  | ||||||
|         if duration < 2: |  | ||||||
|             continue  |  | ||||||
|         features = extract_features(signal=y, signal_sr=sr) |         features = extract_features(signal=y, signal_sr=sr) | ||||||
| 
 |          | ||||||
|         x_data.append(features.tolist()) |         x_data.append(features.tolist()) | ||||||
| 
 | 
 | ||||||
|     #save features in numpy.array |     # save features and labels | ||||||
|     x_data = np.array(x_data) |     df = pd.read_csv('./dist/lab/' + dataset + '.csv', sep =',') | ||||||
|     labels_path = 'labels\\' + os.path.basename(os.path.normpath(path)) + '.csv' |     np.save(os.path.join('./features/hand_features',"x_" + dataset + "_data.npy"), np.array(x_data)) | ||||||
|     df = pd.read_csv(labels_path, sep =',') |     np.save(os.path.join('./features/hand_features',"y_" + dataset + "_label.npy"), df.label) | ||||||
|     y_label = df.label |  | ||||||
| 
 |  | ||||||
|     np.save(os.path.join('hand_features',"x_" + os.path.basename(os.path.normpath(path)) + "_data.npy"), x_data) |  | ||||||
|     np.save(os.path.join('hand_features',"y_" + os.path.basename(os.path.normpath(path)) + "_label.npy"), y_label) |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user