(57)【要約】【課題】音高を高精度に推定する。【解決手段】音響推定装置Ｄは、音響信号Ｖを複数の音モデルの混合分布としてモデル化したときの各音モデルの重み値ω[F]の分布である基本周波数の確率密度関数Ｐから音響信号Ｖの基本周波数Ｆ0を推定する装置である。関数推定部２０は、重み値ω[F]を更新する単位処理を反復するＥＭアルゴリズムによって確率密度関数Ｐを推定する。重み値修正部２２は、単位処理で算定された重み値ω[F]に現れる複数のピークのピーク値を増加させた修正値ωa[F]を、次回の単位処理で使用される重み値ω[F]として生成する。音高特定部４０は、確率密度関数Ｐのピークに対応した基本周波数Ｆ0を特定する。【選択図】図１
2008058885.tif 000002
【特許請求の範囲】
【請求項１】
高調波構造をモデル化する複数の音モデルの混合分布として音響信号をモデル化したときの各音モデルの重み値を示す基本周波数の確率密度関数から音響信号の基本周波数を推定する装置であって、
前記重み値を更新する単位処理を反復する最尤推定アルゴリズムによって前記基本周波数の確率密度関数を推定する関数推定手段と、
前記単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値を、次回の単位処理で使用される更新前の重み値として生成する重み値修正手段と、
前記関数推定手段が推定した前記基本周波数の確率密度関数のピークに対応した基本周波数を特定する音高特定手段と
を具備する音高推定装置。
【請求項２】
前記関数推定手段は、前記重み値修正手段による修正値の生成前に、当該重み値修正手段による重み値の修正を経ずに複数回の単位処理を実行する
請求項１に記載の音高推定装置。
【請求項３】
前記関数推定手段は、前記重み値修正手段が生成した修正値を使用した単位処理の実行後に、当該重み値修正手段による重み値の修正を経ずに複数回の単位処理を実行する
請求項１または請求項２に記載の音高推定装置。
【請求項４】
前記重み値修正手段が修正値を生成する処理と、当該修正値を更新前の重み値として前記関数推定手段が実行する単位処理とは、複数回にわたって反復される
請求項１から請求項３の何れかに記載の音高推定装置。
【請求項５】
前記単位処理で選定された重み値の総てのピークから複数のピークを選択する選択手段を具備し、
前記重み値修正手段は、前記選択手段が選択した複数のピークのみについてピーク値を増加させて修正値を生成し、
前記音高特定手段は、前記選択手段が選択した複数のピークに対応した基本周波数のなかから音響信号の基本周波数を特定する
請求項１から請求項４の何れかに記載の音高推定装置。
【請求項６】
前記音高特定手段は、
前記基本周波数の確率密度関数におけるピーク値と所定の係数との乗算によって閾値を算定する閾値算定手段と、
前記基本周波数の確率密度関数の複数のピークのうち前記閾値算定手段が算定した閾値との比較に応じて選択したひとつまたは複数のピークに対応する基本周波数を特定するピーク抽出手段と
を含む請求項１から請求項５の何れかに記載の音高推定装置。
【請求項７】
高調波構造をモデル化する複数の音モデルの混合分布として音響信号をモデル化したときの各音モデルの重み値を示す基本周波数の確率密度関数から音響信号の基本周波数を推定する方法であって、
前記重み値を更新する単位処理を反復する最尤推定アルゴリズムによって前記基本周波数の確率密度関数を推定する一方、
前記単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値を、次回の単位処理で使用される更新前の重み値として生成し、
前記推定した前記基本周波数の確率密度関数のピークに対応した基本周波数を特定する
音高推定方法。
【請求項８】
高調波構造をモデル化する複数の音モデルの混合分布として音響信号をモデル化したときの各音モデルの重み値を示す基本周波数の確率密度関数から音響信号の基本周波数を推定するためのプログラムであって、
前記重み値を更新する単位処理を反復する最尤推定アルゴリズムによって前記基本周波数の確率密度関数を推定する関数推定処理と、
前記単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値を、次回の単位処理で使用される更新前の重み値として生成する重み値修正処理と、
前記関数推定処理で推定した前記基本周波数の確率密度関数のピークに対応した基本周波数を特定する音高特定処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音高（基本周波数）を推定する技術に関する。
【背景技術】
【０００２】
特許文献１には、複数の音の混合音など様々な音（以下「対象音」という）を構成するひとつの音の基本周波数を推定する技術が開示されている。この技術においては、対象音の振幅スペクトルを複数の音モデル（高調波構造をモデル化した確率密度関数）の混合分布でモデル化したときの各音モデルの重み値を基本周波数の確率密度関数として算定し、確率密度関数において優勢なピークを所望の音の基本周波数として推定する。
【特許文献１】特許第３４１３６３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、基本周波数の確率密度関数には、対象音に含まれる音の基本周波数だけでなく、対象音に実際には含まれない音の基本周波数にもピークが現れる。例えば、基本周波数100Hzの音の振幅スペクトルには、基本周波数200Hzの音の振幅スペクトルと同様の周波数（200Hz，400Hz，600Hz，800Hz，……）にピークが現れる。したがって、基本周波数200Hzの音が対象音に含まれる場合には、基本周波数100Hzの音が実際には対象音に含まれない場合であっても、基本周波数の確率密度関数には200Hzに加えて100Hzにもピークが現れる。以上のように多数のピークが存在する確率密度関数から所望の音の基本周波数のみを高精度に選択することは困難である。このような事情に鑑みて、本発明は、対象音（特に複数の音の混合音）の基本周波数を高精度に推定するという課題の解決を目的としている。
【課題を解決するための手段】
【０００４】
以上の課題を解決するために、本発明に係る音高推定装置は、高調波構造をモデル化する複数の音モデルの混合分布として音響信号をモデル化したときの各音モデルの重み値を示す基本周波数の確率密度関数から音響信号の基本周波数を推定する装置であって、重み値を更新する単位処理（例えば図２のステップＳ10・Ｓ14・Ｓ16）を反復する最尤推定アルゴリズムによって基本周波数の確率密度関数を推定する関数推定手段と、単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値を、次回の単位処理で使用される更新前の重み値として生成する重み値修正手段と、関数推定手段が推定した基本周波数の確率密度関数のピークに対応した基本周波数を特定する音高特定手段とを具備する。
【０００５】
以上の構成においては、単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値が、次回の単位処理で使用される更新前の重み値として生成される（すなわち、事前分布が付与される）から、基本周波数の確率密度関数のうち音響信号に実際に含まれる音に対応するピークと実際には含まれない音に対応するピークとのピーク値の差異が拡大される。したがって、対象音の基本周波数を高精度に推定することが可能となる。
【０００６】
本発明の好適な態様において、関数推定手段は、重み値修正手段による修正値の生成前に、当該重み値修正手段による重み値の修正を経ずに複数回の単位処理（例えば図２のステップＳ10）を実行する。以上の態様によれば、毎回の単位処理に際して修正値が生成される構成と比較して処理の負荷を抑制しながら、単位処理の回数を充分に確保することで重み値を最適値（尤度の高い数値）に近づけることが可能となる。
【０００７】
別の態様において、関数推定手段は、重み値修正手段が生成した修正値を使用した単位処理の実行後に、当該重み値修正手段による重み値の修正を経ずに複数回の単位処理（例えば図２のステップＳ16）を実行する。以上の態様によれば、毎回の単位処理に際して修正値が生成される構成と比較して処理の負荷を抑制しながら、単位処理の回数を充分に確保することで重み値を最適値（尤度の高い数値）に近づけることが可能となる。さらに、重み値の修正を伴なう単位処理の実行後に、重み値の修正を経ない単位処理を反復することで、基本周波数の確率密度関数のうち音響信号に実際に含まれる音に対応するピークと実際には含まれない音に対応するピークとのピーク値の差異がいっそう拡大する。したがって、対象音の基本周波数の推定の精度を向上することが可能となる。
【０００８】
本発明の好適な態様において、重み値修正手段が修正値を生成する処理（例えば図２のステップＳ13）と、当該修正値を更新前の重み値として関数推定手段が実行する単位処理（例えば図２のステップＳ14）とは、複数回にわたって反復される。以上の態様によれば、基本周波数の確率密度関数のうち音響信号に含まれる音に対応したピークと実際には含まれない音に対応したピークとのピーク値の差異がいっそう拡大するから、対象音の基本周波数の推定の精度を向上することが可能となる。
【０００９】
さらに好適な態様に係る音高推定装置は、単位処理で選定された重み値の総てのピークから複数のピークを選択する選択手段（例えば図２のステップＳ12）を具備し、重み値修正手段は、選択手段が選択した複数のピークのみについてピーク値を増加させて修正値を生成し、音高特定手段は、選択手段が選択した複数のピークに対応した基本周波数のなかから音響信号の基本周波数を特定する。以上の態様によれば、選択手段が選択しなかったピークは、重み値修正手段や音高特定手段による処理の対象から除外されるから、重み値修正手段や音高特定手段による処理の負荷が軽減される。
【００１０】
本発明の好適な態様において、音高特定手段は、基本周波数の確率密度関数におけるピーク値（特にピーク値の最大値）と所定の係数との乗算によって閾値を算定する閾値算定手段と、基本周波数の確率密度関数の複数のピークのうち閾値算定手段が算定した閾値との比較に応じて選択したひとつまたは複数のピークに対応する基本周波数を特定するピーク抽出手段とを含む。以上の態様によれば、対象音に含まれる音数に応じて閾値が制御されるから、対象音に現実に含まれる音の基本周波数を、対象音の音数の多少に関わらず高精度に特定することが可能となる。
【００１１】
なお、複数の音で構成される音響信号を処理の対象とする場合、実際には音響信号に含まれない基本周波数に確率密度関数のピークがある場合であっても、例えば重み値が最大となるピークのみを探索すれば、所望のひとつの音の基本周波数を推定できる可能性は高い。しかし、複数の音の基本周波数を音響信号から推定する場合には、重み値の最大値を探索する方法を利用できないから、確率密度関数のピークが、実際に音響信号に含まれる基本周波数に対応したピークであるか否かを高精度に選別することは困難となる。本発明によれば、確率密度関数のうち実際には音響信号に含まれない基本周波数のピークが、実際に音響信号に含まれる基本周波数のピークに対して相対的に抑制されるから、複数の音の基本周波数を確率密度関数から高精度に推定することが可能となる。すなわち、本発明は、基本周波数の確率密度関数のピークに対応した複数の基本周波数を音高特定手段が特定する構成に特に好適に採用される。
【００１２】
本発明は、音響信号の基本周波数を推定する方法としても特定される。本発明の音高推定方法は、高調波構造をモデル化する複数の音モデルの混合分布として音響信号をモデル化したときの各音モデルの重み値を示す基本周波数の確率密度関数から音響信号の基本周波数を推定する方法であって、重み値を更新する単位処理を反復する最尤推定アルゴリズムによって基本周波数の確率密度関数を推定する一方、単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値を、次回の単位処理で使用される更新前の重み値として生成し、推定した基本周波数の確率密度関数のピークに対応した基本周波数を特定する。以上の方法によれば、本発明の音高推定装置と同様の作用および効果が奏される。
【００１３】
本発明に係る音高推定装置は、各処理に専用されるＤＳＰ（Digital Signal Processor）などのハードウェア（電子回路）によって実現されるほか、ＣＰＵ（Central Processing Unit）などの汎用の演算処理装置とプログラムとの協働によっても実現される。本発明に係るプログラムは、高調波構造をモデル化する複数の音モデルの混合分布として音響信号をモデル化したときの各音モデルの重み値を示す基本周波数の確率密度関数から音響信号の基本周波数を推定するためのプログラムであって、重み値を更新する単位処理を反復する最尤推定アルゴリズムによって基本周波数の確率密度関数を推定する関数推定処理と、単位処理で算定された重み値に現れる複数のピークのピーク値を増加させた修正値を、次回の単位処理で使用される更新前の重み値として生成する重み値修正処理と、関数推定処理で推定した基本周波数の確率密度関数のピークに対応した基本周波数を特定する音高特定処理とをコンピュータに実行させる内容である。以上のプログラムによっても、本発明に係る音高推定装置と同様の作用および効果が奏される。なお、本発明のプログラムは、ＣＤ−ＲＯＭなど可搬型の記録媒体に格納された形態で利用者に提供されてコンピュータにインストールされるほか、ネットワークを介した配信の形態でサーバ装置から提供されてコンピュータにインストールされる。
【発明を実施するための最良の形態】
【００１４】
＜Ａ：音高推定装置の構成＞
図１は、本発明のひとつの形態に係る音高推定装置の機能的な構成を示すブロック図である。音高推定装置Ｄは、対象音を構成する各音の基本周波数（音高）を推定する装置であり、図１に示すように、周波数分析部１２とＢＰＦ（Band Pass Filter）１４と関数推定部２０と記憶部３０と音高特定部４０とを含む。図１に図示された各部は、例えばＣＰＵなどの演算処理装置がプログラムを実行することで実現されてもよいし、基本周波数の推定に専用されるＤＳＰなどのハードウェアによって実現されてもよい。
【００１５】
周波数分析部１２には、対象音の時間波形を示す音響信号Ｖが入力される。本実施形態の音響信号Ｖが示す対象音は、各々の音高や音源が相違する複数の音の混合音である。周波数分析部１２は、所定の窓関数を利用して音響信号Ｖを多数のフレームに分割したうえで、ＦＦＴ（Fast Fourier Transform）処理を含む周波数分析を各フレームの音響信号Ｖについて実行することで対象音の振幅スペクトルを特定する。各フレームは時間軸上で相互に重なり合うように設定される。
【００１６】
ＢＰＦ１４は、周波数分析部１２がフレームごとに特定した振幅スペクトルのうち特定の周波数帯域に属する成分を選択的に通過させる。ＢＰＦ１４の通過帯域は、対象音を構成する複数の音のうち音高を推定すべき各音の基本周波数成分や高調波成分の多くが通過し、かつ、他の音の基本周波数成分や高調波成分が所望の音よりも優勢となる周波数帯域が遮断されるように、統計的または実験的に予め選定される。ＢＰＦ１４を通過した振幅スペクトルＳは関数推定部２０に出力される。
【００１７】
関数推定部２０は、振幅スペクトルＳについて基本周波数の確率密度関数Ｐを推定する。基本周波数の確率密度関数Ｐは、振幅スペクトルＳを多数の音モデルの混合分布（複数の音モデルの重み付き和）としてモデル化したときの各音モデルの重み値ω[F]の分布を表現する関数である。音モデルは、各基本周波数Ｆに対応した高調波構造（基本周波数成分および高調波成分の配置やスペクトル形状）をモデル化する関数（確率密度関数）である。したがって、特定の基本周波数Ｆaに対応する重み値ω[Fa]は、基本周波数Ｆaに対応した音モデル（すなわち基本周波数Ｆaの基音成分とその整数倍の周波数の倍音成分との周波数軸上における分布をモデル化する関数）が振幅スペクトルＳの高調波構造をどのくらい優勢に支持するかを示す。以上の定義から理解されるように、確率密度関数Ｐのうち優勢なピークが現れる基本周波数Ｆは、対象音に含まれる各音の基本周波数Ｆ0（音高）である可能性が高い。
【００１８】
関数推定部２０は、最尤推定アルゴリズムのひとつであるＥＭ（Expectation-Maximization）アルゴリズムに基づいて重み値ω[F]を反復的に更新することで基本周波数の確率密度関数Ｐを特定する。すなわち、関数推定部２０は、Ｅ（Expectation）ステップとＭ（Maximization）ステップとから構成される処理（以下「単位処理」という）を複数回にわたって反復する。各単位処理は、前回の単位処理で算定された重み値ω[F]（第１回目の単位処理においては重み値ω[F]の初期値）に基づいて新たな重み値ω[F]を算定する処理である。重み値ω[F]は、単位処理のたびに、複数の音モデルの混合分布によって振幅スペクトルＳがモデル化されるときの重み値ω[F]（尤度が高い数値）に近づいていく。単位処理が所定の回数にわたって実行された段階で算定されている重み値ω[F]が基本周波数の確率密度関数Ｐとして音高特定部４０に出力される。
【００１９】
重み値ω[F]（基本周波数の確率密度関数Ｐ）には、対象音に含まれる音の基本周波数Ｆだけでなく、実際には対象音に含まれない音の基本周波数Ｆにもピークが現れる。例えば、基本周波数100Hzの音の振幅スペクトルには、基本周波数200Hzの音の振幅スペクトルと同様の周波数（200Hz，400Hz，600Hz，800Hz，……）にピークが現れるから、基本周波数200Hzの音が対象音に含まれる場合には、基本周波数100Hzの音が実際には対象音に含まれない場合であっても、基本周波数の確率密度関数Ｐには200Hzに加えて100Hzにもピークが現れる。重み値ω[F]に現れる多数のピークのうち実際には対象音に含まれない音に対応したピークを以下では「偽ピーク」と表記し、対象音に現実に含まれる音に対応したピーク（以下「真ピーク」という）と区別する場合がある。
【００２０】
図１に示すように、本実施形態の関数推定部２０は重み値修正部２２を含む。重み値修正部２２は、単位処理で算定された重み値ω[F]を修正した数値（以下「修正値」という）ωa[F]を、次回の単位処理で使用される重み値ω[F]として生成する。重み値修正部２２が実行する修正は、重み値ω[F]の真ピークと偽ピークとのピーク値の差異を拡大する（真ピークを偽ピークよりも拡大し、または偽ピークを真ピークよりも抑制する）ための処理である。重み値修正部２２による処理は、確率密度関数たる重み値ω[F]に事前分布を付与する処理としても把握される。なお、重み値修正部２２による具体的な処理の内容については後述する。
【００２１】
記憶部３０は、基本周波数の確率密度関数Ｐの推定に使用される各種の情報を記憶する手段（磁気記憶装置や半導体記憶装置）である。例えば各回の単位処理で算定された重み値ω[F]やその算定に使用される音モデルが記憶部３０に記憶される。
【００２２】
音高特定部４０は、関数推定部２０が推定した基本周波数の確率密度関数Ｐに優勢なピークが現れる基本周波数Ｆを対象音の各音の基本周波数Ｆ0（音高）として特定する手段である。本実施形態の音高特定部４０は閾値算定部４２とピーク抽出部４４とを含む。閾値算定部４２は、確率密度関数Ｐに応じた閾値ＴＨを算定する。ピーク抽出部４４は、確率密度関数Ｐのうち閾値ＴＨを上回るひとつまたは複数のピークに対応した基本周波数Ｆ0を出力する。
【００２３】
＜Ｂ：音高推定装置Ｄの動作＞
図２は、関数推定部２０および音高特定部４０による具体的な処理を示すフローチャートであり、図３は、図２の各処理を説明するための概念図である。重み値ω[F]を更新する単位処理は、図２のステップＳ10とステップＳ14とステップＳ16とで実行される。
【００２４】
図２に示すように、関数推定部２０は、ステップＳ10の単位処理をＭ1回（Ｍ1は１以上の整数）にわたって反復する（ステップＳ10・ステップＳ11）。各回の単位処理において、関数推定部２０は、前回の単位処理で算定した重み値ω[F]（すなわち記憶部３０に格納された最新の重み値ω[F]）を変数とした所定の演算によって、当該重み値ω[F]よりも尤度が高い新たな重み値ω[F]を算定し、その時点で記憶部３０に記憶されている重み値ω[F]を新たな重み値ω[F]に更新する。単位処理の回数がＭ1回に到達すると（ステップＳ11：YES）、関数推定部２０はステップＳ12に処理を移行する。
【００２５】
ところで、単位処理で算定される重み値ω[F]にてピークが現れる基本周波数Ｆのなかには、予め定められた条件に基づいて、対象音の基本周波数Ｆ0の候補から確定的に除外できる偽ピークもある。ステップＳ12において、関数推定部２０は、記憶部３０に記憶された重み値ω[F]の複数のピークのうち所定の条件を満たすピーク（実際には各ピークの基本周波数Ｆ）のみを選択する。ピークの選択の条件は、例えば以下のように設定される。
【００２６】
楽器の演奏音の音高には当該楽器に特有の上限値と下限値とが存在するから、特定の楽器の演奏音の基本周波数Ｆ0はその楽器に特有な周波数帯域（以下「可能帯域」という）内の数値となる。しかし、単位処理で算定される重み値ω[F]には、実際には対象音に含まれない音の基本周波数に対応した偽ピークが可能帯域の外側に現れる場合がある。したがって、対象音が特定の楽器の演奏音であることが予め認定されれば、重み値ω[F]に現れる複数のピークのうち当該楽器の可能帯域の外側の偽ピークについては、対象音の基本周波数Ｆ0である可能性を予め排除することができる。
【００２７】
そこで、本実施形態の関数推定部２０は、ステップＳ12において、直前の単位処理（ステップＳ10）で算定された重み値ω[F]に現れるピークのうち予め設定された可能帯域内のピークのみを選択する（可能帯域外のピークは選択しない）。図３の部分(a)は、ステップＳ12の直前に記憶部３０に格納されている重み値ω[F]の態様を示す。同図においては、可能帯域Ｂの外側の基本周波数Ｆ（ＦN1，ＦN2）に重み値ω[F]のピーク（偽ピーク）が現れる場合を想定している。この場合、関数推定部２０は、可能帯域Ｂ内の基本周波数Ｆ（ＦT1〜ＦT4，ＦF1〜ＦF3）を選択し、基本周波数ＦN1およびＦN2は選択しない。
【００２８】
ステップＳ12にて設定される可能帯域Ｂは、例えば操作子（図示略）に対する操作によって利用者が指定した楽器に応じて予め設定される。対象音が例えば音高推定装置Ｄの仕様から特定の楽器の演奏音に制限される場合には、当該楽器の可能帯域ＢがステップＳ12の選択に固定的に適用されてもよい。なお、可能帯域Ｂ内にも偽ピークは存在するから、ステップＳ12における選択の対象には真ピークだけでなく偽ピークも含まれ得る。例えば、図３の部分(a)においては、基本周波数ＦT1〜ＦT4の真ピークのほかに基本周波数ＦF1〜ＦF3の偽ピークが選択された場合を想定している。
【００２９】
次いで、関数推定部２０の重み値修正部２２は、図２に示すように、前回の単位処理で算定された重み値ω[F]を修正して修正値ωa[F]を生成し、この生成した修正値ωa[F]を新たな重み値ω[F]として記憶部３０に格納する（ステップＳ13）。さらに、関数推定部２０は、ステップＳ13で生成された重み値ω[F]（修正値ωa[F]）についてステップＳ10と同様の単位処理を実行することで新たな重み値ω[F]を算定して記憶部３０に格納する（ステップＳ14）。ステップＳ13の修正とステップＳ14の単位処理とがＭ2回（Ｍ2は１以上の整数）にわたって反復されると、関数推定部２０はステップＳ16に処理を移行する（ステップＳ15：YES）。以上のように、図２の処理が開始されてから最初のステップＳ13においては直前のステップＳ10で算定された重み値ω[F]が修正の対象となり、第２回目以降のステップＳ13においては直前のステップＳ14で算定された重み値ω[F]が修正の対象となる。
【００３０】
次に、図３を参照して、重み値修正部２２による処理の詳細について説明する。図３の部分(c)は、同図の部分(a)の重み値ω[F]からステップＳ13で生成された修正値ωa[F]を示す。図３の部分(c)には、部分(a)の重み値ω[F]のうちステップＳ12で選択されたピークが破線で併記されている。図３の部分(c)に矢印で示すように、重み値修正部２２は、記憶部３０に記憶された重み値ω[F]に現れる複数のピークのうちステップＳ12にて選択した各ピークのピーク値を増加させることで修正値ωa[F]を生成する。
【００３１】
さらに詳述すると、重み値修正部２２は、ステップＳ12にて選択した各ピーク（図３の部分(a)）と図３の部分(b)の正規分布Ｎ[F]とを所定の比率（内分比）で各基本周波数Ｆについて加算することで修正値ωa[F]を生成する。図３の部分(b)に示すように、各正規分布Ｎ[F]の中央値（平均）は、ステップＳ12で選択された各ピークの中心周波数（基本周波数ＦT1〜ＦT4やＦF1〜ＦF3）と合致するように選定される。また、各正規分布Ｎ[F]の分散は予め所定値に設定される。ステップＳ12で選択されたひとつのピークに対応する修正値ωa[F]は以下の式で表現される。
ωa[F]＝α・ω[F]＋β・Ｎ[F]
係数αと係数βとは所定の相対比（例えばα：β＝５：１）となるように選定される。なお、ステップＳ12で選択されなかったピークについて正規分布Ｎ[F]は加算されない。
【００３２】
図３の部分(d)は、ステップＳ13の修正とステップＳ14の単位処理とをＭ2回にわたって反復した段階（ステップＳ16の直前）の重み値ω[F]を示す。同図に示すように、重み値ω[F]の修正（事前分布の付与）を実行しながら単位処理を反復すると、重み値ω[F]を修正せずにＭ2回の単位処理を実行した場合と比較して、真ピーク（基本周波数ＦT1〜ＦT4）のピーク値が増大するとともに偽ピーク（基本周波数ＦF1〜ＦF3）のピーク値が減少する。すなわち、真ピークと偽ピークとのピーク値の相違が拡大する。
【００３３】
以上のようにステップＳ13とステップＳ14とをＭ2回にわたって反復すると、関数推定部２０は、ステップＳ10と同様の単位処理を、ステップＳ13のような重み値ω[F]の修正を実行することなくＭ3回（Ｍ3は１以上の整数）にわたって反復する（ステップＳ16・ステップＳ17）。単位処理の回数がＭ3回に到達すると（ステップＳ17：YES）、関数推定部２０はステップＳ18に処理を移行する。ステップＳ18に移行した段階で記憶部３０に記憶されている重み値ω[F]が基本周波数の確率密度関数Ｐとして確定される。
【００３４】
音高特定部４０の閾値算定部４２は、確率密度関数Ｐのピーク値の最大値ＰMAXを特定し、最大値ＰMAXと所定の係数Ｃ（０＜Ｃ＜１）との乗算値を閾値ＴＨとして算定する（ステップＳ18）。さらに、ピーク抽出部４４は、ステップＳ12で関数推定部２０が選択した各ピークの基本周波数Ｆのうちピーク値が閾値ＴＨを上回る基本周波数Ｆを確率密度関数Ｐから探索し、ここで探索した各基本周波数Ｆを、対象音を構成する各音の基本周波数Ｆ0として出力する（ステップＳ19）。ステップＳ12で選択されなかったピークはステップＳ19における処理の対象から除外されるから、例えば図３における基本周波数ＦN1やＦN2が基本周波数Ｆ0として出力されることはない。
【００３５】
図４は、確率密度関数Ｐの各ピークと閾値ＴＨとの関係を示す概念図である。同図の部分(a)は対象音を構成する音数が多い場合を示し、部分(b)は音数が少ない場合を示す。なお、同図においては確率密度関数Ｐの各ピークが便宜的に線分として図示されているが、実際の確率密度関数Ｐは基本周波数Ｆの所定の範囲にわたって連続的に分布する。
【００３６】
基本周波数Ｆの全範囲にわたる確率密度関数Ｐの積分値は１となるから、図４の部分(a)のように対象音を構成する音数が多い場合には、各々のピーク値が比較的に小さい多数のピーク（真ピーク）が確率密度関数Ｐに表れる。これに対し、図４の部分(b)のように対象音を構成する音数が少ない場合には、少数の真ピークのピーク値が他のピーク（偽ピーク）と比較して充分に大きい数値（ＰMAX）となる。対象音の音数に関わらず係数Ｃは共通であるから、音数が多い場合にステップＳ18で算定される閾値ＴＨ1は、音数が少ない場合の閾値ＴＨ2よりも小さい。
【００３７】
いま、対象音に含まれる音数に拘わらず、図４の部分(b)の閾値ＴＨ2がステップＳ19にて固定的に適用されるとすれば、図４の部分(a)のように対象音の音数が多い場合（すなわち各ピークのピーク値が小さい場合）に、閾値ＴＨ2を上回るピークの個数が少なくなる。したがって、対象音に含まれる多数の音を高精度に検出できないという問題がある。一方、図４の部分(a)の閾値ＴＨ1がステップＳ19にて固定的に適用されるとすれば、図４の部分(b)のように対象音の音数が少ない場合に、偽ピークが閾値ＴＨ1を上回る可能性が高まるから、対象音に実際に含まれる音の基本周波数Ｆ0のみを検出する精度は低下する。以上のように、閾値ＴＨを固定値とした場合には、基本周波数Ｆ0の高精度な推定が制約される場合がある。
【００３８】
本実施形態における閾値ＴＨは対象音の音数に応じて変化する。すなわち、対象音の音数が多い場合には閾値ＴＨを低下させることで多数の音の基本周波数Ｆ0が検出され、対象音の音数が少ない場合には閾値ＴＨを上昇させることで偽ピークの検出の可能性が低減される。つまり、閾値ＴＨを固定値とした場合と比較して、基本周波数Ｆ0の推定の精度を向上させることが可能である。もっとも、閾値ＴＨの固定による精度の低下が問題とならないのであれば、確率密度関数Ｐに依存しない固定値を閾値ＴＨとした構成も採用される。
【００３９】
以上に説明したように、本実施形態においては、重み値ω[F]の修正（ステップＳ13）の結果として確率密度関数Ｐにおける真ピークと偽ピークとのピーク値の差異が拡大するから、閾値ＴＨを基準として両者が明確に区別される。したがって、対象音を構成する音の基本周波数Ｆ0を高精度に検出することができる。
【００４０】
ところで、重み値ω[F]は単位処理のたびに最適値に接近していく（真ピークが増大して偽ピークが縮小する）から、基本周波数Ｆ0の検出の精度を向上するという観点からすると、単位処理の回数は多いことが望ましい。しかしながら、毎回の単位処理に際してステップＳ13の重み値ω[F]の修正を実行するとすれば、関数推定部２０による処理が増大し、確率密度関数Ｐの確定までに長時間が必要となるという問題がある。本実施形態においては、図２の処理のうち重み値ω[F]の修正を伴なう単位処理は中間のＭ2回に限られ、最初のＭ1回と最後のＭ3回については重み値ω[F]の修正を経ずに単位処理が反復される。したがって、重み値ω[F]を修正する負荷の増大を抑制しながら、単位処理の総回数（Ｍ1＋Ｍ2＋Ｍ3）を充分に確保して基本周波数Ｆ0の検出の精度を高水準に維持することが可能である。
【００４１】
また、重み値ω[F]の修正を伴なう単位処理（ステップＳ14）の実行後に、重み値ω[F]の修正を経ない単位処理（ステップＳ16およびステップＳ17）を実行することで、重み値ω[F]における真ピークと偽ピークとのピーク値の差異はいっそう拡大する（すなわち、真ピークが増大して偽ピークが抑制される）。したがって、本実施形態によれば、ステップＳ15の直後にステップＳ18およびステップＳ19の処理が開始される構成と比較して、基本周波数Ｆ0を高精度に推定できるという利点がある。
【００４２】
さらに、本実施形態においては偽ピークであることが明白なピークがステップＳ12にて予め排除されるから、重み値ω[F]に現れる総てのピークが基本周波数Ｆ0の推定の候補とされる構成（例えば可能帯域Ｂの外側のピークも基本周波数Ｆ0の推定の候補とされる構成）と比較して、基本周波数Ｆ0を高精度に推定できる。また、ステップＳ12にて選択されなかったピークについてはステップＳ13における修正（正規分布Ｎ[F]の加算）の対象からも除外されるから、基本周波数Ｆの全範囲にわたって重み値ω[F]が修正される構成と比較して、ステップＳ13の処理の負荷が軽減されるという利点もある。
【００４３】
＜Ｃ：変形例＞
以上の各形態には様々な変形を加えることができる。具体的な変形の態様を例示すれば以下の通りである。なお、以下の各態様を適宜に組み合わせてもよい。
【００４４】
（１）変形例１  
ステップＳ13の開始前には少なくとも１回の単位処理で重み値ω[F]（ステップＳ13にて修正の対象となる重み値ω[F]）が算定されていれば足り（Ｍ1＝１）、ステップＳ10が複数回にわたって反復される必要は必ずしもない。また、以上の形態においては、重み値ω[F]の修正を伴なう単位処理（ステップＳ14）の反復後に重み値ω[F]の修正を経ない単位処理（ステップＳ16）が反復される構成を例示したが、ステップＳ16の単位処理は適宜に省略される（Ｍ3＝０）。さらに、重み値ω[F]の修正を伴なう単位処理（ステップＳ14）が複数回にわたって反復される必要はなく、ステップＳ13とステップＳ14とが１回だけ実行される構成（Ｍ2＝１）としてもよい。
【００４５】
（２）変形例２  
以上の形態においては基本周波数の確率密度関数Ｐのうち閾値ＴＨを上回る各ピークの基本周波数Ｆが対象音の基本周波数Ｆ0として抽出される構成を例示したが、確率密度関数Ｐから基本周波数Ｆ0を推定する方法は適宜に変更される。例えば、基本周波数の確率密度関数Ｐのうち重み値ω[F]が高い順番に計数して所定数のピークの基本周波数Ｆを対象音の基本周波数Ｆ0として特定してもよい。このように確率密度関数Ｐと閾値ＴＨとの比較が不要である構成においては、閾値算定部４２による閾値ＴＨの算定が省略される。また、以上の形態においては複数の基本周波数Ｆ0が推定される構成を例示したが、ひとつの基本周波数Ｆ0（例えば確率密度関数Ｐにおいて最大のピークが現れる基本周波数Ｆ）を推定する構成としてもよい。
【００４６】
（３）変形例３  
以上の形態においてはひとつのフレームの振幅スペクトルＳから推定された確率密度関数Ｐから対象音の基本周波数Ｆ0が逐次に推定される構成を例示したが、複数のフレームにわたる基本周波数の確率密度関数Ｐの時間的な変動を監視することで基本周波数Ｆ0を推定する構成としてもよい。確率密度関数Ｐの監視にはマルチエージェントモデルが好適に利用される。すなわち、音高特定部４０は、複数の自律的なエージェントの各々に確率密度関数Ｐの別個のピークを割り当てたうえで各ピークの経時的な変動を追跡させ、複数のエージェントのうち信頼度が高いエージェントの各ピークを基本周波数Ｆ0として出力する。各エージェントの具体的な挙動については特許文献１に詳述されている。もっとも、以上の形態においては、重み値ω[F]の修正（ステップＳ12）によって真ピークと偽ピークとの相違が拡大するから、マルチエージェントモデルを敢えて採用しなくても対象音の基本周波数Ｆ0を高精度に推定することが可能である。すなわち、以上の形態によれば、マルチエージェントモデルを省略することが可能であり、この場合には処理の負荷が軽減されるという利点がある。
【００４７】
（４）変形例４  
以上の形態においてはステップＳ13で正規分布Ｎ[F]が重み値ω[F]に加算される構成を例示したが、重み値ω[F]の修正の方法は任意である。例えば、重み値ω[F]の各ピークとひとつの数値（所定値）との加算や乗算によって修正値ωa[F]が生成される構成としてもよい。もっとも、重み値ω[F]の修正後の単位処理で真ピークと偽ピークとのピーク値の相違を有効に拡大させるためには、重み値ω[F]のピーク値を増加させることで修正値ωa[F]を生成する処理が好適に採用される。
【図面の簡単な説明】
【００４８】
【図１】本発明のひとつの形態に係る音高推定装置の機能的な構成を示すブロック図である。
【図２】関数推定部および音高特定部による処理の内容を示すフローチャートである。
【図３】重み値修正部による処理の内容を説明するための概念図である。
【図４】音高特定部による処理の内容を説明するための概念図である。
【符号の説明】
【００４９】
Ｄ……音高推定装置、１２……周波数分析部、１４……ＢＰＦ、２０……関数推定部、２２……重み値修正部、３０……記憶部、４０……音高特定部、４２……閾値算定部、４４……ピーク抽出部、Ｖ……音響信号、Ｓ……振幅スペクトル、Ｐ……基本周波数の確率密度関数、ＴＨ……閾値、Ｆ0……対象音を構成する音の基本周波数、ω[F]……重み値、ωa[F]……修正値。
【図１】
2008058885.tif 000003
【図２】
2008058885.tif 000004
【図３】
2008058885.tif 000005
【図４】
2008058885.tif 000006