JP2004531754A - 電子ファイルを識別する方法及び装置 - Google Patents
電子ファイルを識別する方法及び装置 Download PDFInfo
- Publication number
- JP2004531754A JP2004531754A JP2002574531A JP2002574531A JP2004531754A JP 2004531754 A JP2004531754 A JP 2004531754A JP 2002574531 A JP2002574531 A JP 2002574531A JP 2002574531 A JP2002574531 A JP 2002574531A JP 2004531754 A JP2004531754 A JP 2004531754A
- Authority
- JP
- Japan
- Prior art keywords
- test
- master
- indicator
- profile
- signal sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/683—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/632—Query formulation
- G06F16/634—Query by example, e.g. query by humming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本発明は、試験下の電子ファイルを識別する方法及び装置を提供する。本発明に従って、識別する処理は、マスタ信号シーケンスを有するマスタファイルを読み出し、マスタ信号シーケンスをセグメントに分割し、各マスタ信号セグメントを表す基準インジケータを発生し、それぞれの基準インジケータを、マスタプロファイルとして記憶し、テスト信号シーケンスを含むテストファイルを読み出し、テスト信号シーケンスをセグメントに分割し、 テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生し、マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較し、 基準インジケータとテストインジケータが一致するかどうかを決定し、対応する指示を発生する。
Description
【0001】
本発明は、特にオーディオ情報を含む電子ファイルの、電子ファイルを識別する方法及び装置に関連する。本発明は、マスターオーディオファイルとそのようなファイルの一致するものを見つけることにより、未知のオーディオファイルの識別の、特定の応用を有する。
【0002】
本発明は、インターネット上の特定のオーディオファイル及びオーディオトラックを検索し且つ、特定されたオーディオファイル又はトラックが、データベースにその詳細が記憶されているマスタオーディオトラックと一致するかどうかを検査するために、使用されることは認識される。
【0003】
インターネット上で特定のオーディオトラックを検索しそして、見つけられたトラックを再生しそして耳によりそれらを識別する人を使用することにより、見つけられたトラックを識別することが、既に知られている。
【0004】
また、データベースに特定のトラックのタイトルを記憶し、そして、対応するタイトルについてインターネットを検索することも知られている。検索で見つかったタイトルは、データベース内に保持されているタイトルと比較され、そして、一致する場合には、対応するオーディオトラックも一致するという仮定がなされる。これに伴なう欠点は、実際のオーディオトラックそれ自身が比較されずそして、従って、トラックの一致が確認できずそして、タイトルのないトラックの識別は不可能であることである。従って、そのような配置の精度に、望むことがある。
【0005】
他の知られた処理は、特定のオーディオトラックの内容をとり、そして、コンピュータ又はデータ処理装置内で、これは、そのトラックを表すコードを発生するアルゴリズムにかけられる。このコードは、コンピュータのデータベース内に記憶される。そして、未知のトラックの位置を捜し、識別コードを発生するためにそれらを同じアルゴリズムにかけ、そして、そのような識別コードをデータベースファイル内のコードと比較してそれらが一致するかどうかを確立することにより、対応するオーディオトラックについてインターネットを検索することが可能である。しかしながら、そのような処理は、オーディオファイルの適合するものを見つけることの中心の問題、即ち、同じオーディオトラックを含む2つのファイルは、精密に同じ2値パターンを含む必要はないということと、取り組まない。例えば、異なる供給源からの記録、又は、時間の異なる点での開始、又は、ノイズスパイク又は背景ノイズを含むことにより、発生される差がありうる。所定のこれらの差及び、採用されている精密な符号化アルゴリズムに依存して、コード発生のアプローチは、真の一致を識別するために、偽の一致又はフェイルのいずれかを発生する。従って、識別処理の全体的な精度は、悪い。
【0006】
本発明は、上述の問題を克服し且つ信頼性のある、正確なそして高速に電子ファイルを識別する方法及び装置を提供することを得ようとする。
【0007】
従って、本発明の1つの面は、試験下の電子ファイルを識別する方法が提供され、この方法は、
マスタ信号シーケンスを有するマスタファイルを読み出すステップと、
マスタ信号シーケンスをセグメントに分割するステップと、
各マスタ信号セグメントを表す基準インジケータを発生するステップと、
それぞれの基準インジケータを、マスタプロファイルとして記憶するステップと、
比較のためにテスト信号シーケンスを含むテストファイルを読み出すステップと、
テスト信号シーケンスをセグメントに分割するステップと、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生するステップと、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較するステップと、
基準インジケータとテストインジケータが一致するかどうかを決定するステップと、
対応する指示を発生するステップとを有する。
【0008】
本発明の他の面に従って、試験下の電子ファイルを識別する装置が提供され、この装置は、
マスタ信号シーケンスを有するマスタファイルを読み出す手段と、
マスタ信号シーケンスをセグメントに分割する手段と、
各マスタ信号セグメントを表す基準インジケータを発生する手段と、
それぞれの基準インジケータを、マスタプロファイルとして記憶するメモリと、
テスト信号シーケンスを含むテストファイルを読み出す手段と、
テスト信号シーケンスをセグメントに分割する手段と、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントにつてそれぞれのテストインジケータを発生する手段と、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較する手段と、
基準インジケータとテストインジケータが一致するかどうかを決定する手段と、
対応する指示を出力する手段とを有する。
【0009】
本発明の好ましい形式では、マスタ信号とテスト信号は、両方ともオーディオ信号を含む。例えば、マスタ信号は、ポピュラーアルバムからのポピュラー曲又はトラックを示し、そして、本発明は、テスト信号が同じ曲又はトラックを構成するかどうかを検査するのに使用されうる。
【0010】
好ましくは、マスタ及びテスト信号シーケンスは、ディジタル符号化されたオーディオトラックから取られる。
【0011】
好ましくは、各インジケータは、それぞれのセグメントの支配的な周波数のような、波形の区別する特徴を表す単純な値である。例えば、インジケータは、各セグメントに含まれているオーディオ信号部分についての、ゼロクロスカウント値又は他の支配的な周波数値の1つを決定することにより、発生されうる。
【0012】
優位に、本発明に従った方法及び装置は、
第1のテストプロファイルを発生するためにテスト信号シーケンスの第1の予め定められた点から開始するセグメントの第1の組を生成し、
第1の予め定められた点を、予め定められた量だけ、テスト信号シーケンスの新たな予め定められた点へシフトし、
他のテストプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのファイルについての複数のプロファイルを発生するように構成される。
【0013】
本発明を、例により、添付の図面を参照して、さらに説明する。
【0014】
ここに開示される本発明は、オーディオトラックの識別と一致を見つけるのに適用される。例えば、そのようなトラックは、ポピュラーアルバムからのポピュラー曲、トラック又は、クラシック又は他の音楽記録物からのトラックでも良い。それらは、音声記録物又は他のオーディオ演奏からのトラックでもよい。
【0015】
本発明を、一般的には最初に図1−3を参照して説明する。
【0016】
図1は、本発明を実行するためにデータベース内にマスタ又は基準ファイルを発生するのに関係するステップを表すフローチャートを示す。最初に、ステップ10で、コンピュータオペレータは、コンピュータデータベースに入力するために新たなタイトルと対応するオーディオトラックを選択する。オペレータは、ステップ12でコンピュータへタイトルテキストを入力し、そして、コンピュータは、続いて発生されるマスタファイルについての名称としてこのテキストを捕捉する。ステップ14では、コンピュータはタイトルに対応するトラックを受信しそして、そのトラックを表すトラックプロファイルを含むマスタファイルを発生する。タイトルとマスタファイルは、後続の処理のために、ステップ16でコンピュータのデータベース内に記憶される。
【0017】
図2に移ると、図1でコンピュータに入力された新たなマスタトラックと一致するトラックをについての検索が要求されるときには、コンピュータオペレータは、ステップ20で、検索されるタイトルと可能な位置を識別する検索定義を公式化する。ステップ22で、オペレータは、タイトル、検索される位置又は複数の位置、及び、おそらく検索が実行される頻度(frequency)を含む検索情報を、コンピュータへ入力する。そのような情報は、後の使用のためにステップ24でデータベース内に記憶される。
【0018】
図3は、次のように、実際の検索を示すフローチャートである。検索は、ステップ30で開始され、そして、コンピュータは、図2のステップ24で記憶された詳細について、データベースをアクセスする。ステップ32では、コンピュータは、2ステップ動作を実行し、第1に規定されたタイトルを有するトラックについてステップ24で規定された位置を検索し、そして、第2にそのタイトルが一致するトラックを含むテストファイルのリストを構築する。次にステップ34で、コンピュータは位置の見つけられた種々のトラックについて、各テストファイルを検査する。これは、ステップ36でテストトラックプロファイルを動的に形成することを含み、続いて、ステップ38で、テストプロファイルを、ステップ24でデータベース内に既に記憶されたマスタプロファイルと動的に比較する。
比較の結果は、ステップ40に示され、不一致が検出された場合には、コンピュータはステップ42に示されたようになにもしない。他方では、一致が検出された場合には、コンピュータはステップ44に進み、そして、データベースに一致が検出されたことを示すフラグ又はマーカーを入力する。
【0019】
図1−3を参照して説明されたステップは、単一のマスタファイルと単一のテストファイルを参照するが、実際には、データベースは、幾つかのマスタファイルが記憶されそして、種々の異なるマスタファイルについて一致について同時に検索される、そして、各マスタファイルに対して複数のテストファイルを同時に検査しうることは、理解されよう。
【0020】
図4に移ると、マスタプロファイルとテストプロファイルを形成する処理を、詳細に説明する。図4は、マスタトラック又は未知のテストトラック上に記録されたオーディオサウンドに対応するアナログ波形50を示す。実際には、アナログオーディオ信号は、おそらく、波形内の関心の最高周波数信号を捕捉するのに十分な頻度で、秒当り数100回波形をサンプリングすることにより、ディジタル的に符号化された形式で記録されている。各サンプリング期間で、波形の振幅は測定されそして、単一のディジタルサンプルを表す正又は負の数として符号化される。これは、波形へのステップ化された外形52により図4で示されている。例えば、ある等しい間隔のサンプリング期間54が図4に破線により示され、そして、対応する数が記されている。連続するサンプリング期間からの数のシーケンスは、波形のディジタル符号化を提供する。
【0021】
マスタファイルについてのマスタプロファイル又は、テストファイルについてのテストプロファイルを発生するために、信号シーケンスが、典型的には、図5に示されたように、1/10秒の、等しい継続時間の固定のセグメント56に分割される。図5を参照すると、ライン(a)は、マスタファイルについてのアナログ信号と対応するプロファイルを示し、ライン(b)と(c)は、試験されるアナログ信号と2つのファイルについての対応するプロファイルを示す。特定のトラックの各セグメント56については、コンピュータは、このセグメント56の波形を表す、基準又はテストインジケータを割当てる。このインジケータは、支配的な周波数のような、波形の区別する特徴を表す、単純な値である。この例では、インジケータは、そのセグメント56内の波形についてのゼロクロスカウント数に基づいている。特に、コンピュータはセグメント56内で波形がゼロ軸と交差する回数を検出しそして、この数又はゼロクロスカウント値をそのセグメント56についてのトラックに対するインジケータとして設定する。実際には、セロクロス点は、2つの連続するディジタルサンプルが、1つは正のそして1つは負の、異なる符号を有する時はいつでも検出でき、そして、ゼロクロスカウント値は、1つのセグメント56中にそのような点が検出された回数を構成する。図5は、マスタファイルについて、各セグメント56に対する連続するゼロクロスカウント値を示す:
8,6,7,5,6,8,6,6。
【0022】
この連続する数は、マスタファイルについてのマスタプロファイルを構成する。
【0023】
同様に、図5は、テストファイルについてのテストプロファイル:
6,8,4,5,7,4,2,3.
を示す。
【0024】
同様な方法で計算された第2のテストファイルについてのテストプロファイルは:
8,6,7,5,6,8,6,6。
【0025】
テストファイルをマスタファイルと比較するために、コンピュータは、セグメントごとにテストプロファイルの形成を開始し、即ち、テストプロファイルを動的に形成し、そして、セグメントごとに即ち、再び動的に、テストプロファイルとマスタプロファイルの比較を開始する。
【0026】
図5に示されたように、ライン(b)に示された第1のテストファイルについてのテストインジケータは、第4セグメント58でのみマスタファイルについての基準インジケータと一致する。実際には、コンピュータは、第1の数セグメント56の比較に基づいて、不一致であるので、既に第1のテストファイルを捨てている。ライン(c)で示されている第2のテストファイルに移ると、各セグメントについて、テストインジケータは基準インジケータと一致することが分かる。実際には、コンピュータは、マスタファイルとテストファイルの全体のコンテンツを表すプロファイルを構成しないが、しかし、15秒の継続時間のこれらのファイルの開始からの”クリップ”を表すプロファイルのみを構成する。
これらの2つのプロファイルが一致する場合には、一致があると結論する。
【0027】
単純に、ファイルが基づいているトラックが、時間的に同期しておらず、それにより、マスタファイルの第1のセグメント56が、テストファイルの第1のセグメント56と、アナログ波形の異なる点で開始するために、特定のテストファイルはマスタファイルと不一致が現れ得ることが、理解されよう。この状況と取り組むために、コンピュータは、図6に示されたように、テストトラックの先頭でテスト信号の初期部分を捨てることにより、1つのテストファイルについて、いくつかの異なるテストプロファイルを発生するように、構成される。
【0028】
図6は、ライン(a)に、テストコード:8,6,7,5,6,8,6,6を有する、前述と同じマスタファイルを示す。図6の、ライン(b)、(c)及び、(d)は、単一のテストファイルを示し、それから第1、第2及び、第3のテストプロファイルが連続して発生される。これらの続くテストプロファイルが発生される方法は、図7に示されている。
【0029】
図7を参照すると、テストファイルの単一のセグメント56が、セグメントの開始のすぐ後に続くデルタ−s1と指定された増加する期間60と、セグメントの終了のすぐ後に続くデルタ−s2と指定された増加する期間62とともに、拡大されて示されている。デルタ−s1は、セグメント56の開始点64とセグメント56内の第1のゼロクロス点66の間で発生する、幾つかのディジタルサンプリング期間を表す。同様に、デルタ−s2は、セグメント56の終了点68と次のセグメント内の第1のゼロクロス点70の間の幾つかのディジタルサンプリング期間を表す。理解されるように、示されている特定のセグメントのゼロクロスカウント値を変更するために、デルタ−s1かデルタ−s2のどちらか小さい方に対応する量だけ、セグメントの開始点64がシフトされ又は遅延されねばならない。示された例では、デルタ−s1が小さい。従って、示されたセグメント56のゼロカウントを変更するのに必要なそして、本当にセグメント56の1つの、最小のシフトは、特定のセグメントについてデルタ−s1とデルタ−s2の小さい方である。この値をデルタ−segと呼ぶとすると、テストファイルについての新たなテストプロファイルを発生する最小シフトは、すべてのセグメントに対して最小のデルタ−segである値、即ち、デルタ−minであるということに従う。デルタ−minは、実際には、1/50000秒又はそれより小さいシフトである。
【0030】
図6を参照すると、検査のためにライン(b)に示されたテスト信号を受信するコンピュータは、最初に、テスト信号の開始でセグメント開始点に基づき、テストプロファイル72を構成し、これはテストプロファイル:
12,7,7,4,6,8,6,8
を生じる。
【0031】
明らかなように、このテストプロファイルは、マスタファイルについてのマスタプロファイルと一致しない。この結果、コンピュータは、各セグメントについてデルタ−s1とデルタ−s2を確立しそしてこれらの2つの値からデルタ−segを計算することにより、第2のテストプロファイル74を形成する。各セグメントについてデルタ−segを走査しそしてデルタ−minを決定した後に、コンピュータはデルタ−minに対応する量だけテスト信号にシフトを実行しそして図6のライン(c)に示された新たなテストプロファイル74を発生する。この新たなテストプロファイル74は:
11,7,7,5,6,8,5,7
である。
【0032】
再び、この第2のテストプロファイルはマスタファイルについてのマスタプロファイルと一致しないことは明らかである。
【0033】
従って、コンピュータは、もう一度シフトされたテスト信号に基づいてデルタ−minを決定することにより、同じ方法で、更なるテストプロファイル76を発生する。これは、第3のテストプロファイル76を発生し、それは:
8,6,7,5,6,8,6,6
である。
【0034】
これから分かるように、第3のテストプロファイル76は、マスタファイルについてのマスタプロファイルに一致し、そして、これゆえに、コンピュータは、テストファイルがマスタファイルに対応することそしてそれゆえにテストファイルが発生されたオーディオトラックがマスタファイルが発生されたマスタトラックに対応することを示す、出力を発生する。
【0035】
これらのステップは、以下に図8−12に示されたフローチャートを参照して更に完全に説明する。
【0036】
図8を参照すると、これは、図1のステップ14に示された、マスタファイルからのマスタプロファイルの発生を示すフローチャートを示す。このステップ100では、コンピュータはこの処理を開始する。コンピュータはステップ102で、マスタファイルの第1のセグメントを読み出し、そして、ステップ104でゼロクロスカウント値を決定する。ステップ106では、コンピュータは、ステップ104で確立されたカウント値を、それまで形成されたプロファイルに加える。次に、コンピュータは、ステップ108で、既に読み出されたセグメントの数が、マスタプロファイルについて要求されるセグメントの合計数と一致するかどうかを検査する。答えが否定の場合には、コンピュータは、ステップ102に戻り、そして、次のセグメントを読み出す。答えが肯定の場合には、コンピュータはステップ110へ進み、そして、全体のマスタプロファイルをデータベースに記憶する。
【0037】
図9は、つぎのように、ステップ104に関係するサブルーチンを示すフローチャートである。サブルーチンは、ステップ112で開始しそして、ステップ114へ進みここで、コンピュータは、ゼロクロスカウント値を検出するカウンタをゼロに初期化する。コンピュータは、そして、ステップ116ですぐ後のサンプリング期間で発生されるディジタル数を試験し、そして、ステップ118で、符号が最後のサンプリング期間から正及び負の間で変化したかどうかを検査する。答えが肯定の場合には、カウンタはステップ120で1だけ増加される。他方では、答えが否定の場合には、コンピュータは、ステップ122に進み、そして、セグメント内の全てのサンプリング期間からの数が試験されたか試験されたかを検査する。ステップ122の結果が肯定の場合には、サブルーチンはステップ124で終了する。他方では、ステップ122の結果が否定の場合には、コンピュータはステップ116に戻り、そして、次のサンプリング期間からの数を試験する。
【0038】
図8と9に示されたフローチャートは、図4と5を参照して上述したマスタプロファイルの生成を示す。
【0039】
図10に移ると、テストファイルを選択しそして、マスタプロファイルと比較するテストプロファイルを発生するステップを説明する。コンピュータは、ステップ130で手順を開始し、そして、ステップ132で、テストファイルから最初のクリップ又は信号シーケンスを読み出す。ステップ134で、コンピュータは、第1のセグメントの開始点についての現在の変位を検出するカウンタをゼロに初期化する。コンピュータはそして、ステップ136に示されたように、クリップ内の各セグメントについてのテストプロファイルと値デルタ−sを計算することを進める。
【0040】
ステップ136に含まれているサブルーチンは、図11に示されており、そして、ここで説明する。サブルーチンはステップ138で開始し、そして、コンピュータはステップ140へ進み、現在はゼロである、現在の変位と一致させるためにセグメントについての開始点を設定する。コンピュータはステップ142へ続きそして、初期セグメントについてのゼロクロスカウント値とそのセグメントについてのデルタ−sを決定する。ステップ144で、コンピュータは、ステップ142で決定されたゼロクロスカウント値をテストプロファイルメモリに加えそして、ステップ146で、コンピュータはステップ142で計算されたデルタ−sをデルタ−sの全ての値についてのメモリに加える。コンピュータはステップ148に進み、そして、完全なテストプロファイルが確立されたかどうかを検査する。答えが、肯定の場合には、コンピュータはステップ150へ進み、そしてサブルーチンは終了する。他方では、答えは否定の場合には、コンピュータはステップ152へ進みそして、セグメント長に対応する量だけ現在のセグメント開始点を増加することにより、次のセグメントへセグメントに進む。コンピュータはそして、ステップ142に戻り、テストプロファイルメモリとデルタ−sメモリに記憶するためにこの新たなセグメントについて、ゼロクロスカウント値とデルタ−sを決定する。
【0041】
図12に移ると、ステップ142に関連するサブルーチンが示されたそして、ステップ154で開始する。ステップ156では、コンピュータは、ゼロクロスカウント値のためのカウンタをゼロに初期化し、そして、ステップ156で、コンピュータはつぎのサンプリング期間からの数を試験する。ステップ158で、コンピュータは、最後のサンプル期間から符号が変化したかを確立する。答えが否定である場合には、コンピュータは、ステップ160へ進みそして、セグメント内の全てのサンプリング期間が試験されたかどうかを検査する。答えが肯定の場合には、コンピュータはステップ162に進みそして、ゼロクロスカウント値が現在ゼロであるかを質問する。ステップ162の結果が肯定である場合には、コンピュータはデルタ−sを、ステップ164に示されるようにセグメント内で現在のサンプルの位置に等しい位置に設定する。ステップ162結果が否定である場合には、コンピュータはステップ166に進みそして、1だけゼロクロスカウント値についてカウンタを増加する。コンピュータはそして、ステップ160へ進み、そして、セグメント内の全てのサンプリング期間が試験されたかどうかを検査する。ステップ160の結果が否定である場合には、コンピュータはステップ156へ戻り、そして、次のサンプリング期間からの数を試験する。他方では、ステップ160の結果が肯定である場合には、コンピュータはステップ168へ進みそして、ゼロクロスカウント値が現在ゼロであるかどうかを再び検査する。ステップ168の結果が否定の場合には、コンピュータはステップ170でサブルーチンの終了に進む。他方では、ステップ168の結果が肯定の場合には、コンピュータはステップ172へ進みそして、デルタ−sをセグメントの長さプラス1に等しくなるように設定する。これは、そのセグメント内にゼロクロスがなかったことを示し、そして、デルタ−sは区別された値に設定される。コンピュータはそして、ステップ170へ進み、そして、図11に示されたサブルーチンのステップ144へ戻る。
【0042】
図10へ戻ると、テストファイルから取られたクリップについてテストプロファイルとデルタ−sの完全なリストが計算されたので、コンピュータはステップ174へ進み、そして、このように確立されたテストプロファイルとマスタファイルについてのマスタプロファイルを比較する。これは、図5と6に示されたステップに対応する。
【0043】
ステップ176では、コンピュータはプロファイルが一致するどうかを質問し、そして、答えが肯定の場合には、コンピュータはステップ178で、一致が検出されたことを示す。そして、コンピュータは、図3のステップ44に進む。
【0044】
他方では、ステップ176の結果がテストプロファイルがマスタプロファイルと一致しないことを示す場合には、コンピュータはステップ180に進みそして、そのクリップについて新たなテストファイルを発生するために、セグメントについて開始点に要求されるシフトを計算する。上述のように、図7を参照して、シフトの量は、試験された全てのセグメントについて発生されたデルタ−sについての最小値に対応する。この値デルタ−minは、選択されそして、初期セグメントの開始点についての現在の変位はステップ182でそのような量だけ増加される。コンピュータはステップ184に進み、そして、そのような増加が、形成されるべき完全なテストプロファイルに対してステップ132で読まれたクリップの不充分な残りとなる結果となるかどうかを決定する。ステップ186で、コンピュータは、クリップが使い尽くされるかどうかを質問しそして、答えが否定である場合には、コンピュータはステップ136へ戻り、そして、初期セグメントからシフトされた位置から開始するテストプロファイルとデルタ−sリストを計算することを続ける。他方では、ステップ186の結果が、クリップが使い尽くされた場合には、コンピュータは、クリップとマスタファイルの間の一致はないとステップ188で結論付けそして、図3のステップ42に進む。
【0045】
簡単のために、説明は幾つかの仮定に基づいており、その1つは、2つのセグメントが一致するとみなされるためには、テストプロファイル内のセグメントのゼロクロスカウント値は、マスタプロファイル内のセグメントに対応するゼロクロスカウント値と正確に同じでなければならないことである。しかし、実際には、この要求は、厳しすぎる。それは、例えば、異なるオーディオ符号化フォーマットの使用又は雑音により発生された、マスタファイルとテストファイルの間の小さな差についての要求を満たさない。
【0046】
そのような小さな差の要求される公差は、同一であるべきゼロクロスカウント値についての要求を緩和することにより達成される。代わりに、ゼロクロスカウント値が非常に似ている場合には、対応するセグメントが一致するとみなされる。セグメント一致は、そして、以下の式に基づいて決定される:
【0047】
【数1】
ここで、ZXRMFは、マスタファイルRMFのセグメントのゼロクロスカウント値、
ZXFFCは、テストファイルFFCのセグメントのゼロクロスカウント値、
margin_pは、誤差の相対マージン、
margin_bは、誤差の絶対マージンである。
【0048】
実際には、それぞれ1.1と10のmargin_pとmargin_bは、良好に動作する。これはマージン±(10%+10)を許す。
【0049】
このようになされた他の仮定は、テストプロファイルがそれから得られるテストトラックは、マスタプロファイルがそれから得られるマスタトラックの少し前で開始することである。実際には、これは、そのようではない。何れかの方向に、2つのトラックの開始の間に幾つかの第2の差があり得る。テストトラックは、先頭に偽の材料を有しうる又は、逆にマスタトラックの初期部分が失われうる。
【0050】
テストトラックが開始で偽の材料を有する状況は、すでに上述のアルゴリズムでカバーされる。アルゴリズムは、単純に、テストとマスタファイルが同期するまで、テストファイルを通してシフトを保持し、偽の材料を捨てる。
【0051】
しかしながら、マスタトラックの初期部分が失われている状況は、アルゴリズムの小さな拡張を必要とする。これは、所定のマスタファイルについての単一のマスタプロファイルのみではないがしかしそのようなマスタプロファイルの組みを発生すために、図8に示されたマスタプロファイル発生処理を拡張することを必要とする。各々のそのようなファイルはマスタファイルから15秒のクリップを捕捉する。最初は、マスタファイルのちょうど最初から開始する。次は、マスタファイル内の1.5秒で始まる。次は、3秒で始まり、そして、最大15秒まで、1.5秒ずつ増加する。これは、1つのマスタファイルに対して、合計で11のマスタプロファイルを与える。すべてのこれらの11プロファイルは、図8に示されたように、最初の30秒のマスタファイルを捕捉する単一の長いプロファイルを発生し、そして、それが形成されながら、長いプロファイルから適切なサブシーケンスを動的に抽出することにより、形成されることが可能である。
【0052】
ファイル比較処理は、そして、図10に示された用に残るがしかし、1つの修正を有する。テストプロファイルを単一のマスタプロファイルのみと比較する代わりに、全ての11プロファイル−”基本”プロファイル及び全ての”遅い開始の”プロファイルとの比較がなされる。
【0053】
この配置は、15秒までの任意の長さの失われた部分についての要求を満たす。正確に1.5秒の倍数ではない失われた部分により必要とされる精密な同期は、標準のシフト機構により提供される。従って、この拡張で、アルゴリズムは、最初の30秒のテストファイルからの15秒シーケンスが、30秒のマスタファイルからの15秒シーケンスと一致するときに、一致を見つけることができる。
【0054】
図13−16に移ると、基本的なシフトセグメントアルゴリズムの修正をここで説明する。この修正は、本発明の動作を、以下の、
(1)テストファイルの各々のそれぞれのセグメントについてゼロクロスカウント値を計算しそして、同時にカウント値をマスタプロファイル内に示された対応するカウント値と比較することによる、
(2)どこでも可能な前に考えられたセグメントについてゼロクロスカウント値の再計算を避けることによる、
2つの方法で最適化することが意図されている。
【0055】
このように、処理は、最初の不一致セグメントが検出されるとすぐに、所定のシフト位置でテストプロファイルの計算を停止するが、しかし次のシフト位置でプロファイルを形成するときに、前に計算された値を再使用することがいつでも可能である。各テストファイルは、それにより、動的にマスタファイルと比較される。
【0056】
この処理は、ステップ200が特定のテストトラックを含む特定のテストファイルの選択を表す、図13のフローチャートに示されている。ステップ202では、コンピュータは、テストトラック内で考えられるセグメントの数をカウントするためのカウンタを、ゼロに設定し、そして、ステップ204で、コンピュータは、セグメントの開始と終了点を設定することによりそして、デルタ−s1、デルタ−s2及び、デルタ−segと共に、セグメントのゼロクロスカウント値を計算することにより、第1のセグメントを初期化する。コンピュータは、ステップ206に進み、ここで、テストファイルの第1のセグメントについてのゼロクロスカウント値とマスタファイルの第1のセグメントについてのゼロクロスカウント値の比較を行う。一致する場合には、コンピュータはステップ208へ進み、そして、テストファイルがマスタファイルと一致することを示すために十分なセグメントが一致するかどうかを質問する。これは、第1のセグメントなので、答えは、否定であり、そして、従って、コンピュータはステップ210へ進み、ここで、セグメントカウンタを1だけ増加して、次のセグメントに進む。ステップ212では、コンピュータは、図14に示されたサブルーチンを使用して次のセグメントを初期化し、そして、ステップ206へ戻り、テストファイルの次のセグメントとマスタファイルの対応するセグメントの間一致があるかどうかをもう一度検査する。
【0057】
ステップ206で一致が検出されない場合には、コンピュータはステップ214へ進みそして、先行するセグメントについて既に確立された一致を取り消すことなしに、現在のセグメントの開始点をシフトできるかどうかを検査する。この処理は、図15を参照して以下に説明する。そのような検査の結果は、ステップ216で確立され、そして、シフトが可能であると検出される場合には、コンピュータは、ステップ218でそのようなシフトをすることを進め、そして、ステップ206に戻り、テストファイルの現在のセグメントとマスタファイルの対応するセグメントの間一致があるかどうかをもう一度検査する。他方では、ステップ216の結果が、先行するセグメントについて確立された一致を取り消すことなしにシフトすることが出来ないという指示である場合には、コンピュータはステップ220へ進む。ステップ220では、コンピュータは現在のセグメントの番号を示すカウンタがゼロであるかどうかを質問する。答えが肯定である場合には、コンピュータはテストファイルとマスタファイルの間の一致は不可能であるとみなし、そして、ステップ222で最適された手順の最後に進む。カウンタがゼロでない場合には、コンピュータは、ステップ224に進みそして、カウンタを1だけ減算し、それにより、再考のためにすぐ前のセグメントに戻る。この点で、コンピュータはステップ214に戻り、そして、この前のセグメントのシフトが、その前にセグメントについてすでに確立された一致を取り消すことなしに、可能であるかどうかを検査する。
【0058】
図14は、ステップ204を含むサブルーチンを示すフローチャートである。このサブルーチンは、ステップ230で、現在考えられているセグメントを初期化する命令で、開始する。ステップ232では、コンピュータは、前のセグメントの終了点足す1サンプリング期間に一致するように、現在のセグメントについての開始点を設定する。コンピュータは、ステップ234に進み、ここで、現在のセグメントついての開始点足すセグメント長に対応するように現在のセグメントについての終了点を設定する。この後に、ステップ236で、コンピュータは、セグメントに対して:ゼロクロスカウント値、図7に示されたようにセグメント開始点から第1のゼロクロス点の距離に対応する値デルタ−s1、図7に示されたようにセグメント終了点から第1の後続のゼロクロス点の距離に対応する値デルタ−s2及び、デルタ−s1とデルタ−s2の小さい方である値デルタ−segを計算する。コンピュータは、ステップ236に進み、そして、デルタ−ruuningとして知られるセグメントに値を設定する。デルタ−runningは、現在又はそれ以前のゼロクロスカウント値を変更することなしに後のセグメントをシフト出来る最大距離に対応する。最初に、この値は、本セグメントについての値デルタ−segと前のセグメントについてのデルタ−runningの小さい方であるように計算される。最後に、コンピュータは、ステップ240へ進み、そして、現在のセグメントについてデルタ−usedとして知られる値を、ゼロに設定する。デルタ−usedは、特定のセグメントがその元の開始点から既にシフトされた合計量を示す。これは、コンピュータに、特定のセグメントを初期化するためのサブルーチンについての終了242をもたらす。
【0059】
図15は、現在考えられているセグメントをシフトできるか否かを試験するためのステップ214に関連するサブルーチンである。このサブルーチンは、ステップ250で開始し、それに続いて、コンピュータは、ステップ252へ進む。ステップ252では、コンピュータは、現在のセグメントについての和デルタ−seg足すデルタ−usedは、前のセグメントについてのデルタ−runningを超えるかどうかを質問する。答えが肯定の場合には、コンピュータは、ステップ254へ進み、そして、シフトが可能でないことを決定する。答えが否定の場合には、コンピュータは、ステップ256へ進み、そして、シフトが可能であることを決定する。
【0060】
最後に図16に移ると、現在のセグメントをシフトするステップ218に関連するサブルーチンを説明する。このサブルーチンは、示されたように、ステップ260で開始する。コンピュータはステップ262に進み、そして、値デルタ−segを、そのセグメントにつての値デルタ−usedへ加え、セグメントが、シフトが既に発生し総計が値デルタ−usedである何に対してもデルタ−segだけシフトされていることを示す。これはステップ264で実行され、ここで、値デルタ−segは、そのセグメントの開始点と終了点へ加えられる。次に、ステップ266で、コンピュータは値デルタ−segをそのセグメントについてのデルタ−s1から減算する。ステップ268では、コンピュータは、新たなデルタ−s1がゼロに等しいかどうかを検査する。答えが肯定の場合には、これは、ゼロクロスがシフトによりセグメントの前から除去されたことを意味し、そして、コンピュータは、ステップ270で、1だけゼロクロスカウント値についてのカウンタの値を減少させる。そして、コンピュータは、ステップ272へ進み、そのセグメントについての新たなデルタ−s1を計算する。続いて、ステップ268の結果が否定か又は、次のステップ272の計算のいずれかなので、コンピュータはステップ274へ進み、そして、そのセグメントについての値デルタ−s2から、値デルタ−segを減算する。ステップ276では、コンピュータは、値デルタ−s2がゼロであるか否かを検査する。答えが肯定の場合には、これは、新たなゼロクロスがセグメントの最後に追加され、そして、コンピュータは、ステップ278で、1だけそのセグメントについてのゼロクロスカウント値についてのカウンタを増加する。続いて、コンピュータは、ステップ280でそのセグメントについての新たな値デルタ−s2を計算する。この後に、ステップ276の結果が否定又は、ステップ280で新たなデルタ−s2を計算するので、コンピュータはステップ282へ進む。ステップ282では、コンピュータは、デルタ−s1とデルタ−s2についての現在の値の小さい方としてデルタ−segについての新たな値を設定する。シフトされているので、そのセグメントについてのデルタ−runningは、再計算されねばならず、そして、これはステップ284で実行される。このステップでは、新たなデルタ−runningが、(i)前のセグメントの値デルタ−runningから現在のセグメントについての値デルタ−usedを引いたものと、(ii)現在のセグメントについての値デルタ−segの小さい方であるように設定される。現在のセグメントをシフトするサブルーチンはこのように完了する。
【0061】
図13−16を参照して説明した最適化手順により、基本的ファイル一致アルゴリズムの非常に大きな改善が可能である。重要なことには、識別の速度は非常に増加され、そしてそれゆえに、検査されることが可能な未知のファイルの数も非常に増加される。
【0062】
本発明は、オーディオトラック又はファイルを比較する知られた配置と比較して、幾つかの大きな利益を有する。
【0063】
最も重要なことには、一致が検出されるために、比較されている2つのファイルについて、それらのディジタル符号化が同一であることは必要ない。それらは、”同じ”オーディオトラックを含みながら、様々なように異なることが可能である。例えば、テストトラックは、失われた初期の部分を有しうるか又は、先頭に追加の素材を含みうる。等しく、例えば、異なるディジタル符号化フォーマット、ノイズスパイク又は、背景ノイズにより発生された波形変化も、適応される。
【0064】
これらの許容度は、例えば、インターネット上で利用できるようになされた、所定のオーディオトラックの不法なコピーの識別を含む、重要な応用の範囲を有することを可能とする。例えば、異なるMP3変換プログラムを通して、ライブコンサートの密売の記録を通して、又は、ラジオ又はテレビジョン放送を通して、種々の異なる方法で捕捉されたコピーは、検出されそして一致するものを見つけられ、これは今まで不可能であった。
【0065】
本発明の他の利益は、その速度を含み、それにより、単一の未知のテストファイルをデータベース内に記憶された多くの数100のマスタファイルと比較すること、又は、データベース内に現在保持されているマスタファイルと一致することを確認するためにラジオ放送又ウェブ放送のようなオーディオ源を監視することを、実用的にする。
【0066】
更に加えて、本発明によれば、標準工業ハードウェアに適合する。更に、一致を見つけるためにオリジナルのマスタトラックを修正するためのウォータマーク又は他の方法を採用する必要がない。
【図面の簡単な説明】
【0067】
【図1】本発明に従った処理を一般的に示すフローチャートである。
【図2】本発明に従った処理を一般的に示すフローチャートである。
【図3】本発明に従った処理を一般的に示すフローチャートである。
【図4】マスタオーディオトラックのような、アナログ波形のディジタル符号化を示す波形図である。
【図5】マスタ波形と2つのテスト波形の比較を示す波形図である。
【図6】テスト波形とマスタ波形の比較を更に示す波形図である。
【図7】テスト波形のセグメントを示す及び、比較のためにどのようにセグメントシフトが行われるかを示す波形図である。
【図8】本発明に従ったマスタファイルの発生を示すフローチャートである。
【図9】図8に従ったマスタファイルの発生のサブルーチンを示すフローチャートである。
【図10】本発明に従ったテストファイルとマスタファイルの比較を示すフローチャートである。
【図11】本発明に従ったテストプロファイルを構成するステップを示すフローチャートである。
【図12】図11に示されたテストプロファイルを構成する処理のサブルーチンを示すフローチャートである。
【図13】本発明に従った最適化されたファイル一致処理を示すフローチャートである。
【図14】図13に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図15】図13に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図16】図13に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
本発明は、特にオーディオ情報を含む電子ファイルの、電子ファイルを識別する方法及び装置に関連する。本発明は、マスターオーディオファイルとそのようなファイルの一致するものを見つけることにより、未知のオーディオファイルの識別の、特定の応用を有する。
【0002】
本発明は、インターネット上の特定のオーディオファイル及びオーディオトラックを検索し且つ、特定されたオーディオファイル又はトラックが、データベースにその詳細が記憶されているマスタオーディオトラックと一致するかどうかを検査するために、使用されることは認識される。
【0003】
インターネット上で特定のオーディオトラックを検索しそして、見つけられたトラックを再生しそして耳によりそれらを識別する人を使用することにより、見つけられたトラックを識別することが、既に知られている。
【0004】
また、データベースに特定のトラックのタイトルを記憶し、そして、対応するタイトルについてインターネットを検索することも知られている。検索で見つかったタイトルは、データベース内に保持されているタイトルと比較され、そして、一致する場合には、対応するオーディオトラックも一致するという仮定がなされる。これに伴なう欠点は、実際のオーディオトラックそれ自身が比較されずそして、従って、トラックの一致が確認できずそして、タイトルのないトラックの識別は不可能であることである。従って、そのような配置の精度に、望むことがある。
【0005】
他の知られた処理は、特定のオーディオトラックの内容をとり、そして、コンピュータ又はデータ処理装置内で、これは、そのトラックを表すコードを発生するアルゴリズムにかけられる。このコードは、コンピュータのデータベース内に記憶される。そして、未知のトラックの位置を捜し、識別コードを発生するためにそれらを同じアルゴリズムにかけ、そして、そのような識別コードをデータベースファイル内のコードと比較してそれらが一致するかどうかを確立することにより、対応するオーディオトラックについてインターネットを検索することが可能である。しかしながら、そのような処理は、オーディオファイルの適合するものを見つけることの中心の問題、即ち、同じオーディオトラックを含む2つのファイルは、精密に同じ2値パターンを含む必要はないということと、取り組まない。例えば、異なる供給源からの記録、又は、時間の異なる点での開始、又は、ノイズスパイク又は背景ノイズを含むことにより、発生される差がありうる。所定のこれらの差及び、採用されている精密な符号化アルゴリズムに依存して、コード発生のアプローチは、真の一致を識別するために、偽の一致又はフェイルのいずれかを発生する。従って、識別処理の全体的な精度は、悪い。
【0006】
本発明は、上述の問題を克服し且つ信頼性のある、正確なそして高速に電子ファイルを識別する方法及び装置を提供することを得ようとする。
【0007】
従って、本発明の1つの面は、試験下の電子ファイルを識別する方法が提供され、この方法は、
マスタ信号シーケンスを有するマスタファイルを読み出すステップと、
マスタ信号シーケンスをセグメントに分割するステップと、
各マスタ信号セグメントを表す基準インジケータを発生するステップと、
それぞれの基準インジケータを、マスタプロファイルとして記憶するステップと、
比較のためにテスト信号シーケンスを含むテストファイルを読み出すステップと、
テスト信号シーケンスをセグメントに分割するステップと、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生するステップと、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較するステップと、
基準インジケータとテストインジケータが一致するかどうかを決定するステップと、
対応する指示を発生するステップとを有する。
【0008】
本発明の他の面に従って、試験下の電子ファイルを識別する装置が提供され、この装置は、
マスタ信号シーケンスを有するマスタファイルを読み出す手段と、
マスタ信号シーケンスをセグメントに分割する手段と、
各マスタ信号セグメントを表す基準インジケータを発生する手段と、
それぞれの基準インジケータを、マスタプロファイルとして記憶するメモリと、
テスト信号シーケンスを含むテストファイルを読み出す手段と、
テスト信号シーケンスをセグメントに分割する手段と、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントにつてそれぞれのテストインジケータを発生する手段と、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較する手段と、
基準インジケータとテストインジケータが一致するかどうかを決定する手段と、
対応する指示を出力する手段とを有する。
【0009】
本発明の好ましい形式では、マスタ信号とテスト信号は、両方ともオーディオ信号を含む。例えば、マスタ信号は、ポピュラーアルバムからのポピュラー曲又はトラックを示し、そして、本発明は、テスト信号が同じ曲又はトラックを構成するかどうかを検査するのに使用されうる。
【0010】
好ましくは、マスタ及びテスト信号シーケンスは、ディジタル符号化されたオーディオトラックから取られる。
【0011】
好ましくは、各インジケータは、それぞれのセグメントの支配的な周波数のような、波形の区別する特徴を表す単純な値である。例えば、インジケータは、各セグメントに含まれているオーディオ信号部分についての、ゼロクロスカウント値又は他の支配的な周波数値の1つを決定することにより、発生されうる。
【0012】
優位に、本発明に従った方法及び装置は、
第1のテストプロファイルを発生するためにテスト信号シーケンスの第1の予め定められた点から開始するセグメントの第1の組を生成し、
第1の予め定められた点を、予め定められた量だけ、テスト信号シーケンスの新たな予め定められた点へシフトし、
他のテストプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのファイルについての複数のプロファイルを発生するように構成される。
【0013】
本発明を、例により、添付の図面を参照して、さらに説明する。
【0014】
ここに開示される本発明は、オーディオトラックの識別と一致を見つけるのに適用される。例えば、そのようなトラックは、ポピュラーアルバムからのポピュラー曲、トラック又は、クラシック又は他の音楽記録物からのトラックでも良い。それらは、音声記録物又は他のオーディオ演奏からのトラックでもよい。
【0015】
本発明を、一般的には最初に図1−3を参照して説明する。
【0016】
図1は、本発明を実行するためにデータベース内にマスタ又は基準ファイルを発生するのに関係するステップを表すフローチャートを示す。最初に、ステップ10で、コンピュータオペレータは、コンピュータデータベースに入力するために新たなタイトルと対応するオーディオトラックを選択する。オペレータは、ステップ12でコンピュータへタイトルテキストを入力し、そして、コンピュータは、続いて発生されるマスタファイルについての名称としてこのテキストを捕捉する。ステップ14では、コンピュータはタイトルに対応するトラックを受信しそして、そのトラックを表すトラックプロファイルを含むマスタファイルを発生する。タイトルとマスタファイルは、後続の処理のために、ステップ16でコンピュータのデータベース内に記憶される。
【0017】
図2に移ると、図1でコンピュータに入力された新たなマスタトラックと一致するトラックをについての検索が要求されるときには、コンピュータオペレータは、ステップ20で、検索されるタイトルと可能な位置を識別する検索定義を公式化する。ステップ22で、オペレータは、タイトル、検索される位置又は複数の位置、及び、おそらく検索が実行される頻度(frequency)を含む検索情報を、コンピュータへ入力する。そのような情報は、後の使用のためにステップ24でデータベース内に記憶される。
【0018】
図3は、次のように、実際の検索を示すフローチャートである。検索は、ステップ30で開始され、そして、コンピュータは、図2のステップ24で記憶された詳細について、データベースをアクセスする。ステップ32では、コンピュータは、2ステップ動作を実行し、第1に規定されたタイトルを有するトラックについてステップ24で規定された位置を検索し、そして、第2にそのタイトルが一致するトラックを含むテストファイルのリストを構築する。次にステップ34で、コンピュータは位置の見つけられた種々のトラックについて、各テストファイルを検査する。これは、ステップ36でテストトラックプロファイルを動的に形成することを含み、続いて、ステップ38で、テストプロファイルを、ステップ24でデータベース内に既に記憶されたマスタプロファイルと動的に比較する。
比較の結果は、ステップ40に示され、不一致が検出された場合には、コンピュータはステップ42に示されたようになにもしない。他方では、一致が検出された場合には、コンピュータはステップ44に進み、そして、データベースに一致が検出されたことを示すフラグ又はマーカーを入力する。
【0019】
図1−3を参照して説明されたステップは、単一のマスタファイルと単一のテストファイルを参照するが、実際には、データベースは、幾つかのマスタファイルが記憶されそして、種々の異なるマスタファイルについて一致について同時に検索される、そして、各マスタファイルに対して複数のテストファイルを同時に検査しうることは、理解されよう。
【0020】
図4に移ると、マスタプロファイルとテストプロファイルを形成する処理を、詳細に説明する。図4は、マスタトラック又は未知のテストトラック上に記録されたオーディオサウンドに対応するアナログ波形50を示す。実際には、アナログオーディオ信号は、おそらく、波形内の関心の最高周波数信号を捕捉するのに十分な頻度で、秒当り数100回波形をサンプリングすることにより、ディジタル的に符号化された形式で記録されている。各サンプリング期間で、波形の振幅は測定されそして、単一のディジタルサンプルを表す正又は負の数として符号化される。これは、波形へのステップ化された外形52により図4で示されている。例えば、ある等しい間隔のサンプリング期間54が図4に破線により示され、そして、対応する数が記されている。連続するサンプリング期間からの数のシーケンスは、波形のディジタル符号化を提供する。
【0021】
マスタファイルについてのマスタプロファイル又は、テストファイルについてのテストプロファイルを発生するために、信号シーケンスが、典型的には、図5に示されたように、1/10秒の、等しい継続時間の固定のセグメント56に分割される。図5を参照すると、ライン(a)は、マスタファイルについてのアナログ信号と対応するプロファイルを示し、ライン(b)と(c)は、試験されるアナログ信号と2つのファイルについての対応するプロファイルを示す。特定のトラックの各セグメント56については、コンピュータは、このセグメント56の波形を表す、基準又はテストインジケータを割当てる。このインジケータは、支配的な周波数のような、波形の区別する特徴を表す、単純な値である。この例では、インジケータは、そのセグメント56内の波形についてのゼロクロスカウント数に基づいている。特に、コンピュータはセグメント56内で波形がゼロ軸と交差する回数を検出しそして、この数又はゼロクロスカウント値をそのセグメント56についてのトラックに対するインジケータとして設定する。実際には、セロクロス点は、2つの連続するディジタルサンプルが、1つは正のそして1つは負の、異なる符号を有する時はいつでも検出でき、そして、ゼロクロスカウント値は、1つのセグメント56中にそのような点が検出された回数を構成する。図5は、マスタファイルについて、各セグメント56に対する連続するゼロクロスカウント値を示す:
8,6,7,5,6,8,6,6。
【0022】
この連続する数は、マスタファイルについてのマスタプロファイルを構成する。
【0023】
同様に、図5は、テストファイルについてのテストプロファイル:
6,8,4,5,7,4,2,3.
を示す。
【0024】
同様な方法で計算された第2のテストファイルについてのテストプロファイルは:
8,6,7,5,6,8,6,6。
【0025】
テストファイルをマスタファイルと比較するために、コンピュータは、セグメントごとにテストプロファイルの形成を開始し、即ち、テストプロファイルを動的に形成し、そして、セグメントごとに即ち、再び動的に、テストプロファイルとマスタプロファイルの比較を開始する。
【0026】
図5に示されたように、ライン(b)に示された第1のテストファイルについてのテストインジケータは、第4セグメント58でのみマスタファイルについての基準インジケータと一致する。実際には、コンピュータは、第1の数セグメント56の比較に基づいて、不一致であるので、既に第1のテストファイルを捨てている。ライン(c)で示されている第2のテストファイルに移ると、各セグメントについて、テストインジケータは基準インジケータと一致することが分かる。実際には、コンピュータは、マスタファイルとテストファイルの全体のコンテンツを表すプロファイルを構成しないが、しかし、15秒の継続時間のこれらのファイルの開始からの”クリップ”を表すプロファイルのみを構成する。
これらの2つのプロファイルが一致する場合には、一致があると結論する。
【0027】
単純に、ファイルが基づいているトラックが、時間的に同期しておらず、それにより、マスタファイルの第1のセグメント56が、テストファイルの第1のセグメント56と、アナログ波形の異なる点で開始するために、特定のテストファイルはマスタファイルと不一致が現れ得ることが、理解されよう。この状況と取り組むために、コンピュータは、図6に示されたように、テストトラックの先頭でテスト信号の初期部分を捨てることにより、1つのテストファイルについて、いくつかの異なるテストプロファイルを発生するように、構成される。
【0028】
図6は、ライン(a)に、テストコード:8,6,7,5,6,8,6,6を有する、前述と同じマスタファイルを示す。図6の、ライン(b)、(c)及び、(d)は、単一のテストファイルを示し、それから第1、第2及び、第3のテストプロファイルが連続して発生される。これらの続くテストプロファイルが発生される方法は、図7に示されている。
【0029】
図7を参照すると、テストファイルの単一のセグメント56が、セグメントの開始のすぐ後に続くデルタ−s1と指定された増加する期間60と、セグメントの終了のすぐ後に続くデルタ−s2と指定された増加する期間62とともに、拡大されて示されている。デルタ−s1は、セグメント56の開始点64とセグメント56内の第1のゼロクロス点66の間で発生する、幾つかのディジタルサンプリング期間を表す。同様に、デルタ−s2は、セグメント56の終了点68と次のセグメント内の第1のゼロクロス点70の間の幾つかのディジタルサンプリング期間を表す。理解されるように、示されている特定のセグメントのゼロクロスカウント値を変更するために、デルタ−s1かデルタ−s2のどちらか小さい方に対応する量だけ、セグメントの開始点64がシフトされ又は遅延されねばならない。示された例では、デルタ−s1が小さい。従って、示されたセグメント56のゼロカウントを変更するのに必要なそして、本当にセグメント56の1つの、最小のシフトは、特定のセグメントについてデルタ−s1とデルタ−s2の小さい方である。この値をデルタ−segと呼ぶとすると、テストファイルについての新たなテストプロファイルを発生する最小シフトは、すべてのセグメントに対して最小のデルタ−segである値、即ち、デルタ−minであるということに従う。デルタ−minは、実際には、1/50000秒又はそれより小さいシフトである。
【0030】
図6を参照すると、検査のためにライン(b)に示されたテスト信号を受信するコンピュータは、最初に、テスト信号の開始でセグメント開始点に基づき、テストプロファイル72を構成し、これはテストプロファイル:
12,7,7,4,6,8,6,8
を生じる。
【0031】
明らかなように、このテストプロファイルは、マスタファイルについてのマスタプロファイルと一致しない。この結果、コンピュータは、各セグメントについてデルタ−s1とデルタ−s2を確立しそしてこれらの2つの値からデルタ−segを計算することにより、第2のテストプロファイル74を形成する。各セグメントについてデルタ−segを走査しそしてデルタ−minを決定した後に、コンピュータはデルタ−minに対応する量だけテスト信号にシフトを実行しそして図6のライン(c)に示された新たなテストプロファイル74を発生する。この新たなテストプロファイル74は:
11,7,7,5,6,8,5,7
である。
【0032】
再び、この第2のテストプロファイルはマスタファイルについてのマスタプロファイルと一致しないことは明らかである。
【0033】
従って、コンピュータは、もう一度シフトされたテスト信号に基づいてデルタ−minを決定することにより、同じ方法で、更なるテストプロファイル76を発生する。これは、第3のテストプロファイル76を発生し、それは:
8,6,7,5,6,8,6,6
である。
【0034】
これから分かるように、第3のテストプロファイル76は、マスタファイルについてのマスタプロファイルに一致し、そして、これゆえに、コンピュータは、テストファイルがマスタファイルに対応することそしてそれゆえにテストファイルが発生されたオーディオトラックがマスタファイルが発生されたマスタトラックに対応することを示す、出力を発生する。
【0035】
これらのステップは、以下に図8−12に示されたフローチャートを参照して更に完全に説明する。
【0036】
図8を参照すると、これは、図1のステップ14に示された、マスタファイルからのマスタプロファイルの発生を示すフローチャートを示す。このステップ100では、コンピュータはこの処理を開始する。コンピュータはステップ102で、マスタファイルの第1のセグメントを読み出し、そして、ステップ104でゼロクロスカウント値を決定する。ステップ106では、コンピュータは、ステップ104で確立されたカウント値を、それまで形成されたプロファイルに加える。次に、コンピュータは、ステップ108で、既に読み出されたセグメントの数が、マスタプロファイルについて要求されるセグメントの合計数と一致するかどうかを検査する。答えが否定の場合には、コンピュータは、ステップ102に戻り、そして、次のセグメントを読み出す。答えが肯定の場合には、コンピュータはステップ110へ進み、そして、全体のマスタプロファイルをデータベースに記憶する。
【0037】
図9は、つぎのように、ステップ104に関係するサブルーチンを示すフローチャートである。サブルーチンは、ステップ112で開始しそして、ステップ114へ進みここで、コンピュータは、ゼロクロスカウント値を検出するカウンタをゼロに初期化する。コンピュータは、そして、ステップ116ですぐ後のサンプリング期間で発生されるディジタル数を試験し、そして、ステップ118で、符号が最後のサンプリング期間から正及び負の間で変化したかどうかを検査する。答えが肯定の場合には、カウンタはステップ120で1だけ増加される。他方では、答えが否定の場合には、コンピュータは、ステップ122に進み、そして、セグメント内の全てのサンプリング期間からの数が試験されたか試験されたかを検査する。ステップ122の結果が肯定の場合には、サブルーチンはステップ124で終了する。他方では、ステップ122の結果が否定の場合には、コンピュータはステップ116に戻り、そして、次のサンプリング期間からの数を試験する。
【0038】
図8と9に示されたフローチャートは、図4と5を参照して上述したマスタプロファイルの生成を示す。
【0039】
図10に移ると、テストファイルを選択しそして、マスタプロファイルと比較するテストプロファイルを発生するステップを説明する。コンピュータは、ステップ130で手順を開始し、そして、ステップ132で、テストファイルから最初のクリップ又は信号シーケンスを読み出す。ステップ134で、コンピュータは、第1のセグメントの開始点についての現在の変位を検出するカウンタをゼロに初期化する。コンピュータはそして、ステップ136に示されたように、クリップ内の各セグメントについてのテストプロファイルと値デルタ−sを計算することを進める。
【0040】
ステップ136に含まれているサブルーチンは、図11に示されており、そして、ここで説明する。サブルーチンはステップ138で開始し、そして、コンピュータはステップ140へ進み、現在はゼロである、現在の変位と一致させるためにセグメントについての開始点を設定する。コンピュータはステップ142へ続きそして、初期セグメントについてのゼロクロスカウント値とそのセグメントについてのデルタ−sを決定する。ステップ144で、コンピュータは、ステップ142で決定されたゼロクロスカウント値をテストプロファイルメモリに加えそして、ステップ146で、コンピュータはステップ142で計算されたデルタ−sをデルタ−sの全ての値についてのメモリに加える。コンピュータはステップ148に進み、そして、完全なテストプロファイルが確立されたかどうかを検査する。答えが、肯定の場合には、コンピュータはステップ150へ進み、そしてサブルーチンは終了する。他方では、答えは否定の場合には、コンピュータはステップ152へ進みそして、セグメント長に対応する量だけ現在のセグメント開始点を増加することにより、次のセグメントへセグメントに進む。コンピュータはそして、ステップ142に戻り、テストプロファイルメモリとデルタ−sメモリに記憶するためにこの新たなセグメントについて、ゼロクロスカウント値とデルタ−sを決定する。
【0041】
図12に移ると、ステップ142に関連するサブルーチンが示されたそして、ステップ154で開始する。ステップ156では、コンピュータは、ゼロクロスカウント値のためのカウンタをゼロに初期化し、そして、ステップ156で、コンピュータはつぎのサンプリング期間からの数を試験する。ステップ158で、コンピュータは、最後のサンプル期間から符号が変化したかを確立する。答えが否定である場合には、コンピュータは、ステップ160へ進みそして、セグメント内の全てのサンプリング期間が試験されたかどうかを検査する。答えが肯定の場合には、コンピュータはステップ162に進みそして、ゼロクロスカウント値が現在ゼロであるかを質問する。ステップ162の結果が肯定である場合には、コンピュータはデルタ−sを、ステップ164に示されるようにセグメント内で現在のサンプルの位置に等しい位置に設定する。ステップ162結果が否定である場合には、コンピュータはステップ166に進みそして、1だけゼロクロスカウント値についてカウンタを増加する。コンピュータはそして、ステップ160へ進み、そして、セグメント内の全てのサンプリング期間が試験されたかどうかを検査する。ステップ160の結果が否定である場合には、コンピュータはステップ156へ戻り、そして、次のサンプリング期間からの数を試験する。他方では、ステップ160の結果が肯定である場合には、コンピュータはステップ168へ進みそして、ゼロクロスカウント値が現在ゼロであるかどうかを再び検査する。ステップ168の結果が否定の場合には、コンピュータはステップ170でサブルーチンの終了に進む。他方では、ステップ168の結果が肯定の場合には、コンピュータはステップ172へ進みそして、デルタ−sをセグメントの長さプラス1に等しくなるように設定する。これは、そのセグメント内にゼロクロスがなかったことを示し、そして、デルタ−sは区別された値に設定される。コンピュータはそして、ステップ170へ進み、そして、図11に示されたサブルーチンのステップ144へ戻る。
【0042】
図10へ戻ると、テストファイルから取られたクリップについてテストプロファイルとデルタ−sの完全なリストが計算されたので、コンピュータはステップ174へ進み、そして、このように確立されたテストプロファイルとマスタファイルについてのマスタプロファイルを比較する。これは、図5と6に示されたステップに対応する。
【0043】
ステップ176では、コンピュータはプロファイルが一致するどうかを質問し、そして、答えが肯定の場合には、コンピュータはステップ178で、一致が検出されたことを示す。そして、コンピュータは、図3のステップ44に進む。
【0044】
他方では、ステップ176の結果がテストプロファイルがマスタプロファイルと一致しないことを示す場合には、コンピュータはステップ180に進みそして、そのクリップについて新たなテストファイルを発生するために、セグメントについて開始点に要求されるシフトを計算する。上述のように、図7を参照して、シフトの量は、試験された全てのセグメントについて発生されたデルタ−sについての最小値に対応する。この値デルタ−minは、選択されそして、初期セグメントの開始点についての現在の変位はステップ182でそのような量だけ増加される。コンピュータはステップ184に進み、そして、そのような増加が、形成されるべき完全なテストプロファイルに対してステップ132で読まれたクリップの不充分な残りとなる結果となるかどうかを決定する。ステップ186で、コンピュータは、クリップが使い尽くされるかどうかを質問しそして、答えが否定である場合には、コンピュータはステップ136へ戻り、そして、初期セグメントからシフトされた位置から開始するテストプロファイルとデルタ−sリストを計算することを続ける。他方では、ステップ186の結果が、クリップが使い尽くされた場合には、コンピュータは、クリップとマスタファイルの間の一致はないとステップ188で結論付けそして、図3のステップ42に進む。
【0045】
簡単のために、説明は幾つかの仮定に基づいており、その1つは、2つのセグメントが一致するとみなされるためには、テストプロファイル内のセグメントのゼロクロスカウント値は、マスタプロファイル内のセグメントに対応するゼロクロスカウント値と正確に同じでなければならないことである。しかし、実際には、この要求は、厳しすぎる。それは、例えば、異なるオーディオ符号化フォーマットの使用又は雑音により発生された、マスタファイルとテストファイルの間の小さな差についての要求を満たさない。
【0046】
そのような小さな差の要求される公差は、同一であるべきゼロクロスカウント値についての要求を緩和することにより達成される。代わりに、ゼロクロスカウント値が非常に似ている場合には、対応するセグメントが一致するとみなされる。セグメント一致は、そして、以下の式に基づいて決定される:
【0047】
【数1】
ここで、ZXRMFは、マスタファイルRMFのセグメントのゼロクロスカウント値、
ZXFFCは、テストファイルFFCのセグメントのゼロクロスカウント値、
margin_pは、誤差の相対マージン、
margin_bは、誤差の絶対マージンである。
【0048】
実際には、それぞれ1.1と10のmargin_pとmargin_bは、良好に動作する。これはマージン±(10%+10)を許す。
【0049】
このようになされた他の仮定は、テストプロファイルがそれから得られるテストトラックは、マスタプロファイルがそれから得られるマスタトラックの少し前で開始することである。実際には、これは、そのようではない。何れかの方向に、2つのトラックの開始の間に幾つかの第2の差があり得る。テストトラックは、先頭に偽の材料を有しうる又は、逆にマスタトラックの初期部分が失われうる。
【0050】
テストトラックが開始で偽の材料を有する状況は、すでに上述のアルゴリズムでカバーされる。アルゴリズムは、単純に、テストとマスタファイルが同期するまで、テストファイルを通してシフトを保持し、偽の材料を捨てる。
【0051】
しかしながら、マスタトラックの初期部分が失われている状況は、アルゴリズムの小さな拡張を必要とする。これは、所定のマスタファイルについての単一のマスタプロファイルのみではないがしかしそのようなマスタプロファイルの組みを発生すために、図8に示されたマスタプロファイル発生処理を拡張することを必要とする。各々のそのようなファイルはマスタファイルから15秒のクリップを捕捉する。最初は、マスタファイルのちょうど最初から開始する。次は、マスタファイル内の1.5秒で始まる。次は、3秒で始まり、そして、最大15秒まで、1.5秒ずつ増加する。これは、1つのマスタファイルに対して、合計で11のマスタプロファイルを与える。すべてのこれらの11プロファイルは、図8に示されたように、最初の30秒のマスタファイルを捕捉する単一の長いプロファイルを発生し、そして、それが形成されながら、長いプロファイルから適切なサブシーケンスを動的に抽出することにより、形成されることが可能である。
【0052】
ファイル比較処理は、そして、図10に示された用に残るがしかし、1つの修正を有する。テストプロファイルを単一のマスタプロファイルのみと比較する代わりに、全ての11プロファイル−”基本”プロファイル及び全ての”遅い開始の”プロファイルとの比較がなされる。
【0053】
この配置は、15秒までの任意の長さの失われた部分についての要求を満たす。正確に1.5秒の倍数ではない失われた部分により必要とされる精密な同期は、標準のシフト機構により提供される。従って、この拡張で、アルゴリズムは、最初の30秒のテストファイルからの15秒シーケンスが、30秒のマスタファイルからの15秒シーケンスと一致するときに、一致を見つけることができる。
【0054】
図13−16に移ると、基本的なシフトセグメントアルゴリズムの修正をここで説明する。この修正は、本発明の動作を、以下の、
(1)テストファイルの各々のそれぞれのセグメントについてゼロクロスカウント値を計算しそして、同時にカウント値をマスタプロファイル内に示された対応するカウント値と比較することによる、
(2)どこでも可能な前に考えられたセグメントについてゼロクロスカウント値の再計算を避けることによる、
2つの方法で最適化することが意図されている。
【0055】
このように、処理は、最初の不一致セグメントが検出されるとすぐに、所定のシフト位置でテストプロファイルの計算を停止するが、しかし次のシフト位置でプロファイルを形成するときに、前に計算された値を再使用することがいつでも可能である。各テストファイルは、それにより、動的にマスタファイルと比較される。
【0056】
この処理は、ステップ200が特定のテストトラックを含む特定のテストファイルの選択を表す、図13のフローチャートに示されている。ステップ202では、コンピュータは、テストトラック内で考えられるセグメントの数をカウントするためのカウンタを、ゼロに設定し、そして、ステップ204で、コンピュータは、セグメントの開始と終了点を設定することによりそして、デルタ−s1、デルタ−s2及び、デルタ−segと共に、セグメントのゼロクロスカウント値を計算することにより、第1のセグメントを初期化する。コンピュータは、ステップ206に進み、ここで、テストファイルの第1のセグメントについてのゼロクロスカウント値とマスタファイルの第1のセグメントについてのゼロクロスカウント値の比較を行う。一致する場合には、コンピュータはステップ208へ進み、そして、テストファイルがマスタファイルと一致することを示すために十分なセグメントが一致するかどうかを質問する。これは、第1のセグメントなので、答えは、否定であり、そして、従って、コンピュータはステップ210へ進み、ここで、セグメントカウンタを1だけ増加して、次のセグメントに進む。ステップ212では、コンピュータは、図14に示されたサブルーチンを使用して次のセグメントを初期化し、そして、ステップ206へ戻り、テストファイルの次のセグメントとマスタファイルの対応するセグメントの間一致があるかどうかをもう一度検査する。
【0057】
ステップ206で一致が検出されない場合には、コンピュータはステップ214へ進みそして、先行するセグメントについて既に確立された一致を取り消すことなしに、現在のセグメントの開始点をシフトできるかどうかを検査する。この処理は、図15を参照して以下に説明する。そのような検査の結果は、ステップ216で確立され、そして、シフトが可能であると検出される場合には、コンピュータは、ステップ218でそのようなシフトをすることを進め、そして、ステップ206に戻り、テストファイルの現在のセグメントとマスタファイルの対応するセグメントの間一致があるかどうかをもう一度検査する。他方では、ステップ216の結果が、先行するセグメントについて確立された一致を取り消すことなしにシフトすることが出来ないという指示である場合には、コンピュータはステップ220へ進む。ステップ220では、コンピュータは現在のセグメントの番号を示すカウンタがゼロであるかどうかを質問する。答えが肯定である場合には、コンピュータはテストファイルとマスタファイルの間の一致は不可能であるとみなし、そして、ステップ222で最適された手順の最後に進む。カウンタがゼロでない場合には、コンピュータは、ステップ224に進みそして、カウンタを1だけ減算し、それにより、再考のためにすぐ前のセグメントに戻る。この点で、コンピュータはステップ214に戻り、そして、この前のセグメントのシフトが、その前にセグメントについてすでに確立された一致を取り消すことなしに、可能であるかどうかを検査する。
【0058】
図14は、ステップ204を含むサブルーチンを示すフローチャートである。このサブルーチンは、ステップ230で、現在考えられているセグメントを初期化する命令で、開始する。ステップ232では、コンピュータは、前のセグメントの終了点足す1サンプリング期間に一致するように、現在のセグメントについての開始点を設定する。コンピュータは、ステップ234に進み、ここで、現在のセグメントついての開始点足すセグメント長に対応するように現在のセグメントについての終了点を設定する。この後に、ステップ236で、コンピュータは、セグメントに対して:ゼロクロスカウント値、図7に示されたようにセグメント開始点から第1のゼロクロス点の距離に対応する値デルタ−s1、図7に示されたようにセグメント終了点から第1の後続のゼロクロス点の距離に対応する値デルタ−s2及び、デルタ−s1とデルタ−s2の小さい方である値デルタ−segを計算する。コンピュータは、ステップ236に進み、そして、デルタ−ruuningとして知られるセグメントに値を設定する。デルタ−runningは、現在又はそれ以前のゼロクロスカウント値を変更することなしに後のセグメントをシフト出来る最大距離に対応する。最初に、この値は、本セグメントについての値デルタ−segと前のセグメントについてのデルタ−runningの小さい方であるように計算される。最後に、コンピュータは、ステップ240へ進み、そして、現在のセグメントについてデルタ−usedとして知られる値を、ゼロに設定する。デルタ−usedは、特定のセグメントがその元の開始点から既にシフトされた合計量を示す。これは、コンピュータに、特定のセグメントを初期化するためのサブルーチンについての終了242をもたらす。
【0059】
図15は、現在考えられているセグメントをシフトできるか否かを試験するためのステップ214に関連するサブルーチンである。このサブルーチンは、ステップ250で開始し、それに続いて、コンピュータは、ステップ252へ進む。ステップ252では、コンピュータは、現在のセグメントについての和デルタ−seg足すデルタ−usedは、前のセグメントについてのデルタ−runningを超えるかどうかを質問する。答えが肯定の場合には、コンピュータは、ステップ254へ進み、そして、シフトが可能でないことを決定する。答えが否定の場合には、コンピュータは、ステップ256へ進み、そして、シフトが可能であることを決定する。
【0060】
最後に図16に移ると、現在のセグメントをシフトするステップ218に関連するサブルーチンを説明する。このサブルーチンは、示されたように、ステップ260で開始する。コンピュータはステップ262に進み、そして、値デルタ−segを、そのセグメントにつての値デルタ−usedへ加え、セグメントが、シフトが既に発生し総計が値デルタ−usedである何に対してもデルタ−segだけシフトされていることを示す。これはステップ264で実行され、ここで、値デルタ−segは、そのセグメントの開始点と終了点へ加えられる。次に、ステップ266で、コンピュータは値デルタ−segをそのセグメントについてのデルタ−s1から減算する。ステップ268では、コンピュータは、新たなデルタ−s1がゼロに等しいかどうかを検査する。答えが肯定の場合には、これは、ゼロクロスがシフトによりセグメントの前から除去されたことを意味し、そして、コンピュータは、ステップ270で、1だけゼロクロスカウント値についてのカウンタの値を減少させる。そして、コンピュータは、ステップ272へ進み、そのセグメントについての新たなデルタ−s1を計算する。続いて、ステップ268の結果が否定か又は、次のステップ272の計算のいずれかなので、コンピュータはステップ274へ進み、そして、そのセグメントについての値デルタ−s2から、値デルタ−segを減算する。ステップ276では、コンピュータは、値デルタ−s2がゼロであるか否かを検査する。答えが肯定の場合には、これは、新たなゼロクロスがセグメントの最後に追加され、そして、コンピュータは、ステップ278で、1だけそのセグメントについてのゼロクロスカウント値についてのカウンタを増加する。続いて、コンピュータは、ステップ280でそのセグメントについての新たな値デルタ−s2を計算する。この後に、ステップ276の結果が否定又は、ステップ280で新たなデルタ−s2を計算するので、コンピュータはステップ282へ進む。ステップ282では、コンピュータは、デルタ−s1とデルタ−s2についての現在の値の小さい方としてデルタ−segについての新たな値を設定する。シフトされているので、そのセグメントについてのデルタ−runningは、再計算されねばならず、そして、これはステップ284で実行される。このステップでは、新たなデルタ−runningが、(i)前のセグメントの値デルタ−runningから現在のセグメントについての値デルタ−usedを引いたものと、(ii)現在のセグメントについての値デルタ−segの小さい方であるように設定される。現在のセグメントをシフトするサブルーチンはこのように完了する。
【0061】
図13−16を参照して説明した最適化手順により、基本的ファイル一致アルゴリズムの非常に大きな改善が可能である。重要なことには、識別の速度は非常に増加され、そしてそれゆえに、検査されることが可能な未知のファイルの数も非常に増加される。
【0062】
本発明は、オーディオトラック又はファイルを比較する知られた配置と比較して、幾つかの大きな利益を有する。
【0063】
最も重要なことには、一致が検出されるために、比較されている2つのファイルについて、それらのディジタル符号化が同一であることは必要ない。それらは、”同じ”オーディオトラックを含みながら、様々なように異なることが可能である。例えば、テストトラックは、失われた初期の部分を有しうるか又は、先頭に追加の素材を含みうる。等しく、例えば、異なるディジタル符号化フォーマット、ノイズスパイク又は、背景ノイズにより発生された波形変化も、適応される。
【0064】
これらの許容度は、例えば、インターネット上で利用できるようになされた、所定のオーディオトラックの不法なコピーの識別を含む、重要な応用の範囲を有することを可能とする。例えば、異なるMP3変換プログラムを通して、ライブコンサートの密売の記録を通して、又は、ラジオ又はテレビジョン放送を通して、種々の異なる方法で捕捉されたコピーは、検出されそして一致するものを見つけられ、これは今まで不可能であった。
【0065】
本発明の他の利益は、その速度を含み、それにより、単一の未知のテストファイルをデータベース内に記憶された多くの数100のマスタファイルと比較すること、又は、データベース内に現在保持されているマスタファイルと一致することを確認するためにラジオ放送又ウェブ放送のようなオーディオ源を監視することを、実用的にする。
【0066】
更に加えて、本発明によれば、標準工業ハードウェアに適合する。更に、一致を見つけるためにオリジナルのマスタトラックを修正するためのウォータマーク又は他の方法を採用する必要がない。
【図面の簡単な説明】
【0067】
【図1】本発明に従った処理を一般的に示すフローチャートである。
【図2】本発明に従った処理を一般的に示すフローチャートである。
【図3】本発明に従った処理を一般的に示すフローチャートである。
【図4】マスタオーディオトラックのような、アナログ波形のディジタル符号化を示す波形図である。
【図5】マスタ波形と2つのテスト波形の比較を示す波形図である。
【図6】テスト波形とマスタ波形の比較を更に示す波形図である。
【図7】テスト波形のセグメントを示す及び、比較のためにどのようにセグメントシフトが行われるかを示す波形図である。
【図8】本発明に従ったマスタファイルの発生を示すフローチャートである。
【図9】図8に従ったマスタファイルの発生のサブルーチンを示すフローチャートである。
【図10】本発明に従ったテストファイルとマスタファイルの比較を示すフローチャートである。
【図11】本発明に従ったテストプロファイルを構成するステップを示すフローチャートである。
【図12】図11に示されたテストプロファイルを構成する処理のサブルーチンを示すフローチャートである。
【図13】本発明に従った最適化されたファイル一致処理を示すフローチャートである。
【図14】図13に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図15】図13に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
【図16】図13に示された最適化されたファイル一致処理のサブルーチンを示すフローチャートである。
Claims (16)
- 試験下の電子ファイルを識別する方法であって、
マスタ信号シーケンスを有するマスタファイルを読み出すステップと、
マスタ信号シーケンスをセグメントに分割するステップと、
各マスタ信号セグメントを表す基準インジケータを発生するステップと、
それぞれの基準インジケータを、マスタプロファイルとして記憶するステップと、
テスト信号シーケンスを含むテストファイルを読み出すステップと、
テスト信号シーケンスをセグメントに分割するステップと、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生するステップと、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較するステップと、
基準インジケータとテストインジケータが一致するかどうかを決定するステップと、
対応する指示を発生するステップとを有する、方法。 - 第1のテストプロファイルを発生するためにテスト信号シーケンスの第1の予め定められた点から開始するセグメントの第1の組を生成し、
第1の予め定められた点を、予め定められた量だけ、テスト信号シーケンスの新たな予め定められた点へシフトし、
他のテストプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのテストファイルに複数のテストプロファイルを発生することを含む、請求項1に記載の方法。 - それぞれのテストインジケータを発生するステップと、同時に、連続する対応するセグメントについて基準インジケータとテストインジケータを比較するステップを実行する、
ことにより、基準インジケータとテストインジケータの動的な比較を行うことを含む、請求項1或は2に記載の方法。 - それぞれの基準インジケータと対応するテストインジケータが不一致を生じる各場合に関する進行中の基準について、第1の予め定められた点に対するシフトを計算し、
それぞれの新たなテストプロファイルを発生する、
ことにより、各々の新たなテストプロファイルを発生する手順を最適化することを含む、請求項2或は、請求項2から従属するときに請求項3に記載の方法。 - a)そのようなテストインジケータが対応する基準インジケータに一致する、及び、
b)続いて発生されたテストインジケータについての関連する予め定められた点に対するシフトが一致を取り消さない、
場合には、計算は、それぞれのテストプロファイルの初期部分を構成する、前に発生されたテストインジケータを再使用することを含む、請求項4に記載の方法。 - 第1のマスタプロファイルを発生するためにマスタ信号シーケンスの第1の予め定められた点から開始するセグメントの第1の組を生成し、
第1の予め定められた点を、予め定められた量だけ、マスタ信号シーケンスの新たな予め定められた点へシフトし、
他のマスタプロファイルを形成するために、新たな予め定められた点から開始するセグメントの新たな組みを生成する、
ことにより、それぞれのマスタファイルについて複数のマスタプロファイルを発生することを含む、請求項1乃至5のうちいずれか一項に記載の方法。 - 関連する信号シーケンスが対応するセグメント内の予め定められた基礎基準を横切る場合の数を検出する、
ことにより、各基準インジケータ及び/又は各テストインジケータを発生することを含む、請求項1乃至6のうちいずれか一項に記載の方法。 - 基準インジケータとテストインジケータが一致するかどうかを決定するステップは、予め定められた公差内で、基準インジケータとテストインジケータの間に同一性があるかどうかを決定することを含む、請求項1乃至7のうちいずれか一項に記載の方法。
- 試験下の電子ファイルを識別する装置であって、
マスタ信号シーケンスを有するマスタファイルを読み出す手段と、
マスタ信号シーケンスをセグメントに分割する手段と、
各マスタ信号セグメントを表す基準インジケータを発生する手段と、
それぞれの基準インジケータを、マスタプロファイルとして記憶するメモリと、
テスト信号シーケンスを含むテストファイルを読み出す手段と、
テスト信号シーケンスをセグメントに分割する手段と、
テストプロファイルを形成するために、テスト信号シーケンスの連続するセグメントについてそれぞれのテストインジケータを発生する手段と、
マスタ及びテスト信号シーケンスのそれぞれの対応するセグメントについて、連続して、基準インジケータとテストインジケータを比較する手段と、
基準インジケータとテストインジケータが一致するかどうかを決定する手段と、
対応する指示を出力する手段とを有する、装置。 - それぞれのテストプロファイルを発生するために、テスト信号シーケンスの予め定められた点から開始するセグメントの組みを発生する手段と、
他のテストプロファイルを発生するために、テスト信号シーケンスの予め定められた点を予め定められた量だけシフトする手段、
を有する、それぞれのテストファイルに関連する複数のテストプロファイルを発生する手段を有する、請求項9に記載の装置。 - それぞれのテストインジケータを発生する手段と、同時に、比較する手段を動作させるように構成された制御手段、
を有する、基準インジケータとテストインジケータの動的な比較を行う手段を含む、請求項9或は10に記載の装置。 - それぞれの基準インジケータと対応するテストインジケータが一致しないという出力手段からの指示に応答して、それぞれの予め定められた点に対してシフトを計算する手段、
を含む、各テストプロファイルを発生する、手順を最適化する手段を含む、請求項10又は、請求項10から従属するときに請求項11に記載の装置。 - 計算手段は、
そのようなテストインジケータが対応する基準インジケータと一致する場合には、それぞれのテストプロファイルの初期部分を構成する前に発生されたテストインジケータを記憶する手段と、
続いて発生されたテストインジケータについての関連する予め定められた点に対するシフトが一致を取り消すかどうかを検査する手段、
を有する、請求項12に記載の装置。 - それぞれのマスタファイルに関連する複数のマスタプロファイルを発生する手段は、
それぞれのマスタプロファイルを発生するためにマスタ信号シーケンスの予め定められた点から開始するセグメントの組を生成する手段と、
他のマスタプロファイルを発生するために、マスタ信号シーケンスの予め定められた点を、予め定められた量だけシフトする手段、
を含む、請求項9乃至13のうちいずれか一項に記載の装置。 - 各基準インジケータ及び/又は各テストインジケータを発生する手段は、
関連する信号シーケンスが対応するセグメント内の予め定められた基礎基準を横切る場合の数を検出する手段、
を含む、請求項9乃至14のうちいずれか一項に記載の装置。 - 基準インジケータとテストインジケータが一致するかどうかを決定する手段は、予め定められた公差内で、基準インジケータとテストインジケータの間に同一性があるかどうかを決定するように構成された、請求項9乃至15のうちいずれか一項に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0107104.2A GB0107104D0 (en) | 2001-03-21 | 2001-03-21 | Method and apparatus for identifying electronic files |
PCT/GB2002/001347 WO2002075595A1 (en) | 2001-03-21 | 2002-03-20 | Method and apparatus for identifying electronic files |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004531754A true JP2004531754A (ja) | 2004-10-14 |
Family
ID=9911271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002574531A Pending JP2004531754A (ja) | 2001-03-21 | 2002-03-20 | 電子ファイルを識別する方法及び装置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20040107215A1 (ja) |
EP (2) | EP1370989B1 (ja) |
JP (1) | JP2004531754A (ja) |
KR (1) | KR20040007469A (ja) |
CN (1) | CN1317663C (ja) |
AT (1) | ATE442629T1 (ja) |
CA (1) | CA2439596C (ja) |
DE (1) | DE60233645D1 (ja) |
GB (1) | GB0107104D0 (ja) |
WO (1) | WO2002075595A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7715934B2 (en) * | 2003-09-19 | 2010-05-11 | Macrovision Corporation | Identification of input files using reference files associated with nodes of a sparse binary tree |
US20050108378A1 (en) * | 2003-10-25 | 2005-05-19 | Macrovision Corporation | Instrumentation system and methods for estimation of decentralized network characteristics |
US20050091167A1 (en) * | 2003-10-25 | 2005-04-28 | Macrovision Corporation | Interdiction of unauthorized copying in a decentralized network |
US20050203851A1 (en) * | 2003-10-25 | 2005-09-15 | Macrovision Corporation | Corruption and its deterrence in swarm downloads of protected files in a file sharing network |
US20050114709A1 (en) * | 2003-10-25 | 2005-05-26 | Macrovision Corporation | Demand based method for interdiction of unauthorized copying in a decentralized network |
US20050089014A1 (en) * | 2003-10-27 | 2005-04-28 | Macrovision Corporation | System and methods for communicating over the internet with geographically distributed devices of a decentralized network using transparent asymetric return paths |
US7877810B2 (en) * | 2004-03-02 | 2011-01-25 | Rovi Solutions Corporation | System, method and client user interface for a copy protection service |
US7809943B2 (en) | 2005-09-27 | 2010-10-05 | Rovi Solutions Corporation | Method and system for establishing trust in a peer-to-peer network |
US8086722B2 (en) | 2005-12-21 | 2011-12-27 | Rovi Solutions Corporation | Techniques for measuring peer-to-peer (P2P) networks |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5437050A (en) | 1992-11-09 | 1995-07-25 | Lamb; Robert G. | Method and apparatus for recognizing broadcast information using multi-frequency magnitude detection |
EP0826181A4 (en) * | 1995-04-11 | 2005-02-09 | Kinetech Inc | IDENTIFYING DATA IN A DATA PROCESSING SYSTEM |
US5983176A (en) * | 1996-05-24 | 1999-11-09 | Magnifi, Inc. | Evaluation of media content in media files |
US5918233A (en) | 1996-05-30 | 1999-06-29 | The Foxboro Company | Methods and systems for providing electronic documentation to users of industrial process control systems |
US5918223A (en) * | 1996-07-22 | 1999-06-29 | Muscle Fish | Method and article of manufacture for content-based analysis, storage, retrieval, and segmentation of audio information |
US5708759A (en) * | 1996-11-19 | 1998-01-13 | Kemeny; Emanuel S. | Speech recognition using phoneme waveform parameters |
US5925843A (en) * | 1997-02-12 | 1999-07-20 | Virtual Music Entertainment, Inc. | Song identification and synchronization |
US5956671A (en) * | 1997-06-04 | 1999-09-21 | International Business Machines Corporation | Apparatus and methods for shift invariant speech recognition |
US6553403B1 (en) * | 1998-06-03 | 2003-04-22 | International Business Machines Corporation | System, method and computer program product for monitoring in a distributed computing environment |
GB9918611D0 (en) * | 1999-08-07 | 1999-10-13 | Sibelius Software Ltd | Music database searching |
US6188010B1 (en) * | 1999-10-29 | 2001-02-13 | Sony Corporation | Music search by melody input |
US6678680B1 (en) * | 2000-01-06 | 2004-01-13 | Mark Woo | Music search engine |
US20010037314A1 (en) * | 2000-03-30 | 2001-11-01 | Ishikawa Mark M. | System, method and apparatus for authenticating the distribution of data |
US6732180B1 (en) * | 2000-08-08 | 2004-05-04 | The University Of Tulsa | Method to inhibit the identification and retrieval of proprietary media via automated search engines utilized in association with computer compatible communications network |
AU2002212640A1 (en) * | 2000-10-16 | 2002-04-29 | Vidius Inc. | A method and apparatus for supporting electronic content distribution |
KR20020030610A (ko) * | 2000-10-19 | 2002-04-25 | 스톰 씨엔씨 인코포레이티드 | 통신상에서 불법 유통되는 디지털 음악파일에 의해 음반의판매량이 감소되는 것을 방지하는 방법 |
JP4162181B2 (ja) * | 2000-11-27 | 2008-10-08 | ヤマハ株式会社 | 番組作成再生装置及び番組作成再生方法並びに記憶媒体 |
US7627897B2 (en) * | 2001-01-03 | 2009-12-01 | Portauthority Technologies Inc. | Method and apparatus for a reactive defense against illegal distribution of multimedia content in file sharing networks |
US7350228B2 (en) * | 2001-01-23 | 2008-03-25 | Portauthority Technologies Inc. | Method for securing digital content |
WO2003005242A1 (en) * | 2001-03-23 | 2003-01-16 | Kent Ridge Digital Labs | Method and system of representing musical information in a digital representation for use in content-based multimedia information retrieval |
JP2002297490A (ja) * | 2001-03-30 | 2002-10-11 | Toshiba Corp | データ配信装置およびデータ配信方法 |
US20020141387A1 (en) * | 2001-04-03 | 2002-10-03 | David Orshan | System, method and computer program product for delivery of internet services from a central system to multiple internet service providers at guaranteed service levels |
US7363278B2 (en) * | 2001-04-05 | 2008-04-22 | Audible Magic Corporation | Copyright detection and protection system and method |
US20020152262A1 (en) * | 2001-04-17 | 2002-10-17 | Jed Arkin | Method and system for preventing the infringement of intellectual property rights |
US20020152261A1 (en) * | 2001-04-17 | 2002-10-17 | Jed Arkin | Method and system for preventing the infringement of intellectual property rights |
US7065482B2 (en) * | 2001-05-17 | 2006-06-20 | International Business Machines Corporation | Internet traffic analysis tool |
US7793326B2 (en) * | 2001-08-03 | 2010-09-07 | Comcast Ip Holdings I, Llc | Video and digital multimedia aggregator |
US7260215B2 (en) * | 2001-09-04 | 2007-08-21 | Portauthority Technologies Inc. | Method for encryption in an un-trusted environment |
US20030095660A1 (en) * | 2001-10-15 | 2003-05-22 | Overpeer, Inc. | System and method for protecting digital works on a communication network |
US20030093794A1 (en) * | 2001-11-13 | 2003-05-15 | Koninklijke Philips Electronics N.V. | Method and system for personal information retrieval, update and presentation |
US7715934B2 (en) * | 2003-09-19 | 2010-05-11 | Macrovision Corporation | Identification of input files using reference files associated with nodes of a sparse binary tree |
US20050203851A1 (en) * | 2003-10-25 | 2005-09-15 | Macrovision Corporation | Corruption and its deterrence in swarm downloads of protected files in a file sharing network |
US20050114709A1 (en) * | 2003-10-25 | 2005-05-26 | Macrovision Corporation | Demand based method for interdiction of unauthorized copying in a decentralized network |
US20050091167A1 (en) * | 2003-10-25 | 2005-04-28 | Macrovision Corporation | Interdiction of unauthorized copying in a decentralized network |
US20050108378A1 (en) * | 2003-10-25 | 2005-05-19 | Macrovision Corporation | Instrumentation system and methods for estimation of decentralized network characteristics |
US20050089014A1 (en) * | 2003-10-27 | 2005-04-28 | Macrovision Corporation | System and methods for communicating over the internet with geographically distributed devices of a decentralized network using transparent asymetric return paths |
US7877810B2 (en) * | 2004-03-02 | 2011-01-25 | Rovi Solutions Corporation | System, method and client user interface for a copy protection service |
-
2001
- 2001-03-21 GB GBGB0107104.2A patent/GB0107104D0/en not_active Ceased
-
2002
- 2002-03-20 AT AT02718302T patent/ATE442629T1/de not_active IP Right Cessation
- 2002-03-20 EP EP02718302A patent/EP1370989B1/en not_active Expired - Lifetime
- 2002-03-20 US US10/472,458 patent/US20040107215A1/en not_active Abandoned
- 2002-03-20 WO PCT/GB2002/001347 patent/WO2002075595A1/en active IP Right Grant
- 2002-03-20 DE DE60233645T patent/DE60233645D1/de not_active Expired - Lifetime
- 2002-03-20 JP JP2002574531A patent/JP2004531754A/ja active Pending
- 2002-03-20 KR KR10-2003-7012220A patent/KR20040007469A/ko not_active Application Discontinuation
- 2002-03-20 CA CA2439596A patent/CA2439596C/en not_active Expired - Fee Related
- 2002-03-20 CN CNB028068750A patent/CN1317663C/zh not_active Expired - Fee Related
- 2002-03-20 EP EP09006218A patent/EP2098968A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN1498380A (zh) | 2004-05-19 |
US20040107215A1 (en) | 2004-06-03 |
KR20040007469A (ko) | 2004-01-24 |
EP1370989A1 (en) | 2003-12-17 |
ATE442629T1 (de) | 2009-09-15 |
WO2002075595A1 (en) | 2002-09-26 |
GB0107104D0 (en) | 2001-05-09 |
EP1370989B1 (en) | 2009-09-09 |
EP2098968A1 (en) | 2009-09-09 |
CN1317663C (zh) | 2007-05-23 |
DE60233645D1 (de) | 2009-10-22 |
CA2439596C (en) | 2011-09-13 |
CA2439596A1 (en) | 2002-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101292698B1 (ko) | 메타데이터 부여 방법 및 장치 | |
JP5090523B2 (ja) | 複数の検索の組み合わせを使用して、オーディオ/ビデオの指紋検索精度を改善する方法及び装置 | |
JP4900960B2 (ja) | 情報信号を分析する装置および方法 | |
AU2005241532B2 (en) | Identification of input files using reference files associated with nodes of a sparse binary tree | |
US6518492B2 (en) | System and method of BPM determination | |
JP5150266B2 (ja) | オーディオ信号において繰り返されるマテリアルの自動識別 | |
JP2007533274A (ja) | コンテントのサンプリングおよび識別のための方法およびシステム | |
JP2002014691A (ja) | ソース音声信号内の新規点の識別方法 | |
JP2005521979A5 (ja) | ||
CN1729506B (zh) | 音频信号分析方法和设备 | |
KR20130029082A (ko) | 미디어 스트림의 샘플을 처리하는 방법 및 시스템 | |
CN111326171B (zh) | 一种基于简谱识别和基频提取的人声旋律提取方法及系统 | |
JP2004531754A (ja) | 電子ファイルを識別する方法及び装置 | |
KR101648931B1 (ko) | 리듬 게임 제작 방법, 장치 및 이를 컴퓨터에서 실행하기 위한 컴퓨터 프로그램 | |
JP6263383B2 (ja) | 音声信号処理装置、音声信号処理装置の制御方法、プログラム | |
JP6263382B2 (ja) | 音声信号処理装置、音声信号処理装置の制御方法、プログラム | |
US20200402544A1 (en) | System and method of creating and recreating a music mix, computer program product and computer system | |
Zhang et al. | Automatic generation of music thumbnails | |
US7994410B2 (en) | Music recording comparison engine | |
AU2002249371B2 (en) | Method and apparatus for identifying electronic files | |
AU2002249371A1 (en) | Method and apparatus for identifying electronic files | |
JP4906565B2 (ja) | メロディー推定方法及びメロディー推定装置 | |
KR100962247B1 (ko) | 비디오 복제 탐지 방법 | |
TW201828278A (zh) | 伴奏音樂的提供方法和裝置 | |
Zapata G et al. | Efficient detection of exact redundancies in audio signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080708 |