(57)【要約】【課題】  音声コンテンツを特定する方法を提供する。【解決手段】  音声信号をサンプリングし、音声信号のサンプルの連続する組について周波数変換を実行し音声信号の時間依存パワー・スペクトラムを取得する。周波数変換が出力する周波数成分を周波数帯域に集約する。各周波数帯域の少なくとも１つの移動平均をとる。同じ半音周波数帯域の２つの移動平均の値が交差したら、時間情報を記録する。隣接する周波数帯域の組において異なる時に生起した平均交差イベントに関する情報を組み合わせてキーを形成する。ある歌から取得したキーの組によって、当該歌を特定する手段が得られる。このキーの組をデータベースに格納しておき、歌の特定に使用する。
2005522744.tif 000002
【特許請求の範囲】
【請求項１】
音声コンテンツを特定する方法であって、
時間依存パワー・スペクトラムを特徴とする音声信号を取得するステップと、
前記スペクトラムを解析して複数の時間依存周波数成分を取得するステップと、
前記複数の時間依存周波数成分中の複数のイベントを検出するステップと
を備えた
方法。
【請求項２】
前記検出するステップが、
前記複数の時間依存周波数成分中の複数の極値を検出するサブステップ
を備えている、
請求項１に記載の方法。
【請求項３】
さらに、
隣接する時間依存周波数成分の組においてほぼ同時に生起するイベントの組を検出するサブステップと、
さらなる処理のためにイベントの前記組の部分組を選択するサブステップと
を備えた、
請求項１に記載の方法。
【請求項４】
さらに、
各イベントに対応する時間依存周波数成分のパワーを求めるステップ
を備えた、
請求項１に記載の方法。
【請求項５】
前記解析するステップが、
音声信号をサンプリングして複数の音声信号サンプルを取得するサブステップと、
前記複数の音声信号サンプルから複数の部分組をとるサブステップと、
前記複数の部分組の各々についてフーリエ変換を実行してフーリエ周波数成分の組を取得するサブステップと
を備えた、
請求項１に記載の方法。
【請求項６】
前記解析するステップが、さらに、
前記複数の部分組から選択した少なくとも２つの連続部分組から取得した対応するフーリエ周波数成分を平均するサブステップ
を備えている、
請求項５に記載の方法。
【請求項７】
前記解析するステップが、さらに、
フーリエ周波数成分を複数の半音周波数帯域に集約するサブステップ
を備えている、
請求項６に記載の方法。
【請求項８】
前記検出するステップが、
複数の時間依存周波数成分の第１の部分組の各々の第１の平均期間を用いて第１の移動平均をとって複数の時間依存周波数成分の各々ごとに１組の連続時間における平均パワーの第１のシーケンスを取得するサブステップと、
複数の時間依存周波数成分の第２の部分組の各々の、前記第１の平均期間とは異なる第２の平均期間を用いて第２の移動平均をとって複数の時間依存周波数成分の各々ごとに１組の連続時間における平均パワーの第２のシーケンスを取得するサブステップと、
前記第１の移動平均が前記第２の移動平均と交差する複数のイベント時間において複数の平均交差イベントを特定するサブステップと
を備えている、
請求項１に記載の方法。
【請求項９】
前記第１の平均期間が（１／１０）秒〜１秒であり、前記第２の平均期間が前記第１の平均期間の２〜８倍である、
請求項８に記載の方法。
【請求項１０】
さらに、
複数のイベントを各々がある期間をカバーする複数の時間グループに集約するステップ
を備えた、
請求項１に記載の方法。
【請求項１１】
さらに、
前記複数の時間依存周波数成分の各々において各イベントを検出するのに応答して、多数の時間グループ内および多数の時間依存周波数成分内で生起した複数のイベントから少なくとも１つのイベントの組み合わせを選択するステップ
を備えた、
請求項１０に記載の方法。
【請求項１２】
前記選択するステップが、
各時間グループから同時に１つのイベントのみをとることにより、多数の時間グループ内および多数の時間依存周波数成分内で生起した複数のイベントから少なくとも１つのイベントの組み合わせを選択するサブステップ
を備えている、
請求項１１に記載の方法。
【請求項１３】
さらに、
各々がイベントの前記組み合わせに関連付けるべき時間から成る少なくとも１つの前記組み合わせと前記組み合わせ中の各イベントに関する情報を含むキー・シーケンスとから複数のキーを形成するステップ
を備えた、
請求項１１に記載の方法。
【請求項１４】
音声信号の記録の一部分を特定する特徴を形成する方法であって、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成するステップと、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域にグループ化するステップと、
前記帯域の各々におけるパワー放散イベントを検出するステップと、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントをグループ化して前記特定する特徴を形成するステップと
を備えた
方法。
【請求項１５】
さらに、
前記帯域の各々におけるパワー放散を所定の期間にわたって積分するステップ
を備えた、
請求項１４に記載の方法。
【請求項１６】
前記パワー放散イベントの各々が、エネルギー放散レベルを異なる長さの期間にわたって変化させた際における交差ポイントである、
請求項１５に記載の方法。
【請求項１７】
音声ストリームが音声信号の既知の記録の少なくとも一部分を含んでいるか否かを判断する方法であって、
請求項１４に記載の方法を用い前記既知の記録の前記部分に基づいて少なくとも１つの第１の特定する特徴を形成するステップと、
前記第１の特定する特徴をデータベースに格納するステップと、
請求項１４に記載の方法を用い前記音声ストリームの一部分に基づいて少なくとも１つの第２の特定する特徴を形成するステップと、
前記第１の特定する特徴と前記第２の特定する特徴とを比較して少なくとも選定した程度の類似性があるか否かを判断するステップと
を備えた
方法。
【請求項１８】
前記パワー放散イベントの各々が、エネルギー放散レベルを異なる長さの期間にわたって変化させた際における交差ポイントである、
請求項１７に記載の方法。
【請求項１９】
音声コンテンツを特定するプログラムでエンコードされたコンピュータ読み取り可能な媒体であって、前記プログラムが、
時間依存パワー・スペクトラムを特徴とする音声信号を取得するステップと、
前記スペクトラムを解析して複数の時間依存周波数成分を取得するステップと、
前記複数の時間依存周波数成分中の複数のイベントを検出するステップと
を実行する命令を備えている
コンピュータ読み取り可能な媒体。
【請求項２０】
前記プログラムが、さらに、
隣接する時間依存周波数成分の組においてほぼ同時に生起するイベントの組を検出するステップと、
さらなる処理のために前記イベントの組の部分組を選択するステップと
を実行する命令を備えている、
請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２１】
前記解析するステップが、
前記音声信号をサンプリングして複数の音声信号サンプルを取得するサブステップと、
前記複数の音声信号サンプルから複数の部分組をとるサブステップと、
前記複数の部分組の各々についてフーリエ変換を実行してフーリエ周波数成分の組を取得するサブステップと
を備えている、
請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２２】
前記検出するステップが、
前記複数の時間依存周波数成分の第１の部分組の各々の第１の平均期間を用いて第１の移動平均をとって前記複数の時間依存周波数成分の各々ごとに連続する時間の組における平均パワーの第１のシーケンスを取得するサブステップと、
前記複数の時間依存周波数成分の第２の部分組の各々の、前記第１の平均期間とは異なる第２の平均期間を用いて第２の移動平均をとって前記複数の時間依存周波数成分の各々ごとに連続する時間の組における平均パワーの第２のシーケンスを取得するサブステップと、
前記第１の移動平均が前記第２の移動平均と交差する複数のイベント時間において複数の平均交差イベントを特定するサブステップと
を備えている、
請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２３】
音声信号の記録の一部分を特定する特徴を形成するプログラムでエンコードされたコンピュータ読み取り可能な媒体であって、前記プログラムが、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成するステップと、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域に集約するステップと、
前記帯域の各々におけるパワー放散イベントを検出するステップと、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントを集約して前記特定する特徴を形成するステップと
を実行する命令を備えている
コンピュータ読み取り可能な媒体。
【請求項２４】
音声信号の記録を特定するシステムであって、
特定すべき音声信号を受信するインタフェースと、
前記音声信号から複数の時間依存周波数成分を取得するスペクトラム解析器と、
前記時間依存周波数成分の各々において複数のイベントを検出するイベント検出器と、
前記複数のイベントを周波数および時間によってグループ化し、前記複数のイベントに基づいて複数のキーを生成するキー生成器と
を備えた
システム。
【請求項２５】
前記イベント検出器がピーク検出器である、
請求項２４に記載のシステム。
【請求項２６】
さらに、
音声信号の既知の記録のキーのデータベースを備えた、
請求項２４に記載のシステム。
【請求項２７】
音声信号の記録の一部分を特定する特徴を形成するシステムであって、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成する手段と、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域にグループ化する手段と、
前記帯域の各々におけるパワー放散イベントを検出する手段と、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントをグループ化して前記特定する特徴を形成する手段と
を備えた
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に信号認識に関し、特に録音などの音声コンテンツを自動的に特定する方法に関する。
【背景技術】
【０００２】
音声用の効率的なディジタル符号化法（たとえばＭＰ３と呼ばれるモーション・ピクチャ・エキスパート・グループ・レイヤ３（Motion Picture Experts Group Layer 3）標準）の開発とインターネットの登場とによって、録音済み音楽の完全に電子的な販売と配付が可能になった。これは録音産業に恩恵をもたらす可能性がある。その反面、この技術的進歩によって音楽の違法配付が助長される。これにより、録音を行なう演奏家と音楽販売業者の独自利益が脅かされる。世代を重ねて録音しても劣化しない高忠実度のディジタル・コピーが容易になることはディジタル・オーディオの登場以前に行なわれていたオーディオ・カセットへの音楽の限られたコピーと比べて音楽産業にとってはるかに大きな問題である。現在、人々が、著作権で保護された音楽の海賊盤を入手しうるインターネット・サイトが無数に存在する。したがって、音楽著作権遵守のために、音声コンテンツを自動的に特定するシステムと方法が求められている。
【０００３】
ディジタル音声ファイル（たとえばＭＰ３）の中から音楽を特定することは些細な問題ではない。同じ音楽でも符号化方式が異なると異なったビット・ストリームが生成される。同じ音楽を記録（たとえば録音）して２つのディジタル音声ファイルを作成するのに同じ符号化方式を用いる場合であっても、これらのファイルはビット・レベルでは必ずしも一致しない。様々な効果は、人間の認識によって判定される、結果として得られる相違が無視しうるものであっても、ビット・ストリームの間に相違を生じさせる可能性がある。これらの効果には次に示すものがある。すなわち、録音システムの全般的な周波数応答における微妙な相違、ディジタル−アナログ変換効果、音響環境効果（たとえば残響）、および録音開始時のわずかな相違である。また、所定の録音方式を適用することによって得られるビット・ストリームは音源の種類によって変化する。たとえば、ＣＤ（Compact Disc）の出力を符号化することにより作成した歌のＭＰ３ファイルはステレオ受信機の出力を符号化することにより作成した同じ歌のＭＰ３ファイルとはビット・レベルでは一致しない。
【０００４】
提案さている１つの解決策はディジタル透かしを用いて著作権で保護された音楽にタグを付けることである。あいにく、ディジタル透かしを判読できないようにする方法が多数みつかっている。また、人間にとってきわめて聞き取りやすいのに人間の音楽認識能力を妨げない多様なノイズやひずみが存在する。ＦＭ放送やオーディオ・カセットはＣＤ録音と比べて帯域幅が狭いのに、一部の聴取者はコピーして楽しんでいる。同様に、インターネット上のＭＰ３ファイルは品質が比較的低いのに増大し続けており、音楽産業の収益を脅かしている。さらに、著作権保護制度の意図的な逸脱の一部には音楽を意図的に改変すなわちゆがめることがある。これらのゆがみには時間伸長と時間圧縮がある。そのような場合、開始時間と終了時間が異なるだけでなく、歌唱期間（song duration)も異なる。このような相違はすべて人間にとってほとんど判別しえないものであるが、既存の多くの著作権保護制度を逸脱するのには十分なものである。
【０００５】
音楽産業と作曲家にとっての別の問題としてサンプルの不正使用が挙げられる。サンプルは歌の短い部分を切り取って別の歌の中に貼り付けたものである。このようなサンプルを発見して特定しうるようにならない限り、元の録音の著作権所有者は模倣という所業における当該著作権の使用に対して正当な補償を受けることができない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
録音、放送、符号化、復号、伝送、および意図的改変などのプロセスの間にわずかな相違や改変が生じても録音などの音声コンテンツを特定しうる方法が求められている。
【課題を解決するための手段】
【０００７】
本発明の第１の側面は次のように構成する。
音声コンテンツを特定する方法であって、
時間依存パワー・スペクトラムを特徴とする音声信号を取得するステップと、
前記スペクトラムを解析して複数の時間依存周波数成分を取得するステップと、
前記複数の時間依存周波数成分中の複数のイベントを検出するステップと
を備えた
方法。
【０００８】
本発明の第２の側面は次のように構成する。
音声信号の記録の一部分を特定する特徴を形成する方法であって、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成するステップと、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域にグループ化するステップと、
前記帯域の各々におけるパワー放散イベントを検出するステップと、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントをグループ化して前記特定する特徴を形成するステップと
を備えた
方法。
【０００９】
本発明の第３の側面は次のように構成する。
音声信号の記録の一部分を特定する特徴を形成する方法であって、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成するステップと、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域にグループ化するステップと、
前記帯域の各々におけるパワー放散イベントを検出するステップと、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントをグループ化して前記特定する特徴を形成するステップと
を備えた
方法。
【００１０】
本発明の第４の側面は次のように構成する。
音声ストリームが音声信号の既知の記録の少なくとも一部分を含んでいるか否かを判断する方法であって、
請求項１４に記載の方法を用い前記既知の記録の前記部分に基づいて少なくとも１つの第１の特定する特徴を形成するステップと、
前記第１の特定する特徴をデータベースに格納するステップと、
請求項１４に記載の方法を用い前記音声ストリームの一部分に基づいて少なくとも１つの第２の特定する特徴を形成するステップと、
前記第１の特定する特徴と前記第２の特定する特徴とを比較して少なくとも選定した程度の類似性があるか否かを判断するステップと
を備えた
方法。
【００１１】
本発明の第５の側面は次のように構成する。
音声コンテンツを特定するプログラムでエンコードされたコンピュータ読み取り可能な媒体であって、前記プログラムが、
時間依存パワー・スペクトラムを特徴とする音声信号を取得するステップと、
前記スペクトラムを解析して複数の時間依存周波数成分を取得するステップと、
前記複数の時間依存周波数成分中の複数のイベントを検出するステップと
を実行する命令を備えている
コンピュータ読み取り可能な媒体。
【００１２】
本発明の第６の側面は次のように構成する。
音声信号の記録の一部分を特定する特徴を形成するプログラムでエンコードされたコンピュータ読み取り可能な媒体であって、前記プログラムが、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成するステップと、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域に集約するステップと、
前記帯域の各々におけるパワー放散イベントを検出するステップと、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントを集約して前記特定する特徴を形成するステップと
を実行する命令を備えている
コンピュータ読み取り可能な媒体。
【００１３】
本発明の第７の側面は次のように構成する。
音声信号の記録を特定するシステムであって、
特定すべき音声信号を受信するインタフェースと、
前記音声信号から複数の時間依存周波数成分を取得するスペクトラム解析器と、
前記時間依存周波数成分の各々において複数のイベントを検出するイベント検出器と、
前記複数のイベントを周波数および時間によってグループ化し、前記複数のイベントに基づいて複数のキーを生成するキー生成器と
を備えた
システム。
【００１４】
本発明の第８の側面は次のように構成する。
音声信号の記録の一部分を特定する特徴を形成するシステムであって、
前記一部分の音声信号のフーリエ変換を行ない、第１の複数の周波数にわたって放散される音声パワーの時系列を生成する手段と、
前記周波数を各々が、隣接する一範囲の周波数を含むより小さな第２の複数の帯域にグループ化する手段と、
前記帯域の各々におけるパワー放散イベントを検出する手段と、
選定した時において互いに隣接する帯域に由来する前記パワー放散イベントをグループ化して前記特定する特徴を形成する手段と
を備えた
システム。
【発明を実施するための最良の形態】
【００１５】
本発明の目的、特徴、および利点は以下の詳細な説明から明らかになる。しかしながら、次に示す点を認識すべきである。すなわち、詳細な説明と特定の例示は本発明の好適な実施形態を示すものではあるが、説明を目的としたものであり、本発明の範囲の内でごく自然に様々な変形を行なうことができる。
【００１６】
図１はその上で本発明を実現しうる典型的なネットワーク１００の模式図である。このネットワークはネットワーク１０６（たとえばインターネット）に第１の２方向データ・リンク１０８と第２の２方向データ・リンク１１０を通じてそれぞれ通信可能に接続された第１のウェブ・サーバ１０２と第２のウェブ・サーバ１０４を備えている。第１のウェブ・サーバ１０２と第２のウェブ・サーバ１０４はクライアントがダウンロードしうる音声ファイルを含むファイルを格納するファイル記憶装置（たとえばハード・ディスク駆動装置）を備えている。
【００１７】
ネットワーク１０６には第３の２方向データ・リンク１１６と第４の２方向データ・リンク１１８を通じて第１のクライアント・コンピュータ１１２と第２のクライアント・コンピュータ１１４がそれぞれ通信可能に接続されている。第１のクライアント・コンピュータと第２のクライアント・コンピュータは第１のウェブ・サーバと第２のウェブ・サーバから音声ファイルを含むファイルをダウンロードすることができる。ここまでに説明したネットワーク・コンポーネントは音楽の配付用に使用しうるシステムを指している。ウェブ・サーバ１０２とウェブ・サーバ１０４には音楽の録音を格納した音声ファイルが格納されている。
【００１８】
ネットワーク１０６には第５の２方向データ・リンクを通じて著作権遵守クライアント・コンピュータ（copyright enforcement client computer:ＣＥＣＣ）１２０が通信可能に接続されている。ＣＥＣＣには下で詳述するような方法を実施するソフトウェアをロードするためにコンピュータ読み取り可能な記憶媒体１２４（たとえばＣＤ−ＲＯＭ）を供給する。たとえば、このソフトウェアはウェブ・サイト（たとえば第１のウェブ・サーバ１０２と第２のウェブ・サーバ１０４がホスティングするウェブ・サイト）を探索（spider over すなわちsearch）し、ウェブ・サイトに格納されている音声ファイルを検索・取得し、音声ファイルを特定（すなわち音声ファイルに含まれている歌を特定）することができる。
【００１９】
第１のウェブ・サーバ１０２、第２のウェブ・サーバ１０４、クライアント・コンピュータ１１２、１１４、およびＣＥＣＣには既存の任意のコンピュータ・システム（たとえばＩＢＭ  ＰＣ互換コンピュータ）を用いることができる。周知のように、ＩＢＭ  ＰＣ互換コンピュータにはＢＩＯＳ  ＲＯＭ（basic input/output system read-only memory）、ＲＡＭ（random access memory）、ハード・ディスク駆動装置、着脱可能コンピュータ読み取り可能媒体（たとえばＣＤ−ＲＯＭ駆動装置）、映像表示アダプタ・カード、映像モニタ、ネットワーク・インタフェース（たとえばモデム）、キーボード、ポインティング装置（たとえばマウス）、音声カード、およびスピーカを備えることができる。
【００２０】
第１〜第５の２方向データ・リンク１０８、１１０、１１６、１１８、１２２にはＤＳＬ（Digital Subscriber Line)、Ｔ１線、ダイヤルアップ・モデム接続などを用いることができる。第１のウェブ・サーバ１０２と第２のウェブ・サーバ１０４はＵＮＩＸオペレーティング・システムの下で実行されるアパッチ・サーバ（Apache Server)ウェブ・サーバ・ソフトウェア（アメリカ合衆国ネブラスカ州リンカーン所在のアパッチ・ソフトウェア・ファウンデーション（Apache Software Foundation）の製品）を備えることができる。第１第２のクライアント・コンピュータ１１４と第２のクライアント・コンピュータ１１６はウェブ・ブラウザ（たとえばＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システム〔アメリカ合衆国ワシントン州レドモンド所在のマイクロソフト・コーポレーション（Microsoft Corporation)の製品〕の下で実行されるネットスケープ・ナビゲータ〔アメリカ合衆国バージニア州ダレス所在のアメリカ・オンライン（America Online）の製品〕）を用いてロードすることができる。上記ウェブ・ブラウザはプラグイン・アプリケーションとともに動作して音声ファイルをデコードし音声信号を音源カードに供給するのが望ましい。あるいは、再生用に音声ファイルをデコードするのに別個のアプリケーションまたは専用のハードウェアを備えてもよい。２つのウェブ・サーバ１０２、１０４、２つのクライアント・コンピュータ１１２、１１４、およびＣＥＣＣも通信プロトコル・スタック・ソフトウェアを用いてロードし、ネットワーク接続（たとえばＴＣＰ／ＩＰ接続）を確立することができる。また、ＣＥＣＣはオペレーティング・システム（たとえばＷｉｎｄｏｗｓ（Ｒ）やＵＮＩＸ（Ｒ））およびＣＥＣＣアプリケーション（たとえば図２〜図９を参照して下で説明するように動作するもの）を用いてロードする。
【００２１】
図２は本発明の好適な実施形態に従い音声コンテンツを特定するソフトウェアのブロック図（２００）を示す図である。ウェブ・サーバ・アプリケーション２０２は（たとえばＭＰ３フォーマットの）少なくとも１つの音声ファイルを含むファイル・システム２０４を備えている。ウェブ・サーバ・アプリケーション２０２はネットワーク（たとえばＴＣＰ／ＩＰ）接続をサポートしうるサーバ側通信プロトコル・スタック２０６とともに動作する。ウェブ・サーバ・アプリケーション２０２とサーバ側通信プロトコル・スタック２０６は第１のウェブ・サーバ１０２と第２のウェブ・サーバ１０４の上で実行する。サーバ通信プロトコル・スタック２０６とクライアント通信プロトコル・スタック２１０との間にＴＣＰ／ＩＰ接続２０８を確立する。クライアント通信プロトコル・スタックは著作権遵守アプリケーション２１２が利用する。
【００２２】
著作権遵守アプリケーションはウェブ探索モジュール２１４とコンテンツ特定モジュール２１６を備えている。ウェブ探索モジュール２１４は音声ファイルを求めてウェブ・サイトを探索する。音声ファイルの所在を突き止めたら、それをダウンロードして解析の用に供する。コンテンツ特定モジュール２１６はウェブ探索モジュール２１４から音声ファイルを受領し、それらをデコードして音声信号情報を取得する。コンテンツ特定モジュールは多数の歌から抽出した多数のキーを格納したキー・データベースを備えている。データベース中の各歌（すなわち録音ユニット）ごとにキーの組が存在する。キーの組によって、歌または歌のセグメントを特定する手段が得られる。歌の一部分は当該部分の特定を可能にする対応するキーの部分組を有するから、歌の一部分だけの存在を特定する能力を保持している。
【００２３】
キー・データベースはキー・テーブルの形態をとるのが望ましい。このキー・テーブルの各行は第１列にキー・シーケンス、第２列に時間グループ値、第３列に歌ＩＤ（たとえばタイトル）を含んでいる。キー・データベースの構築は既知の歌にキー生成プログラムを適用し、キー生成プログラムによって得られる各キーとキー・データベース中のタイトルとを関連付けることにより行なう。時間グループはキーの抽出元である音声特徴が発生した時間（これは歌の開始と関連する所定の間隔から成る単位で測定したものである）である。各時間グループは所定の間隔と等しい時間の間に発生したイベント（後述）を含んでいる。同じ歌を異なる２つの方式で録音すると、特に密造コピーの場合、開始時間がわずかに相違する可能性がある（たとえば音声ファイルの開始は歌の実際の開始よりも数秒間前後する可能性がある）。この相違によって、２つの音声ファイルを比較するのが困難になる。本発明はこの困難を克服するものである。
【００２４】
図３は本発明の一実施形態に従いインターネット（たとえばウェブ・サイトやＦＴＰサイト）上で音声ファイルの所在を突き止めて特定するために著作権遵守モジュール２１０が実行するプロセス３００のフローチャートを示す図である。ステップ３０２において、ウェブ探索モジュール２１４はインターネットの一部を探索して多数の音声ファイルを発見する。音声ファイルを特定する１つの方法はウェブ・ページ内にあるＵＲＩ（Uniform Resource Identifier)のファイル拡張子と既知の音声ファイルのリストとを比較することである。ステップ３０４において、ウェブ探索モジュール２１４はステップ３０２で発見した音声ファイルをダウンロードする。
【００２５】
ステップ３０６において、コンテンツ特定モジュール２１８はステップ３０４でダウンロードした音声ファイルを各音声ファイルごとに一意の署名（１組のキーであるのが望ましい）を生成するアルゴリズムを用いて解析する。ステップ３０８において、この一意の署名を用いて、著作権で保護された録音（たとえば歌）のデータベース中で特定される情報（たとえば各音声ファイルのタイトル）を探索する。ステップ３１０において、著作権で保護された歌（たとえばそのタイトル）とウェブ上でそれを発見した場所を示すＵＲＩとを記録し、および／または第三者（たとえば著作権の所有者）に送付する。（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす。）この結果、著作権遵守処置で使用するために、著作権で保護された作品に対応するＵＲＩのリストを編集することが可能になる。
【００２６】
図４は本発明の好適な実施形態に従い音声セグメント（たとえば歌）用のイベント・ストリームを生成するプロセス４００のフローチャートの前半を示す図である。プロセス４００は入力として音声信号を受領し「イベント」の列を出力する。本発明の一部の実施形態では、音声信号はＭＰ３ファイルから再生成する。ステップ４０２において、音声信号をサンプリングする。一実施形態では、約２２０５０Ｈｚ以下で音声信号をサンプリングする。これにより、最高１１ＫＨｚの周波数成分を実際に測定することが可能になる。１１ＫＨｚはおよそＦＭラジオ放送の遮断周波数であるから、約１１ＫＨｚの周波数上限を用いることは好都合である。そして、ある歌の録音がＦＭラジオによって一時的に送信されたものであるか高品質の音源（たとえばＣＤ）から直接に取得されたものであるかとは無関係に当該歌用に同じ組のキーを生成しうることが望ましい。
【００２７】
ステップ４０４において、各連続テスト期間ごとに音声信号のスペクトラムを計算する。テスト期間の長さは約（１／４３）秒〜約（１／１０．７５）秒であるのが望ましく、特に約（１／２１．５）秒であるのが望ましい。音声信号のスペクトラムは高速フーリエ変換（ＦＦＴ）アルゴリズムを用いて解析するのが望ましい。ＦＦＴアルゴリズムを用いて取得するスペクトラム情報の正確度はいくつかの連続期間（サンプル組）にＦＦＴを適用して得られる結果を平均することにより改善することができる。本発明の好適な実施形態では、スペクトラム情報の改善は少なくとも２つの連続期間、望ましくは少なくとも３つの連続期間、より望ましくは少なくとも４つの連続期間にＦＦＴを適用して得られる結果を平均することにより行なう。本発明の典型的な実施形態によると、長さが（１／２１．５）秒の所定のテスト期間に付随するスペクトラムを得るには２２０５０Ｈｚの速度で音声信号をサンプリングし、ＦＦＴアルゴリズムを４連続期間（各期間の長さは（２／２１．５）秒であり２０４８個のサンプルを含んでいる）に適用して得られる結果を平均する。
【００２８】
ステップ４０４はＣＥＣＣ１２０のマイクロプロセッサで実行されるＦＦＴアルゴリズムを用いることにより実行することができる。あるいは、ＣＥＣＣが、ステップ４０４を実行するＦＦＴハードウェアを備えてもよい。あるいは、ステップ４０４を実行するのに他のスペクトラム解析器（たとえばフィルタ・バンク）を用いてもよい。また、プロセス４０４において、サンプルの連続組にフーリエ原理とは別種の原理を適用してもよい。フーリエ原理に対する１つの特定の代替原理はウエーブレット原理である。フーリエ原理の関数と同様に、ウエーブレットも（程度は劣るが）周波数領域において局所化されている。ウエーブレットには時間領域においても局所化されているというさらなる特徴がある。これにより、音声信号の連続サンプル組ではなく音声信号全体にウエーブレット原理を適用し、音声信号に関する時間依存周波数情報を取得することが可能になる。
【００２９】
音楽を作曲する際に使用する周波数から成る１つの共通の組は平穏な尺度（even-tempered scale)の音である。平穏な尺度は対数尺度上に等しく配置された音を含んでいる。各音は「半音」と呼ばれる周波数帯域をカバーしている。本発明者らは次に示す点を確認した。すなわち、ＦＦＴアルゴリズムによって出力される等しく配置された周波数帯域とは対照的に、離散的な半音帯域におけるスペクトラム・パワーを収集すると改善された署名が得られる。ステップ４０６において、ステップ４０４で得られたスペクトラム情報（たとえばフーリエ周波数成分）を多数の半音周波数帯域すなわち半音周波数チャネルに集約する。
【００３０】
ステップ４０８において、最後のＴ１秒にわたって各半音周波数チャネルにおけるパワーの第１の平均をとる。ステップ４１０において、最後のＴ２秒にわたって各半音周波数チャネルにおけるパワーの第２の平均をとる（ただしＴ２はＴ１よりも大きい）。Ｔ１は約（１／１０）秒〜約１秒であるのが望ましい。Ｔ２はＴ１よりも２〜８倍だけ大きいのが望ましい。本発明の典型的な実施形態によると、Ｔ２は１秒に等しく、Ｔ１は（１／４）秒に等しい。上述した「イベント」が発生するのは第１の平均の値が第２の平均と交差するときである。
【００３１】
ステップ４１２において、第１の平均の値と第２の平均の値を各半音チャネルごとに記録する。記録は第１の平均が第２の平均と交差したかを次のテスト期間に判断しうるように行なう。ステップ４１４において、各半音チャネルごとに第１の平均が第２の平均と交差したかを判断する。これは現在のテスト期間における第１の平均と第２の平均との間の不等関係と最後の期間における不等関係とを比較することにより行なう。上では２つの平均の間における比較だけを説明したが、本発明の別の実施形態によれば、３つ以上の平均を用い３つ以上の平均の異なる部分組み合わせ間の交差ポイントとしてイベントを特定することができる。
【００３２】
半音周波数チャネルにおける極値（極大または極小）の近傍で、２つの平均は交差する。様々な平均期間を用いて２つの移動平均の交差ポイントを探究する代わりに、別の種類のピーク検出器（たとえば電子回路）を使用してもよい。これは本発明をソフトウェアではなく主としてハードウェアで実現する際にＦＦＴと組み合わせて使用するのが好都合である。
【００３３】
周波数チャネルにおける信号のピークを探究する代わりに、トリガ・イベントとして別の種類の曲線特徴（たとえば変曲点）を用いてもよい。変曲点は周波数チャネルの２次導関数を計算することにより見つけることができる。この計算は所定の周波数チャネルにおいて連続する３つのパワー値を処理し、２次導関数が正から負または負から正に変化する時を特定することにより行なう。２次導関数は次に示す公式において３つの連続する点に対して関数（時間依存周波数成分）の値を用いて近似することができる。
（Ｆ（Ｎ＋２）−２Ｆ（Ｎ＋１）＋Ｆ（Ｎ））／ΔＴ2 
ただし、Ｆ（Ｉ）はｉ番目の時間（たとえばｉ番目のテスト期間）における関数の値であり、ΔＴは連続関数値（たとえばテスト期間の長さ）の間の間隔である。
【００３４】
時間依存周波数成分の極値において、その１次導関数は０に等しい。時間依存周波数成分の変曲点において、その２次導関数は０に等しい。極値と変曲点は２種類のイベントである。一般に、イベントは時間依存周波数成分の１次以上時間依存周波数成分導関数、および／または時間依存周波数成分を含む積分を含む方程式が満足する点（すなわち時間点）として定義することができる。異なる音声コンテンツを特定する際にそれらを用いるのを可能にするために、「イベント」の定義の本質的な部分はそれらが発生するのは各テスト期間においてではなくテスト期間群の一部分においてであるというものである。
【００３５】
ステップ４１６は判断ブロックである。このブロックの結果は半音チャネルについての平均が交差したか否かによって決まる。ステップ４１６は各半音チャネルについてテストする。半音チャネルについての平均が現在のテスト期間中に交差しなかった場合、ステップ４１８において音声信号が終了したか否かを判断する。音声ストリームが終了していたら、プロセス４００は終了する。音声信号が終了していない場合、プロセス４００は次のテスト期間に進み、ステップ４０４から続行する。他方、最後のテスト期間に平均が交差した場合、プロセス４００はステップ４２２から続行する。ステップ４２２では、現在の時間グループに各イベントを割り当て、平均が交差したイベントに関連する情報を生成する。
【００３６】
イベント情報はイベントについての時間グループ、イベントについてのテスト期間、イベントの半音周波数帯域、および交差時における高速平均（Ｔ１にわたる平均）の値を含んでいるのが望ましい。イベント情報はＣＥＣＣに付随するメモリまたはストレージ装置に記録することができる。各時間グループはテスト期間よりも長い期間をカバーしている。そして、時間グループは（１／４）秒〜２秒に等しい連続期間をカバーしているのが望ましい。そして、各時間グループは（１／２）秒〜（３／４）秒の期間をカバーしているのがより望ましい。イベントを連続時間グループに分類するのには次に示す利点がある。すなわち、同じ歌の２つの録音を処理して得られるキーは当該録音群のうちの１つまたは２つが何らかのひずみ（たとえば磁気テープへの録音の際に生じるひずみ）を有するという事実にかかわらずより完全に一致する傾向があるという利点である。
【００３７】
ステップ４２４において、プロセス４００を次のテスト期間に進める。ステップ４２６において、音声セグメント（たとえば歌）が終了しているか否かを判断する。音声セグメントが終了している場合、プロセス４００は終了する。音声セグメントが終了していない場合、テスト期間を進めたのち、プロセスはステップ４０４へループバックする。
【００３８】
したがって、プロセスの結果は音声信号および複数のイベントを取得するとである。各イベントはそれが生起した半音周波数帯域と時間グループ（間隔）に割り当てる。イベントはメモリ（たとえばＣＥＣＣ１２０中のＲＡＭ）に格納することができる。イベントは少なくとも１つのキー生成プロセスがそこからイベントを連続的に読み出したバッファに格納することができる。プロセスが出力するイベントはイベント・ストリームの形態をとることができる。すなわち、各時間グループのあとで、当該時間グループ内で生起したすべてのイベントはメモリに書き込むことができる。これにより、さらなる処理においてそれらを利用することが可能になる。別の方法は歌についてのすべてのイベントをメモリまたはストレージに一時に書き込むものである。
【００３９】
図６は図４と図５に示すプロセスが生成するイベントからキーを生成するキー生成器プロセスのフローチャートを示す図である。プロセス４００が出力するイベントは複数のキー生成器プロセス５００が処理する。複数のキー生成器プロセスの各々はその主周波数で指名されている半音周波数帯域の１つに割り当てる。しかし、各キー生成器はその主周波数近傍の他の半音周波数帯域で生起するイベントも使用する。各キー生成器は５〜１５個の半音周波数帯域をモニタするのが望ましい。モニタする周波数帯域の個数が少なすぎると、結果として得られるキーは特定の音声セグメントの特徴をあまり強く表わさない。他方、周波数帯域の個数が多すぎると、キーの計算と比較に要するコンピュータ能力の消費量が多くなり、キーを格納するのに要するメモリ量が多くなり、そしてキーの個数が増大することによるキー・テーブル中のキーの飽和に起因して性能が低下する可能性がある。本発明の一実施形態によると、各キー生成器はその主半音周波数帯域と４つの他の半音周波数帯域（主半音周波数帯域の両側に２つずつ）とをモニタする。
【００４０】
次に、図６を参照する。ステップ５０２において、このキー生成器に割り当てられた半音周波数帯域内で生起するイベントがないか、プロセス４００が出力するイベントの各連続時間グループをモニタする。ステップ５０４は判断ブロックである。ステップ５０４の結果はステップ５０２においてキー生成器が（たとえばメモリを読み取ることにより）新たなイベントを検出したか否かによって決まる。ＮＯの場合、プロセス５００は次の時間グループに進み、ステップ５０２にループバックする。他方、チェックした時間グループと半音周波数帯域において新たなイベントが生起した場合、ステップ５０６において当該新たなイベントを問題のキー生成器用のキー生成器バッファに書き込む。そして、キー生成器バッファに格納されていた最古の時間グループ用のイベントを削除する。典型的な一実施形態では、キー生成器バッファは行が時間グループに対応し列が周波数帯域に対応するアレイと見ることができる。したがって、本発明の上述した実施形態では、各キー生成器がモニタする各半音周波数帯域ごとに５つの列が存在する。
【００４１】
キー生成器バッファは３〜７個の時間グループに由来するイベントを含んでいるのが望ましい。各キーバッファ・アレイには５または６個の時間グループに由来するイベントが保持されているのがより望ましい。留意点を挙げると、この実施形態では、キー生成器バッファ中にすべての時間グループが示されているわけではない。図６に示すように、ある時間グループにおいてあるキー生成器つき半音周波数帯域でイベントが生起しない場合、キー生成器バッファには変化を記録しない。換言すると、空白行は記録しない。したがって、キー生成器バッファに記録されている各時間グループは少なくとも１つのイベントを含んでいる。
【００４２】
ステップ５０８は判断ブロックである。ステップ５０８の結果は現在の時間グループ（たとえば現在のパス・スルー・プログラム・ループ）において生起したイベントがトリガ・イベントであるか否かによって決まる。本発明の好適な実施形態によると、トリガ・イベントとはこのキー生成器に割り当てられた主周波数において生起するイベントのことである。トリガ・イベントが生起しなかった場合、プロセスはステップ５１４にループバックする。トリガ・イベントが生起した場合、プロセスはステップ５１０から続行する。ステップ５１０では、キー生成器バッファの内容からキーを生成する。プロセス５００はプロセス４００が生成したすべてのイベントの処理が完了するまで継続する。
【００４３】
図７は本発明の一実施形態に従いキー生成器バッファの内容からキーを生成するプロセスのフローチャートを示す図である。特に、プロセス６００は図６のステップ５１０を実現する一実施形態を詳細に示すものである。ステップ６０２において、各キー生成器（上述したようにプロセス５００を実行するキー生成器は複数個存在する）ごとに、そして問題のキー生成器につき各トリガ・イベントごとに、キー生成器バッファに由来するイベントの少なくとも１つの異なる組み合わせを選択する。各組み合わせは各時間グループに由来するイベントを１つしか含んでいない。（各キー生成器バッファにおいて各時間グループごとに複数のイベントが存在する。）本発明の好適な実施形態によると、可能な組み合わせをすべて選択するのではなく、各イベントに付随するパワーがその組み合わせにおいてあるイベントから次のイベントへ単調に変化する組み合わせだけを選択する。
【００４４】
この実施形態では、組み合わせ内のイベントの順序は時間グループの順序と一致する。各イベントに付随するパワーの大きさは当該イベントが生起したテスト期間の高速（第１の）平均の大きさと一致するのが望ましい。この実施形態では、キーの組み合わせは可能なすべての組み合わせに満たない個数しかとっていない。したがって、所定の音声セグメントに対するキーの合計個数が少なくなるから、必要なメモリと処理能力は少なくて済む。他方、歌から生成されるキーの組が歌のアイデンティティを特徴付ける（すなわち両者が強く相関する）のに十分な個数のキーは存在する。別の実施形態によると、キー生成器バッファの内容からは単一の組み合わせしか選択しない。この単一の組み合わせは各時間グループに由来する最高位の高速平均パワーに付随するイベントを含んでいる。さらに別の実施形態によると、各時間グループに由来する１つのイベントをとる異なるイベントの組み合わせをすべてとる。
【００４５】
ステップ６０４において、イベントの選択した各組み合わせごとに、ステップ６０２で形成した各組み合わせに由来する一連のイベントについて（主キー生成器周波数からの）周波数オフセットの一連の数値を含むキー・シーケンスを作成する。各周波数オフセットはイベントが生起した半音帯域の周波数とキー生成器の主周波数との差である。ステップ６０６において、トリガ・イベントのテスト期間情報（たとえばトリガ・イベントのテスト期間のシーケンス番号〔ただし各歌について第１のテスト期間のシーケンス番号を１番に指定する〕）とキー・シーケンスとを関連付ける。
【００４６】
ステップ６０８において、キー・シーケンスおよびテスト期間情報を含むキーと歌（または他の音声）の識別子すなわちＩＤ（たとえばタイトル）とを関連付ける。既知の歌を用いて、既知の歌を比較する対象をなす歌データベースを構築している場合、プロセス６００はステップ６０８を含んでいる。２つの歌を比較する際、キー・シーケンスとテスト期間情報との双方を使用する。この点については図９を参照して後述する。歌データベースは３つの列と複数の行を含むテーブルの形態をとることができる。最初の列はキー・シーケンスを含み、次の列はこのキー・シーケンスに関連付けられた対応するテスト期間を含み、最後の列は行中のキーの取得先である歌のＩＤを含んでいる。
【００４７】
上述したプロセスを用いて音声コンテンツを特定することができるが、パーカッション（打楽器）イベントをフィルタリングするのが好都合である。特に、フィルタリングしない場合、歌の中のパーカッション音は通常、プロセス４００が出力するイベントの大きな割合を占める。コンピュータ資源（たとえばメモリと処理能力）を節減しより特徴的なキーの組を取得するために、パーカッション・イベントの個数を低減するのが望ましい。それは、たとえばキー生成器プロセス５００がイベントを処理する前に一部のパーカッション・イベントを除去することにより行なう。本発明者らの認識によると、パーカッション音によって、隣接する半音周波数帯域において同じテスト期間に複数のイベントがトリガされる。たとえば、パーカッション音によって、複数の隣接する一連の半音帯域において複数のイベントが生起する可能性がある。
【００４８】
図８は図４と図５のプロセスが生成するイベントからパーカッション・イベントをフィルタリングするために、好適な実施形態で使用するプロセスのフローチャートを示す図である。ステップ７０２において、各連続テスト期間ごとに、連続する少なくとも２つの隣接する半音周波数帯域において複数のイベントが生起したか否かを判断する。ステップ７０４は判断ブロックである。ステップ７０４の結果は隣接する周波数帯域において複数のイベントが生起したか否かによって決まる。このプロセスでは、隣接する周波数帯域において生起するイベントの所定個数から成るしきい値を使用する。（パーカッション音がイベントを生成したものとみなすために）イベントがあるに違いない隣接する周波数帯域の個数の下限は少なくとも３に設定するのが望ましい。本発明の典型的な実施形態によると、ステップ７０４の結果が正になるには３連続の半音周波数帯域においてイベントが生起しなければならない。
【００４９】
ステップ７０４の結果が負の場合、プロセスはステップ７０８から継続する。ステップ７０８では、プロセスは次のテスト期間に進み、ステップ７０２にループバックする。他方、ステップ７０４の結果が正の場合、プロセス７００はステップ７０６から継続する。ステップ７０６では、隣接する周波数帯域における同じテスト期間に生起した一連のイベントの各々を単一のイベントに低減させる。最高速の平均値を有するシーケンスにおけるイベントを除くすべてのイベントをプロセス４００が生成したイベント・ストリームから削除する。あるいは、１つ以外のすべてを削除する代わりに、最大で所定数のイベントを残してもよい。
【００５０】
上述したプロセスでは録音に含まれている特徴（すなわちイベント）に基づいて録音用のキーを生成している。したがって、既知の音声コンテンツに対してこのプロセスを実行し記憶フェーズの間に既知の音声コンテンツの特徴データベースを構築することができる。特徴データベースを構築したら、検索・取得フェーズの間に上述したプロセスを用いて未知の音声コンテンツから特徴を抽出することができる。そして、特徴データベースにアクセスし抽出済みの特徴に基づいて音声コンテンツを特定することができる。たとえば、未知の音声コンテンツに対して同じプロセスを実行しリアルタイムに（あるいはそれより速く）特徴を抽出することができる。そして、特徴データベース中の最良一致を用いて音声コンテンツを特定することができる。一実施形態では、音声コンテンツの最良一致は各所定間隔（たとえば１０〜３０秒間）ごとに報告することができる。
【００５１】
図９は図６と図７のプロセスで生成されるキーを用いて音声セグメントを特定する歌特定プロセスのフローチャートを示す図である。歌データベース（たとえば上述したもの）を用いて未知の歌（たとえばプロセス３００のステップ３０４でウェブ・サイトからダウンロードした歌）を特定する。歌データベースのキー・シーケンス・フィールド（列）をデータベース・キーとして使用することができる。歌データベースのレコード（行）はハッシュ・テーブルに格納して直接探索の用に供するのが望ましい。特定プロセス８００は図３のステップ３０８の典型的な実現例である。
【００５２】
ステップ８０２において、（たとえば図６と図７に示すプロセスを実行することにより）、特定すべき歌からキーを生成する。ステップ８０４では、複数の歌用のキーを含む歌データベースにおいて、ステップ８０４で生成するキーの組中の各キーを探索する。各キーのキー・シーケンス部を（テスト期間部とは対照的に）データベース・キーとして使用する。換言すると、特定すべき歌から取得されるキーに属すキー・シーケンスと同じキー・シーケンスを有するすべてのエントリを求めて歌データベースを探索する。歌データベース中の複数のキーが同じキー・シーケンスを有する可能性がある。また、歌データベース中の複数の歌が偶然に同じキー・シーケンスを共有する可能性もある。ステップ８０６において、（キー・シーケンスによって）歌データベース中の少なくとも１つのキーと一致したデータベース中の各キーごとに、探索したキーに付随するテスト期間と歌データベース中の各一致キーに付随するテスト期間との間の差をとることによりオフセットを計算する。
【００５３】
ステップ８０８では、オフセットをオフセット時間グループに集約する。
オフセット用のオフセット時間グループはキー生成の際に使用する時間グループから峻別（しゅんべつ）される。好適な実施形態によると、１つのオフセット時間グループは２〜１０個のテスト期間に等しい。たとえば、各オフセット時間グループが５であるとすると、ステップ８０６で決まる差が０〜５であるすべてのキーの対は第１のオフセット時間グループに割り当て、差が６〜１０であるすべてのキーの対は第２のオフセット時間グループに割り当てる。本発明の典型的な実施形態によると、各オフセット時間グループは５個のテスト期間に等しい。
【００５４】
ステップ８１０において、特定すべき歌中のキーと一致するキーを有する各歌ごとに、そしてステップ８０８で求め、歌データベース中の所定の歌用のキーを含む各オフセット時間グループ値ごとに、同じオフセット時間グループ値を有する一致キーの個数をカウントする。ステップ８１０は次に示すように視覚化することができる。これは実現方法の基礎としても使用することができる。すなわち、各行が、特定すべき歌と一致するキーを少なくとも１つ有する歌データベースに由来する歌に対応する一時テーブルを構築する。第１列は歌の名前を含む。第２列には、各歌の名前に隣接して、歌データベースにおいて名前付きの歌に付随するキーと特定すべき歌に由来する一致キーとで決まるオフセット時間グループ値が記載されている。ステップ８１０の完了後、第３列は第１列で特定した特定の歌に対応する（、第２列で特定したのと同じオフセット時間グループを有する）キー一致の個数のカウント値を含むことになる。そのテーブルは次に示すようになる。
【００５５】
【表１】
2005522744.tif 000003
【００５６】
特定すべき歌がデータベース中に存在すると、１つの特定の時間グループのオフセット値が大きくなる。換言すると、キーの一致対の個数が大きくなると、時間グループの特定のオフセット値を有するようになる。上述した例では、タイトル２なる歌はカウント値が１０７であり、時間グループのオフセット値が３である。たとえば、時間グループのオフセットが大きくなるのは特定中の特定の録音が、歌データベース用にキーを生成するのに用いた歌の録音の数秒後に開始したからである、あるいは歌の小さなセグメントを特定中だからである。
【００５７】
ステップ８１２では、オフセットが同じで一致キーのカウント値が最大である歌データベースに由来する歌を特定する。判断ブロック８１４において、カウント値としきい値とを比較する。しきい値は特定の用途に基づいて、あるいは、歌が実際に一致するときにおける最大カウント値を最小値に、そしてテストする歌がデータベース中の歌と一致しない場合における最大カウント値を最大値に決めることにより設定することができる。使用するしきい値は上述したステップ６０２用に選定した特定の実施形態によっても決まる。これにより、キーの総数が決まる。
【００５８】
ステップ８１２においてはカウント値としきい値とを比較する代わりに、しきい値と、最大カウント値と特定すべき歌から生成したキーの総数との比とを比較することができる。別の実施形態はしきい値と、最大カウント値と残りのカウント値の平均との比とを比較するものである。これら後２者の実施形態は最大カウント値としきい値とを比較するものとみることもできる。ただし、これらの場合、しきい値は固定値ではない。特定すべき歌がデータベース中に存在しない場合のようにカウント値がしきい値基準を満たさない場合、歌特定プロセス８００は終了する。この場合、特定すべき歌は特定できない旨を（たとえばユーザに）報告する追加のステップ群を設ける。他方、カウント値がしきい値基準を満たす場合、ステップ８１４においてカウント値が最大である（しきい値基準を満たす）歌を特定する情報を出力する。さらに別の実施形態では、本発明のプロセスを用いて歌のセグメントを特定している。
【００５９】
したがって、本発明はひずみと改ざんを処理るす能力の点で頑強な、歌を特定する方法を提供するものである。また、この方法は計算の複雑性とメモリ要件の点で効率的でもある。好適な実施形態では、イベント・ストリームを生成するプロセス、パーカッション・イベントをフィルタリングするプロセス、キーを生成するプロセス、および歌データベース中のキーを探索するプロセスはリアルタイムに実行する。好適な実施形態中のこれらのプロセスがコンピュータを使用する程度は十分に低いので、これらのプロセスは普通のパーソナル・コンピュータ上でリアルタイムに実行することができる。
【００６０】
本発明はハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実現することができる。あらゆる種類のコンピュータ・システム（またはここで説明した方法を実施するように適合した他の装置）を用いることができる。ハードウェアとソフトウェアの典型的な組み合わせはロードして実行したときにコンピュータ・システムをそれが、ここで説明した方法を実行しうるように制御するコンピュータ・プログラムを備えた汎用コンピュータ・システムである。
【００６１】
本発明はコンピュータ・プログラム製品に組み込むこともできる。そのコンピュータ・プログラム製品はここで説明した方法の実現を可能にするすべての機能を含み、コンピュータ・システムにロードしたときにこれらの方法を実行しうるものである。この文脈におけるコンピュータ・プログラム手段またはコンピュータ・プログラムは情報処理能力を備えたシステムに特定の機能を直接に、あるいは（ａ）別の言語、コード、または標記への変換、および（ｂ）異なる材料形態での再生産の一方または双方の後に実行させるように意図した１組の命令の、任意の言語、コード、または標記による任意の表現を意味する。各コンピュータ・システムは特に少なくとも１つのコンピュータおよび少なくとも１つのコンピュータ読み取り可能な媒体を備えている。このコンピュータ読み取り可能な媒体はコンピュータが当該コンピュータ読み取り可能な媒体からデータ、命令、メッセージまたはメッセージ・パケット、および他のコンピュータ読み取り可能な情報を読み取るのを可能にするものである。コンピュータ読み取り可能な媒体にはたとえばＲＯＭ、フラッシュ・メモリ、ディスク駆動装置メモリ、ＣＤ−ＲＯＭ、および他の永続記憶装置などの不揮発性メモリが含まれる。また、コンピュータ媒体にはたとえばＲＡＭ、バッファ、キャッシュ・メモリ、およびネットワーク回路などの揮発性記憶装置が含まれる。さらに、コンピュータ読み取り可能な媒体にはたとえばネットワーク・リンクおよび／またはネットワーク・インタフェース（たとえば有線ネットワークまたは無線ネットワーク）などの一時状態媒体中のコンピュータ読み取り可能な情報が含まれる。これにより、コンピュータはこのようなコンピュータ読み取り可能な情報を読み取ることが可能になる。
【００６２】
以上、本発明の好適な実施形態であると現在考えられるものを説明するとともに記述したが、当業者が理解しうるように、本発明の真の範囲の内で他の様々な変形をなすことができるとともに均等物で置換することができる。また、ここで説明した中心的な発明概念の内で特定の状況を本発明の教示に適合させうるように多くの変形をなすことができる。したがって、本発明はここで開示した特定の実施形態に限定されない。本発明は特許請求の範囲に属すすべての実施形態を含むものである。
【図面の簡単な説明】
【００６３】
【図１】本発明の好適な実施形態を実現することのできる典型的なネットワークの模式図である。
【図２】本発明の好適な実施形態に従って音楽を特定するソフトウェアのブロック図である。
【図３】本発明の一実施形態を用いてネットワーク上で音声ファイルの所在を突き止めて特定するプロセスのフローチャートを示す図である。
【図４】本発明の好適な実施形態に従い音声セグメントからイベントを特定するプロセスのフローチャートを示す図である。
【図５】本発明の好適な実施形態に従い音声セグメントからイベントを特定するプロセスのフローチャートを示す図である。
【図６】図４と図５に示したプロセスによって生成したイベントからキーを生成するプロセスのフローチャートを示す図である。
【図７】本発明の好適な実施形態に従いキー生成器バッファの内容からキーを生成するプロセスのフローチャートを示す図である。
【図８】本発明の好適な実施形態に従いパーカッション・イベントをフィルタリングするプロセスのフローチャートを示す図である。
【図９】キーを用いて２つの音声セグメントを比較するプロセスのフローチャートを示す図である。
【符号の説明】
【００６４】
１００  ネットワーク
１０２  第１のウェブ・サーバ
１０４  第２のウェブ・サーバ
１０６  ネットワーク
１０８  第１の２方向データ・リンク
１１０  第２の２方向データ・リンク
１１２  第１のクライアント・コンピュータ
１１４  第２のクライアント・コンピュータ
１１６  第３の２方向データ・リンク
１１８  第４の２方向データ・リンク
１２０  著作権遵守クライアント・コンピュータ（ＣＥＣＣ）
１２２  第５の２方向データ・リンク
１２４  コンピュータ読み取り可能な記憶媒体
２００  音声コンテンツを特定するソフトウェア
２０２  ウェブ・サーバ・アプリケーション
２０４  ファイル・システム
２０６  サーバ側通信プロトコル・スタック
２０８  ＴＣＰ／ＩＰ接続
２１０  クライアント通信プロトコル・スタック
２１２  著作権遵守アプリケーション
２１４  ウェブ探索モジュール
２１６  コンテンツ特定モジュール
２１８  キー・データベース
【図１】
2005522744.tif 000004
【図２】
2005522744.tif 000005
【図３】
2005522744.tif 000006
【図４】
2005522744.tif 000007
【図５】
2005522744.tif 000008
【図６】
2005522744.tif 000009
【図７】
2005522744.tif 000010
【図８】
2005522744.tif 000011
【図９】
2005522744.tif 000012
【国際調査報告】
2005522744.tif 000013
2005522744.tif 000014
2005522744.tif 000015