sage/FastICAを使って独立成分分析をする
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2010/03/22からのアクセス回数 &counter;
ここでは、sage上でFastICAを使って独立成分分析をする方法に...
2015/08/09にsklearnとPySoundFileを使用しるように改編しま...
このページのsageノートブックは、以下のURLで見ることができ...
http://www15191ue.sakura.ne.jp:8000/home/pub/21/
** 必要なライブラリ [#p5f4ece3]
残念ながら、sage上にはFastICAのアルゴリズムは実装されてい...
以前は、MDPとAudiolabを使っていましたが、MDPはsklearnに...
Audiolabはサポートされていません。
そこで、Audiolabの代わりに
[[PySoundFile>https://github.com/bastibe/PySoundFile]]
をインストールします。
- PySoundFile: Audiolabと同様にlibsndfileを使ってオーディ...
*** audiolabのインストール [#c104b11f]
audiolabは、 libsndfileを内部で使用しており、 他のライブ...
以下のようにインストールしました。
- MacPortを使ってaudiolabをインストールします
#pre{{
$ sudo port install py26-scikits-audiolab
}}
内部でgcc version4をインストールするので、結構時間がかか...
- PySoundFileのインストール
PySoundFileは、 libsndfileとlibffiを内部で使用しており、 ...
以下のようにインストールしました。
- CentOSでのインストール
#pre{{
$ sudo yum install libsndfile libffi-devel
}}
- sageのpythonを使ってインストールします
#pre{{
$ sage -sh
(sage-sh) $ easy_install cffi
(sage-sh) $ easy_install pysoundfile
}}
** 簡単な例題を解く [#t9f7eb6c]
[[A simple FastICA example>http://www.endolith.com/wordpr...
の例題に沿ってsage上で独立成分分析(ICA)を試してみましょ...
例では、2つのモノラル信号を配合を少し変えて混合した音源を...
を入力とします。
[[2つの信号を混合した音(右クリックでファイルをダウンロー...
*** 必要なインポート [#ja2bb28c]
必要なインポート文は、以下の通りです。
sageへの入力:
#pre{{
# 必要なインポート
# FastICAのパッケージ先が変更になった
# from mdp import fastica
from sklearn.decomposition import FastICA
# scikits.audiolabは、メンテナンスされなくなったので、PyS...
import soundfile as sf
from numpy import abs, max
}}
*** オーディオファイルの読み込み [#vd635083]
WAVファイルの読み込み関数wavreadを使ってオーディオファイ...
2個の配列に取り込みます。
sageへの入力:
#pre{{
# 2つの信号を混合したWavファイルを読み込む
# recording, fs, enc = wavread(DATA + 'mixed.wav')
recording, fs = sf.read(DATA + 'mixed.wav')
}}
*** ICAを解く [#bdcc9bcc]
fastica関数を使って2個の音源を分離します。
sageへの入力:
#pre{{
# 左右2チャンネルの信号に対して、FastICAを適用する
decomposer = FastICA(n_components=2)
decomposer.fit(recording)
sources = decomposer.transform(recording)
# 出力レベルを1にノーマライズする
sources /= max(abs(sources), axis = 0)
}}
*** オーディオファイルへの書き込み [#h684e398]
抽出された2個の音源を左右の音に持つオーディオファイルを作...
sageへの入力:
#pre{{
sf.write(sources, DATA + 'source.wav', samplerate=fs)
}}
*** 結果ファイルの確認方法 [#qa37b265]
残念ながらsageで直接オーディオファイルを再生することがで...
以下のようにファイルをダウンロードして再生してください。
sageへの入力:
#pre{{
# 結果を確認する方法
html('<a href="source.wav">結果(右クリックでファイルをダ...
}}
[[結果(右クリックでファイルをダウンロードして再生してく...
** コメント [#g867fa73]
#vote(おもしろかった[12],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
- ライブラリを刷新しました。 -- [[竹本 浩]] &new{2015-08...
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2010/03/22からのアクセス回数 &counter;
ここでは、sage上でFastICAを使って独立成分分析をする方法に...
2015/08/09にsklearnとPySoundFileを使用しるように改編しま...
このページのsageノートブックは、以下のURLで見ることができ...
http://www15191ue.sakura.ne.jp:8000/home/pub/21/
** 必要なライブラリ [#p5f4ece3]
残念ながら、sage上にはFastICAのアルゴリズムは実装されてい...
以前は、MDPとAudiolabを使っていましたが、MDPはsklearnに...
Audiolabはサポートされていません。
そこで、Audiolabの代わりに
[[PySoundFile>https://github.com/bastibe/PySoundFile]]
をインストールします。
- PySoundFile: Audiolabと同様にlibsndfileを使ってオーディ...
*** audiolabのインストール [#c104b11f]
audiolabは、 libsndfileを内部で使用しており、 他のライブ...
以下のようにインストールしました。
- MacPortを使ってaudiolabをインストールします
#pre{{
$ sudo port install py26-scikits-audiolab
}}
内部でgcc version4をインストールするので、結構時間がかか...
- PySoundFileのインストール
PySoundFileは、 libsndfileとlibffiを内部で使用しており、 ...
以下のようにインストールしました。
- CentOSでのインストール
#pre{{
$ sudo yum install libsndfile libffi-devel
}}
- sageのpythonを使ってインストールします
#pre{{
$ sage -sh
(sage-sh) $ easy_install cffi
(sage-sh) $ easy_install pysoundfile
}}
** 簡単な例題を解く [#t9f7eb6c]
[[A simple FastICA example>http://www.endolith.com/wordpr...
の例題に沿ってsage上で独立成分分析(ICA)を試してみましょ...
例では、2つのモノラル信号を配合を少し変えて混合した音源を...
を入力とします。
[[2つの信号を混合した音(右クリックでファイルをダウンロー...
*** 必要なインポート [#ja2bb28c]
必要なインポート文は、以下の通りです。
sageへの入力:
#pre{{
# 必要なインポート
# FastICAのパッケージ先が変更になった
# from mdp import fastica
from sklearn.decomposition import FastICA
# scikits.audiolabは、メンテナンスされなくなったので、PyS...
import soundfile as sf
from numpy import abs, max
}}
*** オーディオファイルの読み込み [#vd635083]
WAVファイルの読み込み関数wavreadを使ってオーディオファイ...
2個の配列に取り込みます。
sageへの入力:
#pre{{
# 2つの信号を混合したWavファイルを読み込む
# recording, fs, enc = wavread(DATA + 'mixed.wav')
recording, fs = sf.read(DATA + 'mixed.wav')
}}
*** ICAを解く [#bdcc9bcc]
fastica関数を使って2個の音源を分離します。
sageへの入力:
#pre{{
# 左右2チャンネルの信号に対して、FastICAを適用する
decomposer = FastICA(n_components=2)
decomposer.fit(recording)
sources = decomposer.transform(recording)
# 出力レベルを1にノーマライズする
sources /= max(abs(sources), axis = 0)
}}
*** オーディオファイルへの書き込み [#h684e398]
抽出された2個の音源を左右の音に持つオーディオファイルを作...
sageへの入力:
#pre{{
sf.write(sources, DATA + 'source.wav', samplerate=fs)
}}
*** 結果ファイルの確認方法 [#qa37b265]
残念ながらsageで直接オーディオファイルを再生することがで...
以下のようにファイルをダウンロードして再生してください。
sageへの入力:
#pre{{
# 結果を確認する方法
html('<a href="source.wav">結果(右クリックでファイルをダ...
}}
[[結果(右クリックでファイルをダウンロードして再生してく...
** コメント [#g867fa73]
#vote(おもしろかった[12],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
- ライブラリを刷新しました。 -- [[竹本 浩]] &new{2015-08...
#comment_kcaptcha
ページ名:
SmartDoc