scipy.io.wavfile.write#
- scipy.io.wavfile.write(filename, rate, data)[source]#
Write a NumPy array as a WAV file.
- Parameters:
- filenamestring or open file handle
Output wav file.
- rateint
The sample rate (in samples/sec).
- datandarray
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: [1]
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
[1]IBM Corporation and Microsoft Corporation, “Multimedia Programming Interface and Data Specifications 1.0”, section “Data Format of the Samples”, August 1991 http://www.tactilemedia.com/info/MCI_Control_Info.html
Examples
Create a 100Hz sine wave, sampled at 44100Hz. Write to 16-bit PCM, Mono.
>>> from scipy.io.wavfile import write >>> import numpy as np >>> samplerate = 44100; fs = 100 >>> t = np.linspace(0., 1., samplerate) >>> amplitude = np.iinfo(np.int16).max >>> data = amplitude * np.sin(2. * np.pi * fs * t) >>> write("example.wav", samplerate, data.astype(np.int16))