(57)【特許請求の範囲】
【請求項１】
比較する２つのフレーズの各々を所定の単位長の区間に分割するフレーズ分割手段と、
該分割された２つのフレーズの対応する区間同士の音程を求め、該音程毎の出現頻度の分布を取る分布検出手段と、
該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定する判定手段と、
を備えたことを特徴とするフレーズ分析装置。
【請求項２】
比較する２つのフレーズの各々を所定の単位長の区間に分割するフレーズ分割手段と、
該分割された２つのフレーズの対応する区間同士の音程を求め、該音程毎の出現頻度の分布を取る分布検出手段と、
該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定する判定手段と、
前記分布の最大となった音程を２つのフレーズ間の移調量とする移調量設定手段と、
を備えたことを特徴とするフレーズ分析装置。
【請求項３】
前記分布検出手段は、前記２つのフレーズの小節線を一致させて前記区間同士の音程を求めることを特徴とする請求項１または請求項２記載のフレーズ分析装置。
【請求項４】
さらに前記２つのフレーズのうちの比較元フレーズの調の種類と主音が解っている場合、前記一致と判定された比較対象フレーズの調の種類は比較元フレーズのもとの同じとし、該一致と判定された比較対象フレーズの調の主音を比較元フレーズの主音に前記移調量だけ加算した値とする調設定手段、を備えたことを特徴とする請求項２記載のフレーズ分析装置。
【請求項５】
比較する２つのフレーズの各々を所定の単位長の区間に分割するステップと、
該分割された２つのフレーズの対応する区間同士の音程を求めるステップと、
該音程毎の出現頻度の分布を取るステップと、
該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定するステップと、
をコンピュータに実行させるフレーズ分析プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
比較する２つのフレーズの各々を所定の単位長の区間に分割するステップと、
該分割された２つのフレーズの対応する区間同士の音程を求めるステップと、
該音程毎の出現頻度の分布を取るステップと、
該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定するステップと、
前記分布の最大となった音程を２つのフレーズ間の移調量とするステップと、
をコンピュータに実行させるフレーズ分析プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
前記音程を求めるステップは、前記２つのフレーズの小節線を一致させて前記区間同士の音程を求めることを特徴とする請求項５または請求項６記載のフレーズ分析プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
さらに前記２つのフレーズのうちの比較元フレーズの調の種類と主音が解っている場合、前記一致と判定された比較対象フレーズの調の種類を比較元フレーズのもとの同じとし、該一致と判定された比較対象フレーズの調の主音を比較元フレーズの主音に前記移調量だけ加算した値とするステップを有することを特徴とする請求項６記載のフレーズ分析プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２つのフレーズの一致または不一致を判定するフレーズ間のマッチングを取るフレーズ分析装置及びフレーズ分析プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。なお、２つのフレーズの類似度を求めることも一致または不一致を判定することに相当するものとする。
【０００２】
【従来の技術】
従来、１曲の中で同じフレーズ（メロディ）部分を探して曲の構成（楽節構成等）を把握したり、同じフレーズ部分となったフレーズを曲のアレンジの基本データとしたり、あるいは、指定したフレーズの断片を含む曲を探す曲検索機能を実現するために、２つのフレーズのマッチングを取ることが広く行われている。
【０００３】
従来のフレーズマッチング手法としては、フレーズのリズムのマッチングに関して、第１に音符単位に比較する手法、第２に所定の単位長毎に比較する手法などがある。第１の手法は、２つのフレーズの完全一致を見つけるのには適しているが、例えば一方のフレーズでは１つの四分音符のところが、他方のフレーズでは２つの八分音符からなっているなど、微妙に譜割が異なるような２つのフレーズのマッチングには適していない。すなわち、２つのフレーズの各音符についての対応関係を見つけるのが非常に困難であり、このため、人間が感じるような「完全には同じではないが、ほぼ同じようなフレーズである」というあいまいな分析結果を得ることは難しい。また、正確に対応関係を見つけるには複雑なマッチングアルゴリズムを必要とする。
【０００４】
一方、第２の手法は、各フレーズを八分符長等の所定の単位長毎に分割し、両フレーズを単位長毎に比較する手法であって、例えば上記「一方のフレーズは１つの四分音符で、他方のフレーズは２つの八分音符」のような部分は共に「２つの八分音符」となるので、比較的簡単なアルゴリズムで微妙に譜割の異なる２つのフレーズのマッチングを取ることができる。
【０００５】
また、フレーズのピッチのマッチングに関して、第３に音高を比較する手法、第４に直前の音符や基準音符からの音程変化を比較する手法などがある。第３の手法は、２つのフレーズの対応する音符毎にその音高を比較し、一致していれば同じフレーズと判断するものである。したがって、移調されていない２つのフレーズの場合はよいが、移調されていると「異なるフレーズ」と判定されてしまう。
【０００６】
また、第４の手法は、２つのフレーズの各々について、各音符の直前の音符や基準音符からの音程変化を求め、音程変化同士を比較するものである。例えば、直前の音符からの音程変化の場合、一方のフレーズが「Ｃ４→Ｅ４→Ｇ４→Ｅ４」と変化していれば音程変化は「４半音→３半音→−３半音」となり、他方のフレーズが「Ｃ♯４→Ｆ４→Ｇ♯４→Ｆ４」と変化していれば音程変化はこちらも「４半音→３半音→−３半音」となり、移調されている２つのフレーズは音程変化が一致すると判定される。また、基準音符からの音程変化の場合、最初の音符を基準とすると、一方のフレーズ「Ｃ４→Ｅ４→Ｇ４→Ｅ４」は「４半音→７半音→４半音」となり、他方のフレーズ「Ｃ♯４→Ｆ４→Ｇ♯４→Ｆ４」も同様に「４半音→７半音→４半音」となって、移調されている２つのフレーズを音程変化が一致すると判定される。
【０００７】
【発明が解決しようとする課題】
従来のフレーズのピッチのマッチングに関して言うと、上述した第３の手法では移調されているフレーズに対応できない。また、第４の手法では移調されいているフレーズにも対応できるものの、微妙にピッチが異なる２つのフレーズに対応できない。すなわち、２つのフレーズが「Ｃ４→Ｅ４→Ｇ４→Ｅ４」と「Ｃ４→Ｆ４→Ｇ４→Ｅ４」のように１音符だけ異なる場合、直前の音符からの音程変化を見る手法では、「４半音→３半音→−３半音」と「５半音→２半音→−３半音」のように１音符の違いが２箇所の音程変化の違いとなってしまう。また、基準音符からの音程変化を見る手法では、「Ｃ４→Ｅ４→Ｇ４→Ｅ４」と「Ｃ♯４→Ｅ４→Ｇ４→Ｅ４」のように基準音符の１音符が異なると、「４半音→７半音→４半音」と「３半音→６半音→３半音」のように全く異なる判定結果となってしまう。
さらに、移調量を別途求める必要がある。
【０００８】
本発明は、譜割が微妙に異なる２つのフレーズに対しても正確にマッチングを取ることができ、かつ、移調されていたりあるいはフレーズの一部分だけ音高がずれていたとしても、比較的正確にマッチングを取れるようにすることを課題とする。
【０００９】
【課題を解決するための手段】
本発明の請求項１のフレーズ分析装置は、比較する２つのフレーズの各々を所定の単位長の区間に分割するフレーズ分割手段と、該分割された２つのフレーズの対応する区間同士の音程を求め、該音程毎の出現頻度の分布を取る分布検出手段と、該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定する判定手段と、を備えたことを特徴とする。なお、この明細書で「音程」とは２つの音の音高差のことを表現している。後述の実施形態では「音程」の一例としてキーコードの差を用いているが、音高差を定量的に表現できるものであれば何でもよい。
【００１０】
本発明の請求項２のフレーズ分析装置は、比較する２つのフレーズの各々を所定の単位長の区間に分割するフレーズ分割手段と、該分割された２つのフレーズの対応する区間同士の音程を求め、該音程毎の出現頻度の分布を取る分布検出手段と、該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定する判定手段と、前記分布の最大となった音程を２つのフレーズ間の移調量とする移調量設定手段と、を備えたことを特徴とする。
【００１１】
本発明の請求項３フレーズ分析装置は、請求項１または請求項２の構成を備え、前記分布検出手段は、前記２つのフレーズの小節線を一致させて前記区間同士の音程を求めることを特徴とする。
【００１２】
本発明の請求項４のフレーズ分析装置は、請求項２の構成を備え、さらに前記２つのフレーズのうちの比較元フレーズの調の種類と主音が解っている場合、前記一致と判定された比較対象フレーズの調の種類は比較元フレーズのもとの同じとし、該一致と判定された比較対象フレーズの調の主音を比較元フレーズの主音に前記移調量だけ加算した値とする調設定手段、を備えたことを特徴とする。
【００１３】
本発明の請求項５のコンピュータ読み取り可能な記録媒体は、比較する２つのフレーズの各々を所定の単位長の区間に分割するステップと、該分割された２つのフレーズの対応する区間同士の音程を求めるステップと、該音程毎の出現頻度の分布を取るステップと、該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定するステップと、をコンピュータに実行させるフレーズ分析プログラムを記録したものである。
【００１４】
本発明の請求項６のコンピュータ読み取り可能な記録媒体は、比較する２つのフレーズの各々を所定の単位長の区間に分割するステップと、該分割された２つのフレーズの対応する区間同士の音程を求めるステップと、該音程毎の出現頻度の分布を取るステップと、該分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定するステップと、前記分布の最大となった音程を２つのフレーズ間の移調量とするステップと、をコンピュータに実行させるフレーズ分析プログラムを記録したものである。
【００１５】
本発明の請求項７のコンピュータ読み取り可能な記録媒体は、請求項５または請求項６の構成を備え、前記音程を求めるステップは、前記２つのフレーズの小節線を一致させて前記区間同士の音程を求めることを特徴とするフレーズ分析プログラムを記録したものである。
【００１６】
本発明の請求項８のコンピュータ読み取り可能な記録媒体は、請求項６の構成を備え、さらに前記２つのフレーズのうちの比較元フレーズの調の種類と主音が解っている場合、前記一致と判定された比較対象フレーズの調の種類を比較元フレーズのもとの同じとし、該一致と判定された比較対象フレーズの調の主音を比較元フレーズの主音に前記移調量だけ加算した値とするステップを有することを特徴とするフレーズ分析プログラムを記録したものである。
【００１７】
請求項１のフレーズ分析装置によれば、所定の単位長で分割された２つのフレーズの対応する区間同士の音程を求め、該音程毎の出現頻度の分布を取り、この分布の最大となる音程の出現頻度に応じて２つのフレーズの一致または不一致を判定するので、２つのフレーズの全体的な音高の違い（出現頻度が最大である音程）をもを考慮しているので、譜割が微妙に異なる２つのフレーズに対しても正確にマッチングを取ることができ、かつ、移調されていたりあるいはフレーズの一部分だけ音高がずれていたとしても、比較的正確にマッチングを取ることができる。
【００１８】
請求項２のフレーズ分析装置によれば、請求項１と同様な作用効果が得られるとともに、分布の最大となった音程を２つのフレーズ間の移調量とするので、適正な移調量を得ることができる。
【００１９】
請求項３のフレーズ分析装置によれば、請求項１または請求項２と同様な作用効果が得られるとともに、２つのフレーズの小節線を一致させて区間同士の音程を求めるので、小節線を考慮したマッチングを行うことができる。
【００２０】
請求項４のフレーズ分析装置によれば、請求項２と同様な作用効果が得られるとともに、比較元フレーズの調の種類と主音が解っている場合、比較対照フレーズの調の種類と適正な主音を決定することができる。
【００２１】
本発明の請求項５〜請求項８の各コンピュータ読み取り可能な記録媒体は、請求項１〜請求項４のフレーズ分析装置にそれぞれ対応するフレーズ分析プログラムを記録したものであり、各フレーズ分析プログラムの実行により、対応する各請求項と同様な作用効果が得られる。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の一実施の形態について説明する。図７は本発明を適用した電子楽器のブロック図であり、ＣＰＵ１はＲＯＭ２に格納されている制御プログラムに基づいてＲＡＭ３のワーキングエリアを使用して電子楽器全体の制御を行う。通常の電子楽器の基本的な機能として、ＣＰＵ１は検出回路４ａから鍵盤等の演奏操作子４の操作イベントを検出してマニュアル演奏の制御を行う。さらに、検出回路５ａからスイッチ等のパネル操作子５の操作イベントを検出し各種スイッチの操作に応じた処理を行う。また、ＣＰＵ１は表示回路６ａを介して表示器等からなるディスプレイ６の制御を行う。
【００２３】
タイマ７は自動演奏処理等を行うための割込み信号を発生する回路である。音源回路８は、ＣＰＵ１から設定されるキーコード、音色データ、音量データなどに応じて楽音信号を発生し、効果回路９は、ＣＰＵ１から設定される設定内容に応じた効果を楽音信号に付加し、それをサウンドシステム１０に出力する。サウンドシステム１０はＤ／Ａ変換や増幅等を行ってスピーカーで発音する。
【００２４】
外部記憶装置１１はハードディスク装置（ＨＤＤ）、フロッピィディスク装置（ＦＤＤ）、ＣＤ−ＲＯＭ装置、光磁気ディスク（ＭＯ）装置、デジタル多目的ディスク（ＤＶＤ）装置等であり、例えばこの外部記憶装置１１から本発明のフレーズ分析プログラムや演奏データを供給したり、各種データを保存するために用いられる。また、ＭＩＤＩインターフェース１２は他のＭＩＤＩ機器２０との間で各種データの授受を行うものであり、本発明のフレーズ分析プログラムや演奏データなどを他のＭＩＤＩ機器２０との間で授受することができる。さらに、通信インターフェース１３を介して通信ネットワーク３０に接続し、サーバコンピュータ４０から本発明のフレーズ分析プログラムや演奏データなどの各種データの配信を受けるようにすることもできる。
【００２５】
なお、この実施形態では、フレーズ分析プログラムは制御プログラムの一部としてＲＯＭ２に格納されているものとする。
【００２６】
図１〜図４はＣＰＵ１が実行する制御プログラムの要部を示すフローチャートであり、各フローチャートに基づいてＣＰＵ１の制御動作について説明する。図１はフレーズ分析プログラムとしてのマッチング処理のフローチャートである。このマッチング処理は後述の図２〜図４の各種処理に利用されるサブルーチンの処理であり、この処理が起動される前に、分析の基準となる比較元フレーズ（以後、「マッチング元フレーズ」という。）と、分析対象とする演奏データにおける比較対象フレーズ（以後、「マッチング対象フレーズ」という。）とが、それぞれ設定されている。
【００２７】
先ず、ステップＳ１で、マッチング元フレーズを所定の単位長毎のステップに分割し、ステップＳ２でマッチング対象フレーズを同じく所定の単位長毎のステップに分割する。これらの分割処理では、所定の単位長とは例えば八分音符単位など予め設定された長さであり、フレーズの演奏データに含まれるタイミングデータ（演奏データの形式に応じて決まるタイミング）や小節マークデータ等により小節線の位置を検出し、その小節線の位置を基準に例えば八分音符長に相当するクロック数毎にフレーズの演奏データを分割する。そして、各分割された演奏データの音高を各ステップに対応付けて記憶するなどの処理を行う。
【００２８】
具体的には、単位長毎の各ステップに対応する各記憶領域を設け、各記憶領域に対応する音符の音高のデータ（例えばキーコード）を記憶することで、各ステップに音高を付与する。このとき、例えば四分音符を八分音符で分割すると、この四分音符に対応する前後２つのステップに分割されるが、前後各ステップにその四分音符の音高を付与する。このことはフレーズを単位長の音符に分解したフレーズに変換することにも相当する。
【００２９】
なお、マッチング元フレーズ、マッチング対象フレーズは、休符を含む場合、その休符長を直前の音符の音符長に加算して休符を削除したものを使うことが望ましい。また、マッチング元フレーズの演奏データとマッチング対象フレーズの演奏データの形式（フォーマット）が異なっている場合は、前処理でそれぞれ同じ形式となるように変換するとよい。
【００３０】
フレーズの分割が終了すると、ステップＳ３で、マッチング元フレーズとマッチング対象フレーズのそれぞれの最初の小節線を一致させ、両フレーズのこの小節線から同じタイミングの両ステップを対応させる。次に、ステップＳ４で、対応させた各ステップにおける両フレーズの音符の音程（音高差）を取り、全ステップで得られる音程について同音程となるステップの組数を音程毎に合計（集計）する。すなわち、あるステップでは音程＝−１音半、あるステップでは音程＝−１音、あるステップでは音程＝−半音、あるステップでは音程＝同音、あるステップでは音程＝半音、あるステップでは音程＝１音、あるステップでは音程＝１音半、…のように、各ステップでの両フレーズの音符の音程を求め、これらの音程のうち同じ音程であるステップの数をその音程の合計値とする。そして、ステップＳ５で、合計値が最大となる音程の合計値の、全体（全合計値の合計）に対する割合を一致度として求め、元のルーチンに復帰する。
【００３１】
なお、マッチング元フレーズとマッチング対象フレーズとの長さが異なっていたり、両フレーズ内での小節線の位置が異なる場合もあるので、ステップ３の処理でステップの対応付けを行う場合、次のようにする。例えば図５のａのようなマッチング元フレーズとｂのようなマッチング対象フレーズの場合、ステップを対応付けるマッチング区間としてｃ〜ｆいずれかのようにする。ｃの例は、マッチング対象フレーズの先頭からマッチング元フレーズの最後までをマッチング区間とした例である。すなわち、両フレーズに共通する区間すべてをマッチング区間としている。また、ｄの例は、マッチング対象フレーズの先頭から両フレーズに共通な最後の小節線までをマッチング区間とした例である。すなわち、両フレーズに共通な区間のうちの最後の小節線の前までをマッチング区間としている。また、ｅの例は、両フレーズに共通な最初の小節線からマッチング元フレーズの最後までをマッチング区間とした例である。すなわち、両フレーズに共通な区間のうち最初の小節線以降をマッチング区間としている。また、ｆの例は、両フレーズに共通な区間のうちの最初の小節線から最後の小節線までをマッチング区間とした例である。
【００３２】
このように、フレーズのマッチングは、両フレーズの小節線が一致するようにして行い、両フレーズ先頭や最後の位置がずれていてもよく、その場合、ずれているところは比較対象としない。また、両フレーズの長さが異なっていてもよく、その場合、短いフレーズの終わりまで、あるいは短いフレーズよりもさらに短い所定長（例えば２小節等）のみ、マッチング区間とすればよい。
【００３３】
以上のマッチング処理により、同じ音程であるステップの数の各合計値のうち合計値が最大となる音程（以後、「最大頻度音程」という。）がどのような音程であっても、一致度が高ければ、マッチング対象フレーズはマッチング元フレーズにメロディラインが近似（あるいは一致）しており、その最大頻度音程を両フレーズ間の調の主音の差（移調量）とみなすことができる。また、最大頻度音程が同音であれば、主音も同じとみなすことができる。
【００３４】
図２は上記マッチング処理を利用した曲構造解析処理のフローチャートであり、ステップＳ１１で、分析対象とする演奏データを所定のアルゴリズムにしたがって、あるいはユーザの指示によりフレーズに分割する。次に、ステップＳ１２で、マッチング元フレーズ（例えば先頭フレーズ）とマッチング対象フレーズ（例えば第２フレーズ）を設定し、ステップＳ１３で図１のマッチング処理を行う。マッチング処理が終了すると前記一致度が求められるので、ステップＳ１４で一致度を判定する。判定の結果、一致度が所定の閾値未満であれば、ステップＳ１５で両フレーズを非類似とみなしてステップＳ１８に進む。一致度が所定の閾値以上であれば、ステップＳ１６で両フレーズを類似とみなしてステップＳ１８に進む。一致度が１００％であれば、ステップＳ１７で両フレーズを一致とみなしてステップＳ１８に進む。
【００３５】
ステップＳ１８では、マッチング対象フレーズに対して、一致状態、類似状態または非類似状態の判定結果を決定して記憶する。このとき、一致または類似の場合には、マッチング元フレーズに調が設定あるいは検出されている場合には、マッチング対象フレーズの調の種類（長調または短調）をマッチング元フレーズの調の種類と同一とし、マッチング対象フレーズの調の主音を前記移調量（最大頻度音程）だけシフトしたものとする。なお、移調量が１オクターブを越える場合は、移調量を１２で割った余りだけシフトしたものとする。また、調が設定あるいは検出されていない場合は、単に移調量を設定するだけとする。
【００３６】
次に、ステップＳ１９で、演奏データの最後のフレーズまで、マッチング元フレーズとして設定し終えたか否かを判定し、ＮＯであればステップＳ２０で次のマッチング元フレーズ（例えば先頭フレーズのまま）とマッチング対象フレーズ（例えば第３フレーズ）を設定し、ステップＳ１３に進む。このとき、マッチング元フレーズは固定しておき、マッチング対象フレーズを１つずつ後ろにずらしていき、マッチング対象フレーズが最後のフレーズまで達したら、マッチング元フレーズを１つ後ろのフレーズに設定する。これを、マッチング元フレーズが最後のフレーズに達するまで繰り返す。また、ステップＳ１９で、ＹＥＳであれば、処理を終了する。
【００３７】
以上の曲構造解析処理では、演奏データを複数のフレーズに分割し、ステップＳ１２及びステップＳ２０のマッチング元フレーズとマッチング対象フレーズの設定処理により、基本的には任意のフレーズをマッチング元フレーズとするとともにその他のフレーズをマッチング対象フレーズとしてマッチング処理を行い、この処理を全てのフレーズをマッチング元フレーズの対象として実行する。ただし、一度「他のフレーズと一致または類似」と決定されたフレーズは、マッチング元フレーズには設定しないで、「非類似」と決定されたフレーズのみを新たなマッチング元フレーズとして設定するものとする。
【００３８】
以上のように曲構造解析処理により、演奏データ中の各フレーズ間で、一致するフレーズの有無、類似するフレーズの有無とその移調量または調の主音、非類似のフレーズの有無を解析することができる。
【００３９】
図３はマッチング処理を利用した楽節先頭決定処理のフローチャートであり、ステップＳ２１で、分析対象とする演奏データを所定のアルゴリズムにしたがって、あるいはユーザの指示によりフレーズに分割する。次に、ステップＳ２２で曲の先頭のフレーズをマッチング元フレーズに設定してステップＳ２３に進む。ステップＳ２３では、次のフレーズをマッチング対象フレーズに設定し、ステップＳ２４で図１のマッチング処理を行う。
【００４０】
マッチング処理が終了すると前記一致度が求められるので、ステップＳ２５で一致度は所定の閾値以上か否かを判定し、一致度が閾値以上でなければステップＳ２３に戻り、一致度が閾値以上であればステップＳ２６で、マッチング対象フレーズを楽節の先頭のフレーズの１つに設定し、ステップＳ２７に進む。ステップＳ２７では、演奏データの最後のフレーズまで、マッチング対象フレーズとして設定し終えたか否かを判定し、ＮＯであればステップＳ２３に戻り、ＹＥＳであれば、処理を終了する。
【００４１】
以上の楽節先頭決定処理により、演奏データの曲を構成する各楽節の先頭のフレーズ（楽節の先頭位置）の少なくとも一部を決定することができる。すなわち、曲の先頭フレーズ（第１楽節の最初のフレーズ）と一致または類似するフレーズは、楽節の先頭のフレーズの１つとみなせるので、複数のフレーズのうち、楽節先頭となりうるフレーズを決定することができる。なお、以上の処理では、曲の先頭フレーズと一致または類似するフレーズのみを検出してそれを楽節の先頭フレーズの１つとしているが、ユーザにより指定あるいは所定のアルゴリズムにしたがって自動検出された楽節の先頭フレーズがある場合、そのフレーズと一致または類似するフレーズを検出して、楽節の先頭フレーズの１つを決定するようにしてもよい。
【００４２】
図４はマッチング処理を利用した曲検索処理のフローチャートであり、この曲検索処理は、ネットワーク上のサーバ、他のパーソナルコンピュータ、他の電子楽器、あるいは当該電子楽器の外部記憶装置１１など、各種の記憶装置に構築された曲データベースから曲を検索するための処理である。例えば、曲の一部のフレーズを知っているが、何という曲であったかあるいはどのような曲であったかが解らず、それ検索したいというときなどに利用することができる。
【００４３】
先ず、ステップＳ３１で、検索したい曲の一部のフレーズをマッチング元フレーズとして入力する。このマッチング元フレーズの入力はどのような方式でもよい。例えば、鍵盤等の演奏操作子でリアルタイム演奏して入力したり、鼻歌等の音声を入力してこれを分析して音符データに変換するなどがある。次に、ステップＳ３２で、曲データベース中の最初の曲をマッチング対象曲に設定し、ステップＳ３３に進む。
【００４４】
ステップＳ３３では、フレーズ単位または小節単位でマッチング位置をずらしながら（すなわちマッチング対象フレーズを更新しながら）前記図１のマッチング処理により、マッチング元フレーズとマッチング対象フレーズの一致、類似または非類似の判定を行う。そして、マッチング対象曲全体についてマッチング処理を行う。
【００４５】
次に、ステップＳ３４で、マッチング対象曲の全フレーズの一致度のうち、最大の一致度をそのマッチング対象曲の一致度（以後、「曲一致度」という。）とし、その曲一致度が所定の閾値以上であるか否かを判定する。曲一致度が閾値以上でなければステップＳ３６に進み、曲一致度が閾値以上であれば、ステップＳ３５で、そのマッチング対象曲をマッチした曲のリストに追加し、ステップＳ３６に進む。ステップＳ３６では曲データベース中の全曲について終了したか否かを判定し、全曲終了していなければ、ステップＳ３７で曲データベース中の次の曲をマッチング対象曲に設定してステップＳ３３に戻り、全曲終了していればステップＳ３８でマッチした曲のリストを提示して処理を終了する。
【００４６】
なお、ステップＳ３８で曲のリストを提示する際には、曲目、演奏（歌唱）者、作曲者、作詞者（歌詞があれば）等のうちの少なくとも１つを表示する。これにあわせて、各曲の演奏データあるいはその一部を再生してもよい。また、楽譜を表示してもよい。さらに、例えばテレビ番組の「○○主題歌」「○○のＣＭソング」など関連情報を表示してもよい。
【００４７】
また、曲一致度が閾値以上の全ての曲を提示せずに、そのうちの最も曲一致度の高い曲を１ないし複数曲提示してもよいし、曲一致度に応じてある程度絞り込んで曲を提示するようにしてもよい。
【００４８】
図６はマッチング元フレーズとマッチング対象フレーズの一例を示す図であり、例えば、ａ．のフレーズ１をマッチング元フレーズ、ｂ．のフレーズ２をマッチング対象フレーズとする。この例ではフレーズ１とフレーズ２は一致はしないが、全体的なメロディラインやリズムも似ており、類似と判定するのが妥当な例である。以下、この例についての実施形態の処理過程とその結果の具体例を概説すると次のようになる。
【００４９】
フレーズ１とフレーズ２をそれぞれ八分音符単位でステップ分けし、各ステップに対応する音符を調べると、各ステップにおけるピッチ（音高：キーコード）は次表１の上段と中段のようになることが判る。そして、各ステップにおけるフレーズ１とフレーズ２の音程（音高差）は次表１の下段のようになる。
【００５０】
【表１】
0003750547.tif 000002
【００５１】
例えば、フレーズ１におけるステップ番号２のステップは、最初の「中央ハ」の四分音符の後半の八分音符長の部分に相当するのでこのステップのピッチはステップ番号１と同じで“６０”となる。
【００５２】
そして、全ステップについて同じ音程となるステップの数を集計すると、その合計数は次表２のようになり、音程“２”の合計数が“１８”となって最も多くなっている。
【００５３】
【表２】
0003750547.tif 000003
【００５４】
したがって、この例では、移調量は“２”とする。また、全体（全ステップ数＝２４）に対する音程“２”の合計数の割合（＝一致度）は、１８／２４＝７５％となる。したがって、例えば「類似」とみなす閾値を７５％とすると、フレーズ１とフレーズ２は「類似」とみなせる。なお、この実施形態では、同じ音程となるステップの数を集計することが「音程毎の出現頻度の分布を取ること」に相当し、合計数の最も多い合計数の割合（一致度）から「一致」「類似」「非類似」を判定することが、「２つのフレーズの一致または不一致を判定すること」に相当する。
【００５５】
なお、ここで、実施形態との比較のために図６のフレーズについて従来のマッチング処理を行った例について説明する。第１従来例は、八分音符単位でステップ分けして前後の音符（ステップ）との音程をとる方法であり、処理結果は次表３のようになる。
【００５６】
【表３】
0003750547.tif 000004
【００５７】
このうち、例えばステップ２番，４番，…のようにフレーズ１とフレーズ２で音程が一致するステップの数（一致数）は“１５”となり、ステップ３番，８番，…のように音程が一致しないステップの数（不一致数）は“８”となる。そこで、一致数の全体（一致数＋不一致数）に対する割合を一致度とすると、一致度は１５／２３＝６５．２％となり、「類似」とみなす閾値を７５％とすると、フレーズ１とフレーズ２は「類似」とみなせなくなる。これは不一致音符（ステップ）の前と後の２箇所で不一致として計数されるからである。また、仮に一致または類似とみなせたとしても、移調量は別途求める必要がある。
【００５８】
また、第２従来例は、八分音符単位でステップ分けして基準音符からの音程をとる方法であり、処理結果は次表４のようになる。
【００５９】
【表４】
0003750547.tif 000005
【００６０】
この場合、前記同様な一致数は“２”（ステップ２番，８番）となり、不一致数は“２１”（ステップ１番，２番，８番以外）となる。そして、前記同様な一致度は、、一致度は２／２３＝８．７％となり、「類似」とみなす閾値を７５％とすると、フレーズ１とフレーズ２は「類似」とみなせなくなる。これは先頭の音符がずれていることによる。この例でも、仮に一致または類似とみなせたとしても、移調量は別途求める必要がある。
【００６１】
以上のように、本発明によれば上記従来例よりも判定確度が高いことが判る。また、本発明によれば移調量も同時に判定することができる。
【００６２】
なお、ステップ分けする際の所定長は、固定であってもよいし、可変であってもよい。可変の場合には、ユーザが設定できるようにしてもよいし、曲データを分析して自動決定するようにしてもよい。この自動決定の場合は、例えば、最短音符長を所定長としたり、平均音符長を求めて、それよりも短い所定音符長とするなどがある。
【００６３】
また、類似判定する際の閾値は、固定であってもよいし、可変であってもよい。可変の場合には、ユーザが設定できるようにしてもよいし、用途に応じて自動的に設定してもよい。例えば、ある程度厳密なマッチングが必要な曲構造解析の場合は７５％とし、入力するフレーズを間違える可能性のある曲検索の場合は６０％とするなどがある。
【００６４】
また、実施形態ではマッチング区間の例として図５に４つの例を示したが、何れか固定であってもよいし、複数例の中から選択可能としてもよい。選択する場合は、ユーザが選択できるようにしてもよいし、用途に応じて自動選択してもよい。例えば、ある程度厳密なマッチングが必要な曲構造解析では長い区間を選択し、大量の曲データとのマッチングを取らなければならない曲検索では短い区間を選択するなどがある。
【００６５】
曲データのフォーマットは、演奏イベントの発生時刻を１つ前のイベントからの時間で表した「イベント＋相対時間」、演奏イベントの発生時刻を曲内や小節内における絶対時間で表した「イベント＋絶対時間」、音符の音高と符長あるいは休符と休符長で表した「音高（休符）＋符長」、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域に演奏イベントを記憶した「ベタ方式」等、どのような形式でもよい。
【００６６】
また、メモリ上において、時系列の演奏データが連続する領域に記憶されていてもよいし、飛び飛びの領域に散在して記憶されているデータを、連続するデータとして別途管理するようにしてもよい。すなわち、時系列的に連続するデータとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題ではない。
【００６７】
実施形態では本発明を電子楽器に適用した例を示したが、パーソナルコンピュータとソフトウエアにより、実施形態と同様な処理を行って、フレーズ分析装置を構築したりフレーズ分析方法を実施することができる。また、ネットワークを利用してフレーズ分析方プログラムを実行してもよい。ネットワークを利用する場合、ユーザの入力処理等はそのネットワークに接続するパーソナルコンピュータや電子楽器から行い、サーバ側で前記各種の処理を行って、その処理の結果をパーソナルコンピュータや電子楽器に送信し出力するようにしてもよい。
【００６８】
また、本発明は、カラオケ装置や、ゲーム装置、携帯電話等の携帯型通信端末、自動演奏ピアノに適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、前記のように機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として本発明の所定の機能を実現するようにしてもよい。また、フレーズ分析プログラムや処理に利用する各種データを外部記憶媒体から、あるいは通信インターフェースを介して外部装置から電子楽器やパーソナルコンピュータに供給してもよい。通信インターフェース及び通信ネットワークは、有線のものに限らず無線でもよい。また無線及び有線の双方を備えていてもよい。
【００６９】
また、演奏データ等の通信には、専用のＭＩＤＩインターフェースに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースを用いて、ＭＩＤＩインターフェースを構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信するようにしてもよい。
【００７０】
【発明の効果】
請求項１のフレーズ分析装置または請求項５のコンピュータ読み取り可能な記録媒体に記録されたフレーズ分析プログラムの実行によれば、譜割が微妙に異なる２つのフレーズに対しても正確にマッチングを取ることができ、かつ、移調されていたりあるいはフレーズの一部分だけ音高がずれていたとしても、比較的正確にマッチングを取ることができる。
【００７１】
請求項２のフレーズ分析装置または請求項６のコンピュータ読み取り可能な記録媒体に記録されたフレーズ分析プログラムの実行によれば、請求項１と同様な効果が得られるとともに、分布の最大となった音程を２つのフレーズ間の移調量とするので、適正な移調量を得ることができる。
【００７２】
請求項３のフレーズ分析装置または請求項７のコンピュータ読み取り可能な記録媒体に記録されたフレーズ分析プログラムの実行によれば、請求項１または請求項２と同様な効果が得られるとともに、２つのフレーズの小節線を一致させて区間同士の音程を求めるので、小節線を考慮したマッチングを行うことができる。
【００７３】
請求項４のフレーズ分析装置または請求項８のコンピュータ読み取り可能な記録媒体に記録されたフレーズ分析プログラムの実行によれば、請求項２と同様な効果が得られるとともに、比較元フレーズの調の種類と主音が解っている場合、比較対照フレーズの調の種類と適正な主音を決定することができる。
【図面の簡単な説明】
【図１】本発明の実施形態におけるマッチング処理のフローチャートである。
【図２】本発明の実施形態における曲構造解析処理のフローチャートである。
【図３】本発明の実施形態における楽節先頭決定処理のフローチャートである。
【図４】本発明の実施形態における曲検索処理のフローチャートである。
【図５】本発明の実施形態におけるマッチング区間の例を示す図である。
【図６】本発明の実施形態におけるマッチング元フレーズとマッチング対象フレーズの一例を示す図である。
【図７】本発明を適用した実施形態の電子楽器のブロック図である。
【符号の説明】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、１１…外部記憶装置
【図１】
0003750547.tif 000006
【図２】
0003750547.tif 000007
【図３】
0003750547.tif 000008
【図４】
0003750547.tif 000009
【図５】
0003750547.tif 000010
【図６】
0003750547.tif 000011
【図７】
0003750547.tif 000012