录制的默认frame_per_buffer值很糟糕(PyAudio)

时间:2019-08-09 19:22:39

标签: python alsa pyaudio portaudio

我使用的是Ubuntu 16.04 / 4.15.0-55-通用

我一直在尝试录制音频,但是文件仅占其应有大小的40%。我进行了一些挖掘,并传递frames_per_buffer = 0大大改善了这种情况。传递此参数时,它使用的值会根据捕获所有数据的需要而改变。

我通过阅读http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#a443ad16338191af364e3be988014cbbe

找到了价值
The special value paFramesPerBufferUnspecified (0) may be used to 
request that the stream callback will receive an optimal (and possibly 
varying) number of frames based on host requirements and the requested 
latency settings

使用0时,通常收到的帧数为96。使用此选项时,回调状态几乎从不报告溢出(<0.01%),而默认值为1024,则有40%的回调报告溢出。同样,在较小的尺寸下,总体上损失的音频更少。

我通过电子邮件给休伯特(Hubert),但没有得到任何回复,因此我将其张贴在这里。录制是否应使用其他默认值(0)?

0 个答案:

没有答案