JP5924968B2 - 楽譜位置推定装置、及び楽譜位置推定方法 - Google Patents

楽譜位置推定装置、及び楽譜位置推定方法 Download PDF

Info

Publication number
JP5924968B2
JP5924968B2 JP2012029802A JP2012029802A JP5924968B2 JP 5924968 B2 JP5924968 B2 JP 5924968B2 JP 2012029802 A JP2012029802 A JP 2012029802A JP 2012029802 A JP2012029802 A JP 2012029802A JP 5924968 B2 JP5924968 B2 JP 5924968B2
Authority
JP
Japan
Prior art keywords
score
particle
frequency characteristic
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012029802A
Other languages
English (en)
Other versions
JP2012168538A (ja
Inventor
一博 中臺
一博 中臺
琢馬 大塚
琢馬 大塚
博 奥乃
博 奥乃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Publication of JP2012168538A publication Critical patent/JP2012168538A/ja
Application granted granted Critical
Publication of JP5924968B2 publication Critical patent/JP5924968B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Auxiliary Devices For Music (AREA)

Description

本発明は、楽譜位置推定装置、及び楽譜位置推定方法に関する。
従来から、楽曲を書き表した楽譜において演奏されている楽曲の位置(演奏位置)を推定する楽譜位置推定技術が開発されている。楽譜位置推定技術は、自動伴奏、自動合奏、楽譜への演奏位置の重畳表示を実現するための応用が期待されている。ここで、演奏されている楽曲の音響信号の周波数特性と楽譜情報に基づいて合成した楽曲の周波数特性を照合し、演奏されている楽曲について楽譜の位置を実時間で推定する技術が提案されている
例えば、特許文献1に記載の楽譜位置推定技術では、楽譜情報に基づく楽曲の周波数特性を調和混合正規分布モデル(harmonic Gaussian Mixture Model;harmonic GMM、又は単にGMMともいう。)に基づくテンプレートを用いて合成し、音響信号の周波数特性と照合していた。このテンプレートでは、高調波の振幅を、予め定めた実数のべき乗に定められていた。
特開2011−180590号公報
しかし、特許文献1記載の楽譜位置推定技術では、合成した楽曲の周波数特性と音響信号の周波数特性が合致せず、演奏位置を頑健に推定できないことがあった。
本発明は上記の点に鑑みてなされたものであり、演奏された楽曲の楽譜上の位置をより頑健に推定できる楽譜位置推定装置及び楽譜位置推定方法を提供することを課題としている。
(1)本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、入力された音響信号の周波数特性を分析して第1の周波数特性を算出する周波数特性分析部と、楽譜情報が表す楽譜の位置毎の音階に基づく周波数特性であって少なくとも1つの調波構造を含む第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記調波構造に含まれる調波成分毎の前記調波構造への寄与を表す変数の確率分布と、前記調波構造毎の前記第2の周波数特性への寄与を表す変数の確率分布に基づいて前記第1の周波数特性についての尤度を最大にするように、前記楽譜の位置毎に算出する関連度算出部と、前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する楽譜位置探索部と、を備えることを特徴とする楽譜位置推定装置である。
(2)本発明のその他の態様は、入力された音響信号の周波数特性を分析して第1の周波数特性を算出する周波数特性分析部と、楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記第2の周波数特性に含まれる周波数毎の振幅が表す度数が、対応する周波数における前記第1の周波数特性の振幅が表す度数だけ発生する確率分布に基づいて前記楽譜の位置毎に算出する関連度算出部と、前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する楽譜位置探索部と、を備えることを特徴とする楽譜位置推定装置である
(3)本発明のその他の態様は、前記楽譜位置探索部は、前記音階が変化する楽譜の位置に対応する時刻を含む観測区間における前記音響信号の自己相関に基づいて拍間隔を定め、定めた拍間隔に基づいて探索する楽譜の位置を更新することを特徴とする。
(4)本発明のその他の態様は、楽譜位置推定装置における方法であって、前記楽譜位置推定装置は、入力された音響信号の周波数特性を分析して第1の周波数特性を算出する過程と、前記楽譜位置推定装置は、楽譜情報が表す楽譜の位置毎の音階に基づく周波数特性であって少なくとも1つの調波構造を含む第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記調波構造に含まれる調波成分毎の前記調波構造への寄与を表す変数の確率分布と、前記調波構造毎の前記第2の周波数特性への寄与を表す変数の確率分布に基づいて前記第1の周波数特性についての尤度を最大にするように、前記楽譜の位置毎に算出する過程と、前記楽譜位置推定装置は、前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する過程と、を有することを特徴とする楽譜位置推定方法
(5)本発明のその他の態様は、楽譜位置推定装置における方法であって、前記楽譜位置推定装置は、入力された音響信号の周波数特性を分析して第1の周波数特性を算出する過程と、前記楽譜位置推定装置は、楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記第2の周波数特性に含まれる周波数毎の振幅が表す度数が、対応する周波数における前記第1の周波数特性の振幅が表す度数だけ発生する確率分布に基づいて前記楽譜の位置毎に算出する過程と、前記楽譜位置推定装置は、前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する過程と、を有することを特徴とする楽譜位置推定方法である。
(1)、(2)、(4)、(5)に記載した態様によれば、音響信号に基づく第1の周波数特性と、楽譜情報における音階に基づく第2の周波数特性が完全に合致していなくとも、両者の関連性を検出することができる。そのため、演奏された音楽に対する楽譜の位置をより頑健に推定することが可能になる。
(1)、(4)に記載した態様によれば、楽譜情報に基づく第2の周波数成分に含まれる調波構造の周波数特性の変化、調波構造間の結合特性の変化に柔軟に対応できるので、音響信号に基づく第1の周波数特性との関連性をより的確に推定することができる。そのため、演奏された音楽に対する楽譜の位置をより正確に推定することが可能になる。
(2)、(5)に記載した態様によれば、音響信号に基づく第1の周波数特性の周波数毎の振幅と楽譜情報における音階に基づく第2の周波数特性の周波数毎の振幅が合致する度合いを鋭敏に検出することができる。そのため、演奏された音楽に対する楽譜の位置をより正確に推定することが可能になる。
(3)に記載した態様によれば、楽譜情報における音階が変化する楽譜の位置と、音響信号の振幅が変化する時刻が対応付けられる。そのため、周波数特性の周期性を表す拍間隔を正確に検知でき、ひいては演奏された音楽に対する楽譜の位置をより正確に推定することができる。
本発明の第1の実施形態に係る楽譜位置推定装置の構成を示す概略図である。 粒子フィルタリング法の処理を表す概念図である。 本実施形態に係る楽譜位置推定処理を表すフローチャートである。 楽譜情報と音響信号の関係の一例を表す概念図である。 本実施形態に係る粒子遷移処理を表すフローチャートである。 本実施形態に係る音源モデルの一例を表す概念図である。 本実施形態に係る調波構造の一例を表す図である。 本実施形態に係るヒストグラムの一例を表す図である。 本実施形態に係る周波数特性重み算出部の一構成例を表す概略図である。 本実施形態における周波数特性重み算出処理の一例を表すフローチャートである。 本発明の第2の実施形態に係る楽譜位置推定装置の構成を示す概略図である。 本実施形態に係る周波数特性重み算出部の構成を表す概略図である。 本実施形態における周波数特性重み算出処理を表すフローチャートである。 本発明の第3の実施形態に係る楽譜位置推定装置の構成を示す概略図である。 本実施形態に係る楽譜位置推定処理を表すフローチャートである。 楽譜位置の推定誤差の一例を表す図である。 楽譜位置の推定誤差のその他の例を表す図である。 楽譜位置の推定誤差のその他の例を表す図である。 音響信号と楽譜情報との関連性の一例を表す図である。
(第1の実施形態)
以下、図面を参照しながら本発明の第1の実施形態について説明する。
図1は、本実施形態に係る楽譜位置推定装置1の構成を示す概略図である。
楽譜位置推定装置1は、音響信号入力部101、音響特徴量生成部102、楽譜情報記憶部111、楽譜情報入力部112、関連度算出部121、楽譜位置探索部131、及び演奏情報出力部141を含んで構成される。
音響信号入力部101は、演奏された音楽を表す音波をディジタル音響信号に変換し、変換したディジタル音響信号を音響特徴量生成部102に出力する。音響信号入力部101は、例えばマイクロホンとアナログ・ディジタル(Analog−to−Digital;A/D)変換部(図示せず)とを含んで構成される。このマイクロホンは、人間が聴取することができる周波数帯域(例えば、20Hz−20kHz)の音波をアナログ音響信号に変換し、変換したアナログ音響信号をA/D変換部に出力する。A/D変換部は、マイクロホンから入力されたアナログ音響信号をディジタル音響信号に変換し、変換したディジタル音響信号を音響特徴量生成部102に出力する。ここで、A/D変換部は、入力されたアナログ音響信号を、例えば、サンプリング周波数44.1kHz、振幅を16ビットの2進(バイナリ;binary)データにパルス符号変調(Pulse Code Modulation;PCM)して、サンプル時刻毎の量子化された振幅を表すディジタル音響信号に変換する。以下の説明では、入力されたディジタル音響信号を入力信号と呼ぶことがある。
音響特徴量生成部102は、音響信号入力部101から入力されたディジタル音響信号から、その物理的な特徴を表す音響特徴量を生成し、生成した音響特徴量を関連度算出部121及び楽譜位置探索部131に出力する。音響特徴量生成部102は、音響特徴量として、例えば、振幅周波数特性として周波数毎の振幅を表す音響スペクトログラム、自己相関、音響スペクトログラムの時間差分に基づく距離値を算出する。音響特徴量生成部102は、周波数特性分析部103及び相関算出部104を含んで構成される。
周波数特性分析部103は、音響信号入力部101から入力されたディジタル音響信号を時間領域信号から周波数領域信号に変換する。ここで、周波数特性分析部103は、例えば、予め定められた個数(例えば、2048個)サンプルからなるフレーム(以下、音響フレームとも呼ぶ)ごとにディジタル音響信号を高速フーリエ変換(Fast Fourier Transform;FFT)を行って周波数領域信号に変換する。周波数特性分析部103は、予め設定された音響フレーム時刻毎(音響フレーム間隔Δtは、例えば10ms)に音響フレームを移動させる。音響フレームを移動させることによって、所定数の新たな信号のサンプル(例えば、サンプリング周波数が44.1kHzの場合、441サンプル)が音響フレームに含まれ、最も時刻が経過した同数の信号のサンプルが音響フレームから除外される。
周波数特性分析部103は、時刻tにおける周波数領域信号に基づいてスペクトログラム(以下、音響スペクトログラムと呼ぶ)Af,tを算出する。音響スペクトログラムAf,tは、周波数領域信号の周波数f毎の振幅(絶対値)Af,tである。以下の説明では、音響スペクトログラムAf,tを、入力音響振幅と呼ぶことがある。周波数特性分析部103は、算出した音響スペクトログラムAf,tを相関算出部104、及び関連度算出部121の周波数特性重み算出部122に出力する。
相関算出部104は、周波数特性分析部103から入力された音響スペクトログラムAf,tに基づいて、拍間隔bについての自己相関を算出する。自己相関は、時刻tにおける音響スペクトログラムAf,tと、拍間隔bだけ過去の時刻t−bにおける音響スペクトログラムAf,t−bの類似性を表す指標値である。拍間隔bとは、演奏される楽曲の時間単位である拍と、その拍に後続する拍との間の時間間隔を表す。相関算出部104は、自己相関として、例えば式(1)を用いてR(b,{A})を算出する。
式(1)において、{A}は、観測区間Tにおける現フィルタリングステップkまでの音響スペクトログラムAf,tの集合(セット)を表す。Tは、観測区間{τ|kΔT−W<τ≦kΔT}を表す。τは、時刻を表す。ΔTは、例えば後述する楽譜位置探索におけるフィルタリング間隔(例えば、1秒)である。Wは、観測区間長(例えば、2.5秒)である。フィルタリングステップkとは、後述する粒子フィルタ法(パーティクルフィルタリング、particle filtering)を応用した楽譜位置推定における処理の繰り返しを表す整数である。
相関算出部104は、算出した自己相関を関連度算出部121の拍間隔重み算出部123及び楽譜位置探索部131の粒子遷移部132に出力する。相関算出部104は、音響スペクトログラムAf,tを粒子遷移部132に出力する。
相関算出部104は、自己相関R(b,{A})の代わりに、自己相関R(b,{Ξ’})を算出してもよい。{Ξ’}は、距離値Ξf,tを聴感補正した距離値Ξf,t’の集合(セット)である。距離値Ξf,tは、現時刻tにおける音響スペクトログラムAf,tと直前の音響フレームの時刻t−Δtにおける音響スペクトログラムAf,t―Δtとの差分の絶対値である。
相関算出部104は、距離値として、例えば式(2)で表されるΞf,tを算出してもよい。
式(2)において、Δφf,tは、式(3)で表される。
式(3)において、φf,t等は、対応する音響スペクトログラムAf,tの絶対位相(アンラップト位相[unwrapped phase])である。
相関算出部104は、線形領域で表された周波数fをメル尺度で表された周波数fmelに変換する。線形領域で表された周波数fと、メル尺度で表された周波数fmelとの関係は、式(4)で表される。
相関算出部104は、フレーム毎の周波数の次元数(例えば、1024)をN(Nは1よりも大きい整数、例えば、64である。)に減少させる。そのため、相関算出部104は、距離値Ξf,tを中心周波数f mel毎にフィルタリングして、聴感補正した距離値Ξf,t’を算出する。中心周波数f melは、式(5)に示されるように、0からナイキスト周波数fNyq melまでの間を等分する周波数である。
式(5)において、mは、0より大きくNと等しいか、Nよりも小さい整数である。フィルタリングに用いる窓関数Ψ(fmel)は、例えば、式(6)で表される。
式(6)は、窓関数Ψ(fmel)の周波数特性は、各中心周波数f melにおいてピーク1をとり、隣接する中心周波数fm−1 mel,fm+1 melにおいてゼロとなる三角形を表す。但し、m=Nの場合、窓関数ψNm(fmel)は、周波数fNm−1 mel≦fmel<fNm melの区間のみ定められる。周波数fNm melは、ナイキスト周波数fNyq melであるため、この周波数を越える周波数成分が存在しないからである。
相関算出部104は、例えば式(7)を用いて距離値Ξf,tをフィルタリングする。
相関算出部104は、聴感補正した距離値Ξf,t’に基づいて、例えば式(8)を用いて自己相関R(b,{Ξ’})を算出する。
距離値Ξf,t、又はΞf,t’は、音響スペクトログラムAf,tの拍間隔bに対する周期性を表す指標値である。例えば、定常的な音では、距離値Ξf,t、又はΞf,t’は、ゼロ又はゼロに近似する。そのため、自己相関R(b,{Ξ’})を用いることで、立ち上がり部分(オンセット)のように、入力信号の振幅の変動が著しい部分に基づいて、振幅周波数特性の周期性を検知することが容易になる。
相関算出部104は、算出した距離値Ξf,t及び自己相関R(b,{Ξ’})を粒子遷移部132に出力する。
楽譜情報記憶部111は、楽譜情報を楽曲毎に予め記憶されている。楽譜情報は、楽譜フレーム(score frame)p(pは、整数)毎に、楽曲を構成する音階毎の基本周波数μ を要素とする基本周波数ベクトル{μ}=[μ ,μ ,…,μ Lpで表される。ここで、Lは、楽譜フレームpにおける音階の数を表す。lは0より大きく、Lと等しいかLよりも小さい整数である。Tは、ベクトル又は行列の転置を表す。つまり、基本周波数ベクトルμは、同時に演奏される音階の周波数の組、即ちコード(和音、chord)を表す情報である。但し、本実施形態では、コードは、1個又は1個より多い数の音階を含んでいればよい。例えば、ある楽譜フレームp1において音階A4、C4、及びE4を含むコードを表す基本周波数ベクトルμp1は、要素数が3個のベクトル[440,523,659]となる。ここで、音階A4、C4、E4の周波数は、それぞれ440、523、659Hzである。
楽譜情報は、楽曲毎の演奏テンポb’を表すテンポ情報を含んでいでもよい。テンポ情報は、例えばテンポの逆数である拍間隔b’で表される。
楽譜情報は、コードを示すコード情報n を要素とするコードベクトル{n}=[n ,n ,…,n Lpを、基本周波数ベクトル{μ}と対応付けて含んでいてもよい。音階A4、C4、及びE4を要素値として含むコードベクトルは、[A4,C4,E4]となる。
楽譜フレームは、1つの楽曲の楽譜情報において楽曲を時間分割する単位時間である。例えば、1拍、即ち四分音符の長さが12フレームである場合、楽譜情報の時間分解能(resolution)は十六分音符の三分の一である。
楽譜情報入力部112は、楽譜情報記憶部111から、処理の対象とする楽曲の楽譜情報を読み出す。楽譜情報入力部112は、読み出した楽譜情報を関連度算出部121の周波数特性重み算出部122、及び楽譜位置探索部131の粒子遷移部132に出力する。
関連度算出部121は、音響特徴量生成部102から入力された音響特徴量と楽譜情報入力された楽譜情報が表す楽譜特徴量との関連度を表す重み値を楽譜位置毎に算出する。楽譜特徴量は、例えば、楽譜情報に基づいて演奏されたと仮定された場合における音響信号の振幅周波数特性である。楽譜位置とは、楽譜の冒頭からの拍数や楽譜フレーム数であり、演奏されている楽曲の楽譜上の拍数や楽譜フレーム数を指すこともある。関連度算出部121は、算出した楽譜位置毎の重み値を表す重み情報を楽譜位置探索部131及び演奏情報出力部141に出力する。
関連度算出部121は、例えば、周波数特性重み算出部122、拍間隔重み算出部123、及び粒子重み算出部124を含んで構成される。粒子重み算出部124は、上述の重み情報として、粒子重み情報を含んだ粒子情報を楽譜位置探索部131及び演奏情報出力部141に出力する。
周波数特性重み算出部122は、周波数特性分析部103から入力された音響スペクトログラムと楽譜情報入力部112から入力された楽譜情報に含まれる基本周波数ベクトルが表す周波数特性との楽譜位置毎の関連度(例えば、類似度)を表す周波数特性重み値を算出する。周波数特性重み算出部122は、算出した周波数特性重み値を表す周波数特性重み情報を粒子重み算出部124に出力する。周波数特性重み算出部122のより詳細な構成については後述する。
拍間隔重み算出部123は、相関算出部104から入力された自己相関に基づいて拍間隔毎に音響信号の振幅周波数特性の関連度を表す拍間隔重み値を算出する。拍間隔重み算出部123は、拍間隔重み値を表す拍間隔重み情報を粒子重み算出部124に出力する。拍間隔重み算出部123のより詳細な構成については後述する。
粒子重み算出部124は、後述する粒子遷移部132から入力された粒子i毎の粒子情報、粒子分布値、状態遷移確率、周波数特性重み算出部122から入力された周波数特性重み情報と拍間隔重み算出部123から入力された拍間隔重み情報に基づいて、楽譜位置及び拍間隔毎の重み情報を粒子i毎に生成する。
粒子とは、楽譜位置を表す楽譜位置情報、拍間隔を表す拍間隔情報及び入力音響信号に対する観測値である重み情報の組を表す情報の単位である。粒子重み算出部124が生成した重み情報を粒子重み情報と呼び、楽譜位置情報、拍間隔情報及び粒子重み情報の組を粒子情報と呼ぶ。粒子情報は、後述するように粒子フィルタリング法により、楽譜位置、拍間隔の推定値を定めるために用いられる。
粒子フィルタリング法を用いる場合、粒子重み算出部124は、例えば、式(9)を用いて粒子重み情報として粒子i毎の重み値(以下、粒子重み値と呼ぶ)wi,kを算出する。
式(9)において、wsp i,kは、周波数特性重み値を表し、wtm i,kは、拍間隔重み値を表す。q(p ,b |{A},b’,o)、q(p ,b |p k−1,b k−1)は、それぞれ粒子iの粒子分布値、状態遷移確率を表す。粒子重み算出部124は、算出した粒子重み値wi,kを表す粒子重み情報を生成する。
粒子重み算出部124は、入力された粒子i毎の粒子情報に含まれる粒子重み情報を、生成した粒子重み情報に置き換えることで粒子情報を更新する。
粒子重み算出部124は、更新した粒子情報を楽譜位置探索部131の再標本化部133、演奏情報出力部141の楽譜位置算出部142及び拍間隔算出部143に出力する。
楽譜位置探索部131は、粒子重み算出部124から入力された楽譜位置毎の重み情報に基づいて楽譜位置を探索する。楽譜位置探索部131は、例えば、重み情報が表す重み値が音響信号と楽譜情報との関連性が最も高い楽譜位置を探索する。楽譜位置探索部131は、探索した楽譜位置を表す楽譜位置情報を関連度算出部121に出力する。
楽譜位置探索部131は、例えば、粒子フィルタリング法を用いて楽譜位置を探索する。楽譜位置探索部131は粒子遷移部132及び再標本化部133を含んで構成される。ここで、粒子フィルタリング法について説明する。
図2は、粒子フィルタリング法の処理を表す概念図である。
粒子フィルタリング法は、I.遷移、II.重み算出、III.位置推定・再標本化、の各過程を有する。図2は、I.遷移、II.重み算出、III.位置推定・再標本化、の各過程における処理の概念を左から右へ順に表す。
図2のI.遷移において、横軸が時刻、即ち楽譜位置を表し、縦軸が拍間隔を表す。塗りつぶした円は、それぞれ粒子を表す。各矢印は、起点にある粒子が終点に遷移することを表す。ここで、粒子遷移部132が、各時刻、各拍間隔にわたって分布している複数の粒子から各粒子を1つずつ抽出し、抽出した粒子毎の楽譜位置を、その拍間隔に基づいて更新することを表す。
II.重み算出では、上段に音響信号、中段に楽譜情報、下段に粒子をそれぞれ表す。各段ともに横軸は時刻、即ち楽譜位置を表す。中段において縦軸は音階を表す。上段と中段にそれぞれ表された四角形の幅は、観測区間を表す。上段の四角形で囲まれる音響信号が、中段の四角形で囲まれる楽譜情報に対して観測対象となる音響信号を表す。下段に表される塗りつぶしの円は、粒子を表す。円の半径は、観測対象となる音響信号と対応する楽譜情報に基づく粒子重みの大きさを表す。即ち、関連度算出部121は、粒子毎の楽譜位置及び拍間隔の妥当性を表す粒子重みを、観測区間内の音響信号の音響特徴量と楽譜情報に基づいて算出する。
III.位置推定・再標本化では、上段に楽譜情報、中段に再標本化前の粒子、下段に再標本化後の粒子を表す。各段ともに横軸は時刻、即ち楽譜位置を表す。中段において、下向きの矢印は粒子の分布に基づいて推定された推定楽譜位置を表す。即ち、後述する楽譜位置算出部142が、粒子毎の楽譜位置を各自の粒子重みで重み付け加算して楽譜位置を推定することを表す。
中段の粒子を起点とし、下段の粒子を終点とする矢印は、中段の粒子を再標本化することを表す。濃く塗りつぶした粒子を終点とする太線の矢印は、起点の粒子の粒子重みが大きいために複数の粒子に分割・複製することを表す。×印を終点とする破線の矢印は、起点の粒子の粒子重みが小さいために、その粒子を棄却することを表す。即ち、再標本化部133が、粒子重みが大きい粒子を分割・複製し、粒子重みが小さい粒子ほど優先して棄却することを表す。これにより、楽譜位置及び拍間隔が妥当な粒子が残される。その後、I.遷移に戻り、I−IIIの過程を繰り返す。粒子遷移部132、再標本化部133の構成もしくは動作については後述する。
図1に戻り、演奏情報出力部141は、関連度算出部121から入力された関連度情報として粒子情報に基づいて楽譜位置を算出し、算出した楽譜位置を表す楽譜位置情報を生成する。演奏情報出力部141は、生成した楽譜位置情報を含む演奏情報を楽譜位置推定装置1の外部に出力する。
演奏情報出力部141は、例えば、楽譜位置算出部142、拍間隔算出部143、信頼度判定部144、及び楽譜位置出力部145を含んで構成される。
楽譜位置算出部142は、粒子重み算出部124から入力された粒子i毎の粒子情報から楽譜位置情報と粒子重み情報を抽出する。楽譜位置算出部142は、粒子i毎に抽出した楽譜位置情報が表す楽譜位置p に基づいて推定楽譜位置<p>を算出する。楽譜位置算出部142は、例えば、楽譜位置p の単純平均を推定楽譜位置<p>としてもよいし、粒子重み情報が表す粒子重み値wi,kによる加重平均を推定楽譜位置<p>としてもよい。楽譜位置算出部142が加重平均を算出する際、必ずしも全ての粒子iを考慮する必要はなく、一部の粒子のみを考慮してもよい。一部の粒子とは、例えば、粒子重み値wi,kが最も大きい粒子から粒子重み値wi,kの大きい順に予め定めた個数I(例えば、粒子数Iの2%)までの粒子である。これにより、楽譜位置p の信頼性が低いことを表す粒子重み値wi,kがより小さい粒子が無視されるため、楽譜位置の推定精度が向上する。楽譜位置算出部142は、算出した推定楽譜位置<p>を表す推定楽譜位置情報を信頼度判定部144に出力する。
楽譜位置算出部142は、一部の粒子を考慮して推定楽譜位置<p>を算出する際、一部の粒子についての粒子重み値の総和の他に、さらに全部の粒子についての粒子重み値の総和を算出する。楽譜位置算出部142は、一部の粒子についての粒子重み値の総和、全部の粒子についての粒子重み値の総和を信頼度判定部144に出力する。
拍間隔算出部143は、粒子重み算出部124から入力された粒子i毎の粒子情報から拍間隔情報と粒子重み情報を抽出する。拍間隔算出部143は、粒子i毎に抽出した拍間隔情報が表す拍間隔b に基づいて推定拍間隔<b>を算出する。拍間隔算出部143は、例えば、拍間隔b の単純平均を推定拍間隔<b>としてもよいし、粒子重み情報が表す粒子重み値wi,kによる加重平均を推定拍間隔<b>としてもよい。拍間隔算出部143が加重平均を算出する際、必ずしも全ての粒子iを考慮する必要はなく、楽譜位置算出部と同様に一部の粒子のみを考慮してもよい。これにより、推定拍間隔<b>の信頼性が低いことを表す粒子重み値がより小さい粒子が無視され、楽譜位置の推定精度が向上する。拍間隔算出部143は、算出した推定拍間隔<b>を表す推定拍間隔情報を拍間隔出力部146に出力する。
信頼度判定部144は、楽譜位置算出部142から入力された一部の粒子についての粒子重み値の総和、全部の粒子についての粒子重み値の総和に基づいて信頼度係数vを算出する。信頼度係数vは、例えば、式(10)に示されるように、一部の粒子についての粒子重み値の総和を全部の粒子についての粒子重み値の総和で除算した値である。
即ち、信頼度係数vは、粒子重み値wi,kが大きい粒子が一部の粒子に集中している度合いであり、推定した楽譜位置や拍間隔の信頼性を表す指標値である。
信頼度判定部144は、現在のフィルタリングステップkにおける信頼度係数vから前フィルタリングステップk−1における信頼度係数vk−1の差分v−vk−1を算出する。信頼度判定部144は、差分v−vk−1が予め定めた閾値−ηdec(例えば、−0.07)よりも小さい場合、楽譜位置算出部142から入力された推定楽譜位置情報を楽譜位置出力部145へ出力することを停止する。この場合、信頼度係数vk−1が急激に低下するため、信頼性に欠ける楽譜位置情報の出力が回避される。
信頼度判定部144は、差分v−vk−1が予め定めた閾値ηinc(例えば、0.08)よりも大きい場合、楽譜位置算出部142から入力された推定楽譜位置情報を楽譜位置出力部145へ出力することを再開する。
なお、信頼度判定部144は、上記の信頼度係数の代わりに推定楽譜位置情報が表す推定楽譜位置<p>の推定誤差e(t)の絶対値|e(t)|もしくは二乗誤差e(t)を信頼度係数として算出し、算出した信頼度が予め定めた閾値γを超えるか否かを判断してもよい。信頼度判定部144は、信頼度係数が閾値γを超えると判断したとき、楽譜位置算出部142から入力された推定楽譜位置情報の楽譜位置出力部145への出力を停止する。信頼度判定部144は、信頼度係数が閾値γを超えないと判断したとき、楽譜位置算出部142から入力された推定楽譜位置情報を楽譜位置出力部145へ出力する。 信頼度判定部144は、例えば式(11)を用いて推定誤差e(t)を算出する。
式(11)において、s(<p>)は、推定楽譜位置<p>の楽譜フレームに対応する時刻を表す。
楽譜位置出力部145は、信頼度判定部144から入力された推定楽譜位置情報を楽譜位置推定装置1の外部に出力する。
拍間隔出力部146は、拍間隔算出部143から入力された推定拍間隔情報を楽譜位置推定装置1の外部に出力する。拍間隔出力部146は、推定拍間隔情報自体の代わりに推定拍間隔情報が表す推定拍間隔<b>の逆数である推定テンポを出力するようにしてもよい。
次に、本実施形態に係る楽譜位置推定処理について説明する。
図3は、本実施形態に係る楽譜位置推定処理を表すフローチャートである。
(ステップS101)楽譜位置推定装置1の各構成部は、処理に用いる変数やデータを初期設定する。例えば、粒子遷移部132は、粒子数I、粒子i毎の拍間隔b 、楽譜位置p 、粒子分布値q(p ,b |{A},o,b )、状態遷移確率q(p ,b |p k−1,b k−1)の初期値を定める。その後、ステップS102に進む。
(ステップS102)楽譜情報入力部112は、楽譜情報記憶部111から、処理の対象とする楽曲の楽譜情報を読み出す。楽譜情報入力部112は、読み出した楽譜情報を関連度算出部121の周波数特性重み算出部122、拍間隔重み算出部123、及び楽譜位置探索部131の粒子遷移部132に出力する。その後、ステップS103に進む。
(ステップS103)音響信号入力部101は、音波を表すアナログ音響信号をディジタル音響信号に変換し、変換したディジタル音響信号を周波数特性分析部103に出力する。その後、ステップS104に進む。
(ステップS104)周波数特性分析部103は、音響信号入力部101から入力されたディジタル音響信号を時間領域信号から周波数領域信号にフレーム時刻毎に変換する。周波数特性分析部103は、フレーム時刻毎の周波数領域信号に基づいて音響スペクトログラムAf,t(音響周波数特性)を算出する。周波数特性分析部103は、算出した音響スペクトログラムAf,tを相関算出部104、及び関連度算出部121の周波数特性重み算出部122に出力する。その後、ステップS105に進む。
(ステップS105)相関算出部104は、周波数特性分析部103から入力された音響スペクトログラムAf,tに基づいて、拍間隔bについての自己相関を、例えば式(1)を用いて算出する。相関算出部104は、算出した自己相関を関連度算出部121の拍間隔重み算出部123及び楽譜位置探索部131の粒子遷移部132に出力する。相関算出部104は、音響スペクトログラムAf,tを粒子遷移部132に出力する。その後、ステップS106に進む。
(ステップS106)周波数特性重み算出部122は、周波数特性分析部103から入力された音響スペクトログラムと楽譜情報入力部112から入力された楽譜情報に含まれる基本周波数ベクトルが表す周波数特性との楽譜位置毎の関連度、即ち類似度を表す周波数特性重み情報を生成する。周波数特性重み算出部122は、生成した周波数特性重み情報を粒子重み算出部124に出力する。その後、ステップS107に進む。
(ステップS107)拍間隔重み算出部123は、相関算出部104から入力された自己相関に基づいて拍間隔毎に振幅特性の類似度を表す拍間隔重み情報を生成する。拍間隔重み算出部123は、生成した拍間隔重み情報を粒子重み算出部124に出力する。その後、ステップS108に進む。
(ステップS108)粒子重み算出部124は、周波数特性重み算出部122から入力された周波数特性重み情報、拍間隔重み算出部123から入力された拍間隔重み情報、粒子遷移部132から入力された粒子i毎の粒子分布値、状態遷移確率、粒子情報に基づいて粒子重み情報を生成する。粒子重み算出部124は、例えば式(9)を用いて粒子重み値wi,kを算出し、算出した粒子重み値を表す粒子重み情報を生成する。粒子重み算出部124は、入力された粒子i毎の粒子情報に含まれる粒子重み情報を、生成した粒子重み情報に置き換えることで粒子情報を更新する。
粒子重み算出部124は、更新した粒子情報を再標本化部133、楽譜位置算出部142及び拍間隔算出部143に出力する。その後、ステップS109に進む。
(ステップS109)楽譜位置算出部142は、粒子重み算出部124から入力された粒子i毎の粒子情報から楽譜位置情報と粒子重み情報を抽出する。楽譜位置算出部142は、粒子i毎に抽出した楽譜位置情報が表す楽譜位置p に基づいて推定楽譜位置<p>を算出する。楽譜位置算出部142は、例えば、粒子重み情報が表す粒子重み値wi,kによる加重平均を推定楽譜位置<p>とする。楽譜位置算出部142は、算出した推定楽譜位置<p>を表す推定楽譜位置情報を信頼度判定部144に出力する。楽譜位置算出部142は、一部の粒子についての粒子重み値の総和と、全部の粒子についての粒子重み値の総和を算出する。楽譜位置算出部142は、算出した一部の粒子についての粒子重み値の総和、全部の粒子についての粒子重み値の総和を信頼度判定部144に出力する。その後、ステップS110に進む。
(ステップS110)拍間隔算出部143は、粒子重み算出部124から入力された粒子i毎の粒子情報から拍間隔情報と粒子重み情報を抽出する。拍間隔算出部143は、例えば、粒子重み情報が表す粒子重み値wi,kによる加重平均を推定拍間隔<b>として算出する。拍間隔算出部143は、算出した推定拍間隔<b>を表す推定拍間隔情報を拍間隔出力部146に出力する。その後、ステップS111に進む。
(ステップS111)信頼度判定部144は、楽譜位置算出部142から入力された一部の粒子についての粒子重み値の総和、全部の粒子についての粒子重み値の総和に基づいて信頼度係数vを、例えば式(10)を用いて算出する。
信頼度判定部144は、現在のフィルタリングステップkにおける信頼度係数vから前フィルタリングステップk−1における信頼度係数vk−1の差分v−vk−1を算出する。その後、ステップS112に進む。
(ステップS112)信頼度判定部144は、差分v−vk−1が予め定めた閾値−ηdec(閾値1)よりも小さいか否かを判断する。予め定めた閾値−ηdecよりも小さいと判断したとき(ステップS112 Y)、ステップS113に進む。予め定めた閾値−ηdecよりも小さくないと判断したとき(ステップS112 N)、ステップS114に進む。
(ステップS113)信頼度判定部144は、楽譜位置算出部142から入力された推定楽譜位置情報<p>の楽譜位置出力部145への出力を停止する。その後、ステップS114に進む。
(ステップS114)信頼度判定部144は、差分v−vk−1が予め定めた閾値ηinc(閾値2)よりも大きいか否かを判断する。予め定めた閾値ηincよりも大きいと判断したとき(ステップS114 Y)、ステップS115に進む。予め定めた閾値ηincよりも大きくないと判断したとき(ステップS114 N)、ステップS116に進む。
(ステップS115)信頼度判定部144は、楽譜位置算出部142から入力された推定楽譜位置情報<p>の楽譜位置出力部145への出力を再開する。その後、ステップS116に進む。
(ステップS116)再標本化部133は、入力された粒子情報に含まれる粒子重み情報が表す粒子重みに比例した確率で粒子数Iよりも多い予め定めた数の粒子を抽出する。再標本化部133は、増加した粒子数と同一の数だけ、粒子重み値wi,kがより小さい粒子を優先して抽出した粒子を棄却する。再標本化部133は、抽出された各粒子の楽譜位置情報及び拍間隔情報は、対応する抽出前の粒子の楽譜位置情報及び拍間隔情報と同一とする。再標本化部133は、棄却されずに残った粒子の粒子情報を粒子遷移部132に出力する。その後、ステップS117に進む。
(ステップS117)粒子遷移部132は、相関算出部104から距離値及び自己相関が、楽譜情報入力部112から入力された楽譜情報が、再標本化部133から粒子毎の粒子情報が入力される。粒子遷移部132は、入力された楽譜情報に基づいてオンセット情報を生成する。
粒子遷移部132は、楽譜情報に含まれるテンポ情報、自己相関、粒子情報に基づいて拍間隔分布値を算出する。粒子遷移部132は、算出した拍間隔分布値に比例する確率で粒子iの拍間隔b を定める。粒子遷移部132は、オンセット情報、距離値、及び抽出した拍間隔b に基づいて楽譜位置分布値を算出し、算出した楽譜位置分布値に比例する確率で粒子iの楽譜位置p を定める。
粒子遷移部132は、粒子i毎の拍間隔分布値に、楽譜位置分布値を乗じて、粒子分布値q(p ,b |{A},o,b )を算出する。
粒子遷移部132は、粒子i毎に前フィルタリングステップk−1における楽譜位置p k−1、拍間隔b k−1と、現フィルタリングステップkで定めた楽譜位置p 、拍間隔b に基づいて、状態遷移確率q(p ,b |p k−1,b k−1)を算出する。
粒子遷移部132は、粒子毎に粒子情報に含まれる拍間隔情報及び楽譜位置情報を、抽出した拍間隔を表す拍間隔情報及び楽譜位置を表す楽譜位置情報にそれぞれ置き換える。粒子遷移部132は、置き換えた粒子情報を関連度算出部121の周波数特性重み算出部122、拍間隔重み算出部123、粒子重み算出部124に出力する。
粒子遷移部132は、算出した粒子毎の粒子分布値と状態遷移確率を粒子重み算出部124に出力する。その後、処理を終了する。
ここで粒子遷移部132の構成について、より詳細に説明する。図1に戻り、粒子遷移部132は、相関算出部104から距離値及び自己相関が、楽譜情報入力部112から入力された楽譜情報が、再標本化部133から粒子毎の粒子情報が入力される。粒子遷移部132は、入力された楽譜情報からコードの変化(オンセット)を有するか否かを表すオンセット情報を生成する。コードの変化は、コードに含まれる音階の変化である。従って、コードの変化が楽譜位置では音響信号は、変化直後の音階の周波数成分が新たに発生し、振幅の立ち上がり(オンセット)として観測される。ここで、粒子遷移部132は、基本周波数ベクトル{μ}が、直前の楽譜フレームp−1における基本周波数ベクトル{μp−1}と異なる楽譜フレームpがオンセットを有すると判断する。粒子遷移部132は、基本周波数ベクトル{μ}が、直前の楽譜フレームp−1における基本周波数ベクトル{μp−1}と同一ではない楽譜フレームpはオンセットを有しないと判断する。粒子遷移部132は、楽譜フレームp毎にオンセットを有するか否かを表すオンセット情報を生成する。例えば、楽譜フレームpがオンセットを有することを表すオンセット情報oは1であり、楽譜フレームpがオンセットを有しないことを表すオンセット情報oは0である。
なお、本実施形態では、粒子遷移部132は、楽譜情報に対応するオンセット情報を楽譜情報入力部112から入力されるようにしてもよい。その場合、予め生成したオンセット情報を楽譜情報と対応付けて楽譜情報記憶部111に記憶させておき、楽譜情報入力部112が楽譜情報記憶部111から読み出したオンセット情報を粒子遷移部132に出力する。
粒子遷移部132は、生成したオンセット情報、入力された距離値、自己相関、及び楽譜情報に含まれるテンポ情報に基づいて粒子分布値を算出する。粒子遷移部132は、算出した粒子分布値が表す粒子分布で粒子を抽出することで粒子を遷移させる。粒子遷移部132は、遷移させた粒子毎の粒子情報を関連度算出部121の周波数特性重み算出部122及び拍間隔重み算出部124に出力する。
ここで、粒子遷移部132が、粒子分布値を算出する処理について説明する。
粒子遷移部132は、テンポ情報に基づいて拍間隔bに対する窓関数ψ(b|b’)を算出する。窓関数ψ(b|b’)は、例えば、テンポ情報が表すテンポ60/b’を中心とする予め定めた範囲内|60/b−60/b’|<60/bθでは1であり、その範囲外では0である。以下、60/bθをテンポ窓長(tempo window length)と呼ぶ。
粒子遷移部132は、自己相関R(b,{A})に窓関数ψ(b|b’)を乗じて拍間隔bに対する分布値q(b|{A},b’)を算出する。これにより、粒子遷移部132は、楽曲の拍間隔としてあり得ない拍間隔を排除し、拍構造の周期性が高い拍間隔をもつ粒子が抽出される確率を高くする。そして、粒子遷移部132は、入力された粒子情報から、算出した分布値q(b|{A},b’)に比例する確率で粒子iの拍間隔b を定める。
なお、粒子遷移部132は、自己相関R(b,{Ξ’})が相関算出部104から入力された場合には、R(b,{A})の代わりにR(b,{Ξ’})を用いて分布値q(b|{A},b’)を算出してもよい。
粒子遷移部132は、生成したオンセット情報、距離値、及び抽出した拍間隔b に基づいて楽譜位置pに対する分布値q(p|{A},o,b )を算出する。
ここで、粒子遷移部132は、例えば式(12)を用いて分布値q(p|{A},o,b )を算出する。
式(12)において、τ’(p,b)は、楽譜位置の探索範囲P に含まれ、かつ時刻kΔTにおける音響フレームと対応付けられた楽譜位置pにおけるオンセット情報oを表す。探索範囲P は、前フィルタリングステップk−1における粒子iの楽譜位置p k−1から拍間隔b=b だけ進んだ楽譜位置p k−1’=p k−1+ΔT/b k−1を中心とし、予め定めた幅2δ(例えば、δ=3)を有する。
即ち、式(12)は、探索範囲P にオンセットが含まれる場合、分布値q(p|{A},o,b )は、オンセットを有する楽譜位置に対応する時刻における音響信号の振幅の累積値に比例する値であることを表す。探索範囲P にオンセットが含まれない場合、1に比例する値であることを表す。楽譜位置pが、探索範囲P の範囲外である場合には、分布値q(p|{A},o,b )は、ゼロであることを表す。
ここで、楽譜位置と音響信号の振幅との関係について説明する。
図4は、楽譜情報と音響信号の関係の一例を表す概念図である。
図4の上段は、楽譜情報を表す。楽譜情報は、左から順に、1拍の音階A4からなるコードd1、0.5拍のコードB4、F3からなるコードd2、0.5拍の音階B4、G3からなるコードd3を表す。この例では、音階B3を2つの0.5拍からなる音として扱う。図4の上下に延びる3本の破線は、各々オンセットを表す。図4では、オンセットを有する楽譜位置は、左端、左端から1拍、左端から1.5拍である。なお、各コードが継続する区間をセグメントといい、d1、d2、d3は、各コードのセグメントを表す。
図4の下段は音響信号のスペクトログラムを表す画像である。水平方向は時刻を表し、上下方向は周波数を表す。この画像において濃淡は振幅を表す。明るい部分ほど振幅が大きく、暗い部分ほど振幅が小さいことを表す。図4の下段は、各周波数において振幅が一斉に増加し、その後、周波数が高い成分ほど早く振幅が減衰する時間変化が3回繰り返されることを表す。振幅が一斉に増加する部分が、音響信号の振幅が急激に増加する部分である。従って、図4において明るい部分を破線が通過していることは、音響信号の振幅が急激に増加する部分と楽譜情報に基づくオンセットと合致していることを表す。このとき、分布値q(p|{A},o,b )は、大きな値をとる。言い換えれば、音響信号の振幅が急激に増加する部分が、楽譜情報に基づくオンセットと合致していない場合、分布値q(p|{A},o,b )はより小さい値をとる。
これにより、粒子遷移部132は、分布値q(p|{A},o,b )を用いることで、楽譜情報に含まれるオンセットと音響信号の振幅が増加する部分の楽譜位置p が推定される確率を高くすることができる。
図1に戻り、粒子遷移部132は、自己相関R(b,{Ξ’})が相関算出部104から入力された場合には、R(b,{A})の代わりにR(b,{Ξ’})を用いてもよい。この場合において、粒子遷移部132は、例えば式(13)を用いて分布値q(p|{A},o,b )を算出してもよい。
式(13)において、ζは、周波数毎の距離値Ξf,tを累積した累積距離値ζを表す。例えば、累積距離値ζは、式(14)を用いて算出される。
式(13)に戻り、p’(τ)は、拍間隔b についての時刻τに対応する楽譜位置を表す。即ち、p’(τ)=p−(t−τ)/b という関係がある。この関係において、時刻tにおける楽譜位置がpであると仮定されている。Pは、楽譜位置の探索範囲を表す。楽譜範囲Pは、前フィルタリングステップk−1における楽譜位置p k−1から拍間隔b だけ進んだ楽譜位置p k−1+ΔT/b を中心とし、前後に予め定めた幅3δ(例えば、δ=1)を有する。この楽譜位置は、粒子iの現フィルタリングステップkにおける推定楽譜位置である。即ち、式(13)は、探索範囲Pにオンセットが含まれる場合、分布値q(p|{A},o,b )は、オンセットを有する楽譜位置に対応する時刻における累積距離値ζに比例する値であることを表す。探索範囲Pにオンセットが含まれない場合、1に比例する値であることを表す。楽譜位置pが、探索範囲Pの外である場合には、分布値q(p|{A},o,b )は、ゼロであることを表す。
粒子遷移部132は、入力された粒子情報から算出した分布値q(p|{A},o,b )に比例する確率で粒子iの楽譜位置p を定める。
なお、上述の探索範囲P k−1(又はP)にオンセットが含まれない場合には、粒子遷移部132は、当該探索範囲からランダムに粒子iの楽譜位置p を抽出する。
粒子遷移部132は、粒子i毎に算出した拍間隔の分布値(拍間隔分布値)q(b |{A},b’)に、楽譜位置の分布値(楽譜位置分布値)q(p |{A},o,b )を乗じて、粒子の分布値(粒子分布値)q(p ,b |{A},o,b )を算出する。
粒子遷移部132は、粒子i毎にフィルタリングステップk−1からkへの状態遷移確率q(p ,b |p k−1,b k−1)を、例えば式(15)を用いて算出する。
式(15)において、N(a|b,σ)は、変数aについての正規分布関数(ガウス関数、ガウシアンとも呼ばれる)を表す。ここで、原点がbであり、分散がσである。σ は、拍間隔bの分散を表す実数値(例えば、0.2)である。p k−1+ΔT/b k−1は、前フィルタリングステップk−1における楽譜位置p k−1から拍間隔b k−1だけ進んだ楽譜位置を表す。σ は、楽譜位置pの分散を表す実数値(例えば、1)である。なお、楽譜位置p k−1は、粒子iの楽譜位置情報が表す値であり、拍間隔b k−1は、粒子iの拍間隔情報が表す値である。これにより、実際の演奏によって生じる拍間隔や楽譜位置の揺らぎが考慮される。
粒子遷移部132は、粒子毎に粒子情報に含まれる拍間隔情報及び楽譜位置情報を、抽出した拍間隔を表す拍間隔情報及び楽譜位置を表す楽譜位置情報にそれぞれ置き換える。粒子遷移部132は、置き換えた粒子情報を関連度算出部121の周波数特性重み算出部122、拍間隔重み算出部123、粒子重み算出部124に出力する。
粒子遷移部132は、算出した粒子毎の粒子分布値q(p ,b |{A},o,b )と状態遷移確率q(p ,b |p k−1,b k−1)を粒子重み算出部124に出力する。
初期(k=0)において、粒子遷移部132は、例えば、テンポ60/b’を中心とする予め定めた範囲内(b’−60/bθ<b<b’+60/bθ)の一様分布から粒子i毎の拍間隔b を定める。また、粒子遷移部132は、粒子i毎の楽譜位置p をゼロと定める。粒子遷移部132は、粒子分布値q(p ,b |{A},o,b )と状態遷移確率q(p ,b |p k−1,b k−1)を1と定める。
次に、本実施形態に係る粒子遷移部132が行う粒子遷移処理について説明する。
図5は、本実施形態に係る粒子遷移処理を表すフローチャートである。
(ステップS201)粒子遷移部132は、相関算出部104から距離値及び自己相関が、楽譜情報入力部112から入力された楽譜情報が、再標本化部133から粒子毎の粒子情報が入力される。粒子遷移部132は、入力された楽譜情報に基づいてオンセット情報を生成する。その後、ステップS202に進む。
(ステップS202)粒子遷移部132は、入力された楽譜情報に含まれるテンポ情報に基づいて拍間隔bに対する窓関数ψ(b|b’)を算出する。粒子遷移部132は、入力された自己相関R(b,{A})に窓関数ψ(b|b’)を乗じて拍間隔分布値q(b|{A},b’)を算出する。その後、ステップS203に進む。
(ステップS203)粒子遷移部132は、入力された粒子情報から、算出した拍間隔分布値q(b|{A},b’)に比例する確率で粒子iの拍間隔b を抽出する。その後、ステップS204に進む。
(ステップS204)粒子遷移部132は、生成したオンセット情報、距離値、及び抽出した拍間隔b に基づいて楽譜位置分布値q(p|{A},o,b )を算出する。粒子遷移部132は、例えば式(12)を用いて楽譜位置分布値q(p|{A},o,b )を算出する。その後、ステップS205に進む。
(ステップS205)粒子遷移部132は、粒子遷移部132は、楽譜位置分布値q(p|{A},o,b )に比例する確率で粒子iの楽譜位置p を抽出する。但し、探索範囲P k−1(又はP)にオンセットが含まれない場合には、粒子遷移部132は、探索範囲からランダムに粒子iの楽譜位置p を抽出する。その後、ステップS206に進む。
(ステップS206)粒子遷移部132は、粒子遷移部132は、粒子i毎に拍間隔分布値q(b |{A},b’)に、楽譜位置分布値q(p |{A},o,b )を乗じて、粒子分布値q(p ,b |{A},o,b )を算出する。その後、ステップS207に進む。
(ステップS207)粒子遷移部132は、粒子i毎に前フィルタリングステップk−1における楽譜位置p k−1、拍間隔b k−1、抽出された楽譜位置p k−1、拍間隔b k−1に基づいて、状態遷移確率q(p ,b |p k−1,b k−1)を算出する。粒子遷移部132は、状態遷移確率q(p ,b |p k−1,b k−1)を算出する際、例えば式(15)を用いる。その後、ステップS208に進む。
(ステップS208)粒子遷移部132は、粒子毎に粒子情報に含まれる拍間隔情報及び楽譜位置情報を、抽出した拍間隔を表す拍間隔情報及び楽譜位置を表す楽譜位置情報にそれぞれ置き換える。粒子遷移部132は、置き換えた粒子情報を関連度算出部121の周波数特性重み算出部122、拍間隔重み算出部123、粒子重み算出部124に出力する。
粒子遷移部132は、算出した粒子毎の粒子分布値q(p ,b |{A},o,b )と状態遷移確率q(p ,b |p k−1,b k−1)を粒子重み算出部124に出力する。その後、処理を終了する。
図1に戻り、再標本化部133の動作について、より詳細に説明する。再標本化部133は、粒子重み算出部124から入力された粒子情報に基づいて各粒子を再標本化する。
再標本化部133は、入力された粒子情報に含まれる粒子重み情報が表す粒子重みに比例した確率で粒子を抽出する。再標本化部133は、粒子を抽出する際、例えばSIR(sampling importance resampling)法を用いる。
再標本化部133は、粒子i毎の粒子重み係数を、次式(16)を用いて規格化し、規格化粒子重み係数wi,k’を算出する。
式(16)において、Iは、予め定めた粒子数を示す整数(例えば、1500)を表す。
再標本化部133は、算出した確率(規格化粒子重み係数wi,k’)で次回の粒子iを抽出する。ここで、再標本化部133は、抽出された各粒子の粒子重みは、各々等しい値(例えば、1/I)とし、抽出された各粒子の楽譜位置情報及び拍間隔情報は、対応する抽出前の粒子の楽譜位置情報及び拍間隔情報と同一とする。再標本化部133は、抽出した粒子毎の楽譜位置情報、拍間隔情報及び粒子重みを含む粒子情報を生成する。
再標本化部133は、これにより、粒子数Iよりも多い予め定めた数の粒子を抽出する。その後、再標本化部133は、増加した粒子数と同一の数だけ、粒子を棄却する。ここで、再標本化部133は、抽出前の粒子重みが小さい粒子ほど優先して、その粒子に基づいて抽出した粒子情報を棄却する。これにより、再標本化部133は、粒子数(粒子情報の数)を一定数Iに保つ。再標本化部133は、棄却されずに残った粒子の粒子情報を粒子遷移部132に出力する。
次に、拍間隔重み算出部123の動作について説明する。
拍間隔重み算出部123は、粒子遷移部132から入力された粒子情報に含まれる拍間隔情報を粒子i毎に抽出する。拍間隔重み算出部123は、相関算出部104から入力された自己相関R(b,{A})又はR(b,{Ξ’})から抽出した拍間隔情報が表す拍間隔b に対応する値R(b ,{A})又はR(b ,{Ξ’})を拍間隔重み値wtm i,kと定める。拍間隔重み算出部123は、粒子i毎の拍間隔重み値wtm i,kを表す拍間隔重み情報を粒子重み算出部124に出力する。
なお、本実施形態では、拍間隔重み算出部123を省略してもよい。拍間隔重み算出部123を省略する場合、粒子遷移部132が相関算出部104から入力された自己相関R(b,{A})又はR(b,{Ξ’})から拍間隔b に対応する値R(b ,{A})又はR(b ,{Ξ’})を拍間隔重み値wtm i,kと定める。粒子遷移部132は、粒子i毎に定めた拍間隔重み値wtm i,kを表す拍間隔重み情報を粒子重み算出部124に出力してもよい。
次に、周波数特性重み算出部122について説明する。
本実施形態では、楽譜情報に基づく振幅周波数特性(例えば、楽譜スペクトログラム)が、既知の楽譜情報に含まれる楽譜位置毎の音階の基本周波数に基づく調波構造で表される成分を少なくとも1つ含むと仮定する。そこで、周波数特性重み算出部122は、観測値である音響信号に基づく振幅周波数特性(音響スペクトログラム)に対して尤度が最大となるように、調波構造毎の楽譜スペクトログラムへの寄与を表す変数の確率分布や、各調波構造に含まれる調波成分毎の当該調波構造への寄与を表す変数を変分パラメータとして算出する。周波数特性重み算出部122は、算出した変数が表す楽譜スペクトログラムが観測値として音響スペクトログラムが与えられているときの確率を算出し、算出した確率に基づいて周波数特性重み値wsp i,kを算出する。本実施形態では、上述の尤度が最大になるような周波数特性重み値wsp i,kを算出できればよいので、楽譜情報に基づく振幅周波数特性(楽譜スペクトログラム)を陽に合成しなくともよい。
周波数特性重み算出部122は、例えば、LHA(Latent Harmonic Allocation;潜在的調波配分)法を用いて周波数特性分析部103から入力された音響スペクトログラムと楽譜情報入力部112から入力された楽譜情報に基づいて周波数特性重み情報を生成する。
LHA法は、入力された音響信号のスペクトログラムを観測値とし、この観測値を調波構造と成分として含み、調波構造の楽譜スペクトログラムに対する寄与を表す変数の確率分布、調波成分の調波構造への寄与を表す係数の確率分布として表す音源モデルである。調波構造は、基本周波数の成分と基本周波数の整数倍の周波数の成分(高調波)を調波成分として含む周波数特性を表す。従って、基本周波数、各次数の振幅(もしくは、基準値に対する比率)が、調波構造を表す変数に含まれる。
ここで、LHA法に基づく音源モデルについて説明する。
図6は、本実施形態に係る音源モデルの一例を表す概念図である。
図6の右上に示されるxは、周波数を表す。xを囲う二重円は、xが観測変数であることを表す。zからxに向かう矢印、μからxに向かう矢印及びΛからxに向かう矢印は、周波数xの潜在変数(latent variable)z、基本周波数μ及び精度(precision)Λに対する尤度q(X|Z,{μ},{Λ})が仮定されていることを表す。X、Z、{μ}、{Λ}は、それぞれ変数x、z、μ、Λの集合(セット)を表す。z、Λを囲う円は、z、Λがそれぞれ未知変数であることを示す。μが円で囲まれていないことは、基本周波数μが既知変数であることを表す。基本周波数μは、楽譜情報の基本周波数ベクトルに含まれる各音階の基本周波数であるためである。
πdlからzに向かう矢印、θlmからzに向かう矢印、潜在変数zの確率πdl及び確率θlmに対する尤度q(Z|{π},{θ})が仮定されていることを表す。ここで、{π},{θ}は、それぞれ変数πdl、θlmの集合(セット)を表す。πdl、θlmを囲う円は、πdl、θlmがそれぞれ未知変数であることを示す。末端に示されている未知変数πdl、θlm、Λに対して、それぞれ事前分布q({π})、q({θ})、q({Λ})が仮定されていることを表す。従って、LHA法では、確率分布q(X,Z,{π},{θ},{Λ})は、q(X|Z,{μ},{Λ})、q(X|Z,{μ},{Λ})、q({π})、q({θ})、q({Λ})の積で表される。
図6において、変数を囲う四角形は、それぞれ尤度又は事前分布を与える単位、即ち、観測値を表現する確率分布を表現するための単位を表す。xとzを囲う四角形は、xとzが楽譜フレームn毎に与えられることを表す。この四角形の右下に表されているNは、セグメントdに含まれるフレーム数を表す。z、xとともにπdlを囲う四角形は、πdlがセグメントd毎に与えられることを表す。この四角形の右下に表されているDは、全セグメント数を表す。θlmとともにμ、Λを囲う四角形は、μ、Λが調波構造l毎に与えられることを表す。この四角形の右下に表されているLは、調波構造の総数を表す。θlmを囲う四角形は、θlmが調波構造lを構成する次数mの調波毎に与えられることを表す。但し、m=1は、基本周波数を表す。この四角形の右下に示されているMは、各調波構造に含まれる調波の個数(最高次数)を表す。
LHA法では、調波構造lを、例えばGMMを用いて表す。即ち、調波構造lは、次数mについて周波数mμを平均値とするガウス関数を確率θlm(1≦m≦M)で線形重み付け加算した確率分布で表される。ここで、調波構造l毎の確率θlmの総和Σ θlmは1と規格化されている。即ち、確率θlmは、(Mは、各調波構造が含む調波の数を表す予め定められた整数である(例えば、M=10)。各次数mについて、ガウス関数の分散は精度Λである。即ち、確率θlmは、次数間の寄与の比率、言い換えれば次数mの調波成分の調波構造lへの寄与を表す変数である。精度Λは、基本周波数μの誤差の大きさを表す。
図7は、本実施形態に係る調波構造の一例を表す図である。
図7において、縦軸は確率を表し、横軸は周波数を表す。図7において、細い破線は調波構造lが、周波数μ,2μ,…,Mμにおいて確率のピーク値θl1,θl2,…,θlMを有することを表す。一点破線は、ピーク値θl1,θl2,…,θlMを表す。周波数2μを中心とする確率値の曲線(ガウス関数)を挟む2つの矢印の間隔は、精度Λを表す。
LHA法では、観測値である音響スペクトログラムを周波数xの確率分布とみなす。本実施形態では、周波数xの確率分布を、調波構造lを確率πdl(1≦l≦lL)で線形重み付け加算した確率分布で近似する。即ち、確率πdlは、調波構造lの楽譜スペクトラムへの寄与を表す変数であり、この楽譜スペクトログラムは陽に算出されないがをも音響スペクトログラムを近似する。本実施形態では、音響スペクトログラム、調波構造lに含まれる確率値(即ち、振幅)を予め定めた量子化幅で量子化してもよい。これにより、確率分布は、振幅を度数とするヒストグラムとして表されるため演算量が低減する。
図8は、本実施形態に係るヒストグラムの一例を表す図である。
図8の左上は、調波構造1を表すヒストグラムである。図8の左下は、調波構造lを現すヒストグラムである。図8の右側は、周波数xの確率分布を表すヒストグラムである。これらのヒストグラムにおいて、縦軸は振幅を表し、横軸は周波数を表す。調波構造1の振幅は、周波数μ、2μ、3μ、4μ、5μ、6μにおいてピークを有する。各ピーク値の大きさは、楽器の音色などに応じて異なる。調波構造lの振幅は、周波数μ、2μにおいてピークを有する。図8に示す例では、周波数μは周波数μよりも高く、周波数μにおけるピーク値は、周波数μにおけるピーク値よりも小さい。
調波構造1を表すヒストグラムの右側に表されているπd1は、調波構造1に対する確率を表す。調波構造lを表すヒストグラムの右側に表されているπdlは、調波構造lに対する確率を表す。図8の最左辺の上下に延びる括弧と「L個」の文字は、L個の調波構造lを確率πdlで重み付け加算して、図8の右側における周波数xの確率分布を近似することを表す。
従って、本実施形態では観測値Xが与えられているときに、全ての未知変数の事後分布q(X,Z,{π},{θ},{Λ}|p ,{μ})を粒子i毎に算出する。全ての未知変数に対する事後分布q(X,Z,{π},{θ},{Λ}|p ,{μ})を累積した累積確率値は、本音源モデルの適合性を表す。周波数特性重み算出部122は、例えば、式(17)を用いて算出した累積確率値を周波数特性重み値の対数値logwsp i,kとして算出する。
しかし、式(17)を用いた演算、とりわけZに対する累算を解析的に行うことは困難である。そこで、本実施形態では、変分ベイズ法(variational Bayes[VB] method)を用いて、事後分布q(Z,{π},{θ},{Λ}|X,p ,{μ})を近似する。本実施形態では、解析的に求めることができる変分事後分布q(Z,{π},{θ},{Λ})を仮定し、真の事後分布q(Z,{π},{θ},{Λ}|X,p ,{μ})との指標値(例えば、カルバック・ライブラー情報量[Kullback−Leibler Divergence;KL−div])を最小化する変分パラメータを算出する。KL−div DKL(q|q’)は、式(18)に示すように、ある確率分布q(j)と他の確率分布q’(j)の差異を表す指標値である。
変分ベイズ法では、全ての未知変数についての変分事後分布q(Z,{π},{θ},{Λ})が、未知変数Zの変分事後分布q(Z)と未知変数{π}、{θ}、{Λ}の変分事後分布q({π},{θ},{Λ})の積に因数分解できると仮定する。
後述するように、例えば、式(19)で表される変分下限値(variational lower bound)L(q)が収束する変分パラメータを算出する。
式(19)において、EZ,{π},{θ},{Λ}[…]は、変分事後分布q(Z,{π},{θ},{Λ})に対する…の期待値を表す。
そして、変分下限値L(q)を周波数特性重み値の対数値logwsp i,kとして算出する。変分下限値L(q)と変分事後分布q(Z,{π},{θ},{Λ})と確率分布q(Z,{π},{θ},{Λ}|X,p ,{μ})の間のKL−divの和は、常に式(17)の右辺と一致するため、変分ベイズ法によりKL−divを最小化することで、式(17)の近似値として変分下限値L(q)を代用する。
変分ベイズ法では、変分パラメータの算出において式(20)、(21)に示す関係が仮定されている。これらの関係は、ともに変分事後分布q({Z})、q({π}、{θ}、{Λ})が最適であることを表す。
式(20)は、潜在変数{Z}の変分事後分布q({Z})が、粒子i毎の確率分布q(X,Z,{π},{θ},{Λ}|p ,{μ})の、その他の未知変数{π}、{θ}、{Λ}の変分事後分布q({π}、{θ}、{Λ})に対する期待値に比例することを表す。この関係を満足するように変分パラメータを算出する処理は、VB−E(Expectation)ステップと呼ばれる。
式(21)は、未知変数{π}、{θ}、{Λ}の変分事後分布q({π}、{θ}、{Λ})が、粒子i毎の確率分布q(X,Z,{π},{θ},{Λ}|p ,{μ})の、潜在変数Zの変分事後分布q({Z})に対する期待値に比例することを表す。この関係を満足するように変分パラメータを算出する処理は、VB−M(Maximization)ステップと呼ばれる。
次に、LHA法に変分ベイズ法を適用したときの周波数特性重み算出部122の構成について説明する。
図9は、本実施形態に係る周波数特性重み算出部122の構成を表す概略図である。
周波数特性重み算出部122は、データ入力部1221、第1変分パラメータ算出部1222、第2変分パラメータ算出部1223、変分下限値算出部1224、収束判定部1225、及び重み算出部1226を含んで構成される。
データ入力部1221は、周波数特性分析部103から音響スペクトログラムAf,tが、楽譜情報入力部112から楽譜情報が、粒子遷移部132から粒子毎の粒子情報がそれぞれ入力される。データ入力部1221は、音響スペクトログラムAf,tを予め定めた量子化幅ΔAで量子化して量子化音響スペクトログラム[Af,t]を算出する。ここで、算出した量子化音響スペクトログラム[Af,t]は、音響フレームnにおける周波数x毎の度数(確率)としたヒストグラムを表す。つまり、このヒストグラムは周波数xが発生する回数が量子化音響スペクトログラム[Af,t]が表す振幅に比例することを表す。
データ入力部1221は、粒子情報から粒子i毎に楽譜位置情報p 、拍間隔情報b を抽出し、入力された楽譜情報から楽譜位置p から拍間隔b 前の楽譜位置p −b までの楽譜情報を抽出する。データ入力部1221は、抽出した楽譜情報からセグメントd毎の基本周波数ベクトルμを抽出する。
データ入力部1221は、算出した量子化音響スペクトログラム[Af,t]から、粒子i毎の楽譜位置p に対応する時刻kΔTから楽譜位置p −b に対応する時刻までの区間の量子化音響スペクトログラム[Af,t]を抽出する。
データ入力部1221は、粒子i毎に抽出した区間の量子化音響スペクトログラム[Af,t]とセグメントd毎の基本周波数ベクトルμを、第1変分パラメータ算出部1222、第2変分パラメータ算出部1223、及び変分下限値算出部1224に出力する。
第1変分パラメータ算出部1222は、データ入力部1221から、量子化音響スペクトログラム[Af,t]、セグメントd毎の基本周波数ベクトルμが入力される。また、第2変分パラメータ算出部1223から変分パラメータαdl、βlm、a、bが入力される。
第1変分パラメータ算出部1222は、入力されたパラメータを用いて、上述のVB−Eステップを実行する。即ち、第1変分パラメータ算出部1222は、例えば式(22)を用いて、d、n、l、m毎にパラメータρdnlmを算出する。
式(22)において、ψ(…)は、…のディガンマ(digamma)関数を表す。
αd・は、αdlのlに対する総和Σαdlである。β・lは、βdlのdに対する総和Σβdlである。
次に、第1変分パラメータ算出部1222は、式(23)に基づいてd、n、l、m毎にパラメータρdnlmをパラメータρdn・・で除算して変分パラメータγdnlmを算出する。
式(23)において、パラメータρdn・・は、パラメータρdnlmのl、mに対する総和ΣΣρdnlmである。
変分パラメータγdnlmは、負担率とも呼ばれ、観測した周波数xが調波構造lの第m高調波に対応するガウス分布の事後確率を表す。
なお、式(22)、(23)は、潜在変数{Z}の変分事後分布q({Z})が、変分パラメータγdnlmのzdnlm乗の積からなる多項分布(式(24))に従うことを仮定して導出される。変分パラメータγdnlmのzdnlm乗の積は、変分パラメータγdnlmがzdnlm回発生する確率である。
第1変分パラメータ算出部1222は算出した変分パラメータγdnlmを第2変分パラメータ算出部1223に出力する。
第2変分パラメータ算出部1223は、データ入力部1221から、量子化音響スペクトログラム[Af,t]、セグメントd毎の基本周波数ベクトルμが入力される。また、第1変分パラメータ算出部1222から変分パラメータγdnlmが入力される。
第2変分パラメータ算出部1223は、入力されたパラメータを用いて、上述のVB−Mステップを実行する。ここで、第2変分パラメータ算出部1223は、例えば式(25)を用いて、d、l毎にパラメータα0lにパラメータγd・l・を加算して変分パラメータαdlを算出する。
式(25)において、パラメータγd・l・は、変分パラメータγdnlmのn、mに対する総和ΣΣγdnlmである。パラメータα0lは、予め定められた実数を表す。
第2変分パラメータ算出部1223は、例えば式(26)を用いて、l、m毎にパラメータβ0mにパラメータγ・・lmを加算して変分パラメータβlmを算出する。
式(26)において、パラメータγ・・lmは、変分パラメータγdnlmのd、nに対する総和ΣΣγdnlmである。パラメータβ0mは、予め定められた実数を表す。
第2変分パラメータ算出部1223は、例えば式(27)を用いて、l毎にパラメータaにパラメータγ・・l・を加算して変分パラメータaを算出する。
式(27)において、パラメータγ・・l・は、変分パラメータγdnlmのd、n、mに対する総和ΣΣΣγdnlmである。aは、予め定められた実数を表す。
第2変分パラメータ算出部1223は、例えば式(28)を用いて、変分パラメータbを算出する。
式(28)において、bは、予め定められた実数を表す。
なお、式(25)は、未知変数{π}の変分事後分布q({π})が変分パラメータ{α}に対するディリクレ分布の積(式(29))に従うことを仮定して導出される。
式(29)において、Dir({π}|{α})は、{π}の{α}に対するディリクレ分布を表す。{π}は、変数πdlのdに対する集合(セット)を表す。{α}は、変数αdlのdに対するセットを表す。式(29)のディリクレ分布は、複数の事象が各々αdl回発生する確率がπdlとなる確率を与える。
式(26)は、未知変数{θ}の変分事後分布q({θ})が変分パラメータ{θ}に対するディリクレ分布の積(式(30))に従うことを仮定して導出される。
式(30)において、Dir({θ}|{β})は、{θ}の{β}に対するディリクレ分布を表す。{θ}は、変数θlmのlに対する集合(セット)を表す。{β}は、変数βlmのmに対する集合(セット)を表す。式(30)のディリクレ分布は、複数の事象が各々βdl回発生する確率がθlmとなる確率を与える。
式(27)、(28)は、未知変数{Λ}の変分事後分布q({Λ})が変分パラメータa、bに対するガンマ分布の積(式(31))に従うことを仮定して導出される。
式(31)において、Gam(Λ|a,b)は、変数Λのガンマ関数を表す。a、bは、それぞれガンマ関数の形状パラメータ、比率パラメータを表す。なお、変分事後分布q({π}、{θ}、{Λ})は、式(29)、(30)、(31)で各々表される変分事後分布の積q({π})、q({θ})q({Λ})で因数分解できることが仮定されている。
第2変分パラメータ算出部1223は、算出した変分パラメータαdl、βlm、a、bと、第1変分パラメータ算出部1222から入力された変分パラメータγdnlmを変分下限値算出部1224に出力する。収束判定部1225から変分下限値L(q)が収束したことを表す変分下限値信号が入力されたとき、第2変分パラメータ算出部1223は、第1変分パラメータ算出部1222への変分パラメータαdl、βlm、a、bの出力を停止する。
変分下限値算出部1224は、第2変分パラメータ算出部1223から変分パラメータαdl、βlm、a、b、γdnlmが入力される。変分下限値算出部1224は、データ入力部1221から入力された量子化音響スペクトログラム[Af,t]、セグメントd毎の基本周波数ベクトルμに基づいて、例えば式(32)に基づいて確率分布q(X,Z,{π},{θ},{Λ}|p ,{μ})を算出する。
式(32)において、Xは入力された区間の量子化音響スペクトログラム[Af,t]に基づく周波数xの集合(即ち、上述のヒストグラム)を表す。{μ}は入力されたセグメントd毎の基本周波数ベクトル{μ}(但し、楽譜フレームpは、セグメントdに属す)に含まれる基本周波数μの集合(セット)を表す。q(X|Z,{μ},Λ)は、例えば、式(33)に示されるように、平均がm次の基本周波数μ、分散Λである、周波数xのガウス関数の積である。
式(32)において、q(Z|{π},{θ})は、例えば、式(34)に示されるようにπdlθlmのzdnlm乗の積からなる多項分布である。
式(32)において、q({π})は、例えば、式(35)に示されるように変数{π}のパラメータセット{α}に対するディリクレ分布の積である。
パラメータセット{α}は、上述のパラメータα0lの集合(セット)である。
式(32)において、q({θ})は、例えば、式(36)に示されるように変数{θ}のパラメータセット{β}に対するディリクレ分布の積である。
パラメータセット{β}は、上述のパラメータβ0mの集合(セット)である。
式(32)において、q({Λ})は、例えば、式(37)に示されるように分散Λのパラメータa、bに対するガンマ分布の積である。
パラメータa、bの値は、上述のパラメータa、bと同一の値である。
変分下限値算出部1224は、入力された変分パラメータαdl、βlm、a、b、γdnlmに基づいて、式(29)、(30)、(31)、(24)を用いて、変分事後分布q({π})、q({θ})、q({Λ})、q(Z)を算出する。変分下限値算出部1224は、算出したq({π})、q({θ})、q({Λ})、q(Z)の積をとり全未知変数についての変分事後分布q(Z,π,θ,Λ)を算出する。
変分下限値算出部1224は、算出した確率分布q(X,Z,{π},{θ},{Λ}|p ,{μ})と変分事後分布q(Z,π,θ,Λ)を、例えば式(19)を用いて粒子i毎の変分下限値L(q)を算出する。変分下限値算出部1224は、式(19)においてq(Z,π,θ,Λ)の代わりに、算出したq(Z,π,θ,Λ)を代入する。
なお、変分事後分布q({π})、q({θ})、q({Λ})、q(Z)は、それぞれ式(29)、(30)、(31)、(24)で表され、確率分布q(X|Z,{μ},Λ)q(Z|{π},{θ})、q({π})、q({θ})、q({Λ})は、それぞれ式(33)、(34)、(35)、(36)、(37)で表される関数を仮定しているため、変分下限値算出部1224は、式(19)を用いて変分下限値L(q)を解析的に算出することができる。かかる仮定により、事前分布と変分分布の関数形は相似、即ち共役になる。
変分下限値算出部1224は、算出した粒子iの変分下限値L(q)を収束判定部1225に出力する。
収束判定部1225は、変分下限値算出部1224から入力された粒子i毎の変分下限値L(q)が、収束したか否か判断する。収束判定部1225は、例えば、前回入力された変分下限値L(q)との差分の絶対値が、予め定めた値よりも小さくなったとき、変分下限値L(q)が収束したと判断する。
収束判定部1225は、変分下限値L(q)が収束したと判断したとき、変分下限値L(q)が収束したことを表す変分下限値信号を第2変分パラメータ算出部1223に出力する。また、収束判定部1225は、粒子i毎の変分下限値L(q)を重み算出部1226に出力する。
重み算出部1226は、収束判定部1225から入力された粒子iの変分下限値L(q)に基づいて粒子iの周波数特性重み値wsp i,kを算出する。重み算出部1226は、例えば、wsp i,k=exp(L(q))と算出する。重み算出部1226は、算出した周波数特性重み値wsp i,kを表す周波数特性重み情報を粒子重み算出部124に出力する。
次に、周波数特性重み算出部122が行う周波数特性重み算出処理について説明する。
図10は、本実施形態における周波数特性重み算出処理の一例を表すフローチャートである。
(ステップS301)データ入力部1221は、周波数特性分析部103から入力された音響スペクトログラムAf,tを予め定めた量子化幅ΔAで量子化して量子化音響スペクトログラム[Af,t]を算出する。
データ入力部1221は、粒子遷移部132から入力された粒子情報から粒子i毎に楽譜位置情報、拍間隔情報を抽出する。データ入力部1221は、楽譜情報入力部112から入力された楽譜情報から楽譜位置p から拍間隔b 前の楽譜位置p −b までの楽譜情報を抽出し、抽出した楽譜情報からセグメントd毎の基本周波数ベクトルμを抽出する。
データ入力部1221は、算出した量子化音響スペクトログラム[Af,t]から、粒子i毎の楽譜位置p に対応する時刻kΔTから楽譜位置p −b に対応する時刻までの区間の量子化音響スペクトログラム[Af,t]を抽出する。
データ入力部1221は、粒子i毎に抽出した区間の量子化音響スペクトログラム[Af,t]とセグメントd毎の基本周波数ベクトルμを、第1変分パラメータ算出部1222、第2変分パラメータ算出部1223、及び変分下限値算出部1224に出力する。その後、ステップS302に進む。
(ステップS302)第1変分パラメータ算出部1222は、データ入力部1221から、量子化音響スペクトログラム[Af,t]、セグメントd毎の基本周波数ベクトルμが入力される。また、第1変分パラメータ算出部1222は、第2変分パラメータ算出部1223から変分パラメータαdl、βlm、a、bが入力される。
第1変分パラメータ算出部1222は、入力されたパラメータに基づいて、例えば式(22)を用いて、パラメータρdnlmを算出し、式(23)を用いて変分パラメータγdnlmを算出する。
第1変分パラメータ算出部1222は算出した変分パラメータγdnlmを第2変分パラメータ算出部1223に出力する。その後、ステップS303に進む。
(ステップS303)第2変分パラメータ算出部1223は、データ入力部1221から、量子化音響スペクトログラム[Af,t]、セグメントd毎の基本周波数ベクトルμが入力される。また、第1変分パラメータ算出部1222から変分パラメータγdnlmが入力される。第2変分パラメータ算出部1223は、入力された変分パラメータγdnlmに基づいて、例えば式(25)、(26)、(27)、(28)を用いて、変分パラメータαdl、βlm、a、bを算出する。第2変分パラメータ算出部1223は、変分パラメータαdl、βlm、a、bを第1変分パラメータ算出部1222と変分下限値算出部1224に出力する。第2変分パラメータ算出部1223は、第1変分パラメータ算出部1222から入力された変分パラメータγdnlmを変分下限値算出部1224に出力する。その後、ステップS304に進む。
(ステップS304)変分下限値算出部1224は、データ入力部1221から入力された量子化音響スペクトログラム[Af,t]、セグメントd毎の基本周波数ベクトルμに基づいて、例えば式(32)に基づいて確率分布q(X,Z,{π},{θ},{Λ}|p ,{μ})を算出する。変分下限値算出部1224は、第2変分パラメータ算出部1223から入力された変分パラメータαdl、βlm、a、b、γdnlmに基づいて変分事後分布q(Z,π,θ,Λ)を算出する。
変分下限値算出部1224は、算出した確率分布q(X,Z,{π},{θ},{Λ}|p ,{μ})と変分事後分布q(Z,π,θ,Λ)を、例えば式(19)を用いて粒子i毎の変分下限値L(q)を算出する
変分下限値算出部1224は、算出した粒子iの変分下限値L(q)を収束判定部1225に出力する。その後、ステップS305に進む。
(ステップS305)収束判定部1225は、変分下限値算出部1224から入力された粒子i毎の変分下限値L(q)が、収束したか否か判断する。ここで、収束判定部1225は、変分下限値算出部1224から前回入力された変分下限値L(q)との差分の絶対値が、予め定めた値よりも小さくなったとき、変分下限値L(q)が収束したと判断する。変分下限値L(q)が収束したと判断したとき(ステップS305 Y)、第2変分パラメータ算出部1223は、変分パラメータαdl、βlm、a、bの第1変分パラメータ算出部1222への出力を停止する。収束判定部1225は、粒子i毎の変分下限値L(q)を重み算出部1226に出力する。その後、ステップS306に進む。
変分下限値L(q)が収束していないと判断したとき(ステップS305 N)、ステップS302に進む。
(ステップS306)重み算出部1226は、算出した粒子iの変分下限値L(q)に基づいて粒子iの周波数特性重み値wsp i,kを算出する。重み算出部1226は、算出した周波数特性重み値wsp i,kを表す周波数特性重み情報を粒子重み算出部124に出力する。その後、処理を終了する。
以上、説明したように、本実施形態では、入力された音響信号の第1の周波数特性と楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性との関連度を表す重み値を、第2の周波数特性に含まれる成分毎の第1の周波数特性の確率分布に基づいて、楽譜の位置毎に算出する。また、本実施形態では、算出した重み値に基づいて入力された音響信号に対応する楽譜の位置を探索する。これにより、音響信号に基づく第1の周波数特性と、楽譜情報における音階に基づく第2の周波数特性が完全に合致していなくとも、両者の関連性を検出することができる。そのため、演奏された音楽に対する楽譜の位置をより頑健に推定することが可能になる。
また、本実施形態では、第2の周波数特性は少なくとも1つの調波構造を含み、調波構造に含まれる調波成分毎の調波構造への寄与を表す変数の確率分布と、調波構造毎の第2の周波数特性への寄与を表す変数の確率分布に基づいて第1の周波数特性についての尤度を最大にするように、重み値を算出する。そのため、楽譜情報に基づく第2の周波数成分に含まれる調波構造の周波数特性の変化、調波構造間の結合特性の変化に柔軟に対応できるので、音響信号に基づく第1の周波数特性との関連性をより的確に推定することができる。そのため、演奏された音楽に対する楽譜の位置をより正確に推定することが可能になる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第1の実施形態と同一の構成又は処理については、同一の番号を付す。以下、第1の実施形態との差異点を主として説明する。
図11は、本実施形態に係る楽譜位置推定装置2の構成を示す概略図である。
楽譜位置推定装置2は、楽譜位置推定装置1(図1)と同様に、音響信号入力部101、音響特徴量生成部102、楽譜情報記憶部111、楽譜情報入力部112、関連度算出部121、楽譜位置探索部131、及び演奏情報出力部141を含んで構成される。但し、関連度算出部121は、周波数特性重み算出部222、拍間隔重み算出部123、及び粒子重み算出部124を含んで構成される。即ち、楽譜位置推定装置2は、周波数特性重み算出部122の代わりに周波数特性重み算出部222を備える点で、楽譜位置推定装置1と異なる。
本実施形態でも、楽譜情報に基づく振幅周波数特性(例えば、楽譜スペクトログラム)が、既知の楽譜情報に含まれる楽譜位置毎の音階の基本周波数に基づく調波構造で表される成分を少なくとも1つ含むと仮定する。そこで、周波数特性重み算出部222は、楽譜スペクトログラムに含まれる周波数毎の振幅が表す度数(振幅期待値)が、対応する周波数における音響スペクトログラムの振幅が表す度数だけ発生する確率分布に基づいて周波数特性重み値wsp i,kを算出する。周波数特性重み算出部222は、例えば、PDA(Poisson Distribution Amplitude;ポアソン分布振幅)を用いて周波数特性重み値wi,k spを算出する。但し、周波数特性重み算出部222は、楽譜スペクトログラムの振幅の周波数方向に累積した総和が、予め定めた値(例えば、1)となるように各周波数の振幅を規格化する。
PDAは、量子化音響スペクトログラムの振幅期待値(expected amplitude)に対するポアソン分布の関数値を周波数にわたり累積した累積値である。振幅期待値は、楽譜スペクトログラムに、量子化音響スペクトログラムを周波数にわたり累積した総和を乗じた値である。また、上述のように、量子化音響スペクトログラムは、周波数毎の度数を表すヒストグラムとみることもできる。上述のポアソン分布は、楽譜情報による周波数毎の平均度数だけ発生する事象が、入力音響信号による周波数毎の度数だけ発生する確率を表す。従って、PDAは、音響スペクトログラムと楽譜スペクトログラムとの差異の度合いを表す指標値を表す。例えば、PDAは、音響スペクトログラムのピーク周波数と合致する楽譜スペクトログラムのピーク周波数があれば大きい値をとる。PDAは、音響スペクトログラムのピーク周波数と合致する楽譜スペクトログラムがなければ小さい値をとる。そのため、PDAは、音響スペクトログラムと楽譜スペクトログラムの調波構造の差異に対して鋭敏に変化する。
次に、周波数特性重み算出部222の構成について説明する。
図12は、本実施形態に係る周波数特性重み算出部222の構成を表す概略図である。
周波数特性重み算出部122は、周波数特性量子化部2221、周波数特性合成部2222、振幅期待値算出部2223、振幅分布算出部2224及び重み算出部2225を含んで構成される。
周波数特性量子化部2221は、周波数特性分析部103から入力された音響スペクトログラムAf,tを予め定めた量子化幅ΔAで量子化して量子化音響スペクトログラム[Af,t]を算出する。周波数特性量子化部2221は、算出した量子化音響スペクトログラム[Af,t]を振幅期待値算出部2223及び振幅分布算出部2224に出力する。
周波数特性合成部2222は、楽譜情報入力部112から入力された楽譜情報から楽譜フレームp毎の基本周波数ベクトルμを抽出し、基本周波数ベクトルμに含まれる基本周波数μ 毎に予め定めた音源モデル(例えば、GMM)を用いて調波構造を生成する。周波数特性合成部2222は、生成した調波構造を基本周波数μ にわたって累積して楽譜スペクトログラムA^f,pを生成する。生成した楽譜スペクトログラムA^f,pは、周波数にわたり累積した総和ΣA^f,pが1となるように規格化されている。
周波数特性合成部2222は、例えば式(38)を用いて楽譜スペクトログラムA^f,pを生成する。
式(38)において、Charmは、例えば、式(39)に示すように、楽譜スペクトログラムA^f,pの周波数毎の振幅値を周波数にわたり累積した総和が、0より大きく1より小さい実数(式(39)では、例えば0.9)を与える定数である。
式(38)において、M、θlm、Λは、例えば、それぞれ10、0.2(m−1)、0.8である。Cfloorは、Charmとの和が1となる実数(例えば、0.1)である。Cfloorを定めることにより、楽譜スペクトログラムA^f,pは、0より大きい実数値をとるため、後述する処理において零除算が回避される。
周波数特性合成部2222は、生成した楽譜スペクトログラムA^f,pを振幅期待値算出部2223に出力する。
振幅期待値算出部2223は、周波数特性量子化部2221から量子化音響スペクトログラム[Af,t]が、周波数特性合成部2222から楽譜スペクトログラムA^f,pが、粒子遷移部132から粒子毎の粒子情報がそれぞれ入力される。
振幅期待値算出部2223は、入力された粒子情報から粒子i毎に楽譜位置情報p を抽出する。振幅期待値算出部2223は、抽出した楽譜位置p を基準(例えば、楽譜位置p に対応する時刻τがkΔT)とした対応する時刻τ毎に、量子化音響スペクトログラム[Af,τ]の周波数fにわたった総和A・τを算出する。
振幅期待値算出部2223は、入力された楽譜スペクトログラムA^f,pを、対応する楽譜位置pに対応する時刻τ毎に算出した総和A・τを乗算して振幅期待値λf,τを算出する。振幅期待値算出部2223は、算出した振幅期待値λf,τを振幅分布算出部2224に出力する。
振幅分布算出部2224は、周波数特性量子化部2221から量子化音響スペクトログラム[Af,t]が、振幅期待値算出部2223から振幅期待値λf,τ、粒子遷移部132から粒子毎の粒子情報が、それぞれ入力される。
振幅分布算出部2224は、入力された粒子i毎の粒子情報に基づき楽譜位置p を基準とした対応する時刻τ及び周波数f毎に、振幅期待値λf,τの量子化音響スペクトログラム[Af,τ]に対するポアソン分布の関数値Poi([Af,τ]|λf,τ)を算出する。ポアソン分布は、式(40)で表される確率密度関数である。
式(40)において、kは、0又は0よりも大きい整数、λは、0よりも大きい実数である。
算出した関数値は、ポアソン分布の性質により、周波数fにおける量子化音響スペクトログラム[Af,τ]の量子化した振幅が表す度数に対する楽譜スペクトログラムA^f,p(τ)に含まれる振幅の分布関数の値を表す。即ち、算出した関数値は、周波数fにおける楽譜スペクトログラムA^f,pの振幅が表す度数が、量子化音響スペクトログラム[Af,τ]の量子化した振幅が表す度数だけ発生する確率値を表す。
振幅分布算出部2224は、算出した振幅分布値を重み算出部2225に出力する。
重み算出部2225は、入力された振幅分布値を周波数f及び時刻τにわたり累積してPDAを算出する。累積する時刻τの範囲は、粒子毎の観測区間T{τ|kΔT−W<τ≦kΔT}である。重み算出部2225は、算出したPDAの指数関数値を周波数特性重み値wsp i,kを算出する。ここで、重み算出部2225は、式(41)を用いて周波数特性重み値wsp i,kを算出する。
重み算出部2225は、算出した周波数特性重み値wsp i,kを表す周波数特性重み情報を粒子重み算出部124に出力する。
次に、本実施形態に係る楽譜位置推定処理について説明する。本実施形態に係る楽譜位置推定処理は、図3に示す楽譜位置推定処理と同様である。但し、ステップS106において周波数特性重み算出部222は、次に説明する処理を実行する。
図13は、本実施形態における周波数特性重み算出処理を表すフローチャートである。
(ステップS401)周波数特性量子化部2221は、周波数特性分析部103から入力された音響スペクトログラムAf,tを予め定めた量子化幅ΔAで量子化して量子化音響スペクトログラム[Af,t]を算出する。周波数特性量子化部2221は、算出した量子化音響スペクトログラム[Af,t]を振幅期待値算出部2223及び振幅分布算出部2224に出力する。その後、ステップS402に進む。
(ステップS402)周波数特性合成部2222は、楽譜情報入力部112から入力された楽譜情報から楽譜フレームp毎の基本周波数ベクトル{μ}を抽出し、基本周波数ベクトル{μ}に含まれる基本周波数μ 毎に予め定めた音源モデル(例えば、GMM)を用いて調波構造を生成する。周波数特性合成部2222は、生成した調波構造を基本周波数μ にわたって累積し、例えば式(38)を用いて楽譜スペクトログラムA^f,pを生成する。
周波数特性合成部2222は、生成した楽譜スペクトログラムA^f,pを振幅期待値算出部2223に出力する。その後、ステップS403に進む。
(ステップS403)振幅期待値算出部2223は、粒子遷移部132から入力された粒子情報から粒子i毎に楽譜位置情報を抽出する。振幅期待値算出部2223は、抽出した楽譜位置情報が表す楽譜位置p を基準とした対応する時刻τ毎に、周波数特性量子化部2221から入力された量子化音響スペクトログラム[Af,τ]の周波数にわたった総和A・τを算出する。振幅期待値算出部2223は、周波数特性合成部2222から入力された楽譜スペクトログラムA^f,pを、対応する楽譜位置pに対応する時刻τ毎に算出した総和A・τを乗算して振幅期待値λf,τを算出する。振幅期待値算出部2223は、算出した振幅期待値λf,τを振幅分布算出部2224に出力する。その後、ステップS404に進む。
(ステップS404)振幅分布算出部2224は、周波数特性量子化部2221から量子化音響スペクトログラム[Af,t]が、振幅期待値算出部2223から振幅期待値λf,τ、粒子遷移部132から粒子毎の粒子情報がそれぞれ入力される。
振幅分布算出部2224は、粒子遷移部132から入力された粒子i毎の粒子情報に含まれる楽譜位置情報を抽出する。振幅分布算出部2224は、抽出した楽譜位置情報が表す楽譜位置p を基準とした対応する時刻τ及び周波数f毎に、振幅期待値λf,τの量子化音響スペクトログラム[Af,τ]に対するポアソン分布Poi([Af,τ]|λf,τ)の関数値を振幅分布値として算出する。
振幅分布算出部2224は、算出した振幅分布値を重み算出部2225に出力する。その後、ステップS405に進む。
(ステップS405)重み算出部2225は、振幅分布算出部2224から入力された振幅分布値を周波数f及び粒子毎の観測区間T内の時刻τにわたり累積してPDAを算出する。重み算出部2225は、算出したPDAの指数関数値を、例えば式(41)を用いて周波数特性重み値wsp i,kを算出する。重み算出部2225は、算出した周波数特性重み値wsp i,kを表す周波数特性重み情報を粒子重み算出部124に出力する。その後、処理を終了する
以上、説明したように、本実施形態では、第2の周波数特性は少なくとも1つの調波構造を含み、調波構造に含まれる調波成分毎の調波構造への寄与を表す変数の確率分布と、調波構造毎の第2の周波数特性への寄与を表す変数の確率分布に基づいて音響信号の第1の周波数特性についての尤度を最大にするように、楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を算出する。
これにより、音響信号に基づく第1の周波数特性の周波数毎の振幅と楽譜情報における音階に基づく第2の周波数特性の周波数毎の振幅が合致する度合いを鋭敏に検出することができる。そのため、演奏された音楽に対する楽譜の位置をより正確に推定することが可能になる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第1の実施形態と同一の構成又は処理については、同一の番号を付す。以下、第1の実施形態との差異点を主として説明する。
図14は、本実施形態に係る楽譜位置推定装置3の構成を示す概略図である。
楽譜位置推定装置3は、楽譜位置推定装置1(図1)と同様に、音響信号入力部101、音響特徴量生成部102、楽譜情報記憶部111、楽譜情報入力部112、関連度算出部121、楽譜位置探索部131、及び演奏情報出力部141を含んで構成される。
但し、音響特徴量生成部102は、周波数特性分析部103及び相関算出部104の他にクロマベクトル生成部305を備える点が楽譜位置推定装置1とは異なる。周波数特性分析部103は、算出した音響スペクトログラムAf,tをクロマベクトル生成部305に出力する。
クロマベクトル生成部305は、周波数特性分析部103から入力された音響スペクトログラムAf,tに基づいて、音響信号によるクロマベクトル(以下、音響クロマベクトルと呼ぶ)c を生成する。クロマベクトルとは、音階(chroma)毎の成分のパワーを要素として含むベクトルである。クロマベクトルは、例えば、西洋音楽を構成する12音階(C、C#、D、D#、E、F、F#、G、G#、A、A#、B)における音階毎の成分の強度を要素とするベクトル(例えば、要素数が12)である。
クロマベクトル生成部305は、音響クロマベクトルc =[ct,1 ,ct,2 ,…,ct,12 ]の音階j毎の要素ct,j を、例えば、式(42)を用いて算出する。
式(42)において、oは、オクターブを表す整数値である。Octlowは予め設定されたオクターブの下限を表す整数値(下限オクターブ、例えば3)を表す。Octhiは、予め設定されたオクターブの上限を表す整数値(上限オクターブ、例えば6)を表す。Bj,o(f)は、オクターブoにおける音階jの成分を抽出する帯域通過フィルタ(バンドパスフィルタ、bandpass filter;BPF)の入出力振幅周波数特性を表す。o番目のオクターブにおける音階jの周波数fj,oにおいて、Bj,o(f)は、例えば、式(43)に示されるように最大となり、周波数fがゼロ又は無限大に近づくと、ゼロに近似する関数である。
式(43)において、fcent、fj,o centは、それぞれ周波数f、fj,oを対数領域で表したセント値である。セント値fcentと周波数fは、式(44)に示す関係がある。
式(44)では、例えば、音階A4(j=1、o=4)の基本周波数fが440Hzであることが仮定されている。
クロマベクトル生成部305は、生成した音響クロマベクトルc を、後述するクロマベクトル重み算出部325に出力する。
楽譜情報記憶部111に記憶されている楽譜情報には、楽曲を構成する各コードを構成する音階を要素として含むクロマベクトル(以下、楽譜クロマベクトルと呼ぶ)c が、基本周波数ベクトルμと対応付けられて含まれている。楽譜クロマベクトルの要素数は、12である。つまり、楽譜クロマベクトルを構成する音階は、楽曲を表す音階のオクターブが区別されていない点で上述のコードベクトルを構成する音階と異なる。また、楽譜クロマベクトルc を構成する要素cp,j は、0または1の値をとる。0とは、楽譜フレームpにおいて音階jが存在しないことを表し、1とは、音階jが存在することを表す。例えば、音階A4、C4、及びE4を要素値として含む楽譜クロマベクトルは、[1,0,0,1,0,0,0,1,0,0,0,0]となる。
楽譜情報入力部112は、楽譜情報記憶部111から読み出した楽譜情報に含まれる楽譜クロマベクトルc をクロマベクトル重み算出部325に出力する。
関連度算出部121は、周波数特性重み算出部122及び拍間隔重み算出部123の他にクロマベクトル重み算出部325を備え、粒子重み算出部124の代わりに粒子重み算出部324を備える。
なお、粒子遷移部132は、粒子i毎の粒子情報をクロマベクトル重み算出部325に出力する。粒子遷移部132は、粒子i毎の粒子分布値、状態遷移確率を粒子重み算出部324に出力する。
クロマベクトル重み算出部325は、クロマベクトル生成部305から入力された音響クロマベクトルc を、時刻t毎にノルムが1となるように各要素値を規格化する。クロマベクトル重み算出部325は、楽譜情報入力部112から入力された楽譜クロマベクトルc を、楽譜フレームp毎にノルムが1となるように各要素値を規格化する。
クロマベクトル重み算出部325は、粒子遷移部132から入力された粒子情報から粒子i毎に楽譜位置情報p を抽出する。クロマベクトル重み算出部325は、要素値を規格化した音響クロマベクトルcτ と楽譜クロマベクトルcp(τ)’ との内積を、例えば式(45)を用いて平均して、粒子i毎のクロマベクトル重みwi,k chを算出する。内積は、ベクトル間の類似性を表す指標値である。
式(45)において、Tは、抽出した楽譜位置p を基準(時刻τがkΔT)とした粒子毎の観測区間T{τ|kΔT−W<τ≦kΔT}を表す。
クロマベクトル重み算出部325は、算出した粒子i毎のクロマベクトル重みwi,k chを表すクロマベクトル重み情報を粒子重み算出部324に出力する。
粒子重み算出部324は、周波数特性重み算出部122から周波数特性重み情報が、拍間隔重み算出部123から拍間隔重み情報が、クロマベクトル重み算出部325からクロマベクトル重み情報が、粒子遷移部132から粒子i毎の粒子分布値、状態遷移確率が入力される。
粒子重み算出部324は、式(46)に示すように、周波数特性重み情報が表す周波数特性重み値、拍間隔重み情報が表す拍間隔重み値、クロマベクトル重み情報が表すクロマベクトル重み値、状態遷移確率を乗算し、さらに状態遷移確率で除算して、粒子i毎の重み値wi,kを算出する。
粒子重み算出部324は、算出した重み値wi,kを表す粒子重み情報を生成する。
粒子重み算出部324は、粒子遷移部132から入力された粒子i毎の粒子情報に含まれる粒子重み情報を、生成した粒子重み情報に置き換えることで粒子情報を更新する。
粒子重み算出部324は、更新した粒子情報を再標本化部133、楽譜位置算出部142及び拍間隔算出部143に出力する。
なお、本実施形態に係る楽譜位置推定装置3は、周波数特性重み算出部122の代わりに周波数特性重み算出部222を備えてもよい。
次に、本実施形態に係る楽譜位置推定処理について説明する。
図15は、本実施形態に係る楽譜位置推定処理を表すフローチャートである。
図15が示す楽譜位置推定処理は、ステップS101、S102−S105、S106、S107、S109−S117を有する点で、図3が示す楽譜位置推定処理と共通する。但し、ステップS101とステップS102の間でステップS401を実行し、ステップS105とステップS106の間でステップS402を実行し、ステップS108の代わりにステップS403、S404を実行する点が、図3が示す楽譜位置推定処理とは異なる。以下、処理が異なるステップについて説明する。
(ステップS401)音源位置推定装置3では、楽曲を構成する各コードを構成する音階を要素として含む楽譜情報に基づいて楽譜クロマベクトルc を予め生成しておく。音源位置推定装置3では、基本周波数ベクトルμと対応付けられ楽譜情報の一部として予め楽譜情報記憶部111に記憶させておく。これにより、楽譜情報入力部112が、楽譜情報記憶部111から読み出した楽譜情報から楽譜クロマベクトルc をクロマベクトル重み算出部325に出力できるようにする。その後、ステップS102に進む。
(ステップS402)クロマベクトル生成部305は、周波数特性分析部103から入力された音響スペクトログラムAf,tに基づいて、例えば式(42)を用いて算出される要素を有する音響クロマベクトルc を生成する。
クロマベクトル生成部305は、生成した音響クロマベクトルc をクロマベクトル重み算出部325に出力する。その後、ステップS106に進む。
(ステップS403)クロマベクトル重み算出部325は、クロマベクトル生成部305から入力された音響クロマベクトルc を、時刻t毎にノルムが1となるように各要素値を規格化する。クロマベクトル重み算出部325は、楽譜情報入力部112から入力された楽譜クロマベクトルc を、楽譜フレームp毎にノルムが1となるように各要素値を規格化する。
クロマベクトル重み算出部325は、粒子遷移部132から入力された粒子情報から粒子i毎に楽譜位置情報を抽出する。クロマベクトル重み算出部325は、要素値を規格化した音響クロマベクトルcτ と楽譜クロマベクトルcp(τ) との内積を、例えば式(45)を用いて抽出した楽譜位置情報が表す楽譜位置を基準とした観測区間Tで平均する。これにより、クロマベクトル重み算出部325は、粒子i毎のクロマベクトル重みwi,k chを算出する。クロマベクトル重み算出部325は、算出した粒子i毎のクロマベクトル重みwi,k chを表すクロマベクトル重み情報を粒子重み算出部124に出力する。その後、ステップS404に進む。
(ステップS404)粒子重み算出部324は、周波数特性重み算出部122から周波数特性重み情報が、拍間隔重み算出部123から拍間隔重み情報が、クロマベクトル重み算出部325からクロマベクトル重み情報が、粒子遷移部132から粒子i毎の粒子分布値、状態遷移確率が入力される。
粒子重み算出部324は、周波数特性重み情報が表す周波数特性重み値、拍間隔重み情報が表す拍間隔重み値、クロマベクトル重み情報が表すクロマベクトル重み値、状態遷移確率を乗算し、さらに状態遷移確率で除算して、粒子i毎の重み値wi,kを算出する。
粒子重み算出部324は、算出した重み値wi,kを表す粒子重み情報を生成する。
粒子重み算出部324は、粒子遷移部132から入力された粒子i毎の粒子情報に含まれる粒子重み情報を、生成した粒子重み情報に置き換えることで粒子情報を更新する。
粒子重み算出部324は、更新した粒子情報を楽譜位置探索部131の再標本化部133、演奏情報出力部141の楽譜位置算出部142及び拍間隔算出部143に出力する。その後、ステップS109に進む。以下、図3に示す楽譜位置推定処理と同様にステップS110−117を実行する。
なお、本実施形態に係る楽譜位置推定処理では、ステップS106において周波数特性重み算出部122が図10に示す周波数特性重み算出処理を実行する代わりに、周波数特性重み算出部222が図13に示す周波数特性重み算出処理を実行してもよい。
次に、本実施形態に係る楽譜位置推定装置2が推定した楽譜位置の検証例について説明する。検証においては特に断らない限り、周波数の上限fmaxを6000Hz、テンポ窓長60/bθを15(bpm)とした。
図16は、楽譜位置の推定誤差の一例を表す図である。
図16において、縦軸は、推定誤差、横軸は、楽曲の番号を表す。図15において、○印は、本実施形態による平均推定誤差、×印は、従来の楽譜位置推定システムであるAntescofoによる平均推定誤差を表す(例えば、Cont.A.:A Coupled Duration−Focused Architecture for Realtime Music to Score Alignment,IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.32,No.6,pp.974−987(2010))。Antescofoは、HSMM(Hidden Semi−Markov Model;隠れセミマルコフモデル)に基づいて楽譜位置を推定する処理を行う。○印、×印を中心として上下に延びるバーの上限と下限は、それぞれ平均推定誤差から標準偏差だけ大きい推定誤差と、平均推定誤差から標準偏差だけ小さい推定誤差を表す。即ち、バーは、推定誤差の信頼区間を表す。楽曲1−20は、各々テンポ及び演奏する楽器が異なる楽曲である。推定誤差は、式(11)を用いて算出した値である。
図16によれば、本実施形態では、ほとんどの楽曲についてAntescofoよりも推定誤差の平均値及び標準偏差が減少する。本実施形態の楽曲にわたる平均推定誤差の絶対値の平均値は、Antescofoの平均推定誤差の絶対値の平均値よりも69%減少する。即ち、本実施形態の方が、Antescofoよりも推定精度が優れる。一部の楽曲、例えば楽曲6、11では、本実施形態の平均推定誤差の絶対値の方が、Antescofoの平均推定誤差の絶対値よりも大きい。しかし、本実施形態の標準偏差の方が、Antescofoの標準偏差よりも小さい。即ち、本実施形態の方が、より頑健に楽譜位置を推定できることが示されている。
図17は、楽譜位置の推定誤差のその他の例を表す図である。
図17において、横軸と縦軸の関係は、図16と同様である。図17において、○印、×印、△印は、テンポ窓長60/bθが、それぞれ5、15、30(bpm)である場合の平均推定誤差を表す。○印、×印、△印を中心として上下に延びるバーは、平均推定誤差を中心とし、その長さが標準偏差の2倍である信頼区間を表す。
図17によれば、ほとんどの楽曲について、テンポ窓長が小さくなるほど平均推定誤差の絶対値が小さくなり、標準偏差も小さくなる傾向がある。即ち、テンポ窓長が小さいほど楽譜位置の推定精度が優れ、楽譜位置を安定して推定できることが示されている。
図18は、楽譜位置の推定誤差のその他の例を表す図である。
図18において、縦軸は、推定誤差の絶対値を表し、横軸は、楽曲の番号を表す。棒グラフは、推定処理又はシステム毎の平均推定誤差を表す。最も右側の網掛けの棒グラフは、第1の実施形態においてLHA法を用いて周波数特性重み値wi,k spを算出する処理を表す。右から2番目の縦縞で塗りつぶした棒グラフは、第2の実施形態においてPDAを用いて周波数特性重み値wi,k spを算出する処理を表す。左から2番目の横縞で塗りつぶした棒グラフは、第2の実施形態の構成においてPDAの代わりにカルバック・ライブラー情報量(KL−div)を用いて周波数特性重み値wi,k spを算出する処理を表す。最も左側の斜めの縞模様で塗りつぶした棒グラフは、Antescofoが採用するHSMMを表す。また、各棒グラフの頂上から上に伸びるエラーバーの長さは、標準偏差を表す。
図18によれば、楽曲1−10のいずれにおいても、LHA、PDA、KL−div、HSMMの順で、平均推定誤差、標準偏差が、ともに小さくなる。即ち、この順序で、楽譜位置の推定精度が優れ、安定して楽譜位置を推定できることが示される。
図19は、音響信号と楽譜情報との関連性の一例を表す図である。
図19において、縦軸は対数尤度を、横軸は楽譜位置偏差を表す。図19が表す対数尤度は、ある区間の楽譜情報と、ある観測区間の音響信号との間の周波数特性重み値wi,k spの対数値に相当する値である。即ち、対数尤度は、音響信号と楽譜情報との関連性を表す指標値である。但し、図19に示す対数尤度は、計算精度を確保するために規格化されていない値である。楽譜位置偏差とは、楽譜情報の区間と対応する観測区間を基準とした、音響信号の観測区間のずれを、拍単位で表す値である。一点破線は、第1の実施形態においてLHA法を用いて周波数特性重み値wi,k spを算出する処理を表す。破線は、第2の実施形態においてPDAを用いて周波数特性重み値wi,k spを算出する処理を表す。実線は、KL−divを用いて周波数特性重み値wi,k spを算出する処理を表す。
表示形態が異なる3本の太線は、各々楽譜位置偏差毎の対数尤度を表し、3本の細線は、各々対数尤度の最大値を表す。いずれも、楽譜位置偏差が0の場合、対数尤度が最大になる。即ち、楽譜位置偏差が0とは、楽譜位置と音響信号の時刻の対応が取れている点であることを表す。
図19において、楽譜位置偏差による対数尤度の変化は、LHA、PDA、KL−divの順で著しい。とりわけ、第1の実施形態においてLHAを用いた場合や、第2の実施形態においてPDAを用いた場合の対数尤度の鋭敏な変化は、KL−divを用いた場合の緩慢な対数尤度の変化と対照的である。このことは、上述の実施形態において音源モデルとしてLHA又はPDAを用い、最尤推定を行うことで楽譜位置が正確に推定できることを示す。
以上、説明したように、上述した実施形態では、入力された音響信号に基づく第1の周波数特性と楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、第2の周波数特性に含まれる成分毎の第1の周波数特性の確率分布に基づいて、楽譜の位置毎に算出する。また、上述した実施形態では、算出した重み値に基づいて音響信号に対応する楽譜の位置を探索する。
これにより、音響信号に基づく第1の周波数特性と、楽譜情報における音階に基づく第2の周波数特性が完全に合致していなくとも、両者の関連性を検出することができる。そのため、演奏された音楽に対する楽譜の位置をより頑健に推定することが可能になる。
また、上述した実施形態では、音階が変化する楽譜の位置に対応する時刻を含む観測区間における音響信号の自己相関に基づいて拍間隔を定め、定めた拍間隔に基づいて探索する楽譜の位置を更新する。
これにより、楽譜情報における音階が変化する楽譜の位置と、音響信号の振幅が変化する時刻が対応付けられる。そのため、周波数特性の周期性を表す拍間隔を正確に検知でき、ひいては演奏された音楽に対する楽譜の位置をより正確に推定することができる。
上述では、楽譜位置探索部131が、粒子フィルタリング法を用いて楽譜位置を探索する例について説明したが、上述した実施形態ではこれには限られない。上述した実施形態では、楽譜位置毎の楽譜情報と音響信号との関連度を表す重み情報に基づいて楽譜位置を定めることができる処理であれば、いかなる処理、例えば、ある探索区間内を候補となる楽譜位置を走査しながら重み情報を算出して、算出した重み情報に基づいて楽譜位置を探索してもよい。
なお、上述した実施形態における楽譜位置推定装置1、2又は3の一部、例えば、音響特徴量生成部102、関連度算出部121、楽譜位置探索部131、及び演奏情報出力部141をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、楽譜位置推定装置1、2又は3に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における楽譜位置推定装置1、2又は3の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。楽譜位置推定装置1又は2の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
1、2…楽譜位置推定装置、101…音響信号入力部、102…音響特徴量生成部、
103…周波数特性分析部、104…相関算出部、305…クロマベクトル生成部
111…楽譜情報記憶部、112…楽譜情報入力部、
121…関連度算出部、122、222…周波数特性重み算出部、
1221…データ入力部、1222…第1変分パラメータ算出部、
1223…第2変分パラメータ算出部、1224…変分下限値算出部、
1225…収束判定部、1226…重み算出部、
2221…周波数特性量子化部、2222…周波数特性合成部、
2223…振幅期待値算出部、2224…振幅分布算出部、2225…重み算出部、
123…拍間隔重み算出部、124、324…粒子重み算出部、
325…クロマベクトル重み算出部
131…楽譜位置探索部、132…粒子遷移部、133…再標本化部、
141…演奏情報出力部、142…楽譜位置算出部、143…拍間隔算出部、
144…信頼度判定部、145…楽譜位置出力部、146…拍間隔出力部

Claims (5)

  1. 入力された音響信号の周波数特性を分析して第1の周波数特性を算出する周波数特性分析部と、
    楽譜情報が表す楽譜の位置毎の音階に基づく周波数特性であって少なくとも1つの調波構造を含む第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記調波構造に含まれる調波成分毎の前記調波構造への寄与を表す変数の確率分布と、前記調波構造毎の前記第2の周波数特性への寄与を表す変数の確率分布に基づいて前記第1の周波数特性についての尤度を最大にするように、前記楽譜の位置毎に算出する関連度算出部と、
    前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する楽譜位置探索部と、
    を備えることを特徴とする楽譜位置推定装置。
  2. 入力された音響信号の周波数特性を分析して第1の周波数特性を算出する周波数特性分析部と、
    楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記第2の周波数特性に含まれる周波数毎の振幅が表す度数が、対応する周波数における前記第1の周波数特性の振幅が表す度数だけ発生する確率分布に基づいて前記楽譜の位置毎に算出する関連度算出部と、
    前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する楽譜位置探索部と、
    を備えることを特徴とする楽譜位置推定装置。
  3. 前記楽譜位置探索部は、
    前記音階が変化する楽譜の位置に対応する時刻を含む観測区間における前記音響信号の自己相関に基づいて拍間隔を定め、定めた拍間隔に基づいて探索する楽譜の位置を更新することを特徴とする請求項1または請求項2に記載の楽譜位置推定装置。
  4. 楽譜位置推定装置における方法であって、
    前記楽譜位置推定装置は、入力された音響信号の周波数特性を分析して第1の周波数特性を算出する過程と、
    前記楽譜位置推定装置は、楽譜情報が表す楽譜の位置毎の音階に基づく周波数特性であって少なくとも1つの調波構造を含む第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記調波構造に含まれる調波成分毎の前記調波構造への寄与を表す変数の確率分布と、前記調波構造毎の前記第2の周波数特性への寄与を表す変数の確率分布に基づいて前記第1の周波数特性についての尤度を最大にするように、前記楽譜の位置毎に算出する過程と、
    前記楽譜位置推定装置は、前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する過程と、
    を有することを特徴とする楽譜位置推定方法。
  5. 楽譜位置推定装置における方法であって、
    前記楽譜位置推定装置は、入力された音響信号の周波数特性を分析して第1の周波数特性を算出する過程と、
    前記楽譜位置推定装置は、楽譜情報が表す楽譜の位置毎の音階に基づく第2の周波数特性と前記第1の周波数特性の関連度を表す重み値を、前記第2の周波数特性に含まれる周波数毎の振幅が表す度数が、対応する周波数における前記第1の周波数特性の振幅が表す度数だけ発生する確率分布に基づいて前記楽譜の位置毎に算出する過程と、
    前記楽譜位置推定装置は、前記重み値に基づいて前記音響信号に対応する楽譜の位置を探索する過程と、
    を有することを特徴とする楽譜位置推定方法。
JP2012029802A 2011-02-14 2012-02-14 楽譜位置推定装置、及び楽譜位置推定方法 Expired - Fee Related JP5924968B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161442499P 2011-02-14 2011-02-14
US61/442,499 2011-02-14

Publications (2)

Publication Number Publication Date
JP2012168538A JP2012168538A (ja) 2012-09-06
JP5924968B2 true JP5924968B2 (ja) 2016-05-25

Family

ID=46972690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012029802A Expired - Fee Related JP5924968B2 (ja) 2011-02-14 2012-02-14 楽譜位置推定装置、及び楽譜位置推定方法

Country Status (1)

Country Link
JP (1) JP5924968B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6286933B2 (ja) * 2013-08-21 2018-03-07 カシオ計算機株式会社 小節間隔推定およびその推定のための特徴量抽出を行う装置、方法、およびプログラム
WO2018016636A1 (ja) 2016-07-22 2018-01-25 ヤマハ株式会社 タイミング予想方法、及び、タイミング予想装置
JP6838357B2 (ja) * 2016-11-07 2021-03-03 ヤマハ株式会社 音響解析方法および音響解析装置
JPWO2022202297A1 (ja) * 2021-03-23 2022-09-29

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2636685B2 (ja) * 1993-07-22 1997-07-30 日本電気株式会社 音楽イベントインデックス作成装置
KR100412196B1 (ko) * 2001-05-21 2003-12-24 어뮤즈텍(주) 악보 추적 방법 및 그 장치
JP4672613B2 (ja) * 2006-08-09 2011-04-20 株式会社河合楽器製作所 テンポ検出装置及びテンポ検出用コンピュータプログラム

Also Published As

Publication number Publication date
JP2012168538A (ja) 2012-09-06

Similar Documents

Publication Publication Date Title
US8440901B2 (en) Musical score position estimating apparatus, musical score position estimating method, and musical score position estimating program
US6124544A (en) Electronic music system for detecting pitch
JP4660739B2 (ja) 音分析装置およびプログラム
JP4465626B2 (ja) 情報処理装置および方法、並びにプログラム
US7035742B2 (en) Apparatus and method for characterizing an information signal
KR20140079369A (ko) 사운드 신호를 주파수 처프 도메인으로 변환하는 것을 포함하는 사운드 신호 프로세싱 시스템 및 방법
US20010045153A1 (en) Apparatus for detecting the fundamental frequencies present in polyphonic music
JP5127982B2 (ja) 音楽検索装置
CN111680187A (zh) 乐谱跟随路径的确定方法、装置、电子设备及存储介质
JP2010054802A (ja) 音楽音響信号からの単位リズムパターン抽出法、該方法を用いた楽曲構造の推定法、及び、音楽音響信号中の打楽器パターンの置換法
JP5924968B2 (ja) 楽譜位置推定装置、及び楽譜位置推定方法
CN107210029B (zh) 用于处理一连串信号以进行复调音符辨识的方法和装置
JP2017161574A (ja) 音信号処理方法および音信号処理装置
JP2012506061A (ja) デジタル音楽音響信号の分析方法
Cogliati et al. Piano music transcription modeling note temporal evolution
JP2012027196A (ja) 信号分析装置、方法、及びプログラム
CN113066512B (zh) 佛教音乐识别方法、装置、设备及存储介质
JPH0675562A (ja) 自動採譜装置
KR20060081500A (ko) 음악에서의 비브라토 자동 검출방법
JP2017161572A (ja) 音信号処理方法および音信号処理装置
Szeto et al. Source separation and analysis of piano music signals using instrument-specific sinusoidal model
JP3892379B2 (ja) 調波構造区間推定方法及び装置、調波構造区間推定プログラム及びそのプログラムを記録した記録媒体、調波構造区間推定の閾値決定方法及び装置、調波構造区間推定の閾値決定プログラム及びそのプログラムを記録した記録媒体
Pishdadian et al. On the transcription of monophonic melodies in an instance-based pitch classification scenario
JP4625934B2 (ja) 音分析装置およびプログラム
JP4625935B2 (ja) 音分析装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151008

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160419

R150 Certificate of patent or registration of utility model

Ref document number: 5924968

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees