Voici ce que j'ai. La variable de durée est définie pour jouer la tonalité pendant 4 secondes, mais lorsque le code est exécuté, il ne joue que pendant environ 1,5 seconde. J'ai frappé un mur avec celui-ci; toute aide serait grandement appréciée.Travail sur un programme générateur de sons. La variable 'durée' (en secondes) ne détermine pas correctement la durée de la tonalité pour
import pyaudio
import numpy as np
p = pyaudio.PyAudio()
volume = 0.5 # range [0.0, 1.0]
fs = 44100 # sampling rate, Hz, must be integer
duration = 4.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)
# for paFloat32 sample values must be in range [-1.0, 1.0]
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=fs,
output=True)
# play. May repeat with different volume values (if done interactively)
stream.write(volume*samples)
stream.stop_stream()
stream.close()
p.terminate()
btw, vous devriez essayer d'éviter toutes les copies lors de l'initialisation de 'samples'. Notez également qu'un seul appel à 'stream.write' n'est pas interruptible. – o11c