Time for action – replaying audio clips

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:

  1. Read the file with the 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.

  2. Apply the tile function.
    repeated = np.tile(data, int(sys.argv[1]))
  3. Write a new file with the 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:

    Time for action – replaying audio clips

What just happened?

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 ()
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.40.207