以下、本発明の一実施形態にかかる作曲支援装置を説明する。本発明の一実施形態にかかる作曲支援装置は、メロディ音を入力する入力部と、入力部に入力されたメロディ音に基づいて作曲する作曲部と、を備え、作曲部は、設定されたジャンル及び曲調並びにメロディ音の小節数に基づき作曲を行う。このようにすることにより、設定されたジャンル、曲調及びメロディ音の小節数に基づき作曲をすることができる。
また、メロディ音は、少なくともユーザによる歌唱、鼻歌、又は楽器を用いた演奏のいずれかを含んでいればよい。また、メロディ音を五線譜上に表示する楽譜表示部をさらに備えてもよい。また、メロディ音をアレンジした生成メロディを音声信号に変換し、アップロードするネットワーク通信部をさらに備えてもよい。
また、本発明の一実施形態にかかる作曲支援装置は、歌詞入力部から入力された歌詞情報に基づいて、検索部が複数の作成者によって作成された複数のメロディ情報を蓄積する蓄積部からメロディ情報を検索し、楽曲出力部から検索された結果を楽曲として出力するので、複数の作成者によって作成されたメロディ情報から歌詞に合わせたメロディ情報を検索することができる。また、様々な作成者による複数のメロディ情報を組み合わせて作曲することができるので、自動生成されるメロディよりもバラエティに富んだ曲が作成できる。また、ユーザは歌詞を入力するだけでよいので、容易に作曲を行うことができる。
また、歌詞入力部に入力された歌詞情報から音数を抽出する音数抽出部を備え、検索部が、音数抽出部で抽出された音数に基づいて蓄積部に蓄積されているメロディ情報を検索してもよい。このようにすることにより、歌詞の音数から検索することができるので、歌詞の音数(文字数)に合わせられるとともに、歌詞の発音によらないメロディ情報の検索を行うことができる。
また、音数抽出部が、歌詞情報から抽出した音数を複数の小節に分割してもよい。このようにすることにより、予め小節を構成した状態で検索部に情報を送信することができ、検索部で行う検索動作を行いやすくすることができる。
また、検索部が、メロディ情報を所定の小節単位で各小節内の音数に基づいて検索してもよい。このようにすることにより、音数のみで検索するよりもメロディ情報の検索が容易となり、候補を絞り込みやすくすることができる。
また、検索部が、音数を増加または減少させメロディ情報を検索してもよい。このようにすることにより、検索対象となるメロディ情報を増やすことができ、作曲の幅を広げることができる。
また、メロディ情報には、キー情報と、小節ごとの音数情報と、を含んでもよい。このようにすることにより、複数のメロディ情報を組み合わせる際にキーの調整を行うことができたり、小節ごとに音数が合ったメロディ情報を検索することができる。
また、所定のメロディ情報に含まれるキー情報に基づいて、当該所定のメロディ以外のメロディ情報に含まれるキー情報を調整するキー調整部を更に備えてもよい。このようにすることにより、複数のメロディ情報を組み合わせた際の繋がりの違和感を緩和することができる。
また、楽曲出力部が、検索部で検索されたメロディ情報を音楽として出力してもよい。このようにすることにより、検索されたメロディ情報をユーザ等に音として聞かせて確認させることができる。
また、楽曲出力部が、検索部で検索されたメロディ情報を音符情報として表示してもよい。このようにすることにより、検索されたメロディ情報を楽譜などとして表示してユーザに確認させることができる。
また、本発明の一実施形態にかかるメロディ検索装置は、歌詞情報受信部で受信した歌詞情報に基づいて、検索部で複数の作成者によって作成された複数のメロディ情報を蓄積する蓄積部からメロディ情報を検索し、検索結果出力部から検索された結果を出力するので、蓄積部に蓄積されたメロディ情報から音数に合ったメロディ情報を検索することができる。
また、本発明の他の一実施形態にかかる作曲支援装置は、メロディ情報取得部で、蓄積部に蓄積された複数の作成者によって入力された複数のメロディ情報から、歌詞入力部によって入力された歌詞情報に基づいたメロディ情報の検索を行い、当該検索されたメロディ情報を含む検索結果を取得するので、複数の作成者によって作成されたメロディ情報から歌詞に合わせたメロディ情報を検索することができる。また、様々な作成者による複数のメロディ情報を組み合わせて作曲することができるので、自動生成されるメロディよりもバラエティに富んだ曲が作成できる。また、ユーザは歌詞を入力するだけでよいので、容易に作曲を行うことができる。
また、本発明の一実施形態にかかる作曲支援方法は、歌詞入力工程において入力された歌詞情報に基づいて、検索工程で複数の作成者によって作成された複数のメロディ情報を蓄積する蓄積部からメロディ情報を検索し、楽曲出力工程で検索された結果を楽曲として出力するので、複数の作成者によって作成されたメロディ情報から歌詞に合わせたメロディ情報を検索することができる。また、様々な作成者による複数のメロディ情報を組み合わせて作曲することができるので、自動生成されるメロディよりもバラエティに富んだ曲が作成できる。また、ユーザは歌詞を入力するだけでよいので、容易に作曲を行うことができる。
また、本発明の一実施形態にかかる作曲支援プログラムは、上述した作曲支援方法をコンピュータに実行されている。このようにすることにより、複数の作成者によって作成されたメロディ情報から歌詞に合わせたメロディ情報を検索することができる。また、様々な作成者による複数のメロディ情報を組み合わせて作曲することができるので、自動生成されるメロディよりもバラエティに富んだ曲が作成できる。また、ユーザは歌詞を入力するだけでよいので、容易に作曲を行うことができる。
また、上述した作曲支援プログラムをコンピュータ読み取り可能な記録媒体に格納してもよい。このようにすることにより、当該プログラムを機器に組み込む以外に単体でも流通させることができ、バージョンアップ等も容易に行える。
本発明の第1の実施例にかかる作曲支援装置1を図1乃至図11を参照して説明する。作曲支援装置1は図1に示すように、メロディ登録端末10、20と、管理サーバ30と、歌詞入力端末40と、から構成されている。
メロディ登録端末10、20および歌詞入力端末40は、例えばパーソナルコンピュータやスマートフォン等のネットワークに接続可能な端末機器で構成されている。管理サーバ30は、例えば事業所などに設置されたコンピュータなどで構成され、メロディ登録端末10、20から登録されたメロディ情報の管理や、歌詞入力端末40から送信された音数情報に基づいてメロディ情報の検索などを行う。なお、メロディ登録端末10、20および歌詞入力端末40と管理サーバ30とは無線通信を行うが、直接通信や専用回線に限らず公衆回線を経由して通信を行ってもよいことはいうまでもない。
また、図1に記載の作曲支援装置1の構成は、一例でありこれに限られるものではない。図1は、作曲支援装置1が備える各構成部をメロディ登録端末10、20や歌詞入力端末40と管理サーバ30とに分けて備えてもよいことを示しており、例えば、歌詞入力端末40を構成する一部を、管理サーバ30が備えることとしてもよいし、逆に管理サーバ30を構成する一部を、歌詞入力端末40が備えることとしてもよい。
メロディ登録端末10は、図1に示したように、入力部11と、作曲者情報12と、楽譜表示部13と、MIDIデータ生成/保存部14と、スピーカ15と、制御部16と、ネットワーク通信部17と、を備えている。
入力部11は、例えばキーボードやマウス、タッチパネルまたはMIDI(Musical Instrument Digital Interface)対応楽器等から構成され、メロディを作成する際に入力する音符等の情報を入力する。なお、本実施例におけるメロディとは、曲として完結しているものに限らず、例えば4小節など複数小節以上のフレーズなど少なくとも音程が判別できる楽曲情報である。
作曲者情報12は、入力したメロディを作曲した人物の氏名またはニックネームなどの名称や、後述する管理サーバ30上での管理IDなど作曲者に関する情報を設定、記憶している。
楽譜表示部13は、例えば液晶ディスプレイなどで構成され、入力部11から入力されるメロディ情報を構成する楽譜や音符等を表示する。
MIDIデータ生成/保存部14は、入力部11から入力されたメロディをMIDIデータ(メロディ情報)に変換して保存する。
スピーカ15は、例えば、作成したまたは作成中のメロディを確認するために設けられているスピーカであり、例えば、入力部11からの操作により、制御部16が図示しない音源等を用いて適当な楽器の音として生成した信号を音声に変換して出力する。
制御部16は、メロディ登録端末10の全体制御を司り、入力部11から入力されたメロディをMIDIデータ生成/保存部14に変換、保存させたり、楽譜表示部13に表示させる楽譜データを生成したり、スピーカ15に出力するための音声情報を生成したりする。
ネットワーク通信部17は、MIDIデータ生成/保存部14に保存されているMIDIデータ(メロディ情報)や作曲者情報12を管理サーバ30に無線通信により送信する。
メロディ登録端末10は、上述したように楽譜表示部13に表示された五線譜上に入力部11から音符等を配置したり、楽器等から入力したりしてMIDIデータを作成する端末である。
メロディ登録端末20は、図1に示したように、作曲者情報12と、楽譜表示部13と、MIDIデータ生成/保存部14と、スピーカ15と、制御部16と、ネットワーク通信部17と、マイク21と、音声周波数解析・採譜処理部22と、入力部23と、を備えている。
メロディ登録端末20の構成ブロックのうち、作曲者情報12と、楽譜表示部13と、MIDIデータ生成/保存部14と、スピーカ15と、制御部16と、ネットワーク通信部17は、メロディ登録端末10と同様である。但し、MIDIデータ生成/保存部14は、音声周波数解析・採譜処理部22の結果に対してMIDIデータを生成する。
マイク21は、例えばユーザ等が楽器等と用いて演奏したメロディ音が入力される。なお、楽器を用いずに歌唱であってもよいし、鼻歌など完全な歌唱でなくても後述する音声周波数解析・採譜処理部22でデータの生成が可能であればよい。
音声周波数解析・採譜処理部22は、マイクから入力されたメロディ音に対して周波数解析を行い、音の高低などを検出して音符や休符等に当てはめる採譜処理を行う。なお、音声周波数解析・採譜処理部22で行われる入力された音を周波数解析して採譜することは、例えば、特開2011−059258号公報などに記載されているような周知な方法で行えばよい。
入力部23は、例えば、キーボードやマウス、タッチパネル等から構成されている。入力部23は、メロディ登録端末10の入力部11と異なり、メロディ自体の入力は行わず、マイク21から入力するメロディ音のキー(Cメジャー、Aマイナー等)や拍子(4分の4拍子など)などを設定するために用いる。
なお、メロディ登録端末20の制御部16は、構成は同様であるが、マイク21から入力されたメロディ音を音声周波数解析・採譜処理部22に採譜させたり、採譜されたデータをMIDIデータ生成/保存部14でMIDIデータに変換し、スピーカ15に出力するための音声情報を生成したりする。また、スピーカ15は、作成したまたは作成中のメロディ情報を確認するだけでなく、マイク21からメロディ音を入力する際に基準とするテンポを音として出力する。このテンポは入力部23で設定された拍子に基づくものである。
メロディ登録端末20は、上述したようにマイク21から入力された音からMIDIデータを作成する端末である。
メロディ検索装置としての管理サーバ部30は、図1に示したように、ネットワーク通信部31と、制御部32と、音声データエンコード部33と、音数解析部34と、MIDIデータDB保存部35と、MIDIデータの属性情報DB保存部36と、メロディ検索部37と、を備えている。
歌詞情報受信部、検索結果出力部としてのネットワーク通信部31は、メロディ登録端末10、20や後述する歌詞入力端末40と無線通信を行い、メロディ登録端末10、20からMIDIデータや作曲者情報等を受信する。また、歌詞入力端末40から音数情報を受信するとともに、検索されたMIDIデータを変換した音声データや属性情報等の送信などを行う。
制御部32は、管理サーバ30の全体制御を司り、ネットワーク通信部31がメロディ登録端末10、20から受信したMIDIデータ等を後述するMIDIデータDB保存部35に保存したり、MIDIデータの属性を示す情報を解析してMIDIデータ属性情報DB保存部36に格納したりする。
また、制御部32は、後述するメロディ検索部37で検索されたMIDIデータを音声データエンコード部33で音声データにエンコードさせる。また、制御部32は、ネットワーク通信部31が歌詞入力端末40から受信した音数情報に基づいてメロディ検索部37にMIDIデータDB保存部35内のMIDIデータを検索させる。
音声データエンコード部33は、後述するメロディ検索部37で検索されたMIDIデータをWAV(RIFF waveform Audio Format)やMP3(MPEG Audio Layer-3)等の符号化された音声データにエンコードする。
音数解析部34は、メロディ登録端末10、20から送信されたMIDIデータから小節数と小節中の音数を解析する。
蓄積部としてのMIDIデータDB保存部35は、メロディ登録端末10、20から送信されたMIDIデータがデータベースとして保存されている。即ち、複数の作成者によって入力されたメロディ情報が蓄積されている。
蓄積部としてのMIDIデータの属性情報DB保存部36は、MIDIデータDB保存部35に保存されているMIDIデータの小節数、小節中の音数、キー、作曲者などの属性情報がデータベースとして保存されている。なお、本実施例では、属性情報を用いてMIDIデータの検索を行うのでMIDIデータの属性情報DB保存部36も蓄積部となる。また、MIDIデータDB保存部35とMIDIデータの属性情報DB保存部36は、別々の記憶装置に限らず同じ記憶装置としてもよい。
ここで、MIDIデータの属性情報DB保存部36に保存されている属性情報について、図2の表を参照して説明する。図2の表において、MIDIデータ1つにつき1行が割り当てられている。そして、各MIDIデータの属性情報としては、メロディID、小節数、小節中の音数、キー、作曲者ID、被引用情報、メロディ格納場所等の各情報が設定されている。
メロディIDは、MIDIデータに一意に割り振られる番号である。小節数と小節中の音数は、音数解析部34で解析された小節数と小節中(小節ごと)の音数が設定される。キーは、メロディ登録端末10の入力部11またはメロディ登録端末20の入力部23で設定されるか、あるいはメロディ登録端末10、20から送信されたMIDIデータから制御部32が解析し設定される。作曲者IDは、メロディ登録端末10、20から送信された作曲者情報に含まれる作曲者IDまたは管理サーバ30にログインする際のID等から作曲者IDを特定し設定される。
被引用情報は、当該MIDIデータがどの程度使われたか(引用されたか)を示す情報であり、制御部32が被引用回数(回数)と、当該MIDIデータを使用した(引用した)ユーザのIDを示す情報である引用者ID群と、の2つの情報が設定される。このような情報を設定することで、例えば、被引用回数が多いMIDIデータは人気度が高いとして、後述するメロディ検索時に優先順位を高くしたり、検索結果をユーザに表示した際に、人気があるメロディであることを合わせて表示したりすることができる。
メロディ格納場所は、当該属性情報を有するMIDIデータDB保存部35におけるMIDIデータの在り処を示す情報であり、MIDIデータDB保存部35に基づいて制御部32が設定する。
検索部としてのメロディ検索部37は、歌詞入力端末40から送信された音数情報に基づいて、検索条件を設定し、検索条件に合ったMIDIデータをMIDIデータの属性情報DB保存部36を参照して検索する。
歌詞入力端末40は、ネットワーク通信部41と、制御部42と、小節割り当て解析部43と、音数解析部44と、入力部45と、表示部46と、スピーカ47と、プレイヤ48と、デコード部49と、アレンジ部4aと、を備えている。
ネットワーク通信部41は、管理サーバ30と無線通信を行い、音数情報の送信や、検索されたMIDIデータから変換された音声データ等の受信を行う。
制御部42は、歌詞入力端末40の全体制御を司り、入力部45から入力された歌詞の音数を音数解析部44に解析させたり、音数が解析された歌詞の小節を小節割り当て解析部43に解析させたりする。
また、制御部42は、管理サーバ30から送信され音声データをデコード部49にデコードさせたり、プレイヤ48にデコードされた音声データ再生させたり、再生された音声データをスピーカ47に出力したりする。
小節割り当て解析部43は、後述する音数解析部44で解析された歌詞(音数)を小節単位に割り当てる。割り当て方法は後述する。即ち、歌詞情報から抽出された音数を複数の小節に分割している。
音数解析部44は、入力部45から入力された歌詞情報を解析し音数を抽出する。解析方法としては、例えば形態素解析などの自然言語処理にて行う。具体例を図3を参照して説明する。
図3は、「春はあけぼのの頃がよい。だんだん白くなっていく山ぎわが少し明るくなり紫がかった雲が細くたなびいているのがよい。」という歌詞が入力された場合解析例である。
図3に示すように、単語や形態素ごとに分割して、それぞれの音節を求める。例えば、「春はあけぼのの頃がよい。」であれば、「春は」「あけぼのの」「頃が」「よい。」と分割し、それぞれで音節(音数)を求めると、3音、5音、3音、2音となる。以降これを繰り返して、入力された歌詞について音数を求める。
次に、小節割り当て解析部43で行う、音数を小節単位に割り当てる方法について図4を参照して説明する。
図4の1は、図3で示した歌詞から求められた音数を示している。まず、この音数を文章で分ける(図4の2)。つまり「春はあけぼのの頃がよい。」と「だんだん白くなっていく山ぎわが少し明るくなり紫がかった雲が細くたなびいているのがよい。」に音数を分ける。
そして、各文章内において、1小節中の音数が予め定めた音数、図示した例では10音以下となるようにする(図4の3)。このようにすることで、図で示した例では前半4小節が8音、5音、7音、10音となり、後半5小節が9音、8音、6音、9音、2音となる。
また、歌詞の最後が4小節に収まらない場合は、最後の1小節内の音数を調節してもよい。つまり、図4の4に示したように、最終小節を11音とし、最終小節のみ10音の規定に合わせないようにしてもよい。
なお、図4の例では4小節または5小節になるように小節内の音数を分けていたが、これは、後述する管理サーバ30では、1つのMIDIデータ(メロディ情報)は4小節以上で構成されたのもが保存されるようにしているため、小節数の下限を合わせて音数の検索を容易にするためである。
歌詞入力部としての入力部45は、例えば、キーボードやマウス、タッチパネル等から構成されている。入力部45は、作成する歌詞情報の入力や、管理サーバ30から検索された結果が表示部46に表示されている場合の選択操作などの各種操作等を行う。
表示部46は、管理サーバ30から受信した音声データを表示する。表示形態は、楽譜形式としてもよいし、波形として表示してもよい。また、この際に作曲者情報等の属性情報を表示してもよい。楽譜形態とする場合は、音声データからMIDIデータに逆変換する機能を別途持たせればよい。即ち、検索部で検索された結果を楽曲(音符情報)として出力している。
スピーカ47は、後述するプレイヤ48が再生した管理サーバ30から受信した音声データを音として出力する。即ち、検索部で検索された結果を楽曲(音楽)として出力している。
プレイヤ48は、後述するデコーダがデコードした管理サーバ30から受信した音声データを再生する。
デコード部49は、管理サーバ30から受信した音声データをデコードする。
アレンジ部4aは、管理サーバ30から受信した音声データに対して、予め設定するジャンルや曲調に合わせて、コード付けを行って伴奏を付けたりするアレンジを行う。
なお、上述した構成の作曲支援装置1は、メロディ登録端末10、20や歌詞入力端末40は、それぞれ1ずつしか示していないが、それぞれが複数あって1つの管理サーバ30に接続されていてもよいのは勿論であり、さらに、メロディ登録端末10と20の、いずれか一方の形態のみであってもよい。
次に、上述した構成の作曲支援装置1の動作を図5および図6に示したフローチャートを参照して説明する。これらのフローチャートは、制御部16、制御部32、制御部42でそれぞれ実行される。
まず、図5に示したメロディ登録端末10および20と管理サーバ30との動作について説明する。ステップS11において、メロディ登録端末10または20でメロディを作成してステップS12に進む。メロディは、メロディ登録端末10の場合は、入力部11から楽譜を作成してMIDIデータ生成/保存部14でMIDIデータに変換する。この場合、テンポやキーの設定は、当該楽譜作成時にユーザが入力部11から設定する。
また、メロディ登録端末20の場合は、マイク21から楽器演奏や歌唱等を入力し、それを音声周波数解析・採譜処理部22で採譜してMIDIデータ生成/保存部14でMIDIデータに変換する。この場合、テンポはマイク21から入力する際にメトロノームのカウント音などを出力し、そのカウント音の調節をユーザが入力部23から行うことで設定する。キーは、ユーザが入力部23から行うことで設定する。
そして、ステップS12でおいて、ステップS11で作成されたMIDIデータと作曲者情報12を管理サーバ30にアップロードする。
一方、ステップS21において、管理サーバ30では、メロディ登録端末10または20からメロディ登録があるか否かを判断し、ある場合(Yの場合)はステップS22に進み、無い場合(Nの場合)は本ステップで待機する。つまり、メロディ登録端末10または20からMIDIデータと作曲者情報12がアップロードされたか否かを判断している。
そして、ステップS22において、メロディを登録する。つまり、メロディ登録端末10または20から送信されたMIDIデータをMIDIデータDB保存部35に保存し、そのMIDIデータを音数解析部34で解析した結果と作曲者情報等を、図2に示したような属性情報として、MIDIデータの属性情報DB保存部36に保存する。
次に、図6に示した歌詞入力端末40と管理サーバ30との動作について説明する。まず、歌詞入力工程としてのステップS31において、入力部45から歌詞を入力してステップS32に進む。
次に、ステップS32において、入力部45から入力する歌詞に合わせる曲のジャンルや曲調を設定しステップS33に進む。なお、ジャンルや曲調を指定せずに本ステップを飛ばしても構わない。
次に、音数抽出工程としてのステップS33において、ステップS31で入力した歌詞を音数解析部44に解析させて音数を抽出しステップS34に進む。
次に、ステップS34において、ステップS33で解析した音数に対して小節割り当て解析部43に解析させて小節分けを行いステップS35に進む。なお、本ステップ実行時に、1小節内の音数を、ステップS32で設定したジャンルや曲調によって変更してもよい。
次に、ステップS35において、管理サーバ30に対して検索のリクエストを行いステップS36に進む。検索のリクエスト時には、ステップS34までで解析された小節分けされた音数情報と小節数が送信される。
ここで、管理サーバ30側の動作を説明する。管理サーバ30では、ステップS41において、歌詞入力端末40からの検索リクエストがあるか否かを判断しており、検索リクエストがある場合(Yの場合)はステップS42に進み、無い場合(Nの場合)は待機している。
次に、検索工程としてのステップS42において、ステップS41で得た検索リクエストに応じてメロディ検索部37に検索を行わせステップS43に進む。
ここで、検索動作を図7に示すフローチャートを参照して説明する。このフローチャートは制御部32で実行される。まず、ステップS51において、4小節の音数がマッチするメロディ情報を検索してステップS52に進む。本実施例では歌詞とメロディ情報のマッチングは、なるべく元のメロディ情報を変更しないように検索している。そこで、本実施例では4小節以上の小節単位の音数で検索を行う。
ステップS51の詳細動作を図8のフローチャートを参照して説明する。このフローチャートは制御部32で実行される。まず、ステップS61において、大きな単位でマッチするメロディ情報を検索してステップS62に進む。大きな単位とは、例えば、図4の例では、入力された歌詞の音数は8小節(または9小節)で64音であるので、この小節数と音数にマッチするメロディ情報(MIDIデータ)を検索する。つまり、入力された歌詞全体が大きな単位の一例である。このようにすることで、入力された歌詞の単位でのメロディを変更することなく、割り当てが可能となる。なお、この小節数と音数は図2の表の小節数と音数の項目を参照することで検索できる。
次に、ステップS62において、ステップS61の結果マッチするメロディ情報(MIDIデータ)が有ったか否かを判断し、有った場合(Yの場合)は本フローチャートを終了し、無い場合(Nの場合)はステップS63に進む。
次に、ステップS63において、音数を調整して検索しステップS64に進む。本ステップ以降では、そのままではマッチするメロディ情報が検索されなかったので音数や音符などを調整している。本ステップでは、歌詞の音数を調整してマッチングを行う。例えば、春は(ha−ru−wa)の3音を、ha−a−ru−waの4音やha−a−ru−u−waの5音など1音を長音に変更して2音にしたり(歌詞の音数を増加)、1つの音符に割り当てる音数を1つから複数に増やしたり(歌詞の音数を減少)して検索する。
次に、ステップS64において、メロディ情報内の音符を調整して検索しステップS65に進む。本ステップでは、例えば、元のメロディ情報の音階がミ、ドとなっていた場合、ミ、ソ、ドとしたり(音符を増加)、逆に2音を1音に減らしたりして(音符を減少)検索する。
次に、ステップS65において、小節を分割して検索し、ステップS66に進む。本ステップの動作について図10を参照して説明する。図10において、入力歌詞の音数は4小節で、それぞれ8音、5音、7音、10音となっている(基本形)。ここで、第1小節の先頭の音のみを新たな第1小節とし、その後に、8音、5音、7音、9音の小節が順次続くようにする。つまり、各小節の先頭の音が前の小節の最終音としてスライドする。最終小節は、次の小節が無いので音数が減少する(検索変形例1)。また、逆に最終小節の最終音を別小節にし、各小節の最終音が後の小節の先頭音としてスライドする。第1小節は、前の小節が無いので音数が減少する(検索変形例2)。
また、ステップS65の場合に、スライドさせずに、単純に一つの小節を分割するようにしてもよい。
次に、ステップS66において、ステップS63〜S65の結果マッチするメロディ情報(MIDIデータ)が有ったか否かを判断し、有った場合(Yの場合)はステップS67に進み、無い場合(Nの場合)はステップS68に進む。
次に、ステップS67において、ステップS63〜S65の結果、歌詞の音数またはメロディについてオリジナルからの変更が少ないメロディ情報を選択して本フローチャートを。したがって、ステップS63〜S65の結果は本ステップまで保持する。
一方、ステップS68においては、検索していた歌詞の単位が最小単位か否かを判断し、最小単位である場合は本フローチャートを終了し、最小単位で無い場合はステップS69に進む。最小単位とは、MIDIデータDB保存部35に蓄積されているMIDIデータの最小単位(本実施例では4小節)を示し、後述するステップS59で検索単位を減らすことが可能か否かを判断している。
次に、ステップS69において、検索単位を減らして検索しステップS62に戻る。本ステップでは、それまでに検索していた小節数を減少させて改めてマッチするメロディ情報を検索する。例えば8小節(または)9小節64音で一致するメロディ情報が無かった場合は、例えば、先頭から4小節の音数で検索を行う。なお、減少後の小節数は4小節に限らず、例えば20小節の検索でマッチするメロディ情報が無かった場合は、16小節や12小節など、MIDIデータDB保存部35に蓄積されている小節数で次に小さい単位の小節数としてもよい。
図7にフローチャートに戻って、ステップS52において、ステップS51の結果マッチするメロディ情報(MIDIデータ)が有ったか否かを判断し、有った場合(Yの場合)はステップS53に進み、無い場合(Nの場合)はステップS56に進む。
次に、ステップS53において、1小節毎に音数がマッチするメロディ情報を検索してステップS54に進む。ステップS54の詳細動作を図9のフローチャートを参照して説明する。このフローチャートは制御部32で実行される。まず、ステップS71において、マッチするメロディ情報を検索してステップS72に進む。本ステップでは、上述したように1小節毎に音数がマッチするメロディ情報を検索している。つまり、音数30音が8音、5音、7音、10音の4小節であった場合、4小節で構成された各小節が8音、5音、7音、10音となっているMIDIデータがマッチしたメロディ情報となる。
次に、ステップS72において、ステップS71の結果マッチするメロディ情報(MIDIデータ)が有ったか否かを判断し、有った場合(Yの場合)は本フローチャートを終了し、無い場合(Nの場合)はステップS73に進む。
次に、ステップS73において、音数を調整して検索しステップS74に進む。本ステップは図8のステップS63と同様に歌詞の音数を調整してマッチングを行う。
次に、ステップS74において、メロディ情報内の音符を調整して検索しステップS75に進む。本ステップは図8のステップS64と同様に音符を増加したり、音符を減少したりして検索する。
次に、ステップS75において、小節を分割して検索し、ステップS76に進む。本ステップは図8のステップS65と同様に小節の先頭や最後の音をスライドさせたり、単純に分割したりして検索する。
次に、ステップS77において、ステップS73〜S75の結果、歌詞の音数またはメロディについてオリジナルからの変更が少ないメロディ情報を選択して本フローチャートを終了する。したがって、ステップS73〜S75の結果は本ステップまで保持する。なお、ステップS73〜S75の結果マッチするメロディ情報が無かった場合も、本ステップを経由して終了する。
図7にフローチャートに戻って、ステップS54において、ステップS53の結果マッチするメロディ情報が有ったか否かを判断し、有った場合(Yの場合)はステップS55に進み、無い場合(Nの場合)はステップS56に進む。即ち、ステップS51〜S54で、メロディ情報を所定の小節単位で各小節内の音数に基づいて検索している。
次に、ステップS55において、入力された歌詞全てについて検索が終了したか否かを判断し、全て終了した場合(Yの場合)は検索動作を終了し、全て終了していない場合(Nの場合)はステップS51に戻る。このステップS51に戻る場合としては、ステップS51で検索単位を減らした場合に残りの小節に対して繰り返す。なお、この検索動作において、検索結果は1つでなく複数あってもよい。例えば、4小節のメロディ情報としてフレーズAとBが検索され、続く5小節のメロディ情報としてフレーズCとDが検索された場合、9小節の歌詞に対して4種類の組み合わせを検索結果として出力するようにしてもよい。
一方、ステップS56においては、検索の結果一致するメロディ情報が見つからなかったため、マッチするメロディがないことを示す情報を検索結果として後述するステップで歌詞入力端末40に送信するようにする。
なお、図7、図8および図9のフローチャートはMIDIデータの属性情報DB保存部36に対して検索動作を行うようにしているが、直接MIDIデータDB保存部35に対して検索するようにしてもよい。また、MIDIデータの属性情報DB保存部36に対して検索動作を行った場合は、図7のフローチャートの終了後に、図2のメロディ格納場所を参照してMIDIデータDB保存部35から該当するMIDIデータを読み出せばよい。
また、図8および図9のフローチャートでは、ステップS63(S73)〜S65(S75)全てを行っていたが、いずれか1つまたは2つのみを行うようにしてもよいし、実行する順序も図示した順序でなくてもよい。
図6のフローチャートに戻って、ステップS43で検索されたメロディ情報のキーを合わせてステップS44に進む。これは、ステップS42の結果、複数のメロディ情報が組み合わされた場合は、本実施例では、先頭のメロディ情報のキーに合わせる。そして、先頭のメロディ情報に繋げる2つ目以降のメロディ情報は、自身が持つキーを先頭のメロディ情報のキーに合わせるように全体の音の高さを変更する。即ち、制御部32が、検索された所定のメロディ情報に含まれるキー情報に基づいて、所定のメロディ以外のメロディ情報に含まれるキー情報を調整するキー調整部として機能する。なお、検索されたメロディ情報が1つのみであった場合や、検索されたメロディ情報が無かった場合は本ステップでは何も行わず次にステップに進む。
次に、ステップS44において、検索結果を送信する。メロディ検索部37で検索されたMIDIデータを音声データエンコード部33で音声データにエンコードして歌詞入力端末40に送信する。この際に、当該MIDIデータの属性情報(作曲者情報や被引用情報等)も送信してもよい。
次に、歌詞入力端末40のステップS36において、管理サーバ30から検索結果を受信したか否かを判断し、受信した場合(Yの場合)はステップS37に進む、受信していない場合(Nの場合)は待機する。
次に、楽曲出力工程としてのステップS37において、検索結果を表示してステップS38に進む。検索結果は図11に示すように、表示部46に歌詞と、複数のメロディ候補を楽譜で表示させて、ユーザ等に選択させる。なお、この際にデコード部49とプレイヤ48とスピーカ47により音声データを音声として出力して確認できるようにしてもよい。即ち、検索結果を楽曲として出力している。
次に、ステップS38において、ステップS37で選択したメロディに対してアレンジ部4aがアレンジを行う。なお、アレンジは行わずに検索結果表示のみで終了するようにしてもよい。但し、アレンジを行うことで、複数のメロディ情報を繋げたことによる音の変化や違和感を和らげることができる。
本実施形態によれば、歌詞入力端末40の入力部45から入力された歌詞から音数解析部44で音数を抽出し、その音数を小節割り当て解析部43で小節に割り当て、管理サーバ30へ送信している。管理サーバ30では、メロディ検索部37で4小節などの複数小節以上の単位で歌詞入力端末40から送信されてきた音数に一致するMIDIデータを属性情報を参照してMIDIデータDB保存部35から検索し、検索されたMIDIデータを音声データエンコード部33で音声データに変換して歌詞入力端末40に送信している。そして、歌詞入力端末40では管理サーバ30から送信されてきた音声データを、表示部46に表示させたり、音声として出力したりする。このように構成されているので、MIDIデータDB保存部35に蓄積されたそれぞれ別のユーザ等が作成したMIDIデータから歌詞に合ったMIDIデータを選択して組み合せることができ、容易に作曲を行うことができる。また、MIDIデータを複数のユーザ等がそれぞれ作成し、さらに音数のみでそれらMIDIデータを検索するため、複数のMIDIデータの組み合せで作曲することができることから、歌詞の発音等にとらわれず、自動生成よりもバラエティに富んだ作曲をすることができる。
また、管理サーバ30のメロディ検索部37が、小節数と小節内の音数に基づいて検索しているので、歌詞から抽出した音数のみで検索するよりもMIDIデータの検索が容易となり、候補を絞りやすくすることができる。
また、メロディ検索部37が、歌詞入力端末40から送信されてきた音数を増加または減少させて検索を行っているので、検索対象とするMIDIデータを増やすことができ、作曲の幅を広げることができる。
また、メロディ検索部37が、MIDIデータDB保存部35に保存されているMIDIデータの音符を増加または減少させて検索を行っているので、曲の幅を広げることができる。また、音数を変化させることが困難または音数を変化させても検索されない場合にMIDIデータが検索される可能性を高くすることができる。
また、メロディ検索部37が、小節を分割して分割した小節に音をスライドさせて検索を行っているので、検索する際の条件を広げることができ、作曲の幅を広げることができる。
また、管理サーバ30の制御部32が、先頭のMIDIデータのキーに合わせて、他のMIDIデータのキーを調整するので、複数のMIDIデータを組み合わせた際の繋がりの違和感を緩和することができる。
なお、上述した実施例では音数の解析を歌詞入力端末40で行っていたが、管理サーバ30に歌詞情報を送信し、管理サーバ30で音数の解析を行うようにしてもよい。また、メロディ検索時に音数に関する条件を変更するような検索(ステップS63、S65等)の音数変更は歌詞入力端末40で行ってもよい。
また、歌詞入力端末40に送信する検索結果としてMIDIデータを音声データにエンコード送信していたが、MIDIデータを送信し、歌詞入力端末40で必要に応じて音声データに変換するようにしてもよい。
次に、本発明の第2の実施例にかかる作曲支援装置を図12および図13を参照して説明する。なお、前述した第1の実施例と同一部分には、同一符号を付して説明を省略する。
図12に示した構成は、歌詞入力端末40は、第1の実施例と同様の構成であるが、管理サーバ30で入力されたメロディのMIDIデータの生成を行うため、メロディ登録端末20と管理サーバ30の構成が異なる。
本実施例にかかるメロディ登録端末20´は、作曲者情報12と、楽譜表示部13と、スピーカ15と、制御部16と、ネットワーク通信部17と、マイク21と、入力部23と、を備えている。即ち、図1に示したメロディ登録端末20からMIDIデータ生成/保存部14と音声周波数解析・採譜処理部22が削除されている。つまり、マイク21から入力されたメロディは、所定の音声信号に変換されてネットワーク通信部17より管理サーバ30´に送信される。
本実施例にかかる管理サーバ30´は、ネットワーク通信部31と、制御部32と、音声データエンコード部33と、音数解析部34と、MIDIデータDB保存部35と、MIDIデータの属性情報DB保存部36と、メロディ検索部37と、音声周波数解析・採譜処理部38と、キー・拍子判定部39と、MIDIデータ生成部3aと、を備えている。即ち、図1に示した管理サーバ30´に音声周波数解析・採譜処理部38と、キー・拍子判定部39と、MIDIデータ生成部3aが追加されている。
音声周波数解析・採譜処理部38は、メロディ登録端末20´から送信された音声信号(メロディ情報)に周波数解析を行い、音の高低などを検出して音符や休符等に当てはめる採譜処理を行う。
キー・拍子判定部39は、メロディを入力する際に基準とするテンポをメロディ登録端末20´に出力するとともに、メロディ登録端末20´から送信された音声信号(メロディ情報)の拍子を判定するとともに、キーの判定も行う。
MIDIデータ生成部3aは、音声周波数解析・採譜処理部22の結果に対してMIDIデータを生成する。
次に、本実施形態のメロディ登録端末20´と管理サーバ30との動作について図13のフローチャートを参照して説明する。図13のフローチャートも制御部16と制御部32で実行される。まず、ステップS81において、メロディ登録端末20´でメロディを作成してステップS82に進む。この際に、管理サーバ30´に対してテンポを要求するとテンポ信号が入力され、スピーカ15からメトロノーム音として出力される。そして、マイク21から楽器演奏や歌唱等を入力してメロディを作成する。
次に、ステップS82において、ステップS81で作成したメロディを制御部32で音
声信号に変換してネットワーク通信部17から管理サーバ30´に送信する(アップロー
ドする)。なお、この際に作曲者情報12も送信する。
一方、ステップS91においては、メロディ登録端末20´からテンポ要求があったか否かを判断し、テンポ要求があった場合(Yの場合)はステップS92に進み、ない場合(Nの場合)は待機する。
次に、ステップS92において、メロディ登録端末20´に対してテンポ信号を出力してステップS93に進む。
次に、ステップS93において、メロディ登録端末20´から音声信号(メロディ情報)が入力されたか否かを判断し、入力された場合(Yの場合)はステップS94に進み、入力されない場合(Nの場合)は待機する。
次に、ステップS94において、メロディ登録端末20´から送信された音声信号を音声周波数解析・採譜処理部38で採譜して、キー・拍子判定部39でキーを判定し、MIDIデータ生成部3aでMIDIデータに変換してステップS95に進む。なお、本ステップにおいては、図2に示したような属性情報も同時に生成する。
次に、ステップS95において、MIDIデータDB保存部にステップS94で変換されたMIDIデータを登録、保存するとともに、MIDIデータの属性情報DB保存部36に属性情報を登録、保存する。
歌詞入力端末40と管理サーバ30´との動作は第1の実施例と同様である。また、図12では、メロディの登録はメロディ登録端末20´のみを示したが、第1の実施例に示したメロディ登録端末10、20が混在していてもよい。その場合は、例えば、管理サーバ30´に対して、MIDIデータへの変換の要または不要を切り替える情報を端末側から送信するようにすればよい。
本実施例によれば、管理サーバ30´でメロディのMIDIデータ化を行うようにしているので、メロディ登録端末20´にMIDIデータを作成するための機能が不要となり、メロディ登録端末20´の処理能力が低くても実現可能となる。
なお、上述した2つの実施例では、メロディ登録端末10、20、20´と歌詞入力端末40を別の端末として示したが、メロディ登録端末の機能と歌詞入力端末の機能を併せ持った端末であってもよい。
また、メロディ登録端末の機能と歌詞入力端末と管理サーバの機能の全てを併せ持った形態としてもよい。具体的には、例えばパーソナルコンピュータ等に各端末やサーバの機能を持たせ、キーボード等から入力された歌詞を、例えばハードディスク内のMIDIデータを検索してディスプレイに表示したりスピーカから出力したりする。また、MIDIデータは、ネットワーク経由で定期的に外部から入力されるようにしてもよいし、光ディスクやメモリカード等で入力するようにしてもよい。
また、上述した2つ実施例では歌詞情報から音数を抽出し、MIDIデータの音数とのマッチングを行うことで検索していたが、歌詞の仮名文字数とMIDIデータの音符の数でマッチングを行うようにしてもよい。例えば「春は」を「はるは」の3文字として検索する。
また、上述した2つ実施例ではメロディ登録端末はいずれもメロディを入力していたが、別の機器等でMIDIデータを作成し、メロディ登録端末は、当該MIDIデータと作曲者情報を管理サーバ30にアップロードするのみとしてもよい。また、メロディ情報としてMIDIデータに限らず、音数や音符の情報が解析可能なデータであれば他の形式でもよい。
また、上述した図5〜図9のフローチャートをコンピュータで動作するプログラムとして構成することで、本発明を作曲支援プログラムとして構成することができる。即ち、各端末の機能をメロディ登録プログラムや歌詞入力プログラムとして構成し、管理サーバ30の機能を管理サーバプログラム(或いはメロディ検索プログラム)として構成してもよい。なお、この場合、入力部やスピーカ、表示などはそれぞれへのインタフェース部分が対応することとなる。
前述した実施例によれば、以下の作曲支援装置1、作曲支援方法、歌詞入力端末40および管理サーバ30が得られる。
(付記1)複数の作成者によって作成された複数のMIDIデータを蓄積するMIDIデータDB保存部35と、
歌詞情報が入力される入力部45と、
入力部45に入力された歌詞情報に基づいて、MIDIデータDB保存部35に蓄積されているMIDIデータを検索するメロディ検索部37と、
メロディ検索部37で検索された結果を楽曲として出力する表示部46、スピーカ47と、
を備えたことを特徴とする作曲支援装置1。
(付記2)MIDIデータDB保存部35に蓄積された複数の作成者によって作成された複数のMIDIデータに基づいて歌詞に合わせた曲を作曲する支援を行う作曲支援方法であって、
歌詞情報を入力するステップS31と、
ステップS31において入力された歌詞情報に基づいて、MIDIデータDB保存部35に蓄積されているMIDIデータを検索するステップS42と、
ステップS42において検索されたMIDIデータを出力するステップS37と、
を含むことを特徴とする作曲支援方法。
(付記3)歌詞情報が入力される入力部45と、
管理サーバ30部に蓄積された複数の作成者によって入力された複数のMIDIデータから、入力部45によって入力された歌詞情報に基づいたMIDIデータの検索を行い、当該検索されたMIDIデータを含む検索結果を取得する制御部42と、
を備えたことを特徴とする歌詞入力端末40。
これらの作曲支援装置1、作曲支援方法および歌詞入力端末によれば、MIDIデータDB保存部35(管理サーバ30)に蓄積されたMIDIデータから歌詞に合ったMIDIデータを選択することができ、容易に作曲を行うことができる。また、MIDIデータDB保存部35に蓄積されたMIDIデータから音数のみで検索するため、歌詞の発音等にとらわれないバラエティに富んだ作曲をすることができる。
(付記4)複数の作成者によって入力された複数のMIDIデータを蓄積するMIDIデータDB保存部35と、
歌詞情報を受信するネットワーク通信部31と、
ネットワーク通信部31が受信した歌詞情報に基づいて、MIDIデータDB保存部35に蓄積されているMIDIデータを検索するメロディ検索部37と、
メロディ検索部37で検索された結果を出力するネットワーク通信部31と、
を備えたことを特徴とする管理サーバ30。
この管理サーバ30によれば、検索部で入力された音数に基づいてメロディ情報を検索し、検索結果出力部から検索された結果を出力するので、蓄積部に蓄積されたメロディ情報から音数に合ったメロディ情報を検索することができる。
なお、前述した実施例は本発明の代表的な形態を示したに過ぎず、本発明は、実施例に限定されるものではない。すなわち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。