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

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

▶ 独立行政法人情報通信研究機構の特許一覧

特開2023-105505音声合成処理装置、学習方法、および、音響特徴量生成装置
<>
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図1
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図2
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図3
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図4
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図5
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図6
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図7
  • 特開-音声合成処理装置、学習方法、および、音響特徴量生成装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023105505
(43)【公開日】2023-07-31
(54)【発明の名称】音声合成処理装置、学習方法、および、音響特徴量生成装置
(51)【国際特許分類】
   G10L 13/10 20130101AFI20230724BHJP
【FI】
G10L13/10 111F
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022006374
(22)【出願日】2022-01-19
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100136319
【弁理士】
【氏名又は名称】北原 宏修
(72)【発明者】
【氏名】岡本 拓磨
(72)【発明者】
【氏名】戸田 智基
(72)【発明者】
【氏名】河井 恒
(57)【要約】      (修正有)
【課題】音素の弾性率を考慮しつつ、安定で高精度な話速変換が可能な音声合成処理を行う音声合成処理装置、その学習処理を行うための学習方法及び音響特徴量生成装置を提供する。
【解決手段】音声合成処理装置100は、学習処理時において、推定すべきアライメントされた目標の音素継続長に、ガウスノイズnを加算して損失を計算するノイズ付加処理部3Aを備える。推定される音素継続長の分散値を有限値とすることで、音素継続長の分散値が「0」となってしまい、音声合成処理時に、音素の弾性率を再現することができないという問題が発生しない。
【選択図】図1
【特許請求の範囲】
【請求項1】
テキストデータを構成する音素の系列データである音素系列データを入力し、当該音素系列データに対してエンコード処理を実行し、エンコード処理後のデータを出力するエンコーダと、
前記エンコーダから出力されるデータに対して畳み込み処理を実行することで第1データを取得し、前記第1データから、前記音素系列データに含まれる各音素の継続長を推定する処理を行う継続長推定処理部であって、前記第1データと、前記音素系列データに含まれる各音素の継続長のデータとを出力する前記継続長推定処理部と、
前記エンコーダから出力されるデータと、前記継続長推定処理部から出力されるデータとを用いて、デコード処理を実行することで、音響特徴量を取得するデコーダと、
前記デコーダからの音響特徴量に基づき音声波形を生成するボコーダと、
を備え、
前記継続長推定処理部は、
前記第1データから、前記音素系列データに含まれる各音素の継続長の推定平均値と推定分散値に相当するデータを取得する写像変換層と、
前記写像変換層により取得された音素継続長の推定分散値の範囲を規制する分散範囲規制処理を実行することで処理後のデータを範囲規制分散データとして取得する範囲規制処理部と、
前記写像変換層により取得された音素継続長の推定平均値のデータに対して活性化関数による処理を行い、処理後のデータを推定平均データとして取得する活性化処理部と、
前記範囲規制分散データと、前記推定平均データとに基づいて、推定音素継続長を取得する継続長取得部と、
を有し、
前記エンコーダ、前記継続長推定処理部、および、前記デコーダは、それぞれ、パラメータを更新することで学習可能である学習モデル、あるいは、当該学習モデルの学習済みモデルを搭載することが可能であり、
各音素の継続長の正解データにガウスノイズを付加したデータと、前記範囲規制分散データと、前記推定平均データとに基づいて、音素継続長についての損失を算出し、算出した当該損失に基づいて、前記エンコーダ、前記継続長推定処理部、および、前記デコーダのパラメータを更新することで、学習処理が実行され、当該学習処理により取得された学習済みモデルを搭載することができる、
音声合成処理装置。
【請求項2】
前記音素系列データは、K個(K:自然数)の音素である第1番目から第K番目の音素からなり、第k番目の音素の継続長の推定平均値の前記範囲規制分散データをσ (k:自然数、1≦k≦K)とし、第k番目の音素の継続長の前記推定平均データをξ(k:自然数、1≦k≦K)とすると、
前記範囲規制処理部は、上限値Vmax と、下限値Vmin とを入力し、音素継続長の推定分散値の範囲をVmin ≦σ ≦Vmax を満たす範囲となるように、前記範囲規制処理を実行し、
各音素の継続長の正解データに付加するガウスノイズをnとすると、ガウスノイズnは、
n~N(0,Vmin
N(μ,σ):平均μ、分散σのガウス分布
を満たすように設定される、
請求項1に記載の音声合成処理装置。
【請求項3】
前記デコーダで取得される音響特徴量と、前記音素系列データに対応する音響特徴量である正解音響特徴量との誤差についてのノルムに基づいて規定される音響特徴量についての損失と、前記音素継続長についての損失とを統合することで取得される統合損失に基づいて、前記エンコーダ、前記継続長推定処理部、および、前記デコーダのパラメータを更新することで前記学習処理が実行される、
請求項1または2に記載の音声合成処理装置。
【請求項4】
前記音素系列データは、K個(K:自然数)の音素である第1番目から第K番目の音素からなり、第k番目の音素の継続長の推定平均値の前記範囲規制分散データをσ (k:自然数、1≦k≦K)とし、第k番目の音素の継続長の前記推定平均データをξ(k:自然数、1≦k≦K)とし、所定期間のフレーム数をTとすると、
前記継続長取得部は、
に相当する処理を実行することで、第k番目の音素の推定継続長dを取得し、
前記デコーダは、前記継続長取得部により推定された音素の推定継続長のデータと、前記第1データとに基づいて、デコード処理を行うことで、音響特徴量の推定データを取得する、
請求項1から3のいずれかに記載の音声合成処理装置。
【請求項5】
前記デコーダは、学習可能な機能部であって、前記継続長取得部により推定された音素の推定継続長のデータに基づいて、前記第1データに対してアップサンプリング処理を行う学習可能アップサンプリング層を備える、
請求項4に記載の音声合成処理装置。
【請求項6】
請求項1から5のいずれかに記載の音声合成処理装置の学習処理を行うための学習方法であって、
テキストデータを構成する音素の系列データである音素系列データを入力し、当該音素系列データに対してエンコード処理を実行し、エンコード処理後のデータを出力するエンコードステップと、
前記エンコードステップで取得されたデータに対して畳み込み処理を実行することで、前記音素系列データに含まれる各音素の継続長の推定平均値と推定分散値に相当するデータを取得する推定平均分散データ取得ステップと、
各音素の継続長の正解データにガウスノイズを付加してノイズ付加データを取得するノイズ付加ステップと、
前記推定平均値と、前記推定分散値と、前記ノイズ付加データとに基づいて、音素継続長についての損失を算出する損失算出ステップと、
前記損失算出ステップで算出した損失に基づいて、前記エンコーダ、前記継続長推定処理部、および、前記デコーダのパラメータを更新するパラメータ更新ステップと、
を備える学習方法。
【請求項7】
テキストデータを構成する音素の系列データである音素系列データを入力し、当該音素系列データに対してエンコード処理を実行し、エンコード処理後のデータを出力するエンコーダと、
前記エンコーダから出力されるデータに対して畳み込み処理を実行することで第1データを取得し、前記第1データから、前記音素系列データに含まれる各音素の継続長を推定する処理を行う継続長推定処理部であって、前記第1データと、前記音素系列データに含まれる各音素の継続長のデータとを出力する前記継続長推定処理部と、
前記エンコーダから出力されるデータと、前記継続長推定処理部から出力されるデータとを用いて、デコード処理を実行することで、音響特徴量を取得するデコーダと、
を備え、
前記継続長推定処理部は、
前記第1データから、前記音素系列データに含まれる各音素の継続長の推定平均値と推定分散値に相当するデータを取得する写像変換層と、
前記写像変換層により取得された音素継続長の推定分散値の範囲を規制する分散範囲規制処理を実行することで処理後のデータを範囲規制分散データとして取得する範囲規制処理部と、
前記写像変換層により取得された音素継続長の推定平均値のデータに対して活性化関数による処理を行い、処理後のデータを推定平均データとして取得する活性化処理部と、
前記範囲規制分散データと、前記推定平均データとに基づいて、推定音素継続長を取得する継続長取得部と、
を有し、
各音素の継続長の正解データにガウスノイズを付加したデータと、前記範囲規制分散データと、前記推定平均データとに基づいて、音素継続長についての損失を算出し、算出した当該損失に基づいて、前記エンコーダ、前記継続長推定処理部、および、前記デコーダのパラメータを更新することで学習処理を実行し、当該学習処理により取得した学習済みモデルが搭載されている、
音響特徴量生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声合成処理技術に関する。特に、話速変換が可能な音声合成処理技術に関する。
【背景技術】
【0002】
人間の発話機構において、高速や低速で話す際に音素長が伸縮しやすい音素と伸縮しにくい音素があることが知られている。このため、テキスト音声合成技術を用いて話速変換を行う場合、すべての音素について、その音素長を一様に伸縮するだけの処理では、取得される合成音声が不自然なものとなるという問題がある。従来のHMM(HMM:hidden Markov model)を用いた音声合成技術では、各音素の音素長の平均だけでなく、分散を弾性率として推定し、話速変換の際には各音素の音素長の伸縮率を考慮した伸縮(音素長の伸縮処理)を実現できる(例えば、非特許文献1を参照)が、HMMを用いた音声合成技術では、モデル精度が低いため、音質に課題があった。
【0003】
一方、高音質の音声合成を実現するために、ニューラルネットワークモデルを用いた音声合成技術(例えば、非特許文献2を参照)やアテンション機構(注意機構)を備える音声合成モデルを用いた音声合成技術(例えば、非特許文献3を参照)を用いて話速変換を行う試行がなされている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】T. Yoshimura, K. Tokuda, T. Masuko, T. Kobayashi, and T. Kitamura, "Duration modeling for HMM-based speech synthesis," in Proc. ICSLP, Nov. 1998.
【非特許文献2】I. Elias, H. Zen, J. Shen, Y. Zhang, Y. Jia, RJ Skerry-Ryan, and Y. Wu, "Parallel Tacotron 2: A non-autoregressive neural TTS model with differentiable duration modeling," in Proc. Interspeech, Aug. 2021, pp. 141-145.
【非特許文献3】J.-S. Bae, H. Bae, Y.-S. Joo, J. Lee, G.-H. Lee, and H.-Y. Cho, "Speaking speed control of end-to-end speech synthesis using sentence-level conditioning," in Proc. Interspeech, Oct. 2020, pp. 4402-4406.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、最先端のニューラルネットワークモデルを用いた音声合成技術は、合成(生成)される音声の音質は高いが、話速変換の際には全音素の音素長を一様に伸縮する処理を行うため、音声合成の精度が劣化する問題が生じる。
【0006】
これに対して、アテンション機構(注意機構)を備える音声合成モデル(アテンション機構型音声合成モデル)にテキストの音素数と出力するフレーム数の比である話速比を入力することにより、上記問題を解決する試みがなされている。しかしながら、アテンション機構型音声合成モデルは、アテンション機構による予測が失敗した場合、発話されない音素が生じる、あるいは、発話が途中で止まるという致命的な問題がある。
【0007】
そこで本発明は、上記課題に鑑み、音素の弾性率を考慮しつつ、安定で高精度な話速変換が可能な音声合成処理を行う音声合成処理装置を実現することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するための第1の発明は、エンコーダと、継続長推定処理部と、デコーダと、ボコーダと、を備える音声合成処理装置である。
【0009】
エンコーダは、テキストデータを構成する音素の系列データである音素系列データを入力し、当該音素系列データに対してエンコード処理を実行し、エンコード処理後のデータを出力する。
【0010】
継続長推定処理部は、エンコーダから出力されるデータに対して畳み込み処理を実行することで第1データを取得し、第1データから、音素系列データに含まれる各音素の継続長を推定する処理を行う。また、継続長推定処理部は、第1データと、音素系列データに含まれる各音素の継続長のデータとを出力する
デコーダは、エンコーダから出力されるデータと、継続長推定処理部から出力されるデータとを用いて、デコード処理を実行することで、音響特徴量を取得する。
【0011】
そして、継続長推定処理部は、写像変換層と、範囲規制処理部と、活性化処理部と、継続長取得部と、を備える。
【0012】
写像変換層は、第1データから、音素系列データに含まれる各音素の継続長の推定平均値と推定分散値に相当するデータを取得する。
【0013】
範囲規制処理部は、写像変換層により取得された音素継続長の推定分散値の範囲を規制する分散範囲規制処理を実行することで処理後のデータを範囲規制分散データとして取得する。
【0014】
活性化処理部は、写像変換層により取得された音素継続長の推定平均値のデータに対して活性化関数による処理を行い、処理後のデータを推定平均データとして取得する。
【0015】
継続長取得部は、範囲規制分散データと、推定平均データとに基づいて、推定音素継続長を取得する。
【0016】
ボコーダは、デコーダからの音響特徴量に基づき音声波形を生成する。
【0017】
そして、エンコーダ、継続長推定処理部、および、デコーダは、それぞれ、パラメータを更新することで学習可能である学習モデル、あるいは、当該学習モデルの学習済みモデルを搭載することが可能であり、各音素の継続長の正解データにガウスノイズを付加したデータと、範囲規制分散データと、推定平均データとに基づいて、音素継続長についての損失を算出し、算出した当該損失に基づいて、エンコーダ、継続長推定処理部、および、デコーダのパラメータを更新することで、学習処理が実行され、当該学習処理により取得された学習済みモデルを搭載することができる。
【0018】
この音声合成処理装置では、学習処理時において、推定すべきアライメントされた目標の音素継続長に、ガウスノイズnを加算して損失を計算するので、推定される音素継続長の分散値を有限値とすることができる。
【0019】
したがって、この音声合成処理装置では、ガウスノイズを付加せずに学習を行った場合に、音素継続長の分散値が「0」となってしまい、予測処理(音声合成処理)時に、音素の弾性率(話速に応じて変化する音素の伸縮率)を再現することができないという問題が発生しない。すなわち、この音声合成処理装置では、ガウスノイズを付加した音素継続長を用いて学習処理を行うため、音素継続長の分散値を有限値とすることができ、その結果、予測処理(音声合成処理)時に、音素の弾性率(話速に応じて変化する音素の伸縮率)を再現することができる。
【0020】
つまり、この音声合成処理装置では、音素の弾性率を考慮しつつ、安定で高精度な音声合成処理を行うことができる。
【0021】
第2の発明は、第1の発明であって、音素系列データは、K個(K:自然数)の音素である第1番目から第K番目の音素からなり、第k番目の音素の継続長の推定平均値の範囲規制分散データをσ (k:自然数、1≦k≦K)とし、第k番目の音素の継続長の推定平均データをξ(k:自然数、1≦k≦K)とすると、
範囲規制処理部は、上限値Vmax と、下限値Vmin とを入力し、音素継続長の推定分散値の範囲をVmin ≦σ ≦Vmax を満たす範囲となるように、範囲規制処理を実行する。
【0022】
そして、各音素の継続長の正解データに付加するガウスノイズをnとすると、ガウスノイズnは、
n~N(0,Vmin
N(μ,σ):平均μ、分散σのガウス分布
を満たすように設定される。
【0023】
これにより、この音声合成処理装置では、各音素の継続長の正解データに付加するガウスノイズnがN(0,Vmin )に従うノイズとなり、さらに、音素継続長の分散値を下限値Vmin と上限値Vmax との間の範囲として学習処理を行うことができるので、予測処理時(音声合成時)において、推定音素継続長の分散値を所定の範囲(下限値から上限値までの範囲)とすることができる。つまり、この音声合成処理装置では、音素継続長の分散値の上限値Vmax も設定できるので、無音部分の音素の継続長の分散値のみが大きな値となり、例えば、話速変換時(話速変換して音声合成した時)に無音部分のみが伸縮してしまうという問題も解消できる。つまり、この音声合成処理装置では、継続長推定処理部の分散範囲規制処理部により、音素継続長の分散値の上限値Vmax も設定できるので、無音部分の音素継続長の分散値も上限値Vmax 以下にすることができ、その結果、例えば、話速変換時(話速変換して音声合成した時)に無音部分を適切に再生する(音声合成)することができる。
【0024】
つまり、この音声合成処理装置では、音素の弾性率を考慮しつつ、安定で高精度な音声合成処理を行うことができる。
【0025】
第3の発明は、第1または第2の発明であって、デコーダで取得される音響特徴量と、音素系列データに対応する音響特徴量である正解音響特徴量との誤差についてのノルムに基づいて規定される音響特徴量についての損失と、音素継続長についての損失とを統合することで取得される統合損失に基づいて、エンコーダ、継続長推定処理部、および、デコーダのパラメータを更新することで学習処理が実行される。
【0026】
これにより、この音声合成処理装置では、音響特徴量についての損失と、音素継続長についての損失とを考慮した損失により、より適切に学習処理を実行することができる。
【0027】
第4の発明は、第1から第3のいずれかの発明であって、音素系列データは、K個(K:自然数)の音素である第1番目から第K番目の音素からなり、第k番目の音素の継続長の推定平均値の範囲規制分散データをσ (k:自然数、1≦k≦K)とし、第k番目の音素の継続長の推定平均データをξ(k:自然数、1≦k≦K)とし、所定期間のフレーム数をTとすると、
継続長取得部は、
【数1】
に相当する処理を実行することで、第k番目の音素の推定継続長dを取得する。
【0028】
デコーダは、継続長取得部により推定された音素の推定継続長のデータと、第1データとに基づいて、デコード処理を行うことで、音響特徴量の推定データを取得する。
【0029】
これにより、この音声合成処理装置では、音素の弾性率ρを考慮しつつ、安定で高精度な音声合成処理を行うことができる。また、データTを調整することで、所定の話速での音素の弾性率ρを取得することができる。つまり、データTを調整することで、所定の話速での音声合成処理を行うことができる。
【0030】
第5の発明は、第4の発明であって、デコーダは、学習可能な機能部であって、継続長取得部により推定された音素の推定継続長のデータに基づいて、第1データに対してアップサンプリング処理を行う学習可能アップサンプリング層を備える。
【0031】
この音声合成処理装置では、学習可能アップサンプリング層において、重み付け係数を実数値として、重み付け加算処理することができるため、音素の推定継続長のデータが実数値であっても対応できる。つまり、音素の推定継続長のデータを規定する音素の弾性率を特定するデータTを実数値とすることができる。その結果、この音声合成処理装置では、話速を実数値により制御することができる。
【0032】
第6の発明は、第1から第5のいずれかの発明である音声合成処理装置の学習処理を行うための学習方法であって、エンコードステップと、推定平均分散データ取得ステップと、ノイズ付加ステップと、損失算出ステップと、パラメータ更新ステップと、を備える。
【0033】
エンコードステップは、テキストデータを構成する音素の系列データである音素系列データを入力し、当該音素系列データに対してエンコード処理を実行し、エンコード処理後のデータを出力する。
【0034】
推定平均分散データ取得ステップは、エンコードステップで取得されたデータに対して畳み込み処理を実行することで、音素系列データに含まれる各音素の継続長の推定平均値と推定分散値に相当するデータを取得する。
【0035】
ノイズ付加ステップは、各音素の継続長の正解データにガウスノイズを付加してノイズ付加データを取得する。
【0036】
損失算出ステップは、推定平均値と、推定分散値と、ノイズ付加データとに基づいて、音素継続長についての損失を算出する。
【0037】
パラメータ更新ステップは、損失算出ステップで算出した損失に基づいて、エンコーダ、継続長推定処理部、および、デコーダのパラメータを更新する。
【0038】
この学習方法では、推定すべきアライメントされた目標の音素継続長に、ガウスノイズnを加算して損失を計算するので、推定される音素継続長の分散値を有限値とすることができる。
【0039】
したがって、この学習方法では、ガウスノイズを付加せずに学習を行った場合に、音素継続長の分散値が「0」となってしまい、予測処理(音声合成処理)時に、音素の弾性率(話速に応じて変化する音素の伸縮率)を再現することができないという問題が発生しない。すなわち、この学習方法では、ガウスノイズを付加した音素継続長を用いて学習処理を行うため、音素継続長の分散値を有限値とすることができ、その結果、予測処理(音声合成処理)時に、音素の弾性率(話速に応じて変化する音素の伸縮率)を再現する学習モデルを構築することができる。
【0040】
つまり、この学習方法では、音素の弾性率を考慮しつつ、安定で高精度な音声合成処理を行う学習済みモデル(音声合成処理用の学習済みモデル)を取得することができる。
【0041】
第7の発明は、エンコーダと、継続長推定処理部と、デコーダと、を備える音響特徴量生成装置である。
【0042】
エンコーダは、テキストデータを構成する音素の系列データである音素系列データを入力し、当該音素系列データに対してエンコード処理を実行し、エンコード処理後のデータを出力する。
【0043】
継続長推定処理部は、エンコーダから出力されるデータに対して畳み込み処理を実行することで第1データを取得し、第1データから、音素系列データに含まれる各音素の継続長を推定する処理を行う継続長推定処理部であって、第1データと、音素系列データに含まれる各音素の継続長のデータとを出力する。
【0044】
デコーダは、エンコーダから出力されるデータと、継続長推定処理部から出力されるデータとを用いて、デコード処理を実行することで、音響特徴量を取得する。
【0045】
そして、継続長推定処理部は、写像変換層と、範囲規制処理部と、活性化処理部と、継続長取得部と、を有する。
【0046】
写像変換層は、第1データから、音素系列データに含まれる各音素の継続長の推定平均値と推定分散値に相当するデータを取得する。
【0047】
範囲規制処理部は、写像変換層により取得された音素継続長の推定分散値の範囲を規制する分散範囲規制処理を実行することで処理後のデータを範囲規制分散データとして取得する。
【0048】
活性化処理部は、写像変換層により取得された音素継続長の推定平均値のデータに対して活性化関数による処理を行い、処理後のデータを推定平均データとして取得する。
【0049】
継続長取得部は、範囲規制分散データと、推定平均データとに基づいて、推定音素継続長を取得する。
【0050】
そして、音響特徴量生成装置は、各音素の継続長の正解データにガウスノイズを付加したデータと、範囲規制分散データと、推定平均データとに基づいて、音素継続長についての損失を算出し、算出した当該損失に基づいて、エンコーダ、継続長推定処理部、および、デコーダのパラメータを更新することで学習処理を実行し、当該学習処理により取得した学習済みモデルが搭載されている。
【0051】
これにより、この音響特徴量生成装置では、音素の弾性率を考慮しつつ、安定で高精度な音声合成処理を行うための音響特徴量を取得することができる。
【発明の効果】
【0052】
本発明によれば、音素の弾性率を考慮しつつ、安定で高精度な話速変換が可能な音声合成処理を行う音声合成処理装置を実現することができる。
【図面の簡単な説明】
【0053】
図1】第1実施形態に係る音声合成処理装置100の概略構成図。
図2】第1実施形態に係る音声合成処理装置100のエンコーダ2の概略構成図。
図3】第1実施形態に係る音声合成処理装置100の継続長推定処理部3と、ノイズ付加処理部3Aと、音素継続長損失取得部3Bとの概略構成図。
図4】第1実施形態に係る音声合成処理装置100のデコーダ4の概略構成図。
図5】学習セットの話速のヒストグラムとテストセットの話速の平均値を示すグラフ。
図6】音声比較結果(スペクトログラム)を示す図。
図7】音質評価結果を示す図。
図8】CPUバス構成を示す図。
【発明を実施するための形態】
【0054】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下説明する。
【0055】
<1.1:音声合成処理装置の構成>
図1は、第1実施形態に係る音声合成処理装置100の概略構成図である。
【0056】
図2は、第1実施形態に係る音声合成処理装置100のエンコーダ2の概略構成図である。
【0057】
図3は、第1実施形態に係る音声合成処理装置100の継続長推定処理部3と、ノイズ付加処理部3Aと、音素継続長損失取得部3Bとの概略構成図である。
【0058】
図4は、第1実施形態に係る音声合成処理装置100のデコーダ4の概略構成図である。
【0059】
音声合成処理装置100は、図1に示すように、テキスト解析部1と、エンコーダ2と、継続長推定処理部3と、ノイズ付加処理部3Aと、音素継続長損失取得部3Bと、デコーダ4と、音響特徴量損失取得部5と、統合損失取得部6と、損失評価部7と、ボコーダ8とを備える。
【0060】
テキスト解析部1は、テキストデータDinを入力し、当該テキストデータに対してテキスト解析処理を実行し、当該テキストデータを構成する音素の系列データである音素系列データと、当該テキストデータを構成する音素のアクセントラベルの系列データであるアクセントラベル系列データとを取得する。そして、テキスト解析部1は、取得した音素系列データと、アクセントラベル系列データとを含むデータを、データD0として、エンコーダ2に出力する。なお、音素系列データは、例えば、音素を特定する音素インデックスの系列データである。アクセントラベル系列データは、例えば、音素がアクセントのある音素であるか否かを「1」、「0」で示すデータの系列データである。
【0061】
エンコーダ2は、図2に示すように、第1埋込層21と、第2埋込層22と、統合部23と、機械学習モデル部24とを備える。
【0062】
第1埋込層21は、テキスト解析部1から出力されるデータD0に含まれる音素系列データ(これをデータD0_phnmという)を入力し、当該データD0_phnmに対して埋込処理(埋込表現データを取得する処理)を実行し、当該処理により取得した埋込表現データを、データD01_embとして、統合部23に出力する。
【0063】
第2埋込層22は、テキスト解析部1から出力されるデータD0に含まれるアクセントラベル系列データ(これをデータD0_accLという)を入力し、当該データD0_accLに対して埋込処理(埋込表現データを取得する処理)を実行し、当該処理により取得した埋込表現データを、データD02_embとして、統合部23に出力する。
【0064】
統合部23は、第1埋込層21から出力されるデータD01_embと、第2埋込層22から出力されるデータD02_embとを入力し、両データを統合(例えば、concatenate)し,統合したデータをデータD03として機械学習モデル部24に出力する。
【0065】
機械学習モデル部24は、例えば、ニューラルネットワークによる機械学習モデル(例えば、トランスフォーマー(Transformer)を用いた機械学習モデル)を含む機能部である。機械学習モデル部24は、統合部23から出力されるデータD03を入力し、当該データD03に対して、機械学習モデルによる処理を行い、当該処理結果(データD03を機械学習モデルに入力したときに機械学習モデルから出力されるデータ)をデータD1として取得する。そして、機械学習モデル部24は、取得したデータD1を継続長推定処理部3に出力する。
【0066】
継続長推定処理部3は、図3に示すように、畳み込み層31と、写像変換層32と、データ分割部33と、シグモイド変換部34と、活性化処理部35と、分散範囲規制処理部36と、継続長取得部37と、セレクタSEL1とを備える。
【0067】
畳み込み層31は、エンコーダ2から出力されるデータD1を入力し、当該データD1に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、3×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD2として取得する。畳み込み層31は、取得したデータD2をデコーダ4および写像変換層32に出力する。
【0068】
写像変換層32は、畳み込み層21から出力されるデータD2を入力し、データD2に対して写像変換(例えば、次元削減を行うことができる全結合層による処理)を実行し、データD3を取得する。そして、写像変換層32は、取得したデータD3をデータ分割部33に出力する。なお、写像変換層32は、高次元(例えば、512次元)のデータを2次元のデータに写像変換するものであり、データD3は、2次元のデータ(音素の継続長の平均値と分散値に対応するデータ)である。
【0069】
データ分割部33は、写像変換層32から出力されるデータD3(2次元のデータ)を入力し、当該データD3を2つの1次元のデータに分割する。データ分割部33は、分割した一方のデータをデータD31(音素の継続長の分散値に対応するデータ)としてシグモイド変換部34に出力し、分割した他方のデータをデータD32(音素の継続長の平均値に対応するデータ)として活性化処理部35に出力する。
【0070】
シグモイド変換部34は、データ分割部33から出力されるデータD31を入力し、当該データ31に対してシグモイド変換(シグモイド関数にデータD31を入力して、出力値を取得する処理)を実行し、シグモイド変換後のデータをデータD4として取得する。そして、シグモイド変換部34は、取得したデータD4を分散範囲規制処理部36に出力する。
【0071】
活性化処理部35は、データ分割部33から出力されるデータD31を入力し、当該データ31に対して、活性化関数(例えば、Softplus関数による処理)による処理を実行し、処理後のデータをデータD_avgとして取得する。そして、活性化処理部35は、取得したデータD_avgを音素継続長損失取得部3Bおよび継続長取得部37に出力する。
【0072】
分散範囲規制処理部36は、シグモイド変換部34から出力されるデータD4と、音素の継続長の分散値の下限値Vmin と、音素の継続長の分散値の上限値Vmax とを入力する。なお、音素の継続長の分散値の下限値Vmin 、および、音素の継続長の分散値の上限値Vmax は、音声合成処理装置100の各機能部を制御する制御部(不図示)から出力されるものとする。分散範囲規制処理部36は、音素の継続長の分散値の下限値Vmin 、および、音素の継続長の分散値の上限値Vmax を用いて、データD4に対して、分散範囲規制処理を実行し、処理後のデータをデータD_varとして取得する。そして、分散範囲規制処理部36は、取得したデータD_varを音素継続長損失取得部3Bおよび継続長取得部37に出力する。
【0073】
継続長取得部37は、音声合成処理装置100の予測処理時において、分散範囲規制処理部36から出力されるデータD_varと、活性化処理部35から出力されるデータD_avgと、再生時(音声合成出力時)の音素継続長の目標値を特定するデータT(例えば、所定の期間に相当するフレーム数)とを入力する。なお、データTは、制御部(不図示)から出力される。そして、継続長取得部37は、データD_varと、データD_avgと、データTとを用いて、音素の継続長を取得(推定)する処理を実行し、当該処理後のデータをデータD52として、セレクタSEL1に出力する。
【0074】
セレクタSEL1は、2入力1出力のセレクタであり、切替信号sel1により、2つの入力のいずれかを選択して出力できるセレクタである。セレクタSEL1は、データD_correct_durと、継続長取得部37から出力されるデータD52とを入力し、制御部(不図示)から出力される切替信号sel1とを入力する。セレクタSEL1は、(1)切替信号sel1が「1」である場合(音声合成処理装置100の学習処理時)、データD_correct_durを選択し、選択したデータをデータD_durとしてデコーダ4に出力し、(2)切替信号sel1が「0」である場合(音声合成処理装置100の予測処理時)、データD52を選択し、選択したデータをデータD_durとしてデコーダ4に出力する。
【0075】
ノイズ付加処理部3Aは、音声合成処理装置100の学習処理時において、音素の継続長の正解データ(教師データ)であるデータD_correct_durと、音素の継続長の分散値の下限値Vmin とを入力する。なお、データD_correct_durと、音素の継続長の分散値の下限値Vmin とは、音声合成処理装置100の各機能部を制御する制御部(不図示)から出力される。ノイズ付加処理部3Aは、データD_correct_durに対して、ノイズを付加する処理を実行し、処理後のデータをデータD_nsとして音素継続長損失取得部3Bに出力する。
【0076】
音素継続長損失取得部3Bは、音声合成処理装置100の学習処理時において、分散範囲規制処理部36から出力されるデータD_varと、活性化処理部35から出力されるデータD_avgと(データD_varとデータD_avgをまとめてデータD_VAという)、ノイズ付加処理部3Aから出力されるデータD_nsとを入力する。音素継続長損失取得部3Bは、データD_var、データD_avg、および、データD_nsを用いて、音素の継続長についての損失関数による損失値Ldur,MLを取得(算出)する(詳細については後述)。そして、音素継続長損失取得部3Bは、取得した損失値Ldur,MLを統合損失取得部6に出力する。
【0077】
デコーダ4は、図4に示すように、学習可能アップサンプリング層41と、M個(M:自然数)の畳み込み層である第1畳み込み層42-1~第M畳み込み層42-Mとを備える。
【0078】
学習可能アップサンプリング層41は、図4に示すように、アップサンプリング層411と、位置埋込層412と、加算部add1と、重み付け層413とを備える。
【0079】
アップサンプリング層411は、継続長推定処理部3から出力されるデータD2およびデータD_durを入力する。アップサンプリング層411は、データD_dur(音素の継続長のデータ)に基づいて、出力のデータの長さ(サイズ)が、目標データであるスペクトルデータのフレームシーケンスの長さ(サイズ)と一致する長さ(サイズ)となるように、データD2に対してアップサンプリング処理を実行し、アップサンプリング処理後のデータをデータDD3として取得する。そして、アップサンプリング層411は、取得したデータDD3を加算部add1に出力する。
【0080】
位置埋込層412は、継続長推定処理部3から出力されるデータD_durを入力し、当該データD_durに対して、位置埋込処理(位置情報の埋込表現データを取得する処理)を実行し、当該処理により取得した位置埋込表現データを、データD_posとして、加算部add1に出力する。
【0081】
加算部add1は、アップサンプリング層411から出力されるデータDD3と、位置埋込層412から出力されるデータD_posとを入力し、両データを加算する処理を行う。そして、加算部add1は、加算処理後のデータを、データDD4として、重み付け層413に出力する。
【0082】
重み付け層413は、加算部add1から出力されるデータDD4を入力し、当該データDD4に対して、重み付け処理(例えば、ニューラルネットワークの1または複数の隠れ層による処理)を実行し、処理後のデータDD5を取得する。そして、重み付け層413は、取得したデータDD5を第1畳み込み層42-1に出力する。
【0083】
第1畳み込み層42-1は、重み付け層413から出力されるデータDD5を入力し、当該データDD5に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、17×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD_spとして取得する。そして、第1畳み込み層42-1は、音声合成処理装置100の学習処理時において、取得したデータD_spを第2畳み込み層42-2および音響特徴量損失取得部5に出力する。また、第1畳み込み層42-1は、音声合成処理装置100の予測処理時において、取得したデータD_spを第2畳み込み層42-2に出力する。
【0084】
第k畳み込み層42-k(k:自然数、2≦k<M)は、第k-1畳み込み層42-k-1から出力されるデータD_spk-1を入力し、当該データD_spk-1に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、17×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD_spとして取得する。そして、第k畳み込み層42-kは、音声合成処理装置100の学習処理時において、取得したデータD_spを第k+1畳み込み層42-k+1および音響特徴量損失取得部5に出力する。また、第k畳み込み層42-kは、音声合成処理装置100の予測処理時において、取得したデータD_spを第k+1畳み込み層42-k+1に出力する。
【0085】
第M畳み込み層42-M(M:自然数)は、第M-1畳み込み層42-M-1から出力されるデータD_spM-1を入力し、当該データD_spM-1に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、17×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD_spとして取得する。そして、第M畳み込み層42-Mは、音声合成処理装置100の学習処理時において、取得したデータD_spを音響特徴量損失取得部5に出力する。また、第M畳み込み層42-Mは、音声合成処理装置100の予測処理時において、取得したデータD_spを、データDo_spとして、ボコーダ8に出力する。
【0086】
なお、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_sp(i:自然数、1≦i≦M)は、音響特徴量の正解データ(教師データ)D_correct_specと同じ次元のデータであるものとする。
【0087】
音響特徴量損失取得部5は、音声合成処理装置100の学習処理時において、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_sp(i:自然数、1≦i≦M)(M個の出力データ)(これらのデータをまとめてデータD_spという)と、音響特徴量の正解データ(教師データ)D_correct_specとを入力する。なお、音響特徴量の正解データ(教師データ)D_correct_specは、制御部(不図示)から出力されるものとする。音響特徴量損失取得部5は、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_spと、音響特徴量の正解データ(教師データ)D_correct_specとを用いて、音響特徴量についての損失関数による損失値LSPを取得(算出)する(詳細については後述)。そして、音響特徴量損失取得部5は、取得した損失値LSPを統合損失取得部6に出力する。
【0088】
統合損失取得部6は、音声合成処理装置100の学習処理時において、音響特徴量損失取得部5から出力される損失値LSPと、音素継続長損失取得部3Bから出力される損失値Ldur,MLとを入力し、損失値LSPと、損失値Ldur,MLとを統合した統合損失を取得し、取得した統合損失のデータを、データLとして、損失評価部7に出力する。
【0089】
損失評価部7は、音声合成処理装置100の学習処理時において、統合損失取得部6から出力されるデータL(統合損失のデータ)を入力し、当該データL(統合損失のデータ)に基づいて、学習処理を終了するか否かを判定する。
【0090】
ボコーダ8は、音声合成処理装置100の予測処理時において、デコーダ4から出力されるデータDo_spを入力し、当該データDo_spに対してボコーダ処理を実行し、データDo_spに対応する音声波形データDoutを取得し出力する。ボコーダ8は、例えば、ニューラルネットワークを用いたボコーダ(ニューラルボコーダ)によって実現される。
【0091】
<1.2:音声合成処理装置の動作>
以上のように構成された音声合成処理装置100の動作について以下説明する。以下では、音声合成処理装置100の動作を、(1)学習処理と、(2)予測処理(音声合成処理)とに分けて説明する。
【0092】
(1.2.1:学習処理)
まず、音声合成処理装置100の学習処理について説明する。
【0093】
テキスト解析部1にテキストデータDinを入力し、テキスト解析部1により、当該テキストデータDinに対してテキスト解析処理が実行され、当該テキストデータDinを構成する音素の系列データである音素系列データと、当該テキストデータを構成する音素のアクセントラベルの系列データであるアクセントラベル系列データとが取得される。
【0094】
そして、テキスト解析部1により取得された音素系列データと、アクセントラベル系列データとを含むデータは、データD0として、エンコーダ2に出力される。なお、音素系列データは、例えば、音素を特定する音素インデックスの系列データである。アクセントラベル系列データは、例えば、音素がアクセントのある音素であるか否かを「1」、「0」で示すデータの系列データである。
【0095】
エンコーダ2の第1埋込層21は、テキスト解析部1から出力されるデータD0に含まれる音素系列データD0_phnmを入力し、当該データD0_phnmに対して埋込処理(埋込表現データを取得する処理)を実行し、当該処理により取得した埋込表現データを、データD01_embとして、統合部23に出力する。
【0096】
エンコーダ2の第2埋込層22は、テキスト解析部1から出力されるデータD0に含まれるアクセントラベルデータD0_accLを入力し、当該データD0_accLに対して埋込処理(埋込表現データを取得する処理)を実行し、当該処理により取得した埋込表現データを、データD02_embとして、統合部23に出力する。
【0097】
統合部23は、第1埋込層21から出力されるデータD01_embと、第2埋込層22から出力されるデータD02_embとを入力し、両データを統合(例えば、concatenate)し,統合したデータをデータD03として機械学習モデル部24に出力する。
【0098】
機械学習モデル部24(例えば、トランスフォーマー(Transformer)を用いた機械学習モデルを含む機能部)は、統合部23から出力されるデータD03を入力し、当該データD03に対して、機械学習モデルによる処理を行い、当該処理結果(データD03を機械学習モデルに入力したときに機械学習モデルから出力されるデータ)をデータD1として取得する。そして、機械学習モデル部24は、取得したデータD1を継続長推定処理部3に出力する。
【0099】
継続長推定処理部3の畳み込み層31は、エンコーダ2から出力されるデータD1を入力し、当該データD1に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、3×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD2として取得する。そして、畳み込み層31は、取得したデータD2をデコーダ4および写像変換層32に出力する。
【0100】
写像変換層32は、畳み込み層21から出力されるデータD2に対して写像変換(例えば、次元削減を行うことができる全結合層による処理)を実行し、データD3を取得する。そして、写像変換層32は、取得したデータD3をデータ分割部33に出力する。なお、写像変換層32は、高次元(例えば、512次元)のデータを2次元のデータに写像変換するものであり、データD3は、2次元のデータ(音素の継続長の平均値と分散値に対応するデータ)である。
【0101】
データ分割部33は、写像変換層32から出力されるデータD3(2次元のデータ)を2つの1次元のデータに分割する。データ分割部33は、分割した一方のデータをデータD31(音素の継続長の分散値に対応するデータ)としてシグモイド変換部34に出力し、分割した他方のデータをデータD32(音素の継続長の平均値に対応するデータ)として活性化処理部35に出力する。
【0102】
シグモイド変換部34は、データ分割部33から出力されるデータD31に対してシグモイド変換(シグモイド関数にデータD31を入力して、出力値を取得する処理)を実行し、シグモイド変換後のデータをデータD4として取得する。そして、シグモイド変換部34は、取得したデータD4を分散範囲規制処理部36に出力する。
【0103】
活性化処理部35は、データ分割部33から出力されるデータD31に対して、活性化関数(例えば、Softplus関数による処理)による処理を実行し、処理後のデータをデータD_avgとして取得する。そして、活性化処理部35は、取得したデータD_avgを音素継続長損失取得部3Bに出力する。
【0104】
分散範囲規制処理部36は、シグモイド変換部34から出力されるデータD4と、音素の継続長の分散値の下限値Vmin と、音素の継続長の分散値の上限値Vmax とを入力する。なお、音素の継続長の分散値の下限値Vmin 、および、音素の継続長の分散値の上限値Vmax は、音声合成処理装置100の各機能部を制御する制御部(不図示)から出力される。分散範囲規制処理部36は、音素の継続長の分散値の下限値Vmin 、および、音素の継続長の分散値の上限値Vmax を用いて、データD4に対して、分散範囲規制処理を実行する。具体的には、分散範囲規制処理部36は、
D_var=D4×(Vmax -Vmin )+Vmin
D4:シグモイド変換部34の出力データ(D4:実数、0≦D4≦1)
に相当する処理を実行し、分散範囲規制処理後のデータD_varを取得する。これにより、分散範囲規制処理後のデータD_var(音素継続長の分散値)は、
min ≦D_var≦Vmax
を満たす範囲に規制される。
【0105】
そして、分散範囲規制処理部36は、上記により取得したデータD_varを音素継続長損失取得部3Bに出力する。
【0106】
ノイズ付加処理部3Aは、制御部(不図示)から出力される音素の継続長の正解データ(教師データ)であるデータD_correct_durと、制御部(不図示)から出力される音素の継続長の分散値の下限値Vmin とを入力する。ノイズ付加処理部3Aは、データD_correct_durに対して、ノイズを付加する処理を実行する。具体的には、ノイズ付加処理部3Aは、k番目の音素の継続長(時間継続長)の正解データdにガウスノイズnを付加する処理、すなわち、
D_ns=d+n
n~N(0,Vmin
:k番目の音素の継続長(時間継続長)の正解データ
N(μ,σ):平均μ、分散σのガウス分布
に相当する処理を実行することで、ガウスノイズが付加されたk番目の音素の継続長のデータD_ns(=d+n)を取得する。
【0107】
なお、音声合成処理装置100への入力データDinからテキスト解析部1による処理で取得された音素系列データは、K個の音素からなるものとし、第k番目の音素の継続長をd(k:整数、1≦k≦K)と表記する。
【0108】
音素継続長損失取得部3Bは、分散範囲規制処理部36から出力されるデータD_varと、活性化処理部35から出力されるデータD_avgと、ノイズ付加処理部3Aから出力されるデータD_nsとを入力する。音素継続長損失取得部3Bは、データD_var、データD_avg、および、データD_nsを用いて、音素の継続長についての損失関数による損失値Ldur,MLを取得(算出)する。具体的には、音素継続長損失取得部3Bは、
【数2】
σ :k番目の音素の継続長の分散値
ξ:k番目の音素の継続長の平均値
+n=D_ns
に相当する処理を実行することで、損失値Ldur,MLを取得する。なお、k番目の音素の継続長の分散値σ は、データD_varに含まれており、k番目の音素の継続長の平均値ξは、データD_avgに含まれている。
【0109】
音素継続長についての損失は、正規分布の最尤推定を行うための損失関数により取得(推定)できるので、音素継続長損失取得部3Bは、上記数式に相当する処理を行うことで、音素継続長についての損失値を取得する。
【0110】
そして、音素継続長損失取得部3Bは、上記処理により取得した損失値Ldur,MLを統合損失取得部6に出力する。
【0111】
セレクタSEL1は、制御部(不図示)から出力されるデータD_correct_dur(音素継続長についての正解信号)を選択し、選択したデータをデータD_durとしてデコーダ4に出力する。なお、音声合成処理装置100の学習処理時において、制御部(不図示)は、切替信号sel1の信号値を「1」として、セレクタSEL1に出力し、セレクタSEL1は、当該切替信号に従い、データD_correct_durを選択し、選択したデータをデータD_durとしてデコーダ4に出力する。
【0112】
デコーダ4のアップサンプリング層411は、継続長推定処理部3から出力されるデータD2およびデータD_durを入力する。そして、アップサンプリング層411は、データD_dur(=D_correct_dur(音素継続長の正解データ))に基づいて、出力のデータの長さ(サイズ)が、目標データであるスペクトルデータのフレームシーケンスの長さ(サイズ)と一致する長さ(サイズ)となるように、データD2に対してアップサンプリング処理を実行し、アップサンプリング処理後のデータをデータDD3として取得する。そして、アップサンプリング層411は、取得したデータDD3を加算部add1に出力する。
【0113】
位置埋込層412は、継続長推定処理部3から出力されるデータD_durを入力し、当該データD_durに対して、位置埋込処理(位置情報の埋込表現データを取得する処理)を実行する。例えば、位置埋込層412は、
(1)音素内(処理対象の音素の継続期間内)のフレーム位置、
(2)音素継続長、および、
(3)処理対象としているデータの1フレーム内の位置(当該位置は、例えば、分数進展数(例えば、1/10,2/10,・・・,10/10(分母を「10」とする場合))により特定する)
についての埋込表現データ(位置埋込表現データ)を取得し(例えば、トランスフォーマーで用いられる位置エンコーディングによる処理を行うことで、位置埋込表現データを取得し)、取得した位置埋込表現データを、データD_posとして、加算部add1に出力する。
【0114】
加算部add1は、アップサンプリング層411から出力されるデータDD3と、位置埋込層412から出力されるデータD_posとを入力し、両データを加算する処理を行う。そして、加算部add1は、加算処理後のデータを、データDD4として、重み付け層413に出力する。
【0115】
重み付け層413は、加算部add1から出力されるデータDD4を入力し、当該データDD4に対して、重み付け処理(例えば、ニューラルネットワークの1または複数の隠れ層による処理)を実行し、処理後のデータDD5を取得する。そして、重み付け層413は、取得したデータDD5を第1畳み込み層42-1に出力する。
【0116】
第1畳み込み層42-1は、重み付け層413から出力されるデータDD5に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、17×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD_spとして取得する。そして、第1畳み込み層42-1は、取得したデータD_spを第2畳み込み層42-2および音響特徴量損失取得部5に出力する。
【0117】
第k畳み込み層42-k(k:自然数、2≦k<M)は、第k-1畳み込み層42-k-1から出力されるデータD_spk-1に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、17×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD_spとして取得する。そして、第k畳み込み層42-kは、取得したデータD_spを第k+1畳み込み層42-k+1および音響特徴量損失取得部5に出力する。
【0118】
第M畳み込み層42-M(M:自然数)は、第M-1畳み込み層42-M-1から出力されるデータD_spM-1に対して、所定のサイズのカーネルを用いて畳み込み処理(例えば、17×1のカーネルを用いたLConv(Lightweight Convolution)処理)を行い、当該畳み込み処理後のデータをデータD_spとして取得する。そして、第M畳み込み層42-Mは、取得したデータD_spを音響特徴量損失取得部5に出力する。
【0119】
なお、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_sp(i:自然数、1≦i≦M)は、音響特徴量の正解データ(教師データ)D_correct_specと同じ次元のデータであるものとする。
【0120】
音響特徴量損失取得部5は、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_sp(i:自然数、1≦i≦M)(M個の出力データ)(これらのデータをまとめてデータD_spという)と、音響特徴量の正解データ(教師データ)D_correct_specとを入力する。なお、音響特徴量の正解データ(教師データ)D_correct_specは、制御部(不図示)から出力される。音響特徴量損失取得部5は、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_spと、音響特徴量の正解データ(教師データ)D_correct_specとを用いて、音響特徴量についての損失関数による損失値LSPiを取得(算出)する。具体的には、音響特徴量損失取得部5は、
SPi=NormL1(D_sp-D_correct_spec)
NormL1():L1ノルムを取得する関数
に相当する処理を実行することで、第1畳み込み層42-1~第M畳み込み層42-Mのそれぞれの出力データD_spと、音響特徴量の正解データ(教師データ)D_correct_specとの損失を取得(算出)する。さらに、音響特徴量損失取得部5は、
【数3】
M:デコーダ4の第k畳み込み層の数
N:音響特徴量(メルスペクトログラム)のサイズ
T:フレーム数
に相当する処理を実行することで、音響特徴量についての損失LSPを取得する。なお、データM、N、Tは、制御部(不図示)から音響特徴量損失取得部5に入力される。
【0121】
そして、音響特徴量損失取得部5は、取得した損失値LSPを統合損失取得部6に出力する。なお、本実施形態では、音響特徴量は、メルスペクトログラムとし、音響特徴量の正解データ(教師データ)D_correct_specは、音声合成処理装置100への入力データDinに対応する音響特徴量(メルスペクトログラム)とする。
【0122】
統合損失取得部6は、音響特徴量損失取得部5から出力される損失値LSPと、音素継続長損失取得部3Bから出力される損失値Ldur,MLとを入力し、損失値LSPと、損失値Ldur,MLとを統合した統合損失を取得する。具体的には、統合損失取得部6は、
【数4】
K:音素数(入力データDinから取得された音素系列データに含まれる音素の数)
λ:係数
に相当する処理を実行することで、統合損失値Lを取得する。
【0123】
そして、統合損失取得部6は、取得した統合損失のデータを、データLとして、損失評価部7に出力する。
【0124】
損失評価部7は、統合損失取得部6から出力されるデータL(統合損失のデータ)を入力し、当該データL(統合損失のデータ)に基づいて、学習処理を終了するか否かを判定する。具体的には、損失評価部7は、統合損失値Lを評価し、学習処理を継続させる必要があるか否かを判定するものであり、統合損失値Lが(1)所定の範囲内に収まっていない場合、あるいは、(2)統合損失値Lの変化量が所定の範囲内に収まっていない場合、損失評価部7は、音声合成処理装置100において、学習処理を継続させる必要があると判定する。
【0125】
そして、学習処理を継続させる必要があると判定された場合、音声合成処理装置100では、統合損失Lを損失値(誤差)として、誤差逆伝播法により、誤差を逆伝播させ(図1の点線の矢印の方向に誤差を伝播させ)、音声合成処理装置100の学習可能な機能部において重み係数を更新する(パラメータを更新する)ことで学習処理を行う。
【0126】
上記処理を繰り返し実行し、統合損失値Lが(1)所定の範囲内に収まるようになった場合、あるいは、(2)統合損失値Lの変化量が所定の範囲内に収まるようになった場合、損失評価部7は、学習処理を継続させる必要がないと判定し、学習処理を終了させる。
【0127】
そして、音声合成処理装置100において、学習処理が終了した状態における音声合成処理装置100の学習可能な機能部において重み係数(パラメータ)を最適化重み係数(最適化パラメータ)として固定する。これにより、音声合成処理装置100において、学習済みモデルが構築される。
【0128】
(1.2.2:予測処理(音声合成処理))
次に、音声合成処理装置100の予測処理(音声合成処理)について説明する。
【0129】
音声合成処理装置100の予測処理(音声合成処理)は、音声合成処理装置100において、学習済みモデルが構築された状態(学習処理が完了した状態)で実行される。
【0130】
まず、音声合成したいテキストデータDinをテキスト解析部1に入力する。テキスト解析部1は、当該テキストデータDinに対してテキスト解析処理を実行し、当該テキストデータDinを構成する音素の系列データである音素系列データと、当該テキストデータを構成する音素のアクセントラベルの系列データであるアクセントラベル系列データとを取得する。
【0131】
そして、テキスト解析部1により取得された音素系列データと、アクセントラベル系列データとを含むデータは、データD0として、エンコーダ2に出力される。
【0132】
エンコーダ2では、学習処理での説明と同様の処理が実行され、エンコーダ2の機械学習モデル部24からデータD1が継続長推定処理部3に出力される。
【0133】
継続長推定処理部3の畳み込み層31、写像変換層32、データ分割部33、シグモイド変換部34では、学習処理時と同様の処理が実行される。
【0134】
活性化処理部35は、データ分割部33から出力されるデータD31に対して、活性化関数(例えば、Softplus関数による処理)による処理を実行し、処理後のデータをデータD_avgとして取得する。そして、活性化処理部35は、取得したデータD_avgを継続長取得部37に出力する。
【0135】
分散範囲規制処理部36は、シグモイド変換部34から出力されるデータD4と、音素の継続長の分散値の下限値Vmin と、音素の継続長の分散値の上限値Vmax とを入力する。なお、音素の継続長の分散値の下限値Vmin 、および、音素の継続長の分散値の上限値Vmax は、音声合成処理装置100の各機能部を制御する制御部(不図示)から出力される。分散範囲規制処理部36は、音素の継続長の分散値の下限値Vmin 、および、音素の継続長の分散値の上限値Vmax を用いて、データD4に対して、分散範囲規制処理を実行する。具体的には、分散範囲規制処理部36は、
D_var=D4×(Vmax -Vmin )+Vmin
D4:シグモイド変換部34の出力データ(D4:実数、0≦D4≦1)
に相当する処理を実行し、分散範囲規制処理後のデータD_varを取得する。これにより、分散範囲規制処理後のデータD_var(音素継続長の分散値)は、
min ≦D_var≦Vmax
を満たす範囲に規制される。
【0136】
そして、分散範囲規制処理部36は、上記により取得したデータD_varを継続長取得部37に出力する。
【0137】
継続長取得部37は、分散範囲規制処理部36から出力されるデータD_varと、活性化処理部35から出力されるデータD_avgと、再生時(音声合成出力時)の音素継続長の目標値を特定するデータT(例えば、所定の期間に相当するフレーム数)とを入力する。なお、データTは、制御部(不図示)から出力される。そして、継続長取得部37は、データD_varと、データD_avgと、データTとを用いて、音素の継続長を取得(推定)する処理を実行する。具体的には、継続長取得部37は、
【数5】
σ :k番目の音素の継続長の分散値(データD_varに含まれるデータ)
ξ:k番目の音素の継続長の平均値(データD_avgに含まれるデータ)
T:フレーム数
K:音素数(入力データDinから取得された音素系列データに含まれる音素の数)
に相当する処理を実行し、k番目の音素の継続長(予測継続長)dを取得する。
【0138】
なお、所定期間に相当するフレーム数のデータTを変化させることで、音声合成信号の発話速度を変化させることができる。
【0139】
そして、継続長取得部37は、取得したk番目の音素の継続長(予測継続長)dを含むデータを、データD52として、セレクタSEL1に出力する。
【0140】
制御部(不図示)は、切替信号sel1の信号値を「0」として、セレクタSEL1に出力し、セレクタSEL1は、当該切替信号sel1に従い、継続長取得部37から出力されるデータD52を選択し、データD_durとして、デコーダ4に出力する。
【0141】
デコーダ4は、継続長推定処理部3から出力されるデータD2およびデータD_durを入力し、学習処理時と同様の処理を実行する。
【0142】
そして、デコーダ4は、デコーダでの処理後のデータ(デコーダ4の第M畳み込み層42-Mからの出力データ)を、データDo_sp(音響特徴量(メルスペクトログラム)のデータ)として、ボコーダ8に出力する。
【0143】
ボコーダ8は、デコーダ4から出力されるデータDo_spを入力し、当該データDo_spに対してボコーダ処理を実行し、データDo_spに対応する音声波形データDoutを取得し出力する。これにより、入力データDinに相当する音声波形データ(音声合成波形データ)を取得(出力)することができる。
【0144】
≪まとめ≫
以上のように、音声合成処理装置100では、学習処理時において、推定すべきアライメントされた目標の音素継続長(d)に、平均0、分散Vmin のガウスノイズn(n~N(0,Vmin ))を加算して損失(音素継続長についての損失Ldur,ML)を計算するので、推定される音素継続長(d)の分散値の下限値をVmin とすることができる。つまり、音声合成処理装置100では、音素継続長についての損失Ldur,MLが(数式2)の損失関数(正規分布の最尤推定の損失関数)により算出されるので、(d+n-ξの値が小さくなるように学習が進む。すなわち、d+n(n:ガウスノイズ)がξ(音素継続長の平均値)に近づくように学習が進むので、音素継続長(d)はばらつきを有する値(音素継続長の分散の下限値がVmin となるデータ分布をとる値)に収束することになる。
【0145】
したがって、音声合成処理装置100では、ガウスノイズを付加せずに学習を行った場合に、音素継続長の分散値が「0」となってしまい、予測処理(音声合成処理)時に、音素の弾性率(話速に応じて変化する音素の伸縮率)を再現することができないという問題が発生しない。すなわち、音声合成処理装置100では、ガウスノイズを付加した音素継続長を用いて学習処理を行うため、音素継続長の分散値を有限値とすることができ、その結果、予測処理(音声合成処理)時に、音素の弾性率(話速に応じて変化する音素の伸縮率)を再現することができる。
【0146】
さらに、音声合成処理装置100では、継続長推定処理部3の分散範囲規制処理部36により、音素継続長の分散値の上限値Vmax も設定できるので、無音部分の音素の継続長の分散値のみが大きな値となり、話速変換時(話速変換して音声合成した時)に無音部分のみが伸縮してしまうという問題も解消できる。つまり、音声合成処理装置100では、継続長推定処理部3の分散範囲規制処理部36により、音素継続長の分散値の上限値Vmax も設定できるので、無音部分の音素継続長の分散値も上限値Vmax 以下にすることができ、その結果、話速変換時(話速変換して音声合成した時)に無音部分を適切に再生する(音声合成)することができる。
【0147】
また、音声合成処理装置100では、デコーダ4の学習可能アップサンプリング層41において、音素継続長のデータD_durに応じて、アップサンプリング処理を行うとともに、重み付け層にて、学習可能な実数の重み付け係数による重み付け加算処理(パラメータ更新可能な処理)を行うので、話速変換速度を実数値とすることができる。例えば、音声合成処理装置100において、予測処理時に、所定時間のフレーム数のデータTを「4.7」(4.7フレーム)のような実数値とすることで、(数式5)により、音素継続長の弾性率ρが取得され、さらに、音素継続長dが取得される。そして、取得された音素継続長dに対して、デコーダ4の処理、ボコーダ8の処理を行うことで、話速変換速度を実数値とした音声合成波形データを取得することができる。
【0148】
また、音声合成処理装置100は、アテンション機構を用いない構成を有しているので、発話が途中で途切れたり、停止したりするといった現象が発生することなく、安定した予測処理(音声合成処理)を行うことができる。
【0149】
以上のように、音声合成処理装置100では、音素の弾性率を考慮しつつ、安定で高精度な話速変換が可能な音声合成処理を行うことができる。
【0150】
≪実験結果≫
本発明(音声合成処理装置100)の有効性を示すために話速変換音声に対する評価実験を行った。学習セットは、通常速度で発話された音声データのみで構成される。テストセットは、通常速度で発話された音声データと、実際に、高速、低速で発話された音声データとを含む。そして、ニューラル音声合成(音声合成処理装置100による音声合成)で話速変換合成された音声と、テストデータの音声との比較を行った。学習セットの話速のヒストグラムとテストセットの話速の平均値を図5に示す。なお、比較実験において、音声合成処理装置100のボコーダ8は、下記文献(文献A)のMulti-stream HiFI-GANを採用した。
(文献A):
T. Okamoto, T. Toda, and H. Kawai, "Multi-stream HiFi-GAN with data-driven waveform decomposition," in Proc. ASRU, Dec. 2021, (accepted, in press).
図6にテストセット原音および話速変換した音声のスペクトログラムを示す。図6(a)は、高速の原音のスペクトログラムである。図6(b)は、通常速度の原音のスペクトログラムである。図6(c)は、従来法(非特許文献2(Parallel Tacotoron 2)の手法)による低速の音声(音声合成処理により取得された音声)のスペクトログラムである。図6(d)は、低速の原音のスペクトログラムである。図6(e)は、本発明(音声合成処理装置100)による低速の音声(音声合成処理装置100での音声合成処理により取得された音声)である。
【0151】
図6の結果より、従来法(非特許文献2(Parallel Tacotoron 2)の手法)は、音素の種別によらず、音素継続長を一様伸縮させているため、低速条件時(低速の音声再生時)のみに発生するショートポーズを再現できていないが、本発明(音声合成処理装置100)は、各音素の弾性率を考慮して音声合成処理を行っているため、ショートポーズを再現できていることが確認できる。
【0152】
図7に音質評価結果を示す。図7(A)は、通常速度での音質評価結果であり、図7(B)は、高速(音声再生期間を通常速度の音声再生期間の約0.78倍にして音声再現した場合)での音質評価結果であり、図7(C)は、低速(音声再生期間を通常速度の音声再生期間の約1.42倍にして音声再現した場合)での音質評価結果である。また、図7のグラフのデータを識別するための符号(a)~(g)は、以下の通りである。
(a)原音についてのデータ
(b)解析手法による音声合成で取得した音声についてのデータ
(c)話速変換が可能な(再生速度を入力可能な)アテンション機構付きAR Tacotron2による音声合成で取得した音声についてのデータ
(d)話速変換が可能な(再生速度を入力可能な)Transformer型TTSによる音声合成で取得した音声についてのデータ
(e)Parallel Tacotron2による音声合成で取得した音声についてのデータ
(f)話速変換が可能な(再生速度を入力可能な)Parallel Tacotron2による音声合成で取得した音声についてのデータ
(g)本発明(音声合成処理装置100)による音声合成で取得した音声についてデータ
図7の結果より、高速・低速の両条件において、本発明(音声合成処理装置100)により有意に音質を改善した話速変換が可能であることが確認できる。特に、高速条件の場合(高速の音声再生時)、本発明の音声合成処理による音声は、原音と同程度のMOS値(MOS:Mean Opinion Score)となっている。これは、実際の早口言葉(人が実際に発話した早口言葉)よりも本発明の音声合成処理により高速化した音声の方が聞き取りやすい可能性を示唆している。
【0153】
以上の通り、比較実験により、本発明の有効性を確認できる。
【0154】
[他の実施形態]
上記実施形態では、音声合成処理装置100において、エンコーダ2の機械学習モデル部24がトランスフォーマーモデル(トランスフォーマー型ニューラルネットワークモデル)を含む場合を想定しているが、これに限定されることはなく、例えば、エンコーダ2をRNN(Recurrent Neural Network)を用いて実現されるエンコーダとしてもよい。
【0155】
また、上記実施形態で示した音声合成処理装置100のエンコーダ2は、一例であり、他の構成を有するエンコーダを採用してもよい。
【0156】
また、上記実施形態において、音声合成処理装置100の学習処理を行うための損失関数として示した損失関数は、一例であり、他の損失関数を用いて、音声合成処理装置100の学習処理を行うようにしてもよい。
【0157】
また、上記実施形態で説明した音声合成処理装置100において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部または全部を含むように1チップ化されても良い。
【0158】
なおここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0159】
また集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサーで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0160】
また上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0161】
また上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらにソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0162】
例えば上記実施形態の各機能部をソフトウェアにより実現する場合、図8に示したハードウェア構成(例えばCPU、GPU、ROM、RAM、入力部、出力部、通信部、記憶部(例えば、HDD、SSD等により実現される記憶部)、外部メディア用ドライブ等をバスBusにより接続したハードウェア構成)を用いて各機能部をソフトウェア処理により実現するようにしてもよい。
【0163】
また上記実施形態の各機能部をソフトウェアにより実現する場合、当該ソフトウェアは、図8に示したハードウェア構成を有する単独のコンピュータを用いて実現されるものであってもよいし、複数のコンピュータを用いて分散処理により実現されるものであってもよい。
【0164】
また上記実施形態(変形例を含む)における処理方法の実行順序は、必ずしも上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0165】
前述した方法をコンピュータに実行させるコンピュータプログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここでコンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0166】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限らず、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0167】
また、本明細書内の記載、特許請求の範囲の記載において、「最適化」とは、最も良い状態にすることをいい、システム(モデル)を「最適化」するパラメータとは、当該システムの目的関数の値が最適値となるときのパラメータのことをいう。「最適値」は、システムの目的関数の値が大きくなるほど、システムが良い状態となる場合は、最大値であり、システムの目的関数の値が小さくなるほど、システムが良い状態となる場合は、最小値である。また、「最適値」は、極値であってもよい。また、「最適値」は、所定の誤差(測定誤差、量子化誤差等)を許容するものであってもよく、所定の範囲(十分収束したとみなすことができる範囲)に含まれる値であってもよい。
【0168】
なお本発明の具体的な構成は、前述の実施形態(変形例を含む)に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0169】
100 音声合成処理装置
2 エンコーダマルチストリーム生成部
3 継続長推定処理部
4 デコーダ
図1
図2
図3
図4
図5
図6
図7
図8