JP2023538803A - データ密度の勾配の推定によるエンドツーエンドのスピーチ波形生成 - Google Patents

データ密度の勾配の推定によるエンドツーエンドのスピーチ波形生成 Download PDF

Info

Publication number
JP2023538803A
JP2023538803A JP2022580985A JP2022580985A JP2023538803A JP 2023538803 A JP2023538803 A JP 2023538803A JP 2022580985 A JP2022580985 A JP 2022580985A JP 2022580985 A JP2022580985 A JP 2022580985A JP 2023538803 A JP2023538803 A JP 2023538803A
Authority
JP
Japan
Prior art keywords
output
noise
iteration
neural network
waveform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022580985A
Other languages
English (en)
Inventor
ビュンハ・チュン
モハマド・ノルージー
ナンシン・チェン
ロン・ジェイ・ウェイス
ウィリアム・チャン
ユ・ジャン
ヨンフイ・ウ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023538803A publication Critical patent/JP2023538803A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Feedback Control In General (AREA)

Abstract

音素シーケンスを条件とする波形を生成するための、コンピュータ記録媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置。一態様においては、方法が、音素シーケンスを取得するステップと、音素シーケンスの隠れ表現を生成するためにエンコーダニューラルネットワークを使用して音素シーケンスを処理するステップと、隠れ表現からコンディショニング入力を生成するステップと、現在の波形出力を初期化するステップと、複数の反復の各々において現在の波形出力を更新することによって話者による音素シーケンスの発話を定義する最終的な波形出力を生成するステップとを含み、各反復が、それぞれのノイズレベルに対応し、更新することが、各反復において、ノイズ出力を生成するためにノイズ推定ニューラルネットワークを使用して、(i)現在の波形出力および(ii)コンディショニング入力を処理すること、ならびにノイズ出力および反復に関するノイズレベルを使用して現在の波形出力を更新することを含む。

Description

