2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スマホ(Pixel 9a)で録音した音声データを聞きやすくするために ffmpeg で音量調整などの試行錯誤を行ったメモ【概要編】

2
Last updated at Posted at 2026-03-06

はじめに

スマホ(Pixel 9a)で録音したとある音声データがあり、それを聞きやすくするために対応した ffmpeg を使った処理(音量調整など)に関する試行錯誤のメモです。とりあえず、その概要のみを記事にしてみました。

データに関する補足と今回の内容の注意点

対象のデータ(スマホで収録した音声)は、複数名の話者がいて、それぞれの話者の収録データ上での音量が大きかったり小さかったりするものです。少し補足すると、スマホと話者の位置関係や話者の声の大きさ、その他の要因が影響して、「一部の話者の音量が小さい」「同じ話者でも一部の発言の音量が小さい」ということが起こっている音声データです。

本記事の手順は、Web の情報などを見つつ自身が試行錯誤した流れのメモです。「このやり方が本当にベストなのか」や「この他にも良い方法がある可能性」の確認・検討は、十分にできていない部分があります。

ポイントのまとめ

音声データの情報

今回の試行錯誤を行った対象の音声データとその処理結果について、波形データに関する情報を掲載します。

波形のデータ

今回の処理対象の音声データに関して、波形を確認する手順をふみました。その際に出力した波形の画像を以下に掲載します。

waveform001.png

とりあえずここでは、波形の振幅の大きいところと小さいところが混在している(= 調整をしたほうが良さそうなデータである)ということを視覚的に確認しました。

それと、今回の試行錯誤をした後の音声データの波形を以下に掲載します。その結果が 2つありますが、それらを処理した時に用いたコマンドの説明をこの後に書きます。

waveform_best001.png

waveform_best_denoise001.png

最初に掲載していた音声データの波形と比べると、振幅の大小の差があった部分が、かなり調整されたのが分かります。

この後の内容に関わる注意点

この後に ffmpeg を使って音声データを処理するのに用いたコマンドを書いています。そのコマンドのオプション・パラメータは、自身の処理対象にしている音声データに合わせて調整した数値です。

そのため、今回用いた音声データ以外のデータを処理する場合は、その部分を変更する必要があります(今回の処理パラメータを決めるための前段階で用いた音声データの解析手順については、別途、記事を書こうと思います)。

上記の調整のために実行した ffmpeg のコマンド【その1】

上記を実現したコマンドも、先に記載しておきます。

ffmpeg -i 【入力ファイルの名前】.m4a -af "highpass=f=100,lowpass=f=5500,acompressor=threshold=-22dB:ratio=5.5:attack=5:release=70:makeup=9dB,dynaudnorm=f=160:g=18:p=0.93,loudnorm=I=-16:LRA=11:linear=true" -c:a aac -b:a 192k 【出力ファイルの名前】.m4a

コマンドのオプションの補足

上記のオプションの部分を、以下にリストで書いてみます。

  • -i 【入力ファイルの名前】.m4a — 入力ファイル名
  • -af "..." — オーディオフィルタチェーン(カンマ区切り)
    • highpass=f=100 — 100Hz以下の低音をカット(環境ノイズなどの除去)
    • lowpass=f=5500 — 5500Hz以上の高音をカット
    • acompressor — ダイナミックレンジを圧縮(音量差を小さくする)
      • threshold=-22dB — 圧縮が始まる音量の閾値
      • ratio=5.5 — 圧縮比(閾値を超えた分を5.5:1に圧縮)
      • attack=5 — 圧縮が効き始めるまでの時間(ms)
      • release=70 — 圧縮が解除されるまでの時間(ms)
      • makeup=9dB — 圧縮後に全体の音量を9dB持ち上げる補正
    • dynaudnorm — 動的な音量正規化(区間ごとに音量を均一化)
      • f=160 — フレームサイズ(分析する区間の長さ、ms)
      • g=18 — ガウシアンウィンドウサイズ(平滑化の度合い)
      • p=0.93 — ターゲットピーク値(0.93 = 最大音量の93%を目標)
    • loudnorm — EBU R128準拠のラウドネス正規化
      • I=-16 — 目標ラウドネス(-16 LUFS)
      • LRA=11 — 許容するラウドネスレンジ(11 LU)
      • linear=true — リニアモードで処理
  • -c:a aac — 出力の音声コーデックをAACに指定
  • -b:a 192k — 音声ビットレートを192kbpsに指定
  • 【出力ファイルの名前】.m4a — 出力ファイルの指定

上記の調整のために実行した ffmpeg のコマンド【その2】

上記のコマンドで処理した音声データについて、「特定のノイズが残っており、そしてそのノイズの音量が大きくなった感じ」がありました。そのノイズが強調されたものを何とかしようとして、オプションやパラメータを少し変えた以下のコマンドも試しました。
※ しかし、以下のコマンドで処理しても「特定のノイズが残って音量が大きくなっている」という部分は、あまり変化がなさそうでした

ffmpeg -i 【入力ファイルの名前】.m4a -af "highpass=f=100,lowpass=f=5500,afftdn=nr=12:tn=1,acompressor=threshold=-22dB:ratio=5.5:attack=8:release=90:makeup=8dB,dynaudnorm=f=180:g=15:p=0.95,loudnorm=I=-16:LRA=11:linear=true" -c:a aac -b:a 192k 【出力ファイルの名前】.m4a

1つ目のコマンドと違いがある部分のみ、以下でざっくり説明します。

追加したフィルタ:

  • afftdn=nr=12:tn=1 — FFTベースのノイズ除去(lowpassの後、acompressorの前に追加)
    • nr=12 — ノイズ低減量(dB)
    • tn=1 — トーンノイズの除去を有効化

変更したパラメータ:

パラメータ
acompressor attack 5 8
acompressor release 70 90
acompressor makeup 9dB 8dB
dynaudnorm f 160 180
dynaudnorm g 18 15
dynaudnorm p 0.93 0.95

参考にした記事

今回の内容を進めるにあたり、以下を参考にしました。

●[FFmpeg] 音声を聞きやすく調整する »キリンスキ
 https://kirinsuki.net/2024/03/17/

●FFmpegのDynamic Audio Normalizer(dynaudnorm)フィルターで音声ファイルを聞きやすい音量にする|かねだ
 https://note.com/skaneda/n/n68c0a934b2fa

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?