Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pydub检测音频流中的静音?_Python_Pydub - Fatal编程技术网

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

Python 如何使用pydub检测音频流中的静音?,python,pydub,Python,Pydub,我想监控音频流是否静音。你知道我该怎么做吗?这是一个流,而不是音频文件。你最好的办法是从流中抓取块(我建议50毫秒的块,因为20Hz的一个完整波形是50ms),然后使用这些数据构建音频段 完成此操作后,您将能够使用AudioSegment().dBFS属性粗略测量该块的平均响度。一旦你知道了高点和低点在哪里,你就可以设定一个阈值,低于这个阈值就被认为是沉默 当然,您也可以自动确定静音阈值,但这可能需要跟踪最后X秒内最响亮和最安静的信号电平,并且可能还需要使用某种衰减 注意:我上面描述的方法肯定不

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

你最好的办法是从流中抓取块(我建议50毫秒的块,因为20Hz的一个完整波形是50ms),然后使用这些数据构建音频段

完成此操作后,您将能够使用
AudioSegment().dBFS
属性粗略测量该块的平均响度。一旦你知道了高点和低点在哪里,你就可以设定一个阈值,低于这个阈值就被认为是沉默

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


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

希望下面的答案有帮助,如果您能更详细地描述流数据,我可以让答案更具体谢谢@Jiaaro。我有点匆忙,决定在流媒体源本身安装一个。是广播用的。有时我们在声卡中没有接收到任何信号,我们想要监控这一点。软件分析声卡中接收到的信号,如果没有信号超过X秒,它可以执行各种任务(可配置)。我将其配置为向我的监控web应用发送HTTP请求。因此,问题已经为我解决了,但从另一个端点:)还有其他解决方案吗?@Jiarro有没有你知道的pydub流媒体的方法?@Kazanz没有,对不起