(57)【要約】本発明は、試験下の電子ファイルを識別する方法及び装置を提供する。本発明に従って、識別する処理は、マスタ信号シーケンスを有するマスタファイルを読み出し、マスタ信号シーケンスをセグメントに分割し、各マスタ信号セグメントを表す基準インジケータを発生し、それぞれの基準インジケータを、マスタプロファイルとして記憶し、テスト信号シーケンスを含むテストファイルを読み出し、テスト信号シーケンスをセグメントに分割し、  テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生し、マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較し、  基準インジケータとテストインジケータが一致するかどうかを決定し、対応する指示を発生する。
2004531754.tif 000002
【特許請求の範囲】
【請求項１】
試験下の電子ファイルを識別する方法であって、
マスタ信号シーケンスを有するマスタファイルを読み出すステップと、
マスタ信号シーケンスをセグメントに分割するステップと、
各マスタ信号セグメントを表す基準インジケータを発生するステップと、
それぞれの基準インジケータを、マスタプロファイルとして記憶するステップと、
テスト信号シーケンスを含むテストファイルを読み出すステップと、
テスト信号シーケンスをセグメントに分割するステップと、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生するステップと、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較するステップと、
基準インジケータとテストインジケータが一致するかどうかを決定するステップと、
対応する指示を発生するステップとを有する、方法。
【請求項２】
第１のテストプロファイルを発生するためにテスト信号シーケンスの第１の予め定められた点から開始するセグメントの第１の組を生成し、
第１の予め定められた点を、予め定められた量だけ、テスト信号シーケンスの新たな予め定められた点へシフトし、
他のテストプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのテストファイルに複数のテストプロファイルを発生することを含む、請求項１に記載の方法。
【請求項３】
それぞれのテストインジケータを発生するステップと、同時に、連続する対応するセグメントについて基準インジケータとテストインジケータを比較するステップを実行する、
ことにより、基準インジケータとテストインジケータの動的な比較を行うことを含む、請求項１或は２に記載の方法。
【請求項４】
それぞれの基準インジケータと対応するテストインジケータが不一致を生じる各場合に関する進行中の基準について、第１の予め定められた点に対するシフトを計算し、
それぞれの新たなテストプロファイルを発生する、
ことにより、各々の新たなテストプロファイルを発生する手順を最適化することを含む、請求項２或は、請求項２から従属するときに請求項３に記載の方法。
【請求項５】
ａ）そのようなテストインジケータが対応する基準インジケータに一致する、及び、
ｂ）続いて発生されたテストインジケータについての関連する予め定められた点に対するシフトが一致を取り消さない、
場合には、計算は、それぞれのテストプロファイルの初期部分を構成する、前に発生されたテストインジケータを再使用することを含む、請求項４に記載の方法。
【請求項６】
第１のマスタプロファイルを発生するためにマスタ信号シーケンスの第１の予め定められた点から開始するセグメントの第１の組を生成し、
第１の予め定められた点を、予め定められた量だけ、マスタ信号シーケンスの新たな予め定められた点へシフトし、
他のマスタプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのマスタファイルについて複数のマスタプロファイルを発生することを含む、請求項１乃至５のうちいずれか一項に記載の方法。
【請求項７】
関連する信号シーケンスが対応するセグメント内の予め定められた基礎基準を横切る場合の数を検出する、
ことにより、各基準インジケータ及び／又は各テストインジケータを発生することを含む、請求項１乃至６のうちいずれか一項に記載の方法。
【請求項８】
基準インジケータとテストインジケータが一致するかどうかを決定するステップは、予め定められた公差内で、基準インジケータとテストインジケータの間に同一性があるかどうかを決定することを含む、請求項１乃至７のうちいずれか一項に記載の方法。
【請求項９】
試験下の電子ファイルを識別する装置であって、
マスタ信号シーケンスを有するマスタファイルを読み出す手段と、
マスタ信号シーケンスをセグメントに分割する手段と、
各マスタ信号セグメントを表す基準インジケータを発生する手段と、
それぞれの基準インジケータを、マスタプロファイルとして記憶するメモリと、
テスト信号シーケンスを含むテストファイルを読み出す手段と、
テスト信号シーケンスをセグメントに分割する手段と、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生する手段と、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較する手段と、
基準インジケータとテストインジケータが一致するかどうかを決定する手段と、
対応する指示を出力する手段とを有する、装置。
【請求項１０】
それぞれのテストプロファイルを発生するために、テスト信号シーケンスの予め定められた点から開始するセグメントの組みを発生する手段と、
他のテストプロファイルを発生するために、テスト信号シーケンスの予め定められた点を予め定められた量だけシフトする手段、
を有する、それぞれのテストファイルに関連する複数のテストプロファイルを発生する手段を有する、請求項９に記載の装置。
【請求項１１】
それぞれのテストインジケータを発生する手段と、同時に、比較する手段を動作させるように構成された制御手段、
を有する、基準インジケータとテストインジケータの動的な比較を行う手段を含む、請求項９或は１０に記載の装置。
【請求項１２】
それぞれの基準インジケータと対応するテストインジケータが一致しないという出力手段からの指示に応答して、それぞれの予め定められた点に対してシフトを計算する手段、
を含む、各テストプロファイルを発生する、手順を最適化する手段を含む、請求項１０又は、請求項１０から従属するときに請求項１１に記載の装置。
【請求項１３】
計算手段は、
そのようなテストインジケータが対応する基準インジケータと一致する場合には、それぞれのテストプロファイルの初期部分を構成する前に発生されたテストインジケータを記憶する手段と、
続いて発生されたテストインジケータについての関連する予め定められた点に対するシフトが一致を取り消すかどうかを検査する手段、
を有する、請求項１２に記載の装置。
【請求項１４】
それぞれのマスタファイルに関連する複数のマスタプロファイルを発生する手段は、
それぞれのマスタプロファイルを発生するためにマスタ信号シーケンスの予め定められた点から開始するセグメントの組を生成する手段と、
他のマスタプロファイルを発生するために、マスタ信号シーケンスの予め定められた点を、予め定められた量だけシフトする手段、
を含む、請求項９乃至１３のうちいずれか一項に記載の装置。
【請求項１５】
各基準インジケータ及び／又は各テストインジケータを発生する手段は、
関連する信号シーケンスが対応するセグメント内の予め定められた基礎基準を横切る場合の数を検出する手段、
を含む、請求項９乃至１４のうちいずれか一項に記載の装置。
【請求項１６】
基準インジケータとテストインジケータが一致するかどうかを決定する手段は、予め定められた公差内で、基準インジケータとテストインジケータの間に同一性があるかどうかを決定するように構成された、請求項９乃至１５のうちいずれか一項に記載の装置。
【発明の詳細な説明】
【０００１】
本発明は、特にオーディオ情報を含む電子ファイルの、電子ファイルを識別する方法及び装置に関連する。本発明は、マスターオーディオファイルとそのようなファイルの一致するものを見つけることにより、未知のオーディオファイルの識別の、特定の応用を有する。
【０００２】
本発明は、インターネット上の特定のオーディオファイル及びオーディオトラックを検索し且つ、特定されたオーディオファイル又はトラックが、データベースにその詳細が記憶されているマスタオーディオトラックと一致するかどうかを検査するために、使用されることは認識される。
【０００３】
インターネット上で特定のオーディオトラックを検索しそして、見つけられたトラックを再生しそして耳によりそれらを識別する人を使用することにより、見つけられたトラックを識別することが、既に知られている。
【０００４】
また、データベースに特定のトラックのタイトルを記憶し、そして、対応するタイトルについてインターネットを検索することも知られている。検索で見つかったタイトルは、データベース内に保持されているタイトルと比較され、そして、一致する場合には、対応するオーディオトラックも一致するという仮定がなされる。これに伴なう欠点は、実際のオーディオトラックそれ自身が比較されずそして、従って、トラックの一致が確認できずそして、タイトルのないトラックの識別は不可能であることである。従って、そのような配置の精度に、望むことがある。
【０００５】
他の知られた処理は、特定のオーディオトラックの内容をとり、そして、コンピュータ又はデータ処理装置内で、これは、そのトラックを表すコードを発生するアルゴリズムにかけられる。このコードは、コンピュータのデータベース内に記憶される。そして、未知のトラックの位置を捜し、識別コードを発生するためにそれらを同じアルゴリズムにかけ、そして、そのような識別コードをデータベースファイル内のコードと比較してそれらが一致するかどうかを確立することにより、対応するオーディオトラックについてインターネットを検索することが可能である。しかしながら、そのような処理は、オーディオファイルの適合するものを見つけることの中心の問題、即ち、同じオーディオトラックを含む２つのファイルは、精密に同じ２値パターンを含む必要はないということと、取り組まない。例えば、異なる供給源からの記録、又は、時間の異なる点での開始、又は、ノイズスパイク又は背景ノイズを含むことにより、発生される差がありうる。所定のこれらの差及び、採用されている精密な符号化アルゴリズムに依存して、コード発生のアプローチは、真の一致を識別するために、偽の一致又はフェイルのいずれかを発生する。従って、識別処理の全体的な精度は、悪い。
【０００６】
本発明は、上述の問題を克服し且つ信頼性のある、正確なそして高速に電子ファイルを識別する方法及び装置を提供することを得ようとする。
【０００７】
従って、本発明の１つの面は、試験下の電子ファイルを識別する方法が提供され、この方法は、
マスタ信号シーケンスを有するマスタファイルを読み出すステップと、
マスタ信号シーケンスをセグメントに分割するステップと、
各マスタ信号セグメントを表す基準インジケータを発生するステップと、
それぞれの基準インジケータを、マスタプロファイルとして記憶するステップと、
比較のためにテスト信号シーケンスを含むテストファイルを読み出すステップと、
テスト信号シーケンスをセグメントに分割するステップと、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生するステップと、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較するステップと、
基準インジケータとテストインジケータが一致するかどうかを決定するステップと、
対応する指示を発生するステップとを有する。
【０００８】
本発明の他の面に従って、試験下の電子ファイルを識別する装置が提供され、この装置は、
マスタ信号シーケンスを有するマスタファイルを読み出す手段と、
マスタ信号シーケンスをセグメントに分割する手段と、
各マスタ信号セグメントを表す基準インジケータを発生する手段と、
それぞれの基準インジケータを、マスタプロファイルとして記憶するメモリと、
テスト信号シーケンスを含むテストファイルを読み出す手段と、
テスト信号シーケンスをセグメントに分割する手段と、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントにつてそれぞれのテストインジケータを発生する手段と、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較する手段と、
基準インジケータとテストインジケータが一致するかどうかを決定する手段と、
対応する指示を出力する手段とを有する。
【０００９】
本発明の好ましい形式では、マスタ信号とテスト信号は、両方ともオーディオ信号を含む。例えば、マスタ信号は、ポピュラーアルバムからのポピュラー曲又はトラックを示し、そして、本発明は、テスト信号が同じ曲又はトラックを構成するかどうかを検査するのに使用されうる。
【００１０】
好ましくは、マスタ及びテスト信号シーケンスは、ディジタル符号化されたオーディオトラックから取られる。
【００１１】
好ましくは、各インジケータは、それぞれのセグメントの支配的な周波数のような、波形の区別する特徴を表す単純な値である。例えば、インジケータは、各セグメントに含まれているオーディオ信号部分についての、ゼロクロスカウント値又は他の支配的な周波数値の１つを決定することにより、発生されうる。
【００１２】
優位に、本発明に従った方法及び装置は、
第１のテストプロファイルを発生するためにテスト信号シーケンスの第１の予め定められた点から開始するセグメントの第１の組を生成し、
第１の予め定められた点を、予め定められた量だけ、テスト信号シーケンスの新たな予め定められた点へシフトし、
他のテストプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのファイルについての複数のプロファイルを発生するように構成される。
【００１３】
本発明を、例により、添付の図面を参照して、さらに説明する。
【００１４】
ここに開示される本発明は、オーディオトラックの識別と一致を見つけるのに適用される。例えば、そのようなトラックは、ポピュラーアルバムからのポピュラー曲、トラック又は、クラシック又は他の音楽記録物からのトラックでも良い。それらは、音声記録物又は他のオーディオ演奏からのトラックでもよい。
【００１５】
本発明を、一般的には最初に図１−３を参照して説明する。
【００１６】
図１は、本発明を実行するためにデータベース内にマスタ又は基準ファイルを発生するのに関係するステップを表すフローチャートを示す。最初に、ステップ１０で、コンピュータオペレータは、コンピュータデータベースに入力するために新たなタイトルと対応するオーディオトラックを選択する。オペレータは、ステップ１２でコンピュータへタイトルテキストを入力し、そして、コンピュータは、続いて発生されるマスタファイルについての名称としてこのテキストを捕捉する。ステップ１４では、コンピュータはタイトルに対応するトラックを受信しそして、そのトラックを表すトラックプロファイルを含むマスタファイルを発生する。タイトルとマスタファイルは、後続の処理のために、ステップ１６でコンピュータのデータベース内に記憶される。
【００１７】
図２に移ると、図１でコンピュータに入力された新たなマスタトラックと一致するトラックをについての検索が要求されるときには、コンピュータオペレータは、ステップ２０で、検索されるタイトルと可能な位置を識別する検索定義を公式化する。ステップ２２で、オペレータは、タイトル、検索される位置又は複数の位置、及び、おそらく検索が実行される頻度（ｆｒｅｑｕｅｎｃｙ）を含む検索情報を、コンピュータへ入力する。そのような情報は、後の使用のためにステップ２４でデータベース内に記憶される。
【００１８】
図３は、次のように、実際の検索を示すフローチャートである。検索は、ステップ３０で開始され、そして、コンピュータは、図２のステップ２４で記憶された詳細について、データベースをアクセスする。ステップ３２では、コンピュータは、２ステップ動作を実行し、第１に規定されたタイトルを有するトラックについてステップ２４で規定された位置を検索し、そして、第２にそのタイトルが一致するトラックを含むテストファイルのリストを構築する。次にステップ３４で、コンピュータは位置の見つけられた種々のトラックについて、各テストファイルを検査する。これは、ステップ３６でテストトラックプロファイルを動的に形成することを含み、続いて、ステップ３８で、テストプロファイルを、ステップ２４でデータベース内に既に記憶されたマスタプロファイルと動的に比較する。
比較の結果は、ステップ４０に示され、不一致が検出された場合には、コンピュータはステップ４２に示されたようになにもしない。他方では、一致が検出された場合には、コンピュータはステップ４４に進み、そして、データベースに一致が検出されたことを示すフラグ又はマーカーを入力する。
【００１９】
図１−３を参照して説明されたステップは、単一のマスタファイルと単一のテストファイルを参照するが、実際には、データベースは、幾つかのマスタファイルが記憶されそして、種々の異なるマスタファイルについて一致について同時に検索される、そして、各マスタファイルに対して複数のテストファイルを同時に検査しうることは、理解されよう。
【００２０】
図４に移ると、マスタプロファイルとテストプロファイルを形成する処理を、詳細に説明する。図４は、マスタトラック又は未知のテストトラック上に記録されたオーディオサウンドに対応するアナログ波形５０を示す。実際には、アナログオーディオ信号は、おそらく、波形内の関心の最高周波数信号を捕捉するのに十分な頻度で、秒当り数１００回波形をサンプリングすることにより、ディジタル的に符号化された形式で記録されている。各サンプリング期間で、波形の振幅は測定されそして、単一のディジタルサンプルを表す正又は負の数として符号化される。これは、波形へのステップ化された外形５２により図４で示されている。例えば、ある等しい間隔のサンプリング期間５４が図４に破線により示され、そして、対応する数が記されている。連続するサンプリング期間からの数のシーケンスは、波形のディジタル符号化を提供する。
【００２１】
マスタファイルについてのマスタプロファイル又は、テストファイルについてのテストプロファイルを発生するために、信号シーケンスが、典型的には、図５に示されたように、１／１０秒の、等しい継続時間の固定のセグメント５６に分割される。図５を参照すると、ライン（ａ）は、マスタファイルについてのアナログ信号と対応するプロファイルを示し、ライン（ｂ）と（ｃ）は、試験されるアナログ信号と２つのファイルについての対応するプロファイルを示す。特定のトラックの各セグメント５６については、コンピュータは、このセグメント５６の波形を表す、基準又はテストインジケータを割当てる。このインジケータは、支配的な周波数のような、波形の区別する特徴を表す、単純な値である。この例では、インジケータは、そのセグメント５６内の波形についてのゼロクロスカウント数に基づいている。特に、コンピュータはセグメント５６内で波形がゼロ軸と交差する回数を検出しそして、この数又はゼロクロスカウント値をそのセグメント５６についてのトラックに対するインジケータとして設定する。実際には、セロクロス点は、２つの連続するディジタルサンプルが、１つは正のそして１つは負の、異なる符号を有する時はいつでも検出でき、そして、ゼロクロスカウント値は、１つのセグメント５６中にそのような点が検出された回数を構成する。図５は、マスタファイルについて、各セグメント５６に対する連続するゼロクロスカウント値を示す：
８，６，７，５，６，８，６，６。
【００２２】
この連続する数は、マスタファイルについてのマスタプロファイルを構成する。
【００２３】
同様に、図５は、テストファイルについてのテストプロファイル：
６，８，４，５，７，４，２，３．
を示す。
【００２４】
同様な方法で計算された第２のテストファイルについてのテストプロファイルは：
８，６，７，５，６，８，６，６。
【００２５】
テストファイルをマスタファイルと比較するために、コンピュータは、セグメントごとにテストプロファイルの形成を開始し、即ち、テストプロファイルを動的に形成し、そして、セグメントごとに即ち、再び動的に、テストプロファイルとマスタプロファイルの比較を開始する。
【００２６】
図５に示されたように、ライン（ｂ）に示された第１のテストファイルについてのテストインジケータは、第４セグメント５８でのみマスタファイルについての基準インジケータと一致する。実際には、コンピュータは、第１の数セグメント５６の比較に基づいて、不一致であるので、既に第１のテストファイルを捨てている。ライン（ｃ）で示されている第２のテストファイルに移ると、各セグメントについて、テストインジケータは基準インジケータと一致することが分かる。実際には、コンピュータは、マスタファイルとテストファイルの全体のコンテンツを表すプロファイルを構成しないが、しかし、１５秒の継続時間のこれらのファイルの開始からの”クリップ”を表すプロファイルのみを構成する。
これらの２つのプロファイルが一致する場合には、一致があると結論する。
【００２７】
単純に、ファイルが基づいているトラックが、時間的に同期しておらず、それにより、マスタファイルの第１のセグメント５６が、テストファイルの第１のセグメント５６と、アナログ波形の異なる点で開始するために、特定のテストファイルはマスタファイルと不一致が現れ得ることが、理解されよう。この状況と取り組むために、コンピュータは、図６に示されたように、テストトラックの先頭でテスト信号の初期部分を捨てることにより、１つのテストファイルについて、いくつかの異なるテストプロファイルを発生するように、構成される。
【００２８】
図６は、ライン（ａ）に、テストコード：８，６，７，５，６，８，６，６を有する、前述と同じマスタファイルを示す。図６の、ライン（ｂ）、（ｃ）及び、（ｄ）は、単一のテストファイルを示し、それから第１、第２及び、第３のテストプロファイルが連続して発生される。これらの続くテストプロファイルが発生される方法は、図７に示されている。
【００２９】
図７を参照すると、テストファイルの単一のセグメント５６が、セグメントの開始のすぐ後に続くデルタ−ｓ１と指定された増加する期間６０と、セグメントの終了のすぐ後に続くデルタ−ｓ２と指定された増加する期間６２とともに、拡大されて示されている。デルタ−ｓ１は、セグメント５６の開始点６４とセグメント５６内の第１のゼロクロス点６６の間で発生する、幾つかのディジタルサンプリング期間を表す。同様に、デルタ−ｓ２は、セグメント５６の終了点６８と次のセグメント内の第１のゼロクロス点７０の間の幾つかのディジタルサンプリング期間を表す。理解されるように、示されている特定のセグメントのゼロクロスカウント値を変更するために、デルタ−ｓ１かデルタ−ｓ２のどちらか小さい方に対応する量だけ、セグメントの開始点６４がシフトされ又は遅延されねばならない。示された例では、デルタ−ｓ１が小さい。従って、示されたセグメント５６のゼロカウントを変更するのに必要なそして、本当にセグメント５６の１つの、最小のシフトは、特定のセグメントについてデルタ−ｓ１とデルタ−ｓ２の小さい方である。この値をデルタ−ｓｅｇと呼ぶとすると、テストファイルについての新たなテストプロファイルを発生する最小シフトは、すべてのセグメントに対して最小のデルタ−ｓｅｇである値、即ち、デルタ−ｍｉｎであるということに従う。デルタ−ｍｉｎは、実際には、１／５００００秒又はそれより小さいシフトである。
【００３０】
図６を参照すると、検査のためにライン（ｂ）に示されたテスト信号を受信するコンピュータは、最初に、テスト信号の開始でセグメント開始点に基づき、テストプロファイル７２を構成し、これはテストプロファイル：
１２，７，７，４，６，８，６，８
を生じる。
【００３１】
明らかなように、このテストプロファイルは、マスタファイルについてのマスタプロファイルと一致しない。この結果、コンピュータは、各セグメントについてデルタ−ｓ１とデルタ−ｓ２を確立しそしてこれらの２つの値からデルタ−ｓｅｇを計算することにより、第２のテストプロファイル７４を形成する。各セグメントについてデルタ−ｓｅｇを走査しそしてデルタ−ｍｉｎを決定した後に、コンピュータはデルタ−ｍｉｎに対応する量だけテスト信号にシフトを実行しそして図６のライン（ｃ）に示された新たなテストプロファイル７４を発生する。この新たなテストプロファイル７４は：
１１，７，７，５，６，８，５，７
である。
【００３２】
再び、この第２のテストプロファイルはマスタファイルについてのマスタプロファイルと一致しないことは明らかである。
【００３３】
従って、コンピュータは、もう一度シフトされたテスト信号に基づいてデルタ−ｍｉｎを決定することにより、同じ方法で、更なるテストプロファイル７６を発生する。これは、第３のテストプロファイル７６を発生し、それは：
８，６，７，５，６，８，６，６
である。
【００３４】
これから分かるように、第３のテストプロファイル７６は、マスタファイルについてのマスタプロファイルに一致し、そして、これゆえに、コンピュータは、テストファイルがマスタファイルに対応することそしてそれゆえにテストファイルが発生されたオーディオトラックがマスタファイルが発生されたマスタトラックに対応することを示す、出力を発生する。
【００３５】
これらのステップは、以下に図８−１２に示されたフローチャートを参照して更に完全に説明する。
【００３６】
図８を参照すると、これは、図１のステップ１４に示された、マスタファイルからのマスタプロファイルの発生を示すフローチャートを示す。このステップ１００では、コンピュータはこの処理を開始する。コンピュータはステップ１０２で、マスタファイルの第１のセグメントを読み出し、そして、ステップ１０４でゼロクロスカウント値を決定する。ステップ１０６では、コンピュータは、ステップ１０４で確立されたカウント値を、それまで形成されたプロファイルに加える。次に、コンピュータは、ステップ１０８で、既に読み出されたセグメントの数が、マスタプロファイルについて要求されるセグメントの合計数と一致するかどうかを検査する。答えが否定の場合には、コンピュータは、ステップ１０２に戻り、そして、次のセグメントを読み出す。答えが肯定の場合には、コンピュータはステップ１１０へ進み、そして、全体のマスタプロファイルをデータベースに記憶する。
【００３７】
図９は、つぎのように、ステップ１０４に関係するサブルーチンを示すフローチャートである。サブルーチンは、ステップ１１２で開始しそして、ステップ１１４へ進みここで、コンピュータは、ゼロクロスカウント値を検出するカウンタをゼロに初期化する。コンピュータは、そして、ステップ１１６ですぐ後のサンプリング期間で発生されるディジタル数を試験し、そして、ステップ１１８で、符号が最後のサンプリング期間から正及び負の間で変化したかどうかを検査する。答えが肯定の場合には、カウンタはステップ１２０で１だけ増加される。他方では、答えが否定の場合には、コンピュータは、ステップ１２２に進み、そして、セグメント内の全てのサンプリング期間からの数が試験されたか試験されたかを検査する。ステップ１２２の結果が肯定の場合には、サブルーチンはステップ１２４で終了する。他方では、ステップ１２２の結果が否定の場合には、コンピュータはステップ１１６に戻り、そして、次のサンプリング期間からの数を試験する。
【００３８】
図８と９に示されたフローチャートは、図４と５を参照して上述したマスタプロファイルの生成を示す。
【００３９】
図１０に移ると、テストファイルを選択しそして、マスタプロファイルと比較するテストプロファイルを発生するステップを説明する。コンピュータは、ステップ１３０で手順を開始し、そして、ステップ１３２で、テストファイルから最初のクリップ又は信号シーケンスを読み出す。ステップ１３４で、コンピュータは、第１のセグメントの開始点についての現在の変位を検出するカウンタをゼロに初期化する。コンピュータはそして、ステップ１３６に示されたように、クリップ内の各セグメントについてのテストプロファイルと値デルタ−ｓを計算することを進める。
【００４０】
ステップ１３６に含まれているサブルーチンは、図１１に示されており、そして、ここで説明する。サブルーチンはステップ１３８で開始し、そして、コンピュータはステップ１４０へ進み、現在はゼロである、現在の変位と一致させるためにセグメントについての開始点を設定する。コンピュータはステップ１４２へ続きそして、初期セグメントについてのゼロクロスカウント値とそのセグメントについてのデルタ−ｓを決定する。ステップ１４４で、コンピュータは、ステップ１４２で決定されたゼロクロスカウント値をテストプロファイルメモリに加えそして、ステップ１４６で、コンピュータはステップ１４２で計算されたデルタ−ｓをデルタ−ｓの全ての値についてのメモリに加える。コンピュータはステップ１４８に進み、そして、完全なテストプロファイルが確立されたかどうかを検査する。答えが、肯定の場合には、コンピュータはステップ１５０へ進み、そしてサブルーチンは終了する。他方では、答えは否定の場合には、コンピュータはステップ１５２へ進みそして、セグメント長に対応する量だけ現在のセグメント開始点を増加することにより、次のセグメントへセグメントに進む。コンピュータはそして、ステップ１４２に戻り、テストプロファイルメモリとデルタ−ｓメモリに記憶するためにこの新たなセグメントについて、ゼロクロスカウント値とデルタ−ｓを決定する。
【００４１】
図１２に移ると、ステップ１４２に関連するサブルーチンが示されたそして、ステップ１５４で開始する。ステップ１５６では、コンピュータは、ゼロクロスカウント値のためのカウンタをゼロに初期化し、そして、ステップ１５６で、コンピュータはつぎのサンプリング期間からの数を試験する。ステップ１５８で、コンピュータは、最後のサンプル期間から符号が変化したかを確立する。答えが否定である場合には、コンピュータは、ステップ１６０へ進みそして、セグメント内の全てのサンプリング期間が試験されたかどうかを検査する。答えが肯定の場合には、コンピュータはステップ１６２に進みそして、ゼロクロスカウント値が現在ゼロであるかを質問する。ステップ１６２の結果が肯定である場合には、コンピュータはデルタ−ｓを、ステップ１６４に示されるようにセグメント内で現在のサンプルの位置に等しい位置に設定する。ステップ１６２結果が否定である場合には、コンピュータはステップ１６６に進みそして、１だけゼロクロスカウント値についてカウンタを増加する。コンピュータはそして、ステップ１６０へ進み、そして、セグメント内の全てのサンプリング期間が試験されたかどうかを検査する。ステップ１６０の結果が否定である場合には、コンピュータはステップ１５６へ戻り、そして、次のサンプリング期間からの数を試験する。他方では、ステップ１６０の結果が肯定である場合には、コンピュータはステップ１６８へ進みそして、ゼロクロスカウント値が現在ゼロであるかどうかを再び検査する。ステップ１６８の結果が否定の場合には、コンピュータはステップ１７０でサブルーチンの終了に進む。他方では、ステップ１６８の結果が肯定の場合には、コンピュータはステップ１７２へ進みそして、デルタ−ｓをセグメントの長さプラス１に等しくなるように設定する。これは、そのセグメント内にゼロクロスがなかったことを示し、そして、デルタ−ｓは区別された値に設定される。コンピュータはそして、ステップ１７０へ進み、そして、図１１に示されたサブルーチンのステップ１４４へ戻る。
【００４２】
図１０へ戻ると、テストファイルから取られたクリップについてテストプロファイルとデルタ−ｓの完全なリストが計算されたので、コンピュータはステップ１７４へ進み、そして、このように確立されたテストプロファイルとマスタファイルについてのマスタプロファイルを比較する。これは、図５と６に示されたステップに対応する。
【００４３】
ステップ１７６では、コンピュータはプロファイルが一致するどうかを質問し、そして、答えが肯定の場合には、コンピュータはステップ１７８で、一致が検出されたことを示す。そして、コンピュータは、図３のステップ４４に進む。
【００４４】
他方では、ステップ１７６の結果がテストプロファイルがマスタプロファイルと一致しないことを示す場合には、コンピュータはステップ１８０に進みそして、そのクリップについて新たなテストファイルを発生するために、セグメントについて開始点に要求されるシフトを計算する。上述のように、図７を参照して、シフトの量は、試験された全てのセグメントについて発生されたデルタ−ｓについての最小値に対応する。この値デルタ−ｍｉｎは、選択されそして、初期セグメントの開始点についての現在の変位はステップ１８２でそのような量だけ増加される。コンピュータはステップ１８４に進み、そして、そのような増加が、形成されるべき完全なテストプロファイルに対してステップ１３２で読まれたクリップの不充分な残りとなる結果となるかどうかを決定する。ステップ１８６で、コンピュータは、クリップが使い尽くされるかどうかを質問しそして、答えが否定である場合には、コンピュータはステップ１３６へ戻り、そして、初期セグメントからシフトされた位置から開始するテストプロファイルとデルタ−ｓリストを計算することを続ける。他方では、ステップ１８６の結果が、クリップが使い尽くされた場合には、コンピュータは、クリップとマスタファイルの間の一致はないとステップ１８８で結論付けそして、図３のステップ４２に進む。
【００４５】
簡単のために、説明は幾つかの仮定に基づいており、その１つは、２つのセグメントが一致するとみなされるためには、テストプロファイル内のセグメントのゼロクロスカウント値は、マスタプロファイル内のセグメントに対応するゼロクロスカウント値と正確に同じでなければならないことである。しかし、実際には、この要求は、厳しすぎる。それは、例えば、異なるオーディオ符号化フォーマットの使用又は雑音により発生された、マスタファイルとテストファイルの間の小さな差についての要求を満たさない。
【００４６】
そのような小さな差の要求される公差は、同一であるべきゼロクロスカウント値についての要求を緩和することにより達成される。代わりに、ゼロクロスカウント値が非常に似ている場合には、対応するセグメントが一致するとみなされる。セグメント一致は、そして、以下の式に基づいて決定される：
【００４７】
【数１】
2004531754.tif 000003
ここで、ＺＸＲＭＦは、マスタファイルＲＭＦのセグメントのゼロクロスカウント値、
ＺＸＦＦＣは、テストファイルＦＦＣのセグメントのゼロクロスカウント値、
ｍａｒｇｉｎ＿ｐは、誤差の相対マージン、
ｍａｒｇｉｎ＿ｂは、誤差の絶対マージンである。
【００４８】
実際には、それぞれ１．１と１０のｍａｒｇｉｎ＿ｐとｍａｒｇｉｎ＿ｂは、良好に動作する。これはマージン±（１０％＋１０）を許す。
【００４９】
このようになされた他の仮定は、テストプロファイルがそれから得られるテストトラックは、マスタプロファイルがそれから得られるマスタトラックの少し前で開始することである。実際には、これは、そのようではない。何れかの方向に、２つのトラックの開始の間に幾つかの第２の差があり得る。テストトラックは、先頭に偽の材料を有しうる又は、逆にマスタトラックの初期部分が失われうる。
【００５０】
テストトラックが開始で偽の材料を有する状況は、すでに上述のアルゴリズムでカバーされる。アルゴリズムは、単純に、テストとマスタファイルが同期するまで、テストファイルを通してシフトを保持し、偽の材料を捨てる。
【００５１】
しかしながら、マスタトラックの初期部分が失われている状況は、アルゴリズムの小さな拡張を必要とする。これは、所定のマスタファイルについての単一のマスタプロファイルのみではないがしかしそのようなマスタプロファイルの組みを発生すために、図８に示されたマスタプロファイル発生処理を拡張することを必要とする。各々のそのようなファイルはマスタファイルから１５秒のクリップを捕捉する。最初は、マスタファイルのちょうど最初から開始する。次は、マスタファイル内の１．５秒で始まる。次は、３秒で始まり、そして、最大１５秒まで、１．5秒ずつ増加する。これは、１つのマスタファイルに対して、合計で１１のマスタプロファイルを与える。すべてのこれらの１１プロファイルは、図８に示されたように、最初の３０秒のマスタファイルを捕捉する単一の長いプロファイルを発生し、そして、それが形成されながら、長いプロファイルから適切なサブシーケンスを動的に抽出することにより、形成されることが可能である。
【００５２】
ファイル比較処理は、そして、図１０に示された用に残るがしかし、１つの修正を有する。テストプロファイルを単一のマスタプロファイルのみと比較する代わりに、全ての１１プロファイル−”基本”プロファイル及び全ての”遅い開始の”プロファイルとの比較がなされる。
【００５３】
この配置は、１５秒までの任意の長さの失われた部分についての要求を満たす。正確に１．５秒の倍数ではない失われた部分により必要とされる精密な同期は、標準のシフト機構により提供される。従って、この拡張で、アルゴリズムは、最初の３０秒のテストファイルからの１５秒シーケンスが、３０秒のマスタファイルからの１５秒シーケンスと一致するときに、一致を見つけることができる。
【００５４】
図１３−１６に移ると、基本的なシフトセグメントアルゴリズムの修正をここで説明する。この修正は、本発明の動作を、以下の、
（１）テストファイルの各々のそれぞれのセグメントについてゼロクロスカウント値を計算しそして、同時にカウント値をマスタプロファイル内に示された対応するカウント値と比較することによる、
（２）どこでも可能な前に考えられたセグメントについてゼロクロスカウント値の再計算を避けることによる、
２つの方法で最適化することが意図されている。
【００５５】
このように、処理は、最初の不一致セグメントが検出されるとすぐに、所定のシフト位置でテストプロファイルの計算を停止するが、しかし次のシフト位置でプロファイルを形成するときに、前に計算された値を再使用することがいつでも可能である。各テストファイルは、それにより、動的にマスタファイルと比較される。
【００５６】
この処理は、ステップ２００が特定のテストトラックを含む特定のテストファイルの選択を表す、図１３のフローチャートに示されている。ステップ２０２では、コンピュータは、テストトラック内で考えられるセグメントの数をカウントするためのカウンタを、ゼロに設定し、そして、ステップ２０４で、コンピュータは、セグメントの開始と終了点を設定することによりそして、デルタ−ｓ１、デルタ−ｓ２及び、デルタ−ｓｅｇと共に、セグメントのゼロクロスカウント値を計算することにより、第１のセグメントを初期化する。コンピュータは、ステップ２０６に進み、ここで、テストファイルの第１のセグメントについてのゼロクロスカウント値とマスタファイルの第１のセグメントについてのゼロクロスカウント値の比較を行う。一致する場合には、コンピュータはステップ２０８へ進み、そして、テストファイルがマスタファイルと一致することを示すために十分なセグメントが一致するかどうかを質問する。これは、第１のセグメントなので、答えは、否定であり、そして、従って、コンピュータはステップ２１０へ進み、ここで、セグメントカウンタを１だけ増加して、次のセグメントに進む。ステップ２１２では、コンピュータは、図１４に示されたサブルーチンを使用して次のセグメントを初期化し、そして、ステップ２０６へ戻り、テストファイルの次のセグメントとマスタファイルの対応するセグメントの間一致があるかどうかをもう一度検査する。
【００５７】
ステップ２０６で一致が検出されない場合には、コンピュータはステップ２１４へ進みそして、先行するセグメントについて既に確立された一致を取り消すことなしに、現在のセグメントの開始点をシフトできるかどうかを検査する。この処理は、図１５を参照して以下に説明する。そのような検査の結果は、ステップ２１６で確立され、そして、シフトが可能であると検出される場合には、コンピュータは、ステップ２１８でそのようなシフトをすることを進め、そして、ステップ２０６に戻り、テストファイルの現在のセグメントとマスタファイルの対応するセグメントの間一致があるかどうかをもう一度検査する。他方では、ステップ２１６の結果が、先行するセグメントについて確立された一致を取り消すことなしにシフトすることが出来ないという指示である場合には、コンピュータはステップ２２０へ進む。ステップ２２０では、コンピュータは現在のセグメントの番号を示すカウンタがゼロであるかどうかを質問する。答えが肯定である場合には、コンピュータはテストファイルとマスタファイルの間の一致は不可能であるとみなし、そして、ステップ２２２で最適された手順の最後に進む。カウンタがゼロでない場合には、コンピュータは、ステップ２２４に進みそして、カウンタを１だけ減算し、それにより、再考のためにすぐ前のセグメントに戻る。この点で、コンピュータはステップ２１４に戻り、そして、この前のセグメントのシフトが、その前にセグメントについてすでに確立された一致を取り消すことなしに、可能であるかどうかを検査する。
【００５８】
図１４は、ステップ２０４を含むサブルーチンを示すフローチャートである。このサブルーチンは、ステップ２３０で、現在考えられているセグメントを初期化する命令で、開始する。ステップ２３２では、コンピュータは、前のセグメントの終了点足す１サンプリング期間に一致するように、現在のセグメントについての開始点を設定する。コンピュータは、ステップ２３４に進み、ここで、現在のセグメントついての開始点足すセグメント長に対応するように現在のセグメントについての終了点を設定する。この後に、ステップ２３６で、コンピュータは、セグメントに対して：ゼロクロスカウント値、図７に示されたようにセグメント開始点から第１のゼロクロス点の距離に対応する値デルタ−ｓ１、図７に示されたようにセグメント終了点から第１の後続のゼロクロス点の距離に対応する値デルタ−ｓ２及び、デルタ−ｓ１とデルタ−ｓ２の小さい方である値デルタ−ｓｅｇを計算する。コンピュータは、ステップ２３６に進み、そして、デルタ−ｒｕｕｎｉｎｇとして知られるセグメントに値を設定する。デルタ−ｒｕｎｎｉｎｇは、現在又はそれ以前のゼロクロスカウント値を変更することなしに後のセグメントをシフト出来る最大距離に対応する。最初に、この値は、本セグメントについての値デルタ−ｓｅｇと前のセグメントについてのデルタ−ｒｕｎｎｉｎｇの小さい方であるように計算される。最後に、コンピュータは、ステップ２４０へ進み、そして、現在のセグメントについてデルタ−ｕｓｅｄとして知られる値を、ゼロに設定する。デルタ−ｕｓｅｄは、特定のセグメントがその元の開始点から既にシフトされた合計量を示す。これは、コンピュータに、特定のセグメントを初期化するためのサブルーチンについての終了２４２をもたらす。
【００５９】
図１５は、現在考えられているセグメントをシフトできるか否かを試験するためのステップ２１４に関連するサブルーチンである。このサブルーチンは、ステップ２５０で開始し、それに続いて、コンピュータは、ステップ２５２へ進む。ステップ２５２では、コンピュータは、現在のセグメントについての和デルタ−ｓｅｇ足すデルタ−ｕｓｅｄは、前のセグメントについてのデルタ−ｒｕｎｎｉｎｇを超えるかどうかを質問する。答えが肯定の場合には、コンピュータは、ステップ２５４へ進み、そして、シフトが可能でないことを決定する。答えが否定の場合には、コンピュータは、ステップ２５６へ進み、そして、シフトが可能であることを決定する。
【００６０】
最後に図１６に移ると、現在のセグメントをシフトするステップ２１８に関連するサブルーチンを説明する。このサブルーチンは、示されたように、ステップ２６０で開始する。コンピュータはステップ２６２に進み、そして、値デルタ−ｓｅｇを、そのセグメントにつての値デルタ−ｕｓｅｄへ加え、セグメントが、シフトが既に発生し総計が値デルタ−ｕｓｅｄである何に対してもデルタ−ｓｅｇだけシフトされていることを示す。これはステップ２６４で実行され、ここで、値デルタ−ｓｅｇは、そのセグメントの開始点と終了点へ加えられる。次に、ステップ２６６で、コンピュータは値デルタ−ｓｅｇをそのセグメントについてのデルタ−ｓ１から減算する。ステップ２６８では、コンピュータは、新たなデルタ−ｓ１がゼロに等しいかどうかを検査する。答えが肯定の場合には、これは、ゼロクロスがシフトによりセグメントの前から除去されたことを意味し、そして、コンピュータは、ステップ２７０で、１だけゼロクロスカウント値についてのカウンタの値を減少させる。そして、コンピュータは、ステップ２７２へ進み、そのセグメントについての新たなデルタ−ｓ１を計算する。続いて、ステップ２６８の結果が否定か又は、次のステップ２７２の計算のいずれかなので、コンピュータはステップ２７４へ進み、そして、そのセグメントについての値デルタ−ｓ２から、値デルタ−ｓｅｇを減算する。ステップ２７６では、コンピュータは、値デルタ−ｓ２がゼロであるか否かを検査する。答えが肯定の場合には、これは、新たなゼロクロスがセグメントの最後に追加され、そして、コンピュータは、ステップ２７８で、１だけそのセグメントについてのゼロクロスカウント値についてのカウンタを増加する。続いて、コンピュータは、ステップ２８０でそのセグメントについての新たな値デルタ−ｓ２を計算する。この後に、ステップ２７６の結果が否定又は、ステップ２８０で新たなデルタ−ｓ２を計算するので、コンピュータはステップ２８２へ進む。ステップ２８２では、コンピュータは、デルタ−ｓ１とデルタ−ｓ２についての現在の値の小さい方としてデルタ−ｓｅｇについての新たな値を設定する。シフトされているので、そのセグメントについてのデルタ−ｒｕｎｎｉｎｇは、再計算されねばならず、そして、これはステップ２８４で実行される。このステップでは、新たなデルタ−ｒｕｎｎｉｎｇが、（ｉ）前のセグメントの値デルタ−ｒｕｎｎｉｎｇから現在のセグメントについての値デルタ−ｕｓｅｄを引いたものと、（ｉｉ）現在のセグメントについての値デルタ−ｓｅｇの小さい方であるように設定される。現在のセグメントをシフトするサブルーチンはこのように完了する。
【００６１】
図１３−１６を参照して説明した最適化手順により、基本的ファイル一致アルゴリズムの非常に大きな改善が可能である。重要なことには、識別の速度は非常に増加され、そしてそれゆえに、検査されることが可能な未知のファイルの数も非常に増加される。
【００６２】
本発明は、オーディオトラック又はファイルを比較する知られた配置と比較して、幾つかの大きな利益を有する。
【００６３】
最も重要なことには、一致が検出されるために、比較されている２つのファイルについて、それらのディジタル符号化が同一であることは必要ない。それらは、”同じ”オーディオトラックを含みながら、様々なように異なることが可能である。例えば、テストトラックは、失われた初期の部分を有しうるか又は、先頭に追加の素材を含みうる。等しく、例えば、異なるディジタル符号化フォーマット、ノイズスパイク又は、背景ノイズにより発生された波形変化も、適応される。
【００６４】
これらの許容度は、例えば、インターネット上で利用できるようになされた、所定のオーディオトラックの不法なコピーの識別を含む、重要な応用の範囲を有することを可能とする。例えば、異なるＭＰ３変換プログラムを通して、ライブコンサートの密売の記録を通して、又は、ラジオ又はテレビジョン放送を通して、種々の異なる方法で捕捉されたコピーは、検出されそして一致するものを見つけられ、これは今まで不可能であった。
【００６５】
本発明の他の利益は、その速度を含み、それにより、単一の未知のテストファイルをデータベース内に記憶された多くの数１００のマスタファイルと比較すること、又は、データベース内に現在保持されているマスタファイルと一致することを確認するためにラジオ放送又ウェブ放送のようなオーディオ源を監視することを、実用的にする。
【００６６】
更に加えて、本発明によれば、標準工業ハードウェアに適合する。更に、一致を見つけるためにオリジナルのマスタトラックを修正するためのウォータマーク又は他の方法を採用する必要がない。
【図面の簡単な説明】
【００６７】
【図１】本発明に従った処理を一般的に示すフローチャートである。
【図２】本発明に従った処理を一般的に示すフローチャートである。
【図３】本発明に従った処理を一般的に示すフローチャートである。
【図４】マスタオーディオトラックのような、アナログ波形のディジタル符号化を示す波形図である。
【図５】マスタ波形と２つのテスト波形の比較を示す波形図である。
【図６】テスト波形とマスタ波形の比較を更に示す波形図である。
【図７】テスト波形のセグメントを示す及び、比較のためにどのようにセグメントシフトが行われるかを示す波形図である。
【図８】本発明に従ったマスタファイルの発生を示すフローチャートである。
【図９】図８に従ったマスタファイルの発生のサブルーチンを示すフローチャートである。
【図１０】本発明に従ったテストファイルとマスタファイルの比較を示すフローチャートである。
【図１１】本発明に従ったテストプロファイルを構成するステップを示すフローチャートである。
【図１２】図１１に示されたテストプロファイルを構成する処理のサブルーチンを示すフローチャートである。
【図１３】本発明に従った最適化されたファイル一致処理を示すフローチャートである。
【図１４】図１３に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図１５】図１３に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図１６】図１３に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図１】
2004531754.tif 000004
【図２】
2004531754.tif 000005
【図３】
2004531754.tif 000006
【図６】
2004531754.tif 000007
【図７】
2004531754.tif 000008
【図８】
2004531754.tif 000009
【図９】
2004531754.tif 000010
【図１０】
2004531754.tif 000011
【図１１】
2004531754.tif 000012
【図１２】
2004531754.tif 000013
【図１３】
2004531754.tif 000014
【図１４】
2004531754.tif 000015
【図１５】
2004531754.tif 000016
【図１６】
2004531754.tif 000017
【国際公開パンフレット】
2004531754.tif 000018
2004531754.tif 000019
2004531754.tif 000020
2004531754.tif 000021
2004531754.tif 000022
2004531754.tif 000023
2004531754.tif 000024
2004531754.tif 000025
2004531754.tif 000026
2004531754.tif 000027
2004531754.tif 000028
2004531754.tif 000029
2004531754.tif 000030
2004531754.tif 000031
2004531754.tif 000032
2004531754.tif 000033
2004531754.tif 000034
2004531754.tif 000035
2004531754.tif 000036
2004531754.tif 000037
2004531754.tif 000038
2004531754.tif 000039
2004531754.tif 000040
2004531754.tif 000041
2004531754.tif 000042
2004531754.tif 000043
2004531754.tif 000044
2004531754.tif 000045
2004531754.tif 000046
2004531754.tif 000047
2004531754.tif 000048
2004531754.tif 000049
2004531754.tif 000050
2004531754.tif 000051
2004531754.tif 000052
2004531754.tif 000053
2004531754.tif 000054
2004531754.tif 000055
2004531754.tif 000056
2004531754.tif 000057
2004531754.tif 000058
2004531754.tif 000059
2004531754.tif 000060
2004531754.tif 000061
2004531754.tif 000062
2004531754.tif 000063
【国際調査報告】
2004531754.tif 000064
2004531754.tif 000065
2004531754.tif 000066