Windows用のプログラム
 
以前使用していた分析用プログラム一式を失ってしまい,幾つかの条件を満したスペクトログラムを描写するプログラムを探したのですが, 何処にもそれらしき物を発見できませんでした.(現状では高価なソフトは使えませんし)
 
幾つかの条件とは,レベルの指標がある,レベルを固定できる,周波数軸の対数目盛,窓関数の選択が可能,極低周波帯域の分析が可能, 補間処理が可能,色が変えられる,グラフサイズを任意に変えられる,などです. どれも基本的な条件なのですが・・・ 条件を満たせないソフトが多いです.
 
既製のソフトで賄えれば他の被害者とも同じ情報を共有できるわけですが,ないものは仕方ありません. 仕方なく自作し直す事にしました.
 
スペクトログラムを作成するプログラムですが,音声ファイルから中間ファイルを作り,gnuplotでグラフ化します. グラフを描く際に1ギガバイト以上のメモリーを消費しますので,とても重い処理となります.
そこで「wavesurfer」「Sonic Visualiser」「spwave」などのフリーソフトを用いて, ターゲットを決めてからデーターを切り出してグラフ化します. つまり,グラフを清書する際に用いるわけです.
 
FFTの計算にはFFTWと言う有名なライブラリーを使用しましたので,高速(13秒程度)にフーリエ変換(STFT)できますが, グラフを描く際にgnuplotを使用していますので,30秒から1分程度の時間が掛かります.
以前使用していたパソコンでは,先のグラフと同じ物を一枚描くのに40分から1時間掛かりました.
昔使用していた物は,PentiumIIIの500MHz, メモリー256MB
新しいパソコンは,Core i5 3.1~3.3GHz メモリー16GB ですので高性能? です. 使用するパソコンの性能次第では少し時間が掛かるかも知れません.パソコンが高性能化した結果,可能になった低周波分析です.
 
レベル(dB)表示は,最小振幅のサイン波が0dBになるように設定されています.ICレコーダーの記録は最大振幅が
±32767(16bit)ですので,最大振幅のサイン波をフーリエ変換し,パワースペクトルを得て,更に,対数変換し,10倍すると,
10 × log10(327672) ≒ 90.31dB
この値が,ダイナミックレンジが16bitで表現された正弦波を分析した時の最大値となります.
窓関数を適用した際の補正係数と等価帯域幅による補正が必要なのですが,修正自体は簡単にできるようになっています.
ですので,例えば,音声(音圧)を記録した場合に,音圧基準値である20×10-6[Pa](Paはパスカルと言う圧力の単位) の音が記録された時,最小振幅となるように増幅処理を施せば,絶対値での表示が可能となります.
原理的に言って,どの分析ソフトを使用するにせよレベル合わせが必要となる分けです.
注意点ですが,自動録音レベル調整機構を持つレコーダーを使用した場合は,レベルが変動してしまうので絶対値表示はできません.
絶対値が必要な場合,録音レベルの固定設定とレベル調整(増幅処理)が必要となります.
 
分析の手順は,wavファイルを,自作したソフトでSTFT変換し,gnuplotでグラフ化します.(STFTは短時間フーリエ変換の略です.)
wavFILE → STFTデータ → グラフ化
 

 
スペクトログラム分析用に作成したプログラム stft.exe(32bit用 64bitOS上でも実行可能)と gnuplot 用スクリプト一式です.
セットアップと使い方は,解凍後,README.txt と 説明書.txt を見て下さい.この他に gnuplot と FFTW が必要です.
 
 
圧縮ファイルのハッシュ
MD5: 283d677cf06ecde2afc2a9fdc27ac285
SHA1: fd24774469d297d5cae4d3eb5ed6c44467839aba
改竄がない事を確かめるため,ダウンロードした圧縮ファイルのハッシュを計算し比較して下さい.
自分は「HashSum」と言うフリーソフトを利用してハッシュを計算していますが,他のソフトでも問題ありません.
万一,ハッシュ値が異なる場合は使用を取り止めて下さい.その際,メールを頂ければと思います.
 
この他に gnuplot が必要になります.32bitの物でも可能です.下にリンクがあります.
更に,高速フーリエ変換ライブラリー( FFTW)も必要です. 下のリンクから fftw-3.3.5-dll32.zip (2.6MB) というファイルをダウンロードしておいて下さい.
 

 
gnuplot と高速フーリエ変換ライブラリー( FFTW)のリンクです.
 
32-bit version: fftw-3.3.5-dll32.zip (2.6MB)
OSは64bitを使用していますが,速度と性能が十分なので32bitのFFTWを使用しています. 自作のアプリケーションは32bitにしか対応していません.
 

 
重要
分析用プログラム stft.exe は,PCMフォーマットのモノラルチャンネルしか扱えません. ステレオファイルを分析したい場合,spwave(フリーソフト)と言うフリーソフトを使用して 音声ファイルを切り出して,PCMフォーマットのモノラルチャンネルで保存し,分析して下さい.
 
最初のページへ戻る