(57)【特許請求の範囲】
【請求項１】
音符を含む楽譜の全ての記号を認識する記号認識手段と、楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ手段と、クラッシュシンバルの出現頻度を計算する出現頻度計算手段と、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別手段と、クラッシュ・トップシンバルの再割り当てを行う再割り当て手段と、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て手段と、該機能で割り当てられた楽器データに基づいて演奏可能な楽譜データ形式に変換するデータ変換手段とを有して実行される楽譜認識方法において、
記号認識手段により行われる、音符を含む楽譜の全ての記号を認識する記号認識工程と、
表記法当てはめ手段により行われる、上記記号認識工程によって得られた情報に基づいて楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ工程と、
出現頻度計算手段により行われる、クラッシュシンバルの出現頻度を計算する出現頻度計算工程と、
しきい値判別手段により行われる、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別工程と、
再割り当て手段により行われる、上記しきい値判別工程でしきい値を超えると判断された場合に、クラッシュ・トップシンバルの再割り当てを行う再割り当て工程と、
楽器割り当て手段により行われる、前記表記法当てはめ工程により当てはめられたドラム表記法乃至再割り当て工程によりドラム楽器の再割り当てが行われたドラム表記法に従って、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て工程と、
データ変換手段により行われる、該楽器割り当て工程で割り当てられた楽器データに基づいて、ＭＩＤＩデータなどの音長及び音高を指定し演奏可能な楽譜データ形式に変換するデータ変換工程と
を実行することを特徴とする楽譜認識方法。
【請求項２】
請求項１記載の楽譜認識方法において、前記出現頻度計算工程で、小節毎のクラッシュシンバル数を求め、その出現頻度を判定することを特徴とする請求項１記載の楽譜認識方法。
【請求項３】
請求項２記載の楽譜認識方法において、認識結果を時系列的にソートすることなしに、認識された小節線の数、小節繰り返し記号等の認識数から、小節毎のクラッシュシンバル数を推定することを特徴とする請求項２記載の楽譜認識方法。
【請求項４】
請求項１乃至３記載の楽譜認識方法において、出現頻度計算工程におけるクラッシュシンバルの出現頻度の計算を段落毎に行い、頻度の高いと判定された段落の数、全段落に対する頻度の高いと判定された段落の割合、或いは各条件の組み合わせによって最終判定を行うことを特徴とする請求項１乃至３記載の楽譜認識方法。
【請求項５】
請求項１乃至４記載の楽譜認識方法において、前記しきい値判別工程で出現頻度に対する判定を行うために使用されるしきい値を、認識されたテンポ記号、強弱記号或いはその両方によって、曲全体或いはブロック毎に変化させることを特徴とする請求項１乃至４記載の楽譜認識方法。
【請求項６】
楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、
該プログラムの実行により、音符を含む楽譜の全ての記号を認識する記号認識手段と、楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ手段と、クラッシュシンバルの出現頻度を計算する出現頻度計算手段と、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別手段と、クラッシュ・トップシンバルの再割り当てを行う再割り当て手段と、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て手段と、該機能で割り当てられた楽器データに基づいて演奏可能な楽譜データ形式に変換するデータ変換手段とが該コンピュータ上に実現され、
記号認識手段により行われる、音符を含む楽譜の全ての記号を認識する記号認識工程と、
表記法当てはめ手段により行われる、上記記号認識工程によって得られた情報に基づいて楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ工程と、
出現頻度計算手段により行われる、クラッシュシンバルの出現頻度を計算する出現頻度計算工程と、
しきい値判別手段により行われる、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別工程と、
再割り当て手段により行われる、上記しきい値判別工程でしきい値を超えると判断された場合に、クラッシュ・トップシンバルの再割り当てを行う再割り当て工程と、
楽器割り当て手段により行われる、前記表記法当てはめ工程により当てはめられたドラム表記法乃至再割り当て工程によりドラム楽器の再割り当てが行われたドラム表記法に従って、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て工程と、
データ変換手段により行われる、該楽器割り当て工程で割り当てられた楽器データに基づいて、ＭＩＤＩデータなどの音長及び音高を指定し演奏可能な楽譜データ形式に変換するデータ変換工程と
を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
請求項６記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記出現頻度計算工程を実施するうえで、小節毎のクラッシュシンバル数を求め、その出現頻度を判定することを特徴とする請求項６記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
請求項７記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体において、認識結果を時系列的にソートすることなしに、認識された小節線の数、小節繰り返し記号等の認識数から、小節毎のクラッシュシンバル数を推定することを特徴とする請求項７記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
請求項６乃至８記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体において、出現頻度計算工程を実施するうえで、クラッシュシンバルの出現頻度の計算を段落毎に行い、頻度の高いと判定された段落の数、全段落に対する頻度の高いと判定された段落の割合、或いは各条件の組み合わせによって最終判定を行うことを特徴とする請求項６乃至８記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
請求項６乃至９記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記しきい値判別工程を実施するうえで、出現頻度に対する判定を行うために使用されるしきい値を、認識されたテンポ記号、強弱記号或いはその両方によって、曲全体或いはブロック毎に変化させることを特徴とする請求項６乃至９記載の楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽譜のうち、特にドラム譜の読み取りを可能にする楽譜認識方法及び楽譜認識を行うプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
通常楽譜を機械的に認識させる場合は、五線認識、図５に示されるような段落の認識の後、五線の消去等、種々の方法を使いながら、図６(ａ)に示される黒玉ｂや同図(ｂ)に示される白玉ｗなどの音符の符頭、同図(ｃ)に示される該符頭に連続する符尾ｔ、更に同図(ｄ)に示される該符尾に連続する旗ｆ、その他を認識している。
これに対し、ドラムセットの楽譜表記であるドラム譜は、楽器の歴史的要因や、演奏上の要因から、楽譜表記が固定していない。
従ってドラム譜を機械的に認識させ、正しく演奏させるためには、ドラム譜の記号を認識させた後、その記号が実際にはどのようなドラム音であるかを指定する必要がある。そのために、本発明者等は、ドラム表記法の推定を自動で行って指定をすることで、少ない操作で演奏可能なデータ形式に落とすことができる新たな提案を行った。
【０００３】
【発明が解決しようとする課題】
ところが、クラッシュシンバルとトップシンバルの指定については、演奏のパターンとして、その判断が演奏者に任され、ドラム楽器の指定が楽譜に明記されていない場合も多く、実際には上記推定を行う構成でも、正しい表記法の推定を行うことは困難で、トップシンバルに割り当てるべき音符をクラッシュシンバルに割り当ててしまうことがあった。
【０００４】
本発明は従来技術の上記問題に鑑み創案されたもので、ドラム表記法の推定に際し、クラッシュシンバルとトップシンバルの割り当てを適切に且つ自動的に行える構成を提供せんとするものである。
【０００５】
【課題を解決するための手段】
そのため本願請求項１に係る発明の構成は、
音符を含む楽譜の全ての記号を認識する記号認識手段と、楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ手段と、クラッシュシンバルの出現頻度を計算する出現頻度計算手段と、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別手段と、クラッシュ・トップシンバルの再割り当てを行う再割り当て手段と、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て手段と、該機能で割り当てられた楽器データに基づいて演奏可能な楽譜データ形式に変換するデータ変換手段とを有して実行される楽譜認識方法において、
記号認識手段により行われる、音符を含む楽譜の全ての記号を認識する記号認識工程と、
表記法当てはめ手段により行われる、上記記号認識工程によって得られた情報に基づいて楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ工程と、
出現頻度計算手段により行われる、クラッシュシンバルの出現頻度を計算する出現頻度計算工程と、
しきい値判別手段により行われる、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別工程と、
再割り当て手段により行われる、上記しきい値判別工程でしきい値を超えると判断された場合に、クラッシュ・トップシンバルの再割り当てを行う再割り当て工程と、
楽器割り当て手段により行われる、前記表記法当てはめ工程により当てはめられたドラム表記法乃至再割り当て工程によりドラム楽器の再割り当てが行われたドラム表記法に従って、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て工程と、
データ変換手段により行われる、該楽器割り当て工程で割り当てられた楽器データに基づいて、ＭＩＤＩデータなどの音長及び音高を指定し演奏可能な楽譜データ形式に変換するデータ変換工程と
を実行することを特徴としている。
【０００６】
前記請求項６の記録媒体の構成は、これらの機能を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体として提供するものである。即ち、
楽譜認識プログラムを記憶したコンピュータ読み取り可能な記録媒体であって、
該プログラムの実行により、音符を含む楽譜の全ての記号を認識する記号認識手段と、楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ手段と、クラッシュシンバルの出現頻度を計算する出現頻度計算手段と、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別手段と、クラッシュ・トップシンバルの再割り当てを行う再割り当て手段と、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て手段と、該機能で割り当てられた楽器データに基づいて演奏可能な楽譜データ形式に変換するデータ変換手段とが該コンピュータ上に実現され、
記号認識手段により行われる、音符を含む楽譜の全ての記号を認識する記号認識工程と、
表記法当てはめ手段により行われる、上記記号認識工程によって得られた情報に基づいて楽譜のドラムパートにおけるドラム表記法の当てはめを行う表記法当てはめ工程と、
出現頻度計算手段により行われる、クラッシュシンバルの出現頻度を計算する出現頻度計算工程と、
しきい値判別手段により行われる、該出現頻度が所定のしきい値を超えるか否かを判定するしきい値判別工程と、
再割り当て手段により行われる、上記しきい値判別工程でしきい値を超えると判断された場合に、クラッシュ・トップシンバルの再割り当てを行う再割り当て工程と、
楽器割り当て手段により行われる、前記表記法当てはめ工程により当てはめられたドラム表記法乃至再割り当て工程によりドラム楽器の再割り当てが行われたドラム表記法に従って、認識されたドラムパートの記号に実際の発音楽器を割り当てる楽器割り当て工程と、
データ変換手段により行われる、該楽器割り当て工程で割り当てられた楽器データに基づいて、ＭＩＤＩデータなどの音長及び音高を指定し演奏可能な楽譜データ形式に変換するデータ変換工程と
を実行させるための楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体として提供している。
【０００７】
本発明者等は、ドラムセットの演奏パターンとして、「クラッシュシンバルは、小節の全ての拍で叩くような連打が、多くの小節にわたり続くような場合は殆どないのに対して、トップシンバルは、このような奏法を行うことが多い」という傾向に気付き、上記構成の創案に至った。それ故、出現頻度計算工程（機能）で、クラッシュシンバルの出現頻度が計算され、しきい値判別工程（機能）で、該出現頻度が所定のしきい値を超えるか否かが判定され、該機能でしきい値を超えると判断された場合に、再割り当て工程（機能）で、クラッシュ・トップシンバルの再割り当てを行うことによって、前記表記法当てはめ工程（機能）による表記法推定を補完することが可能となる。そのため、ドラム譜の認識率を向上させることができ、ユーザに負担をかけずにドラム譜を認識させて、正しい演奏を行わせることができるようになる。
【０００８】
【発明の実施の形態】
以下本発明の一実施形態を添付図面に基づき説明する。図１は本発明に係る楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体を後述するフレキシブルディスクドライブＦＤＤ５等の外部記憶装置（或いはＣＤ−ＲＯＭドライブ等）で読み込ませて稼動する楽譜認識装置の実施例構成を示すブロック図である。この装置は、パソコンなどの電子計算機の構成に、スキャナやＭＩＤＩインターフェース回路を付加したものである。ＣＰＵ１は、ＲＯＭ２或いはＲＡＭ３に格納されるプログラムに基づき、楽譜認識装置全体の制御を行う中央演算処理装置である。また予め設定された所定の周期でＣＰＵ１に割り込みをかけるタイマ回路を内蔵している。ＲＡＭ３はプログラムエリアの他、画像データバッファ、ワークエリア等として使用される。ハードディスク装置ＨＤＤ４及びフレキシブルディスクドライブＦＤＤ５は、プログラム及び画像データ、演奏データ等を格納する。ＣＲＴ６はＣＰＵ１の制御に基づき、ＣＲＴインターフェース回路７から出力される映像情報を表示し、キーボード８から入力された情報は、キーボードインターフェース回路９を経てＣＰＵ１に取り込まれる。プリンタ１０は、ＣＰＵ１の制御に基づき、プリンタインターフェース回路１１から出力される印字情報を印字する。
【０００９】
スキャナ１２は、例えば（印刷された）楽譜を光学的に走査して、２値、グレースケール或いはカラーの画像データに変換するものであり、フラットベッド型、ハンディ型、フィーダ型等任意のタイプのスキャナを使用できる。スキャナ１２によって読み取られた画像情報は、スキャナインターフェース回路１３を介して、ＲＡＭ３或いはＨＤＤ４に取り込まれる。ＭＩＤＩインターフェース回路１４は、音源モジュール等の外部のＭＩＤＩ機器との間でＭＩＤＩデータの送受信を行う回路である。バス１５は、本楽譜認識装置内の各回路を接続し、各種データ、プログラム、アドレス等をやり取りさせている。なお、この他にマウスなどのポインティングデバイスやＲＳ２３２Ｃ等のシリアルインターフェース回路等を備えていても良い。
【００１０】
図２はＣＰＵ１のメイン処理を示すフローチャートである。ステップＳ１においては、スキャナ１２によって楽譜のイメージをＲＡＭ３に取り込む。画像は２値の画像データとして取り込む。ステップＳ２においては、かすれやドットノイズ等を軽減するために、図形融合等の画質平滑化処理を行う。ステップＳ３においては、解像度と濃度の情報を得ると共に、後段における五線検出の基準データを得るために、後述する画質チェック処理を行う。楽譜の認識処理においては、解像度及び濃度が所定の範囲から外れると認識率が低下してしまうので、ステップＳ３においては、これらの値が、所定の範囲内に入っているか否かがチェックされる。ステップＳ４においては、ステップＳ３におけるチェック結果が画質ＯＫであるか否かが判定され、結果がＯＫでない場合にはステップＳ１に戻って、解像度や濃度を変えて再度取り込みを行う。ステップＳ５においては、五線認識を行う。五線認識処理において、五線走査開始位置検出処理と五線シフト量の検出処理が行われる。ステップＳ６においては、段落認識処理を行う。この処理は、大きく、段落認識処理と、大かっこ認識処理に分かれる。段落認識処理においては、画像全体で五線を検出し、五線同士で左端が略同じ場所にある五線の組を探し、五線の端同士が、黒画素で結ばれているかどうかを検査し、段落を認識する。ステップＳ７においては、段落の認識結果を表示して、段落認識結果が正しいか否かを利用者にチェックさせることにより、ＯＫか否かが判定され、結果がＯＫでない場合にはステップＳ８に移行して、段落認識結果の修正が行われる。尚、五線認識が失敗した場合には、その後の処理が行えないので、解像度や濃度を変更して再度画像を取り込む必要がある。従ってステップＳ７においては、まず五線の認識結果を表示し、正しいか否かを利用者に判定させ、もし正しくない場合には、Ｓ１に戻ってイメージを再度取り込み、また五線が正しく認識されている場合には、段落認識結果を表示し、チェックさせるようにしても良い。
【００１１】
ステップＳ９においては、ユーザにより各段落のドラムパートを選択させる。その後ステップＳ１０において、ドラムパートはドラム譜としてその記号認識を行う（請求項１の記号認識工程、請求項６の記号認識機能に相当）。全てのページで記号の認識が終了した後、ステップＳ１１（図３に詳述）において、ドラムパートに関して曲全体でドラム表記法の当てはめと該表記法に従った楽器の割り当てを行う。本構成では、ドラム表記法当てはめ結果の修正インターフェースを備えていない。これは、認識結果が間違っていれば、認識された楽譜記号を修正することで対応するからである。最後にステップＳ１２において、割り当てられた発音楽器に対して、その音長及び音高を指定した演奏可能な楽譜データ形式に変換する（請求項１のデータ変換工程、請求項６のデータ変換機能に相当）。
【００１２】
図３は、上記ステップＳ１１のドラム表記法の当てはめと該表記法に従った楽器の割り当て処理の詳細なステップを示している。この処理では、ステップＳ１１０において、ステップＳ１０で得られたシンバル音高の音符データを取得する。具体的には、夫々の音高での夫々の符頭の種類毎の数等を取得することになる。次にステップＳ１１１において、前述のデータに基づき、変換テーブルの割り当て処理により、ドラム表記法の判定がなされる（請求項１の表記法当てはめ工程、請求項６の表記法当てはめ機能に相当）。更にステップＳ１１２において、クラッシュ・トップシンバルの再割り当てが必要か否かが判定され（図４において詳述、請求項１の出現頻度計算工程及びしきい値判別工程、請求項６の出現頻度計算機能及びしきい値判別機能に相当）、必要な場合にその再割り当て処理がなされる（図４のステップＳ１１２４、請求項１の再割り当て工程及び請求項６の再割り当て機能に相当）。最後にステップＳ１１３において、ステップＳ１１１又はＳ１１１とＳ１１２で推定されたドラム表記法に従って、認識されたドラムパートの記号に実際の発音楽器を割り当てる処理がなされる（請求項１の楽器割り当て工程、請求項６の楽器割り当て機能に相当）。
【００１３】
以下ドラム譜標準パターンへの当てはめ処理によるシンバル系ドラム楽器の当てはめ処理を以下に詳述する。
Ｓ１１０の処理で、以下の情報について取得する。
▲１▼夫々の音高での夫々の符頭の数
▲２▼夫々の音高での夫々の符頭に８分音符より短い音符があるかどうか
▲３▼夫々の音高での夫々の符頭でアクセントが付いているものの割合
▲４▼符頭（◇）の音符が存在するか否かの論理値設定
また符頭（○）の音符をハイハットオープンにする処理や、符頭（△）や符頭(Ｃ)をトップシンバルに置き換える処理はここで行う。
【００１４】
Ｓ１１０の処理では夫々の音高での夫々の符頭の数を求めたが、Ｓ１１１の変換テーブルの割り当て処理では、この情報テーブルを音高が低い方から走査し、実際のシンバルの音高を求める。最初に見つかった音高が第１の音高とし、次に見つかった音高が第２の音高とし、それ以降は第２の音高に正規化する。但し、第１の音高の音符の数が極端に少ない場合、音符の誤認識の可能性が高いので、その音符は削除指定し、シンバルの音高の検出結果をずらしても良い。特に見つかった音高が３段以上になった場合に、この処理が有効である。
次にドラム当てはめ変換テーブルを作成する。変換テーブルは、２つの音高で、夫々の符頭の種類とアクセント等の係りの状態に応じて場合分けされた要素について、音符がその状態であった場合の割り当て楽器の種類を書き込めるようにする。
音符状態の場合分けとしては、ＣＴ＿ＰＥＫＥ＿ＮＵＮ［符頭（×）で係りなし］、ＣＴ＿ＰＥＫＥ＿ＣＬＳ［符頭（×）で（ ＋ ）が係っている］等のようになる。また楽器割り当ての種類としては、ＤＮ＿ＨＨＣＬＯＳＥ（ハイハットクローズ）、ＤＮ＿ＳＩＤＥＨＡＬＦ（クラッシュシンバルの２分音符）などである。検出されたシンバルの音高数等によって、表記をタイプ分けし、夫々のタイプに応じて変換テーブルに楽器を割り当てる。タイプ分けは、例えば下記表１に示すとおりである。
【００１５】
【表１】
0003649886.tif 000002
【００１６】
また変換テーブルへの楽器の割り当ては、上記処理前提に基づいて、最も妥当なものを当てはめる。
即ち、タイプ１なら、全てハイハットであるとするのが妥当である。もちろん前提条件により、通常はハイハットクローズで、（ °）が係っていれば、ハイハットオープンとする。
タイプ２では、符頭（×）以外はクラッシュシンバルの２分音符（全音符）とするのが妥当である。この場合、符頭（×）でアクセント付きのものはクラッシュシンバルとする。変換テーブルのＣＴ＿ＰＥＫＥ＿ＡＣＣ［符頭が（×）で、且つアクセント付き］を、ＤＮ＿ＳＩＤＥ（クラッシュシンバル）、符頭（×）以外の変換テーブルをＤＮ＿ＳＩＤＥＨＡＬＦ（クラッシュシンバルの２分、全音符）に設定する。
タイプ２３では、下段は全てハイハットシンバルとし、上段については、以下のようになる。
符頭（×）はトップシンバルとする。
また全音符が存在し、全音符と同じ符頭が全音符以外に存在すれば、全音符はクラッシュシンバルの全音符であり、全音符と同じ符頭の音符をクラッシュシンバルの２分音符、全音符と異なる符頭（もう一方）をクラッシュシンバルとする。
全音符が存在し、全音符と同じ符頭が全音符以外に存在しないか、全音符が存在しない場合、符頭（◇）が存在すれば、符頭（◇）をクラッシュシンバル２分音符、もう一方をクラッシュシンバルの４分音符とし、符頭（◇）が存在しなければ、数が少ない方をクラッシュシンバル２分音符、もう一方をクラッシュシンバルの４分音符とする。
全音符が存在しなくて、符頭（◇）が存在すれば、符頭（◇）をクラッシュシンバル２分音符、もう一方をクラッシュシンバル４分音符とする。
上記表記法は、最も確率が高いものであるが、例えばタイプ２では符頭×以外がクラッシュシンバルの４分音符であり、符頭（×）にアクセントが付いたものがハイハットである場合もあり得る。
【００１７】
変換テーブルの割り当て処理が終えて、ステップＳ１１２において、クラッシュ・トップシンバルの再割り当てが必要か否かが判定され、必要な場合にその再割り当て処理がなされる。この処理については後述する。そしてステップＳ１１３の処理で楽器の割り当てがなされる。即ち認識結果を走査しながら、夫々の音高の夫々の符頭、記号の係り具合に対応して、変換テーブル上の楽器を割り当てる。そして変換テーブルの値がＤＮ＿ＳＩＤＥＨＡＬＦ等の２分音符を指定している場合、当てはめ前に元々４分音符として認識されている場合には音符ＩＤを２分音符に変換する。また変換テーブルに削除の指定（ＤＮ＿ＭＡＴＣＨＩＮＧＮＯＮＥ）があった場合には、認識記号を削除する（ＩＤ＝ＩＤ＿ＤＥＬＥＴＥＤ）。
【００１８】
図４は、記ステップＳ１１２のクラッシュ・トップシンバルの再割り当て処理の詳細なステップを示している。この処理では、ステップＳ１１２０において、再割り当てを行うべき表記タイプか否かの判定が行われる。その前提として、ステップＳ１１１における変換テーブルの割り当て処理で、シンバルの表記タイプの判定がなされ、変換テーブルに変換値がセットされている必要がある。この再割り当てを行うかの判定は、変換テーブルの割り当て処理によって求められた上述の表記タイプのうち、「トップシンバルの割り当てがなく、更にクラッシュシンバルのみで割り当てられている部分を、トップシンバルとクラッシュシンバルに分けて再割り当て可能な」ものを選ぶことで、可能となる。
【００１９】
上記ステップで再割り当て可能と判定された場合は、ステップＳ１１２１以下で実際に再割り当てを行うべきか否かを判定する。判定のための基準値としては様々なものが適用可能であるが、本実施例では、楽譜記号の時系列の並び（即ち認識された記号を時系列的にソートして得られる並び）を考慮せずに判定している。このように時系列の判定を行わないようにすることによって、認識記号をＸ座標（譜面の音楽記号のシーケンス）でソートする必要がなくなり、処理時間の短縮につながる。
【００２０】
ステップＳ１１２１において、各段落で小節数に対するクラッシュシンバルの出現頻度を計算する（請求項１の出現頻度計算工程、請求項６の出現頻度計算機能に相当）。即ち１曲中のドラムパートを走査しながら、各段落で認識された記号のうち、小節線、省略記号（繰り返し等がある時に使用する、１小節省略、２小節省略、４小節省略・・・）、及びクラッシュシンバルの数を求める。
小節線については、五線の始点・終点付近にあるものはカウントから除外する。また小節の中断位置にある小節線は１本としてカウントする。こうすることによって、小節線の数＋１が、小節数となるからである。
次に省略記号の数だけ小節数を減らす。即ち１小節省略なら１小節、４小節省略なら４小節・・・というように減らす。本構成では、時系列の並びを考慮していないため、段落中に省略記号があってもクラッシュシンバルと省略記号の対応がとれず、省略記号に応じてクラッシュシンバル数を増加させることができない。しかし省略記号分の小節数を減算すれば、時系列的にクラッシュシンバルと省略記号の対応をとらなくても頻度としては同等の値を得ることができる。この結果小節数が０以下になる場合には、省略記号による小節数の減算を行う前の小節数に戻す。
更に求められた小節数（barNum）とクラッシュシンバル数（craNum）から、小節当たりのクラッシュシンバル数（出現頻度craNumPerBar）を求める。例えばその計算式は、下式数１のようになる。
【００２１】
【数１】
craNumPerBar＝（craNum×１０）／barNum
【００２２】
クラッシュシンバルとして出現頻度が多いか少ないかを判定するしきい値１を予め設けておき、上記クラッシュシンバルの出現頻度（craNumPerBar）が、該しきい値１より大きいか少ないかの判定（請求項１のしきい値判別工程、請求項６のしきい値判別機能に相当）を行い、判定結果を段落毎に保存する。
【００２３】
ステップＳ１１２２において、各段落毎の判定結果から曲全体での判定を導く。まず、全段落でのしきい値１を超えた段落数をカウントする。また全段落数に対するしきい値１を超えた段落数の割合も求める。
【００２４】
ステップＳ１１２３において、上記値により再割り当てを行うか否かの判定（同じく請求項１のしきい値判別工程、請求項６のしきい値判別機能に相当）を行う。即ちしきい値１を超えた段落数が、別の或るしきい値２（thres２）以上であるか、または全段落数に対するしきい値１を超えた段落数の割合が、更に別の或るしきい値３（thres３）以上である場合には、再割り当てを行うと判定する。
【００２５】
ステップＳ１１２４において、上記判定で再割り当てを行うべきと判定された場合、再割り当て処理を行う。この再割り当て処理は、変換テーブルの割り当て処理によって判定された元々のドラム表記タイプにより、個別に対応することになる。
例えば、元々の表記タイプが、［タイプ21］「音高が２つで、そのうち上の方の音高に符頭（×）とそれ以外に１種類が存在し、符頭（×）以外の音符の音長が４分音符以長の場合」であり、
再割り当てが行われない場合（最初のドラム楽器の割り当て処理のみ行われた場合）は、「上の音高について、符頭（×）はクラッシュシンバル、それ以外はクラッシュシンバル２分音符」と変換テーブルに設定されているところを、
再割り当てを行う場合、「上の音高について、符頭（×）はトップシンバル、それ以外はトップシンバル２分音符」とする。但し、アクセントが付いている場合は、「符頭（×）はクラッシュシンバル、それ以外はクラッシュシンバル２分音符」と変更すれば良い。
【００２６】
このようにして再割り当て処理がなされたら、図３のステップＳ１１３で、楽器の割り当てがなされ、更に図２のステップＳ１２において、上記の楽譜認識から明らかになっているドラム譜の音符の音高・音長に基づき、演奏可能な楽譜データ形式に変換する。
【００２７】
以上のようにしてドラム譜の表記を認識することにより、ユーザに任されていたクラッシュシンバルとトップシンバルの割り当てを適切に行うことが可能になる。また以上の処理は自動的に行われるため、ドラム譜に関する知識のないユーザにも、その利用が可能となる。
【００２８】
上記実施形態構成の他、以下のような他の実施形態構成も考えられる。
（他の実施形態１）
上記構成では、再割り当て処理を行うか否かの判定を、一旦段落毎の判定を行い、その後曲全体で段落毎の判定の集計という方式で行っていたが、最初から曲全体で判定を行うようにする。即ち、曲全体について、小節数、省略記号数、クラッシュシンバル数を求め、前記構成と同様な数式により１小節当たりのクラッシュシンバル数を求める。この値がしきい値よりも大きいか小さいかで、再割り当てを行うか否かを決定する。
【００２９】
（他の実施形態２）
最初の実施形態構成において、再割り当て処理を行うか否かの判定をする際に、認識記号の時系列の並びを考慮していなかったが、本構成ではそれを考慮して行う。
即ち、全段落を走査する際、まず各段落の認識結果をＸ座標でソートし、時系列的に前にあるものからアクセスしながら、小節毎のクラッシュシンバル数を計数していく。この数を配列データとして残しておくが、同時に省略記号の有無、その種類情報も各小節に対応した配列データとして残す。
全段落の走査が終了した後、省略記号の繰り返し数に基づき、小節毎のクラッシュシンバル数を修正する。即ち省略１小節記号があった場合には、前の小節のクラッシュシンバル数をコピーする等して、修正を行う。それによって初めて時系列の並びを考慮して正確な再割り当ての判定が可能となる。
その後、下式数２の全小節数（allbarNum）に対する、クラッシュシンバル数が所定の個数を超えた小節数（barNumOvercraNum）の割合（countbarNumPerallbarNum）を求め、その割合によって再割り当て処理を行うか否かを決定する。以上の場合、時系列のソートを行っているため、小節数という判定が可能になっている。従って小節線のカウント等は行う必要がない。
【００３０】
【数２】
countbarNumPerallbarNum＝(barNumOvercraNum×10)／allbarNum
【００３１】
（他の実施形態３）
本構成では、再割り当ての判定を行う際に、クラッシュシンバルの頻度が高い部分の連続性を考慮する。時系列ソートを行う場合は小節の連続性、そうでない場合は段落の連続性を各判定し、判定条件に加える。
【００３２】
（他の実施例４）
本構成では、テンポ、強弱情報を考慮して再割り当ての判定を行う。
「Andante」等のテンポ記号を認識している場合、これを判定条件に加えることができる。即ち、テンポが遅い場合、曲調は静かな場合が多く、クラッシュシンバルよりもトップシンバルを主体とすることが多い。よって、認識されたテンポによって、判定のしきい値を変化させることができる。テンポが遅いほど、クラッシュシンバルの頻度が低くても再割り当て処理に進めるように、しきい値の値を低く設定する。
テンポ記号は、段落の最初のみに表記される場合が多いので、頻度計算のループ時、テンポ記号だけは全てのパートで検出する。ループ後曲全体で、テンポ記号から速度の平均をとり、この値によりしきい値を変化させる。またテンポ記号の存在する箇所でブロック分けし、ブロック毎にしきい値を変化させても良い。更にブロック分けするか否かを、検出されたテンポ記号の速度のばらつきにより変更しても良い。
以上と同様の理由で、認識された強弱記号を判定の条件に加えることもできる。即ち、音が弱いほど、クラッシュシンバルの頻度が低くても、再割り当て処理に進めるようにする。もちろんテンポと強弱の両情報を使って再割り当て処理を行うようにしても良い。
【００３３】
尚、以上の再割り当て処理を行うか否かを設定するユーザインターフェースを設け、ユーザの判断を反映させても良い。
ある種の音楽のジャンル（ハードロック等）では、クラッシュシンバルで全ての拍を叩くような奏法が多く行われる場合もある。このような場合に上記のような再割り当て処理がなされると、正しい楽器割り当てとは異なる割り当て、即ち誤認になってしまう。
これを解決するためには、認識設定として、クラッシュシンバル・トップシンバルの再割り当てを行うか否かの設定を、ユーザに行わせた方が良いため、上記のユーザインターフェースを設ける必要がある。
またその設定は、音楽ジャンルの選択でも良い。このようにすると、他の割り当てアルゴリズム変更も可能になる。例えばボサノバの場合、スネアドラムではなく、リムショットにする等のジャンルによる設定が可能になる。
【００３４】
【発明の効果】
以上詳述した本発明の構成によれば、比較的簡単な処理で、楽譜に明記されていない場合もあるクラッシュシンバルとトップシンバルの割り当てを、自動的に、しかも適切に判断することができるようになる。そのため、認識結果の修正のための作業工数を更に軽減することが可能となる。
【図面の簡単な説明】
【図１】本発明に係る楽譜認識プログラムを記録したコンピュータ読み取り可能な記録媒体を外部記憶装置で読み込ませて稼動する楽譜認識装置の実施例構成を示すブロック図である。
【図２】ＣＰＵのメイン処理を示すフローチャートである。
【図３】ドラム表記法当てはめ処理を示すフローチャートである。
【図４】クラッシュシンバル・トップシンバルの再割り当て処理を示すフローチャートである。
【図５】楽譜上の段落の説明図である。
【図６】認識対象たる音符の黒玉・白玉の符頭、符尾及び旗を示す説明図である。
【符号の説明】
１      ＣＰＵ
２      ＲＯＭ
３      ＲＡＭ
４      ハードディスク装置
５      フレキシブルディスクドライブ
６      ＣＲＴ
７      ＣＲＴインターフェース回路
８      キーボード
９      キーボードインターフェース回路
１０      プリンタ
１１      プリンタインターフェース回路
１２      スキャナ
１３      スキャナインターフェース回路
１４      ＭＩＤＩインターフェース回路
１５      バス
【図１】
0003649886.tif 000003
【図３】
0003649886.tif 000004
【図２】
0003649886.tif 000005
【図４】
0003649886.tif 000006
【図５】
0003649886.tif 000007
【図６】
0003649886.tif 000008