JP5599363B2 - ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体 - Google Patents

ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体 Download PDF

Info

Publication number
JP5599363B2
JP5599363B2 JP2011102979A JP2011102979A JP5599363B2 JP 5599363 B2 JP5599363 B2 JP 5599363B2 JP 2011102979 A JP2011102979 A JP 2011102979A JP 2011102979 A JP2011102979 A JP 2011102979A JP 5599363 B2 JP5599363 B2 JP 5599363B2
Authority
JP
Japan
Prior art keywords
search
sub
features
target sub
fingerprint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011102979A
Other languages
English (en)
Other versions
JP2012234397A (ja
Inventor
研二 北
覚 柘植
一哉 武田
恵理子 渡邉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Photonic System Solutions
Original Assignee
Photonic System Solutions
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Photonic System Solutions filed Critical Photonic System Solutions
Priority to JP2011102979A priority Critical patent/JP5599363B2/ja
Publication of JP2012234397A publication Critical patent/JP2012234397A/ja
Application granted granted Critical
Publication of JP5599363B2 publication Critical patent/JP5599363B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、楽曲や動画等の大規模なデータ集合を対象とした検索技術に関する。
指紋(fingerprint)が個人の特定に用いられるように、オーディオ指紋(audio fingerprint)は楽曲の特定や正真性を確認するための特徴量である。オーディオ指紋の主な用途は楽曲の認識・識別であり、楽曲データベースと組み合わせることにより、楽曲の一部から曲名、アーティスト名、アルバム名などを自動的に取得するために用いられている。Gracenote(http://www.gracenote.com/)やMidomi(http://www.midomi.co.jp/)等の商用検索サービスが有名であり、これらのサービスでは、数秒間程度の楽曲をパソコンや携帯電話のマイクに拾わせることにより、ユーザに曲名やアーティスト名を通知したり、該当する楽曲をダウンロードしたりすることなどを可能としている。また最近は、音楽の著作権を保護するための手法としても、オーディオ指紋が注目されており、ネットワーク上で流通している著作権を侵害している楽曲の検出等にも用いられている。
一般に楽曲検索においては、検索質問(クエリ)として与えられた曲片が、楽曲中のどの位置から始まるかが不明であるため、検索処理では、楽曲データベースに含まれるすべての楽曲に対して、任意の開始位置からの照合を考慮する必要がある。楽曲検索の検索空間は非常に膨大なものとなるため、効率的な検索手法が必要となる。オーディオ指紋に基づく効率的な検索手法として、ハッシュ表を用いる手法(非特許文献1、3)、木構造を用いた探索手法(非特許文献2)などが提案されている。
オーディオ指紋に基づく楽曲の検索は、基本的に、以下のように行う。まず、検索対象である楽曲データベース中の各楽曲から複数のサブ指紋ブロックを抽出する。サブ指紋は楽曲中の1フレームから得られる例えば32ビットの特徴量であり、サブ指紋1つだけでは、楽曲を識別・同定するための十分な情報を含んでいない。このため、オーディオ指紋の照合においては、サブ指紋のブロック(fingerprint-block)を用いる。なお、サブ指紋のブロックとは、一定の長さのサブ指紋の時系列データである。HaitsmaおよびKalker(非特許文献1)では、ブロック長を256としている。
1つの楽曲データに対し、開始フレーム#1から得られるサブ指紋ブロック、開始フレーム#2から得られるサブ指紋ブロック、開始フレーム#3から得られるサブ指紋ブロックというように、非常に多数のサブ指紋ブロックが得られる。検索質問として楽曲片が与えられると、この楽曲片からも複数のサブ指紋ブロックが得られる。楽曲検索は、検索質問から得られたサブ指紋ブロックとの距離を最小にするような楽曲データベース中のサブ指紋ブロックを見つける問題となる。
楽曲検索では、ノイズ等による楽曲の劣化や、検索質問曲の演奏開始位置が不明であることから、一般に膨大な検索空間を探索する必要がある。例えば、Haitsma-Kalkerアルゴリズム(非特許文献1)により、1曲あたりの平均長を5分と仮定し、10,000曲からオーディオ指紋を抽出すると、総計で2.5億のサブ指紋ブロックが得られることになる。検索質問から得られる複数のサブ指紋ブロックとの照合を考えると、単純な方法(brute-force search)だと、2.5億の数倍から数十倍の距離計算を行う必要がある。
上で述べたように、逐次的に距離計算を行う単純な線形探索では、楽曲データベースの規模に比例した計算量が必要となるため、効率的な検索手法が求められる。HaitsmaおよびKalker(非特許文献1)は、サブ指紋に対するハッシュ表(ルックアップ・テーブル)を構成することにより効率的に検索する手法を提案している。Millerら(非特許文献2)は、楽曲データベース中の楽曲に対するサブ指紋を木構造で表現することにより、効率的に検索する手法を提案している。また、Wang(非特許文献3)は、周波数領域におけるピーク値と2つのピーク値間の時間差を組み合わせたハッシュ表を用いた検索手法を提案している。しかし、これらの手法では、検索質問とデータベース中の楽曲とのビットエラー率が大きくなるにつれ、ハッシュ表の大きさが急激に増大するという欠点がある。
また、楽曲検索では、検索質問曲にノイズが混入していたり、音質が劣化していたりする場合も多々あるため、不完全な一致に基づく検索を行う必要があり、検索質問曲と類似したものも検索の対象とする必要が生じる。この意味で、楽曲検索は一種の類似検索である。近年、高次元の大規模データに対する類似検索の手法として、LSH(Locality-Sensitive Hashing)が注目を集めており、画像検索を始めとするさまざまな情報検索分野に適用されてきている(非特許文献4、5)。
ここで、検索対象となる大規模なデータ集合の中から、検索質問(クエリ)として与えられたビット列と距離的に近いデータを高速に見つけることを考える。なお、基本的な仮定として、検索対象データが0と1のビット列で表現されており、データ間の距離としてハミング距離(Hamming distance)を用いるものとする。
LSH(非特許文献4、5、6)は、特定のアルゴリズムというよりも、大規模な高次元データに対する確率的な検索手法の総称であり、ビット・サンプリング(bit sampling)を用いたハミング距離に対するLSH(非特許文献6、7)、Min-wise Independent Permutationを用いたJaccard距離に対するLSH(非特許文献8)、Random Projectionを用いたcosine距離に対するLSH(非特許文献9)、p−安定分布(p-stable distribution)を用いたLp距離に対するLSH(非特許文献10)など、多数の検索アルゴリズムが提案されている。いずれのアルゴリズムも、高次元のベクトルデータをハッシュ値に変換することを基本としており、変換後のハッシュ値は元データの距離が近い場合には高い確率で同じ値になるという性質を持っている。一般に、高次元データに対するハッシュ関数で、近傍データのみを一致させるような関数を一意に決めることはできず、LSHでは、複数のハッシュ関数を用いることで、一定の検索精度を保つようにしている。
ハミング距離に対するLSHは、IndykおよびMotwani(非特許文献7)がPLEB(Point Location in Equal Balls)問題に帰着させたアルゴリズムを提案しており、その後、Charikar(非特許文献9)やRavichandranら(非特許文献11)がビット列のランダム置換(random permutation)を用いた、より洗練されたアルゴリズムを提案している。
ランダム置換を用いた手法の概要を、以下に示す。今、検索対象としてn個のk次元のデータ集合D=d,d,・・,dがあるとする。ここで、各dは0あるいは1から成るkビットの列である。置換σとは集合{1,2,・・,k}上の全単射(bijection)のことであり、ビット列に対する置換は、ビット列b,b,・・,bをビット列bσ(1),bσ(2),・・,bσ(k)に置き換えたものとして定義することができる。集合{1,2,・・,k}上の置換の総数はk!個あり、ランダム置換はこれらの置換の中からランダムに1つを選択したものである。
さて、データ集合D中の各要素に対して、ランダム置換σを施したデータ集合Dσを作成する。検索質問のビット列qに対しても、同様に、ランダム置換σを施したビット列qσを作成する。データ集合Dσの中からqσに近いデータを探すために、Dσをソートしておき、ソート列に対し2分探索(binary search)を適用する。多数のランダム置換に対し、上記のことを実行すれば、検索されるビット列データは、元の検索質問ビット列の近傍にあることが期待される。以上が、Charikar(非特許文献9)やRavichandranら(非特許文献11)が提案したハミング空間における近傍検索の概要である。なお、この手法の理論的および実験的解析に関しては、Charikar(非特許文献9),Mankuら(非特許文献12)を参照されたい。
ランダム置換に基づくハミング空間検索の考え方はきわめて単純である。ビット列の一致検索(exact match)でよければ、元のデータ集合に対する2分探索のみで十分である。また、下位方向のビットのみが一致しない場合の近傍検索も2分探索で十分であろう。問題は、上位方向のビットに不一致がある場合であり、この際には単純な2分探索では検索漏れを起こしてしまう。このような事態に対処するために、複数のランダム置換によるビットの入れ替えを考えているのである。一般にLSHでは、複数のハッシュ関数を用いるが、ランダム置換に基づくハミング空間検索では、ランダム置換がハッシュ関数に相当していると考えることができる。
図1に、ランダム置換を用いた手法の模式図を示す。検索対象となるデータ集合を一番上に、また検索質問を一番下に示している。検索漏れの問題を解消するためには、元のデータ集合および検索質問の双方に対する複数のランダム置換(図中、σ,σ,σ)を考える必要がある。
Jaap Haitsma and Ton Kalker.: "A Highly Robust Audio Fingerprinting System", Proceedings of the 3rd International Conference on Music Information Retrieval (ISMIR 2002), pp.107-115, 2002. Matthew L. Miller, Manuel Acevedo Rodriguez and Ingemar J. Cox.: "Audio Fingerprinting: Nearest Neighbor Search in High Dimensional Binary Spaces", Journal of VLSI Signal Processing, 41, pp.285-291, 2005. Avery Li-Chun Wang: "An Industrial-Strength Audio Search Algorithm", Proceedings of the 4th International Conference on Music Information Retrieval (ISMIR 2003), pp.7-13, 2003. Brian Kulis and Kristen Grauman: "Kernelized Locality-Sensitive Hashing for Scalable Image Search", Proceedings of the 12th IEEE International Conference on Computer Vision (ICCV 2009), 2009. Aristides Gionis, Piotr Indyk, and Rajeev Motwani: "Similarity Search in High Dimensions via Hashing", 25th International Conference on Very Large Data Bases(VLDB 1999), 1999. Brian Kulis and Trevor Darrell: "Learning to Hash with Binary Reconstructive Embeddings", Proceedings of the 23rd Annual Conference on Neural Information Processing Systems (NIPS 2009), pp. 1042-1050, 2009. Piotr Indyk and Rajeev Motwani: "Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality", Proceedings of the 30th Annual ACM Symposium on Theory of Computing, 1998. Andrei Z. Broder, Moses Charikar, Alan M. Frieze, Michael Mitzenmacher: "Min-wise Independent Permutations", Proceedings of the 30th Annual ACM Symposium on Theory of Computing, pp.327-336, 1998. Moses S. Charikar: "Similarity Estimation Techniques from Rounding Algorithms", Proceedings of the 34th Annual ACM Symposium on Theory of Computing, 2002. Mayur Datar, Nicole Immorlica, Piotr Indyk, and Vahab S. Mirrokni: "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions", Proceedings of the 20th Annual Symposium on Computational Geometry, 2004. Deepak Ravichandran, Patrick Pantel, and Eduard Hovy: "Randomized Algorithms and NLP: Using Locality Sensitive Hash Functions for High Speed Noun Clustering", Proceedings of ACL, 2005. Gurmeet Singh Manku, Arvind Jain, and Anish Das Sarma: "Detecting Near-Duplicates for Web Crawling", Proceedings of the 16th international conference on World Wide Web, pp.141-149, 2007. Dimitrios Fragoulis, George Rousopoulos, Thanasis Panagopoulos, Constantin Alexiou, and Constantin Papaodysseus: "On the Automated Recognition of Seriously Distorted Musical Recordings", IEEE Transactions on Signal Processing, Vol.49, No.4, pp.898-908, 2001. Beth Logan: "Mel Frequency Cepstral Coefficients for Music Modeling", Proceedings of the International Symposium on Music Information Retrieval (ISMIR 2000), 2000. Eric Allamanche et al.: "AudioID: Towards Content-based Identification of Audio Material", 110th AES Convention, 2001. (http://www.aes.org/e-lib/browse.cfm?elib=10019) Udi Manber and Gene Myers: "Suffix Arrays: A New Method for On-line String Searches", SIAM Journal on Computing, Vol.22, No.5, pp 935-948, 1993.
ランダム置換に基づく検索の最大の欠点は、膨大なデータ容量を必要とすることである。効率的な検索を行うためには、元の検索対象データ集合にあらかじめランダム置換を施したデータ集合を作成しておく必要がある(図1参照)。また、複数のランダム置換を考える必要があるため、元データ集合の数倍〜数十倍程度の容量が必要となる。
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、膨大なデータ容量を必要とすることなく、高速に検索を行えるようにすることにある。
上記の課題を解決するため、本発明にあっては、検索質問としてコンテンツデータ片を入力し、当該コンテンツデータ片の特徴を示す複数の検索質問サブ特徴量から構成される互いに類似する複数の検索質問サブ特徴量短系列を作成する手段と、最終的な検索対象のコンテンツデータの特徴を示す直接的な検索対象となる複数の検索対象サブ特徴量を連結した検索対象サブ特徴量配列に基づき、当該検索対象サブ特徴量配列に含まれる各検索対象サブ特徴量から開始する前記検索質問サブ特徴量短系列の長さのブロックを2進数としての大小関係に基づいてソートした場合の先頭の検索対象サブ特徴量の識別情報をソートされた順に保持したインデックス配列に対し、前記検索質問サブ特徴量短系列により2分探索を行って検索候補位置を決定する手段と、決定された複数の検索候補位置からそれぞれ開始する検索対象サブ特徴量と前記検索質問サブ特徴量短系列とのハミング距離をそれぞれ計算する手段と、計算されたハミング距離が小さい順に検索候補位置に相当する検索結果をソートする手段と、ソートされた検索結果の上位所定数の検索結果を最終的な検索結果として出力する手段とを備える。
本発明にあっては、膨大なデータ容量を必要とすることなく、高速に検索を行うことができる。
ランダム置換に基づく検索の概要を示す図である。 検索質問多重化による検索の概要を示す図である。 検索装置の構成例を示す図である。 楽曲データベースの構造例を示す図である。 オーディオ指紋データベースの構造例を示す図である。 検索装置のハードウェア構成例を示す図である。 検索前の事前準備の処理例を示すフローチャートである。 検索の処理例を示すフローチャートである。 サブ指紋短系列による2分探索の概要を示す図である。 評価データの分類および正解率の例を示す図である。
以下、本発明の好適な実施形態につき説明する。
<原理>
ランダム置換に基づく検索では、元のデータ集合を複数のランダム置換により多重化することにより、ビット列データに対する近傍検索を実現しているということができる。もし仮に、検索質問のみを多重化することができれば、元のデータ集合に対する多重化は不要となり、少ない記憶容量でハミング空間の検索が可能になる。
上記を実現するための考え方は単純であり、検索質問と類似したビット列データを複数作成することにより、検索質問の多重化を行う。
図2に、検索質問多重化による検索手法の模式図を示す。図1と同様に、検索対象となるデータ集合を一番上に、検索質問を一番下に示している。図中、φ(φ、φ、φ)は検索質問のビット列と類似したデータを作成する関数である。関数φは、元になるビット列に数値計算等を施す場合だけではなく、元になるビット列から値を取得する位置等を変える等の情報操作一般を含む。
<構成>
図3は検索装置1の構成例を示す図である。なお、主として楽曲の検索を想定したものとなっているが、楽曲以外の検索にも適用できることは言うまでもない。
図3において、検索装置1は、オーディオ指紋抽出部(特徴量抽出部)101と、インデックス配列作成部102と、検索質問曲片入力部(検索質問コンテンツデータ片入力部)103と、サブ指紋短系列抽出部(サブ特徴量短系列生成部)104と、検索候補位置決定部105と、ハミング距離計算部106と、検索結果ソート部107と、検索結果出力部108とを備えている。これらの機能部は、検索装置1を構成するコンピュータのCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。これらの機能部は、単一のコンピュータ上に配置される必要はなく、必要に応じて分散される形態であってもよい。
また、検索装置1が利用するデータベースとして、楽曲データベース(コンテンツデータベース)111と、オーディオ指紋データベース(特徴量データベース)112とが設けられている。これらのデータベースは、検索装置1を構成するコンピュータ内のHDD(Hard Disk Drive)等の記憶媒体上に所定のデータを体系的に保持するものである。なお、楽曲データベース111とオーディオ指紋データベース112は検索装置1内に配置される必要はなく、他の装置(データベースサーバ等)上に配置し、ネットワークを介して検索装置1からアクセスする形態としてもよい。
図4は楽曲データベース111の構造例を示す図である。楽曲データベース111は、楽曲(コンテンツ)を識別する楽曲ID(コンテンツID)と、曲名、アーティスト名、アルバム名等の書誌情報と、楽曲本体データ(コンテンツ本体データ)等が対応付けられて保持されている。
図5はオーディオ指紋データベース112の構造例を示す図である。オーディオ指紋データベース112は、楽曲ID(コンテンツID)と、オーディオ指紋(特徴量)等が対応付けられて保持されている。
オーディオ指紋は、メッセージダイジェスト(一方向ハッシュ関数によるダイジェスト値)の一種であり、楽曲の音響的・知覚的特性に基づき、元の楽曲データを比較的コンパクトなビット列表現に変換するための技術である。認証やデジタル署名等で用いられるMD5等のメッセージダイジェストでは、元のデータが少しでも異なると、まったく異なったハッシュ値が得られるが、オーディオ指紋の場合には、楽曲にノイズが混入したり、楽曲が劣化したりといった場合にも、類似したハッシュ値が得られるように設計されている。
また、オーディオ指紋データベース112には、楽曲毎にオーディオ指紋を連結したサブ指紋配列(サブ特徴量配列)FPが保持される。図示は省略してあるが、楽曲IDからサブ指紋配列FPに含まれるサブ指紋(サブ特徴量)を参照できるとともに、サブ指紋配列FPのサブ指紋から楽曲IDを参照できる。
また、オーディオ指紋データベース112には、サブ指紋配列FPのサブ指紋を対象にして検索質問短系列の長さを単位に2進数としての大小関係に基づいてソートした順番で先頭のサブ指紋の位置を示すインデックス配列Sが保持される。
図6は検索装置1のハードウェア構成例を示す図である。検索装置1は、システムバス11に接続されたCPU12、ROM13、RAM14、NVRAM(Non-Volatile Random Access Memory)15、I/F(Interface)16と、I/F16に接続された、キーボード、マウス、モニタ、CD/DVD(Compact Disk/Digital Versatile Disk)ドライブ等のI/O(Input/Output Device)17、HDD18、NIC(Network Interface Card)19等を備えている。Mはプログラムもしくはデータが格納されたCD/DVD等のメディア(記録媒体)である。
<動作>
図7は検索前の事前準備の処理例を示すフローチャートである。
図7において、処理を開始すると、検索装置1のオーディオ指紋抽出部101は、楽曲データベース111から楽曲本体データを参照し、オーディオ指紋を抽出する(ステップS11)。オーディオ指紋は、楽曲毎にサブ指紋を時系列に配置したものである。
オーディオ指紋抽出アルゴリズムには、さまざまなものが提案されており、フーリエ係数特徴に基づく手法(非特許文献13)、メルケプストラム係数特徴に基づく手法(非特許文献14)、スペクトル扁平特徴に基づく手法(非特許文献15)などが研究されている。以下では、HaitsmaおよびKalker(非特許文献1)による周波数帯域間のエネルギー差の特徴を用いたオーディオ指紋抽出アルゴリズムの概要を示す。
Haitsma-Kalkerアルゴリズムでは、入力された楽曲データをフレームに分割後、オーバーラップした各フレームからサブ指紋(sub-fingerprint)と呼ばれる32ビットの特徴量を抽出する。サブ指紋は、実際には周波数領域において計算する。各フレームをFFT(Fast Fourier Transform)により周波数領域に変換後、重なりのない33個の周波数帯域に分割し、帯域間のエネルギー差の符号(プラスあるいはマイナス)からサブ指紋を求める。HaitsmaおよびKalkerでは、フレーム長0.37秒(フレームの重なり度は31/32)であり、ハニング・ウィンドウ(Hanning window)により重み付けした後に、周波数領域に変換している。したがって、11.6ミリ秒ごとに1つのサブ指紋が抽出されることになる。なお、本実施形態においては、ハニング・ウィンドウに代えてハミング・ウインドウ(Hamming window)を用いている。
具体的なサブ指紋の計算は、フレームnの周波数帯域mにおけるエネルギーをE(n,m)とするとき、フレームnの第mビットF(n,m)を以下の式により求める。
Figure 0005599363
HaitsmaおよびKalkerは、周波数領域におけるエネルギー差の符号から得られる特徴が、楽曲の識別・同定において有効であり、しかも圧縮や伸長等の多くの処理に対し頑健であることを実験的に示している。Haitsma-Kalkerアルゴリズムは、オーディオ指紋抽出の各ステップが単純な算術演算で実装でき、生成されるオーディオ指紋がコンパクトであるという特徴を持っている。
次いで、オーディオ指紋抽出部101は、サブ指紋配列FPを作成する(ステップS12)。サブ指紋配列FPは、オーディオ指紋(楽曲毎にサブ指紋を時系列に配置)を検索対象となる複数の楽曲について連結したものである。
次いで、オーディオ指紋抽出部101は、楽曲毎に抽出したオーディオ指紋を楽曲ID等と対応付けてオーディオ指紋データベース112に格納するとともに、作成したサブ指紋配列FPをオーディオ指紋データベース112に格納する(ステップS13)。
次いで、検索装置1のインデックス配列作成部102は、サブ指紋配列FPに含まれる各サブ指紋から開始する検索質問短系列の長さのブロックを2進数としての大小関係に基づいてソートした場合の先頭のサブ指紋の識別情報(位置)をソートされた順に保持したインデックス配列Sを作成する(ステップS14)。
インデックス配列Sの作成は、例えば、次のように行う。検索質問短系列の長さをm、楽曲データベース中の全曲から得られたサブ指紋配列FP=FP,FP,・・,FPとするとき、サブ指紋配列FP中の長さmの全系列のソート位置を表す1次元のインデックス配列S=S,S,・・,Sを考える。インデックス配列Sは、接尾辞配列(suffix array)(非特許文献16)と同様に、サブ指紋配列FPへのインデックスを格納した配列であり、次式を満たすようにする。なお、「iff」は「if and only if」の略である。
= i iff FP,FPi+1,・・,FPi+m?1がソート順でj番目の短系列
検索処理では、検索質問曲から得られたサブ指紋の短系列に対し、インデックス配列S上を2分探索すればよい。また、2分探索された位置の前後を調べることで、サブ指紋短系列の近傍検索を行うことができる。インデックス配列Sの大きさは、楽曲データベース中のサブ指紋配列FPの長さに比例した大きさであり、ランダム置換を用いる手法に比べ、はるかに少ない容量である。
次いで、インデックス配列作成部102は、ソート済サブ指紋配列もしくはインデックス配列Sをオーディオ指紋データベース112に格納し(ステップS15)、処理を終了する。
図8は検索の処理例を示すフローチャートである。
図8において、処理を開始すると、検索装置1の検索質問曲片入力部103は、検索質問曲片を入力する(ステップS21)。検索質問曲片はマイク等により取得された後、デジタルデータに変換されて入力される。
次いで、検索装置1のサブ指紋短系列抽出部104は、検索質問曲片から類似する複数のサブ指紋短系列を抽出する(ステップS22)。サブ指紋短系列はサブ指紋のブロックである。
オーディオ指紋の抽出(図7のステップS11)では、検索対象である楽曲データベース111中の各楽曲から複数のサブ指紋ブロックを抽出している。すなわち、1つの楽曲データに対し、開始フレーム#1から得られるサブ指紋ブロック、開始フレーム#2から得られるサブ指紋ブロック、開始フレーム#3から得られるサブ指紋ブロックというように、非常に多数のサブ指紋ブロックが得られる。これと同様に、検索質問として楽曲片が与えられると、この楽曲片からも開始フレームが少しずつ異ならせることで、複数のサブ指紋ブロックが得られる。サブ指紋の時系列において、隣り合ったサブ指紋の間には大きな類似性があり、時間が進むにつれ、少しずつ異なったサブ指紋が得られるという特徴がある。このような開始時間の異なる複数のサブ指紋を用いて検索質問の多重化を行うことができる。
なお、オーディオ指紋の場合はサブ指紋ブロックを取得する開始フレームを少しずつ変化させることで多重化された類似する複数のサブ指紋短系列を抽出することができるが、ビデオ等を含む一般的なコンテンツデータ片の場合は、例えば、元のビット列を機械的に操作してビット反転を行うことや、あるいは元のビット列にノイズをのせる等により多重化を行うことができる。
次いで、検索装置1の検索候補位置決定部105は、抽出したすべてのサブ指紋短系列に対して、インデックス配列S上を2分探索し、検索候補位置を求める(ステップS23)。2分探索は、インデックス配列S上の全体の中央に存在するサブ指紋ブロックの値と質問から抽出したサブ指紋短系列の値を2進数として比較し、抽出したサブ指紋短系列の値が大きければ、全体の中央よりも値が低い側の半分に範囲を限定してその中央に着目点を移して比較を続行し、抽出したサブ指紋短系列の値が小さければ、全体の中央よりも値が高い側の半分に範囲を限定してその中央に着目点を移して比較を続行するという処理を繰り返すものである。図9はサブ指紋短系列によりインデックス配列Sを2分探索する様子を示している。インデックス配列Sの2分探索にあたり、インデックス配列Sのインデックスからサブ指紋を参照し、サブ指紋の値を取得して比較を行う。
次いで、図8に戻り、検索装置1のハミング距離計算部106は、抽出したすべてのサブ指紋短系列と、検索候補位置を開始位置とするサブ指紋ブロックとのハミング距離(ビットエラー率BER(bit error rate))を計算する(ステップS24)。2つのサブ指紋ブロックの同一性を判定するための尺度としてハミング距離を用いている。
いま、2つの楽曲片A、Bから抽出されたサブ指紋をそれぞれF(n,m)、F(n,m)とするとき、長さNのサブ指紋ブロックに対するビットエラー率BER(A,B)は、以下のようにして計算することができる。
Figure 0005599363
なお、演算子「^」は、ビット演算XOR(exclusive or)を表している。上式の分子は、2つのサブ指紋ブロック間のハミング距離を計算しており、サブ指紋ブロックのビット長32Nで除算することにより、1ビット当たりのエラー率を計算している。
次いで、検索装置1の検索結果ソート部107は、計算したハミング距離に基づき、検索結果をハミング距離が小さい順にソートする(ステップS25)。ここで、検索結果は、楽曲IDにより識別されるものとすることができる。
次いで、検索装置1の検索結果出力部108は、ソートした上位のもの(上位所定数)を検索結果として出力する(ステップS26)。検索結果に含まれる楽曲IDから楽曲データベース111を参照することで、曲名、アーティスト名、アルバム名等の書誌情報を出力することができる。
<評価実験>
本実施形態の楽曲検索アルゴリズムの有効性を検証するために、実際の楽曲データを用いた評価実験を行った。評価実験で用いたオーディオ指紋抽出は、基本的にはHaitsma-Kalkerアルゴリズムと同様の手法を用いたが、音楽分析条件等は異なっている。
検索対象となる楽曲は、8,740曲のMP3データである。これらの曲は、CDやインターネットなどから個人的に収集した曲であり、曲によってMP3の圧縮率は異なっている。楽曲のジャンルも、和洋ポップス、クラシック、民族音楽など、多岐に渡っている。
検索質問となる楽曲は、YouTubeにアップロードされたものを用いた。PVやライブ映像など、多様な形態の動画から音声部分のみを抽出した。前後に数十秒程度の無音があるもの、拍手、歓声、セリフなどを含んでいるもの、ノイズを含んでいるものなど、低品質な楽曲データも数多く存在する。評価用のデータは全268曲であり、これらのデータは、データ収集者による分類がなされ、楽曲の状態に関するコメントが付与されている(図10参照)。
楽曲データは、4,000Hzにダウン・サンプリングを行った後、フレーム長1.024秒、フレームシフト0.032秒で分析を行い、ハミング窓(Hamming window)による重み付け、FFTによる周波数領域への変換を行っている。周波数領域では、33個の周波数帯域に分割して、32ビットのサブ指紋特徴量を抽出した。また、サブ指紋ブロックの長さは128とした。
上記の分析条件は、HaitsmaおよびKalker(非特許文献1)に比べると荒いものとなっているが、これらの条件は、いくつかの予備実験を行い決定した。提案アルゴリズムでは、上記程度の分析条件でも十分な検索精度が得られることがわかった。なお、この条件で分析を行った際に得られるサブ指紋の総数は、検索対象8,740曲に対して、約7千万である。
本稿での提案手法は、オーディオ指紋に基づく楽曲の高速検索アルゴリズムであるので、まず検索速度面について説明する。評価実験を行った計算機はDELL Precision M6500(ノートパソコン)、CPUはIntel Core i7(1.73GHz)(全8コア)、搭載メモリは4GBである。曲によって検索時間は異なるが、1曲あたり概ね0.4〜0.6秒程度で検索可能である。
検索質問1曲あたりのサブ指紋の系列長は、6000〜8000程度のものが大多数を占める。提案アルゴリズムでは、検索質問曲から得られるすべてのサブ指紋短系列(長さ3)に対して、2分探索による検索候補位置の計算を行った後、サブ指紋ブロックに対するビットエラー率の計算を行っている。したがって、サブ指紋ブロック1つあたりの検索時間は0.0001秒以下で行われていることになり、十分、高速であるということができる。
検索精度であるが、図10の右欄に、第1位での正解率を示している。「原曲」に対する第1位での検索率は96.8%、「ライブ」に対する第1位での正解率は83.1%である。「原曲」に対しては、ノイズの有無によって評価データを2つに分類しているが、結果的には、ノイズによる検索精度への影響はみられなかった。「原曲」と「ライブ」との間で検索精度の違いがみられるが、この理由は、ライブでは元の曲をアレンジしていたり、元の曲調とは異なっていたりする場合があるためであると考えられる。
<総括>
LSHでは、検索精度を保つために、一般に複数のハッシュ関数を用いており、このため検索用データであるハッシュ表に相当の容量が必要となる。ハミング距離に対する従来のLSHの場合、ランダム置換が一種のハッシュ関数に相当するが、ランダム置換により複数の検索対象データをあらかじめ用意しておく必要がある。我々の提案手法では、開始時間の異なる複数のサブ指紋の短い系列を用いて検索質問の多重化を行うことにより、検索対象データの多重化を必要としない。従来手法に比べ、検索インデックスの大きさをはるかに少なくすることが可能である。評価実験において、検索速度あるいは検索精度の面から評価を行い、提案手法の有効性を示した。
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
1 検索装置
101 オーディオ指紋抽出部
102 インデックス配列作成部
103 検索質問曲片入力部
104 サブ指紋短系列抽出部
105 検索候補位置決定部
106 ハミング距離計算部
107 検索結果ソート部
108 検索結果出力部
111 楽曲データベース
112 オーディオ指紋データベース

Claims (4)

  1. 検索質問としてコンテンツデータ片を入力し、当該コンテンツデータ片の特徴を示す複数の検索質問サブ特徴量から構成される互いに類似する複数の検索質問サブ特徴量短系列を作成する手段と、
    最終的な検索対象のコンテンツデータの特徴を示す直接的な検索対象となる複数の検索対象サブ特徴量を連結した検索対象サブ特徴量配列に基づき、当該検索対象サブ特徴量配列に含まれる各検索対象サブ特徴量から開始する前記検索質問サブ特徴量短系列の長さのブロックを2進数としての大小関係に基づいてソートした場合の先頭の検索対象サブ特徴量の識別情報をソートされた順に保持したインデックス配列に対し、前記検索質問サブ特徴量短系列により2分探索を行って検索候補位置を決定する手段と、
    決定された複数の検索候補位置からそれぞれ開始する検索対象サブ特徴量と前記検索質問サブ特徴量短系列とのハミング距離をそれぞれ計算する手段と、
    計算されたハミング距離が小さい順に検索候補位置に相当する検索結果をソートする手段と、
    ソートされた検索結果の上位所定数の検索結果を最終的な検索結果として出力する手段と
    を備えたことを特徴とするハミング空間検索装置。
  2. 検索質問としてコンテンツデータ片を入力し、当該コンテンツデータ片の特徴を示す複数の検索質問サブ特徴量から構成される互いに類似する複数の検索質問サブ特徴量短系列を作成する工程と、
    最終的な検索対象のコンテンツデータの特徴を示す直接的な検索対象となる複数の検索対象サブ特徴量を連結した検索対象サブ特徴量配列に基づき、当該検索対象サブ特徴量配列に含まれる各検索対象サブ特徴量から開始する前記検索質問サブ特徴量短系列の長さのブロックを2進数としての大小関係に基づいてソートした場合の先頭の検索対象サブ特徴量の識別情報をソートされた順に保持したインデックス配列に対し、前記検索質問サブ特徴量短系列により2分探索を行って検索候補位置を決定する工程と、
    決定された複数の検索候補位置からそれぞれ開始する検索対象サブ特徴量と前記検索質問サブ特徴量短系列とのハミング距離をそれぞれ計算する工程と、
    計算されたハミング距離が小さい順に検索候補位置に相当する検索結果をソートする工程と、
    ソートされた検索結果の上位所定数の検索結果を最終的な検索結果として出力する工程と
    を備えたことを特徴とするハミング空間検索方法。
  3. ハミング空間検索装置を構成するコンピュータを、
    検索質問としてコンテンツデータ片を入力し、当該コンテンツデータ片の特徴を示す複数の検索質問サブ特徴量から構成される互いに類似する複数の検索質問サブ特徴量短系列を作成する手段、
    最終的な検索対象のコンテンツデータの特徴を示す直接的な検索対象となる複数の検索対象サブ特徴量を連結した検索対象サブ特徴量配列に基づき、当該検索対象サブ特徴量配列に含まれる各検索対象サブ特徴量から開始する前記検索質問サブ特徴量短系列の長さのブロックを2進数としての大小関係に基づいてソートした場合の先頭の検索対象サブ特徴量の識別情報をソートされた順に保持したインデックス配列に対し、前記検索質問サブ特徴量短系列により2分探索を行って検索候補位置を決定する手段、
    決定された複数の検索候補位置からそれぞれ開始する検索対象サブ特徴量と前記検索質問サブ特徴量短系列とのハミング距離をそれぞれ計算する手段、
    計算されたハミング距離が小さい順に検索候補位置に相当する検索結果をソートする手段、
    ソートされた検索結果の上位所定数の検索結果を最終的な検索結果として出力する手段
    として機能させるハミング空間検索プログラム。
  4. 請求項3に記載のハミング空間検索プログラムを記録したコンピュータ読取可能な記録媒体。
JP2011102979A 2011-05-02 2011-05-02 ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体 Active JP5599363B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011102979A JP5599363B2 (ja) 2011-05-02 2011-05-02 ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011102979A JP5599363B2 (ja) 2011-05-02 2011-05-02 ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014168401A Division JP6031475B2 (ja) 2014-08-21 2014-08-21 ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2012234397A JP2012234397A (ja) 2012-11-29
JP5599363B2 true JP5599363B2 (ja) 2014-10-01

Family

ID=47434652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011102979A Active JP5599363B2 (ja) 2011-05-02 2011-05-02 ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP5599363B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6061714B2 (ja) * 2013-02-12 2017-01-18 公立大学法人会津大学 類似系列区間検出装置および類似系列区間検出プログラム
CN110738020B (zh) * 2019-10-25 2023-05-30 重庆誉存大数据科技有限公司 一种基于spark的批量方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3467415B2 (ja) * 1998-12-01 2003-11-17 日本電信電話株式会社 音楽検索装置,音楽検索方法および音楽検索プログラムを記録した記録媒体
JP4125990B2 (ja) * 2003-05-01 2008-07-30 日本電信電話株式会社 検索結果利用型類似音楽検索装置,検索結果利用型類似音楽検索処理方法,検索結果利用型類似音楽検索プログラムおよびそのプログラムの記録媒体
JP2009015535A (ja) * 2007-07-03 2009-01-22 Nippon Laboatec Kk 類似音楽検索装置、類似音楽検索方法、類似音楽検索プログラム及びコンピュータで読み取り可能な記録媒体

Also Published As

Publication number Publication date
JP2012234397A (ja) 2012-11-29

Similar Documents

Publication Publication Date Title
Casey et al. Analysis of minimum distances in high-dimensional musical spaces
Dhanaraj et al. Automatic Prediction of Hit Songs.
Cano et al. Audio fingerprinting: concepts and applications
Bužić et al. Lyrics classification using naive bayes
Cai et al. Scalable music recommendation by search
EP3477643B1 (en) Audio fingerprint extraction and audio recognition using said fingerprints
AU2006288921A1 (en) Music analysis
Casey et al. Fast recognition of remixed music audio
Gulati et al. Mining melodic patterns in large audio collections of Indian art music
Chen et al. Improving music genre classification using collaborative tagging data
Kolozali et al. Automatic ontology generation for musical instruments based on audio analysis
Correya et al. Large-scale cover song detection in digital music libraries using metadata, lyrics and audio features
Shen et al. A novel framework for efficient automated singer identification in large music databases
JP5596648B2 (ja) ハッシュ関数生成方法、ハッシュ関数生成装置、ハッシュ関数生成プログラム
Padmasundari et al. Raga identification using locality sensitive hashing
Xiao et al. Fast Hamming Space Search for Audio Fingerprinting Systems.
Yang et al. Music retagging using label propagation and robust principal component analysis
Thiruvengatanadhan Music Classification using MFCC and SVM
EP3477505B1 (en) Fingerprint clustering for content-based audio recogntion
Qi et al. Triplet convolutional network for music version identification
Ghosal et al. Song/instrumental classification using spectrogram based contextual features
Gurjar et al. Comparative Analysis of Music Similarity Measures in Music Information Retrieval Systems.
JP5599363B2 (ja) ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体
Rhodes et al. Investigating music collections at different scales with audiodb
JP6031475B2 (ja) ハミング空間検索装置、ハミング空間検索方法、ハミング空間検索プログラムおよび記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140502

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140502

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140610

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140812

R150 Certificate of patent or registration of utility model

Ref document number: 5599363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250