Ci scusiamo per la domanda newbie, ma sto cercando di eseguire il seguente codice (un esempio della documentazione PyAudio) sul mio Mac (OS 10.7.2):Get IOError: [Errno Input overflow] -9981 quando si imposta PyAudio Stream input e output su True
import pyaudio
import sys
chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
output = True,
frames_per_buffer = chunk)
print "* recording"
for i in range(0, 44100/chunk * RECORD_SECONDS):
data = stream.read(chunk)
stream.write(data, chunk)
print "* done"
stream.stop_stream()
stream.close()
p.terminate()
l'errore che sto dando è:
Traceback (most recent call last):
File "PyAudioExample.py", line 24, in <module>
data = stream.read(chunk)
File "/Library/Python/2.7/site-packages/pyaudio.py", line 564, in read
return pa.read_stream(self._stream, num_frames)
IOError: [Errno Input overflowed] -9981
ho fatto una ricerca per questo errore su Google e ho trovato che sia rendendo il pezzo più grande o più piccolo potrebbe aiutare . Ho provato questo e non ha fatto differenza. Ho anche provato ad aggiungere nel seguente codice per intercettare un'eccezione di sovraccarico:
try:
data = stream.read(chunk)
except IOError as ex:
if ex[1] != pyaudio.paInputOverflowed:
raise
data = '\x00' * chunk
che evitava l'errore, ma invece di emettere il mio audio in ingresso, ho sentito un sacco di forte clic.
Per risolvere il problema, ho commentato l'output = True line e il programma è andato bene, ma non ha prodotto nulla. Ho commentato l'input = True e ho letto invece un file Wave e lo stream è stato in grado di emettere l'audio. Ho provato a creare 2 flussi, uno per l'input e uno per l'output, e anche questo non ha funzionato.
C'è qualcos'altro che posso fare per evitare questo errore?
Grazie in anticipo.
Vedi http://stackoverflow.com/questions/33837097/pyaudio-recorder-script-ioerror-errno-input-overflowed-9981/34021599#34021599 – am70