(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-19
(45)【発行日】2023-01-27
(54)【発明の名称】ニューラルネットワークを使用したオーディオの生成
(51)【国際特許分類】
G10L 25/30 20130101AFI20230120BHJP
G10L 13/04 20130101ALI20230120BHJP
G10L 13/10 20130101ALI20230120BHJP
【FI】
G10L25/30
G10L13/04 Z
G10L13/10 112Z
【外国語出願】
(21)【出願番号】P 2021087708
(22)【出願日】2021-05-25
(62)【分割の表示】P 2019150456の分割
【原出願日】2017-09-06
【審査請求日】2021-06-23
(32)【優先日】2016-09-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アーロン・ヘラルト・アントニウス・ファン・デン・オールト
(72)【発明者】
【氏名】サンダー・エティエンヌ・レア・ディールマン
(72)【発明者】
【氏名】ナル・エメリッヒ・カルヒブレナー
(72)【発明者】
【氏名】カレン・シモニアン
(72)【発明者】
【氏名】オリオル・ビニャルズ
【審査官】中村 天真
(56)【参考文献】
【文献】特開平11-282484(JP,A)
【文献】特開平03-071196(JP,A)
【文献】特表平08-512150(JP,A)
【文献】Aaron van den Oord et al.,WaveNet: A Generative Model for Raw Audio,[online],2016年09月19日,https://arxiv.org/pdf/1609.03499.pdf,[検索日 2020.10.16], インターネット
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-25/93
G06N 3/04
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
複数のパラメータを有するニューラルネットワークシステムをトレーニングするための方法であって、
複数の時間ステップの各々においてそれぞれのオーディオサンプルを含むオーディオデータのトレーニングシーケンスを取得するステップと、
1つまたは複数のオーディオ処理畳み込みニューラルネットワーク層を備える前記ニューラルネットワークシステムの畳み込みサブネットワークを使用して前記オーディオデータのトレーニングシーケンスを処理するステップであって、前記畳み込みサブネットワークが、前記複数の時間ステップの各々において、
前記オーディオデータのトレーニングシーケンスにおいて前記時間ステップに先行する各時間ステップにおける前記それぞれのオーディオサンプルを含むオーディオデータの現在シーケンスを受信し、
前記時間ステップについての代替表現を生成するために前記オーディオデータの現在シーケンスを処理する
ように構成される、ステップと、
前記ニューラルネットワークシステムの出力層を使用して前記複数の時間ステップについての前記代替表現を処理するステップであって、前記出力層が、前記複数の時間ステップの各々において、
前記時間ステップの前記代替表現を受信し、
前記時間ステップに関する複数の可能なオーディオサンプルにわたるスコア分布を規定する出力を生成するために前記時間ステップの前記代替表現を処理する
ように構成される、ステップと、
前記複数の時間ステップの各々において、(i)前記時間ステップに関する前記複数の可能なオーディオサンプルにわたる前記スコア分布と、(ii)前記オーディオデータのトレーニングシーケンスにおける前記時間ステップにおける前記オーディオサンプルとに基づいて、前記ニューラルネットワークシステムの前記複数のパラメータをトレーニングするステップと
を備える、方法。
【請求項2】
前記ニューラルネットワークシステムの前記畳み込みサブネットワークが、各時間ステップについて前記オーディオデータの現在シーケンスを処理するのと
並列に、他の各時間ステップについて前記オーディオデータの現在シーケンスを処理する、請求項1に記載の方法。
【請求項3】
前記ニューラルネットワークシステムの前記複数のパラメータをトレーニングするステップが、逆伝播ベースの技法を使用して前記ニューラルネットワークシステムの前記複数のパラメータをトレーニングするステップを備える、請求項1に記載の方法。
【請求項4】
前記複数の時間ステップの各々がオーディオ波形内のそれぞれの時間に対応し、前記複数の時間ステップの各々における前記それぞれのオーディオサンプルが、前記対応する時間における前記オーディオ波形の振幅値であり、前記複数の時間ステップの各々についての前記それぞれのスコア分布が、複数の可能な振幅値にわたるスコア分布を備える、請求項1に記載の方法。
【請求項5】
前記複数の時間ステップの各々がオーディオ波形内のそれぞれの時間に対応し、前記複数の時間ステップの各々における前記それぞれのオーディオサンプルが、前記対応する時間における前記オーディオ波形の圧縮された表現であり、前記複数の時間ステップの各々についての前記それぞれのスコア分布が、複数の可能な圧縮値にわたるスコア分布を備える、請求項1に記載の方法。
【請求項6】
前記複数の時間ステップの各々がオーディオ波形内のそれぞれの時間に対応し、前記複数の時間ステップの各々における前記それぞれのオーディオサンプルが、前記対応する時間における前記オーディオ波形の圧伸された表現であり、前記複数の時間ステップの各々についての前記それぞれのスコア分布が、複数の可能な圧伸値にわたるスコア分布を備える、請求項1に記載の方法。
【請求項7】
前記オーディオ処理畳み込みニューラルネットワーク層が因果的畳み込みニューラルネットワーク層である、請求項1に記載の方法。
【請求項8】
前記オーディオ処理畳み込みニューラルネットワーク層が1つまたは複数の拡張畳み込みニューラルネットワーク層を含む、請求項1に記載の方法。
【請求項9】
前記オーディオ処理畳み込みニューラルネットワーク層が拡張畳み込みニューラルネットワーク層の複数のブロックを含み、各ブロックが、拡張が増加する複数の拡張畳み込みニューラルネットワーク層を備える、請求項1に記載の方法。
【請求項10】
前記オーディオ処理畳み込みニューラルネットワーク層のうちの1つまたは複数がゲーテッド活性化ユニットを有する、請求項1に記載の方法。
【請求項11】
前記複数の時間ステップの各々において、前記代替表現が前記ニューラルネットワークシステムへの追加の入力を条件とする、請求項1に記載の方法。
【請求項12】
前記追加の入力がテキストセグメントの特徴を含み、前記オーディオデータのトレーニングシーケンスが前記テキストセグメントの言語化を表す、請求項11に記載の方法。
【請求項13】
前記追加の入力がイントネーションパターン値をさらに含む、請求項12に記載の方法。
【請求項14】
前記追加の入力が、話者識別情報、言語識別情報、および発話スタイル情報のうちの1つもしくは複数を含む、請求項11に記載の方法。
【請求項15】
前記オーディオデータのトレーニングシーケンスが楽曲を表す、請求項1に記載の方法。
【請求項16】
前記畳み込みサブネットワークが残差接続を含む、請求項1に記載の方法。
【請求項17】
前記畳み込みサブネットワークがスキップ接続を含む、請求項1に記載の方法。
【請求項18】
前記時間ステップについての代替表現を生成するために前記オーディオデータの現在シーケンスを処理するステップが、他の時間ステップについて計算された値を再使用することを含む、請求項1に記載の方法。
【請求項19】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、複数のパラメータを有するニューラルネットワークシステムをトレーニングするための動作を実施させる命令を記憶する1つまたは複数の非一時的コンピュータ記憶媒体であって、前記動作が、
複数の時間ステップの各々においてそれぞれのオーディオサンプルを含むオーディオデータのトレーニングシーケンスを取得するステップと、
1つまたは複数のオーディオ処理畳み込みニューラルネットワーク層を備える前記ニューラルネットワークシステムの畳み込みサブネットワークを使用して前記オーディオデータのトレーニングシーケンスを処理するステップであって、前記畳み込みサブネットワークが、前記複数の時間ステップの各々において、
前記オーディオデータのトレーニングシーケンスにおいて前記時間ステップに先行する各時間ステップにおける前記それぞれのオーディオサンプルを含むオーディオデータの現在シーケンスを受信し、
前記時間ステップについての代替表現を生成するために前記オーディオデータの現在シーケンスを処理する
ように構成される、ステップと、
前記ニューラルネットワークシステムの出力層を使用して前記複数の時間ステップについての前記代替表現を処理するステップであって、前記出力層が、前記複数の時間ステップの各々において、
前記時間ステップの前記代替表現を受信し、
前記時間ステップに関する複数の可能なオーディオサンプルにわたるスコア分布を規定する出力を生成するために前記時間ステップの前記代替表現を処理する
ように構成される、ステップと、
前記複数の時間ステップの各々において、(i)前記時間ステップに関する前記複数の可能なオーディオサンプルにわたる前記スコア分布と、(ii)前記オーディオデータのトレーニングシーケンスにおける前記時間ステップにおける前記オーディオサンプルとに基づいて、前記ニューラルネットワークシステムの前記複数のパラメータをトレーニングするステップと
を備える、1つまたは複数の非一時的コンピュータ記憶媒体。
【請求項20】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合される1つまたは複数の記憶デバイスであって、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、複数のパラメータを有するニューラルネットワークシステムをトレーニングするための動作を実施させる命令を記憶し、前記動作が、
複数の時間ステップの各々においてそれぞれのオーディオサンプルを含むオーディオデータのトレーニングシーケンスを取得することと、
1つまたは複数のオーディオ処理畳み込みニューラルネットワーク層を備える前記ニューラルネットワークシステムの畳み込みサブネットワークを使用して前記オーディオデータのトレーニングシーケンスを処理することであって、前記畳み込みサブネットワークが、前記複数の時間ステップの各々において、
前記オーディオデータのトレーニングシーケンスにおいて前記時間ステップに先行する各時間ステップにおける前記それぞれのオーディオサンプルを含むオーディオデータの現在シーケンスを受信し、
前記時間ステップについての代替表現を生成するために前記オーディオデータの現在シーケンスを処理する
ように構成される、処理することと、
前記ニューラルネットワークシステムの出力層を使用して前記複数の時間ステップについての前記代替表現を処理することであって、前記出力層が、前記複数の時間ステップの各々において、
前記時間ステップの前記代替表現を受信し、
前記時間ステップに関する複数の可能なオーディオサンプルにわたるスコア分布を規定する出力を生成するために前記時間ステップの前記代替表現を処理する
ように構成される、処理することと、
前記複数の時間ステップの各々において、(i)前記時間ステップに関する前記複数の可能なオーディオサンプルにわたる前記スコア分布と、(ii)前記オーディオデータのトレーニングシーケンスにおける前記時間ステップにおける前記オーディオサンプルとに基づいて、前記ニューラルネットワークシステムの前記複数のパラメータをトレーニングすることと
を備える、1つまたは複数の記憶デバイスと
を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、ニューラルネットワークを使用してオーディオを処理および生成することに関する。
【背景技術】
【0002】
ニューラルネットワークは、受信した情報に対する出力を予測するために、非線形ユニットの1つまたは複数の層を用いる機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信した入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0003】
【文献】Zen、Heiga. An example of context-dependent label format for HMM-based speech synthesis in English、2006. URL http://hts.sp.nitech.ac.jp/?Download
【文献】Zen、Heiga、Senior、Andrew、およびSchuster、Mike. Statistical parametric speech synthesis using deep neural networks. In Proc. ICASSP、7962~7966ページ、2013
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書は、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムが、複数の時間ステップの各々においてそれぞれのオーディオサンプルを含むオーディオデータのシーケンスをどのように生成するかについて説明する。たとえば、オーディオのシーケンスは、特定の自然言語における音声、または楽曲を表すことができる。
【課題を解決するための手段】
【0005】
1つの革新的な態様では、1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムは、複数の時間ステップの各々においてそれぞれのオーディオサンプルを含むオーディオデータの出力シーケンスを生成するように構成される。ニューラルネットワークシステムは、1つまたは複数のオーディオ処理畳み込みニューラルネットワーク層を備える畳み込みサブネットワークと、出力層とを備えてもよい。畳み込みサブネットワークは、複数の時間ステップの各々について、出力シーケンスにおいて(現在の)時間ステップに先行する各時間ステップにおけるそれぞれのオーディオサンプルを含むオーディオデータの現在シーケンスを受信するように構成されてもよい。畳み込みサブネットワークは、時間(現在)ステップについての代替表現を生成するためにオーディオデータの現在シーケンスを処理するようにさらに構成されてもよい。したがって、この代替表現は、オーディオデータの現在シーケンスが、たとえば現在シーケンスの特徴を符号化して畳み込みサブネットワークによって符号化されている、数値表現、すなわち数値の順序付けられた集合を含んでもよい。出力層は、複数の時間ステップの各々について、時間ステップの代替表現を受信し、時間ステップに関する複数の可能なオーディオサンプルにわたるスコア分布を規定する出力を生成するために時間ステップの代替表現を処理するように構成されてもよい。
【0006】
そのようなシステムの多くの利点のうちのいくつかについては後に説明する。システムは、分布からサンプリングすることによって、現在の時間ステップに関するサンプルを選択するためにスコア分布を使用することができる。出力は、必ずしも必要ではないが、各可能なオーディオサンプル値について1つのスコアを含んでもよく、たとえば256の可能な値について256スコアを含んでもよい。したがって、モデル出力の数を減らすために、振幅値であってもよいオーディオサンプル値を圧縮または圧伸(compand)することが有用である場合がある。
【0007】
いくつかの実装形態では、畳み込みニューラルネットワーク層は、以下でより詳細に説明するように、因果的畳み込みニューラルネットワークである。具体的には、オーディオ処理畳み込みニューラルネットワーク層は、1つまたは複数の拡張因果的畳み込みニューラルネットワーク層を含んでもよい。再び、以下でより詳細に説明するように、拡張畳み込みニューラルネットワーク層は、シーケンス内の、すなわち前の層からの出力によって規定されるような非隣接値に畳み込みを適用する。これは、入力(時間)分解能を保ち、計算効率を維持しながら、畳み込みサブネットワークの受容野を桁違いに増加させることができる。
【0008】
いくつかの実装形態では、畳み込みニューラルネットワーク層は、拡張畳み込みニューラルネットワーク層の複数の積層されたブロックを含む。各ブロックは、拡張が増加する複数の拡張畳み込みニューラルネットワーク層を含んでもよい。たとえば、拡張は、各ブロック内の限界まで各連続層についてn倍増加されてもよい。これは、受容野のサイズをさらに増加させることができる。
【0009】
いくつかの実装形態では、畳み込みニューラルネットワーク層のうちの1つまたは複数は、ゲーテッド活性化ユニットを有してもよい。たとえば、層によって実施される畳み込みに続く正規化線形ユニットまたは他のユニットが、ゲーテッド活性化ユニットによって置き換えられてもよい。ゲーテッド活性化ユニットでは、出力は、2つの(因果的)畳み込み、主畳み込みおよびゲート畳み込みの組み合わせであってもよい。畳み込みは、各々前の層からの同じ出力のうちのいくつかまたはすべてに適用されてもよい。組み合わせは、ゲート畳み込みに適用される非線形活性化関数、たとえばシグモイドのような(0,1)範囲を有する活性化を含んでもよい。これは、次いで主畳み込みからの値を乗算してもよく、必ずしも必要ではないが、非線形活性化関数が主畳み込みに適用されてもよい。そのような手法は、データ内により複雑な構造を取り込む際に補助してもよい。
【0010】
各時間ステップにおける畳み込みサブネットワークからの代替表現は、ニューラルネットワーク入力、たとえば条件付け入力の潜在的表現において条件付けられてもよい。条件付け入力は、グローバル(実質的に時間非依存的)および/または局所的(時間依存的)であってもよい。条件付け入力は、たとえばテキスト、画像もしくはビデオデータ、またはオーディオデータ、たとえば特定の話者もしくは言語もしくは音楽の例を含んでもよい。ニューラルネットワーク入力は、条件付け入力の埋め込みを含んでもよい。たとえば、テキスト-音声システムでは、グローバル条件付け入力が話者埋め込みを含んでもよく、局所的条件付け入力が言語的特徴を含んでもよい。システムは、たとえば入力を繰り返すかまたはニューラルネットワークを使用して入力をアップサンプリングすることによって、ニューラルネットワーク入力または条件付け入力をより低いサンプリング周波数からオーディオサンプル生成周波数にマッピングするように構成されてもよい。したがって、ニューラルネットワーク入力は、テキストセグメントの特徴を含んでもよく、出力シーケンスは、テキストセグメントの言語化を表してもよく、ならびに/またはニューラルネットワーク入力は、話者もしくはイントネーションパターン値を含んでもよく、ならびに/またはニューラルネットワーク入力は、話者識別情報、言語識別情報、および発話スタイル情報のうちの1つもしくは複数を含んでもよい。代替的には、出力シーケンスは、楽曲を表す。
【0011】
畳み込みサブネットワークは、残差接続、たとえば畳み込み層の入力から、これを層の中間出力と合計するための加算器への接続を含んでもよい。これは、ネットワークが層をスキップまたは部分的にスキップするようにトレーニングされることを効果的に可能にし、したがって収束を高速化し、より深いモデルのトレーニングを容易にする。畳み込みサブネットワークは、追加的または代替的に、たとえば畳み込みサブネットワークの1つまたは複数の中間層の各々から出力層に提供される代替表現を直接生成する1つまたは複数の動作へのスキップ接続を含んでもよい。
【0012】
いくつかの実装形態では、時間ステップについての代替表現を生成するために畳み込みサブネットワークを使用してオーディオデータの現在シーケンスを処理することは、前の時間ステップについて計算された値を再使用する。再使用される値は、オーディオサンプルデータまたはそれから導出されたデータへの畳み込みフィルタの適用から導出された値を含んでもよい。再使用された値は、ある時間ステップにおいて記憶され、同じフィルタが同じ(または同じもののいくつか)オーディオサンプルデータまたはそれから導出されたデータに適用されるとき、より後の時間ステップにおいて検索されてもよい。記憶された値を再計算する必要がないので、これはシステムを計算上より効果的に、したがってより高速にすることができる。
【0013】
本明細書に記載の主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施されることが可能である。ニューラルネットワークシステムは、毎秒数万のオーダでオーディオサンプルを生成することができ、他のニューラルネットワークベースのオーディオ生成システムよりも高いレベルの粒度を提供する。ニューラルネットワークシステムは、たとえば最先端の技法よりも高品質のテキストから音声を生成することによって、オーディオ生成タスクにおいて最先端よりもはるかに性能が優れている結果を達成することができる。話者のアイデンティティを条件とすることによって異なる音声を生成するために、単一のトレーニングされたニューラルネットワークシステムが使用されることが可能である。リカレント型ニューラルネットワーク層の代わりに、たとえば長短期記憶(LSTM)層の代わりに、畳み込みニューラルネットワーク層、たとえば因果的畳み込み層を使用することによって、ニューラルネットワークシステムは、リカレント型ニューラルネットワーク層を含む他のシステムと同じくらい多くの計算リソースを必要とせずに、これらの有利な結果を達成することができ、短縮されたトレーニング時間をもたらす。リカレント層ではなく畳み込み層を用いることによって、ニューラルネットワークシステムの計算は、たとえばネットワークの層が各時間ステップについて展開される必要がないので、より容易にバッチ処理され、より容易に並列化されることが可能であり、システムの計算をより効率的に実行することを可能にする。加えて、拡張因果的畳み込み層を用いることによって、畳み込みサブネットワークの受容野と、したがってシステムによって生成されるオーディオの品質とは、オーディオを生成するための計算コストを大幅に増加させることなく改善されることが可能である。
【0014】
本明細書に記載の主題の1つまたは複数の実施形態の詳細は、添付図面および以下の説明において記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図1】例示的なニューラルネットワークシステムを示す図である。
【
図2】拡張因果的畳み込み層の例示的なブロックの視覚化を示す図である。
【
図3】畳み込みサブネットワークに関する例示的なアーキテクチャを示す図である。
【
図4】オーディオシーケンス内の所与の時間ステップにおいてオーディオサンプルを生成するための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0016】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0017】
図1は、例示的なニューラルネットワークシステム100を示す。ニューラルネットワークシステム100は、以下で説明するシステム、構成要素、および技法が実装されることが可能な、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
【0018】
ニューラルネットワークシステム100は、各々が複数の時間ステップの各々におけるそれぞれのオーディオサンプルを含むオーディオデータのシーケンス、たとえばオーディオデータの出力シーケンス152を生成する。
【0019】
一般に、所与のオーディオシーケンスにおける各時間ステップは、オーディオ波形内のそれぞれの時間に対応し、時間ステップにおけるオーディオサンプルは、対応する時間における波形を特徴付ける。いくつかの実装形態では、シーケンス内の各時間ステップにおけるオーディオサンプルは、対応する時間におけるオーディオ波形の振幅であり、すなわちニューラルネットワークシステム100によって生成されるシーケンスは、生の音声波形である。いくつかの他の実装形態では、シーケンス内の各時間ステップにおけるオーディオサンプルは、対応する時間における波形の圧縮表現または圧伸表現である。たとえば、オーディオサンプルは、波形のμ-law変換表現とすることができる。
【0020】
より具体的には、ニューラルネットワークシステム100は、自己回帰的にオーディオシーケンスを生成する。すなわち、出力オーディオシーケンス内の各特定の時間ステップについて、ニューラルネットワークシステム100は、特定のタイムステップの時点ですでに生成されているオーディオサンプルを条件とする、すなわちオーディオシーケンス内の特定のタイムステップよりも早いタイムステップにおけるオーディオサンプルを条件とするタイムステップにおけるオーディオサンプルを生成する。
【0021】
ニューラルネットワークシステム100は、畳み込みサブネットワーク110と出力層120とを含む。
【0022】
オーディオシーケンスの生成中の各タイムステップにおいて、畳み込みサブネットワーク110は、現在のオーディオシーケンス、すなわちそのタイムステップの時点ですでに生成されているオーディオシーケンスを受信し、そのタイムステップの代替表現を生成するために現在のオーディオシーケンスを処理するように構成される。たとえば、オーディオシーケンス152内のオーディオサンプル140を生成するとき、畳み込みサブネットワーク110は、オーディオシーケンス152内のオーディオサンプル140に先行するオーディオサンプルを含む現在のオーディオシーケンス142を受信し、代替表現144を生成するために現在のオーディオシーケンス142を処理することができる。
【0023】
出力層120は、タイムステップの各々において、そのタイムステップにおける代替表現を受信し、その時間ステップに関する可能なオーディオサンプルにわたるスコア分布を生成するように構成される。スコア分布は、複数の可能なオーディオサンプルの各々に関するそれぞれのスコアを含む。いくつかの実装形態では、出力層120は、ソフトマックス出力層である。たとえば、出力層120は、代替表現144を受信し、スコア分布146を生成するために代替表現144を処理することができる。
【0024】
具体的には、ニューラルネットワークシステム100が生のオーディオデータを生成するように構成されるとき、スコア分布は、複数の可能な振幅値の各々に関するそれぞれのスコアを含む。ニューラルネットワークシステム100が圧縮値または圧伸値を生成するように構成されるとき、スコア分布は、複数の可能な圧縮値または圧伸値の各々に関するそれぞれのスコアを含む。
【0025】
出力層146が所与の時間ステップに関するスコア分布を生成すると、ニューラルネットワークシステム100は、所与の時間ステップに関するスコア分布に従って複数の可能なオーディオサンプルから所与の時間ステップにおける出力シーケンス内に含まれるべきオーディオサンプルを選択することができる。たとえば、ニューラルネットワークシステム100は、スコア分布からサンプリングすることによって、すなわち各オーディオサンプルがオーディオサンプルに関するスコアに対応する尤度を用いて選択されるようにスコア分布内のスコアに従って可能なオーディオサンプルからサンプリングすることによってオーディオサンプルを選択することができ、またはスコア分布に従って最高スコアを有する可能なオーディオサンプルを選択することができる。
【0026】
畳み込みサブネットワーク110は、一般に複数のオーディオ処理畳み込みニューラルネットワーク層を含む。より具体的には、オーディオ処理畳み込みニューラルネットワーク層は、複数の因果的畳み込み層を含む。
【0027】
因果的畳み込み層は、各時間ステップについて、その時間ステップにおける、および入力シーケンス内のその時間ステップよりも前の時間ステップにおける入力のみに依存する、すなわち入力シーケンス内のその時間ステップの後の任意の時間ステップにおけるどの入力にも依存しない出力を生成することによって、複数の時間ステップの各々におけるそれぞれの入力を有する入力シーケンスに作用する畳み込み層である。場合によっては、因果的畳み込み層は、通常の畳み込みを適用し、次いで畳み込み層に関する活性化関数を適用する前に、通常の畳み込みの各出力を少数の時間ステップだけシフトすることによって、すなわち各出力を前方に(フィルタ長-1)時間ステップだけシフトすることによって実装され、ここで「フィルタ長」は、適用されている畳み込みのフィルタの長さである。
【0028】
過剰な数の層または過剰な長さのフィルタを必要とすることなくオーディオ処理畳み込み層の受容野を増大するために、オーディオ処理畳み込み層のうちのいくつかまたはすべては、拡張因果的畳み込み層とすることができる。拡張畳み込みは、拡張畳み込みに関する拡張値によって規定される特定のステップで入力値をスキップすることによって、フィルタがその長さよりも大きい領域にわたって適用される畳み込みである。拡張因果的畳み込みを組み込むことによって、オーディオ処理ニューラルネットワーク層は、通常の畳み込みよりも粗いスケールでそれらの入力に対して効果的に動作する。
【0029】
いくつかの実装形態では、オーディオ処理ニューラルネットワーク層は、拡張因果的畳み込み層の複数のブロックのスタックを含む。スタック内の各ブロックは、拡張が増大する複数の拡張畳み込みニューラルネットワーク層を含むことができる。たとえば、ブロック内で、拡張は、最初の拡張から開始して各層について2倍になることができ、次いで次のブロック内の第1の層について最初の拡張に戻ることができる。例示的な例として、ブロック内の拡張畳み込み層の拡張は、順番に、1、2、4、...、512とすることができる。拡張畳み込み層のブロックの単純化した例について、
図2を参照して以下に説明する。
【0030】
いくつかの実装形態では、畳み込みサブネットワークは、残差接続、スキップ接続、またはその両方を含む。残差接続とスキップ接続の両方を含む畳み込みサブネットワークの例示的なアーキテクチャについて、
図3を参照して以下に説明する。
【0031】
いくつかの実装形態では、ニューラルネットワークシステム100は、ニューラルネットワーク入力を条件とするオーディオシーケンスを生成する。たとえば、ニューラルネットワークシステム100は、ニューラルネットワーク入力102を条件とするオーディオシーケンス152を生成することができる。
【0032】
場合によっては、ニューラルネットワーク入力は、1つまたは複数の局所的特徴、すなわち出力シーケンス内の時間ステップごとに異なる1つまたは複数の特徴を含む。たとえば、ニューラルネットワークシステム100は、テキストセグメントの言語的特徴を入力として取得することができ、テキストセグメントの言語表現を表すオーディオシーケンスを生成することができ、すなわちニューラルネットワークシステム100は、書かれたテキストを話された音声に変換するテキスト-音声システムの一部として機能することができ、ニューラルネットワークシステム100によって生成されたオーディオシーケンスを言語化する構成要素を含むこともできる。
【0033】
いくつかの他の場合では、ニューラルネットワーク入力は、1つまたは複数のグローバル特徴、すなわち出力シーケンス全体を通して同じである1つまたは複数の特徴を含む。一例として、ニューラルネットワークシステム100は、話者のアイデンティティを条件とする音声、すなわち音声が話者の声のように聞こえるように生成されるように音声を生成することができる。この例では、ニューラルネットワークシステム100は、話者のアイデンティティを符号化するベクトル、たとえば話者を識別するワンホット符号化ベクトルを取得し、生成された音声を、取得されたベクトルを条件にすることができる。
【0034】
一般に、オーディオシーケンスは、畳み込みサブネットワーク内の畳み込み層のうちのいくつかまたはすべての活性化関数を条件付けることによって、ニューラルネットワーク入力を条件とする。すなわち、活性化関数の出力と、したがって畳み込み層の出力とは、層によって実行される畳み込みの出力だけでなく、ニューラルネットワーク入力にも依存する。
【0035】
ニューラルネットワーク入力において畳み込み層の活性化関数を条件付けることについて、
図3を参照して以下により詳細に説明する。
【0036】
図2は、拡張因果的畳み込み層の例示的なブロックの視覚化200を示す。具体的には、例示的なブロックは、拡張1を有する拡張因果的畳み込み層204と、拡張2を有する拡張因果的畳み込み層206と、拡張4を有する拡張因果的畳み込み層208と、拡張8を有する拡張因果的畳み込み層210とを含む。
【0037】
視覚化200では、拡張因果的畳み込み層のブロックは、出力シーケンスを生成するために現在の入力シーケンス202に対して作用している。具体的には、視覚化200は、ブロックがどのようにして現在の入力シーケンス202および出力シーケンスにおける現在最後の時間ステップである時間ステップにおける出力である出力212を生成するかを太い矢印を使用して視覚化する。
【0038】
視覚化200からわかるように、ブロック内の各層は因果的畳み込み層であるので、出力212は、ブロック内の層によって作用される様々なシーケンス内の最後の現在の時間ステップまたは最後の現在の時間ステップの前の時間ステップにおける出力のみに依存する。
【0039】
加えて、視覚化200からわかるように、ブロック内の層は、拡張が増加する順に配置され、ブロック内の第1の層、すなわち拡張因果的畳み込み層204は拡張1を有し、ブロック内の最後の層、すなわち拡張因果的畳み込み層204は拡張8を有する。具体的には、視覚化200において太い矢印によって示されるように、拡張因果的畳み込み層204は拡張1を有するので、層204のフィルタは、現在の入力シーケンス202内の隣接する入力に適用される。拡張因果的畳み込み層206は拡張2を有するので、層206のフィルタは、層204によって生成された出力シーケンス内の1つの出力によって分離された出力に適用される。拡張因果的畳み込み層208は拡張4を有するので、層208のフィルタは、層206によって生成された出力シーケンス内の3つの出力によって分離された出力に適用される。拡張因果的畳み込み層210は拡張8を有するので、層210のフィルタは、層208によって生成された出力シーケンス内の7つの出力によって分離された出力に適用される。
【0040】
図3は、
図1の畳み込みサブネットワーク110に関する例示的なアーキテクチャ300を示す。上記で説明したように、例示的なアーキテクチャ300では、畳み込みサブネットワーク内にある拡張因果的畳み込み層は、残差接続とスキップ接続とを有する。
【0041】
具体的には、アーキテクチャ300では、畳み込みサブネットワーク110は、現在の出力シーケンス142を処理する、すなわち現在の出力シーケンス142に因果的畳み込みを適用することによる因果的畳み込み層を含む。
【0042】
畳み込みサブネットワーク110は、次いで拡張因果的畳み込み層のスタックを通して因果的畳み込み層302の出力を処理する。
【0043】
スタック内の各拡張因果的畳み込み層304は、拡張因果的畳み込み層304への入力306に拡張因果的畳み込み層308を適用する。上記で説明したように、いくつかの実装形態では、スタック内の拡張因果的畳み込み層はブロック内に配置され、各層によって適用される拡張因果的畳み込みの拡張は所与のブロック内で増加し、次いで次のブロック内の第1の層について初期値で再開する。
【0044】
いくつかの実装形態では、スタック内の拡張因果的畳み込み層は、要素ごとに非線形の、すなわち従来の活性化関数の出力が要素ごとにゲートベクトルを乗算されるゲーテッド活性化関数を有する。これらの実装形態のうちのいくつかでは、拡張因果的畳み込み308は、層入力302上に2つの拡張因果的畳み込み、層304に関するメインフィルタと層入力306との間の第1の拡張因果的畳み込みと、層304に関するゲートフィルタと層入力306との間の別の拡張因果的畳み込みとを含む。これらの実装形態のうちの他のものでは、拡張因果的畳み込み308は単一の拡張因果的畳み込みであり、単一の畳み込みの出力の半分は、層304に関するメインフィルタと層入力306との間の拡張因果的畳み込みの出力として提供され、単一の畳み込みの出力の他の半分は、層304に関するゲートフィルタと層入力306との間の拡張因果的畳み込みの出力として提供される。
【0045】
拡張因果的畳み込み層304は、次いで拡張因果的畳み込みの出力を使用して層304の活性化関数の出力を決定する。
【0046】
具体的には、活性化関数がゲーテッド活性化関数であり、生成されている出力シーケンスがニューラルネットワーク入力を条件としていないとき、層304は、
図3の例ではtanh関数である要素ごとの非線形関数310を、メインフィルタを用いた拡張畳み込みの出力に適用し、
図3の例ではシグモイド関数である要素ごとのゲーティング関数を、ゲートフィルタを用いた拡張畳み込みの出力に適用する。層304は、次いで活性化関数出力を生成するために、非線形関数310とゲーティング関数312の出力との間で要素ごとの乗算314を実行する。
【0047】
より具体的には、要素ごとの非線形性がtanhであり、要素ごとのゲーティング関数がシグモイド関数であるとき、層kに関する活性化関数zの出力は、
【数1】
を満たし、ここでW
f,kは層kに関するメインフィルタであり、xは層入力であり、*は因果的拡張畳み込みを示し、
【数2】
は要素ごとの乗算を示し、W
g,kは層kに関するゲートフィルタである。
【0048】
生成されている出力シーケンスがニューラルネットワーク入力を条件としているとき、層304はまた、ニューラルネットワーク入力を活性化関数の出力の条件にする。具体的には、非線形関数およびゲーティング関数は、各々対応する拡張畳み込み出力とニューラルネットワーク入力から生成された入力との組み合わせを入力として受け取る。
【0049】
より具体的には、ニューラルネットワーク入力がグローバル特徴を含み、したがってシーケンス内のタイムステップのすべてについて同じであり、要素ごとの非線形性はtanhであり、要素ごとのゲーティング関数は、シグモイド関数であるとき、層kに関する活性化関数zの出力は、
【数3】
を満たし、ここで
【数4】
は層kに関する(活性化関数の主成分に対するhの)主学習可能線形投影であり、hはニューラルネットワーク入力であり、
【数5】
は、層kに関する(活性化関数のゲート成分に対するhの)ゲート学習可能線形投影である。
【0050】
代替的には、ニューラルネットワーク入力が局所的特徴、すなわち時間ステップごとに変化する特徴を含むとき、システム100は、出力シーケンス内の各時間ステップに関する特徴のセットを含むシーケンスyを取得する。このとき、層kに関する活性化関数zの出力は、
【数6】
を満たし、ここでV
f,k*yおよびV
g,k*yは、それぞれ1×1の畳み込みである。いくつかの実装形態では、システム100は、ニューラルネットワーク入力としてシーケンスyを直接受信し、すなわち出力シーケンスと同じ分解能を有するシーケンスを直接受信する。他の実装形態では、システム100は、出力シーケンスよりも低い分解能、すなわちより低いサンプリング周波数を有するシーケンスを受信する。これらの場合、システムは、シーケンスyを生成するために転置(学習アップサンプリング)畳み込みネットワークを使用してより低い分解能のシーケンスを処理することによってシーケンスyを生成することができ、またはシーケンスyを生成するために時間を通じてより低い分解能のシーケンスからの値を繰り返すことができる。
【0051】
一例として、局所的特徴がテキストから音声への生成に使用するための言語的特徴であるとき、言語的特徴は、単音、音節、単語、句、およびテキストの発声レベルの特徴のうちのいくつかまたはすべてを含むことができる。使用することができる言語的特徴の例示的なセットは、Zen、Heiga. An example of context-dependent label format for HMM-based speech synthesis in English、2006. URL http://hts.sp.nitech.ac.jp/?DownloadならびにZen、Heiga、Senior、Andrew、およびSchuster、Mike. Statistical parametric speech synthesis using deep neural networks. In Proc. ICASSP、7962~7966ページ、2013に記載されている。
【0052】
アーキテクチャ300は、拡張因果的畳み込み層に関するスキップ接続と残差接続とを含むので、層304は、次いで活性化関数出力に対して1×1畳み込み316を実行する。
【0053】
層304は、層のスキップ出力318として1×1畳み込みの出力を提供し、層304の最終出力320を生成するために、残差、すなわち層入力306と、1×1畳み込みの出力とを加算する。畳み込みサブネットワーク110は、次いでスタック内の次の拡張畳み込み層への層入力として最終出力320を提供する。
【0054】
いくつかの実装形態では、層304は、活性化関数出力に対して2つの1×1畳み込みを実行し、一方は残差フィルタを用い、他方はスキップフィルタを用いる。これらの実装形態では、層304は、スキップフィルタを用いる畳み込みの出力を層のスキップ出力318として提供し、層304の最終出力320を生成するために、残差と、残差フィルタを用いる1×1畳み込みの出力とを加算する。
【0055】
畳み込みサブネットワーク110は、次いでスタック内の次の拡張畳み込み層への層入力として最終出力320を提供する。スタック内の最後の層について、次の層がないので、畳み込みサブネットワーク110は、最後の層によって生成された最終出力320を破棄することができ、または最終出力を計算することを控えることができ、すなわちスタック内の最後の層に対する1×1畳み込みおよび残差の加算を実行することを控えることができる。
【0056】
拡張畳み込み層のスタック内のすべての層304の処理が完了すると、畳み込みサブネットワーク110は、層304によって生成されたスキップ出力を合計する(322)。畳み込みサブネットワーク110は、次いで代替表現144を生成するために、1つもしくは複数の非線形関数、1つもしくは複数の1×1畳み込み、またはその両方を合計322に適用することができる。具体的には、
図3の例では、畳み込みサブネットワーク110は、代替表現144を生成するために、要素ごとの非線形性324、たとえばReLU、それに続く1×1畳み込み326、それに続く別の要素ごとの非線形性328、およびそれに続く最後の1×1畳み込み330を適用する。
【0057】
上記で説明したように、出力層120は、次いでスコア分布146を生成するために代替表現144を処理する。
【0058】
図4は、オーディオシーケンス内の所与の時間ステップにおけるオーディオサンプルを生成するための例示的な処理400のフロー図である。便宜上、プロセス400は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされたニューラルネットワークシステム、たとえば
図1のニューラルネットワークシステム100は、プロセス400を実行することができる。
【0059】
システムは、畳み込みサブネットワークへの入力として現在のオーディオシーケンスを提供する(ステップ402)。現在のオーディオシーケンスは、所与の時間ステップの時点ですでに生成されている音声シーケンス、すなわち所々の時間ステップの前の時間ステップにおける出力オーディオサンプルを含むシーケンスである。上記で説明したように、畳み込みサブネットワークは、オーディオ処理畳み込みニューラルネットワーク層、たとえば拡張因果的畳み込み層を含み、所与の時間ステップに関する代替表現を生成するためにオーディオデータの現在シーケンスを処理するように構成される。
【0060】
システムは、出力層、たとえばソフトマックス出力層への入力として代替表現を提供する(ステップ404)。出力層は、時間ステップに関する可能なオーディオサンプルにわたるスコア分布を生成するために代替表現を処理するように構成される。
【0061】
システムは、スコア分布に従って所与の時間ステップにおいてオーディオシーケンス内に含めるためのオーディオサンプルを選択する(ステップ406)。たとえば、システムは、スコア分布に従って可能なオーディオサンプルをサンプリングすることができる。
【0062】
システムは、生のまたは圧縮されたおよび/もしくは圧伸されたオーディオデータ、たとえば人間の話者、音楽などの波形についてトレーニングされてもよい。オプションで、テキストの言語化のためのオーディオデータと対になったテキストから導出された言語的特徴として表されてもよい条件付データ、たとえばテキスト-音声データが含まれてもよい。トレーニング時、すなわち畳み込み層のフィルタおよびシステムの任意の他のパラメータのトレーニング値を決定するための畳み込みサブネットワークおよび出力層のトレーニングの間、システムによって生成されるべきグラウンドトゥルース出力のすべての時間ステップが既知であるので、システムは、並列に、すなわち自己回帰的にではなく、すべての時間ステップについて条件予測を生成することができる。一般に、システムは、従来の教師付き学習技法、たとえば逆伝播ベースの技法を用いる確率的勾配降下法を使用して、パラメータのトレーニング値を決定するためにトレーニングを実行することができる。上記で説明したように、この並列化および因果的畳み込み層の使用のために、システムは、他のシステム、再帰ニューラルネットワーク層を含むものと同じくらい多くの計算リソースをトレーニングする必要がなく、短縮されたトレーニング時間をもたらす。
【0063】
加えて、システムは、出力シーケンスを自己回帰的に生成するので、いくつかの実装形態では、畳み込みサブネットワークは、所与の時間ステップについての代替表現を計算するとき、前の時間ステップについて計算された値を再使用する。具体的には、同じオーディオサンプルがサブネットワークへの入力として2回以上提供されるので、畳み込みサブネットワークによって実行される計算のうちのいくつかは、複数の異なる時間ステップにおいて同じになる。これらの実装形態では、時間ステップごとに計算を再計算するのではなく、畳み込みサブネットワークは、計算が実行された1回目に計算の出力値を記憶し、次いで記憶された出力値を後続の時間ステップにおいて再使用することができる。単純な例として、畳み込みサブネットワーク内の第1の畳み込み層は、オーディオシーケンスの生成の間、同じフィルタを同じオーディオサンプル値に複数回適用することになる。各時間ステップにおいてこれらのフィルタ適用の出力を再計算するのではなく、システムは、前の時間ステップにおいて計算された出力を再使用することができる。
【0064】
いくつかの実装形態では、受容野を増加させるための別の方法として、より小さい受容野を有する別の(より大きい)スタックを条件付けるために、非常に大きい(長い)受容野を有するが、好ましくは層あたりのユニットがより少ない拡張因果的畳み込み層の1つのスタックが用いられてもよい。より大きいスタックは、たとえば最後に切り取られる、オーディオ信号のより短い部分を処理してもよい。
【0065】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを実行するように構成されることは、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせをシステムがインストールしていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを実行するように構成されることは、データ処理装置によって実行されると装置に動作またはアクションを実行させる命令を1つまたは複数のプログラムが含むことを意味する。
【0066】
本明細書に記載の主題および機能動作の実施形態は、デジタル電子回路において、有形に具体化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書において開示された構造およびそれらの構造的等価物を含むコンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組み合わせにおいて実装することができる。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわちデータ処理装置による実行のため、またはデータ処理装置の動作を制御するための、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組み合わせとすることができる。代替的にまたは追加的に、プログラム命令は、データ処理装置による命令のために適切なレシーバ装置への送信のための情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば機械生成された電気信号、光信号、または電磁信号上に符号化することができる。
【0067】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含むすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)とすることができ、またはそれらをさらに含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組み合わせを構成するコードをオプションで含むことができる。
【0068】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは記述される場合もあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む任意の形態で展開することができる。プログラムは、必要ではないが、ファイルシステム内のファイルに対応してもよい。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語文書内に記憶された1つまたは複数のスクリプト内に、対象のプログラム専用の単一のファイル内に、または複数の協調ファイル、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル内に記憶することができる。コンピュータプログラムは、1つのコンピュータ上に、または1つのサイトにおいてもしくは複数のサイトにわたって配置し、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0069】
本明細書では、「データベース」という用語は、データの任意の集合を指すように広く使用され、データは、任意の特定の方法で構成される必要はなく、またはまったく構成される必要はなく、1つまたは複数の場所における記憶デバイス上に記憶することができる。したがって、たとえばインデックスデータベースは、データの複数の集合を含むことができ、その各々は、異なって編成されアクセスされてもよい。
【0070】
同様に、本明細書では、「エンジン」という用語は、ソフトウェアベースのシステム、サブシステム、または1つもしくは複数の特定の機能を実行するようにプログラムされたプロセスを指すように広く使用される。一般に、エンジンは、1つまたは複数の場所における1つまたは複数のコンピュータ上にインストールされた1つまたは複数のソフトウェアモジュールまたは構成要素として実装されることになる。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用にされることになり、他の場合では、複数のエンジンが同じコンピュータ上にインストールされ、実行されることが可能である。
【0071】
本明細書に記載のプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、専用論理回路、たとえばFPGAもしくはASICによって、または専用論理回路および1つもしくは複数のプログラムされたコンピュータの組み合わせによって実行することもできる。
【0072】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実行または遂行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。中央処理装置およびメモリは、専用論理回路によって補完されるか、またはその中に組み込まれることが可能である。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクも含むか、またはそれらからデータを受信する、もしくはそれらにデータを送信する、もしくはその両方のために動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば少しだけ例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、または携帯型記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込むことができる。
【0073】
コンピュータプログラムおよびデータを記憶するのに適したコンピュータ可読媒体は、例として半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0074】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)と、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実施することができる。ユーザとの対話を提供するために、他の種類のデバイスを同様に使用することができ、たとえばユーザに提供されるフィードバックは、任意の形態の感覚的フィードバック、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、たとえばユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによってユーザと対話することができる。また、コンピュータは、パーソナルデバイス、たとえばメッセージングアプリケーションを実行しているスマートフォンにテキストメッセージまたは他の形態のメッセージを送信し、引き換えにユーザから応答メッセージを受信することによってユーザと対話することができる。
【0075】
機械学習モデルを実施するためのデータ処理装置は、たとえば機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むこともできる。
【0076】
機械学習モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装し展開することができる。
【0077】
本明細書に記載の主題の実施形態は、バックエンド構成要素を、たとえばデータサーバとして含む、またはミドルウェア構成要素、たとえばアプリケーションサーバを含む、またはフロントエンド構成要素、たとえばグラフィカルユーザインターフェース、ウェブサーバ、もしくはユーザが、本明細書に記載の主題の実装形態と対話することができるアプリケーションを有するクライアントコンピュータを含む、または1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
【0078】
コンピューティングシステムは、クライアントとサーバとを含むことができる。クライアントおよびサーバは、一般に互いに離れており、典型的には、通信ネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、クライアントとして動作するデバイスと対話するユーザにデータを表示し、そこからユーザ入力を受信する目的のために、データ、たとえばHTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザ対話の結果は、デバイスからサーバにおいて受信することができる。
【0079】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の範囲に対する限定、または特許請求されてもよい範囲に対する限定として解釈されるべきではなく、特定の発明の特定の実施形態に特有である場合がある特徴の説明として解釈されるべきである。本明細書において別々の実施形態の文脈で説明されている特定の特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈で説明されている様々な特徴は、複数の実施形態において別々に、または任意の適切な部分的組み合わせにおいて実施することもできる。さらに、特徴は、特定の組み合わせにおいて作用するものとして上記で説明されている場合があり、そのようなものとして当初は特許請求されている場合さえあるが、特許請求された組み合わせからの1つまたは複数の特徴は、場合によっては組み合わせから削除することができ、特許請求された組み合わせは、部分的組み合わせまたは部分的組み合わせの変形例に向けられてもよい。
【0080】
同様に、動作は、特定の順序で図面に描かれ、特許請求の範囲に列挙されているが、これは所望の結果を達成するために、そのような動作が示された特定の順序もしくはシーケンシャルな順序で実行されること、または示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に単一のソフトウェア製品において一緒に統合することができ、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
【0081】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲内に列挙されたアクションは、異なる順序で実行することができ、依然として所望の結果を達成することができる。一例として、添付の図面において描かれたプロセスは、所望の結果を達成するために、示された特定の順序、またはシーケンシャルな順序を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【0082】
100 ニューラルネットワークシステム、システム
102 ニューラルネットワーク入力
110 畳み込みサブネットワーク
120 出力層
140 オーディオサンプル
142 現在のオーディオシーケンス、現在の出力シーケンス
144 代替表現
146 スコア分布、出力層
152 オーディオデータの出力シーケンス、オーディオシーケンス
200 視覚化
202 現在の入力シーケンス
204 拡張因果的畳み込み層、層
206 拡張因果的畳み込み層、層
208 拡張因果的畳み込み層、層
210 拡張因果的畳み込み層、層
212 出力
300 アーキテクチャ
302 因果的畳み込み層、層入力
304 拡張因果的畳み込み層、層
306 入力、層入力
308 拡張因果的畳み込み層
310 非線形関数
312 ゲーティング関数
314 乗算
316 1×1畳み込み
318 スキップ出力
320 最終出力
322 合計
324 非線形性
326 1×1畳み込み
328 非線形性
330 1×1畳み込み