ここでは、sage上でFastICAを使って独立成分分析をする方法に説明します。 2015/08/09にsklearnとPySoundFileを使用しるように改編しました。
残念ながら、sage上にはFastICAのアルゴリズムは実装されていません。 以前は、MDPとAudiolabを使っていましたが、MDPはsklearnに吸収され、 Audiolabはサポートされていません。 そこで、Audiolabの代わりにPySoundFileをインストールします。
PySoundFileは、 libsndfileとlibffiを内部で使用しており、 他のライブラリも必要とするため、 以下のようにインストールしました。
$ sudo yum install libsndfile libffi-devel
$ sage -sh (sage-sh) $ easy_install cffi (sage-sh) $ easy_install pysoundfile
A simple FastICA example の例題に沿ってsage上で独立成分分析(ICA)を試してみましょう。
例では、2つのモノラル信号を配合を少し変えて混合した音源を2個、左右の音に録音したWavファイル を入力とします。
2つの信号を混合した音(右クリックでファイルをダウンロードして再生してください)
必要なインポート文は、以下の通りです。
|
|
WAVファイルの読み込み関数wavreadを使ってオーディオファイルの音源を 2個の配列に取り込みます。
|
fastica関数を使って2個の音源を分離します。
|
抽出された2個の音源を左右の音に持つオーディオファイルを作成します。
|
残念ながらsageで直接オーディオファイルを再生することができないため、 以下のようにファイルをダウンロードして再生してください。
|