J'essaie pyaudio sur carte Intel Edison, mais il échoue avec les tests intégrés. L'enregistrement et la lecture seuls fonctionnent bien avec mon réglage, mais si j'essaie de câbler l'entrée à la sortie, cela donne une erreur.Pyaudio: Erreur lors du câblage d'entrée à la sortie
File "wire_full.py", line 33, in data = stream.read(CHUNK) File "/usr/lib/python2.7/site-packages/pyaudio.py", line 605, in read return pa.read_stream(self._stream, num_frames) IOError: [Errno Input overflowed] -9981
Est-ce que quelqu'un comprend quel est le problème?
Ci-dessous le code exemple pour le câblage entrée à la sortie en pyaudio:
"""
PyAudio Example: Make a wire between input and output (i.e., record a
few samples and play them back immediately).
This is the full duplex version.
"""
import pyaudio
import sys
CHUNK = 1024
WIDTH = 2
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
if sys.platform == 'darwin':
CHANNELS = 1
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(WIDTH),
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=CHUNK)
print("* recording")
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
stream.write(data, CHUNK)
print("* done")
stream.stop_stream()
stream.close()
p.terminate()
Voir ma réponse à http://stackoverflow.com/questions/10733903/pyaudio-input-overflowed/28574532#28574532. En bref, le message de dépassement d'entrée signifie que vous ne lisez pas le flux assez rapidement, c'est-à-dire que le tampon qui contient les données audio est envahi par les nouvelles données entrantes avant que vous n'ayez le temps de le lire. Je ne pense pas que pyaudio devrait lancer une exception dans ce cas, car cela peut être acceptable. En outre, car il génère une erreur, vous perdez toutes les données pour cet appel. Voir le patch dans le lien ci-dessus pour un moyen ad-hod pour changer son comportement. – Meta