(57)【特許請求の範囲】
【請求項１】
楽曲を表すオーディオ信号を取得するオーディオ信号取得手段と、
前記楽曲の拍のタイミングを示す拍情報を取得する拍情報取得手段と、
前記楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、
前記オーディオ信号取得手段により取得されたオーディオ信号が表す楽音のオンセットを順次抽出するオンセット検出手段と、
前記オンセット検出手段が抽出したオンセットによって形成される波形について、当該波形に含まれる周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、
前記周波数成分検出手段が検出した各周波数成分の中から、前記拍情報取得手段が取得した拍情報および前記ビート指示情報取得手段が取得したビート指示情報に対応する特定の周波数成分を前記楽曲のビート周波数として定めるビート周波数特定手段と、
前記ビート周波数特定手段が特定した前記ビート周波数と、該特定されたビート周波数に対応する位相とを有する正弦波を生成する周期関数生成手段と、
前記周期関数生成手段が生成した正弦波を各フレームについて重ね合わせる重合手段と、
前記重合手段によって重ね合わされた正弦波について、その特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、該選択されたタイミングを示す情報を拍タイミング情報として出力する拍タイミング情報出力手段と
を有することを特徴とするテンポクロック生成装置。
【請求項２】
前記拍情報取得手段は、操作に応じて拍のタイミングを示す操作情報を出力する操作手段を有し、前記操作手段が出力する操作情報を拍情報として取得することを特徴とする請求項１に記載のテンポクロック生成装置。
【請求項３】
前記拍情報取得手段は、収音し対応する音を表す音信号を生成する収音手段を有し、前記収音手段が出力する音信号を拍情報として取得することを特徴とする請求項１に記載のテンポクロック生成装置。
【請求項４】
前記拍情報取得手段は、前記オーディオ信号が表す楽曲の拍の少なくとも１つのタイミングと前記拍のテンポとを表すデータを拍情報として取得することを特徴とする請求項１に記載のテンポクロック生成装置。
【請求項５】
前記拍タイミング情報出力手段は、前記楽曲における前記特定点タイミングの時刻を表すデータである拍タイミング情報を出力することを特徴とする請求項１に記載のテンポクロック生成装置。
【請求項６】
前記ビート指示情報取得手段は、前記楽曲の１拍に含まれるビートの数をビート指示情報として取得することを特徴とする請求項１に記載のテンポクロック生成装置。
【請求項７】
前記ビート周波数特定手段は、前記拍情報から前記楽曲のテンポに対応する周波数を特定し、該特定された周波数に前記ビート指示情報が表す前記楽曲の１拍に含まれるビートの数を乗じた周波数に最も近似した値でピークを示す周波数を特定し、該特定された周波数を前記ビート周波数と定めることを特徴とする請求項６に記載のテンポクロック生成装置。
【請求項８】
前記拍タイミング情報出力手段は、前記重合手段によって重ね合わされたおよそ正弦波形状の波形について、その特定点が出現する特定点タイミングから、前記拍情報により示される前記楽曲の拍と位相が同期するタイミングを特定し、該特定されたタイミングから、前記ビート指示情報が示す前記楽曲の１拍に含まれるビートの数ごとに他のタイミングを選択し、該選択された特定点タイミングを示す情報を拍タイミング情報として出力することを特徴とする請求項６に記載のテンポクロック生成装置。
【請求項９】
コンピュータを、
楽曲を表すオーディオ信号を取得するオーディオ信号取得手段と、
前記楽曲の拍のタイミングを示す拍情報を取得する拍情報取得手段と、
前記楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、
前記オーディオ信号取得手段により取得されたオーディオ信号が表す楽音のオンセットを順次抽出するオンセット検出手段と、
前記オンセット検出手段が抽出したオンセットによって形成される波形について、当該波形に含まれる周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、
前記周波数成分検出手段が検出した各周波数成分の中から、前記拍情報取得手段が取得した拍情報および前記ビート指示情報取得手段が取得したビート指示情報に対応する特定の周波数成分を前記楽曲のビート周波数として定めるビート周波数特定手段と、
前記ビート周波数特定手段が特定した前記ビート周波数と、該特定されたビート周波数に対応する位相とを有する正弦波を生成する周期関数生成手段と、
前記周期関数生成手段が生成した正弦波を各フレームについて重ね合わせる重合手段と、
前記重合手段によって重ね合わされた正弦波について、その特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、該選択されたタイミングを示す情報を拍タイミング情報として出力する拍タイミング情報出力手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンポクロックを生成する技術に関する。
【背景技術】
【０００２】
ビート感のあるオーディオ信号からビート（beat；強いアクセントのあるリズム）を抽出する技術が開示されている。例えば、特許文献１では、音響信号からビートを抽出する装置が記載されている。
【特許文献１】特開２００７−０３３８５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記特許文献１の技術においては、ビート抽出部が出力する信号の自己相関を求め、その極大値からＢＰＭ（Beat Per Minutes；一分間に４分音符が何個あるかを意味し、音楽の拍を表す）を推定する。また、そのＢＰＭの値に応じた周波数で、推定されたビートに同期した位相の信号を、ＰＬＬ（Phase Locked Loop）回路を用いて生成する。
【０００４】
しかし、上記の技術によれば、自己相関関数の極大値は、必ずしも４分音符の長さに対応した周期で現れるとは限らないため、適切に拍が特定できないこともある。例えば、図１で示されるように、シンコペーションしたリズムが入力された場合を例にとると、４分音符の長さに対応する周期では自己相関関数は極大にならないため、ＢＰＭの値を推定できない。実際、上記の例で自己相関関数が極大となる周期は、８分音符の長さに対応する周期と、付点４分音符の長さに対応する周期と、２分音符の長さに対応する周期などである。
また、ビート抽出部の出力信号が処理されるＰＬＬ回路における各種の設定、例えば同期引き込み範囲となるプルインレンジなどをユーザが設定する必要があり、操作が煩雑である。
【０００５】
本発明は上述の課題に鑑みてなされたものであり、精度良く簡易に、オーディオ信号に同期したテンポクロックを生成することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るテンポクロック生成装置は、楽曲を表すオーディオ信号を取得するオーディオ信号取得手段と、前記楽曲の拍のタイミングを示す拍情報を取得する拍情報取得手段と、前記楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、前記オーディオ信号取得手段により取得されたオーディオ信号が表す楽音のオンセットを順次抽出するオンセット検出手段と、前記オンセット検出手段が抽出したオンセットによって形成される波形について、当該波形に含まれる周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、前記周波数成分検出手段が検出した各周波数成分の中から、前記拍情報取得手段が取得した拍情報および前記ビート指示情報取得手段が取得したビート指示情報に対応する特定の周波数成分を前記楽曲のビート周波数として定めるビート周波数特定手段と、前記ビート周波数特定手段が特定した前記ビート周波数と、該特定されたビート周波数に対応する位相とを有する正弦波を生成する周期関数生成手段と、前記周期関数生成手段が生成した正弦波を各フレームについて重ね合わせる重合手段と、前記重合手段によって重ね合わされた正弦波について、その特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、該選択されたタイミングを示す情報を拍タイミング情報として出力する拍タイミング情報出力手段とを有することを特徴とする。
【０００７】
本発明に係るテンポクロック生成装置は、上記の構成において、前記拍情報取得手段は、操作に応じて拍のタイミングを示す操作情報を出力する操作手段を有し、前記操作手段が出力する操作情報を拍情報として取得しても良い。
【０００８】
本発明に係るテンポクロック生成装置は、上記の構成において、前記拍情報取得手段は、収音し対応する音を表す音信号を生成する収音手段を有し、前記収音手段が出力する音信号を拍情報として取得しても良い。
【０００９】
本発明に係るテンポクロック生成装置は、上記の構成において、前記拍情報取得手段は、前記オーディオ信号が表す楽曲の拍の少なくとも１つのタイミングと前記拍のテンポとを表すデータを拍情報として取得しても良い。
【００１０】
本発明に係るテンポクロック生成装置は、上記の構成において、前記拍タイミング情報出力手段は、前記楽曲における前記特定点タイミングの時刻を表すデータである拍タイミング情報を出力しても良い。
【００１１】
本発明に係るテンポクロック生成装置は、上記の構成において、前記ビート指示情報取得手段は、前記楽曲の１拍に含まれるビートの数をビート指示情報として取得しても良い。
その場合、前記ビート周波数特定手段は、前記拍情報から前記楽曲のテンポに対応する周波数を特定し、該特定された周波数に前記ビート指示情報が表す前記楽曲の１拍に含まれるビートの数を乗じた周波数に最も近似した値でピークを示す周波数を特定し、該特定された周波数を前記ビート周波数と定めるとしても良い。また、前記拍タイミング情報出力手段は、前記重合手段によって重ね合わされたおよそ正弦波形状の波形について、その特定点が出現する特定点タイミングから、前記拍情報により示される前記楽曲の拍と位相が同期するタイミングを特定し、該特定されたタイミングから、前記ビート指示情報が示す前記楽曲の１拍に含まれるビートの数ごとに他のタイミングを選択し、該選択された特定点タイミングを示す情報を拍タイミング情報として出力しても良い。
【００１２】
本発明に係るプログラムは、コンピュータを、楽曲を表すオーディオ信号を取得するオーディオ信号取得手段と、前記楽曲の拍のタイミングを示す拍情報を取得する拍情報取得手段と、前記楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、前記オーディオ信号取得手段により取得されたオーディオ信号が表す楽音のオンセットを順次抽出するオンセット検出手段と、前記オンセット検出手段が抽出したオンセットによって形成される波形について、当該波形に含まれる周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、前記周波数成分検出手段が検出した各周波数成分の中から、前記拍情報取得手段が取得した拍情報および前記ビート指示情報取得手段が取得したビート指示情報に対応する特定の周波数成分を前記楽曲のビート周波数として定めるビート周波数特定手段と、前記ビート周波数特定手段が特定した前記ビート周波数と、該特定されたビート周波数に対応する位相とを有する正弦波を生成する周期関数生成手段と、前記周期関数生成手段が生成した正弦波を各フレームについて重ね合わせる重合手段と、前記重合手段によって重ね合わされた正弦波について、その特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、該選択されたタイミングを示す情報を拍タイミング情報として出力する拍タイミング情報出力手段として機能させることを特徴とする。
【発明の効果】
【００１３】
本発明に係るテンポクロック生成装置およびプログラムによれば、精度良く簡易に、オーディオ信号に同期したテンポクロックを生成することが可能となる。
【発明を実施するための最良の形態】
【００１４】
実施形態の説明に入る前に、楽曲の「拍子」、「テンポ」、および「ビート」について説明する。
楽曲において、基調となる所定の音符による拍が複数集まって小節をなし、該小節が周期的に繰り返される場合、「拍子」とは、その小節に含まれる上記所定の音符（拍）の数を示す。例えば、４分の４拍子の楽曲では、基調となる４分音符が４拍集まって１小節が構成される。
また、「テンポ」とは、上記基調となる所定の音符が発音される頻度であり、例えばテンポ１２０とは、４分音符が１分間に１２０回の頻度で発音される頻度である。
また、「ビート」とは、上記基調となる音符に対応する１拍について、どのようにリズムをとるかを示すものである。例えば４分の４拍子の場合、４分音符を単位にしてリズムをとると４ビートとなり、８分音符を単位にしてリズムをとると８ビートとなる。そのように、１つ１つの拍についてどの音符を単位にしてリズムをとるかを示すのがビートである。
以下の説明においては、上述した「拍子」、「テンポ」、および「ビート」の定義を用いて説明する。
【００１５】
以下、図面を参照しつつ、本発明を実施する際の最良の形態について説明する。
（Ａ；構成）
図２は、本発明に係るテンポクロック生成装置１の全体構成を示す図である。テンポクロック生成装置１は、例えばパーソナルコンピュータで構成される。テンポクロック生成装置１は、制御部１１０、ＲＯＭ（Read Only Memory）１２０、ＲＡＭ（Random Access Memory）１３０、操作部１４０、表示部１５０、ＨＤＤ１６０（Hard Disk Drive）、音声処理部１７０、および音声処理部１７０に接続されたスピーカ１８０を有する。上記各部はバスを介して互いに接続されている。
【００１６】
制御部１１０は、例えばＣＰＵ（Central Processing Unit）であり、ＲＯＭ１２０に格納された制御プログラムを実行することにより各部の制御を行う。
ＲＯＭ１２０は、制御部１１０が実行する制御プログラムを格納している。
ＲＡＭ１３０は、制御部１１０によってワークエリアとして利用される。
【００１７】
操作部１４０は、例えばキーボードやマウスであり各種の操作子を備える。操作部１４０はユーザによる操作内容を表す操作信号を制御部１１０へ出力する。
表示部１５０は、例えばＬＣＤ（Liquid Crystal Display）などの表示手段である。このディスプレイの画面には、オーディオ信号の処理に係る各種設定を行うためのメニュー画面が表示される。
【００１８】
ＨＤＤ１６０は、大容量の記憶装置であり、楽曲を表すオーディオ信号を複数記憶している。該オーディオ信号は、例えばＷＡＶＥ形式やＭＰ３（MPEG-1 Audio Layer-3）形式の音データである。また、該オーディオ信号は時間波形を表すデータであり、音楽や人の声など各種のオーディオ帯域の音が含まれる。
なお、本実施形態においては、上記ＨＤＤ１６０に含まれるオーディオ信号の中から、テンポは１２０、拍子は４分の４拍子、リズム構造は８ビートである特定のオーディオ信号について取り上げて具体的に説明する。
【００１９】
上記オーディオ信号の冒頭には、所定の間隔のインパルス音（以下、タッピング音）が所定時間付加されている。該タッピング音は、当該オーディオ信号に含まれる楽曲と同じテンポ（１分間に４分音符が１２０）であり、含まれる各インパルス音はオーディオ信号の拍と位相が同期している。
また、ＨＤＤ１６０には、該オーディオ信号に含まれる楽曲のリズム構造を表すパラメータとして、Ｎ値が上記オーディオ信号と関連付けて書き込まれている。Ｎ値とは、オーディオ信号のビート数を４で除した値である。従って、上記オーディオ信号は８ビートであるため、Ｎ＝２である。
【００２０】
音声処理部１７０は、Ｄ／Ａ（Digital/Analog）変換器とアンプとからなる。制御部１１０から受取った音を表すデジタルのデータはＤ／Ａ変換によりアナログの信号に変換され、アンプにより振幅が調整された後、スピーカ１８０に出力される。
スピーカ１８０は、音声処理部１７０から受取ったアナログの信号に基づいて音声を放音する。
以上がテンポクロック生成装置１の構成である。
【００２１】
（Ｂ；動作）
次に、ＲＯＭ１２０に格納された制御プログラムに従って制御部１１０が行うビート抽出処理について説明する。
【００２２】
（Ｂ−１；処理の概要）
テンポクロック生成装置１の電源が投入されると、制御部１１０は、ＲＯＭ１２０から制御プログラムを読み出しＲＡＭ１３０にロードする。
制御部１１０は、ユーザにより操作部１４０が操作され、特定のオーディオ信号が選択されると、該指示されたオーディオ信号、該オーディオ信号に関連付けられたタッピング音およびＮ値のデータをＨＤＤ１６０から読み出す。読み出されたＮ値のデータは、ＲＡＭ１３０に書き込まれる。
【００２３】
制御部１１０は、まずタッピング音の解析を行う。すなわち、タッピング音に含まれるインパルス音の発音タイミングを特定し、そのタイミングからインパルス音の周期を算出する。該算出された各インパルス音の発音タイミングおよび周期はＲＡＭ１３０に書き込まれる。
【００２４】
次に、制御部１１０は、読み出したオーディオ信号を音声処理部１７０に供給し、スピーカ１８０に放音させる。そして、制御部１１０は、該オーディオ信号の再生と並行して、以下に延べるビート抽出処理を行う。
図３に示すように、制御部１１０は、オンセット検出部１０と、テンポクロック生成部２０とからなる。ＨＤＤ１６０から読み出されたオーディオ信号は、オンセット検出部１０に入力される。以下、該入力された楽曲を表すオーディオ信号を、オーディオ信号ｘ（ｔ）と呼ぶ。
オンセット検出部１０は、オーディオ信号ｘ（ｔ）からオンセット（ビート）を抽出した信号であるオンセット検出信号ｙ（ｔ）を生成し、テンポクロック生成部２０に出力する。
テンポクロック生成部２０は、オンセット検出部１０から入力されるオンセット検出信号ｙ（ｔ）から、オーディオ信号ｘ（ｔ）の拍を検出し、該検出された拍を表すテンポクロックパルス信号ｚ（ｔ）を生成する。
【００２５】
（Ｂ−２；オンセット検出部１０の処理）
まず、オンセット検出部１０の処理内容を簡潔に説明する。図４は、オンセット検出部１０の処理の流れを示したフローチャートである。また、図５は、オンセット検出部１０による処理を示したブロック図である。同図に示すように、オンセット検出部１０は、パワー算出部１１とローパスフィルタ１２と差分生成部１３と半波整流器１４とを有する。
【００２６】
まず、オンセット検出部１０は、オーディオ信号ｘ（ｔ）を受取る（ステップＳＡ１００）。図６は、入力されたオーディオ信号ｘ（ｔ）の処理過程において生成される各種の信号を、互いに時系列を対応させて示した図である。図６（Ａ）には、入力されたオーディオ信号ｘ（ｔ）の時間波形が１小節分（２秒分）示されている。
【００２７】
そして、パワー算出部１１において、オーディオ信号ｘ（ｔ）からパワーが算出される（ステップＳＡ２００）。なお、パワーはオーディオ信号ｘ（ｔ）の２乗、すなわち｛ｘ（ｔ）2｝により算出される時系列信号である。
【００２８】
次に、ローパスフィルタ１２は、パワー算出部１１から順次パワーを受取り、パワー波形のスムージングを目的として所定の閾値を越える高周波成分を取り除く（ステップＳＡ３００）。
差分生成部１３は、ローパスフィルタ１２により処理されたパワー波形に対して隣接する区間の間で、差分を算出する（ステップＳＡ４００）。
半波整流器１４は、差分生成部１３により生成された波形から正の部分を取り出し（ステップＳＡ５００）、該波形をオンセット検出信号ｙ（ｔ）としてテンポクロック生成部２０に出力する（ステップＳＡ６００）。図６（Ｂ）は、以上の処理により生成されたオンセット検出信号ｙ（ｔ）である。
【００２９】
（Ｂ−３；テンポクロック生成部２０の処理）
（Ｂ−３−１；処理の概要）
次に、テンポクロック生成部２０が行う処理について説明する。図７は、テンポクロック生成部２０の処理の流れを示したフローチャートである。また、図８は、テンポクロック生成部２０による処理を示したブロック図である。
【００３０】
図８に示すように、テンポクロック生成部２０において、入力されたオンセット検出信号ｙ（ｔ）は複数の処理系統１〜に入力される（ステップＳＢ１００）。
各処理系統においては、オンセット検出信号ｙ（ｔ）についてそれぞれ異なるフレームに対して同じ処理が行われ、それぞれの処理系統においては、最終的に信号ｓ’n（ｔ）が生成される。各処理系統において生成された信号ｓ’n（ｔ）は、加算器において加算されオーバーラップ加算正弦波ｓ（ｔ）が生成される。オーバーラップ加算正弦波ｓ（ｔ）に対して、ピーク検出処理（２）および１／Ｎ分周処理が施されることにより、最終的にテンポクロックパルス信号ｚ（ｔ）が生成される。
以上がテンポクロック生成部２０の処理の概要である。
【００３１】
次に、各処理系統における処理内容について詳細に説明する。なお以下では、処理系統ｎ（ｎ＝１、２、…）において実行される処理について、パラメータｎを用いながら説明する。各処理系統１、２、…においては、以下の説明において割り当てられたｎの値を代入した内容の処理が行われる。
【００３２】
（Ｂ−３−２；窓掛け処理（１））
処理系統ｎに入力されたオンセット検出信号ｙ（ｔ）には、まず窓掛け処理（１）が施される（ステップＳＢ２００）。窓掛け処理（１）において、オンセット検出信号ｙ（ｔ）は、数式（１）に従って処理され信号ｙn（ｔ）が生成される。
数式（１）において、ｗ1（ｔ）は、所定の窓長（本実施形態では、５秒）のハミング窓関数である。従って、各処理系統では、オンセット検出信号ｙ（ｔ）から、所定の領域の信号（以下、フレーム）を“切り出す”。ここで、各処理系統において用いられるハミング窓関数の、隣接する処理系統間でのフレームのずれをＴ（本実施形態では、Ｔ＝１秒）とする。
【００３３】
【数１】
0004973426.tif 000002
【００３４】
数式（１）によれば、処理系統ｎにおいては、窓関数ｗ1（ｔ）がｎ・Ｔ秒シフトした窓関数であるｗ1（ｔ−ｎＴ）が演算に用いられる。その結果、各処理系統においては、オンセット検出信号ｙ（ｔ）から、隣接するフレーム間でオーバーラップすると共に時間的に連続したフレームが切り出される。本実施形態においては、上記各フレームの時間長は５秒であり、隣接するフレームは１秒のずれを有することから、隣接するフレーム間で８０％（４秒）がオーバーラップするようにオンセット検出信号ｙ（ｔ）からフレームが切り出される。
なお、本実施形態においては、上記ハミング窓関数の時間長を５秒、フレームのずれＴを１秒としたが、それらにはユーザにより適宜定められた値を用いれば良い。
【００３５】
（Ｂ−３−３；フーリエ変換）
窓掛け処理（１）により生成された信号ｙn（ｔ）に対して、数式（２）によるフーリエ変換が施される（ステップＳＢ３００）。各フレームの信号、すなわちオンセット検出信号ｙ（ｔ）の特定の区間がどのような周波数成分から成るかを示すパワースペクトルＹn（ω）が生成される。
【００３６】
【数２】
0004973426.tif 000003
【００３７】
（Ｂ−３−４；ピーク検出処理（１））
ピーク検出処理（１）においては、まず、上記フーリエ変換により生成されたパワースペクトルＹn（ω）から、パワースペクトルにおける各周波数成分の振幅の２乗を表す｜Ｙn（ω）｜2を算出する。図９には、｜Ｙn（ω）｜2のグラフの一例を示す。
一般的に、インパルス列の関数をフーリエ変換すると、該インパルス列の角周波数および該角周波数の整数倍の角周波数で周期的にピークを迎えるインパルス列のパワースペクトルが生成されることが知られている。オンセット検出信号ｙ（ｔ）は、上述したように周期的にピークが現れることから、インパルス列の関数と類似の特徴を有する。従って図９に示すように、オンセット検出信号ｙ（ｔ）のパワースペクトルの振幅｜Ｙn（ω）｜2は、複数の周波数（本実施形態においては、４、８、１２、…[Ｈｚ]）において極大を示す。
【００３８】
なお、上述したようにオンセット検出信号ｙ（ｔ）にはノイズや不等間隔で現れるビート成分などが含まれるため、上記パワースペクトルにおいて極大を示す角周波数ωの間における周波数においても、その振幅値は０とならず正の値を示している。
【００３９】
｜Ｙn（ω）｜2が算出されると、オーディオ信号ｘ（ｔ）のテンポが、ＲＡＭ１３０に書き込まれたタッピング音の周期から算出される。本実施形態においては、タッピング音は０．５秒おきのインパルス音となるよう設定されているため、テンポは１２０（１分間に４分音符１２０）と算出される。そして、算出されたタッピング音のテンポに対応する角周波数（上記の場合、４π[ｒａｄ／秒]）の所定数（ＲＡＭ１３０に書き込まれたＮ値）倍の角周波数付近（前後所定の範囲）から、振幅｜Ｙn（ω）｜2が極大を示す角周波数ωnを特定する（ステップＳＢ４００）。
例えば、図９に示される｜Ｙn（ω）｜2においては、タッピング音のテンポ（２Ｈｚ）の２（＝Ｎ）倍である４[Ｈｚ]（ω＝８π[ｒａｄ／秒]）の近傍の周波数で極大値となるような角周波数ωnが決定される。
【００４０】
また、該｜Ｙn（ω）｜2が極大を示す角周波数ωnの周波数成分の初期位相θn＝ａｒｇ（Ｙn（ω））を算出する。この場合、θnは上記｜Ｙn（ω）｜2が極大を示す角周波数ωnにおけるパワースペクトル値（複素数）を極形式で表示した場合の偏角であり、角周波数ωnにおけるパワースペクトル値の複素数から一義的に導かれる。
以上のようにして決定された角周波数ωnと初期位相θnは、発振器に出力される。
【００４１】
（Ｂ−３−５；発振器）
発振器においては、上述のピーク検出処理（１）において求められた角周波数ωnおよび初期位相θnに基づいて、角周波数がωnであり初期位相がθnである余弦波信号ｓn（ｔ）が生成される（ステップＳＢ５００）。
【００４２】
【数３】
0004973426.tif 000004
【００４３】
（Ｂ−３−６；窓掛け処理（２））
窓掛け処理（２）においては、上記発振器において生成された余弦波信号ｓn（ｔ）に対して、数式（４）に従って窓掛け処理が施され、信号ｓ’n（ｔ）が生成される（ステップＳＢ６００）。本窓掛け処理（２）において用いられる窓関数ｗ2（ｔ）は、所定の窓長を有するコサイン窓関数である。
本実施形態においては、コサイン窓関数の時間長は５秒とするが、ユーザにより適宜定められた値を用いれば良い。なお、本実施形態においては、各処理系統の上記コサイン窓関数の区間は、同じ処理系統において窓掛け処理（１）で用いられたハミング窓関数の区間と同じである。
【数４】
0004973426.tif 000005
【００４４】
次に、窓掛け処理（２）により生成された信号ｓ’n（ｔ）は、加算器において数式（５）に従って加算され、オーバーラップ加算正弦波ｓ（ｔ）が生成される（ステップＳＢ７００）。
【００４５】
【数５】
0004973426.tif 000006
本処理により、オンセット検出信号ｙ（ｔ）の長さに対応するおよそ正弦波形状のオーバーラップ加算正弦波ｓ（ｔ）が生成される。図６（Ｃ）は、（Ｂ）に示されたオンセット検出信号ｙ（ｔ）から生成されたオーバーラップ加算正弦波ｓ（ｔ）である。同図に示されているように、オーバーラップ加算正弦波ｓ（ｔ）の極大値は、オンセット検出信号ｙ（ｔ）のピークと、タイミングが一致している。
【００４６】
なお、本加算処理の直前に、各信号ｓ’n（ｔ）にはコサイン窓関数による窓掛け処理（２）が施されていることから、それらを加算したオーバーラップ加算正弦波ｓ（ｔ）は、全時間領域でなめらかに連続した関数となる。
【００４７】
（Ｂ−３−７；ピーク検出処理（２））
ピーク検出処理（２）においては、加算器により生成されたオーバーラップ加算正弦波ｓ（ｔ）のピーク時刻（隣り合うゼロクロスとゼロクロスの中点となる時刻）を特定し、該時刻において値がｋ（ｋ＞０）となり、該時刻以外の時刻においては値が０となるパルス信号ｚN（ｔ）を生成する（ステップＳＢ８００）。
【００４８】
【数６】
0004973426.tif 000007
【００４９】
（Ｂ−３−８；１／Ｎ分周処理）
１／Ｎ分周器においては、上記ピーク検出処理（２）において生成されたパルス信号ｚN（ｔ）において、パルスをＮ個に１個だけ残し他のパルスを「間引く」処理を行う（ステップＳＢ９００）。すなわち、１／Ｎ分周器においては、パルス信号ｚN（ｔ）からＮ（＝２）個に１つのパルスのみを選択し、該選択したパルスからなるテンポクロックパルス信号ｚ（ｔ）を生成する。
【００５０】
その場合、パルス信号ｚN（ｔ）からＮ個に１つの間隔でパルスを選択する組み合わせは、Ｎ通り存在する。図１０（Ａ）に示されたオーバーラップ加算正弦波ｓ（ｔ）からは、図１０（Ｂ）のように２（＝Ｎ）通りの候補が生成される。それらは、オーディオ信号ｘ（ｔ）の拍の表に対応するテンポクロックパルス信号ｚ（ｔ）の候補と、裏に対応する候補である。なお、生成されたＮ通りの候補のいずれがオーディオ信号ｘ（ｔ）の拍と位相が対応しているか、オーバーラップ加算正弦波ｓ（ｔ）のみからは判断することはできない。
【００５１】
そこで、１／Ｎ分周器は、オーディオ信号と対応付けられたタッピング音からＮ通りの候補のいずれがタッピング音と位相が一致するかを検出し、最も良い一致を示した候補を最終的なテンポクロックパルス信号ｚ（ｔ）と決定する。その際、ＲＡＭ１３０に書き込まれたタッピング音のタイミングおよびその周期と、上記テンポクロックパルス信号ｚ（ｔ）の候補に含まれるパルスのタイミングとを比較することにより上記判断を行う。ここでは、候補１が選択されたものとし、図６（Ｄ）には候補１をテンポクロックパルス信号ｚ（ｔ）として示す。
【００５２】
（Ｃ；まとめ）
本発明に係るテンポクロック生成装置１によれば、８ビートや１６ビートなどのリズム構造を有する楽曲のオーディオ信号であれば、曲中でオンセットの出現パターンによらずに拍を特定できる。例えば、図１に示したようなシンコペーションなどのリズムからも適切にテンポクロックパルス信号ｚ（ｔ）を生成することができる。
【００５３】
また、オーディオ信号において、拍のタイミングで対応する音が意図的に抜かれているなどの場合においても、該タイミングにおける信号が補間されたテンポクロックパルス信号ｚ（ｔ）が生成される。
なお、以上の処理において、ユーザにより設定されることが要求されるパラメータは窓掛け処理（１）および（２）に係る窓関数の窓長および、処理系統間での窓関数のずれの量のみである。従って、従来のＰＬＬ回路を用いたビート検出の方法に比べ、ユーザはパラメータ設定に要する労力を省くことが出来る。
【００５４】
さて、上述のテンポクロック生成装置１により生成されたテンポクロックパルス信号ｚ（ｔ）は、様々な用途に用いることが可能である。例えば、オーディオ信号ｘ（ｔ）から抽出された拍に同期させてＭＩＤＩシーケンサなどを動作させることができる。すなわち、例えばカラオケ装置などにおいて、カラオケの歌詞をオーディオ信号ｘ（ｔ）に同期させてワイプしたりすることが可能となる。また、予め用意した伴奏をオーディオ信号ｘ（ｔ）に同期させて付加するなどの処理も可能となる。
【００５５】
（Ｄ；変形例）
以上、本発明の実施形態について説明したが、本発明は以下のように種々の態様で実施することができる。なお、以下に説明する種々の実施形態を、適宜組み合わせて実施することも可能である。
【００５６】
（１）上記実施形態においては、ＨＤＤ１６０に予め格納されたオーディオ信号について処理を行う場合について説明した。ＨＤＤ１６０に格納されたオーディオ信号を変更・追加・削除するため、以下のような手段を設けても良い。
（ａ）メディアドライブ
メディアドライブは、例えば音楽コンテンツが格納されているＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disc）等の各種記録媒体（メディア）からデータを読み取る。読み取られたデータは、制御部１１０によりＨＤＤ１６０へ格納され、上記実施形態におけるオーディオ信号として用いても良い。
（ｂ）マイクロホン
マイクロホンを音声処理部１７０に接続する。音声処理部１７０にはＡ／Ｄ（Analog/Digital）変換機能を持たせる。マイクロホンは収音した音を表すアナログ信号を生成し、音声処理部１７０は該アナログ信号をＡ／Ｄ変換しデジタルデータを生成する。制御部１１０は、生成されたデジタルデータをＨＤＤ１６０に書き込み、該デジタルデータを上記実施形態におけるオーディオ信号に代えて用いても良い。
（ｃ）通信手段
通信ネットワークインタフェースを設け、各種音楽コンテンツ（オーディオ信号）を格納するサーバにインターネット網などの通信網を通じてアクセスし、音楽コンテンツの取得要求を送り、この取得要求に応じてサーバから送られてくる音楽コンテンツをＨＤＤ１６０に格納するなどしても良い。
また、上記の各種手段を用いて受取ったオーディオ信号を、ＨＤＤ１６０に格納する処理と並行して、又はＨＤＤ１６０に格納する処理に代えて、該オーディオ信号をリアルタイムに処理するようにしても良い。
【００５７】
（２）上記実施形態において、オンセット検出信号ｙ（ｔ）において、所定のレベルを下回るインパルスをノイズと見なし、該成分をカットしてからテンポクロック生成部２０に出力するなどしても良い。
【００５８】
（３）上記実施形態においては、あらかじめＨＤＤ１６０に格納されているタッピング音（インパルス音を表す音データ）を用いて楽曲の拍のタイミングおよびテンポを特定する場合について説明したが、オーディオ信号の再生時にリアルタイムに生成される情報をタッピング音に代えて用いても良い。そのような場合、上記変形例（１）に記載したマイクロホンに対して、ハンドクラップ（拍手）や打楽器などにより拍を刻むことにより音信号を生成させ、該生成された音信号を用いても良い。また、所定の操作手段、例えばキーボード（操作部１４０）のキーなど、の操作内容に応じて生成された信号を拍情報として用いても良い。
また、拍のタイミングとテンポとを指定する数値情報を用いても良い。例えば最初の拍の時刻と拍の間隔を示す数値データを、操作部１４０を介して入力することができるようにしても良い。また、複数の拍のタイミングを示す数値データを入力することができるようにしても良く、その場合は該拍同士の間隔から拍のテンポを算出すれば良い。
要は、オーディオ信号に含まれる楽曲の拍のタイミングおよびそのテンポが特定可能な情報が得られるようにすれば良い。
【００５９】
（４）上記実施形態においては、オーディオ信号ｘ（ｔ）から、音データであるテンポクロックパルス信号ｚ（ｔ）を生成する場合について説明した。しかし、該テンポクロックパルス信号ｚ（ｔ）に代えて、図１１に示すような、オーディオ信号におけるテンポクロックパルスの時刻（例えば、オーディオ信号が開始されてから経過した時間）を示すデータ列（テンポクロックパルスデータ）として生成しても良い。
【００６０】
（５）上述した実施形態において、ＨＤＤ１６０に格納されるオーディオ信号は、例えばＷＡＶＥ形式やＭＰ３形式の音データである場合について説明した。しかし、オーディオ信号は、他のどのような形式のデータであっても良い。
また、上記オーディオ信号は時間波形を表すデータである場合について説明したが、ＭＩＤＩ（Musical Instrument Digital Interface）形式など、発音すべきノートを時間経過に沿って記した音データなど、他の形式のデータであっても良い。そのように、時間波形を記したデータ以外のデータについて本発明を実施する場合には、該データを一旦時間波形に変換する変換手段を設け、該変換手段により時間波形データに変換したデータを上記オーディオ信号に代えて用いれば良い。
【００６１】
（６）上記実施形態においては、テンポクロック生成装置１に特徴的な機能をソフトウェアモジュールで実現する場合について説明したが、上記各機能を担うハードウェアモジュールを組み合わせてテンポクロック生成装置１を構成するようにしても良い。
【００６２】
（７）上記実施形態においては、本発明に係るテンポクロック生成装置１に特徴的な機能を実現するためのプログラムを、ＲＯＭ１２０に予め書き込んでおく場合について説明したが、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、ＲＡＭ、ＲＯＭなどのコンピュータ読み取り可能な記録媒体に上記プログラムを記録して配布するとしても良く、インターネット網などの電気通信回線経由のダウンロードにより上記制御プログラムを配布するようにしても良い。
【００６３】
（８）上記実施形態においては、テンポクロック生成装置１は、ＨＤＤ１６０に格納されたオーディオ信号を処理する場合について説明した。しかし、オーディオ信号を供給する手段は、ＨＤＤ１６０などの記憶手段に限られない。例えばテンポクロック生成装置１が各種の記録媒体に記録されたデータを読み出し出力する再生装置を更に備え、該再生装置により記録媒体から読み出したデータをリアルタイムに処理しても良い。
【００６４】
（９）上記実施形態においては、オーディオ信号の読出しおよび再生の進行に伴ってテンポクロックパルス信号ｚ（ｔ）を生成する場合について説明した。しかし、該処理は必ずしもオーディオ信号の進行に伴って行われなくても良い。例えば、オーディオ信号を一旦初めから終わりまで読み出し、読み出しが終了した段階で上述の処理を行い、テンポクロックパルス信号ｚ（ｔ）を生成するようにしても良い。
【００６５】
（１０）上記実施形態においては、ステップＳＢ２００の窓掛け処理（１）において、窓関数としてハミング窓関数を用いる場合について説明した。しかし、用いられる窓関数はハミング窓関数に限られるものではなく、ハニング窓関数など他の窓関数でも良い。要は、区間の中央が１付近の値で、その両端で値が０である関数であれば良い。
【００６６】
（１１）上記実施形態においては、ステップＳＢ６００の窓掛け処理（２）において、窓関数としてコサイン窓関数を用いる場合について説明した。しかし、用いられる窓関数はコサイン窓関数に限られるものではなく、ハミング窓関数など他の窓関数でも良い。要は、区間の中央が１付近の値で、その両端で値が０である関数であれば良い。なぜならオーバーラップ加算正弦波ｓ（ｔ）を、全時間領域でなめらかに連続した関数にしたいためである。
【００６７】
（１２）上記実施形態においては、４分の４拍子で８ビートのオーディオ信号を例示して説明した。しかし、オーディオ信号が４分の３拍子である場合など、他の拍子にも本発明は適用可能である。その場合、オーディオ信号のビート数を１小節あたりの拍の数で除した値をＮ値とすれば良い。例えば、４分の３拍子、６ビートのオーディオ信号については、該オーディオ信号と対応するＮ値として、ビート数を３で除した値である２とすれば良い。
【００６８】
（１３）上記実施形態においては、Ｎ値がオーディオ信号と関連付けて読み出される場合について説明したが、ユーザによりＮ値が操作部１４０を介して入力されるようにしても良い。また、ユーザにより操作部１４０を介して、ビート数が入力されるようにし、制御部１１０が、該入力されたビート数を１小節あたりの拍の数で除した値をＮ値として算出するようにしても良い。
また、１小節あたりの拍の数を表すパラメータをユーザが設定可能としても良い。
要は、１拍あたりに含まれるビートの数を表すＮ値が最終的に得られるようにすれば良い。以上のように、ユーザにより各種パラメータが入力される場合には、該パラメータを入力するための案内画面を表示部１５０に表示し、該表示内容に従って操作部１４０に入力された内容に基づいてパラメータを設定、算出するようにすれば良い。
【００６９】
（１４）上記実施形態においては、各処理系統で、窓掛け処理（１）における窓関数のフレーム長を５秒とし、隣接する処理系統におけるフレームのずれをＴ＝１秒とする場合について説明したが、それらの長さは上記の値に限定されるものではなく、適宜定められた値を用いれば良い。要は、音声など時間変換する信号の周波数と位相の変化を解析するために、順次フレーム範囲をずらして解析することが出来れば良い。
【００７０】
（１５）上記実施形態においては、オンセット検出信号ｙ（ｔ）を生成するための手順の一例を示した。しかし、オーディオ信号に含まれる楽曲のオンセットを表す信号を生成するための処理方法は、上記の方法に限られるものではない。
例えば、特許文献（特開２００３−２８０６６４号公報）には、原音楽波形からビートを抽出する技術が開示されている。該文献によれば、原音楽波形を短時間高速フーリエ変換し、原音楽波形の各フレームの波形に含まれる周波数成分を分析し、振幅が最も大きい周波数成分を特定する。そして、原音楽波形から、該特定された周波数成分に対応する正弦波で合成可能な成分と、合成できない成分（残差波形）を特定する。このようにして生成された残差波形は、原音楽波形に含まれるビートを良く抽出した波形となることから、上記実施形態におけるオンセット検出信号ｙ（ｔ）に相当する信号として用いることが可能である。
このように、オンセット検出信号ｙ（ｔ）に相当する信号を生成する方法は、上記実施形態に記載の方法に限定されるものではなく、オンセット（ビート）を抽出するための様々な方法を適用可能である。
【００７１】
（１６）上記実施形態においては、発信器は、ピーク検出処理（１）において求められた角周波数ωnおよび初期位相θnに基づいて、角周波数がωnであり、初期位相がθnである余弦波信号ｓnｔ（ｔ）を生成する場合について説明した。しかし、発信器が生成する信号は余弦波に限られるものではない。
例えば、角周波数がωnであり、初期位相がθnである正弦波を生成する場合、ピーク検出処理（２）において、ゼロクロスをすると共にその微分値が正である時刻を特定し、該時刻において値がｋ（ｋ＞０）となり、該時刻以外の時刻において値が０となるパルス信号ｚn（ｔ）を生成すれば良い。
また、発信器が生成する信号は、正弦波や余弦波に限られるものではない。例えば、方形波、三角波、鋸歯状波などのパルス波でも良い。その場合には、周期が２π／ωnであり、位相がθn進んだパルス波を生成すると共に、ピーク検出処理（２）において、各パルス波に応じた点（特定点）を特定し、該特定点に対応する時刻において値がｋ（ｋ＞０）となり、該時刻以外の時刻において値が０となるパルス信号ｚn（ｔ）を生成すれば良い。上記特定点として、例えば方形波の場合には、振幅が最大値となった区間の中間の点など、三角波の場合には、振幅が最大値となった点など、鋸歯状波の場合には、信号の値が最大値の所定の値となる点などを指定すれば良い。
【図面の簡単な説明】
【００７２】
【図１】オーディオ信号のリズムの一例を示した図である。
【図２】テンポクロック生成装置１の全体構成を示すブロック図である。
【図３】制御部１１０による処理の流れを示すブロック図である。
【図４】オンセット検出部１０の処理の流れを示したフローチャートである。
【図５】オンセット検出部１０による処理を示したブロック図である。
【図６】テンポクロックパルス信号の生成における各種信号の波形を示した図である。
【図７】テンポクロック生成部２０の処理の流れを示したフローチャートである。
【図８】テンポクロック生成部２０による処理を示したブロック図である。
【図９】パワースペクトルの一例を示した図である。
【図１０】テンポクロックパルス信号の生成における各種信号の波形を示した図である。
【図１１】テンポクロックパルスデータの一例を示す図である。
【符号の説明】
【００７３】
１…テンポクロック生成装置、１０…オンセット検出部、１１…パワー算出部、１２…ローパスフィルタ、１３…差分生成部、１４…半波整流器、２０…テンポクロック生成部、１１０…制御部、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…操作部、１５０…表示部、１６０…ＨＤＤ、１７０…音声処理部、１８０…スピーカ
【図１】
0004973426.tif 000008
【図２】
0004973426.tif 000009
【図３】
0004973426.tif 000010
【図４】
0004973426.tif 000011
【図５】
0004973426.tif 000012
【図６】
0004973426.tif 000013
【図７】
0004973426.tif 000014
【図８】
0004973426.tif 000015
【図９】
0004973426.tif 000016
【図１０】
0004973426.tif 000017
【図１１】
0004973426.tif 000018