(57)【要約】【課題】  マイクロフォンから入力されたピアノの演奏音のアタック検出遅れを少なくする。【解決手段】  スペクトル作成部１２は、演奏指示に従って演奏されたピアノ演奏音のデジタルデータをＦＦＴ窓毎にＦＦＴ処理してパワースペクトルを計算する。アタック検出部１３は、計算されたパワースペクトルのパワーが前回計算時より予定以上増大したか否かによって演奏音のアタックがあったか否かを判断する。スペクトル比較部１４は、前記アタックがあったと判定された以降に算出されたパワースペクトルが予め記憶されている音高毎のパワースペクトルのうち演奏指示に含まれる音高のものとの距離が近い否かを判断する。さらに、ＦＦＴ処理において前後のＦＦＴ窓同士が部分的に重複するように互いの窓をシフトさせる手段を備える。【選択図】        図１
2005234303.tif 000002
【特許請求の範囲】
【請求項１】
演奏指示に従って演奏された自然楽器演奏音のデジタルデータに対してＦＦＴ窓毎にＦＦＴ処理をして該デジタルデータのパワースペクトルを計算するＦＦＴ手段と、
前記各ＦＦＴ処理毎に計算されたパワースペクトルのパワーが前回計算時より予定以上増大したか否かによって該自然楽器演奏音のアタックがあったか否かを判断するアタック検出手段と、
前記アタックがあったと判定された以降に算出されたパワースペクトルが予め記憶されている自然楽器音の音高毎のパワースペクトルのうち前記演奏指示に含まれる音高のものとの距離が予定のしきい値以内であるか否かを判断する比較手段と、
前記ＦＦＴ手段のＦＦＴ窓を、前後のＦＦＴ窓同士が部分的に重複するように互いにシフトさせる手段とを具備したことを特徴とする演奏音判定装置。
【請求項２】
前記演奏指示を、予め選択された曲の演奏情報に従ってコンピュータの表示装置に表示するとともに、前記距離が予定のしきい値以内であるときに、前記演奏情報に従って次の演奏指示を表示する押鍵指示手段をさらに備えたことを特徴とする請求項１記載の演奏音判定装置。
【請求項３】
前記ＦＦＴ窓同士の重複期間を決定するシフト時間を予め設定しておき、後続の前記ＦＦＴ手段および前記アタック検出手段の処理が開始される時間までに、先行する前記ＦＦＴ手段および前記アタック検出手段の処理が終了しない場合に前記シフト時間を拡大する手段をさらに備えたことを特徴とする請求項１または２記載の演奏音判定装置。
【請求項４】
前記演奏情報に基づいて、演奏速度が速い所定のフレーズを予め検出する高速部検出手段手段と、
前記フレーズに対応する演奏指示の演奏音に対しては、前記アタック検出手段による処理を省略するとともに、
前記比較手段による判断を、アタックの有無に拘わらず、演奏指示後の入力音について実行する手段とを備えたことを特徴とする請求項１〜３のいずれかに記載の演奏音判定装置。
【請求項５】
演奏指示に従って演奏された自然楽器演奏音のデジタルデータに対してＦＦＴ窓毎にＦＦＴ処理をして該デジタルデータのパワースペクトルを計算するＦＦＴ手段と、
前記各ＦＦＴ処理毎に計算されたパワースペクトルのパワーが前回計算時より予定以上増大したか否かによって該自然楽器演奏音のアタックがあったか否かを判断するアタック検出手段と、
前記アタックがあったと判定された以降に算出されたパワースペクトルが予め記憶されている自然楽器音の音高毎のパワースペクトルのうち前記演奏指示に含まれる音高のものとの距離が予定のしきい値以内であるか否かを判断する比較手段と、
前記ＦＦＴ手段のＦＦＴ窓を、前後のＦＦＴ窓同士が部分的に重複するように互いにシフトさせる手段としてコンピュータを機能させるための演奏音判定プログラム。
【請求項６】
前記演奏指示を、予め選択された曲の演奏情報に従ってコンピュータの表示装置に表示するとともに、前記距離が予定のしきい値以内であるときに、前記演奏情報に従って次の演奏指示を表示する押鍵指示手段としてコンピュータを機能させるプログラムを備えた請求項５記載の演奏音判定プログラム。
【請求項７】
前記ＦＦＴ窓同士の重複期間を決定するシフト時間を予め設定しておき、後続の前記ＦＦＴ手段および前記アタック検出手段の処理が開始される時間までに、先行する前記ＦＦＴ手段および前記アタック検出手段の処理が終了しない場合に前記シフト時間を拡大する手段としてコンピュータを機能させるためのプログラムをさらに備えた請求項５または６記載の演奏音判定プログラム。
【請求項８】
前記演奏情報に基づいて、演奏速度が速い所定のフレーズを予め検出する高速部検出手段手段と、
前記フレーズに対応する演奏指示の演奏音に対しては、前記アタック検出手段による処理を省略するとともに、
前記比較手段による判断を、アタックの有無に拘わらず、演奏指示後の入力音について実行する手段としてコンピュータを機能させるためのプログラムを備えた請求項５〜７のいずれかに記載の演奏音判定プログラム。
【請求項９】
請求項５〜８のいずれかに記載の演奏音判定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然楽器の演奏音判定システムに関し、特に、楽音判定の基礎情報としてのアタック（楽器音の立ち上がり）を検出するのに好適な演奏音判定装置、演奏音判定プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
例えば、特公平２−７０５号公報に開示されているように、鍵盤楽器の演奏を独習するための押鍵指示手段を有する電子楽器が知られている。この電子楽器では、記憶された演奏情報が表示回路に順次読み出され、鍵盤の各鍵に対応して設けられた表示ランプがこの演奏情報に従って点灯される。演奏者による操作鍵はキースキャン回路で検出され、この操作鍵の音高が表示ランプで指示された演奏情報の音高と一致した場合に次の演奏情報が表示回路に読み出される。
【０００３】
しかし、このような押鍵指示手段は、キースキャン回路を備えた電子楽器では容易に実現できるが、キーススキャン回路を持たないアコースティックピアノのような自然楽器では実現が困難である。自然楽器にキースキャン回路を設けることが考えられるが、キースキャン回路に必要なキースイッチや表示ランプを鍵毎に後付けする作業が繁雑であり、手軽には行えない。
【０００４】
キースキャン回路を用いる代わりに、演奏による楽音の周波数分析により操作鍵を検出することが考えられる。例えば、特公平１−５１２００公報に記載された表示装置では、音声信号の周波数分析結果に基づいて判定された音声信号の音高を、ディスプレイ上の五線譜に音符として表示する。
【０００５】
しかし、ピアノ音のような倍音成分を多く含む楽音の音高検出では、押鍵の倍音成分つまり高調波成分によって音高を誤判断してしまったり、オクターブ間隔の二つの和音と該和音の下の単音との判別（例えば、Ｃ３とＣ４の和音とＣ３単音との判別）ができなかったりすることがある。これらは互いに倍音構成が似ているからである。
【０００６】
また、同時に複数の基音とその倍音を発生する楽器の演奏に対応したＭＩＤＩコードを生成する装置が提案されている（特許第２８９０８３１号公報）。この装置では、演奏楽音の波形データから基音に対応した周波数成分の波形データを抽出し、かつそのエンベロープデータを検出する手段を備える一方、楽器が発生する各基音毎にそのエンベロープ波形に対応して基音エンベロープデータを記憶している記憶手段を備え、検出されたエンベロープデータと記憶されている基音エンベロープデータとを相互相関によって比較し、楽器音を判定する。この装置では、構成が非常に複雑であって、特に、ソフトウェアでエンベロープデータの比較や楽器音の判定をリアルタイムで処理するのが困難である。
【０００７】
特許第２８０６０４７号公報には、シンセサイザで種々の楽器音を種々の音程で順次組合わせて作成した信号と入力信号とを比較して楽音から採譜する装置が提案されている。しかし、この装置では、和音も含めたすべての組み合わせの音と比較する必要があるので、計算時間が膨大になるという問題がある。
【特許文献１】特公平２−７０５号公報
【特許文献２】特公平１−５１２００公報
【特許文献３】特許第２８９０８３１号公報
【特許文献４】特許第２８０６０４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のように、キースキャン手段を有していないアコースティックピアノでは、指示通りに押鍵できたかどうかの判定ができないし、マイクロフォンから入力された楽音から押鍵の正確さをリアルタイムで判定するのは容易ではないという問題点があった。
【０００９】
そこで、本出願人は、各音高のパワースペクトルを単音モデルとして記憶しておき、押鍵指示に従って演奏された音のパワースペクトルとこの単音モデルとを比較し、両者のパワースペクトルの距離が予定の範囲内の場合に押鍵指示を次に進める方法を提案した（特願２００３−１３４３７２号）。この方法は、演奏音からピッチ等のパラメータを検出するのと比較して計算が単純で、しかも、演奏しようとする楽器を実際に弾いて、その音に基づいてモデルを作成できるので、調律のずれ具合にかかわらず演奏音が正しいかどうかを判定することができる。
【００１０】
この方法では、アタックのパワースペクトル同士を比較して演奏音が正しいかどうかを判断するのが好ましい。アタック検出は、マイクロフォンからの入力音に対する高速フーリエ変換（ＦＦＴ）を行い、検出されたパワースペクトルが、前回検出されたパワースペクトルに対してどの程度増加しているかによって行うことができる。
【００１１】
ＦＦＴは所定のＦＦＴ窓の長さ毎に区切って実施され、当該窓時間でアタックが検出されない場合は、次の窓時間内で再度ＦＦＴを実施する。しかし、ＦＦＴの窓時間は長いので、このように窓の長さ毎に区切って処理を行っていたのではアタックの検出が遅れてしまう。特に、アルペジオのように複数音を素速く演奏する場合にはアタック検出が間に合わない。例えば、アコースティックピアノの最高音の場合、音の持続時間が約４０ｍ秒程度しかないが、１１０２５Ｈｚで１０２４ポイントのＦＦＴでは窓時間が約９３ｍ秒となり、アタックの瞬間を捉えることができない。
【００１２】
本発明は、上記課題に鑑み、ピアノ等、自然楽器が指示通りに弾けたかどうかを判定する際に必要なアタックの検出を確実に行うことができる自然楽器の演奏音判定システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決し、目的を達成するための本発明は、演奏指示に従って演奏された自然楽器演奏音のデジタルデータに対してＦＦＴ窓毎にＦＦＴ処理をして該デジタルデータのパワースペクトルを計算するＦＦＴ手段と、前記各ＦＦＴ処理毎に計算されたパワースペクトルのパワーが前回計算時より予定以上増大したか否かによって該自然楽器演奏音のアタックがあったか否かを判断するアタック検出手段と、前記アタックがあったと判定された以降に算出されたパワースペクトルと予め記憶されている自然楽器音の音高毎のパワースペクトルのうち前記演奏指示に含まれる音高のものとの距離が予定のしきい値以内であるか否かを判断する比較手段と、前記ＦＦＴ手段のＦＦＴ窓を、前後のＦＦＴ窓同士が部分的に重複するように設定する手段とを具備した点に第１の特徴がある。
【００１４】
また、本発明は、前記演奏指示を、予め選択された曲の演奏情報に従ってコンピュータの表示装置に表示するとともに、前記距離が予定のしきい値以内であるときに、前記演奏情報に従って次の演奏指示を表示する押鍵指示手段を具備した点に第２の特徴がある。
【００１５】
また、本発明は、前記ＦＦＴ窓同士の重複期間を決定するシフト時間を予め設定しておき、後続の前記ＦＦＴ手段および前記アタック検出手段の処理が開始される時間までに、先行する前記ＦＦＴ手段および前記アタック検出手段の処理が終了しない場合に前記シフト時間を拡大する手段をさらに備えた点に第３の特徴がある。
【００１６】
また、本発明は、前記演奏情報に基づいて、演奏速度が速い所定のフレーズを予め検出する高速部検出手段手段と、前記フレーズに対応する演奏指示の演奏音に対しては、前記アタック検出手段による処理を省略するとともに、前記比較手段による判断を、アタックの有無に拘わらず、演奏指示後の入力音について実行する手段を備えた点に第４の特徴がある。
【発明の効果】
【００１７】
第１の特徴によれば、演奏指示に従って演奏された楽器音のパワースペクトルの増大量が予定以上であったときにアタックがあったと判断される。そして、この楽器演奏音のパワースペクトルが予め記憶されている自然楽器音の音高毎のパワースペクトルのうち前記演奏指示に含まれる音高のものと一致したときに指示どおりに演奏されたと判定されて演奏指示が進行される。
【００１８】
特に、アタックの判断ではＦＦＴ窓が部分的に重複するように設定されるので、先のＦＦＴ窓に関する計算に続く次のＦＦＴ窓に関する計算は、入力データがＦＦＴ窓の長さの分だけ新たに入力されなくても、ＦＦＴ窓を部分的に重複させるためにシフトさせた時間分のデータが先の計算後に入力されていれば実行できる。したがって、先行するＦＦＴ窓の直後に現れているアタックは、次にＦＦＴ窓の長さ分のデータが入力されるまで待たなくても、先のＦＦＴ窓に関する計算に続けて短時間内に実行される次のＦＦＴ窓に関する計算で検出される。
【００１９】
第２の特徴によれば、前記演奏指示は、コンピュータの表示装置に表示され、演奏音のパワースペクトルと予め記憶されている自然楽器音のパワースペクトルとが略一致したときに演奏指示が進行される。
【００２０】
第３の特徴によれば、コンピュータの能力に応じて、ＦＦＴ窓の重複時間を決定するシフト時間を調節することができるので、コンピュータの能力内でできるだけ高速でアタックの有無を判断することができる。
【００２１】
アルペジオ等、演奏速度が速い演奏ではアタックの有無を判断してからパワースペクトルの比較を行ったのでは、演奏者の速い演奏に判定が追いつかない。第４の特徴によれば、このような速い演奏においては、アタックの有無を判断することなくパワースペクトルの一致を判断することができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明を詳細に説明する。図１は、本発明の楽音判定装置の一実施形態に係るアコースティックピアノ（以下、特に電子ピアノと区別しない場合は、単に「ピアノ」と呼ぶ）のレッスンシステムのブロック構成図である。このレッスンシステムでは、予め準備された演奏情報に基づいてピアノの鍵もしくは音高の指示、および押鍵タイミングの指示を含む押鍵指示を表示し、演奏者はこの押鍵指示に従って順次演奏を進めていく。具体的処理は、モデル作成フェーズとレッスンフェーズとからなる。モデル作成フェーズでは、レッスンに先立ち、レッスンに使用するピアノの各鍵の発生音のパワースペクトルを単音モデルとして記憶する。そして、レッスンモードでは、押鍵指示のための表示を行うとともに（押鍵指示は、図１２に関して後述する）、押鍵指示に従って行われる演奏音のパワースペクトルと前記単音モデルとを比較し、両者のパワースペクトルが予定の距離内にあれば押鍵指示を先に進める。
【００２３】
図１に示すレッスンシステムは、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、音源装置４、スピーカ５、Ａ／Ｄ変換器６、入力装置（キーボードやマウス）７、および表示装置８を含むパーソナルコンピュータで要部を構成することができる。表示装置８としては液晶ディスプレイやブラウン管等、パーソナルコンピュータの処理結果を表示するための周知の表示手段を使用することができる。パーソナルコンピュータには外部記憶装置９が接続され、かつＡ／Ｄ変換器６を介してマイクロフォン１０が接続される。マイクロフォン１０はピアノＰの発生音を採取するために設けられるものであり、ピアノＰ内に配置されるのが望ましい。
【００２４】
ＣＰＵ１は、音量測定部１１、スペクトル作成部１２，アタック検出部１３、スペクトル比較部１４、および押鍵指示部１５を要部機能として備える。音量測定部１１は、マイクロフォン１０から入力された音のレベル（音量）を検出する。スペクトル作成部１２は、マイクロフォン９およびＡ／Ｄ変換器６を通じて入力されたデジタル楽音信号からパワースペクトルを得るＦＦＴ機能を有する。ＦＦＴによって得られたパワースペクトルはＲＡＭ３に記憶される。アタック検出部１３は、検出されたパワースペクトルに基づいてアタックを検出する。スペクトル比較部１４はモデル作成フェーズおよびレッスンフェーズにおいてスペクトル作成部１２でそれぞれ作成されたパワースペクトルの距離を比較して演奏が押鍵指示通り行われたかどうかを判断する。押鍵指示部１５は、演奏情報に従って表示装置８への押鍵指示表示のための表示データを作成する。表示データは入力装置７から入力される演奏開始指示に応答して作成され表示装置８に入力される。
【００２５】
図２は、レッスンで表示装置８に押鍵指示を表示したり伴奏をしたりするのに使用される演奏情報のフォーマット例である。演奏情報には、少なくともイベントデータ、およびイベントデータの読み出しタイミングを指示するタイミングデータとが記憶されている。イベントデータはノートナンバを含むノートオンデータおよびノートオフデータからなる。タイミングデータは、例えば、一つのイベント終了から次のイベント発生までの時間情報として設定される。イベントデータとタイミングデータは、図示のように、アドレス進行に従って記憶される。この演奏情報は、ＲＡＭ３もしくは外部記憶装置９に記憶しておくことができる。
【００２６】
図３は、モデル作成フェーズに関するＣＰＵ１の処理を示すフローチャートである。ステップＳ１では、曲の選択を促す画面を表示装置８に表示する。選曲されたならば（ステップＳ２肯定）、ステップＳ３に進んで、選ばれた曲の演奏情報を走査してその曲の音域を検出する。この音域で単音モデルを作成するためである。単音モデル作成する音域は、選曲に従って行うのでなくてもよい。例えば、演奏者が直接音域を入力してもよいし、選曲に代えて技量のレベルを選択できるように画面表示してもよい（図９に関して後述）。また、演奏者が直接音域を入力する際の参考となるように選曲された曲の音域を表示してもよい（図１０に関して後述）。
【００２７】
ステップＳ４では、収録する単音モデルの音高を決定する。最初は上記音域中の最低音を収録音高として決定する。ステップＳ５では、単音モデル収録用の押鍵指示（レッスンフェーズでの押鍵指示と区別して、「モデル押鍵指示」という）として表示装置８に収録音高を表示する（図１１に関して後述する）。モデル押鍵指示は、表示装置８によらず音源装置４を使って音高に対応した楽音データを作成し、スピーカ５で発音させるようにしてもよい。また、発音による指示は表示装置８による表示と併せて行ってもよい。
【００２８】
ステップＳ６では、音量測定部１１での音量測定を開始する。音量測定は離鍵指示まで継続される。ステップＳ７で音量がアタック検出のためのしきい値を超えているか否かが判断され、この判断が肯定ならばアタックを検出したとしてステップＳ８に進む。ステップＳ８では、ＦＦＴによりパワースペクトルを計算し、このパワースペクトルおよびパワースペクトル計算時の音量をＲＡＭ３に一時的に保存する。
【００２９】
ステップＳ９では、表示装置８に離鍵を促す指示をする。離鍵指示は表示装置１１での表示またはスピーカ５による音もしくは音声の指示であってもよい。ステップＳ１０では、音量が無音検出のためのしきい値以下になったかどうかをを判断する。音量がこのしきい値以下になれば実質的に無音と判断され、ステップＳ１１に進む。
【００３０】
ステップＳ１１では、モデル押鍵指示から離鍵指示までの音量の最大値が許容範囲に入っているかどうかが判断される。最大音量が許容範囲にない場合は、極端に強くまたは極端に弱く弾かれたためと判断され、単音モデルとして適当でないので、再度押鍵を要求するためにステップＳ５に進む。アタックを検出したとみなしたときの音量から判断するのではなく、測定した音量の最大値によって押鍵強さが適当であるかどうかを判断するのは、アタック時点で音量が最大になるとは限らず、通常はアタック検出後に音量は最大値となるからである。なお、押鍵強さは、音量によって判断するのに代えて振幅の最大値によって判断してもよい。
【００３１】
正しく押鍵されたと判断されたならば、ステップＳ１２に進み、ステップＳ８で一時的に保存したパワースペクトルおよび音量をこの音高の単音モデルとして対応づけてＲＡＭ３もしくは外部記憶装置９に記憶する。
【００３２】
ステップＳ１１が否定の場合は、押鍵強さを変えて弾くようにメッセージを表示してからステップＳ５に進むようにしてもよい。例えば、許容範囲に対して音量が大きいときは「もっと弱く弾いてください」と表示し、許容範囲に対して音量が小さいときは「もっと強く弾いてください」と表示する。
【００３３】
ステップＳ１３では、ステップＳ３で決定された音域の最終音（最高音）の単音モデルを作成したかどうかを判断し、最終音の単音モデルを作成したのでなければ、ステップＳ１４で、音高を１段階高くした後、ステップＳ５に進む。ステップＳ１４では、音高を音階に従って直上の音高に上げるのではなく、白鍵および黒鍵について、それぞれ個別に連続して押鍵できるように音高を上げていくのがよい。音階に従って順に音高を上げていくと白鍵と黒鍵を交互に弾く場合が生じ、モデル押鍵指示と対応しない鍵を弾く誤りが起こりやすいからである。
【００３４】
最終音まで単音モデルを作成したならば、ステップＳ１３は肯定となって、このモデル作成フェーズの処理を終了する。
【００３５】
図４は、レッスンフェーズに関するＣＰＵ１の処理を示すフローチャートである。ステップＳ２１では、ステップＳ１２で記憶した単音モデルを読み込む。ここでは最新に記憶された単音モデル、もしくは前回のレッスンで使用した単音モデルを自動的に読み込んでもよいし、記憶されている単音モデルを表示装置８に表示して演奏者が選択したものを読み込んでもよい。ステップＳ２２では、レッスンする曲の選択を促す画面を表示装置８に表示する。この画面は、ＲＡＭ３もしくは外部記憶装置９に予め記憶されているレッスン曲データに基づいて曲の一覧表として作成される。記憶されているレッスン曲のうち演奏者の技量レベルに応じた曲のみを表示するようにしてもよい。
【００３６】
ステップＳ２３では、レッスン曲が選ばれたかどうかが判断され、レッスンする曲が選曲されたならば（ステップＳ２３肯定）、ステップＳ２４に進んで、選ばれた曲の演奏情報をＲＡＭ３もしくは外部記憶装置９から読み出す。
【００３７】
ステップＳ２５では、選ばれた曲の演奏情報中のすべての音の高さが、選択された単音モデルの音域内に含まれているかどうかを判断する。この判断が肯定ならば、ステップＳ２６に進むが、否定であれば、改めて選曲を促すためにステップＳ２２に戻る。なお、選曲に戻ってもよいし、単音モデルの選択をやり直すようにしてもよい。
【００３８】
ステップＳ２６では、選ばれたレッスン曲の最初の楽音の音高を、変数としてＲＡＭ３にセットする。そして、ステップＳ２７ではこの音高に対応する鍵を弾くことができるように指示（押鍵指示）を行う。押鍵指示は、詳細を後述するように表示装置８に鍵盤もしくは楽譜を表示することによって行う。ステップＳ２８では、単音モデルのうちから押鍵指示の音高に対応するものを読み出す。
【００３９】
ステップＳ２９では、スペクトル作成部１２の機能により、マイクロフォン１０からの入力音のパワースペクトルを算出する。ステップＳ３０では、アタックが既に検出されているか否かを判断する。通常アタックが検出されるのは、音が立ち上がる瞬間のみであり、必ずしも再びアタック検出時のパワースペクトルと単音モデルとが一致するとは限らない。したがって、アタックが一度検出された後、同じ楽音が発生されている間は、このステップＳ３０の判断によって２度目以降のアタック検出を回避する。最初はこのステップＳ３０の判断は否定であり、２度目以降に判断が肯定となり、ステップＳ３１に進んでアタック検出を行う。アタック検出はパワースペクトルのパワー増加分が予定量を超えたか否かによって判断する。アタックが検出されたならばステップＳ３２が肯定となり、ステップＳ３３でアタック検出フラグをセットしてステップＳ３４に進む。
【００４０】
ステップＳ３４では、スペクトル比較部１４の機能により、ステップＳ２９で計算されたパワースペクトルと単音モデルとが一致しているかどうかを判断する。この判断は、単音モデルのパワースペクトルとステップＳ２９で計算されたパワースペクトルとの距離の合計によって行う。つまり各周波数成分毎に互いの距離を算出し、その合計がしきい値を超えているか否かによって両スペクトルが一致しているか否かを判断する。両パワースペクトルの単純比較でもよいし、互いの音量の違いに応じて正規化したパワースペクトル同士の比較であってもよい。また、ユークリッド距離を使用するのがよい。ユークリッド距離によれば、二つの値の差が２乗されて、その結果、該差が強調され、二つの値の一致の判別が容易だからである。
【００４１】
なお、パワースペクトルの比較に際して、スペクトル作成部１２から入力されるパワースペクトルのレベルが、単音モデルのパワースペクトルのレベルに対してどれだけ不足しているかを各周波数成分毎に算出し、その不足分の合計を算出するようにしてもよい。ピアノ等、残響が多く残る楽器には、この方が好都合である。
【００４２】
両パワースペクトルが一致していない場合は、ステップＳ２９に戻る。両パワースペクトルが一致していた場合はステップＳ３５に進んでアタック検出フラグをリセットする。
【００４３】
ステップＳ３６では、演奏情報の最後の楽音について単音モデルとの一致が終了したか否かが判断される。最後の楽音についての単音モデルとの比較処理が終了していない場合は、ステップＳ３７において、演奏情報の次の楽音データの音高を、変数としてＲＡＭ３にセットし、ステップＳ２７に進む。
【００４４】
最後の楽音についての前記比較処理が終了した場合は、ステップＳ３８に進んでもう一度同じ曲についてレッスンを行うかどうかを演奏者に選択させる表示をしたり、ステップＳ３９に進んで別の曲のレッスンを行うかどうかを演奏者に選択させる表示をしたりする。
【００４５】
ステップＳ３８が肯定の場合はステップＳ２６に進むし、ステップＳ３９が肯定ならばステップＳ２２に進む。ステップＳ３６およびステップＳ３９が否定ならば、レッスンフェーズを終了する。
【００４６】
次に、アタック検出をより確実に行うことができる処理について説明する。図５は、入力データの入力タイミングとＦＦＴ窓の位置とを示す図である。アタック検出は、マイクロフォン１０から入力された音のデータに対して、このように区切られたＦＦＴ窓毎に行われる。
【００４７】
図６は、入力データの入力タイミングと処理タイミングとの関係を示す図である。例えば、入力データがタイミングｔ０から蓄積開始されて、タイミングｔ１でＦＦＴに必要な分が蓄積されると、その入力データに関して計算が開始され、タイミングｔ２で計算が終了してアタックか否かの判断がなされる。そして、アタックが検出されなければ、タイミングｔ１〜t３間のデータが採取されるのを待ってタイミングｔ３で再び計算が開始され、タイミングｔ４で計算が終了してアタックか否かの判断がなされる。この計算タイミングによれば、例えば、タイミングｔ１とｔ２との間で生じたアタックは、タイミングｔ４において、つまり実際のアタック時から、ほぼＦＦＴ窓の長さ分遅れた時点で検出される。
【００４８】
そこで、次のようにして、このようなアタック検出の遅れを解消する。図７は、アタック検出の遅れを解消できる入力データの入力タイミングと処理タイミングとの関係を示す図である。図７において、タイミングｔ１で、タイミングｔ０からタイミングｔ１の間に入力されたデータに対してＦＦＴ処理を開始し、さらにタイミングｔ１からから時間ΔＬずらした時点ｔ２０で、その時点ｔ２０直前のＦＦＴ窓時間に相当する時間Ｔの入力データに対してＦＦＴ処理を開始する。時間ΔＬは予め設定される値で、例えば、ＦＦＴ窓の１／４の長さに設定しておく。このＦＦＴ処理に基づくアタック有無は計算開始から処理時間ΔＴ経過後のタイミングｔ２１で検出される。つまり、タイミングｔ１の直後に生じたアタックがタイミングｔ２１で検出される。同様にタイミングｔ０から時間２ΔＬ、３ΔＬ…、のように、順次、ＦＦＴ窓を予定のシフト時間ΔＬずつずらした時間の入力データについてＦＦＴ処理を行う。したがって、図６に関して説明した例のようにタイミングｔ４でアタック検出される処理よりも短時間でアタック検出することができる。
【００４９】
図８は、ＦＦＴ窓をずらしてＦＦＴ処理を行ってアタック検出遅れを解消する図７の処理に係る入力データの入力タイミングとＦＦＴ窓の位置とを示す図である。
【００５０】
なお、ＣＰＵ１の処理能力によって、ＦＦＴ処理に時間がかかる場合、つまりタイミングｔ１から開始される処理時間ΔＴが、ずらした時間（シフト時間）ΔＬより長い場合は、シフトΔＬ時間を処理時間ΔＴと同じか、処理時間ΔＴより長くなるように延長する。一方、処理時間ΔＴが、シフト時間ΔＬより長い場合は、シフトΔＬ時間を処理時間ΔＴに合わせて短縮することもできる。こうして、ＦＦＴ処理の時間に応じてできるだけ素速くアタック検出することができる。
【００５１】
また、１回のＦＦＴ処理で１度しかアタック検出できないので、一つのＦＦＴ窓内で２回アタックがあるような場合、例えば、アルペジオのように速いフレーズでは、後の音のアタックを検出することができない。この場合、押鍵指示が進行しないことになる。そこで、このような速いフレーズのときはアタック検出をスキップして処理を先に進めることができる。アルペジオ等であるか否かは予め演奏情報を先読みして判断する処理ルーチンを設けておくことによって検出することができる。つまり演奏情報を予め読み取って、アルペジオなど演奏速度が速いフレーズの位置（発生タイミング）を予め記憶しておく。そして、このフレーズの発生タイミングでの楽音に対する処理では、図４のステップＳ２９でパワースペクトルを算出したならば、アタックの検出如何にかかわらず、直ちに単音モデルとの比較（ステップＳ３４）に移行する。
【００５２】
アタックの有無を判断するのに使用されるパワースペクトルの増加分のしきい値は、モデル作成フェーズにパワースペクトルと併せて記憶した音量に応じて連動させてもよい。また、アタック検出処理（ステップＳ３１，Ｓ３２）を繰り返してもアタックが検出されない場合は、しきい値設定画面を表示装置８に表示して演奏者にしき値の調節を促してもよい。
【００５３】
アタックを検出した後に、パワースペクトル中に次に弾くべき音のピークが立っているかチェックして、余分な音ではアタックを検出しないようにすることもできる。
【００５４】
図９は、技量レベルに応じた音域を表示画面上で設定するための表示装置８上の表示例を示す図である。図９には、鍵盤図形Ｋを表示し、この鍵盤図形Ｋ上に、技量レベルを示す「入門」、「初級」、「中級」および「上級」の文字と、各技量レベルのそれぞれに対応した音域を矢印で表示する。この各技量レベルのいずれかを選択すれば、各レベルに対応した図示の範囲の音域が設定される。例えば、この画面の技量レベルを示す各文字上にカーソルを合わせて指示を入力すれば、各レベルに対応した図示の範囲がレッスン音域として設定されるようにする。
【００５５】
図１０は、音域設定の際の入力の参考になるように表示される画面の例を示す図である。図１０において、表示された鍵盤図形Ｋの鍵のうち、白鍵および黒鍵とは異なる色で示した鍵１６が、選曲されたレッスン曲に含まれる音高に対応する鍵である。図では着色できないので、鍵１６には、他の黒鍵および白鍵と区別するため粗いドット模様を付した。演奏者はこの音高の表示を参考に、これらの鍵１６のすべてを含むように音域を設定することができる。例えば、任意の二つの鍵を表示画面上で指示し、これらの鍵をそれぞれ最低音および最高音とする音高の範囲をレッスン音域として設定するとよい。
【００５６】
図１１は、モデル押鍵指示の表示例を示す図である。図１１において、表示装置８に表示された鍵盤図形Ｋには、他の鍵と区別できるように色もしくは模様を付けた鍵１７によって、単音モデル作成のための押鍵すべき鍵盤位置を示している。演奏者はこの表示された鍵盤図形Ｋ上の鍵１７に従って実際のピアノの鍵を押すことができる。なお、図中の白鍵上に示したマーク１８は押鍵位置を認識しやすくするためのものである。このマーク１８で示された鍵と同じ音高に対応する実際のピアノの鍵に、単音モデル作成に先だってシール等を付しておくことにより、表示された鍵盤図形Ｋと実際のピアノの鍵盤との対応がつきやすくなる。
【００５７】
図１２は、レッスンフェーズにおける押鍵指示の一例を示す図である。同図ではピアノロールつまりスクロール表示方式で押鍵指示をしている。表示装置８の表示画面８１には鍵盤図形Ｋが表示されていて、鍵盤図形Ｋの上方には押鍵指示マークＭが表示される。表示画面８１は上下が時間軸であり、押鍵指示マークＭと鍵盤図形Ｋとの距離は、押鍵指示マークＭの下方の鍵を押す時までの時間に対応する。つまり、鍵盤図形Ｋにより近い押鍵指示マークＭの下方にある鍵は、より早い時期に弾くべき鍵である。押鍵指示マークＭは、押鍵すべき鍵に対応する位置に、音符長さに対応した長さで表示され、演奏音および単音モデルのパワースペクトルが互いに一致すると、下方にスクロールされる。現在押鍵されているべき鍵はマークｍで示される。小節線ＢＬで示すように、この例では２小節分の押鍵指示が同時に一画面上に表示されているが、同時に表示する画面の大きさつまり表示される演奏情報の範囲は任意である。このように演奏情報に基づく押鍵指示マークと鍵盤図形とを同時に表示し、押鍵指示マークをスクロール表示する演奏指示装置は、例えば、特開平９−３０５１７１号公報に開示されている。
【００５８】
なお、押鍵指示の表示形式は、鍵盤図形に対してマークをスクロールする方式に限らず、楽譜形式、つまり五線譜上に表示された音符をスクロールする方式であってもよい。また、ピアノＰの鍵盤に沿って各鍵毎に対応する位置にＬＥＤ（発光ダイオード）を配した表示器を設置し、押鍵すべき鍵に対応するＬＥＤを点灯させて押鍵指示を表示するものであってもよい。
【００５９】
図３および図４に示したフローチャートや変形例に係る処理はＣＰＵ１で実行可能なようにプログラムされ、ＣＤやＲＯＭ等、周知の記録媒体に記録して提供されることができる。
【００６０】
上記実施形態では、単音モデルを現にレッスンに使用するピアノＰの演奏音に基づいて作成し、この単音モデルとピアノＰの演奏音との比較を行った。これによって、ピアノＰが仮に調律が正しく行われていない場合であっても、同じピアノＰの演奏音同士の比較で判断するので、押鍵指示通りに弾けたかどうか判断が確実である。
【００６１】
しかし、本発明は、これに限らず、他のピアノの演奏音から別途作成した単音モデルを外部記憶装置９から読み込んでピアノＰの演奏音のパワースペクトルと比較する場合にも適用できる。
【００６２】
また、本発明は、ピアノの押鍵判定に限らず、オルガン、アコーディオン、ハーモニカ、リコーダ、ギター等、各種自然楽器の演奏音判定に適用することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態に係るピアノのレッスンシステムの構成を示すブロック図である。
【図２】演奏情報のフォーマット例を示す図である。
【図３】モデル作成フェーズに関するＣＰＵの処理を示すフローチャートである。
【図４】レッスンフェーズに関するＣＰＵ１の処理を示すフローチャートである。
【図５】入力データの入力タイミングとＦＦＴ窓の位置との関連を示す図である。
【図６】入力データの入力タイミングと処理タイミングとの関係を示す図である。
【図７】アタック検出の遅れを解消できる入力データの入力タイミングと処理タイミングとの関係を示す図（その２）である。
【図８】アタック検出の遅れを解消できる例に係る入力データの入力タイミングとＦＦＴ窓の位置との関連を示す図である。
【図９】技量レベルに応じた音域を表示画面上で設定するための表示装置上の表示例を示す図である。
【図１０】音域設定の際の入力の参考になるように表示される画面の例を示す図である。
【図１１】モデル押鍵指示の表示例を示す図である。
【図１２】レッスンフェーズにおける押鍵指示の一例を示す図である。
【符号の説明】
【００６４】
１…ＣＰＵ、  ２…ＲＯＭ、  ４…音源装置、  ５…スピーカ、  ６…Ａ／Ｄ変換器、  ７…入力装置、  ８…表示装置、  ９…外部記憶装置、  １０…マイクロフォン、  １１…音量測定部、  １２…スペクトル作成部、  １３…アタック検出部、  １４…スペクトル比較部、  １５…押鍵指示部
【図１】
2005234303.tif 000003
【図２】
2005234303.tif 000004
【図３】
2005234303.tif 000005
【図４】
2005234303.tif 000006
【図５】
2005234303.tif 000007
【図６】
2005234303.tif 000008
【図７】
2005234303.tif 000009
【図８】
2005234303.tif 000010
【図９】
2005234303.tif 000011
【図１０】
2005234303.tif 000012
【図１１】
2005234303.tif 000013
【図１２】
2005234303.tif 000014