Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2019049294) CODE INFORMATION EXTRACTION DEVICE, CODE INFORMATION EXTRACTION METHOD, AND CODE INFORMATION EXTRACTION PROGRAM
Document

明 細 書

発明の名称 コード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラム

技術分野

0001  

背景技術

0002  

発明の概要

発明が解決しようとする課題

0003   0004  

課題を解決するための手段

0005   0006   0007   0008   0009  

発明の効果

0010  

図面の簡単な説明

0011  

発明を実施するための形態

0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082  

請求の範囲

1   2   3   4   5   6   7   8   9  

図面

1   2   3   4   5   6   7   8   9   10  

明 細 書

発明の名称 : コード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラム

技術分野

[0001]
 本発明は、譜面の画像データからコード情報を抽出するコード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラムに関する。

背景技術

[0002]
 従来、スキャナ等を用いて譜面の画像データを取得し、その画像データから曲に関する種々の情報を抽出することが提案されている。例えば、特許文献1には、電子楽器および画像取り込み装置により構成される電子楽器システムが記載されている。画像取り込み装置は、スキャナまたはデジタルカメラ等からなり、紙面に印刷された楽譜(印刷楽譜)から曲情報を読み取る。曲情報は、通常の楽譜情報に加えて、曲の演奏に関連付けられたレジストレーション等の設定情報を含む。読み取った曲情報を楽譜画像情報に変換し、その楽譜画像情報を電子楽器に入力する。電子楽器は、楽譜画像情報を取得すると、画像解析技術を用いた楽譜読み込み処理により楽譜画像情報を曲データに変換して読み込む。
特許文献1 : 特許第4702139号公報

発明の概要

発明が解決しようとする課題

[0003]
 譜面には、曲中のコード(和音)を表すコード情報(例えば、コードルートとコードタイプとの組み合わせからなるコードネーム)が表記されることがある。上記の電子楽器システムでは、設定情報として例えばQRコード(登録商標)が印刷楽譜に付され、QRコード(登録商標)を読み込むことによって設定情報を取得することができる。しかしながら、一般的な譜面に表記されたコード情報を精度良く抽出することはできない。
[0004]
 本発明の目的は、譜面画像データからコード情報を精度良く抽出することが可能なコード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラムを提供することである。

課題を解決するための手段

[0005]
 本発明の一局面に従うコード情報抽出装置は、譜面を表す譜面画像データからコード情報に対応する文字群を抽出する文字群抽出部と、抽出された文字群が予め定められたコード表記規則に従うか否かを判定する判定部と、抽出された文字群がコード表記規則に従わない場合、抽出された文字群をコード表記規則に従うように補正する補正部とを備える。
[0006]
 コード表記規則は、コードルートに関するコードルート規則とコードタイプに関するコードタイプ規則とを定め、判定部は、抽出された文字群がコードルートを表すコードルート文字群とコードタイプを表すコードタイプ文字群とを含む場合には、コードルート文字群がコードルート規則に従い、かつコードタイプ文字群がコードタイプ規則に従う場合に、抽出された文字群がコード表記規則に従うと判定してもよい。補正部は、抽出された文字群のうちコード表記規則に従わない文字を予め定められた補正テーブルに基づいて補正してもよい。
[0007]
 コード情報抽出装置は、コード情報に対応する文字群の書体を表す書体情報を取得する書体情報取得部をさらに備え、文字群抽出部は、取得された書体情報に基づいてコード情報に対応する文字群を抽出してもよい。コード情報抽出装置は、ユーザによる書体の指定を受け付ける書体受付部をさらに備え、書体情報取得部は、指定された書体を表す書体情報を取得してもよい。コード情報抽出装置は、譜面画像データから少なくとも1つの文字を抽出し、抽出した文字の書体を判定する書体判定部をさらに備え、書体情報取得部は、判定された書体を表す書体情報を取得してもよい。コード情報抽出装置は、譜面における抽出された文字群の位置を示す位置情報を取得する位置情報取得部と、取得された位置情報に基づいて、譜面により表される曲中の時間位置を特定する時間位置特定部とをさらに備えてもよい。
[0008]
 本発明の他の局面に従うコード情報抽出方法は、譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、抽出された文字群がコード表記規則に従わない場合、抽出された文字群をコード表記規則に従うように補正するステップとを備える。
[0009]
 本発明のさらに他の局面に従うコード情報抽出プログラムは、譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、抽出された文字群がコード表記規則に従わない場合、抽出された文字群をコード表記規則に従うように補正するステップとを、コンピュータに実行させるためのものである。

発明の効果

[0010]
 本発明によれば、譜面画像データからコード情報を精度良く抽出することができる。

図面の簡単な説明

[0011]
[図1] 図1は本発明の実施の形態に係るコード情報抽出装置の構成を示すブロック図である。
[図2] 図2はコード情報抽出装置の機能的な構成を示すブロック図である。
[図3] 図3は譜面画像データにより表される参照譜面の一例を示す図である。
[図4] 図4は書体指定画面の例を示す図である。
[図5] 図5はコード正誤判定の一例について説明するための図である。
[図6] 図6はコードルート補正テーブルの一例を示す図である。
[図7] 図7はコードタイプ補正テーブルの一例を示す図である。
[図8] 図8は位置情報の取得例について説明するための図である。
[図9] 図9はコード情報の表示例について説明するための図である。
[図10] 図10はコード情報抽出処理の一例を示すフローチャートである。

発明を実施するための形態

[0012]
 以下、本発明の実施の形態に係るコード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラムについて図面を用いて詳細に説明する。
[0013]
 [1]コード情報抽出装置の構成
 図1は本発明の実施の形態に係るコード情報抽出装置の構成を示すブロック図である。図1のコード情報抽出装置100は、譜面を表す譜面画像データからコード(和音)を表すコード情報を抽出する。
[0014]
 図1のコード情報抽出装置100は、譜面入力部1、操作部4、表示部6、RAM(ランダムアクセスメモリ)9、ROM(リードオンリメモリ)10、CPU(中央演算処理装置)11、記憶装置13および通信I/F(インターフェース)14を備える。これらの構成要素は、それぞれバス19に接続される。
[0015]
 譜面入力部1は、紙等の記録媒体に印刷された譜面を読み込み、その譜面を表す譜面画像データをCPU11に入力する。例えば、譜面入力部1はスキャナであり、光源および光電変換素子を含む。光源から譜面に光が照射され、その反射光が光電変換素子により受光される。光電変換素子は、受光した光に基づいて譜面画像データを生成する。
[0016]
 操作部4は、ユーザにより操作される種々の操作子を含み、電源のオンオフおよび各種設定を行うために用いられる。表示部6は、例えば液晶ディスプレイを含み、抽出されたコード情報を表示する。操作部4および表示部6の少なくとも一部がタッチパネルディスプレイにより構成されてもよい。
[0017]
 RAM9、ROM10およびCPU11がコンピュータ200を構成する。RAM9は、例えば揮発性メモリからなり、CPU11の作業領域として用いられるとともに、各種データを一時的に記憶する。ROM10は、例えば不揮発性メモリからなり、制御プログラム、コード情報抽出プログラム等のコンピュータプログラムを記憶する。CPU11は、ROM10に記憶されたコード情報抽出プログラムをRAM9上で実行することにより後述するコード情報抽出処理を行う。
[0018]
 記憶装置13は、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含む。記憶装置13には、コード表記規則および補正テーブルが記憶される。コード表記規則は、コード表記の規則を定める。補正テーブルは、譜面画像データから抽出された文字群を補正するために用いられる。コード表記規則および補正テーブルの詳細については後述する。記憶装置13に1または複数の譜面画像データが記憶されていてもよく、あるいは記憶装置13にコード情報抽出プログラムが記憶されていてもよい。
[0019]
 通信I/F14は、外部記憶装置等の種々の外部機器に接続可能である。また、通信I/F14が通信網に接続されてもよい。通信I/F14が外部記憶装置に接続されている場合、コード情報抽出プログラム、譜面画像データ、コード表記規則および補正テーブルの少なくとも1つが、外部記憶装置に記憶されていてもよい。
[0020]
 本実施の形態におけるコード情報抽出プログラムは、コンピュータが読み取り可能な記録媒体に格納された形態で提供され、ROM10または記憶装置13にインストールされてもよい。また、通信I/F14が通信網に接続されている場合、通信網に接続されたサーバから配信されたコード情報抽出プログラムがROM10または記憶装置13にインストールされてもよい。同様に、譜面画像データ、コード表記規則および補正テーブルの少なくとも1つが、記憶媒体から取得されてもよく、通信網に接続されたサーバから取得されてもよい。
[0021]
 [2]コード情報抽出装置の機能的な構成
 図2は、コード情報抽出装置100の機能的な構成を示すブロック図である。図2に示すように、コード情報抽出装置100は、画像データ取得部51、文字群抽出部52、書体受付部53、書体判定部54、書体情報取得部55、判定部56、補正部57、位置情報取得部58、時間位置特定部59および表示制御部60を含む。これらの構成要素の機能は、図1のCPU11がコード情報抽出プログラムを実行することにより実現される。
[0022]
 画像データ取得部51は、譜面入力部1により入力された譜面画像データを取得する。画像データ取得部51は、図1の記憶装置13、通信I/F14に接続された外部記憶装置、あるいは通信網に接続されたサーバのいずれかから譜面画像データを取得してもよい。以下、取得された譜面画像データが表す譜面を参照譜面と呼ぶ。また、参照譜面に対応する曲(参照譜面に従って演奏される曲)を参照曲と呼ぶ。
