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

Main Author: 志賀あゆみ
Format: info publication-thesis Journal
Terbitan: , 2019
Subjects:
Online Access: https://zenodo.org/record/6115183
Daftar Isi:
  • ジャズの楽譜にはベーシストが弾くべきベースラインが書かれていない場合が ある. そのため, ベースを演奏するとき, ベーシストは楽譜のコード進行から自ら ベースラインを作成する必要がある. しかし初心者にとって, ベースラインを作る ことは容易ではない. まず, 自分でベースラインを考えようとしても, コードを見 ただけでは何の音を弾いたらいいかわからないという問題がある. また, インター ネット上にベースラインの演奏例が公開されている場合もあるが, すべての曲に 対応しているわけではなく, 仮に演奏例が存在したとしても, 難しいものは真似す ることが困難である. このことから本研究は, ユーザがベースを練習する際に生じ る, “自分でベースラインの作成が困難” という問題と, “入手できるベースライン が演奏者の演奏レベルに合うとは限らない” という 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 分音符 の割合, 指の移動量) に沿ったベースラインが生成された