简单的实时声音计。
soundmeter的Python项目详细描述
声波计是一种实时获取声功率的命令行工具。它基本上将音频录制功能转变为带有音频输入设备(如麦克风)的机器的声音计。它现在显示root-mean-square (RMS) of sound fragments,这是一个音频信号功率的度量。实际值也取决于声音输入的系统设置。
功能
- 支持事件触发的命令行仪表
- 用于后端模块编程的监视API
依赖关系
系统包
在debian/ubuntu上:
$ sudo apt-get install portaudio19-dev python-dev alsa-utils
在Fedora/RHEL上:
$ sudo yum install portaudio-devel python-devel alsa-utils
在OS X上:
$ brew install portaudio
PYPI包
- argparse
- pyaudio
- 皮杜布
- python后台程序
安装
您可以使用以下命令安装带有pip的软件包,以允许外部托管的软件包:
$ pip install soundmeter --allow-all-external --allow-unverified pyaudio
或者,您可以下载源发行版并使用以下命令进行安装:
$ python setup.py install
用法
最简单的用法是从命令行运行“soundmeter”,无需任何选项:
$ soundmeter
收集10秒的rms值,以便了解当前环境中的音量:
$ soundmeter --collect --seconds 10 Collecting RMS values... 154 Timeout Collected result: min: 152 max: 211 avg: 156
您可以设置声波计的触发和动作。
如果rms连续3次大于211,则停止声音计:
$ soundmeter --trigger +211 3 --action stop
如果rms大于211,则执行trigger.sh:
$ soundmeter --trigger +211 --action exec --exec trigger.sh
如果rms连续3次小于152,则执行trigger.sh并停止声波计:
$ soundmeter --trigger -152 3 --action exec-stop --exec trigger.sh
在后台运行带有触发器和操作的声音计:
$ soundmeter --trigger +211 3 --action exec --exec trigger.sh --daemonize
运行声音计2分钟并登录到meter.log:
$ soundmeter --seconds 120 --log meter.log
命令行选项
“soundmeter”命令接受以下选项:
-p PROFILE, --profile PROFILE config profile (section name) -c, --collect collect RMS values to determine thresholds -s SECS, --seconds SECS time in seconds to run the meter (default forever) -a ACTION_TYPE, --action ACTION_TYPE triggered action (^{tt4}$, ^{tt5}$ and ^{tt6}$) -t THRESHOLD, --trigger THRESHOLD trigger condition (threshold RMS and an optional number of consecutive triggering times, which defaults 1) -e FILE, --execute FILE shell script to execute upon trigger (defaults to ^{tt7}$), can be configured to pass the “last triggering” RMS value as argument by setting ^{tt8}$ to ^{tt9}$ in ~/.soundmeter/config -d, --daemonize run the meter in the background --log LOGFILE log the meter (defaults to ^{tt10}$) -v, --verbose verbose mode --segment SECONDS audio segment length recorded in seconds (defaults to 0.5); when specified, it overrides ^{tt11}$ in ~/.soundmeter/config
配置
一些“dependency required”参数可以在~/.soundmeter/config中配置。默认配置为:
[soundmeter] frames_per_buffer = 2048 format = 8 channels = 2 rate = 44100 audio_segment_length = 0.5 rms_as_trigger_arg = False
在配置文件中可以有多个部分,并指定要与--profile命令行选项一起使用的部分。默认配置文件名是soundmeter。例如:
[soundmeter] frames_per_buffer = 2048 format = 8 channels = 2 [test] frames_per_buffer = 1024 format = 8 channels = 1
使用test配置文件:
$ soundmeter --profile test ...
还有一个input_device_index参数,它指定要使用的输入设备的索引。如果未指定,则使用默认输入设备。