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