2010年07月15日

openSMILEを使ってみる

論文を調べていたらinterspeech2009で感情認識のChallengeが行われていた。
そこで、使われているのがopenSMILEという特徴量抽出用のプログラム。
いろいろな音声認識、音楽認識、などなどで用いられる特徴量ががっつり計算できる上にWEKA用のarffでも書き出せるようにしているらしい。

というか、2009年でも一つの音声ファイルに対して384次元の特徴ベクトルを計算してくれる。
2010年用だと1000超えてたり、なんかすごいことになってる気もする。


ちなみに、binで落としてもlinux/windows両方の実行ファイルが入ってるのでそちらが楽ではある。
SSE対応や64bit対応もしてるし。

でも、やっぱりソースからコンパイルしてみたい。

コンパイルはbookを見るとスクリプト一発だぜーと書いてあるような気がしたのだが、よく見たら細かい手順が書いてあった。
ダウンロードは http://sourceforge.net/projects/opensmile/ から、opensmile-source-1.0.1.tar.gz を使った。

インストールする環境は RHEL4 x64_86、CPUはOpteron。
gcc4をrpmで追加インストールしてるのでそちらを使う。gcc3系を使うならCCやCXXの指定は不要。
また、-marchは自分の環境に合わせて使う、わからない場合は-march=nativeなどとする。

tar xvzf opensmile-source-1.0.1.tar.gz
cd opensmile-1.0.1-sourceonly

./autogen.sh
./autogen.sh   # 2回実行する
./configure --prefix=/path/to/opensmile-1.0.1 CC="gcc4" CXX="g++4" CFLAGS="-O2 -mfpmath=sse -march=opteron" -CXXFLAGS="-O2 -mfpmath=sse -march=opteron"

make -j4   # 並列でコンパイルするが、libopensmile あたりでこける。
make
make install

以上で、/path/to/opensmile-1.0.1/bin/SMILExtract というファイルができます。
アーカイブに入っているconfig以下のファイルも使うので忘れずに。

さて、emo_IS09.confで出せる特徴量は論文と書いてあることが微妙に違う。
論文曰く、特徴量の一つにHNRがあるのだが、confはvoicingProbを出力している。等価なの?
そして、変更履歴として残されたであろうソースのコメントにこんなものが。

// NO!!! don't hardcode samplerate! ;-)  double Tsamp = 1.0/44100.0;  // sampling period

えー・・・もうちょっと調べてみないと使えないな・・・
posted by naoh at 18:29| 愛知 ☁| Comment(0) | TrackBack(0) | 技術的ちらしの裏 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/156435777
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。