(57)【要約】【課題】音声信号に含まれるビート位置又はビートの種類の検出の精度を向上させることこと。【解決手段】音声信号に含まれるビート位置を検出するビート解析部と、前記ビート解析部により検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算する楽曲構造解析部と、前記楽曲構造解析部により計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線検出部と、を備える情報処理装置を提供する。【選択図】図１
2010122629.tif 000002
【特許請求の範囲】
【請求項１】
音声信号に含まれるビート位置を検出するビート解析部と；
前記ビート解析部により検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算する楽曲構造解析部と；
前記楽曲構造解析部により計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線検出部と；
を備える情報処理装置。
【請求項２】
前記楽曲構造解析部は、
前記ビート区間ごとの音程別の平均エネルギーを用いて所定の特徴量を計算する特徴量計算部と、
前記ビート区間同士で、前記特徴量計算部により算出された前記特徴量の相関を計算する相関計算部と、
前記相関計算部により算出された前記相関に応じて前記類似確率を生成する類似確率生成部と、
を含む、請求項１に記載の情報処理装置。
【請求項３】
前記小節線検出部は、
音声信号から抽出された所定の特徴量に基づいて前記小節線確率を計算する小節線確率計算部と、
前記小節線確率計算部により算出された前記小節線確率を前記類似確率に応じて修正する小節線確率修正部と、
前記小節線確率修正部により修正された前記小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線決定部と、
を含む、請求項１又は２に記載の情報処理装置。
【請求項４】
前記特徴量計算部は、前記音程別の平均エネルギーに含まれる同じ音名の値を複数のオクターブにわたって重み付け加算して前記特徴量を算出する、請求項２に記載の情報処理装置。
【請求項５】
前記相関計算部は、注目するビート区間の周囲に位置する複数のビート区間にわたる前記特徴量を用いて前記ビート区間同士の前記相関を計算する、請求項２に記載の情報処理装置。
【請求項６】
前記小節線確率計算部は、ビート区間ごとのコードの種類又はキーの種類に応じて変動する第１特徴量と、前記音声信号の所定の時間単位ごとにビートが含まれる確率を表すビート確率に応じて変動する第２特徴量とに基づいて、前記小節線確率を計算する、請求項３に記載の情報処理装置。
【請求項７】
前記小節線決定部は、時系列に配置されたビートと各ビートの拍子及び拍数とにより特定されるノードを順に選択して形成される経路のうち、前記小節線確率に応じて変動する評価値を最適化する経路を探索することにより、前記尤もらしい小節線の進行を決定する、請求項３に記載の情報処理装置。
【請求項８】
前記小節線検出部は、
前記小節線決定部により決定された小節線の進行に第１の拍子と第２の拍子が共に含まれていた場合に、出現頻度のより低いいずれかの拍子を探索の対象から除外して経路探索を再実行する小節線再決定部、
をさらに含む、請求項３に記載の情報処理装置。
【請求項９】
前記ビート解析部は、
前記音声信号の所定の時間単位ごとにビートが含まれる確率を表すビート確率に基づいて、前記音声信号に含まれる発音時点であるオンセットを検出するオンセット検出部と、
前記オンセット検出部により検出されたオンセットごとに、想定し得るビート間隔を有するビートに当該オンセットが一致している度合いを表すビートスコアを計算するビートスコア計算部と、
前記ビートスコア計算部により算出された前記ビートスコアに基づいて、尤もらしいテンポ変動を示す前記オンセットの最適経路を探索するビート探索部と、
前記最適経路上のオンセットの位置と前記ビート間隔に応じて補完した位置とをビート位置として決定するビート決定部と、
を含む、請求項１に記載の情報処理装置。
【請求項１０】
前記ビート解析部は、
前記ビート探索部により決定された前記最適経路におけるテンポの変動が小さい場合に、探索範囲を限定して前記最適経路の探索を再実行するビート再探索部、
をさらに含む、請求項９に記載の情報処理装置。
【請求項１１】
前記ビート探索部は、時間軸に沿って前記オンセットと前記ビート間隔とにより特定されるノードを順に選択して形成される経路のうち、前記ビートスコアに応じて変動する評価値を用いて前記最適経路を決定する、請求項９に記載の情報処理装置。
【請求項１２】
前記ビート探索部は、さらにノードの遷移の前後でのテンポの変化量に応じて変動する評価値を用いて前記最適経路を決定する、請求項１１に記載の情報処理装置。
【請求項１３】
前記ビート探索部は、さらに遷移の前後のオンセットの間隔と遷移元又は遷移先のノードのビート間隔との間の整合の度合いに応じて変動する評価値を用いて前記最適経路を決定する、請求項１１に記載の情報処理装置。
【請求項１４】
前記ビート探索部は、さらにノードの遷移においてスキップされたオンセットの数に応じて変動する評価値を用いて前記最適経路を決定する、請求項１１に記載の情報処理装置。
【請求項１５】
前記ビート解析部は、
予め学習により取得された推定テンポ判別式を用いて前記音声信号の波形から推定される推定テンポに応じて、前記ビート決定部により決定された前記ビート位置を補正するテンポ補正部、
をさらに含む、請求項９に記載の情報処理装置。
【請求項１６】
前記テンポ補正部は、複数の補正倍率について補正後のビート位置における平均ビート確率と前記推定テンポとを用いて補正後のテンポの尤もらしさを評価することにより、前記ビート位置を補正する補正倍率を決定する、請求項１５に記載の情報処理装置。
【請求項１７】
音声信号の所定の時間単位ごとにビートが含まれる確率を表すビート確率に基づいて、前記音声信号に含まれる発音時点であるオンセットを検出するオンセット検出部と、
前記オンセット検出部により検出されたオンセットごとに、想定し得るビート間隔を有するビートに当該オンセットが一致している度合いを表すビートスコアを計算するビートスコア計算部と、
前記ビートスコア計算部により算出された前記ビートスコアに基づいて、尤もらしいテンポ変動を示す前記オンセットの最適経路を探索するビート探索部と、
前記最適経路上のオンセットの位置と前記ビート間隔に応じて補完した位置とをビート位置として決定するビート決定部と、
を備える情報処理装置。
【請求項１８】
音声信号に含まれるビート位置を検出するステップと；
検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算するステップと；
計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定するステップと；
を含む音声解析方法。
【請求項１９】
情報処理装置を制御するコンピュータを：
音声信号に含まれるビート位置を検出するビート解析部と；
前記ビート解析部により検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算する楽曲構造解析部と；
前記楽曲構造解析部により計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線検出部と；
として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、音声解析方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、演奏された楽曲の音声を記録した音声信号を解析して、その楽曲に含まれるビート（拍）の位置やコード（和音）の進行、小節線の進行などを検出する技術が開発されている。
【０００３】
例えば、下記特許文献１では、音声信号から楽曲に含まれるビート位置を検出し、検出したビート位置ごとにコード判別用の特徴量を抽出した後、抽出した特徴量からビート位置ごとのコードの種類を判別する信号処理装置が開示されている。
【０００４】
【特許文献１】特開２００８−１０２４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際に演奏される楽曲のテンポには、譜面上に現れるテンポの変動だけでなく、演奏者や指揮者のアレンジなどにより譜面上に現れないテンポの変動も含まれる。そうした場合に、従来の楽曲解析技術では、テンポの変動を反映してビートの位置や種類（例えば拍子、拍数など）を正確に検出することが困難であった。
【０００６】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、音声信号に含まれるビート位置又はビートの種類の検出の精度を向上させることのできる、新規かつ改良された情報処理装置、音声解析方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、音声信号に含まれるビート位置を検出するビート解析部と、前記ビート解析部により検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算する楽曲構造解析部と、前記楽曲構造解析部により計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線検出部と、を備える情報処理装置が提供される。
【０００８】
また、前記楽曲構造解析部は、前記ビート区間ごとの音程別の平均エネルギーを用いて所定の特徴量を計算する特徴量計算部と、前記ビート区間同士で、前記特徴量計算部により算出された前記特徴量の相関を計算する相関計算部と、前記相関計算部により算出された前記相関に応じて前記類似確率を生成する類似確率生成部と、を含んでもよい。
【０００９】
また、前記小節線検出部は、音声信号を解析して抽出される所定の特徴量に基づいて前記小節線確率を計算する小節線確率計算部と、前記小節線確率計算部により算出された前記小節線確率を前記類似確率に応じて修正する小節線確率修正部と、前記小節線確率修正部により修正された前記小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線決定部と、を含んでもよい。
【００１０】
また、前記特徴量計算部は、前記音程別の平均エネルギーに含まれる同じ音名の値を複数のオクターブにわたって重み付け加算して前記特徴量を算出してもよい。
【００１１】
また、前記相関計算部は、注目するビート区間の周囲に位置する複数のビート区間にわたる前記特徴量を用いて前記ビート区間同士の前記相関を計算してもよい。
【００１２】
また、前記小節線確率計算部は、ビート区間ごとのコードの種類又はキーの種類に応じて変動する第１特徴量と、前記音声信号の所定の時間単位ごとにビートが含まれる確率を表すビート確率に応じて変動する第２特徴量とに基づいて、前記小節線確率を計算してもよい。
【００１３】
また、前記小節線決定部は、時系列に配置されたビートと各ビートの拍子及び拍数とにより特定されるノードを順に選択して形成される経路のうち、前記小節線確率に応じて変動する評価値を最適化する経路を探索することにより、前記尤もらしい小節線の進行を決定してもよい。
【００１４】
また、前記小節線検出部は、前記小節線決定部により決定された小節線の進行に第１の拍子と第２の拍子が共に含まれていた場合に、出現頻度のより低いいずれかの拍子を探索の対象から除外して経路探索を再実行する小節線再決定部、をさらに含んでもよい。
【００１５】
また、前記ビート解析部は、前記音声信号の所定の時間単位ごとにビートが含まれる確率を表すビート確率に基づいて、前記音声信号に含まれる発音時点であるオンセットを検出するオンセット検出部と、前記オンセット検出部により検出されたオンセットごとに、想定し得るビート間隔を有するビートに当該オンセットが一致している度合いを表すビートスコアを計算するビートスコア計算部と、前記ビートスコア計算部により算出された前記ビートスコアに基づいて、尤もらしいテンポ変動を示す前記オンセットの最適経路を探索するビート探索部と、前記最適経路上のオンセットの位置と前記ビート間隔に応じて補完した位置とをビート位置として決定するビート決定部と、を含んでもよい。
【００１６】
また、前記ビート解析部は、前記ビート探索部により決定された前記最適経路におけるテンポの変動が小さい場合に、探索範囲を限定して前記最適経路の探索を再実行するビート再探索部、をさらに含んでもよい。
【００１７】
また、前記ビート探索部は、時間軸に沿って前記オンセットと前記ビート間隔とにより特定されるノードを順に選択して形成される経路のうち、前記ビートスコアに応じて変動する評価値を用いて前記最適経路を決定してもよい。
【００１８】
また、前記ビート探索部は、さらにノードの遷移の前後でのテンポの変化量に応じて変動する評価値を用いて前記最適経路を決定してもよい。
【００１９】
また、前記ビート探索部は、さらに遷移の前後のオンセットの間隔と遷移元又は遷移先のノードのビート間隔との間の整合の度合いに応じて変動する評価値を用いて前記最適経路を決定してもよい。
【００２０】
また、前記ビート探索部は、さらにノードの遷移においてスキップされたオンセットの数に応じて変動する評価値を用いて前記最適経路を決定してもよい。
【００２１】
また、前記ビート解析部は、予め学習により取得された推定テンポ判別式を用いて前記音声信号の波形から推定される推定テンポに応じて、前記ビート決定部により決定された前記ビート位置を補正するテンポ補正部、をさらに含んでもよい。
【００２２】
また、前記テンポ補正部は、複数の補正倍率について補正後のビート位置における平均ビート確率と前記推定テンポとを用いて補正後のテンポの尤もらしさを評価することにより、前記ビート位置を補正する補正倍率を決定してもよい。
【００２３】
上記課題を解決するために、本発明の別の観点によれば、音声信号の所定の時間単位ごとにビートが含まれる確率を表すビート確率に基づいて、前記音声信号に含まれる発音時点であるオンセットを検出するオンセット検出部と、前記オンセット検出部により検出されたオンセットごとに、想定し得るビート間隔を有するビートに当該オンセットが一致している度合いを表すビートスコアを計算するビートスコア計算部と、前記ビートスコア計算部により算出された前記ビートスコアに基づいて、尤もらしいテンポ変動を示す前記オンセットの最適経路を探索するビート探索部と、前記最適経路上のオンセットの位置と前記ビート間隔に応じて補完した位置とをビート位置として決定するビート決定部と、を備える情報処理装置が提供される。
【００２４】
上記課題を解決するために、本発明の別の観点によれば、音声信号に含まれるビート位置を検出するステップと、検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算するステップと、計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定するステップと、を含む音声解析方法が提供される。
【００２５】
上記課題を解決するために、本発明の別の観点によれば、情報処理装置を制御するコンピュータを、音声信号に含まれるビート位置を検出するビート解析部と、前記ビート解析部により検出された各ビート位置により区分されるビート区間同士の音声の内容が類似している確率である類似確率を計算する楽曲構造解析部と、前記楽曲構造解析部により計算された前記類似確率に応じて決定される小節線確率であって、各ビートが何拍子何拍目であるかを表す当該小節線確率に基づいて、前記音声信号の尤もらしい小節線の進行を決定する小節線検出部と、として機能させるための、プログラムが提供される。
【発明の効果】
【００２６】
以上説明したように、本発明に係る情報処理装置、音声解析方法、及びプログラムによれば、音声信号に含まれるビート位置又はビートの種類の検出の精度を向上させることができる。
【発明を実施するための最良の形態】
【００２７】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２８】
また、以下の順序にしたがって当該「発明を実施するための最良の形態」を説明する。
１．一実施形態に係る情報処理装置の全体の構成
２．一実施形態に係る情報処理装置の各部の説明
２−１．ログスペクトル変換部
２−２．ビート確率算出部
２−３．ビート解析部
２−４．楽曲構造解析部
２−５．コード確率算出部
２−６．キー検出部
２−７．小節線検出部
２−８．コード進行検出部
３．本実施形態に係る情報処理装置の特徴
４．まとめ
【００２９】
＜１．一実施形態に係る情報処理装置の全体の構成＞
まず、本発明の一実施形態に係る情報処理装置１００の全体的な構成について説明する。
【００３０】
図１は、本発明の一実施形態に係る情報処理装置１００の論理的な構成を示すブロック図である。図１を参照すると、情報処理装置１００は、ログスペクトル変換部１１０、ビート確率算出部１２０、ビート解析部１３０、楽曲構造解析部１５０、コード確率算出部１６０、キー検出部１７０、小節線検出部１８０、及びコード進行検出部１９０を備える。
【００３１】
情報処理装置１００は、まず、楽曲の音声が記録された任意の形式の音声信号を取得する。情報処理装置１００が取り扱う音声信号のフォーマットは、ＷＡＶ、ＡＩＦＦ、ＭＰ３、ＡＴＲＡＣなどの圧縮型又は非圧縮型の任意のフォーマットであってよい。
【００３２】
情報処理装置１００は、かかる音声信号を入力信号とし、図１に示した各部による処理を実行する。情報処理装置１００による音声信号の処理結果には、例えば、音声信号に含まれるビートの時間軸上の位置、小節線の位置、各ビート位置におけるキー又はコードなどが含まれ得る。
【００３３】
情報処理装置１００は、例えば、ＰＣ（Personal  Computer）やワークステーションなどの汎用的なコンピュータであってよい。また、情報処理装置１００は、携帯電話端末、携帯情報端末、ゲーム端末、音楽再生機、又はテレビジョン受像機などの任意のデジタル機器であってよい。さらに、情報処理装置１００は、楽曲処理専用の装置であってもよい。
【００３４】
以下、図１に示した情報処理装置１００の各部について詳細に説明する。
【００３５】
＜２．一実施形態に係る情報処理装置の各部の説明＞
［２−１．ログスペクトル変換部］
ログスペクトル変換部１１０は、入力信号である音声信号の波形を、時間と音程の二次元で表されるログスペクトルに変換する。音声信号の波形をログスペクトルに変換する手法としては、例えば、特開２００５−２７５０６８に記載された手法を用いることができる。
【００３６】
特開２００５−２７５０６８に記載された手法では、まず、音声信号が帯域分割とダウンサンプリングによって複数のオクターブの信号に分割される。次に、各オクターブの信号から、１２の音程の周波数帯域を通過させる帯域通過フィルタによって、それぞれ１２の音程の信号が抽出される。その結果、複数のオクターブにわたる１２音ごとの音のエネルギーを表すログスペクトルが得られる。
【００３７】
図２は、ログスペクトル変換部１１０により出力されるログスペクトルの一例を示す説明図である。
【００３８】
図２の縦軸を参照すると、入力された音声信号は４つのオクターブに分割され、さらに各オクターブは、“Ｃ”、“Ｃ＃”、“Ｄ”、“Ｄ＃”、“Ｅ”、“Ｆ”、“Ｆ＃”、“Ｇ”、“Ｇ＃”、“Ａ”、“Ａ＃”、及び“Ｂ”の１２の音程にそれぞれ分割されている。一方、図２の横軸は、音声信号が時間軸に沿ってサンプリングされた際のフレーム番号を表している。例えば、音声信号がサンプリング周波数１２８［Ｈｚ］でサンプリングされた場合には、１フレーム時間は１［ｓｅｃ］／１２８＝７．８１２５［ｍｓｅｃ］に相当する。
【００３９】
図２の時間−音程の二次元平面上にプロットされた色の濃淡は、時間軸上の各位置における各音程のエネルギーの強さを表す。例えば、図２において、第１０番目のフレームにおける下から２番目のオクターブの音程Ｃ（図中Ｓ１）は濃くプロットされており、音のエネルギーが強い、即ちその音が強く発せられていることを表している。
【００４０】
なお、ログスペクトル変換部１１０により出力されるログスペクトルは、かかる例に限定されない。図３は、図２とは異なる音声信号を８つのオクターブに分割したログスペクトルの例を示している。
【００４１】
［２−２．ビート確率算出部］
ビート確率算出部１２０は、ログスペクトル変換部１１０から入力されたログスペクトルの所定の時間単位（例えば１フレーム）ごとに、その時間単位にビートが含まれる確率（以下、ビート確率という）を算出する。なお、所定の時間単位を１フレームとした場合には、ビート確率とは各フレームがビート位置（ビートの時間軸上の位置）に一致している確率とみなすことができる。ビート確率の算出には、例えば、特開２００８−１２３０１１に記載された学習アルゴリズムを応用した機械学習の結果取得されるビート確率算出式を用いる。
【００４２】
特開２００８−１２３０１１に記載された手法では、まず、学習装置に音声信号などのコンテンツデータと当該コンテンツデータから抽出されるべき特徴量の教師データとの組が供給される。次に、学習装置は、コンテンツデータから特徴量を計算するための特徴量抽出式を、ランダムに選択したオペレータを結合することにより複数生成する。そして、学習装置は、生成した特徴量抽出式に従って計算した特徴量を入力した教師データと比較して評価する。さらに、学習装置は、特徴量抽出式の評価結果に基づいて、次の世代の特徴量抽出式を生成する。このような特徴量抽出式の生成と評価のサイクルを複数回繰り返すことにより、最終的にコンテンツデータから教師データを高い精度で抽出可能な特徴量抽出式を得ることができる。
【００４３】
ビート確率算出部１２０で用いるビート確率算出式は、かかる学習アルゴリズムを応用し、図４に示すような学習処理によって取得される。なお、図４では、ビート確率を算出する時間単位を１フレームとする例について示している。
【００４４】
まず、学習アルゴリズムに、ビート位置が既知である楽曲の音声信号から変換されたログスペクトルの断片（以下、部分ログスペクトルという）と、各部分ログスペクトルについての教師データとしてのビート確率とを供給する。ここで、部分ログスペクトルのウィンドウ幅は、ビート確率の算出の精度と処理コストのトレードオフを考慮して定められる。例えば、部分ログスペクトルのウィンドウ幅は、ビート確率を計算するフレームの前後７フレーム（即ち計１５フレーム）としてもよい。
【００４５】
また、教師データとしてのビート確率とは、例えば、各部分ログスペクトルの中央のフレームにビートが含まれるか否かを、既知のビート位置に基づいて真値（１）又は偽値（０）で表したデータである。ここでは小節の位置は考慮されず、中央のフレームがビート位置に該当すればビート確率は１、該当しなければビート確率は０となる。図４の例では、部分ログスペクトルＷａ、Ｗｂ、Ｗｃ…Ｗｎに対応するビート確率は、それぞれ１、０、１、…、０として与えられている。
【００４６】
このような入力データと教師データの複数の組に基づいて、上述した学習アルゴリズムにより、部分ログスペクトルからビート確率を算出するためのビート確率算出式（Ｐ（Ｗ））が予め取得される。
【００４７】
そして、ビート確率算出部１２０は、入力されたログスペクトルの１フレームごとに前後数フレームをウィンドウ幅とする部分ログスペクトルを切り出し、学習の結果得られたビート確率算出式を適用してビート確率を順次算出する。
【００４８】
図５は、ビート確率算出部１２０により算出されるビート確率の一例を示す説明図である。
【００４９】
図５を参照すると、まず図５（Ａ）は、ログスペクトル変換部１１０からビート確率算出部１２０へ入力されるログスペクトルの一例である。また、図５（Ｂ）は、図５（Ａ）のログスペクトルからビート確率算出部１２０により算出されるビート確率を、時間軸に沿って折れ線状に示している。例えば、フレーム位置Ｆ１では、ログスペクトルから部分ログスペクトルＷ１が切り出され、ビート確率算出式によりビート確率は０．９５と計算されている。一方、フレーム位置Ｆ２では、ログスペクトルから部分ログスペクトルＷ２が切り出され、ビート確率算出式によりビート確率は０．１と計算されている。即ち、フレーム位置Ｆ１はビート位置に該当している可能性が高く、フレーム位置Ｆ２はビート位置に該当している可能性が低いことが分かる。
【００５０】
ビート確率算出部１２０によりこのように算出された各フレームにおけるビート確率は、後述するビート解析部１３０及び小節線検出部１８０へ出力される。
【００５１】
なお、ビート確率算出部１２０により使用されるビート確率算出式は、他の学習アルゴリズムにより学習されていてもよい。但し、ログスペクトルには、一般的に、例えば打楽器によるスペクトル、発音によるスペクトルの発生、コード変化によるスペクトルの変化など、多様なパラメータが含まれる。打楽器によるスペクトルであれば、打楽器が鳴らされた時点がビート位置である確率が高い。一方、発声によるスペクトルであれば、発声が開始され時点がビート位置である確率が高い。そうした多様なパラメータを総合的に用いてビート確率を高い精度で算出するためには、特開２００８−１２３０１１に記載された学習アルゴリズムを用いるのが好適である。
【００５２】
［２−３．ビート解析部］
ビート解析部１３０は、ビート確率算出部１２０から入力されるビート確率に基づいて、音声信号に含まれるビートの時間軸上の位置、即ちビート位置を決定する。
【００５３】
図６は、ビート解析部１３０のより詳細な構成を示すブロック図である。図６を参照すると、ビート解析部１３０は、オンセット検出部１３２、ビートスコア計算部１３４、ビート探索部１３６、一定テンポ判定部１３８、一定テンポ用ビート再探索部１４０、ビート決定部１４２、及びテンポ補正部１４４を含む。
【００５４】
［２−３−１．オンセット検出部］
オンセット検出部１３２は、図５を用いて説明した、ビート確率算出部１２０から入力されるビート確率に基づいて、音声信号に含まれるオンセットを検出する。なお、本明細書において、オンセットとは、音声信号の中で音が発せられた時点を指し、より具体的には、ビート確率が所定の閾値以上であって極大値をとる点として扱われる。
【００５５】
図７は、ある音声信号について算出されたビート確率から検出されるオンセットの一例を示す説明図である。
【００５６】
図７には、図５（Ｂ）と同様、ビート確率算出部１２０により算出されたビート確率が、時間軸に沿って折れ線状に示されている。かかるビート確率において、極大値をとる点はフレームＦ３、Ｆ４、Ｆ５の３点である。このうち、フレームＦ３及びＦ５については、その時点でのビート確率は予め与えられる所定の閾値Ｔｈ１よりも大きい。一方、フレームＦ４の時点でのビート確率は、当該閾値Ｔｈ１よりも小さい。この場合、フレームＦ３及びＦ５の２点がオンセットとして検出される。
【００５７】
図８は、オンセット検出部１３２によるオンセット検出処理の流れの一例を示すフローチャートである。
【００５８】
図８を参照すると、オンセット検出部１３２は、まずフレームごとに算出されたビート確率について１番目のフレームから順次ループさせる（Ｓ１３２２）。そして、オンセット検出部１３２は、各フレームについて、ビート確率が所定の閾値よりも大きいか否か（Ｓ１３２４）、及びビート確率が極大を示しているか否か（Ｓ１３２６）を判定する。ここでビート確率が所定の閾値よりも大きく、かつビート確率が極大を示していれば、処理はＳ１３２８へ進む。一方、ビート確率が所定の閾値よりも大きくなく、又はビート確率が極大を示していなければ、Ｓ１３２８の処理はスキップされる。Ｓ１３２８では、オンセット位置のリストに現在時刻（又はフレーム番号）が追加される（Ｓ１３２８）。その後、全てのフレームについての処理が終了した時点で、ループは終了する（Ｓ１３３０）。
【００５９】
以上のようなオンセット検出部１３２によるオンセット検出処理により、音声信号に含まれるオンセット位置のリスト、即ち各オンセットに対応する時刻又はフレーム番号のリストが出力される。
【００６０】
図９は、オンセット検出部１３２により検出されたオンセットの位置を、ビート確率に対応させて示した説明図である。
【００６１】
図９では、ビート確率の折れ線の上に、オンセット検出部１３２により検出されたオンセットの位置を丸印で示している。ここでは、閾値Ｔｈ１よりも大きいビート確率の極大値を示した１５個のオンセットが検出されたことが理解される。オンセット検出部１３２により検出されたオンセット位置のリストは、次に説明するビートスコア計算部１３４へ出力される。
【００６２】
［２−３−２．ビートスコア計算部］
ビートスコア計算部１３４は、オンセット検出部１３２により検出された各オンセットについて、それぞれ一定のテンポ（又は一定のビート間隔）を有する何らかのビートに一致している度合いを表すビートスコアを計算する。
【００６３】
図１０は、ビートスコア計算部１３４によるビートスコア計算処理について説明するための説明図である。
【００６４】
図１０を参照すると、オンセット検出部１３２により検出されたオンセットのうち、フレーム位置Ｆｋ（フレーム番号ｋ）に対応するオンセットが注目オンセットとして設定されている。また、フレーム位置Ｆｋから所定の間隔ｄの整数倍だけ離れた一連のフレーム位置Ｆｋ−３、Ｆｋ−２、Ｆｋ−１、Ｆｋ、Ｆｋ＋１、Ｆｋ＋２、Ｆｋ＋３が示されている。本明細書では、このような所定の間隔ｄをシフト量、シフト量ｄの整数倍離れたフレーム位置をシフト位置という。そして、ビート確率が計算されたフレームの集合Ｆに含まれる全てのシフト位置（…Ｆｋ−３、Ｆｋ−２、Ｆｋ−１、Ｆｋ、Ｆｋ＋１、Ｆｋ＋２、Ｆｋ＋３…）におけるビート確率の和を、当該注目オンセットのビートスコアとする。即ち、フレーム位置Ｆｉにおけるビート確率をＰ（Ｆｉ）とすると、注目オンセットのフレーム番号ｋ及びシフト量ｄに依存するビートスコアＢＳ（ｋ，ｄ）は、次式で表される。
【００６５】
【数１】
2010122629.tif 000003
【００６６】
なお、式（１）により算出されるビートスコアＢＳ（ｋ，ｄ）は、音声信号のｋ番目のフレームに位置するオンセットが、シフト量ｄをビート間隔とする一定のテンポに乗っている可能性の高さを表すスコアということができる。
【００６７】
図１１は、ビートスコア計算部１３４によるビートスコア計算処理の流れの一例を示すフローチャートである。
【００６８】
図１１を参照すると、ビートスコア計算部１３４は、まずオンセット検出部１３２により検出されたオンセットについて、１番目のオンセットから順にループさせる（Ｓ１３２２）。さらに、ビートスコア計算部１３４は、注目オンセットに関し、全てのシフト量ｄについてループさせる（Ｓ１３４４）。ここでループの対象となるシフト量ｄは、演奏に使用され得る範囲の全てのビートの間隔の値である。そして、ビートスコア計算部１３４は、ビートスコアＢＳ（ｋ，ｄ）を初期化する（即ち、ビートスコアＢＳ（ｋ，ｄ）にゼロを代入する）（Ｓ１３４６）。次に、ビートスコア計算部１３４は、注目オンセットのフレーム位置Ｆｄをシフトさせるシフト係数ｎについてループさせる（Ｓ１３４８）。そして、ビートスコア計算部１３４は、各シフト位置におけるビート確率Ｐ（Ｆｋ＋ｎｄ）を、ビートスコアＢＳ（ｋ，ｄ）に順次加算する（Ｓ１３５０）。その後、全てのシフト係数ｎについてループが終了すると（Ｓ１３５２）、ビートスコア計算部１３４は、注目オンセットのフレーム位置（フレーム番号ｋ）、シフト量ｄ、及びビートスコアＢＳ（ｋ，ｄ）を記録する（Ｓ１３５４）。ビートスコア計算部１３４は、このようなビートスコアＢＳ（ｋ，ｄ）の計算を、全てのオンセットの全てのシフト量について繰り返す（Ｓ１３５６、Ｓ１３５８）。
【００６９】
以上のようなビートスコア計算部１３４によるビートスコア計算処理により、オンセット検出部１３２により検出された全てのオンセットについて、複数のシフト量ｄにわたるビートスコアＢＳ（ｋ，ｄ）が出力される。
【００７０】
図１２は、一例として、ビートスコア計算部１３４により出力されるビートスコアを可視化したビートスコア分布図である。
【００７１】
図１２において、横軸には、オンセット検出部１３２により検出されたオンセットが時系列で順に並べられている。一方、図１２の縦軸は、各オンセットについてビートスコアを算出したシフト量を表す。また、図中の各点の色の濃淡は、そのオンセットについてそのシフト量で算出されたビートスコアの大きさを表す。かかるビートスコア分布図において、例えば、シフト量ｄ１の近辺では、全てのオンセットにわたってビートスコアが高くなっている。これは、例えばシフト量ｄ１に相当するテンポで楽曲が演奏されたと仮定すれば、検出されたオンセットの多くがビートに一致する可能性が高いことを意味している。ビートスコア計算部１３４により計算されたビートスコアは、次に説明するビート探索部１３６へ出力される。
【００７２】
［２−３−３．ビート探索部］
ビート探索部１３６は、ビートスコア計算部１３４により計算されたビートスコアに基づいて、尤もらしいテンポ変動を示すオンセット位置の経路を探索する。ビート探索部１３６による経路探索の手法としては、例えば、隠れマルコフモデルに基づくビタビアルゴリズムを用いることができる。
【００７３】
図１３は、ビート探索部１３６における経路探索について説明するための説明図である。
【００７４】
ビート探索部１３６による経路探索にビタビアルゴリズムを適用する場合、時間軸（図１３の横軸）の単位として、図１２に関連して説明したオンセット番号を用いる。また、観測系列（図１３の縦軸）として、ビートスコアの算出に使用したシフト量を用いる。
【００７５】
即ち、ビート探索部１３６は、ビートスコア計算部１３４においてビートスコアを計算したオンセットとシフト量の全ての組合せの１つ１つを、経路探索の対象のノードとする。なお、上述したように、各ノードのシフト量は、その意味において各ノードについて想定されるビート間隔に等しい。そこで、以下の説明では、各ノードのシフト量をビート間隔と言い換える。
【００７６】
このようなノードに対し、ビート探索部１３６は、時間軸に沿っていずれかのノードを順に選択していき、選択された一連のノードよりなる経路を後に説明する評価値を用いて評価する。このとき、ビート探索部１３６は、ノードの選択においてオンセットをスキップすることを許可される。例えば、図１３において、ｋ−１番目のオンセットの次に、ｋ番目のオンセットがスキップされ、ｋ＋１番目のオンセットが選択されている。これは、オンセットの中にビートであるオンセットとビートでないオンセットが通常混在しており、ビートでないオンセットを経由しない経路も含めて、尤もらしい経路を探索しなければならないためである。
【００７７】
経路の評価には、例えば、（１）ビートスコア、（２）テンポ変化スコア、（３）オンセット移動スコア、及び（４）スキップペナルティの４つの評価値を用いることができる。このうち、（１）ビートスコアは、各ノードについてビートスコア計算部１３４により計算されたビートスコアである。一方、（２）テンポ変化スコア、（３）オンセット移動スコア、及び（４）スキップペナルティは、ノード間の遷移に対して与えられる。
【００７８】
ノード間の遷移に対して与えられる評価値のうち、（２）テンポ変化スコアは、楽曲の中でテンポは通常緩やかに変動するものであるという経験的な知識に基づいて与えられる評価値である。即ち、経路選択におけるノード間の遷移に際し、遷移前のノードのビート間隔と遷移後のノードのビート間隔との差が小さい程、テンポ変化スコアには高い値が与えられる。
【００７９】
図１４は、テンポ変化スコアの一例を示す説明図である。
【００８０】
図１４において、現在、ノードＮ１が選択されている。そして、ビート探索部１３６は、次のノードとしてノードＮ２〜Ｎ５のいずれかを選択する可能性がある（それ以外のノードを選択する可能性もあるが、説明の便宜上、ここではノードＮ２〜Ｎ５の４つのノードについて述べる）。ここでビート探索部１３６がノードＮ４を選択した場合、ノードＮ１とノードＮ４の間にはビート間隔の差は無いため、テンポ変化スコアとしては最も高い値が与えられる。一方、ビート探索部１３６がノードＮ３又はＮ５を選択した場合、ノードＮ１とノードＮ３又はＮ５との間にはビート間隔に差があり、ノードＮ４を選択した場合と比べて低いテンポ変化スコアが与えられる。また、ビート探索部１３６がノードＮ２を選択した場合、ノードＮ１とノードＮ２との間のビート間隔の差はノードＮ３又はＮ５を選択した場合よりも大きいため、さらに低いテンポ変化スコアが与えられる。
【００８１】
次に、（３）オンセット移動スコアは、遷移の前後のノードのオンセット位置の間隔が遷移元のノードのビート間隔と整合しているかに応じて与えられる評価値である。
【００８２】
図１５は、オンセット移動スコアの一例を示す説明図である。
【００８３】
図１５（Ａ）では、現在、ｋ番目のオンセットのビート間隔ｄ２のノートＮ６が選択されている。また、ビート探索部１３６が次に選択するノードのうち、２つのノードＮ７及びＮ８も示されている。このうち、ノードＮ７はｋ＋１番目のオンセットのノードであり、ｋ番目のオンセットとｋ＋１番目のオンセットの間隔（例えば、フレーム番号の差）はＤ７である。一方、ノードＮ８はｋ＋２番目のオンセットのノードであり、ｋ番目のオンセットとｋ＋２番目のオンセットの間隔はＤ８である。
【００８４】
ここで、経路上の全てのノードが一定のテンポにおけるビート位置に必ず一致している理想的な経路を仮定すると、隣り合うノード間のオンセット位置の間隔は、各ノードのビート間隔の整数倍（休符が無ければ等倍）となるはずである。そこで、図１５（Ｂ）に示すように、現在のノードＮ６との間でオンセット位置の間隔がノードＮ６のビート間隔ｄ２の整数倍に近いほど高いオンセット移動スコアを定義する。図１５（Ｂ）の例では、ノードＮ６とノードＮ７の間の間隔Ｄ７よりも、ノードＮ６とノードＮ８の間の間隔Ｄ８の方がノードＮ６のビート間隔ｄ２の整数倍に近いため、ノードＮ６からノードＮ８への遷移に、より高いオンセット移動スコアが与えられている。
【００８５】
次に、（４）スキップペナルティは、ノードの遷移におけるオンセットの過剰なスキップを抑制するための評価値である。即ち、１度の遷移でオンセットを多くスキップするほど低いスコアが、スキップしないほど高いスコアが与えられる。なお、ここではスコアが低いほどペナルティが大きいことを意味する。
【００８６】
図１６は、スキップペナルティの一例を示す説明図である。
【００８７】
図１６では、現在、ｋ番目のオンセットのノートＮ９が選択されている。また、ビート探索部１３６が次に選択するノードのうち、３つのノードＮ１０、Ｎ１１及びＮ１２も示されている。このうち、それぞれノードＮ１０はｋ＋１番目、ノードＮ１１はｋ＋２番目、ノードＮ１２はｋ＋３番目のオンセットのノードである。即ち、ノードＮ９からノードＮ１０へ遷移する場合には、オンセットのスキップは発生しない。一方、ノードＮ９からノードＮ１１へ遷移する場合には、ｋ＋１番目のオンセットがスキップされる。また、ノードＮ９からノードＮ１２へ遷移する場合には、ｋ＋１番目及びｋ＋２番目のオンセットがスキップされる。このとき、スキップペナルティの値は、ノードＮ９からノードＮ１０へ遷移する場合には相対的に高い値、ノードＮ９からノードＮ１１へ遷移する場合には中程度の値、ノードＮ９からノードＮ１２へ遷移する場合にはより低い値が与えられる。それにより、経路選択に際して、ノード間の間隔を一定とするためにより多くのオンセットがスキップされてしまうという現象を防ぐことができる。
【００８８】
ここまで、ビート探索部１３６において探索される経路の評価に用いられる４つの評価値について説明した。図１３を用いて説明した経路の評価は、選択された経路について、その経路に含まれる各ノード又はノード間の遷移に対して与えられる上記（１）〜（４）の評価値を順次乗算することにより行われる。そして、ビート探索部１３６は、想定し得る全ての経路の中で、各経路内での評価値の積が最も高い経路を最適な経路として決定する。
【００８９】
図１７は、ビート探索部１３６により最適な経路として決定された経路の一例を示す説明図である。
【００９０】
図１７では、図１２に示したビートスコア分布図の上に、ビート探索部１３６により決定された最適経路が点線枠で示されている。図１７を参照すると、同図の例においてビート探索部１３６により探索された楽曲のテンポは、ビート間隔ｄ３を中心に変動していることが分かる。ビート探索部１３６により決定された最適経路（最適経路に含まれるノードのリスト）は、次に説明する一定テンポ判定部１３８、一定テンポ用ビート再探索部１４０、及びビート決定部１４２へ出力される。
【００９１】
［２−３−４．一定テンポ判定部］
一定テンポ判定部１３８は、ビート探索部１３６により決定された最適経路が、ビート間隔（即ち、各ノードについて想定されるビート間隔）の分散の小さい一定のテンポを示しているか否かを判定する。より具体的には、一定テンポ判定部１３８は、まず、ビート探索部１３６から入力された最適経路に含まれるノードのビート間隔の集合について分散を計算する。そして、一定テンポ判定部１３８は、算出された分散が予め与えられる所定の閾値よりも小さい場合にはテンポは一定と判定し、所定の閾値よりも大きい場合にはテンポは一定でないと判定する。
【００９２】
図１８は、一定テンポ判定部１３８による判定結果の２つの例を示す説明図である。
【００９３】
図１８（Ａ）を参照すると、点線枠で囲まれたオンセット位置の最適経路のビート間隔は、時間に応じて変動している。このような経路については、一定テンポ判定部１３８による閾値判定の結果、テンポは一定でないと判定され得る。一方、図１８（Ｂ）を参照すると、点線枠で囲まれたオンセット位置の最適経路のビート間隔は、楽曲全体にわたってほぼ一定である。このような経路については、一定テンポ判定部１３８による閾値判定の結果、テンポは一定であると判定され得る。一定テンポ判定部１３８による閾値判定の結果は、一定テンポ用ビート再探索部１４０へ出力される。
【００９４】
［２−３−５．一定テンポ用ビート再探索部］
一定テンポ用ビート再探索部１４０は、ビート探索部１３６から出力された最適経路が一定テンポ判定部１３８により一定のテンポを示していると判定された場合に、最も頻度の高いビート間隔の周辺のみに探索の対象のノードを限定して経路探索を再実行する。
【００９５】
図１９は、一定テンポ用ビート再探索部１４０による経路の再探索処理について説明するための説明図である。
【００９６】
図１９を参照すると、図１３と同様に、ビート間隔を観測系列とする時間軸（オンセット番号）に沿ったノードの集合が示されている。ここで、ビート探索部１３６により最適経路と決定された経路に含まれるノードのビート間隔の最頻値がｄ４であり、その経路は一定テンポ判定部１３８により一定のテンポを示していると判定されたと仮定する。その場合、一定テンポ用ビート再探索部１４０は、ビート間隔ｄがｄ４−Ｔｈ２≦ｄ≦ｄ４＋Ｔｈ２（Ｔｈ２は予め与えられる所定の閾値）を満たすノードのみを探索の対象として、経路を再度探索する。図１９の例では、例えばｋ番目のオンセットについてＮ１２〜Ｎ１６の５つのノードが示されている。このうち、Ｎ１３〜Ｎ１５のビート間隔は探索範囲（ｄ４−Ｔｈ２≦ｄ≦ｄ４＋Ｔｈ２）に含まれる。これに対し、Ｎ１２及びＮ１６のビート間隔は、上記探索範囲に含まれない。そのため、ｋ番目のオンセットについては、Ｎ１３〜Ｎ１５の３つのノードのみが一定テンポ用ビート再探索部１４０による経路探索の再実行の対象となる。なお、一定テンポ用ビート再探索部１４０による経路の再探索処理の内容は、探索の対象とするノードの範囲を除き、図１３〜図１７を用いて説明した探索部１３６による経路探索処理と同様である。
【００９７】
このような一定テンポ用ビート再探索部１４０による経路の再探索処理により、テンポが一定の楽曲について、経路探索の結果部分的に発生する可能性のあるビート位置の誤りを減少させることができる。一定テンポ用ビート再探索部１４０により再決定された最適経路は、ビート決定部１４２へ出力される。
【００９８】
［２−３−６．ビート決定部］
ビート決定部１４２は、ビート探索部１３６により決定された最適経路、又は一定テンポ用ビート再探索部１４０により再決定された最適経路と、それら経路に含まれる各ノードのビート間隔とに基づいて、音声信号に含まれるビート位置を決定する。
【００９９】
図２０は、ビート決定部１４２によるビート決定処理について説明するための説明図である。
【０１００】
図２０（Ａ）には、図９を用いて説明したオンセット検出部１３２によるオンセット検出結果の一例をあらためて示している。この例では、オンセット検出部１３２により検出された、ｋ番目のオンセットの周囲の１４個のオンセットが示されている。
【０１０１】
これに対し、（Ｂ）は、ビート探索部１３６又は一定テンポ用ビート再探索部１４０により決定された最適経路に含まれるオンセットを示している。（Ｂ）の例では、（Ａ）に示された１４個のオンセットのうち、ｋ−７番目、ｋ番目、ｋ＋６番目のオンセット（フレーム番号Ｆｋ−７、Ｆｋ、Ｆｋ＋６）が最適経路に含まれている。また、ｋ−７番目のオンセットのビート間隔（対応するノードのビート間隔に相当）はｄｋ−７、ｋ番目のオンセットのビート間隔はｄｋである。
【０１０２】
このようなオンセットについて、ビート決定部１４２は、まず最適経路に含まれるオンセットの位置はその楽曲のビート位置であるとみなす。そして、ビート決定部１４２は、最適経路に含まれる隣り合うオンセットの間のビートを、各オンセットのビート間隔に応じて補完する。
【０１０３】
ビート決定部１４２は、最適経路上で隣り合うオンセットの間のビートを補完するために、まず補完するビートの数を決定する。例えば、図２１に示すように、隣り合う２つのオンセットの位置をＦｈ及びＦｈ＋１、オンセット位置Ｆｈにおけるビート間隔をｄｈとする。その場合、ビート決定部１４２によりＦｈ及びＦｈ＋１の間に補完されるビート数Ｂfillは次式で与えられる。
【０１０４】
【数２】
2010122629.tif 000004
【０１０５】
なお、式（２）において、Ｒｏｕｎｄ（Ｘ）とは、Ｘの小数桁を四捨五入して整数に丸めることを表す。即ち、ビート決定部１４２により補完されるビート数は、隣り合うオンセットの間隔をビート間隔で割った値を整数に丸めた後、植木算の考え方に基づき１を引いた数となる。
【０１０６】
次に、ビート決定部１４２は、最適経路上で隣り合うオンセットの間に、上記の通り決定したビートの数だけ、ビートが等間隔に配置されるようにビートを補完する。図２０（Ｃ）の例では、ｋ−７番目とｋ番目のオンセットの間に２つ、ｋ番目とｋ＋６番目のオンセットの間に２つのビートが、それぞれ補完されている。なお、ビート決定部１４２により補完されるビートの位置は、必ずしもオンセット検出部１３２により検出されたオンセットの位置に一致しないことに留意すべきである。それにより、ビート決定部１４２は、局所的にビート位置から外れて発せられた音に影響されることなく、ビートの位置を適切に決定することができる。また、ビート位置において休符が存在し音が発せられなかった場合でも適切にビート位置を認識することができる。
【０１０７】
ビート決定部１４２により決定されたビート位置のリスト（最適経路上のオンセットとビート決定部１４２により補完されたビートを含む）は、テンポ補正部１４４へ出力される。
【０１０８】
［２−３−７．テンポ補正部］
ビート決定部１４２により決定されたビート位置により表されるテンポは、楽曲の本来のテンポの２倍や１／２倍、３／２倍、２／３倍などの定数倍になっている可能性がある。テンポ補正部１４４は、その可能性を考慮し、誤って定数倍に認識しているテンポを補正して楽曲の本来のテンポを再現する。
【０１０９】
図２２は、定数倍の関係にある３種類のテンポについて、それぞれのビート位置のパターンを例示した説明図である。
【０１１０】
図２２を参照すると、（Ａ）では、図示された時間の範囲内で、６つのビートが検出されている。これに対し、（Ｂ）では、同じ時間の範囲内に１２のビートが含まれている。即ち、（Ｂ）のビート位置は、（Ａ）のビート位置を基準として２倍のテンポを示している。
【０１１１】
一方、（Ｃ−１）では、同じ時間の範囲内に３つのビートが含まれている。即ち、（Ｃ−１）のビート位置は、（Ａ）のビート位置を基準として１／２倍のテンポを示している。また、（Ｃ−２）では、（Ｃ−１）と同様に、同じ時間の範囲内に３つのビートを含み、（Ａ）のビート位置を基準として１／２倍のテンポを示している。但し、（Ｃ−１）と（Ｃ−２）では、基準のテンポからテンポを変更する際に残されるビート位置がそれぞれ異なっている。
【０１１２】
テンポ補正部１４４によるテンポの補正は、例えば、次の（１）〜（３）の手順により行われる。
（１）波形に基づいて推定される推定テンポの決定
（２）複数の基本倍率のうち最適な基本倍率の決定
（３）基本倍率が１倍となるまで（２）を繰返し
【０１１３】
（１）波形に基づいて推定される推定テンポの決定
まず、テンポ補正部１４４は、音声信号の波形に現れる音質的特徴から妥当であると推定される推定テンポを決定する。推定テンポの決定には、例えば、上述した特開２００８−１２３０１１に記載された学習アルゴリズムを応用した機械学習の結果取得される推定テンポ判別式を用いることができる。
【０１１４】
テンポ補正部１４４で用いる推定テンポ判別式は、特開２００８−１２３０１１に記載された学習アルゴリズムを応用し、図２３に示すような学習処理によって取得される。
【０１１５】
まず、学習アルゴリズムに、入力データとして、楽曲の音声信号から変換された複数のログスペクトルを供給する。例えば、図２３では、ログスペクトルＬＳ１〜ＬＳｎが学習アルゴリズムに供給されている。さらに、学習アルゴリズムに、教師データとして、各楽曲を人間が聴いて判定した正解テンポを供給する。例えば、図２３では、各ログスペクトルについての正解テンポ（ＬＳ１：１００、…、ＬＳｎ：６０）が学習アルゴリズムに供給されている。このような入力データと教師データの複数の組に基づいて、上述した学習アルゴリズムにより、ログスペクトルから推定テンポを決定するための推定テンポ判別式が予め取得される。
【０１１６】
テンポ補正部１４４は、このように予め取得した推定テンポ判別式を情報処理装置１００へ入力された音声信号に適用して、推定テンポを決定する。
【０１１７】
（２）複数の基本倍率のうち最適な基本倍率の決定
次に、テンポ補正部１４４は、複数の基本倍率のうち、補正後のテンポが楽曲の本来のテンポに最も近い基本倍率を決定する。ここで、基本倍率とは、テンポの補正に用いる定数比の基本単位となる倍率である。例えば、本実施形態では、基本倍率を１／３倍、１／２倍、２／３倍、１倍、３／２倍、２倍、３倍の７種類の倍率として説明する。但し、基本倍率はかかる例に限定されず、例えば１／３倍、１／２倍、１倍、２倍、３倍の５種類の倍率などであってもよい。
【０１１８】
テンポ補正部１４４は、最適な基本倍率を決定するために、まず、上記各基本倍率について、その倍率でビート位置を補正した後の平均ビート確率をそれぞれ計算する（基本倍率１倍については、ビート位置を補正しない場合の平均ビート確率を計算する）。
【０１１９】
図２４は、テンポ補正部１４４により計算される基本倍率ごとの平均ビート確率について説明するための説明図である。
【０１２０】
図２４を参照すると、図５（Ｂ）と同様に、ビート確率算出部１２０により算出されたビート確率が時間軸に沿って折れ線状に示されている。また、横軸には、いずれかの基本倍率に応じて補正された３つのビートのフレーム番号Ｆｈ−１、Ｆｈ、及びＦｈ＋１が示されている。ここで、フレーム番号Ｆｈにおけるビート確率をＢＰ（ｈ）とすると、基本倍率ｒに応じて補正されたビート位置の集合Ｆ（ｒ）の平均ビート確率ＢＰAVG（ｒ）は、次式により与えられる。
【０１２１】
【数３】
2010122629.tif 000005
【０１２２】
ここで、上式において、ｍ（ｒ）は、集合Ｆ（ｒ）に含まれるフレーム番号の個数である。
【０１２３】
なお、図２２（Ｃ−１）及び（Ｃ−２）を用いて説明したように、基本倍率ｒ＝１／２の場合には、ビート位置の候補は２通り存在する。その場合、テンポ補正部１４４は、２通りのビート位置の候補についてそれぞれ平均ビート確率ＢＰAVG（ｒ）を計算し、平均ビート確率ＢＰAVG（ｒ）の高い方のビート位置を基本倍率ｒ＝１／２に応じた補正後のビート位置として採用する。同様に、基本倍率ｒ＝１／３の場合には、ビート位置の候補は３通り存在する。その場合、テンポ補正部１４４は、３通りのビート位置の候補についてそれぞれ平均ビート確率ＢＰAVG（ｒ）を計算し、平均ビート確率ＢＰAVG（ｒ）の最も高いビート位置を基本倍率ｒ＝１／３に応じた補正後のビート位置として採用する。
【０１２４】
次に、テンポ補正部１４４は、基本倍率ごとの平均ビート確率を計算すると、推定テンポと平均ビート確率に基づいて、基本倍率ごとに補正後のテンポの尤もらしさ（以下、テンポ尤度という）を算出する。ここで、テンポ尤度は、例えば、推定テンポを中心とするガウス分布で表されるテンポ確率と平均ビート確率との積とすることができる。
【０１２５】
図２５は、テンポ補正部１４４により算出されるテンポ尤度について説明するための説明図である。
【０１２６】
図２５において、（Ａ）は、各基本倍率についてテンポ補正部１４４により算出された補正後の平均ビート確率を示している。また、（Ｂ）は、テンポ補正部１４４により音声信号の波形に基づいて推定された推定テンポを中心とし、予め与えられる所定の分散σ１によって定まるガウス分布であるテンポ確率を示している。なお、図２５（Ａ）及び（Ｂ）の横軸は、各基本倍率に応じてビート位置を補正した後のテンポの対数を表す。テンポ補正部１４４は、各基本倍率について、かかる平均ビート確率とテンポ確率とを乗算することにより、（Ｃ）に示すテンポ尤度を算出する。即ち、図２５の例では、基本倍率が１倍の場合と１／２倍の場合で平均ビート確率はほぼ同等だが、１／２倍に補正したテンポの方がより推定テンポに近い（テンポ確率が高い）ため、算出されるテンポ尤度は１／２倍に補正したテンポの方が高くなっている。テンポ補正部１４４は、このようにテンポ尤度を算出し、最もテンポ尤度の高い基本倍率を、補正後のテンポが楽曲の本来のテンポに最も近い基本倍率として決定する。
【０１２７】
このように、尤もらしいテンポの決定に推定テンポから得られるテンポ確率を加味することで、局所的な音声の波形からは判別することが困難な定数倍の関係にあるテンポの候補から、適切なテンポを精度よく決定することができる。
【０１２８】
（３）基本倍率が１倍となるまで（２）を繰返し
その後、テンポ補正部１４４は、最もテンポ尤度の高い基本倍率が１倍となるまで、基本倍率ごとの平均ビート確率の計算とテンポ尤度の算出を繰り返す。その結果、テンポ補正部１４４による補正前のテンポが楽曲の本来のテンポの１／４倍や１／６倍、４倍、６倍などであったとしても、基本倍率の組合せによって得られる適切な補正倍率（例えば、１／２倍×１／２倍＝１／４倍）でテンポを補正することができる。
【０１２９】
図２６は、テンポ補正部１４４による補正処理の流れの一例を示すフローチャートである。
【０１３０】
図２６を参照すると、テンポ補正部１４４は、まず学習により予め取得される推定テンポ判別式を用いて、音声信号から推定テンポを決定する（Ｓ１４４２）。次に、テンポ補正部１４４は、複数の基本倍率（１／３、１／２…など）について順次ループさせる（Ｓ１４４４）。そのループ内において、テンポ補正部１４４は、図２２を用いて説明したように、各基本倍率に応じてビート位置を変更して、テンポを補正する（Ｓ１４４６）。次に、テンポ補正部１４４は、図２４を用いて説明したように、補正後のビート位置での平均ビート確率を計算する（Ｓ１４４８）。次に、テンポ補正部１４４は、Ｓ１４４８で計算した平均ビート確率とＳ１４４２で決定した推定テンポに基づいて、図２５を用いて説明したように、基本倍率ごとのテンポ尤度を計算する（Ｓ１４５０）。そして、テンポ補正部１４４は、全ての基本倍率のループが終了すると（Ｓ１４５２）、テンポ尤度が最も高い基本倍率を決定する（Ｓ１４５４）。さらに、テンポ補正部１４４は、テンポ尤度が最も高い基本倍率が１倍か否かを判定する（Ｓ１４５６）。ここでテンポ尤度が最も高い基本倍率が１倍であれば、テンポ補正部１４４による補正処理は終了する。一方、テンポ尤度が最も高い基本倍率が１倍でなければ、処理はＳ１４４４へ戻る。それにより、テンポ尤度が最も高い基本倍率に応じて補正されたテンポ（ビート位置）に基づいて、再度いずれかの基本倍率によるテンポの補正が行われる。
【０１３１】
以上説明したオンセット検出部１３２からテンポ補正部１４４までの処理の後、ビート解析部１３０によるビート解析処理は終了する。ビート解析部１３０による解析の結果検出されたビート位置は、後述する楽曲構造解析部１５０及びコード確率算出部１６０へ出力される。
【０１３２】
［２−４．楽曲構造解析部］
楽曲構造解析部１５０は、ログスペクトル変換部１１０から入力される音声信号のログスペクトルとビート解析部１３０から入力されるビート位置とに基づいて、音声信号に含まれるビート区間同士の音声の類似確率を計算する。
【０１３３】
図２７は、楽曲構造解析部１５０のより詳細な構成を示すブロック図である。図２７を参照すると、楽曲構造解析部１５０は、ビート区間特徴量計算部１５２、相関計算部１５４、及び類似確率生成部１５６を含む。
【０１３４】
［２−４−１．ビート区間特徴量計算部］
ビート区間特徴量計算部１５２は、ビート解析部１３０により検出された各ビートについて、そのビートから次のビートまでのビート区間における部分ログスペクトルの特徴を表すビート区間特徴量を計算する。
【０１３５】
図２８は、ビート、ビート区間、及びビート区間特徴量の相互の関係を示す説明図である。
【０１３６】
図２８の上部には、ビート解析部１３０により検出された６つのビートＢ１〜Ｂ６が示されている。これに対し、ビート区間とは、音声信号をビート位置で区分した区間であって、各ビートから次のビートまでの区間を表す。即ち、図２８の例において、ビート区間ＢＤ１は、ビートＢ１からビートＢ２までの区間、ビート区間ＢＤ２は、ビートＢ２からビートＢ３までの区間、ビート区間ＢＤ３は、ビートＢ３からビートＢ４までの区間となる。そして、ビート区間特徴量計算部１５２は、各ビート区間ＢＤ１〜６において切り出された部分ログスペクトルから、ビート区間特徴量ＢＦ１〜ＢＦ６をそれぞれ計算する。
【０１３７】
図２９及び図３０は、ビート区間特徴量計算部１５２によるビート区間特徴量の計算処理について説明するための説明図である。
【０１３８】
図２９（Ａ）では、ビート区間特徴量計算部１５２により、１つのビートに対応するビート区間ＢＤにおける部分ログスペクトルが切り出されている。ビート区間特徴量計算部１５２は、まず、このような部分ログスペクトルの各音程（オクターブ数×１２音）ごとにエネルギーを時間平均することにより、音程別の平均エネルギーを算出する。図２９（Ｂ）は、ビート区間特徴量計算部１５２により算出される音程別の平均エネルギーの大きさを示している。
【０１３９】
次に、図３０を参照すると、図３０（Ａ）は、図２９（Ｂ）と同じ音程別平均エネルギーの大きさを示している。ビート区間特徴量計算部１５２は、その後、異なるオクターブにおける１２音の同じ音名のオクターブ数分の平均エネルギーの値を、所定の重みを用いて重み付け加算し、１２音別のエネルギーを算出する。例えば、図３０（Ｂ）、（Ｃ）に示した例では、ｎオクターブ分のＣ音の平均エネルギー（Ｃ１、Ｃ２、…Ｃｎ）が所定の重み（Ｗ１、Ｗ２、…Ｗｎ）を用いて重み付け加算され、Ｃ音のエネルギー値ＥＮＣが算出されている。また、同様に、ｎオクターブ分のＢ音の平均エネルギー（Ｂ１、Ｂ２、…Ｂｎ）が所定の重み（Ｗ１、Ｗ２、…Ｗｎ）を用いて重み付け加算され、Ｂ音のエネルギー値ＥＮＢが算出されている。Ｃ音とＢ音の中間の１０の音（Ｃ＃〜Ａ＃）についても同様である。その結果、１２音別の各エネルギー値ＥＮＣ、ＥＮＣ＃、…ＥＮＢを要素とする１２次元のベクトルが生成される。ビート区間特徴量計算部１５２は、ビート区間特徴量ＢＦとして、このような１２音別エネルギー（１２次元ベクトル）をビートごとに計算し、相関計算部１５４へ出力する。
【０１４０】
なお、重み付け加算に用いるオクターブ別の重みＷ１、Ｗ２、…Ｗｎの値は、一般的な楽曲においてメロディやコードが明確に現れる中音域ほど大きい値とするのが好適である。それにより、メロディやコードの特徴をより強く反映して楽曲構造を解析することができる。
【０１４１】
［２−４−２．相関計算部］
相関計算部１５４は、ビート区間特徴量計算部１５２から入力されるビート区間特徴量、即ちビート区間ごとの１２音別エネルギーを用いて、音声信号に含まれるビート区間の全ての組合せについてのビート区間同士の相関係数を計算する。
【０１４２】
図３１は、相関計算部１５４による相関係数計算処理について説明するための説明図である。
【０１４３】
図３１では、ログスペクトルを区分するビート区間の中で相関係数を計算する組み合わせの一例として、第１注目ビート区間ＢＤｉ及び第２注目ビート区間ＢＤｊが示されている。相関計算部１５４は、このような２つの注目ビート区間の間の相関係数を計算するために、まず、第１注目ビート区間ＢＤｉの前後Ｎ区間（図３１の例ではＮ＝２、計５区間）にわたる１２音別エネルギーを取得する。同様に、相関計算部１５４は、第２注目ビート区間ＢＤｊの前後Ｎ区間にわたる１２音別エネルギーを取得する。そして、相関計算部１５４は、取得した第１注目ビート区間ＢＤｉの前後Ｎ区間の１２音別エネルギーと第２注目ビート区間ＢＤｊの前後Ｎ区間の１２音別エネルギーとの間で相関係数を計算する。相関計算部１５４は、このような相関係数の計算を全ての第１注目ビート区間ＢＤｉと第２注目ビート区間ＢＤｊの組合せについて計算し、計算結果を類似確率生成部１５６へ出力する。
【０１４４】
［２−４−３．類似確率生成部］
類似確率生成部１５６は、予め生成される変換曲線を用いて、相関計算部１５４から入力されたビート区間同士の相関係数を、ビート区間の音声の内容が相互に類似している程度を表す類似確率に変換する。
【０１４５】
図３２は、相関係数を類似確率に変換する際に用いられる変換曲線の一例を説明するための説明図である。
【０１４６】
図３２（Ａ）は、予め求められた２つの確率分布であって、同じ音声の内容を有しているビート区間同士の相関係数の確率分布、及び異なる音声の内容を有しているビート区間同士の相関係数の確率分布を示している。図３２（Ａ）から理解されるように、相関係数が低いほど音声の内容が同じである確率は低く、相関係数が高いほど音声の内容が同じである確率は高い。そのため、図３２（Ｂ）に示すような、相関係数からビート区間同士の類似確率を導く変換曲線を予め生成することができる。類似確率生成部１５６は、このような予め生成しておいた変換曲線を用いて、例えば相関計算部１５４から入力された相関係数ＣＯ１を類似確率ＳＰ１へ変換する。
【０１４７】
図３３は、楽曲構造解析部１５０により算出されるビート区間同士の類似確率を、一例として可視化した説明図である。
【０１４８】
図３３の縦軸は第１注目ビート区間の位置、横軸は第２注目ビート区間の位置に対応する。また、二次元平面上にプロットされた色の濃淡は、その座標に対応する第１注目ビート区間と第２注目ビート区間との間の類似確率を表す。例えば、第１注目ビート区間ｉ１と、実質的に同じビート区間である第２注目ビート区間ｊ１との間の類似確率は当然に高い値を示し、両者が同じ音声の内容を有していることを示している。さらに楽曲が進み、第２注目ビート区間ｊ２に到達すると、第１注目ビート区間ｉ１と第２注目ビート区間ｊ２との間の類似確率は再び高い値となっている。即ち、第２注目ビート区間ｊ２では、第１注目ビート区間ｉ１とほぼ同じ内容の音声が演奏されている可能性が高いことが分かる。このように楽曲構造解析部１５０により取得されたビート区間同士の類似確率は、後述する小節線検出部１８０及びコード進行検出部１９０へ出力される。
【０１４９】
なお、本実施形態では、ビート区間内のエネルギーの時間平均をビート区間特徴量の計算に用いることから、楽曲構造解析部１５０による楽曲構造の解析においてビート区間内の時間的なログスペクトルの変化の情報は考慮されない。即ち、例えば、あるビート区間と他のビート区間で（例えば演奏者のアレンジなどにより）同じメロディが時間的なずれをもって演奏されたとしても、そのずれがビート区間内に閉じている限りは、演奏された内容を同一であると判定することができる。
【０１５０】
［２−５．コード確率算出部］
コード確率算出部１６０は、ビート解析部１３０により検出された各ビートについて、対応するビート区間内で各コードが演奏されている確率を表すコード確率を算出する。
【０１５１】
なお、コード確率算出部１６６により算出されるコード確率の値は、後述するキー検出部１８０によるキー検出処理に用いられる暫定的な値である。コード確率は、後に説明するコード進行検出部１９０のコード確率計算部１９６により、ビート区間ごとのキー確率を考慮して再計算される。
【０１５２】
図３４は、コード確率算出部１６０のより詳細な構成を示すブロック図である。図３４を参照すると、コード確率算出部１６０は、ビート区間特徴量計算部１６２、ルート別特徴量準備部１６４、及びコード確率計算部１６６を含む。
【０１５３】
［２−５−１．ビート区間特徴量計算部］
ビート区間特徴量計算部１６２は、楽曲構造解析部１５０のビート区間特徴量計算部１５２と同様に、ビート解析部１３０により検出された各ビートについて、対応するビート区間内の音声信号の特徴を表すビート区間特徴量としての１２音別エネルギーを計算する。ビート区間特徴量計算部１６２による１２音別エネルギーの計算処理は、図２８〜図３０を用いて説明したビート区間特徴量計算部１５２による処理と同様である。但し、ビート区間特徴量計算部１６２は、１２音ごとのオクターブ別平均エネルギーと重み付け加算する重みの値として、図３０に示した重みＷ１、Ｗ２…Ｗｎとは異なる値を用いてもよい。ビート区間特徴量計算部１６２は、ビート区間特徴量としての１２音別エネルギーを計算し、ルート別特徴量準備部１６４へ出力する。
【０１５４】
［２−５−２．ルート別特徴量準備部］
ルート別特徴量準備部１６４は、ビート区間特徴量計算部１６２から入力される１２音別エネルギーから、ビート区間ごとのコード確率の算出に用いられるルート別特徴量を生成する。
【０１５５】
図３５及び図３６は、ルート別特徴量準備部１６４によるルート別特徴量生成処理について説明するための説明図である。
【０１５６】
ルート別特徴量準備部１６４は、まず、注目ビート区間ＢＤｉについて、前後Ｎ区間分の１２音別エネルギーを抽出する（図３５参照）。ここで抽出された前後Ｎ区間分の１２音別エネルギーは、Ｃ音をコードのルート（根音）とする特徴量とみなすことができる。図３５の例では、Ｎ＝２であるため、Ｃ音をルートとする５区間分のルート別特徴量（１２×５次元）が抽出されている。なお、ここでのＮの値は、図３１におけるＮの値と同一の値であっても異なる値であってもよい。
【０１５７】
次に、ルート別特徴量準備部１６４は、Ｃ音をルートとする５区間分のルート別特徴量の１２音の要素位置を所定数だけずらず（シフトさせる）ことで、Ｃ＃音からＢ音までをそれぞれルートとする、１１通りの５区間分のルート別特徴量を生成する（図３６参照）。なお、要素位置をシフトさせるシフト数は、Ｃ＃音をルートとする場合は１、Ｄ音をルートとする場合は２、…（略）…、Ｂ音をルートとする場合は１１などとなる。その結果、ルート別特徴量準備部１６４により、Ｃ音からＢ音までの１２音をそれぞれルートとするルート別特徴量（それぞれ１２×５次元）が１２音分生成される。
【０１５８】
ルート別特徴量準備部１６４は、このようなルート別特徴量生成処理を全てのビート区間について行い、各区間についてのコード確率の算出に用いるルート別特徴量を準備する。なお、図３５緒及び図３６の例では、１つのビート区間について準備される特徴量は、１２×５×１２次元のベクトルとなる。ルート別特徴量準備部１６４により生成されたルート別特徴量は、コード確率計算部１６６へ出力される。
【０１５９】
［２−５−３．コード確率計算部］
コード確率計算部１６６は、ルート別特徴量準備部１６４から入力されたルート別特徴量を用いて、ビート区間ごとに、各コードが演奏されている確率を表すコード確率を算出する。ここで、各コードとは、例えば、ルート（Ｃ、Ｃ＃、Ｄ…）や構成音の数（三和音、四和音（７ｔｈ）、五和音（９ｔｈ））、及び長短（メジャー／マイナー）などにより区別される個々のコードのことをいう。コード確率の算出には、例えば、ロジスティック回帰分析によって予め学習されたコード確率算出式を用いることができる。
【０１６０】
図３７は、コード確率計算部１６６によるコード確率の計算に用いられるコード確率算出式の学習処理について説明するための説明図である。
【０１６１】
なお、コード確率算出式の学習は、学習したいコードの種類ごとに行われる。即ち、例えばメジャーコード用のコード確率算出式、マイナーコード用のコード確率算出式、７ｔｈコード用のコード確率算出式、及び９ｔｈコード用のコード確率算出式などについて、それぞれ以下に説明する学習処理が行われる。
【０１６２】
まず、ロジスティック回帰分析における独立変数として、正解のコードが既知であるビート区間ごとのルート別特徴量（例えば図３６を用いて説明した１２×５×１２次元のベクトル）を複数用意する。
【０１６３】
また、ビート区間ごとのルート別特徴量のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータ（教師データ）を用意する。例えば、メジャーコード用のコード確率算出式を学習する場合には、ダミーデータの値は、既知のコードがメジャーコードであれば真値（１）、それ以外なら偽値（０）となる。また、マイナーコード用のコード確率算出式を学習する場合には、ダミーデータの値は、既知のコードがマイナーコードであれば真値（１）、それ以外なら偽値（０）となる。７ｔｈコード、９ｔｈコードについても同様である。
【０１６４】
このような独立変数とダミーデータを用いて十分な数のビート区間ごとのルート別特徴量についてロジスティック回帰分析を行うことで、ビート区間ごとのルート別特徴量からそれぞれの種類のコード確率を算出するためのコード確率算出式が予め取得される。
【０１６５】
そして、コード確率計算部１６６は、ルート別特徴量準備部１６４から入力されたルート別特徴量に予め取得されたコード確率算出式を適用し、ビート区間ごとに、コード確率をコードのそれぞれの種類について順次算出する。
【０１６６】
図３８は、コード確率計算部１６６によるコード確率の計算処理について説明するための説明図である。
【０１６７】
図３８（Ａ）を参照すると、ビート区間ごとのルート別特徴量のうち、Ｃ音をルートとするルート別特徴量が示されている。コード確率計算部１６６は、例えば、このＣ音をルートとするルート別特徴量に予め学習により取得したメジャーコード用のコード確率算出式を適用し、当該ビート区間についてコードが“Ｃ”であるコード確率ＣＰＣを計算する。また、コード確率計算部１６６は、Ｃ音をルートとするルート別特徴量にマイナーコード用のコード確率算出式を適用し、当該ビート区間についてコードが“Ｃｍ”であるコード確率ＣＰＣｍを計算する。
【０１６８】
同様に、コード確率計算部１６６は、Ｃ＃音をルートとするルート別特徴量にメジャーコード用及びマイナーコード用のコード確率算出式を適用し、コード“Ｃ＃”のコード確率ＣＰＣ＃及びコード“Ｃ＃ｍ”のコード確率ＣＰＣ＃ｍを計算することができる（図３８（Ｂ））。コード“Ｂ”のコード確率ＣＰＢ及びコード“Ｂｍ”のコード確率ＣＰＢｍの計算についても同様である（図３８（Ｃ））。
【０１６９】
図３９は、コード確率計算部１６６により算出されるコード確率の一例を示す説明図である。
【０１７０】
図３９を参照すると、ある１つのビート区間について、Ｃ音からＢ音までの１２音ごとに“Ｍａｊ（メジャー）”、“ｍ（マイナー）”、“７（７ｔｈ／セブンス）”、“ｍ７（マイナーセブンス）”などの種類のコードのコード確率が計算されている。図３９の例によれば、コード確率ＣＰＣ＝０．８８、ＣＰＣｍ＝０．０８、ＣＰＣ７＝０．０１、ＣＰＣｍ７＝０．０２、ＣＰＣＢ＝０．０１である。また、それ以外のコード確率はいずれもゼロである。
【０１７１】
なお、コード確率計算部１６６は、複数のコードの種類についてコード確率を計算すると、算出した確率値の合計が１つのビート区間内で１となるように確率値を正規化する。このようなコード確率計算部１６６による計算及び正規化処理は、音声信号に含まれる全てのビート区間について繰り返される。
【０１７２】
以上説明したビート区間特徴量計算部１６２からコード確率計算部１６６までの処理の後、コード確率算出部１６０によるコード確率算出処理は終了する。コード確率算出部１６０により算出されたコード確率は、次に説明するキー検出部１７０へ出力される。
【０１７３】
［２−６．キー検出部］
キー検出部１７０は、コード確率算出部１６０により算出されたビート区間ごとのコード確率を用いて、ビート区間ごとのキー（調／基本音階）を検出する。また、キー検出部１７０は、キー検出処理の過程において、ビート区間ごとのキー確率を算出する。
【０１７４】
図４０は、キー検出部１７０のより詳細な構成を示すブロック図である。図４０を参照すると、キー検出部１７０は、相対コード確率生成部１７２、特徴量準備部１７４、キー確率計算部１７６、及びキー決定部１７８を含む。
【０１７５】
［２−６−１．相対コード確率生成部］
相対コード確率生成部１７２は、コード確率算出部１６０から入力されるビート区間ごとのコード確率から、ビート区間ごとのキー確率の算出に用いられる相対コード確率を生成する。
【０１７６】
図４１は、相対コード確率生成部１７２による相対コード確率生成処理について説明するための説明図である。
【０１７７】
相対コード確率生成部１７２は、まず、ある注目ビート区間についてのコード確率から、メジャーコードとマイナーコードについてのコード確率を抽出する。ここで抽出されたコード確率は、メジャーコード１２音とマイナーコード１２音の合計２４次元のベクトルを形成する。以下、この２４次元のベクトルを、Ｃ音をキーと仮定した相対コード確率として扱う。
【０１７８】
次に、相対コード確率生成部１７２は、抽出したメジャーコードとマイナーコードのコード確率の１２音の要素位置を所定数だけずらず（シフトさせる）ことで、１１通りの相対コード確率を生成する。なお、要素位置をシフトさせるシフト数は、図３６を用いて説明したルート別特徴量の生成時と同じシフト数とする。その結果、相対コード確率生成部１７２により、Ｃ音からＢ音までの１２音をそれぞれキーと仮定した相対コード確率が１２通り生成される。
【０１７９】
相対コード確率生成部１７２は、このような相対コード確率生成処理を全てのビート区間について行い、生成した相対コード確率を特徴量準備部１７４へ出力する。
【０１８０】
［２−６−２．特徴量準備部］
特徴量準備部１７４は、ビート区間ごとのキー確率の算出に用いられる特徴量として、相対コード確率生成部１７２から入力される相対コード確率からビート区間ごとのコード出現スコア及びコード遷移出現スコアを生成する。
【０１８１】
図４２は、特徴量準備部１７４により生成されるビート区間ごとのコード出現スコアについて説明するための説明図である。
【０１８２】
図４２を参照すると、特徴量準備部１７４は、まず、注目ビート区間の前後Ｍビート分の区間のＣ音をキーと仮定した相対コード確率ＣＰを用意する。そして、特徴量準備部１７４は、前後Ｍビート分の区間にわたって、Ｃ音をキーと仮定した相対コード確率に含まれる同じ位置の要素の確率値を通算する。その結果、注目ビート区間の周囲に位置する複数のビート区間にわたるＣ音をキーと仮定した場合の各コードの出現確率に応じたコード出現スコア（ＣＥＣ、ＣＥＣ＃、…、ＣＥＢｍ）（２４次元ベクトル）が求められる。特徴量準備部１７４は、このようなコード出現スコアの計算を、Ｃ音からＢ音までの１２音のそれぞれをキーと仮定した場合について行う。それにより、１つの注目ビート区間について、１２通りのコード出現スコアが求められる。
【０１８３】
次に、図４３は、特徴量準備部１７４により生成されるビート区間ごとのコード遷移出現スコアについて説明するための説明図である。
【０１８４】
図４３を参照すると、特徴量準備部１７４は、まず、ビート区間ＢＤｉ及び隣り合うビート区間ＢＤｉ＋１の間の全てのコードの組合せ（即ち全てのコード遷移）について、コード遷移の前後のＣ音をキーと仮定した相対コード確率を乗算する。ここで、全てのコードの組合せとは、“Ｃ”→“Ｃ”、“Ｃ”→“Ｃ＃”、“Ｃ”→“Ｄ”、…“Ｂ”→“Ｂ”の２４×２４通りの組合せをいう。次に、特徴量準備部１７４は、注目ビート区間の前後Ｍビート分の区間にわたり、コード遷移の前後の相対コード確率の乗算結果を通算する。その結果、注目ビート区間の周囲に位置する複数のビート区間にわたるＣ音をキーと仮定した場合の各コード遷移の出現確率に応じた２４×２４次元のコード遷移出現スコア（２４×２４次元ベクトル）が求められる。例えば、注目ビート区間ＢＤｉにおける“Ｃ”→“Ｃ＃”のコード遷移についてのコード遷移出現スコアＣＴＣ→Ｃ＃（ｉ）は、次式により与えられる。
【０１８５】
【数４】
2010122629.tif 000006
【０１８６】
特徴量準備部１７４は、このような２４×２４通りのコード遷移出現スコアＣＴの計算を、Ｃ音からＢ音までの１２音のそれぞれをキーと仮定した場合について行う。それにより、１つの注目ビート区間について、１２通りのコード遷移出現スコアが求められる。
【０１８７】
なお、楽曲のキーは、例えば小節ごとに変化し得るコードと異なり、より長い区間にわたって通常は変化しない。そのため、コード出現スコアやコード遷移出現スコアの算出に用いる相対コード確率の範囲を定義するＭの値は、例えば数十ビートなど、多数の小節を含み得る値とするのが好適である。
【０１８８】
特徴量準備部１７４は、このようにビート区間ごとに計算した２４次元のコード出現スコアＣＥ及び２４×２４次元のコード遷移出現スコアを、キー確率を計算するための特徴量として、キー確率計算部１７６へ出力する。
【０１８９】
［２−６−３．キー確率計算部］
キー確率計算部１７６は、特徴量準備部１７４から入力されたコード出現スコア及びコード遷移出現スコアを用いて、ビート区間ごとに、各キーが演奏されている確率を表すキー確率を算出する。ここで、各キーとは、例えば、１２音（Ｃ、Ｃ＃、Ｄ…）及び長短（メジャー／マイナー）により区別されるキーをいう。キー確率の算出には、例えば、ロジスティック回帰分析によって予め学習されたキー確率算出式を用いることができる。
【０１９０】
図４４は、キー確率計算部１７６によるキー確率の計算に用いられるキー確率算出式の学習処理について説明するための説明図である。
【０１９１】
なお、キー確率算出式の学習は、メジャーキーとマイナーキーとに分けて行われる。即ち、メジャーキー確率算出式及びマイナーキー確率算出式の２つの算出式が学習により取得される。
【０１９２】
まず、ロジスティック回帰分析における独立変数として、正解のキーが既知であるビート区間ごとのコード出現スコア及びコード出現進行スコアを複数用意する。
【０１９３】
次に、用意されたコード出現スコア及びコード出現進行スコアの組のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータ（教師データ）を用意する。例えば、メジャーキー確率算出式を学習する場合には、ダミーデータの値は、既知のキーがメジャーキーであれば真値（１）、それ以外なら偽値（０）となる。また、マイナーキー確率算出式を学習する場合には、ダミーデータの値は、既知のキーがマイナーキーであれば真値（１）、それ以外なら偽値（０）となる。
【０１９４】
このような独立変数とダミーデータの十分な数の組を用いてロジスティック回帰分析を行うことで、ビート区間ごとのコード出現スコア及びコード出現進行スコアからメジャーキー又はマイナーキーの確率を算出するためのキー確率算出式が予め取得される。
【０１９５】
そして、キー確率計算部１７６は、特徴量準備部１７４から入力されたコード出現スコア及びコード出現進行スコアに各キー確率算出式を適用し、ビート区間ごとに、キー確率を各キーについて順次算出する。
【０１９６】
図４５は、キー確率計算部１７６によるキー確率の計算処理について説明するための説明図である。
【０１９７】
図４５（Ａ）を参照すると、キー確率計算部１７６は、例えば、Ｃ音をキーと仮定したコード出現スコア及びコード出現進行スコアに予め学習により取得したメジャーキー確率算出式を適用し、当該ビート区間についてキーが“Ｃ”であるキー確率ＫＰＣを計算する。また、キー確率計算部１７６は、Ｃ音をキーと仮定したコード出現スコア及びコード出現進行スコアにマイナーキー確率算出式を適用し、当該ビート区間についてキーが“Ｃｍ”であるキー確率ＫＰＣｍを計算する。
【０１９８】
同様に、キー確率計算部１７６は、Ｃ＃音をキーと仮定したコード出現スコア及びコード出現進行スコアにメジャーキー確率算出式及びマイナーキー確率算出式を適用し、キー確率ＫＰＣ＃及びＫＰＣ＃ｍを計算することができる（図４５（Ｂ））。キー確率ＫＰＢ及びＫＰＢｍの計算についても同様である（図４５（Ｃ））。
【０１９９】
図４６は、キー確率計算部１７６により算出されるキー確率の一例を示す説明図である。
【０２００】
図４６を参照すると、ある１つのビート区間について、Ｃ音からＢ音までの１２音ごとに“Ｍａｊ（メジャー）”及び“ｍ（マイナー）”の２種類のキー確率が計算されている。図４６の例によれば、キー確率ＫＰＣ＝０．９０、ＫＰＣｍ＝０．０３である。また、それ以外のキー確率はいずれもゼロである。
【０２０１】
なお、キー確率計算部１７６は、全てのキーの種類についてキー確率を計算すると、算出した確率値の合計が１つのビート区間内で１となるように確率値を正規化する。このようなキー確率計算部１７６による計算及び正規化処理は、音声信号に含まれる全てのビート区間について繰り返される。キー確率計算部１７６は、このようにビート区間ごとに各キーのキー確率を算出し、キー決定部１７８へ出力する。
【０２０２】
さらに、キー確率計算部１７６は、Ｃ音からＢ音までの１２音ごとにメジャー及びマイナーの２種類について計算したキー確率から、メジャー及びマイナーを区別しない単純キー確率を計算する。
【０２０３】
図４７は、キー確率計算部１７６による単純キー確率の計算処理について説明するための説明図である。
【０２０４】
図４７（Ａ）を参照すると、ある１つのビート区間について、キー確率計算部１７６により、キー確率ＫＰＣ＝０．９０、ＫＰＣｍ＝０．０３、ＫＰＡ＝０．０２、ＫＰＡｍ＝０．０５が計算されている。それ以外のキー確率はいずれもゼロである。このとき、キー確率計算部１７６は、メジャー及びマイナーを区別しない単純キー確率を、Ｃ音からＢ音までの１２音ごとに、平行調の関係にあるキー同士のキー確率を合計することにより計算する。例えば、単純キー確率ＳＫＰＣはキー確率ＫＰＣとＫＰＡｍの合計であり、ＳＫＰＣ＝０．９０＋０．０５＝０．９５となる。これは、ハ長調（キー“Ｃ”）とイ短調（キー“Ａｍ”）が平行調の関係にあるためである。その他、Ｃ＃音からＢ音までの単純キー確率についても同様に計算される。
【０２０５】
キー確率計算部１７６により算出された１２通りの単純キー確率ＳＫＰＣ〜ＳＫＰＢは、コード進行検出部１９０へ出力される。
【０２０６】
［２−６−４．キー決定部］
キー決定部１７８は、キー確率計算部１７６によりビート区間ごとに算出された各キーのキー確率に基づいて、尤もらしいキーの進行を経路探索により決定する。キー決定部１７８による経路探索の手法としては、例えば、上述したビタビアルゴリズムを用いることができる。
【０２０７】
図４８は、キー決定部１７８における経路探索について説明するための説明図である。
【０２０８】
キー決定部１７８による経路探索にビタビアルゴリズムを適用する場合、時間軸（図４８の横軸）にはビートが順に配置される。また、観測系列（図４８の縦軸）として、キー確率が算出されたキーの種類を用いる。即ち、キー決定部１７８は、キー確率計算部１７６においてキー確率を算出したビートとキーの種類の全ての組合せの１つ１つを、経路探索の対象のノードとする。
【０２０９】
このようなノードに対し、キー決定部１７８は、時間軸に沿っていずれかのノードを順に選択していき、選択された一連のノードよりなる経路を、（１）キー確率、及び（２）キー遷移確率の２つの評価値を用いて評価する。なお、キー決定部１７８によるノードの選択に際しては、ビートをスキップすることは許可されない。
【０２１０】
（１）キー確率とは、キー確率計算部１７６により算出された上述したキー確率である。キー確率は、図４８に示した個々のノードごとに与えられる。一方、（２）キー遷移確率とは、ノード間の遷移に対して与えられる評価値である。キー遷移確率は、キーが既知である楽曲における転調の発生確率に基づいて、転調のパターンごとに予め定義される。
【０２１１】
図４９は、キー遷移確率の一例を示す説明図である。
【０２１２】
キー遷移確率としては、遷移の前後のキーの種類のパターン、即ちメジャーからメジャー、メジャーからマイナー、マイナーからメジャー、マイナーからマイナーの４つのパターンごとに、遷移に伴う転調量に応じた１２通りの値が定義される。図４９には、そのうち、メジャーからメジャーへのキーの遷移における転調量に応じた１２通りの確率値の一例が示されている。例えば、転調量Δｋについてのキー遷移確率をＰｒ（Δｋ）とすると、Ｐｒ（０）＝０．９９８７である。これは、楽曲内でキーが変わる確率が極めて低いことを表している。一方、Ｐｒ（１）＝０．０００２である。これは、キーが１音程上がる（又は１１音程下がる）確率が０．０２％であることを表している。同様に、Ｐｒ（２）＝Ｐｒ（３）＝Ｐｒ（４）＝Ｐｒ（５）＝Ｐｒ（７）＝Ｐｒ（８）＝Ｐｒ（９）＝Ｐｒ（１０）＝０．０００１である。また、Ｐｒ（６）＝Ｐｒ（１１）＝０．００００である。この他、メジャーからマイナー、マイナーからメジャー、マイナーからマイナーの各遷移パターンについても、同様に転調量に応じた１２通りの確率値がそれぞれ予め定義される。
【０２１３】
キー決定部１７８は、図４８を用いて説明したキー進行を表す各経路について、その経路に含まれる各ノードの（１）キー確率と、ノード間の遷移に対して与えられる上記（２）キー遷移確率を順次乗算する。そして、キー決定部１７８は、経路の評価値としての乗算結果が最大となる経路を、尤もらしいキー進行を表す最適な経路として決定する。
【０２１４】
図５０は、キー決定部１７８により最適な経路として決定されたキー進行の一例を示す説明図である。
【０２１５】
図５０では、楽曲の先頭から終端までの時間のスケールの下に、キー決定部１７８により決定されたその楽曲のキー進行が示されている。まず、楽曲の先頭から３分経過時点までは、楽曲のキーは“Ｃｍ”である。その後、楽曲のキーは“Ｃ＃ｍ”に変化し、楽曲の終端までそのキーが続いている。
【０２１６】
以上説明した相対コード確率生成部１７２からキー決定部１７８までの処理の後、キー検出部１７０によるキー検出処理は終了する。キー検出部１７０により検出されたキー進行及びキー確率は、次に説明する小節線検出部１８０及びコード進行検出部１９０へ出力される。
【０２１７】
［２−７．小節線検出部］
小節線検出部１８０は、ビート確率、ビート区間同士の類似確率、ビート区間ごとのコード確率、キー進行、及びビート区間ごとのキー確率に基づいて、一連のビートがそれぞれ何拍子何拍目であるかを表す小節線の進行を決定する。
【０２１８】
図５１は、小節線検出部１８０のより詳細な構成を示すブロック図である。図５１を参照すると、小節線検出部１８０は、第１特徴量抽出部１８１、第２特徴量抽出部１８２、小節線確率計算部１８４、小節線確率修正部１８６、小節線決定部１８８、及び小節線再決定部１８９を含む。
【０２１９】
［２−７−１．第１特徴量抽出部］
第１特徴量抽出部１８１は、後述する小節線確率の計算に用いられる特徴量として、ビート区間ごとに、前後Ｌビート分のコード確率とキー確率に応じた第１特徴量を抽出する。
【０２２０】
図５２は、第１特徴量抽出部１８１による特徴量抽出処理について説明するための説明図である。
【０２２１】
図５２を参照すると、第１特徴量は、注目ビート区間ＢＤｉの前後Ｌビート分の区間のコード確率とキー確率とから導かれる（１）コード非変化スコア及び（２）相対コードスコアを含む。このうち、コード非変化スコアは、注目ビート区間ＢＤｉの前後Ｌビート分の区間数に相当する次元を有する特徴量である。一方、相対コードスコアは、注目ビート区間ＢＤｉの前後Ｌビート分の区間ごとに２４次元を有する特徴量である。例えば、Ｌ＝８とした場合には、コード非変化スコアは１７次元、相対コードスコアは１７×２４次元＝４０８次元であり、第１特徴量は計４２５次元を有する。以下、かかるコード非変化スコア及び相対コードスコアについて説明する。
【０２２２】
（１）コード非変化スコア
コード非変化スコアとは、一定の範囲の区間にわたって楽曲のコードが変化していない度合いを表す特徴量である。コード非変化スコアは、次に述べるコード安定スコアをコード不安定スコアで除算することにより求められる。
【０２２３】
図５３は、コード非変化スコアの計算に用いるコード安定スコアについて説明するための説明図である。
【０２２４】
図５３を参照すると、ビート区間ＢＤｉのコード安定スコアは、ビート区間ＢＤｉの前後Ｌビートの各区間について１つずつ定まる要素ＣＣ（ｉ−Ｌ）〜ＣＣ（ｉ＋Ｌ）を含む。そして、これら各要素は、対象のビート区間と直前のビート区間の間の、同じコード名同士のコード確率の積の合計値として計算される。例えば、ビート区間ＢＤｉ−Ｌ−１のコード確率とビート区間ＢＤｉ−Ｌのコード確率との間で同じコード名同士のコード確率の積を合計することにより、コード安定スコアＣＣ（ｉ−Ｌ）が算出される。同様に、ビート区間ＢＤｉ＋Ｌ−１のコード確率とビート区間ＢＤｉ＋Ｌのコード確率との間で同じコード名同士のコード確率の積を合計することにより、コード安定スコアＣＣ（ｉ＋Ｌ）が算出される。第１特徴量抽出部１８１は、このような計算を注目ビート区間ＢＤｉの前後Ｌビート分の区間にわたって行い、２Ｌ＋１通りのコード安定スコアを算出する。
【０２２５】
図５４は、コード非変化スコアの計算に用いるコード不安定スコアについて説明するための説明図である。
【０２２６】
図５４を参照すると、ビート区間ＢＤｉのコード不安定スコアは、ビート区間ＢＤｉの前後Ｌビートの各区間について１つずつ定まる要素ＣＵ（ｉ−Ｌ）〜ＣＵ（ｉ＋Ｌ）を含む。そして、これら各要素は、対象のビート区間と直前のビート区間の間の、異なるコード名同士の全ての組合せについてのコード確率の積の合計値として計算される。例えば、ビート区間ＢＤｉ−Ｌ−１のコード確率とビート区間ＢＤｉ−Ｌのコード確率との間で異なるコード名同士のコード確率の積を合計することにより、コード不安定スコアＣＵ（ｉ−Ｌ）が算出される。同様に、ビート区間ＢＤｉ＋Ｌ−１のコード確率とビート区間ＢＤｉ＋Ｌのコード確率との間で異なるコード名同士のコード確率の積を合計することにより、コード不安定スコアＣＵ（ｉ＋Ｌ）が算出される。第１特徴量抽出部１８１は、このような計算を注目ビート区間ＢＤｉの前後Ｌビート分の区間にわたって行い、２Ｌ＋１通りのビート不安定スコアを算出する。
【０２２７】
さらに、第１特徴量抽出部１８１は、注目ビート区間ＢＤｉについて、２Ｌ＋１個の要素ごとにコード安定スコアをコード不安定スコアで除算し、コード非変化スコアを算出する。例えば、注目ビート区間ＢＤｉについてのコード安定スコアＣＣ＝（ＣＣｉ−Ｌ、…、ＣＣｉ＋Ｌ）、コード不安定スコアＣＵ＝（ＣＵｉ−Ｌ、…、ＣＵｉ＋Ｌ）とすると、コード非変化スコアＣＲ＝（ＣＣｉ−Ｌ／ＣＵｉ−Ｌ、…、ＣＣｉ＋Ｌ／ＣＵｉ＋Ｌ）となる。
【０２２８】
かかるコード非変化スコアは、注目ビート区間の周囲の一定の範囲内でコードの変化が少ないほど大きい値を示す。第１特徴量抽出部１８１は、このようなコード非変化スコアを、音声信号に含まれる全てのビート区間について算出する。
【０２２９】
（２）相対コードスコア
相対コードスコアとは、一定の範囲の区間にわたるコードの出現確率とそのパターンを表す特徴量である。相対コードスコアは、キー検出部１７０から入力されるキー進行に合わせてコード確率をシフトさせて生成される。
【０２３０】
図５５は、相対コードスコアの生成処理について説明するための説明図である。
【０２３１】
図５５（Ａ）には、図５０と同様に、キー検出部１７０により決定されたキー進行の一例が示されている。かかるキー進行において、楽曲の先頭から３分経過した時点で、楽曲のキーは“Ｂ”から“Ｃ＃ｍ”へ変化している。さらに、前後Ｌビート分の区間内にキーが変化する時点を含む注目ビート区間ＢＤｉの位置も示されている。
【０２３２】
このとき、第１特徴量抽出部１８１は、キーが“Ｂ”であるビート区間については、当該ビート区間のメジャーとマイナーを含む２４次元のコード確率の要素位置をコード確率ＣＰＢが先頭に来るようにシフトさせた相対コード確率を生成する。また、第１特徴量抽出部１８１は、キーが“Ｃ＃ｍ”であるビート区間については、当該ビート区間のメジャーとマイナーを含む２４次元のコード確率の要素位置をコード確率ＣＰＣ＃ｍが先頭に来るようにシフトさせた相対コード確率を生成する。第１特徴量抽出部１８１は、このような相対コード確率を注目ビート区間の前後Ｌビート分の区間ごとに生成し、生成した相対コード確率の集合（（２Ｌ＋１）×２４次元の特徴量ベクトル）を相対コードスコアとして出力する。
【０２３３】
以上説明した（１）コード非変化スコア及び（２）相対コードスコアよりなる第１特徴量は、第１特徴量抽出部１８１から小節線確率計算部１８４へ出力される。
【０２３４】
［２−７−２．第２特徴量抽出部］
第２特徴量抽出部１８２は、後述する小節線確率の計算に用いられる特徴量として、各ビート区間について、前後Ｌビート分の区間にわたるビート確率の変化の特徴に応じた第２特徴量を抽出する。
【０２３５】
図５６は、第２特徴量抽出部１８２による特徴量抽出処理について説明するための説明図である。
【０２３６】
図５６を参照すると、ビート確率算出部１２０から入力されたビート確率が時間軸に沿って示されている。また、一例として、かかるビート確率を解析して検出された６つのビート、及び注目ビート区間ＢＤｉも示されている。第２特徴量抽出部１８２は、このようなビート確率について、注目ビート区間ＢＤｉの前後Ｌビート分のビート区間に含まれる所定の間隔の小区間ＳＤｊごとにビート確率の平均値を算出する。
【０２３７】
ここで、例えば、音価（Ｍ分のＮ拍子のＭ）が４である拍子を主に検出する場合には、図５６に示したように、小区間をビート間隔を１／４及び３／４に区切る線で区分するのが好適である。その場合、１つの注目ビート区間ＢＤｉについて算出されるビート確率の平均値は、Ｌ×４＋１個となる。従って、第２特徴量抽出部１８２により抽出される第２特徴量は、注目ビート区間ごとにＬ×４＋１次元を有する。また、小区間の間隔はビート間隔の１／２となる。
【０２３８】
なお、楽曲の小節線を適切に検出するためには、少なくとも数小節程度にわたる音声信号の特徴を解析することが求められる。そのため、第２特徴量の抽出に用いるビート確率の範囲を定義するＬの値は、例えば、８ビートなどとするのが好適である。Ｌ＝８の場合には、第２特徴量抽出部１８２により抽出される第２特徴量は、注目ビート区間ごとに３３次元を有する。
【０２３９】
以上説明した第２特徴量は、第２特徴量抽出部１８２から小節線確率計算部１８４へ出力される。
【０２４０】
［２−７−３．小節線確率計算部］
小節線確率計算部１８４は、上述した第１特徴量及び第２特徴量を用いて、ビートごとに、小節線確率を算出する。ここで、本明細書において、小節線確率とは、あるビートがＸ拍子のＹ拍目である確率の集合を意味する。また、本実施形態では、一例として、１／４拍子、２／４拍子、３／４拍子及び４／４拍子の各拍子の各拍数を判別の対象とする。即ち、本実施形態において、ＸとＹの組合せは（Ｘ，Ｙ）＝（１，１）、（２，１）、（２，２）、（３，１）、（３，２）、（３，３）、（４，１）、（４，２）、（４，３）、（４，４）の１０通り存在し、１０種類の小節線確率が算出される。なお、小節線確率計算部１８４により算出される確率値は、後述する小節線確率修正部１８６により楽曲の構造を考慮して修正される。即ち、小節線確率計算部１８４により算出される確率は、修正前の中間的なデータである。小節線確率計算部１８４による小節線確率の算出には、例えば、ロジスティック回帰分析によって予め学習された小節線確率算出式を用いることができる。
【０２４１】
図５７は、小節線確率計算部１８４による小節線確率の計算に用いられる小節線確率算出式の学習処理について説明するための説明図である。
【０２４２】
なお、小節線確率算出式の学習は、上述した小節線確率の種類ごとに行われる。即ち、１／４拍子、２／４拍子、３／４拍子及び４／４拍子の各拍数を判別することを想定すると、１０通りの小節線確率算出式が学習により取得される。
【０２４３】
まず、ロジスティック回帰分析における独立変数として、正解の拍子（Ｘ）と拍数（Ｙ）が既知である音声信号を解析して抽出された第１特徴量と第２特徴量の組を複数用意する。
【０２４４】
次に、用意された第１特徴量と第２特徴量の組のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータ（教師データ）を用意する。例えば、１／４拍子の１拍目である確率を算出するための１／４拍子１拍目判別式を学習する場合には、ダミーデータの値は、既知の拍子と拍数が（１，１）であれば真値（１）、それ以外なら偽値（０）となる。また、例えば、２／４拍子の１拍目である確率を算出するための２／４拍子１拍目判別式を学習する場合には、ダミーデータの値は、既知の拍子と拍数が（２，１）であれば真値（１）、それ以外なら偽値（０）となる。また、その他の拍子及び拍数についても同様である。
【０２４５】
このような独立変数とダミーデータの十分な数の組を用いてロジスティック回帰分析を行うことで、第１特徴量及び第２特徴量から小節線確率を算出するための１０通りの小節線確率算出式が予め取得される。
【０２４６】
そして、小節線確率計算部１８４は、第１特徴量抽出部１８１及び第２特徴量抽出部１８２からそれぞれ入力された第１特徴量及び第２特徴量に小節線確率算出式を適用し、ビート区間ごとに、小節線確率を順次算出する。
【０２４７】
図５８は、小節線確率計算部１８４による小節線確率の計算処理について説明するための説明図である。
【０２４８】
図５８を参照すると、小節線確率計算部１８４は、例えば、注目ビート区間について抽出された第１特徴量及び第２特徴量に予め取得した１／４拍子１拍目判別式を適用し、ビートが１／４拍子の１拍目である小節線確率Ｐｂａｒ´（１，１）を計算する。また、小節線確率計算部１８４は、注目ビート区間について抽出された第１特徴量及び第２特徴量に予め取得した２／４拍子１拍目判別式を適用し、ビートが２／４拍子の１拍目である小節線確率Ｐｂａｒ´（２，１）を計算する。その他の拍子及び拍数についても同様である。
【０２４９】
小節線確率計算部１８４は、このような小節線確率の計算を全てのビートについて繰返し、ビートごとの小節線確率を算出する。小節線確率計算部１８４により算出されたビートごとの小節線確率は、次に説明する小節線確率修正部１８６へ出力される。
【０２５０】
［２−７−４．小節線確率修正部］
小節線確率修正部１８６は、楽曲構造解析部１５０から入力されるビート区間同士の類似確率に基づいて、小節線確率計算部１８４から入力される小節線確率を修正する。
【０２５１】
例えば、ｉ番目の注目ビートがＸ拍子のＹ拍目である修正前の小節線確率をＰｂａｒ´（ｉ，ｘ，ｙ）、ｉ番目のビート区間とｊ番目のビート区間との間の類似確率をＳＰ（ｉ，ｊ）とする。そうすると、修正後の小節線確率Ｐｂａｒ（ｉ，ｘ，ｙ）は、例えば次式で与えられる。
【０２５２】
【数５】
2010122629.tif 000007
【０２５３】
即ち、修正後の小節線確率Ｐｂａｒ（ｉ，ｘ，ｙ）は、注目ビートに対応するビート区間と他のビート区間との間の類似確率を重みとみなし、正規化した当該類似確率を用いて修正前の小節線確率を重み付け加算した値となる。このような確率値の修正により、類似する内容の音声が演奏されているビート間の小節線確率は、修正前の小節線確率と比較して近い値となる。小節線確率修正部１８６により修正されたビートごとの小節線確率は、次に説明する小節線決定部１８８へ出力される。
【０２５４】
［２−７−５．小節線決定部］
小節線決定部１８８は、小節線確率修正部１８６から入力されたビートごとのＸ拍子Ｙ拍目の小節線確率に基づいて、尤もらしい小節線の進行を経路探索により決定する。小節線決定部１８８による経路探索の手法としては、例えば、上述したビタビアルゴリズムを用いることができる。
【０２５５】
図５９は、小節線決定部１８８における経路探索について説明するための説明図である。
【０２５６】
小節線決定部１８８による経路探索にビタビアルゴリズムを適用する場合、時間軸（図５９の横軸）にはビートが順に配置される。また、観測系列（図５９の縦軸）として、小節線確率が算出されたビートの種類（Ｘ拍子Ｙ拍目）を用いる。即ち、小節線決定部１８８は、小節線確率修正部１８６から入力されたビートとビートの種類の全ての組合せの１つ１つを、経路探索の対象のノードとする。
【０２５７】
このようなノードに対し、小節線決定部１８８は、時間軸に沿っていずれかのノードを順に選択する。そして、小節線決定部１８８は、選択した一連のノードよりなる経路を、（１）小節線確率、及び（２）拍子変化確率の２つの評価値を用いて評価する。
【０２５８】
なお、小節線決定部１８８によるノードの選択に際しては、例えば、次のような制約を設けるのが好適である。まず第１に、ビートをスキップすることは許可されない。第２に、例えば４拍子１拍目〜３拍目や３拍子１拍目、２拍目などの小節の途中からの他の拍子への遷移や、小節の途中への他の拍子からの遷移は禁止される。第３に、１拍目から、３拍目若しくは４拍目、又は２拍目から２拍目若しくは４拍目など、拍数の並びが適切でない遷移も禁止される。
【０２５９】
次に、小節線決定部１８８による経路の評価に用いられる評価値のうち、（１）小節線確率は、小節線確率修正部１８６により小節線確率を修正して算出された上述の小節線確率である。小節線確率は、図５９に示した個々のノードごとに与えられる。一方、（２）拍子変化確率とは、ノード間の遷移に対して与えられる評価値である。拍子変化確率は、多数の一般的な楽曲の小節線の進行における拍子の変化の発生確率を集計することにより、変化前のビートの種類と変化後のビートの種類の組合せごとに予め定義される。
【０２６０】
図６０は、拍子変化確率の一例を示す説明図である。
【０２６１】
図６０を参照すると、変化前の４種類の拍子と変化後の４種類の拍子から特定される計１６種類の拍子変化確率が示されている。この例において、例えば、４拍子から１拍子へ変化する拍子変化確率は０．０５、２拍子へ変化する拍子変化確率は０．０３、３拍子へ変化する拍子変化確率は０．０２、４拍子へ変化する（変化なし）拍子変化確率は０．９０である。これは、楽曲の途中で拍子が変化する可能性は通常は高くないこと表している。
【０２６２】
なお、１拍子や２拍子については、小節線の検出の誤差により小節線が正しい位置からずれた際に小節線位置を自動的に復帰させる役目を果たす場合がある。そのため、１拍子や２拍子と他の拍子との間の拍子変化確率は、３拍子や４拍子と他の拍子との間の拍子変化確率よりも高い値としておくのが好適である。
【０２６３】
小節線決定部１８８は、図５９を用いて説明した小節線の進行を表す各経路について、その経路に含まれる各ノードの（１）小節線確率と、ノード間の遷移に対して与えられる上記（２）拍子変化確率を順次乗算する。そして、小節線決定部１８８は、経路の評価値としての乗算結果が最大となる経路を、尤もらしい小節線の進行を表す最適な経路として決定する。
【０２６４】
図６１は、小節線決定部１８８により最適な経路として決定された小節線の進行の一例を示す説明図である。
【０２６５】
図６１では、１番目のビートから８番目のビートについて、小節線決定部１８８により最適経路とされた小節線の進行が示されている（太線枠参照）。かかる例によれば、、各ビートの種類は、１番目のビートから順に、４拍子１拍目、４拍子２拍目、４拍子３拍目、４拍子４拍目、４拍子１拍目、４拍子２拍目、４拍子３拍目、４拍子４拍目である。このように小節線決定部１８８により決定された小節線の進行を表す最適経路は、次に説明する小節線再決定部１８９へ出力される。
【０２６６】
［２−７−６．小節線再決定部］
ここで、通常の楽曲において、ビートの種類の３拍子と４拍子が混在することは稀である。そこで、小節線再決定部１８９は、まず小節線決定部１８８から入力された小節線進行において出現したビートの種類に３拍子と４拍子とが混在しているか否かを判定する。そして、小節線再決定部１８９は、ビートの種類に３拍子と４拍子とが混在していた場合には、より出現頻度の低い拍子を探索の対象から除外して小節線の進行を示す最適な経路を再度探索する。このような小節線再決定部１８９による経路の再探索処理により、経路探索の結果部分的に発生する可能性のある小節線（ビートの種類）の認識の誤りを減少させることができる。
【０２６７】
以上説明した第１特徴量抽出部１８１から小節線再決定部１８９までの処理の後、小節線検出部１８０による小節線検出処理は終了する。小節線検出部１８０により検出された小節線進行（一連のビートの種類）は、次に説明するコード進行検出部１９０へ出力される。
【０２６８】
［２−８．コード進行検出部］
コード進行検出部１９０は、ビート区間ごとの単純キー確率、ビート区間同士の類似確率、及び小節線の進行に基づいて、ビート区間ごとの一連のコードにより構成される尤もらしいコード進行を決定する。
【０２６９】
図６２は、コード進行検出部１９０のより詳細な構成を示すブロック図である。図６２を参照すると、コード進行検出部１９０は、ビート区間特徴量計算部１９２、ルート別特徴量準備部１９４、コード確率計算部１９６、コード確率修正部１９７、及びコード進行決定部１９８を含む。
【０２７０】
［２−８−１．ビート区間特徴量計算部］
ビート区間特徴量計算部１９２は、まず、コード確率算出部１６０のビート区間特徴量計算部１６２と同様に、１２音別エネルギーを計算する（１２音別エネルギーの計算処理については、図２８〜図３０参照）。その代わりに、ビート区間特徴量計算部１９２は、ビート区間特徴量計算部１６２により算出された１２音別エネルギーを取得して利用してもよい。
【０２７１】
次に、ビート区間特徴量計算部１９２は、注目ビート区間の前後Ｎ区間分の１２音別エネルギーと、キー検出部１７０から入力された単純キー確率とを含む拡張ビート区間特徴量を生成する。
【０２７２】
図６３は、ビート区間特徴量計算部１９２により生成される拡張ビート区間特徴量について説明するための説明図である。
【０２７３】
図６３を参照すると、一例として、ビート区間特徴量計算部１９２により、注目ビート区間ＢＤｉの前後Ｎ区間分の１２音別エネルギーＢＦｉ−２、ＢＦｉ−１、ＢＦｉ、ＢＦｉ＋１、ＢＦｉ＋２が抽出されている。なお、ここでは、一例としてＮ＝２としている。また、ビート区間特徴量計算部１９２により、注目ビート区間ＢＤｉにおける単純キー確率（ＳＫＰＣ、…、ＳＫＰＢ）が取得されている。ビート区間特徴量計算部１９２は、このような注目ビート区間の前後Ｎ区間分の１２音別エネルギーと単純キー確率とを含む拡張ビート区間特徴量を全てのビート区間について生成し、ルート別特徴量準備部１９４へ出力する。
【０２７４】
［２−８−２．ルート別特徴量準備部］
ルート別特徴量準備部１９４は、ビート区間特徴量計算部１９２から入力される拡張ビート区間特徴量の要素位置をシフトさせ、１２通りの拡張ルート別特徴量を生成する。
【０２７５】
図６４は、ルート別特徴量準備部１９４による拡張ルート別特徴量生成処理について説明するための説明図である。
【０２７６】
図６４を参照すると、ルート別特徴量準備部１９４は、まず、ビート区間特徴量計算部１９２から入力される拡張ビート区間特徴量を、Ｃ音をルートとする拡張ルート別特徴量とみなす。次に、ルート別特徴量準備部１９４は、Ｃ音をルートとする拡張ルート別特徴量の１２音の要素位置を所定数だけシフトさせることで、Ｃ＃音からＢ音までをそれぞれルートとする、１１通りの拡張ルート別特徴量を生成する。なお、要素位置をシフトさせるシフト数は、図３６を用いて説明したルート別特徴量準備部１６４によるルート別特徴量生成処理でのシフト数と同様である。
【０２７７】
ルート別特徴量準備部１９４は、このような拡張ルート別特徴量生成処理を全てのビート区間について行い、各区間についてのコード確率の再計算に用いる拡張ルート別特徴量を準備する。ルート別特徴量準備部１９４により生成された拡張ルート別特徴量は、コード確率計算部１９６へ出力される。
【０２７８】
［２−８−３．コード確率計算部］
コード確率計算部１９６は、ルート別特徴量準備部１９４から入力された拡張ルート別特徴量を用いて、ビート区間ごとに、各コードが演奏されている確率を表すコード確率を計算する。ここで、各コードとは、上述したように、例えば、ルート（Ｃ、Ｃ＃、Ｄ…）や構成音の数（三和音、四和音（７ｔｈ）、五和音（９ｔｈ））、及び長短（メジャー／マイナー）などにより区別される個々のコードのことをいう。コード確率の算出には、例えば、ロジスティック回帰分析によって予め学習された拡張コード確率算出式を用いることができる。
【０２７９】
図６５は、コード確率計算部１９６によるコード確率の再計算に用いられる拡張コード確率算出式の学習処理について説明するための説明図である。
【０２８０】
なお、拡張コード確率算出式の学習は、コード確率算出式と同様、学習したいコードの種類ごとに行われる。即ち、例えばメジャーコード用の拡張コード確率算出式、マイナーコード用の拡張コード確率算出式、７ｔｈコード用の拡張コード確率算出式、及び９ｔｈコード用の拡張コード確率算出式などについて、それぞれ以下に説明する学習処理が行われる。
【０２８１】
まず、ロジスティック回帰分析における独立変数として、正解のコードが既知であるビート区間ごとの拡張ルート別特徴量（例えば図６４を用いて説明した１２通りの１２×６次元のベクトル）を複数用意する。
【０２８２】
また、ビート区間ごとの拡張ルート別特徴量のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータ（教師データ）を用意する。例えば、メジャーコード用の拡張コード確率算出式を学習する場合には、ダミーデータの値は、既知のコードがメジャーコードであれば真値（１）、それ以外なら偽値（０）となる。また、マイナーコード用の拡張コード確率算出式を学習する場合には、ダミーデータの値は、既知のコードがマイナーコードであれば真値（１）、それ以外なら偽値（０）となる。７ｔｈコード、９ｔｈコードについても同様である。
【０２８３】
このような独立変数とダミーデータを用いて十分な数のビート区間ごとの拡張ルート別特徴量についてロジスティック回帰分析を行うことで、拡張ルート別特徴量から各コード確率を再計算するための拡張コード確率算出式が予め取得される。
【０２８４】
そして、コード確率計算部１９６は、拡張ルート別特徴量準備部１９４から入力された拡張ルート別特徴量に予め取得された拡張コード確率算出式を適用し、ビート区間ごとにコード確率を順次算出する。
【０２８５】
図６６は、コード確率計算部１９６によるコード確率の再計算処理について説明するための説明図である。
【０２８６】
図６６（Ａ）を参照すると、ビート区間ごとの拡張ルート別特徴量のうち、Ｃ音をルートとする拡張ルート別特徴量が示されている。コード確率計算部１９６は、例えば、このＣ音をルートとする拡張ルート別特徴量に予め学習により取得したメジャーコード用の拡張コード確率算出式を適用し、当該ビート区間についてコードが“Ｃ”であるコード確率ＣＰ´Ｃを再計算する。また、コード確率計算部１９６は、Ｃ音をルートとする拡張ルート別特徴量にマイナーコード用の拡張コード確率算出式を適用し、当該ビート区間についてコードが“Ｃｍ”であるコード確率ＣＰ´Ｃｍを再計算する。
【０２８７】
同様に、コード確率計算部１９６は、Ｃ＃音をルートとする拡張ルート別特徴量にメジャーコード用及びマイナーコード用の拡張コード確率算出式を適用し、コード確率ＣＰ´Ｃ＃及びコード確率ＣＰ´Ｃ＃ｍを再計算する（図６６（Ｂ））。コード確率ＣＰ´Ｂ及びコード確率ＣＰ´Ｂｍ（図６６（Ｃ））、並びに図示していない他の種類のコード（７ｔｈや９ｔｈ等を含む）のコード確率の再計算についても同様である。
【０２８８】
コード確率計算部１９６は、このようなコード確率の再計算処理を全ての注目ビート区間について繰返し、再計算したコード確率を次に説明するコード確率修正部１９７へ出力する。
【０２８９】
［２−８−４．コード確率修正部］
コード確率修正部１９７は、楽曲構造解析部１５０から入力されるビート区間同士の類似確率に基づいて、コード確率計算部１９６により再計算されたコード確率を修正する。
【０２９０】
例えば、ｉ番目の注目ビート区間のコードＸのコード確率をＣＰ´Ｘ（ｉ）、ｉ番目のビート区間とｊ番目のビート区間との間の類似確率をＳＰ（ｉ，ｊ）とする。そうすると、修正後のコード確率ＣＰ´´Ｘ（ｉ）は、例えば次式で与えられる。
【０２９１】
【数６】
2010122629.tif 000008
【０２９２】
即ち、修正後のコード確率ＣＰ´´Ｘ（ｉ）は、注目ビートに対応するビート区間と他のビート区間との間の類似確率を重みとみなし、正規化した当該類似確率を用いてコード確率を重み付け加算した値となる。このような確率値の修正により、類似する内容の音声が演奏されているビート区間の間で、コード確率は、その修正前と比較して近い値となる。コード確率修正部１９７により修正されたビート区間ごとのコード確率は、次に説明するコード進行決定部１９８へ出力される。
【０２９３】
［２−８−５．コード進行決定部］
コード進行決定部１９８は、コード確率修正部１９７から入力されたビート位置ごとのコード確率に基づいて、尤もらしいコード進行を経路探索により決定する。コード進行決定部１９８による経路探索の手法としては、例えば、上述したビタビアルゴリズムを用いることができる。
【０２９４】
図６７は、コード進行決定部１９８における経路探索について説明するための説明図である。
【０２９５】
コード進行決定部１９８による経路探索にビタビアルゴリズムを適用する場合、時間軸（図６７の横軸）にはビートが順に配置される。また、観測系列（図６７の縦軸）として、コード確率が算出されたコードの種類を用いる。即ち、コード進行決定部１９８は、コード確率修正部１９７から入力されたビート区間とコードの種類の全ての組合せの１つ１つを、経路探索の対象のノードとする。
【０２９６】
このようなノードに対し、コード進行決定部１９８は、時間軸に沿っていずれかのノードを順に選択する。そして、コード進行決定部１９８は、選択した一連のノードよりなる経路を、（１）コード確率、（２）キーに応じたコード出現確率、（３）小節線に応じたコード遷移確率、及び（４）キーに応じたコード遷移確率の４つの評価値を用いて評価する。なお、コード進行決定部１９８によるノードの選択に際しては、ビートをスキップすることは許可されない。
【０２９７】
コード進行決定部１９８による経路の評価に用いられる評価値のうち、（１）コード確率は、コード確率修正部１９７により修正された上述のコード確率である。コード確率は、図６７に示した個々のノードごとに与えられる。
【０２９８】
また、（２）キーに応じたコード出現確率は、キー検出部１７０から入力されるキー進行によりビート区間ごとに特定されるキーに応じた、各コードの出現確率である。キーに応じたコード出現確率は、多数の楽曲におけるコードの出現確率をその楽曲のキーの種類ごとに集計することにより、予め定義される。例えば、一般的には、キーがＣ音である楽曲におけるコード“Ｃ”、“Ｆ”、及び“Ｇ”の各コードの出現確率は高い。キーに応じたコード出現確率は、図６７に示した個々のノードごとに与えられる。
【０２９９】
また、（３）小節線に応じたコード遷移確率とは、小節線検出部１８０から入力される小節線進行によりビートごとに特定されるビートの種類に応じた、コードの遷移確率である。小節線に応じたコード遷移確率は、多数の楽曲におけるコードの遷移確率をその楽曲の小節線進行における隣り合うビートの種類ごとに集計することにより、予め定義される。例えば、一般的には、小節の変わり目（遷移後が１拍目）や４拍子の２拍目から３拍目への遷移に際してコードが変化する確率は、他の遷移に際してコードが変化する確率よりも高い。小節線に応じたコード遷移確率は、ノード間の遷移に対して与えられる。
【０３００】
また、（４）キーに応じたコード遷移確率とは、キー検出部１７０から入力されるキー進行によりビート区間ごとに特定されるキーに応じた、コードの遷移確率である。キーに応じたコード遷移確率は、多数の楽曲におけるコードの遷移確率をその楽曲のキーの種類ごとに集計することにより、予め定義される。キーに応じたコード遷移確率は、ノード間の遷移に対して与えられる。
【０３０１】
コード進行決定部１９８は、図６７を用いて説明したコード進行を表す各経路について、その経路に含まれる各ノードの上記（１）〜（４）の評価値を順次乗算する。そして、コード進行決定部１９８は、経路の評価値としての乗算結果が最大となる経路を、尤もらしいコード進行を表す最適な経路として決定する。
【０３０２】
図６８は、コード進行決定部１９８により最適な経路として決定されたコード進行の一例を示す説明図である。
【０３０３】
図６８では、１〜６番目のビート区間及びｉ番目のビート区間について、コード進行決定部１９８により最適経路とされたコード進行が示されている（太線枠参照）。かかる例によれば、ビート区間ごとのコードは、１番目のビート区間から順に、“Ｃ”、“Ｃ”、“Ｆ”、“Ｆ”、“Ｆｍ”、“Ｆｍ”、…、“Ｃ”である。
【０３０４】
以上説明したビート区間特徴量計算部１９２からコード進行決定部１９８までの処理の後、コード進行検出部１９０によるコード進行検出処理は終了する。
【０３０５】
＜３．本実施形態に係る情報処理装置の特徴＞
本実施形態に係る情報処理装置１００は、主に次に述べる特徴により、従来手法と比較してより精度の高い音声信号の解析結果を提供する。
【０３０６】
第１に、小節線検出部１８０は、楽曲構造解析部１５０により計算されたビート区間同士の類似確率に応じて決定される修正後の小節線確率（各ビートが何拍子何拍目であるかを表す）に基づいて、音声信号の尤もらしい小節線の進行を決定する。即ち、本実施形態における小節線進行の決定に際して、小節線確率は、ビート区間内で類似する内容の音声が演奏されているビート間では近い値となるように事前に修正され得る。それにより、本来のビートの種類をより正確に反映した小節線確率に基づいて小節線進行を決定することが可能となる。
【０３０７】
また、小節線検出部１８０は、ビート区間ごとのコードの種類又はキーの種類に応じて変動する第１特徴量と、ビート確率に応じて変動する第２特徴量とに基づいて、類似確率を用いて修正される前の小節線確率を計算する。ここで、各ビートが何拍子の何拍目であるかは、通常、コードの変化やキーの変化及びビートを考慮して判断し得る。従って、かかる第１特徴量及び第２特徴量に基づいて算出される小節線確率は、尤もらしい小節線進行の決定に有効である。
【０３０８】
第２に、コード進行検出部１９０は、楽曲構造解析部１５０により計算されたビート区間同士の類似確率に応じて決定される修正後のコード確率に基づいて、音声信号の尤もらしいコード進行を決定する。即ち、本実施形態におけるコード進行の決定に際して、コード確率は、ビート区間内で類似する内容の音声が演奏されているビート間では近い値となるように事前に修正され得る。それにより、実際に演奏されたコードの種類をより正確に反映したコード確率に基づいてコード進行を決定することが可能となる。
【０３０９】
また、コード進行検出部１９０は、注目するビート区間の周囲の区間の１２音別エネルギーに加えて、キー検出部１７０により算出された単純キー確率を含む拡張ビート区間特徴量を用いて、コード進行の決定に使用するコード確率を再計算する。それにより、ビート区間ごとのキーの特徴を考慮して、より正確なコード進行が決定される。
【０３１０】
第３に、楽曲構造解析部１５０は、ビート区間ごとの音程別の平均エネルギーに応じた特徴量の相関に基づいて、前述したビート区間同士の類似確率を算出する。ここで、音程別の平均エネルギーは、演奏された音の音量や音程などの音質的特徴を残している一方で、テンポの時間的変動には影響されにくい。即ち、音程別の平均エネルギーに応じて算出されたビート区間同士の類似確率は、テンポの変動の影響を受けることなく、楽曲のビート、コード又はキーを正確に解析するために有用である。
【０３１１】
また、楽曲構造解析部１５０は、注目するビート区間の周囲に位置する複数のビート区間にわたる特徴量を用いて、ビート区間同士の相関を計算する。即ち、１つのビート区間における音質的特徴が他の１つのビート区間における音質的特徴と類似していても、周囲の複数のビート区間の音質的特徴が異なっていれば、計算される相関係数は高くならない。それにより、１つのビート区間ごとに変化することの少ない楽曲のキー、コード、又は拍子などを、より高い精度で解析することが可能となる。
【０３１２】
第４に、ビート解析部１３０のビート探索部１３６は、想定し得るビート間隔を有するビートにオンセットが一致している度合いを表すビートスコアを用いて、尤もらしいテンポ変動を示すオンセットの最適経路を選択する。それにより、演奏されたテンポを適切に反映したビート位置を検出することが容易となる。
【０３１３】
また、ビート解析部１３０の一定テンポ用ビート再探索部１４０は、ビート探索部１３６により決定された最適経路におけるテンポの変動（ビート間隔の分散）が小さい場合には、最も出現頻度の高いビート間隔の周辺に探索範囲を限定して最適経路を再探索する。それにより、テンポが一定の楽曲について、経路探索の結果部分的に発生する可能性のあるビート位置の誤りを減少させることができる。
【０３１４】
なお、上記以外の本明細書において説明した各特徴も、本実施形態に係る情報処理装置１００による解析結果の精度の向上に寄与していることは言うまでもない。
【０３１５】
＜４．まとめ＞
以上、図１〜図６８を用いて、本発明の一実施形態に係る情報処理装置１００について説明した。
【０３１６】
なお、情報処理装置１００により最終的に出力される情報は、本明細書において説明したビート位置、ビート区間同士の類似確率、キー確率、キー進行、小節線進行、コード確率、又はコード進行などのうちいずれかの情報を含む任意の情報であってよい。また、本明細書において説明した情報処理装置１００の構成のうち一部を部分的に実施することも可能である。例えば、ユーザにとってコード進行を検出することが必要でない場合には、上述したコード進行検出部１９０を省略し、例えば小節線のみを検出するビート解析装置として情報処理装置１００を構成してもよい。
【０３１７】
また、本実施形態では、ビート探索部１３６、キー決定部１７８、小節線決定部１８８、及びコード進行決定部１９８などにおける経路探索のためのアルゴリズムとしてビタビアルゴリズムを使用した。しかしながら、かかる例に限定されず、上記各部において他の任意の経路探索アルゴリズムを使用してもよい。また、本実施形態において使用したロジスティック回帰アルゴリズムの代わりに、他の統計分析アルゴリズムを使用してもよい。
【０３１８】
また、ビート探索部１３６、キー決定部１７８、小節線決定部１８８、及びコード進行決定部１９８のうち２つ以上の処理部における経路探索が同時に実行されてもよい。例えば、２つ以上の処理部における経路探索を同時に実行することで、探索される経路の尤もらしさを包括的に最大化することができる。但し、その場合には経路探索に要する処理コストが大きくなることに留意すべきである。また、経路探索に際して本明細書に記載していない制約条件を追加して探索の範囲を狭め、処理コストを抑制してもよい。
【０３１９】
また、本明細書において説明したように、本実施形態に係る処理においては、様々なパラメータが予め供給される。例えば、オンセット検出用の閾値（図７）、一定テンポ判定用の閾値（図１８）、一定テンポについての経路の再探索範囲の限定用の閾値（図１９）、１２音別エネルギー算出の際の重み付け加算に用いられる重み（図３０）などは、そうしたパラメータの一例である。これらパラメータは、例えば、近傍探索、遺伝的探索（Generic  Algorithm）、又は任意のパラメータ最適化アルゴリズムを用いて事前に最適化しておくことができる。
【０３２０】
さらに、本明細書において説明した情報処理装置１００の各部による一連の処理をハードウェアで実現するかソフトウェアで実現するかは問わない。一連の処理又はその一部をソフトウェアで実行させる場合には、ソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれたコンピュータ、又は例えば図６９に示した汎用コンピュータなどを用いて実行される。
【０３２１】
図６９において、ＣＰＵ（Central  Processing  Unit）９０２は、汎用コンピュータの動作全般を制御する。ＲＯＭ（Read  Only  Memory）９０４には、一連の処理の一部又は全部を記述したプログラム又はデータが格納される。ＲＡＭ（Random  Access  Memory）９０６には、処理の実行時にＣＰＵ９０２により用いられるプログラムやデータなどが一時的に記憶される。
【０３２２】
ＣＰＵ９０２、ＲＯＭ９０４、及びＲＡＭ９０６は、バス９１０を介して相互に接続される。バス９１０にはさらに、入出力インタフェース９１２が接続される。
【０３２３】
入出力インタフェース９１２は、ＣＰＵ９０２、ＲＯＭ９０４、及びＲＡＭ９０６と、入力装置９２０、出力装置９２２、記憶装置９２４、通信装置９２６、及びドライブ９３０とを接続するためのインタフェースである。
【０３２４】
入力装置９２０は、例えばボタンやマウス、キーボードなどの入力装置を介して、ユーザからの指示や情報入力を受け付ける。出力装置９２２は、例えばＣＲＴ（Cathode  Ray  Tube）、液晶ディスプレイ、ＯＬＥＤ（Organic  Light  Emitting  Diode）などの表示装置、又はスピーカなどの音声出力装置を介してユーザに情報を出力する。
【０３２５】
記憶装置９２４は、例えばハードディスクドライブ又はフラッシュメモリなどにより構成され、プログラムやプログラムデータ、入出力データなどを記憶する。通信装置９２６は、ＬＡＮ又はインターネットなどのネットワークを介する通信処理を行う。ドライブ９３０は、必要に応じて汎用コンピュータに設けられ、例えばドライブ９３０にはリムーバブルメディア９３２が装着される。
【０３２６】
本実施形態に係る情報処理措置１００により出力される情報は、楽曲に関連する様々なアプリケーションへの応用が可能である。例えば、小節線検出部１８０により検出された小節線進行とコード進行検出部１９０により検出されたコード進行とを用いて、仮想空間上で楽曲に合わせてキャラクターを動作させるアプリケーションを実現してもよい。また、例えば、コード進行検出部１９０により検出されたコード進行を用いて、自動的に楽譜にコード進行を記入するアプリケーションなどを実現してもよい。
【０３２７】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０３２８】
例えば、フローチャートに記載した処理を、必ずしもフローチャートに記載された順序に沿って実行しなくてもよい。各処理ステップは、並列的あるいは個別に独立して実行される処理を含んでもよい。
【図面の簡単な説明】
【０３２９】
【図１】一実施形態に係る情報処理装置の論理的な構成を示すブロック図である。
【図２】ログスペクトルの一例を示す説明図である。
【図３】ログスペクトルの他の例を示す説明図である。
【図４】ビート確率算出式の学習処理について説明するための説明図である。
【図５】ビート確率算出部により算出されるビート確率の一例を示す説明図である。
【図６】ビート解析部のより詳細な構成の一例を示すブロック図である。
【図７】ビート確率から検出されるオンセットの一例を示す説明図である。
【図８】オンセット検出処理の流れの一例を示すフローチャートである。
【図９】オンセット検出部により検出されるオンセットの位置をビート確率に対応させて示した説明図である。
【図１０】ビートスコア計算処理について説明するための説明図である。
【図１１】ビートスコア計算処理の流れの一例を示すフローチャートである。
【図１２】ビートスコア計算部により出力されるビートスコアを可視化したビートスコア分布図である。
【図１３】ビート探索部における経路探索について説明するための説明図である。
【図１４】テンポ変化スコアの一例を示す説明図である。
【図１５】オンセット移動スコアの一例を示す説明図である。
【図１６】スキップペナルティの一例を示す説明図である。
【図１７】ビート探索部により決定される最適経路の一例を示す説明図である。
【図１８】一定テンポ判定部による判定結果の２つの例を示す説明図である。
【図１９】一定テンポ用ビート再探索部による経路の再探索処理について説明するための説明図である。
【図２０】ビート決定部によるビート決定処理について説明するための説明図である。
【図２１】ビート決定部によるビート補完処理について説明するための説明図である。
【図２２】定数倍の関係にあるテンポを例示する説明図である。
【図２３】推定テンポ判別式の学習処理について説明するための説明図である。
【図２４】基本倍率ごとの平均ビート確率について説明するための説明図である。
【図２５】テンポ補正部より算出されるテンポ尤度について説明するための説明図である。
【図２６】テンポ補正処理の流れの一例を示すフローチャートである。
【図２７】楽曲構造解析部のより詳細な構成を示すブロック図である。
【図２８】ビート、ビート区間、及びビート区間特徴量の相互の関係を示す説明図である。
【図２９】ビート区間特徴量の計算処理について説明するための第１の説明図である。
【図３０】ビート区間特徴量の計算処理について説明するための第２の説明図である。
【図３１】相関係数計算処理について説明するための説明図である。
【図３２】相関係数から類似確率への変換曲線の一例を説明するための説明図である。
【図３３】ビート区間同士の類似確率の一例を可視化した説明図である。
【図３４】コード確率算出部のより詳細な構成を示すブロック図である。
【図３５】ルート別特徴量生成処理について説明するための第１の説明図である。
【図３６】ルート別特徴量生成処理について説明するための第２の説明図である。
【図３７】コード確率算出式の学習処理について説明するための説明図である。
【図３８】コード確率の計算処理について説明するための説明図である。
【図３９】コード確率計算部により算出されるコード確率の一例を示す説明図である。
【図４０】キー検出部のより詳細な構成を示すブロック図である。
【図４１】相対コード確率生成処理について説明するための説明図である。
【図４２】ビート区間ごとのコード出現スコアについて説明するための説明図である。
【図４３】ビート区間ごとのコード遷移出現スコアについて説明するための説明図である。
【図４４】キー確率算出式の学習処理について説明するための説明図である。
【図４５】キー確率の計算処理について説明するための説明図である。
【図４６】キー確率計算部により算出されるキー確率の一例を示す説明図である。
【図４７】単純キー確率の計算処理について説明するための説明図である。
【図４８】キー決定部における経路探索について説明するための説明図である。
【図４９】キー遷移確率の一例を示す説明図である。
【図５０】キー決定部により決定されるキー進行の一例を示す説明図である。
【図５１】小節線検出部のより詳細な構成を示すブロック図である。
【図５２】第１特徴量抽出部による特徴量抽出処理について説明するための説明図である。
【図５３】コード安定スコアについて説明するための説明図である。
【図５４】コード不安定スコアについて説明するための説明図である。
【図５５】相対コードスコアの生成処理について説明するための説明図である。
【図５６】第２特徴量抽出部による特徴量抽出処理について説明するための説明図である。
【図５７】小節線確率算出式の学習処理について説明するための説明図である。
【図５８】小節線確率の計算処理について説明するための説明図である。
【図５９】小節線決定部における経路探索について説明するための説明図である。
【図６０】拍子変化確率の一例を示す説明図である。
【図６１】小節線決定部により決定される小節線の進行の一例を示す説明図である。
【図６２】コード進行検出部のより詳細な構成を示すブロック図である。
【図６３】拡張ビート区間特徴量について説明するための説明図である。
【図６４】拡張ルート別特徴量生成処理について説明するための説明図である。
【図６５】拡張コード確率算出式の学習処理について説明するための説明図である。
【図６６】コード確率の再計算処理について説明するための説明図である。
【図６７】コード進行決定部における経路探索について説明するための説明図である。
【図６８】コード進行決定部により決定されるコード進行の一例を示す説明図である。
【図６９】汎用コンピュータの構成例を示すブロック図である。
【符号の説明】
【０３３０】
１００        情報処理装置
１１０        ログスペクトル変換部
１２０        ビート確率算出部
１３０        ビート解析部
１３２        オンセット検出部
１３４        ビートスコア計算部
１３６        ビート探索部
１３８        一定テンポ判定部
１４０        一定テンポ用ビート再探索部
１４２        ビート決定部
１４４        テンポ補正部
１５０        楽曲構造解析部
１５２        ビート区間特徴量計算部
１５４        相関計算部
１５６        類似確率生成部
１６０        コード確率算出部
１６２        ビート区間特徴量計算部
１６４        ルート別特徴量準備部
１６６        コード確率計算部（暫定値）
１７０        キー検出部
１７２        相対コード確率生成部
１７４        特徴量準備部
１７６        キー確率計算部
１７８        キー決定部
１８０        小節線検出部
１８１        第１特徴量抽出部
１８２        第２特徴量抽出部
１８４        小節線確率計算部
１８６        小節線確率修正部
１８８        小節線決定部
１８９        小節線再決定部
１９０        コード進行検出部
１９２        ビート区間特徴量計算部
１９４        ルート別特徴量準備部
１９６        コード確率計算部
１９７        コード確率修正部
１９８        コード進行決定部
【図１】
2010122629.tif 000009
【図２】
2010122629.tif 000010
【図３】
2010122629.tif 000011
【図４】
2010122629.tif 000012
【図５】
2010122629.tif 000013
【図６】
2010122629.tif 000014
【図７】
2010122629.tif 000015
【図８】
2010122629.tif 000016
【図９】
2010122629.tif 000017
【図１０】
2010122629.tif 000018
【図１１】
2010122629.tif 000019
【図１２】
2010122629.tif 000020
【図１３】
2010122629.tif 000021
【図１４】
2010122629.tif 000022
【図１５】
2010122629.tif 000023
【図１６】
2010122629.tif 000024
【図１７】
2010122629.tif 000025
【図１８】
2010122629.tif 000026
【図１９】
2010122629.tif 000027
【図２０】
2010122629.tif 000028
【図２１】
2010122629.tif 000029
【図２２】
2010122629.tif 000030
【図２３】
2010122629.tif 000031
【図２４】
2010122629.tif 000032
【図２５】
2010122629.tif 000033
【図２６】
2010122629.tif 000034
【図２７】
2010122629.tif 000035
【図２８】
2010122629.tif 000036
【図２９】
2010122629.tif 000037
【図３０】
2010122629.tif 000038
【図３１】
2010122629.tif 000039
【図３２】
2010122629.tif 000040
【図３３】
2010122629.tif 000041
【図３４】
2010122629.tif 000042
【図３５】
2010122629.tif 000043
【図３６】
2010122629.tif 000044
【図３７】
2010122629.tif 000045
【図３８】
2010122629.tif 000046
【図３９】
2010122629.tif 000047
【図４０】
2010122629.tif 000048
【図４１】
2010122629.tif 000049
【図４２】
2010122629.tif 000050
【図４３】
2010122629.tif 000051
【図４４】
2010122629.tif 000052
【図４５】
2010122629.tif 000053
【図４６】
2010122629.tif 000054
【図４７】
2010122629.tif 000055
【図４８】
2010122629.tif 000056
【図４９】
2010122629.tif 000057
【図５０】
2010122629.tif 000058
【図５１】
2010122629.tif 000059
【図５２】
2010122629.tif 000060
【図５３】
2010122629.tif 000061
【図５４】
2010122629.tif 000062
【図５５】
2010122629.tif 000063
【図５６】
2010122629.tif 000064
【図５７】
2010122629.tif 000065
【図５８】
2010122629.tif 000066
【図５９】
2010122629.tif 000067
【図６０】
2010122629.tif 000068
【図６１】
2010122629.tif 000069
【図６２】
2010122629.tif 000070
【図６３】
2010122629.tif 000071
【図６４】
2010122629.tif 000072
【図６５】
2010122629.tif 000073
【図６６】
2010122629.tif 000074
【図６７】
2010122629.tif 000075
【図６８】
2010122629.tif 000076
【図６９】
2010122629.tif 000077