def make_white_noise_freq(nch,length,fftLen,step): # stft length <-> samples src_volume=1 data=np.zeros((nch,int(length),fftLen/2+1),dtype = complex64) v_make_noise = np.vectorize(rand_noise) data=v_make_noise(data) #win = hamming(fftLen) # ハミング窓 win = np.array([1.0]*fftLen) out_data=[] for mic_index in xrange(data.shape[0]): spec=data[mic_index] full_spec=simmch.make_full_spectrogram(spec) #s_sum=np.mean(np.abs(full_spec)**2,axis=1) #print "[CHECK] power(spec/frame):",np.mean(s_sum) out_data.append(full_spec) # concat waves mch_data=np.array(out_data) return mch_data
fs=wr.getframerate() mono_wavdata = wavdata[target_ch::nch] wr.close() data = mono_wavdata.astype(float64)/2.0**15 fftLen = 512 step = fftLen / 4 win = hamming(fftLen) #win =[1.0]*fftLen ### STFT spectrogram = simmch.stft(data, win, step) w_data = apply_window(data, win, step) w_sum=np.sum(w_data**2,axis=1) spec=spectrogram[:, : fftLen / 2 + 1] full_spec=simmch.make_full_spectrogram(spec) s_sum=np.mean((np.abs(spectrogram)**2),axis=1) print "wav power:",w_sum print "wav #frames:",w_sum.shape print "spec power:",s_sum print "spec #frames:",s_sum.shape rate=s_sum/w_sum print "rate:",rate diff=(s_sum-w_sum) print "square error:",np.mean(diff**2) if log_file!=None: fp=open(log_file,"w") for w,s,r,d in zip(w_sum,s_sum,rate,diff): arr=[w,s,r,d]