研究活動支援対象者の活動レポート

リズム表記の数学的モデルとその自動採譜への応用名古屋大学 大学院情報学研究科 酒井正彦 教授 インタビュー2018年05月25日 取材

自動採譜の精度低下を引き起こすリズムの捉え方を、数学的モデルで改善

酒井教授は、MIDIキーボードで入力した演奏データから、期待したリズムを抽出する(量子化する)プログラムの開発を目指しました。リズムを数学的に扱うモデルをジャックマ研究員とともに設計。その後、それを基に自動採譜プログラムを開発していきました。

酒井:まず、メロディを単旋律に制限しました。実は単旋律に制限した自動採譜ソフトウェアは珍しいといえます。しかし、まだこれだけでは満足できる結果は得られませんでした。次に、休符を音符と同等に扱うと、量子化の精度が著しく低下することが判明したため、休符を取り除くことにしました。音の立ち下がり(鳴り終わった瞬間)を休符の開始とみなして処理するのと比較して、音の立ち上がり(鳴り始めた瞬間)のみを考慮し、次の音まで続くと仮定して量子化した方が、より正確な量子化が期待できました。

さらに酒井教授は、楽譜の構造の複雑さを表現するのに適した、ツリー構造でリズムを表現することにしました。そして、ツリー構造を形成する各要素に、それぞれ重要度を表す重みを付けました。その重みの総和は楽譜の構造の複雑さを表していて、値が小さいほど楽譜の構造は簡単だということがわかります(図1aと図1b)。また、重みにはペナルティーのような意味も含めているそうです。

酒井:本来楽譜のツリー構造が表す音符の位置と、実際に演奏したときの音符の位置にはズレ(距離)が生じます。そのズレの大きさをペナルティーの対象にしています。ツリー構造にはいくつものパターンがあるのですが、ズレの総和が最も少ないツリー構造が、最も適した楽譜ということになります。また、音符のズレによる影響と構造による影響を、同じ重みとして扱うことは難しく、調整が必要でした。そこで、「2つの音符の時間差は、隣の音符が近くにあるほどリズムに対する影響が大きい」。そして、「2つの音符のズレの方向が異なる方が、同方向の場合よりもリズムに対する影響が大きい」と仮定して、より好ましい距離の定義を与えました。

また、当初のプログラムは、数小節の楽曲なら問題なく高速に処理できましたが、曲全体となると処理速度に難があったことから、最初から順に1小節ごとに処理する方法を採用しました。しかし、この方法では曲全体を一度に処理するケースと比較して、解析の精度が落ちてしまったのです。

酒井:その大きな問題となっていたのが、小節の境目に位置する音符を、前後どちらの小節で処理すべきかの判断でした。そこで、先の小節の処理で末尾に近い最大3個までの音符を次の小節に入れ込む、最大4種類の可能性をすべて試し、その評価値の最も良いものを選ぶ方式にしました。

これらの点を考慮して開発したシステム「Squant」は、演奏データ(図1a)に最も適したツリー構造(図1b)を作り、楽譜(図1c)を生成します。一般的な自動採譜ソフトウェア「musescore」とも比較しましたが、J.S.バッハ「ポロネーズ」の一部(図2a)を演奏したデータ(音源1)を自動採譜させた結果、「Squant」のほうが認識精度が高く、原本に近い楽譜を表示できました(図2b、図2c)。

図1a:演奏データ

図1b:図1aから得られるツリー構造。赤字はそれぞれの重み

図1c:Squantで得られる楽譜

図2a:J.S.バッハ「ポロネーズ」の楽譜の一部

音源1:J.S.バッハ「ポロネーズ」を演奏した音源(一部)

図2b:開発したツール「Squant」によって音源1の演奏データを自動採譜した結果

図2c:一般ソフト「musescore」によって音源1の演奏データを自動採譜した結果