音楽の研究のほうが進みつつある話
DICOMOの論文を締め切り1時間遅れで提出しました.フォント関連のエラー出まくっててつらかった…….フォントの設定だけで1時間ぐらいかけて提出に間に合わなかったけれども,投稿システムがシャットダウンされてなかったのでこっそり投稿しました.助かる.
先週ぐらいからより,音楽の方の研究を進めていました.DICOMOの論文も音楽の研究をやっていたので,先週頭ぐらいから実装と論文と実験を並行作業していてやばかった.風邪引いて全然進んでなかったのでしょうがない.
DICOMOで提案した手法は,実験した結果,倍音成分が山ほどあると間違えて検出されるダメダメ手法でした.これは低フレット,巻き弦ほど倍音が豊かになるのでしょうがない.一方で,高フレットになるにつれ,精度が高くなる方法でした.わーい.
DICOMOの論文が終わってから研究を少し進めて,今度は手法に依存せず,うまいこと認識してくれる手法ないかなとか思って,ニューラルネットワークに手を出してみました.識別器を作って幾つか連結させてテストしてみたところ,倍音成分が少ないと今度は認識しないダメ手法でした.
ただ,低フレットであれば和音もはっきり認識できる.この方法はDICOMOの手法と比べると万能だけれども,高フレットに弱いという致命的な欠点が浮き彫りになりました.
そうなると,脱構築ではありませんが,お互いの欠点を長所で補うようなシステムを作れば,かなりいい感じのピッチ検出アルゴリズムを作れるんじゃないかなと思うわけですね.やったー.
和音もうまくやればこの段階で認識できるとは思うのですが,今の識別器をどうやって高フレットで認識させるのかという課題がちょっとクリアできないです.例えば,良いギターほど枯れるといいますが,枯れたギターの倍音成分は少なめだったりするので,これ以上やられるとニューラルネットワークを使っている手法は対抗できないわけですね.
さて,ここまで来てSVMをやるかやらないか難しい話なんですが,SVMは少なくとも事前に学習しているからこそ強い手法なのですが,いかんせん学習のステップを踏むには,ギターという機械は複雑過ぎると思います.
ギターも個体によって倍音があったりなかったり,弾き方やセレクターの位置,ピックアップの高さなどなどでも,音がかなり変化してしまいます.例えば,1音1音学習させれば,どのフレットで弾いたのかまで詳細に取れるのかもしれませんが,本当にそういうことをやるとなると,他の人の他の楽器で扱うのに不便が生じると思うわけですね.
オンライン上で楽器の個性とか特性とか集めながら,分類器を作る方法ならば,ワンチャンなきにしもあらずな感じなのですが,これだけで普通に博論書けるような気がするので若干,パスしたい感じはあります.個人的に時間が無制限に存在すれば手を出してみたい感はありますが…….
何はともあれ,研究の目的はリアルタイムに鳴っている音を識別することなので,機械学習とはどのようにうまいこと付き合っていくかが非常に重要だなと思います.機械学習はリアルタイムにできる向けのものが少ないので…….