(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023130095
(43)【公開日】2023-09-20
(54)【発明の名称】音響生成方法、音響生成システムおよびプログラム
(51)【国際特許分類】
G10H 5/00 20060101AFI20230912BHJP
G06N 20/00 20190101ALI20230912BHJP
【FI】
G10H5/00
G06N20/00 130
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022034567
(22)【出願日】2022-03-07
(71)【出願人】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】110003177
【氏名又は名称】弁理士法人旺知国際特許事務所
(72)【発明者】
【氏名】西村 方成
【テーマコード(参考)】
5D478
【Fターム(参考)】
5D478AA03
(57)【要約】
【課題】音符列に対して適切なアタックが付与された楽器音の音響データ列を生成する。
【解決手段】音響生成システムは、音符列の特徴を表す第1制御データ列Xと、音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列Yとを取得する制御データ列取得部31と、第1制御データ列Xと第2制御データ列Yとを訓練済の生成モデルMbにより処理することで、第2制御データ列Yが表す演奏動作に対応するアタックを有する音符列の楽器音を表す音響データ列Zを生成する音響データ列生成部33とを具備する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得し、
前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する、
コンピュータシステムにより実現される音響生成方法。
【請求項2】
前記第1生成モデルは、
参照音符列の特徴を表す第1訓練用制御データ列、および、前記参照音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2訓練用制御データ列と、
前記参照音符列の楽器音を表す訓練用音響データ列と、
を含む訓練データを利用して訓練されたモデルである
請求項1の音響生成方法。
【請求項3】
前記第1制御データ列および前記第2制御データ列の取得においては、
前記音符列を表す音符データ列から前記第1制御データ列を生成し、
訓練済の第2生成モデルにより前記音符データ列を処理することで、前記第2制御データ列を生成する
請求項1または請求項2の音響生成方法。
【請求項4】
前記第2制御データ列は、管楽器のタンギングに関する特徴を表す
請求項1から請求項3の何れかの音響生成方法。
【請求項5】
前記第2制御データ列は、管楽器の吹奏における呼気または吸気に関する特徴を表す
請求項1から請求項3の何れかの音響生成方法。
【請求項6】
前記第2制御データ列は、擦弦楽器のボウイングに関する特徴を表す
請求項1から請求項3の何れかの音響生成方法。
【請求項7】
時間軸上の複数の単位期間の各々において、
前記第1制御データ列および第2制御データ列の取得と、
前記音響データ列の生成とが実行される
請求項1から請求項6の何れかの音響生成方法。
【請求項8】
音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得する制御データ列取得部と、
前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する音響データ列生成部と
を具備する音響生成システム。
【請求項9】
音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得する制御データ列取得部、および、
前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する音響データ列生成部、
としてコンピュータシステムを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、楽器音を表す音響データを生成する技術に関する。
【背景技術】
【0002】
所望の音を合成する技術が従来から提案されている。例えば非特許文献1には、訓練済の生成モデルを利用して、ユーザが供給する音符列に対応する合成音を生成する技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Blaauw, Merlijn, and Jordi Bonada. "A NEURAL PARAMETRIC SINGING SYNTHESIZER." arXiv preprint arXiv: 1704.03809v3 (2017)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従前の合成技術では、音符列に対して適切なアタックを有する合成音を生成することが困難である。例えば、音符列の音楽的な特徴からは明瞭なアタックで発音されるべきであるのに、実際にはアタックが曖昧な楽音が生成される場合がある。以上の事情を考慮して、本開示のひとつの態様は、音符列に対して適切なアタックが付与された楽器音の音響データ列を生成することを目的とする。
【課題を解決するための手段】
【0005】
以上の課題を解決するために、本開示のひとつの態様に係る音響生成方法は、音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得し、前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する。
【0006】
本開示のひとつの態様に係る音響生成システムは、音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得する制御データ列取得部と、前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する音響データ列生成部とを具備する。
【0007】
本開示のひとつの態様に係るプログラムは、音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得する制御データ列取得部、および、前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する音響データ列生成部、としてコンピュータシステムを機能させる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態における情報システムの構成を例示するブロック図である。
【
図2】音響生成システムの機能的な構成を例示するブロック図である。
【
図4】合成処理の詳細な手順を例示するフローチャートである。
【
図5】機械学習システムの機能的な構成を例示するブロック図である。
【
図6】第1学習処理の詳細な手順を例示するフローチャートである。
【
図7】第1学習処理の詳細な手順を例示するフローチャートである。
【
図8】第4実施形態における音響生成システムの機能的な構成を例示するブロック図である。
【
図9】第5実施形態における第2制御データ列の模式図である。
【
図10】変形例における第2制御データ列の模式図である。
【
図11】変形例における第2制御データ列の模式図である。
【
図12】変形例における第2制御データ列の模式図である。
【
図13】変形例における生成モデルの説明図である。
【発明を実施するための形態】
【0009】
A:第1実施形態
図1は、第1実施形態に係る情報システム100の構成を例示するブロック図である。情報システム100は、音響生成システム10と機械学習システム20とを具備する。音響生成システム10と機械学習システム20とは、例えばインターネット等の通信網200を介して相互に通信する。
【0010】
[音響生成システム10]
音響生成システム10は、当該システムのユーザから供給される特定の楽曲の演奏音(以下「目標音」という)を生成するコンピュータシステムである。第1実施形態の目標音は、管楽器の音色を有する楽器音である。
【0011】
音響生成システム10は、制御装置11と記憶装置12と通信装置13と放音装置14とを具備する。音響生成システム10は、例えばスマートフォン、タブレット端末またはパーソナルコンピュータ等の情報端末により実現される。なお、音響生成システム10は、単体の装置で実現されるほか、相互に別体で構成された複数の装置でも実現される。
【0012】
制御装置11は、音響生成システム10の各要素を制御する単数または複数のプロセッサで構成される。例えば、制御装置11は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、SPU(Sound Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、またはASIC(Application Specific Integrated Circuit)等の1種類以上のプロセッサにより構成される。制御装置11は、目標音の波形を表す音響信号Aを生成する。
【0013】
記憶装置12は、制御装置11が実行するプログラムと、制御装置11が使用する各種のデータとを記憶する単数または複数のメモリである。記憶装置12は、例えば磁気記録媒体または半導体記録媒体等の公知の記録媒体で構成される。複数種の記録媒体の組合せにより記憶装置12が構成されてもよい。なお、音響生成システム10に対して着脱される可搬型の記録媒体、または制御装置11が通信網200を介してアクセス可能な記録媒体(例えばクラウドストレージ)が、記憶装置12として利用されてもよい。
【0014】
記憶装置12は、ユーザが供給した楽曲を表す楽曲データDを記憶する。具体的には、楽曲データDは、楽曲を構成する複数の音符の各々について音高と発音期間とを指定する。発音期間は、例えば音符の始点と継続長とにより指定される。例えば、MIDI(Musical Instrument Digital Interface)規格に準拠した音楽ファイルが楽曲データDとして利用される。なお、ユーザは、音楽的な表情を表す演奏記号等の情報を、楽曲データDに含めてもよい。
【0015】
通信装置13は、通信網200を介して機械学習システム20と通信する。なお、音響生成システム10とは別体の通信装置13を、音響生成システム10に対して有線または無線により接続してもよい。
【0016】
放音装置14は、音響信号Aが表す目標音を再生する。放音装置14は、例えば、ユーザに音を提供するスピーカまたはヘッドホンである。なお、音響信号Aをデジタルからアナログに変換するD/A変換器と、音響信号Aを増幅する増幅器とについては、便宜的に図示が省略されている。また、音響生成システム10とは別体の放音装置14を、音響生成システム10に対して有線または無線により接続してもよい。
【0017】
図2は、音響生成システム10の機能的な構成を例示するブロック図である。制御装置11は、記憶装置12に記憶されたプログラムを実行することで、音響信号Aを生成するための複数の機能(制御データ列取得部31、音響データ列生成部32および信号生成部33)を実現する。
【0018】
制御データ列取得部31は、第1制御データ列Xと第2制御データ列Yとを取得する。具体的には、制御データ列取得部31は、時間軸上の複数の単位期間の各々において、第1制御データ列Xおよび第2制御データ列Yを取得する。各単位期間は、楽曲の各音符の継続長と比較して充分に短い時間長の期間(フレーム窓のホップサイズ)である。例えば、窓サイズはホップサイズの2~20倍であり(窓の方が長い)、ホップサイズは2~20ミリ秒であり、窓サイズは20~60ミリ秒である。第1実施形態の制御データ列取得部31は、第1処理部311と第2処理部312とを具備する。
【0019】
第1処理部311は、単位期間毎に音符データ列Nから第1制御データ列Xを生成する。音符データ列Nは、楽曲データDのうち各単位期間に対応する部分である。任意の1個の単位期間に対応する音符データ列Nは、楽曲データDのうち当該単位期間を含む期間(以下「処理期間」という)内の部分である。処理期間は、単位期間の前方の期間と後方の期間とを含む期間である。すなわち、音符データ列Nは、楽曲データDが表す楽曲のうち処理期間内の音符の時系列(以下「音符列」という)を指定する。
【0020】
第1制御データ列Xは、音符データ列Nが指定する音符列の特徴を表す任意の形式のデータである。任意の1個の単位期間における第1制御データ列Xは、楽曲の複数の音符のうち当該単位期間を含む音符(以下「対象音符」という)の特徴を示す情報である。例えば、制御データ列Xの示す特徴は、当該単位区間を含む音符の特徴(例えば、音高、オプションで時間長)を含む。また、第1制御データ列Xは、処理期間内における対象音符以外の音符の特徴を示す情報を含む。例えば、第1制御データ列Xは、当該単位区間を含む音符の前の音符と後の音符の少なくとも一方の音符の特徴(例えば、音高)を含む。また、第1制御データ列Xは、対象音符とその直前または直後の音符との音高差を含んでもよい。
【0021】
第1処理部311は、音符データ列Nに対する所定の演算処理により第1制御データ列Xを生成する。なお、第1処理部311は、深層ニューラルネットワーク(DNN:Deep Neural Network)等で構成される生成モデルを利用して第1制御データ列Xを生成してもよい。生成モデルは、音符データ列Nと第1制御データ列Xとの関係を機械学習により学習した統計的推定モデルである。第1制御データ列Xは、音響生成システム10が生成すべき目標音の音楽的な条件を指定するデータである。
【0022】
第2処理部312は、単位期間毎に音符データ列Nから第2制御データ列Yを生成する。第2制御データ列Yは、管楽器の演奏動作を表す任意の形式のデータである。具体的には、第2制御データ列Yは、管楽器の演奏時の各音符のタンギングに関する特徴を表す。タンギングは、演奏者の舌の運動により気流を制御(例えば遮断または解放)する演奏動作である。管楽器の楽音のアタックに関する強度または明瞭性等の音響特性が、タンギングにより制御される。すなわち、第2制御データ列Yは、各音符に対応する楽器音のアタックを制御する演奏動作を表すデータである。
【0023】
図3は、第2制御データ列Yの模式図である。第1実施形態における第2制御データ列Yは、タンギングの種類(以下「タンギング種類」という)を指定する。タンギング種類は、以下に例示する6種類(T,D,L,W,P,B)のタンギングの何れか、またはタンギングが発生しないことである。タンギング種類は、管楽器の演奏の方法および楽器音の特性に着目した分類である。T型、D型およびL型のタンギングは、演奏者の舌を利用するタンギングである。他方、W型、P型およびB型のタンギングは、利用者の舌と唇とを併用するタンギングである。
【0024】
T型のタンギングは、楽器音のアタックとサステインとの音量差が大きいタンギングである。T型のタンギングは、例えば無声子音の発音に近似する。すなわち、T型のタンギングによれば、楽器音の発音の直前に気流が舌により遮断されるため、発音前に明瞭な無音区間が存在する。
【0025】
D型のタンギングは、楽器音におけるアタックとサステインとの音量差がT型と比較して小さいタンギングである。D型のタンギングは、例えば有声子音の発音に近似する。すなわち、D型のタンギングによれば、T型のタンギングと比較して発音前の無音区間が短いため、相前後する楽器音が短い間隔で連続するレガートタンギングに好適である。
【0026】
L型のタンギングは、楽器音におけるアタックおよびディケイの変化が殆ど観測されないタンギングである。L型のタンギングにより発音される楽器音は、サステインのみで構成される。
【0027】
W型のタンギングは、演奏者が唇を開閉するタンギングである。W型のタンギングにより発音される楽器音は、アタックおよびディケイの期間内において唇の開閉に起因した音高の変化が観測される。
【0028】
P型のタンギングは、W型のタンギングと同様に唇を開閉するタンギングである。P型のタンギングは、W型のタンギングと比較して強い発音時に使用される。B型のタンギングは、P型のタンギングと同様に唇を開閉させるタンギングである。B型のタンギングは、P型のタンギングを有声子音の発音に近似させた関係にある。
【0029】
第2制御データ列Yは、以上に例示した6種類のタンギングの何れか、またはタンギングが発生しないことを指定する。具体的には、第2制御データ列Yは、相異なる種類のタンギングに対応する6個の要素E_1~E_6で構成される。任意の1種類のタンギングを指定する第2制御データ列Yは、6個の要素E_1~E_6のうち当該種類に対応する1個の要素Eが数値「1」に設定され、残余の5個の要素Eが「0」に設定されたone-hotベクトルである。例えば、T型のタンギングを表す第2制御データ列Yにおいては、1個の要素E_1が「1」に設定され、残余の5個の要素E_2~E_6が「0」に設定される。また、全部の要素E_1~E_6が「0」に設定された第2制御データ列Yは、タンギングが発生しないことを意味する。なお、
図3における「1」と「0」とを置換したone-cold形式により、第2制御データ列Yが設定されてもよい。
【0030】
図2に例示される通り、第2処理部312による第2制御データ列Yの生成には、生成モデルMaが利用される。生成モデルMaは、入力としての音符データ列Nと出力としてのタンギング種類との間の関係を機械学習により学習した訓練済モデルである。すなわち、生成モデルMaは、音符データ列Nに対して統計的に妥当なタンギング種類を出力する。第2処理部312は、訓練済の生成モデルMaを用いて音符データ列Nを処理することで、各音符の奏法データを推定し、さらに、その奏法データに基づいて第2制御データ列Yを単位期間毎に生成する。具体的には、第2処理部312は、生成モデルMaを用いて、各音符毎に、その音符を含む音符データ列Nを処理することで、その音符のタンギング種類を示す奏法データPを推定し、その音符に対応する単位期間の各々に、その奏法データPが示すのと同じタンギング種類を示す第2制御データYを出力する。つまり、第2処理部312は、各単位期間に、その単位期間を含む音符について推定されたタンギング種類を指定する第2制御データYを出力する。
【0031】
生成モデルMaは、音符毎に、音符データNからタンギング種類を示す奏法データPを推定する演算を制御装置11に実行させるプログラムと、当該演算に適用される複数の変数(加重値およびバイアス)との組合せで実現される。生成モデルMaを実現するプログラムおよび複数の変数は、記憶装置12に記憶される。生成モデルMaの複数の変数は、機械学習により事前に設定される。生成モデルMaは「第2生成モデル」の一例である。
【0032】
生成モデルMaは、例えば深層ニューラルネットワークで構成される。例えば、再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、または畳込ニューラルネットワーク(CNN:Convolutional Neural Network)等の任意の形式の深層ニューラルネットワークが生成モデルMaとして利用される。複数種の深層ニューラルネットワークの組合せで生成モデルMaが構成されてもよい。また、長短期記憶(LSTM:Long Short-Term Memory)またはAttention等の付加的な要素が生成モデルMaに搭載されてもよい。
【0033】
図2に例示される通り、制御データ列取得部31による以上の処理により、制御データ列Cが単位期間毎に生成される。各単位期間の制御データ列Cは、当該単位期間について第1処理部311が生成した第1制御データ列Xと、当該単位期間について第2処理部312が生成した第2制御データ列Yとを含む。制御データ列Cは、例えば第1制御データ列Xと第2制御データ列Yとを相互に連結(concatenate)したデータである。
【0034】
図2の音響データ列生成部32は、制御データ列C(第1制御データ列Xおよび第2制御データ列Y)を利用して音響データ列Zを生成する。音響データ列Zは、目標音を表す任意の形式のデータである。具体的には、音響データ列Zは、第1制御データ列Xが表す音符列に対応し、かつ、第2制御データ列Yが表す演奏動作に対応するアタックを有する目標音を表す。すなわち、第2制御データ列Yが表す演奏動作により音符データ列Nの音符列を演奏した場合に管楽器から発音される楽音が、目標音として生成される。
【0035】
具体的には、各音響データZは、目標音の周波数スペクトルの包絡を表すデータである。具体的には、各単位期間の制御データCに応じて、当該単位期間に対応する音響データZが生成される。音響データ列Zは、単位期間よりも長い1フレーム窓分の波形サンプル系列に対応する。以上の説明の通り、制御データ列取得部31による制御データCの取得と、音響データ列生成部32による音響データZの生成とは、単位期間毎に実行される。
【0036】
音響データ列生成部32による音響データ列Zの生成には、生成モデルMbが利用される。生成モデルMbは、単位期間毎に、その単位期間の制御データCに基づいて、その単位期間の音響データZを推定する。生成モデルMbは、入力としての制御データ列Cと出力としての音響データ列Zとの間の関係を機械学習により学習した訓練済モデルである。すなわち、生成モデルMbは、制御データ列Cに対して統計的に妥当な音響データ列Zを出力する。音響データ列生成部32は、生成モデルMbにより制御データ列Cを処理することで、音響データ列Zを生成する。
【0037】
生成モデルMbは、制御データ列Cから音響データ列Zを生成する演算を制御装置11に実行させるプログラムと、当該演算に適用される複数の変数(加重値およびバイアス)との組合せで実現される。生成モデルMbを実現するプログラムおよび複数の変数は、記憶装置12に記憶される。生成モデルMbの複数の変数は、機械学習により事前に設定される。生成モデルMbは「第1生成モデル」の一例である。
【0038】
生成モデルMbは、例えば深層ニューラルネットワークで構成される。例えば、再帰型ニューラルネットワーク、または畳込ニューラルネットワーク等の任意の形式の深層ニューラルネットワークが生成モデルMbとして利用される。複数種の深層ニューラルネットワークの組合せで生成モデルMbが構成されてもよい。また、長短期記憶(LSTM)等の付加的な要素が生成モデルMbに搭載されてもよい。
【0039】
信号生成部33は、音響データ列Zの時系列から目標音の音響信号Aを生成する。信号生成部33は、例えば離散逆フーリエ変換を含む演算により音響データ列Zを時間領域の波形信号に変換し、相前後する単位期間について当該波形信号を連結することで音響信号Aを生成する。なお、例えば音響データ列Zと音響信号Aの各サンプルとの関係を学習した深層ニューラルネットワーク(いわゆるニューラルボコーダ)を利用して、信号生成部33が音響データ列Zから音響信号Aを生成してもよい。信号生成部33が生成した音響信号Aが放音装置14に供給されることで、目標音が放音装置14から再生される。
【0040】
図4は、制御装置11が音響信号Aを生成する処理(以下「合成処理」という)Sの詳細な手順を例示するフローチャートである。複数の単位期間の各々において合成処理Sが実行される。
【0041】
合成処理Sが開始されると、制御装置11(第1処理部311)は、楽曲データDのうち単位期間に対応する音符データ列Nから当該単位期間の第1制御データ列Xを生成する(S1)。また、制御装置11(第2処理部312)は、単位期間の進行に先行して、もうすぐ始まる音符について、予め音符データ列Nの情報を生成モデルMaにより処理することで、その音符のタンギング種類を示す奏法データPを推定しておき、各単位期間毎に、当該単位期間の第2制御データ列Yを、推定済みの奏法データPに基づいて生成する(S2)。推定の先行のさせ方は、具体的には、1~数単位期間先に始まる音符について奏法データPを推定してもよいし、或いは、ある音符の単位期間に入ったとき、その次の音符の奏法データを推定してもよい。なお、第1制御データ列Xの生成(S1)と第2制御データ列Yの生成(S2)との順序は逆転されてもよい。
【0042】
制御装置11(音響データ列生成部32)は、第1制御データ列Xと第2制御データ列Yとを含む制御データ列Cを生成モデルMbにより処理することで、単位期間の音響データ列Zを生成する(S3)。制御装置11(信号生成部33)は、単位期間の音響信号Aを音響データ列Zから生成する(S4)。各単位期間の音響データZからは、単位期間より長い1フレーム窓分の波形信号が生成され、それらをオーバーラップ加算することで音響信号Aが生成される。前後フレーム窓間の時間差(ホップサイズ)が、単位期間に相当する。制御装置11は、音響信号Aを放音装置14に供給することで、目標音を再生する(S5)。
【0043】
以上の通り、第1実施形態においては、音符列の特徴を表す第1制御データ列Xに加えて、楽器音のアタックを制御する演奏動作(具体的にはタンギング)を表す第2制御データ列Yが、音響データ列Zの生成に利用される。したがって、第1制御データ列Xのみから音響データ列Zを生成する形態と比較すると、音符列に対して適切なアタックが付与された目標音の音響データ列Zを生成できる。第1実施形態においては特に、管楽器のタンギングに関する特徴を表す第2制御データ列Yが音響データ列Zの生成に利用される。したがって、タンギングの特徴に応じたアタックの相違が適切に反映された自然な楽器音の音響データ列Zを生成できる。
【0044】
[機械学習システム20]
図1の機械学習システム20は、音響生成システム10が使用する生成モデルMaおよび生成モデルMbを機械学習により確立するコンピュータシステムである。機械学習システム20は、制御装置21と記憶装置22と通信装置23とを具備する。
【0045】
制御装置21は、機械学習システム20の各要素を制御する単数または複数のプロセッサで構成される。例えば、制御装置21は、CPU、GPU、SPU、DSP、FPGA、またはASIC等の1種類以上のプロセッサにより構成される。
【0046】
記憶装置22は、制御装置21が実行するプログラムと、制御装置21が使用する各種のデータとを記憶する単数または複数のメモリである。記憶装置22は、例えば磁気記録媒体または半導体記録媒体等の公知の記録媒体で構成される。複数種の記録媒体の組合せにより記憶装置22が構成されてもよい。なお、機械学習システム20に対して着脱される可搬型の記録媒体、または制御装置21が通信網200を介してアクセス可能な記録媒体(例えばクラウドストレージ)が、記憶装置22として利用されてもよい。
【0047】
通信装置23は、通信網200を介して音響生成システム10と通信する。なお、機械学習システム20とは別体の通信装置23を、機械学習システム20に対して有線または無線により接続してもよい。
【0048】
図5は、機械学習システム20が生成モデルMaおよび生成モデルMbを確立する機能の説明図である。記憶装置22は、相異なる楽曲に対応する複数の基礎データBを記憶する。複数の基礎データBの各々は、楽曲データDと奏法データPtと参照信号Rとを含む。
【0049】
楽曲データDは、参照信号Rの表す波形で演奏されている、特定の楽曲(以下「参照楽曲」という)の音符列を表すデータである。具体的には、楽曲データDは、前述の通り、参照楽曲の音符毎に音高と発音期間とを指定する。奏法データPtは、参照信号Rの表す波形で行われている、音符毎の演奏動作を指定する。具体的には、奏法データPtは、前述の6種類のタンギングの何れか、またはタンギングが発生しないことを、参照楽曲の音符毎に指定する。例えば、奏法データPtは、各種類のタンギングまたはタンギングが発生しないことを意味する符号が、音符毎に配列された時系列データである。例えば、管楽器の演奏に熟練した演奏者が、参照信号Rが表す音を聴取することで、参照楽曲の音符毎に、当該音符の演奏時におけるタンギングの有無と適切なタンギングの種類とを指示する。演奏者の指示に応じて奏法データPtが生成される。なお、参照信号Rから各音符のタンギングを判定する判定モデルを、奏法データPtの生成に利用してもよい。
【0050】
参照信号Rは、奏法データPtが指定する演奏動作により参照楽曲を演奏したときに、管楽器から発音される楽器音の波形を表す信号である。例えば、管楽器の演奏に熟練した演奏者が、奏法データPtが指定する演奏動作により、実際に参照楽曲を演奏する。演奏者による楽器音を収録することで、参照信号Rが生成される。参照信号Rの収録後に、演奏者か関係者が、参照信号Rの時間軸上の位置を調整する。その際に、奏法データPtも付与される。したがって、参照信号Rにおける各音符の楽器音は、奏法データPtが当該音符について指定した種類のタンギングに応じたアタックで発音される。
【0051】
制御装置21は、記憶装置22に記憶されたプログラムを実行することで、生成モデルMaおよび生成モデルMbを生成するための複数の機能(訓練データ取得部40、第1学習処理部41および第2学習処理部42)を実現する。
【0052】
訓練データ取得部40は、複数の基礎データBから複数の訓練データTaと複数の訓練データTbとを生成する。1個の参照楽曲の単位期間毎に訓練データTaと訓練データTbとが生成される。したがって、相異なる参照楽曲に対応する複数の基礎データBの各々から、複数の訓練データTaと複数の訓練データTbとが生成される。第1学習処理部41は、複数の訓練データTaを利用した機械学習により生成モデルMaを確立する。第2学習処理部42は、複数の訓練データTbを利用した機械学習により生成モデルMbを確立する。
【0053】
複数の訓練データTaの各々は、訓練用の音符データ列Ntと訓練用の奏法データ列Pt(タンギング種類)との組合せで構成される。なお、生成モデルMaによる各音符の奏法データPの推定には、参照楽曲の音符データNtのうちのその音符を含むフレーズの複数の音符に関する情報が用いられる。フレーズは、上述した処理期間より長い期間とされ、複数の音符に関する情報には、その音符のフレーズ内での位置が含まれていてもよい。
【0054】
1個の音符の第2制御データ列Ytは、参照楽曲のうち当該音符について奏法データPtが指定する演奏動作(タンギング種類)を表す。訓練データ取得部40は、各音符の奏法データPtから第2制御データ列Ytを生成する。個々の奏法データPt(又は個々の第2制御データYt)は、相異なる種類のタンギングに対応する6個の要素E_1~E_6で構成される。奏法データPt(又は第2制御データYt)は、6種類のタンギングの何れか、またはタンギングが発生しないことを指定する。以上の説明から理解される通り、各訓練データTaの奏法データ列Ptは、当該訓練データTaの音符データ列Nt内の各音符に対して適切な演奏動作を表す。すなわち、奏法データ列Ptは、音符データ列Ntの入力に対して生成モデルMaが出力すべき奏法データ列Pの正解(Ground Truth)である。
【0055】
複数の訓練データTbの各々は、訓練用の制御データ列Ctと訓練用の音響データ列Ztとの組合せで構成される。制御データ列Ctは、訓練用の第1制御データ列Xtと訓練用の第2制御データ列Ytとの組合せで構成される。第1制御データ列Xtは「第1訓練用制御データ列」の一例であり、第2制御データ列Ytは「第2訓練用制御データ列」の一例である。また、音響データ列Ztは、「訓練用音響データ列」の一例である。
【0056】
第1制御データ列Xtは、前述の第1制御データ列Xと同様に、音符データ列Ntが表す参照音符列の特徴を表すデータである。訓練データ取得部40は、第1処理部311と同様の処理により、音符データ列Ntから第1制御データ列Xtを生成する。第2制御データ列Ytは、参照楽曲のうち当該単位期間を含む音符について奏法データPtが指定する演奏動作を表す。訓練データ生成部が生成した第2制御データ列Ytが、訓練データTaおよび制御データ列Ctに共用される。
【0057】
1個の単位期間の音響データ列Ztは、参照信号Rのうち当該単位期間内の部分である。訓練データ取得部40は、参照信号Rから音響データ列Ztを生成する。以上の説明から理解される通り、音響データ列Ztは、第1制御データ列Xtに対応する参照音符列を、第2制御データ列Ytが表す演奏動作により演奏したときに、管楽器から発音される楽器音の波形を表す。すなわち、音響データ列Ztは、制御データ列Ctの入力に対して生成モデルMbが出力すべき音響データ列Zの正解(Ground Truth)である。
【0058】
図6は、制御装置21が機械学習により生成モデルMaを確立する処理(以下「第1学習処理」という)Saのフローチャートである。例えば、機械学習システム20の運営者による指示を契機として第1学習処理Saが開始される。制御装置21が第1学習処理Saを実行することで、
図5の第1学習処理部41が実現される。
【0059】
第1学習処理Saが開始されると、制御装置21は、複数の訓練データTaの何れか(以下「選択訓練データTa」という)を選択する(Sa1)。制御装置21は、
図5に例示される通り、初期的または暫定的な生成モデルMa(以下「暫定モデルMa0」という)により選択訓練データTaの音符データ列Ntを各音符について処理することで、その音符の奏法データ列Pを生成する(Sa2)。
【0060】
制御装置21は、暫定モデルMa0が生成する奏法データ列Pと選択訓練データTaの奏法データ列Ptとの誤差を表す損失関数を算定する(Sa3)。制御装置21は、損失関数が低減(理想的には最小化)されるように、暫定モデルMa0の複数の変数を更新する(Sa4)。損失関数に応じた各変数の更新には、例えば誤差逆伝播法が利用される。
【0061】
制御装置21は、所定の終了条件が成立したか否かを判定する(Sa5)。終了条件は、損失関数が所定の閾値を下回ること、または、損失関数の変化量が所定の閾値を下回ることである。終了条件が成立しない場合(Sa5:NO)、制御装置21は、未選択の訓練データTaを新たな選択訓練データTaとして選択する(Sa1)。すなわち、終了条件の成立(Sa5:YES)まで、暫定モデルMa0の複数の変数を更新する処理(Sa1~Sa4)が反復される。終了条件が成立した場合(Sa5:YES)、制御装置21は、第1学習処理Saを終了する。終了条件が成立した時点における暫定モデルMa0が、訓練済の生成モデルMaとして確定される。
【0062】
以上の説明から理解される通り、生成モデルMaは、複数の訓練データTaにおける入力としての音符データ列Ntと出力としてのタンギング種類(奏法データPt)との間に潜在する関係を学習する。したがって、訓練済の生成モデルMaは、その関係の観点から未知の音符データ列Nに対して統計的に妥当な奏法データ列Pを推定し出力する。
【0063】
図7は、制御装置21が機械学習により生成モデルMbを確立する処理(以下「第2学習処理」という)Sbのフローチャートである。例えば、機械学習システム20の運営者による指示を契機として第2学習処理Sbが開始される。制御装置21が第2学習処理Sbを実行することで、
図5の第2学習処理部42が実現される。
【0064】
第2学習処理Sbが開始されると、制御装置21は、複数の訓練データTbの何れか(以下「選択訓練データTb」という)を選択する(Sb1)。制御装置21は、
図5に例示される通り、初期的または暫定的な生成モデルMb(以下「暫定モデルMb0」という)により選択訓練データTbの制御データ列Ctを各単位時間について処理することで、その単位時間の音響データ列Zを生成する(Sb2)。
【0065】
制御装置21は、暫定モデルMb0が生成する音響データ列Zと選択訓練データTbの音響データ列Ztとの誤差を表す損失関数を算定する(Sb3)。制御装置21は、損失関数が低減(理想的には最小化)されるように、暫定モデルMb0の複数の変数を更新する(Sb4)。損失関数に応じた各変数の更新には、例えば誤差逆伝播法が利用される。
【0066】
制御装置21は、所定の終了条件が成立したか否かを判定する(Sb5)。終了条件は、損失関数が所定の閾値を下回ること、または、損失関数の変化量が所定の閾値を下回ることである。終了条件が成立しない場合(Sb5:NO)、制御装置21は、未選択の訓練データTbを新たな選択訓練データTbとして選択する(Sb1)。すなわち、終了条件の成立(Sb5:YES)まで、暫定モデルMb0の複数の変数を更新する処理(Sb1~Sb4)が反復される。終了条件が成立した場合(Sb5:YES)、制御装置21は、第2学習処理Sbを終了する。終了条件が成立した時点における暫定モデルMb0が、訓練済の生成モデルMbとして確定される。
【0067】
以上の説明から理解される通り、生成モデルMbは、複数の訓練データTbにおける入力としての制御データ列Ctと出力としての音響データ列Ztとの間に潜在する関係を学習する。したがって、訓練済の生成モデルMbは、その関係の観点から未知の制御データ列Cに対して統計的に妥当な音響データ列Zを推定し出力する。
【0068】
制御装置21は、第1学習処理Saにより確立された生成モデルMaと第2学習処理Sbにより確立された生成モデルMbとを、通信装置23から音響生成システム10に送信する。具体的には、生成モデルMaを規定する複数の変数と、生成モデルMbを規定する複数の変数とが、音響生成システム10に送信される。音響生成システム10の制御装置11は、機械学習システム20から送信された生成モデルMaおよび生成モデルMbを通信装置13により受信し、当該生成モデルMaおよび生成モデルMbを記憶装置12に保存する。
【0069】
B:第2実施形態
第2実施形態を説明する。なお、以下に例示する各態様において機能が第1実施形態と同様である要素については、第1実施形態の説明と同様の符号を流用して各々の詳細な説明を適宜に省略する。
【0070】
第1実施形態においては、管楽器のタンギングに関する特徴を第2制御データ列Y(及び奏法データP)が表す形態を例示した。第2実施形態においては、第2制御データ列Y(及び奏法データP)が、管楽器の吹奏における呼気または吸気に関する特徴を表す。具体的には、第2実施形態の第2制御データ列Y(及び奏法データP)は、吹奏時の呼気または吸気の強度に関する数値(以下「吹奏パラメータ」という)を表す。例えば、吹奏パラメータは、呼気量、呼気速度、吸気量および吸気速度を含む。管楽器の楽器音のアタックに関する音響特性は、吹奏パラメータに応じて変化する。すなわち、第2実施形態の第2制御データ列Y(及び奏法データP)は、第1実施形態の第2制御データ列Yと同様に、楽器音のアタックを制御する演奏動作を表すデータである。
【0071】
第1学習処理Saに使用される奏法データPtは、参照楽曲の音符毎に吹奏パラメータを指定する。各単位期間の第2制御データ列Ytは、当該単位期間を含む音符について奏法データPtが指定する吹奏パラメータを表す。したがって、第1学習処理Saにより確立された生成モデルMaは、音符データ列Nに対して統計的に妥当な吹奏パラメータを表す奏法データPを推定し出力する。
【0072】
第2学習処理Sbに使用される参照信号Rは、奏法データPtが指定する吹奏パラメータにより参照楽曲を演奏したときに、管楽器から発音される楽器音の波形を表す信号である。したがって、第2学習処理Sbにより確立された生成モデルMbは、第2制御データ列Yが表す吹奏パラメータがアタックに適切に反映された目標音の音響データ列Zを生成する。
【0073】
第2実施形態においても第1実施形態と同様の効果が実現される。また、第2実施形態においては、管楽器の吹奏パラメータを表す第2制御データ列Yが音響データ列Zの生成に利用される。したがって、管楽器の吹奏動作の特徴に応じたアタックの相違が適切に反映された自然な楽器音の音響データ列Zを生成できる。
【0074】
C:第3実施形態
第1実施形態および第2実施形態においては、管楽器の楽器音を表す音響データ列Zを生成する形態を例示した。第3実施形態の音響生成システム10は、擦弦楽器の楽器音を目標音として表す音響データ列Zを生成する。擦弦楽器は、弓を利用して弦を摩擦する動作(すなわち擦弦)により発音する弦楽器である。擦弦楽器は、例えばバイオリン、ビオラまたはチェロである。
【0075】
第3実施形態における第2制御データ列Y(及び奏法データP)は、擦弦楽器の弓を弦に対して如何に運動させるか(すなわちボウイング)に関する特徴(以下「擦弦パラメータ」という)を表す。例えば、擦弦パラメータは、擦弦方向(アップボウ/ダウンボウ)および擦弦速度を含む。擦弦楽器の楽器音のアタックに関する音響特性は、擦弦パラメータに応じて変化する。すなわち、第3実施形態の第2制御データ列Y(及び奏法データP)は、第1実施形態および第2実施形態の第2制御データ列Yと同様に、楽器音のアタックを制御する演奏動作を表すデータである。
【0076】
第1学習処理Saに使用される奏法データPtは、参照楽曲の音符毎に擦弦パラメータを指定する。各単位期間の第2制御データ列Ytは、当該単位期間を含む音符について奏法データPtが指定する擦弦パラメータを表す。したがって、第1学習処理Saにより確立された生成モデルMaは、音符データ列Nに対して統計的に妥当な擦弦パラメータを表す奏法データPを出力する。
【0077】
第2学習処理Sbに使用される参照信号Rは、奏法データPtが指定する擦弦パラメータにより参照楽曲を演奏したときに、擦弦楽器から発音される楽器音の波形を表す信号である。したがって、第2学習処理Sbにより確立された生成モデルMbは、第2制御データ列Yが表す擦弦パラメータがアタックに適切に反映された目標音の音響データ列Zを生成する。
【0078】
第3実施形態においても第1実施形態と同様の効果が実現される。また、第3実施形態においては、擦弦楽器の擦弦パラメータを表す第2制御データ列Yが音響データ列Zの生成に利用される。したがって、擦弦楽器のボウイングの特徴に応じたアタックの相違が適切に反映された自然な楽器音の音響データ列Zを生成できる。
【0079】
なお、目標音に対応する楽器は、以上に例示した管楽器および擦弦楽器に限定されず任意である。また、第2制御データ列Yが表す演奏動作は、目標音に対応する楽器の種類に応じた各種の動作である。
【0080】
D:第4実施形態
図8は、第4実施形態における音響生成システム10の機能的な構成を例示するブロック図である。制御装置11は、記憶装置12に記憶されたプログラムを実行することで、第1実施形態と同様の機能(制御データ列取得部31、音響データ列生成部32および信号生成部33)を実現する。
【0081】
第4実施形態の記憶装置12には、第1実施形態と同様の楽曲データDだけでなく奏法データPも記憶される。奏法データPは、音響生成システム10のユーザにより指定され、記憶装置12に記憶される。奏法データPは、前述の通り、楽曲データDが表す楽曲の音符毎に演奏動作を指定する。具体的には、奏法データPは、前述の6種類のタンギングの何れか、またはタンギングが発生しないことを、参照楽曲の音符毎に指定する。なお、奏法データPは楽曲データDに含まれてもよい。また、記憶装置12に記憶される奏法データPは、楽曲データDの全音符の各々について、生成モデルMaを用いて対応する音符データ列を処理し、推定された全音符の奏法データPであってもよい。
【0082】
第1処理部311は、第1実施形態と同様に、単位期間毎に音符データ列Nから第1制御データ列Xを生成する。第2処理部312は、奏法データPから第2制御データ列Ytを単位期間毎に生成する。具体的には、第2処理部312は、各単位期間において、当該単位期間を含む音符について奏法データPが指定する演奏動作を表す第2制御データ列Yを生成する。第2制御データ列Yの形式は第1実施形態と同様である。また、音響データ列生成部32および信号生成部33の動作は第1実施形態と同様である。
【0083】
第4実施形態においても第1実施形態と同様の効果が実現される。第4実施形態においては、各音符の演奏動作が奏法データPにより指定されるから、第2制御データ列Yの生成に生成モデルMaは不要である。他方、第4実施形態においては、奏法データPを楽曲毎に用意する必要がある。他方、前述の第1実施形態においては、生成モデルMaにより音符データ列Nから奏法データPが推定され、その奏法データPから第2制御データ列Yが生成される。したがって、奏法データPを楽曲毎に用意する必要がない。また、第1実施形態によれば、奏法データPが生成されていない新規な楽曲についても、音符列に対して適切な演奏動作を指定する第2制御データ列Yを生成できるという利点がある。
【0084】
なお、第4実施形態においては第1実施形態を基礎とした形態を例示したが、第2制御データ列Yが管楽器の吹奏パラメータを表す第2実施形態、および、第2制御データ列Yが擦弦楽器の擦弦パラメータを表す第3実施形態においても、第4実施形態は同様に適用される。
【0085】
E:第5実施形態
第1実施形態においては、第2制御データ列Y(及び奏法データP)が、相異なる種類のタンギングに対応する6個の要素E_1~E_6で構成される形態を例示した。すなわち、第2制御データ列Yの1個の要素Eが1種類のタンギングに対応する。第5実施形態においては、第2制御データ列Yの形式が第1実施形態とは相違する。第5実施形態においては、第1実施形態の6種類に加えて、以下の5種類(t,d,l.M,N)のタンギングを想定する。
【0086】
t型のタンギングは、演奏時の舌の挙動はT型と同様であるが、T型と比較してアタックが弱いタンギングである。t型のタンギングは、T型と比較して立上がりの傾斜が緩やかなタンギングとも表現される。d型のタンギングは、演奏時の舌の挙動はD型と同様であるが、D型と比較してアタックが弱いタンギングである。d型のタンギングは、D型と比較して立上がりの傾斜が緩やかなタンギングとも表現される。l型のタンギングは、演奏時の舌の挙動はL型と同様であるが、L型と比較して立上がりの傾斜が緩やかなタンギングである。M型のタンギングは、口腔内または唇の形状を変化させることで音を区切るタンギングである。N型のタンギングは、音が途切れない程度に充分に弱いタンギングである。
【0087】
図9は、第5実施形態における第2制御データ列Yの模式図である。第5実施形態の第2制御データ列Y(及び奏法データP)は、7個の要素E_1~E_7で構成される。
【0088】
要素E_1は、T型およびt型のタンギングに対応する。具体的には、T型のタンギングを表す第2制御データ列Yにおいては、要素E_1が「1」に設定され、残余の6個の要素E_2~E_7が「0」に設定される。他方、t型のタンギングを表す第2制御データ列Yにおいては、要素E_1が「0.5」に設定され、残余の6個の要素E_2~E_7が「0」に設定される。以上の通り、2種類のタンギングが割当てられた1個の要素Eは、当該2種類の各々に対応する相異なる数値に設定される。
【0089】
要素E_2は、D型およびd型のタンギングに対応し、要素E_3は、L型およびl型のタンギングに対応する。要素E_4~E_6は第1実施形態と同様に、1種類のタンギング(W,P,B)に対応する。また、要素E_7は、M型およびN型のタンギングに対応する。
【0090】
第5実施形態においても第1実施形態と同様の効果が実現される。また、第5実施形態においては、第2制御データ列Y(及び奏法データP)の1個の要素が、相異なる種類のタンギングに対応する複数の数値の何れかに設定される。したがって、第2制御データ列Yを構成する要素Eの個数を低減しながら、多様なタンギングを表現できるという利点がある。
【0091】
F:変形例
以上に例示した各態様に付加される具体的な変形の態様を以下に例示する。以下の例示から任意に選択された複数の態様を、相互に矛盾しない範囲で適宜に併合してもよい。
【0092】
(1)前述の各形態においては、第2制御データ列Y(及び奏法データP)が、1種類以上のタンギングに対応する複数の要素Eで構成される形態を例示したが、第2制御データ列Yの形式は以上の例示に限定されない。例えば、
図10に例示される通り、タンギングの有無を表す1個の要素E_aを、第2制御データ列Yが含む形態も想定される。任意の1種類のタンギングを表す第2制御データ列Yにおいては、要素E_aが「1」に設定され、タンギングの発生がないことを表す第2制御データ列Yにおいては、要素E_aが「0」に設定される。
【0093】
また、
図11に例示される通り、前述の各形態で例示した種類の何れにも分類されない未分類のタンギングに対応する要素E_bを、第2制御データ列Yが含んでもよい。未分類のタンギングを表す第2制御データ列Yにおいては、要素E_bが「1」に設定され、残余の要素Eが「0」に設定される。
【0094】
なお、第2制御データ列Y(及び奏法データP)は、複数の要素Eで構成される形式のデータに限定されない。例えば、複数種のタンギングの各々を識別するための識別情報が、第2制御データ列Yとして利用されてもよい。
【0095】
(2)前述の各形態においては、第2制御データ列Y(及び奏法データP)の複数の要素Eのうちの何れかが択一的に「1」に設定され、残余の要素Eが「0」に設定される形態を例示したが、複数の要素Eのうち2個以上の要素Eが「0」以外の正数に設定されてもよい。
【0096】
例えば、2種類のタンギング(以下「対象タンギング」という)の中間的な性質を有するタンギングは、複数の要素Eのうち対象タンギングに対応する2個の要素Eが正数に設定された第2制御データ列Yにより表現される。
図12に例1として図示された第2制御データ列Yは、T型の対象タンギングとD型の対象タンギングとの中間的なタンギングを指定する。例1においては、要素E_1と要素E_2とが「0.5」に設定され、残余の要素E(E_3~E_6)が「0」に設定される。以上の形態によれば、複数種のタンギングが反映された第2制御データ列Yを生成できる。
【0097】
また、2種類の対象タンギングに対して相異なる度合で類似するタンギングは、対象タンギングに対応する2個の要素Eが相異なる数値に設定された第2制御データ列Yにより表現される。
図12に例2として図示された第2制御データ列Yは、T型の対象タンギングとD型の対象タンギングとの中間的なタンギングを指定する。ただし、第2制御データ列Yが指定するタンギングは、D型の対象タンギングよりもT型の対象タンギングに類似する。したがって、T型の対象タンギングの要素E_1は、D型の対象タンギングの要素E_2よりも大きい数値に設定される。具体的には、要素E_1は「0.7」に設定され、要素E_2は「0.3」に設定される。すなわち、各タンギングに対応する要素Eは、当該タンギングに該当する尤度(すなわち当該タンギングに類似する度合)に設定される。以上の形態によれば、複数種のタンギングの関係が精緻に反映された第2制御データ列Yを生成できる。
【0098】
図12においては2種類の対象タンギングの中間的なタンギングを想定したが、3種類以上の対象タンギングの中間的なタンギングも、同様の方法により表現される。例えば、
図12に例3として例示される通り、4種類の対象タンギング(T,D,L,W)の中間的なタンギングは、各対象タンギングに対応する4個の要素Eが正数に設定された第2制御データ列Yにより表現される。
【0099】
なお、複数種の対象タンギングのうち、尤度の降順で上位に位置する所定個の対象タンギングの要素Eのみが、正数に設定されてもよい。例えば、
図12に例4aまたは例4bとして図示される通り、4種類の対象タンギング(T,D,L,W)のうち尤度の降順で選択された2種類の対象タンギングの要素E(E_1,E_2)のみが正数に設定されてもよい。例4aは、尤度の降順で上位に位置する2個の要素E(E_1,E_2)のみが正数に設定され、残余の4個の要素E(E_3~E_6)は「0」に設定された形態である。他方、例4bは、例4aにおいて複数の要素E(E_1~E_6)の合計が「1」となるように各要素Eの数値が調整された形態である。
【0100】
なお、第2制御データ列Yの複数の要素Eの合計が「1」となる形態においては、生成モデルMaの損失関数として、例えばSoftmax関数が利用される。生成モデルMbについても同様に、損失関数としてSoftmax関数を利用した機械学習により確立される。
【0101】
(3)前述の各形態においては、音響データ列Zが目標音の周波数スペクトルの包絡を表す形態を例示したが、音響データ列Zが表す情報は以上の例示に限定されない。例えば、音響データ列Zが目標音の各サンプルを表す形態も想定される。以上の形態では、音響データ列Zの時系列が音響信号Aを構成する。したがって、信号生成部33は省略される。
【0102】
(4)前述の各形態においては、制御データ列取得部31が第1制御データ列Xおよび第2制御データ列Yを生成する形態を例示したが、制御データ列取得部31の動作は以上の例示に限定されない。例えば、制御データ列取得部31は、外部装置が生成した第1制御データ列Xおよび第2制御データ列Yを、通信装置13により当該外部装置から受信してもよい。また、第1制御データ列Xおよび第2制御データ列Yが記憶装置12に記憶された形態においては、制御データ列取得部31は、第1制御データ列Xおよび第2制御データ列Yを記憶装置12から読出する。以上の例示から理解される通り、制御データ列取得部31による「取得」は、第1制御データ列Xおよび第2制御データ列Yの生成、受信および読出等、第1制御データ列Xおよび第2制御データ列Yを取得する任意の動作を包含する。訓練データ取得部40による第1制御データ列Xtおよび第2制御データ列Ytの「取得」も同様に、第1制御データ列Xtおよび第2制御データ列Ytを取得する任意の動作(例えば生成、受信および読出)を包含する。
【0103】
(5)前述の各形態においては、第1制御データ列Xと第2制御データ列Yとを連結した制御データ列Cが生成モデルMbに供給される形態を例示したが、生成モデルMbに対する第1制御データ列Xおよび第2制御データ列Yの入力の形態は、以上の例示に限定されない。
【0104】
例えば、
図13に例示される通り、生成モデルMbが第1部分Mb1と第2部分Mb2とで構成される形態を想定する。第1部分Mb1は、生成モデルMbの入力層と中間層の一部とで構成される部分である。第2部分Mb2は、生成モデルMbの中間層の他の一部と出力層とで構成される部分である。以上の形態においては、第1制御データ列Xが第1部分Mb1(入力層)に供給され、第2制御データ列Yが、第1部分Mb1から出力されるデータとともに第2部分Mb2に供給されてもよい。以上の例示から理解される通り、第1制御データ列Xと第2制御データ列Yとの連結は、本開示において必須ではない。
【0105】
(6)前述の各形態においては、記憶装置12に事前に記憶された楽曲データDから音符データ列Nを生成したが、演奏装置から順次に供給される音符データ列Nを利用してもよい。演奏装置は、利用者による演奏を受付けるMIDIキーボード等の入力装置であり、利用者の演奏に応じた音符データ列Nを順次に出力する。音響生成システム10は、演奏装置から供給される音符データ列Nを利用して音響データ列Zを生成する。演奏装置に対する利用者の演奏に並行して実時間的に、前述の合成処理Sが実行されてよい。具体的には、演奏装置に対する利用者からの操作に並行して、第2制御データ列Yおよび音響データ列Zが生成されてもよい。
【0106】
(7)前述の各形態においては、演奏者からの指示に応じて奏法データPtを生成したが、例えばブレスコントローラ等の入力装置を利用して奏法データPtを生成してもよい。入力装置は、演奏者の息量(呼気量,吸気量)または息速度(呼気速度,吸気速度)等の吹奏パラメータを検出する検出器である。吹奏パラメータはタンギングの種類に依存する。したがって、吹奏パラメータを利用して奏法データPtが生成される。例えば、呼気速度が低速である場合には、L型のタンギングを指定する奏法データPtが生成される。また、呼気速度が高速であり、かつ、呼気量の変化が高速である場合には、T型のタンギングを指定する奏法データPtが生成される。吹奏パラメータに限定されず、収録音の言語的な特徴に応じてタンギングの種類が特定されてもよい。例えば、タ行の文字が認識された場合にはT型のタンギングが特定され、濁音の文字が認識された場合にはD型のタンギングが特定され、ラ行の文字が認識された場合にはL型のタンギングが特定される。
【0107】
(8)前述の各形態においては深層ニューラルネットワークを例示したが、生成モデルMaおよび生成モデルMbは深層ニューラルネットワークに限定されない。例えば、HMM(Hidden Markov Model)またはSVM(Support Vector Machine)等の任意の形式および種類の統計モデルが、生成モデルMaまたは生成モデルMbとして利用されてもよい。
【0108】
(9)前述の各形態においては、音符データ列Nとタンギング種類(奏法データP)との関係を学習した生成モデルMaを利用したが、音符データ列Nからタンギング種類を生成するための構成および方法は、以上の例示に限定されない。例えば、複数の音符データ列Nの各々にタンギング種類が対応付けられた参照テーブルが、第2処理部312による第2制御データ列Yの生成に利用されてもよい。参照テーブルは、音符データ列Nとタンギング種類との対応が登録されたデータテーブルであり、例えば記憶装置12に記憶される。第2処理部312は、音符データ列Nに対応するタンギング種類を参照テーブルから検索し、当該タンギング種類を指定する第2制御データ列Yを単位期間毎に出力する。
【0109】
(10)前述の各形態においては、機械学習システム20が生成モデルMaおよび生成モデルMbを確立したが、生成モデルMaを確立する機能(訓練データ取得部40および第1学習処理部41)と、生成モデルMbを確立する機能(訓練データ取得部40および第2学習処理部42)との一方または双方は、音響生成システム10に搭載されてもよい。
【0110】
(11)例えばスマートフォンまたはタブレット端末等の情報装置と通信するサーバ装置により、音響生成システム10が実現されてもよい。例えば、音響生成システム10は、情報装置から音符データ列Nを受信し、当該音符データ列Nを適用した合成処理Sにより音響信号Aを生成する。音響生成システム10は、合成処理Sにより生成した音響信号Aを、情報装置に送信する。なお、信号生成部33が情報装置に搭載された形態では、音響データ列Zの時系列が情報装置に送信される。すなわち、音響生成システム10から信号生成部33は省略される。
【0111】
(12)音響生成システム10の機能(制御データ列取得部31、音響データ列生成部32、信号生成部33)は、前述の通り、制御装置11を構成する単数または複数のプロセッサと、記憶装置12に記憶されたプログラムとの協働により実現される。また、機械学習システム20の機能(訓練データ取得部40、第1学習処理部41、第2学習処理部42)は、前述の通り、制御装置21を構成する単数または複数のプロセッサと、記憶装置22に記憶されたプログラムとの協働により実現される。
【0112】
以上に例示したプログラムは、コンピュータが読取可能な記録媒体に格納された形態で提供されてコンピュータにインストールされ得る。記録媒体は、例えば非一過性(non-transitory)の記録媒体であり、CD-ROM等の光学式記録媒体(光ディスク)が好例であるが、半導体記録媒体または磁気記録媒体等の公知の任意の形式の記録媒体も包含される。なお、非一過性の記録媒体とは、一過性の伝搬信号(transitory, propagating signal)を除く任意の記録媒体を含み、揮発性の記録媒体も除外されない。また、配信装置が通信網200を介してプログラムを配信する構成では、当該配信装置においてプログラムを記憶する記録媒体が、前述の非一過性の記録媒体に相当する。
【0113】
G:付記
以上に例示した形態から、例えば以下の構成が把握される。
【0114】
ひとつの態様(態様1)に係る音響生成方法は、音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得し、前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する。以上の態様においては、音符列の特徴を表す第1制御データ列に加えて、音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列が、音響データ列の生成に利用される。したがって、第1制御データ列のみから音響データ列を生成する構成と比較すると、音符列に対して適切なアタックが付与された楽器音の音響データ列を生成できる。
【0115】
「第1制御データ列」は、音符列の特徴を表す任意の形式のデータ(第1制御データ)であり、例えば音符列を表す音符データ列から生成される。また、電子楽器等の入力装置に対する操作に応じてリアルタイムに生成される音符データ列から第1制御データ列が生成されてもよい。「第1制御データ列」は、合成目的となる楽器音の条件を指定するデータとも換言される。例えば、「第1制御データ列」は、音符列を構成する各音符の音高または継続長、1個の音符の音高と当該音符の周囲に位置する他の音符の音高との関係等、音符列を構成する各音符に関する各種の条件を指定する。
【0116】
「楽器音」は、楽器の演奏により当該楽器から発生する楽音である。楽器音の「アタック」は、当該楽器音における立ち上がりの部分である。「第2制御データ列」は、楽器音のアタックに影響する演奏動作を表す任意の形式のデータ(第2制御データ)である。第2制御データ列は、例えば、音符データ列に付加されたデータ、音符データ列に対する処理により生成されるデータ、または利用者からの指示に応じたデータである。
【0117】
「第1生成モデル」は、第1制御データ列および第2制御データ列と、音響データ列との関係を機械学習により学習した学習済モデルである。第1生成モデルの機械学習には複数の訓練データが利用される。各訓練データは、第1訓練用制御データ列および第2訓練用制御データ列の組と、訓練用音響データ列とを含む。第1訓練用制御データ列は、参照音符列の特徴を表すデータであり、第2訓練用制御データ列は、参照音符列の演奏に好適な演奏動作を表すデータである。訓練用音響データ列は、第1訓練用制御データ列に対応する参照音符列を、第2訓練用制御データ列に対応する演奏動作で演奏した場合に発音される楽器音を表す。例えば深層ニューラルネットワーク(DNN:Deep Neural Network)、隠れマルコフモデル(HMM:Hidden Markov Model)、またはSVM(Support Vector Machine)等の各種の統計的推定モデルが、「第1生成モデル」として利用される。
【0118】
第1生成モデルに対する第1制御データ列および第2制御データ列の入力の形態は任意である。例えば、第1制御データ列と第2制御データ列とを含む入力データが第1生成モデルに入力される。また、第1生成モデルが入力層と複数の中間層と出力層とを含む構成においては、第1制御データ列が入力層に入力され、第2制御データ列が中間層に入力される形態も想定される。すなわち、第1制御データ列と第2制御データ列との結合は必須ではない。
【0119】
「音響データ列」は、楽器音を表す任意の形式のデータ(音響データ)である。例えば、強度スペクトル、メルスペクトル、MFCC(Mel-Frequency Cepstrum Coefficients)等の音響特性(周波数スペクトル包絡)を表すデータが、「音響データ列」の一例である。また、楽器音の波形を表すサンプル系列が「音響データ列」として生成されてもよい。
【0120】
態様1の具体例(態様2)において、前記第1生成モデルは、参照音符列の特徴を表す第1訓練用制御データ列、および、前記参照音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2訓練用制御データ列と、前記参照音符列の楽器音を表す訓練用音響データ列と、を含む訓練データを利用して訓練されたモデルである。以上の態様によれば、参照音符列の第1訓練用制御データ列および第2訓練用制御データ列と、当該参照音符列の楽器音を表す訓練用音響データ列との関係の観点から、統計的に妥当な音響データ列を生成できる。
【0121】
態様1または態様2の具体例(態様3)において、前記第1制御データ列および前記第2制御データ列の取得においては、前記音符列を表す音符データ列から前記第1制御データ列を生成し、訓練済の第2生成モデルにより前記音符データ列を処理することで、前記第2制御データ列を生成する。以上の態様によれば、第2生成モデルにより音符データ列を処理することで第2制御データ列が生成される。したがって、楽器音の演奏動作を表す奏法データを楽曲毎に用意する必要がない。また、新規な楽曲についても適切な演奏動作を表す第2制御データ列を生成できる。
【0122】
態様1から態様3の何れかの具体例(態様4)において、前記第2制御データ列は、管楽器のタンギングに関する特徴を表す。以上の態様においては、管楽器のタンギングに関する特徴を表す第2制御データ列が、音響データ列の生成に利用される。したがって、タンギングの特徴に応じたアタックの相違が適切に反映された自然な楽器音の音響データ列を生成できる。
【0123】
「管楽器のタンギングに関する特徴」は、例えば、タンギングに舌および唇の何れが使用されるか等の特徴である。舌を使用するタンギングについては、さらに、アタックのピークとサステインとの音量差が大きいタンギング(無声子音)、当該音量差が小さいタンギング(有声子音)、または、アタックおよびディケイの変化が観測されないタンギング等、タンギングの手法に関する特徴が第2制御データ列により指定されてもよい。また、唇を使用するタンギングについては、さらに、唇自体の開閉を利用したタンギング、唇自体の開閉を利用して大きい音量を発音するタンギング、または、唇自体の開閉を利用して有声子音と同様に発音するタンギング等、タンギングの手法に関する特徴が第2制御データ列により指定されてもよい。
【0124】
態様1から態様3の何れかの具体例(態様5)において、前記第2制御データ列は、管楽器の吹奏における呼気または吸気に関する特徴を表す。以上の態様によれば、管楽器の吹奏における呼気または吸気に関する特徴を表す第2制御データ列が、音響データ列の生成に利用される。したがって、吹奏の特徴に応じたアタックの相違が適切に反映された自然な楽器音の音響データ列を生成できる。なお、「管楽器の吹奏における呼気または吸気に関する特徴」は、例えば、呼気または吸気の強度(例えば呼気量、呼気速度、吸気量、吸気速度)である。
【0125】
態様1から態様3の何れかの具体例(態様6)において、前記第2制御データ列は、擦弦楽器のボウイングに関する特徴を表す。以上の態様によれば、擦弦楽器のボウイングに関する特徴を表す第2制御データ列が、音響データ列の生成に利用される。したがって、ボウイングの特徴に応じたアタックの相違が適切に反映された自然な楽器音の音響データ列を生成できる。なお、「擦弦楽器のボウイングに関する特徴」は、例えば擦弦方向(アップボウ/ダウンボウ)または擦弦速度である。
【0126】
態様1から態様6の何れかの具体例(態様7)において、時間軸上の複数の単位期間の各々において、前記第1制御データ列および第2制御データ列の取得と、前記音響データ列の生成とが実行される。
【0127】
ひとつの態様(態様8)に係る音響生成システムは、音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得する制御データ列取得部と、前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する音響データ列生成部とを具備する。
【0128】
ひとつの態様(態様9)に係るプログラムは、音符列の特徴を表す第1制御データ列と、前記音符列の各音符に対応する楽器音のアタックを制御する演奏動作を表す第2制御データ列とを取得する制御データ列取得部、および、前記第1制御データ列と前記第2制御データ列とを訓練済の第1生成モデルにより処理することで、前記第2制御データ列が表す演奏動作に対応するアタックを有する前記音符列の楽器音を表す音響データ列を生成する音響データ列生成部、としてコンピュータシステムを機能させる。
【符号の説明】
【0129】
100…情報システム、10…音響生成システム、11…制御装置、12…記憶装置、13…通信装置、14…放音装置、20…機械学習システム、21…制御装置、22…記憶装置、23…通信装置、31…制御データ列取得部、311…第1処理部、312…第2処理部、32…音響データ列生成部、33…信号生成部、40…訓練データ取得部、41…第1学習処理部、42…第2学習処理部。