音声のラウドネス(LUFS)チェックと音量そろえ
Audio loudness (LUFS) check and normalization
ffmpeg で音声・動画ファイルのラウドネス(LUFS)、トゥルーピーク、長さを測り、YouTube(-14)やポッドキャスト(-16)などの目安と比べます。必要なら音量をそろえたコピーも作れます。
できること
音声や動画の音量が配信先の目安に合っているかを数値で確認します。
- 統合ラウドネス(LUFS)、トゥルーピーク(dBTP)、ラウドネスレンジ(LRA)、長さを測定
- 目安との比較:YouTube・Spotify(-14 LUFS)、Apple Music・ポッドキャスト(-16 LUFS)、モノラルのポッドキャスト(-19)、放送規格(EBU R128 -23、ATSC A/85 -24、ARIB TR-B32 -24)、または任意の数値
- 「大きすぎ」「小さすぎ」「ピーク超過」「測定不能(無音など)」の判定と、目標までに必要な音量差を表示
- フォルダ単位の一括チェック、動画ファイルの音声トラックにも対応、JSON レポート出力
- 依頼があれば ffmpeg の2パス loudnorm で音量をそろえたコピーを別フォルダに作成し、書き出し後に再測定(動画は映像を再エンコードせずコピー)
使い方
python scripts/loudness.py targets
python scripts/loudness.py check episode.wav music/ --target podcast --report loudness.json
python scripts/loudness.py normalize episode.wav --target podcast --out normalized/
エージェントに「この音声は YouTube 向けの音量になってる?」と聞くと、測定結果をわかりやすく説明し、必要なら音量をそろえたファイルを作ります。
必要な環境
- Python 3
- ffmpeg(ffprobe を含む)。見つからない場合はインストール方法を表示して止まります。
注意点
- 各サービスの基準は変わることがあります。重要な納品では最新の公式仕様も確認してください。
- 目標の音量にするとピークが上限を超える場合、ffmpeg は自動でダイナミクスを圧縮します(結果に「dynamic」と表示)。
- MP3/AAC への再エンコードではわずかに音質が落ちます。元ファイルは変更・上書きしません。
English description
Measure integrated loudness (LUFS), true peak and duration with ffmpeg, compare with targets such as YouTube (-14) or podcasts (-16), and optionally write normalized copies.
What it does
Checks with real numbers whether the loudness of audio or video files fits the destination.
- Measures integrated loudness (LUFS), true peak (dBTP), loudness range (LRA) and duration
- Compares with targets: YouTube and Spotify (-14 LUFS), Apple Music and podcasts (-16 LUFS), mono podcasts (-19), broadcast (EBU R128 -23, ATSC A/85 -24, ARIB TR-B32 -24), or any number you give
- Verdicts: too loud, too quiet, peak over the ceiling, or unmeasurable (silence), plus the gain needed to reach the target
- Checks whole folders, reads the audio track of video files, writes a JSON report
- On request, writes normalized copies into a separate folder with ffmpeg's two-pass loudnorm and re-measures them (video streams are copied, not re-encoded)
How to use
python scripts/loudness.py targets
python scripts/loudness.py check episode.wav music/ --target podcast --report loudness.json
python scripts/loudness.py normalize episode.wav --target podcast --out normalized/
Ask your agent whether a file is loud enough for YouTube. It explains the measurements in plain words and, if you want, creates a normalized copy.
Requirements
- Python 3
- ffmpeg (with ffprobe). If it is not found, the script stops and shows how to install it.
Caveats
- Platform targets can change; check the current official spec for important deliveries.
- If reaching the target level would push peaks over the ceiling, ffmpeg compresses the dynamics automatically (shown as "dynamic" in the result).
- Re-encoding to MP3/AAC loses a little quality. Source files are never modified or overwritten.
インストール方法
- ダウンロードしたZIPを展開します(中に
audio-loudness-check/フォルダとSKILL.mdがあります)。 - フォルダごと、使うエージェントのスキル置き場にコピーします。
- Claude:
~/.claude/skills/(プロジェクト単位なら.claude/skills/) - Hermes Agent:
~/.hermes/skills/ - Codex:
~/.agents/skills//Cursor:~/.cursor/skills/ - Claude アプリ(claude.ai):「カスタマイズ → スキル」からZIPをアップロード
- Claude:
- エージェントを再起動し、スキル一覧に表示されることを確認します。
出品者
出品スキル 44 件