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

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

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

特許7666584文章提供方法、プログラムおよび文章提供装置
<>
  • 特許-文章提供方法、プログラムおよび文章提供装置 図1
  • 特許-文章提供方法、プログラムおよび文章提供装置 図2
  • 特許-文章提供方法、プログラムおよび文章提供装置 図3
  • 特許-文章提供方法、プログラムおよび文章提供装置 図4
  • 特許-文章提供方法、プログラムおよび文章提供装置 図5
  • 特許-文章提供方法、プログラムおよび文章提供装置 図6
  • 特許-文章提供方法、プログラムおよび文章提供装置 図7
  • 特許-文章提供方法、プログラムおよび文章提供装置 図8
  • 特許-文章提供方法、プログラムおよび文章提供装置 図9
  • 特許-文章提供方法、プログラムおよび文章提供装置 図10
  • 特許-文章提供方法、プログラムおよび文章提供装置 図11
  • 特許-文章提供方法、プログラムおよび文章提供装置 図12
  • 特許-文章提供方法、プログラムおよび文章提供装置 図13
  • 特許-文章提供方法、プログラムおよび文章提供装置 図14
  • 特許-文章提供方法、プログラムおよび文章提供装置 図15
  • 特許-文章提供方法、プログラムおよび文章提供装置 図16
  • 特許-文章提供方法、プログラムおよび文章提供装置 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-14
(45)【発行日】2025-04-22
(54)【発明の名称】文章提供方法、プログラムおよび文章提供装置
(51)【国際特許分類】
   G10G 1/00 20060101AFI20250415BHJP
