(57)【特許請求の範囲】
【請求項１】
紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得手段と、
前記第１の取得手段により取得された画像に含まれる楽譜を認識する認識手段と、
前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶する記憶手段と、
前記記憶手段に記憶されたパートテンプレートの中から、前記読み取り手段により読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得手段と、
前記第２の取得手段により取得されたパートテンプレートを用いて、前記読み取り手段により読み取られた画像に含まれる楽譜に対する設定を自動的に行う設定手段と、
前記第２の取得手段により取得されたパートテンプレートを示す情報を、前記楽譜のパート毎に表示する表示手段と、
前記表示手段により表示されたパートテンプレートを示す情報に対するユーザの操作に基づいて、前記第２の取得手段により取得されたパートテンプレートの少なくとも１つの変更を受け付ける受付手段と、
前記受付手段により受け付けられたパートテンプレートの前記記憶手段による更新を制限する制限手段と、を有し、
前記記憶手段は、前記受付手段により受け付けられたパートテンプレートであって、前記制限手段により変更が制限されないパートテンプレートを、ユーザの操作に基づいて更新し、
前記表示手段は、前記記憶手段によりパートテンプレートが更新された場合には、前記取得手段により取得されたパートテンプレートを示す情報に代えて、前記更新されたパートテンプレートを示す情報を表示し、
前記制限手段は、更新によってＭＩＤＩのプログラムナンバーが変わるパートテンプレートへの更新を制限することを特徴とする楽譜認識装置。
【請求項２】
紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得手段と、
前記第１の取得手段により取得された画像に含まれる楽譜を認識する認識手段と、
前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶する記憶手段と、
前記記憶手段に記憶されたパートテンプレートの中から、前記読み取り手段により読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得手段と、
前記第２の取得手段により取得されたパートテンプレートを用いて、前記認識手段による楽譜の認識の結果を自動的に修正する設定手段とを有し、
前記設定手段は、前記認識手段により認識された楽譜の１つのパート内の情報を用いて、前記認識手段による楽譜の認識の結果を修正する処理と、前記認識手段により認識された楽譜の複数のパート内の情報を用いて、前記認識手段による楽譜の認識の結果を修正する処理とを別々に行うことを特徴とする楽譜認識装置。
【請求項３】
前記第２の取得手段により取得されたパートテンプレートを示す情報を、前記楽譜のパート毎に表示する表示手段と、
前記表示手段により表示されたパートテンプレートを示す情報に対するユーザの操作に基づいて、前記第２の取得手段により取得されたパートテンプレートの少なくとも１つの変更を受け付ける受付手段と、
前記受付手段により受け付けられたパートテンプレートの前記記憶手段による更新を制限する制限手段と、を有し、
前記記憶手段は、前記受付手段により受け付けられたパートテンプレートであって、前記制限手段により変更が制限されないパートテンプレートを、ユーザの操作に基づいて更新し、
前記表示手段は、前記記憶手段によりパートテンプレートが更新された場合には、前記取得手段により取得されたパートテンプレートを示す情報に代えて、前記更新されたパートテンプレートを示す情報を表示し、
前記制限手段は、更新によってＭＩＤＩのプログラムナンバーが変わるパートテンプレートへの更新を制限することを特徴とする請求項２に記載の楽譜認識装置。
【請求項４】
紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得ステップと、
前記第１の取得ステップにより取得された画像に含まれる楽譜を認識する認識ステップと、
前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶媒体に記憶する記憶ステップと、
前記記憶ステップにより記憶されたパートテンプレートの中から、前記読み取りステップにより読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得ステップと、
前記第２の取得ステップにより取得されたパートテンプレートを用いて、前記読み取りステップにより読み取られた画像に含まれる楽譜に対する設定を自動的に行う設定ステップと、
前記第２の取得ステップにより取得されたパートテンプレートを示す情報を、前記楽譜のパート毎に表示装置に表示する表示ステップと、
前記表示ステップにより表示されたパートテンプレートを示す情報に対するユーザの操作に基づいて、前記第２の取得ステップにより取得されたパートテンプレートの少なくとも１つの変更を受け付ける受付ステップと、
前記受付ステップにより受け付けられたパートテンプレートの前記記憶ステップによる更新を制限する制限ステップと、をコンピュータに実行させ、
前記記憶ステップは、前記受付ステップにより受け付けられたパートテンプレートであって、前記制限ステップにより変更が制限されないパートテンプレートを、ユーザの操作に基づいて更新し、
前記表示ステップは、前記記憶ステップによりパートテンプレートが更新された場合には、前記取得ステップにより取得されたパートテンプレートを示す情報に代えて、前記更新されたパートテンプレートを示す情報を表示装置に表示し、
前記制限ステップは、更新によってＭＩＤＩのプログラムナンバーが変わるパートテンプレートへの更新を制限することを特徴とするコンピュータプログラム。
【請求項５】
紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得ステップと、
前記第１の取得ステップにより取得された画像に含まれる楽譜を認識する認識ステップと、
前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶媒体に記憶する記憶ステップと、
前記記憶ステップにより記憶されたパートテンプレートの中から、前記読み取りステップにより読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得ステップと、
前記第２の取得ステップにより取得されたパートテンプレートを用いて、前記認識ステップによる楽譜の認識の結果を自動的に修正する設定ステップとをコンピュータに実行させ、
前記設定ステップは、前記認識ステップにより認識された楽譜の１つのパート内の情報を用いて、前記認識ステップによる楽譜の認識の結果を修正する処理と、前記認識ステップにより認識された楽譜の複数のパート内の情報を用いて、前記認識ステップによる楽譜の認識の結果を修正する処理とを別々に行うことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽譜認識装置及びコンピュータプログラムに関し、特に、紙面の楽譜を認識するために用いて好適なものである。
【背景技術】
【０００２】
従来から、スキャナ等を用いて、紙面上の楽譜を読み取り、読み取った楽譜のデータについて、五線、音符、及びその他の各種記号を認識して、ＭＩＤＩファイルデータ等の演奏データを生成することが行われている（特許文献１を参照）。
例えば、五線を消去することにより、画像上のラベルを分離することで、五線と重なった音楽記号を分離し、音楽記号の夫々を認識する。その際、臨時記号等の形状が変化しない定型記号については、加重方向指数等の特徴量と、辞書の音楽記号データとをマッチングすることにより認識する。また、音符等の形状が変化する音楽記号については、縦横の細線や、符頭を構成する楕円や、連桁を構成する太線を分離して認識し、それらの形状や位置関係に基づいて認識する。
【０００３】
【特許文献１】特開平９−９７０５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、例えば移調楽器で演奏することを反映した楽譜では、そのことが楽譜に表記されていない。しかしながら、従来の技術では、このような楽譜に表記されていない情報については、楽譜を認識した後、ユーザが手動で設定する必要があった。この他、認識した楽譜がタブ譜であり、そのタブ譜にチューニングの設定（表記）があり、ユーザがそのチューニングの設定を変更したい場合にも、ユーザは、そのチューニングの設定を手動で変更する必要があった。
また、従来の技術では、楽譜のあるべき状態が分からなかったので、楽譜の認識結果をそのまま採用するしかなく、楽譜の認識率を向上させることが困難であった。
【０００５】
本発明は、以上のような問題点に鑑みてなされたものであり、楽譜を認識した後にユーザが行う設定を従来よりも少なくすることを第１の目的とする。
また、楽譜の認識率を従来よりも向上させることを第２の目的とする。
【課題を解決するための手段】
【０００６】
本発明の楽譜認識装置の一態様例では、紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得手段と、前記第１の取得手段により取得された画像に含まれる楽譜を認識する認識手段と、前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶する記憶手段と、前記記憶手段に記憶されたパートテンプレートの中から、前記読み取り手段により読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得手段と、前記第２の取得手段により取得されたパートテンプレートを用いて、前記読み取り手段により読み取られた画像に含まれる楽譜に対する設定を自動的に行う設定手段と、前記第２の取得手段により取得されたパートテンプレートを示す情報を、前記楽譜のパート毎に表示する表示手段と、前記表示手段により表示されたパートテンプレートを示す情報に対するユーザの操作に基づいて、前記第２の取得手段により取得されたパートテンプレートの少なくとも１つの変更を受け付ける受付手段と、前記受付手段により受け付けられたパートテンプレートの前記記憶手段による更新を制限する制限手段と、を有し、前記記憶手段は、前記受付手段により受け付けられたパートテンプレートであって、前記制限手段により変更が制限されないパートテンプレートを、ユーザの操作に基づいて更新し、前記表示手段は、前記記憶手段によりパートテンプレートが更新された場合には、前記取得手段により取得されたパートテンプレートを示す情報に代えて、前記更新されたパートテンプレートを示す情報を表示し、前記制限手段は、更新によってＭＩＤＩのプログラムナンバーが変わるパートテンプレートへの更新を制限することを特徴とする。
本発明の楽譜認識装置の他の態様例では、紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得手段と、前記第１の取得手段により取得された画像に含まれる楽譜を認識する認識手段と、前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶する記憶手段と、前記記憶手段に記憶されたパートテンプレートの中から、前記読み取り手段により読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得手段と、前記第２の取得手段により取得されたパートテンプレートを用いて、前記認識手段による楽譜の認識の結果を自動的に修正する設定手段とを有し、前記設定手段は、前記認識手段により認識された楽譜の１つのパート内の情報を用いて、前記認識手段による楽譜の認識の結果を修正する処理と、前記認識手段により認識された楽譜の複数のパート内の情報を用いて、前記認識手段による楽譜の認識の結果を修正する処理とを別々に行うことを特徴とする。
【０００７】
本発明のコンピュータプログラムの一態様例では、紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得ステップと、前記第１の取得ステップにより取得された画像に含まれる楽譜を認識する認識ステップと、前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶媒体に記憶する記憶ステップと、前記記憶ステップにより記憶されたパートテンプレートの中から、前記読み取りステップにより読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得ステップと、前記第２の取得ステップにより取得されたパートテンプレートを用いて、前記読み取りステップにより読み取られた画像に含まれる楽譜に対する設定を自動的に行う設定ステップと、前記第２の取得ステップにより取得されたパートテンプレートを示す情報を、前記楽譜のパート毎に表示装置に表示する表示ステップと、前記表示ステップにより表示されたパートテンプレートを示す情報に対するユーザの操作に基づいて、前記第２の取得ステップにより取得されたパートテンプレートの少なくとも１つの変更を受け付ける受付ステップと、前記受付ステップにより受け付けられたパートテンプレートの前記記憶ステップによる更新を制限する制限ステップと、をコンピュータに実行させ、前記記憶ステップは、前記受付ステップにより受け付けられたパートテンプレートであって、前記制限ステップにより変更が制限されないパートテンプレートを、ユーザの操作に基づいて更新し、前記表示ステップは、前記記憶ステップによりパートテンプレートが更新された場合には、前記取得ステップにより取得されたパートテンプレートを示す情報に代えて、前記更新されたパートテンプレートを示す情報を表示装置に表示し、前記制限ステップは、更新によってＭＩＤＩのプログラムナンバーが変わるパートテンプレートへの更新を制限することを特徴とする。
本発明のコンピュータプログラムの他の態様例では、紙面の楽譜の情報を含む画像を、画像読み取り手段から取得する第１の取得ステップと、前記第１の取得ステップにより取得された画像に含まれる楽譜を認識する認識ステップと、前記楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶媒体に記憶する記憶ステップと、前記記憶ステップにより記憶されたパートテンプレートの中から、前記読み取りステップにより読み取られた画像に含まれる楽譜に応じたパートテンプレートを取得する第２の取得ステップと、前記第２の取得ステップにより取得されたパートテンプレートを用いて、前記認識ステップによる楽譜の認識の結果を自動的に修正する設定ステップとをコンピュータに実行させ、前記設定ステップは、前記認識ステップにより認識された楽譜の１つのパート内の情報を用いて、前記認識ステップによる楽譜の認識の結果を修正する処理と、前記認識ステップにより認識された楽譜の複数のパート内の情報を用いて、前記認識ステップによる楽譜の認識の結果を修正する処理とを別々に行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶しておく。そして、読み取られた楽譜に応じたパートテンプレートを予め記憶しておいたものの中から取得し、取得したパートテンプレートを用いて、当該楽譜に対する設定を自動的に行うようにした。したがって、楽譜を認識した後にユーザが行う設定を従来よりも少なくすることができる。
また、楽譜の認識後に当該楽譜に対して設定する必要がある設定情報を含むパートテンプレートを予め記憶しておく。そして、読み取られた楽譜に応じたパートテンプレートを予め記憶しておいたものの中から取得し、取得したパートテンプレートを用いて、楽譜の認識の結果を自動的に修正するようにした。したがって、楽譜の認識率を従来よりも向上させることができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の一実施形態について説明する。
図１は、楽譜認識装置の構成の一例を示すブロック図である。
図１において、楽譜認識装置１００は、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、ＨＤＤ４、ＦＤＤ５、ＭＩＤＩ（Musical Instrument Digital Interface）インタフェース回路６、スキャナインタフェース回路７、プリンタインタフェース回路８、キーボードインタフェース回路９、ＣＲＴインタフェース回路１０、及びバス１５を有している。そして、スキャナ１１、プリンタ１２、キーボード１３、及びＣＲＴ１４が楽譜認識装置１００に接続されている。
【００１０】
図１に示すように、本実施形態の楽譜認識装置１００は、パソコン等の一般的な計算機システムに、ＭＩＤＩインタフェース回路６を付加したものである。
ＣＰＵ１は、ＲＯＭ２に格納されたプログラムをＲＡＭ３に展開して実行すること等により、楽譜認識装置１００の全体の制御を行う中央処理装置である。また、楽譜認識装置１００は、予め設定された所定の周期でＣＰＵ１に割り込みをかけるタイマ回路を内蔵している。ＲＡＭ３は、プログラムエリアの他、画像データバッファ、ワークエリア等として使用される。ＨＤＤ（ハードディスクドライブ）４及びＦＤＤ（フレキシブルディスクドライブ）５は、プログラム、画像データ、及び演奏データ等を格納する。
【００１１】
ＣＲＴ１４は、ＣＰＵ１の制御に基づき、ＣＲＴインタフェース回路１０から出力される映像情報を表示する。キーボード１３から入力された情報は、キーボードインタフェース回路９を経てＣＰＵ１に取り込まれる。プリンタ１２は、ＣＰＵ１の制御に基づき、プリンタインタフェース回路８から出力される印字情報を印字する。
【００１２】
スキャナ１１は、紙面に印刷された楽譜を光学的に走査して、２値、グレイスケール、あるいはカラーの画像データに変換するものである。スキャナ１１としては、フラットベッド型、ハンディ型、フィーダー型等任意のタイプのものを使用できる。スキャナ１１によって読み取られた画像情報は、スキャナインタフェース回路７を介して、ＲＡＭ３又はＨＤＤ４に取り込まれる。ＭＩＤＩインタフェース回路６は、音源モジュール等の外部のＭＩＤＩ機器との間でＭＩＤＩデータの送受信を行う回路である。バス１５は、楽譜認識装置１００内の各回路を接続している。尚、この他に、マウス等のポインティングデバイスや、ＲＳ２３２Ｃ等のシリアルインターフェース回路等を楽譜認識装置１００が備えていてもよい。
【００１３】
図２は、ＣＰＵ１の処理の一例を説明するメインフローチャートである。
まず、図２−１のステップＳ１において、ＣＰＵ１は、スキャナ１２によって読み取られた楽譜の画像データをＲＡＭ３に取り込む。ここでは、画像を２値の画像として取り込むとする。このように本実施形態では、ステップＳ１の処理を行うことにより第１の取得手段が実現される。
次に、ステップＳ２において、ＣＰＵ１は、かすれやドットノイズ等を軽減するために、楽譜の画像データに対して、図形融合等の画質平滑化処理を行う。
次に、ステップＳ３において、ＣＰＵ１は、楽譜の画像データに対して、画質チェック処理を行う。画質チェック処理においては、楽譜の画像データにおける"倍率の情報と濃度の情報"を得ると共に、後述する五線検出の基準データを得るために、五線の線幅と五線の各線間の間隔とを求める。ここでは、線幅と間隔とを求めるために、画像上の横（ｘ）方向の数箇所において縦（ｙ）方向に走査し、黒ラン（連続する黒画素）と白ランの長さを全て求め、求めた長さ毎に頻度分布（ヒストグラム）データを作成する。ここで、ランとは、黒画素ないし白画素がある方向に連続する長さのことをいう。
【００１４】
楽譜上で最も多い音楽記号は五線であるので、作成された黒ランの長さのヒストグラムのピークと、白ランの長さのヒストグラムのピークとを夫々検出することで、五線の線幅と間隔とを推定できる。
また、楽譜の画像の倍率は、例えば、五線の間隔から推定できる。更に、楽譜の画像の濃度は、五線の線幅と間隔との比から推定できる。楽譜の認識処理においては、楽譜の画像の"倍率及び濃度"が所定の範囲から外れると、楽譜の画像の認識率が低下してしまう。そこで、ステップＳ４において、ＣＰＵ１は、これらの値が、所定の範囲内にあるか否かを判定することにより、画質がＯＫか否かを判定する。この判定の結果、楽譜の画像の"倍率及び濃度"が所定の範囲から外れており、画質がＯＫでない場合には、ステップＳ１に戻り、倍率や濃度を変えて、楽譜の画像を再度読み取る。
【００１５】
一方、楽譜の画像データの"倍率及び濃度"が所定の範囲内にあり、画質がＯＫである場合には、ステップＳ５に進む。ステップＳ５に進むと、ＣＰＵ１は、楽譜の画像データに対して、五線認識処理を行う。五線認識処理は、五線走査開始位置検出処理と、五線シフト量検出処理とに分かれる。五線走査開始位置検出処理の概略を述べると、横（ｘ）軸方向のある位置で、黒画素の幅と白画素の幅とを順に求め、求めた幅に基づいて、五線状に並んでいる位置を、ある程度の誤差を考慮して検出する。そして、加線（五線からはみ出した音符を記載するために付加した横線）の影響を除くために、五線状の並びの両側に、五線の間隔より大きな白画素幅があるという条件を加える。この条件に合う白黒画素の並びがある横（ｘ）方向の各黒ランの中点を五線走査開始位置とする。
【００１６】
つぎに、五線シフト量検出処理の概略を述べる。まず、五線走査開始位置（５点の黒画素位置）から、１ドットずつ位置を左右に変えていき、５点の内、黒画素がある個数（例えば３あるいは４個）以下になった場合に、５点を上下にずらして黒画素数をチェックし、縦（ｙ）方向のうち、黒画素の割合が高くなる方向へｙ座標をシフトする。この五線走査開始位置からのシフト量を五線のシフト量とする。そして、五線走査開始位置の左右方向（横方向）に、黒画素の個数が０になる位置まで走査することにより五線の検出を行う。
【００１７】
次に、ステップＳ６において、ＣＰＵ１は、楽譜の画像データに対して、段落認識処理を行う。この段落認識処理は、段落認識処理と、大かっこ認識処理とに分かれる。段落認識処理においては、画像全体で五線を検出し、五線同士で左端がほぼ同じ場所にある五線の組を探し、五線の端同士が、黒画素で結ばれているかどうかを検査し、段落を認識する。尚、予め、ｘ軸及びｙ軸方向における黒画素のヒストグラムを求め、このヒストグラムに基づいて空白部分を検出することによって段落の存在を推定しても良い。五線同士が大かっこで結ばれていた場合には、五線同士にまたがる音符等が存在する場合があるので、大かっこで結ばれた五線は１つの単位で処理を行った方が良い。大かっこについては、段落線の左の所定の範囲で、後述する定型記号認識と同様の手法で認識を行う。
【００１８】
次に、ステップＳ７において、ＣＰＵ１は、パート名認識処理を行う。このパート名認識処理においては、文字列認識を行う。まず、アルファベットやその他の記号を認識し、その記号を囲む矩形が文字列状に並んでいるものを抽出する。そして、これと文字列辞書とのマッチングをとることで、文字列状の記号を認識する。
【００１９】
次に、ステップＳ８において、ＣＰＵ１は、パートテンプレート適用処理を行う。このパートテンプレート適用処理においては、後述するステップＳ１３〜Ｓ１６における認識が終了した後に設定が必要な情報が記憶されたパートテンプレートを、ＨＤＤ４等に予め記憶されている複数のパートテンプレートの中から選び出す。
図３は、パートテンプレートの一例を示す図である。図３において、パートテンプレート３０１は、テンプレート名３０２、パート名３０３、パート名短縮３０４、移調楽器設定３０５、音部記号３０６、タブ譜線数３０７、及びタブ譜チューニング情報３０８を有する。
【００２０】
テンプレート名３０２には、パートテンプレート３０１を識別するための文字列として、例えば、日本語の文字列又はアルファベットの文字列が格納される。
パート名３０３には、パートテンプレート３０１が適用されるパートを識別するための文字列が格納される。
パート名短縮３０４には、パートテンプレート３０１が適用されるパートの短縮表記を識別するための文字列が格納されている。
移調楽器設定３０５には、パートテンプレート３０１が適用される楽器が移調楽器であるか否かと、その楽器が移調楽器である場合にはその移調楽器がどのようなものであるかとを識別するための数値が格納されている。本実施形態では、パートテンプレート３０１が適用される楽器が移調楽器でない場合、移調楽器設定３０５には、０が格納される。また、本実施形態では、パートテンプレート３０１が適用される楽器がトランペット、ウッドベース、ピッコロ、アルトサックスである場合、移調楽器設定３０５には、夫々、−２、−１２、１２、−９が格納される。
【００２１】
音部記号３０６には、パートテンプレート３０１が適用される音部記号の種類に対応した数値が格納されている。本実施形態では、パートテンプレート３０１が適用される音部記号がト音記号である場合、音部記号３０６には０が格納される。また、本実施形態では、パートテンプレート３０１が適用される音部記号がヘ音記号である場合、音部記号３０６には１が格納される。
タブ譜線数３０７には、パートテンプレート３０１が適用される"楽譜の線数"を表す数値が格納されている。
タブ譜チューニング情報３０８には、楽譜の各線に対するチューニングを表す数値が格納されている。タブ譜チューニング情報３０８には、パートテンプレート３０１が適用される"楽譜の線数"分の情報が格納されている。
【００２２】
尚、パートテンプレート３０１には、移調楽器設定３０５、音部記号３０６、タブ譜線数３０７、及びタブ譜チューニング情報３０８が少なくとも含まれていればよい。ただし、テンプレート名３０２、パート名３０３は含まれていた方が好ましい。また、テンプレート名３０２、パート名３０３、パート名短縮３０４、移調楽器設定３０５、音部記号３０６、タブ譜線数３０７、及びタブ譜チューニング情報３０８に格納される情報は、前述したものに限定されるものではない。
また、このステップＳ８におけるパートテンプレート適用処理の詳細については後述する。
【００２３】
次に、ステップＳ９において、ＣＰＵ１は、ステップＳ６の段落認識処理の結果と共に、ステップＳ７のパートテンプレート適用処理の結果をＣＲＴ１４に表示させて、段落の認識結果とパートテンプレート３０１の適用結果とが正しいか否かをユーザにチェックさせることにより、認識がＯＫか否かを判定する。この判定の結果、認識がＯＫでない場合にはステップＳ１０に進み、ＣＰＵ１は、段落の認識結果や、パートテンプレート３０１の適用結果の修正を行う認識修正処理を行った後、ステップＳ９に戻る。スコア譜においては、各段落のパート構成が等しいものの他に、途中でパートの省略や追加があったり、同じパートで単独譜表と大譜表とが段落ごとに変化したりする場合もある。このようなパートの対応は、大かっこの対比等で行うが、パートの対応が一意に決められない場合もあるので、段落の認識結果の修正を予め行えるようにする。また、パートテンプレート３０１をユーザの好みのものにしたい場合があるので、ステップＳ７で自動的に選択したパートテンプレート３０１を変更することができるようにする。この認識修正処理（パートテンプレート３０１の適用結果の修正）の詳細については後述する。
以上のように本実施形態では、ステップＳ９の処理を行うことにより表示手段の一部が実現される。
【００２４】
尚、五線認識が失敗した場合には、その後の処理が行えないので、倍率や濃度を変更して再度画像を取り込む必要がある。従って、ステップＳ９において、まず五線の認識結果をＣＲＴ１４に表示し、表示した"五線の認識結果"に対するユーザの操作の結果に基づいて、五線の認識結果が正しいか否かを判定するようにしてもよい。このようにした場合、五線の認識結果が正しくないと判定されると、ステップＳ１に戻り、楽譜の画像データを再度読み取るようにする。一方、五線の認識結果が正しいと判定された場合には、段落の認識結果を表示し、その段落の認識結果をユーザにチェックさせるようにするのが好ましい。
【００２５】
一方、ステップＳ９において、認識がＯＫであると判定された場合には、ＣＰＵ１は、ステップＳ１で得られた楽譜に含まれるパートの１つを選択し、図２−２のステップＳ１１に進む。ステップＳ１１に進むと、ＣＰＵ１は、五線傾き補正処理を行う。五線傾き補正処理の概略を述べると、先に求めた五線のシフト量に基づいて、認識処理矩形の列毎に画素列を上下にシフトする。尚、五線毎にシフト量を計算し、認識処理矩形の画像内でシフト補正を行った方がより正確であるが、このシフト量を、ステップＳ１で読み取られた楽譜の画像全体で１つ計算し、楽譜の画像の全体をシフトしても良い。
この後、ＣＰＵ１は、認識処理矩形の上下端に接したラベルを、上下のパートの構成要素として消去する。最後に、ＣＰＵ１は、上下端の空白部分を検出して、認識処理矩形を縮小する。ここで、ラベルとは、他の画素領域とは独立した画素領域をいう。例えば、白画素と黒画素とからなる２値画像における黒画素のラベルについて説明する。この場合、黒画素の上下左右、斜め方向の画素の連結状態を検出し、検出した結果に基づき１つの塊として判定できる黒画素の集まりをラベルと呼ぶ。尚、上下左右に加えて斜め方向の画素の連結を判定する場合を８連結ラベルと称し、上下左右のみの画素の連結を判定する場合を４連結ラベルと称する。また、本実施形態では、例えば黒画素が連結している部分だけでなく、その黒画素が連結している部分を囲む多角形（矩形等）の領域もラベルとして扱うものとする。
次に、ステップＳ１２において、ＣＰＵ１は、五線消去処理を行う。この五線消去処理においては、ステップＳ５で認識され、ステップＳ１１で傾きが補正された五線を消去する。
【００２６】
ステップＳ１３〜Ｓ１６においては、各種の音楽記号の認識処理が行われる。楽譜の音楽記号には、形、位置に関して大まかに以下の３つの種類がある。
（１）定型で、上下位置がほぼ決まっているもの（音部記号、拍子記号等）。
（２）定型で、上下位置は自由度があるもの（臨時記号、休符等）。
（３）不定型且つ位置も不定のもの（音符、スラー、タイ等）。
本実施形態では、これらをそれぞれに適した方式で、音部記号・拍子認識、音符認識、定型記号認識、文字列認識、スラー・タイ認識の順に認識する。尚、音楽記号は、これらに限定されるものではなく、楽譜に記載されるものであれば、どのようなものであってもよい。
【００２７】
音部記号・拍子認識を最初に行うのは、処理コストの低い認識を最初に行って、この記号を消去することによって、後の認識の処理コストを軽減するためである。更に、最初により確実なものを認識することで、後の認識での誤認識を減らすためでもある。また、音符認識の後に定型記号認識を行うのは、ラベルの接触に影響されにくい認識方式である音符認識を行って、この音符を消去することで、音符に接触した臨時記号等の認識を可能にするためである。スラー・タイ認識が最後になっているのは、処理コストの高いスラー認識の対象になるラベルをなるべく少なくするためである。また、先に検出された音符の周りのラベルだけをスラー・タイ認識の対象にすることによって、更にスラー・タイ認識の処理コストを下げ、且つ、スラー及びタイの誤認識も減らすことができる。
【００２８】
まず、ステップＳ１３において、ＣＰＵ１は、五線に対して定位置にある音楽記号として、音部記号と拍子記号とを認識する音部記号・拍子認識処理を行う。ここでは、まず、求められた五線を含む矩形領域において、縦方向における黒画素のヒストグラムを求め、黒画素の量がしきい値以上の帯域を、音部記号又は拍子記号が存在する可能性のある場所としてマッチングの対象とする。マッチングは、例えば、五線間の数箇所について求められた"横方向のペリフェラル特徴"に基づいて行われる。ペリフェラル特徴とは、マッチングの対象となる記号のみを含む矩形領域の左右端から五線間の数箇所の白画素の領域に向けて内方向に走査し、黒画素の領域に達するまでの距離を１次（最初）あるいは数次（２回目以降）まで求めたものである。また、マッチングに失敗した場合には、隣接した帯域を併合して再度認識を行う。そして、認識された音楽記号は画像データから消去する。
【００２９】
次に、ステップＳ１４において、ＣＰＵ１は、音符認識処理を行う。この音符認識処理においては、まず、画像データを縦細線、横細線、及び太線画像に分離する。そして、各画像から記号や記号の部品を検出し、それらを総合して音符等の記号を認識する。
次に、ステップＳ１５において、ＣＰＵ１は、定型記号認識処理を行う。この定型記号認識処理においては、まず、公知の輪郭線加重方向指数を取り、辞書の各記号データについてラベルのサイズと輪郭線加重方向指数のマッチング度を計算して、各マッチング度を正規化し、統合した結果が最も高い記号を出力する。尚、サイズと加重方向指数の他に、ペリフェラル等の他の特徴を使っても良い。また、五線消去によりラベルが切れたものの対策として、五線消去によって切れたラベルを辞書に登録し、音楽記号であると認識された場合には、その周りのラベルを結合して再認識する。
【００３０】
次に、ステップＳ１６において、ＣＰＵ１は、その他の記号認識処理を行う。本実施形態では、その他の記号認識処理において、文字列認識処理と、スラー・タイ認識処理とを含む記号認識処理を行う。
文字列認識処理では、まず、速度記号等の文字列を認識するために、定型記号認識処理で認識されたアルファベットやその他の記号を使い、その記号を囲む矩形が文字列状に並んでいるものを抽出する。そして、これと文字列辞書とのマッチングをとることで、文字列状の記号を認識する。
【００３１】
次に、ＣＰＵ１は、スラー・タイ認識処理を行う。このスラー・タイ認識処理においては、まず、これまでの処理で残ったラベルのうち、検出された音符の周りのラベルを細線化し、多円弧近似する。そして、以前に消された記号により線が切れている場合があるので、求められた多円弧同士の連結を行う。最後に、求められた円弧の形や、元画像の図の太さや、音符との関係等からスラーやタイを認識する。
【００３２】
本実施形態では、以上のステップＳ１３〜Ｓ１６の処理において、ＣＰＵ１は、音楽記号の認識に失敗した場合、その音楽記号の認識の際に候補に挙がった音楽記号を識別するためのＩＤを、マッチング度の高いものから順に、所定個数ＲＡＭ３等に記憶するようにしている。
図４は、認識の際に候補に挙がった音楽記号を識別するためのＩＤの記憶方法の一例を概念的に示す図である。
図４に示すように、ステップＳ１で得られた楽譜の画像から抽出された音楽記号４０１に対して、辞書マッチング４０２が行われる。この辞書マッチング４０２においてＣＰＵ１は、音楽記号４０１に対するマッチング度（得点）が閾値以上である音楽記号を辞書から得ることができた場合には、音楽記号４０１の認識に成功したと判定する。更に、ＣＰＵ１は、音楽記号４０１に対するマッチング度（得点）が閾値以上でない音楽記号のうち、マッチング度（得点）が高い音楽記号から順に、その音楽記号を識別するためのＩＤ４０３、４０４を、例えば、ＲＡＭ３の所定の記憶領域に記憶する。
【００３３】
一方、音楽記号４０１に対するマッチング度（得点）が閾値以上である音楽記号を辞書から得ることができなかった場合、ＣＰＵ１は、マッチング度（得点）が高い音楽記号から順に、その音楽記号を識別するためのＩＤ４０５、４０６を、例えば、ＲＡＭ３の所定の記憶領域に記憶する。本実施形態では、マッチング度（得点）が閾値以上でない音楽記号のうち、マッチング度（得点）が最も高い音楽記号を識別するためのＩＤ４０３、４０５を次点ＩＤと称し、その次点ＩＤ４０３、４０５の次にマッチング度（得点）が高い音楽記号を識別するためのＩＤ４０４、４０６を次次点ＩＤと称する。
以上のように本実施形態では、ステップＳ１３〜Ｓ１６の処理を行うことにより認識手段が実現される。
【００３４】
次に、ステップＳ１７において、ＣＰＵ１は、パート内誤認識修正処理を行う。パート内認識修正処理においては、ステップＳ１で得られた楽譜に含まれるパートのうち、１つのパート内だけで誤認識であると判別することができる部分を、ステップＳ８で選択されたパートテンプレート３０１を用いて修正する。このパート内誤認識修正処理の詳細については後述する。
次に、ステップＳ１８において、ＣＰＵ１は、認識記号のラベル消去処理を行う。認識記号のラベル消去処理においては、ＣＰＵ１は、ステップＳ１３〜Ｓ１６で認識された音楽記号や、ステップＳ１７で認識されたスラーやタイ等を画像から消去する。
【００３５】
次に、ステップＳ１９において、ＣＰＵ１は、パート内設定処理を行う。パート内設定処理においては、ステップＳ１３〜Ｓ１７で認識された音楽記号に基づいて、各小節に含まれる音楽記号の設定（小節属性の設定）を行ったり、音楽記号の親子関係の設定を行ったりする。音楽記号の親子関係の設定は、例えば、音符との位置関係が適切な臨時記号を、その音符の臨時記号として設定したりすることにより行われる。尚、音符との位置関係が適切でない臨時記号については、誤認識したとして、認識結果から削除したり、五線や小節との位置関係に応じて調号としたりすることができる。また、ステップＳ１９では、ステップＳ１で得られた楽譜に含まれるパートのうち、１つのパート内の情報で設定できるものだけを対象として処理を行う。
【００３６】
次に、ステップＳ２０において、ＣＰＵ１は、ステップＳ１で得られた楽譜に含まれるパートの全てに対して、ステップＳ１１〜Ｓ２０の処理を行ったか否かを判定する。この判定の結果、ステップＳ１で得られた楽譜に含まれるパートの全てに対して処理を行っていない場合には、ステップＳ１１に戻り、ステップＳ１で得られた楽譜に含まれるパートの全てに対して処理を行うまでステップＳ１１〜Ｓ２０を繰り返し行う。
【００３７】
次に、ステップＳ２１において、ＣＰＵ１は、パート間設定処理を行う。ステップＳ１９で行ったパート内設定処理では、ステップＳ１で得られた楽譜に含まれるパートのうち、１つのパート内の情報で設定できるものだけを対象として処理を行うが、パート間設定処理では、ステップＳ１で得られた楽譜に含まれる複数のパートの情報を用いなければ設定できないものだけを対象として処理を行う。具体的には、小節属性の設定や、音楽記号の親子関係の設定等を行う。
【００３８】
次に、ステップＳ２２において、ＣＰＵ１は、パート間認識修正処理を行う。ステップＳ１７で行ったパート内認識修正処理では、ステップＳ１で得られた楽譜に含まれるパートのうち、１つのパート内だけで誤認識であると判別することができる部分を修正するが、パート間認識修正処理では、ステップＳ１で得られた楽譜に含まれる複数のパートを考慮しなければ誤認識であると判別することができない部分を、ステップＳ８で選択されたパートテンプレート３０１を用いて修正する。このパート間誤認識修正処理の詳細については後述する。
以上のように本実施形態では、パート内誤認識修正処理（ステップＳ１７）と、パート間誤認識修正処理（ステップＳ２２）とを別々に行うようにして処理の効率化を図るようにしている。
【００３９】
次に、ステップＳ２３において、ＣＰＵ１は、例えば、ステップＳ１〜Ｓ２２の処理結果に基づき、ステップＳ１で読み取られた楽譜の画像データ（以下、必要に応じて楽譜画像データと称する）を生成して、ＣＲＴ１４に表示させる。そして、その楽譜画像データが正しいか否かをユーザにチェックさせることにより、その楽譜画像データがＯＫか否かを判定する。この判定の結果、楽譜画像データがＯＫでない場合には、ステップＳ２４に進む。そして、ＣＰＵ１は、ユーザによるマウスやキーボード１３等の操作に基づいて、音楽記号の認識結果を修正する。そして、ステップＳ２３に戻る。
一方、ステップＳ２３において、楽譜画像データがＯＫであると判定された場合には、ステップＳ２４を省略してステップＳ２５に進む。
【００４０】
ステップＳ２５に進むと、ＣＰＵ１は、演奏データ作成処理を行う。この演奏データ作成処理においては、認識及び修正した各種の音楽記号（音符情報、音部記号情報、拍子記号情報、定型記号情報、文字列情報、スラー・タイ情報）に基づいて、例えば公知の演奏データ形式であるＭＩＤＩファイルデータを、演奏データとして生成する。そして、図２のフローチャートによる処理を終了する。
【００４１】
次に、図５のフローチャートを参照しながら、図２のステップＳ８におけるパートテンプレート適用処理の一例を説明する。
まず、ステップＳ１０１において、ＣＰＵ１は、図２のステップＳ７で認識されたパート名に対応する楽器ＩＤを、ＨＤＤ４等に予め登録されているデータベースから取得する。楽器ＩＤとは、演奏するための手段を識別するためのＩＤであり、楽器を識別するためのＩＤの他に、例えば合唱（の１パート）であることを識別するためのＩＤ等も楽器ＩＤに含まれる。このステップＳ１０１では、例えば、ＭＩＤＩのプログラムナンバーに対応した楽器ＩＤを取得することができる。また、ステップＳ１で得られた楽譜がタブ譜であることがステップＳ５の五線認識処理で分かった場合には、そのタブ譜に応じた楽器ＩＤを取得することができる。
【００４２】
次に、ステップＳ１０２において、ＣＰＵ１は、ステップＳ１０１で取得した楽器ＩＤに基づいて、ステップＳ１で得られた楽譜のジャンルを推定することができるか否かを判定する。例えば、"Contralto"に対応する楽器ＩＤが取得された場合、ＣＰＵ１は、その楽器ＩＤを参照するだけで、ステップＳ１で得られた楽譜のジャンルは合唱であると推定することができる。この判定の結果、ステップＳ１で得られた楽譜のジャンルを推定することができない場合には、ステップＳ１０３に進む。ステップＳ１０３に進むと、ＣＰＵ１は、ステップＳ５〜Ｓ７における処理の結果等に基づいて、ステップＳ１で得られた楽譜のジャンルを推定する。そして、ステップＳ１０４に進む。
【００４３】
一方、ステップＳ１で得られた楽譜のジャンルを推定することができる場合には、ステップＳ１０３を省略してステップＳ１０４に進む。
以上のようにしてステップＳ１０４に進むと、ＣＰＵ１は、ステップＳ１０１で取得した楽器ＩＤと、前述したようにして推定したジャンルとに対応するパートテンプレート３０１が、認識パートテンプレート適用表にあるか否かを判定する。
図６は、認識パートテンプレート適用表の一例を示す図である。図６に示す認識パートテンプレート適用表６０１は、例えばＨＤＤ４に予め記憶されている。
図６において、認識パートテンプレート適用表６０１には、楽器ＩＤとジャンルとに対応付けられて、パートテンプレート３０１を識別するための情報（テンプレート名３０２に格納されている情報）が記憶されている。尚、図６において、「設定なし」は、その部分に該当するパートテンプレート３０１がないことを示す。また、認識パートテンプレート適用表６０１をユーザが自由に編集する場合には、ユーザが認識し易い情報を、パートテンプレート３０１を識別するための情報として記憶するのが好ましい。このようにすれば、認識パートテンプレート適用表６０１からパートテンプレート３０１をユーザが容易に検索できるからである。
【００４４】
ステップＳ１０４の判定の結果、該当するパートテンプレート３０１が認識パートテンプレート適用表６０１にある場合には、後述するステップＳ１０７に進む。一方、該当するパートテンプレート３０１が認識パートテンプレート適用表６０１にない場合には、ステップＳ１０５に進む。
ステップＳ１０５に進むと、ＣＰＵ１は、ステップＳ１０１で取得した楽器ＩＤと、前述したようにして推定したジャンルとは異なるジャンルとに対応するパートテンプレート３０１が、認識パートテンプレート適用表６０１にあるか否かを判定する。この判定の結果、該当するパートテンプレート３０１が認識パートテンプレート適用表６０１にある場合には、後述するステップＳ１０７に進む。
【００４５】
一方、該当するパートテンプレート３０１が認識パートテンプレート適用表６０１にない場合、認識パートテンプレート適用表６０１には、ステップＳ１０１で取得した楽器ＩＤに対応するパートテンプレート３０１が登録されていない（ステップＳ１０１で取得した楽器ＩＤに対応する欄が全て「設定なし」である）ので、ステップＳ１０６に進む。そして、ステップＳ１０６において、ＣＰＵ１は、パートテンプレートの適用ができない旨をＣＲＴ１４に表示させる。そして、図２のステップＳ９に進む。このようにしてステップＳ９に進んだ場合、ステップＳ７のパートテンプレート適用処理の結果は表示されないことになる。
【００４６】
一方、該当するパートテンプレート３０１が認識パートテンプレート適用表６０１にある場合には、ステップＳ１０７に進む。ステップＳ１０７に進むと、ＣＰＵ１は、該当するパートテンプレート３０１（の情報）を取得する。そして、図２のステップＳ９に進む。このようにしてステップＳ９に進んだ場合、ステップＳ６の段落認識処理の結果と共に、ステップＳ７のパートテンプレート適用処理の結果が表示されることになる。
図７は、パートテンプレート適用処理の結果の表示内容の一例を示す図である。図７に示すように、本実施形態では、パートナンバ（パートＮｏ）と、パート名と、パートテンプレート名とが互いに関連付けられたテーブル７０１を、パートテンプレート適用処理の結果として、段落認識処理の結果と共に表示する。本実施形態では、テーブル７０１におけるパートテンプレート名の内容は、ユーザによる操作に基づいて変更することが可能になっている。
以上のように本実施形態では、ステップＳ１０１〜Ｓ１０５、Ｓ１０７の処理を行うことにより第２の取得手段が実現される。
尚、ステップＳ１０５において、ステップＳ１０１で取得した楽器ＩＤと、推定したジャンルとは異なるジャンルとに対応するパートテンプレート３０１が認識パートテンプレート適用表６０１に複数ある場合、例えば、他のジャンルを、優先順位をつけて順に選び出し、そのジャンル内でパートテンプレート３０１を検索することにより、ＣＰＵ１は、推定したジャンルに最も近いジャンルに対応するパートテンプレート３０１を取得することができる。
【００４７】
次に、図８のフローチャートを参照しながら、図２のステップＳ１０の認識修正処理の一例を説明する。
まず、ステップＳ２０１において、ＣＰＵ１は、ユーザによる操作に基づいて、図２のステップＳ８のパートテンプレート適用処理で取得されたパートテンプレート３０１を変更するための操作がユーザによってなされたか否かを判定する。この判定の結果、パートテンプレート３０１を変更するための操作がユーザによってなされていない場合には、ステップＳ２０５に進み、ＣＰＵ１は、その他の処理を行う。その他の処理としては、例えば、段落の認識結果の修正等をユーザの操作に基づいて行う処理が挙げられる。
一方、パートテンプレート３０１を変更するための操作がユーザによってなされた場合には、ステップＳ２０２に進む。
以上のように本実施形態では、ステップＳ２０１の処理を行うことにより、受付手段が実現される。
【００４８】
ステップＳ２０２に進むと、ＣＰＵ１は、その操作に従ってパートテンプレート３０１を変更しても、パートテンプレート３０１が適用されるＭＩＤＩのプログラムナンバーが変更しないかどうかを判定する。この判定の結果、ＭＩＤＩのプログラムナンバーが変更する場合には、後述するステップＳ２０６に進む。一方、ＭＩＤＩのプログラムナンバーが変更しない場合には、ステップＳ２０３に進む。
【００４９】
そして、ステップＳ２０３に進むと、ＣＰＵ１は、ステップＳ２０１で判定された操作の内容に従って、認識パートテンプレート適用表６０１の内容（パートテンプレート３０１を識別するための情報）を変更（更新）する。次回以降は、ここで変更された内容に従って、パートテンプレート３０１が取得されることになる（図５のステップＳ１０７を参照）。このように本実施形態では、ステップＳ２０３の処理を行うことにより記憶手段の一部が実現される。
次に、ステップＳ２０４において、ＣＰＵ１は、認識パートテンプレート適用表６０１の変更結果に基づいて、パートテンプレート適用処理の結果の表示内容（図７に示したテーブル７０１のパートテンプレート名の内容）を変更させる。このように本実施形態では、ステップＳ２０４の処理を行うことにより表示手段の一部が実現される。
そして、ステップＳ２０５に進み、ＣＰＵ１はその他の処理を行った後、図２のステップＳ９に戻る。
【００５０】
ステップＳ２０２において、ＭＩＤＩプログラムナンバーが変更すると判定された場合には、ステップＳ２０６に進み、ＣＰＵ１は、認識パートテンプレート適用表６０１の更新ができない旨をＣＲＴ１４に表示させる。そして、ステップＳ２０５に進み、ＣＰＵ１はその他の処理を行った後、図２のステップＳ９に戻る。
以上のように本実施形態では、ＭＩＤＩプログラムナンバーが変更するような認識パートテンプレート適用表６０１の変更を受け付けないようにしている。すなわち、パートテンプレート３０１の種類をユーザの好みに合わせて単に変更したい場合に認識パートテンプレート適用表６０１を変更できるようにし、パート名の認識に誤認識があった可能性がある場合には、認識パートテンプレート適用表６０１の変更を制限（変更できないように）している。
【００５１】
例えば、認識パートテンプレート適用表６０１において、「トランペット」に適用されるパートテンプレート３０１を、「ソロトランペット」に適用されるパートテンプレート３０１に変更することができるようにしている。これに対し、「トロンボーン」に適用されるパートテンプレート３０１を「チューバ」に適用されるパートテンプレート３０１に変更することはできないようにしている。「Ｔｕｂ」を「Ｔｂ」に誤認識した可能性があるからである。
【００５２】
もし、「トロンボーン」に適用されるパートテンプレート３０１を「チューバ」に適用されるパートテンプレート３０１に変更することを認めてしまうと、次のような問題点がある。すなわち、次回以降の楽譜の認識において、「トロンボーン」と認識した場合には、「チューバ」に適用されるパートテンプレート３０１が、認識パートテンプレート適用表６０１から取得されてしまう可能性が生じてしまうからである。
以上のように本実施形態では、ステップＳ２０２、Ｓ２０６の処理を行うことにより、制限手段が実現される。
尚、本実施形態では、ＭＩＤＩプログラムナンバーが変更するような認識パートテンプレート適用表６０１の変更を受け付けないようにして、前述したような問題点を解消するようにしているが、必ずしもこのようにする必要はない。例えば、ＭＩＤＩプログラムナンバーが変更するような認識パートテンプレート適用表６０１の変更を受け付けるようにしてもよい。また、前述したのと異なる方法によって、場合によってはＭＩＤＩプログラムナンバーが変更するような認識パートテンプレート適用表６０１の変更を受け付けないようにしてもよい。更に、認識パートテンプレート適用表６０１の内容を、ユーザの操作に基づいて初期状態に戻せるようにしてもよい。
【００５３】
次に、図９のフローチャートを参照しながら、図２のステップＳ１７のパート内誤認識修正処理の一例を説明する。
まず、ステップＳ３０１において、ＣＰＵ１は、図５のフローチャートにおいて、パートテンプレート３０１（の情報）を取得できたか否かを判定する。この判定の結果、パートテンプレート３０１を取得できなかった場合には、図２のステップＳ１９に戻る。
一方、パートテンプレート３０１を取得できた場合には、ステップＳ３０２に進み、ＣＰＵ１は、取得したパートテンプレート３０１（の情報）を用いて、オクターブ付き音部記号修正処理を行う。図１０に、オクターブ付き音部記号１００１の一例を示す。オクターブ付き音部記号修正処理においては、パートテンプレート３０１（の情報）を用いて、図２のステップＳ１３で認識された音部記号を修正する。尚、オクターブ付き音部記号修正処理の詳細については後述する。
【００５４】
次に、ステップＳ３０３において、ＣＰＵ１は、オクターブ付き音部記号修正処理以外のパート内誤認識修正処理を行う。前述したようにパート内誤認識修正処理は、１つのパート内だけで誤認識であると判別することができる部分を、パートテンプレート３０１を用いて修正する処理である。そして、図２のステップＳ１８に戻る。
以上のように本実施形態では、図９のフローチャートを実行することにより、設定手段の一部が実現される。
【００５５】
次に、図１１のフローチャートを参照しながら、図９のステップＳ３０２のオクターブ付き音部記号修正処理の一例を説明する。
まず、ステップＳ４０１において、ＣＰＵ１は、図５のステップＳ１０７で取得されたパートテンプレート３０１の音部記号３０６に、オクターブ付きの音部記号に対応する数値が格納されているか否かを判定する。この判定の結果、図５のステップＳ１０７で取得されたパートテンプレート３０１の音部記号３０６に、オクターブ付きの音部記号に対応する数値が格納されていない場合には、図９のステップＳ３０３に戻る。このように本実施形態では、パートテンプレート３０１の音部記号３０６に、オクターブ付きの音部記号に対応する数値が格納されていない場合には、図３のフローチャートに戻るようにすることにより、オクターブ付き音部記号修正処理を高速化するようにしている。
【００５６】
一方、図５のステップＳ１０７で取得されたパートテンプレート３０１の音部記号３０６に、オクターブ付きの音部記号に対応する数値が格納されている場合には、ステップＳ４０２に進む。
ステップＳ４０２に進むと、ＣＰＵ１は、図２のステップＳ１３における音部記号の認識の結果、他の音部記号と分離された「８」が認識された部分があるか否かを判定する。この判定の結果、他の音部記号と分離された「８」が認識されていない場合には、後述するステップＳ４０７に進む。
【００５７】
一方、他の音部記号と分離された「８」が認識された部分がある場合には、ステップＳ４０３に進む。ステップＳ４０３に進むと、ＣＰＵ１は、ステップＳ１で得られた楽譜の全段落のＮ（Ｎは正の値）［％］以上で、他の音部記号と分離された「８」が認識されたか否かを判定する。この判定の結果、ステップＳ１で得られた楽譜の全段落のＮ［％］以上で、他の音部記号と分離された「８」が認識されていない場合には、図９のステップＳ３０３に戻る。
【００５８】
一方、ステップＳ１で得られた楽譜の全段落のＮ［％］以上で、他の音部記号と分離された「８」が認識されている場合には、ステップＳ４０４に進む。ステップＳ４０４に進むと、ＣＰＵ１は、図２のステップＳ１３における音部記号の認識の結果に基づいて、「８」の認識に失敗した部分があるか否かを判定する。この判定の結果、「８」の認識に失敗した部分がない場合には、図９のステップＳ３０３に戻る。
【００５９】
一方、「８」の認識に失敗した部分がある場合には、ステップＳ４０５に進む。ステップＳ４０５に進むと、ＣＰＵ１は、「８」の認識に失敗した部分の次点ＩＤ４０５が、オクターブ付きの音部記号を識別するＩＤであるか否かを判定する。この判定の結果、「８」の認識に失敗した部分の次点ＩＤ４０５が、オクターブ付きの音部記号を識別するＩＤでない場合には、図９のステップＳ３０３に戻る。
【００６０】
一方、「８」の認識に失敗した部分の次点ＩＤ４０５が、オクターブ付きの音部記号を識別するＩＤである場合には、ステップＳ４０６に進む。ステップＳ４０６に進むと、ＣＰＵ１は、「８」の認識に失敗した部分に「８」を追加して、オクターブなしの音部記号をオクターブ付きの音部記号に変更する。そして、図９のステップＳ３０３に戻る。
【００６１】
ステップＳ４０２において、他の音部記号と分離された「８」が認識されていないと判定された場合には、オクターブ付きでないものとして音部記号の認識に成功していると判定され、ステップＳ４０７に進む。ステップＳ４０７に進むと、ＣＰＵ１は、認識に成功した音部記号の次点ＩＤ４０３が、オクターブ付きの音部記号を識別するＩＤであるか否かを判定する。この判定の結果、認識に成功した音部記号の次点ＩＤ４０３が、オクターブ付きの音部記号を識別するＩＤでない場合には、図９のステップＳ３０３に戻る。
【００６２】
一方、認識に成功した音部記号の次点ＩＤ４０３が、オクターブ付きの音部記号を識別するＩＤである場合には、ステップＳ４０８に進む。ステップＳ４０８に進むと、ＣＰＵ１は、認識に成功した音部記号に「８」を追加して、オクターブなしの音部記号をオクターブ付きの音部記号に変更する。そして、図９のステップＳ３０３に戻る。この場合、図２のステップＳ１３では、オクターブなしの音部記号であるとして認識に成功しているが、図５のステップＳ１０７で取得されたパートテンプレート３０１の音部記号３０６に基づくと、その音部記号は実はオクターブ付きの音部記号であったということになる。
【００６３】
尚、図１１では、ステップＳ４０５において、「８」の認識に失敗した部分の次点ＩＤ４０５が、オクターブ付きの音部記号を識別するＩＤでないと判定された場合には、図１１の処理を終了させるようにした。しかしながら、必ずしもこのようにする必要はない。例えば、「８」の認識に失敗した部分の次点ＩＤ４０５が、オクターブ付きの音部記号を識別するＩＤでないと判定された場合には、「８」の認識に失敗した部分の次次点ＩＤ４０６が、オクターブ付きの音部記号を識別するＩＤであるか否かを判定する。そして、この判定の結果、次次点ＩＤ４０６が、オクターブ付きの音部記号を識別するＩＤである場合にはステップＳ４０６に進み、そうでない場合には図１１の処理を終了させるようにしてもよい。
【００６４】
次に、図１２のフローチャートを参照しながら、図２のステップＳ２２のパート間誤認識修正処理の一例を説明する。
まず、ステップＳ５０１において、ＣＰＵ１は、図５のフローチャートにおいて、パートテンプレート３０１（の情報）を取得できたか否かを判定する。この判定の結果、パートテンプレート３０１を取得できなかった場合には、図２のステップＳ２３に戻る。
一方、パートテンプレート３０１を取得できた場合には、ステップＳ５０２に進み、ＣＰＵ１は、取得したパートテンプレート３０１（の情報）を用いて、調号修正処理を行う。調号修正処理においては、パートテンプレート３０１（の情報）を用いて、図２のステップＳ１５で認識された調号を修正する。尚、調号修正処理の詳細については後述する。
【００６５】
次に、ステップＳ５０３において、ＣＰＵ１は、取得したパートテンプレート３０１（の情報）を用いて、音部記号修正処理を行う。音部記号修正処理においては、パートテンプレート３０１（の情報）を用いて、図２のステップＳ１３で認識された音部記号を修正する。尚、前述した図９のステップＳ３０２（図１１）のオクターブ付き音部記号修正処理では、１つのパートの情報のみから、音部記号を修正するが、このステップＳ５０３の音部記号修正処理は、複数のパートの情報から、音部記号を修正する。このステップＳ５０３における音部記号修正処理の詳細については後述する。
【００６６】
そして、ステップＳ５０４に進み、ＣＰＵ１は、調号修正処理及び音部記号修正処理以外のパート間誤認識修正処理を行う。前述したようにパート間誤認識修正処理は、複数のパートの情報を用いないと誤認識であると判別することができない部分を、パートテンプレート３０１を用いて修正する処理である。そして、図２のステップＳ２３に戻る。
以上のように本実施形態では、図１２のフローチャートを実行することにより、設定手段の一部が実現される。
【００６７】
次に、図１３のフローチャートを参照しながら、図１２のステップＳ５０２の調号修正処理について説明する。尚、この図１３のフローチャートを開始する前に、ＣＰＵ１は、図２のステップＳ１で得られた楽譜の各パートを認識し、認識したパートが、ドラム譜やリズム譜等の調号の存在しないパートである場合には、そのパートを調号修正処理の対象外とする。すなわち、ここで調号修正処理の対象外としたパートについては、以下に説明する図１３のフローチャートによる処理を実行しない。
まず、ステップＳ６０１において、ＣＰＵ１は、図２のステップＳ１で得られた楽譜の各パートの各小節について、移調量nKeyを算出する。このnKeyの値は、調号のＩＤから、楽典的に決められる数値であり、正負の値が存在するが、本実施形態では、１２半音のうちのどの位置になるかが分かればよいとして、正のみの値とする。このnKeyは、計算式で算出してもよいが、本実施形態では、図１４に示すようなテーブルを予めＨＤＤ４に記憶しておき、各調号のＩＤから算出される"シャープ、フラットの数（nKeyNumの絶対値）"をキーにして、図１４に示すテーブルから取得される。
【００６８】
次に、ステップＳ６０２において、ＣＰＵ１は、図２のステップＳ１で得られた楽譜の各パートの各小節について、移調楽器を考慮した移調量nAddKeyを、以下の（１）式を用いて算出する。
nAddKey＝（nInstKey＋nKey＋９６）ｍｏｄ１２  ・・・（１）
（１）式において、ｍｏｄは、剰余を算出することを表している。nAddKeyについても、本実施形態では、１２半音のうちどの位置になるかが分かればよいとし、（１）式に示すように、得られた値が正になるのに十分な量（（１）式の例では９６）を加えてから剰余をとるようにしている。（１）式の計算の結果、nAddKeyが負の値となった場合には、nAddKeyが正の値になるまで、（nInstKey＋nKey＋９６）に１２を加算して剰余をとる。また、（１）式において、nInstKeyは、図５のステップＳ１０７で取得されたパートテンプレート３０１に含まれる移調楽器設定３０５の内容である。
図１５、図１６は、以上のようにして算出されたnKeyとnAddKeyとの具体例を示す図である。
【００６９】
次に、ステップＳ６０３において、ＣＰＵ１は、図２のステップＳ１で得られた楽譜が、移調楽器を反映した楽譜であるか否かを判定する。ここで、図２のステップＳ１で得られた楽譜が、移調楽器を反映した楽器であるか否かを判定する方法の一例を、図１５、図１６を参照しながら説明する。
まず、ＣＰＵ１は、nKeyの値を小節毎参照し、同じ値を有するnKeyを除くnKeyの数nElseNumを算出する。
【００７０】
図１５に示す例の小節１において、nKeyの値は０、１０、７であるので全て異なる。よって、同じ値を有するnKeyを除くnKeyの数nElseNumは２である。また、図１５に示す例の小節２において、nKeyの値は２、０、９であるので全て異なる。よって、同じ値を有するnKeyを除くnKeyの数nElseNumは２である。
一方、図１６に示す例の小節１において、nKeyの値は０、０、７であるので、同じ値（＝０）を有するnKeyを除くnKeyの数nElseNumは１である。また、図１６に示す例の小節２において、nKeyの値は２、０、９であるので全て異なる。よって、同じ値を有するnKeyを除くnKeyの数nElseNumは２である。
【００７１】
次に、ＣＰＵ１は、nAddKeyの値を小節毎参照し、同じ値を有するnAddKeyを除くnKeyの数nElseNumを算出する。
図１５に示す例の小節１において、nAddKeyの値は１０、１０、１０であるので全て同じである。よって、同じ値を有するnAddKeyを除くnAddKeyの数nElseNumは０である。また、図１５に示す例の小節２において、nAddKeyの値は０、０、０であるので全て同じである。よって、同じ値を有するnAddKeyを除くnAddKeyの数nElseNumは０である。
一方、図１６に示す例の小節１において、nAddKeyの値は１０、０、１０であるので、同じ値（＝１０）を有するnKeyを除くnKeyの数nElseNumは１である。また、図１６に示す例の小節２において、nAddKeyの値は０、０、０であるので全て同じである。よって、同じ値を有するnAddKeyを除くnAddKeyの数nElseNumは０である。
【００７２】
次に、ＣＰＵ１は、各小節のnKeyについて算出したnElseNumを加算すると共に、各小節のnAddKeyについて算出したnElseNumを加算する。そして、例えば、ＣＰＵ１は、nKeyについて算出したnElseNumの加算値の方が、nAddKeyについて算出したnElseNumの加算値よりも大きければ、図２のステップＳ１で得られた楽譜は、移調楽器を反映した楽器であると判定し、そうでなければ、図２のステップＳ１で得られた楽譜は、移調楽器を反映した楽譜でないと判定する。
【００７３】
図１５に示す例では、nKeyについて算出したnElseNumの加算値は４（＝２＋２）であり、nAddKeyについて算出したnElseNumの加算値は０であるので、図２のステップＳ１で得られた楽譜は、移調楽器を反映した楽譜であると判定される。同様に、図１６に示す例では、nKeyについて算出したnElseNumの加算値は３（＝１＋２）であり、nAddKeyについて算出したnElseNumの加算値は１（＝１＋０）であるので、図２のステップＳ１で得られた楽譜は、移調楽器を反映した楽譜であると判定される。
【００７４】
以上のように本実施形態では、移調楽器を反映した楽譜である場合に値が大きくなる、nKeyから算出されるnElseNum（の加算値）と、移調楽器を反映した楽譜である場合に値が小さくなる、nAddKeyから算出されるnElseNum（の加算値）とを比較することにより、図２のステップＳ１で得られた楽譜が移調楽器を反映した楽譜であるか否かを判定するようにしている。
【００７５】
以上のようなステップＳ６０３の判定の結果、図２のステップＳ１で得られた楽譜が移調楽器を反映した楽譜でない場合には、後述するステップＳ６１１に進む。一方、図２のステップＳ１で得られた楽譜が移調楽器を反映した楽譜である場合には、ステップＳ６０４に進む。
ステップＳ６０４に進むと、ＣＰＵ１は、調号の認識に失敗しているか否かを判定する。ここで、調号の認識に失敗しているか否かを判定する方法の一例を、図１５、図１６を参照しながら説明する。
まず、ＣＰＵ１は、nKeyについて算出したnElseNumの加算値と、nAddKeyについて算出したnElseNumの加算値とのうち、小さい方の加算値を得るために使用したnKey又はnAddKeyを各小節について参照し、それらnKey又はnAddKeyの値が全て同じである場合には調号の認識に成功したと判定し、そうでない場合には調号の認識に失敗したと判定する。
【００７６】
図１５に示す例では、nKeyについて算出したnElseNumの加算値（＝４）よりも、nAddKeyについて算出したnElseNumの加算値（＝０）の方が小さい。そして、nAddKeyについて算出したnElseNumの加算値（＝０）を得るために使用したnAddKeyの値は、小節１においても小節２においても全て同じ（＝１０、０）である。したがって、調号の認識に成功したと判定する。
一方、図１６に示す例では、nKeyについて算出したnElseNumの加算値（＝３）よりも、nAddKeyについて算出したnElseNumの加算値（＝１）の方が小さい。そして、nAddKeyについて算出したnElseNumの加算値（＝１）を得るために使用したnAddKeyの値は、小節２においては全て同じ（＝０）であるが、小節１においては１つだけ０となり、他の値（＝１０）と異なる。したがって、トロンボーンの小節１において調号の認識に失敗したと判定する。
【００７７】
以上のようなステップＳ６０４の判定の結果、調号の認識に失敗していない（成功した）と判定された場合には、図１２のステップＳ５０３に戻る。一方、調号の認識に失敗したと判定された場合には、ステップＳ６０５に進む。
ステップＳ６０５に進むと、ＣＰＵ１は、ステップＳ６０４で認識に失敗したと判定された調号を修正する。ここで、調号を修正する方法の一例を、図１６を参照しながら説明する。
まず、ＣＰＵ１は、各小節において、調号の認識に失敗したパートのnAddKeyの値が他の値と同じになるような新たなnKeyの値を、以下の（３）式を用いて算出する。
nKey＝（Ｓ−nInstKey）ｍｏｄ１２  ・・・（３）
（３）式においても、ｍｏｄは、剰余を算出することを表している。また、Ｓは、調号の認識に失敗したパートと異なるパートのnAddKeyの値である。
【００７８】
図１６に示した例では、小節１において、調号の認識に失敗したパート（トロンボーン）と異なるパート（トランペット、アルトサックス）のnAddKeyの値Ｓは１０である。よって、新たなnKeyの値は１０となる。そして、この数値（＝１０）に基づいて、変調すべき調号の種類を決定する。図１４に示すテーブルにおけるnKeyの値がこの数値と同じ値である調号が変更すべき調号となる。例えば、新たなnKeyの値が１０である場合には、図１４に示すテーブルから、変更すべき調号はフラット２個と決定する。尚、図１４のテーブルにおいて、シャープ個数に対応するnKeyの値とフラット個数に対応するnKeyの値とが同じ場合がある。このような場合には、その他の情報に基づいて、変更すべき調号として、シャープ及びフラットの何れかを選択することになる。
そして、ＣＰＵ１は、調号の認識に失敗したパートと異なるパートの内容（調号等）と、調号の認識に失敗したパートの他の小節の内容（調号等）と、調号の認識に成功したパートの他の小節の内容（調号等）と、認識に失敗した調号の配置箇所における次点ＩＤの内容と、認識に失敗した調号よりも前にあるナチュラル（認識に失敗した調号が属する小節にあるナチュラルと、認識に失敗した調号が属する小節よりも前の小節にあるナチュラルとの少なくとも何れか一方）の状態と、認識に失敗した調号が属する小節よりも後の小節にあるナチュラルの状態との少なくとも何れか１つに基づいて修正する。
図１６に示した例のように古いnKeyが０であり、新たなnKeyが０以外である場合には調号を追加することになる。また、古いnKeyが０以外であり、新たなnKeyが０以外である場合には調号を変更することになる。更に、古いnKeyが０以外であり、新たなnKeyが０である場合には、認識された調号を削除することになる。
【００７９】
次に、ステップＳ６０６において、ＣＰＵ１は、ステップＳ６０５において調号を削除したか否かを判定する。この判定の結果、調号を削除していない場合には、図１２のステップＳ５０３に戻る。一方、調号を削除した場合には、認識に失敗した調号は臨時記号である可能性が高いと判定しステップＳ６０７に進む。
ステップＳ６０７に進むと、ＣＰＵ１は、調号として誤認識した音楽記号（削除した調号）を個々の音楽記号に分解する。
次に、ステップＳ６０８において、ＣＰＵ１は、ステップＳ６０７で得られた音楽記号の親となる音楽記号（音符等）を検索する。このとき、その音楽記号が、親となる音楽記号（音符等）の臨時記号であると判定するための閾値（距離）を小さくして、その音楽記号の親となる音楽記号（音符等）を検索する。
【００８０】
次に、ステップＳ６０９において、ＣＰＵ１は、ステップＳ６０７で得られた音楽記号の親となる音楽記号（音符等）を検索することができたか否かを判定する。この判定の結果、音楽記号の親となる音楽記号（音符等）を検索することができなかった場合には、図１２のステップＳ５０３に戻る。一方、音楽記号の親となる音楽記号（音符等）を検索することができた場合には、ステップＳ６１０に進む。
ステップＳ６１０に進むと、ＣＰＵ１は、調号として誤認識した記号（削除した調号）を臨時記号として設定する。そして、図１２のステップＳ５０３に戻る。
【００８１】
ステップＳ６０３において、図２のステップＳ１で得られた楽譜が移調楽器を反映した楽譜でないと判定された場合には、ステップＳ６１１に進む。ステップＳ６１１に進むと、各小節において全パートの調号が同じであるか否かを判定する。この判定の結果、全パートの調号が同じである場合には、図１２のステップＳ５０３に戻る。一方、全パートの調号が同じでない場合には、ステップＳ６１２に進む。
【００８２】
ステップＳ６１２に進むと、ＣＰＵ１は、全パートの調号が同じとなるように、調号を修正する。具体的にＣＰＵ１は、各小節において、nKeyの値が他と異なるパートにおける調号を、nkeyの値が同じである複数のパートにおける調号に修正する。そして、前述したステップＳ６０６に進む。
【００８３】
次に、図１７のフローチャートを参照しながら、図１２のステップＳ５０３の音部記号修正処理について説明する。
まず、ステップＳ７０１において、ＣＰＵ１は、ステップＳ１で得られた楽譜の一部のパートにおいて、音部記号の認識に失敗しているか否かを判定する（すなわち、一部のパートにおいて、他のパートと異なる音部記号が存在していたり、音部記号が存在していなかったりしているか否かを判定する）。この判定の結果、音部記号の認識に失敗していない場合には、図１２のステップＳ５０４に戻る。一方、音部記号の認識に失敗している場合には、ステップＳ７０２に進む。
【００８４】
ステップＳ７０２に進むと、ＣＰＵ１は、ステップＳ７０１で認識に失敗している音部記号に対する次点ＩＤ４０５が記憶されているか否かを判定する。この判定の結果、認識に失敗している音部記号に対する次点ＩＤ４０５が記憶されていない場合には、図１２のステップＳ５０４に戻る。一方、認識に失敗している音部記号に対する次点ＩＤ４０５が記憶されている場合には、ステップＳ７０３に進む。
【００８５】
ステップＳ７０３に進むと、ＣＰＵ１は、ステップＳ７０２で記憶されていると判定された次点ＩＤ４０５に対応する音部記号と、図５のステップＳ１０７で取得されたパートテンプレート３０１の音部記号３０６とが一致するか否かを判定する。この判定の結果、音部記号が一致しない場合には、図１２のステップＳ５０４に戻る。一方、音部記号が一致する場合には、ステップＳ７０４に進む。
ステップＳ７０４に進むと、ＣＰＵ１は、認識に失敗している音部記号をパートテンプレート３０１の音部記号３０６に変更する。そして、図１２のステップＳ５０４に戻る。
【００８６】
尚、図１７では、ステップＳ７０２において、ステップＳ７０１で認識に失敗している音部記号に対する次点ＩＤ４０５が記憶されていないと判定された場合には、図１７のフローチャートの処理を終了するようにしたが、必ずしもこのようにする必要はない。例えば、ステップＳ７０１で認識に失敗している音部記号に対する次点ＩＤ４０５が記憶されていないと判定された場合には、その音部記号に対する次次点ＩＤ４０６が記憶されているか否かを判定する。この判定の結果、次次点ＩＤ４０６が記憶されていない場合には、図１７のフローチャートの処理を終了させる。一方、次次点ＩＤ４０６が記憶されている場合には、その次次点ＩＤ４０６に対応する音部記号と、図５のステップＳ１０７で取得されたパートテンプレート３０１の音部記号３０６とが一致するか否かを判定する。そして、これらが一致する場合にはステップＳ７０４に進み、そうでない場合には図１７のフローチャートの処理を終了させるようにしてもよい。
【００８７】
また、図１７では、ステップＳ７０１で認識に失敗している音部記号に対する次点ＩＤ４０５が記憶されている場合に音部記号を修正するようにしたが、必ずしもこのようにする必要はなく、次点ＩＤ４０５に関わらず、全段落で強制的に音部記号の変更を行うようにしてもよい。このようにする場合には、図１７のステップＳ７０２の処理が少なくとも不要となる。
ただし、より妥当な調号の修正を行うために、次点ＩＤに加え、認識に成功している音部記号を用いて、調号の修正を行うか否かを判定するようにしてもよい。例えば、図１７において、ステップＳ７０２の後に、認識に成功している他の音部記号を参照し、参照した音部記号が、認識に失敗している音部記号に対する次点ＩＤ４０５に対応するものであるか否かを判定し、その判定の結果、参照した音部記号が、認識に失敗している音部記号に対する次点ＩＤ４０５に対応するものである場合にステップＳ７０３を行い、そうでない場合に図１７のフローチャートの処理を終了させるようにしてもよい。
【００８８】
以上のように本実施形態では、スキャナ１１で読み取られた楽譜の画像が認識された後に設定が必要となる情報を含むパートテンプレート３０１を予め記憶しておき、スキャナ１１で読み取られた楽譜に応じたパートテンプレート３０１を複数のパートテンプレートから選び出す。そして、選び出したパートテンプレートを用いて、スキャナ１１で読み取られた楽譜に対し、自動的に設定（修正）を行うようにした。したがって、楽譜を認識した後にユーザが行う設定を従来よりも少なくすることができ、且つ楽譜の認識率を従来よりも向上させることができる。
【００８９】
尚、本実施形態では、パートテンプレート３０１の情報に基づいて、調号や音部記号を楽譜の認識結果に対して設定（修正）する場合を例に挙げて説明したが、前述したように、楽譜の認識結果に対して設定（修正）するのは、調号や音部記号に限定されない。例えば、パートテンプレート３０１に音色に関する情報を含めた場合には、図２のステップＳ１で得られた楽譜に対して、図５のステップＳ１０７で取得されたパートテンプレート３０１に含まれている音色を、状況に応じて（例えばユーザによる操作に基づいて）設定するようにしてもよい。
【００９０】
また、図２のステップＳ５で認識された線数よりも少ない線数がパートテンプレート３０１に設定された場合には、ステップＳ５で認識された線の有効性を、ドット数の割合等に基づいて再度判定したり、パートテンプレート３０１に設定された線数に線数を変更したりすることができる。一方、ステップＳ５で認識された線数よりも多い線数がパートテンプレート３０１に設定された場合には、ステップＳ５で認識された線の上下の想定される位置に線が存在するか否かを再度判定したり、パートテンプレート３０１に設定された線数に線数を変更したりすることができる。
【００９１】
また、図２のステップＳ１７（図９）のパート内認識修正処理の少なくとも一部と、図２のステップＳ２２（図１２）のパート間認識修正処理の少なくとも一部とを、状況に応じて（例えばユーザによる操作に基づいて）行わないようにしてもよい。
【００９２】
また、図１２のステップＳ５０２（図１３）の調号修正処理のステップＳ６０５において、図１５、図１６に示したような情報が得られた段階で、ある小節での調号が、実は臨時記号であると判定できる場合がある。例えば、nKey及びnAddKeyが略全ての小節で同じであり、一部の小節のみ、nElseNumが大きい場合である。このような場合には、ステップＳ６０５で説明した処理を行うことなく、その調号を臨時記号として設定し直すようにする。
【００９３】
以上説明した本発明の各実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体、又はかかるプログラムを伝送する伝送媒体も本発明の実施の形態として適用することができる。また、上記プログラムを記録したコンピュータ読み取り可能な記録媒体などのプログラムプロダクトも本発明の実施の形態として適用することができる。上記のプログラム、コンピュータ読み取り可能な記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
また、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態を示し、楽譜認識装置の構成の一例を示すブロック図である。
【図２−１】本発明の実施形態を示し、ＣＰＵの処理の一例を説明するメインフローチャートである。
【図２−２】本発明の実施形態を示し、図２−１に続くフローチャートである。
【図３】本発明の実施形態を示し、パートテンプレートの一例を示す図である。
【図４】本発明の実施形態を示し、認識の際に候補に挙がった音楽記号を識別するためのＩＤの記憶方法の一例を概念的に示す図である。
【図５】本発明の実施形態を示し、図２のステップＳ８におけるパートテンプレート適用処理の一例を説明するフローチャートである。
【図６】本発明の実施形態を示し、認識パートテンプレート適用表の一例を示す図である。
【図７】本発明の実施形態を示し、パートテンプレート適用処理の結果の表示内容の一例を示す図である。
【図８】本発明の実施形態を示し、図２のステップＳ１０の認識修正処理の一例を説明するフローチャートである。
【図９】本発明の実施形態を示し、図２のステップＳ１７のパート内誤認識修正処理の一例を説明するフローチャートである。
【図１０】本発明の実施形態を示し、オクターブ付き音部記号１の一例を示す図である。
【図１１】本発明の実施形態を示し、図９のステップＳ３０２のオクターブ付き音部記号修正処理の一例を説明するフローチャートである。
【図１２】本発明の実施形態を示し、図２のステップＳ２２のパート間誤認識修正処理の一例を説明するフローチャートである。
【図１３】本発明の実施形態を示し、図１２のステップＳ５０２の調号修正処理について説明するフローチャートである。
【図１４】本発明の実施形態を示し、nKeyとnKeyNumと調号との関係を記憶したテーブルの一例を示す図である。
【図１５】本発明の実施形態を示し、nKeyとnAddKeyの第１の具体例を示す図である。
【図１６】本発明の実施形態を示し、nKeyとnAddKeyの第２の具体例を示す図である。
【図１７】本発明の実施形態を示し、図１２のステップＳ５０３の音部記号修正処理について説明するフローチャートである。
【符号の説明】
【００９５】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  ＨＤＤ
５  ＦＤＤ
６  ＭＩＤＩ
７  スキャナインタフェース回路
８  プリンタインタフェース回路
９  キーボードインタフェース回路
１０  ＣＲＴインタフェース回路
１１  スキャナ
１２  プリンタ
１３  キーボード
１４  ＣＲＴ
１００  楽譜認識装置
３０１  パートテンプレート
【図１】
0005154886.tif 000002
【図２−１】
0005154886.tif 000003
【図２−２】
0005154886.tif 000004
【図３】
0005154886.tif 000005
【図４】
0005154886.tif 000006
【図５】
0005154886.tif 000007
【図６】
0005154886.tif 000008
【図７】
0005154886.tif 000009
【図８】
0005154886.tif 000010
【図９】
0005154886.tif 000011
【図１０】
0005154886.tif 000012
【図１１】
0005154886.tif 000013
【図１２】
0005154886.tif 000014
【図１３】
0005154886.tif 000015
【図１４】
0005154886.tif 000016
【図１５】
0005154886.tif 000017
【図１６】
0005154886.tif 000018
【図１７】
0005154886.tif 000019