gpt4 book ai didi

python - Pyaudio:将输入连接到输出时出错

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:42 42 4
gpt4 key购买 nike

我正在 Intel Edison 开发板上试用 pyaudio,但内置测试失败了。单独录制和播放在我的设置下工作正常,但如果我尝试将输入连接到输出,则会出现错误。

File "wire_full.py", line 33, in data = stream.read(CHUNK) File "/usr/lib/python2.7/site-packages/pyaudio.py", line 605, in read return pa.read_stream(self._stream, num_frames) IOError: [Errno Input overflowed] -9981

有人知道问题出在哪里吗?

下面是在 pyaudio 中将输入连接到输出的示例代码:

""" 
PyAudio Example: Make a wire between input and output (i.e., record a
few samples and play them back immediately).


This is the full duplex version.
"""


import pyaudio
import sys


CHUNK = 1024
WIDTH = 2
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5


if sys.platform == 'darwin':
CHANNELS = 1


p = pyaudio.PyAudio()


stream = p.open(format=p.get_format_from_width(WIDTH),
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=CHUNK)


print("* recording")


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


print("* done")


stream.stop_stream()
stream.close()

p.terminate()

最佳答案

我通过将 CHUNK 大小更改为 512 解决了这个问题。偶尔仍然会出现相同的错误,但至少大部分时间它都能正常工作。

如果知道为什么会这样,或者我如何才能完全消除错误?

更新

好的,所以我用 try.. 包围了读/写代码,除了,还将 CHUNK 大小降低到 512,现在它可以正常工作,没有任何错误。如果我使用 1024 作为 CHUNK 大小,将会丢失很多帧并且音质很糟糕。

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):  
try:
data = stream.read(CHUNK)
stream.write(data, CHUNK)
except:
pass

感谢@Meta 提供的线索! :)

关于python - Pyaudio:将输入连接到输出时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29235666/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com