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

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

▶ 株式会社東芝の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】音声認識のためのシステムおよび方法
(51)【国際特許分類】
   G10L 15/16 20060101AFI20240304BHJP
   G10L 15/22 20060101ALI20240304BHJP
   G10L 15/28 20130101ALI20240304BHJP
【FI】
G10L15/16
G10L15/22 300Z
G10L15/28 230Z
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2022136148
(22)【出願日】2022-08-29
(65)【公開番号】P2023084085
(43)【公開日】2023-06-16
【審査請求日】2022-08-31
(31)【優先権主張番号】2117611.0
(32)【優先日】2021-12-06
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】モハン リ
(72)【発明者】
【氏名】ラマ サナンド ドディパトラ
【審査官】大野 弘
(56)【参考文献】
【文献】特開2021-179593(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/22
G10L 15/16
G10L 15/04
G10L 15/28
(57)【特許請求の範囲】
【請求項1】
音声認識のためのコンピュータ実施方法であって、
発話音声フレームと訓練トークンとを受け取ることと、
前記受け取られた発話音声フレームを符号化することと、
前記受け取られた発話音声フレームの前記符号化からコンテキストベクトルを決定することと、
訓練可能モデルを備えるエージェントを介して、前記コンテキストベクトルからアクションを導出することと、
前記アクションが既定の条件を満たすのに応答して、前記コンテキストベクトルから予測トークンを導出することと、
前記予測トークンを前記訓練トークンと比較することによって予測正当性を決定することと、ここにおいて、前記予測正当性が、前記予測トークンが前記訓練トークンと一致するときに、予測が正しいことを示す、
前記予測トークンに基づいて停止位置を取得することと、ここにおいて、前記停止位置が、前記既定の条件が満たされる時間ステップを表す、
前記決定された予測正当性および前記取得された停止位置に基づいて報酬を決定することと、
前記決定された報酬に基づいて前記エージェントの重みを更新することと、
重みが更新されたエージェントを介して機能を実行することと、を備え、前記機能が、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える、方法。
【請求項2】
前記アクションが、エージェントを介して導出され、前記エージェントが、訓練されたモデルを備え、前記アクションを導出することが、
前記コンテキストベクトルを前記訓練されたモデルに入力することと、
第1の確率を前記訓練されたモデルから決定することと、
前記第1の確率を既定のしきい値と比較することと、
前記比較に基づいて前記アクションを設定することと、を備える、請求項1に記載の方法。
【請求項3】
前記第1の確率を前記訓練されたモデルから決定することが、
前記訓練されたモデルの出力に所定のバイアスを加算することと、
前記第1の確率を得るために、前記加算の結果にシグモイド関数を適用することと、を備える、請求項2に記載の方法。
【請求項4】
前記エージェントが、ディープニューラルネットワークを備える、請求項2または3に記載の方法。
【請求項5】
前記第1の確率が、デコーダニューラルネットワークの自己注意デコーダ層を使用して計算される、請求項に記載の方法。
【請求項6】
前記コンテキストベクトルを決定することが、以前の発話音声フレームから決定されたコンテキストベクトルを使用することを備える、請求項5に記載の方法。
【請求項7】
前記コンテキストベクトルを決定することが、
第2の確率を決定することを備え、前記第2の確率が、前記自己注意デコーダ層の注意重みに対応する、請求項5に記載の方法。
【請求項8】
前記コンテキストベクトルを決定することが、
前記第2の確率にエンコーダ状態を乗算することを備え、前記エンコーダ状態が、前記受け取られた発話音声フレームから導出される、請求項7に記載の方法。
【請求項9】
前記自己注意デコーダ層が、複数の注意ヘッドを備えるマルチヘッド自己注意デコーダ層であり、停止確率が、前記複数の注意ヘッドのうちの注意ヘッドを使用して計算される、請求項5に記載の方法。
【請求項10】
前記コンテキストベクトルを決定することが、前記複数の注意ヘッドのそれぞれから第1のコンテキストベクトルを決定することと、前記コンテキストベクトルを得るために、前記決定された第1のコンテキストベクトルを連結することとを備える、請求項9に記載の方法。
【請求項11】
前記決定された第2の確率をアキュムレータ変数に加算することと、
前記アキュムレータ変数が第2の条件を満たすのに応答して、
前記コンテキストベクトルから予測トークンを導出することと、
前記予測トークンに基づいて機能を実行することと、を備え、前記機能が、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える、請求項に記載の方法。
【請求項12】
前記アクションが、第3の確率に対応し、前記アクションが、停止選択器を介して導出され、前記停止選択器が、前記第3の確率を生成するように構成され、前記第3の確率が、予測トークンが前記コンテキストベクトルから導出される確率を表す、請求項1に記載の方法。
【請求項13】
音声認識システムを訓練するためのコンピュータ実施方法であって、発話音声フレームおよび訓練トークンを備える訓練データについて、
前記発話音声フレームを符号化することと、
前記発話音声フレームの前記符号化からコンテキストベクトルを決定することと、
訓練可能モデルを備えるエージェントを介して、前記コンテキストベクトルからアクション確率を導出することと、
前記アクション確率が既定の条件を満たすのに応答して、前記コンテキストベクトルから予測トークンを導出することと、
前記予測トークンを前記訓練トークンと比較することによって予測正当性を決定することと、ここにおいて、前記予測正当性が、前記予測トークンが前記訓練トークンと一致するときに、予測が正しいことを示す、
前記予測トークンに基づいて停止位置を取得することと、ここにおいて、前記停止位置が、前記既定の条件が満たされる時間ステップを表す、
前記決定された予測正当性および前記取得された停止位置に基づいて報酬を決定することと、
前記決定された報酬に基づいて前記エージェントの重みを更新することと、を備える方法。
【請求項14】
前記報酬を決定することが、
第1の訓練エポックから第1の予測正当性および第1の停止位置を取得することと、
第2の訓練エポックから第2の予測正当性および第2の停止位置を取得することと、ここにおいて、前記第1の訓練エポックが、前記第2の訓練エポックより先行する、
前記第1の予測正当性を前記第2の予測正当性と比較し、前記第1の停止位置を前記第2の停止位置と比較することと、を備える、請求項13に記載の方法。
【請求項15】
前記決定された報酬が、
前記第2の停止位置が前記第1の停止位置より大きいとき、または
前記第2の停止位置が前記第1の停止位置と等しく、前記第1の予測正当性が前記第2の予測正当性と異なるとき、または
前記第2の停止位置が前記第1の停止位置より小さく、前記第2の予測正当性が予測が正しいことを示すときに、第1の値を有し、
前記決定された報酬が、
前記第2の停止位置が前記第1の停止位置と等しく、第1の予測精度が第2の予測精度と等しいとき、または
前記第2の停止位置が前記第1の停止位置より小さく、前記第1の予測精度および前記第2の予測精度が等しく所定の予測精度より低いときに、第2の値を有し、
前記決定された報酬が、前記第2の停止位置が前記第1の停止位置より小さく、前記第2の予測精度が前記第1の予測精度より低いときに、第3の値を有し、
前記第1の値が、前記第2の値より大きく、前記第2の値が、前記第3の値より大きい、請求項14に記載の方法。
【請求項16】
前記第1の値が0であり、前記第2の値および前記第3の値が負である、請求項15に記載の方法。
【請求項17】
前記コンテキストベクトルを決定することが、
第2の確率を決定することと、ここにおいて、前記第2の確率が、自己注意デコーダ層の注意重みに対応する、
前記決定された第2の確率をアキュムレータ変数に加算することと、を備え、前記既定の条件を満たすことが、前記アキュムレータ変数を所定のしきい値と比較することを備える、請求項13から16のいずれか一項に記載の方法。
【請求項18】
前記アキュムレータ変数が前記所定のしきい値未満であるときに、前記既定の条件が満たされる、請求項17に記載の方法。
【請求項19】
請求項1に記載の方法をコンピュータに実行させるように構成されたコンピュータ可読コードを備えた担持媒体。
【請求項20】
音声認識のためのシステムであって、前記システムが、プロセッサを備え、前記プロセッサが、
発話音声フレームと訓練トークンとを受け取り、
前記受け取られた発話音声フレームを符号化し、
前記受け取られた発話音声フレームの前記符号化からコンテキストベクトルを決定し、
訓練可能モデルを備えるエージェントを介して、前記コンテキストベクトルからアクションを導出し、
前記アクションが既定の条件を満たすのに応答して、前記コンテキストベクトルから予測トークンを導出し、
前記予測トークンを前記訓練トークンと比較することによって予測正当性を決定し、ここにおいて、前記予測正当性が、前記予測トークンが前記訓練トークンと一致するときに、予測が正しいことを示す、
前記予測トークンに基づいて停止位置を取得し、ここにおいて、前記停止位置が、前記既定の条件が満たされる時間ステップを表す、
前記決定された予測正当性および前記取得された停止位置に基づいて報酬を決定し、
前記決定された報酬に基づいて前記エージェントの重みを更新し、
重みが更新されたエージェントを介して機能を実行するように構成され、前記機能が、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載される実施形態は、音声認識のためのシステムおよび方法に関する。
【背景技術】
【0002】
音声認識方法およびシステムは、発話音声を受け取り、例えばその発話音声のテキスト内容など、その発話音声の内容を認識する。音声認識システムは、ハイブリッドシステムを含み、例えば発話を復号するなど、発話音声の内容を決定するための音響モデル(AM)と、発音辞書と、言語モデル(LM)とを含むことがある。初期のハイブリッドシステムは、音響モデルおよび/または言語モデルに隠れマルコフモデル(HMM)または同様の統計的方法を利用していた。後のハイブリッドシステムは、音響モデルおよび/または言語モデルの少なくとも一方にニューラルネットワークを利用している。これらのシステムは、ディープ音声認識システムと呼ばれることもある。
【0003】
エンドツーエンドアーキテクチャを有する音声認識システムも、導入されている。これらのシステムでは、音響モデルと、発音辞書と、言語モデルとが暗黙的に一体化されると考えることができる単一のニューラルネットワークが使用される。この単一のニューラルネットワークは、再帰型ニューラルネットワークであってもよい。さらに最近になると、トランスフォーマモデルが音声認識システムに使用されている。トランスフォーマモデルは、その距離に関わらず依存性が取り込まれる自己注意機構を使用して音声認識を実行することができる。トランスフォーマモデルは、エンコーダ/デコーダフレームワークを利用することがある。
【0004】
次に、添付の図面を参照して、非限定的な例によるシステムおよび方法について説明する。
【図面の簡単な説明】
【0005】
図1A】例示的な実施形態による音声アシスタントシステムを示す図。
図1B】例示的な実施形態による音声文字変換システムを示す図。
図1C】例示的な実施形態による音声アシスタントを実行する方法を示す流れ図。
図1D】例示的な実施形態による音声文字変換を実行する方法を示す流れ図。
図2】実施形態による音声認識のための方法を示す概略図。
図3A】実施形態による音声認識のための方法を示す概略図。
図3B】実施形態による音声認識のための方法を示す概略図。
図4】音声認識方法が実行されるときの、その方法の構成要素を示す概略図。
図5】例示的な実施形態による音声認識を実行するシステムを示す概略図。
図6】発話音声を前処理する方法を示す流れ図。
図7】音声認識システムを訓練する方法を示す流れ図。
図8】実施形態による音声認識システムを訓練する方法を示す流れ図。
図9】音声認識のためのシステムの訓練中の損失のプロットを示す図。
図10】音声認識方法を示す流れ図。
図11】方法1300を示す概略図。
図12(a)】例示的な実施形態による音声認識を実行するシステムを示す概略図。
図12(b)】音声認識システムを訓練する方法を示す流れ図。
図13】ASRシステムの様々なヘッドの停止決定を示す図。
図14(a)】ASRシステムの停止決定を示す図。
図14(b)】例示的な実施形態によるASRシステムの停止決定を示す図。
図15】例示的な実施形態による方法およびシステムを実施するハードウェアを示す概略図。
【発明を実施するための形態】
【0006】
第1の態様によれば、音声認識のための方法が提供される。この方法は、発話音声フレームを受け取ることと、受け取られたフレームを符号化することと、受け取られたフレームの符号化からコンテキストベクトルを決定することと、エージェントを介してコンテキストベクトルからアクションを導出することと、ここにおいて、エージェントが、訓練されたモデルである、アクションが既定の条件を満たすのに応答して、コンテキストベクトルからトークンを導出することと、トークンに基づいて機能を実行することと、を備え、この機能は、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える。
【0007】
開示される方法は、音声認識の待ち時間および計算コストを低減する。開示される方法は、音声認識の質(例えば精度)を維持しながら、この待ち時間および計算コストの低減を実現する。この方法では、発話音声フレームが受け取られ、次いで符号化される。この符号化から、コンテキストベクトルが決定される。コンテキストベクトルは、受け取られたフレーム中に存在する音響情報と、履歴音響情報とに関係する。コンテキストベクトルは、実行中に計算される。例えば、コンテキストベクトルは、既定の条件が満たされることを確認するステップの前に決定される。このコンテキストベクトルは、暫定コンテキストベクトルと呼ばれることもある。
【0008】
アクションは、コンテキストベクトルから導出される。アクションは、トークンが導出されるべきかどうかを示す変数に対応することがある。アクションが既定の条件を満たすときに、トークンが、コンテキストベクトルから導出される。例えば、アクションは、エージェントまたは停止選択器から導出される。
【0009】
導出されたトークンから、機能が実行される。例えば、機能は、テキストを出力すること、またはコマンドを実行することを備える。アクションが既定の条件を満たす時間ステップ(または位置)が、停止位置として理解されることがある。アクションが既定の条件を満たすときを考慮することによって、改善された停止位置が得られることがある。停止位置を改善することは、導出されたトークンの質(例えば精度)が維持されながら、停止位置が小さいことを意味する。特に、停止位置は、コンテキストベクトルから導出されるアクションを使用するのではなく任意の条件に依拠する方法より小さい(より早い)ことがある。トークンに基づいて機能を実行する後続のステップも、より早く実行される。したがって、開示される方法は、(トークンの導出がより早いことにより)低減された待ち時間で音声認識を実行し得る。トークンが導出される前に実行される必要がある計算が少なくなるので、計算コストも低減されることがある。
【0010】
例えば、アクションは、エージェントを介して導出される。エージェントは、訓練されたモデルを備える。エージェントは、トークンがコンテキストベクトルから導出されるべきである可能性が高いのはいつであるかをコンテキストベクトルから決定することができるように訓練される。エージェントは、アクションを出力する。アクションは、エージェントが行うことができる可能性がある動きのうちの1つである。アクションは、トークンが導出されるべきであるかどうかを示す変数に対応することがある。アクションが既定の条件を満たすときに、トークンが導出される。
【0011】
エージェントは、停止位置が改善されるように訓練されることがある。より早い停止位置は、トークンがより早くコンテキストベクトルから導出されることを意味する。
【0012】
例えば、アクションは、2つの値のうちの1つを有することがある。例えば、アクションは、二値である。例えば、アクションは、「0」または「1」、「真」または「偽」、あるいは「はい」または「いいえ」である。
【0013】
アクションは、既定の条件と比較される。例えば、アクションが「1」に等しいときに、既定の条件は満たされる。
【0014】
実施形態では、エージェントを介してアクションを導出することは、コンテキストベクトルを訓練されたモデルに入力することと、アクション確率(第1の確率とも呼ばれる)を訓練されたモデルから決定することと、アクション確率を既定のしきい値と比較することと、比較に基づいてアクションを設定することと、を備える。コンテキストベクトルから、アクション確率(第1の確率)が決定される。アクション確率は、この時間ステップでトークンが導出され得る信頼度を示す。例えば、高い信頼度は、導出されたトークンが正確である可能性が高く、したがって音声認識の質が維持され得ることを意味することがある。アクション確率が既定のしきい値より大きいときには、エージェントは、既定の条件を満たすアクションを出力する。例えば、アクション確率が0.5以上であるときに、アクションは、既定の条件を満たす値に設定される。
【0015】
実施形態では、アクション確率(第1の確率)を訓練されたモデルから決定することは、訓練されたモデルの出力に所定のバイアスを加算することと、アクション確率を得るために、この加算の結果にシグモイド関数を適用することと、を備える。所定のバイアスの加算により、エージェントが、訓練の初期段階中に規定の条件を満たすアクションを設定する尤度を低下させる。これにより、音声認識方法が訓練中により迅速に十分な精度に到達するのを助ける。
【0016】
実施形態では、エージェントは、ディープニューラルネットワークを備える。
【0017】
他の例では、エージェントは、訓練されたモデルを備えることがある。訓練されたモデルは、特に、再帰型ニューラルネットワーク(RNN)または畳み込みニューラルネットワーク(CNN)を備えることがある。
【0018】
実施形態では、コンテキストベクトルを決定することは、以前の発話音声フレームから決定されたコンテキストベクトルを使用することを備える。以前のフレームから計算されることにより、コンテキストベクトルは、履歴情報を担持する。
【0019】
実施形態では、コンテキストベクトルを決定することは、自己注意デコーダ層の注意重みに対応する第2の確率を決定することを備える。第2の確率は、導出されたコンテキストベクトルにおける信頼度を表す。換言すれば、第2の確率は、決定されたコンテキストベクトルが許容可能である確率を表す。
【0020】
第2の確率は、ASR出力(トークン)が導出される尤度である。これは、コンテキストベクトルが許容されることの結果である。
【0021】
実施形態では、コンテキストベクトルを決定することは、第2の確率にエンコーダ状態を乗算することを備え、エンコーダ状態は、受け取られた発話音声フレームから導出される。
【0022】
受け取られたフレームは、自己注意エンコーダによって符号化されることがある。自己注意エンコーダは、自己注意エンコーダ層を備える。自己注意エンコーダ層は、自己注意エンコーダ層のスタックを備えることがある。エンコーダ状態は、エンコーダニューラルネットワークの自己注意エンコーダ層を使用して計算されることがある。
【0023】
実施形態では、第2の確率は、デコーダニューラルネットワークの自己注意デコーダ層を使用して計算される。
【0024】
第2の確率は、注意エネルギーから導出されることがある。注意エネルギーは、デコーダニューラルネットワークの自己注意デコーダ層を使用して計算される。
【0025】
実施形態では、自己注意デコーダ層は、複数の注意ヘッドを備えるマルチヘッド自己注意デコーダ層であり、第2の確率は、複数の注意ヘッドのうちの注意ヘッドを使用して計算される。
【0026】
実施形態では、コンテキストベクトルを決定することは、複数の注意ヘッドのそれぞれから第1のコンテキストベクトルを決定することと、コンテキストベクトルを得るために、決定された第1のコンテキストベクトルを連結することとを備える。
【0027】
自己注意エンコーダ層は、マルチヘッド自己注意エンコーダ層であることがある。注意ヘッドの数は、マルチヘッド自己注意デコーダ層中のヘッドの数に対応する。エンコーダ状態は、マルチヘッド自己注意エンコーダ層の複数の注意ヘッドのうちの注意ヘッドを使用して計算されることがある。
【0028】
実施形態では、この方法は、決定された第2の確率をアキュムレータ変数に加算することと、アキュムレータ変数が第2の条件を満たすのに応答して、コンテキストベクトルからトークンを導出することと、トークンに基づいて機能を実行することとをさらに備え、この機能は、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える。第2の条件は、上記の既定の条件とは異なる。
【0029】
例えば、第2の条件は、アキュムレータ変数の第2の所定のしきい値との比較を備える。第2の条件を満たすことにより、トークンの導出をトリガする追加の条件が提供される。例えば、第2の所定のしきい値は、注意ヘッドの数であることがある。いくつかの例では、受け取られた発話音声フレームは、既定の条件を満たさないアクションをもたらすことがある。それらの場合には、その代わりに、第2の条件を満たすことにより、トークンの導出をトリガすることもある。したがって、これにより、トークンの導出およびコマンドの実行が実行されることを保証する。音声認識方法の待ち時間が、低減されることがある。
【0030】
第2の条件の使用が、エージェントを支援することがある。第2の条件は、復号の停止の実行を保証しないこともある。その代わりに、第3の条件(最大先読みステップ)が、停止を強制することもある。
【0031】
代替の実施形態では、アクションは、確率に対応する。この確率は、第3の確率(または停止確率)と呼ばれることもある。アクションは、モジュールを介してコンテキストベクトルから導出される。このモジュールは、停止選択器と呼ばれることもある。
【0032】
停止選択器は、各時間ステップにおいてASR出力をトリガするかどうかを決定するように構成される。停止選択器は、トークンがコンテキストベクトルから導出されるべきである可能性が高いのはいつであるかをコンテキストベクトルから決定することができるように訓練される。停止選択器の出力は、停止確率に対応する。
【0033】
例えば、第3の確率は、特定のエンコーダ時間ステップjにおいてi番目の復号を停止する尤度を表す。
【0034】
停止選択器は、訓練されたモデルを備えることがある。例えば、訓練されたモデルは、ディープニューラルネットワーク(DNN)を備える。
【0035】
第2の態様によれば、音声認識システムを訓練するためのコンピュータ実施方法であって、発話音声フレームおよび訓練トークンを備える訓練データについて、
フレームを符号化することと、
フレームの符号化からコンテキストベクトルを決定することと、
訓練可能モデルを備えるエージェントを介して、コンテキストベクトルからアクション確率を導出することと、
アクション確率が既定の条件を満たすのに応答して、コンテキストベクトルから予測トークンを導出することと、
予測トークンを訓練トークンと比較することによって予測正当性を決定することと、ここにおいて、予測正当性が、予測トークンが訓練トークンと一致するときに、予測が正しいことを示す、
予測トークンに基づいて停止位置を取得することと、ここにおいて、停止位置が、既定の条件が満たされる時間ステップを表す、
決定された予測正当性および取得された停止位置に基づいて報酬を決定することと、
決定された報酬に基づいてエージェントの重みを更新することと、を備える方法が提供される。
【0036】
開示される音声認識システムを訓練する方法は、音声認識システムの挙動に依拠する。それは、教師あり学習には依拠しない。代わりに、強化学習に依拠する。訓練可能エージェントは、予測正当性(予測精度)を維持しながら改善された停止位置を学習するように、予測正当性と取得された停止位置とに基づいて報酬が与えられる。
【0037】
実施形態では、報酬を決定することは、
第1の訓練エポックから第1の予測正当性および第1の停止位置を取得することと、
第2のエポックから第2の予測正当性および第2の停止位置を取得することと、ここにおいて、第1のエポックが、第2のエポックより先行する、
第1の予測正当性を第2の予測正当性と比較し、第1の停止位置を第2の停止位置と比較することと、を備える。
【0038】
実施形態では、決定された報酬は、
第2の停止位置が第1の停止位置より大きいとき、
第2の停止位置が第1の停止位置と等しく、第1の予測正当性が第2の予測正当性と異なるとき、または
第2の停止位置が第1の停止位置より小さく、第2の予測正当性が予測が正しいことを示すときに、第1の値を有し、
決定された報酬は、
第2の停止位置が第1の停止位置と等しく、第1の予測精度が第2の予測精度と等しいとき、または
第2の停止位置が第1の停止位置より小さく、第1および第2の予測精度が等しく、低いときに、第2の値を有し、
決定された報酬は、第2の停止位置が第1の停止位置より小さく、第2の予測精度が第1の予測精度より低いときに、第3の値を有し、
第1の値は、第2の値より大きく、第2の値は、第3の値より大きい。
【0039】
低い予測精度は、予測が誤りであることを示す。例えば、低い予測精度は、予測精度が所定の値より小さいことを意味する。
【0040】
実施形態では、第1の値は0であり、第2および第3の値は負である。
【0041】
一例では、コンテキストベクトルを決定することは、
第2の確率を決定することを備え、第2の確率は、自己注意デコーダ層の注意重みに対応する。
【0042】
実施形態では、この方法は、決定された第2の確率をアキュムレータ変数に加算することを備え、既定の条件は、アキュムレータ変数を所定のしきい値と比較することを備える。
【0043】
実施形態では、既定の条件は、アキュムレータ変数が所定のしきい値未満であるときに満たされる。
【0044】
さらに別の態様によれば、音声認識のためのシステムが提供され、このシステムは、プロセッサを備え、このプロセッサは、
発話音声フレームを受け取り、
受け取られたフレームを符号化し、
受け取られたフレームの符号化からコンテキストベクトルを決定し、
コンテキストベクトルからアクションを導出し、
アクションが既定の条件を満たすのに応答して、コンテキストベクトルからトークンを導出し、
トークンに基づいて機能を実行するように構成され、機能は、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える。
【0045】
別の例によれば、音声認識のためのコンピュータ実施方法であって、発話音声フレームを受け取ることと、受け取られたフレームを符号化することと、受け取られたフレームの符号化からコンテキストベクトルを決定することと、コンテキストベクトルから第3の確率を導出することと、第3の確率が既定の条件を満たすのに応答して、コンテキストベクトルからトークンを導出することと、トークンに基づいて機能を実行することと、を備え、この機能が、テキストの出力またはコマンドの実行のうちの少なくとも1つを備える、方法が提供される。
【0046】
この方法は、音声認識の精度を改善し、待ち時間を低減する。この方法では、発話音声フレームが受け取られ、次いで符号化される。この符号化から、コンテキストベクトルが決定される。コンテキストベクトルは、受け取られたフレーム中に存在する音響情報と、履歴音響情報とに関係するベクトルである。コンテキストベクトルは、実行中に計算される。例えば、コンテキストベクトルは、既定の条件が満たされることを確認するステップの前に決定される。このコンテキストベクトルは、暫定コンテキストベクトルと呼ばれることもある。
【0047】
第3の確率は、停止確率と呼ばれることもあり、受け取られた発話音声フレームについてトークンがコンテキストベクトルから導出される尤度を表す。第3の確率は、上述の第2の確率とは異なる。停止確率が既定の条件を満たすときに、トークンがコンテキストベクトルから導出される。
【0048】
例えば、第3の確率は、特定のエンコーダ時間ステップjにおいてi番目の復号を停止する尤度を表す。
【0049】
停止確率は、停止選択器を介してコンテキストベクトルから導出される。停止選択器は、訓練されたモデルを備える。停止選択器は、停止確率を提供するように構成される。停止選択器は、入力としてコンテキストベクトルを取り込む。停止選択器は、ロバストな停止位置の決定を可能にし得る。
【0050】
受け取られたフレームは、自己注意エンコーダによって符号化されることがある。自己注意エンコーダは、自己注意エンコーダ層を備える。自己注意エンコーダ層は、自己注意エンコーダ層のスタックを備えることがある。エンコーダ状態は、エンコーダニューラルネットワークの自己注意エンコーダ層によって計算されることがある。エンコーダ状態はベクトルである。
【0051】
例えば、コンテキストベクトルは、エンコーダ状態を使用して導出される。
【0052】
例えば、コンテキストベクトルは、デコーダニューラルネットワークの自己注意デコーダ層を使用して計算される。
【0053】
自己注意デコーダ層は、複数の注意ヘッドを備えるマルチヘッド自己注意デコーダ層であることがある。コンテキストベクトルは、複数の注意ヘッドの注意ヘッドから導出される。
【0054】
自己注意デコーダ層は、自己注意デコーダ層のスタックを備えることがある。自己注意デコーダ層の数は、自己注意エンコーダ層の数に対応することがある。
【0055】
一例では、自己注意デコーダ層のスタックのうちの1つの自己注意デコーダ層は、停止選択器を備える。このデコーダ層は、例えば最後のデコーダ層であることがある。
【0056】
別の例によれば、音声認識システムを訓練するためのコンピュータ実施方法であって、発話音声フレームおよび訓練トークンを備える訓練データについて、
フレームを符号化することと、
期待停止確率を決定することと、
期待コンテキストベクトルを導出することと、
期待コンテキストベクトルから予測トークンを導出することと、
予測トークンを訓練トークンと比較することと、前記比較に基づいて音声認識システムの重みを更新することと、を備える方法が提供される。
【0057】
期待停止確率は、全ての可能な停止位置(エンコーダ時間ステップ)と、それらの停止確率(第3の確率)とを考慮することによって取得される。
【0058】
期待コンテキストベクトルは、期待停止確率と、フレームの符号化から導出されたコンテキストベクトルとから導出される。
【0059】
予測トークンの訓練トークンとの比較は、損失関数に従って予測トークンと訓練トークンとの間の差を決定することを備える。
【0060】
これらの方法は、コンピュータ実施方法である。実施形態によるいくつかの方法は、ソフトウェアによって実施されることが可能であるので、いくつかの実施形態は、任意の適当な担持媒体で汎用コンピュータに提供されるコンピュータコードを包含する。担持媒体は、フロッピー(登録商標)ディスク、CD-ROM、磁気デバイスまたはプログラマブルメモリデバイスなどの任意の記憶媒体、あるいは例えば電気信号、光信号、またはマイクロ波信号などの任意の信号などの任意の一時的媒体を備える可能性がある。担持媒体は、非一時的コンピュータ可読記憶媒体を備えることもある。さらに別の態様によれば、上述の方法のいずれかをコンピュータに実行させるように構成されたコンピュータ可読コードを備えた担持媒体が提供される。
【0061】
説明のために、主題となる革新が適用され得る例示的な状況について、図1Aから図1Dに関連して説明する。ただし、これらは例示であり、主題となる革新は、例えば音声認識が適用可能な任意の状況など、任意の適当な状況で適用され得ることを理解されたい。
【0062】
音声アシスタントシステム
図1Aは、例示的な実施形態による音声アシスタントシステム120を示す図である。
【0063】
ユーザ110は、音声アシスタントシステム120に対してコマンド112、114、116を発語することがある。ユーザ110がコマンド112、114、116を発語したのに応答して、音声アシスタントシステムは、そのコマンドを実行し、これは可聴応答を出力することを含むことがある。
【0064】
発語されたコマンド112、114、116を受け取るために、音声アシスタントシステム120は、マイクロフォンを含む、またはマイクロフォンに接続される。可聴応答を出力するために、音声アシスタントシステム120は、スピーカを含む、またはスピーカに接続される。音声アシスタントシステム120は、発語されたコマンドを認識する、そのコマンドを実行する、または実行させる、および/あるいは適当な可聴応答を出力させるのに適した、例えばソフトウェアおよび/またはハードウェアの機能を含むことがある。あるいは、またはこれに加えて、音声アシスタントシステム120は、インターネットおよび/またはローカルエリアネットワークなどのネットワークを介して、例えばクラウドコンピューティングシステムおよび/またはローカルサーバなど、発語されたコマンドを認識する、またはそのコマンドを実行させるのに適した1つまたは複数の他のシステムに接続されることもある。この機能の第1の部分が、音声アシスタントシステム120のハードウェアおよび/またはソフトウェアによって実行され、この機能の第2の部分が、1つまたは複数の他のシステムによって実行されてもよい。いくつかの例では、この機能、またはその大部分が、1つまたは複数の他のシステムによって提供されることもあり、その場合には、これらの1つまたは複数の他のシステムはネットワークを介してアクセス可能であるが、例えば音声アシスタントシステム120のネットワークからの切断、および/あるいは1つまたは複数の他のシステムの故障によってそれらがアクセス可能でないときには、この機能は音声アシスタントシステム120によって提供されることができる。これらの例では、音声アシスタントシステム120は、例えばその1つまたは複数の他のシステムに接続せずに動作することができる状態のままでありながら、音声認識の質を向上させるため、および/または可聴出力の質を向上させるために、より大きな範囲のコマンドを実行することができるなど、1つまたは複数の他のシステムのより大きな計算資源およびデータ可用性を利用することができることがある。
【0065】
例えば、コマンド112では、ユーザ110は、「Xは何?」と尋ねている。このコマンド112は、用語Xの定義を提供するための発語コマンドとして音声アシスタントシステム120によって解釈され得る。このコマンドに応答して、音声アシスタントシステム120は、用語Xの定義を取得するために、例えばローカルデータベース、遠隔データベース、あるいは別のタイプのローカルまたは遠隔のインデックスなどの知識ソースに問い合わせることができる。用語Xは、定義が取得されることが可能な任意の用語であり得る。例えば、用語Xは、例えば名詞、動詞、または形容詞などの辞書用語、あるいは人物または会社の名前など、実在するものの名称であってもよい。定義が知識ソースから取得されたら、その定義は、例えば「Xは[定義]です」という形態のセンテンスなどのセンテンスに合成され得る。次いで、このセンテンスは、例えば音声アシスタントシステム120のテキスト/音声合成機能を用いて可聴出力112に変換され、音声アシスタントシステム120に含まれる、または音声アシスタントシステム120に接続されたスピーカを用いて出力され得る。
【0066】
別の例として、コマンド114では、ユーザ110は、「照明を消して」と言っている。このコマンド114は、1つまたは複数の照明を消すための発語コマンドとして音声アシスタントシステムによって解釈され得る。コマンド114は、文脈依存的に音声アシスタントシステム120によって解釈されることもある。例えば、音声アシスタントシステム120は、それが位置している部屋を認識しており、特にその部屋内の照明を消すこともある。このコマンドに応答して、音声アシスタントシステム120は、例えば1つまたは複数のスマート電球をそれ以上発光させないようにするなど、1つまたは複数の照明を消灯させることができる。音声アシスタントシステム120は、例えば音声アシスタントシステムと1つまたは複数の照明との間のBluetooth(登録商標)接続などのワイヤレス接続を介して1つまたは複数の照明と直接対話することによって、あるいは例えば照明を消灯するための1つまたは複数のメッセージをスマートホームハブまたはクラウドスマートフォーム制御サーバに送るなど、間接的に照明と対話することによって、1つまたは複数の照明を消灯させることができる。音声アシスタントシステム120は、音声アシスタントシステム120がコマンドを聞いて理解したことをユーザに対して確認する、例えば「消灯します」という発語された音声などの可聴応答124を生成することもできる。
【0067】
さらなる例として、コマンド116では、ユーザ110は、「音楽を流して」と言っている。このコマンド116は、音楽を再生するための発語コマンドとして音声アシスタントシステムによって解釈され得る。このコマンドに応答して、音声アシスタントシステム120は、ローカルの音楽ファイルまたは音楽ストリーミングサービスなどの音楽ソースにアクセスし、音楽ソースから音楽をストリーミングし、ストリーミングされた音楽126を、音声アシスタントシステム120に含まれる、または音声アシスタントシステム120に接続されたスピーカから出力することができる。音声アシスタントシステム120によって出力される音楽126は、ユーザ110に合わせて個別化されてもよい。例えば、音声アシスタントシステム120は、例えばユーザ110の声の性質によってユーザ110を認識する、またはユーザ110と固定的に関連付けられ、それによりユーザ110によって以前に再生された音楽を再開する、またはユーザ110に個別化されたプレイリストを再生することもある。
【0068】
音声文字変換システム
図1Bは、例示的な実施形態による音声文字変換システムを示す図である。
【0069】
ユーザ130は、コンピュータ140に向かって発語すればよい。ユーザが発語するのに応答して、コンピュータ140は、発話132の内容を表すテキスト出力142を生成する。
【0070】
発話を受け取るために、コンピュータ140は、マイクロフォンを含む、またはマイクロフォンに接続される。コンピュータ140は、発話音声の内容を認識し、例えば発話の内容を文字変換するなど発話の内容を表すテキストを出力するのに適したソフトウェアを含むことができる。あるいは、またはこれに加えて、コンピュータ140は、例えばインターネットおよび/またはローカルエリアネットワークなどのネットワークを介して、発話音声の内容を認識し、発話の内容を表すテキストを出力するのに適した1つまたは複数の他のシステムに接続されることもある。機能の第1の部分が、コンピュータ140のハードウェアおよび/またはソフトウェアによって実行され、機能の第2の部分が、1つまたは複数の他のシステムによって実行されてもよい。いくつかの例では、この機能、またはその大部分が、1つまたは複数の他のシステムによって提供されることもあり、その場合には、これらの1つまたは複数の他のシステムはネットワークを介してアクセス可能であるが、例えばコンピュータ140のネットワークからの切断、および/あるいは1つまたは複数の他のシステムの故障によってそれらがアクセス可能でないときには、機能はコンピュータ140によって提供されることができる。これらの例では、コンピュータ140は、例えばその1つまたは複数の他のシステムに接続せずに動作することができる状態のままでありながら、音声文字変換の質を向上させるために、1つまたは複数の他のシステムのより大きな計算資源およびデータ可用性を利用することができることがある。
【0071】
出力されるテキスト142は、コンピュータ140に含まれる、または接続されたディスプレイに表示されることが可能である。出力されるテキストは、例えばワードプロセッシングコンピュータプログラムまたはウェブブラウザコンピュータプログラムなど、コンピュータ140上で動作する1つまたは複数のコンピュータプログラムに入力されることもある。
【0072】
音声アシスタント方法
図1Cは、例示的な実施形態による音声アシスタントを実行する方法150を示す流れ図である。任意選択のステップは、破線で示されている。この例示的な方法150は、例えば図7に関連して説明するハードウェア700などの1つまたは複数のコンピューティングデバイスによって実行される1つまたは複数のコンピュータ実行可能命令として実装されることがある。1つまたは複数のコンピューティングデバイスは、例えば音声アシスタントシステム120などの音声アシスタントシステムである、または音声アシスタントシステムを含むこともあり、および/あるいはデスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、スマートテレビジョン、またはゲームコンソールなどの多目的コンピューティングデバイスに一体化されることもある。
【0073】
ステップ152で、発話音声が、例えば音声アシスタントシステムのマイクロフォン、あるいは多目的コンピューティングデバイスに一体化または接続されたマイクロフォンなどのマイクロフォンを用いて受け取られる。発話音声が受け取られるとき、発話音声は、例えば音声アシスタントシステムまたは多目的コンピューティングデバイスのメモリなどのメモリにバッファリングされることがある。
【0074】
ステップ154で、発話音声の内容が認識される。発話音声の内容は、例えば図2の方法200、図3Aの方法300A、または図3Bの方法300Bなど、本明細書に記載される方法を用いて認識され得る。これらの方法を使用する前に、音声は、例えば図6の方法600またはその態様を用いるなどして前処理されることもある。認識された発話音声の内容は、テキスト、構文的内容、および/または意味論的内容であることがある。認識された内容は、1つまたは複数のベクトルを用いて表現されることがある。さらに例えばさらなる処理の後で、または別法として、認識された内容は、1つまたは複数のトークンを用いて表現されることもある。認識された内容がテキストである場合には、各トークンおよび/またはベクトルは、文字、音素、形態素、あるいはその他の形態学的単位、単語部分、または単語を表現することがある。
【0075】
ステップ156で、発話音声の内容に基づいてコマンドが実行される。実行されるコマンドは、限定されるわけではないが、図1Aに関連して説明したコマンド112、114、116のうちのいずれかであることもあり、記載される方法で実行され得る。実行されるコマンドは、認識された内容を、1つまたは複数のコマンドフレーズまたはコマンドパターンと照合することによって決定され得る。この照合は、近似的なものでよい。例えば、照明を消灯するコマンド114では、コマンドは、例えば「照明を消す」または「照明消す」など、単語「照明」および「消す」を含むフレーズと照合されればよい。コマンド114は、「照明を落とす」または「電気消す」など、「照明を消す」に意味論的に近似的に対応するフレーズと照合されることもある。
【0076】
ステップ158で、例えば音声アシスタントシステムまたは多目的コンピューティングデバイスに含まれる、または接続されるスピーカを用いて、発話音声の内容に基づいて可聴応答が出力される。可聴応答は、図1Aに関連して説明した可聴応答122、124、126のうちのいずれかであることもあり、記載される方法と同じ、または同様の方法で生成され得る。可聴応答は、発語されたセンテンス、単語、またはフレーズ、音楽、あるいは例えば効果音またはアラームなどの別の音声であることがある。可聴応答は、発話音声の内容自体に基づくこともあり、および/または例えばそれ自体が発話音声の内容に基づく実行されるコマンドに基づくなど、発話音声の内容に間接的に基づくこともある。
【0077】
可聴応答が発語されたセンテンス、フレーズ、または単語である場合、可聴応答を出力することは、センテンス、フレーズ、または単語のテキストベクトルまたはトークン表現をそのセンテンス、フレーズ、または単語に対応する発語音声に変換するテキスト音声機能を使用することを含むことがある。センテンスまたはフレーズの表現は、発話音声の内容自体および/または実行されるコマンドに基づいて合成されていることもある。例えば、コマンドが「Xは何?」という形態の定義検索コマンドである場合には、発話音声の内容は、Xを含み、コマンドは、定義[def]が知識ソースから取り出されるようにする。「Xは[def]です」という形態のセンテンスが合成され、ここで、Xは、発話音声の内容に由来するものであり、[def]は、コマンドが実行されることによって知識ソースから取り出された内容である。
【0078】
別の例として、コマンドが、1つまたは複数のスマート電球を消灯させる照明消灯コマンドなど、スマートデバイスに機能を実行させるコマンドである場合には、可聴応答は、その機能が実行された、または実行されていることを示す効果音であってもよい。
【0079】
図面に破線で示されているように、可聴応答を生成するステップは、任意選択であり、一部のコマンドおよび/または一部の実装では行われないこともある。例えば、スマートデバイスに機能を実行させるコマンドの場合、その機能は、可聴応答が出力されることなく実行されることもある。例えば照明が消灯状態になっているなどコマンドが正常に完了したことを示す他のフィードバックをユーザが有するという理由で、可聴応答が出力されないこともある。
【0080】
音声文字変換方法
図1Dは、例示的な実施形態による音声文字変換を実行する方法160を示す流れ図である。この例示的な方法160は、例えば図7に関連して説明するハードウェア700などの1つまたは複数のコンピューティングデバイスによって実行される1つまたは複数のコンピュータ実行可能命令として実装されることがある。1つまたは複数のコンピューティングデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、スマートテレビジョン、またはゲームコンソールなどのコンピューティングデバイスであることもある。
【0081】
ステップ162で、発話音声が、例えばコンピューティングデバイスに一体化または接続されたマイクロフォンなどのマイクロフォンを用いて受け取られる。発話音声が受け取られるとき、発話音声は、例えばコンピューティングデバイスのメモリなどのメモリにバッファリングされることがある。
【0082】
ステップ164で、発話音声の内容が認識される。発話音声の内容は、例えば図2の方法200、図3Aの方法300A、または図3Bの方法300Bなど、本明細書に記載される方法を用いて認識され得る。これらの方法を使用する前に、音声は、例えば図6の方法600またはその態様を用いるなどして前処理されることもある。認識された発話音声の内容は、テキスト内容、構文的内容、および/または意味論的内容であることがある。認識された内容は、1つまたは複数のベクトルを用いて表現されることがある。さらに例えばさらなる処理の後で、または別法として、認識された内容は、1つまたは複数のトークンを用いて表現されることもある。認識された内容がテキストである場合には、各トークンおよび/またはベクトルは、文字、音素、形態素、あるいはその他の形態学的単位、単語部分、または単語を表現することがある。
【0083】
ステップ166で、発話音声の内容に基づいてテキストが出力される。認識された発話音声の内容がテキスト内容である場合、出力されるテキストは、テキスト内容であることもあるし、あるいは認識されたテキスト内容から導出されたものであることもある。例えば、テキスト内容は、1つまたは複数のトークンを用いて表現されることがあり、出力されるテキストは、これらのトークンを、それらが表現する文字、音素、形態素、あるいはその他の形態学的単位、単語部分、または単語に変換することによって導出されることがある。認識された発話音声の内容が意味論的内容である、または意味論的内容を含む場合には、その意味論的内容に対応する意味を有する出力テキストが導出されることがある。認識された発話音声の内容が構文的内容である、または構文的内容を含む場合には、その構文的内容に対応する例えば文法構造などの構造を有する出力テキストが導出されることがある。
【0084】
出力されるテキストは、表示されてもよい。出力されるテキストは、ワードプロセッサまたはウェブブラウザなどの1つまたは複数のコンピュータプログラムに入力されることがある。さらなる処理が、出力されるテキストに対して実行されることもある。例えば、出力されるテキスト中の綴りおよび文法の誤りが、強調または訂正されることもある。別の例では、出力されるテキストが、例えば機械翻訳システムを用いるなどして翻訳されることもある。
【0085】
図2-方法の流れ図
図2は、実施形態による音声認識方法を示す流れ図である。ステップ210で、発話音声フレームが受け取られる。発話音声フレームは、発話を構成する音声信号から導出される。例えば、発話音声は、ユーザの声の音声を含む。発話音声フレームは、受け取られる前に前処理されることもある。発話音声フレームがどのように前処理されて音声信号から取得されるかについては、後述する。音声信号は、マイクロフォンなどの音声取込み装置から取得されることがある。発話音声フレームは、複数の発話音声フレームの一部として受け取られることもある。発話音声フレームは、発話音声ウィンドウと呼ばれることもある。例えば、このウィンドウは、25ミリ秒の長さを有することがある。複数の発話音声フレームは、発話音声チャンクと呼ばれることもある。
【0086】
ステップ230で、発話音声フレームが符号化される。発話音声フレームの符号化は、その発話音声フレームを表現する。発話音声フレームは、例えば自己注意エンコーダニューラルネットワークなどのエンコーダニューラルネットワーク、および/あるいは例えば判断木エンコーダまたはガウス過程エンコーダなどのカーネル法エンコーダなどの別のタイプの機械学習型エンコーダを用いて符号化されることがある。あるいは、またはこれに加えて、発話音声フレームは、プログラムされたエンコーダおよび/または符号化方法を用いて符号化されることもある。例えば、発話音声フレームは、高速フーリエ変換アルゴリズムなどのアルゴリズムを用いて符号化されてもよい。
【0087】
特に、発話音声フレームは、例えば発話音声チャンクの一部としてなど、複数の発話音声フレームの一部として符号化されることがある。例えば発話音声チャンクの各フレームが同時に符号化されることもあるなど、複数の発話音声フレームの各フレームが同時に符号化されてもよい。発話音声チャンクは、以下に述べるように自己注意エンコーダを用いて符号化されることもある。
【0088】
ステップ240で、コンテキストベクトルcが決定され(ステップ240-a)、アクション(a)が導出され(240-b)、取得されたアクションが所定の条件を満たすかどうかが決定される(250)。
【0089】
ステップ240-aでは、コンテキストベクトルは、ステップ230における発話音声フレームの符号化に基づいて決定される。コンテキストベクトルの決定については、以下でさらに詳細に説明する。簡単に言うと、コンテキストベクトルは、符号化されたフレームの音響情報に基づく。また、履歴音響情報(例えば以前の発話音声フレームから得られる)を担持することもある。このコンテキストベクトルは、暫定コンテキストベクトルとも呼ばれる。後述するように、暫定コンテキストベクトルは、自己回帰的に(すなわちその過去の値に基づいて)各時間ステップ(フレーム)ごとに取得されることがある。
【0090】
ステップ240-bでは、コンテキストベクトルからアクションが導出される。例えば、アクションは、エージェントを用いて導出される。エージェントは、訓練されたニューラルネットワークを備える。エージェントは、Πθで表される方策を実施する。エージェントは、訓練可能なパラメータであるパラメータθを備える。パラメータθは、重みと呼ばれることもある。例えば、ニューラルネットワークは、2層DNNとして実装される。エージェントは、入力としてコンテキストベクトルを取り込む。エージェントの方策Πθは、コンテキストベクトルをアクション(a)にマッピングする。
【0091】
エージェントは、その周囲環境との対話に基づいて特定のアクションを行うモジュールまたはアルゴリズムとして理解され得る。この場合、環境は、ASRシステムである。エージェントは、ASRシステムと対話する。エージェントは、入力として状態を取り込む。状態とは、エージェント自体がその中にいるとエージェントが認識する構成である。例えば、状態は、コンテキストベクトルによって表現される。エージェントは、入力としてコンテキストベクトルを取り込む。アクションは、エージェントが行うことができる可能な動きのうちの1つである。例えばエージェントがアクション1または0を発することができるなど、有限数の可能な動きがあることもある。方策Πθは、現在の状態に基づいて次のアクションを決定するためにエージェントによって実施される戦略である。
【0092】
エージェントの訓練されたニューラルネットワークは、2層DNNとして実装されることがある。例えば、DNNは、2つの全結合層を備え、ここで、第1の層の入力次元および出力次元は{D、D}であり、第2の層の入力次元および出力次元は{D、1}であり、Dは、コンテキストベクトルの次元である。あるいは、エージェントは、DNNの場合と同じ次元を有する、2層再帰型ニューラルネットワーク(RNN)を備えるニューラルネットワークを備える。
【0093】
ステップ250では、取得されたアクションが所定の条件を満たすかどうかが決定される。条件が満たされる場合には、この方法は、ステップ260に進む。条件が満たされると、停止する決定が行われる。停止する決定とは、ステップ240を停止することを指す。
【0094】
後述するように、ステップ240は、トランスフォーマASRのデコーダエンドで実行されることがある。例えば、ステップ240は、デコーダニューラルネットワークのデコーダ層によって実行されることがある。ステップ240は、復号ステップと呼ばれることもある。
【0095】
ステップ260で、トークンが導出される。条件が満たされない場合には、この方法は、ステップ240-aに戻り、ここで暫定コンテキストベクトルおよびアクション確率が決定される。その後、ステップ240は、後続の発話音声フレームについて繰り返される。
【0096】
任意選択で、所定の条件を満たすことは、アクションが所定の値に等しいかどうかを決定することを備える。例えば、アクション確率が「1」に等しい場合に、条件が満たされたとみなされる。
【0097】
ステップ260で、トークンが導出される。この音声認識方法では、発話音声がテキストとして認識されるときには、トークンが、文字、音素、形態素、あるいはその他の形態学的単位、単語部分、または単語を表現することがある。
【0098】
ステップ270で、導出されたトークンに基づいて機能が実行される。実行される機能は、コマンドの実行および/またはテキストの出力のうちの少なくとも一方を含む。
【0099】
さらに、任意選択で、以降の図面に関連して述べるように、ステップ240を実行することは、さらに別のコンテキストベクトルを計算することと、結合されたコンテキストベクトルを計算することとを含むことがある。ステップ240を実行することは、1つまたは複数の線形層を使用してコンテキストベクトルまたは結合されたコンテキストベクトルを処理することを含むこともある。ステップ240を実行することは、コンテキストベクトル、結合されたコンテキストベクトル、あるいは分類層を備える1つまたは複数の線形層の出力を処理することを含むこともある。分類層の出力は、各確率またはスコアが所与のトークンが正しいことの尤度を示す、例えば確率またはスコアのベクトルなど、複数の確率またはスコアであることがある。分類層は、交差エントロピ層、ソフトマックス層、あるいはその変形または均等物であることがある。導出されたトークンは、最大の対応する確率またはスコアを有するトークンであることもあるし、あるいは例えば確率またはスコアの大きいトークンの方が選択される可能性が高いなど、確率またはスコアに基づいて確率的に選択されることもある。確率またはスコアは、以前に出力されたトークンに基づいて各トークンについての確率またはスコアを出力する言語モデルをやはり利用するジョイントデコーダと併用されることがある。このようなジョイントデコーダは、言語モデルの確率またはスコアと分類層の確率またはスコアの両方に基づいて結合確率またはスコアを計算することがある。トークンは、その後、最大の結合された確率またはスコアを有するトークンとして導出されることもあるし、あるいは例えば結合された確率またはスコアの大きいトークンの方が選択される可能性が高いなど、結合された確率またはスコアに基づいて確率的に選択されることもある。
【0100】
DRL-HS-DACSを用いた推論-変形1
図3Aは、実施形態による方法300Aを示す概略図である。方法300Aは、例えば図2に関連して説明したステップ240を実施するために使用されることがある。
【0101】
方法300Aは、デコーダニューラルネットワークのデコーダ層に関係する。デコーダ層は、自己注意デコーダ層と呼ばれることもある。デコーダニューラルネットワークは、自己注意デコーダと呼ばれることもある。デコーダ層とデコーダニューラルネットワークについては、以下でさらに説明する。デコーダニューラルネットワークは、1つまたは複数のデコーダ層(l)を備えることがある。
【0102】
方法300Aは、初期化ステップ330Aを備える。ステップ330Aで、コンテキストベクトルが初期化される。コンテキストベクトルは、cl,h i,jで表される。ここで、hは、注意ヘッドの数を示す。「i」は、デコーダステップを表し、「j」は、エンコーダ時間ステップを表す(また、現在考慮中の発話音声フレームに対応する)。以上の表現については、以下でさらに詳細に説明する。
【0103】
「コンテキストベクトル」、「注意ヘッド」、「デコーダステップ」、「エンコーダ時間ステップ」という表現は、トランスフォーマASRに関係するものであり、ここで、トランスフォーマASRは、デコーダエンド適応計算ステップ(DACS:decoder-end adaptive computation steps)で簡素化されている。トランスフォーマASRは、(複数のヘッドが含まれるときに)それらのヘッドにわたって注意重みを結合することと、全てのヘッドについて同じ時間ステップで出力するようにASRをトリガすることとを備えるようにさらに簡素化される。これは、ヘッド同期デコーダエンド適応計算ステップ(HS-DACS:head synchronous decoder-end adaptive computation steps)と呼ばれる。
【0104】
この方法300Aは、深層強化学習ヘッド同期デコーダエンド適応計算ステップ(DRL-HS-DACS:deep reinforcement learning head synchronous decoder-end adaptive computation steps)と呼ばれることもある。ここで、DRLは、本明細書に記載するようなエージェントの使用を指す。HSは、(複数のヘッドが含まれるときに)それらのヘッドにわたって注意重みを結合することと、全てのヘッドについて同じ時間ステップで出力するようにASRをトリガすることとを指す。DACSは、復号ステップ中の注意の累積を指す。DRL-HS-DACSアルゴリズムは、注意重みが厳密に左から右に向かって各エンコーダ状態から直ちに算出されることが可能な、単調注意ファミリに属する。以下で説明するように、自己注意デコーダ層のDRL-HS-DACSサブ層が、方法300Aを実施することもある。
【0105】
方法300Aでは、各デコーダ層(l)が別々に取り上げられる。換言すれば、方法300Aのステップは、デコーダニューラルネットワークの各デコーダ層(l)ごとに実行される。
【0106】
ステップ330Aで、コンテキストベクトルが初期化される。例えば、コンテキストベクトルは、ゼロに初期化される。cl,h i,0=0である。
【0107】
各発話音声フレーム(j)ごとに、条件が満たされるまで、以下のステップが実行される。
【0108】
ステップ340Aで、確率が決定される。確率は、pl,h i,jで表される。確率を得るために、注意エネルギーが最初に計算される。例えば、l番目のデコーダ層の復号ステップiをとると、特定のヘッドhによって、時間ステップjの注意エネルギーel,h i,jは、次のように計算される。
【0109】
【数1】
【0110】
数式1において、qおよびkは、デコーダ状態およびエンコーダ状態である。次いで、注意エネルギーel,h i,jがシグモイド関数に渡されて、確率を生成する。
【0111】
【数2】
【0112】
確率(pl,h i,j)は、ヘッドhが現在の復号プロセスを終える時間ステップjにおいて達成する信頼度を物理的に表す。数式(2)の確率は、第2の確率と呼ばれることもある。数式(2)の確率は、注意ヘッドによって計算される。数式(2)の確率は、注意重み、または停止確率と呼ばれることもある。第2の確率は、数式(11)に関連して説明する停止確率とは異なる。数式(11)の停止確率は、第3の確率と呼ばれることもある。
【0113】
ステップ350Aで、暫定コンテキストベクトル(cl,h i,j)が計算される。例えば、暫定コンテキストベクトルは、次のように各時間ステップごとに自己回帰的にプロンプトされる。
【0114】
【数3】
【0115】
数式(3)において、cl,h i,j-1は、以前のエンコーダステップj-1の暫定コンテキストベクトルを表し、vl,h jは、時間ステップjにおけるエンコーダ状態を表す。項cl,h i,j-1は、j=1のときには推奨されない(例えば0に設定される)。
【0116】
なお、暫定コンテキストベクトルは、実行中に計算され、履歴による全ての音響情報を担持することに留意されたい。コンテキストベクトルは、最初に計算され、その後、停止判断につながる(停止判断については後述)。
【0117】
ステップ340Aおよび350Aは、各注意ヘッドhごとに実行される。
【0118】
全ての自己注意ヘッドhが考慮された後で、ステップ360Aが実行される。
【0119】
ステップ360Aで、各注意ヘッドhごとに取得された暫定コンテキストベクトルが、連結される(cl i,j)。単一の注意ヘッドがある(h=1)構成では、ステップ360Aは任意選択であることは理解されるであろう。その場合には、ステップ350Aのコンテキストベクトルが、連結されたベクトルの代わりに使用されてもよい。
【0120】
ステップ370Aで、アクション確率(pl ai,j)が導出される。連結されたコンテキストベクトルは、アクション確率が導出されるエージェントモデルに直ちに送られる。なお、暫定コンテキストベクトルは、時間ステップjまで計算されることに留意されたい。アクション確率(pl ai,j)は、エージェントモデルによって計算される確率である。アクション確率(pl ai,j)は、第1の確率と呼ばれることもある。後述するように、アクション確率(pl ai,j)は、停止アクションを命令するアクションを導出するために使用される。
【0121】
アクション確率(pl ai,j)は、次のように得られる。
【0122】
【数4】
【0123】
エージェントは、方策Πθを実施する。数式(4)において、Πl θは、エージェントモデルのパラメータθを仮定してコンテキストベクトルcをアクションの確率pl ai,jにマッピングする、l番目のデコーダ層のエージェントの方策を表す。
【0124】
DNNの出力に加えられたバイアス項bは、エージェントが訓練の初期段階で停止することを妨げて、ASRモジュールが発話全体にアクセスして、可能な限り早期に十分な精度レベルに到達することができるようにする。例えば、バイアス項bは、任意の負の値であってもよい。非限定的な例では、bは、-4である。なお、アクションは単一の時間ステップでサンプリングされるが、アクションはそれ以前の全てのフレームによって決まることに留意されたい。
【0125】
ステップ380Aで、アクションal i,jが、アクションの確率pl ai,jから計算される。例えば、アクションal i,jは、二値を有する。例えば、アクションal i,jは、0または1の値を有する。アクションは、以下のように取得されることがある。方策が0.5未満の確率を与える場合には、「継続」アクション(a=0)が選択され、そうでない場合には、「停止」アクション(a=1)が復号に対して実行される。このアクションは、以下のように取得されることがある。
【0126】
【数5】
【0127】
ステップ370Aおよび380Aは、エージェントによって実行される。
【0128】
ステップ390Aで、アクションal i,jが条件(第1の条件)を満たすかどうかが確認される。例えば、条件は、「アクション値=1(al i,j=1)か?」である。al i,j=1である場合は、停止アクションが実行され、各デコーダ層lについて、方法300Aが終了される。条件が満たされない場合は、後続の時間ステップ(すなわち後続の値j)について方法300Aが繰り返される。
【0129】
DRL-HS-DACSを用いた推論-変形1(アキュムレータ使用)
図3Bは、別の実施形態による方法300Bを示す概略図である。方法300Bは、例えば図2に関連して説明したステップ240を実施するために使用されることがある。
【0130】
方法300Bは、図3Aの方法300Aに類似している。方法300Bも、デコーダ層に関係する。方法300Bも、DRL-HS-DACSと呼ばれることがある。
【0131】
各デコーダ層lごとに、以下のステップが実行される。
【0132】
初期化ステップ330Bが実行される。ステップ330Bは、さらにアキュムレータ変数accl iが初期化されることを除けば、ステップ330Aと同様である。例えば、アキュムレータ変数は、ゼロに初期化される。
【0133】
各発話音声フレーム(j)ごとに、条件が満たされるまで、以下のステップが実行される。
【0134】
ステップ340Bは、第2の確率を取得するために実行される。ステップ350Bで、暫定コンテキストベクトル(cl,h i,j)が計算される。ステップ340Bおよびステップ350Bは、図3Aのステップ340Aおよびステップ350Aと同じである。さらに、方法300Bでは、第2の確率をアキュムレータ変数に加算する加算ステップ345Bが実行される。ステップ345Bは、各自己注意ヘッドごとに実行される。ステップ345Bは、ステップ350Bと同時に実行されてもよい。
【0135】
ステップ340Bと、345Bと、350Bとは、各注意ヘッドhごとに実行される。全ての自己注意ヘッドhが考慮された後で、ステップ360Bが実行される。
【0136】
次いで、ステップ360Bが実行される。ステップ360Bは、ステップ360Aと同じである。
【0137】
次いで、ステップ370Bが実行される。ステップ370Bは、ステップ370Aと同じである。
【0138】
次いで、ステップ380Bが実行される。ステップ380Bは、ステップ380Aと同じである。
【0139】
次いで、ステップ390Bが実行される。ステップ390Bは、ステップ390Aと類似している。ステップ390Aと同様にアクションal i,jが条件(第1の条件と呼ばれることもある)を満たすかどうかを確認することに加えて、アキュムレータ変数が特定の条件(第2の条件と呼ばれることもある)を満たすかどうかも確認される。例えば、アキュムレータ変数が既定のしきい値(第2のしきい値)を超えるかどうかが確認される。一例では、この既定のしきい値は、自己注意ヘッドの数(H)である。
【0140】
方法300Bは、アクションal i,jが条件(第1の条件)を満たし、および/またはアキュムレータ変数が特定の条件(第2の条件)を満たすと、終了される。
【0141】
第2の条件は、モデルがコンテキストベクトルの無制限の大きさによる過剰適合に陥ることを回避することによって、コンテキストベクトルの計算で使用される注意重みのスケールを正則化する効果を有する。
【0142】
第2の条件の目的は、コンテキストベクトル240、250の決定を停止し、トークンを導出するためのバックアップ基準となることである。エージェント(ステップ370Bから380Bに関連して説明した)は、第1の条件に従って方法300Bの停止をトリガするアクションを発することがある。アキュムレータ変数の条件が満たされる前に、エージェントが、このアクションを発することもあり、第1の条件が、満たされることもある。換言すれば、第1の条件は、第2の条件が満たされる前に満たされることがある。
【0143】
いくつかの場合には、第2の条件は、第1の条件が満たされる前に満たされる。したがって、第2の条件を有することにより、ステップ240はより早期に停止されることが可能になり、トークンはより早期に導出される(ステップ260)ことが可能になる。したがって、待ち時間が低減され得る。
【0144】
DRL-HS-DACSのワークフロー
図4は、音声認識方法が実行されるときの、この方法の構成要素400を示す概略図である。図4は、方法300Aおよび300Bに記載した構成要素(状態または変数)のうちの一部が有する可能性がある値の例を示している。特に、図4は、様々なエンコーダ時間ステップ(j)における構成要素のスナップショットを示している。図4は、単一の注意ヘッドに関係する。図4は、エンコーダ時間ステップがj=1からj=6に増加する(図中では左から右に向かう)際の、この方法の進展を示している。
【0145】
エンコーダ状態430は、e1と、e2と、e3と、e4と、e5と、e6とを備える。ejは、エンコーダ時間ステップjにおけるエンコーダ状態eを表す。エンコーダ状態は、例えば図2のステップ230に関連して説明したように、エンコーダ層によって生成される。エンコーダ状態は、数式3とS350Bとに関連して説明したエンコーダ状態vl jに対応することがある。
【0146】
停止確率440は、各時間ステップごとに計算される。停止確率は、ステップ340Bに関連して説明したように取得される。計算された停止確率440は、アキュムレータ変数445に累積される。各時間ステップjにおいて、時間ステップjの停止確率が、アキュムレータ変数に加算される。jが増加するにつれて、アキュムレータ変数に保持される値も増加する。例えば、図4に示すように、j=1からj=6まで、計算される停止確率は、0.1、0.2、0.3、0.2、0.2、0.1であり、j=1からj=5のアキュムレータ値は、0.1、0.3、0.6、0.8、1.0である。
【0147】
暫定コンテキストベクトル450は、エンコーダ状態から計算される。コンテキストベクトル450は、数式(3)を用いて計算される。例えば、停止確率440とエンコーダ状態430とを用いると、j=1では、c1=0.1×e1であり、j=2では、c2=c1+0.2×e2であり、j=3では、c3=c2+0.3×e3であり、j=4では、c4=c3+0.2×e4である。
【0148】
暫定コンテキストベクトル450は、エージェント470に供給される。エージェント470は、240、370B、および/または380Bに関連して説明したエージェントに対応する。
【0149】
各時間ステップごとに導出されるアクション480は、例えばステップ380Bで説明したように取得される。j=1からj=4の導出されるアクションは、0、0、0、および1であることがある。
【0150】
図4の例では、アクション値al i,j=1が、時間ステップj=4で得られる。逆に、アキュムレータ値accl i=H=1は、j=5で得られる。この例では、注意ヘッドが1つしかないので、H=1である。したがって、ステップ390Bまたは390Aに記載する条件について言えば、第1の条件は、第2の条件(j=5になるまで満たされない)より先(j=4)に満たされる。このように、ステップ390Aまたは390Bの第1の条件は、計算がより早期に停止されるようにすることができる。この場合、トークンは、より早期に導出されることがある。暫定コンテキストベクトルの計算は、j=4で停止することがある。したがって、390Aまたは390Bの第1の条件は、計算ステップ数の削減を可能にすることがある。
【0151】
換言すれば、この例では、計算は、時間ステップ4(j=4)で停止し、アクション480「1」がエージェント470によって行われる。停止位置(j=4)までに累積された停止確率445は0.8であり、これは、時間ステップ5で到達されるしきい値1より小さい。これは、計算ステップの削減につながる。
【0152】
上述の音声認識のための方法は、以下の擬似コードによって記述され得る。
【0153】
【数6】
【0154】
この擬似コード(アルゴリズム1)では、<sos>は、センテンスの開始を表すトークンであり、<eos>は、センテンスの終了を表すトークンである。アルゴリズム1に示されるその他の変数およびパラメータは、方法300Aおよび300Bに関連して説明したものに対応する。行4および行5で、初期化ステップ330Bが実行される。行8から行10で、各注意ヘッドごとに(h=1からHについて)、停止確率が決定され(ステップ340B)、アキュムレータが更新され(ステップ345B)、暫定コンテキストベクトルが計算される(ステップ350B)。行12で、暫定コンテキストベクトルが連結される(ステップ360B)。行13および行14で、各エンコーダ時間ステップ(j)ごとに、アクション確率(ステップ370B)およびアクション(ステップ380B)が導出される。アルゴリズムの行14は、数式5に対応する。行16で、「break」は、コンテキストベクトルの導出が停止される停止アクションを表す。行19で、コンテキストベクトルcl iが取得され、デコーダ層lのコンテキストベクトルが、それまでに計算された暫定コンテキストベクトルに設定される。行20で、tiは、アルゴリズムが停止した時間ステップを表す。換言すれば、tiは、停止決定がいつ行われたか(すなわち停止位置)を示す指標を提供する。行20(ti=max(ti,j))で、tiは、tiの現在の値(例えば異なるデコーダ層のもの)またはj(現在のデコーダ層の停止位置)のうちの大きい方に設定される。行22で、各デコーダステップ(i)ごとにトークンyiが導出される。トークンは、最後のデコーダ層l=NdのコンテキストベクトルcNd iから導出される。行23で、デコーダステップ変数(i)が増分される。図5のシステムを参照すると、行22のOutputLayer(.)は、線形および分類層528、ジョイントオンラインデコーダ530、ならびに/または言語モデル540に対応することがある。
【0155】
アルゴリズム1では、復号ステップを停止させることがある3つの測度がある。これらは、すでに述べた第1の条件と第2の条件とを備える。さらに別の条件(条件3、または第3の条件)は、アルゴリズム1の行6に示される条件である。第3の条件は、エンコーダ時間ステップ(j)が、ti-1+MすなわちTより小さい上限に到達するというものである。Tは、発話音声チャンクの長さを表す。Mは、最大先読みステップを表す。Mは、計算を制限するために使用される任意の上限を表す。すでに説明したように、第1の条件は、より早期の停止位置を提供することがある。第2および第3の条件は、停止位置を得るためのバックアップ基準として提供される。
【0156】
図5。アーキテクチャ
図5は、例示的な実施形態による音声認識を実行するシステムを示す概略図である。システム500は、例えば以下に述べるハードウェアなどの1つまたは複数のコンピューティングデバイス上に1つまたは複数のコンピュータ実行可能命令を用いて実装され得る。システム500は、ASRシステム、ASRモジュールまたは音声認識システム、あるいは音声認識モジュールと呼ばれることもある。
【0157】
システム500は、例えば図15に関連して説明するハードウェア900などの1つまたは複数のコンピューティングデバイス上に1つまたは複数のコンピュータ実行可能命令を用いて実装され得る。
【0158】
システム500は、トランスフォーマアーキテクチャに基づく。
【0159】
トランスフォーマアーキテクチャは、両端が純粋な注意機構に基づくスタック層からなるタイプのエンコーダ/デコーダフレームワークである。トランスフォーマに基づくASRシステムでは、畳み込みニューラルネットワーク(CNN)に基づくフロントエンドが、特徴抽出を強化し、サブサンプリングを行うために利用される。各エンコーダ層は、マルチヘッド自己注意モジュールおよびポイントワイズ順伝播型ネットワーク(FFN)としての2つのサブ層のカスケードを備える。モデルの収束を促進するために、層の正規化も、それらの出力に適用される。デコーダ層については、エンコーダ側に存在するサブ層を除けば、音声とテキストのアライメントを生成するために、第3のマルチヘッド交差注意モジュールもそれらの間に存在する。このようなASRシステムの例では、交差注意サブ層は、オンライン復号を実行する可能性を低下させることがある。これは、トランスフォーマによって採用される内積注意機構に反映される。
【0160】
【数7】
【0161】
ここで、KおよびV∈RT×dkは、同一であり、T個の時間ステップを有するエンコーダ状態の行列を表し、Q∈R1×dkは、特定の復号ステップにおけるデコーダ状態のベクトルである。注意エネルギーとも呼ばれる積QおよびKは、上記の状態の次元を示すdkの平方根によってスケールダウンされる。ソフトマックス関数は、グローバル正規化を適用する。以上は、完全な入力センテンスを必要とし、これは、オンラインASRシステムでは使用されないことがある。システム500では、異なるサブ層が使用される。
【0162】
以下、本発明の実施形態によるシステム500について述べる。システム500は、自己注意エンコーダ510を備える。自己注意エンコーダ510は、チャンクワイズ自己注意エンコーダであることもある。自己注意エンコーダは、発話チャンクを受け取る。発話音声チャンクは、複数の音声フレームを含む。自己注意エンコーダ510は、発話音声チャンク内の複数のフレームを符号化して、その複数の発話音声フレームの対応する符号化を生成する。チャンク内の発話音声フレームの符号化は、実質的に同時であってもよい。チャンク内の発話音声フレームの数は、Ncと呼ばれることがある。発話音声チャンクは、例えばそのチャンクのフレームより前に受け取られたフレームなどの、Nl個の左側の発話音声フレームと、例えばそのチャンクのフレームの後に受け取られるフレームなどのNr個の右側の発話音声フレームとによって補完されることがある。発話音声チャンクの符号化のコンテキストを提供するために左側のフレームおよび右側のフレームが使用されるが、復号に使用されるのは、そのチャンク内の発話音声フレームの符号化である。符号化の待ち時間は、例えばNr個のフレームが表す音声の長さなど、右側の発話音声フレームの数に限定されることがある。Ncと、Nlと、Nrとは、互いに等しいこともある。実装では、Ncと、Nlと、Nrとが、64であることもある。
【0163】
自己注意エンコーダ510は、1つまたは複数の畳み込みニューラルネットワーク層512を含む。1つまたは複数の畳み込みニューラルネットワーク層512を用いることにより、チャンク内の発話音声フレームからの音響特徴の抽出を改善することができ、発話音声チャンク内のフレームに対してサブサンプリングを実行することができる。実装では、この1つまたは複数の畳み込みニューラルネットワーク層512は、フレームレートを2倍に低減する2×2のストライドを有する3×3のサイズの256個のカーネルを有する2つの同一の畳み込みニューラルネットワーク層であることもある。この1つまたは複数の畳み込みニューラルネットワーク層は、後続の層のための出力を生成する。
【0164】
自己注意エンコーダ510は、位置符号化層514をさらに含む。位置符号化層514は、1つまたは複数の畳み込みニューラルネットワーク(CNN)層の出力を、例えば他のフレームのエンコーダと比較した所与のフレームに対応するCNNの出力の位置を示す情報などのシーケンス順序情報で増強する。
【0165】
自己注意エンコーダ510は、1つまたは複数の自己注意エンコーダ層516をさらに含む。各自己注意エンコーダ層は、2つのサブ層、すなわち自己注意サブ層とポジションワイズ順伝播型サブ層とを有することがある。自己注意層は、マルチヘッド注意層であることがある。各自己注意エンコーダ層は、各サブ層の後で残差接続と層の正規化とを使用することがある。1つまたは複数の自己注意エンコーダ層516のうちの第1の層への入力は、位置符号化層514の出力である。1つまたは複数の自己注意エンコーダ層の後続の層への入力は、それぞれの直前の自己注意エンコーダ層の出力である。実装では、1つまたは複数の自己注意エンコーダ層516は、12個の自己注意エンコーダ層であることがある。
【0166】
発話音声フレームの符号化は、発話音声フレームを表す。例えば、各自己注意エンコーダ層516は、その発話音声フレームについての情報を含む、その発話音声フレームの符号化を生成する。例えば、符号化は、入力のどの部分が互いに関連があるかについての情報を含む。
【0167】
各自己注意エンコーダ層516は、次のように符号化を生成することができる。自己注意エンコーダ層に入力されたベクトルから、クエリ(Q)、キー(K)、および値(V)の行列が得られる。このQ、K、およびVの行列は、訓練された対応する重み行列を入力に乗算することによって得られる。次いで、QとKとを乗算することによって、スコア(または注意エネルギー)が得られる。このスコアは、(例えば上記の状態の次元を示すdkの平方根で除算することによって)正規化される。次いで、正規化されたスコアに、V行列が乗算される。その結果が、自己注意エンコーダ層の出力である。
【0168】
システム500は、自己注意デコーダ520を備える。自己注意デコーダ520は、入力として、例えば以前に出力されたトークンなど、以前の出力を受け取る。
【0169】
自己注意デコーダ520は、1つまたは複数の埋め込み層522を備える。この1つまたは複数の埋め込み層522は、出力トークンを、例えばベクトル埋め込みなどの出力トークンの埋め込みに処理する。実装では、埋め込みは、例えば256個の要素を有するベクトルであるなど、256の次元数を有する。
【0170】
自己注意デコーダ520は、位置符号化層524を備える。位置符号化層524は、埋め込みを、例えばフレーズまたはセンテンスなどのトークンの出力シーケンス中のトークンの位置を示す情報など、シーケンス順序情報で増強する。
【0171】
自己注意デコーダ520は、1つまたは複数の自己注意デコーダ層526を備える。各自己注意デコーダ層は、3つのサブ層、すなわち自己注意サブ層と、深層強化学習ヘッド同期デコーダ適応計算ステップ(DRL-HS-DACS)サブ層と、ポジションワイズ順伝播型サブ層とを有することがある。各自己注意デコーダ層は、3つのサブ層を有することがあり、DRL-HS-DACS層は、3つのうちの交差注意サブ層中にある。DRL-HS-DACSサブ層は、エージェントを備え、本明細書に記載するステップ240,300A、または300Bを実行する。
【0172】
各自己注意デコーダ層は、各サブ層の後で残差接続と層の正規化とを使用することがある。1つまたは複数の自己注意デコーダ層のうちの第1の層は、入力として、例えば位置符号化層の出力など、増強された埋め込みを受け取る。後続の自己注意デコーダ層は、それより前の自己注意デコーダ層の出力を受け取る。注意機構を経由して、自己注意デコーダ層は、自己注意エンコーダ510によって生成されたフレームの符号化にもアクセスする。実装では、1つまたは複数の自己注意デコーダ層526は、6個の自己注意デコーダ層であることがあり、各自己注意デコーダ層の自己注意サブ層およびDRL-HS-DACSサブ層の次元は、256であることがあり、各自己注意デコーダ層のポジションワイズ順伝播型サブ層は、2048個のユニットを有することがあり、各自己注意デコーダ層は、4つの注意ヘッドを含むことがある。
【0173】
自己注意デコーダ520は、線形および分類層528を備える。線形および分類層は、自己注意デコーダ層の出力を処理して、例えば各確率またはスコアが所与のトークンが正しいことの尤度を示す、例えば確率またはスコアのベクトルなど、複数の確率またはスコアを決定する。分類層は、交差エントロピ層、ソフトマックス層、あるいはその変形または均等物であることがある。
【0174】
システム500は、ジョイントオンラインデコーダ530を備える。ジョイントオンラインデコーダは、自己注意デコーダ520の線形および分類層528からこの複数の確率またはスコアを受け取る。ジョイントデコーダ530は、以前に出力されたトークンに基づいて各トークンについての確率またはスコアを出力する言語モデル540も利用する。このようなジョイントデコーダは、言語モデルの確率またはスコアと、自己注意デコーダの線形および分類層から受け取られた確率またはスコアの両方に基づいて、結合確率またはスコアを計算することができる。結合確率またはスコアは、それぞれ、言語モデルの確率またはスコアと受け取られた確率またはスコアとの重み付けされた合計であることがある。ジョイントデコーダは、コネクショニスト時系列分類(CTC)スコアを利用して復号を実行することもある。結合確率またはスコアは、CTCスコアにさらに基づくこともあり、各結合確率またはスコアは、言語モデルの確率またはスコアと、受け取られた確率またはスコアと、CTCスコアとの重み付けされた合計であることがある。結合スコアは、λCTCCTC+λtr+λlmlmとして定義され、ここで、sCTCは、CTCスコアであり、srは、受け取られた確率またはスコアであり、slmは、言語モデルの確率またはスコアであり、λCTCと、λrと、λlmとは、重みづけパラメータである。各重みづけパラメータは、0と1の間であることもある。これらの重みづけパラメータは、合計が1になることもある。これらの結合確率またはスコアは、例えば最大の確率またはスコアを有するトークンを選択することによって、あるいは確率論的になど、ステップ260に関連して説明した方法のうちのいずれかによってトークンを導出するために使用されることがある。ビームサーチがトークンを導出す際に使用されることもある。
【0175】
システム500は、言語モデル540を備える。この言語モデルは、ニューラルネットワークを用いて実装される深層言語モデルであってもよい。例えば、この言語モデルは、長短期記憶ネットワークを用いて実装されることもある。
【0176】
音声フレームの取得
図6は、例えば処理された発話音声を音声認識に利用する前の発話音声の処理、および/または音声認識システム600の訓練など、発話音声を前処理する方法600を示す流れ図である。任意選択のステップは、破線で示されている。この例示的な方法600は、例えば図7に関連して説明するハードウェア700などの1つまたは複数のコンピューティングデバイスによって実行される1つまたは複数のコンピュータ実行可能命令として実装されることがある。
【0177】
ステップ610で、発話音声は、フレームに分割される。各フレームは、発話音声ウィンドウであることがある。実装では、各フレームは、10ミリ秒のシフトを有する25ミリ秒の発話音声ウィンドウであることがある。
【0178】
ステップ620で、各発話音声フレームごとに音響特徴が抽出される。音響特徴は、フィルタバンクを用いて抽出されることがある。実装では、音響特徴は、3次元のピッチ関係情報と合わせた80次元のフィルタバンクであることがある。
【0179】
ステップ630で、音響特徴に対して、ケプストラム平均および分散正規化が実行される。ケプストラム平均および分散正規化は、任意選択である。ケプストラム平均および分散正規化は、訓練時に音響特徴に適用されることもある。
【0180】
ステップ640で、Ncをチャンクサイズとして、Nc個のフレームについての音響特徴がスプライスされて、発話音声チャンクを形成する。チャンクサイズは、チャンクあたりの発話音声フレームの数として定義されることがある。
【0181】
ステップ650で、発話音声チャンクが、Nl個の以前のフレームについての音響特徴とNr個の後続のフレームについての音響特徴とで補完される。
【0182】
訓練
図7は、音声認識システムを訓練する方法700を示す流れ図である。この音声認識システムは、図5の音声認識システム500であってもよい。上述のように、システム500は、エージェント500bを備える。エージェント500bは、470、380B、370B、380A、370A、240に関連して上述したエージェントに対応する。エージェント500bは、それ自体のパラメータθを備える。
【0183】
ASRシステム500とエージェント500bとは、一緒に訓練される。システム500とエージェント500bとは、同じ訓練データを使用して訓練される。システム500のパラメータと、エージェント500bのパラメータθとは、一緒に更新される。ただし、エージェント500bのパラメータθが更新される方法は、ASRネットワークのパラメータが更新される方法とは異なる。ASRネットワークのパラメータは、ASR訓練ステップ720によって更新されるが、エージェントのパラメータθは、方策勾配訓練ステップ730によって更新される。ASRシステム500とエージェント500bとは、異なる損失関数を用いて訓練される。理解を容易にするために、最初に、ASR訓練720について、方策勾配訓練730とは別個に説明する。方策勾配訓練730については、以下、図8に関連して説明する。
【0184】
音声認識システム500の重みは、ステップ720で更新される。システム500は、複数の重みを備える。音声認識システム500の自己注意デコーダ層は、さらに多数の重みのうちの第1の複数の重みを含む。
【0185】
ステップ720に記載される重みの更新は、システム500のパラメータに関するものであり、エージェントのパラメータθには関係ない。エージェントのパラメータθは、以下でさらに説明する異なる方法730を用いて更新される。
【0186】
以下のステップは、訓練セットの各訓練対ごとに実行される。各訓練対710は、複数の発話音声フレームと、訓練トークンのシーケンスとを含む。この訓練用トークンシーケンスは、基準シーケンスまたは参照シーケンスと記載されることもある。訓練用トークンシーケンスは、複数の発話音声フレームが対応する発語の内容の人による指示から導出されている、または導出されることがある。例えば、単語、フレーズ、またはセンテンスを表すトークンのシーケンスである。
【0187】
トークンのシーケンスは、複数の発話音声フレームから導出される。各フレームごとに、方法200のステップ230から260、方法300Aのステップ330Aから390A、または方法300Bのステップ330Bから390Bを用いて、トークンが導出されることがある。上記のステップは、音声認識システム500によって実施されることがある。
【0188】
トークンのシーケンスが複数のトークンを含む場合には、複数の発話音声フレームのうちの残りのフレームに上記のステップを適用することによって、トークンのシーケンスのさらなるトークンが得られることもある。
【0189】
トークンのシーケンスを導出することと、音声認識システムの重みを更新することとは、以下のステップを含む。2つのバリエーションが用いられることがあるので、それぞれについて別個に説明する。
【0190】
第1のバリエーションは、方法300Aを実施するシステムの訓練に関する。
【0191】
第1のバリエーション-音声認識ネットワークの訓練
i.各フレームが、ステップ230に関連して説明したように符号化される。
【0192】
ii.デコーダニューラルネットワークの各自己注意デコーダ層(l)ごとに、初期化ステップが実行される。この初期化ステップは、ステップ330Aに対応する。
【0193】
iii.各フレームごとに、各自己注意ヘッド(h)が順番に考慮され、停止確率が、ステップ340Aに関連して説明したように決定され、暫定コンテキストベクトルが、ステップ350Aに関連して説明したように計算される。
【0194】
iv.次いで、計算された暫定コンテキストベクトルが、ステップ360Aに関連して説明したように連結される。
【0195】
v.次いで、アクション確率pl ai,jが、ステップ370Aに関連して説明したように導出される。
【0196】
vi.アクション確率から、アクションal i,jが、ステップ380Aに関連して説明したように導出される。
【0197】
vii.次いで、ステップ390Aに関連して説明したように、アクションal i,jが条件を満たすかどうか確認される。条件が満たされる場合には、停止アクションが実行され、自己注意デコーダ層(l)についての復号ステップが完了する。
【0198】
viii.最後のデコーダ層(l=Nd)に到達するまで、ステップiiからviiが、各デコーダ層について繰り返される。各デコーダ層(l)ごとに、コンテキストベクトルcl iが得られる。最後のデコーダ層では、最後のデコーダ層のコンテキストベクトルcNd iが得られる。
【0199】
ix.次いで、トークンが、ステップ260で、また図5に関連して説明したように導出される。例えば、上記のアルゴリズム1で説明したように、トークンは、最後のデコーダ層のコンテキストベクトルcNd iから導出される。
【0200】
x.次いで、各デコーダ層ごとに、パラメータの更新720が実行される。この更新は、損失関数による、導出されたトークンのシーケンスと訓練用トークンシーケンスとの間の差に基づく。第1の複数の重みは、損失関数に従って、導出されたトークンのシーケンスと訓練用トークンシーケンスとの間の差に基づいて更新される。さらに多数の重みのうちのさらに別の重みも更新されることがある。例えば、1つまたは複数の他の自己注意デコーダ層、あるいはデコーダの例えば線形層など他の層タイプの重みが更新されることもある。音声認識システムの他の部分に関係するさらに多数の重みのうちの他の重みが更新されることもある。例えば、さらに多数の重みのうちの第2の複数の重みを含むエンコーダを用いて、各発話音声フレームの符号化が生成されることもある。第2の複数の重みも、損失関数に従って、導出されたトークンのシーケンスと訓練用トークンシーケンスとの間の差に基づいて更新されることがある。重みは、逆伝播を用いて更新されることがある。
【0201】
損失関数は、交差エントロピ損失関数であることがある。損失関数は、コネクショニスト時系列分類(CTC)コンポーネントを含むことがある。損失関数は、交差エントロピコンポーネントとCTCコンポーネントとを含む多目的損失関数であることがある。多目的損失関数の交差エントロピ損失関数は、デコーダの第1の複数の重みとその他の重みとを更新するために使用されることがある。多目的損失関数の交差エントロピ損失関数は、エンコーダの第2の複数の重みを更新するために使用されることがある。多目的損失関数のCTC損失関数は、エンコーダの第2の複数の重みを更新するために使用されることがある。
【0202】
説明を容易にするために、更新ステップ720について、各訓練対ごとに行われるものとして説明した。しかし、いくつかのバリエーションでは、更新ステップ720は、例えばN番目の訓練対ごとなど、訓練対の一部についてしか行われないこともあることに留意されたい。それらの場合には、重みの更新は、最後の更新以降のN個の導出されたトークンのシーケンスのそれぞれと、対応する訓練用トークンシーケンスとの間の差に基づき、損失関数によって計算され得る。例えば、更新は、導出されたトークンのシーケンスのそれぞれと、対応する訓練用トークンシーケンスとについて計算された損失の平均に基づくこともある。このような重みを更新する方法は、バッチ更新またはミニバッチ方法と呼ばれることもある。
【0203】
第2のバリエーションは、方法300Bを実施するシステムの訓練に関する。
【0204】
第2のバリエーション-音声認識ネットワークの訓練
i.各フレームが、ステップ230に関連して説明したように符号化される。
【0205】
ii.デコーダニューラルネットワークの各自己注意デコーダ層(l)ごとに、初期化ステップが実行される。この初期化ステップは、ステップ330Bに対応する。
【0206】
iii.各フレームごとに、各自己注意ヘッド(h)が順番に考慮され、停止確率が、ステップ340Bに関連して説明したように決定され、暫定コンテキストベクトルが、ステップ350Bに関連して説明したように計算される。また、停止確率は、ステップ345Bに関連して説明したようにアキュムレータ変数に累積される。
【0207】
iv.次いで、計算された暫定コンテキストベクトルが、ステップ360Bに関連して説明したように連結される。
【0208】
v.次いで、アクション確率pl ai,jが、ステップ370Bに関連して説明したように導出される。
【0209】
vi.アクション確率から、アクションal i,jが、ステップ380Bに関連して説明したように導出される。
【0210】
vii.次いで、ステップ390Bに関連して説明したように、アクションal i,jが条件を満たすかどうか確認される。条件は、第1の条件と第2の条件とを備えることがある。条件が満たされる場合には、停止アクションが実行され、自己注意デコーダ層(l)についての復号ステップが完了する。
【0211】
第2の条件を用いることの効果は、コンテキストベクトルの計算に使用される注意重みのスケールを正則化することである。例えば、第2の条件の効果は、最下層のデコーダ層の注意重みのスケールを正則化することである。これにより、cl i,jの無制限の大きさによってモデルが過剰適合する可能性が低下する。例えば、コンテキストベクトルの計算に使用される停止確率pl,h i,jは、0から1の間の値を有する可能性がある。この値は、アキュムレータ変数に累積される。アキュムレータ変数は、フレームが左から右に移動するにつれて(すなわちjが増分されるにつれて)非常に大きくなることがある。これは、最下層のデコーダ層(すなわちlの小さな値)で起こり得る。これは、やはり非ストリーミングシステムで起こるトランスフォーマモデルのモデリング能力によるものである。特に、最下層のデコーダ層の注意は無効であることがある、すなわち、それらは入力されたフレームに正しく沿っていないことがある。停止確率は、エンコーダ状態が乗算されることになるので、これらの無効な注意が暫定コンテキストベクトルに追加される可能性があり、これが、復号において問題を引き起こすことになる。第2の条件を有することにより、コンテキストベクトルの計算が停止され得、無効な注意の影響が低減され得る。転じて、これにより、ASRの精度が低下する可能性が低下することもある。第2の条件を使用することの効果については、図9に関連してさらに説明する。
【0212】
viii.最後のデコーダ層(l=Nd)に到達するまで、ステップiiからviiが、各デコーダ層について繰り返される。各デコーダ層(l)ごとに、コンテキストベクトルcl iが得られる。最後のデコーダ層では、最後のデコーダ層のコンテキストベクトルcNd iが得られる。
【0213】
ix.次いで、トークンが、ステップ260で、また図5に関連して説明したように導出される。例えば、上記のアルゴリズム1で説明したように、トークンは、最後のデコーダ層のコンテキストベクトルcNd iから導出される。
【0214】
x.次いで、各デコーダ層ごとに、パラメータの更新720が実行される。この更新720は、第1のバリエーションのステップ(x.)に記載されている通りである。
【0215】
方策勾配訓練
図8は、音声認識システムを訓練する方法800を示す流れ図である。特に、方法800は、音声認識システム500のエージェント500bの訓練に関する。方法800は、図7に関連して説明した第1または第2のバリエーションのいずれかとともに使用されることがある。
【0216】
方法800では、システム500とエージェント500bとは、少なくとも2つの連続したエポックE-1およびEについて訓練される。エポックE-1は、第1のエポックと呼ばれることもあり、エポックEは、第2のエポックと呼ばれることもある。E-1は、Eより先行する。エポックEは、現在のエポックであり、エポックE-1は、その前のエポックである。
【0217】
エポックの数は、学習アルゴリズムが全訓練データセットを通過する回数である。1つのエポックで、内部モデルパラメータは、訓練データセット中の各サンプルによって更新されている。上述のように、ある構成では、モデルパラメータの更新は、N個の訓練対ごとに各対の後でしか実行されないことがある(バッチサイズNのミニバッチ方法)。その場合には、エポックは、N個の訓練対からなる1つまたは複数のバッチを備える。Nは、ミニバッチ内の訓練対の数である。Nは、ミニバッチサイズとも呼ばれる。
【0218】
ASRシステム500は、1つまたは複数のデコーダ層(l)を備えるデコーダニューラルネットワークであることがある。各デコーダ層は、エージェントを備える。
【0219】
ASRシステム500と、デコーダ層のエージェントのうちの1つとが、ミニバッチごとに同時に更新される。デコーダ中には複数のエージェントがあるので、各エージェントは、連続したο個のミニバッチについて順番に訓練される。すなわち、1つのエージェントが連続したο個のミニバッチについて訓練され、その後に別のエージェントが訓練される。例えば、οが3である場合には、システム全体は、{(ASR、エージェント0)、(ASR、エージェント0)、(ASR、エージェント0)、(ASR、エージェント1)、(ASR、エージェント1)、(ASR、エージェント1)、(ASR、エージェント2)、(ASR、エージェント2)、(ASR、エージェント2)、…}のように訓練される。換言すれば、ASRシステム500と第1のエージェント(エージェント0)とが、3つの連続したミニバッチについて一緒に訓練され、ASRシステム500と第2のエージェント(エージェント1)とが、3つの連続したミニバッチについて一緒に訓練され、ASRシステム500と第3のエージェント(エージェント2)とが、3つの連続したミニバッチについて一緒に訓練される。ASRネットワークは、全てのミニバッチについて訓練されるが、訓練されているエージェントは、ミニバッチο個ごとにシフトする。
【0220】
οは、同じエージェントがASRモジュールとともに更新されるミニバッチの数である。Dは、各ミニバッチ中のトークン(復号ステップ)の数である。各訓練対が異なる数のトークンを有する可能性があるので、Dは、特定のミニバッチ内で各訓練対ごとに変化する動的な値である。
【0221】
ο=4である例では、使用されるミニバッチと、訓練されているエージェントとは、以下のシーケンスに従うことがある。
{(ミニバッチ1、エージェント1)、(ミニバッチ2、エージェント1)、(ミニバッチ3、エージェント1)、(ミニバッチ4、エージェント1)}、
{(ミニバッチ5、エージェント2)、(ミニバッチ6、エージェント2)、(ミニバッチ7、エージェント2)、(ミニバッチ8、エージェント2)}、…
複数のエージェントがあるので、ASRモジュールとともに訓練されるエージェントは、訓練対N×ο個ごとにその対の後で切り替わる。
【0222】
方法800は、以下のステップを備える。
【0223】
ステップ810で、訓練データ対が受け取られる。ステップ810は、例えばステップ710と同じである。
【0224】
ステップ860で、トークンが導出される。ステップ860は、ステップ260に対応する。なお、トークンの導出は、図7に関連して説明したようにASRシステム500の訓練の一部としても実行されることに留意されたい。したがって、ステップ860におけるトークンの導出は、図7に関連して説明したトークンの導出と同じであることがある。例えば、トークンは、図7に関連して説明した第1のバリエーションまたは第2のバリエーションのいずれかのステップi.からix.を用いて導出されることもある。
【0225】
ステップ830で、方策勾配訓練が実行される。ステップ830は、図7のステップ730に対応する。ステップ830は、以下のステップを備える。
【0226】
ステップ880で、予測正当性が取得される。予測正当性は、ステップ860で導出されたトークンを、ステップ810の対応する訓練トークンと比較することによって取得される。例えば、導出されたトークンが訓練トークンと一致する場合には、その予測は正しく、そうでない場合には、その予測は誤っている。したがって、予測正当性は、例えば、正しいまたは誤っている、真または偽、あるいは1または0など、2つの値のうちの一方を有することがある。
【0227】
ステップ870で、現在のエポックKE(第2のエポック)および以前のエポック(第1のエポック)KE-1からの停止位置が取得される。KEは、第2の停止位置と呼ばれる。KE-1は、第1の停止位置と呼ばれる。停止位置は、各デコーダ層(l)ごとに決定される。したがって、Kl E-1で表される第1の停止位置のセットと、Kl Eで表される第2の停止位置のセットとが、ステップ870で取得される。便宜上、上付き添え字「l」は以下では含めないが、停止位置が異なる層に関係する可能性があることは理解されるであろう。停止位置は、各デコーダステップ(i)ごとに決定される。これにより、各デコーダ層について別々に、また各デコーダステップについて、第1のエポックおよび第2のエポックで取得された停止位置の比較が可能になる。
【0228】
ステップ890で、報酬が決定される。報酬は、各デコーダ層(l)ごとに決定される。報酬は、各デコーダ層中のエージェントについて決定される。報酬は、各デコーダステップ(i)ごとに決定される。報酬は、停止位置の変動と、特定のデコーダステップの予測正当性とによって決まる。報酬は、Rと呼ばれる。報酬は、方策勾配アルゴリズムの報酬である。報酬は、エージェントのアクションの成功または失敗を測定するために使用されるフィードバックである。報酬と方策勾配アルゴリズムの手法とを使用する理由については、以下でさらに提供する。報酬の目的は、停止位置が改善される、すなわち引き下げられるように、エージェントモデルの重みθを更新することである。各エンコーダ時間ステップ(j)で、エージェントによって行われるアクションはどのアクションでも認められ、そのアクションは、非負の報酬を割り当てることによって受け入れられ、負の報酬を割り当てることによって拒絶される。エージェントは、いくつかのこのような例を通して適切なアクションを行うことを学習することになる。
【0229】
一部の拒絶されたアクションは、より重い罰則が科されることがあり、したがって、より小さな値(すなわちより大きな絶対値を有する負の値)を有するさらなる非負の報酬が使用されることもある。
【0230】
報酬は、エージェントが環境にもたらす影響を反映する。例えば、影響は、ASR精度および計算コストによって測定される。ASR精度は、上述の予測正当性によって測定され得る。計算コストは、上述の停止時間によって測定され得る。
【0231】
報酬Rは、訓練が進行するにつれて観察されるASR精度と計算コストの変動の関数として設計される。概略的な概念は、新たなデータイテレーションのたびに、方策は、精度が適切な停止位置で維持されている場合には承認され、計算コストの変化に関わらず精度が低下した場合には処罰されるというものである。
【0232】
合理的な報酬がエージェントに割り振られることを保証するために、以下の仮定が行われる。
(1)一般に、ASRモデルは、データが反復されるにつれて訓練セットについての精度を改善し続ける。
(2)エージェントが復号ステップを停止するのが遅くなるほど、ASR精度が高くなる可能性が高い。これは、オフラインのASRシステムは常にオンラインのASRシステムより性能が優れているという事実に基づく。
(3)エージェントが、現在のデータイテレーションにおいて、以前の停止位置と比較して同じ、またはそれより後の停止位置を認識した場合には、ASR精度の任意の劣化は、ASRモジュールに帰せられ、エージェントは罰則が科されない。
(4)ただし、エージェントがより早期の停止位置を決定し、そのことがASR精度の低下をもたらした場合には、エージェントは責任があり、そのアクションについて罰則が科される。
【0233】
また、訓練の効率を保証し、不確実な勾配を巻き込むことを回避するために、非ゼロの報酬は、復号ステップの最後の「停止」アクションに直接関係する時間ステップのみに割り当てられ、その他は中立として扱われる(ゼロ報酬が割り当てられる)。
【0234】
ASR500の重みがエージェントのパラメータθと同時に更新されるので、ASR精度の変動の可能性は、ASR500の訓練と、エージェント500bの訓練の両方に帰せられることがある。上記の仮定は、訓練が進行する際にエージェントの影響をASRの影響から区別するのを助ける。
【0235】
ステップ890で決定される報酬は、以下の数式に従ってエージェントの重みを更新するために使用される。
【0236】
【数8】
【0237】
【数9】
【0238】
数式(6)は、J(θ)を最大化することによってパラメータθが取得される、勾配上昇法を表す。αは、学習速度である。一例では、αは、0.010、0.001、または0.005であることがある。
【0239】
数式(7)は、目的関数J(θ)の勾配(∇θJ(θ))の近似を示している。数式(7)で、SG(・)は、ASRコンポーネントの勾配が計算に入るのを防ぐ関数である。SG(・)は、ASRネットワークの勾配が訓練中にエージェントネットワークの勾配に含まれるのを防止する。例えば、SG(・)関数は、コンテキストベクトルcKの勾配が数式7中のaKの勾配計算から切り離されるように構成される。
【0240】
Kは、現在のエンコーダ時間ステップKのアクションである。cKは、現在のエンコーダ時間ステップKのコンテキストベクトルである。RKは、エンコーダ時間ステップKについて決定された報酬である。
【0241】
各訓練対の各復号ステップごとに、インデックスKを有する同じエンコーダ時間ステップにおけるエージェントアクションが、方策勾配訓練で考慮される。
【0242】
数式(7)は、逆伝播に関係し、∇θJ(θ)は、コンテキストベクトルcKを仮定してアクションaKが行われたときのエージェントDNN(Πθ)の勾配を指す。cKの勾配は、ASRネットワーク訓練の進展の学習に関係する。cKの勾配は、SG(・)関数によって数式(7)から排除される。∇θは、θについての導関数を表し、Πθは、エージェントによって適用される方策である。Dは、N個の訓練対(ミニバッチ)中の出力トークンの総数である。
【0243】
報酬RKは、エンコーダ時間ステップKについて取得される。報酬RKは、以下で表1に関連して説明するように取得される。
【0244】
数式(7)は、エージェントモデルを訓練するための損失関数として使用される。
【0245】
導関数(数式7の出力)は、各訓練対の各復号ステップ(i)について個別に導関数を計算することと、D個のトークン(復号ステップ)にわたって導関数を平均することとを備える。これは、訓練を容易にするためである。
【0246】
Kと、aKと、cKとは、平均されない。
【0247】
N個の訓練対ごとに、その対の後で、エージェントのうちの1つが更新される。エージェントの訓練に使用されるミニバッチサイズ(N)は、ASRモジュールの訓練に使用されるものと同じである。
【0248】
数式(6)と(7)とがどのように取得されるかは、以下でさらに説明する。更新ステップについては、ステップ895に関連してさらに説明する。
【0249】
報酬の一例が、以下の表1に与えられている。報酬は、3つの値のうちの1つを有する可能性がある。第1の値は、エージェントアクションを受け入れるために使用される。例えば、第1の値は、非負の値である。第2の値は、エージェントアクションに中程度の罰則を科すために使用される。例えば、第2の値は、小さな負の値である。第3の値は、エージェントアクションに重い罰則を科すために使用される。例えば、第3の値は、大きな負の値である。第1の値は、第2の値より大きく、第2の値は、第3の値より大きい。
【0250】
【表1】
【0251】
表1において、最も左側の列は、第1のエポック(E-1)から第2のエポック(E)の予測正当性を表す。例えば、第1の行では、第1の列は、予測が第1のエポックおよび第2のエポックで正しかったことを示している。第3の行では、第1の列は、予測が第1のエポックでは誤りであったが、第2のエポックでは正しかったことを示している。第2の列は、第2の停止位置(KE)が第1の停止位置(KE-1)に等しいシナリオを表している。第3の列は、第2の停止位置(KE)が第1の停止位置(KE-1)より大きいシナリオを表している。第4の列は、第2の停止位置(KE)が第1の停止位置(KE-1)より小さいシナリオを表している。
【0252】
報酬は、以下の通りである。
【0253】
第2の停止位置が第1の停止位置より大きい、または
第2の停止位置が第1の停止位置と等しく、予測正当性が第1のエポックと第2のエポックとの間で変化している、または
第2の停止位置が第1の停止位置より小さく、第2のエポックにおける予測が正しいとき、報酬は、第1の値を有する。
【0254】
表1の例では、第1の値は、値「0」を有する。ただし、他の非負の値が用いられてもよいことは理解されるであろう。
【0255】
第2の停止位置が第1の停止位置と等しく、予測正当性が第1のエポックと第2のエポックとの間で変化していない、または
第2の停止位置が第1の停止位置より小さく、第1のエポックおよび第2のエポックにおける予測が誤りであるとき、報酬は、第2の値を有する。
【0256】
表1の例では、第2の値は、値「-1」を有する。ただし、別の負の値が用いられてもよいことは理解されるであろう。
【0257】
第2の停止位置が第1の停止位置より小さく、予測正当性が、第1のエポックでは正しいが、第2のエポックでは誤りであるとき、報酬は、第3の値を有する。
【0258】
表1の例では、第3の値は、値「-10」を有する。ただし、別の負の値が用いられてもよいことは理解されるであろう。第3の値は、第2の値より小さい(すなわち、より負である)。
【0259】
表1は、システムの訓練中に見られる可能性がある全てのエージェントの挙動に関する方策勾配アルゴリズムによって採用される報酬方式を規定している。表中の行は、2つの連続するエポック(E-1およびE)の間の同じ復号ステップについての予測正当性の4つのバリエーションを列挙するものであり、それぞれが、列によって提示されるように停止位置の3つの起こり得る変化(KE-1対KE)に対応している。以下、この表の説明を提供する。
【0260】
a.予測が正しいままである(√→√):停止位置の全てのバリエーションについて、罰則-1が、強制的に最後の時間ステップTで繰り返し停止するアクションのみに与えられる。これは、通常は、オンライン復号は常に発話の最後に到達しないはずであるからである。対照的に、任意の他のKE≠Tは容認される。これは、それらが、特定の最適化点において最適な方策から生成される可能性があるからである。アクションがエンコーダ状態に対して単調的に行われるので、発明者等は、「停止」決定がそれ自体で最も早い時間ステップで行われると常に考えることができる。
【0261】
b.予測が正しいから誤りになる(√→×):仮定4に基づき、現在のエポック(KE<KE-1)でより早期の停止位置を引き起こすアクションには、大きな罰則-10が与えられて、エージェントがより後に停止するように促すが、等しい(KE=KE-1)または後の(KE>KE-1)停止位置は、仮定3に従って受け入れられる。
【0262】
c.予測が誤りから正しいになる(×→√):この場合には、全ての新たな停止位置は、承認される。これは、以前のエポックにおける古い停止位置の妥当性が、誤った予測により未知であるからである。さらに、この状況は、次のエポックにおいて確実に上記の2つの行のうちのいずれかになるはずであり、後にさらなる措置を講じても遅くない。
【0263】
d.予測が誤りのままである(×→×):バリエーションbと同様に、停止するアクションは、以前より早い停止位置を生じる場合には、中程度の罰則が科される。なお、KE=KE-1=1である場合には、KEは時間軸上でそれ以上後退することができないので、エージェントは、停止しないようにされなければならない。
【0264】
さらに、任意選択で、全ての復号ステップの初期の予測正当性および停止位置は、第1のエポックでは「x」およびTに設定され、この2つの要素は、訓練プロセス全体を通じて追跡される。
【0265】
次に、図8に戻って、要約すると、ステップ890で、現在のエンコーダ時間ステップKについて、報酬RKが決定される。報酬については、単一のデコーダ層について説明したが、自己注意デコーダネットワークの各デコーダ層について報酬が決定されることは理解されるであろう。
【0266】
ステップ895で、各トランスフォーマデコーダ層のエージェントの報酬が、別個に、下から上に向かう順序で順番に更新される。各デコーダ層のエージェントについての更新は、数式6および7に従う。
【0267】
さらに、任意選択で、更新ステップ895で、各デコーダ層中のエージェントについて、N個の訓練対ごとにその対の後で更新が実行される(Nは、ミニバッチ方法のバッチサイズ)。οは、ミニバッチの数を表す。ο個の連続したミニバッチでエージェントを訓練した後で、訓練されるエージェントが変更される。複数のミニバッチを使用してエージェントを訓練することの目的は、先行するエージェントのレガシーが次のエージェントに不意に持ち越されることを防止して、各エージェントにその期間内で安定した方策を開発するより良好な機会が与えられるようにすることである。
【0268】
なお、システムの訓練中に、エージェントによって生成される停止位置は、累積しきい値によって与えられる停止位置から独立して扱われ、累積しきい値によって与えられる停止位置は、正則化の手段としてのみ作用することに留意されたい。推論では、どちらが先に出現しても、それが復号プロセスを打ち切ることになる。推論の擬似コードは、アルゴリズム1に提示されている。例えば、図8に関連して説明したエージェント方策の訓練に関しては、累積しきい値は、報酬の決定890または正当性の決定880、あるいは重みの更新895では出現しない。
【0269】
方策勾配訓練730と830内のステップとに関連して、数式(7)がどのように得られるかについてのさらなる説明を、以下に提供する。
【0270】
エージェント500bは、最も早い停止位置を完全に単独で探り、停止位置についての訓練データは提供されない。エージェントは、ASRの挙動に依拠する。エージェントが訓練中にそれ自体の経験から学習することができるように、深層強化学習手法が使用される。
【0271】
強化学習の機構では、デコーダ層中の各復号ステップは、マルコフ決定過程(MDP)として数式化されることが可能である。エージェントは、環境状態Sを仮定して各時間ステップでアクションAを行い、それが環境に対して引き起こす影響に基づいて報酬Rを直ちに受け取る。したがって、新たな状態が生成され、中止基準が満たされるまでプロセスは続く。その結果得られる上記の要素のシーケンスは、軌跡T:
1、A1、R1、D2、A2、R2、…、SK、AK、RK
と呼ばれ、ここで、SおよびAは、それぞれ暫定コンテキストベクトルcおよび二値アクションaとして実施され、Kは、エージェントが停止すると決定する前の計算ステップの数である。
【0272】
報酬仮説の仮定によれば、深層強化学習(DRL)エージェントの目的は、以下のように方策Πθに従う、軌跡Tに沿って受け取られる期待報酬rを最大化することである。
【0273】
【数10】
【0274】
パラメータθは、数式(6)に示されるように、勾配上昇を介してJ(θ)を最大化することによって効果的に解かれることが可能である。
【0275】
方策勾配定理は、期待報酬の導関数が、以下のように、報酬と方策の対数との積の期待値として計算され得ることを示している。
【0276】
【数11】
【0277】
同様に、提案されているASRシステムの状況でも、各復号ステップ(i)について、導関数は、以下のように与えられる。
【0278】
【数12】
【0279】
ここで、SG(・)は、ASRコンポーネントの勾配が計算に入るのを防ぐためものものである。期待値の項は、全ての生じ得る停止位置が考慮されなければならないことを意味している。時間計算量が大きくなる問題を回避するために、以下のように、導関数は、訓練発語のミニバッチ内の全ての復号ステップの導関数を平均することによって近似される。
【0280】
【数13】
【0281】
ここで、Dは、ミニバッチ中の出力トークンの総数である。この近似は、マルコフ連鎖モンテカルロ(MCMC)サンプリング技術に類似していることがある。これは、勾配計算の軌跡の多様性を提示する。また、これにより、エージェントがASRモジュールと一緒に最適化されることが可能になる。
【0282】
上述の仮定(1)から(4)を適用することにより、上記の式は、数式(7)に示す形態で表現され得る。
【0283】
DACS-ASR方法の例
次に、一例による音声認識の方法の説明を提供する。この方法は、デコーダ適応計算ステップ(DACS)ASRと呼ばれる。この方法は、図5のアーキテクチャと同様のアーキテクチャで実施されることがある。ただし、DACS ASRアーキテクチャは、DRL-HS-DACSサブ層を含まない。
【0284】
DACS ASR方法は、以下の擬似コードによって要約される(アルゴリズム2)。
【0285】
【数14】
【0286】
アルゴリズム2では、コンテキストベクトルch,l iは、エンコーダ時間ステップ(第8行)がトラバースされた後、第15行で計算される。停止する決定(第11行および第12行)が最初に行われ、次いでコンテキストベクトルが計算される。
【0287】
HS-DACS-ASR方法の例
次に、別の例による音声認識の方法の説明を提供する。この方法は、ヘッド同期デコーダ適応計算ステップ(HS-DACS)ASRと呼ばれる。この方法は、図5のアーキテクチャと同様のアーキテクチャで実施されることがある。ただし、HS-DACS ASRアーキテクチャは、DRL-HS-DACSサブ層を含まない。
【0288】
【数15】
【0289】
アルゴリズム3では、コンテキストベクトルch,l iは、エンコーダ時間ステップがトラバースされた後、第15行で計算される。停止する決定(第10行および第11行)が最初に行われ、次いでコンテキストベクトルが計算される。
【0290】
累積しきい値のみでASR出力をトリガするHS-DACS方法(アルゴリズム3に示す)と比較して、方法およびシステム200,300A、300B、および500は、各時間ステップまでに収集された音響情報を検査することによって停止位置を改善する。この音響情報は、暫定コンテキストベクトルに対応する。
【0291】
例えば、音響情報は、エージェントによって収集されることがある。ASR出力は、エージェントが累積が固定しきい値に到達するまで待機せずにポジティブなアクションを行う場合に、直ちに発せられることになる。これにより、多くの復号ステップで起こる弱注意問題が効果的に軽減される。トランスフォーマデコーダ層に適用されるエージェントモデルは、図7および図8に関連して本明細書で説明したように、訓練データ上で観察されるエージェントアクションの報酬方式がASR精度および計算コストの変動に基づく方策勾配方法で訓練される。
【0292】
以下、AIShell-1、Tedlium-2、およびLibrispeechデータセットに対して行われた実験の結果について説明する。これらの結果は、方法200、300A、300B、およびシステム500が、同様のASR性能を維持しながら計算コストの低減を実現することを示す。
【0293】
実験結果-DRL-HS-DACS
以下、図7に関連して説明した訓練方法の第2のバリエーションと、図3Bの方法300Bとを用いて訓練された音声認識システム500の性能を調査する実験について述べる。この方法は、DRL-HS-DACSに基づくトランスフォーマ自動音声認識(ASR)として説明され得る。
【0294】
DRL-HS-DACS ASRの性能は、3つのデータセット、すなわち中国語タスクのAIShell-1と、英語タスクのTedlium-2およびLibrispeechとについて検証されている。性能は、他の参照システムとの比較とともに、以下の表に示してある。
【0295】
全てのシステムへの入力は、80次元のフィルタバンク特徴に3次元のピッチ関係パラメータを加えたものである。速度摂動は、AIShell-1およびTedlium-2の訓練データに対して行われ、SpecAugmentは、Tedlium-2およびLibrispeechに適用される。AIShell-1の出力ラベルは、4231個の文字を含み、Tedlium-2およびLibrispeechの出力ラベルは、それぞれ1000および5000個のBPEトークン化された単語片を含む。
【0296】
オンラインASRシステムのアーキテクチャは、次の通りである。同一のフロントエンドがタスク間で共有され、これは3×3のサイズおよび2×2のストライドを有する256個のカーネルの2つのCNN層を備えるので、フレームレートは、4倍に低減されることができる。エンコーダは、12個の標準的な自己注意層をスタックし、本明細書で述べるのと同様にチャンクワイズストリーミング戦略を利用し、ここで、左、中央、および右のチャンクのサイズは、64個のフレームと同じである。注意の次元、ヘッドの数、およびエンコーダのFFNユニットのサイズは、AIShell-1およびTedlium-2では{256、4、2048}であり、Librispeechでは{512、8、2048}である。デコーダは、各タスクのエンコーダと同じパラメータを有する6つのDRL-HS-DACSに基づく自己注意層を備える。エージェントの隠れ層のサイズは、注意の次元と等しくなるように設定される。
【0297】
結合CTC/注意訓練は、収束を早めるために、0.3の重みで全てのタスクについて実行される。発明者等は、AIShell-1、Tedlium-2、およびLibrispeechのモデルを、25000個のウォームアップステップを有するNoamの重み減衰方式に従い、それぞれエポック総数および初期学習速度を{50、10}、{100、1}、および{120、5}として訓練する。各エージェントモデルの連続する訓練ステップOは、10に設定され、エージェント出力に追加されるバイアス項bは、-4として与えられる。最大先読みステップMは、この訓練プロセスには適用されない。
【0298】
推論中に、CTCスコアも、上記の順序でタスクの重みを{0.3、0.3、0.4}として組み込まれる。外部言語モデルも、ビーム探索復号から生成されるnベスト仮説をリスコアリングするために訓練される。外部言語モデルは、AIShell-1では650ユニット/2層の長短期記憶(LSTM)ネットワークであり、Tedlium-2およびLibrispeechでは2048ユニット/4層のLSTMである。待ち時間制約Mは、16に設定される。
【0299】
表2、3、および4は、文字誤り率/単語誤り率(CER/WER)の観点から3つのデータセットに対する提案されるオンラインASRシステムの結果を示す。トークンのシーケンスについて、CER/WERは、(S+D+I)/Nとして得られることがある。ここで、Sは置換の数、Dは削除の数、Iは挿入の数、Nは参照シーケンス中の文字の数である。
【0300】
公平に比較するために、発明者等の実験構成で使用される同様のアーキテクチャおよび外部言語モデルを有する参照システムが選択された。これらの結果から、全てのタスクについて、DRL-HS-DACSモデルは、HS-DACSモデルのASR性能に非常に近いASR性能を得ることができることを観察することができる。具体的には、提案されるシステムでは、AIShell-1のテストセット(CER6.7%)、Tedlium-2のテストセット(WER8.3%)、およびLibrispeechのテストクリーンセット(WER2.6%)についてさらに低い誤り率が得られ、これは、HS-DACSシステムによって達成される従来の現況技術の結果であるCER6.8%、WER8.4%、およびWER2.7%より優れている。
【0301】
表5は、次のr値で測定される計算コストに関して、DRL-HS-DACSアルゴリズムをHS-DACSと比較している。
【0302】
【数16】
【0303】
この値は、適応計算ステップ
【0304】
【数17】
【0305】
と入力の長さTとの間の比を計算するものであり、両項ともに、Nd個のデコーダ層、H個の注意ヘッド、およびL個の発語の復号ステップにわたって合計されている。r値が小さいほど、復号プロセスに関わる計算コストは小さい。表5に報告されている数字は、テストセット内の全ての発語についての平均のr値である。DRL-HS-DACSに基づくシステムは、HS-DACSのベースラインと比較してr値の有意な低減を実現し、その相対的な利得は、AIShell-1のテストセット、Tedlium-2のテストセット、およびLibrispeechのテストクリーン/その他のセットについて、それぞれ40.0%、32.8%、および53.4%である。この計算コストの低下は、ほとんどの復号ステップについて、エージェントによって最適化された停止位置が、固定しきい値のみによって生成される停止位置より早く、ASR出力がより高速に発せられることを容易にしていることを意味している。
【0306】
【表2】
【0307】
【表3】
【0308】
【表4】
【0309】
【表5】
【0310】
実験結果-DRL-HS-DACS-累積しきい値の訓練への影響
以下、図7に関連して説明した訓練方法の第2のバリエーションを用いて訓練された音声認識システム500の性能を、図7に関連して説明した訓練方法の第1のバリエーションと比較して調査する実験について述べる。
【0311】
複数の注意ヘッドを正則化する際の累積しきい値Hの影響を調べるために、エージェントが単独で(すなわち図7の訓練方法の第1のバリエーションに関連して説明したように)動作するAIShell-1対して対照実験が行われている。ASR推論の性能も調査される。しきい値を有するDRL-HS-DACSシステム(方法300B)としきい値を有していないDRL-HS-DACSシステム(方法300A)の間のASR性能および計算コストの比較は、表6に与えられている。
【0312】
しきい値なしで訓練され推論されたシステム(方法300A、第1の訓練バリエーション)は、しきい値ありで訓練され推論されたシステム(方法300B、第2の訓練バリエーション)と比較して、小さいr値を実現する。CERの低下は、開発セットおよびテストセットの両方で見られ、相対損失はそれぞれ10.3%および22.4%である。しきい値が存在しないとき(方法300Aおよび第1の訓練バリエーションなど)、無制限の停止確率が、エンコーダ状態全体にわたって容易に分布し、訓練の初期段階でコンテキストベクトルを損なう。その結果として、エージェントは、無効な音響情報を以降の計算に伝播させるのを回避するために、復号を早期に停止する傾向がある。こうして、ASR精度の劣化と引き換えに、r値の減少をもたらす。図9は、訓練中の上記システムの開発セットについてのASR損失のプロットを示す。エージェントのみを有するシステム(方法300A、第1のバリエーション)は、開始時により高速に収束するが、すぐに訓練データに過剰適合する。損失は、しきい値ありで訓練されたシステム(方法300B、第2の訓練バリエーション)の損失より常に高いままであり、これも、ASR精度の低下を説明している。
【0313】
累積注意アルゴリズムによる推論
図10は、別の実施形態による音声認識方法を示す流れ図である。ステップ1210で、発話音声フレームが受け取られる。ステップ1210は、例えば図2のステップ210に対応する。
【0314】
ステップ1230で、発話音声フレームが符号化される。ステップ1230は、例えば図2のステップ230に対応する。
【0315】
ステップ1240で、コンテキストベクトルcが決定され(ステップ1240-a)、停止確率が導出され(1240-b)、得られた停止確率が所定の条件を満たすかどうかが決定される(1250)。
【0316】
ステップ1240-aでは、コンテキストベクトルは、ステップ1230における発話音声フレームの符号化に基づいて決定される。コンテキストベクトルの決定については、以下でさらに詳細に説明する。簡単に言うと、コンテキストベクトルは、符号化されたフレームの音響情報に基づく。また、履歴音響情報(例えば以前の発話音声フレームから得られる)を担持することもある。このコンテキストベクトルは、暫定コンテキストベクトルとも呼ばれる。後述するように、暫定コンテキストベクトルは、自己回帰的に(すなわちその過去の値に基づいて)各時間ステップ(フレーム)ごとに取得されることがある。
【0317】
ステップ1240-bでは、コンテキストベクトルから停止確率が導出される。例えば、停止確率は、訓練可能モデルを用いて導出される。このモデルは、停止選択器とも呼ばれる。停止選択器は、訓練されたニューラルネットワークを備える。停止選択器は、訓練可能なパラメータであるパラメータΦを備える。パラメータΦは、停止選択器の重みと呼ばれることもある。例えば、このニューラルネットワークは、単層または多層のDNNとして実装される。停止選択器は、入力として、コンテキストベクトルを取り込む。停止選択器は、次いで、コンテキストベクトルを停止確率にマッピングする。
【0318】
停止確率は、特定の時間ステップで復号ステップを停止する尤度を表す。
【0319】
停止選択器の訓練されたニューラルネットワークは、単層/多層ディープニューラルネットワーク(DNN)として実装されることがある。例えば、DNNは、1の出力次元を有する。一例では、DNNは、2つの全結合層を備え、第1の層の入力次元および出力次元は{D、D}であり、第2の層の入力次元および出力次元は{D、1}であり、ここで、Dは、コンテキストベクトルの次元である。あるいは、停止選択器は、DNNの場合と同じ次元を有する2層再帰型ニューラルネットワーク(RNN)を備えるニューラルネットワークを備える。
【0320】
ステップ1250では、得られた停止確率が所定の条件を満たすかどうかが決定される。条件が満たされる場合には、この方法は、ステップ1260に進む。条件が満たされると、停止する決定が行われる。停止する決定とは、ステップ1240を停止することを指す。
【0321】
後述するように、ステップ1240は、トランスフォーマASRのデコーダエンドで実行されることがある。例えば、ステップ1240は、デコーダニューラルネットワークのデコーダ層によって実行されることがある。ステップ1240は、復号ステップと呼ばれることもある。
【0322】
ステップ1260で、トークンが導出される。ステップ1260は、例えば図2のステップ260に対応する。条件が満たされない場合には、この方法は、ステップ1240に戻り、ここで暫定コンテキストベクトルおよび停止確率が決定される。その後、ステップ1240は、後続の発話音声フレームについて繰り返される。
【0323】
任意選択で、所定の条件を満たすことは、停止確率が所定の値以上であるかどうかを決定することを備える。例えば、停止確率が「0.5」以上である場合に、条件が満たされたとみなされる。
【0324】
ステップ1260で、トークンが導出される。この音声認識方法では、発話音声がテキストとして認識されるときには、トークンが、文字、音素、形態素、あるいはその他の形態学的単位、単語部分、または単語を表現することがある。
【0325】
ステップ1270で、導出されたトークンに基づいて機能が実行される。実行される機能は、コマンドの実行および/またはテキストの出力のうちの少なくとも一方を含む。
【0326】
さらに、任意選択で、以降の図面に関連して述べるように、ステップ1240を実行することは、さらに別のコンテキストベクトルを計算することと、結合されたコンテキストベクトルを計算することとを含むことがある。ステップ1240を実行することは、1つまたは複数の線形層を使用してコンテキストベクトルまたは結合されたコンテキストベクトルを処理することを含むこともある。
【0327】
これに加えて、または任意選択で、ステップ1240および1260を実行することは、コンテキストベクトル、結合されたコンテキストベクトル、あるいは分類層を備える1つまたは複数の線形層の出力を処理することを含むこともある。分類層の出力は、各確率またはスコアが所与のトークンが正しいことの尤度を示す、例えば確率またはスコアのベクトルなど、複数の確率またはスコアであることがある。分類層は、交差エントロピ層、ソフトマックス層、あるいはその変形または均等物であることがある。導出されたトークンは、最大の対応する確率またはスコアを有するトークンであることもあるし、あるいは例えば確率またはスコアの大きいトークンの方が選択される可能性が高いなど、確率またはスコアに基づいて確率的に選択されることもある。確率またはスコアは、以前に出力されたトークンに基づいて各トークンについての確率またはスコアを出力する言語モデルをやはり利用するジョイントデコーダと併用されることがある。このようなジョイントデコーダは、言語モデルの確率またはスコアと分類層の確率またはスコアの両方に基づいて結合確率またはスコアを計算することがある。トークンは、その後、最大の結合された確率またはスコアを有するトークンとして導出されることもあるし、あるいは例えば結合された確率またはスコアの大きいトークンの方が選択される可能性が高いなど、結合された確率またはスコアに基づいて確率的に選択されることもある。
【0328】
累積注意アルゴリズムによる推論-交差注意層
図11は、実施形態による方法1300を示す概略図である。方法1300は、例えば図10に関連して説明したステップ1240を実施するために使用されることがある。
【0329】
方法1300は、デコーダニューラルネットワークのデコーダ層に関係する。デコーダ層は、自己注意デコーダ層と呼ばれることもある。デコーダニューラルネットワークは、自己注意デコーダと呼ばれることもある。デコーダ層とデコーダニューラルネットワークについては、以下でさらに説明する。デコーダニューラルネットワークは、1つまたは複数のデコーダ層(l)を備えることがある。デコーダ層は、スタックされることもある。層のスタックとは、1つの層の出力が、後続の層に入力として供給されることを意味する。
【0330】
任意選択で、方法1300は、デコーダ層のスタックの最後のデコーダ層に関係する。デコーダ層のスタックの残りのデコーダ層は、自己注意モジュールを備え、言語モデリングを実行する。デコーダ層のスタックについては、図12(a)に関連して説明する。最後のデコーダ層とは、その出力が別のデコーダ層に渡されないデコーダ層を意味する。代わりに、例えば、出力は、出力層に渡される。出力層は、線形層および/または分類層を備えることがある。方法1300を最後の層のみに適用することで、ASR精度を向上させ、待ち時間を改善(低減)する。
【0331】
あるいは、方法1300は、デコーダニューラルネットワークの他の層に適用されることもある。
【0332】
方法1300は、初期化ステップ1330を備える。ステップ1330で、コンテキストベクトルが初期化される(ch i,0)。コンテキストベクトルは、ch i,jで表される。ここで、hは、注意ヘッドを示すインデックスである。H個の注意ヘッドがある可能性がある。「i」は、デコーダステップを表し、「j」は、エンコーダ時間ステップを表す(また、現在考慮中の発話音声フレームに対応する)。以上の表現については、以下でさらに詳細に説明する。
【0333】
「コンテキストベクトル」、「注意ヘッド」、「デコーダステップ」、「エンコーダ時間ステップ」という表現は、トランスフォーマASRに関係するものである。トランスフォーマASRは、(複数のヘッドが含まれるときに)それらのヘッドにわたって注意重みを結合することと、全てのヘッドについて同じ時間ステップで出力するようにASRをトリガすることとを備えるように簡素化される。これは、ヘッド同期デコーダエンド適応計算ステップ(HS-DACS)と呼ばれる。
【0334】
この方法1300は、累積注意(CA)と呼ばれることもある。CAは、各符号化時間ステップ(j)における音響情報の累積に基づくASR出力のトリガを指す。複数の注意ヘッドが含まれるときには、同じデコーダ層の注意ヘッドは、統一された停止位置を有するように同期される。注意ヘッドを同期することにより、個々のヘッドの別個の挙動によって生じる問題を緩和する。
【0335】
方法1300は、デコーダニューラルネットワークの最後のデコーダ層に適用されることがある。
【0336】
ステップ1330で、コンテキストベクトルが初期化される。例えば、コンテキストベクトルは、ゼロに初期化される。ch i,0=0である。
【0337】
各発話音声フレーム(j)ごとに、条件が満たされるまで、以下のステップが実行される。
【0338】
ステップ1340で、注意重み(ah i,j)が決定される。注意重みを得るために、注意エネルギー(eh i,j)が最初に計算される。例えば、最後のデコーダ層の復号ステップiをとると、特定のヘッドhによって、時間ステップjの注意エネルギーeh i,jは、次のように計算される。
【0339】
【数18】
【0340】
数式8において、qおよびkは、デコーダ状態およびエンコーダ状態である。次いで、注意エネルギーeh i,jがシグモイド関数に渡されて、注意重みを生成する。
【0341】
【数19】
【0342】
シグモイド関数は、入力シーケンス全体にアクセスすることなく、エネルギーを範囲(0、1)にスケーリングする。数式9の結果は、エンコーダ状態の現在の復号ステップ(i)に対する適合性を表す。
【0343】
ステップ1350で、暫定コンテキストベクトル(ch i,j)が計算される。例えば、暫定コンテキストベクトルは、次のように各時間ステップ(j)で自己回帰的に生成される。
【0344】
【数20】
【0345】
数式(10)において、ch i,j-1は、以前のエンコーダステップj-1の暫定コンテキストベクトルを表し、vh i,jは、時間ステップjにおけるエンコーダ状態を表す。項ch i,j-1は、j=1のときには破棄される(例えば0に設定される)。暫定コンテキストベクトルは、現在の時間ステップで累積されている全ての処理済みの音響情報を担持する。
【0346】
なお、暫定コンテキストベクトルは、実行中に計算され、履歴による全ての音響情報を担持することに留意されたい。コンテキストベクトルは、最初に計算され、その後、停止確率を導出するために使用される。
【0347】
ステップ1340および1350は、各注意ヘッドhごとに実行される。
【0348】
全ての自己注意ヘッドhが考慮された後で、ステップ1360が実行される。
【0349】
ステップ1360で、各注意ヘッドhごとに取得された暫定コンテキストベクトルが、連結される(ci,j)。例えば、連結されたコンテキストベクトルは、ci,j=Concat(c1 i,j、…、cH i,j)として取得されることがある。
【0350】
単一の注意ヘッドがある(h=1)構成では、ステップ1360は任意選択であることは理解されるであろう。その場合には、ステップ1350のコンテキストベクトルが、連結されたベクトルの代わりに使用されてもよい。
【0351】
ステップ1370で、停止確率(pi,j)が導出される。連結されたコンテキストベクトル(ci,j)は、停止確率(pi,j)が導出される停止選択器に直ちに送られる。なお、暫定コンテキストベクトルは、時間ステップjまで計算されることに留意されたい。
【0352】
停止確率(pi,j)は、次のように得られる。
【0353】
【数21】
【0354】
停止確率(pi,j)は、全ての注意ヘッド(ci,j)によってそれまでに累積された音響特徴を仮定して、時間ステップjでi番目の復号ステップを停止する尤度を表す。数式(11)の停止確率は、第3の確率と呼ばれることもある。第3の確率は、数式(2)に関連して説明した第2の確率とは異なる。第3の確率(数式(11))は、数式(4)の第1の確率と同様の物理的意味と機能を有する。
【0355】
数式(11)において、パラメータrは、所定の値に初期化されるバイアス項を示し、εは、pi,jの離散性を促進するために訓練中のみに適用される加算性ガウス雑音である。推論中には、εは含まれない。例えば、rは、任意の負の値を有することができる。例えば、rは、-4である。「HaltSelect()」は、本明細書に記載される停止選択器によって適用される。ci,jは、上述のように連結されたコンテキストベクトルである。
【0356】
ステップ1380では、停止確率pi,jが条件(第4の条件)を満たすかどうかが確認される。例えば、この条件は、「停止確率pi,j≧0.5か?」である。条件が満たされる場合は、方法1300が終了され、(例えばASR出力を予測するためにコンテキストベクトルci,jを出力層に送ることによって)ASR出力がトリガされる。条件が満たされない場合には、方法1300は、後続の時間ステップ(すなわち後続の値j)について繰り返される。
【0357】
CA推論中に、pi,jは、j=1からの各時間ステップで単調に計算され、復号ステップiは、例えばpi,j≧0.5となる最も早いjで停止されることになる。
【0358】
なお、停止確率が暫定コンテキストベクトルから得られるので、停止する決定(停止決定)は、符号化履歴全体に基づくことに留意されたい。
【0359】
図10および図11に関連して説明した音声認識のための方法は、以下の擬似コードによって記述され得る。
【0360】
【数22】
【0361】
この擬似コード(アルゴリズム4)では、<sos>は、センテンスの開始を表すトークンであり、<eos>は、センテンスの終了を表すトークンである。アルゴリズム4に示されるその他の変数およびパラメータは、方法1300に関連して説明したものに対応する。行3で、初期化ステップ1330が実行される。行5から行8で、各注意ヘッドごとに(h=1からHについて)、注意重みが決定され(ステップ1340)、暫定コンテキストベクトルが計算される(ステップ1350)。行9で、暫定コンテキストベクトルが連結される(ステップ1360)。行10で、エンコーダ時間ステップ(j)ごとに、停止確率(ステップ1370)が導出される。アルゴリズムの行10は、数式11に対応する。行11で、停止確率が条件を満たすかどうかが確認される(ステップ1380)。行12で、「break」は、エンコーダ時間ステップのイテレーション(行4)が停止される停止アクションを表す。行15で、コンテキストベクトルciが、それまでに計算された連結された暫定コンテキストベクトルに設定される。行16で、tiは、特定のデコーダステップ(i)についての、アルゴリズムが停止した時間ステップを表す。換言すれば、tiは、停止決定がいつ行われたか(すなわち停止位置)を示す指標を提供する。行16(ti=max(ti-1,j))で、tiは、ti-1の現在の値またはj(現在のデコーダ層の停止位置)のうちの大きい方に設定される。行17で、各デコーダステップ(i)ごとにトークンyiが導出される。トークンは、最後のデコーダ層のコンテキストベクトルciから導出される。行18で、デコーダステップ変数(i)が増分される。システム1500を参照すると、行17のOutputLayer(.)は、線形および分類層528、ジョイントオンラインデコーダ530、および/または言語モデル540に対応することがある。
【0362】
アルゴリズム4では、復号ステップは、停止確率pi,j≧0.5によって停止されることがある。これは、第4の条件または条件4と呼ばれることもある。
【0363】
累積注意アルゴリズムのアーキテクチャ
次に、ASRシステム1500について述べる。その後に、図12(a)を参照して、ASRシステム1500の訓練について述べる。
【0364】
図12(a)は、例示的な実施形態による音声認識を実行するシステムを示す概略図である。システム1500は、例えば以下に述べるハードウェアなどの1つまたは複数のコンピューティングデバイス上に1つまたは複数のコンピュータ実行可能命令を用いて実装され得る。システム1500は、ASRシステム、ASRモジュールまたは音声認識システム、あるいは音声認識モジュールと呼ばれることもある。
【0365】
システム1500は、例えば図15に関連して説明するハードウェア900などの1つまたは複数のコンピューティングデバイス上に1つまたは複数のコンピュータ実行可能命令を用いて実装され得る。
【0366】
ARシステム1500は、デコーダニューラルネットワークを除けば、図5に関連して説明したASRシステム500と同様のトランスフォーマシステムである。
【0367】
ASRシステム1500は、自己注意エンコーダ1510を備える。自己注意エンコーダ1510は、図5の自己注意エンコーダ510に対応する。
【0368】
ASRシステム1500は、自己注意デコーダ1520を備える。自己注意デコーダ1520は、自己注意デコーダ層1525および1526が異なることを除けば、自己注意デコーダ520と同様である。埋め込み層1522は、図5の層522に対応する。位置符号化層1524は、図5の層524に対応する。線形および分類層1528は、図5の層528に対応する。言語モデル1540およびジョイントオンラインデコーダ1530も、それぞれ図5の層540および530に対応する。
【0369】
自己注意デコーダ1520は、自己注意デコーダ層のスタックを備える。例えば、自己注意デコーダ1520は、L個の自己注意デコーダ層のスタックを備える。最初のL-1個の自己注意デコーダ層1525はそれぞれ、以下の構成を有する。最初のK-1個の層1525は、最後の自己注意デコーダ層1526以外の自己注意デコーダ層に対応する。各自己注意デコーダ層1525は、2つのサブ層、すなわち自己注意サブ層と、ポジションワイズ順伝播型サブ層とを備える。各自己注意デコーダ層1525は、自己注意エンコーダ層516と同じ構成を有し、同じように動作する。自己注意デコーダ層1525への入力は、自己注意サブ層に入り、その後に順伝播型ネットワークに入る。各自己注意デコーダ層1525は、言語モデリングを実行する。
【0370】
各自己注意デコーダ層1525は、各サブ層の後で残差接続と層の正規化とを使用することがある。1つまたは複数の自己注意デコーダ層1525のうちの第1の層は、入力として、例えば位置符号化層の出力など、増強された埋め込みを受け取る。後続の自己注意デコーダ層は、それより前の自己注意デコーダ層の出力を受け取る。実装では、1つまたは複数の自己注意デコーダ層1525は、6個の自己注意デコーダ層であることがあり、各自己注意デコーダ層の自己注意サブ層の次元は、256であることがあり、各自己注意デコーダ層1525のポジションワイズ順伝播型サブ層は、2048個のユニットを有することがあり、各自己注意デコーダ層は、4つの注意ヘッドを含むことがある。
【0371】
最後の自己注意デコーダ層1526は、マルチヘッド自己注意サブ層と、マルチヘッド交差注意サブ層と、順伝播型ネットワークサブ層(FFN)のカスケードを備える。層の正則化もそれらの出力において適用されて、モデルの収束を促進する。ステップ1240または方法1300は、最後のデコーダ層1526のマルチヘッド交差注意サブ層で実行される。表現を容易にするために、このサブ層を、最後のデコーダ層と呼ぶ。最後のデコーダ層は、停止選択器1500bを実装する。停止選択器1500bは、図10の方法または図11の方法1300を実施し、図12(b)に関連して説明するように訓練される。
【0372】
累積注意の訓練
図12(b)は、音声認識システム1500を訓練する方法1700を示す流れ図である。音声認識システム1500は、図10および図11に記載される方法を実施することがある。システム1500は、停止選択器1500bを備える。停止選択器1500bは、1240および1300に関連して上述した停止選択器に対応する。停止選択器1500bは、同じ損失関数を使用して、ASRモジュール1500と一緒に訓練される。
【0373】
ASRシステム1500と停止選択器1500bとは、一緒に訓練される。システム1500と停止選択器1500bとは、同じ訓練データを使用して訓練される。システム1500のパラメータと、停止選択器1500bのパラメータとは、一緒に更新される。ASRシステム1500と、停止選択器1500bとは、同じ損失関数を使用して訓練される。
【0374】
以下のステップは、訓練セットの各訓練対ごとに実行される。各訓練対1710は、複数の発話音声フレームと、訓練トークンのシーケンスとを含む。この訓練用トークンシーケンスは、基準シーケンスまたは参照シーケンスと記載されることもある。訓練用トークンシーケンスは、複数の発話音声フレームが対応する発語の内容の人による指示から導出されることがある。例えば、単語、フレーズ、またはセンテンスを表すトークンのシーケンスである。
【0375】
トークンのシーケンスは、複数の発話音声フレームから導出される。各フレームごとに、方法1200のステップ1230から1260、または方法1300のステップ1330から1380を用いて、トークンが導出されることがある。上記のステップは、音声認識システム1500によって実施されることがある。
【0376】
トークンのシーケンスが複数のトークンを含む場合には、複数の発話音声フレームのうちの残りのフレームに上記のステップを適用することによって、トークンのシーケンスのさらなるトークンが得られることもある。
【0377】
トークンのシーケンスを導出することと、音声認識システムの重みを更新することとは、以下のステップを含む。
【0378】
i.各フレームが、ステップ1230に関連して説明したように符号化される。
【0379】
ii.エンコーダ層のエンコーダ状態が、デコーダニューラルネットワーク1520の最後のデコーダ層1526に供給される。
【0380】
iii.各エンコーダ時間ステップ(j)ごとに、停止確率pi,jが、ステップ1330、1340、1350、1360、および1370に関連して上述したように導出される。
【0381】
iv.次いで、停止仮説の分布が導出される。停止仮説(αi,j)の分布は、次のように得られる。
【0382】
【数23】
【0383】
-αi,jは、現在の復号ステップ(i)の全ての可能な停止位置を考慮したときのpi,jの期待値である。この場合には、停止選択器は、それ自体の停止確率pi,jを有する停止位置として、全ての時間ステップ(j)を選択することがあると仮定される。全ての停止位置(停止仮説)を含むために、現在の復号ステップにおける停止確率の期待値が計算される。
【0384】
-数式12では、停止確率pi,jに、それ以前の各時間ステップ1からj-1における停止確率の減算の結果の各々が乗算される。
【0385】
-停止選択器は硬決定を割り当て、システムのパラメータを差別化不能にするので、コンテキストベクトルciの期待値は、全ての可能な停止位置を周辺化することによって考慮される。硬決定とは、いかなる他の時間ステップも確率的に考慮せずに、どの時間ステップが停止位置であるかが示されることを意味する。全ての可能な停止位置を周辺化するとは、全ての停止位置が考慮されることを意味する。
【0386】
-システムのパラメータが差別化不能であるとは、この場合には、停止確率(停止選択器の出力)が利用されないので、停止選択器のパラメータがASRシステムの残りの部分から分離され、したがってそれらのパラメータがASRモジュールと一緒に更新されることが不可能になり、その結果として停止選択器のパラメータが交差エントロピ-損失関数に対して差別化不能になることを意味する。
【0387】
v.期待コンテキストベクトルは、次のように計算される。
【0388】
【数24】
【0389】
-数式13において、ci,jは、連結されたコンテキストベクトルであり、ステップ1330、1340、1350、および1360に関連して上述したように取得され、αi,jは、上述の通りである。
【0390】
vi.次いで、数式(13)の期待コンテキストベクトルが、順伝播型ネットワークに送られ、予測ASR出力を得る。例えば、ASR出力は、図12(a)またはアルゴリズム4に記載されるように導出されるトークンである。
【0391】
vii.次いで、予測ASR出力が、損失関数に送られて、パラメータの重み更新1720を実行する。重み更新は、損失関数による、導出されたトークンのシーケンスと訓練用トークンシーケンスとの間の差に基づく。例えば、損失関数は、交差エントロピ損失関数である。重み更新は、図7に関連して説明した重み更新720と同様である。ただし、この場合には、重み更新1720は、ASRシステム1500全体の重み(停止選択器1500bの重みを含む)に関係する。
【0392】
CAアルゴリズムによる実験結果
音声認識システム1500の性能を調査する実験について、図13図14(a)、および図14(b)に関連して述べる。システム1500は、図10または11の方法を実施することがあり、図12に関連して説明したように訓練される。
【0393】
CAアルゴリズムの性能は、2つのデータセット、すなわち中国語タスクのAIShell-1と、英語タスクのLibrispeechとについて検証されている。性能は、他の参照システムとの比較とともに、以下の表に示してある。
【0394】
CAアルゴリズムを実施するシステムは、CAトランスフォーマとも呼ばれる。
【0395】
データセットは、次のように準備される。速度摂動は、AIShell-1に適用され、SpecAugmentは、Librispeechに対して行われる。音響特徴は、3次元のピッチ情報を有する80次元のフィルタバンク係数である。データセットのボキャブラリは、AIShell-1では4231個の中国語の文字を含み、Librispeechでは5000個のBPEトークン化された単語片を含む。
【0396】
オンラインASRシステムのアーキテクチャは、次の通りである。同一のフロントエンドがタスク間で共有され、これは3×3の幅および2×2のストライドを有する256個のカーネルの2つのCNN層を備えるので、フレームレートは、2倍に低減されることができる。エンコーダは、12個の標準的な自己注意層をスタックし、本明細書で述べるのと同様にチャンクワイズストリーミング戦略を利用し、ここで、左、中央、および右のチャンクのサイズは、{64、64、32}フレームである。ヘッドの数、注意の次元、および各エンコーダ層のFFNユニットのサイズは、AIShell-1では{4、256、2048}であり、Librispeechでは{8、512、2048}である。デコーダは、各タスクのエンコーダと同じパラメータを有する6つの層を備える。CAアルゴリズムを実施するシステムでは、最後のデコーダ層は、停止選択器を備える。
【0397】
結合CTC/注意訓練は、収束を早めるために、0.3の重みで全てのタスクについて実行される。両タスクの学習速度は、初期学習速度と、ウォームアップステップと、およびエポック数とがAIShell-1では{1.0、25000、50}に設定され、Librispeechでは{5.0、25000、120}に設定されるNoamの重み減衰方式に従う。訓練セットのテキストで訓練された外部言語モデル(LM)が、このシステムによって復号されたビーム探索(ビーム幅=10)仮説をリスコアリングするために組み込まれる。ここで、LMは、AIShell-1では650ユニット/2層の長短期記憶(LSTM)ネットワークであり、Librispeechでは2048ユニット/4層のLSTMである。
【0398】
表6、7、および8は、文字誤り率/単語誤り率(CER/WER)の観点から3つのデータセットに対する提案されるオンラインASRシステムの結果を示す。
【0399】
公平に比較するために、CAアルゴリズムを実施するシステムで使用される同様のアーキテクチャおよび外部言語モデルを有する参照システムが選択される。例えば、3つの交差注意層を有する(D=1または2のモデルがうまく収束しなかったためにD=3とした)LibrispeechについてのHS-DACS以外は、MoChAに基づく参照システムとHS-DACSに基づく参照システムの両方が、1つの交差注意層(D=1)のみで訓練される。ここで、Dは、交差注意サブ層を有する最上部(すなわち最後の層)からのデコーダ層の数を表す。D=1である場合には、最上層自体が交差注意サブ層である。
【0400】
【表6】
【0401】
【表7】
【0402】
表6および表7に示すように、CAトランスフォーマは、改善された精度を得る。再現されたMoChAモデルおよびHS-DACSモデルに関しては、AIShell-1ではCAは、MoChAと比較して2.8%の相対利得を得、HS-DACSと同程度の性能を得る。Librispeechについては、CAは、クリーン状態および雑音状態の両方で、それぞれ相対利得が16.1%および10.8%で、MoChAより優れている。さらに、CAは、CAシステムで使用される交差注意層の方が少ないと仮定しても、HS-DACSに匹敵するWERを実現する。
【0403】
推論中のCAトランスフォーマの待ち時間も、測定され、MoChAおよびHS-DACSの参照システムと比較されている。待ち時間は、コーパスレベル待ち時間の形態で決定される。
【0404】
【数25】
【0405】
ここで、Nは、データセット中の発語の総数を示し、|yk|は、各発語中の出力トークン数であり、
【0406】
【数26】
【0407】
は、停止位置が位置する右入力チャンク
【0408】
【数27】
【0409】
の境界と出力トークンbk iの実際の境界との間の差である。実際の境界bk iは、隠れマルコフモデル(HMM)強制アライメントから得られることがある。不良の待ち時間計算をもたらす仮説シーケンスにはASRエラーがあることがあるので、正しく復号されたトークンの
【0410】
【数28】
【0411】
のみが、上記式に含められる。これにより、待ち時間に関する上記式では分母が様々になることがあるが、同様のASR精度が3つのシステム全てによって達成されると仮定すれば、待ち時間の比較は依然として妥当である。また、発明者等の実験における全てのオンライン注意機構は各復号ステップで独立して実行されるので、停止位置は単調でないことがある。したがって、待ち時間を計算するときに、
【0412】
【数29】
【0413】
が、復号プロセスで見られるさらなる時間ステップに同期される(アルゴリズム4,行16参照)。
【0414】
表8は、AIShell-1およびLibrispeechのデータセットについて評価されたMoChA、HS-DACS、およびCAに基づくシステムの待ち時間レベルを提示する。CAと公平に比較するために、MoChAおよびHS-DACSの両方において、最大先読みステップ(M)は、復号プロセス中に適用されない。AIShell-1では、両システムの待ち時間レベルがオフラインシステムと比較して妥当であるように見えると観察されるが、Librispeechでは、有効な注意を捉えることができない冗長なヘッドにより、待ち時間レベルがオフラインシステムに近いことが分かった。待ち時間を低下させるために、認識中に、Librispeechタスクのみについて、最大先読みステップM=16を課す。CA(Mなし)は、AIShell-1(Mなし)とLibrispeech(Mあり)の両方についてMoChAおよびHS-DACSより良好な待ち時間レベルを実現することを観察することができる。
【0415】
【表8】
【0416】
MoChAおよびHS-DACSによって与えられる低い待ち時間性能は、図13および図14(a)に示すように、ASR出力を生成するための様々なヘッドの停止決定を見ることによって説明され得る。図13は、8個のサブプロットを示し、各サブプロットは、MoChAシステムの8個の注意ヘッドの出力1に対応する。サブプロットは、順番に示されており、注意ヘッド1から4(行1、左から右)と、注意ヘッド5から8(行2、左から右)とに対応する。各サブプロットは、入力(横軸)に対する出力センテンス(縦軸)を示す色マップであり、色は、停止決定を表している。明色は、復号が停止されることを示し、暗色は、停止決定が得られない(したがって復号が中止されていない)ことを表す。入力は、発話フレームのインデックス、またはエンコーダインデックス(j)として理解されることがある。出力は、トークンのシーケンス{_HE,_MUST,_HAVE,_REALI,Z ,ED, _I, _WAS, _A, _STRANGER, _AND, _WISHED, _TO, _TENDER, _HIS, _HOSPITALITY, _TO, _ME, _I, _ACCEPTED, _IT , _GRATEFULLY, _I, _CLASPED, _HIS, _HAND, _HE, _PRESSED, _MINE, <eos>}に対応する。
【0417】
図13から、MoChAにおけるヘッド2、3、および6は、ほとんど復号を停止することはできず、最大先読みステップによって実行される打ち切りに依拠しなければならない。これらのヘッドについては、ほとんどの場合には、MoChAは、復号を停止することができず、MoChAは停止することができなくなる。これは、停止位置は最後の決定を行ったヘッドによって決まるからである。その代わりに、MoChAは、最大先読みステップに依拠して停止する。さらに詳細には、ヘッド2では、停止決定(明領域)は、単調ではない。ヘッド3および6では、停止決定は、全ての出力トークンについて得られるとは限らない(最大先読みステップが代わりに復号を停止するために使用される)。
【0418】
図14(a)は、HS-DACSシステムについての停止決定を示す。図14(a)では、横軸および縦軸は、図13と同じである。色は、停止決定(アルゴリズム3の行7のph,l i,jに対応する)を示す。明色は、復号が停止されることを示し、暗色は、停止決定が得られないことを表す。図14(a)から、一部の停止位置が直前の停止位置から離れており、次の復号ステップの停止位置が通常に戻ることを観察することができる。これは、例えば、復号ステップ「_HAVE」および最初の「_I」で見られる。停止は、最大先読みステップによって行われることが分かる。HS-DACSヘッドにおける停止確率の累積は、特定の復号ステップで結合しきい値(ヘッドの数、8)を超えず、推論プロセスを早期の段階で発話の終端に到達させる。例えば、停止決定(明領域)は、単調ではない。
【0419】
図14(b)は、CAトランスフォーマの停止確率を示す。図14(b)では、
横軸および縦軸は、図13と同じである。色は、停止確率(アルゴリズム4の行10、11のph,l i,jに対応する)を示す。明色は、復号が停止される(すなわちアルゴリズム4の行11の条件が満たされる)ことを示し、暗色は、停止決定が得られないことを表す。
【0420】
MoChA(図13)およびHS-DACS(図14(a))とは異なり、CAトランスフォーマにおける停止決定は、単調に、常に間に合って行われる。CAも冗長なヘッドを有することがあるが、これらのヘッドは、他の機能しているヘッドによってバックアップされることが可能である。これは、それらが全て同期されており、停止決定が全体的な音響情報に基づくからである。
【0421】
コンピュータハードウェア
図15は、本明細書に記載される実施形態による方法およびシステムを実装するために使用されることが可能なハードウェアを示す概略図である。なお、これは単なる例であり、他の構成が使用されることも可能であることに留意されたい。
【0422】
このハードウェアは、コンピューティングシステム900を備える。この特定の例では、このセクションの構成要素について、まとめて説明する。ただし、それらが必ずしも同じ位置にあるとは限らないことは理解されるであろう。
【0423】
コンピューティングシステム900の構成要素は、限定刺されるわけではないが、処理ユニット913(中央処理装置CPUなど)と、システムメモリ901と、システムメモリ901を含む様々なシステム構成要素を処理ユニット913に結合するシステムバス911とを含むことがある。システムバス911は、様々なバスアーキテクチャなどのうちのいずれかを用いる、メモリバスまたはメモリコントローラと、周辺バスと、ローカルバスとを含むいくつかのタイプのバス構造のうちのいずれであってもよい。コンピューティングシステム900は、バス911に接続された外部メモリ915も含む。
【0424】
システムメモリ901は、読取り専用メモリなど、揮発性または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ内の要素間で情報を転送するのを助けるルーチンを含む基本入出力システム(BIOS)903が、通常はシステムメモリ901に記憶される。さらに、システムメモリは、CPU913によって使用されるオペレーティングシステム905と、アプリケーションプログラム907と、プログラムデータ909とを含む。
【0425】
また、インタフェース925が、バス911に接続される。インタフェースは、コンピュータシステムが他のデバイスから情報を受け取るためのネットワークインタフェースであることがある。インタフェースは、ユーザが特定のコマンドなどに応答することを可能にするユーザインタフェースであることもある。
【0426】
この例では、ビデオインタフェース919が設けられている。ビデオインタフェース919は、グラフィックス処理メモリ921に接続されたグラフィックス処理ユニット919を備える。
【0427】
グラフィックス処理ユニット(GPU)919は、データ並列動作に適合していることにより、ニューラルネットワークの訓練などの音声認識システムの訓練に特に適している。したがって、実施形態では、音声認識システムを訓練する処理が、CPU913とGPU919との間で分割されることもある。
【0428】
なお、いくつかの実施形態では、音声認識システムを訓練するため、および音声認識を実行するために、異なるハードウェアが使用されることもあることに留意されたい。例えば、音声認識システムの訓練は、1つまたは複数のローカルのデスクトップコンピュータまたはワークステーションコンピュータ上で行われることもあるし、あるいは1つまたは複数の離散したデスクトップGPUまたはワークステーションGPUと、例えばPC指向アーキテクチャを有するプロセッサなどの1つまたは複数の離散したデスクトップCPUまたはワークステーションCPUと、例えば16GB以上などの大量の揮発性システムメモリとを含むことがある、クラウドコンピューティングシステムのデバイス上で行われることもある。一方、例えば、音声認識の実行では、システムオンチップ(SoC)の一部としてモバイルGPUを含み、またはGPUを含まず、例えばモバイル指向アーキテクチャまたはマイクロコントローラ指向アーキテクチャを有するプロセッサなどの1つまたは複数のモバイルCPUまたは組込み型CPUと、例えば1GB未満などのより少量の揮発性メモリとを含むことがある、モバイルハードウェアまたは組込み型ハードウェアを使用することもある。例えば、音声認識を実行するハードウェアは、スマートスピーカ、または仮想アシスタントを含む携帯電話などの音声アシスタントシステム120であることもある。音声認識システムを訓練するために使用されるハードウェアは、エージェントを用いてタスクを実行するために使用されるハードウェアと比較して、例えば複数の動作を毎秒実行することができるなど、かなり大きな計算能力を有し、大きなメモリを有することがある。例えば1つまたは複数のニューラルネットワークを使用して推論を実行することなどによって音声認識を実行することは、例えば1つまたは複数のニューラルネットワークを訓練することなどによって音声認識システムを訓練することより計算資源集約性がかなり低いので、さらに少ない資源を有するハードウェアを使用することも可能である。さらに、例えば1つまたは複数のニューラルネットワークを使用して推論を実行するためなど、音声認識を実行するために使用される計算資源を低減する技術が利用されることも可能である。このような技術の例は、モデル蒸留を含み、ニューラルネットワークでは、枝刈りおよび量子化などのニューラルネットワーク圧縮技術を含む。
【0429】
特定の実施形態について説明したが、これらの実施形態は、例示を目的として提示されているに過ぎず、本発明の範囲を限定するためのものではない。実際に、本明細書に記載される新規のデバイスおよび方法は、様々な他の形態で実施することができ、さらに、本明細書に記載されるデバイス、方法、および製品の形態では、本発明の趣旨を逸脱することなく、様々な省略、置換、および変更を行うことができる。添付の特許請求の範囲およびそれらの均等物は、そのような形態または修正を、本発明の範囲および趣旨に含まれるものとしてカバーするものと意図されている。

図1A
図1B
図1C
図1D
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12(a)】
図12(b)】
図13
図14(a)】
図14(b)】
図15