t = np.arange(0.0, len(yin), 1/fs) wav=yin # import pdb;pdb.set_trace(); #for debug if '-' in args.t: t0,t1=(args.t).split('-') # t0,t1=map(int,(args.t).split('-')) t0=int(t0) if t1 == '': t1=len(wav) else: t1=int(t1) if t1 <= t0: t1=len(wav) else: t0=int(args.t) t1=len(wav) if args.t != '0': plot(wav[t0:t1]); mypltshow('tmp/yt{}-{}.eps'.format(t0,t1)); # 音声波形の中心部分を切り出す center = len(wav) / 2 # 中心のサンプル番号 # cuttime = 0.04 # 切り出す長さ [s] 40ms cuttime = args.l/1000. # 切り出す長さ [s] 20ms fl_n=int(cuttime*fs) fl_n2=fl_n/2 A=[] E=[] mP=[] if args.nDisp>=0: print('lenwav={}, nDmax={} fl_n={}'.format(len(wav),len(wav)/fl_n2,fl_n)) # for i in range(0,len(wav)/fl_n2): for t in range(t0,t1,fl_n2): # t=i*fl_n2
# mypltshow('LPC{}.eps'.format(i)); # LPC係数の振幅スペクトルを求める nfft = 2048 # FFTのサンプル数 fscale = np.fft.fftfreq(nfft, d = 1.0 / fs)[:nfft/2] # オリジナル信号の対数スペクトル spec = np.abs(np.fft.fft(s, nfft)) logspec = 20 * np.log10(spec) # LPC対数スペクトル w, h = scipy.signal.freqz(np.sqrt(e), a, nfft, "whole") lpcspec = np.abs(h) loglpcspec = 20 * np.log10(lpcspec) if i<nDisp: plot(s); mypltshow('y{}.eps'.format(i)); plot(fscale, logspec[:nfft/2]); plot(fscale, loglpcspec[:nfft/2], "r", linewidth=2) xlim((0, fs/2)) mypltshow('Envelope{}.eps'.format(i)) if nDisp >0: plot(mP);#plt.show() mypltshow("meanPower.eps") # fnfig="meanPower.eps" # plt.savefig(fnfig) # myshell("sleep 1;gv "+fnfig+"&"); AA=np.array(A) df=pd.DataFrame(AA) df.to_csv("tmp/LPC.dat",index=False,sep=' ',header=None) # AA.shape # import pdb;pdb.set_trace(); #for debug
# import pdb;pdb.set_trace(); #for debug # import pdb;pdb.set_trace(); #for debug if '-' in args.t: t0,t1=(args.t).split('-') # t0,t1=map(int,(args.t).split('-')) t0=int(t0) if t1 == '': t1=len(wav) else: t1=int(t1) if t1 <= t0: t1=len(wav) else: t0=int(args.t) t1=len(wav) if args.t != '0': plot(wav[t0:t1]); mypltshow('tmp/yt{}-{}.eps'.format(t0,t1)); # 音声波形の中心部分を切り出す center = len(wav) / 2 # 中心のサンプル番号 # cuttime = 0.04 # 切り出す長さ [s] 40ms cuttime = args.l/1000. # 切り出す長さ [s] 20ms fl_n=int(cuttime*fs) fl_n2=fl_n/2 A=[] E=[] mP=[] if args.nDisp>=0: print('lenwav={}, nDmax={} fl_n={}'.format(len(wav),len(wav)/fl_n2,fl_n)) # for i in range(0,len(wav)/fl_n2): for t in range(t0,t1,fl_n2):