Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Generate a .wav sound file from a NumPy array.
import numpy as np
from scipy.io.wavfile import write
# Samples per second
sps = 44100
# Frequency / pitch of the sine wave
freq_hz = 440.0
# Duration
duration_s = 5.0
# NumpPy magic
each_sample_number = np.arange(duration_s * sps)
waveform = np.sin(2 * np.pi * each_sample_number * freq_hz / sps)
waveform_quiet = waveform * 0.3
waveform_integers = np.int16(waveform_quiet * 32767)
# Write the .wav file
write('first_sine_wave.wav', sps, waveform_integers)
@Dancheg97

This comment has been minimized.

Copy link

@Dancheg97 Dancheg97 commented Dec 9, 2019

can you tell if that is possible to get a 2d numpy array from wav file?

@Dancheg97

This comment has been minimized.

Copy link

@Dancheg97 Dancheg97 commented Dec 9, 2019

just trying to do that for so long

@akey7

This comment has been minimized.

Copy link
Owner Author

@akey7 akey7 commented Dec 9, 2019

@dancheng97 2D NumPy array: What are you trying to do with it? Read each stereo channel separately?

@Dancheg97

This comment has been minimized.

Copy link

@Dancheg97 Dancheg97 commented Dec 10, 2019

Single channel would be enough for me

@Prasunsk

This comment has been minimized.

Copy link

@Prasunsk Prasunsk commented Oct 19, 2020

try soundfile.read('link/to/wav/file.wav')
It will return a numpy array and sample_rate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment