(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
自動化された音声活動検出システムに含まれる畳み込み長短期記憶全結合深層ニューラルネットワーク(CLDNN)によって、生オーディオ波形を受信するステップと、
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを判定するために前記生オーディオ波形を処理するステップであって、
前記CLDNN内の時間畳み込み層によって、それぞれが所定の長さの時間にわたる複数のフィルタを使用して時間周波数表現を生成するために前記生オーディオ波形を処理するステップと、
第2の表現を生成するために、前記CLDNN内の周波数畳み込み層によって、周波数に基づいて前記時間周波数表現を処理するステップと、
第3の表現を生成するために、前記CLDNN内の1つまたは複数の長短期記憶ネットワーク層によって、前記第2の表現を処理するステップと、
前記CLDNN内の複数の深層ニューラルネットワーク層によって、前記第3の表現を処理するステップであって、前記深層ニューラルネットワーク層の各隠れ層に正規化線形ユニット(ReLU)関数を使用する、ステップと
を含む、ステップと
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを指示する前記生オーディオ波形の分類を提供するステップと
を含む、コンピュータ実装方法。
【請求項２】
前記自動化された音声活動検出システムによって、前記生オーディオ波形を前記自動化された音声活動検出システムに含まれる前記CLDNNに提供するステップは、
前記CLDNNに、それぞれが所定の時間の長さを有する複数のサンプルにわたる生信号を提供するステップ
を含む、請求項1に記載の方法。
【請求項３】
前記時間周波数表現は周波数軸を含み、
前記CLDNN内の前記周波数畳み込み層によって、周波数に基づいて前記時間周波数表現を処理するステップは、前記周波数畳み込み層によって、重なり合わないプールを使用して前記周波数軸に沿って前記時間周波数表現に最大プーリングをかけるステップを含む、
請求項1に記載の方法。
【請求項４】
音声活動を含むかまたは音声活動を含まないかのいずれかとしてラベル付けされたオーディオ波形を前記CLDNNに提供することによって音声活動を検出するように前記CLDNNをトレーニングするステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを指示する前記生オーディオ波形の前記分類を提供するステップは、前記CLDNNによって、前記自動化された音声活動検出システムを含む自動化された発話認識システムに、前記生オーディオ波形が発話を含むかどうかを指示する前記生オーディオ波形の前記分類を提供するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
自動化された音声活動検出システムであって、
1つまたは複数のコンピュータと、
1つまたは複数のストレージデバイスであって、
前記1つまたは複数のコンピュータによって実行されたときに、前記1つまたは複数のコンピュータに、
前記自動化された音声活動検出システムに含まれる畳み込み長短期記憶全結合深層ニューラルネットワーク(CLDNN)によって、生オーディオ波形を受信することと、
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを判定するために前記生オーディオ波形を処理することと、
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを指示する前記生オーディオ波形の分類を提供することと
を含む動作を実行させるように動作可能である命令を記憶する、1つまたは複数のストレージデバイスと
を備え、
前記CLDNNは、
周波数畳み込み層と、
複数のフィルタを有する時間畳み込み層であって、各々のフィルタは所定の時間の長さにわたる、時間畳み込み層と
1つまたは複数の長短期記憶ネットワーク層と、
複数の深層ニューラルネットワーク層であって、前記深層ニューラルネットワーク層の各隠れ層に正規化線形ユニット(ReLU)関数を使用する、複数の深層ニューラルネットワーク層と
を備え、
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを判定するために前記生オーディオ波形を処理することは、
前記時間畳み込み層によって、前記複数のフィルタを使用して時間周波数表現を生成するように前記生オーディオ波形を処理することと、
第2の表現を生成するために、前記周波数畳み込み層によって、周波数に基づいて前記時間周波数表現を処理することと、
第3の表現を生成するために、前記1つまたは複数の長短期記憶ネットワーク層によって、前記第2の表現を処理することと、
前記複数の深層ニューラルネットワーク層によって、前記第3の表現を処理することと
を含む、自動化された音声活動検出システム。
【請求項７】
前記生オーディオ波形を前記CLDNNに提供することは、
前記CLDNNに、それぞれが所定の時間の長さを有する複数のサンプルにわたる生信号を提供すること
を含む、請求項6に記載のシステム。
【請求項８】
前記動作は、
音声活動を含むかまたは音声活動を含まないかのいずれかとしてラベル付けされたオーディオ波形を前記ニューラルネットワークに提供することによって音声活動を検出するように前記ニューラルネットワークをトレーニングすること
を含む、請求項6または7に記載のシステム。
【請求項９】
1つまたは複数のコンピュータによって実行可能な命令を記憶するコンピュータ可読記憶媒体であって、実行時に、前記1つまたは複数のコンピュータに、
自動化された音声活動検出システムに含まれる畳み込み長短期記憶全結合深層ニューラルネットワーク(CLDNN)によって、生オーディオ波形を受信することと、
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを判定するために前記生オーディオ波形を処理することであって、
前記CLDNN内の時間畳み込み層によって、それぞれが所定の長さの時間にわたる複数のフィルタを使用して時間周波数表現を生成するために前記生オーディオ波形を処理することと、
第2の表現を生成するために前記CLDNN内の周波数畳み込み層によって、周波数に基づいて前記時間周波数表現を処理することと、
第3の表現を生成するために、前記CLDNN内の1つまたは複数の長短期記憶ネットワーク層によって、前記第2の表現を処理することと、
前記CLDNN内の複数の深層ニューラルネットワーク層によって、前記第3の表現を処理することであって、前記深層ニューラルネットワーク層の各隠れ層に正規化線形ユニット(ReLU)関数を使用する、処理することと
を含む、処理することと、
前記CLDNNによって、前記生オーディオ波形が発話を含むかどうかを指示する前記生オーディオ波形の分類を提供することと
を含む動作を実行させる、コンピュータ可読記憶媒体。
【請求項１０】
前記自動化された音声活動検出システムによって、前記生オーディオ波形を前記自動化された音声活動検出システムに含まれる前記CLDNNに提供することは、
前記CLDNNに、それぞれが所定の時間の長さを有する複数のサンプルにわたる生信号を提供すること
を含む、請求項9に記載のコンピュータ可読記憶媒体。
【請求項１１】
コンピューティング装置によって実行されたときに、請求項1から5のいずれか一項に記載の方法を実行する命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に音声活動検出に関する。
【背景技術】
【０００２】
発話認識システムは、いつ発話認識を実行するかを決定するために音声活動検出を使用してもよい。たとえば、発話認識システムは、オーディオ入力における音声活動を検出し、それに応答して、オーディオ入力からトランスクリプションを生成することを決定してもよい。
【発明の概要】
【課題を解決するための手段】
【０００３】
一般的に、本明細書で説明される主題の一態様は、音声活動を検出するためのプロセスを伴ってもよい。このプロセスは、音声活動を含むかまたは音声活動を含まないかのいずれかとしてラベル付けされたオーディオ波形をニューラルネットワークに提供することによって音声活動を検出するようにニューラルネットワークをトレーニングすることを含んでもよい。次いで、学習済みニューラルネットワークは、入力オーディオ波形を提供され、入力オーディオ波形を、音声活動を含むかまたは音声活動を含まないとして分類する。
【０００４】
いくつかの態様において、本明細書で説明される主題は、オーディオ波形を取得するアクションと、オーディオ波形をニューラルネットワークに提供するアクションと、ニューラルネットワークから、発話を含むものとしてのオーディオ波形の分類を取得するアクションとを含んでもよい方法で具現化されてもよい。
【０００５】
他のバージョンは、対応するシステムと、装置と、これらの方法のアクションを実行するように構成され、かつコンピュータ記憶デバイス上に符号化されたコンピュータプログラムとを含む。
【０００６】
これらおよび他のバージョンは各々、以下の特徴のうちの1つまたは複数を適宜含んでもよい。たとえば、いくつかの実装形態において、オーディオ波形は、それぞれが所定の時間の長さを有する複数のサンプルにわたる生信号を含む。いくつかの態様において、ニューラルネットワークは、畳み込み長短期記憶全結合深層ニューラルネットワーク(convolutional, long short-term memory, fully connected deep neural network)である。いくつかの態様において、ニューラルネットワークは、複数のフィルタを持つ時間畳み込み層を含み、各フィルタは所定の時間の長さにわたり、これらのフィルタはオーディオ波形に対して畳み込みを行う。いくつかの実装形態において、ニューラルネットワークは、周波数に基づいて時間畳み込み層の出力を畳み込む周波数畳み込み層を含む。いくつかの態様において、ニューラルネットワークは、1つまたは複数の長短期記憶ネットワーク層を含む。いくつかの態様において、ニューラルネットワークは、1つまたは複数の深層ニューラルネットワーク層(deep neural network layer)を含む。いくつかの実装形態において、アクションは、音声活動を含むかまたは音声活動を含まないかのいずれかとしてラベル付けされたオーディオ波形をニューラルネットワークに提供することによって音声活動を検出するようにニューラルネットワークをトレーニングすることを含む。
【０００７】
一般的に、本明細書において説明される主題の革新的一態様は、自動化された音声活動検出システムに含まれるニューラルネットワークによって、生オーディオ波形を受信するアクションと、ニューラルネットワークによって、オーディオ波形が発話を含むかどうかを判定するために生オーディオ波形を処理するアクションと、ニューラルネットワークによって、生オーディオ波形が発話を含むかどうかを指示する生オーディオ波形の分類を提供するアクションとを含む方法で具現化できる。この態様の他の実施形態は、対応するコンピュータシステム、装置、およびこれらの方法のアクションを実行するように各々構成される、1つまたは複数のコンピュータストレージデバイス上に記録されるコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、動作時にこれらのアクションをシステムに実行させるシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはこれらのものの組合せを有することによって特定の動作またはアクションを実行するように構成されることが可能である。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されたときにアクションを装置に実行させる命令を含むことによって特定の動作またはアクションを実行するように構成されることが可能である。
【０００８】
前述の実施形態および他の実施形態は、各々以下の特徴のうちの1つまたは複数を、適宜、単独で、または組み合わせて含むことができる。自動化された音声活動検出システムによって、生オーディオ波形を自動化された音声活動検出システムに備えられるニューラルネットワークに提供することは、ニューラルネットワークに、それぞれが所定の時間の長さを有する複数のサンプルにわたる生信号を提供することを含んでもよい。自動化された音声活動検出システムによって、生オーディオ波形をニューラルネットワークに提供することは、自動化された音声活動検出システムによって、生オーディオ波形を畳み込み長短期記憶全結合深層ニューラルネットワーク(CLDNN)に提供することを含んでもよい。
【０００９】
いくつかの実装形態において、ニューラルネットワークによって、オーディオ波形が発話を含むかどうかを判定するために生オーディオ波形を処理することは、ニューラルネットワーク内の時間畳み込み層によって、それぞれが所定の時間の長さにわたる複数のフィルタを使用して時間周波数表現を生成するように生オーディオ波形を処理することを含んでもよい。ニューラルネットワークによって、オーディオ波形が発話を含むかどうかを判定するために生オーディオ波形を処理することは、ニューラルネットワーク内の周波数畳み込み層によって、周波数に基づいて時間周波数表現を処理することを含んでもよい。時間周波数表現は、周波数軸を含んでもよい。ニューラルネットワーク内の周波数畳み込み層によって、周波数に基づいて時間周波数表現を処理することは、周波数畳み込み層によって、重なり合わないプールを使用して周波数軸に沿って時間周波数表現に最大プーリングをかけることを含んでもよい。
【００１０】
ニューラルネットワークによって、オーディオ波形が発話を含むかどうかを判定するために生オーディオ波形を処理することは、ニューラルネットワーク内の1つまたは複数の長短期記憶ネットワーク層によって、生オーディオ波形から生成されたデータを処理することを含んでもよい。ニューラルネットワークによって、オーディオ波形が発話を含むかどうかを判定するために生オーディオ波形を処理することは、ニューラルネットワーク内の1つまたは複数の深層ニューラルネットワーク層によって、生オーディオ波形から生成されたデータを処理することを含んでもよい。本方法は、音声活動を含むかまたは音声活動を含まないかのいずれかとしてラベル付けされたオーディオ波形をニューラルネットワークに提供することによって音声活動を検出するようにニューラルネットワークをトレーニングすることを含んでもよい。ニューラルネットワークによって、生オーディオ波形が発話を含むかどうかを指示する生オーディオ波形の分類を提供することは、ニューラルネットワークによって、自動化された音声活動検出システムを含む自動化された発話認識システムに、生オーディオ波形が発話を含むかどうかを指示する生オーディオ波形の分類を提供することを含んでもよい。
【００１１】
本明細書において説明される主題は、特定の実施形態において実装することができ、その結果次の利点のうちの1つまたは複数が得られる場合がある。いくつかの実装形態において、以下で説明されるシステムおよび方法は、生オーディオ波形の時間的構造をモデル化してもよい。いくつかの実装形態において、以下で説明されるシステムおよび方法は、他のシステムに比べて、ノイズの多い状態、クリーンな状態、またはその両方における性能を改善する場合がある。
【００１２】
本明細書で説明される主題の1つまたは複数の実装形態の詳細は、付属の図面および以下の説明で述べられる。主題の他の潜在的な特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】音声活動検出のためのニューラルネットワークの例示的なアーキテクチャのブロック図を示す図である。
【図２】生オーディオ波形の分類を提供するためのプロセスの流れ図である。
【図３】例示的なコンピューティングデバイスの図である。
【発明を実施するための形態】
【００１４】
さまざまな図面内の類似の参照記号は、類似の要素を示す。
【００１５】
音声活動検出(VAD)は、オーディオ波形内の発話のセグメントを識別するプロセスを指す。VADは、ときには、計算量を低減するとともに、発話を分析すべきオーディオ波形の部分について自動発話認識(ASR)システムをガイドするためのASRシステムの前処理段である。
【００１６】
VADシステムは、オーディオ波形が発話を含むかどうかを判定するために複数の異なるニューラルネットワークアーキテクチャを使用してもよい。たとえば、ニューラルネットワークは、VAD用のモデルを作成するか、または特徴をより分離可能な空間にマップするか、またはその両方を行うために深層ニューラルネットワーク(DNN)を使用してもよいか、周波数変化を低減またはモデル化するために畳み込みニューラルネットワーク(CNN)を使用してもよいか、シーケンスもしくは時間的変化をモデル化するために長短期記憶(LSTM)を使用してもよいか、またはこれらの2つもしくはそれ以上を使用してもよい。いくつかの例では、VADシステムは、各々VADシステムにおける特定の層の種類であってもよいDNN、CNN、LSTM、もしくはこれらの2つ以上の組合せを組み合わせて、これらのニューラルネットワークアーキテクチャよりも優れたパフォーマンスを個別に取得する場合がある。たとえば、VADシステムは、時間的構造を、たとえばシーケンスタスクの一部としてモデル化するか、個別の層の利点を組み合わせるか、またはその両方を行うためにDNN、CNN、およびLSTMを組み合わせたものである畳み込み長短期記憶全結合深層ニューラルネットワーク(CLDNN)を使用してもよい。
【００１７】
図1は、音声活動検出のためのニューラルネットワーク100の例示的なアーキテクチャのブロック図である。ニューラルネットワーク100は、自動化された音声活動検出システム内に含まれるか、または他の何らかの形でその一部として含まれてもよい。
【００１８】
ニューラルネットワークは、生オーディオ波形の時間周波数表現を生成する第1の畳み込み層102を含む。第1の畳み込み層102は、時間畳み込み層であってもよい。生オーディオ波形は、おおよそM個のサンプルにわたる生信号であってもよい。いくつかの例では、M個のサンプルの各々の持続時間は、35秒であってもよい。
【００１９】
第1の畳み込み層102は、各フィルタが長さNにわたるP個のフィルタを持つ畳み込み層であってもよい。たとえば、ニューラルネットワーク100は、生オーディオ波形に対して第1の畳み込み層102を畳み込んで畳み込まれた出力を生成してもよい。第1の畳み込み層102は、40から128個までの間のフィルタPを含んでもよい。P個のフィルタの各々は、25ミリ秒の長さNにわたってもよい。
【００２０】
第1の畳み込み層102は、畳み込み(M-N+1)の全長にわたって畳み込まれた出力をプールしてプールされた出力を生成してもよい。第1の畳み込み層102は、P次元時間周波数表現xtを生成するために、正規化された非線形性をプールされている出力に適用し、その後安定化対数圧縮(stabilized logarithm compression)を行ってもよい。
【００２１】
第1の畳み込み層102は、P次元時間周波数表現xtをニューラルネットワーク100に含まれる第2の畳み込み層104に提供する。第2の畳み込み層104は、周波数畳み込み層であってもよい。第2の畳み込み層104は、サイズ1×時間8×周波数のフィルタを有してもよい。第2の畳み込み層104は、P次元時間周波数表現xtの周波数軸に沿って重なり合わない最大プーリングを使用してもよい。いくつかの例では、第2の畳み込み層104は、3のプーリングサイズを使用してもよい。第2の畳み込み層104は、第2の表現を出力として生成する。
【００２２】
ニューラルネットワーク100は、第2の表現を1つまたは複数のLSTM層106のうちの第1のものに提供する。いくつかの例では、LSTM層106のアーキテクチャは、単方向性を有し、隠れ層がk個、隠れユニットが層毎にn個ある。いくつかの実装形態において、LSTMアーキテクチャは、たとえば第2の畳み込み層104と第1の隠れLSTM層との間に、射影層を含まない。LSTM層106は、たとえば第1のLSTM層の出力を第2のLSTM層に通して処理することなどによって、第3の表現を出力として生成する。
【００２３】
ニューラルネットワーク100は、第3の表現を1つまたは複数のDNN層108に提供する。DNN層は、隠れ層がk個、層毎に隠れユニットがn個あるフィードフォワード全結合層であってよい。DNN層108は、各隠れ層に正規化線形ユニット(ReLU)関数を使用してもよい。DNN層108は、生オーディオ波形内の発話および非発話を予測するために2つのユニットを持つsoftmax関数を使用してよい。たとえば、DNN層108は、生オーディオ波形が発話を含んでいたかどうかを指示する値、たとえばバイナリ値を出力してもよい。出力は、生オーディオ波形の一部または生オーディオ波形全体に対するものであってもよい。いくつかの例では、DNN層108は、単一のDNN層のみを含む。
【００２４】
以下のTable 1(表1)は、ニューラルネットワーク100の3つの例示的実装形態A、B、およびCを説明する。たとえば、Table 1(表1)は、生オーディオ波形を入力として受け入れ、生オーディオ波形が発話、たとえば発言を符号化するかどうかを指示する値を出力するCLDNNに含まれる層の特性の一覧である。
【表１】
0006530510.tif 000002
【００２５】
いくつかの実装形態において、ニューラルネットワーク100、たとえばCLDNNニューラルネットワークは、非同期確率的勾配降下法(ASGD)最適化戦略をクロスエントロピー基準とともに使用して学習させてもよい。ニューラルネットワーク100は、CNN層102および104ならびにDNN層108をGlorot-Bengio戦略を使用して初期化してもよい。ニューラルネットワーク100は、LSTM層106をランダムに-0.02から0.02の間の値になるように初期化してもよい。ニューラルネットワーク100は、LSTM層106を均一にランダムに初期化してもよい。
【００２６】
ニューラルネットワーク100は、学習率を指数関数的に低下させる場合がある。ニューラルネットワーク100は、各モデルについて、たとえば異なる種類の層の各々、異なる層の各々、またはその両方について、学習率を独立して選択してもよい。ニューラルネットワーク100は、学習が、たとえばそれぞれの層について安定状態を保つように学習率の各々を最大値になるように選択してもよい。いくつかの例では、ニューラルネットワーク100は、時間畳み込み層、たとえば第1の畳み込み層102およびニューラルネットワーク100内の他の層を一緒にトレーニングする。
【００２７】
図2は、生オーディオ波形の分類を提供するためのプロセス200の流れ図である。たとえば、プロセス200は、ニューラルネットワーク100によって使用されてもよい。
【００２８】
ニューラルネットワークは、生オーディオ波形を受信する(202)。たとえば、ニューラルネットワークは、ユーザデバイス上に備えられてもよく、マイクロフォンから生オーディオ波形を受信してもよい。ニューラルネットワークは、音声活動検出システムの一部であってもよい。
【００２９】
ニューラルネットワーク内の時間畳み込み層は、それぞれが所定の長さの時間にわたる複数のフィルタを使用して時間周波数表現を生成するために生オーディオ波形を処理する(204)。たとえば、時間畳み込み層は、各々Nミリ秒の長さにわたる40から128個までのフィルタを含んでもよい。時間畳み込み層は、これらのフィルタを使用して生オーディオ波形を処理し、時間周波数表現を生成してもよい。
【００３０】
ニューラルネットワーク内の周波数畳み込み層は、周波数に基づく時間周波数表現を処理して、第2の表現を生成する(206)。たとえば、周波数畳み込み層は、重なり合わないプールによる最大プーリングを使用して時間周波数表現を処理し、第2の表現を生成してもよい。
【００３１】
ニューラルネットワーク内の1つまたは複数の長短期記憶ネットワーク層は、第2の表現を処理して、第3の表現を生成する(208)。たとえば、ニューラルネットワークは、順に第3の表現を処理する3つの長短期記憶(LSTM)ネットワーク層を含んでもよい。いくつかの例では、LSTM層は、相次いで第2の表現を処理して第3の表現を生成する2つのLSTM層を含んでもよい。LSTM層の各々は複数のユニットを含み、これらの各々は生オーディオ波形の他のセグメントを処理することからデータを記憶してもよい。たとえば、各LSTMユニットは、生オーディオ波形の他のセグメントの処理に対するそのユニットから前の出力を追跡する記憶部を備えていてもよい。LSTMにおける記憶部は、新しい生オーディオ波形の処理に対してリセットされてよい。
【００３２】
ニューラルネットワークにおける1つまたは複数の深層ニューラルネットワーク層は、第3の表現を処理して、生オーディオ波形が発話を含むかどうかを指示する生オーディオ波形の分類を生成する(210)。いくつかの例では、単一の深層ニューラルネットワーク層は、32から80までの間の隠れユニットを用いて、第3の表現を処理して分類を生成する。たとえば、各DNN層は、第3の表現の一部を処理し、出力を生成してもよい。DNNは、隠れDNN層からの出力値を組み合わせる出力層を含んでもよい。
【００３３】
ニューラルネットワークは、生オーディオ波形の分類を提供する(212)。ニューラルネットワークは、分類を音声活動検出システムに提供してもよい。いくつかの例では、ニューラルネットワークまたは音声活動検出システムは、分類、または分類を表すメッセージをユーザデバイスに提供する。
【００３４】
システムは、生オーディオ波形が発話を含むことを分類が指示すると判定したことに応答してアクションを実行する(214)。たとえば、ニューラルネットワークは、生オーディオ波形が発話を含むことを指示する分類を提供することによってアクションをシステムに実行させる。いくつかの実装形態において、ニューラルネットワークは、生オーディオ波形を分析して生オーディオ波形中に符号化される発言を判定することを、発話認識システム、たとえば音声活動検出システムを備える自動化された発話認識システムに行わせる。
【００３５】
いくつかの実装形態において、プロセス200は、追加のステップ、より少ないステップを含むことができるか、またはそれらのステップのうちのいくつかは、複数のステップに分割できる。たとえば、音声活動検出システムは、ニューラルネットワークによる生オーディオ波形の受信の前に、または学習データセットの一部である生オーディオ波形の受信を含むプロセスの一部として、たとえばASGDを使用して、ニューラルネットワークを学習させてもよい。いくつかの例では、プロセス200は、ステップ214を除くステップ202から212のうちの1つまたは複数を含んでもよい。
【００３６】
図3は、本明細書で説明される技術を実装するために使用されてもよいコンピューティングデバイス300およびモバイルコンピューティングデバイス350の一例を示す。コンピューティングデバイス300は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどのさまざまな形態のデジタルコンピュータを表すことが意図されている。モバイルコンピューティングデバイス350は、携帯情報端末、携帯電話、スマートフォン、および他の類似のコンピューティングデバイスなどの、さまざまな形態のモバイルデバイスを表すことが意図されている。ここに示される構成要素、それらの接続および関係、ならびにそれらの機能は、例示することのみを意図されており、限定することは意図されない。
【００３７】
コンピューティングデバイス300は、プロセッサ302、メモリ304、ストレージデバイス306、メモリ304および複数の高速拡張ポート310に接続する高速インターフェース308、ならびに低速拡張ポート314およびストレージデバイス306に接続する低速インターフェース312を備える。プロセッサ302、メモリ304、ストレージデバイス306、高速インターフェース308、高速拡張ポート310、および低速インターフェース312は、さまざまなバスを使用して相互接続され、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられてもよい。プロセッサ302は、高速インターフェース308に結合されるディスプレイ316などの、外部入力/出力デバイス上にグラフィカルユーザインターフェース(GUI)に対するグラフィック情報を表示するためメモリ304内に、またはストレージデバイス306上に、記憶される命令を含む、コンピューティングデバイス300内で実行する命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、適宜、複数のメモリおよび種類のメモリとともに使用されてもよい。また、複数のコンピューティングデバイスが、(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な操作の一部を提供する各デバイスと接続されてもよい。
【００３８】
メモリ304は、コンピューティングデバイス300内の情報を記憶する。いくつかの実装形態において、メモリ304は、1つまたは複数の揮発性メモリユニットである。いくつかの実装形態において、メモリ304は、1つまたは複数の不揮発性メモリユニットである。メモリ304は、磁気ディスクまたは光ディスクなどのコンピュータ可読媒体の他の形態のものであってもよい。
【００３９】
ストレージデバイス306は、コンピューティングデバイス300用の大容量記憶装置を構成することができる。いくつかの実装形態において、ストレージデバイス306は、ストレージエリアネットワークまたは他の構成のデバイスを含む、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、またはデバイスアレイなどのコンピュータ可読媒体であるか、またはコンピュータ可読媒体を含むことができる。命令は、情報担体内に記憶されてもよい。命令は、1つまたは複数の処理デバイス(たとえば、プロセッサ302)によって実行されるときに、上で説明されるような、1つまたは複数の方法を実行する。命令は、コンピュータ可読媒体もしくは機械可読媒体などの1つまたは複数のストレージデバイス(たとえば、メモリ304、ストレージデバイス306、またはプロセッサ302上のメモリ)によって記憶されてもよい。
【００４０】
高速インターフェース308は、コンピューティングデバイス300に対して大きな帯域幅を使用する動作を管理するが、低速インターフェース312は、少ない帯域幅を使用する動作を管理する。機能のこのような割り振りは、例示的なものにすぎない。いくつかの実装形態において、高速インターフェース308は、メモリ304、ディスプレイ316(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)、およびさまざまな拡張カード(図示せず)を受け入れることができる高速拡張ポート310に結合される。実装形態において、低速インターフェース312は、ストレージデバイス306および低速拡張ポート314に結合される。さまざまな通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet、ワイヤレスEthernet)を含んでもよい。低速拡張ポート314は、キーボード、ポインティングデバイス、スキャナ、またはたとえば、ネットワークアダプタを通じて、スイッチまたはルータなどネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに結合されてもよい。
【００４１】
コンピューティングデバイス300は、図に示されるように、数多くの異なる形態で実装されてもよい。たとえば、標準サーバ320として、またはそのようなサーバのグループにおいて何倍もの数で実装されてもよい。それに加えて、ラップトップコンピュータ322などのパーソナルコンピュータで実装されてもよい。これは、ラックサーバシステム324の一部としても実装されてもよい。代替的に、コンピューティングデバイス300からの構成要素は、モバイルコンピューティングデバイス350などのモバイルデバイス(図示せず)内の他の構成要素と組み合わされてもよい。このようなデバイスの各々は、コンピューティングデバイス300およびモバイルコンピューティングデバイス350のうちの1つまたは複数を含んでもよく、システム全体が、互いに通信する複数のコンピューティングデバイスで構成されてもよい。
【００４２】
モバイルコンピューティングデバイス350は、他にも構成要素があるがとりわけ、プロセッサ352、メモリ364、ディスプレイ354などの入力/出力デバイス、通信インターフェース366、およびトランシーバ368を備える。モバイルコンピューティングデバイス350はまた、追加の記憶装置を構成するためにマイクロドライブまたは他のデバイスなどのストレージデバイスを備えることもできる。プロセッサ352、メモリ364、ディスプレイ354、通信インターフェース366、およびトランシーバ368の各々は、さまざまなバスを使用して相互接続され、これらの構成要素のうちのいくつかは、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられてもよい。
【００４３】
プロセッサ352は、メモリ364内に記憶される命令を含む、モバイルコンピューティングデバイス350内の命令を実行することができる。プロセッサ352は、個別の、および複数の、アナログおよびデジタルプロセッサを備えるチップのチップセットとして実装されてもよい。プロセッサ352は、たとえばユーザインターフェースの制御、モバイルコンピューティングデバイス350によるアプリケーション実行、およびモバイルコンピューティングデバイス350によるワイヤレス通信などの、モバイルコンピューティングデバイス350の他の構成要素の調整を行ってもよい。
【００４４】
プロセッサ352は、制御インターフェース358およびディスプレイ354に結合されるディスプレイインターフェース356を通じてユーザと通信することができる。ディスプレイ354は、たとえばTFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイまたはOLED(有機発光ダイオード)ディスプレイまたは他の適切なディスプレイ技術とすることができる。ディスプレイインターフェース356は、グラフィックおよび他の情報をユーザに提示するようにディスプレイ354を駆動するための適切な回路を備えてもよい。制御インターフェース358は、ユーザからコマンドを受け取り、それらをプロセッサ352に送るために変換してもよい。それに加えて、外部インターフェース362は、プロセッサ352と通信することができ、それにより、モバイルコンピューティングデバイス350と他のデバイスとの近距離通信を行うことを可能にする。外部インターフェース362は、たとえばいくつかの実装形態における有線通信、または他の実装形態における無線通信を行うことができ、複数のインターフェースもまた使用されてもよい。
【００４５】
メモリ364は、モバイルコンピューティングデバイス350内の情報を記憶する。メモリ364は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットのうちの1つまたは複数として実装することができる。拡張メモリ374も、たとえばSIMM(シングルインラインメモリモジュール)カードインターフェースを含んでもよい、拡張インターフェース372を通じて構成され、モバイルコンピューティングデバイス350に接続されてもよい。拡張メモリ374は、モバイルコンピューティングデバイス350に対する付加的な記憶領域を設けてもよいか、またはモバイルコンピューティングデバイス350用のアプリケーションもしくは他の情報も記憶してもよい。特に、拡張メモリ374は、上で説明されるプロセスを実行するか、または補助する命令を含んでもよく、またセキュア情報も含んでもよい。したがって、たとえば拡張メモリ374は、モバイルコンピューティングデバイス350に対するセキュリティモジュールとして構成されてもよく、モバイルコンピューティングデバイス350の安全な使用を可能にする命令でプログラムされてもよい。それに加えて、安全なアプリケーションは、SIMMカードを介して、ハッキングできない方式でSIMMカード上に識別情報を配置するなど、付加情報とともに提供されてもよい。
【００４６】
メモリは、たとえば後述のように、フラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含んでもよい。いくつかの実装形態において、命令は、情報担体に記憶され、1つまたは複数の処理デバイス(たとえば、プロセッサ352)によって実行されたときに、上で説明されるような、1つまたは複数の方法を実行する。命令は、1つまたは複数のコンピュータ可読媒体もしくは機械可読媒体などの1つまたは複数のストレージデバイス(たとえば、メモリ364、拡張メモリ374、またはプロセッサ352上のメモリ)によって記憶されてもよい。いくつかの実装形態において、命令は、たとえばトランシーバ368または外部インターフェース362上で、伝搬信号で受け取られてもよい。
【００４７】
モバイルコンピューティングデバイス350は、必要であれば、デジタル信号処理回路を備えることができる、通信インターフェース366を通じてワイヤレス方式で通信してもよい。通信インターフェース366は、他にもいろいろあるがとりわけGSM(登録商標)音声電話(グローバルシステムフォーモバイルコミュニケーションズ)、SMS(ショートメッセージサービス)、EMS(エンハンストメッセージングサービス)、またはMMSメッセージング(マルチメディアメッセージングサービス)、CDMA(符号分割多元接続)、TDMA(時分割多元接続)、PDC(パーソナルデジタルセルラー)、WCDMA(広帯域符号分割多元接続)(登録商標)、CDMA2000、またはGPRS(汎用パケット無線サービス)などの、さまざまなモードまたはプロトコルの下で通信を行うことができる。このような通信は、たとえば無線周波数を使用するトランシーバ368を通じて行ってもよい。それに加えて、Bluetooth(登録商標)、WiFi、または他のトランシーバ(図示せず)などを使用して、短距離通信を実行してもよい。それに加えて、GPS(全地球測位システム)受信機モジュール370は、追加のナビゲーション位置関係無線データおよび位置関係無線データをモバイルコンピューティングデバイス350に送ることができ、これはモバイルコンピューティングデバイス350上で実行するアプリケーションによって適宜使用されてもよい。
【００４８】
モバイルコンピューティングデバイス350はまた、オーディオコーデック360を使用して音声で通信することができ、ユーザから発話情報を受け取り、それを使用可能なデジタル情報に変換することができる。オーディオコーデック360は同様に、たとえばモバイルコンピューティングデバイス350のハンドセットのスピーカーなどを通じて、ユーザ向けに可聴音を発生することができる。このような音は、音声電話からの音を含み、録音された音を含み(たとえば、音声メッセージ、音楽ファイルなど)、またモバイルコンピューティングデバイス350上で動作するアプリケーションによって生成される音も含んでもよい。
【００４９】
モバイルコンピューティングデバイス350は、図に示されるように、数多くの異なる形態で実装されてもよい。たとえば、これは携帯電話380として実装されてもよい。また、これはスマートフォン382、携帯情報端末、または他の類似のモバイルデバイスの一部としても実装されてもよい。
【００５０】
主題および本明細書で説明される機能する動作およびプロセスの実施形態は、本明細書で開示される構造およびその構造的等価物を含む、デジタル電子回路で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、またはこれらのうちの1つまたは複数のものの組合せで実装されてもよい。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のため、またはデータ処理装置の動作を制御するために有形な不揮発性プログラム担体上に符号化されたコンピュータプログラム命令からなる1つまたは複数のモジュールとして実装されてもよい。代替的にまたはそれに加えて、プログラム命令は、データ処理装置による実行のため好適な受信機装置に送信する情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば機械で生成された電気、光、または電磁信号上で符号化されてもよい。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読記憶装置基板、ランダムもしくはシリアルアクセスメモリデバイス、またはこれらのうちの1つまたは複数のものの組合せとすることができる。
【００５１】
「データ処理装置」という用語は、たとえばプログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含んでいてもよい。装置は、ハードウェアに加えて、注目するコンピュータプログラム用の実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらのうちの1つまたは複数のものの組合せを構成するコードを含んでもよい。
【００５２】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも称されるか、または記述されてもよい)は、コンパイル言語もしくはインタプリタ言語または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれてもよく、スタンドアロンプログラム、またはモジュール、構成要素、サブルーチン、またはコンピューティング環境において使用するのに適している他のユニットを含む、任意の形態で配備されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書内に記憶される1つまたは複数のスクリプト)を保持するファイルの一部に、注目するプログラム専用の単一ファイル内に、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶されてもよい。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、または複数のサイトにまたがって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように配備されてもよい。
【００５３】
本明細書で説明されるプロセスおよび論理の流れは、入力データを操作し、出力を生成することによって機能を実行するように1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラム可能なコンピュータによって実行されてもよい。プロセスおよび論理の流れも、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によって実行され、また装置も、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によって実装されてもよい。
【００５４】
コンピュータプログラムの実行に適しているコンピュータは、汎用マイクロプロセッサ、専用マイクロプロセッサ、またはその両方、または任意の他の種類の中央演算処理装置を備える、たとえばそれらに基づいてもよい。一般的に、中央演算処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を遂行または実行するための中央演算処理装置ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば磁気ディスク、磁気光ディスク、または光ディスクを備え、これらからデータを受け取るか、またはこれらにデータを転送するか、またはその両方を行うように動作可能なように結合される。しかし、コンピュータはこのようなデバイスを有する必要はない。さらに、コンピュータは、他のデバイス、たとえばいくつかの例を挙げると、携帯電話、携帯情報端末(PDA)、携帯オーディオまたはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれてもよい。
【００５５】
コンピュータプログラムの命令およびデータを格納するのに適したコンピュータ可読媒体は、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路で補完されるか、または専用論理回路に組み込まれてもよい。
【００５６】
ユーザと情報のやり取りを行うために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)ならびにユーザがコンピュータに入力を送るために使用できるキーボードおよびポインティングデバイス(たとえば、マウスもしくはトラックボール)を有するコンピュータ上で実装されてもよい。他の種類のデバイスも、ユーザと情報をやり取りするために使用されてよく、たとえばユーザに返されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響、話し声、または触覚入力を含む、任意の形態で受け取られてもよい。それに加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受け取ることによって、たとえばウェブページをユーザのクライアントデバイス上のウェブブラウザに、ウェブブラウザから受け取った要求に応答して送信することによってユーザとインタラクティブにやり取りすることができる。
【００５７】
本明細書で説明される主題の実施形態は、バックエンド構成要素を、たとえばデータサーバとして備えるか、またはミドルウェア構成要素、たとえばアプリケーションサーバを備えるか、またはフロントエンド構成要素、たとえばユーザが本明細書で説明される主題の実装をインタラクティブに操作するために使用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを備えるコンピューティングシステムで、または1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せで実装されてもよい。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークによって相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク("LAN")およびワイドエリアネットワーク("WAN")、たとえばインターネットを含む。
【００５８】
コンピューティングシステムは、クライアントおよびサーバを含んでもよい。クライアントおよびサーバは、一般的に互いに隔てられており、典型的には、通信ネットワークを通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント−サーバ関係を有することによって発生する。
【００５９】
本明細書は、多くの実装形態固有の詳細事項を含んでいるが、これらは、請求内容の範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に特有のものであると思われる特徴の説明として解釈すべきである。別々の実施形態の背景状況において本明細書で説明されるいくつかの特徴も、単一の実施形態において組み合わせて実装されてもよい。逆に、単一の実施形態の背景状況において説明されるさまざまな特徴は、複数の実施形態で別々に、または好適な部分的組合せで、実装されることもあってもよい。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除されてもよく、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象としてもよい。
【００６０】
同様に、動作は特定の順序で図面に示されるが、そのような動作は、望ましい結果を達成するために、示される特定の順序でもしくは順番に実行される必要がないことを、またはすべての図示の動作が実行される必要があるとは限らないことを理解されたい。ある状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上述の実施形態においてさまざまなシステム構成要素が分離しているが、すべての実施形態においてそのような分離が必要とされると理解されるべきではなく、また説明されるプログラム構成要素およびシステムは、一般的に単一のソフトウェア製品に一体化されてもよいか、または複数のソフトウェア製品にパッケージングされてもよいことは理解されるであろう。
【００６１】
主題の特定の実施形態が説明される。他の実施形態も、以下の請求項の範囲内に収まる。たとえば、請求項に記載のアクションは、異なる順序で実行することができ、それでも所望の結果が得られる。一例として、付属の図面に示されるプロセスは、所望の結果を得るために、図示される特定の順序、または順番を必ずしも必要としない。いくつかの実装形態において、マルチタスクおよび並列処理が有利な場合もある。他のステップが提示されるか、または説明されるプロセスから、ステップが取り除かれてもよい。したがって、他の実装は、以下の請求項の範囲内にある。
【符号の説明】
【００６２】
100  ニューラルネットワーク
102  第1の畳み込み層
104  第2の畳み込み層
106  LSTM層
108  DNN層
200  プロセス
300  コンピューティングデバイス
302  プロセッサ
304  メモリ
306  ストレージデバイス
308  高速インターフェース
310  高速拡張ポート
312  低速インターフェース
314  低速拡張ポート
316  ディスプレイ
320  標準サーバ
322  ラップトップコンピュータ
324  ラックサーバシステム
350  モバイルコンピューティングデバイス
352  プロセッサ
354  ディスプレイ
356  ディスプレイインターフェース
358  制御インターフェース
360  オーディオコーデック
362  外部インターフェース
364  メモリ
366  通信インターフェース
368  トランシーバ
370  GPS(全地球測位システム)受信機モジュール
372  拡張インターフェース
374  拡張メモリ
380  携帯電話
382  スマートフォン
【図１】
0006530510.tif 000003
【図２】
0006530510.tif 000004
【図３】
0006530510.tif 000005