[0023]
 文字群抽出部52は、取得された譜面画像データからコード情報に対応する1または複数の文字群(以下、コード文字群と呼ぶ)を抽出する。コード文字群は、コードネームを表す1または複数の文字を含む。具体的には、文字群抽出部52は、譜面画像データからコード文字群の画像データを抽出し、抽出した画像データに基づいて、コード文字群に含まれる文字の各々(以下、コード文字と呼ぶ。)を認識する。コード文字は、数字、アルファベット、“♯”(シャープ)および“♭”(フラット)のような音楽記号、ならびに“△”(メジャー)および“φ”(ハーフディミニッシュ)のようなコード表記に用いられる記号を含む。
[0024]
 書体受付部53は、ユーザによるコード文字群の書体(以下、コード書体と呼ぶ。)の指定を受け付ける。譜面によって、コード書体は異なる。そこで、例えば、ユーザが操作部4を操作してコード書体を指定する。書体判定部54は、取得された譜面画像データから少なくとも1つの文字を参照文字として抽出し、抽出した参照文字の書体をコード書体として判定する。この場合、抽出されたコード文字群が参照文字として用いられてもよい。例えば、書体受付部53によってコード書体が受け付けられない場合(ユーザがコード書体を指定しない場合)に、書体判定部54がコード書体を判定する。
[0025]
 書体情報取得部55は、コード書体を表す書体情報を取得する。本例において、書体情報取得部55は、書体受付部53により受け付けられたコード書体または書体判定部54により判定されたコード書体を表す書体情報を取得する。また、本例では、文字群抽出部52が、取得された書体情報に基づいて、抽出したコード文字群に含まれる各コード文字を認識する。
[0026]
 判定部56は、抽出されたコード文字群が図1の記憶装置13に記憶されたコード表記規則CRに従うか否かを判定する。以下、判定部56による判定をコード正誤判定と呼ぶ。コード正誤判定は、予め用意されたテーブルに基づいて行われてもよく、予め定められたアルゴリズムに基づいて行われてもよい。コード正誤判定の具体例については後述する。補正部57は、抽出されたコード文字群がコード表記規則CRに従わない場合、抽出されたコード文字群をコード表記規則CRに従うように補正する。本例において、補正部57は、記憶装置13に記憶された補正テーブルATに基づいて、抽出されたコード文字群のうちコード表記規則CRに従わないコード文字を補正する。補正テーブルATが用いられる代わりに、予め定められたアルゴリズムに基づいてコード文字群が補正されてもよい。補正後のコード文字群がコード情報として抽出される。
[0027]
 位置情報取得部58は、参照譜面におけるコード文字群の位置を表す位置情報を取得する。位置情報は、例えば、参照譜面における各コード文字群の座標を表す。時間位置特定部59は、取得された位置情報に基づいて、参照曲中における各コード情報の時間位置を特定する。時間位置は、例えば、小節番号、拍およびティック(tick)により表される。
[0028]
 表示制御部60は、補正後のコード文字群により表されるコード情報が表示されるように表示部6を制御する。例えば、表示制御部60は、補正後のコード文字群および時間位置特定部59により特定された時間位置に基づいて、参照曲のコード譜を表示部6の画面上に表示させる。
[0029]
 [3]コード情報の抽出
 譜面画像データからのコード情報の抽出の一例について説明する。図3は、譜面画像データにより表される参照譜面の一例を示す図である。図3の参照譜面は、五線譜であり、複数段の五線および複数のコード情報Ciを含む。五線上の音符の図示は省略されている。各段の五線の上方領域に、複数のコード情報Ciが、“Fm ”、“B ”、“E ”・・・等のコードネームで表記されている。
[0030]
 このような参照譜面を表す譜面画像データから図2の文字群抽出部52によりコード文字群の画像データが抽出される。例えば、参照譜面上でコード情報が表記された領域(図3の例では、五線の上方領域)が予め特定され、特定された領域の輝度分布に基づいて、コード文字群の画像データが抽出される。
[0031]
 続いて、抽出されたコード文字群の画像データに基づいて、文字群抽出部52により各コード文字が認識される。本例では、図2の書体情報取得部55により予め取得された書体情報に基づいて、各コード文字が認識される。
[0032]
 例えば、図1の表示部6が書体指定画面を表示し、書体指定画面上でユーザがコード書体を指定する。図4は、書体指定画面の例を示す図である。図4の書体指定画面DAは、オプションボタンOP1,OP2,OP3、複数のオプションボタンOP2a、複数のオプションボタンOP3a、および解析ボタンANを含む。
[0033]
 コード書体が不明である場合、ユーザは、オプションボタンOP1をオンする。コード書体が一般的なフォント(以下、一般フォントと呼ぶ。)である場合、ユーザは、オプションボタンOP2をオンするとともに、複数の一般フォントにそれぞれ対応する複数のオプションボタンOP2aのうち、コード書体に対応するオプションボタンOP2aをオンする。コード書体が手書き風のフォント(以下、手書き風フォントと呼ぶ。)である場合、ユーザは、オプションボタンOP3をオンするとともに、複数の手書き風フォントに対応する複数のオプションボタンOP3aのうち、コード書体に対応するオプションボタンOP3aをオンする。
[0034]
 いずれかのオプションボタンOP2aまたはいずれかのオプションボタンOP3aがオンされることにより、コード書体が指定される。その状態で解析ボタンANがオンされると、図2の書体受付部53によりコード書体の指定が受け付けられ、指定されたコード書体に基づいてコード文字が認識される。一方、オプションボタンOP1がオンされた状態で解析ボタンANがオンされると、図2の書体判定部54によるコード書体の自動判定が行われ、判定されたコード書体に基づいてコード文字が認識される。コード文字の認識には、例えば畳み込みニューラルネットワーク等の公知の技術が用いられる。
[0035]
 コード書体が明らかである場合には、ユーザによってコード書体が指定されることにより、各コード文字が精度良く認識される。一方、コード書体が不明である場合であっても、参照文字に基づいてコード書体の自動判定が行われることにより、各コード文字の認識精度の低下が抑制される。
[0036]
 このようにして各コード文字が認識された後のコード文字群を認識コード文字群と呼ぶ。認識コード文字群について、図2の判定部56によりコード正誤判定が行われる。図5は、コード正誤判定の一例について説明するための図である。図5の例において、認識コード文字群は、“# m# ”である。
[0037]
 通常、コードネームは、コードルートを表す1または複数の文字(以下、コードルート文字群と呼ぶ。)と、コードタイプを表す1または複数の文字(以下、コードタイプ文字群と呼ぶ。)とにより表される。例えば、コードネーム“A maj ”について、コードルート文字群は“A ”であり、コードタイプ文字群は“maj ”である。通常、コードルート文字群は、コードタイプ文字群の前に表記される。ただし、メジャートライアドコード等は、コードルート文字群のみで表記される場合がある。例えば、Cメジャートライアドは、“C”の1文字で表記される場合がある。この場合、コードタイプ文字群は表記されない。
[0038]
 コードルート文字群は、音名を表す“A”~“G”の7つのアルファベットのうちの1つのアルファベットのみからなるか、またはその1つのアルファベットの後に“♯”もしくは“♭”が加えられた2つの文字からなる。
[0039]
 コードタイプ文字群は、種々の数字、アルファベットおよび記号からなる。1つの文字からなるコードタイプ文字群としては、“ ”(セブンス)および“m”(マイナートライアド)等があり、2つの文字からなるコードタイプ文字群としては、“M ”(メジャーセブンス)および“m ”(マイナーセブンス)等があり、3つ以上の文字からなるコードタイプ文字群としては、“dim”(ディミニッシュ)および“maj ”(メジャーセブンス)等がある。なお、同じコードタイプであっても、異なるコードタイプ文字群で表される場合もある。例えば、“maj ”、“Maj ”、“M ”、“△ ”は、いずれもメジャーセブンスを表す。
[0040]
 本例では、認識コード文字群が、コードルート文字群とコードタイプ文字群とに分割される。以下、認識コード文字群に含まれるコードルート文字群およびコードタイプ文字群をそれぞれ認識コードルート文字群および認識コードタイプ文字群と呼ぶ。
[0041]
 例えば、認識コード文字群の2つ目の文字が“♯”または“♭”であるか否かが判定される。2つ目の文字が“♯”または“♭”である場合、認識コード文字群の1つ目の文字と2つ目の文字とが認識コードルート文字群に特定され、3つ目以降の1または複数の文字が認識コードタイプ文字群に特定される。2つ目の文字が“♯”および“♭”のいずれでもない場合、認識コード文字群の1つ目の文字が認識コードルート文字群に特定され、2つ目以降の1または複数の文字が認識コードタイプ文字群に特定される。
[0042]
 図5の例では、認識コード文字群である“# m# ”の2つ目の文字が“♭”であるので、認識コードルート文字群は、認識コード文字群の1つ目および2つ目の文字からなる“#♭”である。また、認識コードタイプ文字群は、それ以降の文字からなる“m# ”である。
[0043]
 なお、譜面画像データからコード情報に対応しない文字群が誤って抽出されることがある。そのような文字群は、コード正誤判定の対象から除外されることが好ましい。例えば、小節番号等の数字のみからなる文字群、またはリハーサルマークがコード文字群として誤って抽出されることがある。数字のみからなる文字群は、コード文字群と明らかに異なるので、予め除外されることが好ましい。また、リハーサルマークは、通常、矩形または円形の枠と、その枠内に配置された数字またはアルファベットとを含む。そこで、このような枠内に配置された文字からなる文字群は、リハーサルマークであると判定され、予め除外されてもよい。あるいは、抽出された文字群に含まれる複数の文字のうち、コード表記に使用され得ない文字の割合が所定の値よりも高い場合に、その文字群が予め除外されてもよい。
