Can't get scipy.io.wavfile.read() to work
Question: I am trying to read a .wav file into an array so that I can then plot the
array and do a FFT. I got the file open with the wave module and now I am
struggling. I was advised to use scipy.io.wavfile.read(filename, mmap=False)
but am not having any luck. This function should do exactly what I want it to
do but it isn't. I am running Python 2.7 and maybe that is it. Please help me
figure out how to make this work. The code I have written is below.

    
    
    import scipy
    import wave
    harp=wave.open('/Users/williamweiss2/Desktop/Test 2/harp.wav','r')
    frames_harp=harp.getnframes()
    harp_rate,harp_data=scipy.io.wavfile.read(harp,mmap=False)
    

## This is the error I am getting when I try to run the program.

\---> harp_rate,harp_data=scipy.io.wavfile.read(harp,mmap=False)

**AttributeError: 'module' object has no attribute 'io'**

Any help would be greatly appreciated. Thanks in advance.


Answer: You have confused [SciPy's WAV
module](http://docs.scipy.org/doc/scipy-0.14.0/reference/io.html#module-
scipy.io.wavfile) with
[Python's](https://docs.python.org/2/library/wave.html). Remove `import wave`,
use `import scipy.io.wavfile`, and call `scipy.io.wavfile.read`.

Example:

    
    
    >>> import scipy.io.wavfile
    >>> FSample, samples = scipy.io.wavfile.read('myfile.wav')
    

SciPy's module does the job of converting from a byte string to numbers for
you, unlike Python's module. See the linked docs for more details.

