(57)【要約】【課題】コードの認識性が高いコード認識方法、コード認識プログラム、及びコード認識システムを提供する。【解決手段】コードを演奏することが可能な楽器の楽音のデジタル信号からコードを認識することが可能な方法であって、複数のコード候補を得るコード候補群決定工程と、コード候補群決定工程により得られる複数のコード候補からコードを決定するコード決定工程と、を備える。【選択図】図１
2020038328.tif 000002
【特許請求の範囲】
【請求項１】
コードを演奏することが可能な楽器の楽音のデジタル信号からコードを認識することが可能な方法であって、
前記デジタル信号を所定の長さに切り出し、周波数スペクトルに変換した解析フレームを作成する解析フレーム作成工程、
前記解析フレームから音階番号に変換可能な音高に対応するピークを抽出するピーク抽出工程、
前記ピーク抽出工程において抽出された前記ピークに対応する音高を音階番号に変換する音階番号変換工程、
前記音階番号のうち最も小さい音階番号を１として前記音階番号を正規化することにより、前記音階番号を正規化番号に変換する正規化工程、及び、
前記正規化番号と前記楽器のコード情報を記憶しているデータベースとを比較して、一致度が最も高いコード情報に基づいてコード候補を決定するコード候補決定工程を有し、
前記解析フレーム作成工程、前記ピーク抽出工程、前記音階番号変換工程、前記正規化工程、及び前記コード候補決定工程を順に行うことを複数回繰り返して複数の前記コード候補を得る、コード候補群決定工程と、
コード候補群決定工程により得られる複数の前記コード候補からコードを決定するコード決定工程と、を備え、
前記コード候補群決定工程の前記解析フレーム作成工程は、前記解析フレーム作成工程が行われるたびに所定のフレーム周期ずつずらして解析フレームを作成する、
コード認識方法。
【請求項２】
前記ピーク抽出工程は、前記解析フレームにおける最も低周波数側のピークを検出するピーク検出工程、
前記検出したピークに対応する音高の倍音に対応するピークが前記解析フレーム中に連続して所定数以上あるかを判定する倍音判定工程、及び、
前記検出したピークに対応する音高の倍音が前記解析フレーム中に連続して所定数以上あると前記倍音判定工程において判定された場合、前記検出したピークに対応する音高を音高候補として決定する音高候補決定工程、を有し、
前記ピーク抽出工程は前記ピーク検出工程、前記倍音判定工程、及び前記音高候補決定工程を順に行うことを複数回繰り返す、
請求項１に記載の方法。
【請求項３】
前記正規化工程は前記音階番号のうち最も小さい値をｎＬとしたとき、ｎＬ以上ｎＬ＋２８以下又はｎＬ以上ｎＬ＋３２以下の前記音階番号を抽出し、抽出された前記音階番号を用いて正規化を行う、請求項１又は２に記載の方法。
【請求項４】
前記コード決定工程はコード候補群決定工程により得られる複数の前記コード候補を多数決処理することによって前記コードを決定する、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記コード決定工程によって決定された前記コードの発音継続時間を検出する発音継続時間検出工程と、
前記発音継続時間検出工程によって検出された前記発音継続時間を用いてコード決定工程によって決定された前記コードの音符長を決定する音符長決定工程と、を備える、
請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記コード決定工程により決定された前記コードと、前記音符長決定工程により決定された前記コードの前記音符長と、を用いてコード譜を作成するコード譜作成工程を備える、請求項５に記載の方法。
【請求項７】
前記楽器はギターである、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
演算装置によって処理を実行する、コードを演奏することが可能な楽器の楽音のデジタル信号からコードを認識することが可能なプログラムであって、
前記デジタル信号を所定の長さに切り出し、周波数スペクトルに変換した解析フレームを作成する解析フレーム作成処理、
前記解析フレームから音階番号に変換可能な音高に対応するピークを抽出するピーク抽出処理、
前記ピーク抽出処理において抽出された前記ピークに対応する音高を音階番号に変換する音階番号変換処理、
前記音階番号のうち最も小さい音階番号を１として前記音階番号を正規化することにより、前記音階番号を正規化番号に変換する正規化処理、及び、
前記正規化番号と前記楽器のコード情報を記憶しているデータベースとを比較して、一致度が最も高いコード情報に基づいてコード候補を決定するコード候補決定処理を有し、
前記解析フレーム作成処理、前記ピーク抽出処理、前記音階番号変換処理、前記正規化処理、及び前記コード候補決定処理を順に行うことを複数回繰り返して複数の前記コード候補を得る、コード候補群決定処理と、
コード候補群決定処理により得られる複数の前記コード候補からコードを決定するコード決定処理と、を備え、
前記コード候補群決定処理の前記解析フレーム作成処理は、前記解析フレーム作成処理が行われるたびに所定のフレーム周期ずつずらして解析フレームを作成する、
コード認識プログラム。
【請求項９】
前記ピーク抽出処理は、前記解析フレームにおける最も低周波数側のピークを検出するピーク検出処理、
前記検出したピークに対応する音高の倍音に対応するピークが前記解析フレーム中に連続して所定数以上あるかを判定する倍音判定処理、及び、
前記検出したピークに対応する音高の倍音が前記解析フレーム中に連続して所定数以上あると前記倍音判定処理において判定された場合、前記検出したピークに対応する音高を音高候補として決定する音高候補決定処理、を有し、
前記ピーク抽出処理は前記ピーク検出処理、前記倍音判定処理、及び前記音高候補決定処理を順に行うことを複数回繰り返す、
請求項８に記載のプログラム。
【請求項１０】
前記正規化処理は前記音階番号のうち最も小さい値をｎＬとしたとき、ｎＬ以上ｎＬ＋２８以下又はｎＬ以上ｎＬ＋３２以下の前記音階番号を抽出し、抽出された前記音階番号を用いて正規化を行う、請求項８又は９に記載のプログラム。
【請求項１１】
前記コード決定処理はコード候補群決定処理により得られる複数の前記コード候補を多数決処理することによって前記コードを決定する、請求項８〜１０のいずれか１項に記載のプログラム。
【請求項１２】
前記コード決定処理によって決定された前記コードの発音継続時間を検出する発音継続時間検出処理と、
前記発音継続時間検出処理によって検出された前記発音継続時間を用いてコード決定処理によって決定された前記コードの音符長を決定する音符長決定処理と、を備える、
請求項８〜１１のいずれか１項に記載のプログラム。
【請求項１３】
前記コード決定処理により決定された前記コードと、前記音符長決定処理により決定された前記コードの前記音符長と、を用いてコード譜を作成するコード譜作成処理を備える、請求項１２に記載のプログラム。
【請求項１４】
前記楽器はギターである、請求項８〜１３のいずれか１項に記載のプログラム。
【請求項１５】
音楽のデジタル信号を入力できる入力部と、
請求項８〜１４のいずれか１項に記載のプログラムを実行する演算装置である処理部と、
前記処理部での処理結果を表示できる表示部と、を備える、
コード認識システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はコード認識方法、コード認識プログラム、及びコード認識システムを開示するものである。
【背景技術】
【０００２】
音楽から楽譜を作成（採譜）するには、音楽的知識が必要である。また、専門家であったとしても、膨大な時間を要する。楽音（音楽の音響信号）から採譜するためには、発音されている音の音高（基本周波数）と音符長（発音継続時間）を検出する必要がある。単音の楽音については、基本周波数や音符長を認識できる技術がこれまでに実用されている。しかしながら、和音（コード）を含む楽音を認識することは困難であった。和音の場合は、ある音高の倍音（高調波）の周波数が他の音高や他の音高の倍音と近い値となり、発音されている音を単に振幅とその周波数とから推定するだけでは、いずれの音が発音されているのかを認識することが困難になる場合があるためである。例えば、単音Ｃ２（ド、１３１Ｈｚ）が発音された場合、第３倍音がＧ３（ソ、３９２Ｈｚ）、第５倍音がＥ４（ミ、６５４Ｈｚ）に近い値となり、これらの音が同時に発音された場合と、それぞれを別々に認識することが非常に困難であった。
【０００３】
これまでに開示されている音高認識に関する技術としては、例えば、音高ごとにスペクトルのテンプレートを利用するもの、倍音のパワーの総和で比較するもの（例えば、特許文献１）、倍音を除去して処理を行うもの（例えば、特許文献２）など多くの技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３３４７９号公報
【特許文献２】特開２０００−２９３１８８号公報
【特許文献３】特開２０１１−２２４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、これまでに提案されている技術は和音の構成音数が多い場合には適さなかった。
一方で、本発明者は以前に音の倍音構造に着目し、それぞれの音高が持つ倍音をそのまま比較する音高認識方法を特許文献３で開示しているが、和音の認識率についてはまだまだ改善の余地があった。
【０００６】
そこで、本願ではコード（和音）の認識性の高いコード認識方法、コード認識プログラム、およびコード認識システムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明者は、鋭意検討の結果、楽音の周波数スペクトルに現れるピークを所定の条件で抽出し、該ピークを音階番号に変換して正規化することにより正規化番号を得て、該正規化番号とコード情報を記憶しているデータベースとを比較することで、高いコード認識率を奏することを見出し、本発明を完成させた。
【０００８】
すなわち、本願は上記課題を解決する第１の手段として、コードを演奏することが可能な楽器の楽音のデジタル信号からコードを認識することが可能な方法であって、前記デジタル信号を所定の長さに切り出し、周波数スペクトルに変換した解析フレームを作成する解析フレーム作成工程、前記解析フレームから音階番号に変換可能な音高に対応するピークを抽出するピーク抽出工程、前記ピーク抽出工程において抽出された前記ピークに対応する音高を音階番号に変換する音階番号変換工程、前記音階番号のうち最も小さい音階番号を１として前記音階番号を正規化することにより、前記音階番号を正規化番号に変換する正規化工程、及び、前記正規化番号と前記楽器のコード情報を記憶しているデータベースとを比較して、一致度が最も高いコード情報に基づいてコード候補を決定するコード候補決定工程を有し、前記解析フレーム作成工程、前記ピーク抽出工程、前記音階番号変換工程、前記正規化工程、及び前記コード候補決定工程を順に行うことを複数回繰り返して複数の前記コード候補を得る、コード候補群決定工程と、コード候補群決定工程により得られる複数の前記コード候補からコードを決定するコード決定工程と、を備え、前記コード候補群決定工程の前記解析フレーム作成工程は、前記解析フレーム作成工程が行われるたびに所定のフレーム周期ずつずらして解析フレームを作成する、コード認識方法を開示する。
【０００９】
前記コード認識方法において、ピーク抽出工程は、前記解析フレームにおける最も低周波数側のピークを検出するピーク検出工程、前記検出したピークに対応する音高の倍音に対応するピークが前記解析フレーム中に連続して所定数以上あるかを判定する倍音判定工程、及び、前記検出したピークに対応する音高の倍音が前記解析フレーム中に連続して所定数以上あると前記倍音判定工程において判定された場合、前記検出したピークに対応する音高を音高候補として決定する音高候補決定工程、を有し、前記ピーク抽出工程は前記ピーク検出工程、前記倍音判定工程、及び前記音高候補決定工程を順に行うことを複数回繰り返すことが好ましい。
【００１０】
また、前記コード認識方法において、前記正規化工程は前記音階番号のうち最も小さい値をｎＬとしたとき、ｎＬ以上ｎＬ＋２８以下又はｎＬ以上ｎＬ＋３２以下の前記音階番号を抽出し、抽出された前記音階番号を用いて正規化を行うことが好ましい。
【００１１】
さらに、前記コード認識方法において、前記コード決定工程はコード候補群決定工程により得られる複数の前記コード候補を多数決処理することによって前記コードを決定することが好ましい。
【００１２】
前記コード認識方法は、前記コード決定工程によって決定された前記コードの発音継続時間を検出する発音継続時間検出工程と、前記発音継続時間検出工程によって検出された前記発音継続時間を用いてコード決定工程によって決定された前記コードの音符長を決定する音符長決定工程と、を備えることが好ましい。また、前記コード認識方法は前記コード決定工程により決定された前記コードと、前記音符長決定工程により決定された前記コードの前記音符長と、を用いてコード譜を作成するコード譜作成工程を備えることが好ましい。さらに、前記コード認識方法における前記楽器はギターであることが好ましい。
【００１３】
また、本願は上記課題を解決する第２の手段として、演算装置によって処理を実行する、コードを演奏することが可能な楽器の楽音のデジタル信号からコードを認識することが可能なプログラムであって、前記デジタル信号を所定の長さに切り出し、周波数スペクトルに変換した解析フレームを作成する解析フレーム作成処理、前記解析フレームから音階番号に変換可能な音高に対応するピークを抽出するピーク抽出処理、前記ピーク抽出処理において抽出された前記ピークに対応する音高を音階番号に変換する音階番号変換処理、前記音階番号のうち最も小さい音階番号を１として前記音階番号を正規化することにより、前記音階番号を正規化番号に変換する正規化処理、及び、前記正規化番号と前記楽器のコード情報を記憶しているデータベースとを比較して、一致度が最も高いコード情報に基づいてコード候補を決定するコード候補決定処理を有し、前記解析フレーム作成処理、前記ピーク抽出処理、前記音階番号変換処理、前記正規化処理、及び前記コード候補決定処理を順に行うことを複数回繰り返して複数の前記コード候補を得る、コード候補群決定処理と、コード候補群決定処理により得られる複数の前記コード候補からコードを決定するコード決定処理と、を備え、前記コード候補群決定処理の前記解析フレーム作成処理は、前記解析フレーム作成処理が行われるたびに所定のフレーム周期ずつずらして解析フレームを作成する、コード認識プログラムを開示する。
【００１４】
前記コード認識プログラムにおいて、前記ピーク抽出処理は、前記解析フレームにおける最も低周波数側のピークを検出するピーク検出処理、前記検出したピークに対応する音高の倍音に対応するピークが前記解析フレーム中に連続して所定数以上あるかを判定する倍音判定処理、及び、前記検出したピークに対応する音高の倍音が前記解析フレーム中に連続して所定数以上あると前記倍音判定処理において判定された場合、前記検出したピークに対応する音高を音高候補として決定する音高候補決定処理、を有し、前記ピーク抽出処理は前記ピーク検出処理、前記倍音判定処理、及び前記音高候補決定処理を順に行うことを複数回繰り返すことが好ましい
【００１５】
また、前記コード認識プログラムにおいて、前記正規化処理は前記音階番号のうち最も小さい値をｎＬとしたとき、ｎＬ以上ｎＬ＋２８以下又はｎＬ以上ｎＬ＋３２以下の前記音階番号を抽出し、抽出された前記音階番号を用いて正規化を行うことが好ましい。
【００１６】
さらに、前記コード認識プログラムにおいて、前記コード決定処理はコード候補群決定処理により得られる複数の前記コード候補を多数決処理することによって前記コードを決定することが好ましい。
【００１７】
前記コード認識プログラムは前記コード決定処理によって決定された前記コードの発音継続時間を検出する発音継続時間検出処理と、前記発音継続時間検出処理によって検出された前記発音継続時間を用いてコード決定処理によって決定された前記コードの音符長を決定する音符長決定処理と、を備えることが好ましい。また、前記コード認識プログラムは前記コード決定処理により決定された前記コードと、前記音符長決定処理により決定された前記コードの前記音符長と、を用いてコード譜を作成するコード譜作成処理を備えることが好ましい。さらに前記コード認識プログラムにおいて、前記楽器はギターである、ことが好ましい。
【００１８】
さらに、本願は上記課題を解決する第３の手段として、音楽のデジタル信号を入力できる入力部と、前記コード認識プログラムを実行する処理部と、前記処理部での処理結果を表示できる表示部と、を備える、コード認識システムを開示する。
【発明の効果】
【００１９】
本開示によれば、高いコード認識率を有する。
【図面の簡単な説明】
【００２０】
【図１】コード認識方法１のフローチャートである。
【図２】コード候補群決定工程Ｓ１のフローチャートである。
【図３】時間−周波数解析の流れを示す図である。（ａ）は原信号からコード認識を経て、コード（コード候補）を出力するまでの概略図である。（ｂ）は解析フレームと時間軸との関係を示す概略図である。
【図４】ピーク抽出工程Ｓ１２のフローチャートである。
【図５】倍音を説明する概略図である。
【図６】（ａ）ギターの押弦位置の１つの例である。（ｂ）（ａ）の押弦位置から得られるコード構成音情報（データベース）である。（ｃ）ある解析フレームにおける演奏音情報である。
【図７】コード認識システム１０を説明するブロック図である。
【発明を実施するための形態】
【００２１】
以下において、数値Ａ及びＢについて「Ａ〜Ｂ」という表記は「Ａ以上Ｂ以下」を意味するものとする。かかる表記において数値Ｂのみに単位を付した場合には、当該単位が数値Ａにも適用されるものとする。
【００２２】
本願はコードを演奏することが可能な楽器の楽音のデジタル信号からコードを認識することが可能なコード認識方法、コード認識プログラム、及びコード認識システムを開示するものである。
好ましい楽器として、鍵盤楽器（ピアノなど）、ギターなどを挙げることができる。楽音の振幅の立ち上がりが比較的早いためである。より好ましくはギターである。なお、一般的なギターはＭＩＤＩ機能を持たないため、演奏情報の取得が難しく、そのためギターのコード認識の方法及びその装置の開発が求められている。
【００２３】
以下においては、本開示の１つの実施形態であるコード認識方法１、該コード認識方法１を行うコード認識プログラム、及び該コード認識プログラムを備えるコード認識システム１０について説明する。
【００２４】
１．コード認識方法１
図１はコード認識方法１のフローチャートである。図１に記載されているとおり、コード認識方法１はコード候補群決定工程Ｓ１とコード決定工程Ｓ２とを備える。これにより、楽音のデジタル信号からコードを認識することができる。
また、図１に記載されているとおり、コード認識方法１は発音継続時間検出工程Ｓ３と音符長決定工程Ｓ４とを備えることが好ましい。これにより、コード決定工程Ｓ２により決定されたコードの音符長を決定することができる。
さらに、図１に記載されているとおり、コード認識方法１はコード譜作成工程Ｓ５を備えることが好ましい。これによりコード譜を自動的に作成することができる。
以下、各工程についてさらに説明する。
【００２５】
１．１．コード候補群決定工程Ｓ１
コード候補群決定工程Ｓ１は図２に示すように、解析フレーム作成工程Ｓ１１、ピーク抽出工程Ｓ１２、音階番号変換工程Ｓ１３、正規化工程Ｓ１４、及び、コード候補決定工程Ｓ１５を有し、工程Ｓ１１〜工程Ｓ１５を順に行うことを複数回繰り返す。これにより、複数のコード候補（コード候補群）を時系列で得ることができる。工程Ｓ１１〜工程Ｓ１５を順に行うことを繰り返す回数は特に限定されないが、楽音の最初の解析フレームから最後の解析フレームまで処理するまで繰り返すことが好ましい。つまり、解析フレームの個数が繰り返し回数となる。
【００２６】
１．１．１．解析フレーム作成工程Ｓ１１
解析フレーム作成工程Ｓ１１では、演奏された楽音のデジタル信号を所定の長さに切り出し、周波数スペクトルに変換した解析フレームを作成する。
解析フレーム作成工程Ｓ１１は、コード候補群決定工程Ｓ１において複数回行われるので、解析フレーム作成工程Ｓ１１が行われるたびに所定のフレーム周期ずつずらして解析フレームを作成する。例えば、２回目の解析フレーム作成工程Ｓ１１は１回目の解析フレーム作成工程Ｓ１１で作成した解析フレームから所定のフレーム周期をずらした解析フレームを作成する。３回目以降も同様である。
【００２７】
楽音のデジタル信号への変換は，任意のサンプリング周波数と量子化ｂｉｔ数に設定したＡ／Ｄ変換によって行われる（ディジタルオーディオレコーダやＰＣで取り込む）。例えば、サンプリング周波数４４．１ｋＨｚ、量子化ｂｉｔ数が１６ｂｉｔ程度に設定する。
その後、デジタル信号を所定の長さに切り出し、周波数スペクトルに変換した解析フレームを作成する。周波数スペクトルへの変換は，離散時間フーリエ変換（ＦＦＴなど）によって行われる。デジタル信号を切り出す長さ（フレーム長）も特に限定されないが、フレーム長を長くした場合は周波数分解能が良くなるが時間分解能が悪くなり、短くした場合は時間分解能が良くなるが周波数分解能が悪くなるため、最適なフレーム長は対象となる楽音の最低音高、テンポ、および最小音符長に応じて、適宜決定することが好ましい。例えば、ハニング窓を使用しフレーム長を５０〜５００ｍｓ、好ましくは５０〜３００ｍｓ、より好ましくは１００〜２００ｍｓとすることが良い。また、フレーム周期の長さも特に限定されないが１〜５０ｍｓ、好ましくは５〜３０ｍｓ、より好ましくは５〜１５ｍｓである。最低検索周波数Ｅ１（８２．４Ｈｚ）と最低検索周波数Ｅ１（８２．４Ｈｚ）から２５Ｈｚ程度の周波数差の音高が同時に発音されたときに区別できるように（一般的な音楽では、十分な分解能であると考えられる。）、また最大テンポを１５０（１分間に４分音符を１５０拍）とした場合に１６分音符を検出できるようにする観点からは、フレーム長を１００〜２００ｍｓ、フレーム周期の長さを５〜１５ｍｓに設定するとよく、フレーム長を１５０ｍｓ、フレーム周期の長さを１０ｍｓに設定することが好ましい。短時間フーリエ変換のその他の条件は適宜設定することができる。
【００２８】
図３はデジタル信号の周波数スペクトルへの変換（時間−周波数解析）について説明する図である。図３（ａ）は原信号からコード認識を経て、コード（コード候補）を出力するまでの概略図である。図３（ｂ）は解析フレームと時間軸との関係を表しており、所定のフレーム周期ずつずれた解析フレームが作成されることを表している。
図３（ａ）、（ｂ）に示されているように、工程Ｓ１１は所定のフレーム周期ずつずらした解析フレームを作成していることがわかる。
【００２９】
１．１．２．ピーク抽出工程Ｓ１２
ピーク抽出工程Ｓ１２では、解析フレーム作成工程Ｓ１１により作成された解析フレームから音階番号に変換可能な音高に対応するピークを抽出する。ここで「音階番号」は、低い音高から順につけた番号であれば特に限定されないが、代表的な「音階番号」であるＭＩＤＩノートナンバーを用いることが好ましい。
【００３０】
ピーク抽出工程Ｓ１２は図４に示したとおり、解析フレームにおける最も低周波数側のピークを検出するピーク検出工程Ｓ１２１、検出したピークに対応する音高の倍音に対応するピークが解析フレーム中に連続して所定数以上あるかを判定する倍音判定工程Ｓ１２２、及び、ピーク検出工程Ｓ１２１で検出したピークに対応する音高の倍音に対応するピークが解析フレーム中に連続して所定数以上あると倍音判定工程Ｓ１２２において判定された場合、ピーク検出工程Ｓ１２１で検出したピークに対応する音高を音高候補として決定する音高候補決定工程Ｓ１２３を有する。そして、ピーク抽出工程Ｓ１２はピーク検出工程Ｓ１２１、倍音判定工程Ｓ１２２、及び音高候補決定工程Ｓ１２３を順に行うことを複数回繰り返す。これにより、音階番号に変換可能な音高に対応するピークを複数抽出することができる。
なお、ピーク検出工程Ｓ１２１、倍音判定工程Ｓ１２２、及び音高候補決定工程Ｓ１２３を順に行うことを複数回繰り返す際は、ピーク検出工程Ｓ１２１において音高候補として決定されたピークは再度検出されず、当該決定されたピークよりも高周波数であり、かつ、最も低周波数側にある音階番号に変換可能な音高に対応するピークを検出する。音階番号に変換可能な音高に対応するピークを低周波数側から順次検出するためである。例えば、後述の式（１）を用いる場合、ピーク検出工程Ｓ１２１を繰り返すごとにｎがインクリメントされた周波数の範囲においてピークを検索する。
【００３１】
ピーク検出工程Ｓ１２１、倍音判定工程Ｓ１２２、及び音高候補決定工程Ｓ１２３を順に行うことを繰り返す回数は特に限定されないが、ピーク検出工程Ｓ１２１において検出するピークが対象とする楽器の最高音高（例えばギターの場合、音高Ｅ５）の周波数を超えるまで行うことが好ましい。言い換えると、ピーク検出工程Ｓ１２１において検出されるピークが対象とする楽器の最高音高の周波数を超えた時点でピーク抽出工程Ｓ２を終了させることが好ましい。或いは、正規化工程Ｓ１４の好ましい形態を考慮して、最も小さい音高候補の音階番号をｎＬとしたとき、ｎＬ＋２８（又はｎＬ＋３２）の音階番号の音高の周波数を超えるまで行うことが好ましい。
以下、ピーク検出工程Ｓ１２１、倍音判定工程Ｓ１２２、及び音高候補決定工程Ｓ１２３について説明する。
【００３２】
１．１．２．１．ピーク検出工程Ｓ１２１
ピーク検出工程Ｓ１２１では、解析フレームにおける最も低周波数側のピークを検出する。検出するピークの条件は特に限定されないが、次の条件を用いることが好ましい。
まず、ピーク抽出工程Ｓ１２では音階番号に変換可能な音高に対応するピークを抽出することを目的としているため、音階番号に変更できないピークは検出しないほうが良い。音階番号に変換可能な音高に対応するピークとは、例えば平均律（１２平均律）を用いて次の式（１）を満たす周波数ｆｎを有するピークである。ｎは音階番号（ＭＩＤＩノートナンバー）である。ギターの場合はｎが４１以上８８以下である。
【００３３】
【数１】
2020038328.tif 000003
【００３４】
また、解析フレーム内には検出すべきピークの他に、ノイズも含まれている。そのため、ノイズを除外するため、振幅に適当な閾値を設け、当該閾値を超えるピークのみを検出することが良い。閾値の設定は当業者であれば適宜設定することができる。好ましくは、最大のピークレベルから−２０ｄＢ程度に閾値を設定する。図５に示す例の場合では、１０〜３０ｄＢ、好ましくは１５〜２５ｄＢの範囲内の閾値を設定する。
【００３５】
よって、ピーク検出工程Ｓ１２１で検出するピークの条件は、式（１）を満たす周波数を有し、かつ、設定された閾値以上の振幅を有するピークであることが好ましい。
【００３６】
１．１．２．２．倍音判定工程Ｓ１２２
倍音判定工程Ｓ１２２では、ピーク検出工程Ｓ１２１で検出したピークに対応する音高の倍音に対応するピークが解析フレーム中に連続して所定数以上あるかを判定する。倍音に対応するピークの条件は特に限定されないが、上記ピーク検出工程Ｓ１２１に記載した条件を用いることが好ましい。ピーク検出工程Ｓ１２１で検出したピークに対応する音高の倍音に対応するピークが解析フレーム中に連続して所定数以上ない場合は、再度ピーク検出工程Ｓ１２１を行う。当然その際は、前回検出したピークは再度検出しない。
【００３７】
ここで、「倍音」とはある音高の周波数の整数倍の周波数を有する音高である。「倍音が連続して所定数以上ある」とは、ピーク検出工程Ｓ１２１において検出されたピークの周波数を基本周波数として、その基本周波数の２次、３次、…の高調波のピークが連続して存在している、すなわち、ピーク検出工程Ｓ１２１において検出されたピークに対応する音高の２倍音、３倍音・・・が連続して存在していることを意味する。所定数以上とは例えば３個以上である。
具体的には図５に示すように、ピーク検出工程Ｓ１２１において検出したピークに対応する音高がＣ２であるとき、その倍音であるＣ３、Ｇ３などに対応するピークの存在を確認する。図５は、横軸を周波数（Ｈｚ）とし、縦軸を振幅（ｄＢ）とした解析フレームの一例を概略的に示す図である。図５に示した例では、２倍音Ｃ３、３倍音Ｇ３、４倍音Ｃ４、５倍音Ｅ４、及び６倍音Ｇ４に対応するピークを確認することができる。
【００３８】
１．１．２．３．音高候補決定工程Ｓ１２３
音高候補決定工程Ｓ１２３では、ピーク検出工程Ｓ１２１で検出したピークに対応する音高の倍音に対応するピークが解析フレーム中に連続して所定数以上あると倍音判定工程Ｓ１２２において判定された場合、ピーク検出工程Ｓ１２１で検出したピークに対応する音高を音高候補として決定する。
【００３９】
１．１．３．音階番号変換工程Ｓ１３
音階番号変換工程Ｓ１３では、ピーク抽出工程Ｓ１２において抽出されたピークに対応する音高を音階番号に変換する。音階番号は上記式（１）の音階番号ｎを用いることが好ましい。
【００４０】
１．１．４．正規化工程Ｓ１４
正規化工程Ｓ１４では音階番号変換工程Ｓ１３により変換された音階番号のうち最も小さい音階番号を１として上記音階番号を正規化することにより、音階番号を正規化番号に変換する。
正規化する理由は、例えばギターコードの場合は押弦位置がある程度決まっており、いくつかの「形」に分けられ、データベースにおいて同じ形で基音が異なるコードを共通化することができるためである。
【００４１】
正規化工程Ｓ１４は、音階番号のうち最も小さい値をｎＬとしたとき、ｎＬ以上ｎＬ＋２８以下又はｎＬ以上ｎＬ＋３２以下の音階番号を抽出し、抽出された音階番号を用いて正規化を行うことである。コード認識率を向上させる観点から、ｎＬ以上ｎＬ＋３２以下の音階番号を抽出することが好ましい。
例えばギターコードの場合、最低音高と最高音高との差はほとんど２８以下であること、経験的にも片手でフレットを押さえられる範囲も２９音階程度であること、及び第７倍音が２つの音高のほぼ中間の周波数になるため判別が難しく、その影響を含めないようにすること、の３つの理由から抽出する音階を上記の範囲とした。
下記の表１にギターのＣコードを演奏した場合の１つの例を示した。
【００４２】
【表１】
2020038328.tif 000004
【００４３】
１．１．５．コード候補決定工程Ｓ１５
コード候補決定工程Ｓ１５では、正規化工程Ｓ１４で変換された正規化番号と対象とする楽器のコード情報を記憶しているデータベースとを比較して、一致度が最も高いコード情報に基づいてコード候補を決定する。
コード情報は目的とする楽器のコードの構成音と、該構成音の音高及びその倍音の音高の音階番号を正規化した正規化番号と、を少なくとも含むことが好ましい。データベースの正規化番号は、正規化工程Ｓ１４の好ましい形態を考慮して、１以上２９以下（又は１以上３３以下）であることが好ましい。コードの構成音はギターの押弦位置の形から求めることができる。例えば図６にギターのメジャーコードの押弦位置の形のうち、１つの例を示した。「○」は弦を押さえることを意味し、「×」は弦を押さえないことを意味する。この形の押弦位置から得られるコードの構成音はＸ、Ｒ１、Ｍ３、Ｐ５、Ｒ、Ｍ３であり、この構成音及び倍音から正規化番号を得ることができる。なお、Ｘ：演奏（発音）しない、Ｒ１（Ｒ）：根音，Ｍ３：長三度，Ｐ５：完全五度を意味する。
データベースの作成方法は特に限定されないが、コードの構成音に基づいて作成することができる。構成音からその倍音の音高も決定できるためである。
【００４４】
一致度の算出方法は特に限定されないが、例えば正規化工程Ｓ１４で得られた正規化番号とデータベースにある１つのコードのコード情報とを比較して、正規化番号が一致している数をＭ、上記でデータベースにある１つのコードのコード情報に含まれる基音及び倍音の正規化番号の数をＮとしたとき、Ａ＝Ｍ／Ｎ×１００（％）で算出することができる。
より具体的には、下記表２を参照して説明する。
【００４５】
【表２】
2020038328.tif 000005
【００４６】
表２によれば、正規化番号が一致している数Ｍは８であり、データベースの比較対象であるコードの正規化番号の数Ｎは９である。よって一致度Ａ＝８／９×１００≒８８．９％となる。
このように、コード候補決定工程Ｓ１５では音階そのものの一致度を利用することが考えらえる。ただし、これに限定されず、音階そのものの一致度に加え、音階差の一致度も考慮してもよい。
【００４７】
コード候補決定工程Ｓ１５は上記コード情報との一致度に加え、さらにコードの根音情報を考慮してコード候補を決定する。
すなわち、「一致度の最も高いコード情報に基づいてコード候補を決定する」とは、一致度の最も高いコード情報から、コードの形（押弦位置の形）及び種類を決定し、そしてコードの根音と音階番号変換工程Ｓ１３で決定された音階番号とからコード候補を決定することである。なお、データベースのコード情報から根音を決定することが可能である。コードの種類とは、メジャーコード、マイナーコード、セブンスコード等のことを言う。
ここで、コードの根音と音階番号変換工程Ｓ１３で決定された音階番号とからコード候補を決定する具体的な方法を図６（ｂ）、（ｃ）を用いて説明する。図６（ｃ）はある解析フレームの演奏音情報であり、図６（ｂ）のコード情報が最も一致度が高いものであるとする。この場合、図６（ｂ）から根音がＲ１（正規化番号１）であることが分かる。上記したようにＸは発音しないためである。そして、図６（ｃ）の正規化番号１に対応する音階番号４８の音高はＣ２であり、これが根音である。これによりコード候補がＣコードであることが決定される。
【００４８】
１．２．コード決定工程Ｓ２
コード決定工程Ｓ２では、コード候補群決定工程Ｓ１により得られる複数のコード候補からコードを決定する。
コード決定工程Ｓ２において決定されるコードの数は特に限定されず、１つでも良く、複数も良い。楽音のテンポ、発音の継続時間等により、１つのコードを決定するのに使用するコード候補の数が異なってくるためである。例えば、テンポ１２０の楽音において、音成分が１６分音符（継続時間１２５ｍｓ程度）である場合、フレーム長１５０ｍｓ、フレーム周期１０ｍｓのとき，その音成分は連続する２７フレームに及ぶ可能性があるが、演奏形態や、音の性質によってその全てのフレームにその成分が含まれるとは限らない。その音の成分が解析フレーム内に多く含まれる、連続する１０〜２０フレームから得られる１０〜２０個のコード候補から１つのコードを決定することが好ましい。
このように、１つのコードを決定するために必要なコード候補の数は一義的に設定することができず、楽音のテンポ、発音の継続時間等に応じて適宜設定される。ただし、コード候補の数が少なすぎるとコード認識率が低下する虞があるため、連続する３個以上のコード候補から１つのコードを決定することが良い。
【００４９】
好ましいコードの決定方法は、コード候補群決定工程Ｓ１により得られる複数のコード候補を多数決処理することである。詳しくは、連続する複数の解析フレームから得られるコード候補から、連続性を考慮して、コードを決定する。これによりコードの認識率が向上する。例えば、連続する４つの解析フレームから得られたコード候補がＣＭ７、ＣＭ７、Ｃ、ＣＭ７である場合は、ＣＭ７をコードとして決定する。なお、決定されたコードの継続時間（コード決定工程Ｓ２で用いた解析フレームの個数から算出することができる。）が後述の音符長を求めるときのデータにもなり得る。
【００５０】
１．３．発音継続時間検出工程Ｓ３
発音継続時間検出工程Ｓ３では、コード決定工程Ｓ２によって決定されたコードの発音継続時間を検出する。発音継続時間を検出する方法は公知の方法を採用することができる。例えば、特許文献３に記載の方法を利用する。
【００５１】
１．４．音符長決定工程Ｓ４
音符長決定工程Ｓ４では発音継続時間検出工程Ｓ３によって検出された発音継続時間を用いて、コード決定工程Ｓ２によって決定されたコードの音符長を決定する。音符長の決定方法は公知の方法で行う。例えば、特許文献３に記載の方法が挙げられる。なお、音符長決定工程Ｓ４において、利用者が最小の音符長を入力してもよく、その場合は入力された音符長と上記の発音継続時間に基づいてコードの音符長を決定する。
【００５２】
１．５．コード譜作成工程Ｓ５
コード譜作成工程Ｓ５では、コード決定工程Ｓ３により決定されたコードと、音符長決定工程Ｓ４により決定された上記コードの音符長と、を用いてコード譜を作成する。これにより、自動でコード譜を作成することができる。なお、利用者は作成されたコード譜を適宜修正しても良い。
【００５３】
以上より、コード認識方法１よれば、コードの基音とその倍音とを含めて正規化し、データベースのコード情報と比較しているため、高いコード認識率を奏することができる。
【００５４】
２．コード認識プログラム
本開示のコード認識プログラムの１つの実施形態は上記したコード認識方法１を実行するためのプログラムである。コード認識プログラムはＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ等の記録媒体に格納することができる。例えば、これらの記録媒体からコード認識プログラムをコード認識システムの演算装置（例えば、コンピュータ）に読み込ませて実行することで、または、通信手段を介してコード認識プログラムをダウンロードしてコード認識システムのコンピュータに実行させる。
【００５５】
コード認識プログラムによって実行させる処理はコード候補群決定処理とコード決定処理とである。また、コード認識プログラムは発音継続時間検出処理と音符長決定処理とを備えることが好ましい。さらに、コード認識プログラムはコード譜作成処理を備えることが好ましい。
【００５６】
コード候補群決定処理は解析フレーム作成処理、ピーク抽出処理、音階番号変換処理、正規化処理、及び、コード候補決定処理を有し、これらの処理を順に行うことを複数回繰り返すことが好ましい。ピーク抽出処理はピーク検出処理、倍音判定処理、及び音高候補決定処理を有し、これらの処理を順に行うことを複数回繰り返すことが好ましい。
【００５７】
ここで、コード候補群決定処理はコード候補群決定工程Ｓ１を実行する処理であり、コード決定処理はコード決定工程Ｓ２を実行する処理であり、発音継続時間検出処理は発音継続時間検出工程Ｓ３を実行する処理であり、音符長決定処理は音符長決定工程Ｓ４を実行する処理であり、コード譜作成処理はコード譜作成工程Ｓ５を実行する処理である。また、解析フレーム作成処理は解析フレーム作成工程Ｓ１１を実行する処理であり、ピーク抽出処理はピーク抽出工程Ｓ１２を実行する処理であり、音階番号変換処理は音階番号変換工程Ｓ１３を実行する処理であり、正規化処理は正規化工程Ｓ１４を実行する処理であり、コード候補決定処理はコード候補決定工程Ｓ１５を実行する処理である。さらに、ピーク検出処理はピーク検出工程Ｓ１２１を実行する処理であり、倍音判定処理は倍音判定工程Ｓ１２２を実行する処理であり、音高候補決定処理は音高候補決定工程Ｓ１２３を実行する処理である。これら各工程の説明は上述のとおりである。また、これらの各工程は演算装置によって実行させることができる。
【００５８】
従って、本開示のコード認識プログラムによれば、コードの基音とその倍音とを含めて正規化し、データベースのコード情報と比較しているため、高いコード認識率を奏することができる。
【００５９】
３．コード認識システム１０
図７は本開示のコード認識システムの１つの実施形態であるコード認識システム１０の構成を概略的に示すブロック図である。コード認識システム１０は、音楽入力部１１と、処理部１２と、表示部１３とを備えている。音楽入力部１１は、音楽の音響信号を処理部１２に入力できる手段であれば特に限定されないが、例えば、楽器、マイク、サウンドボード、オーディオインターフェースなどによって構成することができる。これにより、音響信号をデジタル化することができる。また、処理部１２は、上記のコード認識プログラムを読み込んで実行することができるものであれば特に限定されず、公知の演算装置（例えば、コンピュータ）によって構成することができる。なお、コード情報を記憶したデータベースの格納場所は特に限定されないが、処理部を構成する演算装置に含まれる記憶部に格納されていることが好ましい。表示部１３は、処理部１２による処理結果を表示できるものであれば特に限定されず、例えばディスプレイによって構成することができる。
【００６０】
従って、本開示のコード認識システムによれば、コードの基音とその倍音とを含めて正規化し、データベースのコード情報と比較しているため、高いコード認識率を奏することができる。
【実施例】
【００６１】
以下の条件で、上記コード候補群決定工程Ｓ１及びコード決定工程Ｓ２に倣って行った実験の結果を表３に示す。表３において、実際に演奏された各コードとコード決定工程Ｓ２で決定されたコードとが一致した確率をコードの種類ごとに算出した値を認識率とした。なお、表３の上段は５種類のコード毎のコード認識率であり、下段はメジャーコード、マイナーコード、セブンスコードの３グループに分けたときの、グループ毎のコード認識率である。下段の評価方法についてさらに説明すると、例えば、ＥＭ７のコードを演奏したときに、コード決定工程Ｓ２で決定されたコードがＥであった場合、長７度（４音目）の音高を検出できていないが、メジャーコードとしては正しいため、メジャーコードを認識しているとしてメジャーコードグループの認識率を算出している。
【００６２】
・データベースのコード情報：Ｘ、ＸＭ７、Ｘｍ、Ｘｍ７、Ｘ７（Ｘは基音Ａ〜Ｇ＃を表す。）のコード情報。
・演奏音：５０４音（１２音階×（コード４種類×形３＋コード１種類（Ｘ７）×形２）×３回）。
・エレキギター使用、サンプリング周波数４４．１ｋＨｚ、１６ｂｉｔ量子化。
・時間−周波数解析：フレーム長１５０ｍｓ（ハニング窓）、フレーム周期１０ｍｓ。
・コード判定方法：連続する１１解析フレームから得られるコード候補を多数決処理。
【００６３】
【表３】
2020038328.tif 000006
【００６４】
表３より、本開示のコード認識方法は何れのコードに対しても、高いコード認識率を有することがわかった。
【図１】
2020038328.tif 000007
【図２】
2020038328.tif 000008
【図３】
2020038328.tif 000009
【図４】
2020038328.tif 000010
【図５】
2020038328.tif 000011
【図６】
2020038328.tif 000012
【図７】
2020038328.tif 000013