TB065

Index Commits Files Refs
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