(57)【特許請求の範囲】
【請求項１】
入力楽音の波形データから周波数成分データを抽出する周波数成分抽出手段と、
抽出された周波数成分データの中から、予め定められた周波数帯域の周波数成分データを切り出す周波数帯域切出し手段と、
切り出された周波数成分データを１オクターブ毎に折り畳み、重ね合わせてオクターブプロファイルを生成するオクターブプロファイル生成手段と、
生成されたオクターブプロファイルの半音区間におけるピーク周波数位置から、入力楽音のピーク周波数位置とこのピーク周波数位置に対応するシステムの周波数位置とのずれ量に相当するピッチを求め、このピッチだけ当該オクターブプロファイルをシフトするピッチ調整手段と、
シフトされたオクターブプロファイルを標準和音プロファイルと比較し入力楽音の和音を決定する和音決定手段と
を具備することを特徴とする和音判定装置。
【請求項２】
さらに、
前記オクターブプロファイル生成手段により生成されたオクターブプロファイルのピークを半音単位で明確化するために、当該オクターブプロファイルについて半音単位の自己相関をとる自己相関手段
を具備することを特徴とする請求項１に記載の和音判定装置。
【請求項３】
前記ピッチ調整手段は、
前記オクターブプロファイル生成手段により生成されたオクターブプロファイルを半音区間毎に加算してセミトーンプロファイルを生成するセミトーンプロファイル生成手段と、
生成されたセミトーンプロファイルを所定量だけ環状にシフトさせた場合に最小分散値を提供するシフト量に基づいて前記ずれ量に相当するピッチを求めるピッチ算出手段と
を有することを特徴とする請求項１又は２に記載の和音判定装置。
【請求項４】
前記和音決定手段は、前記ピッチ調整手段によりシフトされたオクターブプロファイルの半音区間毎の強度と標準和音毎に予め用意された半音区間毎の重み付け値とを同一半音区間同士で乗算した値の和に基づいて入力楽音の和音を決定することを特徴とする請求項１〜３の何れか１項に記載の和音判定装置。
【請求項５】
和音判定装置において実行される和音判定方法であって、
周波数成分抽出手段によって、入力楽音の波形データから周波数成分データを抽出する周波数成分抽出ステップと、
周波数帯域切出し手段によって、抽出された周波数成分データの中から、予め定められた周波数帯域の周波数成分データを切り出す周波数帯域切出しステップと、
オクターブプロファイル生成手段によって、切り出された周波数成分データを１オクターブ毎に折り畳み、重ね合わせてオクターブプロファイルを生成するオクターブプロファイル生成ステップと、
ピッチ調整手段によって、生成されたオクターブプロファイルの半音区間におけるピーク周波数位置から、入力楽音のピーク周波数位置とこのピーク周波数位置に対応するシステムの周波数位置とのずれ量に相当するピッチを求め、このピッチだけ当該オクターブプロファイルをシフトするピッチ調整ステップと、
和音決定手段によって、シフトされたオクターブプロファイルを標準和音プロファイルと比較し入力楽音の和音を決定する和音決定ステップと
を備えることを特徴とする和音判定方法。
【請求項６】
さらに、
自己相関手段によって、前記オクターブプロファイル生成ステップで生成されたオクターブプロファイルのピークを半音単位で明確化するために、当該オクターブプロファイルについて半音単位の自己相関をとる自己相関ステップ
を備えることを特徴とする請求項５に記載の和音判定方法。
【請求項７】
前記ピッチ調整ステップは、
セミトーンプロファイル生成手段によって、前記オクターブプロファイル生成ステップで生成されたオクターブプロファイルを半音区間毎に加算してセミトーンプロファイルを生成するセミトーンプロファイル生成ステップと、
ピッチ算出手段によって、生成されたセミトーンプロファイルを所定量だけ環状にシフトさせた場合に最小分散値を提供するシフト量に基づいて前記ずれ量に相当するピッチを求めるピッチ算出ステップと
を含むことを特徴とする請求項５又は６に記載の和音判定方法。
【請求項８】
前記和音決定ステップでは、前記ピッチ調整ステップでシフトされたオクターブプロファイルの半音区間毎の強度と標準和音毎に予め用意された半音区間毎の重み付け値とを同一半音区間同士で乗算した値の和に基づいて入力楽音の和音を決定することを特徴とする請求項５〜７の何れか１項に記載の和音判定方法。
【請求項９】
入力楽音の波形データから周波数成分データを抽出する周波数成分抽出ステップと、
抽出された周波数成分データの中から、予め定められた周波数帯域の周波数成分データを切り出す周波数帯域切出しステップと、
切り出された周波数成分データを１オクターブ毎に折り畳み、重ね合わせてオクターブプロファイルを生成するプロファイル生成ステップと、
生成されたオクターブプロファイルの半音区間におけるピーク周波数位置から、入力楽音のピーク周波数位置とこのピーク周波数位置に対応するシステムの周波数位置とのずれ量に相当するピッチを求め、このピッチだけ当該オクターブプロファイルをシフトするピッチ調整ステップと、
シフトされたオクターブプロファイルを標準和音プロファイルと比較し入力楽音の和音を決定する和音決定ステップと
から成る手順をコンピュータに実行させるプログラムを記録しているコンピュータ読み取り可能な和音判定のための記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力される楽音の波形情報から和音を判定（認識）するための和音判定装置に関し、より詳しくいうと、楽音波形の断片を周波数スペクトル解析し、そのスペクトルパターンに基づいて和音を判定する装置及び方法に関する。
【０００２】
【従来の技術】
従来、楽音波形を解析して和音を判定する技術としては、マーク・レマン（Marc Leman）氏の研究のように、各和音が周波数成分の組合せからなるパターンであるという着想のもとで、解析対象となる楽音波形の周波数成分情報（スペクトル情報）から和音の情報を直接引き出そうとする考えがあった。この和音判定の具体的な処理として、図１６に示すような“ＳＡＭ”と呼ばれる単純な聴覚モデルを用いた処理方法が提案されている。
【０００３】
ここで、このＳＡＭ和音判定処理方法（図１６）を簡単に説明する。ＳＡＭ和音判定処理方法では、予め記録されている楽曲のサンプリング波形情報を一部ずつ、サンプリング波形情報の先頭から順に読み出して和音の判定処理を行っていく。具体的には、先ず、記録されている楽曲のサンプリング波形情報から一部の波形情報（例えば、４００ｍｓ長程度の情報）を解析対象情報として読み出し（ステップＡ）、読み出した情報の周波数成分をＦＦＴ（Fast Fourier Transform：高速フーリエ変換）により抽出し、周波数スペクトルを得る（ステップＢ）。次に、抽出した周波数成分の全帯域の情報を１オクターブ長毎に折り畳んで（重ね合わせて）１オクターブ長のスペクトル情報を作成し、このスペクトル情報中で振幅値が際立って大きい幾つかのピークを見つけ、このピークに対応する周波数成分を定める（ステップＣ）。そして、この周波数成分から各音高（和音構成音）を推定し、また、各ピーク値の周波数間隔からニューラルネットワーク（neural network）を利用して和音（根音及び種類）を推定するのである（ステップＤ）。
【０００４】
しかしながら、このＳＡＭ処理方法には次のような不都合がある:
（１）ＦＦＴで抽出された周波数成分を、全て、和音判定に使用するので、解析すべき周波数成分が多いため、和音判定を行う上での各解析処理における計算量が増加する。また、人間が音として感じないような低周波成分や高次の倍音までを解析に取込むので、解析精度が悪くなる。
【０００５】
（２）周波数情報のピーク値については、単に振幅値が大きい幾つかの周波数成分をピーク値として決定するようにしているが、波形情報より抽出された周波数成分に雑音的な周波数成分も多く含まれていることを考慮すると、上述の方法では、ピーク値を的確に決定することは困難である。例えば、周波数成分の振幅の大きさが似通っている帯域からピーク値を決定した場合、ピーク値が的確に決定されていない可能性が高く、それにより、和音が誤って判定されることになる。
【０００６】
（３）ピーク値に対応する周波数成分から音高を推定するに当っては、単純に４４０Ｈｚの周波数成分をＡ４（ラ）の音高としてその他音高を決定している。従って、解析する楽曲の音高が全体的にずれている場合には、間違った音高が推定されることになる。また、他の不都合として、音高のずれにより似通った振幅値が２音高分の周波数範囲にまたがってしまい、その場所からピーク値が決定された場合、本当はその範囲においては１音しか発音していないにも拘わらず、ピーク値が２音高分の周波数範囲にまたがっていることから、２つの音高の発音があると推定されてしまうような事態も生じる。
【０００７】
（４）Ｍａｒｃ  Ｌｅｍａｎ氏の研究では、和音の判定はニューラルネットワークを用いると記載されているのみである。従って、実際にどのような処理を行うことにより和音種類を判定しているかは不透明であり、且つ、ニューラルネットワークの動作は人間が明示的に挙動を制御することができないことから、実用化の上で必要な信頼性に乏しい。
【０００８】
【発明が解決しようとする課題】
この発明は、このような従来技術の問題点に鑑み、楽音波形情報から、できるだけ正確且つ迅速に和音を判定することができる和音判定装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
この発明によると、先ず、楽音波形の時間断片（短い持続時間）が、いくつかのピークエネルギーレベル（振幅）をもつ周波数スペクトルの形をとる周波数成分に分析され、次いで、所定周波数帯域の周波数スペクトルが和音判定のために切り出され、切り出された周波数スペクトルは、１オクターブ毎に折り畳まれてピークが強調され、分析されたスペクトルのピーク周波数位置と処理システムの対応周波数位置とのずれ量だけ周波数軸が調整され、そして、このように定めた周波数スペクトル（オクターブスペクトル）における複数のピーク位置を各和音種類の標準周波数成分パターンとパターン比較することによって、和音が決定される。
【００１０】
この発明の一つの特徴に従うと、入力楽音の波形データから周波数成分データを抽出する周波数成分抽出手段と、抽出された周波数成分データの中から、予め定められた周波数帯域の周波数成分データを切り出す周波数帯域切出し手段と、切り出された周波数成分データを１オクターブ毎に折り畳み、重ね合わせて入力楽音波形のオクターブプロファイルを生成するオクターブプロファイル生成手段と、生成されたオクターブプロファイルの半音区間におけるピーク周波数位置から、入力楽音のピーク周波数位置とこのピーク周波数位置に対応するシステムの周波数位置とのずれ量に相当するピッチ（入力楽音の基準ピッチとシステムの基準ピッチとのずれ幅）を求め、このピッチだけ当該オクターブプロファイルをシフトするピッチ調整手段と、各和音種類の和音構成音に対応する半音単位で所定周波数範囲に存在する周波数成分パターンを示す標準和音プロファイルを供給する標準和音プロファイル供給手段と、シフト（ピッチ調整／修正）されたオクターブプロファイルを標準和音プロファイルと比較し入力楽音の和音を決定する和音決定手段とを具備する和音判定装置が提供される。
【００１１】
この発明の別の特徴に従うと、この発明の和音判定装置は、さらに、切り出された周波数成分データのピークを半音単位で強調（明確化）するために、オクターブプロファイルの周波数成分間で半音区間を基本単位とした自己相関をとる自己相関手段を具備する。
【００１２】
この発明のさらに別の特徴に従うと、この発明の和音判定装置において、ピッチ調整手段は、オクターブプロファイル生成手段により生成されたオクターブプロファイルを半音区間毎に加算し（折り畳み重ね合わせて）、半音区間にわたって折り重なった周波数スペクトルを示すセミトーンプロファイルを生成するセミトーンプロファイル生成手段と、このセミトーンプロファイルを所定ピッチ量だけ順次（順々に）環状にシフトし、各シフト毎に分散を計算するセミトーンプロファイル環状シフト手段と、各シフトに対して計算された分散の中で最小の分散を与えるシフト量に基づいてずれ量に相当するピッチ（入力楽音の基準ピッチとシステムの基準ピッチとのずれ幅）を求めるピッチ算出手段と、求められたピッチだけオクターブプロファイルをシステムの基準ピッチの方向にシフトするピッチシフト手段であって、これにより、周波数軸のピッチ位置が容易且つ精確に決定され、従って、和音が正確に判定（認識）されるように構成されたピッチシフト手段とを備える。
【００１３】
この発明の他の特徴に従うと、この発明の和音判定装置において、標準和音プロファイル供給手段は、所定周波数範囲に存在する各周波数成分に対する各半音区間毎の重み付け値の形で各標準和音プロファイルを供給し、和音決定手段は、ピッチ調整（シフト）されたオクターブプロファイルにおける各半音区間毎の周波数成分の強度（エネルギーレベル）と各半音区間毎の重み付け値とを乗算し、これらの乗算結果を加算して、楽音波形の当該時間断片の和音を決定する。
【００１４】
〔発明の作用〕
この発明によると、解析対象情報から抽出された周波数成分のうち、人間が和音の認識に使用していると考えられている周波数を含む所定周波数帯域の周波数成分のみを切り出して和音の判定に利用する。従って、和音判定に不要なデータを解析対象から削除することにより、和音判定のための計算量を減少して処理を迅速に行うことができるだけでなく、解析精度も向上する。この周波数帯域は、例えば、６３．５〜２０３２Ｈｚに選定される。
【００１５】
この発明では、また、入力楽音の波形データから得たオクターブプロファイルの半音区間におけるピーク周波数位置から、入力楽音のピーク周波数位置とこのピーク周波数位置に対応するシステムの周波数位置とのずれ量に相当するピッチを求め、このピッチだけオクターブプロファイルをシフトさせてから、和音を判定する。つまり、入力楽音のピーク周波数位置のピッチを入力楽音の基準ピッチと呼び、当該ピーク周波数位置に対応する処理システムの周波数位置のピッチをシステムの基準ピッチ〔通常、このピッチは、４４０ＨｚをＡ４（ラ）の音高とみなして決定される。〕と呼ぶと、入力楽音の基準ピッチは、どの音高も、システムの基準ピッチから一定のｃｅｎｔ（ずれ幅）だけずれたところに対応するので、オクターブプロファイルの半音区間におけるピーク周波数位置から、解析する楽曲の音高（ピッチ）の全体的なずれを表わすずれ情報を求め、求められたずれ情報を加味して和音を識別する。従って、この発明によれば、解析しようとする実際の楽曲のピッチがシステムの基準ピッチからずれている場合でも、入力楽音の各音高の周波数位置とシステムの各音高の周波数位置を一致させ、正確に和音を判定することができる。また、ピーク値が２音高分の周波数範囲に間違ってまたがってしまうようなこともなくなる。
【００１６】
この発明では、さらに、和音構成音の各音間の周波数幅が常に半音長の整数倍であることを利用して、作成される１オクターブ長のスペクトル情報に、そのスペクトル情報を半音単位ずつ環状にシフトさせたものを掛け合わせるという処理を１１シフト分行い、１１シフト分のそれぞれの処理結果を足し合わせて、和音判定に必要とされる周波数の振幅（ピーク値）を雑音的な周波数の振幅より鋭く突起させている（この処理を、以下、「自己相関処理」と呼ぶ。）。これにより、ピーク値を容易且つ精確に検出することができ、正確な和音判定に大きく寄与することになる。
【００１７】
この発明によると、和音の判定は、決定された複数のピーク値の情報を予め用意された和音毎のピーク値の情報と比較してその一致度を求めることにより行っている。これにより、決定された複数のピーク値から和音を判定する処理が明確になり実用性がでると共に、比較する和音毎のピーク値が人為的に制御可能となり和音の判定の精度を自由に制御することができるようになる。
【００１８】
【発明の実施の形態】
以下、図面を参照しつつ、この発明の好適な実施例を詳述する。なお、以下の実施例は単なる一例であって、この発明の精神を逸脱しない範囲で種々の変更が可能である。
【００１９】
〔ハードウエア構成〕
図１を参照すると、ここには、この発明の一実施例による和音判定装置のハードウエア構成のブロック図が示されている。この例では、システムは、中央処理装置（ＣＰＵ：central processing unit ）１、タイマ２、読出専用メモリ（ＲＯＭ：read only memory）３、ランダムアクセスメモリ（ＲＡＭ：random access memory）４、検出回路５、表示回路６、外部記憶装置７、入／出力インターフェイス８及び通信インターフェイス９等を備え、これらの装置１〜９は、バス１０を介して互いに接続されており、パーソナルコンピュータ１１で構成することができる。
【００２０】
システム全体を制御するＣＰＵ１は、割込み処理に利用されるテンポクロックを発生するタイマ２を具備しており、所定のプログラムに従って種々の制御を行い、特に、後述する和音判定処理を実行し管理する。ＲＯＭ３には、このシステムを制御するための所定の制御プログラム等が記憶されており、これらの制御プログラムには、基本的な演奏情報処理プログラムと共に、この発明による和音判定に関する各種処理プログラムや、重み付けパターン等の各種テーブル、データを含ませることができる。ＲＡＭ４は、これらの処理に際して必要なデータやパラメータを記憶し、また、各種レジスタやフラグ、処理中の各種データ等を一時記憶するためのワーク領域として用いられ、例えば、サンプリング波形情報、周波数ファイル、オクターブプロファイル等々、この発明による和音判定の処理時に使用される各種ファイルの格納領域を備える（なお、各種ファイルの内容については後述する。）。
【００２１】
また、検出回路５には、キーボード１２やマウス１３等の操作子装置が接続され、表示回路６にはディスプレイ１４が接続され、入／出力インターフェイス８には、音源装置１５が接続され、パーソナルコンピュータ１１からの演奏データに基づく楽音をサウンドシステム１６を介して放音することができるようになっている。なお、音源装置１５はソフトウエアによる音源でもよい。また、音源装置１５にはＭＩＤＩ（Musical Instrument Digital Interface）機器１７が接続され、ＭＩＤＩ機器１７は、演奏情報をサウンドシステム１６を介して放音したり、或いは、音源装置１５をスルーして入／出力インターフェイス８を介してこの発明のシステム１１との間で演奏データを授受することができる。
【００２２】
〔外部記憶装置：ハードディスクやＣＤ−ＲＯＭドライブを利用する例〕
外部記憶装置７には、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive ）、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）ドライブ等の記憶装置が使用される。ＨＤＤは、制御プログラムや各種データを記憶しておく記憶装置である。ＲＯＭ３に制御プログラムが記憶されていない場合、このＨＤＤ内のハードディスクに制御プログラムを記憶させておき、それをＲＡＭ４に読み込むことにより、ＲＯＭ３に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２３】
一方、ＣＤ−ＲＯＭドライブは、ＣＤ−ＲＯＭに記憶されている制御プログラムや各種データを読み出す装置である。読み出した制御プログラムや各種データは、ＨＤＤ内のハードディスクにストアされる。制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ以外にも、外部記憶装置７として、フロッピィディスク装置（ＦＤＤ：Floppy Disk Drive ）、光磁気（ＭＯ：Magneto-Optical ）ディスク装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００２４】
〔ネットワークを利用してプログラムをダウンロードする例〕
この発明のシステム１１には、通信インターフェイス９を介して、ＬＡＮ（ローカルエリアネットワーク）やインターネット、電話回線等の通信ネットワーク１８に接続されており、通信ネットワーク１８を介してサーバコンピュータと通信することができる。この構成は、外部記憶装置７のＨＤＤ内に制御プログラムや各種データが記憶されていない場合、サーバコンピュータからプログラムやデータをダウンロードするために用いられる。クライアントとなる本システム１１は、通信インターフェース９及び通信ネットワーク１８を介してサーバコンピュータへとプログラムやデータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやデータを通信ネットワーク１８を介して本システム１１へと配信し、本システム１１が通信インターフェース９を介して、これらプログラムやデータを受信してハードディスク装置に蓄積することにより、ダウンロードが完了する。
【００２５】
〔和音判定メイン処理〕
さて、図２には、この発明の一実施例による和音判定処理の全体の流れ（メイン処理）を表わすフローチャートが示されている。ここで解析しようとする波形情報は楽曲一曲に相当するものであり、この実施例では、５．５ｋＨｚのサンプリング周波数でサンプリングされた波形情報が使用される。なお、解析される波形情報のサンプリング周波数はこの値に限らずともよい。しかしながら、例えば、サンプリング周波数を一般的なＣＤ等に適用されている４４．１ｋＨｚとして約４００ｍｓに相当するデータを一度に解析する場合には、ＦＦＴの解析ポイント数が１６３８４点となり、それに伴い計算量が増大する。従って、サンプリング周波数は、このような状況を考慮して適当な値に決定する必要がある。
【００２６】
図２のメイン処理における第１ステップＳＭ１では、上述のようにサンプリングされた波形情報を所定時間長の断片〔以下、「時間断片」（或いは単に「断片」）という。〕に分割してＲＡＭ４内の所定領域に格納する。この時間断片は、例えば、５．５ｋＨｚでサンプリングされた場合には、２０４８点分の時間長、つまり、約４００ｍｓに相当する時間をもつ。なお、楽曲の先頭等における明らかに雑音部分と見做し得る解析の必要のない箇所については、解析対象域から除外される。次のステップＳＭ２では、以後、分割された時間断片毎に和音を順次判定していくために、一断片分の波形情報をＲＡＭ４から読み出し、各断片の波形情報についてステップＳＭ３〜ＳＭ７の処理を実行する。
【００２７】
ステップＳＭ３においては、読み出された一断片分の波形情報についてＦＦＴ処理を行う。このＦＦＴ処理の結果、波形情報が周波数領域のデータに変更され、０Ｈｚから２７５０Ｈｚまでのスペクトル情報が得られる。このＦＦＴ処理の結果は、ＲＡＭ４内に周波数ファイルとして記憶される。ステップＳＭ４では、ステップＳＭ３で作成された周波数ファイルから所定周波数帯域の情報を切り出した上、１オクターブ毎に環状に折り畳んで、オクターブ関係にあるスペクトル情報を重ね合わす。この所定周波数帯域は、例えば、６３．５〜２０３２Ｈｚであり、折畳み（重合わせ）処理後の情報は、１２の半音区間から成る原オクターブプロファイルＰ０としてＲＡＭ４内の所定領域に記憶される。
【００２８】
ステップＳＭ５に進むと、周波数成分のピーク値をより正確に算出するために、原オクターブプロファイルＰ０に対してピーク明確化処理を行う。このピーク明確化処理では、まず、原オクターブプロファイルＰ０に対して自己相関処理を行うことによってピーク値を明確にした明確化オクターブプロファイルＱが得られる。次に、この明確化オクターブプロファイルＱを半音単位で折り畳んで（重ね合わせて）独自のピーク輪郭を示すセミトーンプロファイルＳ１を生成する。このセミトーンプロファイルＳ１のピーク位置及び輪郭形状に基づいて、入力楽音の基準ピッチとシステムの基準ピッチとのずれ幅を算出する。そして、算出されたずれ幅に基づいて明確化オクターブプロファイルＱのピッチを微調整（ピッチ補正）することによりプロファイルＰＦが作成され、このプロファイルＰＦはＲＡＭ４内の所定領域に格納される。
【００２９】
続くステップＳＭ６においては、これまでの処理（ＳＭ３〜ＳＭ５）により作成されたプロファイルＰＦを、予め用意した和音パターンと比較するパターンマッチング手法により、和音毎の有力候補性を表す得点を算出して和音を決定する。その後、ステップＳＭ７にて、決定された和音を得点と共にＲＡＭ４内に記録した上、ステップＳＭ８に進む。
【００３０】
ステップＳＭ８では、ステップＳＭ１で分割された全時間断片の波形情報について、ステップＳＭ２〜ＳＭ７の和音判定処理が終了したか否かを判断する。これらの判定が終了していなければステップＳＭ２に戻って次の時間断片の波形情報を読み出し、全時間断片の波形情報に対して処理が終了した場合には、このメイン処理を終了する。
【００３１】
〔楽音波形の時間領域での分割〕
図３及び図４は、この発明の一実施例による楽音波形の時間断片への分割処理フロー例を示す図であり、楽音波形を時間領域において断片に分割するこの処理は、図２のメイン処理のステップＳＭ１において実行される。図３では、この時間断片分割が音符位置に基づいて行われ、ステップＳＴ１にて、通常の手順を用いて小節頭及び１／４音符位置を決定し、続くステップＳＴ２において、これらの小節頭及び１／４音符位置の点における時間断片、即ち、１／４音符長の時間断片に分割する。
【００３２】
また、図４では、時間断片分割が和音演奏位置（chord depressed position）に基づいて行われ、まず、ステップＳＴ３にて、楽音波形中で他の位置と比べて際立って大きい振幅の位置を検出する。これは、このような位置は、複数の音符を演奏する（depressing or playing ）ことによって和音が指示される位置である蓋然性が非常に高いからである。そして、続くステップＳＴ４において、このように際立って大きい振幅の点における時間断片、即ち、和音持続時間の時間断片に分割する。
【００３３】
〔折畳み（重合せ）処理〕
図５は、メイン処理のステップＳＭ４で実行される折畳み処理ルーチンをより詳細に表わすフローチャートである。このルーチンはステップＳＦ１，ＳＦ２から成り、前半のステップＳＦ１において、メイン処理のステップＳＭ３で作成された周波数ファイルから所定周波数帯域内の周波数情報を抽出する。
【００３４】
ステップＳＭ３のＦＦＴ処理の結果ＲＡＭ４内の周波数ファイルに格納される周波数スペクトル情報は、５．５ｋＨｚのサンプリング周波数の場合、図６（ａ）に例示されるように、０〜２７５０Ｈｚの周波数成分から成る。このステップＳＦ１では、図６（ｂ）に例示されるように、この周波数情報から６３．５〜２０３２Ｈｚの解析対象帯域内の情報のみが抽出され、人間の可聴帯域が２０Ｈｚから２００００Ｈｚ程度であることを考慮して余分な周波数情報が削除される。このようにして抽出された周波数情報を以後の処理に利用することによって、以後の処理量を軽減すると共に高音域及び低音域の雑音を減少し、和音判定を有効に行う。
【００３５】
後半のステップＳＦ２では、ステップＳＦ１で抽出された周波数情報（周波数スペクトル情報）を１オクターブ単位で折り畳んで（重ね合わせて）行き、原オクターブプロファイルＰ０を作成する。この畳込み（重合せ）処理においては、図７に示すように、周波数情報は、１オクターブの周波数幅に切られ、これらは、１オクターブ区間にわたり加算される。つまり、互いにオクターブ的に関係し合う周波数情報が相互に足し合わされて、異なるオクターブにおける同一名音符の周波数情報が互いに足し合わされることになる。加算された周波数情報は、ここでは、「原オクターブプロファイルＰ０」と呼ばれる。この原オクターブプロファイルＰ０を作成することにより、解析対象帯域に含まれる音高に対応する周波数成分を明確にすることができ、正確な和音の判定に帰することが可能となる。
【００３６】
〔ピーク明確化処理〕
図８〜図１０は、メイン処理のステップＳＭ５で実行されるピーク明確化処理ルーチンをより詳細に表わすフローチャートである。このルーチンは、ステップＳＣ１〜ＳＣ６から成る自己相関処理とステップＳＣ７〜ＳＣ１３から成る微調整（ピッチ補正）処理とから構成される。前半のステップＳＣ１〜ＳＣ６においては、折畳み処理ルーチン（ステップＳＭ４、図５〜図７）で作成された原オクターブプロファイルＰ０について、振幅のピーク値を更に明確にするために自己相関がとられ、後半のステップＳＣ７〜ＳＣ１３では、和音判定を有効に行うために、ピーク値となる周波数の位置が後述する分散判定により微調整される。
【００３７】
〔自己相関処理〕
先ず、自己相関処理の第１ステップＳＣ１（図８）においては、現在処理中の時間断片における原オクターブプロファイルＰ０を周波数軸方向へ何半音分シフトしたかを表すバッファ“ｎ”（ｎの可能な範囲＝０〜１１）を初期化し、その値を「０」にセットした後、ステップＳＣ２に進む。ステップＳＣ２で“ｎ”を「１」だけインクリメントした後、ステップＳＣ３において、原オクターブプロファイルＰ０を“ｎ”半音分だけシフトしたシフトオクターブプロファイルＰｎを作成する。
【００３８】
例えば、原オクターブプロファイルＰ０は、１半音あたりＨ個のサンプルデータ（各周波数成分の振幅値データ）を持ち、全１２区間（原オクターブプロファイル全体）では１２Ｈ個のサンプルデータを持つとした場合、サンプルデータ番号をｋ（ｋ＝０，１，２，…，１２Ｈ−１）とし、原オクターブプロファイルＰ０のサンプル値をＰ０［ｋ］で表わすと、原オクターブプロファイルＰ０を“ｎ”半音だけシフトしたシフトオクターブプロファイルＰｎのサンプル値Ｐｎ［ｋ’］は、次式（１）で表わされる：
Ｐｎ［ｋ’］＝Ｐ０［（ｋ＋ｎＨ）ｍｏｄ  １２Ｈ］          …（１）
ここで、“（ｋ＋ｎＨ）ｍｏｄ  １２Ｈ”（＝ｋ’）は、数値“ｋ＋ｎＨ”をサンプル総数“１２Ｈ”で除算したときの剰余（モジューロ）を表わす。
【００３９】
この後、ステップＳＣ４において、シフトオクターブプロファイルＰｎと原オクターブプロファイルＰ０と間で振幅値について自己相関をとる。上記の例では、この自己相関によって作成される自己相関プロファイルＰ’ｎは、次式（２）で表わされるサンプル値Ｐ’ｎ［ｋ］をもつ：
Ｐ’ｎ［ｋ］＝Ｐ０［ｋ］×Ｐ０［（ｋ＋ｎＨ）ｍｏｄ  １２Ｈ］…（２）
【００４０】
続くステップＳＣ５においては、ステップＳＣ４での自己相関結果Ｐ’ｎを累算して累算オクターブプロファイルＱｎを作成する（既に作成されたオクターブプロファイルＱに新たな自己相関プロファイルＰ’ｎを加算する）。つまり、上記の例では、次式（３）を用いて“ｎ”個の自己相関プロファイルＰ’ｎのサンプル値Ｐ’ｎ［ｋ］を重ね合わせると累算オクターブプロファイルＱｎのサンプル値Ｑｎ［ｋ］が得られる：
Ｑｎ［ｋ］＝ΣＰ’ｎ［ｋ］                                …（３）
【００４１】
その後ステップＳＣ６に進み、このステップでバッファ“ｎ”の値が「１２」に到達したか否かを判断する。バッファ“ｎ”が「１２」になっていないときは、ステップＳＣ２に戻って“ｎ”の値をインクリメントしｎ＝１２になる迄ステップＳＣ２〜ＳＣ５の処理を繰り返す。そして、ｎ＝１２になると、ステップＳＣ１〜ＳＣ６での自己相関処理の結果として、次式（４）で表わされるサンプル値Ｑ［ｋ］をもつ明確化オクターブプロファイルＱが作成されることになる：
【数１】
0003826660.tif 000002
【００４２】
図１１は、ステップＳＣ１〜ＳＣ６での自己相関処理の概念を表わす図である。折畳み処理ルーチン（ステップＳＭ４、図５〜図７）で作成された原オクターブプロファイルＰ０（ｎ＝０）は、図１１の左上に例示され、第１回目の処理では、ｎ＝１として１半音だけ環状にシフトされ、第１シフトオクターブプロファイルＰ１が作成される。このプロファイルＰ１と原オクターブプロファイルＰ０との自己相関をとった結果として、第１自己相関プロファイルＰ’１が得られる。
【００４３】
同様にして、第２〜第１１回目の各処理によって、原オクターブプロファイルＰ０を半音単位毎に順次環状にシフトした第２〜第１１シフトオクターブプロファイルＰ２〜Ｐ１１が作成される。これらのプロファイルＰ２〜Ｐ１１の各々とと原オクターブプロファイルＰ０との自己相関により、それぞれ、第２〜第１１自己相関プロファイルＰ’２〜Ｐ’１１が得られる。各プロファイルＰ’２〜Ｐ’１１は、さらに、前回までの自己相関プロファイルＰ’１〜Ｐ’１０の累算により得られる前回のオクターブプロファイルＱｎ（ｎ＝１〜１０）と加算される。
【００４４】
このようにして、第１１回目の処理を終了した後には、これらの自己相関プロファイルＰ’１〜Ｐ’１１を全て加算したオクターブプロファイルＱ〔＝Ｑ１１（ｎ＝１１）〕が得られる。このプロファイルＱは、図１１の右下に例示されるように、周波数スペクトルのピーク値が原オクターブプロファイルＰ０よりも明確化された情報を提供し、従って、前述のように「明確化オクターブプロファイル」と呼ばれる。
【００４５】
つまり、各音名に対応する周波数成分位置の振幅値は、他の周波数成分位置の振幅値より大きく（発音されている音名であればなおさら大きい）、必ず半音間隔で存在するので、半音毎の自己相関プロファイルＰ’ｎを足していけば、各音名対応位置の振幅値は顕著に増大する。従って、半音間隔で周波数成分の振幅値を足し合わせることで、各音名に対応する周波数成分位置の振幅値が他の周波数成分位置の振幅値よりも突起した値になり、周波数軸上の音名存在位置が明確化される。
【００４６】
〔微調整処理〕
ピーク明確化処理ルーチンにおける後半の処理は、図９及び図１０のステップＳＣ７〜ＳＣ１３による微調整（ピッチ補正）処理であり、図１２は、図９のステップＳＣ７でのセミトーンプロファイル作成処理の概念を表わす図である。明確化オクターブプロファイルＱは、図１２（ａ）に例示されるように、１オクターブ〔＝１２００ｃｅｎｔ〕長の情報であり、入力される波形情報の楽音が等分平均律に調律されたものであれば、どの音高も、システムの基準ピッチ〔４４０Ｈｚ（Ａ４＝ラ）±０ｃｅｎｔ〕から一定のｃｅｎｔだけずれたところに対応し、また、ピークの山は、各音高の周波数位置を中心にして左右対象であると仮定することができる。この仮定に基づいて、入力楽音の基準ピッチとシステムの基準ピッチとのずれ幅を求め、このずれ幅を補正しておくと、入力楽音の各音高の周波数位置とシステムの各音高の周波数位置を一致させることができ、後段の和音判定のためのパターンマッチングを有効に行うことができる。そこで、この発明では、このずれ幅を正確に求めるためにセミトーンプロファイルが導入される。
【００４７】
図９及び図１０の微調整（ピッチ補正）処理の詳細を説明すると、まず、ステップＳＣ７（図９）において、前述した自己相関処理（ＳＣ１〜ＳＣ６）で作成された明確化オクターブプロファイルＱ〔図１２（ａ）〕を図１２（ｂ）のように半音単位（１００ｃｅｎｔ毎）に１２等分し、それらを重ね合わせて図１２（ｃ）のように１半音長のセミトーンプロファイルＳ０を作成し、ＲＡＭ４内に格納する。ここでいう「重ね合わせる」という処理とは、１２等分された１２個の１００ｃｅｎｔ長データ内の各周波数（ｃｅｎｔ）位置の振幅値を、対応位置毎に足し合わせるという処理である。さらに、ステップＳＣ７では、このセミトーンプロファイルＳ０を、図１２（４）のように、０ｃｅｎｔ位置＝１００ｃｅｎｔ位置とする環状のデータに加工され、環状セミトーンプロファイルＳ１としてＲＡＭ４内に格納する。
【００４８】
セミトーンプロファイルＳ０のピーク位置を見つける方法としては、プロファイルＳ１の微分（差分）値が正から負に変更する点をピーク位置とする方法が考えられるが、このやり方では、ノイズの多い波形情報では、正確にピーク位置を判定することができない。そこで、この発明では、環状セミトーンプロファイルＳ１を導入し、このプロファイルＳ１を徐々にシフトして分散度を求めて行き、最小の分散度を示すシフト位置からセミトーンプロファイルＳ０のピーク位置を見つける。これによって、入力楽音の基準ピッチとシステムの基準ピッチとのずれ幅を正確に求めることができ、従って、以後の和音決定を信頼性あるものとする。
【００４９】
そこで、ステップＳＣ８〜ＳＣ１１の循環処理によって環状セミトーンプロファイルＳ１の各シフト位置での分散値及び平均値を算出しておき、ステップＳＣ１２（図１０）にてセミトーンプロファイルＳ０のずれ幅を決定する。つまり、セミトーンプロファイルＳ０のピーク位置を見つけるには、各サンプル値分布の重心に相当する加重平均値ｋｍからｃｅｎｔの平均値μを求めて、この辺りが一番のピークらしいと推定すればよい。しかしながら、セミトーンプロファイルＳ０は環状に繋がっているので、後述するように、「分散（variance）」の考えを導入し、分散値σ2 が最小になるときの平均をとれば、一番もっともらしい状況でピーク位置を求めることができる。そのため、この状況を提供するセミトーンプロファイルＳ０のずれ幅を求める。
【００５０】
まず、ステップＳＣ８では、環状セミトーンプロファイルＳ１について、分散値σ2 及びｃｅｎｔの平均値μを算出してステップＳＣ９に進む。ステップＳＣ９では、ステップＳＣ８で算出された分散値σ2 及び平均値μを互いに対応付けてＲＡＭ４内の所定のバッファに記録し、ステップＳＣ１０に進む。ステップＳＣ１０では、環状セミトーンプロファイルＳ１の内容を所定幅（例えば、１ｃｅｎｔ）だけシフトした状態に書き換えた上、ステップＳＣ１１に進む。
【００５１】
ステップＳＣ１１では、ステップＳＣ１０でシフトされたセミトーンプロファイルＳ１の内容がセミトーンプロファイルＳ０の内容と一致しているか否かを調べ、両者が一致していない場合は、ステップＳＣ８に戻り、一致するまでステップＳＣ８〜ＳＣ１０の処理を繰り返す。環状セミトーンプロファイルＳ１のシフトが一巡して元の位置にあるセミトーンプロファイルＳ０と同位置に戻ると、ステップＳＣ１１で両セミトーンプロファイルＳ１，Ｓ０の内容が一致すると判断され、ステップＳＣ１２に進む。
【００５２】
ステップＳＣ１２では、分散値σ2 が最小値となるときの平均値μとそのときのセミトーンプロファイルＳ１のシフト幅とから、システムの基準ピッチからのずれ幅を算出する。そして、次のステップＳＣ１３において、ステップＳＣ１２で算出されたずれ幅だけオクターブプロファイルＱをシフトした状態を作成し、この状態のオクターブプロファイルをプロファイルＰＦとしてＲＡＭ４内の所定領域に格納し、ピーク明確化処理を終了する。
【００５３】
図１３は、ステップＳＣ８〜ＳＣ１１での微調整処理の概念を表わす図であり、図１３（ａ）〔＝同図上部〕には、１半音長（＝１００ｃｅｎｔ）のセミトーンプロファイルＳ０が例示されており、図１３（ｂ）〔＝同図中下部〕には、環状セミトーンプロファイルＳ１の順次シフトに伴う代表的な位置での波形が、平均位置及び分散の度合と共に、図解的に例示されている。環状セミトーンプロファイルＳ１は、ステップＳＣ１０で所定幅ずつシフトされ、シフトされた各々の状態で分散値及びｃｅｎｔの平均値が算出される。これらの値の算出は、例えば、以下のようにして行われる。
【００５４】
セミトーンプロファイルＳ０，Ｓ１は、前述した例に従うと、Ｈ個のサンプル値データをもつので、データ番号をｋ（ｋ＝０〜Ｈ−１）としてこれらのデータをＳ［ｋ］で表わすと、データ番号ｋの加重平均値ｋｍは次式（５）で表わされ、ｃｅｎｔの平均値μは次式（６）で表わされる：
【数２】
0003826660.tif 000003
【００５５】
また、分散値σ2 は、この加重平均値ｋｍを用いて次式（７）で表わされる：
【数３】
0003826660.tif 000004
【００５６】
〔和音決定処理〕
図１４は、メイン処理のステップＳＭ６で実行される和音決定処理ルーチンをより詳細に表わすフローチャートである。このルーチンでは、予め用意された複数の重み付けパターンとプロファイルＰＦ（ピーク明確化処理で最終的に得られたプロファイル）との内積をとって得点を求め、得点の総和に基づいて和音を決定する。
【００５７】
このルーチンの最初のステップＳＤ１では、プロファイルＰＦにおける基準点をこのプロファイルＰＦの最初（先頭）の半音区間とし、プロファイルＰＦの比較対象とする和音の最初の根音候補として音名“Ｃ（ド）”と選択する。この実施例では、折畳み処理の最初のステップＳＦ１（図５）で抽出される周波数帯域の最低周波数値を図６（ｂ）のように６３．５Ｈｚに選択した場合には、プロファイルＰＦの先頭の半音区間が“Ｃ（ド）”の音の±５０ｃｅｎｔの範囲をカバーする。さらに、次のステップＳＤ２で比較対象和音の種類候補を選択（例えば、最初は「メジャー」を選択）した上、ステップＳＤ３に進む。
【００５８】
ステップＳＤ３では、選択した根音及び和音種類に対応する重み付けパターンを読み出し、プロファイルＰＦとの内積を計算する。この重み付けパターンは、和音の和音構成音の音高差及び重みを表わすデータであり、複数の和音に対応させて予めＲＯＭ３に記憶されている。続くステップＳＤ４においては、その計算結果を、ＲＡＭ内の内積得点バッファの対応する候補和音欄に書き込み、ステップＳＤ５に進む。
【００５９】
ステップＳＤ５では、比較対象とする和音種類の候補が残っているか否かを判断し、未だ、和音種類候補が残っているときは、ステップＳＤ６を介してステップＳＤ３に戻る。ステップＳＤ６においては、次の和音種類のの候補が選択される。これらステップＳＤ３〜ＳＤ６の処理を繰り返し、同一根音に対する別の和音の重み付けパターンについてプロファイルＰＦとの内積の得点を算出していく。ステップＳＤ５で比較対象の和音種類の候補が残っていないと判断された場合には、ステップＳＤ７に進む。
【００６０】
ステップＳＤ７では、比較対象和音の根音が最終根音“Ｂ（シ）”であるか否かを判断し、未だ最終根音“Ｂ（シ）”に達していないときは、ステップＳＤ８に進み、比較対象和音の根音を半音上げた音高にした上、ステップＳＤ２に戻る。ステップＳＤ２に戻った後は、新たな根音に対してステップＳＤ３〜ＳＤ６の処理を繰り返す。
【００６１】
そして、全根音且つ全種類の和音について内積が計算され、内積得点バッファの全欄を内積得点で埋め終えると、ステップＳＤ７で比較対象和音の根音が最終根音“Ｂ（シ）”に到達したと判断されるので、ステップＳＤ９に進み、内積得点マトリクスを参照し、算出された全一致度から和音を決定する。
【００６２】
図１５には、上述した和音決定処理の概念図が示されている。図１５（ａ）〜図１５（ｃ）において、各輪環内の１２本の線分（１本の太線を含む）は１２の半音区間の境界を示し、各太線は基準点＝“Ｃ（ド）”の半音区間の先頭位置を表わす。また、各音高の周波数位置は各半音区間の中心位置にあり、例えば、“Ｃ（ド）”の音高を表わす６５．４Ｈｚの位置は、図１５（ａ）に破線で示すように、太線と左回りの最初の線分との中間点である。
【００６３】
図１５（ａ）は１オクターブ長のプロファイルＰＦを図解的に表わしており、輪環上の波線は、これまでのプロファイル図と同様に、プロファイルＰＦの振幅値の包絡線を表わす。図１５（ｂ）は、同様に、その和音候補である重み付けパターンを極く図解的に例示しており、各輪環上の矩形は各和音の構成音に対応する重みを表わし、図示の場合、和音構成音に対応する半音区間の重みを「１」とし、他の区間は「０」としてしている。
【００６４】
この例では、環状プロファイルＰＦと重み付けパターンとのパターンマッチング度を計測するために、まず、図１５（ｂ）の重みパターンは、図１５（ａ）のプロファイルＰＦと同じく、太線の基準位置が音名“Ｃ”の先頭位置に合わせられる。すなわち、重み付けパターンの基準点とプロファイルＰＦの基準点とを合致させる。
【００６５】
次に、プロファイルＰＦと各重みパターンとの内積を計算して得点を求める。すなわち、使用する重み付けパターンＰＴｎとプロファイルＰＦとの間で、対応する位置の要素同士（重み及び振幅）を掛け合わせて、その総和Ａｉ（ｉは候補和音の総数、ｉ＝１，２，…）を求める。この場合、計算を簡単にするために、プロファイルＰＦについては各半音区間の全サンプル振幅値の合計をとり、重み付けパターンについては、図１５（ｂ）のように、和音構成音に対応する半音区間の重みのみを「１」として、対応する区間の振幅値合計と重みとの積の総和を算出する方法を採ることができる。このような内積結果の一つを図解的に示すと、例えば、図１５（ｃ）〔マッチング度が高い場合〕のように表わされる。
【００６６】
各和音候補の重み付けパターンとの内積計算結果Ａｉは、内積得点として和音種類別及び根音別に内積得点バッファ内に記録される。そして、このような内積計算が全重み付けパターンに対して行われ、求める和音は、各重み付けパターンとの内積結果の得点（掛け算の総和）Ａｉのうちで最大の得点を与える和音に決定される。
【００６７】
以上、この発明の一実施例について説明してきたが、実施例で説明したピーク明確化処理の前半における自己相関処理については、必要に応じて省略することができる。また、この自己相関処理は、折畳み処理を行う前に実行してもよい。
【００６８】
また、実施例では、和音を決定する際に、作成されたプロファイルＰＦと予め用意されている重み付けパターンとの内積値を利用しているが、和音の決定方法は、これに限らずともよく、要は、作成されたプロファイルＰＦのピーク値及びピーク間隔を和音の特徴から特定の和音を決定する方法であればよい。さらに、好ましくは、その特徴がどの和音の特徴に当てはまるかを予め用意された和音の特徴パターンから検出する方法がよい。これは、和音毎の特徴パターンを人為的に設定することで和音決定の処理を人為的に制御することができるためである。
【図面の簡単な説明】
【図１】図１は、この発明の一実施例による和音判定装置のハードウエア構成を示すブロック図である。
【図２】図２は、この発明の一実施例による和音判定のメイン処理フローを示す図である。
【図３】図３は、この発明の一実施例による楽音波形の時間断片への分割処理フローの一例を示す図である。
【図４】図４は、この発明の一実施例による楽音波形の時間断片への分割処理フローの他の例を示す図である。
【図５】図５は、この発明の一実施例による折畳み処理フローを示す図である。
【図６】図７は、折畳み処理前の周波数情報の抽出を説明するための図である。
【図７】図７は、折畳み処理を説明するための図である。
【図８】図８は、この発明の一実施例によるピーク明確化処理フローの第１部分（１／３）を示す図である。
【図９】図９は、この発明の一実施例によるピーク明確化処理フローの第２部分（２／３）を示す図である。
【図１０】図１０は、この発明の一実施例によるピーク明確化処理フローの第３部分（３／３）を示す図である。
【図１１】図１１は、ピーク明確化処理の前半に行われる自己相関処理を説明するための図である。
【図１２】図１２は、ピーク明確化処理後半の微調整処理（ピッチ補正）のためのセミトーンプロファイルを説明するための図である。
【図１３】図１３は、セミトーンプロファイルのシフト態様を説明するための図である。
【図１４】図１４は、この発明の一実施例による和音決定処理フローを示す図である。
【図１５】図１５は、和音決定処理の概念を説明するための図である。
【図１６】図１６は、従来の和音判定方式（ＳＡＭ）を説明するための図である。
【符号の説明】
Ｐ０  原オクターブプロファイル、
Ｐｎ  シフトオクターブプロファイル、
Ｐ’ｎ  自己相関後のオクターブプロファイル、
Ｑ  オクターブプロファイル、
Ｓ０  セミトーンプロファイル、
Ｓ１  環状セミトーンプロファイル、
ＰＦ  プロファイル（ずれ幅補正後のセミトーンプロファイル）。
【図１】
0003826660.tif 000005
【図２】
0003826660.tif 000006
【図３】
0003826660.tif 000007
【図４】
0003826660.tif 000008
【図５】
0003826660.tif 000009
【図６】
0003826660.tif 000010
【図７】
0003826660.tif 000011
【図８】
0003826660.tif 000012
【図９】
0003826660.tif 000013
【図１０】
0003826660.tif 000014
【図１１】
0003826660.tif 000015
【図１２】
0003826660.tif 000016
【図１３】
0003826660.tif 000017
【図１４】
0003826660.tif 000018
【図１５】
0003826660.tif 000019
【図１６】
0003826660.tif 000020