説明

楽曲生成装置

【課題】歌詞等の文字列が楽曲の各単位区間に適切に対応する楽曲を生成する。
【解決手段】楽曲生成装置100Aは、複数の単位区間の各々について旋律が付与された楽曲を生成する。記憶装置24は、相異なる旋律を指定する複数の旋律データDMを記憶する。情報取得部32は、複数の文字で構成される指定文字列DLを取得する。楽曲生成部34は、指定文字列DLを区分した複数の文字群を各単位区間に分配し、複数の単位区間の各々について、当該単位区間に対応する各文字群の文字数と旋律データDMが指定する旋律の音符数とに応じた旋律評価値を旋律データDM毎に算定する。楽曲生成部34は、複数の単位区間の各々について、当該単位区間における各旋律データDMの旋律評価値に応じて複数の旋律データDMの何れかを選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楽曲を生成する技術に関する。
【背景技術】
【0002】
楽曲を自動的に生成する技術(自動作曲技術)が従来から提案されている。例えば非特許文献1には、歌詞の韻律に応じて音高が変動するように選定された音符列と、複数種のリズムパターンから音符数に応じて選定されたリズムパターンとで規定される楽曲を生成する技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】深山ほか6名,“Orpheus:歌詞の韻律に基づいた自動作曲システム”,情報処理学会研究報告[音楽情報科学],2008(78),p.179-184,2008年7月30日
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、非特許文献1の技術では、歌詞の韻律に応じた音符列が生成されるに過ぎず、楽曲内で音楽的な纏まりがある各単位区間(例えば2小節の区間)と歌詞との関係は何ら加味されない。したがって、例えば歌詞の1個の文節が楽曲の2個の単位区間に跨る可能性があり、歌詞の配列が不自然で聴取し難い楽曲が生成される可能性がある。以上の事情を考慮して、本発明は、歌詞等の文字列が楽曲の各単位区間に適切に対応する楽曲を生成することを目的とする。
【課題を解決するための手段】
【0005】
以上の課題を解決するために本発明が採用する手段を説明する。なお、本発明の理解を容易にするために、以下の説明では、本発明の各要素と後述の各実施形態の要素との対応を括弧書で付記するが、本発明の範囲を実施形態の例示に限定する趣旨ではない。
【0006】
本発明の楽曲生成装置は、複数の単位区間の各々について旋律が付与された楽曲を生成する装置であって、相異なる旋律を指定する複数の旋律データを記憶する記憶手段(例えば記憶装置24)と、複数の文字で構成される指定文字列を取得する文字列取得手段(例えば情報取得部32)と、指定文字列を区分した複数の文字群を各単位区間に分配する文字割当手段(例えば楽曲生成部34/文字割当処理S11)と、複数の単位区間の各々について、当該単位区間に対応する各文字群の文字数と旋律データが指定する旋律の音符数とに応じた旋律評価値(例えば旋律評価値EB)を旋律データ毎に算定する文字列評価手段(例えば楽曲生成部34/文字列評価処理S14)と、複数の単位区間の各々について、当該単位区間における各旋律データの旋律評価値に応じて複数の旋律データの何れかを選択する旋律選択手段(例えば楽曲生成部34/旋律選択処理S15)とを具備する。以上の構成においては、指定文字列を区分した複数の文字群が各単位区間に分配される。したがって、歌詞の韻律に応じて音符列を生成する非特許文献1の技術と比較して、指定文字列の各文字群と各単位区間の旋律とが自然に対応した楽曲を生成することが可能である。なお、本発明における「旋律」は、複数の音の時系列(音の並び)を意味する。
【0007】
本発明の好適な態様において、複数の旋律データの各々は、当該旋律データが指定する旋律を複数の旋律区間に区分する境界点を指定する区間データ(例えば区間データDM2)を含み、文字列評価手段は、複数の単位区間の各々について、当該単位区間に対応する各文字群と旋律データの各旋律区間(例えば旋律区間B)とを対応させ、旋律区間毎の文字数に応じた旋律評価値を旋律データ毎に算定する(例えば後述の第2調整処理SC12や第3調整処理SC13)。以上の態様においては、各旋律区間に対応する文字数に応じた旋律指標値が旋律データ毎に算定されるから、例えば各旋律区間に対応する文字数が多過ぎる楽曲が生成される可能性を低減することが可能である。
【0008】
例えば、文字列評価手段は、複数の単位区間の各々について、当該単位区間に対応する各文字群と旋律データの各旋律区間とを対応させ、各旋律区間内の音符数と当該旋律区間に対応する文字数との相違が大きいほど旋律評価値が小さい数値となるように、各旋律データの旋律評価値を算定する(例えば後述の第2調整処理SC12)。以上の態様では、各旋律区間内の音符数と当該旋律区間に対応する文字数との相違が大きいほど旋律評価値は小さい数値(すなわち旋律選択手段により選択される可能性が低い数値)となるから、各旋律区間内で文字数と音符数とが極端に相違する楽曲が生成される可能性を低減できる。
【0009】
また、文字列評価手段は、複数の単位区間の各々について、当該単位区間に対応する各文字群と旋律データの各旋律区間とを対応させ、各旋律区間に対応する文字数が、当該旋律区間の時間長に応じた許容値を上回る場合に旋律評価値が小さい数値となるように、各旋律データの旋律評価値を算定する(例えば後述の第3調整処理SC13)。許容値は、例えば旋律区間の時間長が短いほど小さい数値に設定される。以上の態様では、各旋律区間の文字数が許容値を上回る場合に旋律評価値が小さい数値に設定されるから、各旋律区間内の文字数が多過ぎる楽曲(すなわち非常に高速に各文字を発声する必要がある不自然な楽曲)が生成される可能性を低減できる。
【0010】
本発明の好適な態様において、文字列評価手段は、複数の単位区間の各々について、当該単位区間に対応する文字群の個数と旋律データが指定する旋律の旋律区間の個数との相違が大きいほど旋律評価値が小さい数値となるように、各旋律データの旋律評価値を算定する(例えば後述の第1調整処理SC11)。以上の態様では、単位区間に対応する文字群の個数と旋律区間の個数との相違が大きいほど旋律評価値が小さい数値に設定されるから、単位区間内で文字群の個数と旋律区間の個数とが極端に相違する楽曲が生成される可能性を低減できる。
【0011】
本発明の好適な態様において、文字列評価手段は、複数の単位区間の各々について、当該単位区間に対応する文字数が旋律データの旋律の音符数を上回る場合に旋律評価値が小さい数値となるように、各旋律データの旋律評価値を算定する(例えば後述の第4調整処理SC14)。以上の態様では、各単位区間に対応する文字数が音符数を上回る場合に旋律評価値が小さい数値に設定されるから、音符数が各単位区間の文字数を大幅に下回る旋律データが選択される可能性を低減することが可能である。したがって、例えば、旋律データが指定する各音符を分割して音符と文字とを対応させる構成では、音符の分割の頻度が低減され、旋律データの特徴を維持した楽曲を生成できるという利点がある。
【0012】
本発明の好適な態様に係る楽曲生成装置は、楽曲のコード進行を指定するコード進行データを取得するコード取得手段(例えば情報取得部32)と、複数の単位区間の各々について、コード進行データが指定する当該単位区間でのコード進行と旋律データが指定する旋律との関係に応じた旋律評価値(例えば旋律評価値EA)を旋律データ毎に算定する旋律評価手段(例えば楽曲生成部34/旋律評価処理S13)とを具備し、文字列評価手段は、旋律評価手段が算定した各旋律データの旋律評価値を調整する。以上の態様では、コード進行データが指定する各単位区間でのコード進行と旋律データが指定する旋律との関係に応じた旋律評価値が旋律データ毎に算定されたうえで文字列評価手段により調整される。したがって、楽曲の音符列が歌詞の韻律により制約される非特許文献1の構成と比較して、コード進行データが指定するコード進行に応じた多様な楽曲を生成できるという利点がある。
【0013】
本発明の好適な態様に係る楽曲生成装置は、旋律選択手段が各単位区間について選択した旋律データが指定する旋律の音符数を調整し、調整後の旋律の各音符と当該単位区間内の各文字とを対応させる旋律調整手段(例えば楽曲生成部34/旋律調整処理S16)を具備する。以上の態様では、音符と文字とが対応するように旋律データの音符数が調整されるから、音符と文字とが明確に対応する自然な楽曲を生成することが可能である。
【0014】
本発明の好適な態様において、旋律調整手段は、旋律選択手段が各単位区間について選択した旋律データの旋律の音符数が、当該単位区間に対応する文字数を下回る場合に、複数の音符のうち継続長が最長である1個の音符を分割する処理を、音符数が当該単位区間の文字数に合致するまで反復する(例えばステップSD12)。以上の態様では、継続長が長い音符を分割することで音符数が文字数と同数に調整されるから、例えば継続長とは無関係に選択された音符を分割する構成と比較して、旋律データの特徴を維持した自然な楽曲を生成できるという利点がある。
【0015】
本発明の好適な態様において、旋律調整手段は、旋律選択手段が各単位区間について選択した旋律データの旋律の音符数が、当該単位区間に対応する文字数を上回る場合に、旋律の複数の音符のうち当該単位区間に対応する文字数と同数の音符を選択し、非選択の音符に長音記号を対応させる(例えばステップSD14およびステップSD15)。以上の態様では、旋律の複数の音符のうち単位区間に対応する文字数と同数の音符が選択され、非選択の音符には長音記号が付与される。したがって、旋律データの特徴を維持した自然な楽曲を生成できるという利点がある。
【0016】
複数の音符のうち単位区間に対応する文字数と同数の音符を旋律調整手段がが選択する方法は任意であるが、例えば、楽曲のコード進行を指定するコード進行データを取得するコード取得手段(情報取得部32)と、各旋律データが指定する旋律の複数の音符の各々について、コード進行データが指定するコードと当該音符の音高との関係に応じた第1評価値と、当該音符の継続長に応じた第2評価値とから音符評価値を算定する旋律評価手段(例えば楽曲生成部34/旋律評価処理S13)とを具備する構成では、旋律選択手段が各単位区間について選択した旋律データの旋律の複数の音符から、音符評価値の順番で、当該単位区間に対応する文字数と同数の音符を選択することが可能である。以上の態様では、旋律データが指定する複数の音符のうち音楽的に重要な音符が選択されるから、旋律データの音楽的な特徴を維持した自然な楽曲を生成できるという効果は格別に顕著である。
【0017】
本発明の好適な態様に係る楽曲生成装置は、旋律調整手段による調整後の旋律データが指定する旋律を指定文字列で発音した音声の音声信号を生成する音声合成手段(例えば音声合成部44)と、旋律調整手段による調整後の旋律データが指定する旋律の演奏音の楽音信号を生成する楽音生成手段(例えば楽音生成部42)と、音声合成手段が生成した音声信号と音響生成手段が生成した楽音信号とを混合する混合手段(例えば混合部46)とを具備する。
【0018】
以上の各態様に係る楽曲生成装置は、専用のDSP(Digital Signal Processor)などのハードウェア(電子回路)によって実現されるほか、CPU(Central Processing Unit)などの汎用の演算処理装置とプログラムとの協働によっても実現される。本発明に係るプログラムは、複数の単位区間の各々について旋律が付与された楽曲を生成するために、相異なる旋律を指定する複数の旋律データを記憶する記憶手段を具備するコンピュータに、複数の文字で構成される指定文字列を取得する文字列取得処理と、指定文字列を区分した複数の文字群を各単位区間に分配する文字割当処理(例えば文字割当処理S11)と、複数の単位区間の各々について、当該単位区間に対応する各文字群の文字数と旋律データが指定する旋律の音符数とに応じた旋律評価値を旋律データ毎に算定する文字列評価処理(例えば文字列評価処理S14)と、複数の単位区間の各々について、当該単位区間における各旋律データの旋律評価値に応じて複数の旋律データの何れかを選択する旋律選択処理(例えば旋律選択処理S15)とを実行させる。以上のプログラムによれば、本発明に係る楽曲生成装置と同様の作用および効果が実現される。なお、本発明のプログラムは、コンピュータが読取可能な記録媒体に格納された形態で提供されてコンピュータにインストールされるほか、通信網を介した配信の形態で提供されてコンピュータにインストールされる。
【図面の簡単な説明】
【0019】
【図1】本発明の第1実施形態に係る楽曲生成装置のブロック図である。
【図2】旋律データの内容および旋律評価値の算定の説明図である。
【図3】楽曲を構成する各単位区間と指定文字列を構成する各文字群との説明図である。
【図4】コード進行データの模式図である。
【図5】楽曲生成処理のフローチャートである。
【図6】文字割当処理のフローチャートである。
【図7】旋律評価処理のフローチャートである。
【図8】文字列評価処理のフローチャートである。
【図9】旋律調整処理のフローチャートである。
【図10】第2実施形態におけるコード進行データの単位データの模式図である。
【図11】第3実施形態における指定文字列の模式図である。
【図12】第6実施形態における指定文字列の模式図である。
【図13】第6実施形態に係る楽曲生成装置のブロック図である。
【発明を実施するための形態】
【0020】
<第1実施形態>
図1は、本発明の第1実施形態に係る楽曲生成装置100Aのブロック図である。楽曲生成装置100Aは、楽曲を生成してその楽曲の演奏音の音響信号Vを出力する信号処理装置(自動作曲装置)である。以下の説明では、歌唱音が旋律を担当する歌唱曲を生成する場合を例示する。
【0021】
楽曲生成装置100Aには入力装置12と放音装置14とが接続される。入力装置12は、利用者からの指示を受付ける機器(例えばマウスやキーボード)である。放音装置14(例えばスピーカやヘッドホン)は、楽曲生成装置100Aから供給される音響信号Vに応じた音波を放射する。なお、音響信号Vをデジタルからアナログに変換するD/A変換器等の図示は便宜的に省略されている。
【0022】
第1実施形態の楽曲生成装置100Aは、演算処理装置22と記憶装置24とを具備するコンピュータシステムで実現される。演算処理装置22は、記憶装置24に記憶されたプログラムPGMを実行することで、楽曲を生成するための複数の機能(情報取得部32,楽曲生成部34,楽音生成部42,音声合成部44,混合部46)を実現する。なお、演算処理装置22の各機能を複数の集積回路に分散した構成や、専用の電子回路(DSP)が一部の機能を分担する構成も採用され得る。
【0023】
記憶装置24は、演算処理装置22が記憶するプログラムPGMや演算処理装置22が使用する各種のデータを記憶する。半導体記録媒体や磁気記録媒体等の公知の記録媒体が記憶装置24として任意に採用され得る。記憶装置24を複数の記録媒体で構成することも可能である。図1に示すように、記憶装置24は、複数の旋律データDMを記憶する。複数の旋律データDMの各々は、楽曲生成の素材として使用される旋律(以下「素材旋律」という)を指定するデータであり、図1に示すように、音符列データDM1と区間データDM2とを含んで構成される。
【0024】
音符列データDM1は、図2に示すように、素材旋律を構成する複数の音符の時系列を指定する。具体的には、音符列データDM1は、素材旋律の複数の音符の各々について音高と発音期間(発音時点および継続長)とを指定する。既存の楽曲から抽出された所定長の旋律を素材旋律として各音符列データDM1が生成される。第1実施形態では、4/4拍子の楽曲の2小節分(8分音符の16個分)を素材旋律とした場合を例示する。音符列データDM1は、例えばMIDI(Musical Instrument Digital Interface)規格に準拠した形式で記述され得る。具体的には、素材旋律の各音符の音高(ノートナンバ)を指定して発音や消音を指定するイベントデータと各イベントデータの処理間隔(音符の継続長や間隔)を指定するタイミングデータとを配列した時系列データが音符列データDM1として好適である。
【0025】
第1実施形態の楽曲生成装置100Aは、図3に示すように、複数(K個)の単位区間Uで構成される楽曲を生成する。1個の単位区間Uは、例えば楽曲の所定個の小節に相当する区間である。以下の説明では、1個の単位区間Uが、素材旋律と同様に、4/4拍子の楽曲の2小節分(8分音符16個分)に相当する場合を想定する。K個の単位区間Uの各々について複数の旋律データDMの何れかが順次に選択され、旋律データDM(音符列データDM1)に応じて単位区間U毎の旋律を選定した楽曲が生成される。
【0026】
区間データDM2は、図2に示すように、音符列データDM1が指定する素材旋律を時間軸上で複数の区間(以下「旋律区間」という)Bに区分するためのデータであり、時間軸上での各旋律区間Bの境界点を指定する。例えば素材旋律内で音楽的な纏まりがある区間を単位として各旋律区間Bが画定される。区間データDM2は、例えば旋律データDMの制作者(楽曲生成装置100Aの提供者)が素材旋律を聴取したうえで音楽的な印象を考慮して任意に設定する。
【0027】
以上に説明した各旋律データDMは、例えばSMF(Standard MIDI File)形式の音楽ファイルとして記述され得る。具体的には、音符列データDM1と区間データDM2とは別個のトラック(チャネル)として記述される。区間データDM2は、例えば境界点を意味するイベントデータと各イベントデータの時点(境界点の時点)を指定するタイミングデータとを配列したMIDI形式のデータとして記述される。
【0028】
図1の情報取得部32は、楽曲生成に適用される情報を取得する。第1実施形態の情報取得部32は、コード進行データDCと指定文字列DLと変数データDXとを入力装置12に対する利用者からの指示に応じて生成する。図1に示すように、情報取得部32が生成した情報(DC,DL,DX)は記憶装置24に格納される。なお、可搬型または据置型の記録媒体から情報取得部32が情報(DC,DL,DX)を取得する構成や、通信網を介して他の通信端末から情報取得部32が情報を取得する構成も採用され得る。
【0029】
コード進行データDCは、楽曲のコード進行を指定する。具体的には、コード進行データDCは、図4に示すように、楽曲内の各拍点(例えば8分音符毎)に対応する単位データDUを時系列に配列した構造である。具体的には、各単位データDUは、小節番号と拍点番号とコードとを指定する。例えば、図4において「1-1:C」と表記された単位データDUは、楽曲の1小節目の第1拍目(最初の8分音符)のコードとして「C」を指定し、「1-5:F」と表記された単位データDUは、楽曲の1小節目の第5拍目のコードとして「F」を指定する。コードの指定を含まない単位データDU(例えば図4の「1-2:」と表記された単位データDU)は、直前に指定されたコードが維持されることを意味する。
【0030】
コード進行データDCは、例えばテキスト形式の文書ファイルとして記述される。すなわち、図4に例示される通り、単位データDUの内容を1行毎に利用者が入力装置12から順次に文字入力し、情報取得部32は、利用者が作成した文書ファイルをコード進行データDCとして記憶装置24に格納する。利用者は、コード進行データDC内の単位データDUの総数を任意に設定し得る。楽曲を構成する単位区間Uの総数K(楽曲の時間長)は、コード進行データDC内の単位データDUの総数に応じて可変に設定される。第1実施形態では、1個の単位データDUが8分音符に対応するとともに1個の単位区間Uが4/4拍子の2小節分(8分音符の16個分)に相当するから、例えばコード進行データDCが64個の単位データDUを含む場合には、4個の単位区間U(8分音符の64個に相当する8小節分)で構成される楽曲が生成される。
【0031】
指定文字列DLは、楽曲の歌詞の文字列である。情報取得部32は、入力装置12に対する利用者からの指示(文字入力)に応じて指定文字列DLを可変に設定する。変数データDXは、楽曲生成に適用される変数を指定する。情報取得部32は、入力装置12に対する利用者からの指示に応じて各変数の数値を可変に設定する。変数データDXが指定する変数の具体例については後述する。以上の説明から理解されるように、演算処理装置22が実現する情報取得部32は、コード進行データDCを取得する要素(コード取得手段),指定文字列DLを取得する要素(文字列取得手段),および変数データDXを取得する要素として機能する。
【0032】
図1の楽曲生成部34は、各旋律データDMとコード進行データDCと指定文字列DLと変数データDXとを利用して楽曲データQを生成する。楽曲データQは、楽曲の旋律を指定するデータであり、図3に示すように、各単位区間Uに対応する旋律データQUの時系列で構成される。図5は、楽曲生成部34が楽曲データQを生成する処理(以下「楽曲生成処理」という)のフローチャートである。コード進行データDCと指定文字列DLと変数データDXとが記憶装置24に記憶された状態で、入力装置12に対する操作により利用者が楽曲生成の開始を指示した場合に図5の楽曲生成処理が開始される。
【0033】
楽曲生成処理を開始すると、楽曲生成部34は、記憶装置24に記憶された指定文字列DLとK個の単位区間Uの各々とを相互に対応させる文字割当処理S11を実行する。図6は、文字割当処理S11のフローチャートである。文字割当処理S11を開始すると、楽曲生成部34は、指定文字列DLを平仮名に変換したうえで(SA11)、図3に示すように指定文字列DLを複数の文字群Gに区分する(SA12)。第1実施形態では、指定文字列DLを文節毎に文字群Gに区分する。したがって、文字群G毎に文字数は相違する。指定文字列DLの文節の特定には、形態素解析等の公知の自然言語処理が任意に利用され得る。なお、指定文字列DLが平仮名で入力された場合にはステップSA11の処理は省略される。
【0034】
楽曲生成部34は、図3に示すように、指定文字列DLを区分した複数の文字群GをK個の単位区間Uに分配する(SA13)。具体的には、指定文字列DLの複数の文字群Gの時系列が、相異なる単位区間Uに対応するK個の集合に区分される。例えば、各単位区間Uに分配される文字群Gの個数がK個の単位区間Uについて可能な限り均等化される(単位区間U毎の文字群Gの個数の差異が最小化される)ように複数の文字群Gが時系列の順番で各単位区間Uに区分される。以上に説明したように、演算処理装置22が文字割当処理S11を実行することで、指定文字列DLの複数の文字群Gを各単位区間Uに分配する要素(文字割当手段)が実現される。
【0035】
文字割当処理S11が終了すると、楽曲生成部34は、K個の単位区間Uから1個の単位区間U(以下「対象単位区間U」という)を選択する(S12)。楽曲生成処理の開始直後のステップS12では第1番目の単位区間Uが対象単位区間Uとして選択される。楽曲生成部34は、対象単位区間Uについて旋律データQUを生成する旋律生成処理(S13〜S16)を実行し、K個の単位区間Uの各々について旋律生成処理が完了したか否かを判定する(S17)。旋律データQUを生成していない単位区間Uが存在する場合(S17:NO)、楽曲生成部34は、現在の対象単位区間Uの直後の単位区間Uを新たな対象単位区間Uとして選択したうえで(S12)、更新後の対象単位区間Uについて旋律生成処理(S13〜S16)を実行する。すなわち、K個の単位区間Uの各々について旋律生成処理(S13〜S16)が順次に反復されることで楽曲の各単位区間Uの旋律データQUが生成される。なお、第1実施形態ではK個の単位区間Uを先頭から末尾に向かう順番で順次に選択するが、K個の単位区間Uを末尾から先頭に向かう順番で順次に選択することも可能である。
【0036】
旋律生成処理(S13〜S16)は、旋律評価処理S13と文字列評価処理S14と旋律選択処理S15と旋律調整処理S16とを含んで構成される。旋律評価処理S13は、対象単位区間Uについてコード進行データDCが指定するコード進行と旋律データDMが指定する旋律との関係(音楽的な相関度)に応じた旋律評価値EAを記憶装置24内の複数の旋律データDMの各々について算定する処理である。文字列評価処理S14は、文字割当処理S11で対象単位区間Uに分配した各文字群Gと旋律データDMが指定する旋律との関係に応じた旋律評価値EBを記憶装置24内の複数の旋律データDMの各々について算定する処理である。第1実施形態では、旋律評価処理S13で算定された旋律評価値EAを文字列評価処理S14により調整することで旋律評価値EBを算定する。
【0037】
旋律選択処理S15は、旋律データDM毎に算定された旋律評価値EBに応じて記憶装置24内の複数の旋律データDMから1個の旋律データDMを選択する処理である。具体的には、複数の旋律データDMのうち旋律評価値EBが最大となる旋律データDMが選択される。旋律調整処理S16は、旋律選択処理S15で選択した1個の旋律データDMを調整することで対象単位区間Uの旋律データQUを生成する処理である。以上に概説した旋律生成処理(S13〜S16)がK個の単位区間Uの各々について順次に実行される。各処理(S13〜S16)の具体的な内容を以下に説明する。
【0038】
<旋律評価処理S13>
図7は、旋律評価処理S13のフローチャートである。旋律評価処理S13を開始すると、楽曲生成部34は、記憶装置24に記憶された複数の旋律データDMのうち1個の旋律データDM(以下「対象旋律データDM」という)を選択する(SB11)。そして、楽曲生成部34は、対象旋律データDMの音符列データDM1が指定する素材旋律の複数の音符の各々について音符評価値eを算定する(SB12)。
【0039】
音符評価値eは、図2に示すように、第1評価値e1と第2評価値e2とに応じて算定される。第1実施形態の楽曲生成部34は、第1評価値e1と第2評価値e2との乗算値を音符評価値eとして算定する。1個の音符の第1評価値e1は、その音符の発音時点についてコード進行データDCが指定するコードZCとその音符の音高ZPとの関係に応じた数値に設定される。
【0040】
具体的には、第1評価値e1は、音符の音高ZPがコードZCの構成音に該当する場合には数値a1に設定され、音高ZPがコードZCの根音のペンタトニックの構成音(コードZCの構成音を除く)に該当する場合には数値a2に設定され、音高ZPがコードZCの構成音およびペンタトニックの構成音の何れにも該当しない幹音である場合には数値a3に設定される。音符の音高ZPが何れにも該当しない場合、第1評価値e1はゼロに設定される。
【0041】
数値a1から数値a3の各々は、変数データDXにて指定される正数である。情報取得部32は、入力装置12に対する利用者からの指示に応じて数値a1から数値a3の各々を個別に設定する。図2では、コードの構成音に対応する数値a1を「5」に設定し、ペンタトニックの構成音に対応する数値a2を「3」に設定し、他の幹音に対応する数値a3を「1」に設定した場合が想定されている。したがって、コード進行データDCが指定するコードZCが「F」である区間に着目すると、図2に示すように、音高ZPが「F(ファ)」(コードの構成音)に設定された音符の第1評価値e1は「5(a1)」に設定され、音高ZPが「D(レ)」(ペンタトニックの構成音)に設定された音符の第1評価値e1は「3(a2)」に設定され、音高ZPが「E(ミ)」(何れにも該当しない幹音)に設定された音符の第1評価値e1は「1(a3)」に設定される。
【0042】
他方、第2評価値e2は、各音符の継続長に応じた数値(例えば各音符の発音区間内のtick数)に設定される。具体的には、図2から理解されるように、音符の継続長が長いほど第2評価値e2は大きい数値に設定される。以上に説明した第1評価値e1と第2評価値e2との乗算値が、対象旋律データDMで指定される複数の音符の各々について音符評価値eとして算定される。
【0043】
楽曲生成部34は、対象旋律データDMが指定する各音符の音符評価値eから対象旋律データDMの旋律評価値EAを算定する(SB13,SB14)。具体的には、楽曲生成部34は、対象旋律データDMが指定する全部の音符にわたる音符評価値eの合計値Taを算定し(SB13)、対象旋律データDMが全部の音符の継続長の合計値(第2評価値e2の合計値)Tbにより音符評価値eの合計値Taを除算することで旋律評価値EA(EA=Ta/Tb)を算定する(SB14)。合計値Tbによる除算は、素材旋律毎の合計値Tbの相違を補償した数値に正規化するための演算である。
【0044】
以上の説明から理解されるように、数値a1と数値a2とを数値a3と比較して大きい数値に設定した場合を想定すると、コード進行データDCが指定するコードの構成音やペンタトニックの構成音の継続長が長い素材旋律ほど旋律評価値EAが大きい数値(すなわち旋律選択処理S15で選択され易い数値)になるという傾向がある。すなわち、旋律評価値EAは、コード進行データDCが指定するコードと素材旋律の各音符とが音楽的に相関(調和)する度合の指標として利用可能である。
【0045】
以上の手順で対象旋律データDMの旋律評価値EAを算定すると、楽曲生成部34は、記憶装置24に記憶された全部の旋律データDMについて旋律評価値EAの算定が完了したか否かを判定する(SB15)。旋律評価値EAの未算定の旋律データDMが存在する場合(SB15:NO)、楽曲生成部34は、旋律評価値EAを算定していない旋律データDMを新たな対象旋律データDMとして選択し(SB11)、更新後の対象旋律データDMについて旋律評価値EAを算定する(SB12〜SB14)。他方、全部の旋律データDMについて旋律評価値EAの算定が完了した段階(SB15:YES)で旋律評価処理S13は終了する。以上の説明から理解されるように、演算処理装置22が旋律評価処理S13を実行することで、旋律データDM毎(素材旋律毎)に旋律評価値EAを算定する要素(旋律評価手段)が実現される。
【0046】
<文字列評価処理S14>
図8は、文字列評価処理S14のフローチャートである。文字列評価処理S14を開始すると、楽曲生成部34は、記憶装置24に記憶された複数の旋律データDMから1個の対象旋律データDMを選択する(SC10)。楽曲生成部34は、旋律評価処理S13で対象旋律データDMについて算定した旋律評価値EAを、以下に詳述する第1調整処理SC11から第4調整処理SC14までの各処理により順次に調整することで旋律評価値EBを算定する。
【0047】
第1調整処理SC11は、文字割当処理S11で対象単位区間Uに分配した文字群Gの個数NAと対象旋律データDMの区間データDM2に応じて素材旋律を区分した旋律区間Bの個数MAとの差分(絶対値)ΔAに応じて対象旋律データDMの旋律評価値EAを調整する処理である。具体的には、差分ΔAが大きいほど旋律評価値EAは小さい数値に調整される。例えば、旋律評価値EAは、所定の数値b1のΔA乗を現段階の旋律評価値EAに乗算した数値に更新される(EA=EA×b1ΔA)。数値b1は1以下の正数である。以上の説明から理解されるように、文字群Gの個数NAと旋律区間Bの個数MAとの差分ΔAが大きい素材旋律の旋律データDMほど旋律選択処理S15で選択され難くなるという傾向がある。すなわち、文字群Gの個数NAと旋律区間Bの個数MAとが極端に相違する楽曲(例えば過度に多数の文字群Gが1個の旋律区間Bに対応する楽曲や、過度に多数の旋律区間Bが1個の文字群Gに対応する楽曲)が生成される可能性は低減される。
【0048】
第2調整処理SC12は、対象単位区間Uに割当てた各文字群Gと対象旋律データDMが指定する素材旋律の各旋律区間Bとを対応させ、各旋律区間Bにおける文字群Gの文字の個数NBとその旋律区間B内の音符の個数MBとの差分(絶対値)ΔBに応じて旋律評価値EAを調整する処理である。具体的には、楽曲生成部34は、第1に、対象旋律データDMが指定する素材旋律の各旋律区間Bと対象単位区間Uに割当てた各文字群Gとを時系列の順番で相互に対応させる全通りの組合せについて差分ΔBを算定する。差分ΔBは、旋律区間Bにおける文字群Gの文字の個数NBと音符の個数MBとの差異を素材旋律の全部の旋律区間Bについて加算した数値である。楽曲生成部34は、第2に、各旋律区間Bと各文字群Gとの対応を差分ΔBが最小となる関係に確定し、第3に、確定後の関係における差分ΔBが大きいほど旋律評価値EAを小さい数値に調整する。例えば、旋律評価値EAは、所定の数値b2のΔB乗を第1調整処理SC11の実行後の旋律評価値EAに乗算した数値に更新される(EA=EA×b2ΔB)。数値b2は1以下の正数である。以上の説明から理解されるように、各旋律区間B内で文字の個数NBと音符の個数MBとの差分ΔBが大きい素材旋律の旋律データDMほど旋律選択処理S15で選択され難くなるという傾向がある。すなわち、各旋律区間B内で文字の個数NBと音符の個数MBとが極端に相違する楽曲(例えば過度に多数の文字が1個の旋律区間Bに対応する楽曲や、過度に多数の音符が1個の文字群Gに対応する楽曲)が生成される可能性は低減される。
【0049】
第3調整処理SC13は、各旋律区間Bに対応する文字の個数NBが所定の許容値THを上回る場合に旋律評価値EAを低下させる処理である。許容値THは、各旋律区間Bに包含され得る16分音符の個数(したがって旋律区間Bの時間長に応じた可変値)に設定される。各旋律区間Bの時間長は相違し得るから、許容値THも旋律区間B毎に個別に算定される。楽曲生成部34は、1個の旋律区間Bについて許容値THと文字の個数NBとの差分ΔCを算定し(ΔC=TH−ZC)、差分ΔCが正数である場合(すなわち1個の文字について16分音符よりも長い時間長を旋律区間B内に確保できる場合)には旋律評価値EAを維持する一方、差分ΔCが負数である場合(1個の文字について16分音符の時間長を旋律区間B内に確保できない場合)には旋律評価値EAを減少させる。具体的には、旋律評価値EAは、所定の数値b3のΔC(負数)乗を第2調整処理SC12の実行後の旋律評価値EAに乗算した数値に更新される(EA=EA×b3ΔC)。数値b3は1以上の正数である。以上の処理が素材旋律内の旋律区間B毎に反復される。以上の説明から理解されるように、各旋律区間B内の文字の個数NAが許容値THを上回る素材旋律の旋律データDMほど旋律選択処理S15で選択され難くなるという傾向がある。すなわち、各文字の発声速度が過度に速い楽曲(例えば16分音符を上回る速度で各文字が発声される楽曲)が生成される可能性は低減される。
【0050】
第4調整処理SC14は、対象単位区間Uに対応する文字の個数(対象単位区間Uに分配した各文字群Gの文字数の合計値)NDが対象旋律データDMの素材旋律を構成する音符の個数(素材旋律の各旋律区間Bの音符数の合計値)MDを上回る場合に旋律評価値EAを低下させる処理である。具体的には、楽曲生成部34は、対象単位区間U内の文字の個数NDが素材旋律の音符の個数MD以下である場合には旋律評価値EAを維持し、対象単位区間U内の文字の個数NDが素材旋律の音符の個数MDを上回る場合には、第3調整処理SC13の実行後の旋律評価値EAに所定の数値b4を乗算する(EA=EA×b4)。数値b4は1以下の正数である。以上の説明から理解されるように、対象単位区間Uに対応する文字の個数NDが音符の個数MDを上回る素材旋律の旋律データDMは旋律選択処理S15にて選択され難くなるという傾向がある。すなわち、単位区間U内の文字の個数が音符の個数に対して過度に多い楽曲が生成される可能性は低減される。
【0051】
文字列評価処理S14に適用される数値b1から数値b4の各々は、第1実施形態の数値a1から数値a3と同様に、変数データDXが指定する変数であり、利用者からの指示に応じて可変に設定される。
【0052】
以上に説明した処理(SC11〜SC14)を対象旋律データDMの旋律評価値EAに対して順次に実行することで対象旋律データDMの旋律評価値EBを算定すると、楽曲生成部34は、記憶装置24に記憶された全部の旋律データDMについて旋律評価値EBの算定が完了したか否かを判定する(SC15)。旋律評価値EBを算定していない旋律データDMが存在する場合(SC15:NO)、楽曲生成部34は、旋律評価値EBを算定していない旋律データDMを新たな対象旋律データDMとして選択し(SC10)、更新後の対象旋律データDMについて旋律評価値EBを算定する(SC11〜SC14)。他方、全部の旋律データDMについて旋律評価値EBの算定が完了した段階(SC15:YES)で文字列評価処理S14は終了する。以上の説明から理解されるように、演算処理装置22が文字列評価処理S14を実行することで、各単位区間Uに対応する文字数または文字群Gの個数と旋律データDMが指定する素材旋律の音符数または旋律区間Bの個数とに応じた旋律評価値EBを旋律データDM毎に算定する要素(文字列評価手段)が実現される。なお、第1調整処理SC11から第4調整処理SC14の順序は適宜に変更される。
【0053】
<旋律選択処理S15>
楽曲生成部34は、文字列評価処理S14で旋律データDM毎に算定した旋律評価値EBが最大となる1個の旋律データDM(以下「選択旋律データDM」という)を記憶装置24内の複数の旋律データDMから選択する(S15)。すなわち、演算処理装置22が旋律選択処理S15を実行することで、旋律評価値EBに応じて旋律データDMを選択する要素(旋律選択手段)が実現される。なお、楽曲生成部34が各旋律データDMの旋律評価値EBに応じて選択旋律データDMを選択する方法は適宜に変更される。例えば、旋律評価値EBが所定の閾値を上回る複数の旋律データDMから楽曲生成部34がランダムに1個の選択旋律データDMを選択する方法や、旋律評価値EBの降順で上位に位置する所定個の旋律データDMから楽曲生成部34がランダムに1個の選択旋律データDMを選択する方法も採用され得る。以上の方法によれば、楽曲の生成のたびに別個の楽曲を生成することが可能である。
【0054】
<旋律調整処理S16>
楽曲生成部34は、旋律選択処理S15で選択した選択旋律データDMが指定する音符の個数を、対象単位区間U内で文字と音符とが1対1に対応するように調整することで対象単位区間Uの旋律データQUを生成する(S16)。図9は、旋律調整処理S16のフローチャートである。
【0055】
旋律調整処理S16を開始すると、楽曲生成部34は、対象単位区間Uに分配された文字の個数NDが、選択旋律データDMが指定する音符の個数MDを上回るか否かを判定する(SD11)。文字の個数NDが音符の個数MDを上回る場合(SD11:YES)、楽曲生成部34は、音符の個数MDを文字の個数NDまで増加させる(SD12)。具体的には、楽曲生成部34は、選択旋律データDMが指定する複数の音符のうち継続長が最長である1個の音符を2個の音符に分割する処理を、音符の個数MDが文字の個数NDに到達するまで順次に反復する。1個の音符は、例えば拍点に対応する時点で分割される。ステップSD12の処理後の選択旋律データDMが対象単位区間Uの旋律データQUとして確定する。
【0056】
他方、ステップSD11の判定結果が否定である場合(SD11:NO)、楽曲生成部34は、文字の個数NDが音符の個数MDを下回るか否かを判定する(SD13)。文字の個数NDが音符の個数MDを下回る場合(SD13:YES)、楽曲生成部34は、選択旋律データDMが指定するMD個の音符から文字と同数のND個の音符を選択する(SD14)。ND個の音符の選択には、旋律評価処理S13(SB12)で音符毎に算定した音符評価値eが利用される。具体的には、楽曲生成部34は、選択旋律データDMが指定するMD個の音符のうち音符評価値eの降順(大→小)で上位に位置するND個の音符を選択する。ただし、旋律区間B内の先頭の音符(すなわち音楽的に重要な音符)は、音符評価値eに関わらず優先的に選択される。また、楽曲生成部34は、選択旋律データDMが指定するMD個の音符のうちステップSD14で選択されない音符を処理する(SD15)。例えば、楽曲生成部34は、非選択の音符を削除するとともに直前の音符を削除分だけ時間軸方向に伸長する。ただし、非選択の音符と直前の音符との音高差が閾値(例えば4半音程度)を下回る場合には、直前の音符の文字の継続を意味する長音記号(ー)を非選択の音符に対応させる。直前の音符に音高が近い音符に限定して長音記号を付加するのは、直前の音符から大幅に音高が変化する音符についても文字を直前の音符から継続させると、楽曲が不自然な印象と知覚されるからである。ステップSD15の処理後の選択旋律データDMが対象単位区間Uの旋律データQUとして確定する。
【0057】
他方、ステップSD13の判定結果が否定である場合(すなわち、音符の個数MDと文字の個数NDとが合致する場合)、楽曲生成部34は、音符の個数MDの調整(SD12,SD14,SD15)を実行しない。すなわち、選択旋律データDMが対象単位区間Uの旋律データQUとして確定する。以上に説明した処理(SD11〜SD15)により文字の個数NDと音符の個数MDとが合致する。すなわち、指定文字列DLの各文字と素材旋律の各音符とが1対1に対応した旋律データQUが生成される。以上の説明から理解されるように、演算処理装置22が旋律調整処理S16を実行することで、対象単位区間Uの選択旋律データDMが指定する素材旋律の音符の個数MDを調整して各文字に対応させる要素(旋律調整手段)が実現される。
【0058】
なお、以上に例示した旋律調整処理S16では、文字と音符とを対象単位区間U内で1対1に対応させたが、相互に対応する旋律区間Bと文字群Gとの間で旋律区間B内の各音符と文字群G内の各文字とを1対1に対応させることも可能である。例えば、楽曲生成部34は、前述の第2調整処理SC12と同様に、旋律区間B内の音符の個数MBと文字群G内の文字の個数NBとの差分ΔBが最小となるように各旋律区間Bと各文字群Gとの対応を確定し、旋律区間Bと文字群Gとの組合せ毎に、旋律区間B内の音符数と文字群G内の文字数とが合致するように旋律調性処理S16(SD11〜SD15)を実行する。
【0059】
旋律生成処理(S13〜S16)の具体的な内容は以上の通りである。前述のように、旋律生成処理がK個の単位区間Uの各々について反復されることで楽曲データQを構成するK個の旋律データQUが生成される。楽曲生成部34が生成した楽曲データQは、図1の楽音生成部42と音声合成部44とに供給される。
【0060】
楽音生成部42は、楽曲データQが指定する各音符の演奏音を示す楽音信号V1を生成する。具体的には、公知のMIDI音源が楽音生成部42として好適に採用される。他方、音声合成部44は、楽曲生成部34が生成した楽曲データQと情報取得部32が生成した指定文字列DLとに応じた音声信号V2を生成する。音声信号V2は、指定文字列DLの各文字を、楽曲データQがその文字に対応する音符に指定する音高で発声した歌唱音を示す音響信号である。音声信号V2の生成には、例えば公知の素片接続型の音声合成処理が好適に採用され得る。すなわち、音声合成部44は、指定文字列DLの各文字に対応する音声素片を順次に選択し、各音声素片を、楽曲データQが指定する各音符の音高と発音期間とに調整したうえで相互に連結することで音声信号V2を生成する。
【0061】
混合部46は、楽音生成部42が生成した楽音信号V1と音声合成部44が生成した音声信号V2との混合(加重和)で音響信号Vを生成する。混合部46が生成した音響信号Vが放音装置14に供給されることで音波が再生される。
【0062】
以上に説明したように、第1実施形態では、指定文字列DLを区分した複数の文字群Gが各単位区間Uに分配される。したがって、歌詞の韻律に応じて音符列を生成する非特許文献1の技術と比較して、指定文字列DLの各文字群Gと楽曲の各単位区間とが無理なく対応した自然な楽曲を生成することが可能である。例えば、第1実施形態の例示のように指定文字列DLを文節単位で複数の文字群Gに区分すれば、楽曲の音楽的な纏まりと指定文字列DLの意味的な纏まりとが相互に対応する自然な楽曲を生成することが可能である。すなわち、例えば音楽的な纏まりの境界が文節の途中に位置するような不自然な楽曲が生成される可能性は低減される。
【0063】
また、第1実施形態では、各単位区間Uに対応する文字または文字群Gの個数と旋律データDMが指定する音符または旋律区間Bの個数との関係に応じた旋律評価値EBが旋律データDM毎に算定されて旋律データDMの選択に適用される。したがって、例えば旋律評価処理S13で算定された旋律評価値EAに応じて各単位区間Uの旋律データDMを選択する構成と比較して、文字または文字群Gの個数と音符または旋律区間Bの個数とが乖離した不自然な楽曲が生成される可能性を低減できるという利点がある。
【0064】
ところで、非特許文献1の技術では、歌詞の韻律に対応するように楽曲の音符列が制約されるから、利用者の意図から乖離した単調な楽曲が生成される可能性がある。第1実施形態では、楽曲のコード進行を指定するコード進行データDCに応じた旋律評価値EAが旋律データDM毎に算定されて旋律データDMの選択に反映される。したがって、非特許文献1の技術と比較して、利用者の意図に合致した自然な楽曲が生成されるという利点がある。
【0065】
また、旋律評価値EAの算定に適用される変数の数値(a1〜a3)や旋律評価値EBの算定に適用される変数の数値(b1〜b4)は利用者からの指示に応じて可変に設定される。したがって、利用者の意図に適合した楽曲を生成できるという利点がある。例えば、数値a1と数値a2とを数値a3と比較して大きい数値に設定すれば、コード進行データDCが指定するコードの構成音やペンタトニックの構成音が優勢な楽曲(コード進行データDCが指定するコード進行に類似する楽曲)が生成され、数値a3を数値a1や数値a2と比較して大きい数値に設定すれば、コード進行データDCが指定するコード進行から乖離した楽曲が生成される。また、文字列評価処理S14に適用される数値(b1〜b4)を適宜に調整することで、文字と音符とが自然に対応する楽曲を生成できるという利点がある。
【0066】
<第2実施形態>
本発明の第2実施形態を以下に説明する。なお、以下に例示する各形態において作用や機能が第1実施形態と同等である要素については、以上の説明で参照した符号を流用して各々の詳細な説明を適宜に省略する。
【0067】
図10は、第2実施形態におけるコード進行データDCを構成する1個の単位データDUの模式図である。図10に示すように、第2実施形態の単位データDUでは、第1実施形態と同様のコードの指定に加えて、第1特定音と第2特定音と減点音とを指定することが可能である。図10の例示では、記号「H:」で指定された音高「D(レ)」が第1特定音を意味し、記号「L:」で指定された音高「A(ラ)」が第2特定音を意味し、記号「Minus:」で指定された音高「F(ファ)」が減点音を意味する。第1特定音と第2特定音と減点音とは、利用者からの指示に応じて設定される。なお、1個の単位データDUにおける各音符(第1特定音,第2特定音,減点音)の指定の効果は、その単位データDUに対応する時点(拍点)のみで有効とされるが、時間的に後方の単位データDUにて指定が解除されるまで有効に維持することも可能である。
【0068】
旋律評価処理S13(SB12)において、楽曲生成部34は、対象旋律データDMで指定される音符が、その音符の発音時点の単位データDUが指定する第1特定音に該当する場合には、コードの構成音やペンタトニックの構成音に該当するか否かに関わらず、第1評価値e1を数値a4に設定する。同様に、音符が第2特定音に該当する場合には第1評価値e1が数値a5に設定され、音符が減点音に該当する場合には第1評価値e1が数値a6に設定される。数値a4から数値a6の各々は、第1実施形態の数値a1から数値a3と同様に、変数データDXが指定する変数であり、利用者からの指示に応じて可変に設定される。
【0069】
数値a4および数値a5は正数に設定される(a4>a5)。例えば数値a4を数値a1から数値a3と比較して大きい数値に設定すれば、第1特定音に該当する音符を含む素材旋律を旋律選択処理S15にて優先的に選択することが可能である。また、数値a5を数値a1や数値a2と比較して小さい数値に設定すれば、第2特定音に該当する音符が多い素材旋律が旋律選択処理S15で選択される可能性は低減される。他方、数値a6は負数に設定される。したがって、減点音に該当する音符の音符評価値eは負数(すなわち旋律評価値EAを低下させる数値)となる。すなわち、減点音に該当する音符を含む素材旋律の選択を高い確度で回避することが可能である。
【0070】
第2実施形態においても第1実施形態と同様の効果が実現される。また、第2実施形態では、第1特定音と第2特定音と減点音とをコード進行データDCで指定して各々について第1評価値e1の数値(a4〜a6)を個別に設定できる。したがって、利用者の意図を精緻に反映した楽曲を生成できるという利点がある。例えば、利用者が優先させたい音符を含む楽曲や利用者が回避したい音符を含まない楽曲を生成することが可能である。
【0071】
<第3実施形態>
第1実施形態では、指定文字列DLを文節単位で複数の文字群Gに区分した。第3実施形態では、利用者が文字群Gの境界を任意に指定することが可能である。図11は、入力装置12の操作で利用者が入力した指定文字列DLの模式図である。指定文字列DLは、改行記号82を境界とした複数行にわたる文字列で構成されて相前後する文字間に区切記号84が挿入され得る。図11では「:(コロン)」を区切記号84とした場合を例示したが、句読点(句点や読点)を区切記号84とすることも可能である。利用者は、文字列の入力とともに指定文字列DLの改行記号82や区切記号84の位置を任意に選定することが可能である。
【0072】
図6の文字割当処理S11において、楽曲生成部34は、改行記号82および区切記号84を境界として指定文字列DLを複数の文字群Gに区分する(SA12)。そして、楽曲生成部34は、指定文字列DLに設定された改行記号82の前後で各文字群Gが別個の単位区間Uに対応するように各文字群GをK個の単位区間Uに分配する(SA13)。指定文字列DLに改行記号82が設定されていない場合には、第1実施形態と同様に、文字群Gの個数がK個の単位区間Uについて均等化されるように指定文字列DLの複数の文字群Gが単位区間U毎に区分される。
【0073】
第3実施形態においても第1実施形態と同様の効果が実現される。また、第3実施形態では、指定文字列DLの文字群Gを利用者が任意に指定できるから、利用者が指定した文字群Gを単位として指定文字列DLを各単位区間Uに分配した自然な楽曲を生成することが可能である。なお、改行記号82や区切記号84の位置に加えて文節の境界で指定文字列DLを文字群Gに区分することも可能である。
【0074】
<第4実施形態>
第4実施形態の音声合成部44は、合成音に音楽的な表情を付与するための処理(表情付与処理)を実行する。表情付与処理の具体例は以下の通りである。
【0075】
(1)楽曲データQが指定する音符の音高が音高ZP1から音高ZP2に変化する場合に、音高ZP2の音符の先頭にポルタメント(しゃくり)を付与する。例えば、音高ZP2が音高ZP1を上回る場合、音高ZP1を下回る数値に低下させてから目標の音高ZP2まで音高を連続的に上昇させる効果(上行ポルタメント)を音高ZP2の音符の先頭に付加する。また、音高ZP2が音高ZP1を下回る場合、音高ZP1を上回る数値に上昇させてから目標の音高ZP2まで音高を連続的に低下させる効果(下行ポルタメント)を音高ZP2の音符の先頭に付加する。
(2)各音符にビブラートを付加する。具体的には、例えば継続長が所定の閾値を上回る音符の全体または一部(例えば終点から前方の所定長にわたる区間)にビブラートが付加される。
(3)所定時間毎の文字の個数が閾値を上回る場合(すなわち合成音が早口な場合)に合成音の明瞭度(発声時の開口の度合)を低下させ、口を完全に開かずに発声した場合のような曖昧な音声に制御する。
(4)楽曲の最初の音符や各単位区間U(または各旋律区間B)の最初の音符については音量を上昇させる。また、音量の上昇に代えて(または音量の上昇とともに)、小節(こぶし)を付与することも可能である。
(5)相前後する音符の間隔の時間長が所定の閾値を上回る場合に、間隔内に息継ぎの音声を追加する。息継ぎの音声は、例えば音声素片として事前に用意される。また、相前後する音符の間隔の時間長が所定の閾値を下回る場合に各音符を時間軸上で連続させる。すなわち、相前後する音符の間にレガートを付与する。
(6)音高やリズムのパターンと音量の時間変化とを対応させたテーブルを用意し、旋律区間内の音符の音高のパターンに対応した音量の時間変化を付与する。また、音符の音高が変化した直後に音量を一時的に増加させる構成や、音符の継続長に応じて音量を変化させる(例えば継続長が長いほど音量を増加させる)構成も採用され得る。
(7)合成音の音楽的な表情を制御するための制御変数(例えば音量や明瞭度等)の時間変化を各旋律データDMに事前に設定して音声合成時に適用する。
(8)相異なる特性の音声毎に音声素片を用意し、指定文字列DLに含まれる単語の種類やコード進行や曲調等に応じて、音声合成に実際に適用される音声素片を変更する。
【0076】
以上が表情付与処理の具体例である。第4実施形態においても第1実施形態と同様の効果が実現される。また、第4実施形態では、音声合成部44による音声合成の実行時(音声信号V2の生成時)に表情付与処理が実行されるから、音楽的な表情が多様な合成音を生成できるという利点がある。
【0077】
<第5実施形態>
第5実施形態の各旋律データDMは、音符列データDM1および区間データDM2に加えて属性データDM3および属性データDM4を含んで構成される。属性データDM3は、素材旋律が楽曲内の何れの位置の旋律として好適であるかを指定する。具体的には、楽曲の先頭と中央と末尾との何れかを属性データDM3は指定する。すなわち、楽曲の先頭の旋律として好適な素材旋律の属性データDM3は先頭を指定し、楽曲の末尾の旋律として好適な素材旋律の属性データDM3は末尾を指定する。また、属性データDM4は、素材旋律が特に印象的な旋律であるか否かを指定する。具体的には、属性データDM4は、素材旋律が印象的な旋律である場合に有効状態に設定され、旋律が印象的でない場合に無効状態に設定される。属性データDM3および属性データDM4は、例えば旋律データDMの制作者が素材旋律を聴取したうえで音楽的な印象を考慮して任意に設定する。
【0078】
楽曲生成部34は、文字列評価処理S14の実行時に、前述の第1調整処理SC11から第4調整処理SC14に加えて、以下に例示する第5調整処理から第7調整処理を実行する。第5調整処理から第7調整処理は、旋律評価処理S13で各旋律データDMについて算定された旋律評価値EAを調整する処理である。
【0079】
第5調整処理は、対象旋律データDMの属性データDM3に応じて旋律評価値EAを調整する処理である。すなわち、楽曲生成部34は、対象単位区間Uの時間軸上の位置(楽曲内の先頭/中央/末尾)が属性データDM3による指定位置に合致する場合には、旋律評価値EAを維持する一方、対象単位区間Uの位置が属性データDM3による指定位置に合致しない場合には旋律評価値EAを減少させる。具体的には、楽曲生成部34は、旋律評価値EAに所定の数値b5を乗算する(EA=EA×b5)。数値b5は1を下回る正数である。したがって、楽曲内の単位区間Uの位置に好適な素材旋律の旋律データDMほど旋律選択処理S15で選択され易くなるという傾向がある。
【0080】
第6調整処理は、対象単位区間Uの直前の単位区間Uについて楽曲調整処理S16で生成された旋律データQUの旋律と対象旋律データDMが指定する素材旋律との音域差に応じて旋律評価値EAを調整する処理である。具体的には、楽曲生成部34は、直前の旋律データQUと対象旋律データDMとの間で旋律の音域差が大きいほど旋律評価値EAを小さい数値に調整する。例えば、直前の旋律データQUの旋律と対象旋律データDMの素材旋律との各々について各音符の音高の平均値と分散値とを算定し、旋律間の平均値の差分ΔE1と分散値の差分ΔE2とを算定する。そして、所定の数値b61の差分ΔE1乗と所定の数値b62の差分ΔE2乗とを現段階の旋律評価値EAに乗算することで調整後の旋律評価値EAを算定する(EA=EA×b61ΔE1×b62ΔE2)。したがって、直前の単位区間Uの旋律データQUが指定する旋律に音域が類似する素材旋律の旋律データDMほど旋律選択処理S15で選択され易くなるという傾向がある。
【0081】
第7調整処理は、対象単位区間Uが楽曲の最初または最後の単位区間Uに該当し、かつ、対象旋律データDMの属性データDM4が有効状態に設定されている場合(すなわち、対象旋律データDMの素材旋律が音楽的に印象的である場合)に、旋律評価値EAを大きい数値に調整する。具体的には、旋律評価値EAは、所定の数値b7を現段階の旋律評価値EAに乗算した数値に更新される(EA=EA×b7)。数値b7は1を上回る正数である。したがって、楽曲の先頭や末尾の単位区間Uについては属性データDM4が有効状態に設定された旋律データDMが選択され易い。すなわち、印象的な旋律が先頭や末尾に付与された楽曲が生成され易いという傾向がある。
【0082】
第5調整処理に適用される数値b5と第6調整処理に適用される数値b61およびb62と第7調整処理に適用される数値b7とは、第1実施形態の数値b1から数値b4と同様に、変数データDXが指定する変数であり、利用者からの指示に応じて可変に設定される。以上に説明した第1調整処理から第7調整処理の実行後の旋律評価値EAが旋律評価値EBとして確定される。なお、第1調整処理から第7調整処理の順序は任意である。例えば、第5調整処理を第1調整処理SC11の直前に実行し、第6調整処理および第7調整処理を第4調整処理SC14の直後に実行することが可能である。
【0083】
第5実施形態においても第1実施形態と同様の効果が実現される。また、第5実施形態では、第1調整処理SC11から第4調整処理SC14に加えて第5調整処理から第7調整処理が実行されるから、文字列評価処理S14が第1調整処理SC11から第4調整処理SC14までの各処理のみを実行する構成と比較して、音楽的に自然な楽曲を生成できるという利点がある。
【0084】
<第6実施形態>
前述の各形態では、事前に作成された歌詞の各文字が指定された指定文字列DLに対応する楽曲を生成した。第6実施形態の指定文字列DLは、図12に例示されるように、任意(不特定)の1文字を意味する特定文字(図12の例示では記号「*」)86の配列で構成される。すなわち、指定文字列DLは歌詞の文字数のみを指定する。利用者は、特定文字86の時系列の任意の位置に区切記号88を挿入することが可能である。
【0085】
図13は、第6実施形態の楽曲生成装置100Bのブロック図である。第6実施形態の楽曲生成装置100Bは、歌詞が確定していない段階で指定文字列DLに適合する楽曲を生成するために好適に利用される。すなわち、楽曲生成装置100Bによる楽曲の生成後に、指定文字列DLの各特定文字86に歌詞の特定の文字を付与することで歌唱曲が完成する。
【0086】
図13に示すように、楽曲生成装置100Bは、第1実施形態の楽曲生成装置100Aから音声合成部44と混合部46とを省略した構成である。楽曲生成部34が生成した楽曲データQに応じて楽音生成部42が生成した音響信号V(楽音信号V1)が放音装置14に供給されて音波として再生される。楽曲生成部34は、図6の文字割当処理S11において、指定文字列DLの区切記号88を境界として指定文字列DLを複数の文字群Gに区分する(SA12)。第6実施形態においても第1実施形態と同様の効果が実現される。
【0087】
<変形例>
以上の各形態は多様に変形され得る。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様は適宜に併合され得る。
【0088】
(1)前述の各形態では、旋律評価処理S13および文字列評価処理S14の実行で各旋律データDMの旋律評価値EBを算定したが、旋律評価処理S13は省略され得る。例えば、所定値に設定された旋律評価値EAを文字列評価処理S14で調整する構成や、文字列評価処理S14の第1調整処理から第7調整処理の各々で算定される数値から旋律評価値EBを算定する構成も採用され得る。
【0089】
(2)例えば指定文字列DLの各文字と楽曲の各音符とを厳格に1対1に対応させる必要がない場合には、旋律調整処理S16は省略され得る。すなわち、旋律選択処理S15で単位区間U毎に選択された旋律データDMの時系列を最終的な楽曲データQとして確定することも可能である。
【0090】
(3)各音符列データDM1が指定する音符の時系列やコード進行データDCで前提となる調性を共通させ(例えばハ長調)、楽曲生成部34が生成した楽曲データQが指定する旋律を、利用者からの指示に応じた調性や音楽的に適切な調性に転調することも可能である。
【0091】
(4)前述の各形態では、楽曲データQに応じた音響信号Vを生成したが、音響信号Vの生成は省略され得る。例えば、楽曲生成部34が生成した楽曲データQを記録媒体(例えば記憶装置24や他の記録媒体)に格納する構成や、楽曲生成部34が生成した楽曲データQを通信網から他の端末装置に送信する構成も採用され得る。
【0092】
(5)前述の各形態では、利用者からの指示に応じてコード進行データDCを生成したが、例えば相異なるジャンルに対応する複数のコード進行データDCを記憶装置に事前に格納し、複数のコード進行データDCの何れかを例えば利用者からの指示に応じて選択して楽曲生成処理に適用することも可能である。
【0093】
(6)前述の各形態では、記憶装置24に記憶された全部の旋律データDMを旋律選択処理S15での選択候補としたが、記憶装置24に記憶された複数の旋律データDMのうちの一部の旋律データDMのみを選択候補とすることも可能である。例えば、素材旋律の音符数や音域毎に旋律データDMを複数の集合(以下「旋律データ群」という)に区分し、複数の旋律データ群から選択された1個の旋律データ群を対象として楽曲生成処理(S11〜S17)を実行する構成が採用され得る。例えば、1個の旋律データ群を選択する方法は任意であるが、例えば以下の方法が好適に採用される。
【0094】
楽曲生成部34は、記憶装置24に格納された複数の旋律データDMの各々について、前述の各形態と同様の方法で、各単位区間Uの旋律評価値EBを算定し、K個の単位区間Uについて旋律評価値EBの平均値EB_aveを算定する。そして、楽曲生成部34は、複数の旋律データ群の各々について、旋律データ群に属する複数の旋律データDMの平均値EB_aveの平均値μおよび標準偏差σを算定し、複数の旋律データ群のうち、平均値μが最大で標準偏差σが最小(平均値EB_aveのバラツキが少ない)となる1個の旋律データ群を、旋律選択処理S15での選択候補として決定する。以上の構成によれば、旋律評価値EBの平均値EB_aveが高くてバラツキが少ない旋律データDMが選択候補とされるから、自然な楽曲を生成できるという効果は格別に顕著である。なお、以上の例示では旋律評価値EBを例示したが、旋律評価値EBを旋律評価値EAに置換することも可能である。
【符号の説明】
【0095】
100A,100B……楽曲生成装置、12……入力装置、14……放音装置、22……演算処理装置、24……記憶装置、32……情報取得部、34……楽曲生成部、42……楽音生成部、44……音声合成部、46……混合部。

