fs, window=window_type, nperseg=window_size, noverlap=window_overlap, nfft=nfft) est_s_t = est_s_t[:, :audio_file_length_samples] # Parameters filtersize = ir.shape[0] winsize = 8 * filtersize hopsize = winsize / 16 # IR ESTIMATION FROM ESTIMATED ANECHOIC SIGNAL ir_est_derv = np.zeros((filtersize, dimM)) for m in range(dimM): ir_est_derv[:, m] = sid_stft2(est_s_t[m], y_t[m], winsize, hopsize, filtersize) # %% RT60 estimation # True computed est_derv = compute_t60(ir_est_derv[:, 0], fs, rt60_f)[0, 1] # rt10 rt60_estimated = est_derv # %% PLOT print('------------------------') print('RT60 computed (true):', rt60_true) print('RT60 estimated:', rt60_estimated) if plot: plt.figure() plt.plot(ir)
fs, window=window_type, nperseg=window_size, noverlap=window_overlap, nfft=nfft) est_s_t = est_s_t[:, :audio_file_length_samples] # %% Akis STFT System Identification # Parameters filtersize = ir.shape[0] winsize = 8 * filtersize hopsize = winsize / 16 # IR ESTIMATION FROM TRUE ANECHOIC SIGNAL ir_est_true = sid_stft2(s_t, y_t[0], winsize, hopsize, filtersize) # IR ESTIMATION FROM ESTIMATED ANECHOIC SIGNAL ir_est_derv = sid_stft2(est_s_t[0], y_t[0], winsize, hopsize, filtersize) # %% RT60 estimation # Oracle est_true = compute_t60(ir_est_true, fs, rt60_f)[0, rt_method_idx] rt60_estimated[ir_idx, af_idx, rt_estimation_method_idx] = est_true # True computed rt_estimation_method_idx += 1 est_derv = compute_t60(ir_est_derv, fs, rt60_f)[0, rt_method_idx] rt60_estimated[ir_idx, af_idx, rt_estimation_method_idx] = est_derv
# plt.show() # coefs over frequency # plt.figure() # plt.plot(np.abs(C.squeeze())) # plt.show() # %% AKIS STFT SYSTEM IDENTIFICATION winsize = 8 * ir_length_samples # true, groundtruth hopsize = winsize / 16 # IR ESTIMATION FROM ESTIMATED ANECHOIC SIGNAL for m in range(dimM): ir_est_derv = sid_stft2(est_s_t[m], y_t[m], winsize, hopsize, ir_length_samples) irs_estimated[rt60_0_idx, audio_file_idx, L_idx, m] = ir_est_derv # %% t60 estimation plot = False est_derv = compute_t60(ir_est_derv, sr, band_centerfreqs, plot=plot, title='Estimated IR, derv signal') est_derv = est_derv[0] # first band # store results[rt60_0_idx, audio_file_idx, L_idx, m] = est_derv np.save('/Users/andres.perez/source/dereverberation/ctf/ctf_data/results_'+str(sh_order)+'_'+str(tau),results) np.save('/Users/andres.perez/source/dereverberation/ctf/ctf_data/irs_estimated_'+str(sh_order)+'_'+str(tau),irs_estimated)