IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022079397
(43)【公開日】2022-05-26
(54)【発明の名称】音声認識システムおよび方法
(51)【国際特許分類】
   G10L 15/16 20060101AFI20220519BHJP
   G10L 15/00 20130101ALI20220519BHJP
   G10L 15/22 20060101ALI20220519BHJP
【FI】
G10L15/16
G10L15/00 200B
G10L15/22 300Z
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021042256
(22)【出願日】2021-03-16
(31)【優先権主張番号】2018008.9
(32)【優先日】2020-11-16
(33)【優先権主張国・地域又は機関】GB
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ブルートゥース
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】モハン リー
(72)【発明者】
【氏名】チューダー-カタリン ゾリラ
(72)【発明者】
【氏名】ラマ サナンド ドディパトラ
(57)【要約】      (修正有)
【課題】音声認識における待ち時間を短くし特にオンライン音声認識の精度を向上させる音声認識方法及びシステム並びにそのトレーニング方法を提供する。
【解決手段】音声認識のためのコンピュータ実現方法であって、音声オーディオのフレームを受信することと、音声オーディオのフレームをエンコードすることと、音声オーディオのフレームに基づいて、停止確率を計算することと、停止確率を第1のアキュムレータ変数に追加することと、第1の閾値を超えるまたは達する第1のアキュムレータ変数に応答して、停止確率及び音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算することと、トークンを導出するために文脈ベクトルを使用して、デコードするステップを行うことと、導出されたトークンに基づいて、機能を実行することと、を備える。実行される機能は、テキスト出力またはコマンド性能のうちの少なくとも1つを備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
音声認識のためのコンピュータ実現方法であって、
音声オーディオのフレームを受信することと、
前記音声オーディオのフレームをエンコードすることと、
前記音声オーディオのフレームをエンコードすることに基づいて、停止確率を計算することと、
前記停止確率を第1のアキュムレータ変数に追加することと、
第1の閾値を超えるまたは達する前記第1のアキュムレータ変数に応答して、前記停止確率および前記音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算することと、
トークンを導出するために前記文脈ベクトルを使用して、デコードするステップを行うことと、
前記導出されたトークンに基づいて、機能を実行することとを備え、
前記実行される機能は、テキスト出力またはコマンド性能のうちの少なくとも1つを備える、方法。
【請求項2】
前記文脈ベクトルは、先行する1つ以上の音声オーディオのフレームに対するそれぞれのエンコードすることおよび停止確率にさらに基づく、請求項1に記載の方法。
【請求項3】
第2の閾値を超えるまたは達する前記先行する1つ以上の音声オーディオのフレームのカウントに応答して、前記第1のアキュムレータ変数が前記第1の閾値を超えるまたは達するより前に前記文脈ベクトルの計算をトリガすることを備える、請求項2に記載の方法。
【請求項4】
デコーダニューラルネットワークの自己注意デコーダレイヤを使用して、前記停止確率および前記文脈ベクトルが計算される、請求項1乃至3のうちのいずれか1項に記載の方法。
【請求項5】
前記自己注意デコーダレイヤは、複数の注意ヘッドを備える複数ヘッド自己注意デコーダレイヤであり、前記停止確率および前記文脈ベクトルは、前記複数の注意ヘッドのうちの注意ヘッドを使用して計算される、請求項4に記載の方法。
【請求項6】
前記複数の注意ヘッドのうちの他の注意ヘッドのそれぞれに対して、それぞれの停止確率が計算される、請求項5に記載の方法。
【請求項7】
前記複数の注意ヘッドのうちの他の注意ヘッドのそれぞれに対して、
前記それぞれの停止確率を前記第1のアキュムレータ変数に追加することと、
前記第1の閾値を超えるまたは達する前記第1のアキュムレータ変数に応答して、前記停止確率および前記音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算することと、を備える、請求項6に記載の方法。
【請求項8】
前記他の注意ヘッドのそれぞれに対してそれぞれのアキュムレータ変数があり、前記複数の注意ヘッドのうちの他の注意ヘッドのそれぞれに対して、
前記それぞれの停止確率を前記それぞれのアキュムレータ変数に追加することと、
前記第1の閾値を超えるまたは達する前記それぞれのアキュムレータ変数に応答して、前記それぞれの停止確率をおよび前記音声オーディオのフレームのエンコードすることに基づいて、文脈ベクトルを計算することを備える、請求項6に記載の方法。
【請求項9】
前記デコードするステップを行うことは、前記第1の閾値を超えるまたは達する前記複数の注意ヘッドのうちの最後の1つ以上の注意ヘッドに対するアキュムレータ変数への応答であり、前記1つ以上の注意ヘッドの残りは、前記第1の閾値を以前に超えている、請求項8に記載の方法。
【請求項10】
前記複数の注意ヘッドのそれぞれに対する前記文脈ベクトルに基づいて、組み合わされた文脈ベクトルを計算することを備える、請求項7乃至9のうちのいずれか1項に記載の方法。
【請求項11】
前記デコーダニューラルネットワークは、1つ以上のさらなる自己注意デコーダレイヤを備え、前記1つ以上のさらなる自己注意デコーダレイヤのそれぞれを使用して、それぞれ組み合わされた文脈ベクトルを計算することを備える、請求項10に記載の方法。
【請求項12】
前記停止確率の計算は、先行する文脈ベクトルにさらに基づく、請求項1乃至11のうちのいずれか1項に記載の方法。
【請求項13】
音声オーディオのチャンクをエンコードすることは、1つ以上の自己注意エンコーダレイヤを備えるエンコーダニューラルネットワークによる、請求項1乃至12のうちのいずれか1項に記載の方法。
【請求項14】
前記文脈ベクトルは、前記停止確率をトリミングすることなく計算される、請求項1乃至13のうちのいずれか1項に記載の方法。
【請求項15】
音声認識システムをトレーニングするためのコンピュータ実現方法であって、
複数の音声オーディオのフレームとトークンのトレーニングシーケンスとを備える、トレーニングセットの各トレーニングペアに対して、
前記複数の音声オーディオのフレームに基づいて、トークンのシーケンスを導出することと、
前記導出されたトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、第1の複数の重みを更新することとを備え、
前記導出することは、
アキュムレータ変数を初期化することと、
前記アキュムレータ変数が閾値を超えるまたは達するまで、前記複数の音声オーディオのフレームのそれぞれに対して、
デコーダニューラルネットワークの自己注意デコーダレイヤによって、それぞれの音声オーディオのフレームをエンコードすることに基づいて、停止確率を計算することと、ここで、前記自己注意デコーダレイヤは、より多くの複数の重みのうちの第1の複数の重みを備える、
前記停止確率を前記アキュムレータ変数に追加することと、
前記閾値を超えるまたは達する前記アキュムレータ変数に応答して、前記計算された停止確率と前記複数の音声オーディオのフレームのうちのそれぞれのフレームをエンコードすることとに基づいて、文脈ベクトルを計算することと、
前記トークンのシーケンスのうちのトークンを導出するように前記文脈ベクトルを使用してデコードするステップを行うこととを備える、方法。
【請求項16】
前記文脈ベクトルは、前記停止確率をトリミングすることなく計算される、請求項15記載の方法。
【請求項17】
エンコーダニューラルネットワークによって、前記複数の音声オーディオのフレームのうちのそれぞれのフレームをエンコードすることと、ここで、前記エンコーダニューラルネットワークは、前記より多くの複数の重みのうちの第2の複数の重みを備える、
前記導出したトークンのシーケンスと前記損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、前記第2の複数の重みを更新することとを備える、請求項15に記載の方法。
【請求項18】
前記自己注意デコーダレイヤは、複数の注意ヘッドを備える複数ヘッド自己注意デコーダレイヤであり、前記停止確率と前記文脈ベクトルは、前記複数の注意ヘッドのうちの注意ヘッドを使用して計算される、請求項16または17に記載の方法。
【請求項19】
オプション的に非一時的コンピュータ読取可能媒体上に記憶されているコンピュータプログラムであって、前記プログラムがコンピュータによって実行されるとき、前記コンピュータに、請求項1乃至18のうちのいずれか1つの方法を実行させる、コンピュータプログラム。
【請求項20】
音声認識を行うシステムであって、前記システムは1つ以上のプロセッサと1つ以上のメモリとを備え、
前記1つ以上のプロセッサは、
音声オーディオのフレームを受信し、
前記音声オーディオのフレームをエンコードし、
前記音声オーディオのフレームをエンコードすることに基づいて、停止確率を計算し、
前記停止確率を第1のアキュムレータ変数に追加し、
第1の閾値を超えるまたは達する前記第1のアキュムレータ変数に応答して、前記停止確率および前記音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算し、
トークンを導出するために前記文脈ベクトルを使用して、デコードするステップを行い、
前記導出されたトークンに基づいて、機能を実行するように構成され、
前記実行される機能は、テキスト出力またはコマンド性能のうちの少なくとも1つを備える、システム。

