mcpField
A
audio-normalizer

audio-normalizer

github.com/dkyazzentwatwaクリエイティブ・メディア12459 回インストール29 週間前に更新
リポジトリ

audio-normalizer について

audio-normalizerは、単一または複数の音声ファイルの音量を調整するPythonツールです。ピーク・RMS正規化、LUFSの目標値への調整、ヘッドルーム制御に対応し、ポッドキャストや音楽、音声の処理に使えます。

主な機能

  1. 01ピーク・RMS正規化
  2. 02LUFS目標値への調整
  3. 03ファイルの一括処理
  4. 04元のフォーマットの維持
  5. 05ヘッドルームの設定

活用シーン

  1. 01ポッドキャスト各回の音量統一
  2. 02音楽プレイリストのラウドネス調整
  3. 03音声録音のレベル標準化
  4. 04動画のミキシング前の音声調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill audio-normalizer

インストール後、Claude Code で/audio-normalizerを入力して読み込まれたか確認します。

同梱ファイルscripts/audio_normalizer.pyscripts/requirements.txt

詳細

オーディオノーマライザー

ピーク正規化または RMS 正規化を使用して音量レベルを正規化し、ファイル間で音量を一定にします。

目的

以下のための音量正規化:

  • ポッドキャストのエピソード間の音量を統一
  • 音楽プレイリストの音量を均一化
  • 音声録音の音量を標準化
  • 放送ラウドネス基準への準拠

機能

  • ピーク正規化:最大ピークレベル(dBFS)に正規化します
  • RMS 正規化:平均ラウドネスレベルに正規化します
  • ラウドネスマッチング:放送基準への準拠に向けて、目標 LUFS に合わせます
  • バッチ処理:複数のファイルを同じレベルに正規化します
  • フォーマットの維持:元のオーディオフォーマットを維持します
  • ヘッドルーム制御:設定可能なヘッドルームでクリッピングを防ぎます

クイックスタート

from audio_normalizer import AudioNormalizer

# Peak normalization to -1 dBFS
normalizer = AudioNormalizer()
normalizer.load('input.mp3')
normalizer.normalize_peak(target_dbfs=-1.0)
normalizer.save('normalized.mp3')

# RMS normalization for consistent average loudness
normalizer.normalize_rms(target_dbfs=-20.0)
normalizer.save('normalized_rms.mp3')

# Batch normalize all files to same level
normalizer.batch_normalize(
    input_files=['audio1.mp3', 'audio2.mp3'],
    output_dir='normalized/',
    method='rms',
    target_dbfs=-20.0
)

CLI の使用方法

# Peak normalization
python audio_normalizer.py input.mp3 --output normalized.mp3 --method peak --target -1.0

# RMS normalization
python audio_normalizer.py input.mp3 --output normalized.mp3 --method rms --target -20.0

# Batch normalize directory
python audio_normalizer.py *.mp3 --output-dir normalized/ --method rms --target -20.0

# Show current levels without normalizing
python audio_normalizer.py input.mp3 --analyze-only

API リファレンス

AudioNormalizer
class AudioNormalizer:
    def load(self, filepath: str) -> 'AudioNormalizer'
    def normalize_peak(self, target_dbfs: float = -1.0, headroom: float = 0.1) -> 'AudioNormalizer'
    def normalize_rms(self, target_dbfs: float = -20.0) -> 'AudioNormalizer'
    def analyze_levels(self) -> Dict[str, float]
    def save(self, output: str, format: str = None, bitrate: str = '192k') -> str
    def batch_normalize(self, input_files: List[str], output_dir: str,
                       method: str = 'rms', target_dbfs: float = -20.0) -> List[str]

正規化方式

ピーク正規化
  • オーディオの最大ピークが目標レベルに達するようにスケーリングします
  • ダイナミックレンジを維持します
  • クリッピングの防止に適しています
  • 目標値:通常 -1.0 ~ -3.0 dBFS
RMS 正規化
  • 平均レベルが目標値に達するようにオーディオをスケーリングします
  • 知覚されるラウドネスを合わせるのに適しています
  • ポッドキャストや音声に適しています
  • 目標値:通常 -20.0 ~ -23.0 dBFS
LUFS マッチング
  • フルスケールに対する統合ラウドネス単位
  • 放送規格(EBU R128、ITU BS.1770)
  • 目標値:-23 LUFS(放送)、-16 LUFS(ストリーミング)

ベストプラクティス

ポッドキャストの場合:

normalizer.normalize_rms(target_dbfs=-19.0)  # Speech clarity

音楽の場合:

normalizer.normalize_peak(target_dbfs=-1.0)  # Preserve dynamics

放送の場合:

normalizer.normalize_rms(target_dbfs=-23.0)  # EBU R128 compliance

使用例

  • ポッドキャスト制作:エピソード間の音量を統一
  • 音楽プレイリスト:連続再生時のラウドネスを均一化
  • オーディオブック:ナレーションのレベルを標準化
  • 会議の録音:話者ごとの音量を正規化
  • 動画制作:ミキシング前にオーディオレベルを合わせる

制限事項

  • ダイナミックコンプレッションは適用しません(別途コンプレッサーを使用してください)
  • DC オフセットは除去しません(前処理を推奨します)
  • ピーク正規化では知覚されるラウドネスは一致しません
  • クリッピングしたオーディオは修復できません(歪みは元に戻せません)

コメント