関連出願の相互参照
本出願は、2020年9月2日に出願した米国特許出願第63/073,867号および2021年4月2日に出願した米国特許出願第63/170,401号の優先権を主張するものであり、これらの特許出願の開示は、参照により本明細書に組み込まれる。
本明細書は、機械学習モデルを使用してテキストシーケンスを条件とする波形を生成することに関する。
機械学習モデルは、入力を受け取り、受け取られた入力に基づいて出力、たとえば、予測される出力を生成する。一部の機械学習モデルは、パラメトリックモデルであり、受け取られた入力およびモデルのパラメータの値に基づいて出力を生成する。
一部の機械学習モデルは、受け取られた入力に関する出力を生成するためにモデルの複数の層を使用する深層モデル(deep model)である。たとえば、深層ニューラルネットワークは、出力を生成するために受け取られた入力に非線形変換をそれぞれ適用する出力層および1つまたは複数の隠れ層を含む深層機械学習モデルである。
Jonathan Shenら、「Non-Attentive Tacotron: Robust And Controllable Neural TTS Synthesis Including Unsupervised Duration Modeling」、arXiv:2010.04301v4、2021年5月11日
本明細書は、テキストシーケンスを条件とする波形を生成する、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムを説明する。
第1の態様によれば、1つまたは複数のコンピュータによって実行される方法であって、音素シーケンスを取得するステップであって、音素シーケンスが、複数の入力時間ステップの各々におけるそれぞれの音素トークンを含む、ステップと、音素シーケンスの隠れ表現(hidden representation)を生成するためにエンコーダニューラルネットワークを使用して音素シーケンスを処理するステップと、隠れ表現からコンディショニング入力(conditioning input)を生成するステップと、現在の波形出力を初期化するステップと、複数の反復の各々において現在の波形出力を更新することによって話者による音素シーケンスの発話を定義する最終的な波形出力を生成するステップとを含み、各反復が、それぞれのノイズレベルに対応し、更新することが、各反復において、ノイズ出力を生成するためにモデル入力を処理するように構成されるノイズ推定ニューラルネットワークを使用して、(i)現在の波形出力および(ii)コンディショニング入力を含む反復のためのモデル入力を処理することであって、ノイズ出力が、現在の波形出力内の各値に関するそれぞれのノイズの推定値を含む、処理すること、ならびにノイズの推定値および反復に関するノイズレベルを使用して現在の波形出力を更新することを含む、方法が提供される。
一部の実装において、ノイズ推定ニューラルネットワークおよびエンコーダニューラルネットワークは、複数の訓練音素シーケンスと、各訓練音素シーケンスに関して、それぞれのグラウンドトゥルース(ground truth)波形とを含む訓練データでエンドツーエンドで訓練された。
一部の実装において、ノイズの推定値および反復に関するノイズレベルを使用して現在の波形出力を更新することは、少なくともノイズの推定値および反復に対応するノイズレベルから反復のための更新を生成することと、最初の更新された出力波形を生成するために、現在の波形出力から更新を減算することとを含む。
一部の実装において、現在の波形出力を更新することは、修正された最初の更新された出力波形を生成するために、反復に関するノイズレベルに基づいて最初の更新された出力波形を修正することをさらに含む。
一部の実装において、最後の反復に関して、修正された最初の更新された出力波形は、最後の反復の後の更新された出力波形であり、最後の反復の前の各反復に関して、最後の反復の後の更新された出力波形は、修正された最初の更新された出力波形にノイズを加えることによって生成される。
一部の実装において、現在の波形出力を初期化するステップは、対応するノイズ分布(noise distribution)から現在の波形出力に関する複数の初期値の各々をサンプリングすることを含む。
一部の実装において、各反復におけるモデル入力は、各反復に関して異なる反復固有のデータを含む。
一部の実装において、各反復のためのモデル入力は、反復に対応するノイズレベルを含む。
一部の実装において、各反復のためのモデル入力は、反復および複数の反復の中の当該反復の後の任意の反復に対応するノイズレベルから生成された反復に関する集約ノイズレベル(aggregate noise level)を含む。
一部の実装において、ノイズ推定ニューラルネットワークは、複数のノイズ生成ニューラルネットワーク層を含み、コンディショニング入力をノイズ出力にマッピングするためにコンディショニング入力を処理するように構成されたノイズ生成ニューラルネットワークと、現在の波形出力の代替的な表現を生成するために現在の波形出力を処理するように構成された複数の出力波形処理ニューラルネットワーク層を含む出力波形処理ニューラルネットワークとを含み、ノイズ生成ニューラルネットワーク層のうちの少なくとも1つは、(i)ノイズ生成ニューラルネットワーク層のうちの別の1つの出力、(ii)対応する出力波形処理ニューラルネットワーク層の出力、および(iii)反復に関する反復固有のデータから導出される入力を受け取る。
一部の実装において、最終的な出力波形は、コンディショニング入力よりも高い次元(dimensionality)を有し、代替的な表現は、コンディショニング入力と同じ次元を有する。
一部の実装において、ノイズ推定ニューラルネットワークは、少なくとも1つのノイズ生成ニューラルネットワーク層の各々に対応するそれぞれの特徴毎線形変換(FiLM: Feature-wise Linear Modulation)モジュールを含み、所与のノイズ生成ニューラルネットワーク層に対応するFiLMモジュールは、ノイズ生成ニューラルネットワーク層への入力を生成するために、(i)ノイズ生成ニューラルネットワーク層のうちの別の1つの出力、(ii)対応する出力波形処理ニューラルネットワーク層の出力、および(iii)反復に関する反復固有のデータを処理するように構成される。
一部の実装において、所与のノイズ生成ニューラルネットワーク層に対応するFiLMモジュールは、(ii)対応する出力波形処理ニューラルネットワーク層の出力、および(iii)反復に関する反復固有のデータからスケールベクトル(scale vector)およびバイアスベクトル(bias vector)を生成し、(i)ノイズ生成ニューラルネットワーク層のうちの別の1つの出力にアフィン変換を適用することによって、所与のノイズ生成ニューラルネットワーク層への入力を生成するように構成される。
一部の実装において、ノイズ生成ニューラルネットワーク層のうちの少なくとも1つは、活性化関数層を含み、活性化関数層は、活性化関数層への入力に非線形活性化関数を適用する。
一部の実装において、活性化関数層に対応するノイズ生成ニューラルネットワーク層のうちの別の1つは、残差接続(residual connection)層または畳み込み層である。
一部の実装において、隠れ表現は、複数の隠れ時間ステップ(hidden time step)の各々に関するそれぞれの隠れベクトル(hidden vector)を含み、隠れ表現からコンディショニング入力を生成するステップは、各隠れ時間ステップに関して、隠れ時間ステップにおける隠れベクトルによって特徴付けられる発話における予測された継続時間を生成するために、継続時間予測器ニューラルネットワークを使用して隠れ表現を処理することと、最終的な波形出力の時間スケールに一致するように、予測された継続時間に従って隠れ表現をアップサンプリングすることによって、コンディショニング入力を生成することとを含む。
一部の実装において、コンディショニング入力は、最終的な波形出力内の複数の量子化された時間セグメントの各々に関するそれぞれのコンディショニングベクトル(conditioning vector)を含む。
一部の実装において、方法は、各隠れ時間ステップに関して、隠れ時間ステップにおける隠れベクトルによって特徴付けられる発話における予測された影響範囲(influence range)を生成するステップをさらに含み、隠れ表現をアップサンプリングすることは、隠れ時間ステップに関する予測された継続時間および予測された影響範囲を使用して隠れ表現にガウスアップサンプリング(Gaussian upsampling)を適用することを含む。
本明細書に記載の主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装されることが可能である。
説明される技術は、テキストシーケンスから直接、非自己回帰的な方法で出力波形を生成する。概して、自己回帰モデルは、高品質な波形を生成することが示されているが、多数の反復を必要とし、大きなレイテンシならびにリソース、たとえば、メモリおよび処理能力の消費につながる。これは、自己回帰モデルが出力波形内のそれぞれの所与の出力を1つずつ生成し、それぞれが、出力波形内の所与の出力に先立つ出力のすべてを条件としているからである。
一方、説明される技術は、最初の出力波形、たとえば、ノイズ分布からサンプリングされた値を含むノイズのある出力(noisy output)から開始し、テキストシーケンスから生成されたコンディショニング入力を条件とする勾配ベースのサンプラによって出力波形を反復的に改良する、すなわち、反復的なノイズ除去プロセスが、使用されてよい。結果として、手法は、自己回帰的でなく、推論中に一定の数の生成ステップしか必要としない。たとえば、音声合成に関して、説明された技術は、大幅に削減されたレイテンシで、ずっと少ない計算リソースを使用しながら、最新の自己回帰モデルによって生成された音声サンプルに匹敵するかまたはそれを上回りさえする高忠実度の音声サンプルを、非常に少ない反復、たとえば、6回以下の反復で生成することができる。さらに、説明される技術は、既存の非自己回帰モデルによって生成されるサンプルよりも高品質な(たとえば、より忠実度の高い)音声サンプルを生成することができる。
さらに、非自己回帰的生成の以前の手法とは異なり、説明される技術は、音素のシーケンスから直接、すなわち、メルスペクトログラムの特徴のような中間の構造化された表現を必要とせずに、音声を生成する。これは、スペクトログラムの特徴を生成するために別個のモデル使用することなくシステムが音声を生成することを可能にする。また、これは、システムが完全にエンドツーエンドで訓練されることを可能にし、したがって、訓練後に新しい入力に汎化し、様々なテキストトゥスピーチタスクでより優れた性能を発揮するシステムの能力を向上させる。
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
例示的なエンドツーエンドの波形システムのブロック図である。 テキストシーケンスを条件とする波形を生成するための例示的なプロセスの流れ図である。 例示的なノイズ推定ニューラルネットワークのブロック図である。 例示的な出力波形処理ニューラルネットワークブロックのブロック図である。 例示的な特徴毎線形変換(FiLM)モジュールのブロック図である。 例示的なノイズ生成ニューラルネットワークブロックのブロック図である。 エンドツーエンドの波形システムを訓練するための例示的なプロセスの流れ図である。
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
図1は、例示的なエンドツーエンドの波形システム100を示す。エンドツーエンドの波形システム100は、以下で説明されるシステム、コンポーネント、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
エンドツーエンドの波形システム100は、テキストシーケンス102を条件とする最終的な波形出力104を生成する。システム100は、(たとえば、ガウスノイズ分布などのノイズ分布からサンプリングすることによって)現在の波形出力116を初期化し、ノイズレベル106と、テキストシーケンス102から生成されたコンディショニング入力114とを使用して、複数の反復の各々で現在の波形出力を更新する。システム100は、最後の反復の後の更新された出力波形を、最終的な出力波形104として出力する。
一部の実装において、最終的な波形出力104は、テキストシーケンス102が話者によって話されている発話を表し得る。テキストシーケンス102は、単語の境界に挿入された無音トークンおよび各文の後に挿入されたシーケンス終了トークンを含む一連の音素トークンによって表され得る。たとえば、音素のシーケンスは、システムによって生成される波形が話されているテキストの発話を表すように、テキストまたはテキストの言語的特徴から生成され得る。システムによって生成される出力波形は、指定された出力周波数での振幅値、たとえば、生の振幅値、圧縮された振幅値、または圧伸された振幅値のシーケンスであることが可能である。生成されると、システムは、発話を再生するために出力波形を提供することができ、または音声出力デバイスを使用して発話を再生することができる。
エンドツーエンドの波形システム100は、エンコーダニューラルネットワーク108および継続時間予測器ネットワーク112を使用して、テキストシーケンス102からコンディショニング入力114を生成する。コンディショニング入力114は、最終的な波形出力内の複数の量子化された時間セグメントの各々に関するそれぞれのコンディショニングベクトルを含み得る。量子化された時間セグメントは、コンディショニング入力114に対する最終的な出力波形の分解能(たとえば、10msの時間セグメント)を表し得る。すなわち、例示的な0.8sの最終的な出力波形に関して、最終的な出力波形は、80個の10msの量子化された時間セグメントのシーケンスに分割され得る。そのとき、コンディショニング入力114は、80個のコンディショニングベクトルを含むことができ、各コンディショニングベクトルは、それぞれの10msの量子化された時間セグメントに対応する。
システム100は、エンコーダニューラルネットワーク108を使用してテキストシーケンス102を処理することによってテキストシーケンス102の隠れ表現110を生成する。隠れ表現は、複数の隠れ時間ステップの各々に関するそれぞれの隠れベクトルを含み得る。最終的な出力波形104は、隠れ表現110よりも高い周波数を有することができ、隠れ表現110は、テキストシーケンスと同じ周波数を有することができる(たとえば、テキストシーケンスを表す音素シーケンスと同じ周波数を有することができ、各隠れベクトルが音素トークンに対応する)。たとえば、各隠れベクトルは、数値のベクトルのような順序付けられた数値の集合によって表され得る。
エンコーダニューラルネットワーク108は、エンコーダニューラルネットワーク108がその説明された機能、すなわち、テキストシーケンスの隠れ表現を生成するためにテキストシーケンスを処理することを実行することを可能にする任意の適切なニューラルネットワークアーキテクチャを有することが可能である。特に、エンコーダニューラルネットワークは、任意の適切な構成で(たとえば、層の直線的なシーケンス(linear sequence)として)接続された、任意の適切な数(たとえば、1層、5層、または25層)の任意の適切な種類のニューラルネットワーク層(たとえば、全結合層、アテンション層、畳み込み層など)を含み得る。たとえば、エンコーダニューラルネットワークは、リカレントニューラルネットワーク、たとえば、LSTMまたはGRUニューラルネットワークであることが可能である。特定の例において、エンコーダニューラルネットワークは、埋め込み層と、その後に続く1つまたは複数の畳み込み層と、それから、1つまたは複数の双方向LSTMニューラルネットワーク層とを含み得る。
システム100は、隠れ表現110を「アップサンプリングする」(つまり、周波数を上げる)ことによって隠れ表現110からコンディショニング入力114を生成する。隠れ表現110をアップサンプリングするために、システム100は、各隠れ時間ステップに関して、テキストシーケンスの発話におけるそれぞれの予測された継続時間を生成する。隠れ時間ステップの予測された継続時間は、隠れ時間ステップにおける隠れベクトルによって特徴付けられる発話の予測された継続時間に対応する。
システム100は、継続時間予測器ネットワーク112を使用して隠れ表現を処理することによって、予測された継続時間を生成する。予測された継続時間は、たとえば、各数値が異なる隠れ時間ステップに対応する、数値のベクトルのような順序付けられた数値の集合によって表されることが可能である。すなわち、継続時間予測器ニューラルネットワーク112は、各隠れ時間ステップに関してそれぞれの予測された継続時間、たとえば、隠れ時間ステップにおける隠れベクトルによって特徴付けられる発話の整数の継続時間(たとえば、フレーム数)、または時間ステップにおける隠れベクトルによって特徴付けられる発話の任意の時間単位(たとえば、秒)で測定された整数の継続時間を生成するために隠れ表現を処理するように構成される。
継続時間予測器ネットワーク112は、継続時間予測器ネットワーク112がその説明された機能、すなわち、隠れ表現内の各隠れ時間ステップに関するそれぞれの予測された継続時間を生成するためにテキストシーケンスの隠れ表現を処理することを実行することを可能にする任意の適切なニューラルネットワークアーキテクチャを有することが可能である。特に、継続時間予測器ニューラルネットワークは、任意の適切な構成で(たとえば、層の直線的なシーケンスとして)接続された、任意の適切な数(たとえば、1層、5層、または25層)の任意の適切な種類のニューラルネットワーク層(たとえば、全結合層、アテンション層、畳み込み層など)を含み得る。たとえば、継続時間予測器ニューラルネットワークは、リカレントニューラルネットワーク、たとえば、LSTMまたはGRUニューラルネットワークであることが可能である。特定の例において、継続時間予測器ニューラルネットワークは、1つまたは複数の双方向LSTM層と、それに続く射影層(projection layer)とを含み得る。
たとえば、システム100は、ガウスアップサンプリングを使用して隠れ表現をアップサンプリングすることができる。ガウスアップサンプリングを実行するために、システム100は、各隠れ時間ステップに関して、隠れ時間ステップにおける隠れベクトルによって特徴付けられる(たとえば、正の数値によって表される)発話のそれぞれの予測された影響範囲を生成するために、予測された継続時間および隠れ表現を処理さらに処理することができる。発話の予測された影響範囲は、発話の影響の範囲を表し得る。それから、システムは、予測された継続時間および影響範囲を使用して隠れ表現をアップサンプリングすることができる(たとえば、各予測された永続時間-影響範囲のペアは、それぞれ、隠れ時間ステップに関するガウス分布の平均および標準偏差である)。ガウスアップサンプリングの例は、参照により本明細書に組み込まれる、Jonathan Shenら、「Non-Attentive Tacotron: Robust And Controllable Neural TTS Synthesis Including Unsupervised Duration Modeling」、arXiv:2010.04301v4、2021年5月11日を参照してより詳細に説明される。
一部の実装において、予測された影響範囲は、影響範囲予測器ニューラルネットワークによって生成され得る。影響範囲予測器ニューラルネットワークは、予測された影響範囲を生成するために、予測された継続時間と連結された隠れ表現を処理することができる。たとえば、影響範囲予測器ニューラルネットワークは、リカレントニューラルネットワーク、たとえば、LSTMまたはGRUであることが可能である。特定の例において、影響範囲予測器ニューラルネットワークは、1つまたは複数の双方向LSTM層と、それに続く射影層と、それから、ソフトプラス層とを含み得る。
システム100は、現在の波形出力116を初期化し、ノイズレベル106と、テキストシーケンス102から生成されたコンディショニング入力114とを使用して、複数の反復の各々で現在の波形出力を更新する。システム100は、最後の反復の後の更新された波形出力を、最終的な波形出力104として出力する。
たとえば、システム100は、現在の出力波形内の各値を対応するノイズ分布(たとえば、Iが単位行列であるN(0, I)のようなガウス分布)からサンプリングすることによって、現在の出力波形116を初期化することができる(すなわち、現在の出力波形116の第1のインスタンスを生成することができる)。すなわち、最初の現在の出力波形116は、最終的な出力波形104と同じ数の値を含むが、各値は、対応するノイズ分布からサンプリングされる。
そして、システム100は、テキストシーケンス102から生成されたコンディショニング入力114を使用して、複数の反復の各々で現在の出力波形116を更新することによって、最終的な出力波形104を生成する。言い換えると、最終的な出力波形104は、複数回の反復のうちの最後の反復の後の現在の出力波形116である。
場合によっては、反復の回数が決まっている。
その他の場合、システム100または別のシステムは、最終的な出力波形の生成のレイテンシの要件に基づいて反復の回数を調整することができる。すなわち、システム100は、最終的な出力波形104がレイテンシの要件を満たすように生成されるように反復の回数を選択することができる。
さらにその他の場合、システム100または別のシステムは、最終的な出力波形104の生成の計算リソース消費の要件に基づいて反復の回数を調整することができ、すなわち、最終的な出力波形が要件を満たすように生成されるように反復の回数を選択することができる。たとえば、要件は、最終的な出力波形の生成の一部として実行される浮動小数点演算の最大数(FLOPS)であることが可能である。
各反復において、システムは、ノイズ推定ニューラルネットワーク300を使用して、(i)現在の出力波形116、(ii)コンディショニング入力114、および任意で(iii)反復のための反復固有のデータを含む反復のためのモデル入力を処理する。反復固有のデータは、概して、ノイズレベル106から導出される(たとえば、各ノイズレベルが特定の反復に対応する場合)。システムは、更新の各反復のためのスケールとしてノイズレベル106を使用して現在の出力波形を更新することができる。すなわち、ノイズレベル106の各ノイズレベルが、特定の反復に対応することが可能であり、反復に関するそれぞれのノイズレベルは、反復における現在の出力波形116に対する更新のスケールを導くことができる。
ノイズ推定ニューラルネットワーク300は、パラメータ(「ネットワークパラメータ」)を有し、現在の出力波形116内の各値に関するそれぞれのノイズの推定値を含むノイズ出力110を生成するためにネットワークパラメータの現在の値に従ってモデル入力を処理するように構成されるニューラルネットワークである。ノイズ推定ニューラルネットワークの詳細は、下で図3に関連してさらに詳細に検討される。
概して、現在の出力波形内の所与の値に関するノイズの推定値は、所与の値を生成するために、テキストシーケンスに関する実際の出力波形内の対応する実際の値に加えられたノイズの推定値である。すなわち、ノイズの推定値は、現在の反復に対応するノイズレベルが与えられたとして、実際の値が、知られている場合に、現在の出力波形内の所与の値を生成するためにどのように修正される必要があるかを定義する。言い換えると、所定の値は、現在の反復に関するノイズレベルに従って実際の値にノイズの推定値を適用することによって生成される可能性がある。
このノイズの推定値は、データ密度の勾配の推定値と解釈されることが可能であり、したがって、生成プロセスは、データ密度の推定によって出力波形を反復的に生成する処理とみなされ得る。
そして、システム100は、更新エンジン120を使用して、ノイズの推定値の方向に現在の出力波形116を更新する。
特に、更新エンジン120は、ノイズの推定値および反復に関する対応するノイズレベルを使用して、現在の出力波形116を更新する。すなわち、更新エンジン120は、図2に関連してさらに詳細に検討されるように、反復におけるノイズ出力110の対応するノイズの推定値および対応するノイズレベルを使用して現在の出力波形116の各値を更新する。
最後の反復の後、条件付き出力生成システム100は、更新された出力波形116を最終的な出力波形104として出力する。たとえば、最終的な出力波形104が音声波形を表す実装において、システムは、スピーカを使用して音声を再生することができ、または再生などのために音声を送信することができる。一部の実装において、システム100は、最終的な出力波形104をデータストアに保存することができ、または遠隔に記憶されるように最終的な出力波形104を送信することができる。
システム100がノイズ推定ニューラルネットワーク300、継続時間予測器ニューラルネットワーク112、およびエンコーダニューラルネットワーク108を使用して最終的な出力波形を生成する前に、システム100または別のシステムは、訓練データを使用してニューラルネットワークを訓練する。範囲影響ニューラルネットワーク(range influence neural network)を含む実装において、システムは、訓練データを使用して範囲影響ニューラルネットワークも訓練する。訓練データは、図7を参照して説明されるように、複数の訓練テキストシーケンスと、各訓練テキストシーケンスに関して、それぞれの目標継続時間およびそれぞれのグラウンドトゥルース波形とを含み得る。
訓練データは、各テキストシーケンスに関するそれぞれの目標継続時間(たとえば、各テキストシーケンスがそれぞれの音素シーケンスによって表される場合、音素シーケンスの各音素に関するそれぞれの目標継続時間)を含み得る。継続時間予測器ニューラルネットワークは、少なくとも、各訓練テキストシーケンスに関する目標継続時間と予測された継続時間との間の誤差を測定する継続時間損失項を有する損失関数を使用して訓練され得る。予測された継続時間は、予測器ニューラルネットワークを訓練するための損失関数のために使用されることが可能であり、目標継続時間は、訓練中に隠れ表現をアップサンプリングするために使用されることが可能である。
図2は、テキストシーケンスを条件とする出力を生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた条件付き出力生成システム、たとえば、図1の条件付き出力生成システム100が、プロセス200を実行し得る。
システムは、最終的な出力波形の条件となるテキストシーケンスを取得する(202)。たとえば、テキストシーケンスは、(たとえば、テキストまたはテキストの言語的特徴から生成される)音素シーケンスによって表されることが可能であり、最終的な出力波形は、話者による音素シーケンスの発話を表すことが可能である。
システムは、エンコーダニューラルネットワークを使用してテキストシーケンスの隠れ表現を生成する(204)。隠れ表現は、複数の隠れ時間ステップの各々に関する隠れベクトルを含み得る。特定の例において、エンコーダニューラルネットワークは、埋め込み層と、1つまたは複数の畳み込み層と、1つまたは複数の双方向LSTM層とを含み得る。
システムは、隠れ表現からコンディショニング入力を生成する(206)。システムは、アップサンプリングを使用して、隠れ表現からコンディショニング入力を生成することができる。たとえば、システムは、ガウスアップサンプリングを使用して、コンディショニング入力を生成することができる。システムは、継続時間予測器ニューラルネットワークを使用して隠れ表現を処理することによって、隠れ表現内の各隠れ時間ステップに関する予測された継続時間を生成することができる。さらに、システムは、影響範囲予測器ニューラルネットワークを使用して、予測された継続時間と組み合わされた、たとえば、連結された隠れ表現を処理することによって、隠れ表現内の各隠れ時間ステップに関する予測された影響範囲を生成することができる。それから、システムは、ガウスアップサンプリングを使用して、隠れ表現、予測された継続時間、および予測された影響範囲からコンディショニング入力を生成することができる。ガウスアップサンプリングの例は、参照により本明細書に組み込まれる、Jonathan Shenら、「Non-Attentive Tacotron: Robust And Controllable Neural TTS Synthesis Including Unsupervised Duration Modeling」、arXiv:2010.04301v4、2021年5月11日を参照してより詳細に説明される。
システムは、現在の出力波形を初期化する(208)。複数の値を含む最終的な出力波形に関して、システムは、最終的な出力波形と同じ数の値を有する最初の現在の出力波形内の各値を、ノイズ分布からサンプリングすることができる。たとえば、システムは、yN~N(0, I)によって表されるノイズ分布(たとえば、ガウスノイズ分布)を使用して現在の出力波形を初期化することができ、Iは、単位行列であり、yNのNは、反復の意図された回数を表す。システムは、反復Nから反復1まで降順にN回の反復で最初の現在の出力波形を更新することができる。
そのとき、システムは、複数回の反復の各々において、現在の出力波形を更新する。概して、各反復における現在の出力波形は、追加のノイズをともなう最終的な出力波形と解釈され得る。すなわち、現在の出力波形は、最終的な出力波形のノイズのあるバージョンである。たとえば、Nが反復の回数を表す最初の現在の出力波形yNに関して、システムは、反復に対応するノイズの推定値を削除することによって、反復Nから1までの各々において現在の出力波形を更新することができる。すなわち、システムは、ノイズの推定値を決定し、推定値に従って現在の出力波形を更新することにより、各反復において現在の出力波形を改良することができる。システムは、最終的な出力波形y0を出力するまで、反復に降順を使用し得る。
複数回の反復の各々において、システムは、ノイズ推定ニューラルネットワークを使用して、(1)現在の出力波形、(2)コンディショニング入力、および任意で(3)反復に関する反復固有のデータを含むモデル入力を処理することによって反復のためのノイズ出力を生成する(210)。反復に固有のデータは、概して、反復に関するノイズレベルから導出され、各ノイズレベルは、特定の反復に対応する。ノイズ出力は、現在の出力波形内の各値に関するノイズの推定値を含み得る。たとえば、現在の出力波形内の特定の値に関するそれぞれのノイズの推定値は、特定の値を生成するために、音素シーケンスに関する実際の出力波形内の対応する実際の値に加えられたノイズの推定値を表し得る。すなわち、特定の値に関するノイズの推定値は、実際の値が、知られている場合に、特定の値を生成するために、対応するノイズレベルが与えられたとしてどのように修正される必要があるかを表す。
複数回の反復の各々において、システムは、現在の反復のためのノイズ出力と、現在の反復に対応するノイズレベルとを使用して、現在の反復の時点で現在の出力波形を更新する(212)。システムは、ノイズ出力内の対応するノイズの推定値と、現在の反復に関するノイズレベルとを使用して、現在の出力波形内の各値を更新することができる。システムは、ノイズの推定値および反復に関するノイズレベルから反復のための更新を生成し、それから、最初の更新された出力波形を生成するために現在の出力波形から更新を減算することができる。そして、システムは、反復に関するノイズレベルに基づいて最初の更新された出力波形を修正して、修正された最初の更新された出力波形を、
のように生成することができ、nは、反復をインデックス付けし、ynは、反復nにおける現在の出力波形を表し、yn-1は、修正された最初の更新された出力波形を表し、xは、コンディショニング入力を表し、αnは、反復nに関するノイズレベルを表し、
は、反復nに関する集約ノイズレベル(たとえば、これは、現在の反復および現在の反復の後の任意の反復におけるノイズレベルから生成される)を表し、
は、パラメータθを用いてノイズ推定ニューラルネットワークによって生成されたノイズ出力を表す。ノイズレベルαnおよび集約ノイズレベル
は、ノイズスケジュール(noise schedule)
(たとえば、最小値から最大値まで線形に変動する線形ノイズスケジュール、フィボナッチベースのスケジュール(Fibonacci-based schedule)、またはデータ駆動型もしくはヒューリスティックな方法から生成されたカスタムスケジュール)から決定され得る。ノイズレベルαn = 1-βnおよび集約ノイズレベル
は、一様分布(uniform distribution)から、
のようにサンプリングされることが可能であり、nは、反復をインデックス付けし、
である。式(2)のように
をサンプリングすることは、システムがノイズの異なるスケールに基づいて更新を生成することを可能にする。各反復nに関するノイズレベルαnおよび集約ノイズレベル
は、予め決定され、モデル入力の一部としてシステムによって取得され得る。
最後の反復に関して、修正された最初の更新された出力波形は、最後の反復の後の更新された出力波形であり、最後の反復の前の各反復に関して、最後の反復の後の更新された出力波形は、修正された最初の更新された出力波形にノイズを加えることによって生成される。すなわち、反復が最後の反復でない場合(すなわち、n > 1である場合)、システムは、修正された最初の更新された出力波形を、
yn-1 = yn-1nz (3)
のようにさらに更新し、nは、反復をインデックス付けし、σnは、ノイズスケジュール
または別の方法から決定される(たとえば、ノイズスケジュールの関数として、もしくは経験的な実験を使用するハイパーパラメータのチューニングによって決定される)ことが可能であり、z~N(0, I)である。σnは、多峰性分布(multi-modal distribution)をモデリングすることを可能にするために含まれる。
システムは、終了基準が満たされたか否かを判定する(214)。たとえば、終了基準は、(たとえば、最低性能指標(minimum performance metric)、最大レイテンシ要件、またはFLOPSの最大数などの最大計算リソース要件を満たすように決定された)特定の回数の反復を実行したことを含み得る。特定の回数の反復が実行されていない場合、システムは、ステップ(206)から再び開始し、現在の出力波形に対して別の更新を実行することができる。
終了基準が満たされたとシステムが判定する場合、システムは、最後の反復の後の更新された出力波形である最終的な出力波形を出力する(216)。
プロセス200は、音素シーケンスを条件とする非自己回帰的な方法で出力波形を生成するために使用され得る。概して、自己回帰モデルは、高品質な出力波形を生成することが示されているが、多数の反復を必要とし、大きなレイテンシならびにリソース、たとえば、メモリおよび処理能力の消費につながる。これは、自己回帰モデルが出力波形内のそれぞれの所与の出力を1つずつ生成し、それぞれが、出力波形内の所与の出力に先立つ出力のすべてを条件としているからである。一方、プロセス200は、最初の出力波形、たとえば、ノイズ分布からサンプリングされた値を含むノイズのある出力から開始し、音素シーケンスを条件とする勾配ベースのサンプラによって出力波形を反復的に改良する。結果として、手法は、自己回帰的でなく、推論中に一定の数の生成ステップしか必要としない。たとえば、スペクトログラムを条件とする音声合成に関して、説明された技術は、大幅に削減されたレイテンシで、ずっと少ない計算リソースを使用しながら、最新の自己回帰モデルによって生成された音声サンプルに匹敵するかまたはそれを上回りさえする高忠実度の音声サンプルを、非常に少ない反復、たとえば、6回以下の反復で生成することができる。
さらに、非自己回帰的生成の以前の手法とは異なり、説明される技術は、音素のシーケンスから直接、すなわち、メルスペクトログラムの特徴のような中間の構造化された表現を必要とせずに、音声を生成する。これは、スペクトログラムの特徴を生成するために別個のモデル使用することなくシステムが音声を生成することを可能にする。また、これは、システムが完全にエンドツーエンドで訓練されることを可能にし、したがって、訓練後に新しい入力に汎化し、様々なテキストトゥスピーチタスクでより優れた性能を発揮するシステムの能力を向上させる。
図3は、ノイズ推定ネットワーク300の例示的なアーキテクチャを示す。
例示的なノイズ推定ネットワーク300は、畳み込みニューラルネットワーク層、ノイズ生成ニューラルネットワークブロック、特徴毎線形変換(FiLM)モジュールニューラルネットワークブロック、および出力波形処理ニューラルネットワークブロックなどの複数の種類のニューラルネットワーク層およびニューラルネットワークブロックを含む(たとえば、各ニューラルネットワークブロックが複数のニューラルネットワーク層を含む)。
ノイズ推定ネットワーク300は、ノイズ出力118を生成するために、(1)現在の出力波形116、(2)コンディショニング入力114、および(3)現在の反復に対応する集約ノイズレベル306を含む反復固有のデータを含むモデル入力を処理する。現在の出力波形116は、コンディショニング入力114よりも高い次元(たとえば、周波数)を有し、ノイズ出力118は、現在の出力波形116と同じ次元(たとえば、周波数)を有する。たとえば、現在の出力波形は、24kHzの音声波形を表すことが可能であり、コンディショニング入力は、80Hzで表されることが可能である。
ノイズ推定ネットワーク300は、現在の出力波形116のそれぞれの代替的な表現を生成するために現在の出力波形116を処理するための複数の出力波形処理ブロックを含む。
ノイズ推定ネットワーク300は、現在の出力波形の代替的な表現を生成するために現在の出力波形116を処理するための出力波形処理ブロック400も含み、代替的な表現は、現在の出力波形よりも小さい次元(たとえば、周波数)を有する。
ノイズ推定ネットワーク300は、前の代替的な表現よりもさらに小さい次元(たとえば、周波数)を有する別の代替的な表現を生成するために前の出力波形処理ブロックによって生成された代替的な表現を処理するための追加の出力波形処理ブロック(たとえば、出力波形処理ブロック318、316、314、および312)をさらに含む(たとえば、ネットワーク318は、ブロック400の出力よりも小さい次元を有する代替的な表現を生成するためにブロック400からの代替的な表現を処理し、ブロック316は、ブロック318の出力よりも小さい次元を有する代替的な表現を生成するためにブロック318からの代替的な表現を処理するなど)。最後の出力波形処理ブロック(たとえば、312)から生成された現在の出力波形の代替的な表現は、コンディショニング入力114と同じ次元(たとえば、周波数)を有する。
たとえば、24kHzの音声波形を含む現在の出力波形および80Hzのコンディショニング入力に関して、出力波形処理ブロックのブロックは、最後の層312によって生成される代替的な表現が80Hzになる(すなわち、コンディショニング入力に一致するように300分の1に小さくされる)まで、(たとえば、それぞれ、の出力波形処理ブロック400、318、316、314、および312によって)次元を2分の1、2分の1、3分の1、5分の1、および5分の1に「ダウンサンプリングする」(すなわち、周波数を下げる)ことができる。例示的な出力波形処理ブロックのアーキテクチャは、図4に関連してさらに詳細に検討される。
ノイズ推定ブロック300は、ノイズ生成ニューラルネットワークブロックのための入力を生成するために、現在の反復に対応する反復固有のデータ(たとえば、集約ノイズレベル306)と、出力波形処理ニューラルネットワークブロックからの代替的な表現とを処理するための複数のFiLMモジュールニューラルネットワークブロックを含む。各FiLMモジュールは、それぞれのノイズ生成ブロックのための入力を生成するために、集約ノイズレベル306と、それぞれの出力波形処理ブロックからの代替的な表現とを処理する(たとえば、FiLMモジュール500は、ノイズ生成ブロック600のための入力を生成するために出力波形処理ブロック400からの代替的な表現を処理し、FILMモジュール328は、ノイズ生成ブロック338のための入力を生成するために出力波形処理ブロック318からの代替的な表現を処理するなど)。特に、各FiLMモジュールは、図5を参照してさらに詳細に検討されるように、それぞれのノイズ生成ブロックへの入力として(たとえば、それぞれのノイズ生成ブロック内のアフィン変換ニューラルネットワーク層への入力として)、スケールベクトルおよびバイアスベクトルを生成する。
ノイズ推定ネットワーク300は、ノイズ出力118を生成するためにコンディショニング入力114とFiLMモジュールからの出力とを処理するための複数のノイズ生成ニューラルネットワークブロックを含む。ノイズ推定ネットワーク300は、第1のノイズ生成ブロック332への入力を生成するためにコンディショニング入力114を処理するための畳み込み層302と、ノイズ出力118を生成するために最後のノイズ生成ブロック600からの出力を処理するための畳み込み層304とを含み得る。各ノイズ生成ブロックは、コンディショニング入力114よりも高い次元(たとえば、周波数)を有する出力を生成する。特に、1つ目の後の各ノイズ生成ブロックは、前のノイズ生成ブロックからの出力よりも高い次元(たとえば、周波数)を有する出力を生成する。最後のノイズ生成ブロックは、現在の出力波形116と同じ次元(たとえば、周波数)の出力を生成する。
ノイズ推定ネットワーク300は、ノイズ生成ブロック334への入力を生成するために、畳み込み層302(すなわち、コンディショニング入力114を処理する畳み込み層)からの出力と、FILMモジュール332からの出力とを処理するためのノイズ生成ブロック332を含む。ノイズ推定ネットワーク300は、ノイズ生成ブロック336、338、および600をさらに含む。ノイズ生成ブロック334、336、338、および600は、次のニューラルネットワークブロックのための入力を生成するために、それぞれの前のノイズ生成ブロックからの出力(たとえば、ブロック334はブロック332からの出力を処理し、ブロック336はブロック334からの出力を処理するなど)と、それぞれのFiLMモジュールからの出力(たとえば、ノイズ生成ブロック334はFILMモジュール324からの出力を処理し、ノイズ生成ブロック336はFILMモジュール326からの出力を処理するなど)とをそれぞれ処理する。ノイズ生成ブロック600は、ノイズ出力118を生成するために入力を処理する畳み込み層304のための入力を生成する。例示的なノイズ生成ブロック(たとえば、ノイズ生成ブロック600)のアーキテクチャは、図6に関連してさらに詳細に検討される。
最後よりも前の各ノイズ生成ブロックは、現在の出力波形の対応する代替的な表現と同じ次元(たとえば、周波数)を有する出力を生成することができる(たとえば、ノイズ生成ブロック332は、出力波形処理ブロック314によって生成された代替的な表現と等しい次元を有する出力を生成し、ノイズ生成ブロック334は、出力波形処理ブロック316からの出力と等しい次元を有する出力を生成するなど)。
たとえば、24kHzの音声波形を含む現在の出力波形および80Hzのコンディショニング入力に関して、ノイズ生成ブロックは、最後のノイズ生成ブロック(たとえば、ノイズ生成ブロック600)の出力が24kHzになる(すなわち、現在の出力波形116に一致するように300倍に大きくされる)まで、(たとえば、それぞれ、ノイズ生成ブロック332、334、336、338、および600によって)次元を5、5、3、2、および2倍に「アップサンプリングする」(すなわち、周波数を上げる)ことができる。
図4は、出力波形処理ブロック400の例示的なアーキテクチャを示す。
出力波形処理ブロック400は、現在の出力波形116の代替的な表現402を生成するために現在の出力波形116を処理する。代替的な表現は、現在の出力波形よりも小さい次元を有する。出力波形処理ブロック400は、1つまたは複数のニューラルネットワーク層を含む。1つまたは複数のニューラルネットワーク層は、(たとえば、入力の次元を「ダウンサンプリングする」または小さくするための)ダウンサンプリング層、非線形活性化関数を有する活性化層(たとえば、Leaky ReLU活性化関数を有する全結合層)、畳み込み層、および残差接続層を含む複数の種類のニューラルネットワーク層を含み得る。
たとえば、ダウンサンプル層は、入力の次元を小さくする(「ダウンサンプリングする」)ために必要なストライドを用いる畳み込み層であることが可能である。特定の例においては、ストライドXが、入力の次元をX分の1に小さくするために使用されることが可能である(たとえば、ストライド2が、入力の次元を2分の1に小さくするために使用されることが可能であり、ストライド5が、入力の次元を5分の1に小さくするために使用されることが可能であるなど)。
残差接続層420の左の分岐は、畳み込み層402およびダウンサンプル層404を含む。畳み込み層402は、ダウンサンプル層404への入力を生成するために現在の出力波形116を処理する。ダウンサンプル層404は、残差接続層420への入力を生成するために畳み込み層402からの出力を処理する。ダウンサンプル層404の出力は、現在の出力波形116と比較して、小さくされた次元を有する。たとえば、畳み込み層402は、ストライド1のサイズ1x1のフィルタを(すなわち、次元を維持するために)含むことができ、ダウンサンプル層404は、入力の次元を2分の1にダウンサンプリングするためにストライド2のサイズ2x1のフィルタを含むことができる。
残差接続層420の右の分岐は、ダウンサンプル層406と、活性化層の後に畳み込み層が続く3つの後続のブロック(たとえば、活性化層408、畳み込み層410、活性化層412、畳み込み層414、活性化層416、および畳み込み層418)とを含む。ダウンサンプル層406は、活性化層および畳み込み層の後続の3つのブロックのための入力を生成するために現在の出力波形116を処理する。ダウンサンプル層406の出力は、現在の出力波形116と比較してより小さい次元を有する。後続の3つのブロックは、残差接続層420への入力を生成するためにダウンサンプリング層406からの出力を処理する。たとえば、ダウンサンプル層406は、(たとえば、ダウンサンプル層404と厳密に一致するように)入力の次元を2分の1に小さくするためにストライド2のサイズ2x1のフィルタを含み得る。活性化層(たとえば、408、412、および416)は、Leaky ReLU活性化関数を有する全結合層であることが可能である。畳み込み層(たとえば、410、414、および418)は、ストライド1のサイズ3x1のフィルタを(すなわち、次元を維持するため)含み得る。
残差接続層420は、左の分岐からの出力と右の分岐からの出力とを組み合わせて、代替的な表現402を生成する。たとえば、残差接続層420は、代替的な表現402を生成するために左の分岐からの出力と右の分岐からの出力とを加算(たとえば、要素毎に加算)することができる。
図5は、例示的な特徴毎線形変換(FiLM)モジュール500を示す。
FiLMモジュール500は、スケールベクトル512およびバイアスベクトル516を生成するために、現在の出力波形の代替的な表現402と、現在の反復に対応する集約ノイズレベル306とを処理する。スケールベクトル512およびバイアスベクトル516は、それぞれのノイズ生成ブロック(たとえば、図3のノイズ推定ネットワーク300のノイズ生成ブロック600)内の特定の層(たとえば、アフィン変換層)への入力として処理され得る。FiLMモジュール500は、位置符号化(positional encoding)関数および1つまたは複数のニューラルネットワーク層を含む。1つまたは複数のニューラルネットワーク層は、残差接続層、畳み込み層、および非線形活性化関数を有する活性化層(たとえば、Leaky ReLU活性化関数を有する全結合層)を含む複数の種類のニューラルネットワーク層を含み得る。
残差接続層508の左の分岐は、位置符号化関数502を含む。位置符号化関数502は、ノイズレベルの位置符号化を生成するために集約ノイズレベル306を処理する。たとえば、集約ノイズレベル306は、トランスフォーマモデルの前処理と同様に、偶数次元インデックスのための正弦関数と、奇数次元インデックスのための余弦関数との組合せである位置符号化関数502を乗算され得る。
残差接続層508の右の分岐は、畳み込み層504および活性化層506を含む。畳み込み層504は、活性化層506への入力を生成するために代替的な表現402を処理する。活性化層506は、残差接続層508への入力を生成するために畳み込み層504からの出力を処理する。たとえば、畳み込み層504は、(次元を維持するために)ストライド1のサイズ3x1のフィルタを含むことができ、活性化層506は、Leaky ReLU活性化関数を有する全結合層であることができる。
残差接続層508は、左の分岐からの出力(たとえば、位置符号化関数502からの出力)と、右の分岐からの出力(たとえば、活性化層506からの出力)とを組み合わせて、畳み込み層510と畳み込み層514との両方への入力を生成することができる。たとえば、残差接続層508は、2つの畳み込み層(たとえば、510および514)への入力を生成するために左の分岐からの出力と右の分岐からの出力とを加算(たとえば、要素毎に加算)することができる。
畳み込み層510は、スケールベクトル512を生成するために残差接続層508からの出力を処理する。たとえば、畳み込み層510は、(次元を維持するために)ストライド1のサイズ3x1のフィルタを含み得る。
畳み込み層514は、バイアスベクトル516を生成するために残差接続層508からの出力を処理する。たとえば、畳み込み層514は、(次元を維持するために)ストライド1のサイズ3x1のフィルタを含み得る。
図6は、ノイズ生成ブロック600の例示的なアーキテクチャを示す。
ノイズ生成ブロック600は、出力310を生成するために入力602とFiLMモジュール500からの出力とを処理する。入力602は、(たとえば、図3のノイズ生成ブロック338、336、334、332、および畳み込み層302からの)1つまたは複数の前のニューラルネットワーク層によって処理された音素シーケンスであることが可能である。出力310は、ノイズ出力118を生成するために出力310を処理する後続の畳み込み層(たとえば、図3の畳み込み層304)への入力であることが可能である。ノイズ生成ブロック600は、1つまたは複数のニューラルネットワーク層を含む。1つまたは複数のニューラルネットワーク層は、非線形活性化関数を有する活性化層(たとえば、Leaky ReLU活性化関数を有する全結合層)、アップサンプル層(たとえば、これは入力の次元を「アップサンプリングする」または大きくする)、畳み込み層、アフィン変換層、および残差接続層を含む複数の種類のニューラルネットワーク層を含み得る。
たとえば、アップサンプル層は、入力の次元を「アップサンプリングする」(すなわち、大きくする)ニューラルネットワーク層であることが可能である。つまり、アップサンプル層は、層への入力よりも高い次元を有する出力を生成する。特定の例において、アップサンプル層は、入力と比較して出力の次元をX倍に大きくするために、入力内の各値のX個のコピーを有する出力を生成することができる(たとえば、入力(2,7,-4)に関して、(2,2,7,7,-4,-4)のように各値の2つのコピー、または(2,2,2,2,2,7,7,7,7,7,-4,-4,-4,-4,-4)のように各値の5つのコピーなどを有する出力を生成することができる)。概して、アップサンプル層は、出力内のそれぞれの追加のスポットを、入力内の最も近い値で埋めることができる。
残差接続層618の左の分岐は、アップサンプル層602および畳み込み層604を含む。アップサンプル層602は、畳み込み層604への入力を生成するために入力602を処理する。畳み込み層への入力は、入力602よりも高い次元を有する。畳み込み層604は、残差接続層618への入力を生成するためにアップサンプル層602からの出力を処理する。たとえば、アップサンプル層は、入力602内の各値の2つのコピーを有する出力を生成することによって、入力の次元を2倍に大きくすることができる。畳み込み層604は、(たとえば、次元を維持するために)次元3x1およびストライド1のフィルタを含み得る。
残差接続層618の右の分岐は、活性化層606(たとえば、Leaky ReLU活性化関数を有する全結合層)、アップサンプル層608、(たとえば、3x1のフィルタサイズおよびストライド1を有する)畳み込み層610、アフィン変換層612、活性化層614(たとえば、Leaky ReLU活性化関数を有する全結合層)、ならびに(たとえば、3x1のフィルタサイズおよびストライド1を有する)畳み込み層616をこの順に含む。
活性化層606は、アップサンプル層608への入力を生成するために入力602を処理する。アップサンプル層は、入力602よりも(たとえば、アップサンプル層602に一致するように2倍)高い次元を有する畳み込み層610への入力を生成するために活性化層606からの出力の次元を大きくする。畳み込み層610は、(たとえば、次元を維持するために次元3x1およびストライド1のフィルタを用いて)アフィン変換層612への入力を生成するためにアップサンプル層608からの出力を処理する。活性化層614および畳み込み層616は、(たとえば、ネットワーク614に関してはLeaky ReLU関数、およびネットワーク616に関しては次元3x1およびストライド1のフィルタを用いて)残差接続層618への入力を生成するためにアフィン変換層612からの出力をさらに処理する。
たとえば、アフィン変換関数は、出力を生成するために、先行するニューラルネットワーク層(たとえば、ノイズ生成ブロック600の畳み込み層610)からの出力と、FiLMモジュールからの出力とを処理することができる。たとえば、FiLMモジュールは、スケールベクトルおよびバイアスベクトルを生成することができる。アフィン変換層は、FiLMモジュールからのスケールベクトルを使用して前のニューラルネットワーク層からの出力を(たとえば、アダマール積、または要素毎の乗算を使用して)スケーリングした結果にバイアスベクトルを加算することができる。
アフィン変換層612は、活性化層614への入力を生成するために、畳み込み層610からの出力と、FiLMモジュール500からの出力とを処理することができる。たとえば、FiLMモジュール500からのスケールベクトルを用いて畳み込み層610からの出力をスケーリングした結果に、FiLMモジュール500からのバイアスベクトルを加算することによる。
残差接続層618は、左の分岐からの出力(たとえば、畳み込み層604からの出力)と、右の分岐からの出力(たとえば、畳み込み層616からの出力)とを組み合わせて出力を生成する。たとえば、残差接続層618は、出力を生成するために左の分岐からの出力と右の分岐からの出力とを合計することができる。
残差接続層632の左の分岐は、残差接続層618からの出力を含む。左の分岐は、残差接続層618からの出力の恒等関数(identity function)と解釈され得る。
残差接続層632の右の分岐は、残差接続層618からの出力を処理し、残差接続層632への入力を生成するために、アフィン変換層、活性化層、および畳み込み層の順の2つの連続したブロックを含む。特に、第1のブロックは、アフィン変換層620、活性化層622、および畳み込み層624を含む。第2のブロックは、アフィン変換層626、活性化層628、および畳み込み層630を含む。
たとえば、各ブロックに関して、それぞれのアフィン変換層は、それぞれの出力を生成するために、FiLMモジュール500からの出力と、それぞれの前のニューラルネットワーク層からの出力とを処理することができる(たとえば、アフィン変換層620は残差接続層618からの出力を処理することができ、アフィン変換層626は畳み込み層624からの出力を処理することができる)。各アフィン変換層は、FiLMモジュール500からのスケールベクトルを用いて前のニューラルネットワーク層からの出力をスケーリングし、スケーリングの結果をFiLMモジュール500からのバイアスベクトルと合計することによって、それぞれの出力を生成することができる。各活性化層(たとえば、620および628)は、Leaky ReLU活性化関数を有するそれぞれの全結合層であることが可能である。各畳み込み層は、(たとえば、次元を維持するために)次元3x1およびストライド1のそれぞれフィルタを含み得る。
残差接続層632は、左の分岐からの出力(たとえば、残差接続層618からの出力の恒等関数(identity))と、右の分岐からの出力(たとえば、畳み込み層630からの出力)とを組み合わせて出力310を生成する。たとえば、残差接続層632は、出力310を生成するために左の分岐からの出力と右の分岐からの出力とを合計することができる。出力310は、ノイズ出力118を生成する畳み込み層(たとえば、図3の畳み込み層304)への入力であることができる。
ノイズ発生ブロック600は、複数のチャネルを含み得る。図3の各ノイズ生成ブロック(たとえば、600、338、336、334、および332)は、それぞれの数のチャネルを含み得る。たとえば、ノイズ生成ブロック600、338、336、334、および332は、それぞれ、128、128、256、512、および512チャネルを含み得る。
図7は、エンドツーエンドの波形システムを訓練するための例示的なプロセスの流れ図である。便宜上、プロセス700は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。
システムは、複数回の訓練の反復の各々でプロセス700を実行して、エンドツーエンドの波形システムのニューラルネットワークのペラメータの値を繰り返し更新することができる。
システムは、訓練テキストシーケンス、それぞれの目標継続時間、および対応する訓練出力波形の三つ組みのバッチ(batch)を取得する(702)。たとえば、システムは、データストアから訓練の三つ組みをランダムにサンプリングすることができる。訓練出力波形は、(たとえば、テキストまたはテキストの言語的特徴から生成される音素シーケンスによって表される)訓練テキストシーケンスの発話(たとえば、話者の録音)を表し得る。それぞれの目標継続時間は、テキストシーケンスから継続時間予測器ニューラルネットワークによって予測されるべきグラウンドトゥルース継続時間の組を表し得る。
バッチ内のそれぞれの訓練の三つ組みに関して、システムは、訓練テキストシーケンスからコンディショニング入力を生成する(704)。システムは、図2からのステップ(204)~(206)と同じ方法で、訓練テキストシーケンスからコンディショニング入力を生成することができる。たとえば、システムは、エンコーダニューラルネットワークを使用して、テキストシーケンスの(たとえば、複数の隠れ時間ステップのそれぞれに関するそれぞれの隠れベクトルを含む)隠れ表現を生成することができる。それから、システムは、継続時間予測器ニューラルネットワークを使用して、隠れ表現内の各隠れ時間ステップに関するそれぞれの予測された継続時間を生成することができる。これらの予測された継続時間は、テキストシーケンスの隠れ表現内の隠れ時間ステップに関する予測された継続時間と目標継続時間との間の誤差を測定する継続時間損失項(たとえば、テキストシーケンスの対応する予測された継続時間および目標継続時間のペアの間の2乗誤差の総和を含むL2損失項)のために使用され得る。予測器ニューラルネットワークは、少なくとも継続時間予測損失項を含む損失関数(たとえば、ステップ(714)からの損失関数と継続時間予測損失との線形結合)の勾配と、(たとえば、ADAMなどの)適切な最適化方法とを使用して訓練され得る。
システムは、(たとえば、図2において検討されたように、影響範囲ニューラルネットワークおよびガウスアップサンプリングを使用して)目標継続時間を使用してコンディショニング入力を生成するために隠れ表現をアップサンプリングする(すなわち、隠れ表現の次元を大きくする)ことができる。
バッチ内のそれぞれの訓練の三つ組みに関して、システムは、反復のすべてに関する反復固有のデータを含む組から反復固有のデータを選択する(706)。たとえば、システムは、1から最後の反復までの整数を含む離散一様分布から特定の反復をサンプリングし、それから、分布からサンプリングされた特定の反復に基づいて反復固有のデータを選択することができる。反復固有のデータは、ノイズレベル、(たとえば、式(2)で決定される)集約ノイズレベル、または反復回数自体を含み得る。したがって、システムは、離散的なインデックスをノイズ推定ニューラルネットワークの条件とすることができ、またはノイズレベルを示す連続的なスカラをノイズ推定ニューラルネットワークの条件とすることができる。ノイズレベルを示す連続的なスカラを条件とすることは、ノイズ推定ニューラルネットワークが訓練されると、推論時に、最終的なネットワーク出力を生成するときに、異なる数の改善ステップ(すなわち、反復)が使用され得るので、有利になり得る。
バッチ内の各訓練の三つ組みに関して、システムは、訓練出力波形内の各値に関するそれぞれのノイズ値を含むノイズのある出力をサンプリングする(708)。たとえば、システムは、ノイズ分布からノイズのある出力をサンプリングすることができる。特定の例において、ノイズ分布は、ガウスノイズ分布(たとえば、Iが次元n x nの単位行列であり、nが訓練出力波形内の数の値であるN(0, I)など)であることが可能である。
バッチ内のそれぞれの訓練の三つ組みに関して、システムは、ノイズのある出力および対応する訓練出力波形から修正された訓練出力波形を生成する(710)。システムは、ノイズのある出力と対応する訓練出力波形とを組み合わせて、修正された訓練出力波形を生成することができる。たとえば、システムは、修正された訓練出力波形を、
のように生成することができ、y'は、修正された訓練出力波形を表し、y0は、対応する訓練出力波形を表し、εは、ノイズのある出力を表し、
は、反復固有のデータ(たとえば、集約ノイズレベル)を表す。
バッチ内のそれぞれの訓練の三つ組みに関して、システムは、ノイズ推定ニューラルネットワークパラメータの現在の値に従ってノイズ推定ニューラルネットワークを使用して、(1)修正された訓練出力波形、(2)訓練テキストシーケンス、および(3)反復固有のデータを含むモデル入力を処理することによって訓練ノイズ出力を生成する(712)。ノイズ推定ニューラルネットワークは、図2のプロセスにおいて説明されたように、訓練ノイズ出力を生成するためにモデル入力を処理することができる。たとえば、反復固有の基準は、集約ノイズレベル
を含み得る。
システムは、訓練の三つ組みのバッチに関して目的関数の勾配からノイズ推定ネットワーク、継続時間予測器ネットワーク、およびエンコーダネットワークのネットワークパラメータに対する更新を決定する(714)。システムは、バッチ内のそれぞれの訓練の三つ組みについて、ニューラルネットワークパラメータに関して目的関数の勾配を決定し、次に、ニューラルネットワークに勾配を逆伝播するためにモーメンタム(momentum)付き確率的勾配降下法またはADAMなどの様々な適切な最適化方法のいずれかを使用して、勾配(たとえば、勾配の平均などの勾配の線形結合)を用いてニューラルネットワークパラメータの現在値を更新することができる。
目的関数は、各訓練の三つ組みに関して、ノイズのある出力とノイズ推定ネットワークによって生成された訓練ノイズ出力との間の誤差を測定することができる。たとえば、特定の訓練の三つ組みに関して、目的関数は、
のような、ノイズのある出力と訓練ノイズ出力との間のL1距離を測定する損失項を含むことができ、L(ε,εθ)は、損失関数を表し、εは、ノイズのある出力を表し、
は、パラメータθを用いてノイズ推定ニューラルネットワークによって生成された訓練ノイズ出力を表し、y'は、修正された訓練出力波形を表し、xは、訓練テキストシーケンスを表し、
は、反復固有のデータ(たとえば、集約ノイズレベル)を表す。継続時間予測ニューラルネットワークを訓練するために、システムは、式(5)の損失関数の勾配を逆伝播し、結果をステップ(704)において説明された継続時間損失項の勾配と線形結合として結合することができる。
システムは、訓練の三つ組みの複数のバッチ(たとえば、複数の訓練テキストシーケンス、それぞれの目標継続時間、および訓練出力波形の三つ組み)に関してステップ(702)~(714)を繰り返し実行することが可能である。
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムのコンポーネントに関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、システムが、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書に記載の主題の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的記録媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータ記録媒体は、機械可読記憶装置、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプトに、問題にしているプログラムに専用の単一のファイルに、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実行するようにプログラミングされるソフトウェアに基づくシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数の場所の1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータが、特定のエンジンに専用であり、その他の場合、複数のエンジンが、同じ1台のコンピュータまたは複数のコンピュータにインストールされ、実行されていることが可能である。
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGAもしくはASICによって、または専用の論理回路と1つもしくは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量記憶装置からデータを受信するか、もしくはそれらの大容量記憶装置にデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶装置、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、スピーチ、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習の訓練または生成、つまり、推論の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、配置されることが可能である。
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、たとえば、クライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態に組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
同様に、動作が特定の順序で図面に示され、請求項に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
主題の特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
100 条件付き出力生成システム、エンドツーエンドの波形システム
102 テキストシーケンス
104 最終的な波形出力、最終的な出力波形
106 ノイズレベル
108 エンコーダニューラルネットワーク
110 ノイズ出力、隠れ表現
112 継続時間予測器ネットワーク
114 コンディショニング入力
116 現在の波形出力、現在の出力波形
118 ノイズ出力
120 更新エンジン
200 プロセス
300 ノイズ推定ニューラルネットワーク、ノイズ推定ネットワーク
302 畳み込み層
304 畳み込み層
306 集約ノイズレベル
310 出力
312 出力波形処理ブロック
314 出力波形処理ブロック
316 出力波形処理ブロック
318 出力波形処理ブロック
324 FILMモジュール
326 FILMモジュール
328 FILMモジュール
332 ノイズ生成ブロック
334 ノイズ生成ブロック
336 ノイズ生成ブロック
338 ノイズ生成ブロック
400 出力波形処理ブロック
402 代替的な表現、畳み込み層
404 ダウンサンプル層
406 ダウンサンプル層
408 活性化層
410 畳み込み層
412 活性化層
414 畳み込み層
416 活性化層
418 畳み込み層
420 残差接続層
500 FiLMモジュール
502 位置符号化関数
504 畳み込み層
506 活性化層
508 残差接続層
510 畳み込み層
512 スケールベクトル
514 畳み込み層
516 バイアスベクトル
600 ノイズ生成ブロック
602 入力、アップサンプル層
604 畳み込み層
606 活性化層
608 アップサンプル層
610 畳み込み層
612 アフィン変換層
614 活性化層
616 畳み込み層
618 残差接続層
620 アフィン変換層
622 活性化層
624 畳み込み層
626 アフィン変換層
628 活性化層
630 畳み込み層
632 残差接続層
700 プロセス

