(57)【特許請求の範囲】
【請求項１】
複数種類の音の並びを示す複数種類の演奏データを記憶した記憶手段と、
情報の入力手段と、
前記入力手段から歌唱曲の歌詞を示すテキストデータが入力された場合に、入力されたテキストデータをＮ（Ｎは２以上の整数）個のテキストデータに分割する分割手段と、
前記分割手段が分割したＮ個のテキストデータが示す各歌詞について、当該歌詞を有する歌唱部分のメロディとする演奏データを前記記憶手段内の複数種類の演奏データの中から選択する編集手段であって、前記Ｎ個のテキストデータの各々について、当該テキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数と他のテキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数との差を算出し、前記Ｎ個のテキストデータのうち前記文節数の差が閾値よりも小さいテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す各歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する編集手段と
を具備することを特徴とする曲編集装置。
【請求項２】
曲編集装置の制御部が、
歌唱曲の歌詞を示すテキストデータをＮ（Ｎは２以上の整数）個のテキストデータに分割する分割過程と、
前記分割過程により分割されたＮ個のテキストデータが示す各歌詞について、当該歌詞を有する歌唱部分のメロディとする演奏データを複数種類の演奏データの中から選択する編集過程であって、前記Ｎ個のテキストデータの各々について、当該テキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数と他のテキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数との差を算出し、前記Ｎ個のテキストデータのうち前記文節数の差が閾値よりも小さいテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す各歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する編集過程と
を実行することを特徴とする曲編集方法。
【請求項３】
複数種類の音の並びを示す複数種類の演奏データを記憶した記憶手段と、
情報の入力手段と、
前記入力手段から歌唱曲の歌詞を示すテキストデータが入力された場合に、入力されたテキストデータをＮ（Ｎは２以上の整数）個のテキストデータに分割する分割手段と、
前記分割手段が分割したＮ個のテキストデータが示す各歌詞について、当該歌詞を有する歌唱部分のメロディとする演奏データを前記記憶手段内の複数種類の演奏データの中から選択する編集手段であって、前記Ｎ個のテキストデータの各々について、当該テキストデータが示す歌詞における先頭の文節から末尾の文節までの各文節と他のテキストデータが示す歌詞における先頭の文節から末尾の文節までの各文節の文節毎の文字数の差の合計を算出し、前記Ｎ個のテキストデータのうち前記文節毎の文字数の差の合計が閾値よりも小さいテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す各歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する編集手段と
を具備することを特徴とする曲編集装置。
【請求項４】
複数種類の音の並びを示す複数種類の演奏データを記憶した記憶手段と、
情報の入力手段と、
前記入力手段から歌唱曲の歌詞を示すテキストデータが入力された場合に、入力されたテキストデータをＮ（Ｎは２以上の整数）個のテキストデータに分割する分割手段と、
前記分割手段が分割したＮ個のテキストデータが示す各歌詞について、当該歌詞を有する歌唱部分のメロディとする演奏データを前記記憶手段内の複数種類の演奏データの中から選択する編集手段であって、前記Ｎ個のテキストデータの各々について、当該テキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数と他のテキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数との差を算出し、当該テキストデータが示す歌詞における先頭の文節から末尾の文節までの各文節と他のテキストデータが示す歌詞における先頭の文節から末尾の文節までの各文節の文節毎の文字数の差の合計を算出し、前記Ｎ個のテキストデータのうち前記文節数の差が第１の閾値よりも小さく且つ前記文節毎の文字数の差の合計が第２の閾値よりも小さいテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す各歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する編集手段と
を具備することを特徴とする曲編集装置。
【請求項５】
コンピュータに、
歌唱曲の歌詞を示すテキストデータが入力された場合に、入力されたテキストデータをＮ（Ｎは２以上の整数）個のテキストデータに分割する分割手段と、
前記分割手段が分割したＮ個のテキストデータが示す各歌詞について、当該歌詞を有する歌唱分のメロディとする演奏データを複数種類の演奏データの中から選択する編集手段であって、前記Ｎ個のテキストデータの各々について、当該テキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数と他のテキストデータが示す歌詞における先頭の文節から末尾の文節までの文節数との差を算出し、前記Ｎ個のテキストデータのうち前記文節数の差が閾値よりも小さいテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す各歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する編集手段と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、曲のメロディを編集する技術に関する。
【背景技術】
【０００２】
非特許文献１には、Ｏｒｅｐｈｅｕｓ（オルフェウス）と称される歌唱合成システムの開示がある。この歌唱合成システムは、文字列として入力された歌詞から歌唱曲を自動作曲するものである。この歌唱合成システムでは、歌詞に含まれる各語の韻律を解析し、この韻律に相応しい音程の遷移を有するメロディを作成する。その上で、歌詞の音声信号にこのメロディに合わせたピッチ変換処理を施し、ピッチ変換処理を経た音声信号を歌唱音声として放音する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】東京大学嵯峨山研究室、“Ｏｒｅｐｈｅｕｓ：歌詞の韻律に基づいた自動作曲システム”、音楽情報処理学会研究報告、Ｐ１７９〜Ｐ１８４、２００８.７.３０
【非特許文献２】スティーブンバード、“入門自然言語処理”、オライリージャパン、２０１０．１１．８
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、この種の歌唱合成システムの利用者は、自身が創作した歌詞の中に似通った文字列構造を有する部分がある場合、それらの部分は同じメロディで歌唱させたい、という希望を持つ場合がある。しかしながら、非特許文献１の技術の場合、歌詞に含まれる各語の韻律に基づいてメロディを決定するため、このような要請に応えることができなかった。
【０００５】
本発明は、このような課題に鑑みてなされたものであり、利用者が創作した歌詞内における似通った文字列構造を有する部分を同じメロディで歌唱させることができる技術的手段を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数種類の音の並びを示す複数種類の演奏データを記憶した記憶手段と、情報の入力手段と、前記入力手段から歌唱曲の歌詞を示すテキストデータが入力された場合に、入力されたテキストデータをＮ（Ｎは２以上の整数）個のテキストデータに分割する分割手段と、前記分割手段が分割したＮ個のテキストデータが示す各歌詞について、当該歌詞を有する歌唱部分のメロディとする演奏データを前記記憶手段内の複数種類の演奏データの中から選択する編集手段であって、前記Ｎ個のテキストデータのうち文字列構造が類似しているテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す各歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する編集手段とを具備する曲編集装置を提供する。
【０００７】
本発明では、編集手段は、Ｎ個のテキストデータのうち文字列構造が類似しているテキストデータ同士を対応付け、この対応付けた複数のテキストデータが示す歌詞を有する歌唱部分のメロディに該当する演奏データとして同じ演奏データを選択する。よって、本発明によると、歌詞内の似通った文字列構造を有する部分が同じメロディで歌われる歌唱曲を簡単に作ることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態である曲編集装置の構成を示すブロック図である。
【図２】同装置のメロディデータベース内の演奏データのデータ構造を示す図である。
【図３】同装置の動作を示すフローチャートである。
【図４】同装置が表示する情報入力画面を示す図である。
【図５】同装置が実行する対応付け処理の内容を示す図である。
【図６】同装置が実行する対応付け処理の内容を示す図である。
【図７】同装置が実行するメロディ選択処理の内容を示す図である。
【図８】同装置が実行する歌唱合成処理の内容を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態である曲編集装置１０の構成を示すブロック図である。この曲編集装置１０は、音の並びであるメロディの素材となる様々な種類の演奏データＭＤの中から利用者が入力したＭ（Ｍは、２以上の整数：例えば、Ｍ＝８とする）小節分の歌詞のメロディとするＭ（Ｍ＝８）小節分の演奏データＤＭを選択し、この選択した演奏データＤＭのメロディと同じメロディを持ったＭ（Ｍ＝８）小節分の音声信号ＭＳ’を合成する。この曲編集装置１０は、操作部１１、表示部１２、放音部１３、及び制御部１５を有する。操作部１１は、各種情報の入力操作を受け付ける入力手段としての役割を果たす。表示部１２は、制御部１５による制御の下に各種情報を表示する。放音部１３は、制御部１５から出力される音信号を音として出力する。
【００１０】
制御部１５は、曲編集装置１０の制御中枢としての役割を果たす装置である。制御部１５は、ＣＰＵ１６、ＲＡＭ１７、ＲＯＭ１８、及びハードディスク１９を有する。ＣＰＵ１６は、ＲＡＭ１７をワークエリアとして利用しつつ、ＲＯＭ１８やハードディスク１９に記憶されたプログラムを実行する。ハードディスク１９には、メロディデータベース１９ａ、音声素片データベース１９ｂ、及び曲編集プログラムＰＲＧが記憶されている。
【００１１】
メロディデータベース１９ａには演奏データＤＭＭが記憶される。演奏データＤＭＭは、２小節分のメロディの演奏手順をＳＭＦ（Standard MIDI File）形式で記述したデータである。より具体的に説明すると、図２に示すように、演奏データＤＭＭはＬ個のトラックＴＲ−ｉ（ｉ＝１〜Ｌ）を有している。これらのＬ個のトラックＴＲ−ｉ（ｉ＝１〜Ｌ）のうち第１トラックＴＲ−１には、２小節分のメロディをなす各音の発音を指示するノートオンイベントＥＶＯＮ（♯）（♯はノートナンバを示す）とその消音を指示するノートオフイベントＥＶＯＦＦ（♯）、及び各イベントＥＶＯＮ（♯）（またはＥＶＯＦＦ（♯））の実行時刻ｔを各々の前のイベントＥＶＯＦＦ（♯）（またはＥＶＯＮ（♯））の実行時刻ｔとの時間差（ティック数）として示すタイミングデータであるデルタタイムΔＴｈ（ｈ＝１，２…）が時系列順に配列されている。
【００１２】
音声素片データベース１９ｂには音声素片データＤＡＰが記憶される。音声素片データＤＡＰは、単一の音素や音素間の遷移部分など、歌唱音声の素材となる各種の音声素片の波形を定義したデータである。
【００１３】
曲編集プログラムＰＲＧは、次の３つの機能を有する。
ａ１．分割機能
これは、操作部１１を介してＭ小節分の歌唱曲の歌詞を示すテキストデータＤＴＸが入力された場合に、入力されたテキストデータＤＴＸをＮ（Ｎ＝Ｍ／２：Ｍ＝８なのでＮ＝４）個のテキストデータＤＴＸに分割する機能である。
ｂ１．編集機能
これは、分割機能により分割したＮ個のテキストデータＤＴＸが示す各歌詞について、当該歌詞を有する歌唱部分のメロディとする演奏データＤＭＭをメロディデータベース１９ａ内の複数種類の演奏データＤＭＭの中から選択する機能であって、Ｎ個のテキストデータＤＴＸのうち文字列構造が類似しているテキストデータＤＴＸ同士を対応付け、この対応付けた複数のテキストデータＤＴＸが示す各歌詞の有する歌唱部分のメロディに該当する演奏データＤＭＭとして同じ演奏データＤＭＭを選択する機能である。
ｃ１．歌唱合成機能
これは、操作部１１を介して入力されたテキストデータＤＴＸが示す歌詞を一連の音声素片に変換し、変換した各音声素片の音声素片データＤＡＰを音声素片データベース１９ｂから読み出し、この音声素片データＤＡＰを接続して歌詞の音声信号ＭＳを生成し、この音声信号ＭＳに演奏データＤＭＭが示すメロディに合わせたピッチ変換を施して歌唱音声の音声信号ＭＳ’を生成する機能である。
【００１４】
次に、本実施形態の動作について説明する。図３は、本実施形態の動作を示すフローチャートである。図３に示す一連の処理のうちステップＳ１２０は、分割機能の働きによって実行される処理であり、ステップＳ１３０及びＳ１４０は、編集機能の働きによって実行される処理であり、ステップＳ１５０は、歌唱合成機能の働きによって実行される処理である。
【００１５】
図３において、ＣＰＵ１６は、情報入力画面を表示部１２に表示させる（Ｓ１００）。図４は、情報入力画面を示す図である。この画面には、コード進行入力欄ＷＣと歌詞入力欄ＷＬが配置されている。利用者は、操作部１１によりこの画面の入力欄ＷＣ及びＷＬに情報を入力する。より詳細に説明すると、利用者は、歌唱曲の第１小節〜８小節のコードのコードネームＣＮ１〜ＣＮ８をコード進行入力欄ＷＣに入力する。
【００１６】
また、利用者は、歌唱曲の１曲分（８小節分）の歌詞を歌詞入力欄ＷＬに入力する。ここで、この歌詞入力欄ＷＬへの歌詞の入力は次の２つの条件ａ２及びｂ２に従って行う。
ａ２．歌詞をなす文字の全てを平仮名文字として入力する。
ｂ２．歌詞の中に２小節分の長さの歌唱音として歌わせたい部分がある場合は、その部分の前後にコロン（:）の文字を入れる。
【００１７】
情報入力画面の入力欄ＷＣ及びＷＬに情報が入力されると、ＣＰＵ１６は、入力欄ＷＣに入力されたコードネームＣＮ１〜ＣＮ８の各々を示すコードデータＤＣＮ１〜ＤＣＮ８、及び入力欄ＷＬに入力された平仮名文字列を示すテキストデータＤＴＸ１〜８をＲＡＭ１７に記憶する（Ｓ１１０）。
【００１８】
次に、ＣＰＵ１６は、分割処理を行う（Ｓ１２０）。分割処理では、ＣＰＵ１６は、ＲＡＭ１７内のテキストデータＤＴＸ１〜８を、第１〜第２小節の歌詞を示すテキストデータＤＴＸ１〜２、第３〜第４小節の歌詞を示すテキストデータＤＴＸ３〜４、第５〜第６小節の歌詞を示すテキストデータＤＴＸ５〜６、及び第７〜第８小節の歌詞を示すテキストデータＤＴＸ７〜８に分割する。より詳細に説明すると、分割処理では、ＲＡＭ１７内のテキストデータＤＴＸ１〜８の中にコロン（：）が含まれていない場合と含まれている場合の各々において次のような処理を行う。
【００１９】
ａ３．コロン（：）が含まれていない場合
この場合、ＣＰＵ１６は、テキストデータＤＴＸ１〜８が示す文字列を複数個の文節に区切り、最初の文節から最後の文節までの文節の数ＢＮ１〜８をカウントする。ここで、文節の特定は形態素解析処理（形態素解析の詳細は非特許文献２を参照のこと）を利用して行うとよい。次に、ＣＰＵ１６は、文節数ＢＮ１〜８を４で除算した値を２小節に収める文節数ＢＮＬＭＴ（ＢＮＬＭＴ＝ＢＮ１〜８／４）とする。その上で、ＣＰＵ１６は、テキストデータＤＴＸ１〜８における１番目からＢＮＬＭＴ番目までの文節に該当する部分をテキストデータＤＴＸ１〜２とし、ＢＮＬＭＴ＋１番目から２ＢＮＬＭＴ番目までの文節に該当する部分をテキストデータＤＴＸ３〜４とし、２ＢＮＬＭＴ＋１番目から３ＢＮＬＭＴ番目までの文節に該当する部分をテキストデータＤＴＸ５〜６とし、３ＢＮＬＭＴ＋１番目以降の文節に該当する部分をテキストデータＤＴＸ７〜８とする。
【００２０】
ｂ３．コロン（：）が含まれている場合
この場合、ＣＰＵ１６は、テキストデータＤＴＸ１〜８内のコロン（:）の総数が３個以上であるときは、テキストデータＤＴＸ１〜８における先頭と１番目のコロン（:）との間の部分をテキストデータＤＴＸ１〜２とし、１番目のコロン（:）と２番目のコロン（:）との間の部分をテキストデータＤＴＸ３〜４とし、２番目のコロン（:）と３番目のコロン（:）との間の部分をテキストデータＤＴＸ５〜６とし、３番目のコロン（:）以降の部分をテキストデータＤＴＸ７〜８とする。また、テキストデータＤＴＸ１〜８内のコロン（:）の総数が２個であるときは、テキストデータＤＴＸ１〜８における先頭と１番目のコロン（:）との間の部分をテキストデータＤＴＸ１〜２とし、１番目のコロン（:）と２番目のコロン（:）との間の部分をテキストデータＤＴＸ３〜４とし、２番目のコロン（:）の後の部分をａ３と同様の手順で２分割したものをテキストデータＤＴＸ５〜６及びＤＴＸ７〜８とする。また、テキストデータＤＴＸ１〜８内のコロン（:）の総数が１個であるときは、テキストデータＤＴＸ１〜８における先頭とコロン（:）との間の部分をテキストデータＤＴＸ１〜２とし、コロン（:）の後の部分をａ３と同様の手順で３分割したものをテキストデータＤＴＸ３〜４，ＤＴＸ５〜６，及びＤＴＸ７〜８とする。
【００２１】
図３において、ＣＰＵ１６は、対応付け処理を行う（Ｓ１３０）。対応付け処理は、テキストデータＤＴＸ１〜２、ＤＴＸ３〜４、ＤＴＸ５〜６、及びＤＴＸ７〜８のうち文字列構造の類似するものを対応付ける処理である。この対応付け処理では、ＣＰＵ１６は、テキストデータＤＴＸ１〜２及びＤＴＸ３〜４、テキストデータＤＴＸ１〜２及びＤＴＸ５〜６、テキストデータＤＴＸ１〜２及びＤＴＸ７〜８、テキストデータＤＴＸ３〜４及びＤＴＸ５〜６、テキストデータＤＴＸ３〜４及びＤＴＸ７〜８、並びにテキストデータＤＴＸ５〜６及びＤＴＸ７〜８の各組を類否判定の対象として次の３つの処理を行う。
【００２２】
第１の処理では、ＣＰＵ１６は、判定対象である２つのテキストデータＤＴＸのうち一方のテキストデータＤＴＸ内の文節の数ＢＮと、他方のテキストデータＤＴＸ内の文節の数ＢＮを各々カウントし、カウントした２つの文節数ＢＮの差ＤＢＮを求める。
【００２３】
第２の処理では、ＣＰＵ１６は、判定対象である２つのテキストデータＤＴＸ内の文節毎の文字数の差の合計数ＳＤＴＮを求める。具体的には、ＣＰＵ１６は、２つのテキストデータＤＴＸの各々についてカウントした文節数ＢＮが同じである場合と同じでない場合において次のような処理を行う。
【００２４】
ａ４.文節数ＢＮが同じである場合
この場合、ＣＰＵ１６は、図５の例に示すように、判定対象である２つのテキストデータＤＴＸ（図５の例では、テキストデータＤＴＸ１〜２及びＤＴＸ３〜４）内における１番目の文節の文字数の差ＤＴＮ１、２番目の文節の文字数の差ＤＴＮ２…ＢＮ（（図５の例では、ＢＮ＝４）番目の文節ＢＮの文字数の差ＤＴＮＢＮを個別に求め、これらの全てを加算した値を文字数差ＳＤＴＮとする。
【００２５】
ｂ４．文節数ＢＮが異なる場合
この場合、ＣＰＵ１６は、図６の例に示すように、判定対象である２つのテキストデータＤＴＸ（図６の例では、テキストデータＤＴＸ１〜２及びＤＴＸ５〜６）のうち文節数ＢＮの多い方のテキストデータＤＴＸ（図６の例では、テキストデータＤＴＸ１〜２）を選択する。次に、ＣＰＵ１６は、この選択したテキストデータＤＴＸ内における文節間の区切り位置の中のＤＢＮ（図６の例では、ＤＢＮ＝１）個の区切り位置を無くしたテキストデータＤＴＸ’（図６の例では、１番目の文節と２番目の文節の間の区切り位置を無くしたテキストデータＤＴＸ’１〜２（１）、２番目の文節と３番目の文節の間の区切り位置を無くしたテキストデータＤＴＸ’１〜２（２）、３番目の文節と４番目の文節の間の区切り位置を無くしたテキストデータＤＴＸ’１〜２（３））を生成する。次に、ＣＰＵ１６は、区切り位置を無くした各テキストデータＤＴＸ’の各々について、当該テキストデータＤＴＸ’と文節数ＢＮが少ない方のテキストデータＤＴＸにおける１番目の文節の文字数の差ＤＴＮ１、２番目の文節の文字数の差ＤＴＮ２…ＢＮ−ＤＢＮ番目の文節の文字数の差ＤＴＮＢＮ−ＤＢＮを個別に求め、これらの全てを加算した値ＤＴＮ１〜ＢＮ−ＤＢＮを求める。その上で、ＣＰＵ１６は、各テキストデータＤＴＸ’とテキストデータＤＴＸの各組について求めた合計値ＤＴＮ１〜ＢＮ−ＤＢＮのうち最も小さいものを文字数差ＳＤＴＮとする。
【００２６】
第３の処理では、ＣＰＵ１６は、第１の処理において求めた文節数差ＤＢＮ及び第２の処理において求めた文字数差ＳＤＴＮが次の２つの条件ａ５及びｂ５を満たすか否かを判定する。そして、条件ａ５及びｂ５の両方が満たされる場合に、２つのテキストデータＤＴＸの文字列構造が類似しているとみなしてそれらを対応付ける。
ａ５．文節数差ＤＢＮが閾値ＴＨ１よりも小さいこと
ｂ５．文節毎の文字数の差ＤＴＮの合計ＳＤＴＮが閾値ＴＨ２よりも小さいこと
【００２７】
図３において、ＣＰＵ１６は、メロディ選択処理を行う（Ｓ１４０）。メロディ選択処理は、メロディデータベース１９ａ内の複数種類の演奏データＤＭＭの中から、テキストデータＤＴＸ１〜２が示す歌詞のメロディとする演奏データＤＭＭ１〜２、テキストデータＤＴＸ３〜４が示す歌詞のメロディとする演奏データＤＭＭ３〜４、テキストデータＤＴＸ５〜６が示す歌詞のメロディとする演奏データＤＭＭ５〜６、テキストデータＤＴＸ７〜８が示す歌詞のメロディとする演奏データＤＭＭ７〜８を選択する処理である。メロディ選択処理では、ＣＰＵ１６は、テキストデータＤＴＸ１〜２，ＤＴＸ３〜４，ＤＴＸ５〜６，及びＤＴＸ７〜８の中に対応付け処理（Ｓ１３０）において対応付けられたものがある場合、対応付けられた複数個のテキストデータＤＴＸのメロディに該当する演奏データとして同じ演奏データＤＭＭを選択する。より詳細に説明すると、メロディ選択処理では、次の４つの処理を順に行う。
【００２８】
ａ６．演奏データＤＭＭ１〜２を選択する処理
この処理では、ＣＰＵ１６は、ＲＡＭ１７内のデータＤＣＮ１及びＤＣＮ２が示すコードネームＣＮ１及びＣＮ２（第１小節及び第２小節のコードネーム）の和音とメロディデータベース１９ａ内の演奏データＤＭＭの各々との適合度を示す評価値ＶＬを算出する。評価値ＶＬの算出は次のように行う。図７に示すように、まず、ＣＰＵ１６は、評価対象である演奏データＤＭＭの第１トラックＴＲ−１における第１小節内の各イベントＥＶＯＮ（♯）の音名がコードネームＣＮ１と対応するコードの各音（図７の例では、ＣＮ１＝Ｃなので、ド、ミ、ソの３音）と一致するか否かを判定し、コードの各音と一致する音の音長（ティック数）に５ポイント、それ以外の音の音長（ティック数）に０ポイントを各々乗算する。
【００２９】
次に、ＣＰＵ１６は、評価対象である演奏データＤＭＭの第１トラックＴＲ−１における第２小節内の各イベントＥＶＯＮ（♯）の音名がコードネームＣＮ２と対応するコードの各音（図７の例では、ＣＮ２＝Ｆなので、ファ、ラ、ドの３音）と一致するか否かを判定し、コードの各音と一致する音の音長（ティック数）に５ポイント、それ以外の音の音長（ティック数）に０ポイントを各々乗算する。その上で、ＣＰＵ１６は、２つの小節のイベントＥＶＯＮ（♯）の音長（ティック数）に該当ポイント（５または０）を乗じた各値の平均μと標準偏差σを求め、平均μと標準偏差σに補正値αを乗じた値σ×αとの和μ＋σ×αを評価値ＶＬとする。
【００３０】
ＣＰＵ１６は、メロディデータベース１９ａ内の演奏データＤＭＭの全てについて評価値ＶＬを算出した後、メロディデータベース１９ａ内の演奏データＤＭＭの中から評価値ＶＬが閾値ＴＨ３以上となるものを探索する。そして、メロディデータベース１０ａ内に該当の演奏データＤＭＭがある場合には、その演奏データＤＭＭ（該当の演奏データが複数個ある場合はそれらの中からランダムに選択した１つ）を演奏データＤＭＭ１〜２とし、該当の演奏データＤＭＭが無い場合には、閾値ＴＨ３を所定値Ｘだけ小さい値にして同様の検索を行う。ＣＰＵ１６は、演奏データＤＭＭ１〜２とする演奏データＤＭＭが確定するまでこの操作を繰り返す。ここで、この処理における補正値αは、０．０〜３．０の範囲内で設定するとよい。補正値αを大きくすると、コードネームＣＮ１及びＣＮ２が示すコード進行にぴったりな演奏データＤＭＭが演奏データＤＭＭ１〜２として選択される可能性が高まる。逆に、補正値αを小さくすると、コードネームＣＮ１及びＣＮ２が示すコード進行と乖離した演奏データＤＭＭが演奏データＤＭＭ１〜２として選択される可能性が高まる。よって、０．０〜３．０の範囲内におけるどの値を補正値αとするかは、利用者の嗜好などを考慮して決定するとよい。
【００３１】
ｂ６．演奏データＤＭＭ３〜４を選択する処理
この処理では、ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ１〜２とテキストデータＤＴＸ３〜４が対応付けられている場合、演奏データＤＭＭ１〜２とされたものと同じ演奏データＤＭＭを演奏データＤＭＭ３〜４とする。また、ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ１〜２とテキストデータＤＴＸ３〜４が対応付けられていない場合、ＲＡＭ１７内のデータＤＣＮ３及びＤＣＮ４が示すコードネームＣＮ３及びＣＮ４（第３小節及び第４小節のコードネーム）の和音とメロディデータベース１９ａ内の演奏データＤＭＭの各々との適合度を示す評価値ＬＶを算出し、評価値ＬＶが閾値ＴＨ３以上である演奏データＤＭＭを演奏データＤＭＭ３〜４とする。
【００３２】
ｃ６．演奏データＤＭＭ５〜６を選択する処理
この処理では、ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ１〜２とテキストデータＤＴＸ５〜６が対応付けられている場合、演奏データＤＭＭ１〜２とされたものと同じ演奏データＤＭＭを演奏データＤＭＭ５〜６とする。ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ３〜４とテキストデータＤＴＸ５〜６が対応付けられている場合、演奏データＤＭＭ３〜４とされたものと同じ演奏データＤＭＭを演奏データＤＭＭ５〜６とする。また、ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ１〜２及びＤＴＸ３〜４のいずれともテキストデータＤＴＸ５〜６が対応付けられていない場合、ＲＡＭ１７内のデータＤＣＮ５及びＤＣＮ６が示すコードネームＣＮ５及びＣＮ６（第５小節及び第６小節のコードネーム）の和音とメロディデータベース１９ａ内の演奏データＤＭＭの各々との適合度を示す評価値ＬＶを算出し、評価値ＬＶが閾値ＴＨ３以上である演奏データＤＭＭを演奏データＤＭＭ５〜６とする。
【００３３】
ｄ６．演奏データＤＭＭ７〜８を選択する処理
この処理では、ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ１〜２とテキストデータＤＴＸ７〜８が対応付けられている場合、演奏データＤＭＭ１〜２とされたものと同じ演奏データＤＭＭを演奏データＤＭＭ７〜８とする。ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ３〜４とテキストデータＤＴＸ７〜８が対応付けられている場合、演奏データＤＭＭ３〜４とされたものと同じ演奏データＤＭＭを演奏データＤＭＭ７〜８とする。ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ５〜６とテキストデータＤＴＸ７〜８が対応付けられている場合、演奏データＤＭＭ５〜６とされたものと同じ演奏データＤＭＭを演奏データＤＭＭ７〜８とする。また、ＣＰＵ１６は、対応付け処理においてテキストデータＤＴＸ１〜２，ＤＴＸ３〜４，ＤＴＸ５〜６のいずれともテキストデータＤＴＸ７〜８が対応付けられていない場合、ＲＡＭ１７内のデータＤＣＮ７及びＤＣＮ８が示すコードネームＣＮ７及びＣＮ８（（第７小節及び第８小節のコードネーム）の和音とメロディデータベース１９ａ内の演奏データＤＭＭの各々との適合度を示す評価値ＬＶを算出し、評価値ＬＶが閾値ＴＨ３以上である演奏データＤＭＭを演奏データＤＭＭ７〜８とする。
【００３４】
図３において、ＣＰＵ１６は、歌唱合成処理を行う（Ｓ１５０）。歌唱合成処理では、ＣＰＵ１６は、次の４つの処理を行う。
ａ７．歌唱曲の第１〜第２小節の歌唱音声を合成する処理
この処理では、図８（Ａ）に示すように、ＣＰＵ１６は、テキストデータＤＴＸ１〜２が示す文字列を音声素片列に変換し、変換した音声素片の音声素片データＤＡＰを音声素片データベース１９ｂから読み出し、これらの音声素片データＤＡＰを接続したものを第１〜第２小節の音声信号ＭＳ１〜２とする。ＣＰＵ１６は、音声信号ＭＳ１〜２に演奏データＤＭＭ１〜２が示すメロディに合わせたピッチ変換処理を施したものを第１〜第２小節の歌唱音声の音声信号ＭＳ’１〜２とする。
【００３５】
ｂ７．歌唱曲の第３〜第４小節の歌唱音声を合成する処理
この処理では、図８（Ｂ）に示すように、ＣＰＵ１６は、テキストデータＤＴＸ３〜４が示す文字列を音声素片列に変換し、変換した音声素片の音声素片データＤＡＰを音声素片データベース１９ｂから読み出し、これらの音声素片データＤＡＰを接続したものを第３〜４小節の音声信号ＭＳ３〜４とする。ＣＰＵ１６は、音声信号ＭＳ３〜４に演奏データＤＭＭ３〜４が示すメロディに合わせたピッチ変換処理を施したものを第３〜４小節の歌唱音の音声信号ＭＳ’３〜４とする。
【００３６】
ｃ７．歌唱曲の第５〜第６小節の歌唱音声を合成する処理
この処理では、図８（Ｃ）に示すように、ＣＰＵ１６は、テキストデータＤＴＸ５〜６が示す文字列を音声素片列に変換し、変換した音声素片の音声素片データＤＡＰを音声素片データベース１９ｂから読み出し、これらの音声素片データＤＡＰを接続したものを第５〜第６小節の音声信号ＭＳ５〜６とする。ＣＰＵ１６は、音声信号ＭＳ５〜６に演奏データＤＭＭ５〜６が示すメロディに合わせたピッチ変換処理を施したものを第５〜第６小節の歌唱音の音声信号ＭＳ’５〜６とする。
【００３７】
ｄ７．歌唱曲の第７〜第８小節の歌唱音声を合成する処理
この処理では、図８（Ｄ）に示すように、ＣＰＵ１６は、テキストデータＤＴＸ７〜８が示す文字列を音声素片列に変換し、変換した音声素片の音声素片データＤＡＰを音声素片データベース１９ｂから読み出し、これらの音声素片データＤＡＰを接続したものを第７〜第８小節の音声信号ＭＳ７〜８とする。ＣＰＵ１６は、音声信号ＭＳ７〜８に演奏データＤＭＭ７〜８が示すメロディに合わせたピッチ変換処理を施したものを第７〜第８小節の歌唱音の音声信号ＭＳ’７〜８とする。
【００３８】
図３において、ＣＰＵ１６は、放音処理を行う（Ｓ１６０）。放音処理では、ＣＰＵ１６は、歌唱合成処理において生成した音声信号ＭＳ’１〜２，ＭＳ’３〜４，ＭＳ’５〜６，ＭＳ’７〜８を放音部１３に供給して同部１３から歌唱音を放音させる。
【００３９】
以上が、本実施形態の詳細である。本実施形態では、ＣＰＵ１６は、Ｎ個のテキストデータＤＴＸ１〜２，ＤＴＸ３〜４，ＤＴＸ５〜６，及びＤＴＸ７〜８のうち文字列構造が類似しているテキストデータＤＴＸ同士を対応付け、この対応付けた複数のテキストデータＤＴＸが示す歌詞のメロディとして同じ演奏データＤＭＭを選択する。よって、本実施形態によると、歌詞内の似通った文字列構造を有する部分が同じメロディで歌われる歌唱曲を簡単に作ることができる。
【００４０】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば、以下の通りである。
（１）上記実施形態では、テキストデータＤＴＸ１〜２，ＤＴＸ３〜４，ＤＴＸ５〜６，及びＤＴＸ７〜８の中に上述した条件ａ５及びｂ５の両方を満たすものがある場合に、それらの文字列構造が類似しているとみなした。しかし、文字列構造の類否に用いる条件の数を１つにしてもよい。例えば、類否判定の対象とした２つのテキストデータＤＴＸが条件ａ１を満たす場合にそれらを対応付けるようにしてもよい。この実施形態では、ＣＰＵ１６は、対応付け処理における上述した第１〜第３の処理のうち第１の処理と第３の処理を実行し、第３の処理では、第１の処理において算出した文節数ＢＮの差ＤＢＮが閾値ＴＨ１よりも小さい場合に、処理対象である２つのテキストデータＤＴＸが類似しているとみなす。また、類否判定の対象とした２つのテキストデータＤＴＸが条件ｂ１を満たす場合にそれらを対応付けるようにしてもよい。この実施形態では、ＣＰＵ１６は、対応付け処理における上述した第１〜第３の処理のうち第２の処理と第３の処理を実行し、第３の処理では、第２の処理において算出した文字数差ＳＤＴＮが閾値ＴＨ２よりも小さい場合に、処理対象である２つのテキストデータＤＴＸが類似しているとみなす。また、上述した条件ｂ５を、文節毎の文字数の差ＤＴＮの各々が閾値ＴＨ４よりも小さいこと、という条件にしてもよい。
【００４１】
（２）上記実施形態において、条件ａ５における閾値ＴＨ１や条件ｂ５における閾値ＴＨ２を操作部１１の操作により任意に設定できるようにしてもよい。この実施形態によると、バラエティ豊かな作曲を実現することができる。
【００４２】
（３）上記実施形態では、テキストデータＤＴＸ１〜８における２小節分の区切り位置を示す文字としてコロン（:）を採用した。しかし、コロン（:）以外の文字（例えば、アスタリスク（＊））を２小節の区切りを示す文字としてもよい。
【００４３】
（４）上記実施形態では、メロディデータベース１９ａ内の各演奏データＤＭＭは２小節分のメロディを示すデータとなっており、このメロディデータベース１９ａ内から選択した４つの演奏データＤＭＭを配列して８小節分のメロディを生成した。しかし、演奏データＤＭＭを２小節よりも長い演奏区間や短い演奏区間のメロディを示すデータとしてもよい。例えば、８小節分のメロディを示す演奏データＤＭＭ’をメロディデータベース１９ａに記憶し、その中から選択した４つの演奏データＤＭＭ’を配列して３２小節分のメロディを生成するようにしてもよい。この場合において、Ａメロやサビに相当するフレーズが同じメロディで歌唱されるように上述した条件ａ５の閾値ＴＨ１や条件ｂ５の閾値ＴＨ２を設定するとよい。また、上記実施形態では、演奏データＤＭＭが２小節分のメロディを表すデータとなっており、情報入力画面の入力欄ＷＬにおいて８小節分の歌詞が入力されるようになっているため、ＣＰＵ１６は、入力欄ＷＬにおいて入力された８小節分のテキストデータＤＴＸを演奏データＤＭＭの小節数Ｎである２小節分毎に分割した。しかし、演奏データＤＭＭの小節数Ｎを２と異なる数にした場合やテキストデータＤＴＭの小節数Ｍを８と異なる数にした場合、ＣＰＵ１６は、テキストデータＤＴＸの分割数をＭを演奏データＤＭＭの小節数で除した数と同数にするとよい。
【００４４】
（５）上記実施形態では、演奏データＤＭＭは、２小節分のメロディの演奏手順をＳＭＦ形式で記述したデータであった。しかし、演奏データＤＭＭを別のデータフォーマットのものにしてもよい。例えば、演奏データＳＭＤを、該当するトラックのトラック番号、音源の発音チャネル、イベントの実行時刻を示すタイミングデータ、イベントの種類、及びイベントのパラメータからなるレコードを時系列順に並べた形式（イベントリスト形式）にしてもよい。また、演奏データＤＭＭを、イベントの種類とそのパラメータのみからなるレコードを時系列順に並べた形式にしてもよい。また、演奏データＤＭＭを、ピアノロール形式、スコアロール形式、テキスト形式などにしてもよい。
【００４５】
（６）上記実施形態では、ＣＰＵ１６は、テキストデータＤＴＸ１〜２、ＤＴＸ３〜４、ＤＴＸ５〜６、ＤＴＸ７〜８における任意の２つのテキストデータＤＴＸの各組を一組ずつ処理対象として対応付け処理を実行した。しかし、テキストデータＤＴＸ１〜２、ＤＴＸ３〜４、ＤＴＸ５〜６、ＤＴＸ７〜８における任意の３つのテキストデータＤＴＸを組とし、各組における３つのテキストデータＤＴＸを処理対象として対応付け処理を行うようにしてもよい。
【００４６】
（７）上記実施形態では、曲演奏データＭＤは、ある決まった時間長分の音の並びであるメロディにおける各音の発音内容を示すイベント列であった。しかし、曲演奏データＭＤを、歌唱曲内におけるテキストデータＤＴＸが示す歌詞を有する歌唱分の曲調を決める別の種類のデータの配列（例えば、当該歌唱部分のハーモニーを決めるイベント列や当該歌唱部分のリズムを決めるイベント列）としてもよい。
【符号の説明】
【００４７】
１０…曲編集装置、１１…操作部、１２…表示部、１３…放音部，１５…制御部、１６…ＣＰＵ、１７…ＲＡＭ、１８…ＲＯＭ、１９…ハードディスク。
【図１】
0005974473.tif 000002
【図２】
0005974473.tif 000003
【図３】
0005974473.tif 000004
【図４】
0005974473.tif 000005
【図５】
0005974473.tif 000006
【図６】
0005974473.tif 000007
【図７】
0005974473.tif 000008
【図８】
0005974473.tif 000009