跳转到主要内容

Python中的动态范围(DR)算法实现

项目描述

动态范围(DR)计 🎧

Tests Coverage Status Docker

PyPI PyPI - Python Version PyPI - Downloads

Linter/Formatter: Ruff Code style: Black Dependency management: poetry

音频文件的动态范围(DR)分析器。

Asciicast of installing and using drmeter

该算法已使用可用的信息和官方认可的软件逆向工程,以计算DR值。drmeter的分析结果已验证,与官方认可软件产生的结果相比,绝对误差在±0.5以内(见#testing)。

本项目与Pleasurize音乐基金会及其动态范围项目没有任何关联。

安装

安装drmeter的推荐方法是pipx

pipx install drmeter

任何常规的pip install drmeter都会起作用。drmeter需要Python 3.9+才能运行。

要使用未安装的drmeter,请考虑以下dockerized方法

用法

有关使用说明,请参阅drmeter --help。drmeter期望一个要分析的文件或目录的路径,并默认使用“动画”进度显示,在过程中将结果输出到stdout。

$ drmeter 'Nobody There (Beautiful Scars).wav'
Analyzing Dynamic Range of Nobody There (Beautiful Scars).wav ...

╭──────────────────────────────────────────────────────────────────────╮
│ DR            Peak          RMS   Filename                           │
├──────────────────────────────────────────────────────────────────────┤
│ DR12      -0.10 dB    -15.02 dB   Nobody There (Beautiful Scars).wav │
╰──────────────────────────────────────────────────────────────────────╯

使用--quiet/-q标志将静音大多数输出,并只打印计算的DR分数到stdout

$ drmeter 'Nobody There (Beautiful Scars).wav' -q
DR12

或者,drmeter支持使用--output/-o json参数的更详细JSON格式输出,包括每个通道和总计的结果。使用--output参数将进度显示重定向到stderr,以便可以将格式化输出管道传输到其他应用程序或文件。如果您不需要进度显示,也可以使用--quiet/-q在这里将其静音。

# Save a copy to file
$ drmeter -ojson -q 'Nobody There (Beautiful Scars).wav' | tee dr.json
{
  "filename": "/…/Nobody There (Beautiful Scars).wav",
  "dr_score": [
    11.93,
    11.63
  ],
  "peak_db": [
      ]
}
# Parse JSON using jq
$ drmeter -ojson -q 'Nobody There (Beautiful Scars).wav' | jq '.[].overall_dr_score'
11.78

Dockerized

ghcr.io/janw/drmeter 可以找到 drmeter 的容器镜像,其中 latest 标签指向 main 分支上的最新提交。以下命令(在当前工作目录中/以下包含您要分析的文件)的行为与已安装版本非常相似,直接接受预期的参数。

docker run --rm --tty --workdir /src -v "$PWD:/src" \
    ghcr.io/janw/drmeter --output json path/to/files

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

drmeter-0.2.2.tar.gz (10.8 kB 查看哈希值)

上传时间

构建分发

drmeter-0.2.2-py3-none-any.whl (11.1 kB 查看哈希值)

上传时间 Python 3

支持者