Пример #1
0
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
Пример #2
0
	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]