読者です 読者をやめる 読者になる 読者になる

狸系の里 シーズン2

はじめの一歩、二歩、散歩・・

信号処理プログラムの作り方

実線

千里の道も一歩から・・ともかく歩き始める。

 

音楽に限らず音を分析しようと思うと、音響信号を分析処理するプログラムを書く所から始まる。これにはいくつかの選択肢があり、それぞれの特徴を考えながら使い分ける事になる。

分析方法を選ぶ基準の例:

□音の信号は一チャンネルに収まっている/複数チャネルに分かれている

複数個の音源から一つの目標を選んで分析する場合には、複数チャネルに分けて録音してあると助かることがある。ほぼ目標だけが録音してあるチャネルを選ぶ。

□目標以外の音の混入レベル

目標とする音を充分近い位置に置いたマイクから記録出来ていれば、目標以外の音があっても困らない場合がある。

□必要とする精度

音の高さ、音色*1について、要請される精度を分析方法が達成できるか。フレーム単位の精度が必要なのか、複数フレームで一つのパターンが出来ていてこのパターンを捉える事が必要なのか。

 

もう一つ、信号処理プログラムを作る上ではプログラム言語という話が出てくる。音楽分析のような目的には、一定の性能を長期に渡って維持するという期待感がある。最近のプログラム言語の利用目的は、情報機器が提供するサービスの実装という面があり、サービスのバラエティが変わり易いことを反映して、プログラム言語の定義も短命になっている。これは、長期に渡る安定した性能という期待とは反する。

そんなこともあって、プログラム言語を支えるライブラリを、必要なところだけ選んで使う、という機能には一時関心をもったのだったが、プログラムは仕様でありハードウェアが実装である、みたいなスタイルが可能ならそちらの方があっているのかもしれない。ここで、前者を選ぶならJava、後者を選ぶならC*2ということになる。

 

まあ後の方の話などは、無事にプログラム作りを進める事が出来て、かなりコードが溜まって来た時に考えればいい話ではある。一直線に目標に辿りつく道などないので、最初はいろいろ試すことになる。このタイミングでは、思案するより進んでみることが大切。 (^^)/

*1:母音同士、子音同士をどこまで精密に区別すべきか

*2:SystemCというLSI仕様記述言語がある。