IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤマハ株式会社の特許一覧

特開2023-77140楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム
<>
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図1
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図2
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図3
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図4
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図5
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図6A
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図6B
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図7
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図8A
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図8B
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図9
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図10
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図11
  • 特開-楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023077140
(43)【公開日】2023-06-05
(54)【発明の名称】楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラム
(51)【国際特許分類】
   G10H 1/00 20060101AFI20230529BHJP
   G10G 1/04 20060101ALI20230529BHJP
【FI】
G10H1/00 102Z
G10G1/04
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021190312
(22)【出願日】2021-11-24
(71)【出願人】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】100124039
【弁理士】
【氏名又は名称】立花 顕治
(72)【発明者】
【氏名】鈴木 正博
【テーマコード(参考)】
5D182
5D478
【Fターム(参考)】
5D182AD05
5D478GG01
(57)【要約】
【課題】様々な難易度の楽曲を容易に生成可能な技術を提供する。
【解決手段】本発明の一側面に係る楽曲生成装置は、楽曲の少なくとも一部を示す対象楽曲データを取得し、楽曲の変更後の難易度を指定するための難易度パラメータの値を取得し、訓練済みの生成モデルを使用することで、取得された対象楽曲データ及び難易度パラメータの値から、難易度パラメータで指定された難易度に楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
楽曲の少なくとも一部を示す対象楽曲データを取得するデータ取得部と、
難易度パラメータの値を取得するパラメータ取得部と、
訓練済みの生成モデルを使用することで、取得された前記対象楽曲データ及び前記難易度パラメータの値から、前記難易度パラメータで指定された難易度に前記楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成する生成部と、
生成された前記新たな楽曲データを出力する出力部と、
を備える、
楽曲生成装置。
【請求項2】
前記難易度パラメータの値は、難易度を変更後の前記新たな楽曲の演奏音域の幅を示すように構成される、
請求項1に記載の楽曲生成装置。
【請求項3】
前記難易度パラメータの値は、難易度を変更した後の前記新たな楽曲に使用する楽器における同時に操作する最大の操作子の数を示すように構成される、
請求項1又は2に記載の楽曲生成装置。
【請求項4】
前記対象楽曲データは、前記楽曲の少なくとも一部を示すように配列された入力トークン列により構成され、
前記新たな楽曲データは、前記訓練済みの生成モデルから出力され、前記新たな楽曲の少なくとも一部を示すように配列された出力トークン列により構成される、
請求項1から3のいずれか1項に記載の楽曲生成装置。
【請求項5】
コンピュータが、
楽曲の少なくとも一部を示す対象楽曲データを取得するステップと、
難易度パラメータの値を取得するステップと、
訓練済みの生成モデルを使用することで、取得された前記対象楽曲データ及び前記難易度パラメータの値から、前記難易度パラメータで指定された難易度に前記楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成するステップと、
生成された前記新たな楽曲データを出力するステップと、
を実行する、
楽曲生成方法。
【請求項6】
コンピュータに、
楽曲の少なくとも一部を示す対象楽曲データを取得するステップと、
難易度パラメータの値を取得するステップと、
訓練済みの生成モデルを使用することで、取得された前記対象楽曲データ及び前記難易度パラメータの値から、前記難易度パラメータで指定された難易度に前記楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成するステップと、
生成された前記新たな楽曲データを出力するステップと、
を実行するための、
楽曲生成プログラム。
【請求項7】
訓練データ及び正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部であって、
前記訓練データは、楽曲の少なくとも一部を示す学習楽曲データ及び学習用の難易度パラメータを含み、
前記正解データは、前記難易度パラメータで指定された難易度に前記学習楽曲データの前記楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データを含む、
学習データ取得部と、
取得された前記複数の学習データセットを使用して、生成モデルの機械学習を実施する学習処理部であって、機械学習は、前記各学習データセットについて、前記訓練データに含まれる前記学習楽曲データ及び前記難易度パラメータの値から前記生成モデルにより生成される楽曲データが前記正解データに含まれる前記学習楽曲データに適合するように前記生成モデルを訓練することにより構成される、学習処理部と、
を備える、
モデル生成装置。
【請求項8】
前記訓練データに含まれる前記難易度パラメータの値は、難易度を変更後の前記新たな楽曲の演奏音域の幅を示すように構成される、
請求項7に記載のモデル生成装置。
【請求項9】
前記訓練データに含まれる前記難易度パラメータの値は、難易度を変更した後の前記新たな楽曲に使用する楽器における同時に操作する最大の操作子の数を示すように構成される、
請求項7又は8に記載のモデル生成装置。
【請求項10】
コンピュータが、
訓練データ及び正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップであって、
前記訓練データは、楽曲の少なくとも一部を示す学習楽曲データ及び学習用の難易度パラメータを含み、
前記正解データは、前記難易度パラメータで指定された難易度に前記学習楽曲データの前記楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データを含む、
ステップと、
取得された前記複数の学習データセットを使用して、生成モデルの機械学習を実施するステップであって、機械学習は、前記各学習データセットについて、前記訓練データに含まれる前記学習楽曲データ及び前記難易度パラメータの値から前記生成モデルにより生成される楽曲データが前記正解データに含まれる前記学習楽曲データに適合するように前記生成モデルを訓練することにより構成される、ステップと、
を実行する、
モデル生成方法。
【請求項11】
コンピュータに、
訓練データ及び正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップであって、
前記訓練データは、楽曲の少なくとも一部を示す学習楽曲データ及び学習用の難易度パラメータを含み、
前記正解データは、前記難易度パラメータで指定された難易度に前記学習楽曲データの前記楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データを含む、
ステップと、
取得された前記複数の学習データセットを使用して、生成モデルの機械学習を実施するステップであって、機械学習は、前記各学習データセットについて、前記訓練データに含まれる前記学習楽曲データ及び前記難易度パラメータの値から前記生成モデルにより生成される楽曲データが前記正解データに含まれる前記学習楽曲データに適合するように前記生成モデルを訓練することにより構成される、ステップと、
を実行させるための、
モデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楽曲生成装置、楽曲生成方法、楽曲生成プログラム、モデル生成装置、モデル生成方法、及びモデル生成プログラムに関する。
【背景技術】
【0002】
楽曲の難易度の変更は、従来、主として人間の手作業により行われていた。しかしながら、楽曲の難易度を変更し、新たな楽曲を生成する作業の全てを人手により行うと、当該作業にかかるコストが高くなってしまう。そこで、コンピュータ技術を用いて、楽曲に対する作業の少なくとも一部を自動化する方法の開発が進められている。
【0003】
例えば、特許文献1には、ルールベースにより、簡約楽譜情報を自動的に生成する技術が提案されている。この方法によれば、難易度を変更する作業の少なくとも一部を自動化することができる。そのため、難易度を変更する作業にかかるコストの低減を図ることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007-241026号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本件発明者は、上記従来の難易度変更方法には、次のような問題点があることを見出した。すなわち、ルールベースにより難易度を変更した新たな楽曲を生成しようとしても、アレンジが画一的になってしまう傾向があるという問題点があることを見出した。例えば、従来の方法では、音を省略する等の単純なルールにより、アレンジされた楽曲を生成する。しかしながら、このような方法では、単調なアレンジに陥りやすく、アレンジされた楽曲としての品質は低い。例えば、適切な楽曲の難易度は演奏者によって異なり得る(例えば、演奏者の手の大きさに応じて特定の操作子が操作し難い等)。従来の方法では、多様な難易度の指定に対応するのは困難であり、アレンジされた楽曲の自動生成、対応する楽譜制作等の商業用途への応用は難しいという問題点があった。
【0006】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、様々な難易度の楽曲を容易に生成可能な技術を提供することである。
【課題を解決するための手段】
【0007】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0008】
すなわち、本発明の一側面に係る楽曲生成装置は、楽曲の少なくとも一部を示す対象楽曲データを取得するデータ取得部と、前記楽曲の変更後の難易度を指定するための難易度パラメータの値を取得するパラメータ取得部と、訓練済みの生成モデルを使用することで、取得された前記対象楽曲データ及び前記難易度パラメータの値から、前記難易度パラメータで指定された難易度に前記楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成する生成部と、生成された前記新たな楽曲データを出力する出力部と、を備える。
【0009】
当該構成では、新たな楽曲を生成するための推論処理に難易度パラメータが用いられる。難易度パラメータによれば、生成される新たな楽曲の難易度を多様にコントロールすることができる。例えば、難易度パラメータにより指定される難易度を多段階に設定することで、指定された各レベルに応じた新たな楽曲を生成することができる。また、難易度を下げた楽曲だけではなく、難易度を上げた楽曲を生成することができる。つまり、難易度パラメータによる難易度の指定により、例えば、難易度を上げたり、下げたり等の新たな楽曲のレベル調整を行うことができる。したがって、当該構成によれば、様々な難易度の楽曲を容易に生成することができる。
【0010】
上記一側面に係る楽曲生成装置において、前記難易度パラメータの値は、難易度を変更後の前記新たな楽曲の演奏音域の幅を示すように構成されてよい。当該構成によれば、演奏音域の幅により難易度を指定することができる。これにより、様々な演奏音域幅の楽曲を容易に生成することができる。
【0011】
上記一側面に係る楽曲生成装置において、前記難易度パラメータの値は、難易度を変更した後の前記新たな楽曲に使用する楽器における同時に操作する最大の操作子の数を示すように構成されてよい。当該構成によれば、同時に操作する最大の操作子の数により難易度を指定することができる。これにより、様々な最大操作子数の楽曲を容易に生成することができる。
【0012】
上記一側面に係る楽曲生成装置において、前記対象楽曲データは、前記楽曲の少なくとも一部を示すように配列された入力トークン列により構成されてよく、前記新たな楽曲データは、前記訓練済みの生成モデルから出力され、前記新たな楽曲の少なくとも一部を示すように配列された出力トークン列により構成されてよい。当該構成によれば、トークン列を取り扱い可能に構成される機械学習モデル(例えば、後述するTransformer)を用いて、様々な難易度の楽曲を精度よく生成することができる。
【0013】
本発明の形態は、訓練済みの生成モデルを使用して、新たな楽曲を生成するように構成される楽曲生成装置に限られなくてよい。本発明の一側面は、上記いずれかの形態において使用される訓練済みの生成モデルを機械学習により生成するように構成されるモデル生成装置であってよい。
【0014】
例えば、本発明の一側面に係るモデル生成装置は、訓練データ及び正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部であって、前記訓練データは、楽曲の少なくとも一部を示す学習楽曲データ及び学習用の難易度パラメータを含み、前記正解データは、前記難易度パラメータで指定された難易度に前記学習楽曲データの前記楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データを含む、学習データ取得部と、取得された前記複数の学習データセットを使用して、生成モデルの機械学習を実施する学習処理部であって、機械学習は、前記各学習データセットについて、前記訓練データに含まれる前記学習楽曲データ及び前記難易度パラメータの値から前記生成モデルにより生成される楽曲データが前記正解データに含まれる前記学習楽曲データに適合するように前記生成モデルを訓練することにより構成される、学習処理部と、を備える。当該構成によれば、難易度パラメータに基づいて様々な難易度の楽曲を生成する能力を獲得した訓練済みの生成モデルを生成することができる。
【0015】
上記一側面に係るモデル生成装置において、前記訓練データに含まれる前記難易度パラメータの値は、難易度を変更後の前記新たな楽曲の演奏音域の幅を示すように構成されてよい。当該構成によれば、様々な演奏音域幅の楽曲を生成する能力を獲得した訓練済みの生成モデルを生成することができる。
【0016】
上記一側面に係るモデル生成装置において、前記訓練データに含まれる前記難易度パラメータの値は、難易度を変更した後の前記新たな楽曲に使用する楽器における同時に操作する最大の操作子の数を示すように構成されてよい。当該構成によれば、様々な最大操作子数の楽曲を生成する能力を獲得した訓練済みの生成モデルを生成することができる。
【0017】
上記各形態に係る楽曲生成装置及びモデル生成装置の別の形態として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、情報処理システムであってもよいし、プログラムであってもよいし、又はこのようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【0018】
例えば、本発明の一側面に係る楽曲生成方法は、コンピュータが、楽曲の少なくとも一部を示す対象楽曲データを取得するステップと、難易度パラメータの値を取得するステップと、訓練済みの生成モデルを使用することで、取得された前記対象楽曲データ及び前記難易度パラメータの値から、前記難易度パラメータで指定された難易度に前記楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成するステップと、生成された前記新たな楽曲データを出力するステップと、を実行する、情報処理方法である。
【0019】
また、例えば、本発明の一側面に係る楽曲生成プログラムは、コンピュータに、楽曲の少なくとも一部を示す対象楽曲データを取得するステップと、難易度パラメータの値を取得するステップと、訓練済みの生成モデルを使用することで、取得された前記対象楽曲データ及び前記難易度パラメータの値から、前記難易度パラメータで指定された難易度に前記楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データを生成するステップと、生成された前記新たな楽曲データを出力するステップと、を実行するための、プログラムである。
【0020】
また、例えば、本発明の一側面に係るモデル生成方法は、コンピュータが、訓練データ及び正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップであって、前記訓練データは、楽曲の少なくとも一部を示す学習楽曲データ及び学習用の難易度パラメータを含み、前記正解データは、前記難易度パラメータで指定された難易度に前記学習楽曲データの前記楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データを含む、ステップと、取得された前記複数の学習データセットを使用して、生成モデルの機械学習を実施するステップであって、機械学習は、前記各学習データセットについて、前記訓練データに含まれる前記学習楽曲データ及び前記難易度パラメータの値から前記生成モデルにより生成される楽曲データが前記正解データに含まれる前記学習楽曲データに適合するように前記生成モデルを訓練することにより構成される、ステップと、を実行する、情報処理方法である。
【0021】
また、例えば、本発明の一側面に係るモデル生成プログラムは、コンピュータに、訓練データ及び正解データの組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップであって、前記訓練データは、楽曲の少なくとも一部を示す学習楽曲データ及び学習用の難易度パラメータを含み、前記正解データは、前記難易度パラメータで指定された難易度に前記学習楽曲データの前記楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データを含む、ステップと、取得された前記複数の学習データセットを使用して、生成モデルの機械学習を実施するステップであって、機械学習は、前記各学習データセットについて、前記訓練データに含まれる前記学習楽曲データ及び前記難易度パラメータの値から前記生成モデルにより生成される楽曲データが前記正解データに含まれる前記学習楽曲データに適合するように前記生成モデルを訓練することにより構成される、ステップと、を実行させるための、プログラムである。
【発明の効果】
【0022】
本発明によれば、様々な難易度の楽曲を容易に生成可能な技術を提供することができる。
【図面の簡単な説明】
【0023】
図1図1は、本発明が適用される場面の一例を模式的に示す。
図2図2は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に示す。
図3図3は、実施の形態に係る楽曲生成装置のハードウェア構成の一例を模式的に示す。
図4図4は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に示す。
図5図5は、楽曲の一例を示す譜面である。
図6A図6Aは、図5の楽曲から生成される入力トークン列の一例を示す。
図6B図6Bは、図5の楽曲から生成される入力トークン列の一例を示す。
図7図7は、難易度が変更された楽曲(生成結果)の一例を示す譜面である。
図8A図8Aは、図7の楽曲に対応する出力トークン列の真値の一例を示す。
図8B図8Bは、図7の楽曲に対応する出力トークン列の真値の一例を示す。
図9図9は、実施の形態に係る生成モデルの構成の一例を模式的に示す。
図10図10は、実施の形態に係る楽曲生成装置のソフトウェア構成の一例を模式的に示す。
図11図11は、実施の形態に係るモデル生成装置の処理手順の一例を示すフローチャートである。
図12図12は、実施の形態に係る楽曲生成装置の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0024】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0025】
§1 適用例
図1は、本発明を適用した場面の一例を模式的に例示する。図1に示されるとおり、本実施形態に係る生成システム100は、モデル生成装置1及び楽曲生成装置2を備えている。
【0026】
本実施形態に係るモデル生成装置1は、元の楽曲から難易度を変更した新たな楽曲を生成するための訓練済みの生成モデル5を機械学習により生成するように構成されたコンピュータである。まず、モデル生成装置1は、複数の学習データセット3を取得する。各学習データセット3は、訓練データ31及び正解データ32の組み合わせにより構成される。訓練データ31は、楽曲の少なくとも一部を示す学習楽曲データ311及び学習用の難易度パラメータ313を含むように構成される。正解データ32は、難易度パラメータ313により指定された難易度に学習楽曲データ311の楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データ321を含むように構成される。
【0027】
次に、モデル生成装置1は、取得された複数の学習データセット3を使用して、生成モデル5の機械学習を実施する。機械学習は、各学習データセット3について、訓練データ31に含まれる学習楽曲データ311及び難易度パラメータ313の値から生成モデル5により生成される楽曲データが正解データ32に含まれる新たな学習楽曲データ321に適合するように生成モデル5を訓練することにより構成される。この機械学習の処理により、難易度パラメータにより指定される難易度の新たな楽曲を元の楽曲から生成する能力を獲得した訓練済みの生成モデル5を生成することができる。
【0028】
一方、本実施形態に係る楽曲生成装置2は、訓練済みの生成モデル5を使用して、元の楽曲から新たな楽曲を生成するように構成されたコンピュータである。まず、楽曲生成装置2は、楽曲の少なくとも一部を示す対象楽曲データ221を取得する。また、楽曲生成装置2は、楽曲の変更後の難易度を指定するための難易度パラメータ223の値を取得する。次に、楽曲生成装置2は、訓練済みの生成モデル5を使用することで、取得された対象楽曲データ221及び難易度パラメータ223の値から、難易度パラメータ223で指定された難易度に楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データ225を生成する。楽曲生成装置2は、生成された新たな楽曲データ225を出力する。
【0029】
難易度パラメータ(223、313)は、元の楽曲から生成モデル5により生成される新たな楽曲の難易度を示すように構成される。学習段階における難易度パラメータ313は、訓練データ31を構成する学習楽曲データ311に対して正解データ32を構成する学習楽曲データ321により示される楽曲の難易度を示すように構成される。推論段階における難易度パラメータ223は、対象楽曲データ221から訓練済みの生成モデル5により生成する新たな楽曲の難易度を示すように構成される。
【0030】
難易度は、任意の形式で指定されてよい。一例として、難易度は、複数のレベル(例えば、「初級」、「初中級」、「中級」、「中上級」、「上級」等)で設定されてよく、難易度パラメータ(223、313)は、これら複数のレベルのうちのいずれかを示すように構成されてよい。
【0031】
他の一例では、難易度は、演奏音域の幅により指定されてよい。この場合、難易度パラメータ(223、313)は、難易度を変更した後の新たな楽曲の演奏音域の幅を示すように構成されてよい。
【0032】
他の一例では、難易度は、演奏に使用する楽器において同時に操作する最大の操作子の数により指定されてよい。この場合、難易度パラメータ(223、313)は、難易度を変更した後の新たな楽曲に使用する楽器における同時に操作する最大の操作子の数を示すように構成されてよい。楽曲に使用される楽器は、実施の形態に応じて適宜選択されてよい。楽器は、例えば、ピアノ等である。操作子は、例えば、ピアノの鍵盤等である。難易度パラメータ(223、313)において、難易度は、相対的に指定されてもよいし、或いは絶対的に指定されてもよい。
【0033】
以上のとおり、本実施形態では、生成モデル5は、難易度パラメータで指定される難易度に基づいて、入力される元の楽曲から新たな楽曲を生成するように構成される。この難易度パラメータによれば、生成される新たな楽曲の難易度を多様にコントロールすることができる。そのため、モデル生成装置1によれば、難易度パラメータに基づいて様々な難易度の楽曲を生成する能力を獲得した訓練済みの生成モデル5を生成することができる。楽曲生成装置2では、そのような訓練済みの生成モデル5を使用することで、様々な難易度の楽曲を容易に生成することができる。
【0034】
なお、図1の例では、モデル生成装置1及び楽曲生成装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び楽曲生成装置2の間でデータをやり取りする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置1及び楽曲生成装置2の間では、記憶媒体を利用して、データがやり取りされてよい。
【0035】
また、図1の例では、モデル生成装置1及び楽曲生成装置2は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る生成システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、モデル生成装置1及び楽曲生成装置2は一体のコンピュータであってもよい。また、例えば、モデル生成装置1及び楽曲生成装置2のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。複数台のコンピュータにより構成される場合、情報処理の分配は、実施の形態に応じて適宜決定されてよい。
【0036】
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図2は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に例示する。図2に示されるとおり、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図2では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
【0037】
制御部11は、ハードウェアプロセッサ(プロセッサリソース)の一例であるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、複数の学習データセット3、学習結果データ125等の各種情報を記憶する。
【0038】
モデル生成プログラム81は、訓練済みの生成モデル5を生成する後述の機械学習の情報処理(図11)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。複数の学習データセット3は、訓練済みの生成モデル5の生成に使用される。学習結果データ125は、生成された訓練済みの生成モデル5に関する情報を示す。本実施形態では、学習結果データ125は、モデル生成プログラム81を実行した結果として生成される。詳細は後述する。
【0039】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置1は、通信インタフェース13を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行することができる。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は任意に選択されてよい。
【0040】
モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して、各学習データセット3を得るためのデバイスに接続されてよい。一例として、訓練データ31を構成する学習楽曲データ311は、電子楽器により得られてよい。この場合、モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して電子楽器に接続されてよく、学習楽曲データ311を電子楽器により収集してよい。
【0041】
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。
【0042】
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかは、記憶媒体91に記憶されていてもよい。モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかを取得してもよい。なお、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0043】
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
【0044】
<楽曲生成装置>
図3は、本実施形態に係る楽曲生成装置2のハードウェア構成の一例を模式的に例示する。図3に示されるとおり、本実施形態に係る楽曲生成装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
【0045】
楽曲生成装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよい。制御部21は、ハードウェアプロセッサの一例であるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、楽曲生成プログラム82、学習結果データ125等の各種情報を記憶する。
【0046】
楽曲生成プログラム82は、訓練済みの生成モデル5を使用して元の楽曲から難易度を変更した新たな楽曲を生成する後述の情報処理(図12)を楽曲生成装置2に実行させるためのプログラムである。楽曲生成プログラム82は、当該情報処理の一連の命令を含む。楽曲生成プログラム82及び学習結果データ125の少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、楽曲生成装置2は、楽曲生成プログラム82及び学習結果データ125の少なくともいずれかを記憶媒体92から取得してもよい。
【0047】
楽曲生成装置2は、通信インタフェース23及び外部インタフェース24の少なくとも一方を介して、対象楽曲データ221を得るためのデバイスに接続されてよい。一例として、対象楽曲データ221は、電子楽器より得られてよい。この場合、楽曲生成装置2は、通信インタフェース23及び外部インタフェース24の少なくとも一方を介して電子楽器に接続されてよい。また、楽曲生成装置2は、入力装置25及び出力装置26の利用により、ユーザ等のオペレータからの操作及び入力を受け付けてよい。
【0048】
なお、楽曲生成装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。楽曲生成装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、楽曲生成装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
【0049】
[ソフトウェア構成]
<モデル生成装置>
図4は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に例示する。モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81に含まれる命令を解釈し、解釈された命令に応じた制御処理を実行する。これにより、本実施形態に係るモデル生成装置1は、学習データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるように構成される。すなわち、本実施形態では、モデル生成装置1のソフトウェアモジュールは、制御部11(CPU)により実現される。
【0050】
学習データ取得部111は、複数の学習データセット3を取得するように構成される。各学習データセット3は、訓練データ31及び正解データ32の組み合わせにより構成される。訓練データ31は、楽曲の少なくとも一部を示す学習楽曲データ311及び学習用の難易度パラメータ313を含むように構成される。正解データ32は、難易度パラメータ313により指定された難易度に学習楽曲データ311の楽曲の難易度を変更することで生成される新たな楽曲の少なくとも一部を示す新たな学習楽曲データ321を含むように構成される。
【0051】
学習処理部112は、取得された複数の学習データセット3を使用して、生成モデル5の機械学習を実施するように構成される。機械学習は、各学習データセット3について、訓練データ31に含まれる学習楽曲データ311及び難易度パラメータ313の値から生成モデル5により生成される楽曲データが正解データ32に含まれる学習楽曲データ321に適合するように生成モデル5を訓練することにより構成される。この機械学習の処理が完了することにより、与えられた楽曲データにより示される楽曲の難易度を、難易度パラメータにより指定される難易度に変更することで、新たな楽曲(すなわち、元の楽曲から難易度が変更された楽曲)を生成する能力を獲得した訓練済みの生成モデル5が生成される。
【0052】
保存処理部113は、機械学習により生成された訓練済みの生成モデル5に関する情報を学習結果データ125として生成し、生成された学習結果データ125を所定の記憶領域に保存するように構成される。学習結果データ125は、訓練済みの生成モデル5を再生するための情報を含むように適宜構成されてよい。
【0053】
(楽曲データの一例)
楽曲は、例えば、符号化データ(MIDI等)、楽譜等の任意の形式で獲得されてよい。また、生成モデル5の処理の際、楽曲は、生成モデル5の処理に適合する形式で得られてよい。すなわち、生成モデル5により処理可能であれば、対象楽曲データ221及び学習楽曲データ311の形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。生成モデル5より獲得可能であれば、新たな楽曲データ225及び新たな学習楽曲データ321(正解データ32)の形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、生成モデル5は、難易度の変更前の楽曲の少なくとも一部の入力をトークン列の形式で受け付け、難易度を変更した新たな楽曲の少なくとも一部を生成した結果(推論結果)をトークン列の形式で出力するように構成されてよい。これに応じて、楽曲は、トークン列により表現されてよい。
これに応じて、
【0054】
生成モデル5がトークン列を取り扱うように構成される場合、学習の段階では、学習楽曲データ311は、難易度を変更する前の楽曲(元の楽曲)の少なくとも一部を示すように配列された入力トークン列により構成されてよい。学習楽曲データ321は、難易度の変更により得られる新たな楽曲(難易度パラメータ313により指定された難易度に学習楽曲データ311の楽曲の難易度を変更することで生成される新たな楽曲)の少なくとも一部を示すように配列された出力トークン列の真値により構成されてよい。
【0055】
同様に、生成(推論)の段階では、対象楽曲データ221は、難易度を変更する対象となる楽曲(元の楽曲)の少なくとも一部を示すように配列された入力トークン列により構成されてよい。訓練済みの生成モデル5により生成される新たな楽曲データ225は、難易度パラメータ223で指定された難易度に対象楽曲データ221の楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示すように配列された出力トークン列により構成されてよい。
【0056】
入力トークン列及び出力トークン列を構成するトークンには、例えば、数字、文字、図形等の任意の記号が適宜用いられてよい。トークンに用いられる記号(トークン表現)及びデータ形式は、コンピュータが認識可能であれば、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。以下、トークン化方式の一例として、動作ベース及び音符ベースの2つのトークン化方式を例示する。
【0057】
図5は、難易度を変更する前の楽曲の少なくとも一部の一例を示す譜面である。図6Aは、動作ベースのトークン化方式により図5の楽曲から生成される入力トークン列の一例を示す。図6Bは、音符ベースのトークン化方式により図5の楽曲から生成される入力トークン列の一例を示す。図7は、難易度を変更した後の楽曲の少なくとも一部の一例を示す譜面である。図8Aは、動作ベースのトークン化方式により、図7の楽曲に対応して得られる出力トークン列の真値の一例を示す。図8Bは、音符ベースのトークン化方式により、図7の楽曲に対応して得られる出力トークン列の真値の一例を示す。
【0058】
動作ベースのトークン化方式は、楽曲の音符又は要素に対応する動作を示すようにトークン化する方式である。表1は、動作ベースのトークン化方式におけるトークンの種別及びその表現の一例を示す。一方、音符ベースのトークン化方式は、楽曲の音符をそのまま示すようにトークン化する方式である。表2は、音符ベースのトークン化方式におけるトークンの種別及びその表現の一例を示す。なお、以下のトークンの種別及び表現は一例であり、実施の形態に応じて適宜変更されてよい。
【表1】
【表2】
【0059】
入力トークン列及び出力トークン列のトークン化方式及びトークン表現には、上記2つ方法のうちのいずれかが採用されてよい。各学習データセット3を獲得する方法の一例として、図5に例示される楽曲の少なくとも一部を示す演奏情報が適宜取得されてよい。当該演奏情報のデータ形式は、実施の形態に応じて適宜選択されてよい。一例として、演奏情報は、符号化データ(MIDI等)、楽譜等の形式で得られてよい。各学習データセット3の訓練データ31における学習楽曲データ311は、得られた演奏情報から、図6A又は図6Bに示される入力トークン列を含むように適宜生成されてよい。また、図5に例示される楽曲の少なくとも一部に対応して、図7に例示される難易度を変更した後の楽曲の真値を示す正解演奏情報が適宜得られてよい。各学習データセット3の正解データ32を構成する新たな学習楽曲データ321は、得られた正解演奏情報から、図8A又は図8Bに示される出力トークン列の真値を含むように適宜生成されてよい。入力トークン列及び出力トークン列の真値の生成には、例えば、自然言語処理等の任意の変換処理が採用されてよい。入力トークン列及び出力トークン列の真値は、人手による手作業により生成されてもよい。
【0060】
また、入力トークン列は、楽曲の拍節の位置を示すようにそれぞれ配置される複数の拍節トークンを含んでよい。これにより、入力トークン列は、楽曲の拍節構造を特定可能に構成されてよい。図6A及び図6Bに例示される入力トークン列に含まれるトークンのうち「bar」及び「beat」が、拍節トークンの一例である。「bar」が、小節線を示すトークンの一例であり、「beat」が、拍(拍子)を示すトークンの一例である。
【0061】
各拍節トークンは、入力トークン列において、楽曲の小節線及び拍の少なくともいずれかの位置を示すように配置されてよい。小節線は、小節の区切りを示すものである。小節は、楽譜を読みやすくするために適当な長さで分割された区分である。拍は、音楽の時間的継続を分割する単位である。
【0062】
一例では、各拍節トークンは、小節線及び拍のいずれか一方のみを示すように配置されてよい。これにより、各拍節トークンを手掛かりに、楽曲の拍節構造を把握することができる。ただし、拍節構造は、楽曲によって異なる。途中で拍子の変わる楽曲も存在する。小節線及び拍のいずれか一方のみでは、様々なタイプの楽曲の拍節構造を完全に把握するのは困難である。そのため、各拍節トークンは、入力トークン列において、小節線及び拍それぞれの位置に配置されるのが好ましい。
【0063】
図8A及び図8Bに例示されるとおり、出力トークン列も、生成された新たな楽曲(すなわち、難易度変更後の楽曲)の拍節の位置を示すようにそれぞれ配置される複数の拍節トークンを含んでよい。生成モデル5は、難易度を変更した後の新たな楽曲を生成した結果として、拍節トークンを含む出力トークン列を出力するように構成されてよい。入力トークン列と同様に、一例では、各拍節トークンは、出力トークン列において、小節線及び拍の少なくとも一方を示すように配置されてよい。各拍節トークンは、出力トークン列において、小節線及び拍それぞれの位置に配置されるのが好ましい。
【0064】
ここで、図6A図6B図8A及び図8Bにおける拍節トークンの表現(「bar」、「beat」)は一例である。拍節トークンの表現は、これらの例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。拍節トークンには、例えば、数字、文字、図形等の任意の記号が適宜用いられてよい。拍節トークンに用いられる記号及びデータ形式は、コンピュータが認識可能であれば、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
【0065】
なお、入力トークン列及び出力トークン列には、同一のトークン化方式及び同一のトークン表現が用いられてよい。上記一例では、入力トークン列及び出力トークン列には共に、動作ベース又は音符ベースのトークン化方式が採用されてよい。ただし、入力トークン列及び出力トークン列の形式は、このような例に限定されなくてもよい。入力トークン列及び出力トークン列には、必ずしも同一のトークン化方式及び同一のトークン表現を用いなければならない訳ではない。入力トークン列及び出力トークン列には、異なるトークン化方式及び異なるトークン表現のいずれかが採用されてよい。
【0066】
難易度を変更する対象である楽曲の少なくとも一部をコンピュータが認識可能であれば、入力トークン列に採用されるトークンの形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。難易度を変更した後の新たな楽曲の生成結果をコンピュータが認識可能であれば、出力トークン列に採用されるトークンの形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。また、拍節構造をコンピュータが認識可能であれば、拍節トークンの形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。難易度パラメータも同様にトークンで表現されてよい。
【0067】
(生成モデルの一例)
図9は、本実施形態に係る生成モデル5の構成の一例を模式的に例示する。生成モデル5は、機械学習により調整されるパラメータを有する機械学習モデルにより構成される。機械学習モデルの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。難易度を変更する対象である元の楽曲及び難易度パラメータの入力を受け付け、難易度パラメータにより指定された難易度に元の楽曲の難易度を変更することで得られる新たな楽曲を生成した結果を出力するように構成されていれば、機械学習モデルの構造は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、機械学習モデルは、元の楽曲の入力をトークン列の形式で受け付け、新たな楽曲の生成結果をトークン列の形式で出力するように構成されてよい。この場合における機械学習モデルの構造の一例として、図9に示されるとおり、生成モデル5は、参考文献「Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in Neural Information Processing Systems, 2017.」で提案されるTransformerに基づいた構成を有してよい。Transformerは、系列データ(自然言語等)を処理する機械学習モデルであって、注意(Attention)ベースの構成を有する。
【0068】
図9の一例では、生成モデル5は、エンコーダ50及びデコーダ55を備える。エンコーダ50は、自己注意を求める複数ヘッド注意層(Multi-Head Attention Layer)及びフィードフォワード層(Feed Forward Layer)をそれぞれ有する複数のブロックをスタックすることで構成された構造を有する。一方、デコーダ55は、自己注意を求めるマスク化複数ヘッド注意層(Masked Multi-Head Attention Layer)、ソース・ターゲット注意を求める複数ヘッド注意層、及びフィードフォワード層をそれぞれ有する複数のブロックをスタックすることで構成された構造を有する。図9に示されるとおり、エンコーダ50及びデコーダ55の各層には、加算・正規化層(Addition and Normalization Layer)が設けられてよい。各層には、1つ以上のノードが含まれてよく、各ノードには、閾値が設定されてよい。閾値は、活性化関数により表現されてよい。また、隣接する層のノード間の結合には、重み(結合荷重)が設定されてよい。ノード間の結合の重み及び閾値が、生成モデル5のパラメータの一例である。
【0069】
図9の一例では、生成モデル5は、入力トークン列に含まれるトークンを先頭から順に受け付けるように構成される。生成モデル5に入力されたトークンは、入力エンベディング処理によって所定の次元数を有するベクトルにそれぞれ変換され、位置エンコーディング処理によって楽曲内(フレーズ内)での位置を特定する値が付与された後、エンコーダ50に入力される。エンコーダ50は、当該入力に対して、複数ヘッド注意層及びフィードフォワード層による処理をブロック数分だけ繰り返し実行して特徴表現を取得し、取得した特徴表現を次段のデコーダ55(複数ヘッド注意層)に供給する。なお、難易度パラメータは、任意のタイミングで生成モデル5に入力されてよい。一例では、難易度パラメータの値は、入力トークン列の前に入力されてよい。
【0070】
デコーダ55(マスク化複数ヘッド注意層)には、エンコーダ50からの入力に加えて、デコーダ55からの既知(過去)の出力が供給される。すなわち、図9に例示される生成モデル5は、再帰構造を有するように構成されている。デコーダ55は、上記入力に対して、マスク化複数ヘッド注意層、複数ヘッド注意層、及びフィードフォワード層による処理をブロック数分だけ繰り返し実行して特徴表現を取得して出力する。デコーダ55からの出力は、線形層及びソフトマックス層において変換され、新たな楽曲の生成結果を示すトークンとして得られる。
【0071】
学習処理部112は、各学習データセット3について、訓練データ31を入力データとして用い、対応する正解データ32(出力トークン列の真値)を教師信号として用いて、生成モデル5の機械学習を実施するように構成される。具体的には、学習処理部112は、各学習データセット3について、訓練データ31に含まれる学習楽曲データ311(入力トークン列)及び難易度パラメータ313を生成モデル5に入力し、生成モデル5の演算処理を実行することで得られる出力トークン列が、対応する正解データ32の新たな学習楽曲データ321(出力トークン列の真値)に適合するものとなるように生成モデル5を訓練するように構成される。換言すると、学習処理部112は、各学習データセット3について、学習楽曲データ311及び難易度パラメータ313から生成される出力トークン列と対応する正解データ32により示される真値との間の誤差が小さくなるように生成モデル5のパラメータの値を調整するように構成される。パラメータの調整には、例えば、誤差逆伝播法等の任意の方法が用いられてよい。また、生成モデル5の機械学習の処理には、複数の正規化手法(例えば、ラベル平滑化、残差ドロップアウト、注意ドロップアウト)が適用されてよい。
【0072】
<楽曲生成装置>
図10は、本実施形態に係る楽曲生成装置2のソフトウェア構成の一例を模式的に例示する。楽曲生成装置2の制御部21は、記憶部22に記憶された楽曲生成プログラム82に含まれる命令を解釈し、解釈された命令に応じた制御処理を実行する。これにより、本実施形態に係る楽曲生成装置2は、データ取得部211、パラメータ取得部212、生成部213、及び出力部214をソフトウェアモジュールとして備えるように構成される。すなわち、本実施形態では、モデル生成装置1と同様に、楽曲生成装置2のソフトウェアモジュールは、制御部21(CPU)により実現される。
【0073】
データ取得部211は、難易度を変更する対象となる楽曲の少なくとも一部を示す対象楽曲データ221を取得するように構成される。生成モデル5がトークン列を取り扱いように構成される場合、対象楽曲データ221は、楽曲の少なくとも一部を示すように配列された入力トークン列を含むように構成されてよい。この場合、対象楽曲データ221に含まれる入力トークン列は、図6A及び図6Bに例示される訓練データ31の学習楽曲データ311と同様の形式で得られてよい。対象楽曲データ221に含まれる入力トークン列は、楽曲の拍節の位置を示すようにそれぞれ配置される複数の拍節トークンを含んでよい。一例では、各拍節トークンは、入力トークン列において、小節線及び拍の少なくとも一方を示すように配置されてよい。各拍節トークンは、入力トークン列において、小節線及び拍それぞれの位置に配置されるのが好ましい。
【0074】
パラメータ取得部212は、楽曲の変更後の難易度を指定するための難易度パラメータ223の値を取得する。難易度パラメータ223の値は、人手により指定されてもよいし、或いはコンピュータの処理により指定されてもよい。難易度パラメータ223の値は、任意の方法で取得されてよい。
【0075】
生成部213は、学習結果データ125を保持することで、訓練済みの生成モデル5を備えている。生成部213は、訓練済みの生成モデル5を使用することで、取得された対象楽曲データ221及び難易度パラメータ223の値から、難易度パラメータ223で指定された難易度に楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データ225を生成するように構成される。
【0076】
図9の一例では、生成部213は、対象楽曲データ221に含まれる入力トークン列及び難易度パラメータ223の値を訓練済みの生成モデル5のエンコーダ50(具体的には、入力エンベディング層を経た後に、最初に配置された複数ヘッド注意層)に順次入力して、エンコーダ50及びデコーダ55の演算処理を実行する。この演算処理の結果、生成部213は、訓練済みの生成モデル5(図9の一例では、最後に配置されたソフトマックス層)から出力されるトークンを順次取得することで、新たな楽曲データ225を構成する出力トークン列を生成する。
【0077】
この処理の際、出力トークン列は、例えば、ビーム探索等の探索法を用いて生成されてよい。より具体的には、生成部213は、生成モデル5から出力された値の確率分布からスコアの高い順にn個の候補トークンを保持し、連続するm個における統合スコアが最も高くなるように候補トークンを選択することで、出力トークン列を生成してよい(n,mは2以上の整数)。
【0078】
なお、生成される出力トークン列は、図8A及び図8Bに例示される正解データ32の新たな学習楽曲データ321と同様の形式で得られてよい。新たな楽曲データ225に含まれる出力トークン列は、楽曲の拍節の位置を示すようにそれぞれ配置される複数の拍節トークンを含んでよい。一例では、各拍節トークンは、出力トークン列において、小節線及び拍の少なくとも一方を示すように配置されてよい。各拍節トークンは、出力トークン列において、小節線及び拍それぞれの位置に配置されるのが好ましい。
【0079】
出力部214は、生成された新たな楽曲データ225を出力するように構成される。新たな楽曲データ225の出力形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、新たな楽曲データ225が出力トークン列により構成される場合、出力トークン列がそのまま出力されてよい。他の一例として、出力トークン列は適当な形式に変換されてよく、変換により得られた情報が出力されてもよい。
【0080】
<その他>
本実施形態に係るモデル生成装置1及び楽曲生成装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び楽曲生成装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサ(例えば、特定用途向け集積回路(ASIC))により実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置1及び楽曲生成装置2のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0081】
§3 動作例
<モデル生成装置>
図11は、本実施形態に係るモデル生成装置1の処理手順の一例を示すフローチャートである。以下で説明するモデル生成装置1の処理手順は、モデル生成方法の一例である。ただし、以下で説明するモデル生成装置1の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0082】
(ステップS101)
ステップS101では、制御部11は、訓練データ31及び正解データ32の組み合わせによりそれぞれ構成される複数の学習データセット3を取得する。
【0083】
各学習データセット3は、適宜生成されてよい。訓練データ31の学習楽曲データ311は、難易度を変更する前の楽曲の少なくとも一部を示すように適宜生成されてよい。正解データ32の新たな学習楽曲データ321は、難易度を変更した後の楽曲の少なくとも一部を示すように適宜生成されてよい。一例では、学習楽曲データ311は、図6A又は図6Bに示される入力トークン列を含むように生成されてよく、新たな学習楽曲データ321は、図8A又は図8Bに示される出力トークン列の真値を含むように生成されてよい。各トークン列は、例えば、符号化データ、楽譜等の他の形式の演奏情報から生成されてよい。或いは、各トークン列は、直接的に生成されてもよい。
【0084】
訓練データ31の学習用の難易度パラメータ313は、変更後の難易度(すなわち、対応する正解データ32により示される楽曲の難易度)を示すように適宜生成されてよい。一例では、難易度パラメータ313は、複数のレベルのうちのいずれかを示すように構成されてよい。他の一例では、難易度パラメータ313の値は、難易度に関連する1又は複数の要因に応じて定められてもよい。具体例として、難易度パラメータ313は、難易度を変更した後の新たな楽曲の演奏音域の幅及び当該新たな楽曲に使用する楽器における同時に操作する最大の操作子の数の少なくともいずれかを示すように構成されてよい。対応する訓練データ31及び正解データ32同士を関連付けることで、各学習データセット3を生成することができる。
【0085】
学習データセット3を生成する処理は、任意のコンピュータで実行されてよい。一例では、各学習データセット3を生成する処理は、モデル生成装置1(制御部11)により実行されてよい。他の一例では、複数の学習データセット3の少なくとも一部は、他のコンピュータにより生成されてよい。この場合、モデル生成装置1(制御部11)は、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された学習データセット3を取得してよい。取得する学習データセット3の件数は、機械学習に十分なように適宜決定されてよい。複数の学習データセット3を取得すると、制御部11は、次のステップS102に処理を進める。
【0086】
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の学習データセット3を使用して、生成モデル5の機械学習を実施する。
【0087】
機械学習の具体的な処理の一例として、制御部11は、各学習データセット3の訓練データ31に含まれる学習楽曲データ311及び難易度パラメータ313の値を生成モデル5に順次入力し、生成モデル5の演算処理を繰り返し実行し、出力されるトークンを順次取得する。この演算処理により、制御部11は、訓練データ31に対応する、難易度変更後の新たな楽曲の生成結果を示す出力トークン列を得ることができる。続いて、制御部11は、得られた出力トークン列及び対応する正解データ32に含まれる新たな学習楽曲データ321により示される真値の間の誤差を算出し、算出された誤差の勾配を更に算出する。制御部11は、誤差逆伝播法により、算出された誤差の勾配を逆伝播することで、生成モデル5のパラメータの値の誤差を算出する。制御部11は、算出された誤差に基づいて、生成モデル5のパラメータの値を調整する。制御部11は、所定の条件(例えば、規定回数実行する、算出される誤差の和が閾値以下になる)を満たすまで、上記一連の処理による生成モデル5のパラメータの値の調整を繰り返してよい。
【0088】
この機械学習により、生成モデル5は、各学習データセット3について、訓練データ31に含まれる学習楽曲データ311及び難易度パラメータ313の値から生成される楽曲データが正解データ32に含まれる学習楽曲データ321に適合するように訓練される。したがって、機械学習の結果、与えられた楽曲の難易度を、難易度パラメータにより指定される難易度に変更することで、新たな楽曲を生成する能力を獲得した訓練済みの生成モデル5を生成することができる。機械学習の処理が完了すると、制御部11は、次のステップS103に処理を進める。
【0089】
(ステップS103)
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により生成された訓練済みの生成モデル5に関する情報を学習結果データ125として生成する。学習結果データ125には、訓練済みの生成モデル5を再生するための情報が保持される。一例として、学習結果データ125は、上記機械学習の調整により得られた生成モデル5の各パラメータの値を示す情報を含んでよい。場合によって、学習結果データ125は、生成モデル5の構造を示す情報を含んでよい。構造は、例えば、層の数、各層の種類、各層に含まれるノードの数、隣接する層のノード同士の結合関係等により特定されてよい。制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
【0090】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、モデル生成装置1に接続された外付けの記憶装置であってもよい。
【0091】
学習結果データ125の保存が完了すると、制御部11は、本動作例に係るモデル生成装置1の処理手順を終了する。
【0092】
なお、生成された学習結果データ125は、任意のタイミングで楽曲生成装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ125を楽曲生成装置2に転送してもよい。楽曲生成装置2は、この転送を受信することで、学習結果データ125を取得してもよい。また、例えば、楽曲生成装置2は、通信インタフェース23を利用して、モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ125を取得してもよい。また、例えば、楽曲生成装置2は、記憶媒体92を介して、学習結果データ125を取得してもよい。また、例えば、学習結果データ125は、楽曲生成装置2に予め組み込まれてもよい。
【0093】
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際に、機械学習に使用する複数の学習データセット3の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。これにより、制御部11は、訓練済みの生成モデル5を更新又は新たに生成してもよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を任意の方法で楽曲生成装置2に提供することで、楽曲生成装置2の保持する学習結果データ125を更新してもよい。
【0094】
<楽曲生成装置>
図12は、本実施形態に係る楽曲生成装置2の処理手順の一例を示すフローチャートである。以下で説明する楽曲生成装置2の処理手順は、楽曲生成方法の一例である。ただし、以下で説明する楽曲生成装置2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0095】
(ステップS201)
ステップS201では、制御部21は、データ取得部211として動作し、楽曲の少なくとも一部を示す対象楽曲データ221を取得する。
【0096】
対象楽曲データ221は、適宜生成されてよい。一例では、対象楽曲データ221は、楽曲の少なくとも一部を示すように配列された入力トークン列を含むように構成されてよい。この場合、入力トークン列は、例えば、符号化データ、楽譜等の他の形式の演奏情報から生成されてよい。或いは、入力トークン列は、直接的に生成されてもよい。
【0097】
また、対象楽曲データ221は、任意の経路で取得されてよい。一例では、対象楽曲データ221は、楽曲生成装置2において生成されてよい。この場合、制御部21は、当該生成処理を実行した結果として、対象楽曲データ221を取得してよい。他の一例では、対象楽曲データ221の生成は、楽曲生成装置2以外の他のコンピュータにより実行されてよい。この場合、制御部21は、例えば、ネットワーク、記憶媒体92等を介して、対象楽曲データ221を取得してよい。対象楽曲データ221を取得すると、制御部21は、次のステップS202に処理を進める。
【0098】
(ステップS202)
ステップS202では、制御部21は、パラメータ取得部212として動作し、難易度パラメータ223の値を取得する。
【0099】
難易度パラメータ223の値は、任意の方法により取得されてよい。難易度パラメータ223の値は、例えば、オペレータによる手入力、指定可能な難易度のリストから選択、ランダム、任意の規則に従って決定等の方法により取得されてよい。
【0100】
訓練データ31と同様に、一例では、難易度パラメータ223の値は、複数のレベルのうちのいずれかを示すように構成されてよい。他の一例では、難易度パラメータ223の値は、難易度に関連する1又は複数の要因に応じて定められてもよい。具体例として、難易度パラメータ223の値は、難易度を変更した後の新たな楽曲の演奏音域の幅及び当該新たな楽曲に使用する楽器における同時に操作する最大の操作子の数の少なくともいずれかを示すように構成されてよい。
【0101】
難易度パラメータ223の値を取得すると、制御部21は、次のステップS203に処理を進める。なお、ステップS201及びステップS202の処理を実行するタイミングは、このような例に限定されなくてよい。他の一例では、ステップS202の処理が、ステップS201の処理よりも前に実行されてよい。更に他の一例では、ステップS201の処理及びステップS202の処理は並列的に実行されてもよい。
【0102】
(ステップS203)
ステップS203では、制御部21は、生成部213として動作し、学習結果データ125を参照して、機械学習により訓練済みの生成モデル5の設定を行う。制御部21は、訓練済みの生成モデル5を使用することで、取得された対象楽曲データ221及び難易度パラメータ223の値から、難易度パラメータ223で指定された難易度に楽曲の難易度を変更することで得られる新たな楽曲の少なくとも一部を示す新たな楽曲データ225を生成する。
【0103】
一例では、制御部21は、対象楽曲データ221に含まれる入力トークン列及び難易度パラメータ223の値を訓練済みの生成モデル5に入力し、訓練済みの生成モデル5の演算処理を実行する。上記図9の一例では、制御部21は、入力トークン列及び難易度パラメータ223の値を訓練済みの生成モデル5に順次入力し、訓練済みの生成モデル5の順伝播の演算処理を繰り返し実行することで、出力トークン列を構成するトークンを順次生成する。この演算処理の結果、制御部21は、出力トークン列により構成される新たな楽曲データ225を訓練済みの生成モデル5から取得する。難易度の変更による新たな楽曲の生成(訓練済みの生成モデル5の演算処理)が完了すると、制御部21は、次のステップS204に処理を進める。
【0104】
(ステップS204)
ステップS204では、制御部21は、出力部214として動作し、ステップS203の処理により生成された新たな楽曲データ225を出力する。出力先及び出力形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例では、出力先は、例えば、RAM、記憶部22、記憶媒体、外部記憶装置、他のコンピュータ、他の装置等であってよい。また、一例では、制御部21は、得られた新たな楽曲データ225(例えば、出力トークン列)をそのまま出力してよい。他の一例では、制御部21は、新たな楽曲データ225を適当な形式に変換し、変換により得られた情報を出力してよい。具体例として、出力トークン列の形式で新たな楽曲データ225が得られる場合、制御部21は、得られた出力トークン列を楽譜に変換し、得られた楽譜を出力してよい。この場合、制御部21は、例えば、紙媒体に楽譜を印刷させるための指令を印刷装置(不図示)に出力してもよい。
【0105】
生成された新たな楽曲データ225の出力が完了すると、制御部21は、本動作例に係る楽曲生成装置2の処理手順を終了する。なお、制御部21は、例えば、オペレータからの要求に応じて、上記ステップS201~ステップS204の処理を定期又は不定期に繰り返し実行してよい。この繰り返しの際に、ステップS201で得る対象楽曲データ221の少なくとも一部及びステップS202で得る難易度パラメータ223の値の少なくともいずれかの変更、修正、追加、削除等が適宜行われてよい。これにより、制御部21は、訓練済みの生成モデル5を用いて、難易度を変更した楽曲を様々なバリエーションで生成することができる。
【0106】
<特徴>
以上のとおり、本実施形態では、上記ステップS102の機械学習に使用される各学習データセット3の訓練データ31は、変更後の難易度を示す学習用の難易度パラメータ313を含むように構成される。これにより、生成モデル5は、難易度パラメータ313で指定される難易度に基づいて、入力される元の楽曲(学習楽曲データ311)から新たな楽曲(新たな学習楽曲データ321)を生成するように訓練される。難易度パラメータによれば、生成される新たな楽曲の難易度を多様にコントロールすることができる。そのため、ステップS102の機械学習の処理により、難易度パラメータに基づいて様々な難易度の楽曲を生成する能力を獲得した訓練済みの生成モデル5を生成することができる。
【0107】
また、上記ステップS202では、変更後の難易度を指定するために、難易度パラメータ223の値が取得される。そして、ステップS203では、取得された難易度パラメータ223の値が、訓練済みの生成モデル5による新たな楽曲の生成処理に使用される。これにより、訓練済みの生成モデル5は、難易度パラメータ223の値に応じて、対象楽曲データ221により示される楽曲の難易度を変更する処理を実行することができる。その結果、様々な難易度の楽曲を容易に生成することができる。
【0108】
また、本実施形態において、難易度パラメータ(223、313)の値は、難易度を変更した後の新たな楽曲の演奏音域の幅及び当該新たな楽曲に使用する楽器における同時に操作する最大の操作子の数の少なくともいずれかを示すように構成されてよい。これにより、ステップS102の機械学習の処理では、生成される新たな楽曲の演奏音域幅及び最大操作子数の少なくともいずれかを難易度パラメータにより制御する能力を獲得した訓練済みの生成モデル5を生成することができる。ステップS203の生成処理では、様々な演奏音域幅の楽曲及び様々な最大操作子数の楽曲の少なくともいずれかを容易に生成することができる。
【0109】
また、本実施形態では、生成モデル5は、トークン列の形式で楽曲の入力を受け付けるように構成されてよい。そして、入力トークン列(対象楽曲データ221及び学習楽曲データ311)は、楽曲の拍節の位置を示すように配置された複数の拍節トークンを含むように構成されてよい。これにより、生成モデル5は、拍節トークンにより楽曲の拍節構造を把握した上で、新たな楽曲の生成処理を遂行することができる。そのため、ステップS102の機械学習の処理では、拍節構造に起因する時間的エラーの生じ難い訓練済みの生成モデル5を生成することができる。ステップS203の生成処理では、生成される新たな楽曲(新たな楽曲データ225)において、時間的エラーの生じる確率を低減することができる。
【0110】
また、本実施形態では、生成モデル5は、生成した新たな楽曲をトークン形式で出力するように構成されてよい。そして、出力トークン列(新たな楽曲データ225及び新たな学習楽曲データ321)は、入力トークン列と同様に、楽曲の拍節の位置を示すように配置された複数の拍節トークンを含むように構成されてよい。これにより、仮にステップS203の生成処理において時間的エラーが生じたとしても、出力トークン列に含まれる拍節トークンの位置に基づいて、生じた時間的エラーの生じた箇所を簡単に特定することができる。その結果、得られた新たな楽曲を簡単に修正することができる。ステップS102の機械学習の処理では、そのような能力を有する訓練済みの生成モデル5を生成することができる。
【0111】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。
【0112】
例えば、上記実施形態では、生成モデル5として、Transformerの構成による再帰構造を有する機械学習モデル(図9)を例示した。しかしながら、再帰構造は、図9に示される例に限定されなくてよい。再帰構造は、対象より過去の入力を参照して、対象(現在)の入力に対する処理を実行可能に構成された構造を示す。このような演算が可能であれば、再帰構造は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。他の一例では、再帰構造は、例えば、RNN(Recurrent Neural Network)、LSTM(Long short-term memory)等の公知の構造により構成されてよい。
【0113】
上記実施形態では、生成モデル5は、再帰構造を有するように構成されている。しかしながら、生成モデル5の構成は、このような例に限定されなくてよい。再帰構造は省略されてよい。生成モデル5は、例えば、全結合型ニューラルネットワーク、畳み込みニューラルネットワーク等の公知の構造を有するニューラルネットワークにより構成されてよい。更に、入力トークン列を生成モデル5に入力する形態は、上記実施形態の例に限定されなくてよい。他の一例では、生成モデル5は、入力トークン列に含まれる複数のトークンを一度に受け付けるように構成されてもよい。
【0114】
上記実施形態において、生成モデル5の入力及び出力のデータ形式は、トークン列に限られなくてよく、任意のデータ形式が採用されてよい。楽曲及び難易度パラメータの入力を受け付け、難易度を変更した後の新たな楽曲を出力可能であれば、生成モデル5を構成する機械学習モデルの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。上記実施形態において、複数の層を有する機械学習モデルにより生成モデル5を構成する場合、各層の種類は、実施の形態に応じて適宜選択されてよい。各層には、例えば、畳み込み層、プーリング層、ドロップアウト層、正規化層、全結合層等が採用されてよい。生成モデル5の構造に関して、適宜、構成要素の省略、置換及び追加が可能である。また、生成モデル5は、上記楽曲及び難易度パラメータ以外の情報の入力を更に受け付けるように構成されてもよい。生成モデル5は、上記新たな楽曲以外の情報を更に出力するように構成されてよい。
【0115】
§5 参考例
拍節トークンの有効性を検証するために、以下の第1参考例及び第2参考例に係る訓練済みの生成モデルを生成し、生成された訓練済みの生成モデルの精度を評価した。
【0116】
具体的に、261396サンプル分のオリジナルの楽曲を用意し、上記表1、図6A及び図8Aに示される動作ベースのトークン化方式を採用して、用意した各サンプルの楽曲から訓練データを構成する入力トークン列を生成した。また、オリジナルの楽曲にそれぞれ対応する261396サンプル分の難易度を変更した楽曲を用意した。そして、入力トークン列と同様に、動作ベースのトークン化方式を採用して、難易度変更後の楽曲の各サンプルから、正解データを構成する出力トークン列の真値を生成した。生成された入力トークン列(訓練データ)と出力トークン列の真値(正解データ)とを対応付けることで、261396サンプル分の学習データセットを生成した。第1参考例では、図6A及び図8Aに示されるように、入力トークン列及び出力トークン列の真値それぞれに、小節線及び拍の位置に拍節トークンを配置することで、学習データセットを得た。一方、第2参考例では、入力トークン列及び出力トークン列の真値共に拍節トークンを入れずに(それ以外は、第1参考例と同じ)、学習データセットを得た。
【0117】
第1参考例及び第2参考例に係る生成モデルの構造には、図9に例示されるTransformerを採用した。上記実施形態と同様の方法により、用意した261396サンプル分の学習データセットを使用して、機械学習を実施することにより、第1参考例及び第2参考例に係る訓練済みの生成モデルを生成した。
【0118】
訓練データとは別に1000サンプル分の楽曲(各サンプルは4小節分の時間長)を用意し、用意した楽曲から1000サンプル分の入力トークン列(対象楽曲データ)を得た。学習データセットと同様に、第1参考例に係る入力トークン列には、小節線及び拍それぞれの位置に各拍節トークンを配置した。一方、第2参考例に係る入力トークン列には、拍節トークンを配置しなかった(それ以外は、第1参考例と同じ)。
【0119】
次に、第1参考例及び第2参考例それぞれの訓練済みの生成モデルを使用して、各サンプルの対象楽曲データから新たな楽曲データを示す出力トークン列を得た。そして、オリジナルの楽曲(すなわち、対象楽曲データにより示される楽曲)に対して、出力トークン列により示される難易度変更後の楽曲において拍数のずれが生じたか否かを評価した。その結果、第2参考例では、17.4%の確率で拍数のずれが生じた。一方、第1参考例では、4.1%で拍数のずれが生じた。この結果から、拍節構造を示す拍節トークンを入れることで、時間的エラーが起きる確率を大きく低減できることが分かった。
【符号の説明】
【0120】
1…モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
81…モデル生成プログラム、91…記憶媒体、
111…学習データ取得部、112…学習処理部、
113…保存処理部、125…学習結果データ、
2…楽曲生成装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
82…楽曲生成プログラム、92…記憶媒体、
211…データ取得部、212…パラメータ取得部、
213…生成部、214…出力部、
221…対象楽曲データ、223…難易度パラメータ、
225…新たな楽曲データ、
3…学習データセット、
31…訓練データ、
311…学習楽曲データ、313…難易度パラメータ、
32…正解データ、321…新たな学習楽曲データ、
5…生成モデル
図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図9
図10
図11
図12