audio-normalizer について
audio-normalizerは、単一または複数の音声ファイルの音量を調整するPythonツールです。ピーク・RMS正規化、LUFSの目標値への調整、ヘッドルーム制御に対応し、ポッドキャストや音楽、音声の処理に使えます。
主な機能
- 01ピーク・RMS正規化
- 02LUFS目標値への調整
- 03ファイルの一括処理
- 04元のフォーマットの維持
- 05ヘッドルームの設定
活用シーン
- 01ポッドキャスト各回の音量統一
- 02音楽プレイリストのラウドネス調整
- 03音声録音のレベル標準化
- 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 オフセットは除去しません(前処理を推奨します)
- ピーク正規化では知覚されるラウドネスは一致しません
- クリッピングしたオーディオは修復できません(歪みは元に戻せません)
コメント
Markdown 対応