(57)【要約】  ニューラルネットワークを使用した周波数ベースのオーディオ分析のための方法、システム、およびコンピュータ記憶媒体上で符号化されたコンピュータプログラムを含む装置。方法のうちの1つは、複数のニューラルネットワーク層を含むニューラルネットワークを、トレーニングデータでトレーニングすることを含み、ニューラルネットワークは、オーディオサンプルの周波数領域特徴を受信し、周波数領域特徴を処理して、オーディオサンプルについてのニューラルネットワーク出力を生成するように構成され、ニューラルネットワークは、(i)周波数領域特徴を、対数スケーリングされた周波数領域特徴にマップするように構成される畳み込み層であって、1つまたは複数の畳み込み層フィルタを備える、畳み込み層と、(ii)対数スケーリングされた周波数領域特徴を処理してニューラルネットワーク出力を生成するように構成される、それぞれの層パラメータを有する1つまたは複数の他のニューラルネットワーク層とを備える。
2019520600.tif 000002
【特許請求の範囲】
【請求項１】
トレーニングデータで複数のニューラルネットワーク層を含むニューラルネットワークをトレーニングするための方法であって、
前記ニューラルネットワークは、オーディオサンプルの周波数領域特徴を受信し、かつ前記オーディオサンプルについてのニューラルネットワーク出力を生成するために前記周波数領域特徴を処理するように構成され、
前記ニューラルネットワークは、(i)周波数領域特徴を対数スケーリングされた周波数領域特徴にマップするように構成される畳み込み層であって、1つまたは複数の畳み込み層フィルタを備える、畳み込み層と、(ii)前記ニューラルネットワーク出力を生成するために前記対数スケーリングされた周波数領域特徴を処理してように構成される、それぞれの層パラメータを有する1つまたは複数の他のニューラルネットワーク層とを備え、
前記方法は、
複数のトレーニングオーディオサンプルの各々について、前記トレーニングオーディオサンプルの周波数領域特徴および前記トレーニングオーディオサンプルについての既知の出力を備えるトレーニングデータを取得するステップと、
対数スケール周波数領域特徴への周波数領域特徴の最適対数畳み込みマッピングを判断するために、前記他のニューラルネットワーク層の前記パラメータの値を調整し、かつ前記1つまたは複数の畳み込み層フィルタを調整するように前記トレーニングデータで前記ニューラルネットワークをトレーニングするステップと
を含む、方法。
【請求項２】
前記トレーニングオーディオサンプルの前記周波数領域特徴は、1つまたは複数の周波数帯を備える周波数スペクトル中に存在する、請求項1に記載の方法。
【請求項３】
前記トレーニングデータで前記ニューラルネットワークをトレーニングするステップは、前記畳み込み層について、
前記トレーニングオーディオサンプルの前記周波数領域特徴を受信するステップと、
前記1つまたは複数の畳み込み層フィルタの各々のサイズを判断するステップと、
前記1つまたは複数の畳み込み層フィルタの前記判断されたサイズに一致するように、前記1つまたは複数の周波数帯をアップスケールするステップと、
畳み込み層出力を生成するために、前記畳み込み層を使用して前記1つまたは複数のアップスケールされた周波数帯を処理するステップと、
前記畳み込み層の上のニューラルネットワーク層から前記周波数領域特徴についての逆伝播された勾配を受信するステップと、
前記1つまたは複数の畳み込み層フィルタに関して、前記ニューラルネットワーク用の誤差関数の勾配を計算するステップであって、前記誤差関数は、前記1つまたは複数の畳み込み層フィルタおよび前記受信された逆伝播された勾配に依存する、ステップと、
前記計算された勾配を使用して前記1つまたは複数の畳み込み層フィルタを更新するステップと
を含む、請求項2に記載の方法。
【請求項４】
前記1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断するステップは、
前記周波数スペクトルの最も高いセクションに対応する周波数帯を選択するステップと、
前記選択された周波数帯に基づいて、前記1つまたは複数の畳み込み層フィルタの各々の前記それぞれのサイズを判断するステップと
を含む、請求項3に記載の方法。
【請求項５】
前記1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断するステップは、前記1つまたは複数の畳み込み層フィルタの各々の所定のそれぞれのサイズを判断するステップを含む、請求項3に記載の方法。
【請求項６】
前記1つまたは複数の畳み込み層フィルタの前記判断されたサイズに一致するように、前記1つまたは複数の周波数帯をアップスケールするステップは、補間方法を使用して前記1つまたは複数の周波数帯をアップスケールするステップを含む、請求項3から5のいずれか一項に記載の方法。
【請求項７】
前記トレーニングオーディオサンプルの前記周波数領域特徴は線形周波数領域特徴を備える、請求項1から6のいずれか一項に記載の方法。
【請求項８】
ニューラルネットワークの複数の層の各々を通してデータ入力を処理するための方法であって、
前記ニューラルネットワークは、オーディオサンプルの周波数領域特徴を受信し、かつ前記オーディオサンプルについてのニューラルネットワーク出力を生成するために前記周波数領域特徴を処理するように構成され、
前記ニューラルネットワークは、(i)周波数領域特徴を対数スケーリングされた周波数領域特徴にマップするように構成される畳み込み層であって、1つまたは複数の畳み込み層フィルタを備える、畳み込み層と、(ii)前記ニューラルネットワーク出力を生成するために前記対数スケーリングされた周波数領域特徴を処理するように構成される、それぞれの層パラメータを有する1つまたは複数の他のニューラルネットワーク層とを備え、
前記方法は、
オーディオサンプルの周波数領域特徴を備えるデータ入力を取得するステップと、
畳み込み層出力を生成するために、前記畳み込み層を使用して前記周波数領域特徴を処理するステップであって、前記畳み込み層出力は、対数スケールの周波数領域特徴を備える、ステップと、
ニューラルネットワーク出力を生成するために、前記1つまたは複数の他のニューラルネットワーク層を使用して前記生成された畳み込み層出力を処理するステップと
を含む、方法。
【請求項９】
畳み込み層出力を生成するために前記畳み込み層を使用して前記周波数領域特徴を処理するステップであって、前記畳み込み層出力は、対数スケールの周波数領域特徴を備える、ステップは、
前記畳み込み層において前記周波数領域特徴を受信するステップであって、前記周波数領域特徴は、1つまたは複数の周波数帯を備える周波数スペクトル中に存在する、ステップと、
各周波数帯について、前記周波数帯に基づいてそれぞれの畳み込みフィルタのサイズをダウンスケールするステップと、
前記畳み込み層出力を生成するために、前記ダウンスケールされた1つまたは複数の畳み込みフィルタを使用して前記1つまたは複数の周波数帯を処理するステップと
を含む、請求項8に記載の方法。
【請求項１０】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを備えるシステムであって、前記命令は、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
複数のニューラルネットワーク層を備えるニューラルネットワークシステムであって、前記ニューラルネットワークシステムは、オーディオサンプルのスペクトログラムを取得し、かつ前記オーディオサンプルについてのニューラルネットワーク出力を生成するために前記スペクトログラムを処理するように構成され、前記複数のニューラルネットワーク層は、
マルチスケール周波数領域特徴への周波数領域特徴の畳み込みマッピングを実施するように構成される複数の畳み込みニューラルネットワークステージのシーケンスを備える第1のサブネットワークであって、
前記畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワークステージは、それぞれの畳み込み層パラメータを各々が有する1つまたは複数の畳み込みニューラルネットワーク層を備え、
(i)前記畳み込みニューラルネットワークステージのシーケンス中の第1の畳み込みニューラルネットワークステージは、前記オーディオサンプルの前記スペクトログラムを取得し、かつ第1の畳み込み出力を生成するように構成され、(ii)前記畳み込みニューラルネットワークステージのシーケンス中の各後続の畳み込みニューラルネットワークステージは、前記畳み込みニューラルネットワークステージのシーケンス中の先行する畳み込みニューラルネットワークステージによって生成された畳み込み出力を受信し、かつそれぞれの畳み込みニューラルネットワーク出力を生成するように構成される、
第1のサブネットワークと、
少なくとも(i)隠れニューラルネットワーク層および(ii)それぞれの層パラメータを各々が有する出力層を備える第2のサブネットワークであって、
(i)前記隠れニューラルネットワーク層は、前記畳み込みニューラルネットワーク層のシーケンス中の前記畳み込みニューラルネットワーク層によって生成された前記畳み込みニューラルネットワーク出力のうちの1つまたは複数を受信し、かつ隠れニューラルネットワーク層出力を生成するように構成され、(ii)前記出力層は、前記隠れニューラルネットワーク出力から導出された出力を受信し、かつ前記オーディオサンプルについての前記ニューラルネットワーク出力を生成するように構成される、
第2のサブネットワークと
を備える、
ニューラルネットワークシステムを実装するための動作を実施させる、システム。
【請求項１１】
前記第1の畳み込みニューラルネットワークステージは、
前記オーディオサンプルの前記スペクトログラムを受信することであって、前記スペクトログラムは、周波数帯に対応する複数の行および時間帯域に対応する複数の列を備える、受信することと、
高さH×長さLの時間帯域をサイズH×1の1つまたは複数のベクトルに圧縮することと、
サイズH×1の前記1つまたは複数のベクトルを前記畳み込みニューラルネットワークステージのシーケンス中の後続の畳み込みニューラルネットワークステージに処理のために提供することと
を行うように構成される、請求項10に記載のシステム。
【請求項１２】
各後続の畳み込みニューラルネットワークステージは、
先行する畳み込みニューラルネットワークステージから1つまたは複数のベクトル入力を受信し、
それぞれの畳み込みニューラルネットワークステージ出力を生成するために、前記受信された1つまたは複数のベクトル入力の前記サイズを2分の1に削減し、
前記それぞれの畳み込みニューラルネットワークステージ出力を処理のために後続のニューラルネットワーク層に提供する
ように構成される、請求項11に記載のシステム。
【請求項１３】
前記後続の畳み込みニューラルネットワークステージの中に含まれる畳み込み層パラメータは、高さ3および行ストライド2の畳み込み層フィルタを備える、請求項12に記載のシステム。
【請求項１４】
各後続の畳み込みニューラルネットワークステージは、少なくとも(i)行ストライド2を有する最大プーリング層がその後に続く、1の行ストライドを有する1×1×2畳み込み層、(ii)3×1×D畳み込み層、および(iii)行ストライド2を有する最大プーリング層がその後に続く、行ストライド1を有する3×1×Dの、深さ方向に分離可能な畳み込みを備え、Dは畳み込み層フィルタの深さを表す、請求項12に記載のシステム。
【請求項１５】
各後続の畳み込みニューラルネットワークステージは正規化線形ユニットを備える、請求項14に記載のシステム。
【請求項１６】
前記隠れニューラルネットワーク層は、各生成された畳み込みステージ出力の行連結を受信するように構成される、請求項10から15のいずれか一項に記載のシステム。
【請求項１７】
前記隠れニューラルネットワーク層は、前記畳み込みニューラルネットワークステージのシーケンス中の最終畳み込みに対応する出力を受信するように構成される、請求項10から15のいずれか一項に記載のシステム。
【請求項１８】
前記畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワーク層の前記深さは、前記畳み込みニューラルネットワークステージのシーケンスを通じて増加する、請求項17に記載のシステム。
【請求項１９】
前記畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワーク層の前記深さは1よりも大きい、請求項10から18のいずれか一項に記載のシステム。
【請求項２０】
前記ニューラルネットワークシステムは、マルチスケール周波数領域特徴への周波数領域特徴の最適畳み込みマッピングを判断するために、前記他のニューラルネットワーク層の前記層パラメータの値を調整し、かつ前記1つまたは複数のそれぞれの畳み込み層パラメータを調整するようにトレーニングデータでトレーニングされ、トレーニングすることは、
複数のトレーニングオーディオサンプルの各々について、前記トレーニングオーディオサンプルのスペクトログラムおよび前記トレーニングオーディオサンプルについての既知の出力を備えるトレーニングデータを取得することと、
マルチスケール周波数領域特徴への周波数領域特徴の前記最適畳み込みマッピングを判断するために、前記第2のサブネットワークの前記層の前記パラメータの前記値を調整し、前記1つまたは複数の畳み込み層パラメータを調整するように前記トレーニングデータで前記ニューラルネットワークをトレーニングすることと
を含み、トレーニングすることは、前記第1のサブネットワーク中の各畳み込み層について、
それぞれの畳み込み層入力を受信することと、
畳み込み層出力を生成するために、前記畳み込み層を通して前記受信された畳み込み層入力を処理することと、
前記畳み込み層の上のニューラルネットワーク層から前記スペクトログラムについての逆伝播された勾配を受信することと、
前記ニューラルネットワーク用の誤差関数の勾配を計算することであって、前記誤差関数は、前記それぞれの畳み込み層パラメータおよび前記受信された逆伝播された勾配に依存する、計算することと、
前記計算された勾配を使用して前記それぞれの畳み込み層パラメータを更新することと
を含む、請求項10から19のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、出力を生成するために、ニューラルネットワークの層を通して入力を処理することに関する。
【背景技術】
【０００２】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を利用して、受信された入力についての出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加え、1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワークの中の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】"Convolutional Neural Networks for Speech Recognition" Ossama Abdel-Hamid、Abdel-rahman Mohamed、Hui Jiang、Li Deng、Gerald Penn、およびDong Yu、IEEE/ACM TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING、VOL. 22、NO. 10、2014年10月
【発明の概要】
【課題を解決するための手段】
【０００４】
概して、本明細書に記載する主題の1つの発明的態様は、トレーニングデータで複数のニューラルネットワーク層を含むニューラルネットワークをトレーニングするための方法で具現化することができ、ニューラルネットワークは、オーディオサンプルの周波数領域特徴を受信し、かつオーディオサンプルについてのニューラルネットワーク出力を生成するために周波数領域特徴を処理するように構成され、ニューラルネットワークは、(i)周波数領域特徴を対数スケーリングされた周波数領域特徴にマップするように構成される畳み込み層であって、1つまたは複数の畳み込み層フィルタを備える、畳み込み層と、(ii)ニューラルネットワーク出力を生成するために対数スケーリングされた周波数領域特徴を処理するように構成される、それぞれの層パラメータを有する1つまたは複数の他のニューラルネットワーク層とを備え、本方法は、複数のトレーニングオーディオサンプルの各々について、トレーニングオーディオサンプルの周波数領域特徴およびトレーニングオーディオサンプルについての既知の出力を備えるトレーニングデータを取得するアクションと、対数スケールの周波数領域特徴への周波数領域特徴の最適対数畳み込みマッピングを判断するために、他のニューラルネットワーク層のパラメータの値を調整し、1つまたは複数の畳み込み層フィルタを調整するようにトレーニングデータでニューラルネットワークをトレーニングするアクションとを含む。
【０００５】
本態様の他の実施形態は、方法のアクションを実施するように各々が構成される、対応するコンピュータシステムと、装置と、1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムとを含む。1つまたは複数のコンピュータからなるシステムは、動作中、システムに、アクションを実施させる場合があるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せのおかげで特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実施させる命令を含むおかげで特定の動作またはアクションを実施するように構成することができる。
【０００６】
上記および他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を単独でまたは組み合わせて含むことができる。いくつかの実装形態では、トレーニングオーディオサンプルの周波数領域特徴は、1つまたは複数の周波数帯を備える周波数スペクトル中に存在する。
【０００７】
いくつかのケースでは、トレーニングデータでニューラルネットワークをトレーニングすることは、畳み込み層について、トレーニングオーディオサンプルの周波数領域特徴を受信することと、1つまたは複数の畳み込み層フィルタの各々のサイズを判断することと、1つまたは複数の畳み込み層フィルタの判断されたサイズに一致するように、1つまたは複数の周波数帯をアップスケールすることと、畳み込み層出力を生成するために、畳み込み層を使用して1つまたは複数のアップスケールされた周波数帯を処理することと、畳み込み層の上のニューラルネットワーク層から周波数領域特徴についての逆伝播された勾配を受信することと、1つまたは複数の畳み込み層フィルタに関して、ニューラルネットワーク用の誤差関数の勾配を計算することであって、誤差関数は、1つまたは複数の畳み込み層フィルタおよび受信された逆伝播された勾配に依存する、計算することと、計算された勾配を使用して1つまたは複数の畳み込み層フィルタを更新することとを含む。
【０００８】
いくつかの実装形態では、1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断することは、周波数スペクトルの最も高いセクションに対応する周波数帯を選択することと、選択された周波数帯に基づいて、1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断することとを含む。
【０００９】
いくつかのケースでは、1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断することは、1つまたは複数の畳み込み層フィルタの各々の所定のそれぞれのサイズを判断することを含む。
【００１０】
いくつかの実装形態では、1つまたは複数の畳み込み層フィルタの判断されたサイズに一致するように、1つまたは複数の周波数帯をアップスケールすることは、補間方法を使用して、1つまたは複数の周波数帯をアップスケールすることを含む。
【００１１】
いくつかの実装形態では、トレーニングオーディオサンプルの周波数領域特徴は、線形周波数領域特徴を備える。
【００１２】
本明細書に記載する主題の別の発明的態様は、ニューラルネットワークの複数の層の各々を通してデータ入力を処理するための方法で具現化することができ、ニューラルネットワークは、オーディオサンプルの周波数領域特徴を受信し、オーディオサンプルについてのニューラルネットワーク出力を生成するために周波数領域特徴を処理するように構成され、ニューラルネットワークは、(i)周波数領域特徴を対数スケーリングされた周波数領域特徴にマップするように構成される畳み込み層であって、1つまたは複数の畳み込み層フィルタを備える、畳み込み層と、(ii)ニューラルネットワーク出力を生成するために対数スケーリングされた周波数領域特徴を処理するように構成される、それぞれの層パラメータを有する1つまたは複数の他のニューラルネットワーク層とを備え、本方法は、オーディオサンプルの周波数領域特徴を備えるデータ入力を取得するアクションと、畳み込み層出力を生成するために、畳み込み層を使用して周波数領域特徴を処理するアクションであって、畳み込み層出力は、対数スケールの周波数領域特徴を備える、アクションと、ニューラルネットワーク出力を生成するために、1つまたは複数の他のニューラルネットワーク層を使用して生成された畳み込み層出力を処理するアクションとを含む。
【００１３】
本態様の他の実施形態は、方法のアクションを実施するように各々が構成される、対応するコンピュータシステムと、装置と、1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムとを含む。1つまたは複数のコンピュータからなるシステムは、動作中、システムに、アクションを実施させる場合があるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せのおかげで特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実施させる命令を含むおかげで特定の動作またはアクションを実施するように構成することができる。
【００１４】
上記および他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を単独でまたは組み合わせて含むことができる。いくつかの実装形態では、畳み込み層出力を生成するために、畳み込み層を使用して周波数領域特徴を処理することであって、畳み込み層出力は、対数スケールの周波数領域特徴を備える、生成することは、畳み込み層において、周波数領域特徴を受信することであって、周波数領域特徴は、1つまたは複数の周波数帯を備える周波数スペクトル中に存在する、受信することと、各周波数帯について、周波数帯に基づいて、それぞれの畳み込みフィルタのサイズをダウンスケールすることと、畳み込み層出力を生成するために、ダウンスケールされた1つまたは複数の畳み込みフィルタを使用して1つまたは複数の周波数帯を処理することとを含む。
【００１５】
本明細書に記載する主題の別の発明的態様は、1つまたは複数のコンピュータによって実装されるニューラルネットワークシステムで具現化することができ、ニューラルネットワークシステムは、複数のニューラルネットワーク層を備え、ニューラルネットワークシステムは、オーディオサンプルのスペクトログラムを取得し、かつオーディオサンプルについてのニューラルネットワーク出力を生成するために、スペクトログラムを処理するように構成され、複数のニューラルネットワーク層は、マルチスケール周波数領域特徴への周波数領域特徴の畳み込みマッピングを実施するように構成される複数の畳み込みニューラルネットワークステージのシーケンスを備える第1のサブネットワークであって、畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワークステージは、それぞれの畳み込み層パラメータを各々が有する1つまたは複数の畳み込みニューラルネットワーク層であって、(i)畳み込みニューラルネットワークステージのシーケンス中の第1の畳み込みニューラルネットワークステージは、オーディオサンプルのスペクトログラムを取得し、かつ第1の畳み込み出力を生成するように構成され、(ii)畳み込みニューラルネットワークステージのシーケンス中の各後続の畳み込みニューラルネットワークステージは、畳み込みニューラルネットワークステージのシーケンス中の先行する畳み込みニューラルネットワークステージによって生成された畳み込み出力を受信し、かつそれぞれの畳み込みニューラルネットワーク出力を生成するように構成される、1つまたは複数の畳み込みニューラルネットワーク層を備える、第1のサブネットワークと、少なくとも(i)隠れニューラルネットワーク層および(ii)それぞれの層パラメータを各々が有する出力層を備える第2のサブネットワークであって、(i)隠れニューラルネットワーク層は、畳み込みニューラルネットワーク層のシーケンス中の畳み込みニューラルネットワーク層によって生成された畳み込みニューラルネットワーク出力のうちの1つまたは複数を受信し、かつ隠れニューラルネットワーク層出力を生成するように構成され、(ii)出力層は、隠れニューラルネットワーク出力を受信し、かつオーディオサンプルについてのニューラルネットワーク出力を生成するように構成される、第2のサブネットワークとを備える。
【００１６】
本態様の他の実施形態は、方法のアクションを実施するように各々が構成される、対応するコンピュータシステムと、装置と、1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムとを含む。1つまたは複数のコンピュータからなるシステムは、動作中、システムに、アクションを実施させる場合があるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せのおかげで特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実施させる命令を含むおかげで特定の動作またはアクションを実施するように構成することができる。
【００１７】
上記および他の実施形態は各々、オプションで、以下の特徴のうちの1つまたは複数を単独でまたは組み合わせて含むことができる。いくつかの実装形態では、第1の畳み込みニューラルネットワークステージは、オーディオサンプルのスペクトログラムを受信することであって、スペクトログラムは、周波数帯に対応する複数の行および時間帯域に対応する複数の列を備える、受信することと、高さH×長さLの時間帯域を、サイズH×1の1つまたは複数のベクトルに圧縮することと、サイズH×1の1つまたは複数のベクトルを、畳み込みニューラルネットワークステージのシーケンス中の後続の畳み込みニューラルネットワークステージに処理のために提供することとを行うように構成される。
【００１８】
いくつかのケースでは、各後続の畳み込みニューラルネットワークステージは、先行する畳み込みニューラルネットワークステージから1つまたは複数のベクトル入力を受信し、それぞれの畳み込みニューラルネットワークステージ出力を生成するために、受信された1つまたは複数のベクトル入力のサイズを2分の1に削減し、それぞれの畳み込みニューラルネットワークステージ出力を処理のために後続のニューラルネットワーク層に提供するように構成される。
【００１９】
いくつかの実装形態では、後続の畳み込みニューラルネットワークステージの中に含まれる畳み込み層パラメータは、高さ3および行ストライド2の畳み込み層フィルタを備える。
【００２０】
いくつかのケースでは、各後続の畳み込みニューラルネットワークステージは、少なくとも(i)行ストライド2を有する最大プーリング層がその後に続く、1の行ストライドを有する1×1×2畳み込み層、(ii)3×1×D畳み込み層、および(iii)行ストライド2を有する最大プーリング層がその後に続く、行ストライド1を有する3×1×Dの、深さ方向に分離可能な畳み込みを備え、Dは畳み込み層フィルタの深さを表す。
【００２１】
いくつかの実装形態では、各下位後続の畳み込みニューラルネットワークステージは、正規化線形ユニット(rectified linear unit)を備える。
【００２２】
いくつかのケースでは、隠れニューラルネットワーク層は、各生成された畳み込みステージ出力の行連結を受信するように構成される。
【００２３】
いくつかのケースでは、隠れニューラルネットワーク層は、畳み込みニューラルネットワークステージのシーケンス中の最終畳み込みに対応する出力を受信するように構成される。
【００２４】
いくつかのケースでは、畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワーク層の深さは、畳み込みニューラルネットワークステージのシーケンスを通して増加する。
【００２５】
いくつかの実装形態では、畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワーク層の深さは、1よりも大きい。
【００２６】
いくつかのケースでは、ニューラルネットワークシステムは、マルチスケール周波数領域特徴への周波数領域特徴の最適畳み込みマッピングを判断するために、他のニューラルネットワーク層の層パラメータの値を調整し、1つまたは複数のそれぞれの畳み込み層パラメータを調整するようにトレーニングデータでトレーニングされ、トレーニングすることは、複数のトレーニングオーディオサンプルの各々について、トレーニングオーディオサンプルのスペクトログラムおよびトレーニングオーディオサンプルについての既知の出力を備えるトレーニングデータを取得することと、マルチスケール周波数領域特徴への周波数領域特徴の最適畳み込みマッピングを判断するために、第2のサブネットワークの層のパラメータの値を調整し、1つまたは複数の畳み込み層パラメータを調整するようにトレーニングデータでニューラルネットワークをトレーニングすることとを含み、トレーニングすることは、第1のサブネットワーク中の各畳み込み層について、それぞれの畳み込み層入力を受信することと、畳み込み層出力を生成するために、畳み込み層を通して受信された畳み込み層入力を処理することと、畳み込み層の上のニューラルネットワーク層からスペクトログラムについての逆伝播された勾配を受信することと、ニューラルネットワーク用の誤差関数の勾配を計算することであって、誤差関数は、それぞれの畳み込み層パラメータおよび受信された逆伝播された勾配に依存する、計算することと、計算された勾配を使用し、それぞれの畳み込み層パラメータを更新することとを含む。
【００２７】
本明細書に記載する主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態で実装される場合がある。
【００２８】
音声認識、内容識別、音楽認識、緊急サイレン検出および他の分類問題などのオーディオ処理タスクは通常、入力としての周波数領域特徴と連携する。たとえば、人間の聴力は対数尺度で表される場合があり、その結果いくつかのオーディオ処理システムは、受信された周波数領域特徴、たとえば線形尺度周波数領域特徴を、たとえばメル周波数尺度で、および/またはメル周波数ケプストラム係数を使用して、対数または近対数尺度周波数領域特徴にマップすることによって聴力をエミュレートしようと試みる。マップされた周波数領域特徴は次いで、所与の分類または認識タスクのために分類器をトレーニングするために、オーディオ分類システム、たとえばニューラルネットワークに入力として提供されてもよい。
【００２９】
ただし、マッピングプロセス中に重要な情報が失われる場合があり、ハードコード化固定尺度マッピングが、所与のタスク向けに周波数領域特徴の最適マッピングを提供しない場合がある。したがって、マップされた周波数領域特徴を受信するオーディオ分類システムの正確さおよび性能が低下される場合がある。
【００３０】
本明細書に記載する対数尺度畳み込みニューラルネットワークシステムは、所与の分類タスク向けに、完全周波数スペクトルに渡って一様に適用される場合がある、周波数領域特徴、たとえば線形周波数領域特徴について対数尺度畳み込みを学習する。特に、本明細書に記載する対数尺度畳み込みニューラルネットワークシステムは、異なる分類タスクおよび異なる入力信号特性について異なる対数尺度畳み込みを学習する。本明細書に記載する対数尺度畳み込みを実装するニューラルネットワークシステムはしたがって、ニューラルネットワークシステムを使用して周波数特徴を処理するのに先立って固定尺度周波数マッピングを適用するシステムと比較して、未加工入力サンプルを分類するとき、より高いレベルの正確さ、たとえばより高い品質特徴抽出を達成する場合がある。
【００３１】
本明細書に記載するカスケード畳み込みニューラルネットワークシステムは、周波数領域特徴、たとえば線形周波数領域特徴について可変サイズの畳み込みを学習する。特に、本明細書に記載するカスケード畳み込みニューラルネットワークシステムは、可変サイズの畳み込みウィンドウを生じ、すべての解像度が、畳み込みカスケードからの連結出力中で生じる場合がある。畳み込みカスケードに続く層は、周波数スペクトルの異なる部分にとって最も有用な尺度を選択することができる。したがって、本明細書に記載するカスケード畳み込みニューラルネットワークシステムは、システムが、所与のタスク向けの特定の解像度について厳しい選択が行われることを必要としないので、他のニューラルネットワークシステムに勝る向上した正確さおよびより信頼できる特徴抽出を達成する場合がある。
【００３２】
さらに、本明細書に記載するカスケード畳み込みニューラルネットワークシステムは、ニューラルネットワークシステムの特定のアーキテクチャにより、他のニューラルネットワークシステムと比較して削減された量の計算リソースを必要としながら、より高いレベルの計算効率を達成することが可能な場合がある。たとえば、本明細書に記載するカスケード畳み込みニューラルネットワークシステムは、リソース制約型デバイス上に、たとえばモバイルデバイス上に実装されてもよい。
【００３３】
さらに、本明細書に記載するカスケード畳み込みニューラルネットワークシステムは、メモリ中で、およびディスク上で、低フットプリントを必要とする場合がある。
【００３４】
本明細書の主題の1つまたは複数の実施態様の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００３５】
【図１】対数尺度畳み込みニューラルネットワークシステムの例を示す図である。
【図２】カスケード畳み込みニューラルネットワークシステムの例を示す図である。
【図３】入力から対数尺度畳み込みニューラルネットワークシステム出力を生成するための例示的プロセスの流れ図である。
【図４】入力からカスケード畳み込みニューラルネットワークシステム出力を生成するための例示的プロセスの流れ図である。
【図５】畳み込みニューラルネットワーク層および1つまたは複数の他のニューラルネットワーク層をトレーニングするための例示的プロセスの流れ図である。
【図６】トレーニングオーディオサンプルについて、対数尺度畳み込みニューラルネットワークシステムの畳み込み層をトレーニングするための例示的プロセスの流れ図である。
【図７】カスケード畳み込みニューラルネットワークシステムをトレーニングするための例示的プロセスの流れ図である。
【発明を実施するための形態】
【００３６】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【００３７】
本明細書は、線形スペクトログラムに対する可変サイズ畳み込みを学習するための方法を記載する。いくつかの態様では、全周波数スペクトルに渡って一様に適用される単一の対数畳み込みマッピングを学習するようにモデルがトレーニングされる。他の態様では、モデルが、畳み込みのカスケードを使用して、対数数列中で異なる解像度に渡ってアグリゲートされた特徴を作成する。異なる尺度の畳み込みは単一の特徴の中に連結され、時間を超えて畳み込まれ、1つまたは複数のニューラルネットワーク層に、たとえば分類または回帰目的で提供される。
【００３８】
図1は、対数尺度畳み込みニューラルネットワークシステム100の例を示す。対数尺度畳み込みニューラルネットワークシステム100は、以下で説明するシステム、構成要素、および技法が実装されることが可能である1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【００３９】
対数尺度畳み込みニューラルネットワークシステム100は、システム入力を受信し、システム入力からシステム出力を生成する機械学習システムである。ニューラルネットワークシステム100は、オーディオサンプル102の周波数領域特徴を受信し、入力に基づいてそれぞれの出力112を生成するように構成することができる。
【００４０】
いくつかの実装形態では、それぞれの出力は、それぞれのスコアまたはオーディオサンプル分類を含んでもよい。たとえば、ニューラルネットワークシステム100への入力が、発話を表すオーディオサンプルの周波数領域特徴のうちの1つまたは複数を含む場合、ニューラルネットワークシステム100によって生成される出力は、テキストの断片のセットの各々についてのスコアであってもよく、各スコアは、テキストの断片が発話または発話のシーケンスについての正確な写しである推定尤度を表す。いくつかの例では、ニューラルネットワークシステム100は内容識別システムの一部である場合があり、ニューラルネットワークシステム100によって生成される出力は、内容のセット断片の各々または内容の各セット断片中の各セグメントについてのスコアであってもよい。別の例として、ニューラルネットワークシステム100は、緊急サイレン検出システムの一部である場合があり、ニューラルネットワークシステム100によって生成される出力は、入力をサイレンとして、またはサイレンでないと分類するスコアであってもよい。
【００４１】
他の実装形態では、それぞれの出力は、単一の値または複数の値を予測するのに使用されてもよい(たとえば、回帰)。たとえば、ニューラルネットワークシステム出力112は、システムへのオーディオサンプル入力の中のあるタイプのノイズ、たとえば音声のレベルを推定する場合がある。別の例として、ニューラルネットワークシステム出力112は、オーディオサンプルによって表される歌がレコーディングされた年の予測を含む場合がある。さらなる例として、ニューラルネットワークシステムは、たとえばエコーキャンセルなどのオーディオを生成するのに使用されてもよい。たとえば、オーディオサンプル入力102は、2つの下位入力、たとえば混合信号およびバックグラウンド信号を含んでもよく、それぞれのニューラルネットワークシステム出力112は、混合信号からバックグラウンド信号を差し引くことによって生成されるオーディオサンプルを含んでもよい。
【００４２】
オーディオサンプル102の周波数領域特徴は、オーディオサンプルの線形尺度周波数領域特徴を含んでもよい。周波数領域特徴は、1つまたは複数の周波数帯を含む周波数スペクトル、たとえば下限周波数および上限周波数によって画定される周波数領域中の間隔の中に存在する。
【００４３】
対数尺度畳み込みニューラルネットワークシステム100は、複数のニューラルネットワーク層、たとえば畳み込み層104およびニューラルネットワーク層108を含む。対数尺度畳み込みニューラルネットワークシステム100におけるニューラルネットワーク層の各々は、それぞれの層入力を受信し、層入力を処理して、入力からそれぞれの層出力を生成するように構成される。ニューラルネットワーク層は、ニューラルネットワークシステム100によって受信されたニューラルネットワーク入力を集合的に処理して、各受信されたニューラルネットワーク入力についてのそれぞれのニューラルネットワーク出力を生成する。入力から対数尺度畳み込みニューラルネットワークシステム出力を生成することについては、図3を参照して以下でより詳しく説明する。
【００４４】
ニューラルネットワークシステム100の層の一部または全部は、パラメータのそれぞれのセットに関連付けられる。ニューラルネットワーク層は、ニューラルネットワーク層向けのパラメータの現在の値に従って、入力から出力を生成する。たとえば、いくつかの層は、受信された入力から出力を生成することの一部として、受信された入力を現在のパラメータ値のそれぞれのパラメータ行列で乗算してもよい。
【００４５】
対数尺度畳み込みニューラルネットワークシステム100におけるニューラルネットワーク層のうちの少なくとも1つは、畳み込み層、たとえば畳み込み層104である。便宜上、ただ1つの畳み込み層が図1に示されるが、ニューラルネットワークシステム100は、複数の畳み込みニューラルネットワーク層を含んでもよい。
【００４６】
畳み込みニューラルネットワーク層とは、そのニューロン、またはノードが、幅、高さおよび深さという3次元の配列で論理的に並べられているニューラルネットワーク層である。畳み込みニューラルネットワーク層内部のニューロンが、受容野と呼ばれる畳み込みニューラルネットワーク層に先行する層の小区域に結合され、畳み込みニューラルネットワーク層内部の各ニューロンは、移動不変性のプロパティを構成する同じ特徴を検出する。通常、隣接層のニューロンの間の局所的結合性パターンが強制される。例示的畳み込みニューラルネットワーク層については、"Convolutional Neural Networks for Speech Recognition" Ossama Abdel-Hamid、Abdel-rahman Mohamed、Hui Jiang、Li Deng、Gerald Penn、およびDong Yu、IEEE/ACM TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING、VOL. 22、NO. 10、2014年10月に、より詳しく記載されている。
【００４７】
畳み込みニューラルネットワーク層向けの層パラメータの関連セットは、学習可能畳み込み層フィルタのそれぞれのセットを含む。畳み込み層フィルタのセットの中の各畳み込み層フィルタは、小さい受容野を有し、それぞれの畳み込みニューラルネットワーク層の最深部まで伸長する。たとえば、フィルタは、<filter_height>×<filter_width>×<depth>という記法を使用して記述される場合がある。畳み込みニューラルネットワーク層のハイパーパラメータ、たとえば深さ、ストライドおよびパディングが、畳み込みニューラルネットワーク層の出力のサイズを制御し、かつ可変である。畳み込み層フィルタのセットのサイズ、たとえば<filter_height>×<filter_width>は、固定ベースサイズを含んでもよいが、ニューラルネットワークシステムによって実施されるべきタスクに従って変えられる場合もある。
【００４８】
畳み込み層104は、受信された周波数領域特徴入力、たとえば線形尺度周波数領域特徴入力を対数スケーリングされた周波数領域出力にマップするように構成される畳み込みニューラルネットワーク層である。畳み込み層104は、層104用の畳み込み層フィルタのそれぞれのセットのサイズを調整することによって、受信された周波数領域特徴入力を対数スケーリングされた周波数領域出力にマップする。周波数領域特徴入力を、対数スケーリングされた周波数領域入力にマップするように、畳み込み層フィルタのそれぞれのセットのサイズを調整することについては、図3を参照して以下でより詳しく説明する。
【００４９】
ニューラルネットワーク層108は、1つまたは複数の他のニューラルネットワーク層、たとえばニューラルネットワーク層110を含む。便宜上、ただ1つのニューラルネットワーク層110が図1に示されるが、ニューラルネットワークシステム100は、複数のニューラルネットワーク層を含んでもよい。ニューラルネットワークシステム100の中に含まれるニューラルネットワーク層108の数は、ニューラルネットワークシステム100が実施するように構成されるタスクに依存する。さらに、ニューラルネットワークシステム100の中に含まれるニューラルネットワーク層108のタイプは、ニューラルネットワークシステムが実施するように構成されるタスクに依存する。たとえば、いくつかの実装形態では、1つまたは複数の他のニューラルネットワーク層は、1つまたは複数の全結合ニューラルネットワーク層を含んでもよい。他の実装形態では、1つまたは複数のニューラルネットワークは、リカレントニューラルネットワーク層、たとえば長期記憶短期記憶(LSTM)層を含んでもよい。これらの実装形態では、ニューラルネットワークシステム100は、時間ステップのセットに対応するオーディオサンプルの入力周波数領域特徴のシーケンスを入力として受信する場合がある。畳み込み層104は、入力周波数領域特徴の受信されたシーケンス中の各入力を処理して、マップされた対数周波数領域特徴のそれぞれのシーケンスを出力として生成してもよく、それぞれのシーケンスは、ニューラルネットワーク層108に提供されてもよい。
【００５０】
対数尺度畳み込みニューラルネットワークシステム100は、ニューラルネットワーク層のパラメータのトレーニングされた値を判断するため、すなわちパラメータの値を初期値からトレーニングされた値に調整するために、複数のトレーニングオーディオサンプルについてトレーニングされることが可能である。たとえば、トレーニング中、対数尺度畳み込みニューラルネットワークシステム100は、複数のトレーニングオーディオサンプルの各々の特徴を処理し、各トレーニングオーディオサンプルについて、それぞれのニューラルネットワーク出力を生成することができる。ニューラルネットワーク出力は次いで、対数尺度畳み込みニューラルネットワークシステム100のパラメータの値を調整するのに、たとえば1つまたは複数の畳み込み層フィルタを調整するのに使用することができる。いくつかの実装形態では、対数尺度畳み込みニューラルネットワークシステム100は、勾配降下および逆伝播ニューラルネットワークトレーニング技法を使用してパラメータの値を調整する。対数尺度畳み込みニューラルネットワークシステム100をトレーニングすることについては、図5および図6を参照して以下でより詳しく説明する。
【００５１】
対数尺度畳み込みニューラルネットワークシステム100がトレーニングされると、ニューラルネットワークシステムは、新たなニューラルネットワーク入力を処理のために受信し、ニューラルネットワーク層を通してニューラルネットワーク入力を処理して、対数尺度畳み込みニューラルネットワークシステム100のパラメータのトレーニングされた値に従って、入力に対する新たなニューラルネットワーク出力を生成してもよい。
【００５２】
図2は、カスケード畳み込みニューラルネットワークシステム200の例を示す。カスケード畳み込みニューラルネットワークシステム200は、以下で説明するシステム、構成要素、および技法が実装されることが可能である、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【００５３】
カスケード畳み込みニューラルネットワークシステム200は、システム入力を受信し、システム入力からシステム出力を生成する機械学習システムである。ニューラルネットワークシステム200は、オーディオサンプル202の周波数領域特徴を受信し、入力に基づいてそれぞれの出力214を生成するように構成することができる。
【００５４】
いくつかの実装形態では、それぞれの出力は、それぞれのスコアまたはオーディオサンプル分類を含んでもよい。たとえば、ニューラルネットワークシステム200への入力が、発話を表すオーディオサンプルの1つまたは複数の周波数領域特徴を含む場合、ニューラルネットワークシステム200によって生成される出力は、テキストの断片のセットの各々についてのスコアであってもよく、各スコアは、テキストの断片が発話または発話のシーケンスについての正確な写しである推定尤度を表す。いくつかの例では、ニューラルネットワークシステム200は内容識別システムの一部である場合があり、ニューラルネットワークシステム200によって生成される出力は、内容のセット断片の各々または内容の各セット断片中の各セグメントについてのスコアであってもよい。別の例として、ニューラルネットワークシステム200は、緊急サイレン検出システムの一部である場合があり、ニューラルネットワークシステム200によって生成される出力は、入力をサイレンとして、またはサイレンでないと分類するスコアであってもよい。
【００５５】
他の実装形態では、それぞれの出力は、単一の値または複数の値を予測するのに使用されてもよい(たとえば、回帰)。たとえば、ニューラルネットワークシステム出力214は、システムへのオーディオサンプル入力の中のあるタイプのノイズ、たとえば音声のレベルを推定する場合がある。別の例として、ニューラルネットワークシステム出力214は、オーディオサンプルによって表される歌がレコーディングされた年の予測を含む場合がある。さらなる例として、ニューラルネットワークシステムは、たとえばエコーキャンセルなどのオーディオを生成するのに使用されてもよい。たとえば、オーディオサンプル入力202は、2つの下位入力、たとえば混合信号およびバックグラウンド信号を含んでもよく、それぞれのニューラルネットワークシステム出力214は、混合信号からバックグラウンド信号を差し引くことによって生成されるオーディオサンプルを含んでもよい。
【００５６】
オーディオサンプル202の周波数領域特徴は、オーディオサンプルの線形尺度周波数領域特徴を含んでもよい。周波数領域特徴は、スペクトログラム、たとえば時間を表す水平軸、周波数を表す垂直軸を有する2次元配列、ならびにたとえば色の強度によって表される特定の周波数および時間における振幅を示す第3の次元によって表されてもよい。スペクトログラムは、DFT、FFTまたは他の周波数変換を使用して生成されてもよい。フーリエ変換を使用してスペクトログラムが生成されるケースでは、実数のスペクトログラムを生じるために、複素数のマグニチュードまたはログマグニチュードがとられてもよい。
【００５７】
カスケード畳み込みニューラルネットワークシステム200は、複数のニューラルネットワーク層、たとえば畳み込みステージA〜N(以下で説明する)の各々に含まれる1つまたは複数の畳み込み層、隠れニューラルネットワーク層210および出力層212を含む。カスケード畳み込みニューラルネットワークシステム200におけるニューラルネットワーク層の各々は、それぞれの層入力を受信し、層入力を処理して、入力からそれぞれの層出力を生成するように構成される。ニューラルネットワーク層は、ニューラルネットワークシステム200によって受信されたニューラルネットワーク入力を集合的に処理して、各受信されたニューラルネットワーク入力についてのそれぞれのニューラルネットワーク出力を生成する。入力からカスケード畳み込みニューラルネットワークシステム出力を生成することについては、図4を参照して以下でより詳しく説明する。
【００５８】
ニューラルネットワークシステム200の層の一部または全部は、パラメータのそれぞれのセットに関連付けられる。ニューラルネットワーク層は、ニューラルネットワーク層向けのパラメータの現在の値に従って入力から出力を生成する。たとえば、いくつかの層は、受信された入力から出力を生成することの一部として、受信された入力を現在のパラメータ値のそれぞれのパラメータ行列で乗算してもよい。
【００５９】
カスケード畳み込みニューラルネットワークシステム200は、1つまたは複数の畳み込みニューラルネットワークステージのシーケンス、たとえば畳み込みステージA〜Nを含む第1のサブネットワーク204を含む。畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワークステージは、畳み込み層、およびオプションで、1つまたは複数の他のニューラルネットワーク層を含む。畳み込みニューラルネットワーク層については、図1に関して上で詳しく記載されている。便宜上、5つの畳み込みステージが図2に示されるが、ニューラルネットワークシステム200は、より多いまたはより少ない畳み込みステージを含んでもよい。
【００６０】
畳み込みニューラルネットワークステージのシーケンス中の第1の畳み込みニューラルネットワークステージ、たとえば畳み込みニューラルネットワークステージAは、オーディオサンプル202の周波数領域特徴を受信し、後続の畳み込みニューラルネットワークステージ、たとえば畳み込みニューラルネットワークステージBに提供される場合があるそれぞれの第1の畳み込みステージ出力を生成するように構成される。
【００６１】
いくつかの実装形態では、第1の畳み込みニューラルネットワークステージは、狭周波数帯に渡って、受信された周波数領域特徴202の周波数および時間プロパティ、たとえば対応するスペクトログラムのうちの3行と、長さLおよびステップHのスペクトログラム列の指定された時間帯域とを取り込む。第1の畳み込みニューラルネットワークステージAは、サイズH×Lの時間帯域を、サイズH×1のベクトルに、またはいくつかの実装形態では、サイズH×1のD0+1個のベクトルに圧縮してもよく、D0は畳み込みニューラルネットワークステージAに含まれる最下部畳み込みニューラルネットワーク層の深さを表す。いくつかの実装形態では、畳み込みニューラルネットワークステージA〜Nのシーケンス中の各畳み込みニューラルネットワークステージの深さはシーケンスを通して増加する。いくつかのケースでは、畳み込みニューラルネットワークステージのシーケンス中の各畳み込みニューラルネットワークステージの深さは1よりも大きい。
【００６２】
いくつかの実装形態では、第1の畳み込みニューラルネットワークステージAは、カスケードを計算するのに先立って、時間、周波数または時間と周波数の両方のいずれかでスペクトログラムのフィルタリングを実施するのに使用されてもよい。第1の畳み込みニューラルネットワークステージAは、1というステップを含んでもよい。いくつかのケースでは、第1の畳み込みニューラルネットワークステージAは、スペクトログラムに平滑化が適用されるようにする。
【００６３】
畳み込みニューラルネットワークステージA〜Nのシーケンス中の後続の畳み込みニューラルネットワークステージB〜Nは、畳み込みニューラルネットワークステージのシーケンス中の先行する畳み込みニューラルネットワークステージによって生成されたそれぞれの畳み込み出力を受信し、後続の畳み込みニューラルネットワークステージに、第2のサブネットワーク208に、または両方に提供されてもよいそれぞれの畳み込みニューラルネットワーク出力を生成するように構成され、たとえば畳み込みステージCが、畳み込みステージBによって生成されたそれぞれの畳み込み出力を入力として受信し、畳み込みステージDに提供されるそれぞれの畳み込みニューラルネットワーク出力を生成する。生成されたそれぞれの畳み込み出力はまた、図2において破線矢印で示すように、第2のサブネットワーク208に、たとえば隠れニューラルネットワーク層210に提供されてもよい。
【００６４】
いくつかの実装形態では、各後続の畳み込みニューラルネットワークステージが、先行する畳み込みニューラルネットワークステージによって生成された、受信されたそれぞれの畳み込み出力の高さを2分の1に削減する。たとえば、畳み込みのシーケンスは、フィルタの近隣アプリケーションの間である程度のスミアリングを達成するためにフィルタがオーバーラップするように、高さ3および行ストライド2の畳み込みフィルタを使用してもよい。
【００６５】
いくつかの実装形態では、後続の畳み込みニューラルネットワークステージB〜Nの各々は、少なくとも(i)行ストライド2を有する最大プーリング層が後に続く、1という行ストライドを有する1×1×2畳み込み層、(ii)3×1×D畳み込み層、および(iii)行ストライド2を有する最大プーリング層が後に続く、行ストライド1を有する3×1×Dの、深さ方向に分離可能な畳み込みからなってもよく、Dは、畳み込み層フィルタの深さを表す。いくつかのケースでは、後続の畳み込みニューラルネットワークステージB〜Nの各々は正規化線形ユニットを含む。
【００６６】
カスケード畳み込みニューラルネットワークシステム200は、少なくとも1つの隠れニューラルネットワーク層、たとえば隠れニューラルネットワーク層210と、出力層212とを含む第2のサブネットワーク208を含む。便宜上、図2の第2のサブネットワーク208には2つの層が示されるが、ニューラルネットワークシステム200は、より多い、またはより少ない層を有する第2のサブネットワークを含んでもよい。
【００６７】
隠れニューラルネットワーク層210は、第1のサブネットワーク204から、生成された畳み込みステージ出力を受信するように構成される。いくつかの実装形態では、隠れニューラルネットワーク層210は、図2において破線矢印で示すように、各生成された畳み込みステージ出力の行連結を受信するように構成されてもよい。他の実装形態では、隠れニューラルネットワーク層210は、畳み込みステージNから第2のサブネットワーク208へつながる実線矢印で示すように、畳み込みニューラルネットワークステージのシーケンス中の最終畳み込みに対応する出力を受信するように構成されてもよい。いくつかの実装形態では、畳み込み層の出力は、隠れニューラルネットワーク層210によって連結されかつ処理されてもよく、隠れニューラルネットワーク層210が、周波数範囲の異なる尺度についての重み付けを学習できるようになる。
【００６８】
隠れニューラルネットワーク層210は、受信された畳み込みステージ出力を処理して、第2のサブネットワーク出力層212に提供される隠れニューラルネットワーク出力を生成するように構成されてもよい。いくつかの実装形態では、隠れニューラルネットワーク層210は、第1のサブネットワーク204からの受信された畳み込みニューラルネットワーク出力の重み付けを定義する1つまたは複数の層パラメータを含む。出力層212は、隠れニューラルネットワーク出力を処理して、ニューラルネットワーク出力214を生成する。
【００６９】
カスケード畳み込みニューラルネットワークシステム200は、ニューラルネットワーク層のパラメータのトレーニングされた値を判断するため、すなわちパラメータの値を初期値からトレーニングされた値に調整するために、複数のトレーニングオーディオサンプルについてトレーニングされることが可能である。たとえば、トレーニング中、カスケード畳み込みニューラルネットワークシステム200は、複数のトレーニングオーディオサンプルの各々の特徴を処理し、各トレーニングオーディオサンプルについて、それぞれのニューラルネットワーク出力を生成することができる。ニューラルネットワーク出力は次いで、カスケード畳み込みニューラルネットワークシステム200のパラメータの値を調整するのに使用することができる。いくつかの実装形態では、カスケード畳み込みニューラルネットワークシステム200は、勾配降下および逆伝播ニューラルネットワークトレーニング技法を使用してパラメータの値を調整する。カスケード畳み込みニューラルネットワークシステム200をトレーニングすることについては、図7を参照して以下でより詳しく説明する。
【００７０】
カスケード畳み込みニューラルネットワークシステム200がトレーニングされると、ニューラルネットワークシステムは、新たなニューラルネットワーク入力を処理のために受信し、ニューラルネットワーク層を通してニューラルネットワーク入力を処理して、カスケード畳み込みニューラルネットワークシステム200のパラメータのトレーニングされた値に従って、入力に対する新たなニューラルネットワーク出力を生成してもよい。
【００７１】
図3は、入力から対数尺度畳み込みニューラルネットワークシステム出力を生成するための例示的プロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、周波数領域特徴を対数尺度周波数領域特徴にマップするように構成されるニューラルネットワークシステム、たとえば本明細書に従って適切にプログラムされた、以下の図5および図6に従ってトレーニングされた図1の畳み込み層104を有する対数尺度畳み込みニューラルネットワークシステム100が、プロセス300を実施することができる。
【００７２】
システムは、オーディオサンプルの周波数領域特徴を含むデータ入力を取得する(ステップ302)。周波数領域特徴は、1つまたは複数の周波数帯を含む周波数スペクトル中に存在する。たとえば、周波数領域特徴は、オーディオサンプルの時間領域特徴に離散フーリエ変換を適用した結果であってもよい。他の例では、周波数領域特徴は、オーディオサンプルの時間領域特徴に高速フーリエ変換、フィルタバンクまたはメル周波数ケプストラムを適用した結果であってもよい。いくつかの実装形態では、オーディオサンプルの周波数領域特徴は、たとえば高速フーリエ変換がオーディオサンプルの時間領域特徴を周波数領域特徴に変換するのに使用されたケースでは、線形尺度周波数領域特徴を含んでもよい。
【００７３】
システムは、畳み込み層、たとえば畳み込み層104を使用して周波数領域特徴を処理して、畳み込み層出力を生成する(ステップ304)。生成された畳み込み層出力は、対数スケーリングされた周波数領域特徴を含む。いくつかの実装形態では、システムは、畳み込み層における周波数領域特徴を受信すること、および周波数領域特徴が存在する周波数スペクトル中に含まれる各周波数帯については、畳み込み層に含まれるそれぞれの畳み込みフィルタのサイズを周波数帯に基づいてダウンスケールすることによって、畳み込み層を使用して周波数領域特徴を処理する。システムは次いで、ダウンスケールされた1つまたは複数の畳み込みフィルタを使用して1つまたは複数の周波数帯を処理して、畳み込み層出力を生成してもよい。
【００７４】
システムは、1つまたは複数の他のニューラルネットワーク層を使用して、生成された畳み込み層出力を処理して、ニューラルネットワーク出力を生成する(ステップ306)。たとえば、システムは、1つまたは複数の他のニューラルネットワーク層、たとえば図1のニューラルネットワーク層108を使用して、生成された畳み込み層出力を処理して、ニューラルネットワーク出力を生成してもよい。生成されたニューラルネットワーク出力は、ステップ302を参照して上述したオーディオサンプルの分類を含んでもよい。たとえば、オーディオサンプルが、発話、または発話のシーケンスを表す場合、生成されたニューラルネットワーク出力は、テキストの断片のセットの各々についてのスコアを含んでもよく、各スコアは、テキストの断片が発話または発話のシーケンスについての正確な写しである推定尤度を表す。いくつかのケースでは、生成されたニューラルネットワーク出力は、単一の値または複数の値を予測するのに使用されてもよい(たとえば、回帰)。
【００７５】
図4は、入力からカスケード畳み込みニューラルネットワークシステム出力を生成するための例示的プロセス400の流れ図である。便宜上、プロセス400は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、周波数領域特徴を可変尺度周波数領域特徴にマップするように構成されるニューラルネットワークシステム、たとえば本明細書に従って適切にプログラムされた図2のカスケード畳み込みニューラルネットワークシステム200が、プロセス400を実施することができる。
【００７６】
システムは、オーディオサンプルのスペクトログラムを取得する(ステップ402)。いくつかの実装形態では、スペクトログラムは、周波数帯を表す1つまたは複数の行と、時間帯域を表す1つまたは複数の列とを含む2次元配列によって表される場合がある。スペクトログラム中に含まれる周波数領域特徴は、線形尺度周波数領域特徴を含んでもよい。
【００７７】
システムは、畳み込みニューラルネットワークステージのシーケンスの第1の畳み込みニューラルネットワークステージを使用してスペクトログラムを処理して、第1の畳み込み出力を生成する(ステップ404)。ステップ402に関して上述したように、いくつかの実装形態では、スペクトログラムは、周波数帯を表す1つまたは複数の行と、時間帯域を表す1つまたは複数の列とを含む2次元配列によって表される場合がある。そのようなケースでは、第1の畳み込みニューラルネットワークステージを使用してスペクトログラムを処理することは、H×Lの時間帯域をサイズH×1の1つまたは複数のベクトルに圧縮することであって、Hは高さをおよびLは長さを表す、圧縮することと、サイズH×1の1つまたは複数のベクトルを畳み込みニューラルネットワークステージのシーケンス中の後続の畳み込みニューラルネットワークステージに処理のために提供することとを含んでもよい。
【００７８】
システムは、シーケンス中の後続の畳み込みニューラルネットワークステージを通して第1の畳み込み出力を処理して、それぞれの畳み込みニューラルネットワークステージ出力を生成する(ステップ406)。いくつかの実装形態では、各後続の畳み込みニューラルネットワークステージについて、システムは、先行する畳み込みニューラルネットワークステージから1つまたは複数のベクトル入力を受信し、受信された1つまたは複数のベクトル入力のサイズを2分の1に削減して、それぞれの畳み込みニューラルネットワークステージ出力を生成し、それぞれの畳み込みニューラルネットワークステージ出力を処理のために後続のニューラルネットワークステージに提供してもよい。たとえば、畳み込みニューラルネットワークステージのシーケンス中の第1の畳み込みニューラルネットワークステージに続く畳み込みニューラルネットワークステージについて、システムは、サイズH×1の1つまたは複数のベクトルを受信し、サイズH/2×1の1つまたは複数のベクトルを含むそれぞれの畳み込みネットワークステージ出力を生成するように1つまたは複数のベクトルのサイズを削減してもよい。生成されたそれぞれの畳み込みニューラルネットワークステージ出力は、たとえば対数数列中で異なる解像度に渡ってアグリゲートされたオーディオサンプル特徴を作成する畳み込みのカスケードを含む。
【００７９】
システムは、1つまたは複数の生成された畳み込みニューラルネットワークステージ出力を組み合わせて、第1のサブネットワーク出力を生成する(ステップ408)。いくつかの実装形態では、第1のサブネットワーク出力は、たとえば図2において、畳み込みステージB〜Dから出る点線矢印の各々と、畳み込みステージNから出る最後の実線矢印とで示される、生成された畳み込みステージ出力の各々の行連結を含む。他の実装形態では、第1のサブネットワーク出力は、畳み込みニューラルネットワークステージのシーケンス中の最終畳み込み出力に対応する単一の出力、たとえば図2の畳み込みステージNから出る実線矢印を含む。さらなる実装形態では、第1のサブネットワーク出力は、生成された畳み込みステージ出力のうちの1つまたは複数の組合せを含む。
【００８０】
システムは、第1のサブネットワーク層出力を他のニューラルネットワーク層のシーケンスを通して処理して、ニューラルネットワーク出力を生成する(ステップ410)。生成されたニューラルネットワーク出力は、ステップ402を参照して上述したオーディオサンプルを分類してもよい。たとえば、オーディオサンプルのスペクトログラムが発話を表す場合、ニューラルネットワークシステム200によって生成される出力は、テキストの断片のセットの各々についてのスコアであってもよく、各スコアは、テキストの断片が発話または発話のシーケンスについての正確な写しである推定尤度を表す。他の例では、ニューラルネットワーク出力は、単一の値または複数の値を予測するのに使用されてもよい(たとえば、回帰)。
【００８１】
図5は、畳み込みニューラルネットワーク層および1つまたは複数の他のニューラルネットワーク層をトレーニングするための例示的プロセス500の流れ図である。便宜上、プロセス500は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、対数尺度畳み込みニューラルネットワーク、たとえば本明細書に従って適切にプログラムされた、図1の対数尺度畳み込みニューラルネットワークシステム100が、プロセス500を実施することができる。
【００８２】
システムは、トレーニングオーディオサンプルのセットの各々について、トレーニングオーディオサンプルの周波数領域特徴と、トレーニングオーディオサンプルについての既知の出力とを含むトレーニングデータを取得する(ステップ502)。いくつかの実装形態では、トレーニングデータは、トレーニングオーディオサンプルの時間領域特徴と、トレーニングオーディオサンプルについての既知の分類とを含んでもよい。周波数領域特徴は、1つまたは複数の周波数帯を含む周波数スペクトル中に存在する。たとえば、周波数領域特徴は、オーディオサンプルの時間領域特徴に離散フーリエ変換を適用した結果であってもよい。他の例では、周波数領域特徴は、オーディオサンプルの時間領域特徴に、高速フーリエ変換、フィルタバンクまたはメル周波数ケプストラムを適用した結果であってもよい。いくつかの実装形態では、オーディオサンプルの周波数領域特徴は、たとえば高速フーリエ変換がオーディオサンプルの時間領域特徴を周波数領域特徴に変換するのに使用されたケースでは、線形尺度周波数領域特徴を含んでもよい。
【００８３】
システムは、トレーニングされたパラメータのセットを判断するために、他のニューラルネットワーク層のパラメータの値を調整し、1つまたは複数の畳み込み層フィルタを調整するようにトレーニングデータでニューラルネットワークをトレーニングする(ステップ504)。システムは、図3を参照して上述したように、トレーニングデータを、ニューラルネットワークへの入力として処理して、トレーニングデータニューラルネットワーク出力を生成することによって、ニューラルネットワークをトレーニングする。トレーニングされたパラメータのセットを判断するために、1つまたは複数の畳み込み層フィルタを調整するようにトレーニングオーディオサンプルに対して対数尺度畳み込みニューラルネットワークシステムの畳み込み層をトレーニングすることについては、図6を参照して以下でより詳しく説明する。
【００８４】
トレーニングされたパラメータのセットは、対数スケーリングされた周波数領域特徴への周波数領域特徴の最適対数畳み込みマッピングを定義する。
【００８５】
図6は、トレーニングオーディオサンプルに対して、対数尺度畳み込みニューラルネットワークシステムの畳み込み層をトレーニングするための例示的プロセス600の流れ図である。便宜上、プロセス600は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、対数尺度畳み込みニューラルネットワーク、たとえば本明細書に従って適切にプログラムされた、図1の対数尺度畳み込みニューラルネットワークシステム100がプロセス600を実施することができる。
【００８６】
システムは、トレーニングオーディオサンプルの周波数領域特徴を畳み込みニューラルネットワーク層への入力として受信する(ステップ602)。図5を参照して上述したように、トレーニングオーディオサンプルの周波数領域特徴は、1つまたは複数の周波数帯を含む周波数スペクトル中に存在する。
【００８７】
システムは、1つまたは複数の畳み込み層フィルタの各々のサイズを判断する(ステップ604)。いくつかの実装形態では、システムは、周波数スペクトルの最も高いセクションに対応する周波数帯を選択すること、および選択された周波数帯に基づいて、1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断することによって、1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断する。いくつかのケースでは、システムは、1つまたは複数の畳み込み層フィルタの各々の所定のそれぞれのサイズを判断することによって、1つまたは複数の畳み込み層フィルタの各々のそれぞれのサイズを判断する。
【００８８】
システムは、1つまたは複数の畳み込み層フィルタの判断されたサイズに一致するように、1つまたは複数の周波数帯をアップスケールする(ステップ606)。いくつかの実装形態では、システムは、線形、2次またはスプライン補間方法などの補間方法を使用して、1つまたは複数の畳み込み層フィルタの判断されたサイズに一致するように、1つまたは複数の周波数帯をアップスケールする。たとえば、周波数ウィンドウは、周波数領域特徴を表すスペクトログラムを避けてスライドしてもよく、ウィンドウは、ウィンドウがスペクトログラム中に置かれている所の上限、中間または下限周波数に基づいて判断される可変の高さを有する。畳み込みフィルタは、最も高い周波数帯におけるスペクトログラムの最大解像度を取り込むための十分なパラメータを有するので、すべての他の周波数において、スペクトログラムのウィンドウは、畳み込みフィルタのサイズに一致するようにアップスケールされる。たとえば、ステップ604において、周波数スペクトルの最も高いセクションに対応する周波数帯を選択したことに基づいて、システムは、1つまたは複数の畳み込みフィルタのサイズが51×1であると判断してもよい。周波数の半分において、システムは、それぞれの畳み込みフィルタが対数尺度で適用されるように、25×1パッチを51×1にアップスケールしてもよい。いくつかの実装形態では、畳み込みフィルタは、時間を超えて実施されてもよく、したがって複数の列を含んでもよい。
【００８９】
システムは、畳み込み層を使用して、アップスケールされた1つまたは複数の周波数帯を処理して、畳み込み層出力を生成する(ステップ608)。アップスケールされた周波数帯を処理することによって、システムは、最も高い解像度畳み込みを学習し、対数尺度で1つまたは複数の畳み込みフィルタを適用することが可能である。対数畳み込みマッピングは、完全周波数スペクトルに渡って一様に適用される。いくつかの実装形態では、対数畳み込みマッピングは、対数の底を他の畳み込み層ハイパーパラメータとともに調整することによって調整されてもよい。
【００９０】
システムは、周波数領域特徴についての逆伝播された勾配を畳み込み層の上のニューラルネットワーク層から受信する(ステップ610)。たとえば、逆伝播された勾配は、ニューラルネットワーク中の最上位層についての勾配を計算し、次いで逆伝播技法を使用して、計算された勾配をニューラルネットワーク層を通して逆伝播することによって生成することができる。
【００９１】
システムは、現在の畳み込み層フィルタに関して、ニューラルネットワークについての誤差関数の勾配を計算する(ステップ612)。たとえば、いくつかの実装形態では、誤差関数は、1つまたは複数の畳み込み層フィルタおよび受信された逆伝播された勾配に依存してもよい。
【００９２】
システムは、計算された勾配を使用して、1つまたは複数の畳み込み層フィルタを更新する(ステップ614)。たとえば、システムは、機械学習トレーニング技法を使用して、たとえば勾配とベクトルを合計することによって、または勾配を学習レートで乗算し、次いで積をベクトルに加算することによって畳み込み層フィルタを十分に指定するベクトルの値を更新してもよい。
【００９３】
図7は、畳み込みニューラルネットワークステージおよび1つまたは複数の他のニューラルネットワーク層のカスケードをトレーニングするための例示的プロセス700の流れ図である。便宜上、プロセス700は、1つまたは複数のロケーションにある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、畳み込みステージのカスケードを含むニューラルネットワークシステム、たとえば本明細書に従って適切にプログラムされた図2のカスケード畳み込みニューラルネットワークシステム200が、プロセス700を実施することができる。
【００９４】
システムは、複数のトレーニングオーディオサンプルの各々について、トレーニングオーディオサンプルのスペクトログラムと、トレーニングオーディオサンプルについての既知の出力とを含むトレーニングデータを取得する(ステップ702)。いくつかの実装形態では、トレーニングデータは、トレーニングオーディオサンプルの時間領域特徴と、トレーニングオーディオサンプルについての既知の分類とを含んでもよい。
【００９５】
システムは、トレーニングされたパラメータのセットを判断するために、他のニューラルネットワーク層のパラメータの値を調整し、各畳み込みニューラルネットワークステージの中の畳み込みニューラルネットワーク層についての1つまたは複数の畳み込み層パラメータの値を調整するようにトレーニングデータでニューラルネットワークをトレーニングする(ステップ704)。システムは、図4を参照して上述したように、トレーニングデータをニューラルネットワークへの入力として処理して、トレーニングデータニューラルネットワーク出力を生成することによってニューラルネットワークをトレーニングする。
【００９６】
いくつかの実装形態では、トレーニングデータでニューラルネットワークシステムをトレーニングすることは、第1のサブネットワークにおける畳み込みステージのシーケンス中の各畳み込み層について、それぞれの畳み込み層入力を受信すること、たとえば第1の畳み込みステージの中の第1の畳み込みニューラルネットワーク層について、スペクトログラムを受信すること、または第2の畳み込みニューラルネットワークステージの中の第1の畳み込み層について、第1の畳み込みステージ出力を受信することを含む。ニューラルネットワークシステムをトレーニングすることは、第1のサブネットワーク中の各畳み込み層について、畳み込み層を通して受信された畳み込み層入力を処理して、畳み込み層出力を生成すること、たとえば図4を参照して上述したように、畳み込み層の上のニューラルネットワーク層からスペクトログラムについての逆伝播された勾配を受信することと、ニューラルネットワーク用の誤差関数の勾配を計算することであって、誤差関数は、それぞれの畳み込み層フィルタおよび受信された逆伝播された勾配に依存する、計算することと、計算された勾配を使用して、それぞれの畳み込み層フィルタを更新することとをさらに含んでもよい。
【００９７】
トレーニングされたパラメータは、マルチスケールの周波数領域特徴への周波数領域特徴の最適畳み込みマッピングを定義する。カスケード畳み込みニューラルネットワークシステムの中の他のニューラルネットワーク層、たとえば出力層は、連結畳み込みニューラルネットワークステージ出力から適切な特徴を選択かつ使用することが可能であり、ニューラルネットワークシステムが、マルチスケールの周波数領域特徴への周波数領域特徴の畳み込みマッピングを所与のタスクに対してあつらえ、最適化することを可能にする。たとえば、いくつかの設定、たとえば音声認識設定では、マルチスケールの周波数領域特徴への周波数領域特徴の判断された最適畳み込みマッピングは、対数またはほぼ対数スケーリングされた周波数領域特徴への周波数領域特徴の畳み込みマッピングを含んでもよい。
【００９８】
本明細書に記載する主題および機能的動作の実施形態は、本明細書において開示した構造およびそれらの構造的等価物を含めて、デジタル電子回路機構で、または有形に具現化されるコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実装することができる。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわちデータ処理装置によって実行するか、またはデータ処理装置の動作を制御するための有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切なレシーバ装置への送信用の情報を符号化するように生成される人工的に生成された伝搬信号、たとえば機械生成された電気、光学、または電磁信号上で符号化することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の、組合せであることが可能である。ただし、コンピュータ記憶媒体は伝播信号ではない。
【００９９】
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、特殊目的論理回路機構、たとえばFPGA(フィールドプログラム可能ゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加え、問題となっているコンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。
【０１００】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか、またはそれらとして記載されている場合もある)は、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む任意の形式のプログラミング言語でも書くことができ、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境における使用に適した他の単位としてを含む、どの形式でも展開することができる。コンピュータプログラムが、ファイルシステム内のファイルに対応してもよいが、そうする必要はない。プログラムは、他のプログラムもしくはデータ、たとえばマークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプトを保持するファイル部分に、問題になっているプログラムに専用の単一のファイルに、または複数の協調ファイル、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1つの場所に置かれたまたは複数の場所に分配された1つのコンピュータ上または複数のコンピュータ上で実行されるように展開することができる。
【０１０１】
本明細書において使用されるように、「エンジン」、または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装入力/出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット("SDK")、またはオブジェクトなどの機能性の符号化ブロックであることが可能である。各エンジンは、任意の適切なタイプのコンピューティングデバイス、たとえば1つまたは複数のプロセッサおよびコンピュータ可読媒体を含むサーバ、モバイルフォン、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、eブックリーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の静止もしくはポータブルデバイス上で実装することができる。さらに、エンジンのうちの2つ以上が、同じコンピューティングデバイス上に、または異なるコンピューティングデバイス上に実装されてもよい。
【０１０２】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施することができる。プロセスおよび論理フローは、特殊目的論理回路機構、たとえばFPGA(フィールドプログラム可能ゲートアレイ)やASIC(特定用途向け集積回路)によって実施することもでき、装置は、それらとして実装することもできる。
【０１０３】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊目的マイクロプロセッサもしくは両方、または他の任意の種類の中央処理ユニットを含み、例として、それらに基づくことが可能である。概して、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえばほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【０１０４】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMディスクとを含む、あらゆる形式の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリはまた、専用論理回路要素によって補完することも、その中に組み込むこともできる。
【０１０５】
ユーザとの対話を可能にするために、本明細書に記載する主題の実施形態は、ユーザに情報を表示するための表示デバイス、たとえばCRT(陰極線管)やLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与えることが可能なキーボードおよびポインティングデバイス、たとえばマウスやトラックボールとを有するコンピュータ上で実装することができる。他の種類のデバイスもまた、ユーザとの対話を可能にするのに使用されることが可能であり、たとえばユーザに与えられるフィードバックは、どの形式の感覚フィードバックでも、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、発語、または触覚入力を含むどの形でも受信されることが可能である。さらに、コンピュータは、ユーザによって使用されるデバイスへドキュメントを送信し、デバイスからドキュメントを受信することによって、たとえばウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザへウェブページを送信することによってユーザと対話することができる。
【０１０６】
本明細書に記載する主題の実施形態は、バックエンド構成要素をたとえばデータサーバとして含む、もしくはミドルウェア構成要素、たとえばアプリケーションサーバを含む、もしくはフロントエンド構成要素、たとえば本明細書に記載する主題の実装形態とユーザが対話することができるためのグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せでも実装されることが可能である。システムの構成要素は、どの形または媒体のデジタルデータ通信、たとえば通信ネットワークによっても相互接続されることが可能である。通信ネットワークの例には、ローカルエリアネットワーク("LAN")およびワイドエリアネットワーク("WAN")、たとえばインターネットがある。
【０１０７】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは概して、互いから離れており、通常は通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに互いとのクライアント-サーバ関係を有するコンピュータプログラムにより起こる。いくつかの実施形態では、たとえばクライアントとして作用するユーザデバイスと対話しているユーザに対してデータを表示し、ユーザからユーザ入力を受信する目的で、サーバが、データ、たとえばHTMLページをユーザデバイスへ送信する。ユーザデバイスにおいて生成されたデータが、たとえばユーザ対話の結果としてサーバにおいてユーザデバイスから受信されることが可能である。
【０１０８】
本明細書は、多くの具体的な実装詳細を含むが、これらは、いかなる発明のまたは請求され得るものの範囲に対する限定としても解釈されるべきでなく、特定の発明の特定の実施形態に特有な場合がある特徴の記述として解釈されるべきである。また、別個の実施形態の文脈において本明細書で説明したいくつかの特徴は、単一の実施形態において組合せで実装することができる。逆に、単一の実施形態の文脈において記載される様々な特徴はまた、複数の実施形態において別々に、またはどの適切な部分組合せでも実装することができる。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せから1つまたは複数の特徴は、場合によってはその組合せから削除されてもよい。
【０１０９】
同様に、動作は、特定の順序において図面に示されるが、これは、そのような動作が図示された特定の順序において、または順次に実施されることを必要とするか、または、所望の結果を達成するためにすべての示された動作が実施されることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利な場合がある。その上、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載したプログラム構成要素およびシステムは概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
【０１１０】
本主題の特定の実施形態について記載した。他の実施形態は、以下の特許請求の範囲内である。たとえば、特許請求の範囲に記載されるアクションは、異なる順序で実施され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するのに、図示される特定の順序、または順番を必ずしも求めない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【０１１１】
100  対数尺度畳み込みニューラルネットワークシステム、ニューラルネットワークシステム
102  オーディオサンプル、オーディオサンプル入力
104  畳み込み層、層
108  ニューラルネットワーク層
110  ニューラルネットワーク層
200  カスケード畳み込みニューラルネットワークシステム、ニューラルネットワークシステム
202  オーディオサンプル、オーディオサンプル入力
204  第1のサブネットワーク
208  第2のサブネットワーク
210  隠れニューラルネットワーク層
212  出力層、第2のサブネットワーク出力層
【図１】
2019520600.tif 000003
【図２】
2019520600.tif 000004
【図３】
2019520600.tif 000005
【図４】
2019520600.tif 000006
【図５】
2019520600.tif 000007
【図６】
2019520600.tif 000008
【図７】
2019520600.tif 000009
【国際調査報告】
2019520600.tif 000010
2019520600.tif 000011
2019520600.tif 000012