Apply FFT to a list of wav files with Python

import pickle
import pandas
from os import listdir
from os.path import isfile, join
import os
import as wavfile
import scipy
import scipy.fftpack
import numpy as np
def process(fileWav):
  signal =[1]
  t = scipy.linspace(0,120,4000)
  FFT = abs(scipy.fft(signal))
  freqs = scipy.fftpack.fftfreq(signal.size, t[1]-t[0])
  return np.array(freqs)
def all_files(mypath):
  return [f for f in listdir(mypath) if isfile(join(mypath, f))]
def get_and_save_data(path, file): 
  print("Processing... " + file)
  data = [process(path + "\\" + file)]
  towrite = "ffts\\" + file + ".pickled"
  pickle.dump(data, open(towrite, "wb"))
def process_all_files(path):
  print("Loading directory " + path) 
  found = [file for file in all_files(path)]
  for file in found:
    if not isfile("ffts\\" + file + ".pickled"):
      print("Starting a thread for " + file)
      get_and_save_data(path, file)

Interested in Python? I send out weekly, personalized emails with articles and conference talks. Click here to see an example and subscribe.

1 reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *