(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-10
(45)【発行日】2022-08-19
(54)【発明の名称】音楽モデル生成システム、自動作曲システム、音楽モデル生成方法、およびコンピュータプログラム
(51)【国際特許分類】
G10H 1/00 20060101AFI20220812BHJP
【FI】
G10H1/00 102Z
(21)【出願番号】P 2020012430
(22)【出願日】2020-01-29
【審査請求日】2020-11-20
【新規性喪失の例外の表示】特許法第30条第2項適用 研究集会での発表 研究集会名 :44th IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP) 論文タイトル:UNSUPERVISED MELODY STYLE CONVERSION 論文公開日 :2019年4月17日 口頭発表日 :2019年5月16日 〔刊行物等〕 出版物による公開 出版物名 :研究報告音楽情報科学 発行者名 :一般社団法人 情報処理学会 論文名 :教師なしスタイル変換によるメロディーの自動生成 発行日 :2019年8月20日 〔刊行物等〕 研究集会での発表 研究集会名 :第124回音楽情報科学研究会 タイトル :教師なしスタイル変換によるメロディーの自動生成 スタイル変換による多様なスタイルのメロディー自動生成(デモンストレーション) 発表日 :2019年8月27日 〔刊行物等〕 ウェブサイトでの公開 サイト名 :多様なスタイルによる自動音楽生成 URL :https://melodyarrangement.github.io/demo-ja.html https://melodyarrangement.github.io/demo-en.html 公開日 :2019年6月12日
(73)【特許権者】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】100125117
【氏名又は名称】坂田 泰弘
(74)【代理人】
【識別番号】100086933
【氏名又は名称】久保 幸雄
(72)【発明者】
【氏名】中村 栄太
(72)【発明者】
【氏名】吉井 和佳
【審査官】菊池 智紀
(56)【参考文献】
【文献】米国特許出願公開第2009/0071315(US,A1)
【文献】国際公開第2021/106694(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00-7/02
G10H 1/00-7/12
(57)【特許請求の範囲】
【請求項1】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成システムであって、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率ならびに音高クラスおよび拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意する初期処理手段と、
前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの音高クラスおよび拍節位置が定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行する出現確率算出手段と、
前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行する調整手段と、
所定の条件が満たされたか否かを判定する判定手段と、
を有し、
前記出現確率算出手段および前記調整手段が、それぞれ、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する、
ことを特徴とする音楽モデル生成システム。
【請求項2】
前記初期処理手段は、ρ番目のスタイルである場合に最初の音符として音高クラスがqでありかつ拍節位置がbである音符が出現する初期確率およびρ番目のスタイルである場合に音高クラスがq’でありかつ拍節位置がb’である音符から音高クラスがqでありかつ拍節位置がbである音符へ遷移する遷移確率それぞれのパラメータを前記生成確率に関連するパラメータとして有するマルコフモデルを、前記N個の仮モデルとして用意する、
請求項1に記載の音楽モデル生成システム。
【請求項3】
前記初期処理手段は、ρ番目のスタイルである場合に音高クラスがq’でありかつ拍節位置がb’である音符から音高クラスがqでありかつ拍節位置がbである音符へ遷移する遷移確率のパラメータを前記生成確率に関連するパラメータとして有するマルコフモデルを、前記N個の仮モデルとして用意する、
請求項1に記載の音楽モデル生成システム。
【請求項4】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成システムであって、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率および音高クラスを有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意する初期処理手段と、
前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの音高クラスが定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行する出現確率算出手段と、
前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行する調整手段と、
所定の条件が満たされたか否かを判定する判定手段と、
を有し、
前記出現確率算出手段および前記調整手段が、それぞれ、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する、
ことを特徴とする音楽モデル生成システム。
【請求項5】
前記初期処理手段は、ρ番目のスタイルである場合に最初の音符として音高クラスがqである音符が出現する初期確率およびρ番目のスタイルである場合に音高クラスがq’である音符から音高クラスがqである音符へ遷移する遷移確率それぞれのパラメータを前記生成確率に関連するパラメータとして有するマルコフモデルを、前記仮モデルとして用意する、
請求項4に記載の音楽モデル生成システム。
【請求項6】
前記初期処理手段は、ρ番目のスタイルである場合に音高クラスがq’である音符から音高クラスがqである音符へ遷移する遷移確率それぞれのパラメータを前記生成確率に関連するパラメータとして有するマルコフモデルを、前記仮モデルとして用意する、
請求項4に記載の音楽モデル生成システム。
【請求項7】
前記N個の仮モデルそれぞれのパラメータは、音高クラスそれぞれがトニックである
トニック確率が含まれる、
請求項1
ないし請求項6のいずれかに記載の音楽モデル生成システム。
【請求項8】
前記出現確率算出手段および前記調整手段は、前
記楽曲を共通の調に揃えて前記出現確率を算出しまたは
前記N個の仮モデルのパラメータを調整する、
請求項1ないし請求項7のいずれかに記載の音楽モデル生成システム。
【請求項9】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成システムであって、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率および拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意する初期処理手段と、
前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの拍節位置が定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行する出現確率算出手段と、
前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行する調整手段と、
所定の条件が満たされたか否かを判定する判定手段と、
を有し、
前記出現確率算出手段および前記調整手段が、それぞれ、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する、
ことを特徴とする音楽モデル生成システム。
【請求項10】
前記初期処理手段は、ρ番目のスタイルである場合に最初の音符として拍節位置がbである音符が出現する初期確率およびρ番目のスタイルである場合に拍節位置がb’である音符から拍節位置がbである音符へ遷移する遷移確率それぞれのパラメータを前記生成確率に関連するパラメータとして有するマルコフモデルを、前記仮モデルとして用意する、
請求項9に記載の音楽モデル生成システム。
【請求項11】
前記初期処理手段は、ρ番目のスタイルである場合に拍節位置がb’である音符から拍節位置がbである音符へ遷移する遷移確率それぞれのパラメータを前記生成確率に関連するパラメータとして有するマルコフモデルを、前記仮モデルとして用意する、
請求項9に記載の音楽モデル生成システム。
【請求項12】
前記所定の条件は、前記算出ステップと前記調整ステップとを交互に繰り返し行った回数が所定の回数に達することである、
請求項1
ないし請求項11のいずれかに記載の音楽モデル生成システム。
【請求項13】
前記所定の条件は、前記N個の仮モデルのうちのいずれか
のパラメータの変化量または変化率が所定の値以下になることである、
請求項1
ないし請求項11のいずれかに記載の音楽モデル生成システム。
【請求項14】
請求項1ないし請求項
3のいずれかに記載する音楽モデル生成システムと、
前記N個のスタイルのうちの指定されたスタイルの新たな楽曲を生成する作曲手段と、を有し、
前記音楽モデル生成システムの前記判定手段は、前記所定の条件が満たされるまで前記算出処理および前記調整処理が行われた前記N個の仮モデルを前記N個のスタイルそれぞれの前記音楽モデルとして記憶手段に記憶させ、
前記作曲手段は、前記指定されたスタイルの前記音楽モデルに基づいて前記新たな楽曲を生成する、
ことを特徴とする自動作曲システム。
【請求項15】
2つのメロディの類似度を算出するための編集モデルを前記N個のスタイルのうちの第一のスタイルの前記音楽モデルおよび第二のスタイルの前記音楽モデルに基づいて生成する編集モデル生成手段と、
前記第二のスタイルの前記音楽モデルに基づいて複数の候補メロディを生成するメロディ生成手段と、
前記類似度として、前記複数の候補メロディそれぞれの、前記第一のスタイルを有しかつ編曲する対象である対象メロディとの類似度を前記編集モデルに基づいて算出する類似度算出手段と、
前記複数の候補メロディのうちの前記類似度が最も高いものまたは所定の値以上のものを前記対象メロディの編集メロディとして選出する選出手段と、
を有する、
請求項14に記載の自動作曲システム。
【請求項16】
前記N個のスタイルのうちの第一のスタイルの第一のメロディと第二のスタイルの第二のメロディとの類似度を算出する類似度関数および前記第二のスタイルへの前記第二のメロディの適合度を算出する適合度関数によって編曲の適切度を算出するための編集モデルを前記第一のスタイルの前記音楽モデルおよび前記第二のスタイルの前記音楽モデルに基づいて生成する編集モデル生成手段と、
前記第二のスタイルの前記音楽モデルに基づいて複数の候補メロディを生成するメロディ生成手段と、
前記複数の候補メロディそれぞれの、前記第一のスタイルを有しかつ編曲する対象である対象メロディとの前記適切度を前記編集モデルに基づいて算出する適切度算出手段と、
前記複数の候補メロディのうちの前記適切度が最も高いものまたは所定の値以上のものを前記対象メロディの編集メロディとして選出する選出手段と、
を有する、
請求項14に記載の自動作曲システム。
【請求項17】
前記N個のスタイルのうちの第一のスタイルの第一のメロディと第二のスタイルの第二のメロディとの類似度を算出する類似度関数および前記第二のスタイルへの前記第二のメロディの適合度を算出する適合度関数によって編曲の適切度を算出するための編集モデルを前記第一のスタイルの前記音楽モデルおよび前記第二のスタイルの前記音楽モデルに基づいて生成する編集モデル生成手段と、
前記第一のスタイルを有する対象メロディを前記編集モデルに基づいて動的計画法によって前記第二のスタイルに編曲する編曲手段と、
を有する、
請求項14に記載の自動作曲システム。
【請求項18】
請求項
4ないし請求項
13のいずれかに記載する音楽モデル生成システムと、
前記N個のスタイルのうちの指定されたスタイルの新たな楽曲を生成する作曲手段と、を有し、
前記音楽モデル生成システムの前記判定手段は、前記所定の条件が満たされるまで前記算出処理および前記調整処理が行われた前記N個の仮モデルを前記N個のスタイルそれぞれの前記音楽モデルとして記憶手段に記憶させ、
前記作曲手段は、前記指定されたスタイルの前記音楽モデルに基づいて前記新たな楽曲を生成する、
ことを特徴とする自動作曲システム。
【請求項19】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成方法であって、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率ならびに音高クラスおよび拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意し、
1または複数のコンピュータのうちのいずれかが、前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの音高クラスおよび拍節位置が定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行し、
前記1または複数のコンピュータのうちのいずれかが、前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行し、
前記1または複数のコンピュータのうちのいずれかが、所定の条件が満たされたか否かを判定し、
前記1または複数のコンピュータのうちのいずれかが、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する、
ことを特徴とする音楽モデル生成方法。
【請求項20】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成方法であって、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率および音高クラスを有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意し、
1または複数のコンピュータのうちのいずれかが、前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの音高クラスが定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行し、
前記1または複数のコンピュータのうちのいずれかが、前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行し、
前記1または複数のコンピュータのうちのいずれかが、所定の条件が満たされたか否かを判定し、
前記1または複数のコンピュータのうちのいずれかが、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する、
ことを特徴とする音楽モデル生成方法。
【請求項21】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成方法であって、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率および拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意し、
1または複数のコンピュータのうちのいずれかが、前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの拍節位置が定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行し、
前記1または複数のコンピュータのうちのいずれかが、前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行し、
前記1または複数のコンピュータのうちのいずれかが、所定の条件が満たされたか否かを判定し、
前記1または複数のコンピュータのうちのいずれかが、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する、
ことを特徴とする音楽モデル生成方法。
【請求項22】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成するためのコンピュータプログラムであって、
コンピュータに、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率ならびに音高クラスおよび拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意する初期化処理を実行させ、
前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの音高クラスおよび拍節位置が定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行させ、
前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行させ、
所定の条件が満たされたか否かを判定する判定処理を実行させ、
前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し実行させる、
ことを特徴とするコンピュータプログラム。
【請求項23】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成するためのコンピュータプログラムであって、
コンピュータに、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率および音高クラスを有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意する初期化処理を実行させ、
前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの音高クラスが定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行させ、
前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行させ、
所定の条件が満たされたか否かを判定する判定処理を実行させ、
前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し実行させる、
ことを特徴とするコンピュータプログラム。
【請求項24】
N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成するためのコンピュータプログラムであって、
コンピュータに、
前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率および拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータ
を有する時系列モデルであるN個の仮モデルを
、当該各パラメータの初期値の組合せが相違するように用意する初期化処理を実行させ、
前記N個のスタイルごとに複数用意され
た、連続する複数の音符それぞれの拍節位置が定まっている楽曲のそれぞれにおいて
、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行させ、
前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づい
て調整する調整処理を実行させ、
所定の条件が満たされたか否かを判定する判定処理を実行させ、
前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、AI(Artificial Intelligence)を適用した作曲または編曲の技術に関する。
【背景技術】
【0002】
従来、コンピュータによる自動作曲の技術が提案されている。例えば、Orpheusは、日本語の歌詞が入力されスタイルが指定されると、入力された歌詞に応じかつ指定されたスタイルを有する楽曲を自動的に生成する(非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【文献】東京大学 大学院 システム情報学 第一研究室 ウェブサイト、http://www.orpheus-music.org/
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来の技術によると、スタイルのデータを用意するためには、人間がスタイルの特徴を分析しなければならない。したがって、指定可能なスタイルを増やすには、コストが嵩んでしまう。
【0005】
本発明は、このような課題に鑑み、従来よりも容易にAIによる作曲を実現することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一形態に係る音楽モデル生成システムは、N個のスタイルそれぞれの、音楽的な特性を示す音楽モデルを生成する、音楽モデル生成システムであって、前記N個のスタイルのうちのρ番目のスタイルが出現するスタイル変数確率ならびに音高クラスおよび拍節位置を有する音符の列のρ番目のスタイルにおける生成確率それぞれに関連するパラメータを有する時系列モデルであるN個の仮モデルを、当該各パラメータの初期値の組合せが相違するように用意する初期処理手段と、前記N個のスタイルごとに複数用意された、連続する複数の音符それぞれの音高クラスおよび拍節位置が定まっている楽曲のそれぞれにおいて、前記N個の仮モデルそれぞれに示される特性が出現する出現確率を算出する算出処理を実行する出現確率算出手段と、前記N個の仮モデルそれぞれの、前記スタイル変数確率および前記生成確率それぞれに関連するパラメータを前記出現確率に基づいて調整する調整処理を実行する調整手段と、所定の条件が満たされたか否かを判定する判定手段と、を有し、前記出現確率算出手段および前記調整手段が、それぞれ、前記所定の条件が満たされるまで前記算出処理および前記調整処理を交互に繰り返し行うことによって、前記N個のスタイルそれぞれの前記音楽モデルを生成する。
【0007】
好ましくは、前記所定の条件は、前記算出ステップと前記調整ステップとを交互に繰り返し行った回数が所定の回数に達することである。
【0008】
または、前記N個のスタイルのうちの第一のスタイルの第一のメロディと第二のスタイルの第二のメロディとの類似度を算出する類似度関数および前記第二のスタイルへの前記第二のメロディの適合度を算出する適合度関数によって編曲の適切度を算出するための編集モデルを前記第一のスタイルの前記音楽モデルおよび前記第二のスタイルの前記音楽モデルに基づいて生成する編集モデル生成手段と、前記第一のスタイルを有する対象メロディを前記編集モデルに基づいて動的計画法によって前記第二のスタイルに編曲する編曲手段と、を有する。
【発明の効果】
【0009】
本発明によると、従来よりも容易にAIによる作曲を実現することができる。特に、様々な楽曲を用意しNの値を大きくすることによって、多様なスタイルでの作曲のための音楽モデルを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】自動音楽生成装置を含むネットワークシステムの例を示す図である。
【
図2】自動音楽生成装置のハードウェア構成の例を示す図である。
【
図3】自動音楽生成装置の機能的構成の例を示す図である。
【
図4】自動音楽生成装置の全体的な処理の流れの例を説明するフローチャートである。
【
図5】作曲学習処理の流れの例を説明するフローチャートである。
【
図6】作曲処理の流れの例を説明するフローチャートである。
【
図7】編曲学習処理の流れの例を説明するフローチャートである。
【
図8】編曲処理の流れの例を説明するフローチャートである。
【発明を実施するための形態】
【0011】
〔1 自動音楽生成装置1の全体〕
図1は、自動音楽生成装置1を含むネットワークシステムの例を示す図である。
図2は、自動音楽生成装置1のハードウェア構成の例を示す図である。
図3は、自動音楽生成装置1の機能的構成の例を示す図である。
図4は、自動音楽生成装置1の全体的な処理の流れの例を説明するフローチャートである。
【0012】
図1に示す自動音楽生成装置1は、ユーザの好みのスタイルの楽曲を自動的に作曲し、または、ある原曲をユーザの好みのスタイルに編曲するシステムである。「スタイル」は、クラシック、ポピュラー、カントリー、ロック、演歌、およびジャズなどの音楽スタイルである。または、中世西洋音楽、ルネサンス音楽、バロック音楽、古典派音楽、およびロマン派音楽のような、より具体的なスタイルであってもよい。
【0013】
従来の自動作曲システムおよび自動編曲システムは、スタイルごとの音楽的な特徴を人間が解析してルール化したデータに基づいて作曲しまたは編曲する。つまり、ルールベースの人工知能によって作曲しまたは編曲する。
【0014】
これに対し、自動音楽生成装置1は、機械学習によってモデル(学習済モデル)を生成し、生成したモデルに基づいて作曲しまたは編曲する。機械学習のアルゴリズムとして、統計的でありかつ教師なしの機械学習のアルゴリズムが用いられる。以下、この仕組みを説明する。
【0015】
なお、楽曲には、主旋律および対旋律など複数のメロディーが含まれていることがあるが、本実施形態では、説明の簡単のため、単音の主旋律のみからなりかつ4分の4拍子の楽曲を作曲しまたは編曲する場合を例に説明する。
【0016】
自動音楽生成装置1は、
図2に示すように、メインプロセッサ10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、補助記憶装置13、ネットワークアダプタ14、キーボード15、ポインティングデバイス16、データ入出力ボード17、ディスプレイ18、および音声再生ユニット19などによって構成される。
【0017】
ROM12または補助記憶装置13には、オペレーティングシステムのほか種々のプログラムがインストールされている。特に、本実施形態では、プログラムの1つとして音楽生成プログラム2(
図3参照)がインストールされている。補助記憶装置13として、ハードディスクまたはSSD(Solid State Drive)などが用いられる。
【0018】
RAM11は、自動音楽生成装置1のメインメモリである。RAM11には、オペレーティングシステムのほか音楽生成プログラム2などのプログラムがロードされる。
【0019】
メインプロセッサ10は、RAM11にロードされたプログラムを実行する。メインプロセッサ10として、GPU(Graphics Processing Unit)またはCPU(Central Processing Unit)などが用いられる。
【0020】
ネットワークアダプタ14は、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコルで通信回線42を介して端末装置41など他の装置と通信するための装置である。ネットワークアダプタ14として、NIC(Network Interface Card)またはWi-Fi用の子機が用いられる。
【0021】
キーボード15およびポインティングデバイス16は、コマンドまたはデータなどをオペレータが入力するための入力装置である。
【0022】
データ入出力ボード17は、周辺機器とデータのやり取りを行うための装置である。データ入出力ボード17として、例えば、USB(Universal Serial Bus)またはBluetooth(登録商標)などに準拠した入出力ボードが用いられる。
【0023】
ディスプレイ18は、コマンドもしくはデータを入力するための画面またはメインプロセッサ10による演算の結果などを表示する。音声再生ユニット19は、音声ボードおよびスピーカなどによって構成され、楽曲を再生する。
【0024】
音楽生成プログラム2には、
図3に示すメインモジュール20、作曲モジュール21および編曲モジュール25が含まれる。作曲モジュール21は、ユーザの好みのスタイルの楽曲を自動的に作曲するためのモジュールである。編曲モジュール25は、ある原曲をユーザの好みのスタイルに編曲するモジュールである。
【0025】
〔2 メインモジュール〕
メインモジュール20は、全体的な処理を規定するモジュールである。メインモジュール20によると、自動音楽生成装置1は、
図4に示す手順で全体的な処理を実行する。
【0026】
メインモジュール20の起動後、自動音楽生成装置1は、メニュー画面を表示する(S101)。
【0027】
作曲のための学習のコマンドがメニュー画面において入力されると(S102でYes)、自動音楽生成装置1は、作曲学習処理を実行する(S103)。または、作曲のコマンドが入力されると(S104でYes)、作曲処理を実行する(S105)。作曲学習処理および作曲処理は、後述するように、作曲モジュール21に基づいて行われる。
【0028】
または、編曲のための学習のコマンドが入力されると(S106でYes)、自動音楽生成装置1は、編曲学習処理を実行する(S107)。または、編曲のコマンドが入力されると(S108でYes)、編曲処理を実行する(S109)。編曲学習処理および編曲処理は、後述するように、編曲モジュール25に基づいて行われる。
【0029】
〔3 作曲モジュール〕
作曲モジュール21は、
図3に示すように学習データ記憶部211、初期化処理部212、トニック推定部213、事後確率算出部214、パラメータ更新部215、収束判定部216、スタイルモデル記憶部217、音符決定部218、系列変換部219、および作曲データ生成部220などによって構成される。上述の通り、作曲モジュール21は、作曲学習処理および作曲処理を実行するためのモジュールである。作曲学習処理が機械学習のフェーズに相当し、作曲処理が推論のフェーズに相当する。
【0030】
以下、作曲モジュール21の各部の処理を機械学習のフェーズおよび推論のフェーズに大別して説明する。
【0031】
〔3.1 機械学習のフェーズ〕
〔3.1.1 概要〕
図5は、作曲学習処理の流れの例を説明するフローチャートである。機械学習のフェーズにおいては、作曲用の学習済モデルが、
図5に示す手順で生成される。
【0032】
図3の初期化処理部212ないし収束判定部216は、学習器を構成し、推論つまり自動作曲のための学習済モデルを教師なし機械学習によってスタイルごとに生成する。
【0033】
オペレータは、モデルを必要とするスタイル(以下、「対象スタイル」と記載する。)ごとに、機械学習用の学習データとして多数の楽曲の楽曲データ60を用意し自動音楽生成装置1へ入力する。これらの楽曲データ60は、学習データ記憶部211に記憶される(
図5のS701)。楽曲データ60の構成および用意については、後述する。さらに、オペレータは、対象スタイルの数を入力する。以下、対象スタイルの数を「対象スタイル数N
M」と記載する。例えば、対象スタイルがロックおよび演歌の2つである場合は、対象スタイル数N
Mとして「2」を入力する。すると、対象スタイル数N
Mが初期化処理部212によって受け付けられる(S702)。
【0034】
なお、本実施形態では、教師なし機械学習によって学習済モデルを生成するので、それぞれの楽曲データ60がどのスタイルに属するのかを入力する必要がない。
【0035】
初期化処理部212は、対象スタイル数NMのマルコフモデルを用意し、各マルコフモデルのパラメータにランダムな値を設定する(S703)。この時点において、オペレータは、どのマルコフモデルがどの対象スタイルに対応するのか分からない。なお、これらのマルコフモデルのうちの2つ以上が偶然、一致することがある。このような場合は、各マルコフモデルのパラメータが相違するように、ステップS703の処理をやり直す。
【0036】
事後確率算出部214およびパラメータ更新部215は、EM(Expectation-Maximization)アルゴリズムによって各マルコフモデルのパラメータを調整する。
【0037】
事後確率算出部214は、Eステップの処理を行い(S704)、パラメータ更新部215は、Mステップの処理を行う(S705)。Eステップの処理およびMステップの処理を交互に繰り返すことによって、各マルコフモデルにいずれかの対象スタイルの特徴が表われるように徐々に調整される。
【0038】
収束判定部216は、収束の判定を行う(S706)。例えば、マルコフモデルのパラメータのうちの少なくとも1つまたは全部が、Eステップの処理およびMステップの処理を繰り返してもほとんど変化しなくなった場合に、理想的な値に収束したと判定する。または、所定の回数、Eステップの処理およびMステップの処理を繰り返した場合に、収束したと判定する。そして、収束したと判定した場合は(S707でYes)、その時点の各マルコフモデルを学習済モデルとしてスタイルモデル記憶部217に記憶させる(S708)。
【0039】
収束していないと判定された場合は(S707でNo)、ステップS704に戻って、Eステップの処理およびMステップの処理が再度、実行される。
【0040】
〔3.1.2 楽曲データ60の構成および用意〕
楽曲データ60は、次の式(1)のように、楽曲のメロディーすなわち楽曲を構成する音符ごとの音高および発音時刻を示す。
【0041】
【0042】
「M」は楽曲に含まれる小節の数であり、「Nm」はm番目の小節に含まれる音符の数である。pmnおよびsmnは、それぞれ、m番目の小節のn番目の音符の音高および発音時刻である。
【0043】
音高は、MIDI(Musical Instrument Digital Interface)規格におけるノートナンバと同様の値によって表わされる。つまり、音高は、半音上がるごとに「1」上がり、半音下がるごとに「1」下がる。音高の範囲は、0~127の各整数値および休符を表わす「-1」からなる。つまり、pmn∈{-1,0,1,2,…,127}であり、中央のド(C)の値は「60」である。
【0044】
本実施形態では、楽曲の拍子が4分の4拍子であるものとする。また、1つの音の長さの最短が16分音符の1/3であり、最長が1小節(つまり、全音符)である。したがって、例えば4分音符の長さは、「12」である。また、楽曲の先頭の時刻が「0」である。したがって、発音時刻smn∈{0,1,…,47}である。
【0045】
または、楽曲データ60は、次の式(2)のように、楽曲を小節ごとに区切らずに楽曲を構成する音符ごとの音高および発音時刻を示してもよい。
【0046】
【0047】
「I」は、楽曲に含まれる音符の数である。「pi」および「si」は、それぞれ、i番目の音符の音高および発音時刻である。楽曲がj小節からなる場合は、si∈{0,1,…,(48j-1)}である。
【0048】
楽曲のMIDIまたはMusicXML(Extensible Markup Language)のフォーマットのファイルがあれば、このファイルを変換することによって楽曲データ60が得られる。そこで、オペレータは、MIDIまたはMusicXMLのファイルを楽曲データ60に変換し、ネットワークアダプタ14またはデータ入出力ボード17を介して自動音楽生成装置1へ入力し学習データ記憶部211に記憶させればよい。または、変換を自動音楽生成装置1が実行してもよい。
【0049】
なお、逆に、楽曲データ60をMIDIまたはMusicXMLのファイルに変換することもできる。この方向の変換は、後述するように、作曲および編曲の際に用いられる。
【0050】
ところで、以下に説明する、音楽生成のための統計学習手法において、式(1)または式(2)で表わす値をそのまま使用すると、モデルのパラメータが多すぎるので効果的な学習ができないことがある。
【0051】
そこで、楽曲データ60において、自由度をより低くするために、次の式(3)のように、オクターブ内のドを基準とする相対値(音高クラス、ピッチクラス)によって音高を表わし、かつ、小節内の先頭を基準とする相対位置(拍節位置)で発音時刻を表わしてもよい。
【0052】
【0053】
「qmn」および「bmn」は、それぞれ、m番目の小節のn番目の音符の音高クラスおよび拍節位置である。以下、音高クラスの個数を「Q」と記載し、音符の長さのパターン数を「B」と記載する。本実施形態では、Q=12、B=48、である。
【0054】
または、楽曲データ60は、(4)式のように各音符の音高を音高クラスによって表わし発音時刻を拍節位置によって表わしてもよい。
【0055】
【0056】
「qi」および「bi」は、それぞれ、i番目の音符の音高クラスおよび拍節位置である。
【0057】
音符が休符である場合を除くと、qi≡pi(mod12)∈{0,1,…,11}={C,C#,…,B}の関係が成り立つ。音符が休符である場合は、qi=pi、である。さらに、bi≡si(mod48)∈{0,1,…,47}の関係が成り立つ。これらの関係に基づいて、式(1)から式(3)へ変換し、または式(2)から式(4)へ変換することができる。
【0058】
したがって、楽曲のMIDIまたはMusicXMLのファイルがあれば、式(3)または式(4)形式でメロディーを示すデータが楽曲データ60として得られる。後述する各処理においては、式(3)または式(4)の形式の値が適宜、用いられる。
【0059】
以下、H(H≧2)曲の楽曲の楽曲データ60が用意された場合を例に説明する。各楽曲には、1、2、3、…、Hのいずれかのシーケンス番号が付いている。説明の簡単のため、H曲の楽曲すべてが4分の4拍子であるものとする。また、説明の簡単のため、休符を扱わない場合を例に説明する。なお、h∈{1,…,H}である。式(4)で表わされる系列を「qb系列」と記載する。また、式(2)で表わされる系列を「ps系列」と記載する。
【0060】
特にh番目の楽曲のメロディーを表わしたい場合は、式(3)および式(4)をそれぞれ式(5)または式(6)式のように記載することができる。
【0061】
【0062】
〔3.1.3 マルコフモデルの構成〕
各マルコフモデルには、スタイル変数確率、初期確率、および遷移確率の3つのパラメータよって構成され、それぞれ、次の式(7)、式(8)、および式(9)によって表わされる。
θ(ρ) …(7)
πini(q,b|ρ) …(8)
π(q,b|q',b',ρ) …(9)
式(7)は、ρ番目の対象スタイルが出現する確率を表わしている。したがって、NM個の要素からなる確率ベクトルである。なお、ρ∈{1,…,NM}である。
【0063】
式(8)は、スタイルがρ番目の対象スタイルである場合の最初の音符として(q,b)が出現する確率を表わしている。したがって、QB個の確率ベクトルがNM個、集まったものである。
【0064】
式(9)は、スタイルがρ番目の対象スタイルである場合において(q',b')の直後に(q,b)が出現する確率すなわち(q',b')から(q,b)へ遷移する確率を表わしている。したがって、QB×QB個の要素からなる確率行列がNM個、集まったものである。
【0065】
ところで、これらの楽曲データ60のそれぞれに示される楽曲(メロディー)の音階(調)がすべて同じであれば、自動音楽生成装置1は、音階を揃える処理を行うことなく後述の方法で機械学習を行うことができる。または、それぞれの音階が異なっていても、それぞれの音階が分かっている場合は、自動音楽生成装置1は、すべての楽曲を共通のトニックの音階に移調し、後述の方法で機械学習を行う。
【0066】
しかし、音階が揃っておらず、かつ、音階が分からない場合は、楽曲データ60をそのまま使用して機械学習を行うと、精度のよい学習済モデルが得られないことがある。
【0067】
そこで、自動音楽生成装置1は、楽曲の調が分からない場合であっても機械学習を行うことができるように、トニックの自由度を持った移調対称マルコフモデルを使用する。なお、式(7)~(9)が表わすような、トニックの自由度のないマルコフモデルは、「単純マルコフモデル」と呼ばれる。
【0068】
移調対称マルコフモデルは、単純マルコフモデルと同じ初期確率πini(q,b)および遷移確率π(q,b|q',b')を有し、さらに、トニック確率P(k)を有する。「k」はトニック変数であって、k∈{0,1,…,11}={C,C#,…,B}である。ただし、楽曲を移調しても生成確率が変わらないという移調対称性を仮定する。すると、次の式(10)、式(11)、および式(12)が成り立つ。
P(k)=1/12 …(10)
πini(q,b|k)=πini(q-k,b) …(11)
π(q,b|q',b',k)=π(q-k,b|q'-k,b') …(12)
このように、式(11)および式(12)それぞれの右辺に示すパラメータは、単純なマルコフモデルのパラメータである。以下、それぞれのパラメータを「ベース初期確率」および「ベース遷移確率」と記載する。また、ベース初期確率およびベース遷移確率を有する単純マルコフモデルを「ベースマルコフモデル」と記載する。
【0069】
なお、トニック変数kおよびqb系列(式(4)で表わされる系列)の同時生成確率とベースマルコフモデルとの関係は、次の式(13)の通りである。
【0070】
【0071】
さらに、トニック変数kが与えられた場合のqb系列の条件付き生成確率は、次の式(14)の通りである。
【0072】
【0073】
そして、式(13)および式(14)より、次の式(15)が成り立つ。
【0074】
【0075】
さらに、式(10)、式(11)、および式(12)にスタイル変数ρを、それぞれP(ρ,k)、πini(q,b|ρ,k)、およびπ(q,b|q',b',ρ,k)のように導入することによって、NM個の移調対称マルコフモデルを混合させる。そして、移調対称性を仮定すると、これらの式を式(16)、式(17)、および式(18)のように書き換えることができる。
P(ρ,k)=(1/12)P(ρ)=(1/12)θ(ρ) …(16)
πini(q,b|ρ,k)=πini(q-k,b|ρ) …(17)
π(q,b|q',b',ρ,k)=π(q-k,b|q'-k,b',ρ) …(18)
各スタイル(スタイル変数ρが1、…、NMであるそれぞれのスタイル)に対するこの移調対称マルコフモデル(移調混合対称マルコフモデル)も、ベース初期確率およびベース遷移確率を有する単純マルコフモデルなので、ベースマルコフモデルである。なお、トニック変数kおよびqb系列の同時生成確率とこのベースマルコフモデルとの関係は、次の式(19)の通りである。
【0076】
【0077】
後半の項は、トニック変数が与えられた場合の、qb系列の条件付生成確率である。この条件付生成確率は、次の式(20)~(21)のように表わされる。
【0078】
【0079】
これを用いると、式(19)の左辺に示す同時生成確率は、次の式(22)のように表わされる。
【0080】
【0081】
そして、スタイル変数確率、ベース初期確率、およびベース遷移確率の3つのパラメータとして、式(16)、式(17)、および式(18)それぞれの右辺の値を有するベースマルコフモデルが、学習用のベースマルコフモデルとして用いられる。
【0082】
ところで、学習済の移調対称マルコフモデルが存在する場合は、
図3のトニック推定部213は、楽曲データ60に示される楽曲のqb系列の調(トニック)を次のように推定することができる。
【0083】
ベイズの公式により、次の式(23)が成り立つ。
【0084】
【0085】
式(23)の右辺の分母はkに依らないので、次の式(24)が成り立つ。
【0086】
【0087】
ここで、トニック変数条件付き確率は、式(11)、式(12)、式(14)、および式(15)より、次の式(25)式のように表わすことができる。
【0088】
【0089】
左辺がトニック変数条件付き確率である。式(25)によると、qb系列をトニック変数kだけ移調して、ベース初期確率およびベース遷移確率を用いて計算した生成確率と見なせる。よって、与えられた系列のトニックがトニック変数kに対応する音高クラスである確率は、この系列をトニック変数kだけ移調した時のベースマルコフモデルに対する生成確率に比例する。そこで、この確率を最大にするkを求めることによって、この系列の最も尤もらしいトニックを推定することができる。
【0090】
トニックを推定することができる場合は、式(16)~(18)それぞれの右辺の値をパラメータとして有するベースマルコフモデルの代わりに、式(7)~(9)それぞれの値をパラメータとして有するベースマルコフモデルを、学習用のベースマルコフモデルとして用いることができる。
【0091】
以下、式(7)~(9)それぞれの値をパラメータとして有するベースマルコフモデルを学習用のモデル61(
図3参照)として用いる場合を例に説明する。
【0092】
〔3.1.4 学習用のモデルの準備〕
初期化処理部212は、対象スタイルごとのモデル61のスタイル変数確率θ(ρ)、ベース初期確率πini(q,b|ρ)、およびベース遷移確率π(q,b|q',b',ρ)の各パラメータの初期値をランダムに設定する。
【0093】
スタイル変数確率、ベース初期確率、およびベース遷移確率は、上述の通り、Eステップの処理およびMステップの処理が交互に繰り返されることによって調整される。以下、t回目のEステップの処理およびMステップの処理の直後のスタイル変数確率、ベース初期確率、およびベース遷移確率それぞれの値を次の式(26)、式(27)、および式(28)のように表わす。
【0094】
【0095】
なお、t=0のときの式(26)、式(27)、および式(28)の各値がスタイル変数確率、ベース初期確率、およびベース遷移確率の初期値である。また、式(26)、式(27)、および式(28)をそれぞれθ
t、π
ini
t、およびπ
tと記載する。このように、本実施形態では、ベクトルの記号として下線を用いる。
【0096】
〔3.1.5 EMアルゴリズムによる処理〕
事後確率算出部214は、EMアルゴリズムのうちのEステップの処理を次のように行う。具体的には、次の式(29)によって表わされる確率を算出する。
【0097】
【0098】
「ρh」および「kh」は、それぞれ、h番目の楽曲のスタイル変数およびトニック変数である。
【0099】
この確率は、モデルパラメータの値に依存するので、tステップ目の各パラメータが変数として記されている。これは、次の式(30)に従って計算することができる。
【0100】
【0101】
なお、式(30)は、次のように導かれたものである。まず、学習済の移調対称マルコフモデルがある場合に、与えられた楽曲のqb系列(式(4)参照)に合致するスタイルおよびトニックは、次の式(31)で表わされる条件付き確率を計算することによって推定することができる。
【0102】
【0103】
この条件付き確率を最大にするρおよびkが、この楽曲に最も合致するスタイルおよびトニックである。さらに、ベイズの公式により、次の式(32)のように表わすことができる。
【0104】
【0105】
式(32)の右辺の分母は、スタイル変数ρおよびトニック変数kに依らない。したがって、上記の式(30)が成り立つ。なお、スタイルおよびトニックを推定する方法は、後述する原曲属性推定部256においても用いられる。
【0106】
パラメータ更新部215は、EMアルゴリズムのうちのMステップの処理を行う。具体的には、次の式(33)~(35)式に従ってベースマルコフモデルの各パラメータを更新する。
【0107】
【0108】
δijは、はクロネッカーデルタである。つまり、i=jであればδij=1であり、i≠jであればδij=0である。式(33)~(35)それぞれの比例係数は、それぞれの確率値の総和が「1」になるように選択される。
【0109】
収束判定部216は、事後確率算出部214およびパラメータ更新部215がそれぞれ1回、Eステップの処理およびMステップの処理を行うごとに、パラメータの変化が収束したか否かを判定する。例えば、θ
tに対するθ
tとθ
t-1との差の絶対値の比が所定の値(例えば、10-6)以下になったら、収束したと判定する。または、π
ini
tに対するπ
ini
tとπ
ini
t-1との差の絶対値の比が所定の値以下になったら、収束したと判定してもよい。または、π
tに対するπ
tとπ
t-1との差の絶対値の比が所定の値以下になったら、収束したと判定してもよい。
【0110】
または、収束判定部216は、上記の比に関わらず、EMアルゴリズムを所定の回数(例えば、50回)繰り返したら、収束したと判定してもよい。
【0111】
そして、スタイルモデル記憶部217は、収束したと収束判定部216によって判定されたら、EMアルゴリズムの処理を終了し、EMアルゴリズムの処理が施された対象スタイルそれぞれのモデル61を学習済モデル62として記憶する(
図3参照)。以下、T回目に収束したと判定された場合を例に説明する。
【0112】
なお、以上の処理だけでは、オペレータは、どの学習済モデル62がどの対象スタイルのものであるのか判別することができない。そこで、オペレータは、次に説明する作曲処理をこれらの学習済モデル62を用いて1回ずつ自動音楽生成装置1に実行させ、自動作曲された楽曲を聴くことによって、それぞれの学習済モデル62の対象スタイルを判別する。そして、それぞれの学習済モデル62に、判別した対象スタイルをラベリングする。例えば、対象スタイルがロックおよび演歌の2つである場合は、オペレータは、生成された2つの学習済モデル62それぞれによって自動作曲された楽曲を聴き、ロックおよび演歌それぞれの学習済モデル62を判別し、ラベリングする。
【0113】
〔3.2 推論のフェーズ〕
図6は、作曲処理の流れの例を説明するフローチャートである。推論のフェーズにおいては、新しい楽曲が、
図6に示す手順で自動的に生成される。
【0114】
自動音楽生成装置1は、作曲の条件として音符数Iおよびスタイルを受け付けると(
図6のS711)、受け付けたスタイルの学習済モデル62に基づいて1番目の音符を決定する(S712、S713)。2~I番目それぞれの音符を、その学習済モデル62および直前の音符に基づいて決定する(S714~S716)。そして、1~I番目それぞれの決定した音符を所定のフォーマットのデータに変換する(S717)。以下、
図6の各処理をさらに具体的に説明する。
【0115】
図3の音符決定部218ないし作曲データ生成部220は、推論器であって、指定されたスタイルの楽曲をそのスタイルの学習済モデル62に基づいて生成する。
【0116】
学習済モデル62には、π
ini
Tおよびπ
Tが含まれている。π
ini
Tおよびπ
Tには、スタイル(対象スタイル)ごとの初期確率πini(q,b)および遷移確率π(q,b|q',b')が含まれる。
【0117】
オペレータは、自動音楽生成装置1に生成させたい楽曲のスタイルおよび音符の数Iを自動音楽生成装置1に対して指定する。
【0118】
すると、音符決定部218は、これらの指定を受け付け、楽曲のI個の音符を次のように決定する。
【0119】
音符決定部218は、I個の区間(0,1)の一様乱数を発生させる。以下、i番目の一様乱数を「乱数ri」と記載する。なお、i∈1,…,Iである。そして、離散確率分布P(x)(x=1,…,X)および乱数rに基づいてxの値を生成(サンプル)する方法で、各音符をサンプルする。つまり、次の式(36)を満たすxを選ぶことによってサンプルする。
【0120】
【0121】
具体的には、音符決定部218は、1番目の音符つまり(q1,b1)を、乱数r1および指定されたスタイルの初期確率πini(q,b)に基づいてサンプルする。次に、2番目の音符つまり(q2,b2)を、乱数r2および指定されたスタイルの遷移確率π(q,b|q1,b1)に基づいてサンプルする。以下、同様に、i番目の音符を、乱数riおよび指定されたスタイルの遷移確率π(q,b|qi-1,bi-1)に基づいてサンプルする。これにより、qb系列のデータが楽曲のメロディーのデータとして得られる。
【0122】
系列変換部219は、楽曲のメロディーのデータを式(4)のフォーマットつまりqb系列から式(2)のフォーマットつまりps系列へ次のように変換する。
【0123】
系列変換部219は、小節線の位置を楽曲のメロディーのデータのうちの各音符の拍節位置つまり次の式(37)の値より特定する。
【0124】
【0125】
すなわち、系列変換部219は、bi≦bi-1、を満たすときの(i-1)番目の音符とi番目の音符との間に小節線があると特定する。そして、小節線の位置に基づいて、式(37)の値を式(38)の値に変換する。
【0126】
【0127】
さらに、系列変換部219は、次のように、楽曲のメロディーのデータのうちの音高すなわち式(39)の値を式(40)の値に変換する。
【0128】
【0129】
系列変換部219は、最初の音高p1のオクターブを適当な方法で定める。そして、後続の音符の音高piを、直前の音符の音高pi-1および音高クラスqi、qi-1から決定する。具体的には、
qi-qi-1<-6 ならば、pi=pi-1+qi-qi-1+12
-6≦qi-qi-1<6 ならば、pi=pi-1+qi-qi-1
qi-qi-1≧6 ならば、pi=pi-1+qi-qi-1-12
とする。
【0130】
この方法によると、ある音符が想定の音域から外れる場合があるが、この場合は、想定の音域の中に収まるようにオクターブ修正を行えばよい。これにより、想定の音域内に収まる音符列が生成される。
【0131】
作曲データ生成部220は、系列変換部219によって得られた楽曲のps系列のデータをMIDIまたはMusicXMLのフォーマットのファイルに変換することによって、作曲データ63を生成する。作曲データ63は、自動音楽生成装置1の所定の記憶領域に保存される。または、端末装置41などへ送信される。または、ps系列のデータに従って楽曲を音声再生ユニット19(
図2参照)によって再生してもよい。
【0132】
なお、オクターブ情報が学習済モデルに含まれるように機械学習を行ってもよい。つまり、オクターブ情報に対してもマルコフモデルなどの確率モデルを生成してもよい。すると、推論のフェーズにおいて、オクターブの確率モデルに基づいて式(39)の系列のデータから式(40)の系列のデータを生成することができる。
【0133】
以上説明したように、作曲モジュール21によると、教師なし機械学習によって学習済モデルを生成するので、楽曲データ60ごとにタグ付けすることなく従来よりも容易に自動作曲のAI(Artificial Intelligence)を構築することができる。
【0134】
本実施形態では、初期化処理部212は、θ(ρ)の初期値としてランダムな値を設定したが、用意した楽曲の総数に対する対象スタイルごとの楽曲の比率をθ(ρ)の初期値として設定してもよい。
【0135】
本実施形態では、初期化処理部212は、各モデル61の各パラメータにランダムな値を与えたが、モデル61ごとに異なる値を与えることができれば、ランダムな値でなくてもよい。例えば、それぞれに異なる所定の値を与えてもよい。
【0136】
〔4 編曲モジュール〕
編曲モジュール25は、
図3に示すように、初期化処理部251、事後確率算出部252、パラメータ更新部253、収束判定部254、編集モデル記憶部255、原曲属性推定部256、候補楽曲生成部257、最適候補選出部258、および編曲データ生成部259などによって構成され、ある楽曲を、目標のスタイルの楽曲に変換する。つまり、編曲を行う。上述の通り、編曲モジュール25は、編曲学習処理および編曲処理を実行するためのモジュールである。編曲学習処理が機械学習のフェーズに相当し、編曲処理が推論のフェーズに相当する。
【0137】
以下、変換対象の楽曲を「原曲」と記載し、原曲のスタイルを「原曲スタイル」と記載する。目標のスタイルを「目標スタイル」と記載し、原曲が目標スタイルに変換されたものを「編曲」と記載する。また、原曲スタイルおよび目標スタイルそれぞれのシーケンス番号を「ρS」および「ρT」とする。原曲スタイルと目標スタイルとが同じであっても構わない。また、スタイルモデル記憶部217に、NM個のスタイルの学習済モデル62が記憶されているものとする。
【0138】
〔4.1 概要〕
図7は、編曲学習処理の流れの例を説明するフローチャートである。
図8は、編曲処理の流れの例を説明するフローチャートである。
【0139】
図3の初期化処理部251ないし収束判定部254は、学習器であって、編集モデルを、
図7に示す手順で生成する。なお、編集モデルは、推論のフェーズにおいて原曲を編曲するための学習済モデルとして用いられる。
【0140】
初期化処理部251は、ランダムに初期化した編集モデルを予め用意する(S721)。事後確率算出部252およびパラメータ更新部253は、編集モデルに対してEステップの処理およびMステップの処理を実行する(S722、S723)。収束判定部254は、収束の判定を行う(S724)。そして、収束したと判定した場合は(S725でYes)、その時点の編集モデルを学習済モデルとして編集モデル記憶部255に記憶させる(S726)。
【0141】
収束していないと判定された場合は(S725でNo)、ステップS722に戻って、Eステップの処理およびMステップの処理が再度、実行される。
【0142】
このように、編集モデルは、EMアルゴリズムを繰り返し実行されることによって、学習済モデルになる。なお、ρS∈{1,…, NM}かつρT∈{1,…, NM}なので、NM×NM個の編集モデルを用意し、それぞれについてステップS722~S726の処理が行われる。
【0143】
原曲属性推定部256ないし編曲データ生成部259は、生成器であって、原曲の編曲を、
図8に示す手順で生成する。
【0144】
原曲属性推定部256は、編曲の条件として原曲および目標スタイルなどを受け付けると(
図8のS731)、原曲スタイルを推定する(S732)。候補楽曲生成部257は、原曲と音符の数が同じである目標スタイルの候補楽曲を複数、作曲モジュール21によって生成する(S732)。最適候補選出部258は、候補楽曲ごとに編集モデルに基づいて適切度を算出し(S733)、最も適切度の高い候補楽曲を原曲の編曲として選出する(S734)。そして、編曲データ生成部259は、選出した候補楽曲を所定のフォーマットのデータに変換する(S735)。
【0145】
なお、適切度は、Q(X~|X)と表わされ、次の式(41)の通り、候補楽曲の目標スタイルへの合致度および候補楽曲の原曲との類似度の2つの尺度によって算出される。
【0146】
【0147】
「X」は原曲の系列であって次の式(42)のように表わされ、「X~」は候補楽曲の系列であって次の式(43)のように表わされる。
【0148】
【0149】
「PL(X~)」は、候補楽曲の目標スタイルへの合致度を表わす確率である。「PE(X|X~)」は、原曲と候補楽曲との類似度を表わす確率である。「αL」および「αE」は、合致度と類似度とのバランスを調整するためのパラメータであって、目的に応じてオペレータによって指定される。
【0150】
適切度、合致度、および類似度は、原曲スタイルまたは目標スタイルに依るので、式(41)を次の式(44)のように記述することができる。
Q(X~|X;ρS,ρT):=PL(X~;ρT)αLPE(X|X~;ρS,ρT)αE …(44)
〔4.2 編集モデル〕
上の式(41)の右辺を構成する因子のうち、PE(X|X~;ρS,ρT)に編集モデルが用いられる。PE(X|X~;ρS,ρT)は、次の式(45)のように記述される。
【0151】
【0152】
右辺の2番目の因子は原曲および候補楽曲それぞれのi番目の音高クラスの二乗距離であり、σpは、距離尺度の基準を与えるパラメータである。右辺の3番目の因子は原曲の系列Xおよび候補楽曲の系列X~それぞれのi番目の拍節位置の二乗距離であり、σrは、距離尺度の基準を与えるパラメータである。本実施形態では、σp=0.7、σr=3がデフォルトで設定されている。これら2つの因子は、すべてのρSおよびρTに対して一定である。つまり、ρSおよびρTに依らない。
【0153】
右辺の最初の因子PF(X|X~;ρS, ρT)は、音高クラス系列の統語構造に基づいた類似度を表わし、音符の統語機能が潜在変数で表現されるように隠れマルコフモデル(HMM:Hidden Markov Model)を用いて記述される。「Z」は、確率分布の規格化係数であるが、候補楽曲の生成には用いられない。
【0154】
ところで、HMMは、自然言語の単語列からその統語機能を表わす品詞を教師なしで学習するために用いられている(S. Goldwater and T. Griffiths, "A Fully Bayesian Approach to Unsupervised Part-of-Speech Tagging," in Proc. ACL, pp. 744-751, 2007. 参照)。音楽においても、コード記号の系列からその統語機能を表わす和声機能を学習するために用いられている(H. Tsushima et al., "Generative statistical models with self-emergent grammar of chord sequences," J. New Music Res., vol. 47, no. 3, pp. 226-248, 2018. 参照)。本実施形態では、音高の統語機能を学習するためにHMMが用いられる。
【0155】
また、HMMは、一般に、マルコフモデルに従って生成される潜在変数の系列と、この系列から観測される記号列とを生成するモデルである。本実施形態においては、観測される記号列は、音高クラスの系列qおよび系列q~であってそれぞれ次の式(46)および式(47)のように表わされる。
【0156】
【0157】
潜在変数zは、{1,…,NF}の中の値を取る離散確率変数であり、音符ごとに1つずつ生成される。つまり、潜在変数ziは、i番目の音符の離散確率変数である。「NF」は、仮定する統語機能の数であり、目的に応じて決められる変数である。本実施形態では、NF=7とする。
【0158】
そして、本実施形態において編集モデルとして用いられるHMMは、次の式(48)~(51)のそれぞれの左辺に示されるパラメータを有する。
ψini(z1)=P(z1) …(48)
ψ(zi|zi- 1)=P(zi|zi- 1) …(49)
φ(q|z,ρS)=P(qi=q|zi=z) …(50)
φ(q~|z,ρT)=P(q~i=q~|zi=z) …(51)
式(48)のψini(z1)は、潜在変数zの初期確率を表わす、NF個の確率の確率ベクトルである。式(49)は、潜在変数zの遷移確率を表わす、NF×NF個の要素を持つ確率行列である。
【0159】
式(50)のφ(q|z,ρS)は、原曲スタイルにおける、音高クラスごとの(つまり、Q個の)出力確率の確率ベクトルをNF個分、表わしている。式(51)は、目標スタイルにおける、音高クラスごとの出力確率の確率ベクトルをNF個分、表わしている。式(50)と式(51)とを比較して分かるように、音高クラスqiおよび音高クラスq~
iは、各潜在変数zから、互いに異なる離散確率分布に従って生成される。
【0160】
また、系列q、系列q
~、およびzについて、次の式(52)~(54)の関係
が成り立つ。
【0161】
【0162】
パラメータが定まっている場合に、このHMMを用いて因子PF(X|X~;ρS,ρT)を計算する手順は以下の通りである。この因子をHMMに基づいて、PF(X|X~;ρS,ρT)=P(q|q
~)と定めることにより次の表現が得られる。
【0163】
【0164】
Z'は規格化定数であるが、編曲の生成には用いられない。式(58)により左辺の因子が原始的に求まるが、すべての和記号を同時に計算することは組合せの数が多すぎて困難である。そこで、動的計画法(フォアワードアルゴリズム)を用いて逐次計算することにより効果的に計算することができる。
【0165】
フォアワードアルゴリズムの手順は、次の通りである。まず、各i∈{1,…,I}に対してフォアワード変数を次のように定義する。
Fi(zi):=P(q1:i,q~
1:i,zi) …(59)
q1:i=(q1,…, qi)である。以下、同様の記法を用いる。Fi(zi)は、i=1から順に以下の通り逐次的に計算する。
【0166】
【0167】
そして、次の式(64)を用いて確率P(q,q
~)が得られる。
【0168】
【0169】
〔4.3 機械学習のフェーズ〕
上述の通り、ρS∈{1,…, NM}かつρT∈{1,…, NM}なので、NM×NM通りの編集モデルが生成される。以下、機械学習の内容を、ロックから演歌に編曲するための編集モデルを生成する場合を例に説明する。
【0170】
初期化処理部251は、機械学習のためのデータを次のように準備する。学習に使用する系列xおよび系列x~を生成する。
【0171】
系列xは、ロックの音高クラスの系列であって、(x1,…, xN)である。「N」は、機械学習に必要な音符の数であって、十分に大きな整数である。初期化処理部251は、作曲モジュール21の推論のフェーズと同様に、ロックの学習済モデル62に基づいてロックの楽曲を作曲する方法で系列xを生成する。
【0172】
系列x~は、演歌の音高クラスの系列であって、(x~1,…, x~N)である。初期化処理部251は、演歌の学習済モデル62に基づいて演歌の楽曲を作曲する方法で系列~を生成する。
【0173】
さらに、初期化処理部251は、式(48)~(51)それぞれの左辺に示した4つのパラメータψini(z1)、ψ(zi|zi-1)、φ(q|z,ρS)、およびφ(q~|z,ρT)を有する編集モデル64を生成し、これらのパラメータを初期化する。ランダムな値を与えることによって初期化してもよいが、統語機能が音階音と類似した構造を表すことを期待して、φ0(q|z,ρS)は確率行列の対角に近い成分が大きな値を持つように初期化するのが望ましい。具体的には次の式(65)のように初期化する。ただし、比例係数は適切に正規化されるように定める。
φ0(q|z,ρS)∝exp(-(q-12z/NF)2/2) …… (65)
また、ψ(zi|zi-1)およびφ(q~|z,ρT)は、一様分布になるように初期化する。
【0174】
事後確率算出部252およびパラメータ更新部253は、HMM(Hidden Markov Model)の教師なし学習方法として一般的であるBaumとWelchの方法(C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006. 参照)によって、編集モデルを生成する。BaumとWelchの方法は、EMアルゴリズムの一種であり、Eステップでは潜在変数の事後確率を算出し、Mステップではパラメータの更新を行う。Eステップの処理およびMステップの処理が交互に繰り返される。
【0175】
事後確率算出部252は、Eステップの処理として、次の式(66)および式(67)でそれぞれ定義する潜在変数のtステップ目の事後確率γt(zi)およびζt(zi-1,zi)を計算する。
γt(zi)=P(zi|x,x~,Θt) …… (66)
ζt(zi-1,zi)=P(zi-1,zi|x,x~,Θt) …… (67)
「Θ」は、4つのパラメータのうちψ(zi|zi-1)、φ(q~|z,ρS)、およびφ(q|z,ρT)の集合を表わす。「Θt」は、tステップ目における、これら3つのパラメータの集合である。以下、これらの式の計算方法を説明する。
【0176】
まず、次の式(68)および式(69)でそれぞれ定義するフォアワード変数At(zi)およびバックワード変数Bt(zi)を計算する。
At(zi):=P(x1:i,x~1:i,zi|Θt) …… (68)
Bt(zi):=P(x(i+1):N,x~
(i+1):N|zi,Θt) …… (69)
これらは、次の式(70)~(73)に手順に従って再帰的に計算することができる。
【0177】
【0178】
さらに、計算されたAt(zi)およびバックワード変数Bt(zi)を用いて、事後確率を次の式(74)および式(75)に従って計算する。
γt(zi)∝At(zi)Bt(zi)…(74)
ζt(zi-1,zi)∝At(zi-1)ψt(zi|zi-1)φt(xi|zi,ρS)
φt(x~i|zi,ρT)Bt(zt) …(75)
ただし、比例係数は、各フォアワード変数が潜在変数ziに関して、足して1になるように適切に与える。
【0179】
なお、初期確率すなわちψini(z1)は、学習に用いる系列が1ペアのみであるので、学習を行わない。初期確率の算出方法については、後述する。
【0180】
パラメータ更新部253は、Mステップの処理を実行する。具体的には、次の式(76)~(78)に従って編集モデルの各パラメータを更新する。この際に、各式の比例係数を、それぞれの確率値の合計が「1」になるように選択する。
【0181】
【0182】
収束判定部254は、Eステップの処理およびMステップの処理を繰り返しても編集モデルの各パラメータがほとんど変化しなくなった場合に、各パラメータが理想的な値に収束したと判定する。そして、収束したと判定された時点の編集モデル64を学習済モデル65として編集モデル記憶部255に記憶させる。または、EMアルゴリズムを所定の回数だけ繰り返したら、収束したと判定してもよい。
【0183】
以上、ロックから演歌に編曲するための学習済モデル65(編集モデル)を生成する方法の例を説明したが、他の方向に編曲するための学習済モデル65も同様の方法によって生成される。
【0184】
〔4.4 推論のフェーズ〕
原曲属性推定部256ないし編曲データ生成部259は、指定された原曲を、指定されたスタイルに編曲する。
【0185】
オペレータは、複数の楽曲の中から編曲したい楽曲を原曲として指定するとともに、どのスタイルに編曲したいかを指定する。
【0186】
すると、原曲属性推定部256は、その原曲のスタイルおよびトニックを推定する。推定の方法は、前に式(30)、式(32)を用いて説明した通りである。
【0187】
つまり、原曲の系列X(式(42)参照)に合致するスタイルおよびトニックは、式(32)の左辺の条件付き確率Pを最大にするρおよびkを求めることによって推定することができる。
【0188】
候補楽曲生成部257は、指定されたスタイルの楽曲を多数、候補楽曲として生成する。生成する方法は、音符決定部218が楽曲を生成する方法と同様である。つまり、式(36)を満たすxを選出することによって各音符をサンプルする。
【0189】
ただし、ここでは、「I」は、原曲の音符数である。また、指定されたスタイルの学習済モデル62が用いられる。また、12個のトニック変数すべてについて、候補楽曲の生成が実行される。
【0190】
最適候補選出部258は、候補楽曲生成部257によって生成された多数の候補楽曲の中から原曲に最も類似するものを編曲として選出する。具体的には、式(44)の左辺すなわちQ(X~|X;ρS, ρT)を最大にする候補楽曲を編曲として選出する。ただし、「ρS」は、原曲スタイルのスタイル変数であり、「ρT」は、オペレータが指定したスタイル(目標スタイル)のスタイル変数である。したがって、この原曲スタイルおよびこの目標スタイルに対応する学習済モデル65が選出のために用いられる。
【0191】
ところで、原曲の音符数が多いと、候補楽曲の生成可能なパターン数が膨大になる。そこで、いわゆる部分サンプリング法によって編曲を生成してもよい。すなわち、候補楽曲生成部257は、原曲を複数の部分(例えば、小節)に分け、部分ごとに多数の系列を生成する。そして、最適候補選出部258は、部分ごとに、生成した系列の中から最も類似するものを選出し、選出した系列を連結することによって編曲を生成する。
【0192】
または、動的計画法によって編曲を生成してもよい。動的計画法によると、Q(X~|X;ρS,ρT)を最大にするX~が、Viterbiアルゴリズムによって探索される。
【0193】
音高クラスおよび発音時刻がそれぞれ12および48なので、i番目の音符は576(=12×48)通りある。そして、音符の数がIであるので、576I通りの音符の並びがある。
【0194】
これらの楽曲の中からQ(X~|X;ρS,ρT)を最大にするもの(ビタビ経路)を次のように探索する。Q(X~|X;ρS,ρT)は正の値なので、Q(X~|X;ρS,ρT)を最適化したものは、Q(X~|X;ρS,ρT)の対数をとったものの最適化と等価である。Q(X~|X;ρS,ρT)の対数は、式(21)、(44)、(45)、(57)を用いることによって次のように与えられる。
【0195】
【0196】
ただし、constは、最適化には関係しない定数項を表わしている。以下、同様である。この関数は、lnPF(X~|X;ρS,ρT)を含んでいるので、直接は、最適化することができない。そこで、入力の楽曲qに対して事後確率P(z|q)=P(q|z)P(z)/P(q)を最大とする潜在変数の系列z^をまず求めて、和をこの系列で置き換える。これにより次の式(81)が得られる。
【0197】
【0198】
系列z^は、Viterbiアルゴリズムを用いて以下の手順で求められる。まず、事後確率の最大化は次の式(82)で表わされ、その対数をとったものの最大化と等価である。
【0199】
【0200】
Viterbi変数を次の式(83)および(84)のように定義する。
【0201】
【0202】
【0203】
式(83)および(84)は、次の式(85)~(87)によって再帰的に計算することができる。
次の式(88)の値は、式(89)~(90)のように後ろから再帰的に求めることができる。
【0204】
【0205】
式(81)のconstを除いた部分は、q~iおよびb~iの関数として次の(91)のように書き換えられる。
【0206】
【0207】
ただし、
【0208】
【0209】
である。これらを最大化するqb系列(式(4)参照)は、Viterbiアルゴリズムによって求められる。Viterbi 変数を次の式(94)で定義する。
【0210】
【0211】
これらは、次のように再帰的に計算する。
【0212】
【0213】
これらの式に基づいて、式(89)および式(90)による方法と同様の方法によって、最適な編曲がX~として得られる。
【0214】
図3の編曲データ生成部259は、最適候補選出部258によって原曲の編曲として選出された候補楽曲の系列X~を、MIDIまたはMusicXMLのフォーマットのファイルに変換することによって、編曲データ66を生成する。編曲データ66は、自動音楽生成装置1の所定の記憶領域に保存される。または、端末装置41などへ送信される。または、ps系列のデータに従って候補楽曲を音声再生ユニット19(
図2参照)によって再生してもよい。
【0215】
以上説明したように、編曲モジュール25によると、作曲モジュール21によって生成された学習済モデル62(作曲用のモデル)を用いて学習済モデル65(編曲用のモデル)を生成するので、従来よりも容易に自動編曲のAIを構築することができる。
【0216】
本実施形態では、自動音楽生成装置1は、適切度を算出するモデル(学習済モデル65)として、類似度および適合度の両方を因子として含むモデルを生成したが、類似度および適合度のうちの類似度のみを因子として含むモデルを生成してもよい。
【0217】
本実施形態では、自動音楽生成装置1は、適切度の最も高い候補楽曲を原曲の編曲として選出したが、適切度が所定の値以上である候補楽曲を複数、原曲の編曲として選出してもよい。
【0218】
〔5 変形例〕
ところで、一般に、楽曲の途中でスタイルまたはトニックなどが変わる場合がある。例えば、スタイルがクラシックからロックに変わったり、ハ長調からホ長調へ転調したり、長調から短調へ移旋したりすることがある。そこで、自動音楽生成装置1は、途中でスタイルまたはトニックなどが変わるように構成したモデルを生成しておき、このようなモデルを用いて作曲してもよい。
【0219】
このようなモデルは、楽曲の各小節mごとにスタイル変数ρmおよびトニック変数kmを導入することによって定式化することができる。曲中のいくつかの場所において転調したりスタイルが変わったりしても、その他の多くの場所では調やスタイルが継続していることを表現するため、スタイル変数ρmおよびトニック変数kmは、それぞれ、1つ前のスタイル変数ρm-1およびトニック変数km-1に依存する確率により生成されるものとする。つまり、スタイル変数とトニック変数に対して次の式(99)および式(100)に示すマルコフモデルを考えればよい。
θini(ρ,k)=P(ρ1=ρ,k1=k) …(99)
θ(ρ',k',ρ,k)=P(ρm=ρ,km=k|ρm-1=ρ',km-1=k') …(100)
各音符の音高クラスおよび拍節位置は、生成された各小節のスタイル変数ρmおよびトニック変数kmに条件付けられたマルコフモデルにより、次の式(101)および式(102)に基づいて生成される。
πini(q11,b11|ρ1,k1)=P(q11,b11|ρ1,k1) …(101)
πini(qmn,bmn|q'mn,b'mn,ρm,km)=P(q11=q,b11=b|ρm,km)
…(102)
ただし、q'mnおよびb'mnは、それぞれqmnおよびbmnの1つ前の音符の音高クラスおよび拍節位置を表わす。
【0220】
このようなモデルを用いれば、学習データとして与えられた楽曲に対して、小節ごとの合致するスタイルとトニックとを推定することができる。また、このモデルも、上述のモデルと同様にEMアルゴリズムを用いて学習することができる。推定および学習のために、次の式(103)の、スタイル変数およびトニック変数の事後確率を計算する必要がある。これは、隠れマルコフモデルに適用されるフォアワード・バックワードアルゴリズムを用いて計算することができる。
【0221】
【0222】
また、原曲が、途中でスタイルまたはトニックなどが変わる場合は、自動音楽生成装置1は、原曲をサンプリング法によって編曲すればよい。サンプリング法によると、部分(例えば、小節)ごとに最も類似するメロディーを採用するので、原曲の変化に応じて原曲を編曲することができる。
【0223】
本実施形態では、学習済モデルを生成する際に、マルコフモデルをベースとした移調対称性を持つ混合時系列生成モデルを用いたが、移調対称性の導入、混合モデルによるスタイル、およびトニックの自由度を持たせたモデルであれば、マルコフモデル以外の時系列生成モデルを用いてもよい。つまり、記号列Y=(y1,…,yI)の生成確率P(Y)を与える生成モデルであり、生成確率の計算、系列データからのモデルパラメータの学習、およびサンプリングによる系列の生成ができるモデルであれば、上記の定式化により移調対称性を持った混合モデルを構成し、学習および生成(推論)が可能である。このような生成モデルの例として、音楽情報学および計算言語学などで広く用いられるモデル、例えば、高次のマルコフモデルおよび可変次マルコフモデル、隠れマルコフモデル、確率的文脈自由文法モデル、長短期記憶(long short-term memory; LSTM)ネットワークを含む再起型ニューラルネットワーク(recurrent neural network; RNN)、変分自己符号化器(variationalautoencoder; VAE)および敵対的生成ネットワーク(Generative Adversarial Network; GAN)に基づく生成モデルなどが挙げられる。
【0224】
本実施形態では、音符の時間的な要素を拍節位置によって表わしたが長さで表わしてもよい。
【0225】
本実施形態では、音高と発音時刻の系列として表されるメロディーあるいは単旋律の楽曲を学習に用いるデータおよび生成する対象として用いたが、記号列として表されるデータであればこれ以外の形式の音楽データを用いてもよい。このような音楽データの例として、コード進行、ドラム楽譜、ギターやピアノなど多声部を含む楽曲、および複数の楽器または声部からなる合奏曲の形式のデータなどが挙げられる。
【0226】
本実施形態では、自動音楽生成装置1を1台のコンピュータによって実現する場合を例に説明したが、複数のコンピュータによって実現してもよい。例えば、メインモジュール20、作曲モジュール21、編曲モジュール25のそれぞれを別々のコンピュータによって実行してもよい。または、メインモジュール20、作曲モジュール21の学習フェーズ、作曲モジュール21の推論フェーズ、編曲モジュール25の学習フェーズ、および編曲モジュール25の推論フェーズのそれぞれを別々のコンピュータによって実行してもよい。
【0227】
その他、自動音楽生成装置1の全体または各部の構成、処理の内容、処理の順序、データの構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【0228】
1 自動音楽生成装置(音楽モデル生成システム、編曲システム)
212 初期化処理部(初期処理手段)
214 事後確率算出部(出現確率算出手段)
215 パラメータ更新部(調整手段)
216 収束判定部(判定手段)
217 スタイルモデル記憶部(記憶手段)
218 音符決定部(作曲手段)
251 初期化処理部(編集モデル生成手段)
252 事後確率算出部(編集モデル生成手段)
253 パラメータ更新部(編集モデル生成手段)
254 収束判定部(編集モデル生成手段)
257 候補楽曲生成部(メロディ生成手段)
258 最適候補選出部(類似度算出手段、選出手段、編曲手段)
61 モデル(仮モデル)
62 学習済モデル(音楽モデル)
65 学習済モデル(編集モデル)