【手続補正書】
【提出日】平成24年8月27日(2012.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
類似音楽を検索する類似音楽検索システムにおいて、
検索対象となる音楽データの入力を受け付ける受付手段と、
当該受け付けた音楽データから音楽全体のリズムデータとメロディデータとハーモニーデータをそれぞれ抽出する抽出手段と、
当該抽出されたリズムデータ、メロディデータ、ハーモニーデータのそれぞれから最小時間単位毎にビット列を生成するビット列生成手段と、
当該生成されたリズムビット列、メロディビット列、ハーモニービット列をそれぞれ一定ビット長単位で区切って単語を生成する単語化手段と、
当該単語化手段によって生成された単語のうち、重複した単語をまとめるまとめ処理を行い、当該まとめ処理によって生成されたリズム単語、メロディ単語、ハーモニー単語を検索キーとして、あらかじめデータベースに登録されたリズム単語、メロディ単語、ハーモニー単語の列から類似する音楽を検索する検索手段とを備えたことを特徴とする類似音楽検索システム。
【請求項２】
前記検索手段が、当該単語化手段によって生成された単語のうち、重複した単語をまとめるまとめ処理を行い、当該まとめ処理によって生成されたリズム単語、メロディ単語、ハーモニー単語を検索キーとして、検索キーである単語の出現頻度を考慮してあらかじめデータベースに登録されたリズム単語、メロディ単語、ハーモニー単語の列から類似する音楽を検索するようにしたものである請求項１に記載の類似音楽検索システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】類似音楽検索システム
【技術分野】
【０００１】
本発明は、入力された音楽と類似する音楽を検索できるようにしたシステムに関するものであり、より具体的には、入力された音楽全体の音楽的特徴とあらかじめデータベースに登録されている音楽全体の音楽的特徴とを比較して類似音楽を検索できるようにしたシステムに関するものである。
【背景技術】
【０００２】
従来より、類似音楽を検索できるようにした手法がいくつか提案されている。
【０００３】
まず、第一の手法は、主旋律などのメロディから類似する音楽を検索できるようにした手法である（非特許文献１、特許文献１〜３）。
【０００４】
また、第二の手法は、人間の感性を取り入れて類似音楽を検索できるようにした手法であり、例えば、下記の特許文献４に示されるように、音楽の印象を指定して以前聴いたことのない音楽を検索できるようにしたものである。具体的には、特許文献４に示すように、音楽や曲名などの書誌的項目に基づく第一インデックスと、リズム情報や和音情報などから抽出された第二インデックスと、音楽のイメージやその音楽がふさわしい状況（主観的・感性的な特徴）を示す第三インデックスとを作成し、これらのインデックスをもとにして音楽的特徴や曲のイメージに対応した音楽の検索できるようにしたものである。また、下記の特許文献５には、テンポやビートなどの音楽的特徴と、ユーザが受けた印象などに基づいて類似する音楽を検索できるようにした手法も提案されている。そして、これらの手法によれば、人間の有する抽象的な感覚に基づいて類似した音楽を検索することができる。
【０００５】
また、第三の手法は、音楽を構成する音楽断片どうしの類似度を考慮して検索できるようにした手法である。この手法は、例えば、下記の特許文献６に示されるように、ベクトル系列のバイナリ特徴系列による音楽断片どうしの類似度を検索する手法である。
【特許文献１】特開平０２−５４３００号公報
【特許文献２】特開２００７−１９３２２２号公報
【特許文献３】特開２００２−２１５６３２号公報
【特許文献４】特開平０６−２９０５７４号公報
【特許文献５】特開２００１−２６５３４９号公報
【特許文献６】特開２００３−０４４０８２号公報
【非特許文献１】「NTT横須賀研究開発センタの歩み」平成１２年１０月「ハミングによる音楽検索システム（SoundCompass）を開発」 [H20年1月22日検索] http://www.ntt.co.jp/cclab/30th/30th_pdf/11.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、これらの検索手法では、次のような問題を有する。
【０００７】
すなわち、第一の手法では、メロディから類似した音楽を検索するようにしているが、この方法では、メロディのみ類似している音楽を検索することができるものの、テンポやリズム、ハーモニーまでも類似している音楽を検索することができない。また、このような検索のプログラム開発する場合、一般的に、周波数同士の比較など、独自の検索プログラムを開発しなければならず、時間やコストがかかってしまう。
【０００８】
また、第二の手法のように、インデックス化された情報をもとに検索する手法や、ユーザが受けた印象をもとに類似する音楽を検索する手法では、音楽全体の音楽的特徴とインデックスや印象との間には個人差があるため、正確に類似した音楽を抽出することが難しくなる。特に、大量の音楽をデータベースに登録する際には、ユーザにすべての音楽を聴いてもらい、受けた印象を入力してもらわなければならないため、時間や手間がかかってしまう。さらには、第一の手法と同様に、独自の検索プログラムを開発しなければならず、時間やコストがかかってしまう。
【０００９】
さらに、第三の手法のように、音楽片どうしの類似度を検索する手法では、音楽全体における音楽的特徴を考慮することができないため、音楽全体のリズムやテンポ、ハーモニーにも類似する音楽を検索することが難しくなる。また、第一の手法などと同様に、周波数同士の比較などのように、独自の検索プログラムを開発しなければならず、時間やコストがかかってしまう。
【００１０】
ところで、類似音楽を出力するようなケースとしては、例えば、インターネットで購入された音楽に「関連する音楽」としてウェブサイト上に表示させるような方法が考えられるが、このような関連する音楽を表示させる場合、瞬時にしてそのウェブサイト上に表示させなければならない。しかるに、通常、音楽を検索する場合は、テキスト検索と異なってデータ量が膨大になり、通信のための時間や、検索のために時間がかかってしまう。このため、類似音楽を検索するためには、正確性のみならず検索の高速性も要求される場合が多い。
【００１１】
そこで、本発明は、上記課題に着目してなされたもので、音楽全体に類似した音楽を、正確かつ高速に検索できるようにしたシステムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
すなわち、本発明は上記課題を解決するために、類似音楽を検索する類似音楽検索システムにおいて、検索対象となる音楽データの入力を受け付ける受付手段と、当該受け付けた音楽データから音楽全体のリズムデータとメロディデータとハーモニーデータをそれぞれ抽出する抽出手段と、当該抽出されたリズムデータ、メロディデータ、ハーモニーデータのそれぞれから最小時間単位毎にビット列を生成するビット列生成手段と、当該生成されたリズムビット列、メロディビット列、ハーモニービット列をそれぞれ一定ビット長単位で区切って単語を生成する単語化手段と、当該単語化手段によって生成された単語のうち、重複した単語をまとめるまとめ処理を行い、当該まとめ処理によって生成されたリズム単語、メロディ単語、ハーモニー単語を検索キーとして、あらかじめデータベースに登録されたリズム単語、メロディ単語、ハーモニー単語の列から類似する音楽を検索する検索手段とを備えるようにしたものである。
【００１３】
このようにすれば、音楽の３要素であるリズム、メロディ、ハーモニーを音楽全体にわたって検索することができるため、より類似した音楽を検索することができるようになる。しかも、音楽全体をデータ化する際、各リズムやメロディ、ハーモニーを単語化して検索するので、データ量を小さくすることができ、既存の全文テキスト検索の技術を利用して類似音楽を高速に検索することができるようになる。また、まとめ処理をすることによって、繰り返し出現するリズムやメロディ、ハーモニーを纏めて検索することができるため、繰り返し同じ表現が出現する音楽を早く検索することができる。また、その際、その単語の出現頻度をあらかじめ登録しておけば、インデックスとして登録された頻出単語を検索して、その出現頻度を調べるだけで類似度の高い音楽を抽出することができるようになる。
【００１４】
また、前記検索手段として、当該単語化手段によって生成された単語のうち、重複した単語をまとめるまとめ処理を行い、当該まとめ処理によって生成されたリズム単語、メロディ単語、ハーモニー単語を検索キーとして、検索キーである単語の出現頻度を考慮してあらかじめデータベースに登録されたリズム単語、メロディ単語、ハーモニー単語の列から類似する音楽を検索するようにする。
【発明の効果】
【００１５】
このように、本発明によれば、音楽の３要素であるリズム、メロディ、ハーモニーを音楽全体にわたって検索することができるため、より類似した音楽を検索することができるようになる。しかも、音楽全体をデータ化する際、各リズムやメロディ、ハーモニーを単語化して検索するので、データ量を小さくすることができ、既存の全文テキスト検索の技術を利用して類似音楽を高速に検索することができるようになる。また、まとめ処理をすることによって、繰り返し出現するリズムやメロディ、ハーモニーを纏めて検索することができるため、繰り返し同じ表現が出現する音楽を早く検索することができる。また、その際、その単語の出現頻度をあらかじめ登録しておけば、インデックスとして登録された頻出単語を検索して、その出現頻度を調べるだけで類似度の高い音楽を抽出することができるようになる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態について図面を参照しながら説明する。図１は、本実施の形態における類似音楽検索システム１を構成するシステム外観図であり、図２は、そのシステムの機能ブロック図である。
【００１７】
本実施の形態における類似音楽検索システム１は、サーバーコンピューター２と、インターネットを介して接続されるクライアントコンピューター３とを備えて構成されるるもので、クライアントコンピューター３で入力された音楽の音楽的特徴をサーバーコンピューター２に送信し、サーバーコンピューター２でデータベース１０に登録されている音楽の中から類似する音楽を検索してクライアントコンピューター３に表示させるようにしたものである。
【００１８】
これらのサーバーコンピューター２やクライアントコンピューター３は、市販されているパーソナルコンピューターなどと同様に、キーボードなどの入力手段や、ＣＰＵや記憶装置などの情報処理手段、ディスプレイなどの表示手段を備えて構成される。なお、このクライアントコンピューター３は、市販されているパーソナルコンピューターのみならず、インターネットに接続可能な携帯電話、ＰＤＡ、テレビなどによって構成することもできる。また、本実施の形態では、インターネットなどのネットワークを介して接続されたシステムを例に挙げて説明するが、ＬＡＮなどの専用ネットワークで接続される場合についても適用することができ、もしくは、サーバーコンピューター２とクライアントコンピューター３の両方の機能を兼ね備えた一台のコンピューターで構成することもできる。このとき、このように一台のコンピューターで構成する場合、類似音楽検索システム１は一台の装置によって構成されることになる。
【００１９】
このような類似音楽検索システム１は、図２に示すように、それぞれサーバーコンピューター２とクライアントコンピューター３に、受付手段４（第一受付手段４１や第二受付手段４２）や抽出手段５、ビット列生成手段６、単語化手段７、検索手段８、出力手段９、データベース１０などを備える。このうち、クライアントコンピューター３には、第一受付手段４１や抽出手段５、ビット列生成手段６を設けるとともに、サーバーコンピューター２には、第二受付手段４２の他、クライアントコンピューター３と同じ抽出手段５、ビット列生成手段６、単語化手段７を設けている。さらにサーバーコンピューター２には、検索手段８や出力手段９、データベース１０などを設けている。
【００２０】
クライアントコンピューター３に設けられる第一受付手段４１は、ユーザから検索対象となる音楽データの入力を受け付ける。この音楽データは、所定のファイル形式（例えば、ＷＡＶＥファイルなどの形式）としてユーザからの入力を受け付け、もしくは、インターネット上で購入された音楽と類似する音楽を検索する場合は、購入された音楽をそのウェブサイトから受け付けて入力できるようにする。
【００２１】
一方、サーバーコンピューター２に設けられる第二受付手段４２は、クライアントコンピューター３から送信されてきた音楽の特徴データの入力を受け付けるとともに、事前の音楽データをデータベース１０に登録する際に、その音楽データの入力を受け付ける。
【００２２】
このように第一受付手段４１や第二受付手段４２によって受け付けられた音楽は、それぞれのコンピューター２、３の抽出手段５によってリズムデータやメロディデータ、ハーモニーデータに分離される。ここで、「リズム」とは、規則的な繰り返し音を意味し、例えば、打楽器の刻む音の拍子を意味する。また、「メロディ」とは、単音を構成する基本周波数のつながりを意味し、また、「ハーモニー」とは、音の調和を意味するものであって、例えば、メロディに付されるコードなどを意味する。この抽出手段５では、受け付けた音楽ファイルの中の渾然一体となった音から、リズムデータやメロディデータ、ハーモニーデータを分離して抽出する。
【００２３】
この抽出手段５によってリズムデータやメロディデータ、ハーモニーデータを抽出する場合、まず、入力された音楽ファイルを構成する音楽データをＦＦＴ（高速フーリエ変換）などの周波数解析を行う。そして、この周波数解析によって得られた信号をスペクトル解析することによって、最小時間単位（例えば、１６分音符に相当する時間単位）での打楽器の発音タイミングを特定する。リズム抽出手段５１は、このリズムデータの抽出を行い、例えば、バスドラムの発音タイミングを特定する場合は、バスドラムの周波数帯域内で一定音圧レベル以上の信号が存在する箇所を発音タイミングとして特定し、また、スネアドラムの発音タイミングを特定する場合は、その対応する周波数帯域内の一定音圧レベル以上の信号が存在する箇所を発音タイミングとして特定する。一方、ハーモニー抽出手段５２は、ＦＦＴなどの周波数解析によって得られた信号をスペクトル解析し、１ビート（ここでは４分音符分とする）単位でのコードネームの特定を行う。このコードネームの特定に際しては、中音周波数帯域内でのスペクトル信号を抽出し、そのうち音圧の高い周波数を複数特定して最もその周波数にマッチングしたコードを割り当てる。また、メロディ抽出手段５３は、同様にＦＦＴによって得られた信号をスペクトル解析し、先の最小時間単位での音高の特定を行う。メロディの特定を行う場合は、キーの音に基づいて一番パワーの強いダイアトニックノートをメロディと判定し、また、ダイアトニックノートでない場合は、前後の音との連続性などを考慮して経過音であるかどうかを判定していく。
【００２４】
そして、このように抽出されたリズムデータ、ハーモニーデータ、メロディデータは、ビット列生成手段６を構成するリズムビット列生成手段６１や、ハーモニービット列生成手段６２、メロディビット列生成手段６３に出力される。
【００２５】
リズムビット列生成手段６１は、図３に示すように、抽出されたリズムデータのうち、最小時間単位で発音された位置を「１」とし、それ以外を「０」としたビット列データを生成する。なお、図３において、上段はバスドラムの発音タイミングを示し、下段はスネアドラムの発音タイミングを示している。また、図３において×印を付した部分は発音されたタイミングを示しており、この×印の部分に対応した所に「１」が付される。このリズムビット列を生成する場合、同じ最小時間単位毎にスネアドラムとバスドラムでそれぞれ１ブロックずつのビット列を生成し、これら２つのビット列を連結されて１バイトのビット列を生成する。このとき、１バイトのビット列は、１６分音符が４個分の４分音符１個分の時間長に対応することになる。これにより、最初の１ビート分ではバスドラム「１０００」とスネアドラム「００００」の連結となり、また、次の１ビート分では、バスドラム「００００」とスネアドラム「１０００」の連結となる
【００２６】
一方、ハーモニービット列生成手段６２は、図４に示すように、コードのルート音を示すルートビット列と、メジャーやマイナーなどのコードタイプを示す付加ビット列を生成する。ここでルートビット列を生成する場合、キーの音により相対化されたルート音を示すものとし、例えば、ハ長調（すなわち、「ド」をキーとした調）の「ド」をルート音とするコードに対しては「Ｉ」のコードである「０００１」（１０進数表記で「１」）を生成し、また、ハ長調の「ミ」をルート音とするコードに対しては、「III」のコードである「０１０１」（半音階で５番目の音であることを示す１０進数表記で「５」）を生成する。また、コードが割り当てられない場合「００００」のビット列とする。一方、付加ビット列を生成する場合、このルートビット列がメジャー、マイナー、メジャー７ｔｈ、マイナー７ｔｈ、メジャー７ｔｈ＃５、マイナー６ｔｈ、マイナー７ｔｈ♭５、マイナーメジャー７ｔｈ、ドミナント７ｔｈ、ディミニッシュ７ｔｈのいずれかであるかを表現できるようなビット列を生成する。そして、例えば、コードがメジャーである場合は「０００１」、マイナーである場合は「００１０」、マイナー７ｔｈである場合は「０１１１」などといったビット列を生成する。これによって、例えば、ハ長調の「ド、ミ、ソ」のコードが割り当てられたときは、ルートビット列として「Ｉ」の「０００１」を生成し、また、メジャーコードであることを示す「０００１」を付加ビット列として付加する。また、ハ長調の「ミ、ソ、シ」のコードが割り当てられるときは、ルートビット列として「III」のコードである「０１０１」を生成し、また、付加ビット列として、これがマイナーコードであることを示す「００１０」を付加する。そして、このようにキーの音により相対化されたコードのルート音とそのコードタイプの組み合わせによってハーモニービット列を生成する。このとき、ルートビット列の４ビットと付加ビット列の４ビットを連結させた１バイトのデータは、１６分音符が４個並んだ４分音符１個分の時間長に対応することになる。
【００２７】
メロディビット列生成手段６３は、キーの音により相対化された１オクターブ内の音高でビット列を生成する。具体的には、図５に示すように、最小時間単位である１６分音符単位で音高を表現するものとし、半音階の音である「１〜１２」の符号を割り当てるとともに、休符に対しては「０」を割り当てる。これらの符号は４ビットで表現することができ、ハ長調の「ド」の音に対しては、仮に１オクターブ異なっている場合であっても、キーと同じ音であることを示す「１」、すなわち２進数表記である「０００１」を割り当てる。また、ハ長調の「ミ」の音に対しては、キーから５半音階離れていることを示す「５」、すなわち２進数表記の「０１０１」を割り当て、また、ハ長調の「ファ」の音に対しては、キーから６半音階離れていることを示す「６」、すなわち２進数表記の「０１１０」を割り当てる。なお、このメロディビット列では、１６分音符１個分を４ビットで表現するため、１６分音符４個分すなわち、１６ビットである２バイトで４分音符１個分のメロディを表現する。
【００２８】
次に、単語化手段７は、このようにして生成されたビット列を所定のビット長単位で区切って単語化する。ここで、「単語化」とは、並べられたビット列を所定バイト数単位で区切って一つのテキストとすることをいう。
【００２９】
リズムビット列から単語を生成する場合、図３〜図６に示すように、一定のビット長単位として、例えば、４／４拍子の１小節分（＝４ビート分）を１単語として生成する。リズムビット列では、１ビートで１バイトを構成しているため、４ビートである４バイトのデータで１単語が生成される。図３の例においては、最初の１ビートに対応する１バイト分で、バスドラム「１０００」およびスネアドラム「００００」のビット列を構成しているため、これを連結させて「１０００００００」すなわち、１０進数表記で「１２８」を単語要素とし、次の１ビートで、バスドラム「００００」スネアドラム「１０００」すなわち、１０進数表記の「８」を単語要素として登録する。このようにして、残りの２ビート分についても同様の処理を行うことにより、図６に示すように、１小節分の「１２８，８，１６０，８」の１単語を生成する。
【００３０】
ハーモニービット列についても、リズムビット列の場合と同様に、４ビートで１単語を生成する。このとき、図４に示すように、最初の１ビートは「０００１０００１」で構成しているため、１０進数表記で「１７」を登録し、同様にして残りの３ビート分について１バイト毎に登録し、１小節分の単語として、図６に示すような「１７，１７，１７，１７」の１単語を生成する。
【００３１】
メロディビット列から単語を生成する場合についても、同様に、４ビートで１単語を生成する。但し、メロディデータについては、２バイトで１ビートを形成しているため、４ビート分のデータである８バイトで１単語を生成する。これを図５および図６に基づいて説明すると、最初の１ビートの先頭１バイトである「０００１０００１」のデータから１０進数表記の「１７」の単語要素を生成し、次の１バイトである「０１０１０１０１」のデータから１０進数表記の「８５」の単語要素を生成する。同様にして、２ビート目の先頭１バイトである「０１１００１１０」と次の図示しない１バイトである「１０００１０００」から１０進数表記の「１０２」「１３６」の単語要素を生成し、以下、同様に３ビート目、４ビート目の単語要素を生成して、図６に示すような１小節分の「０，０，１７，８５，１０２，１３６，１７０，１６０」（１０進数表記）の単語を１単語として登録する。そして、これらの各リズム、ハーモニー、メロディについて同じ区切り単位で単語化し、これを１ビートずつずらしながら単語を生成していく。すなわち、図６に示すように、リズムの最初の単語である「１２８，８，１６０，８」の単語の次は、最初の１ビート分の単語要素である「１２８」から次の４ビート分の「８、１６０，８，１２８」を１単語として登録していく。そして、このような単語化処理をすべての小節にわたって行っていく。
【００３２】
ところで、全小節にわたって単語化処理をしていくと、意味のない単語（例えば、無音）や特徴のない単語（例えば、キーの音に対してルート音のみで構成される単語）、あるいは、繰り返し出現する単語がある場合がある。このような場合、これらの単語をすべて登録すると、データ量が膨大になって、検索に時間がかかってしまう。そこで、同じリズム内、ハーモニー内、メロディ内において、意味のない単語や特徴のない単語が発生した場合は、ストップワード処理として、それらの単語の登録を除外し、また、重複した単語が発生している場合は、一つにまとめるための処理（以下、「まとめ処理」という）を行い、その単語の曲全体に占める割合を記録する。これにより、例えば１分間に１００ビートの曲を５分再生するような音楽が存在した場合、すなわち、５００ビート分の音楽が存在した場合であっても、最終的には多くても１００単語ずつ登録されることが予想される。そして、このように生成された単語列をその音楽の構成要素としてデータベース１０に登録していく。
【００３３】
次に、検索手段８は、検索対象として入力された音楽の単語とこのデータベース１０に登録されている単語の列（以下、「単語列」という）との検索を行う。この検索に際しては、検索対象として入力された音楽を同様の処理でリズム単語列、ハーモニー単語列、メロディ単語列を生成し、これらの各単語とデータベース１０に登録されている音楽のリズム単語列、ハーモニー単語列、メロディ単語列とそれぞれ比較する。この検索には全文テキスト検索によう技術を用い、検索キーとなる単語がデータベース１０にどれだけ登録されているかによって検索結果を出力する。このとき、１つの音楽内における各単語の出現頻度を計算し、例えば、出現頻度の高い単語には高い得点を付けて最終的に一番得点の高い音楽を抽出する。この際、検索キーとなるリズム、ハーモニー、メロディのそれぞれについて重み付けなどを付けておき、例えば、メロディについては、高い重み付けを設定しておく。
【００３４】
出力手段９は、このような検索によって得られた音楽を出力するもので、クライアントコンピューター３のディスプレイなどに検索結果を表示する。この表示出力を行う場合、最も得点の高い音楽を先頭に表示させ、順次得点の低い音楽を表示させていく。
【００３５】
次に、このように構成されたシステムにおける登録と検索の処理手順について、図７および図８のフローチャートを用いて説明する。
【００３６】
まず、あらかじめ音楽データをデータベース１０に登録する際の処理手順について説明する。音楽データをデータベース１０に登録する場合、サーバーコンピューター２の第二受付手段４２を介して音楽を取り込み（ステップＳ１）、抽出手段５を介してその音楽データからリズムデータ、ハーモニーデータ、メロディデータを抽出する（ステップＳ２）。このとき、取り込まれた音楽データをＦＦＴ処理して周波数解析してリズムデータ、ハーモニーデータ、メロディデータを分離し、また、リズムデータについてはバスドラムとスネアドラムのデータを抽出する。そして、リズムデータについては、１６分音符に相当する最小時間単位で発音タイミングを検出し、発音されたタイミング毎に「１」を付けた１ビート分のビット列をバスドラムとスネアドラム毎に生成していく。そして、これらのバスドラムのビット列（４ビット）とスネアドラムのビット列を連結し、同様にして、１バイトずつのリズムビット列を生成していく（ステップＳ３）。また、ハーモニーデータについては、キーの音（ハ長調であれば「ド」）によって相対化されたルート音のビット列（ルートビット列）と、そのコードの種類を示すビット列（付加ビット列）を生成して１ビート毎に１バイトのハーモニービット列を生成する（ステップＳ４）。さらに、メロディデータについても、同様に、キーの音により相対化された１オクターブ内の音高でビット列を生成し、最小時間単位毎に半音階の音である「１〜１２」の符号を生成して、１ビート毎に２バイトのメロディビット列を生成していく（ステップＳ５）。
【００３７】
そして、このように音楽全体にわたってビット列を生成した後、これらのビット列を１小節単位である４ビート毎に区切って単語を生成していくとともに、１ビート分ずつのずらし処理を行って単語化していく（ステップＳ６〜Ｓ８）そして、その後、ストップワード処理を行って意味のない単語や特徴のない単語を除外するとともに、同じ単語が出現する場合は、まとめ処理を行ってその単語の出現頻度を記憶させ（ステップＳ９〜Ｓ１１）、各単語をインデックス化して、それぞれをデータベース１０に登録していく（ステップＳ１２）。
【００３８】
次に、複数の音楽データがデータベース１０に登録されている状態で、ユーザが検索対象となる音楽データを入力して検索を行う場合の処理について図８のフローチャートを用いて説明する。
【００３９】
まず、ユーザが検索対象となる音楽データを入力すると、クライアントコンピューター３の第一受付手段４１を介してこの音楽を取り込み（ステップＴ１）、同様にして、抽出手段５を介してその音楽データからリズムデータ、ハーモニーデータ、メロディデータを抽出するとともに（ステップＴ２）、この抽出されたデータから図７のステップＳ３〜Ｓ５と同様にしてビット列を生成し（ステップＴ３〜Ｔ５）、これらのビット列をサーバーコンピューター２に送信する（ステップＴ６）。なお、ここで単語化処理を行わずにビット列データを送信するのは、単語化処理を行うと、ずらし処理などによってデータ量が多くなってしまうからである。
【００４０】
このように生成されたビット列データをサーバーコンピューター２が受信すると、サーバーコンピューター２は、送信されてきた各ビット列の区切り処理や単語化処理を進め（ステップＴ７）、ストップワード処理を行って意味のない単語や特徴のない単語を除外するとともに、同じ単語が出現した場合は、まとめ処理を行ってその単語の出現頻度を記憶させる（ステップＴ８）。そして、この各単語を検索キーとして、データベース１０内にインデックスとして登録されている音楽を複数ピックアップする（ステップＴ９）。そして、検索キーである単語の出現頻度を考慮して得点付けを行い、最終的に得点の高い音楽から順に出力して（ステップＴ１０）、クライアントコンピューター３のディスプレイに表示させる（ステップＴ１１）。
【００４１】
このように上記実施の形態によれば、検索対象となる音楽データの入力を受け付ける受付手段４と、当該受け付けた音楽データから音楽全体のリズムデータとメロディデータとハーモニーデータをそれぞれ抽出する抽出手段５と、当該抽出されたリズムデータ、メロディデータ、ハーモニーデータのそれぞれから最小時間単位毎にビット列を生成するビット列生成手段６と、当該生成されたリズムビット列、メロディビット列、ハーモニービット列をそれぞれ一定ビット長単位で区切って単語を生成する単語化手段７と、当該単語化手段７によって生成された単語のうち、重複した単語をまとめるまとめ処理を行い、当該まとめ処理によって生成されたリズム単語、メロディ単語、ハーモニー単語を検索キーとして、あらかじめデータベースに登録されたリズム単語、メロディ単語、ハーモニー単語の列から類似する音楽を検索する検索手段８とを備えるようにしたので、音楽の３要素であるリズム、メロディ、ハーモニーを音楽全体にわたって検索することができるため、より類似した音楽を検索することができるようになる。しかも、音楽全体をデータ化する際、各リズムやメロディ、ハーモニーを単語化して検索するので、データ量を小さくすることができ、既存の全文テキスト検索の技術を利用して類似音楽を高速に検索することができるようになる。また、まとめ処理をすることによって、繰り返し出現するリズムやメロディ、ハーモニーを纏めて検索することができるため、繰り返し同じ表現が出現する音楽を早く検索することができる。また、その際、その単語の出現頻度をあらかじめ登録しておけば、インデックスとして登録された頻出単語を検索して、その出現頻度を調べるだけで類似度の高い音楽を抽出することができるようになる。
【００４２】
なお、本発明は上記実施の形態に限定されることなく種々の態様で実施することができる。
【００４３】
例えば、上記実施の形態では、ビット列を生成するための最小時間単位として１６分音符相当にしているが、この長さについてはこれに限定されるものではない。また、この最小時間単位については、リズム、ハーモニー、メロディのそれぞれについて共通して使用するようにしているが、例えば、ハーモニーについては、８分音符相当の最小時間単位などでビット列を生成するようにしてもよい。すなわち、リズム、ハーモニー、メロディのそれぞれ毎に最小時間単位を変えるようにしてもよい。
【００４４】
また、単語化処理を行う場合についても、すべて１小節単位（４ビート単位）で単語化を行うようにしているが、これを異なる単位で単語化するようにしてもよく、例えば、ハーモニーについては６ビート単位で単語化するようにしてもよい。
【００４５】
さらに、上記実施の形態では、テキスト検索を行う場合、検索対象となる単語の出現頻度によって得点を変えるようにしているが、さらに、登録単語全体を鑑みてレアな単語、すなわち、曲全体にわたって一定数以下で登録されている単語については大きな重み付けを行い、得点付けを行うようにしてもよい。また、出現単語の並びも考慮し、並びが同じものについてはより高い得点を付けるようにしてもよい。
【００４６】
加えて、上記実施の形態では、リズム、ハーモニー、メロディの３要素で類似検索するようにしているが、周波数解析によって楽曲構成による類似検索を付け加えるようにしてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施の形態を示す類似音楽検索システムの概要図
【図２】同形態におけるシステムの機能ブロック図
【図３】同形態におけるリズムからビット列を生成する方法を示す図
【図４】同形態におけるハーモニーからビット列を生成する方法を示す図
【図５】同形態におけるメロディからビット列を生成する方法を示す図
【図６】同形態における各ビット列から単語を生成する方法を示す図
【図７】同形態における音楽の登録処理を示すフローチャート
【図８】同形態における音楽の検索処理を示すフローチャート
【符号の説明】
【００４８】
１・・・類似音楽検索システム
２・・・サーバーコンピューター
３・・・クライアントコンピューター
４・・・受付手段
４１・・・第一受付手段
４２・・・二受付手段
５・・・抽出手段
５１・・・リズム抽出手段
５２・・・メロディ抽出手段
５３・・・ハーモニー抽出手段
６・・・ビット列生成手段
６１・・・リズムビット列生成手段
６２・・・メロディビット列生成手段
６３・・ハーモニービット列生成手段
７・・・単語化手段
８・・・検索手段
９・・・出力手段
１０・・・データベース