「ひろの」の徒然日記帳 [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


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

Windows Insider Program

ひろのです。


引っ越しのバタバタが落ち着いてきたので
久しぶりの記事更新です。子供の日なので鯉のぼりを出したり、柏餅を食べたり、、。
季節を感じながら生活するのもいいですね。


今回はWindows Insider Programに参加してみました。
Microsoft社が提供する Windows10 の機能追加アップデートを通常より
先取りできるプログラムです。

Home page - Windows Insider Program

余っているPCで設定しようと思っていましたが、
引っ越しまではPCが隅に追いやっていました。
引っ越しも完了したので使いやすい位置に配置し、
参加となります。

Microsoftアカウントで普段使うPCと余っていたPCの両方に
Windows10がインストールしてあります。
普段使う方と、余っている方のPCで
各々別々のWindows Insider Program参加設定になる
ので安心して利用できます!

f:id:ino-hiro1012:20160503013859p:plain


設定はSlowやFastといった設定があり、
ちょっと不具合あっても最新機能を利用してみたい。といった場合は
Fastが良いと思います。


Windows Insider Programの参加理由ですが、
通常のWindowsフォームアプリからWindowsユニバーサルアプリへの変換アプリを
Microsoft社が公開した為、利用したいからです。

Desktop conversion for UWP apps - Windows app development

利用のためにはAnniversary Update Previewが必須とのことで、、。
こちらの変換については別途記事にしたいと思います。

サポートOSに以下の記載がありました。

Windows 10 Anniversary Update - Preview (Build 14316 and up) - Enterprise edition

新 iPhone アプリ開発

ひろのです。


引っ越しの片づけがほとんど終わり、使い勝手を良くするための
アイテムを少しずつ揃え始めています。ネット注文が便利ですね。


iPhoneアプリの開発について今更ながら記事にして
進捗を書きながらハマる部分をメモしていこうと思います。

開発は Xamarin で C# の予定です。
WebView にするか悩んでいますが、せっかくなので使わずにいく予定です。

作るもののイメージは出来ているので
設計からですね。

Swagger による APIリファレンス作成

ひろのです。



作りたいと思っていたソフトウェアを他の方が作った際に
あぁ、、、、作っておけばよかったなと思うことが
最近多いです。

思った時には手を動かす癖をつけないといけないとあらためて思いました。


仕事の関係で東京駅周辺をうろうろすることになり、
うろうろしていましたが大きなビルがさらにどんどん建ってきていて
さすが首都。と思いました。
ビル一つ建てるぐらいの大きなことを成していきたいと思いました。

時間は有限。
何を大事にするか、何をやめるかですね。



APIの設計をしていく上で、便利な書き方・ツールはいくつああります。

Swagger を使うことでREST APIのドキュメントが容易に作成できます。

Swagger – The World's Most Popular Framework for APIs.

まだまだ記法に慣れていませんが、モデルファーストを
意識して慣れていきたいと思います。

word2vec のインストールとデモの実行

ひろのです。


引っ越しで2日程記事更新していませんでした。
手続きが多数ありましたが、あと少しです。


word2vecを試してみる際の記事です。
Google社が用意しているライブラリですが、デモもあるので
まずは実行するまでの手順となります。

環境は Mac OS 上の Vagrant に Cent7を入れている環境ですが、
yumwget等、通常のコマンドが動く環境であれば
問題ないと思います。


導入

SVN のインストール

$ yum install –y svn

ソースのダウンロード

$ svn checkout http://word2vec.googlecode.com/svn/trunk/ ディレクトリのパス

make

$ make

動作

デモの実行

$ bash demo-word.sh
$ bash demo-classes.sh
$ bash demo-analogy.sh

デモを動かして見ましたが非力なマシンだと終わるまでに
1日ぐらいかかってしまいます、、。

ユニバーサルアプリ ( Visual Studio )

ひろのです。


ユニバーサルアプリを作成するために
Visual Studioからマルチプラットフォーム用の拡張をインストールしようとしたら
20GB以上のディスクが必要。

さすがにモバイSSDノートだと少しきつくなってきますね。

PCのスペックもそろそろ考えないといけないと思いました。

C# 機械学習( Accord.NET )

ひろのです。


引っ越し前日ということもあり、なかなか忙しくなってきました。



使い慣れたC#での機械学習を調べていたところ Accord.NET というライブラリを
見つけました。

accord-framework.net


Visual Studio の NuGetパッケージの管理からインストールが可能です。


多くのサンプルや機能があるので一通り触ってみてから記事にしたいと思います。