2022年4月6日水曜日

京都大学の耳コピAIについて少しだけ調べてみた

今朝配信した小さな小さな賢将の記事で少し触れた、京都大学で研究中の耳コピAIの研究内容について、少し興味があるので論文の概要だけ読んでみました。(本当は本編も読みたいのですが有料だし難しそうなのでちょっと迷っています...)

機械的に耳コピする場合、単音であれば音の周波数から音程を割り出すことが単純なプログラムで実現できます。しかし、だいたいの音楽は同時に複数の音が鳴っている(ポリフォニックな)状態なので、個々の音符の音程を機械的に割り出すこと(マルチピッチ検出)は容易ではありません。

複数の音を同時に鳴らすと、個々の波形のパルス符号を加算する形で合成された波形が最終的な波形の形状になります。

従来は、その合成波形をスペクトログラム因数分解で単音毎の波形に分離して解析するアプローチで、マルチピッチ検出を行う方式が一般的でした。

deCoda という耳コピ支援ツールがあり体験版を使ったことがありますが、これは恐らくスペクトログラム因数分解で波形分解しているものと思われます。体験版を使ってみた限り、肝心な音が込み入った複雑な部分とかは精度がイマイチ(音がクリアな部分ならDAWで原曲と合わせてピアノを弾きながらアナログ採譜した方が早いかも?)という印象です。VariSpeed等でピッチを変えずにスロー化した波形なら結構実用的かもしれませんが、それも結構手間が掛かるので「実用的か?」と考えると少し微妙なので製品版を買おうか悩み中です。(そんなに高いものではないですが)

ですが、この研究では、

  • DNN(ディープニューラルネットワーク)によるマルチピッチ検出
  • 統計モデルによるリズム量子化

の組み合わせにより、音声から正確な楽譜を起こすことを試みているようです。

DNNとは、多層ニューラルネットワークを用いた深層学習(ディープラーニング)の一種です。ニューラルネットワークとは、直訳すると「神経網」で、脳の神経回路の一部を模した数理モデルです。

余談ですが、今よく話題に挙がるAIは基本的にDNNが中心だと思われますが、個人的に「ニューラルネットワーク」のネーミングが原因で、「AIができること」について色々と変なミスリードが発生してしまっているような気がしないでもないです^^;(残念ながらドラ○もんを作るにはDNNとは別軸の深層学習が必要な気がします)

DNNを使うことで具体的に出来る事は「手作業による特徴抽出の自動化」です。例えば、スマホのカメラで写真の中から人物の顔だけ特定して矩形で囲ったりするヤツ(画像認識)とかがわかり易い例だと思います。

耳コピは「複数の音が混じっている中から個別の音を抽出する作業」なので、DNNとすごく相性が良さそうだから、AIによる完全自動化が可能だと考えられます。

論文によると、テンポスケール、拍子、小節線位置などの自動検出は誤検出が多かったものの、音符の採譜についてはかなり確度が高かったとのことです。つまり、リズム量子化の精度がイマイチだったものの、DNNによるマルチピッチ検出は精度が良かったとのことです。そこで、音楽知識から得られるピッチとリズムの非局所的統計量を定式化して、これらの大域的特徴の推定に及ぼす効果を検討してみたところ、リズム量子化についてもかなり改善されたとのことです。

つまり、この論文の研究テーマはリズム量子化がメインっぽいですね。

東方VGSの場合、音だけ拾えれば良くて完璧な楽譜は必要無い(編曲もするから結局楽譜も起こし直す)ので、マルチピッチ検出でピアノロールを生成できるようになるだけでも十分実用的なので未来が待ち遠しいですw(時間があればTensorFlowとか使って自力で作れたりするかも?)

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...