Advertisement
Guest User

Untitled

a guest
Jun 5th, 2021
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.95 KB | None | 0 0
  1. from scipy.io import wavfile
  2. import imageio
  3. import numpy as np
  4.  
  5. rate, data = wavfile.read("PCT-15_AUDIO.wav")
  6. # convert to complex
  7. data = data.astype(np.complex64)
  8. # center the signal frequency
  9. data *= (-1+0j) ** (np.arange(len(data)) * (2*1747.805/rate))
  10. # low pass filter using sinc (without proper windowing, probably stupid)
  11. space = (np.arange(-100, 101) + .5) * (1500 / rate)
  12. lpf = np.sin(np.pi*space) / (np.pi * space)
  13. data = np.convolve(data, lpf, mode="same")
  14. # align with real axis
  15. data *= (-1)**.175
  16. # align x axis
  17. data = data[1930:]
  18. # 1d -> 2d
  19. n = 2422 # width of image
  20. data = data[:len(data)//n*n]
  21. data = data.reshape((-1, n))
  22. # cut off emty parts
  23. data = data[34:-24]
  24. # use only real part
  25. data = data.real
  26. # get in range [0, 1]
  27. data = data - np.percentile(data, .5)
  28. data /= np.percentile(data, 99.5)
  29. data = data.clip(0,1)
  30. # fix aspect ratio
  31. data = data.repeat(30, axis=0)
  32. # write to file
  33. imageio.imwrite("test2.png", data)
  34.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement