(57)【特許請求の範囲】
【請求項１】
波形データ上の第１の範囲における第１のエンベロープレベルと、この第１の範囲の直後に隣接し該第１の範囲よりも短い第２の範囲における第２のエンベロープレベルとを検出するエンベロープレベル検出過程と、
前記波形データ上において、前記第１の範囲と前記第２の範囲とを所定時間ずつ順次後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる過程と、
この順次検出された両エンベロープレベルについて、前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比が所定値より大きいか否かに基づいて、前記波形データが有音から無音に変化する位置を判定する過程と
を有することを特徴とする波形データ分析方法。
【請求項２】
波形データ上の第１の範囲における第１のエンベロープレベルと、この第１の範囲の直後に隣接し該第１の範囲よりも短い第２の範囲における第２のエンベロープレベルとを検出するエンベロープレベル検出過程と、
前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比が所定値よりも大きいというレベル比条件が充足されるまで、前記第１および第２の範囲を隣接させたまま前記波形データの時間軸上で後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる第１移動過程と、
前記レベル比条件が充足された後、前記第１の範囲を固定したまま、前記レベル比条件が充足されなくなるまで前記第２の範囲を後方に移動させつつ、前記エンベロープレベル検出過程に前記第２のエンベロープレベルを順次検出させる第２移動過程と、
該第２の範囲が移動された範囲に基づいて、前記波形データの無音区間の開始位置および終了位置を判定する判定過程と
を有することを特徴とする波形データ分析方法。
【請求項３】
さらに、前記波形データに対して前記第１移動過程、前記第２移動過程、および、前記判定過程を繰り返し実行させることにより、複数の無音区間のそれぞれの開始位置および終了位置を検出する検出過程と、
前記検出された複数の無音区間のうちの各一対の無音区間の前記開始位置および前記終了位置に基づいて、所定のテンポ範囲に対応する時間関係を有する無音区間の対を検出する対検出過程と、
検出された無音区間の対について、それぞれ、前記所定のテンポ範囲に対応する拍周期の範囲を区切って成る複数の拍区間のうちの、その対における時間範囲に含まれる拍区間に投票を行う投票過程と、
この投票過程による投票結果を平滑化し、平滑化された投票結果に基づいて拍周期を推定する推定過程と
を有することを特徴とする請求項２記載の波形データ分析方法。
【請求項４】
波形データ上の第１の範囲における第１のエンベロープレベルと、この第１の範囲の直前に隣接し該第１の範囲よりも短い第２の範囲における第２のエンベロープレベルとを検出するエンベロープレベル検出過程と、
前記波形データ上において、前記第１の範囲と前記第２の範囲とを所定時間ずつ順次後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる過程と、
この順次検出された両エンベロープレベルについて、前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比が所定値より大きいか否かに基づいて、前記波形データが無音から有音に変化する位置を判定する過程と
を有することを特徴とする波形データ分析方法。
【請求項５】
波形データ上の第１の範囲における第１のエンベロープレベルと、この第１の範囲の直前に隣接し該第１の範囲よりも短い第２の範囲における第２のエンベロープレベルとを検出するエンベロープレベル検出過程と、
前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比が所定値よりも大きいというレベル比条件が充足されるまで、前記第１および第２の範囲を隣接させたまま前記波形データの時間軸上で後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる第１移動過程と、
前記レベル比条件が充足された後、前記第２の範囲を固定したまま、前記レベル比条件が充足されなくなるまで前記第１の範囲を後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルを順次検出させる第２移動過程と、
該第１の範囲が移動された範囲に基づいて、前記波形データの有音区間の開始位置および終了位置を判定する判定過程と
を有することを特徴とする波形データ分析方法。
【請求項６】
さらに、前記波形データに対して前記第１移動過程、前記第２移動過程、および、前記判定過程を繰り返し実行させることにより、複数の有音区間のそれぞれの開始位置および終了位置を検出する検出過程と、
前記検出された複数の有音区間のうちの各一対の有音区間の前記開始位置および前記終了位置に基づいて、所定のテンポ範囲に対応する時間関係を有する有音区間の対を検出する対検出過程と、
検出された有音区間の対について、それぞれ、前記所定のテンポ範囲に対応する拍周期の範囲を区切って成る複数の拍区間のうちの、その対における時間範囲に含まれる拍区間に投票を行う投票過程と、
この投票過程による投票結果を平滑化し、平滑化された投票結果に基づいて拍周期を推定する推定過程と
を有することを特徴とする請求項５記載の波形データ分析方法。
【請求項７】
請求項１ないし６の何れかに記載の波形データ分析方法を実行することを特徴とする波形データ分析装置。
【請求項８】
請求項１ないし６の何れかに記載の波形データ分析方法を処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽曲のテンポの推定に用いて好適な波形データ分析方法、波形データ分析装置およびプログラムに関する。
【０００２】
【従来の技術】
(１)テンポ検出について
従来より、楽曲の波形データに対して様々な加工を施すため、その波形データから楽曲のテンポを推定することが要請されている。例えば、外部のＭＩＤＩクロックに同期させ波形データの再生タイミングを調節する、ダンスホール等において複数の楽曲を連続再生する時、前後の楽曲のテンポを合わせることによって違和感を無くす、等の用途が知られている。
【０００３】
例えば、特開平８−２０１５４２号公報においては、波形データのピーク間の時間を検出し、これによってテンポを推定する技術が開示されている。また、特公平６−８７１９９号公報においては、波形データから打楽器音等、立上がり、立下がりが急峻な信号を検出し、これによってテンポを決定する技術、および、入力される信号の時間間隔をある一定時間監視し、同じ時間間隔がある回数連続して存在した場合に、その時間間隔をその音楽のテンポとして推定する技術が開示されている。
【０００４】
(２)無音区間の検出について
従来より、楽曲の波形データの中から無音区間を検索する技術が知られている（特開昭６３−１７５８９５号公報、特開平１−８６２００号公報等）。これらの技術は、波形データの記憶容量を減らすため、無音区間における録音を停止する等の動作を行うものである。
【０００５】
【発明が解決しようとする課題】
しかし、上述したテンポ検出技術によって正確なテンポを検出することは困難であった。また、上述した無音区間の検出技術をテンポ検出のために用いることは実現性に乏しい。
この発明は上述した事情に鑑みてなされたものであり、正確なテンポを検出できる波形データ分析方法、波形データ分析装置およびプログラムを提供することを第１の目的としている。また、このテンポ検出のために有音区間あるいは無音区間を正確に判定できる波形データ分析方法、波形データ分析装置およびプログラムを提供することを第２の目的としている。
【０００６】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の波形データ分析方法にあっては、波形データ上の第１の範囲（ウィンドウＲ）における第１のエンベロープレベル（平均エンベロープレベルＲave）と、この第１の範囲の直後に隣接し該第１の範囲よりも短い第２の範囲（ウィンドウＳ）における第２のエンベロープレベル（平均エンベロープレベルＳave）とを検出するエンベロープレベル検出過程と、前記波形データ上において、前記第１の範囲と前記第２の範囲とを所定時間ずつ順次後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる過程と、この順次検出された両エンベロープレベルについて、前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比（Ｒave/Ｓave）が所定値（Ｖmin）より大きいか否かに基づいて、前記波形データが有音から無音に変化する位置を判定する過程とを有することを特徴とする。
また、請求項２記載の波形データ分析方法にあっては、波形データ上の第１の範囲（ウィンドウＲ）における第１のエンベロープレベル（平均エンベロープレベルＲave）と、この第１の範囲の直後に隣接し該第１の範囲よりも短い第２の範囲（ウィンドウＳ）における第２のエンベロープレベル（平均エンベロープレベルＳave）とを検出するエンベロープレベル検出過程と、前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比（Ｒave/Ｓave）が所定値（Ｖmin）よりも大きいというレベル比条件が充足されるまで、前記第１および第２の範囲を隣接させたまま前記波形データの時間軸上で後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる第１移動過程と、前記レベル比条件が充足された後、前記第１の範囲を固定したまま、前記レベル比条件が充足されなくなるまで前記第２の範囲を後方に移動させつつ、前記エンベロープレベル検出過程に前記第２のエンベロープレベルを順次検出させる第２移動過程と、該第２の範囲が移動された範囲に基づいて、前記波形データの無音区間の開始位置および終了位置を判定する判定過程とを有することを特徴とする。
さらに、請求項３記載の構成にあっては、請求項２記載の波形データ分析方法において、さらに、前記波形データに対して前記第１移動過程、前記第２移動過程、および、前記判定過程を繰り返し実行させることにより、複数の無音区間のそれぞれの開始位置および終了位置を検出する検出過程と、前記検出された複数の無音区間のうちの各一対の無音区間の前記開始位置および前記終了位置に基づいて、所定のテンポ範囲（Ｃmin〜Ｃmax）に対応する時間関係を有する無音区間の対を検出する対検出過程と、検出された無音区間の対について、それぞれ、前記所定のテンポ範囲に対応する拍周期の範囲を区切って成る複数の拍区間のうちの、その対における時間範囲に含まれる拍区間に投票を行う投票過程と、この投票過程による投票結果を平滑化し、平滑化された投票結果に基づいて拍周期を推定する推定過程とを有することを特徴とする。
また、請求項４記載の波形データ分析方法にあっては、波形データ上の第１の範囲（ウィンドウＲ）における第１のエンベロープレベル（平均エンベロープレベルＲave）と、この第１の範囲の直前に隣接し該第１の範囲よりも短い第２の範囲（ウィンドウＳ）における第２のエンベロープレベル（平均エンベロープレベルＳave）とを検出するエンベロープレベル検出過程と、前記波形データ上において、前記第１の範囲と前記第２の範囲とを所定時間ずつ順次後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる過程と、この順次検出された両エンベロープレベルについて、前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比（Ｒave/Ｓave）が所定値（Ｖmin）より大きいか否かに基づいて、前記波形データが無音から有音に変化する位置を判定する過程とを有することを特徴とする。
また、請求項５記載の波形データ分析方法にあっては、波形データ上の第１の範囲（ウィンドウＲ）における第１のエンベロープレベル（平均エンベロープレベルＲave）と、この第１の範囲の直前に隣接し該第１の範囲よりも短い第２の範囲（ウィンドウＳ）における第２のエンベロープレベル（平均エンベロープレベルＳave）とを検出するエンベロープレベル検出過程と、前記第１のエンベロープレベルの前記第２のエンベロープレベルに対する比（Ｒave/Ｓave）が所定値（Ｖmin）よりも大きいというレベル比条件が充足されるまで、前記第１および第２の範囲を隣接させたまま前記波形データの時間軸上で後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルと前記第２のエンベロープレベルとを順次検出させる第１移動過程と、前記レベル比条件が充足された後、前記第２の範囲を固定したまま、前記レベル比条件が充足されなくなるまで前記第１の範囲を後方に移動させつつ、前記エンベロープレベル検出過程に前記第１のエンベロープレベルを順次検出させる第２移動過程と、該第１の範囲が移動された範囲に基づいて、前記波形データの有音区間の開始位置および終了位置を判定する判定過程とを有することを特徴とする。
さらに、請求項６記載の構成にあっては、請求項５記載の波形データ分析方法において、さらに、前記波形データに対して前記第１移動過程、前記第２移動過程、および、前記判定過程を繰り返し実行させることにより、複数の有音区間のそれぞれの開始位置および終了位置を検出する検出過程と、前記検出された複数の有音区間のうちの各一対の有音区間の前記開始位置および前記終了位置に基づいて、所定のテンポ範囲（Ｃmin〜Ｃmax）に対応する時間関係を有する有音区間の対を検出する対検出過程と、検出された有音区間の対について、それぞれ、前記所定のテンポ範囲に対応する拍周期の範囲を区切って成る複数の拍区間のうちの、その対における時間範囲に含まれる拍区間に投票を行う投票過程と、この投票過程による投票結果を平滑化し、平滑化された投票結果に基づいて拍周期を推定する推定過程とを有することを特徴とする。
また、請求項７記載の波形データ分析装置にあっては、請求項１ないし６の何れかに記載の波形データ分析方法を実行することを特徴とする。
また、請求項８記載のプログラムにあっては、請求項１ないし６の何れかに記載の波形データ分析方法を処理装置に実行させることを特徴とする。
【０００７】
【発明の実施の形態】
１．第１実施形態
１．１．第１実施形態の構成
次に、本発明の第１実施形態の波形解析システムのハードウエア構成を図１を参照し説明する。なお、本波形解析システムは、汎用パーソナルコンピュータ上で動作するアプリケーションプログラムおよびドライバ等によって構成されている。
図において２は通信インタフェースであり、インターネット等の外部ネットワークを介して波形データ等のやりとりを行う。４は入力装置であり、キーボード、マウス等から構成されている。６は演奏操作子であり、鍵盤および打楽器を模擬するパッド操作子等によって構成されている。
【０００８】
８はディスプレイであり、ユーザに対して各種情報を表示する。１０はＣＰＵであり、後述するプログラムに基づいて、バス１６を介して他の各部を制御する。１２はＲＯＭであり、イニシャルプログラムローダ等が格納されている。１４はＲＡＭであり、ＣＰＵ１０によって読み書きされる。１８はドライブ装置であり、ＣＤ−ＲＯＭ、ＭＯ等の記憶媒体２０の読み書きを行う。
【０００９】
２２は波形取込インタフェースであり、外部から入力されたアナログ波形をサンプリングし、デジタル波形データに変換した後、バス１６を介して出力する。２４はハードディスクであり、汎用パーソナルコンピュータのオペレーティングシステム、後述する波形編集のアプリケーションプログラム、波形データ等が格納される。２６は波形出力インタフェースであり、バス１６を介して供給された波形データをアナログ波形に変換し、サウンドシステム２８を介して発音させる。
【００１０】
１．２．第１実施形態の動作
次に、本実施形態の動作を説明する。
まず、パーソナルコンピュータの電源が投入されると、ＲＯＭ１２に格納されたイニシャルプログラムローダが実行され、オペレーティングシステムが立上る。このオペレーティングシステムにおいて所定の操作を行うと、本実施形態の波形解析アプリケーションプログラムが起動される。
【００１１】
１．２．１．波形データの取得
波形解析アプリケーションプログラムにおいてユーザが所定の操作を行うと、波形取込インタフェース２２を介して、解析対象の波形データがＲＡＭ１４上に取得される。なお、波形データは、通信インタフェース２あるいは記憶媒体２０を介して取得してもよい。この波形データは１フレーズ程度の長さが好適であり、さらに長い場合にはフレーズ単位に分割しておくとよい。
【００１２】
１．２．２．波形データの解析
（１）無音区間の検出（ＳＰ２）
次に、波形データが取得された後、所定の操作が行われると、波形解析アプリケーションプログラムにおいて図２に示す解析プログラムが実行される。図において処理がステップＳＰ２に進むと、該波形データの中から無音区間が検出される。その詳細を図３を参照し説明する。
【００１３】
まず、図３(a)に示すように、比較的時間幅の長いウィンドウＲと、これより短いウィンドウＳとを想定する。なお、ウィンドウＳの幅は、人間の聴覚において無音区間であると判定されうる最短の長さ程度に設定される。ウィンドウＲは波形データの先頭に位置し、ウィンドウＳはこの直後に隣接して配置される。ここで、ウィンドウＲ内の平均エンベロープレベルをＲaveとし、ウィンドウＳの平均エンベロープレベルをＳaveとし、所定の相対音量閾値をＶminとして、「Ｒave/Ｓave ＞Ｖmin」の条件が満たされるか否かが判定される。
【００１４】
上記条件が満たされなければ、ウィンドウＲ，Ｓの時間位置が所定時間だけ進められ、条件「Ｒave/Ｓave ＞Ｖmin」が満たされるか否かが再び判定される。そして、この条件が満たされるまで、ウィンドウＲ，Ｓの時間位置が進められる。ここで、同図(b)の実線に示す位置において、上記条件「Ｒave/Ｓave ＞Ｖmin」が満たされたこととする。この時点におけるウィンドウＳのスタート位置ts1が無音区間T1のスタート位置になる。
【００１５】
次に、ウィンドウＳの時間位置のみが所定時間だけ進められ、再び上記条件「Ｒave/Ｓave ＞Ｖmin」が満たされるか否かが判定される。そして、この条件が満たされなくなるまで、ウィンドウＳの時間位置が逐次進められる。ここで、同図(b)の破線で示すウィンドウＳ’の時間位置において、上記条件が満たされなくなったこととする。
【００１６】
この破線のウィンドウＳ’のエンド位置te1が無音区間T1のエンド位置になる。次に、このエンド位置te1の直後にウィンドウＲが配置され、ウィンドウＲの直後に隣接してウィンドウＳが配置される。そして、上述したのと同様の動作が繰り返され、これによって、波形データ内の無音区間T1, T2, T3, T4, ……, Tnが逐次求められる。
【００１７】
（２）無音区間の有効ペアの検出（ＳＰ４）
図２において、次に処理がステップＳＰ４に進むと、各無音区間T1, T2, T3, T4, ……, Tnのペア（全体で２n個）のうち「有効ペア」を構成するものが抽出される。すなわち、２つの無音区間Tp, Tq（但しp＜q）について、各々のスタート位置をtsp，tsq、各々のエンド位置をtep, teq、最大拍長をＣmax、最小拍長をＣminとしたとき、「Ｃmin ≦ teq−tsp」あるいは「Ｃmax ≧ tsq−tep」である場合に、これら無音区間Tp, Tqは有効ペアを構成する。
【００１８】
その処理内容について具体例を挙げて説明しておく。楽曲のテンポが４０〜１６０の範囲で設定されると仮定すると、一拍の長さは1500msec〜400msecになる。かかる場合、最小拍長Ｃminは400msec、最大拍長Ｃmaxは1500msecになる。次に、無音区間T6〜T10が図４に示すように配置されており、最小拍長Ｃminおよび最大拍長Ｃmaxが図示の通りの長さであったとすると、
無音区間T6, T7のペアおよび無音区間T6, T10のペアは有効ペアを構成せず、無音区間T6, T8のペアおよび無音区間T6, T9のペアは有効ペアを構成する。
【００１９】
（３）拍区間に対する投票（ＳＰ６）
本実施形態においては、最小拍長Ｃmin〜最大拍長Ｃmaxの範囲を、所定間隔（例えば10msec間隔）で分割した値を拍区間とする。従って、上記例においては、（1500−400）／10＝110個の拍区間が存在することになる。図２において処理がステップＳＰ６に進むと、上記各有効ペアに基づいて、各拍区間に対する投票が行われる。
【００２０】
すなわち、２つの無音区間Tp, Tqが有効ペアを構成するのであれば、その全体ないし中心値が「tsq−tep」〜「teq−tsp」の範囲にある拍区間のうち、「Ｃmin 以上かつＣmax以下」の条件を満たす全ての拍区間に対して１票づつ投票が行われる。そして、これと同様の処理が全ての有効ペアに対して実行されると、横軸を拍区間とし、縦軸を得票数とするヒストグラムが得られる。
【００２１】
（４）投票結果に基づく拍周期候補の検出（ＳＰ８）
次に、処理がステップＳＰ８に進むと、上記ヒストグラムが平滑化される。例えば、各拍区間の投票数が、前後を含めた複数の拍区間の得票数の平均値に修正される。この結果、例えば図５の実線に示すような特性が得られる。次にこの特性における極大値、すなわち傾きが正から負に転換する箇所が検出される。図示のように、これら極大値を成す拍区間の中心値を拍周期候補Ｃ1，Ｃ2，……，Ｃmとする。
【００２２】
（５）拍周期の決定（ＳＰ１０）
次に、処理がステップＳＰ１０に進むと、各拍周期候補Ｃ1，Ｃ2，……，Ｃmに対して、各無音区間が周期性を有するか否かが判定され、これによって最終的な拍周期が決定される。ここで、無音区間の周期性を判定する方法として、拍周期候補Ｃ1を例として説明する。まず、図６(a)に示すように楽曲の波形データを拍周期候補Ｃ1毎の周期区間に区切り、同図(b)に示すように各区間を縦に配列したとする。そうすると、各周期内で「Ｘ」で示す期間については、３周期に渡って無音区間の一部が重複することになる。
【００２３】
このように、拍周期候補Ｃ1で区切った各周期内において、少なくとも一部の位相が重複する複数の無音区間（図示の例ではT1, T3, T4）を「グループを構成する」という。そして、拍周期候補Ｃ2，……，Ｃmについても、同様にグループを構成する無音区間が検出される。そして、波形データの所定範囲内（例えば１フレーズ内）のうちグループを構成する無音区間の連続性が高い拍周期候補が、最終的な拍周期として推定されることになる。
【００２４】
なお、言うまでもないが、テンポは「６０秒／拍周期」により決定される。楽曲によっては、途中からテンポが変動するものもしばしば見受けられるが、本実施形態によれば所定範囲毎に最終的な拍周期を推定するため、楽曲内でテンポの遷移を追跡してゆくことが可能である。
【００２５】
２．第２実施形態
次に、本発明の第２実施形態について説明する。第２実施形態のハードウエア構成は第１実施形態と同様であるが、波形解析アプリケーションプログラムにおいては、図２に代えて図７に示す解析プログラムが実行される。
【００２６】
図において処理がステップＳＰ２２に進むと、波形データのエンベロープのピーク位置P1, P2, P3, P4, ……, Pnが検出される。次に、処理がステップＳＰ２４に進むと、これらピーク位置P1, P2, P3, P4, ……, Pnのペア（全体で２n個）のうち「有効ペア」を構成するものが抽出される。すなわち、２つのピーク位置間の時間が、上記第１実施形態において説明した最小拍長Ｃmin以上かつ最大拍長Ｃmax以下である場合に、これらピーク位置は有効ペアを構成する。
【００２７】
次に、処理がステップＳＰ２６に進むと、各有効ペアについて、２つのピーク位置の間隔が属する拍区間に対する投票が行われる。ここで、一の拍区間の範囲は第１実施形態のものよりも広く、50msec〜100msec程度に設定すると好適である。また、本実施形態においては、一の有効ペアによって、一の拍区間のみに投票が行われる点が第１実施形態とは異なる。次に、処理がステップＳＰ２８に進むと、投票結果のヒストグラムに基づいて、最も得票数の多かった拍区間の中心値が最終的な拍周期として推定されることになる。
【００２８】
３．変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
（１）上記各実施形態はパーソナルコンピュータ上で動作するソフトウエアによって波形解析システムを実現したが、同様の機能を各種の電子楽器、携帯電話器、アミューズメント機器、その他楽音を発生する装置に使用してもよい。また、上記実施形態に用いられるソフトウエアをＣＤ−ＲＯＭ、フロッピーディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【００２９】
（２）第１実施形態においては、有音から無音に変化する位置によって無音区間を検出したが、無音から有音に変化する位置をまず検出し、次に有音から無音に変化するポイントまでの区間を有音区間として検出し、この有音区間を上記無音区間に代えて用いることによって拍周期を検出してもよい。
【００３０】
例えば、波形データの時間軸上でウィンドウＳをウィンドウＲの前に（図３においては左側に）隣接配置して「Ｒave/Ｓave ＞Ｖmin」が満たされるまで両ウィンドウを右方向に移動させる。そして、上記条件が満たされると、該条件が満たされなくなるまで、ウィンドウＲのみを右方向に移動させ、ウィンドウＲの最初の開始時刻と、ウィンドウＲの最後の終了時刻との間を「有音区間」とするとよい。なお、この場合の閾値Ｖminは、第１実施形態の閾値Ｖminよりも大きな値にすると好適である。
【００３１】
（３）第１実施形態のステップＳＰ８においては、平滑化した得票数の極大値によって拍周期候補Ｃ1，Ｃ2，……，Ｃmを求めたが、それ以外の方法で拍周期候補を求めてもよい。その一例を説明しておく。まず、平滑化した投票結果の特性（図５）において、着目している拍区間の前後の広い範囲に渡って得票数を平均化すると、同図の破線に示すような局所的平均値が求まる。ここで、平滑化した投票結果と局所的平均値との差分を求めると、図８に示すような正規化得票数が得られる。
【００３２】
次に、横軸と並行な直線であって図８の特性に対して２ｍ回（図示の例ではｍ＝３）交差する直線のうち最もレベルの高いものが検索される。この直線を、図中の破線で示す。正規化得票数がこの破線のレベルよりも高い区間はｍ個存在する。これら区間において、中心に位置する拍区間、または交差した区間の中で最も得票数の多かった拍区間の中心値を拍周期候補Ｃ1，Ｃ2，……，Ｃmとして選択してもよい。
【００３３】
（４）また、第１実施形態のステップＳＰ１０においては、各拍周期候補Ｃ1，Ｃ2，……，Ｃmのうち無音区間の連続性が高い拍周期候補が、最終的な拍周期として推定された。しかし、これ以外の方法によって最終的な拍周期を推定してもよい。例えば、波形データを各拍周期候補で区切った時、各周期内の同一のタイミングに無音区間が位置する頻度が高い拍周期候補を最終的な拍周期にしてもよい。
【００３４】
（５）また、第１実施形態のステップＳＰ８，ＳＰ１０に代わる他の方法として、実際のテンポが存在する拍区間における標準的なピーク形状を予め取得しておき、投票結果の特性（図５）の中から標準的なピーク形状を有する部分をパターン認識によって抽出し、これによって最終的な拍周期を推定してもよい。また、投票結果に対して所定幅の窓関数を畳み込み、その畳み込み結果の値のピーク位置を最終的な拍周期として推定してもよい。
【００３５】
（６）また、上記第１実施形態のステップＳＰ１０においては、倍音関係にあるピーク同志を、テンポに対応させてグループ化し、これらグループ毎に各ピークのレベルの重み付け加算を行ない、この重み付け後の値の大きなグループのテンポを楽音波形のテンポとして推定してもよい。
【００３６】
（７）さらに、第１実施形態と第２実施形態とを組み合わせることによってより精度の高いテンポを求めるようにしてもよい。すなわち、第１実施形態によれば、図５において説明したように、拍周期候補Ｃ1，Ｃ2，……，Ｃmが求まる。これら拍周期候補Ｃ1，Ｃ2，……，Ｃmのうち、第２実施形態で求めた拍周期の属する拍区間（50msec〜100msec幅）に属するものを優先して最終的な拍周期として推定してもよい。
【００３７】
（８）上記各実施形態においては、録音された波形データをそのまま用いてテンポを推定したが、予め波形データにハイパスフィルタリング処理（例えば１０kＨz以上のみの成分を抽出する）を施し、その結果に基づいてテンポを推定してもよい。これは、種々の音色のうち主として打楽器音がテンポに同期してオン/オフされる傾向が強いことと、打楽器音は他の音色と比較して高周波成分を多く含むことに鑑みてである。
【００３８】
【発明の効果】
以上説明したように第１および第２のエンベロープレベルの比に基づいて有音区間または無音区間を検出する構成によれば、有音区間または無音区間を正確に検出することができる。また、かかる有音区間または無音区間に基づいて拍周期を推定する構成によれば、テンポを正確に推定することができる。
【図面の簡単な説明】
【図１】  本発明の第１実施形態の波形解析システムのブロック図である。
【図２】  第１実施形態における波形データ解析プログラムのフローチャートである。
【図３】  同プログラムのステップＳＰ２の動作説明図である。
【図４】  同プログラムのステップＳＰ４の動作説明図である。
【図５】  同プログラムのステップＳＰ８の動作説明図である。
【図６】  同プログラムのステップＳＰ１０の動作説明図である。
【図７】  本発明の第２実施形態における波形データ解析プログラムのフローチャートである。
【図８】  第１実施形態の変形例の動作説明図である。
【符号の説明】
２…通信インタフェース、４…入力装置、６…演奏操作子、８…ディスプレイ、１０…ＣＰＵ、１２…ＲＯＭ、１４…ＲＡＭ、１６…バス、１８…ドライブ装置、２０…記憶媒体、２２…波形取込インタフェース、２４…ハードディスク、２６…波形出力インタフェース、２８…サウンドシステム。
【図１】
0003780858.tif 000002
【図２】
0003780858.tif 000003
【図３】
0003780858.tif 000004
【図４】
0003780858.tif 000005
【図５】
0003780858.tif 000006
【図６】
0003780858.tif 000007
【図７】
0003780858.tif 000008
【図８】
0003780858.tif 000009