Published February 5, 2019 | Version v1
Thesis Open

ジャズのベースラインの自動生成

Authors/Creators

  • 1. 日本大学文理学部情報科学科 北原研究室

Contributors

Description

ジャズの楽譜にはベーシストが弾くべきベースラインが書かれていない場合が ある. そのため, ベースを演奏するとき, ベーシストは楽譜のコード進行から自ら ベースラインを作成する必要がある. しかし初心者にとって, ベースラインを作る ことは容易ではない. まず, 自分でベースラインを考えようとしても, コードを見 ただけでは何の音を弾いたらいいかわからないという問題がある. また, インター ネット上にベースラインの演奏例が公開されている場合もあるが, すべての曲に 対応しているわけではなく, 仮に演奏例が存在したとしても, 難しいものは真似す ることが困難である. このことから本研究は, ユーザがベースを練習する際に生じ る, “自分でベースラインの作成が困難” という問題と, “入手できるベースライン が演奏者の演奏レベルに合うとは限らない” という 2 つの問題の解消を狙ったもの である.

まず, “自分でベースラインの作成が困難” という問題については, ユーザから与 えられた任意のコード進行に対してジャズのベースラインの自動生成を行い, ベー シストが手本となるベースラインを探す, または生成する手間をなくすことで解決 する. ベースラインの自動生成が難しいのは, 前後の音とコードのつながりなどを 考慮に入れながら, 行わなければならないからである. そして, 単純なルールだけ では効果的な生成は困難である. そこで, まずベースラインの自動生成は隠れマル コフモデル (Hidden Markov Model : HMM) を用いて行う. HMM の場合, 「コー ド進行のみが与えられた場合, その背後に隠されたベースラインを推定する問題」 という発想で考える. すなわち, 与えられたコード進行から適合するベースラインを決定するのではなく, そのコード進行を決定したと考えられるベースラインを, 遡って推定する逆問題と考える. このような問題を解決するために, HMM が多く 使われているため, この自動生成の問題も HMM を用いて定式化する. あるベース ラインからコード進行の生成される過程を HMM を用いて確率モデル化し, 尤度最 大の原理によって与えられたコード進行を生成する遷移系列の中で最も尤度の高 い系列を Viterbi アルゴリズムによって求める. 本研究では, 隠れ状態が異なる 3 つの手法でベースラインの自動生成を行う. 手法 1 は各音名を隠れ状態とし, 手法 2 では各音高を隠れ状態に, 手法 3 では拍節位置ごとの各音名を隠れ状態と設定す る. 出力記号は共通してコード進行とする. HMM を用いることで, 確率的に最も もっともらしいベースラインを生成することができる.

次に, “入手できるベースラインが演奏者の演奏レベルに合うとは限らない” と いう問題については, ユーザが生成するベースラインの難易度を選択することで解 決する. ベースラインの自動生成には HMM の手法 3 が後述の実験から有効であ るとわかったため, 手法 3 の考えを基本として, 難易度を追加したものを遺伝的ア ルゴリズム (Genetic Algorithm : GA) を用いて実装する. GA は, 適応度関数が最 大の個体が得られるように個体の選択, 交叉, 突然変異を繰り返す最適化アルゴリ ズムである. GA はモデルに制約がなく, 適応度関数を自由に設計することができ るため, 適応度関数さえ設計すればどんな問題も解決することができる. そのため, 確率的に最ももっともらしいベースラインを生成することに加え, 適応度関数に生 成するベースラインの演奏上の難易度に関する制約を入れることで, ベースライン の難易度を制御することができる. 本研究では, 難易度を 3 つ用意し, 難易度ごと にベースラインの自動生成を行う. 難易度はリズムと指の移動量によって変化さ せる.

実装したベースラインの自動生成システムの有効性を確認するために, 生成され たベースラインが適切なものであるかどうか検証する. 103 個のコード進行に対し て HMM の 3 つの手法でベースラインの自動生成を行い, 客観評価と専門家による主観評価を行った. 3 手法それぞれの評価の結果, 手法 3 による生成結果が正解デー タとの一致率が 41.75%で最も高い結果であった. その他の客観評価も 8 項目中 6 項目で 3 つの手法の中で手法 3 が正解データに最も近い結果であった. また主観評 価でも 4 つの項目すべてで手法 3 がいい結果となった. 以上のことから, 拍節を考 慮した手法 3 によるベースラインの自動生成が最も有効な手法であるとわかった. 次に GA に対しても実験を行った. まず, 世代数を決定するために重み値をす べて 1 で固定し, 1, 10, 25, 50, 100 世代数ごとに自動生成を行い, 正解データとの 一致率を求めた. その結果, 世代数を 25 から増やしても一致率があまり変わらな かったため, 世代数を 25 と決定した.

次に, 重み値を決定するために世代数を固定 し, 様々なパラメータの組み合わせで自動生成を行い, 正解データとの一致率を求 めた. 単体での精度が 43.58%と圧倒的に高い chord に加え, 難易度を変化させる move と off を含めた組み合わせの中で最も一致率が高いものを GA での生成に使 用した. この実験の結果から, chord, move, off の 3 つのみを使ってベースラインを 生成する手法が 36.2%で最も高かった. 次に, 実験で求めた世代数と適応度関数を 使用して生成を行ったところ, 初級, 中級, 上級それぞれの難易度の定義 (8 分音符 の割合, 指の移動量) に沿ったベースラインが生成された

 

Files

ジャズのベースラインの自動生成(2018年度志賀あゆみ).pdf