(57)【要約】オーディオフィンガープリントを採取することは、１片のオーディオのオーディオサンプルを得ること、オーディオサンプルの周波数表現を生成すること、周波数表現の周波数帯域において増加及び減少エネルギー領域を特定すること、及び１片のオーディオの特徴のハッシュを生成すること含む。特徴のそれぞれのハッシュは、それぞれのタイムウィンドウに現れる特定されたエネルギー領域の部分に対応する。それぞれの特徴は、それぞれの時間ウィンドウ中に現れるエネルギー領域の周波数帯域、それぞれの時間ウィンドウ中に現れるエネルギー領域が増加エネルギー領域であるか、又はそれぞれの時間ウィンドウ中に現れるエネルギー領域が減少エネルギー領域であるか、及びそれぞれの時間ウィンドウ中に現れるエネルギー領域の配置を表す情報をエンコードする数値として定義される。
2019519869.tif 000002
【特許請求の範囲】
【請求項１】
オーディオフィンガープリントを採取する方法であって、
１片のオーディオのオーディオサンプルを得ることであって、前記オーディオサンプルのそれぞれは、特定の時刻に対応する、オーディオサンプルを得ること、
前記オーディオサンプルの周波数表現を生成することであって、前記周波数表現は、周波数帯域に分割されている、周波数表現を生成すること、
前記周波数帯域においてエネルギー領域を特定することであって、前記エネルギー領域のそれぞれは、増加エネルギー領域及び減少エネルギー領域のうちの１つであり、増加エネルギー領域は、時間領域の開始時刻から終了時刻まででオーディオエネルギーが増加する時間領域として定義され、減少エネルギー領域は、時間領域の開始時刻から終了時刻まででオーディオエネルギーが減少する時間領域として定義される、エネルギー領域を特定すること、
タイムウィンドウ内に現れる、特定されたエネルギー領域の部分を分析することによって、前記１片のオーディオの特徴のハッシュを生成することであって、特徴のそれぞれのハッシュは、それぞれのタイムウィンドウに現れる特定されたエネルギー領域の部分に対応し、それぞれの特徴は、それぞれの時間ウィンドウ中に現れるエネルギー領域の周波数帯域、それぞれの時間ウィンドウ中に現れるエネルギー領域が増加エネルギー領域であるか、又はそれぞれの時間ウィンドウ中に現れるエネルギー領域が減少エネルギー領域であるか、及びそれぞれの時間ウィンドウ中に現れるエネルギー領域の配置を表す情報をエンコードする数値として定義され、それぞれの時間ウィンドウ中に現れるエネルギー領域の配置は、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ後で終了するか、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ中で終了するか、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ後で終了するか、及び
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ中で終了するか
のうちの１つに対応する、特徴のハッシュを生成すること、及び
特徴のハッシュのそれぞれを特定の時刻と共に記憶すること
を含む方法。
【請求項２】
特徴のそれぞれのハッシュを、特徴のMinHash表現又はMinHash値に変換すること、及び
前記MinHash値を特定の時刻と共に記憶すること
を含む、請求項１に記載の方法。
【請求項３】
特徴のそれぞれのハッシュを、１００個のMinHash値を有する、特徴のMinHash表現に変換すること、
前記１００個のMinHash値をシャードサイズ５でシャードすることによって、５個のMinHashシャード値の２０個のロウ又はグループを得ること、
ロウ又はグループ内の前記５個のMinHashシャード値を６４ビットの数に組み合わせることによって、２０個の６４ビットの数を有するフィンガープリントハッシュを得ること、及び
前記フィンガープリントハッシュを特定の時刻と共に記憶すること
を含む、請求項１に記載の方法。
【請求項４】
前記１片のオーディオの前記オーディオサンプルを得ることは、
前記１片のオーディオを、４０９６個のサンプルのサンプリングウィンドウサイズ及び３１／３２のウィンドウオーバーラップを用いて8kHzでサンプリングすることを含む
請求項１に記載の方法。
【請求項５】
前記周波数帯域は、200Hzから始まる第１周波数帯域から3300Hzで終わる第４４周波数帯域までの範囲にわたる４４個の周波数帯域を含む、請求項１に記載の方法。
【請求項６】
前記周波数帯域は、200Hzから始まる第１周波数帯域から3300Hzで終わる第４４周波数帯域まで、帯域幅が対数的に減少する、４４個の周波数帯域を含む、請求項１に記載の方法。
【請求項７】
前記タイムウィンドウのそれぞれは、1000ミリ秒のウィンドウサイズ及び950ミリ秒のウィンドウオーバーラップを有する、請求項１に記載の方法。
【請求項８】
オーディオフィンガープリントを採取するシステムであって、
１片のオーディオのオーディオサンプルを得るよう構成されたサンプラであって、前記オーディオサンプルのそれぞれは、特定の時刻に対応する、サンプラ、
前記オーディオサンプルを、前記オーディオサンプルの周波数表現に変換するよう構成された変換器であって、前記周波数表現は、周波数帯域に分割されている、変換器、
前記周波数帯域においてエネルギー領域を特定するよう構成されたエネルギーストリーマーであって、前記エネルギー領域のそれぞれは、増加エネルギー領域及び減少エネルギー領域のうちの１つであり、増加エネルギー領域は、時間領域の開始時刻から終了時刻まででオーディオエネルギーが増加する時間領域として定義され、減少エネルギー領域は、時間領域の開始時刻から終了時刻まででオーディオエネルギーが減少する時間領域として定義される、エネルギーストリーマー、
タイムウィンドウ内に現れる、特定されたエネルギー領域の部分を分析することによって、前記１片のオーディオの特徴のハッシュを生成するよう構成されたエネルギーハッシャーであって、特徴のそれぞれのハッシュは、それぞれのタイムウィンドウに現れる特定されたエネルギー領域の部分に対応し、それぞれの特徴は、それぞれの時間ウィンドウ中に現れるエネルギー領域の周波数帯域、それぞれの時間ウィンドウ中に現れるエネルギー領域が増加エネルギー領域であるか、又はそれぞれの時間ウィンドウ中に現れるエネルギー領域が減少エネルギー領域であるか、及びそれぞれの時間ウィンドウ中に現れるエネルギー領域の配置を表す情報をエンコードする数値として定義され、それぞれの時間ウィンドウ中に現れるエネルギー領域の配置は、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ後で終了するか、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ中で終了するか、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ後で終了するか、及び
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ中で終了するか
のうちの１つに対応する、エネルギーハッシャー、及び
特徴のハッシュのそれぞれを特定の時刻と共に記憶するよう構成された非一時的記憶媒体又はもう１つの非一時的記憶媒体
を備えるシステム。
【請求項９】
特徴のそれぞれのハッシュを、特徴のMinHash表現又はMinHash値に変換するよう構成されたMinHashハッシャー、及び
前記MinHash値を特定の時刻と共に記憶するよう構成された非一時的記憶媒体又はもう１つの非一時的記憶媒体
を備える、請求項８に記載のシステム。
【請求項１０】
特徴のそれぞれのハッシュを、１００個のMinHash値を有する、特徴のMinHash表現に変換するよう構成されたMinHashハッシャー、
前記１００個のMinHash値をシャードサイズ５でシャードすることによって、５個のMinHashシャード値の２０個のロウ又はグループを得るよう構成されたシャーダ、
ロウ又はグループ内の前記５個のMinHashシャード値を６４ビットの数に組み合わせることによって、２０個の６４ビットの数を有するフィンガープリントハッシュを得るよう構成されたコンバイナ、及び
前記フィンガープリントハッシュを特定の時刻と共に記憶すること
を備える、請求項８に記載のシステム。
【請求項１１】
前記１片のオーディオを、４０９６個のサンプルのサンプリングウィンドウサイズ及び３１／３２のウィンドウオーバーラップを用いて8kHzでサンプリングすることによって、前記１片のオーディオの前記オーディオサンプルを得るよう構成されたサンプラを備える請求項８に記載のシステム。
【請求項１２】
前記周波数帯域は、200Hzから始まる第１周波数帯域から3300Hzで終わる第４４周波数帯域までの範囲にわたる４４個の周波数帯域を含む、請求項８に記載のシステム。
【請求項１３】
前記周波数帯域は、200Hzから始まる第１周波数帯域から3300Hzで終わる第４４周波数帯域まで、帯域幅が対数的に減少する、４４個の周波数帯域を含む、請求項８に記載のシステム。
【請求項１４】
前記タイムウィンドウのそれぞれは、1000ミリ秒のウィンドウサイズ及び950ミリ秒のウィンドウオーバーラップを有する、請求項８に記載のシステム。
【請求項１５】
オーディオフィンガープリントを採取する装置であって、
プロセッサ、及び
非一時的コンピュータ読み取り可能な媒体
を備え、
前記プロセッサは、１片のオーディオのオーディオサンプルを受け取り、前記オーディオサンプルを処理し、前記処理されたオーディオサンプルを、前記非一時的コンピュータ読み取り可能な媒体に記憶された、処理されたオーディオサンプルと比較することによって、前記１片のオーディオの特定又は同期のうちの少なくとも１つを行うよう構成され、前記オーディオサンプルのそれぞれは、特定の時刻に対応し、
前記プロセッサは、
前記オーディオサンプルを、前記オーディオサンプルの周波数表現に変換することであって、前記周波数表現は、周波数帯域に分割されている、周波数表現に変換すること、
前記周波数帯域においてエネルギー領域を特定することであって、前記エネルギー領域のそれぞれは、増加エネルギー領域及び減少エネルギー領域のうちの１つであり、増加エネルギー領域は、時間領域の開始時刻から終了時刻まででオーディオエネルギーが増加する時間領域として定義され、減少エネルギー領域は、時間領域の開始時刻から終了時刻まででオーディオエネルギーが減少する時間領域として定義される、エネルギー領域を特定すること、
タイムウィンドウ内に現れる、特定されたエネルギー領域の部分を分析することによって、前記１片のオーディオの特徴のハッシュを生成することであって、特徴のそれぞれのハッシュは、それぞれのタイムウィンドウに現れる特定されたエネルギー領域の部分に対応し、それぞれの特徴は、それぞれの時間ウィンドウ中に現れるエネルギー領域の周波数帯域、それぞれの時間ウィンドウ中に現れるエネルギー領域が増加エネルギー領域であるか、又はそれぞれの時間ウィンドウ中に現れるエネルギー領域が減少エネルギー領域であるか、及びそれぞれの時間ウィンドウ中に現れるエネルギー領域の配置を表す情報をエンコードする数値として定義され、それぞれの時間ウィンドウ中に現れるエネルギー領域の配置は、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ後で終了するか、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ中で終了するか、
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ後で終了するか、及び
それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ中で終了するか
のうちの１つに対応する、特徴のハッシュを生成すること
によって、前記オーディオサンプルを処理するよう構成される
装置。
【請求項１６】
前記プロセッサは、特徴のそれぞれのハッシュを、特徴のMinHash表現又はMinHash値に変換するよう構成され、
非一時的記憶媒体又はもう１つの非一時的記憶媒体は、前記MinHash値及び特定の時刻を記憶するよう構成される
請求項１５に記載の装置。
【請求項１７】
前記プロセッサは、
特徴のそれぞれのハッシュを、１００個のMinHash値を有する、特徴のMinHash表現に変換し、
前記１００個のMinHash値をシャードサイズ５でシャードすることによって、５個のMinHashシャード値の２０個のロウ又はグループを得て、
ロウ又はグループ内の前記５個のMinHashシャード値を６４ビットの数に組み合わせることによって、２０個の６４ビットの数を有するフィンガープリントハッシュを得る
よう構成され、
前記非一時的記憶媒体又はもう１つの非一時的記憶媒体は、前記フィンガープリントハッシュ及び特定の時刻を記憶するよう構成される
請求項１５に記載の装置。
【請求項１８】
前記プロセッサは、
前記１片のオーディオを、４０９６個のサンプルのサンプリングウィンドウサイズ及び３１／３２のウィンドウオーバーラップを用いて8kHzでサンプリングすることによって、前記１片のオーディオの前記オーディオサンプルを得るよう構成される
請求項１５に記載の装置。
【請求項１９】
前記周波数帯域は、200Hzから始まる第１周波数帯域から3300Hzで終わる第４４周波数帯域までの範囲にわたる４４個の周波数帯域を含む、請求項１５に記載の装置。
【請求項２０】
前記周波数帯域は、200Hzから始まる第１周波数帯域から3300Hzで終わる第４４周波数帯域まで、帯域幅が対数的に減少する、４４個の周波数帯域を含む、請求項１５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、大まかには、オーディオコンテンツ認識（ＡＣＲ）に関し、より具体的には、オーディオエネルギー特性に基づいてオーディオフィンガープリントを生成することに関する。
【背景技術】
【０００２】
オーディオコンテンツのリアルタイム認識は、さまざまなアプリケーションでますます用いられるようになってきている。例えば、未知の曲の名前、アーチスト、及び／又はアルバムが特定され得て、ある特定の映画がそのサウンドトラックから特定され得る。ＡＣＲのアルゴリズムは、音響フィンガープリンティングを含み、これは、オーディオ（音楽、映画等）のセグメントを分析し、オーディオの特徴からフィンガープリントとして知られるものを生成することによって機能する。１つのオーディオコンテンツを認識するためには、その１つのオーディオから生成されたオーディオフィンガープリントが、レファレンスオーディオフィンガープリントのデータベースと比較される。
【０００３】
今日、広く用いられている音響フィンガープリンティングアルゴリズムがいくつか存在する。よく知られている例は、音響フィンガープリンティングを利用することによってユーザが聴いている曲を特定するShazaamのアプリである。他の例としては、Gracenote及びMusicBrainzがある。
【０００４】
しかし従来は、オーディオコンテンツ認識は、従来の手法は、コンテンツのタイミング、すなわちコンテンツの全体の時間に対する現在時刻の位置を検出又はアラインする能力を提供してこなかったという点で制限があった。従来のオーディオコンテンツ認識の他の限界には、フィンガープリントの相対的に大きなサイズ、コンテンツ認識プロセスの相対的複雑さ、及びコンテンツ認識において結果として生じる遅延がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示は、これらの問題に対応するための方法、装置、及びシステムを提供する。本開示は、オーディオコンテンツ認識アルゴリズム、特に、コンテンツの全体の時間に対して、オーディオコンテンツにおいて位置を検出することを可能にするフィンガープリント生成アルゴリズムを記載する。例えば、ここで開示された本発明は、１つのコンテンツのアイデンティティ（すなわち視聴されている映画がGoodfellasであること）だけでなく、映画が現在、3:30のマークの所にあることも特定し得る。さらに開示された本発明は、比較的小さいサイズのフィンガープリント及び比較的簡単なコンテンツ認識プロセスを提供することによって、従来技術と比較したときにコンテンツ認識の遅延が少なくなるようにして、従来のオーディオコンテンツ認識の限界にも対処する。
【０００６】
添付の図面は、明細書に組み込まれて、その一部を構成するが、本発明の局面のさまざまな例示的実施形態を示す、さまざまな例示的システム、方法等を示す。図面中の図示された要素の境界（例えば四角形、四角形のグループ、又は他の形状）は、境界の１つの例を表すことが理解されよう。当業者は、１つの要素が複数の要素として設計されたり、複数の要素が１つの要素として設計されたりし得ることを理解するだろう。他の要素の内部要素として示される要素が、外部要素として実現されてもよく、その逆も可能である。さらに要素は、正しい縮尺では図示されていない。
【図面の簡単な説明】
【０００７】
【図１】図１は、オーディオフィンガープリンティングのための例示的システムのブロック図を示す。
【図２】図２は、図１のオーディオフィンガープリンティングのためのシステムの詳細なブロック図を示す。
【図２Ａ】図２Ａは、例示的サンプリング処理を示す。
【図２Ｂ】図２Ｂは、映画の一部についての例示的エネルギー領域の図式的表現を示す。
【図２Ｃ】図２Ｃは、例示的エネルギーハッシャーの図式的表現を示す。
【図２Ｄ】図２Ｄは、例示的ハッシュ、シャードMinHash、及びフィンガープリントハッシュの図式的表現を示す。
【図３】図３は、オーディオコンテンツ認識のコンテキストにおける図１のオーディオフィンガープリンティングのためのシステムを示す。
【図４】図４は、オーディオフィンガープリンティングのための例示的方法のフロー図である。
【図５】図５は、オーディオフィンガープリンティングのための例示的機器又は装置のブロック図である。
【発明を実施するための形態】
【０００８】
図１は、オーディオコンテンツ認識のための例示的システム１のブロック図を示す。大まかには、システム１は、オーディオのセグメントを分析し、そのオーディオの音響特性からフィンガープリントを生成することによって動作する。システム１は、例えば、ユーザが見ているかもしれないＴＶ番組、映画、YouTubeビデオのようなコンテンツを特定し、さらには、そのコンテンツの全体の時間に対する位置を検出するのに有用である。よって例えば、システム１は、１つのコンテンツの識別情報（identity）（すなわち見られている映画がグッドフェローズであること）だけでなく、その映画が現在は３：３０の標識にあることを特定し得る。
【０００９】
システム１は、テレビ、コンピュータ、タブレット等のような標準デバイス１５で再生されているかもしれないオーディオ１０を受け取るマイク５を含み得る。システム１は、マイク５を用いてオーディオ１０を「聴いて」、オーディオ１０’というバージョンをプロセッサ２０に提供し、プロセッサ２０は、オーディオ１０’を処理してフィンガープリントを作り、このフィンガープリントを、記憶媒体又はデータベース２５に以前に記憶されたフィンガープリントと比較する。もしプロセッサ２０がコンテンツマッチを検出する（すなわち新たに受け取られたオーディオ１０’が、以前に記憶されたフィンガープリントと一致する）なら、プロセッサ２０は、マッチ（match）３０を出力し、これはコンテンツＩＤ（例えば曲又は映画）及び上記グッドフェローズの例のようなコンテンツ内での時刻を含み得る。このようにしてシステム１は、オーディオ１０’を処理し、マッチ３０を出力し、このマッチ３０は、コンテンツＩＤ及びそのコンテンツの開始に対するタイムオフセット（time offset）を含み得る。
【００１０】
音響フィンガープリンティングアルゴリズムには２つの主要な要素があり、エンコーディングプロセス及び認識プロセスである。
【００１１】
エンコーディングプロセスは、典型的には、マスターフィンガープリント（master fingerprints、ＭＦＰ）を生成するために、ソース又はマスターコンテンツを用いて事前に行われる。ＭＦＰは、記憶媒体又はデータベース２５に記憶されるフィンガープリントであり、後で、例えば、リアルタイムオーディオと比較されることによって、認識プロセスの間にマッチを得るよう試みられる。
【００１２】
認識プロセスは、典型的には、リアルタイムで、又はリアルタイムに近いやり方でなされる。システム１は、マイク５を用いて、システム１の環境からオーディオ１０を受け取る。プロセッサ２０は、受け取られたオーディオ１０’を処理して、受け取られたフィンガープリント（received fingerprints、ＲＦＰ）を生成し、プロセッサ２５は、それからこれをＭＦＰと比較し、マッチが存在するかを見る。認識プロセスは、さらに２つの主要な要素に分解され得る。すなわち（１）ＲＦＰ生成（これにはＭＦＰを生成する時に用いられるのと同じアルゴリズムが関与する）、及び（２）データベースルックアップである。オーディオ中には大量のデータが存在するために、生成されたフィンガープリント（fingerprints）は、データベースルックアップの間の高速な検索をサポートできるよう十分にコンパクトでなければならない。
【００１３】
フィンガープリント生成は、オーディオ１０’（マイク５から、又はＭＰ４ファイルのような形式で記録された状態で受け取られる）の入力ストリームを取り込み、それを処理してそのフィンガープリントを取得するプロセスである。ＭＦＰ又はＲＦＰのいずれであっても、フィンガープリント生成のためには同じアルゴリズムが用いられる。
【００１４】
図２は、図１のシステム１の詳細なブロック図を示す。上述のようにシステム１は、環境からオーディオ１０を受け取り、オーディオ信号１０’を出力するためにマイク５を含み得る。代替として、システム１は、録音されたオーディオからのような他の方法を通じてオーディオ信号１０’を受け取り得る。
【００１５】
システム１は、オーディオ信号１０’をサンプリングするサンプラ３０も含み得る。図２Ａは、サンプラ３０の例示的サンプリングプロセスを示す。図２Ａの実施形態では、サンプラ３０は、４０９６個のサンプルのウィンドウサイズ及び３１／３２のウィンドウオーバーラップを用いて、オーディオ信号１０’を８ｋＨｚのサンプルレートでサンプリングする。他の実施形態では、サンプラ３０は、８ｋＨｚのサンプルレート、４０９６個のサンプルのウィンドウサイズ、及び３１／３２のウィンドウオーバーラップとは異なる、サンプルレート、ウィンドウサイズ、及びウィンドウオーバーラップでオーディオ信号１０’をサンプリングする。サンプラ３０の出力３５は、オーディオサンプルの一連のチャンク（すなわち図２Ａのチャンク１、チャンク２等）であり、それぞれのチャンクは、ウィンドウサイズである。
【００１６】
図２のシステム１は、サンプラ３０の出力３５を受け取るＦＦＴ４０も含み得る。オーディオサンプルのそれぞれのチャンクは、ＦＦＴ４０を用いて処理がなされ、オーディオサンプルの周波数／ビン表現（frequency/bin representation）を生成する。これはスペクトログラムと呼ばれることもある。ＦＦＴ４０の出力４５は、これらのスペクトログラム、及びそれぞれのスペクトログラムに対応するタイムオフセット（すなわちそれぞれが起きた時刻）を含む。
【００１７】
システム１は、スペクトログラムの周波数ビンつまり帯域におけるエネルギー領域を特定するエネルギーストリーマー５０も含み得る。例えば、オーディオ信号１０は、２００Ｈｚの正弦波であると仮定しよう。この正弦波が再生されており、我々はプレーヤーのボリュームを上げていくとする。２００ＨｚでのＦＦＴビンの大きさは、時間とともに増す。エネルギーストリーマー５０は、ＦＦＴ出力４５のある範囲の周波数をモニタすることで、増加するエネルギーの期間及び減少するエネルギーの期間を特定する。増加する又は減少するエネルギーのこれらの期間は、エネルギー領域と呼ばれる。上の２００Ｈｚの例では、エネルギー領域（すなわち増加するエネルギー領域）は、２００Ｈｚについて特定されるが、これは、ボリュームが増していく時にそのエネルギーが増加していったからである。もし我々がボリュームを下げるなら、エネルギー領域、つまり減少するエネルギー領域がやはり生成されることになろう。
【００１８】
しかしもし上の例で、オーディオ信号１０のボリュームが高音量及び低音量の間で連続的に振動したなら、エネルギー領域は、おそらくは生成されないだろうが、これは、エネルギーストリーマー５０が、増加するエネルギーの期間と、減少するエネルギーの期間とを探すからである。そのような振動するエネルギー期間は、開始から終了までで平均すれば増加も減少しないので、ゼロに近い正味のエネルギー変化を有し得る。そのような振動するエネルギー期間は、エネルギー領域を生成せず、無視される。
【００１９】
ある実施形態では、エネルギーストリーマー５０がモニタする周波数範囲は、２００Ｈｚ及び３，３００Ｈｚの間である。サンプラ３０がオーディオ１０’を８，０００Ｈｚでサンプリングする上の実施形態では、ＦＦＴ４０の出力４５でのＦＦＴチャンクは、０Ｈｚ及び４，０００Ｈｚの間の周波数ビンを含むが、これは、サンプリングは、いつも少なくとも半分の正確さの損失を招くからである。たとえオーディオ１０が８，０００Ｈｚでサンプリングされても、我々はそのサンプリングレートの半分の周波数（つまり４，０００Ｈｚ）しか正確には得られない。これはナイキスト・シャノンのサンプリング定理と呼ばれる。他の実施形態では、エネルギーストリーマー５０がモニタする周波数範囲は、２００Ｈｚ及び３，３００Ｈｚの間、以外である。
【００２０】
ＦＦＴ４０の出力４５における周波数表現つまりスペクトログラムは、周波数帯域に分割され得る。例えば、帯域１は、２００Ｈｚ及び３５０Ｈｚの間の周波数を表現し得て、帯域２は、３５０Ｈｚ−４５０Ｈｚを表現し得る、等のようになる。留意すべきは、人間の耳は直線的には聞こえず、対数的に聞こえるということである。このため、ある実施形態では、それぞれの帯域の大きさつまり帯域幅は、対数的に減少し得て、低い周波数の帯域（我々の例では２００Ｈｚから始まる）がいちばん大きな帯域であり、高い周波数の帯域（我々の例では３，３００Ｈｚまで）が最も小さい帯域である。
【００２１】
ある実施形態では、エネルギーストリーマー５０は、２００Ｈｚ−３，３００Ｈｚの範囲で４４個のエネルギー帯域を利用し、これらは対数的に大きさが減少する。エネルギーストリーマー５０が特定するそれぞれのエネルギー領域は、帯域番号を有し、例えば、第１の帯域（すなわち帯域１）は２００Ｈｚから始まり、最後の帯域（すなわち帯域４４）は３，３００Ｈｚで終わる。他の実施形態では、エネルギーストリーマー５０は、４４個より多いか、又は少ないエネルギー帯域を利用し、エネルギー帯域は、２００Ｈｚ−３，３００Ｈｚ以外の範囲にあり得る。
【００２２】
図２Ｂは、映画の一部についての例示的エネルギー領域５５の視覚的表現を示す。それぞれのエネルギー領域は、その周波数帯域、オーディオシーケンスの全体に対するその領域の開始／終了時刻、及びエネルギーが増加していたか又は減少していたかを記録する（tracks）。図２Ｂの例では、それぞれの領域は、その領域が増加しているエネルギー領域であることを示す上向き矢印、又はその領域が減少しているエネルギー領域であることを示す下向き矢印のいずれかを含む。例えば、左に現れる第１領域は、周波数帯域２０にあり、時刻０．０２秒において始まり、時刻０．４６秒において終わり、そしてそれは増加しているエネルギー領域である。
【００２３】
要約すれば、エネルギーストリーマー５０は、ＦＦＴ４０の出力４５におけるＦＦＴチャンクを処理することによって、それぞれの周波数帯域内で増加しているエネルギーの期間、及び減少しているエネルギーの期間を特定する。特定された増加している及び減少しているエネルギー領域５５は、より大きいオーディオストリーム内での周波数帯域番号及び開始／終了時刻（すなわちタイムオフセット）有する。
【００２４】
図２に戻り、システム１は、エネルギーハッシャー６０も含み得るが、これはオーディオサンプルの特徴のハッシュを、エネルギーストリーマー５０によって特定されたエネルギー領域５５に基づいて生成する。エネルギーハッシャー６０は、エネルギー領域のストリーム５５に対して、サンプラ３０がオーディオ信号１０’に対して動作するのとほぼ同じやり方で動作する。エネルギーハッシャー６０は、ウィンドウサイズプロパティ及びウィンドウオーバーラッププロパティも有するが、それはここでは、オーディオ信号１０’のエンコードされた形であるエネルギー領域を処理している。ある実施形態では、エネルギーハッシャー６０は、１０００ミリ秒のウィンドウサイズ及び９５０ミリ秒のウィンドウオーバーラップを有し、これは、エネルギーハッシャーのウィンドウが、パスごとに時間にして５０ミリ秒ずつ前に移動することを意味する。他の実施形態では、エネルギーハッシャー６０は、１０００ミリ秒とは異なるウィンドウサイズ、又は９５０ミリ秒とは異なるウィンドウオーバーラップを有する。
【００２５】
エネルギーハッシャー６０は、タイムウィンドウ内に現れる特定されたエネルギー領域の部分を分析することによって、１点（piece）のオーディオの特徴のハッシュ（数値データ）を生成する。ハッシュ（すなわちハッシャー６０の出力６４）は、将来の識別（identification）のためにデータベースに記憶されてもよく（ＭＦＰ）、又は既にデータベースにあるハッシュと比較されてもよい（ＲＦＰ）。
【００２６】
図２Ｃは、例示的エネルギーハッシャー６０の視覚的表現を示す。エネルギーハッシャー６０は、スライディングウィンドウ６２を用いる。エネルギーハッシャー６０は、ウィンドウ６２を移動させ（例えば６２ａから６２ｂへ）、ウィンドウ内に入るエネルギー領域の部分を分析する。エネルギーハッシャー６０は、現在のウィンドウ内に入るエネルギー領域に基づいて特徴（features）（互いに異なる数値）を作る。
【００２７】
それぞれのエネルギー領域について作られ得る特徴には８つの種類がある。生成されたそれぞれの特徴は、ａ）各時間ウィンドウ内に現れるエネルギー領域の周波数帯域、ｂ）各時間ウィンドウ内に現れるエネルギー領域が増加しているエネルギー領域であるか、又は各時間ウィンドウ内に現れるエネルギー領域が減少しているエネルギー領域であるか、及びｃ）各時間ウィンドウに対するエネルギー領域の配置を表す情報をエンコードする数値である。
【００２８】
各時間ウィンドウ６２内に現れるエネルギー領域の配置は、以下のうちの１つに対応する。
【００２９】
・ウィンドウの前に開始し、ウィンドウの後に終了する――これは、ウィンドウ６２に関して、このエネルギー領域は、ウィンドウの開始の前に開始し、ウィンドウの終了の後に終了することを意味する。つまり換言すれば、このエネルギー領域は、現在のウィンドウ６２を完全に包含する。
【００３０】
・ウィンドウの前に開始し、ウィンドウの中で終了する――これは、現在のウィンドウ６２に関して、このエネルギー領域は、ウィンドウの開始の前に開始するが、ウィンドウの終了の前に終了することを意味する。
【００３１】
・ウィンドウの中で開始し、ウィンドウの後に終了する――これは、このエネルギー領域が、ウィンドウタイムフレームの中で開始するが、ウィンドウの終了の後で終了することを意味する。
【００３２】
・ウィンドウの中で開始し、ウィンドウの中で終了する――これは、このエネルギー領域が、ウィンドウタイムフレームの中に完全に含まれることを意味する。
【００３３】
それぞれのウィンドウ６２は、典型的には多くの特徴を有することになる。それぞれの特徴は、帯域番号、エネルギー方向（すなわち増加しているか又は減少しているか）、及び現在のウィンドウ６２に対するエネルギー領域の配置の表現である数である。
【００３４】
それぞれのウィンドウ６２は、ハッシュ６４（ウィンドウ６２ａ及び６２ｂにそれぞれ対応する６４ａ及び６４ｂとして示される）を生み、ハッシュ６４は、ウィンドウ内のエネルギー領域からの一連の特徴数及びタイミング情報（0:05s及び1:35s）である。共通のテーマは、サンプリングレベルからハッシングレベルに至るまで、タイミング情報を首尾一貫して受け渡しをすること（consistent passing along）である。
【００３５】
ハッシュ６４は、将来の識別のためにデータベースに記憶されてもよく（ＭＦＰ）、既にデータベースに存在するハッシュに対して比較されてもよい（ＲＦＰ）。
【００３６】
しかし図２の実施形態では、エネルギー特徴のこれらのハッシュ６４は、最終的なデータベース表現ではない。システム１は、MinHash７０も含み得る。MinHashは、サーチエンジンが大量のテキストデータを小さい量のスペースで表現できるようにするために、もともと開発された（Broder, Andrei Z. (1997), "On the resemblance and containment of documents", Compression and Complexity of Sequences: Proceedings, Positano, Amalfitan Coast, Salerno, Italy, June 11-13, 1997 (PDF), IEEE, pp. 21-29, doi:10.1109/SEQUEN.1997.666900, and Broder, Andrei Z.; Charikar, Moses; Frieze, Alan M.; Mitzenmacher, Michael (1998), "Min-wise independent permutations", Proc. 30th ACM Symposium on Theory of Computing (STOC '98), New York, NY, USA: Association for Computing Machinery, pp. 327-336を参照。これらの各々は、その全体がここで参照によって援用される。）。本願発明者は、オーディオ特徴の膨大な量も、MinHashを用いて低減され得ることを実験を通じて発見した。
【００３７】
MinHash７０は、ハッシュ６４中の大量の特徴を小さいセットの数に圧縮する。MinHash７０をハッシュ６４に適用することで、他の一連の数、つまりMinHash値７２が得られる。例えばハッシュ６４は、２５０個の特徴を含み得るが、これは、その対応するウィンドウ６２内に現れていた特徴の個数である。しかしMinHash７０をハッシュ６４に適用した後には、常に一定の数（例えば１００個）のMinHash値７２が存在する。
【００３８】
MinHash値７２は、将来の識別のためにデータベースに記憶されてもよく（ＭＦＰ）、既にデータベースに存在するMinHash値に対して比較されてもよい（ＲＦＰ）。
【００３９】
しかし図２の実施形態では、MinHash値７２は、最終的なデータベース表現ではない。システム１は、シャーダ（sharder）７５も含み得る。シャーディング（sharding）は、MinHash値７２をロウ及びカラムにグループ分けすることである。図２Ｄの例に示されるように、シャーダ７５は、例えば、シャードサイズ５を用いてMinHash値７２をシャードし得て、このとき、それぞれが５個の値を有する２０個のグループを有するシャードハッシュ７７が生じる。シャードハッシュ７７の第１グループは、MinHash値１−５を有し、第２グループは、MinHash値６−１０を有し、以下同様に続く。
【００４０】
シャードハッシュ７７は、将来の識別のためにデータベースに記憶されてもよく（ＭＦＰ）、既にデータベースに存在するシャードハッシュに対して比較されてもよい（ＲＦＰ）。
【００４１】
しかし図２の実施形態では、シャードハッシュ７７は、最終的なデータベース表現ではない。システム１は、シャードハッシュ７７の任意の与えられたグループについて、５個のシャード値を結合して単一の６４ビットの数、シングル（shingle）を得る、コンバイナ８０も含み得る。図２Ｄの例に示されるように、シャードハッシュ７７中の第１シャードグループは、値１００，１０１，１０２，１０５，１０６を有する。コンバイナ８０は、これら数を結合して単一の６４ビットの整数100102105106をデータのロスなしに作り得る。この結果は、タイムウィンドウ内のエネルギー領域からの６４ビットのシングル２０個及びタイミング情報を含むフィンガープリントハッシュ８５である。
【００４２】
よってフィンガープリントハッシュ８５は、コンテンツＩＤ（オリジナルのコンテンツに割り当てられた値）、２０個の数（シングル）、及びタイムオフセット（コンテンツのどこにサンプリングされた部分又はハッシュがもともと位置していたかを特定する）を含む。フィンガープリントハッシュ８５は、将来の識別（ＭＦＰ）のためにデータベース２５中に記憶され得る。たいていのデータベースシステムは、数値に基づいて検索するために高度に最適化されており、我々は、比較の個数を大幅に低減することによって、比較的小さいサイズのフィンガープリントを提供し、それにより、従来の手法と比較したときにコンテンツ認識における遅延を低減させた。
【００４３】
図２の実施形態は、ＭＦＰ生成の状況におけるシステム１を示す。図３は、比較又は一致判定のためのＲＦＰ生成の状況におけるシステム１を示す。この状況において、システム１は、携帯電話、タブレット、コンピュータ等のような装置に組み込まれ得る。図３は、図２と同じ要素を示し、加えて比較器１００を含む。
【００４４】
比較又は一致判定のためにＲＦＰ生成の状況下で動作中において、システム１は、装置のマイク５を開き、上述の設定（8,000 kHz等）を用いてオーディオを解読し始める。システム１は、ＭＦＰを作るときにフィンガープリント８５を生成したのと全く同じやり方で、このオーディオからフィンガープリント９５を生成する。唯一の差異は、フィンガープリント９５の時刻が、マイクを開いた開始からの相対タイムオフセットであることである。この状況では、システム１は、ＭＦＰの場合になされるように、例えば曲又は映画の開始に対する現在のタイミングを知るすべはない。よって生成された第１フィンガープリント９５は、0:00の時刻オフセットを有することになり、１分後には、仮にオーディオが現在、番組開始から13分経ったところであったとしても、オフセットは1:00になる。システム１は、ある番組がいつ始まったかの概念を持たず、いつ録音が始まったかを知るだけであるので、常にオフセット時刻は、生成されたフィンガープリント９５についてはいつＲＦＰが作られたかに対して相対的である。
【００４５】
オーディオは、装置のマイク５から連続的に記録されていて、フィンガープリント９５が生成されている。これら受け取られたフィンガープリント（ＲＦＰ）９５は、識別が起こる場合には較器１００に送られる。識別の最初のステップは、データベースルックアップであり得る。例えば、ＳＱＬクエリは、以下のように表されえる。
【００４６】
select * from Hashes where ShardValue1 = <UploadedShardValue1> OR ShardValue2 = <UploadedShardValue2> … OR ShardValue20 = <UploadedShardValue20>
比較器１００は、データベース中で、シャードロウint64値（shard row int64 values）のうちの１つが一致する、任意のハッシュを探す。シャードの実際のロウ番号は、重要であるかもしれないことに注意されたい。例えば、比較器１００は、ソースハッシュのシャードロウ１を、記録されたハッシュのシャードロウ１の値と比較し得る。しかしこれは、十分ではないかもしれないが、それは、これが大きなデータベース中の５００個のマッチを生むかもしれないからである。代わりに、比較器１００は、それぞれのアップロードされたフィンガープリント９５から生じるマッチを追跡し得る。
【００４７】
よって例えば、データベースが以下のように表されているとしよう（非常に簡略された例である）。
【００４８】
【表１】
2019519869.tif 000003
【００４９】
そして２つのフィンガープリント９５がアップロードされていると仮定しよう。すなわち第１フィンガープリントが時刻0:00においてアップロードされ、第２フィンガープリントが時刻0:01においてアップロードされるとする。第１フィンガープリントは、0:10においてGoodfellasと一致し、0:48においてMad Menと一致する。比較器１００は、これを追跡する。ここで、第２フィンガープリントが、0:11においてGoodfellasと一致し、0:45においてMad Menと一致するとしよう。アップロードされたフィンガープリント９５の間の時間差は、１秒（0:00及び0:01）である。Goodfellasについては、我々は２つのマッチを得て、それぞれのマッチの間の時間の差異は、１秒（0:10及び0:11）である。Mad Menについても２つのマッチが存在する（0:48及び0:45）が、時間差は、マイナス３秒である（第２マッチが第１マッチよりも時間について先に来た）。ここで我々は真のマッチを得ているが、これはGoodfellasについての２つのマッチの間の時間差と、アップロードされた２つのフィンガープリントとが、時間において揃うからである。比較器１００は、このタイプの時間整合による一致判断を利用して、識別が正確であることを確実にする。アップロードされたフィンガープリントについてのデータベースマッチは、マッチが有効であると考えられるためには、時間においてアラインしなければならない。
【００５０】
比較器１００は、マッチが生じたとここで報告し得る。マッチ３０は、例えばGoodfellasのコンテンツＩＤ、及び時刻、例えば0:11（最新の正確な時刻マッチ）を含む。この点で、システム１を組み込む装置は、そのコンテンツＩＤを利用して、なんらかの種類のユーザエクスペリエンスを提供する。これの例としては、0:11におけるGoodfellasについてのメタデータでウェブサービスに対して問い合わせをし、それから例えば、スクリーンに映っているキャラクタ又は俳優の名前を表示することがある。
【００５１】
例示的方法は、図４のフロー図を参照すればよりよく理解されるだろう。説明の簡潔さのために、図示された方法は、一連のブロックとして示され、記述されているが、示され、記述されているものと比べて、あるブロックが異なる順序で実行され、又は、他のブロックと同時に実行されてもよいので、この方法は、ブロックの順序によって限定されないことを理解されたい。さらに、図示されたブロックの全てよりも少ないブロックしか、例示的方法を実施するには必要ないかもしれない。さらに、追加の方法、代替の方法、又はそれらの両方は、図示されていない追加のブロックを採用し得る。
【００５２】
フロー図において、ブロックは、論理で実現され得る「処理ブロック」を表す。処理ブロックは、方法ステップ又は方法ステップを実行する装置要素を表し得る。フロー図は、特定のプログラミング言語、方法、又はスタイル（例えば手続き的、オブジェクト指向）について何らの構文も示さない。むしろ、フロー図は、図示された処理を実行するロジックを開発するために当業者が採用し得る機能情報を図示する。ある例では、一時変数、ルーチンループ等のようなプログラム要素が示されていないことがわかるだろう。電子的及びソフトウェアアプリケーションは、ダイナミックかつ柔軟性がある処理を伴い得ることによって、図示されたブロックが図示されたものとは異なる、他の順序で実行されたり、ブロックが組み合わせられ、又は複数の要素に分解されたりし得ることがさらにわかるだろう。処理は、機械語、手続き的、オブジェクト指向又は人工知能の手法のような、さまざまなプログラミングアプローチを用いて実現され得ることが理解されよう。
【００５３】
図４は、オーディオフィンガープリンティングのための例示的方法４００のためのフロー図を示す。
【００５４】
方法４００は、４１０において、１片のオーディオのオーディオサンプル群を得ることを含み、ある実施形態では、１片のオーディオをサンプリングすることを含み得る。オーディオサンプルのそれぞれは、特定の時刻に対応する。４２０において、方法４００は、オーディオサンプル群の周波数表現を生成することを含む。４３０において、方法４００は、周波数表現の周波数帯域中のエネルギー領域を特定することを含む。エネルギー領域は、増加エネルギー領域又は減少エネルギー領域であり得るが、両方ではない。増加エネルギー領域は、時間領域の開始時刻から終了時刻までオーディオエネルギーが増加する時間領域として定義され、減少エネルギー領域は、時間領域の開始時刻から終了時刻までオーディオエネルギーが減少する時間領域として定義される。
【００５５】
方法４００は、４４０において、タイムウィンドウ内に現れる、特定されたエネルギー領域の部分を分析することによって、当該１片のオーディオの特徴のハッシュを生成することを含む。特徴のうちのそれぞれのハッシュは、それぞれのタイムウィンドウに現れる特定されたエネルギー領域の部分に対応する。それぞれの特徴は、
それぞれの時間ウィンドウ中に現れるエネルギー領域の周波数帯域、
それぞれの時間ウィンドウ中に現れるエネルギー領域が増加エネルギー領域であるか、又はそれぞれの時間ウィンドウ中に現れるエネルギー領域が減少エネルギー領域であるか、及び
それぞれの時間ウィンドウ中に現れるエネルギー領域の配置
を表す情報をエンコードする数値として定義される。
【００５６】
それぞれの時間ウィンドウ中に現れるエネルギー領域の配置は、
・それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ後で終了するか、
・それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの前で開始し、かつ中で終了するか、
・それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ後で終了するか、及び
・それぞれの時間ウィンドウ中に現れるエネルギー領域は、それぞれの時間ウィンドウの中で開始し、かつ中で終了するか
のうちの１つに対応する。
【００５７】
４５０において、方法４００は、特徴のそれぞれのハッシュを、特徴のMinHash表現又はMinHash値に変換することを含み得る。４６０において、方法４００は、MinHash値をシャーディングすることによって、MinHashシャード値を得ることを含み得る。４７０において、方法４００は、シャードロウ又はグループ内のMinHashシャード値を、６４ビット数に結合することによって、２０個の６４ビット数を有するフィンガープリントハッシュを得ることを含み得る。４８０において、方法４００は、フィンガープリントハッシュを特定の時刻と共に記憶する。
【００５８】
図は、さまざまなアクションが順次、起こるものとして示すが、図示されたさまざまなアクションは、実質的に並列に起こり得ることを理解されたく、アクションは、並列に起こるように示され得るが、これらアクションは、実質的に順次、起こり得ることを理解されたい。図示された方法に関連していくつかの処理が記載されているが、より多くの又はより少ない数の処理が採用され得て、ライトウェイトプロセス、レギュラープロセス、スレッド、及び他のアプローチも採用され得ることを理解されたい。他の例示的方法は、場合によっては、実質的に並列に起こるアクションも含み得る。図示された例示的方法及び他の方法は、リアルタイムで、ソフトウェア又はハードウェア又はハイブリッドソフトウェア／ハードウェア実現例においてリアルタイムよりも速く、又はソフトウェア又はハードウェア又はハイブリッドソフトウェア／ハードウェア実現例においてリアルタイムよりも遅く動作し得る。
【００５９】
図５は、オーディオフィンガープリンティングのための例示的機械又は装置５００のブロック図である。装置５００は、バス５０８によって動作可能に接続されたプロセッサ２０、メモリ５０４、及びＩ／Ｏポート５１０を含む。
【００６０】
ある例では、装置５００は、オーディオ１０又は１０’、サンプリングされたオーディオ３５、周波数表現４５、エネルギー領域５５、ハッシュ６４、MinHash値７２、シャードMinHash値７７、フィンガープリントハッシュ８５及び９５等を含む入力信号を、例えばＩ／Ｏポート５１０又はＩ／Ｏインタフェース５１８を介して受け取り得る。装置５００は、サンプラ３０、ＦＦＴ４０、エネルギーストリーマー５０、エネルギーハッシャー６０、MinHash７０、シャーダ（sharder）７５、コンバイナ８０、及びデータベース２５も含み得る。よってサンプラ３０、ＦＦＴ４０、エネルギーストリーマー５０、エネルギーハッシャー６０、MinHash７０、シャーダ７５、コンバイナ８０、及びデータベース２５は、装置５００において、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせとして実現され得て、よって、装置５００及びその要素は、サンプラ３０、ＦＦＴ４０、エネルギーストリーマー５０、エネルギーハッシャー６０、MinHash７０、シャーダ７５、コンバイナ８０、及びデータベース２５によってそれぞれ実行されるとしてここで記載された機能を実行する手段を提供し得る。
【００６１】
プロセッサ２０は、デュアルマイクロプロセッサ及び他のマルチプロセッサアーキテクチャを含む多様なさまざまなプロセッサであり得る。メモリ５０４は、揮発性メモリ又は不揮発性メモリを含み得る。不揮発性メモリは、これらには限定されないが、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等を含み得る。揮発性メモリは、例えばＲＡＭ、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、及びダイレクトＲＡＭバスＲＡＭ（ＤＲＲＡＭ）を含み得る。
【００６２】
ディスク５０６は、例えばＩ／Ｏインタフェース（例えばカード、デバイス）５１８及びＩ／Ｏポート５１０を介して装置５００に動作可能に接続され得る。ディスク５０６は、これらに限定されないが、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピーディスクドライブ、テープドライブ、Ｚｉｐドライブ、フラッシュメモリカード、又はメモリスティックのようなデバイスを含み得る。さらにディスク５０６は、ＣＤ−ＲＯＭ、ＣＤレコーダブルドライブ（ＣＤ−Ｒドライブ）、ＣＤリライタブルドライブ（ＣＤ−ＲＷドライブ）、又はディジタルビデオＲＯＭドライブ（ＤＶＤ  ＲＯＭドライブ）のような光学ドライブを含み得る。メモリ５０４は、例えばプロセス５１４又はデータ５１６を記憶し得る。ディスク５０６又はメモリ５０４は、装置５００のリソースを制御し、アロケートするオペレーティングシステムを記憶し得る。ディスク５０６又はメモリ５０４は、その中にデータベース２５を記憶してしまっていてもよく、又はデータベース２５は、いくつかのローカルな又はリモートな記憶装置の間で分散されてもよい。
【００６３】
バス５０８は、単一の内部バス相互接続アーキテクチャ又は他のバス又はメッシュアーキテクチャであり得る。単一のバスが図示されているが、装置５００は、図示されていない他のバス（例えばＰＣＩＥ、ＳＡＴＡ、インフィニバンド、１３９４、ＵＳＢ、イーサネット（登録商標））を用いて、さまざまな装置、ロジック、及び周辺機器と通信し得る。バス５０８は、これらには限定されないが、メモリバス又はメモリコントローラ、周辺バス又は外部バス、クロスバースイッチ、又はローカルバスを含むさまざまなタイプであり得る。ローカルバスは、これらには限定されないが、産業標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、周辺要素相互接続（ＰＣＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、及びスモールコンピュータシステムインタフェース（ＳＣＳＩ）バスを含む、さまざまなものであり得る。
【００６４】
装置５００は、Ｉ／Ｏインタフェース５１８及びＩ／Ｏポート５１０を介して入力／出力機器と相互作用し得る。入力／出力機器は、これらに限定されないが、キーボード、マイク、ポインティング及び選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク５０６、ネットワークデバイス５２０等を含み得る。Ｉ／Ｏポート５１０は、これらには限定されないが、シリアルポート、パラレルポート、及びＵＳＢポートを含み得る。
【００６５】
装置５００は、ネットワーク環境において動作し得て、よってＩ／Ｏインタフェース５１８又はＩ／Ｏポート５１０を介してネットワーク機器５２０と接続され得る。ネットワーク機器５２０を通して、装置５００は、ネットワークと相互作用をし得る。ネットワークを通して、装置５００は、リモートコンピュータに論理的に接続され得る。装置５００が相互作用するネットワークは、これらに限定されないが、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、及び他のネットワークを含み得る。ネットワークデバイス５２０は、これらに限定されないが、光ファイバ分散データインタフェース（ＦＤＤＩ）、銅線配線分散データインタフェース（ＣＤＤＩ）、イーサネット（登録商標）（IEEE 802.3）、トークンリング（IEEE 802.5）、無線コンピュータ通信（IEEE 802.11）、ブルートゥース（IEEE 802.15.1）、ZigBee（IEEE 802.15.4）等を含むＬＡＮ技術に接続し得る。同様に、ネットワークデバイス５２０は、これらに限定されないが、ポイントツーポイントリンク、サービス総合デジタル網（ＩＳＤＮ）のような回路スイッチングネットワーク、パケットスイッチングネットワーク、及びデジタル加入者線（ＤＳＬ）を含むＷＡＮ技術に接続し得る。個々のネットワークのタイプが記載されているが、ネットワークを経由する、ネットワーク上での、又はネットワークを通じた通信は、通信の組み合わせ及び混合を含み得る。
【００６６】
定義
以下は、ここで採用された語のうちから精選されたものについての定義を含む。定義には、語の範囲に入り、実現のために用いられ得る要素のさまざまな例及び形態を含む。これら例は、限定的であるとは意図されていない。語の単数形及び複数形の両方が定義の中に含まれ得る。
【００６７】
「ＰＣＭ」は、ほとんどのディジタルオーディオが処理されるフォーマットである、パルス符号変調を意味する。ＰＣＭは、後でスピーカーで再生されるオーディオインパルスを符号化する方法であり、これらパルスの結果は、我々がコンテンツとして認識するサウンドである。ＰＣＭは、タイムベースの数の列である（典型的には複数のバイトとして、又は浮動小数点数として処理される）。
【００６８】
「サンプルレート」は、一秒当たりにキャプチャされたサンプルの個数をいう。我々が聴くオーディオは、連続的なストリームであり、離散的ではない。コンピュータは、離散間隔で動作するので、オーディオを記録するコンピュータは、サンプル（数）を特定のサンプルレートで取り込まなければならない。伝統的には、ＰＣＭのような高品質オーディオは、44100Hzのサンプルレートでキャプチャされる。しかしサンプルレートは、設計者が望む任意のものであり得る。よって例えばサンプルレートは、8,000 Hzであってもよい。これは、オーディオの8,000個のサンプル（数）が毎秒、キャプチャされることを意味する。
【００６９】
「ウィンドウサイズ」とは、ウィンドウ内で処理されるオーディオの離散的なチャンクのサイズをいう。例えば、もしウィンドウサイズが4,000なら、8,000Hzのオーディオ、１秒には、２つのウィンドウが存在する。
【００７０】
「ウィンドウオーバーラップ」とは、どのくらいのオーバーラップ（サンプル数で）があるオーディオウィンドウと、次のオーディオウィンドウとの間に存在するかをいう。ウィンドウサイズについての上の例では、０ウィンドウオーバーラップを想定している。しかしもしウィンドウオーバーラップが１０００に設定され、ウィンドウサイズが４０００に設定されるなら、8,000Hzのオーディオの１秒には８ウィンドウ存在することになる。第１ウィンドウは、0-4,000msになり、第２ウィンドウは、1000ms-5000msになり、第３ウィンドウは、2000ms-6000msになり、などとなる。これからわかるように、ウィンドウオーバーラップは、オーディオの同じサンプルが複数回、処理されることにつながる。サンプリングされたオーディオにおけるウィンドウオーバーラップの結果、オーディオのより正確な表現が得られる。
【００７１】
「時間領域」は、ＰＣＭフォーマットのオーディオを指すのに用いられる語である。ＰＣＭは、時間にわたって符号化されたオーディオインパルスである。よってそれぞれの新しいインパルスは、後の時刻を指す。8,000Hzで符号化されたオーディオの8,000番目のインパルスは、１秒後の標識にある。典型的にはオーディオは、時間領域で処理されず、周波数領域で処理される。
【００７２】
「周波数領域」とは、オーディオの与えられたセグメントの周波数成分を分析することをいう。オーディオを時間領域（ＰＣＭ）から周波数領域へ変換するためには、フーリエ変換が典型的には用いられる。
【００７３】
「ＦＦＴ」つまり「高速フーリエ変換」は、オーディオのセグメントを時間領域から周波数領域へ変換するアルゴリズムである。フーリエ変換は、積分を利用するが、離散的ではない理論的アルゴリズムである。ＦＦＴ（離散フーリエ変換、又はＤＦＴと呼ばれることもある）は、オーディオを時間領域から周波数領域へ変換する、ＤＳＰでよく使われるコンピュータアルゴリズムである。ＦＦＴの結果は、周波数の「ビン」で構成されるデータ構造である。それぞれの周波数ビンは、周波数範囲から大きさへのマッピングである。例えば、4,000Hzで鳴っている正弦波の１秒のＦＦＴは、4,000Hzにおいて高い値を持つ単一のビンを有することになる。2,000Hz及び4,000Hzにおいて鳴っている２つの正弦波は、理論的には２つのビンを有し、一つは2,000 Hzにおいて、もう一つは4,000 Hzにおいてほぼ等しい大きさを有する。しかし実際のオーディオは、多くの周波数からできているので、任意の所与のオーディオサンプルのＦＦＴについては、典型的には多くの周波数のビンが存在する。
【００７４】
「コンテンツ」は、静止画、オーディオメディア、ビデオメディア、又はオーディオ／ビジュアル（ＡＶ）メディアのセグメントに対応し、少なくとも１つの媒体と共に、具体化され、記憶され、伝送され、受け取られ、処理され、又はその他の方法で用いられる情報を含む。よくあるメディアコンテンツフォーマットには、ＦＬＶフォーマット（フラッシュビデオ）、ウィンドウズメディアビデオ、リアルメディア、クイックタイム、ＭＰＥＧ、ＭＰ３、ＤｉｖＸ、ＪＰＥＧ、及びBitmapsが含まれる。ここで用いられるように、「メディアクリップ」、「メディアコンテンツ」、「情報コンテンツ」、及び「コンテンツ」という語は、交換可能に用いられ得る。
【００７５】
ここで使われる「データストア」又は「データベース」は、データを記憶し得る物理的又は論理的なエンティティをいう。データストアは、例えば、データベース、テーブル、ファイル、リスト、キュー、ヒープ、メモリ、レジスタ等であり得る。データストアは、１つの論理的又は物理的エンティティに常駐し得て、２以上の論理的又は物理的エンティティの間で分散され得る。
【００７６】
ここで用いられる「ロジック」は、これらに限定されないが、機能（群）又は動作（群）を実行するための、又は他のロジック、方法、又はシステムから機能又は動作を起動するためのハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせを含む。例えば、所望のアプリケーション又はニーズに基づいて、ロジックは、ソフトウェアで制御されるマイクロプロセッサ、特定用途向けＩＣ（ＡＳＩＣ）のような個別ロジック、プログラムされたロジックデバイス、命令等を含むメモリデバイスを含み得る。ロジックは、１つ以上のゲート、ゲートの組み合わせ、又は他の回路要素を含み得る。ロジックは、ソフトウェアとして完全に実現されてもよい。複数の論理ロジックが記載されるとき、その複数の論理ロジックを単一の物理的ロジックに組み込むことが可能であり得る。同様に、単一の論理ロジックが記載されるとき、その単一の論理ロジックを複数の物理的ロジックに分散させることが可能であり得る。
【００７７】
「動作可能な接続」、つまりエンティティが「動作可能に接続される」接続とは、信号、物理的通信、又は論理的通信が送られ、又は受け取られ得る接続である。典型的には、動作可能な接続は、物理的インタフェース、電気的インタフェース、又はデータインタフェースを含むが、動作可能な接続は、動作可能な制御を可能にするのに十分な接続のこれらの、又は他のタイプの異なる組み合わせを含み得る。例えば、２つのエンティティは、互いに直接に、又はプロセッサ、オペレーティングシステム、ロジック、ソフトウェア、又は他のエンティティのような１つ以上の中間エンティティを通して、信号をやりとりすることができることによって、動作可能に接続され得る。論理的又は物理的通信チャネルは、動作可能な接続を作るために用いられ得る。
【００７８】
放送において、「プレイアウト」は、ラジオ又はＴＶチャンネルの送信が放送者から、視聴者へコンテンツを運ぶ放送ネットワークに入り送信することを指す語である。
【００７９】
ここで使われる「信号」は、これらには限定されないが、１つ以上の電気的又は光学的信号、アナログ又はデジタルの信号、データ、１つ以上のコンピュータ又はプロセッサ命令、メッセージ、ビット又はビットストリーム、又は受信、送信、又は検出され得る他の手段を含む。
【００８０】
ここで使われる「ソフトウェア」は、これらには限定されないが、読み取られ、解釈され、コンパイルされ、又は実行され得て、コンピュータ、プロセッサ、又は他の電子デバイスに所望のやり方で機能、行為を実行させ、又は動作させる、１つ以上のコンピュータ又はプロセッサ命令を含む。命令は、動的又は静的にリンクされたライブラリからの別個のアプリケーション又はコードを含む、ルーチン、アルゴリズム、モジュール、方法、スレッド、又はプログラムのようなさまざまな形態で実現され得る。またソフトウェアは、これらには限定されないが、スタンドアローンプログラム、ファンクションコール（ローカル又はリモート）、サーブレット、アプレット、メモリに記憶された命令、オペレーティングシステムの一部、又は他のタイプの実行可能な命令を含む、さまざまな実行可能な又はロード可能な形態で実現され得る。当業者には、ソフトウェアの形態は、例えば、所望のアプリケーションの要件、それが走る環境、又は設計者／プログラマー等の要求に依存し得ることが理解されよう。またコンピュータで読み取り可能な又は実行可能な命令は、１つのロジックに存在し得て、又は２つ以上の通信し、同時に動作する、又は並列処理するロジックの間に分散され得て、よってシリアルで、パラレルで、超並列で、及び他の方法でロードされ、又は実行され得ることが理解されよう。
【００８１】
ここで記載された例示的システム及び方法のさまざまな要素を実現する適切なソフトウェアは、Java、Pascal、C#、C++、C、CGI、Perl、SQL、API、SDK、アセンブリ、ファームウェア、マイクロコード、又は他の言語及びツールのようなプログラミング言語及びツールを用いて作成され得る。ソフトウェアは、システム全体であれシステムの一要素であれ、製造物として実現され得て、前に規定されたようにコンピュータで読み取り可能な媒体の一部として保持又は提供され得る。ソフトウェアの他の形態は、ソフトウェアのプログラムコードをネットワーク又は他の通信媒体を介して受け手に送信する信号を含み得る。よってある例では、コンピュータで読み取り可能な媒体は、ウェブサーバからユーザへとダウンロードされるソフトウェア／ファームウェアを表す信号の形態をとる。他の例では、コンピュータで読み取り可能な媒体は、ウェブサーバ上に保持されたソフトウェア／ファームウェアの形態を有する。他の形態も用いられ得る。
【００８２】
ここで用いられる「ユーザ」又は「消費者」は、これらには限定されないが、１人以上の人、ソフトウェア、コンピュータ又は他のデバイス、又はこれらの組み合わせを含む。
【００８３】
以下の詳細な説明のある部分は、アルゴリズム及びメモリ内のデータビットに対する操作の記号的表現によって提示されている。これらアルゴリズムの記載及び表現は、当業者の仕事の本質を他人に伝えるために用いられる彼らによって用いられる手段である。アルゴリズムは、ここで、また一般的に、結果を作る操作の一連の流れであると理解されている。操作は、物理量の物理的操作を含み得る。必ずしもそうではないが、通常は、物理量は、記憶され、転送され、組み合わされ、比較され、及びロジック等で他の方法で操作され得る、電気的又は磁気的信号の形態をとる。
【００８４】
主に通常の用法の理由から、これら信号をビット、値、要素、シンボル、キャラクタ、語、数等として呼ぶことが時には便利であるとわかっている。しかし、これらの及び同様の語は、適切な物理量と関連付けられ、これらの量に適用される便利なラベルに過ぎないことに注意されたい。そうではないと具体的に述べられていない限り、記載を通して、処理、コンピューティング、計算、決定、表示等は、物理的（電子的）量として表現されるデータを操作及び変形する、コンピュータシステム、ロジック、プロセッサ、又は同様の電子的装置の行為及び処理を指すことが理解されよう。
【００８５】
「含む」又は「含んでいる」という語が詳細な説明又は特許請求の範囲で採用されている限りにおいて、特許請求の範囲で遷移的語として採用されるときに解釈されるように、「備える」という語と同様に、包含的であると意図されている。さらに、「又は」という語が詳細な説明又は特許請求の範囲で採用されている（例えばＡ又はＢ）限りにおいて、「Ａ又はＢ又はその両方」を意味するよう意図されている。出願人が「Ａ又はＢであるが、両方ではない」と表現したい場合には、「Ａ又はＢであるが、両方ではない」が用いられる。よって「又は」という語の使用は、包含的であり、排他的な用法ではない。Bryan A. Garner, A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)を参照のこと。
【００８６】
例示的システム、方法等が例を記載することによって説明され、これら例は、相当な詳細さで記載されてきたが、そのような詳細に範囲を限定すること、又はいかなるやり方においても制限することは、出願人の意図ではない。もちろん、ここで記載されるシステム、方法等を記載する目的のためには、構成要素又は方法論の、あらゆる想定可能な組み合わせを記載することは不可能である。さらなる優位性及び改変は、当業者には明らかであろう。したがって本発明は、図示され、説明された、具体的な詳細、代表的な装置、及び例示的な例には限定されない。よって本願は、添付の特許請求の範囲の範囲に入る変更、改変、及びバリエーションを包含するように意図される。さらに、上の記載は、本発明の範囲を限定するようには意図されない。むしろ本発明の範囲は、添付の特許請求の範囲及びそれらの等価物によって決定されるべきである。
【図１】
2019519869.tif 000004
【図２】
2019519869.tif 000005
【図２Ａ】
2019519869.tif 000006
【図２Ｂ】
2019519869.tif 000007
【図２Ｃ】
2019519869.tif 000008
【図２Ｄ】
2019519869.tif 000009
【図３】
2019519869.tif 000010
【図４】
2019519869.tif 000011
【図５】
2019519869.tif 000012
【国際調査報告】
2019519869.tif 000013
2019519869.tif 000014
2019519869.tif 000015