SciPy

scipy.io.wavfile.write

scipy.io.wavfile.write(filename, rate, data)[source]

Write a numpy array as a WAV file.

Parameters:

filename : string or open file handle

Output wav file.

rate : int

The sample rate (in samples/sec).

data : ndarray

A 1-D or 2-D numpy array of either integer or float data-type.

Notes

  • Writes a simple uncompressed WAV file.
  • To write multiple-channels, use a 2-D array of shape (Nsamples, Nchannels).
  • The bits-per-sample and PCM/float will be determined by the data-type.

Common data types: [R89]

WAV format Min Max NumPy dtype
32-bit floating-point -1.0 +1.0 float32
32-bit PCM -2147483648 +2147483647 int32
16-bit PCM -32768 +32767 int16
8-bit PCM 0 255 uint8

Note that 8-bit PCM is unsigned.

References

[R89](1, 2) IBM Corporation and Microsoft Corporation, “Multimedia Programming Interface and Data Specifications 1.0”, section “Data Format of the Samples”, August 1991 http://www-mmsp.ece.mcgill.ca/documents/audioformats/wave/Docs/riffmci.pdf