(57)【要約】【課題】楽曲のＫｅｙ及びコード進行を推定する楽曲コード進行装置を提供する。【解決手段】楽曲コード進行推定装置は、楽曲の音声データを取得する音声データ取得部（２１、１７）と、音声データを解析して、楽曲のコード進行を推定するコード進行推定部（１１）と、を備える。コード進行推定部（１１）は、音声データを周波数解析してクロマベクトルを求め、クロマベクトルから楽曲のＫｅｙを特定し、クロマベクトルから、複数の所定の小区間のそれぞれにおいてコードを求め、特定した楽曲のＫｅｙに基づき小区間毎に求めたコードを変換し、変換したコード群の中から抽出した所定数のコードの組み合わせに基づいて楽曲のコード進行を特定する。【選択図】図１
2018025644.tif 000002
【特許請求の範囲】
【請求項１】
楽曲の音声データを取得する音声データ取得部と、
Ｋｅｙと音階の組み合わせとの対応を示すＫｅｙ情報を格納する記憶部と、
音声データを解析して、楽曲のＫｅｙを特定するＫｅｙ推定部と、を備え、
前記Ｋｅｙ推定部は、
所定区間の音声データを周波数解析してクロマベクトルを求め、
前記クロマベクトルに含まれる音階の中から複数の音階を選択し、
選択した複数の音階の組み合わせと前記Ｋｅｙ情報に基づきＫｅｙ候補を決定し、
決定したＫｅｙ候補の中から前記楽曲のＫｅｙを特定する、
楽曲Ｋｅｙ推定装置。
【請求項２】
前記Ｋｅｙ推定部は、前記クロマベクトルに含まれる音階において、信号強度の低い方から所定数の音階を選択する、
請求項１記載の楽曲Ｋｅｙ推定装置。
【請求項３】
前記Ｋｅｙ推定部は、
Ｋｅｙ候補が１つの場合、そのＫｅｙ候補を楽曲のＫｅｙとして特定し、
Ｋｅｙ候補が２つの場合、所定の判定条件に基づいてＫｅｙ候補の中から１つのＫｅｙを選定し、その選定したＫｅｙを楽曲のＫｅｙとして特定し、
Ｋｅｙ候補が３つの場合、音階の循環モデルを用いてＫｅｙ候補の中から１つのＫｅｙを選定し、その選定したＫｅｙを楽曲のＫｅｙとして特定する
請求項１記載の楽曲Ｋｅｙ推定装置。
【請求項４】
前記所定の判定条件は、
２つのＫｅｙ候補間における同じ音階の強度がより高いことである第１の条件と、
２つのＫｅｙ候補間で異なる音階の強度がより低いことである第２の条件と、
各Ｋｅｙ候補が示す音階の１段低い音階の強度がより高いことである第３の条件と
を含む、
請求項３記載の楽曲Ｋｅｙ推定装置。
【請求項５】
楽曲の音声データを取得する音声データ取得部と、
音声データを解析して、楽曲のコード進行を推定するコード進行推定部と、を備え、
前記コード進行推定部は、
前記音声データを周波数解析してクロマベクトルを求め、
前記クロマベクトルから楽曲のＫｅｙを特定し、
前記クロマベクトルから、複数の所定の小区間のそれぞれにおいてコードを求め、前記特定した楽曲のＫｅｙに基づき前記小区間毎に求めたコードを変換し、変換したコード群の中から抽出した所定数のコードの組み合わせに基づいて前記楽曲のコード進行を特定する
楽曲コード進行推定装置。
【請求項６】
前記コード進行推定部は、前記特定したＫｅｙと“Ｃ”の差分に基づき前記小区間毎に求めたコードを変換する、
請求項５記載の楽曲コード進行推定装置。
【請求項７】
前記コード進行推定部は、
所定数のコードの組み合わせをコード進行パターンとして、複数の小区間において求めたコード群の中から複数のコード進行パターンを抽出し、
各コード進行パターンの発生確率及び出現頻度に基づいて１つのコード進行パターンを特定し、特定したコード進行パターンに基づいて楽曲のコード進行を特定する、
請求項５記載の楽曲コード進行推定装置。
【請求項８】
前記コード進行推定部は、トニック、ドミナント、サブドミナントの３種類の音特性間の遷移確率を示すマルコフモデルを用いて前記コード進行パターンの発生確率を算出する、
請求項７記載の楽曲コード進行推定装置。
【請求項９】
前記コード進行推定部は、
所定区間の音声データを周波数解析してクロマベクトルを求め、
前記クロマベクトルに含まれる音階の中から複数の音階を選択し、
選択した複数の音階の組み合わせと、Ｋｅｙと音階の組み合わせとの対応を示すＫｅｙ情報に基づきＫｅｙ候補を決定し、
決定したＫｅｙ候補の中から前記楽曲のＫｅｙを特定する、
請求項５から８のいずれかに記載の楽曲コード進行推定装置。
【請求項１０】
情報処理装置を楽曲のＫｅｙを特定する装置として動作させるためのプログラムであって、
情報処理装置の制御装置に、
所定区間の音声データを周波数解析してクロマベクトルを求める機能と、
前記クロマベクトルに含まれる音階の中から複数の音階を選択する機能と、
選択した複数の音階の組み合わせと前記Ｋｅｙ情報に基づきＫｅｙ候補を決定する機能と、
決定したＫｅｙ候補の中から前記楽曲のＫｅｙを特定する機能と
を実行させる、
プログラム。
【請求項１１】
情報処理装置を楽曲のコード進行を特定する装置として動作させるためのプログラムであって、
情報処理装置の制御装置に、
音声データを周波数解析してクロマベクトルを求める機能と、
前記クロマベクトルから楽曲のＫｅｙを特定する機能と
前記クロマベクトルから、複数の所定の小区間のそれぞれにおいてコードを求める機能と、
前記特定した楽曲のＫｅｙに基づき前記小区間毎に求めたコードを変換する機能と、
変換したコード群の中から抽出した所定数のコードの組み合わせに基づいて前記楽曲のコード進行を特定する機能と
を実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲のＫｅｙを推定する装置及びコード進行を推定する装置に関する。
【背景技術】
【０００２】
近年、楽曲の自動解析分野の研究は盛んに行われており（特許文献１等参照）、実用レベルのアプリケーションが多く開発されている。例えば、類似楽曲検索ソフト、コードトラッキング機能を持つソフト、採譜ソフト等のアプリケーションがある。楽曲を自動解析することで、楽曲の定量評価や採譜につなげることができる。自動解析によって得られる主な情報として、メロディ解析、サビ区間推定等が存在するが、その中でも楽曲の雰囲気に大きく意味付けを行うのがコード進行である。コード進行を適切に解析することで、楽曲がもつ雰囲気といった曖昧なものを定量的に評価することが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０１５５３５号公報
【特許文献２】特開２００９−１８６９４４号公報
【特許文献３】特開２００８−０９６８４４号公報
【特許文献４】特開２００７−２４８６１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、コード進行を取得する為に周波数解析による音程分析を用いるのみでは、複雑な信号に対しては高い精度を見込めない。また、コードの特性を評価するためには、楽曲のＫｅｙ（調）を決定する必要もある。
【０００５】
本発明は、楽曲のＫｅｙを推定する装置及びコード進行を推定する装置を提供する。
【課題を解決するための手段】
【０００６】
本発明に係る楽曲Ｋｅｙ推定装置は、楽曲の音声データを取得する音声データ取得部と、Ｋｅｙと音階の組み合わせとの対応を示すＫｅｙ情報を格納する記憶部と、音声データを解析して、楽曲のＫｅｙを特定するＫｅｙ推定部と、を備える。Ｋｅｙ推定部は、所定区間の音声データを周波数解析してクロマベクトルを求め、クロマベクトルに含まれる音階の中から複数の音階を選択し、選択した複数の音階の組み合わせと前記Ｋｅｙ情報に基づきＫｅｙ候補を決定し、決定したＫｅｙ候補の中から前記楽曲のＫｅｙを特定する。
【０００７】
本発明に係る楽曲コード進行推定装置は、楽曲の音声データを取得する音声データ取得部と、音声データを解析して、楽曲のコード進行を推定するコード進行推定部と、を備える。
コード進行推定部は、音声データを周波数解析してクロマベクトルを求め、クロマベクトルから楽曲のＫｅｙを特定し、クロマベクトルから、複数の所定の小区間のそれぞれにおいてコードを求め、特定した楽曲のＫｅｙに基づき小区間毎に求めたコードを変換し、変換したコード群の中から抽出した所定数のコードの組み合わせに基づいて楽曲のコード進行を特定する。
【０００８】
本発明に係る第１のプログラムは、情報処理装置を楽曲のＫｅｙを特定する装置として動作させるためのプログラムである。第１のプログラムは、情報処理装置の制御装置に、所定区間の音声データを周波数解析してクロマベクトルを求める機能と、クロマベクトルに含まれる音階の中から複数の音階を選択する機能と、選択した複数の音階の組み合わせと前記Ｋｅｙ情報に基づきＫｅｙ候補を決定する機能と、決定したＫｅｙ候補の中から前記楽曲のＫｅｙを特定する機能とを実行させる、プログラムである。
【０００９】
本発明に係る第２のプログラムは、情報処理装置を楽曲のコード進行を特定する装置として動作させるためのプログラムである。第２のプログラムは、情報処理装置の制御装置に、音声データを周波数解析してクロマベクトルを求める機能と、クロマベクトルから楽曲のＫｅｙを特定する機能と、クロマベクトルから、複数の所定の小区間のそれぞれにおいてコードを求める機能と、特定した楽曲のＫｅｙに基づき小区間毎に求めたコードを変換する機能と、変換したコード群の中から抽出した所定数のコードの組み合わせに基づいて楽曲のコード進行を特定する機能とを実行させる、プログラムである。
【発明の効果】
【００１０】
本発明によれば、楽曲データを解析することにより、楽曲の所定区間におけるＫｅｙを自動で抽出でき、さらに、楽曲に対するコード進行パターンを自動で抽出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係る楽曲コード進行推定装置及び楽曲Ｋｅｙ推定装置の一実施の形態である楽曲解析装置の構成を示す図
【図２】楽曲解析装置における処理を示すフローチャート
【図３】解析区間におけるクロマベクトルの算出を説明するための図
【図４】楽曲解析装置におけるＫｅｙ推定処理を示すフローチャート
【図５】音階と、音階を特定するラベルとの対応を説明した図
【図６】５つの低値（クロマベクトルの値が低い音階）の選択を説明した図
【図７】各Ｋｅｙと５つの低値の組み合わせとの対応を示すＫｅｙ情報の構成例を示す図
【図８】音階の循環モデルを説明した図
【図９】“Ｃ”と“Ｇ”のＫｅｙについてそれぞれの構成音を示した図
【図１０】楽曲解析装置におけるコード進行推定処理を示すフローチャート
【図１１】Ｋｅｙ“Ｃ”へ変換する際のシフト量を示した図
【図１２】解析区間におけるコード進行パターン候補（４つのコード列）の抽出を説明した図
【図１３】コード特定によるマルコフモデルを示した図
【図１４】解析区間におけるコードからの６つのコードの順次抽出を説明した図
【発明を実施するための形態】
【００１２】
以下、適宜図面を参照しながら、本発明にかかる楽曲コード進行推定装置及び楽曲Ｋｅｙ推定装置の実施の形態を説明する。
【００１３】
（実施の形態１）
１．楽曲解析装置の構成
図１は、本発明に係る楽曲コード進行推定装置及び楽曲Ｋｅｙ推定装置の一実施の形態である楽曲解析装置の構成を示す図である。楽曲解析装置は、楽曲のＫｅｙ（調）及びコード進行を推定する（すなわち自動で特定する）装置である。楽曲解析装置は、楽曲の任意の区間に対するクロマベクトルを推定し、推定されたクロマベクトルに基づいて、Ｋｅｙを特定し、さらにコード進行を特定する。
【００１４】
図１に、楽曲解析装置１０の構成を示す。楽曲解析装置１０は例えばパーソナルコンピュータのような情報処理装置で構成される。楽曲解析装置１０は、その全体動作を制御するコントローラ１１と、画面表示を行う表示部１３と、ユーザが操作を行う操作部１５と、データやプログラムを記憶する記憶部１７とを備える。
【００１５】
表示部１３は、例えば、液晶ディスプレイや有機ＥＬディスプレイで構成される。操作部１５は、使用者が指示を行うための装置であり、キーボード、マウス、タッチパネル等で構成される。
【００１６】
記憶部１７は機能を実現するために必要なパラメータ、データ及びプログラムを記憶する記録媒体であり、コントローラ１１で実行される制御プログラムや各種のデータを格納している。記憶部１７は、例えば、ハードディスク（ＨＤＤ）、半導体記憶装置（ＳＳＤ）、フラッシュメモリで構成される。
【００１７】
コントローラ１１は、ＣＰＵやＭＰＵで構成され、記憶部１７に格納された所定の制御プログラム１７ａを実行することで所定の機能を実現する。すなわち、コントローラ１１は制御プログラム１７ａを実行することでＫｅｙ推定部及びコード進行推定部として機能する。コントローラ１１で実行される制御プログラム１７ａはネットワークを介して提供されてもよいし、ＣＤ−ＲＯＭ等の記録媒体によって提供されてもよい。コントローラ１１の機能はハードウェアとソフトウェアの協働により実現してもよいし、ハードウェア回路のみで実現してもよい。すなわち、コントローラ１１は、ＣＰＵ、ＭＰＵのみならず、ＤＳＰ、ＦＰＧＡ、ＡＳＩＣ等で構成することができる。
【００１８】
楽曲解析装置１０は、プリンタ等の外部機器に接続するための通信インターフェース１９を含む。通信インターフェース１９は、ＵＳＢ、ＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４等に準拠して外部機器とデータ等の通信を行うインターフェース回路である。楽曲解析装置１０はさらにネットワークに接続するためのＩＥＥＥ８０２．１１、ＷｉＦｉ等の規格に準拠して通信を行うインターフェース回路を備えても良い。楽曲解析装置１０は、さらに、音声を音声信号に変換するマイク２０からの音声信号を入力する音声入力インターフェース２１を備える。音声入力インターフェース２１を介して入力された音声信号はＡＤコンバータ（図示せず）により音声データに変換されてコントローラ１１に入力される。
【００１９】
２．楽曲解析装置の動作
上記の構成を有する楽曲解析装置１０の動作を説明する。図２は、楽曲解析装置１０のＫｅｙ及びコード進行の推定に関する処理を示すフローチャートである。図２を用いて、楽曲解析装置１０の処理を説明する。なお、図２に示す処理は、コントローラ１１により制御プログラム１７ａにしたがい実行される。
【００２０】
図２において、楽曲解析装置１０のコントローラ１１は、まず、楽曲の一部の区間を解析区間として、その解析区間の音声データを抽出する（Ｓ１１）。楽曲は多くの場合、左右２チャンネルのステレオ信号により形成されている。本実施の形態では、左右の各チャンネルのどちらの波形も有用な情報として利用するために、解析においては左右のチャンネルの信号の合算信号を用いている。解析区間は、楽曲中の任意の区間に設定してよい。例えば、解析区間は、より楽曲の特徴が表れるサビ区間に設定する。解析区間には、図３に示すように複数のサンプリング区間が含まれる。
【００２１】
コントローラ１１は、解析区間の音声データを周波数解析してクロマベクトルを求め、そのクロマベクトルに基づいて楽曲のＫｅｙを推定（すなわち、特定）する（Ｓ１２）。この処理では、楽曲の音声信号を周波数解析し、解析区間におけるクロマベクトルを求め、クロマベクトルからＫｅｙを推定する。さらに、コントローラ１１は、推定したＫｅｙに基づき、その楽曲のコード進行を推定（特定）する（Ｓ１３）。
【００２２】
以下、Ｋｅｙ推定処理（Ｓ１２）及びコード進行推定処理（Ｓ１３）についてより具体的に説明する。
【００２３】
２−１．Ｋｅｙ推定
図４は、図２に示すフローチャートにおけるＫｅｙ推定処理（Ｓ１２）の詳細を示すフローチャートである。コントローラ１１は、まず、解析区間におけるクロマベクトルを算出する（Ｓ２１）。より具体的には、まず、解析区間におけるサンプリング区間毎に、周波数解析を行ってクロマベクトルＣＨｉ（ｉ＝１，２，・・・）を算出する。周波数解析手法として例えば連続ウェーブレット変換を用いる。連続ウェーブレット変換とはマザーウェーブレットと呼 ばれる基本波の拡大縮小，平行移動によってあらゆる波形を表現する手法であり、解析元の波形の時間軸情報を保持することが可能である。クロマベクトルは、各音階（音）（Ｃ，Ｃ＃，Ｄ，・・・）の信号強度を成分に持つ。クロマベクトルは、各サンプリング区間内で周波数毎（音階毎）に合算していくことにより生成される。
【００２４】
各サンプリング区間でクロマベクトルを求めた後、解析区間全体で合算したクロマベクトルを求める。すなわち、同じ音階（音）毎（クロマベクトルの成分毎）に、クロマベクトルの値を合算することで、解析区間全体についてのクロマベクトルを求める。図５は、このようにして求めたクロマベクトルの一例を示している。なお、本実施の形態では、各音階（音）に対して音階（音）を示すラベルを付している。図５のカッコ内の数字がラベルを示している。例えば、音階「Ｃ」は「０」の音と、音階「Ｆ」は「５」の音と表す。
【００２５】
次に、コントローラ１１は、クロマベクトルを参照し、「Ｃ」〜「Ｂ」の１２音の中で、信号強度の弱いものから５つの音（以下「低値音」という）を選択する（Ｓ２２）。例えば、図５に示すクロマベクトルの例では、低値音として、図６に示すように、Ｃ＃、Ｄ＃、Ｆ＃、Ｇ＃、Ａ＃の５音が選択される。
【００２６】
低音値が選択された場合、低音値の組み合わせからＫｅｙ候補を設定する（Ｓ２３）。図７は、各Ｋｅｙと、そのＫｅｙを構成する５つの低値音の組み合わせとの対応を示すＫｅｙ情報１７ｂを示した図である。Ｋｅｙ情報１７ｂでは、ラベルを用いて音を表している。図７のＫｅｙ情報１７ｂは、例えば、Ｋｅｙ「Ｃ」と、ラベルが１、３、６、８、１０の音の組み合わせとが対応づけられている。Ｋｅｙの特定においては、信号強度の高い音を用いるのが一般的であると思われるが、本実施の形態では、信号強度の低い方の音を用いてＫｅｙを特定している。このように信号強度の高い音を用いずに信号強度の低い音を用いる理由としては、Ｋｅｙの特定精度が向上することが、発明者の実験により得られたためである。また、信号強度が低い方から５つの音を用いる理由としては、本実施の形態では、特にポピュラー音楽を想定しており、ポピュラー音楽は７音使用による構成（ダイヤトニックスケール）であることが多いためである。コントローラ１１は、Ｋｅｙ情報１７ｂを参照し、選択した低音値の組み合わせからＫｅｙ候補を設定する。
【００２７】
Ｋｅｙ候補の設定は以下のように行う。コントローラ１１は、Ｋｅｙ情報１７ｂで定義した組み合わせの中で、５つの低値音の組み合わせと最も多く一致する組み合わせのＫｅｙを、Ｋｅｙ候補に選定する。例えば、選択した５つの低値音の組み合わせが（１，３，６，８，１０）である場合、図７のＫｅｙ情報１７ｂを参照してＫｅｙ「Ｃ」が一意的に特定される。
【００２８】
一方、５つの低値音の組み合わせから、Ｋｅｙが一意に求まらない場合、条件を変えてＫｅｙの決定を行う。具体的には、求めた５つの低値音の中から４音の組み合わせパターンを構築し、そのパターンが、Ｋｅｙ情報１７ｂにて定義されたいずれの低値音の組み合わせに近いかを判定する。例えば、本来Ｋｅｙが“Ｃ”の楽曲（＝（１，３，６，８，１０））であり、５つの低値音が（１，３，５，６，８）と検出された場合、Ｋｅｙ情報１７ｂにおいて、４つの音の組み合わせが該当する組み合わせをＫｅｙ候補として算出する。図７では、（１，３，６，８）が一致する“Ｃ”と“Ｆ”と、（１，３，５，８）が一致する“Ｇ”の３つのＫｅｙ候補が求められる。４音の組み合わせによるＫｅｙ候補の決定で算出されるＫｅｙ候補の数は最高３で、最低では１となっている。
【００２９】
なお、低値音として５つの音が選択できない場合もある。例えば、クロマベクトルの値が同じ音が複数あり、信号強度の弱いものから５つを選択したときに、５種類より多くの音が選択される場合がある。そのような場合は、選択される音の数が５以下になるように音を選択する。例えば、クロマベクトルにおいて、信号強度の弱い方から音のレベルを選択した場合に、「０．０９」、「０．１１７」、「０．１４７」、「０．１９１」、「０．２３」、「０．２３」となる場合、６つの音が該当する。この場合は、信号強度の弱いものから４つを低音値として選択する。同様に、低音値として、２つまたは３つの音しか選択されない場合もある。この場合、低音値として選択された４個ないし２個の音の組み合わせからＫｅｙ情報１７ｂを参照してＫｅｙ候補を設定する。すなわち、４ないし２個の低音値を構成音として含むＫｅｙをＫｅｙ候補に設定する。なお、低音値が１つのみの場合はエラーとして処理する。
【００３０】
以上のようにしてＫｅｙ候補が設定されると、コントローラ１１はＫｅｙ候補からその楽曲のＫｅｙ（以下「推定Ｋｅｙ」という）を決定する（Ｓ２４）。具体的には以下のようにしてＫｅｙ候補から推定Ｋｅｙを決定する。
【００３１】
推定Ｋｅｙの決定の方法はＫｅｙ候補の数に応じて異なる。以下それぞれの場合について説明する。
【００３２】
（１）Ｋｅｙ候補の数＝１のとき
そのＫｅｙ候補を推定Ｋｅｙに決定する。
【００３３】
（２）Ｋｅｙ候補の数＝３のとき
本発明者は、３つのＫｅｙ候補が求められる場合、正しいＫｅｙをＮとした場合に、求められる候補がＮ、Ｎ−７、Ｎ＋７の３つとなることを発見した。そこで、２つのＫｅｙ候補からの距離が７となる共通のＫｅｙ候補がある場合、その共通のＫｅｙを推定Ｋｅｙに決定する。そのような共通のＫｅｙがない場合は、エラーとして処理する。図８は、音階の循環モデルを説明した図である。音階の加減算はこのモデルに従って行う。例えば、Ｄ−２は“Ｄ”から反時計回りに２だけ戻り“Ｃ” となる。Ｄ＋２は“Ｄ”から時計回りに２だけ進み“Ｅ” となる。よって、例えば、３つのＫｅｙ候補が求められ、それらが“Ｃ”、“Ｆ”、“Ｇ”であった場合、Ｆ＋７＝ＣかつＧ−７＝Ｃであるため、推定Ｋｅｙは“Ｃ”となる。
【００３４】
（３）Ｋｅｙ候補の数＝２のとき
２つのＫｅｙ候補間の距離が２であるか否かによって処理が異なる。以下それぞれの場合の処理を説明する。
【００３５】
ａ）２つのＫｅｙ候補間の距離が２のとき
２つのＫｅｙ候補から距離が７にあるＫｅｙを推定Ｋｅｙに設定する。
ｂ）２つのＫｅｙ候補間の距離が２でないとき
２つのＫｅｙ候補に対して所定の判定条件にしたがい３種類の投票を行い、投票値がより大きい方のＫｅｙ候補を推定Ｋｅｙに決定する。以下、３種類の投票について説明する。
【００３６】
＜投票１＞
２つのＫｅｙ候補間で、同じ音階について強度を比較し、強度の高い方の音階を有するＫｅｙ候補に投票する。
【００３７】
例えば、“Ｃ”と“Ｇ”がＫｅｙ候補として求められており、解析区間で求めた“Ｃ”のクロマベクトルの値が０．５であり、“Ｇ”のクロマベクトルの値が０．３であった場合、強度の強い方の“Ｃ”に票を入れる。
【００３８】
＜投票２＞
各候補を構成する音階の中で２つのＫｅｙ候補の間で異なる音階について信号強度を比較し、比較した結果、信号強度の低い方の音階を有するＫｅｙ候補に投票する。
【００３９】
Ｋｅｙ候補を構成する音階について、２つのＫｅｙ候補の間で、５つの低値音の中の１つだけ異なった音階が存在する場合がある。例えば、“Ｃ”と“Ｇ”がＫｅｙ候補として求められた場合、“Ｃ”を構成する低音値の組み合わせは、（１，３，６，８，１０）であり，“Ｇ”を構成する低音値の組み合わせは（１，３，５，８，１０）である。ここで、１つだけ異なっている音階はＦ（５）とＦ＃（６）である。よって、Ｆ（５）とＦ＃（６）の信号強度を比較し、信号強度が低い方の構成音を含むＫｅｙ候補に投票する。例えば、解析区間で求めたクロマベクトルにおいて“Ｆ”の値が０．６であり、“Ｆ＃”の値が０．３であった場合、“Ｆ＃”の方が小さいので，構成音に“Ｆ＃”（６）が含まれている“Ｃ”に投票する。
【００４０】
＜投票３＞
各Ｋｅｙ候補を示す音の１つ前の音（音階）（すなわち、１段低い音）について強度を比較し、強度のより高い方のＫｅｙ候補に投票する。
【００４１】
例えば、２つのＫｅｙ候補として“Ｃ”と“Ｇ”が求められたとする。図９は、“Ｃ”と“Ｇ”のＫｅｙそれぞれの構成音を示した図である。同図中、“○”が記載されている音がそれぞれのＫｅｙの構成音である。“○”が記載されていない音は、前述の低値音を示す。
【００４２】
Ｋｅｙの構成音には、Ｋｅｙとなっている音から１だけ減算した音も含まれている。例えば、Ｋｅｙが“Ｃ”の場合、“Ｃ”から１だけ減算した音は“Ｂ”であり、“Ｂ”は図９に示すように“Ｃ”のＫｅｙの構成音に含まれる。Ｋｅｙとなっている音から１だけ減算した音の信号強度は、Ｋｅｙを構成するため、強度の低い値ではない。よって、正しいＫｅｙが“Ｃ”であった場合、“Ｃ”から１だけ減算した音である“Ｂ”の信号強度は低くはない。一方で、Ｋｅｙ候補として“Ｇ”も挙がっている場合、“Ｇ”から１を減算した音はＦ＃であるが，これは”Ｃ”の構成音に含まれていない。つまり、２つのＫｅｙ候補について、それぞれのＫｅｙ候補から１だけ減算した音の信号強度を比較し、信号強度がより高い方がよりＫｅｙ候補である可能性が高いと考えられる。そこで、本楽曲解析装置１０では、Ｋｅｙ候補をＮ１、Ｎ２とした場合、Ｎ１−１、Ｎ２−１の音（信号強度）の強さを比較し、信号強度が強い方のＫｅｙ候補に票を入れる。例えば、各クロマベクトルにおいて、“Ｃ”から１だけ減算した“Ｂ”の信号強度が０．４であり、“Ｇ”から１だけ減算したＦ＃の信号強度が０．１であった場合、“Ｂ”の方が信号強度が大きいので、“Ｃ”に対して投票する。
【００４３】
以上のように、２つのＫｅｙ候補に対して３種類の投票を行い、投票値の合計が大きい方のＫｅｙ候補を推定Ｋｅｙに決定する。
【００４４】
以上のようにして、楽曲の所定区間のクロマベクトルからその楽曲のＫｅｙを決定することができる。
【００４５】
２．コード進行の推定
次にコード進行の推定処理（Ｓ１３）について説明する。図１０は、図２に示すフローチャートにおけるコード進行の推定処理（Ｓ１３）の詳細を示すフローチャートである。図１０のフローチャートを用いてコード進行の推定処理を説明する。
【００４６】
コントローラ１１は、解析区間において所定の小区間毎にコードを求める（Ｓ３１）。ここで、小区間は１拍（四分音符１つ分）の区間に設定される。楽曲解析装置１０は、楽曲の解析区間における周波数解析の際にＢＰＭ（Beat Per Minute）トラッキングを行っている。これにより、小区間すなわち１拍（四分音符１つ分）の区間のサンプルの数を算出できる。コントローラ１１は、各サンプル区間のコードをクロマベクトルから求め、１拍分（小区間分）のコードを求める。すなわち、１サンプリング毎にクロマベクトルからコード候補を算出し、１拍の区間（小区間）内で閾値以上の頻度があるコード候補をその小区間のコードに決定する。
【００４７】
次に、コントローラ１１は、Ｋｅｙが“Ｃ”となるように、解析区間における各小区間のコードの音階（音程）をシフトする（Ｓ３２）。具体的には、図４のフローチャートにしたがい事前に求められたＫｅｙと“Ｃ”の差分だけ各小区間のコードをシフトする。図１１に、Ｋｅｙを“Ｃ”へ変換する時のシフト量を示す。図１１を参照すると、例えば、事前に求められたＫｅｙが“Ｆ”である場合、そのシフト量は−５であることがわかる。よって、事前に求められたＫｅｙが“Ｆ”である場合、小区間のコード“Ｅ”は、−５だけシフトされて“Ｂ”に変換される。同様に、小区間のコード“Ｇ”は、−５だけシフトされ“Ｄ”に変換される。
【００４８】
次に、コントローラ１１は、以上のようにしてシフトされた解析区間におけるコード群の先頭から６コードの組み合わせを抽出する（Ｓ３３）。例えば、図１２に示すように、シフト後の解析区間におけるコードが“ＦＧＥＦＡＧＥＡＦＧＥＡ・・・”である場合、まず、その先頭から６つのコード“ＦＧＥＦＡＧ”が抽出される。
【００４９】
次に、コントローラ１１は、抽出した６コードの組み合わせの中から出現順序を変えずに、４つのコードの可能な組み合わせを全て抽出して、コード進行パターン候補を決定する（Ｓ３４）。例えば、図１２に示す例では、“ＦＧＥＦＡＧ”から、“ＦＧＥＦ”、“ＦＧＥＡ”、“ＦＧＥＧ”等がコード進行パターン候補として抽出される。
【００５０】
次に、コントローラ１１は、抽出した各コード進行パターン候補の発生確率をマルコフモデルに基づき計算する（Ｓ３５）。
【００５１】
図１３は、コード進行パターンの発生確率の算出に用いるマルコフモデルを示した図である。一般に、Ｋｅｙを取得することで、ある瞬間のコードがどの特性を持っているかを取得することができる。コードの特性とは物語における「起承転結」のようなもので、音楽理論として広く知られている。本発明で扱うコード特性の種類は“トニック（Ｔ）”、“サブドミナント（ＳＤ）”、“ドミナント（Ｄ）”の３種類である。一般的に使われているコード進行は、このコード特性を加味した上で心地よく聞こえるように構成されている。本願発明者は、このコード特性を評価として利用することで、適切なコード進行の推定を行う補助になるのではないかと考え、図１３に示すようなマルコフモデルを利用することに至った。
【００５２】
例えば、コード進行パターン候補が“ＦＧＥＦ”である場合、マルコフモデルを使用して、ＦからＧへ遷移する確率（０．５）と、ＧからＥへ遷移する確率（０．５）と、ＥからＦへ遷移する確率（０．３）とを求め、それらを用いてコード進行パターン候補“ＦＧＥＦ”の発生確率として０．０７５（＝０．５×０．５×０．３）を求める。
【００５３】
なお、発生確率の算出において、コード進行の最初がドミナントコードである場合と、コード進行の最後がトニックコードである場合に、それぞれ重みを付与してもよい。これは一般的なコード進行はドミナントコード以外のコードで始まり、トニックコードで終わるためである。例えば、最初がドミナントコードである場合、得られた発生確率を減少させ、最後がトニックコードである場合は、得られた発生確率を倍にするように、それぞれの重みを設定してもよい。
【００５４】
次に、コントローラ１１は、コード進行パターン候補のそれぞれについて、その出現頻度を求める（Ｓ３６）。
【００５５】
解析区間全体に含まれるコード群の中から抽出された１組のコード（６つのコード）について、上記の処理（Ｓ３４−Ｓ３６）が終了すると、コントローラ１１は、解析区間に含まれる全てのコードにおいて、６コードの全ての組み合わせが抽出されたか否かを判断する（Ｓ３７）。
【００５６】
全ての６コードの組み合わせが抽出されていない場合、コントローラ１１は、抽出開始位置を１ずつずらして新たな６コードを設定しながら（Ｓ４０）、設定した６コードから複数のコード進行パターン候補を設定し（Ｓ３４）、各コード進行パターンについて発生確率および出現頻度を求める（Ｓ３５〜Ｓ３６）。例えば、図１４に示すように、設定する６コードを“ＦＧＥＦＡＧ”、“ＧＥＦＡＧＥ”、“ＥＦＡＧＥＡ”、・・・のように順次シフトしながら、各６コードの組み合わせについて、４コードからなる可能なコード進行パターンを求め、各コード進行パターンについて発生確率および出現頻度を求める。
【００５７】
以上のようにして、４コードからなる複数のコード進行パターン候補が求められると、コード進行パターン候補のそれぞれについて、発生確率及び出現頻度から評価値を算出する（Ｓ３８）。各コード進行パターン候補の評価値は次式により算出する。
評価値＝コード進行パターン候補の発生確率×１０α
α＝コード進行パターン候補の出現頻度−１
【００５８】
コントローラ１１は、全てのコード進行パターン候補の中で最も高い評価値を示すコード進行パターン候補を、推定されたコード進行パターンに設定する（Ｓ３９）。
【００５９】
以上のようにして、楽曲解析装置１０は楽曲のコード進行を特定することができる。
【００６０】
３．まとめ
以上のように本実施の形態の楽曲解析装置１０は、コード進行推定装置として動作する。コード進行推定装置としての楽曲解析装置１０は、楽曲の音声データを取得する音声入力インターフェース２１（データ取得部の一例）と、音声データを解析して、楽曲のコード進行を推定するコントローラ１１（コード進行推定部の一例）と、を備える。コントローラ１１は、音声データを周波数解析してクロマベクトルを求め、クロマベクトルから楽曲のＫｅｙを特定し、クロマベクトルから、複数の所定の小区間のそれぞれにおいてコードを求め（Ｓ３１）、特定した楽曲のＫｅｙに基づき小区間毎に求めたコードを変換し（Ｓ３２）、変換したコード群の中から抽出した所定数のコードの組み合わせに基づいて楽曲のコード進行を特定する（Ｓ３９）。
【００６１】
また、本実施の形態の楽曲解析装置１０は、Ｋｅｙ推定装置としても動作する。Ｋｅｙ推定装置としての楽曲解析装置１０は、楽曲の音声データを取得する音声入力インターフェース２１と、Ｋｅｙと音階の組み合わせとの対応を示すＫｅｙ情報１７ｂを格納する記憶部１７と、音声データを解析して、楽曲のＫｅｙを特定するコントローラ１１（Ｋｅｙ推定部の一例）と、を備える。コントローラ１１は、解析区間（所定区間の一例）の音声データを周波数解析してクロマベクトルを求め（Ｓ２１）、クロマベクトルに含まれる音階の中から複数の音階を選択し（Ｓ２２）、選択した複数の音階の組み合わせとＫｅｙ情報１７ｂに基づきＫｅｙ候補を決定し（Ｓ２３）、決定したＫｅｙ候補の中から楽曲のＫｅｙを特定する（Ｓ２４）。
【００６２】
以上の構成を有する楽曲解析装置１０によれば、楽曲の音声データを解析することにより、楽曲のＫｅｙ及びコード進行を自動で特定することができる。このような楽曲解析装置１０の技術は、コード進行を楽曲の類似度を計算するための指標として用いて雰囲気の類似した楽曲を類似楽曲として選抜する、楽曲提供システムに適用することができる。さらには、楽曲の自動楽譜生成システムにも適用することができる。
【００６３】
なお、上記の例では、楽曲解析装置１０のコントローラ１１は、解析対象の音声データ（音声信号）を音声入力インターフェース２１を介して取得したが、音声データの取得先は音声入力インターフェース２１に限定されない。記憶部１７に解析データの楽曲の音声データが記憶されている場合、コントローラ１１は、記憶部１７から音声データを読み出して取得してもよい。または、通信インターフェース１９を介してネットワークから解析データの楽曲の音声データを取得してもよい。すなわち、本発明のデータ取得部は、音声入力インターフェース２１、通信インターフェース１９、記憶部１７等で構成することができる。
【００６４】
以上のように、本発明の一実施の形態として実施の形態１を説明したが、本発明における技術はこれに限定されず、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【符号の説明】
【００６５】
１０  楽曲解析装置
１１  コントローラ
１３  表示部
１５  操作部
１７  記憶部
１７ａ  制御プログラム
１７ｂ  Ｋｅｙ情報
１９  通信インターフェース
２０  マイク
２１  音声入力インターフェース
【図１】
2018025644.tif 000003
【図２】
2018025644.tif 000004
【図３】
2018025644.tif 000005
【図４】
2018025644.tif 000006
【図５】
2018025644.tif 000007
【図６】
2018025644.tif 000008
【図７】
2018025644.tif 000009
【図８】
2018025644.tif 000010
【図９】
2018025644.tif 000011
【図１０】
2018025644.tif 000012
【図１１】
2018025644.tif 000013
【図１２】
2018025644.tif 000014
【図１３】
2018025644.tif 000015
【図１４】
2018025644.tif 000016