[0044]
 本例では、コード表記規則CRが、コードルートに関するコードルート規則と、コードタイプに関するコードタイプ規則とを定める。認識コードルート文字群がコードルート規則に従い、かつ認識コードタイプ文字群がコードタイプ規則に従う場合、認識コード文字群がコード表記規則CRに従うと判定される。ただし、認識コード文字群がコードルート文字群のみを含む場合(コードタイプ文字群を含まない場合)には、認識コードルート文字群がコードルート規則に従う場合に、認識コード文字群がコード表記規則CRに従うと判定されてもよい。
[0045]
 コードルート規則は、例えば、コードルート文字群の最初の文字が、“A”~“G”のうちのいずれかのアルファベットであることを定める。図5の例では、“#♭”の最初の文字が、“A”~“G”のうちのいずれでもない。そのため、認識コードルート文字群がコードルート規則に従っていないと判定される。
[0046]
 コードタイプ規則は、例えば、正規のコードタイプ文字群の一覧を定める。認識コードタイプ文字群が、その一覧に含まれるいずれかのコードタイプ文字群と一致する場合、認識コードタイプ文字群がコードタイプ規則に従っていると判定される。図5の例において、“m# ”は、いずれのコードタイプ文字群とも一致しない。そのため、認識コードタイプ文字群がコードタイプ規則に従っていないと判定される。
[0047]
 コードタイプ規則が、正規のコードタイプ文字群に含まれ得ない文字または文字の組み合わせを定めてもよい。例えば、“B”および“C”等は、正規のコードタイプ文字群には含まれ得ない。また、“♯”、“a”および“7”等は、単体ではコードタイプ文字群に含まれ得るが、“♯7”、“♯a”、“a7”という文字の組み合わせは、コードタイプ文字群に含まれ得ない。このような、正規のコードタイプ文字群には含まれ得ない文字または文字の組み合わせが認識コードタイプ文字群に含まれる場合、その認識コードタイプ文字群はコードタイプ規則に従っていないと判定される。
[0048]
 また、正規のコードタイプ文字群に含まれ得ない文字の組み合わせが認識モード文字群に含まれる場合であって、それらの文字の各々が単体では正規のコードタイプ文字群に含まれ得る場合、次のようにして、誤っている文字(コード表記規則に従わない文字)が特定されてもよい。例えば、“d7”という文字の組み合わせについて、“7”が誤っていると仮定された場合、“d”から始まりかつコードタイプ文字群に含まれ得る文字群として、“dim”がある。しかしながら、“dim”は、“d7”と文字数が一致しないので、“d7”の補正候補に該当しない。一方、“d”が誤っていると仮定された場合、“7”で終わりかつコードタイプ文字群に含まれ得る文字群として、“M7”、“△7”、“m7”および“-7”等がある。これらは“d7”と文字数が一致するので、“d7”の補正候補に該当する。したがって、誤っている文字は“d”であると特定される。
[0049]
 認識コード文字群がコード表記規則CRに従っていない場合、図2の補正部57により認識コード文字群がコード表記規則CRに従うように補正される。本例では、コード表記規則CRに従わないコード文字が、補正テーブルATに基づいて補正される。補正テーブルATは、コード表記規則に従わないコード文字と、正規のコード文字との対応関係を表す。本例では、補正テーブルATが、認識コードルート文字群を補正するためのコードルート補正テーブルと、認識コードタイプ文字群を補正するためのコードタイプ補正テーブルとを含む。図6は、コードルート補正テーブルの一例を示す図であり、図7は、コードタイプ補正テーブルの一例を示す図である。
[0050]
 図6のコードルート補正テーブルATaは、コードルート規則に従わないコード文字(図6の上段)と、正規のコード文字(図6の下段)との対応関係を定める。例えば、認識コードルート文字群のうち、コードルート規則に従わないコード文字が“#”である場合、その“#”は“A”に補正される。また、コードルート規則に従わないコード文字が“&”である場合、その“&”は“B”に補正される。図5の例では、認識コードルート文字群“#♭”のうち、コードルート規則に従わない“#”が“A”に補正される。
[0051]
 図7のコードタイプ補正テーブルATbは、コードタイプ規則に従わないコード文字またはその組み合わせ(図7の上段)と、正規のコード文字またはその組み合わせ(図7の下段)との対応関係を定める。例えば、コードタイプ規則に従わないコード文字の組み合わせが“N ”である場合、その“N ”は“M ”に補正される。また、コードタイプ規則に従わないコード文字の組み合わせが“m♯ ”である場合、その“m♯ ”は“maj ”に補正される。図5の例では、認識コードタイプ文字群“m# ”が、“maj ”に補正される。
[0052]
 コードルート補正テーブルATaおよびコードタイプ補正テーブルATbは、過去に生じた誤認識の結果またはシミュレーションの結果等に基づいて生成される。例えば、コードルート文字群について、“A”が“#”と誤認識される可能性があることが経験的にまたはシミュレーションによりわかっている。そこで、“#”を“A”に補正すべきであることがコードルート補正テーブルATaで定められる。なお、コード表記規則に従わない一のコード文字に対し、補正の候補として複数のコード文字が定められていてもよい。その場合、補正後のコード文字群がコード表記規則CRに従うように、複数の候補から一のコード文字が選択的に使用される。