Claims (20)

1つまたは複数のコンピュータによって実行される方法であって、
音素シーケンスを取得するステップであって、前記音素シーケンスが、複数の入力時間ステップの各々におけるそれぞれの音素トークンを含む、ステップと、
前記音素シーケンスの隠れ表現を生成するためにエンコーダニューラルネットワークを使用して前記音素シーケンスを処理するステップと、
前記隠れ表現からコンディショニング入力を生成するステップと、
現在の波形出力を初期化するステップと、
複数の反復の各々において前記現在の波形出力を更新することによって話者による前記音素シーケンスの発話を定義する最終的な波形出力を生成するステップとを含み、各反復が、それぞれのノイズレベルに対応し、前記更新することが、各反復において、
ノイズ出力を生成するためにモデル入力を処理するように構成されるノイズ推定ニューラルネットワークを使用して、(i)前記現在の波形出力および(ii)前記コンディショニング入力を含む前記反復のための前記モデル入力を処理することであって、前記ノイズ出力が、前記現在の波形出力内の各値に関するそれぞれのノイズの推定値を含む、処理すること、ならびに
前記ノイズの推定値および前記反復に関する前記ノイズレベルを使用して前記現在の波形出力を更新することを含む、方法。
前記ノイズ推定ニューラルネットワークおよび前記エンコーダニューラルネットワークが、複数の訓練音素シーケンスと、各訓練音素シーケンスに関して、それぞれのグラウンドトゥルース波形とを含む訓練データでエンドツーエンドで訓練された請求項1に記載の方法。
前記ノイズの推定値および前記反復に関する前記ノイズレベルを使用して前記現在の波形出力を更新することが、
少なくとも前記ノイズの推定値および前記反復に対応する前記ノイズレベルから前記反復のための更新を生成することと、
最初の更新された出力波形を生成するために、前記現在の波形出力から前記更新を減算することとを含む請求項1または2に記載の方法。
前記現在の波形出力を更新することが、
修正された最初の更新された出力波形を生成するために、前記反復に関する前記ノイズレベルに基づいて前記最初の更新された出力波形を修正することをさらに含む請求項3に記載の方法。
最後の反復に関して、前記修正された最初の更新された出力波形が、前記最後の反復の後の更新された出力波形であり、前記最後の反復の前の各反復に関して、前記最後の反復の後の前記更新された出力波形が、前記修正された最初の更新された出力波形にノイズを加えることによって生成される請求項4に記載の方法。
前記現在の波形出力を初期化するステップが、対応するノイズ分布から前記現在の波形出力に関する複数の初期値の各々をサンプリングすることを含む請求項1から5のいずれか一項に記載の方法。
各反復における前記モデル入力が、各反復に関して異なる反復固有のデータを含む請求項1から6のいずれか一項に記載の方法。
各反復のための前記モデル入力が、前記反復に対応する前記ノイズレベルを含む請求項7に記載の方法。
各反復のための前記モデル入力が、前記反復および前記複数の反復の中の前記反復の後の任意の反復に対応する前記ノイズレベルから生成された前記反復に関する集約ノイズレベルを含む請求項7に記載の方法。
前記ノイズ推定ニューラルネットワークが、
複数のノイズ生成ニューラルネットワーク層を含み、前記コンディショニング入力を前記ノイズ出力にマッピングするために前記コンディショニング入力を処理するように構成されたノイズ生成ニューラルネットワークと、
前記現在の波形出力の代替的な表現を生成するために前記現在の波形出力を処理するように構成された複数の出力波形処理ニューラルネットワーク層を含む出力波形処理ニューラルネットワークとを含み、
前記ノイズ生成ニューラルネットワーク層のうちの少なくとも1つが、(i)前記ノイズ生成ニューラルネットワーク層のうちの別の1つの出力、(ii)対応する出力波形処理ニューラルネットワーク層の出力、および(iii)前記反復に関する前記反復固有のデータから導出される入力を受け取る請求項7から9のいずれか一項に記載の方法。
前記最終的な出力波形が、前記コンディショニング入力よりも高い次元を有し、前記代替的な表現が、前記コンディショニング入力と同じ次元を有する請求項10に記載の方法。
前記ノイズ推定ニューラルネットワークが、少なくとも1つのノイズ生成ニューラルネットワーク層の各々に対応するそれぞれの特徴毎線形変換(FiLM)モジュールを含み、所与のノイズ生成ニューラルネットワーク層に対応する前記FiLMモジュールが、前記ノイズ生成ニューラルネットワーク層への前記入力を生成するために、(i)前記ノイズ生成ニューラルネットワーク層のうちの前記別の1つの前記出力、(ii)前記対応する出力波形処理ニューラルネットワーク層の前記出力、および(iii)前記反復に関する前記反復固有のデータを処理するように構成される請求項10または11に記載の方法。
前記所与のノイズ生成ニューラルネットワーク層に対応する前記FiLMモジュールが、
(ii)前記対応する出力波形処理ニューラルネットワーク層の前記出力、および(iii)前記反復に関する前記反復固有のデータからスケールベクトルおよびバイアスベクトルを生成し、
(i)前記ノイズ生成ニューラルネットワーク層のうちの前記別の1つの前記出力にアフィン変換を適用することによって、前記所与のノイズ生成ニューラルネットワーク層への前記入力を生成するように構成される請求項12に記載の方法。
前記ノイズ生成ニューラルネットワーク層のうちの前記少なくとも1つが、活性化関数層を含み、前記活性化関数層が、前記活性化関数層への入力に非線形活性化関数を適用する請求項10から13のいずれか一項に記載の方法。
前記活性化関数層に対応する前記ノイズ生成ニューラルネットワーク層のうちの前記別の1つが、残差接続層または畳み込み層である請求項14に記載の方法。
前記隠れ表現が、複数の隠れ時間ステップの各々に関するそれぞれの隠れベクトルを含み、前記隠れ表現からコンディショニング入力を生成するステップが、
各隠れ時間ステップに関して、前記隠れ時間ステップにおける前記隠れベクトルによって特徴付けられる前記発話における予測された継続時間を生成するために、継続時間予測器ニューラルネットワークを使用して前記隠れ表現を処理することと、
前記最終的な波形出力の時間スケールに一致するように、前記予測された継続時間に従って前記隠れ表現をアップサンプリングすることによって、前記コンディショニング入力を生成することとを含む請求項1から15のいずれか一項に記載の方法。
前記コンディショニング入力が、前記最終的な波形出力内の複数の量子化された時間セグメントの各々に関するそれぞれのコンディショニングベクトルを含む請求項16に記載の方法。
各隠れ時間ステップに関して、前記隠れ時間ステップにおける前記隠れベクトルによって特徴付けられる前記発話における予測された影響範囲を生成するステップをさらに含み、前記隠れ表現をアップサンプリングすることが、前記隠れ時間ステップに関する前記予測された継続時間および前記予測された影響範囲を使用して前記隠れ表現にガウスアップサンプリングを適用することを含む請求項16または請求項17に記載の方法。
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から18のいずれか一項に記載の方法の動作を実行させるように動作可能である命令を記憶する1つまたは複数の記憶装置とを含むシステム。
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から18のいずれか一項に記載の方法の動作を実行させる命令を符号化されたコンピュータ記録媒体。
JP2022580985A 2020-09-02 2021-09-02 データ密度の勾配の推定によるエンドツーエンドのスピーチ波形生成 Pending JP2023538803A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063073867P 2020-09-02 2020-09-02
US63/073,867 2020-09-02
US202163170401P 2021-04-02 2021-04-02
US63/170,401 2021-04-02
PCT/US2021/048937 WO2022051552A1 (en) 2020-09-02 2021-09-02 End-to-end speech waveform generation through data density gradient estimation

