(57)【要約】      （修正有）【課題】ユーザが選曲したオーディオ曲に対応する演奏データファイルを取得する技術を提供する。【解決手段】ユーザが選曲したオーディオデータを元に、クラウドサーバ上のカラオケ用ＳＭＦデータベース（ＤＢ）に対して、インデックスの完全一致検索をする（Ｓ３０３）。失敗なら（Ｓ３０４がＮＯ）、オーディオデータからカラオケバージョンのオーディオデータを差し引いて第１のメロディデータが算出され、ＤＢに対し、出だしのメロディ部分の音高データ列の一致検索をする（Ｓ３０８）。失敗なら（Ｓ３０９がＮＯ）、またはカラオケバージョンを使えず（Ｓ３０５がＮＯ）音響解析で抽出されたメロディデータの信頼性が低い場合（Ｓ３１０）には、インデックスの部分一致検索＋出だしのメロディ部分の音高データ列の一致検索をする（Ｓ３１３とＳ３１５がＹＥＳ）。これらの検索のいずれかにより検索できたＳＭＦデータが、ＤＢから抽出される（Ｓ３１６）。【選択図】図３
2015060177.tif 000002
【特許請求の範囲】
【請求項１】
外部より供給された曲を識別するインデックスと対応するインデックスが付与されている前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索する第１のインデックス検索を実行し、
当該第１のインデックス検索により、前記演奏データファイルが発見できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出する第１のメロディ抽出を実行し、
当該抽出された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索する第１のメロディ検索を実行し、
前記第１のインデックス検索と前記第１のメロディ検索との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得する、
ことを特徴とする演奏データファイル検索方法。
【請求項２】
前記第１のインデックス検索として、前記供給された曲のインデックスと完全一致する前記インデックスが付与されている前記演奏データファイルを、前記演奏データファイルデータベースから検索することを特徴とする請求項１に記載の演奏データファイル検索方法。
【請求項３】
前記メロディ抽出として、前記オーディオデータとは別に、前記曲のメロディ部分を含まないメロディ無しオーディオデータを取得できるか否か判別し、
前記メロディ無しオーディオデータを取得できると判別された場合には、前記オーディオデータから前記メロディ無しオーディオデータを差し引いて前記オーディオデータのメロディ部分を抽出することを特徴とする請求項１又は２に記載の演奏データファイル検索方法。
【請求項４】
前記第１のメロディ検索により前記演奏データファイルが発見できなかった場合、前記オーディオデータのインデックスと部分一致するインデックスが付与されている前記演奏データファイルの群を前記演奏データファイルデータベースから検索する第２のインデックス検索をさらに実行し、
前記第２のインデックス検索により前記演奏データファイルの群を検索できた場合に、前記抽出された音高データ列と前記第１の合致基準よりも判定条件を緩和した第２の合致基準で合致する音高データ列を含む演奏データファイルを前記演奏データファイルの群から検索する第２のメロディ検索をさらに実行することを特徴とする請求項１乃至３のいずれかに記載の演奏データファイル検索方法。
【請求項５】
前記第２のメロディ検索により前記演奏データファイルを検索できた場合に、当該演奏データファイルを前記演奏データファイルデータベースから取得することを特徴とする請求項４に記載の演奏データファイル検索方法。
【請求項６】
前記メロディ無しオーディオデータを取得できないと判別された場合には、音響解析処理により前記オーディオデータからメロディ部分を抽出し、
前記抽出されたオーディオデータのメロディ部分から、前記曲のメロディ部分を表す音高データ列を抽出することを特徴とする請求項３に記載の演奏データファイル検索方法。
【請求項７】
前記オーディオデータのインデックスと部分一致するインデックスが付与されている前記演奏データファイルの群を前記演奏データファイルデータベースから検索する第２のインデックス検索をさらに実行し、
前記第２のインデックス検索に成功した場合に、前記抽出された音高データ列と前記第１の合致基準よりも判定条件を緩和した第２の合致基準で合致する音高データ列を含む演奏データファイルを前記演奏データファイルの群から検索する第２のメロディ検索をさらに実行することを特徴とする請求項６に記載の演奏データファイル検索方法。
【請求項８】
前記第２のメロディ検索により前記演奏データファイルを検索できた場合に、当該演奏データファイルを前記演奏データファイルデータベースから取得することを特徴とする請求項７に記載の演奏データファイル検索方法。
【請求項９】
前記演奏データファイルは、ＭＩＤＩ形式の標準ＭＩＤＩファイルである、
ことを特徴とする請求項１乃至８のいずれかに記載の演奏データファイル検索方法。
【請求項１０】
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索手段と、
当該インデックス検索手段により、前記演奏データファイルが検索できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出するメロディ抽出手段と、
当該抽出された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索手段と、
前記インデックス検索手段と前記メロディ検索手段との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得する取得手段と、
を有することを特徴とする演奏データファイル検索装置。
【請求項１１】
コンピュータに、
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索する第１のインデックス検索を実行するステップと、
当該インデックス検索により、前記演奏データファイルが検索できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出する第１のメロディ抽出を実行するステップと、
当該抽出された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索を実行するステップと、
前記第１のインデックス検索と前記第１のメロディ検索との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得するステップと、
を実行させるプログラム。
【請求項１２】
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索手段と、受信された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索手段と、前記インデックス検索手段と前記メロディ検索手段との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得して送信する取得送信手段と、を有するサーバ装置に接続される端末装置であって、
前記インデックス検索手段により、前記演奏データファイルが検索できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出して前記サーバ装置に送信するメロディ抽出送信手段と、
前記サーバ装置から送信される演奏データファイルを受信する受信手段と、
を有することを特徴とする端末装置。
【請求項１３】
少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出して送信するメロディ抽出送信手段と、を有する端末装置に接続されるサーバ装置であって、
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索手段と、
前記端末装置から送信される前記音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索手段と、
前記インデックス検索手段と前記メロディ検索手段との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得する取得手段と、
を有することを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが選曲したオーディオ曲に対応する演奏データファイルを取得する技術に関する。
【背景技術】
【０００２】
昨今、音楽はデジタル化され、ＣＤ（コンパクトディスク）を購入するか、インターネット上の音楽サイトなどからデータをダウンロード購入するのが一般的である。元となるオーディオデータを作るのも、ジャンルによってはパソコン一台で制作することが可能である。このように音楽制作や販売方法が簡略化され効率化されたために、楽曲のライフサイクルは短くなり、大量の曲が作られるようになった。また、このような音楽制作環境の変化により、大手の音楽制作会社を通じなくても簡単に音楽データを作れるようになったために、マイナーレーベルからもどんどん曲が作られるようになった。
【０００３】
これらの楽曲のうち歌のある曲については、カラオケなどで歌えるようにするため、多くの曲がＳＭＦ（Ｓｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｉｌｅ：標準ＭＩＤＩファイル）データとして作られ供給されている（例えば特許文献１）。中には全て生伴奏だったり、コーラスのみ生のオーディオデータだったりするものもあるが、カラオケする人の歌の上手い下手を採点する機能のあるものについては、基準となる正解音程が必要であるため、ＭＩＤＩデータを持っているものが多い。オーディオ伴奏が増えてきたとはいえ、テンポ変化や、調変化をする上で便利なので、ＳＭＦデータのカラオケのほうがいまだに多い状況である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１５０３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、電子楽器においては、ヒット曲やクラシック曲を内蔵曲用ＳＭＦデータとして備え、このデータをもとに鍵盤を光らせたり、レッスンさせたりする機能がある。２００曲以上内蔵曲を入れている機種もあるが、ほとんどがクラシック曲であり、ライフサイクルの短いポップス曲などはごく一部しか含まれていない。このため、ユーザそれぞれが聴いている音楽を弾きたいと思うと、内蔵曲に含まれていないことのほうが多く、わざわざ楽曲サイトに行ってＳＭＦデータ等による演奏データファイルを購入しなければならない。とはいえ、購入できる楽曲も一部であり、全ての曲が購入できるわけではない。このように、ユーザは従来、電子楽器での利用等に供するために自分が所望する楽曲に対応する演奏データファイルを得たいと思っても、その演奏データファイルの取得に手間がかかってしまう場合が多いという問題点を有していた。
【０００６】
本発明は、ユーザが選曲したオーディオ曲に対応する演奏データファイルをクラウドサーバ上等にある演奏データファイルデータベースから自動的に取得可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
態様の一例における演奏データファイル検索方法では、ユーザが選曲した曲のインデックスと対応するインデックスが付与され曲を演奏するための演奏データを含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索を実行し、そのインデックス検索の検索結果に応じて、曲に対応するオーディオデータからメロディデータを抽出して、そのメロディデータの音高の列からなる音高データ列を抽出し、その音高データの列に対してノートオンを示す演奏データの列の各音高が対応する演奏データファイルを、演奏データファイルデータベースから検索するメロディ検索を実行し、インデックス検索またはメロディ検索の検索結果に基づいて、曲に対応する演奏データファイルを演奏データファイルデータベースから取得する。
【発明の効果】
【０００８】
本発明によれば、ユーザが選曲したオーディオ曲に対応する演奏データファイルをクラウドサーバ上等にある演奏データファイルデータベースから自動的に取得することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態のシステム構成例を示す図である。
【図２】端末装置のハードウェア構成例と、クラウドサーバ１０２の機能構成例を示す図である。
【図３】オーディオ曲とＳＭＦデータのマッチング処理を示すフローチャートである。
【図４】ＳＭＦデータをレッスンデータに調整する処理を示すフローチャートである。
【図５】メロディ音色変更処理を示すフローチャートである。
【図６】ジャンル検出処理を示すフローチャートである。
【図７】オーディオデータとＳＭＦデータの同期処理を示すフローチャートである。
【図８】インデックス（Ｉｎｄｅｘ）のデータ構成例を示す図である。
【図９】メロディ音色変更のための音色グループデータベースのデータ構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【００１１】
図１は、本発明の実施形態のシステム構成例を示す図である。
【００１２】
端末装置１０１は、スマートフォン、タブレット端末、パーソナルコンピュータなどの、通信機能のあるコンピュータである。この端末装置１０１の例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コネクタと、光鍵盤キーボード１０３の例えばＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）コネクタは、接続ケーブルによって接続することができる。また、端末装置１０１は、無線回線やブロードバンドの光回線またはメタル回線からインターネットを介して、サーバコンピュータであるクラウドサーバ１０２と通信することができる。
【００１３】
端末装置１０１は、ユーザの操作に基づいて、その本体内に記憶されているオーディオ曲を選択し、そのオーディオ曲に対応するカラオケ用のＳＭＦ（Ｓｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｏｒｍａｔ）データの検索要求を、クラウドサーバ１０２に対して発行する。検索要求には、オーディオデータのインデックス（以下「Ｉｎｄｅｘ」とも表記する）に関するものと、メロディデータの音高データ列に関するものがある。クラウドサーバ１０２は、自身が記憶するカラオケ用ＳＭＦデータベース２２３に対して検索要求に対応する検索処理を実行し、該当するＳＭＦデータを抽出する。とクラウドサーバ１０２にあるカラオケ用ＳＭＦデータのインデックスを比較する。クラウドサーバ１０２は、カラオケ用のＳＭＦデータを抽出できたら、それを端末装置１０１に送信する。
【００１４】
端末装置１０１は、ダウンロードされたＳＭＦデータから、レッスン機能などの修正を加えて光鍵データを生成し、それを光鍵盤キーボード１０３へ送信する。ユーザは、その光鍵データに基づいて、光鍵盤キーボード１０３において、端末装置１０１で選択した好きなオーディオ曲をレッスンすることができる。
【００１５】
なお、ＳＭＦデータから光鍵データへの変換は、端末装置１０１ではなく、光鍵盤キーボード１０３において実行されてもよい。
【００１６】
図２は、図１に示した端末装置１０１のハードウェア構成例と、クラウドサーバ１０２の機能構成例を示す図である。
【００１７】
端末装置１０１は、ＣＰＵ（中央演算処理装置）２０１、ＲＯＭ（リードオンリーメモリ）２０２、ＲＡＭ（ランダムアクセスメモリ）２０３、入力部２０４、表示部２０５、ＭＩＤＩインタフェース部（以下「ＭＩＤＩ  Ｉ／Ｆ」と表記する）２０６、およびネットワークインタフェース部２０７が、バス２０８によって相互に接続された構成を備える。ＭＩＤＩ  Ｉ／Ｆ２０６は、外部（内蔵でもよい）の光鍵盤キーボード１０３（図１参照）に接続される。
【００１８】
ＣＰＵ２０１は、ＲＯＭ２０２に記憶された制御プログラムに従って、当該端末装置１０１の全体の制御を行う。
【００１９】
ＲＯＭ２０２は、通常の通信機器やコンピュータとしての制御プログラムや、後述する各フローチャートで示されるレッスンデータ生成のための制御プログラムを記憶する。
【００２０】
ＲＡＭ２０３は、制御プログラムの実行に必要な各種制御データや、オーディオ曲データを記憶し、また、クラウドサーバ１０２などから取得したＳＭＦデータを一時的に記憶する。
【００２１】
入力部２０４は、ユーザによるタッチパネルディスプレイ（スマートフォンやタブレット端末の場合）、あるいはキーボードやマウス（パーソナルコンピュータの場合）、また各種スイッチ等による入力操作を検出し、その検出結果をＣＰＵ２０１に通知する。
【００２２】
表示部２０５は、ＣＰＵ２０１の制御によって送られてくるデータを液晶ディスプレイなどに出力する。例えば、表示部２０５は、オーディオ曲選曲用の画面などを表示する。
【００２３】
ＭＩＤＩ  Ｉ／Ｆ２０６は、ＳＭＦデータから生成されたＭＩＤＩフォーマットの光鍵データを、光鍵盤キーボード１０３に供給する。
【００２４】
ネットワークインタフェース部２０７は、例えば無線通信機能あるいはブロードバンド通信機能である。ネットワークインタフェース部２０７は、クラウドサーバ１０２内のネットワークインタフェース部２２１と通信をしながら、クラウドサーバ１０２内のカラオケ用ＳＭＦデータベース２２３にアクセスし、その結果を、ＣＰＵ２０１に通知する。
【００２５】
図２において、クラウドサーバ１０２は、カラオケ用ＳＭＦデータベース２２３を備える。また、クラウドサーバ１０２は、端末装置１０１内のネットワークインタフェース部２０７と通信をするネットワークインタフェース部２２１、およびカラオケ用ＳＭＦデータベース２２３へのアクセスを制御するデータベース管理部２２２の機能を備える。データベース管理部２２２の機能は、特には図示しないが、通常のコンピュータを構成するＣＰＵ、ＲＯＭ、ＲＡＭ、外部記憶装置等によって実現される。ＣＰＵは、ＲＯＭまたは外部記憶装置からＲＡＭにロードしたデータベース管理プログラムを実行することにより、データベース管理部２２２の機能を実現する。また、カラオケ用ＳＭＦデータベース２２３は、例えば外部記憶装置に記憶される。
【００２６】
本実施形態による端末装置１０１の動作は、後述する図３から図７のフローチャート等で実現される図１の各部の機能処理を搭載した制御プログラムを、ＣＰＵ１０１がＲＯＭ１０２から読み出して順次実行することで実現される。そのプログラムは、特には図示しない可搬型記録媒体を介して提供されてもよく、或いは特には図示しないネットワークインタフェース部２０７を介してネットワークから取得できるようにしてもよい。
【００２７】
以下、本発明の実施形態の動作について、フローチャートに沿って説明する。なお、各フローチャートの説明において、随時図２の各部を参照するものとする。
【００２８】
図３は、オーディオ曲とＳＭＦデータのマッチング処理を示すフローチャートである。この処理は、ＣＰＵ２０１が、ＲＯＭ２０２に記憶された端末側のオーディオ曲とＳＭＦデータのマッチング処理プログラムを実行すると共に、端末装置１０１からの要求に従ってクラウドサーバ１０２内のデータベース管理部２２２がカラオケ用ＳＭＦデータベース２２３へのアクセスを行うクラウド側のオーディオ曲とＳＭＦデータのマッチング処理プログラムを実行する処理である。図３において、色の濃い部分のステップは、クラウドサーバ１０２内のデータベース管理部２２２が実行する処理であり、それ以外のステップは、端末装置１０１内のＣＰＵ２０１が実行する処理である。
【００２９】
まず、ユーザが、端末装置１０１の入力部２０４から、光鍵盤キーボード１０３でレッスンをしたいオーディオ曲を、内蔵の楽曲データベース上で、またはインターネット上の楽曲提供サイト上で選択する。この結果、オーディオ曲の選択情報が、入力部２０４からＣＰＵ２０１に通知される（以上、ステップＳ３０１）。
【００３０】
ＣＰＵ２０１は、ステップＳ３０１で選択されたオーディオ曲のインデックス情報（以下単に「インデックス」あるいは「Ｉｎｄｅｘ」と表記する）を、内蔵の楽曲データベースまたはネットワークインタフェース部２０７を介してインターネット上の楽曲提供サイトから取得する。そして、ＣＰＵ２０１は、そのインデックスを、ＲＡＭ２０３上の変数Ａ＿Ｉｎｄｅｘに記憶する。以下の説明で、「Ａ＿Ｉｎｄｅｘ」と表記したときは、変数名を指すと共に、そのインデックスの値そのものの意味でも使うものとする。ＣＰＵ２０１は、Ａ＿Ｉｎｄｅｘを含む第１の検索要求を発行して、ネットワークインタフェース部２０７を介してクラウドサーバ１０２に送信する（以上、ステップＳ３０２）。第１の検索要求は、クラウドサーバ１０２内のネットワークインタフェース部２２１を介して、データベース管理部２２２で受信される。
【００３１】
データベース管理部２２２は、第１の検索要求を受信すると、カラオケ用ＳＭＦデータベース２２３内の曲名インデックス（Ｉｎｄｅｘ）にアクセスして、端末装置１０１が通知したＡ＿Ｉｎｄｅｘと完全一致するインデックスを検索する、第１のインデックス検索を実施する（ステップＳ３０３）。図８は、カラオケ用ＳＭＦデータベース２２３内の曲名インデックスのデータ構成例を示す図である。このデータ構成例の中の、「曲名：カナ」の項目を使って、Ａ＿Ｉｎｄｅｘと一致するインデックスを検索することができる。
【００３２】
データベース管理部２２２は、曲名インデックス内にＡ＿Ｉｎｄｅｘと完全一致するインデックスが見つかったか否かを判定する（ステップＳ３０４）。
【００３３】
データベース管理部２２２は、第１のインデックス検索に成功しステップＳ３０４の判定がＹＥＳになると、ステップＳ３１６の処理に移行する。ここで、データベース管理部２２２は、見つかったインデックスに対応する本体のＳＭＦデータをカラオケ用ＳＭＦデータベース２２３から選択する。データベース管理部２２２は、そのＳＭＦデータを、ネットワークインタフェース部２２１を介して端末装置１０１に送信する。この結果、ＣＰＵ２０１が、ネットワークインタフェース部２０７を介してそのＳＭＦデータを受信し、ＲＡＭ２０３に記憶して、図３のフローチャートの処理を終了する。
【００３４】
第１のインデックス検索に失敗しステップＳ３０４の判定がＮＯになって、データベース管理部２２２がその旨を端末装置１０１に返すと、ＣＰＵ２０１は、以下の動作を実行する。ＣＰＵ２０１は、端末装置１０１内のＲＡＭ２０３または特には図示しない外部記憶装置に記憶されている楽曲データベース中に、ステップＳ３０１で選曲されたオーディオ曲に対応するボーカル付きのオーディオデータとそのカラオケバージョン（インスゥルメントバージョン）が有るか否かを判定する（ステップＳ３０５）。オーディオデータとして提供される楽曲の中には、ボーカルが無いいわゆるカラオケバージョンのデータがセットで入れられている場合が多い。本実施形態では、クラウドサーバ１０２上でＳＭＦデータが見つからなかったときには、このカラオケバージョンを利用する。
【００３５】
カラオケバージョンのオーディオデータが見つかってステップＳ３０５の判定がＹＥＳになると、ＣＰＵ２０１は、ボーカル付きのオーディオデータの時間信号から、ボーカルなしのカラオケデータのオーディオデータの時間信号を、両方の開始時間を合わせた上で差し引くことにより、オーディオデータのメロディ部分を第１のメロディデータとして抽出する。オーディオデータからのメロディ抽出そのものはセンターカットやボーカルの音域照合などである程度可能であるが、例えばコーラスパートとメロディパートの違いを正確に判断するのは難しいなど、完璧ではない。しかし、カラオケバージョンがある曲の場合、ボーカル付きのオーディオデータとボーカル無しのオーディオデータは共に同じ音源から作成されているため、上述の減算処理により、ボーカルパートのみのメロディ抽出を高い精度で行うことができる。ＣＰＵ２０１は、このようにして抽出した第１のメロディデータに対してピッチの分析・抽出の分析を実行することにより、第１のメロディデータ（メロディパート）の音高の列からなる第１の音高データ列を抽出することができる（以上、ステップＳ３０６）。
【００３６】
ＣＰＵ２０１は、ステップＳ３０６の後、そこで抽出した第１の音高データ列を含む第２の検索要求を発行して、ネットワークインタフェース部２０７を介してクラウドサーバ１０２に送信する（ステップＳ３０７）。なお、ＣＰＵ２０１は、クラウドサーバ１０２での後述するステップＳ３１３での処理のために、上述の第２の検索要求中に、ステップＳ３０２で取得したＡ＿Ｉｎｄｅｘも含ませておく。第２の検索要求は、ネットワークインタフェース部２２１を介して、データベース管理部２２２で受信される。
【００３７】
データベース管理部２２２は、第２の検索要求を受信した場合、以下の動作を実行する。データベース管理部２２２は、受信した第１の音高データ列がカラオケ用ＳＭＦデータベース２２３にある各ＳＭＦデータのメロディの出だしのノートオンＭＩＤＩデータ列の各音高と第１の合致基準で合致する曲を検索する、第１のメロディ検索を実施する（ステップＳ３０８）。この場合、例えば、出だしの４小節程度を比較すればよい。具体的には、図８に示すように、楽曲のインデックス内に、「メロディ出だし」のデータとして、メロディの開始時からのメロディ音高データ列を用意しておき、この音高データ列と受信した第１の音高データ列と比較する。
本実施形態においては、「メロディ出だし」のデータは、図８に示すように、（絶対音程）と（相対音程）との両方が用意されている。（絶対音程）は、絶対値で表わされた音高データを用いたものであり、（相対音程）は、現在の音高とその直前の音高データとの差分を用いたものである。演歌などの曲においては、歌う際のＫｅｙを考慮して、オリジナルより＋１あるいは−１などのＫｅｙに変更されていることも多く、相対音程はそのような曲のために必要である。
クラウドサーバ１０２にあるＳＭＦデータは、そのデータを提供する会社によりデータフォーマットが決まっている。例えばほとんどのＳＭＦデータでは、メロディは４ｃｈにあり、ベースは２ｃｈというごとくである。このため、４ｃｈの出だしのノートオンＭＩＤＩデータ列の各音高を比較し、候補が集まったら、最後まで検討する。また、クラウドサーバ１０２にあるカラオケ用ＳＭＦデータベース２２３は、メロディの出だしノートオンＭＩＤＩデータ列を、データベースのインデックスに持っている場合が多いので、その場合には、インデックスに対して上述の検索を実行すれば、曲候補は高速に抽出できる。さらに、メロディの譜割は歌い方によって微妙な場合があり、ＳＭＦデータ制作者によって、異なる場合がある。このため、音価の長い音のタイミングと音程があっていればより正解率が高く、同音連打のリズムが異なる場合や引っ掛けの音程が多少異なる場合などは、長い音などに比べて低い減点などで計算して、例えば８割がた合っていてほぼ合致ならば第１の合致基準を満たすなどとする採点方法を採用してよい。
【００３８】
クラウドサーバ１０２内のデータベース管理部２２２は、上述の第１のメロディ検索の結果、第１の合致基準で合致するＳＭＦデータが検索されたか否かを判定する（ステップＳ３０９）。
【００３９】
第１のメロディ検索に成功しステップＳ３０９の判定がＹＥＳならば、データベース管理部２２２は、ステップＳ３１６に移行し、出だしが合致したカラオケ用ＳＭＦデータベース２２３内の本体のＳＭＦデータを選択して読み出す。そして、データベース管理部２２２は、そのＳＭＦデータを、ネットワークインタフェース部２２１を介して端末装置１０１に通知する。この結果、ＣＰＵ２０１が、ネットワークインタフェース部２０７を介してそのＳＭＦデータを受信し、ＲＡＭ２０３に記憶して、図３のフローチャートの処理を終了する。
【００４０】
第１のメロディ検索に失敗しステップＳ３０９の判定がＮＯならば、データベース管理部２２２は、ステップＳ３１２の第２のインデックス検索の処理に移行する。
【００４１】
端末装置１０１において、前述したステップＳ３０５の判定がＮＯならば、ＣＰＵ２０１はまず、ステップＳ３０１で選曲されたオーディオ曲に対応するボーカル付きのオーディオデータを、端末装置１０１内の楽曲データベース、そこにない場合にはインターネット上の楽曲提供サイトから取得する。次に、ＣＰＵ２０１は、取得したボーカル付きのオーディオデータから、そのメロディ部分を第２のメロディデータとして抽出する。ここでは、カラオケバージョンのオーディオデータは利用することはできない。そのためＣＰＵ２０１は、音響解析処理により第２のメロディデータを抽出する。具体的には、ＣＰＵ２０１は、例えば、オーディオデータからセンターカットの手法でセンターに定位するデータを抽出し、そのセンターにある音で、ドラムでもない、音域的にベースでもなく、同時に押される和音（コードパート）でもなく、かつメロディ音域に入るような音を、第２のメロディデータとして抽出する。ＣＰＵ２０１は、このようにして抽出した第２のメロディデータに対してピッチの分析・抽出の分析を実行することにより、第２のメロディデータ（メロディパート）の音高の列からなる第２の音高データ列を抽出する（以上、ステップＳ３１０）。
【００４２】
ＣＰＵ２０１は、ステップＳ３１０の後、そこで抽出した第２の音高データ列とステップＳ３０２で取得したＡ＿Ｉｎｄｅｘを含む第３の検索要求を発行し、ネットワークインタフェース部２０７を介してクラウドサーバ１０２に送信する（ステップＳ３１１）。第３の検索要求は、ネットワークインタフェース部２２１を介して、データベース管理部２２２で受信される。
【００４３】
データベース管理部２２２は、ステップＳ３０９の判定がＮＯであった場合、または端末装置１０１から第３の検索要求（ステップＳ３１１）を受信した場合には、以下の動作を実行する。データベース管理部２２２は、カラオケ用ＳＭＦデータベース２２３内の曲名インデックス（Ｉｎｄｅｘ）（図８参照）にアクセスして、端末装置１０１が通知したＡ＿Ｉｎｄｅｘと部分一致するインデックスを検索する、第２のインデックス検索を実施する（ステップＳ３１２）。この場合の部分一致は、一方の文字列が他方の文字列の一部と一致する場合、半角と全角、大文字と小文字、長音や曲名タイトルに使われるハートマーク等の特殊文字の有り無し等を区別しない場合に一致する場合と、両者を組み合わせた基準で一致する場合を含む。
【００４４】
データベース管理部２２２は、曲名インデックス内にＡ＿Ｉｎｄｅｘと部分一致するインデックスが見つかったか否かを判定する（ステップＳ３１３）。
【００４５】
データベース管理部２２２は、第２のインデックス検索に成功しステップＳ３１３の判定がＹＥＳになると、見つかったインデックス候補群に対応する本体のＳＭＦデータ群をカラオケ用ＳＭＦデータベース２２３から選択する。データベース管理部２２２は、ステップＳ３０７またはＳ３１１で端末装置１０１から受信した第１または第２の音高データ列を、上述の選択したＳＭＦデータ群の各メロディの出だしのノートオンＭＩＤＩデータ列の各音高と比較する（ステップＳ３１４）。これにより、データベース管理部２２２は、インデックスが部分一致するＳＭＦデータのうち、出だしのメロディのノートオンＭＩＤＩデータ列の各音高が端末装置１０１から受信したメロディデータの音高データ列と第２の合致基準で合致する曲を検索する、第２のメロディ検索を実施する（ステップＳ３１５）。この場合の第２の合致基準は、インデックスの部分一致によりＳＭＦデータがある程度絞り込まれているため、ステップＳ３０８での最初の検索での第１の合致基準の合致度に比較して、低くして（判定条件を緩和して）よい。
【００４６】
第２のインデックス検索に続いて第２のメロディ検索にも成功しステップＳ３１５の判定がＹＥＳになった場合は、データベース管理部２２２は、インデックスが部分一致しかつ出だしのメロディの音高データ列が第２の合致基準で合致したＳＭＦデータのうち、例えば合致度が最も高いＳＭＦデータを、カラオケ用ＳＭＦデータベース２２３から選択して読み出す。そして、データベース管理部２２２は、そのＳＭＦデータを、ネットワークインタフェース部２２１を介して端末装置１０１に通知する（ステップＳ３１６）。この結果、ＣＰＵ２０１が、ネットワークインタフェース部２０７を介してそのＳＭＦデータを受信し、ＲＡＭ２０３に記憶して、図３のフローチャートの処理を終了する。
【００４７】
データベース管理部２２２において、部分一致するインデックスが見つからず第２のインデックス検索に失敗してステップＳ３１３の判定がＮＯになった場合、または第２のインデックス検索には成功したが第２のメロディ検索には失敗してステップＳ３１５の判定がＮＯになった場合は、ＣＰＵ２０１は、対応するＳＭＦデータなしのコメントを表示部２０５に表示して処理を終わる（ステップＳ３１７）。カラオケデータは日々多くの曲データが制作され追加されていくが、それでも最新曲であったり、あまり有名でない曲の場合には、クラウドサーバ１０２のカラオケ用ＳＭＦデータベース２２３に含まれず、ＳＭＦデータがないこともある。
【００４８】
以上のように、本実施形態では、まず、ユーザにより選曲された曲のインデックス（Ａ＿Ｉｎｄｅｘ）とインデックスが完全一致するＳＭＦデータをクラウドサーバ１０２上のカラオケ用ＳＭＦデータベース２２３から検索する、第１のインデックス検索が実施される。
第１のインデックス検索に失敗した場合に、選曲された曲のオーディオデータに対応するメロディ無しオーディオデータを取得できる場合には、オーディオデータからメロディ無しオーディオデータが差し引かれることにより、オーディオデータのメロディ部分が第１のメロディデータとして抽出され、さらに第１のメロディデータの音高の列からなる第１の音高データ列が抽出される。そして、第１の音高データ列とノートオンＭＩＤＩデータ列の各音高が出だし（例えば先頭から４小節）部分で第１の合致基準で合致するＳＭＦデータをカラオケ用ＳＭＦデータベース２２３から検索する、第１のメロディ検索が実施される。
メロディ無しオーディオデータを取得できない場合には、センターカット等の音響解析処理により、オーディオデータからメロディ部分が第２のメロディデータとして抽出され、第２のメロディデータの音高の列からなる第２の音高データ列が抽出される。
第１のメロディ検索に失敗した場合、あるいは、メロディ無しオーディオデータを取得できず信頼性の低い第２のメロディデータが得られた場合には、曲のインデックス（Ａ＿Ｉｎｄｅｘ）とインデックスが部分一致するＳＭＦデータをクラウドサーバ１０２上のカラオケ用ＳＭＦデータベース２２３から検索する、第２のインデックス検索が実施される。この第２のインデックス検索に成功した場合にはさらに、第１または第２の音高データ列とノートオンＭＩＤＩデータ列の各音高が出だし部分で第１の合致基準よりも緩い第２の合致基準で合致するＳＭＦデータをカラオケ用ＳＭＦデータベース２２３から検索する、第２のメロディ検索が実施される。
第１のインデックス検索、第１のメロディ検索、または第２のメロディ検索のいずれかに成功した場合に、曲に対応する演奏データファイルが演奏データファイルデータベースから取得される。
このようにして、本実施形態によれば、ユーザが選曲したオーディオ曲に対応するＳＭＦデータ（演奏データファイル）をクラウドサーバ１０２上等にあるカラオケ用ＳＭＦデータベース２２３（演奏データファイルデータベース）から自動的に取得することが可能となる。
【００４９】
クラウドサーバ１０２でユーザが選曲したオーディオデータに該当するカラオケ用のＳＭＦデータが取得でき端末装置１０１に送られたら、そのカラオケ用のＳＭＦデータが光鍵盤キーボード１０３（図１、図２）用のレッスンデータに調整される。カラオケ用のＳＭＦデータにおいては、メロディ音はガイド音程度にしか鳴らないため、例えば光鍵盤キーボード１０３でのメロディレッスンには向かない。元々光鍵盤キーボード１０３等に内蔵されているレッスンデータであれば、メロディ音はユーザがレッスンしやすいようにある程度強調処理されている。しかし、本実施形態のように、例えば最新のあるいはユーザの所望のカラオケ用のＳＭＦデータをクラウドサーバ１０２から取得できてそれをレッスンデータに活用しようとする場合には、カラオケ用のＳＭＦデータ中のメロディ音がレッスンデータに適したメロディ音となるように調整する処理が必須となる。
【００５０】
図４は、ＳＭＦデータをレッスンデータに調整する処理を示すフローチャートである。この処理は、ＣＰＵ２０１が、ＲＯＭ２０２に記憶されたＳＭＦデータをレッスンデータに調整する処理プログラムを実行する処理である。
【００５１】
ＭＩＤＩフォーマットによっては異なる場合もあるが、ここではまず、ＣＰＵ２０１は、全部で１６ｃｈ（チャネル）あるうちの第４ｃｈにあるメロディデータを選曲された曲のメロディに特定する（ステップＳ４０１）。
【００５２】
ＣＰＵ２０１は、特定した第４ｃｈの音量調整を行う（ステップＳ４０２）。カラオケ用のＳＭＦデータは、カラオケ用なので、メロディはガイドメロディとして音量が小さく設定されている。そのため、ＣＰＵ２０１は、第４ｃｈ中の各ＭＩＤＩデータのベロシティ（ｖｅｌｏｃｉｔｙ）を例えば１．４倍にする調整を実行する。なお、この倍率の設定値は、音源とデータとの関連によって、例えばユーザが入力部２０４から適宜変更とできるようにしてよい。
【００５３】
次に、ＣＰＵ２０１は、第５ｃｈの音量調整を行う（ステップＳ４０３）。通常、カラオケ用のＳＭＦデータは、第５ｃｈにはコーラスパートが入っていて、例えばグループで歌っている場合などメロディとかぶるようなメロディパートを第５ｃｈおくこともある。そのため、このパートについても、ＣＰＵ２０１は、第５ｃｈ中の各ＭＩＤＩデータのベロシティ（ｖｅｌｏｃｉｔｙ）を例えば１．２倍にする調整を実行する。この倍率の設定値も、音源とデータとの関連によって、例えばユーザが入力部２０４から適宜変更とできるようにしてよいが、メロディの倍率設定値よりも少し控えめに設定するとよい。
【００５４】
次に、ＣＰＵ２０１は、メロディ音色変更処理を実行する（ステップＳ４０４）。ここでは、音量の大きい複数の伴奏音色の組合せにより、音量の大きい複数の伴奏とかぶらないように最適なメロディ音色を選択する調整が行われる。もともとのカラオケデータでは、メロディ音は、ガイドが主目的であったため、薄メロといって、クラリネットのような持続音もしくは、ビブラフォンのような減衰音のような、目立たない音色が選択されていることが多い。これだと音量を上げただけでは、メロディ音が目立たず伴奏音にかき消されてしまったりする。そこで、本実施形態では、レッスンするときにメロディ音色を伴奏音色に対して引き立つ音色にするために、この処理が実行される。光鍵盤キーボード１０３で鍵盤を光らせてレッスンするときに、メロディ音も一緒に発音されるので、上記処理が必要になる。光鍵盤キーボード１０３を製造するときには、プリセット音は元々そのように設定されていたが、本実施形態のように、カラオケ用のＳＭＦデータを流用する場合には、特に初心者は音色変更等が大変なので、そのような措置が必要になる。この処理の詳細は、図５および図６のフローチャートを用いて後述する。
【００５５】
次に、ＣＰＵ２０１は、小節調整を実行する（ステップＳ４０５）。カラオケ用のＳＭＦデータの中には、本来小節頭から始まる楽曲でも、データでは３拍目からはじまったり、４拍裏から始まったりするものもある。このようなＳＭＦデータに対しては、レッスンデータとして利用するにあたって、小節調整が必要になる。そこで、ＣＰＵ２０１は、ステップＳ４０５において、例えば８拍までのメロディ音符のリズムをみて、レッスンデータとすべきＳＭＦデータにおける小節の頭がずれていないか、いわゆるアウフタクト（弱起）の場合に正しい拍となっているかを判定する。そして、ＣＰＵ２０１は、その判定結果に基づいて、メロディ音符のリズムを拍子にあった強拍/弱拍のパターンを用いて採点し、小節調整を行う。
【００５６】
次に、ＣＰＵ２０１は、メロディのＤｕｒａｔｉｏｎを調整する（ステップＳ４０６）。例えば光鍵盤キーボード１０３の光鍵のように鍵盤を光らせる場合には、同音が続くときに、適切な間隔が入っていないと、鍵盤が継続して光ってしまうため、Ｄｕｒａｔｉｏｎ調整が必要となる。このため、ＣＰＵ２０１は、同音が連続する時に、Ｄｕｒａｔｉｏｎ、すなわち連続して発音される楽音の音長の並びを、例えば１０／４８０（１拍）空けるように調整する。
【００５７】
次に、ＣＰＵ２０１は、メロディクォンタイズを実行する（ステップＳ４０７）。メロディ音が必要以上に細かいとレッスンが困難になる。そこで、ＣＰＵ２０１は、メロディ音のノートオンＭＩＤＩデータに対して、ある程度の粗さ、例えば３２分音符または３２分の３連符（Ｔｒｉｐｌｅｔ）で、クォンタイズを行う。
【００５８】
次に、ＣＰＵ２０１は、メロディ演奏時のズレ調整を実行する（ステップＳ４０８）。レッスン時にメロディ発音のタイミングで、細かすぎる伴奏音がある場合には、オブリガードズレが発生し、不協和音に聞こえる。上述のステップＳ４０７では、メロディ発音時点で早く出過ぎる音がある場合には、その音はクォンタイズされる。ただし、ツリーチャイムやグリッサンドパートなどは、音色や前後の状態からこの扱いをしない対策が必要となるため、ツリーチャイムなどの音色は音色名ではずし、その他の音について調整するようにする。
【００５９】
次に、ＣＰＵ２０１は、ＳＭＦマーカによる楽式分類処理を実行する（ステップＳ４０９）。曲があまり長いとレッスンに疲れるので、ある程度の長さのフレーズ毎に区切って部分的にレッスンできるようにするとよい。この区切りをフレーズマーカと呼ぶ。本実施形態では、レッスンデータにこのフレーズマーカを記載する際に、ＣＰＵ２０１は、ＳＭＦデータに元々入っているマーカのあるところにフレーズマーカを記載する。カラオケのＳＭＦデータを作成する際には、Ａメロ、Ｂメロ、サビ、Ｂサビなど、楽式に従ってマーカを入れている場合が多い。そこで、ＳＭＦデータにＡメロというマーカが記載されていたら、そこをレッスンの大きなフレーズとしてとらえることが効果的である。
【００６０】
上述のステップＳ４０９において、ＳＭＦデータから抽出されたマーカの時間間隔が長い場合がある。そこで、ＣＰＵ２０１は、フレーズマーカ記載時、マーカ間隔が例えば所定小節に比較して長い場合には、そのマーカ間隔を１／２または１／４に区切り、レッスンしやすいフレーズマーカを作成し、レッスンデータ中に記載する（ステップＳ４１０）。
【００６１】
最後に、ＣＰＵ２０１は、レッスン用コード作成の処理を実行する（ステップＳ４１１）。ここでは、ＣＰＵ２０１は、ＳＭＦデータ中の伴奏音でコードパートとなっているパートから和音を抽出し、コードを判定して、レッスン用のコードパートを作成する。
【００６２】
図５は、図４のステップＳ４０４のメロディ音色変更処理を示すフローチャートである。
【００６３】
ＣＰＵ２０１はまず、ＳＭＦデータに対するジャンル検出処理を実行する（ステップＳ５０１）。伴奏編成はジャンルで決まるので、ジャンルを見れば伴奏音がわかりやすくなると考えられる。伴奏音がわかれば、レッスン時に伴奏音色に対して引き立つメロディ音を決定することができる。この処理の詳細は、図６のフローチャートを用いて後述する。
【００６４】
次に、ＣＰＵ２０１は、ステップＳ５０１で検出したジャンルを、ＲＡＭ２０３上の変数ＴｏｎｅＧに格納する（ステップＳ５０２）。
【００６５】
続いて、ＣＰＵ２０１は、ＳＭＦデータでメロディが鳴っている第４ｃｈで、一緒に出ているパートのうちベース、ドラム以外で音量が大きいパートを４つ選択する。そして、ＣＰＵ２０１は、それぞれのパート名を、ＲＡＭ２０３上の変数Ｐａｒｔ１、Ｐａｒｔ２、Ｐａｒｔ３、およびＰａｒｔ４に格納する（ステップＳ５０３）。
【００６６】
次に、ＣＰＵ２０１は、ＲＯＭ２０２またはＲＡＭ２０３上に記憶されているメロディ音色変更のための音色グループデータベース上で、ＴｏｎｅＧが示すジャンルに該当する項目を参照する（ステップＳ５０４）。図９は、メロディ音色変更のための音色グループデータベースのデータ構成例を示す図である。「Ｓｗｉｎｇ」「Ｌａｔｉｎ／Ｅｕｒｏｐｅａｎ」「Ｓｕｆｆｌｅ／ｂｌｕｅｓ」「Ｒｏｃｋ／Ｐｏｐｓ」「Ｆｕｎｋ／ＤａｎｃｅＰｏｐ」「Ｔｅｃｈｎｏ／Ｅｕｒｏ」といったジャンル毎に、図１０上の表の１列ずつが割り当てられ、各ジャンルごとの列において、上４行にはそのジャンルの伴奏パートとして使用頻度の高い伴奏音色名が登録され、下３行にはメロディ候補（メロディパート）として使用頻度の高いメロディ音色名が登録される。メロディ音色名としては、そのジャンルにおける伴奏パートの伴奏音色よりも引き立つメロディ音色の名称が登録される。
【００６７】
続いて、ＣＰＵ２０１は、現在のＳＭＦデータにある伴奏パートＰａｒｔ１〜４と、図９に例示されるメロディ音色変更のための音色グループデータベース上のＴｏｎｅＧに該当するジャンル項目に登録されている伴奏パートを比較して、２つ以上同じ伴奏パート名があるか否かを判定する（ステップＳ５０５）。伴奏パートにおいて、Ｇｕｉｔａｒであればアコースティックギターもエレクトリックギターも含めた音色グループとしてみている。また、判定基準を２つ以上のパートとする理由は、Ｇｕｉｔａｒは、どのジャンルにも含まれているので、１つだとジャンルを識別できないからである。すなわち、ギター以外で合致するものがあるかどうかを見ている。
【００６８】
ステップＳ５０５の判定がＹＥＳならば、ＣＰＵ２０１は、音色グループデータベースの該当ジャンルにあるメロディ候補を参照する（ステップＳ５１１）。例えば、ジャンルがＳｗｉｎｇでＳＭＦデータの伴奏パートがＧｕｉｔａｒとＰｉａｎｏとＳｔｒｉｎｇｓである場合、図９に例示されるメロディ候補Ｓａｘ、Ｔｒｕｍｐｅｔ、Ｏｒｇａｎが選択されることになる。
【００６９】
メロディ候補を１つ選択できたら、ＣＰＵ２０１は、そのメロディ候補音が伴奏音Ｐａｒｔ１〜４とかぶらないか否かを判定する（ステップＳ５１２）。
【００７０】
メロディ候補音が伴奏音Ｐａｒｔ１〜４とかぶりステップＳ５１２の判定がＮＯならば、ＣＰＵ２０１は、音色グループデータベースの該当ジャンルのメロディ候補項目から次のメロディ候補を選択する（ステップＳ５１３）。そして、ＣＰＵ２０１は、ステップＳ５１２の判定に戻る。
【００７１】
メロディ候補音が伴奏音Ｐａｒｔ１〜４とかぶらずステップＳ５１２の判定がＹＥＳならば、そのメロディ候補音をレッスンのためのメロディ音として決定し、メロディ変更を実行する（ステップＳ５１４）。具体的には、ＳＭＦデータ中の４ｃｈのメロディ音色を、決定したメロディ音に書き換える。その後、ＣＰＵ２０１は、図５のフローチャートで示される図４のステップＳ４０４のメロディ音色変更処理を終了する。
【００７２】
ステップＳ５０５の判定がＮＯならば、ＣＰＵ２０１は、変数ＴｏｎｅＧの値を、図９に例示される音色グループデータベース上で、ＴｏｎｅＧが示すジャンルの右隣のジャンルに修正して設定し直す（ステップＳ５０６）。
【００７３】
続いて、ＣＰＵ２０１は、ＴｏｎｅＧが示すジャンルの判定が一巡したか否かを判定する（ステップＳ５０７）。
【００７４】
一巡しておらずステップＳ５０７の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ５０５の判定に戻る。
【００７５】
一巡してしまいステップＳ５０７の判定がＹＥＳになると、ＣＰＵ２０１は、第４ｃｈのメロディ音を、強制的にクラリネット音に変更する（ステップＳ５０８）。
【００７６】
ＣＰＵ２０１は、Ｐａｒｔ１〜４にクラリネット音があるか否かを判定する（ステップＳ５０９）。
【００７７】
ステップＳ５０９の判定がＮＯならば、ＣＰＵ２０１は、図５のフローチャートで示される図４のステップＳ４０４のメロディ音色変更処理を終了する。
【００７８】
ステップＳ５０９の判定がＹＥＳならば、ＣＰＵ２０１は、第４ｃｈのメロディ音を、強制的にハーモニカ音に変更して（この音はどの伴奏音ともかぶらない）、図５のフローチャートで示される図４のステップＳ４０４のメロディ音色変更処理を終了する。
【００７９】
図６は、図５のステップＳ５０１のジャンル検出処理を示すフローチャートである。前述したように、メロディ音色をレッスン用に変更するには、伴奏音色とかぶらない音色が望ましいが、伴奏音には、音楽ジャンルによってある程度楽器の種類が決まっているので、ここではまず、おおよそのジャンルが分析される。
【００８０】
ジャンルを識別するそのためには、わかりやすい方法が２つある。ベースを見るかドラムを見るかである。ドラムの場合は、ドラムの音色で、スタンダードセットとかジャズセットとかルームセットとかがあるが、ジャズセットはジャズのものによく使うし、スタンダードセットはいろいろなジャンルに使うが、ルームセットは現代風のラップとかに使ったりする。一番わかりやすいのはベース音色である。ベース音色が何か、リズムは跳ねているかどうか、を知ることが重要である。
【００８１】
図６において、ＣＰＵ２０１はまず、ベースがウッドベース（ＷｏｏｄＢａｓｓ）か否かを判定する（ステップＳ６０１）。
【００８２】
ステップＳ６０１の判定がＹＥＳならば、ＣＰＵ２０１は、リズムが３連系（Ｔｒｉｐｌｅｔ）であるか否かを判定する（ステップＳ６０２）。３連系か否かは、例えばドラムの演奏データで、例えば１６分音符系だと１拍が例えば４８０クロックと決まっている場合において、３連系でなければ、０，１２０，２４０，３６０というように、２で割れるクロックカウントでリズムが刻まれる（そこにドラム音がある）。これに対して、３連系の場合には、０，１６０，３２０というように、３で割れるクロックカウントでリズムが刻まれる。そこで、リズムのクロックカウントを判別することにより、３連系か否かが判定される。
ドラムパートはイントロでは連打などあり、基本リズムの骨格がみえにくいので、メロディが出てくる部分のリズム、特にＡメロのマーカがある部分でＴｒｉｐｌｅｔか否かを検討するとよい。
【００８３】
ＣＰＵ２０１は、ステップＳ６０２の判定が、ＹＥＳならばジャンルをＳｗｉｎｇ系音色グループ（ステップＳ６０３）、ＮＯならばジャンルをＬａｔｉｎ／Ｅｕｒｏｐｅａｎ系音色グループ（ステップＳ６０４）に決定して、図６のフローチャートで示される図５のステップＳ５０１のジャンル検出処理を終了する。
【００８４】
ステップＳ６０１の判定がＮＯの場合、ＣＰＵ２０１は、ベースがエレクトレットベース（ＥｌｅｃＢａｓｓ）またはギターか否かを判定する（ステップＳ６０５）。
【００８５】
ステップＳ６０５の判定がＹＥＳならば、ＣＰＵ２０１は、リズムが３連系であるか否かを判定する（ステップＳ６０６）。
【００８６】
ＣＰＵ２０１は、ステップＳ６０６の判定が、ＹＥＳならばジャンルをＳｈｕｆｆｌｅ／Ｂｌｕｓｅ系音色グループ（ステップＳ６０７）、ＮＯならばジャンルをＲｏｃｋ／Ｐｏｐｓ系音色グループ（ステップＳ６０８）に決定して、図６のフローチャートで示される図５のステップＳ５０１のジャンル検出処理を終了する。
【００８７】
ステップＳ６０５の判定がＮＯの場合、ＣＰＵ２０１は、ベースがシンセサイザーベース（ＳｙｎｔｈＢａｓｓ）かを判定する（ステップＳ６０9）。
【００８８】
ステップＳ６０９の判定がＹＥＳならば、ＣＰＵ２０１は、リズムが３連系であるか否かを判定する（ステップＳ６１０）。
【００８９】
ＣＰＵ２０１は、ステップＳ６１０の判定が、ＹＥＳならばジャンルをＦｕｎｋ／ＤａｎｃｅＰｏｐ系音色グループ（ステップＳ６１１）、ＮＯならばジャンルをＴｅｃｈｎｏ／Ｅｕｒｏ系音色グループ（ステップＳ６１２）に決定して、図６のフローチャートで示される図５のステップＳ５０１のジャンル検出処理を終了する。
【００９０】
ステップＳ６０９の判定もＮＯの場合、ＣＰＵ２０１は、ジャンルをその他音色グループに決定して（ステップＳ６１３）、図６のフローチャートで示される図５のステップＳ５０１のジャンル検出処理を終了する。
【００９１】
以上説明したようにして、本実施形態では、クラウドサーバ１０２でユーザが選曲したオーディオデータに該当するカラオケ用のＳＭＦデータが取得でき端末装置１０１に送られたら、そのカラオケ用のＳＭＦデータを光鍵盤キーボード１０３（図１、図２）用のレッスン用に適したレッスンデータに調整することが可能となる。特に、本実施形態では、ＳＭＦデータからジャンルを検出することにより、音色グループデータベースを参照して、そのジャンルに対応する伴奏音のグループを決定し、さらにその伴奏音に対してレッスン時にメロディ音が引き立つ音色になるように、音色グループデータベース中のメロディ候補からメロディ音を決定することが可能となる。
【００９２】
なお、本実施形態に加えて、Ａメロ、Ｂメロ等のパート毎に、最適なメロディ音を設定するようにしてもよい。
【００９３】
さらに、本実施形態では、ジャンル推測とメロディ音色変更のための音色グループデータベースを利用したが、ＳＭＦデータ、オーディオデータのインデックスなどにもジャンルが書かれている場合もあるので（例えば図８に例示されるインデックスの「コメント」項目に登録されている「ポピュラー（ピアノ）」）、これらのジャンルとメロディ音が書かれた音色グループデータベースを用意して対応してもよい。
【００９４】
上述した実施形態は、オーディオデータからＳＭＦデータを検索して合致したＳＭＦデータをレッスンデータに調整して、光鍵盤キーボード１０３等でレッスンを行うことを想定している。これに対して、合致したＳＭＦデータのうち、メロディだけＳＭＦデータを利用して、伴奏などは元のオーディオデータを利用することによって、演奏レッスンの臨場感を向上させることができる。そのためには、オーディオデータとＳＭＦデータを同期させることが必要になる。
【００９５】
図７は、本発明の他の実施形態として、メロディだけＳＭＦデータを利用して、伴奏などは元のオーディオデータを利用する場合における、オーディオデータとＳＭＦデータの同期処理を示すフローチャートである。この実施形態のシステム構成およびハードウェア構成は、図１および図２に示される例と同様である。
【００９６】
まず、図３のステップＳ３０５と同様にして、ＣＰＵ２０１は、端末装置１０１内の楽曲データベース中に、現在選曲されているオーディオ曲に対応するボーカル付きのオーディオデータとそのカラオケバージョンが有るか否かを判定する（ステップＳ７０１）。
【００９７】
ステップＳ７０１の判定がＹＥＳならば、図３のステップＳ３０６と同様に、ボーカル付きのオーディオデータの時間信号から、ボーカルなしのカラオケデータのオーディオデータの時間信号を、両方の開始時間を合わせた上で差し引くことによって、メロディデータを抽出する（ステップＳ７０２）。
【００９８】
ＣＰＵ２０１は、ステップＳ７０２で抽出したメロディデータのオンタイミングに、ＳＭＦデータのメロディデータのオンタイミングをあわせる（ステップＳ７０３）。メロディデータは、オーディオデータとカラオケデータの差分で求まっているため、オーディオデータの開始後メロディデータが開始するまでは無音となる。従って、メロディデータの開始時点すなわちオンタイミングは、オーディオデータの開始から何秒後とわかるのでそこでＳＭＦデータにあるメロディデータのオンタイミングを合わせる。
【００９９】
ステップＳ７０１の判定がＮＯの場合には、ＣＰＵ２０１は、オーディオデータ中の特徴的なパートを探す（ステップＳ７０４）。例えば、オーディオデータの最初のほうで音域が高いもしくは低い、あるいはパン（音像定位）が極端になっているなどの特徴的なパートである。
【０１００】
ＣＰＵ２０１は、ステップＳ７０４の探索の結果、該当するパートがあるか否かを判定する（ステップＳ７０５）。
【０１０１】
ステップＳ７０５の判定がＹＥＳの場合、ＣＰＵ２０１は、ＳＭＦデータのパートがオーディオデータの該当パートに合致するか否かを判定する（ステップＳ７０６）。
【０１０２】
ステップＳ７０６の判定がＹＥＳならば、ＣＰＵ２０１は、オーディオデータの該当パートのオンタイミングにＳＭＦデータの該当パートをあわせることによって、ＳＭＦとオーディオデータの同期をとる。
【０１０３】
ステップＳ７０５またはＳ７０６の判定がＮＯならば、図３のステップＳ３１０と同様の処理が実行される。すなわち、ＣＰＵ２０１は、オーディオデータからセンターカットの手法でセンターに定位するデータを抽出し、そのセンターにある音で、ドラムでもない、音域的にベースでもなく、同時に押される和音（コードパート）でもなく、かつメロディ音域に入るような音を、メロディデータとして抽出する。ＣＰＵ２０１は、このようにして抽出したメロディデータに対してピッチの分析・抽出の分析を実行することにより、メロディデータ（メロディパート）の音高データ列を抽出する（以上、ステップＳ７０８）。
【０１０４】
ＣＰＵ２０１は、ステップＳ７０８で抽出したメロディデータの音高データ列に、ＳＭＦのメロディパートのノートオンＭＩＤＩデータ列の各音高と一致する部分が含まれるか否かを判定する（ステップＳ７０９）。
【０１０５】
ステップＳ７０９の判定がＹＥＳならば、ステップＳ７０８で抽出したオーディオデータのオンタイミングにＳＭＦデータをのせるようにする（ステップＳ７１０）。
【０１０６】
ステップＳ７０３、Ｓ７０７、またはＳ７１０の処理の後、ＣＰＵ２０１は、図７のフローチャートの処理を終了し、図４から図６に例示されるフローチャートの処理によりＳＭＦデータをレッスンデータに調整し、そのレッスンデータ中のメロディデータをメロディ音、オーディオデータを伴奏音として光鍵盤キーボード１０３に転送し、ユーザにレッスンを行わせる。
【０１０７】
ステップＳ７０９の判定がＮＯならば、同期できないためオーディオ伴奏ではなく、ＳＭＦデータで伴奏するコメントを、表示部２０５に表示し、図７のフローチャートの処理を終了。その後のレッスンデータの調整等の処理は、前述した通りである。
【０１０８】
以上説明したように、オーディオデータとＳＭＦデータを同期させる処理は、光鍵盤キーボード１０３等を用いたレッスンデータの作成に限られるものではなく、生伴奏で演奏を行いたいあるいは歌を歌いたいといった場合に、メロディデータにオーディオデータを同期させるために活用することができる。
【０１０９】
上述した各実施形態によれば、端末装置１０１に入っている自分で購入した曲と、クラウドにあるカラオケデータと比較して、ＳＭＦデータを取得、調整することにより、手軽に簡単な操作で好きな曲が光鍵などのレッスンデータとして利用可能となる。
【０１１０】
また、オーディオデータとＳＭＦデータを同期させることにより、光鍵で生音を伴奏音としてレッスンすることが可能となる。
【０１１１】
上述した各実施形態は、ユーザの持っているオーディオ曲のデータと、クラウドデータにあるＳＭＦのインデックスとを照合してデータを特定し、レッスンデータとして利用するために調整できることを特徴としている。従って、以下のような効果がある。
（１）ユーザが買った曲で弾きたい曲をレッスンできる。
（２）レッスンできるように調整されているので、光鍵でレッスンできる。
（３）ＳＭＦデータのマーカなどを利用してフレーズ分割をしているので、フレーズ練習もできる。
（４）ＳＭＦデータのジャンル分析をし、これに合うメロディ音に変更しているので、伴奏に合う音で弾ける。
（５）ＳＭＦとオーディオデータの同期もできるようにしているので、伴奏はオーディオデータで弾くということもできる。
【０１１２】
以上の各実施形態に関して、更に以下の付記を開示する。
（付記１）
外部より供給された曲を識別するインデックスと対応するインデックスが付与されている前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索する第１のインデックス検索を実行し、
当該第１のインデックス検索により、前記演奏データファイルが発見できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出する第１のメロディ抽出を実行し、
当該抽出された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索する第１のメロディ検索を実行し、
前記第１のインデックス検索と前記第１のメロディ検索との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得する、
ことを特徴とする演奏データファイル検索方法。
【０１１３】
（付記２）
前記第１のインデックス検索として、前記供給された曲のインデックスと完全一致する前記インデックスが付与されている前記演奏データファイルを、前記演奏データファイルデータベースから検索することを特徴とする付記１に記載の演奏データファイル検索方法。
【０１１４】
（付記３）
前記メロディ抽出として、前記オーディオデータとは別に、前記曲のメロディ部分を含まないメロディ無しオーディオデータを取得できるか否か判別し、
前記メロディ無しオーディオデータを取得できると判別された場合には、前記オーディオデータから前記メロディ無しオーディオデータを差し引いて前記オーディオデータのメロディ部分を抽出することを特徴とする付記１又は２に記載の演奏データファイル検索方法。
【０１１５】
（付記４）
前記第１のメロディ検索により前記演奏データファイルが発見できなかった場合、前記オーディオデータのインデックスと部分一致するインデックスが付与されている前記演奏データファイルの群を前記演奏データファイルデータベースから検索する第２のインデックス検索をさらに実行し、
前記第２のインデックス検索により前記演奏データファイルの群を検索できた場合に、前記抽出された音高データ列と前記第１の合致基準よりも判定条件を緩和した第２の合致基準で合致する音高データ列を含む演奏データファイルを前記演奏データファイルの群から検索する第２のメロディ検索をさらに実行することを特徴とする付記１乃至３のいずれかに記載の演奏データファイル検索方法。
【０１１６】
（付記５）
前記第２のメロディ検索により前記演奏データファイルを検索できた場合に、当該演奏データファイルを前記演奏データファイルデータベースから取得することを特徴とする付記４に記載の演奏データファイル検索方法。
【０１１７】
（付記６）
前記メロディ無しオーディオデータを取得できないと判別された場合には、音響解析処理により前記オーディオデータからメロディ部分を抽出し、
前記抽出されたオーディオデータのメロディ部分から、前記曲のメロディ部分を表す音高データ列を抽出することを特徴とする付記３に記載の演奏データファイル検索方法。
【０１１８】
（付記７）
前記オーディオデータのインデックスと部分一致するインデックスが付与されている前記演奏データファイルの群を前記演奏データファイルデータベースから検索する第２のインデックス検索をさらに実行し、
前記第２のインデックス検索に成功した場合に、前記抽出された音高データ列と前記第１の合致基準よりも判定条件を緩和した第２の合致基準で合致する音高データ列を含む演奏データファイルを前記演奏データファイルの群から検索する第２のメロディ検索をさらに実行することを特徴とする付記６に記載の演奏データファイル検索方法。
【０１１９】
（付記８）
前記第２のメロディ検索により前記演奏データファイルを検索できた場合に、当該演奏データファイルを前記演奏データファイルデータベースから取得することを特徴とする付記７に記載の演奏データファイル検索方法。
【０１２０】
（付記９）
前記演奏データファイルは、ＭＩＤＩ形式の標準ＭＩＤＩファイルである、
ことを特徴とする付記１乃至８のいずれかに記載の演奏データファイル検索方法。
【０１２１】
（付記１０）
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索手段と、
当該インデックス検索手段により、前記演奏データファイルが検索できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出するメロディ抽出手段と、
当該抽出された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索手段と、
前記インデックス検索手段と前記メロディ検索手段との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得する取得手段と、
を有することを特徴とする演奏データファイル検索装置。
【０１２２】
（付記１１）
コンピュータに、
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索する第１のインデックス検索を実行するステップと、
当該インデックス検索により、前記演奏データファイルが検索できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出する第１のメロディ抽出を実行するステップと、
当該抽出された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索を実行するステップと、
前記第１のインデックス検索と前記第１のメロディ検索との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得するステップと、
を実行させるプログラム。
【０１２３】
（付記１２）
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索手段と、受信された音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索手段と、前記インデックス検索手段と前記メロディ検索手段との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得して送信する取得送信手段と、を有するサーバ装置に接続される端末装置であって、
前記インデックス検索手段により、前記演奏データファイルが検索できなかった場合、少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出して前記サーバ装置に送信するメロディ抽出送信手段と、
前記サーバ装置から送信される演奏データファイルを受信する受信手段と、
を有することを特徴とする端末装置。
【０１２４】
（付記１３）
少なくとも前記曲のメロディ部分を含むオーディオデータから、当該曲のメロディ部分を表す音高データ列を抽出して送信するメロディ抽出送信手段と、を有する端末装置に接続されるサーバ装置であって、
所望の曲を識別するインデックスと対応するインデックスが付与され前記曲を表わす音高データ列を含む演奏データファイルを、演奏データファイルデータベースから検索するインデックス検索手段と、
前記端末装置から送信される前記音高データ列を含む前記演奏データファイルを、第１の合致基準に基づいて前記演奏データファイルデータベースから検索するメロディ検索手段と、
前記インデックス検索手段と前記メロディ検索手段との少なくとも一方の検索結果に基づいて、前記曲に対応する演奏データファイルを前記演奏データファイルデータベースから取得する取得手段と、
を有することを特徴とするサーバ装置。
【符号の説明】
【０１２５】
１０１  端末装置
１０２  クラウドサーバ
１０３  光鍵盤キーボード
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  入力部
２０５  表示部
２０６  ＭＩＤＩインタフェース部（ＭＩＤＩ  Ｉ／Ｆ）
２０７、２２１  ネットワークインタフェース部
２０８  バス
２２２  データベース管理部
２２３  カラオケ用ＳＭＦデータベース
【図２】
2015060177.tif 000003
【図４】
2015060177.tif 000004
【図５】
2015060177.tif 000005
【図６】
2015060177.tif 000006
【図７】
2015060177.tif 000007
【図８】
2015060177.tif 000008
【図９】
2015060177.tif 000009
【図１】
2015060177.tif 000010
【図３】
2015060177.tif 000011