Der PyAudio-Eingang ist übergelaufen

Ich versuche, mich in Echtzeit Plotten sound in python. Ich brauche, um die Stücke von meinem Mikrofon.

Mit PyAudio, versuchen,

import pyaudio
import wave
import sys

chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format = FORMAT,
                channels = CHANNELS,
                rate = RATE,
                input = True,
                frames_per_buffer = chunk)

print "* recording"
all = []
for i in range(0, RATE / chunk * RECORD_SECONDS):
    data = stream.read(chunk)
    all.append(data)
print "* done recording"

stream.close()
p.terminate()

Nachdem ich immer die folgende Fehlermeldung:

* recording
Traceback (most recent call last):
  File "gg.py", line 23, in <module>
    data = stream.read(chunk)
  File "/usr/lib64/python2.7/site-packages/pyaudio.py", line 564, in read
    return pa.read_stream(self._stream, num_frames)
IOError: [Errno Input overflowed] -9981

Ich kann nicht verstehen, diesen Puffer. Ich will, zu verwenden blocking IO-Modus, also wenn die chunks nicht verfügbar ist, will ich warten, für diese Stücke. Aber wenn ich das erstellen versuchen außer segment-oder sleep(0.1) habe ich knackser zu hören, also das ist nicht das, was ich will.

Schlagen Sie bitte die beste Lösung für mein ploblem?

InformationsquelleAutor der Frage libbkmz | 2012-05-24

Schreibe einen Kommentar