【発明の詳細な説明】
【技術分野】
【0001】
ここで説明する実施形態は、音声認識方法およびシステム、ならびにそのトレーニングのための方法である。
【背景技術】
【0002】
音声認識方法およびシステムは、音声オーディオを受信し、このような音声オーディオの内容を、例えば、このような音声オーディオのテキスト内容を、認識する。以前の音声認識システムは、ハイブリッドシステムを含んでおり、音声オーディオの内容を決定する、例えば音声をデコードするために、音響モデル(AM)、発音辞書、言語モデル(LM)を含むことができる。以前のハイブリッドシステムは、隠れマルコフモデル(HMM)または、音響モデルおよび/もしくは言語モデルのための類似の統計方法を利用していた。後のハイブリッドシステムは、音響モデルおよび/または言語モデルのうちの少なくとも1つに対するニューラルネットワークを利用する。これらのシステムは、深層音声認識システムと呼ばれてもよい。
【0003】
エンドツーエンドアーキテクチャを有する音声認識システムも導入されている。これらのシステムにおいて、単一のニューラルネットワークが使用され、音響モデル、発音辞書、および言語モデルは暗黙的に統合されるようにみなされることがある。単一のニューラルネットワークは、回帰型ニューラルネットワークであってもよい。より最近では、音声認識システムのために、トランスフォーマーモデルが使用されている。トランスフォーマーモデルは、自己注意機構を使用して、音声認識を行ってもよく、これにより、これらの距離にかかわらず依存状態がキャプチャされる。トランスフォーマーモデルは、エンコーダ-デコーダフレームワークを用いてもよい。
【図面の簡単な説明】
【0004】
図1A図1Aは、例示的な実施形態にしたがうボイスアシスタントシステムの実例である。
図1B図1Bは、例示的な実施形態にしたがう音声書き起こしシステムの実例である。
図1C図1Cは、例示的な実施形態にしたがってボイスアシスタンスを行う方法のフロー図である。
図1D図1Dは、例示的な実施形態にしたがって音声書き起こしを行う方法のフロー図である。
図2図2は、例示的な実施形態にしたがう音声認識の方法のフロー図である。
図3A図3Aは、例示的な実施形態にしたがって音声認識をデコードする方法の第1の変形のフロー図である。
図3B図3Bは、例示的な実施形態にしたがって音声認識をデコードする方法の第2の変形のフロー図である。
図4A図4Aは、例示的な実施形態にしたがって音声認識をトレーニングする方法のフロー図である。
図4B図4Bは、例示的な実施形態にしたがって音声認識をトレーニングする方法の第1の変形のフロー図である。
図4C図4Cは、例示的な実施形態にしたがって音声認識をトレーニングする方法の第2の変形のフロー図である。
図5図5は、例示的な実施形態にしたがって音声認識を行うシステムの概略的なブロック図である。
図6図6は、例示的な実施形態にしたがう音声オーディオ事前処理方法である。
図7図7は、コンピューティングハードウェアの概略ダイヤグラムであり、それを使用して、例示的な実施形態が実現されてもよい。
図8A図8Aは、例示的な実施形態にしたがう第1のDACSに基づくトランスフォーマーASRシステムにおけるデコードするプロセスにおいて生成される停止確率の図である。
図8B図8Bは、例示的な実施形態にしたがう第1のDACSに基づくトランスフォーマーASRシステムにおけるデコードするプロセスにおいて生成される停止確率の図である。
図9A図9Aは、例示的な実施形態にしたがうHS-DACSに基づくトランスフォーマーASRシステムにおけるデコードするプロセスにおいて生成される停止確率の図である。
図9B図9Bは、例示的な実施形態にしたがうHS-DACSに基づくトランスフォーマーASRシステムにおけるデコードするプロセスにおいて生成される停止確率の図である。
図10A図10Aは、例示的な実施形態にしたがう第2のDACSに基づくトランスフォーマーASRシステムにおけるデコードするプロセスにおいて生成される停止確率の図である。
図10B図10Bは、例示的な実施形態にしたがう第2のDACSに基づくトランスフォーマーASRシステムにおけるデコードするプロセスにおいて生成される停止確率の図である。
【発明を実施するための形態】
【0005】
第1の実施形態において、音声認識のためのコンピュータ実現方法が提供される。方法は、音声オーディオのフレームを受信することと、音声オーディオのフレームをエンコードすることと、音声オーディオのフレームをエンコードすることに基づいて、停止確率を計算することと、停止確率を第1のアキュムレータ変数に追加することと、第1の閾値を超えるまたは達する第1のアキュムレータ変数に応答して、停止確率および音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算することと、トークンを導出するために文脈ベクトルを使用して、デコードするステップを行うことと、導出されたトークンに基づいて、機能を実行することとを備えている。実行される機能は、テキスト出力またはコマンド性能のうちの少なくとも1つを備えている。
【0006】
説明する方法は、既存の最新式の音声認識方法と比較して、待ち時間を短くし、品質を、例えば、音声認識の、特にオンライン音声認識の精度を、向上させる。オンライン音声認識方法は、オーディオのフレームが受信されると音声認識が行われる方法であり、例えば、音声認識方法は、方法の性能が開始するより前に、発言のエンティティへアクセスしない。したがって、オンライン音声認識方法は、例えば、録音されなければならないオーディオよりもむしろマイクロフォンからの生のオーディオの受信に応答して、音声認識を行い、機能を実行する、例えば、テキストを出力またはコマンドを実行することができ、その後、オフライン音声認識方法のケースのように、音声認識は行われる。
【0007】
文脈ベクトルは、先行する1つ以上の音声オーディオのフレームに対するそれぞれのエンコードすることおよび停止確率にさらに基づいてもよい。
【0008】
第2の閾値を超えるまたは達する先行する1つ以上の音声オーディオのフレームのカウントに応答して、第1のアキュムレータ変数が第1の閾値を超えるまたは達するより前に文脈ベクトルの計算はトリガされてもよい。
【0009】
文脈ベクトルの計算をトリガするための第2の閾値の使用は、音声認識方法の待ち時間に関する上界を早期に提供し、例えば、デコードする際の待ち時間は、第2の閾値と等しい最大フレーム数に限定される。
【0010】
デコーダニューラルネットワークの自己注意デコーダレイヤを使用して、停止確率および文脈ベクトルが計算されてもよい。
【0011】
自己注意デコーダレイヤは、複数の注意ヘッドを備えるマルチヘッド自己注意デコーダレイヤであってもよい。停止確率および文脈ベクトルは、複数の注意ヘッドのうちの注意ヘッドを使用して計算されてもよい。
【0012】
複数の注意ヘッドのうちの他の注意ヘッドのそれぞれに対して、それぞれの停止確率が計算されてもよい。
【0013】
複数の注意ヘッドのうちの他の注意ヘッドのそれぞれに対して、それぞれの停止確率を第1のアキュムレータ変数に追加してもよい。第1の閾値を超えるまたは達する第1のアキュムレータ変数に応答して、停止確率および音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算してもよい。
【0014】
他の注意ヘッドのそれぞれに対してそれぞれのアキュムレータ変数があってもよく、複数の注意ヘッドのうちの他の注意ヘッドのそれぞれに対して、それぞれの停止確率をそれぞれのアキュムレータ変数に追加してもよい。第1の閾値を超えるまたは達するそれぞれのアキュムレータ変数に応答して、それぞれの停止確率および音声オーディオのフレームのエンコードすることに基づいて、文脈ベクトルを計算してもよい。
【0015】
第1の閾値を超えるまたは達する複数の注意ヘッドのうちの最後の1つ以上の注意ヘッドに応答して、デコードするステップを行ってもよい。1つ以上の注意ヘッドの残りは、第1の閾値を以前に超えていてもよく、または達していてもよい。
【0016】
複数の注意ヘッドのそれぞれに対する文脈ベクトルに基づいて、組み合わされた文脈ベクトルを計算してもよい。
【0017】
デコーダニューラルネットワークは、1つ以上のさらなる自己注意デコーダレイヤを備えていてもよい。1つ以上のさらなる自己注意デコーダレイヤのそれぞれを使用して、それぞれ組み合わされた文脈ベクトルを計算してもよい。
【0018】
停止確率の計算は、先行する文脈ベクトルにさらに基づいてもよい。
【0019】
音声オーディオのチャンクをエンコードすることは、1つ以上の自己注意エンコーダレイヤを備えるエンコーダニューラルネットワークによるものであってもよい。
【0020】
文脈ベクトルは、停止確率をトリミングすることなく計算されてもよい。
【0021】
停止確率をトリミングしないことは、アキュムレータ変数が既に第1の閾値に近づいている停止確率の最後の値が小さくないというようなケースでは、エンコードすることの最後への注意は失われないという利点を有する。
【0022】
第2の実施形態にしたがうと、音声認識システムをトレーニングするためのコンピュータ実現方法が提供される。方法は、複数の音声オーディオのフレームとトレーニングトークンのシーケンスとを備える、トレーニングセットの各トレーニングペアに対して、トークンのシーケンスを導出することと、導出されたトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、より多くの複数の重みのうちの第1の複数の重みを更新することとを備え、導出することは、アキュムレータ変数を初期化することと、アキュムレータ変数が閾値を超えるまたは達するまで、複数の音声オーディオのフレームのそれぞれに対して、デコーダニューラルネットワークの自己注意デコーダレイヤによって、それぞれの音声オーディオのフレームをエンコードすることに基づいて、停止確率を計算することと、ここで、自己注意デコーダレイヤは、より多くの複数の重みのうちの第1の複数の重みを備え、停止確率をアキュムレータ変数に追加することと、閾値を超えるまたは達するアキュムレータ変数に応答して、計算された停止確率と複数の音声オーディオのフレームのうちのそれぞれのフレームをエンコードすることと、に基づいて、文脈ベクトルを計算することと、トークンのシーケンスのうちのトークンを導出するように文脈ベクトルを使用してデコードするステップを行うこととを備える。
【0023】
文脈ベクトルは、停止確率をトリミングすることなく計算されてもよい。これは、例えば、停止確率行列において、停止確率の値の改訂が行われないことから、音声認識システムのトレーニングを加速できる。
【0024】
複数の音声オーディオのフレームのうちのそれぞれのフレームをエンコードすることは、エンコーダニューラルネットワークによってであってもよい。エンコーダニューラルネットワークは、より多くの複数の重みのうちの第2の複数の重みを含んでいる。導出したトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、第2の複数の重みを更新してもよい。
【0025】
自己注意デコーダレイヤは、マルチヘッド自己注意デコーダレイヤであってもよい。マルチヘッド自己注意デコーダレイヤは、複数の注意ヘッドを含んでいてもよい。停止確率と文脈ベクトルは、複数の注意ヘッドのうちの注意ヘッドを使用して計算されてもよい。
【0026】
第3の実施形態にしたがうと、オプション的に非一時的コンピュータ読取可能媒体上に記憶されているコンピュータプログラムが提供され、プログラムがコンピュータによって実行されるとき、コンピュータに、第1の実施形態または第2の実施形態にしたがう方法を実行させる。
【0027】
第4の実施形態にしたがうと、1つ以上のプロセッサを備える装置が提供される。装置は、第1の実施形態または第2の実施形態にしたがう方法を行うように構成されている。
【0028】
第5の実施形態にしたがうと、1つ以上のプロセッサと1つ以上のメモリとを備える音声認識を行うシステムが提供される。1つ以上のプロセッサは、
音声オーディオのフレームを受信し、音声オーディオのフレームをエンコードし、音声オーディオのフレームをエンコードすることに基づいて、停止確率を計算し、停止確率を第1のアキュムレータ変数に追加し、第1の閾値を超えるまたは達する第1のアキュムレータ変数に応答して、停止確率および音声オーディオのフレームをエンコードすることに基づいて、文脈ベクトルを計算し、トークンを導出するために文脈ベクトルを使用して、デコードするステップを行い、導出されたトークンに基づいて、機能を実行するように構成され、実行される機能は、テキスト出力またはコマンド性能のうちの少なくとも1つを備える。
【0029】
例示的な文脈
実例の目的で、対象のイノベーションを提供できる例示的な文脈を図1A-1Dに関連して説明する。しかしながら、これらは実例であり、対象のイノベーションは任意の適切な文脈で、例えば、音声認識が適用可能な任意の文脈で、適用されてもよいことを理解すべきである。
【0030】
ボイスアシスタントシステム
図1Aは、例示的な実施形態にしたがう、ボイスアシスタントシステム120の実例である。
【0031】
ユーザ110は、コマンド112、114、116をボイスアシスタントシステム120に話してもよい。コマンド112、114、116を話すユーザ110に応答して、ボイスアシスタントシステムは、コマンドを実行し、これは、可聴式の応答を出力することを含んでいてもよい。
【0032】
話されたコマンド112、114、116を受信するために、ボイスアシスタントシステム120は、マイクロフォンを含む、またはマイクロフォンに接続されている。可聴式の応答を出力するために、ボイスアシスタントシステム120は、スピーカーを含む、またはスピーカーに接続されている。ボイスアシスタントシステム120は、機能性を、例えば、話されたコマンドを認識し、コマンドを実行し、または、実行されることになるコマンドをもたらし、および/もしくは、出力されることになる適切な可聴式応答をもたらすことに適した、ソフトウエアおよび/またハードウェアを含んでいてもよい。代替的にまたは追加的に、ボイスアシスタントシステム120は、ネットワークを介して、例えば、インターネットおよび/またはローカルエリアネットワークを介して、話されたコマンドを認識し、行われることになるコマンドをもたらすことに適した1つ以上の他のシステムに、例えば、クラウドコンピューティングシステムおよび/またはローカルサーバに接続されてもよい。機能性の第1の部分は、ボイスアシスタントシステム120のハードウェアおよび/またはソフトウエアによって行われてもよく、機能性の第2の部分は、1つ以上の他のシステムによって行われてもよい。いくつかの例では、機能性、またその多くの部分は、これらの1つ以上の他のシステムがネットワークを通してアクセス可能である1つ以上の他のシステムによって提供されてもよいが、例えば、ネットワークからのボイスアシスタントシステム120の切断、および/または1つ以上の他のシステムの故障により、これらがそうでないとき、機能性は、ボイスアシスタントシステム120によって提供されてもよい。これらの例では、ボイスアシスタントシステム120は、1つ以上の他のシステムへの接続なしで依然として動作可能である一方で、例えば、より大きな範囲のコマンドを実行することができるように、音声認識の品質を向上させるように、および/または可聴式出力の品質を向上させるように、1つ以上の他のシステムの、より多くの計算リソースおよびデータ利用可能性を活用することができてもよい。
【0033】
例えば、コマンド112において、ユーザ110は、「Xは何?」と尋ねる。このコマンド112は、用語Xの定義を提供するために話されたコマンドとして、ボイスアシスタントシステム120によって解釈されてもよい。コマンドに応答して、ボイスアシスタントシステム120は、用語Xの定義を取得するために、知識源、例えば、ローカルデータベース、リモートデータベース、または別のタイプのローカルもしくはリモートインデックスに問い合わせてもよい。用語Xは、定義を取得できる任意の用語であってもよい。例えば、用語Xは、辞書用語、例えば、名詞、動詞、もしくは形容詞;またはエンティティの名前、例えば、人もしくはビジネスの名前であることがある。知識源から定義を取得できているとき、定義は、文に、例えば「Xは[定義]」の形態の文に、合成されてもよい。文は、その後、ボイスアシスタントシステム120のテキストから音声に変換する機能性を使用して、可聴式出力112に変換され、ボイスアシスタントシステム120中に含まれるまたは接続されるスピーカーを使用して出力されてもよい。
【0034】
別の例では、コマンド114では、ユーザ110は、「ライトをオフにして」と言う。コマンド114は、ボイスアシスタントシステム120によって、1つ以上のライトをオフにするように話されたコマンドとして解釈されてもよい。コマンド114は、文脈依存の方法で、ボイスアシスタントシステム120によって解釈されてもよい。例えば、ボイスアシスタントシステム120は、それが位置付けられている部屋を認識し、特にその部屋のライトをオフにしてもよい。コマンドに応答して、ボイスアシスタントシステム120は、1つ以上のライトをオフにさせてもよく、例えば、1つ以上のスマート電球に発光させないようにしてもよい。ボイスアシスタントシステム120は、例えば、ボイスアシスタントシステムと1つ以上のライトとの間のブルートゥース接続のようなワイヤレス接続を通して、1つ以上のライトと直接相互作用することによって、または、ライトと間接的に相互作用する、例えば、ライトをオフにする1つ以上のメッセージをスマートホームハブまたはクラウドスマートホーム制御サーバに送ることによって、1つ以上のライトをオフにしてもよい。ボイスアシスタントシステム120はまた、可聴式応答124を、例えば、ボイスアシスタントシステム120によってコマンドが聞かれ、理解されているとユーザに確認する「ライトをオフ」をという話し声を生成してもよい。
【0035】
さらなる例として、コマンド116において、ユーザ110は、「音楽を再生して」と言う。コマンド116は、音楽を再生するように話されたコマンドとして、ボイスアシスタントシステム120によって解釈されてもよい。コマンドに応答して、ボイスアシスタントシステム120は、ローカル音楽ファイルまたは音楽ストリーミングサービスのような音楽ソースにアクセスし、音楽ソースから音楽をストリーミング再生し、ボイスアシスタントシステム120中に含まれる、またはそれに接続されるスピーカーから、ストリーミング再生された音楽を出力する。ボイスアシスタントシステム120によって出力される音楽126は、ユーザ110に個人向けにされてもよい。例えば、ボイスアシスタントシステム120は、例えば、ユーザ110の声の特性によってユーザ110を認識してもよく、またはユーザ110に静的に関係付けられてもよく、その後、ユーザ110によって以前に再生された音楽を再生、またはユーザ110に個人向けプレイリストを再生する。
【0036】
音声書き起こしシステム
図1Bは、例示的な実施形態にしたがう音声書き起こしシステムの実例である。
【0037】
ユーザ130は、コンピュータ140に話しかけてもよい。ユーザが話すことに応答して、コンピュータ140は、発話132の内容を表すテキストの出力142を生成する。
【0038】
発話を受信するために、コンピュータ140は、マイクロフォンを含む、またはこれに接続される。コンピュータ140は、音声オーディオの内容を認識し、発話の内容を表すテキストを出力する、例えば、発話の内容を書き起こしするのに適したソフトウエアを含んでいてもよい。代替的にまたは追加的に、コンピュータ140は、ネットワークを介して、例えば、インターネットおよび/またはローカルエリアネットワークを介して、音声オーディオの内容を認識し、発話の内容を表すテキストを出力するのに適した1つ以上の他のシステムに接続されてもよい。機能性の第1の部分は、ハードウェアおよび/またはコンピュータ140のソフトウエアによって実行されてもよく、機能性の第2の部分は、1つ以上の他のシステムによって実行されてもよい。いくつかの例では、機能性、またはその多くの部分は、1つ以上の他のシステムがネットワークを通してアクセス可能である、これらの1つ以上の他のシステムによって提供されてもよいが、これらがそうでないとき、ネットワークからのコンピュータ140の切断および/または1つ以上の他のシステムの故障により、機能性は、コンピュータ140によって提供されてもよい。これらの例では、コンピュータ140は、1つ以上の他のシステムへの接続なく依然として動作可能である一方で、例えば、音声書き起こしの品質を向上させるように、1つ以上の他のシステムの、より多くの計算リソースおよびデータ利用可能性を活用することができてもよい。
【0039】
出力されたテキスト142は、コンピュータ140中に含まれるまたはこれに接続されるディスプレイ上に表示されてもよい。出力されたテキストは、コンピュータ140上で実行する1つ以上のコンピュータプログラム、例えば、ワードプロセッシングコンピュータプログラムまたはウェブブラウザコンピュータプログラムに入力されてもよい。
【0040】
ボイスアシスタンス方法
図1Cは、例示的な実施形態にしたがう、ボイスアシスタンスを行う方法150のフロー図である。オプション的なブロックは、破線で示されている。例示的な方法150は、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。1つ以上のコンピューティングデバイスは、ボイスアシスタントシステム、例えば、ボイスアシスタントシステム120であってもよく、もしくはこれを含んでいてもよく、および/またはデスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、スマートテレビ、もしくはゲームコンソールのような多目的コンピューティングデバイスに統合されてもよい。
【0041】
ステップ152において、音声オーディオは、マイクロフォン、例えば、ボイスアシスタントシステムのマイクロフォンまたは多目的コンピューティングデバイスに統合または接続されたマイクロフォンを使用して受信される。音声オーディオが受信されると、音声オーディオは、メモリ、例えば、ボイスアシスタントシステムまたは多目的コンピューティングデバイスのメモリ中にバッファされてもよい。
【0042】
ステップ154において、音声オーディオの内容が認識される。音声オーディオの内容は、ここで説明する方法、例えば、図2の方法200、図3Aの方法300A、または図3Bの方法300Bを使用して認識されてもよい。このような方法の使用の前に、オーディオは、例えば図6の方法600またはその態様を使用して、事前処理されてもよい。認識された音声オーディオの内容は、テキスト、統語論的内容、および/または意味論的内容であってもよい。認識された内容は、1つ以上のベクトルを使用して表されてもよい。加えて、例えば、さらなる処理の後に、または代替的に、認識された内容は、1つ以上のトークンを使用して表されてもよい。認識された内容がテキストである場合、各トークンおよび/またはベクトルは、文字、音素、形態素もしくは他の形態学的ユニット、単語部分、または単語を表してもよい。
【0043】
ステップ156において、音声オーディオの内容に基づいて、コマンドを実行する。実行されるコマンドは、図1Aに関連して説明したコマンド112、114、116のうちのいずれかであってもよいが、これらに限定されず、説明する方法で実行されてもよい。実行されることになるコマンドは、認識された内容を1つ以上のコマンドフレーズまたはコマンドパターンと一致させることによって決定されてもよい。一致は、おおよそであってもよい。例えば、ライトをオフにするコマンド114について、コマンドは、単語「ライト」および「オフ」、例えば「ライトをオフにする」または「ライトをオフ」を含むフレーズに一致できる。コマンド114はまた、「ライトをクローズする」または「ランプオフ」のような「ライトをオフにする」におおよそ意味論的に対応するフレーズに一致できる。
【0044】
ステップ158において、可聴式応答は、例えば、ボイスアシスタントシステムもしくは多目的コンピューティングデバイス中に含まれるまたは接続されるスピーカーを使用して、音声オーディオの内容に基づいて出力される。可聴式応答は、図1Aに関連して説明した可聴式応答122、124、126のうちのいずれかであってもよく、説明した同じまたは類似の方法で生成されてもよい。可聴式応答は、話された文、単語もしくはフレーズ;音楽、または別の音、例えば、サウンドエフェクトもしくはアラームであってもよい。可聴式応答は、音声オーディオそれ自体の内容に基づいてもよく、および/または音声オーディオの内容に間接的に基づいてもよく、例えば、実行されるコマンドに基づいてもよく、それは、それ自体が音声オーディオの内容に基づく。
【0045】
可聴式応答が、話された文、フレーズ、または単語である場合、可聴式応答を出力することは、文、フレーズ、または単語を表すテキストのベクトルまたはトークンを、文、フレーズ、または単語に対応する話されたオーディオに変換するために、テキストから音声に変換する機能性を使用することを含んでいてもよい。文またはフレーズの表現は、それ自体におけるおよび/または実行されるコマンドにおける音声オーディオの内容に基づいて、合成されてもよい。例えば、コマンドが、「Xは何?」の形態の定義検索コマンドである場合、音声オーディオの内容はXを含み、コマンドは知識源から検索されることになる定義、[def]をもたらす。Xが音声オーディオの内容からであり、[def]は実行されるコマンドによって知識源から検索された内容である、「Xは[def]」の形態の文が合成される。
【0046】
別の例として、コマンドが、1つ以上のスマート電球にオフにさせるライトをオフにするコマンドのような、スマートデバイスに機能を実行させるコマンドである場合、可聴式応答は、機能が実行されていることを示すサウンドエフェクトであってもよい。
【0047】
図中で破線によって示されるように、可聴式応答を生成するステップは、オプション的であり、いくつかのコマンドおよび/またはいくつかの実施では生じなくてもよい。例えば、スマートデバイスに機能を実行させるコマンドのケースにおいて、機能は、出力される可聴式応答なく実行されてもよい。コマンドは成功裏に完了した、例えば、ライトはオフにされたという他のフィードバックをユーザは有していることから、可聴式応答は出力されなくてもよい。
【0048】
音声書き起こし方法
図1Dは、いくつかの例示的な実施形態にしたがう、音声書き起こしを行う方法160のフロー図である。例示的な方法160は、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。1つ以上のコンピューティングデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、スマートテレビ、またはゲームコンソールのようなコンピューティングデバイスであってもよい。
【0049】
ステップ162において、音声オーディオは、マイクロフォン、例えば、コンピューティングデバイスに統合されたまたは接続されたマイクロフォンを使用して受信される。音声オーディオが受信されると、音声オーディオは、メモリ、例えば、コンピューティングデバイスのメモリ中にバッファされてもよい。
【0050】
ステップ164において、音声オーディオの内容が認識される。音声オーディオの内容は、ここで説明する方法、例えば、図2の方法200、図3Aの方法300A、または図3Bの方法300Bを使用して認識される。このような方法を使用する前に、オーディオは、図6の方法600またはその態様を使用して、事前処理されてもよい。認識された音声オーディオの内容は、テキスト的内容、統語論的内容、および/または意味論的内容であってもよい。認識された内容は、1つ以上のベクトルを使用して表されてもよい。加えて、例えば、さらなる処理の後に、または代替的に、認識された内容は、1つ以上のトークンを使用して表されてもよい。認識された内容がテキストである場合、各トークンおよび/またはベクトルは、文字、音素、形態素もしくは他の形態学的ユニット、単語部分、または単語を表してもよい。
【0051】
ステップ166において、音声オーディオの内容に基づいて、テキストは出力される。認識された音声オーディオの内容がテキスト的内容である場合、出力されるテキストは、テキスト的内容であってもよく、または認識されたテキスト的文脈から導出されてもよい。例えば、テキスト的内容は、1つ以上のトークンを使用して表されてもよく、出力されるテキストは、トークンを、文字、音素、形態素もしくは他の形態学的ユニット、単語部分、または単語に変換することによって導出されてもよい。認識された音声オーディオの内容が意味論的内容である、または意味論的内容を含む場合、意味論的内容に対応する意味を有する出力テキストが導出されてもよい。認識される音声オーディオの内容が統語論的内容である、または統語論的内容を含む場合、統語論的内容に対応する構造、例えば文法構造を有する出力テキストが導出されてもよい。
【0052】
出力されたテキストは表示されてもよい。出力されたテキストは、ワードプロセッサまたはウェブブラウザのような、1つ以上のコンピュータプログラムに入力されてもよい。出力されたテキストに関してさらなる処理を行ってもよい。例えば、出力されたテキストにおけるスペルおよび文法の誤りは、ハイライトされるか修正されてもよい。別の例では、出力されたテキストは、例えば、機械翻訳システムを使用して翻訳されてもよい。
【0053】
音声認識方法
図2は、いくつかの例示的な実施形態にしたがう、音声認識を行う方法200のフロー図である。例示的な方法200は、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0054】
ステップ210において、音声オーディオのフレームが受信される。音声オーディオ、例えば、ユーザの声のオーディオは、音キャプチャ装置、例えばマイクロフォンを使用して受信されてもよい。音声オーディオは、音声オーディオから音声オーディオのフレームを抽出するために事前処理されてもよい。音声オーディオの各フレームは、例えば、図6に関連して説明する方法600またはその態様を使用して、受信されるより前に事前処理されてもよい。音声オーディオのフレームは、複数の音声オーディオのフレームの一部として受信されてもよい。音声オーディオのフレームはまた、音声オーディオのウィンドウとして呼ばれるかもしれない。音声オーディオのウィンドウは、25msの音声オーディオのウィンドウであってもよい。ウィンドウ。複数の音声オーディオのフレームは、音声オーディオのチャンクと呼ばれてもよい。
【0055】
ステップ220において、音声オーディオのフレームがエンコードされる。音声オーディオのフレームは、エンコーダニューラルネットワーク、例えば、自己注意エンコーダニューラルネットワーク、および/または別のタイプの機械学習エンコーダ、例えば、決定木エンコーダまたはガウス過程エンコーダのようなカーネルメソッドエンコーダを使用して、エンコードされてもよい。代替的にまたは追加的に、音声オーディオのフレームは、プログラムされたエンコーダおよび/またはエンコードする方法を使用してエンコードされてもよい。例えば、音声オーディオのフレームは、高速フーリエ変換アルゴリズムのようなアルゴリズムを使用して、エンコードされてもよい。
【0056】
特に、音声オーディオのフレームは、例えば、音声オーディオのチャンクの一部のような、複数の音声オーディオのフレームの一部としてエンコードされてもよい。複数の音声オーディオのフレームのそれぞれのフレームは、同時にエンコードされてもよく、例えば、音声オーディオのチャンクのフレームのそれぞれのフレームは、同時にエンコードされてもよい。音声オーディオのチャンクは、図5に関連して説明する自己注意エンコーダ510を使用してエンコードされてもよい。
【0057】
ステップ230において、音声オーディオのフレームをエンコードすることに基づいて、停止確率が計算される。停止確率は、エネルギー関数を使用して計算できる。エネルギー関数は、エネルギーを計算するために使用できる。エネルギー関数の例は、単調注意エネルギーを計算するための単調注意エネルギー関数である。単調注意エネルギーは、以下のように計算できる:
【数1】
ここで、ei,jは、音声オーディオのフレームに対応するエンコードするタイムステップjのための、現在の出力ステップiに対する単調注意エネルギーである。qi-1は、先行する文脈ベクトル、例えば、先行する出力ステップにおいて生成される文脈ベクトルである。先行する文脈ベクトルqi-1は、デコーダ状態として呼ばれてもよい。kjは、音声オーディオのフレームをエンコードすることである。dkは、次元、例えば、音声オーディオのフレームをエンコードする要素の数である。
【0058】
停止確率は、計算されたエネルギーのスケール変更であってもよく、例えば、計算されたエネルギーの0と1との間の値へのスケール変更であってもよい。スケール変更は、スケール変更関数、例えば、ロジスティック関数のようなシグモイド関数を使用して行われてもよい。例えば、停止確率pi,jは、単調注意エネルギーのシグモイドであってもよい:
【数2】
【0059】
ステップ240において、停止確率は、アキュムレータ変数に追加されてもよい。アキュムレータ変数は、以前に初期化されていてもよい。例えば、アキュムレータ変数は、ゼロまたは他の初期値に初期化されていてもよい。1つ以上の先行するオーディオのフレームに対して計算される停止確率は、以前にアキュムレータ変数に追加されていてもよい。アキュムレータ変数は、停止確率と先行する1つ以上の音声オーディオのフレームに対する停止確率との合計であってもよい。
【0060】
ステップ250において、アキュムレータ変数が閾値より大きいかを決定が決定される。閾値は、任意の適切な値であってもよい。例えば、閾値は1であってもよく、または別の正の整数、Hであってもよい。
【0061】
アキュムレータ変数が閾値より大きくない場合、その後、方法は、方法200の以前のステップに戻る。音声オーディオの次のフレームが既に受信されている、またはエンコードされている、例えば、音声オーディオの次のフレームが同じチャンクの一部としてエンコードされた場合、方法はステップ230に戻る。例えば、音声オーディオの次のフレームが音声オーディオの次のチャンクにあるため、音声オーディオのフレームを受信していない場合、方法はステップ210に戻る。
【0062】
アキュムレータ変数が閾値よりも大きい場合、方法はステップ260に進む。
【0063】
ステップ260において、文脈ベクトルは、停止確率と音声オーディオのフレームをエンコードすることとに基づいて計算される。現在のステップiに対する文脈ベクトル、ci、は、以下のように計算される:
【数3】
ここで、pi,jは、現在のデコードするステップiおよびエンコードするタイムステップjに対する停止確率であり、kjは、j番目にエンコードするタイムステップに対する音声オーディオのフレームをエンコードすることである。Tは、現在のエンコードするタイムステップまでのエンコードするタイムステップの数である。kTは、ステップ230においてエンコードされた音声オーディオのフレームをエンコードすることであり、pi,Tはステップ240において計算された停止確率である。停止確率は、停止確率をトリミングすることなく文脈ベクトルを計算するために使用され、例えば、停止確率のうちの1つ以上は修正されず、停止確率が合計して第1の閾値、例えば1になる。停止確率をトリミングしないことは、アキュムレータ変数が第1の閾値、例えば1に既に近づいている、pi,tiの値が小さくないようなケースで、エンコードすることの最後への注意が失われないという点で有利である。
【0064】
ステップ270において、デコードするステップは、トークンを導出するために文脈ベクトルを使用して実行される。以下の図に関連して説明するように、デコードするステップを行うことは、さらなる文脈ベクトルを計算し、組み合わされた文脈ベクトルを計算することを含んでいてもよい。デコードするステップを行うことはまた、1つ以上の線形レイヤを使用して、文脈ベクトルまたは組み合わされた文脈ベクトルを処理することを含んでいてもよい。デコードするステップを行うことはまた、文脈ベクトル、組み合わされた文脈ベクトルを処理することを含み、または1つ以上の線形レイヤを分類レイヤで出力してもよい。分類レイヤの出力は、複数の確率またはスコアであってもよく、例えば、それぞれの確率またはスコアが所定のトークンが正しいという可能性を示す、確率またはスコアのベクトルであってもよい。分類レイヤは、交差エントロピーレイヤ、ソフトマックスレイヤ、またはこれらの変形もしくは均等物であってもよい。導出されたトークンは、最も高い対応する確率もしくはスコアを有するトークンであってもよく、または、確率もしくはスコア、例えば、より選択されそうなより高い確率もしくはスコアを有するトークンに基づいて確率論的に選択されてもよい。確率またはスコアは、確率またはスコアを出力する言語モデルも利用するジョイントデコーダとともに使用されてもよく、これは、以前に出力されていたトークンに基づいて各トークンに対する確率またはスコアを出力する。このようなジョイントデコーダは、言語モデル確率またはスコアと分類レイヤ確率またはスコアの両方に基づいて、結合確率またはスコアを計算してもよい。トークンはその後、最も高い組み合わされた確率またはスコアを有するトークンとして導出されてもよく、組み合わされた確率またはスコア、例えば、より選択されそうなより高い組み合わされた確率またはスコアを有するトークンに基づいて確率論的に選択されてもよい。
【0065】
ステップ280において、導出されたトークンに基づいて、機能を実行する。実行される機能は、コマンド性能および/またはテキスト出力のうちの少なくとも1つを含む。コマンド性能の例および実施は、図1Aおよび図1Cに関連して説明される。テキスト出力の例および実施は、図1Bおよび図1Dに関連して説明される。
【0066】
第1のデコードする方法
図3Aは、例示的な実施形態にしたがう音声認識のためのデコードする方法の第1の変形である、方法300Aのフロー図である。例示的な方法300Bは、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェアによって実行される、1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0067】
デコーダニューラルネットワークの各自己注意デコーダレイヤの各自己注意ヘッドについて、以下が行われる。初期化ステップ310Aが行われる。その後、アキュムレータ変数が第1の閾値を超えるもしくは達する、または音声オーディオのフレームのカウントが第2の閾値を超えるもしくは達するまで、複数の音声オーディオのフレームのうちの各音声オーディオのフレームについて、確率計算ステップ320Aおよび蓄積ステップ330Aが行われる。文脈ベクトルが計算される前に停止確率が計算される音声オーディオのフレームのこの数は、適応計算ステップの数、Ni、として呼ばれてもよく、これは、以下のように規定されてもよい。
【数4】
このケースでは、1は、第1の閾値であり、Mは、第2の閾値であり、これは、最大先読みステップとして呼ばれてもよい。これは、文脈ベクトルが計算される前に処理されてもよい音声オーディオのフレームの最大数を規定し、デコードするステップは、アキュムレータ変数が1を超えないケースで行われる。
【0068】
第1の閾値または第2の閾値のうちの1つが超えられる、または達成される後、文脈ベクトル計算ステップ340が実行される。
【0069】
初期化ステップ310Aにおいて、それぞれアキュムレータ変数が初期化される。それぞれのアキュムレータ変数は、ゼロまたは別の初期値に初期化されてもよい。各自己注意ヘッドの自己注意ヘッドのそれぞれに対するそれぞれのアキュムレータ変数は、同じ値、例えば0に初期化されてもよい。
【0070】
確率計算ステップ320Aにおいて、停止確率は、音声オーディオのフレームをエンコードすることに基づいて、計算される。停止確率は、ステップ230に関連して説明した方法で計算されてもよい。
【0071】
さらなるステップ330Aにおいて、停止確率は、それぞれのアキュムレータ変数、すなわち、それぞれの自己注意ヘッドに対するアキュムレータ変数に追加される。
【0072】
文脈ベクトル計算ステップ340Aにおいて、文脈ベクトルは、停止確率とエンコードすることとに基づいて計算される。文脈ベクトルは、ステップ260において説明したのと同じ方法で計算されてもよい。
【0073】
その後、デコーダニューラルネットワークの各自己注意デコーダレイヤについて、組み合わせステップ350Aが行われる。組み合わせステップ350Aにおいて、組み合わされた文脈ベクトルは、自己注意ヘッドのそれぞれに対する文脈ベクトルに基づいて計算される。組み合わせステップ350A、および結果として以下のステップは、自己注意ヘッドのそれぞれに対するアキュムレータ変数が第1の閾値に達した場合、例えば、1つ以上の注意ヘッドの残りが第1の閾値を以前に超えたまたは達していて、複数の注意ヘッドのうちの最後の1つ以上の注意ヘッドが第1の閾値を超えるまたは達するときに、行われてもよい。これが生じない場合、フレームのカウントが第2の閾値に達するとき、組み合わせステップ350Aが生じる。組み合わされた文脈ベクトルは、複数の重みを含む行列、例えば、射影行列と掛け合わせた各自己注意ヘッドに対する文脈ベクトルの連結であってもよい。組み合わされた文脈ベクトルccombinedは、以下の式を使用して計算されてもよい:
【数5】
ここで、headhは、h番目のヘッドに対する文脈ベクトルであり、Hはヘッドの数であり、Woは1つ以上の重みを含む射影行列である。WO ∈Rdm×dmここで、dm=H×dk,ここで、dkは、各文脈ベクトル、例えば要素の数、の次元である。
【0074】
最後に、デコードするステップ360が行われる。複数の自己注意デコーダレイヤがあるケースでは、デコードするステップは、自己注意デコーダレイヤのそれぞれに対する組み合わせステップ350のそれぞれが行われているときに、したがって、各自己注意デコーダレイヤに対する各自己注意ヘッドについてのアキュムレータ変数が超えるもしくは達する、またはフレームのカウントが第2の閾値に達するうちの早い方の後に、行われてもよい。デコードするステップ360において、デコードするステップは、トークンを導出するために、組み合わされた文脈ベクトルのうちの少なくとも1つを使用する。デコードするステップは、組み合わされた文脈ベクトルのうちの少なくとも1つを使用するステップ270に関連して説明した方法でトークンを導出するために行われてもよい。例えば、組み合わされた文脈ベクトルのうちの少なくとも1つは、1つ以上の線形レイヤおよび/または1つ以上の分類レイヤを使用して処理されてもよく、ジョイントデコーダを使用してデコードされてもよい。
【0075】
上述の方法は、デコーダ適応計算ステップ(DACS)として説明されており、トランスフォーマーニューラルネットワークアーキテクチャにおける自動音声認識のために使用されてもよい。上述の式は、行列形式で書き換えられ、以下のように自己注意ヘッドのすべてに一般化されてもよい。
【数6】
P,M ∈ RL×T は、停止確率行列であり、対応する停止マスクである。ここで、Q∈RL×dk および K,V∈RT×dk は行列形態のクエリ、キーおよび値を示す。Q はデコーダ状態、例え以前の文脈ベクトルを表し、K, V はエンコーダ状態と同じであり、式(1)におけるシグモイド関数内の項は、注意エネルギーE∈RL×Tと呼ばれる。式7において、累積合計関数
【数7】
および右シフト演算子 ShiftRight(x) = [0,x1,x2,...,x|x|-1] は両方Pの行に適用される。
【0076】
方法はまた、以下のような擬似コードとして説明される:
【表1】
ここで、<sos>は、文の開始を表すトークンであり、<eos>は、文の終了を表すトークンであり、acci h,lは、i番目のデコードするステップに対するl番目のレイヤのh番目のヘッドに対するアキュムレータ変数である。
【0077】
第2のデコードする方法
図3Bは、方法300Bのフロー図であり、これは、例示的な実施形態にしたがう音声認識をデコードする方法の第2の変形である。例示的な方法300は、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0078】
デコーダニューラルネットワークの各自己注意デコーダレイヤについて、以下が行われる。初期化ステップ310Bが行われる。初期化ステップ310Bにおいて、それぞれの自己注意デコーダレイヤに対して、共有アキュムレータ変数が初期化される。それぞれの自己注意デコーダレイヤの各自己注意ヘッドは、その共有アキュムレータ変数上で動作することから、アキュムレータ変数は、共有アキュムレータ変数として説明される。その後、共有アキュムレータ変数が第1の閾値を超えるもしくは達する、または音声オーディオのフレームのカウントが第2の閾値を超えるまたは達するまで、音声オーディオの各フレームについて、それぞれの自己注意デコーダレイヤの各自己注意ヘッダに対する確率計算ステップ320Bと追加ステップ330Bとが行われる。第1の閾値は、自己注意ヘッドの数、Hであってもよく、または自己注意ヘッドの数未満の値、例えば2であってもよい。所定の自己注意デコーダレイヤlに対して文脈ベクトルが計算される前に停止確率が計算される音声オーディオのフレームの数は、適応計算ステップの数Ni l,として呼ばれてもよく、これは、以下のように定義される:
【数8】
ここで、このケースでは、Hは第1の閾値および自己注意ヘッドの数であり、Mは、最大先読みステップと呼ばれてもよい第2の閾値である。その後、文脈ベクトル計算ステップ340Bおよび組み合わせステップ350Bが行われる。
【0079】
共有アキュムレータ変数を、したがって、共有条件および第1の閾値を使用する利点は、停止確率が計算され、文脈ベクトルが計算される音声認識の最後のフレーム、例えば停止位置が、注意ヘッドのそれぞれに対して同じであり、したがって同期が必要とされないことである。各ヘッドによって計算される停止確率の合計は、それぞれの閾値、例えば1に制限されない。代わりに、アクティブヘッドは、アクティブでないものによって損なわれるより多くの注意信頼度に対処することができ、これは、効果的にジョイント停止位置を超える注意の損失を低減させることを手助けする。
【0080】
確率計算ステップ320Bにおいて、停止確率は、音声オーディオのフレームをエンコードすることに基づいて計算される。停止確率は、ステップ230において説明したのと同じ方法で計算されてもよい。
【0081】
さらなるステップ330Bにおいて、停止確率は共有アキュムレータ変数に追加される。
【0082】
文脈ベクトル計算ステップ340Bにおいて、文脈ベクトルは、停止確率とエンコードすることとに基づいて計算される。文脈ベクトル計算ステップは、ステップ260に関連して説明したのと同じ方法で行われてもよい。
【0083】
その後、デコーダニューラルネットワークの各自己注意デコーダレイヤについて、組み合わせステップ350Bが行われる。組み合わせステップ350において、組み合わされた文脈ベクトルは自己注意ヘッドのそれぞれに対する文脈ベクトルに基づいて計算される。組み合わされた文脈ベクトルは、ステップ350Aに関連して説明したのと同じ方法で計算されてもよい。
【0084】
最後に、デコードするステップ360Bが行われる。デコードするステップ360Bにおいて、デコードするステップは、トークンを導出するために組み合わされた文脈ベクトルのうちの少なくとも1つを使用する。デコードするステップは、ステップ360Aに関連して説明したのと同じ方法で行われてもよい。
【0085】
方法はまた、以下のような擬似コードとして説明される:
【表2】
ここで、<sos>は、文の開始状態であり、<eos>は、文の終了状態である。
【0086】
音声認識システムトレーニング方法
図4Aは、例示的な実施形態にしたがう音声認識を行う方法400Aのフロー図である。例示的な方法400は、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0087】
以下のステップは、トレーニングセットの各トレーニングペアに対して行われる。各トレーニングペアは、複数の音声オーディオのフレームとトレーニングトークンのシーケンスを含んでいる。トークンのトレーニングシーケンスはまた、代表的シーケンスまたは基準シーケンスとして説明されてもよい。トークンのトレーニングシーケンスは、複数の音声オーディオのフレームが対応する、人の発言の内容による表示から導出されてもよい。例えば、トークンのシーケンスは、単語、フレーズまたは文を表す。
【0088】
ステップ402Aにおいて、トークンのシーケンスは、複数の音声オーディオのフレームに基づいて導出される。トークンのシーケンスのうちのトークンは、ステップ410A-450Aを使用して導出されてもよい。トークンのシーケンスが複数のトークンを含む場合、トークンのシーケンスのさらなるトークンは、ステップ410A-450Aを複数の音声オーディオのフレームのうちの残りのフレームに適用することにより、届いてもよい。
【0089】
初期化ステップ410Aにおいて、アキュムレータ変数が初期化される。アキュムレータ変数は、ゼロまたは別の初期値に初期化されてもよい。アキュムレータ変数は、自己注意デコーダレイヤの所定の自己注意ヘッドに対するそれぞれのアキュムレータ変数であってもよく、またはアキュムレータ変数は、自己注意デコーダレイヤに対する共有アキュムレータ変数であってもよい。
【0090】
その後、アキュムレータ変数が閾値を超えるまたは達するまで、複数のトレーニングペアの音声オーディオのフレームの各フレームに対して、確率計算ステップ420Aおよびさらなるステップ430Aが行われる。
【0091】
確率計算ステップ420Aにおいて、それぞれの音声オーディオのフレームをエンコードすることに基づいて、デコーダニューラルネットワークの自己注意デコーダレイヤによって、停止確率が計算される。自己注意デコーダレイヤは、より多くの複数の重みのうちの第1の重みを含む。自己注意デコーダレイヤは、複数の自己注意ヘッドを含むマルチヘッド注意レイヤであってもよく、停止確率は、複数の自己注意ヘッドのうちの自己注意ヘッドによって計算されてもよい。停止確率は、ステップ230において説明した方法で計算されてもよい。
【0092】
さらなるステップ430Aにおいて、停止確率は、アキュムレータ変数に追加される。
【0093】
その後、文脈ベクトル計算ステップ440Aにおいて、文脈ベクトルは、計算された停止確率とそれぞれをエンコードすること、例えば、停止確率が計算された音声オーディオのフレームをエンコードすること、に基づいて計算される。文脈ベクトルは、ステップ260に関連して説明した方法で計算されてもよい。ステップ260において、停止確率は、停止確率をトリミングすることなく文脈ベクトルを計算するために使用され、例えば、停止確率のうちの1つ以上は修正されず、停止確率が合計して第1の閾値、例えば1になる。例えば、停止確率行列における停止確率の値の改訂は行われなくてもよい一方で、確率がトリミングされることになる場合、このような改訂は行われることから、これは、音声認識システムのトレーニングを加速できる。したがって、トレーニングにおける計算リソースの使用が低減される。
【0094】
その後、デコードするステップ450Aが行われる。デコードするステップ450Aにおいて、トークンを導出するために文脈ベクトルが使用される。デコードするステップは、ステップ270に関連して説明した方法で行ってもよい。
【0095】
更新ステップ404Aにおいて、導出したトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、第1の複数の重みが更新される。より多くの複数の重みのうちのさらなる重みも更新されてもよい。例えば、デコーダの、1つ以上の他の自己注意デコーダレイヤに対する重み、または他のレイヤタイプ、例えば線形レイヤも更新されてもよい。音声認識システムの他の部分に関連するより多くの複数の重みのうちの他の重みも更新されてもよい。例えば、音声オーディオの各フレームをエンコードすることもまた、より多くの複数の重みのうちの第2の複数の重みを含むエンコーダを使用して生成されてもよい。第2の複数の重みも、導出されたトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて更新されてもよい。重みは、バックプロパゲーションを使用して更新されてもよい。
【0096】
損失関数は、交差エントロピー損失関数であってもよい。損失関数は、コネクショニスト時系列分類(CTC)コンポーネントを含んでいてもよい。損失関数は、交差エントロピーコンポーネントとCTCコンポーネントとを含む多目的損失関数であってもよい。多目的損失関数の交差エントロピー損失関数は、デコーダの第1の複数の重みおよび他の重みを更新するために使用されてもよい。多目的損失関数の交差エントロピー損失関数は、エンコーダ中の第2の複数の重みを更新するために使用されてもよい。多目的損失関数のCTC損失関数は、エンコーダ中の第2の複数の重みを更新するために使用されてもよい。
【0097】
説明を簡単にする目的で、更新ステップ404Aは、各トレーニングペアに対して生じるように説明されている。しかしながら、いくつかの変形では、更新ステップ404Aは、トレーニングペアのうちのいくつかのみに対して、例えばN番目のトレーニングペアごとに対して生じるかもしれないことに留意すべきである。これらのケースにおいて、重みの更新は、N個の導出されたトークンのシーケンスのそれぞれと、最後の更新からの対応するトークンのトレーニングシーケンスとの間の差に基づいており、損失関数にしたがって計算されてもよい。例えば、更新は、導出されたトークンのシーケンスと、対応するトークンのトレーニングシーケンスとのそれぞれに対して計算された損失の平均に基づいてもよい。重みを更新するこのような方法は、バッチ更新またはミニバッチ方法と呼ばれるかもしれない。
【0098】
音声認識システムトレーニング方法の第1の変形
図4Bは、音声認識システムをトレーニングする方法の第1の変形である方法400Bのフロー図である。例示的な方法400Bは、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0099】
以下のステップは、トレーニングセットの各トレーニングペアに対して行われる。各トレーニングペアは、複数の音声オーディオのフレームとトレーニングトークンのシーケンスとを含んでいる。トークンのトレーニングシーケンスはまた、代表的シーケンスまたは基準シーケンスとして説明されてもよい。トークンのトレーニングシーケンスは、複数の音声オーディオのフレームが対応する、人の発言の内容による表示から導出されてもよい。例えば、トークンのシーケンスは、単語、フレーズまたは文を表す。
【0100】
ステップ402Bにおいて、トークンのシーケンスは、複数の音声オーディオのフレームに基づいて導出される。トークンのシーケンスのうちのトークンは、ステップ410B-450Bを使用して導出されてもよい。トークンのシーケンスが複数のトークンを含む場合、トークンのシーケンスのさらなるトークンは、ステップ410B-450Bを複数の音声オーディオのフレームのうちの残りのフレームに適用することにより、届いてもよい。
【0101】
デコーダニューラルネットワークの各自己注意デコーダレイヤの各自己注意ヘッドに対して、初期化ステップ410Bが行われる。初期化ステップ410Bにおいて、それぞれの自己注意ヘッドに対してアキュムレータ変数が初期化される。
【0102】
各自己注意デコーダレイヤの各自己注意ヘッドに対して、自己注意ヘッドに対するそれぞれのアキュムレータ変数が閾値を、例えば、1の閾値を超えるまたは達するまで、トレーニングペアの複数の音声オーディオのフレームのそれぞれに対する確率計算ステップ420Bおよび追加ステップ430Bが行われる。フレームのカウントに対してこのような閾値を適用しないことは、行列計算をスピードアップすることから、フレームのカウントに対する閾値、例えば図3Aおよび図3Bに関連して説明した第2の閾値は、トレーニングの間に適用されなくてもよい。その後、各自己注意ヘッドに対して、文脈ベクトル計算ステップ440Bが行われる。
【0103】
確率計算ステップ420Bにおいて、それぞれの自己注意ヘッドに対して停止確率が計算される。停止確率は、ステップ230において説明した方法で計算されてもよい。
【0104】
さらなるステップ430Bにおいて、停止確率は、それぞれの自己注意ヘッドに対するアキュムレータ変数に追加される。
【0105】
その後、文脈ベクトル計算ステップ440Bにおいて、それぞれの自己注意ヘッドに対する文脈ベクトルは、計算された停止確率とそれぞれをエンコードすることに基づいて計算される。文脈ベクトルは、ステップ260に関連して説明した方法で計算されてもよい。ステップ260において、停止確率は、停止確率をトリミングすることなく文脈ベクトルを計算するために使用され、例えば、停止確率のうちの1つ以上は修正されず、停止確率が合計して第1の閾値、例えば1になる。例えば、停止確率行列における停止確率の値の改訂が行われなくてよい一方で、確率がトリミングされることになる場合、このような改訂は行われることから、これは、音声認識システムのトレーニングを加速できる。したがって、トレーニングにおける計算リソースの使用が低減される。
【0106】
デコーダニューラルネットワークの各自己注意デコーダレイヤに対して、組み合わせステップ445Bが行われる。組み合わせステップ445Bにおいて、組み合わされた文脈ベクトルは、自己注意ヘッドのそれぞれに対する文脈ベクトルに基づいて計算される。組み合わされた文脈ベクトルは、ステップ350Aに関連して説明した方法で計算されてもよい。組み合わせステップ445B、および結果として以下のステップは、自己注意ヘッドのそれぞれに対するアキュムレータ変数が閾値に達した場合、例えば、1つ以上の注意ヘッドの残りが閾値を以前に超えたまたは達していて、複数の注意ヘッドのうちの最後の1つ以上の注意ヘッドが第1の閾値を超えるまたは達するときに、行われてもよい。
【0107】
その後、デコードするステップ450Bが行われる。デコードするステップ450Bにおいて、トークンを導出するために文脈ベクトルが使用される。デコードするステップは、ステップ270に関連して説明した方法で行ってもよい。
【0108】
更新ステップ404Bにおいて、導出したトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、自己注意デコーダレイヤのそれぞれの重みが更新される。重みは、更新ステップ404Aに関連して説明した方法で更新されてもよい。損失関数は、更新ステップ404Aに関連して説明した任意の損失関数であってもよい。
【0109】
説明を簡単にする目的で、更新ステップ404Bは、各トレーニングペアに対して生じるように説明されている。しかしながら、いくつかの変形では、更新ステップ404Bは、トレーニングペアのうちのいくつかのみに対して、例えばN番目のトレーニングペアごとに対して生じるかもしれないことに留意すべきである。これらのケースにおいて、重みの更新は、N個の導出されたトークンのシーケンスのそれぞれと、最後の更新からの対応するトークンのトレーニングシーケンスとの間の差に基づいており、損失関数にしたがって計算されてもよい。例えば、更新は、導出されたトークンのシーケンスと、対応するトークンのトレーニングシーケンスとのそれぞれに対して計算された損失の平均に基づいてもよい。重みを更新するこのような方法は、バッチ更新またはミニバッチ方法と呼ばれてもよい。
【0110】
音声認識システムトレーニング方法の第2の変形
図4Cは、音声認識システムをトレーニングする方法の第2の変形である方法400Cのフロー図である。例示的な方法400Cは、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0111】
以下のステップは、トレーニングセットの各トレーニングペアに対して行われる。各トレーニングペアは、複数の音声オーディオのフレームとトレーニングトークンのシーケンスとを含んでいる。トークンのトレーニングシーケンスはまた、代表的シーケンスまたは基準シーケンスとして説明されてもよい。トークンのトレーニングシーケンスは、複数の音声オーディオのフレームが対応する、人の発言の内容による表示から導出されてもよい。例えば、トークンのシーケンスは、単語、フレーズまたは文を表す。
【0112】
ステップ402Cにおいて、複数の音声オーディオのフレームに基づいて、トークンのシーケンスが導出される。トークンのシーケンスのうちのトークンは、ステップ410C-450Cを使用して導出されてもよい。トークンのシーケンスが複数のトークンを含む場合、トークンのシーケンスのさらなるトークンは、ステップ410C-450Cを複数の音声オーディオのフレームのうちの残りのフレームに適用することにより、届いてもよい。
【0113】
デコーダニューラルネットワークの各自己注意デコーダレイヤの各自己注意ヘッドに対して、初期化ステップ410Cが行われる。初期化ステップ410Cにおいて、共有アキュムレータ変数が初期化される。
【0114】
各自己注意デコーダレイヤに対して、それぞれの自己注意ヘッドレイヤに対する共有アキュムレータ変数が閾値を、例えば、Hの閾値を超えるまたは達するまで、トレーニングペアの複数の音声オーディオのフレームのそれぞれに対する停止確率計算ステップ420Cおよび追加ステップ430Cが行われ、ここで、Hは自己注意ヘッドの数である。その後、各自己注意ヘッドに対して、文脈ベクトル計算ステップ440Cが行われる。
【0115】
共有アキュムレータ変数、したがって、共有条件および閾値を使用することは、停止確率が計算される音声オーディオの最後のフレーム、および計算される文脈ベクトル、例えば、停止位置が注意ヘッドのそれぞれに対して同じであり、したがって同期は必要とされない。各ヘッドによって計算される停止確率の合計は、それぞれの閾値、例えば1に制限されない。代わりに、アクティブヘッドは、アクティブでないものによって損なわれるより多くの注意信頼度に対処することができ、これは、効果的にジョイント停止位置を超える注意の損失を低減させることを手助けする。
【0116】
確率計算ステップ420Cにおいて、デコーダニューラルネットワークの自己注意ヘッドによって、停止確率が計算される。停止確率は、ステップ230において説明した方法で計算されてもよい。
【0117】
さらなるステップ430Cにおいて、停止確率は、共有アキュムレータ変数に追加される。
【0118】
文脈ベクトル計算ステップ440Cにおいて、それぞれの自己注意ヘッドに対する文脈ベクトルは、計算された停止確率とそれぞれをエンコードすることに基づいて計算される。文脈ベクトルは、ステップ260に関連して説明した方法で計算されてもよい。ステップ260において、停止確率は、停止確率をトリミングすることなく文脈ベクトルを計算するために使用され、例えば、停止確率のうちの1つ以上は修正されず、停止確率が合計して第1の閾値、例えば1になる。例えば、停止確率行列における停止確率の値の改訂が行われなくてよい一方で、確率がトリミングされることになる場合、このような改訂は行われることから、これは、音声認識システムのトレーニングを加速できる。したがって、トレーニングにおける計算リソースの使用が低減される。
【0119】
デコーダニューラルネットワークの各自己注意デコーダレイヤに対して、組み合わせステップ445Cが行われる。組み合わせステップ445Cにおいて、組み合わされた文脈ベクトルは、自己注意ヘッドのそれぞれに対する文脈ベクトルに基づいて計算される。
【0120】
その後、デコードするステップ450Cが行われる。デコードするステップ450Cにおいて、トークンを導出するために文脈ベクトルが使用される。デコードするステップは、ステップ270に関連して説明した方法で行ってもよい。
【0121】
更新ステップ404Cにおいて、導出したトークンのシーケンスと損失関数にしたがうトークンのトレーニングシーケンスとの間の差に基づいて、自己注意デコーダレイヤのそれぞれの重みが更新される。重みは、更新ステップ404Aに関連して説明した方法で更新されてもよい。損失関数は、更新ステップ404Aに関連して説明した任意の損失関数であってもよい。
【0122】
説明を簡単にする目的で、更新ステップ460Cは、各トレーニングペアに対して生じるように説明されている。しかしながら、いくつかの変形では、更新ステップ460Cは、トレーニングペアのうちのいくつかのみに対して、例えばN番目のトレーニングペアごとに対して生じるかもしれないことに留意すべきである。これらのケースにおいて、重みの更新は、N個の導出されたトークンのそれぞれと、最後の更新からの対応するトレーニングトークンとの間の差に基づいており、損失関数にしたがって計算されてもよい。例えば、更新は、導出されたトークンのシーケンスと、対応するトークンのトレーニングシーケンスのそれぞれに対して計算された損失の平均に基づいてもよい。重みを更新するこのような方法は、バッチ更新またはミニバッチ方法と呼ばれるかもしれない。
【0123】
説明を簡単にする目的で、更新ステップ404Cは、各トレーニングペアに対して生じるように説明されている。しかしながら、いくつかの変形では、更新ステップ404Cは、トレーニングペアのうちのいくつかのみに対して、例えばN番目のトレーニングペアごとに対して生じるかもしれないことに留意すべきである。これらのケースにおいて、重みの更新は、N個の導出されたトークンのシーケンスのそれぞれと、最後の更新から対応するトークンのトレーニングシーケンスとの間の差に基づいており、損失関数にしたがって計算されてもよい。例えば、更新は、導出されたトークンのシーケンスと、対応するトークンのトレーニングシーケンスとのそれぞれに対して計算された損失の平均に基づいてもよい。重みを更新するこのような方法は、バッチ更新またはミニバッチ方法と呼ばれるかもしれない。
【0124】
音声認識ネットワーク
図5は、例示的な実施形態にしたがう音声認識を行うシステムの概略的なブロック図である。システム500は、1つ以上のコンピューティングデバイス、例えば、図7に関連して説明するハードウェア700上のコンピュータ実行可能命令を使用して実現されてもよい。
【0125】
システム500は、自己注意エンコーダ510を備えている。自己注意エンコーダ510は、チャンクのような自己注意エンコーダであってもよい。自己注意エンコーダは、音声のチャンクを受信する。音声オーディオのチャンクは、複数のオーディオのフレームを含んでいる。自己注意エンコーダ510は、対応する複数の音声オーディオのフレームに対するエンコーディングを生成するために、音声オーディオのチャンクにおいて複数のフレームをエンコードする。チャンク中の音声オーディオのフレームをエンコードすることは、実質的に同時であってもよい。チャンク中の音声オーディオのフレームの数は、Ncと呼ばれてもよい。音声オーディオのチャンクは、Nl音声オーディオの左フレーム、例えば、チャンク中のフレームより前に受信されたフレーム、およびNr音声オーディオの右フレーム、例えば、チャンク中のフレームの後に受信されたフレームによって補足されてもよい。Nl左フレームおよびNrフレームは、音声オーディオのチャンクをエンコードするための文脈を提供するために使用されるが、それは、デコードすることにおいて使用されるチャンク中の音声オーディオのフレームをエンコードすることである。エンコードすることにおける待ち時間は、音声オーディオの右フレーム、Nrの数、例えば、Nrフレームが表すオーディオの長さに制限されてもよい。Nc、Nl、およびNrは、互いに等しくてもよい。実施において、Nc、Nl、およびNrは64であってもよい。
【0126】
自己注意エンコーダ510は、1つ以上の畳み込みニューラルネットワークレイヤ512を含んでいる。1つ以上の畳み込みニューラルネットワークレイヤ512の使用は、チャンク中の音声オーディオのフレームからの音響特徴の抽出を向上させ、音声オーディオのチャンクにおけるフレームについてのサブサンプリングを行うことができる。実施において、1つ以上の畳み込みニューラルネットワークレイヤ512は、フレームレートを1/2低減する2×2の幅でサイズ3×3の256カーネルを有する2つの同一の畳み込みニューラルネットワークであってもよい。1つ以上の畳み込みニューラルネットワークレイヤは、後続するレイヤに対する出力を生成する。
【0127】
自己注意エンコーダ510は、位置エンコーディングレイヤ514をさらに含む。位置エンコーディングレイヤ514は、シーケンス順序情報、例えば他のフレームエンコーダと比較して、所定のフレームに対応するCNNの出力の位置を示す情報により、1つ以上の畳み込みニューラルネットワーク(CNN)レイヤの出力を増加させる。
【0128】
自己注意エンコーダ510は、1つ以上の自己注意エンコーダレイヤ516をさらに含んでいる。各自己注意エンコーダレイヤは、2つのサブレイヤ:自己注意サブレイヤと位置単位順伝播サブレイヤとを有していてもよい。自己注意レイヤは、マルチヘッド注意レイヤであってもよい。各自己注意エンコーダレイヤは、残差接続および各サブレイヤの後のレイヤ正規化を使用してもよい。1つ以上の自己注意エンコーダレイヤ516の最初への入力は、位置エンコーディングレイヤ514の出力である。1つ以上の自己注意エンコーダレイヤの後続するレイヤへの入力は、先行する自己注意エンコーダレイヤの出力である。実施において、1つ以上の自己注意エンコーダレイヤ516は、12個の自己注意エンコーダレイヤであってもよい。
【0129】
システム500は、自己注意デコーダ520を備えている。自己注意デコーダ520は、以前の出力、例えば、以前に出力されたトークンを入力として受信する。
【0130】
自己注意デコーダ520は、1つ以上の組み込みレイヤ522を備えている。1つ以上の組み込みレイヤ522は、出力トークンを出力トークンの組み込み、例えば、ベクトル組み込みへと処理する。実施において、組み込みは、256の次元を有し、例えば、256の要素を有するベクトルである。
【0131】
自己注意デコーダ520は、位置エンコーディングレイヤ524を備えている。位置エンコーディングレイヤ514は、シーケンス順序情報、例えばフレーズまたは文のような、トークンの出力シーケンスにおけるトークンの位置を示す情報により、組み込みを増加させる。
【0132】
自己注意デコーダ520は、1つ以上の自己注意デコーダレイヤ526を備えている。各自己注意デコーダレイヤは、3つのサブレイヤ:自己注意サブレイヤ;デコーダ適応計算ステップ(DACS)サブレイヤ、および位置単位順伝播サブレイヤを有していてもよい。各自己注意エンコーダレイヤは、残差接続および各サブレイヤの後のレイヤ正規化を使用してもよい。1つ以上の自己注意エンコーダレイヤの最初は、増加させた組み込みを入力として、すなわち、位置エンコーディングレイヤの出力として受信する。後続する自己注意デコーダレイヤは、先行する自己注意デコーダレイヤの出力を受信する。注意機構として、自己注意デコーダレイヤはまた、自己注意エンコーダ510によって生成されるフレームのエンコーディングにアクセスする。実施において、1つ以上の自己注意エンコーダレイヤ526は、6個の自己注意エンコーダレイヤであってもよく、各自己注意デコーダレイヤに対する自己注意の次元とDACSサブレイヤは256であってもよく、各自己注意デコーダレイヤの位置単位順伝播サブレイヤは2048ユニットを有していてもよく、各自己注意デコーダレイヤは、4つの注意ヘッドを含んでいてもよい。
【0133】
自己注意デコーダ520は、線形および分類レイヤ528を備えている。線形および分類レイヤは、複数の確率またはスコアを、例えば、各確率またはスコアが所定のトークンが正しいという可能性を示す、確率またはスコアのベクトルを決定するために、自己注意デコーダレイヤの出力を処理する。分類レイヤは、交差エントロピーレイヤ、ソフトマックスレイヤ、またはこれらの変形もしくは均等物であってもよい。
【0134】
システム500は、ジョイントオンラインデコーダ530を備えている。ジョイントオンラインデコーダは、自己注意デコーダ520の線形および分類レイヤ528から複数の確率またはスコアを受信する。ジョイントデコーダ530は、以前に出力されたトークンに基づいて各トークンに対する確率またはスコアを出力する言語モデル540も利用する。このようなジョイントデコーダは、言語モデル確率もしくはスコア、または自己注意デコーダの線形および分類レイヤから受信した確率もしくはスコアとの両方に基づいて、結合確率またはスコアを計算してもよい。結合確率またはスコアは、それぞれ言語モデル確率またはスコアおよび受信した確率またはスコアの重み付けされた合計であってもよい。ジョイントデコーダは、デコードすることを行うために、コネクショニスト時系列分類(CTC)スコアも利用してもよい。結合確率またはスコアは、CTCスコアにさらに基づいてもよく、各結合確率またはスコアは、言語モデル確率またはスコアの重み付けられた合計、受信した確率またはスコア、およびCTCスコアであってもよい。ジョイントスコアは、λCTC sCTCr srlm slmとして規定されてもよく、ここで、sCTCはCTCスコアであり、srは受信した確率またはスコアであり、slmは言語モデル確率またはスコアであり、λCTC, λr,およびλlmは重み付けパラメータである。重み付けパラメータのそれぞれは、ゼロと1との間であってもよい。重み付けパラメータは、合計して1になってもよい。これらの結合確率またはスコアは、ステップ270に関連して説明した方法のうちのいずれかによって、例えば、最も高い確率もしくはスコアを有するまたは確率論的にトークンを選択することによって、トークンを導出するために使用されてもよい。トークンを導出する際にビームサーチも使用してもよい。
【0135】
システム500は、言語モデル540を備えている。言語モデルは、ニューラルネットワークを使用して実現される深層言語モデルであってもよい。例えば、言語モデルは、長短期記憶ネットワークを使用して実現されてもよい。
【0136】
音声オーディオ事前処理方法
図6は、音声オーディオを事前処理する、例えば、音声認識のために、処理された音声オーディオを利用するおよび/または音声認識システムをトレーニングする前に音声オーディオを処理するための方法600のフロー図である。オプション的なステップは、破線で示されている。例示的な方法600は、1つ以上のコンピューティングデバイス、例えば図7に関連して説明するハードウェア700によって実行される1つ以上のコンピュータ実行可能命令として実現されてもよい。
【0137】
ステップ610において、音声オーディオがフレームに分割される。各フレームは、音声オーディオのウィンドウであってもよい。実施において、各フレームは、10ミリ秒短い音声オーディオの25ミリ秒ウィンドウであってもよい。
【0138】
ステップ620において、音声オーディオの各フレームに対する音響特徴が抽出される。音響特徴は、フィルタバンクを使用して抽出されてもよい。実施において、音響特徴は、3次元ピッチ関連情報と一緒の80次元フィルタバンクであってもよい。
【0139】
ステップ630において、音響特徴についてのケプストラムの平均と分散の正規化が行われる。破線によって示されるように、ケプストラムの平均と分散の正規化は、オプション的である。ケプストラムの平均と分散の正規化は、トレーニングの際に音響特徴に適用されてもよい。
【0140】
ステップ640において、Ncはチャンクのサイズである、Ncフレームに対する音響特徴は、音声オーディオのチャンクを形成するために継ぎ合わせられる。チャンクのサイズは、チャンクごとの音声オーディオのフレームの数として規定される。
【0141】
ステップ650において、音声オーディオのチャンクは、Nl前のフレームに対する音響特徴およびNr後のフレームに対する音響特徴で補われる。
【0142】
コンピューティングハードウェア
図7は、実施形態にしたがう方法を実現するために使用できるハードウェアの概略図である。これは1つの例にすぎず、他の構成を使用できることに留意すべきである。
【0143】
ハードウェアは、コンピューティングセクション700を備えている。特にこの例では、このセクションのコンポーネントをともに説明している。しかしながら、これらは必ずしも同じ場所に配置される必要はないことが認識されるだろう。
【0144】
コンピューティングシステム700のコンポーネントは、(中央処理ユニット、CPUのような)処理ユニット713、システムメモリ701、システムメモリ701を含むさまざまなシステムコンポーネントを処理ユニット713に結合するシステムバス711を含んでいてもよいが、これらに限定されない。システムバス711は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャ等のうちのいずれかを使用するローカルバスを含む、バス構造のうちのいくつかのタイプのいずれかであってもよい。コンピューティングセクション700は、バス711に接続されている外部メモリ715も含んでいる。
【0145】
システムメモリ701は、揮発性/またはリードオンリーメモリのような不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動の間のような、コンピュータ内の要素間の転送情報を助けるルーチンを含んでいる基本入力出力システム(BIOS)703は、メモリ701中に典型的に記憶されている。さらに、システムメモリは、CPU713によって使用されている、オペレーティングシステム705、アプリケーションプログラム707、およびプログラムデータ709を含んでいる。
【0146】
また、インターフェース725はバス711に接続されている。このインターフェースは、さらなるデバイスから情報を受信するためのコンピュータシステムに対するネットワークインターフェースであってもよい。インターフェースはまた、ユーザがあるコマンド等に応答することを可能にするユーザインターフェースであってもよい。
【0147】
この例では、ビデオインターフェース717が提供されている。ビデオインターフェース717は、グラフィック処理メモリ721に接続されているグラフィック処理ユニット719を備えている。
【0148】
グラフィック処理ユニット(GPU)719は、ニューラルネットワークトレーニングのようなそのデータ並行動作への適合により、音声認識システムのトレーニングに特によく適している。したがって、実施形態において、音声認識システムをトレーニングするための処理は、CPU713とGPU719との間で分割されてもよい。いくつかの実施形態では、音声認識システムのトレーニングのために、および音声認識を行うために、異なるハードウェアが使用されてもよいことに留意すべきである。例えば、音声認識システムのトレーニングは、1つ以上のローカルデスクトップもしくはワークステーションコンピュータ、または、クラウドコンピューティングシステムのデバイスで生じるかもしれず、これらは、1つ以上の分離したデスクトップまたはワークステーションGPUを含んでいてもよく、1つ以上の分離したデスクトップまたはワークステーションCPUは、例えば、PC指向アーキテクチャ、および例えば16GB以上の揮発性システムメモリの実質的量を有するプロセッサである。例えば、音声認識の性能はモバイルまたは組み込まれたハードウェアを使用してもよいが(これらは、システムオンチップ(SoC)の一部としてのモバイルGPUを含む、またはGPUを含まない)、1つ以上のモバイルまたは組み込まれているCPU、例えばモバイル指向アーキテクチャ、またはマイクロコントローラ指向アーキテクチャと、例えば1GB未満のより少ない量の揮発性メモリとを有するプロセッサを使用してもよい。例えば、音声認識を行うハードウェアは、スマートスピーカーまたは、バーチャルアシスタントを含む移動体電話機のようなボイスアシスタントシステム120であってもよい。
【0149】
音声認識システムをトレーニングするために使用されるハードウェアは、大幅により多くの計算能力を有してもよく、例えば、エージェントを使用してタスクを行うために使用されるハードウェアよりも、1秒間により多くの演算を行うことができ、かつ、より多くメモリを有する。より少ないリソースを有するハードウェアを使用することは可能である。なぜなら、例えば、1つ以上のニューラルネットワークを使用して推測を行うことによって音声認識を行うことは、例えば、1つ以上のニューラルネットワークをトレーニングすることによって音声認識システムをトレーニングすることよりも、実質的にかなり少ない計算リソースであるからである。さらに、例えば、1つ以上のニューラルネットワークを使用して推測を実行する、音声認識を実行するために使用される計算リソースを低減するために技術が用いられることができる。このような技術の例は、モデル蒸留(distillation)を含み、ニューラルネットワークに対しては、プルーニング(pruning)および量子化のような、ニューラルネットワーク圧縮技術を含む。
【0150】
DACSに基づくトランスフォーマーASRに対する第1の実験の結果
方法400Bを使用してトレーニングされ、方法300Aを使用して推定を行う、音声認識システム500の性能を調べる実験を以下で説明する。これは、DACSに基づくトランスフォーマー自動音声認識(ASR)と呼ばれることがある。
【0151】
DACSに基づくトランスフォーマーASRは、ESPNETツールキット中のデータプレパレーションレシピを受けて、2つのデータセット:英語のウォールストリートジャーナル(WSJ)コーパスおよび北京官話AIShell-1コーパスで評価される。音声変動は、0.9および1.1の係数でAIShell-1のトレーニングセットに適用される。音響特徴は、10msシフトの25msウィンドウから抽出された、3次元ピッチ関連情報とともに80次元フィルタバンクである。ケプストラムの平均と分散の正規化(CMVN)は、トレーニングセットで行われ、推定されるパラメータも開発およびテストセットに適用される。出力ラベルに関して、WSJおよびAIShell-1は、それぞれ52および4231クラスを有する。
【0152】
システム500の変形が両方のタスクに採用される。変形は、12レイヤチャンクSAEおよび6レイヤSADからなる。2つの同一のCNNレイヤは、チャンクSAEの前に使用され、それぞれはフレームレートを1/2低減する2×2の幅でサイズ3×3の256カーネルを有する。チャンクSAEのチャンクサイズは、Nc = Nl = Nr = 64である。すべての自己注意およびDACSサブレイヤプラスSADの組み込みレイヤの次元は256に設定され、4つのヘッドがマルチヘッド機構において使用される。位置単位順伝播レイヤは2048ユニットを有している。
【0153】
トレーニングについて、λCTC = 0.3である重みで多目的学習を行うことに対するCTC損失が使用され、0.1のペナルティ係数でトランスフォーマーのクロスエントロピー損失にラベル平滑化が適用される。モデルは、アダムオプティマイザを使用して、WSJに対して100エポック、AIShell-1に対して50エポックまででトレーニングされ、早期打ち切り(early-stopping)基準は3エポックの忍耐(patience)で課されている。学習率は、WSJに対して10.0、AIShell-1に対して1.0に初期化されるノーム重み減衰ストラテジーにしたがう一方で、ウォームアップステップは両方とも25000である。過剰適合を回避するために、ドロップアウトが0.1の率で自己注意およびDACSサブレイヤに適用される。ミニバッチサイズは32に設定される。最大先読みステップM、例えば、第2の閾値は、トレーニングの間適用されない。
【0154】
推定の間、WSJに対して λCTC = 0.3、AIShell-1に対してλCTC = 0.5 でジョイントオンラインデコーディングを実行するように、CTCスコアは利用される。トレーニングセットのテキストでトレーニングされた外部LMは、トランスフォーマーによって生成されたビームサーチ(ビーム幅=10)仮説を再度スコアリングすることが伴われ、WSJに対するLMは100ユニット単一レイヤ長短期記憶(LSTM)ネットワークであり、AIShell-1に対しては、650ユニット2レイヤのLSTMである。最後の10エポックのモデルは、平均化され、推定のために使用される。
【0155】
WSJコーパスについて、DACSに基づくトランスフォーマーは、dev93開発セットで8.9の単語誤り率を、eval92評価セットで5.5の単語誤り率を達成する。この評価において、10の最大先読みステップ、Mが使用される。
【0156】
AIShell-1コーパスについて、DACSに基づくトランスフォーマーは、dev開発セットに対して6.5の文字誤り率を、testテストセットに対して7.4の文字誤り率を達成する。この評価において、14の最大先読みステップ、Mが使用される。
【0157】
トレーニングと推定のスピードは、AIShell-1 DACSに基づくトランスフォーマーに対しても評価される。Geforce RTX 2080 Ti GPUを使用するトレーニングは、86.2分かかる。
【0158】
推定のスピードは、以下の比率を規定することにより、自己注意サブレイヤにおける計算コストに関して推定される:
【数9】
ここで、sh,l i は、l番目のSADレイヤにおいてheadhだけ出力ステップiにおいて行われる計算ステップの数であり、Tは、エンコードするタイムステップの数を示し、すべてのL個の出力ステップ、H個のヘッド、およびNd個のレイヤについてそれぞれ集約される。比率が小さいほど、推定の間に充当されるコストはより低くなる。dev開発セットに対する比率は0.62であり、testテストセットに対しては0.61である。
【0159】
図8A-8Bは、音声テキスト化アライメントを図示するためにAIShell-1に対するDACSに基づくトランスフォーマーの最上位の自己注意デコーダレイヤについての停止確率を図示している。水平軸はエンコードするタイムステップを表し、垂直は出力ステップを表す。810、820、830、840のそれぞれは、注意ヘッドのそれぞれ1つに対する停止確率を図示している。停止確率は、AIShell-1コーパスからとられた例示的な発言に対するものである。図示しているように、自己注意ヘッドははっきりとした注意の重みを取得し、停止位置は早い。これはなぜなら、注意の損失を最小化するために、停止信頼度に対する切り捨てがエンコーディング情報を時間的に後に押しているためであり、これは、オンライン自動音声認識において望ましく適切である。
【0160】
HS-DACSに基づくトランスフォーマーASRに対する実験結果およびDACSに基づくトランスフォーマーASRに対する第2の実験結果
方法400Cを使用してトレーニングされ、方法300Bを使用して推定を行う音声認識システム500の性能を調べる実験を以下に説明する。これは、ヘッド同期DACSに基づくトランスフォーマー自動音声認識(ASR)またはHS-DASC ASRとして呼ばれるかもしれない。これらは、DACSに基づくトランスフォーマー自動音声認識(ASR)、例えば方法400Bを使用してトレーニングされ、方法300Aを使用して推定を行う音声認識システム500と比較される。
【0161】
HS-DACSに基づくトランスフォーマーは、ESPNETツールキット中のレシピに基づいて、英語のタスクに対するウォールストリートジャーナル(WSJ)、Librispeech、中国語のタスクに対するAIShell-1である。音響特徴は、80次元のフィルタバンク係数と3次元ピッチ関連情報とからなる。WSJおよびAIShell-1に対する出力クラスの数は、それぞれ52および4231である。Librispeechについて、5000ワードピースの語彙を構築するために、BPEサブワードトークン化が適用される。
【0162】
システム500の変形がすべての3つのタスクに採用される。エンコーダは6レイヤチャンクSAEである。中心のサイズは、左および右チャンクが同一であり、64の次元を有している。2つのCNNレイヤが使用され、それぞれが入力フレームを2倍サブサンプリングする2×2の幅でサイズ3×3の256カーネルを有する。デコーダは、12HS-DACSに基づく自己注意デコーダレイヤ、例えば、推定の間、300Bにおいて説明した方法、およびトレーニングの間、400Cにおいて説明した方法を使用する自己注意デコーダレイヤからなり、注意次元、ヘッドの数および準伝播ネットワークユニットのサイズは、それぞれ、WSJおよびAIShell-1に対して{256, 4, 2048}であり、Librispeechに対しては{512,8,2048}である。
【0163】
0.3のCTC重みのCTC/注意ジョイントトレーニングは、すべてのタスクについて行われる。モデルは、AIShell-1に対して50エポックまで、WSJおよびLibrispeechに対して100エポックまでトレーニングされる。3の忍耐の早期打ち切り基準は、WSJのみに課される。ノーム重み減衰ストラテジーを使用して、学習率がスケジューリングされ、初期値は、WSJおよびLibrispeechに対して10に設定され、AIShell1に対して1に設定され、ウォームアップステップはすべて25000である。過剰適合問題を克服するために、ラベル平滑化および注意ドロップアウトも0.1の係数に適用される。最大先読みステップMは、トレーニングの間用いられない。
【0164】
推定の間、CTCスコアはまた、それぞれ、WSJ、AIShell-1およびLibrispeechに対して{0.3,0.5,0.4}の重みで、トランスフォーマーの出力分配と組み合わせるように補助的な項として使用される。ビームサーチデコーディングから生成された仮設を再度スコアリングするために外部LMもトレーニングされ、これは、上記の順序のタスクに対して1000ユニット1レイヤ、650ユニット2レイヤ、2048ユニット4レイヤの長短期記憶(LSTM)ネットワークである。チャンク自己注意エンコーダによってもたらされる待ち時間に対応する、すべての自己注意デコーダレイヤに対して、Mは16に設定される。
【0165】
表1、2および3は、それぞれ、WSJ、AIShell-1およびLibrispeechについて提案した方法の結果を表し、それをDACSに基づくトランスフォーマーと比較する。HS-DACSは、一貫してすべてのタスクについてDACSに基づくトランスフォーマーより性能が優れている。
【表3】
【0166】
出願人の知る限りでは、HS-DACSに基づくトランスフォーマーは、すべての3つのタスクについて最新式のオンラインASR性能を達成している。
【0167】
表4は、式10で規定した比率を使用して、AIShell-1について報告されたDACSに基づく、およびHS-DACSに基づくトランスフォーマーASRシステム間の推定待ち時間を比較する。
【0168】
比率が低いほど、デコードすることの間に提示される待ち時間は短くなる。実験において、出力ステップの大部分に対して最大先読みステップがトリガされることがわかり、これは、HS-DACSアルゴリズムにおいて使用されるジョイント閾値が注意信頼度の累積により達することができないことを意味する。したがって、待ち時間をさらに短くするために、ジョイント閾値を低減することが調べられる一方で、ASR性能についての効果が観測される。
【0169】
表4中に示されるように、ジョイント閾値、例えば4.0から1.0のHS-DACSアルゴリズムの共有アキュムレータ変数に対する第1のジョイント閾値は徐々に減衰され、その一方で、公正な比較のために、1.0から0.25の普通のDACSアルゴリズムの独立閾値を比例的に低減する。
【表4】
HS-DACSに基づくトランスフォーマーは、すべての閾値設定に対してDACSに基づくトランスフォーマーよりも一定のより短い待ち時間を生み出し、ジョイント閾値が2.0に下がるまでASR結果は安定したままであることがわかる。閾値が0.25に下がるときでさえ、DACSシステムのCER劣化はむしろごくわずかである。これはなぜなら、注意重み、例えば、停止確率がHS-DACSレイヤの単一のヘッド内に集約しがちであり、したがって、注意、例えば停止確率がヘッドにわたって均一に分布される場合、DACSレイヤよりも、閾値の変化に性能がより良く反応するからであるかもしれない。
【0170】
図9A-9Bは、音声テキスト化アライメントを図示するためにAIShell-1に対するHS-DACSに基づくトランスフォーマーの最上位の自己注意デコーダレイヤに対する停止確率を図示している。水平軸はエンコードするタイムステップを表し、垂直は出力ステップを表す。910、920、930、940のそれぞれは、注意ヘッドのそれぞれ1つに対する停止確率を図示している。停止確率が示される例示的な発言は、AIShell-1コーパスのdevセットから選ばれる。
【0171】
図10A-10Bは、音声テキスト化アライメントを図示するためにAIShell-1コーパスに対するDACSに基づくトランスフォーマーASRシステムの最上位の自己注意デコーダレイヤに対するものである。停止確率は、HS-DACSに基づくトランスフォーマーASRシステムについてと同じ例示的な発言に対して計算される。1010、1020、1030、140のそれぞれは、注意ヘッドのそれぞれ1つに対する停止確率を図示している。
【0172】
図9A-9Bと図10A-10Bと比較すると、DACSに基づくトランスフォーマーASRシステム中の自己注意ヘッドは、類似したおよびもっともらしい音声テキスト化アライメントである一方で、HS-DACSに基づくトランスフォーマーシステムシステムは、他が発言の異なる部分からの注意重みを補い、1つの支配的なヘッドに依拠しているようであることが観測される。
【0173】
変形
ある実施形態を説明してきたが、これらの実施形態は例としてのみ提示されており、本発明の範囲を限定することは意図していない。実際に、ここで説明した新規のデバイス、方法は、さまざまな他の形態で具現化されてもよく、さらに、ここで説明したデバイス、方法、および製品の形態におけるさまざまな省略、置き換え、および変更が、本発明の範囲および精神から逸脱することなくなされてもよい。付随する特許請求の範囲およびこれらの均等物は、本発明の範囲および精神内あるように、このような形態または修正をカバーするように意図されている。
図1A
図1B
図1C
図1D
図2
図3A
図3B
図4A
図4B
図4C
図5
図6
図7
図8A
図8B
図9A
図9B
図10A
図10B
【外国語明細書】