FFmpegで音楽ファイルの音量を調整・正規化する方法
すべてのオーディオファイルが同じ品質で作られているわけではありません。音が小さすぎたり大きすぎたり、どこか違和感があったりすることも珍しくありません。問題のある音声ファイルに直面しても、我慢して使うしかないということはありません。強力なオープンソースのオーディオツール「FFmpeg」を活用すれば、ファイルの音量を調整したり、不快な音量の揺らぎを取り除くために正規化(ノーマライズ)したりすることができます。さらに嬉しいことに、FFmpegは完全にスクリプト化可能で、Pythonスクリプトと組み合わせれば一連の作業を自動化することもできます。
FFmpegのインストール
まだFFmpegを導入していない場合でも、入手はとても簡単です。Linuxユーザーなら、ほとんどのディストリビューションの公式リポジトリで見つけられます。WindowsやMacの場合は、プロジェクトのダウンロードページから取得できます。
基本的な音量調整
ここからの作業はすべてターミナル上で行います。FFmpegにはGUIフロントエンドも存在しますが、コマンドラインが最もシンプルで直接的な操作方法です。まずは作業用のターミナルを開きましょう。

処理したいファイルがあるディレクトリへ移動します。FFmpegは考えられるほぼすべてのオーディオ形式に対応しているので、フォーマットを気にする必要はありません。ファイルの準備ができたら、-iフラグで入力ファイルを指定し、続いて-filter:aフラグでフィルターを指定します。今回は音量調整を行います。FFmpegでは元ファイルの音量を「1」として扱うため、音量を半分にしたい場合は「volume」を0.5に設定します。最後に出力ファイル名を指定します。全体のコマンドは以下のようになります。
ffmpeg -i input.flac -filter:a "volume=0.5" output.flac
このコマンドを実行すると、入力ファイルを半分の音量にしたコピーが指定したファイル名で出力されます。もちろん、1より大きな数値を指定すれば音量を上げることも可能です。以下の例では、音量が50%アップします。
ffmpeg -i input.flac -filter:a "volume=1.5" output.flac
また、FFmpegはファイル形式の変換にも対応しています。出力ファイルの拡張子を変えるだけで、あとはFFmpegが自動的に処理してくれます。
ffmpeg -i input.flac -filter:a "volume=1.25" output.mp3
より技術的に細かく制御したい人は、デシベル単位での指定が好みかもしれません。FFmpegはこれにも対応しています。先ほどの基準値方式の代わりに、上げたいデシベル数に「dB」を付けて指定します。
ffmpeg -i input.flac -filter:a "volume=5dB" output.flac
負の数値を指定すれば、デシベル単位で音量を下げることもできます。
ffmpeg -i input.flac -filter:a "volume=-5dB" output.flac
ラウドネス正規化

ファイル内の音量が一定でない場合は、FFmpegに組み込まれている正規化機能を使えば解決できます。コマンドの組み立て方は音量変更時と同じですが、フィルターとして「volume」の代わりに「loudnorm」を使用します。FFmpegが音声のピークと谷を自動的に調整し、より聞き心地の良いバランスへと整えてくれます。
ffmpeg -i input.flac -filter:a loudnorm output.flac
Pythonによる自動化
実はFFmpegでのオーディオ正規化にはさらに高度な機能があり、音響に関する知識や数学的な計算が必要になります。それを自分で行うのは大変なので、便利なPythonスクリプト「ffmpeg-normalize」を使って全工程を自動化しましょう。このツールはフォルダ単位の一括処理にも対応しています。
ffmpeg-normalizeのインストール
パッケージ管理ツールPipが使える環境にPythonがインストールされていれば、ffmpeg-normalizeを簡単に導入できます。LinuxやMacでは、特別な設定をしていない限り「sudo」が必要になるでしょう。
sudo pip3 install ffmpeg-normalize
ffmpeg-normalizeの使い方

ffmpeg-normalizeの使い方は非常にシンプルです。入力ファイルを指定し、-oフラグの後に出力ファイル名を書けば、スクリプトが自動的に正規化を行ってくれます。ただし、動作させるためにはコーデックの指定が必要です。
ffmpeg-normalize input.flac -c:a flac -o output.flac
複数の入力ファイルと出力ファイルを一度に指定することもできます。
ffmpeg-normalize input.flac input2.flac input3.flac -c:a flac -o output1.flac -o output2.flac -o output3.flac
ファイル形式の変換にも利用可能です。コーデックとビットレートの指定は必要ですが、問題なく動作します。フラグは通常のFFmpegと共通です。
ffmpeg-normalize input.flac -c:a libmp3lame -b:a 320k -o output.mp3
フォルダ全体を一括で正規化する

ワイルドカード(*)を使えば、フォルダ内のファイルを形式変換の有無にかかわらずまとめて正規化できます。出力ファイルは自動的に専用フォルダへ保存されます。コマンドの書き方はWindowsとLinux/Macで少し異なりますが、結果は同じです。なお注意点として、-extフラグで各ファイルの出力拡張子を指定しないと、.mkvファイルが出力されてしまいます。
MacおよびLinuxの場合
ffmpeg-normalize *.flac -c:a libmp3lame -b:a 320k -ext mp3
Windowsの場合
for %%f in ("*.flac") do ffmpeg-normalize "%%f" -c:a libmp3lame -b:a 320k -ext mp3
どの方法を選んでも、品質の悪いオーディオに悩まされる理由はもうありません。FFmpegを使えば音量の調整と正規化は簡単に行え、コレクション全体とバランスの取れた、快適に聴ける音源へと仕上げることができます。
-
Microsoft OneDriveでファイルを管理・同期・共有する方法【初心者向けガイド】
Googleが「Google Drive」を、Appleが「iCloud」を提供しているように、Microsoftも「OneDrive(旧称:SkyDrive)」というクラウドストレージサービスを展開しています。近年、個人ユーザーや企業の間では、高価なハードウェアへの依存を減らし、ファイルやドキュメントをクラウド上で管理するスタイルが主流になりつつあります。 クラウドサービスへの需要が高まる中、OneDriveも機能拡張を続けています。最新版では、ドラッグ&ドロップによるファイルや写真の簡単な転送、リアルタイムでの共同編集(共同オーサリング)、ファイルのプレビュー機能、より多くのファイル形式へ
-
Disk Analyzer Proでデータストレージとディスク容量の消費を効率的に管理する方法
すべてがデジタル化され、小さなハードディスクに膨大なデータを保存できるようになった現代では、ファイルやフォルダーの管理を見失いがちになっています。無数の書籍、動画、写真、音楽ファイルによって、ハードディスクはあっという間にパンク状態になり、写真1枚すら保存する余地がなくなってしまうことも。多くの人はフラッシュドライブを買い足したり、外付けハードディスクを追加したり、さらにはクラウドストレージへすべてを移行したりして対処してきました。しかし、新しいストレージ先を探すことは根本的な解決策にはなりません。なぜなら、ほとんどの人は自分のハードディスクやUSBメモリに何が保存されているのか正確に把握でき