(57)【要約】【課題】分析区間内でテンポが変わってもテンポと拍のタイミングを推定可能なテンポクロック生成装置およびプログラムを提供することを目的とする。【解決手段】本発明に係るテンポクロック生成装置１によれば、４ビートや８ビートなどのリズム構造を有する楽曲のオーディオ信号であれば、曲中でオンセットの出現パターンによらずに拍を特定できる。これは、オーディオ信号ｖ（ｔ）に係る楽音のテンポが、処理区間内で大きく変化することにより、処理区間内においてオンセット検出信号ｗ（ｔ）のパルス発生頻度が大きく変化したとしても、リファレンスデータに基づいて、パルス発生頻度が概ね一定になるように時間軸が伸縮され、テンポクロック生成部３０における処理が行われるからである。【選択図】図７
2009186762.tif 000002
【特許請求の範囲】
【請求項１】
所定の楽曲の各部におけるテンポを示すリファレンスデータを記憶するリファレンスデータ記憶手段と、
楽音を表すオーディオ信号を取得するオーディオ信号取得手段と、
前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得手段と、
前記所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、
前記オーディオ信号取得手段によって取得されたオーディオ信号が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出手段と、
前記リファレンスデータに係る楽曲の各部と、前記オンセット検出手段によって生成されたオンセット検出情報の各部とを対応付ける対応付け手段と、
前記オンセット検出手段によって生成されたオンセット検出情報の各部について、当該オンセット検出情報の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオンセット検出情報を時間軸伸縮情報として生成する時間軸伸縮手段と、
前記時間軸伸縮手段によって生成された時間軸伸縮情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、
前記周波数成分検出手段によって検出された周波数成分の中から、前記拍情報取得手段によって取得された拍情報および前記ビート指示情報取得手段によって取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定手段と、
前記ビート周波数特定手段によって特定された周波数および位相を有する正弦波を生成する周期関数生成手段と、
前記周期関数生成手段によって生成された正弦波を各フレームについて重ね合わせる重合手段と、
前記重合手段によって重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成手段と、
前記補正前情報生成手段によって生成された補正前情報の各部について、前記時間軸伸縮手段における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮手段と
を具備し、
前記対応付け手段は、前記逆時間伸縮手段によって生成された拍タイミング情報に基づいて、前記対応付けを行う
ことを特徴とする拍タイミング情報生成装置。
【請求項２】
所定の楽曲の各部におけるテンポを示すリファレンスデータを記憶するリファレンスデータ記憶手段と、
楽音を表すオーディオ信号を取得するオーディオ信号取得手段と、
前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得手段と、
前記所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、
前記リファレンスデータに係る楽曲の各部と、前記オーディオ信号取得手段によって取得されたオーディオ信号の各部とを対応付ける対応付け手段と、
前記オーディオ信号取得手段によって取得されたオーディオ信号の各部について、当該オーディオ信号の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオーディオ信号を時間軸伸縮波形として生成する時間軸伸縮手段と、
前記時間軸伸縮手段によって生成された時間軸伸縮波形が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出手段と、
前記オンセット検出手段によって生成されたオンセット検出情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、
前記周波数成分検出手段によって検出された周波数成分の中から、前記拍情報取得手段によって取得された拍情報および前記ビート指示情報取得手段によって取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定手段と、
前記ビート周波数特定手段によって特定された周波数および位相を有する正弦波を生成する周期関数生成手段と、
前記周期関数生成手段によって生成された正弦波を各フレームについて重ね合わせる重合手段と、
前記重合手段によって重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成手段と、
前記補正前情報生成手段によって生成された補正前情報の各部について、前記時間軸伸縮手段における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮手段と
を具備し、
前記対応付け手段は、前記逆時間伸縮手段によって生成された拍タイミング情報に基づいて、前記対応付けを行う
ことを特徴とする拍タイミング情報生成装置。
【請求項３】
前記時間軸伸縮手段は、前記リファレンスデータが示すテンポが大きいほど時間軸を伸長し、小さいほど時間軸を圧縮する
ことを特徴とする請求項１または請求項２に記載の拍タイミング情報生成装置。
【請求項４】
前記補正前情報生成手段は、前記選択されたタイミングの時刻を表すデータである補正前情報を生成し、
前記逆時間軸伸縮手段は、前記時間軸の伸縮に応じて、補正前情報が示す時刻を変更することによって、拍タイミング情報を生成する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の拍タイミング情報生成装置。
【請求項５】
前記リファレンス情報は、楽曲の各部を少なくとも拍を単位として示し、
前記逆時間軸伸縮手段によって生成される拍タイミング情報は、拍のタイミングをパルスで示すものであり、
前記対応付け手段は、前記拍タイミング情報に係るパルスの数を計測することによって、前記各パルスに対応する前記楽曲の各部を認識して、前記対応付けを行う
ことを特徴とする請求項１乃至請求項３のいずれかに記載の拍タイミング情報生成装置。
【請求項６】
コンピュータに、
楽音を表すオーディオ信号を取得するオーディオ信号取得機能と、
前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得機能と、
所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得機能と、
前記オーディオ信号取得機能において取得されたオーディオ信号が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出機能と、
前記所定の楽曲の各部におけるテンポを示すリファレンスデータに係る楽曲の各部と、前記オンセット検出機能において生成されたオンセット検出情報の各部とを対応付ける対応付け機能と、
前記オンセット検出機能において生成されたオンセット検出情報の各部について、当該オンセット検出情報の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオンセット検出情報を時間軸伸縮情報として生成する時間軸伸縮機能と、
前記時間軸伸縮機能において生成された時間軸伸縮情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出機能と、
前記周波数成分検出機能において検出された周波数成分の中から、前記拍情報取得機能において取得された拍情報および前記ビート指示情報取得機能において取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定機能と、
前記ビート周波数特定機能において特定された周波数および位相を有する正弦波を生成する周期関数生成機能と、
前記周期関数生成機能において生成された正弦波を各フレームについて重ね合わせる重合機能と、
前記重合機能において重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成機能と、
前記補正前情報生成機能において生成された補正前情報の各部について、前記時間軸伸縮機能における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮機能と
を実現させ、
前記対応付け機能は、前記逆時間伸縮機能において生成された拍タイミング情報に基づいて、前記対応付けを行う
ことを特徴とするプログラム。
【請求項７】
コンピュータに、
楽音を表すオーディオ信号を取得するオーディオ信号取得機能と、
前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得機能と、
所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得機能と、
前記所定の楽曲の各部におけるテンポを示すリファレンスデータに係る楽曲の各部と、前記オーディオ信号取得機能において取得されたオーディオ信号の各部とを対応付ける対応付け機能と、
前記オーディオ信号取得機能において取得されたオーディオ信号の各部について、当該オーディオ信号の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオーディオ信号を時間軸伸縮波形として生成する時間軸伸縮機能と、
前記時間軸伸縮機能において生成された時間軸伸縮波形が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出機能と、
前記オンセット検出機能において生成されたオンセット検出情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出機能と、
前記周波数成分検出機能において検出された周波数成分の中から、前記拍情報取得機能において取得された拍情報および前記ビート指示情報取得機能において取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定機能と、
前記ビート周波数特定機能において特定された周波数および位相を有する正弦波を生成する周期関数生成機能と、
前記周期関数生成機能において生成された正弦波を各フレームについて重ね合わせる重合機能と、
前記重合機能において重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成機能と、
前記補正前情報生成機能において生成された補正前情報の各部について、前記時間軸伸縮機能における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮機能と
を実現させ、
前記対応付け機能は、前記逆時間伸縮機能において生成された拍タイミング情報に基づいて、前記対応付けを行う
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンポクロックなど拍のタイミングを規定する情報を生成する技術に関する。
【背景技術】
【０００２】
ビート感のあるオーディオ信号からビート（ｂｅａｔ：強いアクセントのあるリズム）を抽出する技術が開示されている。例えば、特許文献１では、入力音楽信号から音楽のリズムのビートを抽出する装置が記載されている。この装置は、スペクトログラムにおけるパワースペクトルが大きく変化するタイミングを検出し、その変化するタイミングと同期するようにビート成分検出出力信号を出力するビート抽出手段を備えている。また、特許文献２では、テンポが楽曲の途中で変化する音楽データであってもテンポを正確に推定するための技術が開示されている。この技術においては、テンポを特定するための処理を行う際の処理区間長を適宜組み合わせてテンポの分析を行うことにより、楽曲の途中でテンポが変わることに対応している。
【特許文献１】特開２００７−０３３８５１号公報
【特許文献２】特許３６７４９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記特許文献１、２の技術においては、入力されたオーディオ信号を、所定の長さのフレームに分割し、分割されたフレームについて分析を行う。その場合、少なくとも分析区間内ではテンポが一定であると仮定して分析を行っている。しかし、楽曲の中には、楽曲の途中でテンポが２倍になったり、半分になったりと大きくテンポが変化するものもあるが、上記の技術においては、分析区間内でテンポが大きく変わった場合には適切なテンポの推定ができないという問題点があった。
【０００４】
本発明は上述の課題に鑑みてなされたものであり、分析区間内でテンポが変わっても適切にテンポと拍のタイミングを推定することが可能な拍タイミング情報生成装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明は、所定の楽曲の各部におけるテンポを示すリファレンスデータを記憶するリファレンスデータ記憶手段と、楽音を表すオーディオ信号を取得するオーディオ信号取得手段と、前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得手段と、前記所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、前記オーディオ信号取得手段によって取得されたオーディオ信号が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出手段と、前記リファレンスデータに係る楽曲の各部と、前記オンセット検出手段によって生成されたオンセット検出情報の各部とを対応付ける対応付け手段と、前記オンセット検出手段によって生成されたオンセット検出情報の各部について、当該オンセット検出情報の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオンセット検出情報を時間軸伸縮情報として生成する時間軸伸縮手段と、前記時間軸伸縮手段によって生成された時間軸伸縮情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、前記周波数成分検出手段によって検出された周波数成分の中から、前記拍情報取得手段によって取得された拍情報および前記ビート指示情報取得手段によって取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定手段と、前記ビート周波数特定手段によって特定された周波数および位相を有する正弦波を生成する周期関数生成手段と、前記周期関数生成手段によって生成された正弦波を各フレームについて重ね合わせる重合手段と、前記重合手段によって重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成手段と、前記補正前情報生成手段によって生成された補正前情報の各部について、前記時間軸伸縮手段における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮手段とを具備し、前記対応付け手段は、前記逆時間伸縮手段によって生成された拍タイミング情報に基づいて、前記対応付けを行うことを特徴とする拍タイミング情報生成装置を提供する。
【０００６】
また、本発明は、所定の楽曲の各部におけるテンポを示すリファレンスデータを記憶するリファレンスデータ記憶手段と、楽音を表すオーディオ信号を取得するオーディオ信号取得手段と、前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得手段と、前記所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得手段と、前記リファレンスデータに係る楽曲の各部と、前記オーディオ信号取得手段によって取得されたオーディオ信号の各部とを対応付ける対応付け手段と、前記オーディオ信号取得手段によって取得されたオーディオ信号の各部について、当該オーディオ信号の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオーディオ信号を時間軸伸縮波形として生成する時間軸伸縮手段と、前記時間軸伸縮手段によって生成された時間軸伸縮波形が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出手段と、前記オンセット検出手段によって生成されたオンセット検出情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出手段と、前記周波数成分検出手段によって検出された周波数成分の中から、前記拍情報取得手段によって取得された拍情報および前記ビート指示情報取得手段によって取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定手段と、前記ビート周波数特定手段によって特定された周波数および位相を有する正弦波を生成する周期関数生成手段と、前記周期関数生成手段によって生成された正弦波を各フレームについて重ね合わせる重合手段と、前記重合手段によって重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成手段と、前記補正前情報生成手段によって生成された補正前情報の各部について、前記時間軸伸縮手段における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮手段とを具備し、前記対応付け手段は、前記逆時間伸縮手段によって生成された拍タイミング情報に基づいて、前記対応付けを行うことを特徴とする拍タイミング情報生成装置を提供する。
【０００７】
また、別の好ましい態様において、前記時間軸伸縮手段は、前記リファレンスデータが示すテンポが大きいほど時間軸を伸長し、小さいほど時間軸を圧縮することを特徴とする。
【０００８】
また、別の好ましい態様において、前記補正前情報生成手段は、前記選択されたタイミングの時刻を表すデータである補正前情報を生成し、前記逆時間軸伸縮手段は、前記時間軸の伸縮に応じて、補正前情報が示す時刻を変更することによって、拍タイミング情報を生成することを特徴とする。
【０００９】
また、別の好ましい態様において、前記リファレンス情報は、楽曲の各部を少なくとも拍を単位として示し、前記逆時間軸伸縮手段によって生成される拍タイミング情報は、拍のタイミングをパルスで示すものであり、前記対応付け手段は、前記拍タイミング情報に係るパルスの数を計測することによって、前記各パルスに対応する前記楽曲の各部を認識して、前記対応付けを行うことを特徴とする。
【００１０】
また、本発明は、コンピュータに、楽音を表すオーディオ信号を取得するオーディオ信号取得機能と、前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得機能と、所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得機能と、前記オーディオ信号取得機能において取得されたオーディオ信号が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出機能と、前記所定の楽曲の各部におけるテンポを示すリファレンスデータに係る楽曲の各部と、前記オンセット検出機能において生成されたオンセット検出情報の各部とを対応付ける対応付け機能と、前記オンセット検出機能において生成されたオンセット検出情報の各部について、当該オンセット検出情報の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオンセット検出情報を時間軸伸縮情報として生成する時間軸伸縮機能と、前記時間軸伸縮機能において生成された時間軸伸縮情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出機能と、前記周波数成分検出機能において検出された周波数成分の中から、前記拍情報取得機能において取得された拍情報および前記ビート指示情報取得機能において取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定機能と、前記ビート周波数特定機能において特定された周波数および位相を有する正弦波を生成する周期関数生成機能と、前記周期関数生成機能において生成された正弦波を各フレームについて重ね合わせる重合機能と、前記重合機能において重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成機能と、前記補正前情報生成機能において生成された補正前情報の各部について、前記時間軸伸縮機能における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮機能とを実現させ、前記対応付け機能は、前記逆時間伸縮機能において生成された拍タイミング情報に基づいて、前記対応付けを行うことを特徴とするプログラムを提供する。
【００１１】
また、本発明は、コンピュータに、楽音を表すオーディオ信号を取得するオーディオ信号取得機能と、前記楽音の拍のタイミングを示す拍情報を取得する拍情報取得機能と、所定の楽曲のビートに対応するビート指示情報を取得するビート指示情報取得機能と、前記所定の楽曲の各部におけるテンポを示すリファレンスデータに係る楽曲の各部と、前記オーディオ信号取得機能において取得されたオーディオ信号の各部とを対応付ける対応付け機能と、前記オーディオ信号取得機能において取得されたオーディオ信号の各部について、当該オーディオ信号の各部に対応する楽曲の各部における前記リファレンスデータが示すテンポに応じて時間軸を伸縮し、前記各部の時間軸が伸縮されたオーディオ信号を時間軸伸縮波形として生成する時間軸伸縮機能と、前記時間軸伸縮機能において生成された時間軸伸縮波形が表す楽音のオンセットを検出しオンセット検出情報を生成するオンセット検出機能と、前記オンセット検出機能において生成されたオンセット検出情報のオンセットに係る周波数成分を順次連続する所定フレーム長毎に検出する周波数成分検出機能と、前記周波数成分検出機能において検出された周波数成分の中から、前記拍情報取得機能において取得された拍情報および前記ビート指示情報取得機能において取得されたビート指示情報に応じて、所定の周波数を特定するとともに、当該周波数に対応する位相を特定するビート周波数特定機能と、前記ビート周波数特定機能において特定された周波数および位相を有する正弦波を生成する周期関数生成機能と、前記周期関数生成機能において生成された正弦波を各フレームについて重ね合わせる重合機能と、前記重合機能において重ね合わされた正弦波について、当該正弦波が特定の条件となる特定点が出現する特定点タイミングから、前記拍情報および前記ビート指示情報に基づいて複数のタイミングを選択し、当該選択されたタイミングを示す情報を補正前情報として生成する補正前情報生成機能と、前記補正前情報生成機能において生成された補正前情報の各部について、前記時間軸伸縮機能における時間軸の伸縮とは逆の伸縮を行うことによって、拍タイミング情報を生成する逆時間軸伸縮機能とを実現させ、前記対応付け機能は、前記逆時間伸縮機能において生成された拍タイミング情報に基づいて、前記対応付けを行うことを特徴とするプログラムを提供する。
【発明の効果】
【００１２】
本発明に係る拍タイミング情報生成装置およびプログラムによれば、分析区間内でテンポが変わっても適切にテンポと拍のタイミングを推定することが可能となる。
【発明を実施するための最良の形態】
【００１３】
実施形態の説明に入る前に、楽曲の「拍子」、「テンポ」、および「ビート」について説明する。楽曲においては、基調となる所定の音符による拍が複数集まって小節をなし、この小節が周期的に繰り返される場合、「拍子」とは小節に含まれる上記所定の音符（拍）の数を示す。例えば、４分の４拍子の楽曲では、基調となる４分音符が４拍集まって１小節が構成される。
【００１４】
「テンポ」とは、上記基調となる所定の音符が発音される頻度であり、例えばテンポ１２０とは、４分音符が１分間に１２０回の頻度で発音される演奏の速度である。「ビート」とは、上記基調となる音符で刻まれる１拍について、どのようにリズムをとるかを示すものである。例えば４分の４拍子の場合、４分音符を単位にしてリズムをとると４ビートとなり、８分音符を単位にしてリズムをとると８ビートとなる。そのように、１つ１つの拍についてどの音符を単位にしてリズムをとるかを示すのがビートである。以下の説明においては、上述した「拍子」、「テンポ」、および「ビート」の定義を用いて説明する。
【００１５】
以下、図面を参照しつつ、本発明を実施する際の最良の形態について説明する。
（Ａ；構成）
図１は、本発明に係る拍タイミング情報生成装置の一例であるテンポクロック生成装置１の全体構成を示す図である。テンポクロック生成装置１は、例えばパーソナルコンピュータで構成される。すなわち、テンポクロック生成装置１は、制御部１１０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０、操作部１４０、表示部１５０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１６０、音声処理部１７０、および音声処理部１７０に接続されたスピーカ１８０を有する。上記各部はバスを介して互いに接続されている。
【００１６】
制御部１１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、ＲＯＭ１２０に格納された制御プログラムを実行することにより各部の制御を行う。ＲＯＭ１２０は、制御部１１０が実行する制御プログラムを格納している。ＲＡＭ１３０は、制御部１１０によってワークエリアとして利用される。
【００１７】
操作部１４０は、例えばキーボードやマウスであり各種の操作子を備える。操作部１４０はユーザによる操作内容を表す操作信号を制御部１１０へ出力する。表示部１５０は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示手段である。このディスプレイの画面には、オーディオ信号の処理に係る各種設定を行うためのメニュー画面が表示される。
【００１８】
ＨＤＤ１６０は、大容量の記憶装置であり、様々な楽曲の演奏に係る楽音を表すオーディオ信号ｖ（ｔ）を複数記憶している。オーディオ信号ｖ（ｔ）は、例えばＷＡＶＥ形式やＭＰ３（ＭＰＥＧ−１  Ａｕｄｉｏ  Ｌａｙｅｒ−３）形式の音データとして記憶され、楽音の波形を表している。そして、この波形は、時刻ｔの進行により振幅が変化する波形（以下、時間波形という）である。なお、オーディオ信号ｖ（ｔ）は、演奏に係る楽音を表しているから、その演奏速度は必ずしも一定ではなく、例えば数％程度揺らいでいることもある。
【００１９】
ＨＤＤ１６０に含まれるオーディオ信号ｖ（ｔ）の中には、途中でテンポが大きく変化する楽曲の演奏に係る楽音を表したオーディオ信号ｖ（ｔ）が含まれる。また、オーディオ信号ｖ（ｔ）の冒頭には、所定の間隔のインパルス音（以下、タッピング音）が付加されている。タッピング音は、このタッピング音が付加されたオーディオ信号ｖ（ｔ）が示す楽音の最初の小節における拍と位相が同期している。そして、このようなタッピング音に引き続きオーディオ信号ｖ（ｔ）が示す楽音が連続するようになっている。すなわち、タッピング音が、オーディオ信号ｖ（ｔ）が示す楽音の演奏開始タイミングおよび演奏速度を示すものとなっている。
【００２０】
また、ＨＤＤ１６０には、各楽曲の各部におけるテンポを示すリファレンスデータを記憶している。図２は、リファレンスデータの一部を取り出して示した図である。図２に示すように、リファレンスデータは、楽曲のリズム構造を表すパラメータである「Ｎ値」、楽曲のテンポの初期値（以下、テンポ初期値という）、および各ソングポジションにおけるテンポをテンポ初期値との相対値（以下、伸縮率という）を示している。この例においては、テンポ初期値は「１２０」であるから、伸縮率「１．０」はテンポ「１２０」を示し、伸縮率「２．０」はテンポ「２４０」であることを示す。
【００２１】
ソングポジションは、楽曲の各部を示すものであって、「小節数」：「拍数」：「クロック数」で示されている。小節数は、楽曲が開始されてからの小節の数である。拍数は、各小節において何拍目を示すものかであり、４拍子の楽曲であれば、１から４の値となる。クロック数は、各拍内の位置を示すものであ。この例においては、１拍を９６クロックで分割し、クロック数で１拍内の位置を示し、クロック数「００」は拍の最初を示し、「４８」は拍の半分、すなわち半拍分経過したところを示している。例えば、ソングポジションが「００２：０１：４８」である場合には、楽曲の２小節目の最初から半拍経過した時点を示している。この例においては、リファレンスデータは、楽曲の半拍ごとのテンポを示すようになっているが、さらに短い単位でテンポを規定してもよいし、逆に長い単位、例えば１拍毎、１小節毎などでテンポを規定してもよい。
【００２２】
「Ｎ値」は、楽曲のリズムのビート数を拍子の値で除した値である。例えば、リファレンスデータのように４分の４拍子で８ビートの場合には、Ｎ＝８ビート／４拍子＝２となる。
【００２３】
音声処理部１７０は、Ｄ／Ａ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ）変換器とアンプとを有する。制御部１１０から受取った音を表すデジタルのデータはＤ／Ａ変換によりアナログの信号に変換され、アンプにより振幅が調整された後、スピーカ１８０に出力される。スピーカ１８０は、音声処理部１７０から受取ったアナログの信号に基づいて音声を放音する。以上がテンポクロック生成装置１の構成である。
【００２４】
（Ｂ；動作）
次に、ＲＯＭ１２０に格納された制御プログラムに従って制御部１１０が行うビート抽出処理について説明する。
【００２５】
（Ｂ−１；処理の概要）
テンポクロック生成装置１の電源が投入されると、制御部１１０は、ＲＯＭ１２０から制御プログラムを読み出しＲＡＭ１３０にロードする。ユーザにより操作部１４０が操作され、特定のオーディオ信号ｖ（ｔ）および楽曲が選択されると、制御部１１０は、選択されたオーディオ信号ｖ（ｔ）、および選択された楽曲のリファレンスデータ（この例においては、図２に示すようなリファレンスデータ）をＨＤＤ１６０から読み出す。読み出されたリファレンスデータは、ＲＡＭ１３０に書き込まれる。
【００２６】
制御部１１０は、まずオーディオ信号Ｖ（ｔ）の冒頭に付加されたタッピング音の解析を行う。すなわち、タッピング音の発音タイミングを特定し、そのタイミングからタッピング音の周期を算出する。そして算出されたタッピング音の発音タイミングおよび周期はＲＡＭ１３０の所定のエリアに書き込まれる。
【００２７】
次に、制御部１１０は、読み出したオーディオ信号ｖ（ｔ）を音声処理部１７０に供給し、スピーカ１８０に放音させる。そして、制御部１１０は、オーディオ信号ｖ（ｔ）の再生と並行して、以下に延べるビート抽出処理を行う。
【００２８】
図３に示すように、制御部１１０は、制御プログラムによって、オンセット検出部１０、時間軸伸縮処理部２０、テンポクロック生成部３０、逆時間軸伸縮処理部４０および伸縮率指定部５０を構成する。ＨＤＤ１６０からオーディオ信号ｖ（ｔ）が読み出され、読み出しに応じてオンセット検出部１０に順次入力される。オンセット検出部１０は、オーディオ信号ｖ（ｔ）から抽出したオンセット（ビート）を表す信号であるオンセット検出信号ｗ（ｔ）を生成し、時間軸伸縮処理部２０に順次出力する。
【００２９】
時間伸縮処理部２０は、後述する伸縮率指定部５０から、伸縮率を示す伸縮率情報Ｐ（ｔ）を取得する。そして、オンセット検出部１０から入力された時間波形であるオンセット検出信号ｗ（ｔ）に対して、伸縮率情報Ｐ（ｔ）が示す伸縮率で、時間領域における伸縮をする時間軸伸縮処理を行い、時間伸縮信号ｘ（ｔ’）を生成する。
【００３０】
テンポクロック生成部３０は、時間軸伸縮処理部２０によって生成された時間伸縮信号ｘ（ｔ’）から、オーディオ信号ｖ（ｔ）の拍に対応する信号成分を検出し、検出された成分から補正前パルス信号ｕ（ｔ’）を生成する。
【００３１】
逆時間軸伸縮処理部４０は、後述する伸縮率指定部５０から、伸縮率を示す伸縮率情報Ｐ（ｔ）を取得する。そして、テンポクロック生成部３０によって生成された補正前パルス信号ｕ（ｔ’）に対して、伸縮率情報Ｐ（ｔ）が示す伸縮率の逆数での時間領域における伸縮、すなわち、時間軸伸縮処理部２０における処理の逆の処理である逆時間軸伸縮処理を行い、テンポクロックパルス信号ｚ（ｔ）を生成する。
【００３２】
伸縮率指定部５０は、逆時間軸伸縮処理部４０において生成されたテンポクロックパルス信号ｚ（ｔ）およびリファレンスデータを取得し、このテンポクロックパルス信号ｚ（ｔ）に基づいて、オンセット検出部１０に入力されるオーディオデータｖ（ｔ）の各部と、リファレンスデータに係る楽曲の各部とを対応付ける。そして、オンセット検出部１０に入力される各時点におけるオーディオデータｖ（ｔ）の各部に対応する楽曲の各部の伸縮率を特定し、特定した伸縮率を示す伸縮率情報Ｐ（ｔ）を時間軸伸縮処理部２０および逆時間軸伸縮処理部４０に出力する。
【００３３】
（Ｂ−２；オンセット検出部１０の処理）
オンセット検出部１０の処理を図４、図５、図６を用いて説明する。図４は、オンセット検出部１０における処理のフローチャート、図５は、オンセット検出部１０の構成を示したブロック図である。また、図６は、オーディオ信号ｖ（ｔ）とオンセット検出信号ｗ（ｔ）との関係を示す図である。図５に示すように、オンセット検出部１０は、パワー算出部１１とローパスフィルタ１２と差分生成部１３と半波整流器１４とを有する。
【００３４】
まず、オンセット検出部１０は、オーディオ信号ｖ（ｔ）を受取る（ステップＳＡ１００）。このオーディオ信号ｖ（ｔ）から、パワー算出部１１においてパワーが算出される（ステップＳＡ２００）。なお、パワーはオーディオ信号ｖ（ｔ）の２乗、すなわち｛ｖ（ｔ）２｝により算出される時系列信号である。
【００３５】
次に、ローパスフィルタ１２は、パワー算出部１１から順次パワーを受取り、このパワーの時刻の進行に応じた変動を示すパワー波形のスムージングを目的として所定の閾値を越える高周波成分を取り除く（ステップＳＡ３００）。
【００３６】
差分生成部１３は、ローパスフィルタ１２により処理されたパワー波形に対して、隣接するデータ間で差分を算出する（ステップＳＡ４００）ことにより得られる波形を出力する。これは、パワー波形に対して時間微分を施すことによって算出してもよい。
【００３７】
半波整流器１４は、差分生成部１３から入力された波形から正の部分を取り出し（ステップＳＡ５００）、この波形をオンセット検出信号ｗ（ｔ）として時間軸伸縮処理部２０に出力する（ステップＳＡ６００）。
【００３８】
このようにオンセット検出部１０は、図６（Ａ）に示すようなオーディオ信号ｖ（ｔ）が入力されると、図６（Ｂ）に示すようなオンセット検出信号ｗ（ｔ）に変換して出力する。ここで、オンセット検出信号ｗ（ｔ）は、オーディオ信号ｖ（ｔ）のＨＤＤ１６０からの読み出しに応じて、順次生成、出力される。すなわち、オーディオ信号ｖ（ｔ）の各部とオンセット検出信号ｗ（ｔ）の各部とは、対応付けられていることになる。
【００３９】
（Ｂ−３；時間軸伸縮処理）
次に、時間軸伸縮処理部２０の処理について説明する。時間軸伸縮処理部２０は、オンセット検出部１０から受取ったオンセット検出信号ｗ（ｔ）の時間軸を、伸縮率情報Ｐ（ｔ）に従って伸縮する時間軸伸縮処理を行う。この伸縮率情報Ｐ（ｔ）は、後述するように、リファレンスデータに基づいて生成され、楽曲の各部のうち、テンポがテンポ初期値よりも速い部分については大きい伸縮率を示し、遅い部分については小さい伸縮率を示すことになる。すなわち、テンポが速い部分に対応するオンセット検出信号ｗ（ｔ）の時間軸は伸長され、テンポが遅い部分に対応するオンセット検出信号ｗ（ｔ）の時間軸は圧縮される。このように、時間軸伸縮処理は、リファレンスデータが示すテンポに応じて時間軸を伸縮させる処理である。
【００４０】
以下、時間軸伸縮処理について図７を用いて説明する。図７は、オンセット検出部１０から出力されるオンセット検出信号ｗ（ｔ）の一部（図７（Ａ））と、伸縮率指定部５０から出力される伸縮率情報Ｐ（ｔ）の一部（図７（Ｂ））について、時間軸を揃えて示している。ここで、伸縮率情報Ｐ（ｔ）が示す伸縮率が「１．０」である期間に対応するオンセット検出信号ｗ（ｔ）の期間を期間Ａ、伸縮率情報Ｐ（ｔ）が示す伸縮率が「２．０」である期間に対応するオンセット検出信号ｗ（ｔ）の期間を期間Ｂとする。
【００４１】
一方、図７（Ｃ）は、オンセット検出信号ｗ（ｔ）が時間軸伸縮処理されることにより生成された時間伸縮信号ｘ（ｔ’）を示している。この時間伸縮信号ｘ（ｔ’）は、時間軸伸縮処理部２０が、伸縮率が「１．０」である期間Ａの部分については、オンセット検出信号ｗ（ｔ）に対して時間軸伸縮処理を行わないが、伸縮率が「２．０」である期間Ｂの部分については、オンセット検出信号ｗ（ｔ）を２倍に伸長する時間軸伸縮処理を行うことにより生成される。ここで、図７（Ｃ）の期間Ｃは、期間Ｂを伸長した部分であるから、期間Ｂの２倍の長さになっている。
【００４２】
ここで、時間伸縮信号ｘ（ｔ’）の時間軸は、オンセット検出信号ｗ（ｔ）および伸縮率情報Ｐ（ｔ）の時間軸ｔとは同一の時間軸上で進行するものではなく、テンポクロック生成部の処理において、計算上時間軸が伸縮されたものとして扱うための仮時間軸ｔ’である。
【００４３】
このように、オンセット検出信号ｗ（ｔ）においてパルス発生頻度が異なっていても、このような時間軸伸縮処理により時間伸縮信号ｘ（ｔ’）が生成されることによって、テンポクロック生成部３０における計算上は、パルス発生頻度を概ね一定にすることができる。ここで、オンセット検出信号ｗ（ｔ）のパルス発生頻度が変化する時点と、伸縮率情報Ｐ（ｔ）が示す伸縮率が変化する時点とが一致しないことには、このような処理は実現しない。一方、後述するように、伸縮率指定部５０は、期間Ａと期間Ｂの境界におけるオンセット検出信号ｗ（ｔ）の部分を、リファレンスデータにおいて、伸縮率が「１．０」から「２．０」に切り替わるソングポジションに対応付けているから、図７（Ｂ）に示すようなオンセット検出信号ｗ（ｔ）のパルス発生頻度の変化に対応した伸縮率情報Ｐ（ｔ）を出力することができる。
【００４４】
（Ｂ−４；テンポクロック生成部３０の処理）
（Ｂ−４−１；処理の概要）
次に、テンポクロック生成部３０が行う処理について説明する。図８は、テンポクロック生成部３０の処理の流れを示したフローチャートである。また、図９は、テンポクロック生成部３０による処理を示したブロック図である。
【００４５】
図９に示すように、テンポクロック生成部３０において、時間伸縮信号ｘ（ｔ’）は複数の処理系統１、２、・・・（ｎ−１）、ｎ、（ｎ＋１）、・・・に入力される（ステップＳＢ１００）。各処理系統においては、時間伸縮信号ｘ（ｔ’）についてそれぞれ異なる順次連続する所定長のフレームに対して同じ処理が施され、それぞれの処理系統においては、最終的に信号ｓ’ｎ（ｔ’）が生成される。各処理系統において生成された信号ｓ’ｎ（ｔ’）は、加算器において加算されオーバーラップ加算正弦波ｓ（ｔ’）が生成される。オーバーラップ加算正弦波ｓ（ｔ’）に対して、ピーク検出処理（２）および１／Ｎ分周処理が施されることにより、最終的に補正前パルス信号ｕ（ｔ’）が生成される。以上がテンポクロック生成部３０の処理の概要である。
【００４６】
以下では、各処理系統における処理内容について詳細に説明する。なお、処理系統ｎにおいて実行される処理について、パラメータｎを用いながら説明する。各処理系統１、２、・・・においては、以下の説明において割り当てられたｎの値を代入した内容の処理が行われる。
【００４７】
（Ｂ−４−２；窓掛け処理（１））
処理系統ｎに入力された時間伸縮信号ｘ（ｔ’）には、まず窓掛け処理（１）が施される（ステップＳＢ２００）。窓掛け処理（１）において、時間伸縮信号ｘ（ｔ’）は、以下の数式（１）に従って処理され信号ｘｎ（ｔ’）が生成される。数式（１）において、ｗ１（ｔ’）は、所定の窓長（この例においては、５秒）のハミング窓関数である。従って、各処理系統では、時間伸縮信号ｘ（ｔ’）から、所定の領域の信号（以下、フレーム）が“切り出される”。ここで、各処理系統において用いられるハミング窓関数の、隣接する処理系統間でのフレームのずれをＴ（本実施形態では、Ｔ＝１秒）とする。
【００４８】
【数１】
2009186762.tif 000003
【００４９】
数式（１）によれば、処理系統ｎにおいては、窓関数ｗ１（ｔ’）がｎ・Ｔ秒シフトした窓関数であるｗ１（ｔ’−ｎＴ）が演算に用いられる。その結果、各処理系統においては、時間伸縮信号ｘ（ｔ’）から、隣接するフレーム間でオーバーラップすると共に時間的に連続したフレームが切り出される。本実施形態においては、上記各フレームの時間長は５秒であり、隣接するフレームは１秒のずれを有することから、隣接するフレーム間で８０％（４秒）がオーバーラップするように時間伸縮信号ｘ（ｔ’）からフレームが切り出される。なお、この例においては、上記ハミング窓関数の時間長を５秒、フレームのずれＴを１秒としたが、それらにはユーザにより適宜定められた値を用いれば良い。
【００５０】
（Ｂ−４−３；フーリエ変換）
窓掛け処理（１）により生成された信号ｘｎ（ｔ’）に対して、以下の数式（２）によるフーリエ変換が施される（ステップＳＢ３００）。各フレームの信号、すなわち時間伸縮信号ｘ（ｔ’）の特定の区間がどのような周波数成分から成るかを示すパワースペクトルＸｎ（ω）が生成される。
【００５１】
【数２】
2009186762.tif 000004
【００５２】
（Ｂ−４−４；ピーク検出処理（１））
ピーク検出処理（１）においては、まず、上記フーリエ変換により生成されたパワースペクトルＸｎ（ω）から、パワースペクトルにおける各周波数成分の振幅の２乗を表す｜Ｘｎ（ω）｜２を算出する。図１０には、｜Ｘｎ（ω）｜２のグラフの一例を示す。一般的に、インパルス列の関数をフーリエ変換すると、このインパルス列の角周波数およびこの角周波数の整数倍の角周波数で周期的にピークを迎えるインパルス列のパワースペクトルが生成されることが知られている。時間伸縮信号ｘ（ｔ’）は、上述したように周期的にピークが現れることから、インパルス列の関数と類似の特徴を有する。従って図１０に示すように、時間伸縮信号ｘ（ｔ’）のパワースペクトルの振幅｜Ｘｎ（ω）｜２は、複数の周波数（この例においては、４、８、１２、…[Ｈｚ]）において極大を示す。
【００５３】
なお、上述したように時間伸縮信号ｘ（ｔ’）にはノイズや不等間隔で現れるビート成分などが含まれるため、上記パワースペクトルにおいて極大を示す角周波数ωの間における周波数においても、その振幅値は０とならず正の値を示している。ここで、オンセット検出信号ｗ（ｔ）をそのまま用いた場合には、同じ窓関数で切り取られたフレーム内において、パルスの発生頻度が大きく変動することがあるから、パワースペクトルはより複雑な波形となり適切なピーク検出が困難となるが、時間伸縮信号ｘ（ｔ’）は、時間軸伸縮処理が行われてパルスの発生頻度が概ね一定となっているから、図１０のようなスペクトルを得ることができる。
【００５４】
｜Ｘｎ（ω）｜２が算出されると、オーディオ信号ｖ（ｔ）のテンポが、ＲＡＭ１３０に書き込まれたタッピング音の周期から算出される。この例においては、タッピング音は０．５秒おきに発生するよう設定されているものとし、テンポは１２０と算出される。そして、算出されたタッピング音のテンポに対応する角周波数（上記の場合、４π[ｒａｄ／秒]）の所定数（ＲＡＭ１３０に書き込まれたリファレンスデータが示すＮ値）倍の角周波数付近（前後所定の範囲）から、振幅｜Ｘｎ（ω）｜２が極大を示す角周波数ωｎを特定する（ステップＳＢ４００）。例えば、図１０に示される｜Ｘｎ（ω）｜２においては、タッピング音の周波数（２Ｈｚ）の２（＝Ｎ）倍である４[Ｈｚ]（ω＝８π[ｒａｄ／秒]）の近傍の周波数で極大値となるような角周波数ωｎが決定される。
【００５５】
また、｜Ｘｎ（ω）｜２が極大を示す角周波数ωｎの周波数成分の初期位相θｎ＝ａｒｇ（Ｘｎ（ω））が算出される。この場合、θｎは上記｜Ｘｎ（ω）｜２が極大を示す角周波数ωｎにおけるパワースペクトル値（複素数）を極形式で表示した場合の偏角であり、角周波数ωｎにおけるパワースペクトル値の複素数から一義的に導かれる。以上のようにして決定された角周波数ωｎと初期位相θｎは、発振器に出力される。
【００５６】
（Ｂ−４−５；発振器）
発振器においては、上述のピーク検出処理（１）において求められた角周波数ωｎおよび初期位相θｎに基づいて、以下の数式（３）に示すように、角周波数がωｎであり初期位相がθｎである余弦波信号ｓｎ（ｔ’）が生成される（ステップＳＢ５００）。
【００５７】
【数３】
2009186762.tif 000005
【００５８】
（Ｂ−４−６；窓掛け処理（２））
窓掛け処理（２）においては、上記発振器において生成された余弦波信号ｓｎ（ｔ’）に対して、以下の数式（４）に従って窓掛け処理が施され、信号ｓ’ｎ（ｔ’）が生成される（ステップＳＢ６００）。本窓掛け処理（２）において用いられる窓関数ｗ２（ｔ’）は、所定の窓長を有するコサイン窓関数である。なお、この例においては、コサイン窓関数の時間長は５秒とするが、ユーザにより適宜定められた値を用いれば良い。また、各処理系統の上記コサイン窓関数の区間は、同じ処理系統において窓掛け処理（１）で用いられたハミング窓関数の区間と同じである。
【数４】
2009186762.tif 000006
【００５９】
次に、窓掛け処理（２）により生成された信号ｓ’ｎ（ｔ’）は、加算器において以下の数式（５）に従って加算され、オーバーラップ加算正弦波ｓ（ｔ’）が生成される（ステップＳＢ７００）。
【００６０】
【数５】
2009186762.tif 000007
本処理により、時間伸縮信号ｘ（ｔ’）の長さに対応する概ね正弦波形状のオーバーラップ加算正弦波ｓ（ｔ’）が生成される。図１１（Ｂ）は、図１１（Ａ）に示された時間伸縮信号ｘ（ｔ’）から生成されたオーバーラップ加算正弦波ｓ（ｔ’）である。図１１に示されているように、オーバーラップ加算正弦波ｓ（ｔ’）の極大値は、時間伸縮信号ｘ（ｔ’）のピークと、タイミングが概ね一致している。
【００６１】
なお、本加算処理の直前に、各処理系統において生成された信号ｓ’ｎ（ｔ’）にはコサイン窓関数による窓掛け処理（２）が施されていることから、それらを加算したオーバーラップ加算正弦波ｓ（ｔ）は、全時間領域でなめらかに連続した関数となる。
【００６２】
（Ｂ−４−７；ピーク検出処理（２））
ピーク検出処理（２）においては、加算器により生成されたオーバーラップ加算正弦波ｓ（ｔ’）のピーク時刻（すなわち隣り合うゼロクロスとゼロクロスの中点となる時刻）を特定し、特定した時刻において値がｋ（ｋ＞０）となり、特定した時刻以外の時刻においては値が０となるパルス信号ｚＮ（ｔ’）を生成する（ステップＳＢ８００）。
【００６３】
【数６】
2009186762.tif 000008
【００６４】
（Ｂ−４−８；１／Ｎ分周処理）
１／Ｎ分周器においては、上記ピーク検出処理（２）において生成されたパルス信号ｚＮ（ｔ’）において、パルスをＮ個に１個だけ残し他のパルスを「間引く」処理を行う（ステップＳＢ９００）。すなわち、１／Ｎ分周器においては、パルス信号ｚＮ（ｔ’）からＮ（＝２）個に１つのパルスのみを選択し、この選択したパルスからなる補正前パルス信号ｕ（ｔ’）を生成する。
【００６５】
その場合、パルス信号ｚＮ（ｔ’）からＮ個に１つの間隔でパルスを選択する組み合わせは、Ｎ通り存在する。図１２（Ａ）に示されたオーバーラップ加算正弦波ｓ（ｔ’）からは、図１２（Ｂ）のように２（＝Ｎ）通りの候補が生成される。それらは、オーディオ信号ｖ（ｔ）の拍に対応するテンポクロックパルス信号ｚ（ｔ）の候補と、拍に対応しない（拍の裏に対応する）候補である。なお、生成されたＮ通りの候補のいずれがオーディオ信号ｖ（ｔ）の拍と位相が対応しているか、オーバーラップ加算正弦波ｓ（ｔ’）のみからは判断することはできない。
【００６６】
そこで、１／Ｎ分周器は、オーディオ信号と対応付けられたタッピング音からＮ通りの候補のいずれがタッピング音と位相が一致するかを検出し、最も良い一致を示した候補を最終的な補正前パルス信号ｕ（ｔ’）と決定する。その際、ＲＡＭ１３０に書き込まれたタッピング音のタイミングおよびその周期と、上記補正前パルス信号ｕ（ｔ’）の候補に含まれるパルスのタイミングとを比較することにより上記判断を行う。ここでは、候補１が選択されたものとして説明する。
【００６７】
（Ｂ−５；逆時間軸伸縮処理）
次に、逆時間軸伸縮処理部４０の処理について説明する。逆時間軸伸縮処理部４０は、テンポクロック生成部３０から受取った補正前パルス信号ｕ（ｔ’）の時間軸を、伸縮率情報Ｐ（ｔ）に応じて伸縮する逆時間軸伸縮処理を行うことによって、計算上の仮時間軸ｔ’から時間軸ｔに戻して、テンポクロックパルス信号ｚ（ｔ）を生成する。すなわち、補正前パルス信号ｕ（ｔ’）の時間軸を伸縮率情報Ｐ（ｔ）が示す伸縮率の逆数で伸縮する。
【００６８】
図１３を参照して具体的に説明する。図１３（Ａ）は、テンポクロック生成部３０によって生成された補正前パルス信号ｕ（ｔ’）、図１３（Ｂ）は、伸縮率指定部５０によって生成された伸縮率情報Ｐ（ｔ）、図１３（Ｃ）は、逆時間軸伸縮処理により変換されたテンポクロックパルス信号ｚ（ｔ）を示す。
【００６９】
期間Ａにおいては、伸縮率の値は「１．０」であるから、補正前パルス信号ｕ（ｔ’）は、伸縮されずにテンポクロックパルス信号ｚ（ｔ）となる。そして、期間Ｂにおいては、伸縮率の値は「２．０」であるから、補正前パルス信号ｕ（ｔ’）は、「２．０」の逆数である０．５倍に伸縮する。すなわち、仮時間軸ｔ’は、倍の速さで進行する時間軸ｔとして変換される。したがって、補正前パルス信号ｕ（ｔ’）の期間Ｃに相当する部分が、テンポクロックパルス信号ｚ（ｔ）の期間Ｂに相当する部分となるように変換される。ここで、仮時間軸ｔ’は、上述したように計算上の時間軸であり、現実の時間軸ｔとは別の時間軸である。そのため、仮時間軸ｔ’上で計算された補正前パルス信号ｕ（ｔ’）がＲＡＭ１３０などにバッファされることにより、この例のように時間軸を圧縮する処理を行うことができる。このような処理が行われることによって、図１３（Ｃ）に示されるテンポクロックパルス信号ｚ（ｔ）が生成される。このように生成されたテンポクロックパルス信号ｚ（ｔ）は、オーディオ信号ｖ（ｔ）の拍のタイミングに同期したものとなる。
【００７０】
（Ｂ−６；伸縮率指定処理）
次に、伸縮率指定部５０の処理について説明する。伸縮率指定部５０は、逆時間軸伸縮処理部４０において生成されたテンポクロックパルス信号ｚ（ｔ）およびリファレンスデータを取得する。テンポクロックパルス信号ｚ（ｔ）は、上述のようにオーディオ信号ｖ（ｔ）の拍のタイミングに同期している。したがって、伸縮率指定部５０は、最初のパルスからのパルス数をカウントすることにより、カウントしたときにおけるオーディオ信号ｖ（ｔ）が示す楽音が、楽曲のどの位置に対応するか、すなわちソングポジションを認識することができる。例えば、パルスを４回カウントすると、４拍であるから１小節経過したことを認識することができる。これにより、オーディオ信号ｖ（ｔ）の各部は、リファレンスデータに係る楽曲の各部と対応付けられる。
【００７１】
そして、伸縮率指定部５０は、認識したソングポジションに対応するテンポを示す伸縮率をリファレンスデータから特定し、特定した伸縮率を示す伸縮率情報Ｐ（ｔ）を生成し、時間軸伸縮処理部２０および逆時間軸伸縮処理部４０に出力する。この伸縮率情報Ｐ（ｔ）は、上述したように、時間軸伸縮処理部２０および逆時間軸伸縮処理部４０における時間軸の伸縮の指標として用いられる。ここで、この例における図７に示すような伸縮率情報Ｐ（ｔ）を出力するときには、伸縮率指定部５０は、期間Ａと期間Ｂとの境界の時点においては、図２に示すリファレンスデータに係るソングポジションが「００９：０１：００」であることを認識していることになり、伸縮率情報Ｐ（ｔ）が示す伸縮率が、「１．０」から「２．０」に変更される。
【００７２】
上述のように、オーディオ信号ｖ（ｔ）からテンポクロックパルス信号ｚ（ｔ）が生成されるときには、テンポクロック生成に係る計算を、リファレンスデータによって指定されるテンポが大きく変化するタイミングにおいて時間軸を伸縮させて行い、その時間軸を元に戻す伸縮を行う。その結果、図１４に示されるように、最終的に生成された図１４（Ｃ）に示すテンポクロックパルス信号ｚ（ｔ）は、図１４（Ａ）に示すオーディオ信号ｖ（ｔ）、および図１４（Ｂ）に示すオンセット検出信号ｗ（ｔ）と時間軸が一致し、同期したものとなる。
【００７３】
（Ｃ；まとめ）
本発明に係るテンポクロック生成装置１によれば、４ビートや８ビートなどのリズム構造を有する楽曲のオーディオ信号であれば、曲中でオンセットの出現パターンによらずに拍を特定できる。例えば、シンコペーションなどのリズムにより、オンセット検出信号ｗ（ｔ）のパルス発生が周期的な状態から一時的に乱れたとしても、所定の処理区間全体におけるパルス発生頻度から計算して適切にテンポクロックパルス信号ｚ（ｔ）を生成することができる。そのため、拍のタイミングで対応する音が意図的に抜かれているなどによりパルスが欠落している場合においても、そのタイミングにおけるパルスが補間されたテンポクロックパルス信号ｚ（ｔ）が生成される。
【００７４】
このとき、オーディオ信号ｖ（ｔ）に係る楽音のテンポが、処理区間内で大きく変化することにより、処理区間内においてオンセット検出信号ｗ（ｔ）のパルス発生頻度が大きく変化したとしても、リファレンスデータに基づいて、パルス発生頻度が概ね一定になるように時間軸が伸縮され、テンポクロック生成部３０における処理が行われる。したがって、処理区間内でテンポが大きく変わったとしても、適切なテンポクロックパルス信号ｚ（ｔ）を生成することができる。
【００７５】
なお、以上の処理において、ユーザにより設定されることが要求されるパラメータは窓掛け処理（１）および（２）に係る窓関数の窓長および、処理系統間での窓関数のずれの量のみである。従って、従来のＰＬＬ回路を用いたビート検出の方法に比べ、ユーザはパラメータ設定に要する労力を省くことが出来る。
【００７６】
さて、上述のテンポクロック生成装置１により生成されたテンポクロックパルス信号ｚ（ｔ）は、様々な用途に用いることが可能である。例えば、オーディオ信号ｖ（ｔ）から抽出された拍に同期させてＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）シーケンサなどを動作させることができる。すなわち、例えばカラオケ装置などにおいて、カラオケの歌詞をオーディオ信号ｖ（ｔ）に同期させてワイプしたりすることが可能となる。また、予め用意した伴奏をオーディオ信号ｖ（ｔ）に同期させて付加するなどの処理も可能となる。
【００７７】
（Ｄ；変形例）
以上、本発明の実施形態について説明したが、本発明は以下のように種々の態様で実施することができる。なお、以下に説明する種々の実施形態を、適宜組み合わせて実施することも可能である。
【００７８】
（１）上述した実施形態においては、オンセット検出信号ｗ（ｔ）に対して時間軸伸縮処理を施す場合について説明した。しかし、時間軸伸縮処理の対象となる信号は、上述した実施形態に示した信号に限られるものではない。以下では、具体例を挙げて説明する。
【００７９】
図１５を参照して説明する。図１５（Ａ）に示すようなオーディオ信号ｖ（ｔ）に、図１５（Ｂ）に示すような伸縮率情報Ｐ（ｔ）に基づき時間軸伸縮処理と同じ処理を施して、図１５（Ｃ）に示すような時間伸縮オーディオ信号ｖａ（ｔ’）を生成する。その後、オンセット検出部１０において図４に示す処理を施し、時間伸縮オーディオ信号ｖａ（ｔ’）から、図１５（Ｄ）に示すような時間伸縮オンセット検出信号ｗａ（ｔ’）を生成する。そのようにして生成された時間伸縮オンセット検出信号ｗａ（ｔ’）は、上述した実施形態において生成された時間軸伸縮信号ｘ（ｔ’）に相当する信号となり、以降同様の処理を施すことにより、上述した実施形態と同様の処理が実行できる。
【００８０】
（２）上述した実施形態においては、ＨＤＤ１６０に予め格納されたオーディオ信号について処理を行う場合について説明した。ＨＤＤ１６０に格納されたオーディオ信号を変更・追加・削除するため、以下のような手段を設けても良い。
（ａ）メディアドライブ
メディアドライブは、例えば音楽コンテンツが格納されているＣＤ−ＲＯＭやＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の各種記録媒体（メディア）からデータを読み取る。読み取られたデータは、制御部１１０によりＨＤＤ１６０へ格納され、上述した実施形態におけるオーディオ信号として用いても良い。
（ｂ）マイクロホン
マイクロホンを音声処理部１７０に接続する。音声処理部１７０にはＡ／Ｄ（Ａｎａｌｏｇ／Ｄｉｇｉｔａｌ）変換機能を持たせる。マイクロホンは収音した音を表すアナログ信号を生成し、音声処理部１７０はこのアナログ信号をＡ／Ｄ変換しデジタルデータを生成する。制御部１１０は、生成されたデジタルデータをＨＤＤ１６０に書き込み、上述した実施形態におけるオーディオ信号に代えて用いても良い。
（ｃ）通信手段
通信ネットワークインタフェースを設け、各種音楽コンテンツ（オーディオ信号）を格納するサーバにインターネット網などの通信網を通じてアクセスし、音楽コンテンツの取得要求を送り、この取得要求に応じてサーバから送られてくる音楽コンテンツをＨＤＤ１６０に格納するなどしても良い。
また、上記の各種手段を用いて受取ったオーディオ信号を、ＨＤＤ１６０に格納する処理と並行して、又はＨＤＤ１６０に格納する処理に代えて、オーディオ信号をリアルタイムに処理するようにしても良い。
【００８１】
（３）上述した実施形態において、オンセット検出信号ｗ（ｔ）において、所定のレベルを下回るインパルスをノイズと見なし、ノイズ成分をカットしてから時間軸伸縮処理部２０に出力するなどしても良い。
【００８２】
（４）上述した実施形態においては、あらかじめオーディオ信号ｖ（ｔ）に付加されたタッピング音（インパルス音を表す音データ）を用いて楽曲の拍のタイミングおよびテンポを特定する場合について説明したが、オーディオ信号の再生時にリアルタイムに生成される情報をタッピング音に代えて用いても良い。そのような場合、上記変形例（２）に記載したマイクロホンに対して、ハンドクラップ（拍手）や打楽器などにより拍を刻むことにより音信号を生成させ、生成された音信号を用いても良い。また、所定の操作手段、例えばキーボード（操作部１４０）のキーのタッピングなど、の操作内容に応じて生成された信号を拍情報として用いても良い。この場合、利用者は、タッピング音に続いてオーディオ信号ｖ（ｔ）がＨＤＤ１６０から読み出されるように、操作部１４０などを操作する。
【００８３】
また、拍のタイミングとテンポとを指定する数値情報を用いても良い。例えば最初の拍の時刻と拍の間隔を示す数値データを、操作部１４０を介して入力することができるようにしても良い。また、複数の拍のタイミングを示す数値データを入力することができるようにしても良く、その場合は拍同士の間隔から拍のテンポを算出するようにすれば良い。すなわち、オーディオ信号に含まれる楽音の拍のタイミングおよびそのテンポが特定可能な情報が得られるようにすれば良い。
【００８４】
（５）上述した実施形態においては、オーディオ信号ｖ（ｔ）から、図１４に示すようなテンポクロックパルス信号ｚ（ｔ）を生成する場合について説明した。しかし、テンポクロックパルス信号ｚ（ｔ）に代えて、図１６に示すような、オーディオ信号におけるテンポクロックパルス（拍）の時刻（例えば、オーディオ信号が開始されてから経過した時間）を示すデータ列である拍タイミング情報として生成しても良い。すなわち、拍のタイミングを示す拍タイミング情報は、テンポクロックパルス信号ｚ（ｔ）のようにパルスで表されていても、本変形例のように数値で表されていてもよく、どのような態様で拍のタイミングを表したものであってもよい。
【００８５】
この場合は、テンポクロック生成部３０は、補正前パルス信号ｕ（ｔ’）に対応するオーバーラップ加算正弦波ｓ（ｔ’）の特定点であるピークのタイミングの時刻を示すデータ列を仮時間軸ｔ’上で補正前情報として生成する。そして、逆時間軸伸縮処理部４０における逆時間軸伸縮処理においては、この補正前情報が示すデータ列の時間軸を伸縮して時間軸ｔに変換するようにして、データ列を書き換え、拍タイミング情報とすればよい。そして、伸縮率指定部５０は、拍タイミング情報が示すデータ列の時刻を、楽曲のテンポおよび拍子を用いてソングポジションに変換し、伸縮率情報Ｐ（ｔ）を出力するようにすればよい。
【００８６】
（６）上述した実施形態において、ＨＤＤ１６０に格納されるオーディオ信号は、例えばＷＡＶＥ形式やＭＰ３形式の音データである場合について説明した。しかし、オーディオ信号ｖ（ｔ）は、他のどのような形式のデータであっても良い。また、上記オーディオ信号ｖ（ｔ）は時間波形を表すデータである場合について説明したが、ＭＩＤＩ形式など、発音すべきノートを時間経過に沿って記した音データなど、他の形式のデータであっても良い。そのように、時間波形を記したデータ以外のデータについて本発明を実施する場合には、このようなデータを一旦時間波形に変換する変換手段を設け、変換手段により時間波形データに変換したデータを上記オーディオ信号ｖ（ｔ）に代えて用いれば良い。
【００８７】
（７）上述した実施形態においては、テンポクロック生成装置１に特徴的な機能をソフトウェアモジュールで実現する場合について説明したが、上記各機能を担うハードウェアモジュールを組み合わせてテンポクロック生成装置１を構成するようにしても良い。
【００８８】
（８）上述した実施形態においては、本発明に係るテンポクロック生成装置１に特徴的な機能を実現するための制御プログラムを、ＲＯＭ１２０に予め書き込んでおく場合について説明したが、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ、ＦＤ）など）、光記録媒体（光ディスク（ＣＤ、ＤＶＤ）など）、光磁気記録媒体、半導体メモリなどのコンピュータ読取り可能な記録媒体に記録した状態で提供し得る。また、インターネットのようなネットワーク経由でダウンロードさせることも可能である。
【００８９】
（９）上述した実施形態においては、テンポクロック生成装置１は、ＨＤＤ１６０に格納されたオーディオ信号を処理する場合について説明した。しかし、オーディオ信号ｖ（ｔ）を供給する手段は、ＨＤＤ１６０などの記憶手段に限られない。例えばテンポクロック生成装置１が各種の記録媒体に記録されたデータを読み出し出力する再生装置を更に備え、再生装置により記録媒体から読み出したデータをリアルタイムに処理しても良い。
【００９０】
（１０）上述した実施形態においては、オーディオ信号ｖ（ｔ）の読み出しおよび再生の進行に伴ってテンポクロックパルス信号ｚ（ｔ）を生成する場合について説明した。しかし、このような処理は必ずしもオーディオ信号の進行に伴って行われなくても良い。例えば、オーディオ信号を一旦初めから終わりまで読み出し、読み出しが終了した段階で上述の処理を行い、テンポクロックパルス信号ｚ（ｔ）を生成するようにしても良い。
【００９１】
（１１）上述した実施形態においては、ステップＳＢ２００の窓掛け処理（１）において、窓関数としてハミング窓関数を用いる場合について説明した。しかし、用いられる窓関数はハミング窓関数に限られるものではなく、ハニング窓関数など他の窓関数でも良い。要は、区間の中央が１付近の値で、その両端で値が０となる関数であれば良い。
【００９２】
（１２）上述した実施形態においては、ステップＳＢ６００の窓掛け処理（２）において、窓関数としてコサイン窓関数を用いる場合について説明した。しかし、用いられる窓関数はコサイン窓関数に限られるものではなく、ハミング窓関数など他の窓関数でも良い。要は、区間の中央が１付近の値で、その両端で値が０となる関数であれば良く、オーバーラップ加算正弦波ｓ（ｔ’）を、全時間領域でなめらかに連続した関数にできればよい。
【００９３】
（１３）上述した実施形態においては、４分の４拍子で８ビートの楽曲を演奏したオーディオ信号ｖ（ｔ）を例示して説明した。しかし、オーディオ信号ｖ（ｔ）が４分の３拍子である場合など、他の拍子にも本発明は適用可能である。その場合、オーディオ信号ｖ（ｔ）に含まれる楽曲のビート数を１小節あたりの拍の数で除した値をＮ値とすれば良い。例えば、４分の３拍子、６ビートの楽曲であれば、Ｎ値は、ビート数を拍子数で除した値である２とすれば良い。
【００９４】
（１４）上述した実施形態においては、Ｎ値は、リファレンスデータに書き込まれている場合について説明したが、ユーザによりＮ値が操作部１４０を介して入力されるようにしても良い。また、ユーザにより操作部１４０を介して、ビート数が入力されるようにし、制御部１１０が、入力されたビート数を１小節あたりの拍の数で除した値をＮ値として算出するようにしても良い。また、１小節あたりの拍の数を表すパラメータをユーザが設定可能としても良い。すなわち、１拍あたりに含まれるビートの数を表すＮ値が最終的に得られるようにすれば良い。以上のように、ユーザにより各種パラメータが入力される場合には、パラメータを入力するための案内画面を表示部１５０に表示し、表示内容に従って操作部１４０を介して入力された内容に基づいてパラメータを設定、算出するようにすれば良い。
【００９５】
（１５）上述した実施形態においては、各処理系統で、窓掛け処理（１）における窓関数のフレーム長を５秒とし、隣接する処理系統におけるフレームのずれをＴ＝１秒とする場合について説明したが、それらの長さは上記の値に限定されるものではなく、適宜定められた値を用いれば良い。すなわち、音声など時間変換する信号の周波数と位相の変化を解析する処理区間となるフレームが指定され、順次フレーム範囲をずらして解析することができれば良い。
【００９６】
（１６）上述した実施形態においては、オンセット検出信号ｗ（ｔ）に対して時間軸伸縮処理を施す場合について説明した。しかし、オンセット検出信号ｗ（ｔ）を以下のように変形してから時間軸伸縮処理を施しても良い。例えば、オンセット検出信号ｗ（ｔ）のエンベロープ（包絡線）を生成し、このエンベロープにおいて所定の閾値を越える極大値を示す時刻を特定し、特定した時刻をビートの候補とする。そして、特定した時刻において所定の値Ｊ（Ｊ＞０）となり、その時刻以外の時刻においては値が０となるようなパルス列の信号を生成する。そして、生成されたパルス列の信号を、オンセット検出信号ｗ（ｔ）に変えて用いるとしても良い。そのようにすれば、オンセット検出信号ｗ（ｔ）に含まれるビートとは直接関係がない信号成分について信号処理する必要がないため、以降の処理に係る負荷が減少するとの効果がある。
【００９７】
また、オンセット検出信号ｗ（ｔ）を、このように特定した時刻を示す時刻情報から構成されるようにしてもよい。このようにすると、時間軸伸縮処理部２０における時間軸伸縮処理は、波形の伸縮ではなく時刻情報を数値的に伸縮するだけでよく、また、テンポクロック生成部３０における計算も容易に行うことができ、ＣＰＵの処理負担を低減することができる。
【００９８】
（１７）上述した実施形態においては、発信器は、ピーク検出処理（１）において求められた角周波数ωｎおよび初期位相θｎに基づいて、角周波数がωｎであり、初期位相がθｎである余弦波信号ｓｎｔ（ｔ’）を生成する場合について説明した。しかし、発信器が生成する信号は余弦波に限られるものではない。例えば、角周波数がωｎであり、初期位相がθｎである正弦波を生成する場合、ピーク検出処理（２）において、ゼロクロスをすると共にその微分値が正である時刻を特定し、特定した時刻において値がｋ（ｋ＞０）となり、特定した時刻以外の時刻において値が０となるパルス信号ｚｎ（ｔ’）を生成すれば良い。
【００９９】
また、発信器が生成する信号は、正弦波や余弦波に限られるものではない。例えば、方形波、三角波、鋸歯状波などのパルス波でも良い。その場合には、周期が２π／ωｎであり、位相がθｎ進んだパルス波を生成すると共に、ピーク検出処理（２）において、各パルス波に応じた点（特定点）を特定し、特定点に対応する時刻において値がｋ（ｋ＞０）となり、特定点に対応する時刻以外の時刻において値が０となるパルス信号ｚｎ（ｔ）を生成すれば良い。上記特定点として、例えば方形波の場合には、振幅が最大値となった区間の中間の点など、三角波の場合には、振幅が最大値となった点など、鋸歯状波の場合には、信号の値が最大値の所定の値となる点などを指定すれば良い。
【０１００】
（１８）上述した実施形態においては、リファレンスデータが予め作成されＨＤＤ１６０に格納されている場合について説明した。しかし、リファレンスデータが予め作成されていない場合にも以下の文献に記載の技術を応用することで、適切に時間軸伸縮処理および逆時間軸伸縮処理を施すことができる。
文献：阿部敏彦、誉田雅彰(ＮＴＴコミュニケーション科学基礎研究所),"瞬時周波数アトラクタに基づく正弦波分析合成法",信学技報,ＳＰ２００２−１６９,ｐｐ．１−４,Ｊａｎ．２００３．
【０１０１】
まず、上記文献に記載の技術についてその概略を説明する。この文献には、音声信号における周波数（ピッチ）の局所的な変動を打ち消すために、音声信号の時間軸を伸縮する処理について記載されている。この処理においては、音声信号のテンポを一定であると見なした上で瞬時周波数分析を行い、各種パラメータ（倍音成分の周波数ρ（ｔ）およびその導関数）を抽出する。そして、抽出された各種パラメータを用いて、音声信号の周波数変化を打ち消すような時間軸の伸縮を行うための関数（上記文献に記載の関数ｕ（ｔ））を生成する。そして、関数ｕ（ｔ）に基づいて時間軸が伸縮されることにより、音声信号は元々含まれていたピッチの変動がない信号へと変換される。
【０１０２】
さて、上記の技術を以下のように本発明に応用する。上述した実施形態において、オンセット検出信号ｗ（ｔ）は、時刻の進行に伴いそのピークが訪れる周期（すなわち周波数）が変動している。この周波数の変動は、上記文献におけるピッチの変動に対応するものである。そこで、オンセット検出信号ｗ（ｔ）に基づいて上記文献に記載の関数ｕ（ｔ）を生成し、関数ｕ（ｔ）をリファレンスデータおよび伸縮率情報Ｐ（ｔ）に代えて用いてオンセット検出信号ｗ（ｔ）の時間軸を伸縮するようにしても良い。その結果、オンセット検出信号ｗ（ｔ）は、オンセットの周期（周波数）が概ね一定となるように変換される。この変換により、上述した実施形態における時間軸伸縮処理と同様の効果が奏される。
【図面の簡単な説明】
【０１０３】
【図１】テンポクロック生成装置１の全体構成を示すブロック図である。
【図２】リファレンスデータの一例を示した図である。
【図３】制御部１１０による処理の流れを示すブロック図である。
【図４】オンセット検出部１０の処理の流れを示したフローチャートである。
【図５】オンセット検出部１０による処理を示したブロック図である。
【図６】オーディオ信号の波形とオンセット検出信号の波形を対応付けて示した図である。
【図７】時間伸縮信号ｘ（ｔ’）の生成における各種信号の波形を示した図である。
【図８】テンポクロック生成部３０の処理の流れを示したフローチャートである。
【図９】テンポクロック生成部３０による処理を示したブロック図である。
【図１０】パワースペクトルの一例を示した図である。
【図１１】オーバーラップ加算正弦波の生成方法を示した図である。
【図１２】補正前パルス信号の生成方法を示した図である。
【図１３】テンポクロックパルス信号ｚ（ｔ）の生成方法を示した図である。
【図１４】制御部１１０によるオーディオ信号の処理をまとめた図である。
【図１５】変形例（１）に係るオーディオ信号の処理内容を示した図である。
【図１６】テンポクロックパルスデータの一例を示す図である。
【符号の説明】
【０１０４】
１…テンポクロック生成装置、１０…オンセット検出部、１１…パワー算出部、１２…ローパスフィルタ、１３…差分生成部、１４…半波整流器、２０…時間軸伸縮処理部、３０…テンポクロック生成部、４０…逆時間軸伸縮処理部、５０…伸縮率指示部、１１０…制御部、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…操作部、１５０…表示部、１６０…ＨＤＤ、１７０…音声処理部、１８０…スピーカ
【図１】
2009186762.tif 000009
【図２】
2009186762.tif 000010
【図３】
2009186762.tif 000011
【図４】
2009186762.tif 000012
【図５】
2009186762.tif 000013
【図６】
2009186762.tif 000014
【図７】
2009186762.tif 000015
【図８】
2009186762.tif 000016
【図９】
2009186762.tif 000017
【図１０】
2009186762.tif 000018
【図１１】
2009186762.tif 000019
【図１２】
2009186762.tif 000020
【図１３】
2009186762.tif 000021
【図１４】
2009186762.tif 000022
【図１５】
2009186762.tif 000023
【図１６】
2009186762.tif 000024