Xin lỗi cho câu hỏi newbie, nhưng tôi đang cố gắng để chạy đoạn mã sau (một ví dụ từ các tài liệu PyAudio) trên máy Mac của tôi (OS 10.7.2):geting IOError: [Errno Input tràn] -9981 khi thiết PyAudio Suối đầu vào và đầu ra là 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()
các lỗi mà tôi đưa ra là:
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
tôi đã làm một tìm kiếm lỗi này trên Google và phát hiện ra rằng một trong hai làm cho đoạn lớn hơn hoặc nhỏ hơn có thể giúp . Tôi đã thử điều này và nó không có sự khác biệt. Tôi cũng đã thử thêm mã sau để bắt ngoại lệ quá tải:
try:
data = stream.read(chunk)
except IOError as ex:
if ex[1] != pyaudio.paInputOverflowed:
raise
data = '\x00' * chunk
Điều đó tránh được lỗi, nhưng thay vì xuất âm thanh đầu vào, tôi nghe thấy một tiếng nhấp lớn.
Để khắc phục sự cố, tôi nhận xét ra đầu ra = True dòng và chương trình chạy tốt, nhưng không bất cứ điều gì đầu ra. Tôi nhận xét ra đầu vào = True và đọc trong một tập tin Wave thay vào đó và dòng đã có thể sản lượng âm thanh. Tôi đã thử tạo 2 luồng, một cho đầu vào và một cho đầu ra, và điều đó không hoạt động.
Có điều gì khác mà tôi có thể làm để tránh lỗi này không?
Xin cảm ơn trước.
Xem http://stackoverflow.com/questions/33837097/pyaudio-recorder-script-ioerror-errno-input-overflowed-9981/34021599#34021599 – am70