(57)【要約】  音符を検出する方法、システム及び／又はコンピュータプログラムプロダクトは、オーディオ信号を受信し、長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成する。時間領域表現は複数個の周波数領域表現から生成される。複数個のエッジが時間領域表現内で検出され、音符が時間領域表現の特性に基づいて音符に対応するものとして複数個のエッジのうちの一つを選択することにより検出される。
2008518270.tif 000002
【特許請求の範囲】
【請求項１】
音符を検出する方法であって、
長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成するステップと、
前記複数個の周波数領域表現から時間領域表現を生成するステップと、
前記時間領域表現内で複数個のエッジを検出するステップと、
前記時間領域表現の特性に基づいて前記音符に対応するものとして前記複数個のエッジのうちの一つを選択することにより前記音符を検出するステップと、
を備える方法。
【請求項２】
複数個の周波数領域表現を生成するステップが、各組が異なるピッチと関連付けられている、長時間に亘る前記オーディオデータ信号の周波数領域表現の複数の組を生成するステップを備え、
時間領域表現を生成するステップが、前記各組から、各時間領域表現が前記異なるピッチのうちの一つと関連付けられている、複数個の時間領域表現を生成するステップを備え、
複数個のエッジを検出するステップが少なくとも一つの前記時間領域表現内で複数個のエッジを検出するステップを備える、請求項１に記載の方法。
【請求項３】
複数個のエッジを検出するステップが、少なくとも２個の前記時間領域表現内でエッジを検出するステップを備え、
音符を検出するステップが、
前記音符の基音に対応するものとして前記時間領域表現のうちの第１の時間領域表現内で前記エッジのうちの一つを特定するステップと、
前記音符の倍音に対応するものとして前記時間領域表現のうちの異なる時間領域表現内で前記エッジのうちの一つを特定するステップと、
を備える、請求項２に記載の方法。
【請求項４】
音符を検出するステップが、
共通の関連した出現時間を有する異なるピッチと関連付けられた時間領域表現からのエッジをグループ分けするステップと、
前記グループ分けされたエッジと関連付けられた強度を決定するステップと、
ピッチの変化に伴う前記決定された強度の変化によって定められる勾配を決定するステップと、
前記決定された勾配に基づいて音符を検出するステップと、
を備える、請求項２に記載の方法。
【請求項５】
音符を検出するステップが前記音符の長さを決定するステップをさらに備える、請求項２に記載の方法。
【請求項６】
前記長さが前記音符を生成する機械的な作用と関連付けられている、請求項５に記載の方法。
【請求項７】
前記機械的な作用が打鍵を含む、請求項６に記載の方法。
【請求項８】
長時間に亘って前記オーディオ信号の周波数領域表現の複数の組を生成するステップが、
異なるピッチに対応する前記周波数領域表現の各組と関連付けられた周波数域を提供するために不均一な周波数境界を画定するステップと、
周波数領域表現の各組が前記周波数域のうちの対応する一つに基づいている前記周波数領域表現の組のうちのそれぞれの組について長時間に亘って周波数領域表現を生成するステップと、
を備える、請求項２に記載の方法。
【請求項９】
不均一な周波数境界を画定するステップが、不均一な周波数境界を画定して、音符に対応する複数個の所定のピッチのそれぞれのための実質的に均一な分解能を提供するステップを備える、請求項８に記載の方法。
【請求項１０】
不均一な周波数境界を画定するステップが、不均一な周波数境界を画定して、音符の倍音に対応する複数個の所定のピッチのそれぞれのための周波数域を提供するステップをさらに備える、請求項９に記載の方法。
【請求項１１】
前記時間領域表現内で複数個のエッジを検出するステップが、
第１のエッジ検出データを提供するために第１のタイプのエッジ検出器を通じて前記時間領域表現を処理するステップと、
第２のエッジ検出データを提供するために前記第１のタイプのエッジ検出器とは異なる第２のタイプのエッジ検出器を通じて前記時間領域表現を処理するステップと、
を備え、
前記音符を検出するステップが、前記第１のエッジ検出データ及び前記第２のエッジ検出データに基づいて、前記音符に対応するものとして前記複数個のエッジのうちの一つを選択するステップを含む、請求項２に記載の方法。
【請求項１２】
前記音符を検出するステップが、前記第１のエッジ検出データにおいて検出されたエッジと前記第２のエッジ検出データにおいて検出されたエッジとの間の対応関係に基づいて、エッジが前記音符に対応する可能性を増大させるステップを備える、請求項１１に記載の方法。
【請求項１３】
前記第１のタイプのエッジ検出器が、前記時間領域表現の一つにおけるエッジのエネルギーレベルに応答し、音符の勾配特性に合わせられ、前記第２のタイプのエッジ検出器が、前記時間領域表現の一つにおいてエッジの形状に応答するように正規化される、請求項１２に記載の方法。
【請求項１４】
前記第１のタイプのエッジ検出器が音符の範囲を表す勾配特性に合わせられ、
複数個のエッジを検出するステップが共通の勾配特性を使用して前記時間領域表現のうちの異なる時間領域表現内で複数個のエッジを検出するステップを備える、請求項１３に記載の方法。
【請求項１５】
前記第１のタイプのエッジ検出器が複数個の勾配特性に合わせられ、複数個の勾配特性のうちのそれぞれが異なる音符を表し、
複数個のエッジを検出するステップが前記複数個の勾配特性のうちの対応する勾配特性を使用して前記時間領域表現のうちの異なる時間領域表現内で複数個のエッジを検出するステップを備える、請求項１３に記載の方法。
【請求項１６】
複数個のエッジを検出するステップが、検出されたエッジを前記検出されたエッジの開始とピークの中間にある点に対応する時間と関連付けるステップを備える、請求項１３に記載の方法。
【請求項１７】
前記時間領域表現内で複数個のエッジを検出するステップが、第３のエッジ検出データを提供するために、前記第１のタイプのエッジ検出器に対応するが、前記第１のタイプのエッジ検出器より高いエネルギーレベル閾値に基づいてエッジを検出するように、より長時間の解析ウィンドウが関連付けられている、第３のエッジ検出器を通じて前記時間領域表現を処理するステップを備え、
前記音符を検出するステップが、前記第１のエッジ検出データ中で検出されたエッジと前記第３のエッジ検出データ中で検出されたエッジとの間の対応関係に基づいて、エッジが前記音符に対応する可能性を増大させるステップを備える、
請求項１３に記載の方法。
【請求項１８】
前記より長時間の解析ウィンドウが前記音符を生成する楽器と関連付けられた特性的な長さと少なくとも同じ長さであるように選択される、請求項１７に記載の方法。
【請求項１９】
前記より長時間の解析ウィンドウが３００ミリ秒を有している、請求項１８に記載の方法。
【請求項２０】
複数個のエッジを検出するステップが、
前記時間領域表現のうちのそれぞれの時間領域表現に基づいてエッジ検出信号を受信するステップと、
前記エッジ検出信号中のエッジ信号の強度を検出するステップと、
前記エッジ信号の前記強度が閾値規準を満たさないならば、エッジの指標として前記エッジ信号を考慮しないステップと、
を含む、請求項２に記載の方法。
【請求項２１】
前記閾値規準が前記音符を生成する楽器と関連付けられた最小強度に対応する、請求項２０に記載の方法。
【請求項２２】
音符を検出するステップが、
前記時間領域表現のうちの一つにおいて前記検出された複数個のエッジのうちの一つと関連付けられた期間に前記時間領域表現のうちの前記一つと関連付けられた特性化パラメータを計算するステップと、
前記時間領域表現の前記計算された特性化パラメータに基づいて前記音符を検出するステップと、
を備える、請求項２に記載の方法。
【請求項２３】
前記時間領域表現のうちの一つにおいて前記検出された複数個のエッジの内の一つと関連付けられた期間に前記時間領域表現のうちの前記一つと関連付けられたパラメータを特性化するステップが、前記時間領域表現のうちの前記一つの滑らかさの尺度を計算するステップを含む、請求項２２に記載の方法。
【請求項２４】
滑らかさの尺度を計算するステップが、
前記期間の少なくとも一部の間に前記時間領域表現のうちの前記一つの対数を計算するステップと、
前記時間領域表現のうちの前記一つの前記対数の移動平均関数を計算するステップと、
前記滑らかさの尺度を提供するために前記計算された対数と移動平均関数を比較するステップと、
を備える、請求項２３に記載の方法。
【請求項２５】
前記計算された対数と移動平均関数を比較するステップが、
前記対数と前記移動平均関数との間の差を決定するステップと、
前記滑らかさの尺度を提供するために計算ウィンドウに亘って前記決定された差を加算するステップと、
を備える、請求項２４に記載の方法。
【請求項２６】
計算された対数と移動平均関数を比較するステップは、前記検出された複数個のエッジのうちの前記一つに対応する対数において特定されたピークの周りのカウント時間ウィンドウ内での対数の勾配方向変化の個数を決定するステップをさらに備える、請求項２５に記載の方法。
【請求項２７】
前記時間領域表現のうちの前記一つと関連付けられた特性化パラメータが、閾値規準を満たす前記滑らかさの尺度のランレングスと、前記時間領域表現のうちの前記一つの最大強度に対応するピーク点で始まる閾値規準を満たす前記滑らかさの尺度のピークランレングスと、最大強度と、長さと、波形形状特性と、最大強度と関連付けられた時間と、及び／又は、決定された最小ピーク時間強度値から決定された最大ピーク時間強度値への相対的な強度とのうちの少なくとも１つを含む、請求項２２に記載の方法。
【請求項２８】
音符を検出するステップが、前記検出された複数のエッジのうちの一つと関連付けられた期間に前記時間領域表現のうちの前記一つに対応する前記エッジ検出信号のうちの一つと関連付けられた特性化パラメータを計算するステップをさらに備え、
前記音符を検出するステップが前記エッジ検出信号の前記計算された特性化パラメータに基づいて前記音符を検出するステップをさらに備える、
請求項２７に記載の方法。
【請求項２９】
前記時間領域表現のうちの一つに対応する前記エッジ検出信号のうちの一つと関連付けられた前記特性化パラメータが、最大強度と、各方向における前記最大強度時間からの第１の所定の時間オフセットにおける強度と、各方向における前記最大強度時間からの前記第１の所定の時間オフセットとは異なる第２の所定の時間オフセットにおける強度と、及び／又は、勾配方向に変化がない各方向におけるピーク強度点からの前記エッジ検出信号の幅とのうちの少なくとも一つを含む、請求項２８に記載の方法。
【請求項３０】
より高い強度が関連付けられた前記検出されたエッジからずれた最小時間未満に前記第２のエッジ検出データ中に隣接エッジが検出されないとき、及び／又は、前記検出されたエッジと関連付けられた幅が閾値規準を満たさないとき、前記音符を検出するステップが検出されたエッジを前記第２のエッジ検出データ中に維持するステップを備える、請求項１１に記載の方法。
【請求項３１】
前記音符を検出するステップが、
前記第１のエッジ検出データ中の検出エッジが前記第２のエッジ検出データ中に維持された検出エッジと対応するかどうかを決定するステップと、
前記第１のエッジ検出データ中の検出エッジが前記第２のエッジ検出データ中に維持された検出エッジに対応すると決定されたとき、前記第１のエッジ検出データ中の前記検出されたエッジの方が前記音符に対応している可能性が高いと決定するステップと、
を備える、請求項３０に記載の方法。
【請求項３２】
前記音符を検出するステップが、検出されたエッジに対し、
前記検出されたエッジとほぼ同時に出現する前記複数個の検出されたエッジのうちの別の検出されたエッジが、前記検出されたエッジの前記時間領域表現と関連付けられたピッチのブリードと関連付けられたピッチに対応するかどうかを決定するステップと、
前記複数個の検出されたエッジのうちの前記別の検出されたエッジが前記検出されたエッジの前記時間領域表現と関連付けられた前記ピッチのブリードと関連付けられるべきであると決定されるならば、前記検出されたエッジと前記複数個の検出されたエッジのうちの前記別の検出されたエッジとの両者のうちの強度が低い方を廃棄するステップと、
を備える、請求項２に記載の方法。
【請求項３３】
前記音符を検出するステップが、検出されたエッジに対し、
前記検出されたエッジと共通の関連した出現時間を有する前記複数の検出されたエッジのうちのその他の検出されたエッジが前記検出されたエッジの前記時間領域表現と関連付けられた前記ピッチの倍音に対応するかどうかを決定するステップを備え、
前記複数の検出されたエッジのうちのその他の検出されたエッジが倍音に対応すると決定されたときに、前記検出されたエッジが前記音符に対応する可能性が高いと決定するステップとを備え、
前記複数の検出されたエッジのうちのその他の検出されたエッジの中に倍音に対応するエッジがないと決定されたときに、前記検出されたエッジが前記音符に対応する可能性が低いと決定するステップと、前記検出されたエッジが前記複数個の検出されたエッジのうちの別の検出されたエッジの倍音に対応すると決定されたときに、前記検出されたエッジが前記音符に対応する可能性が低いと決定するステップと、のうちの少なくとも１つのステップをさらに備える、
請求項２に記載の方法。
【請求項３４】
前記複数の検出されたエッジのうちのその他の検出されたエッジが前記検出されたエッジの前記時間領域表現と関連付けられた前記ピッチの倍音に対応するかどうかを決定するステップが、
前記複数個の検出されたエッジのうちのその他の検出されたエッジを、前記検出されたエッジと共通の関連した出現時間を有する異なるピッチと関連付けられた時間領域表現から、グループ分けするステップと、
前記グループ分けされたエッジと関連付けられた強度を決定するステップと、
ピッチの変化に伴う前記決定された強度の変化によって定められる勾配を決定するステップと、
前記複数個の検出されたエッジのうちの前記その他の検出されたエッジが前記決定された勾配に基づいて前記検出されたエッジの倍音に対応するかどうかを決定するステップと、
をさらに備える、請求項３３に記載の方法。
【請求項３５】
前記音符を検出するステップが、前記検出された複数個のエッジのうちの前記一つに対し、
前記検出されたエッジが、前記時間領域表現のうちの前記一つと関連付けられた前記特性化パラメータに基づいて、音符ではなくノイズに対応するかどうかを決定するステップと、
ノイズに対応すると決定されたときに、前記検出されたエッジを廃棄するステップと、
を備える、請求項２７に記載の方法。
【請求項３６】
前記検出されたエッジがノイズに対応するかどうかを決定するステップが、
前記時間領域表現のうちの前記一つと関連付けられた前記特性化パラメータが対応する閾値規準を満たすかどうかを決定するステップと、
それぞれの特性化パラメータに割り当てられた重み付け値に基づいて、対応する閾値規準を満たすことが決定された前記時間領域表現のうちの前記一つと関連付けられた前記特性化パラメータを重み付けするステップと、
前記重み付けされた特性化パラメータを加算するステップと、
前記加算され重み付けされた特性化パラメータが閾値規準を満たさないときに、前記検出されたエッジがノイズに対応すると決定するステップと、
を備える、請求項３５に記載の方法。
【請求項３７】
前記検出されたエッジがノイズに対応するかどうかを決定するステップが、周知の音符から生成された基準特性化パラメータに基づいて生成されたルール決定木に基づいて、前記検出されたエッジがノイズに対応するかどうかを決定するステップを備える、請求項３４に記載の方法。
【請求項３８】
前記音符を検出するステップが、
維持された検出エッジのピーク強度を同じ時間領域表現からの隣接する廃棄された検出エッジのピーク強度と比較するステップと、
前記隣接する廃棄された検出エッジが対応する維持された検出エッジより大きな強度を有するならば、前記隣接する廃棄された検出エッジを維持するステップと、
をさらに備える、請求項３５に記載の方法。
【請求項３９】
前記音符を検出するステップが、
同じ時間領域表現内の前記検出されたエッジのそれぞれの出現時間及び長さを決定するステップと、
前記検出されたエッジの前記出現時間及び長さに基づいて検出されたエッジの重複を検出するステップと、
前記重複する検出されたエッジの中で音符に対応する可能性が高い方を決定するステップと、
音符に対応する可能性が高くない方の重複するエッジを廃棄するステップと、
をさらに備える、請求項２に記載の方法。
【請求項４０】
前記音符を検出するステップが、
前記時間領域表現のうちの一つにおいて前記検出された複数個のエッジのうちの一つと関連付けられた期間に前記時間領域表現のうちの前記一つと関連付けられた特性化パラメータを決定するステップと、
前記決定された特性化パラメータのうちの一つが前記音符を生成する機械的な作用の周知の特性に基づく関連付けられた閾値規準を満たさないならば、前記検出された複数個のエッジのうちの前記一つを廃棄するステップと、
をさらに備える、請求項２に記載の方法。
【請求項４１】
前記周知の特性がストライク速度を含み、
特性化パラメータを決定するステップが、
前記期間に前記時間領域表現のうちの前記一つと関連付けられたピーク強度を測定するステップと、
前記測定されたピーク強度に基づいて、前記音符を生成する前記機械的な作用の推定ストライク速度を決定するステップと、
を備え、
前記検出された複数個のエッジのうちの前記一つを廃棄するステップが、前記推定ストライク速度がゼロ未満であるならば、前記検出された複数個のエッジのうちの前記一つを廃棄するステップを備える、
請求項４０に記載の方法。
【請求項４２】
前記周知の特性が前記音符を生成する楽器のピッチ範囲を含み、
特性化パラメータを決定するステップが前記時間領域表現のうちの前記一つと関連付けられたピッチを決定するステップを備え、
前記検出された複数個のエッジのうちの前記一つを廃棄するステップが、前記決定されたピッチが前記ピッチ範囲の外側にあるならば、前記検出された複数個のエッジのうちの前記一つを廃棄するステップを備える、
請求項４０に記載の方法。
【請求項４３】
前記音符を検出するステップが、あらゆるその他のエッジ廃棄動作の後に続いて、倍音に対応する検出されたエッジを廃棄するステップをさらに備える、請求項３３に記載の方法。
【請求項４４】
音符を検出するステップが楽譜と関連付けられた複数個の音符を検出するステップを備え、
前記楽譜のＭＩＤＩファイルを生成するステップをさらに備える、請求項２に記載の方法。
【請求項４５】
前記ＭＩＤＩファイル内の前記音符のそれぞれが、長さ、音符ストライク速度及び／又は音符リリース速度のうちの少なくとも１つと、開始時間と、ピッチとによって特徴付けられる、請求項４４に記載の方法。
【請求項４６】
前記音符ストライク速度が前記音符に対応する検出されたエッジのピーク強度値に基づき、前記音符リリース速度が前記音符ストライク速度及び前記長さに基づく、請求項４５に記載の方法。
【請求項４７】
複数個の周波数領域表現を生成するステップが複数個の高速フーリエ変換（ＦＦＴ）を生成するステップを備える、請求項２に記載の方法。
【請求項４８】
前記ＦＦＴが少なくとも約１０ミリ秒の分解能を有する、請求項４７に記載の方法。
【請求項４９】
周波数領域のための選択された時間ウィンドウに対し、エッジが検出された前記ＦＦＴの期待される音符と関連付けられた範囲が、前記音符の開始時間及び／又は長さをさらに評価するために、少なくとも約１ミリ秒の分解能を有するＦＦＴに基づいてさらに評価される、請求項４８に記載の方法。
【請求項５０】
音符を検出するシステムであって、
長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成する周波数領域モジュールと、
前記複数個の周波数領域表現から時間領域表現を生成する時間領域モジュールと、
前記時間領域表現内で複数個のエッジを検出するエッジ検出モジュールと、
前記時間領域表現の特性に基づいて前記音符に対応するものとして前記複数個のエッジのうちの一つを選択することにより前記音符を検出する音符検出モジュールと、
を備えるシステム。
【請求項５１】
コンピュータ読み取り可能なプログラムコードが内部に具現化されたコンピュータ読み取り可能な媒体を備える、音符を検出するコンピュータプログラムプロダクトであって、
前記コンピュータ読み取り可能なプログラムコードが、
長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成するように構成されたコンピュータ読み取り可能なプログラムコードと、
前記複数個の周波数領域表現から時間領域表現を生成するように構成されたコンピュータ読み取り可能なプログラムコードと、
前記時間領域表現内で複数個のエッジを検出するように構成されたコンピュータ読み取り可能なプログラムコードと、
前記時間領域表現の特性に基づいて前記音符に対応するものとして前記複数個のエッジのうちの一つを選択することにより前記音符を検出するように構成されたコンピュータ読み取り可能なプログラムコードと、
を備える、コンピュータプログラムプロダクト。
【請求項５２】
音符を検出する方法であって、
各組が異なるピッチと関連付けられている、長時間に亘るオーディオ信号の周波数領域表現の複数の組を生成するステップと、
前記周波数領域表現の組に基づいて、各候補音符がピッチと関連付けられている複数個の候補音符を特定するステップと、
共通の関連した出現時間を有する異なるピッチをもつ前記候補音符をグループ分けするステップと、
前記グループ分けされた候補音符と関連付けられた強度を決定するステップと、
ピッチの変化に伴う前記決定された強度の変化によって定められた勾配を決定するステップと、
前記決定された勾配に基づいて前記音符を検出するステップと、
を備える方法。
【請求項５３】
音符を検出する方法であって、
異なるピッチに対応する複数個の周波数範囲を提供するために不均一な周波数境界を画定するステップと、
各組が前記異なるピッチのうちの一つのピッチと関連付けられている、長時間に亘るオーディオデータ信号の周波数領域表現の複数の組を生成するステップと、
前記周波数領域表現の複数の組に基づいて前記音符を検出するステップと、
を備える方法。
【請求項５４】
不均一な周波数境界を画定するステップが、音符に対応する複数個の所定のピッチ毎に実質的に均一な分解能を提供するために不均一な周波数境界を画定するステップを備える、請求項５３に記載の方法。
【請求項５５】
不均一な周波数境界を画定するステップが、音符の倍音に対応する複数個の所定のピッチ毎に周波数範囲を提供するために不均一な周波数境界を画定するステップをさらに備える、請求項５４に記載の方法。
【請求項５６】
信号エッジを検出する方法であって、
前記信号エッジ及びノイズによって生成されたエッジを含むデータ信号を受信するステップと、
第１のエッジ検出データを提供するために第１のタイプのエッジ検出器を通じて前記データ信号を処理するステップと、
第２のエッジ検出データを提供するために、前記第１のタイプのエッジ検出器とは異なる、第２のタイプのエッジ検出器を通じて前記データ信号を処理するステップと、
前記第１のエッジ検出データ及び前記第２のエッジ検出データに基づいて前記信号エッジとして前記データ信号中の前記エッジのうちの一つを選択するステップと、
を備える方法。
【請求項５７】
前記エッジのうちの一つを選択するステップが、前記第１のエッジ検出データ中で検出されたエッジと前記第２のエッジ検出データ中で検出されたエッジとの間の対応関係に基づいて、エッジが前記信号エッジに対応する可能性を増大させるステップを備える、請求項５６に記載の方法。
【請求項５８】
前記第１のタイプのエッジ検出器が、前記データ信号中のエッジのエネルギーレベルに応答し、前記信号エッジの勾配特性に合わせられ、前記第２のタイプのエッジ検出器が前記データ信号中で検出されたエッジの形状に応答するように正規化される、請求項５７に記載の方法。
【請求項５９】
前記信号エッジが複数個の異なるタイプの信号エッジのうちの一つであり、
前記第１のタイプのエッジ検出器が前記異なるタイプの信号エッジを表す共通勾配特性に合わせられ、
前記エッジのうちの一つを選択するステップが、前記共通勾配特性を使用して前記信号エッジとしてエッジのうちの一つを選択するステップを備える、
請求項５８に記載の方法。
【請求項６０】
前記信号エッジが複数個の異なるタイプの信号エッジのうちの一つであり、
前記第１のタイプのエッジ検出器が、各勾配特性が異なるタイプの信号エッジを表す複数個の勾配特性に合わせられ、
前記エッジのうちの一つを選択するステップが、前記複数個の勾配特性のうちの対応する勾配特性を使用して前記信号エッジとして複数個のエッジを選択するステップを備える、
請求項５８に記載の方法。
【請求項６１】
第３のエッジ検出データを提供するために、前記第１のタイプのエッジ検出器に対応するが、前記第１のタイプのエッジ検出器より高いエネルギーレベル閾値に基づいてエッジを検出するように、より長時間の解析ウィンドウが関連付けられている第３のエッジ検出器を通じて前記データ信号を処理するステップをさらに備え、
前記エッジのうちの一つを選択するステップが、前記第１のエッジ検出データ中で検出されたエッジと前記第３のエッジ検出データ中で検出されたエッジとの間の対応関係に基づいて、エッジが前記信号エッジに対応する可能性を増大させるステップを備える、
請求項５８に記載の方法。
【請求項６２】
前記より長時間の解析ウィンドウが前記信号エッジと関連付けられた特性長さと少なくとも同じ長さであるように選択される、請求項６１に記載の方法。
【請求項６３】
音符を検出する方法であって、
長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成するステップと、
前記複数個の周波数領域表現から時間領域表現を生成するステップと、
前記時間領域表現の滑らかさの尺度を計算するステップと、
前記滑らかさの尺度に基づいて前記音符を検出するステップと、
を備える方法。
【請求項６４】
滑らかさの尺度を計算するステップが、
前記時間領域表現の対数を計算するステップと、
前記時間領域表現の前記対数の移動平均関数を計算するステップと、
前記滑らかさの尺度を提供するために前記計算された対数と移動平均関数を比較するステップと、
を備える、請求項６３に記載の方法。
【請求項６５】
前記計算された対数と移動平均関数を比較するステップが、
前記対数と前記移動平均関数との間の差を決定するステップと、
前記滑らかさの尺度を提供するために、計算ウィンドウに亘って前記決定された差を加算するステップと、
を備える、請求項６４に記載の方法。
【請求項６６】
前記計算された対数と移動平均関数を比較するステップが、前記対数中の特定されたピークの周りのカウント時間ウィンドウ内の前記対数の勾配方向変化の個数を決定するステップをさらに備える、請求項６５に記載の方法。
【請求項６７】
音符を検出する方法であって、
長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成するステップと、
前記複数個の周波数領域表現から時間領域表現を生成するステップと、
受信されたオーディオ信号に基づいてエッジ検出器から出力信号を生成するステップと、
前記時間領域表現と関連付けられた特性化パラメータを計算するステップと、
前記エッジ検出器からの前記出力信号と関連付けられた特性化パラメータを計算するステップと、
前記時間領域表現の前記計算された特性化パラメータと前記エッジ検出器からの前記出力信号とに基づいて前記音符を検出するステップと、
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ信号処理に関し、特に、データ信号中の着目している信号の検出に関する。
【背景技術】
【０００２】
エンターテイメント業界では、映画製作の様々な態様で現実感のあるコンピュータグラフィックス（ＣＧ）を使用することが知られている。視覚領域内の自然な挙動のための多数のアルゴリズムが映画のため開発されている。たとえば、ジュラシック・パークのような映画では、恐竜がどのように見えるか、筋肉が骨格に関連してどのように動くか、及び、光が皮膚からどのように反射されるか、を決定するためにアルゴリズムが開発された。しかし、オーディオ、特に音楽の分野では、類似したタイプの問題は比較的取り扱われないままにされている。必要なステップは、音楽演奏中に起こる事柄を、演奏の細かいニュアンスが再現されることを可能にする正確な測定量に正しく採譜するための能力である。
【０００３】
音楽を特性化することは特に難しい問題であろう。典型的に、波形オーディオ（ＷＡＶ）フォーマットから楽器デジタルインターフェイス（ＭＩＤＩ）フォーマットへの、音楽の「自動採譜」を提供することが試みる様々なアプローチがなされている。コンピュータ音楽家は、一般に、デジタル化された波形の歌曲を対応するＭＩＤＩフォーマットの音符に変換することを「ＷＡＶ−ｔｏ−ＭＩＤＩ」と呼ぶ。録音物のソースはアナログでもデジタルでもよく、変換プロセスは、レコード、テープ、ＣＤ、ＭＰ３ファイルなどから始まる。従来の音楽家は、一般に、このような歌曲の変換を「自動採譜」と呼ぶ。手動採譜技術は、典型的に、たとえば、即興ジャズ演奏を楽譜に書くため、録音物を繰り返し聴き、自分が聴き取った音符を楽譜上に注意深く写し取る熟練した音楽家によって使用される。
【０００４】
多数の学術団体が非営利的な状況において一部の問題を考察している。その上、様々な企業が、ＷＡＶ−ｔｏ−ＭＩＤＩ復号化用のソフトウェア、たとえば、Ｄｉｇｉｔａｌ  Ｅａｒ（商標）、ｉｎｔｅｌｌｉＳｃｏｒｅ（商標）、Ａｍａｚｉｎｇ  ＭＩＤＩ、ＡＫｏｆｆ（商標）、ＭＢ  ＴＲＡＮＳ（商標）及びＴｒａｎｓｃｒｉｂｅ！（商標）を提供する。これらの製品は、一般に、音楽家が記録物から簡単な楽譜を作成することを助けるために作曲家及びアマチュアに焦点を合わせ、音符ピッチ及び長さを決定する能力を含む。しかし、これらの知られている製品は、一般に、同時に２個以上の音符を処理する際に信頼性が低い。その上、これらの製品は、一般に、音楽の特性の全範囲を扱えない。たとえば、ピアノの場合、音符特性は、ピッチと、長さと、ストライク速度及びリリース速度と、キーアングルと、ペダルとを含む。自動採譜に関する学術研究もまた、たとえば、フィンランドのタンベレ工科大学において行われている。自動採譜に関する知られている研究は、一般に、音楽演奏の記録保存特性をもたらしていない。
【０００５】
レコード会社の保管庫及び個人コレクションには１００年に亘る記録物が存在する。数多くの偉大な記録物はそれらを品質不良にさせた何らかの方法で損なわれているので、決してリリースされることがない。生演奏は、しばしば、バックグラウンドノイズ又は調子はずれのピアノ弦のため、商業的にリリースできない場合が多い。一昔前の数多くのアナログテープは、テープバインダを作る際に使用される化学式のために劣化している。アナログテープもまた、カセットレコーダのような低品質装置で記録されたので、決してリリースされることがない。同様に、数多くの望ましいスタジオ記録物も、それらの記録セッション中の楽器又は設備の問題に起因して、決してリリースされることがない。
【０００６】
レコーディング業界は、１９８０年代初頭のＣＤに続く、次の民生フォーマットのセット、すなわち、高品位サラウンドサウンドに着手している。新しいフォーマットは、ＤＶＤ−オーディオ（ＤＶＤ−Ａ）ビデオ及びスーパーオーディオＣＤ（ＳＡＣＤ）を含む。今日使用されているホームサラウンドサウンドシステムは３３００万台であり、この台数は高品位ＴＶと共に急速に増加している。レコード業界における課題は、旧式オーディオ素材を再リリースのための最新式サウンドにすることである。このような変換の候補は、特に、１９５５年以前のモノラル記録物、マルチチャンネルマスターを伴わないステレオ記録物、一般的に粗悪なテープバインダ形成に起因して今では劣化している１９７０年台及び１９８０年代のマスターテープ、及び、サラウンドサウンドＤＶＤとして発行された、ビデオキャプチャーと組み合わされたこれらのうちの何れかを含む。
【０００７】
別の音楽関連レコーディング分野は、印刷された楽譜からＭＩＤＩを作成する。たとえば、テキスト文書用の光学式文字読み取り装置（ＯＣＲ）のように、音楽家が楽譜をスキャナに置き、走査された画像に基づいてその楽譜を音楽走査アプリケーションソフトウェアによってデジタル化されたフォーマットに変換させることを可能にするアプリケーションソフトウェアを提供することが知られている。同様にアプリケーション記譜ソフトウェアはＭＩＤＩファイルを印刷された楽譜に変換できることが知られている。
【０００８】
ＭＩＤＩからＷＡＶへの変換用のアプリケーションソフトウェアも知られている。パーソナルコンピュータ上のメディアプレーヤーは、典型的に、ＭＩＤＩファイルを演奏する。使用するサンプル（アコースティック楽器のデジタル記録物の断片）が優れているほど、再生が典型的により良好に聞こえる。ＭＩＤＩは、当初、少なくとも部分的には、たとえば、Ｋｏｒｇ、Ｋｕｒｚｗｅｉｌ、Ｒｏｌａｎｄ、及び、Ｙａｍａｈａから入手可能な（弦又はハンマーをもたない）ＭＩＤＩ電子ピアノのような電子楽器に、演奏細部を記述するために設計された。
【発明の開示】
【０００９】
本発明の一部の実施形態は、オーディオ信号を受信し、長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成する、音符を検出する方法、システム、及び／又は、コンピュータプログラムプロダクトを提供する。時間領域表現は複数個の周波数領域表現から生成される。複数個のエッジが時間領域表現内で検出され、音符が時間領域表現の特性に基づいて音符に対応するものとして複数個のエッジのうちの一つを選択することにより検出される。
【００１０】
本発明のその他の実施形態では、音符を検出する方法、システム、及び／又は、コンピュータプログラムプロダクトは、オーディオ信号を受信し、長時間に亘ってオーディオ信号の周波数領域表現の複数の組を生成し、それぞれの組が異なるピッチと関連付けられている。複数個の候補音符は、周波数領域表現の組に基づいて特定され、候補音符のそれぞれがピッチと関連付けられている。共通の関連した出現時間を有する異なるピッチをもつ候補音符の集まりはグループ分けされ、グループ分けされた候補音符に関連付けられた強度が決定される。ピッチの変化に伴う決定された強度の変化によって定められる勾配が決定され、音符が決定された勾配に基づいて検出される。
【００１１】
本発明のさらなる実施形態では、音符を検出する方法は、オーディオ信号を受信するステップを含む。不均一な周波数境界は、異なるピッチに対応する複数個の周波数範囲を提供するため定義される。長時間に亘ってオーディオ信号の周波数領域表現の複数の組が生成され、それぞれの組が異なるピッチのうちの一つと関連付けられている。音符は周波数領域表現の複数の組に基づいて検出される。
【００１２】
本発明のさらに別の実施形態では、信号エッジを検出する方法、システム、及び／又は、コンピュータプログラムプロダクトは、信号エッジ及びノイズ生成エッジを含むデータ信号を受信する。データ信号は、第１のエッジ検出データを提供するために第１のタイプのエッジ検出器を通じて処理され、第２のエッジ検出データを提供するために、第１のタイプのエッジ検出器とは異なる、第２のタイプのエッジ検出器を通じて処理される。データ信号中のエッジのうちの一つは、第１のエッジ検出データ及び第２のエッジ検出データに基づいて信号エッジとして選択される。第３のエッジ検出器がさらに利用されることがある。
【００１３】
本発明のさらなる実施形態では、音符を検出する方法、システム、及び／又は、コンピュータプログラムプロダクトは、オーディオ信号を受信し、長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成する。時間領域表現は複数個の周波数領域表現から生成される。時間領域表現の滑らかさの尺度が計算され、音符が滑らかさの尺度に基づいて検出される。
【００１４】
本発明の別の実施形態では、音符を検出する方法、システム、及び／又は、コンピュータプログラムプロダクトは、オーディオ信号を受信し、長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成する。時間領域表現は複数個の周波数領域表現から生成される。出力信号が、受信されたオーディオ信号に基づいてエッジ検出器からさらに生成される。時間領域表現と関連付けられた特性化パラメータが計算され、エッジ検出器からの出力信号と関連付けられた特性化パラメータが計算される。音符は、時間領域表現の計算された特性化パラメータ及びエッジ検出器からの出力信号の計算された特性化パラメータに基づいて検出される。
【発明を実施するための最良の形態】
【００１５】
本発明は、次に、本発明の例示的な実施形態が示されている添付図面を参照して以下で完全に説明されている。しかし、本発明は、数多くの異なる形でも具現化され、本書に記載された実施形態に限定されるように解釈されるべきではなく、むしろ、これらの実施形態は、本開示内容が十分かつ完全になり、本発明の範囲を当業者に十分に伝えるように掲載されている。類似した番号は全体を通じて類似した要素を参照している。本明細書で使用されているように、用語「及び／又は」は、一つ以上の関連した列挙された項目のありとあらゆる組み合わせを含む。
【００１６】
本明細書で使用される術語は、特定の実施形態を記述することのみを目的とし、本発明の限定となることが意図されていない。本明細書において使用されているように、単数形「ａ」、「ａｎ」及び「ｔｈｅ」は、前後関係が明瞭に他を示さない限り、複数形もまた含むことが意図されている。用語「備える（ｃｏｍｐｒｉｓｅｓ）」及び／又は「備えている（ｃｏｍｐｒｉｓｉｎｇ）」は、本明細書において使用されるとき、記載された特長、整数、ステップ、動作、要素、及び／又は、コンポーネントの存在を明示するが、一つ以上のその他の特長、整数、ステップ、動作、要素、コンポーネント、及び／又は、それらのグループの存在又は追加を排除しないことがさらに理解される。
【００１７】
特に断らない限り、本明細書で使用される（技術用語及び科学用語を含む）すべての用語は、本発明が属する分野における当業者によって一般に理解されている意味と同じ意味をもつ。一般に使用されている辞書に定義されているような用語は、当分野の文脈におけるそれらの意味と矛盾しない意味をもつように解釈されるべきであり、本書において明白に定義されない限り、理想化された、又は、過度に形式的な意味で解釈されないことがさらに理解される。
【００１８】
当業者によって認められるように、本発明は、方法、データ処理システム、及び／又は、コンピュータプログラムプロダクトとして具現化される。したがって、本発明は、本明細書ではすべてが広く「回路」又は「モジュール」のように呼ばれている、完全にハードウェアによる実施形態、完全にソフトウェアによる実施形態、又は、ソフトウェアの態様とハードウェアの態様を組み合わせる実施形態の形をしてもよい。さらに、本発明は、コンピュータ使用可能な記憶媒体上の、媒体に埋め込まれたコンピュータ使用可能なコードを有するコンピュータプログラムプロダクトの形をしている。ハードディスク、ＣＤ−ＲＯＭ、光学式記憶装置、インターネット若しくはイントラネットをサポートする媒体のような伝送媒体、又は、磁気記憶装置を含む適当なコンピュータ読取可能な媒体が利用される。
【００１９】
本発明の動作を実行するコンピュータプログラムコードはＪＡＶＡ（登録商標）７、Ｓｍａｌｌｔａｌｋ又はＣ＋＋のようなオブジェクト指向プログラミング言語で記述される。しかし、本発明の動作を実行するコンピュータプログラムコードは、Ｃプログラミング言語のような従来型の手続き型プログラミング言語で記述してもよく、ＶｉｓｕａｌＢａｓｉｃのようなビジュアル指向プログラミング環境で記述してもよい。ＰＨＰ、Ｐｙｔｈｏｎ、ＸＵＬなどのような動的スクリプト言語もまた使用されてもよい。本発明の動作を実行するコンピュータプログラムコードを提供するためにプログラミング言語の組み合わせを使用することも可能である。
【００２０】
プログラムコードは、スタンドアローンソフトウェアパッケージとして、完全に又は部分的にユーザのコンピュータ上で動き、部分的にユーザのコンピュータ上とリモートコンピュータ上とで動き、又は、完全にリモートコンピュータ上で動く。後者のシナリオでは、リモートコンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくはワイド・エリアネット・ワーク（ＷＡＮ）を介してユーザのコンピュータに接続され、又は、（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータへの接続が行われてもよい。
【００２１】
本発明は、本発明の一部の実施形態による方法、システム、及び／又は、コンピュータプログラムプロダクトのフローチャート図及び／又はブロック図を参照して、ある程度後述される。説明図の各ブロック、及び、ブロックの組み合わせがコンピュータプログラム命令によって実施され得ることが理解される。これらのコンピュータプログラム命令は、コンピュータ又はその他のプログラマブルデータ処理装置のプロセッサによって実行する命令がブロック又は複数のブロックにおいて指定された機能／作用を実施する手段を作成するような機械を製造するために、汎用コンピュータ、専用コンピュータ、又は、その他のプログラマブルデータ処理装置のプロセッサに供給されてもよい。
【００２２】
これらのコンピュータプログラム命令は、コンピュータ読み取り可能なメモリに格納された命令がブロック又は複数のブロックにおいて指定された機能／作用を実施する命令手段を含む製品を生成するように、コンピュータ又はその他のプログラマブルデータ処理装置に特定の方法で機能するように命令することができるコンピュータ読み取り可能なメモリに格納されてもよい。
【００２３】
コンピュータプログラム命令は、コンピュータ又はその他のプログラマブル装置上で動く命令がブロック又は複数のブロックにおいて指定された機能／作用を実施するステップを提供するように、コンピュータで実施されるプロセスを生成するため一連の動作ステップをコンピュータ又はその他のプログラマブル装置上で実行させるためにコンピュータ又はその他のプログラマブルデータ処理装置にロードされてもよい。
【００２４】
本発明の実施形態は、図１〜１３を参照してこれから説明される。本書に記載されているように、本発明の一部の実施形態は、エッジを検出する方法、システム及びコンピュータプログラムプロダクトを提供する。さらに、本発明の特定の実施形態は、音符の検出を提供し、たとえば、ＭＩＤＩのようなデジタルフォーマットへの楽譜の自動採譜と関連して使用されてもよい。このような演奏の操作及び再生は、ＭＩＤＩフォーマットのような音符に基づくデジタルフォーマットへの変換によって促進されてもよい。
【００２５】
コンピュータテクノロジーを使用して、本発明の種々の実施形態による音符の検出は、非常に現実感のある再生と向上した双方向性とを提供する形においてオーディオテクノロジーを進歩させることにより、どのようにして音楽が作成され、解析され、維持されるかを変更してもよい。たとえば、本発明の一部の実施形態は、ピアノ記録物のための光学式文字認識（ＯＣＲ）に類似した能力を提供する。このような実施形態では、ピアノ記録物は、ピアノ記録物を作成するために使用される打鍵及びペダル動作に逆変換されてもよい。これは、たとえば、対応するコンピュータ制御されたグランドピアノ上で高度な現実感を伴って再生される高分解能ＭＩＤＩフォーマットで行われてもよい。
【００２６】
換言すると、本発明の一部の実施形態は、記録物を容易に操作できるフォーマットへ戻す復号化を可能にしてもよい。そのようにすることは、歴史的な記録物保管庫内の資産価値を解明することにより音楽業界のためになる。このような記録物は、優れたホール内の正しく調律されたコンサートグランドピアノ上で再演奏することができる新しい演奏に再生利用される。主要な音楽製作会社は、その結果、現代的なサウンドで自分たちの作品を再記録できる。音楽製作会社は、今日の高品位サラウンドサウンドスーパーオーディオＣＤ（ＳＡＣＤ）、又は、ＤＶＤ−オーディオ（ＤＶＤ−Ａ）のような多様な記録フォーマットを使用し、バックカタログから記録物を再リリースすることが可能である。音楽製作会社は、再リリースの際に最新のデジタル権利管理を使用することを選択することも可能である。
【００２７】
次に、図１を参照して、本発明の一部の実施形態によるシステムで使用するため適したデータ処理システムのブロック図が説明される。図１に示されているように、データ処理システム３０の典型的な実施形態は、マイクロホン、キーボード又はキーパッドのような入力装置３２（複数可）、ディスプレイ３４、及び、プロセッサ３８と通信するメモリ３６を含む。データ処理システム３０は、スピーカー４４、及び、やはりプロセッサ３８と通信するＩ／Ｏデータポート４６（複数可）をさらに含んでもよい。Ｉ／Ｏデータポート４６は、データ処理システム３０と別のコンピュータシステム又はネットワークとの間で情報を転送するため使用される。これらのコンポーネントは、数多くの従来型のデータ処理システムで使用されるコンポーネントのような、本書に記載されているように動作するために構成された従来型のコンポーネントでもよい。
【００２８】
図２は、本発明の一部の実施形態によるシステム、方法、及び／又は、コンピュータプログラムプロダクトを説明するデータ処理システムのブロック図である。プロセッサ３８は、アドレス／データバス４８を介してメモリ３６と通信する。プロセッサ３８は、マイクロプロセッサのような市販プロセッサ又はカスタムプロセッサでもよい。メモリ３６は、データ処理システム３０の機能を実施するため使用されるソフトウェア及びデータを格納するメモリ装置の全体的な階層を表している。メモリ３６は、限定されることはないが、以下のタイプの装置、すなわち、キャッシュ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＳＲＡＭ、及び／又は、ＤＲＡＭを含むことができる。
【００２９】
図２に示されているように、メモリ３６は、データ処理システム３０において使用されるソフトウェア及びデータの数個のカテゴリー、すなわち、オペレーティングシステム５２、アプリケーションプログラム５４、入力／出力（Ｉ／Ｏ）装置ドライバ５８、及び、データ６０を含んでもよい。当業者によって認められるように、オペレーティングシステム５２は、ニューヨーク州アーモンク市所在のＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  ＣｏｒｐｏｒａｔｉｏｎからのＯＳ／２、ＡＩＸ、若しくは、Ｓｙｓｔｅｍ  ３９０と、ワシントン州レッドモンド所在のＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎからのＷｉｎｄｏｗｓ（登録商標）９５、Ｗｉｎｄｏｗｓ（登録商標）９８、Ｗｉｎｄｏｗｓ（登録商標）２０００、若しくは、Ｗｉｎｄｏｗｓ（登録商標）ＸＰと、Ｕｎｉｘ（登録商標）と、Ｌｉｎｕｘと、Ｓｕｎ  Ｓｏｌａｒｉｓと、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  ＯＳ  Ｘなどのような、データ処理システムと共に使用するために適したどのようなオペレーティングシステムでもよい。Ｉ／Ｏ装置ドライバ５８は、典型的に、Ｉ／Ｏデータポート４６（複数可）及びある種のメモリ３６コンポーネントのような装置と通信するために、アプリケーションプログラム５４によってオペレーティングシステム５２を介してアクセスされるソフトウェアルーチンを含む。アプリケーションプログラム５４は、データ処理システム３０の種々の機能を実施するプログラムを例示する。最後に、データ６０は、アプリケーションプログラム５４、オペレーティングシステム５２、Ｉ／Ｏ装置ドライバ５８、及び、メモリ３６に備わり得るその他のソフトウェアプログラムによって使用される静的データ及び動的データを表わす。
【００３０】
図２においてさらに分かるように、アプリケーションプログラム５４は、周波数領域モジュール６２と、時間領域モジュール６４と、エッジ検出モジュール６５と、音符検出モジュール６６とを含んでいてもよい。周波数領域モジュール６２は、本発明の一部の実施形態では、限定されるものではないが、高速フーリエ変換（ＦＦＴ、ＤＦＴ、ＤＴＦＴ、ＳＴＦＴなど）、ウェーブレットに基づく変換（ウェーブレット、ウェーブレットパケットなど）の変換を使用して、及び／又は、限定されるものではないが、線形最小二乗法、非線形最小二乗法、高次Ｙｕｌｅ−Ｗａｌｋｅｒ法、Ｐｉｓａｒｅｎｋｏ法、ＭＵＳＩＣ法、ＥＳＰＲＩＴ法、最小ノルム法などのようなスペクトル推定技術、又は、長時間に亘ってオーディオ信号のその他の表現を使用して、周波数領域表現の複数の組を生成する。各組は、異なる時間に取得された特有の周波数と関連付けられてもよい。時間領域モジュール６４は、周波数領域表現の各組（すなわち、長時間に亘る特有の周波数のＦＦＴデータのプロット）から時間領域表現を生成してもよい。エッジ検出モジュール６５は、時間領域モジュール６４からの時間領域表現（複数可）において複数個のエッジを検出してもよい。最後に、音符検出モジュール６６は、時間領域表現（複数可）の特性に基づいて音符に対応するものとしてエッジのうちの一つを選択することにより音符を検出する。種々のアプリケーションモジュールの動作は、図３〜１３のフローチャート図に例示された実施形態を参照してさらに説明される。
【００３１】
メモリ３６のデータ部６０は、図２に例示された実施形態に示されているように、周波数境界データ６７と、音符勾配パラメータデータ６９と、パラメータ重みデータ７１とを含んでもよい。周波数境界データ６７は、周波数領域モジュール６２によって周波数領域表現を生成する不均一な周波数境界を提供するため使用されてもよい。音符勾配パラメータデータ６９は、本明細書でさらに説明されるように、エッジ検出においてエッジ検出モジュール６５によって利用されてもよい。最後に、パラメータ重みデータ７１は、エッジ検出モジュール６５からのいずれのエッジが音符に対応するかを決定するために、音符検出モジュール６６によって使用されてもよい。
【００３２】
本発明の実施形態は、アプリケーションプログラムとデータ等との間の特有の分割に関して図２に例示されているが、本発明は、本書に記載された動作を実行する能力のあるあらゆる構成を包含するので、図２の構成に限定されるものとして解釈されるべきではない。たとえば、エッジ検出６４及び音符検出６６は、別々のアプリケーションとして例示されているが、アプリケーションによって提供される機能は、単一のアプリケーションにおいて提供されてもよく、又は、３個以上のアプリケーションにおいて提供されてもよい。
【００３３】
上記の音楽の自動採譜に対する様々な知られたアプローチは、ラプラス変換、高速フーリエ変換（ＦＦＴ）、離散フーリエ変換（ＤＦＴ）、又は、短時間フーリエ変換（ＳＴＦＴ）のようなデジタル信号処理（ＤＳＰ）動作で、オーディオ信号を処理する。この初期処理に対する代替的なアプローチは、ガンマトーンフィルタ、バンドパスフィルタなどを含む。ＤＳＰからの周波数領域情報は、次に、音符特定プロセスへ、典型的に、知られている入力オーディオ信号のうちのある形に基づいて訓練されたニューラルネットワークへ供給される。
【００３４】
その一方、本書に記載されているように、本発明の一部の実施形態は、エッジ検出モジュール６５によるエッジ検出を経由して周波数領域データを処理し、次に、検出されたエッジに基づいて音符検出モジュール６６による音符検出を実行する。換言すると、複数個のエッジは、周波数領域情報からの特定のピッチに対し生成された時間領域表現において検出される。時間領域表現は長時間に亘る特定のピッチに対する周波数領域表現の組に対応し、時間領域表現の分解能は、ＦＦＴのような周波数領域表現を生成する際に使用される分解能ウィンドウに依存することが理解される。換言すると、立ち上がりエッジは、特定の時間に特定の周波数バンド（ピッチ）で現れるエネルギーに対応する。
【００３５】
音符検出は、その後、音符（すなわち、基音）を倍音から識別し、ブリード及び／又はノイズ信号をその他のソースから識別するために、検出されたエッジを処理する。検出された音符に関するさらなる情報は、音符に対応することが分かったエッジの検出の時間と関連付けられた開始時間に加えて、時間領域表現から決定されてもよい。たとえば、最大振幅及び長さが検出された音符に対して決定され、その特性は、たとえば、ピアノ打鍵の場合に、ストライク速度、長さ、及び／又は、リリース速度のような音符の能力をさらに特性化する。ピッチは、検出された音符を含む時間領域表現を構築するため使用される周波数領域表現の周波数バンドに基づいて特定されてもよい。
【００３６】
さらに本書において説明されるように、本発明の実施形態と共に使用するため適したエッジ検出のための様々な技術が知られているが、本発明の一部の実施形態は、様々なタイプの複数のエッジ検出器による時間領域表現の処理のような、エッジ検出に対する新しいアプローチを利用する。１台のエッジ検出器は時間領域表現中にエッジが存在することを特定する一次ソースとして取り扱われ、その他のエッジ検出器は、照合のため利用され、及び／又は、一次エッジ検出器からの検出されたエッジの方が音符と対応する可能性が高いということを示すヒントとして利用され、その情報が後続の音符検出動作中に使用されてもよい。次いで、３台のエッジ検出器を利用する構成の一例が説明される。
【００３７】
本明細書で使用されるようなエッジ検出器が、データ中に存在するエッジと関連付けられた鋭い立ち上がりを検出するために設定された形状検出器を指すことは理解される。（２番目の音符がはるかに小さな立ち上がりを有する場合の繰り返される音符のような）ある種のケースでは、エッジは容易に検出されず、エッジ検出は、繰り返される音符のピークの頂点における上限のようなその他の形状の検出に基づいている。
【００３８】
本例の第１の、すなわち、一次エッジ検出器は、一般的に２オクターブの音域に亘って出現する典型的な音符に対して期待される立ち上がりエッジ勾配におおよそ対応する立ち上がりエッジ勾配に調整された従来型のエッジ検出器である。しかし、各ピッチは、エッジ検出によって処理された異なる時間領域表現に対応するので、エッジ検出器は、処理されている時間領域表現に対応する特定のピッチの音符に対し期待される勾配に調整され、その後、他の時間領域表現のため再調整される。音楽の自動採譜は時間に敏感でなくてもよいので、異なるピッチの並列処理のための複数台の別々に調整された一次エッジ検出器を設けるのではなく、再較正される一般的なエッジ検出器が使用される。エッジ検出器は、検出された開始とピーク時間との中間にある点に基づいて、検出された立ち上がりエッジの開始時間を選択するためにも調整され、開始時間検出の変動を低減されてもよい。
【００３９】
周波数領域表現を生成するサンプル周期は、周波数領域表現から生成される対応する時間領域表現の時間分解能を増大させるために減少させてもよいことがさらに理解される。たとえば、本発明者は１０ミリ秒の分解能を利用することに成功したが、ある種の例では、検出された音符の開始時間のより一層正確な特定を行うために、分解能を１ミリ秒まで増大させることが望ましい。しかし、そのようにすることは、周波数領域表現の生成の際に必要とされるデータ処理の量を増加させることが理解される。
【００４０】
本発明の複数台のエッジ検出器の実施形態の本例を続けると、第２のエッジ検出器は、エッジ内のエネルギーではなく、エッジの形状に反応する検出器であってもよい。換言すると、入力信号の正規化は、異なる形状を有するより「明瞭な」エッジのさらに一層大きなエネルギーレベルとは違って、立ち上がりエッジの特定の形状の検出に対する感度を高めるために行われてもよい。この特定の例では、第３のエッジ検出器もまた「ヒント」（すなわち、第１のエッジ検出器によって検出されたエッジの照合）を提供するために使用される。第３のエッジ検出器は、一次エッジ検出器と同様に、エネルギーに反応するエッジ検出器であるが、しかし、エッジを検出するためにより多くのエネルギーを必要とするように構成してもよい。たとえば、第１のエッジ検出器は、１０個のデータ点に亘り、各々が１０ミリ秒である（合計が１００ミリ秒である）解析ウィンドウを有し、第３のエッジ検出器は、３０個のデータ点の（合計が３００ミリ秒である）解析ウィンドウを有してもよい。
【００４１】
より長時間の解析ウィンドウの特定の長さが、たとえば、検出された音符を生成する楽器の特性に基づいて選択されてもよい。ピアノは、たとえば、典型的に、少なくとも約１５０ミリ秒の音符長を有するので、ピアノ譜は、第１のエッジ検出器の解析ウィンドウより長く続き、したがって、第３のエッジ検出器によって解析されるときに付加的なエネルギーを供給することが期待されるが、時間信号中のノイズパルスは解析ウィンドウの拡張によって付加的なエネルギーを供給しなくてもよい。
【００４２】
本明細書でさらに説明されるように、本発明の種々の実施形態では、一旦エッジが検出されると、エッジが検出された時間領域表現の複数個の特性化パラメータが音符を検出する際に使用するため生成されてもよい。このような特性化パラメータの特有の例は、図中のフローチャート図を参照して本発明の種々の実施形態を説明した後に記載される。
【００４３】
図３は、たとえば、アプリケーションプログラム５４によって実行されてもよい本発明の一部の実施形態による音符を検出する動作を説明する。図３の実施形態において分かるように、動作は長時間に亘ってオーディオ信号の複数個の周波数領域表現を生成することによりブロック３００で始まる。時間領域表現（複数可）は、複数個の周波数領域表現から生成される（ブロック３１０）。時間領域表現は、周波数領域表現を提供するために、ＦＦＴなどを生成する際にサンプリングのため使用される分解能によって決定された分解能で、長時間に亘ってプロットされた所与の周波数バンド（ピッチ）に対するブロック３１０からの周波数領域情報であってもよい。複数個のエッジが時間領域表現（複数可）中で検出される（ブロック３１５）。音符は、ブロック３１０において生成された時間領域表現（複数可）の特性に基づいて音符に対応するものとして複数個のエッジのうちの一つを選択することにより検出される。
【００４４】
本発明は、長時間に亘って複数個の周波数領域表現から生成された単一の時間領域表現中の単一の音符の検出を包含するが、音楽の自動採譜は、典型的に、異なるピッチを有する複数個の異なる音符の捕捉を伴うことが理解される。よって、ブロック３００における動作は、長時間に亘ってオーディオ信号の周波数領域表現の複数の組を生成する動作を伴ってもよく、各組は異なるピッチと関連付けられている。さらに、ブロック３１０における動作は、周波数領域表現の各組から複数個の時間領域表現を生成する動作を含んでもよく、各時間領域表現は異なるピッチのうちの一つと関連付けられている。複数個のエッジは、異なる音符、ブリード、又は、音符の倍音と関連付けられた一つ以上の時間領域表現においてブロック３１５で検出されてもよい。
【００４５】
ブロック３２０で音符を検出する動作は、音符の長さを決定する動作を含んでもよい。長さは音符を生成する機械的な作用と関連付けられている。たとえば、機械的な作用は、ピアノ上の打鍵である。
【００４６】
図３の実施形態に関して上述されたように、周波数領域データは、特定の音楽ピッチに対応する複数個の周波数に対して生成されてもよい。本発明の一部の実施形態では、周波数領域データの生成は、自動ピッチ追跡をさらに含んでもよい。楽器には、典型的に、音符が演奏されるときに生成される一次（基本）周波数が存在する。この一次周波数は、一般に倍音を伴う。楽器が調律されているとき、各音符／ピッチに対応する周波数は、典型的に、所定のスケールの組によって定義される。しかし、多数の要因によって、この一次周波数（したがって、同様に倍音）が期待周波数から逸れてもよい（たとえば、楽器に関する音符は調子が外れる）。よって、調子が外れる音符に適応するため処理中にピッチ追跡を提供することが望ましい。
【００４７】
本発明の一部の実施形態では、ピッチ追跡は、調子が外れる音符を追跡するために、周波数追跡アルゴリズム（たとえば、位相ロックループ、等化アルゴリズムなど）を使用して行われてもよい。１つの処理モジュールが一次周波数と各倍音のため設けられてもよい。複数の周波数発生器（たとえば、ピアノ上で使用される複数の弦、又は、ギター上の異なる弦）の場合、複数の処理モジュールが一次周波数及び対応する倍音のそれぞれのため設けられてもよい。一次周波数が変化すると、対応する変化が典型的に関連した倍音追跡処理モジュールのそれぞれに組み込まれる必要があるので、通信が各追跡エンティティの間で行われる。
【００４８】
ピッチ追跡は、未加工データに（事前）実施され、適用されるか、又は、処理の適応中に並列に行われる。代替的に、音符が初期採譜パスから欠けていることが判定されると、ピッチ追跡プロセスが事後に適用される。ピッチ追跡プロセスは、その後に、調子が外れているために損失が存在する音符だけに適用される。本発明のその他の実施形態では、手動修正（手動ピッチ追跡）が、本書に記載された自動ピッチ追跡に代わる手段として、同様に周波数ドリフト問題を補償するために適用され得る。
【００４９】
音符を検出する本発明のさらなる実施形態が、次に、図４のフローチャート図を参照して説明される。動作は、図４の実施形態の場合、オーディオ信号を受信することから始まる（ブロック４００）。長時間に亘ってオーディオ信号の周波数領域表現の複数の組が生成される（ブロック４１０）。周波数領域表現の各組は異なるピッチと関連付けられる。複数個の候補音符が周波数領域表現の組に基づいて特定される（ブロック４２０）。各候補音符はピッチと関連付けられる。
【００５０】
共通の関連した出現時間を有する異なるピッチを伴う候補音符がグループ分けされる（ブロック４３０）。候補音符のグループと関連付けられた強度が決定される（ブロック４４０）。ピッチの変化に伴う決定された強度の変化によって定められた勾配が次に決定される（ブロック４５０）。音符は、その後、決定された勾配に基づいて検出される（ブロック４６０）。よって、図４において説明された実施形態の場合、基本音符のピーク強度と基本音符の倍音との間の相対的な強度関係が、ノイズ、倍音、ブリードなどと対照されて、オーディオ信号中の音符の存在を識別するために使用される。
【００５１】
本発明のその他の実施形態では、倍音と基本音符との間の関係は、図４を参照して説明されたように勾配情報を生成することなく、音符検出に利用されることが理解される。よって、複数個のエッジが２個以上の別個の時間領域表現中で検出される場合、音符の検出は、音符の基音に対応するものとして最初の時間領域表現中のエッジのうちの一つを特定し、音符の倍音に対応するものとして別の時間領域表現中のエッジのうちの一つを特定する動作を含んでもよい。よって、基音から倍音を識別するために、倍音の範囲の全域に亘るピッチの増加に伴って強度変化を比較する必要がない。
【００５２】
本発明のさらなる実施形態による音符の検出の動作は次に図５のフローチャート図を参照して説明される。図５の実施形態に関して示されているように、動作は、オーディオ信号を受信することによりブロック５００で始まる。不均一な周波数境界が異なるピッチに対応する複数個の周波数域を提供するために定義される（ブロック５１０）。このような不均一な周波数境界は、たとえば、周波数境界データ６７（図２）に記憶されてもよい。
【００５３】
オーディオ信号の周波数領域表現の複数の組が長時間に亘って生成される（ブロック５２０）。各組は異なるピッチのうちの一つと関連付けられる。音符は、その後、周波数領域表現の複数の組に基づいて検出される（ブロック５３０）。
【００５４】
ブロック５１０における不均一な周波数境界を画定する動作は、音符に対応する複数個の所定のピッチ毎に実質的に均一な分解能を提供するために、不均一な周波数境界を画定する動作を含んでもよい。不均一な周波数境界は、音符の倍音に対応する複数個の所定のピッチ毎に周波数域を提供するためにさらに設けられてもよい。
【００５５】
図５を参照して説明された不均一な周波数境界は、図３及び４を参照して上述された実施形態と共に利用してもよい。よって、不均一な周波数境界は、異なるピッチに対応する周波数領域表現の各組と関連付けられた周波数域を提供するために定義されてもよい。実質的に均一な分解能は、不均一な周波数境界の選択によって、音符に対応する複数個の所定のピッチ毎に設けられてもよい。
【００５６】
本発明の種々の実施形態による信号エッジを検出する動作は次に図６のフローチャート図を参照して説明される。動作は、信号エッジと、ノイズによって生成されたエッジとを含むデータ信号の受信によってブロック６００で始まる。データ信号は、第１のエッジ検出データを提供するため、第１のタイプのエッジ検出器による処理である（ブロック６１０）。本発明の特定の実施形態では、第１のタイプのエッジ検出器は、データ信号中のエッジのエネルギーレベルに反応し、信号エッジの勾配特性に合わされてもよい。たとえば、特定のピッチと関連付けられた音符の音符勾配パラメータは音符勾配パラメータデータ６９（図２）に記憶されてもよく、第１のエッジ検出器を較正するために使用されてもよい。第１のタイプのエッジ検出器は、種々のタイプの信号エッジを表す共通勾配特性に合わされてもよく、又は、それぞれの勾配特性が、音楽的に異なる音符と関連付けられた信号エッジのような、様々なタイプの信号エッジを表す複数個の勾配特性に合わされることもある。
【００５７】
データ信号表現は、異なるエッジ保護データを提供するために、第１のタイプのエッジ検出器とは異なる第２のタイプのエッジ検出器を通じてさらに処理される（ブロック６２０）。たとえば、第２のタイプのエッジ検出器は、データ信号中で検出されたエッジの形状に反応するように正規化されてもよい。
【００５８】
第１及び第２のエッジ検出器に加えて、ブロック６３０に示されているように、本発明の一部の実施形態では、データ信号は第３のエッジ検出を通じてさらに処理される。第３のエッジ検出器は、第１のエッジ検出器と同じタイプのエッジ検出器でも構わないが、より長時間の解析ウィンドウを有する。第３のエッジ検出器のためのより長時間の解析ウィンドウは、信号エッジと関連付けられた特性長さと少なくとも同じ長さになるように選択されてもよい。たとえば、信号エッジがピアノ鍵の打鍵によって生成されたことが期待されるエッジに対応するとき、鍵の機械的特性は、鍵によって打鍵された音符から期待される長さの範囲を制限してもよい。したがって、第３のエッジ検出器は、第１のタイプのエッジ検出器より高いエネルギーレベル閾値に基づいてエッジを検出してもよい。よって、本発明の一部の実施形態では、第３のエッジ検出データの組が第１及び第２のエッジ検出データに加えて提供される。
【００５９】
データ信号中のエッジのうちの一つが、第１のエッジ検出データ、第２のエッジ検出データ、及び／又は、第３のエッジ検出データに基づいて、信号エッジとして選択される（ブロック６４０）。本発明の特定の実施形態では、ブロック６４０での動作は、第１のエッジ検出データ中で検出されたエッジと第２のエッジ検出データ及び／又は第３のエッジ検出データ中で検出されたエッジとの対応関係に基づいてエッジが信号エッジに対応する可能性を増加させる動作を含む。ピアノのような楽器の場合、第３のエッジ検出器のためのより長時間の解析ウィンドウは約３００ミリ秒であってもよい。
【００６０】
図６を参照して説明された信号エッジ検出動作は、本発明のその他の実施形態に関して上述されたような音符の検出に適用されてもよいことが理解される。よって、第１のタイプのエッジ検出器は音符の勾配特性に合わせられてもよく、第２のタイプのエッジ検出器は、一つの時間領域表現中の音符によって形成されたエッジの状態に応答するように正規化されてもよい。第１のタイプのエッジ検出器は音符の範囲を表す勾配特性に合わせられてもよく、共通勾配特性はエッジ検出に使用されるか、又は、それぞれが異なる音符を表す複数個の勾配特性に合わせられてもよい。本発明の特定の実施形態では、開始時間を音符の検出と関連付けるとき、開始時間は、開始やピーク点自体ではなく、音符と関連付けられた検出されたエッジの開始とピークとの中間にある点に対応するように選択されてもよい。
【００６１】
音符を検出する動作が、次に、図７のフローチャート図を参照して本発明のさらなる実施形態に関して説明される。図７に示された実施形態では、動作はオーディオ信号を受信することによりブロック７００で始まる。長時間に亘ってオーディオ信号の複数個の周波数領域表現が生成される（ブロック７１０）。時間領域表現は複数個の周波数領域表現から生成される（ブロック７２０）。時間領域表現の滑らかさの尺度が次に計算される（ブロック７３０）。音符はその後に滑らかさの尺度に基づいて検出されてもよい（ブロック７４０）。本発明者は、時間領域表現中の信号の滑らかさ特性は、ノイズ信号と音符とを区別するため特に効果的な特性化パラメータであってもよいことを発見した。時間領域表現内の曲線のような滑らかさの尺度を生成する方法の様々な特定の実施形態が、次に、図８を参照して説明される。
【００６２】
図８の図解された実施形態に示されているように、動作は、時間領域表現の、自然対数のような、対数を計算することによりブロック８００で始まる。時間領域表現の自然対数の移動平均関数がその後に計算される（ブロック８１０）。ブロック８００から計算された自然対数とブロック８１０からの移動平均関数は、次に、滑らかさの尺度を与えるために比較されてもよい。たとえば、図８に図解された特定の実施形態では、比較動作は、それぞれの時点での自然対数と移動平均関数との間の差を決定する動作を含む（ブロック８２０）。決定された差は、次に、滑らかさの尺度を与えるために計算ウィンドウに亘って加算される（ブロック８３０）。たとえば、オーディオ信号は、ＦＦＴデータの時間領域表現を提供するために時間シーケンス内に配列されたＦＦＴを使用して処理されてもよい。
Ｆraw（ｔ）＝Ｓ（ｔ）＋Ｎ（ｔ）
式中、Ｆraw（ｔ）はＦＦＴデータの時間領域表現であり、Ｓ（ｔ）は信号であり、Ｎ（ｔ）はノイズである。自然対数のような対数は、下記の通り取得される。
Ｆln（ｔi）＝ｌｎ（Ｆraw（ｔi））
自然対数の平均関数は下記の通り生成される。
Ｆfinal（ｔi）＝（Ｆln（ｔi-1）＋Ｆln（ｔi）＋Ｆln（ｔi+1））／３
【００６３】
最終的に、滑らかさの尺度関数（ｖａｒ１０ｄ）が、平均関数と自然対数との間の差の１０点平均として生成される。この滑らかさの尺度の特定の実施例では、より小さな値は曲線に関するより滑らかな形状を示す。
【００６４】
ブロック８４０に示されているように、その他の方法が滑らかさの尺度を特定するため利用される。たとえば、ブロック８４０に示された動作では、滑らかさの尺度は、自然対数中の特定されたピークの周りのカウント時間ウィンドウ内で自然対数中の勾配方向の変化の回数を決定することにより決定されてもよい。
【００６５】
本発明のなおさらなる実施形態による音符を検出する動作が、次に、図９を参照して説明される。図９に示されているように、動作はオーディオ信号を受信することによりブロック９００で始まる。オーディオ信号の複数個の周波数領域表現が長時間に亘って生成される（ブロック９１０）。時間領域表現は次に複数個の周波数領域表現から生成される（ブロック９２０）。オーディオ信号はエッジ検出器を通じてさらに処理され、エッジ検出器からの出力信号が受信されたオーディオ信号に基づいて生成される（ブロック９３０）。
【００６６】
特性化パラメータは、時間領域表現と関連付けて計算される（ブロック９４０）。上述の通り、特性化パラメータは、第１のエッジ検出器を通じて検出されたエッジ毎に、又は、エッジ検出器からの出力信号のための最小振幅閾値規準を満たすエッジ毎に計算されるてもよい。特性化パラメータは時間領域表現に関して生成されてもよく、後述されるように本発明の一部の実施形態ではエッジ検出器からの出力信号に関しても生成されてもよい。適当な特性化パラメータの例示的な組が次に本発明の特定の実施形態に関して説明される。この特定の実施形態では、時間領域表現に基づく特性化パラメータは、最大振幅、長さ、及び、波形特性を含む。波形特性は、前縁形状、１次微分、及び、降下（すなわち、ピーク振幅を過ぎた固定時点で振幅が減衰した量）を含む。その他のパラメータは、ピーク振幅までの時間、滑らかさの尺度、滑らかさの尺度のランレングス（すなわち、（例外を全く許さないか、若しくは、限られた個数の例外を許す）閾値規準に満たない行内の滑らかな点の個数）、ピーク振幅で始まる各方向における滑らかさの尺度のランレングス、宣言された最小から宣言された最大までの相対的なピーク振幅、及び／又は、滑らかさの尺度におけるピーク振幅の前後の区間の方向変化数を含む。
【００６７】
様々な特性化パラメータが本発明のその他の実施形態において与えられてもよい。たとえば、本発明の一部の実施形態では、時間領域表現と関連付けられた特性化パラメータは、少なくとも、閾値規準を満たす滑らかさの尺度のランレングスと、時間領域表現のうちの一つの最大強度に対応するピークポイントで始まる閾値規準を満たす滑らかさの尺度のピークランレングスと、最大強度と、長さと、波形特性と、最大強度と関連付けられた時間と、及び／又は、決定された最小ピーク時間強度値から決定された最大ピーク時間強度値までの相対的な強度とのうちの少なくとも１つを含む。
【００６８】
エッジ検出器からの出力信号と関連付けられた特性化パラメータは、図９の実施形態に関しても計算される（ブロック９５０）。エッジ検出器の出力のための特性化パラメータは、ピーク振幅、ピークから第１のオフセット時間及び第２のオフセット時間における振幅、及び／又は、最大ランレングスだけでなく、出現の時間もまた含んでもよい。これらのパラメータは、たとえば、二重ピーク信号が非常に短いウィンドウ内に出現する場合に、ピークのうち強度が低い方のピークを別個のエッジの表れであるとして廃棄するために使用されてもよい。特性化パラメータは第２又は第３のエッジ検出器からの出力信号に基づいても生成されてもよい。たとえば、第２又は第３のエッジ検出器からのより広い出力信号パルスは、検出されたエッジが音符に対応するより高い可能性と相関する傾向があることが発明者によって発見された。本発明のその他の実施形態では、エッジを含む時間領域表現に対応するエッジ検出信号と関連付けられた特性化パラメータは、最大強度、最大強度時間から各方向に第１の所定の時間オフセットでの強度、最大強度時間から各方向における第１の所定の時間オフセットとは異なる第２の所定の時間オフセットでの強度、及び／又は、勾配方向に変化がない各方向におけるピーク強度点からのエッジ検出信号の幅のうちの少なくとも一つを含む。
【００６９】
音符は、その後に、時間領域表現の計算された特性パラメータ及びエッジ検出器からの出力信号の計算された特性パラメータに基づいて検出される（ブロック９６０）。よって、図９に示された特定の実施形態では、エッジ検出器信号特性は、エッジの検出だけでなく、音符の検出に関係した決定プロセスにおいても利用される。しかし、本発明のその他の実施形態では、音符は感知されたオーディオ信号の周波数領域表現から生成された時間領域表現だけに基づいて検出されてもよく、エッジ検出器出力信号は音符検出プロセス内で評価されるべきエッジを特定する目的のためだけに使用されてもよいことが理解される。
【００７０】
本発明のさらなる実施形態による音符を検出する動作が、次に、図１０のフローチャート図を参照して説明される。図１０の実施形態では、検出されたエッジをエッジ検出６５（図２）から音符検出モジュール６６（図２）へ供給する前に、各エッジはブロック１０００〜１０１５によって処理される。エッジ毎に（ブロック１０００）、エッジ検出信号（すなわち、エッジ検出器出力のパルス）中のエッジ信号の強度が検出され、エッジ信号の強度が閾値規準を満たすかどうかが決定される（ブロック１０１０）。エッジ信号の強度が閾値規準を満たさないならば、関連付けられたエッジは、検出されるべき信号エッジ／音符であることを表すエッジとしての検討対象から廃棄／外され、次のエッジが処理のため選択される（ブロック１０１５）。たとえば、ブロック１０１０で適用された閾値規準は、音符を生成する楽器と関連付けられた最小強度に対応してもよい。たとえば、ピアノ上の打鍵は、そのようにソフトな打鍵だけに限られる。
【００７１】
ブロック１０１０で閾値規準を満たすエッジ毎に、特性化パラメータが計算される（ブロック１０２０）。より詳細には、ブロック１０２０における特性化パラメータは、時間領域表現内で検出されたエッジと関連付けられた期間中の時間領域表現に基づくことが理解される。換言すると、特性化パラメータは、解析のためエッジを特定するために利用されたエッジ検出器の出力信号ではなく、時間領域表現内の信号の形状及びその他の特性に基づいている。よって、特性化パラメータが、時間領域表現に基づいて生成され、エッジ検出器によって検出された個々のエッジと関連付けられるように、エッジ検出器出力は、時間を基準として時間領域表現に同期させられる。音符は、その後に、時間領域表現の計算された特性化パラメータに基づいて検出される（ブロック１０３０）。
【００７２】
本発明のさらなる実施形態が、次に、図１１のフローチャート図を参照して説明される。図１１は、音符を倍音、ブリード、及び／又は、その他のノイズから識別する種々の異なる評価動作を含む、音符を検出する動作の特定の実施形態を説明する。しかし、本発明の様々な実施形態において、これらの種々の評価動作の様々な組み合わせが利用されてもよく、必ずしも記述された動作のすべてが音符を検出するために本発明の種々の実施形態において実行されなくても構わないことが理解される。図１１を参照して説明される動作の特定の組み合わせは、当業者が、音符検出に関係した様々な動作のそれぞれを単独で、又は、記述されたその他の方法と組み合わせて実施することを可能にするため提供される。これらの多種多様な動作のさらなる詳細は図１２及び１３を参照して説明される。
【００７３】
次に、図１１の特定の実施形態を参照すると、音符検出に関係した動作は、本書においてピークヒント処理と称される処理によってブロック１１００で始まる。このような状況においてピークヒントは、第１又は一次エッジ検出器からの出力信号中で検出されたエッジの方が音符又はその他の望ましい信号エッジの存在を表している可能性が高いという、第２及び第３のエッジ検出器出力からの「ヒント」を指す。
【００７４】
よって、図６に示された多重エッジ検出器の実施形態に関連して、ブロック１１００における動作は、第２のエッジ検出器からの出力中で検出エッジ毎に、特定の検出エッジより高い強度を有する検出エッジからのずれが最小時間より短い隣接エッジが第２のエッジ検出データ中で検出されないときに、検出エッジを第２のエッジ検出データ中に維持する動作を含んでもよい。換言すると、第２又は第３のエッジ検出器からの検出エッジは、検出エッジ自体より大きな強度を有する時間的に接近した隣接オブジェクト（検出エッジ／ピーク）が存在しないならば、有効であるとして取り扱われてもよい。たとえば、時点１０００での検出エッジが３．５という振幅を有し、一方、４．０という振幅をもつエッジが時点１０１０で検出されるならば、この時点１０１０における隣接ピークは時点１０００におけるピークより大きな強度を有し、このことは、先行するピークが無効であることを示してもよい。このような選別は、たとえば、音符からブリードを分離してもよい。ブロック１１００での動作は、有効であるとして特定されたオブジェクト（ピーク／エッジ）が有効ピークという結論を補強するために対応するブリードを有するかどうかを決定しようとしてもよい。
【００７５】
ブロック１１００におけるピークヒント処理のさらなる動作は、検出されたエッジと関連付けられた幅が閾値規準を満たさないときに検出されたエッジを第２のエッジ検出データ中に維持する動作を含んでもよい。換言すると、独立して、エッジのピーク点の前後の幅が非常に狭い場合、このことは、検出されたピーク／エッジが有効なヒントではないことを示唆してもよい。本発明の特定の実施形態では、第２又は第３のエッジ検出器からのエッジは、一方の規準だけを満たすことが必要であり、必ずしも両方の規準を満たさなくてもよい。
【００７６】
ブロック１１００におけるピークヒントの処理の後に続いて、ピークヒントが対照される（ブロック１１１０）。ブロック１１１０における動作は、最初に、第１のエッジ検出データ中の検出エッジが第２の検出データ中に維持された検出エッジと対応するかどうかを決定する動作と、次に、第１のエッジ検出データ中の検出エッジが第２のエッジ検出データ中の対応する維持された検出エッジであると決定されたときに、第１のエッジ検出データ中の検出エッジの方が音符に対応している可能性が高いということを決定する動作とを含んでもよい。よって、ブロック１１１０における動作は、第１のエッジ検出器によって特定された各エッジを最初から最後まで処理する動作と、ブロック１１００からのおそらく有効なピークヒントの組の中に、時間的に十分に接近し、処理されている第１のピーク検出器からのエッジ特定の音符／ピッチと一致するピークヒントが存在するかどうか（すなわち、同じピッチに対応し、同時に出現し、ピークヒントが第１のエッジ検出器によって検出されたエッジが音符に対応するという可能性を増大させるということを示唆するかどうか）を決定するために、ブロック１１００からの、おそらく有効なピークヒントの組を最初から最後まで調べる動作と、を含んでもよい。
【００７７】
ブロック１１２０における動作は、検出されるべき基本音符からブリードを識別するためにブリードを特定する動作に関係する。ブロック１１２０における動作は、検出エッジ毎に、検出エッジが検出エッジの時間領域表現と関連したピッチのブリードと関連付けられたピッチに対応するときとほぼ同時に別の複数の検出エッジが出現しているかどうかを決定する動作を含む。検出エッジと複数のエッジの中の別のエッジとのうちで強度の小さい方は、別のエッジが検出エッジの時間領域表現と関連したピッチのブリードと関連付けられていると決定されるならば、廃棄される。換言すると、ピークＡ（すなわち、あらゆるピーク）毎に、ピークＢ毎に（すなわち、組の中のあらゆる他のピークを参照）、ピークが時間的に接近し、（たとえば、音符を生成する鍵盤上で）隣接したピッチであるならば、関連した隣接ピークのうちでピーク値振幅が小さい方をブリードとして廃棄する。その上、本発明の一部の実施形態では、ブリードの検出は維持されたピークが音符である可能性がより高いということを示唆するので、音符である可能性の値は維持されたピークに対して増加させられる。
【００７８】
ブロック１１３０における動作は、検出ピーク（エッジ）において倍音を計算する動作に関係する。図１１に示された実施形態では、倍音がブロック１１３０で計算されるが、倍音の廃棄に関係した動作は、ブロック１１４０〜１１７０における介在する動作がブロック１１３０で倍音として計算されたピークが実際に基本であると決定した後にブロック１１８０で行われる。ブロック１１３０における動作は、検出エッジ毎に、検出エッジと共通の関連した出現時間を有する複数の検出エッジの中のその他の検出エッジが検出エッジの時間領域表現と関連したピッチの倍音に対応するかどうかを決定する動作を含んでもよい。その後に、複数の検出エッジの中のその他の検出エッジが倍音に対応すると決定されたときに、検出エッジが音符に対応する可能性はより高いということが決定されてもよい。同様に、複数の検出エッジの中に倍音に対応するその他の検出エッジが存在しないということが決定されたとき、検出エッジが音符に対応する可能性は低い。その上、検出エッジ自体が別の検出エッジの倍音に対応していることが決定されたとき、検出エッジが音符に対応していることが見出される可能性は低い。
【００７９】
本発明の特定の実施形態では、倍音計算動作は、一つ以上の倍音が存在するかどうかを決定するために第１倍音から第８倍音まで実行されてもよい。換言すると、動作は、ピークＡ毎（組の中のピーク毎）に、ピークＢ毎（組の中の別のピーク毎）に、倍音毎（番号１−８毎）に、ピークＢがピークＡの倍音であるならば、ピークＢがピークＡの倍音のうちの１つに対応していることを特定する動作を含んでもよい。
【００８０】
本発明の一部の実施形態では、ブロック１１３０における動作は、ピーク毎に、図４の実施形態に関して上述されたように、倍音の勾配を計算する動作をさらに含んでもよい。一般に、基音からの累進的な倍音をもつ負の勾配は、より高いピッチが検出されたピークがより低いピッチのピークの倍音に対応することを示すことがわかった。簡単な線形最小二乗当てはめ近似が勾配を決定する際に使用されてもよい。
【００８１】
ノイズピークの廃棄に関係する動作は図１１のブロック１１４０で実行される。音符であるかどうかを決定するため、さらに評価される可能性があるピーク／エッジを限定するために可能性のあるノイズピークを飛ばす種々のアプローチは、多種多様な代替的なアプローチに基づいている。アプローチとは無関係に、検出された複数個のエッジ／ピークに対して、ブロック１１４０における動作は、検出エッジに対応する時間領域表現と関連付けられた特性化パラメータに基づいて、検出エッジが音符ではなくノイズに対応するかどうかを決定する動作と、ノイズに対応することが決定されたときに、検出されたエッジを廃棄する動作とを含む。検出エッジがノイズに対応するかどうかの決定は、たとえば、スコアに基づくか、周知の音符から生成されたデータに基づいて開発された決定木タイプの推論ルールの組に基づくか、及び／又は、ある種別の固定されたルールの組の形式に基づいていてもよい。
【００８２】
ブロック１１４０において検出エッジがノイズに対応するかどうかを決定する動作に対するスコアに基づくアプローチの特定の実施形態は、図１２のフローチャート図に示されている。図１２に示されているように、検出エッジの時間領域表現と関連付けられた特性化パラメータが対応する閾値規準を満たすかどうかが決定される（ブロック１２００）。このような決定は、上述されたようにエッジに対して生成された複数個の特性化パラメータのそれぞれについて行われてもよい。特性化パラメータは、それらの対応する閾値規準を満たすということが決定されるならば、それぞれの特性化パラメータのための割り当てられた重み値に基づいて重み付けされる（ブロック１２１０）。重み付けパラメータは、たとえば、パラメータ重みデータ７１（図２）から獲得される。重み付き特性化パラメータは加算される（ブロック１２２０）。次に、加算された重み付き特性化パラメータが閾値規準を満たさないならば、検出エッジはノイズに対応するということが決定される（ブロック１２３０）。図１１のブロック１１１０で生成されたピークヒント情報は重み付けされてもよく、ブロック１１４０で検出エッジがノイズに対応するかどうかを決定する際に使用されてもよいことに注意する必要がある。上述のように、ブロック１１４０における動作は、図１２の特定の実施形態について記述されているように進行する必要はなく、たとえば、周知の音符から生成された基準特性化パラメータに基づいて生成されたルール決定木に基づいていてもよいことが理解される。
【００８３】
図１１のブロック１１５０における動作は、図１１を参照して説明された先行する動作とは異なり、先行する動作に基づいて飛ばされたピーク／エッジをもう一度追加することを目的とする。特に、ブロック１１４０で飛ばされたピークは、ルールに基づいて、ブロック１１５０で再び追加されてもよい。特に、ブロック１１５０における動作は、維持された検出エッジのピーク強度を、同じ時間領域表現からの隣接した、廃棄された検出エッジのピーク強度と比較する動作を含んでもよい。隣接した、廃棄された検出エッジは、対応する維持された検出エッジより大きな強度を有するならば維持される。換言すると、ブロック１１４０の解析は、時間ピーク内に維持された隣接ピークではなく、拒絶されたピークがさらなる処理のため使用されるべきであるかどうかを決定するために、隣接ピーク及び時間ピークを見つけるため、個別のエッジ／ピークから拡張される。
【００８４】
ブロック１１６０において、重複するピークが二重のピーク／エッジの存在を特定するために比較される。たとえば、ピークが、周知のピアノによって生成されたオーディオ信号から時点１０００で現れ、２００の長さを有し、第２のピークが時点１１００で現れ、２００の長さを有するならば、一方のピッチの鍵だけが打鍵された可能性があるので、両方のピークは音符であるということはなく、２個の重複するピークのうちの良い方を選び、他方を廃棄することが適切である。良い方のピークの選択は、強度などを含む様々な規準に基づいていてもよい。
【００８５】
ブロック１１６０における重複するピークを比較する動作は、次に、図１３のフローチャート図によって示された本発明の特定の実施形態に関してさらに記述される。同じ時間領域表現内の各検出エッジの出現の時間及び長さが決定される（ブロック１３００）。検出エッジの重なり合いは、検出エッジの出現の時間及び長さに基づいて検出される（ブロック１３１０）。次に、重複する検出エッジのうちでどちらの検出エッジの方が音符に対応する可能性が高いかが決定される（ブロック１３２０）。音符に対応する可能性が高い方ではない重複エッジが廃棄される（ブロック１３３０）。
【００８６】
図１１を再度参照すると、付加的なピークが公理によって廃棄される（ブロック１１７０）。換言すると、時間領域表現内の検出エッジ／ピークと関連した期間の時間領域表現と関連付けられた特性化パラメータが評価され、決定された特性化パラメータのうちの一つが、音符を生成する機械的な作用の周知の特性に基づき得る、関連付けられた閾値規準を満たさないならば、検出エッジ／ピークは廃棄される。たとえば、ある適当な特性化パラメータはピーク振幅／強度不良である。特定の楽器でそのようにソフトに音符を演奏することは物理的にのみ可能であるため、検出された強度は、所与のピッチの対応する速度にマッピングされ、打鍵の負の速度が検出されるならば、たとえば、ピアノ鍵の負の速度の打鍵を行うことは不可能であるので、エッジ／ピークは公理によって拒絶される。ブロック１１７０における動作はさらに、たとえば、ブリードを廃棄するステップ、ピアノ鍵盤のような楽器によって演奏され得ないピッチが関連付けられているピーク／エッジを廃棄するステップなどを含んでもよい。換言すると、ブロック１１７０において適用された公理は、一般に、検出されるべき音符を生成する楽器と関連付けられた特性に基づいている。
【００８７】
ブロック１１３０に関して上述されているように、その他の記述されたエッジ廃棄動作に続いて、倍音に対応する検出エッジがブロック１１８０において廃棄される。
【００８８】
最後に、ＭＩＤＩファイル又は検出された音符のその他のデジタル記録物が書き込まれてもよい（ブロック１１９０）。換言すると、上記の動作は、一般に、個別の音符を検出する動作に関して説明されているが、楽譜に関連付けられた複数個の音符が検出されてもよく、ブロック１１９０までの動作は楽譜のためのＭＩＤＩファイルなどを生成してもよいことが理解される。たとえば、周知の高品質ＭＩＤＩファイル規格を用いると、開始時間、長さ、（ノートオン速度、及び、ノートオン速度と長さとに基づいて決定されるさらなるノートオフ速度にマッピングされてもよい）ピーク値といった音符を特性化する詳細な情報が音符毎に保存される。音符情報は対応する音符のピッチをさらに含む。
【００８９】
本発明の種々の実施形態に関して上述されているように、音符の長さが決定されてもよい。本発明の特定の実施形態による長さを決定する動作が次に説明される。長さ決定プロセスは、特に、音符の長さを計算する動作と、音符と関連付けられたエンベロープの形状及び減衰率を決定する動作とを含んでもよい。これらの計算は、音符を生成するために演奏されている楽器に依存するピーク形状を考慮してもよい。これらの計算は、信号の形状、音符が演奏されてから対応する周波数信号が出現するまでの遅延、どの程度激しく又は急いで音符が演奏されたかといった物理的な要因をさらに考慮してもよく、これらは、減衰特性及び消滅特性における可能な変化のような、遅延及び周波数に依存する態様を変えてもよい。
【００９０】
本書中で使用されているように、用語「エンベロープ」は単一周波数（又は周波数変換のビン）のフーリエデータを指す。音符は、フーリエデータが激しく変化してもよく、又、（一般に一次ピークより小さな）複数のピークを収容するより長い期間のイベントであり、一般的にある程度の量のノイズが存在してもよい。エンベロープは、フーリエデータ自体でもよく、又は、フーリエデータの近似／理想版でもよい。エンベロープは、音符の長さが終わっていることを示唆する、演奏されている音符が弱められ始める時を明確にするため使用されてもよい。ノイズが低減され、演奏されている隣接した音符からの影響が低減又は除去されると、音符のエンベロープは、（時間的に先行する）左側の鋭い立ち上がりと共に出現してもよく、その後に、ピークと、暫くの間の緩やかな減衰とが続き、音符の減衰を示すグラフ中の下降と共に終了する。
【００９１】
本発明の一部の実施形態では、長さ計算動作は、音符が演奏される長さを決定する。この決定は種々の要因を伴ってもよい。これらの要因の中に、演奏される音符に関係した周波数のスペクトル（すなわち、基本周波数及び倍音）が存在する。これらの信号要素は、時間及び周波数において限定された形状の組を有してもよい。重要な要因は音符の要素のエンベロープの減衰率である。これらの要素の波形のエンベロープは、より高い速度で減衰を開始してもよく、このことは、ある種の減衰要因が導入されていることを示す。たとえば、ピアノ上で、鍵が開放されていたかもしれない。これらのエンベロープは、たとえば、音響と演奏されている楽器とに依存して、楽器に対して複数の形式を有してもよい。エンベロープは、同時に演奏されている他の音符が何であるかに依存してさらに変化する。
【００９２】
演奏されている楽器に依存して、一般に、考慮されるべき物理的な要因もまた存在する。たとえば、一般に、弦が引っ張られるか、又は、叩かれる時と、弦が音を出し始める時との間には遅延が存在する。音符を演奏するために使用される力はタイミングにも影響を与える（たとえば、ピアノ鍵をより激しく押すと、一般に、ハンマーが弦を叩くまでの時間が短くなる）。本発明の一部の実施形態では、周波数に依存する応答もまた考慮される。長さ計算に影響を与えるその他の要因の中には、減衰と消滅の変化率があり、たとえば、フルートの場合には、典型的に、演奏者が吹き込みを止めたか、又は、演奏者が演奏されている音符を変更したかに依存して、音符の減衰に顕著な差がある。
【００９３】
本発明の一部の実施形態における長さ決定プロセスは、候補音符、たとえば、基本周波数上の開始点で始まる。開始点は、その周波数のエンベロープのピークでもよい。アルゴリズムは時間的に前向きに進み、（相対的な最小値及び最大値を伴う第１及び第２の微分関数と曲率関数のような）減衰と曲率の関数の個数を計算し、これらは、その後に、終了条件を探しながら評価される。終了条件の例には、減衰率の著しい変化、（信号の下降又は上昇として現れる）新しい音符の開始などが含まれる。区別可能な長さ値が、信号エンベロープの最後の変化に対して、滑らかなエンベロープ変化に基づいて生成されてもよい。これらの終了条件、及び、長さが計算される方法は、エンベロープの形状に依存してもよい、エンベロープの形状は、ソース楽器と音符の生成中の音響条件とに依存する数種類がある。
【００９４】
倍音周波数は、音符の長さ、及び、倍音情報が利用可能である時に関する有用な情報（たとえば、倍音周波数で演奏されている音符が無い）をさらに有してもよく、倍音周波数は基本周波数解析のチェック／照合を行うために評価されてもよい。
【００９５】
長さ決定プロセスは、ノイズ、演奏されている隣接した音符などのような信号中の無関係の情報も解明してもよい。信号干渉源は、信号のピーク若しくはピットに出現し、又は、信号のスパイクとして出現してもよい。ある種のケースでは、実際には干渉パターンに他ならない音符の終わりと間違えられるかもしれない鋭い下向きのスパイクが存在する。同様に、演奏中の隣接した音符は、一般に、新しい音符の始まりと間違えられる可能性があるブリードピークの原因になる。
【００９６】
図１〜１３のフローチャート図及びブロック図は、本発明の種々の実施形態によるシステム、方法、及び、コンピュータプログラムプロダクトの可能な実施のアーキテクチャ、機能、及び、動作を説明する。さらに注意すべき点は、ある種の代替的な実施では、ブロック内に記載された機能が図に記載された順序に反して起こり得ることである。たとえば、連続的に示されている２個のブロックは、実際には、関連した機能性に依存して、実質的に同時に実行され、又は、時には逆順で実行されることがある。ブロック図及び／又はフローチャート図の各ブロックと、ブロック図及び／又はフローチャート図中のブロックの組み合わせは、指定された機能又は作用を実行する専用ハードウェアに基づくシステム、又は、専用ハードウェアとコンピュータ命令との組み合わせによって実施され得ることがさらに理解される。
【００９７】
多数の代替及び変更が、本発明の精神及び範囲から逸脱することなく、本開示の恩恵を受けた当業者によってなされる。したがって、説明された実施形態は例示の目的のためだけに記載され、特許請求の範囲に記載されている発明を限定するように解釈されるべきでないことが理解されるべきである。したがって、特許請求の範囲は、逐語的に記載された要素の組み合わせだけでなく、実質的に同じ結果を得るために実質的に同じ方法で実質的に同じ機能を実行するあらゆる均等な要素をも含むように解釈されるべきである。よって、特許請求の範囲は、具体的に説明され、記載された事項、概念的に均等である事項、及び、さらに本発明の本質的な発想を組み込む事項を含むことが理解されるべきである。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施形態で使用するため適した典型的なデータ処理システムのブロック図である。
【図２】本発明の一部の実施形態を組み込む典型的なデータ処理システムのより詳細なブロック図である。
【図３】本発明の種々の実施形態による音符を検出する動作を説明するフローチャートである。
【図４】本発明の種々の実施形態による音符を検出する動作を説明するフローチャートである。
【図５】本発明の種々の実施形態による音符を検出する動作を説明するフローチャートである。
【図６】本発明の一部の実施形態によるエッジを検出する動作を説明するフローチャートである。
【図７】本発明の一部の実施形態による音符を検出する動作を説明するフローチャートである。
【図８】本発明の一部の実施形態による滑らかさを測定する動作を説明するフローチャートである。
【図９】本発明のさらなる実施形態による音符を検出する動作を説明するフローチャートである。
【図１０】本発明のさらなる実施形態による音符を検出する動作を説明するフローチャートである。
【図１１】本発明のさらなる実施形態による音符を検出する動作を説明するフローチャートである。
【図１２】本発明のさらなる実施形態による音符を検出する動作を説明するフローチャートである。
【図１３】本発明のさらなる実施形態による音符を検出する動作を説明するフローチャートである。
【図１】
2008518270.tif 000003
【図２】
2008518270.tif 000004
【図３】
2008518270.tif 000005
【図４】
2008518270.tif 000006
【図５】
2008518270.tif 000007
【図６】
2008518270.tif 000008
【図７】
2008518270.tif 000009
【図８】
2008518270.tif 000010
【図９】
2008518270.tif 000011
【図１０】
2008518270.tif 000012
【図１１】
2008518270.tif 000013
【図１２】
2008518270.tif 000014
【図１３】
2008518270.tif 000015
【国際調査報告】
2008518270.tif 000016
2008518270.tif 000017
2008518270.tif 000018