(57)【特許請求の範囲】
【請求項１】
参照メディアコンテンツとの比較によってソース信号からソースメディアコンテンツを自動認識することを可能にするための装置であって、
前記ソース信号にフーリエ変換を適用することによって前記ソース信号からスペクトログラムを生成するように動作可能なスペクトログラムジェネレータであり、前記スペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、スペクトログラムジェネレータと、
前記タイムスライスの前記カラム（column）からの選択された周波数ビンの大きさの比率を計算し、前記比率を量子化してソースベクトルの数字を生成することによって、前記ソース信号のタイムスライスに対して少なくとも１つのソースベクトルを生成するように動作可能なベクトルジェネレータであり、タイムスライスに対して少なくとも１つのベクトルを生成するために、タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの大きさの比率を計算し、前記比率を範囲に分けて、各比率につき少なくとも１つの選択された数字を生成するように動作可能である、ベクトルジェネレータと、
ルックアップテーブル中のエントリに対して第１のベクトルの数字の完全一致を実施することによって１次評価を実施するように動作可能な１次エバリュエータであり、前記ルックアップテーブル中の各エントリが第２のベクトルのグループに関連し、前記完全一致を実施するのに使用される前記第１のベクトルの数字の数が前記ルックアップテーブル中のエントリ間で異なる、１次エバリュエータと、
前記第１のベクトルと、第２のベクトルの前記グループのそれぞれとの類似度を決定して、前記ソースメディアコンテンツを前記参照メディアコンテンツと照合するための候補であるいずれかの第２のベクトルを識別するための、２次評価を実施するように動作可能な、２次エバリュエータと、
前記ルックアップテーブル及び前記第２のベクトルを含むデータベースとを備え、
前記第１のベクトルがソースベクトルと参照ベクトルとのいずれかであり、前記第２のベクトルが前記ソースベクトルと前記参照ベクトルとのうちの他方であり、各参照ベクトルが前記参照メディアコンテンツのタイムスライスを表す、装置。
【請求項２】
タイムスライスに対して少なくとも１つのベクトルを生成するために、前記ベクトルジェネレータが、
タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算し、
前記比率を範囲に分けて、各比率につき２進数を生成するように動作可能である、請求項１に記載の装置。
【請求項３】
前記範囲が、選択された比率間で異なり、したがって範囲間で比率値のほぼ等しい分布をもたらす、請求項１又は２に記載の装置。
【請求項４】
前記ベクトルジェネレータが、
４００Ｈｚ〜１１００Ｈｚの周波数帯域から選択された周波数ビンを使用して第１の前記ソースベクトルを生成し、１１００Ｈｚ〜３０００Ｈｚの周波数帯域から選択された周波数ビンを使用して第２の前記ソースベクトルを生成するように動作可能である、請求項１〜３のいずれか一項に記載の装置。
【請求項５】
タイムスライスに対してさらに他のソースベクトルを生成するために、
前記スペクトログラムジェネレータが、前記ソース信号にフーリエ変換を適用することによってさらに他のスペクトログラムを生成するように動作可能であり、前記さらに他のスペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表し、
前記スペクトログラムジェネレータが、前記タイムスライスの前記カラム（column）からの前記それぞれの周波数ビンにフーリエ変換をさらに適用してそれぞれの係数セットを生成するように動作可能であり、
前記ベクトルジェネレータが、前記さらに他のソースベクトルを生成するように動作可能であり、それにより、タイムスライスのカラム（column）中のＮ個の係数のセットに対して、前記さらに他のソースベクトルの要素２からＮ−１までのそれぞれにつき、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値によってｎ番目の要素が形成され、前記ベクトルジェネレータが、前記さらに他のソースベクトルの前記要素を量子化して、各要素につき少なくとも１つの数字を生成するように動作可能である、請求項１〜４のいずれか一項に記載の装置。
【請求項６】
参照メディアコンテンツとの比較によってソース信号からソースメディアコンテンツを自動認識することを可能にするための装置であって、
前記ソース信号にフーリエ変換を適用することによって前記ソース信号からスペクトログラムを生成するように動作可能なスペクトログラムジェネレータであり、前記スペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、スペクトログラムジェネレータと、
前記タイムスライスの前記カラム（column）からの選択された周波数ビンの大きさの比率を計算し、前記比率を量子化してソースベクトルの数字を生成することによって、前記ソース信号のタイムスライスに対して少なくとも１つのソースベクトルを生成するように動作可能なベクトルジェネレータと、
ルックアップテーブル中のエントリに対して第１のベクトルの数字の完全一致を実施することによって１次評価を実施するように動作可能な１次エバリュエータであり、前記ルックアップテーブル中の各エントリが第２のベクトルのグループに関連し、前記完全一致を実施するのに使用される前記第１のベクトルの数字の数が前記ルックアップテーブル中のエントリ間で異なる、１次エバリュエータと、
前記第１のベクトルと、第２のベクトルの前記グループのそれぞれとの類似度を決定して、前記ソースメディアコンテンツを前記参照メディアコンテンツと照合するための候補であるいずれかの第２のベクトルを識別するための、２次評価を実施するように動作可能な、２次エバリュエータと、
前記ルックアップテーブル及び前記第２のベクトルを含むデータベースとを備え、
前記第１のベクトルがソースベクトルと参照ベクトルとのいずれかであり、前記第２のベクトルが前記ソースベクトルと前記参照ベクトルとのうちの他方であり、各参照ベクトルが前記参照メディアコンテンツのタイムスライスを表し、
タイムスライスに対してさらに他のソースベクトルを生成するために、
前記スペクトログラムジェネレータが、前記ソース信号にフーリエ変換を適用することによってさらに他のスペクトログラムを生成するように動作可能であり、前記さらに他のスペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表し、
前記スペクトログラムジェネレータが、前記タイムスライスの前記カラム（column）からの前記それぞれの周波数ビンにフーリエ変換をさらに適用してそれぞれの係数セットを生成するように動作可能であり、
前記ベクトルジェネレータが、前記さらに他のソースベクトルを生成するように動作可能であり、それにより、タイムスライスのカラム（column）中のＮ個の係数のセットに対して、前記さらに他のソースベクトルの要素２からＮ−１までのそれぞれにつき、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値によってｎ番目の要素が形成され、前記ベクトルジェネレータが、前記さらに他のソースベクトルの前記要素を量子化して、各要素につき少なくとも１つの数字を生成するように動作可能である、装置。
【請求項７】
前記ソース信号がオーディオ信号であり、前記周波数ビンが対数目盛りに従って割り振られた周波数である、請求項１〜６のいずれか一項に記載の装置。
【請求項８】
前記ルックアップテーブルが、葉に至る可変深度の木として編成され、前記ルックアップテーブルが第１のベクトルによって索引付けされ、
各葉が、第２のベクトルのそれぞれのグループに関連する前記ルックアップテーブル中のエントリを形成し、
各葉に至る数字の数が、各葉につきほぼ等しいサイズの第２のベクトルのグループを提供するように決定される、請求項１〜７のいずれか一項に記載の装置。
【請求項９】
各葉に至る数字の数が、所与の葉について前記完全一致を実施するのに使用される前記第１のベクトルの数字の数を形成する、請求項８に記載の装置。
【請求項１０】
前記ルックアップテーブルの各葉が、ｄ個の一致する数字を有する第２のベクトルのグループを識別し、ｄが前記葉までの前記木の深度に対応する、請求項８又は９に記載の装置。
【請求項１１】
前記２次エバリュエータが、距離メトリックを使用して前記２次評価を実施して、前記第１のベクトルと第２のベクトルの前記グループのそれぞれとの前記類似度を決定するように動作可能である、請求項１〜１０のいずれか一項に記載の装置。
【請求項１２】
候補として識別されたいずれかの第２のベクトルに対して３次評価を実施するための３次エバリュエータをさらに備え、前記３次エバリュエータが、１つ又は複数のさらに他の第１のベクトルと、前記２次評価で候補として識別された前記第２のベクトルに対応する１つ又は複数のさらに他の第２のベクトルとの類似度を決定するように動作可能である、請求項１〜１１のいずれか一項に記載の装置。
【請求項１３】
前記さらに他の第１のベクトル及び前記さらに他の第２のベクトルが、前記第１のベクトルと候補として識別された前記第２のベクトルとからそれぞれ時間的な隔たりがある、請求項１２に記載の装置。
【請求項１４】
前記ソース信号が、受信されたプログラム信号である、請求項１〜１３のいずれか一項に記載の装置。
【請求項１５】
前記プログラム信号のうち一致する前記ソースメディアコンテンツのレコードを生成するように動作可能なレコードジェネレータを備える、請求項１４に記載の装置。
【請求項１６】
一致する前記ソースメディアコンテンツを識別するキューシートを生成するように動作可能なキューシートジェネレータを備える、請求項１５に記載の装置。
【請求項１７】
前記第２のベクトルが前記ソースベクトルであり、前記装置が前記ソースベクトルから前記データベースを生成するように構成された、請求項１〜１６のいずれか一項に記載の装置。
【請求項１８】
前記スペクトログラムジェネレータ、前記ベクトルジェネレータ、前記１次エバリュエータ及び前記２次エバリュエータを実装するように動作可能な、少なくとも１つのプロセッサと記憶装置とコンピュータソフトウェアとを備える、請求項１〜１７のいずれか一項に記載の装置。
【請求項１９】
参照メディアコンテンツとの比較によってソース信号からソースメディアコンテンツを自動認識するための自動認識方法であって、
前記ソース信号にフーリエ変換を適用することによって前記ソース信号からスペクトログラムを生成するステップであり、前記スペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、ステップと、
前記タイムスライスの前記カラム（column）からの選択された周波数ビンの大きさの比率を計算し、前記比率を量子化してソースベクトルの数字を生成することによって、前記ソース信号のタイムスライスに対して少なくとも１つのソースベクトルを生成するステップであり、タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算するサブステップと、前記比率を範囲に分けて、各比率につき少なくとも１つの選択された数字を生成するサブステップとを含むステップと、
ルックアップテーブル中のエントリに対して第１のベクトルの数字の完全一致を行うことによって１次評価を実施するステップであり、前記ルックアップテーブル中の各エントリが第２のベクトルのグループに関連し、前記完全一致を実施するのに使用される前記第１のベクトルの数字の数が前記ルックアップテーブル中のエントリ間で異なる、ステップと、
前記第１のベクトルと、第２のベクトルの前記グループのそれぞれとの類似度を決定して、前記ソースメディアコンテンツを前記参照メディアコンテンツと照合するための候補であるいずれかの第２のベクトルを識別するための、２次評価を実施するステップとを含み、
データベースが前記ルックアップテーブル及び前記第２のベクトルを含み、
前記第１のベクトルがソースベクトルと参照ベクトルとのいずれかであり、前記第２のベクトルが前記ソースベクトルと前記参照ベクトルとのうちの他方であり、各参照ベクトルが前記参照メディアコンテンツのタイムスライスを表す、方法。
【請求項２０】
タイムスライスに対して少なくとも１つのベクトルを生成するステップが、
タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算するサブステップと、
前記比率を範囲に分けて、各比率につき２進数を生成するサブステップとを含む、請求項１９に記載の方法。
【請求項２１】
前記範囲が、選択された比率ビン間で異なり、したがって範囲間で比率値のほぼ等しい分布をもたらす、請求項１９又は２０に記載の方法。
【請求項２２】
４００Ｈｚ〜１１００Ｈｚの周波数帯域から選択された周波数ビンを使用して第１の前記ソースベクトルを生成し、１１００Ｈｚ〜３０００Ｈｚの周波数帯域から選択された周波数ビンを使用して第２の前記ソースベクトルを生成するステップを含む、請求項１９〜２１のいずれか一項に記載の方法。
【請求項２３】
タイムスライスに対してさらに他のソースベクトルを生成するステップを含み、前記さらに他のソースベクトルが、
前記ソース信号にフーリエ変換を適用することによってさらに他のスペクトログラムを生成するサブステップであって、前記さらに他のスペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、サブステップと、
前記タイムスライスの前記カラム（column）からの前記それぞれの周波数ビンにフーリエ変換をさらに適用して、それぞれの係数セットを生成するサブステップと、
前記さらに他のソースベクトルを生成するサブステップであって、それにより、タイムスライスのカラム（column）中のＮ個の係数のセットに対して、前記さらに他のソースベクトルの要素２からＮ−１までのそれぞれにつき、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値によってｎ番目の要素が形成され、前記さらに他のソースベクトルの前記要素を量子化して各要素につき少なくとも１つの数字を生成する、サブステップとによって生成される、請求項１９〜２２のいずれか一項に記載の方法。
【請求項２４】
参照メディアコンテンツとの比較によってソース信号からソースメディアコンテンツを自動認識するための自動認識方法であって、
前記ソース信号にフーリエ変換を適用することによって前記ソース信号からスペクトログラムを生成するステップであり、前記スペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、ステップと、
前記タイムスライスの前記カラム（column）からの選択された周波数ビンの大きさの比率を計算し、前記比率を量子化してソースベクトルの数字を生成することによって、前記ソース信号のタイムスライスに対して少なくとも１つのソースベクトルを生成するステップと、
ルックアップテーブル中のエントリに対して第１のベクトルの数字の完全一致を行うことによって１次評価を実施するステップであり、前記ルックアップテーブル中の各エントリが第２のベクトルのグループに関連し、前記完全一致を実施するのに使用される前記第１のベクトルの数字の数が前記ルックアップテーブル中のエントリ間で異なる、ステップと、
前記第１のベクトルと、第２のベクトルの前記グループのそれぞれとの類似度を決定して、前記ソースメディアコンテンツを前記参照メディアコンテンツと照合するための候補であるいずれかの第２のベクトルを識別するための、２次評価を実施するステップとを含み、
データベースが前記ルックアップテーブル及び前記第２のベクトルを含み、
前記第１のベクトルがソースベクトルと参照ベクトルとのいずれかであり、前記第２のベクトルが前記ソースベクトルと前記参照ベクトルとのうちの他方であり、各参照ベクトルが前記参照メディアコンテンツのタイムスライスを表し、
前記方法が、タイムスライスに対してさらに他のソースベクトルを生成するステップをさらに含み、前記さらに他のソースベクトルが、
前記ソース信号にフーリエ変換を適用することによってさらに他のスペクトログラムを生成するサブステップであって、前記さらに他のスペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、サブステップと、
前記タイムスライスの前記カラム（column）からの前記それぞれの周波数ビンにフーリエ変換をさらに適用してそれぞれの係数セットを生成するサブステップと、
前記さらに他のソースベクトルを生成するサブステップであり、それにより、タイムスライスのカラム（column）中のＮ個の係数のセットに対して、前記さらに他のソースベクトルの要素２からＮ−１までのそれぞれにつき、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値によってｎ番目の要素が形成され、前記さらに他のソースベクトルの前記要素を量子化して、各要素につき少なくとも１つの数字を生成する、サブステップとによって生成される、方法。
【請求項２５】
前記ソース信号がオーディオ信号であり、前記周波数ビンが対数目盛りに従って割り振られた周波数である、請求項１９〜２４のいずれか一項に記載の方法。
【請求項２６】
前記ルックアップテーブルが、葉に至る可変深度の木として編成され、前記ルックアップテーブルが前記第１のベクトルによって索引付けされ、
各葉が、第２のベクトルのそれぞれのグループに関連する前記ルックアップテーブル中のエントリを形成し、
各葉に至る数字の数が、各葉につきほぼ等しいサイズの第２のベクトルのグループを提供するように決定される、請求項１９〜２５のいずれか一項に記載の方法。
【請求項２７】
各葉に至る数字の数が、所与の葉について前記完全一致を実施するのに使用される前記第１のベクトルの数字の数を形成する、請求項２６に記載の方法。
【請求項２８】
前記ルックアップテーブルの各葉が、ｄ個の一致する数字を有する第２のベクトルのグループを識別し、ｄが前記葉までの前記木の深度に対応する、請求項２６又は２７に記載の方法。
【請求項２９】
距離メトリックを使用して前記２次評価を実施して、前記第１のベクトルと第２のベクトルの前記グループのそれぞれとの前記類似度を決定するステップを含む、請求項１９〜２８のいずれか一項に記載の方法。
【請求項３０】
候補として識別されたいずれかの第２のベクトルに対して３次評価を実施するステップを含み、前記３次評価が、１つ又は複数のさらに他の第１のベクトルと、前記２次評価で候補として識別された前記第２のベクトルに対応する１つ又は複数のさらに他の第２のベクトルとの類似度を決定するサブステップを含む、請求項１９〜２９のいずれか一項に記載の方法。
【請求項３１】
前記さらに他の第１のベクトル及び前記さらに他の第２のベクトルが、前記第１のベクトルと候補として識別された前記第２のベクトルとからそれぞれ時間的な隔たりがある、請求項３０に記載の方法。
【請求項３２】
前記ソース信号が、受信されたプログラム信号である、請求項１９〜３１のいずれか一項に記載の方法。
【請求項３３】
前記プログラム信号のうち一致する前記ソースメディアコンテンツのレコードを生成するステップを含む、請求項３２に記載の方法。
【請求項３４】
一致する前記ソースメディアコンテンツを識別するキューシートを生成するステップを含む、請求項３３に記載の方法。
【請求項３５】
前記第２のベクトルが前記ソースベクトルであり、前記方法が前記ソースベクトルから前記データベースを生成するように構成された、請求項１９〜３４のいずれか一項に記載の方法。
【請求項３６】
コンピュータに請求項１９〜３５のいずれか一項に記載の方法を実施させるプログラム命令を格納する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、オーディオメディアコンテンツを自動認識するためのオーディオ認識システム及び方法に関する。
【背景技術】
【０００２】
[0002]流入（incoming）オーディオストリーム（「プログラム」）を処理し、音楽及び音響効果（「トラック」）の内部データベースを探索して、プログラム内でのこれらのトラックの使用を識別するための、様々なオーディオ認識システム及び方法が知られている。
【０００３】
[0003]現実世界では、音楽はしばしば、プログラムのオーディオのレイヤのうちの１つに過ぎない。オーディオ認識に対する難題の１つは、音響効果、ボイスオーバ、アンビエンスなど、同時に発生する他のオーディオレイヤがある状況でも、音楽の識別を認識することである。他の歪みとしては、等化（トラック中の高音域と低音域の相対的な全体量の調整）、並びに、テンポ及び／又はピッチの変化が挙げられる。
【０００４】
[0004]いくつかのオーディオ認識技法は、標準的なアルゴリズムを使用して、計算済みハッシュ値に対して近傍探索を直接的に実施することに基づく。探索されている空間が多数の次元を有する場合、このような標準的なアルゴリズムは、あまり効率的に機能しない。
【０００５】
[0005]Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍｕｓｉｃ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｔｒｉｅｖａｌ，２００２に掲載された、Ｐｈｉｌｉｐｓ  ＲｅｓｅａｒｃｈのＪ．Ｈａｉｔｓｍａ他による「Ａ  Ｈｉｇｈｌｙ  Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ」という題名の記事には、マルチメディアオブジェクトを比較するためのメディアフィンガプリンティングシステムが記述されている。この記事では、多数のマルチメディアオブジェクトのフィンガプリントが、関連するメタデータ（例えばアーティスト名、タイトル、及びアルバム）と共にデータベースに記憶され、それによりフィンガプリントがメタデータへのインデックスとしての働きをすることが述べられている。この場合、フィンガプリントを計算して、これを使用してデータベースに照会することによって、識別されないマルチメディアコンテンツを識別することができる。この記事には、サブフィンガプリント探索によって事前選択された候補位置で完全フィンガプリント比較を実施することのみに基づく、２段階の探索アルゴリズムが述べられている。候補位置は、３２ビットのサブフィンガプリントをエントリとして有するハッシュテーブル又はルックアップテーブルを使用して、突き止められる。あらゆるエントリは、それぞれの３２ビットサブフィンガプリントが突き止められる位置である実際のフィンガプリントリスト中の位置へのポインタを含むリストをポイントする。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】「Ａ  Ｈｉｇｈｌｙ  Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ  Ｓｙｓｔｅｍ」、Ｊ．Ｈａｉｔｓｍａ他、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍｕｓｉｃ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｔｒｉｅｖａｌ，２００２
【発明の概要】
【発明が解決しようとする課題】
【０００７】
[0006]しかし、オーディオメディアコンテンツをより効率的且つより確実に識別するための装置、システム、及び方法が、依然として必要とされている。
【課題を解決するための手段】
【０００８】
（概要）
[0007]本発明の態様は、特許請求の範囲において定義される。
【０００９】
[0008]例示的な一実施形態では、サンプルメディアコンテンツの自動認識がもたらされる。オーディオ信号の連続的なタイムスライスについて、スペクトログラムが生成される。タイムスライスのカラム（column）からのそれぞれの周波数ビンの大きさの比率を計算することによって、タイムスライスに対して１つ又は複数のサンプルベクトルが生成される。１次評価段階（１次テスト段階）では、ハッシュテーブル中のエントリに対してサンプルベクトルのビットの完全一致が実施されて、１つ又は複数の参照ベクトルのグループが識別される。２次評価段階（２次テスト段階）では、サンプルベクトルと参照ベクトルのグループのそれぞれとの類似度が実施されて、サンプルメディアコンテンツを照合するための候補であるいずれかの参照ベクトルが識別され、各参照ベクトルは、参照メディアコンテンツのタイムスライスを表す。ベクトルはまた、「ハッシュ」、「ハッシュベクトル」、「シグネチャ」、又は「フィンガプリント」として、様々に記述することができる。
【００１０】
[0009]本発明の一実施形態は、動作のスケーラビリティ及び効率をもたらすことができる。本発明の一実施形態は、参照トラックの非常に大きなデータベースを効率的且つ確実に扱うことができる。
【００１１】
[0010]本発明の一実施形態は、プログラムオーディオから生成されたハッシュがデータベース中の多すぎるハッシュと一致することがない傾向にあるように、良い識別力（多くの「エントロピー」）を有するハッシュを採用することができる。本発明の一実施形態は、オーディオ信号のスペクトルからの多数の測定値を採用することができる。各測定値は、例えば、歪みに対して比較的頑強な、２ビットの２進数の形とすることができる。これらの測定値から、スペクトルの限定された部分に依存するスペクトルハッシュのセットを生成することができる。
【００１２】
[0011]本発明の一実施形態は、１次ステップでの完全一致データベース探索を、可変深度の木構造に記憶された追加の情報を使用する精緻化ステップと組み合わせる方法を用いる。これは、近傍探索の効果と同様の効果をもたらすが、従来の近傍探索に桁違いに勝る処理速度の向上を達成する。完全一致探索は、コンピュータ中で効率的に行うことができ、より高速な認識の実施を可能にすることができる。一実施形態は、非常に大きなソースフィンガプリントデータベースを使用するとき、従来の手法と比較して低減された処理要件で、歪みのある環境で正確な認識を可能にする。一実施形態は、単純な完全一致に関与するシグネチャ部分のエントロピーが慎重に制御されるようにして（そのようにシグネチャのエントロピーを慎重に制御することなしにおおよその一致を使用するのではなく）、ある瞬間に対応するシグネチャ（又はフィンガプリント）が生み出されることを可能にする。これにより、はるかに削減されたプロセッサコストで、正確さ及びスケーラビリティを可能にすることができる。
【００１３】
[0012]スペクトログラムから多数の測定値をとるのではなく、例示的な一実施形態は、完全一致させることが必要とされるハッシュからのビットの数を変動させることによって、様々なハッシュの種々の強度を考慮に入れる。例えば、強いハッシュの最初の２７個のビットのみを完全一致させればよく、より弱いハッシュの場合は、より多数の、例えば最初の３４ビットを一致させればよい。本発明の一実施形態は、可変深度の木構造を使用して、これらの一致動作の効率的な実施を可能にすることができる。
【００１４】
[0013]例示的な一実施形態は、雑音のある環境で正確な認識を可能にすることができ、また、認識すべきオーディオの継続時間が非常に短い場合（例えば３秒未満、又は２秒未満、又は１秒未満）であっても、そのようにすることができる。例示的な一実施形態は、フィンガプリント付きコンテンツの非常に大きなデータベースソース（例えば百万曲を超える楽曲の）に対する認識をもたらすことができる。例示的な一実施形態は、従来のスタンドアロンコンピュータ上で、又はネットワーク化されたコンピュータシステム上で実装することができる。例示的な一実施形態は、既存の認識システムの結果の品質を大きく改善することができ、このようなシステムの大規模実装のコストを改善することができる。
【００１５】
[0014]以下、添付の図面を参照しながら、単なる例として、実施形態について述べる。
【図面の簡単な説明】
【００１６】
【図１】[0015]例示的な装置の概略ブロック図である。
【図２】[0016]オーディオ信号を処理する方法の概観を提供する流れ図である。
【図３】[0017]種々の周波数で量子化レベルを設定する例を示す概略表現である。
【図４】[0018]テストベクトル間の距離の例示的な分布を示す図である。
【図５】[0019]図２の方法の一実施形態を実施するためのコンピュータシステムの概略表現である。
【図６】[0020]図５のコンピュータシステムのデータベースの構造をより詳細に示す図である。
【発明を実施するための形態】
【００１７】
（詳細な説明）
[0021]本発明の例示的な一実施形態は、流入（incoming）オーディオストリーム（「プログラム」）を処理し、音楽及び音響効果（「トラック」）の内部データベースを探索して、プログラム内でのこれらのトラックの使用を識別する、オーディオ認識システムを提供する。例示的な一実施形態の出力の一例は、使用されるトラックのセクションと、それらがプログラム中のどこで発生するかとをリストするキューシート（ｃｕｅ  ｓｈｅｅｔ）の形とすることができる。
【００１８】
[0022]例示的な一実施形態は、例えば１千万秒の音楽のデータベースを扱うことができる。しかし、他の実施形態は、はるかに大きいデータベース、例えば１０億秒の音楽のデータベースを扱うようにスケーラブルであり、およそ例えば３秒以下、例えば１秒の継続時間のクリップを認識することができ、通常の音楽ラジオ局からのオーディオを処理する際に、従来のサーバコンピュータ上でリアルタイムの１０倍前後のレートで動作することができる。
【００１９】
[0023]以下は、本文書で使用される用語のいくつかの定義である。
【００２０】
[0024]「トラック」は、後の何らかの時点で認識されることになるオーディオのクリップである。利用可能な全てのトラックは、処理されてデータベースに結合される。
【００２１】
[0025]「プログラム」は、認識されることになる１つのオーディオである。プログラムは、他の材料がちりばめられた、接合され様々な歪みを受けたいくつかのトラックを含むものと想定される。
【００２２】
[0026]「歪み」は、プログラムを構成するトラックに対して起こる何らかである。歪みの例は以下のとおりである：
−    雑音：トラックに対するランダム雑音の混合
−    ボイスオーバ：トラックに対する音声の混合
−    ピッチ：基礎をなすタイミングが維持される一方での、ピッチの変化
−    テンポ：ピッチが維持される一方での、タイミングの変化
−    速度：ピッチとテンポの両方の変化（例えば、テープをより速く再生することによる）。
【００２３】
[0027]ピッチ、テンポ、及び速度は関係していること、また、いずれか２つを組み合わせて３つ目を生成できることに留意されたい。
【００２４】
[0028]「ハッシュ」は、トラック又はプログラムの特定部分（タイムスライス）から得られる１つの小さい情報であり、この情報は、歪みによって変化しないのが理想的である。
【００２５】
[0029]図１は、本発明の一実施形態を形成する装置１１０の例の概略ブロック図である。
【００２６】
[0030]信号ソース１０２は、例えば、メディアプログラム（例えばオーディオプログラム）を受信してソース信号１０４を提供するための、マイクロホン、ラジオ番組又はインターネット番組受信機などの形とすることができる。
【００２７】
[0031]スペクトログラムジェネレータ１１２は、ソース信号１０４にフーリエ変換を適用することによってソース信号からスペクトログラムを生成するように動作可能とすることができる。スペクトログラムは複数のカラム（column）を含み、各カラム（column）はタイムスライスを表し複数の周波数ビンを含み、各周波数ビンは、ソース信号のそのタイムスライスについての周波数成分のそれぞれの範囲を表す。
【００２８】
[0032]ベクトルジェネレータ１１４は、タイムスライスのカラム（column）からのそれぞれの周波数ビンの大きさの比率を計算し、この比率を量子化してソースベクトルの数字を生成することによって、ソース信号のタイムスライスに対して少なくとも１つのソースベクトルを生成するように動作可能とすることができる。
【００２９】
[0033]データベース４６は参照ベクトルを含み、各参照ベクトルは、参照メディアコンテンツのタイムスライスを表す。
【００３０】
[0034]コンテンツエバリュエータ１１６は、１次、２次、及び３次エバリュエータ、それぞれ１１８、１２０、及び１２２を備えることができる。
【００３１】
[0035]１次エバリュエータ１１８は、データベース４６のルックアップテーブル６６中のエントリに対してソースベクトルの数字の完全一致を実施することによって、１次評価を実施するように動作可能とすることができる。ルックアップテーブル中の各エントリは参照ベクトルのグループに関連し、完全一致を実施するのに使用されるソースベクトルの数字の数は、ルックアップテーブル６６中のエントリ間で異なってもよい。ルックアップテーブル６６は、葉に至る可変深度の木として編成することができ、各葉は、参照ベクトルのそれぞれのグループに関連する、ルックアップテーブル中のエントリを形成する。各葉に至る数字の数は、各葉につきほぼ等しいサイズの参照ベクトルグループを提供するように決定することができる。各葉に至る数字の数は、所与の葉について完全一致を実施するのに使用されるソースベクトルの数字の数を形成することができる。ルックアップテーブル６６の各葉は、ｄ個の同一の数字を有する参照ベクトルのグループを識別することができ、ｄは、その葉までの木の深度に対応する。
【００３２】
[0036]２次エバリュエータ１２０は、ソースベクトルと、データベース４６中の参照ベクトルのグループのそれぞれとの類似度を決定して、ソースメディアコンテンツを参照メディアコンテンツと照合するための候補であるいずれかの参照ベクトルを識別するための、２次評価を実施するように動作可能とすることができる。２次エバリュエータ１２０は、距離メトリックを使用して２次評価を実施して、ソースベクトルと参照ベクトルのグループ中の各参照ベクトルとの類似度を決定するように動作可能とすることができる。
【００３３】
[0037]３次エバリュエータ１２２は、候補として識別されたいずれかの参照ベクトルについて３次評価を実施するように動作可能とすることができる。３次エバリュエータ１２２は、１つ又は複数のさらに他のソースベクトルと、２次評価で識別された候補参照ベクトルに対応する１つ又は複数のさらに他の参照ベクトルとの類似度を決定するように動作可能とすることができる。さらに他のソースベクトル及びさらに他の参照ベクトルはそれぞれ、ソースベクトル及び識別された候補参照ベクトルから時間的な隔たりがあるものとすることができる。
【００３４】
[0038]出力ジェネレータ１２４は、ソース信号の一致メディアコンテンツを識別する出力レコード（record）、例えばキューシートを生成するように動作可能とすることができる。
【００３５】
[0039]図２は、本発明の例示的な一実施形態の方法のステップの概観を提供する流れ図１０である。図１の装置及び図２の方法は、１つ又は複数のコンピュータシステムと、１つ又は複数のコンピュータシステム上で動作する１つ又は複数のコンピュータプログラム製品とによって実装することができる。コンピュータプログラム製品（複数可）は、任意の適切なコンピュータ可読媒体、例えばコンピュータディスク、テープ、固体記憶装置などに記憶することができる。様々な例で、プロセスの様々な段階を、別々のコンピュータプログラム及び／又は別々のコンピュータシステムによって実施することができる。例えば、後述するスペクトログラムの生成は、ハッシュ生成及び／又はデータベーステスト及び／又はキューシート生成に使用される１つ又は複数のコンピュータプログラム及び／又はコンピュータシステムとは別個の、コンピュータプログラム及び／又はコンピュータシステムによって実施することができる。さらに、図１の装置又は図２のプロセスの１つ又は複数の部分は、専用ハードウェア、例えば後続の記述でより詳細に述べる機能を提供するように構成された専用集積回路を使用して、実装することができる。
【００３６】
[0040]しかし、説明を容易にするために過ぎないが、図２を参照しながら後述するプロセスは、スペクトル生成１２、ベクトル生成１４、信号評価１６（１次、２次、及び３次段階１８、２０、及び２２を含む）、並びに出力生成２４を含むが、これらのプロセスは、１つ又は複数のプロセッサと記憶装置とを備え１つ又は複数のプログラムによって制御されるコンピュータサーバシステムを構成する装置によって実施されると仮定する。スペクトル生成１２、ベクトル生成１４、信号評価１６（１次、２次、及び３次段階１８、２０、及び２２を含む）、並びに出力生成２４を含む、後述するプロセスステップはまた、図１のスペクトルジェネレータ１１２、ベクトルジェネレータ１１４、コンテンツエバリュエータ１１６（１次、２次、及び３次エバリュエータ１１８、１２０、及び１２２の機能を含む）、並びに出力ジェネレータ１２４によって実施される機能にそれぞれ対応する。
【００３７】
（スペクトル生成１２）
[0041]この例では、例えば高速フーリエ変換（ＦＦＴ）をオーディオ信号に適用することによって、オーディオ信号の形のソース信号が処理されてスペクトログラムが生成される。
【００３８】
[0042]例示的な一実施形態では、オーディオ信号は、オーディオ信号が比較される対象となるデータベースを生成する方法と一貫性があるようにして、フォーマットされるべきである。例示的な一実施形態では、オーディオ信号は、例えば１サンプル当たり１６ビットで、可能ならステレオで、不可能ならモノラルで、例えば１２ｋＨｚでサンプリングされた、プレーン．ＷＡＶフォーマットに変換することができる。例示的な一実施形態では、ボイスオーバ及び類似の歪みに対するより大きな回復力をもたらすために、左チャネルと右チャネルとを含むステレオオーディオが、合計（左＋右）チャネル及び差分（左−右）チャネルとして表される。次いで、オーディオファイルは処理されて、スペクトログラムが生成される。
【００３９】
[0043]スペクトログラムに適用されるパラメータは、人間の耳による音の知覚に大まかに基づく。その理由は、音が被る可能性の高い種類の歪みは、人間の知覚を保存する種類の歪みだからである。スペクトログラムは、連続的なサンプル間隔（タイムスライス）についての、情報の一連のカラム（column）を含む。各タイムスライスは、例えば１〜５０ミリ秒（例えば約２０ミリ秒）に対応する。連続的なセグメントは、それらの長さのかなりの割合で、例えばそれらの長さの９０〜９９％、例えば約９７％で、重なり得る。この結果、音の特性は、セグメントからセグメントへゆっくりとしか変化しない傾向がある。１つのタイムスライスについてのカラム（column）は、対数目盛り上に構成された複数の周波数ビンを含むことができ、各ビンは、例えば、およそ半音１つの幅である。
【００４０】
[0044]スペクトルの各タイムスライス又はカラム（column）につき、かなりの数の周波数ビンを設けることができる。例えば、約４０〜１００個又はより多くの周波数ビンを生成することができる。特定の一例では、９２個の周波数ビンが設けられる。
【００４１】
（ベクトル生成１４）
[0045]第２のステップ１４は、１つ又は複数のハッシュベクトル又はハッシュの生成である。例示的な一実施形態では、いくつかの異なるタイプのハッシュが生成される。ハッシュ（又は「フィンガプリント」、「シグネチャ」）を形成する低次元ベクトルの１つ又は複数のシーケンスは、遭遇する可能性のある様々なタイプの歪みに対して頑強であるように設計される。
【００４２】
[0046]例示的な一実施形態では、追加の雑音及び類似の信号に対する回復力を与えるために、ハッシュを生成する前に測定値を粗く量子化することができる。粗く量子化したいという望みと、ソースオーディオから十分なエントロピーを導出する必要性との間で、対立がある。得られるエントロピーを高めるために、どんな所与の測定値に対しても量子化値が等しく見込みがある傾向にあるように量子化を非線形に実施することができ、これにより、図３に示すように、ハッシュの分布はより均一になる。各周波数で量子化しきい値を独立して選択して、ハッシュの分布をより均一にすることができる。頑強性を最大限にするために、各測定値は、スペクトログラム中の２つの点のみに依存するように選択することができる。
【００４３】
[0047]例示的な一実施形態では、基本的なハッシュは、隣接するか又はほぼ隣接する周波数ビンの大きさの比率を計算することによって、スペクトログラムの単一のカラム（column）から導出される。一例では、カラム（column）中の隣接する周波数ビンの内容の比率を決定し、この比率を４つの範囲のうちの１つに分けることによって、ベクトルを生成することができる。
【００４４】
[0048]例えば、ビン０〜９１のそれぞれにつき、以下のように比率を決定する：
−    ビンｉの値／ビンｉ＋１の値
−    そして、この比率が、４つの範囲００、０１、１０、及び１１のうちのどの範囲内に入るかを決定する。
【００４５】
[0049]極端な単純化で表して、範囲００が、０と０．５との間の比率に対応し、範囲０１が、０．５と１との間の比率に対応し、範囲１０が、１と５との間の割合に対応し、範囲１１が、５と無限との間の比率に対応すると考えてみる。したがって、比較されるビンの対それぞれにつき２ビットの数を生成できることがわかる。別の例では、異なる数範囲を使用して、異なる基数に従って異なる数のビット又は１つ若しくは複数の数字を生成することができる。
【００４６】
[0050]このようなベクトルは、元の信号中の全体的な振幅変化に対してほぼ不変とすることができ、等化（高い又は低い周波数のブースト又はカット）に対して頑強とすることができる。範囲００、０１、１０、及び１１は、ビンごとに異なってよく、オーディオのテストセットから比率の値を収集して、その結果得られた分布を４つの等しい部分に分けることによって、経験的に得ることができる。
【００４７】
[0051]例示的な一実施形態では、次いで、２つのハッシュが生成される。一方のハッシュは、約４００Ｈｚ〜約１１００Ｈｚの周波数帯域を使用して生成され（「タイプ０ハッシュ」）、他方のハッシュは、約１１００Ｈｚ〜約３０００Ｈｚの周波数帯域を使用して生成される（「タイプ１ハッシュ」）。これらの比較的高い周波数帯域は、トラックにボイスオーバを加えることによって引き起こされる歪みに対してより頑強である。
【００４８】
[0052]例示的な一実施形態では、ピッチ変動（オーディオサンプルのシーケンスが通常のサンプルレートよりも速く又は遅く再生されるときに起こるものなど）に対して頑強であるように設計された、さらに他のハッシュタイプ（「タイプ２ハッシュ」）が生成される。基本的なハッシュと同様の、対数周波数スペクトログラムビンのセットが生成される。次いで、各スペクトログラムビンの振幅をとって、第２のフーリエ変換が適用される。この手法は、「対数周波数ケプストラム」に似た係数のセットを生成する。元のオーディオ中のピッチシフトが、対数周波数スペクトログラムのカラム（column）における平行移動に対応することになり、したがって、（エッジ効果を無視して、）得られた係数中の位相シフトに対応することになる。次いで、得られた係数が処理されて、新しいベクトルが形成される。この新しいベクトルのｎ番目の要素は、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値をとることによって得られる。この量は、係数中の位相シフトに対して不変であり、したがって、元の信号中のピッチシフトに対しても不変である。また、元の信号中のボリュームの変化の下でも不変である。
【００４９】
[0053]連続的なセグメントはそれらの長さのかなりの割合で重なるので、音の特性は、セグメントからセグメントへゆっくりとしか変化しない傾向があり、それにより、ハッシュは、セグメントからセグメントへ１又は２ビット又は桁でしか変化しない傾向がある。
【００５０】
[0054]これらのハッシュは全て、スペクトログラムの１つのカラム（column）を調べるだけなので、これらのハッシュは原則的に、テンポ変動（ピッチシフトなしの時間伸張又は圧縮）に対して不変である。いくつかのテンポ変動アルゴリズムはより低周波数のオーディオ成分のいくらかの歪みを引き起こすことがわかる可能性があるので、前述のようなより高周波数の成分に基づくハッシュは、より頑強である。
【００５１】
[0055]例示的な一実施形態は、プログラムオーディオ中のボイスオーバに関する頑強性をもたらすことができる。トラックにボイスオーバを加えることの一般的な影響は、時間と周波数とにおいて局所化される傾向のあるエリアでスペクトログラムを変化させることである。スペクトログラムの単一のカラム（column）（オーディオの非常に短いセクションに対応する）のみに依存するハッシュを使用することは、ボイスオーバに関する頑強性をもたらす。これにより、ボイスオーバが短い間でも（おそらく言葉の途中でも）一時停止する場合にトラックを認識する良い機会が与えられる。周波数において少なくとも部分的に局所化されるハッシュを使用することはまた、ボイスオーバ並びにいくつかの他の種類の歪みに対する回復力を改善するのにも役立つ。
【００５２】
[0056]さらに、各ハッシュがオーディオの非常に短いセクションに依存することは、トラックの非常に短いセクションを認識する可能性をもたらす。
【００５３】
[0057]ピッチの転位（付随するテンポ変化あり又はなし）に対する回復力は、修正されたケプストラム計算に基づいてハッシュを生成することによって達成することができる。
【００５４】
（テスト段階（コンテンツ評価）１６）
[0058]例示的な一実施形態では、次いで、ハッシュをデータベース中のトラックの事前計算済みハッシュと比較することによって、プログラムオーディオが認識される。このルックアッププロセスの目標は、スペクトログラムの１つのカラム（column）から得られたベクトルを例えば使用して、音楽データベース全体にわたり近似ルックアップ又は「最近傍」探索を実施することである。これは、可能性のある多数のターゲットオブジェクトが音楽データベースから導出される、高次元探索である。
【００５５】
[0059]例示的な一実施形態では、これは多段階テストプロセス１６として行われる。
【００５６】
（１次テスト段階（１次評価）１８）
[0060]完全一致ルックアップを使用して、１次テスト段階１８が実施される。例示的な一実施形態では、これは、ハッシュテーブル中でルックアップを実施するための少数のビットを含む単純な２値ベクトルとしてハッシュを使用して行われる。少数のビットを使用する結果として、各ルックアップは通常、データベース中の多数のヒットを返す。後でより明確になる理由で、所与のキーに対する１次ルックアップに応答して取り出されるデータベース中のヒットのセットは、「葉」と呼ばれる。
【００５７】
[0061]実際上は、キーを構築するためにスペクトログラムから抽出されるビットは、独立しておらず、「０」又は「１」である可能性が等しく高いわけではない。言い換えれば、ベクトルの１ビット当たりのエントロピー（音楽の所与のサンプルに関して）は、１未満である。
【００５８】
[0062]いくつかの種類のベクトルの、１ビット当たりのエントロピーは、他の種類のベクトルよりも大きい。このことを別の言い方で言うと、いくつかのキーは、他のキーよりもずっと一般的である。したがって、固定サイズのキーを使用してデータベースにアクセスする場合、多数のヒットが見つかることもあれば少数のヒットが見つかることもあることになる。キーがランダムに選ばれる場合、キーが所与の葉に含まれる確率は、この葉の中のエントリの数に比例し、また、これが良好な一致であるかどうか判定するためにこれらの各エントリをチェックするのに必要とされる追加の作業の量も、この葉の中のエントリの数に比例する。結果として、このキーについて行われるべき作業の予想総量は、この場合、葉のサイズの２乗の平均に比例する。このことに鑑みて、一実施形態では、葉のサイズをできるだけ等しくすることによって、この値が最小限に抑えられる（すなわちシステム性能が最大限になる）。
【００５９】
[0063]一実施形態では、したがって、葉のサイズを均等にすることを目標としたデータベース構造が選ばれる。
【００６０】
[0064]望むなら、スペクトログラムの連続関数からハッシュのビットを導出することができる。例えば、連続的な量を８つの異なる値のうちの１つに量子化し、結果を３ビットとしてハッシュ中で符号化することができる。このような場合、一様量子化方式を使用するのではなく、その代わりに、可能性のある各量子化値が発生する可能性が等しく高い傾向があるように、量子化しきい値を選ぶ（例えば大きな音楽サンプルの分析に基づいて）ことが有利である。データベースを作成するときに使用される量子化レベルは、データベース中でルックアップされることになるプログラムからハッシュを作成するときに使用される量子化レベルと同じである。
【００６１】
[0065]ハッシュ中のビットはまた、頑強である可能性がより高いビット（例えば、量子化された連続的な量のより上位のビット）がハッシュの最上位端に向かって配置され、頑強性のより低いビットがハッシュの最下位端に向かって配置されるように、構成することができる。
【００６２】
[0066]一実施形態では、データベースは、２分木の形で構成される。木の深度は、ハッシュ中のビットの位置に対応する。木は、キーハッシュからの１ビットを消費しながら（最上位すなわち最も頑強なものから先に）下から上に横断されて、終端ノード（又は「葉」）が例えば深度ｄで見つかるまで、各点で、左の子が選択されるか右の子が選択されるかが判定される。葉は、ｄ個の最上位ビットがキーハッシュのｄ個の最上位ビットと一致するようなハッシュを含むデータベース中のトラックに関する情報を含む。
【００６３】
[0067]葉は様々な深度にあり、これらの深度は、木の各葉がおよそ同程度の数のエントリ、例えばほぼ同数のエントリを含むように選ばれる。他の例では、木は２分木とは別の基数に基づいてもよいことに留意されたい（例えば３分木）。
【００６４】
[0068]したがって、１次テスト段階では、プログラムオーディオからのハッシュの選択されたビットと、参照トラックの記憶済みハッシュとの間で、完全一致が探られる。照合される数字の数は、データベースのサイズと、そのハッシュがトラックの中で概してどれくらい一般的であるかとに依存し、したがって、より少ないビットがより珍しいハッシュと照合される。照合される数字の数は、トラックデータベースのサイズに応じて、例えば２分木の場合に１０〜約３０ビットの間で、変動する可能性がある。
【００６５】
[0069]さらに、同じタイプの連続的なハッシュは通常、１又は２ビットのみしか変化しないので、ハッシュが生成されるプログラム中の時点が、参照トラックデータベースについてハッシュが生成された時点と厳密に同期しなくても、照合されるビットについて完全一致が一般にまた得られる。
【００６６】
（２次テスト段階（２次評価）２０）
[0070]一実施形態では、２次テスト段階２０は、ランダムファイルアクセスによってデータベース中のプログラムハッシュをルックアップすることを含む。これにより、多数の、典型的には数百個の、例えば約２００個のハッシュ一致を含む、単一の葉の内容がフェッチされる。各一致は、プログラムハッシュに表面上類似する、元のトラックのうちの１つの中の点に対応する。
【００６７】
[0071]これらのエントリにはそれぞれ、「２次テスト情報」、すなわち、スペクトログラムから導出されたさらに他の情報を含むデータが付随する。タイプ０及びタイプ１ハッシュには、元のハッシュの作成に関係しないスペクトログラム部分からの量子化済みスペクトログラム情報が付随する。タイプ２ハッシュには、ケプストラム型係数から導出されたさらに他のビットが付随する。エントリはまた、ハッシュに対応する元のトラックと、そのトラック中での位置とを突き止めることを可能にする情報も含む。
【００６８】
[0072]２次テストの目的は、プロセスのこの段階がもはや完全一致探索に制約されないことを利用して、プログラムサンプルとデータベースエントリとが一致するかどうかに関する統計的により強力な知識を得ることである。例示的な一実施形態では、マンハッタン距離メトリック又は他の何らかの距離メトリックを使用して、２次テスト情報の２つのベクトル間の類似度を決定することができる。
【００６９】
[0073]例示的な一実施形態では、通過する各２次テストは、データベースに対してさらにランダムファイルアクセスを行って、後述する３次テストのための情報を得ることを伴う。このことを念頭に置くと、例示的な一実施形態では、葉の中のデータベースエントリのうち、平均して約１つが２次テストに合格するように、２次テストに合格するためのしきい値が構成される。言い換えれば、２次テストに合格する確率は、葉のサイズのおおよそ逆数であるべきである。
【００７０】
[0074]図４に、大きい音楽データベースからランダムに選択された２つの２次テストベクトル間の距離の例示的な分布を示す。３つのハッシュタイプのそれぞれにつき１つの曲線がある。これにより、所与のタイプの２次テストに対するしきい値は、適切な曲線上の点を選ぶことによって選ばれるが、この点は、曲線の下の総エリアの一部であるこの点の左側の裾の下のエリアが、葉のサイズの逆数とほぼ等しくなるような点である。
【００７１】
[0075]このように、２次テスト段階では、各１次ヒットが「２次テスト」を受けるが、この２次テストは、同じオーディオセグメントから生成されたハッシュ情報を、一致点における候補トラックと比較することを含む。
【００７２】
（３次テスト段階（３次評価）２２）
[0076]上に示したように、葉に記憶された情報は、ハッシュに対応する元のトラックと、そのトラック中での位置とを突き止めることを可能にする。２次テストに合格すると、一致点の周りの短いトラックセクションに対応する３次テストデータがフェッチされる。３次テスト情報は、元のトラックの一連のハッシュを含む。次いで、プログラムハッシュが３次テストデータと比較される。このプロセスは、完全一致探索に制約されず、したがって、距離メトリック、例えばマンハッタン距離メトリックを使用して、プログラムハッシュがどれくらい３次テストデータに類似するかを決定することができる。例示的な一実施形態では、メトリックは、プログラムハッシュと３次テストデータとの類似度を決定するための、経験的に決定された確率テーブルに基づく完全確率的計算を伴う。
【００７３】
[0077]プログラムハッシュのシーケンスと３次テストデータのシーケンスとの両方に、タイムスタンプ情報が付随する。通常、これらは整合すべきである。言い換えれば、プログラムハッシュのタイムスタンプは、一致する３次テストタイムスタンプから一定オフセットを有するべきである。しかし、プログラムが時間伸張された場合は（「テンポ歪み」）、このオフセットは徐々にドリフトすることになる。テンポ歪みが大きいほど、ドリフトは速い。このドリフトを検出するために、いくつかの異なる試行テンポで３次テストを実施することができ、最良の結果を、一致のためのテンポ推定値として選択することができる。テンポ歪みは比較的稀なので、例示的な一実施形態では、この選択プロセスは、テンポ歪みが発生しなかったと信じる方に偏向される。
【００７４】
[0078]３次テストでは、一致点から後方と前方への走査を実施して、プログラムハッシュと３次テストハッシュとの類似度が評価され、また、テンポ推定値を使用して、プログラム中及び３次テストデータ中で走査が実施される相対速度が決定される。あるレートよりも高いレートで良好な一致が発生し続ける限り、このことは、プログラムがその期間にわたってトラックを含むことの証拠とされる。良好な一致がもはや見られないとき、このことは、トラックの使用の開始又は終了が見つかったことの証拠とされる。
【００７５】
[0079]初期のテンポ推定値が正確である可能性は低い。したがって、走査中に、計算された公称位置のやや前及びやや後のプログラムハッシュがテストされる。これらのハッシュが公称位置のハッシュよりも３次テスト情報とよく一致する場合は、推定されたテンポに対して補正が適用される。このように、テンポにおける少量のドリフトの追跡に対応する。
【００７６】
[0080]例示的な一実施形態で使用されるハッシュはスペクトログラムの単一のカラム（column）に依存するので、これらのハッシュはテンポの変化に対して本質的に回復力がある。テンポ変化に関する分析又は探索が３次テスト段階まで延期され、３次テスト段階では調べるべき候補がわずかしかなく、そのため、可能性のあるテンポオフセットにわたる網羅的な探索が計算的に実行可能である、という点で、効率が高まる。
【００７７】
[0081]したがって、３次テスト段階では、元のトラックのスペクトログラムの高圧縮バージョンを含み得る第２のデータベースが使用される。例示的な一実施形態では、このデータベースは、１次データベースと同様のハッシュに基づき、いくらかの追加の副次情報が加わる。これらのデータは、トラックによって、且つそのトラック内での位置によって、素早くアクセス可能であるように構成される。インデックスがコンピュータのＲＡＭ内に納まるように、システムを構成することができる。３次テストの間、２次テストに合格した候補一致のいずれかの側のプログラムオーディオが、完全確率的計算を使用してデータベースと比較される。このテストは、２次テストに合格した偽陽性を拒否することができると同時に、プログラム内の、トラック材料が使用される開始点と終了点を見つける。
【００７８】
[0082]要約すると、２次テストに合格した各ハッシュは、プログラム材料と２次テスト段階によって暗示されるトラック材料との整合に基づく３次テストを受ける。３次テストでは、ハッシュ並びに他の情報を含むデータベースを使用してプログラムと候補トラックとを比較することによって、１次ヒットが発生した点から時間の後方と前方とにこの整合を拡張して、正確な比較の実施を可能にする。一致をいずれかの方向に十分に拡張できない場合は、一致は廃棄される。そうでない場合は、十分な一致が見つかったプログラム時間の範囲が（「入ポイント」及び「出ポイント」として）、一致トラックの識別と、一致したトラック時間の範囲と共に、報告される。例示的な一実施形態では、これは、出力キューシート上の１つの候補エントリを形成する。
【００７９】
（出力段階２２）
[0083]先に言及したように、オーディオ認識プロセスの一適用例は、キューシートの生成である。３次テストの結果は、元のデータベース中のトラックに対する、プログラム材料の一連の候補一致である。各一致は、プログラム開始点及び終了点と、トラックの識別番号と、トラック内の開始点及び終了点と、一致の品質の全体的な程度とを含む。一致の品質が十分に高い場合は、この一致は、キューシート中へのエントリの候補である。
【００８０】
[0084]新しい候補キューシートエントリが見つかったとき、このエントリは、すでにキューシート中にあるエントリと比較される。プログラム時間において既存のエントリと著しい重複がない場合は、キューシートに追加される。別のエントリと著しい重複がある場合は、その一致品質がより高ければ別のエントリは置き換えられ、そうでなければ候補は廃棄される。
【００８１】
[0085]全てのプログラムハッシュが処理されると、完成したキューシートを出力することができる。
【００８２】
[0086]先に示したように、述べたプロセスは、１つ又は複数のコンピュータシステム上で動作する１つ又は複数のコンピュータプログラムによって自動的に実施されるが、リアルタイムで実施される単一のプロセスに統合されてもよく、或いは１つ又は複数の異なるコンピュータシステム上で動作する１つ又は複数のコンピュータプログラムによって種々の時点で実施される１つ又は複数の別々のプロセスに分離されてもよい。以下の各節で、システム動作についてさらに詳細に述べる。
【００８３】
[0087]本例では、図５に示すシステムは、オーディオプログラム３２を入力として受け取ってキューシート３４を出力するコンピュータサーバシステム３０であると仮定する。コンピュータシステムは、１つ又は複数のプロセッサ４２、プログラム及びデータのためのランダムアクセスメモリ（ＲＡＭ）４４、データベース４６、並びに、図５に示されていない、入出力インタフェースや電源など他の従来のコンピュータシステム機構を備える。
【００８４】
（参照データベース４６）
[0088]データベース４６は、いくつかの段階でソース音楽ファイルの集まりから構築される。
【００８５】
[0089]例示的な一実施形態では、データベースは、以下のプロセスによって生成される：
１．各ソース音楽ファイルが、例えば１サンプル当たり１６ビットで、可能ならステレオで、不可能ならモノラルで、例えば１２ｋＨｚでサンプリングされた、プレーン．ＷＡＶフォーマットに変換される。左チャネルと右チャネルとを含むステレオオーディオが、合計（左＋右）チャネル及び差分（左−右）チャネルに変換される
２．ソースファイル名の番号付きリストを含むファイル（例えばｓｒｃｌｉｓｔと呼ばれる）が作成される。ファイルの各行は、一意の識別番号（「トラックＩＤ」又は「セグメントＩＤ」）と、それに続くスペースと、それに続くファイル名とを含むことができる
３．ソース音楽トラックからハッシュが生成されて、ソーストラックのハッシュを含むファイル（例えばｒａｗｓｅｇｉｎｆｏと呼ばれる）が作成される。ｓｒｃｌｉｓｔからのトラック名情報を含む補助ファイル（例えばｒａｗｓｅｇｉｎｆｏ．ａｕｘと呼ばれる）が生成される
４．ハッシュが、トラックＩＤ及び時間順にソートされる
５．３次テストデータが生成され、３次テストデータ中へのインデックスが作成されて、マッピングされたｒａｗｓｅｇｉｎｆｏファイルが形成される
６．マッピングされたｒａｗｓｅｇｉｎｆｏファイルが、ハッシュ値の小さい順にソートされる
７．第１のクラスタインデックス（以下のフォーマット記述参照）が生成される
８．補助データファイル（例えばａｕｘｄａｔａと呼ばれる）が生成される。補助データファイルは、キューシート出力の中でファイル名を表示するのに使用される
９．次いで、様々なファイルがデータベースに組み立てられる
１千万秒のオーディオのデータベースを扱うように設計されたシステムの例示的な一実施形態の場合、後で論じる様々なシステムパラメータが、以下のように設定される：
−    最大葉サイズ＝４００
−    第１のクラスタ深度＝２０。
【００８６】
[0090]しかし、これらがシステムパラメータの例に過ぎず、異なる実施形態が異なるパラメータを採用することになることに留意されたい。例えば、より大きいデータベースの場合、１億秒のオーディオに対しては第１のクラスタ深度を例えば約２３又は２４ビットに増加させ、１０億秒のオーディオに対しては約２６又は２７ビットに増加させることができる。後でより詳細に述べる例では、２４ビットの第１のクラスタ深度が仮定される。
【００８７】
[0091]例示的な一実施形態では、ファイルサイズを管理可能に維持するために、使用される様々なデータ構造が、データベースの一部として記憶されるようにバイト及びビットにパックされる。
【００８８】
（生ハッシュ）
[0092]例示的な一実施形態では、生ハッシュが、６バイト又は４８ビットとして記憶される。最上位ビットは、１次データベースルックアップに使用されるビットである。
【００８９】
（データベースの葉及びｒａｗｓｅｇｉｎｆｏ）
[0093]データベース中の各葉は、ｒａｗｓｅｇｉｎｆｏ構造のシーケンスを含む。分析されることになるプログラムもまた、データベース中でルックアップが行われる前にｒａｗｓｅｇｉｎｆｏ構造のシーケンスに変換される。
【００９０】
[0094]各ｒａｗｓｅｇｉｎｆｏ構造は、生ハッシュを保持し、それと共に、どこから来たかについての情報（そのトラックＩＤ、及びトラック内でのその位置。それぞれ４バイトとして記憶される）と、２次テスト情報の１６バイトフィールドとを保持する。
【００９１】
[0095]最初の生成時は、位置情報は、約２０ミリ秒の単位で測定された、トラックの開始に対して相対的なハッシュの時間を示すように設定される。データベース構築手順の間に、この値は、３次テストデータ（「マッピングされた」ｒａｗｓｅｇｉｎｆｏ）中への直接オフセットで置き換えられる。
【００９２】
[0096]ｒａｗｓｅｇｉｎｆｏデータ構造は、ＢＦＦ（「ｂｉｇ  ｆｌａｔ  ｆｉｌｅ」）と呼ばれるフラットファイル構造でハッシュの順に順次記憶される。各葉は、ハッシュの最初のｄ（「ｄｅｐｔｈ」）個のビットが等しいｒａｗｓｅｇｉｎｆｏデータ構造で正確に構成されたＢＦＦの連続的な下位セクションであり、ｄは、各ケースで、葉の中のｒａｗｓｅｇｉｎｆｏデータ構造の数が適切な「最大葉サイズ」システムパラメータ未満であるように選ばれる。深度値の選択は、まずＢＦＦを、「第１のクラスタ深度」システムパラメータの値に設定された深度値をそれぞれ有する葉に分割することによって実施することができる。次いで、「最大葉サイズ」システムパラメータを超えるサイズを有する深度値ｄの葉があれば、その葉を、深度値がそれぞれｄ＋１である２つの葉に分割することができる。この分割手順が、「最大葉サイズ」システムパラメータを超えるサイズの葉がなくなるまで繰り返される。
【００９３】
[0097]図６は、データベース４６の構造と、プログラムオーディオから導出された各ハッシュに関連するルックアップとの概観を提供する概略図である。
【００９４】
[0098]データベースの葉へのインデックスには、２つのレベルのインデックスがある。
【００９５】
[0099]上に論じたように、データベース４６は、非一様な深度の２分木の形をとる。
【００９６】
[0100]データベースの索引付けを単純化するために、各葉は、少なくとも第１のクラスタ深度パラメータ６２の深度、例えば２４ビットの深度を有する。木の、第１のクラスタ深度のノードよりも上の部分は、「クラスタ」と呼ばれる。２Ｆ個のクラスタがあり、Ｆ＝第１のクラスタ深度であり、これらの各クラスタはＢＦＦ７４の連続的なセクションに対応し、ＢＦＦ７４はいくつかの葉７２を含む。
【００９７】
[0101]図６の左上に、プログラムハッシュ６０を示す。いくつかの最上位ビット（パラメータ「第１のクラスタ深度」６２によって設定される）が、可変深度の木の形状に関する情報を含むＲＡＭベースのインデックス６６（「第１のクラスタインデックス」）中へのオフセットとして使用される。データベースインデックス６６の最上レベル６８は、１クラスタ当たり１つのエントリを含む。このエントリは単純に、第２のインデックス中の（可変長）レコード７０をポイントし、レコード７０は、そのクラスタに関する情報を含む。プログラムハッシュからのさらに他のビットを使用して、第２のインデックスによって形成される木の最後の少数のノードが横断される。図示の例では、さらに３ビット（「１０１」）がとられる。図６に示す木構造に従えば、これらのビットのうちの第１のビットが０であったとすると、総計２ビットしかとられなかったことになる。ＲＡＭベースの第１のクラスタインデックスに記憶された情報は、葉７２についての対応するデータベースレコードを直接見つけるのに十分である。
【００９８】
[0102]このように、第２レベルのインデックスは、クラスタ中の２分木の形状と、２分木内の葉のサイズとを記述する。エントリは、以下によって構成される：
（ｉ）このクラスタのデータが開始するＢＦＦ７４中へのオフセット
（ｉｉ）クラスタ中の２分木の形状の符号化。これは、木の深度優先横断で遭遇する順序で考えた場合の、木の各ノード（内側及び葉）につき１ビットの、ビットストリームである。ノードが内側である場合は、ビットは０であり、ノードが葉である場合は、ビットは１である。ビットストリームは、必要なら、最後のバイトの終わりまで０ビットでパディングされる
（ｉｉｉ）ほとんどのサイズが単一バイトで表現されるような圧縮形で符号化された、木の深度優先横断で遭遇する順序の、クラスタ中の各葉７２のサイズ。
【００９９】
[0103]エントロピーのほとんどないハッシュのみをクラスタが含む（すなわちクラスタが比較的大きい）ような少数のケースでは、特別なフラグ値が、上記（ｉｉ）及び（ｉｉｉ）に取って代わることができ、対応するＢＦＦエントリは索引付けされない。
【０１００】
[0104]例示的な一実施形態では、両方のレベルのインデックス６６／７０は、サーバシステム中のＲＡＭに納まるように設計され、それにより、どんなデータベース葉の内容も、ＢＦＦへの単一のランダムアクセスでフェッチすることができる。
【０１０１】
[0105]ＢＦＦ中では、各一致ハッシュと共に、スペクトログラムから導出されたさらに他の情報が、プログラムハッシュに関して前に述べたのと同様にして記憶される。２次テスト段階では数百個の一致しか考慮されないことになるので、距離メトリックを使用して、プログラムと、１次テスト段階で識別された参照トラックとの間に良好な一致が実際にあるかどうか判定することができる。このようなメトリックをデータベース全体にわたって評価したとすれば、計算時間的に法外に高くついたであろう。前に示したように、このテストに対するしきい値は、ごく少数、おそらくはわずか１つか２つの潜在的一致しか合格しないように設定される。
【０１０２】
[0106]単一のランダムデータベースディスクアクセスから抽出される値をさらに増大させるために、適切な圧縮アルゴリズムを使用して２次テスト情報を圧縮することができる。
【０１０３】
[0107]３次テスト情報は、トラックＩＤ順の３次テストデータ７６構造のシーケンスと、そのトラック内の時間オフセットとからなる。これらはそれぞれ、単一バイトとして記憶された、前のエントリからの時間オフセット（約２０ミリ秒単位）と、生ハッシュとを含む。
【０１０４】
[0108]データベース４６は、各トラックの開始点を提供する、３次テストデータ７６中へのインデックス７８を含む。このインデックスは、ＲＡＭに収まるように十分に小さく設計され、したがって、３次テストデータのどんな所望のアイテムも、データベースファイルへの単一のランダムアクセスでフェッチすることができる。３次テストデータインデックス７６中へのエントリを定義するデータ８０には、ＢＦＦ７４中の２次テストデータ８２が提供される。
【０１０５】
[0109]データベースアクセス時間を短縮するために、データベースは、従来のハードディスクよりも固体ディスク上で保持されるのが有利である。その理由は、ソリッドステージディスクのランダムアクセス（又は「シーク」）時間は通常、従来のハードディスクよりもおよそ百倍速いからである。データベースサイズが許容する場合、全ての情報をコンピュータのＲＡＭに記憶することができる。さらに、示したように、可変深度の木構造では、ハッシュのビットを必要なだけとって、実施される２次テストの回数を設定しきい値（例えば数百）未満に低減することができる。
【０１０６】
[0110]特定の例示的な実施形態について上述したが、他の実施形態では、修正及び追加も想定される。
【０１０７】
（ハッシュ関数）
[0111]例えば、様々な頑強性の程度をもたらすようにハッシュ関数を構成することができ、例えばそれにより、ハッシュの頑強性を完全一致データベースルックアップに関して最大限にするように、ハッシュ内のビットの順序を選ぶことができる。ケプストラム型ハッシュ係数に加えて、他のピッチシフト不変のエントロピーソースを、本格規模のデータベースと共に使用することもできる。
【０１０８】
（データベース木）
[0112]上の例では、データベース木構造７０は、２進ベースで編成される。しかし、他の例では、ノードの子の数は、２以外であってもよく、実際、木全体にわたって変動してもよい。この手法を使用して、葉のサイズの均等化をさらに容易にすることができる。別法として又は追加で、ノードの子ごとに、例えば２分木中のノードの左右両方の子ごとにハッシュを記憶することができる木構造を使用してもよい（「スピルツリー（ｓｐｉｌｌ  ｔｒｅｅ）」と呼ばれる）。
【０１０９】
（重複トラックの識別）
[0113]任意選択で、重複した音楽セクションがないかどうかトラックデータベースを探索することができる。次いで、一意のセクション（「セグメント」と呼ぶことにする）が、前述のようにデータベースに記憶されて識別されることになる。後続の処理段階で、認識されたセグメントのリストをトラックのリストに変換することになる。このような手法は、さらに前処理を必要とするであろうが、データベースの記憶要件を低減することになり、リアルタイム処理を加速することができる。
【０１１０】
（絶対時間情報）
[0114]前述の実施形態では、３次テストデータエントリについての絶対時間が、そのセグメントの開始からエントリまで前方に走査して時間デルタを累算することによって決定される。任意選択で、絶対時間マーカを３次テストデータエントリのシーケンスに含めることができる。
【０１１１】
（データベースの間引き）
[0115]２次テストデータベースのサイズを縮小するために、データベースの間引きを使用することができる。これは、「ハッシュのハッシュ」を計算して、決定性方式でハッシュの固定部分を廃棄することを伴う。例えば、データベースを３分の１に間引くには、以下の修正を採用することができる。生成された各ハッシュにつき、データベース中で完全一致させることが必要になるビットが、整数として考慮される。この整数が３でちょうど割り切れない場合は、このハッシュは廃棄される。すなわち、ソーストラック材料から構築されたデータベースに含められない。同様に、プログラム材料を処理する際にこの基準を満たさないハッシュに遭遇した場合は、このハッシュがデータベース中にないであろうことがすぐにわかり、したがってルックアップは実施されないことになる。ハッシュを受容又は拒否するための完全一致に必要とされるビットに応じた決定性基準が使用されるのであり、単純に固定確率でランダムに受容又は拒否するのではない。その理由は、後者の手法は、より大きい間引き率では特に、ハッシュヒット率に対して、よりずっと大きい悪影響を有することになるからである。
【０１１２】
（代替実施形態）
[0116]前述の実施形態は、例に過ぎにない。特許請求の範囲の趣旨及び範囲内で、代替実施形態を想定することができる。
【０１１３】
[0117]例えば、各図に関して述べた例示的な実施形態では、１次評価は、ルックアップテーブル中のエントリに対してソースベクトルの数字の完全一致を実施することを含み、ルックアップテーブル中の各エントリは、参照ベクトルのグループに関係する。次いで、２次評価は、ソースベクトルと参照ベクトルのグループのそれぞれとの類似度を決定して、ソースメディアコンテンツを参照メディアコンテンツと照合するための候補であるいずれかの参照ベクトルを識別することを含む。次いで、３次評価は、１つ又は複数のさらに他のソースベクトルと１つ又は複数のさらに他の参照ベクトルとの類似度を決定することを伴い、さらに他のソースベクトル及びさらに他の参照ベクトルのそれぞれは、ソースベクトル及び候補参照ベクトルからそれぞれ時間的な隔たりがある。２次及び３次評価は、参照ベクトルのデータベースを保持する記憶装置へのランダムアクセスを必要とする。参照ベクトルのデータベースは、かなりのサイズ、例えば約１０テラバイトよりも大きいサイズとすることができることに留意されたい。
【０１１４】
[0118]スタンドアロンの又はネットワーク化されたコンピュータシステム、例えば１つ又は複数のプロセッサと共有記憶装置とを備えるコンピュータシステムによって形成された装置を使用して処理が実施される場合、データベースを固体メモリデバイス（ＳＳＤ）に保持して処理速度を上げ、それにより２次及び３次処理段階を加速することが有利である。しかし、このような記憶装置は、現在は高価である。ディスク記憶装置など、より低速且つ低コストのデバイスを使用して、処理をこのようにして実施することができるが、こうすると、参照データベースが大きい場合には特に、認識プロセスが遅くなる可能性がある。
【０１１５】
[0119]別の代替方法は、処理にアレイ手法又はクラウド手法を採用する装置を使用することであり、この場合、処理タスクは、複数のコンピュータシステムに分散されて例えばバックグラウンドタスクとして動作し、クラウド処理の結果はホストコンピュータシステム中で協調がとられる。
【０１１６】
[0120]さらに他の手法も想定することができ、この手法では、ソースプログラムからソースベクトルのソースデータベースが生成され、次いで、線形又はストリーミング方式で、参照データベースの参照メディアがソースデータベースと照合される。これは以下の利点を有する。すなわち、例えばラジオ局からの１日の番組の、ソースベクトルのソースデータベースを、ランダムアクセスメモリの数ギガバイトに保持し、次いで、参照データベースを、低コストの記憶装置、例えばディスクやテープからストリーミングし、比較プロセスを低コストのバッチ方式で実施することができる。したがって、このような手法を使用して、ソースプログラム材料（例えば１つのラジオ番組からの、又は適切な期間（例えば１時間、１日のうちの一部若しくは全部など）の番組からの）についてのソースベクトルのソースメディアデータベースを、図６の参照ベクトルの参照メディアデータベースについて述べたようにして生成することができる。ソースベクトルは、ハッシュ値の小さい順にソートされて、ハッシュテーブル中で、又は図６の参照ベクトルの参照メディアデータベースについて述べたのと同様のデータベース構造で、ランダムアクセスメモリに記憶することができる。次いで、参照メディアデータベースから参照ベクトルを順次ストリーミングすることによって（これは、ディスクやテープなどの低コスト記憶装置の場合、ランダムアクセスよりもずっと速い）、参照ベクトルをソースメディアデータベースと比較することができる。このプロセスは、ソースデータベーステーブル中のエントリに対して各参照ベクトルの数字の完全一致を実施する１次評価を含むことができ、ソースデータベーステーブル中の各エントリは、ソースベクトルのグループに関連する。次いで、２次評価は、現在の参照ベクトルとソースベクトルのグループのそれぞれとの類似度を決定して、ソースメディアコンテンツを参照メディアコンテンツと照合するための候補であるいずれかのソースベクトルを識別することを含むことができる。次いで、３次評価は、１つ又は複数のさらに他のソースベクトルと１つ又は複数のさらに他の参照ベクトルとの類似度を決定することを伴うことができ、さらに他のソースベクトル及びさらに他の参照ベクトルのそれぞれは、ソースベクトル及び候補参照ベクトルからそれぞれ時間的な隔たりがある。２次評価は、ソースベクトルのデータベースを保持する記憶装置へのランダムアクセスを必要とすることになるが、このデータベースは比較的小さいので、ランダムアクセスメモリに保持することができる。３次評価は、ソースベクトルのデータベース及び参照ベクトルのデータベースを保持する記憶装置へのアクセスを必要とすることになる。一実施形態では、参照ベクトルのデータベースは、自然な順序で、すなわちトラックごとに記憶され、各トラック内では、ベクトルは時間順に記憶される。この実施形態では、３次評価に含まれるルックアップは、データベース中の隣接エントリに関係することになり、したがって、記憶装置への順次アクセスを使用してアクセス時間を短縮することができる。代替の一実施形態では、参照ベクトルのデータベースは、２次テストを実施する目的でハッシュ値の小さい順に記憶され、３次評価のための候補のセットは、３次テストを実施する目的で、収集されてトラック番号によって記憶され、それにより記憶装置への順次アクセスを使用することが可能になる。
［発明の例］
［例１］
参照メディアコンテンツとの比較によってソース信号からソースメディアコンテンツを自動認識することを可能にするための装置であって、
前記ソース信号にフーリエ変換を適用することによって前記ソース信号からスペクトログラムを生成するように動作可能なスペクトログラムジェネレータであり、前記スペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、スペクトログラムジェネレータと、
前記タイムスライスの前記カラム（column）からの選択された周波数ビンの大きさの比率を計算し、前記比率を量子化してソースベクトルの数字を生成することによって、前記ソース信号のタイムスライスに対して少なくとも１つのソースベクトルを生成するように動作可能なベクトルジェネレータと、
ルックアップテーブル中のエントリに対して第１のベクトルの数字の完全一致を実施することによって１次評価を実施するように動作可能な１次エバリュエータであり、前記ルックアップテーブル中の各エントリが第２のベクトルのグループに関連し、前記完全一致を実施するのに使用される前記第１のベクトルの数字の数が前記ルックアップテーブル中のエントリ間で異なる、１次エバリュエータと、
前記第１のベクトルと、第２のベクトルの前記グループのそれぞれとの類似度を決定して、前記ソースメディアコンテンツを前記参照メディアコンテンツと照合するための候補であるいずれかの第２のベクトルを識別するための、２次評価を実施するように動作可能な、２次エバリュエータと、
前記ルックアップテーブル及び前記第２のベクトルを含むデータベースとを備え、
前記第１のベクトルがソースベクトルと参照ベクトルとのいずれかであり、前記第２のベクトルが前記ソースベクトルと前記参照ベクトルとのうちの他方であり、各参照ベクトルが前記参照メディアコンテンツのタイムスライスを表す、装置。
［例２］
タイムスライスに対して少なくとも１つのベクトルを生成するために、前記ベクトルジェネレータが、
タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算し、
前記比率を範囲に分けて、各比率につき少なくとも１つの選択された数字を生成するように動作可能である、例１に記載の装置。
［例３］
タイムスライスに対して少なくとも１つのベクトルを生成するために、前記ベクトルジェネレータが、
タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算し、
前記比率を範囲に分けて、各比率につき２進数を生成するように動作可能である、例２に記載の装置。
［例４］
前記範囲が、選択された比率間で異なり、したがって範囲間で比率値のほぼ等しい分布をもたらす、例２又は３に記載の装置。
［例５］
前記ベクトルジェネレータが、
４００Ｈｚ〜１１００Ｈｚの周波数帯域から選択された周波数ビンを使用して第１のソースベクトルを生成し、１１００Ｈｚ〜３０００Ｈｚの周波数帯域から選択された周波数ビンを使用して第２のソースベクトルを生成するように動作可能である、例２〜４のいずれか一項に記載の装置。
［例６］
タイムスライスに対してさらに他のソースベクトルを生成するために、
前記スペクトログラムジェネレータが、前記ソース信号にフーリエ変換を適用することによってさらに他のスペクトログラムを生成するように動作可能であり、前記さらに他のスペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表し、前記スペクトログラムジェネレータが、前記タイムスライスの前記カラム（column）からの前記それぞれの周波数ビンにフーリエ変換をさらに適用してそれぞれの係数セットを生成するように動作可能であり、
前記ベクトルジェネレータが、前記さらに他のソースベクトルを生成するように動作可能であり、それにより、タイムスライスのカラム（column）中のＮ個の係数のセットに対して、前記さらに他のソースベクトルの要素２からＮ−１までのそれぞれにつき、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値によってｎ番目の要素が形成され、前記ベクトルジェネレータが、得られた前記ベクトルの前記要素を量子化して、各要素につき少なくとも１つの数字を生成するように動作可能である、前記例のいずれか一項に記載の装置。
［例７］
前記ソース信号がオーディオ信号であり、前記スペクトログラムビンの前記周波数が対数目盛りに従って割り振られる、前記例のいずれか一項に記載の装置。
［例８］
前記ルックアップテーブルが、葉に至る可変深度の木として編成され、前記テーブルが第１のベクトルによって索引付けされ、
各葉が、第２のベクトルのそれぞれのグループに関連する前記ルックアップテーブル中のエントリを形成し、
各葉に至る数字の数が、各葉につきほぼ等しいサイズの第２のベクトルのグループを提供するように決定される、前記例のいずれか一項に記載の装置。
［例９］
各葉に至る数字の数が、所与の葉について前記完全一致を実施するのに使用される前記第１のベクトルの数字の数を形成する、例８に記載の装置。
［例１０］
前記ルックアップテーブルの各葉が、ｄ個の一致する数字を有する第２のベクトルのグループを識別し、ｄが前記葉までの前記木の深度に対応する、例８又は９に記載の装置。
［例１１］
前記２次エバリュエータが、距離メトリックを使用して前記２次評価を実施して、前記第１のベクトルと第２のベクトルの前記グループのそれぞれとの前記類似度を決定するように動作可能である、前記例のいずれか一項に記載の装置。
［例１２］
候補として識別されたいずれかの第２のベクトルに対して３次評価を実施するための３次エバリュエータをさらに備え、前記３次エバリュエータが、１つ又は複数のさらに他の第１のベクトルと、前記２次評価で識別された前記候補第２のベクトルに対応する１つ又は複数のさらに他の第２のベクトルとの類似度を決定するように動作可能である、前記例のいずれか一項に記載の装置。
［例１３］
前記さらに他の第１のベクトル及び前記さらに他の第２のベクトルが、前記第１のベクトル及び前記候補第２のベクトルからそれぞれ時間的な隔たりがある、例１２に記載の装置。
［例１４］
前記ソース信号が、受信されたプログラム信号である、前記例のいずれか一項に記載の装置。
［例１５］
前記プログラム信号の前記一致するメディアコンテンツのレコードを生成するように動作可能なレコードジェネレータを備える、例１４に記載の装置。
［例１６］
前記一致するメディアコンテンツを識別するキューシートを生成するように動作可能なキューシートジェネレータを備える、例１５に記載の装置。
［例１７］
前記第２のベクトルが前記ソースベクトルであり、前記装置が前記ソースベクトルから前記データベースを生成するように構成された、前記例のいずれか一項に記載の装置。
［例１８］
前記スペクトログラムジェネレータ及び前記ハッシュベクトルジェネレータ及び前記エバリュエータを実装するように動作可能な、少なくとも１つのプロセッサと記憶装置とコンピュータソフトウェアとを備える、前記例のいずれか一項に記載の装置。
［例１９］
参照メディアコンテンツとの比較によってソース信号からソースメディアコンテンツを自動認識するための自動認識方法であって、
前記ソース信号にフーリエ変換を適用することによって前記ソース信号からスペクトログラムを生成するステップであり、前記スペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記ソース信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、ステップと、
前記ソース信号のタイムスライスの前記カラム（column）からの選択された周波数ビンの大きさの比率を計算し、前記比率を量子化してソースベクトルの数字を生成することによって、前記タイムスライスに対して少なくとも１つのソースベクトルを生成するステップと、
ルックアップテーブル中のエントリに対して第１のベクトルの数字の完全一致を行うことによって１次評価を実施するステップであり、前記ルックアップテーブル中の各エントリが第２のベクトルのグループに関連し、前記完全一致を実施するのに使用される前記第１のベクトルの数字の数が前記ルックアップテーブル中のエントリ間で異なる、ステップと、
前記第１のベクトルと、第２のベクトルの前記グループのそれぞれとの類似度を決定して、前記ソースメディアコンテンツを前記参照メディアコンテンツと照合するための候補であるいずれかの第２のベクトルを識別するための、２次評価を実施するステップとを含み、
データベースが前記ルックアップテーブル及び前記第２のベクトルを含み、
前記第１のベクトルがソースベクトルと参照ベクトルとのいずれかであり、前記第２のベクトルが前記ソースベクトルと前記参照ベクトルとのうちの他方であり、各参照ベクトルが前記参照メディアコンテンツのタイムスライスを表す、方法。
［例２０］
タイムスライスに対して少なくとも１つのベクトルを生成するステップが、
タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算するサブステップと、
前記比率を範囲に分けて、各比率につき少なくとも１つの選択された数字を生成するサブステップとを含む、例１９に記載の方法。
［例２１］
タイムスライスに対して少なくとも１つのベクトルを生成するステップが、
タイムスライスの少なくとも１つの選択された周波数ビンについて、前記ビンと、前記タイムスライスの前記カラム（column）からの、隣接するか又はほぼ隣接する周波数ビンとの比率を計算するサブステップと、
前記比率を範囲に分けて、各比率につき２進数を生成するサブステップとを含む、例２０に記載の方法。
［例２２］
前記範囲が、選択された比率ビン間で異なり、したがって範囲間で比率値のほぼ等しい分布をもたらす、例２０又は２１に記載の方法。
［例２３］
４００Ｈｚ〜１１００Ｈｚの周波数帯域から選択された周波数ビンを使用して第１のソースベクトルを生成し、１１００Ｈｚ〜３０００Ｈｚの周波数帯域から選択された周波数ビンを使用して第２のソースベクトルを生成するステップを含む、例２０〜２２のいずれか一項に記載の方法。
［例２４］
タイムスライスに対してさらに他のソースベクトルを生成するステップを含み、前記さらに他のソースベクトルが、
前記ソース信号にフーリエ変換を適用することによって前記第１の信号からさらに他のスペクトログラムを生成するサブステップであって、前記さらに他のスペクトログラムが複数のカラム（column）を含み、各カラム（column）がタイムスライスを表し複数の周波数ビンを含み、各周波数ビンが前記第１の信号の前記タイムスライスについての周波数成分のそれぞれの範囲を表す、サブステップと、
前記タイムスライスの前記カラム（column）からの前記それぞれの周波数ビンにフーリエ変換をさらに適用して、それぞれの係数セットを生成するサブステップと、
前記さらに他のソースベクトルを生成するサブステップであって、それにより、タイムスライスのカラム（column）中のＮ個の係数のセットに対して、前記さらに他のソースベクトルの要素２からＮ−１までのそれぞれにつき、ｎ番目の係数の２乗を（ｎ−１）番目の係数と（ｎ＋１）番目の係数との積で割った値によってｎ番目の要素が形成され、得られた前記ベクトルの前記要素を量子化して各要素につき少なくとも１つの数字を生成する、サブステップとによって生成される、例１９〜２３のいずれか一項に記載の方法。
［例２５］
前記ソース信号がオーディオ信号であり、前記スペクトログラムビンの前記周波数が対数目盛りに従って割り振られる、例１９〜２４のいずれか一項に記載の方法。
［例２６］
前記ルックアップテーブルが、葉に至る可変深度の木として編成され、前記テーブルが前記第１のベクトルによって索引付けされ、
各葉が、第２のベクトルのそれぞれのグループに関連する前記ルックアップテーブル中のエントリを形成し、
各葉に至る数字の数が、各葉につきほぼ等しいサイズの第２のベクトルのグループを提供するように決定される、例１９〜２５のいずれか一項に記載の方法。
［例２７］
各葉に至る数字の数が、所与の葉について前記完全一致を実施するのに使用される前記第１のベクトルの数字の数を形成する、例２６に記載の方法。
［例２８］
前記ルックアップテーブルの各葉が、ｄ個の一致する数字を有する第２のベクトルのグループを識別し、ｄが前記葉までの前記木の深度に対応する、例２６又は２７に記載の方法。
［例２９］
距離メトリックを使用して前記２次評価を実施して、前記第１のベクトルと第２のベクトルの前記グループのそれぞれとの前記類似度を決定するステップを含む、例１９〜２８のいずれか一項に記載の方法。
［例３０］
候補として識別されたいずれかの第２のベクトルに対して３次評価を実施するステップを含み、前記３次評価が、１つ又は複数のさらに他の第１のベクトルと、前記２次評価で識別された前記候補第２のベクトルに対応する１つ又は複数のさらに他の第２のベクトルとの類似度を決定するサブステップを含む、例１９〜２９のいずれか一項に記載の方法。
［例３１］
前記さらに他の第１のベクトル及び前記さらに他の第２のベクトルが、前記第１のベクトル及び前記候補第２のベクトルからそれぞれ時間的な隔たりがある、例３０に記載の方法。
［例３２］
前記ソース信号が、受信されたプログラム信号である、例１９〜３１のいずれか一項に記載の方法。
［例３３］
前記プログラム信号の前記一致するメディアコンテンツのレコードを生成するステップを含む、例３２に記載の方法。
［例３４］
前記一致するメディアコンテンツを識別するキューシートを生成するステップを含む、例３３に記載の方法。
［例３５］
前記第２のベクトルが前記ソースベクトルであり、前記装置が前記ソースベクトルから前記データベースを生成するように構成された、例１９〜３４のいずれか一項に記載の方法。
［例３６］
例１９〜３５のいずれか一項に記載の方法を実施するように動作可能なプログラム命令を含む、コンピュータプログラム製品。
【図１】
0005907511.tif 000002
【図２】
0005907511.tif 000003
【図３】
0005907511.tif 000004
【図４】
0005907511.tif 000005
【図５】
0005907511.tif 000006
【図６】
0005907511.tif 000007