(57)【要約】  コンピュータにより実現される音信号合成方法は、合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、参照信号の音高に対応する音名を示す音名データおよび前記音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定する。
2020171035.tif 000002
【特許請求の範囲】
【請求項１】
合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、
参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定する
コンピュータにより実現される音信号合成方法。
【請求項２】
前記生成された制御データに含まれるオクターブデータは、前記音信号の音高のオクターブをone-hotにより示す
請求項１の音信号合成方法。
【請求項３】
前記生成された制御データに含まれる音名データは、前記音信号の音高に対応する音名をone-hotにより示す
請求項１または２の音信号合成方法。
【請求項４】
前記出力データは、合成すべき音信号の波形スペクトルを示す
請求項１から３の何れかの音信号合成方法。
【請求項５】
前記出力データは、合成すべき音信号のサンプルを示す
請求項１から３の何れかの音信号合成方法。
【請求項６】
ある音高の参照信号と、当該音高に対応する音名を示す音名データと、当該音高のオクターブを示すオクターブデータとを用意し、
前記音名データと前記オクターブデータとを含む制御データに応じて前記参照信号を示す出力データを生成するように、生成モデルを訓練する
コンピュータにより実現される生成モデルの訓練方法。
【請求項７】
１以上のプロセッサと１以上のメモリとを具備する音信号合成システムであって、
前記１以上のメモリは、参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルを記憶し、
前記１以上のプロセッサは、
合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、
前記生成された制御データを前記生成モデルに入力することで、前記音信号を示す出力データを推定する
音信号合成システム。
【請求項８】
前記生成された制御データに含まれるオクターブデータは、前記音信号の音高のオクターブをone-hotにより示す
請求項７の音信号合成システム。
【請求項９】
前記生成された制御データに含まれる音名データは、前記音信号の音高に対応する音名をone-hotにより示す
請求項７または８の音信号合成システム。
【請求項１０】
前記出力データは、合成すべき音信号の波形スペクトルを示す
請求項７から９の何れかの音信号合成システム。
【請求項１１】
前記出力データは、合成すべき音信号のサンプルを示す
請求項７から９の何れかの音信号合成システム。
【請求項１２】
合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成する生成制御部、および、
参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定する生成部
としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音信号を合成する音源技術に関する。
【背景技術】
【０００２】
特許文献１に示すNSynth、または非特許文献１に示すNPSS（Neural Parametric Singing Synthesizer）など、ニューラルネットワーク（以下、「NN」と呼ぶ）を用いて、条件入力に応じた音波形を生成する音源（以下、DNN（Deep Neural Network）音源と呼ぶ）が提案されている。NSynthは、エンベディング（embedding／埋込ベクトル）に応じて、サンプリング周期ごとに、音信号のサンプルを生成する。NPSSのTimbreモデルは、ピッチおよびタイミング情報に応じて、フレームごとに、音信号のスペクトルを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第１００６８５５７号明細書
【非特許文献】
【０００４】
【非特許文献１】Merlijn Blaauw, Jordi Bonada, 「A Neural Parametric Singing Synthesizer Modeling Timbre and Expression from Natural Songs」, Appl. Sci. 2017, 7, 1313
【発明の概要】
【発明が解決しようとする課題】
【０００５】
音高を表す音高データの形式としてone-hot表現が従来から提案されている。one-hot表現は、相異なる音高に対応するｎ個（ｎは２以上の自然数）のビットにより音高を表現する方法である。例えば、１個の音高を表現するone-hot表現のベクトルにおいては、音高データを構成するｎ個のビットのうち当該音高に対応する１個のビットが「１」に設定され、残余の(Ｎ−１)個のビットの各々が「０」に設定される。【０００６】
特許文献１のNSynthでは、one-hot表現の音高データをWaveNetモデルに入力することで、音高データに応じたサンプルの時系列を生成する。また、非特許文献１のNPSSでは、one-hot表現の音高データをF0モデルに入力することで音高F0の軌跡を生成し、その音高F0の軌跡に応じたスペクトル包絡の時系列を生成する。これらのone-hot表現の音高データは、生成したい音信号の音域内に存在する音階の総数と同等の大きな次元数であり、これにより、DNN音源の規模が大きくなるという問題がある。【０００７】
自然界の音の生成メカニズムでは、人間の発声器官または管楽器の発音機構など、オクターブ違いの音をほぼ同じ物理構造で生成しているケースが多々見うけられる。そもそも、従来のDNN音源は、そういうオクターブ違いの音の間に共通する特徴を活用できていない。【０００８】
本開示は、オクターブ違いの音の共通性を活用して、比較的小さな規模で、広い音域の音高の音信号を高品質に生成することを目的とする。
【課題を解決するための手段】
【０００９】
本開示のひとつの態様に係る音信号合成方法は、合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、参照信号の音高に対応する音名を示す音名データおよび前記音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定する。【００１０】
本開示のひとつの態様に係る生成モデルの訓練方法は、ある音高の参照信号と、当該音高に対応する音名を示す音名データと、当該音高のオクターブを示すオクターブデータとを用意し、前記音名データと前記オクターブデータとを含む制御データに応じて前記参照信号を示す出力データを生成するように、生成モデルを訓練する。【００１１】
本開示のひとつの態様に係る音信号合成システムは、１以上のプロセッサと１以上のメモリとを具備する音信号合成システムであって、前記１以上のメモリは、参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルを記憶し、前記１以上のプロセッサは、合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、前記生成された制御データを前記生成モデルに入力することで、前記音信号を示す出力データを推定する。【００１２】
本開示のひとつの態様に係るプログラムは、合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成する生成制御部、および、参照信号の音高に対応する音名を示す音名データおよび前記音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定する生成部としてコンピュータを機能させる。
【図面の簡単な説明】
【００１３】
【図１】音信号合成システムのハードウェア構成を示すブロック図である。
【図２】音信号合成システムの機能構成を示すブロック図である。
【図３】音名データとオクターブデータの説明図である。
【図４】訓練部と生成部の処理の説明図である。
【図５】準備処理のフローチャートである。
【図６】発音単位の音生成処理のフローチャートである。
【発明を実施するための形態】
【００１４】
Ａ：第１実施形態
図１は、本開示の音信号合成システム１００の構成を例示するブロック図である。音信号合成システム１００は、制御装置１１と記憶装置１２と表示装置１３と入力装置１４と放音装置１５とを具備するコンピュータシステムで実現される。音信号合成システム１００は、例えば携帯電話機、スマートフォンまたはパーソナルコンピュータ等の情報端末である。なお、音信号合成システム１００は、単体の装置で実現されるほか、相互に別体で構成された複数の装置（例えばサーバ−クライアントシステム）でも実現される。
【００１５】
制御装置１１は、音信号合成システム１００を構成する各要素を制御する単数または複数のプロセッサである。具体的には、例えばＣＰＵ（Central Processing Unit）、ＳＰＵ（Sound Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）、またはＡＳＩＣ（Application Specific Integrated Circuit）等の１種類以上のプロセッサにより、制御装置１１が構成される。制御装置１１は、合成音の波形を表す時間領域の音信号Vを生成する。
【００１６】
記憶装置１２は、制御装置１１が実行するプログラムと制御装置１１が使用する各種のデータとを記憶する単数または複数のメモリである。記憶装置１２は、例えば磁気記録媒体もしくは半導体記録媒体等の公知の記録媒体、または、複数種の記録媒体の組合せで構成される。なお、音信号合成システム１００とは別体の記憶装置１２（例えばクラウドストレージ）を用意し、移動体通信網またはインターネット等の通信網を介して制御装置１１が記憶装置１２に対する書込および読出を実行してもよい。すなわち、記憶装置１２は音信号合成システム１００から省略されてもよい。
【００１７】
表示装置１３は、制御装置１１が実行したプログラムの演算結果を表示する。表示装置１３は、例えばディスプレイである。表示装置１３は音信号合成システム１００から省略されてもよい。
【００１８】
入力装置１４は、ユーザの入力を受け付ける。入力装置１４は、例えばタッチパネルである。入力装置１４は音信号合成システム１００から省略されてもよい。
【００１９】
放音装置１５は、制御装置１１が生成した音信号Vが表す音声を再生する。放音装置１５は、例えばスピーカまたはヘッドホンである。なお、制御装置１１が生成した音信号Vをデジタルからアナログに変換するＤ/Ａ変換器と音信号Vを増幅する増幅器とについては図示を便宜的に省略した。また、図１では、放音装置１５を音信号合成システム１００に搭載した構成を例示したが、音信号合成システム１００とは別体の放音装置１５を音信号合成システム１００に有線または無線で接続してもよい。
【００２０】
図２は、音信号合成システム１００の機能構成を示すブロック図である。制御装置１１は、記憶装置１２に記憶されたプログラムを実行することで、生成モデルを用いて、歌手の歌唱音または楽器の演奏音などの音波形を表す時間領域の音信号Vを生成する生成機能（生成制御部１２１、生成部１２２，および合成部１２３）を実現する。また、制御装置１１は、記憶装置１２に記憶されたプログラムを実行することで、音信号Vの生成に用いる生成モデルの準備を行う準備機能（解析部１１１、時間合せ部１１２、条件付け部１１３、および訓練部１１４）を実現する。なお、複数の装置の集合（すなわちシステム）で制御装置１１の機能を実現してもよいし、制御装置１１の機能の一部または全部を専用の電子回路（例えば信号処理回路）で実現してもよい。
【００２１】
まず、音名データ及びオクターブデータと、音名データおよびオクターブデータに応じて出力データを生成する生成モデルと、生成モデルの訓練に用いる参照信号Rとについて説明する。
【００２２】
音名データとオクターブデータは、両データのペアで音信号Vの音高を表す。音名データ（Pitch Notation Data  以下、「PNデータ」と呼ぶ）X1は、１オクターブの１２音階にそれぞれ対応する１２個の音高音うち、音信号Vの音高の音名（"C", "C#", "D", … "A#", "B"）を示す。オクターブデータ（Octave Data  以下、「Octデータ」と呼ぶ）X2は、相異なる複数のオクターブのうち、音信号Vの音高が属するオクターブ（基準から何番目のオクターブか）を示す。図３に例示するように、PNデータX1とOctデータX2とは、以下に例示される通り、それぞれone-hot表現であってもよい。
【００２３】
PNデータX1は、相異なる音名に対応する１２個のビットで構成される。PNデータX1を構成する１２ビットのうち、音信号Vの音高の音名に対応する１ビットが「１」にセットされ、残りの１１ビットが「０」にセットされる。OctデータX2は、相異なるオクターブ（Ｏ1〜Ｏ5）に対応する５個のビットで構成される。OctデータX2を構成する５ビットのうち、音信号Vの音高が含まれるオクターブに対応する１ビットが「１」にセットされ、残りの４ビットが「０」にセットされる。なお、第１実施形態のOctデータX2は、５オクターブ分に対応する５ビットのデータであるが、OctデータX2により表現可能なオクターブ数は任意である。ｎオクターブ（ｎは１以上の自然数）の何れかを表すOctデータX2は、ｎビットで構成されるデータである。
【００２４】
生成モデルは、PNデータX1とOctデータX2を含む制御データXに応じて、音信号Vの波形スペクトル（例えば、メルスペクトログラム）の時系列を生成するための統計的モデルである。制御データXは、合成されるべき音信号Vの条件を指定するデータである。生成モデルの生成特性は、記憶装置１２に記憶された複数の変数（係数およびバイアスなど）により規定される。統計的モデルは、波形スペクトルを推定するニューラルネットワークである。そのニューラルネットワークは、例えば、WaveNet(TM)のような、音信号Vの過去の複数のサンプルに基づいて、現在のサンプルの確率密度分布を推定する回帰的なタイプでもよい。また、そのアルゴリズムも任意であり、例えば、CNN（Convolutional Neural Network）タイプでもRNN（Recurrent Neural Network）タイプでよいし、その組み合わせでもよい。さらに、LSTM（Long Short-Term Memory）またはATTENTIONなどの付加的要素を備えるタイプでもよい。生成モデルの複数の変数は、後述する準備機能による訓練データを用いた訓練により確立される。複数の変数が確立された生成モデルは、後述する生成機能において音信号Vの生成に使用される。
【００２５】
記憶装置１２は、生成モデルの訓練のために、ある楽譜をプレイヤーが演奏した時間領域の波形を示す音信号（以下、「参照信号」と呼ぶ）Rと、当該楽譜を表す楽譜データとが複数記録されている。各楽譜データは音符の時系列を含む。各楽譜データに対応する参照信号Rは、当該楽譜データが表す楽譜の音符の系列に対応する部分波形の時系列を含む。各参照信号Rは、サンプリング周期（例えば、48kHz）ごとのサンプルの時系列で構成され、音の波形を表す時間領域の信号である。演奏は、人間による楽器の演奏に限らず、歌手による歌唱、または楽器の自動演奏であってもよい。機械学習で良い音を生成するためには、一般的に十分な個数の訓練データが要求されるので、ターゲットとする楽器またはプレイヤーなどについて、多数の演奏の音信号を事前に収録し、参照信号Rとして記憶装置１２に記憶しておく。
【００２６】
図２の上段に図示される準備機能について説明する。解析部１１１は、複数の楽譜にそれぞれ対応する複数の参照信号Rの各々について、時間軸上のフレームごとに周波数領域のスペクトル（以下、波形スペクトルと呼ぶ）を算定する。参照信号Rの波形スペクトルの算定には、例えば離散フーリエ変換等の公知の周波数解析が用いられる。
【００２７】
時間合せ部１１２は、解析部１１１で得られた波形スペクトル等の情報に基づき、各参照信号Rに対応する楽譜データにおける複数の発音単位の開始時点と終了時点とを、参照信号Rにおけるその発音単位に対応する部分波形の開始時点と終了時点とに揃える。ここで、発音単位は、例えば、音高と発音期間とが指定された１つの音符である。なお、１つの音符を、音色等の波形の特徴が変化するポイントで分割して、複数の発音単位に分けてもよい。
【００２８】
条件付け部１１３は、各参照信号Rに時間が揃えられた楽譜データの各発音単位の情報に基づき、フレームを単位とする時刻ｔごとに、参照信号Rのうち当該時刻ｔの部分波形に対応する制御データXを生成して訓練部１１４に出力する。制御データXは、前述の通り、合成されるべき音信号Vの条件を指定する。制御データXは、図４に例示される通り、PNデータX1とOctデータX2と開始停止データX3とコンテキストデータX4とを含む。PNデータX1は参照信号Rの部分波形における音高の音名を表す。OctデータX2は当該音高が属するオクターブを表す。つまり、参照信号Rの部分波形の音高は、PNデータX1とOctデータX2のペアで表現される。開始停止データX3は、各部分波形の開始期間（アタック）と終了期間（リリース）とを表す。１個の音符に相当する部分波形内の１個のフレームのコンテキストデータX4は、当該音符と前後の音符との音高差、または楽譜内における当該音符の相対な位置を表す情報など、複数の発音単位との関係（すなわちコンテキスト）を表す。制御データXには、さらに、楽器、歌手または奏法など、その他の情報を含んでいてもよい。
【００２９】
解析部１１１および条件付け部１１３による処理の結果、複数の参照信号Rと複数の楽譜データとから、所定の音高範囲内の音信号Vを生成する生成モデルを訓練するための複数の発音単位データが準備される。各発音単位データは、条件付け部１１３が生成する制御データXと解析部１１１が生成する波形スペクトルとのセットである。複数の発音単位データは、訓練部１１４による訓練に先立ち、生成モデルの訓練のための訓練データと、生成モデルのテストのためのテストデータとに分けられる。複数の発音単位データの大部分を訓練データとし、一部をテストデータにする。訓練データによる訓練は、複数の発音単位データをフレームの所定個ごとにバッチとして分割し、バッチ単位で全バッチにわたり順番に行われる。
【００３０】
訓練部１１４は、図４の上段に例示するように、訓練データを受け取り、その各バッチの複数の発音単位の波形スペクトルと制御データXとを順番に用いて生成モデルを訓練する。生成モデルは、フレーム（時刻t）ごとに、波形スペクトルを表す出力データを推定する。出力データは、波形スペクトルを構成する複数の成分の各々の確率密度分布を示すデータであっても良いし、各成分の値であってもよい。訓練部１１４は、１バッチ分の各発音単位データにおける制御データXを生成モデルに入力することで、その制御データXに対応する出力データの時系列を推定する。訓練部１１４は、推定された出力データと訓練データのうち対応する波形スペクトル（すなわち正解値）とに基づいて損失関数L（１バッチ分の累算値）を計算する。そして、訓練部１１４は、その損失関数Lが最小化されるように生成モデルの複数の変数を最適化する。例えば、損失関数Lとしては、出力データが確率密度分布である場合にはクロスエントロピー関数などが使用され、出力データが波形スペクトルの値である場合には二乗誤差関数などが使用される。訓練部１１４は、訓練データを使用した以上の訓練を、テストデータについて算出される損失関数Lの値が十分に小さくなるか、或いは、相前後する損失関数Lの変化が十分に小さくなるまで繰り返し行う。こうして確立された生成モデルは、複数の発音単位データにおける各制御データXと、対応する波形スペクトルとの間に潜在する関係を学習している。この生成モデルを用いることで、生成部１２２は、未知の音信号Vの制御データX'についても、品質の良い波形スペクトルを生成できる。
【００３１】
図５は、準備処理のフローチャートである。準備処理は、例えば音信号合成システム１００の利用者からの指示を契機として開始される。
【００３２】
準備処理が開始されると、制御装置１１（解析部１１１）は、複数の参照信号Rの各々から各部分波形の波形スペクトルを生成する（Sa1）。次に、制御装置１１（時間合せ部１１２および条件付け部１１３）は、その部分波形に対応する楽譜データから、その部分波形に対応する発音単位のPNデータX1とOctデータX2とを含む制御データXを作成する（Sa2）。制御装置１１（訓練部１１４）は、各発音単位の制御データXと当該発音単位に対応する波形スペクトルとを用いて生成モデルを訓練し、生成モデルの複数の変数を確立する（Sa3）。
【００３３】
以上に説明した形態では、PNデータX1とOctデータX2とのセットで音高を表す構成を例示したが、複数のオクターブにわたる複数の音高（１２半音×ｎオクターブ）の何れかを表すone-hot表現の音高データを利用する構成（以下「対比例」という）も想定される。対比例とは対照的に、第１実施形態においては、PNデータX1とOctデータX2とを含む制御データXを入力として生成モデルが訓練される。したがって、確立された生成モデルは、自然界におけるオクターブ違いの音の共通性を活かしたモデルとなる。この生成モデルは、対比例の音高データで訓練された通常の生成モデルより小さい規模で、同等の品質の音信号Vの生成能力を習得できる。或いは、通常の生成モデルと同じ規模で、より高い品質の音信号Vの生成能力を習得できる。さらに、第１実施形態の生成モデルでは、訓練時に、あるオクターブの音高について参照信号Rを用いた訓練が実行されない場合でも、生成時にPNデータX1とOctデータX2によりその音高を指定することにより、その音高の音信号Vが生成される可能性が高くなる。
【００３４】
続いて、図２の下段に図示される、生成モデルを用いて音信号Vを生成する音生成機能について説明する。生成制御部１２１は、再生すべき楽譜データが表す一連の発音単位の情報に基づき、制御データX'を生成して生成部１２２に出力する。制御データX'は、楽譜データの各時刻tにおける発音単位の条件を表す。具体的には、制御データX'は、PNデータX1'とOctデータX2'と開始停止データX3'とコンテキストデータX4'とを含む。なお、制御データX'は、さらに、楽器、歌手または奏法など、その他の情報を含んでもよい。
【００３５】
生成部１２２は、図４の下段に例示するように、複数の変数が確立された生成モデルを用いて、制御データXに応じた波形スペクトルの時系列を生成する。生成部１２２は、生成モデルを用いて、フレームごと（時刻t）に、制御データX'に応じた波形スペクトルを示す出力データを推定する。推定される出力データが、波形スペクトルを構成する複数の成分の各々の確率密度分布を表す場合、生成部１２２は、その成分の確率密度分布に従う乱数を生成して、当該乱数を波形スペクトルの成分値として出力する。推定される出力データが複数の成分の値を表す場合は、その成分値を出力する。
【００３６】
合成部１２３は、周波数領域の波形スペクトルの時系列を受け取り、その波形スペクトルの時系列に応じた時間領域の音信号Vを合成する。合成部１２３は、いわゆるボコーダである。例えば、合成部１２３は、波形スペクトルから最小位相スペクトルを求めて、それら波形スペクトルと位相スペクトルとに対して逆フーリエ変換を実行することで音信号Vを合成する。或いは、波形スペクトルと音信号Vの間に潜在する関係を学習したニューラルボコーダを用いて、波形スペクトルから音信号Vを直接的に合成する。
【００３７】
図６は、各発音単位の音生成処理のフローチャートである。この音生成処理は、例えば音信号合成システム１００の利用者からの指示を契機として進行する時刻ｔが、楽譜データが表す各発音単位（例えば音符）の開始時刻に到達するたびに、その発音単位のために開始される。
【００３８】
ある発音単位に関する音生成処理が開始されると、制御装置１１（生成制御部１２１）は、楽譜データに基づいて、その発音単位の制御データX'を生成する（Sb1）。次に、制御装置１１（生成部１２２）は、生成モデルを用いて、生成された制御データX'に応じたその発音単位の音信号Vの波形スペクトルを生成する（Sb2）。次に、制御装置１１（合成部１２３）は、生成された波形スペクトルに応じて、その発音単位の音信号Vを合成する（Sb3）。以上の処理が楽譜データの複数の発音単位について順次行われることで、楽譜データに対応する音信号Vが生成される。なお、時間が前後する発音単位の音信号Vが重なる場合、それらを混合して音信号Vを算出する。
【００３９】
ここでは、合成されるべき音信号Vの音高を、制御データX'に含まれるPNデータX1'とOctデータX2'とで指定しており、自然界におけるオクターブ違いの音の共通性を活かして効率よく訓練され、確立された生成モデルを用いて、制御データX'に応じた高品質な音信号Vを生成できる。
【００４０】
Ｂ：第２実施形態
第１実施形態の生成部１２２は波形スペクトルを生成したが、第２実施形態では、生成部１２２が、生成モデルを用いて音信号Vを生成する。第２実施形態の機能構成は、図２と基本的に同じだが、合成部１２３は不要である。訓練部１１４は、参照信号Rを用いて生成モデルを訓練し、生成部１２２はその生成モデルを用いて音信号Vを生成する。第１実施形態における訓練用の発音単位データが制御データXと波形スペクトルとのセットであるのに対し、第２実施形態における訓練用の発音単位データは、各発音単位の制御データXと参照信号Rの部分波形（すなわち参照信号Rのサンプル）とのセットである。
【００４１】
第２実施形態の訓練部１１４は、訓練データを受け取り、その各バッチの複数の発音単位の部分波形と制御データXとを順番に用いて生成モデルを訓練する。生成モデルは、サンプリング周期（時刻t）毎に、音信号Vのサンプルを表す出力データを推定する。訓練部１１４は、制御データXから推定された出力データの時系列と訓練データのうち対応する部分波形とに基づいて損失関数L（１バッチ分の累算値）を計算し、その損失関数Lが最小化されるように生成モデルの複数の変数を最適化する。こうして確立された生成モデルは、複数の発音単位データにおける各制御データXと、参照信号Rの部分波形との間に潜在する関係を学習している。
【００４２】
第２実施形態の生成部１２２は、確立された生成モデルを用いて、制御データX'に応じた音信号Vを生成する。生成部１２２は、生成モデルを用いて、サンプリング周期ごと（時刻t）に、制御データX'に応じた音信号Vのサンプルを示す出力データを推定する。出力データが複数のサンプルの各々の確率密度分布を表す場合は、生成部１２２は、その成分の確率密度分布に従う乱数を生成して、当該乱数を音信号Vのサンプルとして出力する。出力データがサンプルの値を表す場合は、そのサンプルを出力する。
【００４３】
Ｃ：第３実施形態
図２に図示される第１実施形態においては、楽譜データの一連の発音単位の情報に基づいて音信号Vを生成する音生成機能を例示したが、鍵盤等から供給される発音単位の情報に基づいて、リアルタイムに音信号Vを生成するようにしてもよい。その場合、生成制御部１２１は、各時点ｔの制御データXを、その時点ｔまでに供給された発音単位の情報に基づいて生成する。ここでは、制御データXに含まれるコンテキストデータX4には、基本的に、未来の発音単位の情報を含むことができないが、過去の情報から未来の発音単位の情報を予測して、未来の発音単位の情報を含めるようにしてもよい。
【００４４】
上記実施形態のPNデータX1とOctデータX2は、それぞれone-hot表現であるが、他の表現形式でもよい。例えば、PNデータX1およびOctデータX2の何れか一方、或いは、両方のデータを、coarse表現としてもよい。
【００４５】
上記実施形態のPNデータX1とOctデータX2は、それぞれ次元数を固定して説明したが、どのような次元数であってもよい。例えば、PNデータX1の次元数を12次元より小さい次元数として、相異なる音高に割当られた複数の数値のうちの何れかを表すPNデータX1を利用してもよい。PNデータX1の次元数を12次元よりも大きい次元数として、各音名の中間的な音高を表現しても良い。また、OctデータX2の次元数を余分に追加しても良い。音信号Vが演奏音を表す楽器のオクターブ幅に応じてOctデータX2の次元数を変えても良いし、OctデータX2の次元数を、複数種の楽器のうち音域幅が最大の楽器の音高を表すのに必要な次元数で固定しても良い。
【００４６】
なお、音信号合成システム１００が合成する音信号Vは、楽器音または音声に限らず、動物の鳴き声、または風音および波音のような自然界の音であっても、その音高の動的な制御を行いたい場合は、本開示を適用できる。
【符号の説明】
【００４７】
１００…音信号合成システム、１１…制御装置、１２…記憶装置、１３…表示装置、１４…入力装置、１５…放音装置、１１１…解析部、１１２…時間合わせ部、１１３…条件付け部、１１４…訓練部、１２１…生成制御部、１２２…生成部、１２３…合成部。
【図１】
2020171035.tif 000003
【図２】
2020171035.tif 000004
【図３】
2020171035.tif 000005
【図４】
2020171035.tif 000006
【図５】
2020171035.tif 000007
【図６】
2020171035.tif 000008
【手続補正書】
【提出日】令和3年6月29日(2021.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、
参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定し、
前記生成された制御データに含まれる音名データは、１オクターブの１２個の音名のうち前記音信号の音高に対応する音名をone-hotにより示す
コンピュータにより実現される音信号合成方法。
【請求項２】
前記生成された制御データに含まれるオクターブデータは、前記音信号の音高のオクターブをone-hotにより示す
請求項１の音信号合成方法。
【請求項３】
前記出力データは、合成すべき音信号の波形スペクトルを示す
請求項１または２の音信号合成方法。
【請求項４】
前記出力データは、合成すべき音信号のサンプルを示す
請求項１または２の音信号合成方法。
【請求項５】
ある音高の参照信号と、当該音高に対応する音名を示す音名データと、当該音高のオクターブを示すオクターブデータとを用意し、
前記音名データと前記オクターブデータとを含む制御データに応じて前記参照信号を示す出力データを生成するように、生成モデルを訓練し、
前記音名データは、１オクターブの１２個の音名のうち前記参照信号の音高に対応する音名をone-hotにより示す
コンピュータにより実現される生成モデルの訓練方法。
【請求項６】
１以上のプロセッサと１以上のメモリとを具備する音信号合成システムであって、
前記１以上のメモリは、参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルを記憶し、
前記１以上のプロセッサは、
合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成し、
前記生成された制御データを前記生成モデルに入力することで、前記音信号を示す出力データを推定し、
前記生成された制御データに含まれる音名データは、１オクターブの１２個の音名のうち前記音信号の音高に対応する音名をone-hotにより示す
音信号合成システム。
【請求項７】
前記生成された制御データに含まれるオクターブデータは、前記音信号の音高のオクターブをone-hotにより示す
請求項６の音信号合成システム。
【請求項８】
前記出力データは、合成すべき音信号の波形スペクトルを示す
請求項６または７の音信号合成システム。
【請求項９】
前記出力データは、合成すべき音信号のサンプルを示す
請求項６または７の音信号合成システム。
【請求項１０】
合成すべき音信号の音高に対応する音名を示す音名データと当該音高のオクターブを示すオクターブデータとを含む制御データを生成する生成制御部、および、
参照信号の音高に対応する音名を示す音名データおよび当該音高のオクターブを示すオクターブデータを含む制御データと、前記参照信号を示す出力データとの関係を学習した生成モデルに、前記生成された制御データを入力することで、前記音信号を示す出力データを推定する生成部
としてコンピュータを機能させるプログラムであって、
前記生成された制御データに含まれる音名データは、１オクターブの１２個の音名のうち前記音信号の音高に対応する音名をone-hotにより示す
プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
音名データとオクターブデータは、両データのペアで音信号Vの音高を表す。音名データ（Pitch Notation Data  以下、「PNデータ」と呼ぶ）X1は、１オクターブの１２音階にそれぞれ対応する１２個の音高音のうち、音信号Vの音高の音名（"C", "C#", "D", … "A#", "B"）を示す。オクターブデータ（Octave Data  以下、「Octデータ」と呼ぶ）X2は、相異なる複数のオクターブのうち、音信号Vの音高が属するオクターブ（基準から何番目のオクターブか）を示す。図３に例示するように、PNデータX1とOctデータX2とは、以下に例示される通り、それぞれone-hot表現であってもよい。
【国際調査報告】
2020171035.tif 000009
2020171035.tif 000010
2020171035.tif 000011
2020171035.tif 000012
2020171035.tif 000013