3

我想监视音频流的静音。知道我该怎么做吗?这是一个流,而不是音频文件。

4

1 回答 1

5

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

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

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

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

于 2015-03-09T13:42:31.967 回答