[0053]
 なお、コードルート補正テーブルATaおよびコードタイプ補正テーブルATbは適宜更新されることが好ましい。例えば、認識されたコード文字がコードルート補正テーブルATaまたはコードタイプ補正テーブルATbに定められていない場合、そのコード文字と、それに対応する正規のコード文字とがコードルート補正テーブルATaまたはコードタイプ補正テーブルATbに追加されてもよい。あるいは、コードルート補正テーブルATaまたはコードタイプ補正テーブルATbを用いた補正の結果が適切でなかった場合、その結果に基づいて、コードルート補正テーブルATaまたはコードタイプ補正テーブルATbが修正されてもよい。
[0054]
 各コード文字が認識される際に、各コード文字について補正の候補となる複数の文字が取得されてもよい。認識コード文字群がコード表記規則CRに従わないコード文字を含む場合には、取得された複数の文字のうち、コード表記規則CRに従いかつ補正すべきコード文字との類似性が高い文字を用いて、認識コード文字群が補正されてもよい。
[0055]
 認識コード文字群が“/”(スラッシュ)を含む場合には、認識コード文字群が分数コードを表していると判定されてもよい。この場合、認識コード文字群が、“/”より前の1または複数の文字を含む分子コード文字群と、“/”より後の1または複数の文字を含む分母コード文字群とに分割され、分子文字群および分母文字群の各々について、上記同様のコード正誤判定および補正が行われてもよい。
[0056]
 抽出された各コード文字群について、図2の位置情報取得部58により位置情報が取得され、取得された位置情報に基づいて図2の時間位置特定部59により参照曲中の時間位置が特定される。
[0057]
 図8は、位置情報の取得および時間位置の特定の一例について説明するための図である。本例では、各コード情報の時間位置として各コード情報の開始位置が特定される。また、位置情報の取得および時間位置の特定は、小節毎に行われる。図8の例では、参照譜面における対象の小節の上方領域に、3つのコード文字群C1,C2,C3が示されている。対象の小節の拍子は4分の4である。
[0058]
 位置情報は、例えば、曲の進行を表す方向における座標で表される。図8の例において、曲の進行を表す方向は、五線に平行な方向である横方向である。そこで、コード文字群C1~C3の位置情報として、参照譜面におけるコード文字群C1~C3の横座標(X座標)が取得される。例えば、図8の2段目に示すように、コード文字群C1~C3をそれぞれ含む矩形の領域R1,R2,R3が設定される。領域R1,R2,R3の各々について、左端部の横座標および右端部の横座標が位置情報として取得される。
[0059]
 続いて、コード文字群C1~C3の各々について、対応する音符が探索される。例えば、対象の小節内にある音符が検出され、検出された各音符の横座標が取得される。さらに、各コード文字群の横座標と各音符の横座標とが比較され、各コード文字群について、最も近い横座標を有する音符が特定される。それらのコード文字群および音符の横座標の差が予め定められたしきい値以下である場合に、特定された音符が、そのコード文字群に対応すると判定される。一方、それらのコード文字群および音符の横座標の差がしきい値より大きい場合、そのコード文字群に対応する音符はないと判定される。
[0060]
 図8の例では、対象の小節内に配置される音符n1,n2のうち、コード文字群C1と最も近い横座標を有する音符はn1であり、コード文字群C3と最も近い横座標を有する音符はn2である。また、コード文字群C1の横座標と音符n1の横座標との差、ならびにコード文字群C3の横座標と音符n2の横座標との差は、いずれもしきい値以下である。したがって、音符n1,n2が、コード文字群C1,C3にそれぞれ対応すると判定される。この場合、コード文字群C1に対応するコード情報の開始位置は、音符n1の開始位置(1拍目)であり、コード文字群C3に対応するコード情報の開始位置は、音符n2の開始位置(3拍目)であると判定される。
[0061]
 一方、コード文字群C2と最も近い横座標を有する音符はn1である。しかしながら、コード文字群C2の横座標と音符n1の横座標との差はしきい値よりも大きい。そのため、コード文字群C2に対応する音符はないと判定される。
[0062]
 いずれかのコード文字群について、対応する音符がない場合、そのコード文字群と小節線との位置関係に基づいて、時間位置が特定される。具体的には、対象の小節の開始位置および終了位置にそれぞれ対応する左右の小節線BLが検出され、その2つの小節線BLの位置情報が取得される。例えば、各小節線BLの横座標が位置情報として取得される。検出された2つの小節線の間の横方向の距離DSは、1小節の長さに対応する。
[0063]
 続いて、図8の3段目に示すように、2つの小節線BLの間の区間を横方向にN等分する複数の仮想線VLが設定される。Nは正の整数であり、クオンタイズの精度に対応する。図8の例では、Nは8である。これにより、対象の小節が8つの単位区間A1~A8に分割される。1つの単位区間の長さは、8分音符の長さと等しい。
