スペクトログラムの縦軸と横軸の設定を行う 音処理 第3回

スペクトログラムを使って音分析をする場合には、グラフのスケールを統一する必要がある。つまり、比較するグラフ間の縦軸と横軸を一致させないといけない。今回はスペクトログラムの時間軸と周波数軸をGoogle Colaboratry上でコードにより設定する。

前回作成したスペクトログラムのコードを利用する。

まずGoogle Colaboratryサイトへ移動して”sound02.jpynb”を開く。

ノートブックの複製

前回のコードを改訂して利用するため、ノートブックごと複製する。
メニューの[ファイル]→[ドライブにコピーを保存]クリック。読み込み開始。

待っていると、”sound02.jpynbのコピー”という名前のノートブックが新たに開いた。
ノートブックの複製完了。

Googleドライブをマウント
ノートブックの名前を変更後、忘れないうちに、ドライブをマウントした。

スケールつきスペクトログラムのコード実行

コードの一部を変更して実行(右向き矢印マークをクリック)。実行結果が表示された。

メニューの[ファイル]→[保存]クリック。

Google Colaboratoryリストに”sound03.jpynb”が追加された。

スケール設定コード部分の詳細説明

以下、コードの変更箇所を記述する。

”x_lim”、”y_lim”がmatplotlib.pyplotモジュールのx軸・y軸の表示範囲を設定する関数。
ネコが聞き取れる周波数が65kHzまでらしいので、周波数の上限を65000にした。
①実行結果として表示するグラフのサイズを設定(単位はインチ)
②グラフのタイトルを設定
③グラフのx軸のラベル設定
④グラフのy軸のラベル設定
⑤グラフのx軸の表示範囲を設定。音の開始から4秒(後)から9秒(後)までと設定。
⑥グラフのy軸の表示範囲を設定。0Hzから65000Hzに設定。
⑦カラーマップを作成して表示させる。
⑧パス”out_put”にグラフを保存する。

実行結果

実行結果。

x軸の設定はうまくいった。前回(sound02.jpynb)のスペクトログラムの4から9秒の範囲がちゃんと選択されている。

y軸の設定もできてはいるが、20000Hz以上が表示されていない!!!このWAVデータにはこの周波数域が記録されていないということ?初回(sound01.jpynb)の実行結果ではサンプリング周波数が44100Hzと出ていたのだが、どういうこと?サンプリング周波数の半分になる?人が聞き取れる周波数帯だけが記録されているということ?この辺りの勉強しないといけないな・・と思いながら、今回は終了。

参考書籍

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