(57)【要約】  コード情報抽出装置は、文字群抽出部、判定部および補正部を含む。文字群抽出部は、譜面を表す譜面画像データからコード情報に対応する文字群を抽出する。コード情報に対応する文字群は、例えばコードネームを表す。判定部は、文字群抽出部により抽出された文字群が予め定められたコード表記規則に従うか否かを判定する。文字群抽出部により抽出された文字群がコード表記規則に従わない場合、補正部は、抽出された文字群をコード表記規則に従うように補正する。
2019049294.tif 000002
【特許請求の範囲】
【請求項１】
譜面を表す譜面画像データからコード情報に対応する文字群を抽出する文字群抽出部と、
抽出された文字群が予め定められたコード表記規則に従うか否かを判定する判定部と、
前記抽出された文字群が前記コード表記規則に従わない場合、前記抽出された文字群を前記コード表記規則に従うように補正する補正部とを備えた、コード情報抽出装置。
【請求項２】
前記コード表記規則は、コードルートに関するコードルート規則とコードタイプに関するコードタイプ規則とを定め、
前記判定部は、前記抽出された文字群がコードルートを表すコードルート文字群とコードタイプを表すコードタイプ文字群とを含む場合には、前記コードルート文字群が前記コードルート規則に従い、かつ前記コードタイプ文字群が前記コードタイプ規則に従う場合に、前記抽出された文字群が前記コード表記規則に従うと判定する、請求項１記載のコード情報抽出装置。
【請求項３】
前記補正部は、抽出された文字群のうち前記コード表記規則に従わない文字を予め定められた補正テーブルに基づいて補正する、請求項１または２記載のコード情報抽出装置。
【請求項４】
前記コード情報に対応する文字群の書体を表す書体情報を取得する書体情報取得部をさらに備え、
前記文字群抽出部は、取得された書体情報に基づいて前記コード情報に対応する文字群を抽出する、請求項１〜３のいずれか一項に記載のコード情報抽出装置。
【請求項５】
ユーザによる書体の指定を受け付ける書体受付部をさらに備え、
前記書体情報取得部は、指定された書体を表す前記書体情報を取得する、請求項４記載のコード情報抽出装置。
【請求項６】
前記譜面画像データから少なくとも１つの文字を抽出し、抽出した文字の書体を判定する書体判定部をさらに備え、
前記書体情報取得部は、判定された書体を表す前記書体情報を取得する、請求項４または５記載のコード情報抽出装置。
【請求項７】
前記譜面における前記抽出された文字群の位置を示す位置情報を取得する位置情報取得部と、
取得された位置情報に基づいて、前記譜面により表される曲中の時間位置を特定する時間位置特定部とをさらに備える、請求項１〜６のいずれか一項に記載のコード情報抽出装置。
【請求項８】
譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、
抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、
前記抽出された文字群が前記コード表記規則に従わない場合、前記抽出された文字群を前記コード表記規則に従うように補正するステップとを備えた、コード情報抽出方法。
【請求項９】
譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、
抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、
前記抽出された文字群が前記コード表記規則に従わない場合、前記抽出された文字群を前記コード表記規則に従うように補正するステップとを、
コンピュータに実行させるためのコード情報抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、譜面の画像データからコード情報を抽出するコード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラムに関する。
【背景技術】
【０００２】
従来、スキャナ等を用いて譜面の画像データを取得し、その画像データから曲に関する種々の情報を抽出することが提案されている。例えば、特許文献１には、電子楽器および画像取り込み装置により構成される電子楽器システムが記載されている。画像取り込み装置は、スキャナまたはデジタルカメラ等からなり、紙面に印刷された楽譜（印刷楽譜）から曲情報を読み取る。曲情報は、通常の楽譜情報に加えて、曲の演奏に関連付けられたレジストレーション等の設定情報を含む。読み取った曲情報を楽譜画像情報に変換し、その楽譜画像情報を電子楽器に入力する。電子楽器は、楽譜画像情報を取得すると、画像解析技術を用いた楽譜読み込み処理により楽譜画像情報を曲データに変換して読み込む。
【特許文献１】特許第４７０２１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
譜面には、曲中のコード（和音）を表すコード情報（例えば、コードルートとコードタイプとの組み合わせからなるコードネーム）が表記されることがある。上記の電子楽器システムでは、設定情報として例えばＱＲコード（登録商標）が印刷楽譜に付され、ＱＲコード（登録商標）を読み込むことによって設定情報を取得することができる。しかしながら、一般的な譜面に表記されたコード情報を精度良く抽出することはできない。【０００４】
本発明の目的は、譜面画像データからコード情報を精度良く抽出することが可能なコード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明の一局面に従うコード情報抽出装置は、譜面を表す譜面画像データからコード情報に対応する文字群を抽出する文字群抽出部と、抽出された文字群が予め定められたコード表記規則に従うか否かを判定する判定部と、抽出された文字群がコード表記規則に従わない場合、抽出された文字群をコード表記規則に従うように補正する補正部とを備える。【０００６】
コード表記規則は、コードルートに関するコードルート規則とコードタイプに関するコードタイプ規則とを定め、判定部は、抽出された文字群がコードルートを表すコードルート文字群とコードタイプを表すコードタイプ文字群とを含む場合には、コードルート文字群がコードルート規則に従い、かつコードタイプ文字群がコードタイプ規則に従う場合に、抽出された文字群がコード表記規則に従うと判定してもよい。補正部は、抽出された文字群のうちコード表記規則に従わない文字を予め定められた補正テーブルに基づいて補正してもよい。【０００７】
コード情報抽出装置は、コード情報に対応する文字群の書体を表す書体情報を取得する書体情報取得部をさらに備え、文字群抽出部は、取得された書体情報に基づいてコード情報に対応する文字群を抽出してもよい。コード情報抽出装置は、ユーザによる書体の指定を受け付ける書体受付部をさらに備え、書体情報取得部は、指定された書体を表す書体情報を取得してもよい。コード情報抽出装置は、譜面画像データから少なくとも１つの文字を抽出し、抽出した文字の書体を判定する書体判定部をさらに備え、書体情報取得部は、判定された書体を表す書体情報を取得してもよい。コード情報抽出装置は、譜面における抽出された文字群の位置を示す位置情報を取得する位置情報取得部と、取得された位置情報に基づいて、譜面により表される曲中の時間位置を特定する時間位置特定部とをさらに備えてもよい。【０００８】
本発明の他の局面に従うコード情報抽出方法は、譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、抽出された文字群がコード表記規則に従わない場合、抽出された文字群をコード表記規則に従うように補正するステップとを備える。【０００９】
本発明のさらに他の局面に従うコード情報抽出プログラムは、譜面を表す譜面画像データからコード情報に対応する文字群を抽出するステップと、抽出された文字群が予め定められたコード表記規則に従うか否かを判定するステップと、抽出された文字群がコード表記規則に従わない場合、抽出された文字群をコード表記規則に従うように補正するステップとを、コンピュータに実行させるためのものである。
【発明の効果】
【００１０】
本発明によれば、譜面画像データからコード情報を精度良く抽出することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は本発明の実施の形態に係るコード情報抽出装置の構成を示すブロック図である。
【図２】図２はコード情報抽出装置の機能的な構成を示すブロック図である。
【図３】図３は譜面画像データにより表される参照譜面の一例を示す図である。
【図４】図４は書体指定画面の例を示す図である。
【図５】図５はコード正誤判定の一例について説明するための図である。
【図６】図６はコードルート補正テーブルの一例を示す図である。
【図７】図７はコードタイプ補正テーブルの一例を示す図である。
【図８】図８は位置情報の取得例について説明するための図である。
【図９】図９はコード情報の表示例について説明するための図である。
【図１０】図１０はコード情報抽出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態に係るコード情報抽出装置、コード情報抽出方法およびコード情報抽出プログラムについて図面を用いて詳細に説明する。
【００１３】
［１］コード情報抽出装置の構成
図１は本発明の実施の形態に係るコード情報抽出装置の構成を示すブロック図である。図１のコード情報抽出装置１００は、譜面を表す譜面画像データからコード（和音）を表すコード情報を抽出する。
【００１４】
図１のコード情報抽出装置１００は、譜面入力部１、操作部４、表示部６、ＲＡＭ（ランダムアクセスメモリ）９、ＲＯＭ（リードオンリメモリ）１０、ＣＰＵ（中央演算処理装置）１１、記憶装置１３および通信Ｉ／Ｆ（インターフェース）１４を備える。これらの構成要素は、それぞれバス１９に接続される。
【００１５】
譜面入力部１は、紙等の記録媒体に印刷された譜面を読み込み、その譜面を表す譜面画像データをＣＰＵ１１に入力する。例えば、譜面入力部１はスキャナであり、光源および光電変換素子を含む。光源から譜面に光が照射され、その反射光が光電変換素子により受光される。光電変換素子は、受光した光に基づいて譜面画像データを生成する。
【００１６】
操作部４は、ユーザにより操作される種々の操作子を含み、電源のオンオフおよび各種設定を行うために用いられる。表示部６は、例えば液晶ディスプレイを含み、抽出されたコード情報を表示する。操作部４および表示部６の少なくとも一部がタッチパネルディスプレイにより構成されてもよい。
【００１７】
ＲＡＭ９、ＲＯＭ１０およびＣＰＵ１１がコンピュータ２００を構成する。ＲＡＭ９は、例えば揮発性メモリからなり、ＣＰＵ１１の作業領域として用いられるとともに、各種データを一時的に記憶する。ＲＯＭ１０は、例えば不揮発性メモリからなり、制御プログラム、コード情報抽出プログラム等のコンピュータプログラムを記憶する。ＣＰＵ１１は、ＲＯＭ１０に記憶されたコード情報抽出プログラムをＲＡＭ９上で実行することにより後述するコード情報抽出処理を行う。
【００１８】
記憶装置１３は、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含む。記憶装置１３には、コード表記規則および補正テーブルが記憶される。コード表記規則は、コード表記の規則を定める。補正テーブルは、譜面画像データから抽出された文字群を補正するために用いられる。コード表記規則および補正テーブルの詳細については後述する。記憶装置１３に１または複数の譜面画像データが記憶されていてもよく、あるいは記憶装置１３にコード情報抽出プログラムが記憶されていてもよい。
【００１９】
通信Ｉ／Ｆ１４は、外部記憶装置等の種々の外部機器に接続可能である。また、通信Ｉ／Ｆ１４が通信網に接続されてもよい。通信Ｉ／Ｆ１４が外部記憶装置に接続されている場合、コード情報抽出プログラム、譜面画像データ、コード表記規則および補正テーブルの少なくとも１つが、外部記憶装置に記憶されていてもよい。
【００２０】
本実施の形態におけるコード情報抽出プログラムは、コンピュータが読み取り可能な記録媒体に格納された形態で提供され、ＲＯＭ１０または記憶装置１３にインストールされてもよい。また、通信Ｉ／Ｆ１４が通信網に接続されている場合、通信網に接続されたサーバから配信されたコード情報抽出プログラムがＲＯＭ１０または記憶装置１３にインストールされてもよい。同様に、譜面画像データ、コード表記規則および補正テーブルの少なくとも１つが、記憶媒体から取得されてもよく、通信網に接続されたサーバから取得されてもよい。
【００２１】
［２］コード情報抽出装置の機能的な構成
図２は、コード情報抽出装置１００の機能的な構成を示すブロック図である。図２に示すように、コード情報抽出装置１００は、画像データ取得部５１、文字群抽出部５２、書体受付部５３、書体判定部５４、書体情報取得部５５、判定部５６、補正部５７、位置情報取得部５８、時間位置特定部５９および表示制御部６０を含む。これらの構成要素の機能は、図１のＣＰＵ１１がコード情報抽出プログラムを実行することにより実現される。
【００２２】
画像データ取得部５１は、譜面入力部１により入力された譜面画像データを取得する。画像データ取得部５１は、図１の記憶装置１３、通信Ｉ／Ｆ１４に接続された外部記憶装置、あるいは通信網に接続されたサーバのいずれかから譜面画像データを取得してもよい。以下、取得された譜面画像データが表す譜面を参照譜面と呼ぶ。また、参照譜面に対応する曲（参照譜面に従って演奏される曲）を参照曲と呼ぶ。
【００２３】
文字群抽出部５２は、取得された譜面画像データからコード情報に対応する１または複数の文字群（以下、コード文字群と呼ぶ）を抽出する。コード文字群は、コードネームを表す１または複数の文字を含む。具体的には、文字群抽出部５２は、譜面画像データからコード文字群の画像データを抽出し、抽出した画像データに基づいて、コード文字群に含まれる文字の各々（以下、コード文字と呼ぶ。）を認識する。コード文字は、数字、アルファベット、“♯”（シャープ）および“♭”（フラット）のような音楽記号、ならびに“△”（メジャー）および“φ”（ハーフディミニッシュ）のようなコード表記に用いられる記号を含む。
【００２４】
書体受付部５３は、ユーザによるコード文字群の書体（以下、コード書体と呼ぶ。）の指定を受け付ける。譜面によって、コード書体は異なる。そこで、例えば、ユーザが操作部４を操作してコード書体を指定する。書体判定部５４は、取得された譜面画像データから少なくとも１つの文字を参照文字として抽出し、抽出した参照文字の書体をコード書体として判定する。この場合、抽出されたコード文字群が参照文字として用いられてもよい。例えば、書体受付部５３によってコード書体が受け付けられない場合（ユーザがコード書体を指定しない場合）に、書体判定部５４がコード書体を判定する。
【００２５】
書体情報取得部５５は、コード書体を表す書体情報を取得する。本例において、書体情報取得部５５は、書体受付部５３により受け付けられたコード書体または書体判定部５４により判定されたコード書体を表す書体情報を取得する。また、本例では、文字群抽出部５２が、取得された書体情報に基づいて、抽出したコード文字群に含まれる各コード文字を認識する。
【００２６】
判定部５６は、抽出されたコード文字群が図１の記憶装置１３に記憶されたコード表記規則ＣＲに従うか否かを判定する。以下、判定部５６による判定をコード正誤判定と呼ぶ。コード正誤判定は、予め用意されたテーブルに基づいて行われてもよく、予め定められたアルゴリズムに基づいて行われてもよい。コード正誤判定の具体例については後述する。補正部５７は、抽出されたコード文字群がコード表記規則ＣＲに従わない場合、抽出されたコード文字群をコード表記規則ＣＲに従うように補正する。本例において、補正部５７は、記憶装置１３に記憶された補正テーブルＡＴに基づいて、抽出されたコード文字群のうちコード表記規則ＣＲに従わないコード文字を補正する。補正テーブルＡＴが用いられる代わりに、予め定められたアルゴリズムに基づいてコード文字群が補正されてもよい。補正後のコード文字群がコード情報として抽出される。
【００２７】
位置情報取得部５８は、参照譜面におけるコード文字群の位置を表す位置情報を取得する。位置情報は、例えば、参照譜面における各コード文字群の座標を表す。時間位置特定部５９は、取得された位置情報に基づいて、参照曲中における各コード情報の時間位置を特定する。時間位置は、例えば、小節番号、拍およびティック（ｔｉｃｋ）により表される。
【００２８】
表示制御部６０は、補正後のコード文字群により表されるコード情報が表示されるように表示部６を制御する。例えば、表示制御部６０は、補正後のコード文字群および時間位置特定部５９により特定された時間位置に基づいて、参照曲のコード譜を表示部６の画面上に表示させる。
【００２９】
［３］コード情報の抽出
譜面画像データからのコード情報の抽出の一例について説明する。図３は、譜面画像データにより表される参照譜面の一例を示す図である。図３の参照譜面は、五線譜であり、複数段の五線および複数のコード情報Ｃｉを含む。五線上の音符の図示は省略されている。各段の五線の上方領域に、複数のコード情報Ｃｉが、“Ｆｍ７”、“Ｂ♭ｍ７”、“Ｅ♭７”・・・等のコードネームで表記されている。
【００３０】
このような参照譜面を表す譜面画像データから図２の文字群抽出部５２によりコード文字群の画像データが抽出される。例えば、参照譜面上でコード情報が表記された領域（図３の例では、五線の上方領域）が予め特定され、特定された領域の輝度分布に基づいて、コード文字群の画像データが抽出される。
【００３１】
続いて、抽出されたコード文字群の画像データに基づいて、文字群抽出部５２により各コード文字が認識される。本例では、図２の書体情報取得部５５により予め取得された書体情報に基づいて、各コード文字が認識される。
【００３２】
例えば、図１の表示部６が書体指定画面を表示し、書体指定画面上でユーザがコード書体を指定する。図４は、書体指定画面の例を示す図である。図４の書体指定画面ＤＡは、オプションボタンＯＰ１，ＯＰ２，ＯＰ３、複数のオプションボタンＯＰ２ａ、複数のオプションボタンＯＰ３ａ、および解析ボタンＡＮを含む。
【００３３】
コード書体が不明である場合、ユーザは、オプションボタンＯＰ１をオンする。コード書体が一般的なフォント（以下、一般フォントと呼ぶ。）である場合、ユーザは、オプションボタンＯＰ２をオンするとともに、複数の一般フォントにそれぞれ対応する複数のオプションボタンＯＰ２ａのうち、コード書体に対応するオプションボタンＯＰ２ａをオンする。コード書体が手書き風のフォント（以下、手書き風フォントと呼ぶ。）である場合、ユーザは、オプションボタンＯＰ３をオンするとともに、複数の手書き風フォントに対応する複数のオプションボタンＯＰ３ａのうち、コード書体に対応するオプションボタンＯＰ３ａをオンする。
【００３４】
いずれかのオプションボタンＯＰ２ａまたはいずれかのオプションボタンＯＰ３ａがオンされることにより、コード書体が指定される。その状態で解析ボタンＡＮがオンされると、図２の書体受付部５３によりコード書体の指定が受け付けられ、指定されたコード書体に基づいてコード文字が認識される。一方、オプションボタンＯＰ１がオンされた状態で解析ボタンＡＮがオンされると、図２の書体判定部５４によるコード書体の自動判定が行われ、判定されたコード書体に基づいてコード文字が認識される。コード文字の認識には、例えば畳み込みニューラルネットワーク等の公知の技術が用いられる。
【００３５】
コード書体が明らかである場合には、ユーザによってコード書体が指定されることにより、各コード文字が精度良く認識される。一方、コード書体が不明である場合であっても、参照文字に基づいてコード書体の自動判定が行われることにより、各コード文字の認識精度の低下が抑制される。
【００３６】
このようにして各コード文字が認識された後のコード文字群を認識コード文字群と呼ぶ。認識コード文字群について、図２の判定部５６によりコード正誤判定が行われる。図５は、コード正誤判定の一例について説明するための図である。図５の例において、認識コード文字群は、“＃♭ｍ＃７”である。
【００３７】
通常、コードネームは、コードルートを表す１または複数の文字（以下、コードルート文字群と呼ぶ。）と、コードタイプを表す１または複数の文字（以下、コードタイプ文字群と呼ぶ。）とにより表される。例えば、コードネーム“Ａ♭ｍａｊ７”について、コードルート文字群は“Ａ♭”であり、コードタイプ文字群は“ｍａｊ７”である。通常、コードルート文字群は、コードタイプ文字群の前に表記される。ただし、メジャートライアドコード等は、コードルート文字群のみで表記される場合がある。例えば、Ｃメジャートライアドは、“Ｃ”の１文字で表記される場合がある。この場合、コードタイプ文字群は表記されない。
【００３８】
コードルート文字群は、音名を表す“Ａ”〜“Ｇ”の７つのアルファベットのうちの１つのアルファベットのみからなるか、またはその１つのアルファベットの後に“♯”もしくは“♭”が加えられた２つの文字からなる。
【００３９】
コードタイプ文字群は、種々の数字、アルファベットおよび記号からなる。１つの文字からなるコードタイプ文字群としては、“７”（セブンス）および“ｍ”（マイナートライアド）等があり、２つの文字からなるコードタイプ文字群としては、“Ｍ７”（メジャーセブンス）および“ｍ７”（マイナーセブンス）等があり、３つ以上の文字からなるコードタイプ文字群としては、“ｄｉｍ”（ディミニッシュ）および“ｍａｊ７”（メジャーセブンス）等がある。なお、同じコードタイプであっても、異なるコードタイプ文字群で表される場合もある。例えば、“ｍａｊ７”、“Ｍａｊ７”、“Ｍ７”、“△７”は、いずれもメジャーセブンスを表す。
【００４０】
本例では、認識コード文字群が、コードルート文字群とコードタイプ文字群とに分割される。以下、認識コード文字群に含まれるコードルート文字群およびコードタイプ文字群をそれぞれ認識コードルート文字群および認識コードタイプ文字群と呼ぶ。
【００４１】
例えば、認識コード文字群の２つ目の文字が“♯”または“♭”であるか否かが判定される。２つ目の文字が“♯”または“♭”である場合、認識コード文字群の１つ目の文字と２つ目の文字とが認識コードルート文字群に特定され、３つ目以降の１または複数の文字が認識コードタイプ文字群に特定される。２つ目の文字が“♯”および“♭”のいずれでもない場合、認識コード文字群の１つ目の文字が認識コードルート文字群に特定され、２つ目以降の１または複数の文字が認識コードタイプ文字群に特定される。
【００４２】
図５の例では、認識コード文字群である“＃♭ｍ＃７”の２つ目の文字が“♭”であるので、認識コードルート文字群は、認識コード文字群の１つ目および２つ目の文字からなる“＃♭”である。また、認識コードタイプ文字群は、それ以降の文字からなる“ｍ＃７”である。
【００４３】
なお、譜面画像データからコード情報に対応しない文字群が誤って抽出されることがある。そのような文字群は、コード正誤判定の対象から除外されることが好ましい。例えば、小節番号等の数字のみからなる文字群、またはリハーサルマークがコード文字群として誤って抽出されることがある。数字のみからなる文字群は、コード文字群と明らかに異なるので、予め除外されることが好ましい。また、リハーサルマークは、通常、矩形または円形の枠と、その枠内に配置された数字またはアルファベットとを含む。そこで、このような枠内に配置された文字からなる文字群は、リハーサルマークであると判定され、予め除外されてもよい。あるいは、抽出された文字群に含まれる複数の文字のうち、コード表記に使用され得ない文字の割合が所定の値よりも高い場合に、その文字群が予め除外されてもよい。
【００４４】
本例では、コード表記規則ＣＲが、コードルートに関するコードルート規則と、コードタイプに関するコードタイプ規則とを定める。認識コードルート文字群がコードルート規則に従い、かつ認識コードタイプ文字群がコードタイプ規則に従う場合、認識コード文字群がコード表記規則ＣＲに従うと判定される。ただし、認識コード文字群がコードルート文字群のみを含む場合（コードタイプ文字群を含まない場合）には、認識コードルート文字群がコードルート規則に従う場合に、認識コード文字群がコード表記規則ＣＲに従うと判定されてもよい。
【００４５】
コードルート規則は、例えば、コードルート文字群の最初の文字が、“Ａ”〜“Ｇ”のうちのいずれかのアルファベットであることを定める。図５の例では、“＃♭”の最初の文字が、“Ａ”〜“Ｇ”のうちのいずれでもない。そのため、認識コードルート文字群がコードルート規則に従っていないと判定される。
【００４６】
コードタイプ規則は、例えば、正規のコードタイプ文字群の一覧を定める。認識コードタイプ文字群が、その一覧に含まれるいずれかのコードタイプ文字群と一致する場合、認識コードタイプ文字群がコードタイプ規則に従っていると判定される。図５の例において、“ｍ＃７”は、いずれのコードタイプ文字群とも一致しない。そのため、認識コードタイプ文字群がコードタイプ規則に従っていないと判定される。
【００４７】
コードタイプ規則が、正規のコードタイプ文字群に含まれ得ない文字または文字の組み合わせを定めてもよい。例えば、“Ｂ”および“Ｃ”等は、正規のコードタイプ文字群には含まれ得ない。また、“♯”、“ａ”および“７”等は、単体ではコードタイプ文字群に含まれ得るが、“♯７”、“♯ａ”、“ａ７”という文字の組み合わせは、コードタイプ文字群に含まれ得ない。このような、正規のコードタイプ文字群には含まれ得ない文字または文字の組み合わせが認識コードタイプ文字群に含まれる場合、その認識コードタイプ文字群はコードタイプ規則に従っていないと判定される。
【００４８】
また、正規のコードタイプ文字群に含まれ得ない文字の組み合わせが認識モード文字群に含まれる場合であって、それらの文字の各々が単体では正規のコードタイプ文字群に含まれ得る場合、次のようにして、誤っている文字（コード表記規則に従わない文字）が特定されてもよい。例えば、“ｄ７”という文字の組み合わせについて、“７”が誤っていると仮定された場合、“ｄ”から始まりかつコードタイプ文字群に含まれ得る文字群として、“ｄｉｍ”がある。しかしながら、“ｄｉｍ”は、“ｄ７”と文字数が一致しないので、“ｄ７”の補正候補に該当しない。一方、“ｄ”が誤っていると仮定された場合、“７”で終わりかつコードタイプ文字群に含まれ得る文字群として、“Ｍ７”、“△７”、“ｍ７”および“−７”等がある。これらは“ｄ７”と文字数が一致するので、“ｄ７”の補正候補に該当する。したがって、誤っている文字は“ｄ”であると特定される。
【００４９】
認識コード文字群がコード表記規則ＣＲに従っていない場合、図２の補正部５７により認識コード文字群がコード表記規則ＣＲに従うように補正される。本例では、コード表記規則ＣＲに従わないコード文字が、補正テーブルＡＴに基づいて補正される。補正テーブルＡＴは、コード表記規則に従わないコード文字と、正規のコード文字との対応関係を表す。本例では、補正テーブルＡＴが、認識コードルート文字群を補正するためのコードルート補正テーブルと、認識コードタイプ文字群を補正するためのコードタイプ補正テーブルとを含む。図６は、コードルート補正テーブルの一例を示す図であり、図７は、コードタイプ補正テーブルの一例を示す図である。
【００５０】
図６のコードルート補正テーブルＡＴａは、コードルート規則に従わないコード文字（図６の上段）と、正規のコード文字（図６の下段）との対応関係を定める。例えば、認識コードルート文字群のうち、コードルート規則に従わないコード文字が“＃”である場合、その“＃”は“Ａ”に補正される。また、コードルート規則に従わないコード文字が“＆”である場合、その“＆”は“Ｂ”に補正される。図５の例では、認識コードルート文字群“＃♭”のうち、コードルート規則に従わない“＃”が“Ａ”に補正される。
【００５１】
図７のコードタイプ補正テーブルＡＴｂは、コードタイプ規則に従わないコード文字またはその組み合わせ（図７の上段）と、正規のコード文字またはその組み合わせ（図７の下段）との対応関係を定める。例えば、コードタイプ規則に従わないコード文字の組み合わせが“Ｎ７”である場合、その“Ｎ７”は“Ｍ７”に補正される。また、コードタイプ規則に従わないコード文字の組み合わせが“ｍ♯７”である場合、その“ｍ♯７”は“ｍａｊ７”に補正される。図５の例では、認識コードタイプ文字群“ｍ＃７”が、“ｍａｊ７”に補正される。
【００５２】
コードルート補正テーブルＡＴａおよびコードタイプ補正テーブルＡＴｂは、過去に生じた誤認識の結果またはシミュレーションの結果等に基づいて生成される。例えば、コードルート文字群について、“Ａ”が“＃”と誤認識される可能性があることが経験的にまたはシミュレーションによりわかっている。そこで、“＃”を“Ａ”に補正すべきであることがコードルート補正テーブルＡＴａで定められる。なお、コード表記規則に従わない一のコード文字に対し、補正の候補として複数のコード文字が定められていてもよい。その場合、補正後のコード文字群がコード表記規則ＣＲに従うように、複数の候補から一のコード文字が選択的に使用される。
【００５３】
なお、コードルート補正テーブルＡＴａおよびコードタイプ補正テーブルＡＴｂは適宜更新されることが好ましい。例えば、認識されたコード文字がコードルート補正テーブルＡＴａまたはコードタイプ補正テーブルＡＴｂに定められていない場合、そのコード文字と、それに対応する正規のコード文字とがコードルート補正テーブルＡＴａまたはコードタイプ補正テーブルＡＴｂに追加されてもよい。あるいは、コードルート補正テーブルＡＴａまたはコードタイプ補正テーブルＡＴｂを用いた補正の結果が適切でなかった場合、その結果に基づいて、コードルート補正テーブルＡＴａまたはコードタイプ補正テーブルＡＴｂが修正されてもよい。
【００５４】
各コード文字が認識される際に、各コード文字について補正の候補となる複数の文字が取得されてもよい。認識コード文字群がコード表記規則ＣＲに従わないコード文字を含む場合には、取得された複数の文字のうち、コード表記規則ＣＲに従いかつ補正すべきコード文字との類似性が高い文字を用いて、認識コード文字群が補正されてもよい。
【００５５】
認識コード文字群が“／”（スラッシュ）を含む場合には、認識コード文字群が分数コードを表していると判定されてもよい。この場合、認識コード文字群が、“／”より前の１または複数の文字を含む分子コード文字群と、“／”より後の１または複数の文字を含む分母コード文字群とに分割され、分子文字群および分母文字群の各々について、上記同様のコード正誤判定および補正が行われてもよい。
【００５６】
抽出された各コード文字群について、図２の位置情報取得部５８により位置情報が取得され、取得された位置情報に基づいて図２の時間位置特定部５９により参照曲中の時間位置が特定される。
【００５７】
図８は、位置情報の取得および時間位置の特定の一例について説明するための図である。本例では、各コード情報の時間位置として各コード情報の開始位置が特定される。また、位置情報の取得および時間位置の特定は、小節毎に行われる。図８の例では、参照譜面における対象の小節の上方領域に、３つのコード文字群Ｃ１，Ｃ２，Ｃ３が示されている。対象の小節の拍子は４分の４である。
【００５８】
位置情報は、例えば、曲の進行を表す方向における座標で表される。図８の例において、曲の進行を表す方向は、五線に平行な方向である横方向である。そこで、コード文字群Ｃ１〜Ｃ３の位置情報として、参照譜面におけるコード文字群Ｃ１〜Ｃ３の横座標（Ｘ座標）が取得される。例えば、図８の２段目に示すように、コード文字群Ｃ１〜Ｃ３をそれぞれ含む矩形の領域Ｒ１，Ｒ２，Ｒ３が設定される。領域Ｒ１，Ｒ２，Ｒ３の各々について、左端部の横座標および右端部の横座標が位置情報として取得される。
【００５９】
続いて、コード文字群Ｃ１〜Ｃ３の各々について、対応する音符が探索される。例えば、対象の小節内にある音符が検出され、検出された各音符の横座標が取得される。さらに、各コード文字群の横座標と各音符の横座標とが比較され、各コード文字群について、最も近い横座標を有する音符が特定される。それらのコード文字群および音符の横座標の差が予め定められたしきい値以下である場合に、特定された音符が、そのコード文字群に対応すると判定される。一方、それらのコード文字群および音符の横座標の差がしきい値より大きい場合、そのコード文字群に対応する音符はないと判定される。
【００６０】
図８の例では、対象の小節内に配置される音符ｎ１，ｎ２のうち、コード文字群Ｃ１と最も近い横座標を有する音符はｎ１であり、コード文字群Ｃ３と最も近い横座標を有する音符はｎ２である。また、コード文字群Ｃ１の横座標と音符ｎ１の横座標との差、ならびにコード文字群Ｃ３の横座標と音符ｎ２の横座標との差は、いずれもしきい値以下である。したがって、音符ｎ１，ｎ２が、コード文字群Ｃ１，Ｃ３にそれぞれ対応すると判定される。この場合、コード文字群Ｃ１に対応するコード情報の開始位置は、音符ｎ１の開始位置（１拍目）であり、コード文字群Ｃ３に対応するコード情報の開始位置は、音符ｎ２の開始位置（３拍目）であると判定される。
【００６１】
一方、コード文字群Ｃ２と最も近い横座標を有する音符はｎ１である。しかしながら、コード文字群Ｃ２の横座標と音符ｎ１の横座標との差はしきい値よりも大きい。そのため、コード文字群Ｃ２に対応する音符はないと判定される。
【００６２】
いずれかのコード文字群について、対応する音符がない場合、そのコード文字群と小節線との位置関係に基づいて、時間位置が特定される。具体的には、対象の小節の開始位置および終了位置にそれぞれ対応する左右の小節線ＢＬが検出され、その２つの小節線ＢＬの位置情報が取得される。例えば、各小節線ＢＬの横座標が位置情報として取得される。検出された２つの小節線の間の横方向の距離ＤＳは、１小節の長さに対応する。
【００６３】
続いて、図８の３段目に示すように、２つの小節線ＢＬの間の区間を横方向にＮ等分する複数の仮想線ＶＬが設定される。Ｎは正の整数であり、クオンタイズの精度に対応する。図８の例では、Ｎは８である。これにより、対象の小節が８つの単位区間Ａ１〜Ａ８に分割される。１つの単位区間の長さは、８分音符の長さと等しい。
【００６４】
続いて、対応する音符がないコード文字群Ｃ２が、単位区間Ａ１〜Ａ８のいずれに対応するか判定される。例えば、コード文字群Ｃ２がいずれの仮想線ＶＬとも重ならないように、複数の仮想線ＶＬが左方向にずらされる。複数の仮想線ＶＬの移動距離は、例えば、１つの単位区間の長さ（ＤＳ／Ｎ）の２分の１以下である。その結果、図８の４段目に示すように、単位区間Ａ３を表す２つの仮想線ＶＬの間にコード文字群Ｃ２が位置する。この場合、コード文字群Ｃ２が単位区間Ａ３に対応すると判定される。それにより、コード文字群Ｃ２に対応するコード情報の開始位置は、対象の小節における単位区間Ａ３の開始位置（２拍目）であると判定される。
【００６５】
このようにして抽出されたコード情報が図２の表示制御部６０によって表示部６の画面上に表示される。図９は、コード情報の表示例について説明するための図である。図９の例は、図３の参照譜面に対応するコード譜であり、図３の参照譜面に表記された複数のコード情報Ｃｉを含む。この場合、取得された時間位置に基づいて、各コード情報Ｃｉが配置される。
【００６６】
ユーザが補正されたコード文字群を判別することができるように、補正されたコード文字群が、補正されていないコード文字群と異なる態様で表示されてもよい。図９の例では、補正されたコード文字群である“Ａ♭ｍａｊ７”（上段の４小節目）および“Ｃｍａｊ７” （中段の３小節目）に、特定の色のマーキングＭＫが付されている。また、各コード情報Ｃｉの表記形式が任意に変更可能であってもよい。例えば、“Ｂ♭ｍ７”が“Ｂ♭−７”に変更されてもよく、“Ａ♭ｍａｊ７”が“Ａ♭△７”に変更されてもよい。
【００６７】
なお、譜面画像データから全ての音符および小節線に関する情報が抽出されていてもよい。同様に、繰り返し小節線および繰り返し記号等の他の種々の情報が譜面画像データから抽出されてもよい。その場合、５線譜等の種々の形態でコード情報を表示することが可能となる。
【００６８】
［４］コード情報抽出処理
次に、本実施の形態に係るコード情報抽出方法によるコード情報抽出処理について説明する。図１０は、図２の各機能部によるコード情報抽出処理の一例を示すフローチャートである。図１０のコード情報抽出処理は、図１のＣＰＵ１１がＲＯＭ１０または記憶装置１３に記憶されたコード情報抽出プログラムを実行することにより行われる。
【００６９】
まず、画像データ取得部５１が、譜面入力部１により入力された譜面画像データを取得する（ステップＳ１）。次に、文字群抽出部５２が、取得された譜面画像データから１または複数のコード文字群の画像データを抽出する（ステップＳ２）。次に、位置情報取得部５８が、取得された譜面画像データから各コード文字群の位置情報を取得する（ステップＳ３）。
【００７０】
次に、書体受付部５３が、ユーザによりコード書体が指定されたか否かを判定する（ステップＳ４）。例えば、図４の書体指定画面ＤＡにおいて、いずれかのオプションボタンＯＰ２ａまたはいずれかのオプションボタンＯＰ３ａがオンされかつ解析ボタンＡＮがオンされた場合、コード書体が指定されたと判定され、オプションボタンＯＰ１がオンされかつ解析ボタンＡＮがオンされた場合、コード書体が指定されていないと判定される。コード書体が指定された場合、書体受付部５３が、コード書体の指定を受け付け（ステップＳ５）、ステップＳ８に進む。コード書体が指定されていない場合、書体判定部５４が、譜面画像データから参照文字を抽出し（ステップＳ６）、抽出された参照文字の書体をコード書体として判定し（ステップＳ７）、ステップＳ８に進む。
【００７１】
ステップＳ８において、書体情報取得部５５が、ステップＳ５で受け付けられたコード書体またステップＳ７で判定されたコード書体を表す書体情報を取得する（ステップＳ８）。次に、文字群抽出部５２が、取得された書体情報に基づいて、取得されたコード文字群の各コード文字を認識する。
【００７２】
次に、判定部５６が、認識されたコード文字群（認識コード文字群）がコード表記規則ＣＲに従うか否かを判定する（ステップＳ１０）。認識コード文字群がコード表記規則ＣＲに従わない場合、補正部５７が、補正テーブルＡＴに基づいて、認識コード文字群をコード表記規則ＣＲに従うように補正する（ステップＳ１１）。
【００７３】
次に、時間位置特定部５９が、ステップＳ３で取得された位置情報に基づいて、参照曲中における各コード情報の時間位置を特定する（ステップＳ１２）。次に、表示制御部６０が、補正後のコード文字群により表されるコード情報が表示されるように表示部６を制御する（ステップＳ１３）。これにより、コード情報抽出処理が終了する。
【００７４】
［５］実施の形態の効果
上記実施の形態に係るコード情報抽出装置１００においては、譜面画像データから抽出されたコード文字群が予め定められたコード表記規則に従うか否かが判定され、コード文字群がコード表記規則に従わない場合、コード表記規則に従うようにコード文字群が補正される。これにより、コード文字群が誤って認識された場合であっても、コード表記規則に従うように補正された適切なコード文字群を取得することができる。それにより、譜面画像データからコード情報を精度良く抽出することができる。
【００７５】
また、上記実施の形態では、抽出されたコード文字群がコードルート文字群とコードタイプ文字群とに分割され、予め定められたコードルート規則およびコードタイプ規則に基づいて、コードルート文字群およびコードタイプ文字群の各々について、コード表記として適切であるか否かが判定される。これにより、コード文字群の正誤判定をより精度良く行うことができる。
【００７６】
また、上記実施の形態では、抽出されたコード文字群のうちコード表記規則に従わない文字が予め定められた補正テーブルに基づいて補正される。これにより、抽出されたコード文字群を容易かつ適切に補正することができる。
【００７７】
また、上記実施の形態では、コード文字群の書体を表す書体情報に基づいて、コード文字群の各コード文字が認識される。これにより、各コード文字の認識の精度が高まるので、より精度良くコード情報を抽出することができる。
【００７８】
また、上記実施の形態では、譜面における各コード文字群の位置情報に基づいて、参照曲中における各コード情報の時間位置が特定される。これにより、抽出されたコード情報の表示、または抽出されたコード情報に基づく自動伴奏データの生成等を容易にかつ効率良く行うことができる。
【００７９】
［６］他の実施の形態
上記実施の形態では、抽出されたコード情報が表示部６の画面上に表示されるが、抽出されたコード情報を利用して他の処理が行われてもよい。例えば、抽出されたコード情報およびその時間位置に基づいて、自動伴奏を出力するための自動伴奏データが生成されてもよい。
【００８０】
上記実施の形態では、五線譜を表す譜面画像データからコード情報が抽出されるが、コード情報を含む他の形態の譜面の譜面画像データからコード情報が抽出されてもよい。例えば、タブ譜またはコード譜等が参照譜面として用いられ、これらの譜面を表す譜面画像データからコード情報が抽出されてもよい。
【００８１】
上記実施の形態では、コード情報抽出装置１００が譜面入力部１を含むが、コード情報抽出装置１００の外部装置として譜面入力部１が用いられてもよい。
【００８２】
コード情報抽出装置１００は、電子鍵盤楽器等の電子楽器に適用されてもよく、パーソナルコンピュータ、スマートフォンまたはタブレット端末等の他の電子機器に適用されてもよい。
【図１】
2019049294.tif 000003
【図２】
2019049294.tif 000004
【図３】
2019049294.tif 000005
【図４】
2019049294.tif 000006
【図５】
2019049294.tif 000007
【図６】
2019049294.tif 000008
【図７】
2019049294.tif 000009
【図８】
2019049294.tif 000010
【図９】
2019049294.tif 000011
【図１０】
2019049294.tif 000012
【手続補正書】
【提出日】令和2年2月18日(2020.2.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
本実施の形態におけるコード情報抽出プログラムは、コンピュータが読み取り可能な記憶媒体に格納された形態で提供され、ＲＯＭ１０または記憶装置１３にインストールされてもよい。また、通信Ｉ／Ｆ１４が通信網に接続されている場合、通信網に接続されたサーバから配信されたコード情報抽出プログラムがＲＯＭ１０または記憶装置１３にインストールされてもよい。同様に、譜面画像データ、コード表記規則および補正テーブルの少なくとも１つが、記憶媒体から取得されてもよく、通信網に接続されたサーバから取得されてもよい。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
なお、譜面画像データから全ての音符および小節線に関する情報が抽出されていてもよい。同様に、繰り返し小節線および繰り返し記号等の他の種々の情報が譜面画像データから抽出されてもよい。その場合、五線譜等の種々の形態でコード情報を表示することが可能となる。
【国際調査報告】
2019049294.tif 000013
2019049294.tif 000014
2019049294.tif 000015
2019049294.tif 000016