オーディオ音声サンプルのより大きくより多様なデータセットをトレーニングに使用すると、よりロバストな音声モデルが得られる。音声トレーニング用の多数のオーディオ音声サンプルを準備することは、ユーザにとって、不便であり手間がかかる場合がある。合成音声生成のシステムおよび方法を開示する。たとえば、音声生成器は、発話の入力表現(たとえば、オーディオ信号、ビデオ信号、テキストなど)を受信する(またはアクセスする)。音声生成器は、ターゲット感情(たとえば、平静、楽しい、悲しいなど)、ターゲット発話速度(たとえば、遅い、中間、もしくは速い)、発話特性が使用されるターゲット人物(たとえば、特定の口調を有するユーザ、有名人、子供など)、またはそれらの組合せなどのターゲット発話特性を示す制御パラメータを受信する。音声生成器は、ターゲット発話特性に基づく符号化データを生成するように制御パラメータに基づいて入力表現を処理する、マルチエンコーダ変換器などのマルチエンコーダと、符号化データを復号することによってオーディオ信号(たとえば、合成音声信号)を生成するデコーダとを含む。音声生成器は、制御パラメータの様々なセットを同じ入力表現に適用することによって、合成オーディオサンプルの多様なセットを生成することができる。
本開示の特定の態様が、図面を参照しながら以下で説明される。説明では、共通の特徴は、共通の参照番号によって指定される。本明細書で使用される場合、様々な用語は、特定の実装形態について説明することのみを目的に使用され、実装形態を限定することは意図されない。たとえば、単数形"a"、"an"、および"the"は、文脈が別段に明確に示さない限り複数形も含むことを意図する。さらに、本明細書で説明するいくつかの特徴は、いくつかの実装形態では単数形であり、他の実装形態では複数形である。例示のために、図1は、1つまたは複数のプロセッサ(図1の「プロセッサ」190)を含むデバイス102を示し、このことは、いくつかの実装形態では、デバイス102が、単一のプロセッサ190を含み、他の実装形態では、デバイス102が、複数のプロセッサ190を含むことを示す。本明細書において参照しやすいように、そのような特徴は一般に、「1つまたは複数の」特徴として紹介され、その後、複数のその特徴に関係する態様について説明するのでない限り、単数形で参照される。
本明細書で使用される「備える」("comprise"、"comprises"および"comprising")という用語は、「含む」("include"、"includes"または"including")と互換的に使用されてもよい。さらに、"wherein"という用語は、"where"と互換的に使用されてもよい。本明細書で使用される「例示的」は、例、実装形態、および/または態様を示し、選好または好適な実装形態を限定するものとして、または示すものとして解釈されるべきではない。本明細書で使用される、構造、構成要素、動作などの要素を修飾するために使用される、順序を示す用語(たとえば、「第1の」、「第2の」、「第3の」など)は、それ自体、別の要素に関する要素の優先順位または順序を示しておらず、むしろ、要素を、(順序を示す用語の使用を別にすれば)同じ名前を有する別の要素から区別しているだけである。本明細書において使用される場合、「セット」という用語は、特定の要素の1つまたは複数(one or more)を指し、「複数(plurality)」という用語は、複数(multiple)(たとえば、2つ以上)の特定の要素を指す。
本明細書で使用される「結合される」は、「通信可能に結合される」、「電気的に結合される」、または「物理的に結合される」を含んでもよく、(または代替的に)それらの任意の組合せを含んでもよい。2つのデバイス(または構成要素)は、1つまたは複数の他のデバイス、構成要素、ワイヤ、バス、ネットワーク(たとえば、有線ネットワーク、ワイヤレスネットワーク、またはそれらの組合せ)などを介して直接的または間接的に結合されてもよい(たとえば、通信可能に結合されるか、電気的に結合されるか、または物理的に結合されてもよい)。例示的で、非制限的な例として、電気的に結合された2つのデバイス(または構成要素)が、同じデバイスに含められてもよく、またはそれぞれに異なるデバイスに含められてもよく、かつ電子機器、1つもしくは複数のコネクタ、または誘導結合を介して接続されてもよい。いくつかの実装形態では、電気通信などにおいて通信可能に結合された2つのデバイス(または構成要素)は、1つもしくは複数のワイヤ、バス、ネットワークなどを介して直接的または間接的に信号(たとえば、デジタル信号またはアナログ信号)を送受信してもよい。本明細書で使用される「直接結合される」は、介在する構成要素なしに結合された(たとえば、通信可能に結合されるか、電気的に結合されるか、または物理的に結合される)2つのデバイスを含んでもよい。
本開示では、「判定する(判断する)」、「算出する」、「推定する」、「シフトする」、「調整する」などの用語は、1つまたは複数の動作がどのように実行されるかを述べるために使用される場合がある。そのような用語は限定的なものと解釈すべきではなく、同様の動作を実行するために他の技法が利用されてもよいことに留意されたい。加えて、本明細書で言及する「生成すること」、「算出すること」、「推定すること」、「使用すること」、「選択すること」、「アクセスすること」、および「判定すること」は、互換的に使用されてもよい。たとえば、パラメータ(または信号)を「生成すること」、「算出すること」、「推定すること」、もしくは「判定すること」は、パラメータ(または信号)を能動的に生成すること、推定すること、算出すること、もしくは判定することを指す場合があるか、または別の構成要素もしくはデバイスなどによって、すでに生成されたパラメータ(または信号)を使用すること、選択すること、もしくはアクセスすることを指す場合がある。
図1を参照すると、合成音声を生成するように構成されるシステムの特定の例示的な態様が開示され、全体的に100と指定されている。システム100は、音声生成器120を使用して合成音声を生成するように構成されるデバイス102を含む。デバイス102は、メモリ132に結合された1つまたは複数のプロセッサ190を含む。1つまたは複数のプロセッサ190は、音声生成器120を含む。いくつかの実装形態では、デバイス102は、マイクロフォン182、音声レポジトリ184、またはその両方に結合される。特定の実装形態では、マイクロフォン182、音声レポジトリ184、またはその両方は、デバイス102の外部に位置する。代替えの実装形態では、マイクロフォン182、音声レポジトリ184、またはその両方は、デバイス102に組み込まれる。
音声生成器120は、オーディオアナライザ122、スタイルデータ生成器126、マルチエンコーダトランスフォーマ128、音声シンセサイザ130、またはそれらの組合せを含む。特定の態様では、オーディオアナライザ122は、スタイルデータ生成器126、マルチエンコーダトランスフォーマ128、またはその両方に結合される。スタイルデータ生成器126は、マルチエンコーダトランスフォーマ128を介して音声シンセサイザ130に結合される。特定の態様では、音声シンセサイザ130は、音声レポジトリ184に結合される。
オーディオアナライザ122は、入力信号121を処理して発話の入力表現123を生成するように構成される。特定の例では、入力信号121は、たとえば、マイクロフォン182を介して受信されるか、または記憶デバイスから取り出されるオーディオ信号を含む。別の例では、入力信号121は、オーディオ情報および画像情報を示すビデオ信号を含む。入力表現123は、入力信号121に基づいて、テキスト、メル尺度スペクトログラム、基本周波数(F0)特徴、音声の1つもしくは複数の他の表現、またはそれらの組合せを含む。特定の例では、オーディオアナライザ122は、特徴抽出を実行してメル尺度スペクトログラム、基本周波数(F0)特徴、またはそれらの組合せを入力表現123として生成するように構成される。特定の例では、オーディオアナライザ122は、入力信号121に対して音声テキスト変換を実行して入力表現123としてテキストを生成するように構成される。
スタイルデータ生成器126は、図2を参照しながらさらに説明されるように、入力表現123および1つまたは複数の制御パラメータ125に基づいてマージされたスタイルデータを生成するように構成される。1つまたは複数の制御パラメータ125は、1つまたは複数のターゲット発話特性141を示す。たとえば、ターゲット発話特性141は、ターゲット人物143(たとえば、人物180)、ターゲット感情145(たとえば、楽しい、怒り、興奮、悲しい、または平静)、ターゲット発話速度147(たとえば、中間発話速度)、またはそれらの組合せを示す。特定の態様では、マージされたスタイルデータ127は、入力表現123を表す埋め込み(たとえば、埋め込みベクトル)および1つまたは複数の制御パラメータ125に対応する。
マルチエンコーダトランスフォーマ128は、図4A~図5を参照しながらさらに説明されるように、入力表現123およびマージされたスタイルデータ127を処理して出力スペクトルデータを生成するように構成されている。マルチエンコーダトランスフォーマ128は、マルチエンコーダ192とデコーダ194とを含む。マルチエンコーダ192は、合成音声信号131に対応する符号化データ193を生成するように1つまたは複数の制御パラメータ125に基づいて入力表現123を処理するように構成されている。たとえば、合成音声信号131は、符号化データ193に基づく。特定の態様では、図4Aを参照しながらさらに説明されるように、マルチエンコーダ192は、1つまたは複数の制御パラメータ125とは独立に(たとえば、ターゲット発話特性141とは独立に)入力表現123を処理して第1の符号化データを生成するように構成される第1のエンコーダを含む。マルチエンコーダ192は、図4Aおよび図4Bを参照しながらさらに説明されるように、(1つまたは複数の制御パラメータ125に基づく)マージされたスタイルデータ127を処理して第2の符号化データを生成するように構成される1つまたは複数の第2のエンコーダを含む。したがって、第2の符号化データは、1つまたは複数の制御パラメータ125(たとえば、ターゲット発話特性141)に基づく。デコーダ194は、図4Aおよび図4Bを参照しながらさらに説明されるように、符号化データ193に基づいて出力スペクトルデータ129(たとえば、第1の符号化データおよび第2の符号化データ)を生成するように構成される。音声合成器130は、出力スペクトルデータ129に対して音声合成を実行して、ターゲット発話特性141に基づく(たとえば、入力表現123によって示される)発話のバージョンを表す合成音声信号131を生成するように構成される。
メモリ132は、音声生成器120によって使用または生成されるデータを記憶するように構成される。たとえば、メモリ132は、入力信号121の少なくとも一部、入力表現123、1つまたは複数の制御パラメータ125、マージされたスタイルデータ127、符号化データ193、出力スペクトルデータ129、合成音声信号131の少なくとも一部、またはそれらの組合せを記憶するように構成される。特定の態様では、メモリ132は、1つまたは複数の制御パラメータ125とターゲット発話特性141との間のマッピングを示すマッピングデータを記憶する。たとえば、マッピングデータは、1つまたは複数の制御パラメータ125のうちの第1の制御パラメータの値と人物のセット151との間の第1のマッピング、1つまたは複数の制御パラメータ125のうちの第2の制御パラメータの値と感情のセット161との間の第2のマッピング、1つまたは複数の制御パラメータ125のうちの第3の制御パラメータの値と発話速度のセット171との間の第3のマッピング、またはそれらの組合せを示す。スタイルデータ生成器126は、1つまたは複数の制御パラメータ125によって示される第1の制御パラメータの値が、人物のセット151のうちのターゲット人物143にマップされることをマッピングデータが示すと判定したことに応答して、1つまたは複数の制御パラメータ125がターゲット人物143を示すと判定する。同様に、スタイルデータ生成器126は、1つまたは複数の制御パラメータ125によって示される第2の制御パラメータの値が、感情のセット161のうちのターゲット感情145にマップされることをマッピングデータが示すと判定したことに応答して、1つまたは複数の制御パラメータ125がターゲット感情145を示すと判定する。スタイルデータ生成器126は、1つまたは複数の制御パラメータ125によって示される第3の制御パラメータの値が、発話速度のセット171のうちのターゲット発話速度147にマップされることをマッピングデータが示すと判定したことに応答して、1つまたは複数の制御パラメータ125がターゲット発話速度147を示すと判定する。
いくつかの実装形態では、デバイス102は、1つまたは様々なタイプのデバイスに対応するかまたは含まれる。図示の例では、1つまたは複数のプロセッサ190は、図10を参照しながらさらに説明するような、マイクロフォン182を含むヘッドセットデバイスに組み込まれる。他の例では、1つまたは複数のプロセッサ190は、図9を参照しながら説明するようなモバイルフォンもしくはタブレットコンピュータデバイス、図11を参照しながら説明するようなウェアラブル電子デバイス、図12を参照しながら説明するようなボイス制御スピーカシステム、図13を参照しながら説明するようなカメラデバイス、または図14を参照しながら説明するような仮想現実、拡張現実、もしくは複合現実ヘッドセットのうちの少なくとも1つに組み込まれる。別の図示の例では、1つまたは複数のプロセッサ190は、図15および図16を参照しながらさらに説明するような、マイクロフォン182も含む移動体に組み込まれる。
動作中に、オーディオアナライザ122は、マイクロフォン182を介して入力信号121を受信する。たとえば、マイクロフォン182は、人物180の発話(たとえば、「ドアのロックを解除してください」)を捕捉し、発話を表す入力信号121をオーディオアナライザ122に提供する。入力信号121によって表される発話(たとえば、「ドアのロックを解除してください」)は、特定の発話速度(たとえば、速い発話速度)および特定の感情(たとえば、不安)を有する。
オーディオアナライザ122は、入力信号121の入力表現123を生成する。たとえば、オーディオアナライザ122は、入力信号121に対して音声テキスト変換を実行して、テキスト(たとえば、「ドアのロックを解除してください」)を生成する。別の例として、オーディオアナライザ122は、入力信号121に対してオーディオ特徴抽出を実行してメル尺度スペクトログラム、基本周波数(F0)特徴、またはそれらの組合せを生成する。入力表現123は、テキスト(たとえば、「ドアのロックを解除してください」)、メル尺度スペクトログラム、基本周波数(F0)特徴、またはそれらの組合せを含む。
デバイス102は、1つもしくは複数の制御パラメータ125を受信するか、または1つもしくは複数の制御パラメータ125にアクセスする。特定の態様では、1つまたは複数の制御パラメータ125は、デフォルトデータ、構成設定、ユーザ入力、またはそれらの組合せに基づく。1つまたは複数の制御パラメータ125は、音声生成器120によって生成される合成音声のターゲット発話特性141を示す。
特定の態様では、ターゲット発話特性141は、人物のセット151のうちのターゲット人物143(たとえば、人物180)を示す。人物のセット151は、第1の人物(人物1)153、第2の人物(人物2)155、第Nの人物(人物N)157などの1人もしくは複数の追加の人物、またはそれらの組合せを含む。例示的で非限定的な例では、人物のセット151は、特定の有名人、特定のユーザ、特定の口調を有する人物、特定の年齢の人物、特定の性別の人物、またはそれらの組合せを含む。ターゲット人物143の発話特性は、音声生成器120によって使用されて合成音声が生成される。特定の例では、ターゲット人物143は、「オバマ大統領」を示す。別の例では、ターゲット人物143は、「テキサス訛りを有する中年男性」を示す。特定の例では、ターゲット人物143は、人物180を示す。
特定の態様では、ターゲット発話特性141は、感情のセット161から選択されたターゲット感情145(たとえば、平静)を示す。感情のセット161は、第1の感情(感情1)163、第2の感情(感情2)165、第Nの感情(感情N)167などの1つもしくは複数の追加の感情、またはそれらの組合せを含む。例示的で非制限的な例では、感情のセット161は、楽しい、恐怖、不安、興奮、怒り、落ち着き、平静、またはそれらの組合せを含む。
特定の態様では、ターゲット発話特性141は、発話速度のセット171から選択されたターゲット発話速度147(たとえば、中間発話速度)を示す。発話速度のセット171は、第1の発話速度(発話速度1)173、第2の発話速度(発話速度2)175、第Nの発話速度(発話速度N)177などの1つもしくは複数の追加の発話速度、またはそれらの組合せを含む。例示的で非制限的な例では、発話速度のセット171は、遅い発話速度、中間発話速度、速い発話速度、またはそれらの組合せを含む。
スタイルデータ生成器126は、図2を参照しながらさらに説明されるように、入力表現123および1つまたは複数の制御パラメータ125に基づいて、マージされたスタイルデータ127を生成する。たとえば、マージされたスタイルデータ127は、入力表現123を表す埋め込み(たとえば、埋め込みベクトル)および1つまたは複数の制御パラメータ125に対応する。
マルチエンコーダトランスフォーマ128は、図4Aおよび図4Bを参照しながらさらに説明されるように、入力表現123およびマージされたスタイルデータ127を処理して出力スペクトルデータ129を生成する。たとえば、マルチエンコーダ192の第1のエンコーダは、図4Aを参照しながらさらに説明されるように、1つまたは複数の制御パラメータ125とは独立に(たとえば、ターゲット発話特性141とは独立に)入力表現123を処理して第1の符号化データを生成する。マルチエンコーダ192の1つまたは複数の第2のエンコーダは、図4Aおよび図4Bを参照しながらさらに説明されるように、マージされたスタイルデータ127を処理して第2の符号化データを生成する。
特定の態様では、マージされたスタイルデータ127は、入力表現123を処理する間マルチエンコーダ192によって使用される。たとえば、1つまたは複数のエンコーダは、第1のエンコーダが入力表現123を処理するのと同時に、マージされたスタイルデータ127を処理する。マルチエンコーダ192は、符号化データ193(たとえば、第1の符号化データ、第2の符号化データ、またはそれらの組合せ)をデコーダ194に提供する。特定の態様では、符号化データ193は、マルチエンコーダ192の出力埋め込み(たとえば、埋め込みベクトル)に対応する。
デコーダ194は、図4Aを参照してさらに説明されるように、符号化データ193(たとえば、第1の符号化データおよび第2の符号化データ)を処理して出力スペクトルデータ129を生成する。音声合成器130は、出力スペクトルデータ129に対して音声合成を実行して、合成音声信号131を生成する。合成音声信号131は、ターゲット発話特性141に基づく入力表現123によって示される発話のバージョンに対応する。
マルチエンコーダ192およびデコーダ194は、例示的な例としてマルチエンコーダトランスフォーマ128に含まれるものとして説明される。いくつかの例では、マルチエンコーダ192およびデコーダ194は、トランスフォーマ以外の構成を有する。
1つまたは複数の制御パラメータ125についてのマルチエンコーダ192に(および1つまたは複数の制御パラメータ125とは無関係の第1のエンコーダとは別個の)1つまたは複数の第2のエンコーダを有すると、図3を参照しながらさらに説明されるように、1つまたは複数の制御パラメータ125の各々に基づいて入力表現123を符号化するように第2のエンコーダをトレーニングする(たとえば、最適化する)ことができる。
特定の例では、合成音声信号131は、ターゲット発話特性141を有する。特定の例では、合成音声信号131は、(入力信号121と比較して)ターゲット発話特性141を有することに、より近くなる。特定の態様では、音声生成器120は、図3を参照しながらさらに説明されるように、1つまたは複数の制御パラメータ125および合成音声信号131に対応する推定された制御パラメータに基づいて、マルチエンコーダトランスフォーマ128の構成パラメータ(たとえば、ニューラルネットワーク重み)を調整するように構成されるアジャスタを含む。したがって、音声生成器120は、マルチエンコーダトランスフォーマ128を動的にトレーニングして合成音声生成の精度を向上させることができる。
デバイス102は、例示的な例として、入力信号121を受信して、入力信号121に基づいて入力表現123を生成するものとして説明される。たとえば、スタイルデータ生成器126およびマルチエンコーダトランスフォーマ128の各々は、オーディオアナライザ122から入力表現123を受信する。いくつかの例では、デバイス102は、(たとえば、入力信号121の代わりに)入力表現123を受信する。たとえば、デバイス102(たとえば、マルチエンコーダトランスフォーマ128およびスタイルデータ生成器126の各々)は、人物180、別のデバイス、またはその両方からの入力として入力表現123を受信する。
例示的な例として、入力表現123は、特定の感情(たとえば、不安)および特定の発話速度(たとえば、高い発話速度)を有する人物180の発話に対応する。合成音声信号131は、ターゲット感情145(たとえば、平静)およびターゲット発話速度147(たとえば、中間発話速度)を有するターゲット人物143(たとえば、人物180)の発話に対応する。この例では、合成音声信号131(たとえば、中間発話速度を有する平静な発話)に対して音声認識を実行すると、入力信号121(たとえば、高い発話速度を有する不安な発話)に対して音声認識を実行することと比較して認識精度が向上する。
特定の態様では、音声生成器120は、合成音声信号131を音声レポジトリ184に付加する。たとえば、音声生成器120は、図6を参照しながらさらに説明されるように、入力信号121に基づいてトレーニングデータセットを生成する(または更新する)。例示のために、音声生成器120は、1つもしくは複数の制御パラメータ125の第1のセットに基づく第1の合成音声信号131、1つもしくは複数の制御パラメータ125の第2のセットに基づく第2の合成音声信号131、1つもしくは複数の制御パラメータ125の1つもしくは複数の追加のセットに基づく1つもしくは複数の追加の合成音声信号131、またはそれらの組合せを生成する。音声生成器120は、入力信号121、第1の合成音声信号131、第2の合成音声信号131、1つもしくは複数の追加の合成音声信号131、またはそれらの組合せを音声レポジトリ184内のトレーニングデータセットに付加する。
特定の例では、音声生成器120は、同じ入力信号121に基づいて様々な感情および発話速度に対応する複数の合成音声信号を生成する。この例では、合成音声信号を使用して、人物180によって発話された数個の語を使用して人物180の発話を表すロバストな音声モデル(たとえば、ニューラルネットワーク)をトレーニングすることができる。例示のために、登録中に、特定の発話特性(たとえば、中間発話速度を有する平静な発話)を有する人物180の発話(たとえば、登録発話)が、ニューラルネットワークをトレーニングするための入力信号121として受信される。様々な発話特性に対応する合成音声に基づいてニューラルネットワークをトレーニングすると、ニューラルネットワークは、登録音声の発話特性(たとえば、中間発話速度を有する平静な発話)とは異なる発話特性(たとえば、速い発話速度を有する不安な発話)を有する発話を認識することができる。
特定の例では、音声生成器120は、同じ入力信号121に基づいて様々な感情、様々な発話速度、および様々な人物の発話特性に対応する複数の合成音声信号を生成する。この例では、人物180によって発話された数個の語を使用して、大きく多様な合成音声データセットを生成することができる。
マイクロフォン182は、デバイス102に結合されるものとして示されているが、他の実装形態では、マイクロフォン182はデバイス102に組み込まれてもよい。1つのマイクロフォン182が図示されているが、他の実装形態では、ユーザの発話を捕捉するように構成される1つまたは複数の追加のマイクロフォンが含められてもよい。いくつかの実装形態では、音声生成器120がストレージから入力信号121または入力表現123を(たとえば、メモリ132から取り出されるかまたは別のデバイスから受信されたテキストデータとして)取り出すときなどに、マイクロフォン182が省略される。システム100は、デバイス102内に音声生成器120のすべての構成要素を含むように示されているが、他の実装形態では、第2のデバイスが付加されてもよく、第2のデバイスが、デバイス102において実行されるものとして説明される動作のいくつかを実行してもよい。
図2を参照すると、音声生成器120の特定の実装形態が示されている。スタイルデータ生成器126は、人物エンコーダ206、感情エンコーダ208、発話速度エンコーダ210、1つもしくは複数の追加の発話特性エンコーダ、またはそれらの組合せなどの複数の発話特性エンコーダを含む。
特定の態様では、オーディオアナライザ122は、複数の発話特性エンコーダの各々に結合される。複数の発話特性エンコーダの各々は、エンコーダプレネット212に結合される。複数の発話特性エンコーダの各々は、1つまたは複数の制御パラメータ125によって示される対応する発話特性に基づいて入力表現123の符号化バージョンを生成するように構成される。たとえば、人物エンコーダ206は、人物符号化入力表現207を生成するように入力表現123、および1つまたは複数の制御パラメータ125のうちの人物制御パラメータ(たとえば、ターゲット人物143を示す)を処理するように構成される。例示のために、人物エンコーダ206は、入力表現123および人物制御パラメータ(たとえば、ターゲット人物143を示す)を入力として受信し、入力表現123および人物制御パラメータを表す人物符号化入力表現207(たとえば、埋め込みベクトル)を出力するように構成されるニューラルネットワーク(たとえば、畳み込みニューラルネットワーク(CNN))を含む。
同様に、感情エンコーダ208は、感情符号化入力表現209を生成するように入力表現123、および1つまたは複数の制御パラメータ125のうちの感情制御パラメータ(たとえば、ターゲット感情145を示す)を処理するように構成される。特定の例では、発話速度エンコーダ210は、発話速度符号化入力表現211を生成するように入力表現123、および1つまたは複数の制御パラメータ125のうちの発話速度パラメータ(たとえば、ターゲット発話速度147を示す)を処理するように構成される。
エンコーダプレネット212は、ニューラルネットワーク(たとえば、CNN)、線形投影層、またはその両方を含む。特定の例では、人物符号化入力表現207、感情符号化入力表現209、発話速度符号化入力表現211、またはそれらの組合せが、ニューラルネットワーク(たとえば、CNN)の入力埋め込みに対応する。エンコーダプレネットのニューラルネットワークは、入力埋め込み(たとえば、符号化入力表現)を処理して出力埋め込みを生成する。ニューラルネットワークは、線形投影層に出力埋め込みを提供し、線形投影層は、ニューラルネットワークの出力埋め込みに対して線形投影を実行することによって、マージされたスタイルデータ127を生成する。特定の態様では、マルチエンコーダトランスフォーマ128は、畳み込みを含まず、畳み込みは、エンコーダプレネット212を使用して人物符号化入力表現207、感情符号化入力表現209、発話速度符号化入力表現211、またはそれらの組合せを処理することによって実行される。エンコーダプレネット212は、マージされたスタイルデータ127をマルチエンコーダ192に提供する。
マルチエンコーダ192は、オーディオアナライザ122から入力表現123を受信し、スタイルデータ生成器126からマージされたスタイルデータ127を受信する。マルチエンコーダ192は、入力表現123およびマージされたスタイルデータ127を処理して符号化データ193を生成する。たとえば、マルチエンコーダ192は、図4Aおよび図4Bを参照しながらさらに説明されるように、図1のターゲット発話特性141と無関係の第1の符号化データを生成するように入力表現123を処理し、図1のターゲット発話特性141に対応する第2の符号化データを生成するように、マージされたスタイルデータ127を処理する。特定の態様では、エンコーダプレネット212はまた、マージされたスタイルデータ127をデコーダ194に提供する。この態様では、デコーダ194は、出力スペクトルデータ129を生成するように、マージされたスタイルデータ127に基づいて符号化データ193を処理する。
図3を参照すると、音声合成器130が制御パラメータ推定器310および損失計算器312を介してアジャスタ314に結合される、音声生成器120の特定の実装形態が示されている。
制御パラメータ推定器310は、合成音声信号131を処理して1つまたは複数の推定された制御パラメータ311を生成する。たとえば、制御パラメータ推定器310は、合成音声信号131に対応する、推定される人物、推定される感情、推定される発話速度、またはそれらの組合せを判定する。
特定の例では、制御パラメータ推定器310は、合成音声信号131を図1の人物のセット151の各々に関連する音声モデルと比較することによってモデル一致スコアを生成する。制御パラメータ推定器310は、モデル一致スコアのうちで、合成音声信号131と最もぴったり一致する特定の音声モデルに対応するモデル一致スコア(たとえば、最高一致スコア)を選択する。制御パラメータ推定器310は、特定の音声モデルが特定の人物の発話を表すと判定したことに応答して、特定の人物を推定される人物として示す1つまたは複数の推定された制御パラメータ311を生成する。
特定の態様では、制御パラメータ推定器310は、感情検出技法を使用して、合成音声信号131によって示される推定される感情を検出する。たとえば、制御パラメータ推定器310は、推定される感情を表す出力(たとえば、分類器出力または埋め込み)を生成するように合成音声信号131を表す入力埋め込みを処理するように構成されるニューラルネットワークを含む。
特定の態様では、制御パラメータ推定器310は、オーディオ解析技法を使用して合成音声信号131において検出された平均(たとえば、平均、中間、またはモード)発話速度を判定し、平均発話速度を推定された発話速度として示す1つまたは複数の推定された制御パラメータ311を生成する。制御パラメータ推定器310は、1つまたは複数の推定された制御パラメータ311を損失計算器312に提供する。
損失計算器312は、1つまたは複数の制御パラメータ125と推定された制御パラメータ311の比較に基づいて損失メトリック313を生成する。たとえば、損失メトリック313は、人物損失メトリック、感情損失メトリック、発話速度損失メトリック、またはそれらの組合せを含む。
特定の態様では、ターゲット人物143は、ベクトル空間における第1の人物埋め込みベクトルによって表され、推定される人物は、ベクトル空間における第2の人物埋め込みベクトルによって表される。たとえば、ベクトル空間の次元は、様々な発話特性(たとえば、ピッチ、トーンなど)を表す。制御パラメータ推定器310は、第1の人物埋め込みベクトルと第2の人物埋め込みベクトルとの間のベクトル距離に基づいて人物損失メトリックを判定する。
特定の態様では、ターゲット感情145は、ベクトル空間における第1の感情埋め込みベクトルによって表され、推定される感情は、ベクトル空間における第2の感情埋め込みベクトルによって表される。たとえば、ベクトル空間は感情チャートを表す。制御パラメータ推定器310は、第1の感情埋め込みベクトルと第2の感情埋め込みベクトルとの間のベクトル距離に基づいて感情損失メトリックを判定する。
特定の態様では、制御パラメータ推定器310は、ターゲット発話速度147と推定される発話速度との差に基づいて発話速度損失メトリックを判定する(たとえば、発話速度損失メトリック=ターゲット発話速度147マイナス推定される発話速度)。
損失計算器312は、損失メトリック313(たとえば、人物損失メトリック、感情損失メトリック、発話速度損失メトリック、またはそれらの組合せ)をアジャスタ314に提供する。アジャスタ314は、損失メトリック313が損失しきい値よりも大きい損失を示すと判定したことに応答して、機械学習(たとえば、ニューラルネットワークトレーニング)技法を使用してマルチエンコーダ192、人物エンコーダ206、感情エンコーダ208、発話速度エンコーダ210、エンコーダプレネット212、デコーダ194のデコーダネットワーク、またはそれらの組合せの1つもしくは複数の構成パラメータ(たとえば、ニューラルネットワーク重み)をトレーニングして、入力表現のその後の処理についての損失メトリック313を低減させる。
特定の態様では、アジャスタ314は、人物損失メトリックが人物損失しきい値よりも大きい損失を示すと判定したことに応答して、人物エンコーダ206、エンコーダプレネット212、図4Aの人物エンコーダ420、マスクされたマルチヘッドアテンション466、マルチヘッドアテンション478、またはそれらの組合せの構成パラメータ(たとえば、ニューラルネットワーク重み)をトレーニングする。
特定の態様では、アジャスタ314は、感情損失メトリックが感情損失しきい値よりも大きい損失を示すと判定したことに応答して、感情エンコーダ208、エンコーダプレネット212、図4Aの感情エンコーダ430、マスクされたマルチヘッドアテンション466、マルチヘッドアテンション480、またはそれらの組合せの構成パラメータ(たとえば、ニューラルネットワーク重み)をトレーニングする。
特定の態様では、アジャスタ314は、発話速度損失メトリックが発話速度損失しきい値よりも大きい損失を示すと判定したことに応答して、発話速度エンコーダ210、エンコーダプレネット212、図4Aの速度エンコーダ440、マスクされたマルチヘッドアテンション466、マルチヘッドアテンション482、またはそれらの組合せの構成パラメータ(たとえば、ニューラルネットワーク重み)をトレーニングする。
したがって、アジャスタ314は、音声生成器120のトレーニングを可能にして、ターゲット発話特性141を一致させるうえで合成音声生成の精度を向上させる。たとえば、アジャスタ314によって音声生成器120の構成パラメータ(たとえば、ニューラルネットワーク重み)をユーザ入力とは独立に自動的に調整して、合成音声生成の精度を向上させることができる。
図4Aを参照すると、音声生成器120の特定の実装形態が示されている。マルチエンコーダ192は、入力表現エンコーダ450と、各発話特性についての発話特性エンコーダとを含む。たとえば、マルチエンコーダ192は、人物エンコーダ420、感情エンコーダ430、速度エンコーダ440、またはそれらの組合せを含む。
マルチエンコーダ192の各エンコーダは、マルチエンコーダ192の他のエンコーダとは独立に、図5を参照しながらさらに説明されるように、入力データを処理することによって符号化データを生成するように構成される。たとえば、入力表現エンコーダ450は、入力表現123を処理して第1の符号化データ458を生成するように構成される。人物エンコーダ420は、マージされたスタイルデータ127を処理して人物符号化データ428を生成するように構成される。感情エンコーダ430は、マージされたスタイルデータ127を処理して感情符号化データ438を生成するように構成される。速度エンコーダ440は、マージされたスタイルデータ127を処理して発話符号化データ448を生成するように構成される。マルチエンコーダ192のエンコーダの各々はマルチエンコーダ192の他のエンコーダとは独立に動作するので、図3を参照しながら説明されるように、エンコーダの各々を対応する発話特性損失メトリックに基づいてアジャスタ314によって特定的に調整して、合成音声生成の精度を向上させることができる。
マルチエンコーダ192の各エンコーダは、図5を参照しながらさらに説明されるように、入力段と、1つまたは複数の符号化層と、正規化層(層正規化)とを含む。たとえば、入力表現エンコーダ450は、入力段452と、1つまたは複数の符号化層454と、層正規化456とを含む。人物エンコーダ420は、入力段422と、1つまたは複数の符号化層424と、層正規化426とを含む。感情エンコーダ430は、入力段432と、1つまたは複数の符号化層434と、層正規化436とを含む。速度エンコーダ440は、入力段442と、1つまたは複数の符号化層444と、層正規化446とを含む。
いくつかの実装形態では、エンコーダ420、430、440、および450の各々は、図5に示されるエンコーダ500を参照しながら説明されるように構成され動作する。図5では、エンコーダ500は、入力段522と、1つまたは複数の符号化層554と、層正規化526とを含む。1つまたは複数の符号化層554の各符号化層は、アテンション層とフィードフォワード層とを含む。アテンション層は、マルチヘッドアテンション564などのアテンションネットワークを含む。フィードフォワード層は、フィードフォワード570(たとえば、完全に接続されたフィードフォワードニューラルネットワーク)などのフィードフォワードニューラルネットワークを含む。特定の例では、アテンション層は、マルチヘッドアテンション564を介してコンバイナ566に結合された層正規化562を含む。フィードフォワード層は、フィードフォワード570を介してコンバイナ572に結合された層正規化568を含む。アテンション層は、フィードフォワード層に結合される。たとえば、コンバイナ566は、層正規化568に結合され、コンバイナ572に結合される。
単一の符号化層を含む1つまたは複数の符号化層554は、例示的な例として提供される。他の例では、1つまたは複数の符号化層554は、入力段522の出力が初期符号化層のアテンション層(たとえば、層正規化562)に結合され、各々の前の符号化層のフィードフォワード層(たとえば、コンバイナ572)が、後続の符号化層のアテンション層(たとえば、層正規化562)に結合され、最後の符号化層のフィードフォワード層(たとえば、コンバイナ572)が層正規化526に結合された複数の符号化層を含む。
入力段522は、入力データ521を受信する。特定の例では、エンコーダ500は、図4の入力表現エンコーダ450に対応する。たとえば、入力データ521は、入力表現123に対応し、入力段522は、入力段452に対応し、1つまたは複数の符号化層554は、1つまたは複数の符号化層454に対応し、層正規化526は、層正規化456に対応する。特定の実装形態では、入力段452は、入力表現123を処理して出力を生成するエンコーダプレネット(たとえば、CNN、線形投影層、またはその両方)を含む。たとえば、入力表現エンコーダ450のエンコーダプレネットは、畳み込みを加えるために使用される。入力段452は、エンコーダプレネットの出力を処理するように構成される。たとえば、入力段452は、エンコーダプレネットの出力を位置符号化データと組み合わせることによって出力を生成するように構成される。
特定の態様では、エンコーダ500は、人物エンコーダ420、感情エンコーダ430、または速度エンコーダ440に対応し、入力データ521は、マージされたスタイルデータ127に対応し、入力段522は、マージされたスタイルデータ127を処理することによって出力を生成するように構成される。たとえば、入力段522は、マージされたスタイルデータ127を位置符号化データと組み合わせることによって出力を生成するように構成される。
特定の例では、エンコーダ500は、人物エンコーダ420に対応する。例示のために、入力段522は、入力段422に対応し、1つまたは複数の符号化層554は、1つまたは複数の符号化層424に対応し、層正規化526は、層正規化426に対応する。特定の例では、エンコーダ500は、感情エンコーダ430に対応する。例示のために、入力段522は、入力段432に対応し、1つまたは複数の符号化層554は、1つまたは複数の符号化層434に対応し、層正規化526は、層正規化436に対応する。特定の例では、エンコーダ500は、速度エンコーダ440に対応する。例示のために、入力段522は、入力段442に対応し、1つまたは複数の符号化層554は、1つまたは複数の符号化層444に対応し、層正規化526は、層正規化446に対応する。
入力段522の出力は、層正規化562による正規化に続いて、マルチヘッドアテンション564に提供される。マルチヘッドアテンション564は、異なるアテンションヘッドを使用して異なる態様からコンテキストベクトルを構築することができる。たとえば、マルチヘッドアテンション564は、マルチヘッドアテンション564への入力を並列に処理するアテンションヘッドを含む。例示のために、入力には、第1の行列、第2の行列、および第3の行列が乗算されて、それぞれ、第1のクエリベクトル、第1のキーベクトル、および第1の値ベクトルを生成する。第1のクエリベクトル、第1のキーベクトル、および第1の値ベクトルは、第1のアテンションヘッドによって処理される。入力には、第4の行列、第5の行列、および第6の行列が乗算されて、それぞれ、第2のクエリベクトル、第2のキーベクトル、および第2の値ベクトルを生成する。第2のクエリベクトル、第2のキーベクトル、および第2の値ベクトルは、第1のクエリベクトル、第1のキーベクトル、および第1の値ベクトルを処理する第1のアテンションヘッドと並列または同時に、第2のアテンションヘッドによって処理される。
特定の態様では、アテンションヘッドの出力は、以下の数式に対応する。
上式において、Zは、アテンションヘッドの出力に対応し、Qは、クエリベクトルに対応し、xは、乗算演算に対応し、Kは、キーベクトルに対応し、Vは、値ベクトルに対応し、dkはキーベクトルの次元に対応し、ソフトマックスは、正規化演算に対応する。
アテンションヘッドの独立した出力は、連結され線形に変換されてマルチヘッドアテンション564の出力を生成する。コンバイナ566は、層正規化562への入力とマルチヘッドアテンション564の出力を組み合わせることによって出力を生成する。
コンバイナ566の出力は、層正規化568による正規化に続いて、フィードフォワード570(たとえば、完全に接続されたフィードフォワードニューラルネットワーク)に提供される。特定の例では、フィードフォワード570は、正規化線形関数(ReLU)層を介して第2の線形変換層に結合された第1の線形変換層を含む。フィードフォワード570は、コンバイナ566の出力を処理することによって出力を生成する。
コンバイナ572は、コンバイナ566の出力とフィードフォワード570の出力を組み合わせることによって出力を生成する。特定の態様では、層正規化526は、(たとえば、1つまたは複数の符号化層554の最後の符号化層の)コンバイナ572の出力に正規化を適用することによって符号化データ528を生成する。たとえば、正規化を適用することは、コンバイナ572の出力(たとえば、出力ベクトル)の各値を特定の範囲内になるように調整することを含む。
図4Aを参照すると、入力表現エンコーダ450は、1つまたは複数の制御パラメータ125とは独立に入力表現123を符号化して、第1の符号化データ458を生成するように構成される。人物エンコーダ420、感情エンコーダ430、および速度エンコーダ440の各々は、1つまたは複数の制御パラメータ125に基づいて入力表現123を符号化して符号化データを生成するように構成される。たとえば、1つまたは複数の制御パラメータ125に基づいて入力表現123を符号化することは、マージされたスタイルデータ127を符号化することを含む。例示のために、人物エンコーダ420は、マージされたスタイルデータ127を符号化することによって人物符号化データ428を生成する。感情エンコーダ430は、マージされたスタイルデータ127を符号化することによって感情符号化データ438を生成する。速度エンコーダ440は、マージされたスタイルデータ127を符号化することによって発話速度符号化データ448を生成する。
特定の態様では、人物エンコーダ420、感情エンコーダ430、および速度エンコーダ440は、対応するマルチヘッドアテンション564によって使用される重みまたは行列が、互いに異なる。たとえば、人物エンコーダ420のマルチヘッドアテンション564は、重みの第1のセットを示す行列の第1のセットを使用してクエリベクトル、キーベクトル、および値ベクトルを生成する。感情エンコーダ430のマルチヘッドアテンション564は、重みの第2のセットを示す行列の第2のセットを使用してクエリベクトル、キーベクトル、および値ベクトルを生成する。同様に、速度エンコーダ440のマルチヘッドアテンション564は、重みの第3のセットを示す行列の第3のセットを使用してクエリベクトル、キーベクトル、および値ベクトルを生成する。
マルチエンコーダ192は、符号化データ193をデコーダ194に提供する。たとえば、符号化データ193は、1つまたは複数の制御パラメータ125とは無関係の第1の符号化データ458を含む。特定の態様では、符号化データ193はまた、1つまたは複数の制御パラメータ125に基づく第2の符号化データ(たとえば、人物符号化データ428、感情符号化データ438、発話速度符号化データ448、またはそれらの組合せ)を含む。
デコーダ194は、デコーダプレネット460、コンバイナ462、1つまたは複数の復号層498、層正規化492、線形変換層(線形)494、またはそれらの組合せを含む。1つまたは複数の復号層498の各復号層は、マスクされたアテンション層と、アテンション層と、フィードフォワード層とを含む。たとえば、マスクされたアテンション層は、マスクされたマルチヘッドアテンション466(たとえば、マスクされたデコーダアテンションネットワーク)を介して層正規化468、層正規化470、層正規化472、層正規化474、またはそれらの組合せなどの複数の正規化層(層正規化)に結合された層正規化464を含む。アテンション層は、コンバイナ486を介して層正規化488に結合された複数のデコーダアテンションネットワークを含む。たとえば、複数のデコーダアテンションネットワーク(たとえば、デコーダマルチヘッドアテンションネットワーク)は、マルチヘッドアテンション478、マルチヘッドアテンション480、マルチヘッドアテンション482、マルチヘッドアテンション484、またはそれらの組合せを含む。フィードフォワード層はフィードフォワード490(たとえば、完全に接続されたフィードフォワードニューラルネットワーク)を含む。
マスクされたアテンション層は、アテンション層に結合される。たとえば、マスクされたアテンション層の複数の層正規化の各々は、アテンション層の対応するマルチヘッドアテンションネットワークに結合される。たとえば、層正規化468、層正規化470、層正規化472、および層正規化474はそれぞれ、マルチヘッドアテンション478、マルチヘッドアテンション480、マルチヘッドアテンション482、およびマルチヘッドアテンション484に結合される。マスクされたマルチヘッドアテンション466は、コンバイナ486を介して層正規化488に結合される。アテンション層は、フィードフォワード層に結合される。たとえば、層正規化488は、フィードフォワード490に結合される。
コンバイナ462は、1つまたは複数の復号層498のうちの復号層に結合される。たとえば、コンバイナ462は、復号層の層正規化464に結合される。1つまたは複数の復号層498のうちの復号層は、層正規化492に結合される。たとえば、復号層のフィードフォワード490は、層正規化492に結合される。
特定の態様では、デコーダプレネット460は、前の時間ステップについてデコーダ194によって生成された出力スペクトルデータ129に対応するフィードバック出力スペクトルデータ429を受信する。デコーダプレネット460は、フィードバック出力スペクトルデータ429を処理して出力を生成するニューラルネットワーク(たとえば、CNN)を含む。特定の態様では、デコーダプレネット460は畳み込みを加える。特定の態様では、コンバイナ462は、デコーダプレネット460の出力と位置符号化データ461を組み合わせることによって出力を生成する。
コンバイナ462の出力は、1つまたは複数の復号層498のうちの復号層によって処理される。たとえば、コンバイナ462の出力は、復号層の層正規化464による正規化に続いて、マスクされたマルチヘッドアテンション466に提供される。特定の態様では、マスクされたマルチヘッドアテンション466は、マスクされたマルチヘッドアテンション466への入力における将来の位置をマスクする。マスクされたマルチヘッドアテンション466は、マスクされたマルチヘッドアテンション466への入力のマスクされたバージョンからクエリベクトル、キーベクトル、および値ベクトルを生成する。マスクされたマルチヘッドアテンション466の各アテンションヘッドは、クエリベクトル、キーベクトル、および値ベクトルを処理して出力を生成する。マスクされたマルチヘッドアテンション466のアテンションヘッドの独立した出力が連結され線形変換されて、マスクされたマルチヘッドアテンション466の出力が生成される。
マスクされたマルチヘッドアテンション466の出力は、コンバイナ486に提供され、正規化に続いて、復号層の複数のマルチヘッドアテンションに提供される。たとえば、マルチヘッドアテンション466の出力は、層正規化468、層正規化470、層正規化472、および層正規化474による正規化に続いて、それぞれ、マルチヘッドアテンション478、マルチヘッドアテンション480、マルチヘッドアテンション482、およびマルチヘッドアテンション484に提供される。
復号層の複数のマルチヘッドアテンションの各々は、マスクされたマルチヘッドアテンション466の出力の正規化バージョンおよびマルチエンコーダ192の対応するエンコーダから受信された符号化データを処理するように構成される。たとえば、復号層の複数のマルチヘッドアテンションの各々は、マスクされたマルチヘッドアテンション466の出力の正規化バージョンに基づくクエリベクトルを処理し(たとえば、生成して処理し)、マルチエンコーダ192の対応するエンコーダから受信された符号化データに基づくキーベクトルおよび値ベクトルを処理する(たとえば、生成して処理する)。例示のために、マルチヘッドアテンション484は、層正規化474の出力に基づくクエリベクトルを処理するように構成され、第1の符号化データ458に基づくキーベクトルおよび値ベクトルを処理する。マルチヘッドアテンション478、マルチヘッドアテンション480、およびマルチヘッドアテンション482は、それぞれ、人物符号化データ428、感情符号化データ438、および発話速度符号化データ448を処理し、それぞれ、層正規化468、層正規化470、および層正規化472の出力を処理するように構成される。例示のために、マルチヘッドアテンション478は、層正規化468の出力に基づくクエリベクトルを処理し、人物符号化データ428に基づくキーベクトルおよび値ベクトルを処理する。
コンバイナ486は、マスクされたマルチヘッドアテンション466の出力をマルチヘッドアテンション478の出力、マルチヘッドアテンション480の出力、マルチヘッドアテンション482の出力、マルチヘッドアテンション484の出力、またはそれらの組合せと組み合わせることによって出力を生成する。コンバイナ486の出力は、層正規化488による正規化に続いて、復号層のフィードフォワード490に提供される。
1つまたは複数の復号層498の特定の復号層のフィードフォワード490の出力は、層正規化492による正規化および層正規化492による線形変換に続いて、音声合成器130に出力スペクトルデータ129として提供される。特定の態様では、音声合成器130は、出力スペクトルデータ129、符号化データ193、またはそれらの組合せに基づいて音声合成を実行して、合成音声信号131を生成する。出力スペクトルデータ129は、デコーダプレネット460に、以後の時間ステップ用のフィードバック出力スペクトルデータ429として提供される。
単一の復号層を含む1つまたは複数の復号層498は、例示的な例として提供される。他の例では、1つまたは複数の復号層498は、コンバイナ462の出力が初期復号層の層正規化464に結合され、各々の前の復号層のフィードフォワード490が、後続の符号化層の層正規化464に結合され、最後の復号層のフィードフォワード490が層正規化492に結合された複数の復号層を含む。マルチエンコーダ192の最後の符号化層は、1つまたは複数の復号層498の各々の複数のマルチヘッドアテンションに符号化データ193を提供する。
特定の態様では、図3のアジャスタ314は、損失メトリック313に基づいてマルチエンコーダ192およびデコーダ194の構成パラメータ(たとえば、ニューラルネットワーク重み)を調整する。たとえば、アジャスタ314は、損失メトリック313の人物損失メトリックが人物損失しきい値を満たしていないと判定したことに応答して、人物エンコーダ420の1つまたは複数の符号化層424、マルチヘッドアテンション478、マスクされたマルチヘッドアテンション466、1つまたは複数の復号層498のフィードフォワード490、デコーダプレネット460、またはそれらの組合せのニューラルネットワーク重みをトレーニングする。
図4Aを参照すると、音声生成器120の特定の実装形態が示されている。マルチエンコーダ192は、各発話特性についての別個の発話特性エンコーダの代わりに発話特性についての特性エンコーダ451を含む。たとえば、特性エンコーダ451は、入力段453と、1つまたは複数の符号化層455と、層正規化457とを含む。特定の態様では、図5のエンコーダ500は、特性エンコーダ451の実装形態の一例である。たとえば、入力段522は、入力段453に対応し、1つまたは複数の符号化層554は、1つまたは複数の符号化層455に対応し、層正規化526は、層正規化457に対応する。
特性エンコーダ451は、スタイルデータ生成器126からマージされたスタイルデータ127(たとえば、入力埋め込みベクトル)を受信する。特定の態様では、入力段453は、マージされたスタイルデータ127を位置符号化データと組み合わせることによって出力を生成する。入力段453の出力は、図5の1つまたは複数の符号化層554を参照しながら説明する、1つまたは複数の符号化層455によって処理される。1つまたは複数の符号化層455の出力は、層正規化457による正規化に続いて、デコーダ194への第2の符号化データ459として提供される。たとえば、符号化データ193は、第1の符号化データ458および第2の符号化データ459を含む。
1つまたは複数の復号層498は、正規化層(層正規化)を介して2つのマルチヘッドアテンションに結合されたマスクされたマルチヘッドアテンション466を含む。たとえば、マスクされたマルチヘッドアテンション466は、層正規化475を介してマルチヘッドアテンション485に結合され、層正規化474を介してマルチヘッドアテンション484に結合される。コンバイナ486は、マスクされたマルチヘッドアテンション466、マルチヘッドアテンション485、およびマルチヘッドアテンション484に結合される。
マスクされたマルチヘッドアテンション466の出力は、層正規化475による正規化に続いて、マルチヘッドアテンション485に提供される。特性エンコーダ451は、第2の符号化データ459をマルチヘッドアテンション485に提供する。マルチヘッドアテンション485は、マスクされたマルチヘッドアテンション466の出力に基づくクエリベクトルを生成し、第2の符号化データ459に基づくキーベクトルおよび値ベクトルを生成する。マルチヘッドアテンション485の各アテンションヘッドは、クエリベクトル、キーベクトル、および値ベクトルを処理して出力を生成する。マルチヘッドアテンション485のアテンションヘッドの各々の出力が連結され線形変換されて、マルチヘッドアテンション485の出力が生成される。コンバイナ486は、マスクされたマルチヘッドアテンション466の出力をマルチヘッドアテンション485の出力、マルチヘッドアテンション484の出力、またはその両方と組み合わせることによって出力を生成する。
特定の態様では、図3のアジャスタ314は、損失メトリック313に基づいてマルチエンコーダ192およびデコーダ194の構成パラメータ(たとえば、ニューラルネットワーク重み)を調整する。たとえば、アジャスタ314は、損失メトリック313の人物損失メトリック、感情損失メトリック、または発話速度損失メトリックのいずれかが、対応する損失しきい値を満たしていないと判定したことに応答して、特性エンコーダ451の1つまたは複数の符号化層455、マルチヘッドアテンション485、マスクされたマルチヘッドアテンション466、1つまたは複数の復号層498のフィードフォワード490、デコーダプレネット460、またはそれらの組合せのニューラルネットワーク重みをトレーニングする。
図6を参照すると、図1のシステム100の構成要素の動作の例示的な態様が示され、全体的に600と指定されている。入力信号121は、複数のオーディオサンプル602、たとえば、オーディオサンプル602A、オーディオサンプル602B、第Nのオーディオサンプル602Nなどのオーディオサンプルの1つもしくは複数の追加のセット(Nは、2よりも大きい整数である)、またはそれらの組合せを含む。オーディオサンプル602は、特定の人物(たとえば、人物180)の発話、特定の感情(たとえば、平静もしくは退屈)、特定の発話速度(たとえば、中間速度)、またはそれらの組合せを表す。
音声生成器120は、1つまたは複数の制御パラメータ621を受信する(たとえば、アクセスする)。1つまたは複数の制御パラメータ621は、ターゲット人物623(たとえば、人物180)、ターゲット感情625(たとえば、興奮)、ターゲット発話速度627(たとえば、速い発話速度)、またはそれらの組合せを示す。1つまたは複数の制御パラメータ621は、入力信号121に基づいて音声生成器120によって生成される合成音声信号661の発話特性を示す。特定の例では、ターゲット人物623、ターゲット感情625、およびターゲット発話速度627のうちの少なくとも1つは、それぞれ、特定の人物、特定の感情、および特定の発話速度とは異なる。音声生成器120は、図1を参照しながら説明されるように、合成音声信号661を生成するように1つまたは複数の制御パラメータ621に基づいて入力信号121を処理する。合成音声信号661は、ターゲット人物623、ターゲット感情625、ターゲット発話速度627、またはそれらの組合せに基づく合成オーディオサンプル629を含む。たとえば、合成オーディオサンプル629は、ターゲット人物623(たとえば、人物180)と同様の発話特性、ターゲット感情625(たとえば、興奮)に関連付けられた同様の発話特性(たとえば、ピッチまたはトーン)、ターゲット発話速度627(たとえば、速い発話速度)、またはそれらの組合せを有する発話を表す。特定の態様では、音声生成器120(またはデバイス102の別の構成要素)は、オーディオサンプル602および合成オーディオサンプル629をトレーニングデータセット665に加える。
特定の態様では、音声生成器120は、同じ入力信号121から、様々な制御パラメータに対応する様々な発話特性を有するオーディオサンプルの複数のセットを生成する。たとえば、音声生成器120は、ターゲット人物633(たとえば、人物180)、ターゲット感情635(たとえば、疲労)、ターゲット発話速度637(たとえば、遅い発話速度)、またはそれらの組合せを示す1つまたは複数の制御パラメータ631を受信する(たとえば、アクセスする)。音声生成器120は、図1に関して説明されるように、合成音声信号663を生成するように1つまたは複数の制御パラメータ631に基づいて入力表現121を処理する。合成音声信号663は、ターゲット人物633(たとえば、人物180)、ターゲット感情635(たとえば、疲労)、ターゲット発話特性637(たとえば、遅い発話速度)、またはそれらの組合せに基づく合成オーディオサンプル639を含む。特定の態様では、音声生成器120(またはデバイス102の別の構成要素)は、合成オーディオサンプル639をトレーニングデータセット665に加える。
ネットワークトレーナ670は、機械学習技法を使用して、トレーニングデータセット665に基づいて音声認識ネットワーク672をトレーニングする。合成オーディオサンプル629および合成オーディオサンプル639を(オーディオサンプル602に加えて)トレーニングデータセット665に含めると、発話を認識する際の音声認識ネットワーク672の精度が向上する。たとえば、(合成オーディオサンプル629および合成オーディオサンプル639に基づいてトレーニングされた)音声認識ネットワーク672は、人物180によって入力信号121において提供される発話の特性(たとえば、平静)とは異なる特性(たとえば、速いまたは遅い、および疲労または興奮)を有する人物180の発話を認識するうえでよりロバストである。
図7は、図1のシステムの構成要素の動作の例示的な態様の図である。オーディオアナライザ122は、第1のフレーム(F1)712、第2のフレーム(F2)714、および第Nのフレーム(FN)716を含む1つまたは複数の追加のフレーム(Nは2よりも大きい整数である)として示された、入力信号121の連続的に捕捉されたフレームのシーケンスなどのオーディオデータサンプルのシーケンス710を受信するように構成される。オーディオアナライザ122は、第1のセット722、第2のセット724、および第Nのセット726を含む1つまたは複数の追加のセットを含む、入力表現123のセットのシーケンスなどの、入力表現データのセットのシーケンス720を出力するように構成される。
スタイルデータ生成器126は、入力表現データのセットのシーケンス720を受信し、シーケンス720および1つまたは複数の制御パラメータ125に基づいてマージされたスタイルデータのセットのシーケンス730を生成するように構成される。シーケンス730は、第1のセット(M1)732、第2のセット(M2)734、および第Nのセット(MN)736を含む1つまたは複数の追加のセットを含む。マルチエンコーダ192は、シーケンス720およびシーケンス730を受信し、第1の符号化セット(E1)742、第2の符号化セット(E2)744、および第Nの符号化セット(EN)746を含む1つまたは複数の追加の符号化セットなどの、データの符号化セットのシーケンス740を生成するように構成される。デコーダ194は、符号化セットのシーケンス740を受信し、第1のスペクトルデータ(S1)752、第2のスペクトルデータ(S2)754、および第Nのスペクトルデータ(SN)756を含むスペクトルデータの1つまたは複数の追加のセットを含む、スペクトルデータのシーケンス750を生成するように構成される。
動作中に、オーディオアナライザ122は、入力表現123の第1のセット722を生成するように第1のフレーム(F1)を処理し、スタイルデータ生成器126は、マージされたスタイルデータ127の第1のセット(M1)732を生成するように第1のセット722を処理する。マルチエンコーダ192は、符号化データ193の第1の符号化セット(E1)を生成するように入力表現123の第1のセット722およびマージされたスタイルデータ127の第1のセット(M1)732を処理する。デコーダ194は、出力スペクトルデータ129の第1のスペクトルデータ(S1)752を生成するように符号化データ193の第1の符号化セット(E1)を処理する。以後の符号化セット(たとえば、第2の符号化セット(E2))は、第1のスペクトルデータ(S1)752に少なくとも部分的に基づいてデコーダ194によって処理される。そのような処理は、オーディオアナライザ122が、第Nのフレーム716を処理して入力表現123の第Nのセット726を生成すること、スタイルデータ生成器126が、入力表現123の第Nのセット726を処理してマージされたスタイルデータ127の第Nのセット(MN)736を生成すること、マルチエンコーダ192が、入力表現123の第Nのセット726およびマージされたスタイルデータ127の第Nのセット(MN)736を処理して符号化データ193の第Nの符号化セット(EN)746を生成すること、ならびにデコーダ194が、符号化データ193の第Nの符号化セット(EN)746を処理して第Nのスペクトルデータ(SN)756を生成することを含んで継続する。第Nのスペクトルデータ(SN)756は、特徴データの第Nのセット726に基づき、シーケンス720の特徴データの前のセットのうちの1つまたは複数に少なくとも部分的に基づく。スペクトルデータの1つまたは複数の前のセットに基づいて復号することによって、デコーダ194による合成音声生成の精度が、オーディオデータの複数のフレームにわたることがある音声信号について改善される場合がある。
図8は、1つまたは複数のプロセッサ190を含む集積回路802としてのデバイス102の一実装形態800を示す。集積回路802はまた、入力信号121が処理のために受信されることを可能にするための、1つまたは複数のバスインターフェースなどのオーディオ入力804を含む。集積回路802はまた、合成音声信号131などの出力信号の送信を可能にするための、バスインターフェースなどのオーディオ出力806を含む。集積回路802は、図9に示すようなモバイルフォンもしくはタブレット、図10に示すようなヘッドセット、図11に示すようなウェアラブル電子デバイス、図12に示すようなボイス制御スピーカシステム、図13に示すようなカメラ、図14に示すような仮想現実ヘッドセットもしくは拡張現実ヘッドセット、または図15もしくは図16に示すような移動体などの、マイクロフォンを含むシステムにおける構成要素として合成音声生成の実施を可能にする。
図9は、デバイス102が、例示的で非制限的な例として、電話またはタブレットなどのモバイルデバイス902を含む実装形態900を示す。モバイルデバイス902は、マイクロフォン182とディスプレイ画面904とを含む。音声生成器120を含むプロセッサ190の構成要素は、モバイルデバイス902に組み込まれ、一般にモバイルデバイス902のユーザには見えない内部構成要素を示すために点線を使用して示されている。特定の例では、音声生成器120は、合成音声を生成するように動作し(または図6の音声認識ネットワーク672が、発話を認識するように動作し)、次いで、合成音声は、グラフィカルユーザインターフェースを起動するか、または場合によっては、(たとえば、集積「スマートアシスタント」アプリケーションを介して)ディスプレイ画面904においてユーザの発話に関連する他の情報を表示するなど、モバイルデバイス902における1つまたは複数の動作を実行するように処理される。
図10は、デバイス102がヘッドセットデバイス1002を含む実装形態1000を示す。ヘッドセットデバイス1002は、マイクロフォン182を含む。音声生成器120を含むプロセッサ190の構成要素は、ヘッドセットデバイス1002に組み込まれる。特定の例では、音声生成器120は、合成音声を生成するように動作し(または図6の音声認識ネットワーク672が、発話を認識するように動作し)、それによって、ヘッドセットデバイス1002に、ヘッドセットデバイス1002における1つもしくは複数の動作を実行すること、合成音声に対応するオーディオデータをさらなる処理のために第2のデバイス(図示せず)に送信すること、またはそれらの組合せを行わせてもよい。
図11は、デバイス102が「スマートウォッチ」として示されたウェアラブル電子デバイス1102を含む、一実装形態1100を示す。音声生成器120およびマイクロフォン182は、ウェアラブル電子デバイス1102に組み込まれる。特定の例では、音声生成器120は、合成音声を生成するように動作し(または図6の音声認識ネットワーク672が、発話を認識するように動作し)、次いで、合成音声は、グラフィカルユーザインターフェースを起動するか、または場合によっては、ウェアラブル電子デバイス1102のディスプレイ画面1104においてユーザの発話に関連する他の情報を表示することなど、ウェアラブル電子デバイス1102における1つまたは複数の動作を実行するように処理される。例示のために、ウェアラブル電子デバイス1102は、ウェアラブル電子デバイス1102によって検出されたユーザの発話に基づいて通知を表示するように構成されるディスプレイ画面を含んでもよい。特定の例では、ウェアラブル電子デバイス1102は、ユーザボイス活動の検出または合成音声の生成に応答して触覚通知を提供する(たとえば、振動する)触覚デバイスを含む。たとえば、触覚通知は、ユーザに、ウェアラブル電子デバイス1102を見て、ユーザによって発話されたキーワードが検出されたことを示す表示された通知を確認させることができる。したがって、ウェアラブル電子デバイス1102は、聴覚障害を有するユーザまたはヘッドセットを装着しているユーザに、ユーザのボイス活動が検出されたことを警告することができる。
図12は、デバイス102が、ワイヤレススピーカおよびボイス作動式デバイス1202を含む実装形態1200である。ワイヤレススピーカおよびボイス作動式デバイス1202は、ワイヤレスネットワーク接続性を有することができ、アシスタント動作を実行するように構成される。音声生成器120、マイクロフォン182、またはそれらの組合せを含むプロセッサ190は、ワイヤレススピーカおよびボイス作動式デバイス1202に含まれる。ワイヤレススピーカおよびボイス作動式デバイス1202はまた、スピーカ1204を含む。動作中に、ワイヤレススピーカおよびボイス作動式デバイス1202は、バーバルコマンドを受信し、音声生成器120の動作を介して合成音声を生成する(または図6の音声認識ネットワーク672の動作を介して発話を認識する)ことに応答して、集積アシスタントアプリケーションの実行などを介してアシスタント動作を実行することができる。アシスタント動作は、温度を調整すること、音楽を再生すること、明かりをつけることなどを含むことができる。たとえば、アシスタント動作は、キーワードまたはキーフレーズ(たとえば、「今日は、アシスタント」)の後のコマンドの受信に応答して実行される。
図13は、デバイス102がカメラデバイス1302に対応するポータブル電子デバイスを含む一実装形態1300を示す。音声生成器120、マイクロフォン182、またはそれらの組合せが、カメラデバイス1302に含まれる。動作中に、カメラデバイス1302は、バーバルコマンドを受信し、音声生成器120の動作を介して合成音声を生成することに応答して(または図6の音声認識ネットワーク672の動作を介して音声を認識する)、例示的な例として画像もしくはビデオキャプチャ設定、画像もしくはビデオ再生設定、または画像もしくはビデオキャプチャ命令を調整するなど、発話されたユーザコマンドに応じた動作を実行することができる。
図14は、デバイス102が仮想現実、拡張現実、または複合現実ヘッドセット1402に対応するポータブル電子デバイスを含む、一実装形態1400を示す。音声生成器120、マイクロフォン182、またはそれらの組合せが、ヘッドセット1402に組み込まれる。特定の態様では、ヘッドセット1402は、主にユーザの発話を取り込むように配置されたマイクロフォン182を含む。合成音声生成は、ヘッドセット1402のマイクロフォン182から受信されたオーディオ信号に基づいて実行することができる。視覚インターフェースデバイスは、ヘッドセット1402が装着されている間、拡張現実または仮想現実画像またはシーンをユーザに表示することを可能にするために、ユーザの眼の前に配置される。特定の例では、視覚インターフェースデバイスは、オーディオ信号において検出されたユーザの発話を示す通知を表示するように構成される。
図15は、デバイス102が、有人もしくは無人の航空デバイス(たとえば、宅配ドローン)として示された移動体1502に対応するかまたは移動体1502内に組み込まれる、実装形態1500を示す。音声生成器120、マイクロフォン182、またはそれらの組合せが、移動体1502に組み込まれる。合成音声生成は、移動体1502の許可されたユーザからの配達命令についてなど、移動体1502のマイクロフォン182から受信されるオーディオ信号に基づいて実行することができる。
図16は、デバイス102が、自動車として示された移動体1602に対応するかまたは移動体1602に組み込まれる、別の実装形態1600を示す。移動体1602は、音声生成器120を含むプロセッサ190を含む。移動体1602はまた、マイクロフォン182を含む。マイクロフォン182は、移動体1602のオペレータの発話を取り込むように配置される。合成音声生成は、移動体1602のマイクロフォン182から受信されたオーディオ信号に基づいて実行することができる。いくつかの実装形態では、合成音声生成は、許可された乗員からのボイスコマンドについてなど、内部マイクロフォン(たとえば、マイクロフォン182)から受信されたオーディオ信号に基づいて実行することができる。たとえば、合成音声生成を使用して、移動体1602のオペレータからのボイスコマンドを検出(たとえば、ボリュームを5に設定するかまたは自動運転車用の目的地を設定)することができる。いくつかの実装形態では、合成音声生成は、移動体の許可されたユーザなどの、外部マイクロフォン(たとえば、マイクロフォン182)から受信されたオーディオ信号に基づいて実行することができる。特定の実装形態では、ボイス作動システム162は、バーバルコマンドを受信し、音声生成器120の動作を介して合成音声を生成することに応答して、ディスプレイまたは1つもしくは複数のスピーカ(たとえば、スピーカ1610)を介してフィードバックまたは情報を提供することなどによって、合成音声信号131において検出された1つもしくは複数のキーワード(たとえば、「ロック解除」、「エンジンを始動する」、「音楽を再生する」、「天気予報を表示する」、または別のボイスコマンド)に基づいて移動体1602の1つもしくは複数の動作を開始する。
図17を参照すると、合成音声生成の方法1700の特定の実装形態が示されている。特定の態様では、方法1700の1つまたは複数の動作は、図1のスタイルデータ生成器126、マルチエンコーダ192、デコーダ194、マルチエンコーダトランスフォーマ128、音声生成器120、1つもしくは複数のプロセッサ190、デバイス102、システム100、図2の人物エンコーダ206、感情エンコーダ208、発話速度エンコーダ210、エンコーダプレネット212、図4Aの人物エンコーダ420、感情エンコーダ430、速度エンコーダ440、入力表現エンコーダ450、図4Bの特性エンコーダ451、図5のエンコーダ500、またはそれらの組合せのうちの少なくとも1つによって実行される。
方法1700は、1702において、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信するステップを含む。たとえば、図1のスタイルデータ生成器126は、図1を参照しながら説明されるように、ターゲット発話特性141を示す1つまたは複数の制御パラメータ125を受信する。
方法1700はまた、1704において、マルチエンコーダを使用して、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号に対応する符号化データを生成するように1つまたは複数の制御パラメータに基づいて発話の入力表現を処理するステップを含む。たとえば、マルチエンコーダ192は、図1を参照しながら説明されるように、ターゲット発話特性141に基づく発話のバージョンを表す合成音声信号131に対応する符号化データ193を生成するように1つまたは複数の制御パラメータ125に基づいて入力表現123を処理する。
方法1700は、同じ入力信号121に基づいて様々な感情、様々な発話速度、および様々な人物の発話特性に対応する複数の合成音声信号の生成を可能にする。比較的少数の発語を使用して、大きく多様な合成音声データセットを生成することができる。
図17の方法1700は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理ユニット(CPU)などの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装されてもよい。一例として、図17の方法1700は、図19を参照しながら説明されるような、命令を実行するプロセッサによって実行されてもよい。
図18を参照すると、合成音声生成の方法1800の特定の実装形態が示されている。特定の態様では、方法1800の1つまたは複数の動作は、図1のスタイルデータ生成器126、マルチエンコーダ192、デコーダ194、マルチエンコーダトランスフォーマ128、音声生成器120、音声合成器130、1つもしくは複数のプロセッサ190、デバイス102、システム100、図2の人物エンコーダ206、感情エンコーダ208、発話速度エンコーダ210、エンコーダプレネット212、図4Aの人物エンコーダ420、感情エンコーダ430、速度エンコーダ440、入力表現エンコーダ450、図4Bの特性エンコーダ451、図5のエンコーダ500、またはそれらの組合せのうちの少なくとも1つによって実行される。
方法1800は、1802において、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信するステップを含む。たとえば、図1のスタイルデータ生成器126は、図1を参照しながら説明されるように、ターゲット発話特性141を示す1つまたは複数の制御パラメータ125を受信する。
方法1800はまた、1804において1つまたは複数の制御パラメータに基づいてマージされたスタイルデータを生成するステップを含む。たとえば、図1のスタイルデータ生成器126は、図1を参照しながら説明されるように、1つまたは複数の制御パラメータ125に基づいてマージされたスタイルデータを生成する。
方法1800は、1806において、マルチエンコーダの第1のエンコーダにおいて、第1の符号化データを生成するために1つまたは複数の制御パラメータとは独立に入力表現を符号化するステップをさらに含む。たとえば、図4Aを参照しながら説明されるように、マルチエンコーダ192の入力表現エンコーダ450は、第1の符号化データ458を生成するために1つまたは複数の制御パラメータ125とは独立に入力表現123を符号化する。
方法1800はまた、1808において、マルチエンコーダの1つまたは複数の第2のエンコーダにおいて、第2の符号化データを生成するために1つまたは複数の制御パラメータに基づいて入力表現を符号化するステップを含む。たとえば、図4Aの人物エンコーダ420、感情エンコーダ430、および速度エンコーダ440は、図4Aを参照しながら説明されるように、第2の符号化データ(たとえば、人物符号化データ428、感情符号化データ438、および発話速度符号化データ448)を生成するために1つまたは複数の制御パラメータ125に基づいて入力表現123を符号化する。別の例として、図4Bの特性エンコーダ451は、図4Bを参照しながら説明されるように、第2の符号化データ459を生成するために1つまたは複数の制御パラメータ125に基づいて入力表現123を符号化する。
方法1800は、1810において、デコーダのデコーダネットワークにおいて、第1の符号化データおよび第2の符号化データに基づいて出力スペクトルデータを生成するステップをさらに含む。たとえば、デコーダ194(たとえば、図4Aのマルチヘッドアテンション478、マルチヘッドアテンション480、マルチヘッドアテンション482、およびマルチヘッドアテンション484、ならびに図4Bのマルチヘッドアテンション485などの複数のデコーダネットワークを含む)は、図1ならびに図4Aおよび図4Bを参照しながら説明されるように、符号化データ193に基づいて出力スペクトルデータ129を生成する。
方法1800はまた、1812において、音声合成器において、出力スペクトルデータに基づいて、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号を生成するステップを含む。たとえば、図1の音声合成器130は、図1を参照しながら説明されるように、出力スペクトルデータ129に基づいて、ターゲット発話特性141に基づく発話のバージョンを表す合成音声信号131を生成する。
方法1800は、同じ入力信号121に基づいて様々な感情、様々な発話速度、および様々な人物の発話特性に対応する複数の合成音声信号を生成するのを可能にする。比較的少数の発語を使用して、大きく多様な合成音声データセットを生成することができる。
図18の方法1800は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理ユニット(CPU)などの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装されてもよい。一例として、図18の方法1800は、図19を参照しながら説明されるような、命令を実行するプロセッサによって実行されてもよい。
図19を参照すると、デバイスの特定の例示的な実装形態のブロック図が示されており、全体的に1900と指定されている。様々な実装形態では、デバイス1900は、図19に示されるよりも多数または少数の構成要素を有してもよい。例示的な実装形態では、デバイス1900は、デバイス102に対応してもよい。例示的な実装形態では、デバイス1900は、図1~図18を参照しながら説明された1つまたは複数の動作を実行してもよい。
特定の実装形態では、デバイス1900は、プロセッサ1906(たとえば、中央処理ユニット(CPU))を含む。デバイス1900は、1つまたは複数の追加のプロセッサ1910(たとえば、1つまたは複数のDSP)を含んでもよい。特定の態様では、図1の1つまたは複数のプロセッサ190は、プロセッサ1906、プロセッサ1910、またはそれらの組合せに対応する。プロセッサ1910は、ボイスコーダ(「ボコーダ」)エンコーダ1936、ボコーダデコーダ1938、音声生成器120、ネットワークトレーナ670、またはそれらの組合せを含む発話および音楽コーダ-デコーダ(コーデック)1908を含んでもよい。
デバイス1900は、メモリ132およびコーデック1934を含んでもよい。メモリ132は、音声生成器120、ネットワークトレーナ670、またはその両方を参照しながら説明された機能を実装するように1つまたは複数の追加のプロセッサ1910(またはプロセッサ1906)によって実行可能な命令1956を含んでもよい。デバイス1900は、トランシーバ1950を介してアンテナ1952に結合されたモデム1970を含んでもよい。
デバイス1900は、ディスプレイコントローラ1926に結合されたディスプレイ1928を含んでもよい。スピーカ1992、マイクロフォン182、またはその両方が、コーデック1934に結合されてもよい。コーデック1934は、デジタル-アナログ変換器(DAC)1902、アナログ-デジタル変換器(ADC)1904、またはその両方を含んでもよい。特定の実装形態では、コーデック1934は、マイクロフォン182からアナログ信号を受信し、アナログ-デジタル変換器1904を使用してアナログ信号をデジタル信号に変換し、デジタル信号を発話および音楽コーデック1908に提供してもよい。発話および音楽コーデック1908は、デジタル信号を処理してもよく、デジタル信号は、音声生成器120によってさらに処理されてもよい。特定の実装形態では、発話および音楽コーデック1908は、デジタル信号をコーデック1934に提供してもよい。コーデック1934は、デジタル-アナログ変換器1902を使用してデジタル信号をアナログ信号に変換してもよく、アナログ信号をスピーカ1992に提供してもよい。
特定の実装形態では、デバイス1900は、システムインパッケージまたはシステムオンチップデバイス1922に含まれてもよい。特定の実装形態では、メモリ132、プロセッサ1906、プロセッサ1910、ディスプレイコントローラ1926、コーデック1934、およびモデム1970は、システムインパッケージまたはシステムオンチップデバイス1922に含まれる。特定の実装形態では、入力デバイス1930および電源1944は、システムオンチップデバイス1922に結合される。さらに、特定の実装形態では、図19に示されるように、ディスプレイ1928、入力デバイス1930、スピーカ1992、マイクロフォン182、アンテナ1952、および電源1944は、システムオンチップデバイス1922の外部にある。特定の実装形態では、ディスプレイ1928、入力デバイス1930、スピーカ1992、マイクロフォン182、アンテナ1952、および電源1944の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス1922の構成要素に結合されてもよい。
デバイス1900は、仮想アシスタント、家庭電化製品、スマートデバイス、モノのインターネット(IoT)デバイス、通信デバイス、ヘッドセット、移動体、コンピュータ、ディスプレイデバイス、テレビジョン、ゲーミングコンソール、音楽プレーヤ、ラジオ、ビデオプレーヤ、エンターテインメントユニット、パーソナルメディアプレーヤ、デジタルビデオプレーヤ、カメラ、ナビゲーションデバイス、スマートスピーカ、スピーカバー、モバイル通信デバイス、スマートフォン、セルラーフォン、ラップトップコンピュータ、タブレット、携帯情報端末、デジタルビデオディスク(DVD)プレーヤ、チューナ、拡張現実ヘッドセット、仮想現実ヘッドセット、航空機、ホームオートメーションシステム、ボイス作動デバイス、ワイヤレススピーカおよびボイス作動デバイス、ポータブル電子デバイス、自動車、移動体、コンピューティングデバイス、仮想現実(VR)デバイス、基地局、モバイルデバイス、またはそれらの任意の組合せを含んでもよい。
説明された実装形態に関連して、装置は、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信するための手段を含む。たとえば、受信するための手段は、図1のスタイルデータ生成器126、音声生成器120、1つもしくは複数のプロセッサ190、デバイス102、図19のトランシーバ1950、モデム1970、入力デバイス1930、デバイス1900の入力インターフェース、1つもしくは複数の制御パラメータを受信するように構成される1つもしくは複数の他の回路もしくは構成要素、またはそれらの任意の組合せを含む。
装置はまた、マルチエンコーダを使用して、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号に対応する符号化データを生成するために1つまたは複数の制御パラメータに基づいて発話の入力表現を処理するための手段を含む。たとえば、処理するための手段は、図1のマルチエンコーダ192、マルチエンコーダトランスフォーマ128、音声生成器120、1つもしくは複数のプロセッサ190、デバイス102、図19の発話および音楽コーデック1908、プロセッサ1906、デバイス1900、1つもしくは複数の制御パラメータに基づいて発話の入力表現を処理するように構成される1つもしくは複数の他の回路もしくは構成要素、またはそれらの任意の組合せを含む。
いくつかの実装形態では、非一時的コンピュータ可読媒体(たとえば、メモリ132などのコンピュータ可読記憶デバイス)は、1つもしくは複数のプロセッサ(たとえば、1つもしくは複数のプロセッサ1910またはプロセッサ1906)によって実行されたときに、1つまたは複数のプロセッサにターゲット発話特性(たとえば、ターゲット発話特性141)を示す1つもしくは複数の制御パラメータ(たとえば、1つもしくは複数の制御パラメータ125)を受信させる命令(たとえば、命令1956)を含む。命令は、1つもしくは複数のプロセッサによって実行されたときに、1つもしくは複数のプロセッサに、マルチエンコーダ(たとえば、マルチエンコーダ192)を使用して、ターゲット発話特性(たとえば、ターゲット発話特性141)に基づく発話のバージョンを表すオーディオ信号(たとえば、合成音声信号131)に対応する符号化データ(たとえば、符号化データ193)を生成するように1つもしくは複数の制御パラメータ(たとえば、1つもしくは複数の制御パラメータ125)に基づいて発話の入力表現(たとえば、入力表現123)を処理することを行わせる。
本開示の特定の態様について以下に、相互関連する条項の第1のセットにおいて説明する。
条項1によれば、音声生成のためのデバイスは、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信し、マルチエンコーダを使用して、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号に対応する符号化データを生成するように1つまたは複数の制御パラメータに基づいて発話の入力表現を処理するように構成される1つまたは複数のプロセッサを備える。
条項2は、制御パラメータが、発話特性が使用されるターゲット人物、ターゲット感情、ターゲット発話速度、またはそれらの組合せを示す、条項1に記載のデバイスを含む。
条項3は、1つまたは複数のプロセッサが、1つまたは複数の制御パラメータに基づいてマージされたスタイルデータを生成するようにさらに構成され、マージされたスタイルデータが、入力表現を処理する間マルチエンコーダによって使用される、条項1または条項2に記載のデバイスを含む。
条項4は、マルチエンコーダが、第1の符号化データを生成するために1つまたは複数の制御パラメータとは独立に入力表現を符号化するように構成される第1のエンコーダと、第2の符号化データを生成するために1つまたは複数の制御パラメータに基づいて入力表現を符号化するように構成される1つまたは複数の第2のエンコーダとを含み、符号化データが、第1の符号化データおよび第2の符号化データを含む、条項1から3のいずれか一項に記載のデバイスを含む。
条項5は、1つまたは複数のプロセッサが、発話特性エンコーダにおいて、符号化された入力発話表現を生成するように1つまたは複数の制御パラメータのうちの少なくとも1つに基づいて入力表現を処理し、エンコーダプレネットワークにおいて、符号化された入力発話表現に少なくとも部分的に基づいてマージされたスタイルデータを生成し、第1の符号化データを生成するために入力表現を第1のエンコーダに提供し、ターゲットの第2の符号化データを生成するために入力表現およびマージされたスタイルデータを1つまたは複数の第2のエンコーダに提供するようにさらに構成される、条項4に記載のデバイスを含む。
条項6は、マルチエンコーダおよびデコーダを含むマルチエンコーダトランスフォーマをさらに備え、第1のエンコーダが、第1のアテンションネットワークを含み、1つまたは複数の第2のエンコーダの各々が、第2のアテンションネットワークを含み、デコーダが、デコーダアテンションネットワークを含む、条項4または条項5に記載のデバイスを含む。
条項7は、第1のエンコーダが、第1のアテンションネットワークを含む第1の層であって、第1のアテンションネットワークが第1のマルチヘッドアテンションネットワークに対応する、第1の層と、第1のニューラルネットワークを含む第2の層とを備え、1つまたは複数の第2のエンコーダの各々が、第2のアテンションネットワークを含む第1の層であって、第2のアテンションネットワークが、第2のマルチヘッドアテンションネットワークに対応する第1の層と、第2のニューラルネットワークを含む第2の層とを備える、条項6に記載のデバイスを含む。
条項8は、マルチエンコーダに結合されたデコーダであって、第1の符号化データおよびターゲットの第2の符号化データに基づいて出力スペクトルデータを生成するように構成されるデコーダネットワークを含むデコーダと、出力スペクトルデータに基づいて、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号を生成するように構成される音声合成器とをさらに備える、条項4から7のいずれか一項に記載のデバイスを含む。
条項9は、デコーダネットワークが、第1の符号化データを処理するように構成される第1のマルチヘッドアテンションネットワークと、ターゲットの第2の符号化データを処理するように構成される1つまたは複数の第2のマルチヘッドアテンションネットワークと、第1のマルチヘッドアテンションネットワークおよび1つまたは複数の第2のマルチヘッドアテンションネットワークの出力を組み合わせるように構成されるコンバイナとを備えるデコーダアテンションネットワークを含む、条項8に記載のデバイスを含む。
条項10は、デコーダが、デコーダアテンションネットワークの入力に結合されたマスクされたマルチヘッドアテンションネットワークと、デコーダアテンションネットワークの出力に結合されたデコーダニューラルネットワークとをさらに備える、条項9に記載のデバイスを含む。
条項11は、1つまたは複数のプロセッサが、オーディオ信号から1つまたは複数の推定された制御パラメータを生成し、1つまたは複数の制御パラメータと1つまたは複数の推定された制御パラメータの比較に基づいて、マルチエンコーダ、1つもしくは複数の音声修正特性エンコーダ、エンコーダプレネットワーク、デコーダネットワーク、またはそれらの組合せの1つまたは複数のニューラルネットワーク重みをトレーニングするようにさらに構成される、条項1から10のいずれか一項に記載のデバイスを含む。
条項12は、1つまたは複数のプロセッサが、入力音声信号を受信し、入力音声信号に基づいて入力表現を生成するようにさらに構成される、条項1から11のいずれか一項に記載のデバイスを含む。
条項13は、1つまたは複数のプロセッサが、入力表現を受信するようにさらに構成される、条項1から11のいずれか一項に記載のデバイスを含む。
条項14は、入力表現が、テキスト、メル尺度スペクトログラム、基本周波数(F0)特徴、またはそれらの組合せを含む、条項1から13のいずれか一項に記載のデバイスを含む。
本開示の特定の態様について以下に、相互関連する条項の第2のセットにおいて説明する。
条項15によれば、音声生成の方法は、デバイスにおいて、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信するステップと、マルチエンコーダを使用して、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号に対応する符号化データを生成するように1つまたは複数の制御パラメータに基づいて発話の入力表現を処理するステップとを含む。
条項16は、制御パラメータが、発話特性が使用されるターゲット人物、ターゲット感情、ターゲット発話速度、またはそれらの組合せを示す、条項15に記載の方法を含む。
条項17は、デバイスにおいて、1つまたは複数の制御パラメータに基づいてマージされたスタイルデータを生成するステップをさらに含み、マージされたスタイルデータが、入力表現を処理する間マルチエンコーダによって使用される、条項15または条項16に記載の方法を含む。
条項18は、マルチエンコーダの第1のエンコーダにおいて、第1の符号化データを生成するために1つまたは複数の制御パラメータとは独立に入力表現を符号化するステップと、マルチエンコーダの1つまたは複数の第2のエンコーダにおいて、ターゲットの第2の符号化データを生成するために1つまたは複数の制御パラメータに基づいて入力表現を符号化するステップとをさらに含み、符号化データが含むオーディオ信号が、第1の符号化データおよび第2の符号化データに基づく、条項15から17のいずれか一項に記載の方法を含む。
条項19は、発話特性エンコーダにおいて、発話特性エンコーダにおいて、符号化された入力発話表現を生成するように1つまたは複数の制御パラメータのうちの少なくとも1つに基づいて入力表現を処理するステップと、エンコーダプレネットワークにおいて、符号化された入力発話表現に少なくとも部分的に基づいてマージされたスタイルデータを生成するステップと、第1の符号化データを生成するために入力表現を第1のエンコーダに提供するステップと、ターゲットの第2の符号化データを生成するために入力表現およびマージされたスタイルデータを1つまたは複数の第2のエンコーダに提供するステップとをさらに含む、条項18に記載の方法を含む。
条項20は、マルチエンコーダおよびデコーダが、マルチエンコーダトランスフォーマに含まれ、第1のエンコーダが、第1のアテンションネットワークを含み、1つまたは複数の第2のエンコーダの各々が、第2のアテンションネットワークを含み、デコーダが、デコーダアテンションネットワークを含む、条項18に記載の方法を含む。
条項21は、第1のエンコーダが、第1のアテンションネットワークを含む第1の層であって、第1のアテンションネットワークが、第1のマルチヘッドアテンションネットワークに対応する、第1の層と、第1のニューラルネットワークを含む第2の層とを備え、1つまたは複数の第2のエンコーダの各々が、第2のアテンションネットワークを含む第1の層であって、第2のアテンションネットワークが、第2のマルチヘッドアテンションネットワークに対応する、第1の層と、第2のニューラルネットワークを含む第2の層とを備える、条項20に記載の方法を含む。
条項22は、デコーダのデコーダネットワークにおいて、第1の符号化データおよびターゲットの第2の符号化データに基づいて出力スペクトルデータを生成するステップと、音声合成器において出力スペクトルデータに基づいて、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号を生成するステップとをさらに含む、条項18に記載の方法を含む。
条項23は、デコーダアテンションネットワークの第1のマルチヘッドアテンションネットワークにおいて、第1の符号化データを処理するステップであって、デコーダネットワークが、デコーダアテンションネットワークを含む、ステップと、デコーダアテンションネットワークの1つまたは複数の第2のマルチヘッドアテンションネットワークにおいてターゲットの第2の符号化データを処理するステップと、コンバイナにおいて、第1のマルチヘッドアテンションネットワークおよび1つまたは複数の第2のマルチヘッドアテンションネットワークの出力を組み合わせるステップとをさらに含む、条項22に記載の方法を含む。
条項24は、デバイスにおいて、オーディオ信号から1つまたは複数の推定された制御パラメータを生成するステップと、1つまたは複数の制御パラメータと1つまたは複数の推定された制御パラメータの比較に基づいて、マルチエンコーダ、1つもしくは複数の音声修正特性エンコーダ、エンコーダプレネットワーク、デコーダネットワーク、またはそれらの組合せの1つまたは複数のニューラルネットワーク重みをトレーニングするステップをさらに含む、条項15から23のいずれか一項に記載の方法を含む。
条項25は、デバイスにおいて、入力された音声信号を受信するステップと、デバイスにおいて、入力された音声信号に基づいて入力表現を生成するステップとをさらに含む、条項15から24のいずれか一項に記載の方法を含む。
条項26は、デバイスにおいて入力表現を受信するステップをさらに含む、条項15から24のいずれか一項に記載の方法を含む。
本開示の特定の態様について以下に、相互関連する条項の第3のセットにおいて説明する。
条項27によれば、命令を記憶する非一時的コンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されたときに、1つまたは複数のプロセッサに、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信することと、マルチエンコーダを使用して、1つまたは複数の制御パラメータに基づいて発話の入力表現を処理し、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号に対応する符号化データを生成することとを行わせる、非一時的コンピュータ可読記憶媒体。
条項28は、入力表現が、テキスト、メル尺度スペクトログラム、基本周波数(F0)特徴、またはそれらの組合せを含む、条項27に記載の非一時的コンピュータ可読記憶媒体を含む。
本開示の特定の態様について以下に、相互関連する条項の第4のセットにおいて説明する。
条項29によれば、ターゲット発話特性を示す1つまたは複数の制御パラメータを受信するための手段と、マルチエンコーダを使用して、ターゲット発話特性に基づく発話のバージョンを表すオーディオ信号に対応する符号化データを生成するように1つまたは複数の制御パラメータに基づいて発話の入力表現を処理するための手段とを備える装置。
条項30は、受信するための手段および処理するための手段が、仮想アシスタント、家庭電化製品、スマートデバイス、モノのインターネット(IoT)デバイス、通信デバイス、ヘッドセット、移動体、コンピュータ、ディスプレイデバイス、テレビジョン、ゲーミングコンソール、音楽プレーヤ、ラジオ、ビデオプレーヤ、エンターテインメントユニット、パーソナルメディアプレーヤ、デジタルビデオプレーヤ、カメラ、またはナビゲーションデバイスのうちの少なくとも1つに組み込まれる、条項29の装置を含む。
当業者は、本明細書で開示される実装形態に関して説明される様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、またはその両方の組合せとして実装されてもよいことをさらに諒解されよう。様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップは、それらの機能に関して概略的に上記で説明された。そのような機能がハードウェアとして実装されるかまたはプロセッサ実行可能命令として実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明される機能を特定の適用例ごとに様々な方法で実装することができ、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示される実装形態に関して説明される方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野で知られている任意の他の形態の非一時的記憶媒体内に存在してよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)内に存在してもよい。ASICは、コンピューティングデバイスまたはユーザ端末内に存在してもよい。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末の中に個別の構成要素として存在してもよい。
開示した態様の上記の説明は、開示した態様を当業者が作製または使用できるようにするために提供される。これらの態様への様々な変更は当業者には容易に明らかになり、本明細書において規定された原理は、本開示の範囲から逸脱することなく、他の態様に適用されてもよい。したがって、本開示は、本明細書に示される態様に限定されることを意図するものではなく、以下の特許請求の範囲によって規定される原理および新規の特徴と一致する、可能な限り最も広い範囲を与えられるべきである。