Vol.2017-MUS-114 No.21
2017/2/27

情報処理学会研究報告
IPSJ SIG Technical Report

楽譜簡略化と自動補完伴奏によるピアノ演奏練習支援システム
福田 翼1,a)中村 栄太1,b)

糸山 克寿1,c)

吉井 和佳1,d)

概要：本稿では，楽譜簡略化と自動補完伴奏によるピアノ演奏練習支援システムについて報告する．近年，楽器演奏の支援を行うアプリケーションの開発が活発になってきており，特にユーザひとりひとりにパーソナライズされたものが求められてきている．本システムでは， あらかじめ手本となる楽譜を与えてユーザの演奏ミスのデータを蓄積することで，ユーザが苦手とする楽譜の傾向を判断する．該当箇所の楽譜をユーザの演奏レベルに合わせて簡略化を行うことによって，ユーザの好みの楽曲を自分の実力に合った難易度の楽譜として練習することを可能とする．さらに，簡略化によって削除された音をシステムに自動伴奏させることによって，簡略化後の楽譜が不自然なものになったとしても，奏者に違和感を感じさせることのないようにする．また，ユーザの演奏ミスのデータを蓄積することができるため，そのデータと楽譜の特徴量を合わせたデータを訓練サンプルとすることで，学習モデルを得ることができる．こうして得られたモデルに楽譜の特徴量を与えることで，対象ユーザがその楽譜に対して演奏ミスしやすい箇所を予測し，ユーザが一度も演奏したことがない楽曲に対しても，そのユーザに合わせて楽譜の簡略化を行うことができる．

1. はじめにと演奏のデータを比較することでユーザの演奏ミスを抽出し蓄積する．このデータを元にしてユーザが苦手と思われ楽器の中でもピアノは特に演奏人口が多く，奏者の演奏るパートを判断し該当箇所の簡略化を行うことで，楽譜をレベルも非常に幅広いことが知られている．その中でも，ユーザの演奏レベルに合ったものにすることができ，ユーある程度演奏ができる中級者は自分の好きな楽曲で練習すザの得手不得手に細かく対応した演奏練習を実現することる傾向がある．これは更なる上達へのモチベーションとなができる．また，著者らが過去に開発したシステム [3] でるが，一方でそのような楽譜は演奏難度が高いことが多い挙げられた，簡略化後の演奏が音楽的に不自然になものにため，奏者の練習意欲を低下させることになるという問題なることがあるという問題点を解決するため，任意箇所がしばしば発生する．演奏難度の高い楽譜を奏者の演奏レへの弾き直し・弾き飛ばしを含む演奏に追従が可能な楽譜

ベルに合わせて簡略化することができれば，この事態を避追跡と自動伴奏が可能な Eurydice[4] を用いて，簡略化をけ，より効率的に演奏練習を促進することができる．

行った後の楽譜を演奏する際には削除された音符をシステ

現在までに，楽譜の簡略化に関する研究として，ユーザムが補完して伴奏することとした．さらに，音符の密度やが実際に演奏した音響信号を元に演奏レベルに合わせた難音域などといった楽譜の特徴量を各パートおよび小節ごと易度のタブ譜を生成するシステムが，ピアノの五線譜やギに抽出し，蓄積した演奏ミスのデータと併せたサンプルをターのタブ譜を対象に開発されてきた [1][2]．これらのア教師データとして用いることにより，ある特徴量を持つ楽プリケーションでは，楽譜が持つ演奏の難しさを数値化す譜がそのユーザにとって簡略化されるべきかどうかを判断ることで楽譜全体を編集するという手法を用いている．

する学習モデルを得ることができる．このモデルに従う分

本稿ではピアノの演奏練習を対象とし，演奏楽曲の楽譜類器を利用することによって，ユーザがシステムを通じてとユーザによる実際の演奏データ (MIDI データ) を入力と一度も演奏をしたことのないような楽譜に対しても，対象した，奏者の技術に合わせたピアノ演奏練習支援システムのユーザの演奏レベルに適した簡略化を実行することが可を提案する．本システムでは，入力として与えられた楽譜能となる．

1a)
b)
c)
d)

京都大学
tfukuda@sap.ist.i.kyoto-u.ac.jp
enakamura@sap.ist.i.kyoto-u.ac.jp
itoyama@kuis.kyoto-u.ac.jp
yoshii@kuis.kyoto-u.ac.jpⓒ 2017 Information Processing Society of Japan

2. ピアノ演奏練習支援システム
本稿で提案するピアノ演奏練習システムは，楽譜情報と1