Publications (1)

Publication Number Publication Date
JP2023538803A true JP2023538803A (ja) 2023-09-12

Family

ID=78032519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022580985A Pending JP2023538803A (ja) 2020-09-02 2021-09-02 データ密度の勾配の推定によるエンドツーエンドのスピーチ波形生成

Country Status (5)

Country Link
US (1) US20230252974A1 (ja)
EP (1) EP4150616A1 (ja)
JP (1) JP2023538803A (ja)
KR (1) KR20230015981A (ja)
WO (1) WO2022051552A1 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11017761B2 (en) * 2017-10-19 2021-05-25 Baidu Usa Llc Parallel neural text-to-speech

Also Published As

Publication number Publication date
US20230252974A1 (en) 2023-08-10
WO2022051552A1 (en) 2022-03-10
EP4150616A1 (en) 2023-03-22
KR20230015981A (ko) 2023-01-31

Similar Documents

Publication Publication Date Title
CN108630190B (zh) 用于生成语音合成模型的方法和装置
JP7213913B2 (ja) ニューラルネットワークを使用したオーディオの生成
KR102602195B1 (ko) 트레이닝된 장단기 메모리 신경망 양자화
JP2020502625A (ja) ニューラルネットワークを使用したテキストシーケンスの処理
CN111699497B (zh) 使用离散潜变量的序列模型的快速解码
JP2020506488A (ja) バッチ再正規化層
US20210089909A1 (en) High fidelity speech synthesis with adversarial networks
CN111598253A (zh) 使用教师退火来训练机器学习模型
CN116235247A (zh) 使用持续时间预测的文本到语音
JP2023538803A (ja) データ密度の勾配の推定によるエンドツーエンドのスピーチ波形生成
CN113823312B (zh) 语音增强模型生成方法和装置、语音增强方法和装置
JP2023540834A (ja) データ密度の勾配の推定による条件付き出力生成

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240401