【FI】
G10G1/00
【請求項の数】 20
(21)【出願番号】P 2023508950
(86)(22)【出願日】2022-03-08
(86)【国際出願番号】 JP2022010084
(87)【国際公開番号】W WO2022202297
(87)【国際公開日】2022-09-29
【審査請求日】2023-09-07
(31)【優先権主張番号】P 2021049200
(32)【優先日】2021-03-23
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】110000408
【氏名又は名称】弁理士法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】秋元 和久
【審査官】中村 天真
(56)【参考文献】
【文献】特開2011-215181(JP,A)
【文献】特開2012-168538(JP,A)
【文献】加後唯菜, 小尻智子,伴奏パターンのイメージに着目したピアノ伴奏付け支援システム,電子情報通信学会技術研究報告,2017年03月,第116巻, 第517号,p.61-66,ISSN 0913-5685
【文献】西村良太ほか,RNNに基づく音響ベクトル時系列の文書ベクトルへのマッピング,電子情報通信学会技術研究報告,2018年06月,第118巻, 第112号,p.59-64,ISSN 2432-6380
【文献】高橋量衛ほか,楽曲のレビューと音響特徴量との関連付けの検討,日本音響学会講演論文集,2007年03月,p.743-744,ISSN 1880-7658
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00-3/04
G10H 1/00-1/46
(57)【特許請求の範囲】
【請求項1】
コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係を学習させた学習済モデルに対し、コードを時系列に並べたコード入力データを提供し、
前記コード入力データに対応する文章を前記学習済モデルから取得すること
を含む、文章提供方法。
【請求項2】
前記コードは、ベクトルを含むデータで表される、請求項1に記載の文章提供方法。
【請求項3】
前記コードは、当該コードの構成音に対応する第1クロマベクトルを含むデータで表される、請求項1または請求項2に記載の文章提供方法。
【請求項4】
前記コードは、当該コードのベース音に対応する第2クロマベクトルを含むデータで表される、請求項1から請求項3のいずれかに記載の文章提供方法。
【請求項5】
前記コードは、当該コードのテンション音に対応する第3クロマベクトルを含むデータで表される、請求項1から請求項4のいずれかに記載の文章提供方法。
【請求項6】
前記解説文章は、コード進行を説明する第1文字群を含む、請求項1から請求項5のいずれかに記載の文章提供方法。
【請求項7】
前記解説文章は、コードの機能を説明する第2文字群を含む、請求項1から請求項6のいずれかに記載の文章提供方法。
【請求項8】
前記解説文章は、コード間の連結技法を説明する第3文字群を含む、請求項1から請求項7のいずれかに記載の文章提供方法。
【請求項9】
楽曲の前記コードを時系列に並べた楽曲コードデータを取得し、
前記楽曲コードデータから所定の条件を満たす特定区間の前記コードの並びを前記コード入力データとして抽出すること、
をさらに含む、
請求項1から請求項8のいずれかに記載の文章提供方法。
【請求項10】
前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のキーに応じて決められるコードに関する重要度とを用いた条件を含む、
請求項9に記載の文章提供方法。
【請求項11】
前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のジャンルに応じて決められるコードに関する重要度とを用いた条件を含む、
請求項9または請求項10に記載の文章提供方法。
【請求項12】
コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得すること
をコンピュータに実行させるためのプログラムであって、
前記文章を取得することは、前記関係を学習させた学習済モデルに前記コード入力データを提供することによって、前記学習済モデルから前記文章を取得することを含む、プログラム
【請求項13】
前記コード列データに含まれるコードは、少なくとも前記コードの構成音とベース音とを含む、請求項12に記載のプログラム。
【請求項14】
前記コード列データに含まれるコードは、少なくとも前記コードの構成音と前記コードのテンション音とを含む、請求項12または請求項13に記載のプログラム。
【請求項15】
前記コードは、ベクトルを含むデータで表される、請求項12から請求項14のいずれかに記載のプログラム。
【請求項16】
前記コードは、当該コードの構成音に対応する第1クロマベクトルを含むデータで表される、請求項12から請求項15のいずれかに記載のプログラム。
【請求項17】
前記コードは、当該コードのベース音に対応する第2クロマベクトルを含むデータで表される、請求項12から請求項16のいずれかに記載のプログラム。
【請求項18】
前記コードは、当該コードのテンション音に対応する第3クロマベクトルを含むデータで表される、請求項12から請求項17のいずれかに記載のプログラム。
【請求項19】
前記解説文章は、コード進行を説明する第1文字群を含む、請求項12から請求項18のいずれかに記載のプログラム。
【請求項20】
コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得する制御部を含み、
前記制御部は、前記関係を学習させた学習済モデルに前記コード入力データを提供することによって、前記学習済モデルから前記文章を取得することを含む、文章提供装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、文章提供方法に関する。
【背景技術】
【0002】
楽曲を構成する複数のコード(Chord)は、それらの組み合わせ(例えば、時系列に並んだコード進行)によって、聴取者に与える印象を変化させる。一般的な聴取者は、楽曲からの印象を感覚的に受け取る。聴取者は、コード進行など音楽理論に基づいて楽曲の解析することで、その印象を裏付けることができる。楽曲のコード進行を示す楽譜においてカデンツを検出し、カデンツの部分に矢印記号を表示し、カデンツの種類によって色を異ならせる技術が、例えば、特許文献1に開示されている。ユーザは、矢印記号および色により、楽曲に含まれるコードのうちカデンツに対応する部分およびカデンツの種類を認識することができる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-56938号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
楽曲に含まれるコード進行の種類は様々である。コード進行の種類を理解することは、楽曲の印象を裏付ける重要な要素である。特許文献1に記載された技術によれば、ユーザが楽曲の楽譜に含まれるカデンツの部分および種類を、矢印記号および色といった画像情報から認識することができる。しかしながら、一定程度の音楽理論の知識を有していないと、ユーザは画像情報からその意味を理解することができず、得られた情報を活用することができない。
【0005】
本開示の目的の一つは、時系列に並ぶ複数のコードからコードに関する解説文章を提供することにある。
【課題を解決するための手段】
【0006】
本開示の一実施形態によれば、コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得することを含む、文章提供方法が提供される。
【発明の効果】
【0007】
本開示によれば、時系列に並ぶ複数のコードからコードに関する解説文章を提供することができる。
【図面の簡単な説明】
【0008】
図1】一実施形態における文章提供システムを示す図である。
図2】一実施形態における文章提供処理を示すフローチャートである。
図3】一実施形態におけるコードを表すクロマベクトルを説明するための図である。
図4】一実施形態におけるコードを表すクロマベクトルを説明するための図である。
図5】コード入力データから得られる解説文章の例を説明するための図である。
図6】一実施形態におけるモデル生成処理を示すフローチャートである。
図7】教師データセットの一例を説明するための図である。
図8】教師データセットの一例を説明するための図である。
図9】教師データセットの一例を説明するための図である。
図10】ツーファイブワンとして検出されるコード進行を説明するための図である。
図11】コード入力データから得られる解説文章の例を説明するための図である。
図12】コード入力データから得られる解説文章の例を説明するための図である。
図13】ツーファイブワンとして検出されるコード進行の変形例を説明するための図である。
図14】ツーファイブワンとして検出されるコード進行の変形例を説明するための図である。
図15】一実施形態における楽曲データベースを説明するための図である。
図16】コード進行重要度の計算方法を説明するための図である。
図17】一実施形態におけるコード入力データを生成する処理を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。以下に示す実施形態は一例であって、本開示はこれらの実施形態に限定して解釈されるものではない。本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号(数字の後にA、Bなど付しただけの符号)を付し、その繰り返しの説明は省略する場合がある。
【0010】
[1-1.文章提供システム]
図1は、一実施形態における文章提供システムを示す図である。文章提供システム1000は、インターネットなどのネットワークNWに接続された文章提供サーバ1(文章提供装置)およびモデル生成サーバ3を含む。通信端末9は、スマートフォン、タブレットパソコン、ラップトップパソコンおよびデスクトップパソコンなどであり、ネットワークNWに接続して、他の装置とデータ通信を行う。
【0011】
文章提供サーバ1は、ネットワークNWを介して通信端末9から楽曲に関するデータを受信し、その楽曲に含まれるコード進行に応じた解説文章を通信端末9に送信する。通信端末9では、ディスプレイに解説文章を表示することができる。文章提供サーバ1は、機械学習によって得られた学習済モデルを用いて、解説文章を生成する。学習済モデル155は、楽曲を構成するコードを時系列に並べたコード入力データを受け取ると、ニューラルネットワークを用いた演算処理によってコード進行に関する解説文章を出力する。モデル生成サーバ3は、教師データセットを用いた機械学習処理を実行し、文章提供サーバ1において使用される学習済みモデルを生成する。以下、文章提供サーバ1およびモデル生成サーバ3について説明する。
【0012】
[1-2.文章提供サーバ]
文章提供サーバ1は、制御部11、通信部13および記憶部15を含む。制御部11は、CPU(プロセッサ)、RAMおよびROMを含む。制御部11は、記憶部15に記憶されたプログラムをCPUにより実行することによって、プログラムに記述された命令にしたがった処理を行う。このプログラムには、後述する文章提供処理を行うためのプログラム151が含まれる。
【0013】
通信部13は、通信モジュールを含み、ネットワークNWに接続して、他の装置と各種データの送受信を行う。
【0014】
記憶部15は、不揮発性メモリなどの記憶装置を含み、プログラム151および学習済モデル155を記憶する。その他にも文章提供サーバ1において用いられる様々なデータが記憶される。記憶部15は、楽曲データベース159を記憶してもよい。楽曲データベース159については、別の実施形態において説明する。プログラム151は、コンピュータにより実行可能であればよく、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶された状態で文章提供サーバ1に提供されてもよい。この場合には、文章提供サーバ1は、記録媒体を読み取る装置を備えていればよい。プログラム151は、通信部13を介してダウンロードすることによって提供されてもよい。
【0015】
学習済モデル155は、モデル生成サーバ3において機械学習によって生成され、文章提供サーバ1に提供されている。学習済モデル155は、コード入力データが提供されると、ニューラルネットワークを用いた演算処理によってコードに関する解説文章を出力する。この例では、学習済モデル155は、RNN(Recurrent Neural Network)を利用したモデルである。学習済モデル155は、Seq2Seq(Sequence To Sequence)を利用し、すなわち後述するエンコーダとデコーダとを含む。コード入力データおよび解説文章は、時系列に記述されるデータの一例であって、詳細は後述する。そのため、学習済モデル155は、時系列のデータの扱いに有利なモデルが採用されることが好ましい。
【0016】
学習済モデル155は、LSTM(Long Short Term Memory)、GRU(Gated Recurrent Unit)を利用したモデルであってもよい。学習済モデル155は、CNN(Convolutional Neural Network)、Attention(Self-Attention、Source Target Attention)などを利用したモデルであってもよい。学習済モデル155は、複数のモデルを組み合わせたモデルであってもよい。学習済モデル155は、ネットワークNWを介して接続された別の装置に記憶されてもよい。この場合には、文章提供サーバ1は、ネットワークNWを介して学習済モデル155に接続してもよい。
【0017】
[1-3.モデル生成サーバ]
モデル生成サーバ3は、制御部31、通信部33および記憶部35を含む。制御部31は、CPU(プロセッサ)、RAMおよびROMを含む。制御部31は、記憶部35に記憶されたプログラムをCPUにより実行することによって、プログラムに記述された命令にしたがった処理を行う。このプログラムには、後述するモデル生成処理を行うためのプログラム351が含まれる。モデル生成処理は、教師データセットを用いて学習済モデル155を生成するための処理である。
【0018】
通信部33は、通信モジュールを含み、ネットワークNWに接続して、他の装置と各種データの送受信を行う。
【0019】
記憶部35は、不揮発性メモリなどの記憶装置を含み、プログラム351および教師データセット355を記憶する。その他にもモデル生成サーバ3において用いる様々なデータが記憶される。プログラム351は、コンピュータにより実行可能であればよく、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶された状態でモデル生成サーバ3に提供されてもよい。この場合には、文章提供サーバ1は、記録媒体を読み取る装置を備えていればよい。プログラム351は、通信部33を介してダウンロードすることによって提供されてもよい。
【0020】
記憶部35には、複数の教師データセット355が記憶されてもよい。教師データセット355は、コード列データ357と解説文章データ359とを対応付けたデータであり、学習済モデル155を生成するときに用いられる。教師データセット355の詳細については後述する。
【0021】
[2.文章提供処理]
続いて、文章提供サーバ1における制御部11が実行する文章提供処理(文章提供方法)について説明する。文章提供処理は、例えば、通信端末9からの要求に応じて開始される。
【0022】
図2は、一実施形態における文章提供処理を示すフローチャートである。制御部11は、通信端末9から楽曲コードデータを受信するまで待機する(ステップS101;No)。楽曲コードデータは、楽曲を構成する複数のコードを時系列に並べて記述されたデータである。例えば、楽曲コードデータは、例えば、「CM7-Dm7-Em7-・・・」として記述されている。時系列に並べるときには、各コードは、所定の単位期間(例えば、1小節、1拍など)を単位として並べられてもよいし、単位期間を考慮せずに順番に並べられてもよい。例えば、上述の例で各コードが1小節を単位として並べられる場合を想定すると、上記の例における最初のコードが2小節続くときには、楽曲コードデータは「CM7-CM7-Dm7・・・」として記述される。一方、小節数を考慮しない場合を想定すると、楽曲コードデータは上記の例のように「CM7-Dm7-・・・」として記述される。
【0023】
ユーザが通信端末9を操作して、楽曲コードデータの送信を指示すると、通信端末9は文章提供サーバ1に対して楽曲コードデータを送信する。文章提供サーバ1が楽曲コードデータを受信すると、制御部11は、楽曲コードデータからコード入力データを生成する(ステップS103)。コード入力データは、楽曲コードデータに含まれる各コードを所定のフォーマットに変換して記述されている。具体的には、コード入力データは、各コードをクロマベクトルによって記述したデータである。
【0024】
図3および図4は、一実施形態におけるコードを表すクロマベクトルを説明するための図である。図3および図4に示すように、クロマベクトルは、各音名(C、C#、D、・・・)に対応して音の有「1」または無「0」によって記述されている。この例では、各コードは、構成音に対応するクロマベクトル、ベース音に対応するクロマベクトルおよびテンション音に対応するクロマベクトルを組み合わせたデータ(以下、変換データという)に変換される。この例では、変換データは、3つのクロマベクトルを行列データ(3×12)として記述されたデータである。変換データは、3つのクロマベクトルを直列につなげたベクトルデータとして記述されてもよい。
【0025】
図3はコード「CM7」を変換データとして表した例である。図4はコード「C/B」を変換データとして表した例である。「CM7」と「C/B」とは、構成音が互いに同じであるが、ベース音およびテンション音が互いに異なる。したがって、変換データによれば、「CM7」と「C/B」とを区別することができる。すなわち、変換データはコードの機能を明確に表すことができる。変換データは、少なくとも構成音のクロマベクトルを含んでいればよく、ベース音およびテンション音の少なくとも一方、または双方が含まれていなくてもよい。変換データの構造は、必要とする結果に応じて適宜設定されればよい。
【0026】
コード入力データは、変換データを時系列に並べたデータである。上述した例のように、楽曲コードデータが「CM7-Dm7-・・・」である場合には、コード入力データは、「CM7」に対応する変換データ、「Dm7」に対応する変換データ、・・・の順で並んだデータとして記述される。
【0027】
図2に戻って説明を続ける。制御部11は、コード入力データを学習済モデル155に提供する(ステップS105)。制御部11は、学習済モデル155による演算処理を実行し(ステップS107)、学習済モデル155から文章出力データを取得する(ステップS109)。制御部11は、取得した文章出力データを通信端末9に送信する(ステップS111)。文章出力データは、上述した解説文章に対応し、コード入力データによって定義されるコードに関する解説を示す文字群を含む。解説文章は、コード進行を説明する第1文字群、コードの機能を説明する第2文字群、およびコード間の連結技法を説明する第3文字群の少なくとも1つを含む。この例では、解説文章は、第1文字群、第2文字群および第3文字群を含む。
【0028】
図5は、コード入力データから得られる解説文章の例を説明するための図である。学習済モデル155は、提供されたコード入力データをRNNにより演算することによって中間状態のデータを生成するエンコーダ(入力層ともいう)、および中間状態のデータをRNNにより演算することによって文章出力データを出力するデコーダ(出力層ともいう)を含む。より詳細には、エンコーダには、コード入力データに含まれる複数の変換データが時系列の順に提供される。デコーダは、時系列に並んだ複数の文字(文字群)を解説文章として出力する。ここでいう文字とは、形態素解析によって区分される一単語(形態素)を意味してもよい。中間状態は、隠れ状態または隠れ層ということもある。
【0029】
図5に示すコード入力データは、楽曲コードデータ「CM7-Dm7-Em7-・・・」として示されているが、上述したように各コードを変換データとして記述したデータである。コード入力データにおいて、コードが終了した部分には終了マーカ(EOS:End Of Sequence)が付されている。このコード入力データが学習済モデル155に提供されると、学習済モデル155は図5に例示される解説文章を含む文章出力データを出力する。
【0030】
図5に示すコード入力データによれば、文章出力データ、すなわち解説文章は、以下のような文字群の組み合わせによって構成される。
「前半は、ダイアトニックコードを順次上行させて、Fm7とBb7との間でツーファイブを形成する。Bb7が、サブドミナントマイナーコードFm7の代理コードとして機能する一方、それに続くAm7に対するドミナント7thコードE7の裏コードとして機能する。後半は、トニックコードCM7の代理コードAm7とサブドミナントマイナーコードFm7の代理コードAbM7の反復により、ルート音が半音で上下しつつ3rdと7thの音は同音で保持される進行である。」
【0031】
図5に示す解説文章のうち第1文字群(コード進行を説明)は、「Fm7とBb7との間でツーファイブを形成する」に相当する。
【0032】
図5に示す解説文章のうち第2文字群(コードの機能を説明)は、「Bb7が、サブドミナントマイナーコードFm7の代理コードとして機能する」、「Bb7が、それに続くAm7に対するドミナント7thコードE7の裏コードとして機能する」、「トニックコードCM7の代理コードAm7」、「サブドミナントマイナーコードFm7の代理コードAbM7」に相当する。実際には、解説文章においては、Bb7に関する2つの機能の説明がまとめられて、「Bb7が、・・・機能する一方、それに続くAm7に対する・・・機能する。」と表現されている。
【0033】
図5に示す解説文章のうち第3文字群(コード間の連結技法の説明)は、「ダイアトニックコードを順次上行させる」、「Am7とAbM7の反復により、ルート音が半音で上下しつつ3rdと7thの音は同音で保持される進行である」に相当する。実際には、解説文章においては、ダイアトニックコードを順次上行させることについては、次の文章と接続されるように「ダイアトニックコードを順次上行させて、・・・」と表現されている。
【0034】
このようにして得られた文章出力データは、楽曲コードデータを送信した通信端末9に送信される。これによって、通信端末9のユーザに対して、楽曲コードデータに対応する解説文章が提供される。以上が、文章提供処理についての説明である。
【0035】
[3.モデル生成処理]
続いて、モデル生成サーバ3における制御部31が実行するモデル生成処理(モデル生成方法)について説明する。モデル生成処理は、モデル生成サーバ3の管理者が使用する端末等からの要求に応じて開始される。モデル生成処理は、ユーザの要求、すなわち通信端末9からの要求に応じて開始されてもよい。
【0036】
図6は、一実施形態におけるモデル生成処理を示すフローチャートである。制御部31は、記憶部35から教師データセット355を取得する(ステップS301)。上述したように、教師データセット355は、互いに対応付けられたコード列データ357と解説文章データ359とを含む。コード列データ357は、コード入力データと同様の形式で記述されている。すなわち、コード列データ357は、変換データで表されたコードを時系列に並べたデータとして記述されている。
【0037】
解説文章データ359は、図5に示すような解説文章を含むデータである。この解説文章は、コード列データ357によって定義されるコードに関する解説をする文章である。解説文章は、上述したように、コード進行を説明する第1文字群、コードの機能を説明する第2文字群、およびコードに間の連結技法を説明する第3文字群の少なくとも1つを含む。この例では、解説文章データ359は、解説文章を形態素解析によって分割された単語を特定するための識別子が付されている。各単語は「One Hot Vector」で記述される。解析文章は、「word2vec」、「GloVe」などの単語表現で記述されてもよい。
【0038】
教師データセット355に含まれるコード列データ357は、この例では1つの楽曲に対応するコードの並びを含み、少なくとも1つの終了マーカEOSが付されている。教師データセット355は、様々な形態を取り得る。図7から図9を用いて、教師データセット355が取り得る複数の例を説明する。
【0039】
図7から図9は、教師データセットの一例を説明するための図である。ここで説明する教師データセット355において、楽曲のコードに対応するコード列データ357は、複数に区分(楽曲区間CL(A)~CL(E))で示されている。ここでは、楽曲区間CL(A)~CL(E)は、それぞれ楽曲を構成するフレーズ等の区分された範囲、例えば、8小節単位の範囲に対応し、それぞれ時系列に並んだ複数のコードを含む。各楽曲区間は、他の楽曲区間と同じ長さでなくてもよい。
【0040】
図7に示すコード列データ357は、楽曲区間CL(A)~CL(E)に対応するコードを一連に記述した形式を有し、データの最後にのみ終了マーカEOSを含む。
【0041】
図8におけるコード列データ357は、楽曲区間CL(A)~CL(E)に対応するコードを、それぞれ楽曲区間毎に分割して記述した形式を有する。分割位置には、終了マーカEOSが記述されている。終了マーカEOSによって分割された区間を分割領域という。1つの分割領域に複数の楽曲区間が含まれてもよい。一方、この例では1つの楽曲区間が複数の分割領域に含まれない。
【0042】
図9におけるコード列データ357は、図8に示すように楽曲区間CL(A)~CL(E)に対応するコードを、それぞれ楽曲区間毎に分割した後に、各分割領域においてさらに楽曲区間の前後の楽曲区間のコードを加えて記述した形式を有する。すなわち、図9におけるコード列データ357では、1つの分割領域に連続する複数の楽曲区間が配置され、少なくとも1つの楽曲区間が複数の分割領域に含まれる。この例では、各分割領域に、3つの連続する楽曲区間が配置され、最初と最後の分割領域のみ2つの連続する楽曲区間が配置されている。連続する楽曲区間の数はこの例に限られない。
【0043】
解説文章データ359は、楽曲区間CL(A)~CL(E)にそれぞれ対応する解説文章ED(A)~ED(E)を含む。例えば、解説文章ED(A)は、楽曲区間CL(A)に対応するコードを解説する文字群を含む。図8および図9に示す解説文章データ359は、コード列データ357と同様に、終了マーカEOSによって分割されている。
【0044】
図6に戻って説明を続ける。制御部31は、コード列データ357を機械学習用のモデル(ここでは訓練モデルという)に入力する(ステップS303)。訓練モデルは、学習済モデル155と同じニューラルネットワーク(この例ではRNN)を用いた演算処理を行うモデルである。訓練モデルは、文章提供サーバ1に記憶されている学習済モデル155であってもよい。
【0045】
制御部31は、コード列データの入力に対応して訓練モデルから出力された値と解説文章データ359とを用いて、誤差逆伝搬による機械学習を実行する(ステップS305)。具体的には、機械学習によって、訓練モデルのニューラルネットワークにおける重み係数が更新される。学習すべき他の教師データセット355が存在している場合(ステップS307;Yes)、残りの教師データセット355を用いて機械学習を実行する(ステップS301、S303、S305)。学習すべき他の教師データセット355が存在しない場合(ステップS307;No)、制御部31は機械学習を終了する。
【0046】
制御部31は、機械学習を済みの訓練モデルを学習済モデルとして生成して(ステップS309)、モデル生成処理を終了する。生成された学習済モデルは、文章提供サーバ1に提供されて学習済モデル155として使用される。このように、学習済モデル155は、コード列データ357に定義されるコードとそのコードに関する解説文章との相関関係を学習したモデルである。
【0047】
機械学習において入力されるコード列データ357が図8および図9のようにデータの途中で終了マーカEOSを含む場合、制御部31は終了マーカEOSの時点で中間状態をリセットする。すなわち、機械学習においては、特定の分割領域におけるコードと、その領域から分割された他の分割領域におけるコードとは、連続した時系列のデータとして扱われない。図8に示す例では、特定の楽曲区間におけるコードと、その楽曲区間とは異なる楽曲区間のコードとは、互いに独立した時系列のデータとして扱われる。一方、1つの楽曲区間に含まれるコードは、時系列のデータとして扱われる。
【0048】
図9に示す例では、互いに離れた楽曲区間、例えば、楽曲区間CL(B)と楽曲区間CL(E)とは1つの分割領域に含まれることはなく、互いに独立した時系列のデータとして扱われる。一方、楽曲区間CL(B)と楽曲区間CL(C)とは1つの分割領域に含まれる場合と、互いに異なる分割領域に含まれる場合とがある。したがって、分割領域によって楽曲区間CL(B)のコードと楽曲区間CL(C)のコードとが、一連の時系列のデータとして扱われる場合と、互いに独立した時系列のデータとして扱われる場合とがある。
【0049】
例示した3つの教師データセットをまとめると、以下のとおりである。第1の例は、図7のように分割領域を設定しない教師データセットである。第2の例は、図8のように複数の分割領域が設定され、いずれの楽曲区間も複数の分割領域に含まれることがない教師データセットである。第3の例は、図9のように複数の分割領域を設定され、少なくとも1つの楽曲区間が複数の分割領域に含まれるデータセットである。
【0050】
特に、第1の例および第3の例のように、時系列のデータとして扱われるコードを多くすることで、コードの並びの前後関係を広く考慮した精度の高い機械学習を実現することができる。第3の例のように、前後関係の範囲を絞ることで、互いに離れすぎていて関係性が希薄となる部分を機械学習の対象から除外し、より精度の高い機械学習を実現することができる。機械学習においては、これらの例のうち、いずれか1つの例のみが用いられてもよいし、複数の例が併用されてもよい。
【0051】
[4.コード解釈の例]
次に、コードの解釈と解説文章との相関関係についてさらに詳しく説明する。ここでは、代表的なコード進行の例としてツーファイブワン(II-V-I)が検出される例を説明する。
【0052】
図10は、ツーファイブワンとして検出されるコード進行を説明するための図である。図10においては、ツーファイブワンのコード進行として、CmajまたはAminのスケール内における例(基本形、派生形)、およびスケール外における他の例(裏コード、解決の先送り)が示されている。「裏コード」は、コード進行の一部において裏コードを利用していることを意味する。基本形に対応する派生形および裏コードは、破線で1つの範囲に囲まれている。派生形および裏コードにおいて、基本形と相違する部分は下線で示されている。「解決の先送り」については、ツーファイブワンの形式をとりつつ、()で示したコードが挿入されることで変化が付けられている例である。
【0053】
上述した機械学習により生成された学習済モデル155は、基本形以外で表現されたコード進行であってもツーファイブワンが存在していることを解説文章として出力することができる。楽曲を構成するコードの並びにおいて、ツーファイブワンを意図せず偶然にツーファイブワンに相当するコード進行が含まれている場合もある。このような場合であっても、その前後関係を含めた機械学習により生成された学習済モデル155は、コード進行がツーファイブワンに該当するのか該当しないのかを考慮した解説文章を出力することができる。
【0054】
図11および図12は、コード入力データから得られる解説文章の例を説明するための図である。図11図12とは、いずれも「Em7-A7-GbM7-Ab7」というコードの並びを備えているが、図12ではさらにDbM7が最後の部分に付加されている。すなわち、終了マーカEOSによって時系列の最後に位置するコードが、図11ではAb7であるのに対し、図12ではDbM7である点で異なっている。
【0055】
学習済モデル155は、図11に示すコード入力データのうち、「Em7-A7-Ab7」の要素がツーファイブワンに関連すると推測し、以下のような解説文章を文章出力データとして出力する。
「Em7-A7-Ab7は、Cmajスケールのダイアトニックコードにおいて、Dmajスケールに見立てたときのII-V-I(Em7-A7-Dm7)の派生形であり、Dm7を裏コードに変更している。GbM7はDbmajにおけるAb7に対するツーファイブであり、Ab7への解決(終止)を一時的に遅らせるために挿入されている。」
【0056】
一方、学習済モデル155は、図12に示すコード入力データのうち、「GbM7-Ab7-DbM7」の要素がツーファイブワンに関連すると推測し、さらには、「Em7-A7-Ab7」の要素についても言及する以下のような解説文章を文章出力データとして出力する。
「CmajからDmajに一時転調している。GbM7-Ab7-DbM7は、DbmajスケールにおけるII-V-I(Ebm7-Ab7-DbM7)のうち、IIを同じサブドミナントであるIVに変化(Ebm7→GbM7)させたものである。転調をスムーズにするために、Em7-A7-Ab7という裏コードを利用したツーファイブワンの一種が取り入れられている。」
【0057】
このように、多くの教師データセット355を用いて上記のように機械学習をすることによって、コード入力データに含まれるコードの並びが類似したものであっても、学習済モデル155は類似した部分の前後関係を考慮して適切な解説文章を含む文章出力データを出力することができる。
【0058】
図13および図14は、ツーファイブワンとして検出されるコード進行の変形例を説明するための図である。図13に示す例では、ツーファイブワンのコード進行の基本形である「Bm7(-5)-E7-Am7」に対して、ベースラインの下降という連結技法が適用されると、例えば「Bm7(-5)-Bm7(-5)/F-E7-E7/G#-Am7」といったコードの並びになる。この場合でも、ベースラインの変化に影響されずに、ツーファイブワンのコード進行であることを認識することができる。
【0059】
図14に示す例では、ツーファイブワンのコード進行の基本形である「Dm7-Db7-CM7」に対して、パッシングディミニッシュという連結技法が適用されると、例えば「Dm7-Ddim7-Db7-CM7」といったコードの並びになる。この場合でも、Ddim7が追加されたことに影響されずに、ツーファイブワンのコード進行であることを認識することができる。
【0060】
[5.特定区間の抽出]
上述した実施形態において、コード入力データは、楽曲コードデータに含まれる全てのコードの並びを特定するものであってもよいし、そのなかから抽出された一部のコードの並びを特定するものであってもよい。以下の説明では、コード入力データに含まれるコードに対応する楽曲の区間を特定区間という。特定区間は、ユーザによって設定されてもよいし、以下に例示される所定の方法によって設定されてもよい。
【0061】
所定の方法の例について説明する。学習済モデル155に提供されるコード入力データは、楽曲コードデータのすべてではなくてもよく、楽曲の特徴的な部分を用いることができれば、楽曲に特徴的な解説文章を得ることができる。したがって、このような楽曲の特徴的な部分を特定区間として設定することが好ましい。楽曲の特徴的な部分は、様々な方法で設定することができるが、その一例について説明する。
【0062】
ここで説明する例では、制御部11が、予め決められた複数の判定区間(例えば、上述した楽曲区間)に楽曲を分割し、所定の条件を満たす判定区間を特定区間として設定する。この例では、各判定区間におけるコード進行重要度を算出することによって、所定の閾値を超えたコード進行重要度を有する判定区間が特定区間として設定される。
【0063】
コード進行重要度は、楽曲データベース159に登録された各種データと、判定区間におけるコード進行とに基づいて算出される。この算出方法の一例を説明する。
【0064】
図15は、一実施形態における楽曲データベースを説明するための図である。楽曲データベース159は、例えば、文章提供サーバ1の記憶部15に記憶される。楽曲データベース159には、複数の楽曲に関する情報が登録され、例えば、互いに関連付けられたジャンル情報、スケール情報、コード出現率データおよびコード進行出現率データが登録されている。
【0065】
ジャンル情報は、例えば、「ロック」、「ポップス」、「ジャズ」、・・・という楽曲のジャンルを示す情報である。スケール情報は、「C major scale」、「C minor scale」、「C# major scale」、・・・というスケール(この例ではキーも含む)を示す情報である。それぞれのスケールには、それを構成する音(以下、スケール構成音という)が設定されている。
【0066】
コード出現率データは、楽曲データベースに登録された全楽曲のコードの総数に対する、各種類のコードの割合を示す。例えば、コードの総数が「10000」であり、そのうち、コード「Cm」の数が「100」であれば、そのコードの出現率は、「0.01」である。
【0067】
コードの出現率の算出において、互いに類似するコードの同一性については、以下に例示するいずれかの判定基準を用いてもよい。互いにコード名が違えば別のコードとして扱われてもあってもよい(「CM7」と「C/B」とが異なる)。互いに構成音が同じであれば同じコードして扱われてもよい(「CM7」と「C/B」とが同じ)。互いに構成音とベース音とが同じであれば同じコードして扱われてもよい(「CM7」と「G/C」とが同じ)。互いに構成音が異なってもテンション音以外が同じであれば同じコードして扱われてもよい(「CM7」と「C」とが同じ)。
【0068】
コード進行出現率データは、楽曲データベースに登録された全楽曲のコード進行の総数に対する、各種類のコード進行の割合を示す。ここでいうコード進行は、予めユーザ等によって設定されている。例えば、コード進行の総数が「20000」であり、そのうち、コード進行「Dm-G7-CM7」の数が「400」であれば、コード進行の出現率は、「0.02」である。
【0069】
コードの同一性の判定基準は、上述したコード出現率の判定方法と同じであってもよい。コード進行の同一性の判定基準は、以下に例示するいずれかの判定基準を用いてもよい。互いに類似するコード進行は同じコード進行として扱われてもよい。例えば、図10に示す基本形に対する派生形および裏コードを利用した形は同じコード進行として扱われてもよい。
【0070】
コード進行の少なくとも2つが一致するコード進行は同じコード進行として扱われてもよい。例えば、コード進行「Dm-G7-CM7」であれば、「*-G7-CM7」、「Dm-*-CM7」および「Dm-G7-*」が同一のコード進行として扱われてもよい。ここで「*」は特定されないコード(全てのコードのいずれか)を示す。
【0071】
コード出現率データおよびコード進行出現率データは、全ての楽曲に対してのデータを含む。この例では、コード出現率データおよびコード進行出現率データは、さらに、ジャンル情報に規定されるジャンル毎に対応して定められたデータを含む。例えば、ジャンル「ロック」に対応するコード出現率データおよびコード進行出現率データは、ジャンル「ロック」に対応する楽曲のみから得られたコードの出現率およびコード進行の出現率を含んでもよい。出現率の母数(コードの総数およびコード進行の総数)については、楽曲全体に対するデータを対象としてもよい。
【0072】
コードおよびコード進行においては、ジャンル「ロック」における出現率とジャンル「ジャズ」における出現率とが異なる。そのため、ジャンル毎のコードの出現率およびコード進行の出現率が存在することによって、楽曲の特徴部分をより精度よく判定することができる。ジャンル情報は必ずしも用いられなくてもよく、この場合、ジャンル毎のコード出現率データおよびコード進行出現率データが存在しなくてもよい。
【0073】
図16は、コード進行重要度の計算方法を説明するための図である。図16に示す例では、判定区間におけるコード進行が「C-Cm-CM7-Cm7」である場合の各指標値および重要度を示している。指標値は、コード進行に対して決められるコード進行希少度(CP)、コード進行を構成する各コードに対して決められるスケール要素(S)、コード希少度(C)を含む。これらの指標に基づいて、各コードに対するコード重要度(CS)およびコード進行に対するコード進行重要度(CPS)が算出される。指標値及び重要度は、いずれも「0」から「1」の範囲の値を有する。数値が高いほど、特徴的要素であることを示す。
【0074】
この例では、楽曲に対して、キーがCであり、スケールがmajor scaleであり、ジャンルがポップスである。これらの情報は、あらかじめユーザによって設定されてもよいし、楽曲コードデータを解析して設定されてもよい。楽曲コードデータを解析する場合には、例えば、楽曲データベース159に登録されている楽曲との比較により類似するコードとの関係で設定されてもよいし、機械学習等によって得られた学習済みモデルを用いてコードの並びから推定されてもよい。
【0075】
スケール要素(S)は、コードの構成音の全てがスケール構成音に含まれる場合には「0」に設定され、コードの構成音のいずれかがスケール構成音に含まれない場合には「1」に設定される。スケール構成音に含まれない音を含むコードは、楽曲にとって特徴的な部分であるといえるためである。
【0076】
コード希少度(C)は、あらかじめ決められた算出式によって得られる。コード出現率が大きいほど、コード希少度(C)が小さくなるように算出式が決められている。C major scaleの場合、CおよびCM7は、コード出現率が相対的に高いため、コード希少度(C)は相対的に小さい値に設定されている。
【0077】
コード進行希少度(CP)は、あらかじめ決められた算出式によって得られる。コード進行出現率が大きいほど、コード進行希少度(CP)が小さくなるように算出式が決められている。この例では、「C-Cm-CM7-Cm7」というコード進行の出現率が極めて小さいため、コード進行希少度(CP)が大きい値「1」に設定されている。
【0078】
コード重要度(CS)は、スケール要素(S)、コード希少度(C)およびコード進行希少度(CP)を用いて算出される。この例では、算出式は、CS=a×S+b×C+c×CPであり、a=1/4、b=1/4、c=1/2である。コード進行重要度(CPS)は、コード重要度(CS)の平均値である。
【0079】
このようにして得られたコード進行重要度(CPS)は、数値が大きいほど(「1」に近いほど)、そのコード進行が他の楽曲と比べて珍しい構成であることを示している。すなわち、コード進行重要度(CPS)が大きい判定区間は、楽曲の特徴的な部分であるといえる。
【0080】
上記の指標値および重要度の算出方法は一例であって、全体としてコード進行の重要度(楽曲の特徴的な部分)が得られれば、様々な算出方法が取り得る。続いて、特定区間を用いてコード入力データを生成する方法について説明する。このコード入力データを生成する方法は、例えば、図2に示すステップS103における処理と置き換えられる。
【0081】
図17は、一実施形態におけるコード入力データを生成する処理を示すフローチャートである。制御部11は、キー、スケールおよびジャンルを設定する(ステップS1031)。上述したように、キー、スケールおよびジャンルは、ユーザによる設定により通信端末9から受信することによって取得してもよいしし、楽曲コードデータを解析することによって取得してもよい。制御部11は、楽曲を複数の判定区間に分割し(ステップS1033)、各判定区間におけるコード進行重要度(CPS)を算出する(ステップS1035)。
【0082】
制御部11は、各判定区間に対して算出されたコード進行重要度(CPS)に基づいて、少なくとも1つの判定区間を特定区間として設定する(ステップS1037)。ここでは、コード進行重要度(CPS)が所定の閾値よりも大きい判定区間が、特定区間として設定される。コード進行重要度(CPS)が最も大きい判定区間から順に所定数の判定区間が、特定区間として設定されてもよい。
【0083】
制御部11は、特定区間に対応するコード入力データを生成する(ステップS1039)。コード入力データにおいては、特定区間毎に終了マーカEOSが配置されることで1つの分割領域に1つの特定区間が配置されるようにしてもよいし、連続する複数の判定区間が複数の特定区間として設定された場合には、1つの分割領域にその複数の特定区間が含まれるように配置されてもよい。
【0084】
このようにして、生成されたコード入力データを学習済モデル155に提供することによって、学習済モデル155は、楽曲の特徴部分を表すコード進行に対する解説文章を生成して、文章出力データを出力することができる。
【0085】
[6.変形例]
本開示は上述した実施形態に限定されるものではなく、他の様々な変形例が含まれる。例えば、上述した実施形態は本開示を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。実施形態の構成の一部について、他の構成を追加・削除・置換してもよい。以下、一部の変形例について説明する。
【0086】
(1)上述した実施形態においては、文章提供サーバ1は、コード入力データから解説文章を生成するために学習済モデル155を用いたが、ニューラルネットワークを用いないモデル(例えばルールベースのモデル)を用いてもよい。学習済モデル155によれば、機械学習を多くの教師データセット355を用いることによって解説文章の精度を向上させることができる。
【0087】
ルールベースのモデルによれば、コード入力データから解説文章を生成するためのルール、すなわち上述したコード列データ357に相当する情報と解説文章データ359に相当する情報との対応関係を設定する必要がある。このルールは多くの情報量を必要とする。例えば、上述したようにツーファイブワンのコード進行として判断されるコードの並びとして、様々な種類が想定される。そのため、解説文章の精度を高めようとすると、想定され得る多く種類に対応して、それぞれ解説文章を設定する必要がある。情報量を低減するためには、学習済モデル155を用いた場合よりも解説文章を単純化する必要が生じる場合もある。学習済モデル155を用いる場合よりも効率が落ちる場合も想定されるものの、ルールベースのモデルによりコード入力データから解説文章を生成することは実現可能である。
【0088】
(2)コード出現率データおよびコード進行出現率データは、楽曲のキーによらず等価になるように定義されてもよい。例えば、コード出現率データは、楽曲のキーが「C」であるときのコード「CM7」と、キーが「E」であるときのコード「EM7」とが同じコードであるとして解釈されるようにすればよい。コード進行出現率データは、楽曲のキーが「C」であるときのコード進行「Dm-G7-CM7」と、キーが「E」であるときのコード進行「Fm-B7-EM7」とが同じコード進行であるとして解釈されるようにすればよい。
【0089】
すなわち、コード出現率データおよびコード進行出現率データは、いずれも楽曲のキーに対する相対的な表現のコードによって規定されればよい。相対的な表現とは、例えば、キーが「C」である場合に変換したものであってもよい。「I」、「II」といった記述に変換されたものであってもよい。例えば、キーが「C」におけるコード「Em7」は、「IIIm7」というように表現される。
【0090】
この場合には、制御部11は、相対的な表現のコードによって定義されたコード出現率データおよびコード進行出現率データを、設定された楽曲のキーに基づいて絶対的な表現のコードに変換する。制御部11は、変換後のコードによる出現率に基づいて、コード重要度(CS)およびコード進行重要度(CPS)を算出する。
【0091】
(3)文章提供サーバ1は、学習済モデル155を用いる代わりに、SVM(Support Vector Machine)またはHMM(Hidden Markov Model)などの演算モデルを用いてもよい。この場合には、制御部11は、この演算モデルを用いてコード入力データから特定のコード進行、例えば、「ツーファイブワン」を取得する。制御部11は、取得したコード進行と、予め決められた所定のテンプレートとを組み合わせて解説文章を制する。所定のテンプレートは、例えば、「このコード進行にはXXXXが用いられています。」である。「XXXX」の部分に取得したコード進行(上記の例では、「ツーファイブワン」)を用いることで、「このコード進行にはツーファイブワンが用いられています。」という解説文章が生成される。HMMであれば、コード入力データに含まれるコードを順次入力すればよい。SVMであれば、コード入力データに含まれる所定数のコードをまとめて入力すればよい。
【0092】
(4)複数の学習済モデル155を記憶するサーバがネットワークNWに接続されていてもよい。このサーバは、モデル生成サーバ3であってもよい。文章提供サーバ1は、このサーバに記憶された複数の学習済モデル155のいずれかを選択して、上述した文章提供処理を実行してもよい。文章提供サーバ1は、文章提供処理に用いる学習済モデル155をそのサーバからダウンロードして記憶部15に記憶してもよいし、学習済モデル155をダウンロードせずに、これを記憶するサーバと通信することによってコード入力データを送信し、文章出力データを受信してもよい。
【0093】
複数の学習済モデル155は、機械学習のときに用いる教師データセット355の少なくとも一部が互いに異なっている。例えば、ジャンル(ジャズ、クラシックなど)によってそれぞれ分類された複数の教師データセット355を用いて機械学習をすると、複数のジャンルにそれぞれ対応した複数の学習済モデル155が生成される。教師データセット355は、ジャンルの種類で分類されてもよいし、楽器の種類で分類されてもよい。この分類によれば、コード列データと解説文章データとが、その分類に特化したものとなる。教師データセット355は、その解説文章データ359に含まれる解説文章の作成者によって分類されてもよい。
【0094】
例えば、ジャズに分類される楽曲に対応したコード入力データが、ジャズに対応した学習済モデル155に提供されることで、精度の高い解説文章を得ることができる。コード入力データに対応する楽曲が分類される対象は、ユーザによって設定されてもよいし、楽曲を解析することによって設定されてもよい。
【0095】
1つのコード入力データが複数の学習済モデル155に提供されることで、複数種類の解説文章を得てもよい。例えば、複数の作成者にそれぞれ対応する複数の学習済モデル155を用いれば、得られた複数種類の解説文章を比較して、ユーザに適したものを選ぶこともできる。複数の学習済モデル155から得られた解説文章のうち、共通点に基づいて新たな解説文章を生成してもよい。
【0096】
(5)コード入力データおよびコード列データ357は、クロマベクトルで記述されている場合に限らない。例えば、コードの構成音がベクトルを含むデータで表されるのであれば、他の方法で表されてもよい。コードに関しても、「word2vec」、「GloVe」などを適用した表現で記述されてもよい。
【0097】
以上が変形例に関する説明である。
【0098】
以上のとおり、本開示の一実施形態によれば、コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得することを含む、文章提供方法が提供される。
【0099】
前記文章を取得することは、前記関係を学習させた学習済モデルに前記コードデータを提供することによって、前記学習済モデルから前記文章を取得することを含んでもよい。
【0100】
前記コード列データに含まれるコードは、少なくとも前記コードの構成音とベース音とを含んでもよい。
【0101】
前記コード列データに含まれるコードは、少なくとも前記コードの構成音と前記コードのテンション音とを含んでもよい。
【0102】
前記コードは、ベクトルを含むデータで表されてもよい。
【0103】
前記コードは、当該コードの構成音に対応する第1クロマベクトルを含むデータで表されてもよい。
【0104】
前記コードは、当該コードのベース音に対応する第2クロマベクトルを含むデータで表されてもよい。
【0105】
前記コードは、当該コードのテンション音に対応する第3クロマベクトルを含むデータで表されてもよい。
【0106】
前記解説文章は、コード進行を説明する第1文字群を含んでもよい。
【0107】
前記解説文章は、コードの機能を説明する第2文字群を含んでもよい。
【0108】
前記解説文章は、コード間の連結技法を説明する第3文字群を含んでもよい。
【0109】
楽曲の前記コードを時系列に並べた楽曲コードデータを取得し、前記楽曲コードデータから所定の条件を満たす特定区間の前記コードの並びを前記コード入力データとして抽出すること、を含んでもよい。
【0110】
前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のキーに応じて決められるコードに関する重要度とを用いた条件を含んでもよい。
【0111】
前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のジャンルに応じて決められるコードに関する重要度とを用いた条件を含んでもよい。
【0112】
前記文章提供方法をコンピュータに実行させるためのプログラムが提供されてもよい。このプログラムの命令を記憶する記憶部とその命令を実行するプロセッサを含む文章提供装置が提供されてもよい。
【符号の説明】
【0113】
1…文章提供サーバ、11…制御部、13…通信部、15…記憶部、151…プログラム、155…学習済モデル、159…楽曲データベース、3…モデル生成サーバ、31…制御部、33…通信部、35…記憶部、351…プログラム、355…教師データセット、357…コード列データ、359…解説文章データ、9…通信端末、1000…文章提供システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17