特許第6295794号(P6295794)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤマハ株式会社の特許一覧

特許6295794音響信号分析装置及び音響信号分析プログラム
<>
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000031
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000032
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000033
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000034
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000035
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000036
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000037
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000038
  • 特許6295794-音響信号分析装置及び音響信号分析プログラム 図000039
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6295794
(24)【登録日】2018年3月2日
(45)【発行日】2018年3月20日
(54)【発明の名称】音響信号分析装置及び音響信号分析プログラム
(51)【国際特許分類】
   G10G 3/04 20060101AFI20180312BHJP
   G10L 25/51 20130101ALI20180312BHJP
【FI】
   G10G3/04
   G10L25/51 300
【請求項の数】4
【全頁数】18
(21)【出願番号】特願2014-79879(P2014-79879)
(22)【出願日】2014年4月9日
(65)【公開番号】特開2015-200803(P2015-200803A)
(43)【公開日】2015年11月12日
【審査請求日】2017年2月20日
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】110000213
【氏名又は名称】特許業務法人プロスペック特許事務所
(74)【代理人】
【識別番号】100168756
【弁理士】
【氏名又は名称】日比野 元彦
(72)【発明者】
【氏名】前澤 陽
【審査官】 上田 雄
(56)【参考文献】
【文献】 特開2010−122629(JP,A)
【文献】 特開2007−052394(JP,A)
【文献】 特開2008−102405(JP,A)
【文献】 特開2009−139769(JP,A)
【文献】 国際公開第2013/164661(WO,A1)
【文献】 PAPADOPOULOS, H. and PEETERS, G.,SIMULTANEOUS ESTIMATION OF CHORD PROGRESSION AND DOWNBEATS FROM AN AUDIO FILE,Proc. ICASSP 2008,米国,IEEE,2008年 3月31日,pp.121-124
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00− 3/04
G10H 1/00− 7/12
G10L 25/00−25/93
(57)【特許請求の範囲】
【請求項1】
分析対象としての楽曲の演奏音を表わす音響信号を取り込む音響信号取得手段と、
前記取り込んだ音響信号に基づいて、前記楽曲の各区間において発音される和音に関する特徴を表わす第1特徴量、拍の存在に関する特徴を表わす第2特徴量及びテンポに関する特徴を表わす第3特徴量を計算する特徴量計算手段と、
前記第1乃至第3特徴量の観測尤度を計算する観測尤度計算手段と、
前記楽曲の各区間において発音される和音に関する物理量の系列として記述された第1モデルであって前記各区間が属する小節内における前記各区間の位置に関連して各状態間の遷移確率が設定されている第1モデルの事後分布と、前記楽曲の各区間における拍の存在に関する物理量、テンポに関する物理量及び前記各区間が属する小節内における前記各区間の位置に関する物理量の組み合わせの系列として記述された第2モデルの事後分布とを、前記計算した観測尤度及び所定の事前分布を用いて同時に計算する事後分布計算手段と、
を備えた音響信号分析装置。
【請求項2】
請求項1に記載の音響信号分析装置において、
前記事後分布計算手段は、変分ベイズ推定法を用いて、前記第1モデル及び前記第2モデルの事後分布をそれぞれ近似的に計算する、音響信号分析装置。
【請求項3】
請求項2に記載の音響信号分析装置において、
前記第1モデル及び前記第2モデルの各状態の遷移確率の事前分布は、ディリクレ分布に従う、音響信号分析装置。
【請求項4】
音響信号分析装置が備えるコンピュータに、
分析対象としての楽曲の演奏音を表わす音響信号を取り込む音響信号取得ステップと、
前記取り込んだ音響信号に基づいて、前記楽曲の各区間において発音される和音に関する特徴を表わす第1特徴量、拍の存在に関する特徴を表わす第2特徴量及びテンポに関する特徴を表わす第3特徴量を計算する特徴量計算ステップと、
前記第1乃至第3特徴量の観測尤度を計算する観測尤度計算ステップと、
前記楽曲の各区間において発音される和音に関する物理量の系列として記述された第1モデルであって前記各区間が属する小節内における前記各区間の位置に関連して各状態間の遷移確率が設定されている第1モデルの事後分布と、前記楽曲の各区間における拍の存在に関する物理量、テンポに関する物理量及び前記各区間が属する小節内における前記各区間の位置に関する物理量の組み合わせの系列として記述された第2モデルの事後分布とを、前記計算した観測尤度及び所定の事前分布を用いて計算する事後分布計算ステップと、
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楽曲を表わす音響信号を分析して、楽曲における拍点(拍のタイミング)、テンポ、小節線の位置、及び楽曲の各区間で発音されるコード(和音)を推定する音響信号分析装置及び音響信号分析プログラムに関する。
【背景技術】
【0002】
従来から、例えば、下記非特許文献1に記載されているように、楽曲における拍点、及び楽曲の各区間で発音されるコード(和音)を推定する音響信号分析装置は知られている。この音響信号分析装置は、まず、音響信号を分析して、楽曲の拍点を推定している。そして、前記推定した拍点においてコード変化が生起し、かつ小節の先頭でコード変化が生起するという仮定の下で、楽曲の各区間のコード及び小節線の位置を推定している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】M.Goto et al. 、“SONGLE: A WEB SERVICE FOR ACTIVE MUSIC LISTENING IMPROVED BY USER CONTRIBUTIONS”、ISMIR、2011、p.311−316
【発明の概要】
【0004】
上記非特許文献1に記載の音響信号分析装置においては、拍点の推定精度が低い場合には、コードの推定精度及び小節線の位置の推定精度も低くなる。
【0005】
本発明は上記問題に対処するためになされたもので、その目的は、拍点、テンポ、小節線の位置及びコード進行の推定精度を向上させた音響信号分析装置及び音響信号分析プログラムを提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【0006】
上記目的を達成するために、本発明の特徴は、分析対象としての楽曲の演奏音を表わす音響信号を取り込む音響信号取得手段(S11)と、前記取り込んだ音響信号に基づいて、前記楽曲の各区間において発音される和音に関する特徴を表わす第1特徴量(x(c))、拍の存在に関する特徴を表わす第2特徴量(x(o))及びテンポに関する特徴を表わす第3特徴量(x(b))を計算する特徴量計算手段(S14)と、前記第1乃至第3特徴量の観測尤度(L(c),L(o),L(b),L(o,b))を計算する観測尤度計算手段(S15)と、前記楽曲の各区間において発音される和音に関する物理量の系列として記述された第1モデル(Z(c))であって前記各区間が属する小節内における前記各区間の位置に関連して各状態間の遷移確率(τi,j(c))が設定されている第1モデルの事後分布と、前記楽曲の各区間における拍の存在に関する物理量(n)、テンポに関する物理量(b)及び前記各区間が属する小節内における前記各区間の位置に関する物理量(s)の組み合わせの系列として記述された第2モデル(Z(o))の事後分布とを、前記計算した観測尤度及び所定の事前分布を用いて同時(一体的)に計算する事後分布計算手段(S16〜S26)と、を備えた音響信号分析装置(10)としたことにある。
【0007】
この場合、前記事後分布計算手段は、変分ベイズ推定法を用いて、前記第1モデル及び前記第2モデルの事後分布をそれぞれ近似的に計算するとよい。
【0008】
また、この場合、前記第1モデル及び前記第2モデルの各状態の遷移確率の事前分布は、ディリクレ分布に従うとよい。
【0009】
一般に、コードの変化は、拍点において生起する可能性が高い。また、遷移元のコードと遷移先のコードは、遷移先(又は遷移元)の区間が属する小節内における前記区間の位置(言い換えれば、前記区間からみた直前の小節線から数えた拍数。)に依存する。以下、「遷移先(又は遷移元)の区間が属する小節内における前記区間の位置」を「拍子位置」と呼ぶ。そこで、本発明に係る音響信号分析装置においては、各区間のコードの系列として記述された第1モデルの各状態間の遷移確率が、拍子位置に関連して設定されている。そして、第1モデルの事後分布と、前記楽曲の各区間における拍の存在に関する物理量、テンポに関する物理量及び前記各区間が属する小節内における前記各区間の位置(つまり拍子位置)に関する物理量の組み合わせの系列として記述された第2モデルの事後分布とが、同時(一体的)に計算される。第1モデルと第2モデルとは、拍子位置に関して互いに依存しており、この両モデルの事後分布を同時(一体的)に計算することにより、楽曲における拍点、テンポ、拍子位置、及びコードに関する情報が精度良く得られる。言い換えれば、一方のモデルの推定結果が他方のモデルの推定結果にフィードバックされて推定結果が更新される。これにより、両モデルの推定精度が高められる。したがって、本発明に係る音響信号分析装置によれば、拍点、テンポ、小節線の位置及びコード進行の推定精度を従来よりも向上させることができる。
【0010】
また、本発明は、音響信号分析装置が備えるコンピュータに適用されるコンピュータプログラムとしても実施可能である。
【図面の簡単な説明】
【0011】
図1】本発明の一実施形態に係る音響信号分析装置の構成を表わすブロック図である。
図2A】音響信号分析処理の前半部分を表わすフローチャートである。
図2B】音響信号分析処理の後半部分を表わすフローチャートである。
図3】分析対象の楽曲を表わす音響信号の波形を表わすグラフである。
図4】コード特徴量の概念図である。
図5】コムフィルタのブロック図である。
図6】BPM特徴量の計算結果を示すグラフである。
図7】テンプレートの構成を示す表である。
図8】推定結果の表示例である。
【発明を実施するための形態】
【0012】
本発明の一実施形態に係る音響信号分析装置10について説明する。音響信号分析装置10は、以下説明するように、楽曲を表わす音響信号を取り込んで、その楽曲における拍点、テンポ、小節線の位置及びコード進行を検出する。音響信号分析装置10は、図1に示すように、入力操作子11、コンピュータ部12、表示器13、記憶装置14、外部インターフェース回路15及びサウンドシステム16を備えており、これらがバスBSを介して接続されている。
【0013】
入力操作子11は、オン・オフ操作に対応したスイッチ(例えば数値を入力するためのテンキー)、回転操作に対応したボリューム又はロータリーエンコーダ、スライド操作に対応したボリューム又はリニアエンコーダ、マウス、タッチパネルなどから構成される。これらの操作子は、演奏者の手によって操作されて、分析対象の楽曲の選択、音響信号の分析開始又は停止、楽曲の再生又は停止(後述するサウンドシステム16からの出力又は停止)、音響信号の分析に関する各種パラメータの設定などに用いられる。入力操作子11を操作すると、その操作内容を表す操作情報が、バスBSを介して、後述するコンピュータ部12に供給される。
【0014】
コンピュータ部12は、バスBSにそれぞれ接続されたCPU12a、ROM12b及びRAM12cからなる。CPU12aは、詳しくは後述する音響信号分析プログラム及びそのサブルーチンをROM12bから読み出して実行する。ROM12bには、音響信号分析プログラム及びそのサブルーチンに加えて、初期設定パラメータ、表示器13に表示される画像を表わす表示データを生成するための図形データ及び文字データなどの各種データが記憶されている。RAM12cには、音響信号分析プログラムの実行時に、各種データが一時的に記憶される。
【0015】
表示器13は、液晶ディスプレイ(LCD)によって構成される。コンピュータ部12は、図形データ、文字データなどを用いて表示すべき内容を表わす表示データを生成して表示器13に供給する。表示器13は、コンピュータ部12から供給された表示データに基づいて画像を表示する。例えば分析対象の楽曲の選択時には、楽曲のタイトルリストが表示される。また、例えば分析終了時には、拍点及び小節線を表わすグラフ、テンポの推移を表わすグラフ、コード進行を表わすコード名の系列などが表示される。
【0016】
また、記憶装置14は、HDD、FDD、CD−ROM、MO、DVDなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットから構成されている。記憶装置14には、複数の楽曲をそれぞれ表わす複数の楽曲データが記憶されている。楽曲データは、楽曲を所定のサンプリング周期(例えば1/44100秒)でサンプリングして得られた複数のサンプル値からなり、各サンプル値が記憶装置14における連続するアドレスに順に記録されている。楽曲のタイトルを表わすタイトル情報、楽曲データの容量を表わすデータサイズ情報なども楽曲データに含まれている。楽曲データは予め記憶装置14に記憶されていてもよいし、後述する外部インターフェース回路15を介して外部機器から取り込んでもよい。
【0017】
外部インターフェース回路15は、音響信号分析装置10を電子音楽装置、パーソナルコンピュータなどの外部機器に接続可能とする接続端子を備えている。音響信号分析装置10は、外部インターフェース回路15を介して、LAN(Local Area Network)、インターネットなどの通信ネットワークにも接続可能である。
【0018】
サウンドシステム16は、楽曲データをアナログ音信号に変換するD/A変換器、変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力する左右一対のスピーカを備えている。ユーザが入力操作子11を用いて分析対象の楽曲の再生を指示すると、CPU12aは、分析対象の楽曲データをサウンドシステム16に供給する。これにより、ユーザは分析対象の楽曲を試聴できる。
【0019】
つぎに、音響信号分析装置10の動作の概略を説明する。本実施形態においては、分析対象の楽曲は複数のフレームt(=0,1,・・・)に分割される。各フレームtにおける、直前の小節線からの拍数として表わされた拍子位置s(例えば、4拍子の楽曲においては、「s」は、「1」、「2」、「3」又は「4」)、次の拍までのフレーム数n及び拍周期bの値(テンポの逆数に比例する値)の値の組み合わせの系列によって表わされたモデルZ(o)図8参照)と、各フレームtにおいて発音されているコード(和音)i(=「C」、「Cm」、「D」、・・・)の系列によって表されたモデルZ(c)図8参照)と、に基づいて、拍点、テンポ、小節線の位置(具体的には各フレームの拍子位置)及びコード進行が、ベイズ推定法を用いて同時(一体的)に推定される。なお、詳しくは後述するように、コードの遷移は、拍子位置に関連している。したがって、上記の両モデルは互いに関連付けられている。ただし、ベイズ推定を解析的に実行することは困難であるので、本実施形態では、変分ベイズ法を用いる。具体的には、下記の式(1)に示すような変分事後分布の積として表わされる分布を真の事後分布に近似させる。つまり、前記変分事後分布の積として表わされる分布と真の事後分布との差が収束するまで、各変分事後分布を反復的に更新する。なお、拍周期bは、フレームの数によって表わされる。したがって、拍周期bの値は「1≦b≦bmax」を満たす整数であり、拍周期bの値が「η」である状態では、フレーム数nの値は「0≦n<η」を満たす整数である。
【数1】
【0020】
また、上記の式(1)における「θ(c)」は、コード進行のモデル(つまり、モデルZ(c))に関連するパラメータである。具体的には、「θ(c)」は、詳しくは後述する、各コードiに対応したコード特徴量x(c)を規定するパラメータ、及び各コードiに対応したテンプレートである。また、「θ(o)」は、拍点のモデル(つまり、モデルZ(o))に関連するパラメータである。具体的には、「θ(o)」は、詳しくは後述する、オンセット特徴量x(o)の分布(正規分布)を規定するパラメータである。また、「θ(b)」は、テンポのモデル(つまり、モデルZ(o))に関連するパラメータである。具体的には、「θ(b)」は、詳しくは後述する、拍周期bに対応したテンプレートである。
【0021】
つぎに、音響信号分析装置10の動作について具体的に説明する。ユーザが音響信号分析装置10の図示しない電源スイッチをオンにすると、CPU12aは、図2A及び図2Bに示す音響信号分析プログラムをROM12bから読み出して実行する。なお、図2Bにおいては、「判断」のステップを六角形で示す。
【0022】
CPU12aは、ステップS10にて音響信号分析処理を開始し、ステップS11にて、記憶装置14に記憶されている複数の楽曲データにそれぞれ含まれるタイトル情報を読み込んで、楽曲のタイトルをリスト形式で表示器13に表示する。ユーザは、入力操作子11を用いて、表示器13に表示された楽曲の中から分析対象の楽曲データを選択する。なお、ステップS11にて分析対象の楽曲データを選択する際、選択しようとする楽曲データが表す楽曲の一部又は全部を再生して楽曲データの内容を確認できるように構成してもよい。
【0023】
つぎに、CPU12aは、ステップS12にて、音響信号分析のための初期設定処理を実行する。具体的には、前記選択された楽曲データのデータサイズ情報に応じた記憶領域をRAM12c内に確保し、前記確保した記憶領域に前記選択された楽曲データを読み込む。また、後述するコード特徴量x(c)、オンセット特徴量x(o)、BPM特徴量x(b)などを記憶する記憶領域をRAM12c内に確保する。また、後述する変分事後分布を計算するために一時的に利用される変数を記憶する記憶領域をRAM12c内に確保する。また、同ステップS12において、ユーザは、前記選択した楽曲の調keyを、入力操作子11を用いて入力する。つまり、本実施形態においては、前記選択した楽曲の調keyが既知である。
【0024】
CPU12aは、ステップS13にて、図3に示すように、前記選択された楽曲を所定の時間間隔をおいて区切り、複数のフレームt(=0,1,・・・)に分割する。各フレームの長さは共通である。
【0025】
次に、CPU12aは、ステップS14にて、各フレームtの各特徴量を計算する。具体的には、CPU12aは、コード(和音)に関する特徴を表わすコード特徴量x(c)、拍の存在に関する特徴を表すオンセット特徴量x(o)、及びテンポに関する特徴を表すBPM(beats per minute(1分間あたりの拍数))特徴量x(b)をフレームtごとに計算する。
【0026】
フレームtのコード特徴量x(c)(t)は次のようにして計算される。まず、CPU12aは、各フレームtの各周波数ビンのパワーを、その周波数に最も近い音高の周波数(例えば平均律における各音高の基本周波数)にマッピングする。次に、上記のようにして各音高にマッピングされたパワーのうち、低音域(例えば「B1」以下)に属するパワーをピッチクラス(C,C#,D,・・・,B#)ごとに加算(又は積算)する。このようにして計算された各ピッチクラスのパワーからなる12次元の特徴量をベース特徴量HPCP(B)と呼ぶ(図4参照)。また、各音高にマッピングされたパワーのうち、高音域(例えば「C2」以上)に属するパワーをピッチクラス(C,C#,D,・・・,B#)ごとに加算(又は積算)する。このようにして計算された各ピッチクラスのパワーからなる12次元の特徴量をトレブル特徴量HPCP(T)と呼ぶ。各フレームtに関するベース特徴量HPCP(B)及びトレブル特徴量HPCP(T)からなる24次元の特徴量がコード特徴量x(c)(t)である。
【0027】
フレームtのオンセット特徴量x(o)(t)は、次のようにして計算される。CPU12aは、まず、フレームtに対して短時間フーリエ変換を実行し、各周波数ビンの信号強度を計算する。次に、CPU12aは、メルフィルタバンクを用いて、各周波数帯域fb(例えば、y=1,2,・・・,20)の信号強度M(fb,t)を計算する。次に、CPU12aは、フレーム間における各周波数帯域の信号強度の増加量R(fb,t)を計算する。下記の式(2)に示すように、フレーム間における前記各周波数帯域の信号強度の増加量の総和がオンセット特徴量x(o)(t)である。
【数2】
【0028】
フレームtのBPM特徴量x(b)(t)は、次のようにして計算される。CPU12aは、まず、オンセット特徴量x(o)(0),x(o)(1)・・・をこの順にフィルタバンクFBB(図5参照)に入力する。フィルタバンクFBBは、拍周期bの値に応じてそれぞれ設けられた複数のコムフィルタCFからなる。コムフィルタCFは、1つのデータが入力される度に1つのデータを出力する。コムフィルタCFは、過去の出力データを拍周期bの値に応じた個数だけ記憶するFIFO(=First In First Out)メモリを有しており、入力されたデータと前記記憶手段に記憶されているデータのうちの最古のデータを所定の比率(例えば、1:1(すなわち、λ=0.5))で加算して出力する。オンセット特徴量x(o)の系列x(o)(t){=x(o)(0),x(o)(1)・・・}をフィルタバンクFBBに入力することにより得られたデータx(D)の系列x(D)(t){=x(D)(0),x(D)(1)・・・の時系列を逆にして、フィルタバンクFBBに再度入力することにより、拍周期bに関するBPM特徴量の系列x(b)(t){=x(b)(0),x(b)(1)・・・}が得られる。フレームtのBPM特徴量x(b)(t)は、拍周期bごとに計算されたBPM特徴量xb=1,2・・・(b)(t)の集合として表わされる(図6参照)。
【0029】
次に、CPU12aは、ステップS15にて、各フレームtの各特徴量の観測尤度を計算する。具体的には、CPU12aは、コード特徴量x(c)(t)の観測尤度L(c)(t)、オンセット特徴量x(o)(t)の観測尤度L(o)(t)及びBPM特徴量x(b)(t)の観測尤度L(b)(t)を計算する。
【0030】
コード特徴量x(c)(t)の観測尤度L(c)(t)は下記の式(3)のように表わされる。
【数3】
【0031】
対数観測尤度L(c)(t)は、トレブル特徴量HPCP(T)及びベース特徴量HPCP(B)のテンプレートTMP(T)及びテンプレートTMP(B)に対する適合度に相当する。テンプレートTMP(T)及びテンプレートTMP(B)は、コードiに対応する係数列である。例えば、「Cmaj」に対応する係数列TMPi=Cmaj(T)は、{1,0,0,0,1,0,0,1,0,0,0,0}と表わされる。また、「Cmin」に対応する係数列TMPi=Cmin(T)は、{1,0,0,1,0,0,0,1,0,0,0,0}と表わされる。なお、テンプレートTMP(B)は、テンプレートTMP(T)よりもルート音に対応する成分が強調されている。トレブル特徴量HPCP(T)と係数列TMP(T)とのコサイン距離、及びベース特徴量HPCP(B)と係数列TMP(B)とのコサイン距離の重み付け和が、対数観測尤度L(c)(t)である。例えば、トレブル特徴量HPCP(T)と係数列TMP(T)とのコサイン距離、及びベース特徴量HPCP(B)と係数列TMP(B)とのコサイン距離の重み係数をそれぞれ「1.0」及び「1.0」に設定する。ベース音を重視する場合には、前記重み係数をそれぞれ「1.0」及び「2.0」に設定すればよい。なお、「z(c)(t)」は、次に説明するような2値変数である。すなわち、この変数は、フレームtにおいて、コードが「i」である場合に「1」であり、それ以外の場合に「0」である。
【0032】
オンセット特徴量x(o)(t)及びBPM特徴量x(b)(t)の観測尤度L(o)(t)及び観測尤度L(b)(t)は下記の式(4)及び式(5)のように表わされる。なお、式(4)及び式(5)における「:」は、その次元に関する総和を意味する(下記の式(6)参照)。
【数4】
【数5】
【数6】
【0033】
本実施形態においては、オンセット特徴量x(o)(t)は、次の拍点までのフレーム数nの値に応じて設定された正規分布に従うものとする。つまり、オンセット特徴量x(o)(t)の観測尤度L(o)(t)は、次の拍点までのフレーム数nの値に応じて設定された正規分布の確率変数としてオンセット特徴量x(o)(t)を代入することにより計算される。例えば、フレーム数nの値が「0」であるときは、平均値が「3」であって、且つ分散が「1」である正規分布が用いられる。また、フレーム数nの値が「0」でないとき、平均値が「0」であって、且つ分散が「1」である正規分布が用いられる。上記の両正規分布を規定する平均値及び分散が上記式(1)における「θ(o)」である。フレーム数nの値が「0」であるときの正規分布を規定するパラメータが式(4)における「θ(o)」である。フレーム数nの値が「0」でないときの正規分布を規定するパラメータが式(4)における「θ(o)」である。なお、「zs,n,b(o)(t)」は、次に説明するような2値変数である。すなわち、この変数は、フレームtにおいて、拍子位置が「s」であり、次の拍点までのフレーム数が「n」であって、かつ拍周期が「b」である場合に「1」であり、それ以外の場合に「0」である。
【0034】
また、BPM特徴量x(b)(t)の観測尤度L(b)(t)は、拍周期bごとに設けられたテンプレートTMP(b)に対するBPM特徴量x(b)(t)の適合度に相当する。テンプレートTMP(b)は、BPM特徴量x(b)(t)を構成するBPM特徴量x(b)(t)にそれぞれ乗算される係数ζb,γ{=1,2・・・}の系列からなる(図7参照)。テンプレートTMPを構成する係数ζb,γのうち、インデックスγが拍周期bに等しい係数及び拍周期bの整数倍に等しい係数が極大となるように、テンプレートTMPが設定されている。式(5)に示すように、テンプレートTMPとBPM特徴量x(b)(t)の内積が、観測尤度L(b)(t)である。なお、この演算式における「μ」は、オンセット特徴量x(o)(t)に対するBPM特徴量x(b)(t)の重みを決定する係数である。つまり、「μ」を大きく設定するほど、結果的に、BPM特徴量x(b)(t)が重視される。また、この演算式におけるZ(μ)は、「μ」に依存する正規化係数である。なお、上記のテンプレートTMPが上記式(1)における「θ(b)」に相当する。
【0035】
さらに、CPU12aは、同ステップS15において、式(7)に示す、観測尤度L(o,b)(t)を計算する。観測尤度L(o,b)(t)は、観測尤度L(o)(t)と観測尤度L(b)(t)との積である
【数7】
【0036】
次に、CPU12aはステップS16〜ステップS27にて拍点、テンポ、小節線の位置及びコード進行の推定処理を実行する。ここで、コードの遷移(コード進行)のモデルZ(c)は、下記の式(8)に示すように定義される。
【数8】
【0037】
式(8)における、「τi,j(c,0)」は、いずれか一方のフレームが拍点ではないフレーム間においてコードiからコードjへ遷移する確率を表わす。一方、「τi,j(c,s)」は、拍子位置sへの遷移が生起するフレーム間(つまり、遷移先のフレームに拍点が存在する場合)において、コードiからコードjへ遷移する確率を表わす。コードの遷移は拍点において生起する確率が高い。言い換えれば、拍点でないフレーム間においては、同一のコードに遷移する確率が高い。したがって、「τi,j=i(c,0)」は「τi,j≠i(c,0)」よりも大きい。
【0038】
一般に、コード間の遷移確率は、拍点の拍子位置sに依存する。例えば、4分の4拍子の楽曲において、4拍目(つまりs=4)の和音が「G7」であるとき、次の小節の1拍目(つまりs=1)の和音は「C」である可能性が高い(ドミナントモーション)。また、コード間の遷移確率は、楽曲の調keyに依存する。例えば、コード「C」からコード「F」への遷移はハ長調の楽曲において生起する可能性が高い。そこで、予め種々の楽曲におけるコード間の遷移回数をカウントし、前記カウントしたコード間の遷移回数が、データベースとしてROM12bに記憶されている。データベースは、拍子ごとに構成されている。つまり、音響信号分析装置10は、例えば、4分の3拍子の楽曲を分析するときに用いるデータベース、4分の4拍子の楽曲を分析するときに用いるデータベース、8分の6拍子の楽曲を分析するときに用いるデータベースなどを備える。そして、各データベースには、コード間の遷移回数が、調key及び拍子位置sに関連づけて記憶されている。
【0039】
また、拍点、テンポ及び拍子位置の遷移のモデルZ(o)は、下記の式(9)に示すように表わされる。
【数9】
【0040】
式(9)における、「τs0,n0,b0,s1,n1,b1(o)」は、拍子位置s0、フレーム数n0、且つ拍周期b0である状態から、拍子位置s1、フレーム数n1、且つ拍周期b1である状態へ遷移する確率を表わす。本実施形態では、フレーム数nの値が「0」でない状態(n0≠0)から次の状態へ遷移するとき、拍子位置s及び拍周期bの値は変更されず、フレーム数nの値が「1」だけ減少する。一方、フレーム数nの値が「0」である状態(n0=0)から次の状態へ遷移するとき、拍子位置s及び拍周期bの値は変更され得る。このとき、フレーム数nの値は、遷移後の拍周期bの値より「1」だけ小さい値に設定される。以下、拍子位置sの遷移確率を「τ(s)」と表記し、拍周期bの遷移確率を「τ(b)」と表記する。
【0041】
また、各遷移確率の事前分布は下記の式(10)乃至(12)に示すように定義される。
【数10】
【数11】
【数12】
【0042】
各遷移確率は多項分布に従うので、本実施形態では、多項分布の共役事前分布であるディリクレ分布を採用した。式(10)における「νi,j(c)」は、上記のコード進行に関するデータベースに相当する。つまり、例えば、「νi,j(c)」は、「4分の4拍子の楽曲であって、且つハ長調の楽曲において、4拍目から1拍目への遷移するとき、「G7」から「Cmaj」への遷移がM回あった」という情報に相当する。また、式(11)における「νs0,s1(s)」は、拍子位置s0から拍子位置s1へ遷移する度合いを設定するパラメータである。例えば、「ν1,2(s)」、「ν2,3(s)」、「ν3,4(s)」及び「ν4,1(s)」が「1」に近い値(例えば「0.99」)に設定され、その他の遷移に関するパラメータは充分に小さい値に設定される。また、式(12)における「νb0,b1(b)」は、拍周期b0から拍周期b1へ遷移する度合いを設定するパラメータである。例えば、「νb0,b1(b)」を、所定の係数ρ,ωを用いて表わされた関数ρ×exp(−ω(b0−b1))と設定することにより、テンポが急激に変化することを抑制できる。係数ρ及び係数ωは、例えば、「10.0」及び「5.0」にそれぞれ設定される。
【0043】
モデルZ(c)の変分事後分布q(Z(c))は、下記の式(13)のように表わされる。なお、以降、「x」の分布が「p(x)」に従う場合の「f(x)」の期待値を「〈f(x)〉p(x)」と表記する。ただし、標記が煩雑になるのを防止するため、「p(x)」を省略する場合もある。
【数13】
【0044】
式(13)における「〈logτi,j(c,0)〉」は、式(14)に示すように表される。ただし、「ψ(x)」は、digamma関数である。
【数14】
【0045】
また、ここで、下記の式(15)及び式(16)に示す量を定義しておく。式(15)は、モデルZ(c)の各フレームの対数観測尤度に相当し、式(16)は、モデルZ(c)の各状態間の対数遷移確率に相当する。
【数15】
【数16】
【0046】
一方、モデルZ(o)の変分事後分布q(Z(o))は、下記の式(17)のように表わされる。
【数17】
【0047】
なお、式(17)における「ξi,j(c)(t)」は、下記の式(18)に示すように、フレームtへの遷移において、コードが「i」から「j」へ遷移した回数の期待値を意味する。
【数18】
【0048】
ここで、下記の式(19)及び式(20)に示す量を定義しておく。式(19)は、モデルZ(o)の各フレームの対数観測尤度に相当し、式(20)は、モデルZ(o)の各状態間の対数遷移確率に相当する。
【数19】
【数20】
【0049】
なお、式(20)における「δ(n)」は、Kroneckerのデルタ関数である。
【0050】
上記のように、変分事後分布q(Z(c))は、モデルZ(o)の期待値に依存し、変分事後分布q(Z(o))は、モデルZ(c)の期待値に依存している。したがって、変分事後分布q(Z(c))を更新した後、その期待値に依存する変分事後分布q(Z(o))を更新する必要があり、変分事後分布q(Z(o))を更新した後、その期待値に依存する変分事後分布q(Z(c))を更新する必要がある。このように、変分事後分布q(Z(c))及び変分事後分布q(Z(o))を交互に更新することにより、両変分事後分布を収束させる。
【0051】
具体的には、まず、CPU12aは、ステップS16にて、推論対象をモデルZ(c)に設定する。つぎに、CPU12aは、ステップS17にて、現在の推論対象のモデルがモデルZ(c)か否かを判定する。現在の推論対象のモデルがモデルZ(c)である場合には、CPU12aは「Yes」と判定して、ステップS18にて、式(15)及び式(16)に基づいて、対数観測尤度O(c)(t)及び対数遷移確率Ti,j(c)(t)を計算する。つぎに、CPU12aは、ステップS19にて、前向き後ろ向きアルゴリズムを用いて、前向き変数α(c)(t)及び後ろ向き変数β(c)(t)を計算する。具体的には、CPU12aは、下記の式(21)及び式(22)に基づいて、前向き変数α(c)(t)及び後ろ向き変数β(c)(t)を計算する。なお、式(21)における「N(c)(t)」は、式(23)に示すような正規化係数である。
【数21】
【数22】
【数23】
【0052】
次に、CPU12aは、ステップS20にて、下記の式(24)に基づいて、各フレームtのモデルZ(c)の期待値を計算する。
【数24】
【0053】
また、CPU12aは、同ステップS20にて、下記の式(25)に基づいて、フレームtにおいてコードiからコードjに遷移した回数の期待値を計算する。
【数25】
【0054】
次に、CPU12aは、ステップS21にて、変分事後分布q(Z(o))及び変分事後分布q(Z(c))が収束したか否かを判定する。変分事後分布q(Z(o))及び変分事後分布q(Z(c))のうち少なくとも一方が収束していない場合には、CPU12aは「No」と判定して、ステップS22にて、推論対象を切り替え、ステップS17に処理を進める。すなわち、ステップS22において、現在の推論対象がモデルZ(c)である場合には、CPU12aは、推論対象をモデルZ(o)に設定する。一方、ステップS22において、現在の推論対象がモデルZ(o)である場合には、CPU12aは、推論対象をモデルZ(c)に設定する。
【0055】
ステップS17において、推論対象がモデルZ(o)である場合には、CPU12aは「No」と判定して、ステップS23にて、式(19)及び式(20)に基づいて、対数観測尤度Os,n,b(o)(t)」及び対数遷移確率Ts0,n0,b0s1,n1,b1(o)(t)を計算する。つぎに、CPU12aは、ステップS24にて、前向き後ろ向きアルゴリズムを用いて、前向き変数αs,n,b(o)(t)及び後ろ向き変数βs,n,b(o)(t)を計算する。具体的には、CPU12aは、下記の式(26)及び式(27)に基づいて、前向き変数αs,n,b(o)(t)及び後ろ向き変数βs,n,b(o)(t)を計算する。なお、式(26)における「Ns,n,b(o)(t)」は、式(28)に示すような正規化係数である。
【数26】
【数27】
【数28】
【0056】
次に、CPU12aは、ステップS25にて、下記の式(29)に基づいて、各フレームtのモデルZ(o)の期待値を計算し、ステップS21に処理を進める。
【数29】
【0057】
ステップS21において、変分事後分布q(Z())及び変分事後分布q(Z())のいずれもが収束した場合には、CPU12aは「Yes」と判定して、ステップS26にて、各フレームtにおけるモデルZ(o)及びモデルZ(c)の期待値がそれぞれ最大になる系列を選択することにより、分析対象の楽曲における拍点、テンポ、小節線の位置及びコード進行を推定する。CPU12aは、前記推定結果を例えば図8に示すような形式で表示する。そして、CPU12aは、ステップS27にて、音響信号分析処理を終了する。
【0058】
音響信号分析装置10においては、モデルZ(c)の各状態間の遷移確率τi、j(c)が、拍子位置sに関連して設定されている。そして、モデルZ(c)の事後分布と、モデルZ(o)の事後分布とが、同時(一体的)に計算される。モデルZ(c)とモデルZ(o)とは、拍子位置sに関して互いに依存しており、この両モデルの事後分布を同時(一体的)に計算することにより、楽曲における拍点、テンポ、拍子位置、及びコードに関する情報が精度良く得られる。言い換えれば、一方のモデルの推定結果が他方のモデルの推定結果にフィードバックされて推定結果が更新される(S16〜S26)。これにより、両モデルの推定精度が高められる。したがって、音響信号分析装置10によれば、拍点、テンポ、小節線の位置及びコード進行の推定精度を従来よりも向上させることができる。
【0059】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【0060】
例えば、上記実施形態では、楽曲全体を分析対象としているが、楽曲の一部(例えば数小節)のみを分析対象としてもよい。この場合、入力した楽曲データのうち、分析対象とする部分を選択可能に構成するとよい。また、楽曲のうちの単一のパート(例えばリズムセクション)のみを分析対象としてもよい。
【0061】
また、上記実施形態では、楽曲の調が既知であると仮定しているが、楽曲の調も、拍点、テンポ、小節線の位置及びコード進行と同時に推定しても良い。例えば、コードの遷移確率τ(c)を24個のブロックから構成されるブロック対角行列とし,各ブロックにそれぞれの調におけるコード進行のデータを対応させるとよい。具体的には、コードの種類を4つとすると、ブロック対角行列は、96×96(96=4(コードの種類)×12×2(12個の調のルート×(長調または短調)))の要素を有する。ブロック対角行列の要素(1,1)から要素(4,4)は、調が「Cmaj」である場合のコードの遷移を表わす。要素(5,5)から要素(8,8)は、調が「Cmin」である場合のコードの遷移を表わす。要素(9,9)から要素(12,12)は、調が「C#maj」である場合のコードの遷移を表わす。要素(13,13)から要素(16,16)は、調が「C#min」である場合のコードの遷移を表わす。他の要素についても、上記の要素と同様に設定することで、すべての調のコード進行データを網羅できる。この場合、ブロックをまたがるような遷移は許されないので、単一の調におけるコード進行を推定することに相当する。
【0062】
また、例えば、ユーザによって指定されたフレームの拍点、テンポ、拍子位置、及びコードのいずれか又は複数の要素を修正可能に構成しても良い。この場合、ユーザが入力操作子11を用いて修正値を入力すると、CPU12aは、前記指定されたフレームの各種要素の値を前記入力された値に修正するとともに、そのフレームに近接するフレームの各種要素を前記入力された値に応じて自動的に修正するように構成するとよい。例えば、連続する複数のフレームのテンポの推定値が同じ値であって、そのうちの1つのフレームのテンポの値が修正されたとき、前記複数のフレームのテンポの値を前記1つのフレームの修正値と同じ値に自動的に修正してもよい。
【0063】
また、例えば、コード進行の推定において、優先的に推定するコードを指定可能に構成してもよい。例えば、メジャーコードを優先的に推定するように設定可能に構成してもよい。この場合、メジャーコード以外の対数観測尤度を十分に小さく設定する。これにより、メジャーコードが優先的に推定される。これによれば、楽曲の大凡のコードが既知である場合、コードの推定精度を向上させることができる。
【0064】
また、例えば、テンポの推定において、優先的に推定するテンポの範囲を指定可能に構成してもよい。具体的には、「Presto」、「Moderato」などのテンポを表わす用語を表示して、優先的に推定するテンポの範囲を選択可能に構成してもよい。例えば、「Presto」が選択された場合、BPM=160〜190の範囲以外の対数観測尤度を十分に小さく設定する。これにより、BPM=160〜190の範囲のテンポが優先的に推定される。これによれば、楽曲の大凡のテンポが既知である場合、テンポの推定精度を向上させることができる。
【符号の説明】
【0065】
10・・・音響信号分析装置、HPCP(B)・・・ベース特徴量、HPCP(T)・・・トレブル特徴量、L(c),L(o),L(b),L(o,b)・・・観測尤度、O(c),Os,n,b(o)・・・対数観測尤度、Ti,j(c),Ts0,n0,b0s1,n1,b1(o)・・・対数遷移確率、Z(c),Z(o)・・・モデル、b・・・拍周期、i・・・コード、key・・・調、n・・・フレーム、q(Z(c)),q(Z(o))・・・変分事後分布、s・・・拍子位置、t・・・フレーム、x(o)・・・オンセット特徴量、x(c)・・・コード特徴量
図1
図2A
図2B
図3
図4
図5
図6
図7
図8