Vol.2017-MUS-114 No.21
2017/2/27

情報処理学会研究報告
IPSJ SIG Technical Report

図 2パターン 1 の例

図 3パターン 2 の例

図 1 ピアノ演奏練習支援システムの概要図

MIDI ピアノを用いてユーザの実際の演奏から得られた演奏情報に基づいてユーザの演奏ミスを抽出し，それを利用することでユーザの苦手な楽譜の傾向を判断する．苦手であると判断された箇所については楽譜の簡略化を行い，演奏難度が高い楽譜をそのユーザの演奏レベルに適したものにする (図 1)．
入力

楽譜情報 (MusicXML)
演奏情報 (SMF)

出力

簡略化された楽譜
ユーザの演奏ミスデータ

なお，簡略化を行った後の楽譜をユーザに提示する際には，一般的なピアノ奏者が用いる五線譜形式であることが必須であるが，SMF (Standard MIDI File) 形式のファイルから五線譜上へ音符を自然に配置することは容易ではな
い．そこで，音符が五線譜上にどのように配置されいるかが記載されている MusicXML 形式のファイルを入力とし，これを編集することでこの問題を回避することとした．

2.1 演奏ミスの抽出
本稿では，ユーザの演奏ミスとして次の 3 つを定義し，入力となる楽譜情報と演奏情報を用いることによって演奏ミスの抽出と分類を行う．

extra note

楽譜にない音符を演奏する誤り

missing note 楽譜にある音符を演奏しない誤り
pitch error

楽譜にある音符と異なる音を演奏する誤り定し，それ以外の場合は以下の要領で extra note か pitcherror かを判定する．まず，楽譜音符に同じ音高があり，正解音符とならなかったものは extra note とする．次に，1 オクターブと完全 4 度以内に楽譜音符がある場合にはpitch error の候補とし，候補の空間で pitch 方向に関してLR-HMM によるアラインメントを行う．この際，音高誤りの確率を出力確率として用いる．この結果パス内にあるものは pitch error，それ以外のものは extra note とする．
最後に，演奏音符に対応する音符がない楽譜音符を missingnote とする．
2.2 楽譜の簡略化
演奏ミスのデータからユーザが苦手なパートと判断された箇所について，該当楽譜をパターン分けすることで簡略化を行う．具体的には以下に挙げる 4 つのパターンに分類し，各パターンごとにルールを与えることで楽譜の簡略化

具体的には，楽譜上でオンセット時刻が同じ演奏音符をを行う．今回のシステムでは，簡略化の範囲の最小単位をまとめることでクラスタを生成し，クラスタ単位および音1 小節としたため，簡略化を行う際には該当する小節全体

符単位の 2 つのレベルで left-to-right HMM (LR-HMM) をを簡略化することとする．

用いたアラインメントを行うことで演奏ミスの自動認識を

2.2.1 パターン 1：同時に弾く音数が多い楽譜行う．まず，クラスタ単位で弾き直しも考慮した従来法 [4]同時に弾く音数が多いパターンの楽譜では，和音の中でによるアラインメントを行う．これとは別に left-to-right

音符ごとに優先順位を設定し，順位の低いものを取り除いHMM (LR-HMM) を用いたアラインメントも行う．これていくことによって簡略化を行う．具体的には，まず和音らのアラインメントの結果のクラスタラベルが異なる場合

内の最も高い音は基本的にメロディラインに含まれているにはクラスタごと挿入誤りと考えられるので，含まれる音ため音楽的に最も重要な音であり，次いで和音のコードを符を全て extra note とする．クラスタ単位のエラーがな構成する根音が重要な音となる．和音の中でこの 2 音は特かった場合には，そのクラスタ内の音符ごとでのエラー判に重要な音で，原則として省略してはならないということ定を行う．各クラスタの演奏音符に対して，楽譜音符と同が過去の研究 [5] でも述べられている．音符の優先順位は

じ音高で一番オンセット時刻が早いものを正解音符と判

根音の 3 度上の音，5 度上の音と続いていくが，u これらⓒ 2017 Information Processing Society of Japan2

Vol.2017-MUS-114 No.21
2017/2/27

情報処理学会研究報告
IPSJ SIG Technical Report

