Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 我想在通过变量播放视频时检测扬声器的音量_Python_Python 3.x_Audio - Fatal编程技术网

Python 我想在通过变量播放视频时检测扬声器的音量

Python 我想在通过变量播放视频时检测扬声器的音量,python,python-3.x,audio,Python,Python 3.x,Audio,因此,我最近一直在尝试学习Python,我真正想知道的一件事是,如何将扬声器作为输入设备,并反过来输出一个显示音量的数字。 例如: 如果没有视频播放,则为0。 如果是播客,30-50分。 如果是烟火表演,70-90。 如果只是一个频率,则为100 感谢所有能够提供帮助的人:)我认为您正在寻找的是声音回送,即录制声音设备的输出 如果您在Windows上,则会有一个分支PyAudio来执行此操作: 正如项目主页上的示例所示,它非常简单: import pyaudio p = pyaudio.PyAu

因此,我最近一直在尝试学习Python,我真正想知道的一件事是,如何将扬声器作为输入设备,并反过来输出一个显示音量的数字。 例如:

如果没有视频播放,则为0。 如果是播客,30-50分。 如果是烟火表演,70-90。 如果只是一个频率,则为100


感谢所有能够提供帮助的人:)

我认为您正在寻找的是声音回送,即录制声音设备的输出

如果您在Windows上,则会有一个分支
PyAudio
来执行此操作:

正如项目主页上的示例所示,它非常简单:

import pyaudio
p = pyaudio.PyAudio()
stream = p.open([...], as_loopback = True)

然后,您只需计算音频流的振幅。

这有一些关于如何获取音频的替代方法的提示:。在Windows、Linux或Mac上,只使用操作系统的本机api可能是最健壮的。。或者iOS或Android?那么“流”将是声音的值?确切地说,
stream
将根据给
open()
的参数包含实际的声音样本,例如16位整数或浮点数。那么我可以直接做什么:在while循环中打印(流),它将打印音量?不,
流包含原始数据,音频样本。可以用不同的方法从样品中计算体积。峰值只是一个区间的最大绝对值。由于音频可能包含虚假的高振幅峰值,这不是一个很好的总体间隔测量值,因此计算(一种平均值)通常更有用。很抱歉,回复太迟,我刚刚成功安装了Pyaudio,您能否提供一个公式,我可以将其分配给等于音量的变量。wikipedia页面并不是我能得到的最有用的东西,所以我能有一个变量,根据音量输出0-100的数字吗?