Nugroho's blog.: Working with Audio in Python

Tuesday, October 20, 2015

Working with Audio in Python

 What I did is read a .wav file, extract the raw audio data, (I use first 1/20 data for sample), transform it using Fast Fourier Transform, manipulate it (I only use the first cluster frequency spectrum ), transform it back using InverseFFT.

 I use matplotlib and numpy module to plot and compute.

 I also use sys and wave module as 'interface'.


import matplotlib.pyplot as plt
import numpy as np
import wave
import sys


spf = wave.open('violin2.wav','r')

#Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int16')
fs = spf.getframerate()
print fs

#If Stereo
if spf.getnchannels() == 2:
print 'Just mono files'
sys.exit(0)

Time=np.linspace(0, len(signal)/fs, num=len(signal))
sample = []
st=[]
for i in np.arange(len(signal)/20):
sample.append( signal[i])
st.append(Time[i])

ft=np.fft.fft(sample)
pft=[]
for i in np.arange(len(ft)):
if i<500: data-blogger-escaped-ample="" data-blogger-escaped-else:="" data-blogger-escaped-from="" data-blogger-escaped-ft="" data-blogger-escaped-i="" data-blogger-escaped-ift="" data-blogger-escaped-ignal="" data-blogger-escaped-ime="" data-blogger-escaped-pft.append="" data-blogger-escaped-pft="" data-blogger-escaped-plt.figure="" data-blogger-escaped-plt.grid="" data-blogger-escaped-plt.plot="" data-blogger-escaped-plt.show="" data-blogger-escaped-plt.title="" data-blogger-escaped-pre="" data-blogger-escaped-rue="" data-blogger-escaped-sample="" data-blogger-escaped-signal="" data-blogger-escaped-st="" data-blogger-escaped-wave...="">
.





No comments:

323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)