(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-19
(45)【発行日】2022-07-27
(54)【発明の名称】音信号合成方法、生成モデルの訓練方法、音信号合成システムおよびプログラム
(51)【国際特許分類】
G10H 7/08 20060101AFI20220720BHJP
G10L 13/00 20060101ALI20220720BHJP
【FI】
G10H7/08
G10L13/00 100Y
(21)【出願番号】P 2021501997
(86)(22)【出願日】2020-02-18
(86)【国際出願番号】 JP2020006162
(87)【国際公開番号】W WO2020171036
(87)【国際公開日】2020-08-27
【審査請求日】2021-06-29
(31)【優先権主張番号】P 2019028684
(32)【優先日】2019-02-20
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】110003177
【氏名又は名称】特許業務法人旺知国際特許事務所
(72)【発明者】
【氏名】西村 方成
【審査官】米倉 秀明
(56)【参考文献】
【文献】米国特許第10068557(US,B1)
【文献】How to use LSTM neural network with 3D categorical input and output?,STACK OVERFLOW, [online],2018年05月22日,[retrieved on 2020.05.12], <URL: https://stackoverflow.com/questions/50474524/how-to-use-lstm-neural-network-with-3d-categorical-input-and-output?rq=1>
【文献】Merlijn Blaauw et al.,A Neural Parametric Singing Synthesizer Modeling Timbre and Expression from Natural Songs,Applied Sciences, [online],2017年12月,1313,pp. 1-23,[retrieved on 2020.05.12], <URL: https://pdfs.semanticsholar.org/0376/966e1dee6ead97730f2f8ce55df936a7111a.pdf>
【文献】西村 方成, 外4名,Deep Neural Networkに基づく歌声合成の検討,日本音響学会2016年春季研究発表会講演論文集, [CD-ROM],2016年02月24日,第213-214ページ
(58)【調査した分野】(Int.Cl.,DB名)
G10H 7/08
G10L 13/00
(57)【特許請求の範囲】
【請求項1】
合成すべき第1音信号の音高を表す第1音高データを生成し、
第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを用いて、前記第1音高データに応じた前記第1音信号を示す出力データを推定する
コンピュータにより実現される音信号合成方法であって、
前記第1音高データは、相異なる音名に対応する複数の音名データを含み、
前記第1音高データの生成においては、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該第1音信号の音高との相違に応じたホット値に設定する
音信号合成方法。
【請求項2】
前記第1音高データの生成においては、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データ以外の音名データを、前記第1音信号の音高に関与しないことを表すコールド値に設定する
請求項1の音信号合成方法。
【請求項3】
前記第1音信号の音高は動的に変化し、
前記第1音高データは、前記第1音信号において動的に変化する音高を表す
請求項1または請求項2の音信号合成方法。
【請求項4】
前記第2音信号の音高は動的に変化し、
前記第2音高データは、前記第2音信号において動的に変化する音高を表し、
前記生成モデルは、前記第2音信号と前記第2音高データとを用いて訓練されている
請求項1から請求項3の何れかの音信号合成方法。
【請求項5】
前記第1音信号の音高は、一の音名に対応する発音期間内において動的に変化し、前記第1音信号の音高に対応する音名データに設定されるホット値は、当該音高に応じて変化する
請求項1から請求項3の何れかの音信号合成方法。
【請求項6】
前記第1音信号の音高に対応する音名データは、相異なる音名に対応する複数の単位範囲のうち、当該音高を含む1個の単位範囲に対応する音名の音名データである
請求項1から請求項5の何れかの音信号合成方法。
【請求項7】
前記第1音信号の音高に対応する音名データは、相異なる音名に対応する複数の基準音高のうち、当該音高を挟む2個の基準音高にそれぞれ対応する2個の音名データである
請求項1から請求項5の何れかの音信号合成方法。
【請求項8】
前記第1音信号の音高に対応する音名データは、相異なる音名に対応する複数の基準音高のうち、当該音高に近いN個(Nは1以上の自然数)の基準音高にそれぞれ対応するN個の音名データである
請求項1から請求項5の何れかの音信号合成方法。
【請求項9】
前記推定される出力データは、前記第1音信号の波形スペクトルに関する特徴量を表す
請求項1から請求項8の何れかの音信号合成方法。
【請求項10】
前記推定される出力データは、前記第1音信号のサンプルを表す
請求項1から請求項8の何れかの音信号合成方法。
【請求項11】
合成すべき音信号の音高を表す音高データを用意し、
前記音高データの入力に対して前記音信号を示す出力データが出力されるように生成モデルを訓練する
コンピュータにより実現される生成モデルの訓練方法であって、
前記音高データは、相異なる音名に対応する複数の音名データを含み、
前記音高データの用意においては、前記複数の音名データのうち、前記音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該音信号の音高との相違に応じたホット値に設定する
訓練方法。
【請求項12】
1以上のプロセッサと1以上のメモリとを具備する音信号合成システムであって、
前記1以上のメモリは、第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを記憶し、
前記1以上のプロセッサは、
合成すべき第1音信号の音高を表す第1音高データを生成し、
前記生成モデルを用いて、前記第1音高データに応じた前記第1音信号を示す出力データを推定し、
前記第1音高データは、相異なる音名に対応する複数の音名データを含み、
前記1以上のプロセッサは、前記第1音高データの生成において、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該第1音信号の音高との相違に応じたホット値に設定する
音信号合成システム。
【請求項13】
合成すべき第1音信号の音高を表す第1音高データを生成する処理部、および、
第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを用いて、前記第1音高データに応じた前記第1音信号を示す出力データを推定する生成部
としてコンピュータを機能させるプログラムであって、
前記第1音高データは、相異なる音名に対応する複数の音名データを含み、
前記第1音高データの生成においては、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該第1音信号の音高との相違に応じたホット値に設定する
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音信号を合成する音源技術に関する。
【背景技術】
【0002】
特許文献1に示すNSynth、または非特許文献1に示すNPSS(Neural Parametric Singing Synthesizer)など、ニューラルネットワーク(以下、「NN」と呼ぶ)を用いて、条件入力に応じた音波形を生成する音源(以下、「DNN(Deep Neural Network)音源」と呼ぶ)が提案されている。NSynthは、エンベディング(embedding/埋込ベクトル)に応じて、サンプリング周期ごとに、音信号のサンプルを生成する。NPSSのTimbreモデルは、ピッチおよびタイミング情報に応じて、フレームごとに、音信号のスペクトルを生成する。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】Merlijn Blaauw, Jordi Bonada, 「A Neural Parametric Singing Synthesizer Modeling Timbre and Expression from Natural Songs」, Appl. Sci. 2017, 7, 1313
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のNsynthまたは非特許文献1のNPSSなどのDNN音源では、所望の1個の音階を指定する音高データにより、合成する音信号の音高を制御する。ピッチ包絡またはビブラートなど、音符などで指定される音階からの音高の動的なずれを制御することについては、考慮されていない。
【0006】
DNN音源の訓練フェーズでは、音高データを入力として、音信号または波形スペクトルを表す出力データを推定するNNを訓練する。DNN音源は、ビブラートのかかった音信号で訓練をすれば、ビブラートのかかった音信号を生成し、ピッチベンドがかかった音信号で訓練すれば、ピッチベンドのかかった音信号を生成する。しかしながら、ビブラートまたはピッチベンドのような、動的に変化する音高のずれ(ピッチベンド量)を、時間変化する数値で制御することはできない。
【0007】
本開示は、合成する音信号の動的なピッチ変化を、時間変化する数値で制御することを目的とする。
【課題を解決するための手段】
【0008】
本開示のひとつの態様に係る音信号合成方法は、合成すべき第1音信号の音高を表す第1音高データを生成し、第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを用いて、前記第1音高データに応じた前記第1音信号を示す出力データを推定するコンピュータにより実現される音信号合成方法であって、前記第1音高データは、相異なる音名に対応する複数の音名データを含み、前記第1音高データの生成においては、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該第1音信号の音高との相違に応じたホット値に設定する。
【0009】
本開示のひとつの態様に係る訓練方法は、合成すべき音信号の音高を表す音高データを用意し、前記音高データの入力に対して前記音信号を示す出力データが出力されるように生成モデルを訓練するコンピュータにより実現される生成モデルの訓練方法であって、前記音高データは、相異なる音名に対応する複数の音名データを含み、前記音高データの用意においては、前記複数の音名データのうち、前記音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該音信号の音高との相違に応じたホット値に設定する・
【0010】
本開示のひとつの態様に係る音信号合成システムは、1以上のプロセッサと1以上のメモリとを具備する音信号合成システムであって、前記1以上のメモリは、第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを記憶し、前記1以上のプロセッサは、合成すべき第1音信号の音高を表す第1音高データを生成し、第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを用いて、前記第1音高データに応じた前記第1音信号を示す出力データを推定し、前記第1音高データは、相異なる音名に対応する複数の音名データを含み、前記1以上のプロセッサは、第1音高データの生成において、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該第1音信号の音高との相違に応じたホット値に設定する。
【0011】
本開示のひとつの態様に係るプログラムは、合成すべき第1音信号の音高を表す第1音高データを生成する処理部、および、第2音信号の音高を表す第2音高データと前記第2音信号との関係を学習した生成モデルを用いて、前記第1音高データに応じた前記第1音信号を示す出力データを推定する生成部としてコンピュータを機能させるプログラムであって、前記第1音高データは、相異なる音名に対応する複数の音名データを含み、前記第1音高データの生成においては、前記複数の音名データのうち、前記第1音信号の音高に対応する音名データを、当該音名データに対応する音名の基準音高と当該第1音信号の音高との相違に応じたホット値に設定する。
【図面の簡単な説明】
【0012】
【
図1】音信号合成システムのハードウェア構成を示すブロック図である。
【
図2】音信号合成システムの機能構成を示すブロック図である。
【
図5】1ホットレベル記法に従う音高データの説明図である。
【
図8】2ホットレベル記法に従う音高データの説明図である。
【
図9】4ホットレベル記法に従う音高データの説明図である。
【
図10】各音名と音信号の音高の近接度の変形例を示す図である。
【発明を実施するための形態】
【0013】
A:第1実施形態
図1は、本開示の音信号合成システム100の構成を例示するブロック図である。音信号合成システム100は、制御装置11と記憶装置12と表示装置13と入力装置14と放音装置15とを具備するコンピュータシステムで実現される。音信号合成システム100は、例えば携帯電話機、スマートフォンまたはパーソナルコンピュータ等の情報端末である。音信号合成システム100は、単体の装置で実現されるほか、相互に別体で構成された複数の装置(例えばサーバ-クライアントシステム)でも実現される。
【0014】
制御装置11は、音信号合成システム100を構成する各要素を制御する単数または複数のプロセッサである。具体的には、例えばCPU(Central Processing Unit)、SPU(Sound Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、またはASIC(Application Specific Integrated Circuit)等の1種類以上のプロセッサにより、制御装置11が構成される。制御装置11は、合成音の波形を表す時間領域の音信号Vを生成する。
【0015】
記憶装置12は、制御装置11が実行するプログラムと制御装置11が使用する各種のデータとを記憶する単数または複数のメモリである。記憶装置12は、例えば磁気記録媒体もしくは半導体記録媒体等の公知の記録媒体、または、複数種の記録媒体の組合せで構成される。なお、音信号合成システム100とは別体の記憶装置12(例えばクラウドストレージ)を用意し、移動体通信網またはインターネット等の通信網を介して制御装置11が記憶装置12に対する書込および読出を実行してもよい。すなわち、記憶装置12は音信号合成システム100から省略されてもよい。
【0016】
表示装置13は、制御装置11が実行したプログラムの演算結果を表示する。表示装置13は、例えばディスプレイである。表示装置13は音信号合成システム100から省略されてもよい。
【0017】
入力装置14は、ユーザの入力を受け付ける。入力装置14は、例えばタッチパネルである。入力装置14は音信号合成システム100から省略されてもよい。
【0018】
放音装置15は、制御装置11が生成した音信号Vが表す音声を再生する。放音装置15は、例えばスピーカまたはヘッドホンである。なお、制御装置11が生成した音信号Vをデジタルからアナログに変換するD/A変換器と音信号Vを増幅する増幅器とについては図示を便宜的に省略した。また、
図1では、放音装置15を音信号合成システム100に搭載した構成を例示したが、音信号合成システム100とは別体の放音装置15を音信号合成システム100に有線または無線で接続してもよい。
【0019】
図2は、音信号合成システム100の機能構成を示すブロック図である。制御装置11は、記憶装置12に記憶されたプログラムを実行することで、生成モデルを用いて、歌手の歌唱音または楽器の演奏音などの音波形を表す時間領域の音信号Vを生成する音生成機能(処理部121、生成部122,および合成部123)を実現する。また、制御装置11は、記憶装置12に記憶されたプログラムを実行することで、音信号Vの生成に用いられる生成モデルの準備を行う準備機能(解析部111、時間合せ部112、処理部113、および訓練部114)を実現する。なお、複数の装置の集合(すなわちシステム)で制御装置11の機能を実現してもよいし、制御装置11の機能の一部または全部を専用の電子回路(例えば信号処理回路)で実現してもよい。
【0020】
まず、音高データX1と、音高データX1に応じて出力データを生成する生成モデルと、生成モデルの訓練に用いる参照信号Rについて説明する。
【0021】
音高データX1は、音信号(参照信号Rまたは音信号V)の音高(以下「目標音高」という)Pを示すデータである。
図3は、音高データX1の例である。音高データX1は、相異なる音名(…"G#3", "A3", "A#3", "B3", "C4", "C#4", "D4", …)に対応する複数(M個)の音名データを有する(Mは2以上の自然数)。なお、音名を表す記号(C,D,E,…)が共通する音名であってもオクターブが相違する音名は別個の音名として区別する。
【0022】
音高データX1を構成するM個の音名データのうち、目標音高Pに対応する1個の音名データ(以下「有効音名データ」という)は、当該有効音名データの音名に対応する所定の音高(以下「基準音高」という)Qと目標音高Pとの音高差(ずれ)に応じたずれ値に設定される。ずれ値は、ホット値(Hot Value)の一例である。1個の音名に対応する基準音高Qは、当該音名に対応する標準的な音高(ピッチ)である。他方、音高データX1を構成するM個の音名データのうち、有効音名データ以外の(M-1)個の音名データは、目標音高Pに関与しないことを示す定数値(例えば0)に設定される。目標音高Pに関与しないことを示す定数値は、コールド値の一例である。以上の説明から理解される通り、音高データX1は、音信号(参照信号Rまたは音信号V)の目標音高Pに対応する音名と、当該音名の基準音高Qに対する目標音高Pのずれ値との双方を指定する。
【0023】
生成モデルは、音高データX1を含む制御データXに応じて、音信号Vの波形スペクトル(例えば、メルスペクトログラム、または基本周波数などの特徴量)の時系列を生成する統計的モデルである。制御データXは、合成されるべき音信号の条件を指定するデータである。生成モデルの生成特性は、記憶装置12に記憶された複数の変数(係数およびバイアスなど)により規定される。統計的モデルは、波形スペクトルを推定するニューラルネットワークである。そのニューラルネットワークは、例えば、WaveNet(TM)のような、音信号Vの過去の複数のサンプルに基づいて、現在のサンプルの確率密度分布を推定する回帰的なタイプでもよい。また、そのアルゴリズムも任意であり、例えば、CNN(Convolutional Neural Network)タイプでもRNN(Recurrent Neural Network)タイプでよいし、その組み合わせでもよい。さらに、LSTM(Long Short-Term Memory)またはATTENTIONなどの付加的要素を備えるタイプでもよい。生成モデルの複数の変数は、後述する準備機能による訓練データを用いた訓練により確立される。複数の変数が確立された生成モデルは、後述する音生成機能において音信号Vの生成に使用される。
【0024】
記憶装置12は、生成モデルの訓練のために、ある楽譜をプレイヤーが演奏した時間領域の波形を示す音信号(以下、「参照信号」と呼ぶ)Rと、当該楽譜を表す楽譜データとが複数記録されている。各楽譜データは音符の時系列を含む。各楽譜データに対応する参照信号Rは、当該楽譜データが表す楽譜の音符の系列に対応する部分波形の時系列を含む。各参照信号Rは、サンプリング周期(例えば、48kHz)ごとのサンプルの時系列で構成され、音の波形を表す時間領域の信号である。演奏は、人間による楽器の演奏に限らず、歌手による歌唱、または楽器の自動演奏であってもよい。機械学習で良い音を生成するためには、一般的に十分な個数の訓練データが要求されるので、ターゲットとする楽器またはプレイヤーなどについて、多数の演奏の音信号を事前に収録し、参照信号Rとして記憶装置12に記憶しておく。
【0025】
図2の上段に図示される準備機能について説明する。解析部111は、複数の楽譜にそれぞれ対応する複数の参照信号Rの各々について、時間軸上のフレームごとに周波数領域のスペクトル(以下「波形スペクトル」と呼ぶ)を算定する。参照信号Rの波形スペクトルの算定には、例えば離散フーリエ変換等の公知の周波数解析が用いられる。波形スペクトルには、基本周波数などの音響的な特徴量も含まれる。
【0026】
時間合せ部112は、解析部111で得られた波形スペクトル等の情報に基づき、各参照信号Rに対応する楽譜データにおける複数の発音単位の開始時点と終了時点とを、参照信号Rにおけるその発音単位に対応する部分波形の開始時点と終了時点とに揃える。ここで、発音単位は、例えば、音高と発音期間とが指定された1個の音符である。なお、1個の音符を、音色等の波形の特徴が変化するポイントで分割して、複数の発音単位に分けてもよい。
【0027】
処理部113は、各参照信号Rに時間が揃えられた楽譜データの各発音単位の情報に基づき、フレームを単位とする時刻tごとに、参照信号Rのうち当該時刻tの部分波形に対応する制御データXを生成する。処理部113が生成する制御データXは、前述の通り、参照信号Rの条件を指定する。
【0028】
制御データXは、
図4に例示される通り、音高データX1と開始停止データX2とコンテキストデータX3とを含む。音高データX1は、参照信号Rの部分波形における目標音高Pを表す。開始停止データX2は、各部分波形の開始期間(アタック)と終了期間(リリース)とを表す。1個の音符に相当する部分波形内の1個のフレームのコンテキストデータX3は、当該音符と前後の音符との音高差、または楽譜内における当該音符の相対的な位置を表す情報など、複数の発音単位との関係(すなわちコンテキスト)を表す。制御データXには、さらに、楽器、歌手または奏法など、その他の情報を含んでいてもよい。
【0029】
前述の通り、音高データX1を構成するM個の音名データのうち、音信号(参照信号Rまたは音信号V)の目標音高Pに対応する1個の有効音名データは、当該音名に対応する基準音高Qに対する目標音高Pの音高差に応じたずれ値に設定される。この記法に従う音高データX1を、1ホットレベル記法の音高データX1と呼ぶ。処理部113(制御装置11)は、音高データX1のM個の音名データのうち、参照信号Rの目標音高Pに対応する1個の有効音名データを、当該音名に対応する基準音高Qと目標音高Pとの音高差に応じたずれ値に設定する。
図5に、その設定例を示す。
【0030】
図5の上段には、時間軸(横軸)と音高軸(縦軸)とが設定された2次元平面に、楽譜データが表す楽譜を構成する音符の時系列と、当該楽譜を演奏した演奏音の音高(目標音高P)とが図示されている。
図5の例では、音符F#、音符F、休符、音符F、音符F#、音符Fが順に演奏される。
図5における目標音高Pは、例えば音高が連続的に変化する楽器から発音される演奏音の音高である。
【0031】
図5に例示される通り、音高軸は、相異なる音名に対応する複数の範囲(以下「単位範囲」という)Uに区画される。各音名に対応する基準音高Qは、例えば当該音名に対応する単位範囲Uの中点に相当する。例えば、音名F#に対応する基準音高Q(F#)は、当該音名F#に対応する単位範囲U(F#)の中点である。
図5から理解される通り、目標音高Pが各音符の基準音高Qに近付くように楽曲が演奏される。各音名に対応する基準音高Qは音高軸上に離散的に設定されるのに対し、目標音高Pは時間の経過とともに連続的に変化する。したがって、目標音高Pは基準音高Qに対してずれている。
【0032】
図5の中段は、音高データX1の各音名データが表す数値の時間的な変化を表すグラフである。
図5の中段における縦軸の数値0は、各音名に対応する基準音高Qを意味する。目標音高Pが1個の音名の単位範囲U内にある場合、音高データX1のM個の音名データのうち当該音名に対応する1個の音名データが有効音名データとして選択され、当該有効音名データが基準音高Qに対するずれ値に設定される。
【0033】
有効音名データが表すずれ値は、当該有効音名データの音名に対応する基準音高Q(=0)に対する目標音高Pの相対値である。1個の音名に対応する単位範囲Uの幅は100セント(半音分)であるから、基準音高Qに対する目標音高Pの音高差は±50セントの範囲に収まる。一方、有効音名データに設定されるずれ値は、0から1の範囲の何れかの値をとる。音高差とずれ値との対応付けは任意であるが、例えば、ずれ値の0から1の範囲が、音高差の-50セントから+50セントに対応付けられる。例えば、ずれ値の0が音高差の-50セントに対応し、ずれ値の0.5が音高差の0セントに対応し、ずれ値の1が音高差の+50セントに対応する。
【0034】
図5に例示される通り、時間軸上の時刻t1において、目標音高Pは、音名F#に対応する単位範囲U(F#)内にあり、かつ、当該音名F#に対応する基準音高Q(F#)との音高差は+40セントである。したがって、時刻t1においては、音高データX1のM個の音名データのうち、音名F#に対応する1個の有効音名データが、+40セントの音高差に対応するずれ値0.9に設定され、残余の(M-1)個の音名データは0(コールド値)に設定される。
【0035】
また、時刻t2において、目標音高Pは、音名Fに対応する単位範囲U(F)内にあり、かつ、当該音名Fに対応する基準音高Q(F)との音高差は+20セントである。したがって、時刻t2においては、音高データX1のM個の音名データのうち、音名Fに対応する1個の有効音名データが、+20セントの音高差に対応するずれ値0.7に設定される。
【0036】
なお、音高差とずれ値との対応は上記に限らず、例えば、ずれ値の0.2から1の範囲を、音高差の-50セントから+50セントの範囲に対応付けてもよい。例えば、ずれ値の0.2が音高差の-50セントに対応し、ずれ値の0.6が音高差の0セントに対応し、ずれ値の1が音高差の+50セントに対応する。或いは、ずれ値の正負と音高差の正負との関係を反転し、ずれ値の0.2から1の範囲を、音高差の+50セントから-50セントに対応付けてもよい。
【0037】
解析部111および処理部113による処理の結果、複数の参照信号Rと複数の楽譜データとから、生成モデルを訓練するための複数の発音単位データが準備される。各発音単位データは、制御データXと波形スペクトルとのセットである。複数の発音単位データは、訓練部114による訓練に先立ち、生成モデルの訓練のための訓練データと、生成モデルのテストのためのテストデータとに分けられる。複数の発音単位データの大部分を訓練データとし、一部をテストデータにする。訓練データによる訓練は、複数の発音単位データをフレームの所定個ごとにバッチとして分割し、バッチ単位で全バッチにわたり順番に行われる。
【0038】
訓練部114は、
図4の上段に例示するように、訓練データを受け取り、その各バッチの複数の発音単位の波形スペクトルと制御データXとを順番に用いて生成モデルを訓練する。生成モデルは、フレーム(時刻t)ごとに、波形スペクトルを表す出力データを推定する。出力データは、波形スペクトルを構成する複数の成分の各々の確率密度分布を示すデータであっても良いし、各成分の値であってもよい。訓練部114は、1バッチ分の各発音単位データにおける制御データXを生成モデルに入力することで、その制御データXに対応する出力データの時系列を推定する。訓練部114は、推定された出力データと訓練データのうち対応する波形スペクトル(すなわち正解値)とに基づいて損失関数L(1バッチ分の累算値)を計算する。そして、訓練部114は、その損失関数Lが最小化されるように生成モデルの複数の変数を最適化する。例えば、損失関数Lとしては、出力データが確率密度分布である場合にはクロスエントロピー関数などが使用され、出力データが波形スペクトルの値である場合には二乗誤差関数などが使用される。訓練部114は、訓練データを利用した以上の訓練を、テストデータについて算出される損失関数Lの値が十分に小さくなるか、或いは、相前後する損失関数Lの変化が十分に小さくなるまで繰り返し行う。こうして確立された生成モデルは、各時刻tにおける制御データXと、参照信号Rのうち当該時刻tに対応する波形スペクトルとの間に潜在する関係を習得している。この生成モデルを用いることで、生成部122は、未知の音信号Vの制御データXについても、品質の良い波形スペクトルを生成できる。
【0039】
図6は、準備処理のフローチャートである。準備処理は、例えば音信号合成システム100の利用者からの指示を契機として開始される。
【0040】
準備処理が開始されると、制御装置11(解析部111)は、複数の参照信号Rの各々から各部分波形の波形スペクトルを生成する(Sa1)。次に、制御装置11(時間合せ部112および処理部113)は、その部分波形に対応する楽譜データから、その部分波形に対応する発音単位の音高データX1を含む制御データXを作成する(Sa2)。制御装置11(訓練部114)は、各発音単位の各時刻tの制御データXと当該発音単位に対応する波形スペクトルとを用いて生成モデルを訓練し、生成モデルの複数の変数を確立する(Sa3)。
【0041】
ここでは、各音名の基準音高Qに対するずれ値を示す音高データX1を含む制御データXを入力として生成モデルが訓練される。したがって、その訓練により確立された生成モデルは、制御データXが示す音高のずれ値と、音信号(参照信号R)の波形スペクトルとの間に潜在する関係を習得する。これにより、音名とずれ値とを指定する音高データX1を含む制御データを生成モデルに入力すれば、その指定された音名とずれに応じた音高の音信号Vを生成できる。
【0042】
本願の発明者は、対比例として、音信号の音名を示す従来のone-hotの音高データと、当該音名の基準音高Qに対する音信号の音高ずれを示すベンドデータとをパラレルに含む制御データを入力として生成モデルを訓練した。しかしながら、その訓練で確立された生成モデルを用いた場合、生成される音信号の音高は、音高データが示す音高に追従するものの、ベンドデータが示すずれに安定して追従しなかった。これは、生成モデルで生成される音信号の1個の特徴量である音高を、音高データおよびベンドデータという別個の2種類のデータで制御しようとしたため、と考察される。
【0043】
続いて、
図2の下段に図示される、生成モデルを用いて音信号Vを生成する音生成機能について説明する。処理部121は、処理部113と同様に、再生すべき楽譜データが表す一連の発音単位に基づき、制御データXを生成して生成部122に出力する。制御データXは、楽譜データの各時刻tにおける発音単位の条件(すなわち、合成されるべき音信号Vの条件)を表す。具体的には、制御データXは、音高データX1と開始停止データX2とコンテキストデータX3とを含む。処理部113が生成する音高データX1が、参照信号Rの目標音高Pを表すのに対し、処理部121が生成する音高データX1は、合成すべき音信号Vの目標音高Pを表す。ただし、処理部113が実行する処理と処理部121が実行する処理とは実質的に共通し、処理部113が生成する音高データX1の形式と処理部121が生成する音高データX1の形式とは共通する。なお、制御データXは、さらに、楽器、歌手または奏法など、その他の情報を含んでもよい。
【0044】
生成部122は、
図4の下段に例示するように、複数の変数が確立された生成モデルを用いて、制御データXに応じた波形スペクトルの時系列を生成する。生成部122は、生成モデルを用いて、フレームごと(時刻t)に、制御データXに応じた波形スペクトルを示す出力データを推定する。推定される出力データが、波形スペクトルを構成する複数の成分の各々の確率密度分布を表す場合、生成部122は、その成分の確率密度分布に従う乱数を生成して、当該乱数を波形スペクトルの成分値として出力する。推定される出力データが複数の成分の値を表す場合は、その成分値を出力する。
【0045】
合成部123は、周波数領域の波形スペクトルの時系列を受け取り、その波形スペクトルの時系列に応じた時間領域の音信号Vを合成する。合成部123は、いわゆるボコーダである。例えば、合成部123は、波形スペクトルから最小位相スペクトルを求めて、それら波形スペクトルと位相スペクトルとに対して逆フーリエ変換を実行することで音信号Vを合成する。或いは、波形スペクトルと音信号Vの間に潜在する関係を学習したニューラルボコーダを用いて、波形スペクトルから音信号Vを直接的に合成する。
【0046】
図7は、各発音単位の音生成処理のフローチャートである。この音生成処理は、例えば音信号合成システム100の利用者からの指示を契機として、時刻t毎に、当該時刻に対応するフレームの音信号Vを生成するために実行される。時刻tの進行速度は、実時間の進行速度と同じ位でも良いし、速いあるいは遅い、つまり、実時間と異なっていてもよい。
【0047】
ある時刻tの音生成処理が開始されると、制御装置11(処理部121)は、楽譜データに基づいて、その時刻tの制御データXを生成する(Sb1)。次に、制御装置11(生成部122)は、生成モデルを用いて、生成された制御データXに応じた、その時刻tの音信号Vの波形スペクトルを生成する(Sb2)。次に、制御装置11(合成部123)は、生成された波形スペクトルに応じて、その時刻tに対応するフレームの音信号Vを合成する(Sb3)。以上の処理が、楽譜データの各時刻tについて順次行われることで、楽譜データに対応する音信号Vが生成される。
【0048】
第1実施形態においては、1個の音高データX1が、合成されるべき音信号Vの目標音高Pと当該音名の基準音高Qとの音高差に応じたずれ値とを指定する。そして、生成部122は、この音高データX1を含む制御データXを入力とする生成モデルを用いて、音高データX1で指定された音名とずれ値とに応じた音高の音信号Vを生成する。したがって、生成される音信号Vの音高は、音高データX1が指定する音名と、その音名の基準音高Qからのずれ値との変化に良く追従する。例えば、音高データX1が示すずれ値を動的に変化させることにより、生成する音信号Vに、例えばビブラートまたはピッチベンドなどの、動的なピッチ変化を付与できる。
【0049】
B:第2実施形態
第2実施形態では、生成モデルへの入力として、第1実施形態の1ホットレベル記法の音高データX1の代わりに、
図8に例示する2ホットレベル記法の音高データX1を用いる。第2実施形態の音信号合成システム100の構成、及び、制御装置11の機能構成は、基本的に第1実施形態と同じである。
【0050】
2ホットレベル記法の音高データX1においては、相異なる音名に対応するM個の音名データのうち、音信号(参照信号Rまたは音信号V)の目標音高Pに対応する2個の有効音名データの各々に、当該有効音名データの音名に対応する基準音高Qと目標音高Pとの音高差に応じたホット値が設定される。処理部113または処理部121(制御装置11)は、音高データX1のM個の音名データのうち、音信号(参照信号Rまたは音信号V)の目標音高Pを挟む2個の基準音高Qの各々に対応する音名データを有効音名データとして選択し、2個の有効音名データの各々を、目標音高Pと当該音名データの音名に対応する基準音高Qとの近接度(ホット値の一例)に設定する。すなわち、2ホットレベル記法とは、音高データX1を構成するM個の音名データのうちの2個の有効音名データをホット値(近接度)に設定し、残余の(M-2)個の音名データをコールド値(例えば0)に設定する記述方法である。
【0051】
図8の上段には、時間軸(横軸)と音高軸(縦軸)とが設定された2次元平面に、楽譜データが表す楽譜を構成する音符の時系列と、当該楽譜を演奏した演奏音の音高(目標音高P)とが図示されている。
図8から分かるように、音高データX1を構成するM個の音名データのうち、目標音高Pに1番近い基準音高Qに対応する音名の音名データと、2番目に近い基準音高Qに対応する音名の音名データとが、有効音名データとして選択される。
【0052】
図8の中段に、各音名データの音名に対応する基準音高Qと目標音高Pとの近接度を示す。ここで、近接度は、0から1の範囲の何れかの値を取る。具体的には、目標音高Pとある音名の基準音高Qとが一致するときに近接度は1である。また、目標音高Pとその音名の基準音高Qとの音高差がxセントのとき、近接度は(100-x)/100である。すなわち、目標音高Pと基準音高Qとの音高差が大きいほど近接度は小さい数値となる。例えば、目標音高Pがある音名の基準音高Qから半音以上離れると、近接度は0となる。
【0053】
図8の時刻t3においては、目標音高Pが、音名Gに対応する基準音高Q(G)と音名F#に対応する基準音高Q(F#)との間に位置する。したがって、音高データX1のM個の音名データのうち、音名Gに対応する音名データと音名F#に対応する音名データとが有効音名データとして選択される。時刻t3において、基準音高Q(G)と目標音高Pとの音高差は50セントであるから、音名Gに対応する有効音名データは、近接度0.5に設定される。また、時刻t3において、基準音高Q(F#)と目標音高Pとの音高差も50セントであるから、音名F#に対応する有効音名データも、近接度0.5に設定される。以上の通り、第2実施形態の処理部113または処理部121は、時刻t3において、音高データX1を構成するM個の音名データのうち、音名Gに対応する有効音名データを0.5に設定し、音名F#に対応する有効音名データを0.5に設定し、残余の(M-2)個の音名データを0(コールド値)に設定する。
【0054】
他方、
図8の時刻t4においては、目標音高Pが、音名Fに対応する基準音高Q(F)と音名F#に対応する基準音高Q(F#)との間に位置する。したがって、音高データX1のM個の音名データのうち音名Fに対応する音名データと音名F#に対応する音名データとが有効音名データとして選択される。時刻t4において、基準音高Q(F)と目標音高Pとの音高差は80セントであるから、音名Fに対応する有効音名データは、近接度0.2に設定される。また、時刻t4において、基準音高Q(F#)と目標音高Pとの音高差は20セントであるから、音名F#に対応する有効音名データは、近接度0.8に設定される。以上の通り、第2実施形態の処理部113または処理部121は、時刻t4において、音高データX1を構成するM個の音名データのうち、音名Fに対応する有効音名データを0.2に設定し、音名F#に対応する有効音名データを0.8に設定し、残余の(M-2)個の音名データを0(コールド値)に設定する。
【0055】
訓練部114は、2ホットレベル表記の音高データX1を含む制御データXを入力として、その制御データXに対応する波形スペクトルを示す出力データを生成するよう、生成モデルを訓練する。複数の変数が確立された生成モデルは、複数の発音単位データにおける各制御データXと、参照信号Rの波形スペクトルとの間に潜在する関係を習得している。
【0056】
生成部122は、確立された生成モデルを用いて、2ホットレベル表記の音高データX1を含む制御データXに応じた波形スペクトルを時刻t毎に生成する。合成部123は、第1実施形態と同様に、生成部122が生成した波形スペクトルの時系列に応じた時間領域の音信号Vを合成する。
【0057】
第2実施形態においては、生成モデルを用いて、2ホットレベル表記の音高データX1が表す目標音高Pの変化によく追従する音信号Vを生成できる。
【0058】
C:第3実施形態
第2実施形態においては、目標音高Pに対応する2個の有効音名データがホット値に設定されるが、音高データX1を構成するM個の音名データのうちホット値に設定される有効音名データの個数は任意である。第3実施形態においては、第2実施形態の2ホットレベル記法の音高データX1の代わりに、
図9に例示する4ホットレベル記法の音高データX1を生成モデルに対する入力として利用する。第3実施形態の音信号合成システム100の構成、及び、制御装置11の機能構成は、基本的に第1実施形態および第2実施形態と同じである。
【0059】
4ホットレベル記法の音高データX1においては、相異なる音名に対応するM個の音名データのうち、音信号(参照信号Rまたは音信号V)の目標音高Pに対応する4個の音名データが有効音名データとして選択される。具体的には、目標音高Pを挟む2個の基準音高Qの各々に対応する2個の音名データと、当該2個の音名データに隣合う2個の音名データとが、有効音名データとして選択される。目標音高Pに近い4個の音名データが有効音名データとして選択されると換言してもよい。4個の有効音名データの各々は、,目標音高Pと当該有効音名データの音名に対応する基準音高Qとの近接度(ホット値)に設定される。すなわち、4ホットレベル記法とは、音高データX1を構成するM個の音名データのうちの4個の音名データをホット値(近接度)に設定し、残余の(M-4)個の音名データをコールド値(例えば0)に設定する記述方法である。処理部113または処理部121(制御装置11)は、以上に説明した音高データX1を生成する。
【0060】
図9の上段には、第2実施形態と同様に、時間軸(横軸)と音高軸(縦軸)とが設定された2次元平面に、楽譜データが表す楽譜を構成する音符の時系列と、当該楽譜を演奏した演奏音の音高(目標音高P)とが図示されている。
図9から理解される通り、音高データX1を構成するM個の音名データのうち、目標音高Pに近い4個の基準音高Qにそれぞれ対応する4個の音名データが有効音名データとして選択される。
【0061】
図9の中段に、各音名データの音名に対応する基準音高Qと目標音高Pとの近接度を示す。ここで、近接度は、第2実施形態と同様に、0から1の範囲の何れかの値を取る。具体的には、目標音高Pとある音名の基準音高Qとが一致するときに近接度は1である。また、目標音高Pとその音名の基準音高Qとの音高差がxセントのとき、近接度は(200-x)/200である。すなわち、第2実施形態と同様に、目標音高Pと基準音高Qとの音高差が大きいほど近接度は小さい数値となる。例えば、目標音高Pがある音名の基準音高Qから全音以上離れると、近接度は0となる。
【0062】
図9の時刻t5においては、目標音高Pが、音名Gに対応する基準音高Q(G)と音名F#に対応する基準音高Q(F#)との間に位置する。したがって、音高データX1のM個の音名データのうち、音名Gおよび音名F#と、音名Gの高位側に隣合う音名G#と、音名F#の低位側に隣合う音名Fとに対応する4個の音名データが、有効音名データとして選択される。時刻t5において、基準音高Q(G)と目標音高Pとの音高差は50セントであるから、音名Gに対応する有効音名データは近接度0.75に設定される。同様に、基準音高Q(F#)と目標音高Pとの音高差は50セントであるから、音名F#に対応する有効音名データは近接度0.75に設定される。また、基準音高Q(F)と目標音高Pとの音高差は150セントであるから、音名Fに対応する有効音名データは近接度0.25に設定される。同様に、基準音高Q(G#)と目標音高Pとの音高差は150セントであるから、音名G#に対応する有効音名データは近接度0.25に設定される。以上の通り、第3実施形態の処理部113または処理部121は、時刻t5において、音高データX1を構成するM個の音名データのうち、音名Gおよび音名F#に対応する2個の有効音名データを0.5に設定し、音名Fおよび音名G#に対応する2個の有効音名データを0.25に設定し、残余の(M-4)個の音名データを0(コールド値)に設定する。
【0063】
時刻t6においては、目標音高Pが、音名F#に対応する基準音高Q(F#)と音名Fに対応する基準音高Q(F)と音間に位置する。したがって、音高データX1のM個の音名データのうち、音名F#および音名Fと、音名F#の高位側に隣合う音名Gと、音名Fの低位側に隣合う音名Eとに対応する4個の音名データが、有効音名データとして選択される。時刻t6において、基準音高Q(F#)と目標音高Pとの音高差は25セントであるから、音名F#に対応する有効音名データは近接度0.875に設定される。基準音高Q(F)と目標音高Pとの音高差は75セントであるから、音名Fに対応する有効音名データは近接度0.625に設定される。基準音高Q(G)と目標音高Pとの音高差は125セントであるから、音名Gに対応する有効音名データは近接度0.375に設定される。また、基準音高Q(E)と目標音高Pとの音高差は175セントであるから、音名Eに対応する有効音名データは近接度0.125に設定される。以上の通り、第3実施形態の処理部113または処理部121は、時刻t6において、音高データX1を構成するM個の音名データのうち、音名F#に対応する有効音名データを0.875に設定し、音名Fに対応する有効音名データを0.625に設定し、音名Gに対応する有効音名データを0.375に設定し、音名Eに対応する有効音名データを0.125に設定し、残余の(M-4)個の音名データを0(コールド値)に設定する。
【0064】
訓練部114は、4ホットレベル表記の音高データX1を含む制御データXを入力として、その制御データXに対応する波形スペクトルを示す出力データを生成するよう、生成モデルを訓練する。複数の変数が確立された生成モデルは、複数の発音単位データにおける各制御データXと、参照信号Rの波形スペクトルとの間に潜在する関係を習得している。
【0065】
生成部122は、確立された生成モデルを用いて、2ホットレベル表記の音高データX1を含む制御データXに応じた波形スペクトルを時刻t毎に生成する。合成部123は、第1実施形態と同様に、生成部122が生成した波形スペクトルの時系列に応じた時間領域の音信号Vを合成する。
【0066】
第3実施形態においては、生成モデルを用いて、4ホットレベル表記の音高データX1が表す目標音高Pの変化によく追従する音信号Vを生成できる。
【0067】
第1実施形態に例示した1ホットレベル記法と、第2実施形態に例示した2ホットレベル記法と、第3実施形態に例示した4ホットレベル記法とは、音高データX1内の有効音名データの個数をNとしたNホットレベル記法として一般化される(Nは1以上の自然数)。Nホットレベル記法においては、音高データX1を構成するM個の音名データのうち、目標音高Pに対応するN個の有効音名データが、当該音名の基準音高Qと目標音高Pとの音高差に応じたホット値(ずれ値または近接度)に設定され、残余の(M-N)個の音名データがコールド値(例えば0)に設定される。目標音高Pとある音名の基準音高Qとの音高差がxセントであるとき、近接度は(50×N-x)/50×Nと表現される。ただし、近接度を算定するための演算式は以上の例示に限定されない。以上の通り、目標音高Pを表現するために使用される有効音名データの個数Nは任意である。
【0068】
D:第4実施形態
第1、第2、および第3実施形態の生成部122は波形スペクトルを生成したが、第4実施形態では、生成部122が、生成モデルを用いて音信号Vを生成する。第4実施形態の機能構成は、
図2と基本的に同じだが、合成部123は不要である。訓練部114は、参照信号Rを用いて生成モデルを訓練し、生成部122はその生成モデルを用いて音信号Vを生成する。第4実施形態における訓練用の発音単位データは、各発音単位の制御データXと参照信号Rの部分波形(すなわち参照信号Rのサンプル)のセットである。
【0069】
第4実施形態の訓練部114は、訓練データを受け取り、その各バッチの複数の発音単位の部分波形と制御データXとを順番に用いて生成モデルを訓練する。生成モデルは、サンプリング周期(時刻t)毎に、音信号Vのサンプルを表す出力データを推定する。訓練部114は、制御データXから推定された出力データの時系列と訓練データのうち対応する部分波形とに基づいて損失関数L(1バッチ分の累算値)を計算し、その損失関数Lが最小化されるように生成モデルの複数の変数を最適化する。こうして確立された生成モデルは、複数の発音単位データにおける各制御データXと、参照信号Rの部分波形との間に潜在する関係を学習している。
【0070】
第4実施形態の生成部122は、確立された生成モデルを用いて、制御データXに応じた音信号Vを生成する。生成部122は、生成モデルを用いて、サンプリング周期ごと(時刻t)に、制御データXに応じた音信号Vのサンプルを示す出力データを推定する。出力データが複数のサンプルの各々の確率密度分布を表す場合は、生成部122は、その成分の確率密度分布に従う乱数を生成して、当該乱数を音信号Vのサンプルとして出力する。出力データがサンプルの値を表す場合には、そのサンプルの時系列が音信号Vとして出力される。
【0071】
E:第5実施形態
図2に図示される実施形態の音生成機能では、楽譜データの一連の発音単位の情報に基づいて、音信号Vを生成していたが、鍵盤等から供給される発音単位の情報に基づいて、リアルタイムに音信号Vを生成するようにしてもよい。その場合、処理部121は、各時点の制御データXを、その時点までに供給された発音単位の情報に基づいて生成する。ここでは、制御データXに含まれるコンテキストデータX3には、基本的に、未来の発音単位の情報を含むことができないが、過去の情報から未来の発音単位の情報を予測して、未来の発音単位の情報を含めるようにしてもよい。
【0072】
F:変形例
第1実施形態では、音高データX1を構成するM個の音名データのうち、目標音高Pに近い基準音高Qに対応する音名の音名データを有効音名データとして選択したが、目標音高Pから遠い基準音高Qに対応する音名の音名データを有効音名データとして選択してもよい。その場合、第1実施形態のずれ値は、±50セントを超える音高差を表現できるようにスケーリングされる。
【0073】
第2および第3実施形態では、目標音高Pと基準音高Qとの近接度は、セントスケールにおける両者間の音高差に応じて0から1までの範囲内においてリニアに変化したが、代わりに、
図10のような正規分布などの確率分布またはコサインカーブ等の任意のカーブ、または、折れ線に従って1から0に減少してもよい。
【0074】
第1および第2実施形態では、セントスケールで音名の対応付けを行っていたが、ヘルツスケールなどのその他音高を表現する任意のスケールで対応付けを行っても良い。その際、ずれ値は各スケール上における適切な値を挿入する。
【0075】
第1、第2実施形態では、処理部113または処理部121において0から1にスケーリングしていたが、スケーリングについては任意の値で行っても良い。例えば、-1から+1にスケーリングしてもよい。
【0076】
なお、音信号合成システム100が合成する音信号は、楽器音または音声に限らず、動物の鳴き声、または風音および波音のような自然界の音であっても、その音高の動的な制御を行いたい場合は、本開示を適用できる。
【符号の説明】
【0077】
100…音信号生成装置、11…制御装置、12…記憶装置、13…表示装置、14…入力装置、15…放音装置、111…解析部、112…時間合わせ部、113…処理部、114…訓練部、121…処理部、122…生成部、123…合成部。