[0064]
 続いて、対応する音符がないコード文字群C2が、単位区間A1~A8のいずれに対応するか判定される。例えば、コード文字群C2がいずれの仮想線VLとも重ならないように、複数の仮想線VLが左方向にずらされる。複数の仮想線VLの移動距離は、例えば、1つの単位区間の長さ(DS/N)の2分の1以下である。その結果、図8の4段目に示すように、単位区間A3を表す2つの仮想線VLの間にコード文字群C2が位置する。この場合、コード文字群C2が単位区間A3に対応すると判定される。それにより、コード文字群C2に対応するコード情報の開始位置は、対象の小節における単位区間A3の開始位置(2拍目)であると判定される。
[0065]
 このようにして抽出されたコード情報が図2の表示制御部60によって表示部6の画面上に表示される。図9は、コード情報の表示例について説明するための図である。図9の例は、図3の参照譜面に対応するコード譜であり、図3の参照譜面に表記された複数のコード情報Ciを含む。この場合、取得された時間位置に基づいて、各コード情報Ciが配置される。
[0066]
 ユーザが補正されたコード文字群を判別することができるように、補正されたコード文字群が、補正されていないコード文字群と異なる態様で表示されてもよい。図9の例では、補正されたコード文字群である“A maj ”(上段の4小節目)および“Cmaj ” (中段の3小節目)に、特定の色のマーキングMKが付されている。また、各コード情報Ciの表記形式が任意に変更可能であってもよい。例えば、“B ”が“B -7”に変更されてもよく、“A maj ”が“A △7”に変更されてもよい。
[0067]
 なお、譜面画像データから全ての音符および小節線に関する情報が抽出されていてもよい。同様に、繰り返し小節線および繰り返し記号等の他の種々の情報が譜面画像データから抽出されてもよい。その場合、5線譜等の種々の形態でコード情報を表示することが可能となる。
[0068]
 [4]コード情報抽出処理
 次に、本実施の形態に係るコード情報抽出方法によるコード情報抽出処理について説明する。図10は、図2の各機能部によるコード情報抽出処理の一例を示すフローチャートである。図10のコード情報抽出処理は、図1のCPU11がROM10または記憶装置13に記憶されたコード情報抽出プログラムを実行することにより行われる。
[0069]
 まず、画像データ取得部51が、譜面入力部1により入力された譜面画像データを取得する(ステップS1)。次に、文字群抽出部52が、取得された譜面画像データから1または複数のコード文字群の画像データを抽出する(ステップS2)。次に、位置情報取得部58が、取得された譜面画像データから各コード文字群の位置情報を取得する(ステップS3)。
[0070]
 次に、書体受付部53が、ユーザによりコード書体が指定されたか否かを判定する(ステップS4)。例えば、図4の書体指定画面DAにおいて、いずれかのオプションボタンOP2aまたはいずれかのオプションボタンOP3aがオンされかつ解析ボタンANがオンされた場合、コード書体が指定されたと判定され、オプションボタンOP1がオンされかつ解析ボタンANがオンされた場合、コード書体が指定されていないと判定される。コード書体が指定された場合、書体受付部53が、コード書体の指定を受け付け(ステップS5)、ステップS8に進む。コード書体が指定されていない場合、書体判定部54が、譜面画像データから参照文字を抽出し(ステップS6)、抽出された参照文字の書体をコード書体として判定し(ステップS7)、ステップS8に進む。
[0071]
 ステップS8において、書体情報取得部55が、ステップS5で受け付けられたコード書体またステップS7で判定されたコード書体を表す書体情報を取得する(ステップS8)。次に、文字群抽出部52が、取得された書体情報に基づいて、取得されたコード文字群の各コード文字を認識する。
[0072]
 次に、判定部56が、認識されたコード文字群(認識コード文字群)がコード表記規則CRに従うか否かを判定する(ステップS10)。認識コード文字群がコード表記規則CRに従わない場合、補正部57が、補正テーブルATに基づいて、認識コード文字群をコード表記規則CRに従うように補正する(ステップS11)。
[0073]
 次に、時間位置特定部59が、ステップS3で取得された位置情報に基づいて、参照曲中における各コード情報の時間位置を特定する(ステップS12)。次に、表示制御部60が、補正後のコード文字群により表されるコード情報が表示されるように表示部6を制御する(ステップS13)。これにより、コード情報抽出処理が終了する。
[0074]
 [5]実施の形態の効果
 上記実施の形態に係るコード情報抽出装置100においては、譜面画像データから抽出されたコード文字群が予め定められたコード表記規則に従うか否かが判定され、コード文字群がコード表記規則に従わない場合、コード表記規則に従うようにコード文字群が補正される。これにより、コード文字群が誤って認識された場合であっても、コード表記規則に従うように補正された適切なコード文字群を取得することができる。それにより、譜面画像データからコード情報を精度良く抽出することができる。
