python - PyAudio Input Overflowed -9981 - 没有有效的解决方案

标签 python audio pyaudio

请不要将此问题报告为重复问题,因为没有任何可用的解决方案对我有用,我都测试了它们

所以, 我正在尝试在我的 RaspberryPi 型号 B 板上运行 PyAudio 示例录音程序, 这是我得到的错误,

Traceback (most recent call last):
  File "/home/pi/pyaudio/test/testing.py", line 23, in <module>
    data = stream.read(chunk)
  File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 605, in read
    return pa.read_stream(self._stream, num_frames)
IOError: [Errno Input overflowed] -9981

已经有某些可用的解决方案解决了许多用户的问题,但就我而言,情况并非如此。

这是我试过的,

首先,这是代码,

"""PyAudio example: Record a few seconds of audio and save to a WAVE file."""

import pyaudio
import wave

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

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
   data = stream.read(CHUNK)
   frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

目前的配置是否支持我也试过了,

import pyaudio
p = pyaudio.PyAudio()
if p.is_format_supported(48000.0, 
    input_device=1,
    input_channels=1,
    input_format=pyaudio.paInt16):
    print 'True!'

44,000 和 44,100 都支持,但我仍然一次又一次地遇到同样的错误。

这是我的 USB 声卡设备信息,

p.get_device_info_by_index(1)

{'defaultSampleRate': 44100.0, 
'defaultLowOutputLatency': 0.011609977324263039, 
'defaultLowInputLatency': 0.011609977324263039, 
'maxInputChannels': 1L, 
'structVersion': 2L, 
'hostApi': 0L, 
'index': 1, 
'defaultHighOutputLatency': 0.046439909297052155, 
'maxOutputChannels': 2L, 
'name': u'Generic USB Audio Device: USB Audio (hw:1,0)', 
'defaultHighInputLatency': 0.046439909297052155}

有人知道为什么我仍然收到错误吗?

最佳答案

将您的 block 参数更改为 8192 而不是 1024。对我有用。 引用:IOError: [Errno Input overflowed] -9981

关于python - PyAudio Input Overflowed -9981 - 没有有效的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081181/

相关文章:

python - 如何使用 selenium 网络驱动程序获取文本区域内容

ios - 提取MPMoviePlayerViewController音频以在后台继续收听

Javascript 方法 pause() 仅适用于音频元素

python - PyAudio IOError : [Errno Invalid input device (no default output device)] -9996

osx-lion - 无法在 osx lion 上安装 pyaudio

python - Django Jenkins 在处理到 Selenium 服务器时引发 WebDriverException

Python subprocess.Popen 文件中的 stdin,将内容更改为流

Python:如何为单元测试模拟kafka主题?

ruby - 是否可以直接从Ruby编写音频文件?

Python PyAudio + 麦克风输入 - 特定频率滤波器?