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

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

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

特表2023-538411音楽生成器のための比較トレーニング
<>
  • 特表-音楽生成器のための比較トレーニング 図1
  • 特表-音楽生成器のための比較トレーニング 図2
  • 特表-音楽生成器のための比較トレーニング 図3
  • 特表-音楽生成器のための比較トレーニング 図4
  • 特表-音楽生成器のための比較トレーニング 図5
  • 特表-音楽生成器のための比較トレーニング 図6
  • 特表-音楽生成器のための比較トレーニング 図7
  • 特表-音楽生成器のための比較トレーニング 図8
  • 特表-音楽生成器のための比較トレーニング 図9A
  • 特表-音楽生成器のための比較トレーニング 図9B
  • 特表-音楽生成器のための比較トレーニング 図10
  • 特表-音楽生成器のための比較トレーニング 図11
  • 特表-音楽生成器のための比較トレーニング 図12
  • 特表-音楽生成器のための比較トレーニング 図13
  • 特表-音楽生成器のための比較トレーニング 図14
  • 特表-音楽生成器のための比較トレーニング 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-07
(54)【発明の名称】音楽生成器のための比較トレーニング
(51)【国際特許分類】
   G10H 1/00 20060101AFI20230831BHJP
   G10G 1/00 20060101ALI20230831BHJP