【特許請求の範囲】
【請求項1】
複数の単位区間の各々について旋律が付与された楽曲を生成する装置であって、
相異なる旋律を指定する複数の旋律データを記憶する記憶手段と、
複数の文字で構成される指定文字列を取得する文字列取得手段と、
前記指定文字列を区分した複数の文字群を各単位区間に分配する文字割当手段と、
前記複数の単位区間の各々について、当該単位区間に対応する各文字群の文字数と前記旋律データが指定する旋律の音符数とに応じた旋律評価値を旋律データ毎に算定する文字列評価手段と、
前記複数の単位区間の各々について、当該単位区間における前記各旋律データの旋律評価値に応じて前記複数の旋律データの何れかを選択する旋律選択手段と
を具備する楽曲生成装置。
【請求項2】
前記複数の旋律データの各々は、当該旋律データが指定する旋律を複数の旋律区間に区分する境界点を指定する区間データを含み、
前記文字列評価手段は、前記複数の単位区間の各々について、当該単位区間に対応する各文字群と前記旋律データの各旋律区間とを対応させ、旋律区間毎の文字数に応じた旋律評価値を旋律データ毎に算定する
請求項1の楽曲生成装置。
【請求項3】
前記文字列評価手段は、前記複数の単位区間の各々について、当該単位区間に対応する文字群の個数と前記旋律データが指定する旋律の旋律区間の個数との相違が大きいほど前記旋律評価値が小さい数値となるように、前記各旋律データの旋律評価値を算定する
請求項2の楽曲生成装置。
【請求項4】
前記文字列評価手段は、前記複数の単位区間の各々について、当該単位区間に対応する文字数が前記旋律データの旋律の音符数を上回る場合に前記旋律評価値が小さい数値となるように、前記各旋律データの旋律評価値を算定する
請求項1から請求項3の何れかの楽曲生成装置。
【請求項5】
前記旋律選択手段が各単位区間について選択した旋律データが指定する旋律の音符数を調整し、調整後の旋律の各音符と当該単位区間内の各文字とを対応させる旋律調整手段
を具備する請求項1から請求項4の何れかの楽曲生成装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−101288(P2013−101288A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−246118(P2011−246118)
【出願日】平成23年11月10日(2011.11.10)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】