The 19th Annual Conference of the Japanese Society for Artificial Intelligence, 2005

1D2-03

演奏習得支援システム構築のための演奏解析アルゴリズム
Performance Analysis for Construction of the Performance Practice Support System
尾崎 昭剛*1

佐倉 卓馬*1

原尾 政輝*2

Shogo Ozaki

Takuma Takuma

Masateru Harao*1

九州工業大学大学院情報工学研究科

Graduate School of Computer Science and Systems Engineering, Kyushu Institute of Technology*2

九州工業大学情報工学部知能情報工学科

Department of Artificial Intelligence, Kyushu Institute of Technology
In order to master the techniques for a performance of a musical piece efficiently, it is necessary for a beginner torecognize the error between his performance and a correct one, and then to practice it sufficiently. This paper develops aperformance support system for beginners to represent the error by analyzing a current position in his performance.

1. はじめに
近年, カラオケのような, 計算機を利用した音楽活動環境が実現し, 普及している. しかし, 器楽への応用を行うには, ユーザが最低限の演奏技能を持っている必要があるため, カラオケのように誰もが気軽に楽しめるシステムとはなり難い. そこで, 本論文
では, 初心者ユーザの練習を支援するようなシステムの提案を行う. このようなシステムの実現のためには, ユーザの演奏の解析が必要であり, 特に楽譜と演奏のマッチングから現在位置を特定する技術が不可欠となる. しかし, 練習途上のユーザの演奏には多様な演奏間違いが含まれているため, 過去に提案されているアルゴリズム[2,3]では対応できない場合が多い. そこで,
本論文では演奏間違いに対処可能な現在位置解析アルゴリズムを提案し, 練習者の演奏に対し有用である事を示す.

2. 演奏支援システムの概要
本システムでは, ユーザの練習の過程として, 曲を通して演奏→ 誤った箇所を練習 → 再び曲を通して演奏 という, 最も一般的と思われる手順を想定している. そのような練習者への支援として, （１）楽譜表示, （２）自動伴奏, （３）間違い提示３つの機能の実装を行う.
（１）楽譜表示
演奏のために適切な楽譜の表示を行う. ページめくりなどを自動化する事で, 演奏に専念できる環境の提供を行う.
（２）自動伴奏
練習者が演奏できないパートの演奏を, システムが補う. 鍵盤
楽器の両手で演奏する曲を片手ずつ練習する場合に, 曲全体の感覚を掴みながら練習を進める事ができる.
（３）間違い提示練習者が演奏中にどのように間違いをしたかを提示する.
練習者自身がどこを間違えたかを記憶していなくても, システムが代わりに認識を行う事で, どこを重点的に練習するべきかの指標とする.
この３つの機能により, 練習者は一部のパートしか演奏できないという, 比較的早い段階から, システムの支援により曲全体の音を聞きながら練習でき, 間違った箇所を効率的に練習することが可能となる.

これらの機能の実現のためには, 以下の技術が必要になる.
楽譜表示, 自動伴奏：演奏の楽譜上での現在位置の特定
間違い提示：演奏と楽譜の相違点を特定
この中で, 演奏誤り認識アルゴリズムは, 現在位置特定を応用する事で可能である.
そこで, 本論文では,・音高変更・音の追加・音の削除の 3 つの演奏誤りに対処できる現在位置認識アルゴリズムの構築を目指す.

3. 演奏解析アルゴリズム
演奏の, 楽譜上の現在位置を解析するアルゴリズムとして,DP マッチングを用いた方法が考案されているが[2,3], この方法
では,間違いが多いと誤認識を起こすという問題があった. また,間違いのある初心者の演奏にも対処できる現在位置解析アルゴリズム[4]も提案されているが, どの程度の解析精度があるのか,検証されていない.
そこで, 本研究では, セル空間上に楽譜, 演奏データを展開して解析を行う, 間違いに対処でき, 精度の高い現在位置解析アルゴリズムを使用した.

3.1 セル空間を用いた現在位置解析アルゴリズム
本アルゴリズムでは, 楽譜, 演奏を２次元の格子配列状のセル空間に展開することで表現する. 具体的には, 楽譜や演奏データを, 横軸を時間, 縦軸を音の高さとして表現する（図３．１）.
楽譜や演奏データを展開する際, 音の長さは無視して, 楽譜上の発音時刻のみに着目することで, リズム, テンポが不安定になりがちなユーザの演奏にも対応している.
演奏データを展開する場合は, 演奏の時間的なずれがあることから, 楽譜のように, 一律に発音時刻で区切ることはできないが, テンポ四分音符＝１２０で連続した３２部音符（６２．５ｍｓ）を区別する事を可能とするために, ５０ｍｓの時間幅で区切ることにより, セル平面に展開している.

-1-

The 19th Annual Conference of the Japanese Society for Artificial Intelligence, 2005
この実験では, 音高変更, 音の追加, 音の削除の３つの誤りを5％ずつ, 合計１５％の状態でシステムに入力し, テンプレート幅,ビュー幅を変更して, 正しいマッチングが行えなかった割合（演奏割り当てミス率）を調べた（図 4.1）.

図３．１ 楽譜のセル空間への展開図
図 4.1 実験結果
本アルゴリズムでは, Dannenberg の DP[2,3]のように, 楽譜上の音符１個と演奏入力１個同士をマッチングする方式と違い, 複数のイベントをマッチングに用いることで, 解析精度の向上を図る. そのために, 演奏セルから切り出したテンプレートと, 楽譜セル上の検索範囲ビューを定義する（図 3.2）. テンプレートとは,最新の演奏入力ｎイベント（演奏セル n 列）からなるセルの集合である. また, ビューとは直前の演奏の現在位置を基準として,前後ｍイベント分の幅でテンプレートを動かせる範囲を持つ（楽譜セル n * m 列）.
図４．2 システムの実行画面

5. まとめと今後の課題
本論文では, 器楽演奏習得支援システムの提案を行った. 現在位置解析アルゴリズムにより, 全体の 15％という頻繁に演奏間違いが起こる演奏に対しても, テンプレート幅 5 セルで, 割り当てミスが 2％以下という高い認識制度を得る事が確認できた.
しかし, 今回は計算機を用いた入力のみで実験を行っているた
め, 今後は実際の人間の演奏を用いた実験を行う予定である.

参考文献

図３．２

楽譜と演奏の比較

そして, このテンプレートをビューの内部で時間的（横軸方向）にずらして, 音符同士が最もマッチする時刻を探す. このような方法で, 演奏が間違っていた場合にも, 演奏と楽譜の最もマッチする音が多い部分を探す事で, 正しい現在位置として認識する

4. 実装, 実験結果
「バッハ ピアノ小品集（全音楽譜出版社）」の前半６曲を用いて,計算機により演奏誤りを発生させ演奏間違いの認識能力の実験を行った.

[1] 尾崎昭剛, 平田耕一, 原尾政輝：自動追従型楽譜表示シス
テムに関する研究, 平成 13 年度電気関係学会九州支部連合大会（第 54 回連合大会）講演論文集, pp537, 2001
[2] R.B.Dannenberg ： An On-Line Algorithm for Real-Time
Accompaniment ,Proc.of ICMC, pp.193-198, 1984
[3] Bloch,J.J.and Dannenberg,T.B.:Real-Time Computer
Accompaniment of Keyboard Performances, In Proc. Of
ICMC, pp.279-289, 1985
[4] Chika Oshima, Kazushi Nishimoto and Masami Suzuki:
Family Ensemble: A Collaborative Musical Edutainment
System for Children and Parents, Proc. of the ACM
Multimedia 2004, pp.556-563, 2004.
[5] 尾崎昭剛, 原尾政輝, 平田耕一：演奏習得支援システムのための効率的な演奏現在位置解析アルゴリズム, エンタテイメ
ントコンピューティング 2003 論文集, pp.41-46, 2003-2-