2.3 システムによる自動補完伴奏
楽譜の簡略化によって削除された音符をシステムに補完して演奏させるために，任意箇所への弾き直し・弾き飛ばしを含む演奏に追従可能な楽譜追跡と自動伴奏が可能なア
プリケーション Eurydice を用いる．このアプリケーションは本来，複数のパートに分かれている音楽の一部のパートだけを演奏し，残りのパートをシステムが自動で追尾しながら演奏をしてくれるというものである．本稿では，簡略化後の楽譜からなるパートと簡略化によって削除された音のみで構成されたパートからなる楽譜を Eurydice に与えることで，簡略化された箇所のシステムによる自動伴奏を実現した．これによって，ユーザが演奏するのは簡略化された楽譜だが，全体の演奏としては元の楽曲をそのまま
図 4パターン 3-A の例演奏したかのように聞くことができるため，特定の楽曲でピアノの練習をしたいというユーザの意欲を保ったまま，はいずれも上記で述べた 2 音ほど重要な音ではないため，必要に応じて省略することができる．このような優先度を設定することによって，演奏の難しい和音を比較的演奏の容易な 2 和音や 3 和音に簡略化することができる．パター演奏の練習を続けることができると考えられる．

3. 楽譜の事前簡略化
2 章で述べたように，本システムは楽譜情報と演奏情報

ン 1 の簡略化の例を図 2 に示す．

を入力とすることで，簡略化された楽譜とユーザの演奏ミ

2.2.2 パターン 2：速い指の動きを要求する楽譜スデータを得ることができる．そこで，蓄積された演奏ミ

速い指の動きを要求するパターンの楽譜については，一スのデータを楽譜の特徴量と併せて訓練サンプルとし，そ定以上のしきい値を越える速さの連続する音符を削除するのサンプルを教師データとして用いることにより，ある特ことで簡略化を行う．ここで用いるしきい値は，簡略化を徴量を持つ楽譜がそのユーザにとって簡略化されるべきか行う箇所の楽譜情報を元に決定する．このパターンの簡略どうかを判断する学習モデルを得ることができる．さらに，化の例を図 3 に示す．

このモデルに従う分類器を利用することによって，ユーザ

2.2.3 パターン 3：離れた鍵盤を弾く楽譜がシステムを通じて一度も演奏をしたことのないような楽離れた鍵盤を弾く，いわゆる「跳躍」と呼ばれるパターンの楽譜については，さらに 2 通りの場合分けをすること

譜に対しても，対象のユーザの演奏レベルに適した簡略化を事前に実行することが可能となる．

ができる．すなわち，

3-A 跳躍後すぐに跳躍前に演奏していた辺りに戻る場合
3-B 跳躍後にしばらく跳躍がない場合

3.1 楽譜特徴量の抽出
学習に必要な訓練サンプルを作成するために，一般的なと分類することができる. 3-A のように離れた鍵盤を 1 つ

ピアノの楽譜である五線譜の特徴量をいくつか定義した．

だけ弾かせるような場合には，その音を単純に削除し，3-B

今回定義した特徴量は縦の多重度 Dv ，横の多重度 Dh ，音のように離れた音符の近くにしばらく音符があるような場

域 E ，最も広い和音の広さ Wmax ，パートの音符密度 Nb ，合には，跳躍の周辺の音を簡略化することで対処する．こパート内の黒鍵が占める割合 Rblack の 6 つであり，以下のの際の簡略化のルールはパターン 1 とパターン 2 の方法にように定義される．
vuNhu 1 ∑Dv = tn2kNh従う．ここで，3-A のパターンの簡略化の例を図 4 に示す．

2.2.4 パターン 4：上記以外の楽譜
演奏ミスの多くは上記の 3 パターンによって分類するこ

k=1とができると考えられるが，このどれにも当てはまらない

Dh = N hようなものも存在し得る．例えば，演奏難度の低い簡単なE = Phighest − Plowest + 1

楽譜はこれらのどれにも上手く分類することができない．
このような場合には，パターン 1 やパターン 2 の手法をしきい値を低く設定した上で適用することによって対応する．すなわち，2 和音を単音にしたり，4 分音符以上の速さの音を削除したりすることによって多少無理にでも簡略化を行うことができる．
ⓒ 2017 Information Processing Society of Japan(k)(k)Wmax = max(Phighest − Plowest , k = 1, ..., Nh )Nb =NbRblack =NblackN

ここで，Nh は小節内の (単音を 1 和音とみなした) 和音の3Vol.2017-MUS-114 No.21
2017/2/27

情報処理学会研究報告
IPSJ SIG Technical Report
表 1 楽譜の特徴量抽出例
DvDhE
Wmax

NbRblack

例 1(右手)

3.69

1.25

18

9

4.50

0.39

例 1(左手)

2.00

1.00

20

13

2.00

0.00

例 2(右手)

1.00

2.33

54

2.33

0.43

例 2(左手)

2.52

