(57)【要約】【課題】  メディア・プログラムのコンテンツを識別する技術を提供すること。【解決手段】  本願発明のメディア・プログラムのコンテンツの認識に使用する方法は、代表的には、メディア・プログラムのブロックの各第１の周波数領域表現を複数のフィルタを用いてフィルタリングし、メディア・プログラムの前記ブロックの各々のそれぞれの第２の周波数領域表現であって、第１の周波数領域表現に対して周波数係数の数を減少させている第２の周波数領域表現を作成する工程と、セグメントを形成させるようにブロックの前記第２の周波数領域表現の周波数係数をグループ分けする工程と、複数の前記セグメントを選択する工程とを含む。【選択図】図１
2005049878.tif 000002
【特許請求の範囲】
【請求項１】
メディア・プログラムのコンテンツの認識に使用するための方法であって、
前記メディア・プログラムのブロックの各第１の周波数領域表現を複数のフィルタを用いてフィルタリングし、前記メディア・プログラムの前記ブロックの各々のそれぞれの第２の周波数領域表現であって、前記第１の周波数領域表現に対して周波数係数の数を減少させている第２の周波数領域表現を作成する工程と、
セグメントを形成させるように前記ブロックの前記第２の周波数領域表現の周波数係数をグループ分けする工程と、
複数の前記セグメントを選択する工程とを含む方法。
【請求項２】
セグメントを形成させるような前記第２の周波数領域の周波数係数の各グループ分けが前記メディア・プログラム内で時間的に連続するブロックを表している請求項１に記載の方法。
【請求項３】
前記複数のフィルタが一度に１ブロックを処理する１つのグループに配置させており、前記第２の周波数領域表現のうち各ブロックに関する前記グループによって生成される部分が１つのフレームを形成しており、かつ少なくとも２つのフレームが１つのセグメントを形成するようにグループ分けされている請求項１に記載の方法。
【請求項４】
前記選択したセグメントは前記メディア・プログラムのうち時間的に連続していない部分に対応している請求項１に記載の方法。
【請求項５】
前記複数のフィルタが少なくとも１つのトライアンギュラ・フィルタの組を含んでいる請求項１に記載の方法。
【請求項６】
前記複数のフィルタが少なくとも１つの対数間隔トライアンギュラ・フィルタの組を含んでいる請求項１に記載の方法。
【請求項７】
前記選択の工程で選択したセグメントは最も大きな最小セグメント・エネルギーを有するセグメントである請求項１に記載の方法。
【請求項８】
前記選択の工程で選択したセグメントは、前記セグメントが互いに接近しすぎることを防止するように所定の制約に従って選択されている請求項１に記載の方法。
【請求項９】
前記選択の工程で選択したセグメントは前記メディア・プログラムのうちギャップによって分離させた所定の検索ウィンドウと時間的に対応する部分向けに選択されている請求項１に記載の方法。
【請求項１０】
前記選択の工程で選択したセグメントは選択したセグメントにわたって最大のエントロピーを有する選択したセグメントを生じさせるようなセグメントである請求項１に記載の方法。
【請求項１１】
前記グループ分け工程の実行後に、前記第２の周波数領域表現において前記周波数係数を正規化する工程であって、セグメント単位で実行される規格化工程をさらに含む請求項１に記載の方法。
【請求項１２】
前記規格化工程は少なくとも１回の先行時間規格化を実行する工程を含む請求項１１に記載の方法。
【請求項１３】
前記規格化工程は少なくとも１回のＬ２規格化を実行する工程を含む請求項１１に記載の方法。
【請求項１４】
前記選択したセグメントを前記メディア・プログラムの識別子と関連付けしてデータベース内に保存する工程をさらに含む請求項１に記載の方法。
【請求項１５】
前記データベース内に前記選択したセグメントのタイミングを示す情報を保存する工程をさらに含む請求項１４に記載の方法。
【請求項１６】
前記メディア・プログラムのブロックの前記第１の周波数領域表現が、
前記データベース内に保存させようとする前記メディア・プログラムのオーディオ表現をデジタル化する工程と、
デジタル化したオーディオ表現を所定のサンプル数からなるブロックに分割する工程と、
前記ブロックをフィルタを用いて平滑化する工程と、
前記平滑化したブロックが周波数係数によって表現されるように前記平滑化したブロックを周波数領域に変換する工程と、
によって作成されている請求項１に記載の方法。
【請求項１７】
メディア・プログラムのコンテンツの認識に使用するための装置であって、
前記メディア・プログラムのブロックの第１の周波数領域表現を複数のフィルタを用いてフィルタリングし、前記メディア・プログラムの第２の周波数領域表現であって、前記第１の周波数領域表現に対して周波数係数の数を減少させている第２の周波数領域表現を作成するための手段と、
セグメントを形成させるように前記第２の周波数領域表現のそれぞれをグループ分けするための手段と、
複数の前記セグメントを選択するための手段とを備える装置。
【請求項１８】
メディア・プログラムのコンテンツの認識に使用するための方法であって、
前記メディア・プログラムのブロックの各第１の周波数領域表現を複数のフィルタを用いてフィルタリングし、前記メディア・プログラムの前記ブロックの各々のそれぞれの第２の周波数領域表現であって、前記第１の周波数領域表現に対して周波数係数の数を減少させている第２の周波数領域表現を作成する工程と、
セグメントを形成させるように前記ブロックの前記第２の周波数領域表現の周波数係数をグループ分けする工程と、
実質的マッチング・セグメントを探すように、メディア・プログラムのセグメントおよびそれぞれの対応するプログラム識別子をその内部に保存しているようなデータベースを検索する工程とを含む方法。
【請求項１９】
前記検索工程の間に前記データベース内に実質的マッチング・セグメントが発見できないときに前記メディア・プログラムが識別できないことを示す工程をさらに含む請求項１８に記載の方法。
【請求項２０】
前記データベースは、その内部で識別された各それぞれのメディア・プログラムのセグメントのタイミングを示す情報を含んでおり、かつ前記グループ分け工程の間に生成された前記セグメントのタイミングが前記データベース内に保存されている前記セグメントのタイミングと実質的にマッチした場合にのみ前記検索工程の間にマッチを見いだすことができる請求項１８に記載の方法。
【請求項２１】
セグメント間での前記マッチングがセグメント間のユークリッド距離に基づいている請求項１８に記載の方法。
【請求項２２】
前記検索工程の間に前記データベース内に実質的マッチング・セグメントが発見できないときに、前記メディア・プログラムが最良マッチング・スコアを有する前記データベース内に保存されている識別子が示すメディア・プログラムであると識別する工程をさらに含む請求項１８に記載の方法。
【請求項２３】
前記メディア・プログラムと前記識別工程の間に識別されたメディア・プログラムとの間の速度差を決定する工程をさらに含む請求項２２に記載の方法。
【請求項２４】
プログラムＰｉに関する前記マッチング・スコアが
【数１】
2005049878.tif 000012
によって決定されている請求項２２に記載の方法。
【請求項２５】
前記フィルタリングの工程、グループ分けの工程、検索の工程および識別の工程を反復する工程と、
別のマッチがあったときに、前記識別されたプログラムが前記反復の前に決定したのと同じプログラムであるのかあるいは異なるプログラムであるのかを決定する工程と、
をさらに含む請求項２２に記載の方法。
【請求項２６】
前記決定の工程がオーバーラップ・スコアに基づいている請求項２５に記載の方法。
【請求項２７】
オーバーラップ・スコアが、前記反復の前に決定した前記プログラムＰ０と、前記反復の間に決定した前記プログラムＰ１と、の間で次式、
オーバーラップ・スコア＝（ｔｅｎｄ−ｔｂｅｇｉｎ）／（Ｐ１の終了時刻−Ｐ１の開始時刻）
上式において、
ｔｅｎｄは、ｍｉｎ（Ｐ０、Ｐ１の終了時刻）
ｔｂｅｇｉｎは、ｍａｘ（Ｐ０、Ｐ１の開始時刻）
によって計算されている請求項２６に記載の方法。
【請求項２８】
メディア・プログラムのコンテンツの認識に使用するための装置であって、
前記メディア・プログラムのブロックの第１の周波数領域表現を複数のフィルタを用いてフィルタリングし、前記メディア・プログラムの第２の周波数領域表現であって、前記第１の周波数領域表現に対して周波数係数の数を減少させている第２の周波数領域表現を作成するための手段と、
セグメントを形成させるように前記第２の周波数領域表現のそれぞれをグループ分けするための手段と、
実質的マッチング・セグメントを探すように、メディア・プログラムのセグメントおよびそれぞれの対応するプログラム識別子をその内部に保存しているようなデータベースを検索するための手段とを備える装置。
【請求項２９】
前記メディア・プログラムの前記第１の周波数領域表現は、前記メディア・プログラムのそれぞれの時間領域セクションと対応する係数からなる複数のブロックを備えており、かつ前記メディア・プログラムの前記第２の周波数領域表現は、前記メディア・プログラムのそれぞれの時間領域セクションと対応する係数からなる複数のブロックを備えている請求項２８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある具体的なメディア・プログラムのコンテンツを識別する技術に関する。
【背景技術】
【０００２】
メディア技術分野では、提示された具体的なメディア・プログラムを自動的に識別することが必要とされている。例えば、ある歌が例えばラジオを介して公然と再生された回数に基づいて支払われる著作権使用料を決定するためには、勿論、その歌が再生された回数を決定することが前もって必要である。大部分の場合において、従来技術では、再生の回数はラジオ局の再生記録に基づいて表集計されている。しかし、これらの記録は手作業で入力されているため、誤りを生じることがありうる。同様に、様々なコマーシャル（ラジオによるかテレビジョンによるかによらない）、ならびにその他のプログラムに関する実際の再生回数の記録を付けておくことが必要である。例えば、多くの俳優は、自分がその中に登場したプログラムが再生された回数に基づいて、いわゆるレシジュアル・ペイメント（ｒｅｓｉｄｕａｌ  ｐａｙｍｅｎｔ）を受け取っている。さらに、特定のプログラムに関して最大の再生回数を指定する具体的な契約上の義務を監視するために、どのプログラムが再生されたのかを判定し記録付けすることが望ましい。
【特許文献１】米国特許第４，６７７，４６６号
【非特許文献１】Ｈａｉｔｓｍａ外、「Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｈａｓｈｉｎｇ  ｆｏｒ  Ｃｏｎｔｅｎｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ」（Ｃｏｎｔｅｎｔ−Ｂａｓｅｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｄｅｘｉｎｇ（ＣＢＭＩ）  Ｃｏｎｆｅｒｅｎｃｅ  ｏｆ  ２００１、  Ｂｒｅｓｃｉａ、Ｉｔａｌｙ）
【特許文献２】米国特許出願第２００２／２１７８４１０号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術では、そのメディア・プログラムのコンテンツがその内部に埋め込まれたまたはこれと直接関連付けしたプログラム・コンテンツを識別している追加の情報を有していた場合には、あるメディア・プログラムのコンテンツがあるチャンネル上である任意の時刻に提示されたことを識別することが可能であった。不都合にも、追加情報が利用可能でないようなバージョンのメディア・プログラムは識別することができない。
【０００４】
１９８７年６月３０日にＬｅｒｔ，Ｊｒ．らに対して公布された米国特許第４，６７７，４６６号は、マルチメディア・コンテンツを識別するための安定条件が検出された後にマルチメディア・コンテンツから抽出したシグネチャを使用するシステムを開示している。こうしたシステムは、識別しようとするメディア・プログラムに追加情報を付け加えることを要求しない。さらに、Ｃｏｎｔｅｎｔ−Ｂａｓｅｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｄｅｘｉｎｇ（ＣＢＭＩ）コンファレンス（２００１  Ｂｒｅｓｃｉａ、Ｉｔａｌｙ）においてＨａｉｔｓｍａらによって公開された「Ｒｏｂｕｓｔ  Ａｕｄｉｏ  Ｈａｓｈｉｎｇ  ｆｏｒ  Ｃｏｎｔｅｎｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ」、ならびにこれに対応すると考えられる米国特許出願第２００２／２１７８４１０号は、識別しようとするメディア・プログラムに追加情報を付け加えることを要求しないハッシングに基づく自動コンテンツ認識システムを開示している。これらのシステムは、今のところまだ、商業的な成功を達成していない。
【課題を解決するための手段】
【０００５】
メディア・プログラムのコンテンツは、そのメディア・プログラムがメディア・プログラムを識別している特徴（feature）をその中から抽出してデータベース内に保存するように事前に適正に処理し終っているという条件下においては、情報をなんら追加することなくそのメディア・プログラムのコンテンツの分析に基づいて非常に高水準の正確さで認識可能であることが分かっている。この操作は、所定の特徴をその中から抽出し、次いでこれを識別されたコンテンツに関連付けされた特徴からなるデータベースと比較できるように、再生しているメディア・プログラムのオーディオ・コンテンツを分析することによって達成されている。データベース内で、再生しているメディア・プログラムの特徴と最も厳密にマッチする特徴を有するようなコンテンツのアイデンティティ(identity)がその再生しているプログラムのアイデンティティとして供給される。
【０００６】
メディア・プログラムの特徴は、本発明の一態様に従って、メディア・プログラムの利用可能な従来の周波数領域バージョンの様々なブロックからデータベース内に保存するために、ａ）係数の数を減少させるように、例えばトライアンギュラ・フィルタ（triangular filter)を用いて周波数領域係数をフィルタリングすること、ｂ）トライアンギュラ・フィルタのＴ個の連続する出力を本発明者らが「セグメント」と呼ぶものにグループ分けすること（Ｔは固定とすることも可変とすることもできる）、ならびにｃ）これらのセグメントの中から所定の基準を満たすようなセグメントを選択すること、によって特徴を抽出することができる。本発明の実施の一形態では、その所定の基準とは、その選択したセグメントが、セグメントが互いに接近しすぎることを防止させる所定の制約に従って最も大きな最小セグメント・エネルギーを有することである。最小セグメント・エネルギーとは、セグメント内において最も小さい値を有するフィルタの出力を意味していることに留意されたい。本発明の別の実施形態では、その所定の基準とは、その選択したセグメントが、セグメントが互いに接近しすぎることを防止させる所定の制約に従って最大のエントロピーを有することである。選択したセグメントは、具体的なメディア・プログラム向けの特徴としてデータベース内に保存される。
【０００７】
本発明の別の態様では、そのトライアンギュラ・フィルタは対数間隔としている。本発明のさらに別の態様では、対数間隔トライアンギュラ・フィルタの出力を正規化することによって、追加的なパフォーマンスの改善を達成することができる。
【０００８】
メディア・プログラムの周波数領域バージョンのブロックは、例えば、１）分析しようとする音響信号をデジタル化すること、２）デジタル化したデータをＮ個のサンプルからなるブロックに分割すること、３）このブロックを例えばＨａｍｍｉｎｇウィンドウ・フィルタなどのフィルタを用いて平滑化すること、４）この平滑化したブロックを例えば高速フーリェ変換（ＦＦＴ）や離散コサイン変換（ＤＣＴ）を用いて周波数領域に変換すること、によって従来の任意の方式で導出することができる。
【０００９】
本発明の原理では、メディア・プログラムのコンテンツは、識別しようとするメディア・プログラムに対してセグメントの作成に使用したのと同じ工程を実行することによって識別されることがある。したがって、識別しようとするメディア・プログラムのコンテンツから作成したセグメントは、検索処理の一部分としてデータベース内に保存した各メディア・プログラムのセグメントとで順次マッチングがとられる。この検索処理を高速化するには、データベースを作成する際にこのデータベース内の各メディア・プログラムのある具体的なセグメントが当該メディア・プログラムに関する主要セグメントであると識別され、さらに識別しようとするメディア・プログラムの各セグメントを先ずそのデータベース内に保存してある当該メディア・コンテンツの主要セグメントと比較することがある。識別しようとするメディア・プログラムのセグメントが所定のトレランス範囲内で主要セグメントとマッチした場合には、マッチング主要セグメントに関連付けされたメディア・プログラムの別のセグメントを、識別しようとするメディア・プログラムの別のセグメントと比較している。比較される各セグメントごとに１つのマッチング・スコアを作成している。本発明の一態様では、そのマッチング・スコアは保存されているセグメントと比較対象のセグメントの間のＭａｈａｌｏｎｏｂｉｓ距離の関数とすることがある。識別しようとするメディアで最良のマッチング・スコアを有するデータベースのプログラムのアイデンティティが、識別しようとするメディア・プログラムのアイデンティティとして使用される。さらに、データベース内に識別しようとするプログラムと十分な相関をもってマッチするメディア・プログラムが見いだされない場合には、識別が不可能となる可能性もある。
【００１０】
本発明の一態様では、メディア・プログラム全体のコンテンツを識別するために分析を必要とするのはメディア・プログラムの一部分だけであるので有利である。しかし、それが部分的に類似していたり同一であったりすることのために同じメディア・プログラムが多重識別されるのを回避するため、本発明の一態様では、重複最小化処理を実行することがある。
【００１１】
同じメディア・プログラムの異なるバージョンを識別できるので有利である。例えば、抑揚の少ない歌をボイスオーバーを伴う同じ歌と区別し、これによってバックグラウンドで歌を使用しているコマーシャルを歌自体だけの場合と明瞭に識別することができる。さらに、同じ歌を用いている様々なコマーシャルも一意に識別することができる。さらに、ある歌の初期のアーティストの上演を同じ歌に関する後におけるアーティストの上演と区別することができる。別の例としては、第１の速度でのコンテンツの記録を同じ記録であるが速度を速くしたり遅くした記録と区別することができることがあり、また速度の上昇と速度の低下の百分率も同様に識別することができる。
【００１２】
メディア・プログラムが「動的ゲイン調整（ｄｙｎａｍｉｃ  ｇａｉｎ  ａｄｊｕｓｔｍｅｎｔ）」としても知られているいわゆる「ダイナミックレンジ圧縮（ｄｙｎａｍｉｃ  ｒａｎｇｅ  ｃｏｍｐｒｅｓｓｉｏｎ）」にかけられている場合であっても、これが適正に認識されるのでさらに有利である。
【００１３】
ビデオとオーディオの合成プログラム（例えば、テレビ・コマーシャル）はそのオーディオ・コンテンツからだけで正確に識別することができるのでさらに一層有利である。
【発明を実施するための最良の形態】
【００１４】
以下は単に本発明の原理を例示したものである。したがって、当業者であれば、本明細書には明瞭に記載されたり図示されたりしてはいないものの、この本発明の原理を具現化すると共にその精神および趣旨の域内に含まれるような様々な仕組みを考案することが可能であることを理解されたい。さらに、本明細書で引用したすべての例および条件付けの言語表現は主として、本発明の原理、ならびに本発明者（ら）が本技術の促進に対して貢献する概念を理解する際に読者を手助けする教示目的とするように明瞭に意図したものであり、またこうしたすべての例および条件付けの言語表現は、引用したこうした具体的な例や条件に限定していないものと解釈されるべきである。さらに、本発明の原理、態様および実施形態、ならびにその具体的な例を引用するための本明細書における記述のすべては、その構造上および機能上の等価物を包含するように意図している。さらに、こうした等価物には、現在すでに知られている等価物と将来開発されるであろう等価物（すなわち、その構造によらず同じ機能を実行するように開発された任意の要素）の両方を含めるように意図している。
【００１５】
したがって、例えば、当業者であれば、本明細書のいずれのブロック図も本発明の原理を具現化している例示的な回路の概念図を表していることを理解されよう。同様に、フローチャート、流れ図、状態遷移図、擬似コード、その他は、いずれもコンピュータ読み取り可能メディア内で実質的に表現されかつこれに従ってコンピュータやプロセッサ（こうしたコンピュータやプロセッサが明示的に図示されているか否かによらない）によって実行されることが可能な様々な処理を表したものであることが理解されよう。
【００１６】
「プロセッサ」の名称を付した機能ブロックを含め図面に示した様々な要素の機能は、専用のハードウェア、ならびに適当なソフトウェアと関連付けしてソフトウェアを実行することができるハードウェアの使用を介して提供することができる。プロセッサによって提供する場合、これらの機能は、単一の専用プロセッサ、単一の共有プロセッサ、あるいはそのうちの幾つかを共有とさせることができるような複数の個別プロセッサによって提供することができる。さらに、「プロセッサ」や「コントローラ」の用語の明示的な使用は、ソフトウェアを実行することができるハードウェアに排他的に言及したものと解釈されるべきではなく、デジタル信号プロセッサ（Ｄigital Ｓignal Ｐrocessor：ＤＳＰ）ハードウェア、ネットワーク・プロセッサ、特定用途向け集積回路（Ａpplication Ｓpecific Ｉntegrated Ｃircuit：ＡＳＩＣ）、現地プログラム可能なゲートアレイ（Ｆield Ｐrogrammable Ｇate Ａrray：ＦＰＧＡ）、ソフトウェアを記憶するための読み出し専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、および不揮発記憶装置（ただし、これらに限らない）を暗黙的に含むことができる。従来式および／またはカスタム式の別のハードウェアを含むこともできる。同様に、図面に示したスイッチはいずれも単に概念上のものである。これらの機能はプログラム・ロジックの動作を介する、専用のロジックを介する、プログラム制御と専用のロジックのやり取りを介する、またさらには手作業による実施が可能であり、具体的な技法は、そのコンテキストからより具体的に理解されるように実現者によって選択可能である。
【００１７】
本特許請求の範囲では、ある特定の機能を実行するための手段として表した任意の要素は、例えば、ａ）当該機能を実行する回路素子の組合せ、または、ｂ）任意の形態をしたソフトウェア、したがって、この機能を実行させる当該ソフトウェアを実行するための適当な回路と組み合わせたファームウェア、マイクロコード、その他を含む形態をしたソフトウェアを含め、当該機能を実行する任意の方法を包含するように意図している。この特許請求の範囲によって規定される本発明は、引用した様々な手段によって提供される機能を本特許請求の範囲が要求する方式で組み合わせかつ併合させているということにある。したがって、出願人は本明細書に表した機能と等価な機能を提供できる任意の手段を企図している。
【００１８】
ソフトウェア・モジュール、あるいは単にソフトウェアであると含意されるようなモジュールは、本明細書において、処理工程および／またはテキスト記述のパフォーマンスを示すフローチャートの要素やその他の要素の任意の組合せとして表すことができる。こうしたモジュールは、明示的または暗黙的に示したハードウェアによって実行することができる。
【００１９】
本明細書に特に明示的に指定しない限り、これらの図面は一律の縮尺に従わずに表されている。
この説明では、図面の別の図内であっても、同じ番号を付した構成要素は同じ構成要素を意味している。
【００２０】
本発明は、あるメディア・プログラムのコンテンツを、識別処理を実施する前に、再生しているコンテンツの内部に埋め込むかこれと関連付けした情報を要求することなく、コンテンツ自体の分析に基づいて認識しているような仕組みである。
【００２１】
図１は、本発明の原理に従って、メディア・プログラムのオーディオ・コンテンツが所定の特徴をその中から抽出するように分析され、次いでこの特徴がそのコンテンツの識別と関連付けして特徴のデータベース内に保存されているような例示的な処理のフローチャートを表している。本発明のシステムによって識別できるオーディオ・コンテンツの各々は、特徴のデータベース内に１つのエントリを有していなければならない。本処理は、新たなオーディオ・コンテンツをそのデータベースに追加しようとする際に、工程１０１において開始される。
【００２２】
その後、工程１０３において、そのメディア・プログラムに関するデジタルの時間領域バージョンの音響信号が取得され、メモリ内に保存される。本発明の実施の一形態では、分析しようとするオーディオ・コンテンツはコンピュータのサウンドカードに供給され、このサウンドカードはこのオーディオ・コンテンツをデジタル化すると共に、これをコンピュータのメモリ内に保存している。次いで、ソフトウェアの制御下でデジタル化バージョンのオーディオ・コンテンツに対してコンピュータが特徴分析を実行することが可能となる。別法として、この分析しようとするオーディオ・コンテンツはすでにデジタル形式でコンピュータに供給できることがあるため、この場合にはデジタル化は省略することができる。しかし、デジタル化バージョンのオーディオ・コンテンツが所定の形式を有することを求めるような分析ソフトウェアの場合、受け取ったデジタルのオーディオ・コンテンツの当該形式への変換が必要となることがある。
【００２３】
そのメディア・プログラムのデジタル・バージョンの音響信号をメモリ内に保存した後で、工程１０５において、長さがＮ（Ｎは例えば、１０２４とすることがある）のブロックにそのサンプルをグループ分けしている。任意選択の工程１０７では、これらのブロックをフィルタリングしてその音響信号を平滑化している。平滑化をすると、周波数領域へのブロックの別の変換に悪影響を及ぼすことがあるようなグループ分けの影響を軽減させることができるので有利である。利用可能なフィルタの１つはＨａｍｍｉｎｇウィンドウ・フィルタであるが、当業者であれば別のフィルタ（例えば、Ｈａｎｎｉｎｇウィンドウ）を利用することもできることが容易に理解されよう。
【００２４】
各ブロックのフィルタリングしたサンプルはそれぞれ、工程１０９において、周波数領域係数に変換され、これによって音響信号からなる第１の周波数領域表現が作成されている。この処理は、例えばよく知られている高速フーリェ変換（ＦＦＴ）を用いることによって達成することができる。当業者であれば、例えば、離散コサイン変換（ＤＣＴ）を利用することによって、別の技法を利用して時間領域のサンプルを周波数領域係数に変換できることが容易に理解されよう。さらに、デジタル・バージョンのオーディオ・プログラムの全体をメモリ内に保存するのではなく、当該ブロックに関して周波数領域への変換が実行されるようにするためには、任意のある時点でそのブロック長さに対応する時間的長さまでだけを保存すればよい。
【００２５】
その後、工程１１１において、各ブロックの周波数係数を、例えば所定の数（Ｍ）の対数間隔トライアンギュラ・フィルタを用いることによって係数の数を減少させるようにフィルタリングし、これによって音響信号の第２の周波数領域表現を作成している。そのオーディオ・コンテンツが音楽を含むような用途では、対数和係数(logarithmic additive factor)を１／１２としてクラシックの西洋音階の音符が互いに対して対数的に離間している（すなわち、ｆ１がある音符の周波数でありかつｆ２が連続した次に高い音符の周波数であるとして、ｌｏｇ２ｆ２＝ｌｏｇ２ｆ１＋１／１２）ため、対数間隔トライアンギュラ・フィルタを利用することができる。
【００２６】
図２は、Ｍ個の対数間隔トライアンギュラ・フィルタ２０１−１から２０１−Ｍまでの伝達関数の図である。指摘したように、音楽の例では、各トライアンギュラ・フィルタの中心周波数を１つの音符に対応させることが有用となりうる。動作上は、各トライアンギュラ・フィルタの周波数領域範囲内にある係数にその係数の周波数位置におけるそのフィルタのトライアングルの値を乗算し、さらに各トライアンギュラ・フィルタの周波数領域範囲内で得られた各積を合計している。この合計は各フィルタの出力として供給される。幾つかの係数は、複数のフィルタの出力に与えることがあることに留意されたい。さらに、各フィルタの領域は、周波数空間内でこれの直前にあるフィルタの領域の中心位置の周波数で開始させることが好ましい。各ブロック向けに利用されるフィルタの所定の数Ｍは、実施の一形態では３０としている。各フィルタは、当該フィルタに入力された係数から導出して得られた単一の係数値をその出力として供給している。Ｍ個のフィルタのすべてに関する出力は、一括して取り扱う場合に、フレームと呼んでいる。時間的に連続するＦ個（例えば、１２個）のフレームを一緒のグループとすることによって、セグメントと呼ぶ１つのグループが形成される。１セグメントあたり１２個のフレームを使用すると、１１，０２５サンプル毎秒の元のプログラムの約１秒に相当するようなセグメントとなる。１１，０２５サンプル毎秒はオーディオ品質の観点からすると比較的低いものであるが、本明細書で開示した技法を用いて極めて正確な認識を実現しかつリアルタイムの認識処理を可能とさせるには十分であることに留意されたい。
【００２７】
図１に戻ると、本発明の一態様では、順次式で作成した各セグメントは、任意選択の工程１１３において、Ｍａｈａｌｏｎｏｂｉｓ距離に基づいて将来のマッチング演算を容易にするように設計したスキームである「先行時間（ｐｒｅｃｅｄｉｎｇ−ｔｉｍｅ）」規格化と呼ぶ正規化を用いて正規化されている。先行時間規格化では、減少させた各係数は、これから、直前のオーディオの所定の長さ（例えば、Ｓ秒）に対応するフレーム数を有するウィンドウに関して減少させたすべての係数の平均を減算し、さらにこの得られた差を、先行するＳ秒を構成するすべてのフレームに関して計算した標準偏差で割り算することによって正規化されている。数学的には、この処理は次式で表すことができる。
【数２】
2005049878.tif 000003
上式において、
【数３】
2005049878.tif 000004
および
【数４】
2005049878.tif 000005
【００２８】
ｘは、その出力が正規化を受けている現在のトライアンギュラ・フィルタの出力であり、
［ｘ］は、現在のトライアンギュラ・フィルタの正規化値であり、
μは、直前のＳ秒のオーディオに対応するフレーム数を有するウィンドウにわたる、減少させた係数のすべてに関する平均であり、
Ｑは、直前のＳ秒のオーディオにおけるトライアンギュラ・フィルタ出力の数であり、
ｔは、現在の時刻であり、
σは、計算された標準偏差である。
【００２９】
正規化された各出力は次いで、工程１１５において、よく知られている「Ｌ２」規格化、すなわちｉおよびｊが当該フレーム内に組み込まれた正規化済みのフィルタ出力のうちの適当な出力を指示するために使用される指標であるとして、
【数５】
2005049878.tif 000006
を用いてさらに正規化される。これらのセグメントは、作成されるに従って、一時的に保存される。
【００３０】
工程１１７において、この一時的に保存したセグメントからＺ個のセグメントが選択される。本発明の実施の一形態では、選択したＺ個のセグメントは、選択したセグメントが少なくと１つのユーザ指定の最小時間ギャップをその間に有するものとする所定の制約に従って最も大きな最小セグメント・エネルギーを有するようなセグメントである。この最小セグメント・エネルギーとは、そのセグメントの範囲内で最も小さい値を有するフィルタ出力を意味していることに留意されたい。別の実施形態では、この所定の基準は、セグメントが互いに接近しすぎることを防止させる所定の制約に従って選択したセグメントが最大のエントロピーを有することである。エントロピーを計測する一方法は、
【数６】
2005049878.tif 000007
（ここで、ｘｉ，ｊはそのセグメント内の第ｉ番目のフレームの第ｊ番目のフィルタの出力であり、Ｆは１つのセグメントあたりのフレーム数であり、Ｍはフィルタの数である）によっている。
【００３１】
選択されたセグメントは、これらのセグメントが音響信号の同じ時間間隔にすべてがかたまらないように互いに接近しすぎることを防ぐことが好ましい。選択されたセグメント間の時間間隔も保存しておき、そのプログラム内における各セグメントの時間的な位置が分かるようにしている。
【００３２】
セグメントが互いに対して近づきすぎないようにするという所定の基準を用いることは、データベース内に保存するためのセグメントの選択が不可能であるような時間である時間的ギャップが存在することを示唆する。このため本発明の一態様では、その中からセグメントの選択が可能であるように、これらのギャップ間にある限定された時間間隔だけを生じさせている。これらの限定された時間間隔の各々によって、選択しようとするセグメントの検索を実行する期間であるような「検索ウィンドウ」が形成される。したがって、メディア・プログラムは、例えば、図４に示すように追加的なギャップをその最後に備えた「ギャップ・検索ウィンドウ」の反復構造を有するように示すことができる。実行される検索によって、当該検索ウィンドウ内のセグメントのうちで最も大きな最小セグメント・エネルギーを有するセグメントが選択される。したがって、選択した２つの隣接セグメント（例えば、セグメント４０１）の間の実際の時間間隔は、隣接する２つの検索ウィンドウ内での選択したセグメントの位置、ならびにこれらの検索ウィンドウ間のユーザ指定の最小時間ギャップに応じて異なる。
【００３３】
セグメントの数Ｚは次のようにして決定される。
【数７】
2005049878.tif 000008
上式において
Ｎｔはそのメディア・プログラム内の総フレーム数であり、
Ｎｓは１セグメントあたりのフレーム数（例えば、１２）であり、
ＭＩＮ＿ＧＡＰ＿ＳＥＣＯＮＤＳはギャップの最小長さを秒単位で表したユーザ選択の値であり、そのプログラム・コンテンツが歌でありかつ各セグメントが約１秒の長さである場合に有用な値は５秒である。そのプログラム・コンテンツがコマーシャル向けなど比較的短い（例えば、３０秒である）場合には、ＭＩＮ＿ＧＡＰ＿ＳＥＣＯＮＤＳに関して１秒が有用な値となりうる、
Ｎｇ＝最小ギャップ１つあたりのフレーム数、すなわち、ＭＩＮ＿ＧＡＰ＿ＳＥＣＯＮＤＳにサンプリングレートを乗算しかつ１フレームあたりのサンプル数で割り算した値であり、
Ｎｗ＝１つの検索ウィンドウ内のフレーム数である（実現者によって、２Ｎｇ＋Ｎｓとなるように選択される）。
【００３４】
計算したＺの値がユーザによって選択されたセグメントの最大許容数Ｎｍより大きい場合には、Ｚはセグメントの最大許容数を上限としている。ギャップの数Ｇは、Ｇ＝Ｚ＋１に従って決定することができる。
【００３５】
Ｎｍの値は、その具体的な用途に応じて実現者によって選択可能である。各セグメントが約１秒の音楽に対応するような歌などの音楽コンテンツに関して使用される場合には、Ｎｍの値は３０が有利であることが分かっている。プログラムの長さが音楽コンテンツに関する場合と比べてかなり短いことが典型的であるようなコマーシャルのオーディオ、またはオーディオ・コンテンツに関して使用する場合には、例えばそのプログラムをその全体で３０秒間だけとすることがあり、１０〜１５の範囲にあるＮｍの値をより短い長さのセグメントと共に利用することがあり、例えばセグメントの長さは２分の１秒または１０分の２秒とすることがある。
【００３６】
より大きなＺの値を生じさせるようなパラメータを選択すると、その正確さは増大することになるが、そのアプリケーションをより低速で動作させることになり、かつ／またはより大きな計算能力を要求することになるということを、実現者は考慮しておく必要がある。
【００３７】
工程１１９において、Ｚ個の選択したセグメントが、データベース・ファイル内に保存される。Ｚ個の選択したセグメントは、プログラムの名称と関連付けして保存されており、手作業で入力することが可能であり、また例えばよく知られているインターネットベースのＣＤＤＢデータベースを用いて電子工学的に取得することが可能である。保存したセグメント数Ｚを「主要」セグメントと呼んでいる。
【００３８】
次いで本処理は工程１２１において終了となる。
【００３９】
図３は、本発明の原理に従って、分析しようとするメディア・プログラムのセグメントを取得してその中から所定の特徴を抽出し、次いでこの特徴が例えば図６の処理を用いて、様々なプログラムのコンテンツの識別と関連付けしてデータベース内に保存されている様々なプログラムの特徴と比較されているような例示的な処理を表している。図３の処理は、例えば放送のモニタリングの場合では無期限に、また例えばある特定のファイルのコンテンツを分析している場合では分析しようとするメディア・プログラムのうち処理をしていない残りの部分が存在しないことが確認されるまで、のいずれかによって連続して実行される。本処理は、識別処理を開始する際に工程３０１において開始される。
【００４０】
その後、工程３０３において、その識別しようとするメディア・プログラムに関するデジタルの時間領域バージョンの音響信号が取得され、メモリ内に保存される。本発明の実施の一形態では、分析しようとするオーディオ・コンテンツはコンピュータのサウンドカードに供給され、このサウンドカードはこのオーディオ・コンテンツをデジタル化すると共に、これをコンピュータのメモリ内に保存している。次いで、ソフトウェアの制御下でデジタル化バージョンのオーディオ・コンテンツに対してコンピュータが特徴分析を実行することが可能となる。別法として、この分析しようとするオーディオ・コンテンツはすでにデジタル形式でコンピュータに供給できることがあるため、この場合にはデジタル化は省略することができる。しかし、デジタル化バージョンのオーディオ・コンテンツが所定の形式を有することを求めるような分析ソフトウェアの場合、受け取ったデジタル形式のオーディオ・コンテンツの当該形式への変換が必要となることがある。
【００４１】
そのメディア・プログラムのデジタル・バージョンの音響信号をメモリ内に保存した後で、工程３０５において、長さがＮ（Ｎは例えば、１０２４とすることがある）のブロックにそのサンプルをグループ分けしている。任意選択の工程３０７では、これらのブロックをフィルタリングしてその音響信号を平滑化している。平滑化をすると、周波数領域へのブロックの別の変換に悪影響を及ぼすことがあるようなグループ分けの影響を軽減させることができるので有利である。利用可能なフィルタの１つはＨａｍｍｉｎｇウィンドウ・フィルタであるが、当業者であれば別のフィルタ（例えば、Ｈａｎｎｉｎｇウィンドウ）を利用することもできることが容易に理解されよう。各ブロックのフィルタリングしたサンプルはそれぞれ、工程３０９において、周波数領域係数に変換され、これによって音響信号からなる第１の周波数領域表現が作成されている。この処理は、例えばよく知られている高速フーリェ変換（ＦＦＴ）を用いることによって達成することができる。当業者であれば、例えば、離散コサイン変換（ＤＣＴ）を利用することによって、別の技法を利用して時間領域のサンプルを周波数領域係数に変換できることが容易に理解されよう。さらに、オーディオ・プログラムの全体をデジタル形式で保存するのではなく、そのブロック長に対応する時間的長さまでだけを保存すればよい。これを実行することは、大部分の実現者にとって好ましいものとなる可能性が高い。
【００４２】
その後、工程３１１において、各ブロックの周波数係数を、例えば所定の数（Ｍ）の対数間隔トライアンギュラ・フィルタを用いることによって係数の数を減少させるようにフィルタリングし、これによって音響信号の第２の周波数領域表現を作成している。利用するフィルタの数Ｍは、データベース内に保存されるセグメントを作成する際に使用した数と一致させるべきである。本発明の実施の一形態では、利用されるフィルタの数Ｍは３０としている。各フィルタは、当該フィルタに入力された係数から導出して得られた単一の係数値をその出力として供給している。上で指摘したように、Ｍ個のフィルタのすべてに関する出力は一括して取り扱う場合にフレームと呼んでいる。時間的に連続するＦ個（例えば、１２個）のフレームを一緒のグループとすることによって、セグメントと呼ぶ１つのグループが形成される。１２個のフレームを使用すると、１１，０２５サンプル毎秒の元のプログラムの約１秒に相当するような１つのセグメントとなる。
【００４３】
本発明の一態様では、トライアンギュラ・フィルタによって出力として供給される減少させた係数を、任意選択の工程３１３において、先行時間規格化を用いて正規化する。次いで、正規化された各出力を工程３１５において、よく知られている「Ｌ２」規格化を用いてさらに正規化する。このセグメントは、比較処理で使用するために工程３１７においてバッファ内に保存される。マッチを宣言するには少なくともＺ個のセグメントをデータベース内のエントリのＺ個のセグメントとマッチングさせなければならないため、保存を要する最小の数のセグメントは少なくともＺ個となる。しかし、上で指摘したように、データベース内で選択されたセグメントはこれらの間に時間ギャップを有することがあるため、追加的なセグメントを保存することが望ましい。本発明の実施の一形態では、歌の識別に関しては、３０分相当のセグメントを保存するだけで十分であることが分かっている。このことは、例えば、主要セグメントがマッチングしているときなどマッチング処理のある点では、そのマッチング処理はセグメント取得処理と比べてより長い時間を要する、すなわちマッチング処理がセグメント取得処理と比べて遅れることがあり、また一方例えば主要セグメントがマッチングしていない別の点では、マッチング処理がセグメント取得処理と比べてより高速となる。したがって、追いつける機会をマッチング処理に与えるように十分に大きなバッファを有することが最善である。
【００４４】
図６は、本発明の原理に従って、そのメディア・プログラムのオーディオ・コンテンツを、様々なプログラムのコンテンツの識別と関連付けしてデータベース内に保存されている様々なプログラムの特徴と比較できるようにした例示的な処理のフローチャートを表している。
【００４５】
マッチングさせようとするプログラムの少なくとも１つのセグメントが生成されかつバッファ内に保存され終ると、マッチングさせようとするプログラムのセグメントとデータベース内に保存されているプログラムのセグメントとの間のユークリッド距離に基づき、検証付きスライディング・ウィンドウ（ｓｌｉｄｉｎｇ−ｗｉｎｄｏｗ−ｗｉｔｈ−ｖｅｒｉｆｉｃａｔｉｏｎ）比較処理を用いてマッチング処理が実施される。一般的に言って、マッチングさせようとするプログラムのうちバッファ内に保存されているセグメントで、主要セグメントとまったくマッチングを有していないセグメントを、データベース内の各主要セグメントに対してマッチングさせている。そのセグメント値の間のユークリッド距離をある所定のレンジ範囲内とさせることによって、マッチングさせようとするプログラム・セグメントとマッチングする任意の主要セグメントによって、その関連するプログラムがマーク付けされると共に、マーク付けされたプログラムに対してだけ後続の比較が実施されることになる。
【００４６】
より具体的には、本処理は、工程６１５において開始され、この工程では、識別しようとするメディア・プログラムのうちのこれまでに未比較（ｐｒｅｖｉｏｕｓｌｙ−ｎｏｔ−ｃｏｍｐａｒｅｄ）の次のセグメントが取得される。したがって、工程６１７において、この比較で使用される幾つかの指標が初期化される。詳細には、ａ）データベース内のある具体的なプログラムを指示する指標ｉは１に初期化され、またｂ）プログラムｉおよび識別しようとするメディア・プログラム内でどのセグメントが指示されているかの判定に使用されるカウンタｊは、そのデータベース内における主要セグメントの位置に対応する各プログラムごとのセグメント数にあたるＺとするように初期化されている。したがって、本発明の実施の一形態では、マッチングが存在するようにさせるためには、識別しようとするメディア・プログラムのうちの少なくともＺ個のセグメントを処理しなければならない。次に、工程６１９において、すべてのプログラムに対して、これらがさらに比較を行う候補であることを示すようなマーク付けを行う。
【００４７】
条件分岐点６２５は、識別しようとするメディア・プログラムのうち現在指示されているセグメントと、データベース内において現在指示されている候補プログラムＰｉとの間の距離関数が所定のしきい値未満であるか否かを決定するための判定を行う。例えば、この判定では、距離関数ｆ（Ｓ'ｊ−Ｓｊ＿（Ｐｉ））がεｊ＿未満であるか否かを決定している。
上式において、
Ｓｊ＿（Ｐｉ）は、識別しようとするメディア・プログラムに対応する可能性があるようなデータベース内の現在の候補プログラムＰｉの保存されている第ｊ番目のセグメントであり、
Ｓ'ｊは、識別しようとするメディア・プログラムのうち、データベース内にある現在の候補プログラムＰｉの保存されている第ｊ番目のセグメントと時間的に対応するセグメント（識別しようとするプログラムのうちのｊ＝Ｚのセグメントがデータベース内にある現在の候補プログラムＰｉの主要セグメントに対応すると仮定する）であり、そして、
εｊ＿は、データベース内にある現在の候補プログラムＰｉのセグメントｊに関して実験的に計算されたしきい値（εｊ＿を決定する方法については本明細書の以下でさらに記載することにする）である。
【００４８】
識別しようとするメディア・プログラムの再生速度の変更が認められていない場合、Ｓ'ｊは、主要セグメントに対するマッチング、ならびにデータベース内に保存されている現在の候補プログラムＰｉのセグメント間の時間間隔を記述しているタイミング情報から直接決定することができる。しかし、識別しようとするメディア・プログラムの再生速度の変更が認められている場合、こうした再生速度の変更によって識別しようとするプログラム内において主要セグメントの識別される位置が不正確となることがあり、またそのタイミング情報が識別しようとするメディア・プログラムのタイミングと正確に対応しないことがある。したがって、それぞれを識別しようとするメディア・プログラムのセグメントと対応させて識別するような追加的な検索手順が必要となることがある。このためには、最初に識別した位置の周りに１つのスライディング・ウィンドウを画定し、距離計算を識別しようとするメディア・プログラムのセグメントに関して反復してこのウィンドウ内の各位置に対して計算し、さらに最も小さい距離が得られた位置をそのセグメントの位置として選択する。速度を変更する量は、各セグメントに対する検索によって決定したオフセットから、次式に従って計算することができることが有利である。
【数８】
2005049878.tif 000009
上式において、
ｓｐｅｅｄ％は、再生速度変更の百分率（負の値は速度低下を意味し、正の数は速度上昇を意味している）であり、
Δは、実際の位置とそのデータベース内の指定により予測される位置との差（Δが０より大きいとは、識別しようとするメディア・プログラム内のセグメントに到達するための時間が、対応するメディア・プログラムをデータベース内に保存されているそのセグメントに関して処理した時点と比較してより長くなっているため速度低下を含意しており、またΔが０未満であるとは、識別しようとするメディア・プログラム内のセグメントに到達するための時間が、対応するメディア・プログラムをデータベース内に保存されているそのセグメントに関して処理した時点と比較してより短くなっているため、速度上昇を含意している）であり、そして、
ＥｘｐｅｃｔｅｄＬｏｃａｔｉｏｎは、そのデータベース内の指定により予測されるセグメントの位置である。
【００４９】
工程１１３において「先行時間」規格化("preceding-time" normalization)を利用しており、またＳ'ｊおよびＳｊ＿のそれぞれが多次元空間内の１つのベクトルと見なせるような本発明の実施形態では、Ｍａｈａｌｏｎｏｂｉｓ距離を利用すると有利である。本発明の別の実施形態では、ユークリッド距離を利用することがある。
【００５０】
工程６２５における判定結果がＮＯの場合には、制御は工程６２９に進み、データベース内の候補プログラムをさらに比較する対象と見なすべきであることを示すマーク付けを解除する。したがって、その候補プログラムはこれ以上さらに比較する対象と見なされない。次いで制御は、工程６３１に進む。工程６２５における判定結果がＹＥＳの場合には、制御は直接工程６３１に進む。したがって、データベース内の現在の候補プログラムをさらに比較する対象と見なすべきであることを示すマーク付けは設定されたままとし、その候補プログラムはさらに比較する対象と見なされることになる。
【００５１】
条件分岐点６３１は、未判定のマーク付け候補プログラムが残っているか否かを決定するための判定を行う。工程６３１における判定結果がＹＥＳの場合には、未判定のマーク付け候補プログラムがまだ存在していることを示しているため、制御は工程６３３に進み、ここで指標ｉを、データベース内の次にマーク付けされた候補プログラムに設定する。次いで制御は、工程６２５に戻り、本処理は上述のようにして継続される。工程６３１における判定結果がＮＯの場合には、前にマーク付けした候補プログラムのすべてを判定し終えたことを示すため、制御は条件分岐点６３５に進み、ここで、候補プログラムでマーク付けされたままのプログラムがあるか否かを決定するための判定が行われる。工程６３５における判定結果がＹＥＳの場合には、制御は工程６３７に進む。工程６３５における判定結果がＮＯの場合には、制御は工程６１５に戻り、識別しようとするメディア・プログラムのうちこれまでに未処理の次のセグメントが取得される。
【００５２】
工程６３７において、ｊの値を、現在の候補プログラムに関する判定しようとする次のセグメントを指示するように、例えば現在の候補プログラム関して保存されているセグメント・タイミング情報に基づいて更新（例えば、減分）している。工程６３９では、残っている第１のマーク付け候補プログラムを指示するようにｉを再初期化している。条件分岐点６４１は、そのセグメントのすべてを判定し終えたか否か（例えば、ｊ＝０であるか否か）を決定するための判定を行う。工程６４１における判定結果がＮＯの場合には、判定すべき追加的なセグメントが残っていることを示しているため、制御は工程６２５に戻る。工程６４１における判定結果がＹＥＳの場合には、セグメントのすべてを判定し終えたことを示しているため、制御は工程６４３に進み、ここで、マーク付けされたままの各候補プログラムに関するマッチング・スコアが決定される。本発明の実施の一形態では、そのマッチング・スコアは、例えば次式のプログラムのマッチング・スコア
【数９】
2005049878.tif 000010
などの平均距離を計算することによって決定され、さらにこのスコアは工程６４５においてデータベース内に保存される。
【００５３】
この時点において、識別しようとするプログラムがデータベースのうち最良マッチング・スコアを有する（例えば、平均距離が最小である）候補であることを宣言することが可能であり、このようにすると妥当な結果が得られることになる。次いで本処理は、工程６１５において再び継続されることになる。しかし、本発明の一態様では、本処理を所定の期間（例えば、８秒間）にわたって反復しており、かつ所定の期間中に各反復ごとに正常に工程６４５に到達した各候補のスコアを記録しており、かつ所定の期間にわたって最良マッチング・スコアを達成した候補が識別しようとするプログラムであると宣言していることが知られている。
【００５４】
さらに、同じプログラムが１回だけしか再生されていないのに、複数回再生されたと誤って認識される確率（例えばコーラスなどそのプログラムの実質的部分が反復されているときに前述の処理をした場合に発生する可能性がある）を最小限にするために、図５に示すような本発明の一態様に従った追加の例示的な処理を実施することがある。
【００５５】
本処理は、識別しようとするプログラムが、データベース内に保存されているある具体的なプログラムであると識別し終えた後に、すなわち、そのプログラムが所定の期間にわたって十分に良いマッチング・スコアを有している場合に、工程５０１において開始となる。次に、工程５０３において、識別しようとするプログラムのうちデータベース内に保存されているプログラムの主要セグメントに対応するセグメントの時間を変数Ｔ０内に保存する。したがって、データベースから取り出した際に識別しようとするプログラムについて最初に決定された識別Ｐ０は、工程５０５においてスタック内に保存される。次いで、次のプログラムＰ１の識別は、工程５０７において、例えば、図３の処理を実行することによって決定される。
【００５６】
条件分岐点５０９は、次に識別したプログラム内のセグメントの時間がＴ０と比べて所定のしきい値の量ｔｄだけ大きいか否かを決定するための判定を行う。この所定のしきい値は、データベース内に保存されている最長のプログラムの長さ、ある具体的なメディア・プログラム内の重複バージョンのメディア・プログラムであると明瞭に識別される程度に十分に接近している反復間の最大時間、ならびに識別の報告の遅延を受容できる時間長に関する考慮に基づいてユーザによって設定される。歌を識別するためのある応用例では、ｔｄ＝１２０秒という値が有用であることが分かった。ｔｄを、データベース内の長さが最大のプログラムの長さとなるように設定すると、重複識別の排除が改善されることになる、ただしこうすることによって識別の報告に大部分の時間が費やされる。
【００５７】
工程５０９における判定結果がＹＥＳの場合には、新たに識別したプログラムを直前に識別したプログラムの一部とすべきでなくさせるような十分に長い時間が経過したことを示しているため、制御は工程５１１に進み、ここで、直前に識別したプログラムＰ０の識別がスタックから取り出され、直前のプログラムの識別として報告される。次いで本処理は工程５１３において終了となる。
【００５８】
工程５０９における判定結果がＮＯの場合には、まだ十分に長い時間が経過しておらず、新たに識別したプログラムがまだ直前に識別したプログラムの一部である可能性があることを示しているため、制御は工程５１５に進み、ここで、Ｐ０とＰ１の間のオーバーラップ・スコアが計算される。オーバーラップ・スコアは、Ｐ０とＰ１によってどれくらいの長さの時間が共有されているかの指示値であり、次式のようにして決定される。
オーバーラップ・スコア＝（ｔｅｎｄ−ｔｂｅｇｉｎ）／（Ｐ１の終了時刻−Ｐ１の開始時刻）
上式において、
ｔｅｎｄは、ｍｉｎ（Ｐ０、Ｐ１の終了時刻）であり、かつ
ｔｂｅｇｉｎは、ｍａｘ（Ｐ０、Ｐ１の開始時刻）である。
【００５９】
条件分岐点５１７は、そのオーバーラップ・スコアが所定のしきい値Ｒｏより大きいか否かを決定するための判定を行う。Ｒｏの値は、多種多様なプログラムを用いてシステムを動作させ、生じる重複した識別の数が最も小さくなるようなＲｏの値を選択することによって実験的に決定することもできる。歌に関して良好なパフォーマンスを与えるようなＲｏの値の１つは０．５であることが分かっている。
【００６０】
工程５１７における判定結果がＮＯの場合には、オーバーラップがないか、最大でもオーバーラップが比較的小さく、したがってＰ１がＰ０と実際に区別されたメディア・プログラムとなる可能性が高いことを示しているため、制御は工程５１１に進み、本処理は上述のようにして継続される。工程５１７における判定結果がＹＥＳの場合には、Ｐ０とＰ１の間にかなり大きなオーバーラップが存在していることを示しているため、制御は条件分岐点５１９に進み、ここで、プログラムＰ０およびＰ１に関するマッチング・スコアが比較される。より具体的には、条件分岐点５１９は、Ｐ１に関するマッチング・スコアがＰ０に関するマッチング・スコアより大きいか否かを決定するための判定を行う。工程５１９における判定結果がＮＯの場合には、Ｐ１に関するマッチング・スコアがＰ０に関するマッチング・スコア未満であることを示しているため、制御は工程５２１に進み、ここで、Ｐ１は棄却される。次いで制御は工程５１３に進み、本処理は終了となる。工程５１９における判定結果がＹＥＳの場合には、Ｐ１に関するマッチング・スコアがＰ０に関するマッチング・スコアより大きいことを示しているため、制御は工程５２３に進み、ここで、Ｐ０がスタックから取り出されて棄却され、またしたがって、工程５２５において、Ｐ０の代わりにＰ１をスタック上に押し入れている。次いで制御は工程５１３に進み、本処理は終了となる。
【００６１】
本発明の処理を使用すると、同じメディア・プログラムの異なるバージョンを区別することができることが有利である。例えば、抑揚の少ない歌をボイスオーバーを伴う同じ歌と区別し、これによってバックグラウンドで歌を使用しているコマーシャルを歌自体だけの場合と明瞭に識別することができる。さらに、同じ歌を用いている様々なコマーシャルも一意に識別することができる。さらに、ある歌の初期のアーティストの上演を同じ歌に関する後におけるアーティストの上演と区別することができる。別の例としては、第１の速度でのコンテンツの記録を同じ記録であるが速度を速くしたり遅くした記録と区別することができることがあり、また速度の上昇と速度の低下の百分率も同様に識別することができる。
【００６２】
メディア・プログラムが「動的ゲイン調整」としても知られているいわゆる「ダイナミックレンジ圧縮」にかけられている場合であっても、これが適正に認識できるのでさらに有利である。
さらに、データベース内に識別しようとするプログラムと十分な相関をもってマッチするメディアが見いだされない場合は、識別を不可能とさせることができる。
【００６３】
本発明の実施の一形態では、１０９曲のカントリーソングを用いて粗いしきい値（ｌｏｏｓｅ  ｔｈｒｅｓｈｏｌｄ）を実験的に決定した。より具体的には、１０９曲の歌の各々を、例えば、図１の処理に従って、セグメントをその曲名と関連付けしてデータベース内に保存するように処理した。次いで、これら１０９曲の歌をシステムに入力として供給し、再生している歌と、システム内に記録した各歌とでセグメント間のユークリッド距離を決定した、すなわち、図３の方法および図６の工程６４３までを実行するが粗いしきい値εｊ＿を非常に大きな数に設定することによって、あらゆる候補が常にマッチングするようにした。
【００６４】
これらの距離を見いだした後、各セグメントごとにその粗いしきい値を、次式を決定することによって見いだした。
【数１０】
2005049878.tif 000011
上式において、μｊは、セグメントｊに関して計算された距離の平均値であり、またσｊはセグメントｊに関して計算された距離の標準偏差である。
【００６５】
本発明の実施の一形態では、再生している歌とシステム内に記録されている各歌とでセグメント間のユークリッド距離を決定するために、１０９曲の歌をシステムに入力として供給したときに、これらの歌は識別しようとする実際の歌が供給されるのと同じメディアを介して供給されている。例えば、識別しようとする歌がラジオを通して放送された歌である場合、粗いしきい値の決定に使用するために供給する歌をラジオを通して供給している。
【００６６】
その最初の計算の後では、システム・パラメータ（例えば、ＦＦＴの大きさ、１セグメントあたりのフレーム数、サンプリングレート、トライアンギュラ・フィルタの数、その他）の幾つかを変更した場合に再度計算が必要となるのは粗いしきい値だけとなる。しかし、データベースのコンテンツを変更した場合には、しきい値の再計算が必要とならないようにすべきである。例えば、そのしきい値は最初はカントリー音楽向けに計算していても、その他の様々な音楽ジャンルに等しく適用可能であることが分かっている。
【図面の簡単な説明】
【００６７】
【図１】本発明の原理に従って、メディア・プログラムのオーディオ・コンテンツが所定の特徴をその中から抽出するために分析され、次いでこの特徴をそのコンテンツの識別と関連付けして特徴のデータベース内に保存することによっている例示的な処理のフローチャートである。
【図２】Ｍ個の対数間隔トライアンギュラ・フィルタの伝達関数を表した図である。
【図３】本発明の原理に従って、メディア・プログラムのオーディオ・コンテンツが所定の特徴をその中から抽出するために分析され、次いでこの特徴をそのプログラムのコンテンツの識別と関連付けしてデータベース内に保存されている様々なプログラムの特徴と比較することによっている例示的な処理のフローチャートである。
【図４】その最後に追加的なギャップを備えている「ギャップ・検索ウィンドウ」の概念的反復構造を表した図である。
【図５】本発明の一態様に従った、そのプログラムが１回再生されたときに同じプログラムが複数回再生されたと誤って認識する確率を最小限にするための例示的な処理を表した図である。
【図６】本発明の原理に従って、メディア・プログラムのオーディオ・コンテンツを、そのプログラムのコンテンツの識別と関連付けしてデータベース内に保存されている様々なプログラムの特徴と比較することによっている例示的な処理のフローチャートである。
【図１】
2005049878.tif 000013
【図２】
2005049878.tif 000014
【図３】
2005049878.tif 000015
【図４】
2005049878.tif 000016
【図５】
2005049878.tif 000017
【図６】
2005049878.tif 000018