Sageを使って音声データのLとRの信号の内積を取りたいとのご質問がありましたので、 ここで説明します。
音声データの処理は、Sageがpythonベースなので、pythonのscikits.audiolabを使って Wavファイルから取り出します。
必要なインポート文は、以下の通りです。
/usr/local/sage-6.0/local/lib/python2.7/site-packages/scikits.audiolab-0\ .11.0-py2.7-linux-x86_64.egg/scikits/audiolab/soundio/play.py:48: UserWarning: Could not import alsa backend; most probably, you did not have alsa headers when building audiolab warnings.warn("Could not import alsa backend; most probably, " /usr/local/sage-6.0/local/lib/python2.7/site-packages/scikits.audiolab-0.11.0-py2.7-linux-x86_64.egg/scikits/audiolab/soundio/play.py:48: UserWarning: Could not import alsa backend; most probably, you did not have alsa headers when building audiolab warnings.warn("Could not import alsa backend; most probably, " |
WAVファイルの読み込み関数wavreadを使ってオーディオファイルの音源を 2個の配列に取り込みます。
|
Wavファイル(mixed.wav)がrecording変数にセットされますので、 これを使ってRとLの信号のvectorを作ります。
最初にrecordingのサイズと型を調べます。
882000 882000 |
<type 'numpy.ndarray'> <type 'numpy.ndarray'> |
recordingがnumpyの配列であることがわかりましたので、次数を求めます。
(882000, 2) (882000, 2) |
Pythnのnumpyの88200 x 2の配列であることが分かりましたので、 この値からSageのvectorを生成して、内積を求めます。
|
27933.0420707 27933.0420707 |
|