tp/scripts/data.py (2852B)
1 from scipy.io import wavfile 2 import numpy as np 3 import librosa 4 import os 5 from types import SimpleNamespace 6 7 data_dir = '../data/' 8 plot_dir = '../plot/' 9 out_dir = '../out/' 10 11 ## Datos 12 file1_path = data_dir + 'cancion1.wav' 13 file2_path = data_dir + 'cancion2.wav' 14 filter1_h_file_path = data_dir + 'respuesta_impulso_1.txt' 15 filter2_h_file_path = data_dir + 'respuesta_impulso_2.txt' 16 17 a4_flauta_file_path = data_dir + 'a4_flauta.wav' 18 a4_clarinete_file_path = data_dir + 'a4_clarinete.wav' 19 a4_violin_file_path = data_dir + 'a4_violin.wav' 20 21 file1_fs, file1_data = wavfile.read(file1_path) 22 file2_fs, file2_data = wavfile.read(file2_path) 23 filter1_h = np.loadtxt(filter1_h_file_path) 24 filter2_h = np.loadtxt(filter2_h_file_path) 25 26 a4_flauta_fs, a4_flauta_data = wavfile.read(a4_flauta_file_path) 27 a4_clarinete_fs, a4_clarinete_data = wavfile.read(a4_clarinete_file_path) 28 a4_violin_fs, a4_violin_data = wavfile.read(a4_violin_file_path) 29 30 file1_filter1_output = np.convolve(file1_data, filter1_h, mode='same') 31 file1_filter2_output = np.convolve(file1_data, filter2_h, mode='same') 32 file2_filter1_output = np.convolve(file2_data, filter1_h, mode='same') 33 file2_filter2_output = np.convolve(file2_data, filter2_h, mode='same') 34 35 ## Datos tercera parte 36 37 # todas las canciones tienen formato mp3 y 44100Hz de frecuencia de muestreo 38 canciones_dataset_dir = data_dir + 'canciones/' 39 canciones_dataset = [] 40 canciones_dataset_common_fs = 44100 41 42 def cargar_canciones_dataset(count=0): 43 for i, file_name in enumerate(sorted(os.listdir(canciones_dataset_dir))): 44 if count != 0: 45 if i == count: 46 break 47 48 basename, ext = os.path.splitext(file_name) 49 50 file_path = canciones_dataset_dir + file_name 51 print("[LOG] Cargando '" + file_path + "'") 52 53 file_data, file_fs = librosa.load(file_path, sr=None, mono=True) 54 file_fs = int(file_fs) 55 canciones_dataset.append(SimpleNamespace( 56 name=basename, 57 path=file_path, 58 data=file_data, 59 fs=file_fs)) 60 61 print(f'[LOG] Se cargaron {i+1} archivos') 62 63 canciones_prueba_dir = data_dir + 'canciones_prueba/' 64 canciones_prueba = [] 65 66 def cargar_canciones_prueba(count=0): 67 for i, file_name in enumerate(sorted(os.listdir(canciones_prueba_dir))): 68 if count != 0 and i == count: 69 break 70 71 basename, ext = os.path.splitext(file_name) 72 73 file_path = canciones_prueba_dir + file_name 74 print("[LOG] Cargando '" + file_path + "'") 75 76 file_data, file_fs = librosa.load(file_path, sr=None, mono=True) 77 file_fs = int(file_fs) 78 canciones_prueba.append(SimpleNamespace( 79 name=basename, 80 path=file_path, 81 data=file_data, 82 fs=file_fs)) 83 84 print(f'[LOG] Se cargaron {i+1} archivos') 85
