We will download a WAV file of Austin Powers exclaiming “Smashing, baby!”. This file can be converted to a NumPy array with the read
function from the scipy.io.wavfile
module. The write
function from the same package will be used to create a new WAV file at the end of this tutorial. We will further use the tile
function to replay the audio clip several times. Perform the following steps to do so:
read
function.sample_rate, data = wavfile.read(WAV_FILE)
This gives us two items – sample rate and audio data. For this tutorial we are only interested in the audio data.
tile
function.repeated = np.tile(data, int(sys.argv[1]))
write
function.wavfile.write(“repeated_yababy.wav”, sample_rate, repeated)
The original audio data and the audio clip repeated four times are shown in the following plot:
We read an audio clip, repeated it four times and then created a new WAV file with the new array (see repeat_audio.py
).
from scipy.io import wavfile import matplotlib.pyplot as plt import urllib2 import numpy as np import sys response = urllib2.urlopen(‘http://www.thesoundarchive.com/austinpowers/smashingbaby.wav’) print response.info() WAV_FILE = ‘smashingbaby.wav’ filehandle = open(WAV_FILE, ‘w’) filehandle.write(response.read()) filehandle.close() sample_rate, data = wavfile.read(WAV_FILE) print “Data type”, data.dtype, “Shape”, data.shape plt.subplot(2, 1, 1) plt.title(“Original”) plt.plot(data) plt.subplot(2, 1, 2) # Repeat the audio fragment repeated = np.tile(data, int(sys.argv[1])) # Plot the audio data plt.title(“Repeated”) plt.plot(repeated) wavfile.write(“repeated_yababy.wav”, sample_rate, repeated) plt.show ()
18.188.40.207