以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。また、特に説明しない限り、所定値や閾値などといった予め定められている値は、その値を利用する装置からアクセス可能な記憶装置などに予め格納されている。
[実施形態1]
<概要>
図1は、実施形態1の演奏評価装置2000の概要を例示する図である。図1は、演奏評価装置2000の理解を容易にするために演奏評価装置2000の動作の一例を概念的に示す図であり、演奏評価装置2000の動作は図1に示されているものに限定されない。
演奏評価装置2000は、ユーザ60が行った楽器演奏の評価を表す評価情報30を生成する。ここで、ユーザ60によって演奏される楽器を対象楽器70と呼ぶ。対象楽器70は、例えば、ピアノ、オルガン、又はシンセサイザーなどといった鍵盤楽器である。ただし、対象楽器70は鍵盤楽器には限定されない。
演奏評価装置2000は、ユーザ60によって行われた実際の演奏を、所定の基準と比較することにより、評価情報30を生成する。その比較は、1つ以上の評価項目について行われる。ここで、ユーザ60は、評価対象の楽曲の演奏の評価を行う際、演奏のテンポを指定することができる。以下、評価対象の楽曲を対象楽曲と呼ぶ。また、指定された演奏のテンポを指定テンポと呼ぶ。
上述した態様で演奏の評価を行うために、演奏評価装置2000は、テンポ情報100、基準情報40、及びユーザ演奏情報50を利用する。テンポ情報100は、指定テンポを特定可能な情報である。基準情報40は、対象楽曲について、テンポ情報100に示されている指定テンポで演奏する場合における演奏の評価基準を示す。言い換えれば、基準情報40は、テンポ情報100に示されている指定テンポで演奏する場合について、どのタイミングでどのような演奏をすべきかを示す。例えば基準情報40は、複数の評価項目それぞれについて、演奏時点と、その演奏時点における演奏についての理想の項目値を示す。ユーザ演奏情報50は、ユーザによる対象楽曲の実際の演奏を表す情報である。言い換えれば、ユーザ演奏情報50は、対象楽曲について、ユーザ60がどのタイミングでどのような演奏を行ったのかを示す。例えばユーザ演奏情報50は、複数の評価項目それぞれについて、演奏時点と、その演奏時点におけるユーザ60の演奏についての項目値(実測値)を示す。
演奏評価装置2000は、基準情報40とユーザ演奏情報50とを比較することで、評価情報30を生成する。例えば後述するように、演奏評価装置2000は、複数の時点それぞれについて、基準情報40が示す項目値とユーザ演奏情報50が示す項目値とを比較することで、基準情報40とユーザ演奏情報50との間の一致度合いを特定し、その一致度合いを表す評価情報30を生成する。
ここで、図1では、基準情報40とユーザ演奏情報50が演奏評価装置2000の外部から取得されるケースを例示している。しかしながら、後述するように、基準情報40やユーザ演奏情報50は演奏評価装置2000の内部で生成されてもよい。基準情報40やユーザ演奏情報50の取得方法や生成方法についての詳細は後述する。
<作用効果の一例>
本実施形態の演奏評価装置2000によれば、対象楽曲について、指定テンポで演奏された場合における評価基準を表す基準情報40が取得される。そして、当該基準情報40と、ユーザ60による実際の演奏の結果を表すユーザ演奏情報50とを比較することにより、ユーザ60による対象楽曲の演奏が評価される。このことから、演奏評価装置2000によれば、所望のテンポで行われた対象楽曲の演奏についての評価を行うことができる。よって、ユーザ60は、対象楽曲を所望のテンポで演奏し、当該演奏についての評価を得ることができる。
例えばユーザ60は、演奏のテンポを徐々に上げながら対象楽曲の練習を行うことができる。まずユーザ60は、標準のテンポよりも遅いテンポで、対象楽曲の演奏の練習を行う。そして、当該テンポを指定した演奏評価装置2000による評価において十分に高い評価(例えば、目標として設定した評価以上の評価)を得られるようになったら、ユーザ60は、テンポを少し速くしてさらに対象楽曲の練習を行う。このような練習及び評価を、テンポを速くしながら繰り返すことにより、ユーザ60は、標準のテンポやそれよりも速いテンポで、対象楽曲について評価の高い演奏を行うことができるようになる。
以下、本実施形態の演奏評価装置2000について、より詳細に説明する。
<機能構成の例>
図2は、実施形態1の演奏評価装置2000の機能構成を例示するブロック図である。この例において、演奏評価装置2000は、テンポ情報取得部2020及び評価部2040を有する。テンポ情報取得部2020は、テンポ情報100を取得する。評価部2040は、テンポ情報100に示されている指定テンポに対応する基準情報40と、ユーザ演奏情報50とを比較することにより、評価情報30を生成する。
<ハードウエア構成の例>
演奏評価装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、演奏評価装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
図3は、演奏評価装置2000を実現するコンピュータ1000のハードウエア構成を例示するブロック図である。コンピュータ1000は、任意のコンピュータである。例えばコンピュータ1000は、PC(Personal Computer)やサーバマシンなどといった、据え置き型のコンピュータである。その他にも例えば、コンピュータ1000は、スマートフォンやタブレット端末などといった可搬型のコンピュータである。その他にも例えば、コンピュータ1000は、カメラ10であってもよい。その他にも例えば、ユーザ60によって演奏される楽器が電子楽器である場合、コンピュータ1000は、当該楽器に内蔵されているコンピュータであってもよい。
コンピュータ1000は、演奏評価装置2000を実現するために設計された専用のコンピュータであってもよいし、汎用のコンピュータであってもよい。例えば、コンピュータ1000に対して所定のアプリケーションをインストールすることにより、コンピュータ1000で、演奏評価装置2000の各機能が実現される。上記アプリケーションは、演奏評価装置2000の機能構成部を実現するためのプログラムで構成される。
コンピュータ1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
入出力インタフェース1100は、コンピュータ1000と入出力デバイスとを接続するためのインタフェースである。ネットワークインタフェース1120は、コンピュータ1000をネットワークに接続するためのインタフェースである。このネットワークは、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。
ストレージデバイス1080は、演奏評価装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ1040は、このプログラムをメモリ1060に読み出して実行することで、演奏評価装置2000の各機能構成部を実現する。
演奏評価装置2000は、1つのコンピュータ1000で実現されてもよいし、複数のコンピュータ1000で実現されてもよい。後者の場合において、各コンピュータ1000の構成は同一である必要はなく、それぞれ異なるものとすることができる。
<評価項目について>
ユーザ60による演奏は、複数の評価項目について評価される。評価項目には、演奏の良し悪しが反映される任意の項目を採用することができる。こうような評価項目には、例えば、音の特徴(音の強さや長さなど)に関するものが含まれる。その他にも例えば、評価項目には、演奏した際の手や指の形、指使い、及び演奏された際の対象楽器の形状などが含まれる。ここで、指使いとは、打鍵された鍵盤と指の対応付けの正しさを意味する。また、演奏された際の対象楽器の形状とは、例えば鍵盤楽器であれば指で打鍵した際の鍵盤の角度や深さを意味する。
音の特徴に関する事項が評価項目に含まれる場合、例えば、ユーザ60の演奏を録音するレコーダが設置され、当該レコーダによって生成された音声データを利用して演奏の評価が行われる。ただし、音声データは、後述するカメラによってビデオデータと共に生成されてもよい。言い換えればこの場合、カメラがレコーダとしての役割も持つことになる。例えばカメラが、ビデオデータと音声データとを含むビデオファイルを生成する場合、当該ビデオデータに含まれる音声データを利用して、音の特徴の評価(音の良し悪しの評価)をすることができる。
その他にも例えば、対象楽器70に、対象楽器70を用いて行われた演奏についての演奏データを生成する機能が設けられていてもよい。演奏データは、例えば、MIDI(登録商標)(Musical Instrument Digital Interface)データなどである。このように対象楽器70によって演奏データが生成される場合、この演奏データを用いて、音の特徴の評価を行うことができる。
視覚的な情報を利用して評価可能な項目が評価項目に含まれる場合、例えば、ユーザ60の演奏を撮像するようにカメラが設置され、当該カメラによって生成されたビデオデータを利用して、ユーザ60の演奏の評価が行われる。このような評価項目は、例えば、演奏した際の手や指の形、指使い、及び演奏された際の対象楽器の形状などである。ユーザ60の演奏を左右それぞれの手について評価する場合、例えば、ユーザ60の左手が手前に来る位置に設置されるカメラと、ユーザ60の右手が手前に来る位置に設置されるカメラの双方を設けることが好適である。
図4は、ユーザ60の演奏を撮像するカメラ10の位置と姿勢を例示する図である。図4(a)は対象楽器70を平面視した図であり、図4(b)は対象楽器70を正面視した図である。図4では、対象楽器70の鍵盤の長手方向をx軸方向とし、対象楽器70の鍵盤の短手方向をy軸方向とし、鉛直方向をz軸方向としている。
カメラ10-1は、少なくともユーザ60の左手の指の側面を左側から(右手よりも左手の方が手前に来る方向から)撮影するように設置される。図4において、カメラ10-1は、+x方向に対象楽器70を見下ろすように設置されている。
一方、カメラ10-2は、少なくともユーザ60の右手の指の側面を右側から(左手よりも右手の方が手前に来る方向から)撮影できるように設置される。図4において、カメラ10-2は、-x方向に対象楽器70を見下ろすように設置されている。
カメラ10の撮影方向は、図4に示す例に限定されない。例えば、カメラ10-1とカメラ10-2の撮影方向の水平成分は、x軸と完全に平行である必要はなく、y軸方向の成分を含んでもよい。
カメラ10の具体的な設置位置や設置姿勢は、ユーザによって任意に決められてもよいし、予め定められていてもよい。前者の場合、カメラ10は、楽器上や楽器の周辺に、ユーザ60の演奏を側面から撮影できる位置及び姿勢で設置される。
一方、カメラ10の設置位置や設置姿勢が予め定められている場合、例えば、対象楽器の所定の位置に設置可能であり、なおかつ、カメラ10を所定の姿勢で設置可能な器具が利用される。この器具は、対象楽器が提供(販売やリースなど)される段階で対象楽器に設置されていてもよいし、対象楽器の提供後に設置されてもよい(例えば、別売りのアタッチメントとして提供され、ユーザによって設置される)。
その他にも例えば、カメラ10によって生成されるビデオデータを見ながら、カメラ10の設置位置及び設置姿勢を調整することで、カメラ10を所定の位置及び姿勢に設置してもよい。例えば、対象楽器の所定の位置に所定の参照マークを設けておく。そして、対象楽器に設けられている参照マークをカメラ10で撮影し、カメラ10から得られるビデオデータを見ながら、参照マークが所定の位置、サイズ、及び形状でカメラ10に撮影されるように、カメラ10の位置及び姿勢を調整する。
なお、上述した例では、カメラ10-1とカメラ10-2で互いに異なる手を撮像することとしているが、必ずしもそのようにする必要はない。例えば、カメラ10-1で左手の指の一部及び右手の指の一部を撮像し、カメラ10-2で左手と右手それぞれの残りの指を撮像するようにする。言い換えれば、カメラ10-1から得られるビデオデータ20を左手の指の一部及び右手の指の一部の評価に利用し、カメラ10-2から得られるビデオデータ20を左手と右手それぞれの残りの指の評価に利用する。より具体的な例としては、カメラ10-1から得られるビデオデータ20を、左手の中指、薬指、及び小指、並びに右手の親指及び人差し指の評価に利用し、カメラ10-2から得られるビデオデータ20を、左手の親指と人差し指、並びに右手の中指、薬指、及び小指の評価に利用するようにする。このようにすることで、一方の手が他方の手の撮像においての障害物になってしまうことにより、1つのカメラ10だけでは1つの手の全ての指を撮像できない場合であっても、2つのカメラ10から得られるビデオデータ20を利用することで、左右全ての指の評価を行うことができる。
また、演奏の評価に利用するカメラ10の数は2つに限定されない。例えば、ユーザ60の演奏を片方の手のみについて評価する場合、評価する手を撮影可能なカメラ10を1つ設けるようにしてもよい。その他にも例えば、同一の手を異なる俯角で撮影するように、右手と左手それぞれについて複数のカメラ10を用意してもよい。
カメラ10は、ユーザ60の演奏を撮影してビデオデータを生成することができる任意のカメラである。カメラ10は、ユーザの楽器演奏を撮影するための専用のカメラであってもよいし、汎用のカメラ(例えば、スマートフォンに設けられているカメラなど)であってもよい。
例えばカメラ10は、入出力インタフェース1100又はネットワークインタフェース1120を介して、演奏評価装置2000を実現するコンピュータ1000と接続される。ただし、コンピュータ1000は、カメラ10によって生成されたビデオデータを取得できればよく、カメラ10と通信可能に接続されていなくてもよい。演奏評価装置2000がビデオデータを取得する方法については後述する。また、カメラ10で演奏評価装置2000が実現されてもよい。すなわち、カメラ10に設けられているコンピュータ(例えば、SoC(System on Chip)などの半導体チップ)で演奏評価装置2000が実現される。
ここで、前述したように、その評価のためにビデオデータが利用されうる評価項目には、手や指の形に関する評価項目などが含まれる。これらの評価項目の項目値は、例えば、手の関節点や関節線を利用して算出される。関節点とは、関節の位置を表す点である。関節線とは、互いに隣接する関節点を結ぶ直線である。また、指先と、指先に一番近い関節(すなわち、第1関節)の関節点とを結ぶ直線も、関節線として扱う。図5は、手の関節点と関節線を例示する図である。図5において、関節点は丸印で表されている。
以下、手の関節点や関節線に基づいて項目値が算出される評価項目について、その具体例をいくつか例示する。
<<指関節の高さ>>
「指関節の高さ」は、指の関節の高さ方向の位置を表す評価項目である。演奏評価装置2000が評価に利用する関節点は、全ての関節点であってもよいし、一部のみであってもよい。
例えば指関節の高さは、指の関節点と基準面との位置関係で定まる。例えば基準面は、鍵盤の上面によって定まる。例えば、打鍵されていない通常時における鍵盤の上面が、基準面として扱われる。その他にも例えば、最も下まで押し下げられた状態における鍵盤の上面が、基準面として扱われてもよい。指関節の高さを算出する具体的な方法には、様々な方法を利用できる。
指関節の高さは、打鍵している状態の指について算出されることが好ましい。ただし、打鍵していない状態の指についても、指関節の高さが算出されてもよい。
図6は、指関節の高さの算出方法を例示する図である。説明を容易にするため、図6では、ビデオフレーム22のうち、指110及び指110で打鍵されているキー120の周辺の画像領域のみが図示されている。
図6では、基準面の位置を表すために、基準線130が利用されている。基準線130は、指110が置かれているキー120の隣のキーのうち、カメラ10からより遠い方のキーの長辺と重なる直線である。なお、基準線としては、打鍵されていない状態におけるキー120の上面の長辺を利用することが好適である。また、基準面の位置を表す方法は、基準線130を用いる方法に限定されない。例えば、キー120の隣のキーのうち、カメラ10により近い方のキーの長辺を、基準面の位置を表す基準線として利用してもよい。
図6(a)と(b)は、指関節の高さの算出方法として、互いに異なる方法を示している。図6(a)において、関節点Xの高さは、線分XAの長さで表されている。点Aは、関節点Xからビデオフレーム22の垂直方向下向きへ延ばした直線と基準線130との交点である。一方、図6(b)において、関節点Xの高さは、線分XBの長さで表されている。点Bは、関節点Xから基準線130に対して下ろした垂線の足である。
なお、図6の例では、カメラ10が手の側面を斜め上から撮像するように設置されている。この場合、ビデオフレーム22の垂直方向や、図6(b)において基準線130に下ろした垂線の方向は、実世界における鉛直方向とは異なる。しかしながら、図6に示したように、「指関節の高さ」という評価項目の項目値は、実世界の鉛直方向における高さではなく、鉛直方向の成分が含まれる方向(すなわち、水平方向ではない方向)について、関節点から基準面までの距離を表していればよい。なお、この点については、後述する「手首の高さ」についても同様である。
ただし、演奏評価装置2000は、指関節の高さとして、実世界の鉛直方向における高さを扱ってもよい。この場合、例えば演奏評価装置2000は、ビデオフレーム22上の2次元座標系(以下、画像座標系)における指関節の位置と基準面から、実世界の3次元座標系(以下、ワールド座標系)における指関節の位置と基準面を算出することで、ワールド座標系における指関節の高さを算出する。
2次元座標系の座標から3次元座標系の座標への変換は、例えば、ステレオ視やデプスカメラを利用することで実現できる。前者の場合、ユーザ60の演奏を左方から撮影するカメラ10と右方から撮影するカメラ10をそれぞれ2つずつ設けておく。そして、ユーザ60の右手の指関節の高さの算出には、ユーザ60を右方から撮影する2つのカメラ10それぞれから得られたビデオフレーム22を利用して、ワールド座標系上の指関節の高さを算出する。デプスカメラを利用する場合、ビデオフレーム22上の各ピクセルについて、撮影された物体までの距離が分かる。そのため、1つのビデオフレーム22における指関節の2次元座標から、ワールド座標系における指関節の3次元座標を特定することができる。
なお、ワールド座標系を定めるためには、ワールド座標系の基準となる所定のマーク(サイズと形状のマーク)を対象楽器の所定の位置に設けておくことが好適である。なお、サイズと形状が既知のマークをカメラで撮影することにより、カメラから得られる画像上の2次元座標系とワールド座標系との関係を定める技術には、既存の技術を利用することができる。
<<関節線間の角の大きさ>>
「関節線間の角の大きさ」とは、共通の端点を持つ2つの関節線によって成される角の大きさを表す評価項目である。図7は、関節線間の角の大きさの算出方法を例示する図である。説明を容易にするため、図7では、ビデオフレーム22のうち、指110の周辺の画像領域のみが図示されている。なお、関節線間の角の大きさは、打鍵している状態の指について算出されることが好ましい。ただし、打鍵していない状態の指についても、関節線間の角の大きさが算出されてもよい。
図7において、関節点Cと関節点Dは互いに隣接する関節点であり、これらの関節点を結ぶ直線が関節線CDである。同様に、関節点Dと関節点Eも互いに隣接する関節点であり、これらの関節点を結ぶ直線が関節線DEである。そして、これらの関節線CDと関節線DEの成す角の大きさはαである。そこで、例えばこの値αを、関節線CDと関節線DEの成す角の大きさという評価項目の項目値として利用できる。また、関節線Eと指先の点Fとを結ぶ関節線EFをさらに利用し、関節線DEと関節線EFの成す角の大きさという評価項目がさらに設けられてもよい。
その他にも例えば、2つの関節線の成す角の大きさという項目の項目値として、前述したワールド座標系においてこれら2つの関節線によって成される角の大きさが用いられてもよい。この場合、演奏評価装置2000は、ビデオフレーム22上の各指関節の座標をワールド座標系上の座標に変換することで、ワールド座標系における2つの関節線を特定する。こうすることで、ワールド座標系において2つの関節線が成す角の大きさを特定することができる。
<<手首の高さ>>
「手首の高さ」は、手首の高さ方向の位置を表す評価項目である。例えば手首の高さは、手首の関節点と基準面との位置関係で定まる。この基準面には、指関節の高さを定める基準面と同じものを利用できる。なお、手首の高さは、少なくとも1つの指で打鍵が行われている状態の手について算出されることが好ましい。ただし、いずれの指でも打鍵が行われていない状態の手についても、手首の高さが算出されてもよい。
図8は、手首の高さを算出する方法を例示する図である。説明を容易にするため、図8では、ビデオフレーム22のうち、手140及び手140が打鍵しているキーの周辺の画像領域のみが図示されている。
図8において、手140の手首の関節点はYである。また、図8では、基準面の位置を表すために、基準線150が利用されている。基準線150は打鍵されているキー160の隣のキーのうち、カメラ10からより遠い方の長辺と重なる直線である。なお、指関節の高さを算出するケースと同様に、基準線としては、打鍵されていない状態におけるそのキーの上面の長辺を利用することも可能である。また、基準線に利用するキーは、カメラ10に最も近い指が打鍵するキーや隣のキーに限定されない。
図8(a)と(b)は、手首の高さの算出方法として、互いに異なる方法を示している。図8(a)において、手首の高さは、線分YGの距離で定められている。点Gは、手首の関節点Yからビデオフレーム22の垂直方向下向きに下ろした直線と基準線150の交点である。一方、図8(b)において、手首の高さは、線分YHの距離で定められている。点Hは、手首の関節点Yから基準線150に下ろした垂線の足である。
なお、演奏評価装置2000は、指関節の高さと同様に、手首の高さについても、実世界の鉛直方向における高さを扱ってもよい。具体的には、演奏評価装置2000は、画像座標系における手首の位置と基準面から、ワールド座標系における手首の位置と基準面を特定する。そして、ワールド座標系における手首の位置から基準面までの距離が、手首の高さとして扱われる。
<<手上面の高さ>>
「手上面の高さ」は、手の上面の高さ方向の位置を表す評価項目である。例えば手上面の高さは、中指の第3関節点(図5参照)と基準面との位置関係で定まる。この基準面には、指関節の高さを定める基準面と同じものを利用できる。なお、手上面の高さは、少なくとも1つの指で打鍵が行われている状態の手について算出されることが好ましい。ただし、いずれの指でも打鍵が行われていない状態の手についても、手上面の高さが算出されてもよい。
図9は、手上面の高さを算出する方法を例示する図である。ここで、図9に示されている手140、鍵盤、及び基準線150は、図8に示されているものと同じである。また、図9において、手140の上面の位置は、手140の中指の第3関節点である点Wで表されている。
図9(a)と(b)は、手上面の高さの算出方法として、互いに異なる方法を示している。図9(a)において、手上面の高さは、線分WKの距離で定められている。点Kは、手上面Wからビデオフレーム22の垂直方向下向きに下ろした直線と基準線150の交点である。一方、図9(b)において、手上面の高さは、線分WLの距離で定められている。点Lは、手上面Wから基準線150に下ろした垂線の足である。
なお、演奏評価装置2000は、指関節や手首の高さと同様に、手上面の高さについても、実世界の鉛直方向における高さを扱ってもよい。具体的には、演奏評価装置2000は、画像座標系における手上面の位置と基準面から、ワールド座標系における手上面の位置と基準面を特定する。そして、ワールド座標系における手上面の位置から基準面までの距離が、手上面の高さとして扱われる。
<<手首の角度>>
「手首の角度」は、手首の曲がり具合を表す評価項目である。手首の角度は、例えば、腕の姿勢を表す直線と手の上面の姿勢を表す直線とが成す角の大きさで定めることができる。なお、手首の角度は、少なくとも1つの指で打鍵が行われている状態の手について算出されることが好ましい。ただし、いずれの指でも打鍵が行われていない状態の手についても、手首の角度が算出されてもよい。
図10は、手首の角度を算出する方法を例示する図である。説明を容易にするため、図10では、ビデオフレーム22のうち、手140の周辺の画像領域のみが図示されている。手首の角度は、直線170と直線180とが成す角の大きさβで表される。直線170は、腕の姿勢を表す直線である。一方、直線180は、手の上面の姿勢を表す直線である。
例えば直線170は、ビデオフレーム22から腕の上面を表すエッジを検出し、当該エッジ上の任意の2点を結んだり、当該エッジ上の3点以上を利用して直線フィッティングを行ったりすることによって得ることができる。直線180も同様に、ビデオフレーム22から手の上面を表すエッジを検出し、当該エッジ上の任意の2点を結んだり、当該エッジ上の3点以上を利用して直線フィッティングを行ったりすることにより、得ることができる。
なお、手首の角度についても、ワールド座標系における角度が利用されてもよい。この場合、例えば演奏評価装置2000は、ワールド座標系について、腕の姿勢を表す直線と手の上面の姿勢を表す直線を算出し、これらの直線が成す角度を、手首の角度として算出する。また、ワールド座標系において、腕の姿勢や手の上面の姿勢は、直線ではなく平面で表されてもよい。この場合、これら2つの平面の成す角度を、手首の角度として扱うことができる。
<<打鍵の深さ>>
「打鍵の深さ」は、演奏の際にキーが押される度合いを表す評価項目である。打鍵の深さは、通常時のキーと打鍵時のキーとの位置関係で表すことができる。
図11は、打鍵の深さの算出方法を例示する図である。説明を容易にするため、図11では、ビデオフレーム22のうち、キー190の周辺の画像領域のみが図示されている。
キー190は、打鍵されているキーである。線分200は、通常時(打鍵されていない状態)におけるキー190の上面の長辺のうち、カメラ10からより遠い方の長辺を表している。一方、線分210は、打鍵されている状態におけるキー190の上面の長辺のうち、カメラ10からより遠い方の長辺を表している。なお、線分200は、打鍵されているキー190の隣のキーでカメラ10からより遠い方のキーの上面の長辺としてもよい。
図11(a)と(b)は、打鍵の深さについて、互いに異なる算出方法を例示している。図11(a)において、打鍵の深さは、線分200と線分210の成す角の大きさで表されている。一方、図11(b)において、打鍵の深さは、直線IJの長さで表されている。点Iは線分200の端点のうち、ユーザ60の身体に近い方の端点である。また、点Jは、線分210の端点のうち、ユーザ60の身体により近い方の端点である。
なお、打鍵の深さについても、ワールド座標系上の値が利用されてもよい。例えば演奏評価装置2000は、画像座標系における線分200と線分210をワールド座標系における線分に変換し、これらの線分の成す角の大きさや端点間の距離を、打鍵の深さの項目値として利用する。また、利用する点は端点には限定されず、相似の関係に基づき、線分200と線分210の任意の点を利用してもよい。
<演奏評価装置2000の利用態様の例>
演奏評価装置2000の理解を容易にするため、演奏評価装置2000の利用態様を例示する。なお、ここで説明する利用態様は例示であり、演奏評価装置2000の具体的な利用態様はここで説明する例に限定されない。例えば、演奏データからその項目値を算出可能な評価項目のみを扱う場合には、カメラ10が利用されなくてもよい。
図12は、演奏評価装置2000の利用態様を例示する図である。図12(a)において、演奏評価装置2000は、ユーザ60によって操作される携帯端末(ユーザ端末62)で実現されている。例えば前述した、演奏評価装置2000の各機能構成部を実現するためのプログラムをユーザ端末62にインストールすることにより、ユーザ端末62で演奏評価装置2000を実現することが考えられる。
ユーザ端末62は、ユーザ60が対象楽器70を演奏している様子を左から撮影するカメラ10と、ユーザ60が対象楽器70を演奏している様子を右から撮影するカメラ10のそれぞれから、ビデオデータ20を取得する。また、ユーザ端末62は、対象楽器70から演奏データ72を取得する。前述したように、演奏データ72は MIDI(登録商標)データなどである。そして、ユーザ端末62は、取得したビデオデータ20と演奏データ72を解析することでユーザ演奏情報50を生成し、そのユーザ演奏情報50を基準情報40と比較することで、評価情報30を生成する。
一方、図12(b)において、演奏評価装置2000は、ユーザ端末62からのリクエストを受け付けて動作するサーバマシン80で実現されている。この利用態様において、ユーザ端末62は、演奏評価装置2000を利用するためのインタフェースとして利用される。具体的には、ユーザ端末62は、2つのカメラ10からビデオデータ20を取得する。また、ユーザ端末62は、対象楽器70から演奏データ72を取得する。そして、ユーザ端末62からサーバマシン80に対し、ビデオデータ20と演奏データ72が送信される。例えばビデオデータ20と演奏データ72は、ユーザ60の演奏の評価を依頼するリクエストに添付される。サーバマシン80は、取得したビデオデータ20と演奏データ72を解析してユーザ演奏情報50を生成し、そのユーザ演奏情報50を基準情報40と比較することで、評価情報30を生成する。そして、サーバマシン80は、評価情報30を含むレスポンスをユーザ端末62に送信する。
<処理の流れ>
図13は、実施形態1の演奏評価装置2000によって実行される処理の流れを例示するフローチャートである。テンポ情報取得部2020はテンポ情報100を取得する(S102)。評価部2040は、テンポ情報100に示されている指定テンポに対応する基準情報40を取得する(S104)。評価部2040は、ユーザ演奏情報50を取得する(S106)。評価部2040は、基準情報40とユーザ演奏情報50を利用して評価情報30を生成する(S108)。
なお、演奏評価装置2000によって実行される処理の流れは図13に示したものに限定されない。例えば、ユーザ演奏情報50の取得(S106)は、テンポ情報100の取得(S102)や基準情報40の取得(S104)よりも前に実行されてもよい。また、これらの処理が並行して行われてもよい。
<テンポ情報100の取得:S102>
テンポ情報取得部2020はテンポ情報100を取得する。例えばテンポ情報100は、ユーザ入力に応じて取得される。すなわち、テンポ情報取得部2020は、ユーザ入力によって指定されたテンポを特定可能なテンポ情報100を取得する。
この場合、例えばテンポ情報取得部2020は、指定テンポを入力するための画面(以下、テンポ指定画面)が、ユーザによって操作可能な端末のディスプレイ装置に表示されるようにする。例えばこのディスプレイ装置は、演奏評価装置2000の機能を実現するアプリケーションがインストールされているコンピュータ(ユーザ端末62や対象楽器70など)に設けられているタッチパネルディスプレイに表示される。なお、指定テンポの指定を行うユーザは任意の人物でよく、演奏者であるユーザ60でなくてもよい。テンポ情報取得部2020は、当該画面に対するユーザ入力の結果を示す情報を、テンポ情報100として取得する。
図14は、テンポ指定画面90を例示する図である。図14(a)の例において、ユーザは、具体的な数値を入力することで、指定テンポを入力する。この場合、テンポ情報100は、ユーザによって入力された具体的な数値(すなわち、指定テンポを表す具体的な数値)を示す。そのため、テンポ情報取得部2020は、テンポ情報100に示されている値を、指定テンポとして特定する。
一方、図14(b)の例では、指定テンポの複数の選択肢が表示されており、この中から1つを選択することにより、指定テンポの入力が行われる。具体的には、図14(b)では、「通常」、「やや遅い」、及び「遅い」の3通りのテンポのうちの1つを選択することができる。この場合、テンポ情報100は、指定テンポを特定可能な情報として、ユーザによって選択された選択肢を示す。テンポ情報取得部2020は、テンポ情報100に示されている情報に基づいて、指定テンポを特定する。
例えばテンポ情報取得部2020は、対象楽曲に対応する通常テンポを特定し、当該通常テンポとテンポ情報100に示されている選択肢とに基づいて、指定テンポを特定する。なお、対象楽曲に対応する通常テンポは、例えば、対象楽曲の識別情報に対応づけて、演奏評価装置2000からアクセス可能な記憶装置に予め格納しておく。また、「やや遅い」などといった相対的なテンポについては、通常のテンポに対する比率を予め定めておく。
例えば図14(b)において、「やや遅い」が通常のテンポの 2/3 のテンポであり、「遅い」が通常のテンポの 1/2 のテンポであるとする。また、対象楽曲の通常のテンポが 120BPM(Beats Per Minute)であるとする。この場合、「やや遅い」と「遅い」に対応するテンポはそれぞれ、80BPM と 60BPM となる。そこでテンポ情報取得部2020は、「通常」が選択された場合には 120BPM を指定テンポとして特定し、「やや遅い」が選択された場合には 80BPM を指定テンポとして特定し、「遅い」が選択された場合には 60BPM を指定テンポとして特定する。
なお、テンポ情報取得部2020は、図14(b)のテンポ指定画面90に、各選択肢に対応する具体的なテンポの値(例えば前述した 120BPM、80BPM、及び 60BPM)を含めてもよい。この場合、テンポ情報取得部2020は、テンポ指定画面90を生成する前に、対象楽曲の通常のテンポを特定する。また、テンポ情報取得部2020は、対象楽曲の通常のテンポに基づいて、各選択肢に対応するテンポを特定する。
<基準情報40の取得:S104>
評価部2040は基準情報40を取得する(S104)。基準情報40は、所定の楽曲に関し、各評価項目について基準となる項目値を示す情報である。基準となる項目値とは、例えば、講師などの上級者による演奏を解析することで得られる、理想的な項目値である。以下、基準情報40の生成のために演奏を行う人物を、模範演奏者と呼ぶ。基準情報40は、評価可能な楽曲それぞれについて予め生成され、演奏評価装置2000からアクセス可能な記憶装置に格納されている。
基準情報40は、各評価項目の項目値を時系列で示す時系列データである。より具体的には、基準情報40は、「演奏時点、その演奏時点における演奏についての各評価項目の項目値」という組み合わせを、複数の演奏時点それぞれについて示す。基準情報40に示される各演奏時点は、例えば、少なくとも1つの音が演奏される時点である。すなわちこの場合、基準情報40は、少なくとも1つの音が演奏される各時点について、その時点における演奏がどのように行われるべきであるかの基準を示す。
なお、演奏時点の起点(値が0の時点)は、例えば、楽曲の開始時点である。楽曲の開始時点は、例えば、当該楽曲において最初に演奏(打鍵など)が行われる時点である。以下、特に断らない限り、基準情報40に示されている演奏時点の起点は、楽曲の開始時点であるとする。
図15は、基準情報40をテーブル形式で例示する図である。基準情報40は、演奏時点42ごとに項目情報44を有する。項目情報44は、対応する演奏時点における演奏について、評価項目46と項目値48とのペアを評価項目ごとに示す。評価項目46は、評価項目を特定する識別情報(例えば評価項目の名称)を示す。項目値48は、対応する評価項目の項目値を示す。
ここで、各項目情報44に対応する演奏時点42は、演奏のテンポによって異なる。例えば、120BPM のテンポで時点 t1 に演奏される音は、60BPM のテンポでは時点 2*t1 に演奏されることになる。そのため、同一の楽曲であっても、指定テンポごとに利用すべき基準情報40が異なることになる。
そこで例えば、対象楽曲ごとに、対応するテンポがそれぞれ異なる複数の基準情報40を予め用意しておく。この場合、評価部2040は、対象楽曲について用意されている複数の基準情報40の中から、指定テンポに対応する基準情報40を取得する。例えば、楽曲M1の演奏を評価する際に指定可能なテンポが 120BPM、80BPM、及び60BPM の3通りであるとする。そして、テンポ情報100に基づいて特定された指定テンポが 80BPM であったとする。この場合、評価部2040は、楽曲M1について用意されている3つの基準情報40のうち、80BPM のテンポに対応する基準情報40を取得する。
その他にも例えば、対象楽曲ごとに基準情報40を1つ用意しておき、指定テンポに合わせて演奏時点42の値を補正してもよい。例えば、対象楽曲ごとに、通常のテンポで演奏した場合における基準情報40が予め用意される。この場合、基準情報40には、通常のテンポを示す情報がさらに含まれる。評価部2040は、対象楽曲について取得した基準情報40が示す各演奏時点42を、テンポ情報100を用いて特定される指定テンポと基準情報40が示す通常のテンポとの比率に基づいて補正することで、通常のテンポに対応する基準情報40を、指定テンポに対応する基準情報40に変換する。こうすることで、指定テンポに対応する基準情報40を取得することができる。
例えば前述したように、120BPM のテンポで時点 t1 に演奏される音は、60BPM のテンポでは時点 2*t1 に演奏されることになる。すなわち、これを一般化すると、基準のテンポを r1[BPM] と表し、指定テンポを r2[BPM] と表せば、テンポ r1 に対応する基準情報40が示す各演奏時点を r1/r2 倍することにより、テンポ r1 に対応する基準情報40をテンポ r2 に対応する基準情報40に変換することができる。
なお、このように基準情報40を補正することで指定テンポに対応する基準情報40を得る場合においても、対象楽曲ごとに、テンポがそれぞれ異なる複数の基準情報40が用意されてもよい。この場合、例えば評価部2040は、指定テンポに対応する基準情報40が予め用意されていれば、その基準情報40を利用する。一方、指定テンポに対応する基準情報40が予め用意されていない場合、評価部2040は、複数の基準情報40の中から、指定テンポに最も近いテンポに対応する基準情報40を特定し、当該基準情報40に対して上述した補正をすることにより、指定テンポに対応する基準情報40を生成する。このように、指定テンポにより近いテンポに対応する基準情報40を補正するようにすることで、補正によって生じうる誤差をできる限り小さくすることができる。
例えば楽曲M1について、60BPM に対応する基準情報40と 120BPMに対応する基準情報40の2つが予め用意されているとする。また、100BPM というテンポが指定されたとする。この場合、評価部2040は、指定テンポにより近い 120BPM に対応する基準情報40を補正することで、100BPM に対応する基準情報40を生成する。なお、テンポの近さは、対比するテンポの比率で特定することが好適である。例えば上述の例の場合、60BPM と 100BPM の近さは 5/3(=100/60)となり、100BPM と 120BPM の近さは 6/5(=120/100)となる。
<<対象楽曲の特定>>
ここで、対象楽曲についての基準情報40を取得するためには、対象楽曲を特定する必要がある。また、前述したように、ユーザによって指定されるテンポが相対的なテンポである場合、対象楽曲の通常のテンポを把握する必要があるため、対象楽曲の特定が必要となる。そこで演奏評価装置2000は、対象楽曲の特定を行う。
演奏評価装置2000が対象楽曲を特定する方法は様々である。例えば演奏評価装置2000は、対象楽曲を指定するユーザ入力を受け付ける。なお、対象楽曲の指定を行うユーザは任意の人物でよく、演奏者であるユーザ60でなくてもよい。
図16は、対象楽曲を指定する指定画面(楽曲指定画面300)を例示する図である。楽曲指定画面300は、テンポ指定画面90と同様に、ユーザによって操作可能な端末のディスプレイ装置に表示される。楽曲指定画面300は、検索エリア310、楽曲選択エリア320、及び評価範囲指定エリア330を含む。検索エリア310は、曲名や属性(ジャンルなど)などの検索ワードを用いて、対象楽曲を検索するための入力インタフェースである。
なお、対象楽曲の検索は、検索ワードを用いた検索に限定されない。例えば評価部2040は、対象楽曲の音声データを取得し、音声データで楽曲のデータベースを検索することで、対象楽曲を特定してもよい。
検索の結果は、楽曲選択エリア320に表示される。ユーザは、楽曲選択エリア320に表示された楽曲のうちの1つを選択することで、対象楽曲を指定する。図16の例では、「楽曲F」という楽曲が選択されている。なお、検索が行われる前において、楽曲選択エリア320には、候補の楽曲が表示されてもよいし、表示されなくてもよい。前者の場合、例えば楽曲選択エリア320には、対象楽曲として選択可能な全ての楽曲が表示される。その他にも例えば、楽曲選択エリア320には、対象楽曲として選択されたことがある楽曲のリスト(すなわち、これまでの履歴)が表示されるようにしてもよい。
評価範囲指定エリア330は、楽曲の一部のみを評価の対象としたい場合に利用される。この例では、開始位置と終了位置の双方を指定することができる。以下、評価対象として選択される楽曲の一部を、「評価範囲」と呼ぶ。
評価範囲を指定する具体的な方法は様々である。例えば、楽曲を予め複数のセクション(イントロやサビなど)に分割しておき、ユーザ入力で1つ以上のセクションを評価範囲として指定できるようにする。このように評価範囲をセクション単位で指定できるようにする場合、基準情報40には、各項目情報44がどのセクションに含まれるのかを特定できる情報が含まれる。例えば、基準情報40は、対応する楽曲に含まれる全てのセクションそれぞれについて、「セクションの名称、そのセクションの開始時点、そのセクションの終了時点」という情報をさらに含む。そして、評価範囲がセクション単位で指定された場合、評価部2040は、対象楽曲の基準情報40に含まれる項目情報44のうち、評価範囲の最初のセクションの開始時点から、評価範囲の最後のセクションの終了時点の範囲に含まれる各項目情報44を、評価に利用する。
評価範囲を指定する方法は、セクションを指定する方法に限定されない。例えば、評価範囲は、小節単位で指定されてもよい。このように小節単位で評価範囲を指定する場合、基準情報40には、各項目情報44がどの小節に含まれるかを特定可能な情報が含まれる。例えば基準情報40は、対応する楽曲に含まれる全ての小節それぞれについて、「小節番号、その小節の開始時点、その小節の終了時点」という情報をさらに含む。そして、評価範囲が小節単位で指定された場合、評価部2040は、対象楽曲の基準情報40に含まれる項目情報44のうち、評価範囲の最初の小節の開始時点から、評価範囲の最後の小節の終了時点の範囲に含まれる各項目情報44を、評価に利用する。
ただし、小節の長さが一定である楽曲の場合、1つの小節の長さが分かれば、小節番号から時間への変換が可能である。そのため、小節の長さが一定である楽曲を扱う場合には、各小節の時間範囲ではなく、1つの小節の長さを基準情報40に含めてもよい。この場合、評価部2040は、基準情報40が示す1つの小節の長さを用いて、評価範囲の最初の小節の開始時点と、評価範囲の最後の小節の終了時間を算出する。そして、評価部2040は、当該開始時点から終了時点までの範囲に演奏時点42が含まれる項目情報44を、評価範囲に含まれる項目情報44として特定して、評価に利用する。
なお、このように対象楽曲の一部のみが評価対象となる場合において、指定テンポに対応する基準情報40を得るために、予め用意されている基準情報40の補正が行われるとする。この場合、評価部2040は、基準情報40の全体ではなく、評価範囲に対応する部分のみを補正すればよい。
楽曲指定画面300は、さらに、評価に関する種々の条件を指定可能な入力インタフェースを含んでいてもよい。例えば評価の条件としては、ユーザ60の年齢層が挙げられる。ユーザ60の年齢層は、例えば、「大人」と「子供」のいずれか一方である。また、「幼児」や「小学生」などのように、さらに詳細な指定が可能であってもよい。このようにユーザ60の年齢層を指定可能とする場合、年齢層ごとに基準情報40を用意することが好適である。これは、演奏者の年齢層に応じて手の大きさが異なり、その差異が評価値に影響を与えるためである。
評価の条件の他の例としては、楽器の種類が挙げられる。例えば楽器の種類は、「アコースティックピアノ」、「電子ピアノ」、「パイプオルガン」、「電子オルガン」、又は「シンセサイザー」などである。このように楽器の種類を指定可能とする場合、楽器の種類ごとに基準情報40を用意することが好適である。これは、楽器の種類によって鍵盤の堅さ(打鍵に必要な力)が異なり、その差異が評価値に影響を与えるためである。
なお、評価の条件を指定するための入力インタフェースは、楽曲指定画面300とは別の画面として提供されてもよい。
また、楽曲指定画面300とテンポ指定画面90が一つの画面に統合されてもよい。すなわち、楽曲指定画面300の中にテンポを指定するエリアが含まれてもよい。
<<基準情報40の生成方法>>
例えば基準情報40は、模範演奏者による演奏が記録されたビデオデータ20や演奏データ72を解析することで生成することができる。ここで、基準情報40の生成を行う装置を、基準情報生成装置と呼ぶ。基準情報生成装置は、演奏評価装置2000と同一のコンピュータで実現されてもよいし、異なるコンピュータで実現されてもよい。
基準情報40を生成するための模範演奏を行う場合、模範演奏者は、演奏のテンポを指定する入力を行う。基準情報生成装置は、生成する基準情報40に、指定されたテンポを示す情報を含める。
手や指の形など、視覚的な情報を用いて評価可能な評価項目についての基準情報40を生成する場合、基準情報生成装置は、ビデオデータ20を利用して基準情報40を生成する。具体的には、基準情報生成装置は、模範演奏者によって行われた演奏が記録されたビデオデータ20を取得し、当該ビデオデータ20に含まれるビデオフレーム22から、打鍵が行われたビデオフレーム22をそれぞれ抽出する。さらに、基準情報生成装置は、抽出されたビデオフレーム22を解析して、各評価項目についての項目値を算出する。そして、基準情報生成装置は、抽出された各ビデオフレーム22について、当該ビデオフレーム22に対応する演奏時点と、当該ビデオフレーム22から得られた項目情報(「評価項目、項目値」の複数のペア)とを対応づけることにより、基準情報40を生成する。
ビデオフレーム22から各評価項目の項目値を算出するために、基準情報生成装置は、ビデオフレーム22に対して画像解析を行う。具体的には、基準情報生成装置は、各評価項目の項目値を算出するために必要な情報をビデオフレーム22から抽出する。さらに基準情報生成装置は、抽出した情報を用いて、各評価項目の項目値を算出する。そして、基準情報生成装置は、各ビデオフレーム22について、そのビデオフレーム22に対応する演奏時点と、そのビデオフレーム22を用いて各評価項目について算出した項目値との組み合わせを示すユーザ演奏情報50を生成する。
ビデオフレーム22から各評価項目の項目値を算出する方法には、図6から図11を用いて前述した種々の方法を利用できる。項目値の算出に必要な情報は、例えば、各指の指関節の位置、各手の手首の位置、前述した種々の基準線、腕の姿勢を表す直線又は手の上面の姿勢を表す直線などである。
例えば指関節の高さを算出する場合、基準情報生成装置は、ビデオフレーム22から、各指関節を検出し、その位置を特定する。また、基準情報生成装置は、各指が置かれているキーを検出し、そのキーに基づいて前述した基準線を特定する。そして、基準情報生成装置は、特定した指関節の位置と基準線に基づき、指関節の高さを算出する。
関節線間の角の大きさを算出する場合、基準情報生成装置は、ビデオフレーム22から、各指関節を検出し、その位置を特定する。そして、これらの指関節の位置から定めることができる複数の関節線について、互いに共通の指関節を持つ2つの関節線のペアごとに、関節線間の成す角の大きさを算出する。
手首の高さを算出する場合、基準情報生成装置は、ビデオフレーム22から、手首の位置を表す関節を検出し、その位置を特定する。また、基準情報生成装置は、基準線を定めるための手が置かれているキーを特定することで、基準線を特定する。そして、基準情報生成装置は、特定した手首の位置と基準線に基づいて、手首の高さを算出する。
手上面の高さを算出する場合、基準情報生成装置は、ビデオフレーム22から、手上面の位置(例えば、中指の第3関節点の位置)を特定する。また、基準情報生成装置は、基準線の特定を行う。基準線の特定方法は、手首の高さを算出するケースと同様とすることができる。そして、基準情報生成装置は、特定した手上面の位置と基準線に基づいて、手上面の高さを算出する。
手首の角度を算出する場合、基準情報生成装置は、ビデオフレーム22から、手と腕を検出して、手の上面の姿勢を表す直線と、腕の姿勢を表す直線を特定する。そして、基準情報生成装置は、これらの直線を用いて、手首の角度を算出する。
打鍵の深さを算出する場合、基準情報生成装置は、ビデオフレーム22から、打鍵されているキーを検出する。そして、基準情報生成装置は、検出した各キーに関し、打鍵されている状態と通常時のそれぞれについて、キーの上面の長辺のうち、カメラ10から遠い方の長辺を表す線分を算出する。そして、基準情報生成装置は、これらの線分を用いて、各キーの打鍵の深さを算出する。なお、キーの通常時についての情報は、そのキーが打鍵されていないタイミングのビデオフレーム22において、そのキーの上辺の線分から得るか、又はそのキーが打鍵されているタイミングのビデオフレーム22において、そのキーの隣のキーであってカメラ10から遠い方のキーの上辺の線分から得ることができる。
なお、前述したように、各項目値の算出には、ワールド座標系を利用してもよい。この場合、基準情報生成装置は、前述したように、ビデオフレーム22から検出した情報(指関節の位置など)をワールド座標系上の情報に変換した上で、項目値の算出を行う。
指使いも、ビデオデータ20を利用して特定される。具体的には、基準情報生成装置は、ビデオフレーム22から、打鍵されたキーと、そのキーを打鍵した指を検出し、その検出結果に基づいて基準情報40を生成する。演奏時点42は、上記ビデオフレーム22に対応する演奏時点を示す。評価項目46は、「指使い」という評価項目の名称と、検出されたキーに対応する音の識別情報とを示す。項目値48は、検出された指の識別情報を示す。
なお、打鍵されたキーをビデオフレーム22から特定できるようにするためには、例えば事前に、キーの識別情報と、ビデオフレーム22上においてそのキーを表す画像領域の位置との対応付けを表す情報を作成しておく。この情報を参照することにより、打鍵されたキーのビデオフレーム22上の位置から、そのキーの識別情報を特定することができる。
ここで、ビデオフレーム22を利用して基準情報40を生成するためには、そのビデオフレーム22に対応する演奏時点を特定する必要がある。例えば前述したように、演奏時点が、対象楽曲において最初に演奏(打鍵)が行われる時点を基準とする相対的な時点で表されるとする。この場合、例えば基準情報生成装置は、取得したビデオデータ20に含まれるビデオフレーム22のうち、最初の演奏を表すビデオフレーム22の生成時点を、基準時点とする。他のビデオフレーム22については、基準情報生成装置は、演奏時点を特定したいビデオフレーム22の生成時点と基準時点を表すビデオフレーム22の生成時点との差分、及びカメラ10のフレームレートに基づいて、演奏時点を特定したいビデオフレーム22の生成時点を演奏時点に変換する。
対象楽曲において最初に演奏が行われる時点を特定する方法は、最初の演奏を表すビデオフレーム22の生成時点を利用する方法に限られない。例えば、模範演奏者が対象楽曲を演奏する際、演奏開始のタイミングや演奏のテンポの把握が容易になるように、メトロノームの音が出力されるようにする。この場合、基準情報生成装置は、当該メトロノームの音に基づいて、対象楽曲の演奏時点を特定してもよい。
例えば、対象楽曲が 4/4 拍子の曲である場合、メトロノームの音が4回鳴った後に、模範演奏者が演奏を開始するようにする。この場合、4回目のメトロノームの音が鳴った時点を ta、メトロノームの音の時間間隔を i とおけば、時点 ta+i を、最初に演奏が行われる時点として特定することができる。
なお、メトロノームの音は、基準情報生成装置から出力されてもよいし、それ以外(例えば、機械式のメトロノーム)から出力されてもよい。後者の場合、基準情報生成装置は、メトロノームの音が記録された音声データを利用して、メトロノームの音が鳴った時点やメトロノームの音の時間間隔などの特定を行う。
音の特徴に関する評価項目についての基準情報40を生成する場合、例えば基準情報生成装置は、模範演奏者による演奏が記録された演奏データ72を利用する。演奏データ72には、演奏された各音について、演奏時点、音の識別情報、及び音の各種の特徴(強さや長さなど)を特定可能な情報が含まれる。なお、MIDI(登録商標)の用語では、音の識別情報及び音の強さはそれぞれ、「ノートナンバー」及び「ベロシティ」と呼ばれる。
演奏データ72を利用して基準情報40を生成する場合、例えば基準情報生成装置は、取得した演奏データ72から、演奏された各音について、演奏時点、その音のノートナンバー、及びその音のベロシティという情報を抽出することにより、音の強さに関する基準情報40のレコードを生成することができる。同様に、基準情報生成装置は、取得した演奏データ72から、演奏された各音について、演奏時点、その音のノートナンバー、その音の長さという情報を抽出することにより、音の長さに関する基準情報40のレコードを生成することができる。
演奏データとして MIDI(登録商標)データを利用するケースについて、さらに具体的に説明する。MIDI(登録商標)データにおいて、特定の音の出力と停止はそれぞれ、その音を鳴らすことを表すノートオンのメッセージと、その音を止めることを表すノートオフのメッセージとで表される。音の強さは、ノートオンのメッセージに示されているベロシティの値で特定することができる。一方、音の長さは、ノートオンのメッセージの演奏時点とノートオフのメッセージの演奏時点との差分で特定することができる。
その他にも例えば、基準情報生成装置は、模範演奏者による演奏が記録されたビデオデータ20を取得し、当該ビデオデータ20を利用して、音の特徴に関する基準情報40を生成してもよい。ここで、音の強さに影響を与える演奏の外見上の特徴として、打鍵の速さがある。具体的には、打鍵の速さが速いほど、音の強さは強くなる。そこで基本情報生成装置は、ビデオデータ20を解析することで、模範演奏者によって行われた各打鍵について、「打鍵時点(演奏時点)、打鍵された音の識別情報、打鍵の速さ」を特定する。これにより、演奏された各音の強さに関して、基準情報40を生成することができる。なお、演奏時点は、打鍵動作の開始時点で表されてもよいし、打鍵動作の終了時点で表されてもよい。
あるキーが押された時の打鍵の速さは、例えば、打鍵動作の開始時点 ts と打鍵動作の終了時点 te との差分の逆数 1/(te-ts) で表すことができる。打鍵動作の開始時点は、打鍵動作の開始を表すビデオフレーム22(キーが下がり始めたビデオフレーム22)の生成時点で表すことができる。同様に、打鍵動作の終了時点は、打鍵動作の終了を表すビデオフレーム22(キーが最も下まで下がったビデオフレーム22)の生成時点で表すことができる。
その他にも例えば、音の強さに影響を与える演奏の外見上の特徴として、打鍵の深さがある。具体的には、打鍵の深さが深いほど、音が大きくなる。また、楽器の種類によっては、一定量以上の深さまで打鍵しないと音が出ないものもある。そこで基本情報生成装置は、ビデオデータ20を解析することで、模範演奏者によって行われた各打鍵について、「打鍵時点(演奏時点)、打鍵された音の識別情報、打鍵の深さ」を特定する。これにより、演奏された各音の強さに関して、基準情報40を生成することができる。なお、演奏時点は、打鍵動作の開始時点で表されてもよいし、打鍵動作の終了時点で表されてもよい。また、打鍵の深さは、実施形態1の図11で説明した通り、基準線の角度や基準点間の線分の長さなどを利用して表すことができる。
なお、音の強さに関する基準情報40には、打鍵の速さと打鍵の深さのいずれか一方のみが示されていてもよいし、双方が示されていてもよい。
ビデオデータ20を利用して音の長さを特定する場合、例えば、キーが押された時点とキーが離された時点との差分として特定することができる。そこで基準情報生成装置は、ビデオデータ20を解析することで、模範演奏者によって行われた各打鍵について、「打鍵時点(演奏時点)、打鍵された音の識別情報、キーが離された時点」を特定する。これにより、演奏された各音の長さに関して、基準情報40を生成することができる。
基準情報40の生成には、複数の模範演奏者それぞれの演奏から得られる情報が利用されてもよい。例えば、基準情報生成装置は、前述した流れで複数の模範演奏者それぞれについて基準情報40を生成した後、生成された複数の基準情報40に統計処理を施すことにより、演奏の評価に利用する基準情報40を生成する。例えば、複数の人物それぞれについて得られた項目値の統計値(平均値など)を利用することが考えられる。
<ユーザ演奏情報50の取得:S106>
評価部2040はユーザ演奏情報50を取得する(S106)。ユーザ演奏情報50は、ユーザ60によって行われた対象楽曲の演奏について、複数の演奏時点それぞれに対応づけて、当該演奏時点における評価項目と項目値との組み合わせを示す。
図17は、ユーザ演奏情報50をテーブル形式で例示する図である。図17に示すユーザ演奏情報50の構成は、図15に示した基準情報40の構成と同様である。具体的には、ユーザ演奏情報50は、演奏時点52ごとに項目情報54を有する。項目情報54は、対応する演奏時点における演奏について、評価項目56と項目値58とのペアを評価項目ごとに示す。評価項目56は、評価項目を特定する識別情報(例えば評価項目の名称)を示す。項目値58は、対応する評価項目の項目値を示す。
ユーザ演奏情報50の生成は、演奏評価装置2000によって行われてもよいし、演奏評価装置2000以外の他の装置によって行われてもよい。前者の場合、例えば演奏評価装置2000は、ユーザ60による演奏をカメラ10で撮像することで生成されたビデオデータ20や、ユーザ60によって行われた演奏を表す演奏データ72を取得し、これらを解析することで、ユーザ演奏情報50の生成を行う。ここで、ビデオデータ20を利用してユーザ演奏情報50を生成する方法は、ビデオデータ20を利用して基準情報40を生成する方法と同様である。また、演奏データ72を利用してユーザ演奏情報50を生成する方法は、演奏データ72を利用して基準情報40を生成する方法と同様である。
ここで、ビデオデータ20を利用した基準情報の生成に関し、演奏開始のタイミングや演奏のテンポの把握を容易にするために、メトロノームの音を利用してもよいことを上述した。この点、ユーザ60が対象楽曲の演奏を行う際にも、メトロノームの音が利用されてもよい。この場合、評価部2040は、当該メトロノームの音を利用して、ユーザ60によって最初に演奏が行われた時点(すなわち、ユーザ演奏情報50における時点0)を特定することができる。
例えば対象楽曲が 4/4 拍子の曲である場合、ユーザ60は、メトロノームの音が4回鳴ってから演奏を開始する。こうすることで、ユーザ60は、演奏開始の正しいタイミングを容易に把握することができる。特に、評価範囲が対象楽曲の途中から始まる場合、楽曲の最初から演奏を行うケースと比較し、演奏の入りが難しい可能性がある。この点、メトロノームの音を聴いてから演奏を開始するようにすることで、より自然に演奏を開始することが可能となる。
なお、メトロノームの音は、ユーザ60が演奏を行っている間も出力され続けるようにしてもよい。こうすることで、演奏のテンポを正しく保ちながら演奏することが容易となる。ただし、演奏のテンポを評価したい場合もあるため、演奏中にはメトロノーム音が鳴らないように設定できてもよい。
メトロノームの音は、演奏評価装置2000から出力されてもよいし、それ以外(例えば、機械式のメトロノーム)から出力されてもよい。前者の場合、演奏評価装置2000は、メトロノームのテンポを、テンポ情報100に示されている指定テンポに設定する。
評価部2040がビデオデータ20を取得する方法には、様々な方法を利用できる。例えば、演奏評価装置2000がカメラ10以外のコンピュータで実現される場合、評価部2040は、カメラ10から送信されるビデオデータ20を受信したり、ビデオデータ20が格納されている記憶装置にアクセスしてビデオデータ20を読み出したりすることにより、ビデオデータ20を取得する。なお、ビデオデータ20が格納されている記憶装置は、カメラ10の内部と外部のどちらに設けられていてもよい。演奏評価装置2000がカメラ10で実現される場合、評価部2040は、演奏評価装置2000の内部(例えばストレージデバイス1080)に格納されているビデオデータ20を読み出すことで、ビデオデータ20を取得する。
演奏データ72を取得する方法についても、様々な方法を利用できる。例えば評価部2040は、演奏データ72を生成した装置(対象楽器70など)によって送信される演奏データ72を受信したり、演奏データ72が格納されている記憶装置にアクセスして演奏データ72を読み出したりすることにより、演奏データ72を取得する。
ユーザ演奏情報50の生成が演奏評価装置2000以外の他の装置で行われる場合、評価部2040は、当該他の装置によって生成されたユーザ演奏情報50を取得する。その取得方法についても、様々な方法を利用できる。例えば評価部2040は、ユーザ演奏情報50を生成した装置から送信されるユーザ演奏情報50を受信したり、ユーザ演奏情報50が格納されている記憶装置にアクセスしてユーザ演奏情報50を読み出したりすることにより、ユーザ演奏情報50を取得する。
<評価情報30の生成:S108>
評価部2040は、基準情報40とユーザ演奏情報50を利用して、評価情報30を生成する。具体的には、評価部2040は、基準情報40に含まれる項目情報44とユーザ演奏情報50に含まれる項目情報54との対応付けを行い、互いに対応する項目情報44と項目情報54とを比較する。互いに対応する項目情報44と項目情報54は、演奏時点が互いに一致又は近い情報であり、互いに同じ演奏動作(打鍵など)を表すべき情報である。より具体的には、例えば評価部2040は、互いに対応する項目情報44と項目情報54について、評価項目ごとに、項目値の一致度合いを表す評価スコアを算出する。そして、評価部2040は、算出した評価スコアを利用して、評価情報30を生成する。なお、評価スコアの算出方法や、評価スコアを利用して評価情報30を生成する方法については後述する。
<<処理の流れ>>
図18は、項目情報44ごとに評価スコアの算出を行う処理の流れを例示するフローチャートである。ループ処理L1は、基準情報40に含まれる各項目情報44を対象に実行されるループ処理である。S202において、評価部2040は、全ての項目情報44を対象としてループ処理L1を実行したか否かを判定する。既に全ての項目情報44を対象としてループ処理L1を実行した場合、図18の処理は終了する。一方、まだループ処理L1の対象としていない項目情報44が1つ以上存在する場合、評価部2040は、その中から項目情報44を1つ選択する。例えば評価部2040は、対応する演奏時点42が早い項目情報44から順に、ループ処理L1の対象として選択していく。S202で選択された項目情報44を、項目情報44-iと表記する。
評価部2040は、ユーザ演奏情報50に含まれる項目情報54の中から、項目情報44-iに対応する項目情報54を特定する(S204)。例えば評価部2040は、ユーザ演奏情報50に示されている演奏時点52の中から、項目情報44-iに対応する演奏時点42に最も近いものを特定する。そして、評価部2040は、特定した演奏時点52に対応する項目情報54を、項目情報44-iに対応する項目情報54として特定する。
評価部2040は、特定した項目情報54と項目情報44-iを比較することで、評価項目ごとに評価スコアを算出する(S206)。S208はループ処理L1の終端であるため、図18の処理はS202に進む。
なお、項目情報44-iに対応する演奏時点42との差分が所定値以下である演奏時点52が存在しない場合(言い換えれば、当該演奏時点42と、当該演奏時点42と最も近い演奏時点52との差分が所定値より大きい場合)、評価部2040は、項目情報44-iに対応する項目情報54が存在しないと判定して、その項目情報44-iについてはS206を実行しないようにしてもよい。これは例えば、ユーザ60による演奏において音が欠落している場合などに起こりうる。
<<評価スコアの算出方法>>
評価スコアは、対象の評価項目について、項目情報54に示されている項目値58と項目情報44に示されている項目値48との一致度合いを表す。例えば、評価項目ごとに、評価スコアを算出するための評価式を予め用意しておく。評価式には、対象の評価項目について、項目情報44の項目値48が示す値と、項目情報54の項目値58が示す値とが入力される。そして、評価式は、入力された値に所定の演算を施すことにより、評価スコアを出力する。
例えば評価式は、項目値48と項目値58との差分や、項目値48に対する項目値58の比率などを表す値を出力する。なお、差分や比率は、標準化されてもよい。
その他にも例えば、評価式は、項目値48に基づいて定まる許容範囲に項目値58が含まれるか否かの判定結果を出力するように構成されてもよい。例えば許容範囲として、「項目値48が示す値±20%(項目値48が示す値の 0.8 倍以上、項目値48が示す値の 1.2 倍以下)」などといった範囲を定めておく。評価式は、項目値48と項目値58を取得し、項目値48に基づいて許容範囲に項目値58が含まれるか否かを判定する。そして、評価式は、その判定結果を表す値(例えば、許容範囲に含まれていれば1、含まれていなければ0)を出力する。
その他にも例えば、項目値48に基づいて複数の数値範囲を定めることにより、ユーザ60の演奏をランクで評価してもよい。例えば、「項目値48が示す値±20%」という数値範囲A、「項目値48が示す値±40%で、数値範囲Aの外側」という数値範囲B、及び「数値範囲Bの外側」という数値範囲Cが定められているとする。この場合、項目値58が数値範囲Aに含まれる場合は最も評価が高く、項目値58が数値範囲Bに含まれる場合はその次に評価が高く、項目値58が数値範囲Cに含まれる場合は最も評価が低くなる。そこで、このような評価の高さを表すランクを、各数値範囲に割り当てる。例えば、より評価が高い数値範囲に対して、より小さい自然数で表されるランクを割り当てる。前述の例では、数値範囲AからCそれぞれに、1、2、及び3というランクが割り当てられる。
このようにランクで評価を行う場合、評価式は、項目値48と項目値58を取得し、上記複数の数値範囲の中から、項目値58が含まれる数値範囲を特定する。そして、評価式は、特定した数値範囲に対応するランクを出力する。例えば前述した例において、項目値58が数値範囲Bに含まれる場合には、「2」というランクが出力される。
指使いについての評価スコアは、基準情報40に示されている指使いと、ユーザ演奏情報50に示されている指使いとが一致しているかどうかの判定結果を表す。すなわち、互いに対応する項目情報44と項目情報54とについて、評価部2040は、項目値48に示されている指の識別情報と、項目値58に示されている指の識別情報とが一致するか否かを判定し、その判定結果を表す評価スコアを生成する。例えば、評価スコアは、指使いが一致する場合には「1」を示し、指使いが一致しない場合には「0」を示す。
<<評価スコアを用いた評価情報30の生成>>
評価部2040は、評価スコアを利用して、評価情報30を生成する。例えば評価部2040は、算出された評価スコアを全て示す評価情報30を生成する。より具体的には、評価部2040は、対象楽曲において打鍵が行われる時点(演奏時点42)ごとに、その時点に対応する項目情報44と項目情報54とを比較することで生成された「評価項目、評価スコア」のペアを複数示す評価情報30を生成する。
図19は、評価情報30の一例をテーブル形式で例示する図である。図19に示すテーブルを、テーブル400と表記する。テーブル400は、演奏時点402及び評価結果404を示す。評価結果404は、評価項目406と評価スコア408のペアを示す。評価スコア408は、対応する演奏時点402におけるユーザ60の演奏について、対応する評価項目406についての評価スコアを示す。
その他にも例えば、評価部2040は、評価スコアを種々の方法で集計することで、評価情報30を生成してもよい。例えば評価部2040は、演奏時点ごとに、その演奏時点に対応する項目情報54について算出された評価スコアの統計値(平均値など)を算出する。この場合、各時点における演奏について、その演奏の総合的な評価を表すスコアが得られる。以下、評価スコアの統計値を、統計スコアと表記する。評価項目ごとに重要度が異なる場合、統計スコアは、評価項目ごとの重要度を考慮した値(例えば重み付き平均)であってもよい。
図20は、演奏時点ごとに統計スコアを示す評価情報30を例示する図である。図20に示すテーブルを、テーブル500と表記する。テーブル500は、演奏時点502と統計スコア504というペアを示す。統計スコア504は、対応する演奏時点502について算出された複数の評価スコアの統計値である。
評価スコアの集計は、評価項目ごとに行われてもよい。すなわち、評価部2040は、評価項目ごとに、その評価項目について算出された複数の演奏時点それぞれの評価スコアの統計値を算出する。この場合、ユーザ60の演奏の総合的な評価が、評価項目ごとに示される。
図21は、評価項目ごとに統計スコアを示す評価情報30を例示する図である。図21に示すテーブルを、テーブル600と表記する。テーブル600は、評価項目602と統計スコア604というペアを示す。統計スコア604は、対応する評価項目602について算出された複数の評価スコアの統計値である。
図21の例では、評価スコアごとの集計が評価範囲全体で行われている。しかしながら、評価スコアごとの集計は、評価範囲に含まれる複数の部分範囲ごとに行われてもよい。例えば部分範囲はセクションや小節である。部分範囲ごとに集計を行う場合、基準情報40に、各部分範囲を特定できる情報(例えば、セクションを特定できる情報)を含めておく。評価部2040は、基準情報40を参照して各部分範囲を特定することで、各評価スコアを部分範囲ごとにグループ分けする。そして、評価部2040は、部分範囲ごとに、評価スコアの集計(例えば、統計スコアの算出)を行う。
図22は、統計スコアを部分範囲ごとかつ評価項目ごとに示す評価情報30を例示する図である。図22に示すテーブルをテーブル700と表記する。テーブル700は、部分範囲702及び評価結果704を含む。評価結果704は、評価項目706及び統計スコア708を含む。統計スコア708は、対応する部分範囲702に含まれる演奏時点について算出された評価スコアのうち、対応する評価項目706についての評価スコアから算出した統計値を示す。
評価項目を複数のグループに分類できる場合、評価スコアの集計は、評価項目のグループごとに行われてもよい。例えば、手に関する評価項目は、右手に関する評価項目と左手に関する評価項目に分類できる。また、指に関する評価項目の評価スコアは、親指、人差し指、中指、薬指、及び小指それぞれについての評価スコアに分類できる。
図23は、グループごとに集計された評価スコアの統計値を例示する図である。図23に示すテーブルをテーブル800と呼ぶ。テーブル800は、演奏時点802と評価結果804を含む。そして、評価結果804は、項目グループ806と評価スコア808を含む。評価スコア808は、対応する演奏時点802における演奏について、項目グループ806に属する各評価項目の評価スコアの統計値を示す。
なお、このようにグループごとに評価スコアを集計するケースについても、演奏時点ごとではなく、評価範囲全体や部分範囲ごとに統計スコアが算出されてもよい。
<<テンポずれの検出>>
評価部2040は、基準情報40とユーザ演奏情報50とを比較することで、演奏のテンポがずれていること(以下、テンポずれ)を検出してもよい。「演奏のテンポがずれる」とは、演奏される音の順序は正しいものの、演奏時点が理想の時点からずれていることを意味する。
ユーザ60が対象楽曲を正しいテンポで演奏できていない場合、ユーザ60の習熟度が、手や指の形の評価や音の特徴の評価などのような詳細な評価を行えるレベルにまで達していないと言える。そのため、これらの評価を行う前に、より遅いテンポで練習を行って、テンポずれが起こらないようにするための練習を行うことが好適である。そこで評価部2040は、テンポずれを検出したら、テンポを遅くして練習することを促すメッセージを出力するようにしてもよい。
評価部2040がテンポずれを検出する方法は任意である。例えば評価部2040は、時間軸を複数のブロックに区切り、ブロックごとに、基準情報40に示されている音と、ユーザ演奏情報50に示されている音とを比較する。ここで、或るブロックにおいて、基準情報40に示されている複数の音と、ユーザ演奏情報50に示されている複数の音とが、音の種類と順番の双方について一致している一方で、演奏時点がずれている場合、テンポずれが発生していると言える。例えば、或るブロックにおいて、基準情報40とユーザ演奏情報50の双方において、「ドレミファ」という4つの音がこの順序で演奏されているとする。この状況において、基準情報40とユーザ演奏情報50との間で、いずれか1つ以上の音の演奏時点がずれている(例えば、演奏時点の差分が所定値以上である)場合、テンポずれが発生しているといえる。そこで評価部2040は、ブロックごとに基準情報40とユーザ演奏情報50とを比較し、上述した状況を検することにより、テンポずれを検出する。
<評価情報30の出力>
演奏評価装置2000は、任意の方法で評価情報30の出力を行う。例えば演奏評価装置2000は、評価情報30を記憶装置に格納する。その他にも例えば、演奏評価装置2000は、評価情報30をディスプレイ装置に表示させる。その他にも例えば、演奏評価装置2000は、評価情報30を他の装置に送信してもよい。例えば、演奏評価装置2000が、ユーザ端末62からビデオデータ20を受信して動作するサーバマシン80として実現される場合(図12(b)参照)、演奏評価装置2000は、評価情報30をユーザ端末62に対して送信する。そして、ユーザ端末62において、種々の方法で評価情報30の閲覧が行われる。
なお、演奏評価装置2000は、評価情報30をそのまま出力する代わりに、評価情報30を適宜加工して出力してもよい。例えば演奏評価装置2000は、評価情報30を利用して評価結果画面を生成し、当該評価結果画面をディスプレイ装置に表示させる。
図24は、評価結果画面を例示する第1の図である。図24の評価結果画面900は、評価情報30から生成されたグラフを示す。この例では、統計スコアがセクションごとかつ評価項目ごとに算出されている。また、この例では、評価項目ごとに、統計スコアの時間遷移が折れ線グラフで表されている。
また、図24では、特に悪い評価を表す統計スコアが強調表示されている。具体的には、統計スコアの閾値が一点鎖線で示されており、当該閾値より小さい統計スコアが、ドット柄のマークで強調表示されている。なお、同様の方法で、特に良い評価を表す統計スコアを強調表示してもよい。具体的には、所定の閾値よりも大きい統計スコアが強調表示されるようにする。
図25は、評価結果画面を例示する第2の図である。図25の評価結果画面1300は、評価情報30から生成されたグラフを示す。この例では、統計スコアが、演奏に使用された指ごとかつ評価項目ごとに算出されている。
このように演奏に使用された指ごとに各評価項目の項目値を集計することにより、例えば、手や指ごとの癖を把握することが容易になる。例えば、図25のグラフを見ると、評価項目AとBのいずれについても、左手を使用した演奏のスコアが、右手を使用した演奏のスコアよりも低いことが分かる。そのため、左手による演奏の技術を向上させるべきであることが分かる。
その他にも例えば、図25のグラフを見ると、右手と左手のどちらについても、小指を使用した演奏のスコアが、それ以外の指を使用した演奏のスコアよりも低いことが分かる。そのため、小指による演奏の技術を向上させるべきであることが分かる。
演奏評価装置2000は、ユーザ60の演奏と模範演奏者の演奏について、3次元的な手の形のモデリング映像を生成し、当該映像を含む画面を出力したり、当該映像のビデオデータを記憶装置に格納したりしてもよい。ユーザ60の演奏についての手のモデリング映像は、ユーザ演奏情報50から得られる各指や手首の関節点などの情報に基づいて生成することができる。同様に、模範演奏者についての手のモデリング映像は、基準情報40から得られる各指や手首の関節点などの情報に基づいて生成することができる。
演奏評価装置2000は、当該モデリング映像と共に評価情報30を出力することが好適である。ここで、各評価項目についての評価結果は、モデリング映像において当該評価項目に関連する部分と対応づけて示されることが好適である。例えば、手首の高さについての評価結果は、対応する手首の付近に表示させる。同様に、各指の関節点についての評価結果は、対応する指の付近に表示させる。
このように手のモデリング映像と共に評価情報30を見せることにより、ユーザ60が模範演奏者と自分の演奏との違いを視覚によって直感的に把握できる。そのため、ユーザ60が、修正すべき(練習すべき)点を容易に認識できるようになる。
上記実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。