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

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

▶ ヤマハ株式会社の特許一覧

特許7578192機械学習モデルを用いた音生成方法および音生成装置
<>
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図1
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図2
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図3
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図4
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図5
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図6
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図7
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図8
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図9
  • 特許-機械学習モデルを用いた音生成方法および音生成装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】機械学習モデルを用いた音生成方法および音生成装置
(51)【国際特許分類】
   G10L 13/10 20130101AFI20241029BHJP
   G10L 13/00 20060101ALI20241029BHJP
【FI】
G10L13/10 113Z
G10L13/00 100Y
【請求項の数】 14
(21)【出願番号】P 2023522703
(86)(22)【出願日】2022-05-18
(86)【国際出願番号】 JP2022020724
(87)【国際公開番号】W WO2022244818
(87)【国際公開日】2022-11-24
【審査請求日】2023-09-22
(31)【優先権主張番号】P 2021084180
(32)【優先日】2021-05-18
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】100108523
【弁理士】
【氏名又は名称】中川 雅博
(74)【代理人】
【識別番号】100125704
【弁理士】
【氏名又は名称】坂根 剛
(74)【代理人】
【識別番号】100187931
【弁理士】
【氏名又は名称】澤村 英幸
(72)【発明者】
【氏名】大道 竜之介
【審査官】山下 剛史
(56)【参考文献】
【文献】特開2018-141917(JP,A)
【文献】特開2021-51251(JP,A)
【文献】特開2019-219568(JP,A)
【文献】特開2020-76843(JP,A)
【文献】特開2017-107228(JP,A)
【文献】中国特許出願公開第112466313(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-13/10,25/30
G10H 1/00- 7/12
(57)【特許請求の範囲】
【請求項1】
音の特性を示す制御値を、時間軸上の複数の各時点で受け付け、
時間軸上の所望の時点において、強制指示を受け付け、
訓練済モデルを用いて、各時点の前記制御値と、一時メモリに記憶された音響特徴量列とを処理して、その時点の音響特徴量を生成し、
その時点に前記強制指示が受け付けられていなければ、生成された音響特徴量を用いて前記一時メモリに記憶された音響特徴量列を更新し、
その時点に前記強制指示が受け付けられていれば、その時点の前記制御値に従う、直近の1以上の時点の代替音響特徴量を生成し、生成された代替音響特徴量を用いて前記一時メモリに記憶された音響特徴量列を更新する、
コンピュータにより実現される音生成方法。
【請求項2】
前記訓練済モデルは、機械学習により、各時点の音響特徴量を、未知の制御値と、直前の複数の時点の音響特徴量とに基づいて推定するよう訓練済である、請求項1記載の音生成方法。
【請求項3】
前記訓練済モデルにより生成される音響特徴量は、前記未知の制御値に応じた特徴量を有する、請求項2記載の音生成方法。
【請求項4】
各時点の代替音響特徴量は、その時点の前記制御値と、その時点に生成された音響特徴量とに基づいて生成される、請求項1記載の音生成方法。
【請求項5】
前記制御値と同種の特徴量であって、各時点で生成された音響特徴量の特徴量が、前記制御値に近づくよう、その音響特徴量を改変することで、その時点の代替音響特徴量が生成される、請求項3記載の音生成方法。
【請求項6】
各時点の音響特徴量の特徴量がその時点の前記制御値に応じた許容範囲に収まるように、当該音響特徴量を改変することにより各時点の代替音響特徴量が生成される、請求項3記載の音生成方法。
【請求項7】
前記制御値に応じた許容範囲は、前記強制指示により規定される、請求項4記載の音生成方法。
【請求項8】
各時点の音響特徴量の特徴量が、その時点の前記制御値に応じた中立範囲に近づくよう、音響特徴量を改変することにより各時点の代替音響特徴量が生成される、請求項3記載の音生成方法。
【請求項9】
各時点の音響特徴量の特徴量が、その時点の前記制御値に応じた目標値に近づくように改変することにより各時点の代替音響特徴量が生成される、請求項3記載の音生成方法。
【請求項10】
前記一時メモリに記憶された音響特徴量列は、前記生成された音響特徴量を用いて、FIFO的に更新される、請求項1~3のいずれか一項に記載の音生成方法。
【請求項11】
前記一時メモリに記憶された音響特徴量列は、前記生成された1以上の時点の代替音響特徴量を用いて、FIFO的ないし準FIFO的に更新される、請求項8記載の音生成方法。
【請求項12】
前記制御値はピッチ分散であり、前記音響特徴量はピッチである、請求項1~3のいずれか一項に記載の音生成方法。
【請求項13】
前記制御値は振幅であり、前記音響特徴量は周波数スペクトルである、請求項1~3のいずれか一項に記載の音生成方法。
【請求項14】
音の特性を示す制御値を、時間軸上の複数の各時点で受け付ける制御値受付部と、
時間軸上の所望の時点において、強制指示を受け付ける強制指示受付部と、
訓練済モデルを用いて、各時点の前記制御値と、一時メモリに記憶された音響特徴量列とを処理して、その時点の音響特徴量を生成する生成部と、
その時点に前記強制指示が受け付けられていなければ、生成された音響特徴量を用いて前記一時メモリに記憶された音響特徴量列を更新し、その時点に前記強制指示が受け付けられていれば、その時点の前記制御値に従う、直近の1以上の時点の代替音響特徴量を生成し、生成された代替音響特徴量を用いて前記一時メモリに記憶された音響特徴量列を更新する更新部とを備える、音生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音を生成することが可能な音生成方法および音生成装置に関する。
【背景技術】
【0002】
例えば、特定の歌手の歌い方で歌唱を行う音源として、AI(人工知能)歌手が知られている。AI歌手は、特定の歌手による歌唱の特徴を学習することにより、当該歌手を模擬して任意の音信号を生成できる。ここで、AI歌手は、学習した歌手による歌唱の特徴だけでなく、使用者による歌い方の指示も反映して音信号を生成することが好ましい。
【文献】Jesse Engel, Lamtharn Hantrakul, Chenjie Gu and Adam Roberts, "DDSP: Differentiable Digital Signal Processing", arXiv:2001.04643v1 [cs.LG] 14 Jan 2020
【発明の概要】
【発明が解決しようとする課題】
【0003】
非特許文献1には、使用者の入力音に基づいて音信号を生成するニューラル生成モデルが記載されている。この生成モデルでは、音信号の生成中に、使用者は、生成モデルにピッチまたは音量等の制御値を指示できる。生成モデルとしてAR(自己回帰)タイプの生成モデルを用いる場合、ある時点で、使用者がその生成モデルにピッチまたは音量等を指示しても、その時点で生成している音信号によっては、その音量に従った音信号が生成されるまでに遅延が発生する。ARタイプの生成モデルを用いる場合、制御値への追従遅れのため、使用者の意図に従った音信号の生成が難しい。
【0004】
本発明の目的は、ARタイプの生成モデルを用いて、使用者の意図に従った音信号を生成可能な音生成方法および音生成装置を提供することである。
【課題を解決するための手段】
【0005】
本発明の一局面に従う音生成方法は、音の特性を示す制御値を、時間軸上の複数の各時点で受け付け、時間軸上の所望の時点において、強制指示を受け付け、訓練済モデルを用いて、各時点の制御値と、一時メモリに記憶された音響特徴量列とを処理して、その時点の音響特徴量を生成し、その時点に強制指示が受け付けられていなければ、生成された音響特徴量を用いて一時メモリに記憶された音響特徴量列を更新し、その時点に強制指示が受け付けられていれば、その時点の制御値に従う、直近の1以上の時点の代替音響特徴量を生成し、生成された代替音響特徴量を用いて一時メモリに記憶された音響特徴量列を更新し、コンピュータにより実現される。
【0006】
本発明の他の局面に従う音生成装置は、音の特性を示す制御値を、時間軸上の複数の各時点で受け付ける制御値受付部と、時間軸上の所望の時点において、強制指示を受け付ける強制指示受付部と、訓練済モデルを用いて、各時点の制御値と、一時メモリに記憶された音響特徴量列とを処理して、その時点の音響特徴量を生成する生成部と、その時点に強制指示が受け付けられていなければ、生成された音響特徴量を用いて一時メモリに記憶された音響特徴量列を更新し、その時点に強制指示が受け付けられていれば、その時点の制御値に従う、直近の1以上の時点の代替音響特徴量を生成し、生成された代替音響特徴量を用いて一時メモリに記憶された音響特徴量列を更新する更新部とを備える。
【発明の効果】
【0007】
本発明によれば、ARタイプの生成モデルを用いて、使用者の意図に従った音信号を生成できる。
【図面の簡単な説明】
【0008】
図1図1は本発明の一実施形態に係る音生成装置を含む処理システムの構成を示すブロック図である。
図2図2は音響特徴量の生成器としての訓練済モデルの構成を示すブロック図である。
図3図3は音生成装置の構成を示すブロック図である。
図4図4は元の音響特徴量と、その音響特徴量から生成された代替音響特徴量との間の特徴量の改変特性の図である。
図5図5は訓練装置の構成を示すブロック図である。
図6図6図3の音生成装置による音生成処理の一例を示すフローチャートである。
図7図7図3の音生成装置による音生成処理の一例を示すフローチャートである。
図8図8図5の訓練装置による訓練処理の一例を示すフローチャートである。
図9図9は第1変形例における代替音響特徴量の生成を説明するための図である。
図10図10は第2変形例における代替音響特徴量の生成を説明するための図である。
【発明を実施するための形態】
【0009】
(1)処理システムの構成
以下、本発明の実施形態に係る音生成方法および音生成装置について図面を用いて詳細に説明する。図1は、本発明の一実施形態に係る音生成装置を含む処理システムの構成を示すブロック図である。図1に示すように、処理システム100は、RAM(ランダムアクセスメモリ)110、ROM(リードオンリメモリ)120、CPU(中央演算処理装置)130、記憶部140、操作部150および表示部160を備える。
【0010】
処理システム100は、例えばPC、タブレット端末またはスマートフォン等のコンピュータにより実現される。あるいは、処理システム100は、イーサネット等の通信路で接続された複数のコンピュータの共同動作で実現されてもよい。RAM110、ROM120、CPU130、記憶部140、操作部150および表示部160は、バス170に接続される。RAM110、ROM120およびCPU130により音生成装置10および訓練装置20が構成される。本実施形態では、音生成装置10と訓練装置20とは共通の処理システム100により構成されるが、別個の処理システムにより構成されてもよい。
【0011】
RAM110は、例えば揮発性メモリからなり、CPU130の作業領域として用いられる。ROM120は、例えば不揮発性メモリからなり、音生成プログラムおよび訓練プログラムを記憶する。CPU130は、ROM120に記憶された音生成プログラムをRAM110上で実行することにより音生成処理を行う。また、CPU130は、ROM120に記憶された訓練プログラムをRAM110上で実行することにより訓練処理を行う。音生成処理および訓練処理の詳細については後述する。
【0012】
音生成プログラムまたは訓練プログラムは、ROM120ではなく記憶部140に記憶されてもよい。あるいは、音生成プログラムまたは訓練プログラムは、コンピュータが読み取り可能な記憶媒体に記憶された形態で提供され、ROM120または記憶部140にインストールされてもよい。あるいは、処理システム100がインターネット等のネットワークに接続されている場合には、ネットワーク上のサーバ(クラウドサーバを含む。)から配信された音生成プログラムがROM120または記憶部140にインストールされてもよい。
【0013】
記憶部140は、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含む。記憶部140には、生成モデルm、訓練済モデルM、複数の楽譜データD1、複数の参照楽譜データD2および複数の参照データD3等のデータが記憶される。生成モデルmは、未訓練の生成モデルか、参照データD3以外のデータを用いて予備訓練された生成モデルである。各楽譜データD1は、1の曲を構成する、時間軸上に配置された複数の音符の時系列(つまり楽譜)を示す。
【0014】
(データとしての)訓練済モデルMは、音の特性を示す制御値を含む入力データに応じて、対応する音響特徴量列を生成する生成モデルのアルゴリズムを示すアルゴリズムデータと、その生成モデルによる音響特徴量列の生成で用いられる変数(訓練済変数)とで構成される。そのアルゴリズムは、AR(自己回帰)タイプであって、直近の音響特徴量列を一時的に記憶する一時メモリと、入力データと直近の音響特徴量列とから現在の音響特徴量列を推定するDNN(深層ニューラルネットワーク)とを含む。以下では、説明をシンプルにするため、その訓練済変数を適用した(生成器としての)その生成モデルも、「訓練済モデルM」と呼ぶ。
【0015】
訓練済モデルMは、入力データとして、楽譜データD1から生成された楽譜特徴量の時系列を受け付けるとともに、その時系列の各時点において、音の特性を示す制御値を受け付け、各時点に受け付けた入力データと一時メモリに一時的に記憶された音響特徴量列とを処理して、入力データに対応した、その時点の音響特徴量を生成する。なお、時間軸上の複数の各時点は、波形の短時間フレーム分析で用いる複数の各時間フレームに相当し、相前後する2時点の時間差は、時間領域における波形のサンプルの周期よりは長く、一般に数ミリ秒から数百ミリ秒である。ここでは、時間フレームの間隔が5ミリ秒であるとする。
【0016】
訓練済モデルMに入力される制御値は、使用者によりリアルタイムに指示されるピッチ、音色または振幅等に関する音響特徴を示す特徴量である。訓練済モデルMが生成する音響特徴量列は、音信号のピッチ、振幅、周波数スペクトル(振幅)および周波数スペクトル包絡等のうちいずれかの音響特徴を示す特徴量の時系列である。あるいは、その音響特徴量列は、音信号に含まれる非調和成分のスペクトル包絡の時系列でもよい。
【0017】
本例では、記憶部140に2つの訓練済モデルMが記憶される。以下、2つの訓練済モデルMを区別する場合は、一方の訓練済モデルMを訓練済モデルMaと呼び、他方の訓練済モデルMを訓練済モデルMbと呼ぶ。訓練済モデルMaが生成する音響特徴量列は、ピッチの時系列であり、使用者が入力する制御値は、ピッチの分散および振幅である。訓練済モデルMbが生成する音響特徴量列は、周波数スペクトルの時系列であり、使用者が入力する制御値は、振幅である。
【0018】
訓練済モデルMは、ピッチ列または周波数スペクトル列以外の音響特徴量列(例えば、振幅または周波数スペクトルの傾斜等)を生成してもよいし、使用者が入力する制御値は、ピッチの分散または振幅以外の音響特徴量でもよい。
【0019】
音生成装置10は、演奏される曲の時間軸上の複数の時点の各々(時間フレーム)で、制御値を受け付けるとともに、それら複数の時点のうちの特定の時点(所望の時点)で、訓練済モデルMを用いて生成される音響特徴量を、その時点の制御値に相対的に強く従わせる旨を指示する強制指示を受け付ける。その時点に強制指示が受け付けられていなければ、音生成装置10は、生成された音響特徴量を用いて一時メモリの音響特徴量列を更新する。一方、その時点に強制指示が受け付けられていれば、音生成装置10は、その時点の制御値に従う1以上の代替音響特徴量を生成し、生成された代替音響特徴量を用いて一時メモリに記憶された音響特徴量列を更新する。
【0020】
各参照楽譜データD2は、1の曲を構成する、時間軸上に配置された複数の音符の時系列(楽譜)を示す。訓練済モデルMに入力される楽譜特徴量列は、各参照楽譜データD2から生成された、その曲の時間軸上の各時点における音符の特徴を示す特徴量の時系列である。各参照データD3は、その音符の時系列を演奏した演奏音波形のサンプルの時系列(つまり波形データ)である。複数の参照楽譜データD2と複数の参照データD3とはそれぞれ対応する。参照楽譜データD2および対応する参照データD3は、訓練装置20による訓練済モデルMの構築に用いられる。訓練済モデルMは、機械学習により、各時点の参照楽譜特徴量、その時点の参照制御値、およびその時点の直前の参照音響特徴量列と、その時点の参照音響特徴量との入出力関係を学習することにより構築される。訓練段階で用いられる参照楽譜データD2、参照データD3、およびその派生データ(例えば音量またはピッチ分散)等は、既知データ(data seen by the Model)と呼ばれ、訓練段階で用いられていない未知データ(data unseen by the Model)と区別される。訓練用の参照音量または参照ピッチ分散等の既知の制御値は、参照データD3から生成される派生データであり、未知の制御値は、訓練に用いていない音量またはピッチ分散等の制御値を意味する。
【0021】
具体的には、各時点で、波形データである各参照データD3から、その波形のピッチ列が参照ピッチ列として抽出され、その波形の周波数スペクトルが参照周波数スペクトル列として抽出される。参照ピッチ列または参照周波数スペクトル列は、参照音響特徴量列の例である。また、各時点で、参照ピッチ列からピッチの分散が参照ピッチ分散として抽出され、参照周波数スペクトル列から振幅が参照振幅として抽出される。参照ピッチ分散または参照振幅は、参照制御値の例である。
【0022】
訓練済モデルMaは、時間軸上の各時点の参照楽譜特徴量、その時点の参照ピッチ分散およびその時点の直前の参照ピッチと、その時点の参照ピッチとの入出力関係を、機械学習により生成モデルmが習得することにより構築される。訓練済モデルMbは、時間軸上の各時点の参照楽譜特徴量、その時点の参照振幅およびその時点の直前の参照周波数スペクトルと、その時点の参照周波数スペクトルとの入出力関係を、機械学習により生成モデルmが習得することにより構築される。
【0023】
生成モデルm、訓練済モデルM、楽譜データD1、参照楽譜データD2および参照データD3等の一部または全部は、記憶部140に記憶される代わりに、コンピュータが読み取り可能な記憶媒体に記憶されていてもよい。あるいは、処理システム100がネットワークに接続されている場合には、生成モデルm、訓練済モデルM、楽譜データD1、参照楽譜データD2および参照データD3等の一部または全部は、ネットワーク上のサーバに記憶されていてもよい。
【0024】
操作部150は、マウス等のポインティングデバイスまたはキーボードを含み、制御値の指示または強制指示を行うために使用者により操作される。表示部160は、例えば液晶ディスプレイを含み、使用者から制御値の指示または強制指示を受け付けるための所定のGUI(Graphical User Interface)等を表示する。操作部150および表示部160は、タッチパネルディスプレイにより構成されてもよい。
【0025】
(2)訓練済モデル
図2は、音響特徴量の生成器としての訓練済モデルMの構成を示すブロック図である。図2に示すように、各訓練済モデルMa,Mbは、一時メモリ1、DNNの演算を行う推論部2、および強制処理部3,4を含む。一時メモリ1は、DNNのアルゴリズムの一部とみなしてもよい。後述する音生成装置10の生成部13は、この訓練済モデルMの処理を含む生成処理を実行する。本実施形態では、各訓練済モデルMa,Mbが強制処理部4を含むが、各強制処理部4は省略してもよい。その場合、時間軸上の各時点に、推論部2が生成した音響特徴量が、訓練済モデルMの出力データとして出力される。
【0026】
訓練済モデルMaと訓練済モデルMbとは2つの独立したモデルであるが、基本的に同一の構成を有しているので、説明の簡略化のため類似する要素には同じ符号を与えた。訓練済モデルMbの各要素の説明は、基本的に訓練済モデルMaに準ずる。まず、訓練済モデルMaの構成について説明する。一時メモリ1は、例えばリングバッファメモリとして動作し、直近の所定数の時点に生成された音響特徴量列(ピッチ列)を順次記憶する。なお、一時メモリ1に記憶された所定数の音響特徴量のうちの一部は、強制指示に応じて、対応する代替音響特徴量に置き換えられている。訓練済モデルMaにはピッチに関する第1強制指示が、訓練済モデルMbには振幅に関する第2強制指示が、それぞれ独立に与えられる。
【0027】
推論部2には、一時メモリ1に記憶された音響特徴量列s1が与えられる。また、推論部2には、音生成装置10から、楽譜特徴量列s2と、制御値列(ピッチ分散列および振幅列)s3と、振幅列s4とが、入力データとして与えられる。推論部2は、時間軸上の各時点の入力データ(楽譜特徴量、制御値としてのピッチ分散および振幅)と、その時点の直前の音響特徴量列とを処理することにより、その時点の音響特徴量(ピッチ)を生成する。これにより、生成された音響特徴量列(ピッチ列)s5が推論部2から出力される。
【0028】
強制処理部3には、時間軸上の複数の時点のうちのある時点(所望の時点)で音生成装置10から第1強制指示が与えられる。また、強制処理部3には、時間軸上の複数の時点の各々で音生成装置10から制御値としてのピッチ分散列s3と振幅列s4とが与えられる。その時点に第1強制指示が与えられなければ、強制処理部3は、推論部2によりその時点で生成された音響特徴量(ピッチ)を用いて一時メモリ1に記憶された音響特徴量列s1を更新する。詳細には、一時メモリ1の音響特徴量列s1を1つ過去にシフトして一番古い音響特徴量を捨て、直近の1の音響特徴量を、生成された音響特徴量にする。つまり、一時メモリ1の音響特徴量列がFIFO(First In First Out)的に更新される。なお、直近の1の音響特徴量は、その時点(現時点)の音響特徴量と同義である。
【0029】
一方、その時点に第1強制指示が与えられていれば、強制処理部3は、その時点の制御値(ピッチ分散)に従う直近の1以上の時点(1+αの時点)の代替音響特徴量(ピッチ)を生成し、生成された代替音響特徴量を用いて一時メモリ1に記憶された音響特徴量列s1のうちの直近の1以上の時点の音響特徴量を更新する。詳細には、一時メモリ1の音響特徴量列s1を1つ過去にシフトして一番古い音響特徴量を捨て、直近の1以上の音響特徴量を生成された1以上の代替音響特徴量で置換する。訓練済モデルMaの出力データの制御値への追従は、生成される代替音響特徴量が直近の1時点のみでも改善されるが、直近の1+α時点の代替音響特徴量を生成して更新すれば、さらに改善される。なお、一時メモリ1の全ての時点の代替音響特徴量を生成してもよい。一時メモリ1の音響特徴量列の、直近の1時点のみ代替音響特徴量による更新は、上述した音響特徴量列による更新と同じ動作なのでFIFO的と言える。直近の1+α時点の代替音響特徴量による更新は、α分の更新を除いて、上述した音響特徴量列による更新とほぼ同じ動作なので、準FIFO的な更新と呼ぶ。
【0030】
強制処理部4には、時間軸上のある時点(所望の時点)で音生成装置10から第1強制指示が与えられる。また、強制処理部4には、時間軸上の各時点で推論部2から音響特徴量列s5が与えられる。強制処理部4は、その時点に第1強制指示が与えられなければ、推論部2により生成された音響特徴量(ピッチ)を訓練済モデルMaのその時点の出力データとして出力する。
【0031】
一方、強制処理部4は、その時点に第1強制指示が与えられていれば、その時点の制御値(ピッチ分散)に従う1の代替音響特徴量を生成し、生成された代替音響特徴量(ピッチ)を訓練済モデルMaのその時点の出力データとして出力する。該1の代替音響特徴量として、前記1以上の代替音響特徴量のうちの、直近の特徴量を用いてもよい。つまり、強制処理部4は、代替特徴量を生成しなくてもよい。このようにして、第1強制指示されていない時点では、推論部2により生成された音響特徴量が訓練済モデルMaから出力され、第1強制指示された時点では、代替音響特徴が訓練済モデルMaから出力され、出力された音響特徴量列(ピッチ列)s5は訓練済モデルMbに与えられる。
【0032】
次に、訓練済モデルMbについて、訓練済モデルMaと異なる点を中心に説明する。訓練済モデルMbにおいては、一時メモリ1は、直前の所定数の時点の音響特徴量列(周波数スペクトル列)s1を順次記憶する。つまり、一時メモリ1には、所定数(数フレーム)分の音響特徴量が記憶される。
【0033】
推論部2には、一時メモリ1に記憶された音響特徴量列s1が与えられる。また、推論部2には、音生成装置10からの、楽譜特徴量列s2と、制御値列(振幅列)s4と、訓練済モデルMaからのピッチ列s5とが、入力データとして与えられる。推論部2は、時間軸上の各時点の入力データ(楽譜特徴量、ピッチ、制御値としての振幅)と、その時点の直前の音響特徴量とを処理することにより、その時点の音響特徴量(周波数スペクトル)を生成する。これにより、生成された音響特徴量列(周波数スペクトル列)s5が出力データとして出力される。
【0034】
強制処理部3には、時間軸上のある時点(所望の時点)で音生成装置10から第2強制指示が与えられる。また、強制処理部3には、時間軸上の各時点で音生成装置10から制御値列(振幅列)s4が与えられる。その時点に第2強制指示が与えられなければ、強制処理部3は、推論部2によりその時点で生成された音響特徴量(周波数スペクトル)を用いて一時メモリ1に記憶された音響特徴量列s1をFIFO的に更新する。一方、その時点に第2強制指示が与えられていれば、強制処理部3は、その時点の制御値(振幅)に従う直近の1以上の代替音響特徴量(周波数スペクトル)を生成し、生成された代替音響特徴量を用いて一時メモリ1に記憶された音響特徴量列s1のうちの直近の1以上の音響特徴量をFIFO的ないし準FIFO的に更新する。
【0035】
強制処理部4には、時間軸上のある時点(所望の時点)で音生成装置10から第2強制指示が与えられる。また、強制処理部4には、時間軸上の各時点で推論部2から音響特徴量列(周波数スペクトル列)s5が与えられる。強制処理部4は、その時点に第2強制指示が与えられなければ、推論部2により生成された音響特徴量(周波数スペクトル)を訓練済モデルMbのその時点の出力データとして出力する。一方、強制処理部4は、その時点に第2強制指示が与えられていれば、その時点の制御値(振幅)に従う直近の1つの代替音響特徴量を生成(または使用)し、その代替音響特徴量(周波数スペクトル)を訓練済モデルMbのその時点の出力データとして出力する。訓練済モデルMbから出力される音響特徴量列(周波数スペクトル列)s5は、音生成装置10に与えられる。
【0036】
(3)音生成装置
図3は、音生成装置10の構成を示すブロック図である。図3に示すように、音生成装置10は、機能部として制御値受付部11、強制指示受付部12、生成部13、更新部14および合成部15を含む。音生成装置10の機能部は、図1のCPU130が音生成プログラムを実行することにより実現される。音生成装置10の機能部の少なくとも一部は、専用の電子回路等のハードウエアにより実現されてもよい。
【0037】
表示部160には、制御値の指示または強制指示を受け付けるためのGUIが表示される。使用者は、操作部150を用いてGUIを操作することにより、ピッチ分散および振幅の各々を制御値として、1曲の時間軸上の複数の時点で指示するとともに、時間軸上の所望の時点で強制指示を与える。制御値受付部11は、GUIを通して指示されたピッチ分散および振幅を、時間軸上の各時点で操作部150から受け付け、ピッチ分散列s3および振幅列s4を生成部13に与える。
【0038】
強制指示受付部12は、GUIを通して指示された強制指示を、時間軸上の所望の時点で操作部150から受け付け、受け付けた強制指示を生成部13に与える。強制指示は、操作部150からではなく、自動生成されてもよい。例えば、楽譜データD1に強制指示を与えるべき時点を示す強制指示情報が含まれる場合には、時間軸上のその時点で生成部13が強制指示を自動生成し、強制指示受付部12は、その自動生成された強制指示を受け付けてもよい。あるいは、強制指示情報が含まれない楽譜データD1を生成部13が分析し、その曲の適切な時点(ピアノとフォルテとの変わり目等)を検出して、検出された時点で強制指示を自動生成してもよい。
【0039】
使用者は、操作部150を操作して、記憶部140等に記憶された複数の楽譜データD1の中から、音生成に用いる楽譜データD1を指定する。生成部13は、記憶部140等に記憶された訓練済モデルMa,Mbと、使用者により指定された楽譜データD1とを取得する。また、生成部13は、各時点に、取得した楽譜データD1から楽譜特徴量を生成する。
【0040】
生成部13は、楽譜特徴量列s2と、制御値受付部11からのピッチ分散列s3および振幅列s4とを、入力データとして訓練済モデルMaに供給する。時間軸上の各時点において、生成部13は、訓練済モデルMaを用いて、その時点の入力データ(楽譜特徴量、制御値としてのピッチの分散および振幅)と、訓練済モデルMaの一時メモリ1に記憶されたその時点の直前に生成されたピッチ列とを処理し、その時点のピッチを生成して出力する。
【0041】
また、生成部13は、楽譜特徴量列s2と、訓練済モデルMaから出力されたピッチ列と、制御値受付部11からの振幅列s4とを、入力データとして訓練済モデルMbに供給する。時間軸上の各時点において、生成部13は、訓練済モデルMbを用いて、その時点の入力データ(楽譜特徴量、ピッチ、および制御値としての振幅)と、訓練済モデルMbの一時メモリ1に記憶されたその時点の直前に生成された周波数スペクトル列とを処理し、その時点の周波数スペクトルを生成して出力する。
【0042】
更新部14は、その時点に強制指示受付部12に強制指示が受け付けられていなければ、訓練済モデルMa,Mbの各々の強制処理部3を介して、推論部2により生成された音響特徴量を用いて一時メモリ1に記憶された音響特徴量列s1をFIFO的に更新する。一方、更新部14は、その時点に強制指示が受け付けられていれば、訓練済モデルMa,Mbの各々の強制処理部3を介して、その時点の制御値に従う直近の1以上の時点の代替音響特徴量を生成し、生成された代替音響特徴量を用いて一時メモリ1に記憶された音響特徴量列s1をFIFO的ないし準FIFO的に更新する。
【0043】
また、更新部14は、その時点に強制指示受付部12に強制指示が受け付けられていなければ、訓練済モデルMa,Mbの各々の強制処理部4を介して、推論部2により生成された音響特徴量を音響特徴量列s5の現時点の音響特徴量として出力する。一方、更新部14は、その時点に強制指示が受け付けられていれば、訓練済モデルMa,Mbの各々の強制処理部4を介して、その時点の制御値に従う直近の代替音響特徴量を生成(または使用)し、その代替音響特徴量を音響特徴量列s5の現時点の音響特徴量として出力する。
【0044】
各時点の1以上の代替音響特徴量は、例えば、その時点の制御値と、その時点に生成された音響特徴量とに基づいて生成される。本例では、各時点の音響特徴量を、その時点の目標値と制御値とに応じた許容範囲に収まるように改変することにより、その時点の代替音響特徴量が生成される。目標値Tは、音響特徴量が制御値に追従した場合の典型値である。制御値に応じた許容範囲は、強制指示に含まれるFloor値およびCeil値により規定される。具体的には、制御値に応じた許容範囲は、制御値の目標値TよりFloor値だけ小さい下限値Tf(=T-Floor値)と、制御値の目標値TよりCeil値だけ大きい上限値Tc(=T+Ceil値)とにより規定される。
【0045】
図4は、元の音響特徴量と、その音響特徴量から生成された代替音響特徴量との間の特徴量の改変特性の図である。この特徴量は、制御値と同種である。図4では、横軸は、訓練済モデルMの推論部2により生成された音響特徴量の特徴量(音量またはピッチ分散等)vを示し、縦軸は、改変後の音響特徴量(代替音響特徴量)の特徴量F(v)を示す。
【0046】
図4の範囲R1に示すように、ある音響特徴量の特徴量vが下限値Tfより小さい場合には、特徴量F(v)が下限値Tfになるように、その音響特徴量を改変することで、代替音響特徴量が生成される。図4の範囲R2に示すように、特徴量vが下限値Tf以上でかつ上限値Tc以下である場合には、改変されていない音響特徴量が代替音響特徴量になるので、特徴量F(v)は特徴量vと同じである。図4の範囲R3に示すように、特徴量vが上限値Tcより大きい場合には、特徴量F(v)が上限値Tcになるように、その音響特徴量が改変することで、代替音響特徴量が生成される。例えば、特徴量vがピッチ分散であり上限値Tcより大きい(または小さい)場合、生成されるピッチ(音響特徴量)の平均を保ったまま、その分散が小さく(または大きく)なるよう、係数(Tc/v)を用いてスケーリングして、代替音響特徴量を生成する。また、特徴量vが音量であり上限値Tcより大きい(または小さい)場合は、その音量が小さく(または大きく)なるよう周波数スペクトル(音響特徴量)全体を係数(Tc/v)でスケーリングして、代替特徴量を生成する。
【0047】
複数時点の代替音響特徴量を生成する場合、各時点に同じFloor値とCeil値を適用してもよい。あるいは、代替音響特徴量の時点が古いほど、特徴量の改変度を小さくしてもよい。具体的には、図4のFloor値とCeil値を現時点の値として、それより前のFloor値およびCeil値を、古い時点ほど大きな値にする。代替音響特徴量への置換を複数点にすれば、生成される音響特徴量の制御値への追従がより速くなる。
【0048】
合成部15は、例えばボコーダとして機能し、生成部13において訓練済モデルMbの強制処理部4により生成された周波数領域の音響特徴量列(周波数スペクトル列)s5から時間領域の波形処理である音信号を生成する。生成した音信号を、合成部15に接続された、スピーカ等を含むサウンドシステムに供給することにより、音信号に基づく音が出力される。本例では、音生成装置10は合成部15を含むが、実施形態はこれに限定されない。音生成装置10は、合成部15を含まなくてもよい。
【0049】
(4)訓練装置
図5は、訓練装置20の構成を示すブロック図である。図5に示すように、訓練装置20は、抽出部21および構築部22を含む。訓練装置20の機能部は、図1のCPU130が訓練プログラムを実行することにより実現される。訓練装置20の機能部の少なくとも一部が専用の電子回路等のハードウエアにより実現されてもよい。
【0050】
抽出部21は、記憶部140等に記憶された複数の参照データD3の各々を分析することにより、参照ピッチ列および参照周波数スペクトル列を参照音響特徴量列として抽出する。また、抽出部21は、抽出した参照ピッチ列および参照周波数スペクトル列を処理することにより、参照ピッチの分散の時系列である参照ピッチ分散列、および参照周波数スペクトルに対応する波形の振幅の時系列である参照振幅列を、それぞれ参照制御値列として抽出する。
【0051】
構築部22は、記憶部140等から訓練すべき生成モデルmおよび参照楽譜データD2を取得する。また、構築部22は、参照楽譜データD2から参照楽譜特徴列を生成し、機械学習の手法により、参照楽譜特徴量列、参照ピッチ分散列、および参照振幅列を入力データとし、参照ピッチ列を出力データの正解値として用いて、生成モデルmを訓練する。訓練において、一時メモリ1(図2)には、生成モデルmにより生成された参照ピッチ列のうちの、各時点の直前の参照ピッチ列が記憶される。
【0052】
構築部22は、生成モデルmを用いて、時間軸上の各時点の入力データ(参照楽譜特徴量、制御値としての参照ピッチ分散および参照音量)と、一時メモリ1に記憶されたその時点の直前の参照ピッチ列とを処理して、その時点のピッチを生成する。そして、構築部22は、生成されたピッチ列と参照ピッチ列(正解)との誤差が小さくなるように、生成モデルmの変数を調整する。この訓練をその誤差が十分小さくなるまで繰り返すことにより、時間軸上の各時点の入力データ(参照楽譜特徴量、参照ピッチ分散および参照振幅)と、出力データ(参照ピッチ)との間の入出力関係を習得した訓練済モデルMaが構築される。
【0053】
同様に、構築部22は、機械学習の手法により、参照楽譜特徴量列、参照ピッチ列、および参照振幅列を入力データとし、参照周波数スペクトル列を出力データの正解値として用いて、生成モデルmを訓練する。訓練において、一時メモリ1には、生成モデルmにより生成された参照周波数スペクトル列のうちの、各時点の直前の参照周波数スペクトル列が記憶される。
【0054】
構築部22は、生成モデルmを用いて、時間軸上の各時点の入力データ(参照楽譜特徴量、参照ピッチおよび制御値としての参照振幅)と、一時メモリ1に記憶された各時点の直前の参照周波数スペクトル列とを処理して、その時点の周波数スペクトルを生成する。そして、構築部22は、生成された周波数スペクトル列と参照周波数スペクトル列(正解)との誤差が小さくなるように、生成モデルmの変数を調整する。この訓練をその誤差が十分小さくなるまで繰り返すことにより、時間軸上の各時点の入力データ(参照楽譜特徴量、参照ピッチ、および参照振幅)と、出力データ(参照周波数スペクトル列)との間の入出力関係を習得した訓練済モデルMbが構築される。構築部22は、構築された訓練済モデルMa,Mbを記憶部140等に保存する。
【0055】
(5)音生成処理
図6および図7は、図3の音生成装置10による音生成処理の一例を示すフローチャートである。図6および図7の音生成処理は、図1のCPU130が記憶部140等に記憶された音生成プログラムを実行することにより行われる。まず、CPU130は、使用者によりいずれかの曲の楽譜データD1が選択されたか否かを判定する(ステップS1)。楽譜データD1が選択されない場合、CPU130は、楽譜データD1が選択されるまで待機する。
【0056】
ある曲の楽譜データD1が選択された場合、CPU130は、現時点tをその楽譜データの曲の先頭(最初の時間フレーム)に設定するとともに、楽譜データD1から現時点tの楽譜特徴量を生成する(ステップS2)。また、CPU130は、その時点で使用者が入力したピッチの分散および振幅を現時点tの制御値として受け付ける(ステップS3)。さらに、CPU130は、現時点tで使用者からの第1強制指示ないし第2強制指示が受け付けられたか否かを確定する(ステップS4)。
【0057】
また、CPU130は、訓練済モデルMaの一時メモリ1から現時点tの直前の複数時点tに生成されたピッチ列を取得する(ステップS5)。さらに、CPU130は、訓練済モデルMbの一時メモリ1から現時点tの直前に生成された周波数スペクトル列を取得する(ステップS6)。ステップS2~S6は、いずれが先に実行されてもよく、同時に実行されてもよい。
【0058】
次に、CPU130は、訓練済モデルMaの推論部2を用いて、入力データ(ステップS1で生成された楽譜特徴量、ステップS3で受け付けられたピッチの分散および振幅)と、ステップS5で取得された直前のピッチとを処理して、現時点tのピッチを生成する(ステップS7)。続いて、CPU130は、ステップS4で第1強制指示を受け付けていたか否かを判定する(ステップS8)。第1強制指示が受け付けられていなければ、CPU130は、ステップS7で生成されたピッチを用いて、訓練済モデルMaの一時メモリ1に記憶されたピッチ列をFIFO的に更新する(ステップS9)。また、CPU130は、そのピッチを出力データとして出力し(ステップS10)、ステップS14に進む。
【0059】
第1強制指示が受け付けられていれば、CPU130は、ステップS3で受け付けられたピッチの分散と、ステップS7で生成されたピッチとに基づいて、そのピッチの分散に従う、直近の1以上の時点の代替音響特徴量(代替ピッチ)を生成する(ステップS11)。その後、CPU130は、生成された1以上の時点の代替音響特徴量を用いて、訓練済モデルMaの一時メモリ1に記憶されたピッチをFIFO的ないし準FIFO的に更新する(ステップS12)。また、CPU130は、生成された現時点の代替音響特徴量を出力データとして出力し(ステップS13)、ステップS14に進む。ステップS12,S13は、いずれが先に実行されてもよく、同時に実行されてもよい。
【0060】
ステップS14で、CPU130は、訓練済モデルMbを用いて、入力データ(ステップS1で取得された楽譜特徴量、ステップS3で受け付けられた振幅、およびステップS7で生成されたピッチ)と、ステップS6で取得された直前の周波数スペクトルとから、現時点tの周波数スペクトルを生成する(ステップS14)。続いて、CPU130は、ステップS4で第2強制指示を受け付けていたか否かを判定する(ステップS15)。第2強制指示が受け付けられていなければ、CPU130は、ステップS14で生成された周波数スペクトルを用いて、訓練済モデルMbの一時メモリ1に記憶された周波数スペクトル列をFIFO的に更新する(ステップS16)。また、CPU130は、その周波数スペクトルを出力データとして出力し(ステップS17)、ステップS21に進む。
【0061】
第2強制指示が受け付けられていれば、CPU130は、ステップS3で受け付けられ振幅と、ステップS14で生成された周波数スペクトルとに基づいて、その振幅に従う、直近の1以上の時点の代替音響特徴量(代替周波数スペクトル)を生成する(ステップS18)。その後、CPU130は、生成された1以上の時点の代替音響特徴量を用いて、訓練済モデルMbの一時メモリ1に記憶された周波数スペクトル列をFIFO的ないし準FIFO的に更新する(ステップS19)。また、CPU130は、生成された現時点の代替音響特徴量を出力データとして出力し(ステップS20)、ステップS21に進む。ステップS19,S20は、いずれが先に実行されてもよく、同時に実行されてもよい。
【0062】
ステップS21で、CPU130は、公知のいずれかのボコーダ技術を用いて、出力データとして出力された周波数スペクトルから現時点の音信号を生成する(ステップS21)。これにより、現時点(現在の時間フレーム)の音信号に基づく音がサウンドシステムから出力される。その後、CPU130は、曲の演奏が終了したか否か、すなわち楽譜データD1の演奏の現時点tが曲の終了時点(最後の時間フレーム)に達したか否かを判定する(ステップS22)。
【0063】
現時点tがまだ演奏終了時点でない場合、CPU130は、次の時点t(次の時間フレーム)まで待機して(ステップS23)、ステップS2に戻る。次の時点tまでの待機時間は、例えば5ミリ秒である。演奏が終了するまで、時点t(時間フレーム)ごとに、ステップS2~S22がCPU130により繰り返し実行される。ここで、各時点tに与えられる制御値をリアルタイムに音信号に反映する必要がなければ、ステップS23での待機は省略できる。例えば、制御値の時間変化が予め決められている(楽譜データD1の中に各時点tの制御値がプログラムされている)場合には、ステップS23を省略して、処理をステップS2に戻してよい。
【0064】
(6)訓練処理
図8は、図5の訓練装置20による訓練処理の一例を示すフローチャートである。図8の訓練処理は、図1のCPU130が記憶部140等に記憶された訓練プログラムを実行することにより行われる。まず、CPU130は、記憶部140等から訓練に用いる複数の参照データD3(複数曲の波形データ)を取得する(ステップS31)。次に、CPU130は、各参照データD3に対応する曲の参照楽譜データD2からその曲の参照楽譜特徴量列を生成して取得する(ステップS32)。
【0065】
続いて、CPU130は、各参照データD3から参照ピッチ列および参照周波数スペクトル列を抽出する(ステップS33)。その後、CPU130は、抽出された参照ピッチ列および参照周波数スペクトル列をそれぞれ処理することにより、参照ピッチ分散列および参照振幅列を抽出する(ステップS34)。
【0066】
次に、CPU130は、訓練すべき1つの生成モデルmを取得し、入力データ(ステップS32で取得された参照楽譜特徴量列、ステップS34で抽出された参照ピッチ分散列および参照振幅列)と、正解の出力データ(ステップS33で抽出された参照ピッチ列)とを用いて、その生成モデルmを訓練する。先述したように、生成モデルmにより生成されるピッチ列と参照ピッチ列との誤差が小さくなるよう、生成モデルmの変数が調整される。これにより、CPU130は、各時点の入力データ(参照楽譜特徴量、参照ピッチ分散、および参照振幅)と、その時点の正解の出力データ(参照ピッチ)との間の入出力関係を、生成モデルmに機械学習させる(ステップS35)。生成モデルmは、この訓練においては、一時メモリ1に記憶された直前の複数時点に生成されたピッチの代わりに、参照ピッチ列に含まれる直前の複数時点のピッチを推論部2で処理して、その時点のピッチを生成してもよい。
【0067】
続いて、CPU130は、その誤差が十分小さくなったか、すなわち、生成モデルmが入出力関係を習得したか否かを判定する(ステップS36)。その誤差がまだ大きく、機械学習が不十分と判定される場合、CPU130はステップS35に戻る。生成モデルmがその入出力関係を習得するまで、パラメータが変化されつつステップS35~S36が繰り返される。機械学習の繰り返し回数は、構築される一方の訓練済モデルMaが満たすべき品質条件(算出する誤差の種別、または判定に用いる閾値等)に応じて変化する。
【0068】
十分な機械学習が実行されたと判断された場合、その生成モデルmは、訓練により、各時点の入力データ(参照ピッチ分散および参照振幅を含む。)と、その時点の出力データの正解値(参照ピッチ)との間の入出力関係を習得しており、CPU130は、その入出力関係を習得した生成モデルmを、一方の訓練済モデルMaとして保存する(ステップS37)。このように、この訓練済モデルMaは、各時点のピッチを、未知のピッチ分散と、直前の複数の時点のピッチに基づいて推定するよう訓練されている。ここで、未知のピッチ分散は、前記訓練に用いていないピッチ分散を意味する。
【0069】
また、CPU130は、訓練すべきもう1つの生成モデルmを取得し、入力データ(ステップS32で取得された参照楽譜特徴量列、ステップS33で抽出された参照ピッチ列、およびステップS34で抽出された参照振幅列)と、正解の出力データ(参照周波数スペクトル列)とを用いて、その生成モデルmを訓練する。先述したように、生成モデルmにより生成される周波数スペクトル列と参照周波数スペクトル列との誤差が小さくなるよう、生成モデルmの変数が調整される。これにより、CPU130は、各時点の入力データ(参照楽譜特徴量、参照ピッチ、および参照振幅)と、その時点の正解の出力データ(参照周波数スペクトル)との間の入出力関係を、生成モデルmに機械学習させる(ステップS38)。生成モデルmは、この訓練においては、一時メモリ1に記憶された直前の複数時点に生成された周波数スペクトルの代わりに、参照周波数スペクトル列に含まれる直前の複数時点の周波数スペクトルを推論部2で処理して、その時点の周波数スペクトルを生成してもよい。
【0070】
続いて、CPU130は、その誤差が十分小さくなったか、すなわち、生成モデルmが入出力関係を習得したか否かを判定する(ステップS39)。その誤差がまだ大きく、機械学習が不十分と判定される場合、CPU130はステップS38に戻る。生成モデルmがその入出力関係を習得するまで、パラメータが変化されつつステップS38~S39が繰り返される。機械学習の繰り返し回数は、構築される他方の訓練済モデルMbが満たすべき品質条件(算出する誤差の種別、または判定に用いる閾値等)に応じて変化する。
【0071】
十分な機械学習が実行されたと判断された場合、その生成モデルmは、訓練により、各時点の入力データ(参照振幅を含む。)と、その時点の出力データの正解値(参照周波数スペクトル)との間の入出力関係を習得しており、CPU130は、その入出力関係を習得した生成モデルmを、他方の訓練済モデルMbとして保存し(ステップS40)、訓練処理を終了する。このように、この訓練済モデルMbは、各時点の周波数スペクトルを、未知の振幅と、直前の複数の時点の周波数スペクトルに基づいて推定するよう訓練されている。ここで、未知の振幅は、前記訓練に用いていない振幅を意味する。ステップS35~S37と、ステップS38~S40とは、いずれが先に実行されてもよいし、並列的に実行されてもよい。
【0072】
(7)変形例
本実施形態において、CPU130は、更新部14として、各時点の音響特徴量の特徴量をその時点の目標値と制御値とに応じた許容範囲に収まるように改変することにより各時点の代替音響特徴量を生成するが、その生成方法はこれに限定されない。例えば、CPU130は、各時点の音響特徴量の特徴量における、その時点の制御値に応じた(許容範囲に代わる)中立範囲からの超過量を、所定の割合で音響特徴量の改変に反映することにより各時点の代替音響特徴量を生成してもよい。この割合をRatio値と呼ぶ。
【0073】
図9は、第1変形例における代替音響特徴量の生成を説明するための図である。中立範囲の上限値Tcは(T+Ceil値)であり、下限値Tfは(T-Floor値)である。第1変形例では、図9の範囲R1に示すように、ある音響特徴量の特徴量vが下限値Tfより小さい場合には、その特徴量vが特徴量F(v)=v-(v-Tf)×Ratio値になるように音響特徴量が改変される。図9の範囲R2に示すように、特徴量vが下限値Tf以上でかつ上限値Tc以下である場合には、音響特徴量は改変されず、特徴量F(v)は特徴量vと同じになる。図9の範囲R3に示すように、特徴量vが上限値Tcより大きい場合には、F(v)=v-(v-Tc)×Ratio値になるように音響特徴量が改変される。複数時点の代替音響特徴量を生成する場合は、Floor値およびCeil値は時点に応じて変えずに、Ratio値を古い時点ほど小さな値にしてもよい。
【0074】
図9には、Ratio値が0、0.5および1であるときの改変後の音響特徴量の特徴量F(v)が、それぞれ太い一点鎖線、太い点線および太い実線により示される。Ratio値が0であるときの改変後の音響特徴量の特徴量F(v)は、図4の細い一点鎖線により示される特徴量vと等しく、強制がかかっていない。Ratio値が1であるときの改変後の音響特徴量の特徴量F(v)は、図4の太い実線により示される改変後の音響特徴量の特徴量F(v)と等しい。この構成によれば、一時メモリ1に記憶された音響特徴量列の音響特徴量が中立範囲を超えた場合に、超えた量をRatio値に応じた割合で代替音響特徴量の改変に反映できる。
【0075】
あるいは、CPU130は、各時点の音響特徴量を、その時点の制御値に応じた目標値TにRate値に応じた割合で近づくように改変することにより各時点の代替音響特徴量を生成してもよい。図10は、第2変形例における代替音響特徴量の生成を説明するための図である。第2変形例では、図10に示すように、特徴量vの全範囲において、特徴量F(v)=v-(v-T)×Rate値になるように音響特徴量が改変される。複数時点の代替音響特徴量を生成する場合は、Rate値を古い時点ほど小さな値にしてもよい。
【0076】
図10には、Rate値が0、0.5および1であるときの改変後の音響特徴量の特徴量F(v)が、それぞれ太い一点鎖線、太い点線および太い実線により示される。Rate値が0であるときの改変後の音響特徴量の特徴量F(v)は、図4の一点鎖線により示される特徴量vと等しく、強制がかかっていない。Rate値が1であるときの改変後の音響特徴量の特徴量F(v)は、制御値の目標値Tと等しく、最も強い強制がかかっている。
【0077】
(8)実施形態の効果
以上説明したように、本実施形態に係る音生成方法は、コンピュータにより実現される方法であって、音の特性を示す制御値を、時間軸上の複数の各時点で受け付け、時間軸上の所望の時点において、強制指示を受け付け、訓練済モデルを用いて、各時点の制御値と、一時メモリに記憶された音響特徴量列とを処理して、その時点の音響特徴量を生成し、その時点に強制指示が受け付けられていなければ、生成された音響特徴量を用いて一時メモリに記憶された音響特徴量列の音響特徴量を更新し、その時点に強制指示が受け付けられていれば、その時点の制御値に従う代替音響特徴量を生成し、生成された代替音響特徴量を用いて一時メモリに記憶された音響特徴量列の音響特徴量を更新する。
【0078】
この方法によれば、ある時点において、訓練済モデルを用いて生成している音響特徴量がその時点の制御値に応じた値から乖離していても、強制指示を与えることにより、その時点から大きく遅延することなく、制御値に比較的タイトに追随する音響特徴量が生成される。これにより、使用者の意図に従った音信号を生成できる。
【0079】
訓練済モデルは、機械学習により、各時点の音響特徴量を、直前の複数の時点の音響特徴量に基づいて推定するよう訓練済であってもよい。
【0080】
各時点の代替音響特徴量は、その時点の制御値と、その時点に生成された音響特徴量とに基づいて生成されてもよい。
【0081】
各時点の音響特徴量をその時点の制御値に応じた許容範囲に収まるように改変することにより各時点の代替音響特徴量が生成されてもよい。
【0082】
制御値に応じた許容範囲は、強制指示により規定されてもよい。
【0083】
各時点の音響特徴量におけるその時点の制御値に応じた中立範囲からの超過量を所定の割合で音響特徴量から減じることにより各時点の代替音響特徴量が生成されてもよい。
【0084】
各時点の音響特徴量をその時点の制御値に応じた目標値に近づくように改変することにより各時点の代替音響特徴量が生成されてもよい。
【0085】
(9)他の実施形態
上記実施形態では、訓練済モデルMa,Mbの両方を用いて各時点の音響特徴量を生成するが、訓練済モデルMa,Mbの一方だけを用いて各時点の音響特徴量を生成してもよい。この場合、音生成処理のステップS7~S13と、ステップS14~S20との一方が実行され、他方が実行されない。
【0086】
前者では、実行されたステップS7~S13で生成されたピッチ列が公知の音源に供給され、その音源はそのピッチ列に基づいて音信号を生成する。例えば、音素片接続型の歌唱合成器にそのピッチ列を供給して、そのピッチ列に応じた歌唱を生成させてもよい。或いは、波形メモリ音源やFM音源などにそのピッチ列を供給して、そのピッチ列に応じた楽器音を生成させてもよい。
【0087】
後者では、ステップS14~S20は、訓練済モデルMa以外の公知の方法で生成されたピッチ列を受け取って周波数スペクトル列を生成する。例えば、使用者が手書きしたピッチ列、楽器音またはユーザ歌唱から抽出されたピッチ列を受け取って、訓練済モデルMbを用いて、そのピッチ列に応じた周波数スペクトル列を生成してもよい。前者では、訓練済モデルMbは不要で、訓練処理のステップS38~S40は実行しなくてよい。同様に、後者では、訓練済モデルMaは不要で、ステップS35~S37は実行しなくてよい。
【0088】
また、上記実施形態では、参照楽譜データD2を用いた教師あり学習を実行するが、参照データD3から楽譜特徴量列を生成するエンコーダを用意して、参照楽譜データD2を用いずに、参照データD3による教師なしの機械学習を実行してもよい。そのエンコーダ処理は、訓練段階では、参照データD3を入力としてステップS32で実行され、利用段階では、楽器音またはユーザ歌唱を入力としてステップS2で実行される。
【0089】
上記実施形態は、楽器音の音信号を生成する音生成装置であったが、音生成装置はそれ以外の音信号を生成してもよい。例えば、音生成装置は、タイムスタンプ付きのテキストデータからスピーチの音信号を生成してもよい。その場合の訓練済モデルMは、例えば、(楽譜特徴量の代わりに)テキストデータから生成されたテキスト特徴量列と音量を示す制御値列とを入力データとして入力し、周波数スペクトル特徴量列を生成するARタイプの生成モデルでもよい。
【0090】
上記実施形態では、使用者が操作部150を操作して、制御値をリアルタイムに入力するが、使用者が、予め制御値の時間変化をプログラムし、プログラムされた通りに変化する制御値を訓練済モデルMに与えて、各時点の音響特徴量を生成してもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10