BayesianBand：旋律の予測に基づいた自動伴奏システム
北原 鉄 朗†,†† 徳 網 亮 輔†† 戸 谷 直
橋 本 寿 政†† 片 寄 晴 弘†,††之††BayesianBand: An Accompaniment System based on Melody Prediction
Tetsuro Kitahara,†,†† Ryosuke Tokuami,†† Naoyuki Totani,††
Toshimasa Hashimoto†† and Haruhiro Katayose†,††1. は じ め に人間が誰かとインタラクションを取るとき，相手の行動を予測しながら自分の取るべき行動を考えることは少なくない．この「相手の行動を予測する」機能は，人間と計算機とのインタラクションにおいても本質的な役割を担うと考えられる．特に音楽では時間的同期性が重要であるため，自動伴奏システムなどでは遅延は致命的である．そのため，人間の行動（ 演奏など ）を予測することは不可欠である．
本稿では，予測に基づくインタラクティブ音楽シス
テムの一例として，ユーザの演奏をリアルタイムに

図 1 BayesianBand の全体像予測して伴奏を付与する自動伴奏システム Bayesian-が，旋律が最初から最後まで参照可能であることを前Band を提案する．優れた音楽家は，初めて聴く楽曲

4)提としていた．一方，「 豊次郎」
では，様々な旋律とでも，自身の経験に基づいて次の展開を予測し，伴奏伴奏の組をデータベース（ DB ）として保持し ，ユーをすることができる．本研究の目的は，こういった音ザの旋律を DB からリアルタイムに探索し ，それに楽家の能力を計算機上で実現することにある．

合った伴奏を出力する．DB にユーザの旋律と十分近2. BayesianBand：予測型自動伴奏システム
本システムでは，ユーザが演奏する未知の旋律に対して，その次の展開を予測して，それに合ったコードい旋律がない場合には段階的に抽象化を行うことで，データスパースネス問題に対処している．しかし，確率モデルによらない事例探索型の手法で完全に未知の旋律に対応するのは，一般的に困難である．

をリアルタイムで推定し，伴奏を行う．これまで様々本研究で構築するシステムの全体像を図 1 に示す．

な自動伴奏システムやジャムセッションシステムが開本システムの主な機能は，ユーザの演奏を予測してそ発されてきた．しかし，自動伴奏システムでは，ユーれに合ったコードを推論することである．しかし，実ザの主導するテンポ変化への追従を目的としており，際に弾かれた音が予測結果と異なり不協和音を生じさ楽譜は既知とすることが多かった1) ．ジャムセッションせる場合もある．そのような場合には，適切なコードシステムでは，楽譜は既知としないものの，コード 進を再推論して修正することも必要である．以上から本

2)行は既知とすることが多かった ．また，与えられた研究の課題は，次の 3 つに集約される．

旋律にコード 進行を付与する研究は数多く存在する3)

課題 1 ユーザの演奏をどのように予測し，コードを推論するか．

† 科学技術振興機構 CREST CrestMuse プロジェクト
CrestMuse Project, CREST, JST†† 関西学院大学理工学部
Sch’l of Science and Technology, Kwansei Gakuin Univ.

課題 2 予測結果の適切さをどのように評価するか．
課題 3 予測結果が適切でないとき，どのタイミングでどのようにしてリカバリーを行うか．

情報処理学会 インタラクション 2009

本研究ではこれら 3 つの課題に取り組むが，本稿では，
ni 12 種類の音名
ci 7 種類のダ イア
トニックコード

紙面の都合上，課題 1 のみを扱う．

3. ユーザの演奏の予測とコードの推論
3.1 問 題 設 定
前章で述べたように，入力はユーザが弾いた旋律，出力はコード 名である．コード は半小節（ 2 拍）ごとに変わるものとし，現在の半小節の旋律から次の半小

図 2 旋律予測およびコード 推論のための Bayesian Network（左）と各ノードが取りうる値（ 右）．nt と ct がそれぞれ現在の時刻における入力旋律の音符とコード 名，nt−1 がその直前の音符，nt+1 と ct+1 が予測・推論すべき主旋律の音符とコード 名を表す．白いノードは推論時に既知の情報，色付きのノードは未知の情報であることを示す．

