(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-02
(45)【発行日】2022-03-10
(54)【発明の名称】音楽処理システム、音楽処理プログラム、及び音楽処理方法
(51)【国際特許分類】
G10G 1/04 20060101AFI20220303BHJP
【FI】
G10G1/04
(21)【出願番号】P 2021192834
(22)【出願日】2021-11-29
(62)【分割の表示】P 2020125761の分割
【原出願日】2020-07-22
【審査請求日】2021-11-29
【早期審査対象出願】
(73)【特許権者】
【識別番号】520275010
【氏名又は名称】株式会社TMIK
(74)【代理人】
【識別番号】100180275
【氏名又は名称】吉田 倫太郎
(74)【代理人】
【識別番号】100161861
【氏名又は名称】若林 裕介
(74)【代理人】
【識別番号】100194836
【氏名又は名称】長谷部 優一
(72)【発明者】
【氏名】玉井 健二
【審査官】中村 天真
(56)【参考文献】
【文献】国際公開第2021/145213(WO,A1)
【文献】国際公開第2020/080239(WO,A1)
【文献】特開2020-003535(JP,A)
【文献】韓国公開特許第10-2019-0010135(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00- 3/04
G10H 1/00- 1/46
(57)【特許請求の範囲】
【請求項1】
1チャンネル以上のメロディと1チャンネル以上のコードで構成された楽曲の譜面が記述された楽曲データと前記楽曲データの楽曲を構成する要素の属性を示す構成情報とを含む入力データに基づいて機械学習した学習モデルを用いて、楽曲を生成する楽曲生成手段を有し、
前記楽曲生成手段は、
入力データに基づいて前記学習モデルを用いて入力データに対応する潜在変数の平均ベクトルと分散ベクトルを出力するエンコーダと、
前記平均ベクトルと分散ベクトルを処理して潜在変数を生成する潜在変数処理手段と、
前記学習モデルを用いて、前記潜在変数処理手段が生成した潜在変数に応じた入力データと同じ形式の出力データを出力するデコーダとを有し、
前記楽曲生成手段は、入力データと共に、生成される楽曲の性質を操作するための操作パラメータの入力を受け付け、
前記潜在変数処理手段は、前記潜在変数に、前記分散ベクトルと前記操作パラメータの組合せに応じたノイズを混入させる
ことを特徴とする音楽処理システム。
【請求項2】
前記楽曲生成手段が生成した生成楽曲を音楽的に調和した内容に整形する整形手段をさらに有することを特徴とする請求項1に記載の音楽処理システム。
【請求項3】
コンピュータを、
1チャンネル以上のメロディと1チャンネル以上のコードで構成された楽曲の譜面が記述された学習用楽曲データを有する学習用データに基づいて機械学習した学習モデルを用いて、楽曲を生成する楽曲生成手段として機能させ、
前記楽曲生成手段は、
入力データに基づいて前記学習モデルを用いて入力データに対応する潜在変数の平均ベクトルと分散ベクトルを出力するエンコーダと、
前記平均ベクトルと分散ベクトルを処理して潜在変数を生成する潜在変数処理手段と、
前記学習モデルを用いて、前記潜在変数処理手段が生成した潜在変数に応じた入力データと同じ形式の出力データを出力するデコーダとを有し、
前記楽曲生成手段は、入力データと共に、生成される楽曲の性質を操作するための操作パラメータの入力を受け付け、
前記潜在変数処理手段は、前記潜在変数に、前記分散ベクトルと前記操作パラメータの組合せに応じたノイズを混入させる ことを特徴とする音楽処理プログラム。
【請求項4】
音楽処理システムが行う音楽処理方法において、
前記音楽処理システムは、楽曲生成手段を備え、
前記楽曲生成手段は、1チャンネル以上のメロディと1チャンネル以上のコードで構成された楽曲の譜面が記述された学習用楽曲データを有する学習用データに基づいて機械学習した学習モデルを用いて、楽曲を生成し、
前記楽曲生成手段は、
入力データに基づいて前記学習モデルを用いて入力データに対応する潜在変数の平均ベクトルと分散ベクトルを出力するエンコーダと、
前記平均ベクトルと分散ベクトルを処理して潜在変数を生成する潜在変数処理手段と、
前記学習モデルを用いて、前記潜在変数処理手段が生成した潜在変数に応じた入力データと同じ形式の出力データを出力するデコーダとを有し、
前記楽曲生成手段は、入力データと共に、生成される楽曲の性質を操作するための操作パラメータの入力を受け付け、
前記潜在変数処理手段は、前記潜在変数に、前記分散ベクトルと前記操作パラメータの組合せに応じたノイズを混入させる
ことを特徴とする音楽処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音楽処理装置、音楽処理プログラム、及び音楽処理方法に関し、例えば、新たな楽曲の作曲に適用し得る。
【背景技術】
【0002】
従来、楽曲を作曲するための知識を有しないユーザについでも、容易に楽曲を生成することを支援するシステムとして、例えば、特許文献1の記載技術が存在する。
【0003】
特許文献1に記載されたシステムでは、ユーザの操作により、原曲に対するアレンジの程度を変えながら原曲の編曲を支援するシステムである。特許文献1に記載されたシステムでは、発音タイミングを除いた3つの属性(音高、音長、音の大きさ)のうちの少なくとも1つの属性によって音の状態を定義するとき、或る状態から次の状態への遷移確率を設定した遷移確率データを複数保持している。そして、特許文献1に記載されたシステムでは、選択する遷移確率データを選択することによって原曲をアレンジの程度を変えることができるため、音楽に関する知識を殆ど有しない利用者であっても、アレンジの程度を変えながら、原曲の編曲を行うことができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の記載技術において、遷移確率データの属性からは発音タイミングが除かれているため、あくまで原曲をアレンジしたというだけで、作曲しているとは言い難い。
【0006】
そのため、原曲を入力としつつ、新たに作曲された曲を生成することができる音楽処理システム、音楽処理プログラム、及び音楽処理方法が望まれている。
【課題を解決するための手段】
【0007】
第1の本発明の音楽処理システムは、1チャンネル以上のメロディと1チャンネル以上のコードで構成された楽曲の譜面が記述された楽曲データと前記楽曲データの楽曲を構成する要素の属性を示す構成情報とを含む入力データに基づいて機械学習した学習モデルを用いて、楽曲を生成する楽曲生成手段を有し、前記楽曲生成手段は、入力データに基づいて前記学習モデルを用いて入力データに対応する潜在変数の平均ベクトルと分散ベクトルを出力するエンコーダと、前記平均ベクトルと分散ベクトルを処理して潜在変数を生成する潜在変数処理手段と、前記学習モデルを用いて、前記潜在変数処理手段が生成した潜在変数に応じた入力データと同じ形式の出力データを出力するデコーダとを有し前記楽曲生成手段は、入力データと共に、生成される楽曲の性質を操作するための操作パラメータの入力を受け付け、前記潜在変数処理手段は、前記潜在変数に、前記分散ベクトルと前記操作パラメータの組合せに応じたノイズを混入させることを特徴とする。
【0008】
第2本発明の音楽処理プログラムは、コンピュータを、1チャンネル以上のメロディと1チャンネル以上のコードで構成された楽曲の譜面が記述された学習用楽曲データを有する学習用データに基づいて機械学習した学習モデルを用いて、楽曲を生成する楽曲生成手段として機能させ、前記楽曲生成手段は、入力データに基づいて前記学習モデルを用いて入力データに対応する潜在変数の平均ベクトルと分散ベクトルを出力するエンコーダと、前記平均ベクトルと分散ベクトルを処理して潜在変数を生成する潜在変数処理手段と、前記学習モデルを用いて、前記潜在変数処理手段が生成した潜在変数に応じた入力データと同じ形式の出力データを出力するデコーダとを有し前記楽曲生成手段は、入力データと共に、生成される楽曲の性質を操作するための操作パラメータの入力を受け付け、前記潜在変数処理手段は、前記潜在変数に、前記分散ベクトルと前記操作パラメータの組合せに応じたノイズを混入させることを特徴とする。
【0009】
第3の本発明は、音楽処理システムが行う音楽処理方法において、前記音楽処理システムは、楽曲生成手段を備え、前記楽曲生成手段は、1チャンネル以上のメロディと1チャンネル以上のコードで構成された楽曲の譜面が記述された学習用楽曲データを有する学習用データに基づいて機械学習した学習モデルを用いて、楽曲を生成し、前記楽曲生成手段は、入力データに基づいて前記学習モデルを用いて入力データに対応する潜在変数の平均ベクトルと分散ベクトルを出力するエンコーダと、前記平均ベクトルと分散ベクトルを処理して潜在変数を生成する潜在変数処理手段と、前記学習モデルを用いて、前記潜在変数処理手段が生成した潜在変数に応じた入力データと同じ形式の出力データを出力するデコーダとを有し、前記楽曲生成手段は、入力データと共に、生成される楽曲の性質を操作するための操作パラメータの入力を受け付け、前記潜在変数処理手段は、前記潜在変数に、前記分散ベクトルと前記操作パラメータの組合せに応じたノイズを混入させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、原曲を入力としつつ、新たに作曲された曲を生成することができる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施形態に係る音楽処理装置の機能的構成について示したブロック図である。
【
図2】第1の実施形態に係る生成処理部に適用するAIの学習時の構成例について示したブロック図である。
【
図3】第1の実施形態に係る生成処理部における楽曲生成時の構成例について示したブロック図である。
【
図4】第1の実施形態に係る入力楽曲の例をスコア形式の譜面で表した例について示している。
【
図5】第1の実施形態に係る入力楽曲の例におけるメロディチャンネルの譜面をID(数値)に変換した内容を表形式で示した図である。
【
図6】第1の実施形態に係る入力楽曲の例におけるコードチャンネルの譜面をID(数値)に変換した内容を表形式で示した図である。
【
図7】第1の実施形態に係るメロディチャンネルの各音符についてIDに変換するための変換表について示した図である。
【
図8】第1の実施形態に係るコードチャンネルの各コードについてIDに変換するための変換表について示した図である。
【
図9】第1の実施形態に係る整形処理部が行う整形処理の流れについて示したフローチャートである。
【
図10】第1の実施形態で処理される整形前楽曲(生成楽曲)の例について示した図である。
【
図11】第1の実施形態で処理される整形前楽曲の例におけるコード進行について示した図である。
【
図12】第1の実施形態に係る整形処理部による各調のカウント結果について示した図である。
【
図13】第1の実施形態で処理されるコード整形済楽曲の例について示した図である。
【
図14】第1の実施形態で処理されるメロディ整形済楽曲の例について示した図である。
【
図15】第1の実施形態で[操作パラメータ=0]とした場合における生成楽曲の例について示した図である。
【
図16】第1の実施形態で[操作パラメータ=10]とした場合における生成楽曲の例について示した図である。
【
図17】第1の実施形態で[操作パラメータ=20]とした場合における生成楽曲の例について示した図である。
【
図18】第2の実施形態に係る音楽処理装置の機能的構成について示したブロック図である。
【
図19】第2の実施形態に係る生成処理部における楽曲生成時の構成例について示したブロック図である。
【発明を実施するための形態】
【0012】
(A)第1の実施形態
以下、本発明による音楽処理システム、音楽処理プログラム、及び音楽処理方法の第1の実施形態を、図面を参照しながら詳述する。
【0013】
(A-1)第1の実施形態の構成
図1は、この実施形態の音楽処理システム10の全体構成を示すブロック図である。
【0014】
音楽処理システム10は、新たに楽曲を生成して出力するシステムである。
【0015】
音楽処理システム10は、全てハードウェア(例えば、専用チップ等)により構成するようにしてもよいし一部又は全部についてソフトウェア(プログラム)として構成するようにしてもよい。音楽処理システム10は、例えば、プロセッサ及びメモリを有するコンピュータにプログラム(実施形態の音楽処理プログラムを含む)をインストールすることにより構成するようにしてもよい。また、音楽処理システム10を構成するコンピュータの数は限定されないものであり、複数台のコンピュータにプログラムやデータを分散して配置することにより実現するようにしてもよい。
【0016】
音楽処理システム10は、入力楽曲データ、構成情報を含むデータ(以下、「入力データ」とも呼ぶ)と操作パラメータが入力されると、その入力データを利用して新たな楽曲を生成して出力する処理を行う。以下では、音楽処理システム10が出力する楽曲データを、「出力楽曲データ」と呼ぶものとする。
【0017】
次に、入力楽曲データ/出力楽曲データについて説明する。
【0018】
この実施形態において、入力楽曲データ/出力楽曲データのデータ形式(入出力される音楽データの形式)は、スタンダードMIDIファイル(Standard Musical Instrument Digital Interface File;以下、「SMF」と呼ぶ)の形式であるものとして説明するが入力楽曲データ/出力楽曲データに適用するデータ形式はスタンダードMIDIファイルの形式に限定されず種々の演奏情報(譜面データ)の形式のデータを適用することができる。また、音楽処理システム10において、入力楽曲データ/出力楽曲データに適用するデータ形式として、SMFのような演奏情報の形式ではなく、WAVやMP3等の直接的な音響信号の形式であってもよい。音楽処理システム10において、入力楽曲データ/出力楽曲データが音響信号の形式である場合には、入力される入力楽曲データをSMF等の演奏情報の形式のデータに変換して処理し、出力楽曲データとして音響信号の形式に変換したデータを出力することになる。音楽処理システム10において音響信号の形式のデータを演奏情報の形式のデータに変換する処理、及び演奏情報の形式のデータを音響信号の形式のデータに変換する処理(音楽再生処理)については種々の処理を適用することができるので、詳細については説明を省略する。
【0019】
なお、この実施形態では、入力楽曲データと出力楽曲データは、同じデータ形式(SMFの形式)であるものとして説明するが、それぞれ異なる形式としてもよいことは当然である。
【0020】
この実施形態において、音楽処理システム10で処理される楽曲の単位(例えば、長さやチャンネル(MIDI上のチャンネル)の数等)は、限定されないものである。すなわち、この実施形態において、音楽処理システム10で処理される楽曲の単位の長さは、固定長(例えば、所定の小節数)としてもよいし可変長としてもよい。この実施形態では、音楽処理システム10で処理される楽曲の単位の長さは4/4拍子の換算で8小節(32拍;2/2拍子の場合は16小節)の固定長であるものとして説明する。また、この実施形態において、音楽処理システム10で処理される楽曲のチャンネル数はメロディ1チャンネルとコード(メロディに対する伴奏の和音)1チャンネルの合計2チャンネルで構成されるものとして説明する。以下では、楽曲を構成するメロディのチャンネルを「メロディチャンネル」、コードのチャンネルを「コードチャンネル」と呼ぶものとする。なお、音楽処理システムで処理される楽曲においてメロディチャンネル及びコードチャンネルは、それぞれ複数(2以上)としてもよい。
【0021】
次に、「構成情報」について説明する。
【0022】
構成情報は、入力楽曲における各区間の要素の属性(種類)を示すパラメータである。この実施形態の例では、入力楽曲の要素としてイントロ、Aメロ、Bメロ又はサビのいずれかの属性を適用するものとする。適用可能な要素の属性は、上記に限らず種々の形式(例えば、第1主題、第2主題等の形式)を適用するようにしてもよい。
【0023】
構成情報は、入力楽曲データとは別のデータとして構成もよいが、SMFのマーカ(marker)に構成情報に対応する情報を埋め込むことで実現するようにしてもよい。SMFでは、ユーザにより任意のテキストを書き込むことが可能なフィールドとしてマーカが用意されている。そこで、入力楽曲データ(SMFデータ)のマーカに、構成情報に対応するテキスト(例えば、イントロ、Aメロ、Bメロ、サビのようなテキスト)を書き込む形式としてもよい。
【0024】
例えば、入力楽曲データとして供給されたSMFデータにおいて、1小節目の先頭のタイミング(ポジション)のマーカに「イントロ」、5小節目の先頭のタイミングのマーカに「Aメロ」と設定されていた場合、音楽処理システム10では、1~4小節目の区間を「イントロ」と認識し、5小節目以後(5~8小節目)の区間をAメロと認識する。また、例えば、入力楽曲データとして供給されたSMFデータにおいて、1小節目の先頭のタイミング(ポジション)のマーカに「Aメロ」設定されており、それ以外のマーカが設定されていない場合、音楽処理システム10では、全ての区間(1~8小節目)を「Aメロ」と認識する。以上のように、SMFデータでは、区間ごとの要素の属性をマーカに書き込むことが可能となっている。
【0025】
SMFデータとは別に構成情報を記述する場合の具体的な形式は限定されないものであり、入力楽曲の区間ごとの要素の属性が記述されていればよい。例えば、SMFのマーカと同様にタイミング(ポジション)と要素の属性を示す情報(例えば、Aメロ、Bメロ、イントロに対応するテキストや数値)を対とした情報の列により構成情報を記述するようにしてもよい。また、入力楽曲の全区間について同じ属性を適用する場合は、構成情報にはタイミングに関する情報は必要無く、単に属性に対応するパラメータやテキストを設定するようにしてもよい。
【0026】
次に、「操作パラメータ」について説明する。
【0027】
操作パラメータは、音楽処理システム10において、ユーザから生成される楽曲の特性の操作を受け付けるためのインタフェースとして利用可能なパラメータである。この実施形態において、操作パラメータは1つの数値(1次元のパラメータ)で表されるものとして説明する。ただし、操作パラメータは、限定されないものであり、複数の数値(多次元のパラメータ)で表すようにしてもよいし、数値以外の形式(例えば、TRUE/FALSEのようなフラグ形式)で表わすようにしてもよい。操作パラメータの詳細については後述する。
【0028】
次に、音楽処理システム10の内部構成について説明する。
【0029】
図1に示すように、音楽処理システム10は、ベクトル化処理部101、生成処理部102、整形処理部103、及び復元処理部104を有している。
【0030】
ベクトル化処理部101は、入力楽曲データ及び構成情報を含むデータについて後段の生成処理部102での処理に適した形式のベクトルデータ(以下、「入力楽曲ベクトルデータ」と呼ぶ)に変換する処理を行う。そして、ベクトル化処理部101は、取得した入力楽曲ベクトルデータを生成処理部102に供給する。入力楽曲ベクトルデータの具体的な形式については後述する。
【0031】
生成処理部102は、AIを用いた生成モデルの処理により、入力楽曲ベクトルデータと操作パラメータに基づき新たな楽曲(以下、「生成楽曲」と呼ぶ)に対応するベクトルデータ(入力楽曲ベクトルデータと同様の形式のデータ;以下「生成楽曲ベクトルデータ」と呼ぶ)を生成して出力する。生成処理部102は、生成楽曲ベクトルデータを整形処理部103に供給する。生成処理部102の詳細構成については後述する。
【0032】
整形処理部103は、生成楽曲ベクトルデータの楽曲について、音楽的に調和した内容に整形する処理(例えば、全体的な調の統一や、メロディとコードとの間のスケールの調整等)を行い、「整形済楽曲ベクトルデータ」として出力する。
【0033】
生成楽曲ベクトルデータの楽曲は、AI(生成処理部102)から出力されたままの内容であるため、調が揃っていない場合や、メロディとコードとの間でスケールが合っていない場合等、音楽的(音楽理論的)に見て調和していない場合があり得る。そこで、音楽処理システム10では、整形処理部103を備えることで、音楽的に整形された楽曲を出力するようにしている。なお、AI(生成処理部102)から出力される生成楽曲ベクトルデータについて整形することが必要でない場合(例えば、ユーザ側で必要でない場合や、最初から音楽的に整った内容が生成される場合)には、整形処理部103の構成を除外して、生成楽曲ベクトルデータをそのまま復元処理部104に供給するようにしてもよい。
【0034】
復元処理部104は、整形済楽曲ベクトルデータについて、所定の形式の音楽データ(この実施形態では、SMFの形式)に復元(変換)して「出力楽曲データ」として出力する。
【0035】
次に、生成処理部102に適用するAIの構成例について説明する。
【0036】
生成処理部102では、ディープラーニングベースで機械学習した学習モデルをもとにAIが構成されている。具体的には、生成処理部102では、VAE(Variational AutoEncoder)の枠組みで学習を行った学習モデルを取得する。
【0037】
生成処理部102に用いられるAIを構成するプラットフォーム(ミドルウェア)については限定されないものであり種々のプラットフォームを適用することができる。この実施形態の例では、生成処理部102は、Python(登録商標)及びその周辺のライブラリを用いて構成されるものとして以下の説明を行う。
【0038】
図2は、生成処理部102に適用するAIの学習時(学習モデルを取得する際)の構成例について示した図である。
【0039】
図2に示すように、生成処理部102では、学習時において少なくとも、エンコーダ201(符号化器)、デコーダ202(復号器)、ディスクリミネータ203(識別器)、及び潜在変数処理部204が動作する。
【0040】
エンコーダ201は、入力楽曲ベクトルデータに基づいて、潜在変数の平均ベクトルμと確立分布を示す分散ベクトルσを取得して出力する。
【0041】
学習時において、潜在変数処理部204は、VAEの枠組みに従い、平均ベクトルμに対して標準偏差σに応じたノイズを加算した値を潜在変数z(潜在変数のサンプル)として取得してデコーダ202に供給する。このとき、潜在変数処理部204は、例えば、以下の(1)式に従って潜在変数zを取得するようにしてもよい。例えば、(1)式において、I=1としてもよい。
z=μ+εσ(ε~N(0,I)) …(1)
【0042】
例えば、潜在変数zが256次元のベクトルである場合、潜在変数処理部204が学習時において潜在変数zを取得するためのソースコード(Pythonで記述した場合のコード)は、「μ+numpy.random.normal(loc=0.0, scale=1*σ,size=256)」とすることができる。
【0043】
デコーダ202は潜在変数zを復元処理したベクトルデータ(以下、「復元楽曲ベクトルデータ」と呼ぶ)を出力する。
図2に示すVAEの枠組みにおいては、エンコーダ201及びデコーダ202によりジェネレータ(生成器)が構成されている。ディスクリミネータ203は、復元楽曲ベクトルデータがジェネレータにより生成されたデータかそうでないかを識別する。生成処理部102では、ジェネレータは、ディスクリミネータ203にジェネレータが生成したベクトルデータであることを見破られないように学習が行われる。
図2では、説明を簡易とするため図示を省略しているが、
図2の学習時には、ディスクリミネータ203の識別結果や、LOSS(入力楽曲ベクトルデータと復元楽曲ベクトルデータとの差分)を用いてジェネレータが学習処理を行うことになる。
【0044】
生成処理部102の学習時には、ベクトル化処理部101から学習に用いられるサンプル(入力楽曲ベクトルデータ)が逐次供給されるようにしてもよい。生成処理部102の学習に用いられるサンプル数は限定されないものであるが、1000~3000程度のサンプル数を適用するようにしてもよい。また、生成処理部102の学習において、各サンプル(1つの入力楽曲ベクトルデータ)について1000回転程度の学習処理(1000回程度、潜在変数zに基づき復元楽曲ベクトルデータを生成するまでの学習処理)を行うようにしてもよい。
【0045】
また、生成処理部102の学習に用いるサンプル(入力楽曲ベクトルデータ)の元となる楽曲の種類(例えば、ポップス、ジャズ等)やアーティスト等について比率を変化することにより、ジェネレータで生成される楽曲の特徴についても変化させることができる。基本的にVAEの枠組みによりAIの学習を行う場合、潜在変数zの分布する範囲は学習に用いたサンプルに応じた分布となるためである。
【0046】
この実施形態では、潜在変数zは、256次元の固定サイズであるものとするが、zのサイズはこれに限定されないものである。潜在変数zのサイズは、処理されるベクトルデータ(入力楽曲ベクトルデータ/復元楽曲ベクトルデータ)のサイズに応じて変更することが望ましい。
【0047】
図3は、生成処理部102に適用するAIで学習したモデルを用いて生成楽曲ベクトルデータを生成する時(以下、「楽曲生成時」と呼ぶ)の構成例について示した図である。
【0048】
図3では、上述の
図2と同一部分又は対応する部分に、同一の符号又は対応する符号を付している。
【0049】
図3に示すように、生成処理部102では、楽曲生成時において少なくとも、エンコーダ201、デコーダ202、及び潜在変数処理部204が動作する。
【0050】
エンコーダ201とデコーダ202自体の動作は学習時と同様であるため詳しい説明を省略する。
【0051】
潜在変数処理部204は、楽曲生成時においては、分散ベクトルσ及び操作パラメータcに応じたノイズを潜在変数zに混入(加算)させる点で学習時と異なる。
【0052】
具体的には、潜在変数処理部204は、楽曲生成時においては、上記の(1)式において、I=cとすることで、ノイズを潜在変数zに操作パラメータcを反映させた値に補正することができる。操作パラメータcについて設定可能な範囲は限定されないものであり、ユーザにより調整可能としてもよい。例えば、操作パラメータcとしては、0~10の範囲で設定可能とするようにしてもよいし、0~50の範囲で所定のグリッド幅(例えば、10)ずつ変更可能とするようにしてもよい。また、潜在変数処理部204において、操作パラメータcの値についてユーザから入力を受け付ける方式(例えば、入力を受け付けるデバイスや操作画面の構成)については限定されないものである。
【0053】
例えば、潜在変数zが256次元のベクトルである場合、潜在変数処理部204が、楽曲生成時に潜在変数zを取得するためのソースコード(Pythonで記述した場合のコード)は、「μ+numpy.random.normal(loc=0.0, scale=c*σ,size=256)」とすることができる。
【0054】
(A-2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態における音楽処理システム10の動作(実施形態に係る音楽処理方法)を説明する。
【0055】
まず、ベクトル化処理部101の処理の詳細について説明する。
【0056】
上述の通り、音楽処理システム10では、2チャンネルで8小節(32拍)の楽曲単位で処理される。
【0057】
図4は、入力楽曲の例をスコア形式の譜面で表した例について示している。
【0058】
なお、
図4に示す入力楽曲は、アレクサンドル・ボロディン作曲の「韃靼人の踊り」(ポロヴェツ人の踊り)からの一節である。
【0059】
図4では、入力楽曲のメロディチャンネルとコードチャンネルの譜面を、スコア形式で表している。なお、ここでは、各楽曲のチャンネルの楽器(MIDI上の楽器名)はピアノ系のものであるものとする。
【0060】
まず、ベクトル化処理部101は、入力楽曲データの各チャンネルの音符の配列について48分音符単位(12分の1拍単位)で符号化(数列化)する。ここでは、入力楽曲データは8小節(32拍)であるので、各チャンネルについて符号化すると、8×48=384個の符号列が発生することになる。ここでは、各符号は、1つの数値(以下、単に「ID」と呼ぶ)で表されるものとする。
【0061】
図5は、
図4に示す入力楽曲のうちメロディチャンネルの譜面をIDに変換(符号化)した内容を表形式で図示している。
【0062】
図6は、
図4に示す入力楽曲のうちコードチャンネルの譜面をIDに変換(符号化)した内容を表形式図示している。
【0063】
図5、
図6の表では、1列で1小節(4拍)分のID(48個のIDを設定するスロット)が配置されている。
【0064】
図7は、メロディチャンネルの各音符についてIDに変換するための変換表の例について示している。
【0065】
図5、
図7に示すように、メロディチャンネルでは、各音符の頭のタイミング(スロット)に、ピッチの高さに対応するID(2以後のID)が設定され、休符の頭のタイミング(スロット)には「1」のIDが設定されている。また、
図5、
図7に示すように、メロディチャンネルでは、音符又は休符の頭のタイミング以外のタイミング(スロット)に、直前の状態を継続するための「0」の符号が設定される。具体的には、「0」のIDは、
図7に示すように、「直前のIDの状態が継続している状態」、「直前のIDの状態が継続している状態。」、「直前のIDが0の場合は、さらにその直前の状態が継続している状態。」、「直前のIDが1の場合は、音が鳴っていない状態。」、「それ以外の場合は、該当するピッチの音が鳴り続けている状態。」という処理を意味している。
【0066】
図8は、コードチャンネルの各コードについてIDに変換するための変換表について示している。
【0067】
図6、
図8に示すように、コードチャンネルでは、各コード(和音)の頭のタイミング(スロット)に、コードの種類(和音の組合せ)に対応するID(2以後のID)が設定され、休符の頭のタイミング(スロット)には「1」のIDが設定される。コードチャンネルでは、ピッチの最低音は、MIDIにおける国際式のC2、最高音はB5に相当する音となる。また、
図6、
図8に示すように、コードチャンネルでは、音符又は休符の頭のタイミング以外のタイミング(スロット)に、直前の状態を継続するための「0」の符号が設定される。具体的には、「0」の符号は、
図8に示すように、「直前のIDの状態が継続している状態」、「直前のIDの状態が継続している状態。」、「直前のIDが0の場合は、さらにその直前の状態が継続している状態。」、「直前のIDが1の場合は、音が鳴っていない状態。」、「それ以外の場合は、該当するコードの音が鳴り続けている状態。」という処理を意味している。
【0068】
以上のように、ベクトル化処理部101は、入力楽曲データの各チャンネルについて数列に変換することで、各チャンネルに対応するOne-Hot Vector(AIの処理に好適なデータ形式のデータ)を得ることができる。以下では、各チャンネルについて符号化(ID化/数列化/One-Hot Vector化)したデータの塊を、「符号化済入力楽曲データ」と呼ぶものとする。符号化済入力楽曲データには、メロディチャンネルの数列(384のIDの列/符号列/One-Hot Vector)と、コードチャンネルの数列(384個のIDの列/数列/One-Hot Vector)が含まれるデータとなる。以下では、メロディチャンネルの数列の各数値をMi(iは1~384のスロット番号(時系列の順序)を示す)、コードチャンネルの数列の各数値をCiと表すものとする。具体的には、メロディチャンネルの数列をM1、M2、M3、…、M384と表し、コードチャンネルの数列をC1、C2、C3、…、C384と表すものとする。
【0069】
次に、ベクトル化処理部101が構成情報を符号化(数列化)する処理について説明する。
【0070】
上述の通り、ベクトル化処理部101では構成情報により、入力楽曲の区間ごとの要素の属性(例えば、イントロ、Aメロ、Bメロ、サビ等)を把握することができる。そこで、ベクトル化処理部101は、入力楽曲の各スロットに対応する要素の属性を把握し、各スロットに要素(要素の属性)に対応する数値(符号)を設定した数列を取得する。
【0071】
各要素の属性に対応する数値(符号)の割り振りは限定されないものである。この実施形態では、各要素に対応する数値は0~50の範囲で割り振られているものとする。具体的には、この実施形態の例では、Aメロに対応する数値として10~19のいずれか、Bメロに対応する数値として20~29のいずれか、サビに対応する数値として30~39のいずれか、イントロに対応する数値として40~49のいずれかが割り振られているものとして説明する。例えば、ベクトル化処理部101では、Aメロに対応する数値を10、Bメロに対応する数値を20、サビに対応する数値を30、イントロに対応する数値を40とするようにしてもよい。要素の属性が異なる場合は、ある程度数値の間隔をあけることでAIに要素の属性による特徴を区別させやすくすることができる。また、入力楽曲で、同じ要素の区間が複数発生する場合(例えば、Aメロ、Bメロ、Aメロと続くような場合)、ベクトル化処理部101は、重複して発生する区間について異なる数値を設定するようにしてもよい。例えば、Aメロ、Bメロ、Aメロと続くような場合、1回目のAメロの区間については30、2回目のAメロの区間については31を設定するようにしてもよい。なお、この実施形態では、構成要素に対応するパラメータは1次元としているが多次元で構成するようにしてもよい。例えば、構成要素に対応するパラメータとして3つのパラメータF、G、Hを設定したと仮定した場合、Aメロを「F=1、G=0、H=0」、Bメロを「F=0、G=1、H=0」、サビを「F=0、G=0、H=1」と定義するようにしてもよい。
【0072】
以上のように、ベクトル化処理部101では、構成情報に基づき、入力楽曲の各スロット(384個のスロット)に対して、要素の属性に対応する数値を設定することができる。以下では、構成情報に基づく数列の各数値をEiと表すものとする。具体的には、構成情報に基づく各スロットの数列をE1~E384と表すものとする。
【0073】
そして、ベクトル化処理部101は、符号化済入力楽曲データを構成する数列(メロディチャンネル及びコードチャンネルの数列)と構成情報に基づく数列についてAI処理に適したベクトルデータ(行列式)に組み立てる処理を行う。
【0074】
この場合、ベクトル化処理部101が生成する以下の(2)式のような行列式をベクトルデータとして取得するようにしてもよい。(2)式では、1スロット分(48分音符分)のデータを1行とした行列式となっている。つまり、(2)式において、i行目(iは1~384のいずれかの整数)は、(Mi、Ci、Ei)で構成されている。
【数1】
【0075】
なお、この実施形態では、音楽処理システム10のAI(生成処理部102)で処理されるベクトルデータ(入力楽曲ベクトルデータ、復元楽曲ベクトルデータ等)は、全て(2)式のような形式であるものとして説明する。ベクトルデータの形式は、(2)に限らず、同じ数列で構成されていれば具体的な配列の順序や各行の構成についてはその他の形式(例えば、24分音符単位で1行を構成する形式)としてもよい。
【0076】
また、上述の通り、この実施形態において、入力楽曲ベクトルデータにおいてメロディチャンネルとコードチャンネルの数列は、48部音符単位で数列化(ID化)されてはいるが、実質的には、元の入力楽曲データ(SMFデータ)と同様に譜面(演奏情報)の形式のデータであると言える。したがって、音楽処理システム10において、最初から入力楽曲データとして、メロディチャンネルとコードチャンネルのデータについて数列化されたデータの供給を受けるようにしてもよい。また、音楽処理システム10において、最初から入力楽曲ベクトルデータの形式で、供給を受けるようにしてもよい。その場合、音楽処理システム10において、ベクトル化処理部101を除外するようにしてもよい。
【0077】
次に、整形処理部103による整形処理の詳細について説明する。
【0078】
上述の通り、整形処理部103は、生成楽曲ベクトルデータについて整形処理を行って整形済楽曲ベクトルデータとして出力する。また、以下では、生成楽曲ベクトルデータに対応する楽曲を「整形前楽曲」と呼び、整形済楽曲ベクトルデータの楽曲を「整形済楽曲」と呼ぶものとする。
【0079】
この実施形態では、整形前楽曲は8小節(32拍)程度の長さであるため、整形処理部103は、整形前楽曲に対し、整形処理として全体にわたって調を統一する処理を行うものとする。なお、整形処理部103は、整形前楽曲を複数の区間に分け、それぞれの区間について別個に統一調を決定して、その後の整形処理を行うようにしてもよい。
【0080】
この実施形態では、整形処理部103は、ベクトルデータの状態(生成楽曲ベクトルデータ)で整形処理を行うものとして説明するが、整形処理部103と復元処理部104の順序を入れ替えて、SMFデータの形式に復元してから整形処理を行うようにしてもよい。
【0081】
図9は、整形処理部103が行う整形処理の流れについて示したフローチャートである。
【0082】
まず、整形処理部103は、整形前楽曲について統一する調として適した調を推定する処理(以下、「調推定処理」と呼ぶ)を行い、調推定処理の結果に従って統一する調(以下、「統一調」と呼ぶ)を決定する(S101)。
【0083】
次に、整形処理部103は、整形前楽曲のコードチャンネルについて統一調で一般的に使用されるコードのみになるように整形する処理(以下、「コード整形処理」と呼ぶ)を行う(S102)。以下では、整形前楽曲についてコード整形処理を行った後の楽曲を「コード整形済楽曲」と呼ぶものとする。
【0084】
次に、整形処理部103は、コード整形済楽曲のメロディチャンネルの各音符について、コードチャンネルのコードと調和するように整形する処理(以下、「メロディ整形処理」と呼ぶ)を行い、整形済楽曲として取得する(S103)。具体的には、整形処理部103は、コード整形済楽曲のメロディチャンネルの各音符について、同時に鳴っている(同じ時系列で鳴っている)コードチャンネルのコード(以下、「対応コード」と呼ぶ)に対応するスケール(以下、「コードスケール」と呼ぶ)に合うようにピッチを調整(整形)する処理を行う。
【0085】
次に、ステップS101の調推定処理の詳細について説明する。
【0086】
整形処理部103は、調推定処理において、整形前楽曲について、全24調((長調×12音)+(短調×12音)=24)のうち、どの調が統一調として適しているかを推定する。
【0087】
この実施形態では、整形処理部103は、整形前楽曲に含まれるコードが、各調で使用されるコードとどれだけ一致するかを数え上げ、最もそれらのコードとの一致数が多い調を、最適な統一調として推定(決定)する。
【0088】
図10は、整形前楽曲(生成楽曲)の例についてスコア形式で示した図である。
【0089】
図11は、
図10に示す整形前楽曲におけるコード進行について示した図である。
【0090】
図11では、整形前楽曲を構成する14個の各コードに対して先頭から順に、C01~C14という符号を付している。そして、
図10では、コードC01~C14に対して、コード名を付記している。
図10に示すように、コードC01~C14のコードは[DM7],[A7],[Am7],[E],[Bm7],[Esus4],[D7],[B7],[Am7],[E7],[Em7],[A7],[Em],[Em7]となっている。
【0091】
整形処理部103は、整形前楽曲の各コードを構成する各音について、各調(全24調の各調)のダイアトニックコードにどのくらい含まれているかをカウントする。このときの整形処理部103によるカウント結果を
図12に示す。
【0092】
図12は、整形処理部103が、各調のダイアトニックコードが、整形前楽曲の各コードを構成する各音にいくつ含まれているかをカウントした結果について示した図である。
【0093】
図12の表では、調ごとに含まれるダイアトニックコードの数(以下、「カウント数」と呼ぶ)を示している。
【0094】
例えば、
図11、
図12に示すように、Eminorのダイアトニックコードは、計8つのコード(C03[Am7],C05[Bm7],C07[D7],C08[B7],C09[Am7],C11[Em7],C13[Em],C14[Em7])に含まれることになるので、Eminorのカウント数は8となる。
【0095】
そして、この場合、
図12に示すように、Eminorのカウント数が8と最も多くなっている。したがって、この場合、整形処理部103は、当該整形前楽曲に対する統一調としてEminorが最適であると推定することになる。
【0096】
次に、ステップS102のコード整形処理の詳細について説明する。
【0097】
上述の通り、整形処理部103は、コード整形処理において、整形前楽曲のコードチャンネルについて統一調で一般的に使用されるコードのみになるようにコード整形処理を行って、コード整形済楽曲を生成する。
【0098】
まず、整形処理部103は、整形前楽曲のコードチャンネルを構成する各コードについて、統一調で使用されるコードと一致するコード(以下、「一致コード」と呼ぶ)であるか、そうでないコード(以下、「不一致コード」と呼ぶ)であるかを判断する。
【0099】
そして、整形処理部103は、整形前楽曲のコードチャンネルを構成する各コードのうち、不一致コードについて統一調のダイアトニックコード(以下、「統一調コード」と呼ぶ)となるようにコードを調整(整形)する。
【0100】
このとき、整形処理部103が、各不一致コードについて修正する先の統一調コード(以下、「調整先コード」と呼ぶ)を選択する方法については限定されないものであるが、以下のようなポリシーで選択するようにしてもよい。
【0101】
基本的に、整形処理では、変更する量(ピッチを変更する音符の数)はできるだけ少ないことが望ましい。整形処理部103は、以下のポリシーに従って調整先コードを選択するようにしてもよい。
【0102】
[第1のポリシー]
各不一致コードについて、統一調コードのうち最も一致する構成音の多いものを調整先コードとして選択する。
【0103】
[第2のポリシー]
第1のポリシーに該当する統一調コードが複数存在する不一致コードについては、当該不一致コードと最も構成音数の差が小さい(最も一致する構成音数が多い)統一調コードを調整先コードとして選択する。
【0104】
[第3のポリシー]
第2のポリシーに該当する統一調コードも複数存在する不一致コードについては、実装内のインデックス(例えば、実装上付与される各コードの管理番号(ID番号))が最も若いコードを調整先コードとして選択する。なお、この場合は、複数の統一調コードから、ランダムで選択したコードを調整先コードとしてもよい。
【0105】
図10に示す整形前楽曲において、統一調をEminorとすると、一致コードは、C03[Am7],C05[Bm7],C07[D7],C08[B7],C09[Am7],C11[Em7],C13[Em],C14[Em7]であり、不一致コードは、C01[DM7],C02[A7]、C04[E],C06[Esus4],C10[E7],C12[A7]となる。
【0106】
図13は、
図10に示す整形前楽曲についてコード整形処理を行った結果(コード整形済楽曲)について示した図である。
【0107】
図13では、当該整形前楽曲において、統一調をEminorとし、上記のポリシーに従って、不一致コードC01[DM7],C02[A7]、C04[E],C06[Esus4],C10[E7],C12[A7]を統一調コードに修正した結果について示している。
【0108】
例えば、1小節目のコードC01[DM7](構成音DF#AC#)について上記のポリシーにあてはめると、Eminorのダイアトニックコードで最も一致する構成音が多い統一調コードであるF#m7b5(構成音F#ACE)に変更することになる。
【0109】
次に、ステップS103のメロディ整形処理の詳細について説明する。
【0110】
上述の通り、メロディ整形処理において、整形処理部103は、コード整形済楽曲のメロディチャンネルの各音符について、対応コードのスケール(以下、「対応コードスケール」と呼ぶ)の構成音となるように調整(整形)する処理を行う。以下では、メロディチャンネルにおいて、対応コードスケールの構成音でないために、調整対象となる音符を「調整対象音符」と呼ぶものとする。
【0111】
なお、対向コードスケールは、基本的に対応コードのスケール(例えば、対応コードがAm7であれば対応コードスケールはAminorのスケールとなる)が、対応コードがadd9コードの場合は、当該対応コードのルート音に対応するリディアンスケールを対応コードスケールとして取り扱うようにしてもよい。
【0112】
このとき、整形処理部103が、調整対象音符(メロディチャンネルの各音符)のピッチを調整する方法については限定されないものであるが、以下のようなポリシーで行うようにしてもよい。なお、音符としては分かれていても、スラーでつながった同じピッチの音符については1つの音符(調整対象音符)とみなして、以下の各ポリシーに適用するようにしてもよい。
【0113】
[第1のポリシー]
調整対象音符については、対応コードスケールの構成音のみで構成されるようにピッチを調整する。
【0114】
[第2のポリシー]
複数のコードの区間にまたがった調整対象音符(以下、「複数コード対応音符」と呼ぶ)は、それらの複数のコードのすべての対応コードスケールで共通する音のみで構成されるようにピッチを調整する。例えば、複数コード対応音符の区間で、1回コードが切り替わる場合対応コードは2つとなり、2回コードが切り替わる場合対応コードは3つとなる。
【0115】
[第3のポリシー]
第2のポリシーを満たすピッチが存在しない複数コード対応音符については、コードの切れ目(コードの切り替わりのタイミング)で分割し、分割した各音符について、それぞれ別個の調整対象音符として、最初からピッチ整形処理(第1のポリシーから適用する処理)を行う。
【0116】
[第4のポリシー]
調整対象音符のピッチを調整する際、整形前楽曲における当該調整対象音符の直前の音符(以下、「直前音符」と呼ぶ)及び直後の音符(以下、「直後音符」と呼ぶ)との相対的なピッチの上下関係(「ピッチが上がっている」、「ピッチが下がっている」、「ピッチが同じ」の3つのパターンのいずれか)を保つ。
【0117】
以下では、当該調整対象音符のピッチをPT、直前音符のピッチをPB、直後音符のピッチをPAと表すものとする。例えば、直前音符のピッチPBと当該調整対象音符のピッチPTとの関係では、PB=PT(ピッチが同じ)、PB>PT(ピッチが下がっている)、PB<PT(ピッチが上がっている)のパターンが存在する。また、例えば、当該調整対象音符のピッチPTと直後音符のピッチPAとの関係では、PT=PA(ピッチが同じ)、PT>PA(ピッチが下がっている)、PT>PA(ピッチが上がっている)のパターンが存在する。
【0118】
[第5のポリシー]
当該調整対象音符のピッチ調整だけでは第4のポリシーを満たすことができない場合、直後音符についてもピッチ調整を行う前提で、第4のポリシーを満たすピッチの調整パターンを決定する。
【0119】
[第6のポリシー]
当該調整対象音符のピッチ調整を行う際、調整前後のピッチの差分を所定以下(例えば、±1オクターブ以下)に収める。
【0120】
整形処理部103は、以上のようなポリシーで調整対象音符を、対応コードスケールの構成音のみで構成されるように調整することが望ましい。なお、第4及び第5のポリシーについて、守ることができない状態である場合は、この2つのポリシーを除外して調整するようにしてもよい。また、第4及び第5のポリシーを守ると第6のポリシーを満たすことができない状態である場合は、「第6のポリシーを除外する」又は「第4又は第5のポリシーを除外する」のいずれかを適用するようにしてもよい。
【0121】
図14は、
図13に示すコード整形済楽曲についてメロディ整形処理を行った結果(メロディ整形済楽曲)について示した図である。
【0122】
図14に示すように、メロディ整形処理により、1小節目Fの音が、上記のポリシーに従いF#(Eminorスケール構成音であり、前後の音との高さの関係が変わらない音)に変更されている。
【0123】
(A-3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
【0124】
第1の実施形態の音楽処理システム10では、AIを用いた生成モデルにより、入力楽曲データ(原曲)を入力としつつ、新た作曲された楽曲を生成することができる。
【0125】
また、第1の実施形態の音楽処理システム10では、操作パラメータcに応じたノイズを潜在変数zに混入(加算)させることができる。操作パラメータcには、任意の値を設定することが可能であるため、ユーザは、操作パラメータcの値を変動させて複数の楽曲を生成させることで、生成された楽曲の中から、生成楽曲について入力楽曲データ(原曲)を入力としつつ新たに作曲したといえる内容を選んで取得することが可能となる。
【0126】
次に、操作パラメータの変動に伴い、生成楽曲が変化する具体例について
図15~
図17を用いて説明する。
【0127】
図15~
図17は、それぞれ入力楽曲を
図4の楽曲とし、操作パラメータの値を0、10、20と変動させた場合における生成楽曲を譜面(五線譜)の形式で表した図である。
【0128】
図15に示すように、操作パラメータの値を0とした場合、原曲(
図4)と同じ調(F# minor)もしくはその平行調(A major)と推定できる曲が生成されている。また、
図15の譜面では、原曲(
図4)と同じく4小節単位でひとまとまりのようなメロディの構成が見られる。
【0129】
図16に示すように、操作パラメータの値を10とした場合、原曲(
図4)と同じ調ではなく、その下属調(Dmajor)と推定される曲が生成されている。
【0130】
図17に示すように、操作パラメータの値を20とした場合、原曲(
図4)と調が大きく異なるだけでなく、使用されている音符の種類やテンポ感も全く違う曲になっている。
【0131】
以上のように、第1の実施形態の音楽処理システム10では、操作パラメータcの値を変動させることで、生成楽曲について、入力楽曲データ(原曲)からを入力としつつ新たに作曲したといえる内容とすることが可能となる。
【0132】
(B)第2の実施形態
以下、本発明による音楽処理システム、音楽処理プログラム、及び音楽処理方法の第2の実施形態を、図面を参照しながら詳述する。
【0133】
(B-1)第2の実施形態の構成及び動作
図18は、第2の実施形態の音楽処理システム10Aの全体構成を示すブロック図である。
【0134】
図18では、上述の
図1と同一部分又は対応する部分に、同一の符号又は対応する符号を付している。
【0135】
以下では、第2の実施形態について第1の実施形態との差異を説明する。
【0136】
第2の実施形態の音楽処理システム10Aでは、生成処理部102が生成処理部102Aに置き換わっている点で第1の実施形態と異なっている。
【0137】
第2の実施形態の生成処理部102Aは、AIの学習時の構成は第1の実施形態と同じであるが、その後の楽曲生成時における構成が異なる。
【0138】
図19は、第2の実施形態の生成処理部102Aにおける楽曲生成時の構成例について示した図である。
【0139】
図19では、上述の
図3と上述の
図1と同一部分又は対応する部分に、同一の符号又は対応する符号を付している。
【0140】
図19に示すように、第2の実施形態の生成処理部102Aでは、楽曲生成時に、潜在変数処理部204Aとデコーダ202のみが動作する。
【0141】
潜在変数処理部204Aは、楽曲生成時において、エンコーダ201からのデータによらず、所定の手段で取得する数値(例えば、乱数等)に基づき独自にデコーダ202へ供給する潜在変数zを生成する点で第1の実施形態と異なっている。
【0142】
例えば、上記の(1)式において、μ=0、σ=1、I=1とすることで、分散が1の乱数に基づいた潜在変数zを取得するようにしてもよい。例えば、潜在変数zが256次元のベクトルである場合、潜在変数処理部204Aが潜在変数zを取得するためのソースコード(Pythonで記述した場合のコード)は、「numpy.random.normal(loc=0.0, scale=1.0, size=256)」とすることができる。
【0143】
なお、第2の実施形態において、σ及びIに設定する具体的な値は上記の例に限定されず、種々の値を適用することができる。
【0144】
(B-2)第2の実施形態の効果
第2の実施形態によれば、以下のような効果を奏することができる。
【0145】
第2の実施形態の音楽処理システム10Aでは、入力楽曲によらず、潜在変数処理部204Aが乱数に基づいて取得する潜在変数zを用いて楽曲を生成する。これにより、第2の実施形態の音楽処理システム10Aでは、入力楽曲を入力せずに新たな楽曲を生成することができる。
【0146】
(C)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【0147】
(C-1)第1の実施形態では、音楽処理システムが入力楽曲ベクトルデータ(入力楽曲データ)及び操作パラメータに基づいて楽曲生成する動作モード(以下、「リファレンスモード」と呼ぶ)について説明し、第2の実施形態では、音楽処理システムが乱数に基づき楽曲生成する動作モード(以下、「ランダムモード」と呼ぶ)について説明したが、この2つの動作モードの両方に対応し、ユーザの操作等に基づいて動作モードを変更可能な音楽処理システムを構築するようにしてもよい。
【0148】
(C-2)上記の各実施形態では、生成処理部102は、学習時の構成と、楽曲生成時の構成の両方を備えるものとして説明したが、学習の処理がすでに済んだ状態であれば学習時の構成(例えば、ディスクリミネータ203等)は備えなくてもよい。
【符号の説明】
【0149】
10…音楽処理システム、101…ベクトル化処理部、102…生成処理部、103…整形処理部、104…復元処理部、201…エンコーダ、202…デコーダ、203…ディスクリミネータ、204…潜在変数処理部。