next up previous contents
Next: 5.2.2 教師信号の作成 Up: 5.2 準備 Previous: 5.2 準備

5.2.1 音符を数値化と量子化するプログラムの作成

まず、音符を数値に変換するプログラムを作成する。音符は、この研究室の先輩である 拓殖氏が作ったテキストファイルを.au形式に変換するaudioというプログラムで 読める形式のもので、長さは全音符から32分音符で、 高さは3オクターブまでである。

音符を高さと長さに分けて、それぞれをニューロンで表すために、0から1の値に 変換することが必要である。 音符の高さの場合3オクターブをそのまま0から1に線形に 割り当てるだけでいいのであるが、音符の長さの場合、短い音符の値が他の 短い音符の値に近くなってしまうので、次のように割り当てる。

   figure272
図 5.1: 音符の長さの変換

equation277

tex2html_wrap1340 は音符の長さ、 tex2html_wrap1341 は変換後の値である。 このようにすると、全音符、2分音符、4分音符、8分音符、16分音符の 間隔が均等になる。

次に、数値をaudioで読める形式の音符に変換するプログラムを作成する。 音符の長さは、間隔が tex2html_wrap1342 になるようになっているので tex2html_wrap1343 から tex2html_wrap1344 までが全音符、 tex2html_wrap1345 から tex2html_wrap1343 までが2分音符というように割り当てる。 音符の高さは、0から1の間に tex2html_wrap1347 段階あるので、間隔は tex2html_wrap1348 である。 このことからわかるように、長さは誤差が tex2html_wrap1349 以上で誤りが生じるのに対して、 高さは誤差が tex2html_wrap1350 以上という小さい値で誤りが生じる。 このことから、長さの方が速く学習できると考えられる。



Deguchi Toshinori
1999年03月23日 (火) 15時43分49秒 JST