~今日はまじめな内容~
processingで使えるminimっていう音声ライブラリについてです.
たぶん
一番かんたんにFFTできるライブラリだと思います.
簡単な音声処理がしたいならとてもおススメです.
(複雑な処理がしたい場合はおススメできません.細かい設定とかができないので・・・)
そこで
あんまり探しても出てこなかった情報をメモしとこうと思います.
それは
getBandWidth()についてです.
wavファイルをminimでFFT処理しようとするときにwavファイルのサンプリングレートによって
勝手にgetBandWidth()の値が変わってしまうようです.
周波数帯の分割数を512としたとき,
サンプリングレートが
44100Hzの場合はgetBandWidth()は43.066406サンプリングレートが
16000Hzの場合はgetBandWidth()は15.625という具合です.
getBand(int)でその周波数帯の振幅を取り出すときに注意です!
ここでさらに注意ですが,
マイクによってgetBand(int)で取り出すとき,
上のようにgetBandWidth()が変化しません!!
44100Hzでも16000HzでもgetBandWidth()は43.066406になってしまいます.これはマイクのハード的な性能で16000Hzしかとれなくても,
44100Hzとして解析してしまいます・・・(T^T)
例として,Kinectのマイクがあります.
Kinectのマイクは16000Hzしかとれませんが,
minimで処理するとなぜか44100Hzとしてしか処理できませんでした・・・.なので,minimで何か音声処理するときは
44100Hzに統一して解析することをおススメします.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ちなみにgetBand(int)で取れる振幅の単位はナゾです.
調べましたが分かりませんでした・・・
ここらへんをしっかり処理したい!という方は別のものを使いましょう.
MATLABとかですかね???
スポンサーサイト