これを行うためのコマンドライン ツールについては知りませんが、scipy
ライブラリを使用すると、この機能を備えた Python スクリプトを簡単に作成できます。
を使用scipy.io.wavfile
してファイル IO を実行し、dB 値を自分で計算できます (スピーカーと音量設定に依存するため、これらは必ずしも標準の dB 値ではないことに注意してください)。
まず、ファイルを取得します。
from scipy.io.wavfile import read
samprate, wavdata = read('file.wav')
次に、ファイルをチャンクに分割します。チャンクの数は、ボリュームをどれだけ細かく測定するかによって異なります。
import numpy as np
chunks = np.array_split(wavdata, numchunks)
最後に、各チャンクのボリュームを計算します。
dbs = [20*log10( sqrt(mean(chunk**2)) ) for chunk in chunks]
ここでdbs
は、ファイルの各チャンクの dB 値のリストです (ここでも、必ずしも真の SPL サウンド レベルではありません)。
重複するチャンクなどを使用して、別の方法でデータを簡単に分割することもできます。
参考文献: - scipy.io.wavfile
- dB (SPL)