「ひろの」の徒然日記帳 [IT tools, programming, software and more...]

プログラミング、ITツール、人工知能等興味のあることを徒然と書きます。Microsoft、C#が好きです

音声信号処理ライブラリ Essentia の導入(Mac OS X編)

ひろのです。

ゴールデンウィークも終わり、海の日まで祝日がない仕事日和です。
休み過ぎも調子が狂うので仕事してペースを取り返していきたいと思います。



今回は音声信号処理ライブラリ Essentia の導入についてです。
音響解析ともいえると思います。
楽曲や特定の音源についてテンポ等、
複数の数値を取得するために解析するライブラリとなります。

ESSENTIA | Open-source C++ library for audio analysis and audio-based music information retrieval

C++Pythonにて動作します。
今回はMac OS上で動作させますが、LinuxWindowsでも動作する模様です。
Github にてソースやサンプル、音源等が公開されています。
github.com


構築環境

構築した環境は以下のとおりです。

項目 バージョン
ホストOS Mac OS X El Capitan 10.11.4
Essentia 2.1beta2 / 2.01(サンプル音源のみ)

1. Essentiaのインストール

home brew で導入出来ます。簡単です。

コマンド 備考
brew tap MTG/essentia  
brew install essentia --HEAD インストールします

2. Essentiaのビルド

Python版とC++版両方ビルドします。

コマンド 備考
xcode-select --install xcodeコマンドラインツールを導入。場合によりGUIでインストールします。
export PATH=/usr/local/bin:/usr/local/sbin:$PATH を~/.profileファイルに記入しておきます。 
brew install pkg-config gcc readline sqlite gdbm freetype libpng  
brew install libyaml fftw ffmpeg libsamplerate libtag  
brew install python --framework  
sudo easy_install pip pipを入れます
sudo easy_install nose numpy  
Git( https://github.com/MTG/essentia )からEssentiaをダウンロード ※master(2.1beta2) と、2.01安定版のtests/audioディレクトリだけコピーしてくる。  
./waf configure --mode=release --build-static --with-python --with-cpptests --with-examples --with-vamp 設定保存
./waf ビルド
./waf install インストール
./waf run_tests C++版テスト
./waf run_python_tests Python版テスト


環境によっては./waf configure で pkg-configが利用出来ないといったエラーになる
場合があります。homebrewのインストール先の関係となりますが、
sudo chown -R $USER /usr/local
brew link pkg-conifg
brew link freetype
等で利用可能になると思います。

3. Essentia サンプル動作

コマンド 備考
/build/src/examples に各種実行形式のファイルがある。 C++
./build/pythonチュートリアル(python版)のソースをコピーして実行。 Python


解析結果の対象が幅広く、これから何が取得出来るのか
少しずつ試してみるところです。