情報玉手箱

  • ホーム
  • 特集
    • AIとどう付き合っていますか
    • 非機械学習AI –論理によるAI–
    • 知能システム学の博士論文
    • 高校生,あるいは高校生の心をもった人へのメッセージ
    • サイエンス・ウィズ・情報
    • 弱きを助ける情報学
    • 情報システム学とセキュリティ
    • 情報学の研究者たちの喜怒哀楽
    • 最適化技術の応用・実践
    • 見えない現象を見える化する
    • 身体の情報処理がこころをつくる
    • 情報学と名大スパコン不老
    • 情報学と自然言語処理
    • 新型コロナと情報
  • 情報玉手箱とは
  • Menu

  • Sidebar

  • Prev

  • Next

  • Search

  1. ホーム>
  2. 情報システム学専攻

MIDIからの自動採譜 ー リズム木とトークンによるリズム解析 ー

酒井 正彦(情報システム学専攻)

数年前、音楽情報処理の研究を始めた。ヤマハ音楽振興会の研究助成に採択されたのがことの始まりとも言える。 音楽情報処理といえば、いわゆるAI花盛りだ。 それまで項書換え系という、プログラムの本質を議論するための数学的なちょっとお硬い理論と格闘していたことから考えると大転換に見えるかもしれないが、そうでもない。 いまからMIDIという電子的な演奏データからの自動採譜について説明していきたいと思う。

自動採譜

自動採譜は、コンサート等の録音データからMIDIデータへの変換と、さらにそれを電子楽譜に変換する2段階の変換(図1)からなっている。ここでは後者の処理を機械学習に頼らない方法で扱うのだが、そうした理由は、楽譜には決まりごとがたくさんあることによる。 実際、写真2の本には、676ページも使って楽譜の決まりごとが書かれている。 決まり事を理論化してプログラムに組み入れていくことは大変だけれど、段階的に決まり事を組み入れていくことで改良することが可能だ。 現状の機械学習の場合、たくさんの決まりごとを一気に学習するというのが困難なのだけれど、だからといってそれまでの精度を保ちつつ、少しづつ学ぶ事柄を追加して改良していくのも実はあまり得意ではないらしいのだ。

これに対して前者の変換の場合、MIDIデータは音の鳴りはじめのイベント(時刻、高さ、強さ)と鳴り終わりのイベント(時刻、高さ)という2種類のイベントの系列だ。前者の変換の出力であるMIDIデータには、このように単純な約束しかないため、機械学習向きとも言える。実際、フーリエ変換などによる音響信号解析で得たデータを、機械学習を利用した手法でMIDIに変換するやり方はかなりうまくいっているらしい。

図1: 自動採譜
写真2:楽譜のお約束事が書かれている本

MIDIからの自動採譜

MIDIからの自動採譜における課題は、テンポ推定、調推定、リズム量子化、声部分離、記譜など山ほどあるのだが、今我々が取り組んでいるのは主に「リズム量子化」。先程も出てきたけれど、入力のMIDIデータでは音の鳴り始め(ノートON)や鳴り終わり(ノートOFF)の時刻は楽譜とは微妙にズレていて楽譜で表せない。そこで、それらの時刻を楽譜が表現できる時刻に修正するのがリズム量子化だ。図3(a)の楽譜を大学院生の天春さんにMIDIキーボードで演奏してもらい、そのMIDIデータをピアノロールで示したのが図3(b)だ。ここでピアノロールとは、縦軸が音の高さで横軸が時間として、キーが押されていることをバーで表したものだ。このデータをMIDIプレーヤーで音を鳴らしてみると実に自然に聞こえるのだが、そのピアノロールを見てみると極端に短い音があってびっくりする。それが理由ではないだろうが、これまでの方法はどれもノートONイベントのみを使ってリズム量子化を行っているようだ。この方法が良い一つの点は、ノートONイベントと楽譜中の音符(おたまじゃくし)とが一対一対応することにある。その一方、ノートOFF情報を使わないため休符や装飾音符の扱いが難しいとか、いろいろな問題点もあるのだ。

(a) 楽譜
(b) 天春さんの演奏のピアノロール
図3 Sonate für Klavier Nr.11 A dur K.331 Thema Andante Grazioso (Mozart)

トークンの導入

ノートOFF情報も用いる場合には、楽譜の音符の時刻に複数のMIDIのイベント(トークン)を対応させることになる。このことは「ひらがな」の分かち書きと似ている。例えば、つぎの文章の解析を考えてみよう。
  ここではきものをぬいでください
この文章は次に示すような2通りの分かち書きが存在する。ここで、縦棒を区切りに使っている。また、助詞とか細かい話は考えないことにする。

  1. ここで|はきものを|ぬいで|ください (ここで履物を脱いで下さい)
  2. ここでは|きものを|ぬいで|ください (ここでは着物を脱いで下さい)

自然言語解析の場合には、これら2つの分かち書きのうち、前後の文脈に応じて適切な方を選択することになる。MIDIイベントと対応させて考えると、一つの「ひらがな」文字が一つのMIDIイベント(ノートONあるいはノートOFF)に対応し、分割された「ここで」などのひらがな文字の系列がトークンに対応する。

図4の具体例を見てみよう。(b)は(a)の楽譜を演奏して得られた10個のMIDIイベントを表している。この図の記法はピアノロールとほとんど同じだが、MIDIイベントを強調して、ノートONを黒丸でノートOFFを白抜きの丸で表している。(c)は(a)からノートONだけを残したもので、ここから楽譜を起こすと多くの場合は(d)のようになってしまうだろう。

図4:採譜の例