1.00

1919

2.33

0.29

パート

4. おわりに
本稿では，楽譜情報とユーザの実際の演奏情報を基に演奏ミスがあった箇所を判定し，該当箇所の簡略化を行うことにより，自分の好みの楽曲でピアノの練習をすることを可能とするシステムを開発した．さらに，本システムでは蓄積した演奏ミスのデータを楽譜の特徴量と共に用いることで，対象ユーザがシステムを通じて一度も演奏したことがないような楽曲に対しても，そのユーザの演奏レベルに適した簡略化を行うことを可能とした．
今後の課題としては，楽曲推薦機能の追加，評価実験の実施を行っていきたいと考えている．まず，楽曲推薦機能

図 5

例1

図 6

例2

総数，nk は k 番目の和音の中に含まれる音符の数，Phighest
(k)

(k)

については，3 章で述べたようにユーザの学習モデルを生成することができるため，向上心のあるユーザに対しては，そのユーザの苦手なパートを多く含む楽曲をシステムが推と Plowest および Phighest と Plowest はそれぞれ小節内の薦してくれるという機能考えられる．楽譜の解析や簡略化

最大音高と最小音高および k 番目の和音内の最大音高と最に必要な MusicXML 形式のファイルは，MuseScore*1 等

小音高，N はパート内の総音符数，b は小節の拍数，Nblack

ウェブ上で公開されているため，これらを集めて楽譜情報

は小節内の黒鍵の音符の数を表す．例として，図 5 と図 6のデータベースを作成することでこのような機能を実現での各パートごとの楽譜から得られる特徴量を表 1 に示す．

きると考えている．評価実験に関しては，演奏ミスのデー

また，これらの特徴量を入力 x として，タと特徴量から学習モデルを生成する手法は確立したが，x = (Dv , Dh , E, Wmax , Nb , Rblack )実際のデータを用いての評価は十分に行えていないため，演奏データを集めて評価実験を行うことが急務である．と表すこととする．

謝 辞 本 研 究 の 一 部 は ，JSPS 科 研 費 24220006，26700020，26280089，16H01744，JST CREST，JST AC3.2 訓練サンプルを用いた教師あり学習MIDI ピアノを用いて実際に演奏を繰り返し，楽譜のCEL の支援を受けた．また，Eurydice や演奏ミスデータの抽出に関する中村栄太氏の多大なるご協力に感謝します．

特徴量と演奏ミスの有無をペアにしたサンプルの集合{(xi , ui )|i = 1, ..., M } を十分な数用意することによって，参考文献学習モデルを得ることができる．ここで，ui は演奏ミスが[1]存在するときに 1，そうでないときに 0 が与えられる教師信号である．本システムでは，最適化法として確率的勾配降下法を採用したロジスティック回帰 [6] を用いて学習を[2]行うこととする．すなわち，入力 x を与えた時の予測確[3]率 y は，y = σ(wT ϕ(x))[4]と表されるものとする．ここで σ(z) は以下で定義されるシグモイド関数である．

σ(z) =[5]1
1 + e−z

予測確率が得られると，次に示す確率的勾配降下法の更[6]新式に従ってパラメータ w を更新する．

藤田 他：習熟度を考慮した複数楽譜からのピアノ譜生成手法の提案，情報処理学会研究報告音楽情報科学 (MUS)(2008).
矢澤 他：ギター演奏者の習熟度に合わせた音響信号からのタブ譜自動生成，情処研報，Vol. 2013-MUS-100, No. 17,pp. 1–6 (2013).
Fukuda T., et al.: A Score-Informed Piano Tutoring
System with Mistake detection and Score Simpliﬁcation,
Sound and Music Computing Conference (2015).
中村 他：任意箇所への弾き直し・弾き飛ばしを含む演奏に追従可能な楽譜追跡と自動伴奏，情報処理学会論文誌，Vol. 54, No. 4, pp. 1338–1349 (2013).
Hori G., et al.: Input-Output HMM Applied to Automatic Arrangement for Guitars, JIP, Vol. 21, No. 2, pp.
264–271 (2013).
Efon, B.: The eﬃciency of logistic regression compared tonormal discriminant analysis, Journal of the American
Statistical Association 70.352 (1975).

w(i+1) = w(i) − ηi · (yn − un )ϕ(x) (n = 1, ..., M )ここで，ηi は学習率を表し，以下のように与えた．
{
η0 = 0.1

ηi = ηi−1 × 0.95(i = 1, ..., M )ⓒ 2017 Information Processing Society of Japan*1

https://musescore.com/sheetmusic4