(57)【特許請求の範囲】
【請求項１】
対比される第１および第２の演奏音の各々を一定時間長のフレームに分割し、フレーム単位で各演奏音の基本周波数の確率密度関数を発生する過程であって、楽器が発生する音の高調波構造を模した音モデルを用い、演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を逐次更新して最適化し、最適化した各種の基本周波数に対応した各音モデルの重み値を演奏音の基本周波数の確率密度関数として発生する確率密度関数発生過程と、
フレーム単位で、前記第１の演奏音の基本周波数の確率密度関数と前記第２の演奏音の基本周波数の確率密度関数との類似度を評価する類似度評価過程と
を具備することを特徴とする演奏音の類似度評価方法。
【請求項２】
演奏音を収音し、演奏音データを出力する収音手段と、
模範演奏音を示す楽曲データを記憶する記憶手段と、
前記記憶手段から楽曲データを読み出す読出手段と、
前記収音手段から出力される演奏音データを一定時間長のフレームに分割し、フレーム単位で演奏音データが示す演奏音の基本周波数の確率密度関数を発生する手段であって、楽器が発生する音の高調波構造を模した音モデルを用い、演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を逐次更新して最適化し、最適化した各種の基本周波数に対応した各音モデルの重み値を演奏音の基本周波数の確率密度関数として出力する第１の確率密度関数発生手段と、
前記記憶手段から読み出される楽曲データを一定時間長のフレームに分割し、フレーム単位で前記第１の確率密度関数発生手段と同じ演算方法により前記楽曲データが示す模範演奏音の基本周波数の確率密度関数を発生して出力する第２の確率密度関数発生手段と、
フレーム単位で前記演奏音の基本周波数の確率密度関数と前記模範演奏音の基本周波数の確率密度関数の類似度を評価する類似度評価手段と
を具備することを特徴とする演奏音の類似度評価装置。
【請求項３】
演奏音を収音し、演奏音データを出力する収音手段と、
前記収音手段から出力される演奏音データの各々を一定時間長のフレームに分割し、フレーム単位で演奏音データが示す演奏音の基本周波数の確率密度関数を発生する手段であって、楽器が発生する音の高調波構造を模した音モデルを用い、演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を逐次更新して最適化し、最適化した各種の基本周波数に対応した各音モデルの重み値を演奏音の基本周波数の確率密度関数として出力する確率密度関数発生手段と、
模範演奏音を示す楽曲データを一定時間長のフレームに分割し、フレーム単位で、前記確率密度関数発生手段と同じ演算方法により前記楽曲データから発生させた模範演奏音の基本周波数の確率密度関数を記憶する記憶手段と、
前記確率密度関数発生手段がフレーム単位で前記演奏音の基本周波数の確率密度関数を出力するのと並行し、前記記憶手段からフレーム単位で前記模範演奏音の基本周波数の確率密度関数を読み出す読出手段と、
フレーム単位で前記演奏音の基本周波数の確率密度関数と前記模範演奏音の基本周波数の確率密度関数の類似度を評価する類似度評価手段と
を具備することを特徴とする演奏音の類似度評価装置。
【請求項４】
前記類似度評価手段は、前記模範演奏音の基本周波数の確率密度関数が得られたフレームを途中に含む所定数のフレームの各々において得られた前記演奏音の基本周波数の各確率密度関数と前記模範演奏音の基本周波数の確率密度関数との各類似度を各々算出し、最大の類似度を演奏音および模範演奏音の類似度として出力することを特徴とする請求項２または３に記載の演奏音の類似度評価装置。
【請求項５】
前記類似度評価手段は、前記模範演奏音の基本周波数の確率密度関数が得られたフレームを途中に含む所定数のフレームの各々において得られた前記演奏音の基本周波数の各確率密度関数と前記模範演奏音の基本周波数の確率密度関数との各類似度を各々算出し、最大の類似度が得られたフレームと前記模範演奏音の基本周波数の確率密度関数が得られたフレームとの時間差を出力することを特徴とする請求項２〜４のいずれか１の請求項に記載の演奏音の類似度評価装置。
【請求項６】
コンピュータに、
対比される第１および第２の演奏音の各々を一定時間長のフレームに分割し、フレーム単位で各演奏音の基本周波数の確率密度関数を発生する過程であって、楽器が発生する音の高調波構造を模した音モデルを用い、演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を逐次更新して最適化し、最適化した各種の基本周波数に対応した各音モデルの重み値を演奏音の基本周波数の確率密度関数として発生する確率密度関数発生過程と、
フレーム単位で、前記第１の演奏音の基本周波数の確率密度関数と前記第２の演奏音の基本周波数の確率密度関数との類似度を評価する類似度算出過程と
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、模範演奏に対してどの程度近い演奏が行われているかの評価を行う方法、装置およびプログラムに関する。
【背景技術】
【０００２】
従来から演奏の独習機能を備えた楽器が各種提供されている。鍵盤楽器を例に挙げると、この種の独習機能を備えた楽器は、表示装置への表示等により、押鍵すべき鍵をユーザに指示し、ユーザによって押鍵された鍵を検知して、正しい押鍵がなされているかをユーザに知らせ、ユーザに鍵盤演奏の独習を行わせる。このような独習機能を実現するためには、ユーザによって押鍵された鍵を検知する必要がある。従って、キースキャン機構を備えていない鍵盤楽器には、このような独習機能を持たせることができないという問題があった。そこで、鍵盤操作等を検知するのではなく、演奏音を収音して、その周波数解析を行い、楽譜通りの正しい音高の演奏音が発生しているか否かを判定する技術が提案されるに至った。例えば特許文献１に開示された技術では、各種の音高のピアノ音を収音して、それらの周波数解析を行い、各音高のピアノ音のパワースペクトルを求めて予め記憶しておく。そして、ピアノ演奏が行われる際には、演奏音を収音し、その周波数解析を行ってパワースペクトルを求め、この演奏音のパワースペクトルと予め記憶した各種の音高のピアノ音の各パワースペクトルとの類似度を求め、類似度の高さにより楽譜通りの演奏がなされているか否かを判定する。
【特許文献１】特開２００４−３４１０２６号公報
【特許文献２】特許第３４１３６３４号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、一般に楽音のパワースペクトルは多くの周波数位置に倍音成分を持っており、各成分の割合も多様であるため、対比される２つの楽音がある場合に、それらの基本周波数は異なっているがパワースペクトルの形状は類似している、ということが起こりうる。このため、上述した特許文献１の技術では、ある基本周波数の演奏音が収音された場合に、この演奏音とは基本周波数が異なるがパワースペクトルの形状が類似したピアノ音が選択され、演奏音の音高が誤って判定される可能性がある、という問題があった。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、演奏音と模範演奏音との基本周波数の類似度を正確に評価することができる技術的手段を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明では、対比される２つの演奏音の各々を一定時間長のフレームに分割し、フレーム単位で各演奏音の基本周波数の確率密度関数を発生する。その際、楽器が発生する音の高調波構造を模した音モデルを用い、演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を逐次更新して最適化し、最適化した各種の基本周波数に対応した各音モデルの重み値を演奏音の基本周波数の確率密度関数として発生する。そして、フレーム単位で、対比される２つの演奏音の基本周波数の確率密度関数の類似度を評価する。
【０００６】
かかる発明によれば、対比される演奏音の基本周波数の類似度を精度良く評価することができる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照し、この発明の実施の形態を説明する。
【０００８】
＜全体構成＞
図１は、この発明による演奏音の類似度評価装置の一実施形態である教習伴奏システムの構成を示すブロック図である。この教習伴奏システムは、例えば鍵盤楽器等の楽器において稼動するシステムであり、ユーザに当該楽器の演奏の独習を行わせるシステムである。図１において、制御部１０１は、各種のプログラムを実行するＣＰＵと、このＣＰＵにワークエリアとして用いられるＲＡＭ等により構成されている。図１において、制御部１０１を表すボックス内には、制御部１０１のＣＰＵによって実行されるプログラムのうち、本実施形態による教習伴奏システムとしての機能を実現するためのプログラムの処理内容が図示されている。操作部１０２は、各種のコマンドや情報をユーザから受け取るための装置であり、楽器の本体に配備されたパネルスイッチ等の操作子群によって構成されている。ＨＤＤ（ハードディスク装置）１０３は、各種のプログラムやデータベースを記憶した記憶装置である。本実施形態による教習伴奏システムとしての機能を実現するためのプログラムもこのＨＤＤ１０３に記憶されている。制御部１０１のＣＰＵは、操作部１０２の操作により、教習伴奏システムとしての機能を起動すべき旨のコマンドが与えられたとき、この教習伴奏システムとしての機能を実現するためのプログラムをＲＡＭにロードして実行する。
【０００９】
収音部１０４は、外界の音を収音してアナログ音響信号を出力するマイクロフォンと、このアナログ音響信号をデジタル音響信号に変換するＡ／Ｄ変換器等により構成されている。本実施形態において、この収音部１０４は、演奏音を収音し、演奏音データを出力する収音手段として用いられる。
【００１０】
楽曲記憶部１０５は、楽曲の模範演奏を示す楽曲データを記憶するための記憶装置であり、例えばＲＡＭにより構成されている。この楽曲データは、同期再生される波形データと楽譜データとにより構成されている。ここで、波形データは、楽曲の模範演奏音の波形の時系列サンプルデータであり、楽曲の小節線や拍のタイミングを示すラベル（時間情報）が随所に挿入されている。また、楽譜データは、これらのラベルに対応付けられた楽譜の画像データの集合体である。本実施形態では、楽曲記憶部１０５からの波形データの読み出し時に、楽譜のある区間の始まりを示すラベルが読み出されると、その区間に対応した楽譜の画像データが楽譜データ中から選択されて読み出されるようになっている。楽曲データには、波形データおよび楽譜データとして、メロディパートに対応したものとベースパートに対応したものが含まれている。データ入力部１０６は、各種の楽曲の楽曲データを外部から取り込むための手段である。例えばＦＤやＩＣメモリ等の記憶媒体から楽曲データを読み出す装置やネットワークを介してサーバから楽曲データをダウンロードする通信装置等がこのデータ入力部１０６として用いられる。
【００１１】
サウンドシステム１０７は、デジタル音響信号をアナログ音響信号に変換するＤ／Ａ変換器と、アナログ音響信号を音として出力するスピーカ等により構成されている。表示部１０８は、例えば液晶パネルディスプレイであり、本実施形態では、楽譜の画像の表示、ユーザにより行われた演奏が適切なものであったか否かの判定結果の表示等を行うための手段として用いられる。なお、判定結果は、表示に限らず、報知音や振動による提示などによりユーザに示してもよい。
【００１２】
次に、本実施形態における教習伴奏システムとしての機能を実現するためのプログラムの処理内容について説明する。まず、楽曲入力処理１１１は、操作部１０２を介して与えられるコマンドに従って、データ入力部１０６により楽曲データ１０５ａを取得し、楽曲記憶部１０５に格納する処理である。楽曲読出処理１１２は、ユーザが演奏すべき位置（以下、演奏位置という）を制御するとともに、その演奏位置に対応した楽曲データを楽曲記憶部１０５内の楽曲データ１０５ａから読み出す処理である。楽曲読出処理１１２における演奏位置の制御の態様には２通りある。第１の態様は、ユーザがメロディパートまたはベースパートの楽器演奏をしている場合において、この楽器演奏が模範演奏に近い合格基準内のものである場合に、演奏位置を進める態様である。第２の態様は、模範演奏の通常のテンポで演奏位置を進める態様である。楽曲読出処理１１２にいずれの態様による演奏位置の制御を行わせるかは、操作部１０２を介して与えられるコマンドにより決定される。また、ユーザの演奏パートも操作部１０２を介して与えられるコマンドにより決定される。
【００１３】
楽曲再生処理１１３は、楽曲読出処理１１２により読み出された演奏位置における楽曲データの中からユーザの演奏パート以外のパートの波形データを選択し、その波形データをサウンドシステム１０７に供給する処理である。楽曲表示処理１１４は、楽曲読出処理１１２により出力された演奏位置における楽曲データの中からユーザが選択した演奏パートの楽譜データを選択し、その楽譜データが示す楽譜を表示部１０８に表示させる処理である。
【００１４】
確率密度関数発生処理１１５ａは、収音部１０４から出力される演奏音データを一定時間長のフレームに分割し、フレーム単位で演奏音データが示す演奏音の基本周波数の確率密度関数を発生する処理である。さらに詳述すると、確率密度関数発生処理１１５ａでは、楽器が発生する音の高調波構造を模した音モデルを用い、演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を逐次更新して最適化し、最適化した各種の基本周波数に対応した各音モデルの重み値を第１の確率密度関数として出力する。
【００１５】
確率密度関数発生処理１１５ｂは、楽曲記憶部１０５から読み出される楽曲データ中の波形データを上記フレームと同じ時間長のフレームに分割し、フレーム単位で確率密度関数発生処理１１５ａと同じ演算方法により波形データが示す模範演奏音の基本周波数に関する第２の確率密度関数を発生して出力する処理である。
【００１６】
類似度評価処理１１６は、確率密度関数発生処理１１５ａおよび１１５ｂにより発生された第１および第２の確率密度関数の類似度をフレーム単位で評価する処理である。判定処理１１７は、類似度評価処理１１６により評価された類似度に基づき、ユーザの演奏が模範演奏にどの程度近いかについての判定を行う処理である。この判定処理１１７の判定結果は、判定結果表示処理１１８に引き渡される他、上述した楽曲読出処理１１２に引き渡される。楽曲読出処理１１２では、上述した第１の態様が操作部１０２の操作により選択されている場合、判定処理１１７により得られたユーザの演奏の巧拙のレベルがある合格基準を越えている場合に限り、演奏位置を次の演奏音の位置に進める制御が行われる。判定結果表示処理１１８は、判定処理１１７の判定結果、すなわち、ユーザの演奏が模範演奏にどの程度近いかを表示部１０８に表示させる処理である。
【００１７】
＜確率密度関数発生処理＞
本実施形態では、確率密度関数発生処理１１５ａおよび１１５ｂのアルゴリズムとして、基本的には特許文献２に開示されたものを採用している。以下、その内容について説明する。
【００１８】
＜＜１．瞬時周波数の算出＞＞
確率密度関数発生処理１１５ａおよび１１５ｂでは、まず、入力音響信号（演奏音データまたは楽曲データ中の波形データ）を複数のＢＰＦからなるフィルタバンクに与え、フィルタバンクの各ＢＰＦの出力信号について、位相の時間微分である瞬時周波数（Flanagan, J.L. and Golden, R.M.: Phase Vocoder, The BellSystem
Technical J., Vol.45, pp.1493-1509 (1966)参照）を計算する。ここでは、上記Flanaganの手法を用い、短時間フーリエ変換(STFT)の出力をフィルタバンク出力と解釈して、効率良く瞬時周波数を計算する。入力音響信号ｘ(ｔ)に対する窓関数ｈ(ｔ)を用いたＳＴＦＴが式（１）により与えられるとき、瞬時周波数λ（ω，ｔ）は式（２）により求めることができる。
【００１９】
【数１】
0005088030.tif 000002
【数２】
0005088030.tif 000003
【００２０】
ここで、ｈ(ｔ)は時間周波数の局所化を与える窓関数である（例えば、最適な時間周波数の局所化を与えるガウス関数に２階のカーディナルＢ−スプライン関数を畳み込んで作成した時間窓など)。
【００２１】
この瞬時周波数を計算するのに、ウェーブレット変換を用いても良い。ここでは、計算量を減らすためにＳＴＦＴを用いるが、単一のＳＴＦＴのみを用いたのでは、ある周波数帯域における時間分解能や周波数分解能が悪くなってしまう。そこで、マルチレートフィルタバンク（Vetterli, M.: A Theory of Multirate Filter Banks, IEEE Trans. on
ASSP, Vol.ASSP-35, No.3, pp. 356-372 (1987)、参照）を構成し、リアルタイムに実行可能という制約のもとで、ある程度妥当な時間周波数分解能を得る。
【００２２】
＜＜２．周波数成分の候補の抽出＞＞
次に、フィルタの中心周波数からその瞬時周波数への写像に基づいて、周波数成分の候補を抽出する（Charpentier, F.J.: Pitch detection using the short-termphase
spectrum, Proc. of ICASSP 86, pp.113-116 (1986)参照）。あるＳＴＦＴフィルタの中心周波数ωからその出力の瞬時周波数λ（ω，ｔ）への写像を考える。すると、もし周波数ψの周波数成分があるときには、ψがこの写像の不動点に位置し、その周辺の瞬時周波数の値はほぼ一定となる。つまり、全周波数成分の瞬時周波数Ψf(t)は、次式によって抽出することができる。
【００２３】
【数３】
0005088030.tif 000004
これらの周波数成分のパワーは、Ψf(t)の各周波数におけるＳＴＦＴパワースペクトルの値として得られるため、周波数成分のパワー分布関数Ψp(t)(ω)を次のように定義することができる。
【数４】
0005088030.tif 000005
【００２４】
＜＜３．周波数帯域の制限＞＞
この処理では、抽出した周波数成分に重み付けすることで、周波数帯域を制限する。ここでは、メロディパートとベースパート用に、２種類のＢＰＦを用意する。メロディパート用ＢＰＦは、典型的なメロディパートの主要な基本波成分および高調波成分の多くを通過させることができ、かつ、基本周波数付近の重複が頻繁に起きる周波数帯域をある程度遮断する。一方、ベースパート用ＢＰＦは、典型的なベースラインの主要な基本周波数成分および高調波成分の多くを通過させることができ、かつ、他の演奏パートがベースパートよりも優勢になるような周波数帯域をある程度遮断する。
【００２５】
本実施形態では、以下、対数スケールの周波数をcentの単位(本来は音高差(音程)を表す尺度)で表し、Ｈｚで表された周波数ｆＨｚを、次のようにcentで表された周波数ｆｃｅｎｔに変換する。 
【数５】
0005088030.tif 000006
【数６】
0005088030.tif 000007
平均律の半音は１００ｃｅｎｔに、１オクターブは１２００ｃｅｎｔに相当する。
【００２６】
周波数ｘ ｃｅｎｔでのＢＰＦの周波数応答をＢＰＦ（ｘ）とし、周波数成分のパワー分布関数をΨ’ｐ（ｔ）（ｘ）とすると、ＢＰＦを通過した周波数成分はＢＰＦ（ｘ）Ψ’ｐ（ｔ）（ｘ）と表すことができる。ただし、Ψ’ｐ（ｔ）（ｘ）は、周波数軸がｃｅｎｔで表されていることを除けばΨｐ（ｔ）（ω）と同じ関数である。ここで、次の段階の準備として、ＢＰＦを通過した周波数成分の確率密度関数ｐΨ（ｔ）（ｘ）を定義する。
【数７】
0005088030.tif 000008
【００２７】
ここで、Ｐｏｗ（ｔ）は次式に示すようにＢＰＦを通過した周波数成分のパワーの合計である。
【数８】
0005088030.tif 000009
【００２８】
＜＜４．基本周波数の確率密度関数の推定＞＞
この処理では、ＢＰＦを通過した周波数成分の候補に対し、各高調波構造が相対的にどれくらい優勢かを表す基本周波数の確率密度関数を求める。そのために、本実施形態では、周波数成分の確率密度関数ｐΨ（ｔ）（ｘ）が、高調波構造を持つ音をモデル化した確率分布（音モデル）の混合分布モデル（重み付き和のモデル）から生成されたと考える。基本周波数がＦの音モデルの確率密度関数をｐ（ｘ｜Ｆ）とすると、その混合分布モデルｐ（ｘ；θ（ｔ））は、次式により定義することができる。
【数９】
0005088030.tif 000010
【数１０】
0005088030.tif 000011
【００２９】
ここで、ＦｈとＦｌは、許容される基本周波数の上限と下限であり、ＢＰＦの通過帯域により決定される。また、ｗ（ｔ）（Ｆ）は、次式を満たすような、音モデルｐ（ｘ｜Ｆ）の重みである。
【数１１】
0005088030.tif 000012
【００３０】
ＣＤ等による実世界の音響信号に対して事前に音源数を仮定することは不可能なため、このように、あらゆる基本周波数の可能性を同時に考慮してモデル化することが重要となる。もし、観測した周波数成分ｐΨ（ｔ）（ｘ）がモデルｐ（ｘ；θ（ｔ））から生成されたかのようにモデルパラメータθ（ｔ）を推定できれば、ｐΨ（ｔ）（ｘ）は個々の音モデルへと分解されたとみなすことができ、次式に示すように、各基本周波数Ｆの音モデルに対する重みｗ（ｔ）（Ｆ）を、基本周波数Ｆの確率密度関数ｐＦＯ（ｔ）（Ｆ）と解釈することができる。
【数１２】
0005088030.tif 000013
【００３１】
つまり、混合分布中において、ある音モデルｐ（ｘ｜Ｆ）が優勢になればなるほど（すなわち、ｗ（ｔ）（Ｆ）が大きくなるほど）、ｐＦＯ（ｔ）（Ｆ）において、そのモデルの基本周波数Ｆの確率が高くなる。
【００３２】
以上から、確率密度関数ｐΨ（ｔ）（ｘ）を観測したときに、そのモデルｐ（ｘ；θ（ｔ））のパラメータθ（ｔ）を推定する問題を解けばよいことがわかる。θ（ｔ）の最尤推定量は、次式で定義される平均対数尤度を最大化することで得られる。
【数１３】
0005088030.tif 000014
【００３３】
この最大化問題は解析的に解くことが困難なため、ＥＭ（Ｅｘｐｅｃｔａｔｉｏｎ−Ｍａｘｉｍｉｚａｔｉｏｎ）アルゴリズムを用いてθ（ｔ）を推定する。ＥＭアルゴリズムは、Ｅステップ（ｅｘｐｅｃｔａｔｉｏｎ  ｓｔｅｐ）とＭステップ（ｍａｘｉｍｉｚａｔｉｏｎ  ｓｔｅｐ）を交互に繰返し適用することで、不完全な観測データ（この場合、ｐΨ（ｔ）（ｘ））から最尤推定をおこなうための反復アルゴリズムである。本実施形態では、ＥＭアルゴリズムを繰り返すことにより、ＢＰＦを通過した周波数成分の確率密度関数ｐΨ（ｔ）（ｘ）を、各種の基本周波数Ｆに対応した複数の音モデルｐ（ｘ｜Ｆ）を重み付け加算した混合分布と考える場合において、最も尤もらしい重みのパラメータθ（ｔ）（＝｛ｗ（ｔ）（Ｆ）｜Ｆｌ≦Ｆ≦Ｆｈ｝を求める。ここで、ＥＭアルゴリズムの各繰り返しでは、パラメータθ（ｔ）（＝｛ｗ（ｔ）（Ｆ）｜Ｆｌ≦Ｆ≦Ｆｈ｝）に関して、古いパラメータ推定値θold（ｔ）（＝｛ｗold（ｔ）（Ｆ）｜Ｆｌ≦Ｆ≦Ｆｈ｝）を更新して新しい（より尤もらしい）パラメータ推定値θｎｅｗ（ｔ）（＝｛ｗｎｅｗ（ｔ）（Ｆ）｜Ｆｌ≦Ｆ≦Ｆｈ｝）を求めていく。θｏｌｄ（ｔ）の初期値には、１つ前の時刻ｔ−１における最終的な推定値を用いる。この古いパラメータ推定値θold（ｔ）から新しいパラメータ推定値θｎｅｗ（ｔ）を求める漸化式は、次のようになる。なお、この漸化式の導出過程は特許文献２に詳細に説明されているので、そちらを参照されたい。
【数１４】
0005088030.tif 000015
【００３４】
確率密度関数発生処理１１５ａおよび１１５ｂでは、以上のような漸化式の繰り返しによりパラメータθ（ｔ）（＝｛ｗ（ｔ）（Ｆ）｜Ｆｌ≦Ｆ≦Ｆｈ｝が収束したとき、そのときのパラメータθ（ｔ）（＝｛ｗ（ｔ）（Ｆ）｜Ｆｌ≦Ｆ≦Ｆｈ｝を入力音（演奏音データまたは楽曲データ中の波形データが示す演奏音）の基本周波数の確率密度関数として出力する。以上が本実施形態における確率密度関数発生処理１１５ａおよび１１５ｂの詳細である。
【００３５】
＜類似度評価処理＞
類似度評価処理１１６では、このようにして確率密度関数発生処理１１５ａおよび１１５ｂにより得られる第１および第２の確率密度関数間の類似度をフレーム単位で評価する。類似度評価の方法に関しては、各種の態様があるが、説明の重複を避けるため、本実施形態の動作説明において、その詳細を明らかにする。
【００３６】
＜本実施形態の動作＞
次に本実施形態の動作を説明する。本実施形態において楽曲読出処理１１２では、楽曲上において演奏位置を常時監視し、その演奏位置に対応した楽曲データを楽曲記憶部１０５から読み出し、楽曲再生処理１１３および楽曲表示処理１１４に引き渡す。また、楽曲読出処理１１２では、演奏位置に対応した楽曲データ中のユーザの演奏パートの波形データを確率密度関数発生処理１１５ｂに引き渡す。
【００３７】
楽曲再生処理１１３では、楽曲読出処理１１２から引き渡された楽曲データのうちユーザの演奏パート以外のパートの波形データをサウンドシステム１０７に送り、その再生を行わせる。また、楽曲表示処理１１４では、楽曲読出処理１１２から引き渡された楽曲データのうち、ユーザの演奏パートの楽譜データが示す楽譜の画像を表示部１０８に表示させる。
【００３８】
ユーザが楽器演奏を行って、その演奏音が収音部１０４により収音されると、その演奏音を示す演奏音データが確率密度関数発生処理１１５ａに引き渡される。確率密度関数発生処理１１５ａでは、演奏音データを一定時間長のフレームに分割し、フレーム毎に演奏音データが示す演奏音の基本周波数の確率密度関数を発生する。さらに詳述すると、確率密度関数発生処理１１５ａは、楽器が発生する音の高調波構造を模した音モデルを用い、フレーム毎に、演奏音データが示す演奏音の周波数成分が各種の基本周波数に対応した音モデルを重み付け加算した混合分布となるように各音モデルに対する重み値を最適化し、最適化された各音モデルに対する重み値を、演奏音の基本周波数に関する第１の確率密度関数として出力する。
【００３９】
一方、確率密度関数発生処理１１５ｂでは、楽曲読出処理１１２から引き渡された波形データを上記フレームと同じ時間長のフレームに分割し、フレーム毎に、波形データが示す模範演奏音の基本周波数に関する第２の確率密度関数を発生する。この確率密度関数を発生するためのアルゴリズムは、上記確率密度関数発生処理１１５ａが確率密度関数を発生させるアルゴリズムと同じものである。
【００４０】
そして、類似度評価処理１１６では、このようにして確率密度関数発生処理１１５ａおよび１１５ｂにより発生された第１および第２の確率密度関数間の類似度がフレーム単位で評価される。この類似度の評価に関しては各種の態様が考えられる。
【００４１】
図２は、類似度評価の第１の態様を示すものである。この第１の態様では、評価位置を演奏位置に追従させて変化させつつ、図示のように、評価位置のフレームに属する演奏音の基本周波数に関する第１の確率密度関数と評価位置のフレームに属する模範演奏音の基本周波数に関する第２の確率密度との類似度を算出し、この類似度を評価位置における演奏音と模範演奏音の基本周波数の類似度とするものである。この第１の態様は、演奏音と模範演奏音の基本周波数の類似度をフレーム単位で詳細に評価し、評価結果をユーザに提供することができるという利点がある。また、この第１の態様は、処理が簡単であるという利点がある。
【００４２】
図３は、類似度評価の第２の態様を示すものである。この第２の態様では、評価位置のフレームを途中（例えば中央）に含む所定数フレーム分の演奏音の確率密度関数の各々と、評価位置に対応したフレームの模範演奏音の確率密度関数との各類似度を各々算出する。そして、最大の類似度を評価位置における演奏音および模範演奏音の類似度とするのである。
【００４３】
この第２の態様において、演奏が模範演奏を正確に再現するものであり、演奏の模範演奏に対する位相の遅れや進みもない場合、算出される所定フレーム数分の類似度のうち評価位置における演奏音の基本周波数の確率密度関数と評価位置における模範演奏音の基本周波数の確率密度関数との類似度が最大になる。しかし、模範演奏に対して演奏が早い場合、最大になるのは、評価位置よりも時間的に前のフレーム（古いフレーム）における演奏音の基本周波数の確率密度関数と評価位置のフレームにおける模範演奏音の基本周波数の確率密度関数との間の類似度である。一方、模範演奏に対して演奏が遅い場合、最大になるのは、評価位置よりも時間的に後のフレーム（新しいフレーム）における演奏音の基本周波数の確率密度関数と評価位置のフレームにおける模範演奏音の基本周波数の確率密度関数との間の類似度である。このように、演奏の模範演奏に対する進みや遅れの程度は、類似度が最大になるフレームと評価位置のフレームとの間の時間的隔たり（フレーム数）となって現れる。そこで、この第２の態様では、この類似度が最大になるフレームと評価位置のフレームとの間のフレーム数を演奏の模範演奏に対する進みや遅れの程度を表わす情報として出力する。この第２の態様は、演奏の模範演奏に対する微妙な位相ずれがあった場合に、それを緩和して妥当な類似度の評価を行うことができるという利点がある。また、この第２の態様による類似度評価の結果に関する情報をユーザに提供すれば、ユーザは、曲の各所において、どの方向にどの程度の位相ずれがあるかを知ることができ、演奏を上達させることができる。
【００４４】
類似度として何を用いるかについても各種の態様が考えられる。第１の態様では、演奏音の基本周波数の確率密度関数と模範演奏音の基本周波数の確率密度関数とを用いて、Ｋ−Ｌ情報量を算出し、このＫ−Ｌ情報量を類似度として用いることができる。
【００４５】
第２の態様は、２つの確率密度関数に現れるピークを比較し、ピークの接近の程度が高い程、両確率密度関数の類似度を高くするものである。図４は、この第２の態様による類似度評価を示すものである。まず、演奏音の基本周波数の確率密度関数および模範演奏音の基本周波数の確率密度関数の各々において、確率密度関数の最大値に対して１より小さい正の値である係数ｔｈｒｅｓ＿ｃｏｅｆを乗算し、閾値ｔｈを各々求める。次に、各確率密度関数において、閾値ｔｈを越えている部分を確率密度のピークとみなす。次に、演奏音における確率密度のピークのうち模範演奏音における確率密度のピークとの周波数差が許容範囲内であるものの数Ｎ１を求める。そして、数Ｎ１を演奏音における確率密度のピークの数Ｎ２により割り算した結果Ｎ１／Ｎ２を演奏音の基本周波数の確率密度関数および模範演奏音の基本周波数の確率密度関数の類似度とするのである。あるいは次の方法により類似度を算出してもよい。まず、演奏音における確率密度のピークのうち模範演奏音における確率密度のピークとの周波数差が許容範囲内であるもののピークの高さの合計値Ｈ１を求める。次に、演奏音における確率密度のピークの高さの合計値Ｈ２を求める。そして、Ｈ１／Ｈ２を演奏音の基本周波数の確率密度関数および模範演奏音の基本周波数の確率密度関数の類似度とするのである。
【００４６】
判定処理１１７では、この類似度評価処理１１６の処理結果に基づき、演奏音の音高が模範演奏音の音高にどの程度近いかに関する判定を行う。判定結果表示処理１１８では、判定処理１１７の判定結果を表示部１０８に表示させる。
本実施形態では、演奏位置を進めつつ、以上の処理が繰り返される。
【００４７】
以上説明したように、本実施形態では、対比される演奏音および模範演奏音の各々についてフレーム毎に基本周波数の確率密度関数を各々求め、両確率密度関数間の類似度を評価するようにしたので、演奏音と模範演奏音の基本周波数の類似度を精度良く評価することができる。また、本実施形態では、演奏音と模範演奏音とで基本周波数の確率密度関数同士の類似度を評価するので、特許文献１に開示の技術と異なり、複数音を同時に発音するような演奏が行われる状況でも、適切に演奏の類似度の評価を行うことができる。
【００４８】
＜他の実施形態＞
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば次の通りである。
【００４９】
（１）演奏音の基本周波数の確率密度関数と模範演奏音の基本周波数の確率密度関数の類似度として次のものを採用してもよい。
【００５０】
（１−１）２つの確率密度関数の平均２乗誤差ＲＭＳ、すなわち、図５に示すように、演奏音の基本周波数の確率密度関数における確率密度と模範演奏音の基本周波数の確率密度関数における確率密度との差分を２乗したものを全周波数帯域に亙って積分し、所定の定数Ｃにより除算したものの平方根の逆数を類似度とする。なお、この平方根の逆数の代わりに、所定の最大値からこの平方根を減算したものを類似度としてもよい。
【００５１】
（１−２）図６に示すように、周波数帯域を模範演奏音の基本周波数の確率密度が高い有ピッチ領域と模範演奏音の基本周波数の確率密度がほぼ０である無ピッチ領域とに分け、確率密度関数発生処理１１５ａにより得られた演奏音の基本周波数の確率密度関数において、有ピッチ領域に属する部分の確率密度の総和と、無ピッチ領域に属する部分の確率密度の総和とを求め、前者から後者を差し引いたものを類似度としてもよい。
【００５２】
（１−３）その他、演奏音の基本周波数の確率密度関数と模範演奏音の基本周波数の確率密度関数から何らかの特徴量を抽出し、特徴量同士の積・べき乗・各種の数学関数などを用いた量を類似度とし、演奏音の基本周波数の確率密度関数と目標基本周波数の確率密度関数との差別化を容易にするようにしてもよい。
【００５３】
(１−４）上記のうちの例えば２種類の方法により２種類の類似度（第１および第２の類似度とする）を求め、第１および第２の類似度を線形結合した第３の類似度を演奏音が正しい音高であるか否かの判断のための類似度として採用してもよい。
【００５４】
（２）模範演奏音については、予めフレーム毎に確率密度関数発生処理１１５ａと同様なアルゴリズムにより基本周波数の確率密度関数を求めて、例えば楽曲記憶部１０５に記憶させておき、確率密度関数発生処理１１５ａがフレーム毎に演奏音の基本周波数の確率密度関数を出力するのに同期して、模範演奏音の基本周波数の確率密度関数を楽曲記憶部１０５から読み出して類似度評価処理１１６に供給するようにしてもよい。この態様は、フレーム毎に確率密度関数発生処理１１５ｂを実行する必要がないため、フレーム当たりの演算量を減らすことができるという利点がある。
【００５５】
（３）上記実施形態および上記（２）の態様において、模範演奏音と演奏音とでフレームの長さは異なってもよい。例えば上記（２）の態様において、教習伴奏システムの処理能力が低い等の理由により、演奏音を模範演奏音と同じ長さのフレームに分割して処理することができない場合もある。そのような場合、演奏音については、例えば模範演奏音のｍ倍の長さのフレームに分割し、１フレーム分の演奏音の基本周波数の確率密度関数と、同一時間帯を占めるｍフレーム分の模範演奏音の基本周波数の確率密度関数の中の例えば代表的なものとの類似度を評価するようにしてもよい。
【００５６】
（４）上記実施形態では、メロディパートとベースパートを分離して取り扱ったが、必ずしも分離する必要はない。すなわち、メロディパートとベースパートとが混在した演奏音と模範演奏音の各々について基本周波数の確率密度関数を各々求め、この確率密度関数間の類似度を評価すればよい。
【図面の簡単な説明】
【００５７】
【図１】この発明による演奏音の類似度評価装置の一実施形態である教習伴奏システムの構成を示すブロック図である。
【図２】同実施形態における類似度評価処理１１６の第１の態様を示す図である。
【図３】同実施形態における類似度評価処理１１６の第２の態様を示す図である。
【図４】同実施形態における類似度算出方法の第２の態様を示す図である。
【図５】類似度算出方法の他の態様を示す図である。
【図６】類似度算出方法の他の態様を示す図である。
【符号の説明】
【００５８】
１０１……制御部、１０２……操作部、１０３……ＨＤＤ、１０４……収音部、１０５……楽曲記憶部、１０６……データ入力部、１１１……楽曲入力処理、１１２……楽曲読出処理、１１３……楽曲再生処理、１１４……楽曲表示処理、１１５ａ，１１５ｂ……確率密度関数発生処理、１１６……類似度評価処理、１１７……判定処理、１１８……判定結果表示処理。
【図１】
0005088030.tif 000016
【図２】
0005088030.tif 000017
【図３】
0005088030.tif 000018
【図４】
0005088030.tif 000019
【図５】
0005088030.tif 000020
【図６】
0005088030.tif 000021