節の旋律を予測し ，それに合うコード 名を推論する．

3.2 Bayesian Network による解法

Network の学習・推論には Weka を利用した．学習には，文献 6) に掲載されている全 206 曲および文献 7)

コード 進行における各コードは，同時に発音されるから抜粋した 209 曲のデータを用いた．

簡単のため，入力旋律は単旋律とし，調は既知とする．

他のパート（主に主旋律）と不協和にならないように

4.2 試 用 結 果

決めるのが原則であるが，コード 進行と主旋律には，本システムを使用した結果，弾いたメロディとあるそれぞれに時間軸上の因果関係が存在する．そのため，程度合ったコード 進行を生成することができた．特主旋律における時間的因果関係（ R1 ），コード 進行にに，C→F→Dm や Dm→G→C などのよく用いられおける時間的因果関係（ R2 ），同時刻における主旋律るコード 進行を再現することができた．また，本シスとコード の因果関係（ R3 ）を同時に記述して推論でテムを CrestMuse シンポジウム 2008☆ で実演したときるモデルが必要である．

ころ好評を得ることができた．

本稿では ，この 条件を 満た す推論モデ ルとし て本システムでモデル化されている 3 種類の因果関係

Bayesian Network を用いる．Bayesian Network はのうち，R2 は比較的パターン化されている場合が多自由度の高い確率モデルで，任意の確率事象間の確率い．そのため，たとえば ct = C であれば，nt や nt+1的因果関係を有向グラフで記述することができる．旋がどんな値であっても ct+1 = F の確率が最も高くな律の予測やコード 付けの研究では N-gram モデルやるという傾向が見られた．今後，学習データをさらに隠れマルコフモデルを用いることが多いが，これらで増やすなどして解決する必要がある．

R1 と R2 の両方を記述するのは困難である．BayesianNetwork はこれらを包含するモデルであり，こういった複雑な因果関係を容易に記述し うる．

5. お わ り に
本稿では，ユーザの演奏を予測して伴奏を付与する

我々が構築したネットワークを図 2 に示す．図中の自動伴奏システム BayesianBand を提案した．本稿で白いノード は現在までの時刻における主旋律およびは課題 2 と課題 3 は割愛したが，これらも本稿で用いコード 名で，推論時に既知の情報である．これらの情た Bayesian Network を用いることで解決できる見込報（エビデンスという）をセットして推論を実行するみを得ている．これについては稿を改めて報告したい．

ことで，次の時刻の主旋律とコード 名の確率分布を推定する．このネットワークは単結合なので，この確率分布は Pearl の確率伝播法5) で効率的に求めることができる．現在の実装では，この推論処理は，各半小節が終わる直前に行われる．そのため，nt は現在の半小節の最後の音符，nt−1 はその直前の音符，nt+1 は次の半小節の最初の音符となる．

4. 実装・試用結果
4.1 実

装

以上で述べた自動伴奏システムを Max/MSP 上で実装した．ただし，図 1 のうち「評価部」と「リカバリー部」は未実装である．
「 予測・推論部」は Java でMax/MSP 用オブジェクトとして実装した．Bayesian参考文献

1) 堀内：演奏するコンピュータ，システム制御情報学会誌，46, 11, pp.671–676 (2002).
2) 青野：ジャムセッションシステム，コンピュータと音楽の世界，pp.283–305，共立出版 (1999).
3) 川上他：隠れマルコフモデルを用いた旋律への自動和声付け，情処研報，99-MUS-34 (2000).
4) 豊田，片寄：流しミュージシャンシステム：豊二郎，インタラクション 2005, A110 (2005).
5) Pearl, J.: Probabilistic Reasoning in Intelligent
Systems, Morgan Kaufmann (1988).
6) 伊藤：ザ・プロフェッショナル・スタンダード・
ジャズ・ハンドブック，中央アート出版社 (1992).
7) 高嶋：スタンダードジャズのすべて 1，全音楽譜
出版社 (1998).
☆

http://www.crestmuse.jp/sympo2008/