【发布时间】:2018-04-13 13:18:28
【问题描述】:
我有一个接收二进制原始音频数据块的 python 脚本,我想将这些块的采样率更改为 16000,然后将它们通过管道传输到另一个组件。
我尝试了audiotools 的运气,但没有成功:
# f is a filelike FIFO buffer
reader = PCMFileReader(f, 44100, 1, 1, 16)
conv = PCMConverter(reader, 16000, 1, 1, 16)
然后我随时写入缓冲区,我得到一个新的块:
f.write(msg)
并在另一个线程中从缓冲区中读取:
while not reader.file.closed:
fl = conf.read(10)
chunk = fl.to_bytes(False, True)
问题是我得到这个值错误,它似乎来自“samplerate.c”库:
ValueError: SRC_DATA->data_out is NULL
此错误仅在重新采样时发生。如果我关闭该步骤,那么一切正常,并且可以播放音频。
因此我的问题是:什么是完成这项任务的好工具?如果 audiotools 被证明是正确的答案,我该如何正确地做到这一点。
【问题讨论】:
-
这对 Stack Overflow 来说不是一个好问题,但你试过 ffmpeg 吗?
标签: python audio resampling