title: csv to wav python
body: <p>Hi i have this code that suppose to convert csv file to wav file.
  it creates a wav file but we don't hear anything. If i put 10 rows in the csv file, it make an about 1 min wav file ! So it is not proportional at all.</p>
  
  <p>my csv looks like:</p>
  
  <pre><code>0.000785,0.30886552
  0.00157,0.587527526
  0.002355,0.808736061
  0.00314,0.950859461
  0.003925,0.999999683
  0.00471,0.951351376
  0.005495,0.809671788
  0.00628,0.588815562
  0.007065,0.31037991
  0.00785,0.001592653
  0.008635,-0.307350347
  0.00942,-0.586237999
  0.010205,-0.807798281
  0.01099,-0.950365133
  0.011775,-0.999997146
  0.01256,-0.951840879
  0.013345,-0.810605462
  0.01413,-0.590102105
  0.014915,-0.311893512
  0.0157,-0.003185302
  0.016485,0.305834394
  0.01727,0.584946986
  0.018055,0.806858453
  0.01884,0.949868395
  0.019625,0.999992073
  0.02041,0.952327967
  0.021195,0.81153708
  0.02198,0.591387151
  0.022765,0.313406323
  </code></pre>
  
  <p>and the code here:</p>
  
  <pre><code>#!/usr/bin/python
  
  import wave
  import numpy
  import struct
  import sys
  import csv
  import resampy
  
  def write_wav(data, filename, framerate, amplitude):
      wavfile = wave.open(filename, "w")
      nchannels = 1
      sampwidth = 2
      framerate = framerate
      nframes = len(data)
      comptype = "NONE"
      compname = "not compressed"
      wavfile.setparams((nchannels,
                          sampwidth,
                          framerate,
                          nframes,
                          comptype,
                          compname))
      #print("Please be patient while the file is written")
      frames = []
      for s in data:
          mul = int(s * amplitude)
          # print "s: %f mul: %d" % (s, mul)
          frames.append(struct.pack('h', mul))
      #frames = (struct.pack('h', int(s*self.amp)) for s in sine_list)
      frames = ''.join(frames)
      #for x in xrange(0, 7200):
      wavfile.writeframes(frames)
      wavfile.close()
      print("%s written" %(filename))
  
  
  if __name__ == "__main__":
      if len(sys.argv) &lt;= 1:
          print ("You must supply a filename to generate")
          exit(-1)
      for fname in sys.argv[1:]:
  
          data = []
          for time, value in csv.reader(open(fname, 'U'), delimiter=','):
              try:
                  data.append(float(value))
              except ValueError:
                  pass # Just skip it
  
  
          print("This is data lenght: %d" %(len(data)))
          arr = numpy.array(data)
          print arr
          # Normalize data
          arr /= numpy.max(numpy.abs(data))
          print arr
          filename_head, extension = fname.rsplit(".", 1)
          # Resample normalized data to 8000 kHz
          target_samplerate = 8000
          sampled = resampy.resample(arr, target_samplerate/100000.0,16000)
          #print sampled
          write_wav(sampled, "new" + ".wav", target_samplerate, 32700)
          print ("File written succesfully !")
  </code></pre>
  
  <p>The original code is from github - pretz with some fixes i saw on google.</p>
  
  <p>thanks all</p>