pythonで時間周波数解析~メルスペクトログラム~

このブログでは、時間周波数解析としてSTFTウェーブレット変換定Q変換をやりました。

今回はメルスペクトログラムをやってみます。

メルスペクトログラムは、周波数が人間の知覚に近いメル尺度(低周波数の音を良く知覚する)に変換されたSTFTのことです。

以前と同様に、音源はESC-50というデータセットからお借りしました。 データセットのリポジトリはこちら➡https://github.com/karolpiczak/ESC-50 siren(サイレン)のタグがついたファイルを借りました➡1-76831-A-42.wav

librosa.feature.melspectrogramを用いたメルスペクトログラム

音響信号処理によく使われるライブラリであるlibrosaを用います。 このライブラリはpipでインストールできます。時間軸の生成にはlibrosa.time_to_framesを用い、周波数軸の生成にはlibrosa.mel_frequenciesを用います。

コードは次の通りです。

結果は以下のグラフです。

正しくメルスペクトログラムによる時間周波数解析ができていそうです。

コメント