【发布时间】:2019-06-09 19:19:57
【问题描述】:
我想连续录制和音频。这很容易使用 python 的 sounddevice 模块完成。但是,当音频超过 20 帧时,我还想开始将块发送到在后台工作的线程。执行此操作时声音设备的输入溢出,您能帮我解决这个问题,还是找到其他解决方案?
def callbackAmbient(indata, frames, time, status):
if (status):
print(status)
VadFrames.append(indata)
if (len(VadFrames) > 19):
Process(target = start_vad, args = (numpy.array(numpy.multiply(VadFrames, 0.5)), numpy.array(VadFrames), RATE, RATE)).start()
VadFrames.pop(0)
print("System Recording...")
try:
with sd.InputStream(samplerate=192000, blocksize=6144, channels=1, device=sd.query_devices(kind='input')['name'], callback=callbackAmbient):
while True:
pass
except KeyboardInterrupt:
print("System stopped...")
sys.exit()
【问题讨论】:
标签: python audio stream multiprocessing python-sounddevice