import soundfile as sf import matplotlib.plot as plt import numpy as np import utils def power(arr: np.array, log=False): tmp = sum(arr**2)/len(arr) return 10*np.log10(tmp) if log else tmp def snr(sig_pwr, noise_pwr, log=False): if log: sig_pwr, noise_pwr = 10**(sig_pwr/10), 10**(noise_pwr/10) return 10*np.log10(sig_pwr/noise_pwr) audio, sr = sf.read(‘microtest.wav’) plt.figure(figsize=(20,4)) t = np.arrange(len(audio))/sr plt.plot(t, audio) #dibuja la señal plt.show() señal_index = list(map(int, (2.1*sr, 3,9*sr))) ruido_index = list(map(int, (0*sr, 2.0*sr))) print (señal_index) print (ruido_index) señal = audio[señal_index[0]:señal_index[1]] señal = señal[0:180] plt.figure(figsize=(15,4)) plt.plot(señal) plt.show() ruido = audio[ruido_index[0]:ruido_index[1]] plt.figure(figsize=(15,4)) plt.plot(ruido) plt.show() log = True n_pwr = utils.power(ruido, log=log) s_pwr = utils.power(señal, log=log) snr = utils.snr(s_pwr, n_pwr, log=log) print(f”Potencia de la señal: {s_pwr}”) print(f”Potencia de la señal: {n_pwr}”) print(f”SNR: {snr}”)