(57)【要約】      （修正有）【課題】楽曲における拍点及びテンポを検出し、前記検出した拍点及びテンポに同期するように制御対象を動作させる音響信号分析装置であって、テンポが変化する時間帯に制御対象の動作が不自然になることを防止できる音響信号分析装置を提供する。【解決手段】音響信号分析装置は、楽曲を表わす音響信号を入力する音響信号入力手段と、前記入力した音響信号を用いて、前記楽曲における各区間のテンポをそれぞれ検出するテンポ検出手段と、前記テンポの安定性を判定する判定手段と、所定の制御対象を、前記判定手段による判定結果に応じて制御する制御手段と、を備える。【選択図】図２
2014178395.tif 000002
【特許請求の範囲】
【請求項１】
楽曲を表わす音響信号を入力する音響信号入力手段と、
前記入力した音響信号を用いて、前記楽曲における各区間のテンポをそれぞれ検出するテンポ検出手段と、
前記テンポの安定性を判定する判定手段と、
所定の制御対象を、前記判定手段による判定結果に応じて制御する制御手段と、
を備えたことを特徴とする音響信号分析装置。
【請求項２】
請求項１に記載の音響信号分析装置において、
前記テンポ検出手段は、
拍の存在に関する特徴を表わす第１特徴量及びテンポに関する特徴を表わす第２特徴量を前記楽曲における区間ごとに計算する特徴量計算手段と、
前記各区間における拍の存在に関する物理量及びテンポに関する物理量の組み合わせにより分類された状態の系列として記述された複数の確率モデルのうち、前記第１特徴量及び前記第２特徴量が前記各区間において同時に観測される確率を表わす観測尤度の系列が所定の基準を満たす確率モデルを選択することにより、前記楽曲における拍点及びテンポの推移を同時に推定する推定手段と、
を備えたことを特徴とする音響信号分析装置。
【請求項３】
請求項１又は２に記載の音響信号分析装置において、
前記判定手段は、複数の区間におけるテンポの変化量が所定の範囲内にあるとき、テンポが安定していると判定し、前記複数の区間におけるテンポの変化量が前記所定の範囲外にあるとき、テンポが不安定であると判定することを特徴とする音響信号分析装置。
【請求項４】
請求項２に記載の音響信号分析装置において、
前記判定手段は、前記楽曲の先頭から前記各区間までの前記第１特徴量及び前記第２特徴量をそれぞれ観測したときに前記各区間における各状態の尤度が前記所定の基準を満たす前記状態の系列を選択した場合の前記各区間の各状態の尤度をそれぞれ計算し、前記計算した各区間における各状態の尤度の分布に基づいて、前記各区間におけるテンポの安定性を判定することを特徴とする音響信号分析装置。
【請求項５】
請求項１乃至４のうちのいずれか１つに記載の音響信号分析装置において、
前記制御手段は、テンポが安定している区間において前記制御対象を所定の第１の態様で動作させ、テンポが不安定である区間において前記制御対象を所定の第２の態様で動作させることを特徴とする音響信号分析装置。
【請求項６】
コンピュータに、
楽曲を表わす音響信号を入力する音響信号入力ステップと、
前記入力した音響信号を用いて、前記楽曲における各区間のテンポをそれぞれ検出するテンポ検出ステップと、
前記テンポの安定性を判定する判定ステップと、
所定の制御対象を、前記判定手段による判定結果に応じて制御する制御ステップと、
を実行させることを特徴とする音響信号分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲を表わす音響信号を分析して、楽曲における拍点（拍のタイミング）及びテンポを検出し、前記検出した拍点及びテンポに同期するように所定の制御対象を動作させる音響信号分析装置に関する。
【背景技術】
【０００２】
従来から、例えば、下記非特許文献１に示されているように、楽曲のテンポを検出し、前記検出した拍点及びテンポに同期するように所定の制御対象を動作させる音響信号分析装置は知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Ｊｏｕｒｎａｌ  ｏｆ  Ｎｅｗ  Ｍｕｓｉｃ  Ｒｅｓｅｒｃｈ」、２００１年、Ｖｏｌ３０、Ｎｏ．２、ｐ．１５９−１７１
【発明の概要】
【０００４】
上記非特許文献１の音響信号分析装置は、テンポがほぼ一定の楽曲を対象としており、テンポが途中で大きく変化する楽曲の場合には、テンポが変化する時間帯における拍点及びテンポを正しく検出することが困難である。そのため、テンポが変化する時間帯において、制御対象の動作が不自然になる。
【０００５】
本発明は上記問題に対処するためになされたもので、その目的は、楽曲における拍点及びテンポを検出し、前記検出した拍点及びテンポに同期するように制御対象を動作させる音響信号分析装置であって、テンポが変化する時間帯に制御対象の動作が不自然になることを防止できる音響信号分析装置を提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【０００６】
上記目的を達成するために、本発明の特徴は、楽曲を表わす音響信号を入力する音響信号入力手段（Ｓ１３、Ｓ１２０）と、前記入力した音響信号を用いて、前記楽曲における各区間のテンポをそれぞれ検出するテンポ検出手段（Ｓ１５、Ｓ１８０）と、前記テンポの安定性を判定する判定手段（Ｓ１７、Ｓ２３４）と、所定の制御対象（ＥＸＴ、１６）を、前記判定手段による判定結果に応じて制御する制御手段（Ｓ１８、Ｓ１９、Ｓ２３５、Ｓ２３６）と、を備えたことにある。
【０００７】
この場合、判定手段（Ｓ１７）は、複数の区間におけるテンポの変化量が所定の範囲内にあるとき、テンポが安定していると判定し、前記複数の区間におけるテンポの変化量が前記所定の範囲外にあるとき、テンポが不安定であると判定するとよい。
【０００８】
また、この場合、制御手段は、テンポが安定している区間において制御対象を所定の第１の態様（Ｓ１８、Ｓ２３５）で動作させ、テンポが不安定である区間において前記制御対象を所定の第２の態様（Ｓ１９、Ｓ２３６）で動作させるとよい。
【０００９】
上記のように構成した音響信号分析装置によれば、楽曲のテンポの安定性が判定され、その結果に応じて制御対象が制御される。したがって、テンポが不安定である区間で楽曲のリズムと制御対象の動作が合致しないという事態を回避できる。これにより、制御対象の動作が不自然に感じられることを防止できる。
【００１０】
また、本発明の他の特徴は、テンポ検出手段は、拍の存在に関する特徴を表わす第１特徴量（ＸＯ）及びテンポに関する特徴を表わす第２特徴量（ＸＢ）を前記楽曲における区間ごとに計算する特徴量計算手段（Ｓ１６５、Ｓ１６７）と、前記各区間における拍の存在に関する物理量（ｎ）及びテンポに関する物理量（ｂ）の組み合わせにより分類された状態（ｑｂ，ｎ）の系列として記述された複数の確率モデルのうち、第１特徴量及び第２特徴量が前記各区間において同時に観測される確率を表わす観測尤度（Ｌ）の系列が所定の基準を満たす確率モデルを選択することにより、前記楽曲における拍点及びテンポの推移を同時に推定する推定手段（Ｓ１７０、Ｓ１８０）と、を備えたことにある。
【００１１】
これによれば、拍の存在に関する特徴を表わす第１特徴量及びテンポに関する特徴を表わす第２特徴量を用いて計算された観測尤度の系列が所定の基準を満たす確率モデル（最も尤もらしい確率モデル、事後分布が最大となる確率モデルなど）が選択され、楽曲における拍点及びテンポの推移が同時に推定される。したがって、楽曲における拍点を計算し、その計算結果を用いてテンポを計算する場合に比べて、テンポの推定精度を向上させることができる。
【００１２】
また、本発明の他の特徴は、判定手段は、楽曲の先頭から各区間までの第１特徴量及び第２特徴量をそれぞれ観測したときに前記各区間における各状態の尤度が前記所定の基準を満たす前記状態の系列を選択した場合の前記各区間の各状態の尤度（Ｃ）をそれぞれ計算し、前記計算した各区間における各状態の尤度の分布に基づいて、前記各区間におけるテンポの安定性を判定することにある。
【００１３】
各区間における各状態の尤度の分布の分散が小さければ、そのテンポの値の信頼性が高く、テンポが安定していると考えられる。一方、各区間における各状態の尤度の分布の分散が大きければ、そのテンポの値の信頼性が低く、テンポが不安定であると考えられる。本発明によれば、各状態の尤度の分布に基づいて制御対象が制御されるので、テンポが不安定であるとき、楽曲のリズムと制御対象の動作が合致しないという事態を回避できる。これにより、制御対象の動作が不自然に感じられることを防止できる。
【００１４】
さらに、本発明の実施にあたっては、音響信号分析装置の発明に限定されることなく、同装置に適用されるコンピュータプログラムの発明としても実施し得るものである。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１及び第２実施形態に係る音響信号分析装置の全体構成を示すブロック図である。
【図２】本発明の第１実施形態に係る音響信号分析プログラムのフローチャートである。
【図３】テンポ安定性判定プログラムを表すフローチャートである。
【図４】確率モデルの概念図である。
【図５】本発明の第２実施形態に係る音響信号分析プログラムを表わすフローチャートである。
【図６】特徴量計算プログラムを表わすフローチャートである。
【図７】分析対象の音響信号の波形を表わすグラフである。
【図８】１つのフレームを短時間フーリエ変換した音響スペクトル図である。
【図９】バンドパスフィルタの特性図である。
【図１０】各周波数帯域の振幅の時間変化を示すグラフである。
【図１１】オンセット特徴量の時間変化を示すグラフである。
【図１２】コムフィルタのブロック図である。
【図１３】ＢＰＭ特徴量の計算結果を示すグラフである。
【図１４】対数観測尤度計算プログラムを表わすフローチャートである。
【図１５】オンセット特徴量の観測尤度の計算結果を示す表である。
【図１６】テンプレートの構成を示す表である。
【図１７】ＢＰＭ特徴量の観測尤度の計算結果を示す表である。
【図１８】拍・テンポ同時推定プログラムを表わすフローチャート
【図１９】対数観測尤度の計算結果を示す表である。
【図２０】先頭のフレームから各フレームまでオンセット特徴量及びＢＰＭ特徴量を観測したときに前記各フレームの各状態の尤度が最大となるような状態の系列を選択した場合の前記各状態の尤度の計算結果を示す表である。
【図２１】遷移元の状態の計算結果を示す表である。
【図２２】ＢＰＭらしさ、ＢＰＭらしさの平均及びＢＰＭらしさの分散の計算結果の一例を示す表である。
【図２３】拍・テンポ情報リストの概略を示す概略図である。
【図２４】テンポの推移を示すグラフである。
【図２５】拍点を示すグラフである。
【図２６】オンセット特徴量、拍点及びＢＰＭらしさの分散の推移を示すグラフである。
【図２７】再生・制御プログラムを表すフローチャートである。
【発明を実施するための形態】
【００１６】
（第１実施形態）
本発明の第１実施形態に係る音響信号分析装置１０について説明する。音響信号分析装置１０は、以下説明するように、楽曲を表わす音響信号を入力して、その楽曲のテンポを検出するとともに、前記検出したテンポに同期するように所定の制御対象（外部機器ＥＸＴ、内蔵された演奏装置など）を動作させる。音響信号分析装置１０は、図１に示すように、入力操作子１１、コンピュータ部１２、表示器１３、記憶装置１４、外部インターフェース回路１５及びサウンドシステム１６を備えており、これらがバスＢＳを介して接続されている。
【００１７】
入力操作子１１は、オン・オフ操作に対応したスイッチ（例えば数値を入力するためのテンキー）、回転操作に対応したボリューム又はロータリーエンコーダ、スライド操作に対応したボリューム又はリニアエンコーダ、マウス、タッチパネルなどから構成される。これらの操作子は、演奏者の手によって操作されて、分析対象の楽曲の選択、音響信号の分析開始又は停止、楽曲の再生又は停止（後述するサウンドシステム１６からの出力又は停止）、音響信号の分析に関する各種パラメータの設定などに用いられる。入力操作子１１が操作されると、その操作内容を表す操作情報が、バスＢＳを介して、後述するコンピュータ部１２に供給される。
【００１８】
コンピュータ部１２は、バスＢＳにそれぞれ接続されたＣＰＵ１２ａ、ＲＯＭ１２ｂ及びＲＡＭ１２ｃからなる。ＣＰＵ１２ａは、詳しくは後述する音響信号分析プログラム及びそのサブルーチンをＲＯＭ１２ｂから読み出して実行する。ＲＯＭ１２ｂには、音響信号分析プログラム及びそのサブルーチンに加えて、初期設定パラメータ、表示器１３に表示される画像を表わす表示データを生成するための図形データ及び文字データなどの各種データが記憶されている。ＲＡＭ１２ｃには、音響信号分析プログラムの実行時に必要なデータが一時的に記憶される。
【００１９】
表示器１３は、液晶ディスプレイ（ＬＣＤ）によって構成される。コンピュータ部１２は、図形データ、文字データなどを用いて表示すべき内容を表わす表示データを生成して表示器１３に供給する。表示器１３は、コンピュータ部１２から供給された表示データに基づいて画像を表示する。例えば分析対象の楽曲の選択時には、楽曲のタイトルリストが表示される。
【００２０】
また、記憶装置１４は、ＨＤＤ、ＦＤＤ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットから構成されている。記憶装置１４には、複数の楽曲をそれぞれ表わす複数の楽曲データが記憶されている。楽曲データは、楽曲を所定のサンプリング周期（例えば４４．１ｋＨｚ）でサンプリングして得られた複数のサンプル値からなり、各サンプル値が記憶装置１４における連続するアドレスに順に記録されている。楽曲のタイトルを表わすタイトル情報、楽曲データの容量を表わすデータサイズ情報なども楽曲データに含まれている。楽曲データは予め記憶装置１４に記憶されていてもよいし、後述する外部インターフェース回路１５を介して外部から取り込んでもよい。記憶装置１４に記憶されている楽曲データは、ＣＰＵ１２ａによって読み込まれ、楽曲における拍点及びテンポの推移が分析される。
【００２１】
外部インターフェース回路１５は、音響信号分析装置１０を電子音楽装置、パーソナルコンピュータ、照明装置などの外部機器ＥＸＴに接続可能とする接続端子を備えている。音響信号分析装置１０は、外部インターフェース回路１５を介して、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどの通信ネットワークにも接続可能である。
【００２２】
サウンドシステム１６は、楽曲データをアナログ音信号に変換するＤ／Ａ変換器、変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力する左右一対のスピーカを備えている。サウンドシステム１６は、楽曲の楽音にエフェクト（音響的効果）を付与するエフェクト装置も備えている。楽音に付与される効果の種類、その効果の強度などは、ＣＰＵ１２ａによって制御される。
【００２３】
つぎに、上記のように構成した音響信号分析装置１０の第１実施形態における動作について説明する。ユーザが音響信号分析装置１０の図示しない電源スイッチをオンにすると、ＣＰＵ１２ａは、図２に示す音響信号分析プログラムをＲＯＭ１２ｂから読み出して実行する。
【００２４】
ＣＰＵ１２ａは、ステップＳ１０にて音響信号分析処理を開始し、ステップＳ１１にて、記憶装置１４に記憶されている複数の楽曲データにそれぞれ含まれるタイトル情報を読み込んで、楽曲のタイトルをリスト形式で表示器１３に表示する。ユーザは、入力操作子１１を用いて、表示器１３に表示された楽曲の中から分析対象の楽曲データを選択する。なお、ステップＳ１１にて分析対象の楽曲データを選択する際、選択しようとする楽曲データが表す楽曲の一部又は全部を再生して楽曲データの内容を確認できるように構成してもよい。
【００２５】
つぎに、ＣＰＵ１２ａは、ステップＳ１２にて、音響信号分析のための初期設定を実行する。具体的には、分析対象の楽曲データの一部を読み込む記憶領域、前記楽曲データのうちの読み込み開始アドレスを表す読み込み開始ポインタＲＰ、検出したテンポの値を一時的に記憶しておくテンポ値バッファＢＦ１〜ＢＦ４、テンポの安定性（テンポが変化しているか否か）を表す安定性フラグＳＦなどの記憶領域をＲＡＭ１２ｃ内にそれぞれ確保する。そして、前記確保した記憶領域に所定の値を初期値として書き込む。例えば、読み込み開始ポインタＲＰの値を楽曲の先頭を表す「０」に設定する。また、安定性フラグＳＦの値を、テンポが安定していることを表す「１」に設定する。
【００２６】
つぎに、ＣＰＵ１２ａは、ステップＳ１３にて、読み込み開始ポインタＲＰで示されるアドレスを先頭として時系列的に連続する所定数（例えば、２５６個）のサンプル値をＲＡＭ１２ｃに読み込み、読み込み開始ポインタＲＰを前記所定数に相当するアドレス分だけ進める。つぎに、ＣＰＵ１２ａは、ステップＳ１４にて、前記読み込んだサンプル値をサウンドシステム１６に送信する。サウンドシステム１６は、ＣＰＵ１２ａから受信したサンプル値をサンプリング周期の逆数で表される時間間隔で、それらの時系列順にアナログ信号に変換するとともに増幅し、スピーカから放音する。後述するように、ステップＳ１３乃至ステップＳ２０からなる一連の処理が繰り返し実行される。したがって、ステップＳ１３が実行されるごとに前記所定数分のサンプル値が楽曲の先頭側から末尾側へ向かって順に読み込まれる。そして、前記読み込まれた前記所定数分のサンプル値に相当する楽曲の区間（以下、単位区間と言う）がステップＳ１４にて再生される。これにより、楽曲がその先頭から末尾まで滞りなく再生される。
【００２７】
つぎに、ＣＰＵ１２ａは、ステップＳ１５にて、上記非特許文献１に記載と同様の計算手順で、前記読み込んだ所定数のサンプル値から構成される単位区間又は前記単位区間を含む区間における拍点及びテンポ（１分間あたりの拍の数（ＢＰＭ））を計算する。つぎに、ＣＰＵ１２ａは、ステップＳ１６にて、図３に示すテンポ安定性判定プログラムをＲＯＭ１２ｂから読み出して実行する。テンポ安定性判定プログラムは、音響信号分析プログラムのサブルーチンである。
【００２８】
ＣＰＵ１２ａは、ステップＳ１６ａにてテンポ安定性判定処理を開始する。ＣＰＵ１２ａは、ステップＳ１６ｂにて、テンポ値バッファＢＦ２〜ＢＦ４にそれぞれ記憶されている値をテンポ値バッファＢＦ１〜ＢＦ３にそれぞれ書き込み、前記ステップＳ１５にて計算したテンポの値をテンポ値バッファＢＦ４に書き込む。後述するように、ステップＳ１３乃至ステップＳ２０は繰り返し実行されるので、テンポ値バッファＢＦ１〜ＢＦ４には、連続する４つの単位区間のテンポ値がそれぞれ記憶されている。したがって、テンポ値バッファＢＦ１〜ＢＦ４に記憶されているテンポ値を用いれば、前記連続する４つの単位区間のテンポの安定性を判定できる。以下の説明では、前記連続する４つの単位区間を判定対象区間と呼ぶ。
【００２９】
つぎに、ＣＰＵ１２ａは、ステップＳ１６ｃにて、判定対象区間におけるテンポの安定性を判定する。具体的には、テンポ値バッファＢＦ１とテンポ値バッファＢＦ２の値の差ｄｆ１２（＝｜ＢＦ１−ＢＦ２｜）を計算する。また、テンポ値バッファＢＦ２とテンポ値バッファＢＦ３の値の差ｄｆ２３（＝｜ＢＦ２−ＢＦ３｜）、及びテンポ値バッファＢＦ３とテンポ値バッファＢＦ４の値の差ｄｆ３４（＝｜ＢＦ３−ＢＦ４｜）を計算する。そして、ＣＰＵ１２ａは、差ｄｆ１２、差ｄｆ２３及び差ｄｆ３４が所定の基準値ｄｆｓ（例えば、ｄｆｓ＝４）以下であるか否かを判定する。差ｄｆ１２、差ｄｆ２３及び差ｄｆ３４の全てが基準値ｄｆｓ以下である場合には、ＣＰＵ１２ａは、「Ｙｅｓ」と判定して、ステップＳ１６ｄにて、安定性フラグＳＦの値を、テンポが安定していることを表わす「１」に設定する。一方、差ｄｆ１２、差ｄｆ２３、及び差ｄｆ３４のうちの少なくとも１つが基準値ｄｆｓより大きい場合には、ＣＰＵ１２ａは、「Ｎｏ」と判定して、ステップＳ１６ｅにて、安定性フラグＳＦの値を、テンポが不安定である（つまり、判定対象区間においてテンポが大きく変化している）ことを表わす「０」に設定する。そして、ＣＰＵ１２ａは、ステップＳ１６ｆにて、テンポ安定性判定処理を終了し、その処理を音響信号分析処理（メインルーチン）のステップＳ１７に進める。
【００３０】
再び音響信号分析処理の説明に戻る。ＣＰＵ１２ａは、ステップＳ１７にて、テンポの安定性に応じて、つまり安定性フラグＳＦの値に応じて次に実行するステップを決定する。安定性フラグＳＦの値が「１」であるときには、ＣＰＵ１２ａは、制御対象を第１の態様で動作させるために、その処理をステップＳ１８に進め、ステップＳ１８にて、テンポが安定しているときの所定の処理を実行する。例えば、外部インターフェース回路１５を介して接続された照明装置を、ステップＳ１５にて計算されたテンポ（以下、現在のテンポという）で点滅させたり、色を変化させたりする。この場合、例えば、拍点に合わせて照明の明度を高くする。また、例えば、照明装置を一定の明度及び色で点灯させておいてもよい。また、例えば、サウンドシステム１６にて再生中の楽音に、現在のテンポに応じた種類のエフェクトを付与する。この場合、例えば、楽音を遅延させるエフェクトが選択されているときには、その遅延量を現在のテンポに応じた値に設定するとよい。また、例えば、複数の画像を、現在のテンポで切り替えながら表示器１３に表示する。また、例えば、外部インターフェース回路１５を介して接続された電子音楽装置（電子楽器）を現在のテンポで制御する。この場合、例えば、ＣＰＵ１２ａは、判定対象区間のコード（和音）を分析し、そのコードを表わすＭＩＤＩ信号を電子音楽装置に送信して、電子音楽装置にそのコードに対応する楽音を放音させるとよい。また、この場合、例えば、１つ又は複数の楽器音からなるフレーズを表わす一連のＭＩＤＩ信号を現在のテンポで電子音楽装置に送信してもよい。さらに、この場合、楽曲の拍点と前記フレーズの拍点を合致させるとよい。これにより、前記フレーズが現在のテンポで演奏される。また、例えば、１つ又は複数の楽器を所定のテンポで演奏したフレーズをサンプリングして、そのサンプル値をＲＯＭ１２ｂ、外部記憶装置１５などに記憶しておき、ＣＰＵ１２ａは、前記フレーズを表わすサンプル値を、現在のテンポに応じた読み出しレートで順に読み出し、サウンドシステム１６に送信する。これにより、前記フレーズが現在のテンポで再生される。
【００３１】
一方、安定性フラグＳＦの値が「０」であるときには、ＣＰＵ１２ａは、制御対象を第２の態様で動作させるために、その処理をステップＳ１９に進め，ステップＳ１９にて、テンポが不安定であるときの所定の処理を実行する。例えば、外部インターフェース回路１５を介して接続された照明装置の点滅を停止させたり、色の変化を停止させたりする。また、テンポが安定であるときに照明装置を一定の明度及び色で点灯させる場合には、テンポが不安定であるときに照明装置を点滅させたり、色を変化させたりしてもよい。また、例えば、サウンドシステム１６にて再生中の楽音に付与するエフェクトを、テンポが不安定になる直前に付与していたエフェクトに設定する。また、例えば、複数の画像の切り替えを停止させる。この場合、所定の画像（例えば、テンポが不安定であることを表わすメッセージ）を表示してもよい。また、例えば、ＣＰＵ１２ａは、電子音楽装置へのＭＩＤＩ信号の送信を停止して、電子音楽装置の伴奏を停止させる。また、例えば、ＣＰＵ１２ａは、サウンドシステム１６による前記フレーズの再生を停止させる。
【００３２】
つぎにＣＰＵ１２ａは、ステップＳ２０にて、読み込みポインタＲＰが楽曲の末尾に達したか否かを判定する。読み込みポインタＲＰが楽曲の末尾に達していない場合には、ＣＰＵ１２ａは、「Ｎｏ」と判定して、その処理をステップＳ１３に進め、ステップＳ１３〜Ｓ２０からなる一連の処理を再び実行する。一方、読み込みポインタＲＰが楽曲の末尾に達した場合には、ＣＰＵ１２ａは、「Ｙｅｓ」と判定して、ステップＳ２１にて音響信号分析処理を終了する。
【００３３】
上記の第１実施形態によれば、判定対象区間におけるテンポの安定性が判定され、その結果に応じて外部機器ＥＸＴ、サウンドシステム１６などの制御対象が制御される。したがって、判定対象区間においてテンポが不安定であるとき、楽曲のリズムと制御対象の動作が合致しないという事態を回避できる。これにより、制御対象の動作が不自然に感じられることを防止できる。また、楽曲の所定の区間を再生しつつ、その区間における拍点及びテンポを検出するので、楽曲を選択した後すぐに再生を開始できる。
【００３４】
（第２実施形態）
つぎに、本発明の第２実施形態について説明する。第２実施形態に係る音響信号分析装置の構成は、音響信号分析装置１０の構成と同様であるので、その説明を省略する。第２実施形態の動作は、第１実施形態とは異なる。すなわち、第２実施形態では、実行されるプログラムが第１実施形態とは異なる。第１実施形態では、楽曲の一部の区間のサンプル値を読み込んで再生しつつ、判定対象区間のテンポの安定性を分析し、その分析結果を用いて外部機器ＥＸＴ、サウンドシステム１６などを制御するという一連の処理（ステップＳ１３〜ステップＳ２０）を繰り返している。しかし、第２実施形態では、まず、楽曲を構成する全てのサンプル値を読み込んで、楽曲における拍点及びテンポの推移を分析する。そして、その分析の終了後、その楽曲を再生開始するとともに、前記分析結果を用いて外部機器ＥＸＴ、サウンドシステム１６などを制御する。
【００３５】
つぎに、音響信号分析装置１０の第２実施形態における動作について説明する。まず、その概略について説明する。分析対象の楽曲は複数のフレームｔｉ｛ｉ＝０，１，・・・，ｌａｓｔ｝に分割される。そして、拍の存在に関する特徴を表すオンセット特徴量ＸＯ及びテンポに関する特徴を表すＢＰＭ特徴量ＸＢがフレームｔｉごとに計算される。各フレームｔｉにおける拍周期ｂの値（テンポの逆数に比例する値）及び次の拍までのフレーム数ｎの値の組み合わせに応じて分類された状態ｑｂ，ｎの系列Ｑとして記述された確率モデル（隠れマルコフモデル）のうち、観測値としてのオンセット特徴量ＸＯ及びＢＰＭ特徴量ＸＢが同時に観測される確率を表わす観測尤度の系列が最も尤もらしい確率モデルが選択される（図４参照）。これにより、分析対象の楽曲における拍点及びテンポの推移が検出される。なお、拍周期ｂは、フレームの数によって表わされる。したがって、拍周期ｂの値は「１≦ｂ≦ｂｍａｘ」を満たす整数であり、拍周期ｂの値が「β」である状態では、フレーム数ｎの値は「０≦ｎ＜β」を満たす整数である。また、フレームｔｉにおいて拍周期ｂの値が「β」（１≦ｎ＜ｂｍａｘ）である確率を表わす「ＢＰＭらしさ」が計算され、この「ＢＰＭらしさ」を用いて「ＢＰＭらしさの分散」が計算される。そして、この「ＢＰＭらしさの分散」に基づいて、外部機器ＥＸＴ、サウンドシステム１６などが制御される。
【００３６】
つぎに、音響信号分析装置１０の第２実施形態における動作について具体的に説明する。ユーザが音響信号分析装置１０の図示しない電源スイッチをオンにすると、ＣＰＵ１２ａは、図５に示す音響信号分析プログラムをＲＯＭ１２ｂから読み出して実行する。
【００３７】
ＣＰＵ１２ａは、ステップＳ１００にて音響信号分析処理を開始し、ステップＳ１１０にて、記憶装置１４に記憶されている複数の楽曲データにそれぞれ含まれるタイトル情報を読み込んで、楽曲のタイトルをリスト形式で表示器１３に表示する。ユーザは、入力操作子１１を用いて、表示器１３に表示された楽曲の中から分析対象の楽曲データを選択する。なお、ステップＳ１１０にて分析対象の楽曲データを選択する際、選択しようとする楽曲データが表す楽曲の一部又は全部を再生して楽曲データの内容を確認できるように構成してもよい。
【００３８】
つぎに、ＣＰＵ１２ａは、ステップＳ１２０にて、音響信号分析のための初期設定を実行する。具体的には、前記選択された楽曲データのデータサイズ情報に応じた記憶領域をＲＡＭ１２ｃ内に確保し、前記確保した記憶領域に前記選択された楽曲データを読み込む。また、分析結果を表す拍・テンポ情報リスト、オンセット特徴量ＸＯ、ＢＰＭ特徴量ＸＢなどを一時的に記憶する領域をＲＡＭ１２ｃ内に確保する。
【００３９】
詳しくは後述するが、本プログラムによる分析結果は、記憶装置１４に保存される（ステップＳ２２０）。前記選択された楽曲が本プログラムによって過去に分析されたことがあれば、記憶装置１４にその分析結果が保存されている。そこで、ＣＰＵ１２ａは、ステップＳ１３０にて、前記選択された楽曲の分析に関する既存のデータ（以下、単に既存データと呼ぶ）を検索する。既存データが有れば、ＣＰＵ１２ａは、ステップＳ１４０にて「Ｙｅｓ」と判定して、ステップＳ１５０にて既存データをＲＡＭ１２ｃに読み込み、後述するステップＳ１９０に処理を進める。一方、既存データが無ければ、ＣＰＵ１２ａは、ステップＳ１４０にて「Ｎｏ」と判定して、その処理をステップＳ１６０に進める。
【００４０】
ＣＰＵ１２ａは、ステップＳ１６０にて、図６に示す特徴量計算プログラムをＲＯＭ１２ｂから読み出して実行する。特徴量計算プログラムは、音響信号分析プログラムのサブルーチンである。
【００４１】
ＣＰＵ１２ａは、ステップＳ１６１にて特徴量計算処理を開始する。つぎに、ＣＰＵ１２ａは、ステップＳ１６２にて、図７に示すように、前記選択された楽曲を所定の時間間隔をおいて区切り、複数のフレームｔｉ｛ｉ＝０，１，・・・，ｌａｓｔ｝に分割する。各フレームの長さは共通である。説明を簡単にするために、本実施形態では各フレームの長さを１２５ｍｓとする。上記のように、各楽曲のサンプリング周波数は４４．１ｋＨｚであるので、各フレームは、約５０００個のサンプル値から構成されている。そして、以下説明するように、フレームごとに、オンセット特徴量ＸＯ及びＢＰＭ（ｂｅａｔｓ  ｐｅｒ  ｍｉｎｕｔｅ（１分間あたりの拍数））特徴量ＸＢを計算する。
【００４２】
つぎに、ＣＰＵ１２ａは、ステップＳ１６３にて、フレームごとに短時間フーリエ変換を実行して、図６に示すように、各周波数ビンｆｊ｛ｊ＝１，２・・・｝の振幅Ａ（ｆｊ，ｔｉ）を計算する。そして、ＣＰＵ１２ａは、ステップＳ１６４にて、振幅Ａ（ｆ１，ｔｉ），Ａ（ｆ２，ｔｉ）・・・を周波数ビンｆｊごとに設けられたフィルタバンクＦＢＯｊによってフィルタ処理することにより、所定の周波数帯域ｗｋ｛ｋ＝１，２，・・・｝の振幅Ｍ（ｗｋ，ｔｉ）を計算する。周波数ビンｆｊ用のフィルタバンクＦＢＯｊは、図９に示すように、通過帯域の中心周波数が互いに異なる複数のバンドパスフィルタＢＰＦ（ｗｋ，ｆｊ）からなる。フィルタバンクＦＢＯｊを構成する各バンドパスフィルタＢＰＦ（ｗｋ，ｆｊ）の中心周波数は、対数周波数軸上で等間隔であり、かつ各バンドパスフィルタＢＰＦ（ｗｋ，ｆｊ）の通過帯域幅は、対数周波数軸上で共通である。各バンドパスフィルタＢＰＦ（ｗｋ，ｆｊ）は、通過帯域の中心周波数から通過帯域の下限周波数側及び上限周波数側へ向かうに従って徐々にゲインがそれぞれ小さくなるように構成されている。ＣＰＵ１２ａは、図６のステップＳ１６４に示すように、周波数ビンｆｊごとに振幅Ａ（ｆｊ，ｔｉ）とバンドパスフィルタＢＰＦ（ｗｋ，ｆｊ）のゲインとを積算する。そして、前記周波数ビンｆｊごとに計算した積算結果を全ての周波数ビンｆｊについて合算して振幅Ｍ（ｗｋ，ｔｉ）とする。上記のようにして計算された振幅Ｍの系列を図１０に例示する。
【００４３】
つぎに、ＣＰＵ１２ａは、ステップＳ１６５にて、振幅Ｍの時間変化に基づいてフレームｔｉのオンセット特徴量ＸＯ（ｔｉ）を計算する。具体的には、図６のステップＳ１６５に示すように、周波数帯域ｗｋごとに、フレームｔｉ−１からフレームｔｉへの振幅Ｍの増加量Ｒ（ｗｋ，ｔｉ）を計算する。ただし、フレームｔｉ―１の振幅Ｍ（ｗｋ，ｔｉ−１）とフレームｔｉの振幅Ｍ（ｗｋ，ｔｉ）とが同じである場合、又はフレームｔｉの振幅Ｍ（ｗｋ，ｔｉ）がフレームｔｉ―１の振幅Ｍ（ｗｋ，ｔｉ−１）よりも小さい場合は、増加量Ｒ（ｗｋ，ｔｉ）は「０」とする。そして、周波数帯域ｗｋごとに計算した増加量Ｒ（ｗｋ，ｔｉ）を全ての周波数帯域ｗ１，ｗ２，・・・について合算してオンセット特徴量ＸＯ（ｔｉ）とする。上記のようにして計算されたオンセット特徴量ＸＯの系列を図１１に例示する。一般に、楽曲においては、拍が存在する部分の音量が大きい。したがって、オンセット特徴量ＸＯ（ｔｉ）が大きいほど、フレームｔｉに拍が存在する可能性が高い。
【００４４】
つぎに、ＣＰＵ１２ａは、オンセット特徴量ＸＯ（ｔ０），ＸＯ（ｔ１）・・・を用いて、ＢＰＭ特徴量ＸＢをフレームｔｉごとに計算する。なお、フレームｔｉのＢＰＭ特徴量ＸＢ（ｔｉ）は、拍周期ｂごとに計算されたＢＰＭ特徴量ＸＢｂ＝１，２・・・（ｔｉ）の集合として表わされる（図１３参照）。まず、ＣＰＵ１２ａは、ステップＳ１６６にて、オンセット特徴量ＸＯ（ｔ０），ＸＯ（ｔ１）・・・をこの順にフィルタバンクＦＢＢに入力してフィルタ処理する。フィルタバンクＦＢＢは、拍周期ｂの値に応じてそれぞれ設けられた複数のコムフィルタＤｂからなる。コムフィルタＤｂ＝βは、フレームｔｉのオンセット特徴量ＸＯ（ｔｉ）を入力すると、前記入力したオンセット特徴量ＸＯ（ｔｉ）と「β」だけ先行するフレームｔｉ−βのオンセット特徴量ＸＯ（ｔｉ−β）に対する出力としてのデータＸＤｂ＝β（ｔｉ−β）とを所定の比率で加算してフレームｔｉのデータＸＤｂ＝β（ｔｉ）として出力する（図１２参照）。すなわち、コムフィルタＤｂ＝βは、データＸＤｂ＝βをフレーム数βに相当する時間だけ保持する保持手段としての遅延回路ｄｂ＝βを有する。上記のようにして、オンセット特徴量ＸＯの系列ＸＯ（ｔ）｛＝ＸＯ（ｔ０），ＸＯ（ｔ１），・・・｝をフィルタバンクＦＢＢに入力することにより、データＸＤｂの系列ＸＤｂ（ｔ）｛＝ＸＤｂ（ｔ０），ＸＤｂ（ｔ１）・・・｝が計算される。
【００４５】
つぎに、ＣＰＵ１２ａは、ステップＳ１６７にて、データＸＤｂの系列ＸＤｂ（ｔ）を時系列的に逆にしたデータ列をフィルタバンクＦＢＢに入力することにより、ＢＰＭ特徴量の系列ＸＢｂ（ｔ）｛＝ＸＢｂ（ｔ０），ＸＢｂ（ｔ１）・・・｝が得られる。これにより、オンセット特徴量ＸＯ（ｔ０），ＸＯ（ｔ１）・・・の位相とＢＰＭ特徴量ＸＢｂ（ｔ０），ＸＢｂ（ｔ１）・・・の位相のずれを「０」にすることができる。上記のようにして計算されたＢＰＭ特徴量ＸＢ（ｔｉ）を図１３に例示する。上記のように、ＢＰＭ特徴量ＸＢｂ（ｔｉ）は、オンセット特徴量ＸＯ（ｔｉ）と拍周期ｂの値に相当する時間（すなわち、フレーム数ｂ）だけ遅延させたＢＰＭ特徴量ＸＢｂ（ｔｉ―ｂ）とを所定の比率で加算して計算されるので、オンセット特徴量ＸＯ（ｔ０），ＸＯ（ｔ１）・・・が拍周期ｂの値に相当する時間間隔をおいてピークを有する場合、ＢＰＭ特徴量ＸＢｂ（ｔｉ）の値が大きくなる。楽曲のテンポは、１分間あたりの拍数で表されるから、拍周期ｂは１分間あたりの拍数の逆数に比例する。例えば、図１３に示す例では、拍周期ｂの値が「４」であるときのＢＰＭ特徴量ＸＢｂの値（ＢＰＭ特徴量ＸＢｂ＝４）が最も大きい。したがって、この例では拍が４フレームおきに存在する可能性が高い。本実施形態では、１フレームの時間の長さを１２５ｍｓとしたので、この場合の拍の間隔は０．５ｓである。すなわち、テンポは１２０ＢＰＭ（＝６０ｓ／０．５ｓ）である。
【００４６】
つぎに、ＣＰＵ１２ａは、ステップＳ１６８にて、特徴量計算処理を終了し、その処理を音響信号分析処理（メインルーチン）のステップＳ１７０に進める。
【００４７】
ＣＰＵ１２ａは、ステップＳ１７０にて、図１４に示す対数観測尤度計算プログラムをＲＯＭ１２ｂから読み出して実行する。対数観測尤度計算プログラムは、音響信号分析プログラムのサブルーチンである。
【００４８】
ＣＰＵ１２ａは、ステップＳ１７１にて対数観測尤度計算処理を開始する。そして、以下説明するように、オンセット特徴量ＸＯ（ｔｉ）の尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））、及びＢＰＭ特徴量ＸＢ（ｔｉ）の尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））を計算する。なお、上記の「Ｚｂ＝β，ｎ＝η（ｔｉ）」は、フレームｔｉにおいて、拍周期ｂの値が「β」であり、且つ次の拍までのフレーム数ｎの値が「η」である状態ｑｂ＝β，ｎ＝ηのみが生起していることを表わす。フレームｔｉにおいて状態ｑｂ＝β，ｎ＝ηと状態ｑｂ≠β，ｎ≠ηとが同時に生起することはない。したがって、尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ＝β，ｎ＝η（ｔｉ））は、フレームｔｉにおいて、拍周期ｂの値が「β」であり、且つ次の拍までのフレーム数ｎの値が「η」であるという条件のもとでオンセット特徴量ＸＯ（ｔｉ）が観測される確率を表わす。また、尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ＝β，ｎ＝η（ｔｉ））は、フレームｔｉにおいて、拍周期ｂの値が「β」であり、且つ次の拍までのフレーム数ｎの値が「η」であるという条件のもとでＢＰＭ特徴量ＸＢ（ｔｉ）が観測される確率を表わす。
【００４９】
まず、ＣＰＵ１２ａは、ステップＳ１７２にて、尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））を計算する。次の拍までのフレーム数ｎの値が「０」であるとき、オンセット特徴量ＸＯは、平均値が「３」であって、且つ分散が「１」である第１の正規分布に従って分布するものとする。すなわち、第１の正規分布の確率変数としてオンセット特徴量ＸＯ（ｔｉ）を代入した値を尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ＝０（ｔｉ））として計算する。また、拍周期ｂの値が「β」であり、次の拍までのフレーム数ｎの値が「β／２」であるとき、オンセット特徴量ＸＯは、平均値が「１」であって、且つ分散が「１」である第２の正規分布に従って分布するものとする。すなわち、第２の正規分布の確率変数としてオンセット特徴量ＸＯ（ｔｉ）を代入した値を尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ＝β，ｎ＝β／２（ｔｉ））として計算する。また、次の拍までのフレーム数ｎの値が「０」及び「β／２」のうちのいずれの値とも異なるとき、オンセット特徴量ＸＯは、平均値が「０」であって、且つ分散が「１」である第３の正規分布に従って分布するものとする。すなわち、第３の正規分布の確率変数としてオンセット特徴量ＸＯ（ｔｉ）を代入した値を尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ≠０，β／２（ｔｉ））として計算する。
【００５０】
オンセット特徴量ＸＯの系列が｛１０，２，０．５，５，１，０，３，４，２｝であるときの尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ＝６，ｎ（ｔｉ））の対数を計算した結果を、図１５に例示する。同図に示すように、オンセット特徴量ＸＯの値が大きいフレームｔｉほど、尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ＝０（ｔｉ））が尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ≠０（ｔｉ））に比べて大きい。このように、オンセット特徴量ＸＯの値が大きいフレームｔｉほど、フレーム数ｎの値が「０」であるときに拍が存在する可能性が高くなるように、確率モデル（第１乃至第３の正規分布、及びそれらのパラメータ（平均値及び分散））が設定されている。なお、第１乃至第３の正規分布のパラメータの値は、上記実施形態に限られない。これらのパラメータの値は、実験を繰り返して決定してもよいし、機械学習を用いて決定してもよい。なお、この例では、オンセット特徴量ＸＯの尤度Ｐを計算するための確率分布関数として正規分布を用いているが、確率分布関数として他の関数（例えば、ガンマ分布、ポアソン分布など）を用いても良い。
【００５１】
つぎに、ＣＰＵ１２ａは、ステップＳ１７３にて、尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））を計算する。尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ＝γ，ｎ（ｔｉ））は、図１６に示すテンプレートＴＰγ｛γ＝１，２・・・｝に対するＢＰＭ特徴量ＸＢ（ｔｉ）の適合度に相当する。具体的には、尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ＝γ，ｎ（ｔｉ））は、ＢＰＭ特徴量ＸＢ（ｔｉ）とテンプレートＴＰγ｛γ＝１，２・・・｝との内積に相当する（図１４のステップＳ１７３の演算式を参照）。なお、この演算式におけるκｂは、オンセット特徴量ＸＯに対するＢＰＭ特徴量ＸＢの重みを決定する係数である。つまり、κｂを大きく設定するほど、結果的に、後述する拍・テンポ同時推定処理においてＢＰＭ特徴量ＸＢが重視される。また、この演算式におけるＺ（κｂ）は、κｂに依存する正規化係数である。テンプレートＴＰγは、図１６に示すように、ＢＰＭ特徴量ＸＢ（ｔｉ）を構成するＢＰＭ特徴量ＸＢｂ（ｔｉ）にそれぞれ乗算される係数δγ，ｂからなる。テンプレートＴＰγは、その係数δγ，γが最大であり、係数δγ，２γ，係数δγ，３γ・・・，係数δγ，（「γ」の整数倍），・・・がそれぞれ極大となるように設定されている。すなわち、例えば、テンプレートＴＰγ＝２は、２フレームおきに拍が存在する楽曲に適合するように構成されている。なお、この例では、ＢＰＭ特徴量ＸＢの尤度Ｐを計算するためにテンプレートＴＰを用いているが、これに代えて確率分布関数（例えば、多項分布、ディリクレ分布、多次元正規分布、多次元ポアソン分布など）を用いても良い。
【００５２】
ＢＰＭ特徴量ＸＢ（ｔｉ）が図１３に示すような値であった場合に、図１６に示すテンプレートＴＰγ｛γ＝１，２・・・｝を用いて尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））を計算し、その対数を計算した結果を図１７に例示する。この例では、尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ＝４，ｎ（ｔｉ））が最も大きいので、ＢＰＭ特徴量ＸＢ（ｔｉ）は、テンプレートＴＰ４に最も適合している。
【００５３】
つぎに、ＣＰＵ１２ａは、ステップＳ１７４にて、尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））の対数と尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））の対数をそれぞれ加算し、その結果を対数観測尤度Ｌｂ，ｎ（ｔｉ）とする。なお、尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））と尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））とを積算した結果の対数を対数観測尤度Ｌｂ，ｎ（ｔｉ）としても同じ結果が得られる。つぎに、ＣＰＵ１２ａは、ステップＳ１７５にて、対数観測尤度計算処理を終了し、その処理を音響信号分析処理（メインルーチン）のステップＳ１８０に進める。
【００５４】
つぎに、ＣＰＵ１２ａは、ステップＳ１８０にて、図１８に示す拍・テンポ同時推定プログラムをＲＯＭ１２ｂから読み出して実行する。拍・テンポ同時推定プログラムは、音響信号分析プログラムのサブルーチンである。この拍・テンポ同時推定プログラムは、ビタビアルゴリズムを用いて最尤の状態の系列Ｑを計算するプログラムである。ここで、その概略について説明する。ＣＰＵ１２ａは、まず、フレームｔ０からフレームｔｉまでオンセット特徴量ＸＯ及びＢＰＭ特徴量ＸＢを観測したときにフレームｔｉの状態ｑｂ，ｎの尤度が最大となるような状態の系列を選択した場合の状態ｑｂ，ｎの尤度を尤度Ｃｂ，ｎ（ｔｉ）とするとともに、各状態ｑｂ，ｎに遷移する１つ前のフレームの状態（遷移元の状態）を状態Ｉｂ，ｎ（ｔｉ）として記憶する。つまり、遷移後の状態が状態ｑｂ＝βｅ，ｎ＝ηｅであって、遷移元の状態が状態ｑｂ＝βｓ，ｎ＝ηｓであるとき、状態Ｉｂ＝βｅ，ｎ＝ηｅ（ｔｉ）は、状態ｑｂ＝βｓ，ｎ＝ηｓである。ＣＰＵ１２ａは、上記のようにして尤度Ｃ及び状態Ｉをフレームｔｌａｓｔまで計算し、その結果を用いて最尤の状態の系列Ｑを選択する。
【００５５】
なお、後述する具体例では、その説明を簡単にするために、分析対象の楽曲の拍周期ｂの値が「３」、「４」及び「５」のうちのいずれかであるものとする。すなわち、対数観測尤度Ｌｂ，ｎ（ｔｉ）が図１９に例示するように計算された場合の拍・テンポ同時推定処理の手順を具体例として説明する。この例では、拍周期ｂの値が「３」、「４」及び「５」以外である状態の観測尤度が十分に小さいものとし、図１９乃至図２１では、拍周期ｂの値が「３」、「４」及び「５」以外である状態の観測尤度の図示を省略する。また、この例では、拍周期ｂの値が「βｓ」であり、且つフレーム数ｎの値が「ηｓ」である状態から、拍周期ｂの値が「βｅ」であり、且つフレーム数ｎの値が「ηｅ」である状態への対数遷移確率Ｔの値は、次のように設定されている。「ηｅ＝０」、「βｅ＝βｓ」、かつ「ηｅ＝βｅ−１」のとき、対数遷移確率Ｔの値は、「−０．２」である。また、「ηｓ＝０」、「βｅ＝βｓ＋１」、かつ「ηｅ＝βｅ−１」のとき、対数遷移確率Ｔの値は、「−０．６」である。また、「ηｓ＝０」、「βｅ＝βｓ−１」、かつ「ηｅ＝βｅ−１」のとき、対数遷移確率Ｔの値は、「−０．６」である。また、「ηｓ＞０」、「βｅ＝βｓ」、かつ「ηｅ＝ηｓ−１」のとき、対数遷移確率Ｔの値は、「０」である。上記以外の対数遷移確率Ｔの値は、「−∞」である。すなわち、フレーム数ｎの値が「０」である状態（ηｓ＝０）から次の状態へ遷移するとき、拍周期ｂの値は「１」だけ増減され得る。このとき、フレーム数ｎの値は、遷移後の拍周期ｂの値より「１」だけ小さい値に設定される。また、フレーム数ｎの値が「０」でない状態（ηｓ≠０）から次の状態へ遷移するとき、拍周期ｂの値は変更されず、フレーム数ｎの値が「１」だけ減少する。
【００５６】
以下、拍・テンポ同時推定処理について具体的に説明する。ＣＰＵ１２ａは、ステップＳ１８１にて拍・テンポ同時推定処理を開始する。つぎに、ユーザは、ステップＳ１８２にて、入力操作子１１を用いて、図２０に示すような、各状態ｑｂ，ｎに対応した、尤度Ｃの初期条件ＣＳｂ，ｎを入力する。なお、初期条件ＣＳｂ，ｎがＲＯＭ１２ｂに記憶されていて、ＣＰＵ１２ａがＲＯＭ１２ｂから初期条件ＣＳｂ，ｎを読み込むようにしてもよい。
【００５７】
つぎに、ＣＰＵ１２ａは、ステップＳ１８３にて、尤度Ｃｂ，ｎ（ｔｉ）及び状態Ｉｂ，ｎ（ｔｉ）を計算する。フレームｔ０において拍周期ｂの値が「βｅ」であって、フレーム数ｎの値が「ηｅ」である状態ｑｂ＝βｅ，ｎ＝ηｅの尤度Ｃｂ＝βｅ，ｎ＝ηｅ（ｔ０）は、初期条件ＣＳｂ＝βｅ，ｎ＝ηｅと対数観測尤度Ｌｂ＝βｅ，ｎ＝ηｅ（ｔ０）とを加算することにより計算される。
【００５８】
また、状態ｑｂ＝βｓ，ｎ＝ηｓから状態ｑｂ＝βｅ，ｎ＝ηｅに遷移したとき、尤度Ｃｂ＝βｅ，ｎ＝ηｅ（ｔｉ）｛ｉ＞０｝は次のように計算される。状態ｑｂ＝βｓ，ｎ＝ηｓのフレーム数ｎが「０」でないとき（すなわち、ηｓ≠０）、尤度Ｃｂ＝βｅ，ｎ＝ηｅ（ｔｉ）は、尤度Ｃｂ＝βｅ，ｎ＝ηｅ＋１（ｔｉ−１）と対数観測尤度Ｌｂ＝βｅ，ｎ＝ηｅ（ｔｉ）と対数遷移確率Ｔを加算して計算される。ただし、本実施形態では、遷移元の状態のフレーム数ｎが「０」でないときの対数遷移確率Ｔは「０」であるので、尤度Ｃｂ＝βｅ，ｎ＝ηｅ（ｔｉ）は、実質的には、尤度Ｃｂ＝βｅ，ｎ＝ηｅ＋１（ｔｉ−１）と対数観測尤度Ｌｂ＝βｅ，ｎ＝ηｅ（ｔｉ）とを加算することにより計算される（Ｃｂ＝βｅ，ｎ＝ηｅ（ｔｉ）＝Ｃｂ＝βｅ，ｎ＝ηｅ＋１（ｔｉ−１）＋Ｌｂ＝βｅ，ｎ＝ηｅ（ｔｉ））。また、この場合、状態Ｉｂ＝βｅ，ｎ＝ηｅ（ｔｉ）は、状態ｑβｅ，ηｅ＋１である。例えば、尤度Ｃが図２０に示すように計算された例では、尤度Ｃ４，１（ｔ２）の値は「−０．３」であり、対数観測尤度Ｌ４，０（ｔ３）の値は「１．１」であるので、尤度Ｃ４，０（ｔ３）の値は「０．８」である。また、図２１に示すように、状態Ｉ４，０（ｔ３）は、状態ｑ４，１である。
【００５９】
また、状態ｑｂ＝βｓ，ｎ＝ηｓのフレーム数ｎが「０」のとき（ηｓ＝０）の尤度Ｃｂ＝βｅ，ｎ＝ηｅ（ｔｉ）は次のように計算される。この場合、状態の遷移に伴って拍周期ｂの値が増減され得る。そこで、まず、尤度Ｃβｅ−１，０（ｔｉ−１）、尤度Ｃβｅ，０（ｔｉ−１）、及び尤度Ｃβｅ＋１，０（ｔｉ−１）に対数遷移確率Ｔをそれぞれ加算し、そのうちの最大値に対数観測尤度Ｌｂ＝βｅ，ｎ＝ηｅ（ｔｉ）を加算した結果が尤度Ｃｂ＝βｅ，ｎ＝ηｅ（ｔｉ）である。また、状態Ｉｂ＝βｅ，ｎ＝ηｅ（ｔｉ）は、状態ｑβｅ−１，０、状態ｑβｅ，０、及び状態ｑβｅ＋１，０のうち、それらの尤度Ｃβｅ−１，０（ｔｉ−１）、尤度Ｃβｅ，０（ｔｉ−１）、及び尤度Ｃβｅ＋１，０（ｔｉ−１）に対数遷移確率Ｔをそれぞれ加算した値が最大となる状態ｑである。なお、厳密には、尤度Ｃｂ，ｎ（ｔｉ）は正規化される必要があるが、正規化されていなくても、拍点及びテンポの推移の推定に関しては、数理上同一の結果が得られる。
【００６０】
例えば、尤度Ｃ４，３（ｔ３）は、次のように計算される。遷移元の状態が状態ｑ３，０である場合、尤度Ｃ３，０（ｔ２）の値は「０．０」であり、対数遷移確率Ｔは「−０．６」であるので、尤度Ｃ３，０（ｔ２）と対数遷移確率Ｔとを加算した値は、「−０．６」である。また、遷移元の状態が状態ｑ４，０である場合、遷移元の尤度Ｃ４，０（ｔ２）の値は「−１．２」であり、対数遷移確率Ｔは「−０．２」であるので、尤度Ｃ４，０（ｔ２）と対数遷移確率Ｔとを加算した値は、「−１．４」である。また、遷移元の状態が状態ｑ５，０である場合、遷移元の尤度Ｃ５，０（ｔ２）の値は「−１．２」であり、対数遷移確率Ｔは「−０．６」であるので、尤度Ｃ５，０（ｔ２）と対数遷移確率Ｔとを加算した値は、「−１．８」である。したがって、尤度Ｃ３，０（ｔ２）に対数遷移確率Ｔを加算した値が最も大きい。また、対数観測尤度Ｌ４，３（ｔ３）の値は、「−１．１」である。よって、尤度Ｃ４，３（ｔ３）の値は「―１．７」（＝−０．６＋（−１．１））であり、状態Ｉ４，３（ｔ３）は、状態ｑ３，０である。
【００６１】
上記のようにして、全てのフレームｔｉについて、全ての状態ｑｂ，ｎの尤度Ｃｂ，ｎ（ｔｉ）及び状態Ｉｂ，ｎ（ｔｉ）を計算し終えると、ＣＰＵ１２ａはステップＳ１８４にて、最尤の状態の系列Ｑ（＝｛ｑｍａｘ（ｔ０），ｑｍａｘ（ｔ１）・・・，ｑｍａｘ（ｔｌａｓｔ）｝）を次のようにして決定する。まず、ＣＰＵ１２ａは、フレームｔｌａｓｔにおける尤度Ｃｂ，ｎ（ｔｌａｓｔ）が最大である状態ｑｂ，ｎを、状態ｑｍａｘ（ｔｌａｓｔ）とする。ここで、状態ｑｍａｘ（ｔｌａｓｔ）の拍周期ｂの値を「βｍ」と表記し、フレーム数ｎの値を「ηｍ」と表記する。このとき、状態Ｉβｍ，ηｍ（ｔｌａｓｔ）がフレームｔｌａｓｔの１つ前のフレームｔｌａｓｔ−１の状態ｑｍａｘ（ｔｌａｓｔ−１）である。フレームｔｌａｓｔ−２、フレームｔｌａｓｔ−３、・・・の状態ｑｍａｘ（ｔｌａｓｔ−２）、状態ｑｍａｘ（ｔｌａｓｔ−３）・・・も状態ｑｍａｘ（ｔｌａｓｔ−１）と同様に決定される。すなわち、フレームｔｉ＋１の状態ｑｍａｘ（ｔｉ＋１）の拍周期ｂの値を「βｍ」と表記し、フレーム数ｎの値を「ηｍ」と表記したときの状態Ｉβｍ，ηｍ（ｔｉ＋１）がフレームｔｉ＋１の１つ前のフレームｔｉの状態ｑｍａｘ（ｔｉ）である。上記のようにして、ＣＰＵ１２ａは、フレームｔｌａｓｔ−１からフレームｔ０へ向かって順に状態ｑｍａｘを決定して、最尤の状態の系列Ｑを決定する。
【００６２】
例えば、図２０及び図２１に示す例では、フレームｔｌａｓｔ＝７７においては、状態ｑ５，１の尤度Ｃ５，１（ｔｌａｓｔ＝７７）が最大である。したがって、状態ｑｍａｘ（ｔｌａｓｔ＝７７）は、状態ｑ５，１である。図２１によれば、状態Ｉ５，１（ｔ７７）は状態ｑ５，２であるから、状態ｑｍａｘ（ｔ７６）は状態ｑ５，２である。また、状態Ｉ５，２（ｔ７６）は状態ｑ５，３であるから、状態ｑｍａｘ（ｔ７５）は状態ｑ５，３である。状態ｑｍａｘ（ｔ７４）乃至状態ｑｍａｘ（ｔ０）も状態ｑｍａｘ（ｔ７６）及び状態ｑｍａｘ（ｔ７５）と同様に決定する。このようにして図２０に矢印で示す最尤の状態の系列Ｑが決定される。この例では、拍の周期ｂの値は最初「３」であるが、フレームｔ４０付近で「４」に遷移し、さらにフレームｔ４４付近で「５」に遷移する。また、系列Ｑのうち、フレーム数ｎの値が「０」である状態ｑｍａｘ（ｔ０），ｑｍａｘ（ｔ３），・・・に対応するフレームｔ０，ｔ３，・・・に拍が存在すると推定される。
【００６３】
つぎに、ＣＰＵ１２ａは、ステップＳ１８５にて、拍・テンポ同時推定処理を終了し、その処理を音響信号分析処理（メインルーチン）のステップＳ１９０に進める。
【００６４】
ＣＰＵ１２ａは、ステップＳ１９０にて、フレームｔｉごとに「ＢＰＭらしさ」、「ＢＰＭらしさの平均」、「ＢＰＭらしさの分散」、「観測に基づく確率」、「拍らしさ」、「拍が存在する確率」及び「拍が存在しない確率」を計算（図２３に示す演算式を参照）する。「ＢＰＭらしさ」は、フレームｔｉにおけるテンポの値が拍周期ｂに対応した値である確率を意味し、尤度Ｃｂ，ｎ（ｔｉ）を正規化するとともにフレーム数ｎについて周辺化することにより計算される。具体的には、拍周期ｂの値が「β」である場合の「ＢＰＭらしさ」は、フレームｔｉにおける全ての状態の尤度Ｃの合計に対する、拍周期ｂの値が「β」である状態の尤度Ｃの合計の割合である。また、「ＢＰＭらしさの平均」は、フレームｔｉにおける拍周期ｂに対応する「ＢＰＭらしさ」と拍周期ｂの値とをそれぞれ乗算し、それぞれの乗算結果を合算した値をフレームｔｉにおける全ての「ＢＰＭらしさ」の合計値で除することにより計算される。また、「ＢＰＭらしさの分散」は、次のようにして計算される。まず、拍周期ｂの値からフレームｔｉにおける「ＢＰＭらしさの平均」をそれぞれ減算し、それぞれの減算結果を二乗するとともに拍周期ｂの値に対応する「ＢＰＭらしさ」の値を乗算する。そして、それぞれの乗算結果を合算した値をフレームｔｉにおける全ての「ＢＰＭらしさ」の合計値で除することにより「ＢＰＭらしさの分散」が計算される。上記のようにして計算された「ＲＰＭらしさ」、「ＢＰＭらしさの平均」、及び「ＢＰＭらしさの分散」の値を図２２に例示する。また、「観測に基づく確率」は、観測値（すなわちオンセット特徴量ＸＯ）に基づいて計算された、拍がフレームｔｉに存在する確率を意味する。具体的には、所定の基準値ＸＯｂａｓｅに対するオンセット特徴量ＸＯ（ｔｉ）の割合である。また、「拍らしさ」は、すべてのフレーム数ｎの値についてのオンセット特徴量ＸＯ（ｔｉ）の尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））を合算した値に対する尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，０（ｔｉ））の割合である。また、「拍が存在する確率」及び「拍が存在しない確率」は、いずれも尤度Ｃｂ，ｎ（ｔｉ）を拍周期ｂについて周辺化することにより計算される。具体的には、「拍が存在する確率」は、フレームｔｉにおける全ての状態の尤度Ｃの合計に対する、フレーム数ｎの値が「０」である状態の尤度Ｃの合計の割合である。また、「拍が存在しない確率」は、フレームｔｉにおける全ての状態の尤度Ｃの合計に対する、フレーム数ｎの値が「０」でない状態の尤度Ｃの合計の割合である。
【００６５】
ＣＰＵ１２ａは、「ＢＰＭらしさ」、「観測に基づく確率」、「拍らしさ」、「拍が存在する確率」及び「拍が存在しない確率」を用いて、図２３に示す拍・テンポ情報リストを表示器１３に表示する。同リスト中の「テンポの推定値（ＢＰＭ）」の欄には、前記計算した「ＢＰＭらしさ」のうち最も確率の高い拍周期ｂに対応するテンポの値（ＢＰＭ）が表示される。また、前記決定した状態ｑｍａｘ（ｔｉ）のうちフレーム数ｎの値が「０」であるフレームの「拍の存在」の欄には「○」が表示され、その他のフレームの「拍の存在」の欄には「×」が表示される。また、ＣＰＵ１２ａは、テンポの推定値（ＢＰＭ）を用いて、図２４に示すようなテンポの推移を表わすグラフを表示器１３に表示する。図２４の例では、テンポの推移を棒グラフで表わしている。図２０及び図２１を用いて説明した例では、最初、拍周期ｂの値が「３」であり、フレームｔ４０にて拍周期ｂの値が「４」に遷移しさらに、フレームｔ４４にて拍周期ｂの値が「５」に遷移する。これにより、ユーザは、テンポの推移を視覚的に認識することができる。また、ＣＰＵ１２ａは、前記計算した「拍が存在する確率」を用いて、図２５に示すような拍点を表わすグラフを表示器１３に表示する。さらに、ＣＰＵ１２ａは、前記計算した「オンセット特徴量ＸＯ」、「ＢＰＭらしさの分散」及び「拍の存在」を用いて、図２６に示すようなテンポの安定性を表わすグラフを表示器１３に表示する。
【００６６】
また、音響信号分析処理のステップＳ１３０にて既存データを検索した結果、既存データが存在する場合には、ＣＰＵ１２ａは、ステップＳ１５０にてＲＡＭ１２ｃに読み込んだ前回の分析結果に関する各種データを用いて、拍・テンポ情報リスト、テンポの推移を表わすグラフ、拍点、及びテンポの安定性を表わすグラフを表示器１３に表示する。
【００６７】
次に、ＣＰＵ１２ａは、ステップＳ２００にて、楽曲の再生を開始するか否かを表すメッセージを表示器１３に表示して、ユーザからの指示を待つ。ユーザは入力操作子１１を用いて楽曲の再生を開始するか、後述の拍・テンポ情報修正処理を実行するかのいずれかを指示する。例えば、マウスを用いて図示しないアイコンをクリックする。
【００６８】
ステップＳ２００にて、拍・テンポ情報修正処理を実行するように指示された場合には、ＣＰＵ１２ａは「Ｎｏ」と判定して、ステップＳ２１０にて、拍・テンポ情報修正処理を実行する。まず、ＣＰＵ１２ａは、ユーザが修正情報の入力を終了するまで待機する。ユーザは、入力操作子１１を用いて「ＢＰＭらしさ」、「拍が存在する確率」などの修正値を入力する。例えば、マウスを用いて修正するフレームを選択し、テンキーを用いて修正値を入力する。修正された項目の右側に配置された「Ｆ」の表示形態（例えば色）が変更され、その値が修正されたことが明示される。ユーザは、複数の項目について修正値を入力可能である。ユーザは修正値の入力を完了すると、入力操作子１１を用いて修正情報の入力を完了したことを指示する。例えば、マウスを用いて図示しない修正完了を表わすアイコンをクリックする。ＣＰＵ１２ａは、前記入力された修正値に応じて尤度Ｐ（ＸＯ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））及び尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ（ｔｉ））のうちのいずれか一方又は両方を更新する。例えば、フレームｔｉにおける「拍が存在する確率」が高くなるように修正された場合であって、修正された値に関するフレーム数ｎの値が「ηｅ」であるときには、尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ，ｎ≠ηｅ（ｔｉ））を十分に小さい値に設定する。これにより、フレームｔｉでは、フレーム数ｎの値が「ηｅ」である確率が相対的に最も高くなる。また、例えば、フレームｔｉにおける「ＢＰＭらしさ」のうち、拍周期ｂの値が「βｅ」である確率が高くなるように修正された場合には、拍周期ｂの値が「βｅ」でない状態の尤度Ｐ（ＸＢ（ｔｉ）｜Ｚｂ≠βｅ，ｎ（ｔｉ））を十分に小さい値に設定する。これにより、フレームｔｉでは、拍周期ｂの値が「βｅ」である確率が相対的に最も高くなる。そして、ＣＰＵ１２ａは、拍・テンポ情報修正処理を終了して、その処理をステップＳ１８０に進め、修正された対数観測尤度Ｌを用いて、拍・テンポ同時推定処理を再度実行する。
【００６９】
一方、ユーザから楽曲の再生を開始するよう指示された場合には、ＣＰＵ１２ａは「Ｙｅｓ」と判定してステップＳ２２０にて尤度Ｃ、状態Ｉ、拍・テンポ情報リストなどの分析結果に関する各種データを楽曲のタイトルと関連付けて記憶装置１４に記憶する。
【００７０】
つぎに、ＣＰＵ１２ａは、ステップＳ２３０にて、図２７に示す再生・制御プログラムをＲＯＭ１２ｂから読み出して実行する。再生・制御プログラムは、音響信号分析プログラムのサブルーチンである。
【００７１】
ＣＰＵ１２ａは、ステップＳ２３１にて再生・制御処理を開始する。ＣＰＵ１２ａは、ステップＳ２３２にて、再生するフレームを表わすフレーム番号ｉを「０」に設定する。つぎに、ＣＰＵ１２ａは、ステップＳ２３３にて、フレームｔｉのサンプル値をサウンドシステム１６に送信する。サウンドシステム１６は、第１実施形態と同様に、ＣＰＵ１２ａから受信したサンプル値を用いて楽曲のフレームｔｉに相当する区間を再生する。ＣＰＵ１２ａは、ステップＳ２３４にて、フレームｔｉにおける「ＢＰＭらしさの分散」が所定の基準値σｓ２（例えば０．５）より小さいか否か判定する。「ＢＰＭらしさの分散」が基準値σｓ２より小さい場合には、ＣＰＵ１２ａは「Ｙｅｓ」と判定して、ステップＳ２３５にて、ＢＰＭが安定しているときの所定の処理を実行する。一方、「ＢＰＭらしさの分散」が基準値σｓ２以上である場合には、ＣＰＵ１２ａは「Ｎｏ」と判定して、ステップＳ２３６にて、ＢＰＭが不安定であるときの所定の処理を実行する。ステップＳ２３５及びステップＳ２３６の処理は、第１実施形態のステップＳ１８及びＳ１９とそれぞれ同様であるので、それらの説明を省略する。図２６の例では、フレームｔ３９〜フレームｔ５３に亘って、「ＢＰＭらしさの分散」が基準値σ２ｓ以上である。したがって、図２６の例では、フレームｔ４０〜フレームｔ５３においては、ＣＰＵ１２ａは、ステップＳ２３６にて、ＢＰＭが不安定であるときの所定の処理を実行する。なお、先頭の数フレームにおいては、拍周期ｂの値が一定であっても「ＢＰＭらしさの分散」が基準値σｓ２より大きくなる傾向にある。そこで、先頭の数フレームにおいては、ステップＳ２３５にて、ＢＰＭが安定であるときの所定の処理を実行するように構成してもよい。
【００７２】
つぎに、ＣＰＵ１２ａは、ステップＳ２３７にて、現在の処理対象のフレームが最終フレームであるか否かを判定する。すなわち、フレーム番号ｉの値が「ｌａｓｔ」であるか否かを判定する。現在の処理対象のフレームが最終フレームでなければ、ＣＰＵ１２ａは「Ｎｏ」と判定して、ステップＳ２３８にてフレーム番号ｉをインクリメントした後、その処理をステップＳ２３３に進め、以下、ステップＳ２３３〜Ｓ２３８からなる一連の処理を再び実行する。一方、現在の処理対象のフレームが最終フレームであれば、ＣＰＵ１２ａは、「Ｙｅｓ」と判定して、ステップＳ２３９にて再生・制御処理を終了し、音響信号分析処理（メインルーチン）に戻り、ステップＳ２４０にて、音響信号分析処理を終了する。これにより、楽曲が先頭から末尾まで滞りなく再生されるとともに、外部機器ＥＸＴ、サウンドシステム１６などが制御される。
【００７３】
上記の第２実施形態によれば、拍点に関するオンセット特徴量ＸＯ及びテンポに関するＢＰＭ特徴量ＸＢを用いて計算された対数観測尤度Ｌの系列が最も尤もらしい確率モデルが選択され、楽曲における拍点及びテンポの推移が同時に推定される。したがって、楽曲における拍点を計算し、その計算結果を用いてテンポを計算する場合に比べて、テンポの推定精度を向上させることができる。
【００７４】
また、「ＢＰＭらしさの分散」の値に応じて制御対象が制御される。すなわち、「ＢＰＭらしさの分散」の値が基準値σｓ２以上であるときには、そのテンポ値の信頼性が低いと判定し、テンポが不安定であるときの所定の処理を実行する。したがって、テンポが不安定であるときに、楽曲のリズムと制御対象の動作が合致しないという事態を回避できる。これにより、制御対象の動作が不自然に感じられることを防止できる。
【００７５】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【００７６】
例えば、第１及び第２実施形態では、音響信号分析装置１０が楽曲を再生しているが、外部機器が楽曲を再生するように構成しても良い。
【００７７】
また、第１及び第２実施形態では、テンポの安定性を、安定であるか不安定であるかという２段階で評価しているが、テンポの安定性をより多段階で評価してもよい。この場合、テンポの安定性の各段階（安定度）に応じて制御対象を制御すればよい。
【００７８】
また、第１実施形態では、４つの単位区間を判定対象区間としているが、判定対象区間は、より多くの単位区間から構成されてもよいし、より少ない単位区間から構成されてもよい。また、判定対象区間として選択される単位区間は時系列的に連続していなくてもよい。例えば、単位区間を時系列的に１つおきに選択してもよい。
【００７９】
また、第１実施形態では、隣り合う単位区間同士のテンポの差に基づいてテンポの安定性を判定しているが、判定対象区間におけるテンポの最大値と最小値の差に基づいてテンポの安定性を判定してもよい。
【００８０】
また、第２実施形態では、観測値としてのオンセット特徴量ＸＯ及びＢＰＭ特徴量ＸＢが同時に観測される確率を表わす観測尤度の系列が最も尤もらしい確率モデルが選択される。しかし、確率モデルの選択基準は、上記実施形態に限られない。例えば、事後分布が最大となるような確率モデルを選択してもよい。
【００８１】
また、第２実施形態では、各フレームの「ＢＰＭらしさの分散」に基づいて各フレームのテンポの安定性を判定しているが。推定した各フレームのテンポの値を用いて、第１実施形態と同様に、複数のフレームにおけるテンポの変化量を計算し、その計算結果に基づいて制御対象を制御してもよい。
【００８２】
また、第２実施形態では、最尤の状態の系列Ｑを計算して、各フレームにおける拍の存在及びテンポの値を決定している。しかし、フレームｔｉにおける尤度Ｃのうち、その値が最大である尤度Ｃに対応する状態ｑｂ，ｎの拍周期ｂ及びフレーム数ｎの値に基づいて、各フレームにおける拍の存在及びテンポの値を決定してもよい。これによれば、最尤の状態の系列Ｑを計算しないので、分析時間を短縮できる。
【００８３】
また、第２実施形態では、説明を簡単にするために、各フレームの長さを１２５ｍｓとしたが、より短く（例えば、５ｍｓ）してもよい。これによれば、拍点及びテンポの推定に関する分解能を向上させることができる。例えば、テンポを１ＢＰＭ刻みで推定できる。
【符号の説明】
【００８４】
１０・・・音響信号分析装置、１１・・・入力操作子、ＸＯ・・・オンセット特徴量、ＸＢ・・・ＢＰＭ特徴量、ｂ・・・拍周期、ｎ・・・フレーム数、ＦＢＢ・・・フィルタバンク、ＴＰ・・・テンプレート
【図１】
2014178395.tif 000003
【図２】
2014178395.tif 000004
【図３】
2014178395.tif 000005
【図４】
2014178395.tif 000006
【図５】
2014178395.tif 000007
【図６】
2014178395.tif 000008
【図７】
2014178395.tif 000009
【図８】
2014178395.tif 000010
【図９】
2014178395.tif 000011
【図１０】
2014178395.tif 000012
【図１１】
2014178395.tif 000013
【図１２】
2014178395.tif 000014
【図１３】
2014178395.tif 000015
【図１４】
2014178395.tif 000016
【図１５】
2014178395.tif 000017
【図１６】
2014178395.tif 000018
【図１７】
2014178395.tif 000019
【図１８】
2014178395.tif 000020
【図１９】
2014178395.tif 000021
【図２０】
2014178395.tif 000022
【図２１】
2014178395.tif 000023
【図２２】
2014178395.tif 000024
【図２３】
2014178395.tif 000025
【図２４】
2014178395.tif 000026
【図２５】
2014178395.tif 000027
【図２６】
2014178395.tif 000028
【図２７】
2014178395.tif 000029