pythonで音量を計算する

pythonによる信号処理です。今回は音声信号から音量波形を求めます。
音声信号の音量の変化を見たい時はたまにあると思います。
計算には二乗平均平方根(RMS: root mean square)を用います。
音声信号をある程度の範囲で区切り、その部分部分でRMSを計算することで音量の変化を見ていきます。

音源はESC-50というデータセットからお借りしました。
データセットのリポジトリはこちら➡https://github.com/karolpiczak/ESC-50
hen(めんどり)のタグがついたファイルを借りました➡1-5996-A-6.wav

librosaを用いた音量計算

librosaの音量を計算する関数librosa.feature.rmsを用います。
rmsの引数を変更することでrmsを求める区間等を変更できます。
今回はデフォルトのままやっています。

結果は下のグラフです。
音量の変化が求められています。

また、人の音量の知覚は振幅の対数に比例するため、デシベルに変換したものもよく用いられます。

こちらは以下のグラフのようになります。
音源を聞いてみると分かりますが直観的に感じます。

コメント

タイトルとURLをコピーしました