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などとする。
以上で、/path/to/opensmile-1.0.1/bin/SMILExtract というファイルができます。
アーカイブに入っているconfig以下のファイルも使うので忘れずに。
さて、emo_IS09.confで出せる特徴量は論文と書いてあることが微妙に違う。
論文曰く、特徴量の一つにHNRがあるのだが、confはvoicingProbを出力している。等価なの?
そして、変更履歴として残されたであろうソースのコメントにこんなものが。
えー・・・もうちょっと調べてみないと使えないな・・・
そこで、使われているのが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
えー・・・もうちょっと調べてみないと使えないな・・・
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/156435777
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.seesaa.jp/tb/156435777
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック