(57)【要約】【課題】  データベース中にあるオーディオファイルを自動的に管理および削減するのを容易にするためのシステムおよび方法を提供すること。【解決手段】  オーディオフィンガプリンティングは、フィンガプリントのデータベースを使用してストリーミングオーディオまたはファイルベースのオーディオを識別するための強力なツールである。重複検出が、セット中の各オーディオクリップの圧縮品質または継続時間が異なっても、重複するクリップを識別する。本発明は、外部フィンガプリントデータベースを必要としない自己完結型アプリケーションとして提供することができる。また、ユーザインターフェースが、オーディオファイルを管理および削減するための様々なオプションを提供する。【選択図】  図１
2005202357.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ情報を管理するためのシステムであって、
複数のオーディオファイルの一部を対応するフィンガプリントにマッピングするフィンガプリンティングコンポーネントと、
前記フィンガプリント間の距離に部分的に基づいて、データ記憶デバイスから削除される可能性のあるものとして前記オーディオファイルの１つまたは複数にタグ付けする検出器とを備えたことを特徴とするシステム。
【請求項２】
前記検出器は、フィンガプリント間の前記距離が所定のしきい値未満であることに基づいて前記オーディオファイルにタグ付けすることを特徴とする請求項１に記載のシステム。
【請求項３】
前記フィンガプリンティングコンポーネントはさらに、ファイルについて複数のフィンガプリントを生成し、前記複数のフィンガプリントは前記ファイル中のオーディオの時間ウィンドウに対応し、前記検出器は、各ファイルごとに前記複数のフィンガプリントと１つまたは複数の記憶済みフィンガプリントとの間の最低距離に基づいて、前記オーディオファイルにタグ付けすることを特徴とする請求項１に記載のシステム。
【請求項４】
前記フィンガプリンティングコンポーネントは、前記オーディオファイル開始からの時間オフセットと、前記ファイル中の時間ウィンドウの継続時間とを受け入れるようになされたことを特徴とする請求項３に記載のシステム。
【請求項５】
前記フィンガプリンティングコンポーネントは、１秒よりも長いオーディオから生成され約６４個の浮動小数点数からなるフィンガプリントを計算することを特徴とする請求項１に記載のシステム。
【請求項６】
前記検出器は、ＤＢ１およびＤＢ２と呼ばれる少なくとも２つの内部データベースを利用し、ＤＢ１中では、レコードはフィンガプリントと、正規化係数を含めた関連する数値量とを含み、ＤＢ２中では、レコードはファイル名と、ＩＤインデックスと呼ばれる関連するインデックスと、「オフセット」パラメータと、「距離」パラメータとの、少なくとも４つのオブジェクトを含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記検出器は、すでに処理されたファイル中で最もよくマッチする位置を見つけるために、時間ウィンドウ中のすべてのフィンガプリントを計算して比較することを特徴とする請求項４に記載のシステム。
【請求項８】
前記検出器はオーディオファイルの識別を決定するのに利用されることを特徴とする請求項７に記載のシステム。
【請求項９】
前記識別はオーディオファイルに関連するメタデータで構成されることを特徴とする請求項８に記載のシステム。
【請求項１０】
重複したまたは欠陥のあるオーディオファイルのリストをユーザインターフェースに出力するのに利用されるデータベースをさらに備えたことを特徴とする請求項１に記載のシステム。
【請求項１１】
前記検出器は、前記オーディオファイルを処理する間にエラー状況を記録し、前記エラー状況に関連するファイルのリストを前記ユーザインターフェースに出力することを特徴とする請求項１０に記載のシステム。
【請求項１２】
雑音のあるオーディオファイルを識別するのに利用される拒否権フィンガプリントを記憶するためのデータベースをさらに備えたことを特徴とする請求項１に記載のシステム。
【請求項１３】
請求項１に記載のフィンガプリンティングコンポーネントと検出器とを実現するためのコンピュータ可読命令が記憶されたことを特徴とするコンピュータ可読媒体。
【請求項１４】
オーディオファイルを管理するためのユーザインターフェースであって、
データベースから削除される可能性のあるオーディオファイルに関する１つまたは複数のオプションを提供する表示コンポーネントを備え、さらに、
前記オプションを選択すること、および前記削除される可能性のあるオーディオファイルを決定する自動オーディオ削減コンポーネントを構成することのうちの少なくとも一方を行うための入力コンポーネントを備えたことを特徴とするユーザインターフェース。
【請求項１５】
削除される可能性のあるものとしてファイルを構成するためのコンポーネントと、ユーザが前記ファイルのどれを削除するか選択できるようにするための表示装置とをさらに備えたことを特徴とする請求項１４に記載のユーザインターフェース。
【請求項１６】
ファイル間の品質比較に基づいて１つまたは複数の重複ファイルを保存する能力をユーザに提供すること、前記ファイルに関連する符号化に基づいてファイルに優遇を適用すること、前記ファイルに関連するディジタル権利管理に基づいて優遇を適用することのうちの少なくとも１つを行うためのコンポーネントをさらに備えたことを特徴とする請求項１５に記載のユーザインターフェース。
【請求項１７】
前記ファイルが本当に重複であることを重複検出器がどれだけ確信しているかに基づいて様々なレベルの警告をユーザに提示するコンポーネントをさらに備えたことを特徴とする請求項１６に記載のユーザインターフェース。
【請求項１８】
重複ファイルを比較するための「高速閲覧」コンポーネントをさらに備えたことを特徴とする請求項１６に記載のユーザインターフェース。
【請求項１９】
ファイルのどの部分が重複しているかを決定するために、重複検出器が前記ファイルに対して様々な位置の多くのフィンガプリントを使用して実行されるよう要求するためのオプションをさらに備えたことを特徴とする請求項１６に記載のユーザインターフェース。
【請求項２０】
オーディオファイル管理を容易にする方法であって、
オーディオファイルを検索するための時間パラメータを受け入れるステップと、
前記オーディオファイルについてのフィンガプリントを決定するステップと、
前記時間パラメータおよび前記フィンガプリントを利用して、データベースから削除される可能性のあるオーディオファイルを決定するステップとを含むことを特徴とする方法。
【請求項２１】
ディレクトリツリー中のオーディオファイルを再帰的に処理するステップと、前記フィンガプリントのそれぞれについて正規化係数を決定するステップとをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２２】
オーディオファイルについてのトレースのセットを生成するステップと、前記トレースを、他のオーディオファイルについて生成されたフィンガプリントのセットに対してチェックするステップとをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２３】
オーディオファイルデータを通してフィンガプリントの生成と重複のチェックとを同時に単一のパスで行うステップをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２４】
１つまたは複数の拒否権フィンガプリントを利用して雑音のあるファイルを決定するステップをさらに含むことを特徴とする請求項２０に記載の方法。
【請求項２５】
前記オーディオファイルを少なくとも２つのレイヤで処理するステップをさらに含み、第１レイヤの出力は、小さいウィンドウにわたって計算された対数スペクトルに依存し、第２レイヤは、前記第１レイヤによって生成されたベクトルを集約することによって計算されたベクトルに作用することを特徴とする請求項２０に記載の方法。
【請求項２６】
前のレイヤよりも広い時間ウィンドウを後のレイヤで提供するステップをさらに含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記レイヤの少なくとも１つを利用してファイル間の時間不整合を補償するステップをさらに含むことを特徴とする請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータシステムに関し、より詳細には、オーディオフィンガプリントを利用して、余分なまたは破損したオーディオファイルを自動的に管理するシステムおよび方法に関する。
【背景技術】
【０００２】
近年の多くのソフトウェアシステムによってサポートされている現行機能の１つは、オーディオファイルを記憶および再生する能力である。これらのシステムの多くでは、ユーザがオーディオファイルの様々な集まりを記憶および管理することができる。しかし時が経つにつれて、多くのユーザは、より多くの記憶空間を塞ぐことが避けられない多数のファイルがあることに不満を感じるようになる。また、集まりが大きくなるにつれて、所望のオーディオ情報を取り出して再生することは、より困難で時間のかかることになる。多くのシステムは、増加し続けるこれらの多量のオーディオ情報をユーザが管理するのを補助するためのソフトウェアを提供している。例えばこれらのシステムには、ＭＰ３、Ｏｇｇ  Ｖｏｒｂｉｓ（ＯＧＧ）、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ａｕｄｉｏ（ＷＭＡ）、ＭＰＣおよびＭＰ＋ファイルなどを含めた一般的なオーディオファイルフォーマットをサポートするオーディオマネージャを含めることができる。これによりユーザは、ユーザのオーディオファイルの集まり全体をカタログ化して、お気に入りの曲を即座に検索したり、アルバムカバーをサムネイルとして使用してアルバムを閲覧したり、報告を作成したり、その他の有用な機能を実施したりすることができる。
【０００３】
オーディオファイルを構成することに加えて、これらのシステムは、例えばタグ編集、名前変更、歌詞編集、ＣＤ作成、アーティスト情報検索によってファイルを管理するための、ツールのセットも提供する。ユーザは、ハードディスク、ＣＤ−ＲＯＭ、ネットワークドライブ、ＺＩＰドライブ、またはその他の任意の取外し可能な媒体に記憶されたオーディオファイルを扱うことができる。ツールセットには、ユーザが複数の再生リストを再生することを可能にするツール、および各タイトルに関連する画像を表示することを可能にするツールが含まれる。他の機能には、自動生成されるデータベース統計、個人評価、ジャンル別やムード別や年別のソート、カスタムデータベース照会が含まれる。
【０００４】
最近、ストリーム中またはファイル中のオーディオを識別するための強力な方法として、オーディオフィンガプリンティング（ＡＦＰ）が出現してきた。現在、複数の会社がオーディオフィンガプリンティングに基づく音楽サービスを提供している。これらのサービスでは、識別すべきオーディオから１つまたは複数のフィンガプリントを抽出し、これらのフィンガプリントを、あらかじめ計算されたフィンガプリントの大規模なデータベースに対してチェックする必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、オーディオファイルを素早く解析するのは（サムネイルを使用できる画像とは異なり）現在は不可能なので、オーディオの大きな集まりを管理するのは困難である。ユーザは一般にラベリングに依拠しなければならないが、これさえも限定的な助けでしかない。すなわち、ラベリングはしばしば不正確だが、正確なラベリングを使用しても、通常のＰＣの集まりの中で重複オーディオファイルを識別するのは非常に時間がかかる。したがって、重複したオーディオファイル、および／または雑音を含むかその他の問題を有するオーディオファイルを、ユーザのＰＣまたはその他の媒体デバイス上で自動的に識別するシステムおよび方法であって、ユーザが自分のオーディオファイルをより効率的に管理できるようにするシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００６】
以下に、本発明のいくつかの態様に関する基本的な理解を提供するために、本発明の簡単な要約を提示する。この要約は本発明の広範な概観ではない。これは本発明の鍵となる要素／クリティカルな要素を識別するものではなく、本発明の範囲を線引きするものでもない。この唯一の目的は、後で提示するより詳細な説明への前置きとして、本発明のいくつかの概念を簡略化された形で提示することである。
【０００７】
本発明は、重複または破損したオーディオファイルを検出して、このようなファイルの管理および削除を容易にするためのシステムおよび方法に関する。大きなオーディオファイルを素早く解析することは、例えば画像およびテキストに比べると問題を含むので、オーディオの大きな集まりを管理することは困難である。過去、ユーザはラベリングに依拠してきたが、ラベリングは不正確な場合がある。本発明は、ユーザのオーディオファイル検索を補助すること、相互に重複しているかもしれないファイルを識別すること、破損したファイル、雑音のあるファイル、またはジャンクファイルを識別すること、このようなファイルをユーザのデータベースから削除するのを容易にすることのためのツールを提供することによって、従来のシステムの欠点および短所の多くを解決する。一態様では、ユーザはシステムに２つのパラメータ（フィンガプリントを抽出するためのオーディオ開始からの秒数（ｔ）と、スロップウィンドウ（ｓｌｏｐ  ｗｉｎｄｏｗ）のサイズ（ｓ））を供給する。次いで本発明は、ユーザのオーディオファイルを突き止め、（ｔ）および（ｓ）に部分的に基づいてフィンガプリントを計算する。自動的に決定された重複または破損ファイルをユーザが削除できるようにすることと共に、これらおよび他のパラメータを構成することのために、ユーザインターフェースが提供される。
【０００８】
本発明の一態様では、重複検出器によって処理されるオーディオファイルのためのデータベースを備えた、オーディオ重複検出器システムが提供される。重複検出器は、例えば重複オーディオファイルが存在するか否か、ファイルが破損しているかどうかなどの特徴を判定するためにオーディオファイルを処理する分析器からの中間結果を保持するための、１つまたは複数の内部データベースを備える。フィンガプリントコンポーネントおよび正規化コンポーネントが、分析器内で動作して、オーディオファイルの一部が他のファイルと重複しているかどうかを判定し、それによりマッチ検出器が、このような部分を重複（または破損ファイルやジャンクファイルなど、他の何らかの指示）としてタグ付けする。ユーザインターフェースが、特徴の中でもとりわけ、ユーザがシステムパラメータ（例えば検出分析パラメータ）を入力できるようにするための入力、ならびに、削除するファイルを選択できるようにするための入力を備える。インターフェースからの出力には、ユーザのデータベースから削除されるオーディオファイルのリスト、およびシステムに対する構成オプションのリストを含めることができる。
【０００９】
一般に、ユーザは、データベースを検索する際の起点となる最上レベルディレクトリ（「ルート」と呼ばれる）を選択し、次いでユーザインターフェースを介して検出器を始動させる。通常、ユーザは２つ（またはそれ以上）のパラメータをシステムに供給する。すなわち、オーディオファイル開始から何秒でそれぞれのフィンガプリントを抽出するか（Ｔ）、およびどのサイズの「スロップウィンドウ」を使用するか（Ｓ）であり、Ｓは秒でも測定される。次いで検出器は、ルートディレクトリから下にサブディレクトリを検索してオーディオファイルを取り出すが、検出器はこれらをその拡張子で識別する。検出器は、オーディオファイルを見つけると、このファイルをロードし、ファイル開始後Ｔ−Ｓ秒からファイル開始後Ｔ＋Ｓ秒までの一連のフィンガプリントを計算する。これらのどのフィンガプリントもデータベース中の既存のフィンガプリントとマッチしない場合は、ファイル開始後Ｔ秒で計算されたフィンガプリントがデータベースに追加される。このようにして、オーディオファイルは、単一のフィンガプリントがデータベースに追加されるようにするか（マッチが見つからない場合）、あるいはフィンガプリントがデータベースに追加されないようにする（マッチが見つかった場合）ことになる。一例では、６秒のオーディオから生成されるフィンガプリントであって、６４個の浮動小数点数および１個の正規化係数（これもやはり浮動小数点数である）からなるフィンガプリントが計算される。理解できるように、その他の時間値、およびその他の数の浮動小数変数を利用することもできる。
【００１０】
前述の目的および関係する目的を達成するために、本発明のいくつかの例示的な態様を、以下の記述および添付の図面に関連して本明細書に述べる。これらの態様は、本発明を実施することのできる様々な方法を示すものであり、これらはすべて本発明によってカバーされるものとする。本発明のその他の利点および新規な特徴は、以下の本発明の詳細な説明を図面と共に考えれば明らかになるであろう。
【発明を実施するための最良の形態】
【００１１】
本発明は、データベース中の重複および／または破損したオーディオファイルを自動的に検出するのを容易にするためのシステムおよび方法に関する。ファイルが検出されると、望むなら、後でデータベースから削除されるようにファイルにタグ付けすることができる。一態様では、オーディオ情報を管理するためのシステムが、オーディオファイルの一部を識別するためのフィンガプリンティングコンポーネントを備える。検出器が、決定されたオーディオファイル間のコストに基づいて、データ記憶域から削除される可能性のあるものとして１つまたは複数のオーディオファイルにタグ付けする。検出器は、コストが所定のしきい値未満であることに基づいて、または最低コスト分析に基づいて、オーディオファイルにタグ付けすることができる。別の態様では、オーディオファイルを管理するためのユーザインターフェースが提供される。インターフェースは、データベースから削除される可能性のあるオーディオファイルに関する１つまたは複数のオプションを提供する表示コンポーネントと、これらのオプションを選択して、削除される可能性のあるオーディオファイルを決定する自動オーディオ削減コンポーネントを構成するための入力コンポーネントとを備える。
【００１２】
本明細書で使用される用語「コンポーネント」「オブジェクト」「検出器」「システム」などは、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアのいずれかの、コンピュータ関連エンティティを指すものとする。例えばコンポーネントは、限定しないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピュータとすることができる。例示として、サーバ上で実行されるアプリケーションもサーバも両方とも、コンポーネントとすることができる。１つまたは複数のコンポーネントが１つのプロセスおよび／または実行スレッド内にあるものとすることもでき、１つのコンポーネントが、１つのコンピュータ上に局所化されてもよく、複数のコンピュータ間で分散されてもよい。また、これらのコンポーネントは、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行することができる。コンポーネントは、１つまたは複数のデータパケット（例えば、ローカルシステムや分散システム中の別のコンポーネントと対話するコンポーネントからのデータ、および／または、インターネットなどのネットワークを介して他のシステムと信号によって対話するコンポーネントからのデータ）を有する信号などに従って、ローカルおよび／またはリモートプロセスを介して通信することができる。
【００１３】
最初に図１を参照すると、本発明の一態様によるオーディオ重複検出器システム１００が示されている。システム１００は、重複検出器１２０によって処理されるオーディオファイルのデータベース１１０を備える。重複検出器は、例えば重複オーディオファイルが存在するか否か、ファイルが破損しているかどうかなどの特徴を判定するためにオーディオファイルを処理する分析器１４０からの中間結果を保持するための、１つまたは複数の内部データベース１２４および１３０を備える。フィンガプリントコンポーネントおよび正規化コンポーネントが、分析器１４０内で動作して、オーディオファイルの一部が他のファイルと重複しているかどうかを判定し、マッチ検出器が、このような部分を重複（または破損ファイルやジャンクファイルなど、他の何らかの指示）としてタグ付けする。ユーザインターフェース１５０が、特徴の中でもとりわけ、ユーザがシステムパラメータ（例えば検出分析パラメータ）を入力できるようにするための入力、ならびに、削除するファイルを選択できるようにするための入力を備える。インターフェース１５０からの出力には、例えば、削除されるオーディオファイルのリスト、およびシステムに１００に対する構成オプションのリストを含めることができる。
【００１４】
一態様では、フィンガプリントコンポーネントは、ロバストオーディオ認識エンジン（ＲＡＲＥ、Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｅｎｇｉｎｅ）を利用するが、これについては後でより詳細に述べる。一般に、ユーザは、データベース１１０を検索する際の起点となる最上レベルディレクトリ（「ルート」と呼ばれる）を選択し、次いでユーザインターフェース１５０を介して検出器１２０を始動させる。通常、ユーザは２つ（またはそれ以上）のパラメータをシステムに供給する。すなわち、オーディオファイル開始から何秒でそれぞれのフィンガプリントを抽出するか（Ｔ）、およびどのサイズの「スロップウィンドウ」を使用するか（Ｓ）である。Ｓは秒でも測定され、これについては後述する。次いで検出器１２０は、ルートディレクトリから下にサブディレクトリを検索してオーディオファイルを取り出すが、検出器はこれらをその拡張子（例えば．ＭＰ３、．ＷＭＡ、．ＷＡＶファイル）で識別する。検出器１２０は、オーディオファイルを見つけると、このファイルをロードし、ファイル開始後Ｔ−Ｓ秒からファイル開始後Ｔ＋Ｓ秒までの一連のフィンガプリントを計算する。一例では、６秒のオーディオから生成されるフィンガプリントであって、６４個の浮動小数点数および１個の正規化係数（これもやはり浮動小数点数である）からなるフィンガプリントが計算される。理解できるように、その他の時間値、およびその他の数の浮動小数変数を利用することもできる。
【００１５】
前述のように、検出器１２０は、少なくとも２つの内部データベース１２４および１３０を利用し、これらはＤＢ１およびＤＢ２とも呼ばれる。当技術分野で知られているように、これらのデータベースは、別々のデータベースである必要はない。これらは同じデータベース中の２つのテーブルであってもよく、あるいはデータベースソフトウェアを必要とせずにＣ＋＋などの標準的なソフトウェアで実現することさえできる。ＤＢ１中では、レコードは概して２つのオブジェクトからなる。すなわち、フィンガプリントとそれに関連する正規化である。ＤＢ２中では、レコードは概して３つのオブジェクトからなる。すなわち、ファイル名（一般にファイル名は、ファイルの名前と共に、完全なパス名を含むものとされる）と、ＩＤインデックスと呼ばれる関連するインデックスと、「オフセット」および「距離」と呼ばれる関連する２つの出力パラメータである。
【００１６】
ＩＤインデックスの目的の１つは、どのファイルが重複として識別されるかを常に把握しておくことである。すなわち、オーディオファイルの処理後に、２つのファイルが同じＩＤインデックスを有する場合は、これらは重複として識別されており、異なるＩＤインデックスを有する場合は、重複ではないとして識別されている。これらのデータベースは通常はシステム内部にあるが、外部データベースを採用することもできる。また、検出器１２０は、通常はフィンガプリントを計算するために約２ＭＢのデータをロードするが、動作のために外部フィンガプリントデータベースを必要とはしない。
【００１７】
第１のオーディオファイルがロードされると、位置Ｔで開始するフィンガプリントが計算されて記憶され、ファイルの名前および位置も記憶される。一般に、すべてのファイルのフィンガプリントが記憶されるわけではないが、ロードされたすべてのファイルについては、それらのフィンガプリントが計算され、それらの名前および位置が記憶される。第２のオーディオファイルがロードされると、このファイル中の位置Ｔ−Ｓでフィンガプリントが計算され、このフィンガプリントが、第１のファイルから計算されたフィンガプリントと比較される。マッチがある場合は、検出器１２０は、これらのＩＤインデックスを同じ数に設定することによって（処理済みの第１のファイルのＩＤインデックスは０に設定されている）、２つのファイルが同じオーディオを含むことを記録してから、次のファイルに移る。マッチがない場合は、検出器は、第２のファイルのフィンガプリントを、ファイル開始後Ｔ−Ｓ＋Ｄ秒から計算する。Ｄはステップサイズである（例えばＤ＝１８６ミリ秒）。
【００１８】
以上のことから、一方または両方のファイルの最初の一部が欠けている場合があっても、オーディオファイルを重複として識別することができる。あるオーディオファイルのフィンガプリントＦがデータベース中にあり、新しいファイルがＦに対してテストされている場合、マッチが宣言されるためには、ウィンドウ（ファイル開始後Ｔ−Ｓ秒で始まりファイル開始後Ｔ＋Ｓ秒で終わる）中で計算されたフィンガプリントのうちの１つがＦにマッチすればよい。パラメータＳはユーザ選択とすることができ、したがってユーザは、一方または両方のオーディオファイルの最初の一部が除去されることに対する頑強性に対して、重複検出速度のバランスをとることができる。速度はまた、次のように比較を順序付けることによってさらに高めることもできる。すなわち、最初に、ファイル開始後Ｔ秒で計算されたフィンガプリントをフィンガプリントデータベースに対してチェックし、次いでＴ−Ｄ秒でチェックし、次いでＴ＋Ｄ秒、次いでＴ−２Ｄ秒、次いでＴ＋２Ｄ秒のように、ウィンドウ全体（２Ｓ秒の継続時間）がチェックされるまで同様にする。このようにして、最もマッチの可能性の高い位置が最初にチェックされ、マッチが見つかると、システムはスロップ（ｓｌｏｐ）ウィンドウにわたるフィンガプリンティングを終了する（以下「保釈する」（ｂａｉｌｉｎｇ)と言う）ことができ、これによってプロセスを高速化することができる。
【００１９】
上のプロセスは、マッチが見つかるまで、またはスロップウィンドウ中のすべてのフィンガプリント（すなわち第２のファイル中のＴ−Ｓ秒で開始するフィンガプリントからＴ＋Ｓ秒で開始するフィンガプリントまで）が計算されるまで継続する。マッチが見つかった場合、検出器は、ファイル２のＩＤインデックスをＤＢ２中のファイル１のＩＤインデックスと等しく（この場合は０に）設定することによって、ファイル２がファイル１と重複していることを示すフラグをセットし、次いで「保釈する」（ファイル２の処理を停止する）。マッチが見つからない場合は、検出器は以下のことを実施する。
（１）第２のファイル開始後Ｔ秒における（すでに計算された）フィンガプリントをＤＢ１に追加する。
（２）対応する正規化を計算して保存し、このデータもＤＢ１に保存する。
（３）そのＩＤインデックスをｉｄ＿ｉｎｄｅｘ＿ｍａｘに設定し、ＤＢ２に保存する。
（４）カウンタｉｄ＿ｉｎｄｅｘ＿ｍａｘをインクリメントする。ｉｄ＿ｉｎｄｅｘ＿ｍａｘは通常は０に初期化されることに留意されたい。このようにすれば、ｉｄ＿ｉｎｄｅｘ＿ｍａｘは実際、ここまでで見つかった異なるオーディオクリップの総数になる。
【００２０】
本発明の代替の一態様では、検出器１２０は、保釈の代わりに、スロップウィンドウ中のすべてのフィンガプリントを計算して比較し、第２のファイル中で最もよくマッチする位置を見つける。例えば、第２のファイル中の計算された第３のフィンガプリントが第１のファイル中のフィンガプリントにマッチしても、後続のフィンガプリントがよりよいマッチをもたらすかもしれず、そのため、最良のマッチを見つけるためにスロップウィンドウ中のすべてのフィンガプリントが計算される。これは、第２のファイル中のフィンガプリントが、予想された位置よりもどれだけ遠かったかを計算するのに有用である。この分析は、一方のファイルが他方のファイルに対してオーディオの最初で削られていること（ｃｌｉｐ）を示し、また、廃棄されたオーディオの継続時間も提供する。この態様では、ＤＢ２に記憶される２つの出力パラメータのうちの一方は、最もよくマッチするフィンガプリントが見つかった位置と、削られていなかったら存在していたと思われる位置との隔たりを秒で表した継続時間である。この態様ではまた、マッチが見つかった場合に第２のパラメータ、すなわち最良のマッチに関連する「距離」もＤＢ２に記憶される。距離は、比較された２つのフィンガプリントがどれだけ異なるかを示す尺度であり（２つのフィンガプリントが同一の場合は０）、したがって、マッチした２つのオーディオファイルがどれだけ異なるかを示す尺度として使用することができる。例えば、マッチした２つのファイルは同じ曲のリミックスである可能性があり、距離は、しきい値未満ではあるが相応に大きい可能性がある。
【００２１】
保釈が採用されるか否かにかかわらず、検出器１２０は、記憶されたフィンガプリントと計算されたフィンガプリントとの間の距離に基づいて、マッチを宣言するか否かを決定する。距離が固定しきい値未満の場合はマッチが宣言され、代替の態様では、最低のこのような距離（スロップウィンドウ中のすべてのフィンガプリントをデータベース中のすべてのフィンガプリントと比較することによって計算されたもの）がＤＢ２に記憶される。オフセットおよび距離の計算を常に行うのではなく別のルーチンで行う理由の１つは、これらの量を計算するのは計算コストがより高い（したがってより遅い）からである。というのは、これを行うためには、スロップウィンドウ中のすべてのフィンガプリントが計算されて比較されるからである。保釈が採用される本発明の第１の態様では、検出器はマッチが見つかったときに保釈することができる。この場合でも関連の距離およびオフセットを保存することができるが、このようにして計算されたオフセットは実際のオフセットの大まかな概算であり、このようにして計算された距離は実際の（最低の）距離の上限でしかないので、この情報の有用性は劣る可能性がある。
【００２２】
上記の後、次いで検出器は、ユーザによって選択されたディレクトリツリー中のすべてのオーディオファイルを同様にして反復する。すなわち、各オーディオファイルがロードされ、そのフィンガプリントがスロップウィンドウ中で計算され、このようないずれかのフィンガプリントがＤＢ１中の既存のフィンガプリントとマッチする場合は、上記のようにマッチが宣言されて保存され、そうでない場合は、このオーディオクリップはそれまでにロードされたすべてのオーディオクリップとは異なると宣言され、そのフィンガプリント（Ｔ秒で計算されたもの）がＤＢ１に保存され、そのＩＤインデックスがＤＢ２中でｉｄ＿ｉｎｄｅｘ＿ｍａｘに設定され、ｉｄ＿ｉｎｄｅｘ＿ｍａｘはインクリメントもされる。また、まだロードされていない他のオーディオクリップに対応するフィンガプリントとの比較のために、オーディオファイル正規化が計算されてＤＢ１に保存される。このようにして、各ファイルは１度だけロードされ、ファイルを処理するのには１つのパスしか必要ない。ファイルが処理された後、ＤＢ２を使用して重複ファイルのリストがユーザインターフェース１６０に出力される。これを達成する方法の１つは、すべてのファイル名を印刷することであり、ファイル名とファイル名の間が「空白行なし」であるのは、これらが重複していることを示し、空白行は、空白行の上と下のファイルが重複していないことを示す。前述の代替態様では、印刷されたそれぞれのファイル名の後に、それに対応する距離およびオフセット（重複リスト中の最初のファイルでは両方とも０）が続く。
【００２３】
次に図２を参照すると、本発明による重複プロセッサ２００および関連する処理態様が示されている。重複プロセッサ２００は、オーディオファイル管理を容易にするために、図１に関して上述したことに加えてオーディオファイルをさらに処理することを含む。これには、２１０で、検出されたエラー状況にフラグを立てること、および２２０で、このようなエラーに関連するファイルをリストすることを含めることができる。ファイルをロードしようとしたときに、ファイルを読み取ることができない場合、またはヘッダがオーディオファイル中で予想されるヘッダと一致しない場合、またはその他の何らかのエラー状況に遭遇した場合は、プロセッサ２００は単に、そのファイルに関するエラー状況の記録を作成して次のファイルに移行する。次いで、ファイル処理が完了したときにシステムはまず、遭遇したファイルの名前を、そのファイルを処理することができなかった理由（例えば「サポートされないサンプリングレート」や「ＤＲＭ制限のせいで開くことができない」）と共に出力する。このリストは、２２０の「破損したファイル」と題した単一のブロックで出力することができる。
【００２４】
別の有用な機能は、オーディオとしてうまくロードされたものの例えば雑音や他の何らかの欠陥を含んでいるファイルに適用されるものである。各ファイルごとに、他の処理が適用される前に２３０で、そのファイルから抽出されたフィンガプリントが「拒否権（ｖｅｔｏ）」フィンガプリントのリストと比較される。「拒否権」フィンガプリントは、白雑音や、入力がないときの様々なサウンドカードから録音されたオーディオなど、少数の特別なタイプのオーディオのフィンガプリントおよび正規化を計算することによって事前に計算されたものである。当該のファイルのフィンガプリントがこれらの「拒否権フィンガプリント」のいずれかとマッチする場合は、このファイルは「ジャンク」であることがわかり、そのようにフラグを立てることができる。この場合も、オーディオファイルの処理が完了したとき、２４０の「ジャンクファイル」と題した１つのブロックでこれらの「ジャンク」ファイルをリストすることができる。このようにしてシステムは、重複を見つけるだけでなく、ユーザがチェックすることができおそらく削除したいであろう、その他のファイルを識別することもできる。
【００２５】
図３に移ると、本発明の一態様によるユーザインターフェース処理３００が示されている。所与のファイルに何らかの重複または破損が見つかったとき、システムは、重複を比較して、どちらを保存するかについての様々なオプションをユーザインターフェース３１０を介してユーザに提供することを試みることができる。削除のためのユーザインターフェース３１０は、２つまたはそれ以上の段階に分割することができる。３２０の段階１で、削除される可能性のあるものとしてファイルがラインナップされる。３３０の段階２で、ユーザは、それぞれのファイルのどれを実際に削除するか選択する。
【００２６】
３２０の段階１に関して、本発明は、（１）３４０で品質比較に基づいて１つまたは複数の重複を保存する能力をユーザに提供することができ、（２）３５０でユーザが使用する符号化に基づいてファイルの優遇を提供することができ、かつ／または（３）３６０でディジタル権利管理に基づいて優遇を提供することができる。例えば、品質比較３４０で、２つのファイルが同じ符号化タイプを有し（例えば両方ともＷＭＡ、または両方ともＭＰ３）、異なるビットレートを有するが他の点では同様である場合は、ビットレートが高い方（したがって品質が高い方）のファイルを保存することができる（すなわち他方のファイルは削除される可能性のあるものとしてラインナップされる）。同様に、２つのファイルが同じ符号化タイプを有し、一方が他方よりも継続時間が長いことを除いてはすべての点で同様である場合は、継続時間が長い方のファイルを保存することができる（したがって、削除されるファイルは通常、削られた部分のあるファイルになる）。一般に、２つのファイルが１点を除くすべての点で同様である場合は、品質が低い方のファイルが、削除される可能性のあるものとして選択されることになる。あるいは、ユーザの目的が主にディスク空間を増やすことである場合は、ユーザは、品質は劣るが小さい方のファイルを保存することを選択することもできる。
【００２７】
３５０での符号化に関して、一方のファイルの符号化タイプがＷＭＡであり、他方のファイルの符号化タイプがＭＰ３である場合、ＷＭＡが保存される可能性がある。これは、どちらの符号化を好むかをコンテンツ／サービスプロバイダが選択できることに対処する。例えば、ある会社は、様々なビジネス上の理由でＷＭＡ符号化を好む場合がある。３６０でのディジタル権利管理に関して、あるファイルが他のファイルよりも強力なディジタル管理権利保護を受ける場合は、他のファイルの方を、削除される可能性のあるものとしてラインナップされるファイルとすることができる（例えば、あるファイルはＤＲＭによりコピー可能でないが、他のファイルはコピー可能である場合は、他のファイルの方を削除されるものとしてラインナップすることができる）。この態様では、重複検出を使用して、このユーザが同意した最も強力なＤＲＭ制約に対して所与の曲を「整合」させている。当然、ユーザが故意に同じ曲のコピーを様々な強度のＤＲＭで欲するという状況がある場合もあり、この状況は３３０の段階２で対処することができる。理解できるように、上の例はファイル間の２方向の比較に基づいていたが、多方向の比較を適用することもできる。
【００２８】
３３０の段階２に関して、３７０で、どのファイルを実際に削除するかについての様々な選択子がユーザに提示され、ユーザからの確認後、削除されるように選択されたファイルが削除される。ユーザには、ファイルが本当に重複であることを重複検出器がどれだけ確信しているかに基づいて、様々なレベルの警告を提示することもできる。さらに段階２では、ユーザインターフェース３１０は、２つの重複を比較するための「高速閲覧」機能をユーザに提供することもできる。例えば、ファイル（Ａ）とファイル（Ｂ）が重複であることがわかっており、（Ａ）の方が長いことを除いては（Ａ）と（Ｂ）は同様であると仮定する。重複検出器は、その動作の中で、２つのコピー中のどこにマッチするフィンガプリントがあるかを決定することができるので、また、各オーディオの総継続時間を決定するので、最初で（Ａ）が（Ｂ）よりも長いのか、最後で（Ａ）が（Ｂ）よりも長いのか、あるいはこの両方なのかかがわかる。次いでユーザインターフェース３１０は、ファイル（Ａ）の中の、ファイル（Ｂ）に含まれない可能性が非常に高い部分を再生することができ、ユーザは、本当に２つのファイルのうちの長い方を保存したいかを決定することができる（例えばユーザは、違いが単に拍手または静寂でしかない場合は、２つのうちの短い方を好む場合もある）。
【００２９】
さらに、２つのファイルが本当に重複であるかどうかの確信がユーザになく、各ファイルを別々に聴かなければならないのは嫌である場合、ユーザは、重複検出器が再び両方のファイルに対して実行されるよう、ただし今回は様々な位置の多くのフィンガプリントを使用して実行されるよう要求することができ、それにより、２つのファイルのどの部分が実際に重複しているかを決定することができる。例えば、一方のファイルが他方のファイルよりも３倍長い場合、これらは最初だけが同一である場合がある。このようにして、ユーザインターフェース３１０は、重複検出器を再び呼び出して、特定のファイルに関する情報をさらに得ることができる。これは、重複検出器が最初にユーザのオーディオファイルすべてに対して実行される間に計算するには、計算コストが高すぎるであろう。上記の検出の態様はすべて、ビデオの重複を識別するのにも（例えばオーディオトラックの重複を検索することによって）利用できることに留意されたい。
【００３０】
図４は、本発明の一態様によるオーディオ重複処理を示す流れ図である。説明を簡単にするために、方法を一連の動作として図示および記述するが、いくつかの動作は、本発明により、本明細書に図示および記述するのとは異なる順序で行うこともでき、かつ／または他の動作と同時に行うこともできるので、本発明は動作の順序によって限定されないことを理解および認識されたい。例えば、別法として、相互に関係付けられた一連の状態またはイベントとして状態図などに方法を表すこともできることは、当業者なら理解および認識するであろう。さらに、本発明による方法を実施するために、図示したすべての動作が必要であるとは限らない。
【００３１】
ロバストオーディオ認識エンジン（ＲＡＲＥ）重複検出器ＤｕｐＤｅｔが、図４の基本プロセス４００に従って動作することができ、例えばディレクトリツリー中のオーディオファイルを再帰的に処理する。各フィンガプリントから、他のオーディオファイルから計算されたフィンガプリントの大きな集まりへの平均ユークリッド距離が１つになるように、生み出される各フィンガプリントごとに正規化係数も生み出される。これは、フィンガプリントの対の間で計算された距離を有益に比較することができるように実施される。
【００３２】
プロセス４００は、各ファイルごとにトレースのセットを生成し、これを他のオーディオファイルについて生成されたフィンガプリントのセットに対してチェックする。ここで、用語「トレース」は、データベースに対してテストされるファイルから計算されたフィンガプリントについて用い、「フィンガプリント」は、データベースに記憶されたフィンガプリントについて用いる。トレースとフィンガプリントとの間のＤ（・，・）（距離）がしきい値未満である場合、関連するオーディオファイルは重複であると宣言される。各ファイルにつき、フィンガプリントはファイル中の固定位置Ｔで計算され、トレースは、４１０で、Ｔを中心とした検索ウィンドウＳ中で計算される。ＳおよびＴはユーザ定義である。
【００３３】
４２０に示すように、プロセス４００は、フィンガプリントの生成と重複のチェックとを同時に１つのパスで行うことができる。４３０で第１のオーディオファイルが読み取られると、位置Ｔの６秒フィンガプリントが計算され保存される。第２のオーディオファイルがロードされると、４１０で、Ｔ−ＳからＴ＋Ｓまでのウィンドウ中で開始するトレースが時間順に計算される（各トレースは前のトレースから６分の１秒後に計算される）。４４０でトレースのうちの１つがマッチである場合、ファイルは重複であると宣言され、４５０でこのフィンガプリントについての重複リストに追加される。検索ウィンドウ中のトレースセット全体でマッチが見つからない場合は、４６０でフィンガプリント（すでにオーディオ中の位置Ｔで計算されたもの）がデータベースに保存され、これは（今のところ）固有のクリップを表す。システムはまた、雑音（例えば静寂や、入力なしのサウンドカードなど）から収集されたフィンガプリントである６個（またはその他の数）の「拒否権フィンガプリント」も使用する。拒否権フィンガプリントにマッチするオーディオファイルには、「ジャンクファイル」とラベル付けすることもできる。図示のように、４７０でマッチに重複としてタグ付けすることができ、４８０および４９０で、最良マッチスコア、オフセット、マッチするフィンガプリントＩＤを保存することに関係するその他の処理を行うことができる。
【００３４】
図５に、本発明の一態様によるオーディオフィンガプリンティングシステム５００を示す。ストリームオーディオフィンガプリンティング（ＳＡＦ）では、オーディオストリーム中でオーディオセグメントを識別することがそのタスクだが、ストリームは雑音で破損している場合がある。図５のシステム５００に全体的なセットアップを示す。最初に、入来オーディオストリーム５１０の固定長セグメントが、５２０の低次元トレース（期間として示されているベクトル）に変換される。次いでこの入力トレース５２０は、５３０の、記憶された事前計算済みのトレース（フィンガプリント）の大きなセットと比較される。記憶された各フィンガプリントは、あらかじめ特定のオーディオセグメント（例えば曲）から抽出されたものである。
【００３５】
入力トレース５２０は、ストリーム５１０中の反復される期間で計算され、データベース５３０と比較される。次いで、データベース中で見つかった入力トレースは、２次的なフィンガプリントを使用して、ごくわずかな追加の計算コストで確認することができる。代表的な適用例には、ロイヤルティ評価のためや、コマーシャルがスポンサーに対するサービスとして放送されたことを確認するために放送オーディオを識別すること、ソフトウェアプレーヤがユーザによって生成されたＣＤ上のトラックを識別できるようにすること、ラベル付けされていないオーディオに関するメタデータを見つけること、大規模なオーディオデータベース中で自動的に重複を検出することが含まれる。本発明は、オーディオから雑音頑強特徴を自動的に抽出するために、歪み判別分析（ＤＤＡ、Ｄｉｓｔｏｒｔｉｏｎ  Ｄｉｓｃｒｉｍｉｎａｎｔ  Ａｎａｌｙｓｉｓ）と呼ばれるアルゴリズムを採用することができる。ＤＤＡ特徴は、線形かつ重畳のニューラルネットワークによって計算され、各レイヤが、指向性主成分分析（ＯＰＣＡ、ｏｒｉｅｎｔｅｄ  Ｐｒｉｎｃｉｐａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ａｎａｌｙｓｉｓ）次元縮小のバージョンの１つを実施する。
【００３６】
歪みに対する頑強性を構築するために、ＤＤＡは、訓練信号セットの歪んだバージョンが利用可能であると仮定する。歪んだ信号のサンプルを必要とすることは、実際の雑音モデルを知る必要があることよりも厳しくなく、より一般的である。ＤＤＡは一般に、歪みが加法的であるとは仮定せず、非線形の歪みも扱う。テスト段階で予想される特定の歪みに対して訓練できることが有用な場合もあるが、ＤＤＡは、訓練に使用されない歪みに対して頑強であるという点で、一般化することができる。事前計算済みのトレースは、オーディオセグメントを一意に識別するのに使用されるので「フィンガプリント」と呼ばれる。通常、１つのオーディオクリップにつき１つまたは２つのフィンガプリントが使用されるが、より多くのフィンガプリントを使用すれば、エラーレートをさらに抑えることができる。また、以下の記述ではいくらかの数学的背景が提供されるが、ベクトルは太字フォントで表され、それらの成分は通常のフォントで表され、ダッシュは転置を表す。
【００３７】
ベクトル集合
【００３８】
【数１】
2005202357.tif 000003
【００３９】
，ｉ＝１，．．．，ｍがある場合に、各
【００４０】
【数２】
2005202357.tif 000004
【００４１】
は信号を表し（この箇所および以下では、歪みのないデータを「信号」データと呼ぶ）、各
【００４２】
【数３】
2005202357.tif 000005
【００４３】
ごとに、Ｎ個の歪んだバージョンの集合
【００４４】
【数４】
2005202357.tif 000006
【００４５】
，ｋ＝１，．．．，Ｎがあると仮定する。対応する差分ベクトル
【００４６】
【数５】
2005202357.tif 000007
【００４７】
（以下、「雑音」ベクトルと呼ぶ）を定義する。一般に、すべてのｋの場合の
【００４８】
【数６】
2005202357.tif 000008
【００４９】
にできるだけ直交するが、これに沿って元の信号
【００５０】
【数７】
2005202357.tif 000009
【００５１】
の分散が最大化される、線形射影を見つけることが望まれる。望まれる射影を定義する単位ベクトルを
【００５２】
【数８】
2005202357.tif 000010
【００５３】
，ｉ＝１，．．．，Ｍで表すが、Ｍはユーザによって選択されることになる。この考察は、一時的にＭ＝１を選択することによって単純化することができる。
【００５４】
平均二乗再構築誤差（１／ｍＮ）
【００５５】
【数９】
2005202357.tif 000011
【００５６】
を最小化する特徴抽出子
【００５７】
【数１０】
2005202357.tif 000012
【００５８】
を構築することができ、
【００５９】
【数１１】
2005202357.tif 000013
【００６０】
である。Ｒ１およびＲ２をそれぞれ
【００６１】
【数１２】
2005202357.tif 000014
【００６２】
および
【００６３】
【数１３】
2005202357.tif 000015
【００６４】
の相関行列とすると、この問題を解決する
【００６５】
【数１４】
2005202357.tif 000016
【００６６】
が、最大固有値を有するＲ１−Ｒ２の固有ベクトルであることを証明するのは単純である。しかし、この特徴抽出子は、雑音および信号のベクトルが２つの異なるスケール係数で大域的にスケールされた場合に方向
【００６７】
【数１５】
2005202357.tif 000017
【００６８】
が変化するという望ましくない特性を有する。そうではなく、ＯＰＣＡ（Ｏｒｉｅｎｔｅｄ  ＰＣＡ）の方向は、以下の一般化されたレイリー商を最大化する方向
【００６９】
【数１６】
2005202357.tif 000018
【００７０】
として定義される。
【００７１】
【数１７】
2005202357.tif 000019
【００７２】
上式で、Ｃ１は信号の共分散行列であり、Ｃ２は雑音の共分散行列である。ただし、元の形のＯＰＣＡとは対照的に、共分散行列ではなく雑音の相関行列が使用される。というのは、平均雑音信号ならびにその分散にペナルティを課すことが望まれるからである。明示的には、以下の式を利用する。
【００７３】
【数１８】
2005202357.tif 000020
そして、以下の一般化されたレイリー商を最大化する。
【００７４】
【数１９】
2005202357.tif 000021
【００７５】
（４）における分子は、単位ベクトル
【００７６】
【数２０】
2005202357.tif 000022
【００７７】
に沿った信号データの射影の分散であり、分母は、射影された平均二乗「誤差」（
【００７８】
【数２１】
2005202357.tif 000023
【００７９】
に沿って射影されたすべての雑音ベクトル
【００８０】
【数２２】
2005202357.tif 000024
【００８１】
の平均二乗モジュラス）である。
【００８２】
方向
【００８３】
【数２３】
2005202357.tif 000025
【００８４】
は、∇ｑ＝０に設定することによって見つけることができ、これは以下の一般固有値問題をもたらす。
【００８５】
【数２４】
2005202357.tif 000026
【００８６】
以下のことを証明するのは単純である。
【００８７】
１）半正定値（ｐｏｓｉｔｉｖｅ  ｓｅｍｉｄｅｆｉｎｉｔｅ）のＣ、Ｒ（この場合のように）では、一般固有値は正である。しかし、Ｒが全階数でない場合は、この問題が適切（ｗｅｌｌ−ｐｏｓｅｄ）になるように正則化される。
【００８８】
２）信号と雑音のいずれかをスケールすると、固有値は変化することになるが、ＯＰＣＡ方向は変化せずそのままである。
【００８９】
３）
【００９０】
【数２５】
2005202357.tif 000027
【００９１】
は、一次独立であるか、またはそうなるように選択することができる。
【００９２】
４）
【００９３】
【数２６】
2005202357.tif 000028
【００９４】
は必ずしも直交とは限らないが、行列ＣとＲの両方に対して共役である。
【００９５】
５）
【００９６】
【数２７】
2005202357.tif 000029
【００９７】
を最高の重みの一般固有ベクトルになるように選択することによって、ｑが最大化される。
【００９８】
オーディオなどの高次元データの場合、ＯＰＣＡはレイヤで適用することができる。例えば、６秒のオーディオから６４次元のフィンガプリントを抽出することを考えてみる。オーディオ信号はモノに変換されて１１０２５Ｈｚにダウンサンプリングされ、後続の特徴抽出が、次元６６１５０のベクトルを次元６４のベクトルにマッピングする。この場合に一般固有値問題を直接に解決するのは不可能である。その代わり、ＯＰＣＡを２つのレイヤで適用することができ、第１のレイヤは、小さいウィンドウにわたって計算された対数スペクトルに作用し、第２のレイヤは、第１のレイヤによって生成されたベクトルを集約することによって計算されたベクトルに作用する。この手法は、「歪み判別分析（ＤＤＡ）」と呼ばれる。ＤＤＡは線形方法であり、所与のレイヤで生じる射影は重畳と見なすことができる。したがって、ＤＤＡは線形かつ重畳のニューラルネットワークと見なすことができ、重みはＯＰＣＡを使用して選択される。
【００９９】
ＤＤＡでは、後続の各レイヤは、その前のレイヤよりも広い時間ウィンドウを見る。そのレイヤで見つかった固有方向は、その特定の時間スケールに適合する。これはＤＤＡの特徴である。例えば、これを使用して整合雑音を補償することができ、整合雑音は、記憶済みのフィンガプリントが入力トレースと時間的に位相がずれている可能性があることから生じる雑音として定義される。最悪の場合、フィンガプリントは、隣接する２つの入力トレースを計算するのに使用された２つのフレームの中間にあるフレームから計算されたものということになる。ＤＤＡシステムにおけるこのような時間的歪みの補償は、最後のレイヤ上で適用されるべきである。というのは、最後のレイヤは最も広い時間ウィンドウを見るからである。
【０１００】
ＤＤＡは、テスト段階を計算効率の高いものにして、様々な時間スケールでの歪みの補償を可能にするだけでなく、訓練段階でも効率的である。必要とされる共分散行列および相関行列は、望むなら１度に１ベクトルずつ計算することができる。したがって、これらの行列は、自由裁量の多くの量のデータを使用して推定することができる。行列を推定した後、標準的な数値線形代数パッケージを使用して、一般固有値を計算することができる。
【０１０１】
図６に、本発明の一態様による歪み判別分析システム６００を示す。オーディオ処理の技法、例えば音声から特徴を抽出する技法は、しばしば約２０ミリ秒のフレーム持続時間を使用する。しかし、フィンガプリンティング適用例で計算オーバーヘッドを低減するためには、毎秒およそ数回にわたってストリームからトレースを生成することが望ましい。２０ミリ秒の入力フレームの場合、最後のＤＤＡレイヤで使用されるステップサイズは、１００Ｈｚの初期サンプリングレート未満でサンプリングしなければならないことになり、これはエイリアシング（ａｌｉａｓｉｎｇ）を引き起こす可能性があり、エイリアシングはさらに歪みの原因として作用することになる。図６に示すシステム６００は、この問題を回避する。サンプリングレートが低下した中間レイヤがないので、概してエイリアシングはない。この要件のため、またトレースを約２分の１秒の時間スケールで生成するという要件のため、第１レイヤのフレームの可能な持続時間がかなり制約される。また、第１レイヤが時間的に広いことにより、ＤＤＡには、周波数空間で重要な方向を選択する際により多くのフレキシビリティがもたらされる。
【０１０２】
図７に、本発明の一態様による一般固有値７００を示す。前述のシステム６００の第１レイヤでの６４出力次元の選択は、図７に示す、訓練データに対する測定された一般固有スペクトルによってガイドされる。第１レイヤからの有用な情報のほとんどは、最初の１００個の射影で取り込まれる。第２レイヤ上のスペクトルは、それほど急速には降下しない。しかし、データベース検索を高速化するために、第２レイヤ上の上位６４個の射影だけが考慮された。データベース検索の速度はさらに、出力を１８６ミリ秒ごとではなく３７２ミリ秒ごとにのみサンプリングすることによって、２倍にすることもできる。
【０１０３】
前述のストリームオーディオフィンガプリンティングシステムは、最初にステレオオーディオ信号をモノに変換し、次いで１１０２５Ｈｚにダウンサンプリングする。信号は、半分重なった固定長の３７２ミリ秒フレームに分割される。次いで、ＭＣＬＴ（重なったウィンドウによるフーリエ変換）が各フレームに適用される。各ＭＣＬＴ係数の対数モジュラスをとることによって、対数スペクトルが生成される。このストリームオーディオフィンガプリンティングシステムは、識別容易な特定の歪みを抑制する、フレームごとの２つの前処理ステップを実施する。
【０１０４】
第１の前処理ステップは、周波数等化およびボリューム調整によって引き起こされた歪みを除去する。この「等化解除しきい値処理」（ｄｅ−ｅｑｕａｌｉｚａｔｉｏｎ  ｔｈｒｅｓｈｏｌｄｉｎｇ）ステップは、対数スペクトルのＤＣＴをとり、第１成分に対する１から第６成分以上に対する０まで線形に傾斜する重みを各ＤＣＴ係数に掛け、次いで逆ＤＣＴを実施することによって、対数スペクトルにローパスフィルタを適用する。この結果、対数スペクトルに対するスムーズな近似Ａが得られる。次いでＡは、一様に６ｄＢだけ低減され、−７０ｄＢでクリッピングされる。この場合、第１の前処理ステップの出力ベクトルは、成分に関する対数スペクトルとＡとの差だが、これはこの差が正である場合であり、そうでない場合は０である。
【０１０５】
第２の前処理ステップは、人間の聴取者に聴こえない信号の中の歪みを除去する。このステップは、第１のステップからの対数スペクトルを累乗し、次いで、アルゴリズムによって周波数依存の知覚しきい値を生成する。この場合、最終的な前処理済み信号は、対数スペクトルと対数知覚しきい値とのｄＢの差だが、これはこの差が正である場合であり、そうでない場合は０である。最終的な前処理済みデータは、１フレームあたり２０４８個の実係数（したがって２０４８個の帯域）からなる。
【０１０６】
図８を参照すると、本発明の様々な態様を実現するための例示的な環境９１０は、コンピュータ９１２を含む。コンピュータ９１２は、処理ユニット９１４、システムメモリ９１６、システムバス９１８を備える。システムバス９１８は、限定しないがシステムメモリ９１６を含めたシステムコンポーネントを、処理ユニット９１４に結合する。処理ユニット９１４は、利用可能な様々なプロセッサのいずれかとすることができる。デュアルマイクロプロセッサおよびその他のマルチプロセッサアーキテクチャを処理ユニット９１４として採用することもできる。
【０１０７】
システムバス９１８は、利用可能な様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／あるいはローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。バスアーキテクチャには、限定しないが１６ビットバス、ＩＳＡ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＭＣＡ（Ｍｉｃｒｏ−Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＥＩＳＡ（Ｅｘｔｅｎｄｅｄ  ＩＳＡ）、ＩＤＥ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＥＳＡローカルバス（ＶＬＢ）、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＡＧＰ（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）バス、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）が含まれる。
【０１０８】
システムメモリ９１６は、揮発性メモリ９２０および不揮発性メモリ９２２を含む。不揮発性メモリ９２２には、起動中などにコンピュータ９１２内の要素間で情報を転送するための基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）が記憶されている。限定ではなく例示として、不揮発性メモリ９２２には、読取り専用メモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリを含めることができる。揮発性メモリ９２０にはランダムアクセスメモリ（ＲＡＭ）が含まれ、これは外部キャッシュメモリとして働く。限定ではなく例示として、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンスドＳＤＲＡＭ（ＥＳＤＲＡＭ）、Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクトＲａｍｂｕｓ  ＲＡＭ（ＤＲＲＡＭ）など、多くの形で入手可能である。
【０１０９】
コンピュータ９１２は、取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体も備える。図８には、例としてディスク記憶装置９２４を示す。ディスク記憶装置９２４には、限定しないが磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、メモリスティックなどのデバイスが含まれる。さらに、ディスク記憶装置９２４には、限定しないが、コンパクトディスクＲＯＭドライブ（ＣＤ−ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ−Ｒドライブ）、ＣＤ書換え可能ドライブ（ＣＤ−ＲＷドライブ）、ディジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスクドライブを含めて、別個の記憶媒体、あるいは他の記憶媒体と組み合わせた記憶媒体を含めることもできる。ディスク記憶デバイス９２４からシステムバス９１８への接続を容易にするために、通常、インターフェース９２６などの取外し可能または固定式インターフェースが使用される。
【０１１０】
図８には、ユーザと、適した動作環境９１０で述べた基本的なコンピュータリソースとの間の媒介として働くソフトウェアも記述してあることを理解されたい。このようなソフトウェアには、オペレーティングシステム９２８が含まれる。オペレーティングシステム９２８は、ディスク記憶装置９２４に記憶されているものとすることができ、コンピュータシステム９１２のリソースを制御および割振りする働きをする。システムアプリケーション９３０が、システムメモリ９１６とディスク記憶装置９２４のいずれかに記憶されたプログラムモジュール９３２およびプログラムデータ９３４を介して、オペレーティングシステム９２８によるリソース管理を利用する。本発明は、様々なオペレーティングシステム、またはオペレーティングシステムの組合せを使用して実施できることを理解されたい。
【０１１１】
ユーザは、入力デバイス９３６を介してコンピュータ９１２にコマンドおよび情報を入力する。入力デバイス９３６には、限定しないが、マウスなどのポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナ、ＴＶチューナカード、ディジタルカメラ、ディジタルビデオカメラ、ウェブカメラなどが含まれる。これらおよび他の入力デバイスは、インターフェースポート９３８を介してシステムバス９１８を経由し処理ユニット９１４に接続する。インターフェースポート９３８には、例えばシリアルポート、パラレルポート、ゲームポート、ユニバーサルシリアルバス（「ＵＳＢ」）が含まれる。出力デバイス９４０は、入力デバイス９３６と同じタイプのポートのいくつかを使用する。したがって例えば、ＵＳＢポートは、コンピュータ９１２への入力を提供するのに使用することができ、またコンピュータ９１２から出力デバイス９４０に情報を出力するのにも使用することができる。出力デバイス９４０の中でもとりわけ、モニタ、スピーカ、プリンタなど、特別なアダプタを必要とするいくつかの出力デバイス９４０があることを例示するために、出力アダプタ９４２が提供されている。出力アダプタ９４２には、限定ではなく例示として、出力デバイス９４０とシステムバス９１８との間の接続手段を提供するビデオカードおよびサウンドカードが含まれる。リモートコンピュータ９４４など、その他のデバイス、および／またはデバイスのシステムも、入力と出力の両方の機能を提供することに留意されたい。
【０１１２】
コンピュータ９１２は、リモートコンピュータ９４４など１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ９４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピアデバイス、またはその他の一般的なネットワークノードなどとすることができ、通常はコンピュータ９１２に関して述べた要素の多くまたはすべてを備える。簡単にするために、メモリ記憶デバイス９４６だけがリモートコンピュータ９４４と共に示されている。リモートコンピュータ９４４は、ネットワークインターフェース９４８を介してコンピュータ９１２に論理接続され、次いで通信接続９５０を介して物理接続される。ネットワークインターフェース９４８は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）などの通信ネットワークを含む。ＬＡＮ技術には、ファイバ分散データインターフェース（ＦＤＤＩ）、銅分散データインターフェース（ＣＤＤＩ）、イーサネット（登録商標）／ＩＥＥＥ１１０２．３、トークンリング／ＩＥＥＥ１１０２．５などが含まれる。ＷＡＮ技術には、限定しないがポイントツーポイントリンク、統合ディジタルサービス通信網（ＩＳＤＮ）やその変形などの回路交換ネットワーク、パケット交換ネットワーク、ディジタル加入者線（ＤＳＬ）が含まれる。
【０１１３】
通信接続９５０は、ネットワークインターフェース９４８とバス９１８を接続するのに利用されるハードウェア／ソフトウェアを指す。通信接続９５０は、図示をわかりやすくするためにコンピュータ９１２の内部に示してあるが、コンピュータ９１２の外部にあってもよい。ネットワークインターフェース９４８への接続に必要なハードウェア／ソフトウェアには、例示に過ぎないが、通常の電話グレードモデムやケーブルモデムやＤＳＬモデムを含めたモデム、ＩＳＤＮアダプタ、イーサネット（登録商標）カードなどの、内部技術および外部技術が含まれる。
【０１１４】
図９は、本発明が対話することのできるサンプルコンピューティング環境１０００の概略ブロック図である。システム１０００は、１つまたは複数のクライアント１０１０を含む。クライアント１０１０は、ハードウェアおよび／またはソフトウェア（例えばスレッド、プロセス、コンピューティングデバイス）とすることができる。システム１０００は、１つまたは複数のサーバ１０３０も含む。サーバ１０３０もまた、ハードウェアおよび／またはソフトウェア（例えばスレッド、プロセス、コンピューティングデバイス）とすることができる。サーバ１０３０は、例えば、本発明を利用することによって変形を実施するためのスレッドを収容することができる。クライアント１０１０とサーバ１０３０との間の可能な対話の１つは、複数のコンピュータプロセス間で伝送されるように適合されたデータパケットの形とすることができる。システム１０００は、クライアント１０１０とサーバ１０３０との間の通信を容易にするのに利用できる通信フレームワーク１０５０を含む。クライアント１０１０は、クライアント１０１０のローカルな情報を記憶するのに利用できる１つまたは複数のクライアントデータ記憶装置１０６０に動作可能に接続されている。同様に、サーバ１０３０は、サーバ１０３０のローカルな情報を記憶するのに利用できる１つまたは複数のサーバデータ記憶装置１０４０に動作可能に接続されている。
【０１１５】
以上に述べたことは、本発明の例を含む。当然、本発明を記述するために、考えられるあらゆる組合せのコンポーネントおよび方法について述べることは不可能である。しかし、本発明に関するその他多くの組合せおよび置換が可能であることは、当業者なら理解するであろう。したがって本発明は、添付の特許請求の趣旨および範囲に含まれるすべての改変、修正、変形を含むものとする。
【図面の簡単な説明】
【０１１６】
【図１】本発明の一態様によるオーディオ重複検出器システムの概略ブロック図である。
【図２】本発明による重複処理態様の図である。
【図３】本発明によるユーザインターフェース態様を示す図である。
【図４】本発明の一態様によるオーディオ重複処理を示す流れ図である。
【図５】本発明の一態様によるオーディオフィンガプリンティングシステムを示す図である。
【図６】本発明の一態様による歪み判別分析を示す図である。
【図７】本発明の一態様による一般固有値を示す図である。
【図８】本発明の一態様による適した動作環境を示す概略ブロック図である。
【図９】本発明が対話することのできるサンプルコンピューティング環境の概略ブロック図である。
【符号の説明】
【０１１７】
１１０  データベース、オーディオファイル
１２０  重複検出器
１２４  データベース１、フィンガプリント＆正規化
１３０  データベース２、パス、ＩＤ、オフセット、コスト
１４０  フィンガプリントコンポーネント、正規化コンポーネント、マッチ検出器
１５０  ユーザインターフェース、ユーザ選択＆パラメータ、ファイル＆構成のリスト
【図１】
2005202357.tif 000030
【図２】
2005202357.tif 000031
【図３】
2005202357.tif 000032
【図４】
2005202357.tif 000033
【図５】
2005202357.tif 000034
【図６】
2005202357.tif 000035
【図７】
2005202357.tif 000036
【図８】
2005202357.tif 000037
【図９】
2005202357.tif 000038