| Download
All published worksheets from http://sagenb.org
Project: sagenb.org published worksheets
Views: 168731Image: ubuntu2004
()
audiolabの最新ソースをダウンロードを
ここ
からダウンロードし、~/localにて解凍します
MacPortのライブラリを使うように、site.cfgを以下のように作成します
sageのpythonを使ってインストールします
FastICAを使って独立成分分析をする
ここでは、sage上でFastICAを使って独立成分分析をする方法に説明します。
必要なライブラリ
残念ながら、sage上にはFastICAのアルゴリズムは実装されていません。 そこで、以下のpythonライブラリをインストールします。
- MDP: pythonでFastICAを実装したライブラリ
- Audiolab: pythonでオーディオファイルを扱うためのライブラリ
MDPのインストール
MDPのインストール手順を説明します。
- http://sourceforge.net/projects/mdp-toolkit/files/から最新のソースをダウンロードします
- ダウンロードしたファイルを適当な場所(ここでは~/local)で解凍します
$ cd ~/local/mdp-2.5 $ ~/local/sage/local/bin/python setup.py install
audiolabのインストール
audiolabは、 libsndfileを内部で使用しており、 他のライブラリも必要とするため、 以下のようにインストールしました。
- MacPortを使ってaudiolabをインストールします
$ sudo port install py26-scikits-audiolab内部でgcc version4をインストールするので、結構時間がかかります。
include_dirs = /opt/local/include library_dirs = /opt/local/lib libraries = sndfile,vorbis,vorbisenc,FLAC,ogg
$ cd ~/local/scikits.audiolab-0.10.2 $ ~/local/sage/local/bin/python setup.py install
簡単な例題を解く
A simple FastICA example の例題に沿ってsage上で独立成分分析(ICA)を試してみましょう。
例では、2つのモノラル信号を配合を少し変えて混合した音源を2個、左右の音に録音したWavファイル を入力とします。
2つの信号を混合した音(右クリックでファイルをダウンロードして再生してください)
必要なインポート
必要なインポート文は、以下の通りです。
オーディオファイルの読み込み
WAVファイルの読み込み関数wavreadを使ってオーディオファイルの音源を 2個の配列に取り込みます。
ICAを解く
fastica関数を使って2個の音源を分離します。
オーディオファイルへの書き込み
抽出された2個の音源を左右の音に持つオーディオファイルを作成します。
結果ファイルの確認方法
残念ながらsageで直接オーディオファイルを再生することができないため、 以下のようにファイルをダウンロードして再生してください。