はじめに
どんな実験でもそうですが、処理結果を可視化できないと何が起きているのか直感的に理解する事が難しいです。
そのため、処理結果の可視化は研究や開発にとっては非常に重要ですが、一方で、可視化技術そのものに注力しすぎて、本来の研究がおろそかになってしまっては本末転倒です。
時系列信号の強力な可視化ツール「Sonic Visualiser」
今回ご紹介するのは、時系列信号を可視化するための強力なツールである「Sonic Visualiser」です。
外部リンク:Sonic Visualiser
機能の要約は以下の通りです。
- マルチプラットフォーム対応(Windows,Mac OS X, Linux系)
- 無料
- 音声データ読み込んで波形表示可能
- 読み込んだ音声データを再生可能
- 音声データの振幅スペクトログラムを表示可能
- 音声データの位相スペクトログラムを表示可能(珍しい!)
- 音声データをスライスしたスペクトラムを表示可能
- 上記の表示をレイヤーで重ねて表示可能
- 上記の表示をペインで並列に表示可能
- 独自のデータを時系列データとして読み込み可能
- プラグイン機能で拡張可能
実際の画面例は以下の通りです。
独自のデータを時系列データとして読み込ませる
Sonic Visualiserの非常にありがたい機能の一つが、独自のデータを時系列データとして読み込める機能です。
読み込めるデータ形式は非常に単純で、扱われ方は二種類あります。
一次元時系列データ
一列目を時間オフセット(秒、サンプル数等を読み込み時に選べる)、二列目をデータとしたCSV(comma-separated values)形式でデータを用意します。
それを、Sonic Visualiserで読み込むと、音声データと時間軸を合わせた形でグラフとしてプロットしてくれます。
また、グラフ表示設定のデルタボタン(本当に\deltaと書いてある)を押すことで、時間差分化して表示する事もできます。
多次元時系列データ
一列目を時間オフセット、二列目以降をデータとしたCSV形式です。
一次元時系列データと比べると、データ列が一列なのか二列以上なのかの違いだけです。
この多次元時系列データをSonic Visualiserで読み込むと、Sonic Visualiserはスペクトログラムのようなデータだと解釈し、カラーマップ表示を行います。
また、カラーマップに対して、スライスした断面をレイヤー重ねで表示したり、別ペインで表示することもできます。
おわりに
お手軽にはPython+matplotlibでも用が足りることが多いですが、やはり時系列解析で全ての時間フレームを表示して眺めるというのは、Python+matplotlibでは割と厳しいです。
本ブログでもアニメーションさせたり、独自にスペクトログラムを出力する等して頑張ってはいますが、実験の本質的ではないプログラムコード量が増えてしまいますし、画像化に際しても表現量が貧弱で、間に合わせの域を超えていません。
Sonic Visualiserを使えば、少なくとも時系列データの解析においては非常にお手軽に可視化でき、その表現力も豊かです。是非、使ってみてください。