【FI】
G10H1/00 102Z
G10H1/00 Z
G10G1/00
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023512470
(86)(22)【出願日】2021-08-19
(85)【翻訳文提出日】2023-02-20
(86)【国際出願番号】 US2021046658
(87)【国際公開番号】W WO2022040410
(87)【国際公開日】2022-02-24
(31)【優先権主張番号】63/068,411
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,415
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,421
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,426
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,431
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,433
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/068,436
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.VERILOG
(71)【出願人】
【識別番号】520456941
【氏名又は名称】エーアイエムアイ インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】バラッサニアン,エドワード
(72)【発明者】
【氏名】ハッチングス,パトリック イー.
(72)【発明者】
【氏名】ギフォード,トビー
【テーマコード(参考)】
5D182
5D478
【Fターム(参考)】
5D182AD05
5D478GG01
5D478GG05
(57)【要約】
オーディオファイルのイメージ表現に基づいて新たな音楽コンテンツを自動的に生成することに関する技術を開示する。音楽生成システムは、音楽生成サブシステム及び音楽分類サブシステムを含む。音楽生成サブシステムは、音楽を生成するためのポリシーを定義する音楽パラメータに従って出力音楽コンテンツを生成し得る。分類サブシステムは、音楽が音楽生成サブシステムによって生成されるか又は専門家によって作成された音楽コンテンツであるかを分類するために用いられ得る。音楽生成サブシステムは、音楽分類サブシステムからの予測出力によって強化されたアルゴリズムを実施し得る。強化は、人間によるものにより近い音楽コンテンツを生成するために音楽パラメータを調整することを含み得る。
【特許請求の範囲】
【請求項1】
コンピュータシステム上の音楽生成器により、複数のデジタル音楽断片から出力音楽コンテンツを生成することであって、該出力音楽コンテンツは、該複数のデジタル音楽断片から生成された一連の異なる出力音楽コンテンツを含み、該音楽生成器は、解釈ルールセットに従って1つ以上の音楽生成パラメータを順次解釈することにより、前記一連の異なる出力音楽コンテンツをオーディオフォーマットで生成する、ことと、
前記音楽生成器により、生成された前記出力音楽コンテンツから決定される強化入力を受信することと、
アルゴリズムを用いて、前記強化入力に基づいて前記音楽生成器のための音楽生成パラメータを調整することであって、該音楽生成パラメータは、以前に生成された音楽生成パラメータ又はユーザが作成して音楽生成パラメータのうちの少なくとも1つを含む、ことと、
調整された前記音楽生成パラメータに基づいて、前記複数のデジタル音楽断片から新たな出力音楽コンテンツを生成することと、
を含む方法。
【請求項2】
前記コンピュータシステム上の分類器により、1つ以上のトレーニングされた分類器のセットを用いて前記出力音楽コンテンツを分類して、音楽のソースの予測を特定することをさらに含む、請求項1に記載の方法。
【請求項3】
前記強化入力は、前記分類器によって特定された予測に基づいて決定される、請求項2に記載の方法。
【請求項4】
前記予測を特定することは、前記出力音楽コンテンツが前記音楽生成器によって生成されている確率を特定することを含み、前記強化入力は該確率に対応する、請求項2に記載の方法。
【請求項5】
前記分類器により、追加の1つ以上のトレーニングされた分類器のセットを用いて、前記出力音楽コンテンツを分類して、前記出力音楽コンテンツに関連する1人以上のアーティストの予測を特定することさらに含む、請求項2に記載の方法。
【請求項6】
前記強化入力は、前記アルゴリズムへのバイナリ入力を含み、該バイナリ入力は、前記出力音楽コンテンツがリスニング閾値を満たすかどうかの判定である、請求項1に記載の方法。
【請求項7】
前記バイナリ入力を、前記出力音楽コンテンツに対する人間の入力として受信することをさらに含む、請求項6に記載の方法。
【請求項8】
前記音楽生成器における前記音楽生成パラメータは、トレーニングされた機械学習アルゴリズムによって実施される、請求項1に記載の方法。
【請求項9】
前記音楽生成器のための音楽生成パラメータを調整することは、前記音楽生成器が人間によるものにより近い出力音楽コンテンツを生成するように、前記音楽生成パラメータを調整することを含む、請求項1に記載の方法。
【請求項10】
前記音楽生成パラメータは、前記音楽断片の選択及び処理を制御するパラメータである、請求項1に記載の方法。
【請求項11】
命令が記憶された非一時的コンピュータ読み取り可能記憶媒体であって、該命令は、
音楽生成器により、複数のデジタル音楽断片から出力音楽コンテンツを生成することであって、該出力音楽コンテンツは、該複数のデジタル音楽断片から生成された一連の異なる出力音楽コンテンツを含み、該音楽生成器は、解釈ルールセットに従って1つ以上の音楽生成パラメータを順次解釈することにより、前記一連の異なる出力音楽コンテンツをオーディオフォーマットで生成する、ことと、
前記音楽生成器により、生成された前記出力音楽コンテンツから決定される強化入力を受信することと、
アルゴリズムを用いて、前記強化入力に基づいて前記音楽生成器のための音楽生成パラメータを調整することであって、該音楽生成パラメータは、以前に生成された音楽生成パラメータ又はユーザが作成した音楽生成パラメータのうちの少なくとも1つを含む、ことと、
調整された前記音楽生成パラメータに基づいて、前記複数のデジタル音楽断片から特定の長さの新たな出力音楽コンテンツを生成することと、
を含む動作を行うために、コンピュータ装置によって実行可能である、非一時的コンピュータ読み取り可能媒体。
【請求項12】
分類器により、1つ以上のトレーニングされた分類器のセットを用いて前記出力音楽コンテンツを分類して、前記出力音楽コンテンツが前記音楽生成器によって生成されているか又は人間の作曲家によって生成されているかの予測を特定することをさらに含む、請求項11に記載の非一時的コンピュータ読み取り可能媒体。
【請求項13】
前記音楽生成器のための音楽生成パラメータを調整することは、前記音楽生成器が人間による作曲により近い音楽コンテンツを生成するように、前記音楽生成パラメータを調整することを含む、請求項11に記載の非一時的コンピュータ読み取り可能媒体。
【請求項14】
前記音楽生成パラメータは、前記音楽断片の選択及び処理を制御するパラメータであり、音楽断片を処理することは、様々な音楽コントロールを前記出力音楽コンテンツに適用することを含む、請求項11に記載の非一時的コンピュータ読み取り可能媒体。
【請求項15】
前記音楽コントロールは、ゲイン、ハイパスカットオフ、ローパスカットオフ、リバーブセンドレベル、リバーブの長さ、遅延レベル、遅延時間、ベース、ビート、パッド、トップ、メロディー、バッキングメロディー、コード及びエフェクトのうちの1つ以上のオーディオ特性を制御する、請求項14に記載の非一時的コンピュータ読み取り可能媒体。
【請求項16】
前記音楽生成器のための音楽生成パラメータを調整することは、前記アルゴリズムにバイナリ入力を提供することを含み、該バイナリ入力は、前記出力音楽コンテンツがリスニング閾値を満たすかどうかの予測である、請求項11に記載の非一時的コンピュータ読み取り可能媒体。
【請求項17】
1つ以上のプロセッサであって、少なくとも1つのプロセッサは少なくとも1つのアルゴリズムを実施する音楽生成器に関連する、1つ以上のプロセッサと、
プログラム命令が記憶された1つ以上のメモリと、
を含む装置であって、
前記プログラム命令は、
前記音楽生成器により、複数のデジタル音楽断片から特定の長さの出力音楽コンテンツを生成することであって、該出力音楽コンテンツは、該複数のデジタル音楽断片から生成された一連の異なる出力音楽コンテンツを含み、該音楽生成器は、解釈ルールセットに従って1つ以上の音楽生成パラメータを順次解釈することにより、前記一連の異なる出力音楽コンテンツをオーディオフォーマットで生成する、ことと、
前記音楽生成器により、生成された前記出力音楽コンテンツから決定される強化入力を受信することと、
前記アルゴリズムを用いて、前記強化入力に基づいて前記音楽生成器のための音楽生成パラメータを調整することであって、該音楽生成パラメータは、以前に生成された音楽生成パラメータ又はユーザが作成した音楽生成パラメータのうちの少なくとも1つを含む、ことと、
調整された前記音楽生成パラメータに基づいて、前記複数のデジタル音楽断片から前記特定の長さの新たな出力音楽コンテンツを生成することと、
を行うために、前記1つ以上のプロセッサによって実行可能である、装置。
【請求項18】
少なくとも1つのプロセッサは分類器を含み、音楽コンテンツが人間の作曲家によって生成されたか又は前記音楽生成器によって生成されかを特定するために、該分類器によって追加のプログラム命令が実行可能である、請求項17に記載の装置。
【請求項19】
前記音楽生成器は、前記分類器が前記出力音楽コンテンツを分類可能な速度よりも速い速度で前記出力音楽コンテンツを生成する、請求項18に記載の装置。
【請求項20】
前記強化入力は、前記アルゴリズムへのバイナリ入力を含み、該バイナリ入力は、前記出力音楽コンテンツが人間によって決定されたリスニング閾値を満たすかどうかの判定である、請求項17に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示はオーディオエンジニアリングに関し、具体的には音楽コンテンツの生成に関する。
【背景技術】
【0002】
ストリーミング音楽サービスは、通常、インターネットを介してユーザに曲を提供する。ユーザはこれらのサービスに加入し、ウェブブラウザ又はアプリケーションを介して音楽をストリーミングし得る。このようなサービスの例としては、PANDORA、SPOTIFY、GROOVESHARK等が挙げられる。多くの場合、ユーザはストリーミングするために音楽のジャンル又は特定のアーティストを選択できる。通常、ユーザは(例えば、星評価又は好き/嫌いシステムを用いて)曲を評価でき、一部の音楽サービスは、先の評価に基づいてユーザにどの曲をストリーミングするかを合わせ得る。ストリーミングサービスを経営するためのコスト(ストリーミングされた曲のロイヤルティを支払うことを含み得る)は、ユーザのサブスクリプション料金及び/又は曲の間に再生される広告によってカバーされる。
【0003】
ライセンス契約及び特定のジャンルのために書かれた曲の数によって曲の選択が制限されることがある。ユーザは、特定のジャンルの同じ曲を聞くことに飽きる可能性がある。また、これらのサービスは、ユーザの好み、環境、行動等に合わせて音楽を合わせることがない場合がある。
【図面の簡単な説明】
【0004】
図1図1は例示の音楽生成器を示す図である。
図2図2は、一部の実施形態に係る、複数の異なるソースからの入力に基づいて出力音楽コンテンツを生成するシステムの例示の概要を示すブロック図である。
図3図3は、一部の実施形態に係る、音楽生成及び音楽コンテンツの分類をトレーニングするように構成された例示の音楽生成システムを示すブロック図である。
図4図4は、一部の実施形態に係る、例示の音楽分類サブシステムを示すブロック図である。
図5図5は、一部の実施形態に係る、音楽生成サブシステムにおける例示の音楽制御の実施を示すブロック図である。
図6図6は、一部の実施形態に係る、音楽分類サブシステムのための例示のトレーニングシステムを示すブロック図である。
図7図7は、一部の実施形態に係る、作曲サブシステム及び演奏サブシステムを備えた例示の音楽生成器を示すブロック図である。
図8図8は、一部の実施形態に係る、作曲及び演奏サブシステムのより詳細な実施形態を示すブロック図である。
図9A図9Aは、一部の実施形態に係る、グラフィカルユーザインターフェイスを示すブロック図である。
図9B図9Bは、一部の実施形態に係る、グラフィカルユーザインターフェイスを示すブロック図である。
図10図10は、一部の実施形態に係る、分析及び作曲モジュールを含む例示の音楽生成器システムを示すブロック図である。
図11図11は、一部の実施形態に係る、音楽コンテンツの例示のビルドアップセクションを示す図である。
図12図12は、一部の実施形態に係る、音楽コンテンツの選択をアレンジするための例示の技術を示す図である。
図13図13は、一部の実施形態に係る、音楽生成システムをトレーニングするための方法のフロー図である。
図14図14は、一部の実施形態に係る、例の方法を示すフロー図である。
図15図15は、一部の実施形態に係る、例の方法を示すフロー図である
【発明を実施するための形態】
【0005】
その全体が参照により本願に組み込まれている2013年8月16日に出願された米国特許出願第13/969372号(現在の米国特許第8812144号)には、1つ以上の音楽属性に基づいて音楽コンテンツを生成する技術が記載されている。米国特許出願第13/969372号の定義と、本開示の残りの部分との間で認識される矛盾に基づいて何らかの解釈がなされる限り、本開示に準拠するものとする。音楽属性は、ユーザによって入力され得るか、周囲のノイズ、照明等の環境情報に基づいて決定され得る。米国特許出願第13/969372号の開示では、保存されたループ及び/又はトラックを選択するか又は新たなループ/トラックを生成し、選択されたループ/トラックを重ねて出力音楽コンテンツを生成する技術が説明されている。
【0006】
その全体が参照により本願に組み込まれている2019年5月23日に出願された米国特許出願第16/420456号(現在の米国特許第10679596号)には、音楽コンテンツを生成する技術が記載されている。米国特許出願第16/420456号の定義と、本開示の残りの部分との間で認識される矛盾に基づいて何らかの解釈がなされる限り、本開示に準拠するものとする。音楽は、ユーザによる入力に基づいて又はコンピュータ実施方法を用いて生成され得る。米国特許出願第16/420456号の開示では、様々な音楽生成器の実施形態が説明されている。
【0007】
ここでいう「オーディオファイル」とは、音楽コンテンツのための音声情報を意味する。例えば、音声情報は、生の音声としてwav、aiff又はFLAC等の形式の音楽コンテンツを記述するデータを含み得る。音楽コンテンツのプロパティは音声情報に含まれ得る。プロパティは、例えば、楽器分類、ピッチ編曲(pitch transcription)、ビートタイミング、テンポ、ファイル長及び複数の周波数ビンにおけるオーディオ振幅等の定量化可能な音楽プロパティを含み得る。一部の実施形態では、オーディオファイルは特定の時間間隔にわたるサウンド情報を含む。様々な実施形態では、オーディオファイルはループを含む。ここで用いる「ループ」という用語は、特定の時間間隔にわたる単一の楽器の音声情報を意味する。オーディオファイルを参照して説明されている様々な技術は、単一の楽器を含むループを用いて行われることもある。オーディオファイル又はループは繰り返し再生され得る(例えば、30秒のオーディオファイルを4回連続再生して2分間の音楽コンテンツが生成され得る)が、例えば、繰り返しなしで1回だけ再生されることもある。
【0008】
本開示は、最初に、図1及び図2を参照して、例示の音楽生成モジュールと、複数のアプリケーションを持つ全体的なシステム構成とについて説明する。音楽生成システムをトレーニングする技術については、図3図6を参照して説明する。音楽生成のために技術については、図7図8を参照して説明する。図9A図9Bは例示のアプリケーションインターフェイスを示す。
【0009】
一部の実施形態では、音楽生成を改善するために強化学習がユーザ装置で実施される間に、1つ以上の分類器がサーバシステム上で(例えば、クラウドにおいて)トレーニングされる。開示の技術は、複数のシステムによって用いられるグローバル分類器モデルに基づいてカスタマイズされたユーザ音楽生成器モジュールを有利な形で可能にし、トレーニング時間及びコストを削減し、集中訓練ではあるが個人化された結果を可能にする。
【0010】
一般に、開示する音楽生成器は、オーディオファイル、メタデータ(例えば、オーディオファイルを記述する情報)及びメタデータに基づいてオーディオファイルを組み合わる技術を含む。生成器は、音楽体験のターゲット特性及びメタデータに基づいてオーディオファイルを識別するルールを用いて音楽体験を作成し得る。ルール、オーディオファイル及び/又はメタデータを追加又は変更することにより、作成可能な一式の体験を拡張するように構成され得る。調整は手動で行われ得るか(例えば、アーティストが新たなメタデータを追加する)、音楽生成器が、所与の環境内での音楽体験及び所望の目的/特性を監視するときに、ルール/オーディオファイル/メタデータを拡張し得る。例えば、音楽の目標又は特性に関するユーザのフィードバックを得るために、リスナー定義のコントロールが実施され得る。
【0011】
例示の音楽生成器の概要
図1は、一部の実施形態に係る例示の音楽生成器を示す図である。図示の実施形態では、音楽生成器モジュール160は、複数の異なるソースから様々な情報を受信し、出力音楽コンテンツ140を生成する。
【0012】
図示の実施形態では、モジュール160は、記憶されたオーディオファイル及び記憶されたオーディオファイルのための対応する属性110にアクセスし、オーディオファイルを組み合わせて出力音楽コンテンツ140を生成する。一部の実施形態では、音楽生成器モジュール160は、オーディオファイルをそれらの属性に基づいて選択し、ターゲット音楽属性130に基づいてオーディオファイルを組み合わせる。一部の実施形態では、オーディオファイルは、ターゲット音楽属性130と組み合わせて環境情報150に基づいて選択され得る。一部の実施形態では、環境情報150は、ターゲット音楽属性130を決定するために間接的に用いられる。一部の実施形態では、ターゲット音楽属性130は、例えば、所望のエネルギーレベル、ムード、複数のパラメータ等を指定することによりユーザに明示的に指定される。例えば、本明細書で説明するリスナー定義のコントロールは、ターゲット音楽属性として用いられるユーザの好みを指定するために実施され得る。ターゲット音楽属性130の例としては、例えばエネルギー、複雑性及びバラエティーが挙げられるが、より具体的な属性(例えば、記憶されたトラックの属性に対応する)も指定され得る。一般に、より高レベルのターゲット音楽属性が指定されている場合、出力音楽コンテンツを生成する前により低レベルの特定の音楽属性がシステムによって決定され得る。
【0013】
複雑性は、作曲に含まれるオーディオファイル、ループ及び/又は楽器の数を意味し得る。エネルギーは、他の属性に関連し得るか又は他の属性と直交し得る。例えば、キー又はテンポを変更することはエネルギーに影響を与え得る。しかしながら、所与のテンポ及びキーに対して、エネルギーは、楽器の種類(例えば、ハイハット又はホワイトノイズを加えることにより)、複雑性、音量等を調整することにより変更され得る。バラエティーとは、生成された音楽における経時的な変化の量を意味し得る。バラエティーは、他の静的な音楽属性のセットのために生成され得るか(例えば、所与のテンポ及びキーのために異なるトラックを選択することにより)生成され得るか又は音楽属性を経時的に変化させることにより(例えば、大きなバラエティーが望ましい場合には、テンポ及びキーをより頻繁に変化させることにより)生成され得る。一部の実施形態では、ターゲット音楽属性は、多次元空間に存在するものと考えられ、音楽生成器モジュール160は、環境変化及び/又はユーザ入力に基づいて、例えば、必要に応じて軌道修正しながらその空間をゆっくり移動し得る。
【0014】
一部の実施形態では、オーディオファイルと共に記憶された属性は、テンポ、音量、エネルギー、バラエティー、スペクトル、エンベロープ、変調、周期性、立ち上がり時間、減衰時間、ノイズ、アーティスト、楽器、テーマ等を含む1つ以上のオーディオファイルに関する情報を含む。なお、一部の実施形態では、1つ以上のオーディオファイルのセットが特定のオーディオファイルの種類(例えば、1つの楽器又は1つの器具の種類)に特有であるようにオーディオファイルが分割される。
【0015】
図示の実施形態では、モジュール160は記憶されたルールセット120にアクセスする。一部の実施形態では、記憶されたルールセット120は、ターゲット音楽属性を実現するために、オーディオファイルが同時に再生されるようにいくつのオーディオファイルを重ねるか(出力音楽の複雑性に対応し得る)、オーディオファイル又は音楽フレーズ間を移行する際にどの主キー/副キーの進行を用いるか、どの楽器を共に用いるか(例えば、互いに親和性がある楽器)についてのルールを規定する。別の言い方をすると、音楽生成器モジュール160は、ターゲット音楽属性(及び/又はターゲット環境情報)によって定義される1つ以上の宣言的ゴールを実現するために記憶されたルールセット120を用いる。一部の実施形態では、音楽生成器モジュール160は、繰り返しの出力音楽を回避するために、擬似的なランダム性を導入するように構成された1つ以上の擬似乱数発生器を含む。
【0016】
一部の実施形態では、環境情報150は、照明情報、周囲の騒音、ユーザ情報(顔の表情、体位、活動レベル、動作、皮膚の温度、特定の活動のパフォーマス、衣類の種類等)、温度情報、ある地域における購入活動、時刻、曜日、時節、存在する人の数、天候等のうちの1つ以上を含む。一部の実施形態では、音楽生成器モジュール160は環境情報を受信/処理しない。一部の実施形態では、環境情報150は、環境情報に基づいてターゲット音楽属性130を決定する別のモジュールにより受信される。ターゲット音楽属性130は、他の種類のコンテンツ、例えば、ビデオデータに基づいて導出されてもよい。一部の実施形態では、環境情報は、例えば、1つ以上の環境ゴールを実現するために、1つ以上の記憶されたルールセット120を調整するために用いられる。同様に、音楽生成器は環境情報を用いて、1つ以上のオーディオファイルのための記憶された属性を調整して、例えば、それらのオーディオファイルがとりわけ関連するターゲット音楽属性又はターゲットオーディエンス特性を示し得る。
【0017】
本明細書で用いる「モジュール」という用語は、特定の動作を行うように構成された回路又は他の回路(例えば、プロセッサ)に対して特定の動作を行うように指示する情報(例えば、プログラム命令)を記憶する物理的で非一時的なコンピュータ読み取り可能媒体を意味する。モジュールは、配線回路として又は動作を行うために1つ以上のプロセッサにより実行可能なプログラム命令が記憶されたメモリとして等複数の方法で実施され得る。ハードウェア回路は、例えば、カスタムな超大規模集積(VLSI)回路又はゲートアレイ、論理チップ、トランジスタ又は他の個別部品等の市販の半導体を含み得る。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス等のプログラマブルハードウェアデバイスにおいて実施されてもよい。モジュールは、特定の動作を行うために実行可能なプログラム命令を記憶する非一時的なコンピュータ読み取り可能媒体の任意の好適な形態であってもよい。
【0018】
本明細書で用いる「音楽コンテンツ」という表現は、音楽自体(音楽の課長表現)及び音楽を再生するために使用可能な情報の両方を意味する。そのため、(例えば、限定されないがコンパクトディスク、フラッシュドライブ等の)記憶媒体にファイルとして記録された楽曲は音楽コンテンツの一例であり、この記録されたファイル又は他の電子的表現を(例えば、スピーカを介して)出力することによって生成される音声も音楽コンテンツの一例である。
【0019】
「音楽」という用語は、楽器によって発生される音及び発声音を含むその良く理解された意味を含む。そのため、音楽は、例えば楽器演奏又は録音、カペラ演奏又は録音及び楽器並びに声の両方を含む演奏又は録音を含む。当業者であれば、「音楽」は全ての発声録音の全てを包含するものではないことを理解し得る。例えば、スピーチ、ニュースキャスト及びオーディオブックといったリズム又は韻等の音楽の属性を含まない著作物は音楽ではない。
【0020】
1つの音楽「コンテンツ」は別の音楽コンテンツから任意の好適な方法で区別することができる。例えば、第1の曲に対応するデジタルファイルは第1の音楽コンテンツを表すのに対して、第2の曲に対応するデジタルファイルは第2の音楽コンテンツを表し得る。「音楽コンテンツ」という表現は、所与の音楽作品内の特定の間隔を区別するためにも用いることができる。そのため、同じ曲の異なる部分は異なる音楽コンテンツとみなすことができる。同様に、所与の音楽作品内の異なるトラック(例えば、ピアノトラック、ギタートラック)も異なる音楽コンテンツに対応し得る。生成された音楽の潜在的に無限のストリームの文脈において、「音楽コンテンツ」という表現は、ストリームの一部分(例えば、数小節又は数分間)を表すために用いることができる。
【0021】
本開示の実施形態により生成された音楽コンテンツは、これまで生成されたことのない音楽要素の組み合わせである「新たな音楽コンテンツ」であり得る。関連する(がより拡張的な)概念である「オリジナル音楽コンテンツ」については以下に詳述する。この用語の説明を容易にするために、音楽コンテンツ生成のインスタンスに関連する「支配エンティティ(controlling entity)」の概念を説明する。「オリジナル音楽コンテンツ」という表現とは異なり、「新たな音楽コンテンツ」という表現は支配エンティティの概念を意味しない。したがって、新たな音楽コンテンツとは、いかなるエンティティ又はコンピュータシステムによってもこれまでに生成されたことのない音楽コンテンツを意味する。
【0022】
概念的に、本開示は、コンピュータ生成音楽コンテンツの特定のインスタンスを支配することとして一部の「エンティティ」に言及する。そのようなエンティティは、コンピュータ生成コンテンツに対応し得る法的権利(例えば、著作権)を(そのような権利が実際に存在する場合に限り)所有する。一実施形態では、コンピュータ実現音楽生成器を作成(例えば、様々なソフトウェアルーチンをコード化)するか又はコンピュータで実施される音楽生成の特定のインスタンスを操作(例えば、入力を供給)する個人が支配エンティティである。他の実施形態では、コンピュータ実施音楽生成器は、ソフトウェア製品、コンピュータシステム又はコンピュータ装置等の形態で法人(例えば、企業又は他の事業組織)によって作成され得る。一部の場合では、そのようなコンピュータ実施音楽生成器は多くのクライアントに展開され得る。この音楽生成器の配信に関連するライセンスの条件に応じて、支配エンティティは、様々な場合においてクリエータ、配信者又はクライアントであり得る。そのような明示的な法的合意がない場合、コンピュータ実施音楽生成器の支配エンティティは、音楽コンテンツのコンピュータ生成の特定のインスタンスを促進する(例えば、入力を供給し、それによって操作する)主体である。
【0023】
本開示の意味において、支配エンティティによる「オリジナルの音楽コンテンツ」のコンピュータ生成とは、1)支配エンティティ又は他の者のいずれによってもこれまでに生成されたことのない音楽要素の組み合わせ及び2)以前に生成されたが、支配エンティティによって最初に生成された音楽要素の組み合わせを意味する。ここでは、コンテンツタイプ1)とは、「新規の音楽コンテンツ」を意味し、「新規の音楽コンテンツ」の定義は「支配エンティティ」の概念を意味するのに対して、「新たな音楽コンテンツ」の定義はそうでないことを除いて「新たな音楽コンテンツ」の定義と同様である。他方、コンテンツタイプ2)はここでは「所有音楽コンテンツ(proprietary music content)」を意味する。なお、この文脈における「所有」という用語は、コンテンツにおけるいかなる暗黙の法的権利(そのような権利が存在し得るが)を意味するものではなく、支配エンティティによって音楽コンテンツが最初に生成されたことを示すために用いているにすぎない。したがって、支配エンティティが、支配エンティティによって以前及び元々に生成された音楽コンテンツを「再度生成」することは、本開示においては「オリジナル音楽コンテンツの生成」を構成する。特定の支配エンティティに関する「非オリジナルな音楽コンテンツ」は、その支配エンティティにとっての「オリジナル音楽コンテンツ」ではない音楽コンテンツである。
【0024】
音楽コンテンツの一部は、1つ以上の他の音楽コンテンツからの音楽コンポーネントを含み得る。このようにして音楽コンテンツを作成することは、音楽コンテンツの「サンプリング」と呼ばれ、特定の音楽作品、とりわけ特定のジャンルで一般的である。ここでは、そのような音楽コンテンツを「サンプリングされたコンポーネントを有する音楽コンテンツ」、「派生音楽コンテンツ」というか又は他の同様の用語を用いる。これに対して、サンプリングされたコンポーネントを含まない音楽コンテンツを、ここでは「サンプリングされたコンポーネントを含まない音楽コンテンツ」、「非派生音楽コンテンツ」というか又はその他の同様の用語を用いる。
【0025】
これらの用語を適用するに当たって、特定の音楽コンテンツが十分なレベルの粒度にまで下げられた場合、この音楽コンテンツは派生的である(実質的に全ての音楽コンテンツが派生的である)と主張され得る。本開示では「派生的」及び「非派生的」という用語をこの意味では用いていない。音楽コンテンツのコンピュータ生成に関して、コンピュータ生成が、支配エンティティ以外のエンティティの既存の音楽コンテンツからのコンポーネントの一部を選択する場合(例えば、コンピュータプログラムが、気アーティストの作品のオーディオファイルの特定の部分を生成される音楽コンテンツに含めるために選択する場合)、そのようなコンピュータ生成は派生的(派生的音楽コンテンツが結果として得られる)であると言われる。他方、コンピュータによる音楽コンテンツの生成がそのような既存のコンテンツのコンポーネントを利用しない場合には、コンピュータ生成は非派生的(非派生的音楽コンテンツが結果として得られる)と言われる。なお、「オリジナルの音楽コンテンツ」の一部は派生的な音楽コンテンツであり、一部は非派生的音楽コンテンツであり得る。
【0026】
なお、本開示において「派生的」という用語は、米国著作権法で用いられている「派生著作物」という用語よりも、より広い意味を持つことが意図されている。例えば、派生的な音楽コンテンツは、米国著作権法の下での派生著作物であるかもしれないし、ないかもしれない。本開示における「派生」という用語は否定的な意味を伝えることを意図するものではなく、特定の音楽コンテンツが、他の作品からのコンテンツの一部を「借用」するか否かを含意するために用いられているにすぎない。
【0027】
また、「新たな音楽コンテンツ」、「新規の音楽コンテンツ」及び「オリジナル音楽コンテンツ」という表現は、音楽要素の既存の組み合わせとはわずかに異なる(trivially different)音楽コンテンツのみを包含することを意図したものではない。例えば、既存の音楽作品のいくつかの音符を単に変更するだけでは、本開示で用いる新たな、新規の、又はオリジナルという用語の音楽コンテンツにはならない。同様に、単に既存の音楽作品のキー又はテンポを変更したり、(例えばイコライザーインターフェイスを用いて)相対強度の周波数を調整したりするだけでは、新たな、新規の又はオリジナルの音楽コンテンツは生み出されない。さらに、新たな、新規のオリジナル音楽コンテンツという用語は、オリジナルと非オリジナルなコンテンツとの間の境界線にあるような音楽コンテンツをカバーすることを意図していない。むしろ、係る用語は、支配エンティティにとって著作権の保護対象となり得る音楽コンテンツ(以下、「保護可能な」音楽コンテンツという)を含む、疑いの余地なく、明白にオリジナルな音楽コンテンツをカバーすることを意図している。さらに、本明細書で使用される「利用可能な」音楽コンテンツとは、被支配者以外のいかなる被支配者の著作権も侵害しない音楽コンテンツを意味する。新着及び/又はオリジナルの音楽コンテンツは、多くの場合、保護され、利用可能である。これは、音楽コンテンツの複製を防止すること、及び/又は音楽コンテンツにロイヤルティを支払うことにおいて利点がある。
【0028】
本明細書で説明する様々な実施形態はルールベースエンジンを用いるが、本明細書で説明するコンピュータ学習及び/又は音楽生成技術のいずれかのために、様々な他の種類のコンピュータ実施アルゴリズムが用いられ得る。しかしながら、ルールベースのアプローチは、音楽の文脈においてとりわけ効果的であり得る。
【0029】
例示の音楽システムで使用され得るアプリケーション、記憶要素及びデータの概要
音楽生成器モジュールは、音楽コンテンツを生成するために複数の異なるアプリケーション、モジュール、記憶素子等とやり取りし得る。例えば、エンドユーザは、異なる種類のコンピュータ装置(例えば、モバイルデバイス、デスクトップコンピュータ、DJ機器等)のための複数の種類のアプリケーションのうちの1つをインストールし得る。同様に、企業ユーザのために別の種類のアプリケーションが提供され得る。音楽コンテンツを生成する間にアプリケーションとやり取りすることにより、音楽生成器は、音楽生成器がターゲット音楽属性を特定するのに用い得る外部情報を受信する及び/又は音楽コンテンツを生成するために用いられる1つ以上のルールセットを更新することができる。1つ以上のアプリケーションとのやり取りに加えて、音楽生成器モジュールは、ルールセットの受信、ルールセットの更新等のために他のモジュールとやり取りし得る。最後に、音楽生成器モジュールは、1つ以上の記憶素子に記憶された1つ以上のルールセット、ループ及び/又は生成された音楽コンテンツにアクセスし得る。加えて、音楽生成器モジュールは、列挙した上記のアイテムのいずれかをローカルなものであるか又はネットワークを介してアクセスされ得る(例えば、クラウドベースの)1つ以上の記憶素子に記憶し得る。
【0030】
図2は、複数の異なるソースからの入力に基づいて出力音楽コンテンツを生成するためのシステムの例示の概要を示すブロック図である。図示の実施形態では、システム200は、ルールモジュール210、ユーザプリケーション220、ウェブアプリケーション230、エンタープライズアプリケーション240、アーティストアプリケーション250、アーティストルール生成器モジュール260、生成された音楽の記憶装置270及び外部入力280を含む。
【0031】
図示の実施形態において、ユーザプリケーション220、ウェブアプリケーション230及びエンタープライズアプリケーション240は外部入力280を受信する。一部の実施形態では、外部入力280は、環境入力、ターゲット音楽属性、ユーザ入力、センサ入力等を含む。一部の実施形態では、ユーザプリケーション220はユーザのモバイルデバイス上にインストールされ、ユーザがルールモジュール210とやり取り/通信することを可能にするグラフィカルユーザインターフェイスを含む。一部の実施形態では、ウェブアプリケーション230はユーザ装置にインストールされていないが、ユーザ装置のブラウザ内で動作するように構成され、ウェブサイトを介してアクセスされ得る。一部の実施形態では、エンタープライズアプリケーション240は、音楽生成器とやり取りするために大規模なエンティティによって用いられるアプリケーションである。一部の実施形態では、アプリケーション240は、ユーザプリケーション220及び/又はウェブアプリケーション230と組み合わせて用いられる。一部の実施形態では、アプリケーション240は、1つ以上の外部ハードウェアデバイス及び/又はセンサと通信して、周囲環境に関する情報を収集する。
【0032】
図示の実施形態では、ルールモジュール210は、ユーザプリケーション220、ウェブアプリケーション230及びエンタープライズアプリケーション240と通信して出力音楽コンテンツを生成する。一部の実施形態では、音楽生成器160はルールモジュール210に含まれる。なお、ルールモジュール210はアプリケーション220、230及び240のうちの1つに含まれてもよく又はサーバにインストールされてネットワークを介してアクセスされてもよい。一部の実施形態では、アプリケーション220、230及び240は、ルールモジュール210から生成された出力音楽コンテンツを受信し、該コンテンツを再生させる。一部の実施形態では、ルールモジュール210は、例えばターゲット音楽属性及び環境情報に関してアプリケーション220、230及び240からの入力を要求し、このデータを用いて音楽コンテンツを生成し得る。
【0033】
図示の実施形態では、記憶されたルールセット120はルールモジュール210によってアクセスされる。一部の実施形態では、ルールモジュール210は、アプリケーション220、230及び240との通信に基づいて記憶されたルールセット120を変更及び/又は更新する。一部の実施形態では、ルールモジュール210は出力音楽コンテンツを生成するために記憶されたルールセット120にアクセスする。図示の実施形態では、記憶されたルールセット120は、以下でさらに詳細に説明するアーティストルール生成器モジュール260からのルールを含み得る。
【0034】
図示の実施形態では、記憶されたルールセット120はルールモジュール210によってアクセスされる。一部の実施形態では、ルールモジュール210は、アプリケーション220、230及び240との通信に基づいて記憶されたルールセット120を変更及び/又は更新する。一部の実施形態では、ルールモジュール210は出力音楽コンテンツを生成するために記憶されたルールセット120にアクセスする。図示の実施形態では、記憶されたルールセット120は、以下でさらに詳細に説明するアーティストルール生成器モジュール260からのルールを含み得る。
【0035】
図示の実施形態では、アーティストアプリケーション250は、(例えば、同じアプリケーションの一部であるか又はクラウドベースであり得る)アーティストルール生成器モジュール260と通信する。一部の実施形態では、アーティストアプリケーション250は、例えば以前の作曲に基づいて、アーティストが特定のサウンドのためのルールセットを作成できるようにする可能。この機能については米国特許第10679596号でさらに説明されている。一部の実施形態では、アーティストルール生成器モジュール260は、アーティストルールセットをルールモジュール210が用いることができるように記憶するように構成されている。ユーザは特定のアプリケーションを介して出力音楽を生成するためにルールセットを用いる前に特定のアーティストからそれを購入し得る。特定のアーティストのためのルールセットはシグニチャーパックと呼ばれ得る。
【0036】
図示の実施形態では、記憶されたオーディオファイル及び対応する属性110は、出力音楽コンテンツを生成するためにトラックを選択し組み合わせるためにルールを適用する際にモジュール210によりアクセスされる。図示の実施形態では、ルールモジュール210は、生成された出力音楽コンテンツを記憶素子270に記憶する。
【0037】
一部の実施形態では、図2の1つ以上の要素はサーバ上で実現されてネットワークを介してアクセスされ、クラウドベースの実施と呼ぶことがある。例えば、記憶されたルールセット120、オーディオファイル/属性110及び生成された音楽270は全てクラウド上に記憶され、モジュール210によりアクセスされ得る。別の例では、モジュール210及び/又はモジュール260もクラウドで実施され得る。一部の実施形態では、生成された音楽270はクラウドに記憶され、デジタルの透かしが付される。これにより、例えば、生成された音楽のコピーの検出に加えて、カスタム音楽コンテンツを大量に生成することができる。
【0038】
一部の実施形態では、開示したモジュールのうちの1つ以上は、音楽コンテンツに加えて他の種類のコンテンツも生成するように構成されている。例えば、システムは、ターゲット音楽属性、決定された環境条件、現在使用されているルールセット等に基づいて出力ビジュアルコンテンツを生成するように構成され得る。例えば、システムは、生成されている音楽の現在の属性に基づいてデータベース又はインターネットを検索し、音楽が変化するにつれて動的に変化するとともに音楽の属性に一致する画像のコラージュを表示し得る。
【0039】
例示の機械学習アプローチ
本明細書で説明するように、図1に示す音楽生成器モジュール160は、出力音楽コンテンツ140を生成するために様々な人工知能(AI)技術(例えば、機械学習技術)を実施し得る。、様々な実施形態では、実施されるAI技術は、ディープニューラルネットワーク(DNN)と、より従来的な機械学習技術及び知識ベースシステムの組み合わせを含む。この組み合わせは、これらの技術のそれぞれの長所及び短所を、作曲及びパーソナライズシステムに固有の課題と整合させ得る。音楽コンテンツは複数のレベルの構造を有する。例えば、曲にはセクション、フレーズ、メロディー、ノート及びテクスチャを有する。一部の機械学習技術は、音楽コンテンツの高レベル及び低レベルの詳細を分析及び生成するのに有効であり得る。例えば、DNNは、低いレベルで音のテクスチャをクラリネット又はエレキギターに属するものとして分類し、高レベルで詩及びコーラスを検出するのが得意であり得る。メロディーの構築、オーケストレーション等の音楽コンテンツの詳細の中間レベルはより困難であり得る。DNNは通常、単一のモデルで幅広いスタイルをキャプチャすることに優れているため、DNNは表現範囲の広い生成ツールとして実施され得る。
【0040】
一部の実施形態では、音楽生成器モジュール160は、音楽生成器モジュールによって用いられる音楽コンテンツの基本単位として、人間が作曲したオーディオファイル(例えば、ループ)を有することにより、専門知識を利用する。例えば、専門知識の社会的文脈は、複数のレベルの構造でヒューリスティックを記録するために、リズム、メロディー及びテクスチャの選択を通じて埋め込まれ得る。DNNと構造レベルに基づく従来的な機械学習との分離とは異なり、専門知識は、音楽生成器モジュール160のトレーニング可能性にあまり強い制限を課すことなく、音楽性を高めることができる任意の領域に適用され得る。
【0041】
一部の実施形態では、音楽生成器モジュール160は、DNNを用いて、オーディオの層がどのように、音声を相互に重ねることによって垂直に、オーディオファイル又はループをシーケンスに組み合わせることによって水平に組み合わされているかのパターンを見つける。例えば、音楽生成器モジュール160は、マルチトラックオーディオ録音で用いられるループのMFCC(メル周波数ケプストラム係数)オーディオ機能でトレーニングされたLSTM(長短記憶)リカレントニューラルネットワークを実施し得る。一部の実施形態では、ネットワークは、前のビートのオーディオ機能の知識に基づいて、音楽の次のビートのループのオーディオ機能を予測し選択するようにトレーニングされている。例えば、ネットワークは、次の8ビートのループのオーディオ機能を最後の128ビートのオーディオ機能の知識に基づいて予測するように訓練され得る。そのため、ネットワークは、次のビートを予測するために低次元の特徴表現を利用するようトレーニングされている。
【0042】
特定の実施形態では、音楽生成器モジュール160は、マルチトラックオーディオのシーケンスを、強度及び複雑性のダイナミクスを有する音楽構造に組み立てるために、既知の機械学習アルゴリズムを用いる。例えば、音楽生成器モジュール160は、複数レベルの階層構造により決定される確率で状態推移を行うステートマシンのように挙動し得る、階層型隠れマルコフモデルを実施し得る。一例として、特定の種類のドロップはビルドアップセクションの後に起こる可能性が高く、そのビルドアップの最後にドラムがない場合には起こりにくい。様々な実施形態では、学習されている内容がより不透明であるDNNトレーニングとは対照的に、確率は透過的にトレーニングされ得る。
【0043】
マルコフモデルは、より大きな時間構造を扱い得るため、例が長すぎ得るため、例示のトラックを提示することによって簡単にトレーニングできないことがある。いつでも音楽についてのフィードバックを与えるために、フィードバック制御要素(ユーザインターフェイス上での親指の上下等)が用いられ得る。その後、音楽構造とフィードバックとの間の相関関係が、推移テーブル又はマルコフモデル等の作曲のために用いられる構造モデルを更新するために用いられ得る。このフィードバックは、心拍数、売上又はシステムが明確な分類を決定できるその他のメトリックの測定から直接収集されてもよい。上述した専門知識ヒューリスティックも、可能な場合には確率的になるように設計され、マルコフモデルと同じ方法でトレーニングされる。
【0044】
特定の実施形態では、トレーニングは作曲家又はDJによって行われ得る。そのようなトレーニングは、リスナートレーニングとは別のものであり得る。例えば、リスナー(一般的なユーザ等)によって行われるトレーニングは、正及び負のモデルフィードバックに基づいて、それぞれ正しい又は誤った分類を識別することに限定され得る。作曲家及びDJの場合、トレーニングは数百のタイムステップを含み、用いられるレイヤー及び音量コントロールについての詳細を含んでもよく、何が音楽コンテンツにおける変化を促しているかについて明確な詳細を示し得る。例えば、作曲家及びDJによって行われるトレーニングは、上述したDNNのグローバルトレーニングに類似のシーケンス予測トレーニングを含み得る。
【0045】
様々な実施形態では、DNNは、最も直近で再生された音楽のシーケンスが与えられたときに、DJが行った可能性があるオーディオインターフェイスとのやりとりを予測するように訓練されている。一部の実施形態では、これらのやりとりが記録され、より透明性の高い新たなヒューリスティックを開発するために用いられ得る。一部の実施形態では、DNNは、多くの以前の音楽の小節を入力として受信し、DJ又は作曲家が適用したトラックへの変更を記述する追加の特徴とともに、上述した低次元の特徴表現を利用する。例えば、DNNは、音楽の最後の32小節を入力として受信し、DJ又は作曲家が適用したトラックへの変更を記述する追加の特徴と共に、低次元の特徴表現を利用し得る。これらの変更は、特定のトラックのゲイン、適用されたフィルター、遅延等の調整を含み得る。例えば、DJは演奏の間に5分間繰り返される同じドラムループを用いり得るが、時間の経過とともにトラックのゲイン及び遅延を徐々に増屋し得る。したがって、DNNは、ループ選択に加えて、そのようなゲイン及び遅延の変化を予測するようにトレーニングされ得る。特定の楽器に対してループが再生されない(例えば、ドラムループは演奏されない)場合、その楽器のフィーチャーセットは全ゼロであってもよく、これにより、全ゼロを予測することは成功した戦略であり得ることをDNNが学習できるようになり、選択的な階層化につながり得る。
【0046】
一部の場合では、DJ又は作曲家はTRAKTOR(ネイティブインスツルメンツGmbH)等のミキサー及び装置を用いてライブ演奏を録音する。これらの録音は通常、ハイレゾリューション(例えば、4トラック録音又はMIDI)で取り込まれる。一部の実施形態では、システムは、録音を、その録音を構成するループに分解して、個々のループの音質に加えて、作曲内のループの組み合わせに関する情報を生成する。この情報を用いてDNNをトレーニングすることで、アーティストが演奏で用いた実際のループを用いることなく、アーティストの演奏に類似の音楽体験をどのように作成するかを音楽生成器モジュール160に知らせるために作曲(例えば、順序付け、階層化、ループのタイミング等)及びループの音質の両方を関連付ける機能をDNNは与える。
【0047】
比較トレーニングを備えた例示の音楽生成器
音楽コンテンツを生成するための1つの技術は、生成器と分類器(又は「弁別器」)サブシステムを組み合わせて、生成された音楽に新たなアーティファクトを生成する。1つの名前のある技術は「敵対的生成ネットワーク(又はGAN)」である。、GANは、音楽生成器が分類器を「騙し」て誤った分類がなされるように音楽生成器を訓練するアプローチと、分類器をトレーニング及び改善するための新たなデータとして正確な及び誤った分類の試みを用いる分類器とを利用する。そのような入力は、生成器が分類器をうまく騙すようになり、分類器が正しく分類するようになることを期待して提供され、両方のパフォーマンスが向上するフィードバックループが作成される。これらのサブシステムをトレーニングするプロセスは、多くの場合、バックプロパゲーションのプロセスを通じてトレーニングすることができる弁別可能な(differentiable)ネットワークとして構築されているサブシステムに依存する。
【0048】
しかしながら、複雑で非弁別可能なプロセスが音楽生成器の一部の場合、バックプロパゲーションだけではトレーニングに適していない場合があり、より低速の複雑な強化学習アプローチが必要になり得る。GANとは異なり、強化学習は機械学習を含み、システムは「エージェント」及び「環境」を含み、環境の設計はシステムの結果に大きな影響を与え得るが、トレーニングは特定の技術を通じて行われない。場合によっては、強化学習は遅く、コストがかかり、興味深い結果をもたらすが、その結果は必ずしも高品質であるとは限らない。これらの欠点を克服するために、本願の発明者らは、ヒューマンインザループ(human-in-the-loop)プロセス及び高品質のオーディオ処理の利用を通じてシステム出力の音楽性を高めるように設計された新たな音楽専用環境で強化学習のアプローチを利用するシステムを実施することにより改善が可能であることを認識した。
【0049】
図3は、一部の実施形態に係る、音楽生成及び音楽コンテンツの分類をトレーニングするように構成された例示の音楽生成器システムを示すブロック図である。例示の実施形態では、システム300は音楽生成サブシステム310及び音楽分類サブシステム320を含む。特定の実施形態では、音楽生成サブシステム310は特定のユーザ装置(パーソナルコンピュータ、ラップトップ、モバイルデバイス又はポータブルデバイス等)に位置する一方で、音楽分類サブシステムはリモート(例えば、クラウド内)に位置する。サブシステムのためのロケーションの他の実施形態も検討される。特定の実施形態では、音楽生成サブシステム310は音楽生成器モジュール160及びパラメータ生成モジュール312を含む。システム300は、音楽生成サブシステム310及び音楽分類サブシステム320とは別に位置し得るか又はこれらのサブシステムのうちの1つ内に位置し得る強化入力生成モジュール330も含む。
【0050】
様々な実施形態では、音楽生成器モジュール160は、出力音楽コンテンツ316を生成するために記憶されたオーディオファイル302にアクセスする。特定の実施形態では、音楽生成器モジュール160は、記憶されたオーディオファイル302内のデジタル音楽断片(musical fragments)から出力音楽コンテンツ316を生成する。様々な実施形態では、デジタル音楽断片は予め記録された音楽断片である。デジタル音楽断片には、例えば、予め録音されたデジタル音楽のサンプル又は一部(曲又は作曲作品の部分的なサンプル等)を含み得る。デジタル音楽断片は、予め録音された楽器のサンプリング又は他の予め録音された音楽のサンプリングも含み得る。
【0051】
特定の実施形態では、出力音楽コンテンツ316は、特定の長さ(30秒又は60秒等)の音楽ストリーム又は作曲作品である。例えば、出力音楽コンテンツ316は、複数のオーディオファイル、複数のオーディオファイルの一部又は複数の音楽断片から生成される、お特定の長さの作曲作品であり得る。様々な実施形態では、出力音楽コンテンツ316は、一連の異なる出力音楽コンテンツを含む。例えば、一連の出力音楽コンテンツは、音楽断片の任意の組み合わせから生成された、特定の長さの様々な作曲作品を含み得る。
【0052】
様々な実施形態では、出力音楽コンテンツ316における一連の出力音楽コンテンツは、システム300の強化学習のための環境を提供する。特定の実施形態では、環境を提供することは、記憶されたオーディオファイルから音楽生成器モジュール160によって取得された一連の音楽断片から生成可能な、特定の長さの任意の数の可能性のある作曲作品で一連の出力音楽コンテンツを埋めることを含む。一部の実施形態では、一連の音楽断片から生成可能な、特定の長さの全ての可能性のある作曲作品で一連の出力音楽コンテンツが埋められ得る。一連の音楽断片から多数の楽曲作品が可能であるため、多くの実施形態では、音楽生成器モジュール160によって生成される作曲作品の一部(場合によっては、ごく一部の)が、一般の人にとって音楽的であると考えられ得るものである。
【0053】
様々な実施形態では、音楽生成器モジュール160は、1つ以上の音楽生成パラメータ314に従って、記憶されたオーディオファイル302(例えば、デジタル音楽断片)から出力音楽コンテンツ316を生成する。本願で用いられる音楽生成パラメータ314は、出力音楽コンテンツ316を生成するために組み合わされる音楽断片又は他のサンプルの選択及び処理を制御するパラメータを含み得る。様々な実施形態では、音楽生成パラメータ314は、音楽を生成するためのポリシーを定義する。例えば、ポリシーは、デジタル音楽断片をどのように順番に及び同時レイヤーで組み合わせ、リバーブ、遅延、ノイズゲート、イコライゼーション、ゲイン制御及びバンドフィルターを含む音楽制作オーディオ効果(本明細書で説明する音楽コントロール等を介して)変更するかを記述し得る。そのようなプロセス及び効果は、現代の音楽制作で一般的に用いられている。一部の意図する実施形態では、(例えば、音楽コントロールを介して)何らかの音楽知識を有する人によってデジタル音楽断片のセットが監修される場合、ポリシーにおけるプロセスのランダムな適用は、大半の人が音楽であると考える(良い音楽である可能性がかなり高い)音楽コンテンツの作曲作品のベースライン出力をもたらし得る。
【0054】
様々な実施形態では、音楽生成パラメータ314は、(例えば、パラメータ生成モジュール312により)以前に生成されたパラメータ312又は(例えば、図5に示す音楽コントロール入力510を用いて)ユーザが作成したパラメータを含む。特定の実施形態では、音楽生成パラメータ314は、パラメータ生成モジュール312によって生成される。図示の実施形態では、パラメータ生成モジュール112及び音楽生成サブシステム310の強化学習は、強化入力生成モジュール330から受信される強化入力332によって提供される。特定の実施形態では、パラメータ生成モジュール312は、音楽生成パラメータ314を生成するアルゴリズム(例えば、訓練された機械学習アルゴリズム)を実施する。例えば、パラメータ生成モジュール312は、他のシステムからの入力に基づいて音楽生成パラメータ314を調整するアルゴリズムを実施し得る。したがって、アルゴリズムは強化入力332に基づいて調整可能(例えば、トレーニング可能)であり、音楽生成パラメータ314は音楽生成サブシステム310において調整可能パラメータと見なされ得る。
【0055】
一部の実施形態では、アルゴリズムを調整するための入力は、音楽分類サブシステム320からの出力を含む。例えば、強化入力332は、音楽生成器モジュール160によって生成された出力音楽コンテンツのための音楽分類サブシステム320による音楽ソースの予測に基づき得る。図4は、一部の実施形態に係る、例示の音楽分類サブシステム320を示すブロック図である。図示の実施形態では、音楽分類サブシステム320は分類器モジュール400を含む。分類器モジュール400は、例えば、1つ以上の分類器を用いた分類を提供する機械学習アルゴリズムを実施し得る。特定の実施形態では、分類器モジュール400は、音楽コンテンツの分類を提供するために、1つ以上の訓練された分類器402を用いる訓練された分類器モジュールである。分類器モジュール400のトレーニングは、後述する図6の実施形態でさらに詳細に説明する。
【0056】
特定の実施形態では、分類器モジュール400は、(一連の異なる音楽出力コンテンツを含み得る)出力音楽コンテンツ316を入力として受信する。この入力から、分類器モジュール400は、出力音楽コンテンツ316のための音楽ソース予測410を決定するために、1つ以上のトレーニングされた分類器402を実施し得る。音楽ソース予測410は、出力音楽コンテンツ316が人間の作曲家によって生成されているか又は音楽生成器モジュール160によって生成されたか(例えば、音楽ソースが人間の作曲家であるか又は音楽生成器モジュールであるか)についての予測を含み得る。一部の実施形態では、音楽ソース予測410の予測は、出力音楽コンテンツ316が人間の作曲家によって又は音楽生成器モジュール160によって生成されたかのいずれかの確率を含む。例えば、音楽ソース予測410は、出力音楽コンテンツ316が音楽生成器モジュール160によって生成されたパーセント確率であり得る。その後、音楽ソース予測410は強化入力生成モジュール330に提供され得る。
【0057】
図3に戻って、様々な実施形態では、出力音楽コンテンツ316のための音楽ソース予測410は、パラメータ生成モジュール312及び音楽生成器サブシステム310によって弁別可能でない場合がある。したがって、特定の実施形態では、パラメータ生成モジュール312におけるアルゴリズムの調整のための強化入力332は、強化入力生成モジュール330によって音楽ソース予測410から決定され得る。一部の実施形態では、強化入力生成モジュール330は、報酬型システムに基づいて音楽ソース予測410を調整する。そのような実施形態では、強化入力生成モジュール330は、出力音楽コンテンツが人間の作曲家によって生成されたと信じるこませるように出力音楽コンテンツがどれだけ上手く音楽分類サブシステム320を「騙した」かに基づいて、音楽生成サブシステム310に報酬を与え得る。例えば、予測確率が高いほど、出力音楽コンテンツが人間の作曲家によって生成されたものと信じるように音楽分類サブシステム320が音楽生成サブシステム310によって騙される可能性が高くなるため、強化入力生成モジュール330は、出力音楽コンテンツ316が人間の作曲家によって生成されたという音楽ソース予測410の高い確率に対してより高い報酬を与え得る。
【0058】
一部の実施形態では、強化入力332はバイナリ入力であり得る。バイナリ入力は、音楽生成パラメータ314を生成するために、パラメータ生成モジュール312のアルゴリズムの調整のための弁別可能な入力の代替として提供され得る。様々な実施形態では、バイナリ入力は、音楽コンテンツがリスニング閾値を満たすかどうかのバイナリ判定を含む。リスニング閾値は、例えば、音楽コンテンツが「良い」(例えば、音楽的(musical))対「悪い」(例えば、非音楽的)と判定された場合に満たされ得る。一部の実施形態では、バイナリ入力判定はコンピュータルゴリズム(例えば、訓練された機械学習アルゴリズム)によって実施され得る。他の実施形態では、バイナリ入力は、本願で説明する、出力音楽コンテンツ316に対する人間の入力318として提供され得る。
【0059】
様々な実施形態では、音楽生成パラメータ314の生成(例えば、音楽生成ポリシーの生成)は、人間が読み取り可能であり且つ人間が変更可能である。生成パラメータ314を人間が読み取り可能又は人間が変更可能にすることで、音楽を生み出す時間及びプロセッサコストが削減され得る。加えて、ユーザによるより簡単な手動最適化を促進し、音楽生成パラメータ314を生成するためにパラメータ生成モジュール312におけるアルゴリズムのトレーニングを強化することにより、本質的に音楽的な作曲作品を生成する可能性が高まり得る。特定の実施形態では、音楽生成パラメータ314の生成を人間が読み取り可能に又は人間が変更可能にする実施は、音楽生成プロセスにおいてユーザにとって使いやすい(user-facing)音楽コントロールの追加を含む。
【0060】
図5は、一部の実施形態に係る、音楽生成サブシステム310における例示の音楽コントロールの実施を示すブロック図である。図示の実施形態では、音楽コントロール500はパラメータ生成モジュール312によって実施され、ユーザインターフェイスに提供される。次に、ユーザからの音楽コントロール入力510は、ユーザインターフェイスからパラメータ生成モジュール312によって受信される。上述したように、音楽生成パラメータ314は、音楽生成器モジュール160による音楽生成のプロセスを制御するために用いられるポリシーを定義し得る。音楽コントロール500は、音楽プロデューサー、音楽アーティスト又は他の音楽に精通したユーザに馴染みのある音楽制作方法に従って表される音楽制作に対するユーザ入力を可能にし得る。したがって、ユーザは、生成された出力音楽コンテンツ316に対して有利な影響を与える音楽コントロール500を介して入力を提供することにより、音楽コンテンツを作成でき得る。
【0061】
一部の実施形態では、パラメータ生成モジュール312と音楽生成器モジュール160との間の音楽生成のプロセスは、音楽生成サブシステム310内で弁別可能である。例えば、音楽コントロール入力510は、音楽生成サブシステム310内での音楽生成パラメータ314の生成と弁別可能である。したがって、音楽生成パラメータ314の初期設定は、音楽コントロール510とパラメータ生成モジュール312との間のバックプロパゲーションを介して見つけられ得る。初期設定の生成は、強化入力332に基づく音楽生成パラメータ314の改良(例えば、調整)のための非ランダムな開始位置を提供し得る。例えば、強化入力332に基づく音楽生成パラメータ314の改良は、ランダムな未知の音楽位置ではなく、より音楽的な「既知」位置から始まり得る。
【0062】
音楽コントロール500を実施すると、音楽イベント(生成された音楽コンテンツの再生等)に基づいて音楽生成パラメータ314を生成することもできるようになり得る。そのため、連続的に変化され、過度に反復的でない音楽生成器モジュール160によって、大きな範囲(潜在的に数百万又は数十億)の固有の分数(unique minutes)の出力音楽コンテンツが生成され得る。
【0063】
上述したように、音楽コントロール500は、音楽知識を持つ人のための共通の音楽コントロールの使用を通じて設計された音楽生成ポリシーを(音楽生成パラメータ314を介して)定義するために実施され得る。そのため、その人は、音楽生成サブシステム310のトレーニングの時間及び費用を削減するために、音楽生成ポリシーを迅速に手動で調整でき得る。様々な実施形態では、音楽コントロール500は、出力音楽コンテンツ316を生成する際に、音楽生成器モジュール160による音楽断片の選択及び処理に対する制御を提供するために提供され得る。特定の実施形態では、音楽コントロール500は、出力音楽コンテンツ316の1つ以上のオーディオプロパティに対する制御を提供する。音楽コントロール500の例としては、限定されないが、ゲイン、ハイパスカットオフ、ローパスカットオフ、リバーブセンドレベル(reverb send level)、リバーブ長、遅延レベル、遅延時間、ベース、ビート、パッド、トップ、メロディー、バッキングメロディー、コード、エフェクト及びそれらの組み合わせが上げられる。音楽コントロール500は、オーディオ断片(例えば、デジタル音楽断片)、音楽トラック(例えば、出力音楽コンテンツ316)又はそれらの組み合わせのいずれかに適用され得る。
【0064】
上述したように、出力音楽コンテンツ316に音楽コントロール入力510を適用することで、ユーザの音楽的嗜好に応じて出力音楽コンテンツが変更され得る。様々な実施形態では、音楽生成器モジュール160によって生成される変更された出力音楽コンテンツ316は、パラメータ生成モジュール312への強化入力332として提供される。そのような実施形態では、変更された出力音楽コンテンツ316は、ベクトル又はベクトルのセットとしてパラメータ生成モジュール312に入力され得る。変更された音楽コンテンツをベクトルとして提供することで、パラメータ生成モジュール312による強化学習の後に、出力音楽コンテンツ316で再生する未処理のオーディオコンテンツ(例えば、デジタル音楽断片)の選択(対生成)が促進され得る。例えば、パラメータ生成モジュール312によって決定された音楽生成パラメータは、(音楽生成パラメータ314によって記述される)ポリシーによって記述されたものに最も近い特徴を有するデジタル音楽断片のオーディオファイルのライブラリ(記憶されたオーディオファイル302等)の検索を促進し、出力音楽コンテンツ316を生成するためにそれらの選択された断片を用いる。したがって、音楽生成器モジュール160は、音楽の作曲家(例えば、個々の音符から新たな音楽を作成する)よりも音楽の編曲家(例えば、楽曲断片を選択し、編曲する)に似た役割で実施される。
【0065】
一例として、出力音楽コンテンツを変更するためにユーザが音楽コントロール500を適用した出力音楽コンテンツ316の30秒のオーディオサンプルが、パラメータ生成モジュール312に対するベクトル形式の強化入力332として用いられ得る。ベクトルコンテンツの非限定の例としては、例えば、{0.1、0.2、0.1、0.4・・・0.7}(音楽の次のビートのためにベーストラックで用いられるべきオーディオの縮小特徴表現を記述する64の要素のベクトル);{0.6}選択されたオーディオを再生するために用いられるオーディオ信号ゲイン;{20.0}20Hzのハイパスフィルターを適用すべき;{16000.0}16000Hzのローパスフィルターを適用すべき;{0.1}0.1のリバーブ補助センドレベル;{2.0}2拍子の減衰時間;{0.0}遅延を用いるべきでない;{1.0}1拍の遅延長が挙げられる。
【0066】
上述したもの等のベクトルは、機械学習アルゴリズム又は数学的変換によって浮動小数点数ベクトルを生成する他のアルゴリズムを介して生成され得る。例えば、ベクトルは、削減された特徴の空間を正規化する特徴削減アルゴリズム(変分オートエンコーダ等)又は共通のオーディオコンテンツ分析ベクトルを介して生成され得る。様々な実施形態では、ポリシーで行われた決定の履歴(例えば、変更されたコンテンツに基づく調整の履歴)と、選択されたデジタル音楽断片コンテンツは、元帳又は他のライブラリに記憶され得る。この情報を記憶することで、異なるアーティスト(例えば、記憶されたオーディオファイル302)のコンテンツのライブラリから、ファイルのパーセンテージ及び特定の選択を決定でき得る。
【0067】
図3に戻って、上述したように、出力音楽コンテンツ316に対する人間の入力318は、ユーザ(アーティスト又はリスナー等)によって提供され得る。特定の実施形態では、人間の入力318の実施は、出力音楽コンテンツ316のユーザの解釈に基づく入力を含む。例えば、人間のユーザは、ユーザにとって音楽が良いいものして又は悪いものとして聴こえるかについての入力を提供し得る。入力は、デバイスのユーザインターフェイス(好き/嫌いの選択等)を介して提供され得る。
【0068】
強化入力332における人間の入力実施の他の実施形態も検討される。例えば、分類器モジュール(例えば、図4に示す分類器モジュール400又はシステムで実施される別の分類器モジュール)は、(例えば、ユーザインターフェイス上での好き/嫌いの選択を介して)リスナーによってなされる選択に基づいて、リスナーが好きな音楽と好きでない音楽とを分類するように訓練され得る。リスナーが好きな音楽が音楽生成器モジュール160によって生成された場合、リスナーによるいいねが強化入力生成モジュール330に提供され、パラメータ生成モジュール312によって生成された音楽生成パラメータ314がユーザが好きな音楽を生成するよう強化するために、強化入力332として用いられ得る(例えば、肯定的なフィードバックを提供する)。
【0069】
図6は、一部の実施形態に係る、音楽分類サブシステム320のための例示のトレーニングシステム600を示すブロック図である。例示のトレーニングの実施形態では、分類器モジュール400は出力音楽コンテンツ316又は生成された音楽コンテンツ612のいずれかを受信する。いずれの種類の音楽コンテンツも、特定の長さ(例えば、30秒又は60秒のサンプル)で受信され得る。生成された音楽コンテンツ612は、例えば、専門的によって制作された音楽コンテンツ又は音楽の専門家によって制作された他の音楽コンテンツを含み得る。トレーニングの実施形態では、出力音楽コンテンツ316又は生成された音楽コンテンツ612が、音楽コンテンツのパラメータを識別するラベルとともに分類器モジュール400に入力され得る。例えば、ラベルは、音楽が音楽生成器モジュール160によって生成されたのか又は音楽が専門家によって制作されたかの識別を含み得る。他のラベルも考えられる。
【0070】
特定の実施形態では、分類器モジュール400は、入力音楽コンテンツのための音楽ソース予測614を決定するために、1つ以上の分類器を実施する。例えば、分類器モジュール400は、モジュールに入力される音楽コンテンツのソースが、音楽生成器モジュール160又は人間(専門家)のプロデューサーのいずれかであるという予測を決定し得る。様々な実施形態では、音楽ソース予測614は、入力音楽コンテンツが音楽生成器モジュール160又は人間の作曲家のいずれによって生成されたかの確率を含む。例えば、音楽ソース予測614は、入力音楽コンテンツが音楽生成器モジュール160によって生成されたというパーセント確率であり得る。一部の実施形態では、図4に示すように、音楽ソース予測410(例えば、分類器モジュール400に入力される出力音楽コンテンツ316の音楽ソース予測)が強化入力生成モジュール330に出力される。
【0071】
トレーニングのための図示の実施形態では、いずれかの種類の音楽コンテンツ入力の音楽ソース予測614を含む分類器616のトレーニング入力が、分類器モジュール400におけるバックプロパゲーションのために用いられる精度測定の基礎として用いられる。音楽ソース予測614を分類器モジュール400に伝えることは、音楽コンテンツ入力のソースを識別するラベル及び音楽コンテンツ入力のソースのための出力予測(音楽ソース予測614)の両方を提供することを含む。その後、分類器モジュール400は、ラベルと音楽ソース予測614との差異に従ってモジュール内の分類器を調整し得る。トレーニング後、分類器モジュール400はトレーニングされた分類器618を出力し得る。トレーニングされた分類器618は、音楽生成システムがインストールされている装置(例えば、音楽生成システムアプリケーションが装置にインストールされたパーソナル又はポータブルデバイス)に提供され得る。一部の実施形態では、トレーニングされた分類器は、装置への音楽生成システムのインストールの一部として装置に提供される。
【0072】
音楽コンテンツに関する他の分類を行うために分類器モジュール400がトレーニングされる追加の実施形態が考えられる。例えば、特定のプロデューサーによって作成された音楽を分類するために分類器モジュール400がトレーニングされる一部の実施形態が考えられる。そのような実施形態では、音楽コンテンツの特定のプロデューサーを識別することで、(パラメータ生成モジュール312により)特定のプロデューサーからのものとして分類される可能性が高い音楽コンテンツを生成するポリシーを生成でき得る。
【0073】
図3に戻って、様々な実施形態では、リスナー(例えば、ユーザ)からのフィードバックに基づいて変化する音楽を生成するために、音楽生成サブシステム310及び音楽分類サブシステム320が実施される。しかしながら、一部の実施形態では、特定の種類の装置(例えば、モバイル装置)にインストールされた音楽生成サブシステム310のために、人間の入力(例えば、音楽の好き/嫌い)に基づく分類を大規模に実施するのは、そのような装置の記憶容量の制限と、分類器によるトレーニング/学習のために記憶する必要がある情報のライブラリにより、望ましくないか又は可能ではない場合がある。したがって、特定の実施形態では、音楽生成サブシステム310を初期トレーニングパラメータ(例えば、最初にトレーニングされた分類器)を有する装置にインストールし、システムによる音楽生成を改善するために強化学習が装置に対して実施される。そのような実施形態では、使用して、音楽生成システムがインストールされた装置に接続されたリモートコンピュータ装置に位置する分類器モジュール(例えば、クラウドに位置する分類器モジュール)をトレーニングするために、1人以上のユーザからの好き/嫌い(又は他の同様の選択肢)に関する入力が用いられ得る。
【0074】
クラウドに位置する分類器モジュールは、ユーザが好きか又は嫌いであり得る音楽コンテンツをより良く予測できるように、音楽生成システムの操作の間にユーザからの入力(フィードバック)に基づいてトレーニングされ得る。クラウドにおける分類器モジュールのいくつかの追加トレーニングの後に、ユーザのためのベクトル(又は複数のユーザのためのベクトルのセット)が生成され得る。ベクトルは、特定のユーザの音楽の好みを表すために生成され得る。ベクトルは、例えば、特定のユーザの音楽の好みを表す64の要素のベクトルであり得る。次に、ベクトルは、装置にインストールされている音楽生成サブシステム310の強化入力(例えば、強化入力332)として実施するために、特定のユーザの装置に提供され得る。したがって、分類器の更新を装置に送信する必要はなく、装置に多数のライブラリを記憶する必要もない。加えて、単一の初期の包括的なトレーニングプロセスが音楽生成サブシステム310のために実施され、その後に、その音楽生成サブシステム310が特定の装置にインストールされる。装置にインストールされた音楽生成サブシステム310は、その後、各装置上の各音楽生成サブシステムを完全にトレーニングする必要性を避けるために、クラウドから入力として受信した強化学習によって更新され得る。これは、何百万もの固有の音楽生成サブシステムをモバイル装置に分散させることができ、単一の分類器モジュールが全てのサブシステムのためにトレーニングされるため、トレーニングの時間及びコストが削減され、各音楽生成器に対してパーソナライズされた結果を得ながら、一元管理されたトレーニング環境が可能になるという利点がある。
【0075】
ユーザ定義のコントロール要素に基づく例示の音楽生成の概要
作曲モジュール(composition module)と演奏モジュール(performance module)とのやりとりにより音楽コンテンツを生成するための様々な技術が開示される。一般的に言えば、作曲サブシステムが音楽コンテンツを作曲するためにオーディオファイルを選択及び編曲する一方で、演奏サブシステムは選択されたオーディオファイルにフィルタリング、エフェクトの追加、ミックス、マスター等を行って、実際に再生される出力音楽コンテンツを生成し得る。
【0076】
一部の開示の実施形態では、作曲サブシステム及び演奏サブシステムの両方は、(1つ以上のユーザインターフェイスを介して表示され得る)音楽コントロール要素へのユーザ入力に基づいて動作する。一例として、アーティストは(例えば、サーバシステムで実施され得る)作曲サブシステムにユーザ入力を提供し、エンドユーザが(例えば、携帯電話等のユーザ装置で実施され得る)演奏サブシステムにユーザ入力を提供し得る。他の実施形態では、同じユーザが両方のモジュールに入力を提供し得る。
【0077】
一部の実施形態では、システムはユーザが独自の音楽コントロールを定義できるようにし、より抽象的であり得るユーザ定義のコントロールへの調整に基づき音楽パラメータを調整するために機械学習又は他のアルゴリズムを実施し得る。例えば、ユーザは
「ハーモニー」、「幸福」又は「気分」コントロールを定義し、作曲サブシステムは、調整すべき低レベルパラメータの種類と、このコントロール要素に対するアーティストのビジョンを実現するための調整量とを決定し得る。一部の実施形態では、例えば、ユーザがアーティスト定義のコントロールを実施できるように、ユーザ定義の音楽コントロールの全て又はサブセットも演奏サブシステムに利用可能である。一部の実施形態では、2つのサブシステムは、ユーザ定義の音楽コントロールに基づいて適切な演奏パラメータを提供するために通信し得る。開示の技術は、アーティストがエンドユーザにカスタマイズされた音楽コントロール要素を提供できるようにし得るため有利である。また、開示の技術は自動音楽作曲の特定の態様の集中的な制御を可能にしながら、エンドユーザが生成的な音楽のリアルタイム演奏をカスタム化できるようにする。
【0078】
作曲サブシステム及び演奏システムに利用可能な音楽コントロールのサブセットは、重複してもいいししなくてもよい。また、演奏モジュールのユーザは、自身の抽象的な音楽コントロールを特定し、一部の実施形態では、作曲モジュールによって定義された抽象的な音楽コントロールと共に用いられ得る。
【0079】
一般に、開示の技術は、音楽生成システムにより、人間により近い作曲の生成を促進し得る。本発明者らは、音楽生成に対する抽象的なコントロールを提供することにより、音楽生成システムが、ユーザの様式的、構造的又は芸術的な好みに従って音楽コンテンツを生成できるようにすることを認識している。
【0080】
図7は、一部の実施形態に係る、作曲サブシステム710及び演奏サブシステム720を含む例示の音楽生成システム700を示すブロック図である。
【0081】
図示の実施形態では、作曲サブシステム710は、ユーザ入力に基づいて作曲制御出力情報を生成する。一部の実施形態では、作曲制御出力情報は、組み合わされるべき選択されたオーディオファイルを識別し、出力音楽コンテンツに含めるための相対的なタイミングを示す。作曲サブシステム710は、以下でさらに詳細に説明するように、音楽コンテンツのセクションをどのように編曲するか、セクション間をいつ移行するかを決定し得る。
【0082】
図示の実施形態では、作曲サブシステム710は、演奏サブシステム720のための制御要素設定信号も生成する。一部の実施形態では、これらの信号は、意図された方法で抽象音楽コントロールへのユーザ入力を実施するよう演奏サブシステム720を設定する。例えば、設定は、ユーザ定義の音楽コントロールへの調整に基づいて、様々な演奏動作をどのように調整するか(フィルタリング、エフェクトの追加、ミキシング、マスタリング等)を指定し得る。
【0083】
図示のように、作曲サブシステム710はユーザ入力を受信する。このユーザ入力は、例えばカスタム音楽コントロール要素を指定し得る。ユーザ入力は、特定のアーティストによる以前の作曲作品のためのラベル情報も提供し得る。例えば、抽象的なコントロール要素「ハーモニー」の場合、アーティストは、アーティストのハーモニーの認識に基づいて、以前の作曲作品に0からNまでの評点でラベルを付けし、異なるレベルのハーモニーコントロール要素を反映するために機械学習モデルが作曲作品パラメータを調整できるようトレーニングすることができるようにする。なお、音楽コントロール要素は、特定の値を指定する、増減、良い/悪い等のバイナリ入力を指定するユーザ入力を受け入れること等の様々なエンコーディングを有し得る。
【0084】
図示の実施形態では、演奏サブシステム720は、作曲サブシステム710からの作曲コントロール及びコントロール要素設定情報に基づいて出力音楽コンテンツを生成するように構成されている。図示のように、演奏サブシステム720は、例えば、作曲サブシステム710によって実施される、潜在的に、音楽コントロール要素のサブセットの全てのためのユーザ入力も受信し得る(一部の実施形態では、演奏サブシステム720は追加の音楽コントロール要素も実施し得る)。一部の実施形態では、演奏サブシステム720上のユーザ入力に利用可能なコントロール要素のセットは、作曲サブシステム710へのユーザ入力によって制御される。
【0085】
様々な実施形態では、複数のレベルでの作曲コントロールは、様々な音楽スタイルに対するユーザのカスタマイズを可能にしながら、音楽出力を有利に提供し得る。なお、開示の実施形態で作曲サブシステム710によって行われる様々な機能は、他の実施形態では、演奏サブシステム720に移され、その逆もまた同様である。開示の機能の分離は、特定の文脈では良好な結果をもたらし得るが、本開示の範囲を限定することを意図していない。したがって、図7の作曲コントロール情報は、様々な実施形態では、生の選択されたオーディオファイルから少なくとも部分的にミックスされた出力コンテンツまで様々な種類の情報を含み得る。
【0086】
一部の実施形態では、作曲サブシステム710及び演奏サブシステム720は、異なるコンピュータシステム上に実施され、ネットワークを介して通信する。以下で詳細に説明するように、インターフェイス間の通信は、(例えば、オープンサウンドコントロール(OSC)プロトコルを用いて)リアルタイムの監視及び制御APIを可能にするために、カスタム文字列操作及びストレージ技術を用いり得る。他の実施形態では、サブシステムは同じコンピュータシステム上で実施される。
【0087】
なお、演奏サブシステム720は、例えば、エンドユーザ調整が、組み合わせるべきオーディオファイルを選択すること等の作曲操作に影響を与えるようにするために、コントロール要素設定情報を作曲サブシステム710(明示的には図示しない)に送信し得る。一般的に開示する技術により、ある装置/インターフェイスで定義されたユーザ定義のコントロール要素が、他の装置/インターフェイスでユーザが利用できるようにし、他のサブシステム又は装置でパラメータ調整を潜在的に制御できるようにし得る。
【0088】
作曲及び演奏サブシステムを備えた音楽生成器の詳細例
図8は、一部の実施形態に係る、音楽生成器システムのより詳細な例を示すブロック図である。図示の実施形態では、作曲サブシステム710は、カスタマイズされた音楽コントロールのためのモジュール810A、作曲モジュール820及び機械学習モジュール830を含む。図示の実施形態では、演奏サブシステム720は、カスタマイズされた音楽コントロールのためのモジュール810B及び演奏モジュール850を含む。なお、異なるサブシステムに含まれる作曲モジュール820及び演奏モジュール850のより詳細な例について、図6を参照して以下で説明する。
【0089】
モジュール810Aは、低レベルのパラメータを用いてカスタム音楽コントロールをどのように実施するかを決定するために、ユーザ入力に基づいて機械学習モジュール830と通信し得る。図示のように、機械学習モジュール830は、低レベルの作曲パラメータ(これらのパラメータは、サブシステム710及びサブシステム720の両方によって用いられるパラメータを含み得る)を用いて抽象コントロールをどのように実施するかを決定するために、(1つ以上のカスタム音楽コントロールに従って、ユーザによって全体としてラベル付けされているか又は異なる部分のラベルを有する)以前の作曲作品840にアクセスし得る。トレーニングは、ユーザ指定のコントロール要素の目的を決定するために、様々な適切の機械学習モデル、例えば、ディープニューラルネットワークを用いり得る。図示のように、モジュール810Aはコントロール要素設定情報をモジュール810Bに通信し、モジュール810Bはユーザ入力に基づいて演奏パラメータを調整するために演奏モジュール850と通信する。同様に、作曲モジュール820はモジュール810Aからの信号に基づいて作曲パラメータを調整する。
【0090】
一部の実施形態では、アーティストはカスタム音楽コントロールと下位レベルのパラメータとの関係を明示的に指定し得る。例えば、「ハーモニー」コントロールの場合、アーティストは、ハーモニーの動きが弱い作曲作品よりもハーモニーの動きが強い作曲作品のためにテンション(レイヤーの追加、ライザー効果、メロディーのカット等)を作るために、異なるパラメータを指定し得る。一部の実施形態では、低レベルのパラメータを生成するに、明示的なコントロールが単独で用いられ得るか又は機械学習分析との組み合わせで用いられ得る。
【0091】
以下の説明では、例えば、機械学習に又はコントロールとパラメータとの間の関係をユーザが示すことに基づいて、カスタムユーザインターフェイス要素を介して間接的に制御され得る様々なパラメータを説明する。なお、一部の実施形態では、音楽生成器システムは、抽象的コントロール及び下位レベルのコントロールの両方を露呈し得る。
【0092】
一部の実施形態では、連続的な音楽の生成は、アルゴリズムによって定義された音楽セクション及び推移の組み合わせを通じて実現される。セクションは、それらの音楽機能、例えば、テンションを構築、維持及び低減することによって定義され得る。一部の実施形態では、テンションのセクションは、音楽コンテンツの繰り返しによってゆっくりと作られ、より大きな音又はより層状にミックスされた音を有するか又は互いに対照的な音楽のリズム又はピッチを演奏する。対照的に、テンションはリスナーの期待に逆らうことによって迅速に確立され得る。例えば、繰り返されるフレーズを繰り返しの途中で終わらせること、突然キーを変えること、これまで音楽に登場しなかった新たなテクスチャを導入すること、音量を急に上げたること等により、テンションが素早く確立され得る。テンションを生み出す同じ技術が頻繁に繰り返された場合、リスナーはそれを予期し、テンションを生み出すそれらの効果は大きく低下する。
【0093】
一部の実施形態では、レイヤーを減らすことにより、以前は対照的だった音のリズム又はピッチを揃えることにより又は音楽のフレーズの繰り返しを止めることにより、テンションがゆっくりリリースされる。先のフレーズの一時的な中断の後に繰り返しを再開すること、ハーモニーの不協和音を解決すること又はセクションの終わりを記すクライマックスポイント(例えば、大きなシンバル音)を提供することにより、以前に確立された予測に戻ることにより、テンションが素早くリリースされ得る。
【0094】
効果的な連続した音楽の作成は、様々な方法でテンションの蓄積及び解放を並べることによりもたらされ得る。
【0095】
一部の実施形態では、作曲サブシステム710は、デフォルト値又はオプション値を持つ特定のコントロールを露呈する。コントロールは、例えば、ゲインミックス、オーディオエフェクトチェーン、経時的な音楽の編曲、音楽フレーズの同時レイヤー化等を含み得る。ユーザによって追加された作曲プロセスのみが音楽効果を有する標準的な作曲ツールとは異なり、オプション値が利用されていない場合は、作曲プロセスに影響を与えるために機械学習アルゴリズムが用いらえ得る。
【0096】
作曲サブシステム710によって制御されるパラメータの例としては、例えば、単一のループ可能なオーディオの最大繰り返し、合成ノイズの使用、デフォルトEQレベルを含み得る。一部の実施形態では、最大繰り返しはハードリミットとして設定され得るか又は制限のない無限大のままにされ得るが、他の作曲プロセスは、それなしで、繰り返しからの離脱をもたらす可能性が高い。「合成ノイズ」コントロールは、それが何時適用されるかを制御することなく、作曲のあるのポイントで合成ノイズを有効又は無効にするためのバイナリスイッチとして用いられ得る。タイミングは他のコントロール及び機械学習アルゴリズムの影響を受け得る。デフォルトEQレベルは、8つのバンドの周波数、ゲイン及び帯域幅の基準レベルを可能にし、機械学習アルゴリズムによって主導されるものを含む他の作曲プロセスによって調整され得る。作曲サブシステム710は、時間構造が作曲内でいつ発生するかを正確に定義することなく、どの種類のオーディオファイルが作曲の異なる時間構造で用いることができるかを定義し得る。
【0097】
一般に、様々なオーディオファイルのカテゴリー又は「グループ」が、異なる音楽編曲構造内で有効又は無効にされ得る。一部の実施形態では、有効にされているグループは、サブシステムによって利用され得るが、それは保証されていないことを意味する。以下はグループの例である。
・ビート:リズムベッドを定義し、通常はドラムキット-音程なし
・ベース:ベースライン-音程あり
・ハーモニー:ハーモニーを肉付けするポリフォニックなミッドレンジ-音程あり
・パッド:バックグラウンドのサウンドスケープ又はドローン-音程あり
・トップ:追加のリズムコンテンツであり、多くの場合パーカッション、通常はシンコペーション-音程あり
・メロディー:主にモノフォニックなメロディーライン-音程あり
・音程ありFX:強い調性を有する追加の効果音-音程あり
・音程なしFX:非調性の追加の効果音(例えば、ノイズ)-音程なし
これらのグループごとに、これらの品質の基準値を設定するために調整可能なコントロールがあり得る。
・音量
・リバーブ量
・遅延パンチ確率
・遅延ウェットネス
【0098】
一部の実施形態では、ビルドアップ;テンションのゆっくりした増加;維持;テンションレベルの維持;ドロップ:クライマックスポイントとそれに続く低テンション;ブレイクダウン;テンションのゆっくりとした低下というセクションが利用され得る。また、レイヤーの追加;テンションの突然の増加;レイヤーの削除;テンションの突然の減少;ライザー効果;テンションの素早い増加;メロディーを途中でカット;テンションの素早い増加という推移が利用され得る。作曲サブシステム710は、例えば、一群のアーティストのうちの特定のアーティストの作曲の好みに基づいて、様々なセクション及び推移をどのように適用するかを学習し得る。
【0099】
一部の実施形態では、確率ベースのルールは、推移のシーケンスをガイドして、テンションをゆっくりと構築及びリリースするためにバリエーションを促し、これらのゆっくりとした傾向に予期しない転換を生み出すために推移を用いる。推移を過度に用いると、それが占めるセクションの全体的なテンションの動きが減少し得るため、推移の最大及び最小頻度がセクションの長さにスケールされ得る。
【0100】
下記の表は、異なるセクションの推移確率の例を示す。一部の実施形態では、作曲サブシステム710のユーザは、セクションの所定の絶対的なタイミングなしで段階的な音楽構造を変更するために、そのような表を変更する。
【0101】
【表1】
【0102】
この例では、ブレイクダウンセクションから推移は、40%の確率でビルドアップセクションに移り、30%の確率でドロップセクションに移り、30%の確率で維持セクションに移る。
【0103】
作曲サブシステムは、セクションをさらに分解して、セクション及びサブセクションの階層構造を作成する。サブセクションの例としては、
・フレーズの第1の拍子のみを演奏し、フィードバック付きの遅延を用いて、メロディー又はハーモニーループ毎に新たなリズムフレーズを作成すること、
・具体的にドラムレイヤーを削除すること、
・4拍子、8拍子毎にハーモニーループをミュートすること、
・現在のベースラインからフェードアウトし、新たなベースラインに徐々にフェードインすること、
・サブセクションの最後の8拍子の間リズムレイヤーをミュートすること、
・ローパスフィルターが全てのレイヤーにわたって2万から500Hzに徐々に減らすこと、
が挙げられる。
【0104】
各サブセクションは開始、終了、場合によっては中間で推移を生成するため、特定のサブセクションは特定のセクションで又はセクションの特定のポイントでのみ発生する。サブセクションのルールの例としては、
・ビートを取り除くサブセクションは、ドロップセクションの開始時には発生しないこと、
・ベースラインを変更するサブセクションは、ビルドアップセクションの間には発生しないこと、
・レイヤーを削除しないサブセクションは、ブレイクダウンセクションでない限り、再生されるレイヤーの総数が4未満のセクションでは発生しないこと、
が挙げられる。
【0105】
各セクションで用いられるレイヤーの数及び選択は、音楽的テンションを形成するために決定され得る。例示のレイヤーの組み合わせとしては、
・イントロ:全体的にベース及びドラム
・ビルドアップ:全体的にベース及びドラム、パーカッション、メロディー、パッドに緩やかにフェードイン
・ドロップ:全体的にベース、ドラム、パーカッション、パッド及びメロディー
・ブレイクダウン:全体的にベース及びドラム、全ての他のレイヤーから徐々にフェードアウト
・維持:先行するセクションの最後で用いられる同じレイヤー
が挙げられる。
【0106】
サブセクションに加えて、ループベースの繰り返し音楽でとりわけ効果的なバリエーション及びマイクロテンションを作成するために、音楽的逸脱(musical deviation)が用いられ得る。一部の実施形態では、例えば、
・遅延パンチ:ドラムの最後の又は最初の拍子が、フィードバックなしで1又は1/2拍子の遅延で再度演奏されること、
・ハイパスフィルターが8拍子にわたって0から50Hzに増やし、瞬時に0Hzに戻して強いビートパルスを与えること、
・シングルループに重いリバーブを適用すること、
といった逸脱技術が用いられる。
【0107】
一部の実施形態では、作曲サブシステムでサブセクション及び逸脱が有効又は無効にされてもよく、場合によっては、パラメータ化され得る。したがって、一般的に言えば、作曲サブシステムは、演奏サブシステムに対して、より多くの作曲パラメータの制御をユーザ(例えば、アーティスト)に提供し得る。
【0108】
一部の実施形態では、演奏サブシステム720は、作曲サブシステムからの作曲コントロール情報(例えば、作曲スクリプト)に基づいて動作して、出力音楽コンテンツを生成するように構成されている。
【0109】
一部の実施形態では、作曲サブシステム710は、演奏サブシステム720によって仲介されるフィードバックデータをスクリプト内の音楽コントロールと関連付けることにより決定を行う。例えば、明示的なサムアップ/ダウン(thumb up/down)のフィードバックに加えて、例えば、演奏コントロールサブシステムが再生する行為は、ある程度の好みを受動的に示唆する。ユーザが消費した作曲作品及び提供されたフィードバックの遡及的分析は、機械学習システムがユーザ装置上で表されるループ及び作曲手法の両方を調整できるようにするのに役立つ。演奏コントロールサブシステムは、コアセットから類似のスタイルのオーディオコンテンツ及び属性を見つけるためにフィードバック分析を用いり得る。
【0110】
アーティストがルール、ヒューリスティック及びトレーニングデータを用いてアーティストパックを形作り得る(style)のと同じように、演奏コントロールサブシステムは、演奏サブシステムが提供する一連のループでエンドユーザが同じことを実現できるようにし得る。このシナリオでは、演奏サブシステムは再生のために大量の(及び増大する)ループセットを提供し得る。ユーザは、演奏コントロールサブシステムがそれらのためにサウンドスケープを作成する場合にどのような種類のループ及びミキシング技術を用いるかを学習するのを助け得るサムアップ及びダウンを含む入力を有し得る。加えて、演奏コントロールサブシステムがコンテンツをミキシングする方法をユーザがより細かく制御できるようにするために、ユーザにUXコントロールが提供され得る。これには、ミキシングレベル、セクションの長さ、音楽の複雑さ、ビルド及びドロップ等のミキシング技術の使用等を含み得る。これらの微調整により、リスナーが独自の「スタイル」を基本的に作成できるようにし、演奏コントロールサブシステムはサウンドスケープを作成する場合にそれを用いる。また、ユーザは、以下で説明する様々な作曲の側面をより高レベルで制御するために独自のカスタムコントロール要素又はモジュール810Aを用いて定義されたカスタムコントロール要素を用いり得る。
【0111】
ユーザがサムアップ/ダウンを選択すると、現在の作曲の様々な要素が考慮され得る。それらは、
・様々なレイヤーのためのゲイン等の現在のミキシングレベル、
・入力時近辺のループに関連する属性、
・時刻、天気、場所等の環境入力、
・上記の追加のUXコントロールを介した明示的な入力、
を含み得る。
【0112】
これらの品質は、演奏サブシステムによってキャプチャされ、正又は負のフィードバックに関連付けられ得る。経時的に、このデータは、演奏コントロールサブシステムが正及び負の強化を用いて機械学習モジュール(図8に明示的に図示せず)をトレーニングするのをガイドするのに役立ち、演奏コントロールサブシステムが音楽再生のパラメータを調整できるようにし得る(例えば、ルールエンジンのためのパラメータ)。これらのパラメータを調整するのに用いられるモデルは、1人のユーザに任せる必要はない。例えば、音楽アプリに対する集約フィードバックに基づいて作曲及び再生に変更を適用するために機械学習が用いられ得る。つまり、特定のユーザがサムダウンを押し、この時点で特定されたパターンが他の多くのユーザがサムダウンしたパターンと一致した場合、システムは他のユーザに対して行ったのと同じ方法で音楽を適宜調整し得る。これにより、演奏コントロールサブシステムはユーザのためにパーソナル化された変更を行うことができるようにするものの、それらの変更は多くのユーザにわたって収集された集計データに基づいてなされる。
【0113】
フィードバックと音楽のプロパティとの相関関係は、環境の測定によって調節され得る。このように、ユーザの好みのより微妙なモデルが構築される。例えば、演奏コントロールサブシステムは、「このリスナーはこれらの種類のビートを好む」ことを学習するのではなく、「このリスナーは、この時間帯又は雨が降っているときに、これらの種類のビートを好む」ことを学習し得る。
【0114】
エンドユーザのパーソナル化の成功は、最終的には再生に関連する肯定的なイベントによって測定され得る。これは「サムアップ」、再生時間等のイベントを含む。これらのイベントに加えて、他のパラメータがパーソナル化の成功に関連付けられ得る。例えば、演奏コントロールサブシステムを再生するレストランは、成功の指標として時間当たり売上の増加を関連付け得る。演奏コントロールサブシステムは、POSと、作曲の肯定的な反映による時間当たりの売上の関連する肯定的な変化とを監視し得る。このように、演奏コントロールサブシステムは明示的な入力を必要とせずに自身を暗黙的に訓練し得る。このトレーニングモデルは、任意の基礎となるループのセットに適用でき得る。何故なら、トレーニングは、まさにそのループが用いられるのと同じ位音楽の作曲に関するものだからである。
【0115】
作曲及び演奏サブシステム間の例示の通信技術
一部の実施形態では、サブシステム間の通信は、例えば、OSCを介してAPIを用いて、リアルタイムの監視及び制御を実施する。以下に詳細に説明する開示の技術は、そのような文脈においてリアルタイムのパフォーマンスを促進し得る。なお、分散型の実施形態では、ネットワークを介して送信されるデータの量は、全てのパラメータ及びRMSレベルを監視する場合に著しいものとなり得るが、例えば、フルオーディオストリームに比べれば依然小さい。しかしながら、これらのメッセージは個別に解析され得るため、関連する文字列操作は非常に高価になり得る。リアルタイムスレッドから送信されるそのような文字列の作成は、メモリ割り当て及び呼び出しのブロックを減らすために慎重に行われ得る。
【0116】
OSCは、エンドポイントをアドレス指定するために、例えば、「/master/compressor/threshold」又は「/performance_module/effect_module/parameter_C」等の、(URLと同様の)フォワードスラッシュで区切られたプレーンテキストの文字列を用いる。これらの文字列は、例えば、作曲モジュールから様々な情報を演奏モジュール内の適切なエンドポイントに、また、例えば、モニタリングを目的として別の方向にルーティングルーティングするために用いられ得る。そのため、区切られた文字列の操作は、一部の実施形態では一般的な操作である(とりわけ、区切られた文字列と一連の文字列との間の変換を行う「split」及び「join」に加えて、所与の区切られた文字列へのプリペンド及びアペンドに類似の機能である)。
【0117】
split/join等を実施する従来の文字列操作ライブラリは、リアルタイム操作を考慮して設計されていないことがある。とりわけ、それらの記憶モデルは、区切られた文字列を分割する場合に、コンポーネントトークンのコピーを通常作成する。割り当てを減らすために、一部の実施形態では、開示のシステムは専用のDelimitedStringコンテナを用いる。DelimitedStringクラスは、実際の区切られた文字列をバッキングストアとして利用し、その上にリスト様のAPIを露呈し得る(基本的には、トークンをマークするフル文字列への一連のポインタオフセット)。バッキング文字列は、コストのかかる再割り当てを必要とせずに追加のトークンを簡単にプリペンド/アペンドできるように、いずれかの側で予備的な容量を用いて作成できる。
【0118】
DelimitedStringクラスは、両端で効率的な「トリミング」が可能になるように設計され得る。これらの実施形態では、OSCメッセージの受信者(例えば、演奏サブシステム720)は、OSCアドレスを階層型ルーティングメカニズムとして扱い、通常、アドレスにおいて各段階で第1のトークンを切り取る(lopping off)する一連のデリゲートを介してメッセージを渡す。DelimitedStringは、オフセットを参照する「HEAD」ポインタを単にフル文字列バッキングストアに移動させることにより、これを効率的に管理し得る。また、状態スタックを管理して、状態、アドレスの繰り返し切り取られた部分(iteratively lop off parts)を記憶し、状態を復元し得る。これにより、同じDelimitedStringを再度用いることができるようになり得る。
【0119】
例示のユーザ及びエンタープライズGUI
図9A図9Bは、一部の実施形態に係るグラフィカルユーザインターフェイスを示すブロック図である。図示の実施形態では、図9Aはユーザプリケーション910により表示されるGUIを含み、図9Bは、エンタープライズアプリケーション930により表示されるGUIを含む。一部の実施形態では、図9A及び図9Bに表示されるGUIはアプリケーションではなく、むしろウェブサイトにより生成される。様々な実施形態では、(例えば、音量、エネルギー等を制御するため)ダイヤル、ボタン、ノブ、(例えば、ユーザに更新された情報を提供するため)表示ボックス等の要素の1つ以上を含む様々な適切な要素のいずれかが表示され得る。
【0120】
図9Aにおいて、ユーザプリケーション910は、1つ以上のアーティストパックを選択するための区画912を含むGUIを表示する。それに加えて又は代替的に、一部の実施形態では、パック914は特定の出来事(例えば、結婚式、誕生パーティー、卒業式等)のためのテーマパック又はパック含み得る。一部の実施形態では、区画912に示すパックの数は、区画912に一度に表示できる数よりも大きい。したがって、一部の実施形態では、ユーザは、1つ以上のパック914を見るため区画912内を上下にスクロールする。一部の実施形態では、ユーザは、ユーザが聴きたいと思う出力音楽コンテンツのベースとなるアーティストパック914を選択できる。一部の実施形態では、アーティストパックは、例えば、購入及び/又はダウンロードされ得る。
【0121】
図示の実施形態では、選択要素916はユーザが1つ以上の音楽属性(例えば、エネルギレベル)を調整できるようにする。一部の実施形態では、選択要素916は、ユーザが1つ以上のターゲット音楽属性を追加/削除/変更できるようにする。様々な実施形態では、選択要素916は、1つ以上のUI制御要素(例えば、音楽コントロール500)をレンダリングし得る。
【0122】
図示の実施形態では、選択要素920は、ターゲット音楽属性を決定するためにユーザが装置(例えば、モバイルデバイス)に環境の音を聞かすことができるようにする。一部の実施形態では、装置は、ユーザが選択要素920を選択した後で1つ以上のセンサ(例えば、カメラ、マイクロホン、温度計等)を用いて環境に関する情報を収集する。一部の実施形態では、アプリケーション910は、ユーザが要素920を選択した場合にアプリケーションによって収集された環境情報に基づいて1つ以上のアーティストパックを選択するか又は提案する。
【0123】
図示の実施形態では、選択要素922は、新しいルールセットを生成するためにユーザが複数のアーティストパックを組み合わせることを可能にする。一部の実施形態では、新しいルールセットは、ユーザが同じアーティストのために1つ以上のパックを選択することに基づく。他の実施形態では、新しいルールセットは、ユーザが異なるアーティストのために1つ以上のパックを選択することに基づく。ユーザは、例えば、重み付けが大きいルールセットは重み付けが小さいルールセットよりも生成される音楽により効果があるように異なるルールセットのために重みを示し得る。音楽生成器は、例えば、異なるルールセットからのルール間の切り替えること、複数の異なるルールセットからのルールのための値を平均化すること等により、複数の異なる方法でルールセットを組み合わせ得る。
【0124】
図示の実施形態では、選択要素924は、ユーザが1つ以上のルールセット内のルールを手動で調整できるようにする。例えば、一部の実施形態では、ユーザは、よりきめ細かいレベルで生成された音楽コンテンツを音楽コンテンツを生成するために用いられるルールセット内の1つ以上のルールを調整することにより調整したいと考えている。一部の実施形態では、これは、アプリケーション910のユーザが図9AのGUIに表示されるコントロールを用いて音楽生成器が出力音楽コンテンツを生成すのに用いるルールセットを調整することにより、自分自身がディスクジョッキー(DJ)になることを可能にする。これらの実施形態は、ターゲット音楽属性のよりきめの細かい制御も可能にし得る。
【0125】
図9Bにおいて、エンタープライズアプリケーション930は、アーティストパック914を有するアーティストパック選択区画912も含むGUIを表示する。図示の実施形態では、アプリケーション930により表示されるエンタープライズGUIも、1つ以上の音楽属性を調整/追加/削除するための要素916を含む。一部の実施形態では、図9Bに表示されるGUIは、音楽コンテンツを生成することにより(例えば、販売を最適化するため)特定の環境を生成するために仕事で又は店頭で用いられる。一部の実施形態では、従業員がアプリケーション930を用いて、以前売上を増加させることを示した1つ以上のアーティストパックを選択する(例えば、所与のルールセットのためのメタデータは、実世界の文脈におけるルールセットを用いた実際の実験結果を示し得る)。
【0126】
図示の実施形態では、入力ハードウェア940は、エンタープライズアプリケーション930を表示しているアプリケーション又はウェブサイトに情報を送る。一部の実施形態では、入力ハードウェア940は、キャッシュレジスタ、熱センサ、光センサ、クロック、ノイズセンサ等のうちの1つである。一部の実施形態では、上記のハードウェア装置のうちの1つ以上から送られた情報を用いて、特定の環境のための出力音楽コンテンツを生成するためにターゲット音楽属性及び/又はルールセットが調整される。図示の実施形態では、選択要素938は、環境入力を受信する1つ以上のハードウェア装置をアプリケーション930のユーザが選択できるようにする。
【0127】
図示の実施形態では、ディスプレイ934は、入力ハードウェア940からの情報に基づいてアプリケーション930のユーザに環境データを表示する。図示の実施形態では、ディスプレイ932は、環境データに基づくルールセットへの変更を示す。一部の実施形態では、ディスプレイ932は、環境データに基づいて行われた変更をアプリケーション930のユーザが見えるようにする。
【0128】
一部の実施形態では、図9A及び図9Bに示す要素はテーマパック及び/又は出来事パックのためのものである。すなわち、一部の実施形態では、アプリケーション910及び930によって表示されるGUIを持ちるユーザ又はビジネスは、1つ以上の出来事及び/又はテーマのための音楽コンテンツを生成するためにルールセットを選択/調整/修正できる。
【0129】
音楽生成システムの詳細例
図10図12は、音楽生成器モジュール160の特定の実施形態に関する詳細を示す。なお、これらの特定の例は説明の目的で開示しているが、それらは本開示の範囲を制限することを意図したものではない。これらの実施形態では、ループからの音楽の構築は、パーソナルコンピュータ、モバイルデバイス、メディアデバイス等のクライアントシステムにより行われる。図10図12の説明で用いたように、「ループ」は「オーディオファイル」という用語と同義であり得る。一般に、ループは、本明細書で説明したように、オーディオファイルに含まれる。ループは、アーティストパックと呼ばれ得る専門的に監修されたループパックに分割されてもよい。音楽プロパティのためにループが分析し、そのプロパティがループメタデータとして記憶され得る。構築されたトラック内のオーディオが(例えば、リアルタイムで)分析され、出力ストリームをミックス及びマスターするためにフィルタリングされ得る。スライダ又はボタンを用いたユーザとのやりとりからの明示的なフィードバック及び例えば、音量変化に基づいて、リスニングの長さ、環境情報等に基づいてセンサにより生成される暗黙的なフィードバックを含む様々なフィードバックがサーバに送信され得る。一部の実施形態では、制御入力は(例えば、直接的又は間接的にターゲット音楽属性を特定するため)既知の効果を有し、作曲モジュールにより用いられる。
【0130】
以下の説明は、図10図12に関連して用いられる様々な用語を紹介する。一部の実施形態では、ループライブラリは、サーバによって記憶され得るループのマスタライブラリである。各ループは、オーディオデータと、オーディオデータを記述するメタデータとを含み得る。一部の実施形態では、ループパッケージはループライブラリのサブセットである。ループパッケージは、特定のアーティスト、特定のムード、特定の種類のイベント等のためのパックであり得る。クライアント装置は、オフラインリスニングのためにループパックをダウンロードし得るか又は例えばオンラインリスニングのためにループパックの一部をオンデマンドでダウンロードし得る。
【0131】
一部の実施形態では、生成されたストリームは、ユーザが音楽生成器システムを用いる場合にユーザが聞く音楽コンテンツを特定するデータである。なお、実際の出力オーディオ信号は、所与の生成ストリーム毎に、例えばオーディオ出力機器の能力に基づいてわずかに変化し得る。
【0132】
一部の実施形態では、作曲モジュールは、ループパッケージ内で利用可能なループから作曲作品を構築する。作曲モジュールは、パラメータとしてループ、ループメタデータ及びユーザ入力を受信し、クライアント装置により実行され得る。一部の実施形態では、作曲モジュールは、演奏モジュール及び1つ以上の機械学習エンジンに送られる演奏スクリプトを出力する。一部の実施形態では、演奏スクリプトは、生成されたストリームの各トラックでどのループが再生されるか及びストリームにどのようなエフェクトが適用されるかを要約する。演奏スクリプトは、イベントが何時発生するかを表すために、ビート相対タイミング(beat-relative timing)を利用し得る。また、演奏スクリプトは(例えば、リバーブ、遅延、圧縮、イコライゼーション等のエフェクトのための)エフェクトパラメータをエンコードし得る。
【0133】
一部の実施形態では、演奏モジュールは演奏スクリプトを入力として受信し、それを生成されたストリームにレンダリングする。演奏モジュールは、演奏スクリプトにより特定される多数のトラックを生成し、トラックをミックスしてストリーム(例えば、ステレオストリームであるが、ストリームは様々な実施形態において、サラウンドエンコーディング、オブジェクトベースオーディオエンコーディング、マルチチャネルステレオ等を含む様々なエンコーディングを有し得る)にし得る。一部の実施形態では、演奏モジュールは特定の演奏スクリプトが提供された場合に常に同じ出力を生成する。
【0134】
一部の実施形態では、分析モジュールはフィードバック情報を受信し、(例えば、リアルタイムで、定期的に、管理者コマンド等に基づいて)作曲モジュールを構成するサーバにより実行されるモジュールである。一部の実施形態では、分析モジュールは、ユーザフィードバックを性能スクリプト及びループライブラリメタデータに関連付けために機械学習技術の組み合わせを用いる。
【0135】
図10は、一部の実施形態に係る、分析モジュール及び作曲モジュールを含む例示の音楽生成器システムを示すブロック図である。一部の実施形態では、図10のシステムは、ユーザが音楽のムード及びスタイルを直接制御することにより、潜在的に無限の音楽ストリームを生成するように構成されている。図示の実施形態では、システムは分析モジュール1010、作曲モジュール1020、演奏モジュール1030及びオーディオ出力装置1040を含む。一部の実施形態では、分析モジュール1010はサーバにより実現され、作曲モジュール1020及び演奏モジュール1030は1つ以上のクライアント装置により実現される。他の実施形態では、モジュール1010、1020及び1030は全てクライアント装置上に実現されるか又は全てサーバ側で実現され得る。
【0136】
図示の実施形態では、分析モジュール1010は1つ以上のアーティストパック1012を記憶し、特徴抽出モジュール1014、クライアントシミュレータモジュール1016及びディープニューラルネットワーク1018を実現する。
【0137】
一部の実施形態では、特徴抽出モジュール1014は、ループオーディオを分析した後にループライブラリにループを追加する(なお、一部のループは既に生成されたメタデータと共に受信され、分析を必要としない場合があり得る)。例えば、wav、aiff又はFLAC等のフォーマットの生のオーディオは、楽器の分類、ピッチ転写、ビートタイミング、テンポ、ファイル長及び複数の周波数ビンにおけるオーディオ振幅等の定量可能な音楽特性について分析され得る。分析モジュール1010は、例えばアーティスト又は機械リスニングによる手動のタグ付けに基づいてループのためのより抽象的な音楽特性又はムード記述を格納することができる。例えば、気分は、所与のループについての各カテゴリーに対する値の範囲を有する複数の離散カテゴリーを用いて定量化され得る。
【0138】
例えば、音符G2、Bb2及びD2が用いられ、最初のビートがファイルに6ミリ秒で始まり、テンポが122bpmであり、ファイルの長さが6483ミリ秒であり、ループが5つの周波数ビンにわたって0.3、0.5、0.7、0.3及び0.2の正規化振幅値を有することを特定するために分析されるループAを考えてみる。アーティストはループを下記のようなムード値を有する「ファンクジャンル」に分類し得る。
【0139】
【表2】
【0140】
分析モジュール1010はこの情報をデータベースに記憶し、クライアントは、例えばループパッケージとして情報のサブセクションをダウンロードしてもよい。アーティストパック1012を説明の目的のために示しているが、分析モジュール1010は様々の種類のループパッケージを作曲モジュール1020に提供してもよい。
【0141】
図示の実施形態では、クライアントシミュレータモジュール1016は様々な種類のフィードバックを分析し、ディープニューラルネットワーク1018によって支持される形式でフィードバック情報を提供する。図示の実施形態では、ディープニューラルネットワーク1018は、作曲モジュールにより生成される演奏スクリプトを入力として受信する。一部の実施形態では、ディープニューラルネットワークはこれらの入力に基づいて、例えば生成された音楽出力の種類と所望のフィードバックとの相関関係を改善するために作曲モジュールを構成する。例えば、ディープニューラルネットワークは、作曲モジュール1020を実現するクライアント装置に対して定期的に更新をプッシュし得る。なお、ディープニューラルネットワーク1018は説明の目的で示しており、開示の実施形態では強力な機械学習性能を提供し得るが、本開示の範囲を制限することを意図していない。様々な実施形態では、同様の機能を行うために様々な種類の機械学習技術が単独で又は様々な組み合わせで実施され得る。なお、機械学習モジュールは、一部の実施形態ではルールセット(例えば、配置ルール又は技術)を直接実施するために用いられ得るか又は例えば、図示の実施形態のディープニューラルネットワーク1018を用いて他の種類のルールセットを実施するモジュールを制御するために用いられ得る。
【0142】
一部の実施形態では、分析モジュール1010は、所望のフィードバックと特定のパラメータの使用との相関関係を改善するために、作曲モジュール1020のための作曲パラメータを生成する。例えば、実際のユーザフィードバックは、例えば、ネガティブフィードバックを減らすことを試みるために作曲パラメータを調整するのに用いられ得る。
【0143】
一例として、モジュール1010が、ネガティブフィードバック(例えば、明示的な低ランキング、低ボリュームリスニング、短いリスニング時間等)と、多数の層を用いた作曲との相関関係を発見する状況を考えてみる。一部の実施形態では、モジュール1010は誤差逆伝搬等の技術を用いて、より多くのトラックを追加するために用いられる確率パラメータを調整することでこの問題の頻度が減少することを特定する。例えば、モジュール1010は、確率パラメータを50%低減することによりネガティブフィードバックが8%減ることを予測し、そして低減を行い且つ更新されたパラメータを作曲モジュールにプッシュすることを決定し得る(なお、確率パラメータを以下で詳細に説明するが、統計モデルのための様々なパラメータのいずれかを同様に調整してもよい)。
【0144】
別の例として、モジュール1010が、ユーザがムードコントロールを高テンションに設定することにネガティブフィードバックが相関していることを発見する状況を考えてみる。また、低テンションタグを有するループと、高テンションを要求するユーザとの間の相関も見出され得る。この場合、モジュール1010は、ユーザが高テンションの音楽を要求する場合に高テンションのタグを有するループを選択する確率が高くなるようにパラメータを高め得る。そのため、機械学習は、作曲出力、フィードバック情報、ユーザ制御入力等を含む様々な情報に基づき得る。
【0145】
図示の実施形態では、作曲モジュール1020は、セクションシーケンサー1022、セクションアレンジャー1024、技術実施モジュール(technique implementation module)1026及びループ選択モジュール1028を含む。一部の実施形態では、作曲モジュール1020は、ループメタデータ及びユーザ制御入力(例えば、ムードコントロール)に基づいて作曲のセクションの編成及び構成を行う。
【0146】
一部の実施形態では、セクションシーケンサー1022は異なる種類のセクションを配列する。一部の実施形態では、セクションシーケンサー1022は動作の間に次の種類のセクションを連続的に出力する有限状態機械を実施する。例えば、作曲モジュール1020は、図10を参照して以下でさらに詳細に説明するように、イントロ、ビルドアップ、ドロップ、ブレイクダウン及びブリッジ等の異なる種類のセクションを用いるように構成され得る。さらに、各セクションは、例えば、トランジションイン(transition-in)サブセクション、メインコンテンツサブセクション及びトランジションアウト(transition-out)サブセクションを含む、セクション全体にわたって音楽がどのように変化するかを定義する複数のサブセクションを含み得る。
【0147】
一部の実施形態では、セクションアレンジャー1024は編曲ルールに従ってサブセクションを構成する。例えば、1つのルールはトラックを徐々に追加することによりトランジションインするよう指定し得る。別のルールは、トラックのセットにゲインを徐々に増やすことによりトランジションインするよう指定し得る。別のルールは、メロディーを作成するためにボーカルループをチョップするように指定し得る。一部の実施形態では、トラックに付加されるループライブラリ内のループの確率はセクション又はサブセクションにおける現在位置、経時的に別のトラックに重ねられるループ及び(生成された音楽コンテンツのためのターゲット属性を決定するのに用いられ得る)ムード変数等のユーザ入力パラメータの関数である。関数は、例えば機械学習に基づいて係数を調整することにより調整され得る。
【0148】
一部の実施形態では、技術実施モジュール1020は、例えば、アーティストによって指定されたルール又は特定のアーティストの作曲作品を分析することにより決定されたルールを追加することによりセクション編曲を促進するように構成されている。「技術」とは、特定のアーティストが技術レベルでどのように作曲ルールを実施するかを記述し得る。例えば、徐々にトラックを追加することによりトランジションインするよう指定する編曲ルールの場合、1つ技術はドラム、ベース、パッド、次にボーカルの順にトラックを追加することを示す一方で、別の技術はベース、パッド、ボーカル、次にドラムの順にトラックを追加することを示し得る。同様に、メロディーを作成するためにボーカルループをチョップするよう指定する編曲ルールの場合、技術は、毎秒ビートのボーカルをチョップし、次のチョップされたセクションに移動する前にチョップされたループのセクションを2回繰り返すことを示し得る。
【0149】
図示の実施形態では、ループ選択モジュール1028は、セクションアレンジャー1024によるセクションに含めるために、編曲ルール及び技術に従ってループを選択する。セクションが完成すると、対応する演奏スクリプトが生成されて演奏モジュール1030に送信され得る。演奏モジュール1030は、様々な粒度で演奏スクリプトの部分を受信し得る。これは、例えば、特定の長さの演奏のための演奏スクリプト全体、各セクションのための演奏スクリプト、各サブセクションのための演奏スクリプト等を含み得る。一部の実施形態では、編曲ルール、技術又はループ選択が統計的に、例えば、異なる時間のパーセントを用いる異なるアプローチで実施される。
【0150】
図示の実施形態では、演奏モジュール1030は、フィルタモジュール1031、エフェクトモジュール1032、ミックスモジュール1033、マスターモジュール1034及び実行モジュール1035を含む。一部の実施形態では、これらのモジュールは演奏スクリプトを処理し、オーディオ出力装置1010によりサポートされる形式で音楽データを生成する。演奏スクリプトは、再生すべきループ、いつそれらが再生されるべきか、どのエフェクトがモジュール1032により適用されるべきか(例えば、トラック毎又はサブセクション毎)、どのフィルターがモジュール1031によって適用されるべきかを指定し得る。
【0151】
例えば、演奏スクリプトは、特定のトラックに1000~20000Hzの範囲のローパスフィルターを0~5000ミリ秒適用するよう指定し得る。別の例として、演奏スクリプトは、特定のトラックに5000~15000ミリ秒で設定された0.2ウェットのリバーブを適用するように指定し得る。
【0152】
一部の実施形態では、ミックスモジュール1033は、組み合わされるトラックのための自動レベル制御を行うように構成されている。一部の実施形態では、ミックスモジュール1033は、組み合わされたトラックの周波数領域分析を用いて、エネルギーが過大又は過少の周波数を測定し、異なる周波数帯域のトラックにゲインを与えてミックスを均等にする。一部の実施形態では、マスターモジュール1034はマルチバンド圧縮、等化(EQ)又は手順の制限を行って、実行モジュール1035による最終的なフォーマッティングのためのデータを生成するように構成されている。図10の実施形態は、ユーザの入力又は他のフィードバック情報に従って様々な出力音楽コンテンツを自動的に生成し得るのと同時に、機械学習技術は、経時的なユーザ体験の改善を可能にする。
【0153】
図11は、一部の実施形態に係る、例示の音楽コンテンツのビルドアップセクションを示す図である。図10のシステムは、そのようなセクションを編曲ルール及び技術を適用することにより作曲し得る。図示の例では、ビルドアップセクションは3つのサブセクションと、ボーカル、パッド、ドラム、ベース及びホワイトノイズのための別々のトラックとを含む。
【0154】
図示の例では、サブセクションにおける移行はドラムループAを含み、ドラムループAはメインコンテンツサブセクションのためにも繰り返される。サブセクションにおける移行はベースループAも含む。図示のように、セクションのためのゲインは低く始まり、セクション全体を通して直線的に増加する(ただし、非直線的な増減が考えられる)。図示の例では、メインコンテンツ及びトランジションアウトサブセクションは様々なボーカル、パッド、ドラム及びベースループを含む。上述したように、開示した自動的にセクションをシーケンシングする技術、セクションを編曲する技術及び技術を実施するための技術は、様々なユーザ調節可能パラメータに基づいて出力音楽コンテンツのほぼ無限のストリームを生成し得る。
【0155】
一部の実施形態では、コンピュータシステムは図11と同様のインターフェイスを表示し、セクションを作曲するために用いる技術をアーティストが指定できるようにする。例えば、アーティストは、作曲モジュールのためのコードにパースされ得る図11に示すような構造を作成し得る。
【0156】
図12は、一部の実施形態に係る音楽コンテンツのセクションを編曲するための例示の技術を示す図である。図示の実施形態では、生成されたストリーム1210は、それぞれが開始サブセクション1222、展開サブセクション1224及び移行サブセクション1226を含む複数のセクション1220を含む。図示の例では、複数の種類の各セクション/サブセクションが点線で結ばれた表に示されている。図示の実施形態では、円形要素は編曲ツールの例であり、以下で説明する特定の技術を用いてさらに実施され得る。図示のように、様々な作曲決定が統計的パーセンテージに従って疑似ランダムに行われ得る。例えば、サブセクションの種類、特定の種類若しくはサブセクションのための編曲ツール又は編曲ツールを実施するために用いられる技術が統計的に決定され得る。
【0157】
図示の例では、所与のセクション1220は、イントロ、ビルドアップ、ドロップ、ブレイクダウン及びブリッジという5種類のうちの1つであり、それぞれはセクションにわたって強度を制御する異なる機能を有する。この例では、状態サブセクションは、低速ビルド、突然シフト又はミニマルという3種類タイプのうちの1つであり、それぞれ挙動が異なる。この例における展開サブセクションは、リデュース、トランスフォーム、アグメントという3種類のうちの1つである。この例では、移行サブセクションは、コラプス、ランプ、ヒントという3種類のうちの1つである。異なる種類のセクション及びサブセクションは、例えばルールに基づいて選択されてもよいし、疑似ランダムに選択されてもよい。
【0158】
図示の例では、異なる種類のサブセクションのための挙動は、1つ以上の編曲ツールを用いて実施される。スロービルドの場合、この例では、40%の割合でローパスフィルターが適用され、80%の割合でレイヤーが追加される。トランスフォーム展開サブセクションの場合、この例では、25%の割合でループがチョップされる。ワンショット、ドロップアウトビート、リバーブの適用、パッドの追加、テーマの追加、レイヤーの削除、ホワイトノイズを含む様々な追加の編曲ツールを示す。これらの例は説明を目的として含まれており、本開示の範囲を制限することを意図するものではない。さらに、説明を容易にするために、これらの例は完全ではない場合がある(例えば、実際の編曲は、通常はるかに多くの数の編曲ルールを伴い得る)。
【0159】
一部の実施形態では、1つ以上の編曲ツールは(アーティストのコンテンツの分析に基づいてアーティストが指定又は決定したものであり得る)特定の技術を用いて実施され得る。例えば、ワンショットは、サウンドエフェクト又はボーカルを用いて実施され、ループチョッピングはスタター又はチョッピングハーフ技術を用いて実施され、レイヤーの削除はシンセ又はボーカルを除去することにより実施され、ホワイトノイズはランプ又はパルス機能を用いて実施され得る。一部の実施形態では、所与の編曲ツールのために選択される特定の技術は、統計的機能に従って選択され得る(例えば、所与のアーティストの場合に30%の割合でレイヤーの削除によりシンセが除去され、70%の割合でボーカルが除去され得る)。上述したように、編曲ルール又は技術は、例えば機械学習を用いて既存の作曲作品を分析することにより自動的に決定され得る。
メソッドの例
【0160】
図13は、一部の実施形態に係る音楽生成システムをトレーニングするための方法を示すフロー図である。図13に示す方法は、とりわけ本明細書で開示するコンピュータ回路、システム、装置、素子又はコンポーネントのうちのいずれかと共に用いられ得る。様々な実施形態では、図示の方法要素のうちの一部は図示のものと異なる順番で同時に実施され得るか又は省略され得る。追加の方法要素が必要に応じて行われ得る。
【0161】
1310では、図示の実施形態では、コンピュータシステム上の音楽生成器は、複数のデジタル音楽断片から特定の長さの出力音楽コンテンツを生成し、出力音楽コンテンツは複数のデジタル音楽断片から生成された一連の異なる出力音楽コンテンツを含み、音楽生成器は解釈ルールセットにしたがって1つ以上の音楽生成パラメータを順次解釈することによりオーディオフォーマットの一連の異なる出力音楽コンテンツを生成する。
【0162】
1320で、図示の実施形態では、音楽生成器は、生成された出力音楽コンテンツから決定された強化入力を受信する。
【0163】
1330で、図示の実施形態では、音楽生成器のための音楽生成パラメータは、アルゴリズムを用いて強化入力に基づいて調整され、音楽生成パラメータは以前に生成された音楽生成パラメータ又はユーザ作成音楽生成パラメータのうちの少なくとも1つを含む。
【0164】
1340で、図示の実施形態では、調整された音楽生成パラメータに基づいて、複数のデジタル音楽断片から特定の長さの新たな出力音楽コンテンツが生成される。
【0165】
図14は、一部の実施形態に係る、ユーザ固有の音楽コントロール要素を制御するための方法のフロー図である。図14に示す方法は、とりわけ本明細書で開示するコンピュータ回路、システム、装置、素子又はコンポーネントのうちのいずれかと共に用いられ得る。様々な実施形態では、図示の方法要素のうちの一部は図示のものと異なる順番で同時に実施され得るか又は省略され得る。追加の方法要素が必要に応じて行われ得る。
【0166】
1410で、図示の実施形態では、コンピュータシステムは、ユーザ定義音楽コントロール要素を規定するユーザ入力を受信する。
【0167】
1420で、図示の実施形態では、コンピュータシステムは、1つ以上の作曲作品のためのユーザ定義音楽コントロール要素のラベルを規定するユーザ入力を受信する。
【0168】
1430で、図示の実施形態では、コンピュータシステムは、ラベルに基づいて、1つ以上の機械学習モデルが:ユーザ定義音楽コントロール要素に対するユーザ入力に基づいて、出力音楽コンテンツを生成するために組み合わされるべきオーディオトラックを選択するための1つ以上の作曲パラメータを調整することと、ユーザ定義音楽コントロール要素に対するユーザ入力に基づいて、選択されたオーディオトラックに基づいて、出力音楽コンテンツを生成するための1つ以上の演奏パラメータを調整することと、を行うようにトレーニングする。
【0169】
1440で、図示の実施形態では、コンピュータシステムは、複数のオーディオトラックを組み合わせることにより、1つ以上の作曲パラメータ及び1つ以上の演奏パラメータに従って、出力音楽コンテンツを生成させる。
【0170】
一部の実施形態では、コンピュータシステムは、1つ以上の機械学習モデルに基づく設定情報をユーザ装置に送信し、設定情報は、ユーザ定義音楽コントロール要素へのユーザ入力に基づいて、演奏パラメータをどのように調整するかを示す。一部の実施形態では、コンピュータシステムは、1つ以上の機械学習モデルに従って、ユーザ定義音楽コントロール要素へのユーザ入力に基づいて、1つ以上の作曲パラメータを調整する。一部の実施形態では、コンピュータシステムのユーザ装置は、設定情報に従って、ユーザ定義音楽コントロール要素へのユーザ入力に基づいて、1つ以上の作曲パラメータを調整する。
【0171】
一部の実施形態では、送信は、データターゲットを指定するために区切られた文字列を用い、当該方法は、文字列内のオフセットへのポインタを有するデータ構造に基づいて文字列を形成することをさらに含み、該文字列の形成は、既存の文字列へのプリペンド又はアペンドを含む。
【0172】
一部の実施形態では、トレーニングは、作曲パラメータと、ユーザ定義音楽コントロール要素へのユーザ入力との間の関係を明示的に規定するユーザ入力にさらに基づく。
【0173】
一部の実施形態では、1つ以上の作曲パラメータは、音楽セクション間のテンションを構築、維持及び軽減するためのパラメータ、オーディオファイルカテゴリを有効又は無効にするためのパラメータ、1つ以上のオーディオファイルカテゴリのための、音量、リバーブ量、遅延パンチ確率、遅延ウェットネス等の音楽的側面のうちの1つ以上を調整するためのパラメータを含む。一部の実施形態では、1つ以上の演奏パラメータは、フィルタパラメータ、エフェクトパラメータ及びミックスパラメータのうちの少なくとも1つの種類のパラメータを含む。
【0174】
図15は、一部の実施形態に係る、ユーザ固有の音楽コントロール要素に基づいて、音楽コンテンツを生成するための方法のフロー図である。図15に示す方法は、とりわけ本明細書で開示するコンピュータ回路、システム、装置、素子又はコンポーネントのうちのいずれかと共に用いられ得る。様々な実施形態では、図示の方法要素のうちの一部は図示のものと異なる順番で同時に実施され得るか又は省略され得る。追加の方法要素が必要に応じて行われ得る。
【0175】
1510で、図示の実施形態では、コンピュータシステムは設定情報を受信し、設定情報は、ユーザ定義音楽コントロール要素に対するユーザの調整に基づいて、1つ以上の演奏パラメータをどのように調整するかを規定し、1つ以上の演奏パラメータは選択されたオーディオトラックに基づいて出力音楽コンテンツを生成するためのものである。
【0176】
1520で、図示の実施形態では、コンピュータシステムは、第1のユーザインターフェイスを介してユーザ入力を受信し、ユーザ入力はユーザ定義音楽コントロール要素に対する調整を規定する。
【0177】
1530で、図示の実施形態では、コンピュータシステムは、ユーザ入力及び設定情報に基づいて1つ以上の演奏パラメータのうちの1つ以上を調整する。
【0178】
1540で、図示の実施形態では、コンピュータシステムは、1つ以上の調整された演奏パラメータに従って、複数のオーディオファイルを組み合わせることにより出力音楽コンテンツを生成する。
【0179】
一部の実施形態では、コンピュータシステムは、組み合わせるべき複数のオーディオファイルを示し、音楽セクション間の推移を示す作曲コントロール情報(例えば、作曲スクリプト)を受信する。一部の実施形態では、作曲コントロール情報は、(例えば、アーティストユーザインターフェイスを介してアーティストにより又は第1のユーザインターフェイスを介してエンドユーザによる)ユーザ定義音楽コントロール要素への調整を規定するユーザ入力に基づいて生成される。
【0180】
一部の実施形態では、ユーザ定義音楽コントロール要素は、設定情報を送信したサーバシステムによって生成される第2のユーザインターフェイスを介して定義される。一部の実施形態では、ユーザ定義音楽コントロール要素は、第1のユーザインターフェイスを介してユーザ入力を提供するユーザとは異なるユーザによって定義される。
【0181】
一部の実施形態では、コンピュータシステムは、設定情報のターゲットを示す区切られた文字列内の場所へのポインタを用いて、設定情報をパースする。
【0182】
本明細書の様々な実施形態において、新たな音楽コンテンツを自動的に生成することに関する技術が開示されている。一部の実施形態では、コンピュータシステムは、ユーザ定義音楽コントロール要素を指定するユーザ入力を受信する。コンピュータシステムは、ユーザ定義音楽コントロール要素に対するユーザの調整に基づいて、作曲及び演奏パラメータの両方を変更するよう機械学習モデルを訓練し得る。作曲及び演奏サブシステムが異なる装置上にある実施形態では、一方の装置が設定情報を別の装置に送信してもよく、その場合、設定情報は、ユーザ定義音楽コントロール要素に対するユーザ入力に基づいてパラメータをどのように調整するかを規定する。開示の技術は、個々のユーザのために個別のカスタム化を可能にしながら、人間のような音楽制作のための集中学習を促進し得る。また、開示の技術は、アーティストが独自の抽象的な音楽コントロールを定義し、それらのコントロールをエンドユーザに利用可能にし得る。
【0183】
以下の番号付きの項は、本明細書で開示した様々な非限定の実施形態を規定する。
セットA
A1.
コンピュータシステムにより、ユーザ定義音楽コントロール要素を規定するユーザ入力を受信することと、
前記コンピュータシステムにより、1つ以上の作曲作品のための前記ユーザ定義音楽コントロール要素のラベルを規定するユーザ入力を受信することと、
前記コンピュータシステムにより、前記ラベルに基づいて、1つ以上の機械学習モデルが、
前記ユーザ定義音楽コントロール要素へのユーザ入力に基づいて、出力音楽コンテンツを生成するために組み合わされるべきオーディオトラックを選択するための1つ以上の作曲パラメータを調整することと、
前記ユーザ定義音楽コントロール要素へのユーザ入力に基づいて、選択されたオーディオトラックに基づいて出力音楽コンテンツを生成するための1つ以上の演奏パラメータを調整することと、
を行うようにトレーニングする、ことと、
複数のオーディオトラックを組み合わせることにより、前記1つ以上の作曲パラメータ及び前記1つ以上の演奏パラメータに従って、出力音楽コンテンツを生成させることと、
を含む方法。
A2.
前記コンピュータシステムはサーバシステムであり、前記方法は、
前記1つ以上の機械学習モデルに基づいて、設定情報をユーザ装置に送信することであって、該設定情報は、前記ユーザ定義音楽コントロール要素へのユーザ入力に基づいて演奏パラメータをどのように調整するかを示す、こと、
をさらに含む、セットA内の先行する項に記載の方法。
A3.
前記コンピュータシステムにより、前記1つ以上の機械学習モデルに従って、前記ユーザ定義音楽コントロール要素へのユーザ入力に基づいて1つ以上の作曲パラメータを調整することをさらに含む、セットA内の先行する項に記載の方法。
A4.
前記ユーザ装置により、前記設定情報に従って、前記ユーザ定義音楽コントロール要素へのユーザ入力に基づいて1つ以上の作曲パラメータを調整することをさらに含む、セットA内の先行する項に記載の方法。
A5.
前記送信することは、データターゲットを特定するために区切された文字列を用い、前記方法は、文字列内のオフセットへのポインタを有するデータ構造に基づいて文字列を形成することをさらに含み、該文字列を形成することは、既存の文字列へのプリペンド又はアペンドを含む、セットA内の先行する項に記載の方法。
A6.
前記トレーニングすることは、作曲パラメータと、前記ユーザ定義音楽コントロール要素へのユーザ入力との関係を明示的に特定するユーザ入力にさらに基づく、セットA内の先行する項に記載の方法。
A7.
前記1つ以上の作曲パラメータは、音楽セクション間でテンションを構築すること、維持すること及び低減することのためのパラメータを含む、セットA内の先行する項に記載の方法。
A8.
前記1つ以上の作曲パラメータは、
オーディオファイルカテゴリの有効化又は無効化のためのパラメータと、
1つ以上のオーディオファイルカテゴリのための音楽的側面のうちの1つ以上を調整するためのパラメータであって、該音楽的側面は音量、リバーブ量、遅延パンチ確率及び遅延ウェットネスを含む、パラメータと、
を含む、セットA内の先行する項に記載の方法。
A9.
前記1つ以上の演奏パラメータは、フィルタパラメータ、エフェクトパラメータ及びミックスパラメータのうちの少なくとも1つの種類のパラメータを含む、セットA内の先行する項に記載の方法。
A10.
命令が記憶された非一時的コンピュータ読み取り可能媒体であって、該命令は、
設定情報を受信することであって、該設定情報は、ユーザ定義音楽コントロール要素に対するユーザ調整に基づいて、1つ以上の演奏パラメータをどのように調整するかを規定し、該1つ以上の演奏パラメータは、選択されたオーディオトラックに基づいて出力音楽コンテンツを生成するためのものである、ことと、
第1のユーザインターフェイスを介して、ユーザ入力を受信することであって、該ユーザ入力は、前記ユーザ定義音楽コントロール要素に対する調整を規定する、ことと、
前記ユーザ入力及び前記設定情報に基づいて、前記1つ以上の演奏パラメータのうちの1つ以上を調整することと、
前記1つ以上の調整された演奏パラメータに従って、複数のオーディオファイルを組み合わせることにより出力音楽コンテンツを生成することと、
を含む動作を行うためにコンピュータ装置によって実行可能である、非一時的コンピュータ読み取り可能媒体。
A11.
組み合わされるべき前記複数のオーディオファイルを示し且つ音楽セクション間の推移を示す作曲コントロール情報を受信することをさらに含む、セットA内の先行する項のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
A12.
前記作曲コントロール情報は、前記ユーザ定義音楽コントロール要素への調整を規定するユーザ入力に基づいて生成される、セットA内の先行する項のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
A13.
前記ユーザ定義音楽コントロール要素は、前記設定情報を送信したサーバシステムによって生成された第2のユーザインターフェイスを介して定義されている、セットA内の先行する項のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
A14.
前記ユーザ定義音楽コントロール要素は、前記第1のユーザインターフェイスを介して前記ユーザ入力を提供するユーザとは異なるユーザによって定義されている、セットA内の先行する項のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
A15.
前記設定情報のターゲットを示す区切られた文字列内の位置へのポインタを用いて前記設定情報をパースすることをさらに含む、セットA内の先行する項のいずれかに記載の非一時的コンピュータ読み取り可能媒体。
A16.
1つ以上のプロセッサを含む装置であって、
前記1つ以上のプロセッサは、
設定情報を受信することであって、該設定情報は、ユーザ定義音楽コントロール要素に対するユーザ調整に基づいて、1つ以上の演奏パラメータをどのように調整するかを規定し、該1つ以上の演奏パラメータは、選択されたオーディオトラックに基づいて出力音楽コンテンツを生成するためのものである、ことと、
第1のユーザインターフェイスを介して、ユーザ入力を受信することであって、該ユーザ入力は、前記ユーザ定義音楽コントロール要素に対する調整を規定する、ことと、
前記ユーザ入力及び前記設定情報に基づいて、前記1つ以上の演奏パラメータのうちの1つ以上を調整することと、
前記1つ以上の調整された演奏パラメータに従って、複数のオーディオファイルを組み合わせることにより出力音楽コンテンツを生成することと、
を行うように構成されている、装置。
A17.
前記1つ以上のプロセッサは、
組み合わされるべき前記複数のオーディオファイルを示し且つ音楽セクション間の推移を示す作曲コントロール情報を受信することであって、該作曲コントロール情報は、前記ユーザ定義音楽コントロール要素に対する調整を規定するユーザ入力に基づいて機械学習モデルによって生成されている、こと、
を行うようさらに構成されている、セットA内の先行する項のいずれかに記載の装置。
A18.
前記ユーザ定義音楽コントロール要素は、前記設定情報を送信したサーバシステムによって生成された第2のユーザインターフェイスを介して定義されている、セットA内の先行する項のいずれかに記載の装置。
A19.
前記1つ以上のプロセッサは、
前記設定情報のターゲットを示す区切られた文字列内の位置へのポインタを用いて前記設定情報をパースすること、
を行うようさらに構成されている、セットA内の先行する項のいずれかに記載の装置。
A20.
前記装置は、前記第1のユーザインターフェイスを表示するように構成されたディスプレイと、無線ネットワークに接続するように構成された1つ以上の無線ラジオとを含むモバイル装置である、セットA内の先行する項のいずれかに記載の装置。
A21.
命令が記憶された非一時的コンピュータ読み取り可能媒体であって、該命令は、セットA内の先行する項のいずれかに記載の方法によって行われる動作の任意の組み合わせを行うためにコンピュータ装置によって実行可能である、非一時的コンピュータ読み取り可能媒体。
A22.
1つ以上のプロセッサと、
プログラム命令が記憶された1つ以上のメモリと、
を含む装置であって、
前記プログラム命令は、セットA内の先行する項のいずれかに記載の方法によって行われる動作の任意の組み合わせを行うために前記1つ以上のプロセッサによって実行可能である、装置。
【0184】
本開示は、「実施形態」又は「実施形態」のグループ(例えば、「一部の実施形態」又は「様々な実施形態」)への言及を含む。実施形態は、開示の概念の異なる実施又はインスタンスである。「実施形態」、「一実施形態」、「特定の実施形態」等への言及は、必ずしも同じ実施形態を指すとは限らない。具体的に開示されたものに加えて、本開示の精神又は範囲内にある変更又は置換を含む、多数の可能な実施形態が予期される。
【0185】
本開示は、開示の実施形態から生じ得る潜在的な利点を説明し得る。これらの実施形態の全ての実施は、必ずしも潜在的な利点のいずれか又は全てを明示するとは限らない。特定の実施に対して利点が実現されるかどうかは多くの要因に依存し、その要因のいくつかは本開示の範囲外である。実際に、特許請求の範囲内にある実施が、開示した利点の一部又は全部を示さない可能性があるが理由が多くある。例えば、特定の実施は、開示の実施形態のうちの1つとの組み合わせで、開示した利点の1つ以上を否定又は減少させる、本開示の範囲外の他の回路を含み得る。さらに、特定の実施(例えば、実施技術又はツール)の準最適な設計実行も、開示した利点を否定又は減少させ得る。熟練した実施を想定しても、利点の実現は、実施が展開される環境状況等の他の要因に依然依存し得る。例えば、特定の実施に提供される入力は、本開示で対処される1つ以上の課題が特定の機会に生じるのを防ぐ可能性があり、その結果、その解決の利益が実現されない場合がある。本開示の外部の可能性のある要因の存在を考えると、本明細書で説明した潜在的な利点は、侵害を証明するために満たされなければならない特許請求の範囲の制限と解釈すべきでないことを明確に意図している。むしろ、そのような潜在的な利点の特定は、本開示の利益を有する設計者が利用可能な改善の種類を説明することを意図している。そのような利点が寛容に説明されていることは(例えば、特定の利点が「生じ得る」と記述は)、そのような利点が実際に実現できるかどうかについての疑いを伝えることを意図しているのではなく、むしろ、そのような利点の実現はしばしば追加的な要因に依存するという技術的現実を認識することを意図している。
【0186】
特段明記がない限り、実施形態は非限定的である。すなわち、開示の実施形態は、特定の特徴に関して単一の例のみが説明されている場合であっても、本開示に基づいて起草される特許請求の範囲を限定することを意図していない。開示の実施形態は、開示において反対の記述がない、限定的ではなく例示的であることを意図している。そのため、本願は、特許請求の範囲が開示の実施形態に加えて、本開示の利益を有する当業者には明らかであろうそのような代替、変更及び同等物を網羅できるようにすることを意図している。
【0187】
例えば、本願における特徴は、任意の適切な方法で組み合わせられ得る。したがって、本願(又は優先権を主張する出願)の手続きの間に、そのような特徴の組み合わせに対して新たな請求項が作され得る。とりわけ、添付の特許請求の範囲を参照して、従属請求項からの特徴は、必要に応じて、他の独立請求項に従属する請求項を含む他の従属請求項の特徴と組み合わせられ得る。同様に、それぞれの独立請求項からの特徴は、必要に応じて組み合わせられ得る。
【0188】
したがって、追加された従属請求項は、それぞれが1つの他の請求項に従属するように起草され得るが、追加の従属も考えられる。本開示と一致する従属請求項内の特徴の任意の組み合わせが考えられ、本願又は別の出願で要求され得る。つまり、組み合わせは、添付の特許請求の範囲に具体的に列挙されているものに限定されない。
【0189】
適切な場合には、ある形式又は法定の種類(例えば、装置)で起草された請求項は、別の形式又は法定の種類(例えば、方法)の対応する請求項をサポートすることを意図しているとも考えられる。
【0190】
本開示は法的文書であるため、様々な用語及び語句は行政及び司法的な解釈の対象となり得る。以下の段落及び本開示全体を通じて提供されている定義を用いて、本開示に基づいて起草された請求項をどのように解釈するかを決定すべきことをここに公告する。
【0191】
あるアイテムの単数形(すなわち、「a」、「an」又は「the」が前に付いている名詞又は名詞句)への言及は、特段明示がない限り、「1つ以上」を意味することを意図している。そのため、特許請求の範囲における「1つのアイテム」への言及は、付随する文脈なしに、そのアイテムの追加の事例を排除しない。「複数」のアイテムとは、2つ以上のアイテムの集合を意味する。
【0192】
「~し得る」という用語は、本明細書では許容的な意味(すなわち、潜在性を有するか又は可能であること)で用いられ、強制的な意味(すなわち、絶対)ではない。
【0193】
「含む」及び「包含する」という用語及びその形式は、オープンエンドであり、意味「限定されないが、を含む」ことを意味する。
【0194】
本開示において「又は」という用語が選択肢の一覧に関して用いられる場合、別段明記がない限り、一般に包括的な意味で用いられているものと理解される。そのため、「x又はy」の記載は「x又はy又はその両方」と同等であり、そのため、1)yではなく
x、2)xではなくy及び3)x及びyの両方をカバーする。他方、「x又はyいずれか」等の表現は、「又は」が排他的な意味で用いられていることを明確にする。
【0195】
「w、x、y又はz又はそれらの組み合わせ」又は「w、x、y及びzのうち少なくとも1つ」との記載は、セット内の単一の要素から要素の合計数までを含む全ての可能性を網羅することを意図している。例えば、セット「w、x、y、z」を考えた場合、これらの表現は、セットの任意の単一の要素(例えば、x、y、zではなくw)、任意の2つの要素(例えば、y又はzではなくw及びx)、任意の3つの要素(たとえば、zではなくw、x及びy)及び4つの要素の全てをカバーする。そのため「w、x、y及びzのうち少なくとも1つ」という表現は、セット「w、x、y、z」のうちの少なくとも1つを指すため、この要素の一覧内の全ての可能な組み合わせをカバーする。この表現は、wの少なくとも1つのインスタンス、xの少なくとも1つのインスタンス、yの少なくとも1つのインスタンス、zの少なくとも1つのインスタンスがあることを要求するものではない。
【0196】
本開示では、名詞又は名詞句の前に様々な「ラベル」を先行し得る。別段明示がない限り、特徴に用いられる異なるラベル(例えば、「第1の回路」、「第2の回路」、「特定の回路」、「所与の回路」等)は、特徴の異なるインスタンスを指す。加えて、「第1」、「第2」及び「第3」といったラベルが特徴に適用された場合、別段明示がない限り、いかなる種類の順序付け(例えば、空間的、時間的、論理的等)も含意しない。
【0197】
本明細書において、「~に基づく」という用語は、決定に影響を及ぼす1つ以上の要因を記述するために用いられる。この用語は、追加の要因が決定に影響を及ぼす可能性を除外するものではない。すなわち、決定は、特定された要因のみに基づき得るか又は特定された要因に加えて他の特定されていない要因に基づき得る。「Bに基づいてAを決定する」という表現を考えた場合、この表現は、BはAを決定するために用いられた要因であり得るか又はAの決定に影響を与えることを規定する。この表現は、Aの決定が他の要因、例えばCにも基づき得ることを除外するものではない。この表現は、AがBのみに基づいて決定される実施形態をカバーすることを意図する。本明細書で用いる「基づく」という用語は、「少なくとも部分的に基づく」という用語と同意である。
【0198】
「~に応答して」及び「~に反応して」という表現は、効果を引き起こす1つ以上の要因を記述する。この表現は、追加の要因が、特定の要因と共同で又は特定の要因から独立して、効果に影響を与え得るか、その他の方法で効果を引き起こし得る可能性を排除しない。つまり、効果はそれらの要因にのみに応答し得るか又は特定の要因に加えて、他の不特定の要因にも応答し得る。「Bに応答してAを行う」という表現を考えてみる。この表現は、BがAのパフォーマンスを引き起こす要因であること又はAの特定の結果を引き起こす要因であることを規定する。この表現は、Aを行うことがC等の他の要因にも応答したものであり得ることも除外しない。この表現は、Aを行うことがB及びCに共同で応答したものであり得ることも妨げない。この表現は、Bに応答してのみAが行われる実施形態をカバーすることも意図している。本明細書で用いる「~に応答して」という表現は、「少なくとも部分的に反応して」という表現と同義である。同様に、「~に応答して」という表現は、「少なくとも部分的に応答して」という表現と同義である。
【0199】
本開示内では、異なるエンティティ(様々に「ユニット」、「回路」、他のコンポーネント等と様々な形で言及され得る)は、1つ以上のタスク又は動作を行うように「構成」されると記載又はクレームされ得る。[1つ以上のタスクを行う]ように構成された[エンティティ]という定式は、本明細書では、構造(即ち、物理的な何か)を指すために用いられている。より具体的には、この定式は、係る構造が、動作中に1つ以上のタスクを行うように配置されていることを示すために用いられる。構造は、現在動作中でなくても、あるタスクを行うように「構成されている」と言うことができる。そのため、あるタスクを行うように「構成されている」と記載又はクレームされているエンティティは、プロセッサユニットと、係るタスクを実施するために実行可能な命令を記憶するメモリとを有する装置、回路、システム等の物理的な何かを表す。この表現は、本明細書では無形のものを表すためには用いられていない。
【0200】
場合によっては、様々なユニット/回路/コンポーネントが、一連のタスク又は動作を実行するものとして本明細書で説明され得る。これらのエンティティは、特に明記されていなくても、これらのタスク/動作を行うように「構成」されていることが理解されよう。
【0201】
「構成されている」という用語は、「構成可能である」ことを意味することを意図していない。例えば、プログラムされていないFPGAは、ある特定の機能を行うように「構成されている」とは考えられない。しかしながら、このプログラムされていないFPGAは、その機能を行うように「構成可能」であり得る。適切なプログラミングの後、FPGAはその特定の機能を行うように構成され得る。
【0202】
本開示に基づく米国特許出願の目的のために、添付の特許請求の範囲において、ある構造が1つ以上のタスクを行うように「構成されている」といの記載は、その記載の要素について米国特許法第112条(f)を行使することを意図したものではないと明示する。したがって、本開示に基づく米国特許出願の手続きの間に第112条(f)の行使を出願人が希望する場合は、[機能を行う]「ための手段」を用いるクレーム要素を記載する。
【0203】
本開示では異なる「回路」が説明され得る。これらの回路又は「電気回路」は、組合せ論理、クロック記憶装置(例えば、フリップフロップ、レジスタ、ラッチ等)、有限状態機械、メモリ(例えば、ランダムアクセスメモリ、組み込みダイナミックランダムアクセスメモリ)、プログラマブルロジックアレイ等、様々な種類の回路要素を含むハードウェアを構成する。回路はカスタム設計され得るか、標準ライブラリから取られ得る様々な実施では、回路は、必要に応じて、デジタルコンポーネント、アナログコンポーネント又は両方の組み合わせを含み得る。特定の種類の回路は、一般的に「ユニット」(例えば、デコードユニット、算術論理ユニット(ALU)、機能ユニット、メモリ管理ユニット(MMU)等)と呼ばれ得る。そのようなユニットは回路又は電気回路とも呼ばれ得る。
【0204】
そのため、図面に図示され、本明細書に記載されている開示の回路/ユニット/コンポーネント及びその他の要素は、先行する段落で説明したもの等のハードウェア要素を含む。多くの場合、特定の回路内のハードウェア要素の内部配置は、その回路の機能を記載することによって特定され得る。例えば、特定の「デコードユニット」は、「命令のオペコードを処理し、その命令を複数の機能ユニットのうちの1つ以上にルーティングする」機能を行うものとして記載され、これはデコードユニットがこの機能を行うように「構成されている」ことを意味する。この機能の仕様は、コンピュータの技術分野の当業者にとって、回路のための可能な構造のセットを暗示するのに十分である。
【0205】
様々な実施形態において、先行する段落で説明したように、回路、ユニット及び他の要素は、それらが実施するように構成された機能又は動作によって定義され得る。お互いに関するそのような回路/ユニット/コンポーネントの配置及びそれらがやりとりする方法は、マイクロアーキテクチャ定義の物理的な実施を形成するために、最終的に集積回路で製造されるか又はFPGAにプログラムされるハードウェアのマイクロアーキテクチャ定義を形成する。そのため、マイクロアーキテクチャの定義は、その全てがマイクロアーキテクチャの定義によって記述されるより広範な構造に分類される多くの物理的な実施が派生し得る構造として当業者によって認識される。つまり、本開示に従って提供されるマイクロアーキテクチャの定義を提示された当業者は、不当な実験をせず且つ通常のスキルを適用して、回路/ユニット/コンポーネントの記述をVerilog又はVHDL等のハードウェア記述言語(HDL)でコーディングすることにより構造を実施する。HDLの記述は、機能的に見えるような方法で多くの場合表現される。しかし、この分野の当業者にとって、このHDLの記述は、回路、ユニット又はコンポーネントの構造を次のレベルの実施の詳細に変換するために用いられる方法である。そのようなHDLの記述は、行動コード(通常合成可能でない)、レジスタ転送言語(RTL)コード(行動コードとは対照的に通常合成可能である)又は構造コード(例えば、論理ゲートとその接続性を規定するネットリスト)の形式を取り得る。HDL記述は、その後、所与の集積回路製造技術のために設計されたセルのライブラリに対して合成され、タイミング、電力及びその他の理由によって変更され、最終的な設計データベースとなり、ファウンドリに送信されてマスクを生成し、最終的に集積回路が生成される。一部のハードウェア回路又はその一部は回路図エディタでカスタム設計され、合成回路とともに集積回路設計に取り込まれ得る。集積回路は、トランジスタ及び他の回路素子(例えば、コンデンサ、抵抗器、インダクタ等の受動素子)を含んでもよく、トランジスタと回路素子間を相互接続し得る。一部の実施形態では、ハードウェア回路を実施するために互いに連結された複数の集積回路を実施し得る及び/又は一部の実施形態では個別の要素が用いられ得る。あるいは、HDL設計は、フィールドプログラマブルゲートアレイ(FPGA)等のプログラマブルロジックアレイに合成され、FPGAで実施され得る。回路グループの設計と、その後のこれらの回路の低レベル実施との間のこの分離は、一般的に、このプロセスは回路実施プロセスの異なる段階で行われるため、回路又はロジック設計者が、回路が何を行うように構成されているかの記述を超えて、低レベル実施のための特定の構造セットを指定しないというシナリオをもたらす。
【0206】
回路の同じ仕様を実施するために、回路要素の多くの異なる低レベルの組み合わせが使用され得るという事実は、その回路の多数の同等の構造をもたらす。上述したように、これらの低レベルの回路実施は、製造技術、集積回路を製造するために選択されたファウンドリ、特定のプロジェクトのために提供されたセルのライブラリ等の変更によって異なり得る。これらの異なる実施を作成するために異なる設計ツール又は方法論によって行われる選択は多くの場合任意であり得る。
【0207】
さらに、所与の実施形態の場合、回路の特定の機能仕様の単一の実施が多数のデバイス(例えば、数百万個のトランジスタ)を含むことは一般的である。したがって、この情報の量が膨大であるため、単一の実施形態を実施するために用いられる低レベル構造の完全な説明は、多くの一連の同等の可能な実施はもちろん提供することは現実的ではない。そのため、本開示は、業界で一般的に用いられている機能的省略形を用いた回路の構造について説明する。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11
図12
図13
図14
図15
【国際調査報告】