(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023030349
(43)【公開日】2023-03-08
(54)【発明の名称】オーディオデータ生成装置、オーディオデータ生成装置の敵対的学習方法、オーディオデータ生成装置の学習方法、および、音声合成処理システム
(51)【国際特許分類】
G10L 13/06 20130101AFI20230301BHJP
【FI】
G10L13/06 120Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021135430
(22)【出願日】2021-08-23
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(72)【発明者】
【氏名】岡本 拓磨
(72)【発明者】
【氏名】戸田 智基
(72)【発明者】
【氏名】河井 恒
(57)【要約】
【課題】高速処理が可能なGPUを用いることなく、高品質なオーディオ生成処理を高速に実現するオーディオデータ生成装置を実現する。
【解決手段】オーディオデータ生成装置100では、マルチストリーム生成部1により複数のストリームデータを取得する構成を有し、さらに、学習可能な畳み込み処理部3を導入したことにより、高精度なオーディオデータ識別装置Dev_Dとの敵対的学習が可能となる。そして、当該敵対的学習により取得されたオーディオデータ生成装置100により、高速かつ高精度なオーディオデータ生成処理を行うことができる。さらに、オーディオデータ生成装置100は、シンプルな構成を有しているので、高速処理が可能なGPUを用いることなく、高品質なオーディオデータ生成処理(例えば、音声合成処理)を高速に実現することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
学習可能な機能部を含み、メルスペクトログラムデータから、複数のストリームデータを取得するマルチストリーム生成部と、
前記複数のストリームデータのそれぞれに対してアップサンプリング処理を行うことで、アップサンプリングマルチストリームデータを取得するアップサンプリング部と、
畳み込み処理を決定するためのパラメータについて学習可能な畳み込み処理部であって、前記アップサンプリングマルチストリームデータに対して畳み込み処理を実行することで、オーディオ波形データを取得する前記畳み込み処理部と、
を備えるオーディオデータ生成装置。
【請求項2】
前記畳み込み処理部は、バイアスなしの畳み込み処理を行う、
請求項1に記載のオーディオデータ生成装置。
【請求項3】
前記アップサンプリング部は、ゼロ挿入型アップサンプリング処理を行う、
請求項1または2に記載のオーディオデータ生成装置。
【請求項4】
請求項1から3のいずれかに記載のオーディオデータ生成装置と、
学習可能な機能部を含み、オーディオデータの大局特徴に基づいて、オーディオデータの真偽を識別する大局特徴識別器と、
学習可能な機能部を含み、オーディオデータの詳細特徴に基づいて、オーディオデータの真偽を識別する詳細特徴識別器と、
を備えるオーディオデータ識別装置とを用いて実行されるオーディオデータ生成装置の敵対的学習方法であって、
前記オーディオデータ生成装置により生成されたオーディオデータ、または、当該オーディオデータの正解データを前記オーディオデータ識別装置に入力し、前記オーディオデータ識別装置により、入力データの真偽を識別させる識別ステップと、
前記識別ステップの結果データに基づいて、損失関数による損失評価データを取得する損失評価ステップと、
前記損失評価ステップで取得された前記損失評価データに基づいて、前記オーディオデータ生成装置の前記畳み込み処理部のパラメータおよび前記マルチストリーム生成部の前記学習可能な機能部のパラメータを更新する生成器パラメータ更新ステップと、
前記損失評価ステップで取得された前記損失評価データに基づいて、前記オーディオデータ識別装置の前記大局特徴識別器の前記学習可能な機能部のパラメータを更新するとともに、前記オーディオデータ識別装置の前記詳細特徴識別器の前記学習可能な機能部のパラメータを更新する識別器パラメータ更新ステップと、
を備えるオーディオデータ生成装置の敵対的学習方法。
【請求項5】
請求項1から3のいずれかに記載のオーディオデータ生成装置の学習方法であって、
前記オーディオデータ生成装置に入力されるメルスペクトログラムに対応するオーディオデータと、前記オーディオデータ生成装置において、入力されたメルスペクトログラムから生成された生成オーディオデータとの損失を、短期間フーリエ変換損失関数により評価するSTFT損失評価ステップと、
前記STFT損失評価ステップでの評価結果に基づいて、前記オーディオデータ生成装置の前記畳み込み処理部のパラメータおよび前記マルチストリーム生成部の前記学習可能な機能部のパラメータを更新する生成器パラメータ更新ステップと、
を備えるオーディオデータ生成装置の学習方法。
【請求項6】
テキストデータからメルスペクトラムデータを出力するオーディオ処理装置と、
請求項1から3のいずれかに記載のオーディオデータ生成装置と、
を備える音声合成処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オーディオデータ合成技術(例えば、音声合成技術)に関する。
【背景技術】
【0002】
近年、ニューラルネットワークを用いた音声合成技術は、進展を遂げ、自然音声とほぼ変わらない高品質な音声合成が可能になっている。多くのニューラルネットワークを用いた音声合成技術において、音声合成処理をリアルタイムに行うためには高速なGPU(Graphics Processing Unit)演算が必要である。しかし、実サービスとして普及させるためには、GPUを必要とせず、CPU(Central Processing Unit)のみで高速かつ高品質に音声合成可能な技術の実現が重要である。
【0003】
CPUを用いて高速かつ高品質なニューラルボコーダを実現する技術として、Multi-band MelGAN(非特許文献1を参照)とHiFi-GAN(非特許文献2を参照)がある。両者はともに、敵対的生成ネットワークに基づく方式であり、生成器と識別器とを同時に学習させる方式(敵対的学習型ニューラルボコーダ)である。生成器は、識別器を騙すように学習され、識別器は、学習に用いた音声波形を本物と判定し、生成器から生成された音声波形を偽物と判定するように学習される、つまり、識別器は、高精度に本物のデータと偽物のデータとを区別するように学習される。
【0004】
Multi-band MelGANの前身であるMelGAN(非特許文献3を参照)は、入力された音響特徴量を数段のアップサンプリング層と畳み込み層によって音声波形へと変換する生成器を用いる方式である。Multi-band MelGANでは、従来のMelGANを高速化するために、マルチレート信号処理に基づくサブバンド処理を用いてフル帯域の音声信号を複数のサブバンド信号(=マルチバンド信号)へと分割し、生成器は分割された複数の帯域の音声波形(サブバンド信号)を同時に生成し、生成したサブバンド信号に対してゼロ挿入型アップサンプリング処理を施した後、あらかじめ計算しておいた合成フィルタ(FIRフィルタ)により、ゼロ挿入型アップサンプリング処理後の信号から、フル帯域音声信号を生成する。この場合、識別器は、(1)マルチバンド信号の短時間フーリエ変換(STFT:Short-time Fourier Transform)振幅損失、(2)フル帯域信号のSTFT振幅損失、および、(3)識別器の識別結果である識別損失により学習される。これにより、Multi-band MelGANでは、最後のアップサンプリング処理(例えば、4分割したサブバンド信号を用いる場合、データ数を4倍にするアップサンプリング処理)が単純なゼロ挿入処理とFIRフィルタ処理へと簡略化される。その結果、Multi-band MelGANでは、MelGANの音声合成精度を維持しつつ、高速化を可能としている。
【0005】
一方、HiFi-GANは、MelGANと同様に、数段のアップサンプリング層と畳み込み層からなる生成器と、2種類の識別器とから構成される。最初の層のチャネル数が512の生成器をV1生成器と呼び、最初の層のチャネル数が128の生成器をV2生成器と呼ぶ。
【0006】
V1生成器は、高音質な音声合成処理が可能であり、かつ、複数のCPUコアを用いることによりリアルタイムで音声を生成(音声合成)することが可能である。V2生成器は、V1生成器ほど高精度な音声を生成(音声合成)することはできないが、1つのCPUコアでもリアルタイムファクター(1秒の音声を生成するのに要する時間)約0.1程度で高速な音声合成が可能である。
【0007】
HiFi-GANでは、Multi-period discriminatorとMulti-scale discriminatorという2つの識別器を導入することにより、音声波形の周期パターンおよび連続性、並びに、音声波形の長期依存性をそれぞれ高精度にモデル化できる。このため、HiFi-GANでは、洗練されたネットワーク(音声波形の多様な特徴(大局的特徴および局所的特徴)を考慮したモデル(ニューラルネットワーク))により、高速処理を可能とし、かつ、Multi-band MelGANよりも高品質な音声合成処理を実現できる。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】G. Yang, S. Yang, K. Liu, P. Fang, W. Chen, and L. Xie, "Multi-band MelGAN: Faster waveform generation for high-quality text-to-speech," in Proc. SLT, Jan. 2021, pp. 492-498.
【非特許文献2】J. Kong, J. Kim, and J. Bae, "HiFi-GAN: Generative adversarial networks for efficient and high fidelity speech synthesis," in Proc. NeurIPS, Dec. 2020, pp. 17022-17033.
【非特許文献3】K. Kumar, R. Kumar, T. de Boissiere, L. Gestin, W. Z. Teoh, J. Sotelo, A. de Bre bisson, Y. Bengio, and A. C Courville, "MelGAN: Generative adversarial networks for conditional waveform synthesis," in Proc. NeurIPS, Dec. 2019, pp. 14910- 14921.
【発明の概要】
【発明が解決しようとする課題】
【0009】
HiFi-GANは、高品質な音声を高速で生成(合成)することが可能であるが、音質と生成速度(音声合成処理速度)との間にはトレードオフの関係がある。すなわち、HiFi-GANのV1生成器(V1モデル)では、生成される音声は高品質であるが生成速度(音声合成処理速度)はそれほど速くはない。一方、V2生成器(V2モデル)では、生成速度(音声合成処理速度)はMulti-band MelGANと同様に高速であるが、生成される音声の品質(音質)はそれほど高くはなく、Multi-band MelGANと同程度である。
【0010】
高品質な音声合成処理を高速に実現するための単純な解決策として、マルチバンド生成アルゴリズムをHiFi-GANに導入する方式が考えられるため、予備実験において、この方式の検討を行った。しかしながら、マルチバンド生成アルゴリズムをHiFi-GANに導入する方式では、生成器の損失を下げることができず、うまく学習できないという問題があることが分かった。マルチバンド生成アルゴリズムをHiFi-GANに導入する方式において、生成器の損失を下げることができず、うまく学習できない理由は、HiFi-GANの2つの識別器は識別能力が非常に高いため、マルチバンドという制約が入った時点で偽物であると識別可能となるためである。Multi-band MelGANで用いられている、STFT振幅損失のみを用いた事前学習を用いたとしても、検討の結果、やはりうまく学習することはできないことが分かった。
【0011】
そこで本発明は、上記課題に鑑み、高速処理が可能なGPUを用いることなく、高品質なオーディオ生成処理(例えば、音声合成処理)を高速に実現するオーディオデータ生成装置を実現することを目的とする。
【課題を解決するための手段】
【0012】
上記課題を解決するための第1の発明は、マルチストリーム生成部と、アップサンプリング部と、畳み込み処理部と、を備えるオーディオデータ生成装置である。
【0013】
マルチストリーム生成部は、学習可能な機能部を含み、メルスペクトログラムデータから、複数のストリームデータを取得する。
【0014】
アップサンプリング部は、複数のストリームデータのそれぞれに対してアップサンプリング処理を行うことで、アップサンプリングマルチストリームデータを取得する。
【0015】
畳み込み処理部は、畳み込み処理を決定するためのパラメータについて学習可能であり、アップサンプリングマルチストリームデータに対して畳み込み処理を実行することで、オーディオ波形データを取得する。
【0016】
このオーディオデータ生成装置では、マルチストリーム生成部により複数のストリームデータ(例えば、4つのデータ駆動分解データ(オーディオ波形データ))を取得する構成を有し、さらに、学習可能な畳み込み処理部3を導入したことにより、高精度なオーディオデータ識別装置との敵対的学習が可能となる。そして、当該敵対的学習により取得されたオーディオデータ生成装置により、高速かつ高精度なオーディオデータ生成処理を行うことができる。さらに、このオーディオデータ生成装置は、シンプルな構成を有しているので、高速処理が可能なGPUを用いることなく、高品質なオーディオデータ生成処理(例えば、音声合成処理)を高速に実現することができる。
【0017】
第2の発明は、第1の発明であって、畳み込み処理部は、バイアスなしの畳み込み処理を行う。
【0018】
これにより、このオーディオデータ生成装置では、畳み込み処理部の構成がFIRフィルタの構成と同様の構成とすることができる。
【0019】
第3の発明は、第1または第2の発明であって、アップサンプリング部は、ゼロ挿入型アップサンプリング処理を行う。
【0020】
これにより、このオーディオデータ生成装置では、シンプルな構成によりアップサンプリング処理を実行できるため、高速処理が可能となる。
【0021】
第4の発明は、第1から第3のいずれかの発明であるオーディオデータ生成装置と、
学習可能な機能部を含み、オーディオデータの大局特徴に基づいて、オーディオデータの真偽を識別する大局特徴識別器と、
学習可能な機能部を含み、オーディオデータの詳細特徴に基づいて、オーディオデータの真偽を識別する詳細特徴識別器と、
を備えるオーディオデータ識別装置とを用いて実行されるオーディオデータ生成装置の敵対的学習方法である。オーディオデータ生成装置の敵対的学習方法は、識別ステップと、損失評価ステップと、生成器パラメータ更新ステップと、識別器パラメータ更新ステップと、を備える。
【0022】
識別ステップは、オーディオデータ生成装置により生成されたオーディオデータ、または、当該オーディオデータの正解データをオーディオデータ識別装置に入力し、オーディオデータ識別装置により、入力データの真偽を識別させる。
【0023】
損失評価ステップは、識別ステップの結果データに基づいて、損失関数による損失評価データを取得する。
【0024】
生成器パラメータ更新ステップは、損失評価ステップで取得された損失評価データに基づいて、オーディオデータ生成装置の畳み込み処理部のパラメータおよびマルチストリーム生成部の学習可能な機能部のパラメータを更新する。
【0025】
識別器パラメータ更新ステップは、損失評価ステップで取得された損失評価データに基づいて、オーディオデータ識別装置の大局特徴識別器の学習可能な機能部のパラメータを更新するとともに、オーディオデータ識別装置の詳細特徴識別器の学習可能な機能部のパラメータを更新する。
【0026】
このオーディオデータ生成装置の敵対的学習方法では、大局特徴識別器と、詳細特徴識別器と、を備え、強力な識別能力を有するオーディオデータ識別装置を用いて、敵対的学習を行うので、学習処理後のオーディオデータ生成装置では、高精度なオーディオデータを生成することが可能となる。また、このオーディオデータ生成装置の敵対的学習方法では、オーディオデータ生成装置が、複数のストリームを生成するマルチストリーム生成部と、アップサンプリング後のデータに対して学習可能な畳み込み処理部とを備えているので、強力な識別能力を有するオーディオデータ識別装置を用いて、敵対的学習を行う場合であっても、効率的に学習が進み、確実に収束させることができる。
【0027】
第5の発明は、第1から第3のいずれかの発明であるオーディオデータ生成装置の学習方法であって、STFT損失評価ステップと、生成器パラメータ更新ステップと、を備える。
【0028】
STFT損失評価ステップは、オーディオデータ生成装置に入力されるメルスペクトログラムに対応するオーディオデータと、オーディオデータ生成装置において、入力されたメルスペクトログラムから生成された生成オーディオデータとの損失を、短期間フーリエ変換損失関数により評価する。
【0029】
生成器パラメータ更新ステップは、STFT損失評価ステップでの評価結果に基づいて、オーディオデータ生成装置の畳み込み処理部のパラメータおよびマルチストリーム生成部の学習可能な機能部のパラメータを更新する。
【0030】
これにより、このオーディオデータ生成装置の学習方法では、短期間フーリエ変換損失関数を用いた評価値(損失値)により、オーディオデータ生成装置の学習処理を行うことができる。また、例えば、このオーディオデータ生成装置の学習方法による学習処理を、オーディオデータ生成装置のオーディオデータ識別装置を用いた敵対的学習の事前学習として採用するようにしてもよい。
【0031】
第6の発明は、テキストデータからメルスペクトラムデータを出力するオーディオ処理装置と、第1から第3のいずれかの発明であるオーディオデータ生成装置と、を備える音声合成処理システムである。
【0032】
この音声合成処理システムでは、高速なGPUを用いることなくCPUを用いて、メルスペクトログラムから音声波形データを生成できるオーディオデータ生成装置を用いているので、高速なGPUを用いることなくCPUを用いて、高速、高精度な音声合成処理を行うことができる。
【発明の効果】
【0033】
本発明によれば、高速処理が可能なGPUを用いることなく、高品質なオーディオ生成処理(例えば、音声合成処理)を高速に実現するオーディオデータ生成装置を実現することができる。
【図面の簡単な説明】
【0034】
【
図1】第1実施形態に係るオーディオデータ処理システム1000の概略構成図。
【
図2】第1実施形態に係るオーディオデータ処理システム1000のオーディオデータ生成装置100のマルチストリーム生成部1の概略構成図。
【
図3】第1実施形態に係るオーディオデータ生成装置100のマルチストリーム生成部1の第1MRF処理部122の概略構成図。
【
図4】第1実施形態に係る第1MRF処理部122の残差ブロック群1221の構成要素(ResBlock[n])の概略構成図。
【
図5】第1実施形態に係るオーディオデータ識別装置Dev_Dの大局特徴識別部DD1の概略構成図。
【
図6】第1実施形態に係るオーディオデータ識別装置Dev_Dの詳細特徴識別部DD2の概略構成図。
【
図7】オーディオデータ処理システム1000で実行される学習処理のフローチャート。
【発明を実施するための形態】
【0035】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下説明する。
【0036】
<1.1:オーディオデータ処理システムの構成>
図1は、第1実施形態に係るオーディオデータ処理システム1000の概略構成図である。
【0037】
図2は、第1実施形態に係るオーディオデータ処理システム1000のオーディオデータ生成装置100のマルチストリーム生成部1の概略構成図である。
【0038】
図3は、第1実施形態に係るオーディオデータ生成装置100のマルチストリーム生成部1の第1MRF処理部122の概略構成図である。
【0039】
図4は、第1実施形態に係る第1MRF処理部122の残差ブロック群1221の構成要素(ResBlock[n])の概略構成図である。
【0040】
図5は、第1実施形態に係るオーディオデータ識別装置Dev_Dの大局特徴識別部DD1の概略構成図である。
【0041】
図6は、第1実施形態に係るオーディオデータ識別装置Dev_Dの詳細特徴識別部DD2の概略構成図である。
【0042】
オーディオデータ処理システム1000は、
図1に示すように、オーディオデータ生成装置100と、生成データ評価部G_Evと、セレクタSEL1と、オーディオデータ識別装置Dev_Dと、識別データ評価部D_Evと、更新データ選択処理部G_updとを備える。
【0043】
(1.1.1:オーディオデータ生成装置)
オーディオデータ生成装置100は、
図1に示すように、マルチストリーム生成部1と、アップサンプリング部2と、畳み込み処理部3とを備える。オーディオデータ生成装置100は、メルスペクトログラムのデータであるデータDinを入力とし、データDinに対して、オーディオデータ生成処理を実行し、オーディオ波形データDoutを取得(出力)する。
【0044】
マルチストリーム生成部1は、
図2に示すように、第1畳み込み処理部11と、MRF部12と、第1活性化処理部13と、第2畳み込み処理部14と、第2活性化処理部15とを備える。
【0045】
第1畳み込み処理部11は、メルスペクトログラムのデータであるデータDinを入力し、データDinに対して、1次元畳み込み処理(Conv1D処理)(データDin(メルスペクトラムデータを2次元データとみなして、1次元畳み込み処理))を実行する。そして、第1畳み込み処理部11は、1次元畳み込み処理(Conv1D処理)後のデータをデータD11としてMRF部に出力する。なお、第1畳み込み処理部11で実行される1次元畳み込み処理(Conv1D処理)は、例えば、カーネルサイズを「7」(7サンプルに相当)とし、チャネル数を「512」として実行される。
【0046】
MRF部12は、
図2に示すように、第1アップサンプリング部121と、第1MRF処理部122と、第2アップサンプリング部123と、第2MRF処理部124とを備える。
【0047】
第1アップサンプリング部121は、第1畳み込み処理部11から出力されるデータD11を入力し、データD11に対してアップサンプリング処理を行う。第1アップサンプリング部121は、アップサンプリング処理後のデータをデータD12として第1MRF処理部122に出力する。なお、第1アップサンプリング部121で実行されるアップサンプリング処理は、例えば、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数を「256」として実行される。アップサンプリング処理の方式としては、例えば、以下のものを採用するようにすればよい。
(1)サブピクセル畳み込み処理によるアップサンプリング処理
例えば、カーネルサイズを「3」として、1次元畳み込み処理(Conv1D処理)を実行し、その後、リシェイプ(Reshape)処理を行うことでアップサンプリング処理を実現する。なお、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数が「256」となるように、1次元畳み込み処理(Conv1D処理)のチャネル数、および、リシェイプ(Reshape)処理の長さ(Length)、チャネル数を調整すればよい。
(2)転置畳み込み処理(Transposed Convolution)によるアップサンプリング処理
例えば、n×1のカーネルを用いて、ストライドをn/2とした転置畳み込み処理(Transposed Convolution)を行うことでアップサンプリング処理を実現する。なお、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数が「256」となるように、転置畳み込み処理のカーネルサイズを決定するnおよびチャネル数を調整すればよい。
(3)インターポーレートおよび1次元畳み込み処理(Conv1D処理)によるサンプリング処理
例えば、インターポーレート処理(例えば、隣接するサンプルを内挿する処理)を行い、さらに、1次元畳み込み処理(Conv1D処理)を実行することで、アップサンプリング処理を実現する。なお、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数が「256」となるように、インターポーレート処理の内挿するサンプル数、および、1次元畳み込み処理(Conv1D処理)のカーネルサイズ、チャネル数を調整すればよい。
【0048】
第1MRF処理部122は、例えば、
図3に示すように、残差ブロック群1221と、加算部1222とを備える。
【0049】
残差ブロック群1221は、
図3に示すように、それぞれ、第1アップサンプリング部121から出力されるデータD12を入力する複数の残差ブロックResBlock[1]~ResBlock[|k
r|]を備える。
【0050】
残差ブロックResBlock[n](1≦n≦|k
r|)(|k
r|は、配列k
rの要素数(配列数)を表す)は、
図4に示すように、ブロックBL1を複数個(|Dr[n]|個)連続して接続した構成を有している。
【0051】
ブロックBL1は、複数個(|Dr[n,m]|個)連続して接続したブロックBL2と、データD12と最終段のブロックBL2の出力とを加算する加算器Add1とを備える。
【0052】
ブロックBL2は、
図4に示すように、活性化処理部BL21と、畳み込み処理部BL22とを備える。
【0053】
活性化処理部BL21は、Leaky ReLU関数による活性化処理を行う機能部である(
図4で「Leaky ReLU」で示した機能部)。
【0054】
畳み込み処理部BL2は、k
r[n]×1のカーネルによる畳み込み処理を行う機能部(
図4で「k
r[n]×1 Conv」で示した機能部)である。なお、畳み込み処理部BL2は、ダイレーション(dilation)をDr[n,m,L]として、k
r[n]×1のカーネルにより、前段の活性化処理部BL21からの出力データに対して畳み込み処理を行う。
【0055】
例えば、kr、Drを以下のように設定した場合について、説明する。
kr=[k1,k2,k3]
Dr=[[[a1,a2],[b1,b2],[c1,c2]],
[[d1,d2],[e1,e2],[f1,f2]]]
上記の場合、|kr|=3であり、|Dr[n,m]|=3である。
【0056】
また、上記の場合、Dr[n,m,L]について、Dr[1,1,1]=a1、Dr[1,1,2]=a2、Dr[1,1,2]=b1、Dr[1,2,2]=b2、・・・、Dr[2,3,1]=f1、Dr[2,3,2]=f2である。
【0057】
残差ブロックResBlock[n]は、上記構成により、処理した結果データをデータD12_out[n]として、加算部1222に出力する。
【0058】
加算部1222は、残差ブロック群1221の各ブロックからの出力データD12_out[1]~D12_out[|kr|]を加算し、加算結果データをデータD13として、第2アップサンプリング部123に出力する。
【0059】
第2アップサンプリング部123は、第1MRF処理部122から出力されるデータD13を入力し、データD13に対してアップサンプリング処理を行う。第2アップサンプリング部123は、アップサンプリング処理後のデータをデータD14として第2MRF処理部124に出力する。なお、第2アップサンプリング部123で実行されるアップサンプリング処理は、例えば、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数を「128」として実行される。アップサンプリング処理の方式としては、第1アップサンプリング部と同様に、
(1)サブピクセル畳み込み処理によるアップサンプリング処理
(2)転置畳み込み処理(Transposed Convolution)によるアップサンプリング処理
(3)インターポーレートおよび1次元畳み込み処理(Conv1D処理)によるサンプリング処理
のいずれかを採用すればよい。
【0060】
第2MRF処理部124は、第1MRF処理部と同様の構成を有しており、第2アップサンプリング部123から出力されるデータD14に対して、第1MRF処理部と同様の処理(なお、kr、Drの設定値は、第1MRF処理部の設定値と異なるものであってもよい)を行う。そして、第2MRF処理部124は、第2MRF処理部124での処理後のデータをデータD15として第1活性化処理部13に出力する。
【0061】
第1活性化処理部13は、MRF部12の第2MRF処理部124から出力されるデータD15を入力し、当該データD15に対して、Leaky ReLU関数による活性化処理を行う。そして、第1活性化処理部13は、活性化処理後のデータをデータD16として、第2畳み込み処理部14に出力する。
【0062】
第2畳み込み処理部14は、第1活性化処理部13から出力されるデータD16を入力し、当該データD16に対して、1次元畳み込み処理(Conv1D処理)を実行する。そして、第2畳み込み処理部14は、1次元畳み込み処理(Conv1D処理)後のデータをデータD17として第2活性化処理部15に出力する。なお、第2畳み込み処理部14で実行される1次元畳み込み処理(Conv1D処理)は、例えば、カーネルサイズを「7」(7サンプルに相当)とし、チャネル数を「4」として実行される。
【0063】
第2活性化処理部15は、第2畳み込み処理部14から出力されるデータD17を入力し、当該データD17に対して、tanh関数による活性化処理を行う。そして、第2活性化処理部15は、活性化処理後のデータをデータD1として、アップサンプリング部2に出力する。なお、データD1は、第2畳み込み処理部14のチャネル数が「4」である場合、第2畳み込み処理部14から出力される4つのオーディオ波形データのそれぞれに対して第2活性化処理部15による活性化処理を施したオーディオ波形データ(4つのオーディオ波形データ)、すなわち、マルチストリームデータ(複数のオーディオ波形データ)となる。
【0064】
なお、マルチストリーム生成部1は、学習時において、畳み込み処理部3から出力されるパラメータ更新データupdate(θg_ms)(マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータθg_msのパラメータ更新データ)を入力し、当該データupdate(θg_ms)に基づいて、マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータθg_cnvの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0065】
また、マルチストリーム生成部1のMRF部の構成(例えば、第1MRF処理部122、第2MRF処理部124等の構成)については、例えば、非特許文献2に開示されている技術により実現するようにしてもよい。
【0066】
アップサンプリング部2は、マルチストリーム生成部1の第2活性化処理部15から出力されるデータD1(マルチストリームデータ(複数のオーディオ波形データ))を入力し、当該データD1に対して、例えば、ゼロ挿入型のアップサンプリング処理を行う。そして、アップサンプリング処理は、アップサンプリング処理後のデータをデータD2(アップサンプリング処理後のマルチストリームデータ(複数のオーディオ波形データ))として、畳み込み処理部3に出力する。
【0067】
畳み込み処理部3は、アップサンプリング部2から出力されるデータD2を入力し、当該データD2に対して、1次元畳み込み処理(Conv1D処理(バイアスなし))を実行する。そして、畳み込み処理部3は、1次元畳み込み処理(Conv1D処理)後のデータをデータDoutとして生成データ評価部、およびセレクタSEL1に出力する。
【0068】
なお、畳み込み処理部3で実行される1次元畳み込み処理(Conv1D処理(バイアスなし))は、例えば、カーネルサイズを「63」(63サンプルに相当)とし、チャネル数を「1」として実行される。つまり、畳み込み処理部3に入力されたデータD2(マルチストリームデータ(例えば、4つのオーディオ波形データ))が、畳み込み処理部3による1次元畳み込み処理(Conv1D処理(バイアスなし))により、合成され、1つのオーディオ波形データとして取得(生成)される。
【0069】
なお、畳み込み処理部3は、学習時において、更新データ選択処理部G_updから出力されるデータupdate(θg_cnv)(畳み込み処理部3の畳み込み層のパラメータθg_cnvのパラメータ更新データ)を入力し、当該データupdate(θg_cnv)に基づいて、畳み込み処理部3の畳み込み層のパラメータθg_cnvの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0070】
また、畳み込み処理部3は、上記更新処理を行った後、マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータを更新するためのパラメータ更新データupdate(θg_ms)を生成し、当該パラメータ更新データupdate(θg_ms)をマルチストリーム生成部1出力する。
【0071】
(1.1.2:生成データ評価部G_Ev)
生成データ評価部G_Evは、オーディオデータ生成装置100から出力されるデータDoutと、当該データDoutを生成するために使用したオーディオデータ生成装置100の入力データDin(メルスペクトログラムのデータ)に対応するオーディオ波形データD_correct(正解データ)とを入力する。生成データ評価部G_Evは、データDoutおよびデータD_correct(正解データ)に対して、STFT損失(STFT:short-time Fourier transform)を評価する評価関数(損失関数)を用いて、両者の誤差(損失)を評価する。そして、生成データ評価部G_Evは、STFT損失の評価関数の出力(結果)に基づいて、オーディオデータ生成装置100の学習可能な機能部(学習可能な畳み込み層等)のパラメータθgを更新するためのデータであるパラメータ更新データpre_update(θg)を生成し、当該パラメータ更新データpre_update(θg)を更新データ選択処理部G_updに出力する。
【0072】
(1.1.3:セレクタSEL1)
セレクタSEL1は、2入力1出力の切替器であり、オーディオデータ生成装置100にから出力されるデータDout(オーディオデータ生成装置100により生成されたデータDout(合成データ(偽のデータ)))と、本物のデータD_correct(例えば、データDoutを生成するために使用したオーディオデータ生成装置100の入力データDin(メルスペクトログラムのデータ)に対応するオーディオ波形データD_correct(正解データ))とを入力する。
【0073】
セレクタSEL1は、例えば、制御部(不図示)から出力される選択信号sel1に従い、データDout、および、データD_correctのうちいずれか一方を選択し、選択したデータをデータDd1として、オーディオデータ識別装置Dev_Dに入力する。
【0074】
(1.1.4:オーディオデータ識別装置Dev_D)
オーディオデータ識別装置Dev_Dは、敵対的学習に使用する識別器であり、敵対的学習において、オーディオデータ生成装置100を生成器としたときの識別器である。オーディオデータ識別装置Dev_Dは、
図1に示すように、大局特徴識別部DD1と、詳細特徴識別部DD2とを備える。
【0075】
大局特徴識別部DD1は、
図5に示すように、複数の識別器MSD[k](
図5では、識別器MSD[1]~MSD[3])(MSD:Multi-scale Descriminator)を備える。なお、説明便宜のため、識別器MSD[k]が3個の場合について、以下説明するが、識別器MSD[k]の数は、3個に限定されることはなく、他の数であってもよい。
【0076】
第1の識別器MSD[1]は、
図5に示すように、データDd1をそのまま識別部に入力する。識別部は、例えば、
図5に示すように、畳み込み層MS1と、ダウンサンプリング層MS2(例えば、ダウンサンプリング層を4個連続して接続した構成)と、畳み込み層MS3と、畳み込み層MS4とを備える。そして、最終段の畳み込み層MS4から、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD1_MSD_out[1]が出力される。
【0077】
第2の識別器MSD[2]は、
図5に示すように、平均プーリング層と、識別部とを備える。
【0078】
平均プーリング層は、Dd1の隣接する(時系列に隣接する)2つのサンプルの値を平均した値を出力データとする平均プーリング処理を行う。
【0079】
そして、平均プーリング層の出力は、第2の識別器MSD[2]の識別部に入力される。
【0080】
第2の識別器MSD[2]の識別部は、第1の識別器MSD[1]の識別部と同様の構成を有している。第2の識別器MSD[2]の識別部は、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD1_MSD_out[2]を出力する。
【0081】
第3の識別器MSD[3]は、
図5に示すように、平均プーリング層と、識別部とを備える。
【0082】
平均プーリング層は、Dd1の隣接する(時系列に隣接する)4つのサンプルの値を平均した値を出力データとする平均プーリング処理を行う。
【0083】
そして、平均プーリング層の出力は、第3の識別器MSD[3]の識別部に入力される。
【0084】
第3の識別器MSD[3]の識別部は、第1の識別器MSD[1]の識別部と同様の構成を有している。第3の識別器MSD[3]の識別部は、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD1_MSD_out[3]を出力する。
【0085】
そして、大局特徴識別部DD1の複数の識別器MSD[k]の出力データ(データDD1_MSD_out[1]~DD1_MSD_out[3])は、識別データ評価部D_Evに出力される。
【0086】
なお、大局特徴識別部DD1の複数の識別器MSD[k]の出力データ(データDD1_MSD_out[1]~DD1_MSD_out[3])をまとめたデータをデータDd1_outと表記する。
【0087】
詳細特徴識別部DD2は、
図6に示すように、複数の識別器MPD[k](
図6では、識別器MPD[1]~MPD[M])(MPD:Multi-period Descriminator)(M:自然数)を備える。
【0088】
第kの識別器MPD[k](k:自然数、1≦k≦M)は、
図5に示すように、リシェイプ部と、識別部とを備える。
【0089】
リシェイプ部は、データDd1(1次元のデータ)を、周期p[k]ごと(p[k]個のサンプルごと)に区切り、2次元のデータ(データDd1のサンプル数をTとすると、p[k]×ceil(T/p[k])の2次元データ(ceil()は、天井関数))に変換する。そして、リシェイプ部は、処理後の2次元データを識別部に出力する。
【0090】
識別部は、リシェイプ部から出力される2次元データに対して、畳み込み処理を実行し、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD2_MPD_out[k]を取得する。
【0091】
識別部は、
図6に示すように、5×1の畳み込み層(ストライド:(3,1)、チャネル数:2^(5+L))と、活性化処理部(Leaky ReLU関数による活性化処理を行う機能部)とを備えるブロックを4個連続して接続した構成に、さらにその後段に、5×1の畳み込み層(チャネル数:1024)、活性化処理部(Leaky ReLU関数による活性化処理を行う機能部)、および、3×1の畳み込み層(チャネル数:1)を備える構成を有している。
【0092】
識別部は、上記構成による畳み込み処理、活性化処理を行うことで、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD2_MPD_out[k]を取得する。
【0093】
そして、詳細特徴識別部DD2の複数の識別器MPD[k]の出力データ(データDD2_MPD_out[1]~DD2_MPD_out[M])は、識別データ評価部D_Evに出力される。
【0094】
なお、詳細特徴識別部DD2の複数の識別器MPD[k]の出力データ(データDD2_MPD_out[1]~DD2_MPD_out[M])をまとめたデータをデータDd2_outと表記する。
【0095】
また、大局特徴識別部DD1(識別器MSD[k])、詳細特徴識別部DD2(識別器MPD[k])については、例えば、非特許文献2、および、非特許文献3に開示されている技術により実現するようにしてもよい。
【0096】
また、オーディオデータ識別装置Dev_Dは、学習時において、識別データ評価部D_Evから出力されるデータGAN_update(θd)(オーディオデータ識別装置Dev_Dの学習可能部(畳み込み層等)のパラメータθdのパラメータ更新データ)を入力し、当該データupdate(θd)に基づいて、オーディオデータ識別装置Dev_Dの学習可能部(畳み込み層等)のパラメータθg_dの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0097】
(1.1.5:識別データ評価部D_Ev)
識別データ評価部D_Evは、オーディオデータ識別装置Dev_Dから出力されるデータDd1_out、および、Dd2_outを入力し、生成器(オーディオデータ生成装置100に対応)用の損失関数、および、識別器(オーディオデータ識別装置Dev_Dに対応)用の損失関数を用いて、敵対的学習における損失評価を行う。
【0098】
そして、識別データ評価部D_Evは、上記の損失評価の結果に基づいて、オーディオデータ生成装置100の学習可能な機能部(学習可能な畳み込み層等)のパラメータθgを更新するためのデータであるパラメータ更新データGAN_update(θg)を生成し、当該パラメータ更新データGAN_update(θg)を更新データ選択処理部G_updに出力する。
【0099】
また、識別データ評価部D_Evは、上記の損失評価の結果に基づいて、オーディオデータ識別装置Dev_Dの学習可能な機能部(学習可能な畳み込み層等)のパラメータθdを更新するためのデータであるパラメータ更新データGAN_update(θd)を生成し、当該パラメータ更新データGAN_update(θd)をオーディオデータ識別装置Dev_Dに出力する。
【0100】
(1.1.6:更新データ選択処理部G_upd)
更新データ選択処理部G_updは、生成データ評価部G_Evから出力されるパラメータ更新データpre_update(θg)と、識別データ評価部D_Evから出力されるパラメータ更新データGAN_update(θg)とを入力する。
【0101】
そして、更新データ選択処理部G_updは、事前学習時は、パラメータ更新データpre_update(θg)を選択し、当該パラメータ更新データpre_update(θg)を、パラメータ更新データupdate(θg_cnv)として、オーディオデータ生成装置100の畳み込み処理部3に出力する。
【0102】
また、更新データ選択処理部G_updは、学習時(敵対的学習時)は、パラメータ更新データGAN_update(θg)を選択し、当該パラメータ更新データGAN_update(θg)を、パラメータ更新データupdate(θg_cnv)として、オーディオデータ生成装置100の畳み込み処理部3に出力する。
【0103】
<1.2:オーディオデータ処理システムの動作>
以上のように構成されたオーディオデータ処理システム1000の動作について以下説明する。以下では、オーディオデータ処理システム1000の動作を、(1)学習処理と、(2)推論処理(予測処理)とに分けて説明する。
【0104】
(1.2.1:学習処理)
図7は、オーディオデータ処理システム1000で実行される学習処理のフローチャートである。
【0105】
以下では、オーディオデータ処理システム1000で実行される学習処理について、フローチャートを参照しながら説明する。
【0106】
(ステップS1):
ステップS1では、オーディオデータ生成装置100の事前学習処理が実行される。具体的には、以下の処理が実行される。
【0107】
メルスペクトログラムのデータであるデータDinが、マルチストリーム生成部1の第1畳み込み処理部11に入力される。
【0108】
そして、第1畳み込み処理部11は、データDinに対して、1次元畳み込み処理(Conv1D処理)(データDin(メルスペクトラムデータを2次元データとみなして、1次元畳み込み処理))を実行し、1次元畳み込み処理(Conv1D処理)後のデータをデータD11としてMRF部に出力する。なお、第1畳み込み処理部11で実行される1次元畳み込み処理(Conv1D処理)は、例えば、カーネルサイズを「7」(7サンプルに相当)とし、チャネル数を「512」として実行される。
【0109】
第1アップサンプリング部121は、第1畳み込み処理部11から出力されるデータD11を入力し、データD11に対してアップサンプリング処理を行う。第1アップサンプリング部121は、アップサンプリング処理後のデータをデータD12として第1MRF処理部122に出力する。なお、第1アップサンプリング部121で実行されるアップサンプリング処理は、例えば、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数を「256」として実行される。アップサンプリング処理の方式としては、例えば、サブピクセル畳み込み処理によるアップサンプリング処理を採用する。つまり、第1アップサンプリング部121は、例えば、カーネルサイズを「3」として、1次元畳み込み処理(Conv1D処理)を実行し、その後、リシェイプ(Reshape)処理を行うことでアップサンプリング処理を実現する。なお、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数が「256」となるように、1次元畳み込み処理(Conv1D処理)のチャネル数、および、リシェイプ(Reshape)処理の長さ(Length)、チャネル数を調整すればよい。
【0110】
そして、第1アップサンプリング部121での処理により取得されたデータD12は、第1MRF処理部122に出力される。
【0111】
第1MRF処理部122では、データD12に対して、MRF処理が実行される。具体的には、以下の処理が実行される。
【0112】
データD12は、残差ブロック群1221の残差ブロックResBlock[n](1≦n≦|k
r|)(|k
r|は、配列k
rの要素数(配列数)を表す)(
図4のように構成されたブロック)に入力され、ブロックBL2において、活性化処理部BL21によるLeaky ReLU関数による活性化処理、および、ブロックBL22によるk
r[n]×1のカーネルによる畳み込み処理を、複数回(|Dr[n,m]|回)実行され、当該処理後のデータが加算器Add1にて、データD12と加算される(ブロックBL1の処理)。
【0113】
そして、上記のブロックBLの処理が複数回(|Dr[n]|回)実行される。そして、当該処理後のデータがデータD12_out[n]として、加算部1222に出力される。
【0114】
加算部1222は、残差ブロック群1221の各ブロックからの出力データD12_out[1]~D12_out[|kr|]を加算し、加算結果データをデータD13として、第2アップサンプリング部123に出力する。
【0115】
このように、第1MRF処理部122では、多様な受容野に相当するカーネルを用いて、残差ブロックにより畳み込み処理が実行され、当該処理結果のデータが加算部1222で統合されるため、加算部1222から出力されるデータD13は、多様な受容野に相当するカーネルを用いて抽出した特徴を含むデータとして取得されることになる。
【0116】
そして、第1MRF処理部122での処理により取得されたデータD13は、第2アップサンプリング部123に出力される。
【0117】
第2アップサンプリング部123は、第1MRF処理部122から出力されるデータD13に対してアップサンプリング処理を行う。第2アップサンプリング部123で実行されるアップサンプリング処理は、例えば、入力データのサンプル数を8倍(×8)のサンプル数にし、チャネル数を「128」として実行される。アップサンプリング処理の方式としては、第1アップサンプリング部と同様に、例えば、サブピクセル畳み込み処理によるアップサンプリング処理を採用する。
【0118】
そして、第2アップサンプリング部123での処理により取得されたデータD14は、第2MRF処理部124に出力される。
【0119】
第2MRF処理部124は、第1MRF処理部と同様の構成を有しており、第2アップサンプリング部123から出力されるデータD14に対して、第1MRF処理部と同様の処理(なお、kr、Drの設定値は、第1MRF処理部の設定値と異なるものであってもよい)を行う。そして、第2MRF処理部124は、第2MRF処理部124での処理後のデータをデータD15として第1活性化処理部13に出力する。
【0120】
第1活性化処理部13は、MRF部12の第2MRF処理部124から出力されるデータD15に対して、Leaky ReLU関数による活性化処理を行う。そして、第1活性化処理部13は、活性化処理後のデータをデータD16として、第2畳み込み処理部14に出力する。
【0121】
第2畳み込み処理部14は、第1活性化処理部13から出力されるデータD16に対して、1次元畳み込み処理(Conv1D処理)を実行する。そして、第2畳み込み処理部14は、1次元畳み込み処理(Conv1D処理)後のデータをデータD17として第2活性化処理部15に出力する。なお、第2畳み込み処理部14で実行される1次元畳み込み処理(Conv1D処理)は、例えば、カーネルサイズを「7」(7サンプルに相当)とし、チャネル数を「4」として実行される。
【0122】
第2活性化処理部15は、第2畳み込み処理部14から出力されるデータD17に対して、tanh関数による活性化処理を行う。そして、第2活性化処理部15は、活性化処理後のデータをデータD1として、アップサンプリング部2に出力する。なお、データD1は、第2畳み込み処理部14のチャネル数が「4」である場合、第2畳み込み処理部14から出力される4つのオーディオ波形データのそれぞれに対して第2活性化処理部15による活性化処理を施したオーディオ波形データ(4つのオーディオ波形データ)、すなわち、マルチストリームデータ(複数のオーディオ波形データ)となる。
【0123】
そして、第2活性化処理部15での処理により取得されたデータD1は、マルチストリーム生成部1からアップサンプリング部2に出力される。
【0124】
アップサンプリング部2は、マルチストリーム生成部1の第2活性化処理部15から出力されるデータD1(マルチストリームデータ(複数のオーディオ波形データ))に対して、例えば、ゼロ挿入型のアップサンプリング処理を行う。そして、アップサンプリング処理は、アップサンプリング処理後のデータをデータD2(アップサンプリング処理後のマルチストリームデータ(複数のオーディオ波形データ))として、畳み込み処理部3に出力する。
【0125】
畳み込み処理部3は、アップサンプリング部2から出力されるデータD2に対して、1次元畳み込み処理(Conv1D処理(バイアスなし))を実行する。そして、畳み込み処理部3は、1次元畳み込み処理(Conv1D処理)後のデータをデータDoutとして生成データ評価部、およびセレクタSEL1に出力する。
【0126】
なお、畳み込み処理部3で実行される1次元畳み込み処理(Conv1D処理(バイアスなし))は、例えば、カーネルサイズを「63」(63サンプルに相当)とし、チャネル数を「1」として実行される。つまり、畳み込み処理部3に入力されたデータD2(マルチストリームデータ(例えば、4つのオーディオ波形データ))が、畳み込み処理部3による1次元畳み込み処理(Conv1D処理(バイアスなし))により、合成され、1つのオーディオ波形データとして取得(生成)される。
【0127】
そして、オーディオデータ生成装置100により、上記処理を実行することで取得されたデータDoutは、生成データ評価部G_Evに出力される。
【0128】
生成データ評価部G_Evは、オーディオデータ生成装置100から出力されるデータDoutと、当該データDoutを生成するために使用したオーディオデータ生成装置100の入力データDin(メルスペクトログラムのデータ)に対応するオーディオ波形データD_correct(正解データ)とを入力する。生成データ評価部G_Evは、データDoutおよびデータD_correct(正解データ)に対して、STFT損失(STFT:short-time Fourier transform)を評価する評価関数(損失関数)を用いて、両者の誤差(損失)を評価する。
【0129】
具体的には、生成データ評価部G_Evは、以下のSTFT損失関数を使用して、損失を評価する。
【0130】
1つのSTFTの取得期間(FFTをかける期間)の損失関数L
sc、L
mgを以下のように定義する。
【数1】
x:本物のオーディオ波形データ(正解データ)
x_pred:生成(予測)したオーディオ波形データ(オーディオデータ生成装置100からの出力データDoutに相当)
|STFT(・)|:STFTの振幅(Magnitudes)を取得する関数
||・||
F:フロベニウスノルム
【数2】
x:本物のオーディオ波形データ(正解データ)
x_pred:生成(予測)したオーディオ波形データ(オーディオデータ生成装置100からの出力データDoutに相当)
|STFT(・)|:STFTの振幅(Magnitudes)を取得する関数
||・||
1:L1-ノルム
N:要素数(STFTの振幅データを取得した要素数(サンプル数))
そして、生成器G(オーディオデータ生成装置100に相当)のM個のSTFTの取得期間(FFTをかける期間)分の損失関数L
mr_stftを以下のように定義する。
【数3】
E
x,xpred[・]:x、x
predについての期待値
生成データ評価部G_Evは、オーディオデータ生成装置100から出力されるデータDoutと、当該データDoutを生成するために使用したオーディオデータ生成装置100の入力データDin(メルスペクトログラムのデータ)に対応するオーディオ波形データD_correct(正解データ)とを用いて、損失関数L
mr_stftによりSTFT評価値(STFT損失値)を取得する(上記数式に相当する処理を実行して取得する)。そして、生成データ評価部G_Evは、取得したSTFT評価値(STFT損失値)に基づいて、オーディオデータ生成装置100の学習可能な機能部(学習可能な畳み込み層等)のパラメータθ
gを更新するためのデータであるパラメータ更新データpre_update(θ
g)を生成し、当該パラメータ更新データpre_update(θ
g)を更新データ選択処理部G_updに出力する。
【0131】
更新データ選択処理部G_updは、オーディオデータ生成装置100の事前学習時において、パラメータ更新データpre_update(θg)を選択し、当該パラメータ更新データpre_update(θg)を、パラメータ更新データupdate(θg_cnv)として、オーディオデータ生成装置100の畳み込み処理部3に出力する。
【0132】
畳み込み処理部3は、事前学習時において、更新データ選択処理部G_updから出力されるデータupdate(θg_cnv)(畳み込み処理部3の畳み込み層のパラメータθg_cnvのパラメータ更新データ)を入力し、当該データupdate(θg_cnv)に基づいて、畳み込み処理部3の畳み込み層のパラメータθg_cnvの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0133】
また、畳み込み処理部3は、上記更新処理を行った後、マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータを更新するためのパラメータ更新データupdate(θg_ms)を生成し、当該パラメータ更新データupdate(θg_ms)をマルチストリーム生成部1出力する。
【0134】
マルチストリーム生成部1は、事前学習時において、畳み込み処理部3から出力されるパラメータ更新データupdate(θg_ms)(マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータθg_msのパラメータ更新データ)を入力し、当該データupdate(θg_ms)に基づいて、マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータθg_cnvの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0135】
そして、オーディオデータ処理システム1000において、上記処理を繰り返し実行し(入力データDinを変更しながら上記処理を繰り返し実行し)、生成データ評価部G_Evにより取得されるSTFT評価値(STFT損失値)が、(1)所定の範囲内となったら、あるいは、(2)所定の値以上変動しなくなったら、事前学習処理が収束したと判断する。
【0136】
そして、上記事前学習処理が収束したと判断されたときのパラメータがオーディオデータ生成装置100の畳み込み処理部3、および、マルチストリーム生成部1において設定される。
【0137】
(ステップS2):
ステップS2において、ループ処理(ループ1)(オーディオデータ生成装置100、および、オーディオデータ識別装置Dev_Dによる敵対的学習処理)が開始される。
【0138】
(ステップS3):
ステップS3において、オーディオデータ識別装置Dev_Dのパラメータ更新処理が実行される。具体的には、以下の処理が実行される。
【0139】
セレクタSEL1は、例えば、制御部(不図示)から出力される選択信号sel1に従い、データDout(オーディオデータ生成装置100により生成したデータ(偽物のデータ))を選択し、選択したデータをデータDd1として、オーディオデータ識別装置Dev_Dに入力する。
【0140】
大局特徴識別部DD1の第1の識別器MSD[1]は、
図5に示すように、データDd1をそのまま識別部に入力する。第1の識別器MSD[1]の識別部は、データDd1に対して畳み込み層MS1と、ダウンサンプリング層MS2(例えば、ダウンサンプリング層を4個連続して接続した構成)と、畳み込み層MS3と、畳み込み層MS4とによる処理を実行し、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD1_MSD_out[1]を識別データ評価部D_Evに出力する。
【0141】
大局特徴識別部DD1の第1の識別器MSD[1]以外の識別器についても、上記と同様の処理が実行され、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD1_MSD_out[k]が識別データ評価部D_Evに出力される。
【0142】
また、詳細特徴識別部DD2の第kの識別器MPD[k](k:自然数、1≦k≦M)は、
図5に示すように、データDd1を、第kの識別器MPD[k]のリシェイプ部に入力する。
【0143】
第kの識別器MPD[k]のリシェイプ部は、データDd1(1次元のデータ)を、周期p[k]ごと(p[k]個のサンプルごと)に区切り、2次元のデータ(データDd1のサンプル数をTとすると、p[k]×ceil(T/p[k])の2次元データ(ceil()は、天井関数))に変換する。例えば、p[k]=3とし、T=300とすると、第kの識別器MPD[k]のリシェイプ部は、データDd1(1次元のデータ)を、3×100の2次元データに変換する。
【0144】
そして、第kの識別器MPD[k]のリシェイプ部は、処理後の2次元データを、第kの識別器MPD[k]の識別部に出力する。
【0145】
第kの識別器MPD[k]の識別部は、リシェイプ部から出力される2次元データに対して、畳み込み処理を実行し、入力されたデータDd1の真偽(データDd1が本物のデータであるか(Real)、あるいは、オーディオ生成処理により生成された偽のデータであるか(Fake))を示す結果データDD2_MPD_out[k]を取得する。
【0146】
詳細特徴識別部DD2の複数の識別器MPD[1]~MPD[M]により取得された結果データDD2_MPD_out[1]~DD2_MPD_out[M]は、識別データ評価部D_Evに出力される。
【0147】
識別データ評価部D_Evは、オーディオデータ識別装置Dev_Dから出力されるデータDd1_out(DD1_MSD_out[1]~DD1_MSD_out[3])、および、Dd2_out(DD2_MPD_out[1]~DD2_MPD_out[M])を入力し、各識別器での結果データを、正しく判定できたか否かの情報も含めて、記憶保持する。
【0148】
次に、セレクタSEL1は、例えば、制御部(不図示)から出力される選択信号sel1に従い、本物のデータD_correct(例えば、データDoutを生成するために使用したオーディオデータ生成装置100の入力データDin(メルスペクトログラムのデータ)に対応するオーディオ波形データD_correct(正解データ)(本物ノデータ))を選択し、選択したデータをデータDd1として、オーディオデータ識別装置Dev_Dに入力する。そして、オーディオデータ識別装置Dev_Dにおいて、上記と同様の処理を行う。
【0149】
そして、上記と同様に、識別データ評価部D_Evは、オーディオデータ識別装置Dev_Dから出力されるデータDd1_out(DD1_MSD_out[1]~DD1_MSD_out[3])、および、Dd2_out(DD2_MPD_out[1]~DD2_MPD_out[M])を入力し、各識別器での結果データを記憶保持する。
【0150】
さらに、オーディオデータ識別装置Dev_Dに入力するデータを本物のデータ、偽物のデータに変更しながら、上記オーディオデータ識別装置Dev_Dでの処理を繰り返す。
【0151】
識別データ評価部D_Evは、各識別器での結果データが正しく識別する確率(本物のデータを本物と判定し、偽物のデータを偽物と判定する確率)を取得する。
【0152】
そして、この取得した確率を用いて、生成器(オーディオデータ生成装置100に相当)用の敵対的学習用損失関数、および、識別器(オーディオデータ識別装置Dev_Dに相当)の敵対的学習用損失関数により、生成器の損失、および、識別器の損失を評価し、その評価値により、オーディオデータ識別装置Dev_D(識別器)の学習可能な機能部のパラメータを更新し、また、オーディオデータ生成装置100の学習可能な機能部のパラメータを更新する。
【0153】
ここで、生成器(オーディオデータ生成装置100に相当)用の敵対的学習用損失関数、および、識別器(オーディオデータ識別装置Dev_Dに相当)の敵対的学習用損失関数について説明する。
【0154】
生成器Gとともに敵対的学習を行う識別器Dの損失関数L
Adv(D;G)、および、識別器Dとともに敵対的学習を行う生成器Gの損失関数L
Adv(G;D)を以下のように定義する。
【数4】
x:本物のオーディオ波形データ(正解データ)
s:入力条件(本物のオーディオ波形データ(正解データ)のメルスペクトログラム)
D(x):入力データxが正解データ(本物のデータ)である確率
G(s):入力条件(本物のオーディオ波形データ(正解データ)のメルスペクトログラム)sから生成器G(オーディオデータ生成装置100)が生成したデータ
また、生成器Gのメルスペクトログラムについての損失関数L
Mel(G)を以下のように定義する。
【数5】
φ(・):オーディオ波形データから、当該データに対応するメルスペクトログラムを取得する関数
また、識別器Dとともに敵対的学習を行う生成器Gの特徴データ(特徴マップ)に関する損失関数L
FM(G;D)を以下のように定義する。
【数6】
T:識別器の層の数
D
i:識別器のi番目の層の特徴データ(特徴マップ)
N
i:識別器のi番目の層の特徴データ(特徴マップ)の数
そして、K個の識別器を有する場合の生成器(オーディオデータ生成装置100に相当)の敵対的学習の損失関数L
Gを以下のように定義する。
【数7】
λ
fm:係数
λ
mel:係数
D
k:k番目の識別器
K:識別器の数
また、K個の識別器を有する識別器(オーディオデータ識別装置Dev_Dに相当)の敵対的学習の損失関数L
Dを以下のように定義する。
【数8】
なお、本実施形態の場合、1~3番目の識別器D
1~D
3は、MSD[1]~MSD[3]に対応し、4~4+M-1番目の識別器D
4~D
4+M-1は、MPD[1]~MPD[M]に対応する(K=M+3)。
【0155】
識別データ評価部D_Evは、各識別器での結果データが正しく識別する確率(本物のデータを本物と判定し、偽物のデータを偽物と判定する確率)を取得し、上記評価関数に相当する処理を行い、オーディオデータ生成装置100(生成器)の敵対的学習の損失関数LGと、オーディオデータ識別装置Dev_D(識別器)の敵対的学習の損失関数LDと、を取得する。
【0156】
そして、識別データ評価部D_Evは、上記の損失評価の結果(損失関数LD)に基づいて、オーディオデータ識別装置Dev_Dの学習可能な機能部(学習可能な畳み込み層等)のパラメータθdを更新するためのデータであるパラメータ更新データGAN_update(θd)を生成し、当該パラメータ更新データGAN_update(θd)をオーディオデータ識別装置Dev_Dに出力する。
【0157】
オーディオデータ識別装置Dev_Dは、学習時(敵対的学習時)において、識別データ評価部D_Evから出力されるデータGAN_update(θd)(オーディオデータ識別装置Dev_Dの学習可能部(畳み込み層等)のパラメータθdのパラメータ更新データ)を入力し、当該データupdate(θd)に基づいて、オーディオデータ識別装置Dev_Dの学習可能部(畳み込み層等)のパラメータθg_dの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0158】
(ステップS4):
ステップS3において、オーディオデータ生成装置100のパラメータ更新処理が実行される。具体的には、以下の処理が実行される。
【0159】
ステップS3と同様に、セレクタSEL1により、オーディオデータ識別装置Dev_Dに入力するデータを本物のデータ(データD_correct)、偽物のデータ(オーディオデータ生成装置100により生成されたデータDout)に変更しながら、ステップS3で実行した上記オーディオデータ識別装置Dev_Dの処理(ステップS3と同様の処理)を繰り返す。
【0160】
そして、ステップS3と同様に、識別データ評価部D_Evは、各識別器での結果データが正しく識別する確率(本物のデータを本物と判定し、偽物のデータを偽物と判定する確率)を取得する。
【0161】
そして、この取得した確率を用いて、生成器(オーディオデータ生成装置100に相当)用の敵対的学習用損失関数、および、識別器(オーディオデータ識別装置Dev_Dに相当)の敵対的学習用損失関数により、生成器の損失、および、識別器の損失を評価し、その評価値により、オーディオデータ生成装置100の学習可能な機能部のパラメータを更新する。
【0162】
具体的には、識別データ評価部D_Evは、K個の識別器を有する場合の生成器(オーディオデータ生成装置100に相当)の敵対的学習の損失関数LGにより取得される損失を小さくするように、オーディオデータ生成装置100の学習可能な機能部(学習可能な畳み込み層等)のパラメータθgを更新するためのデータであるパラメータ更新データGAN_update(θg)を生成し、当該パラメータ更新データGAN_update(θg)を更新データ選択処理部G_updに出力する。
【0163】
更新データ選択処理部G_updは、オーディオデータ生成装置100の学習時(敵対的学習時)において、パラメータ更新データGAN_update(θg)を選択し、当該パラメータ更新データGAN_update(θg)を、パラメータ更新データupdate(θg_cnv)として、オーディオデータ生成装置100の畳み込み処理部3に出力する。
【0164】
畳み込み処理部3は、学習時(敵対的学習時)において、更新データ選択処理部G_updから出力されるデータupdate(θg_cnv)(畳み込み処理部3の畳み込み層のパラメータθg_cnvのパラメータ更新データ)を入力し、当該データupdate(θg_cnv)に基づいて、畳み込み処理部3の畳み込み層のパラメータθg_cnvの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0165】
また、畳み込み処理部3は、上記更新処理を行った後、マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータを更新するためのパラメータ更新データupdate(θg_ms)を生成し、当該パラメータ更新データupdate(θg_ms)をマルチストリーム生成部1出力する。
【0166】
マルチストリーム生成部1は、学習時(敵対的学習時)において、畳み込み処理部3から出力されるパラメータ更新データupdate(θg_ms)(マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータθg_msのパラメータ更新データ)を入力し、当該データupdate(θg_ms)に基づいて、マルチストリーム生成部1(第2畳み込み部14、MRF部12、第1畳み込み処理部11)のパラメータθg_cnvの更新処理(損失が小さくなるようにパラメータ更新処理)を行う。
【0167】
(ステップS5):
ステップS5において、ループ処理(ループ1)の終了条件を満たしているか否かの判定を行い、終了条件を満たしていないと判定された場合、ステップS2~S4の処理を繰り返す。
【0168】
一方、ループ処理(ループ1)の終了条件を満たしていると判定された場合、学習処理を終了させる。なお、ループ処理(ループ1)の終了条件を満たしていると判定される場合は、敵対的学習が収束したと判断できる場合であり、例えば、以下のような場合である。
(1)識別データ評価部D_Evにより、生成器(オーディオデータ生成装置100に相当)の敵対的学習の損失関数LGの値が所定の範囲内に収束し、かつ、識別器(オーディオデータ識別装置Dev_Dに相当)の敵対的学習の損失関数LDの値が所定の範囲内に収束した場合。
(2)識別データ評価部D_Evにより、生成器(オーディオデータ生成装置100に相当)の敵対的学習の損失関数LGの値の変化量が所定の範囲内であり、かつ、識別器(オーディオデータ識別装置Dev_Dに相当)の敵対的学習の損失関数LDの値の変化量が所定の範囲内である場合。
【0169】
上記終了条件を満たす場合、オーディオデータ処理システム1000は、学習処理を終了させ、学習処理が終了したときのオーディオデータ生成装置100に設定されているパラメータ(学習可能な機能部に設定されているパラメータ)を最適パラメータとして、当該最適パラメータが設定されているオーディオデータ生成装置100を学習済みのオーディオデータ生成装置100として取得する。
【0170】
そして、学習済みのオーディオデータ生成装置100(最適パラメータが設定されているオーディオデータ生成装置100)に、所定のメルスペクトログラムのデータをデータDinとして入力し、学習済みのオーディオデータ生成装置100で処理することで、入力されたメルスペクトログラムに対応するオーディオ波形データDoutが取得される。
【0171】
学習済みのオーディオデータ生成装置100では、非常に高速なオーディオデータ生成処理が可能であり、かつ、非常に高精度なオーディオデータ(オーディオ波形データ)を生成することができる。
【0172】
学習済みのオーディオデータ生成装置100では、マルチストリーム生成部1により複数のストリームデータ(マルチストリームデータ、例えば、4つのデータ駆動分解データ(オーディオ波形データ))がデータD1として取得され、取得されたデータD1に対して、アップサンプリング部2によりゼロ挿入型アップサンプリング処理が施され、さらに、アップサンプリングされたデータ(例えば、4つのアップサンプリングされたデータ駆動分解データ(オーディオ波形データ))に対して畳み込み処理部3により畳み込み処理(Conv1D処理、バイアスなし)が実行される。つまり、学習済みのオーディオデータ生成装置100では、複数のストリームデータ(マルチストリームデータ)を取得するので、その構成がシンプルにでき、さらに、複数のストリームデータ(マルチストリームデータ)に対して、簡単な処理である、(1)アップサンプリング処理(ゼロ挿入型アップサンプリング処理後)、および、(2)畳み込み処理部3による畳み込み処理(複数のストリームデータに対して、FIRフィルタを施して、合成する処理と等価な処理)を行うだけで、オーディオ波形データを生成することができる。
【0173】
すなわち、学習済みのオーディオデータ生成装置100では、シンプルな構成による処理を行うので、高速処理が可能なGPUを用いることなく、CPUで処理することも可能となる。
【0174】
さらに、学習済みのオーディオデータ生成装置100では、大局特徴を識別する大局特徴識別部DD1と、詳細特徴を識別する詳細特徴識別部DD2とを備え、非常に強力な識別能力を有するオーディオデータ識別装置Dev_Dを用いた敵対的学習により、最適パラメータを取得しているので、非常に高精度なオーディオデータ(オーディオ波形データ)を生成することができる。
【0175】
なお、オーディオデータ生成装置100では、マルチストリーム生成部1により取得された複数のストリームデータをアップサンプリングし、畳み込み処理を行ったオーディオ波形データ(データDout)を用いて、オーディオデータ識別装置Dev_Dと敵対的学習を行うため、従来技術(Multi-band MelGAN)のように、サブバンド信号を用いなければならないという制約がなく、敵対的学習を効率良く進めることが可能である。
【0176】
以上のように、オーディオデータ生成装置100では、マルチストリーム生成部1により複数のストリームデータ(例えば、4つのデータ駆動分解データ(オーディオ波形データ))を取得する構成を有し、さらに、学習可能な畳み込み処理部3を導入したことにより、高精度なオーディオデータ識別装置Dev_Dとの敵対的学習が可能となる。そして、当該敵対的学習により取得されたオーディオデータ生成装置100により、高速かつ高精度なオーディオデータ生成処理を行うことができる。さらに、オーディオデータ生成装置100は、シンプルな構成を有しているので、高速処理が可能なGPUを用いることなく、高品質なオーディオデータ生成処理(例えば、音声合成処理)を高速に実現することができる。
【0177】
[他の実施形態]
上記実施形態では、オーディオデータ生成装置100において、HiFi-GANの構成をベースとしてマルチストリーム生成部1を構成する場合について説明したが、これに限定されることはなく、例えば、Multi-band MelGANの構成(アップサンプリング処理ブロック、残差(Rsidual)ブロックの構成)をベースとしてマルチストリーム生成部1を構成するようにしてもよい。
【0178】
また、上記実施形態において、敵対的学習に使用する損失関数として示した損失関数は、一例であり、他の損失関数を用いて、オーディオデータ処理システム1000において、敵対的学習を行うようにしてもよい。
【0179】
また、上記実施形態のオーディオデータ生成装置100(学習済みのオーディオデータ生成装置100)を、例えば、テキストデータからメルスペクトログラムを生成するオーディオデータ処理システムに接続し、音声合成システム(TTSシステム、TTS:Text-to-Speech)を実現するようにしてもよい。
【0180】
また上記実施形態で説明したオーディオデータ処理システム1000、オーディオデータ生成装置100、オーディオデータ識別装置Dev_Dにおいて、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部または全部を含むように1チップ化されても良い。
【0181】
なおここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0182】
また集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサーで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0183】
また上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0184】
また上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらにソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0185】
例えば上記実施形態の各機能部をソフトウェアにより実現する場合、
図8に示したハードウェア構成(例えばCPU、GPU、ROM、RAM、入力部、出力部、通信部、記憶部(例えば、HDD、SSD等により実現される記憶部)、外部メディア用ドライブ等をバスBusにより接続したハードウェア構成)を用いて各機能部をソフトウェア処理により実現するようにしてもよい。
【0186】
また上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、
図8に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【0187】
また上記実施形態(変形例を含む)における処理方法の実行順序は、必ずしも上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0188】
前述した方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここでコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0189】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限らず、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0190】
また、本明細書内の記載、特許請求の範囲の記載において、「最適化」とは、最も良い状態にすることをいい、システム(モデル)を「最適化」するパラメータとは、当該システムの目的関数の値が最適値となるときのパラメータのことをいう。「最適値」は、システムの目的関数の値が大きくなるほど、システムが良い状態となる場合は、最大値であり、システムの目的関数の値が小さくなるほど、システムが良い状態となる場合は、最小値である。また、「最適値」は、極値であってもよい。また、「最適値」は、所定の誤差(測定誤差、量子化誤差等)を許容するものであってもよく、所定の範囲(十分収束したとみなすことができる範囲)に含まれる値であってもよい。
【0191】
なお本発明の具体的な構成は、前述の実施形態(変形例を含む)に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0192】
1000 オーディオデータ処理システム
100 オーディオデータ生成装置
1 マルチストリーム生成部
2 アップサンプリング部
3 畳み込み処理部
Dev_D オーディオデータ識別装置
D_Ev 識別データ評価部
G_Ev 生成データ評価部