[0075]
 また、上記実施の形態では、抽出されたコード文字群がコードルート文字群とコードタイプ文字群とに分割され、予め定められたコードルート規則およびコードタイプ規則に基づいて、コードルート文字群およびコードタイプ文字群の各々について、コード表記として適切であるか否かが判定される。これにより、コード文字群の正誤判定をより精度良く行うことができる。
[0076]
 また、上記実施の形態では、抽出されたコード文字群のうちコード表記規則に従わない文字が予め定められた補正テーブルに基づいて補正される。これにより、抽出されたコード文字群を容易かつ適切に補正することができる。
[0077]
 また、上記実施の形態では、コード文字群の書体を表す書体情報に基づいて、コード文字群の各コード文字が認識される。これにより、各コード文字の認識の精度が高まるので、より精度良くコード情報を抽出することができる。
[0078]
 また、上記実施の形態では、譜面における各コード文字群の位置情報に基づいて、参照曲中における各コード情報の時間位置が特定される。これにより、抽出されたコード情報の表示、または抽出されたコード情報に基づく自動伴奏データの生成等を容易にかつ効率良く行うことができる。
[0079]
 [6]他の実施の形態
 上記実施の形態では、抽出されたコード情報が表示部6の画面上に表示されるが、抽出されたコード情報を利用して他の処理が行われてもよい。例えば、抽出されたコード情報およびその時間位置に基づいて、自動伴奏を出力するための自動伴奏データが生成されてもよい。
[0080]
 上記実施の形態では、五線譜を表す譜面画像データからコード情報が抽出されるが、コード情報を含む他の形態の譜面の譜面画像データからコード情報が抽出されてもよい。例えば、タブ譜またはコード譜等が参照譜面として用いられ、これらの譜面を表す譜面画像データからコード情報が抽出されてもよい。
[0081]
 上記実施の形態では、コード情報抽出装置100が譜面入力部1を含むが、コード情報抽出装置100の外部装置として譜面入力部1が用いられてもよい。
[0082]
 コード情報抽出装置100は、電子鍵盤楽器等の電子楽器に適用されてもよく、パーソナルコンピュータ、スマートフォンまたはタブレット端末等の他の電子機器に適用されてもよい。

請求の範囲

[請求項1]
譜面を表す譜面画像データからコード情報に対応する文字群を抽出する文字群抽出部と、
 抽出された文字群が予め定められたコード表記規則に従うか否かを判定する判定部と、
 前記抽出された文字群が前記コード表記規則に従わない場合、前記抽出された文字群を前記コード表記規則に従うように補正する補正部とを備えた、コード情報抽出装置。
[請求項2]
前記コード表記規則は、コードルートに関するコードルート規則とコードタイプに関するコードタイプ規則とを定め、
 前記判定部は、前記抽出された文字群がコードルートを表すコードルート文字群とコードタイプを表すコードタイプ文字群とを含む場合には、前記コードルート文字群が前記コードルート規則に従い、かつ前記コードタイプ文字群が前記コードタイプ規則に従う場合に、前記抽出された文字群が前記コード表記規則に従うと判定する、請求項1記載のコード情報抽出装置。
[請求項3]
前記補正部は、抽出された文字群のうち前記コード表記規則に従わない文字を予め定められた補正テーブルに基づいて補正する、請求項1または2記載のコード情報抽出装置。
[請求項4]
前記コード情報に対応する文字群の書体を表す書体情報を取得する書体情報取得部をさらに備え、
 前記文字群抽出部は、取得された書体情報に基づいて前記コード情報に対応する文字群を抽出する、請求項1~3のいずれか一項に記載のコード情報抽出装置。
[請求項5]
ユーザによる書体の指定を受け付ける書体受付部をさらに備え、
 前記書体情報取得部は、指定された書体を表す前記書体情報を取得する、請求項4記載のコード情報抽出装置。
[請求項6]
前記譜面画像データから少なくとも1つの文字を抽出し、抽出した文字の書体を判定する書体判定部をさらに備え、
 前記書体情報取得部は、判定された書体を表す前記書体情報を取得する、請求項4または5記載のコード情報抽出装置。
[請求項7]
前記譜面における前記抽出された文字群の位置を示す位置情報を取得する位置情報取得部と、
 取得された位置情報に基づいて、前記譜面により表される曲中の時間位置を特定する時間位置特定部とをさらに備える、請求項1~6のいずれか一項に記載のコード情報抽出装置。
[請求項8]
譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、
 抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、
 前記抽出された文字群が前記コード表記規則に従わない場合、前記抽出された文字群を前記コード表記規則に従うように補正するステップとを備えた、コード情報抽出方法。
[請求項9]
譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、
 抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、
 前記抽出された文字群が前記コード表記規則に従わない場合、前記抽出された文字群を前記コード表記規則に従うように補正するステップとを、
 コンピュータに実行させるためのコード情報抽出プログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]