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