図5の(a)から(h)は異なる分かち書きを表している。これらの図において青い四角が1つのトークンを表しており、1つのトークンに含まれるMIDIイベントは後の処理において同一の時刻に移動されることになる。例えば(a)では4つのトークンに分けられていてそれぞれのトークンを適切な時刻に移動させることによって意図した楽譜(a)’を得ることができる。ここで、3つ目のトークンにおいてはミの音がノートONと同時にノートOFFされている。実は面白いことに装飾音符というのは、理論的には鳴っている長さがない音であると定義されている。

図5:異なるトークン化による採譜結果の違い

リズム木とリズム解析

図5(a)から(h)で示したような分かち書きのうち、どれを採用するのか、また、先程「1つのトークンに含まれるMIDIイベントは後の処理において同一の時刻に移動される」と書いたのだが、それはどのように決めるのだろうか。ここからはこの話題に移ろう。

図4(b)のリズム木は図6のようになる。一番上のdiv2は該当の小節全体(つまり4拍)を表していて、下に2本枝分かれすることでその4拍を半分に分けている。このようにして、一番下に並んでいるc0,2, pc, c1,2, rの4つはそれぞれ1拍の長さに決まるわけだ。ここでc0,2, pc, c1,2, rは(あまり気にする必要はないが)、それぞれ順に、2音のコード(Note)、部分的な継続(Partial Continuation)、と装飾音符(Grace Note)付きのコード、休符(Rest)を表している。

図6:図4(b)のリズム木

この木を図5(a)の最初の3つのトークンに対応させることで、それぞれのトークンに含まれるMIDIイベントがしかるべき時刻に移動する。このときの移動距離の総和が演奏の誤差と考えることができる。もちろん3つのトークンに対応するリズム木は他にもあるわけだが、それらの内で誤差の少ないものが良さそうに思える。それはある意味正しいのだけれど、それを徹底すると非常に細かい音符、例えば32分音符などが出てくるような不自然なリズムが得られてしまい、このときのリズム木は複雑なものになる。結局、誤差とリズム木の複雑さの両方を考えたうえで、最も良さそうなリズム木を探すことになる。さらに、いくつもの分かち書きが可能なので、これらのすべての組み合わせの中から最適なリズム木を発見するという作業を行うことになるが、動的探索と呼ばれるアルゴリズムを利用することで割と効率的に行うことができる。

図7の楽譜は図3(b)の演奏MIDIから、現時点で開発途中のシステムを使って量子化して得られた情報を楽譜化したものだ。今ひとつという感はあるが、原因はわかっているので今後対処する。この演奏だけ直っても仕方ないけれど。

図7:開発中のシステムによる自動採譜結果

ちなみにMuseScore(ver.4)で同じことを行うと図8の楽譜のようになった。このソフトはすぐれものなのにもかかわらず、小節がずれてしまった。与えたMIDIファイルの情報におかしなところがあるのかと思って、時間をかけていろいろと頑張ってみたのだけれど、結局解決できなかった。まあ、演奏の楽譜化は難しいということにしておこう。(おい、それでいいのか。。。)

図8:MuseScore ver.4 による自動採譜結果

おわりに

MIDIからリズムを取り出す方法についてざっくりと説明してみたのだけれど、その背後には割ときれいな論理の世界が広がっているように見えないだろうか? 大げさな気もするけれど。

2023年10月26日情報システム学専攻非機械学習AI, 情報システム学専攻

Posted by 酒井 正彦

テレビ愛知「5時スタ」で「次期愛知県観光振興基本計画検討委員会」の観光戦略に対する意見交換の様子が紹介されました(社会情報学専攻 浦田 真由 准教授)
Next
第15回データ工学と情報マネジメントに関するフォーラムより優秀論文賞を受賞しました。(知能システム学専攻 西村 学 M修了・知能システム学専攻 杉浦 健人 助教・知能システム学専攻 石川 佳治 教授)
Prev

関連記事

No Image

名古屋大学情報基盤センタースーパーコンピュータシステム「不老」について

名古屋大学情報基盤センター センター長名古屋大学大学院情報学研究科知能システム学 ...

No Image

Model Counting Competition 2022よりModel Counting Competition 2022 Projected Model Counting 部門及び Projected Weighted Model Counting 部門 第1位を受賞しました。(情報システム学専攻 橋本健二 助教・情報システム学専攻 葉翔太 M2)

No Image

教員紹介:吉田 則裕(よしだ のりひろ)

プロフィール 名古屋大学 大学院情報学研究科 附属組込みシステム研究センター 准 ...

No Image

スーパーコンピュータ「不老」とGPUスパコン

 スーパーコンピュータ「不老」(以下、「不老」)は主に4つの主要な計算サブシステ ...

No Image

XCSP3 Competition 2022よりXCSP3 Competition 2022 Main CSP 部門 第2位を受賞しました。(情報システム学専攻 番原睦則 教授)

タグ

アルゴリズム イベント案内・報告 グローバルメディア研究センター ゲノム コンピュータ科学科 プログラム検証 プログラム逆化 メタヒューリスティクス 人間・社会情報学科 仮想生物 価値創造研究センター 可逆計算 学会発表 心理・認知科学専攻 心理・認知科学系 情報システム学専攻 情報システム系 教員紹介 数理情報学専攻 数理情報系 海外派遣助成 海外渡航 生物リズム 知能システム学専攻 知能システム系 研究グループ紹介 社会情報学専攻 社会情報系 組合せ最適化 組込みシステム研究センター 自然情報学科 著作物紹介 複雑システム系 複雑系科学 複雑系科学専攻 複雑系計算論 複雑系計算論講座 触覚のVR 触覚センサ 触覚ロボット 計算モデル 認知科学 進化 項書換え系 鳥の歌

Copyright © 2025 情報玉手箱 All Rights Reserved.

WordPress Luxeritas Theme is provided by "Thought is free".

PAGE TOP