(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 2020158866
(22)【出願日】2020-09-23
【審査請求日】2023-09-05
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐藤 博毅
【審査官】中村 天真
(56)【参考文献】
【文献】特開昭63-261391(JP,A)
【文献】特表平09-510794(JP,A)
【文献】特開2006-030692(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00-7/02
G10H 1/00-7/12
(57)【特許請求の範囲】
【請求項1】
弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成する前処理部と、
前記波形特徴化データから弦楽器の奏法及びノート番号を出力する訓練済み演奏モデルを利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏情報予測部と、
を有する演奏情報予測装置。
【請求項2】
前記演奏情報は、発音情報、消音情報及びピッチ変更情報を含む、請求項1記載の演奏情報予測装置。
【請求項3】
前記発音情報は、
前記奏法及び
前記ノート番号を含む、請求項2記載の演奏情報予測装置。
【請求項4】
前記前処理部は、前記弦振動波形データに対してハイパスフィルタリング及びローパスフィルタリングを実行する、請求項1乃至
3何れか一項記載の演奏情報予測装置。
【請求項5】
前記訓練済み演奏モデルは、ニューラルネットワークにより実現される、請求項1乃至
4何れか一項記載の演奏情報予測装置。
【請求項6】
前記演奏情報は、MIDIプロトコルに従って記述される、請求項1乃至
5何れか一項記載の演奏情報予測装置。
【請求項7】
訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成する前処理部と、
前記訓練用演奏情報を利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練する演奏モデル訓練部と、
を有する演奏モデル訓練装置。
【請求項8】
電子弦楽器と、
請求項1乃至
6何れか一項記載の演奏情報予測装置と、
請求項
7記載の演奏モデル訓練装置と、
を有する演奏情報生成システム。
【請求項9】
1つ以上のプロセッサが、弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成するステップと、
前記1つ以上のプロセッサが、
前記波形特徴化データから弦楽器の奏法及びノート番号を出力する訓練済み演奏モデルを利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測するステップと、
を有する演奏情報予測方法。
【請求項10】
1つ以上のプロセッサが、訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成するステップと、
前記1つ以上のプロセッサが、前記訓練用演奏情報を利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練するステップと、
を有する演奏モデル訓練方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、演奏情報予測装置、演奏モデル訓練装置、演奏情報生成システム、演奏情報予測方法及び演奏モデル訓練方法に関する。
【背景技術】
【0002】
ギターのような楽器の弦振動波形を、マグネティックピックアップもしくはピエゾピックアップによって電気信号化し、そのピッチや音量を分析することで、MIDI(Musical Instrumental Digital Interface)メッセージ等のデジタル演奏データに変換するギターコントローラ(もしくはギターシンセサイザー)という電子楽器が存在する。このようなタイプのコントローラは音源を鳴らすためのみの専用ギターコントローラと異なり、通常のギターのシェイプや機能を残しつつ、そこに演奏情報取得用の各弦に独立のピックアップを搭載することでMIDI演奏も可能となるという大きなメリットがあり、最も一般的な形態であると言える。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平9-6339号公報
【文献】特開2000-105590号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、このような楽器において長年解決されていない大きな問題の1つとして撥弦時における低音のピッチ検出のレイテンシーがある。従来のギター・ベースMIDIコントローラにおける低音のピッチ検出は、自己相関やゼロクロス判断などの観測方法を用いていたために判断データとして複数周期を必要としていた。例えば、A4=440Hzにチューニングされた6弦ギターの最低音E2の周波数は82.4Hzである。もちろん、トレモロアームを使ってそれ以下の音程のノートを発生させたり、変則チューニングを行って低音弦のピッチを下げたり、さらなる低音弦が追加されている多弦ギターであればもっと低い周波数も発生できるが、この82.4Hzという周波数を考えた場合でも波形の1周期は約12msecであり、従来のピッチ検出の方法であれば、2~3周期の波形を比較し、ほぼ同じパターンの繰り返しであると判断された時点で初めてピッチが確定するため、24~36msecも待たなければならない。さらに強いピッキングを行ったときや、スラップ奏法やプラック奏法など、先頭波形が周期性のない特殊波形である場合、振動が安定するまでピッチが検出できず、発音まで数十ミリ秒以上かかることもあった。これは演奏上では無視できないレイテンシーである。
【0005】
レイテンシーを少なくするために短い周期で判断してしまうと、今度はピッチの誤検出の可能性が高くなるというディレンマが有るため、結局は速度と精度のトレードオフとなる。
【0006】
以上のようにギターコントローラは鍵盤コントローラと比較すると、ある音域で演奏に対するレスポンスが悪かったり、ピッチの誤認識があるため、本来のギターとしての演奏と比較して非常に気を遣い、演奏の内容も制限され、それでもミストーンが発生したりするリスクが残るというのが実情であった。
【0007】
もう一つの問題としては、従来の方式ではピッチとレベルは検出するものの、奏法については検出されていないか、検出するにしてもピッチ変化、音量変化程度にとどまっていた。
【0008】
具体的には、通常のピッキング、指による撥弦、親指で叩くサンピング、弦を引っ張って離すプラック(プル)奏法、オープンハーモニクス、ピッキングハーモニクス、ハンマリング・オン、プリング・オフ、タッピングなど数多くの発音方法が存在するが、従来の機器では、これらのどの奏法で演奏しても同じ演奏情報を発生してたために、表現力が失われていたことになる。
【0009】
上記課題を鑑み、本開示の課題は、電子弦楽器の演奏を演奏情報に高精度に変換するための技術を提供することである。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本開示の一態様は、弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成する前処理部と、前記波形特徴化データから弦楽器の奏法及びノート番号を出力する訓練済み演奏モデルを利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏情報予測部と、を有する演奏情報予測装置に関する。
【発明の効果】
【0011】
本開示によると、電子弦楽器の演奏を演奏情報に高精度に変換することができる。
【図面の簡単な説明】
【0012】
【
図1】本開示の一実施例によるギターコントローラを示す概略図である。
【
図2】本開示の一実施例による演奏情報の構成を示す図である。
【
図3】本開示の一実施例によるTAB譜を示す図である。
【
図4】本開示の一実施例によるギターコントローラの外観を示す図である。
【
図5】本開示の一実施例によるギターのハードウェア構成を示すブロック図である。
【
図6】本開示の一実施例による制御装置のハードウェア構成を示すブロック図である。
【
図7】本開示の一実施例による演奏モデル訓練装置の動作を示す概略図である。
【
図8】本開示の一実施例による弦振動波形を示す図である。
【
図9】本開示の一実施例による弦振動波形を示す図である。
【
図10】本開示の一実施例による弦振動波形を示す図である。
【
図11】本開示の一実施例による演奏モデル訓練装置の機能構成を示すブロック図である。
【
図12】本開示の一実施例による波形特徴化を示す概略図である。
【
図13】本開示の一実施例によるフィルタリングを示す概略図である。
【
図14】本開示の一実施例による波形特徴化データを示す概略図である。
【
図15】本開示の一実施例による演奏モデルのアーキテクチャを示す図である。
【
図16】本開示の他の実施例による演奏モデルのアーキテクチャを示す図である。
【
図17】本開示の一実施例による演奏モデル訓練処理を示すフローチャートである。
【
図18】本開示の一実施例による演奏情報予測装置の動作を示す概略図である。
【
図19】本開示の一実施例による演奏情報予測装置の機能構成を示すブロック図である。
【
図20】本開示の一実施例による音量検出及びピッチ検出を示す概略図である。
【
図21】本開示の一実施例による演奏情報予測処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下の実施例では、ギターの演奏によって生成される弦振動波形から演奏情報(例えば、MIDIメッセージなど)を生成するギターコントローラが開示される。なお、本開示は、ギターコントローラに限定されず、弦振動波形抽出機能を備えた弦楽器の演奏から演奏情報を生成する他の何れかの演奏情報生成装置に適用されてもよい。
[本開示の概要]
後述される実施例を概略すると、
図1に示されるように、本開示の一実施例によるギターコントローラ10は、ギター50及び制御装置100を有する。ギターコントローラ10は、ニューラルネットワークなどの機械学習モデルとして実現される演奏モデルを利用して、ギター50の演奏によって生成される弦振動波形から演奏情報を生成する。
【0014】
本開示の一実施例による演奏情報は、
図2に示されるように、発音情報、消音情報及びピッチ変更情報の演奏種別を示す。
【0015】
発音情報は、分類モデルとしての演奏モデルによって判別されるノート番号及び奏法と、エンベロープ検出による撥弦の強さとを示す。奏法は、例えば、0)ピックによるピッキング、1)フィンガーピッキング、2)ハンマリング・オン(タッピング)、3)プリング・オフ、4)ミュートピッキング、5)オープンハーモニクス、及び6)ピッキング・ハーモニクスの7種類に分類される。発音をMIDIメッセージにより表現する場合、奏法はControl Change:0xBn,0x46,vvによって表し、ノート番号及び撥弦の強さはNote On:0x9n,kk,vvによって表してもよい。
【0016】
また、消音情報は、エンベロープ検出によって検出され、0)発音停止及び1)置き換えを表す。消音をMIDIメッセージにより表現する場合、Control Change:0xBn,0x46,vv及びNote Off:0x8n,kk,vvによって表してもよい。
【0017】
また、ピッチ変更情報は、ゼロクロスカウントによって検出され、例えば、半音チョーキングアップ、半音チョーキングダウン、全音チョーキングアップ、全音チョーキングダウン、1音半チョーキングアップ、1音半チョーキングダウン、2音チョーキングアップ、2音チョーキングダウン、及びスライドを示す。ピッチ変化をMIDIメッセージにより表現する場合、Pitch Bend:0xEn,ll,mmによって表してもよい。
【0018】
図1に示された実施例では、ギターコントローラ10は、演奏モデルを訓練する訓練モードと、訓練した演奏モデルを利用して演奏情報を予測する演奏モードとの2つの動作モードを有し、制御装置100は、訓練モードにおいて利用される演奏モデル訓練装置200と、演奏モードにおいて利用される演奏情報予測装置300とを有する。
【0019】
まず、訓練モードにおいて、ギターコントローラ10は、訓練用演奏情報データベース80から訓練データを取得する。訓練データは、例えば、楽譜データ(例えば、TAB譜など)と、当該楽譜データに対応するMIDIファイルとのペアから構成される。TAB譜は、例えば、
図3に示されるような周知の記法に従って記述されたものであってもよい。ユーザが取得した訓練用楽譜データの楽譜に従ってギター50を演奏すると、演奏モデル訓練装置200は、ユーザの演奏に基づきギター50によって生成された弦振動情報を訓練対象の演奏モデルに入力し、演奏モデルから出力される演奏情報としてのMIDIメッセージと訓練用MIDIファイルとを比較し、これらの誤差が小さくなるように演奏モデルを訓練する。本開示では、時間と振幅の関係を示す弦振動情報はハイパスフィルタリング及びローパスフィルタリングされ、フィルタリングされた弦振動波形におけるゼロクロス点、極小点及び極大点に基づき特徴化された波形特徴化データを利用して、演奏モデルから演奏情報を取得する。訓練が終了すると、演奏モデル訓練装置200は、訓練した演奏モデルを演奏情報予測装置300に提供する。
【0020】
次に、演奏モードでは、ユーザがギター50を演奏すると、演奏情報予測装置300は、ユーザの演奏に基づきギター50によって生成された弦振動情報を訓練済み演奏モデルに入力し、MIDIメッセージなどの演奏情報を取得する。取得した演奏情報は、例えば、外部の再生装置やコンピュータに送信され、ユーザは、再生装置を介してユーザによる演奏を再生したり、演奏情報をコンピュータ上で利用できる。
【0021】
これにより、電子弦楽器の演奏を演奏情報に変換する際のピッチ検出の遅延を軽減すると共に、高精度に奏法を判断することが可能になる。
【0022】
なお、以下に説明する実施例によるギターコントローラ10は、演奏モデル訓練装置200を有するが、本開示はこれに限定されず、例えば、演奏モデルは、外部のコンピュータやサーバによって訓練され、訓練された演奏モデル及び/又は演奏モデルの更新情報が外部のコンピュータやサーバから演奏情報予測装置300に提供されてもよい。
[ハードウェア構成]
次に、
図4を参照して、ギターコントローラ10の物理的構成を説明する。
図4は、本開示の一実施例によるギターコントローラ10の外観を示す図である。
【0023】
図4に示されるように、ギターコントローラ10は、相互接続されたギター50と制御装置100とから構成されるセパレートタイプの演奏情報生成システムである。
【0024】
ギター50は、通常のエレクトリックギターに、6つの弦の各弦の独立した振動を拾うためのヘクサディバイデッドピックアップ、演奏情報の音量をコントロールするためのMIDIボリューム、制御装置100に対してパッチメモリ番号の上下切り替えを行うためのアップダウンスイッチ、を搭載したものである。これらの情報とノーマルなピックアップの出力が、マルチケーブルによって制御装置100に送信されている。また、電源は制御装置100からマルチケーブル経由で供給される。本実施例のヘクサディバイデッドピックアップは、ノーマルピックアップと同じマグネティック(磁気)ピックアップである。
【0025】
一方、制御装置100は、ギターの弦振動の入力を受け、MIDIフォーマットによる演奏情報を生成する。演奏情報の送信先は、限定することなく、音源ユニットやコンピュータ等であってもよい。制御装置100は、
図1に示されるように、各種設定を記憶したパッチメモリのバンク番号とナンバーを切り替えるフットスイッチ、任意の演奏メッセージを割り当てて送信することができるCONTROLスイッチとフットペダルを有する。現在選択されているパッチメモリの番号はBANK/NUM画面に表示される。メインの表示デバイスとしてLCDがあるが、画面上にはタッチパネルが装着される。また、データを入力する際のロータリエンコーダもパネル上に装備される。端子として、ギター50からのマルチケーブルの入力端子GUITAR INPUT、ノーマルピックアップのオーディオ出力端子GUITAR OUT、MIDI演奏信号の出力端子MIDI OUT、ホストコンピュータとの接続端子USB to HOST、AC電源入力端子AC POWERが備えられる。
【0026】
次に、
図5を参照して、本開示の一実施例によるギター50のハードウェア構成を説明する。
図5は、本開示の一実施例によるギター50のハードウェア構成を示すブロック図である。
【0027】
図5に示されるように、ギター50は、ヘクサディバイデッドピックアップのバッファアンプを通した信号、MIDIボリュームコントロール、パッチメモリのアップダウンスイッチ、そしてノーマルピックアップの信号がマルチケーブルで制御装置100に送信される。3つのノーマルピックアップはピックアップセレクターで選択され、トーンコントロール回路と、ボリュームコントロール回路を経てバッファアンプを通過したものが制御装置100に送信される。
【0028】
次に、
図6を参照して、本開示の一実施例による制御装置100のハードウェア構成を説明する。
図6は、本開示の一実施例による制御装置のハードウェア構成を示すブロック図である。
【0029】
図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コンバータが接続されており高速な解析処理を行うことができる。
【0030】
しかしながら、ギター50及び制御装置100は、上述したハードウェア構成に限定されるものでなく、他の何れか適切なハードウェア構成により実現されてもよい。
[演奏モデル訓練装置]
次に、
図7~16を参照して、本開示の一実施例による演奏モデル訓練装置200を説明する。
図7は、本開示の一実施例による演奏モデル訓練装置200の動作を示す概略図である。
【0031】
図7に示されるように、演奏モデル訓練装置200は、訓練データを格納する訓練用演奏情報データベース80に格納されている訓練データを利用して演奏モデルを訓練する。具体的には、訓練データは、訓練用楽譜データと当該楽譜データに対応する訓練用演奏情報とのペアから構成され、訓練用楽譜データに基づき表示された楽譜(例えば、TAB譜など)を演奏者に表示し、演奏者は、メトロノームによるテンポ制御の下でギター50を演奏する。当該演奏を表す弦振動波形データは、演奏モデル訓練装置200に提供され、演奏モデル訓練装置200は、取得した弦振動波形データを以下で詳細に説明する波形特徴化データに変換し、波形特徴化データを訓練対象の演奏モデルに入力する。そして、演奏モデル訓練装置200は、演奏モデルからの出力と訓練用演奏情報の発音情報(例えば、ノート番号と奏法など)とを比較し、その誤差に応じて演奏モデルのパラメータを更新する。演奏モデル訓練装置200は、所定の終了条件が充足されるまで上述した処理を繰り返し、演奏モデルからの出力が訓練用演奏情報の発音情報に近づくように演奏モデルを最適化する。
【0032】
本開示において着目するのは撥弦時の先頭波形であり、先頭波形の形状の特徴の違いによって奏法及びノート番号を判定する。例えば、
図8(a)~(c)は、音程による先頭波形パターンを示し、フレットポジション、すなわち、音程の違いによる波形変化を示す。図から理解されるように、極小点及び極大点の時間間隔が変化している。また、
図9(a)~(c)は、撥弦の強さによる先頭波形パターンを示し、撥弦の強さの違いによる波形変化を示す。図から理解されるように、極小点及び極大点の振幅差が変化している。
図10(a)~(g)は、奏法による先頭波形パターンを示し、ゼロクロス点、極小点及び極大点の位置及び振幅が変化している。このように、撥弦時の先頭波形のゼロクロス点、極小点及び極大点と、奏法及びノート番号との間には相関があると考えられる。
【0033】
図11は、本開示の一実施例による演奏モデル訓練装置200の機能構成を示すブロック図である。
【0034】
図11に示されるように、演奏モデル訓練装置200は、前処理部210及び演奏モデル訓練部220を有する。
【0035】
前処理部210は、弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点から構成される波形特徴化データを生成する。
【0036】
具体的には、演奏者によってギター50が演奏されると、ギター50は、
図12(a)に示されるように、時間と各弦の振幅とを示す弦振動波形データを取得し、演奏モデル訓練装置200に送信する。すなわち、ギター50は6弦からなるため、6種類の弦振動波形データが生成される。例えば、弦振動波形データは、弦振動の解析に十分な20KHz(50μsec間隔)のサンプリングレート及びデータワード長16ビットにより取得されうる。
【0037】
前処理部210は、
図12(b)に示されるように、各弦の弦振動波形データに対してローパスフィルタリング(LPH)及びハイパスフィルタリング(HPF)を実行する。ローパスフィルタは、不要な高調波成分をカットし、
図13(a)に示されるように、不要な極小点及び極大点の抽出に役立つ。ハイパスフィルタは、不要な直流成分をカットし、
図13(b)に示されるように、ゼロクロス点の抽出に役立つ。
【0038】
そして、前処理部210は、
図12(c)に示されるように、フィルタリングされた弦振動波形におけるゼロクロス点、極小点及び極大点を抽出する。ここで、
図14に示されるように、ゼロクロス点Znは振幅がゼロになった点であり、ゼロクロス点の座標はZn(x,0)により表される。また、極小点の座標はLn(x,y)により表され、極大点の座標はMn(x,y)により表される。ここで、X座標は先頭からのサンプリング数を表し、Y座標はA/Dコンバータの分解能である16ビットで保持される。抽出されたゼロクロス点、極小点及び極大点は、その振幅値の絶対値が大きいほど優先度が高くなる。
【0039】
前処理部210は、このようにして抽出したゼロクロス点、極小点及び極大点から構成される波形特徴化データを生成し、演奏モデル訓練部220に提供する。
【0040】
演奏モデル訓練部220は、訓練済み演奏モデルを利用して、波形特徴化データから弦楽器演奏の演奏情報を予測する。ここで、訓練対象の演奏モデルは、ゼロクロス点、極小点及び極大点の座標から奏法及びノート番号を出力する。具体的には、演奏モデル訓練部220は、ゼロクロス点の座標Zn、極小点Ln及び極大点Mnを訓練対象の演奏モデルに入力し、奏法Var及びノート番号Noteを取得する。
【0041】
一実施例では、演奏モデルは、ニューラルネットワークによって実現されてもよい。例えば、演奏モデルは、
図15に示されるようなネットワークアーキテクチャを有するニューラルネットワークであってもよい。この場合、演奏モデル訓練部220は、ニューラルネットワークの入力層にゼロクロス点の座標Zn、極小点Ln及び極大点Mnを入力し、中間層における演算を介し出力層から奏法番号Var及びノート番号Noteを取得する。
【0042】
また、他の実施例では、演奏モデルは、
図16に示されるような再帰型ニューラルネットワークによって実現されてもよい。この場合、演奏モデル訓練部220は、基準時刻tの波形特徴化データ、基準時刻直前のb個の波形特徴化データ、及び基準時刻直後のf個の波形特徴化データを再帰型ニューラルネットワークの入力層X
t-b,・・・X
t-1,X
t,X
t+1,・・・,X
t+fに入力し、中間層における演算を介し出力層から奏法番号Var及びノート番号Noteを取得してもよい。再帰型ニューラルネットワークは、時系列データの処理に適しており、奏法番号Var及びノート番号Noteを高精度に予測することができると考えられる。
【0043】
また、訓練対象の演奏モデルは、事前訓練された機械学習モデルであってもよく、演奏モデル訓練部220は、上述した訓練処理によって、事前訓練された演奏モデルをファインチューニングするようにしてもよい。これにより、初期状態の機械学習モデルから演奏モデルを訓練するのと比較して、少ない訓練データにより高精度な演奏モデルを構築することが可能になる。
【0044】
演奏モデルから奏法及びノート番号を取得すると、演奏モデル訓練部220は、取得した奏法及びノート番号と、訓練用演奏情報の奏法及びノート番号とを比較し、これらが一致するように演奏モデルのパラメータを更新する。例えば、演奏モデルがニューラルネットワークにより実現される場合、演奏モデル訓練部220は、周知の誤差逆伝播法に従って比較結果に応じてニューラルネットワークのパラメータを更新してもよい。
【0045】
演奏モデル訓練部220は、所定の終了条件が充足されるまで、上述した処理を繰り返し、演奏モデルを訓練し、所定の終了条件が充足されると、当該時点における演奏モデルを訓練済み演奏モデルとして演奏情報予測装置300にわたす。ここで、所定の終了条件は、準備された全ての訓練データを処理したことなどであってもよい。
[演奏モデル訓練処理]
次に、
図17を参照して、本開示の一実施例による演奏モデル訓練処理を説明する。当該演奏モデル訓練処理は、上述した演奏モデル訓練装置200によって実現され、例えば、プロセッサがプログラム又は命令を実行することによって実現されてもよい。
図17は、本開示の一実施例による演奏モデル訓練処理を示すフローチャートである。
【0046】
図17に示されるように、ステップS101において、演奏モデル訓練装置200は、訓練用演奏情報データベース80から訓練用演奏情報を選択する。具体的には、演奏モデル訓練装置200は、ランダム、順次、ユーザ選択によって訓練用演奏情報を自動選択してもよい。
【0047】
ステップS102において、演奏モデル訓練装置200は、演奏情報をTAB譜の表示情報に変換する。
【0048】
ステップS103において、演奏モデル訓練装置200は、TAB譜を制御装置100のLCDなどに表示する。
【0049】
ステップS104において、演奏モデル訓練装置200は、演奏情報のテンポに合わせてMIDIプレーヤーをスタートする。
【0050】
ステップS105において、演奏モデル訓練装置200は、テンポに合わせてメトロノームをスタートする。
【0051】
ステップS106において、MIDIプレーヤーは、演奏情報を再生する。
【0052】
ステップS107において、メトロノームは、演奏情報を再生する。これにより、演奏者の演奏を取得するための準備が整い、演奏者は演奏を開始する。
【0053】
ステップS108において、演奏モデル訓練装置200は、弦番号sを0に初期化する。ギター50は6弦からなるため、弦番号sは0~5の値をとりうる。
【0054】
ステップS109において、演奏モデル訓練装置200は、MIDIプレーヤーから発生したsチャネルの発音情報を発音情報メモリpに格納する。
【0055】
ステップS110において、演奏モデル訓練装置200は、演奏者による演奏を表す弦番号sの弦振動波形をバッファから取得し、波形特徴化データを生成し、リングバッファなどに格納する。
【0056】
ステップS111において、演奏モデル訓練装置200は、基準時刻の波形特徴化データ、基準時刻直前のp個の波形特徴化データ、及び基準時刻直後のn個の波形特徴化データを訓練対象の演奏モデルに入力する。
【0057】
ステップS112において、演奏モデル訓練装置200は、演奏モデルの出力結果をメモリoに格納する。
【0058】
ステップS113において、演奏モデル訓練装置200は、メモリpの発音情報(例えば、奏法番号及びノート番号など)と、メモリoの演奏モデルの出力結果とを比較する。
【0059】
ステップS114において、演奏モデル訓練装置200は、メモリpの発音情報とメモリoの出力結果との間に差分があるか判断する。
【0060】
有意な差分があった場合(S114:Yes)、演奏モデル訓練装置200は、ステップS115において、当該差分から演奏モデルを更新するための最適化情報を演奏モデルに適用し、ステップS116に移行する。他方、有意な差分がなかった場合(S114:No)、演奏モデル訓練装置200は、演奏モデルを更新することなく、ステップS116に移行する。
【0061】
ステップS116において、演奏モデル訓練装置200は、次の弦を処理するため、弦番号sを1だけインクリメントする。
【0062】
ステップS117において、演奏モデル訓練装置200は、全ての弦について演奏モデルの更新処理を終了したか判断し、全ての弦について更新処理が終了していない場合(S117:Yes)、ステップS109に戻る。
【0063】
ステップS118において、演奏モデル訓練装置200は、演奏情報全体を処理したか判断し、演奏情報全体を処理していない場合(S118:No)、ステップS106に戻る。
【0064】
ステップS119において、演奏モデル訓練装置200は、メトロノーム及びMIDIプレーヤーを停止する。
【0065】
ステップS120において、演奏モデル訓練装置200は、ユーザなどによる終了操作があったか判断し、終了操作がない場合(S120:No)、ステップS101に戻り、次の演奏情報を選択し、終了操作があった場合(S120:Yes)、当該処理を終了する。
[演奏情報予測装置]
次に、
図18~20を参照して、本開示の一実施例による演奏情報予測装置300を説明する。
図18は、本開示の一実施例による演奏情報予測装置300の動作を示す概略図である。
【0066】
演奏情報予測装置300は、演奏モデル訓練装置200によって訓練された演奏モデルを利用して、演奏者によるギター50の演奏から演奏情報(例えば、MIDIメッセージなど)を予測する。具体的には、
図18に示されるように、演奏情報予測装置300は、ギター50からギター演奏を表す弦振動波形データを取得すると、取得した弦振動波形データに対してハイパスフィルタリング及びローパスフィルタリングを実行し、ゼロクロス点、極小点及び極大点から抽出した波形特徴化データを生成する。例えば、これらの前処理は、DSPによって実現されてもよい。
【0067】
基準時刻の演奏情報を予測するため、演奏情報予測装置300は、波形特徴化データ、例えば、基準時刻の波形特徴化データ、基準時刻直前のp個の波形特徴化データ及び基準時刻直後のn個の波形特徴化データを訓練済み演奏モデルに入力し、奏法及びノート番号を含む発音情報を取得する。また、演奏情報予測装置300は、基準時刻の波形特徴化データに対して音量検出及びピッチ検出を実行し、演奏の音量及びピッチを検出する。演奏情報予測装置300は、検出した音量及びピッチに基づきそれぞれ消音情報及びピッチ変更情報を生成すると共に、音量に基づき撥弦の強さを示すベロシティー情報を生成し、発音情報に付加する。このようにして、演奏情報予測装置300は、各時刻の波形特徴化データから発音情報、消音情報及び/又はピッチ変更情報を含む各時刻の演奏情報(例えば、MIDIメッセージなど)を生成し、外部機器(例えば、再生装置、コンピュータ等)に送信する。例えば、これらの演奏情報生成処理は、CPUによって実現されてもよい。
【0068】
図19は、本開示の一実施例による演奏情報予測装置300の機能構成を示すブロック図である。
【0069】
図19に示されるように、演奏情報予測装置300は、前処理部310及び演奏情報予測部320を有する。
【0070】
前処理部310は、弦楽器演奏を表す弦振動波形データを波形特徴化データに変換する。前処理部210と同様に、前処理部310は、演奏者によってギター50が演奏されると、ギター50から各弦の弦振動波形データを取得し、各弦の弦振動波形データに対してハイパスフィルタリング及びローパスフィルタリングを実行し、ゼロクロス点、極小点及び極大点から構成される波形特徴化データを生成する。
【0071】
演奏情報予測部320は、訓練済み演奏モデルを利用して、基準時刻の波形特徴化データから、弦楽器演奏の演奏情報を予測する。具体的には、演奏情報予測部320は、基準時刻の波形特徴化データを訓練済み演奏モデルに入力し、基準時刻における奏法及びノート番号を取得する。
【0072】
また、これと並行して、演奏情報予測部320は、基準時刻の波形特徴化データに対して音量検出及びピッチ検出を実行する。例えば、音量検出について、演奏情報予測部320は、
図20(a)に示されるように、波形特徴化データフレームを絶対値化し、ローパスフィルタリングを実行し、フィルタリングされた波形の振幅レベルを当該基準時刻における音量として決定してもよい。当該基準時刻に対して訓練済み演奏モデルが発音を検出しなかった場合、あるいは、検出した音量が消音状態と認められる所定の閾値以下であった場合、演奏情報予測部320は、発音がなかったと判断し、演奏情報として消音情報を出力する。そうでない場合、演奏情報予測部320は、発音があったと判断し、検出した音量を当該発音のベロシティー値とし、演奏モデルから出力された奏法及びノート番号と共に当該ベロシティー値を発音情報に含める。
【0073】
また、ピッチ検出について、演奏情報予測部320は、
図20(b)に示されるように、波形特徴化データのゼロクロス点を計数し、ピッチ情報を生成する。そして、演奏情報予測部320は、直近のピッチ情報又は発音情報と差異があった場合、ピッチ変更があったと判断し、ピッチ変更情報を出力する。
【0074】
なお、前処理部310及び演奏情報予測部320は、全ての弦に対して上述した処理を並列に実行する。
[演奏情報予測処理]
次に、
図21を参照して、本開示の一実施例による演奏情報予測処理を説明する。当該演奏情報予測処理は、上述した演奏情報予測装置300によって実現され、例えば、プロセッサがプログラム又は命令を実行することによって実現されてもよい。
図21は、本開示の一実施例による演奏情報予測処理を示すフローチャートである。
【0075】
図21に示されるように、ステップS201において、演奏情報予測装置300は、弦番号sを0に初期化する。ギター50は6弦から構成されるため、弦番号sは0~5の値をとる。
【0076】
ステップS202において、演奏情報予測装置300は、弦振動波形データから波形特徴化データを生成し、基準時刻の波形特徴化データに対して音量検出を実行する。
【0077】
ステップS203において、演奏情報予測装置300は、検出した音量Iが所定の閾値未満であるか判断する。音量Iが所定の閾値以上である場合(S203:No)、演奏情報予測装置300は、発音中であると判断し、ステップS206に移行する。
【0078】
他方、音量Iが所定の閾値未満である場合(S203:Yes)、演奏情報予測装置300は、ステップS204において、当該基準時刻において発音中であるかを判断する。例えば、当該判断は、訓練済み演奏モデルから発音情報の出力があったか否かに基づき行われてもよい。発音中であった場合(S204:Yes)、演奏情報予測装置300は、ステップS205において、演奏モデルから出力されたノート番号に対応した消音情報を生成する。発音中でない場合(S204:No)、演奏情報予測装置300は、ステップS206に移行する。
【0079】
ステップS206において、演奏情報予測装置300は、当該基準時刻の波形特徴化データをバッファから抽出する。
【0080】
ステップS207において、演奏情報予測装置300は、抽出した波形特徴化データを演奏モデルに入力する。
【0081】
ステップS208において、演奏情報予測装置300は、演奏モデルから奏法及びノート番号を含む発音情報が出力されたか判断する。発音情報が出力された場合(S208:Yes)、演奏情報予測装置300は、ステップS209において、出力された奏法及びノート番号をそれぞれ変数v,kに代入する。他方、発音情報が出力されなかった場合(S208:No)、演奏情報予測装置300は、ステップS215に移行する。
【0082】
ステップS210において、演奏情報予測装置300は、発音があったか判断する。発音があった場合(S210:Yes)、演奏情報予測装置300は、ステップS211において、前回の発音イベントのノート番号K0の消音情報を生成する。他方、発音がない場合(S210:No)、演奏情報予測装置300は、ステップS212に移行する。
【0083】
ステップS212において、演奏情報予測装置300は、奏法番号v、ノート番号k及び音量Iから変換されたベロシティーを含む発音情報を生成する。
【0084】
ステップS213において、演奏情報予測装置300は、前回の発音イベントのノート番号K0にkを代入する。
【0085】
ステップS214において、演奏情報予測装置300は、前回発生したピッチP0=kに対応するピッチを特定する。
【0086】
ステップS215において、演奏情報予測装置300は、基準時刻の波形特徴化データに対してピッチ検出を実行し、検出したピッチをpに格納する。
【0087】
ステップS216において、演奏情報予測装置300は、p=P0であるか判断する。演奏情報予測装置300は、p=P0である場合(S216:Yes)、ステップS218に移行し、p=P0でない場合(S216:No)、ステップS217において、pからの差分によってピッチベンド情報を生成する。
【0088】
ステップS218において、演奏情報予測装置300は、次の弦に対して上述した処理を実行するため、弦番号sを1だけインクリメントする。
【0089】
ステップS219において、演奏情報予測装置300は、全ての弦が処理されたか判断し、全ての弦が処理された場合(S219:No)、当該演奏情報予測処理を終了し、そうでない場合(S219:Yes)、次の弦に対して上述した処理を繰り返す。
【0090】
なお、上述した実施例では、ギター50などの弦楽器の弦振動波形データから演奏情報を予測する演奏モデルを訓練し、訓練した演奏モデルを利用して演奏情報を予測する演奏情報予測システムを説明したが、本開示はこれに限定されず、管楽器に適用されてもよい。すなわち、本開示は、管楽器の空気振動波形データから演奏情報を予測する演奏モデルを訓練し、訓練した演奏モデルを利用して演奏情報を予測する演奏情報予測システムに適用されてもよい。
【0091】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0092】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[付記]
本開示の一態様では、
弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成する前処理部と、
訓練済み演奏モデルを利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏情報予測部と、
を有する演奏情報予測装置が提供される。
【0093】
一実施例では、前記演奏情報は、発音情報、消音情報及びピッチ変更情報から構成されてもよい。
【0094】
一実施例では前記発音情報は、奏法及びノート番号を含んでもよい。
【0095】
一実施例では、前記訓練済み演奏モデルは、前記奏法及び前記ノート番号を出力してもよい。
【0096】
一実施例では、前記前処理部は、前記弦振動波形データに対してハイパスフィルタリング及びローパスフィルタリングを実行してもよい。
【0097】
一実施例では、前記訓練済み演奏モデルは、ニューラルネットワークにより実現されてもよい。
【0098】
一実施例では、前記演奏情報は、MIDIプロトコルに従って記述されてもよい。
【0099】
本開示の他の態様では、
訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成する前処理部と、
前記訓練用演奏情報を利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練する演奏モデル訓練部と、
を有する演奏モデル訓練装置が提供される。
【0100】
本開示の他の態様では、
電子弦楽器と、
上述した演奏情報予測装置と、
上述した演奏モデル訓練装置と、
を有する演奏情報生成システムが提供される。
【0101】
本開示の他の態様では、
1つ以上のプロセッサが、弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成するステップと、
前記1つ以上のプロセッサが、訓練済み演奏モデルを利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測するステップと、
を有する演奏情報予測方法が提供される。
【0102】
本開示の他の態様では、
1つ以上のプロセッサが、訓練用演奏情報に従って演奏された弦楽器演奏を表す弦振動波形データからゼロクロス点、極小点及び極大点を含む波形特徴化データを生成するステップと、
前記1つ以上のプロセッサが、前記訓練用演奏情報を利用して、前記波形特徴化データから前記弦楽器演奏の演奏情報を予測する演奏モデルを訓練するステップと、
を有する演奏モデル訓練方法が提供される。
【符号の説明】
【0103】
10 ギターコントローラ
50 ギター
100 制御装置
200 演奏モデル訓練装置
210 前処理部
220 演奏モデル訓練部
300 演奏情報予測装置
310 前処理部
320 演奏情報予測部