スペクトログラムとメル周波数スペクトログラムの可視化

やったので貼っとくだけ

低周波数の部分は解像度高い、高周波数は粗めというのがメル周波数のような対数周波数の特徴。ただし元々のスペクトルが線形なので、フィルタバンクかけても結果はご覧の通り。

今回は振幅を対数を取って表示した(ちなみに)。上のスペクトログラムは、周波数方向は512次元になっているけど、メル周波数の方は128になっている。直感的には、512次元の線形周波数スペクトルを、人間の聴覚特性に合うようにメル周波数に変換して次元圧縮するイメージ。

解説は、メル周波数ケプストラム係数(MFCC) | 人工知能に関する断創録 を見よう。素晴らしいです

僕はと言えば特に解説する気も起きないので、C++コードでも貼っとこう(※間違ってたので、とりあえず消しました

まとめ

メルフィルタバンクかけるクラス作ってたら数時間潰した

参考