(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】演奏情報予測装置、演奏モデル訓練装置、演奏情報生成システム、演奏情報予測方法及び演奏モデル訓練方法
(51)【国際特許分類】
G10H 1/00 20060101AFI20241112BHJP
G10G 3/04 20060101ALI20241112BHJP
【FI】
G10H1/00 A
G10G3/04
(21)【出願番号】P 2020158761
(22)【出願日】2020-09-23
【審査請求日】2023-09-05
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐藤 博毅
【審査官】中村 天真
(56)【参考文献】
【文献】特表2017-532614(JP,A)
【文献】特開平05-188932(JP,A)
【文献】特開2010-217408(JP,A)
【文献】Masaki Otsuka and Tetsuro Kitahara,Improving MIDI Guitar's Accuracy with NMF and Neural Net,Proceedings of the 16th International Society for Music Information Retrieval (ISMIR) Conference,2015年,pp. 413-419
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00-7/02
G10H 1/00-7/12
(57)【特許請求の範囲】
【請求項1】
弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、
前記スペクトルデータフレームに含まれる所定個数の上位ピークの周波数から構成されるスペクトル特徴化データフレームを取得する前処理部と、
訓練済み演奏モデルを利用して、基準時刻の
前記スペクトル特徴化データフレームと、前記基準時刻
前後の時刻の前記スペクトル特徴化データフレームとから、前記弦楽器演奏の演奏情報を予測する演奏情報予測部と、
を有
し、
前記訓練済み演奏モデルは、前記基準時刻の前記スペクトル特徴化データフレームと、前記基準時刻前の第1の数のスペクトル特徴化データフレームと、前記基準時刻後の第2の数のスペクトル特徴化データフレームとを取得し、弦楽器の奏法及びノート番号を出力する、演奏情報予測装置。
【請求項2】
前記演奏情報は、発音情報、消音情報及びピッチ変更情報から構成される、請求項1記載の演奏情報予測装置。
【請求項3】
前記発音情報は、
前記奏法及び
前記ノート番号を含む、請求項2記載の演奏情報予測装置。
【請求項4】
前記訓練済み演奏モデルは、ニューラルネットワークにより実現される、請求項1乃至
3何れか一項記載の演奏情報予測装置。
【請求項5】
前記演奏情報は、MIDIプロトコルに従って記述される、請求項1乃至
4何れか一項記載の演奏情報予測装置。
【請求項6】
訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、
前記スペクトルデータフレームに含まれる所定個数の上位ピークの周波数から構成されるスペクトル特徴化データフレームを取得する前処理部と、
前記訓練用演奏情報を利用して、基準時刻の
前記スペクトル特徴化データフレームと、前記基準時刻
前後の時刻の前記スペクトル特徴化データフレームとから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練する演奏モデル訓練部と、
を有する演奏モデル訓練装置。
【請求項7】
電子弦楽器と、
請求項1乃至
5何れか一項記載の演奏情報予測装置と、
請求項
6記載の演奏モデル訓練装置と、
を有する演奏情報生成システム。
【請求項8】
1つ以上のプロセッサが、弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、
前記スペクトルデータフレームに含まれる所定個数の上位ピークの周波数から構成されるスペクトル特徴化データフレームを取得するステップと、
前記1つ以上のプロセッサが、訓練済み演奏モデルを利用して、基準時刻の
前記スペクトル特徴化データフレームと、前記基準時刻
前後の時刻の前記スペクトル特徴化データフレームとから、前記弦楽器演奏の演奏情報を予測するステップと、
を有
し、
前記訓練済み演奏モデルは、前記基準時刻の前記スペクトル特徴化データフレームと、前記基準時刻前の第1の数のスペクトル特徴化データフレームと、前記基準時刻後の第2の数のスペクトル特徴化データフレームとを取得し、弦楽器の奏法及びノート番号を出力する、演奏情報予測方法。
【請求項9】
1つ以上のプロセッサが、訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、
前記スペクトルデータフレームに含まれる所定個数の上位ピークの周波数から構成されるスペクトル特徴化データフレームを取得するステップと、
前記1つ以上のプロセッサが、前記訓練用演奏情報を利用して、基準時刻の
前記スペクトル特徴化データフレームと、前記基準時刻
前後の時刻の前記スペクトル特徴化データフレームとから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練するステップと、
を有する演奏モデル訓練方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、演奏情報予測装置、演奏モデル訓練装置、演奏情報生成システム、演奏情報予測方法及び演奏モデル訓練方法に関する。
【背景技術】
【0002】
ギターのような楽器の弦振動波形を、マグネティックピックアップもしくはピエゾピックアップによって電気信号化し、そのピッチや音量を分析することで、MIDI(Musical Instrumental Digital Interface)メッセージ等のデジタル演奏データに変換するギターコントローラ(もしくはギターシンセサイザー)という電子楽器が存在する。このようなタイプのコントローラは音源を鳴らすためのみの専用ギターコントローラと異なり、通常のギターのシェイプや機能を残しつつ、そこに演奏情報取得用の各弦に独立のピックアップを搭載することでMIDI演奏も可能となるという大きなメリットがあり、最も一般的な形態であると言える。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平9-6339号公報
【文献】特開2000-105590号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、このような楽器において長年解決されていない大きな問題の1つとして撥弦時に演奏者が意図しない演奏情報に変換されてしまう、いわゆるトラッキングエラーがある。これは、入力信号の波形のピークやゼロクロスポイントの周期などを観測することでピッチを検出し、入力エンベロープの変化量だけから発音方法を判断しているため、撥弦時に発生するピッキングやタッピングによる過渡的な演奏ノイズや、弦の複雑な倍音の動きに騙されてしまうためである。
【0005】
例えば、ピッキングノイズについて、撥弦前にピックが弦に接した際に発生する摩擦音、及びピックとブリッジの間の非常に短い長さの弦の振動によるピッキングノイズを演奏音と認識してしまうケースがある。これにより、実際に弦を抑えたフレット位置に対応する演奏音程とはかけ離れた高い音程のノート情報が発生されうる。
【0006】
また、ハーモニクスについて、意図的な奏法によってハーモニクスを発生したのではなく、通常演奏において弦振動に含まれるハーモニクスの量が多いために基音と倍音の区別が付かず、ハーモニクスの音程を演奏ノートと認識してしまうケースがある。最も多いのは、2倍音、すなわち、本来の音程よりも1オクターブ高い音程と誤認されてしまうことであるが、3倍音を基音と間違えるケースも起こりやすい。
【0007】
また、ピッキングとレガートの奏法の誤認識について、ギターの弦の発音奏法を判断して演奏情報を付加する場合、意図しない発音奏法として誤解されるケースがある。例えば、ギターの弦の発音奏法は音の特性から以下のように分類できる。
A.ピッキングや指に依る通常の撥弦
B.あるフレットが押さえられている弦に対して、それよりも上位のフレット位置を別の指で叩くか触れることで押弦し、音程を変えるハンマリング・オン奏法(hammer-on)(フレットを押さえる手の指の場合)、あるいはタッピング奏法(通常の押弦の手と反対の手の指で弦を叩く)
C.フレットを押さえる指で弦を少し引っ張って離すか、あるいは前述のタッピングした指をそのまま使って引っ張って離すことで撥弦するプリング・オフ奏法(pull-off)
D.現在発音中の弦の上を指で押さえながらスライドさせることで音程を変えるグリッサンド奏法、あるいはスライド奏法。これは、MIDIメッセージでは撥弦による新規発音とは解釈せず、ピッチ変化として表現するのが普通である。
【0008】
これらの中で一般的にA,B,Cのケースでは、新しい発音情報が発生し、Dのケースではレガート奏法と判断し、現在の発音中のノートに対してピッチベンド情報を発生させる。
【0009】
これらの奏法の判断は発音時の音量エンベロープの変化だけでなく、過渡時に発生する各種ノイズの倍音のレベルの変化の様子なども解析することで判断できると考えられるが、このような解析は従来の方法では困難であった。
【0010】
また、さらに言えばギターごとに異なる特性、演奏者の癖、ピックの形状や材質、フィンガーピッキングでは演奏者の皮膚の硬さなどで撥弦時の周波数成分や変化が大きく変わってくるため、判断時には個別の特性を考慮する必要もあるが、判断時にそのようなファクターを加味するものも存在しないのが実情であり、奏法の判断自体を行っている楽器はほとんど存在しないのが実情である。
【0011】
上記課題を鑑み、本開示の課題は、電子弦楽器の演奏を演奏情報に高精度に変換するための技術を提供することである。
【課題を解決するための手段】
【0012】
上記課題を解決するため、本開示の一態様は、弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、前記スペクトルデータフレームに含まれる所定個数の上位ピークの周波数から構成されるスペクトル特徴化データフレームを取得する前処理部と、訓練済み演奏モデルを利用して、基準時刻の前記スペクトル特徴化データフレームと、前記基準時刻前後の時刻の前記スペクトル特徴化データフレームとから、前記弦楽器演奏の演奏情報を予測する演奏情報予測部と、を有し、前記訓練済み演奏モデルは、前記基準時刻の前記スペクトル特徴化データフレームと、前記基準時刻前の第1の数のスペクトル特徴化データフレームと、前記基準時刻後の第2の数のスペクトル特徴化データフレームとを取得し、弦楽器の奏法及びノート番号を出力する、演奏情報予測装置に関する。
【発明の効果】
【0013】
本開示によると、電子弦楽器の演奏を演奏情報に高精度に変換することができる。
【図面の簡単な説明】
【0014】
【
図1】本開示の一実施例によるギターコントローラを示す概略図である。
【
図2】本開示の一実施例による演奏情報の構成を示す図である。
【
図3】本開示の一実施例によるTAB譜を示す図である。
【
図4】本開示の一実施例によるギターコントローラの外観を示す図である。
【
図5】本開示の一実施例によるギターのハードウェア構成を示すブロック図である。
【
図6】本開示の一実施例による制御装置のハードウェア構成を示すブロック図である。
【
図7】本開示の一実施例による演奏モデル訓練装置の動作を示す概略図である。
【
図8】本開示の一実施例による演奏モデル訓練装置の機能構成を示すブロック図である。
【
図9】本開示の一実施例によるスペクトルデータフレームを示す概略図である。
【
図10】本開示の一実施例による特徴化データフレームを示す概略図である。
【
図11】本開示の一実施例による演奏モデルのアーキテクチャを示す図である。
【
図12】本開示の他の実施例による演奏モデルのアーキテクチャを示す図である。
【
図13】本開示の一実施例による演奏モデル訓練処理を示すフローチャートである。
【
図14】本開示の一実施例による演奏情報予測装置の動作を示す概略図である。
【
図15】本開示の一実施例による演奏情報予測装置の機能構成を示すブロック図である。
【
図16】本開示の一実施例による音量検出及びピッチ検出を示す概略図である。
【
図17】本開示の一実施例による演奏情報予測処理を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下の実施例では、ギターの演奏によって生成される弦振動波形から演奏情報(例えば、MIDIメッセージなど)を生成するギターコントローラが開示される。なお、本開示は、ギターコントローラに限定されず、弦振動波形抽出機能を備えた弦楽器の演奏から演奏情報を生成する他の何れかの演奏情報生成装置に適用されてもよい。
[本開示の概要]
後述される実施例を概略すると、
図1に示されるように、本開示の一実施例によるギターコントローラ10は、ギター50及び制御装置100を有する。ギターコントローラ10は、ニューラルネットワークなどの機械学習モデルとして実現される演奏モデルを利用して、ギター50の演奏によって生成される弦振動波形から演奏情報を生成する。
【0016】
本開示の一実施例による演奏情報は、
図2に示されるように、発音情報、消音情報及びピッチ変更情報の演奏種別を示す。
【0017】
発音情報は、分類モデルとしての演奏モデルによって判別されるノート番号及び奏法と、エンベロープ検出による撥弦の強さとを示す。奏法は、例えば、0)ピックによるピッキング、1)フィンガーピッキング、2)ハンマリング・オン(タッピング)、3)プリング・オフ、4)ミュートピッキング、5)オープンハーモニクス、及び6)ピッキング・ハーモニクスの7種類に分類される。発音をMIDIメッセージにより表現する場合、奏法はControl Change:0xBn,0x46,vvによって表し、ノート番号及び撥弦の強さはNote On:0x9n,kk,vvによって表してもよい。
【0018】
また、消音情報は、エンベロープ検出によって検出され、0)発音停止及び1)置き換えを表す。消音をMIDIメッセージにより表現する場合、Control Change:0xBn,0x46,vv及びNote Off:0x8n,kk,vvによって表してもよい。
【0019】
また、ピッチ変更情報は、ゼロクロスカウントによって検出され、例えば、半音チョーキングアップ、半音チョーキングダウン、全音チョーキングアップ、全音チョーキングダウン、1音半チョーキングアップ、1音半チョーキングダウン、2音チョーキングアップ、2音チョーキングダウン、及びスライドを示す。ピッチ変化をMIDIメッセージにより表現する場合、Pitch Bend:0xEn,ll,mmによって表してもよい。
【0020】
図1に示された実施例では、ギターコントローラ10は、演奏モデルを訓練する訓練モードと、訓練した演奏モデルを利用して演奏情報を予測する演奏モードとの2つの動作モードを有し、制御装置100は、訓練モードにおいて利用される演奏モデル訓練装置200と、演奏モードにおいて利用される演奏情報予測装置300とを有する。
【0021】
まず、訓練モードにおいて、ギターコントローラ10は、訓練用演奏情報データベース80から訓練データを取得する。訓練データは、例えば、楽譜データ(例えば、TAB譜など)と、当該楽譜データに対応するMIDIファイルとのペアから構成される。TAB譜は、例えば、
図3に示されるような周知の記法に従って記述されたものであってもよい。ユーザが取得した訓練用楽譜データの楽譜に従ってギター50を演奏すると、演奏モデル訓練装置200は、ユーザの演奏に基づきギター50によって生成された弦振動情報を訓練対象の演奏モデルに入力し、演奏モデルから出力される演奏情報としてのMIDIメッセージと訓練用MIDIファイルとを比較し、これらの誤差が小さくなるように演奏モデルを訓練する。本開示では、弦振動波形データが高速フーリエ変換(FFT)によってスペクトルデータに変換され、スペクトルデータにおける所定数のピークに基づき特徴化されたスペクトル特徴化データを利用して、演奏モデルから演奏情報を取得する。訓練が終了すると、演奏モデル訓練装置200は、訓練した演奏モデルを演奏情報予測装置300に提供する。
【0022】
次に、演奏モードでは、ユーザがギター50を演奏すると、演奏情報予測装置300は、ユーザの演奏に基づきギター50によって生成された弦振動情報を訓練済み演奏モデルに入力し、MIDIメッセージなどの演奏情報を取得する。取得した演奏情報は、例えば、外部の再生装置やコンピュータに送信され、ユーザは、再生装置を介してユーザによる演奏を再生したり、演奏情報をコンピュータ上で利用できる。
【0023】
これにより、電子弦楽器の演奏を演奏情報に変換する際のトラッキングエラーを軽減すると共に、高精度に奏法を判断することが可能になる。
【0024】
なお、以下に説明する実施例によるギターコントローラ10は、演奏モデル訓練装置200を有するが、本開示はこれに限定されず、例えば、演奏モデルは、外部のコンピュータやサーバによって訓練され、訓練された演奏モデル及び/又は演奏モデルの更新情報が外部のコンピュータやサーバから演奏情報予測装置300に提供されてもよい。
[ハードウェア構成]
次に、
図4を参照して、ギターコントローラ10の物理的構成を説明する。
図4は、本開示の一実施例によるギターコントローラ10の外観を示す図である。
【0025】
図4に示されるように、ギターコントローラ10は、相互接続されたギター50と制御装置100とから構成されるセパレートタイプの演奏情報生成システムである。
【0026】
ギター50は、通常のエレクトリックギターに、6つの弦の各弦の独立した振動を拾うためのヘクサディバイデッドピックアップ、演奏情報の音量をコントロールするためのMIDIボリューム、制御装置100に対してパッチメモリ番号の上下切り替えを行うためのアップダウンスイッチ、を搭載したものである。これらの情報とノーマルなピックアップの出力が、マルチケーブルによって制御装置100に送信されている。また、電源は制御装置100からマルチケーブル経由で供給される。本実施例のヘクサディバイデッドピックアップは、ノーマルピックアップと同じマグネティック(磁気)ピックアップである。
【0027】
一方、制御装置100は、ギターの弦振動の入力を受け、MIDIフォーマットによる演奏情報を生成する。演奏情報の送信先は、限定することなく、音源ユニットやコンピュータ等であってもよい。制御装置100は、
図1に示されるように、各種設定を記憶したパッチメモリのバンク番号とナンバーを切り替えるフットスイッチ、任意の演奏メッセージを割り当てて送信することができるCONTROLスイッチとフットペダルを有する。現在選択されているパッチメモリの番号はBANK/NUM画面に表示される。メインの表示デバイスとしてLCDがあるが、画面上にはタッチパネルが装着される。また、データを入力する際のロータリエンコーダもパネル上に装備される。端子として、ギター50からのマルチケーブルの入力端子GUITAR INPUT、ノーマルピックアップのオーディオ出力端子GUITAR OUT、MIDI演奏信号の出力端子MIDI OUT、ホストコンピュータとの接続端子USB to HOST、AC電源入力端子AC POWERが備えられる。
【0028】
次に、
図5を参照して、本開示の一実施例によるギター50のハードウェア構成を説明する。
図5は、本開示の一実施例によるギター50のハードウェア構成を示すブロック図である。
【0029】
図5に示されるように、ギター50は、ヘクサディバイデッドピックアップのバッファアンプを通した信号、MIDIボリュームコントロール、パッチメモリのアップダウンスイッチ、そしてノーマルピックアップの信号がマルチケーブルで制御装置100に送信される。3つのノーマルピックアップはピックアップセレクターで選択され、トーンコントロール回路と、ボリュームコントロール回路を経てバッファアンプを通過したものが制御装置100に送信される。
【0030】
次に、
図6を参照して、本開示の一実施例による制御装置100のハードウェア構成を説明する。
図6は、本開示の一実施例による制御装置のハードウェア構成を示すブロック図である。
【0031】
図6に示されるように、制御装置100は、CPU(Central Processing Unit)及びDSP(Digital Signal Processor)から構成され、CPUは制御装置100全体の機能及び処理を管理し、DSPは高速処理が必要な波形解析処理を実行する。CPUのバスには、CPUが使用するRAM、Flash ROM、LCDをコントロールするLCDコントローラ、各種I/Oデバイスと接続されるI/Oインターフェース、DSP、USBインターフェース、及びMIDIインターフェースが接続される。さらに、I/Oインターフェースにはフットスイッチ、ロータリエンコーダ、LCDタッチパネル、ギター50のMIDIボリュームと、制御装置100のペダルの位置を検出するためのA/Dコンバータ、パッチメモリの番号表示用のLEDが接続される。1つのA/Dコンバータしか図示されていないが、マルチプレクサによって入力ソースを時分割で切り替えて値を読み込んでいる。専用のRAMとFlash ROMが接続されているDSPには、ヘクサディバイデッドピックアップの6つの弦の出力を高速にデジタル信号化するための独立したA/Dコンバータが接続されており高速な解析処理を行うことができる。
【0032】
しかしながら、ギター50及び制御装置100は、上述したハードウェア構成に限定されるものでなく、他の何れか適切なハードウェア構成により実現されてもよい。
[演奏モデル訓練装置]
次に、
図7~12を参照して、本開示の一実施例による演奏モデル訓練装置200を説明する。
図7は、本開示の一実施例による演奏モデル訓練装置200の動作を示す概略図である。
【0033】
図7に示されるように、演奏モデル訓練装置200は、訓練データを格納する訓練用演奏情報データベース80に格納されている訓練データを利用して演奏モデルを訓練する。具体的には、訓練データは、訓練用楽譜データと当該楽譜データに対応する訓練用演奏情報とのペアから構成され、訓練用楽譜データに基づき表示された楽譜(例えば、TAB譜など)を演奏者に表示し、演奏者は、メトロノームによるテンポ制御の下でギター50を演奏する。当該演奏を表す弦振動波形データは、演奏モデル訓練装置200に提供され、演奏モデル訓練装置200は、取得した弦振動波形データを以下で詳細に説明するスペクトル特徴化データフレームに変換し、基準時及び基準時前後のスペクトル特徴化データフレームを訓練対象の演奏モデルに入力する。そして、演奏モデル訓練装置200は、演奏モデルからの出力と訓練用演奏情報の発音情報(例えば、ノート番号と奏法など)とを比較し、その誤差に応じて演奏モデルのパラメータを更新する。演奏モデル訓練装置200は、所定の終了条件が充足されるまで上述した処理を繰り返し、演奏モデルからの出力が訓練用演奏情報の発音情報に近づくように演奏モデルを最適化する。
【0034】
図8は、本開示の一実施例による演奏モデル訓練装置200の機能構成を示すブロック図である。
【0035】
図8に示されるように、演奏モデル訓練装置200は、前処理部210及び演奏モデル訓練部220を有する。
【0036】
前処理部210は、訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、スペクトルデータフレームをスペクトル特徴化データフレームに変換する。
【0037】
具体的には、演奏者によってギター50が演奏されると、ギター50は、
図9に示されるように、時間と各弦の振幅とを示す弦振動波形データを取得し、演奏モデル訓練装置200に送信する。すなわち、ギター50は6弦からなるため、6種類の弦振動波形データが生成される。前処理部210は、各弦の弦振動波形データに対して高速フーリエ変換(FFT)を実行し、スペクトルデータを取得する。具体的には、前処理部210は、弦振動波形データから時間軸に関して重複する窓幅w(例えば、W=512,25.6msecなど)の弦振動波形フレームを抽出し、I回(I=64,3.2msecなど)のサンプリング毎にFFTを実行し、各弦振動波形フレームをスペクトルデータフレームに変換してもよい。
【0038】
スペクトルデータフレームへの変換後、前処理部210は、各スペクトルデータフレームの所定数個の上位のピークによってスペクトルデータフレームを特徴化する。例えば、上位4個のピークによってスペクトルデータフレームを特徴化する場合、前処理部210は、
図10に示されるように、スペクトルデータフレーム内の周波数軸に関するピーク(極大点)のうち上位4個のピークの周波数によってスペクトルデータフレームを特徴化し、当該4個のピークの周波数によるスペクトル特徴化データフレームを構成する。当該特徴化によると、データサイズが圧縮されると共に、予測対象の奏法及びノート番号に関係すると想定されるピークの波高及びピークからの波高の時間変化が強調され、演奏モデル訓練処理の精度の向上及び高速化が可能になると考えられる。
【0039】
前処理部210は、このようにして抽出した所定数のピークから構成されるスペクトル特徴化データを生成し、演奏モデル訓練部220に提供する。
【0040】
演奏モデル訓練部220は、訓練用演奏情報を利用して、基準時刻のスペクトル特徴化データフレームと、当該基準時刻のスペクトル特徴化データフレームの前後のスペクトル特徴化データフレームとから弦楽器演奏の演奏情報を予測する演奏モデルを訓練する。ここで、訓練対象の演奏モデルは、予測対象の基準時刻の奏法及びノート番号を予測する際、当該基準時刻のスペクトル特徴化データフレームだけでなく、当該基準時刻の前後の時刻のスペクトル特徴化データフレームを入力として取得し、基準時刻の奏法及びノート番号を出力する。例えば、演奏モデル訓練部220は、基準時刻のスペクトル特徴化データフレームと、基準時刻直前のp個のスペクトル特徴化データフレームと、基準時刻直後のn個のスペクトル特徴化データフレームとを演奏モデルに入力してもよい。ここで、所定数p,nは同一又は異なる所定値であってもよい。例えば、所定数p,nは、演奏者によるギター50の撥弦と、演奏情報予測装置300における演奏情報の出力とのタイムラグが演奏者によって認知できない程度の値に設定されることが好ましい。
【0041】
このように一定の時間範囲のスペクトル特徴化データフレームを利用することによって、フレーム間の前後関係を考慮して新たな撥弦が発生したか判断することができると共に、撥弦の時間変化を判断することが可能になる。
【0042】
なお、基準時刻において発音がなかった場合、すなわち、基準時刻が消音状態であった場合、演奏モデルは、検出不可を示す値を出力するように訓練されてもよい。
【0043】
一実施例では、演奏モデルは、ニューラルネットワークによって実現されてもよい。例えば、演奏モデルは、
図11に示されるようなネットワークアーキテクチャを有するニューラルネットワークであってもよい。この場合、演奏モデル訓練部220は、ニューラルネットワークの入力層に基準時刻のスペクトル特徴化データフレームと、基準時刻前後の(p+n)個のスペクトル特徴化データフレームとを入力し、中間層における演算を介し出力層から奏法番号Var及びノート番号Noteを取得する。
【0044】
また、他の実施例では、演奏モデルは、
図12に示されるような再帰型ニューラルネットワークによって実現されてもよい。この場合、演奏モデル訓練部220は、上述したp,nによる時間範囲より広い時間範囲のスペクトル特徴化データフレームを利用してもよく、例えば、基準時刻tのスペクトル特徴化データフレーム、基準時刻直前のb個(b>p)のスペクトル特徴化データフレーム、及び基準時刻直後のf個(f>n)のスペクトル特徴化データフレームを再帰型ニューラルネットワークの入力層X
t-b,・・・X
t-1,X
t,X
t+1,・・・,X
t+fに入力し、中間層における演算を介し出力層から奏法番号Var及びノート番号Noteを取得してもよい。再帰型ニューラルネットワークは、時系列データの処理に適しており、奏法番号Var及びノート番号Noteを高精度に予測することができると考えられる。
【0045】
また、訓練対象の演奏モデルは、事前訓練された機械学習モデルであってもよく、演奏モデル訓練部220は、上述した訓練処理によって、事前訓練された演奏モデルをファインチューニングするようにしてもよい。これにより、初期状態の機械学習モデルから演奏モデルを訓練するのと比較して、少ない訓練データにより高精度な演奏モデルを構築することが可能になる。
【0046】
演奏モデルから奏法及びノート番号を取得すると、演奏モデル訓練部220は、取得した奏法及びノート番号と、訓練用演奏情報の奏法及びノート番号とを比較し、これらが一致するように演奏モデルのパラメータを更新する。例えば、演奏モデルがニューラルネットワークにより実現される場合、演奏モデル訓練部220は、周知の誤差逆伝播法に従って比較結果に応じてニューラルネットワークのパラメータを更新してもよい。
【0047】
演奏モデル訓練部220は、所定の終了条件が充足されるまで、上述した処理を繰り返し、演奏モデルを訓練し、所定の終了条件が充足されると、当該時点における演奏モデルを訓練済み演奏モデルとして演奏情報予測装置300にわたす。ここで、所定の終了条件は、準備された全ての訓練データを処理したことなどであってもよい。
[演奏モデル訓練処理]
次に、
図13を参照して、本開示の一実施例による演奏モデル訓練処理を説明する。当該演奏モデル訓練処理は、上述した演奏モデル訓練装置200によって実現され、例えば、プロセッサがプログラム又は命令を実行することによって実現されてもよい。
図13は、本開示の一実施例による演奏モデル訓練処理を示すフローチャートである。
【0048】
図13に示されるように、ステップS101において、演奏モデル訓練装置200は、訓練用演奏情報データベース80から訓練用演奏情報を選択する。具体的には、演奏モデル訓練装置200は、ランダム、順次、ユーザ選択によって訓練用演奏情報を自動選択してもよい。
【0049】
ステップS102において、演奏モデル訓練装置200は、演奏情報をTAB譜の表示情報に変換する。
【0050】
ステップS103において、演奏モデル訓練装置200は、TAB譜を制御装置100のLCDなどに表示する。
【0051】
ステップS104において、演奏モデル訓練装置200は、演奏情報のテンポに合わせてMIDIプレーヤーをスタートする。
【0052】
ステップS105において、演奏モデル訓練装置200は、テンポに合わせてメトロノームをスタートする。
【0053】
ステップS106において、MIDIプレーヤーは、演奏情報を再生する。
【0054】
ステップS107において、メトロノームは、演奏情報を再生する。これにより、演奏者の演奏を取得するための準備が整い、演奏者は演奏を開始する。
【0055】
ステップS108において、演奏モデル訓練装置200は、弦番号sを0に初期化する。ギター50は6弦からなるため、弦番号sは0~5の値をとりうる。
【0056】
ステップS109において、演奏モデル訓練装置200は、MIDIプレーヤーから発生したsチャネルの発音情報を発音情報メモリpに格納する。
【0057】
ステップS110において、演奏モデル訓練装置200は、演奏者による演奏を表す弦番号sの弦振動波形をバッファから取得し、スペクトル特徴化データフレームを生成し、リングバッファなどに格納する。
【0058】
ステップS111において、演奏モデル訓練装置200は、基準時刻のスペクトル特徴化データフレーム、基準時刻直前のp個のスペクトル特徴化データフレーム、及び基準時刻直後のn個のスペクトル特徴化データフレームを訓練対象の演奏モデルに入力する。
【0059】
ステップS112において、演奏モデル訓練装置200は、演奏モデルの出力結果をメモリoに格納する。
【0060】
ステップS113において、演奏モデル訓練装置200は、メモリpの発音情報(例えば、奏法番号及びノート番号など)と、メモリoの演奏モデルの出力結果とを比較する。
【0061】
ステップS114において、演奏モデル訓練装置200は、メモリpの発音情報とメモリoの出力結果との間に差分があるか判断する。
【0062】
有意な差分があった場合(S114:Yes)、演奏モデル訓練装置200は、ステップS115において、当該差分から演奏モデルを更新するための最適化情報を演奏モデルに適用し、ステップS116に移行する。他方、有意な差分がなかった場合(S114:No)、演奏モデル訓練装置200は、演奏モデルを更新することなく、ステップS116に移行する。
【0063】
ステップS116において、演奏モデル訓練装置200は、次の弦を処理するため、弦番号sを1だけインクリメントする。
【0064】
ステップS117において、演奏モデル訓練装置200は、全ての弦について演奏モデルの更新処理を終了したか判断し、全ての弦について更新処理が終了していない場合(S117:Yes)、ステップS109に戻る。
【0065】
ステップS118において、演奏モデル訓練装置200は、演奏情報全体を処理したか判断し、演奏情報全体を処理していない場合(S118:No)、ステップS106に戻る。
【0066】
ステップS119において、演奏モデル訓練装置200は、メトロノーム及びMIDIプレーヤーを停止する。
【0067】
ステップS120において、演奏モデル訓練装置200は、ユーザなどによる終了操作があったか判断し、終了操作がない場合(S120:No)、ステップS101に戻り、次の演奏情報を選択し、終了操作があった場合(S120:Yes)、当該処理を終了する。
[演奏情報予測装置]
次に、
図14~16を参照して、本開示の一実施例による演奏情報予測装置300を説明する。
図14は、本開示の一実施例による演奏情報予測装置300の動作を示す概略図である。
【0068】
演奏情報予測装置300は、演奏モデル訓練装置200によって訓練された演奏モデルを利用して、演奏者によるギター50の演奏から演奏情報(例えば、MIDIメッセージなど)を予測する。具体的には、
図14に示されるように、演奏情報予測装置300は、ギター50からギター演奏を表す弦振動波形データを取得すると、取得した弦振動波形データに対して高速フーリエ変換を実行し、時間軸に関して重複部分を有する所定の窓幅のスペクトルデータフレームを生成する。そして、演奏情報予測装置300は、各スペクトルデータフレームにおける周波数に関する所定数個の上位のピークを特定し、特定したピークを抽出することによってスペクトル特徴化データフレームを生成する。例えば、これらの前処理は、DSPによって実現されてもよい。
【0069】
基準時刻の演奏情報を予測するため、演奏情報予測装置300は、基準時刻前後の一定の時間範囲のスペクトル特徴化データフレーム、すなわち、基準時刻のスペクトル特徴化データフレーム、基準時刻直前のp個のスペクトル特徴化データフレーム及び基準時刻直後のn個のスペクトル特徴化データフレームを訓練済み演奏モデルに入力し、奏法及びノート番号を含む発音情報を取得する。また、演奏情報予測装置300は、基準時刻のスペクトルに対して音量検出及びピッチ検出を実行し、演奏の音量及びピッチを検出する。演奏情報予測装置300は、検出した音量及びピッチに基づきそれぞれ消音情報及びピッチ変更情報を生成すると共に、音量に基づき撥弦の強さを示すベロシティー情報を生成し、発音情報に付加する。このようにして、演奏情報予測装置300は、各時刻のスペクトル特徴化データフレームから発音情報、消音情報及び/又はピッチ変更情報を含む各時刻の演奏情報(例えば、MIDIメッセージなど)を生成し、外部機器(例えば、再生装置、コンピュータ等)に送信する。例えば、これらの演奏情報生成処理は、CPUによって実現されてもよい。
【0070】
図15は、本開示の一実施例による演奏情報予測装置300の機能構成を示すブロック図である。
【0071】
図15に示されるように、演奏情報予測装置300は、前処理部310及び演奏情報予測部320を有する。
【0072】
前処理部310は、弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、スペクトルデータフレームをスペクトル特徴化データフレームに変換する。前処理部210と同様に、前処理部310は、演奏者によってギター50が演奏されると、ギター50から各弦の弦振動波形データを取得し、各弦の弦振動波形データに対して高速フーリエ変換(FFT)を実行し、スペクトルデータを取得する。具体的には、前処理部210と同様の設定の下、前処理部310は、弦振動波形データから時間軸に関して重複する窓幅wの弦振動波形フレームを抽出し、サンプリング毎にFFTを実行し、各弦振動波形フレームをスペクトルデータフレームに変換してもよい。スペクトルデータフレームへの変換後、前処理部310は、各スペクトルデータフレームの所定数個の上位のピークに基づきスペクトル特徴化データフレームを生成し、基準時刻前後の一定の時間範囲におけるスペクトル特徴化データフレームをリングバッファなどに格納する。
【0073】
演奏情報予測部320は、訓練済み演奏モデルを利用して、基準時刻のスペクトル特徴化データフレームと、基準時刻のスペクトル特徴化データフレームの前後のスペクトル特徴化データフレームとから、弦楽器演奏の演奏情報を予測する。具体的には、演奏情報予測部320は、基準時刻のスペクトル特徴化データフレーム、基準時刻直前のp個のスペクトル特徴化データフレーム及び基準時刻直後のn個のスペクトル特徴化データフレームを訓練済み演奏モデルに入力し、基準時刻における奏法及びノート番号を取得する。
【0074】
また、これと並行して、演奏情報予測部320は、基準時刻のスペクトル特徴化データフレームに対して音量検出及びピッチ検出を実行する。例えば、音量検出について、演奏情報予測部320は、
図16(a)に示されるように、スペクトル特徴化データフレームの所定数のピークの周波数レベルの合計を算出し、算出した合計の周波数レベルを当該基準時刻における音量として決定してもよい。当該基準時刻に対して訓練済み演奏モデルが発音を検出しなかった場合、あるいは、検出した音量が消音状態と認められる所定の閾値以下であった場合、演奏情報予測部320は、発音がなかったと判断し、演奏情報として消音情報を出力する。そうでない場合、演奏情報予測部320は、発音があったと判断し、検出した音量を当該発音のベロシティー値とし、演奏モデルから出力された奏法及びノート番号と共に当該ベロシティー値を発音情報に含める。
【0075】
また、ピッチ検出について、演奏情報予測部320は、
図16(b)に示されるように、スペクトル特徴化データフレームの所定数のピークのうち最小の周波数レベルを撥弦のピッチと決定し、ピッチ情報を生成する。そして、演奏情報予測部320は、直近のピッチ情報又は発音情報と差異があった場合、ピッチ変更があったと判断し、ピッチ変更情報を出力する。
【0076】
なお、前処理部310及び演奏情報予測部320は、全ての弦に対して上述した処理を並列に実行する。
[演奏情報予測処理]
次に、
図17を参照して、本開示の一実施例による演奏情報予測処理を説明する。当該演奏情報予測処理は、上述した演奏情報予測装置300によって実現され、例えば、プロセッサがプログラム又は命令を実行することによって実現されてもよい。
図17は、本開示の一実施例による演奏情報予測処理を示すフローチャートである。
【0077】
図17に示されるように、ステップS201において、演奏情報予測装置300は、弦番号sを0に初期化する。ギター50は6弦から構成されるため、弦番号sは0~5の値をとる。
【0078】
ステップS202において、演奏情報予測装置300は、弦振動波形データからスペクトル特徴化データフレームを生成し、基準時刻のスペクトル特徴化データフレームに対して音量検出を実行する。
【0079】
ステップS203において、演奏情報予測装置300は、検出した音量Iが所定の閾値未満であるか判断する。音量Iが所定の閾値以上である場合(S203:No)、演奏情報予測装置300は、発音中であると判断し、ステップS206に移行する。
【0080】
他方、音量Iが所定の閾値未満である場合(S203:Yes)、演奏情報予測装置300は、ステップS204において、当該基準時刻において発音中であるかを判断する。例えば、当該判断は、訓練済み演奏モデルから前回発音情報の出力があったか否かに基づき行われてもよい。発音中であった場合(S204:Yes)、演奏情報予測装置300は、ステップS205において、演奏モデルから出力されたノート番号に対応した消音情報を生成する。発音中でない場合(S204:No)、演奏情報予測装置300は、ステップS206に移行する。
【0081】
ステップS206において、演奏情報予測装置300は、当該基準時刻のスペクトル特徴化データフレーム、基準時刻直前のp個のスペクトル特徴化データフレーム、及び基準時刻直後のn個のスペクトル特徴化データフレームをバッファから抽出する。
【0082】
ステップS207において、演奏情報予測装置300は、抽出したスペクトル特徴化データフレームを演奏モデルに入力する。
【0083】
ステップS208において、演奏情報予測装置300は、演奏モデルから奏法及びノート番号を含む発音情報が出力されたか判断する。発音情報が出力された場合(S208:Yes)、演奏情報予測装置300は、ステップS209において、出力された奏法及びノート番号をそれぞれ変数v,kに代入する。他方、発音情報が出力されなかった場合(S208:No)、演奏情報予測装置300は、ステップS215に移行する。
【0084】
ステップS210において、演奏情報予測装置300は、発音があったか判断する。発音があった場合(S210:Yes)、演奏情報予測装置300は、ステップS211において、前回の発音イベントのノート番号K0の消音情報を生成する。他方、発音がない場合(S210:No)、演奏情報予測装置300は、ステップS212に移行する。
【0085】
ステップS212において、演奏情報予測装置300は、奏法番号v、ノート番号k及び音量Iから変換されたベロシティーを含む発音情報を生成する。
【0086】
ステップS213において、演奏情報予測装置300は、前回の発音イベントのノート番号K0にkを代入する。
【0087】
ステップS214において、演奏情報予測装置300は、前回発生したピッチP0=kに対応するピッチを特定する。
【0088】
ステップS215において、演奏情報予測装置300は、基準時刻のスペクトル特徴化データフレームに対してピッチ検出を実行し、検出したピッチをpに格納する。
【0089】
ステップS216において、演奏情報予測装置300は、p=P0であるか判断する。演奏情報予測装置300は、p=P0である場合(S216:Yes)、ステップS218に移行し、p=P0でない場合(S216:No)、ステップS217において、pからの差分によってピッチベンド情報を生成する。
【0090】
ステップS218において、演奏情報予測装置300は、次の弦に対して上述した処理を実行するため、弦番号sを1だけインクリメントする。
【0091】
ステップS219において、演奏情報予測装置300は、全ての弦が処理されたか判断し、全ての弦が処理された場合(S219:No)、当該演奏情報予測処理を終了し、そうでない場合(S219:Yes)、次の弦に対して上述した処理を繰り返す。
【0092】
なお、上述した実施例では、ギター50などの弦楽器の弦振動波形データから演奏情報を予測する演奏モデルを訓練し、訓練した演奏モデルを利用して演奏情報を予測する演奏情報予測システムを説明したが、本開示はこれに限定されず、管楽器に適用されてもよい。すなわち、本開示は、管楽器の空気振動波形データから演奏情報を予測する演奏モデルを訓練し、訓練した演奏モデルを利用して演奏情報を予測する演奏情報予測システムに適用されてもよい。
【0093】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0094】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[付記]
本開示の一態様では、
弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、スペクトル特徴化データフレームを取得する前処理部と、
訓練済み演奏モデルを利用して、基準時刻のスペクトル特徴化データフレームと、前記基準時刻のスペクトル特徴化データフレームの前後のスペクトル特徴化データフレームとから、前記弦楽器演奏の演奏情報を予測する演奏情報予測部と、
を有する演奏情報予測装置が提供される。
【0095】
一実施例では、前記演奏情報は、発音情報、消音情報及びピッチ変更情報から構成されてもよい。
【0096】
一実施例では前記発音情報は、奏法及びノート番号を含んでもよい。
【0097】
一実施例では、前記訓練済み演奏モデルは、前記奏法及び前記ノート番号を出力してもよい。
【0098】
一実施例では、前記訓練済み演奏モデルは、前記基準時刻のスペクトル特徴化データフレームと、前記基準時刻のスペクトル特徴化データフレームの前の第1の数のスペクトル特徴化データフレームと、前記基準時刻のスペクトル特徴化データフレームの後の第2の数のスペクトル特徴化データフレームとを取得し、前記奏法及び前記ノート番号を出力してもよい。
【0099】
一実施例では、前記訓練済み演奏モデルは、ニューラルネットワークにより実現されてもよい。
【0100】
一実施例では、前記スペクトル特徴化データフレームは、前記スペクトルデータフレームに含まれる所定数個の上位のピークから構成されてもよい。
【0101】
一実施例では、前記演奏情報は、MIDIプロトコルに従って記述されてもよい。
【0102】
本開示の他の態様では、
訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、スペクトル特徴化データフレームを取得する前処理部と、
前記訓練用演奏情報を利用して、基準時刻のスペクトル特徴化データフレームと、前記基準時刻のスペクトル特徴化データフレームの前後のスペクトル特徴化データフレームとから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練する演奏モデル訓練部と、
を有する演奏モデル訓練装置が提供される。
【0103】
本開示の他の態様では、
電子弦楽器と、
上述した演奏情報予測装置と、
上述した演奏モデル訓練装置と、
を有する演奏情報生成システムが提供される。
【0104】
本開示の他の態様では、
1つ以上のプロセッサが、弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、スペクトル特徴化データフレームを取得するステップと、
前記1つ以上のプロセッサが、訓練済み演奏モデルを利用して、基準時刻のスペクトル特徴化データフレームと、前記基準時刻のスペクトル特徴化データフレームの前後のスペクトル特徴化データフレームとから、前記弦楽器演奏の演奏情報を予測するステップと、
を有する演奏情報予測方法が提供される。
【0105】
本開示の他の態様では、
1つ以上のプロセッサが、訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからスペクトルデータフレームを生成し、前記スペクトルデータフレームに基づいて、スペクトル特徴化データフレームを取得するステップと、
前記1つ以上のプロセッサが、前記訓練用演奏情報を利用して、基準時刻のスペクトル特徴化データフレームと、前記基準時刻のスペクトル特徴化データフレームの前後のスペクトル特徴化データフレームとから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練するステップと、
を有する演奏モデル訓練方法が提供される。
【符号の説明】
【0106】
10 ギターコントローラ
50 ギター
100 制御装置
200 演奏モデル訓練装置
210 前処理部
220 演奏モデル訓練部
300 演奏情報予測装置
310 前処理部
320 演奏情報予測部