如何使用pydub检测音频流中的静音?

时间:2015-03-09 08:59:02

标签: python pydub

我想监听音频流以保持沉默。知道我怎么能这样做吗?它是一个流,而不是一个音频文件。

1 个答案:

答案 0 :(得分:4)

你最好的选择是从流中获取块(我建议50毫秒块,因为20Hz的完整波形是50ms),并使用这些数据构建一个AudioSegment。

完成后,您将能够使用AudioSegment().dBFS属性粗略衡量该块的平均响度。一旦你了解了高点和低点的位置,你就可以设置一个低于阈值的门槛。

您当然可以自动确定静音阈值,但这可能需要跟踪最后X秒内最响亮和最安静的信号电平,并且可能还会使用某种衰减。

注意:我上面描述的方法绝对不是最快的方法,但是pydub本身并不处理流媒体。也就是说,这可能是最简单的方式来实现pydub的目标。