(57)【特許請求の範囲】
【請求項１】
楽曲の波形を解析してコード進行を抽出するコード進行抽出手段と、
前記コード進行における、あるコードが同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出手段と、
前記コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出手段と、
抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出手段と
を備える情報処理装置。
【請求項２】
前記算出手段は、前記第１の確率および前記第２の確率を次元圧縮し、前記次元圧縮した特徴量を用いて、前記コード進行の類似度を算出する
請求項１の情報処理装置。
【請求項３】
前記コード進行における、他のコードからあるコードに遷移する確率を示す第３の確率を抽出する第３の特徴量抽出手段をさらに備え、
前記算出手段は、抽出された前記コード進行を構成する各コードについての、前記第１の確率、前記第２の確率、および前記弟３の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する
請求項１の情報処理装置。
【請求項４】
楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、
前記コード進行における、あるコードが同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、
前記コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、
抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップと
を含む情報処理方法。
【請求項５】
楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、
前記コード進行における、あるコードが同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、
前記コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、
抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップと
をコンピュータに実行させるプログラム。
【請求項６】
楽曲の波形を解析してコード進行を抽出するコード進行抽出手段と、
前記コード進行における、あるコード進行が同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出手段と、
前記コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出手段と、
抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出手段と
を備える情報処理装置。
【請求項７】
前記算出手段は、前記第１の確率および前記第２の確率を次元圧縮し、前記次元圧縮した特徴量を用いて、前記コード進行の類似度を算出する
請求項６の情報処理装置。
【請求項８】
前記コード進行における、他のコードからあるコード進行に遷移する確率を示す第３の確率を抽出する第３の特徴量抽出手段をさらに備え、
前記算出手段は、抽出された前記コード進行を構成する各コードについての、前記第１の確率、前記第２の確率、および前記弟３の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する
請求項６の情報処理装置。
【請求項９】
楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、
前記コード進行における、あるコード進行が同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、
前記コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、
抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップと
を含む情報処理方法。
【請求項１０】
楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、
前記コード進行における、あるコード進行が同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、
前記コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、
抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、より正確に、コード進行を解析することができるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
楽曲のコード進行を解析する方法（以下、コード進行解析と称する）については、種々の方法が提案されている。コード進行解析においては、例えば、パーソナルコンピュータや携帯音楽プレーヤなどに記録されている膨大な数の楽曲のコード進行を解析することにより、解析されたコード進行に基づいて、それらの楽曲の中から所望の楽曲を検索することができる。
【０００３】
従来のコード進行解析においては、楽曲の音声信号を示す楽曲波形を解析することにより得られたコードに基づいて、その楽曲についてのコード進行を解析していた。具体的には、従来のコード進行解析では、図１に示すように、楽曲Ａの楽曲波形（波形）をコード進行解析したときのコード進行が、Ｃ，Ｆ，Ｇ，Ｃの順に遷移し、同様に、楽曲Ｂの波形をコード進行解析したときのコード進行が、ＣＭ７，Ｄｍ７，Ｇ７，ＣＭ７の順に遷移するとき、楽曲ＡのＣと、楽曲ＢのＣＭ７とが似ているコードであるかを判定したり、楽曲ＡのＣ，Ｆ，Ｇ，Ｃの順に遷移するコード進行と、楽曲ＢのＣＭ７，Ｄｍ７，Ｇ７，ＣＭ７の順に遷移するコード進行とが似ているかを判定したりする。
【０００４】
また、コード進行解析により得られるコード進行にはある程度のエラーが含まれており、それらのエラーの出方は、コード（コード進行）を判定するアルゴリズムごとにそれぞれ異なっている。具体的には、従来のコード進行解析においては、例えば、図２に示すように、正しく解析された場合のコード進行では、Ｃ，Ｆ，Ｇ，Ｃの順に遷移するはずが、実際に解析されたコード進行が、Ｃ，Ｆ，Ｇ，Ｃｍの順に遷移し、メジャーコードのＣの代わりに、マイナーコードのＣｍと判定されてしまい全く意味の異なるコードとして解析されてしまう場合がある。
【０００５】
この場合、従来の音楽理論に基づいた、いわゆるコードの距離感をそのまま適用することはできない。
【０００６】
また、コード進行解析においては、メジャーコードとマイナーコードとのコードの判定は比較的容易ではあるが、様々な４和音を検出可能としていった場合、判定の精度が落ちてしまう。
【０００７】
さらに、楽曲を示す音声信号から各音に対応した周波数成分を抽出し、その抽出した各音に対応した周波数成分のうち、レベルの合計が大となる３つの周波数成分の組によって各々形成される２つの和音を第１および第２の和音候補として検出し、第１および第２和音候補各々の列に対して平滑化処理をすることによって楽曲データを生成する楽曲データ作成装置もある（例えば、特許文献１）。
【０００８】
【特許文献１】特開２００４−１８４５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、楽曲の音声信号をコード進行解析して得られるコード進行には、エラーが含まれているため、正確に楽曲のコード進行を解析することができないという問題があった。
【００１０】
例えば、従来のコード進行解析により得られるコード進行には、ある程度のエラーが含まれており、エラーの出方もコードを判定するアルゴリズムにより異なるので、音楽理論に基づいたコードの距離感をそのまま適用することができなかった。
【００１１】
また、特開２００４−１８４５１０号公報に開示されている楽曲データ作成装置は、楽曲の音声信号の周波数成分から和音（コード）の候補を検出することにより、楽曲データを生成するものであるが、コード進行にエラーが含まれている可能性があるために、正確な楽曲データを生成しているとは言えなかった。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、より正確に、コード進行を解析することができるようにするものである。
【課題を解決するための手段】
【００１３】
本発明の第１の側面の情報処理装置は、楽曲の波形を解析してコード進行を抽出するコード進行抽出手段と、前記コード進行における、あるコードが同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出手段と、前記コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出手段と、抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出手段とを備える。
【００１４】
前記算出手段は、前記第１の確率および前記第２の確率を次元圧縮し、前記次元圧縮した特徴量を用いて、前記コード進行の類似度を算出することができる。
【００１５】
前記コード進行における、他のコードからあるコードに遷移する確率を示す第３の確率を抽出する第３の特徴量抽出手段をさらに備え、前記算出手段は、抽出された前記コード進行を構成する各コードについての、前記第１の確率、前記第２の確率、および前記弟３の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出するようにすることができる。
【００２２】
本発明の第１の側面の情報処理方法は、楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、前記コード進行における、あるコードが同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、前記コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップとを含む。
【００２３】
本発明の第１の側面のプログラムは、楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、前記コード進行における、あるコードが同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、前記コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップとをコンピュータに実行させる。
本発明の第２の側面の情報処理装置は、楽曲の波形を解析してコード進行を抽出するコード進行抽出手段と、前記コード進行における、あるコード進行が同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出手段と、前記コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出手段と、抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出手段とを備える。
前記算出手段は、前記第１の確率および前記第２の確率を次元圧縮し、前記次元圧縮した特徴量を用いて、前記コード進行の類似度を算出することができる。
前記コード進行における、他のコードからあるコード進行に遷移する確率を示す第３の確率を抽出する第３の特徴量抽出手段をさらに備え、前記算出手段は、抽出された前記コード進行を構成する各コードについての、前記第１の確率、前記第２の確率、および前記弟３の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出するようにすることができる。
本発明の第２の側面の情報処理方法は、楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、前記コード進行における、あるコード進行が同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、前記コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップとを含む。
本発明の第２の側面のプログラムは、楽曲の波形を解析してコード進行を抽出するコード進行抽出ステップと、前記コード進行における、あるコード進行が同時に出現する確率を示す第１の確率を抽出する第１の特徴量抽出ステップと、前記コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率を抽出する第２の特徴量抽出ステップと、抽出された前記コード進行を構成する各コードについての、前記第１の確率および前記第２の確率に基づいて、前記コード進行を構成しているあるコード進行と、他のコード進行との類似関係を算出する算出ステップとをコンピュータに実行させる。
【００２４】
本発明の第１の側面の情報処理装置および方法、並びにプログラムにおいては、楽曲の波形を解析してコード進行が抽出され、コード進行における、あるコードが同時に出現する確率を示す第１の確率が抽出され、コード進行における、あるコードから他のコードに遷移する確率を示す第２の確率が抽出され、抽出されたコード進行を構成する各コードについての、第１の確率および第２の確率に基づいて、コード進行を構成しているあるコード進行と、他のコード進行との類似関係が算出される。
本発明の第２の側面の情報処理装置および方法、並びにプログラムにおいては、楽曲の波形を解析してコード進行が抽出され、コード進行における、あるコード進行が同時に出現する確率を示す第１の確率が抽出され、コード進行における、あるコード進行から他のコードに遷移する確率を示す第２の確率が抽出され、抽出されたコード進行を構成する各コードについての、第１の確率および第２の確率に基づいて、コード進行を構成しているあるコード進行と、他のコード進行との類似関係が算出される。
【発明の効果】
【００２５】
以上のように、本発明によれば、より正確に、コード進行を解析することができる。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００３９】
図３は、パーソナルコンピュータ１のハードウェアの構成の例を説明するブロック図である。
【００４０】
図３の例のパーソナルコンピュータ１において、CPU（Central Processing Unit）１１は、ROM（Read Only Memory）１２に記憶されているプログラム、または記録部１８からRAM（Random Access Memory）１３にロードされたプログラムに従って各種の処理を実行する。RAM１３にはまた、CPU１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００４１】
CPU１１、ROM１２、およびRAM１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インタフェース１５も接続されている。
【００４２】
入出力インタフェース１５には、キーボード、マウスなどよりなる入力部１６、スピーカ、LCD（Liquid Crystal Display）などのディスプレイなどよりなる出力部１７、ハードディスクなどより構成される記録部１８、並びにインターネットなどのネットワークを介しての他の機器との通信処理を制御する通信部１９が接続されている。
【００４３】
入出力インタフェース１５にはまた、必要に応じてドライブ２０が接続され、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記録部１８にインストールされる。
【００４４】
なお、パーソナルコンピュータ１のハードウェアの構成は、図３の例に限定されず、後述する図４の機能的構成を少なくとも有していればよい。
【００４５】
図４は、パーソナルコンピュータ１の機能的構成例について説明するブロック図である。図３に示す場合と同様の部分には、同一の番号が付してあり、その説明は適宜省略する。
【００４６】
パーソナルコンピュータ１は、楽曲のデータより再生される音声信号から、楽曲のコード進行を解析するための所定の処理を行う機器であり、本発明の情報処理装置の一例である。
【００４７】
パーソナルコンピュータ１は、入力部１６、出力部１７、記録部１８、およびコード進行解析部３１を含むようにして構成される。
【００４８】
なお、本実施の形態では、パーソナルコンピュータ１は、上述した図３のハードウェア構成を有しているので、コード進行解析部３１は、例えば、図３のCPU１１が実行するソフトウェア（プログラム）として構成される。ただし、パーソナルコンピュータ１のハードウェア構成を図３の構成とは異ならせることで、コード進行解析部３１は、ハードウェア単体として構成することもできるし、ソフトウェアとハードウェアの組み合わせとして構成することもできる。
【００４９】
コード進行解析部３１は、記録部１８に記録されている楽曲（のデータ）の波形から、楽曲のコード進行を解析するための所定の処理を行う。
【００５０】
コード進行解析部３１は、特徴量抽出部４１、コード類似度算出部４２、および楽曲検索部４３を含むようにして構成される。
【００５１】
特徴量抽出部４１は、楽曲の波形から解析されたコード進行に対して、特徴量抽出の処理を施すことにより、それらのコード進行から特徴量を抽出（算出）する。特徴量抽出部４１は、抽出した特徴量を記録部１８（またはRAM１３など）に記録させる。
【００５２】
特徴量抽出部４１は、コード同時出現確率抽出部５１、コード遷移先確率抽出部５２、およびコード遷移元確率抽出部５３を含むようにして構成される。
【００５３】
コード同時出現確率抽出部５１は、楽曲の波形から解析されたコード進行から、あるコードとあるコードとが共に存在する確率（コードの同時出現確率）を抽出（算出）する。
【００５４】
コード遷移先確率抽出部５２は、楽曲の波形から解析されたコード進行から、あるコードが現れたとき、そのコードからそれぞれのコードに遷移する確率（コードの遷移先確率）を抽出（算出）する。
【００５５】
コード遷移元確率抽出部５３は、楽曲の波形から解析されたコード進行から、あるコードが現れたとき、その現れたコードが、どのコードから遷移してきたかの確率（コードの遷移元確率）を抽出（算出）する。
【００５６】
コード類似度算出部４２は、記録部１８（またはRAM１３など）に記録されている特徴量を基に、コード進行（コード）間の類似度を算出する所定の処理を行う。
【００５７】
楽曲検索部４３は、コード類似度算出部４２により算出されたコード進行の類似度の結果を基に、記録部１８に記録されている楽曲のデータを検索する。
【００５８】
ところで、上述したように、コード進行解析では、パーソナルコンピュータ１に記録されている膨大な数の楽曲の波形のコード進行を解析することにより、解析されたコード進行に基づいて、例えば、それらの楽曲の中から所望の楽曲を検索することができる。したがって、以下、パーソナルコンピュータ１による、コード進行解析を用いた処理の一例として、コード進行から所望の楽曲を検索する楽曲検索の処理を説明する。
【００５９】
図５は、パーソナルコンピュータ１による楽曲検索の処理について説明するフローチャートである。
【００６０】
ステップＳ１において、コード進行解析部３１は、楽曲の波形をコード進行解析する。例えば、ステップＳ１において、コード進行解析部３１は、記録部１８に記録されている、MP3（MPEG Audio Layer-3）やAAC（Advanced Audio Coding）などの方式で音声圧縮された複数の楽曲のデータより再生される音声信号から、その音声信号による楽曲波形を解析することにより、それぞれの楽曲におけるコード進行を解析する。
【００６１】
具体的には、コード進行解析部３１は、図６に示すように、楽曲１，楽曲２，楽曲３，・・・，楽曲Ｎである楽曲のデータが、それぞれ記録部１８に記録されている場合、楽曲１では、Ｃ，Ｂ♭，Ａｍ，Ｇ♯，Ｇ，Ｃ，Ｆ，Ｄｍ，Ｄ，Ｇ，・・・の順にコード進行していることを解析し、楽曲２では、Ｃ，Ｄ，Ｆ，Ｃ，Ａ，Ｄｍ，Ｆｍ，Ｃ，Ｄ，Ｇ，Ｃ，Ｆ，Ｇ，・・・の順にコード進行していることを解析する。同様に、コード進行解析部３１は、楽曲３では、Ａｍ，Ｄｍ，Ｅ，Ａｍ，Ｃ，Ｄ，Ｅ，Ｆ，Ｃ，Ｄｍ，Ａｍ，・・・の順にコード進行していることを解析し、楽曲４乃至楽曲Ｎ−１についても同様にコード進行を解析する。また、同様に、楽曲Ｎでは、Ａｍ，Ｇ，Ｆ，Ｃ，Ｅ，Ａｍ，Ｇ，Ｆ，Ｇ，Ａｍ，Ｅ，・・・の順にコード進行していることを解析する。
【００６２】
すなわち、コード進行解析部３１は、楽曲１乃至楽曲Ｎのそれぞれの波形をコード進行解析する。ただし、このとき解析されるコード進行は、楽曲１乃至楽曲Ｎのそれぞれにおいて、例えば、Ｃなどの同一のキーに合わされたものとなる。
【００６３】
なお、コード進行解析部３１により解析される楽曲のデータは、記録部１８に記録されているデータに限らず、例えば、ネットワーク（図示せず）を介して、楽曲を記録している専用のサーバ（図示せず）などから取得した楽曲のデータなど、所定の方式により音声圧縮された楽曲のデータであればよく、それらの楽曲のデータが記録されている機器はいずれであってもよい。
【００６４】
ステップＳ２において、特徴量抽出部４１は、複数の楽曲の波形から解析されたコード進行に対して、特徴量抽出の処理を施して、特徴量を抽出する。例えば、ステップＳ２において、特徴量抽出部４１は、楽曲の波形から解析されたコード進行を構成するコードに関する共起関係または遷移関係を解析することにより、特徴量を抽出し、抽出した特徴量を記録部１８（またはRAM１３など）に記録させる。なお、コードの共起関係または遷移関係の詳細については後述する。
【００６５】
ここで、ステップＳ２における、特徴量抽出部４１による、特徴量抽出の処理の詳細について、図７のフローチャートを参照して説明する。
【００６６】
ステップＳ１１において、コード同時出現確率抽出部５１は、解析された楽曲のコード進行から、コードの同時出現確率を抽出する。例えば、ステップＳ１１において、コード同時出現確率抽出部５１は、楽曲１乃至楽曲Ｎのコード進行について、あるコードとあるコードとが共に存在する確率（コードの同時出現確率）を抽出する。
【００６７】
図８は、コード同時出現確率抽出部５１により抽出（算出）される、コードの同時出現確率の一例を示す図である。
【００６８】
図８の上側に示す表においては、左から１列目および上から１行目は、それぞれ項目を示し、コード名が記載されている。すなわち、説明を分かり易くするために全てのコードを記載していないが、左から１列目の項目には、上から２個目にＣであるコード、上から３個目にＣ♯であるコード、上から４個目にＤであるコードがそれぞれ記載され、以降、メジャーコードからマイナーコードの順に、Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍが記載されている。同様に、上から１行目の項目には、左から２個目にＣであるコード、左から３個目にＣ♯であるコード、左から４個目にＤであるコードがそれぞれ記載され、以降、メジャーコードからマイナーコードの順に、Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍが記載されている。
【００６９】
換言すれば、図８の例で示す表には、左から１列目および上から１行目のそれぞれに、Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂであるメジャーコードと、Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍであるマイナーコードとが、マトリックス状になるように記載されている。
【００７０】
また、図８の下側に示すコード進行は、上述した、楽曲１乃至楽曲Ｎのそれぞれのコード進行を示し、コードの同時出現確率では、例えば、図中の点線で示すように、楽曲１乃至楽曲Ｎにおいて、ＣとＣや、ＣとＤなどの、Ｃであるコードとあるコードとが共に存在する確率などが抽出される。
【００７１】
図８の例で示す表は、例えば、楽曲１乃至楽曲Ｎのコードの同時出現確率を示している。
【００７２】
具体的には、例えば、楽曲１乃至楽曲Ｎでは、Ｃであるコードとあるコードとが共に存在する確率は、ＣとＣが共に存在する確率が95％，ＣとＣ♯が共に存在する確率が5％，ＣとＤが共に存在する確率が56％，・・・，ＣとＢｍが共に存在する確率が0％とそれぞれ抽出される。同様に、楽曲１乃至楽曲Ｎでは、Ｃ♯とあるコードとが共に存在する確率は、Ｃ♯とＣが共に存在する確率が5％，Ｃ♯とＣ♯が共に存在する確率が13％，Ｃ♯とＤが共に存在する確率が7％，・・・，Ｃ♯とＢｍが共に存在する確率が0％とそれぞれ抽出され、Ｄとあるコードとが共に存在する確率は、ＤとＣが共に存在する確率が56％，ＤとＣ♯が共に存在する確率が7％，ＤとＤが共に存在する確率が45％，・・・，ＤとＢｍが共に存在する確率が0％とそれぞれ抽出される。
【００７３】
そして、同様に、楽曲１乃至楽曲Ｎにおける、Ｄ♯乃至Ｂ♭ｍであるコードのそれぞれと、あるコードとが共に存在する確率がそれぞれ抽出され、Ｂｍとあるコードとが共に存在する確率は、ＢｍとＣが共に存在する確率が0％，ＢｍとＣ♯が共に存在する確率が0％，ＢｍとＤが共に存在する確率が0％，・・・，ＢｍとＢｍが共に存在する確率が0％とそれぞれ抽出される。
【００７４】
このようにして、楽曲１乃至楽曲Ｎのコード進行における、コード同時出現確率が、各コード（Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍ）ごとに、それぞれ２４種類ずつ得られることになる。
【００７５】
すなわち、換言すれば、ステップＳ１１の処理において、コード同時出現確率抽出部５１は、各楽曲（楽曲１乃至楽曲Ｎ）におけるコードの同時出現確率を抽出することにより、コードの共起関係を抽出しているとも言える。
【００７６】
図７のフローチャートに戻り、ステップＳ１２において、コード遷移先確率抽出部５２は、解析された楽曲のコード進行から、コードの遷移先の確率を抽出する。例えば、ステップＳ１２において、コード遷移先確率抽出部５２は、楽曲１乃至楽曲Ｎのコード進行について、あるコードが現れたとき、そのコードからそれぞれのコードに遷移する確率（コードの遷移先確率）を抽出する。
【００７７】
図９は、コード遷移先確率抽出部５２により抽出（算出）される、コードの遷移先確率の一例を示す図である。
【００７８】
図９の上側に示す表において、左から１列目および上から１行目のそれぞれが示す項目は、図８の表の例と同様であるので、その説明は省略する。
【００７９】
また、図９の下側に示すコード進行は、上述した、楽曲１乃至楽曲Ｎのそれぞれのコード進行を示し、コードの遷移先確率では、例えば、図中の点線で示すように、楽曲１乃至楽曲Ｎにおいて、ＣからＤに遷移するなどの、Ｃであるコードからあるコードに遷移する確率や、ＦからＣに遷移するなどの、Ｆであるコードからあるコードに遷移する確率などが抽出される。
【００８０】
図９の例では、例えば、楽曲１乃至楽曲Ｎのコードの遷移先確率を示している。
【００８１】
具体的には、例えば、楽曲１乃至楽曲Ｎでは、Ｃであるコードから、あるコードに遷移する確率は、ＣからＣに遷移する確率が0％，ＣからＣ♯に遷移する確率が3％，ＣからＤに遷移する確率が21％，・・・，ＣからＢｍに遷移する確率が0％とそれぞれ抽出される。同様に、楽曲１乃至楽曲Ｎにおける、Ｃ♯乃至Ｅであるコードのそれぞれから、あるコードに遷移する確率がそれぞれ抽出され、Ｆであるコードからあるコードに遷移する確率は、ＦからＣに遷移する確率が25％，ＦからＣ♯に遷移する確率が4％，ＦからＤに遷移する確率が15％，・・・，ＦからＢｍに遷移する確率が0％とそれぞれ抽出される。また、同様に、楽曲１乃至楽曲Ｎにおける、Ｆ♯乃至Ｂ♭ｍであるコードのそれぞれから、あるコードに遷移する確率がそれぞれ抽出され、Ｂｍであるコードからあるコードに遷移する確率は、ＢｍからＣに遷移する確率が0％，ＢｍからＣ♯に遷移する確率が0％，ＢｍからＤに遷移する確率が0％，・・・，ＢｍからＢｍに遷移する確率が0％とそれぞれ抽出される。
【００８２】
このようにして、楽曲１乃至楽曲Ｎのコード進行における、コードの遷移先確率が、各コード（Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍ）ごとに、それぞれ２４種類ずつ得られることになる。
【００８３】
すなわち、換言すれば、ステップＳ１２の処理において、コード遷移先確率抽出部５２は、各楽曲（楽曲１乃至楽曲Ｎ）におけるコードの遷移先確率を抽出することにより、コードの遷移関係を抽出しているとも言える。
【００８４】
図７のフローチャートに戻り、ステップＳ１３において、コード遷移元確率抽出部５３は、解析された楽曲のコード進行から、コードの遷移元の確率を抽出して、特徴量抽出の処理は終了する。例えば、ステップＳ１３において、コード遷移元確率抽出部５３は、楽曲１乃至楽曲Ｎのコード進行について、あるコードが現れたとき、その現れたコードが、どのコードから遷移してきたかの確率（コードの遷移元確率）を抽出する。
【００８５】
図１０は、コード遷移元確率抽出部５３により抽出（算出）される、コードの遷移元確率の一例を示す図である。
【００８６】
図１０の上側に示す表において、左から１列目および上から１行目のそれぞれが示す項目は、図８の表の例と同様であるので、その説明は省略する。
【００８７】
また、図１０の下側に示すコード進行は、上述した、楽曲１乃至楽曲Ｎのそれぞれのコード進行を示し、コードの遷移元確率では、例えば、図中の点線で示すように、楽曲１乃至楽曲Ｎにおいて、ＧからＣに遷移してくるなどの、あるコードからＣであるコードに遷移してくる確率や、ＣからＤに遷移してくるなどの、あるコードからＤであるコードに遷移してくる確率などが抽出される。
【００８８】
図１０の例では、例えば、楽曲１乃至楽曲Ｎのコードの遷移元確率を示している。
【００８９】
具体的には、楽曲１乃至楽曲Ｎでは、あるコードから、Ｃであるコードに遷移してくる確率は、ＣからＣに遷移してくる確率が0％，・・・，ＧからＣに遷移してくる確率が31％，・・・，ＢｍからＣに遷移してくる確率が0％とそれぞれ抽出される。同様に、楽曲１乃至楽曲Ｎにおける、あるコードから、Ｃ＃であるコードに遷移してくる確率は、ＣからＣ＃に遷移してくる確率が3％，・・・，ＧからＣ＃に遷移してくる確率が2％，・・・，ＢｍからＣ＃に遷移してくる確率が0％とそれぞれ抽出され、あるコードから、Ｄであるコードに遷移してくる確率は、ＣからＤに遷移してくる確率が21％，・・・，ＧからＤに遷移してくる確率が10％，・・・，ＢｍからＤに遷移してくる確率が0％とそれぞれ抽出される。
【００９０】
そして、同様に、楽曲１乃至楽曲Ｎにおける、あるコードから、Ｄ♯乃至Ｂ♭ｍであるコードのそれぞれに遷移してくる確率がそれぞれ計算され、あるコードから、Ｂｍであるコードに遷移してくる確率は、ＣからＢｍに遷移してくる確率が0％，・・・，ＧからＢｍに遷移してくる確率が0％，・・・，ＢｍからＢｍに遷移してくる確率が0％とそれぞれ抽出される。
【００９１】
このようにして、楽曲１乃至楽曲Ｎのコード進行における、コードの遷移元確率が、各コード（Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍ）ごとに、それぞれ２４種類ずつ得られることになる。
【００９２】
すなわち、換言すれば、ステップＳ１３の処理において、コード遷移元確率抽出部５３は、各楽曲（楽曲１乃至楽曲Ｎ）におけるコードの遷移元確率を抽出することにより、コードの遷移関係を抽出しているとも言える。
【００９３】
図１１は、特徴量抽出部４１により抽出される特徴量について説明する図である。
【００９４】
図１１の表の例は、コードの同時出現確率（図８）、コードの遷移先確率（図９）、およびコードの遷移元確率（図１０）のそれぞれを、横方向に１つにまとめて表現している表である。すなわち、図１１の表で示される左から１列目の項目が示すコードをＸ（図中では、Ｖ（Ｘ）となっているが、その理由は後述する）とし、上から１行目の項目が示すコードをＹとした場合、左から１行目の項目と、上から１行目の２番目から２５番目までの項目とにより特定される領域（図１１の表のハッチングを施していない領域）には、コードＸとコードＹの同時出現確率が記載され、左から１列目の項目と、上から１行目の２６番目から４９番目までの項目とにより特定される領域（図１１の表の右下がり斜線によりハッチングされた領域）には、コードＸからコードＹに遷移する確率が記載され、左から１列目の項目と、上から１行目の５０番目から７３までの項目とにより特定される領域（図１１の表の左下がり斜線によりハッチングされた領域）には、コードＹからコードＸに遷移する確率が記載されている。
【００９５】
すなわち、上述した、ステップＳ１１乃至ステップＳ１３の処理において、特徴量抽出部４１は、特徴量抽出の処理により、例えば、コードの同時出現確率、コードの遷移先確率、およびコードの遷移元確率の３種類の特徴量を、例えば、Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂであるメジャーコードと、Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍであるマイナーコードとの２４種類のコードについて、それぞれ抽出する。
【００９６】
その結果、各曲（楽曲１乃至楽曲Ｎ）において、各コード（Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍ）は、３×２４＝７２種類の特徴量を得ることになる。
【００９７】
そして、例えば、特徴量抽出部４１は、楽曲１乃至楽曲Ｎから抽出した図１１の例で示される特徴量を記録部１８（またはRAM１３など）に記録させる。すなわち、特徴量抽出部４１は、記録部１８に記録されている楽曲１乃至楽曲Ｎから特徴量をそれぞれ抽出し、抽出した、図１１の例で示される特徴量を記録部１８に記録させることになる。換言すれば、あらかじめ、膨大な数の楽曲群からコードに関する特徴量を抽出しているとも言える。
【００９８】
このとき、記録部１８には、図１１の例で示される特徴量が記録されていることになるので、コード類似度算出部４２は、必要に応じて、記録されている特徴量を読み出して使用することができる。詳細は後述するが、例えば、コード類似度算出部４２は、コード進行間の類似度を算出するとき、コード進行における特徴量のベクトル同士の相関（ベクトル相関）を用いて、類似度を算出することができる。
【００９９】
このとき、図１１の表で示すように、例えば、図１１の表の左から１列目の項目の「Ｃ」の特徴量（ベクトル）（Ｖ（Ｃ）と称する。以下、同様に、コードの特徴量（ベクトル）は、Ｖ（コード名）と称して説明する）は、メジャーコードとマイナーコードとが、３種類づつ抽出されているので、３×２４＝７２種類の特徴量で表すことができる。また、同様に、Ｖ（Ｃ＃）が７２種類の特徴量、Ｖ（Ｄ）が７２種類の特徴量、・・・、Ｖ（Ｂｍ）が７２種類の特徴量でそれぞれ表されることになる。
【０１００】
すなわち、Ｖ（Ｃ）乃至Ｖ（Ｂｍ）は、それぞれ７２種類の特徴量を持っていることになる。
【０１０１】
図５のフローチャートに戻り、ステップＳ３において、コード進行解析部３１は、入力部１６から供給される操作信号を基に、ユーザにより、所望の楽曲を検索するためのコード進行が入力されたか否かを判定する。
【０１０２】
ステップＳ３において、ユーザによりコード進行が入力されていないと判定された場合、ステップＳ３に戻り、上述した処理が繰り返される。すなわち、パーソナルコンピュータ１は、ユーザによりコード進行が入力されるまで待機している。
【０１０３】
一方、ステップＳ３において、ユーザによりコード進行が入力されたと判定された場合、ステップＳ４に進み、コード類似度算出部４２は、楽曲の波形から抽出された特徴量を基に、コード進行（コード）間の類似度を算出する所定の処理を行う。例えば、ステップＳ４において、コード類似度算出部４２は、記録部１８に記録されている、各曲（楽曲１乃至楽曲Ｎ）から抽出された図１１の例で示される特徴量を基に、コード進行（コード）間の類似度を算出する所定の処理を行う。
【０１０４】
ここで、図１２乃至図１４を参照して、コード類似度算出部４２による、コード進行間の類似度を算出する処理の詳細について説明する。
【０１０５】
コードの類似度の算出は、図１２の例で示すように、図中上側で示すユーザにより入力されたコード進行を、少しずつシフトさせながら、図中下側で示す比較対象となる楽曲のコード進行と比較することにより、コード進行（コード）間の類似度を算出する。
【０１０６】
具体的には、ステップＳ３の処理において、ユーザにより入力されたコード進行が、Ｃ→Ｆ→Ｇ→Ｃ（「Ｃ→Ｆ→Ｇ→Ｃ」は、コード進行が、Ｃ，Ｆ，Ｇ，Ｃの順に遷移することを示し、以下、同様に記載する）であり、比較対象となる楽曲のコード進行が、Ｃ，Ｄ，Ｆ，Ｃ，Ａ，Ｄｍ，Ｆｍ，Ｃ，Ｄ，Ｇ，Ｃ，Ｆ，Ｇ、・・・の順に遷移する楽曲２である場合、まず、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃと、比較対象となる楽曲２のコード進行の中の、Ｃ→Ｄ→Ｆ→Ｃとを比較することにより、コード進行間の類似度を算出する。
【０１０７】
ここで、コード進行間の類似度を算出する方法であるが、例えば、コード進行における特徴量のベクトル同士の相関（ベクトル相関）を用いて、算出することができる。
【０１０８】
具体的には、Ｃ→Ｆ→Ｇ→Ｃの特徴量は、例えば、記録部１８に記録されている、「Ｃ」，「Ｆ」，「Ｇ」，「Ｃ」であるコードの、それぞれの特徴量として表せ、Ｃ→Ｄ→Ｆ→Ｃである楽曲２のコード進行の特徴量は、例えば、記録部１８に記録されている、「Ｃ」，「Ｄ」，「Ｆ」，「Ｃ」であるコードの、それぞれの特徴量として表すことができる。
【０１０９】
したがって、図１３の例に示すように、ユーザにより入力されたコードの、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）は、例えば、記録部１８に記録されている、コード進行を構成するコードの特徴量の数がそれぞれ、Ｖ（Ｃ）が７２種類、Ｖ（Ｆ）が７２種類、Ｖ（Ｇ）が７２種類、Ｖ（Ｃ）が７２種類の特徴量からなるので、合計２８８種類の特徴量で表されることになる。また、同様に、楽曲２の、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）は、例えば、記録部１８に記録されている、コード進行を構成するコードの特徴量の数がそれぞれ、Ｖ（Ｃ）が７２種類、Ｖ（Ｄ）が７２種類、Ｖ（Ｆ）が７２種類、Ｖ（Ｃ）が７２種類の特徴量からなるので、合計２８８種類の特徴量で表されることになる。
【０１１０】
コード類似度算出部４２は、記録部１８に記録されている、これらの特徴量を基に、ベクトル相関を用いて、コードの類似度を算出する。例えば、コード類似度算出部４２は、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）（すなわち、Ｖ（Ｃ），Ｖ（Ｆ），Ｖ（Ｇ），Ｖ（Ｃ））と、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）（すなわち、Ｖ（Ｃ），Ｖ（Ｄ），Ｖ（Ｆ），Ｖ（Ｃ））とのベクトル相関により、コード進行間の類似度を算出する。
【０１１１】
ここで、ベクトル相関による類似度（相関係数ｒ）は、例えば、式（１）により算出される。
【０１１２】
【数１】
0004650270.tif 000002
【０１１３】
なお、式（１）において、相関係数ｒは、ベクトルＸとベクトルＹとの相関係数を示し、
0004650270.tif 000003
は、ベクトルＸの平均値、
0004650270.tif 000004
は、ベクトルＹの平均値を示し、ｎは、サンプル数（例えば、ベクトルＸとベクトルＹとの組み合わせの数）を示している。
【０１１４】
したがって、Ｃ→Ｆ→Ｇ→Ｃと、Ｃ→Ｄ→Ｆ→Ｃとを比較する場合、上述したように、ベクトルの要素（特徴量）の数は、１つのコードあたりの特徴量数×コードの数となるので、７２×４＝２８８種類となる。
【０１１５】
そして、式（１）により、ともに２８８種類の特徴量を持つ、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）とＶ（Ｃ→Ｄ→Ｆ→Ｃ）との相関係数ｒ（類似度）を算出することになる。
【０１１６】
図１２に戻り、例えば、コード類似度算出部４２は、まず、ユーザにより入力された、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）と、比較対象となる楽曲２のコード進行の中の、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）とのベクトル相関により、２０であるコード進行間の類似度（類似度２０）を算出する。そして、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃを少しずつシフトさせながら、コード進行間の類似度を算出することになる。
【０１１７】
例えば、コード類似度算出部４２は、図１２に示すように、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃを少しずつシフトさせることにより、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）と、比較対象となる楽曲２のコード進行の中の、Ｖ（Ｃ→Ｄ→Ｇ→Ｃ）とのベクトル相関により、６０であるコード進行間の類似度（類似度６０）を算出し、その後、楽曲２の最後まで、コード進行間の類似度の算出を行う。その結果、コード類似度算出部４２は、楽曲２における複数のコード進行間の類似度が算出することになる。
【０１１８】
コード類似度算出部４２は、例えば、算出した複数の類似度の中から、最も高い類似度を、ユーザにより入力されたコード進行と、比較対象となる楽曲との類似度として算出する。例えば、コード類似度算出部４２は、楽曲２から算出した類似度の結果が、０，１０，２０，・・・，６０，・・・，９０である場合、９０であるコード進行間の類似度（類似度９０）を楽曲２の類似度として算出する。
【０１１９】
また、コード類似度算出部４２は、同様に、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃと、楽曲１および楽曲３乃至楽曲Ｎのそれぞれのコード進行との類似度を算出する。
【０１２０】
すなわち、コード類似度算出部４２は、例えば、図１４の例に示すように、ユーザにより入力されたコード進行と、楽曲１乃至楽曲Ｎのそれぞれのコード進行とのコード進行間の類似度の算出を行うことにより、１０である楽曲１の類似度、９０である楽曲２の類似度、７０である楽曲３の類似度、楽曲４乃至楽曲Ｎ−１のそれぞれの類似度、３０である楽曲Ｎの類似度を算出する。したがって、楽曲２のコード進行が、最も類似度が高いので、ユーザにより入力されたコード進行に最も類似していることになる。
【０１２１】
なお、上述した例においては、ユーザにより入力されたコード進行と、比較対象となる楽曲のコード進行とを、４つのコードずつ比較するとして説明したが、本発明ではそれに限らず、１または複数の、例えば、１，２，３，５，１０，・・・など、所定の数ずつ比較することができる。
【０１２２】
図５のフローチャートに戻り、ステップＳ５において、楽曲検索部４３は、算出されたコード進行の類似度の結果に基づいて、楽曲を検索する。例えば、ステップＳ５において、楽曲検索部４３は、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃと、楽曲１乃至楽曲Ｎのそれぞれのコード進行との類似度の算出結果を基に、記録部１８に記録されている楽曲（のデータ）を、楽曲２、楽曲３、・・・、楽曲Ｎ、楽曲１、・・・の順に、類似度が高い順にソートするようにして検索する。
【０１２３】
ステップＳ６において、コード進行解析部３１は、楽曲の検索結果を、LCDなどの画面からなる出力部１７に表示させて、楽曲検索の処理は終了する。
【０１２４】
図１５は、楽曲の検索結果を表示する出力部１７の画面の一例を示す図である。
【０１２５】
出力部１７の画面には、例えば、楽曲検索部４３による楽曲の検索結果を基に、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃに類似する楽曲として、コード進行の類似度が高い順に、楽曲２，楽曲３，・・・，楽曲Ｎ，楽曲１，・・・が表示される。その結果、ユーザは、Ｃ，Ｆ，Ｇ，Ｃの順に遷移するコード進行に最も近い楽曲として、楽曲２を知ることができる。
【０１２６】
また、ユーザが入力したコード進行の楽曲を検索することができるので、例えば、メジャーコードを入力することにより、明るい楽曲を検索したり、マイナーコードを入力することにより、暗い曲を検索したりすることができる。
【０１２７】
さらに、ユーザが入力したコード進行の楽曲を検索することができるので、例えば、曲を作曲したユーザが、自分が作曲した曲のコード進行と、他の誰かが作曲した曲のコード進行とが一致しないかどうかを調べることができる。
【０１２８】
以上のようにして、パーソナルコンピュータ１は、解析されたコード進行を構成するコードを特徴量として、楽曲検索の処理を行う。その結果、ステップＳ１の処理において、コード進行解析部３１により解析された、複数の楽曲の波形のコード進行に誤りがあった場合でも、類似しているコード進行を判別することができるので、正しく似ているコード進行を判別することができる。
【０１２９】
ところで、コード進行の特徴量であるが、上述した、解析されたコード進行を構成するコードに関係する特徴量に限らず、例えば、コード進行に関係する特徴量など、コード（コード進行）に関する特徴量であればいずれであってもよい。
【０１３０】
次に、図１６乃至図２３を参照して、特徴量抽出部４１による、解析されたコード進行を構成する、あるコード進行を特徴量した場合の処理について説明する。
【０１３１】
図１６は、パーソナルコンピュータ１の機能的構成例の他の例について説明するブロック図である。
【０１３２】
なお、図１６では、図４と同様の箇所には、同一の符号が付してありその説明は省略する。すなわち、図１６において、特徴量抽出部４１は、図４の特徴量抽出部４１を構成する、コード同時出現確率抽出部５１、コード遷移先確率抽出部５２、およびコード遷移元確率抽出部５３の代わりに、コード進行同時出現確率抽出部６１、コード進行遷移先確率抽出部６２、およびコード進行遷移元確率抽出部６３を含むようにして構成される。
【０１３３】
また、本実施の形態では、パーソナルコンピュータ１は、上述した図３のハードウェア構成を有しているので、コード進行解析部３１は、例えば、図３のCPU１１が実行するソフトウェア（プログラム）として構成される。ただし、パーソナルコンピュータ１のハードウェア構成を図３の構成とは異ならせることで、コード進行解析部３１は、ハードウェア単体として構成することもできるし、ソフトウェアとハードウェアの組み合わせとして構成することもできる。
【０１３４】
コード進行同時出現確率抽出部６１は、楽曲の波形から解析されたコード進行から、あるコード進行とあるコード進行とが共に存在する確率（コード進行の同時出現確率）を抽出（算出）する。
【０１３５】
コード進行遷移先確率抽出部６２は、楽曲の波形から解析されたコード進行から、あるコード進行が現れたとき、そのコード進行からそれぞれのコードに遷移する確率（コード進行の遷移先確率）を抽出（算出）する。
【０１３６】
コード進行遷移元確率抽出部６３は、楽曲の波形から解析されたコード進行から、あるコードが現れたとき、その現れたコードが、どのコード進行から遷移してきたかの確率（コード進行の遷移元確率）を抽出（算出）する。
【０１３７】
次に、図１７のフローチャートを参照して、解析されたコード進行を構成する、コードの代わりに、コード進行を特徴量した場合における、パーソナルコンピュータ１による楽曲検索の処理について説明する。
【０１３８】
ステップＳ２１の処理は、図５のステップＳ１の処理と同様であり、その説明は省略する。
【０１３９】
ステップＳ２２において、特徴量抽出部４１は、複数の楽曲の波形から解析されたコード進行に対して、特徴量抽出の処理を施して、特徴量を抽出する。例えば、ステップＳ２２において、特徴量抽出部４１は、楽曲の波形から解析されたコード進行を構成するコード進行に関する共起関係または遷移関係を解析することにより、特徴量を抽出し、抽出した特徴量を記録部１８（またはRAM１３など）に記録させる。なお、コード進行の共起関係または遷移関係の詳細については後述する。
【０１４０】
ここで、ステップＳ２２における、特徴量抽出部４１による、特徴量抽出の処理の詳細について、図１８のフローチャートを参照して説明する。
【０１４１】
ステップＳ３１において、コード進行同時出現確率抽出部６１は、解析された楽曲のコード進行から、コード進行の同時出現確率を抽出する。例えば、ステップＳ３１において、コード進行同時出現確率抽出部６１は、楽曲１乃至楽曲Ｎのコード進行について、あるコード進行とあるコード進行とが共に存在する確率（コード進行の同時出現確率）を抽出する。
【０１４２】
図１９は、コード進行同時出現確率抽出部６１により抽出（算出）される、コード進行の同時出現確率の一例を示す図である。
【０１４３】
図１９の上側に示す表においては、左から１列目および上から１行目は、それぞれ項目を示し、コード名が記載されている。すなわち、説明を分かり易くするために全てのコードを記載していないが、左から１列目の項目には、上から２個目に「Ｃ→Ｃ」（「Ｃ→Ｃ」は、ＣからＣに遷移することを示し、以下、同様に記載する）であるコード進行、上から３個目に「Ｃ→Ｃ♯」であるコード、上から４個目に「Ｃ→Ｄ」であるコードがそれぞれ記載され、以降、メジャーコードからマイナーコードの順に、Ｃから遷移する先のコード（コード進行）として、Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍが記載されている。また、各コードについても同様に、メジャーコードからマイナーコードの順に、各コードから遷移する先のコード（コード進行）として、Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍがそれぞれ記載されている。
【０１４４】
同様に、上から１行目の項目には、左から２個目に「Ｃ→Ｃ」であるコード進行、左から３個目に「Ｃ→Ｃ♯」であるコード、左から４個目に「Ｃ→Ｄ」であるコードがそれぞれ記載され、以降、メジャーコードからマイナーコードの順に、Ｃから遷移する先のコード（コード進行）として、Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍが記載されている。また、各コードについても同様に、メジャーコードからマイナーコードの順に、各コードから遷移する先のコード（コード進行）として、Ｃ，Ｃ♯，Ｄ，Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍがそれぞれ記載されている。
【０１４５】
換言すれば、図１９の例で示す表には、左から１列目の、「Ｃ→Ｃ」，「Ｃ→Ｃ♯」，「Ｃ→Ｄ」，・・・，「Ａｍ→Ｂｍ」，「Ｂ♭ｍ→Ｂｍ」，「Ｂｍ→Ｂｍ」（２４×２４＝５７６行）と、上から１行目の、「Ｃ→Ｃ」，「Ｃ→Ｃ♯」，「Ｃ→Ｄ」，・・・，「Ａｍ→Ｂｍ」，「Ｂ♭ｍ→Ｂｍ」，「Ｂｍ→Ｂｍ」（２４×２４＝５７６列）とが、マトリックス状になるように記載されている。
【０１４６】
また、図１９の下側に示すコード進行は、上述した、楽曲１乃至楽曲Ｎのそれぞれのコード進行を示し、コード進行の同時出現確率では、例えば、図中の点線で示すように、楽曲１乃至楽曲Ｎにおいて、「Ｃ→Ｆ」と「Ｄ→Ｇ」、あるコード進行とあるコード進行とが共に存在する確率などが抽出される。
【０１４７】
図１９の例で示す表は、例えば、楽曲１乃至楽曲Ｎのコード進行の同時出現確率を示している。
【０１４８】
具体的には、例えば、楽曲１乃至楽曲Ｎでは、「Ｃ→Ｃ」乃至「Ｃ→Ｅ」であるコード進行のそれぞれと、あるコード進行とが共に存在する確率が抽出され、「Ｃ→Ｆ」であるコード進行とあるコード進行とが共に存在する確率は、・・・，「Ｃ→Ｆ」と「Ｄ→Ｇ」が共に存在する確率が13％，「Ｃ→Ｆ」と「Ｄ→Ｇ♯」が共に存在する確率が1％，・・・，「Ｃ→Ｆ」と「Ｂｍ→Ｂｍ」が共に存在する確率が0％とそれぞれ抽出される。同様に、楽曲１乃至楽曲Ｎでは、「Ｃ→Ｆ♯」であるコード進行とあるコード進行とが共に存在する確率は、・・・，「Ｃ→Ｆ♯」と「Ｄ→Ｇ」が共に存在する確率が1％，「Ｃ→Ｆ♯」と「Ｄ→Ｇ♯」が共に存在する確率が0％，・・・，「Ｃ→Ｆ♯」と「Ｂｍ→Ｂｍ」が共に存在する確率が0％とそれぞれ抽出される。
【０１４９】
そして、同様に、楽曲１乃至楽曲Ｎにおける、「Ｃ→Ｇ」乃至「Ｂ♭ｍ→Ｂｍ」であるコード進行のそれぞれと、あるコード進行とが共に存在する確率が抽出され、「Ｂｍ→Ｂｍ」であるコード進行とあるコード進行とが共に存在する確率は、・・・，「Ｂｍ→Ｂｍ」と「Ｄ→Ｇ」が共に存在する確率が0％，「Ｂｍ→Ｂｍ」と「Ｄ→Ｇ♯」が共に存在する確率が0％，・・・，「Ｂｍ→Ｂｍ」と「Ｂｍ→Ｂｍ」が共に存在する確率が0％とそれぞれ抽出される。
【０１５０】
このようにして、楽曲１乃至楽曲Ｎのコード進行における、コード同時出現確率が、各コード進行（「Ｃ→Ｃ」乃至「Ｂｍ→Ｂｍ」）ごとに、それぞれ２４×２４＝５７６種類ずつ得られることになる。
【０１５１】
すなわち、換言すれば、ステップＳ３１の処理において、コード進行同時出現確率抽出部６１は、各楽曲（楽曲１乃至楽曲Ｎ）におけるコード進行の同時出現確率を抽出することにより、コード進行の共起関係を抽出しているとも言える。
【０１５２】
図１８のフローチャートに戻り、ステップＳ３２において、コード進行遷移先確率抽出部６２は、解析された楽曲のコード進行から、コード進行の遷移先となるコードの確率を抽出する。例えば、ステップＳ３２において、コード進行遷移先確率抽出部５２は、楽曲１乃至楽曲Ｎのコード進行について、あるコード進行が現れたとき、そのコード進行からそれぞれのコードに遷移する確率（コードの遷移先確率）を抽出する。
【０１５３】
図２０は、コード進行遷移先確率抽出部６２により抽出（算出）される、コード進行の遷移先確率の一例を示す図である。
【０１５４】
図２０の上側に示す表において、左から１列目が示す項目は、図１９の表の例と同様であるので、その説明は省略する。上から１行目の項目は、説明を分かり易くするために全てのコードを記載していないが、左から２個目にＣであるコード、左から３個目にＣ♯であるコード、左から４個目にＤであるコードがそれぞれ記載され、以降、メジャーコードからマイナーコードの順に、Ｄ♯，Ｅ，Ｆ，Ｆ♯，Ｇ，Ｇ♯，Ａ，Ｂ♭，Ｂ，Ｃｍ，Ｃ♯ｍ，Ｄm，Ｄ♯ｍ，Ｅｍ，Ｆｍ，Ｆ♯ｍ，Ｇｍ，Ｇ♯ｍ，Ａｍ，Ｂ♭ｍ，Ｂｍが記載されている。
【０１５５】
換言すれば、図２０の例で示す表には、左から１列目の、「Ｃ→Ｃ」，「Ｃ→Ｃ♯」，「Ｃ→Ｄ」，・・・，「Ａｍ→Ｂｍ」，「Ｂ♭ｍ→Ｂｍ」，「Ｂｍ→Ｂｍ」（２４×２４＝５７６行）と、上から１行目の、Ｃ，Ｃ♯，Ｄ，・・・，Ａｍ，Ｂ♭ｍ，Ｂｍ（２４列）とが、マトリックス状になるように記載されている。
【０１５６】
図２０の例では、例えば、楽曲１乃至楽曲Ｎのコード進行の遷移先確率を示している。
【０１５７】
具体的には、例えば、楽曲１乃至楽曲Ｎでは、「Ｃ→Ｃ」であるコード進行から、あるコードに遷移する確率は、・・・，「Ｃ→Ｃ」からＧに遷移する確率が0％，「Ｃ→Ｃ」からＧ♯に遷移する確率が0％，「Ｃ→Ｃ」からＡに遷移する確率が0％，・・・，「Ｃ→Ｃ」からＢｍに遷移する確率が0％とそれぞれ抽出される。同様に、楽曲１乃至楽曲Ｎにおける、「Ｃ→Ｃ♯」乃至「Ｅ→Ｂｍ」であるコード進行のそれぞれから、あるコードに遷移する確率がそれぞれ抽出され、「Ｆ→Ｃ」であるコードからあるコードに遷移する確率は、・・・，「Ｆ→Ｃ」からＧに遷移する確率が6％，「Ｆ→Ｃ」からＧ♯に遷移する確率が0％，「Ｆ→Ｃ」からＡに遷移する確率が1％，・・・，「Ｆ→Ｃ」からＢｍに遷移する確率が0％とそれぞれ抽出される。また、同様に、楽曲１乃至楽曲Ｎにおける、「Ｆ→Ｃ＃」乃至「Ｂｍ→Ｂ♭ｍ」であるコード進行のそれぞれから、あるコードに遷移する確率がそれぞれ抽出され、「Ｂｍ→Ｂｍ」であるコード進行からあるコードに遷移する確率は、・・・，「Ｂｍ→Ｂｍ」からＧに遷移する確率が0％，「Ｂｍ→Ｂｍ」からＧ♯に遷移する確率が0％，「Ｂｍ→Ｂｍ」からＡに遷移する確率が0％，・・・，「Ｂｍ→Ｂｍ」からＢｍに遷移する確率が0％とそれぞれ抽出される。
【０１５８】
このようにして、楽曲１乃至楽曲Ｎのコード進行における、コード進行の遷移先確率が、各コード進行（「Ｃ→Ｃ」乃至「Ｂｍ→Ｂｍ」）ごとに、それぞれ２４種類ずつ得られることになる。
【０１５９】
すなわち、換言すれば、ステップＳ３２の処理において、コード進行遷移先確率抽出部６２は、各楽曲（楽曲１乃至楽曲Ｎ）におけるコード進行の遷移先確率を抽出することにより、コード進行の遷移関係を抽出しているとも言える。
【０１６０】
図１８のフローチャートに戻り、ステップＳ３３において、コード進行遷移元確率抽出部６３は、解析された楽曲のコード進行から、コード進行の遷移元となるコードの確率を抽出して、特徴量抽出の処理は終了する。例えば、ステップＳ３３において、コード進行遷移元確率抽出部６３は、楽曲１乃至楽曲Ｎのコード進行について、あるコード進行が現れたとき、その現れたコード進行が、どのコードから遷移してきたかの確率（コード進行の遷移元確率）を抽出する。
【０１６１】
図２１は、コード進行遷移元確率抽出部６３により抽出（算出）される、コード進行の遷移元確率の一例を示す図である。
【０１６２】
図２１に示す表において、左から１列目および上から１行目のそれぞれが示す項目は、図２０の表の例と同様であるので、その説明は省略する。
【０１６３】
図２１の例では、例えば、楽曲１乃至楽曲Ｎのコード進行の遷移元確率を示している。
【０１６４】
具体的には、例えば、楽曲１乃至楽曲Ｎでは、あるコードから、「Ｃ→Ｃ」であるコード進行に遷移してくる確率は、・・・，Ｇ＃ｍから「Ｃ→Ｃ」に遷移してくる確率が0％，・・・，Ａｍから「Ｃ→Ｃ」に遷移してくる確率が0％，・・・，Ｂｍから「Ｃ→Ｃ」に遷移してくる確率が0％とそれぞれ抽出される。同様に、楽曲１乃至楽曲Ｎにおける、あるコードから、「Ｃ→Ｃ♯」乃至「Ｃ→Ｆ♯」であるコード進行のそれぞれに遷移してくる確率が抽出され、あるコードから、「Ｃ→Ｇ」であるコード進行に遷移してくる確率は、・・・，Ｇ＃ｍから「Ｃ→Ｇ」に遷移してくる確率が0％，Ａｍから「Ｃ→Ｇ」に遷移してくる確率が6％，・・・，Ｂｍから「Ｃ→Ｇ」に遷移してくる確率が0％とそれぞれ抽出される。
【０１６５】
そして、同様に、楽曲１乃至楽曲Ｎにおける、あるコードから、「Ｃ→Ｇ♯」乃至「Ｂ♭ｍ→Ｂｍ」であるコード進行のそれぞれに遷移してくる確率がそれぞれ計算され、あるコードから、「Ｂｍ→Ｂｍ」であるコード進行に遷移してくる確率は、・・・，Ｇ＃ｍから「Ｂｍ→Ｂｍ」に遷移してくる確率が0％，Ａｍから「Ｂｍ→Ｂｍ」に遷移してくる確率が0％，・・・，Ｂｍから「Ｂｍ→Ｂｍ」に遷移してくる確率が0％とそれぞれ抽出される。
【０１６６】
このようにして、楽曲１乃至楽曲Ｎのコード進行における、コードの遷移元確率が、各コード（「Ｃ→Ｃ」乃至「Ｂｍ→Ｂｍ」）ごとに、それぞれ２４種類ずつ得られることになる。
【０１６７】
すなわち、換言すれば、ステップＳ３３の処理において、コード進行遷移元確率抽出部６３は、各楽曲（楽曲１乃至楽曲Ｎ）におけるコード進行の遷移元確率を抽出することにより、コード進行の遷移関係を抽出しているとも言える。
【０１６８】
図２２は、特徴量抽出部４１により抽出される特徴量について説明する図である。
【０１６９】
図２２の表の例は、コード進行の同時出現確率（図１９）、コード進行の遷移先確率（図２０）、およびコード進行の遷移元確率（図２１）のそれぞれを、横方向に１つにまとめて表現している表である。すなわち、図２２の表で示される左から１列目の項目が示すコードをＸ（図中では、Ｖ（Ｘ）となっているが、その理由は後述する）とし、上から１行目の項目が示すコードをＹとした場合、左から１行目の項目と、上から１行目の２番目から５７７番目までの項目とにより特定される領域（図２２の表のハッチングを施していない領域）には、コード進行Ｘとコード進行Ｙの同時出現確率が記載され、左から１列目の項目と、上から１行目の５７８番目から６０１番目までの項目とにより特定される領域（図２２の表の右下がり斜線によりハッチングされた領域）には、コード進行ＸからコードＹに遷移する確率が記載され、左から１列目の項目と、上から１行目の６０２番目から６２５番目までの項目とにより特定される領域（図２２の表の左下がり斜線によりハッチングされた領域）には、コードＹからコード進行Ｘに遷移する確率が記載されている。
【０１７０】
すなわち、上述した、ステップＳ３１乃至ステップＳ３３の処理において、特徴量抽出部４１は、特徴量抽出の処理により、例えば、コード進行の同時出現確率、コード進行の遷移先確率、およびコード進行の遷移元確率の３種類の特徴量を、例えば、「Ｃ→Ｃ」乃至「Ｂｍ→Ｂｍ」の５７６種類のコードについて、それぞれ抽出する。
【０１７１】
その結果、各曲（楽曲１乃至楽曲Ｎ）において、各コード（「Ｃ→Ｃ」乃至「Ｂｍ→Ｂｍ」）は、２４×２４＋２４＋２４＝６２４種類の特徴量を得ることになる。
【０１７２】
そして、例えば、特徴量抽出部４１は、楽曲１乃至楽曲Ｎから抽出した図２２の例で示される特徴量を記録部１８（またはRAM１３など）に記録させる。すなわち、特徴量抽出部４１は、記録部１８に記録されている楽曲１乃至楽曲Ｎから特徴量をそれぞれ抽出し、抽出した図２２の例で示される特徴量を記録部１８に記録させることになる。換言すれば、あらかじめ、膨大な数の楽曲群からコード進行に関する特徴量を抽出しているとも言える。
【０１７３】
このとき、記録部１８には、図２２の例で示される特徴量が記録されていることになるので、コード類似度算出部４２は、必要に応じて、記録されている特徴量を読み出して使用することができる。上述したように、例えば、コード類似度算出部４２は、コード進行間の類似度を算出するとき、コード進行における特徴量のベクトル相関を用いて、類似度を算出することができる。
【０１７４】
このとき、図２２の表で示すように、例えば、図１１の表の左から１列目の項目のＶ（Ｃ→Ｃ）は、２４×２４＋２４＋２４＝６２４種類の特徴量で表すことができる。また、同様に、Ｖ（Ｃ→Ｃ＃）が６２４種類の特徴量、Ｖ（Ｃ→Ｄ）が６２４種類の特徴量、・・・、Ｖ（Ｂｍ→Ｂｍ）が６２４種類の特徴量でそれぞれ表されることになる。
【０１７５】
すなわち、Ｖ（Ｃ→Ｃ）乃至Ｖ（Ｂｍ→Ｂｍ）は、それぞれ６２４種類の特徴量を持っていることになる。
【０１７６】
図１７のフローチャートに戻り、ステップＳ２３の処理は、図５のステップＳ３の処理と同様であり、その説明は省略する。
【０１７７】
ステップＳ２４において、コード類似度算出部４２は、例えば、コード進行の同時出現確率、コード進行の遷移先確率、およびコード進行の遷移元確率のそれぞれを特徴量として、コード進行（コード）間の類似度を算出する所定の処理を行う。例えば、ステップＳ２４において、コード類似度算出部４２は、記録部１８に記録されている、各曲（楽曲１乃至楽曲Ｎ）から抽出された図２２の例で示される特徴量を基に、コード進行（コード）間の類似度を算出する所定の処理を行う。
【０１７８】
具体的には、上述した場合と同様に、ユーザにより入力されたコード進行が、Ｃ→Ｆ→Ｇ→Ｃであり、比較対象となる楽曲のコード進行が、Ｃ，Ｄ，Ｆ，Ｃ，Ａ，Ｄｍ，Ｆｍ，Ｃ，Ｄ，Ｇ，Ｃ，Ｆ，Ｇ、・・・の順に遷移する楽曲２である場合、まず、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃと、比較対象となる楽曲２のコード進行の中の、Ｃ→Ｄ→Ｆ→Ｃとを、例えば、コード進行における特徴量のベクトル相関を用いることにより、コード進行間の類似度を算出する。
【０１７９】
具体的には、Ｃ→Ｆ→Ｇ→Ｃの特徴量は、例えば、記録部１８に記録されている、「Ｃ→Ｆ」，「Ｆ→Ｇ」，「Ｇ→Ｃ」であるコード進行の、それぞれの特徴量として表せ、Ｃ→Ｄ→Ｆ→Ｃである楽曲２のコード進行の特徴量は、例えば、記録部１８に記録されている、「Ｃ→Ｄ」，「Ｄ→Ｆ」，「Ｆ→Ｃ」であるコード進行の、それぞれの特徴量として表すことができる。
【０１８０】
したがって、図２３の例に示すように、ユーザにより入力されたコードの、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）は、例えば、記録部１８に記録されている、コード進行を構成するコード進行の特徴量の数がそれぞれ、Ｖ（Ｃ→Ｆ）が６２４種類、Ｖ（Ｆ→Ｇ）が６２４種類、Ｖ（Ｇ→Ｃ）が６２４種類の特徴量からなるので、合計１８７２種類の特徴量で表されることになる。また、同様に、楽曲２の、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）は、例えば、記録媒体１８に記録されている、コード進行を構成するコード進行の特徴量の数がそれぞれ、Ｖ（Ｃ→Ｄ）が６２４種類、Ｖ（Ｄ→Ｆ）が６２４種類、Ｖ（Ｆ→Ｃ）が６２４種類の特徴量からなるので、合計１８７２種類の特徴量で表されることになる。
【０１８１】
コード類似度算出部４２は、記録部１８に記録されている、これらの特徴量を基に、ベクトル相関を用いて、コードの類似度を算出する。例えば、コード類似度算出部４２は、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）（すなわち、Ｖ（Ｃ→Ｆ），Ｖ（Ｆ→Ｇ），Ｖ（Ｇ→Ｃ））と、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）（すなわち、Ｖ（Ｃ→Ｄ），Ｖ（Ｄ→Ｆ），Ｖ（Ｆ→Ｃ））とのベクトル相関を、式（１）により算出することで、コード進行間の類似度を算出する。
【０１８２】
コード類似度算出部４２は、例えば、ユーザにより入力されたコード進行と、楽曲１乃至楽曲Ｎのそれぞれのコード進行とのコード進行間の類似度の算出を行うことにより、１５である楽曲１の類似度、８５である楽曲２の類似度、７０である楽曲３の類似度、楽曲４乃至楽曲Ｎ−１のそれぞれの類似度、２０である楽曲Ｎの類似度を算出する。したがって、楽曲２のコード進行が、類似度が最も高いので、ユーザにより入力されたコード進行に最も類似していることになる。
【０１８３】
図１７のフローチャートに戻り、ステップＳ２５およびステップＳ２６の処理のそれぞれは、図５のステップＳ５およびステップＳ６の処理と同様であり、その説明は省略して、楽曲検索の処理は終了する。
【０１８４】
以上のようにして、パーソナルコンピュータ１は、解析されたコード進行を構成するコードの代わりに、コード進行を特徴量として、楽曲検索の処理を行う。その結果、ステップＳ２１の処理において、コード進行解析部３１により解析された、複数の楽曲の波形のコード進行に誤りがあった場合でも、類似しているコード進行を判別することができるので、正しく似ているコード進行を判別することができる。
【０１８５】
なお、上述した例においては、コードとコード進行のそれぞれの特徴量を別々に抽出する場合について説明したが、勿論、コードとコード進行のそれぞれの特徴量を両方抽出し、抽出されたコードとコード進行の特徴量のそれぞれを用いて、コード進行間の類似度を算出するようにしてもよい。
【０１８６】
そのとき、特徴量抽出部４１は、例えば、上述した、図１１のコードの特徴量（コードの同時出現確率、コードの遷移先確率、およびコードの遷移元確率）と、図２２のコード進行の特徴量（コード進行の同時出現確率、コード進行の遷移先確率、およびコード進行の遷移元確率）とを抽出し、抽出したそれらの特徴量を記録部１８（またはRAM１３など）に記録させる。
【０１８７】
そして、コード類似度算出部４２は、例えば、記録部１８に記録されている、コードの同時出現確率、コードの遷移先確率、コードの遷移元確率、コード進行の同時出現確率、コード進行の遷移先確率、およびコード進行の遷移元確率のそれぞれを特徴量として、コード進行（コード）間の類似度を算出する所定の処理を行う。
【０１８８】
具体的には、上述した場合と同様に、ユーザにより入力されたコード進行が、Ｃ→Ｆ→Ｇ→Ｃであり、比較対象となる楽曲のコード進行が、Ｃ，Ｄ，Ｆ，Ｃ，Ａ，Ｄｍ，Ｆｍ，Ｃ，Ｄ，Ｇ，Ｃ，Ｆ，Ｇ、・・・の順に遷移する楽曲２である場合、まず、ユーザにより入力された、Ｃ→Ｆ→Ｇ→Ｃと、比較対象となる楽曲２のコード進行の中の、Ｃ→Ｄ→Ｆ→Ｃとを、例えば、コード進行における特徴量のベクトル相関を用いることにより、コード進行間の類似度を算出する。
【０１８９】
具体的には、Ｃ→Ｆ→Ｇ→Ｃの特徴量は、例えば、記録部１８に記録されている、「Ｃ」，「Ｆ」，「Ｇ」，「Ｃ」であるコードと、「Ｃ→Ｆ」，「Ｆ→Ｇ」，「Ｇ→Ｃ」であるコード進行の、それぞれの特徴量として表せ、Ｃ→Ｄ→Ｆ→Ｃである楽曲２のコード進行の特徴量は、例えば、記録部１８に記録されている、「Ｃ」，「Ｄ」，「Ｆ」，「Ｃ」であるコードと、「Ｃ→Ｄ」，「Ｄ→Ｆ」，「Ｆ→Ｃ」であるコード進行の、それぞれの特徴量として表すことができる。
【０１９０】
したがって、図２４の例に示すように、ユーザにより入力されたコードの、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）は、例えば、記録部１８に記録されている、コード進行を構成するコードとコード進行の特徴量の数がそれぞれ、Ｖ（Ｃ）が７２種類、Ｖ（Ｆ）が７２種類、Ｖ（Ｇ）が７２種類、Ｖ（Ｃ）が７２種類、Ｖ（Ｃ→Ｆ）が６２４種類、Ｖ（Ｆ→Ｇ）が６２４種類、Ｖ（Ｇ→Ｃ）が６２４種類の特徴量からなるので、合計２１６０種類の特徴量で表されることになる。また、同様に、楽曲２の、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）は、例えば、記録媒体１８に記録されている、コード進行を構成するコード進行の特徴量の数がそれぞれ、Ｖ（Ｃ）が７２種類、Ｖ（Ｄ）が７２種類、Ｖ（Ｆ）が７２種類、Ｖ（Ｃ）が７２種類、Ｖ（Ｃ→Ｄ）が６２４種類、Ｖ（Ｄ→Ｆ）が６２４種類、Ｖ（Ｆ→Ｃ）が６２４種類の特徴量からなるので、合計２１６０種類の特徴量で表されることになる。
【０１９１】
コード類似度算出部４２は、記録部１８に記録されている、このような特徴量を基に、ベクトル相関を用いて、コードの類似度を算出する。例えば、コード類似度算出部４２は、Ｖ（Ｃ→Ｆ→Ｇ→Ｃ）（すなわち、Ｖ（Ｃ），Ｖ（Ｆ），Ｖ（Ｇ），Ｖ（Ｃ），Ｖ（Ｃ→Ｆ），Ｖ（Ｆ→Ｇ），Ｖ（Ｇ→Ｃ））と、Ｖ（Ｃ→Ｄ→Ｆ→Ｃ）（すなわち、Ｖ（Ｃ），Ｖ（Ｄ），Ｖ（Ｆ），Ｖ（Ｃ），Ｖ（Ｃ→Ｄ），Ｖ（Ｄ→Ｆ），Ｖ（Ｆ→Ｃ））とのベクトル相関を、式（１）により算出することで、コード進行間の類似度を算出する。
【０１９２】
コード類似度算出部４２は、例えば、ユーザにより入力されたコード進行と、楽曲１乃至楽曲Ｎのそれぞれのコード進行とのコード進行間の類似度の算出を行うことにより、１０である楽曲１の類似度、９０である楽曲２の類似度、６５である楽曲３の類似度、楽曲４乃至楽曲Ｎ−１のそれぞれの類似度、３０である楽曲Ｎの類似度を算出する。したがって、楽曲２のコード進行が、最も類似度が高いので、ユーザにより入力されたコード進行に最も類似していることになる。
【０１９３】
以上のようにして、パーソナルコンピュータ１は、解析されたコード進行を構成するコードとコード進行の両方を特徴量として、楽曲検索の処理を行うこともできる。
【０１９４】
なお、コード進行の特徴量は、上述した例に限らず、例えば、あるコード（コード進行）の１曲中の出現割合（例えば、５分の曲中に、あるコードが１分存在していたら1/5=20％）、コード（コード進行）Ｘの出現割合×コード（コード進行）Ｙの出現割合（例えば、コードＸの出現割合（0.1）×コードＹの出現割合（0.2）=0.02）、あるコード進行からあるコード進行への遷移確率（例えば、「Ｃ→Ｆ」から「Ｇ→Ｃ」への遷移確率）など、解析されたコード進行を構成するコード（コード進行）に関する特徴量またはそれらの特徴量の組み合わせであればいずれであってもよい。
【０１９５】
また、上述した例においては、コード類似度算出部４２による、コード進行間の類似度を算出する方法として、コード進行間における特徴量のベクトル同士の相関（ベクトル相関）を用いて算出するとして説明したが、本発明においては、それに限らず、例えば、得られた特徴量を主成分分析などにより次元圧縮をしたり、ユークリット距離法などの距離関数を用いて算出したりするようにしてもよい。
【０１９６】
さらに、上述した例においては、特徴量の抽出方法として、３和音のメジャー、マイナーコードのみを使用して特徴量を抽出しているが、本発明においては、それに限らず、例えば、４和音は勿論、ハーモニーを示すものであればいずれであってもよい。
【０１９７】
図２５は、コード類似度算出部４２による、主成分分析の算出結果の例を示す図である。
【０１９８】
図２５で示される例において、図中の点は、抽出された特徴量を主成分分析することにより、第１主成分と第２主成分を軸に各コードをプロットしたものである。図２５では、例えば、図中下側の、「Ｄ＃」，「Ｂｍ」，「Ｆ」，「Ｂ」，「Ｇ＃ｍ」，「Ｄ＃ｍ」などのように、図中の点が近い位置にあるコードほど、楽曲中で似た意味を持つコードとなる。
【０１９９】
すなわち、コード類似度算出部４２は、主成分分析を行うことにより、例えば、図２５で示す点の位置が近い位置にあるコードは、楽曲中で似た意味を持つコードであるとして、コード進行間の類似度を算出する。
【０２００】
なお、主成分分析の分析結果は、コード進行を解析するアルゴリズムや、解析した楽曲のジャンルなどによっても異なる。
【０２０１】
以上のように、本発明によれば、より正確に、コード進行を解析することができる。
【０２０２】
また、本発明によれば、より正確に、楽曲のコード進行を解析することができるので、楽曲のコード進行を解析したときに、コードの検出結果が誤っていたとしても、似ているコードであれば、同じような解析結果として分類することができる。その結果、コードの検出結果が誤っていたとしても、その誤りによる影響を最小限に食い止めることができる。例えば、コード進行解析において、様々な４和音を検出可能とした場合であっても、判定の精度を落とさず、正しく似たコード進行を判別できる。
【０２０３】
さらに、本発明によれば、コード進行が厳密に同じでなくても、似ているコード進行の楽曲を検索することができる。その結果、ユーザは、所望の楽曲を検索することができる。
【０２０４】
なお、上述した例においては、本発明の情報処理装置として、パーソナルコンピュータ１を一例に説明したが、本発明はそれに限らず、例えば、携帯音楽プレーヤ、携帯電話機、またはPDA（Personal Digital Assistance）など、楽曲の波形を解析する機能を有することのできる機器であればいずれであってもよい。また、専用のサーバにより、上述した機能を実装することで、処理の結果（例えば、楽曲の検索結果など）のみをクライアントとなる端末に提供するようにしてもよい。
【０２０５】
また、上述した例においては、楽曲を検索する処理を一例にして説明したが、本発明はこれに限らず、例えば、記録部１８に記録されているある楽曲と、他の楽曲とのコード進行の類似度を比較したりするようにしてもよい。さらに、本発明においては、楽曲の波形から抽出した特徴量をメタデータとして蓄積しておくようにしてもよい。
【０２０６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２０７】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD（Digital Versatile Disk））を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、若しくは半導体メモリなどよりなる図３のリムーバブルメディア２１により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されている図３のROM１２や記録部１８などで構成される。
【０２０８】
また、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２０９】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２１０】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２１１】
【図１】従来のコード進行解析を説明する図である。
【図２】従来のコード進行解析を説明する図である。
【図３】パーソナルコンピュータのハードウェアの構成の例を説明するブロック図である。
【図４】パーソナルコンピュータの機能的構成例について説明するブロック図である。
【図５】パーソナルコンピュータによる楽曲検索の処理について説明するフローチャートである。
【図６】コード進行解析について説明する図である。
【図７】特徴量抽出部による特徴量抽出の処理の詳細について説明するフローチャートである。
【図８】コード同時出現確率抽出部により抽出される、コードの同時出現確率の一例を示す図である。
【図９】コード遷移先確率抽出部により抽出される、コードの遷移先確率の一例を示す図である。
【図１０】コード遷移元確率抽出部により抽出される、コードの遷移元確率の一例を示す図である。
【図１１】特徴量抽出部により抽出される特徴量について説明する図である。
【図１２】コード進行の類似度の算出の詳細について説明する図である。
【図１３】コード進行の類似度の算出の詳細について説明する図である。
【図１４】コード進行の類似度の算出の詳細について説明する図である。
【図１５】楽曲の検索結果を表示する出力部の画面の一例を示す図である。
【図１６】パーソナルコンピュータの機能的構成例の他の例について説明するブロック図である。
【図１７】パーソナルコンピュータによる楽曲検索の処理について説明するフローチャートである。
【図１８】特徴量抽出部による特徴量抽出の処理の詳細について説明するフローチャートである。
【図１９】コード進行同時出現確率抽出部により抽出される、コード進行の同時出現確率の一例を示す図である。
【図２０】コード進行遷移先確率抽出部により抽出される、コード進行の遷移先確率の一例を示す図である。
【図２１】コード進行遷移元確率抽出部により抽出される、コード進行の遷移元確率の一例を示す図である。
【図２２】特徴量抽出部により抽出される特徴量について説明する図である。
【図２３】コード進行の類似度の算出の詳細について説明する図である。
【図２４】コード進行の類似度の算出の詳細について説明する図である。
【図２５】主成分分析の算出結果の例を示す図である。
【符号の説明】
【０２１２】
１  パーソナルコンピュータ，  １１  CPU，  １２  ROM，  １３  RAM，  １６  表示部，  １７  出力部，  １８  記録部，  １９  通信部，  ２０  ドライブ，  ２１  リムーバブルメディア，  ３１  コード進行解析部，  ４１  特徴量抽出部，  ４２  コード類似度算出部，  ４３  楽曲検索部，  ５１  コード同時出現確率抽出部，  ５２  コード遷移先確率抽出部，  ５３  コード遷移元確率抽出部，  ６１  コード進行同時出現確率抽出部，  ６２  コード進行遷移先確率抽出部，  ６３  コード進行遷移元確率抽出部
【図１】
0004650270.tif 000005
【図２】
0004650270.tif 000006
【図３】
0004650270.tif 000007
【図４】
0004650270.tif 000008
【図５】
0004650270.tif 000009
【図６】
0004650270.tif 000010
【図７】
0004650270.tif 000011
【図８】
0004650270.tif 000012
【図９】
0004650270.tif 000013
【図１０】
0004650270.tif 000014
【図１１】
0004650270.tif 000015
【図１２】
0004650270.tif 000016
【図１３】
0004650270.tif 000017
【図１４】
0004650270.tif 000018
【図１５】
0004650270.tif 000019
【図１６】
0004650270.tif 000020
【図１７】
0004650270.tif 000021
【図１８】
0004650270.tif 000022
【図１９】
0004650270.tif 000023
【図２０】
0004650270.tif 000024
【図２１】
0004650270.tif 000025
【図２２】
0004650270.tif 000026
【図２３】
0004650270.tif 000027
【図２４】
0004650270.tif 000028
【図２５】
0004650270.tif 000029