Вход PyAudio переполнен

Я пытаюсь сделать звук в реальном времени на питоне. Мне нужно получить куски от моего микрофона.

Используя PyAudio, попробуйте использовать

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()

После этого я получаю следующую ошибку:

* 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

Я не могу понять этот буфер. Я хочу использовать блокирующий режим ввода-вывода, поэтому, если фрагменты недоступны, я хочу дождаться этих фрагментов. Но когда я создаю попытку, кроме сегмента или сна (0.1), я слышу щелчки, так что это не то, что мне нужно.

Пожалуйста, предложите лучшее решение моей проблемы?

30
задан libbkmz 24 May 2012 в 08:36
поделиться