SuperAPI AI 工具集

loudcheck

loudcheck 是一个面向音频响度合规判定的开源工具,核心不是输出原始电平表数据,而是直接给出“文件是否通过规范”的结论。它依据正式发布的标准对媒体文件进行检测,目前支持 EBU R 128(欧洲广播:−23.0 LUFS ±0.5 LU,最大 −1 dBTP)、ATSC A/85(美国电视:−24 LKFS ±2 dB,真峰值低于 −2 dBTP)以及 BS.1770(仅测量模式,因该标准本身不定义合规目标,故只返回测量值与 measured 判定,不做合规判断)。工具同时提供 CLI 和 MCP 两种调用方式,二者共用同一个基于 ffmpeg 的引擎,因此智能体与人类用户得到完全一致的判定结果,需要 Python 3.10+ 与 ffmpeg 5.0+(已验证 8.1)。典型输出包括整体结论、逐项指标的实测值/目标值/容差/偏差/是否通过、规范引用、通俗失败说明以及精确的修复建议(例如超出目标 2.3 LU 时提示施加 −2.3 LU 增益并给出 ffmpeg 命令)。退出码即结论:0 通过、1 不合规、2 出错,可仅凭退出码对交付流程进行卡点。该工具只做测量与判定,不自动应用修复,也不覆盖响度修正、整文件 QC、实时监听、图形界面或各平台交付模板。

访问官网

工具介绍

用途

loudcheck 解决的是音频交付中最常见的一类拒收原因:响度不合规。它不止于用 ffmpeg 测量出数字,而是把数字放到正式发布的标准目标、容差与门限上进行解释,直接回答“这个文件能否通过规范”这一关键问题。

主要能力

  • 按标准给出合规判定,而非原始电平表输出。
  • 支持标准:EBU R 128(−23.0 LUFS ±0.5 LU,最大 −1 dBTP)、ATSC A/85(−24 LKFS ±2 dB,真峰值低于 −2 dBTP)、BS.1770(仅测量模式,该标准不定义合规目标,因此返回 measured 判定与数值,不做合规裁决)。
  • JSON 输出即完整契约:包含整体结论;每个受门限约束的指标附有实测值、目标值、容差、偏差与是否通过,并附带规范引用;失败原因用通俗英文说明;修复建议给出精确修正量,例如“超出目标 2.3 LU”会提示施加 −2.3 LU 增益,并附上对应的 ffmpeg 命令。
  • 同一引擎同时提供 CLI 与 MCP,智能体与人类用户获得一致判定。
  • 批量模式每个文件输出一行(失败项附修复建议)并给出汇总;批量下使用 --json 输出数组;任一文件失败时退出码为 1。
  • 退出码承载判定:0 通过、1 不合规、2 错误(文件缺失、无音频流、无 ffmpeg)。可仅依据退出码对交付流程进行卡点。
  • 仓库根目录的 tool.json 以机器可读方式描述接口,也可用 loudcheck --schema 从任意安装中实时获取。
  • 每个判定都包含 measurement_context.ffmpeg_version;最低支持 ffmpeg 5.0,开发与验证基于 8.1。

使用方式

环境要求:Python 3.10+,且 ffmpeg 5.0+ 位于 PATH 中。

从克隆安装:pip install -e ".[mcp,dev]"。

MCP 注册:loudcheck-mcp(stdio 方式),或 loudcheck --mcp,或 python -m loudcheck.mcp_server。零安装方式:uvx --from 'loudcheck[mcp]' loudcheck --mcp。MCP 工具包括 check_loudness(path, standard)(返回与 CLI 相同的 JSON)和 list_standards()(返回带规范引用的标准目录)。已针对 mcp==1.28.1 验证。

智能体入口:SKILL.md 说明何时调用、完整示例与 MUST/MUST NOT 规则;家族契约见 FAMILY.md。

测量原理

使用一次 ffmpeg 处理,调用 loudnorm=print_format=json(分析模式),得到整体响度、响度范围、真峰值(按 BS.1770 过采样 dBTP)以及门限阈值。测试套件会将 loudnorm 的读数与 ffmpeg 独立的 ebur128 实现交叉核对,二者须在 1 LU 内一致才能通过 CI,因此 ffmpeg 版本改变滤波器行为时会被测试套件捕获,而不是由用户发现。

验证方式

pytest 在运行时生成校准测试音(仓库中不含二进制文件):依据 BS.1770 的校准说明,0 dBFS 的单声道 997 Hz 正弦波读数为 −3.01 LKFS,因此测试音以精确已知响度生成——合规、过响、过轻以及真峰值超标——每个判定都必须与其已知预期一致。

适用场景

需要在交付或发布前对音频响度做合规卡点的流程,尤其适合智能体自动化调用:可以仅凭退出码判定是否放行,或在 JSON 结果中读取偏差与修复命令。也可用于人工核查单个或批量媒体文件是否符合 EBU R 128、ATSC A/85 等正式标准。

限制与边界

  • 只做测量与判定,不应用修复;修复需由调用方使用工具给出的偏差值配合 ffmpeg loudnorm 自行完成。
  • 不覆盖响度修正、整文件 QC(编解码、色彩、节奏)、实时监听、图形界面。
  • 不包含平台交付模板(Netflix、DPP、Apple TV+、Amazon、广播机构规范等);仓库只收录正式且稳定的标准,平台规范变化不由本工具维护。
  • BS.1770 模式不设合规目标,因此只返回 measured 判定与数值,不做通过/不通过判断。
  • 需要外部依赖 ffmpeg 与 Python 环境;最低 ffmpeg 5.0。

扩展

欢迎补充其他正式标准:标准在 loudcheck/standards.py 中为纯数据,包含目标、容差与引用,无需改动代码。