>100 Views
October 11, 24
スライド概要
複数人で演奏するときなど,外出先でピアノを演奏する時,電子ピアノはサイズが大きく重いものが多いので,持ち運ぶことが難しい.PCは比較的持っている人が多いものであり,PC用キーボードにおけるタイピングはピアノの演奏方法と似ている.
よって,PC用キーボードがあれば外出先でも電子ピアノの代わりに演奏できると考えられる.
PCで音楽を演奏をする場合,ピアノやMIDIキーボードに比べて,キーが小さい,キーの押しが小さい,横に並ぶキー数が$13$〜$17$個程度と少ないといった特徴がある.なので,PC用キーボードは親指と他の指との間隔が取りにくく,指くぐりが難しい.
指くぐりとは,ドレミファソラシドのような連続した音を弾くときに,親指が他の指の下を通ることをいう.
このような理由から,ピアノと同じように演奏することは難しい.
また,ピアノにおける演奏において,強弱を付けるためには,鍵盤を押す強さを変える必要がある.しかし,PC用キーボードはキーを押す強さを検知できない.そのため,ピアノのようにキーの押す強さで強弱をリアルタイムに変更できない.
既存研究ではキーボードを直接改造し,加速度センサーを設置することでキーの押す強さを検知出来るようにするものや,マウスで直接音の強さを表すベロシティを直接設定するソフトウェアがある.前者の場合,使用するまでに時間がかかり,現実的ではない.後者の場合,強弱の変化をリアルタイムに表現することが難しい.
そこで,キーの間隔が取れるようにピアノの白鍵にあたる部分を2列にするキーボード配置を提案する.
また,提案したキーボード配置を使用し,強弱の付与を機械学習で自動的に行うことで,PC用キーボードを利用した演奏システムにおいてよりピアノに近い演奏を目指すシステムを提案する.また、本システムを用いて評価実験を行い,PC用キーボードにおける演奏の強弱をリアルタイムに変化できることを確かめた.
日本大学 文理学部 情報科学科 北原研究室。 「Technology Makes Music More Fun」を合言葉に、音楽をはじめとするエンターテインメントの高度化に資する技術の研究開発を行っています。
PC用キーボードを用い た演奏システム 北原研究室 4年 次田直樹
背景 外出先で急にセッションすることになった時 PCなら持っている人が多い PC用キーボードにおけるタイピングはピアノの演奏に似ている →PC用キーボードを使って外出先でも電子ピアノの代わりにすぐに演奏できると良い
PC用キーボードの特徴 ピアノやMIDIキーボードに比べて、キーが小さい ピアノやMIDIキーボードに比べて、キーの間隔が狭い →ピアノの演奏で使用する指くぐりがしにくい ※指くぐり:「ドレミファソラシド」のように連続した音を演奏する際に、 親指を他の指の下から通らせること。 キーの押す強さを認識できない 「ミ」を弾いた中指の下から親指を通し、「ファ」に 親指を置くことで、5本の指を使って「ドレミファソ ラシド」が弾けるようになる。 →ピアノのように鍵盤を押してリアルタイムに強弱を変更できない
目的 先程述べたような問題を解決する演奏システムを制作する。 指くぐりができるキーボード配置 リアルタイムに強弱をつける
関連研究 The ‘E’ in QWERTY: Musical Expression with Old Computer Interfaces, Chris Nash Department of Computer Science and Creative Technologies, UWE Bristol Frenchay Campus, Coldharbour Lane, Bristol, BS16 1QY, UK(NIME 2016) →QWERTYキーボードを改造し、加速度センサーをつけたもの VirtuosoNet: A HIERARCHICAL RNN-BASED SYSTEM FOR MODELING EXPRESSIVE PIANO PERFORMANCE,Dasaem Jeong, Taegyun Kwon, Yoojin Kim, Kyogu Lee, Juhan Nam, Graduate School of Culture Technology, KAIST , Korea Graduate School of Convergence Science and Technology, Seoul National University, Korea,2019 →楽譜の一音ごとの音階や強弱記号を抽出し、その一音のテンポ、強弱などの演 奏情報をRNNで予測する
関連システム 「Everyone piano」:PC用の音楽演奏・編集ソフト 1:ド~7:シのようにキーに番号が割り当てられる 音域、強弱がマウスのクリックで変更可能 →演奏中にリアルタイムに強弱を変更できない
デモ(一番低い音はソ、一番高い音はラ)
演奏システム Processingで制作 指くぐりを使用する曲を演奏することを想定 ※指くぐり:「ドレミファソラシド」のように連続した音を演奏する際に、 親指が他の指の下を通らせること。 音域:ソ~1オクターブ高いラ(音の数が9個) 片手だけで演奏できるようにするため、1列の白鍵の数を9個とする 使用する音域は、ユーザーが指定できるようにする
キーボード配置 キーボード配置の図 1つのキーで複数の音を発音 ◼ 少ないキー数で演奏できる ピアノの白鍵にあたる部分を2列にする ◼ キーが小さく、1列だけではキーの間隔が狭くなるため、 指くぐりが難しい ◼ 2列にすることで、親指と他の指との間に一定の間隔がとれる ※指くぐり:「ドレミファソラシド」のように連続した音を演奏する際に、 親指が他の指の下を通らせること。ピアノの演奏で使用する。 右手:メロディー 左手:伴奏 左手の伴奏はダイアトニックコードの3つの音を鳴らす ダイアトニックコード:ある特定のスケール上に、 スケールの音だけを3度積み重ねて出来るコード 「2」→ド・ミ・ソ 「q」→レ・ファ・ラ 「w」→ミ・ソ・シ 「a」→ファ・ラ・ド 「s」→ソ・シ・レ 「z」→ラ・ド・ミ 「x」→シ・レ・ファ
画面遷移 プログラム起動時 「1」~「7」 のキーを入力し、 使用する音域を 決定する 演奏画面
演奏に強弱を付ける流れ 演奏システムでキーを押す 押されたキーに割り当てられている音から特徴量を抽出し、RNNモデルに入力 RNNモデルからベロシティの予測値を出力 出力したベロシティの値を演奏システムに送信 送信されたベロシティをもつ音を演奏システムから出力する
機械学習を用いて強弱をつける ピアノロールにおける最も高い音だけ残し、それ以外をカットするプログラムを制作 (演奏システムが単音を入力とするため) 残った最も高い音から、特徴量及びベロシティを抽出 →直近に演奏した3つの音の特徴量及びベロシティと、演奏する音の特徴量を入力してベロ シティを出力するRNNやLSTMを構築 学習に使用したデータ:maestroデータセットの2018年のデータ x:特徴量、y:ベロシティ maestroデータセット:ピアニストの演奏を集めたMIDIデータ データ数:93 訓練データ数:47、テストデータ数:46に分ける 𝑥𝑛−3 𝑥𝑛−2 𝑦𝑛−3 𝑦𝑛−2 𝑦𝑛−1 𝑥𝑛−1 𝑥𝑛 𝑦𝑛
特徴量 ノートナンバーの値( 𝑛1 , 𝑛2 ) 前の音からの間隔(𝑡2 − 𝑡1 ) 強拍か、弱拍か(強拍なら1,弱拍なら0) ノートナンバーの差(𝑛2 − 𝑛1 ) 拍の頭にあるかどうか(拍の頭にあれば1,そうでなければ0) 小節の頭にあるかどうか(小節の頭にあれば1,そうでなければ0) 前の音の長さ 1 強拍 ノートナンバーの 値 𝑛1 ノートナンバーの 値 𝑛2 発音時刻 発音時刻 0 𝑡1 弱拍 𝑡2
使用するモデル 予測値とテストデータのベロシ ティの相関係数 Epoch:1000,node:128,RNN 0.5290 Epoch:2000,node:128,RNN 0.5125 Epoch:1000,node:256,RNN 0.3831 Epoch:2000,node:256,RNN 0.3941 Epoch:1000,node:128,LSTM 0.5650 Epoch:1000,node:256,LSTM 0.4098 Epoch:2000,node:128,LSTM 0.5426 Epoch:2000,node;256,LSTM 0.3985 相関係数の最も高い エポック数1000、 ノード数128、 LSTMで学習したモデ ルを使用する
評価実験 3つの実験を行った 1. 試用実験 2. 遅延計測 3. Maestroデータセットを用いたベロシティ付与評価
1.試用実験 指くぐりを使用する曲(課題曲と呼ぶ)を使用 →ヤマハピアノ練習曲集vol.5 p.8の曲を使用 実際のピアノで課題曲を練習する →本システムを用いて課題曲を練習する →ミスが0になったら実験終了 →何分、何回で弾けるようになるかを記録する
2.遅延計測 提案システムを用いて課題曲を演奏し、ベロシティの予 測にかかる時間を遅延時間として1音ごとに求める 遅延時間は右のように計算する 遅延時間 =(Javaプログラムから予測値を受け 取った時刻) ー(キーが押された時刻) 2パターンに分けて遅延時間の計測を行い、 それぞれ平均値と標準偏差を求める パターン1 ・Domino(演奏データの記録) ・VSTHost(MIDI入力・MIDI出力を設定) ・コマンドプロンプト(提案システムの実行) ・Microsoft Edge パターン2 ・Domino ・VSTHost ・コマンドプロンプト ・Microsoft Edge ・Google Chrome
3.Maestroデータセットを用いたベロシティ 付与評価 Maestroデータセットを用いてモデルを構築し、ベロシティの値を予測した。 演奏の中で強弱の変化がつけられているかどうかを調べるため、ミスせず演奏で きたデータから、1音ごとのベロシティの数値をグラフに示す。
実験結果(1.試用実験) 演奏は22回行い、時間は3時間16分かかった。 6回目の演奏まではミスの回数が10回を超えているが、 7回目以降の演奏では、13回目の演奏を除き、ミスの 回数が10回を超えることは無くなった。 ミ ス の 回 数 ミスの回数が少なくなった後にミスが少しずつ増え続 け、またミスの回数が少なくなることが繰り返し起き た. 演奏回数 課題曲には、黒鍵を弾く箇所が多くあったが、白鍵を 2列にすることによって、間隔を取って演奏すること ができた。
実験結果(1.試用実験) 演奏1回の中で、どの音をミスしたのか を調べ、ミスした演奏回数をまとめた。 ミスが多かった上位3つの音 1番目:「ド#」 16回 2番目:「ラ」 15回 3番目:「レ」 14回 また、「ラ#」は課題曲の中で1か所、 「ソ」は課題曲の中で2か所しか弾かな かったが、ミスした演奏の回数が多かっ た。 横軸:音名(ノートナンバーの値) 棒グラフ内の数値:ミスした演奏の回数
実験結果(1.試用実験) 全22回の演奏の中で、どの音をミスし たのかを調べ、ミスした回数をまとめた。 ミスが多かった上位3つの音 1番目:「ド#」 40回 2番目:「ミ」 25回 3番目:「シ」 23回 上位3つの音は、課題曲の中で繰り返し 弾くフレーズに含まれている音である。 横軸:音名(ノートナンバーの値) 棒グラフ内の数値:ミスした回数
実験結果(2.遅延計測) 右の表に示すスペックのPCを使用した。 パターン1:11回 パターン2:11回 パターン1に比べて、パターン2の平均実行時間は 約1.3598ミリ秒増加した。 ⇒ブラウザ(Google Chrome)を1つ立ち上げること パターン1 によって、約1.3598ミリ秒増加した。 パターン2 パターン1・パターン2の両方とも、標準偏差が1 未満となり、演奏ごとの遅延時間のばらつきはあま りなかった。 平均 標準偏差 5.8270 0.9530 7.1868 0.2331 実行時間の平均と標準偏差 (単位:ミリ秒)
実験結果(3.Maestroデータセットを 用いたベロシティ付与評価) ミスせずに演奏した22回目の演奏データの、各 音のベロシティの値を図にまとめた。 最初の音のベロシティの値が大きくなった。 それ以降は、 ベロシティの値が小さい ↓ たまにベロシティの値が大きくなる という流れが繰り返された。 全体のベロシティの平均は29.0とかなり低かった。 22回目の演奏におけるベロシティの最大値は83、 最小値は7となった。
考察 最初の音が記録されなかった ⇒最初の音が出力されるまでに約400ミリ秒かかっていることが分かった 黒鍵が音域によって変化する ⇒どのキーに音が割り当てられているか記憶して演奏する必要がある ⇒ミスが無くなるまでに時間がかかった 1回目のベロシティの値がかなり大きくなった ⇒直近3回の演奏で演奏された音の特徴量を入力している ⇒3回目の演奏までは、特徴量の値を0としているので、予測が不正確になった可能性が考 えられる
結論 従来の研究では,PC用キーボードではキーの間隔が取れないため指くぐりが難しかった。 ⇒白鍵にあたる列を2列にすることによって,指くぐりをするための間隔を確保することが出来た。 提案システムを用いて使用した演奏では、最初の音に遅延が入ってしまった。 演奏の中で提案システムを用いてリアルタイムに強弱の変化を付けることは出来たが、ベロシ ティの平均値が低くなってしまった。
今後の展望 ・遅延の解消 ・学習の精度向上 ・被験者に提案システムを使用してもらい、評価実験を行う ・左手の和音を利用して演奏を行った評価実験を行う