Pythonを使用して、オーディオのラウドネスを計算しようとしています。おそらく、オーディオのピークボリュームを抽出するか、より正確な測定値(RMS?)を使用します。
これを行うための最良の方法は何ですか?私はpyaudioを見てきましたが、それは私が望んでいたことをしていないようでした。見栄えが良かったのはルビーオーディオでした。これは一見sound.abs.max
組み込まれているようです。
入力オーディオは、持続時間が約30秒のさまざまなローカルMP3ファイルから取得されます。
Pythonを使用して、オーディオのラウドネスを計算しようとしています。おそらく、オーディオのピークボリュームを抽出するか、より正確な測定値(RMS?)を使用します。
これを行うための最良の方法は何ですか?私はpyaudioを見てきましたが、それは私が望んでいたことをしていないようでした。見栄えが良かったのはルビーオーディオでした。これは一見sound.abs.max
組み込まれているようです。
入力オーディオは、持続時間が約30秒のさまざまなローカルMP3ファイルから取得されます。
RMS が最も正確な測定値になると思います。注意すべきことの 1 つは、周波数によってラウドネスの認識が異なることです。したがって、fft を使用してオーディオを周波数空間に変換します (numpy.fft は、30 秒のオーディオのみでうまく機能するはずです)。これからパワー スペクトル密度を計算します。ラウドネス曲線を使用して、PSD を周波数で重み付けします。特に 10Hz 未満の周波数は、そこに多くの電力が存在するため (時間領域での RMS 計算を支配するため)、それを聞くことはできません。ここで、PSD を統合して平方根を取ると、知覚される RMS が得られます。
また、mp3 をセクションまたはウィンドウに分割し、この手法を適用して特定のセクションにボリュームを与えることもできます。