%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
conda install pyaudio
import pyaudio
p = pyaudio.PyAudio()
volume = 0.5 # range [0.0, 1.0]
fs = 44100 # sampling rate, Hz, must be integer
duration = 1.0 # in seconds, may be float
f = 440.0 # sine frequency, Hz, may be float
# generate samples, note conversion to float32 array
samples = (np.sin(2*np.pi*np.arange(fs*duration)*f/fs)).astype(np.float32).tobytes()
# for paFloat32 sample values must be in range [-1.0, 1.0]
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=fs,
output=True)
stream.write(samples)
stream.stop_stream()
stream.close()
p.terminate()
len(np.sin(2*np.pi*np.arange(fs*duration)*f/fs))
44100
t = np.linspace(0, 1, fs)
y = np.sin(2*np.pi*f*t).astype(np.float32)
plt.plot(t, y)
plt.xlim(0, 0.01)
(0, 0.01)
samples = y.tobytes()
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=fs,
output=True)
stream.write(samples)
stream.stop_stream()
stream.close()
p.terminate()