1. 開発経緯
様々なところから集めてきたデジタル音源を一つにまとめてコンピレーション盤やベストアルバム等を作ろうとする時、必ず問題になるのが各曲の音量差です。音量が揃っていないとイライラして聴いていられません。それを解決するためにこのツールを開発しました。
本ツールの最大の特徴は、よくあるノーマライズ処理では失われることが多い「音楽のダイナミクス」を可能な限り損なわないように設計されていることです。
2. 概要
WAVファイルをまとめてEXEファイル(あるいは、そのショートカット)へドラッグ&ドロップするだけで、音量統一処理を全自動で行います。元のファイルは一切変更しません。
処理内容:
v1.6の新機能:
- ハイレゾ対応: 96kHz/32bit floatの高解像度音源に対応しました
- CDフォーマット変換: ハイレゾ音源からCD用音源を高品質に作成できます
- メモリ最適化: 大容量ファイルも安定して処理できるよう動的メモリ管理を実装
3. 動作環境
必要システム要件
- OS: Windows 10以降
- その他: FFmpeg インストール必須(同梱のインストーラーで簡単にインストールできます)
本ツールはプログラミング言語 Python で作成されており、EXE版ではPythonランタイムを含むすべてのPythonコンポーネントが単一の実行ファイルに統合されています。
4. 配布ファイル
lufs_unifier.exe EXEファイル(約105MB) lufs_unifier.yaml 設定ファイル ffmpeg_install.bat FFmpeg 自動インストーラー ReadMe.html このファイル(使用説明書・日本語版) ReadMe_en.html 使用説明書(英語版)
注意: 本ツールのインストール作業はありません。すべてのファイルを同じフォルダに置くだけです。
5. 準備
FFmpeg が正しくインストールされている必要があります。ffmpeg_install.bat を使えば簡単にインストールできます。
ffmpeg_install.bat をダブルクリック6. LUFS Unifier の使い方
(1) WAVファイルをドラッグ&ドロップ
音量を統一したいWAVファイルをまとめて lufs_unifier.exe(あるいは、そのショートカット)へドラッグ&ドロップします。
フォルダドロップにも対応:
- 個別ファイル、フォルダ、またはその混在をドロップ可能
- フォルダ内のWAVファイルのみが処理対象(サブフォルダ内は対象外)
(2) 自動処理スタート
以下の処理が自動で実行されます:
(3) CDフォーマット変換(オプション)
自動処理完了後、CD用フォーマット(44.1kHz/16bit)への変換を選択できます。
変換方法:
- リサンプリング: librosa Kaiser窓関数(最高品質)
- ディザリング: TPDF三角波(16bit変換時)
- 処理対象: 44.1kHz/16bit以外のファイルのみ自動判定して変換
- 出力先: output_unified/output_cd44/ フォルダ
この変換により、ハイレゾ音源から品質の高いCD制作用音源を作成できます。
(4) 出力フォルダ
処理後は元のWAVファイルフォルダに下記フォルダが新たに作成され、それぞれのファイルが保存されています。
WAVファイルフォルダ
│
└── output_unified フォルダ 音量統一後のファイル
│
├── *_unified.wav LUFS統一後のWAVファイル
│
├── ログファイル 処理内容を記録したファイル
│
├── alac フォルダ ALAC圧縮ファイル(可逆圧縮)
│ └── *.m4a
│
└── output_cd44 フォルダ CDフォーマット(選択時のみ)
└── *_unified_cd.wav 44.1kHz/16bit WAVファイル
中間ファイルの自動削除:
- trimmed フォルダ: 先頭末尾の無音削除後の中間ファイル保存フォルダ。処理完了後は自動削除されます
メタデータ完全保持: 元のWAVファイルのタグ情報(アーティスト名、アルバム名、曲名、ジャケット画像等)は、処理後のWAVファイルおよびALACファイルに完全に保持されます。
本ツールを使用する前に、元のWAVファイルに対し MP3TAG 等を使ってタグ情報(RIFFおよびID3)を一度きちんと入力しておくことをお薦めします。
起動について: ドラッグ&ドロップ後、処理開始まで数秒かかる場合があります。これはEXEファイル内に格納されているプログラムコンポーネントを一時フォルダ(TEMP)に展開する初期化処理のためです。処理終了後、展開されたコンポーネントはすべて自動的に削除されます。
注: alac フォルダは、全WAVファイルのタグ情報「アルバム名」がすべて同じ場合は、アルバム名がそのままフォルダ名になります。
7. 音響用語解説
RMS(Root Mean Square)
実効値とも呼ばれる音の平均的な強さを表す指標です。
- 何を測るか: 音の「実際の力強さ」
- 特徴: 人間の耳が感じる音量感に比較的近い
- 単位: dB(デシベル)
- 例: -12 dB RMSなど
- 用途: ミキシング時の音量バランス調整
LUFS(Loudness Units relative to Full Scale)
ラウドネス単位で、現在最も重要視されている音量測定基準です。
- 何を測るか: 人間が実際に感じる「聴感上の音量」
- 特徴: 周波数特性を考慮し、人の聴覚特性に最も近い
- 単位: LUFS
- 配信基準:
- Spotify: -14 LUFS
- YouTube: -14 LUFS
- Apple Music: -16 LUFS
- 用途: ストリーミング配信用のマスタリング
- 本ツールでの測定方法: FFmpegのebur128フィルター(ITU-R BS.1770-4準拠)を使用
TP (True Peak)
真のピーク値で、デジタル変換時に発生する可能性のある最大音量です。
- 何を測るか: DA変換(デジタル→アナログ変換)後に発生し得る実際の最大音量
- 特徴: 通常のピークメーターでは検出できない隠れたピークを発見
- 単位: dBTP(デシベル・トゥルーピーク)
- 推奨値: -1 dBTP以下(クリッピング防止)
- 用途: マスタリング時の最終チェック
- 本ツールでの測定方法: FFmpegのebur128フィルター(ITU-R BS.1770-4準拠)により、LUFSと同時測定することで処理を高速化(約1.5〜2倍)
LRA(Loudness Range)
ラウドネス・レンジで、楽曲全体の音量変化の幅を表します。
- 何を測るか: 曲中の静かな部分と大きな部分の差
- 特徴: 楽曲のダイナミクス(表現力)を数値化
- 単位: LU(ラウドネス・ユニット)
- 目安:
- 3-6 LU: 圧縮が強い(EDM、ポップス)
- 10-15 LU: 適度なダイナミクス(ロック)
- 15+ LU: 豊かなダイナミクス(クラシック、ジャズ)
8. 本ツールの動作について
基本は LUFS を揃えることを目標としていますが、一定の LUFS 値に揃えるノーマライズ処理は行っていません。理由は、その手法では楽曲のダイナミクス(LRA)が大きく変化してしまうケースがあるからです。
よって本ツールではリニアゲイン調整のみで LUFS を統一しています。処理の流れは以下のとおりです。
このロジックにより、リニアゲイン調整だけで LUFS を統一することで LRA の変動を理論上はゼロにしています。
音質改善機能
以下の音質改善機能がリニアゲイン調整処理において自動的に適用されます:
メモリ最適化機能
大容量ファイルの処理を安定して行うためのメモリ最適化機能が実装されています:
- 動的ワーカー調整: ファイルサイズに応じて並列処理スレッド数を自動調整
- ファイルサイズ判定:
- 小サイズ(平均50MB未満): フル並列処理
- 中サイズ(平均50-100MB): 並列数75%に削減
- 大サイズ(平均100-200MB): 並列数50%に削減
- 超大サイズ(最大200MB以上): シングルスレッド処理
- オンデマンド処理: 音声データをメモリに保持せず、必要な時に元ファイルから読み込み
CDフォーマット変換機能(オプション)
自動処理完了後、CD制作用の44.1kHz/16bitフォーマットへの変換を選択できます。この機能により、ハイレゾ音源や異なるサンプリング周波数の音源からCD用音源を高品質に作成できます。
変換の特徴:
- 高品質リサンプリング: librosa Kaiser窓関数を使用し、エイリアシングを最小限に抑制
- TPDFディザリング: 16bit変換時の量子化ノイズを三角波ディザリングで低減
- 自動判定: 既に44.1kHz/16bitのファイルはそのままコピー(再変換なし)
- 元データ保持: 元のLUFS統一ファイルとは別フォルダ(output_cd44)に保存
用途: CD制作、オーディオCDへの書き込み、CD品質での配布など
9. 設定ファイル lufs_unifier.yaml について
| 設定項目 | デフォルト値 | 内容 |
|---|---|---|
target_tp_db |
-0.5 | TP制限値(dB) |
max_iterations |
10 | 最大ゲイン調整回数 |
max_workers |
4 | 並列処理ワーカー数(自動調整) |
tp_convergence_margin |
0.01 | TP収束許容誤差(dB) |
threshold_db |
-50.0 | 無音検出レベル(dB) |
min_silence_duration |
0.05 | 検出する最小無音時間(秒) |
head_keep_duration |
0.2 | 先頭保護時間(秒) |
tail_keep_duration |
1.0 | 末尾保護時間(秒) |
true_peak_timeout |
30 | TP解析タイムアウト(秒) |
alac_conversion_timeout |
120 | ALAC変換タイムアウト(秒/ファイル) |
10. トラブルシューティング
起動に時間がかかる
原因: EXEファイル内のプログラムコンポーネントを一時フォルダ(TEMP)に展開する初期化処理のため、数秒かかる場合があります。
説明:
- ドラッグ&ドロップ後、処理開始まで3〜5秒程度かかるのは正常な動作です
- 展開されたコンポーネントは処理終了後、自動的にすべて削除されます
- 処理が始まれば、その後は高速に動作します
処理が途中で止まってしまう
原因: ファイルサイズが大きすぎるか、メモリ不足の可能性があります。
解決方法:
lufs_unifier.yamlの max_workers を 1-2 に減らす- 一度に処理するファイル数を減らす
- 他のアプリケーションを終了してメモリを確保
補足: v1.6では動的メモリ管理により、大容量ファイルでも自動的にシングルスレッド処理に切り替わり安定性が向上しています。
無音カットが適切に動作しない
原因: 無音検出の閾値設定が楽曲に適していない可能性があります。
解決方法:
lufs_unifier.yamlの threshold_db を調整- クラシック音楽: -60.0 dB
- ポップス・ロック: -50.0 dB(デフォルト)
- 電子音楽: -45.0 dB
- head_keep_duration / tail_keep_duration で保護時間を調整
FFmpegが見つからないエラー
原因: FFmpegが正しくインストールされていないか、環境変数が設定されていません。
解決方法:
- 付属の
ffmpeg_install.batを実行してFFmpegをインストールすれば、ユーザー環境変数の設定、Windowsへの通知もすべて自動で行われます。 - インストール状況は、コマンドプロンプトで
ffmpeg -versionを実行すれば確認できます。
11. セキュリティ情報
VirusTotal スキャン結果
このEXEファイルは第三者機関VirusTotalでスキャン済みです:
- 検出状況: 4/69(一部のセキュリティソフトで誤検知)
- スキャン結果URL: VirusTotalで確認
誤検知について:
- 検出しているのは: Avast、AVG、Jiangmin、Zillya の4つのみ
- 主要なセキュリティソフト(Windows Defender、Kaspersky、McAfee、Norton等)では検出されていません
- 検出理由: PythonスクリプトをEXE化したツール(PyInstaller等)に対する誤検知パターンです
- 悪意のあるコードは一切含まれていません
ダウンロード時の警告について
ブラウザが「危険なファイル」と警告する場合がありますが、これは誤検知です。
Chrome の場合:
- ダウンロードバーに「危険なファイル」と表示される
- ファイル名の右にある「^」をクリック
- 「継続」または「保持する」をクリック
Microsoft Edge の場合:
- 「このファイルは安全にダウンロードできません」と表示される
- 「...」(詳細)をクリック
- 「保持する」をクリック
初回実行時の警告について
Windows Defender(SmartScreen)が警告を表示する場合がありますが誤検知です:
- 「Windowsによって PC が保護されました」と表示される
- 「詳細情報」をクリック
- 「実行」ボタンをクリック
12. 免責事項
使用に関する注意事項
- 本ツールの使用は自己責任でお願いします。
- 音声ファイルの処理により発生した音質の変化や損失について、開発者は一切の責任を負いません。
- 重要なファイルは事前にバックアップを取ることを強く推奨します。
- 商用利用に関しては、関連する著作権法や使用許諾契約を遵守してください。
- 本ツールの動作により生じたいかなる損害についても、開発者は一切責任を負いません。
- Windowsの仕様変更やFFmpegの更新により、将来的に動作しなくなる可能性があります。
- サポートは基本的に提供いたしません。
13. 更新履歴
- trimmed フォルダの自動削除機能
- 96kHz/32bit float対応(ハイレゾ音源サポート)
- CDフォーマット変換機能(Kaiser窓リサンプリング+TPDFディザリング)
- 動的メモリ管理による大容量ファイル安定処理
- オンデマンド処理によるメモリ使用量削減
- フォルダドロップ対応(サブフォルダは除外)
14. 開発者情報
| 開発者 | Noriya |
| noriyahd28v@gmail.com | |
| URL | http://noriya.info/ |
本ツールは音楽愛好家の皆様により良い音楽体験を提供することを目的として開発されました。
ご質問やフィードバックがございましたら、上記連絡先までお気軽にお寄せください。