(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】音信号生成方法、推定モデル訓練方法、音信号生成システム、およびプログラム
(51)【国際特許分類】
G10H 1/00 20060101AFI20240312BHJP
【FI】
G10H1/00 102Z
(21)【出願番号】P 2020054465
(22)【出願日】2020-03-25
【審査請求日】2023-01-25
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】100125689
【氏名又は名称】大林 章
(74)【代理人】
【識別番号】100128598
【氏名又は名称】高田 聖一
(74)【代理人】
【識別番号】100121108
【氏名又は名称】高橋 太朗
(72)【発明者】
【氏名】西村 方成
(72)【発明者】
【氏名】才野 慶二郎
【審査官】中村 天真
(56)【参考文献】
【文献】特開2021-051251(JP,A)
【文献】特開2010-271440(JP,A)
【文献】特開2005-173632(JP,A)
【文献】特開2005-128208(JP,A)
【文献】特開平04-156593(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10G 1/00- 3/04
G10H 1/00- 1/46
G10L 13/00-13/10
(57)【特許請求の範囲】
【請求項1】
複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成する音信号生成方法であって、
前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成し、
前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成し、
前記制御データに応じた音信号を生成する
コンピュータにより実現される音信号生成方法。
【請求項2】
前記第1推定モデルは、前記特定音符に関する条件を表す条件データと当該特定音符の短縮率との関係を学習した機械学習モデルである
請求項1の音信号生成方法。
【請求項3】
前記条件データが表す条件は、前記特定音符の音高および継続長と、前記特定音符の前方に位置する音符および後方に位置する音符の少なくとも一方に関する情報とを含む
請求項2の音信号生成方法。
【請求項4】
前記音信号の生成においては、前記第1推定モデルとは別個の第2推定モデルに前記制御データを入力することで、前記音信号を生成する
請求項1から請求項3の何れかの音信号生成方法。
【請求項5】
前記制御データの生成は、
前記楽譜データにおける前記特定音符の継続長が前記短縮率により短縮された中間データを生成する処理と、
前記中間データに対応する前記制御データを生成する処理とを含む
請求項1から請求項4の何れかの音信号生成方法。
【請求項6】
複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データが、前記特定音符について指定する条件を表す条件データと、
前記特定音符の継続長を短縮させる度合を表す短縮率と、
を含む複数の訓練データを取得し、
前記複数の訓練データを利用した機械学習により、前記条件データと前記短縮率との関係を学習するように推定モデルを訓練する
コンピュータにより実現される推定モデル訓練方法。
【請求項7】
1以上のプロセッサとプログラムが記録されたメモリとを具備し、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成する音信号生成システムであって、
前記1以上のプロセッサは、前記プログラムを実行することで、
前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成し、
前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成し、
前記制御データに応じた音信号を生成する
音信号生成システム。
【請求項8】
複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成するためのプログラムであって、
前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成する処理と、
前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成する処理と、
前記制御データに応じた音信号を生成する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、音信号を生成する技術に関する。
【背景技術】
【0002】
歌唱音または演奏音等の各種の音を表す音信号を生成する技術が従来から提案されている。例えば公知のMIDI(Musical Instrument Digital Interface)音源は、スタッカート等の演奏記号が付与された音の音信号を生成する。また、非特許文献1には、ニューラルネットワークを利用して歌唱音を合成する技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Merlijn Blaauw, Jordi Bonada, "A NEWRAL PARATETRIC SINGING SYNTHESIZER," arXiv, 2017.4.12
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のMIDI音源においては、スタッカートが指示された音符の継続長がゲートタイムの制御により所定の比率(例えば50%)で短縮される。しかし、実際の楽曲の歌唱または演奏においてスタッカートにより音符の継続長が短縮される度合は、当該音符の前後に位置する音符の音高等の種々の要因により変化する。したがって、スタッカートが指示された音符の継続長を固定の度合で短縮する従来のMIDI音源においては、音楽的に自然な音を表す音信号を生成することが困難である。また、非特許文献1の技術のもとでは、機械学習に利用された訓練データの傾向のもとで各音符の継続長が短縮されることはあるものの、例えば音符毎に個別にスタッカートを示することは想定されていない。なお、以上の説明ではスタッカートを例示したが、例えば音符の継続長を短縮させる任意の指示について同様の問題が想定される。以上の事情を考慮して、本開示のひとつの態様は、音符の継続長を短縮させる指示を含む楽譜データから音楽的に自然な音を表す音信号を生成することを目的とする。
【課題を解決するための手段】
【0005】
以上の課題を解決するために、本開示のひとつの態様に係る音信号生成方法は、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成する音信号生成方法であって、前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成し、前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成し、前記制御データに応じた音信号を生成する。
【0006】
本開示のひとつの態様に係る推定モデル訓練方法は、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データが、前記特定音符について指定する条件を表す条件データと、前記特定音符の継続長を短縮させる度合を表す短縮率と、を含む複数の訓練データを取得し、前記複数の訓練データを利用した機械学習により、前記条件データと前記短縮率との関係を学習するように推定モデルを訓練する。
【0007】
本開示のひとつの態様に係る音信号生成システムは、1以上のプロセッサとプログラムが記録されたメモリとを具備し、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成する音信号生成システムであって、前記1以上のプロセッサは、前記プログラムを実行することで、前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成し、前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成し、前記制御データに応じた音信号を生成する。
【0008】
本開示のひとつの態様に係るプログラムは、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成するためのプログラムであって、前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成する処理と、前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成する処理と、前記制御データに応じた音信号を生成する処理とを、コンピュータに実行させる。
【図面の簡単な説明】
【0009】
【
図1】音信号生成システムの構成を例示するブロック図である。
【
図2】信号生成部が使用するデータの説明図である。
【
図3】音信号生成システムの機能的な構成を例示するブロック図である。
【
図4】信号生成処理の具体的な手順を例示するフローチャートである。
【
図5】学習処理部が使用するデータの説明図である。
【
図6】第1推定モデルに関する学習処理の具体的な手順を例示するフローチャートである。
【
図7】訓練データを取得する処理の具体的な手順を例示するフローチャートである。
【
図8】機械学習処理の具体的な手順を例示するフローチャートである。
【
図9】第2実施形態における音信号生成システムの構成を例示するフローチャートである。
【
図10】第2実施形態における信号生成処理の具体的な手順を例示するフローチャートである。
【発明を実施するための形態】
【0010】
A:第1実施形態
図1は、本開示の第1実施形態に係る音信号生成システム100の構成を例示するブロック図である。音信号生成システム100は、制御装置11と記憶装置12と放音装置13とを具備するコンピュータシステムである。音信号生成システム100は、例えばスマートフォン、タブレット端末またはパーソナルコンピュータ等の情報端末により実現される。なお、音信号生成システム100は、単体の装置で実現されるほか、相互に別体で構成された複数の装置(例えばクライアントサーバシステム)でも実現される。
【0011】
制御装置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が構成される。
【0012】
制御装置11は、合成の目標となる任意の音(以下「目標音」という)を表す音信号Vを生成する。音信号Vは、目標音の波形を表す時間領域の信号である。目標音は、楽曲の演奏により発音される演奏音である。具体的には、目標音は、楽器の演奏により発音される楽音のほか、歌唱により発音される歌唱音を含む。すなわち、「演奏」は、楽器の演奏という本来的な意味のほかに歌唱も包含する広義の概念である。
【0013】
放音装置13は、制御装置11が生成した音信号Vが表す目標音を放音する。放音装置13は、例えばスピーカまたはヘッドホンである。なお、音信号Vをデジタルからアナログに変換するD/A変換器と、音信号Vを増幅する増幅器とは、便宜的に図示が省略されている。また、
図1においては、放音装置13を音信号生成システム100に搭載した構成を例示したが、音信号生成システム100とは別体の放音装置13が有線または無線により音信号生成システム100に接続されてもよい。
【0014】
記憶装置12は、制御装置11が実行するプログラムと制御装置11が使用する各種のデータとを記憶する単数または複数のメモリである。記憶装置12は、例えば磁気記録媒体もしくは半導体記録媒体等の公知の記録媒体、または、複数種の記録媒体の組合せで構成される。なお、音信号生成システム100とは別体の記憶装置12(例えばクラウドストレージ)を用意し、例えば移動体通信網またはインターネット等の通信網を介して、制御装置11が記憶装置12に対する書込および読出を実行してもよい。すなわち、記憶装置12は音信号生成システム100から省略されてもよい。
【0015】
記憶装置12は、楽曲を表す楽譜データD1を記憶する。
図2に例示される通り、楽譜データD1は、楽曲を構成する複数の音符の各々について音高と継続長(音価)とを指定する。目標音が歌唱音である場合、楽譜データD1は各音符の音韻(歌詞)の指定を含む。また、楽譜データD1が指定する複数の音符のうち1以上の音符(以下「特定音符」という)についてはスタッカートが指示される。スタッカートは、特定音符の継続長を短縮させることを意味する演奏記号である。音信号生成システム100は、楽譜データD1に応じた音信号Vを生成する。
【0016】
[1]信号生成部20
図3は、音信号生成システム100の機能的な構成を例示するブロック図である。制御装置11は、記憶装置12に記憶された音信号生成プログラムP1を実行することで信号生成部20として機能する。信号生成部20は、楽譜データD1から音信号Vを生成する。信号生成部20は、調整処理部21と第1生成部22と制御データ生成部23と出力処理部24と具備する。
【0017】
調整処理部21は、楽譜データD1の調整により楽譜データD2を生成する。具体的には、調整処理部21は、
図2に例示される通り、楽譜データD1が音符毎に指定する始点および終点を時間軸上において調整することで楽譜データD2を生成する。例えば、楽曲の演奏音は、楽譜により指定される音符の始点の到来前に発音が開始される場合がある。例えば、子音と母音とで構成される歌詞を発音する場合を想定すると、音符の始点前から子音の発音が開始され、当該始点において母音の発音が開始されると自然な歌唱音と認識される。以上の傾向を考慮して、調整処理部21は、楽譜データD1が表す各音符の始点および終点を時間軸上において前方に調整することで楽譜データD2を生成する。例えば、調整処理部21は、楽譜データD1が指定する各音符の始点を前方に調整することで、調整前の音符の始点前から子音の発音が開始され、当該始点において母音の発音が開始されるように各音符の期間を調整する。楽譜データD2は、楽譜データD1と同様に、楽曲の複数の音符の各々について音高と継続長とを指定するデータであり、特定音符についてスタッカートの指示(短縮指示)を含む。
【0018】
図3の第1生成部22は、楽譜データD2が指定する複数の音符のうち特定音符を短縮させる度合を表す短縮率αを、楽曲内の特定音符毎に生成する。第1生成部22による短縮率αの生成には第1推定モデルM1が利用される。第1推定モデルM1は、楽譜データD2が特定音符について指定する条件(以下「発音条件」という)を表す条件データXの入力に対して短縮率αを出力する統計モデルである。すなわち、第1推定モデルM1は、楽曲内における特定音符の条件と当該特定音符に関する短縮率αとの関係を学習した機械学習モデルである。短縮率αは、例えば特定音符の継続長に対する短縮幅の比率であり、1未満の正数に設定される。
【0019】
条件データXが表す発音条件(コンテキスト)は、例えば特定音符の音高および継続長を含む。なお、継続長は、時間長により指定されてもよいし音価により指定されてもよい。また、発音条件は、例えば、特定音符の前方(例えば直前)に位置する音符と特定音符の後方(例えば直後)に位置する音符との少なくとも一方に関する任意の情報(例えば音高、継続長、開始位置、終了位置、特定音符との音高差等)を含む。ただし、特定音符の前方または後方に位置する音符に関する情報は、条件データXが表す発音条件から省略されてもよい。
【0020】
第1推定モデルM1は、例えば、再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)、または畳込ニューラルネットワーク(CNN:Convolutional Neural Network)等の任意の形式の深層ニューラルネットワークで構成される。複数種の深層ニューラルネットワークの組合せを第1推定モデルM1として利用してもよい。また、長短期記憶(LSTM:Long Short-Term Memory)ユニット等の付加的な要素が第1推定モデルM1に搭載されてもよい。
【0021】
第1推定モデルM1は、条件データXから短縮率αを生成する演算を制御装置11に実行させる推定プログラムと、当該演算に適用される複数の変数K1(具体的には加重値およびバイアス)との組合せで実現される。第1推定モデルM1の複数の変数K1は、機械学習により事前に設定されたうえで記憶装置12に記憶される。
【0022】
制御データ生成部23は、楽譜データD2と短縮率αとに応じた制御データCを生成する。制御データ生成部23による制御データCの生成は、時間軸上の単位期間(例えば所定長のフレーム)毎に実行される。単位期間は、楽曲の音符と比較して充分に短い時間長の期間である。
【0023】
制御データCは、楽譜データD2に対応する目標音の発音条件を表すデータである。具体的には、各単位期間の制御データCは、例えば、当該単位期間を含む音符の音高Nおよび継続長を含む。また、各単位期間の制御データCは、例えば、当該単位期間を含む該音符の前方(例えば直前)の音符および後方(例えば直後)の音符の少なくとも一方に関する任意の情報(例えば音高、継続長、開始位置、終了位置、特定音符との音高差等)を含む。また、目標音が歌唱音である場合、制御データCは音韻(歌詞)を含む。なお、前方または後方の音符に関する情報は、制御データCから省略されてもよい。
【0024】
図2には、制御データCの時系列により表現される目標音の音高が模式的に図示されている。制御データ生成部23は、特定音符の継続長を当該特定音符の短縮率αにより短縮させることが反映された発音条件を表す制御データCを生成する。制御データCが表す特定音符は、楽譜データD2が指定する特定音符を短縮率αに応じて短縮した音符である。例えば、制御データCが表す特定音符は、楽譜データD2が指定する特定音符の時間長に短縮率αを乗算した時間長に設定される。制御データCが表す特定音符の始点と楽譜データD2が表す特定音符の始点とは共通する。したがって、特定音符の短縮の結果、当該特定音符の終点から直後の音符の始点までの無音の期間(以下「無音期間」という)τが発生する。制御データ生成部23は、無音期間τ内の各単位期間については、無音を表す制御データCを生成する。例えば、無音を意味する数値に音高Nが設定された制御データCが、無音期間τ内の各単位期間について生成される。なお、無音期間τ内の各単位期間について、音高Nが無音に設定された制御データCに代えて、休符を表す制御データCを制御データ生成部23が生成してもよい。すなわち、制御データCは、音符が発音される発音期間と発音がない無音期間τとを区別できるデータであればよい。
【0025】
図3の出力処理部24は、制御データCの時系列に応じた音信号Vを生成する。すなわち、制御データ生成部23および出力処理部24は、短縮率αに応じた特定音符の短縮が反映された音信号Vを生成する要素として機能する。出力処理部24は、第2生成部241と波形合成部242とを具備する。
【0026】
第2生成部241は、制御データCを利用して目標音の周波数特性Zを生成する。周波数特性Zは、目標音に関する周波数領域の特徴量である。具体的には、周波数特性Zは、例えばメルスペクトルまたは振幅スペクトル等の周波数スペクトルと、目標音の基本周波数とを含む。周波数特性Zは、単位期間毎に生成される。すなわち、第2生成部241は、周波数特性Zの時系列を生成する。
【0027】
第2生成部241による周波数特性Zの生成には、第1推定モデルM1とは別個の第2推定モデルM2が利用される。第2推定モデルM2は、制御データCの入力に対して周波数特性Zを出力する統計モデルである。すなわち、第2推定モデルM2は、制御データCと周波数特性Zとの関係を学習した機械学習モデルである。
【0028】
第2推定モデルM2は、例えば、再帰型ニューラルネットワークまたは畳込ニューラルネットワーク等の任意の形式の深層ニューラルネットワークで構成される。複数種の深層ニューラルネットワークの組合せを第2推定モデルM2として利用してもよい。また、長短期記憶ユニット等の付加的な要素が第2推定モデルM2に搭載されてもよい。
【0029】
第2推定モデルM2は、制御データCから周波数特性Zを生成する演算を制御装置11に実行させる推定プログラムと、当該演算に適用される複数の変数K2(具体的には加重値およびバイアス)との組合せで実現される。第2推定モデルM2の複数の変数K2は、機械学習により事前に設定されたうえで記憶装置12に記憶される。
【0030】
波形合成部242は、周波数特性Zの時系列から目標音の音信号Vを生成する。波形合成部242は、例えば離散逆フーリエ変換を含む演算により周波数特性Zを時間領域の波形に変換し、相前後する単位期間について当該波形を連結することで音信号Vを生成する。なお、例えば周波数特性Zと音信号Vとの関係を学習した深層ニューラルネットワーク(いわゆるニューラルボコーダ)を利用して、波形合成部242が周波数特性Zから音信号Vを生成してもよい。波形合成部242が生成した音信号Vが放音装置13に供給されることで、目標音が放音装置13から放音される。
【0031】
図4は、制御装置11が音信号Vを生成する処理(以下「信号生成処理」という)の具体的な手順を例示するフローチャートである。例えば利用者からの指示を契機として信号生成処理が開始される。
【0032】
信号生成処理が開始されると、調整処理部21は、記憶装置12に記憶された楽譜データD1から楽譜データD2を生成する(S11)。第1生成部22は、楽譜データD2が表す複数の音符からスタッカートが指示された各特定音符を検出し、当該特定音符に関する条件データXを第1推定モデルM1に入力することで短縮率αを生成する(S12)。
【0033】
制御データ生成部23は、楽譜データD2と短縮率αとに応じて各単位期間の制御データCを生成する(S13)。前述の通り、短縮率αに応じた特定音符の短縮が制御データCに反映され、かつ、当該短縮により発生する無音期間τ内の各単位期間については無音を表す制御データCが生成される。
【0034】
第2生成部241は、制御データCを第2推定モデルM2に入力することで単位期間の周波数特性Zを生成する(S14)。波形合成部242は、目標音の音信号Vのうち単位期間内の部分を当該単位期間の周波数特性Zから生成する(S15)。制御データCの生成(S13)と周波数特性Zの生成(S14)と音信号Vの生成(S15)とは、楽曲の全体について単位期間毎に実行される。
【0035】
以上に説明した通り、第1実施形態においては、楽譜データD2が表す複数の音符のうち特定音符の条件データXを第1推定モデルM1に入力することで短縮率αが生成され、特定音符の継続長を当該短縮率αにより短縮させることが反映された制御データCが生成される。すなわち、特定音符を短縮させる度合が楽曲内の特定音符の発音条件に応じて変化する。したがって、特定音符のスタッカートを含む楽譜データD2から音楽的に自然な目標音の音信号Vを生成できる。
【0036】
[2]学習処理部30
図3に例示される通り、制御装置11は、記憶装置12に記憶された機械学習プログラムP2を実行することで学習処理部30として機能する。学習処理部30は、信号生成処理に利用される第1推定モデルM1と第2推定モデルM2とを機械学習により訓練する。学習処理部30は、調整処理部31と信号解析部32と第1訓練部33と制御データ生成部34と第2訓練部35とを具備する。
【0037】
記憶装置12は、機械学習に利用される複数の基礎データBを記憶する。複数の基礎データBの各々は、楽譜データD1と参照信号Rとの組合せで構成される。楽譜データD1は、前述の通り、楽曲の複数の音符の各々について音高と継続長とを指定するデータであり、特定音符についてスタッカートの指示(短縮指示)を含む。相異なる楽曲の楽譜データD1を含む複数の基礎データBが記憶装置12に記憶される。
【0038】
図3の調整処理部31は、前述の調整処理部21と同様に、各基礎データBの楽譜データD1から楽譜データD2を生成する。楽譜データD2は、楽譜データD1と同様に、楽曲の複数の音符の各々について音高と継続長とを指定するデータであり、特定音符についてスタッカートの指示(短縮指示)を含む。ただし、楽譜データD2が指定する特定音符の継続長は短縮されていない。すなわち、楽譜データD2にスタッカートは反映されていない。
【0039】
図5は、学習処理部30が使用するデータの説明図である。各基礎データBの参照信号Rは、当該基礎データB内の楽譜データD1に対応する楽曲の演奏音を表す時間領域の信号である。例えば、楽曲の演奏により楽器から発音される楽音、または楽曲の歌唱により発音される歌唱音を収録することで参照信号Rが生成される。
【0040】
図3の信号解析部32は、参照信号Rにおいて各音符に対応する演奏音の発音期間Qを特定する。
図5に例示される通り、例えば、参照信号Rにおいて音高または音韻が変化する時点または音量が閾値を下回る時点が、発音期間Qの始点または終点として特定される。また、信号解析部32は、時間軸上の単位期間毎に参照信号Rの周波数特性Zを生成する。周波数特性Zは、前述の通り、例えばメルスペクトルまたは振幅スペクトル等の周波数スペクトルと、参照信号Rの基本周波数とを含む周波数領域の特徴量である。
【0041】
参照信号Rにおいて楽曲内の各音符に対応する音の発音期間Qは、楽譜データD2が表す各音符の発音期間qに基本的には一致する。ただし、楽譜データD2が表す各発音期間qにはスタッカートが反映されていないから、参照信号Rにおいて特定音符に対応する発音期間Qは、楽譜データD2が表す特定音符の発音期間qよりも短い。以上の説明から理解される通り、特定音符の発音期間Qと発音期間qとを比較することで、楽曲内の特定音符の継続長が実際の演奏において短縮される度合を把握することが可能である。
【0042】
図3の第1訓練部33は、複数の訓練データT1を利用した学習処理Scにより第1推定モデルM1を訓練する。学習処理Scは、複数の訓練データT1を利用した教師あり機械学習である。複数の訓練データT1の各々は、条件データXと短縮率α(正解値)との組合せで構成される。
【0043】
図6は、学習処理Scの具体的な手順を例示するフローチャートである。学習処理Scが開始されると、第1訓練部33は、複数の訓練データT1を取得する(Sc1)。
図7は、第1訓練部33が訓練データT1を取得する処理Sc1の具体的な手順を例示するフローチャートである。
【0044】
第1訓練部33は、相異なる楽譜データD1から調整処理部31が生成する複数の楽譜データD2の何れか(以下「選択楽譜データD2」という)を選択する(Sc11)。第1訓練部33は、選択楽譜データD2が表す複数の音符から特定音符(以下「選択特定音符」という)を選択する(Sc12)。第1訓練部33は、選択特定音符の発音条件を表す条件データXを生成する(Sc13)。条件データXが表す発音条件(コンテキスト)は、前述の通り、選択特定音符の音高および継続長と、選択特定音符の前方(例えば直前)に位置する音符の音高および継続長と、選択特定音符の後方(例えば直後)に位置する音符の音高および継続長とを含む。選択特定音符と直前または直後の音符との音高差を発音条件に含めてもよい。
【0045】
第1訓練部33は、選択特定音符の短縮率αを算定する(Sc14)。具体的には、第1訓練部33は、選択楽譜データD2が表す選択特定音符の発音期間qと信号解析部32が参照信号Rから特定する当該選択特定音符の発音期間Qとを比較することで短縮率αを生成する。例えば、発音期間qの時間長に対する発音期間Qの時間長の比率が短縮率αとして算定される。第1訓練部33は、選択特定音符の条件データXと当該選択特定音符の短縮率αとの組合せで構成される訓練データT1を記憶装置12に格納する(Sc15)。各訓練データT1の短縮率αは、当該訓練データT1の条件データXから第1推定モデルM1が生成すべき短縮率αの正解値に相当する。
【0046】
第1訓練部33は、選択楽譜データD2の全部の特定音符について訓練データT1を生成したか否かを判定する(Sc16)。未選択の特定音符が残存する場合(Sc16:NO)、第1訓練部33は、選択楽譜データD2が表す複数の特定音符から未選択の特定音符を選択し(Sc12)、当該選択特定音符について訓練データT1を生成する(Sc13-Sc15)。
【0047】
選択楽譜データD2の全部の特定音符について訓練データT1を生成すると(Sc16:YES)、第1訓練部33は、複数の楽譜データD2の全部について以上の処理を実行したか否かを判定する(Sc17)。未選択の楽譜データD2が残存する場合(Sc17:NO)、第1訓練部33は、複数の楽譜データD2から未選択の楽譜データD2を選択し(Sc11)、当該選択楽譜データD2について各特定音符の訓練データT1の生成を実行する(Sc12-Sc16)。全部の楽譜データD2について訓練データT1の生成を実行した段階では(Sc17:YES)、複数の訓練データT1が記憶装置12に記憶される。
【0048】
以上の手順で複数の訓練データT1を生成すると、第1訓練部33は、
図6に例示される通り、複数の訓練データT1を利用した機械学習により第1推定モデルM1を訓練する(Sc21-Sc25)。まず、第1訓練部33は、複数の訓練データT1の何れか(以下「選択訓練データT1」という)を選択する(Sc21)。
【0049】
第1訓練部33は、選択訓練データT1の条件データXを暫定的な第1推定モデルM1に入力することで短縮率αを生成する(Sc22)。第1訓練部33は、第1推定モデルM1が生成した短縮率αと選択訓練データT1の短縮率α(すなわち正解値)との誤差を表す損失関数を算定する(Sc23)。第1訓練部33は、損失関数が低減(理想的には最小化)されるように、第1推定モデルM1を規定する複数の変数K1を更新する(Sc24)。
【0050】
第1訓練部33は、所定の終了条件が成立したか否かを判定する(Sc25)。終了条件は、例えば、損失関数が所定の閾値を下回ること、または、損失関数の変化量が所定の閾値を下回ることである。終了条件が成立しない場合(Sc25:NO)、第1訓練部33は、未選択の訓練データT1を選択し(Sc21)、当該訓練データT1を利用して短縮率αの算定(Sc22)と損失関数の算定(Sc23)と複数の変数K1の更新(Sc24)とを実行する。
【0051】
第1推定モデルM1の複数の変数K1は、終了条件が成立した段階(Sc25:YES)における数値に確定される。以上の例示の通り、訓練データT1を利用した複数の変数K1の更新(Sc24)が終了条件の成立まで反復される。したがって、第1推定モデルM1は、複数の訓練データT1における条件データXと短縮率αとの間に潜在する関係を学習する。すなわち、第1訓練部33による訓練後の第1推定モデルM1は、未知の条件データXに対して当該関係のもとで統計的に妥当な短縮率αを出力する。
【0052】
図3の制御データ生成部34は、制御データ生成部23と同様に、楽譜データD2と短縮率αとに応じた制御データCを単位期間毎に生成する。制御データCの生成には、学習処理ScのステップSc22にて第1訓練部33が算定した短縮率α、または、学習処理Scによる処理後の第1推定モデルM1を利用して生成された短縮率αが利用される。制御データ生成部34が各単位期間について生成する制御データCと、当該単位期間について信号解析部32が参照信号Rから生成した周波数特性Zとの組合せで構成される複数の訓練データT2が第2訓練部35に供給される。
【0053】
第2訓練部35は、複数の訓練データT2を利用した学習処理Seにより第2推定モデルM2を訓練する。学習処理Seは、複数の訓練データT2を利用した教師あり機械学習である。具体的には、第2訓練部35は、各訓練データT2の制御データCに応じて暫定的な第2推定モデルM2が出力する周波数特性Zと、当該訓練データT2に含まれる周波数特性Zとの誤差を表す誤差関数を算定する。第2訓練部35は、誤差関数が低減(理想的には最小化)されるように、第2推定モデルM2を規定する複数の変数K2を反復的に更新する。したがって、第2推定モデルM2は、複数の訓練データT2における制御データCと周波数特性Zとの間に潜在する関係を学習する。すなわち、第2訓練部35による訓練後の第2推定モデルM2は、未知の制御データCに対して当該関係のもとで統計的に妥当な周波数特性Zを出力する。
【0054】
図8は、制御装置11が第1推定モデルM1および第2推定モデルM2を訓練する処理(以下「機械学習処理」と言う)の具体的な手順を例示するフローチャートである。例えば利用者からの指示を契機として機械学習処理が開始される。
【0055】
機械学習処理が開始されると、信号解析部32は、複数の基礎データBの各々の参照信号Rから複数の発音期間Qと単位期間毎の周波数特性Zとを特定する(Sa)。調整処理部31は、複数の基礎データBの各々の楽譜データD1から楽譜データD2を生成する(Sb)。なお、参照信号Rの解析(Sa)と楽譜データD2の生成(Sb)との順序は逆転されてもよい。
【0056】
第1訓練部33は、前述の学習処理Scにより第1推定モデルM1を訓練する。制御データ生成部34は、楽譜データD2と短縮率αとに応じた制御データCを単位期間毎に生成する(Sd)。第2訓練部35は、制御データCと周波数特性Zとを含む複数の訓練データT2を利用した学習処理Seにより第2推定モデルM2を訓練する。
【0057】
以上の説明から理解される通り、楽譜データD2が表す複数の音符のうち特定音符の条件を表す条件データXと、特定音符の継続長を短縮させる度合を表す短縮率αとの関係を学習するように第1推定モデルM1が訓練される。すなわち、特定音符の継続長の短縮率αが当該特定音符の発音条件に応じて変化する。したがって、音符の継続長を短縮させるスタッカートを含む楽譜データD2から音楽的に自然な目標音の音信号Vを生成できる。
【0058】
B:第2実施形態
第2実施形態について以下に説明する。なお、以下に例示する各形態において機能が第1実施形態と同様である要素については、第1実施形態の説明で使用した符号を流用して各々の詳細な説明を適宜に省略する。
【0059】
第1実施形態においては、制御データ生成部23が楽譜データD2から制御データCを生成する処理(Sd)に短縮率αが適用される。第2実施形態においては、調整処理部21が楽譜データD1から楽譜データD2を生成する処理に短縮率αが適用される。学習処理部30の構成および機械学習処理の内容は第1実施形態と同様である。
【0060】
図9は、第2実施形態における音信号生成システム100の機能的な構成を例示するブロック図である。第1生成部22は、楽譜データD1が指定する複数の音符のうち特定音符を短縮させる度合を表す短縮率αを、楽曲内の特定音符毎に生成する。具体的には、第1生成部22は、楽譜データD1が各特定音符について指定する発音条件を表す条件データXを第1推定モデルM1に入力することで、当該特定音符の短縮率αを生成する。
【0061】
調整処理部21は、楽譜データD1の調整により楽譜データD2を生成する。調整処理部21による楽譜データD2の生成に短縮率αが適用される。具体的には、調整処理部21は、楽譜データD1が音符毎に指定する始点および終点を第1実施形態と同様に調整するほか、楽譜データD1が表す特定音符の継続長を短縮率αにより短縮することで、楽譜データD2を生成する。すなわち、短縮率αによる特定音符の短縮が反映された楽譜データD2が生成される。
【0062】
制御データ生成部23は、楽譜データD2に応じた制御データCを単位期間毎に生成する。制御データCは、第1実施形態と同様に、楽譜データD2に対応する目標音の発音条件を表すデータである。第1実施形態においては制御データCの生成に短縮率αを適用したが、第2実施形態においては楽譜データD2に短縮率αが反映されるから、制御データCの生成に短縮率αは適用されない。
【0063】
図10は、第2実施形態における信号生成処理の具体的な手順を例示するフローチャートである。信号生成処理が開始されると、第1生成部22は、楽譜データD1が指定する複数の音符からスタッカートが指示された各特定音符を検出し、当該特定音符に関する条件データXを第1推定モデルM1に入力することで短縮率αを生成する(S21)。
【0064】
調整処理部21は、楽譜データD1と短縮率αとに応じた楽譜データD2を生成する(S22)。楽譜データD2には、短縮率αによる特定音符の短縮が反映される。制御データ生成部23は、楽譜データD2に応じて各単位期間の制御データCを生成する(S23)。以上の説明から理解される通り、第2実施形態における制御データCの生成は、楽譜データD1における特定音符の継続長が短縮率αにより短縮された楽譜データD2を生成する処理(S22)と、楽譜データD2に対応する制御データCを生成する処理(S23)とを含む。第2実施形態の楽譜データD2は「中間データ」の一例である。
【0065】
以降の処理は第1実施形態と同様である。すなわち、第2生成部241は、制御データCを第2推定モデルM2に入力することで各単位期間の周波数特性Zを生成する(S24)。波形合成部242は、目標音の音信号Vのうち単位期間内の部分を当該単位期間の周波数特性Zから生成する(S25)。第2実施形態においても第1実施形態と同様の効果が実現される。
【0066】
なお、学習処理Scにおいて正解値として利用される短縮率αは、参照信号Rにおける各音符の発音期間Qと、調整処理部31による調整後の楽譜データD2が各音符に指定する発音期間qとの関係に応じて設定される。他方、第2実施形態における第1生成部22は、調整前の初期的な楽譜データD1から短縮率αを算定する。したがって、調整御の楽譜データD2に応じた条件データXを第1推定モデルM1に入力する第1実施形態と比較すると、学習処理Scにおいて第1推定モデルM1が学習した条件データXと短縮率αとの関係には完全には整合しない短縮率αが生成される可能性がある。したがって、複数の訓練データT1の傾向に正確に整合する短縮率αを生成するという観点からは、調整後の楽譜データD2に応じた条件データXを第1推定モデルM1に入力することで短縮率αを生成する第1実施形態の構成が好適である。ただし、第2実施形態においても、複数の訓練データT1の傾向に概略的には整合した短縮率αが生成されるから、短縮率αの誤差は特段の問題とならない可能性がある。
【0067】
C:変形例
以上に例示した各態様に付加される具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様を、相互に矛盾しない範囲で適宜に併合してもよい。
【0068】
(1)前述の各形態においては、短縮前の特定音符の継続長に対する短縮幅の比率を短縮率αとして例示したが、短縮率αの算定の方法は以上の例示に限定されない。例えば、短縮前の特定音符の継続長と短縮後の特定音符の継続長との比率を短縮率αとして利用してもよいし、短縮後の特定音符の継続長を表す数値を短縮率αとして利用してもよい。また、短縮率αは、実時間スケールの数値でもよいし、各音符の音価を基準とした時間(tick)のスケールの数値でもよい。
【0069】
(2)前述の各形態においては、参照信号Rにおける各音符の発音期間Qを信号解析部32が解析したが、発音期間Qを特定する方法は以上の例示に限定されない。例えば、参照信号Rの波形を参照可能な利用者が手動で発音期間Qの端点を指定してもよい。
【0070】
(3)条件データXが指定する特定音符の発音条件は、前述の各形態において例示した事項に限定されない。例えば、特定音符または周囲の音符の強弱(強弱記号またはベロシティ)、楽曲内で特定音符を含む区間のコード、テンポもしくは調号、特定音符に関するスラー等の演奏記号等、特定音符に関する各種の条件を表すデータが条件データXとして例示される。また、楽曲内の特定音符が短縮される度合は、演奏に使用される楽器の種類、楽曲の演奏者、または楽曲の音楽ジャンルにも依存する。したがって、条件データXが表す発音条件が、楽器の種類、演奏者、または音楽ジャンルを含んでもよい。
【0071】
(4)前述の各形態においては、スタッカートによる音符の短縮を例示したが、音符の継続長を短縮するための短縮指示はスタッカートに限定されない。例えば、アクセント等が指示された音符についても継続長が短縮する傾向がある。したがって、スタッカートのほかにアクセント等の指示も「短縮指示」に包含される。
【0072】
(5)前述の各形態においては、第2推定モデルM2を利用して周波数特性Zを生成する第2生成部241を出力処理部24が含む構成を例示したが、出力処理部24の具体的な構成は以上の例示に限定されない。例えば、制御データCと音信号Vとの関係を学習した第2推定モデルM2を利用して、出力処理部24が制御データCに応じた音信号Vを生成してもよい。第2推定モデルM2は、音信号Vを構成する各サンプルを出力する。また、音信号Vのサンプルに関する確率分布の情報(例えば平均および分散)を第2推定モデルM2が出力してもよい。第2生成部241は、確率分布に従う乱数を音信号Vのサンプルとして生成する。
【0073】
(6)携帯電話機またはスマートフォン等の端末装置との間で通信するサーバ装置により音信号生成システム100が実現されてもよい。例えば、音信号生成システム100は、端末装置から受信した楽譜データD1に対する信号生成処理により音信号Vを生成し、当該音信号Vを端末装置に送信する。端末装置内の調整処理部21が生成した楽譜データD2が当該端末装置から送信される構成においては、音信号生成システム100から調整処理部21が省略される。また、出力処理部24が端末装置に搭載された構成においては、音信号生成システム100から出力処理部24が省略される。すなわち、制御データ生成部23が生成した制御データCが音信号生成システム100から端末装置に送信される。
【0074】
(7)前述の各形態においては、信号生成部20と学習処理部30とを具備する音信号生成システム100を例示したが、信号生成部20および学習処理部30の一方が省略されてもよい。学習処理部30を具備するコンピュータシステムは、推定モデル訓練システム(機械学習システム)とも換言される。推定モデル訓練システムにおける信号生成部20の有無は不問である。
【0075】
(8)以上に例示した音信号生成システム100の機能は、前述の通り、制御装置11を構成する単数または複数のプロセッサと、記憶装置12に記憶されたプログラム(P1,P2)との協働により実現される。本開示に係るプログラムは、コンピュータが読取可能な記録媒体に格納された形態で提供されてコンピュータにインストールされ得る。記録媒体は、例えば非一過性(non-transitory)の記録媒体であり、CD-ROM等の光学式記録媒体(光ディスク)が好例であるが、半導体記録媒体または磁気記録媒体等の公知の任意の形式の記録媒体も包含される。なお、非一過性の記録媒体とは、一過性の伝搬信号(transitory, propagating signal)を除く任意の記録媒体を含み、揮発性の記録媒体も除外されない。また、配信装置が通信網を介してプログラムを配信する構成では、当該配信装置においてプログラムを記憶する記憶装置12が、前述の非一過性の記録媒体に相当する。
【0076】
なお、第1推定モデルM1または第2推定モデルM2を実現するプログラムの実行主体はCPU等の汎用の処理回路に限定されない。例えば、Tensor Processing UnitまたはNeural Engine等の人工知能に特化した処理回路がプログラムを実行してもよい。
【0077】
D:付記
以上に例示した形態から、例えば以下の構成が把握される。
【0078】
本開示のひとつの態様(態様1)に係る音信号生成方法は、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成する音信号生成方法であって、前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成し、前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成し、前記制御データに応じた音信号を生成する。
【0079】
以上の態様によれば、楽譜データが表す複数の音符のうち特定音符の条件を表す条件データを第1推定モデルに入力することで、特定音符の継続長を短縮させる度合を表す短縮率が生成され、特定音符の継続長を当該短縮率により短縮させることが反映された発音条件を表す制御データが生成される。すなわち、特定音符の継続長を短縮させる度合が楽譜データに応じて変化する。したがって、音符の継続長を短縮させる短縮指示を含む楽譜データから音楽的に自然な音の音信号を生成できる。
【0080】
「短縮指示」の典型例はスタッカートである。ただし、アクセント等が指示された音符についても継続長が短縮する傾向があることを考慮すると、アクセント等の指示も「短縮指示」に包含される。
【0081】
「短縮率」の典型例は、短縮前の継続長に対する短縮幅の比率、または、短縮前の継続長に対する短縮語の継続長の比率であるが、短縮後の継続長の数値等、継続長の短縮の度合を表す任意の数値が「短縮率」に包含される。
【0082】
「条件データ」が表す特定音符の「条件」は、当該特定音符の継続長を短縮させる度合を変動させる条件(すなわち変動要因)である。例えば、特定音符の音高または継続長が条件データにより指定される。また、例えば、特定音符の前方(例えば直前)に位置する音符および特定音符の後方(例えば直後)に位置する音符の少なくとも一方に関する各種の条件(例えば音高、継続長、開始位置、終了位置、特定音符との音高差等)が、条件データにより指定されてもよい。すなわち、条件データが表す条件には、特定音符自体の条件のほか、特定音符の周囲に位置する他の音符に関する条件も包含されてよい。また、楽譜データが表す楽曲の音楽ジャンル、または当該楽曲の演奏者(歌唱者を含む)等も、条件データが表す条件に包含される。
【0083】
態様1の具体例(態様2)において、前記第1推定モデルは、前記特定音符に関する条件を表す条件データと当該特定音符の短縮率との関係を学習した機械学習モデルである。以上の態様によれば、訓練(機械学習)に利用された複数の訓練データに潜在する傾向のもとで条件データに対して統計的に妥当な短縮率を生成できる。
【0084】
第1推定モデルとして利用される機械学習モデルの種類は任意である。例えば、ニューラルネットワークまたはSVR(Support Vector Regression)モデル等の任意の形式の統計モデルが機械学習モデルとして利用される。なお、高精度の推定を実現する観点からは、ニューラルネットワークが機械学習モデルとして特に好適である。
【0085】
態様2の具体例(態様3)において、前記条件データが表す条件は、前記特定音符の音高および継続長と、前記特定音符の前方に位置する音符および後方に位置する音符の少なくとも一方に関する情報とを含む。
【0086】
態様1から態様3の何れかの具体例(態様4)において、前記音信号の生成においては、前記第1推定モデルとは別個の第2推定モデルに前記制御データを入力することで、前記音信号を生成する。以上の態様によれば、第1推定モデルとは別個に用意された音信号の生成用の第2推定モデルを利用することで、聴感的に自然な音信号を生成できる。
【0087】
「第2推定モデル」は、制御データと音信号との関係を学習した機械学習モデルである。第2推定モデルとして利用される機械学習モデルの種類は任意である。例えば、ニューラルネットワークまたはSVR(Support Vector Regression)モデル等の任意の形式の統計モデルが、機械学習モデルとして利用される。
【0088】
態様1から態様4の何れかの具体例(態様5)において、前記制御データの生成は、前記楽譜データにおける前記特定音符の継続長が前記短縮率により短縮された中間データを生成する処理と、前記中間データに対応する前記制御データを生成する処理とを含む。
【0089】
本開示のひとつの態様に係る推定モデル訓練方法は、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データが、前記特定音符について指定する条件を表す条件データと、前記特定音符の継続長を短縮させる度合を表す短縮率と、を含む複数の訓練データを取得し、前記複数の訓練データを利用した機械学習により、前記条件データと前記短縮率との関係を学習するように推定モデルを訓練する。
【0090】
本開示のひとつの態様に係る音信号生成システムは、1以上のプロセッサとプログラムが記録されたメモリとを具備し、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成する音信号生成システムであって、前記1以上のプロセッサは、前記プログラムを実行することで、前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成し、前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成し、前記制御データに応じた音信号を生成する。
【0091】
本開示のひとつの態様に係るプログラムは、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データに応じた音信号を生成するためのプログラムであって、前記楽譜データが前記特定音符について指定する条件を表す条件データを、第1推定モデルに入力することで、前記特定音符の継続長を短縮させる度合を表す短縮率を生成する処理と、前記楽譜データに対応する発音条件を表す制御データであって、前記特定音符の継続長を前記短縮率により短縮させることが反映された制御データを生成する処理と、前記制御データに応じた音信号を生成する処理と、をコンピュータに実行させる。
【0092】
本開示のひとつの態様に係る推定モデルは、複数の音符の各々の継続長と、前記複数の音符のうちの特定音符の継続長を短縮させる短縮指示とを表す楽譜データが、前記特定音符について指定する条件を表す条件データの入力により、前記特定音符の継続長を短縮させる度合を表す短縮率を出力する。
【符号の説明】
【0093】
100…音信号生成システム、11…制御装置、12…記憶装置、13…放音装置、20…信号生成部、21…調整処理部、22…第1生成部、23…制御データ生成部、24…出力処理部、241…第2生成部、242…波形合成部、30…学習処理部、31…調整処理部、32…信号解析部、33…第1訓練部、34…制御データ生成部、35…第2訓練部。