【发布时间】:2016-09-26 03:48:04
【问题描述】:
我正在尝试从麦克风捕获数据。代码非常简单,但由于某种原因我收到错误alsaaudio.ALSAAudioError: Capture data too large. Try decreasing period size。用谷歌搜索了一下,什么都没有……
res = []
recoder = alsaaudio.PCM(type=alsaaudio.PCM_CAPTURE)
recoder.setchannels(1)
recoder.setrate(8000)
recoder.setperiodsize(80)
recoder.setformat(alsaaudio.PCM_FORMAT_S8)
while len(res) < 8000*5:
len, frame = recoder.read()
if len(frame) != 0:
print(len)
res.extend(frame)
最有趣的部分是减少没有帮助。但是增加会改变错误:超过 135 的周期大小给了我Input output error。
操作系统 Ubuntu 16.04。 有谁知道问题是什么?
更新
删除 recoder.setchannels(1) 可以解决问题,例如,我可以将速率/周期设置为 8000/80,它可以工作,但不能设置为 8000/10。得到同样的错误。这似乎是一个错误。
【问题讨论】:
-
尝试将利率和周期降低到非常低的水平?
-
@Torxed 7/1 用于速率/周期工作。 8/1 没有。但是..什么都没有打印出来。
-
一定要用
alsaaudio吗?你可以试试sounddevice ...
标签: python ubuntu audio alsa pyalsaaudio