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

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

▶ エーアイエムアイ インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-31
(54)【発明の名称】音楽コンテンツの生成
(51)【国際特許分類】
   G10H 1/00 20060101AFI20230324BHJP
   G10G 1/04 20060101ALI20230324BHJP
【FI】
G10H1/00 102Z
G10G1/04
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022548683
(86)(22)【出願日】2021-02-11
(85)【翻訳文提出日】2022-08-10
(86)【国際出願番号】 US2021017722
(87)【国際公開番号】W WO2021163377
(87)【国際公開日】2021-08-19
(31)【優先権主張番号】62/972,711
(32)【優先日】2020-02-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/028,233
(32)【優先日】2020-05-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,431
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,433
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520456941
【氏名又は名称】エーアイエムアイ インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】バラッサニアン,エドワード
(72)【発明者】
【氏名】ハッチングス,パトリック イー.
(72)【発明者】
【氏名】ギフォード,トビー
【テーマコード(参考)】
5D182
5D478
【Fターム(参考)】
5D182AB03
5D182AC01
5D182AD05
5D478GG03
(57)【要約】
オーディオファイルの画像表現に基づき、新しい音楽コンテンツを自動的に生成することに関する技術が開示される。リアルタイムオーディオ生成のためのオーディオ技術の実装に関する技術も開示される。音楽コンテンツを修正するためのユーザが生成した制御を実装することに関連する更なる技術が開示される。さらに、作曲された音楽コンテンツへの寄与を追跡することに関して、より多くの技術が開示される。
【特許請求の範囲】
【請求項1】
方法であって、
コンピュータシステムによって、複数のオーディオファイルの複数の画像表現を生成するステップであって、特定のオーディオファイルの画像表現が、前記特定のオーディオファイル内のデータ及び前記特定のオーディオファイルのMIDI表現に基づき生成される、ステップと、
前記複数の画像表現に基づき、前記オーディオファイルのうちの複数のオーディオファイルを選択するステップと、
前記オーディオファイルのうちの前記複数のオーディオファイルを組み合わせて出力音楽コンテンツを生成するステップと、
を含む方法。
【請求項2】
前記画像表現におけるピクセル値は、前記オーディオファイルにおける速度を表し、前記画像表現は、速度の解像度で圧縮される、請求項1に記載の方法。
【請求項3】
前記画像表現が前記オーディオファイルの2次元表現である、請求項1に記載の方法。
【請求項4】
ピッチは、前記2次元表現の行によって表され、時間は、前記2次元表現の列によって表され、前記2次元表現のピクセル値は、速度を表す、請求項3に記載の方法。
【請求項5】
前記2次元表現は、幅32ピクセル×高さ24ピクセルであり、各ピクセルは、時間次元におけるビートの小部分を表す、請求項4に記載の方法。
【請求項6】
ピッチ軸は、8オクターブの範囲で2個のオクターブセットにバンディングされ、ピクセルの最初の12行は、最初の4オクターブのうちのどれが表されるかを決定するピクセルのピクセル値を有する前記最初の4オクターブを表し、ピクセルの第2の12行は、第2の4オクターブのうちのどれが表されるかを決定するピクセルのピクセル値を有する前記第2の4オクターブを表す、請求項4に記載の方法。
【請求項7】
時間軸に沿った奇数ピクセル値は、音符の開始を表し、前記時間軸に沿った偶数ピクセル値は、音符の継続を表す、請求項4に記載の方法。
【請求項8】
前記複数の画像表現に基づき、前記オーディオファイルの複数のオーディオファイルを選択するために、1つ以上の作曲ルールを適用するステップ、を更に含む請求項1に記載の方法。
【請求項9】
1つ以上の作曲ルールを適用するステップは、第1の閾値を超える画像表現におけるピクセル値を除去すること、及び第2の閾値を下回る画像表現におけるピクセル値を除去することを含む、請求項8に記載の方法。
【請求項10】
前記オーディオファイルのうちの前記複数のオーディオファイルを選択して結合し、前記出力音楽コンテンツを生成するために、1つ以上の機械学習アルゴリズムを前記画像表現に適用するステップ、を更に含む請求項1に記載の方法。
【請求項11】
前記出力音楽コンテンツにおけるハーモニ及びリズムコヒーレンスをテストするステップ、を更に含む請求項10に記載の方法。
【請求項12】
前記複数の画像表現から単一の画像表現を生成するステップと、
前記複数のオーディオファイルから1つ以上のテクスチャ特徴を抽出するステップと、
前記抽出されたテクスチャ特徴の説明を前記単一の画像表現に付加するステップと、
を更に含む請求項1に記載の方法。
【請求項13】
格納された命令を有する非一時的コンピュータ可読媒体であって、前記命令は以下の動作:
複数のオーディオファイルの複数の画像表現を生成するステップであって、特定のオーディオファイルの画像表現が、前記特定のオーディオファイル内のデータ及び前記特定のオーディオファイルのMIDI表現に基づき生成される、ステップと、
前記複数の画像表現に基づき、前記オーディオファイルのうちの複数のオーディオファイルを選択するステップと、
前記オーディオファイルのうちの前記複数のオーディオファイルを組み合わせて出力音楽コンテンツを生成するステップと、
を実行するためにコンピューティング装置により実行可能である、非一時的コンピュータ可読媒体。
【請求項14】
前記画像表現は、ピッチが行によって表され時間が列によって表される前記オーディオファイルの2次元表現であり、前記画像表現におけるピクセルのピクセル値は、前記特定のオーディオファイルの前記MIDI表現からの速度を表す、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
各ピクセルが時間次元におけるビートの小部分を表す、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記複数の画像表現から単一の画像表現を生成するステップと、
前記単一の画像表現にテクスチャ特徴の説明を付加するステップであって、前記テクスチャ特徴は前記複数のオーディオファイルから抽出される、ステップと、
を更に含む請求項13に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記複数のオーディオファイルと共に前記単一の画像表現を格納するステップ、を更に含む請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記単一の画像表現に1つ以上の作曲ルールを適用することによって、前記オーディオファイルのうちの前記複数のオーディオファイルを選択するステップ、を更に含む請求項16に記載の非一時的コンピュータ可読媒体。
【請求項19】
機器であって、
1つ以上のプロセッサと、
格納されたプログラム命令を有する1つ以上のメモリと、
を含み、前記プログラム命令は以下:
複数のオーディオファイルの複数の画像表現を生成し、特定のオーディオファイルの画像表現が、前記特定のオーディオファイル内のデータ及び前記特定のオーディオファイルのMIDI表現に基づき生成され、
前記複数の画像表現に基づき、前記オーディオファイルのうちの複数のオーディオファイルを選択し、
前記オーディオファイルのうちの前記複数のオーディオファイルを組み合わせて出力音楽コンテンツを生成する、
ために前記1つ以上のプロセッサにより実行可能である、機器。
【請求項20】
前記1つ以上のメモリに格納された前記プログラム命令は、生成された出力音楽コンテンツを再生するために、前記1つ以上のプロセッサによって実行可能である、請求項19に記載の機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示はオーディオエンジニアリングに関するものであり、特に音楽コンテンツの生成に関するものである。
【背景技術】
【0002】
ストリーミング音楽サービスは、通常、インターネットを介してユーザに楽曲を提供する。ユーザは、これらのサービスに加入し、ウェブブラウザ又はアプリケーションを介して音楽をストリーミングすることができる。このようなサービスの例としては、PANDORA、SPOTIFY、GROOVESHARKなどがある。多くの場合、ユーザは音楽のジャンルや特定のアーティストを選ぶことができる。ユーザは、典型的には、曲を評価することができ(例えば、星評価又は好き/嫌いシステムを用いて)、また、幾つかの音楽サービスは、前の評価に基づいてユーザにどの曲をストリーミングするかを調整することができる。ストリーミングサービス(ストリーミングされた曲毎にロイヤルティを支払うことを含むことができる)を実行する費用は、典型的には、ユーザのサブスクリプション費用及び/又は楽曲間で再生される広告によってカバーされる。
【0003】
曲の選択は、特定のジャンルのために書かれた曲の数とライセンス契約によって制限されることがある。ユーザは、特定のジャンルの同じ曲を聞くことに飽きる可能性がある。さらに、これらのサービスは、ユーザの好み、環境、行動などに合わせて音楽を調整できない可能性がある。
【図面の簡単な説明】
【0004】
図1】例示的な音楽生成器を示す図である。
【0005】
図2】幾つかの実施形態による、複数の異なるソースからの入力に基づいて出力音楽コンテンツを生成するためのシステムの例示的な概要を示すブロック図である。
【0006】
図3】幾つかの実施形態による、オーディオファイルの画像表現の分析に基づいて音楽コンテンツを出力するように構成された例示的な音楽生成システムを示すブロック図である。
【0007】
図4】オーディオファイルの画像表現の一例を示す。
【0008】
図5A】メロディ画像特徴表現のためのグレースケール画像の例を示す。
図5B】ドラムビート画像特徴表現のためのグレースケール画像の例を示す。
【0009】
図6】幾つかの実施形態に従った、単一の画像表現を生成するように構成された例示的なシステムを示すブロック図である。
【0010】
図7】複数のオーディオファイルの単一の画像表現の例を示す。
【0011】
図8】幾つかの実施形態に従った、音楽コンテンツ生成においてユーザが生成した制御を実施するように構成された例示的なシステムを示すブロック図である。
【0012】
図9】幾つかの実施形態による、ユーザが作成した制御要素に基づいて音楽生成モジュールをトレーニングするための方法のフローチャートを示す。
【0013】
図10】幾つかの実施形態による、例示的な教師/学生のフレームワークシステムを示すブロック図である。
【0014】
図11】幾つかの実施形態による、音楽コンテンツ生成においてオーディオ技術を実装するように構成された例示的なシステムを示すブロック図である。
【0015】
図12】オーディオ信号グラフの一例を示す。
【0016】
図13】オーディオ信号グラフの一例を示す。
【0017】
図14】幾つかの実施形態に従った、音楽技術音楽生成モジュールを使用して音楽コンテンツのリアルタイム変更を実施するための例示的なシステムを示す。
【0018】
図15】幾つかの実施形態による、オーディオパラメータの自動化のためのシステムにおける例示的なAPIモジュールのブロック図を示す。
【0019】
図16】幾つかの実施形態による、例示的なメモリゾーンのブロック図を示す。
【0020】
図17】幾つかの実施形態による、新しい音楽コンテンツを記憶するための例示的なシステムのブロック図を示す。
【0021】
図18】一部の実施形態に係る再生データの一例を示す図である。
【0022】
図19】幾つかの実施形態に従う、例示的な作曲システムを示すブロック図である。
【0023】
図20A】幾つかの実施形態による、グラフィカルユーザインタフェースを示すブロック図である。
図20B】幾つかの実施形態による、グラフィカルユーザインタフェースを示すブロック図である。
【0024】
図21】幾つかの実施形態に従う、分析モジュール及び構成モジュールを含む例示的な音楽生成システムを示すブロック図である。
【0025】
図22】幾つかの実施形態による、音楽コンテンツの増強セクションの例を示す図である。
【0026】
図23】幾つかの実施形態による、音楽コンテンツのセクションを配置するための例示的な技術を示す図である。
【0027】
図24】幾つかの実施形態に係る台帳を使用するためのフローチャート方法である。
【0028】
図25】幾つかの実施態様による、オーディオファイルを結合するために画像表現を使用する方法のフロー図である。
【0029】
図26】幾つかの実施形態による、ユーザにより生成された制御要素を実施する方法のフロー図である。
【0030】
図27】幾つかの実施形態に従った、音声パラメータを変更することによって音楽コンテンツを生成する方法のフロー図である。
【発明を実施するための形態】
【0031】
本明細書に開示される実施形態は、種々の変更及び代替形態の影響を受けやすいが、特定の実施形態は、例として図面に示され、本明細書において詳細に記載される。しかしながら、図面及びその詳細な説明は、特許請求の範囲を開示された特定の形態に限定することを意図するものではないことを理解されたい。それどころか、本願は、添付の特許請求の範囲によって定義されるように、本出願の開示の精神及び範囲内にある全ての変更、均等物及び代替物をカバーすることを意図している。
【0032】
本開示は、「一実施形態」、「特定の実施形態」、「幾つかの実施形態」、「種々の実施形態」、又は「一実施形態」への言及を含む。語句「一実施形態において」、「特定の実施形態において」、「幾つかの実施形態において」、「種々の実施形態において」、又は「一実施形態において」の出現は、必ずしも同じ実施形態を意味するわけではない。特定の特徴、構造、又は特性は、本開示と矛盾しない任意の適切な方法で結合されてよい。
【0033】
添付の特許請求の範囲において、ある要素が1つ以上タスクを実行するように「構成されている」ことは、その請求項の要素について35U.S.C.§112(f)を援用しないことを明確に意図している。従って、提出される本願の請求項のいずれも、手段及び機能の要素を有するものとして解釈されることが意図される。出願人が審査中に§112(f)を含むことを意図する場合には、[機能を実行するための]「手段」の構成を用いて請求項の要素を記載する。
【0034】
本願明細書で使用されるとき、用語「に基づき」は、決定に影響する1つ以上の要素を記述するために使用される。この用語は、追加的な要因が決定に影響を及ぼす可能性を排除するものではない。つまり、決定は、特定の要素に単独で基づいて、又は特定の要素及び他の指定されていない要素に基づいてよい。「Bに基づいてAを決定する」という語句を考える。この語句は、BがAを決定するために使用される、又はAを決定することに影響を与える因子であることを規定している。この語句は、Aの決定がCなどの他の因子にも基づくことができることを前提としているわけではない。この語句は、AがBのみに基づいて決定される実施形態をも包含することを意図している。
【0035】
本明細書中で使用されているように、句「~に応答して」は、効果をトリガする1つ以上の因子を記述する。この語句は、付加的な要因が影響を及ぼしたり、そうでなければ影響を引き起こしたりする可能性を排除するものではない。すなわち、効果は、これらの要因にのみ反応することもあれば、特定の要因及び他の特定されていない要因にのみ反応することもある。
【0036】
本明細書中で使用される場合、用語「第1」、「第2」などは、それらが先行する名詞のラベルとして使用され、特に断らない限り、いかなる種類の順序付け(例えば、空間的、時間的、論理的など)も意味しない。本明細書中で使用される場合、用語「又は」は、包括的に使用されるか、排他的に使用されるか、又は使用されない。例えば、語句「x、y、又はzの少なくとも1つ」は、x、y、及びzの任意の1つ、ならびにそれらの任意の組み合わせ(例えば、x及びy、ただしzは意味しない)を意味する。ある状況では、用語「又は」の使用の文脈は、それが排他的な意味で使用されていることを示し得る、例えば、「x、y、又はzのうちの1つを選択する」は、x、y、及びzのうちの1つのみがその例で選択されることを意味する。
【0037】
以下の説明では、開示された実施形態の完全な理解を提供するために、多数の特定の詳細が記載されている。しかしながら、当業者は、開示された実施形態の態様が、これらの特定の詳細なしに実施され得ることを認識すべきである。幾つかの例では、周知の構造、コンピュータプログラム命令、及び技術は、開示された実施形態を不明瞭にすることを避けるために詳細には示されていない。
【0038】
2013年8月16日に出願された米国特許出願番号第13/969,372号(現在の米国特許第8,812,144号)は、1つ以上の音楽属性に基づいて音楽コンテンツを生成するための技術を論じており、その全体が参照により本明細書に組み込まれる。372出願の定義と本開示の残りの部分との間の認識された矛盾に基づいて何らかの解釈がなされる限りにおいて、本開示が適用されることを意図する。音楽属性は、ユーザによって入力されてもよく、又は周囲のノイズ、照明などの環境情報に基づいて決定されてもよい。’372の開示は、格納されたループ及び/又はトラックを選択する、又は新しいループ/トラックを生成する技術、及び選択されたループ/トラックをレイヤ化して出力音楽コンテンツを生成する技術を論じている。
【0039】
2019年5月23日に出願された米国特許出願番号第16/420,456号(現在の米国特許第10,679,596号)は、音楽コンテンツを生成するための技術を議論じており、その全体が参照により本明細書に組み込まれる。456出願の定義と本開示の残りの部分との間の認識された矛盾に基づいて何らかの解釈がなされる限りにおいて、本開示が適用されることを意図する。音楽は、ユーザによる入力に基づいて、又はコンピュータに実装された方法を使用して生成されてもよい。456の開示は、様々な音楽生成器の実施形態について論じている。
【0040】
本開示は、一般に、様々なパラメータに基づいてオーディオトラックを選択及び結合することによってカスタム音楽コンテンツを生成するシステムに関する。様々な実施形態では、機械学習アルゴリズム(深層学習ニューラルネットワークのようなニューラルネットワークを含む)は、特定のユーザに対して音楽コンテンツを生成及びカスタマイズするように構成される。幾つかの実施形態において、ユーザは、自身の制御要素を作成することができ、コンピューティングシステムは、ユーザ定義の制御要素のユーザの意図した機能に従って出力音楽コンテンツを生成するようにトレーニングされ得る。幾つかの実施形態では、本明細書に記載される技術によって生成される音楽コンテンツの再生データは、異なる権利者(例えば、著作権保有者)による様々な音楽コンテンツの使用を記録し、追跡するために記録されてもよい。以下に説明する種々の技術は、異なるコンテキストにより関連するカスタム音楽を提供し、特定の音声に従って音楽を生成することを容易にし、音楽が生成される方法をユーザがより多く制御することを可能にし、1つ以上の特定の目標を達成する音楽を生成し、他のコンテンツに伴ってリアルタイムで音楽を生成するなどが可能である。
【0041】
本明細書で使用される場合、「オーディオファイル」という用語は、音楽コンテンツのための音声情報を指す。例えば、音声情報は、音楽コンテンツを、wav、aiff、又はFLACのようなフォーマットで生のオーディオとして記述するデータを含むことができる。音楽コンテンツのプロパティは、音声情報に含まれることがある。プロパティは、例えば、楽器分類、ピッチ転写、ビートタイミング、テンポ、ファイル長、及び複数の周波数ビンにおけるオーディオ振幅のような定量可能な音楽プロパティを含んでもよい。幾つかの実施態様において、音声ファイルは、特定の時間間隔にわたって音声情報を含む。様々な実施形態では、オーディオファイルはループを含む。本明細書で使用される「ループ」という用語は、特定の時間間隔にわたる単一の計測器に関する音声情報を指す。オーディオファイルを参照して議論されている様々な技術は、単一の楽器を含むループを使用して実行することもできる。オーディオファイル又はループは、繰り返して再生されてもよいが(例えば、30秒オーディオファイルは、音楽コンテンツを2分生成するために、1列に4回再生されてもよい)、オーディオファイルは、例えば、繰り返されることなく、1回再生されてもよい。
【0042】
幾つかの実施態様において、音楽ファイルの画像表現が生成され、音楽コンテンツを生成するために使用される。オーディオファイルの画像表現は、オーディオファイルのデータ及びオーディオファイルのMIDI表現に基づいて生成される。画像表現は、例えば、オーディオファイルのMIDI表現から決定されたピッチ及びリズムの二次元画像表現であってもよい。新しい音楽コンテンツを生成するために使用されるオーディオファイルを選択するために、画像表現にルール(例えば、作曲ルール)を適用することができる。様々な実施形態では、機械学習/ニューラルネットワークが画像表現上に実装され、新しい音楽コンテンツを生成するために結合するためのオーディオファイルを選択する。幾つかの実施態様において、画像表現は、音声ファイルの圧縮(例えば、低解像度)バージョンである。画像表現を圧縮することにより、画像表現における選択された音楽コンテンツの検索速度を向上させることができる。
【0043】
幾つかの実施形態では、音楽生成器は、音楽ファイルの様々なパラメータ表現に基づいて新しい音楽コンテンツを生成することができる。例えば、オーディオファイルは、典型的には、時間に対する信号(例えば、信号振幅、周波数、又はそれらの組み合わせ)のグラフとして表すことができるオーディオ信号を有する。しかし、時間に基づく表現は、音楽コンテンツのテンポに依存する。様々な実施形態では、オーディオファイルはまた、ビートに対する信号のグラフ(例えば、信号グラフ)を使用して表現される。信号グラフはテンポに依存せず、音楽コンテンツのオーディオパラメータのテンポ不変の変更を可能にする。
【0044】
幾つかの実施形態では、音楽生成器は、ユーザがユーザ定義の制御を作成し、ラベル付けすることを可能にする。例えば、ユーザは、音楽生成器が次に、ユーザの好みに応じて音楽に影響を与えるようにトレーニングすることができる制御を作成することができる。様々な実施形態では、ユーザ定義の制御装置は、ムード、強度、又はジャンルを調整する制御装置のような高レベルの制御装置である。このような制御は、典型的には、聴取者の個人的な好みに基づく主観的な尺度である。幾つかの実施形態において、ユーザは、ユーザ定義パラメータのための制御を作成し、ラベル付けする。その後、音楽生成器は、様々な音楽ファイルを再生し、ユーザが定義したパラメータに従って音楽を変更することを可能にする。音楽生成器は、ユーザ定義パラメータのユーザによる調整に基づいて、ユーザの好みを学習し、記憶することができる。従って、後の再生中に、ユーザ定義パラメータのためのユーザ定義制御は、ユーザによって調整され得、音楽生成器は、ユーザの好みに従って音楽再生を調整する。幾つかの実施形態では、音楽生成器は、ユーザ定義パラメータによって設定されたユーザの好みに従って音楽コンテンツを選択することもできる。
【0045】
幾つかの実施態様では、音楽生成器によって生成される音楽コンテンツは、様々な利害関係者(例えば、権利者又は著作権者)と共に音楽を含む。生成された音楽コンテンツを連続的に再生する商用アプリケーションでは、個々のオーディオトラック(ファイル)の再生に基づく報酬は困難である。従って、様々な実施形態では、連続音楽コンテンツの再生データを記録するための技術が実装されている。記録された再生データは、個々のオーディオトラックについてステークホルダーとマッチした連続音楽コンテンツ内の個々のオーディオトラックの再生時間に関連する情報を含むことができる。さらに、再生データ情報の改ざんを防止するための技術を実装してもよい。例えば、再生データ情報は、公的にアクセス可能な固定ブロックチェーン台帳に記憶することができる。
【0046】
この開示は、まず、図1及び図2を参照して、音楽生成モジュールの例と、複数のアプリケーションを備えた全体的なシステム構成を説明する。画像表現から音楽コンテンツを生成する技術について、図3-7を参照して説明する。ユーザが生成した制御要素を実装するための実装方法は、図8及び図10を参照して説明されている。図11-17を参照して、オーディオ技術を実現するための技術を説明する。生成された音楽又は要素についての情報をブロックチェーン又は他の暗号台帳に記録するための技術を、図18-19を参照して説明する。図20A~20Bは、例示的なアプリケーションインタフェースを示す。
【0047】
一般に、開示された音楽生成器は、オーディオファイル、メタデータ(例えば、オーディオファイルを記述する情報)、及びメタデータに基づいてオーディオファイルを結合するための文法を含む。生成器は、音楽体験のメタデータ及びターゲット特性に基づいてオーディオファイルを識別するためのルールを使用して、音楽体験を生成することができる。これは、ルール、オーディオファイル、及び/又はメタデータを追加又は変更することによって、作成可能な経験のセットを拡張するように設定することができる。調整は、手動で実行することができ(例えば、アーティストが新しいメタデータを追加する)、又は音楽生成器は、所定の環境内で音楽体験及び所望の目標/特性を監視する際に、ルール/オーディオファイル/メタデータを増大させることができる。例えば、音楽の目標又は特徴に関するユーザのフィードバックを得るために、聴取者定義の制御を実施することができる。
【0048】
代表的な音楽生成器の概要
図1は、幾つかの実施形態に従う、例示的な音楽生成器を示す図である。図示の実施形態では、音楽生成モジュール160は、複数の異なるソースから様々な情報を受信し、出力音楽コンテンツ140を生成する。
【0049】
図示された実施形態では、モジュール160は、記憶されたオーディオファイル及び記憶されたオーディオファイルの対応する属性110にアクセスし、オーディオファイルを結合して出力音楽コンテンツ140を生成する。幾つかの実施形態では、音楽生成モジュール160は、それらの属性に基づいてオーディオファイルを選択し、ターゲット音楽属性130に基づいてオーディオファイルを結合する。幾つかの実施形態では、音声ファイルは、ターゲット音楽属性130と組み合わされた環境情報150に基づいて選択されてもよい。幾つかの実施形態では、環境情報150は、ターゲット音楽属性130を決定するために間接的に使用される。幾つかの実施形態では、ターゲット音楽属性130は、例えば、所望のエネルギレベル、ムード、複数のパラメータなどを指定することによって、ユーザによって明示的に指定される。例えば、本明細書に記載される聴取者定義の制御装置は、ターゲット音楽属性として使用される聴取者の好みを指定するために実装されてもよい。ターゲット音楽属性130の例には、エネルギ、複雑性、及び多様性が含まれるが、より具体的な属性(例えば、記憶されたトラックの属性に対応する)も指定することができる。一般に、より高いレベルのターゲット音楽属性が指定されている場合、出力音楽コンテンツを生成する前に、システムによってより低いレベルの音楽属性が決定されることがある。
【0050】
複雑さとは、合成に含まれる多くのオーディオファイル、ループ、及び/又は楽器を指す。エネルギは、他の属性に関連することもあれば、他の属性に直交することもある。例えば、キーやテンポを変更すると、エネルギに影響を与える可能性がある。しかしながら、所与のテンポ及びキーに対して、エネルギは、楽器の種類(例えば、ハイハット又はホワイトノイズを加えることによる)、複雑さ、音量などを調節することによって変更され得る。多様性とは、生成された音楽の時間的変化量を表し得る。変化は、他の音楽属性の静的集合に対して(例えば、与えられたテンポ及びキーに対して異なるトラックを選択することによって)生成されてもよく、又は、音楽属性を経時的に変化させることによって(例えば、変化が大きいことが望ましい場合には、テンポ及びキーをより頻繁に変化させることによって)生成されてもよい。幾つかの実施形態では、ターゲット音楽属性は、多次元空間に存在するものと考えられ、音楽生成モジュール160は、環境変化及び/又はユーザ入力に基づいて、例えば、必要に応じて、コース修正を行って、その空間をゆっくりと移動することができる。
【0051】
幾つかの実施態様では、オーディオファイルと共に格納された属性は、テンポ、音量、エネルギ、多様性、スペクトル、包絡線、変調、周期性、立ち上がり及び減衰時間、ノイズ、アーティスト、楽器、テーマ等を含む1つ以上のオーディオファイルに関する情報を含む。幾つかの実施態様において、音声ファイルは、1つ以上の音声ファイルのセットが特定の音声ファイルタイプ(例えば、1つの音源又は1つの音源タイプ)に特有であるようにパーティションされることに留意されたい。
【0052】
図示された実施形態では、モジュール160は、格納されたルールセット120にアクセスする。幾つかの実施形態では、記憶されたルールセット120は、オーディオファイルが同時に再生されるようにオーバーレイするオーディオファイルの数(出力音楽の複雑さに対応し得る)、オーディオファイル又は音楽フレーズの間を移行する際に使用される主キー/副キーの進行(どの楽器が一緒に使用されるか(例えば、互いに親和性を有する楽器))などのルールを規定して、目標とする音楽属性を達成する。別の方法では、音楽生成モジュール160は、記憶されたルールセット120を使用して、ターゲット音楽属性(及び/又はターゲット環境情報)によって定義される1つ以上の宣言的目標を達成する。幾つかの実施形態では、音楽生成モジュール160は、繰り返し出力音楽を回避するために、擬似乱数を導入するように構成された1つ以上の擬似乱数発生器を含む。
【0053】
幾つかの実施例では、環境情報150は、照明情報、周囲の騒音、ユーザ情報(顔の表情、体位、活動レベル、動作、皮膚の温度、特定の活動の性能、衣類の種類など)、温度情報、地域における購入活動、時間、曜日、季節、存在する人の数、天候などの1つ以上を含む。幾つかの実施形態では、音楽生成モジュール160は、環境情報を受信/処理しない。幾つかの実施形態では、環境情報150は、環境情報に基づいてターゲット音楽属性130を決定する別のモジュールによって受信される。ターゲット音楽属性130はまた、他のタイプのコンテンツ、例えば、ビデオデータに基づいて導出することもできる。幾つかの実施形態では、環境情報は、例えば、1つ以上の環境目標を達成するために、1つ以上の格納されたルールセット120を調整するために使用される。同様に、音楽生成器は、環境情報を使用して、1つ以上のオーディオファイルの記憶された属性を調整してもよく、例えば、これらのオーディオファイルが特に関連するターゲット音楽属性又はターゲット聴衆特性を示す。
【0054】
本明細書で使用される用語「モジュール」は、指定された動作を実行するように構成された回路、又は、他の回路(例えば、プロセッサ)に指定された動作を実行するように指示する情報(例えば、プログラム命令)を格納する一時的でない物理的なコンピュータ読み取り可能媒体を指す。モジュールは、ハードワイヤード回路として、又は、1つ以上のプロセッサによって実行可能なプログラム命令を格納されたメモリとして、動作を実行することを含む複数の方法で実装することができる。ハードウェア回路は、例えば、カスタム超大規模集積回路又はゲートアレイ、論理チップ、トランジスタ、又は他の個別部品のような市販の半導体を含むことができる。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイスなどのプログラマブルハードウェアデバイスに実装することもできる。モジュールはまた、指定された動作を実行するために実行可能なプログラム命令を記憶する非一時的コンピュータ可読媒体の任意の好適な形態であってもよい。
【0055】
本明細書で使用される場合、「音楽コンテンツ」という語句は、音楽自体(音楽の可聴表現)及び音楽を再生するために使用可能な情報の両方を意味する。従って、記憶媒体(例えば、コンパクトディスク、フラッシュドライブなど)上にファイルとして記録された楽曲は、音楽コンテンツの一例であり、この記録ファイル又は他の電子的表現を(例えば、スピーカを介して)出力することによって生成される音声もまた、音楽コンテンツの一例である。
【0056】
「音楽」という用語には、楽器によって発生される音や、ボーカル音声を含む、十分に理解された意味が含まれる。従って、音楽は、例えば、楽器演奏又は録音、アカペラ演奏又は録音、及び楽器と音声の両方を含む演奏又は録音を含む。当業者であれば、「音楽」がすべてのボーカル録音を包含するわけではないことを認識するであろう。演説、ニュース、オーディオブックなど、リズムやリズムなどの音楽の属性を含まない作品は、音楽ではない。
【0057】
音楽の「コンテンツ」の1つは、他の音楽コンテンツと適切に区別することができる。例えば、第1の曲に対応するデジタルファイルは第1の曲の音楽コンテンツを表すことができ、第2の曲に対応するデジタルファイルは第2の曲の音楽コンテンツを表すことができる。語句「音楽コンテンツ」はまた、所与の音楽作品内の特定の間隔を区別するために使用することができ、その結果、同一の曲の異なる部分を異なる音楽コンテンツと見なすことができる。同様に、所定の音楽作品内の異なるトラック(例えば、ピアノトラック、ギタートラック)も、異なる音楽コンテンツに対応し得る。生成された音楽の潜在的に無限のストリームの文脈において、語句「音楽コンテンツ」は、ストリームのある部分(例えば、少数の小節又は数分)を参照するために使用され得る。
【0058】
本開示の実施形態によって生成される音楽コンテンツは、以前には生成されなかった音楽要素の組み合わせである「新しい音楽コンテンツ」であってもよい。関連した(しかしより拡張的な)概念、すなわち「オリジナル音楽コンテンツ」については、以下でさらに詳しく説明する。この用語の説明を容易にするために、音楽コンテンツ生成のインスタンスに対する「制御エンティティ」の概念を記述する。「オリジナル音楽コンテンツ」とは異なり、「新しい音楽コンテンツ」とは制御エンティティの概念を指すものではない。従って、新しい音楽コンテンツとは、いかなるエンティティ又はコンピュータシステムによっても生成されたことのない音楽コンテンツを指す。
【0059】
概念的に、本開示は、コンピュータ生成音楽コンテンツの特定のインスタンスを制御することとして、幾つかの「エンティティ」を言及する。そのようなエンティティは、コンピュータで生成されたコンテンツに対応する法的権利(例えば、著作権)を(そのような権利が実際に存在する場合に限り)所有する。一実施形態では、コンピュータにより実装される音楽生成器を作成する(例えば、種々のソフトウェアルーチンをコード化する)個人、又は、コンピュータ実装音楽生成の特定のインスタンスを操作する(例えば、入力を供給する)個人が、制御エンティティである。他の実施形態では、コンピュータで実装された音楽生成器は、ソフトウェア製品、コンピュータシステム、又はコンピューティングデバイスの形態のような、法人(例えば、法人又は他の事業組織)によって作成されてもよい。ある場合には、そのようなコンピュータに実装された音楽生成器を多くのクライアントに配備することができる。この音楽生成器の配信に関連するライセンスの条件に応じて、制御エンティティは、クリエータ、配信者、又は様々な場合のクライアントとなり得る。そのような明示的な法的合意がない場合、コンピュータで実装された音楽生成器の制御エンティティは、音楽コンテンツの特定のコンピュータ生成のインスタンスを容易にする(例えば、入力を供給し、それによって操作する)エンティティである。
【0060】
本開示の意味において、制御エンティティによる「オリジナルの音楽コンテンツ」のコンピュータ生成とは、1)制御エンティティ又は他者のいずれによっても、以前には生成されたことのない音楽要素の組み合わせ、及び2)制御エンティティによって生成されたが、最初の事例では生成された音楽要素の組み合わせを指す。コンテンツタイプ1)は、ここでは「新規音楽コンテンツ」と呼ばれ、「新しい音楽コンテンツ」の定義と同様であるが、「新規音楽コンテンツ」の定義は「制御エンティティ」の概念を指し、「新しい音楽コンテンツ」の定義はそうではない。一方、コンテンツタイプ2は、ここでは「専有音楽コンテンツ」と呼ばれている.ここでの「専有」という用語は、コンテンツにおけるいかなる暗黙の法的権利(そのような権利が存在するとしても)も意味しないが、単に、音楽コンテンツが元々、制御エンティティによって生成されたことを示すために使用されるにすぎない。従って、制御エンティティによって以前にかつ最初に生成された音楽コンテンツを「再生する」制御エンティティは、本開示の「オリジナル音楽コンテンツの生成」を構成する。特定の制御エンティティに関する「非オリジナル音楽コンテンツ」とは、当該制御エンティティの「オリジナル音楽コンテンツ」ではない音楽コンテンツをいう。
【0061】
音楽コンテンツの一部は、1つ以上の他の音楽コンテンツからの音楽コンポーネントを含むことができる。このようにして音楽コンテンツを作成することは、「サンプリング」音楽コンテンツと呼ばれ、特定の音楽作品、特に特定のジャンルの音楽作品では一般的である。このような音楽コンテンツは、ここでは、「サンプリングされたコンポーネントを有する音楽コンテンツ」、「派生音楽コンテンツ」、又は他の類似の用語を使用することと称される。対照的に、サンプリングされたコンポーネントを含まない音楽コンテンツは、ここでは、「サンプリングされたコンポーネントを含まない音楽コンテンツ」、「非派生音楽コンテンツ」、又は他の類似の用語を使用して表される。
【0062】
これらの用語の適用に当たっては、特定の音楽コンテンツが十分なレベルの粒度にまで低減された場合には、この音楽コンテンツが派生的である(実質的にすべての音楽コンテンツが派生的である)と主張することができることに留意されたい。用語「派生的」及び「非派生的」は、本開示においてこの意味では使用されない。音楽コンテンツのコンピュータ生成に関しては、コンピュータ生成が、制御エンティティ以外のエンティティの既存の音楽コンテンツからコンポーネントの一部を選択する場合(例えば、コンピュータプログラムが、生成される音楽コンテンツの一部を含むように、人気アーティストの作品のオーディオファイルの特定の部分を選択する場合)、このようなコンピュータ生成は派生的であると言われる(及び派生的な音楽コンテンツをもたらす)。一方、コンピュータによる音楽コンテンツの生成は、コンピュータによる生成がそのような既存のコンテンツのコンポーネントを利用しない場合には、非派生的である(及び非派生的な音楽コンテンツをもたらす)と言われる。「オリジナルの音楽コンテンツ」の一部は派生的な音楽コンテンツであってもよいが、一部は非派生音楽コンテンツであってもよいことに注意する。
【0063】
「派生的」という用語は、米国著作権法で使用されている「派生的」という用語よりも、本開示においてより広い意味を有することが意図されていることに留意されたい。例えば、派生音楽コンテンツは、米国の著作権法に基づく派生作品である場合もあれば、そうでない場合もある。本開示における「派生的」という用語は、否定的な意味を伝えることを意図したものではなく、音楽コンテンツの特定の断片が、コンテンツの一部を別の著作物から「借りる」かどうかを単に指摘するために使用されるに過ぎない。
【0064】
さらに、「新しい音楽コンテンツ」、「新規音楽コンテンツ」及び「オリジナル音楽コンテンツ」という語句は、既存の音楽要素の組み合わせとは全く異なる音楽コンテンツを包含するものではない。例えば、既存の音楽作品の幾つかの音符を単に変更するだけでは、それらの語句が本開示で使用されるので、新しい、新規の、又はオリジナルの音楽コンテンツを生み出さない。同様に、単にキー又はテンポを変更したり、既存の音楽作品の周波数の相対的な強さを調整したりするだけでは、新しい、新規の、又はオリジナルの音楽コンテンツを生み出すことはできない。さらに、語句、新しい、新規の、オリジナルの音楽コンテンツは、オリジナルコンテンツと非オリジナルコンテンツの間の境界的なケースである音楽コンテンツをカバーすることを意図しておらず、代わりに、これらの用語は、著作権保護の対象となる音楽コンテンツを含む、疑いの余地なく、明白にオリジナルの音楽コンテンツ(ここでは、「保護可能な」音楽コンテンツと呼ぶ)をカバーすることを意図している。さらに、本明細書で使用される場合、「利用可能な」音楽コンテンツという用語は、制御エンティティ以外のエンティティの著作権を侵害しない音楽コンテンツを指す。新しい及び/又はオリジナルの音楽コンテンツは、多くの場合、保護され、利用可能である。これは、音楽コンテンツの複製を防止すること、及び/又は音楽コンテンツにロイヤルティを支払うことにおいて利点がある。
【0065】
本明細書で議論される様々な実施形態は、ルールに基づくエンジンを使用するが、本明細書で議論されるコンピュータ学習及び/又は音楽生成技術のいずれかのために、様々な他のタイプのコンピュータ実施アルゴリズムを使用してもよい。しかしながら、ルールに基づくアプローチは、音楽コンテキストにおいて特に効果的である可能性がある。
【0066】
典型的な音楽システムにおいて使用され得るアプリケーション、記憶要素、及びデータの概要
音楽生成モジュールは、複数の異なるアプリケーション、モジュール、記憶素子などと相互作用して音楽コンテンツを生成することができる。例えば、エンドユーザは、異なる種類のコンピューティングデバイス(例えば、モバイルデバイス、デスクトップコンピュータ、DJ機器など)のために、複数の種類のアプリケーションの1つをインストールすることができる。同様に、別のタイプのアプリケーションが、企業ユーザに提供されてもよい。音楽コンテンツを生成する間にアプリケーションと対話することにより、音楽生成器は、音楽コンテンツを生成するために使用される1つ以上のルールセットを更新するために、ターゲット音楽属性を決定するために使用される外部情報を受信することができる。1つ以上のアプリケーションとの対話に加えて、音楽生成モジュールは、ルールセット、更新ルールセットなどを受信するために他のモジュールと対話することができる。最後に、音楽生成モジュールは、一つ以上のルールセット、オーディオファイル、及び/又は一つ以上の記憶素子に記憶された生成された音楽コンテンツにアクセスすることができる。加えて、音楽生成モジュールは、ローカルであっても、ネットワーク(例えば、クラウドベース)を介してアクセスされてもよい、1つ以上の記憶素子に上記の項目のいずれかを記憶することができる。
【0067】
図2は、幾つかの実施形態による、複数の異なるソースからの入力に基づいて出力音楽コンテンツを生成するためのシステムの例示的な概要を示すブロック図である。図示の実施形態では、システム200は、ルールモジュール210、ユーザアプリケーション220、ウェブアプリケーション230、エンタープライズアプリケーション240、アーティストアプリケーション250、アーティストルール生成モジュール260、生成された音楽の記憶270、及び外部入力280を含む。
【0068】
ユーザアプリケーション220、ウェブアプリケーション230、及びエンタープライズアプリケーション240は、図示の実施形態では、外部入力280を受信する。幾つかの実施形態では、外部入力280は、環境入力、ターゲット音楽属性、ユーザ入力、センサ入力などを含む。幾つかの実施形態では、ユーザアプリケーション220は、ユーザのモバイルデバイス上にインストールされ、ユーザがルールモジュール210と対話/通信することを可能にするグラフィカルユーザインタフェース(GUI)を含む。幾つかの実施態様において、ウェブアプリケーション230は、ユーザ装置にインストールされず、ユーザ装置のブラウザ内で動作するように構成され、ウェブサイトを介してアクセスすることができる。幾つかの実施態様において、エンタープライズアプリケーション240は、音楽生成器と対話するために大規模なエンティティによって使用されるアプリケーションである。幾つかの実施態様において、アプリケーション240は、ユーザアプリケーション220及び/又はウェブアプリケーション230と組み合わせて使用される。幾つかの実施形態では、アプリケーション240は、1つ以上の外部ハードウェアデバイス及び/又はセンサと通信して、周囲の環境に関する情報を収集する。
【0069】
図示の実施形態では、ルールモジュール210は、ユーザアプリケーション220、ウェブアプリケーション230、及びエンタープライズアプリケーション240と通信して、出力音楽コンテンツを生成する。幾つかの実施態様において、音楽生成器160は、ルールモジュール210に含まれる。ルールモジュール210は、アプリケーション220、230、及び240のうちの1つに含まれてもよく、又はサーバにインストールされてネットワークを介してアクセスされてもよいことに留意されたい。幾つかの実施態様において、アプリケーション220、230及び240は、生成された出力音楽コンテンツをルールモジュール210から受信し、コンテンツを再生させる。幾つかの実施形態では、ルールモジュール210は、例えば、ターゲット音楽属性及び環境情報に関して、アプリケーション220、230及び240からの入力を要求し、このデータを使用して音楽コンテンツを生成してもよい。
【0070】
記憶されたルールセット120は、図示の実施形態では、ルールモジュール210によってアクセスされる。幾つかの実施形態では、ルールモジュール210は、アプリケーション220、230、及び240との通信に基づいて、格納されたルールセット120を変更及び/又は更新する。幾つかの実施形態では、ルールモジュール210は、記憶されたルールセット120にアクセスして、出力音楽コンテンツを生成する。図示された実施形態では、記憶されたルールセット120は、アーティストルール生成モジュール260からのルールを含むことができ、以下でさらに詳細に説明する。
【0071】
図示の実施形態では、アーティストアプリケーション250は、アーティストルール生成モジュール260(例えば、同じアプリケーションの一部であってもよく、クラウドベースであってもよい)と通信する。幾つかの実施態様において、アーティストアプリケーション250は、アーティストが、例えば、以前の作曲に基づいて、特定のサウンドのためのルールセットを作成することを可能にする。この機能は、さらに、米国特許第10,679,596号に記載されている。幾つかの実施形態では、アーティストルール生成モジュール260は、ルールモジュール210によって使用されるために生成されたアーティストルールセットを格納するように構成される。ユーザは、特定のアーティストからルールセットを購入してから、それらを使用して特定のアプリケーションを介して出力音楽を生成することができる。特定のアーティストのためのルールセットは、署名パックと呼ばれることがある。
【0072】
記憶されたオーディオファイル及び対応する属性110は、図示の実施形態では、ルールを適用してトラックを選択し及び結合して出力音楽コンテンツを生成する際に、モジュール210によってアクセスされる。図示の実施形態では、ルールモジュール210は、生成された出力音楽コンテンツ270を記憶要素に記憶する。
【0073】
幾つかの実施形態では、図2の1つ以上の要素は、サーバ上に実装され、クラウドベースの実装と呼ばれるネットワークを介してアクセスされる。例えば、記憶されたルールセット120、オーディオファイル/属性110、及び生成された音楽270はすべて、クラウド上に記憶され、モジュール210によってアクセスされ得る。別の実施例では、モジュール210及び/又はモジュール260もまた、クラウド内で実装されてもよい。幾つかの実施態様において、生成された音楽270は、クラウドに格納され、デジタル透かしを付される。これにより、例えば、カスタム音楽コンテンツを大量に生成するだけでなく、生成された音楽のコピーを検出することができる。
【0074】
幾つかの実施形態では、開示されたモジュールのうちの1つ以上は、音楽コンテンツに加えて他のタイプのコンテンツを生成するように構成される。例えば、システムは、ターゲット音楽属性、決定された環境条件、現在使用されているルールセットなどに基づいて、出力視覚コンテンツを生成するように構成することができる。別の例として、システムは、生成される音楽の現在の属性に基づいてデータベース又はインターネットを検索し、音楽が変化するにつれて動的に変化し、音楽の属性に一致する画像のコラージュを表示することができる。
【0075】
機械学習アプローチの例
本明細書に記載されるように、図1に示される音楽生成モジュール160は、出力音楽コンテンツ140を生成するために、種々の人工知能技術(例えば、機械学習技術)を実装することができる。様々な実施形態では、実施されるAI技術は、より伝統的な機械学習技術及び知識ベースのシステムと深層ニューラルネットワーク(DNN)の組み合わせを含む。この組み合わせは、これらの技術の各々の長所と短所を、音楽作曲やパーソナライズシステムに固有の課題に合わせることができる。音楽コンテンツは複数のレベルで構成されている。例えば、曲にはセクション、フレーズ、メロディ、音符、テクスチャがある。DNNは、音楽コンテンツの非常に高いレベルと非常に低いレベルの詳細を分析し生成するのに有効である。例えば、DNNは、サウンドのテクスチャをクラリネット又はエレキギターに属するものとして低レベルで分類したり、詩及び合唱を高レベルで検出したりすることができる。メロディの構築、オーケストレーション等のような、音楽コンテンツの詳細の中間レベルは、より困難である。DNNは、典型的には、単一モデルにおいて広範囲のスタイルを捕捉するのに優れており、従って、DNNは、多くの表現範囲を有する生成ツールとして実装され得る。
【0076】
幾つかの実施形態では、音楽生成モジュール160は、音楽生成モジュールによって使用される音楽コンテンツの基本的なユニットとして、人間が作成したオーディオファイル(例えば、ループ)を有することによって、専門的知識を利用する。例えば、専門知識の社会的文脈は、リズム、メロディ、テクスチャの選択を通して組み込まれ、多重レベルの構造で発見的方法を記録することができる。構造レベルに基づくDNNと従来の機械学習との分離とは異なり、音楽生成モジュール160のトレーニング可能性に過度に強い制限を課すことなく音楽性を向上させることができる任意の領域に、専門的知識を適用することができる。
【0077】
幾つかの実施形態では、音楽生成モジュール160は、オーディオの層を互いに重ね合わせることによって垂直方向に、オーディオファイル又はループをシーケンスに結合することによって水平方向に、結合する方法のパターンを見つけるためにDNNを使用する。例えば、音楽生成モジュール160は、マルチトラックオーディオ録音に使用されるループのMFCC(Mel-frequency cepstral coefficient)オーディオ特徴についてトレーニングされたLSTM(long short-term memory)リカレントニューラルネットワークを実装することができる。幾つかの実施形態では、ネットワークは、前のビートのオーディオ特徴の知識に基づいて、来るべきビートのためのループのオーディオ特徴を予測及び選択するようにトレーニングされる。例えば、ネットワークは、最後の128ビートのオーディオ特徴の知識に基づいて、次の8ビートに対するループのオーディオ特徴を予測するようにトレーニングされ得る。従って、ネットワークは、来たるビートを予測するために、低次元特徴表現を利用するようにトレーニングされる。
【0078】
特定の実施形態では、音楽生成モジュール160は、強度及び複雑性のダイナミクスを有する音楽構造にマルチトラックオーディオのシーケンスを組み立てるために、既知の機械学習アルゴリズムを使用する。例えば、音楽生成モジュール160は、階層構造の複数のレベルによって決定される確率で状態遷移を行う状態マシンのように振る舞うことができる階層的隠れマルコフ(Markov)モデルを実装することができる。一例として、特定の種類のドロップは、ビルドアップセクションの後に起こりやすいが、そのビルドアップの終わりにドラムがなければ起こりにくい。様々な実施形態では、何が学習されているかがより不透明であるDNNトレーニングとは対照的に、確率は透明にトレーニングされ得る。
【0079】
マルコフモデルは、より大きな時間的構造を扱う可能性があり、従って、例示的なトラックを提示することは、例示的なトラックが長すぎる可能性があるため、容易にはトレーニングされない可能性がある。フィードバック制御要素(ユーザインタフェースの賛成/反対など)を使用して、音楽にフィードバックをいつでも与えることができる。特定の実施形態では、フィードバック制御要素は、図8に示すUI制御要素830の1つとして実装される。次に、音楽構造とフィードバックとの間の相関関係を用いて、遷移テーブル又はマルコフモデルのような、作曲に使用される構造モデルを更新することができる。このフィードバックは、心拍数、売上、又はシステムが明確な分類を決定できる他の測定基準の測定値から直接収集することもできる。上述の専門知識ヒューリスティックスは、可能な限り確率論的であり、マルコフモデルと同じようにトレーニングされるように設計されている。
【0080】
特定の実施形態では、トレーニングは、作曲者又はDJによって実行され得る。このようなトレーニングは、聴取者トレーニングとは別のものであってもよい。例えば、(典型的なユーザのような)聴取者によって行われるトレーニングは、正及び負のモデルフィードバックに各々基づいて、正しい又は誤った分類を識別することに限定されることがある。作曲家やDJの場合、トレーニングには数百のタイムステップが含まれ、音楽コンテンツの変化を促す要素をより明確に示すために、使用されるレイヤやボリューム制御の詳細が含まれる。例えば、作曲者及びDJによって行われるトレーニングは、上述のDNNのグローバルトレーニングと同様の配列予測トレーニングを含むことができる。
【0081】
様々な実施形態では、DNNは、マルチトラックオーディオ及びインタフェースの相互作用を取り入れることによってトレーニングされ、DJ又は作曲者が次に何をするかを予測する。幾つかの実施形態では、これらの相互作用を記録し、より透明な新しい発見的方法を開発するために使用することができる。幾つかの実施形態では、DNNは、入力として多くの以前の音楽の小節を受け取り、上述のように、DJ又はコンポーザが適用したトラックへの変更を記述する追加の特徴とともに、低次元特徴表現を利用する。例えば、DNNは、入力として音楽の最後の32個の小節を受け取り、DJ又は作曲者が適用したトラックに対する変更を記述するために、追加の特徴と共に、低次元特徴表現を利用することができる。これらの変更は、特定のトラック、適用されるフィルタ、遅延等の利得に対する調整を含んでもよい。例えば、DJは、パフォーマンス中に5分間繰り返される同じドラムループを使用することができるが、トラック上の利得及び遅延を経時的に徐々に増加させることができる。従って、DNNは、ループ選択に加えて、そのような利得及び遅延変化を予測するようにトレーニングされ得る。特定の楽器に対してループが再生されない場合(例えば、ドラムループが再生されない場合)、特徴セットは、その楽器に対してすべてゼロであってもよく、これにより、DNNは、すべてのゼロを予測することが、選択的なレイヤ化につながる可能性がある成功戦略であることを学ぶことができる。
【0082】
場合によっては、DJ又は作曲者は、TRAKTOR(Native Instruments GmbH)などのミキサー及びデバイスを使用してライブパフォーマンスを記録する。これらのレコーディングは、通常、高解像度で取り込まれる(例えば、4トラックレコーディング又はMIDI)。幾つかの実施形態では、システムは、構成要素ループに記録を分解し、各個々のループの音響品質だけでなく、構成要素内のループの組み合わせに関する情報を得る。この情報を用いてDNN(又は他の機械学習)をトレーニングすることにより、DNNは、アーティストの演奏に使用された実際のループを使用せずに、アーティストの演奏と類似の音楽体験をどのように作り出すかを音楽生成モジュール160に知らせるために、ループの構成(例えば、シーケンシング、レイヤリング、ループのタイミング等)及び音響品質の両方を相関させる能力をDNNに提供する。
【0083】
オーディオファイルの画像表現を使用する例示的な音楽生成器
広く人気のある音楽は、リズム、質感、音程の組み合わせを有する場合が多い。(音楽生成器によって行われるように)曲中の各楽器について音符毎に音楽を生成するとき、ルールがこれらの組み合わせに基づいて実装され、コヒーレント音楽を作成することができる。一般に、ルールが厳格になればなるほど、クリエイティブなバリエーションの余地は少なくなり、既存の音楽のコピーを作成する可能性が高くなる。
【0084】
既に音声として録音された曲を組み合わせて音楽を作成する場合は、各句の音符の複数の不変の組み合わせを考慮して組み合わせを作成する必要がある。しかし、何千ものオーディオレコーディングのライブラリから引き出す場合、可能なすべての組み合わせを検索することは、計算コストが高くつくことがある。さらに、調和的に不一致な組み合わせ、特にビートについての組み合わせをチェックするために、注目すべき比較を行う必要があるかもしれない。複数のファイルを組み合わせて作成した新しいリズムは、組み合わせたフレーズのリズミカルな構成に関するルールと照らし合わせてチェックすることもできる。
【0085】
オーディオファイルから組み合わせを作成するために必要な機能を抽出することは、必ずしも可能ではない。可能であっても、オーディオファイルから必要な機能を抽出することは、計算コストがかかることがある。様々な実施形態では、記号的な音声表現が、演算費用を削減するために音楽作曲のために使用される。記号的な音声表現は、音楽作曲者の器具のテクスチャ、記憶されたリズム及びピッチ情報の記憶に依存することができる。シンボリック音楽表現の一般的なフォーマットはMIDIである。MIDIには正確なタイミング、ピッチ、パフォーマンス制御情報が含まれる。幾つかの実施形態では、MIDIは、音符が、典型的には8オクターブのピッチで、離散時間/ピッチグラフ上のバーとして示されるピアノロール表現を通して、簡略化され、さらに圧縮され得る。
【0086】
幾つかの実施形態では、音楽生成器は、音楽ファイルの画像表現を生成し、画像表現の分析に基づいて音楽の組み合わせを選択することによって、出力音楽コンテンツを生成するように構成される。画像表現は、ピアノロール表現からさらに圧縮された表現であってもよい。例えば、画像表現は、オーディオファイルのMIDI表現に基づいて生成される解像度の低い表現であってもよい。様々な実施形態では、作曲ルールが画像表現に適用され、音楽ファイルから音楽コンテンツを選択して、出力音楽コンテンツを結合し生成する。作曲ルールは、例えば、ルールベースの方法を用いて適用することができる。幾つかの実施形態では、機械学習アルゴリズム又はモデル(例えば、深層学習ニューラルネットワーク)が、出力音楽コンテンツを生成するためにオーディオファイルを選択及び結合するために実装される。
【0087】
図3は、幾つかの実施形態による、オーディオファイルの画像表現の分析に基づいて音楽コンテンツを出力するように構成された例示的な音楽生成システムを示すブロック図である。図示の実施形態では、システム300は、画像表現生成モジュール310、音楽選択モジュール320、及び音楽生成モジュール160を含む。
【0088】
図示の実施形態では、画像表現生成モジュール310は、オーディオファイルの1つ以上の画像表現を生成するように構成される。特定の実施形態では、画像表現生成モジュール310は、オーディオファイルデータ312及びMIDI表現データ314を受信する。MIDI表現データ314は、オーディオファイルデータ312内の特定のオーディオファイルのMIDI表現を含む。例えば、オーディオファイル内の特定のオーディオファイルに対しては、データ312は、MIDI表現データ314内に対応するMIDI表現を有することができる。オーディオファイルデータ312内に複数のオーディオファイルを有する幾つかの実施態様において、オーディオファイルデータ312内の各オーディオファイルは、MIDI表現データ314内に対応するMIDI表現を有する。図示の実施形態では、MIDI表現データ314は、音声ファイルデータ312と共に画像表現生成モジュール310に提供される。しかしながら、幾つかの企図された実施形態では、画像表現生成モジュール310は、音声ファイルデータ312からそれ自体でMIDI表現データ314を生成することができる。
【0089】
図3に示すように、画像表現生成モジュール310は、オーディオファイルデータ312及びMIDI表現データ314から画像表現316を生成する。MIDI表現データ314は、音楽ファイルに関連する音符のピッチ、時間、速度データを含み、一方、音楽ファイルデータ312は、音楽自体の再生のためのデータを含む。特定の実施形態では、画像表現生成モジュール310は、MIDI表現データ314からのピッチ、時間、速度データに基づいて、オーディオファイルの画像表現を生成する。画像表現は、例えば、オーディオファイルの二次元画像表現であってもよい。オーディオファイルの2D画像表現では、x軸は時間(リズム)を表し、y軸はピッチ(ピアノロール表現と同様)を表し、各x-y座標のピクセル値は速度を表す。
【0090】
オーディオファイルの2D画像表現は、種々の画像サイズを有することができるが、画像サイズは、典型的には、音楽構造に対応するように選択される。例えば、考えられる一実施形態では、2D画像表示は、32(x軸)×24画像(y軸)である。32ピクセル幅の画像表現は、各ピクセルが時間次元におけるビートの4分の1を表すことを可能にする。従って、8ビートの音楽は、32ピクセル幅の画像表現によって表され得る。この表現は、オーディオファイル内の音楽の表現的な詳細を捕捉するのに十分な詳細を有していないかもしれないが、表現的な詳細はオーディオファイル自体に保持され、これは、出力音楽コンテンツの生成のためにシステム300による画像表現と組み合わせて使用される。しかし、1/4ビートの時間分解能では、共通のピッチとリズムの組み合わせルールをかなりカバーすることができる。
【0091】
図4は、オーディオファイルの画像表現316の一例を示す。画像表現316は、幅32ピクセル(時間)及び高さ24ピクセル(ピッチ)である。各ピクセル(正方形)402は、その時間の速度及びオーディオファイル内のピッチを表す値を有する。様々な実施形態では、画像表現316は、オーディオファイルのグレースケール画像表現であってもよく、ここで、ピクセル値は、グレーの強度を変化させることによって表現される。ピクセル値に基づくグレーの変化は、小さく、多くの人にとって気づきにくいことがある。図5A及び図5Bは、メロディ画像特徴表現及びドラムビート画像特徴表現のためのグレースケール画像の例を各々示す。しかしながら、他の表現(例えば、カラー又は数値)もまた、考慮され得る。これらの表現において、各ピクセルは、異なる音楽属性に対応する複数の異なる値を有することができる。
【0092】
特定の実施形態では、画像表現316は、オーディオファイルの8ビット表現である。従って、各ピクセルは、256個の可能な値を有し得る。MIDI表現は、通常、速度に対して128個の可能な値を持つ。様々な実施形態では、速度値の詳細は、組み合わせのためにオーディオファイルを選択するタスクほど重要ではない。従って、そのような実施形態では、ピッチ軸(y軸)は、各組において4オクターブの8オクターブ範囲で2組のオクターブにカバーされるようにバンド付けされてもよい。例えば、8オクターブは次のように定義できる:
【数1】
【0093】
オクターブのこれらの定義された範囲では、ピクセルの行と値が音符のオクターブと速度を決定する。例えば、行1の10のピクセル値は、速度10のオクターブ0の音符を表し、行1の74のピクセル値は速度10のオクターブ2の音符を表す。別の例として、行13のピクセル値79は、速度15のオクターブ3の音符を表し、行13のピクセル値207は速度15のオクターブ7の音符を表す。したがって、上述のオクターブの定義範囲を使用すると、最初の12行(行0~11)は、最初の4オクターブのうちの1つが表されるピクセル値を決定する(ピクセル値も注の速度を決定する)4オクターブの最初のセット(オクターブ0、2、4、6)を表す。同様に、第2の12行(行12~23)は、第2のセットの4オクターブ(オクターブ1、3、5、及び7)を表し、ピクセル値は、第2の4オクターブのうちの1つが表される(ピクセル値もまた、注の速度を決定する)ピクセル値を決定する。
【0094】
上述のように、ピッチ軸を8オクターブ範囲をカバーするようにバンディングすることによって、各オクターブの速度は、MIDI表現の128値ではなく、64値によって定義され得る。従って、2D画像表現(例えば、画像表現316)は、同じオーディオファイルのMIDI表現よりも圧縮され得る(例えば、解像度が低い)。幾つかの実施形態では、64の値は、音楽の組み合わせを選択するためにシステム300が必要とする値よりも大きくてもよいので、画像表現のさらなる圧縮が許容されてもよい。例えば、奇数ピクセル値が音符の始まりを表し、ピクセル値が音符の持続を表すことによって、速度分解能をさらに低減して、時間的表現における圧縮を可能にすることができる。このように解像度を下げることにより、ピクセルの奇数値又は偶数値に基づいて、同じ速度で連続して演奏される2つの音符を、1つの長い音符から区別することができる。
【0095】
上述のように、画像表現のコンパクトさは、音楽の表現に必要なファイルのサイズを減少させる(例えば、MIDI表現と比較して)。したがって、オーディオファイルのイメージ表現を実装することにより、必要なディスク記憶量を減らすことができる。さらに、圧縮された画像表現は、可能な音楽の組み合わせを迅速に検索することができる高速メモリに記憶されてもよい。例えば、8ビットの画像表現をコンピュータ装置上のグラフィックスメモリに記憶することができ、これにより、大きな並列検索を一緒に実行することができる。
【0096】
様々な実施形態では、複数のオーディオファイルに対して生成された画像表現は、単一の画像表現に結合される。例えば、数十、数百、又は数千のオーディオファイルの画像表現を単一の画像表現に結合することができる。単一画像表現は、単一画像を構成する複数のオーディオファイルの並列サーチに使用することができる、大きなサーチ可能な画像であってもよい。例えば、単一の画像は、(id Softwareからの)MegaTexturesのようなソフトウェアを使用するビデオゲームの大きなテクスチャと同様の方法で検索することができる。
【0097】
図6は、幾つかの実施形態に従った、単一の画像表現を生成するように構成された例示的なシステムを示すブロック図である。図示の実施形態では、システム600は、単一画像表現生成モジュール610及びテクスチャ特徴抽出モジュール620を含む。特定の実施形態では、単一画像表現生成モジュール610及びテクスチャ特徴抽出モジュール620は、図3に示す画像表現生成モジュール310内に配置される。しかしながら、単一画像表現生成モジュール610又はテクスチャ特徴抽出モジュール620は、画像表現生成モジュール310の外側に配置されてもよい。
【0098】
図6の例示の実施形態に示されるように、複数の画像表現316A~Nが生成される。画像表現316A~Nは、個々のオーディオファイルのN個の数に対する個々の画像表現のN個の数であってもよい。単一画像表現生成モジュール610は、個々の画像表現316A~Nを単一の結合画像表現316に結合することができる。幾つかの実施態様に於いて、単一画像表現生成モジュール610により結合された個々の画像表現は、異なる機器に対する個々の画像表現を含む。例えば、オーケストラ内の異なる楽器は、個々の画像表現によって表現され得、次いで、それらは、音楽の探索及び選択のために、単一の画像表現に結合される。
【0099】
特定の実施態様に於いて、個々の画像表現316A-Nは、重複することなく互いに隣接して配置された個々の画像表現316と組み合わされる。従って、単一画像表現316は、データの損失を伴わない(例えば、別の画像表現のための1つの画像表現変更データからのデータを伴わない)全ての個々の画像表現316A~Nの完全なデータセット表現である。図7は、複数のオーディオファイルの単一の画像表現316の一例を示す。図示の実施形態では、単一画像表現316は、個々の画像表現316A、316B、316C、及び316Dから生成された結合画像である。
【0100】
幾つかの実施態様において、単一画像表現316は、テクスチャ特徴622を付加される。図示の実施形態では、テクスチャ特徴622は、単一の行として単一の画像表現316に追加される。図6を参照すると、テクスチャ特徴622は、テクスチャ特徴抽出モジュール620によって決定される。テクスチャ特徴622は、例えば、オーディオファイル内の音楽の楽器テクスチャを含んでもよい。例えば、テクスチャ特徴は、ドラム、弦楽器等のような異なる楽器からの特徴を含んでもよい。
【0101】
特定の実施形態では、テクスチャ特徴抽出モジュール620は、オーディオファイルデータ312からテクスチャ特徴622を抽出する。テクスチャ特徴抽出モジュール620は、例えば、ルールベースの方法、機械学習アルゴリズム又はモデル、ニューラルネットワーク、又は他の特徴抽出技術を実装して、オーディオファイルデータ312からテクスチャ特徴を決定することができる。幾つかの実施形態では、テクスチャ特徴抽出モジュール620は、画像表現316(例えば、複数の画像表現又は単一の画像表現)からテクスチャ特徴622を抽出してもよい。例えば、テクスチャ特徴抽出モジュール620は、画像表現316からテクスチャ特徴622を抽出するために、画像ベースの分析(画像ベースの機械学習アルゴリズム又はモデルなど)を実装することができる。
【0102】
単一画像表現316へのテクスチャ特徴622の追加は、オーディオファイルのMIDI表現又はピアノロール表現では典型的に利用できない追加情報を単一画像表現に提供する。幾つかの実施態様において、単一画像表現316(図7に示される)におけるテクスチャ特徴622を有する行は、人間が読むことが可能である必要がない場合がある。例えば、テクスチャ特徴622は、音楽生成システムにおける実装のために機械読み取り可能であることのみが必要とされ得る。特定の実施態様に於いて、テクスチャ特徴622は、単一画像表現316に付加され、単一画像表現の画像ベースの分析に使用される。例えば、テクスチャ特徴622は、後述するように、音楽の選択に使用される画像ベースの機械学習アルゴリズム又はモデルによって使用されてもよい。幾つかの実施形態において、テクスチャ特徴622は、音楽の選択中、例えば、以下に記載されるように、ルールに基づく選択において無視され得る。
【0103】
図3を振り返ると、図示の実施形態では、画像表現316(例えば、複数の画像表現又は単一の画像表現)が、音楽選択モジュール320に提供される。音楽選択モジュール320は、音楽生成モジュール160内で結合される音声ファイル又は音声ファイルの一部を選択することができる。特定の実施形態では、音楽選択モジュール320は、ルールに基づく方法を適用して、音楽生成モジュール160による組み合わせのために音声ファイル又は音声ファイルの一部を検索及び選択する。図3に示すように、音楽選択モジュール320は、格納されたルールセット120からルールベースの方法のためのルールにアクセスする。例えば、音楽選択モジュール320によってアクセスされるルールは、限定されるわけではないが、作曲ルール及び音符結合ルールなどの検索及び選択のためのルールを含んでもよい。画像表現316にルールを適用することは、コンピュータ装置上で利用可能なグラフィックス処理を使用して実施することができる。
【0104】
例えば、様々な実施形態において、音符組み合わせルールは、ベクトル及び行列の計算として表現され得る。グラフィックス処理ユニットは、典型的には、ベクトル及び行列計算を行うために最適化される。例えば、1つのピッチステップの間隔は、典型的には不一致であってよく、しばしば回避されてもよいことに注意されたい。これらのような注記は、ルールに基づいて、付加的に層状の画像(又は大きな画像のセグメント)中の隣接するピクセルを検索することによって見出すことができる。従って、様々な実施形態では、開示されたモジュールは、カーネルを呼び出して、コンピュータ装置のグラフィックスプロセッサ上で開示された動作の全て又は一部を実行することができる。
【0105】
幾つかの実施態様において、上述の画像表現におけるピッチのバンディングは、オーディオの高域通過又は低域通過フィルタリングの埋め込みのためのグラフィックス処理の使用を可能にする。閾値を下回るピクセル値を除去(例えば、フィルタリングアウト)することは、高域通過フィルタリングをシミュレートすることができ、閾値を上回るピクセル値を除去することは、低域通過フィルタリングをシミュレートすることができる。例えば、上述のバンディングの例では、64未満のピクセル値をフィルタで除去(除去)することは、例ではオクターブ0及び1を除去することによって、B1にシェルフを有する高域通過フィルタを適用するのと同様の効果を有し得る。従って、各オーディオファイル上のフィルタの使用は、オーディオファイルの画像表現にルールを適用することによって効率的にシミュレートすることができる。
【0106】
様々な実施形態では、音楽を作成するために音楽ファイルを重ね合わせる場合、特定の音声ファイルのピッチを変更することができる。ピッチを変更すると、成功した組み合わせの範囲が広がり、組み合わせの検索空間も広がる可能性がある。例えば、各オーディオファイルは、12の異なるピッチシフトキーでテストすることができる。画像を解析し、必要に応じてオクターブシフトを調整する際に、画像表現の行順序をオフセットすることで、これらの組み合わせを最適化した検索が可能になる場合がある。
【0107】
特定の実施形態では、音楽選択モジュール320は、音楽生成モジュール160による組み合わせのために音声ファイル又は音声ファイルの一部を検索及び選択するために、画像表現316上に機械学習アルゴリズム又はモデルを実装する。機械学習アルゴリズム/モデルは、例えば、アルゴリズムのトレーニングに基づいて画像を分類する深層学習ニューラルネットワーク又は他の機械学習アルゴリズムを含んでもよい。そのような実施形態では、音楽選択モジュール320は、所望の音楽特性を提供するオーディオファイルの組み合わせ及びシーケンスに基づいてトレーニングされる1つ以上の機械学習モデルを含む。
【0108】
幾つかの実施形態では、音楽選択モジュール320は、出力音楽コンテンツの選択中に継続的に学習する機械学習モデルを含む。例えば、機械学習モデルは、機械学習モデルによって実行される分類パラメータを調整するために使用され得る出力音楽コンテンツの特性を反映するユーザ入力又は他の入力を受け取ることができる。ルールに基づく方法と同様に、機械学習モデルは、コンピュータ装置上のグラフィックス処理ユニットを使用して実施することができる。
【0109】
幾つかの実施形態では、音楽選択モジュール320は、ルールに基づく方法及び機械学習モデルの組み合わせを実装する。意図された一実施形態では、音楽コンテンツの検索を開始し、検索がルールベースの方法を使用して実行される場合に結合するために、オーディオファイルと画像表現の組み合わせを見出すように機械学習モデルがトレーニングされる。幾つかの実施形態では、音楽選択モジュール320は、音楽生成モジュール160によって組み合わせのために選択された音楽における調和及びリズムルールコヒーレンスを試験する。例えば、音楽選択モジュール320は、以下に説明するように、選択された音声ファイルを音楽生成モジュール160に提供する前に、選択された音声ファイル322における調和及びリズムをテストすることができる。
【0110】
図3の例示の実施形態では、上述したように、音楽選択モジュール320によって選択された音楽は、選択された音楽ファイル322として音楽生成モジュール160に提供される。選択されたオーディオファイル322は、ここで説明するように、音楽生成モジュール160によって結合されて出力音楽コンテンツ140を生成する完全又は部分的なオーディオファイルを含んでもよい。幾つかの実施形態では、音楽生成モジュール160は、出力音楽コンテンツ140を生成するために選択されたオーディオファイル322に適用されたルールを検索するために、格納されたルールセット120にアクセスする。音楽生成モジュール160によって検索されるルールは、音楽選択モジュール320によって適用されるルールとは異なる場合がある。
【0111】
幾つかの実施態様において、選択されたオーディオファイル322は、選択されたオーディオファイルを結合するための情報を含む。例えば、音楽選択モジュール320によって実装される機械学習モデルは、音楽を結合する音楽の選択に加えて、どのように音楽コンテンツを結合するかを記述する命令を出力に提供することができる。次いで、これらの命令は、音楽生成モジュール160に提供され、選択されたオーディオファイルを結合するために音楽生成モジュールによって実装される。幾つかの実施態様では、音楽生成モジュール160は、出力音楽コンテンツ140を最終決定する前に、調和及びリズムルールコヒーレンスをテストする。このようなテストは、音楽選択モジュール320によって実行されるテストに加えて、又はその代わりに行うことができる。
【0112】
音楽コンテンツ生成のための例示的な制御
様々な実施形態では、本明細書に記載されるように、音楽生成システムは、様々なパラメータに基づいてオーディオトラックを選択及び結合することによって、出力音楽コンテンツを自動的に生成するように構成される。本明細書に記載されているように、機械学習モデル(又は他のAI技術)が、音楽コンテンツを生成するために使用される。幾つかの実施態様では、AI技術は、特定のユーザのために音楽コンテンツをカスタマイズするために実施される。例えば、音楽生成システムは、音楽生成を個人化するための種々のタイプの適応制御を実施することができる。音楽生成をパーソナライズすることにより、AI技術によるコンテンツ生成に加えて、作曲者又は聴取者によるコンテンツ制御が可能になる。幾つかの実施形態では、ユーザが独自の制御要素を作成し、この制御要素は、音楽生成システムが、ユーザが作成した制御要素の意図した機能に応じて出力音楽コンテンツを生成するようにトレーニング(例えば、AI技術を用いて)することができる。例えば、ユーザは、音楽生成システムがユーザの好みに応じて音楽に影響を与えるようにトレーニングする制御要素を作成することができる。
【0113】
様々な実施形態では、ユーザが作成した制御要素は、ムード、強度、又はジャンルを調整する制御などの高レベル制御である。このようなユーザにより生成された制御要素は、典型的には、聴取者の個々の好みに基づく主観的な尺度である。幾つかの実施形態において、ユーザは、ユーザが作成した制御要素をラベル付けし、ユーザが指定したパラメータを定義する。音楽生成システムは、様々な音楽コンテンツを再生することができ、ユーザは、制御要素を使用して、音楽コンテンツ内のユーザ指定パラメータを変更することができる。音楽生成システムは、ユーザ定義パラメータが音楽コンテンツ内のオーディオパラメータを変化させる方法を学習し、記憶することができる。従って、後の再生中に、ユーザが作成した制御要素は、ユーザによって調整され得、音楽生成システムは、ユーザが指定したパラメータの調整レベルに従って音楽再生におけるオーディオパラメータを調整する。幾つかの企図される実施形態では、音楽生成システムは、ユーザが指定したパラメータによって設定されたユーザの好みに従って音楽コンテンツを選択することもできる。
【0114】
図8は、幾つかの実施形態に従った、音楽コンテンツ生成においてユーザが生成した制御を実施するように構成された例示的なシステムを示すブロック図である。図示の実施形態では、システム800は、音楽生成モジュール160及びユーザインタフェースモジュール820を含む。様々な実施形態では、音楽生成モジュール160は、出力音楽コンテンツ140を生成するために、本明細書に記載の技術を実装する。例えば、音楽生成モジュール160は、記憶されたオーディオファイル810にアクセスし、記憶されたルールセット120に基づいて出力音楽コンテンツ140を生成することができる。
【0115】
様々な実施形態では、音楽生成モジュール160は、UIモジュール820に実装された1つ以上のUI制御要素830からの入力に基づいて音楽コンテンツを変更する。例えば、ユーザは、UIモジュール820との対話中に、制御要素830のレベルを調整することができる。制御要素の例としては、スライダ、ダイヤル、ボタン、又はノブが挙げられるが、これらに限定されない。制御要素830のレベルは、音楽生成モジュール160に提供される制御要素レベル832を設定する。次いで、音楽生成モジュール160は、制御要素レベル832に基づいて出力音楽コンテンツ140を変更することができる。例えば、音楽生成モジュール160は、制御要素レベル830に基づいて出力音楽コンテンツ140を変更するためにAI技術を実装することができる。
【0116】
特定の実施形態では、制御要素830のうちの1つ以上は、ユーザ定義の制御要素である。例えば、制御要素は、作曲者又は聴取者によって定義されてもよい。このような実施形態では、ユーザは、出力音楽コンテンツ140を制御するためにユーザが実装したいパラメータを指定するUI制御要素を作成し、ラベル付けすることができる(例えば、ユーザは、制御出力音楽コンテンツ140においてユーザが指定したパラメータを制御するための制御要素を作成する)。
【0117】
様々な実施形態では、音楽生成モジュール160は、ユーザが生成した制御要素からの入力に基づいて、特定の方法で出力音楽コンテンツ140に影響を与えるように学習又はトレーニングされ得る。幾つかの実施形態では、音楽生成モジュール160は、ユーザによって設定されたユーザが生成した制御要素のレベルに基づいて、出力音楽コンテンツ140内のオーディオパラメータを変更するようにトレーニングされる。トレーニング音楽生成モジュール160は、例えば、出力音楽コンテンツ140内のオーディオパラメータとユーザが作成した制御要素のレベルとの間の関係を決定することを含むことができる。次に、出力音楽コンテンツ140内のオーディオパラメータとユーザが生成した制御要素のレベルとの間の関係を音楽生成モジュール160によって利用して、ユーザが生成した制御要素の入力レベルに基づいて出力音楽コンテンツ140を変更することができる。
【0118】
図9は、幾つかの実施形態による、ユーザが作成した制御要素に基づいて音楽生成モジュール160をトレーニングするための方法のフローチャートを示す。方法900は、ユーザが910内の制御要素を作成し、ラベル付けすることから始まる。例えば、上述のように、ユーザは、音楽生成モジュール160によって生成された出力音楽コンテンツ140内のユーザ指定パラメータを制御するためのUI制御要素を作成し、ラベルを付けることができる。様々な実施形態では、UI制御要素のラベルは、ユーザ指定パラメータを記述する。例えば、ユーザは、生成された音楽コンテンツにおいて(ユーザによって定義される)姿勢を制御することをユーザが望むことを指定するために、制御要素を「アティテュード」としてラベル付けすることができる。
【0119】
UI制御要素の作成後、方法900は、再生セッション915を継続する。再生セッション915は、ユーザが作成したUI制御要素のレベルに基づいてオーディオパラメータを変更する方法をシステム(例えば、音楽生成モジュール160)にトレーニングするために使用することができる。再生セッション915では、オーディオトラックが920で再生される。オーディオトラックは、装置に格納された、又は装置によってアクセスされたオーディオファイルからの音楽のループ又はサンプルであってもよい。
【0120】
930において、ユーザは、再生されるオーディオトラック内のユーザ指定パラメータの彼/彼女の解釈に関する入力を提供する。例えば、特定の実施形態では、ユーザは、オーディオトラックを聴き、ユーザがオーディオトラック内の音楽を記述すると信じるユーザ指定パラメータのレベルを選択するように要求される。ユーザ指定パラメータのレベルは、例えば、ユーザが作成した制御要素を使用して選択することができる。このプロセスは、再生セッション915内の複数のオーディオトラックに対して繰り返して、ユーザ指定パラメータのレベルに対して複数のデータポイントを生成することができる。
【0121】
幾つかの意図された実施形態では、ユーザは、一度に複数のオーディオトラックを聴き、ユーザ定義パラメータに基づいてオーディオトラックを比較的評価するように要求され得る。例えば、「属性」を定義するユーザが生成した制御の例では、ユーザは複数のオーディオトラックを聴くことができ、どのオーディオトラックがより多くの「属性」を有するか、及び/又はどのオーディオトラックがより少ない「属性」を有するかを選択することができる。ユーザによって行われる選択の各々は、ユーザ指定パラメータのレベルのデータポイントであってもよい。
【0122】
再生セッション915が完了した後、再生セッションからのオーディオトラック内のオーディオパラメータのレベルが940で評価される。オーディオパラメータの例としては、ボリューム、トーン、バス、トレブル、残響などが挙げられるが、これらに限定されない。幾つかの実施形態では、オーディオトラック内のオーディオパラメータのレベルは、オーディオトラックが再生されるとき(例えば、再生セッション915中)に評価される。幾つかの実施形態では、音声パラメータは、再生セッション915が終了した後に評価される。
【0123】
様々な実施形態では、オーディオトラック内のオーディオパラメータは、オーディオトラックのメタデータから評価される。例えば、オーディオ分析アルゴリズムを使用して、オーディオトラックのメタデータ又はシンボリック音楽データ(例えば、MIDI)を生成することができ、これは、短く、予め記録された音楽ファイルであってもよい。メタデータには、例えば、記録に存在する音程、ビート毎の開始数、音程のない音に対する比率、音量レベル、及び音の他の定量化可能な特性が含まれ得る。
【0124】
950では、ユーザが指定したパラメータに対するユーザが選択したレベルとオーディオパラメータとの間の相関が決定される。ユーザ指定パラメータに対するユーザ選択レベルが制御要素のレベルに対応するので、ユーザ指定パラメータに対するユーザ選択レベルとオーディオパラメータとの間の相関を利用して、1つ以上のオーディオパラメータのレベルと960内の制御要素のレベルとの間の関係を定義することができる。様々な実施形態では、ユーザが選択したパラメータのレベルとオーディオパラメータとの間の相関関係、及び1つ以上のオーディオパラメータのレベルと制御要素のレベルとの間の関係は、AI技術(例えば、回帰モデル又は機械学習アルゴリズム)を用いて決定される。
【0125】
図8に戻ると、1つ以上のオーディオパラメータのレベルと制御要素のレベルとの間の関係は、次に、ユーザにより生成された制御要素830から受け取った制御要素レベル832の入力に基づいて、出力音楽コンテンツ140内のオーディオパラメータをどのように調整するかを決定するために、音楽生成モジュール160によって実現されてもよい。特定の実施形態では、音楽生成モジュール160は、ユーザが作成した制御要素830から受け取った制御要素レベル832の入力及び関係に基づいて出力音楽コンテンツ140を生成するために機械学習アルゴリズムを実装する。例えば、機械学習アルゴリズムは、オーディオトラックのメタデータ記述が記録を通してどのように変化するかを分析することができる。機械学習アルゴリズムは、例えば、ニューラルネットワーク、マルコフモデル、又は動的ベイズネットワークを含んでもよい。
【0126】
本明細書に記載されるように、機械学習アルゴリズムは、その時点までの音楽のメタデータが提供される場合に、来るべき音楽の断片のメタデータを予測するようにトレーニングされ得る。音楽生成モジュール160は、次に来ることが予測されるメタデータに最も近いプロパティを有するものについて、予め記録されたオーディオファイルのプールをサーチすることによって、予測アルゴリズムを実装することができる。次に再生する最も近いマッチングオーディオファイルを選択すると、予測アルゴリズムがトレーニングされた例の録音と同様に、音楽プロパティが順次進行する出力音楽コンテンツを作成するのに役立つ。
【0127】
幾つかの実施形態では、予測アルゴリズムを使用する音楽生成モジュール160のパラメトリック制御は、予測アルゴリズム自体に含まれてもよい。そのような実施形態では、アルゴリズムへの入力として、音楽メタデータと共に、幾つかの予め定義されたパラメータを使用することができ、予測はこのパラメータに基づいて変化する。あるいは、パラメトリック制御は、それらを変更するために予測に適用され得る。一例として、予測アルゴリズムによって次に来ると予測される最も近い音楽断片を順番に選択し、ファイルのオーディオを最後から最後まで追加することによって、生成的な合成が行われる。ある時点で、聴取者は制御要素レベル(ビートごとの開始制御要素のような)を増加させることができ、予測モデルの出力は予測されるビートごとの開始データフィールドを増加させることによって変更される。作曲に追加する次のオーディオファイルを選択すると、このシナリオでは、ビートごとのプロパティが大きいオーディオファイルが選択される可能性が高くなる。
【0128】
様々な実施形態では、音楽コンテンツのメタデータ記述を利用する音楽生成モジュール160のような生成システムは、各音楽断片のメタデータ内の数百又は数千のデータフィールドを使用することができる。より多くの多様性を与えるために、異なる音源とサウンドタイプを特徴とする複数の同時トラックが使用されてもよい。このような場合、予測モデルは、音楽のプロパティを表す数千のデータフィールドを有し、各々が聴取体験に明らかな効果を有する。このような場合、聴取者が音楽を制御するために、予測モデルの出力の各データフィールドを変更するためのインタフェースが使用され得、何千もの制御要素を生成する。あるいは、複数のデータフィールドを組み合わせて、単一の制御要素として公開してもよい。音楽プロパティが単一の制御要素によって影響を受けるほど、制御要素が特定の音楽プロパティから抽象的になり、これらの制御のラベル付けが主観的になる。このようにして、一次制御要素及びサブパラメータ制御要素(以下に説明する)は、出力音楽コンテンツ140の動的かつ個別化された制御のために実装することができる。
【0129】
本明細書に記載されるように、ユーザは、制御要素のユーザ調整に基づいて動作する方法に関して、自身の制御要素を指定し、音楽生成モジュール160をトレーニングすることができる。このプロセスはバイアスと複雑さを減らし、データフィールドは聴取者から完全に隠されるかもしれない。例えば、幾つかの実施形態では、聴取者は、ユーザインタフェース上にユーザにより生成された制御要素を備える。次に、聴取者に短い音楽クリップが表示され、聴いた音楽を最もよく表現すると思われる制御要素のレベルを設定するよう求められる。このプロセスを繰り返すことによって、音楽に対する制御の所望の効果を回帰的にモデル化するために使用され得る複数のデータ点が生成される。幾つかの実施形態において、これらのデータ点は、予測モデルにおける追加の入力として追加され得る。次に、予測モデルは、トレーニングされたシーケンスに類似した構成シーケンスを生成する音楽プロパティを予測しようとする一方で、特定のレベルに設定されている制御要素の予想される挙動にマッチさせることもできる。あるいは、回帰モデルの形態の制御要素マッパを使用して、予測モデルを再トレーニングすることなく、予測モディファイアを制御要素にマッピングしてもよい。
【0130】
幾つかの実施形態において、所与の制御要素に対するトレーニングは、グローバルトレーニング(例えば、複数のユーザアカウントからのフィードバックに基づくトレーニング)及びローカルトレーニング(例えば、現在のユーザアカウントからのフィードバックに基づくトレーニング)の両方を含んでもよい。幾つかの実施形態において、コンポーザによって提供される楽曲要素のサブセットに特有の制御要素のセットを作成することができる。例えば、シナリオは、アーティストがループパックを作成し、次に、これらのループを使用して以前に作成した演奏又は合成の例を使用して音楽生成モジュール160をトレーニングすることを含んでもよい。これらの例におけるパターンは、回帰モデル又はニューラルネットワークモデルでモデル化することができ、同様のパターンを有する新しい音楽の構築のためのルールを作成するために使用することができる。これらのルールは、音楽生成モジュール160の使用を開始する前に、作曲者がオフラインで手動で変更するための、又は聴取者が聴取中に調整するための、制御要素としてパラメータ化され、露出され得る。作曲家が制御の望ましい効果と反対であると感じる例は、負の補強にも使用することができる。
【0131】
幾つかの実施形態では、例示的な音楽のパターンを利用することに加えて、音楽生成モジュール160は、聴取者が生成された音楽を聴き始める前に、作曲者からの入力に対応する音楽のパターンを生成することができる。作曲者は、これを直接フィードバック(後述)によって行うことができ、例えば、パターンの正の強化のために賛成制御要素をタップするか、負の強化のために反対制御要素をタップする。
【0132】
様々な実施形態では、音楽生成モジュール160は、作曲者が、音楽生成モジュールが学習した制御要素の、後述する、それら自身のサブパラメータ制御要素を作成することを可能にすることができる。例えば、「強度」のための制御要素は、ビート当たり発現音符数及び演奏中の楽器のテクスチャ品質に関する学習されたパターンから、主要制御要素として作成されてもよい。次いで、作曲者は、「リズム強度」制御要素及びテクスチャパターン用の「テクスチャ強度」制御要素のような、音符の発現に関連するパターンを選択することによって、2つのサブパラメータ制御要素を作成することができる。サブパラメータ制御要素の例には、ボーカル用の制御要素、特定の周波数範囲の強度(例えば、バス)、複雑性、テンポなどが含まれる。これらのサブパラメータ制御要素は、エネルギのようなより抽象的な制御要素(例えば、一次制御要素)と共に使用することができる。これらの作曲者技能制御要素は、本明細書に記載されるユーザが作成した制御と同様に、作曲者によって音楽生成モジュール160のためにトレーニングされてもよい。
【0133】
本明細書に記載されているように、ユーザが作成した制御要素からの入力に基づいてオーディオパラメータを制御する音楽生成モジュール160のトレーニングは、個々の制御要素を異なるユーザに対して実装することを可能にする。例えば、あるユーザは、アティテュード(attitude)の増加をベースコンテンツの増加と関連付けることができ、他のユーザは、アティテュードの増加を特定のタイプのボーカル又は特定のテンポ範囲と関連付けることができる。音楽生成モジュール160は、特定のユーザのための音楽生成モジュールのトレーニングに基づいて、アティテュードの異なる仕様に対するオーディオパラメータを変更することができる。幾つかの実施形態において、個別化された制御は、多くのユーザに対して同じように実装されるグローバルなルール又は制御要素と組み合わせて使用され得る。全体的なフィードバック又は制御と局所的なフィードバック又は制御の組み合わせは、関係する個人に特別な制御を提供する質の高い音楽制作を提供することができる。
【0134】
様々な実施形態では、図8に示すように、1つ以上のUI制御要素830は、UIモジュール820内に実装される。上述のように、ユーザは、UIモジュール820との対話中に制御要素830を使用して制御要素レベル832を調整して、出力音楽コンテンツ140を変更することができる。特定の実施形態では、制御要素830の1つ以上は、システム定義の制御要素である。例えば、制御要素は、システム800によって制御可能なパラメータとして定義されてもよい。このような実施形態では、ユーザは、システムによって定義されたパラメータに従って出力音楽コンテンツ140を変更するために、システム定義の制御要素を調整することができる。
【0135】
特定の実施形態では、システム定義のUI制御要素(例えば、ノブ又はスライダ)は、ユーザが音楽生成モジュール160によって自動的に生成される出力音楽コンテンツ140の抽象パラメータを制御することを可能にする。様々な実施形態では、抽象パラメータは、一次制御要素入力として作用する。抽象的パラメータの例としては、強度、複雑性、ムード、ジャンル、及びエネルギレベルが挙げられるが、これらに限定されない。幾つかの実施形態において、強度制御要素は、組み込まれた低周波数ループの数を調整してもよい。複雑性制御要素は、オーバーレイされるトラックの数をガイドすることができる。ムード調節要素のような他の調節要素は、冷静なものから幸福なものまで、様々な属性の中でも、例えば、演奏される音楽キーに影響を与えるものまで、様々である。
【0136】
様々な実施形態では、システム定義のUI制御要素(例えば、ノブ又はスライダ)は、ユーザが音楽生成モジュール160によって自動的に生成される出力音楽コンテンツ140のエネルギレベルを制御することを可能にする。幾つかの実施形態において、制御要素のラベル(例えば、「エネルギ」)は、エネルギレベルを調整するユーザ入力を反映するために、サイズ、色、又は他の特性において変化してもよい。幾つかの実施形態において、ユーザが制御要素を調整するとき、制御要素の現在のレベルは、ユーザが制御要素を解放する(例えば、マウスクリックを解放する、又はタッチスクリーンから指を除去する)まで出力されてもよい。
【0137】
エネルギは、システムによって定義されるように、複数のより特定の音楽属性に関連する抽象的なパラメータであってもよい。一例として、エネルギは、様々な実施形態においてテンポに関連し得る。例えば、エネルギレベルの変化は、選択されたビート数/分(例えば、~6ビート/分)のテンポ変化と関連し得る。幾つかの実施形態では、あるパラメータ(例えば、テンポ)に対して与えられた範囲内で、音楽生成モジュール160は、他のパラメータを変更することによって音楽のバリエーションを調査することができる。例えば、音楽生成モジュール160は、ビルドアップ及びドロップを生成し、緊張を生成し、同時にレイヤされるトラックの数を変化させ、キーを変更し、ボーカルを追加又は削除し、ベースを追加又は削除し、異なるメロディを再生するなどが可能である。
【0138】
幾つかの実施形態では、1つ以上のサブパラメータ制御要素は、制御要素830として実装される。サブパラメータ制御要素は、エネルギ制御要素のような一次制御要素に組み込まれる属性のより特定の制御を可能にし得る。例えば、エネルギ制御要素は、使用されるパーカッション層の数及びボーカルの量を変更することができるが、別個の制御要素によって、これらのサブパラメータを直接制御することができ、その結果、全ての制御要素が必ずしも独立しているわけではない。このようにして、ユーザは、利用したい制御の特異性のレベルを選択することができる。幾つかの実施形態において、サブパラメータ制御要素は、上述のユーザが生成した制御要素に対して実装されてもよい。例えば、ユーザは、他のユーザ指定パラメータのサブパラメータを指定する制御要素を作成し、ラベル付けすることができる。
【0139】
幾つかの実施形態では、ユーザインタフェースモジュール820は、UI制御要素830を拡張するオプションをユーザに許容し、1つ以上のサブパラメータユーザ制御要素を示す。加えて、特定のアーティストは、高レベル制御要素(例えば、エネルギスライダ)のユーザ制御の下で音楽合成をガイドするために使用される属性情報を提供することができる。例えば、アーティストは、そのアーティストからのトラック及び音楽作曲のためのルールを備えた「アーティストパック」を提供することができる。アーティストは、アーティストインタフェースを使用して、サブパラメータのユーザ制御要素の値を提供することができる。例えば、DJは、ユーザに露出される制御要素としてリズム及びドラムを有し、聴取者が多少のリズム及びドラムを組み込むことを可能にする。幾つかの実施形態では、本明細書に記載されるように、アーティスト又はユーザは、自身のカスタム制御要素を生成することができる。
【0140】
様々な実施形態では、ヒューマンインザループ生成システムを使用して、人の介入及び制御の助けを借りてアーチファクトを生成して、生成された音楽の品質及び適合を個人的目的に潜在的に向上させることができる。音楽生成モジュール160の幾つかの実施形態では、UIモジュール820に実装されたインタフェース制御要素830を介して生成プロセスを制御することによって、聴取者は聴取者作曲者となることができる。これらの制御要素の設計と実装は、個人の聴取者と作曲者の役割のバランスに影響を与える可能性がある。例えば、高度に詳細で技術的な制御要素は、生成アルゴリズムの影響を低減し、ユーザの手により創造的な制御を与える一方で、管理のためにより多くの実践的な対話及び技術的スキルを必要とする。
【0141】
反対に、より高いレベルの制御要素は、創造的制御を減少させながら、必要な労力及び対話時間を減少させることができる。例えば、より聴取者型の役割を望む個人に対しては、本明細書に記載されるように、一次制御要素が好ましい場合がある。主要な制御要素は、例えば、ムード、強度又はジャンルのような抽象的パラメータに基づくことができる。これらの抽象的な音楽パラメータは、しばしば個別に解釈される主観的な尺度である。例えば、多くの場合、聴取環境は、聴取者が音楽をどのように表現するかに影響を与える。このように、聴取者がパーティで「リラックス」と呼ぶ音楽は、瞑想セッションにはあまりにも精力的で緊張しすぎるかもしれない。
【0142】
幾つかの実施態様では、1つ以上のUI制御要素830が、出力音楽コンテンツ140に関するユーザフィードバックを受信するように実装される。ユーザフィードバック制御要素は、例えば、星形等級、賛成/反対等を含むことができる。様々な実施形態において、ユーザフィードバックは、複数のユーザに適用されるユーザの特定のテイスト及び/又はよりグローバルなテイストにシステムをトレーニングするために使用されてもよい。賛成/反対(例えば、正/負)のフィードバックを有する実施形態では、フィードバックは2値である。強い正及び強い負の応答を含む2値フィードバックは、制御要素830の機能のための正及び負の補強を提供するのに効果的であり得る。幾つかの考えられる実施形態では、賛成/反対制御要素からの入力を使用して、出力音楽コンテンツ140を制御することができる(例えば、賛成/反対制御要素は、出力自体を制御するために使用される)。例えば、賛成制御要素を使用して、現在再生中の音楽コンテンツ140の最大繰り返し数を変更することができる。
【0143】
幾つかの実施態様において、各オーディオファイルのカウンタは、そのオーディオファイルのセクション(例えば、8ビートセグメント)が最近再生された回数を追跡する。一旦、ファイルが所望の閾値を超えて使用されると、バイアスがその選択に対して適用され得る。このバイアスは時間の経過とともに徐々にゼロに戻ることがある。音楽の所望の機能を設定するルール定義された音楽セクション(例えば、ビルドアップ、ドロップダウン、ブレークダウン、イントロ、持続)と共に、この反復カウンタ及びバイアスを使用して、音楽をコヒーレントなテーマを有するセグメントに成形することができる。例えば、音楽生成モジュール160は、出力音楽コンテンツ140の音声コンテンツがセクションの音楽機能を損なうことなくより早く変更することが奨励されるように、反対の押下でカウンタを増加させることができる。同様に、音楽生成モジュール160は、出力音楽コンテンツ140の音声コンテンツがより長い期間繰り返しから偏らないように、賛成をプレスしてカウンタを減少させることができる。閾値に達する前に、バイアスが印加される前に、音楽生成モジュール160内の他の機械学習及びルールベースのメカニズムは、他のオーディオコンテンツの選択を導くことができる。
【0144】
幾つかの実施形態では、音楽生成モジュール160は、ユーザのフィードバックが受信される前後に、様々なコンテキスト情報(例えば、図1に示された環境情報150)を決定するように構成される。例えば、ユーザから「賛成」指示を受け取ると共に、音楽生成モジュール160は、環境情報150から、時刻、場所、装置速度、生体データ(例えば、心拍数)などを決定することができる。幾つかの実施形態において、このコンテキスト情報は、ユーザが種々の異なるコンテキストにおいて好む音楽を生成するために機械学習モデルをトレーニングするために使用されてもよい(例えば、機械学習モデルはコンテキストを認識する)。
【0145】
様々な実施形態では、音楽生成モジュール160は、現在のタイプの環境を決定し、異なる環境における同じユーザ調整に対して異なる動作を行う。例えば、音楽生成モジュール160は、聴取者が「アティテュード」制御要素をトレーニングするときに、環境測定及び聴取者生体計測を行うことができる。トレーニング中、音楽生成モジュール160は、制御要素の一部としてこれらの測定を含むようにトレーニングされる。この例では、聴取者が体育館で高強度の運動を行っているとき、「アティテュード」制御要素がドラムのビートの強度に影響を与える可能性がある。コンピュータの所に座っているときは、「アティテュード」制御要素を変更してもドラムのビートに影響はないが、ベースラインの歪みを増加させることがある。このような実施形態では、単一のユーザ制御要素は、異なるルールのセット、又は異なる聴取環境において、単独で、又は組み合わせて、異なるように使用される異なるトレーニングを受けた機械学習モデルを有し得る。
【0146】
コンテキスト認識とは対照的に、制御要素の期待される振る舞いが静的である場合には、聴取コンテキスト音楽生成モジュール160が使用されるすべてのために、多数の制御が必要又は望まれる可能性がある。従って、幾つかの実施形態において、開示された技術は、単一の制御要素を有する複数の環境に対して機能を提供し得る。複数の環境に単一の制御要素を実装することは、制御要素の数を減らすことができ、ユーザインタフェースをより簡単にし、より迅速に検索することができる。幾つかの実施形態では、制御要素の挙動は動的にされる。制御要素のダイナミズムは、マイクロフォンによって記録される音レベル、心拍数測定、時刻、運動速度などの環境測定を利用することによって得られる。これらの測定値は、制御要素のトレーニングへの追加入力として使用することができる。従って、制御要素との同じ聴取者相互作用は、相互作用が発生する環境的状況に応じて潜在的に異なる音楽効果を有する。
【0147】
幾つかの実施形態では、上述のコンテキスト認識機能は、環境コンテキストに基づいて生成プロセスを変化させる生成音楽システムの概念とは異なる。例えば、これらの技術は、環境コンテキストに基づいてユーザ制御要素の効果を変更することができ、これは、単独で又は環境コンテキスト及びユーザ制御の出力に基づいて音楽を生成する概念と組み合わせて使用することができる。
【0148】
幾つかの実施形態では、音楽生成モジュール160は、所定の目標を達成するために生成された出力音楽コンテンツ140を制御するように構成される。記述された目標の例は、限定されるものではないが、販売目標、心拍数又は血圧のようなバイオメトリクス目標、及び周囲のノイズ目標を含む。音楽生成モジュール160は、所定の目標を達成するために、出力音楽コンテンツ140を生成するために、本明細書に記載される技術を使用して、手動で(ユーザ作成の)又はアルゴリズム的に(システム定義の)生成された制御要素を変更する方法を学習することができる。
【0149】
目標状態は、測定可能な環境であってもよく、聴取者は、音楽生成モジュール160を用いて音楽を聴く間に、かつ、音楽生成モジュール160の助けを借りて、聴取者が達成したいと望んでいることを聴取者が述べてもよい。これらの目標状態は、直接的に影響を受けることもあれば、特定の音楽を奨励するフォーカスなどの心理的効果によって仲介されることもある。すなわち、聴取者の空間の音響体験を音楽によって変化させることによって影響を受けることもある。一例として、聴取者は、走っている間に心拍数を低下させる目標を設定することができる。利用可能な制御要素の異なる状態の下で聴取者の心拍数を記録することによって、音楽生成モジュール160は、「アティテュード」という名前の制御要素が低レベルに設定されたときに、聴取者の心拍数が典型的に減少することを知った。従って、聴取者が低い心拍数を達成するのを助けるために、音楽生成モジュール160は、「アティテュード」制御を低レベルに自動化することができる。
【0150】
特定の環境において聴取者が期待する種類の音楽を生成することによって、音楽生成モジュール160は、特定の環境の作成を支援することができる。例としては、心拍数、聴取者の物理的空間における全体的な音量、店舗での販売などが挙げられる。幾つかの環境センサ及び状態データは、目標状態に適さない可能性がある。例えば、時刻は、睡眠誘導の目標状態を達成するための入力として使用される環境尺度であってもよいが、音楽生成モジュール160は、時刻自体を制御することはできない。
【0151】
種々の実施形態において、センサ入力は、状態目標に到達しようとする間に制御要素マッパから切り離されてもよいが、センサは、記録を継続し、代わりに、実際の目標状態と目標状態を比較するための測定値を提供してもよい。目標状態と実際の環境状態との間の差異は、目標状態を達成しようとするモードにおいて、制御要素マッパ内のマッピングを調整することができる機械学習アルゴリズムに対する報酬関数として定式化され得る。このアルゴリズムは、目標と実際の環境状態の間の差を減らすためにマッピングを調整することができる。
【0152】
音楽コンテンツには多くの生理学的心理学的影響があるが、特定の環境で聴取者が期待する音楽コンテンツを作成することは、必ずしも聴取者のためにそのような環境を作ることに役立つとは限らない。場合によっては、標的状態に到達するのに何の効果も悪影響も及ぼさないこともある。幾つかの実施形態では、音楽生成モジュール160は、変化が閾値を満たさない場合には他の方向に分岐する一方で、過去の結果に基づいて音楽プロパティを調整することができる。例えば、「アティテュード」制御要素を減少させても聴取者の心拍数が低下しない場合、音楽生成モジュール160は、他の制御要素を使用して新たな戦略に遷移及び開発したり、回帰モデル又はニューラルネットワークモデルの正又は負の補強としてターゲット変数の実際の状態を使用して新たな制御要素を生成したりすることができる。
【0153】
幾つかの実施形態において、コンテキストが、特定の聴取者に対する制御要素の期待される挙動に影響を及ぼすことが判明した場合、ある特定のコンテキストにおいて制御要素によって変更されるデータポイント(例えば、オーディオパラメータ)が、その聴取者に対するコンテキストに関連していることを意味してもよい。このように、これらのデータポイントは、環境変化を生み出す音楽を生み出すための良い初期ポイントを提供する。例えば、聴取者が列車の駅に行くときに常に手動で「リズミカル」制御要素を上昇させる場合、音楽生成モジュール160は、聴取者が列車の駅にいることを検出すると、この制御要素を自動的に増加させ始めることができる。
【0154】
幾つかの実施形態では、本明細書に記載されるように、音楽生成モジュール160は、ユーザの期待に合致する制御要素を実装するようにトレーニングされる。音楽生成モジュール160が、各制御要素に対して端から端まで(例えば、制御要素レベルから出力音楽コンテンツ140まで)トレーニングされる場合、各制御要素に対するトレーニングの複雑性は高くなり、トレーニングを遅くする可能性がある。さらに、複数の制御要素の理想的な組み合わせ効果を確立することは困難である。しかしながら、各制御要素について、音楽生成モジュール160は、理想的には、制御要素に基づいて予想される音楽変化を実行するようにトレーニングされるべきである。例えば、音楽生成モジュール160は、「エネルギ」が増加するにつれてリズム密度を増加させるために、「エネルギ」制御要素のために聴取者によってトレーニングされてもよい。聴取者は、音楽コンテンツの個々の層だけでなく、最終出力音楽コンテンツ140にさらされるので、音楽生成モジュール160は、制御要素を用いて最終出力音楽コンテンツに影響を与えるようにトレーニングされ得る。しかしながら、これは、特定の制御設定では、音楽がXのように音を出すべきであり、Xのように音を出す音楽を作成するためには、オーディオファイルYのセットが各トラック上で使用されるべきであるなど、多段階の問題となる可能性がある。
【0155】
特定の実施形態では、教師/学生の枠組みが、上述の問題に取り組むために採用される。図10は、幾つかの実施形態による、例示的な教師/学生のフレームワークシステムを示すブロック図である。図示された実施形態では、システム1000は、教師モデル実装モジュール1010及び学生モデル実装モジュール1020を含む。
【0156】
特定の実施形態では、教師モデル実装モジュール1010は、トレーニングされた教師モデルを実施する。例えば、トレーニングされた教師モデルは、最終ミックス(例えば、ステレオミックス)がどのように音声を出すべきかを、最終ミックスで利用可能なループのセットを全く考慮せずに、どのように予測するかを学ぶモデルであるかもしれない。幾つかの実施形態では、教師モデルの学習プロセスは、短時間ステップのシーケンスについて異なる周波数にわたる音の分布を計算するために、高速フーリエ変換を使用する出力音楽コンテンツ140のリアルタイム分析を利用する。教師モデルは、リカレントニューラルネットワーク(RNN)のような時間シーケンス予測モデルを用いて、これらのシーケンスのパターンを探索することができる。幾つかの実施形態では、教師モデル実装モジュール1010における教師モデルは、個々のループ又はオーディオファイルが利用できないステレオ録音でオフラインでトレーニングされてもよい。
【0157】
図示の実施形態では、教師モデル実装モジュール1010は、出力音楽コンテンツ140を受信し、出力音楽コンテンツのコンパクトな記述1012を生成する。トレーニングされた教師モデルを使用して、教師モデル実装モジュール1010は、出力音楽コンテンツ140内のオーディオトラック又はオーディオファイルを全く考慮することなく、コンパクトな記述1012を生成することができる。コンパクトな記述1012は、どのような出力音楽コンテンツ140が教師モデル実装モジュール1010によって決定されるように音を出すべきかの説明Xを含んでもよい。コンパクトな記述1012は、出力音楽コンテンツ140自体よりもコンパクトである。
【0158】
コンパクトな記述1012は、学生モデル実装モジュール1020に提供されてもよい。学生モデル実装モジュール1020は、トレーニングされた学生モデルを実施する。例えば、トレーニングされた学生モデルは、オーディオファイル又はループY(Xとは異なる)を用いて、コンパクトな記述に合致する音楽の製作方法を学習するモデルであり得る。図示の実施形態では、学生モデル実装モジュール1020は、出力音楽コンテンツ140と実質的に一致する学生出力音楽コンテンツ1014を生成する。ここで使用されるように、フレーズ「実質的に一致する」は、学生出力音楽コンテンツ1014が出力音楽コンテンツ140と同様に音を出すことを示す。例えば、トレーニングされた聴取者は、学生が音楽コンテンツ1014を出力し、音楽コンテンツ140を出力することが同じ音声であると考えることができる。
【0159】
多くの場合、制御要素は、音楽における同様のパターンに影響を及ぼすことが期待される。例えば、制御要素は、ピッチ関係及びリズムの両方に影響を及ぼし得る。幾つかの実施形態では、音楽生成モジュール160は、1つの教師モデルに従って多数の制御要素に対してトレーニングされる。単一の教師モデルを用いて多数の制御要素に対して音楽生成モジュール160をトレーニングすることによって、各制御要素について同様の基本パターンを再学習する必要がない場合がある。このような実施形態では、教師モデルの生徒モデルは、最終的な音楽ミックスにおいて所望の属性を達成するために、各トラックに対するループの選択をどのように変えるかを学習する。幾つかの実施形態において、ループの特性は、学習チャレンジ及びベースライン性能を低減するために予め計算されてもよい(ただし、制御要素の最適マッピングを見つける可能性を潜在的に低減する犠牲を払ってもよい)。
【0160】
学生モデルトレーニングに使用され得る各ループ又はオーディオファイルのために予め計算された音楽属性の非限定的な例は、次のものを含む:低音対高音の周波数の比、音の開始数/秒、検出された音と検出されていない音の比、スペクトル範囲、平均開始強度。幾つかの実施態様において、学生モデルは、最終的なステレオミックスにおいて最も近い音楽プロパティを得るために各トラックに対してループを選択するようにトレーニングされる単純な回帰モデルである。様々な実施形態では、学生/教師モデルの枠組みは、幾つかの利点を有し得る。例えば、ループの事前計算ルーチンに新しいプロパティが追加された場合、エンドツーエンドモデル全体、つまり学生モデルを再トレーニングする必要はない。
【0161】
別の例として、異なる制御に影響する最終的なステレオミックスの特性は、他の制御要素に共通である可能性が高いため、エンドトーエンドモデルとして各制御要素に対して音楽生成モジュール160をトレーニングすることは、各モデルが最良のループ選択に到達するために同じことを学習する必要があることを意味し、トレーニングを必要とされるよりも遅くかつ困難にする。ステレオ出力のみがリアルタイムで分析される必要があり、出力音楽コンテンツが聴取者のためにリアルタイムで生成されるので、音楽生成モジュール160は、「自由な」信号を計算により得ることができる。FFTでさえ、すでに視覚化やオーディオミキシングの目的で適用されている可能性がある。このようにして、教師モデルは、制御要素の組み合わされた挙動を予測するようにトレーニングされ得、音楽生成モジュール160は、所望の出力音楽コンテンツをまだ生成しつつ、他の制御要素に適応する方法を見出すようにトレーニングされる。これは、特定の制御要素の独自の効果を強調し、他の制御要素の影響を減らす効果を有する制御要素を減らすために、制御要素のトレーニングを奨励するかもしれない。
【0162】
例示的な低解像度ピッチ検出システム
多声音楽コンテンツ及び多様な楽器タイプに対してロバストなピッチ検出は、伝統的に達成することが困難である。エンドツーエンドの音楽転送を実装するツールは、オーディオレコーディングを行い、MIDIの形式で書かれたスコア、又はシンボル音楽表現を生成しようと試みることができる。ビートの配置やテンポについての知識がなければ、これらのツールは、音楽リズム構造、インスツルメンテーション、及びピッチを推測する必要がある。結果は変化する可能性があり、一般的な問題は、オーディオファイル内に存在しない短い音符があまりにも多く検出され、音符の高調波が基本ピッチとして検出されることである。
【0163】
しかし、ピッチ検出は、エンドツーエンドの転写が必要とされない状況においても有用である。例えば、調和的に妥当な音楽ループの組み合わせを作るためには、音符の正確な位置を知る必要なく、各ビート上でどのピッチが聴こえるかを知ることで十分であろう。ループの長さとテンポが分かっている場合は、ビートの時間的位置をオーディオから推定する必要はない。
【0164】
幾つかの実施形態では、ピッチ検出システムは、どの基本ピッチ(例えば、C、C#...B)が既知のビート長の短い音楽オーディオファイルに存在するかを検出するように構成される。問題範囲を減らし、楽器テクスチャに対するロバスト性に焦点を当てることにより、ビート解像度ピッチ検出のために高精度の結果を達成することができる。
【0165】
幾つかの実施形態では、ピッチ検出システムは、地面の真理が知られている例でトレーニングされる。幾つかの実施態様において、音声データは、スコアデータから作成される。MIDI及び他のシンボリック音楽フォーマットは、テクスチャ及びエフェクトのためのランダムパラメータを有するソフトウェアオーディオ合成器を用いて合成することができる。各オーディオファイルに対して、システムは、各ピッチクラスに対して複数の周波数ビンを有するログスペクトログラム2D表現を生成することができる。この2D表現は、ニューラルネットワーク又は他のAI技術への入力として使用され、多数の畳み込み層が、オーディオの周波数及び時間表現の特徴表現を作成するために使用される。畳み込みストライド及びパディングは、異なるテンポ入力を有する一定モデル出力形状を生成するために、オーディオファイルの長さに応じて変化させることができる。幾つかの実施形態では、ピッチ検出システムは、予測の一時的に依存するシーケンスを出力するために、回帰層を畳み込み層に追加する。カテゴリに渡るエントロピー損失は、ニューラルネットワークの論理出力を、スコアのバイナリ表現と比較するために使用され得る。
【0166】
回帰層と組み合わせた畳み込み層の設計は、会話を文字にする作業と同様であり、変更される。例えば、会話をテキストにすることは、典型的には相対的なピッチ変化に敏感である必要があるが、絶対的なピッチ変化には敏感ではない。したがって、周波数範囲及び解像度は、典型的には、小さい。さらに、テキストは、スタティックテンポの音楽では望ましくない方法で速度に対して不変である必要があるかもしれない。例えば、出力シーケンスの長さが事前に知られており、トレーニングの複雑さを低減するので、会話からテキストへのタスクにおいてしばしば利用される接続主義時間分類(Connectionist temporal classification、CTC)損失計算は必要とされないかもしれない。
【0167】
次の表現は、各ビートに対して12のピッチクラスを有し、1は、オーディオを合成するために使用されるスコアにおけるその基本音の存在を表す。(C,C#...B)と各行はビートを表し、後の行は異なるビートでのスコアを表す:
【数2】
【0168】
幾つかの実施態様において、ニューラルネットワークは、クラシック音楽及び1~4部の(又はそれ以上の)ハーモニ及びポリフォニーの擬似ランダム生成音楽スコアについてトレーニングされる。データの拡張は、音楽コンテンツに対するフィルタや残響などのエフェクトへのロバスト性を高めるのに役立つ可能性がある。これは、ピッチ検出の難点となる場合がある(例えば、基本的なトーンの一部は、元の音符が終了した後も残るため)。幾つかの実施形態において、データセットはバイアスされ得、損失重み付けは、ピッチクラスが各ビート上で音符を演奏しない可能性がはるかに高いので、使用される。
【0169】
幾つかの実施形態では、出力のフォーマットは、ループが使用できる高調波コンテキストの範囲を最大化しながら、各ビートで高調波衝突を回避することを可能にする。例えば、ベースループは、Fのみを含み、ループの最後のビート上のEまで下がることができる。このループは、Fキーでほとんどの人々に調和的に受け入れられるように聞こえる。時間的な解像度が与えられず、EとFがオーディオに含まれていることしか知られていない場合、それは、最後に短いFを持つ持続的なEである可能性がある。これは、Fキーの文脈では、ほとんどの人々に受け入れられないだろう。より高い解像度では、個々の音符が増加するにつれて、高調波、フレットボード音、スライドが検出される可能性があり、したがって、追加の音符が誤って識別される可能性がある。幾つかの実施形態によれば、楽器の短いオーディオレコーディングを組み合わせて調和的に健全な組み合わせで音楽ミックスを作成するために、時間的及びピッチ情報の最適解像度を有するシステムを開発することによって、ピッチ検出問題の複雑さを低減することができ、短く有意でないピッチ事象に対するロバスト性を増大させることができる。
【0170】
本明細書に記載される音楽生成システムの様々な実施形態において、システムは、システムが新しい音楽を構築(生成)するプールを作成するために使用される音声コンテンツを聴取者が選択することを可能にする。このアプローチは、ユーザが個々のトラックを選択したり、選択を順番に整理したりする必要がないため、プレイリストを作成するのとは異なる場合がある。さらに、複数のアーティストからのコンテンツを同時に使用することができる。幾つかの実施態様では、音楽コンテンツは、ソフトウェアプロバイダ又は寄稿アーティストによって設計される「パック」にグループ分けされる。1つのパックには、対応する画像特徴と特徴メタデータファイルを持つ複数のオーディオファイルが含まれる。単一のパックには、例えば、音楽生成システムが音楽を作成するために使用できる20~100個のオーディオファイルが含まれていてもよい。幾つかの実施形態では、単一のパックを選択することも、複数のパックを組み合わせて選択することもできる。再生中は、音楽を止めることなくパックを追加又は削除することができる。
【0171】
音楽コンテンツ生成のための例示的なオーディオ技術
様々な実施形態では、リアルタイムで生成されたオーディオを管理するためのソフトウェアフレームワークは、特定のタイプの機能をサポートすることから利益を得ることができる。例えば、オーディオ処理ソフトウェアは、アナログハードウェアから継承されたモジュラ信号チェーンのメタファに従うことができ、そこでは、オーディオ生成及びオーディオエフェクトを提供する異なるモジュールが、オーディオ信号グラフに一緒にチェーンされる。個々のモジュールは、典型的には、モジュールの信号処理のリアルタイム変更を可能にする種々の連続パラメータを露出する。電子音楽の初期には、パラメータはそれ自体がアナログ信号であることが多く、従って、パラメータ処理チェーンと信号処理チェーンは一致した。デジタル革命以来、パラメータは別個のデジタル信号である傾向があった。
【0172】
本明細書に開示される実施形態は、リアルタイム音楽生成システム(システムが人間の演奏者と相互作用するか、システムが音楽を生成するために機械学習又は他の人工知能技術を実装するかにかかわらず)に対して、パラメータ操作の調整及び組み合わせを可能にする柔軟な制御システムが有利であり得ることを認識する。さらに、本開示は、パラメータ変更の効果がテンポの変化に対して不変であることもまた有利であり得ることを認識している。
【0173】
幾つかの実施態様において、音楽生成システムは、音声信号の異なるパラメータ表現に基づいて、再生音楽コンテンツから新しい音楽コンテンツを生成する。例えば、オーディオ信号は、時間に対する信号のグラフ(例えば、オーディオ信号グラフ)と、ビートに対する信号のグラフ(例えば、信号グラフ)の両方によって表すことができる。信号グラフはテンポ不変であり、音楽コンテンツのオーディオパラメータのテンポ不変変更に加えて、オーディオ信号グラフに基づくテンポ不変変更を可能にする。
【0174】
図11は、幾つかの実施形態による、音楽コンテンツ生成においてオーディオ技術を実装するように構成された例示的なシステムを示すブロック図である。図示の実施形態では、システム1100は、グラフ生成モジュール1110と、オーディオ技術音楽生成モジュール1120とを含む。オーディオ技術音楽生成モジュール1120は、音楽生成モジュール(例えば、オーディオ技術音楽生成モジュールは、本明細書に記載の音楽生成モジュール160である)として動作してもよく、又はオーディオ技術音楽生成モジュールは、音楽生成モジュール(例えば、音楽生成モジュール160の一部として)の一部として実装されてもよい。
【0175】
図示の実施形態では、音楽ファイルデータを含む音楽コンテンツ1112は、グラフ生成モジュール1110によってアクセスされる。グラフ生成モジュール1110は、アクセスされた音楽コンテンツ1112内のオーディオ信号のための第1グラフ1114及び第2グラフ1116を生成することができる。特定の実施形態では、第1グラフ1114は、オーディオ信号を時間の関数としてグラフ化するオーディオ信号グラフである。オーディオ信号は、例えば、振幅、周波数、又は両方の組み合わせを含んでもよい。特定の実施形態では、第2グラフ1116は、ビートの関数としてオーディオ信号をグラフ化する信号グラフである。
【0176】
特定の実施形態では、図11の例示の実施形態に示されるように、グラフ生成モジュール1110は、システム1100内に配置され、第1グラフ1114及び第2グラフ1116を生成する。そのような実施形態では、グラフ生成モジュール1110は、オーディオ技術音楽生成モジュール1120と併置されてもよい。しかしながら、グラフ生成モジュール1110が別個のシステムに配置され、オーディオ技術音楽生成モジュール1120が別個のシステムからグラフにアクセスする他の実施形態が考えられる。例えば、グラフは、オーディオ技術音楽生成モジュール1120によってアクセス可能なクラウドベースのサーバ上に生成され、記憶されてもよい。
【0177】
図12は、オーディオ信号グラフ(例えば、第1グラフ1114)の一例を示す。図13は、信号グラフ(例えば、第2グラフ1116)の一例を示す。図12及び図13のグラフでは、音声信号の各変化はノード(例えば、図12の音声信号ノード1202及び図13の信号ノード1302)として表される。従って、特定のノードのパラメータは、特定のノードにおけるオーディオ信号の変化を決定する(例えば、定義する)。第1グラフ1114及び第2グラフ1116は、同じオーディオ信号に基づいているので、グラフは、類似の構造を有してもよく、グラフ間の相違は、X軸スケール(時間対ビート)である。グラフ内に同様の構造を有することにより、一方のグラフ内のノード(例えば、第2グラフ1116のノード1302)に対応する一方のグラフ内のノード(例えば、第1グラフ1114のノード1202)のパラメータ(以下に説明する)の変更が、1つのグラフ内のノードの下流又は上流のいずれかのパラメータによって決定されることが可能になる。
【0178】
図11に戻ると、第1グラフ1114及び第2グラフ1116は、オーディオ技術音楽生成モジュール1120によって受信(又はアクセス)される。特定の実施形態では、オーディオ技術音楽生成モジュール1120は、第1グラフ1114から選択されたオーディオ変更子パラメータ及び第2グラフ1116から選択されたオーディオ変更子パラメータに基づいて、再生音楽コンテンツ1118から新しい音楽コンテンツ1122を生成する。例えば、オーディオ技術音楽生成モジュール1120は、第1グラフ1114からのオーディオ変更子パラメータ、第2グラフ1116からのオーディオ変更子パラメータ、又はそれらの組み合わせのいずれかによって、再生音楽コンテンツ1118を変更することができる。新しい音楽コンテンツ1122は、音声変更因子パラメータに基づいて再生音楽コンテンツ1118を変更することによって生成される。
【0179】
様々な実施形態では、オーディオ技術音楽生成モジュール1120は、再生コンテンツ1118の変更において、テンポ変化(variant)変更、テンポ不変(invariant)変更、又はそれらの組み合わせが望まれるかどうかに基づいて、音声変更器パラメータを選択することができる。例えば、テンポ変化変更は、第1グラフ1114から選択又は決定されたオーディオ変更子パラメータに基づいて行われてもよく、テンポ不変変更は、第2グラフ1116から選択又は決定されたオーディオ変更子パラメータに基づいて行われてもよい。テンポ変化変更とテンポ不変変更の組合せが望まれる実施形態では、オーディオ変更パラメータは、第1グラフ1114及び第2グラフ1116の両方から選択されてもよい。幾つかの実施態様において、各個々のグラフからのオーディオ変更子パラメータは、再生音楽コンテンツ1118内の異なるプロパティ(例えば、振幅又は周波数)又は異なる層(例えば、異なる機器層)に別々に適用される。幾つかの実施態様において、各グラフからのオーディオ変更子パラメータは、音楽コンテンツ1118内の単一のプロパティ又はレイヤに適用するために単一のオーディオ変更子パラメータに結合される。
【0180】
図14は、幾つかの実施形態に従った、音楽技術音楽生成モジュール1420を使用して音楽コンテンツのリアルタイム変更を実施するための例示的なシステムを示す。図示の実施形態では、オーディオ技術音楽生成モジュール1420は、第1ノード決定モジュール1410、第2ノード決定モジュール1420、オーディオパラメータ決定モジュール1430、及びオーディオパラメータ変更モジュール1440を含む。まとめて、第1ノード決定モジュール1410、第2ノード決定モジュール1420、音声パラメータ決定モジュール1430、及び音声パラメータ変更モジュール1440は、システム1400を実装する。
【0181】
図示の実施形態では、オーディオ技術音楽生成モジュール1420は、オーディオ信号を含む再生音楽コンテンツ1418を受信する。オーディオ技術音楽生成モジュール1420は、第1ノード決定モジュール1410内の第1グラフ1414(例えば、時間ベースの音声信号グラフ)及び第2グラフ1416(例えば、ビートベースの信号グラフ)を介して音声信号を処理することができる。オーディオ信号が第1グラフ1414を通過すると、グラフ内の各ノードのパラメータがオーディオ信号の変化を決定する。図示の実施形態では、第2ノード決定モジュール1420は、第1ノード1412上の情報を受信し、第2ノード1422の情報を決定することができる。特定の実施形態では、第2ノード決定モジュール1420は、第1グラフ1414を通過する音声信号内の第1ノード情報1412内に見られる第1ノードの位置に基づいて、第2グラフ1416内のパラメータを読み取る。したがって、例として、第1グラフ1414(図12に示される)においてノード1202に向かう音声信号は、第2グラフ1416(図13に示される)において対応する(並列)ノード1302を決定する第2ノード決定モジュール1420をトリガすることができる。
【0182】
図14に示すように、音声パラメータ決定モジュール1430は、第2ノード情報1422を受信し、第2ノード情報に基づいて特定の音声パラメータ1432を決定(例えば、選択)することができる。例えば、音声パラメータ決定モジュール1430は、第2ノード情報1422で識別されるように、第2ノードの位置に続く第2グラフ1416の次のビートの一部(例えば、次のビートのx数)に基づいて音声パラメータを選択することができる。幾つかの実施形態では、ビートからリアルタイムへの変換を実装して、音声パラメータがそこから読み取られる第2グラフ1416の部分を決定してもよい。指定されたオーディオパラメータ1432は、オーディオパラメータ変更モジュール1440に提供されてもよい。
【0183】
音声パラメータ変更モジュール1440は、新しい音楽コンテンツを生成するために音楽コンテンツの変更を制御することができる。例えば、音声パラメータ変更モジュール1440は、再生音楽コンテンツ1418を変更して、新しい音楽コンテンツ1122を生成することができる。特定の実施形態では、オーディオパラメータ変更モジュール1440は、再生音楽コンテンツ内のオーディオ信号に対して特定のオーディオパラメータ1432(オーディオパラメータ決定モジュール1430によって決定される)を変更することによって、再生音楽コンテンツ1418のプロパティを変更する。例えば、再生音楽コンテンツ1418内のオーディオ信号のために指定されたオーディオパラメータ1432を変更することは、オーディオ信号内の振幅、周波数、又は両方の組み合わせのようなプロパティを変更する。様々な実施形態では、音声パラメータ変更モジュール1440は、再生音楽コンテンツ1418内の異なる音声信号のプロパティを変更する。例えば、再生音楽コンテンツ1418における異なるオーディオ信号は、再生音楽コンテンツ1418において表される異なる楽器に対応し得る。
【0184】
幾つかの実施形態では、音声パラメータ変更モジュール1440は、機械学習アルゴリズム又は他のAI技術を使用して、再生音楽コンテンツ1418内の音声信号の特性を変更する。幾つかの実施形態では、音声パラメータ変更モジュール1440は、音楽生成システムに関連するユーザインタフェースを介して提供され得る、モジュールへのユーザ入力に従って、再生音楽コンテンツ1418のプロパティを変更する。また、音声パラメータ変更モジュール1440が、AI技術とユーザ入力との組み合わせを用いて再生音楽コンテンツ1418のプロパティを変更する実施形態も考えられる。音声パラメータ変更モジュール1440による再生音楽コンテンツ1418の特性の変更のための様々な実施形態は、音楽コンテンツのリアルタイムの操作(例えば、再生中の操作)を可能にする。上述のように、リアルタイム操作は、再生音楽コンテンツ1418のオーディオ信号にテンポ変化変更、テンポ不変組み合わせ、又は両方の組み合わせを適用することを含むことができる。
【0185】
幾つかの実施形態では、オーディオ技術音楽生成モジュール1420は、音声パラメータ変更モジュール1440によって再生音楽コンテンツ1418の特性を変更するために、2層のパラメータシステムを実装する。2層のパラメータシステムでは、音声パラメータ値を直接制御する「自動化」(例えば、音楽生成システムによって自動的に実行されるタスク)と、後述するように、音声パラメータ変更をオートメーションの上に乗算的に重ね合わせる「変調」との間に区別がある場合がある。2層パラメータシステムは、音楽生成システムの異なる部分(例えば、システムアーキテクチャにおける異なる機械学習モデル)が、異なる音楽的側面を別々に考慮することを可能にする。例えば、音楽生成システムのある部分は、作曲の意図されたセクションタイプに従って特定の楽器の音量を設定することができ、他の部分は、付加的な関心のために音量の周期的変動を重ねることができる。
【0186】
音楽コンテンツ生成におけるリアルタイムオーディオ効果のための例示的技術
音楽技術ソフトウェアは、典型的には、作曲者/制作者が自動化によって様々な抽象的なエンベロープを制御することを可能にする。幾つかの実施形態では、自動化は、幾つかのオーディオ処理パラメータ(ボリューム、又は残響量など)の予めプログラムされた時間的操作である。自動化は、典型的には、手動で定義されたブレークポイントエンベロープ(例えば、区分的線形関数)又は正弦波のようなプログラマティック関数(別名、低周波発振器(LFO))のいずれかである。
【0187】
開示される音楽生成システムは、典型的な音楽ソフトウェアとは異なる場合がある。例えば、ほとんどのパラメータは、ある意味で、デフォルトで自動化されている。音楽生成システムのAI技術は、大部分又はすべてのオーディオパラメータを種々の方法で制御することができる。ベースレベルでは、ニューラルネットワークは、そのトレーニングに基づいて、各オーディオパラメータについて適切な設定を予測することができる。しかし、音楽生成システムに高レベルの自動化ルールを提供することは、役に立つかもしれない。例えば、大規模な音楽構造は、さもなければ予測されるかもしれない低レベルの設定に加えて、ボリュームのゆっくりとしたビルドを余分な考慮事項として指示するかもしれない。
【0188】
本開示は、一般に、音楽的にコヒーレントで変化する連続出力を作り出すために、階層的生成システムの異なるレベルによって同時に発行される複数のパラメトリック命令を組み合わせるための情報アーキテクチャ及び手続き的アプローチに関する。開示された音楽生成システムは、数時間連続的に体験されることを意図した長い形式の音楽体験を生成することができる。長い形式の音楽体験は、より満足のいく体験をするために、一貫した音楽体験旅行を創造する必要がある。これを行うために、音楽生成システムは、長い時間スケールで自身を参照することができる。これらの参考文献は、直接的なものから要約されたものまで様々である。
【0189】
特定の実施形態では、より大きなスケールの音楽ルールを容易にするために、音楽生成システム(例えば、音楽生成モジュール160)は、自動化API(アプリケーションプログラミングインタフェース)を公開する。図15は、幾つかの実施形態による、オーディオパラメータの自動化のためのシステムにおける例示的なAPIモジュールのブロック図を示す。図示の実施形態では、システム1500は、APIモジュール1505を含む。ある実施形態では、APIモジュール1505は、自動化モジュール1510を含む。音楽生成システムは、ウェーブテーブルスタイルのLFOと任意のブレークポイントエンベロープの両方をサポートすることができる。自動化モジュール1510は、任意のオーディオパラメータ1520に自動化1512を適用することができる。幾つかの実施形態では、自動化1512は、再帰的に適用される。例えば、正弦波のような任意のプログラマティックオートメーションは、それ自体がパラメータ(周波数、振幅など)を有し、それらのパラメータに自動化を適用することができる。
【0190】
様々な実施形態では、自動化1512は、上述のように、オーディオ信号グラフに平行な信号グラフを含む。シグナルグラフは、「プル」技術を介して同様に扱うことができる。「プル」技術では、APIモジュール1505は、自動化モジュール1510に、必要に応じて再計算を要求し、自動化1512が、それが依存する上流の自動化を再帰的に要求するように、再計算を行うことができる。特定の実施形態では、自動化のための信号グラフは制御されたレートで更新される。例えば、信号グラフは、実行エンジン更新ルーチンの実行毎に更新され得、これは、オーディオのブロックレートと整合され得る(例えば、オーディオ信号グラフが1ブロック(例えば、1ブロックは512サンプル)をレンダリングした後)。
【0191】
一部の実施形態では、オーディオパラメータ1520自体が、オーディオサンプルレートで変化することが望ましく、そうでなければ、オーディオブロック境界における不連続なパラメータの変化が、可聴アーチファクトをもたらす可能性がある。特定の実施形態では、音楽生成システムは、自動化更新をパラメータ値ターゲットとして扱うことによってこの問題を管理する。リアルタイムオーディオスレッドがオーディオブロックをレンダリングするとき、オーディオスレッドは、そのブロックの経過にわたって、指定されたパラメータを現在の値から供給されたターゲット値にスムーズにランプする。
【0192】
本明細書に記載される音楽生成システム(例えば、図1に示される音楽生成モジュール160)は、階層的性質を有するアーキテクチャを有してもよい。幾つかの実施形態では、階層の異なる部分は、特定のオーディオパラメータの値に対する複数の示唆を提供することができる。特定の実施形態では、音楽生成システムは、複数の示唆を結合/解像するための2つの別々のメカニズム、すなわち、変調及び上書き(overriding)を提供する。図15の図示された実施形態では、変調1532は変調モジュール1530によって実現され、上書き1542は上書きモジュール1540によって実現される。
【0193】
幾つかの実施形態では、自動化1512は、変調1532であると宣言され得る。このような宣言は、オーディオパラメータの値を直接設定するのではなく、オートメーション1512がオーディオパラメータの現在の値に乗算的に作用すべきであることを意味し得る。従って、大規模な音楽セクションは、長い変調1532をオーディオパラメータに適用することができ、変調の値は、音楽生成システムの他の部分が指示する値にかかわらず乗算される。
【0194】
様々な実施形態では、APIモジュール1505は、上書きモジュール1540を含む。上書きモジュール1540は、例えば、オーディオパラメータ自動化のための上書き機能であってもよい。上書きモジュール1540は、外部制御インタフェース(例えば、アーティスト制御ユーザインタフェース)によって使用されるように意図されてもよい。上書きモジュール1540は、音楽生成システムが音楽パラメータ1520を何にしようと試みるかに関係なく、音声パラメータ1520を制御してもよい。上書き1542によって上書きされる上書きパラメータ1520がある場合、音楽生成システムは、上書きされなかった場合に上書きされ得るオーディオパラメータを追跡する「シャドウパラメータ」1522を生成してもよい(例えば、上書きパラメータが上書き1512又は変調1532に基づく場合)。したがって、上書き1542が「解放」されると(例えば、アーティストによって除去される)、オーディオパラメータ1520は、自動化1512又は変調1532に従っていたであろう場所にスナップバックすることができる。
【0195】
様々な実施形態では、これらの2つのアプローチを組み合わせることができる。例えば、上書き1542は、変調1532であり得る。上書き1542が変調1532である場合、上書きパラメータ1520の基本値は、音楽生成システムによって設定されるが、上書き1542によって乗算的に変調されてもよい。各オーディオパラメータ1520は、各上書き1542の1つ(又はゼロ)だけでなく、1つ(又はゼロ)の自動化1512及び1つ(又はゼロ)の変調1532を同時に有してもよい。
【0196】
様々な実施形態では、抽象クラス階層は、以下のように定義される(多重継承が幾つかあることに注意):
【数3】
【0197】
抽象クラスの階層に基づいて、モノは自動化(Automations)又は自動化可能(Automatable)のいずれかとみなされる。幾つかの実施形態において、任意の自動化は、自動化可能な任意のものに適用され得る。自動化には、LFO、ブレークポイントエンベロープなどが含まれる。これらの自動化はすべてテンポロックされている。つまり、現在のビートに応じて時間とともに変化する。
【0198】
自動化は、それ自体が自動化可能なパラメータを持つことができる。例えば、LFO自動化の周波数及び振幅は自動化可能である。従って、オーディオレートではなく制御レートで、オーディオ信号グラフと並列に実行される従属自動化及び自動化パラメータの信号グラフが存在する。上述のように、信号グラフはプルモデルを使用する。音楽生成システムは、オーディオパラメータ1520に適用される任意の自動化1512のトラックを保持し、「ゲームループ」ごとにこれらを更新する。次に、自動化1512は、それら自身の自動化オーディオパラメータ1520の更新を再帰的に要求する。この再帰的更新論理は、頻繁に(しかし、必ずしもルール的にではなく)呼び出されることを期待する、基本クラスBeat-Dependentに存在してもよい。更新ロジックは、次のように記述されたプロトタイプを有することができる:
【数4】
【0199】
特定の実施形態では、BeatDependentクラスは、それ自身の依存関係(例えば、他のBeatDependentインスタンス)のリストを維持し、それらの更新関数を再帰的に呼び出す。updateCounterは、信号グラフが二重に更新することなくサイクルを有することができるように、チェーンを通過させることができる。これは、自動化が幾つかの異なる自動化対象に適用される可能性があるため、重要である可能性がある。幾つかの実施形態では、第2の更新が第1のものと同じcurrentBeatを有するので、これは問題ではなく、これらの更新ルーチンは、ビートが変化しない限り、効果がない。
【0200】
様々な実施形態では、自動化が自動化に適用される場合、「ゲームループ」の各サイクルにおいて、音楽生成システムは、各自動化からの更新された値を要求し(再帰的に)、自動化の値を設定するためにそれを使用することができる。この場合、「設定」は、特定のサブクラスに依存することがあり、また、パラメータもまた変調されているか否か、及び/又は、無効にされているか否かにも依存することがある。
【0201】
特定の実施形態では、変調1532は、絶対的ではなく乗法的に適用される自動化1512である。例えば、変調1532は、既に自動化されたオーディオパラメータ1520に適用することができ、その効果は、自動化された値のパーセンテージである。これは、乗法的に、例えば、移動手段の周りの進行中の振動を可能にし得る。
【0202】
幾つかの実施形態では、オーディオパラメータ1520は、上述のように、任意の自動化1512又はそれらに適用される変調1532、又は他の(より特権の少ない)要求が、上書き1542の上書き値によって上書きされることを意味する上書き可能である。この上書きは、音楽生成システムの幾つかの側面に対する外部制御を可能にし、他方、音楽生成システムは、そうでない場合と同様に継続する。オーディオパラメータ1520が無効にされると、音楽生成システムは、値が何であるかを追跡する(例えば、適用された自動化/変調及び他の要求を追跡する)。上書きが解除されると、音楽生成システムは、パラメータをスナップし、そのパラメータがどこにあったかを確認する。
【0203】
変調1532を容易にし、1542を無効にするために、音楽生成システムはパラメータ(Parameter)のsetValueメソッドを抽象化してもよい。また、実際に値を設定するプライベートメソッド_setValueもある。パブリックメソッドの例を次に示す:
【数5】
【0204】
パブリックメソッドは、_unmodifiedと呼ばれるParameterクラスのメンバ変数を参照することができる。この変数は、前述のShadowParameterのインスタンスである。各オーディオパラメータ1520は、変調されない場合にどこにあるかを追跡するシャドウパラメータ1522を有する。オーディオパラメータ1520が現在変調されていない場合、オーディオパラメータ1520及びそのシャドウパラメータ1522の両方が要求された値で更新される。さもなければ、シャドウパラメータ1522はリクエストを追跡し、実際のオーディオパラメータ値1520は、他の場所(例えば、updateModulationsルーチン-ここで、変調係数はシャドウパラメータ値に乗算されて実際のパラメータ値を与える)で設定される。
【0205】
様々な実施形態において、長形音楽体験における大規模な構造は、様々なメカニズムによって達成される。1つの広範なアプローチは、音楽的な自己参照の長期的な使用である。例えば、非常に直接的な自己参照は、以前に再生されたオーディオセグメントを正確に繰り返すことである。音楽理論では、反復セグメントはテーマ(又はモチーフ)と呼ばれる。より典型的には、音楽コンテンツはテーマ及び変化を使用し、テーマは後に多少のバリエーションを伴って繰り返され、一貫性の感覚を与えるが、進歩の感覚を維持する。本明細書に開示される音楽生成システムは、テーマ及び変化を使用して、直接反復又は抽象的な封筒の使用を含む幾つかの方法で、大規模な構造を作り出すことができる。
【0206】
抽象エンベロープは、時間を通じた音声パラメータの値である。制御しているオーディオパラメータから抽象的に、抽象的なエンベロープを他のオーディオパラメータに適用することができる。例えば、オーディオパラメータの集合は、単一の制御抽象エンベロープによって協調して自動化することができる。この技術は、異なる層を短期間知覚的に「結合」することができる。抽象エンベロープは、一時的に再利用され、異なるオーディオパラメータに適用されることもある。このようにして、抽象エンベロープは抽象的な音楽テーマとなり、このテーマは、このエンベロープを、後のリスニング体験で別の音声パラメータに適用することによって繰り返される。このように、構造と長期的な一貫性の感覚が確立される一方で、このテーマにはバリエーションがある。
【0207】
抽象エンベロープは、音楽のテーマとみなされ、多くの音楽的特徴を抽象化することができる。抽象化され得る音楽的特徴の例は、以下を含むが、これらに限定されない:
・緊張状態(トラックの容量、歪みのレベルなど)で構築する。
・リズム(音量調整及び/又はゲート設定は、パッドなどにリズミカルな効果を与える)。
・メロディ(ピッチフィルタリングは、パッドなどに適用されるメロディの輪郭を模倣することができる)。
【0208】
リアルタイム音楽コンテンツ生成のための例示的追加オーディオ技術
リアルタイムの音楽コンテンツ生成は、独特の課題を提起する可能性がある。例えば、厳しいリアルタイム制約のために、予測不可能で制限されない実行時間を持つ関数呼び出しやサブルーチンは避けるべきである。この問題を避けることは、ほとんどの高級プログラミング言語や、CやC++のような低級言語の大部分の使用を排除するかもしれない。ヒープからメモリを割り当てるもの(例えば、フードの下のmalloc)は、ミューテックスをロックするなどしてブロックする可能性があるものと同様に、除外することができる。これは、マルチスレッドプログラミングを、リアルタイム音楽コンテンツ生成において特に困難にする。ほとんどの標準的なメモリ管理アプローチも実行不可能である可能性があり、その結果、C++STLコンテナのような動的なデータ構造は、リアルタイムの音楽コンテンツ生成のための使用が制限されている。
【0209】
他の分野の課題は、DSP(デジタル信号処理)機能(フィルタの遮断周波数のような)に関与するオーディオパラメータの管理である。例えば、オーディオパラメータを動的に変更する場合、オーディオパラメータが連続的に変更されない限り、可聴アーチファクトが発生する可能性がある。従って、リアルタイムDSPオーディオスレッドとユーザ対向インタフェース又はプログラマティックインタフェースとの間の通信が、オーディオパラメータを変更するために必要とされることがある。
【0210】
これらの制約に対処するために、種々のオーディオソフトウェアを実装することができ、種々のアプローチが存在する。例えば、
・スレッド間通信は、ロックフリーのメッセージキューで処理してもよい。
・関数はプレインCで記述され、関数ポインタコールバックを利用する。
・メモリ管理は、カスタムの「ゾーン」又は「領域」を介して実装されてもよい。
・「2速度」システムは、リアルタイムのオーディオスレッド計算がオーディオレートで実行され、オーディオスレッドが「制御レート」で実行されるように制御されて実装されてもよい。制御オーディオスレッドは、リアルタイムオーディオスレッドがスムーズにランプするオーディオパラメータの変更目標を設定することができる。
【0211】
幾つかの実施形態では、実際のDSPルーチンで使用するためのオーディオパラメータ値の制御レートオーディオパラメータ操作とリアルタイムオーディオスレッドセーフストレージとの間の同期化は、オーディオパラメータ目標のある種のスレッドセーフ通信を必要とすることがある。オーディオルーチンのほとんどのオーディオパラメータは(離散的ではなく)連続的であるため、通常は浮動小数点データ型で表される。データに対する種々の歪みは、ロックフリーのアトミック浮動小数点データ型の欠如によって歴史的に必要とされてきた。
【0212】
特定の実施形態では、単純なロックフリーのアトミック浮動小数点データ型が、本明細書に記載の音楽生成システムに実装される。ロックフリーのアトミック浮動小数点データ型は、浮動小数点型をビット列として扱い、コンパイラを「トリッキング」して、それを同じビット幅のアトミック整数型として扱うことによって達成することができる。このアプローチは、本明細書に記載される音楽生成システムに適したアトミックゲッティング/セッティングをサポートすることができる。ロックフリーアトミック浮動小数点データ型の実装例を以下に示す:
【数6】
【0213】
幾つかの実施形態では、ヒープからの動的メモリ割当は、音楽コンテンツ生成に関連するリアルタイムコードに対して実行可能ではない。例えば、静的スタックベースの割当は、動的記憶コンテナ及び機能的プログラミングアプローチのようなプログラミング技術を使用することを困難にし得る。特定の実施形態では、本明細書に記載される音楽生成システムは、リアルタイムコンテキストにおけるメモリ管理のための「メモリゾーン」を実装する。本明細書で使用されるように、「メモリゾーン」は、リアルタイム制約なしに(例えば、リアルタイム制約がまだ存在しないか、又は一時停止しているときに)先行して割り当てられるヒープ割り当てメモリの領域である。メモリ記憶オブジェクトは、システムからより多くのメモリを要求する必要なしに、ヒープ割り当てメモリの領域内に生成され、それによって、メモリをリアルタイムで安全にする。ガーベッジコレクションには、メモリゾーン全体の割り当て解除を含めることができる。また、音楽生成システムによるメモリの実装は、安全でリアルタイムに安全で効率的なマルチスレッドであってもよい。
【0214】
図16は、幾つかの実施形態による、例示的メモリゾーン1600のブロック図を示す。図示の実施形態では、メモリゾーン1600は、ヒープ割り当てメモリモジュール1610を含む。様々な実施形態では、ヒープ割り当てメモリモジュール1610は、第1グラフ1114(例えば、オーディオ信号グラフ)、第2グラフ1116(例えば、信号グラフ)、及びオーディオ信号データ1602を受信し、格納する。記憶されたアイテムの各々は、例えば、音声パラメータ変更モジュール1440(図14に示す)によって検索することができる。
【0215】
メモリゾーンの実装例を以下に示す:
【数7】
【0216】
幾つかの実施形態では、音楽生成システムの異なる音声スレッドは、互いに通信する必要がある。典型的なスレッドセーフティアプローチ(「相互に排他的な」データ構造のロックを含むことがある)は、リアルタイムのコンテキストでは使用できない可能性がある。特定の実施形態では、シングルプロデューサ-シングルコンシューマ循環バッファ(single-producer single-consumer circular buffer)のプールへの動的ルーティングデータのシリアライゼーションが実装される。循環バッファは、初期化後に動的メモリ割り当てを必要としないFIFO(先入れ先出し)キューデータ構造の一種である。シングルプロデューサのシングルコンシューマスレッドセーフの円形バッファは、別のオーディオスレッドがデータを引き出す間に、1つのオーディオスレッドがデータをキューにプッシュすることを可能にする。本明細書に記載される音楽生成システムのために、円形バッファを拡張して、マルチプロデューサのシングルコンシューマオーディオスレッドを可能にすることができる。これらのバッファは、環状バッファの静的アレイを予め割り当て、音楽生成システムによって生成された音楽コンテンツに追加された識別子に従って、直列化データを特定の「チャネル」(例えば、特定の環状バッファ)に動的にルーティングすることによって実現することができる。円形バッファの静的アレイは、単一ユーザ(例えば、単一消費者)によってアクセス可能である。
【0217】
図17は、幾つかの実施形態による、新しい音楽コンテンツを記憶するための例示的なシステムのブロック図を示す。図示の実施形態では、システム1700は、円形バッファスタティックアレイモジュール1710を含む。円形バッファスタティックアレイモジュール1710は、複数の円形バッファを含み、スレッド識別子に従った複数のプロデューサ、シングルコンシューマオーディオスレッドの記憶を可能にする。例えば、円形バッファスタティックアレイモジュール1710は、新しい音楽コンテンツ1122を受信し、ユーザによるアクセスのために新しい音楽コンテンツを1712に記憶することができる。
【0218】
様々な実施形態では、動的コンテナ(ベクトル、キュー、リスト)などの抽象的なデータ構造は、典型的には、非リアルタイムで安全な方法で実装される。しかし、これらの抽象的なデータ構造は、オーディオプログラミングに有用である。特定の実施形態では、本明細書に記載される音楽生成システムは、カスタムリストデータ構造(例えば、シングルリンクリスト)を実装する。多くの機能的プログラミング技術は、カスタムリストデータ構造から実装することができる。カスタムリストデータ構造の実装は、基底にあるメモリ管理のために「メモリゾーン」(上述)を使用してもよい。幾つかの実施形態では、カスタムリストデータ構造は、シリアル化可能であり、これは、リアルタイムの使用に対して安全であるようにすることができ、また、上述のマルチプロデューサ、シングルコンシューマオーディオスレッドを使用して、オーディオスレッド間で通信することができる。
【0219】
例示的ブロックチェーン台帳技術
開示されたシステムは、幾つかの実施形態では、生成された音楽又はその要素、例えば、ループ又はトラックについての情報を記録するために、ブロックチェーン又は他の暗号帳票のような安全な記録技術を利用することができる。幾つかの実施態様において、システムは、複数のオーディオファイル(例えば、トラック又はループ)を組み合わせて出力音楽コンテンツを生成する。この組み合わせは、少なくとも部分的に時間的にオーバーラップするように、音声コンテンツの複数の層を組み合わせることによって実行することができる。出力コンテンツは、音楽の個別の断片であってもよいし、連続的であってもよい。音楽要素の使用の追跡は、例えば、関連する利害関係者にロイヤルティを提供するために、継続的な音楽の文脈において困難を伴うことがある。従って、幾つかの実施形態では、開示されたシステムは、合成音楽コンテンツにおいて使用されるオーディオファイルの識別子及び使用情報(例えば、タイムスタンプ又は再生数)を記録する。さらに、開示されたシステムは、例えば、ブレンドされたオーディオファイルのコンテキストにおける再生時間を追跡するために、種々のアルゴリズムを利用することができる。
【0220】
本明細書中で使用される場合、「ブロックチェーン」という用語は、暗号的にリンクされた一連の記録(ブロックと呼ばれる)を指す。例えば、各ブロックは、前のブロックの暗号ハッシュ、タイムスタンプ、及びトランザクションデータを含んでもよい。ブロックチェーンは、公開された分散型台帳として使用することができ、通信及び新しいブロックの検証のために合意されたプロトコルを使用する計算装置のネットワークによって管理することができる。ブロックチェーンの実装の中には、不変のものもあれば、その後のブロックの変更を可能にするものもある。一般に、ブロックチェーンは、検証可能かつ永続的な方法でトランザクションを記録することができる。ブロックチェーン台帳は、説明のために本明細書で論じられるが、開示された技術は、他の実施形態において他のタイプの暗号台帳と共に使用され得ることが理解されるべきである。
【0221】
図18は、一部の実施形態に係る再生データの一例を示す図である。図示の実施形態では、データベース構造は、複数のファイルに対するエントリを含む。図示された各エントリは、ファイル識別子、開始タイムスタンプ、及び合計時間を含む。ファイル識別子は、システムによって追跡されるオーディオファイルを一意に識別することができる。開始タイムスタンプは、混合オーディオコンテンツ中のオーディオファイルの最初の包含を示すことができる。このタイムスタンプは、再生装置のローカルクロックに基づいてもよいし、例えば、インターネットクロックに基づいてもよい。合計時間は、オーディオファイルが組み込まれた間隔の長さを示すことができる。これは、オーディオファイルの長さとは異なる場合があることに注意する。例えば、オーディオファイルの一部のみを使用した場合、オーディオファイルがミックス内で加速又は減速した場合などである。幾つかの実施態様において、オーディオファイルが複数の異なる時間で組み込まれる場合、各時間は、エントリをもたらす。他の実施形態では、ファイルのための追加プレイは、ファイルのためのエントリがすでに存在する場合、既存のエントリの時間フィールドの増加をもたらすことがある。さらに他の実施形態では、データ構造は、取り込みの長さではなく、各オーディオファイルが使用される回数を追跡してもよい。さらに、時間ベースの使用データの他の符号化が考えられる。
【0222】
様々な実施形態では、異なる装置が、再生データを記録するために、台帳を決定し、記憶し、使用することができる。例示的なシナリオ及びトポロジは、図19を参照して後述される。再生データは、台帳にコミットされる前に、一時的にコンピューティング装置に保存されることがある。記憶された再生データは、例えば、エントリの操作や偽のエントリの挿入を減らしたり、回避するために暗号化されてもよい。
【0223】
図19は、幾つかの実施形態に従う、例示的な作曲システムを示すブロック図である。図示の例では、システムは、再生装置1910、コンピューティングシステム1920、及び台帳1930を含む。
【0224】
図示の実施形態では、再生装置1910は、コンピューティングシステム1920から制御信号を受信し、再生データをコンピューティングシステム1920に送信する。この実施形態では、再生装置1910は、再生装置1910によって再生されるオーディオミックスに基づいて再生データを記録することができる再生データ記録モジュール1912を含む。また、再生装置1910は、再生データを一時的に、台帳に、又はその両方に記憶するように構成された再生データ記憶モジュール1914を含む。再生装置1910は、定期的に再生データをコンピューティングシステム1920に報告してもよく、あるいは、リアルタイムで再生データを報告してもよい。再生データは、例えば、再生装置1910がオフラインである場合に、後の報告のために格納されてもよい。
【0225】
図示の実施形態では、コンピューティングシステム1920は、再生データを受信し、再生データを反映するエントリを台帳1930にコミットする。計算システム1920はまた、再生装置1910に制御信号を送る。この制御シグナリングは、異なる実施形態における種々のタイプの情報を含み得る。例えば、制御信号伝達は、音楽コンテンツを構成するために再生装置1910によって使用されるための構成データ、ミキシングパラメータ、オーディオサンプル、機械学習アップデート等を含んでもよい。他の実施形態では、コンピューティングシステム1920は、音楽コンテンツを構成し、音楽コンテンツデータを制御信号を介して再生装置1910にストリームすることができる。これらの実施形態において、モジュール1912及び1914は、コンピューティングシステム1920に含まれてもよい。一般に、図19を参照して説明したモジュール及び機能は、種々のトポロジに従って複数のデバイス間に分散されてもよい。
【0226】
幾つかの実施形態では、再生装置1910は、エントリを直接台帳1930にコミットするように構成される。例えば、携帯電話のような再生装置は、音楽コンテンツを作成し、再生データを決定し、再生データを記憶することができる。このシナリオでは、モバイル装置は、コンピューティングシステム1920のようなサーバに再生データを報告するか、又は台帳1930を維持するコンピューティングシステム(又はコンピューティングノードの集合)に直接報告することができる。
【0227】
幾つかの実施態様において、システムは、例えば、オーディオファイル識別子又はオーディオファイルのセットへのマッピングと共に、権利保持者の記録を保持する。このエンティティの記録は、台帳1930、又は別個の台帳、又は他のデータ構造において維持することができる。これは、例えば、台帳1930が公開であるが、何らかの他のデータ構造内のエンティティにマップされた非識別エンティティ識別子を含む場合に、権利所有者が匿名のままであることを可能にする。
【0228】
幾つかの実施形態では、音楽合成アルゴリズムは、ミックスに含めるために、2つ以上の既存のオーディオファイルから新しいオーディオファイルを生成することができる。例えば、システムは、2つのオーディオファイルA及びBに基づいて新しいオーディオファイルCを生成することができる。このようなブレンディングのための1つの実装方法は、ファイルA及びBのオーディオ表現のベクトル表現と、ベクトルからオーディオ表現への逆変換を用いたファイルCの生成との間の補間を使用する。この例では、オーディオファイルAとBの再生時間は両方ともインクリメントされてもよいが、ブレンドされているなどの理由で、実際の再生時間よりも短くインクリメントされてもよい。
【0229】
例えば、オーディオファイルCが20秒間混合コンテンツに組み込まれた場合、オーディオファイルAは15秒を示す再生データを有し、オーディオファイルBは5秒を示す再生データを有する(そして、ブレンドされたオーディオファイルの合計は、結果として生じるファイルCの使用期間と一致する場合もあれば一致しない場合もあることに注意)。幾つかの実施態様において、各オリジナルファイルの再生時間は、混合ファイルCと同様にそれに基づく。例えば、ベクトルの実施態様において、n次元ベクトル表現の場合、補間ベクトルaは、オーディオファイルA及びBのベクトル表現から次の距離dを有する:
【数8】
【0230】
これらの実施形態では、各オリジナルファイルの再生時間iは、以下のように決定され得る:
【数9】
ここで、tはファイルCの再生時間を表す。
【0231】
幾つかの実施形態では、報酬の形態を台帳構造に組み込むことができる。例えば、特定のエンティティは、オーディオファイルを、リンクを表示したり、広告を含むような実行要件に関連付ける情報を含むことができる。これらの実施形態では、構成システムは、オーディオファイルをミックスに含めるときに、関連する操作(例えば、広告を表示する)の性能の証明を提供することができる。実行の証明は、動作がどのようにいつ実行されたかを示すために特定のフィールドを必要とする、様々な適切な報告テンプレイトの1つに従って報告することができる。実行の証明は、時間情報を含み、実行の誤った主張を避けるために暗号を利用することができる。これらの実施形態では、関連する要求された動作の性能の証拠も示さないオーディオファイルの使用は、ロイヤルティ支払いのような何らかの他の形式の報酬を必要とし得る。一般に、オーディオファイルを送信するエンティティが異なると、異なる形式の報酬を登録することができる。
【0232】
上述したように、開示された技術は、たとえリアルタイムで作曲されたとしても、音楽ミックスにおけるオーディオファイル使用の信頼できる記録を提供し得る。台帳の公共性は、報酬の公平性に信頼を与えることができる。これにより、アーティストやその他の協力者の参加が促進され、自動ミキシングに利用できるオーディオファイルの多様性と品質が改善される可能性がある。
【0233】
幾つかの実施形態では、アーティストパックは、音楽エンジンによって連続的なサウンドスケープを作るために使用される要素と共に作られてもよい。アーティストパックは、アーティスト又はグループのような実体に関連する1つ以上データ構造に記憶される要素の、専門的に(又は別の方法で)キュレートされたセットであってもよい。これらの要素の例には、限定されるものではないが、ループ、構成ルール、発見的方法、及びニューラルネットベクトルが含まれる。ループは、音楽フレーズのデータベースに含まれ得る。各ループは、典型的には、一定期間にわたって音楽の進行を演奏する単一の楽器又は関連する楽器セットである。これらは、短いループ(例えば、4バー)から長いループ(例えば、32~64バー)などの範囲に及ぶ。ループは、メロディ、ハーモニ、ドラム、バス、トップ、FXなどのレイヤに編成することができる。また、ループデータベースは、符号化ループ表現を有する変分自動エンコーダとして表現されてもよい。この場合、ループ自体は必要ではなく、NNで符号化された音声を生成するためにNNが使用される。
【0234】
ヒューリスティックスとは、音楽エンジンを導くパラメータ、ルール、データを指す。パラメータは、セクション長、エフェクトの使用、バリエーション技術の頻度、音楽の複雑さ、又は一般に音楽エンジンが音楽を構成しレンダリングする際に音楽エンジンの意思決定を強化するために使用され得る任意の種類のパラメータなどの要素をガイドする。
【0235】
台帳には、関連する権利者を有するコンテンツの消費に関連する取引が記録される。これは、例えば、ループ、ヒューリスティックス、又はニューラルネットワークベクトルであり得る。台帳の目的は、これらの取引を記録し、透明性のある会計処理が行われるようにすることである。台帳は、コンテンツの消費、音楽エンジンのガイドにおけるパラメータの使用、ニューラルネットワーク上のベクトルの使用などを含む、トランザクションが発生したときのトランザクションを捕捉することを意図している。台帳は、個別のイベント(例えば、この時点でこのループが演奏された)、このパックがこの時間の間演奏された、又はこの機械学習モジュール(例えば、ニューラルネットワークモジュール)をこの時間の間使用した、様々なトランザクションタイプを記録することができる。
【0236】
台帳は、複数の権利保有者を任意のアーティストパックに関連付けることができ、より詳細には、特定のループ又はアーティストパックの他の要素に関連付けることができる。例えば、ラベル、アーティスト、及び作曲者は、所定のアーティストパックに対する権利を有することができる。台帳は、各パーティが何パーセントを受け取るかを特定するパックの支払明細を関連付けることを許可することができる。例えば、アーティストは25%、レーベル(label)は25%、作曲者は50%を受け取ることができる。これらのトランザクションを管理するためにブロックチェーンを使用すると、各権利者にリアルタイムで少額の支払いを行うことができ、あるいは適切な期間にわたって累積することができる。
【0237】
上述のように、幾つかの実装では、ループは、機械学習モジュール内のループの本質的に符号化であるVAEに置き換えられてもよい。この場合、台帳は、機械学習モジュールを含む特定のアーティストパックに再生時間を関連付けることができる。例えば、アーティストパックが、すべての装置の合計再生時間の10%で再生される場合、このアーティストは、総収益分配の10%を受け取ることができる。
【0238】
幾つかの実施態様において、システムは、アーティストがアーティストプロファイルを作成することを可能にする。プロフィールには、アーティストのアイデンティティを検証するために必要なバイオ、プロフィールピクチャ、銀行の詳細、及びその他のデータを含む、アーティストに関連する情報が含まれる。アーティストプロファイルが作成されると、アーティストはアーティストパックをアップロードして発行することができる。これらのパックには、音楽エンジンがサウンドスケープを作成するために使用する要素が含まれる。
【0239】
作成されたアーティストパックごとに、権利者を定義し、パックに関連付けることができる。各権利者は、パックの割合を請求することができる。さらに、各権利者は、プロファイルを作成し、銀行口座と支払いのプロファイルを関連付ける。アーティスト自身が権利者であり、そのパックに関連する権利の100%を所有することができる。
【0240】
売上認識に使用されるイベントを台帳に記録することに加えて、台帳はアーティストパックに関連するプロモーションを管理することができる。例えば、アーティストパックは、プロモーションが実行されていない場合とは収入が異なる月間の無料プロモーションを行うことができる。台帳は、権利者への支払いを計算する際に、これらの収益入力を自動的に計算する。
【0241】
この著作権管理モデルは、アーティストがパックの権利を1人以上の外部の権利保有者に売ることを可能にする。例えば、新しいパッケージの発売時に、アーティストはそのパックの持ち分の50%をファンや投資家に売却することで、そのパッケージに予め資金を提供することができる。この場合、投資家/権利保有者の数は、恣意的に多くなる可能性がある。例えば、アーティストは100Kユーザに50%を売ることができ、そのうち1/100Kの収入を得ることができる。会計はすべて台帳で管理されているため、投資家はこのシナリオで直接報酬を受け取ることになり、アーティストアカウントの監査の必要性はなくなる。
【0242】
例示的なユーザ及びエンタープライズGUI
図20A~20Bは、幾つかの実施形態による、グラフィカルユーザインタフェースを示すブロック図である。図示の実施形態では、図20Aは、ユーザアプリケーション2010によって表示されるGUIを含み、図20Bは、エンタープライズアプリケーション2030によって表示されるGUIを含む。幾つかの実施態様において、図20A及び20Bに示されるGUIは、アプリケーションによってではなくウェブサイトによって生成される。様々な実施形態では、ダイヤル(例えば、容積、エネルギ等を制御するため)、ボタン、ノブ、表示ボックス(例えば、ユーザに更新された情報を提供するため)などの1つ以上の要素を含む、様々な適切な要素のいずれかが表示されてもよい。
【0243】
図20Aにおいて、ユーザアプリケーション2010は、1つ以上のアーティストパックを選択するためのセクション2012を含むGUIを表示する。幾つかの実施形態では、パック2014は、特定の機会(例えば、結婚式、誕生パーティ、卒業式など)のためのテーマパック又はパックを代替的又は追加的に含むことができる。幾つかの実施形態では、セクション2012に示されるパックの数は、セクション2012に一度に表示することができるパックの数よりも多い。従って、幾つかの実施形態では、ユーザは、セクション2012において上下にスクロールして、1つ以上パック2014を表示する。幾つかの実施形態では、ユーザは、出力音楽コンテンツを聴きたいアーティストパック2014を選択することができる。幾つかの実施形態において、アーティストパックは、例えば、購入及び/又はダウンロードされ得る。
【0244】
選択要素2016は、例示された実施形態において、ユーザが1つ以上の音楽属性(例えば、エネルギレベル)を調整することを可能にする。幾つかの実施形態において、選択要素2016は、ユーザが1つ以上のターゲット音楽属性を追加/削除/変更することを可能にする。様々な実施形態では、選択要素2016は、1つ以上のUI制御要素(例えば、制御要素830)をレンダリングしてもよい。
【0245】
図示の実施形態では、選択要素2020は、ユーザが、ターゲットの音楽属性を決定するために、装置(例えば、モバイル装置)に環境を聞かせることを可能にする。幾つかの実施形態では、装置は、ユーザが選択要素2020を選択した後に、1つ以上のセンサ(例えば、カメラ、マイクロフォン、温度計など)を使用して環境に関する情報を収集する。幾つかの実施形態では、アプリケーション2010はまた、ユーザが要素2020を選択したときに、アプリケーションによって収集された環境情報に基づいて、1つ以上のアーティストパックを選択又は提案する。
【0246】
選択要素2022は、図示された実施形態において、ユーザが複数のアーティストパックを組み合わせて新しいルールセットを生成することを可能にする。幾つかの実施形態では、新しいルールセットは、ユーザが同じアーティストのために1つ以上のパックを選択することに基づいている。他の実施形態では、新しいルールセットは、ユーザが異なるアーティストのために1つ以上のパックを選択することに基づいている。ユーザは、例えば、高加重ルールセットが低加重ルールセットよりも生成された音楽に対してより大きな効果を有するように、異なるルールセットの重みを示すことができる。音楽生成器は、例えば、異なるルールセットからのルール間のスイッチング、複数の異なるルールセットからのルールの平均値等により、複数の異なる方法でルールセットを結合することができる。
【0247】
図示された実施形態では、選択要素2024は、ユーザが1つ以上のルールセット内のルールを手動で調整することを可能にする。例えば、幾つかの実施形態では、ユーザは、音楽コンテンツを生成するために使用されるルールセット内の1つ以上のルールを調整することによって、より細かいレベルで生成される音楽コンテンツを調整したいと考えている。幾つかの実施形態では、これは、図20AのGUIに表示された制御を使用して、音楽生成器が出力音楽コンテンツを生成するために使用するルールセットを調整することによって、アプリケーション2010のユーザが自身のディスクジョッキーになることを可能にする。これらの実施形態はまた、ターゲット音楽属性のよりきめ細かい制御を可能にし得る。
【0248】
図20Bでは、エンタープライズアプリケーション2030は、アーティストパック選択セクション2012とアーティストパック2014を含むGUIを表示する。図示の実施形態では、アプリケーション2030によって表示されるエンタープライズGUIは、1つ以上の音楽属性を調整/追加/削除するための要素2016も含む。幾つかの実施態様において、図20Bに示されるGUIは、音楽コンテンツを生成することによって、特定の環境(例えば、販売を最適化するため)を生成するために、ビジネス又は店頭で使用される。幾つかの実施形態では、従業員は、アプリケーション2030を使用して、売上を増加させることが以前に示された1つ以上のアーティストパックを選択する(例えば、所与のルールセットのメタデータは、実世界のコンテキストでルールセットを使用して実際の実験結果を示すことができる)。
【0249】
図示の実施形態では、入力ハードウェア2040は、企業アプリケーション2030を表示しているアプリケーション又はウェブサイトに情報を送信する。幾つかの実施形態では、入力ハードウェア2040は、キャッシュレジスタ、熱センサ、光センサ、クロック、ノイズセンサなどのうちの1つである。幾つかの実施形態では、上記のハードウェア装置のうちの1つ以上から送信された情報を使用して、特定の環境のための出力音楽コンテンツを生成するためのターゲット音楽属性及び/又はルールセットを調整する。図示された実施形態では、選択要素2038は、アプリケーション2030のユーザが、環境入力を受信するための1つ以上のハードウェアデバイスを選択することを可能にする。
【0250】
図示の実施形態では、ディスプレイ2034は、入力ハードウェア2040からの情報に基づいて、アプリケーション2030のユーザに環境データを表示する。図示の実施形態では、ディスプレイ2032は、環境データに基づくルールセットへの変更を示す。幾つかの実施形態では、ディスプレイ2032は、アプリケーション2030のユーザが、環境データに基づいて行われた変更を見ることを可能にする。
【0251】
幾つかの実施態様において、図20A及び20Bに示される要素は、テーマパック及び/又は機会パック用である。すなわち、幾つかの実施形態では、アプリケーション2010及び2030によって表示されるGUIを使用するユーザ又はビジネスは、1つ以上の機会及び/又はテーマについて音楽コンテンツを生成するために、ルールセットを選択/調整/変更することができる。
【0252】
音楽生成システムの詳細例
図21-23は、音楽生成モジュール160の特定の実施形態に関する詳細を示す。これらの特定の実施例は、説明の目的で開示されているが、本開示の範囲を制限することを意図したものではないことに留意されたい。これらの実施形態では、ループからの音楽の構築は、パーソナルコンピュータ、モバイル装置、メディア装置などのクライアントシステムによって行われる。図21-23の説明で使用するように、「ループ」という用語は、「オーディオファイル」という用語と置き換えることができる。一般に、ループは、本明細書に記載されるように、オーディオファイルに含まれる。ループは、専門的にキュレートされたループパックに分割することができ、これをアーティストパックと呼ぶことができる。音楽プロパティについてループを分析し、そのプロパティをループメタデータとして格納することができる。構築されたトラック内のオーディオは、分析され(例えば、リアルタイムで)、フィルタリングされて、出力ストリームを混合し、マスターすることができる。様々なフィードバックがサーバに送られ、例えば、ユーザとスライダ又はボタンとのやりとりからの明示的なフィードバック、及び、例えば、音量変化に基づいて、聴取長さ、環境情報等に基づいて、センサによって生成される暗黙的なフィードバックを含む。幾つかの実施形態において、制御入力は、既知の効果を有し(例えば、直接的又は間接的に対象音楽属性を特定するため)、構成モジュールによって使用される。
【0253】
以下の議論は、図21-23を参照して使用される様々な用語を紹介する。幾つかの実施形態において、ループライブラリは、サーバによって格納されてもよいループのマスタライブラリである。各ループは、オーディオデータ及びオーディオデータを記述するメタデータを含むことができる。幾つかの実施態様において、ループパッケージは、ループライブラリのサブセットである。ループパッケージは、特定のアーティスト、特定のムード、特定のタイプのイベントなどのためのパックであってもよい。クライアント装置は、例えばオンラインリスニングのために、要求に応じてループパックの一部をオフラインでリスニング又はダウンロードするために、ループパックをダウンロードすることができる。
【0254】
幾つかの実施態様において、生成されたストリームは、ユーザが音楽生成システムを使用するときにユーザが聞く音楽コンテンツを指定するデータである。実際の出力オーディオ信号は、所与の生成ストリームに対して、例えばオーディオ出力装置の能力に基づいて、わずかに変化し得ることに留意されたい。
【0255】
作曲モジュールは、幾つかの実施形態では、ループパッケージ内で利用可能なループから作曲を構築する。構成モジュールは、パラメータとしてループ、ループメタデータ、及びユーザ入力を受信することができ、クライアント装置によって実行することができる。幾つかの実施形態では、構成モジュールは、実行モジュール及び1つ以上の機械学習エンジンに送られる実行スクリプトを出力する。幾つかの実施形態では、実行スクリプトは、生成されたストリームの各トラック上でどのループが再生されるか、及びストリームにどのようなエフェクトが適用されるかを概説する。実行スクリプトは、イベントが発生したときを表すために、ビート相対タイミングを利用することができる。また、実行スクリプトは、エフェクトパラメータ(例えば、残響、ディレイ、圧縮、イコライゼーションなどのエフェクト用)をエンコードすることもできる。
【0256】
幾つかの実施形態では、実行モジュールは、入力として実行スクリプトを受信し、それを生成されたストリームにレンダリングする。実行モジュールは、実行スクリプトによって指定された多数のトラックを生成し、トラックをストリーム(例えば、ステレオストリーム)に混合することができるが、ストリームは、様々な実施形態において、音声符号化、オブジェクトベースのオーディオ符号化、マルチチャネルステレオなどを含む様々な符号化を有してもよい。幾つかの実施形態では、特定の実行スクリプトを提供する場合、実行モジュールは常に同じ出力を生成する。
【0257】
分析モジュールは、幾つかの実施形態では、フィードバック情報を受信し、構成モジュールを(例えば、リアルタイムで、定期的に、管理者コマンドなどに基づいて)構成するサーバ実装モジュールである。幾つかの実施形態では、分析モジュールは、ユーザフィードバックを実行スクリプト及びループライブラリメタデータと相関させるために、機械学習技術の組み合わせを使用する。
【0258】
図21は、幾つかの実施形態に従う、分析モジュール及び構成モジュールを含む例示的な音楽生成システムを示すブロック図である。幾つかの実施形態では、図21のシステムは、音楽のムード及びスタイルをユーザが直接制御することにより、潜在的に無限の音楽のストリームを生成するように構成される。図示の実施形態では、システムは、分析モジュール2110、構成モジュール2120、実行モジュール2130、及びオーディオ出力装置2140を含む。幾つかの実施形態では、分析モジュール2110は、サーバによって実装され、構成モジュール2120及び実行モジュール2130は、1つ以上のクライアント装置によって実装される。他の実施形態では、モジュール2110、2120、及び2130は、全て、クライアント装置上に実装されてもよく、又は、全て、サーバ側に実装されてもよい。
【0259】
図示の実施形態では、分析モジュール2110は、1つ以上のアーティストパック2112を記憶し、特徴抽出モジュール2114、クライアントシミュレータモジュール2116、及び深層ニューラルネットワーク2118を実装する。
【0260】
幾つかの実施形態では、特徴抽出モジュール2114は、ループオーディオを分析した後にループライブラリにループを追加する(ただし、幾つかのループは、既に生成されたメタデータと共に受信されてもよく、分析を必要としないことに留意されたい)。例えば、wav、aiff、又はFLACのようなフォーマットの生のオーディオは、楽器分類、ピッチ転写、ビートタイミング、テンポ、ファイル長、及び複数の周波数ビンにおけるオーディオ振幅のような定量可能な音楽的特性について分析され得る。また、分析モジュール2110は、例えば、アーティストによる手動タグ付け又は機械リスニングに基づいて、ループのためのより抽象的な音楽特性又はムード記述を格納することができる。例えば、ムードは、所与のループについての各カテゴリに対する値の範囲を有する複数の離散カテゴリを用いて定量化され得る。
【0261】
例えば、音符G2、Bb2、及びD2が使用され、最初のビートがファイルに6ミリ秒で始まり、テンポが122bpmであり、ファイルが6483ミリ秒長であり、ループが5つの周波数ビンにわたって0.3、0.5、0.7、0.3、及び0.2の振幅値を正規化したものであることを決定するために分析されるループAを考えてみよう。アーティストは、ループを以下のムード値を持つ「ファンクジャンル」と呼ぶことができる:
【表1】
【0262】
分析モジュール2110は、この情報をデータベースに記憶することができ、クライアントは、例えば、ループパッケージとして、情報のサブセクションをダウンロードすることができる。アーティストパック2112は、説明のために示されているが、分析モジュール2110は、種々のタイプのループパッケージを構成モジュール2120に提供することができる。
【0263】
クライアントシミュレータモジュール2116は、図示の実施形態では、様々なタイプのフィードバックを分析し、深層ニューラルネットワーク2118によってサポートされるフォーマットでフィードバック情報を提供する。図示の実施形態では、深層ニューラルネットワーク2118は、入力として、構成モジュールによって生成される実行スクリプトも受信する。幾つかの実施形態では、深層ニューラルネットワークは、これらの入力に基づいて、例えば、生成された音楽出力のタイプと所望のフィードバックとの間の相関を改善するために、構成モジュールを構成する。例えば、深層ニューラルネットワークは、構成モジュール2120を実装するクライアント装置に定期的に更新をプッシュしてもよい。深層ニューラルネットワーク2118は、説明の目的で示され、開示された実施形態において強力な機械学習性能を提供し得るが、本開示の範囲を制限することを意図するものではないことに留意されたい。種々の実施形態において、種々のタイプの機械学習技術は、単独で、又は種々の組み合わせで実施されて、同様の機能を実行することができる。機械学習モジュールは、幾つかの実施形態では、ルールセット(例えば、配置ルール又は技術)を直接実装するために使用されてもよく、又は、例えば、図示の実施形態では、深層ニューラルネットワーク2118を使用して、他のタイプのルールセットを実装するモジュールを制御するために使用されてもよいことに留意されたい。
【0264】
幾つかの実施形態では、分析モジュール2110は、所望のフィードバックと特定のパラメータの使用との間の相関を改善するために、作曲モジュール2120のための作曲パラメータを生成する。例えば、実際のユーザフィードバックは、例えば、ネガティブフィードバックを減少させる試みのために、作曲パラメータを調整するために使用され得る。
【0265】
一例として、モジュール2110が、ネガティブフィードバック(例えば、明示的な低ランキング、低ボリュームリスニング、短いリスニング時間など)と、多数の層を使用する作曲との間の相関を発見する状況を検討する。幾つかの実施形態では、モジュール2110は、より多くのトラックを追加するために使用される確率パラメータを調整することが、この問題の頻度を減少させることを決定するために、逆伝搬などの技術を使用する。例えば、モジュール2110は、確率パラメータを50%減少させると、負のフィードバックを8%減少させ、減少させることを決定し、更新されたパラメータを作曲モジュールに押すことができると予測することができる(確率パラメータは、以下で詳細に議論されるが、統計モデルのための様々なパラメータのいずれも同様に調整され得ることに留意されたい)。
【0266】
別の例として、モジュール2110が、負のフィードバックが、ユーザがムード制御を高緊張に設定することと相関することを発見する状況を考える。また、低緊張タグを有するループと高緊張を要求するユーザとの間に相関が見出されることがある。この場合、モジュール2110は、ユーザが高緊張の音楽を要求するときに、高緊張のタグを有するループを選択する確率が増加するように、パラメータを増加させることができる。従って、機械学習は、構成出力、フィードバック情報、ユーザ制御入力等を含む種々の情報に基づくことができる。
【0267】
図示の実施形態では、作曲モジュール2120は、セクションシーケンサ2122、セクションアレンジャ2124、技術実装モジュール2126、及びループ選択モジュール2128を含む。幾つかの実施形態では、作曲モジュール2120は、ループメタデータ及びユーザ制御入力(例えば、ムード制御)に基づいて、作曲のセクションを編成及び構成する。
【0268】
幾つかの実施形態では、セクションシーケンサ2122は、異なるタイプのセクションを配列する。幾つかの実施形態では、セクションシーケンサ2122は、動作中に次のタイプのセクションを連続的に出力するための有限状態機械を実装する。例えば、作曲モジュール2120は、イントロ、ビルドアップ、ドロップ、ブレークダウン、及びブリッジなどの異なるタイプのセクションを使用するように構成されてもよく、これについては、図23を参照して以下でさらに詳細に説明する。さらに、各セクションは、例えば、遷移サブセクション、メインコンテンツサブセクション、及び遷移アウトサブセクションを含む、セクション全体にわたって音楽がどのように変化するかを定義する複数のサブセクションを含むことができる。
【0269】
セクションアレンジャ2124は、幾つかの実施形態では、アレンジルールに従ってサブセクションを構成する。例えば、トラックを徐々に追加することで、1つのルールを遷移入(transition-in)に指定することができる。別のルールでは、トラックのセットの利得を徐々に増加させることで、遷移入に指定することができる。別のルールで、メロディを作成するためにボーカルループをチョップするように指定することができる。幾つかの実施形態では、トラックに付加されるループライブラリ内のループの確率は、セクション又はサブセクション内の現在位置、別のトラック上で時間的に重複するループ、及びムード変数などのユーザ入力パラメータの関数である。機能は、例えば機械学習に基づいて係数を調整することによって調整することができる。
【0270】
技術実装モジュール2120は、幾つかの実施形態では、例えば、アーティストによって指定された、又は特定のアーティストの作曲を分析することによって決定されたルールを追加することによって、セクション配置を容易にするように構成される。「技術」は、特定のアーティストがどのように技術レベルで配置ルールを実装するかを記述することができる。例えば、徐々にトラックを追加することによってトランジションインを指定する配置ルールでは、ある技術がドラム、ベース、パッド、次にボーカルの順にトラックを追加することを示す一方で、別の技術はベース、パッド、ボーカル、次にドラムの順にトラックを追加することを示すことができる。同様に、メロディを作成するためにボーカルループをチョップすることを指定する配列ルールの場合、技術は、毎秒ビートのボーカルをチョップし、次のチョップされたセクションに移動する前にループのチョップされたセクションを2回繰り返すことを示してもよい。
【0271】
図示の実施形態では、ループ選択モジュール2128は、セクションアレンジャ2124によるセクションに含めるために、配置ルール及び技術に従ってループを選択する。セクションが完了すると、対応する実行スクリプトが生成され、実行モジュール2130に送られてもよい。実行モジュール2130は、様々な粒度で実行スクリプト部分を受信してもよい。これには、例えば、一定の長さのパフォーマンスのための全体の実行スクリプト、各セクションのための実行スクリプト、各サブセクションのための実行スクリプトなどが含まれる。幾つかの実施形態では、配置ルール、技術、又はループ選択は、統計的に、例えば、異なる時間パーセントを使用する異なるアプローチで実施される。
【0272】
図示の実施形態では、実行モジュール2130は、フィルタモジュール2131、効果モジュール2132、ミックスモジュール2133、マスタモジュール2134、及び、実行モジュール2135を含む。幾つかの実施形態では、これらのモジュールは、実行スクリプトを処理し、音声出力装置2140によってサポートされるフォーマットで音楽データを生成する。実行スクリプトは、再生されるループ、再生されるべき時、モジュール2132によって適用されるべきエフェクト(例えば、トラックごと又はサブセクションごと)、モジュール2131によって適用されるべきフィルタなどを指定することができる。
【0273】
例えば、実行スクリプトは、特定のトラックに1000~20000Hzの低域通過フィルタランプを適用するように指定することができる。別の例として、実行スクリプトは、特定のトラックに0.2ウェット(wet)設定で残響を適用するように指定することができる(5000~15000ミリ秒)。
【0274】
幾つかの実施形態では、ミックスモジュール2133は、結合されるトラックに対して自動レベル制御を実行するように構成される。幾つかの実施形態では、ミックスモジュール2133は、結合されたトラックの周波数領域分析を使用して、過剰又は過少のエネルギを有する周波数を測定し、異なる周波数帯のトラックに利得を適用して、ミックスも行う。幾つかの実施形態では、マスタモジュール2134は、マルチバンド圧縮、等化(EQ)、又は制限手順を実行して、実行モジュール2135による最終的なフォーマッティングのためのデータを生成するように構成される。図21の実施形態は、ユーザの入力又は他のフィードバック情報に従って様々な出力音楽コンテンツを自動的に生成することができ、一方、機械学習技術は、経時的にユーザの体験を改善することができる。
【0275】
図22は、幾つかの実施形態による、音楽コンテンツの増強セクションの例を示す図である。図21のシステムは、配置ルール及び技術を適用することによって、そのようなセクションを構成することができる。図示された例では、ビルドアップセクションは、ボーカル、パッド、ドラム、バス、及びホワイトノイズのための3つのサブセクション及び別々のトラックを含む。
【0276】
図示した例では、サブセクションの遷移にはドラムループAが含まれており、これもメインコンテンツサブセクションで繰り返されている。サブセクションの遷移は、ベースループAも含む。図示のように、セクションの利得は低くなり、セクション全体を通して直線的に増加する(ただし、非直線的な増減が考えられる)。図示の例では、主なコンテンツ及びトランジションアウトのサブセクションには、様々なボーカル、パッド、ドラム、及びベースループが含まれる。上述したように、セクションを自動的にシーケンシングし、セクションを配列し、そして実装するための開示された技術は、種々のユーザが調節可能なパラメータに基づいて、出力音楽コンテンツのほぼ無限のストリームを生成することができる。
【0277】
幾つかの実施形態において、コンピュータシステムは、図22と同様のインタフェースを表示し、アーティストがセクションを構成するために使用される技術を指定することを可能にする。例えば、アーティストは、図22に示すような構造を作成し、これを構文解析して構成モジュールのコードにすることができる。
【0278】
図23は、幾つかの実施形態による、音楽コンテンツのセクションを配置するための例示的な技術を示す図である。図示の実施形態では、生成されたストリーム2310は、各々が開始サブセクション2322、開発サブセクション2324、及び移行サブセクション2326を含む複数のセクション2320を含む。図示の例では、各セクション/サブセクションの複数のタイプが、点線で結ばれた表に示されている。図示された実施形態では、円形要素は、ツールを配置する例であり、これは、以下で議論されるような特定の技術を用いてさらに実施され得る。示されるように、種々の作曲決定は、統計的パーセンテージに従って疑似ランダムに実行され得る。例えば、サブセクションのタイプ、特定のタイプもしくはサブセクションのためのアレンジツール、又はアレンジツールを実装するために使用される技術は、統計的に決定され得る。
【0279】
図示の例では、所与のセクション2320は、イントロ、ビルドアップ、ドロップ、ブレークダウン、及びブリッジの5つのタイプのうちの1つであり、各々、セクション全体の強度を制御する異なる機能を有する。この例では、状態サブセクションは、低速ビルド、突然シフト、又は最小限の3つのタイプのうちの1つであり、各々のタイプが異なる。この例の開発サブセクションは、削減(reduce)、変換(transform)、補強(augment)の3つのタイプのいずれかである。この例では、トランジションサブセクションは、崩壊(collapse)、ランプ(ramp)、ヒント(hint)の3つのタイプのいずれかである。異なるタイプのセクション及びサブセクションは、例えば、ルールに基づいて選択されてもよく、又は疑似ランダムに選択されてもよい。
【0280】
図示の例では、異なるサブセクションタイプの振る舞いは、1つ以上の配置ツールを使用して実装される。スロービルドの場合、この例では、低域通過フィルタが適用される時間の40%、及び80%の時間レイヤが追加される。変換進展サブセクションでは、この例では、時間ループの25%がチョップされる。ワンショット、ドロップアウトビート、残響の適用、パッドの追加、テーマの追加、レイヤの削除、ホワイトノイズなど、様々な追加の配置ツールが表示される。これらの実施例は、説明の目的で含まれており、本開示の範囲を制限することを意図するものではない。さらに、説明を容易にするために、これらの例は、完全ではない場合がある(例えば、実際の配置は、典型的には、はるかに多数の配置ルールを含むことがある)。
【0281】
幾つかの実施形態において、1つ以上のアレンジツールは、特定の技術(アーティストの内容の分析に基づいて指定又は決定されたアーティストであってもよい)を用いて実施されてもよい。例えば、ワンショットは、サウンドエフェクト又はボーカルを使用して実施されてもよく、ループチョッピングは、スタッタ又は半分チョッピング技術を使用して実施されてもよく、レイヤ除去は、ボーカルの合成又は除去によって実施されてもよく、ホワイトノイズは、ランプ又はパルス機能を使用して実施されてもよい、などである。幾つかの実施形態において、所与の配列ツールに対して選択される特定の技術は、統計的機能に従って選択されてもよい(例えば、レイヤ除去の30%は、合成物を除去してもよく、所与のアーティストのためにボーカルを除去してもよい時間の70%は除去してもよい)。上述のように、アレンジルール又は技術は、例えば機械学習を用いて既存の作曲を分析することによって自動的に決定され得る。
【0282】
方法例
図24は、幾つかの実施形態に係る台帳を使用するためのフローチャート方法である。図24に示す方法は、特に、本明細書に開示されているコンピュータ回路、システム、装置、素子、又は構成要素のいずれかと共に使用することができる。様々な実施形態では、図示されている方法要素の幾つかは、図示されているものとは異なる順序で同時に実施することができ、又は省略することもできる。追加の方法要素もまた、所望に応じて実行され得る。
【0283】
図示の実施形態では、2410において、演算装置は、音楽コンテンツミックスの再生の特徴を示す再生データを決定する。ミックスは、複数のオーディオトラックの決定された組み合わせを含んでもよい(トラックの組み合わせは、リアルタイムで決定されてもよく、例えば、コンテンツの連続したストリームである音楽コンテンツミックスの現在の部分の出力の直前に決定されてもよいことに留意されたい)。この決定は、コンテンツミックスの構成に基づいて(例えば、サーバ又は携帯電話のような再生装置によって)、又はどのオーディオファイルをミックスに含めるかを決定する別の装置から受信してもよい。再生データは、記憶されてもよく(例えば、オフラインモードで)、暗号化されてもよい。再生データは、定期的に、又は特定のイベント(例えば、サーバへの接続性の回復)に応じて報告されてもよい。
【0284】
図示の実施形態では、演算装置は、電子ブロックチェーン台帳データ構造において、音楽コンテンツミックス内の複数のオーディオトラックのうちの1つ以上についての個々の再生データを指定する情報を記録する。図示の実施形態では、個々のオーディオトラックに対する個々の再生データを指定する情報は、個々のオーディオトラックに対する使用データと、個々のオーディオトラックに関連する署名情報とを含む。
【0285】
ある態様において、特徴情報は、1つ以上の実体に対する識別子である。例えば、署名情報は、ストリング又はユニーク識別子であってもよい。他の実施形態では、署名情報は、他の者が実体を識別することを回避するために、暗号化又は他の方法で不明瞭化されてもよい。幾つかの実施形態では、使用データは、音楽コンテンツミックスに対して演奏される時間又は音楽コンテンツミックスに対して演奏される回数のうちの少なくとも1つを含む。
【0286】
幾つかの実施形態では、音楽コンテンツミックス内の個々のオーディオトラックを識別するデータは、1つ以上の個々のオーディオトラックを含むことに関連して実行されるべき動作をも示すデータストアから検索される。これらの実施形態では、記録は、示された動作の性能の証明の指標を記録することを含むことができる。
【0287】
幾つかの実施形態では、システムは、電子ブロックチェーン台帳に記録された個々の再生データを特定する情報に基づいて、複数のオーディオトラックに関連する複数のエンティティに対する報酬を決定する。
【0288】
幾つかの実施形態では、システムは、音楽コンテンツミックスにそのオリジナルの音楽形式で含まれていない第1の個々のオーディオトラックの使用データを決定する。例えば、オーディオトラックを変更し、新しいオーディオトラックを生成するために使用し、この変更又は使用を反映するように使用データを調整することができる。幾つかの実施形態では、システムは、少なくとも2つの複数のオーディオトラックにおけるオーディオのベクトル表現の間の補間に基づいて新しいオーディオトラックを生成し、使用データは、第1の個々のオーディオトラックのベクトル表現と新しいオーディオトラックのベクトル表現との間の距離に基づいて決定される。幾つかの実施態様において、使用データは、複数のオーディオトラックのうちの少なくとも2つにおける補間されたベクトル表現及びベクトルからのユークリッド距離の比に基づく。
【0289】
図25は、幾つかの実施態様による、オーディオファイルを結合するために画像表現を使用する方法のフロー図である。図25に示す方法は、特に、本明細書に開示されているコンピュータ回路、システム、装置、素子、又は構成要素のいずれかと共に使用することができる。様々な実施形態では、図示されている方法要素の幾つかは、図示されているものとは異なる順序で同時に実施することができ、又は省略することもできる。追加の方法要素もまた、所望に応じて実行され得る。
【0290】
図示の実施形態では、演算装置は、特定のオーディオファイルに対する画像表現が、特定のオーディオファイルにおけるデータ及び特定のオーディオファイルのMIDI表現に基づいて生成される複数のオーディオファイルの複数の画像表現を生成する(2510)。幾つかの実施態様において、画像表現におけるピクセル値は、画像表現が速度の解像度で圧縮されるオーディオファイルにおける速度を表す。
【0291】
幾つかの実施態様において、画像表現は、オーディオファイルの二次元表現である。幾つかの実施態様において、ピッチは、時間が2次元表現の列によって表され、2次元表現のピクセル値が速度を表す2次元表現の行によって表される。幾つかの実施態様において、ピッチは、時間が2次元表現の列によって表され、2次元表現のピクセル値が速度を表す2次元表現の行によって表される。幾つかの実施形態では、ピッチ軸は、8オクターブの範囲で2組のオクターブにバンディングされ、ピクセルの最初の12行は、ピクセルのピクセル値を決定する第1の4オクターブを表し、ピクセルの第2の12行は、ピクセルの第2の4オクターブを表し、ピクセルのピクセル値を決定する第2の4オクターブは、第2の4オクターブのうちの1つを表す。幾つかの実施形態では、時間軸に沿った奇数ピクセル値は、音符の開始を表し、時間軸に沿った偶数ピクセル値は、音符の継続を表す。幾つかの実施形態では、各ピクセルは、時間次元におけるビートの一部を表す。
【0292】
図示の実施形態では、演算装置は、複数の画像表現に基づいて複数の音声ファイルを選択する(2520)。
【0293】
図示の実施形態では、演算装置は、複数の音楽ファイルを組み合わせて出力音楽コンテンツを生成する(2530)。
【0294】
幾つかの実施形態では、複数の画像表現に基づいて複数の音声ファイルを選択するために、1つ以上の構成ルールが適用される。幾つかの実施態様に於いて、1つ以上の作曲ルールを適用することは、第1の閾値を超える画像表現におけるピクセル値を除去すること、及び第2の閾値を下回る画像表現におけるピクセル値を除去することを含む。
【0295】
幾つかの実施形態では、1つ以上の機械学習アルゴリズムが、オーディオファイルの複数のものを選択して結合し、出力音楽コンテンツを生成するために画像表現に適用される。幾つかの実施態様において、調和及びリズムコヒーレンスは、出力音楽コンテンツにおいてテストされる。
【0296】
幾つかの実施態様において、単一の画像表現が複数の画像表現から生成され、テクスチャ特徴の説明が、複数のオーディオファイルからテクスチャ特徴が抽出される単一の画像表現に付加される。幾つかの実施態様において、単一の画像表現は、複数のオーディオファイルと共に記憶される。幾つかの実施態様において、単一画像表現に1つ以上の作曲ルールを適用することによって、複数の音声ファイルを選択する。
【0297】
図26は、幾つかの実施形態による、ユーザにより生成された制御要素を実施する方法のフロー図である。図26に示す方法は、特に、本明細書に開示されているコンピュータ回路、システム、装置、素子、又は構成要素のいずれかと共に使用することができる。様々な実施形態では、図示されている方法要素の幾つかは、図示されているものとは異なる順序で同時に実施することができ、又は省略することもできる。追加の方法要素もまた、所望に応じて実行され得る。
【0298】
図示の実施形態では、2610において、演算装置は複数のオーディオファイルにアクセスする。幾つかの実施形態では、オーディオファイルは、コンピュータシステムのメモリからアクセスされ、ユーザは、アクセスされたオーディオファイルに対する権利を有する。
【0299】
図示の実施形態では、2620において、少なくとも1つのトレーニングされた機械学習アルゴリズムを使用して、2つ以上のオーディオファイルからの音楽コンテンツを結合することによって、演算装置が出力音楽コンテンツを生成する。幾つかの実施形態では、音楽コンテンツの結合は、2つ以上のオーディオファイル内の音楽コンテンツに基づいて、少なくとも1つのトレーニングされた機械学習アルゴリズムによって決定される。幾つかの実施形態では、少なくとも1つのトレーニングされた機械学習アルゴリズムは、2つ以上のオーディオファイル内の音楽コンテンツに基づいて、2つ以上のオーディオファイルから順次音楽コンテンツを選択することによって、音楽コンテンツを結合する。
【0300】
幾つかの実施形態では、少なくとも1つのトレーニングされた機械学習アルゴリズムは、指定された時間まで再生された音楽コンテンツのメタデータに基づいて、指定された時間後に来るビートに対する音楽コンテンツを選択するようにトレーニングされている。幾つかの実施形態では、少なくとも1つのトレーニングされた機械学習アルゴリズムは、制御要素のレベルに基づいて、指定時間後に来るビートに対する音楽コンテンツを選択するようにさらにトレーニングされている。
【0301】
図示の実施形態では、演算装置は、生成された出力音楽コンテンツにおけるユーザ指定パラメータの変化のためにユーザによって生成された制御要素を、ユーザインタフェース上で実装し、生成された出力音楽コンテンツにおける1つ以上のオーディオパラメータのレベルは、制御要素のレベルに基づいて決定され、1つ以上のオーディオパラメータのレベルと制御要素のレベルとの間の関係は、少なくとも1つの音楽再生セッション中のユーザ入力に基づいて決定される。幾つかの実施形態において、ユーザ指定パラメータのレベルは、1つ以上の環境条件に基づいて変化する。
【0302】
幾つかの実施形態では、1つ以上のオーディオパラメータのレベルと制御要素のレベルとの間の関係は、少なくとも1つの音楽再生セッション中に複数のオーディオトラックを再生すること、複数のオーディオトラックが変化するオーディオパラメータを有すること、オーディオトラックの各々について、ユーザが選択した前記オーディオトラック内のパラメータのレベルを指定する入力を受信すること、前記オーディオトラックの各々について、前記オーディオトラック内の1つ以上のオーディオパラメータのレベルを評価すること、前記ユーザが選択したパラメータの各レベルと前記1つ以上のオーディオパラメータの各レベルとの間の相関に基づいて、前記1つ以上のオーディオパラメータのレベルと前記制御要素のレベルとの間の関係を決定することによって決定される。
【0303】
幾つかの実施形態では、1つ以上のオーディオパラメータのレベルと制御要素のレベルとの間の関係は、1つ以上の機械学習アルゴリズムを使用して決定される。幾つかの実施形態では、1つ以上のオーディオパラメータのレベルと制御要素のレベルとの関係は、生成された出力音楽コンテンツの再生中の制御要素のレベルのユーザ変動に基づいて改善される。幾つかの実施形態では、オーディオトラック内の1つ以上のオーディオパラメータのレベルは、オーディオトラックからのメタデータを使用して評価される。幾つかの実施形態では、1つ以上のオーディオパラメータのレベルとユーザ指定パラメータのレベルとの間の関係は、1つ以上の追加の音楽再生セッション中の追加のユーザ入力にさらに基づいている。
【0304】
幾つかの実施形態では、演算装置は、生成された出力音楽コンテンツ内の追加のユーザ指定パラメータを変化させるために、ユーザインタフェース上にユーザによって生成された少なくとも1つの追加の制御要素を実装する。ここで、追加のユーザ指定パラメータは、ユーザ指定パラメータのサブパラメータである。幾つかの実施形態では、生成された出力音楽コンテンツは、制御要素のレベルのユーザ調整に基づいて変更される。幾つかの実施形態では、フィードバック制御要素は、ユーザインタフェース上に実装され、フィードバック制御要素は、ユーザが再生中に生成された出力音楽コンテンツに対して正又は負のフィードバックを提供することを可能にする。幾つかの実施形態では、少なくとも1つのトレーニングされたマシンアルゴリズムは、再生中に受信されたフィードバックに基づいて、後続の生成された出力音楽コンテンツの生成を変更する。
【0305】
図27は、幾つかの実施形態に従った、音声パラメータを変更することによって音楽コンテンツを生成する方法のフロー図である。図27に示す方法は、特に、本明細書に開示されているコンピュータ回路、システム、装置、素子、又は構成要素のいずれかと共に使用することができる。様々な実施形態では、図示されている方法要素の幾つかは、図示されているものとは異なる順序で同時に実施することができ、又は省略することもできる。追加の方法要素もまた、所望に応じて実行され得る。
【0306】
図示の実施形態では、2710において、演算装置は、一組の音楽コンテンツにアクセスする。幾つかの実施態様において。
【0307】
図示の実施形態では、演算装置は、音楽コンテンツのオーディオ信号の第1グラフを生成し、第1グラフは、時間に対するオーディオパラメータのグラフである。
【0308】
図示の実施形態では、演算装置は、音楽コンテンツのオーディオ信号の第2グラフを生成し、第2グラフは、ビートに対するオーディオパラメータの信号グラフである。幾つかの実施形態では、音声信号の第2グラフは、音声信号の第1グラフと同様の構造を有する。
【0309】
図示の実施形態では、演算装置は、再生音楽コンテンツ内のオーディオパラメータを変更することによって、再生音楽コンテンツから新しい音楽コンテンツを生成し、ここで、オーディオパラメータは、第1グラフと第2グラフの組み合わせに基づいて変更される。
【0310】
幾つかの実施形態では、第1グラフ及び第2グラフのオーディオパラメータは、オーディオ信号のプロパティの変化を決定するグラフのノードによって定義される。幾つかの実施態様において、新しい音楽コンテンツを生成するステップは、再生音楽コンテンツを受信するステップと、再生音楽コンテンツ内のオーディオ信号に対応する第1グラフ内の第1ノードを決定するステップと、第1ノードに対応する第2グラフ内の第2ノードを決定するステップと、第2ノードに基づいて1つ以上の特定のオーディオパラメータを決定するステップと、特定のオーディオパラメータを変更することによって、再生音楽コンテンツ内のオーディオ信号の1つ以上のプロパティを変更するステップとを含む。幾つかの実施形態では、1つ以上の追加の特定されたオーディオパラメータが、第1ノードに基づいて決定され、再生音楽コンテンツ内の追加のオーディオ信号の1つ以上のプロパティが、追加の特定されたオーディオパラメータを変更することによって変更される。
【0311】
幾つかの実施形態では、1つ以上オーディオパラメータを決定するステップは、第2グラフ内の第2ノードの位置に基づいて、オーディオパラメータを実現するために第2グラフの一部を決定するステップと、第2グラフの決定された部分からオーディオパラメータを1つ以上オーディオ指定パラメータとして選択するステップとを含む。幾つかの実施形態では、1つ以上の特定されたオーディオパラメータを変更することによって、第2グラフの決定された部分に対応する再生音楽コンテンツの部分が変更される。幾つかの実施形態では、再生音楽コンテンツにおけるオーディオ信号の変更されたプロパティは、信号振幅、信号周波数、又はそれらの組み合わせを含む。
【0312】
幾つかの実施形態では、1つ以上の自動化が音声パラメータに適用され、少なくとも1つの自動化のうちの少なくとも1つは、少なくとも1つの音声パラメータの予めプログラムされた時間的操作である。幾つかの実施形態では、少なくとも1つの変調のうちの少なくとも1つが少なくとも1つのオートメーションの上で少なくとも1つのオーディオパラメータを乗算的に変更する1つ以上の変調が、オーディオパラメータに適用される。
【0313】
以下の番号付けされた項目は、本願明細書に開示された種々の非限定的な実施形態を説明する。
セットA
(A1)
方法であって、
コンピュータシステムによって、複数のオーディオファイルの複数の画像表現を生成するステップであって、特定のオーディオファイルの画像表現が、前記特定のオーディオファイル内のデータ及び前記特定のオーディオファイルのMIDI表現に基づき生成される、ステップと、
前記複数の画像表現に基づき、前記オーディオファイルのうちの複数のオーディオファイルを選択するステップと、
前記オーディオファイルのうちの前記複数のオーディオファイルを組み合わせて出力音楽コンテンツを生成するステップと、
を含む方法。
(A2)
前記画像表現のピクセル値は、前記オーディオファイルの速度を表し、前記画像表現は、速度の解像度で圧縮される、セットA内の前述の項のいずれかの方法。
(A3)
前記画像表現が前記オーディオファイルの2次元表現である、セットA内の前述の項のいずれかの方法。
(A4)
ピッチは、前記2次元表現の行によって表され、時間は、前記2次元表現の列によって表され、前記2次元表現のピクセル値は、速度を表す、セットA内の前述の項のいずれかの方法。
(A5)
前記2次元表現は、幅32ピクセル×高さ24ピクセルであり、各ピクセルは、時間次元におけるビートの小部分を表す、セットA内の前述の項のいずれかの方法。
(A6)
ピッチ軸は、8オクターブの範囲で2個のオクターブセットにバンディングされ、ピクセルの最初の12行は、最初の4オクターブのうちのどれが表されるかを決定するピクセルのピクセル値を有する前記最初の4オクターブを表し、ピクセルの第2の12行は、第2の4オクターブのうちのどれが表されるかを決定するピクセルのピクセル値を有する前記第2の4オクターブを表す、セットA内の前述の項のいずれかの方法。
(A7)
時間軸に沿った奇数ピクセル値は、音符の開始を表し、前記時間軸に沿った偶数ピクセル値は、音符の継続を表す、セットA内の前述の項のいずれかの方法。
(A8)
前記複数の画像表現に基づき、前記オーディオファイルの複数のオーディオファイルを選択するために任意の前を設定つ以上の作曲ルールを適用するステップ、を更に含むセットA内の前述の項のいずれかの方法。
(A9)
1つ以上の作曲ルールを適用するステップは、第1の閾値を超える画像表現におけるピクセル値を除去すること、及び第2の閾値を下回る画像表現におけるピクセル値を除去することを含む、セットA内の前述の項のいずれかの方法。
(A10)
前記オーディオファイルのうちの前記複数のオーディオファイルを選択して結合し、前記出力音楽コンテンツを生成するために任意の前を設定つ以上の機械学習アルゴリズムを前記画像表現に適用するステップ、を更に含むセットA内の前述の項のいずれかの方法。
(A11)
前記出力音楽コンテンツにおけるハーモニ及びリズムコヒーレンスをテストするステップ、を更に含むセットA内の前述の項のいずれかの方法。
(A12)
前記複数の画像表現から単一の画像表現を生成するステップと、
前記複数のオーディオファイルから1つ以上のテクスチャ特徴を抽出するステップと、
前記抽出されたテクスチャ特徴の説明を前記単一の画像表現に追加するステップと、
を更に含むセットA内の前述の項のいずれかの方法。
(A13)
格納された命令を有する非一時的コンピュータ可読媒体であって、セットA内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを含む動作を実行するために、コンピューティング装置によって実行可能である、非一時的コンピュータ可読媒体。
(A14)
機器であって、
1つ以上のプロセッサと、
プログラム命令を格納された1つ以上のメモリと、
を含み、前記プログラム命令は、セットA内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを実行するために、前記1つ以上のプロセッサによって実行可能である、機器。
セットB
(B1)
方法であって、
コンピュータシステムにより、音楽コンテンツのセットにアクセスするステップと、
前記コンピュータシステムにより、前記音楽コンテンツのオーディオ信号の第1グラフを生成するステップであって、前記第1グラフは、時間に対するオーディオパラメータのグラフである、ステップと、
前記コンピュータシステムにより、前記音楽コンテンツの前記オーディオ信号の第2グラフを生成するステップであって、前記第2グラフは、ビートに対する前記オーディオパラメータの信号グラフである、ステップと、
前記コンピュータシステムにより、前記再生音楽コンテンツの中の前記オーディオパラメータを変更することによって、再生音楽コンテンツから新しい音楽コンテンツを生成するステップであって、前記オーディオパラメータは、前記第1グラフと前記第2グラフの組み合わせに基づき変更される、ステップと、
を含む方法。
(B2)
前記オーディオ信号の前記第2グラフが、前記オーディオ信号の前記第1グラフと同様の構造を有する、セットB内の前述の項のいずれかの方法。
(B3)
前記第1グラフ及び前記第2グラフ内の前記オーディオパラメータは、前記オーディオ信号の特性の変化を決定するグラフ内のノードによって定義される、セットB内の前述の項のいずれかの方法。
(B4)
新しい音楽コンテンツを生成するステップは、
再生音楽コンテンツを受信するステップと、再生音楽コンテンツ内のオーディオ信号に対応する第1グラフ内の第1ノードを決定するステップと、
第1ノードに対応する第2グラフ内の第2ノードを決定するステップと、第2ノードに基づいて1つ以上の特定のオーディオパラメータを決定するステップと、
特定のオーディオパラメータを変更することによって、再生音楽コンテンツ内のオーディオ信号の1つ以上のプロパティを変更するステップと、
を含む、セットB内の前述の項のいずれかの方法。
(B5)
前記第1ノードに基づき、1つ以上の追加の特定されたオーディオパラメータを決定するステップと、
前記追加の特定されたオーディオパラメータを修正することによって、前記再生音楽コンテンツにおける追加のオーディオ信号の1つ以上のプロパティを変更するステップと、
を更に含む、セットB内の前述の項のいずれかに記載の方法。
(B6)
前記1つ以上のオーディオパラメータを決定するステップは、
前記第2グラフ内の前記第2ノードの位置に基づき、前記オーディオパラメータを実現する前記第2グラフの一部分を決定するステップと、
前記第2グラフの前記決定された部分から前記オーディオパラメータを前記1つ以上オーディオ指定パラメータとして選択するステップと、
を含む、セットB内の前述の項のいずれかに記載の方法。
(B7)
前記1つ以上の特定されたオーディオパラメータを変更するステップは、前記第2グラフの決定された部分に対応する再生音楽コンテンツの部分を変更する、セットB内の前述の項のいずれかに記載の方法。
(B8)
前記再生音楽コンテンツにおける前記オーディオ信号の変更されるプロパティは、信号振幅、信号周波数、又はそれらの組み合わせを含む、セットB内の前述の項のいずれかに記載の方法。
(B9)
1つ以上の自動化を前記オーディオパラメータに適用するステップであって、前記自動化の少なくとも1つは、少なくとも1つのオーディオパラメータの予めプログラムされた時間的操作である、ステップ、を更に含むセットB内の前述の項のいずれかに記載の方法。
(B10)
前記オーディオパラメータに1つ以上の変調を適用するステップであって、前記変調のうちの少なくとも1つは、少なくとも1つの自動化の上に少なくとも1つのオーディオパラメータを乗算的に変更する、ステップ、を更に含むセットB内の前述の項のいずれかに記載の方法。
(B11)
前記コンピュータシステムによって、前記音楽コンテンツのセットに関連付けられた1つ以上のオブジェクトを記憶するためのヒープ割り当てメモリを提供するステップをさらに含み、前記1つ以上のオブジェクトは、前記オーディオ信号、前記第1グラフ、及び前記第2グラフのうちの少なくとも1つを含む、セットB内の前述の項のいずれかに記載の方法。
(B12)
前記1つ以上のオブジェクトを前記ヒープ割り当てメモリ内のデータ構造リストに格納するステップをさらに含み、前記データ構造リストは、前記オブジェクトのためのリンクの直列化リストを含む、セットB内の前述の項のいずれかに記載の方法。
(B13)
格納された命令を有する非一時的コンピュータ可読媒体であって、セットB内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを含む動作を実行するために、コンピューティング装置によって実行可能である、非一時的コンピュータ可読媒体。
(B14)
機器であって、
1つ以上のプロセッサと、
プログラム命令を格納された1つ以上のメモリと、
を含み、前記プログラム命令は、セットB内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを実行するために、前記1つ以上のプロセッサによって実行可能である、機器。
セットC
(C1)
方法であって、
コンピュータシステムによって複数のオーディオファイルにアクセスするステップと、
少なくとも1つのトレーニング済み機械学習アルゴリズムを用いて、2つ以上のオーディオファイルから音楽コンテンツを結合することによって出力音楽コンテンツを生成するステップと、
前記コンピュータシステムに関連するユーザインタフェース上で、前記生成された出力音楽コンテンツにおけるユーザ指定パラメータを変化させるためにユーザによって作成された制御要素を実装するステップと
を含み、
前記生成された出力音楽コンテンツにおける1つ以上のオーディオパラメータのレベルは、前記制御要素のレベルに基づき決定され、前記1つ以上のオーディオパラメータのレベルと前記制御要素のレベルとの間の関係は、少なくとも1つの音楽再生セッション中のユーザ入力に基づく、方法。
(C2)
前記音楽コンテンツの結合は、2つ以上のオーディオファイル内の音楽コンテンツに基づいて、前記少なくとも1つのトレーニング済み機械学習アルゴリズムによって決定される、セットC内の前述の項のいずれかの方法。
(C3)
前記少なくとも1つのトレーニング済み機械学習アルゴリズムは、前記2つ以上のオーディオファイル内の前記音楽コンテンツに基づいて、前記2つ以上のオーディオファイルから音楽コンテンツを順次選択することによって、前記音楽コンテンツを結合する、セットC内の前述の項のいずれかの方法。
(C4)
前記少なくとも1つのトレーニング済み機械学習アルゴリズムは、指定された時間まで再生された音楽コンテンツのメタデータに基づいて、前記指定された時間後に来るビートのための音楽コンテンツを選択するようにトレーニングされている、セットC内の前述の項のいずれかの方法。
(C5)
前記少なくとも1つのトレーニング済み機械学習アルゴリズムは、前記制御要素のレベルに基づいて、前記指定時間後に来るビートのための音楽コンテンツを選択するようにさらにトレーニングされている、セットC内の前述の項のいずれかの方法。
(C6)
前記1つ以上のオーディオパラメータのレベルと前記制御要素のレベルとの間の関係は、
前記少なくとも1つの音楽再生セッション中に複数のオーディオトラックを再生し、前記複数のオーディオトラックが変化するオーディオパラメータを有し、
前記オーディオトラックの各々について、前記オーディオトラック内の前記ユーザ指定パラメータのユーザが選択したレベルを指定する入力を受信し、
前記オーディオトラックの各々について、前記オーディオトラック内の1つ以上のオーディオパラメータのレベルを評価し、
前記ユーザ指定パラメータのユーザが選択したレベルの各々と前記1つ以上のオーディオパラメータの前記評価されたレベルの各々との間の相関に基づいて、前記1つ以上のオーディオパラメータのレベルと前記制御要素のレベルとの間の関係を決定する、
ことによって決定される、セットC内の前述の項のいずれかの方法。
(C7)
前記1つ以上のオーディオパラメータのレベルと前記制御要素のレベルとの間の前記関係は、1つ以上の機械学習アルゴリズムを使用して決定される、セットC内の前述の項のいずれかの方法。
(C8)
前記1つ以上のオーディオパラメータのレベルと前記制御要素のレベルとの前記関係を、前記生成された出力音楽コンテンツの再生中の前記制御要素のレベルのユーザ変動に基づいて微調整するステップ、を更に含むセットC内の前述の項のいずれかの方法。
(C9)
前記オーディオトラック内の前記1つ以上のオーディオパラメータのレベルは、前記オーディオトラックからのメタデータを使用して評価される、セットC内の前述の項のいずれかの方法。
(C10)
前記コンピュータシステムによって、1つ以上の環境条件に基づき、前記ユーザ指定パラメータのレベルを変化させるステップ、を更に含むセットC内の前述の項のいずれかの方法。
(C11)
前記コンピュータシステムに関連付けられた前記ユーザインタフェース上に、前記生成された出力音楽コンテンツ内の追加のユーザ指定パラメータの変動のために前記ユーザによって生成された少なくとも1つの追加制御要素を実装するステップを更に含み、前記追加ユーザ指定パラメータは、前記ユーザ指定パラメータのサブパラメータである、セットC内の前述の項のいずれかの方法。
(C12)
前記コンピュータシステムのメモリからの前記オーディオファイルにアクセスするステップを更に含み、前記ユーザは、前記アクセスされたオーディオファイルに対する権利を有する、セットC内の前述の項のいずれかの方法。
(C13)
格納された命令を有する非一時的コンピュータ可読媒体であって、セットC内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを含む動作を実行するために、コンピューティング装置によって実行可能である、非一時的コンピュータ可読媒体。
(C14)
機器であって、
1つ以上のプロセッサと、
プログラム命令を格納された1つ以上のメモリと、
を含み、前記プログラム命令は、セットC内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを実行するために、前記1つ以上のプロセッサによって実行可能である、機器。
セットD
(D1)
方法であって、
コンピュータシステムにより、音楽コンテンツミックスの再生データを決定するステップであって、前記再生データが前記音楽コンテンツミックスの再生の特徴を示し、前記音楽コンテンツミックスは、複数のオーディオトラックの決定された組み合わせを含む、ステップと、
前記コンピュータシステムにより、電子ブロックチェーン台帳データ構造に、前記音楽コンテンツミックス内の前記複数のオーディオトラックのうちの1つ以上に対する個々の再生データを指定する情報を記録するステップであって、個々のオーディオトラックに対する個々の再生データを指定する前記情報は、前記個々のオーディオトラックに対する使用データと、前記個々のオーディオトラックに関連する署名情報とを含む、ステップと、
を含む方法。
(D2)
前記使用データは、前記音楽コンテンツミックスの再生された時間又は前記音楽コンテンツミックスの再生された回数のうちの少なくとも1つを含む、セットD内の前述の項のいずれかの方法。
(D3)
前記音楽コンテンツミックスの前記再生データと、前記音楽コンテンツミックス内の個々のオーディオトラックを識別するデータとに基づき、前記個々のオーディオトラックの個々の再生データを指定する前記情報を決定するステップ、を更に含むセットD内の前述の項のいずれかの方法。
(D4)
前記音楽コンテンツミックス内の個々のオーディオトラックを識別するデータは、1つ以上の個々のオーディオトラックを含むことに関連して実行されるべき動作をも示すデータストアから検索され、前記記録は、前記示された動作の実行の証明の指示を記録することを含む、セットD内の前述の項のいずれかの方法。
(D5)
複数のオーディオトラックに関連付けられた複数のエンティティのための署名情報及び署名情報を指定するデータに基づき、前記個々のオーディオトラックに関連付けられた1つ以上のエンティティを識別するステップ、を更に含むセットD内の前述の項のいずれかの方法。
(D6)
前記電子ブロックチェーン台帳に記録された個々の再生データを特定する情報に基づき、前記複数のオーディオトラックに関連付けられた前記複数のエンティティに対する報酬を決定するステップ、を更に含むセットD内の前述の項のいずれかの方法。
(D7)
前記再生データは、前記音楽ミックスを生成するために使用される1つ以上の機械学習モジュールの使用データを含む、セットD内の前述の項のいずれかの方法。
(D8)
前記音楽コンテンツミックスの前記再生データを、少なくとも一時的に、再生装置によって格納するステップ、を更に含むセットD内の前述の項のいずれかの方法。
(D9)
前記格納された再生データが、周期的に、又はイベントに応答して、前記再生装置によって別のコンピュータシステムに通信される、D内の前述の項のいずれかの方法。
(D10)
前記再生装置によって、前記音楽コンテンツミックスの前記再生データを暗号化するステップ、を更に含むセットD内の前述の項のいずれかの方法。
(D11)
前記ブロックチェーン台帳は、公衆アクセス可能であり、不変である、セットD内の前述の項のいずれかの方法。
(D12)
元の音楽形式の前記音楽コンテンツミックスに含まれていない第1の個々のオーディオトラックの使用データを決定するステップ、を更に含むセットD内の前述の項のいずれかの方法。
(D13)
前記複数のオーディオトラックのうちの少なくとも2つにおけるオーディオのベクトル表現の間の補間に基づき、新しいオーディオトラックを生成するステップをさらに含み、
前記使用データを決定するステップは、前記第1の個々のオーディオトラックのベクトル表現と前記新しいオーディオトラックのベクトル表現との間の距離に基づく、セットD内の前述の項のいずれかの方法。
(D14)
格納された命令を有する非一時的コンピュータ可読媒体であって、セットD内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを含む動作を実行するために、コンピューティング装置によって実行可能である、非一時的コンピュータ可読媒体。
(D15)
機器であって、
1つ以上のプロセッサと、
プログラム命令を格納された1つ以上のメモリと、
を含み、前記プログラム命令は、セットD内の前述の項のいずれかの方法によって実行される動作の任意の組み合わせを実行するために、前記1つ以上のプロセッサによって実行可能である、機器。
セットE
(E1)
方法であって、
コンピューティングシステムによって、複数の異なるエンティティの複数のトラックを指定するデータを格納するステップであって、前記データは、前記複数の音楽トラックの各々のトラックに対する署名情報を含む、ステップと、
前記コンピューティングシステムによって、複数のトラックをレイヤリングして、出力音楽コンテンツを生成するステップと、
電子ブロックチェーン台帳データ構造に、前記レイヤリングに含まれるトラックを指定する情報と前記トラックの各々の署名情報とを記録するステップと、
を含む方法。
(E2)
前記ブロックチェーン台帳は、公衆アクセス可能であり、不変である、セットE内の項のいずれかの方法。
(E3)
前記署名情報と一致しないエンティティによる前記トラックのうちの1つの使用を検出するステップ、
を更に含むセットE内の項のいずれかの方法。
(E4)
方法であって、
コンピューティングシステムによって、複数の異なるエンティティに対して複数のトラックを指定するデータを格納するステップであって、前記データは、他のコンテンツにリンクするメタデータを含む、ステップと、
前記コンピューティングシステムによって、複数のトラックを選択及びレイヤリングして、出力音楽コンテンツを生成するステップと、
前記選択されたトラックの前記メタデータに基づき、前記出力音楽コンテンツに関連して出力されるコンテンツを検索するステップと、
を含む方法。
(E5)
前記他のコンテンツが視覚的広告を含む、セットE内の項のいずれかの方法。
(E6)
方法であって、
コンピューティングシステムによって、複数のトラックを指定するデータを格納するステップと、
前記コンピューティングシステムによって、複数の音楽例の出力を引き起こすステップと、
前記コンピューティングシステムによって、前記音楽例のうちの1つ以上が第1音楽パラメータを示すかどうかに関するユーザの意見を示すユーザ入力を受信するステップと、
前記受信するステップに基づき、前記ユーザのためのカスタムルール情報を格納するステップと、
前記コンピューティングシステムによって、前記第1音楽パラメータに対する調整を示すユーザ入力を受信するステップと、
前記コンピューティングシステムによって、前記カスタムルール情報に基づき、複数のトラックを選択し、レイヤリンクして、出力音楽コンテンツを生成するステップと、
を含む方法。
(E7)
前記ユーザが前記第1音楽パラメータの名前を指定する、セットE内の項のいずれかの方法。
(E8)
前記ユーザは、前記第1音楽パラメータの1つ以上の範囲に対する1つ以上の目標を指定し、前記選択するステップ及び前記レイヤリングするステップは、過去のフィードバック情報に基づく、セットE内の項のいずれかの方法。
(E9)
前記過去のフィードバック情報に基づき前記選択するステップ及び前記レイヤリングするステップが、1つ以上の目標を満たさなかったことを決定することに応答して、複数の他の音楽属性を調整し、1つ以上の目標に対する前記複数の他の音楽属性を調整することの効果を決定するステップ、を更に含むセットE内の項のいずれかの方法。
(E10)
前記目標がユーザの心拍数である、セットE内の項のいずれかの方法。
(E11)
前記選択するステップ及び前記レイヤリングするステップが、機械学習エンジンにより実行される、セットE内の項のいずれかの方法。
(E12)
前記機械学習エンジンをトレーニングするステップであって、複数のタイプのユーザ入力に基づき、教師モデルをトレーニングすることと、前記受信したユーザ入力に基づき、学生モデルをトレーニングすることとを含む、ステップを更に含むセットE内の項のいずれかの方法。
(E13)
方法であって、
コンピューティングシステムによって、複数のトラックを指定するデータを格納するステップと、
前記コンピューティングシステムによって、オーディオ装置が第1タイプの環境に位置することを決定するステップと、
前記オーディオ装置が前記第1タイプの環境の中に置かれている間、第1音楽パラメータを調整するユーザ入力を受信するステップと、
前記コンピューティングシステムによって、前記調整された第1音楽パラメータ及び前記第1タイプの環境に基づき、複数のトラックを選択し及びレイヤリングして、前記オーディオ装置を介して出力音楽コンテンツを生成するステップと、
前記コンピューティングシステムによって、前記オーディオ装置が第2タイプの環境に位置することを決定するステップと、
前記オーディオ装置が前記第2のタイプの環境に置かれている間、第1音楽パラメータを調整するユーザ入力を受信するステップと、
前記コンピューティングシステムによって、前記調整された第1音楽パラメータ及び前記第2タイプの環境に基づき、複数のトラックを選択及びレイヤリングして、前記オーディオ装置を介して音楽コンテンツを出力するステップと、
を含む方法。
(E14)
前記選択及びレイヤリングするステップは、前記オーディオ装置が前記第2タイプの環境にあるときより、前記オーディオ装置が前記第1タイプの環境にあるときの前記第1音楽パラメータに対する調整に基づき、異なる音楽属性を調整する、セットE内の項のいずれかの方法。
(E15)
方法であって、
コンピューティングシステムによって、複数のトラックを指定するデータを格納するステップと、
前記コンピューティングシステムによって、音楽コンテンツを指定するデータを格納するステップと、
前記格納された音楽コンテンツの1つ以上のパラメータを決定するステップと、
前記コンピューティングシステムによって、複数のトラックを選択及びレイヤリングして、前記格納された音楽コンテンツの1つ以上のパラメータに基づき、出力音楽コンテンツを生成するステップと、
前記出力音楽コンテンツ及び前記格納された音楽コンテンツの出力を、それらが時間的に重複するように引き起こすステップと、
を含む方法。
(E16)
方法であって、
コンピューティングシステムによって、複数のトラック及び対応するトラック属性を指定するデータを格納するステップと、
前記コンピューティングシステムによって、音楽コンテンツを指定するデータを格納するステップと、
前記記憶された音楽コンテンツの1つ以上のパラメータを決定し、前記格納された音楽コンテンツに含まれる1つ以上のトラックを決定するステップと、
前記コンピューティングシステムによって、前記格納されたトラックのうちのトラック及び前記決定されたトラックのうちのトラックを選択し、レイヤリングして、前記1つ以上のパラメータに基づき、出力音楽コンテンツを生成するステップと、
を含む方法。
(E17)
方法であって、
コンピューティングシステムによって、複数のトラックを指定するデータを格納するステップと、
前記コンピューティングシステムによって、出力音楽コンテンツを生成するために複数のトラックを選択及びレイヤリングするステップと、
を含み、
前記選択は、
最近使用されたトラックに基づき、将来の使用のためにトラックを選択するように構成されたニューラルネットワークモジュールと、
前記選択された構造に基づき、来たる出力音楽コンテンツのための構造を選択し、前記ニューラルネットワークモジュールを制約するように構成された1つ以上の階層的隠れマルコフモデルと、
の両方を使用して実行される、方法。
(E18)
前記出力音楽コンテンツに関する正又は負のユーザフィードバックに基づき、1つ以上の階層的隠れマルコフモデルをトレーニングするステップ、を更に含むセットE内の項のいずれかの方法。
(E19)
音楽コンテンツの複数の例に応答して提供されるユーザ選択に基づき、前記ニューラルネットワークモデルをトレーニングするステップ、を更に含むセットE内の項のいずれかの方法。
(E20)
前記ニューラルネットワークモジュールが、少なくとも1つのグローバルにトレーニングされた層と、特定のユーザアカウントからのフィードバックに基づき、具体的にトレーニングされた少なくとも1つの層とを含む複数の層を含む、セットE内の項のいずれかの方法。
(E21)
方法であって、
コンピューティングシステムによって、複数のトラックを指定するデータを格納するステップと、
前記コンピューティングシステムによって、複数のトラックを選択及びレイヤリングして出力音楽コンテンツを生成するステップと、
を含み、前記選択は、グローバルにトレーニングされた機械学習モジュール及びローカルにトレーニングされた機械学習モジュールの両方を使用して実行される方法。
(E22)
複数のユーザアカウントからのフィードバックを使用して、前記グローバルにトレーニングされた機械学習モジュールをトレーニングし、単一のユーザアカウントからのフィードバックに基づき、ローカルにトレーニングされた機械学習モジュールをトレーニングするステップ、を含むセットE内の項のいずれかの方法。
(E23)
前記グローバルトレーニングされた機械学習モジュールと前記ローカルトレーニングされた機械学習モジュールの両方が、音楽属性のユーザ調整に基づく出力情報を提供する、セットE内の項のいずれかの方法。
(E24)
前記グローバルトレーニングされた機械学習モジュールとローカルトレーニングされた機械学習モジュールが、ニューラルネットワークの異なる層に含まれる、セットE内の項のいずれかの方法。
(E25)
方法であって、
上位レベルの音楽作曲パラメータの値を示す第1ユーザ入力を受信するステップと、
前記上位レベルの音楽作曲パラメータの値に基づき、オーディオトラックを自動的に選択及び結合するステップであって、音楽コンテンツを出力する間に、上位レベルの音楽作曲パラメータに関連付けられた1つ以上のサブパラメータの複数の値を使用することを含む、ステップと、
前記1つ以上のサブパラメータの1つ以上の値を示す第2ユーザ入力を受信するステップと、
前記第2ユーザ入力に基づき、前記自動的に選択及び結合するステップと、
を含む方法。
(E26)
前記上位レベルの音楽作曲パラメータは、エネルギパラメータであり、前記1つ以上のサブパラメータは、テンポ、レイヤ数、ボーカルパラメータ、又は低音パラメータを含む、セットE内の項のいずれかの方法。
(E27)
方法であって、
コンピューティングシステムによってスコア情報にアクセスするステップと、
前記コンピューティングシステムによって、前記スコア情報に基づき、音楽コンテンツを合成するステップと、
前記音楽コンテンツを分析して、異なる時点における複数の周波数ビンに関する周波数情報を生成するステップと、
機械学習エンジンをトレーニングするステップであって、前記周波数情報を入力することと、前記スコア情報を前記トレーニングのためのラベルとして使用することとを含む、ステップと、
を含む方法。
(E28)
前記トレーニングされた機械学習エンジンに音楽コンテンツを入力するステップと、
前記機械学習エンジンを使用して、前記音楽コンテンツのスコア情報を生成するステップと、
をさらに含み、前記生成されたスコア情報は、異なる時点における複数の周波数ビンの周波数情報を含む、セットE内の項のいずれかの方法。
(E29)
前記異なる時点がそれらの間に一定の距離を有する、セットE内の項のいずれかの方法。
(E30)
前記異なる時点が前記音楽コンテンツのビートに対応する、セットE内の項のいずれかの方法。
(E31)
前記機械学習エンジンは、畳み込み層及び再帰層を含む、セットE内の項のいずれかの方法。
(E32)
前記周波数情報が、前記音楽コンテンツがある時点における周波数ビンにコンテンツを含んでいるかどうかのバイナリ指示を含む、セットE内の項のいずれかの方法。
(E33)
前記音楽コンテンツが複数の異なる楽器を含む、セットE内の項のいずれかの方法。
【0314】
特定の実施形態が上述されたが、これらの実施形態は、単一の実施形態のみが特定の特徴に関して記載されたとしても、本開示の範囲を限定することを意図しない。本開示で提供される特徴の例は、特に断りの無い限り、限定ではなく説明を意図している。上述の説明は、本開示の利益を享受する当業者に明らかなように、このような代替、変更、及び均等物をカバーすることを意図している。
【0315】
本開示の範囲は、本願明細書で解決される問題のうちのいずれか又は全部を軽減するか否かにかかわらず、本願明細書に開示した任意の特徴又は特徴の結合(明示的又は暗示的のいずれも)、又はそれらの任意の一般化を含む。従って、新規な請求項が、任意のこのような特徴の組み合わせに対して、本願(又は本願に基づく優先権を主張する出願)の審査中に形成され得る。特に、添付の請求項を参照して、従属請求項による特徴は、独立請求項の特徴と結合されてよく、各々の独立請求項の特徴は、添付の請求の範囲に列挙されない特定の組み合わせではなく、任意の適切な方法で結合されてよい。
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20A
図20B
図21
図22
図23
図24
図25
図26
図27
【国際調査報告】