我想监听音频流以保持沉默。知道我怎么能这样做吗?它是一个流,而不是一个音频文件。
答案 0 :(得分:4)
你最好的选择是从流中获取块(我建议50毫秒块,因为20Hz的完整波形是50ms),并使用这些数据构建一个AudioSegment。
完成后,您将能够使用AudioSegment().dBFS
属性粗略衡量该块的平均响度。一旦你了解了高点和低点的位置,你就可以设置一个低于阈值的门槛。
您当然可以自动确定静音阈值,但这可能需要跟踪最后X秒内最响亮和最安静的信号电平,并且可能还会使用某种衰减。
注意:我上面描述的方法绝对不是最快的方法,但是pydub本身并不处理流媒体。也就是说,这可能是最简单的方式来实现pydub的目标。