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

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

▶ グーグル インコーポレイテッドの特許一覧

特表2024-538717エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること
<>
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図1
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図2
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図3
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図4A
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図4B
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図5
  • 特表-エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-23
(54)【発明の名称】エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測すること
(51)【国際特許分類】
   G10L 15/32 20130101AFI20241016BHJP
   G10L 15/10 20060101ALI20241016BHJP
   G10L 15/04 20130101ALI20241016BHJP
   G10L 15/16 20060101ALI20241016BHJP
【FI】
G10L15/32 200Z
G10L15/10 200W
G10L15/04 200
G10L15/16
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024521017
(86)(22)【出願日】2022-09-21
(85)【翻訳文提出日】2024-05-30
(86)【国際出願番号】 US2022076822
(87)【国際公開番号】W WO2023059985
(87)【国際公開日】2023-04-13
(31)【優先権主張番号】63/262,141
(32)【優先日】2021-10-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】シャーン・ジャグディープ・パトリック・ビジュワディア
(72)【発明者】
【氏名】タラ・エヌ・サイナス
(72)【発明者】
【氏名】ジアフア・ユ
(72)【発明者】
【氏名】シュオ-イン・チャン
(72)【発明者】
【氏名】ヤンジャン・ヘ
(57)【要約】
方法(500)は、ユーザデバイス(10)によってキャプチャされた発話(106)に対応する入力オーディオフレーム(110)のシーケンスを受信するステップを含む。発話は、複数の単語を含む。各入力オーディオフレームについて、方法は、入力オーディオフレームのシーケンスを入力として受信するように構成された単語境界検出モデル(210)を使用して、入力オーディオフレームが単語境界であるかどうかを予測するステップを含む。方法は、単語境界として予測された入力オーディオフレームに基づいて、入力オーディオフレームを複数のバッチ(222)としてバッチ処理することを含む。各バッチは、対応する複数のバッチ処理された入力オーディオフレームを含む。複数のバッチの各々について、方法は、音声認識モデル(230)を使用して、対応する複数のバッチ処理された入力オーディオフレームを並行して処理して音声認識結果(120)を生成するステップを含む。
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(610)上で実行されると、前記データ処理ハードウェア(610)に動作を実施させるコンピュータ実装方法(500)であって、前記動作は、
ユーザデバイス(10)によってキャプチャされた発話(106)に対応する入力オーディオフレーム(110)のシーケンスを受信することであって、前記発話(106)は、複数の単語を含む、受信することと、
各入力オーディオフレーム(110)について、前記入力オーディオフレーム(110)のシーケンスを入力として受信するように構成された単語境界検出モデル(210)を使用して、前記入力オーディオフレーム(110)が単語境界であるかどうかを予測することと、
単語境界として予測された前記入力オーディオフレーム(110)に基づいて、前記入力オーディオフレーム(110)を複数のバッチ(222)としてバッチ処理し、各バッチ(222)は、対応する複数のバッチ処理された入力オーディオフレーム(110)を備える、バッチ処理することと、
前記複数のバッチ(222)の各々について、音声認識モデル(230)を使用して、前記対応する複数のバッチ処理された入力オーディオフレーム(110)を並行して処理して、音声認識結果(120)を生成することと、
を含む、コンピュータ実装方法(500)。
【請求項2】
前記単語境界検出モデル(210)は、音声区間検出(VAD)モデルを備える、請求項1に記載のコンピュータ実装方法(500)。
【請求項3】
前記音声認識モデル(230)は、第1の音声認識モデルを備え、前記単語境界検出モデル(210)は、隣接する単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベル(415)を使用して訓練される第2の音声認識モデルを備える、請求項1に記載のコンピュータ実装方法(500)。
【請求項4】
前記トランスクリプトラベル(415)は、ワードピース単位にトークン化され、前記第1の音声認識モデルは、ワードピース単位を予測して音声認識結果(120)を生成する、請求項3に記載のコンピュータ実装方法(500)。
【請求項5】
前記第1の音声認識モデルは、隣接する単語の各ペア間の前記特殊な境界トークンを用いて拡張された前記トランスクリプトラベル(415)を使用して教師モデルとして訓練され、
前記第2の音声認識モデルは、前記教師モデルのロジット損失を判定し、前記教師モデルの前記ロジット損失の勾配を生徒モデルの重みに適用する勾配グラフティングを実施することによって前記生徒モデルとして訓練される、請求項3または4に記載のコンピュータ実装方法(500)。
【請求項6】
前記第2の音声認識モデルは、小型音声認識モデルを備える、請求項3から5のいずれか一項に記載のコンピュータ実装方法(500)。
【請求項7】
前記複数のバッチ(222)のうちの第1のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの第1の数の入力オーディオフレーム(110)を含み、
前記複数のバッチ(222)のうちの第2のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの異なる第2の数の入力オーディオフレーム(110)を含む、請求項1から6のいずれか一項に記載のコンピュータ実装方法(500)。
【請求項8】
前記第1のバッチ(222)の前記入力オーディオフレーム(110)は、第1の発語を表し、
前記第2のバッチ(222)の前記入力オーディオフレーム(110)は、異なる第2の発語を表す、請求項7に記載のコンピュータ実装方法(500)。
【請求項9】
前記複数のバッチ(222)の各バッチ(222)は、前記入力オーディオフレーム(110)全体における特定の発語を表す前記入力オーディオフレーム(110)のシーケンスのうちの前記入力オーディオフレーム(110)のすべてを含む、請求項1から8のいずれか一項に記載のコンピュータ実装方法(500)。
【請求項10】
前記音声認識モデルは、エンコーダネットワーク(240)と、予測ネットワーク(300)と、ジョイントネットワーク(250)とを備えるトランスデューサベースの音声認識モデル(230)を備える、請求項1から9のいずれか一項に記載のコンピュータ実装方法(500)。
【請求項11】
前記エンコーダネットワーク(240)は、複数のマルチヘッドアテンション層を備える、請求項10に記載のコンピュータ実装方法(500)。
【請求項12】
前記予測ネットワーク(300)は、初期時間ステップに続く複数の時間ステップの各々において、
最終ソフトマックス層(260)によって出力された非ブランクシンボル(232)のシーケンスを入力として受信することと、
対応する時間ステップにおいて入力として受信される前記非ブランクシンボル(232)のシーケンスにおける各非ブランクシンボル(232)について、
共有埋め込み行列(304)を使用して前記対応する非ブランクシンボル(232)の埋め込み表現(306)を生成することと、
前記対応する非ブランクシンボル(232)にそれぞれの位置ベクトル(308)を割り当てることと、
前記埋め込み表現(306)を前記埋め込み表現(306)と前記それぞれの位置ベクトル(308)との間の類似度に比例して重み付けすることと、
前記対応する時間ステップにおける単一の埋め込みベクトル(350)を出力として生成することであって、前記単一の埋め込みベクトル(350)が、前記重み付けされた埋め込み表現(312)の加重平均(316)に基づく、生成することと、
を行うように構成され、
前記ジョイントネットワーク(250)は、前記初期時間ステップに続く前記複数の時間ステップの各々において、
前記対応する時間ステップにおける前記予測ネットワーク(300)からの出力として生成された前記単一の埋め込みベクトル(350)を入力として受信することと、
前記対応する時間ステップにおける可能な音声認識仮説にわたる確率分布(252)を生成することと、
を行うように構成される、請求項10または11に記載のコンピュータ実装方法(500)。
【請求項13】
前記予測ネットワーク(300)は、前記共有埋め込み行列(304)の次元を前記ジョイントネットワーク(250)の出力層の次元にタイイングさせる、請求項12に記載のコンピュータ実装方法(500)。
【請求項14】
データ処理ハードウェア(610)と、
前記データ処理ハードウェア(610)と通信するメモリハードウェア(620)とを備え、前記メモリハードウェア(620)は、前記データ処理ハードウェア(610)上で実行されると、前記データ処理ハードウェア(610)に動作を実行させる命令を記憶し、前記動作は、
ユーザデバイス(10)によってキャプチャされた発話(106)に対応する入力オーディオフレーム(110)のシーケンスを受信することであって、前記発話(106)は、複数の単語を含む、受信することと、
各入力オーディオフレーム(110)について、前記入力オーディオフレーム(110)のシーケンスを入力として受信するように構成された単語境界検出モデルを(210)使用して、前記入力オーディオフレーム(110)が単語境界であるかどうかを予測することと、
単語境界として予測された前記入力オーディオフレーム(110)に基づいて、前記入力オーディオフレーム(110)を複数のバッチ(222)としてバッチ処理することであって、各バッチ(222)は、対応する複数のバッチ処理された入力オーディオフレーム(110)を備える、バッチ処理することと、
前記複数のバッチ(222)の各々について、音声認識モデル(230)を使用して、前記対応する複数のバッチ処理された入力オーディオフレーム(110)を並行して処理して音声認識結果を生成することと、
を含む、システム(100)。
【請求項15】
前記単語境界検出モデル(210)は、音声区間検出(VAD)モデルを備える、請求項14に記載のシステム(100)。
【請求項16】
前記音声認識モデル(230)は、第1の音声認識モデルを備え、前記単語境界検出モデル(210)は、隣接する単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベル(415)を使用して訓練される第2の音声認識モデルを備える、請求項14に記載のシステム(100)。
【請求項17】
前記トランスクリプトラベル(415)は、ワードピース単位にトークン化され、前記第1の音声認識モデルは、ワードピース単位を予測して前記音声認識結果を生成する、請求項16に記載のシステム(100)。
【請求項18】
前記第1の音声認識モデルは、隣接する単語の各ペア間の前記特殊な境界トークンを用いて拡張された前記トランスクリプトラベル(415)を使用して教師モデルとして訓練され、
前記第2の音声認識モデルは、前記教師モデルのロジット損失を判定し、前記教師モデルの前記ロジット損失の勾配を生徒モデルの重みに適用する勾配グラフティングを実施することによって前記生徒モデルとして訓練される、請求項16または17に記載のシステム(100)。
【請求項19】
前記第2の音声認識モデルは、小型音声認識モデルを備える、請求項14から18のいずれか一項に記載のシステム(100)。
【請求項20】
前記複数のバッチ(222)のうちの第1のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの第1の数の入力オーディオフレーム(110)を含み、
前記複数のバッチ(222)のうちの第2のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの異なる第2の数の入力オーディオフレーム(110)を含む、請求項14から19のいずれか一項に記載のシステム(100)。
【請求項21】
前記第1のバッチ(222)の前記入力オーディオフレーム(110)は、第1の発語を表し、
前記第2のバッチ(222)の前記入力オーディオフレーム(110)は、異なる第2の発語を表す、請求項20に記載のシステム(100)。
【請求項22】
前記複数のバッチ(222)の各バッチは、前記入力オーディオフレーム(110)全体における特定の発語を表す前記入力オーディオフレーム(110)のシーケンスのうちの前記入力オーディオフレーム(110)のすべてを含む、請求項14から21のいずれか一項に記載のシステム(100)。
【請求項23】
前記音声認識モデル(230)は、エンコーダネットワーク(240)と、予測ネットワーク(300)と、ジョイントネットワーク(250)とを備えるトランスデューサベースの音声認識モデル(230)を備える、請求項14から22のいずれか一項に記載のシステム(100)。
【請求項24】
前記エンコーダネットワーク(240)は、複数のマルチヘッドアテンション層を備える、請求項23に記載のシステム(100)。
【請求項25】
前記予測ネットワーク(300)は、初期時間ステップに続く複数の時間ステップの各々において、
最終ソフトマックス層(260)によって出力された非ブランクシンボル(232)のシーケンスを入力として受信することと、
対応する時間ステップにおいて入力として受信される前記非ブランクシンボル(232)のシーケンスにおける各非ブランクシンボル(232)について、
共有埋め込み行列(304)を使用して前記対応する非ブランクシンボル(232)の埋め込み表現(306)を生成することと、
前記対応する非ブランクシンボル(232)にそれぞれの位置ベクトル(308)を割り当てることと、
前記埋め込み表現(306)を前記埋め込み表現(306)と前記それぞれの位置ベクトル(308)との間の類似度に比例して重み付けすることと、
前記対応する時間ステップにおける単一の埋め込みベクトル(350)を出力として生成することであって、前記単一の埋め込みベクトル(350)が、前記重み付けされた埋め込み表現(312)の加重平均(316)に基づく、生成することと、
を行うように構成され、
前記ジョイントネットワーク(250)は、前記初期時間ステップに続く前記複数の時間ステップの各々において、
前記対応する時間ステップにおける前記予測ネットワーク(300)からの出力として生成された前記単一の埋め込みベクトル(350)を入力として受信することと、
前記対応する時間ステップにおける可能な音声認識仮説にわたる確率分布(252)を生成することと、
を行うように構成される、請求項23または24に記載のシステム(100)。
【請求項26】
前記予測ネットワーク(300)は、前記共有埋め込み行列(304)の次元を前記ジョイントネットワーク(250)の出力層の次元にタイイングさせる、請求項25に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測することに関する。
【背景技術】
【0002】
現代の自動音声認識(ASR)システムは、品質が高い(たとえば、ワードエラー率が低い)だけでなく、レイテンシも低い(たとえば、ユーザが発話してから文字が起こされるまでの遅延が短い)、発話についての音声認識を提供することを重視している。たとえば、ASRシステムを実装したデバイスを使用する際、ASRシステムが、リアルタイムに対応するか、または場合によってはリアルタイムよりも速いストリーミング式に発話を復号することがしばしば予期される。一例として、直接的なユーザ対話処理が行われる携帯電話上にオンデバイスASRシステムが配置されるとき、ASRシステムを使用する携帯電話上のアプリケーションに、音声認識をストリーム処理し、それによって、単語が発話された直後に画面上に出現することが必要になることがある。ここで、携帯電話のユーザは、レイテンシに対する許容度が低い可能性も高い。この低い許容度に起因して、音声認識が、ユーザのエクスペリエンスに悪影響を与えることがあるレイテンシおよび不正確さによる影響を最小限に抑えるようにモバイルデバイス上で実行されるように、動作するように努める。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の一態様は、ユーザデバイスによってキャプチャされた発話に対応する入力オーディオフレームのシーケンスを受信するステップであって、発話は、複数の単語を含む、ステップを含む方法を提供する。各入力オーディオフレームについて、方法は、入力オーディオフレームのシーケンスを入力として受信するように構成された単語境界検出モデルを使用して、入力オーディオフレームが単語境界であるかどうかを予測するステップを含む。方法は、単語境界として予測された入力オーディオフレームに基づいて、入力オーディオフレームを複数のバッチとしてバッチ処理する。各バッチは、対応する複数のバッチ処理された入力オーディオフレームを含む。複数のバッチの各々について、方法は、音声認識モデルを使用して、対応する複数のバッチ処理された入力オーディオフレームを並行して処理して音声認識結果を生成するステップを含む。
【0004】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含んでもよい。いくつかの実装形態では、単語境界検出モデルは、音声区間検出(VAD)モデルを含む。
【0005】
いくつかの例では、音声認識モデルは、第1の音声認識モデルを含み、単語境界検出モデルは、隣接する単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベルを使用して訓練される第2の音声認識モデルを含む。いくつかの実装形態では、トランスクリプトラベルは、ワードピース単位にトークン化され、第1の音声認識モデルは、ワードピース単位を予測して音声認識結果を生成する。いくつかの例では、第1の音声認識モデルは、単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベルを使用して教師モデルとして訓練され、第2の音声認識モデルは、教師モデルのロジット損失を判定し、教師モデルのロジット損失の勾配を生徒モデルの重みに適用する勾配グラフティングを実施することによって生徒モデルとして訓練される。いくつかの実装形態では、第2の音声認識モデルは、小型音声認識モデル(miniaturized speech recognition model)を含む。
【0006】
いくつかの実装形態では、複数のバッチのうちの第1のバッチは、入力オーディオフレームのシーケンスのうちの第1の数の入力オーディオフレームを含み、複数のバッチのうちの第2のバッチは、入力オーディオフレームのシーケンスのうちの異なる第2の数の入力オーディオフレームを含む。いくつかの例では、第1のバッチの入力オーディオフレームは、第1の発語を表し、第2のバッチの入力オーディオフレームは、異なる第2の発語を表す。いくつかの実装形態では、複数のバッチの各バッチは、入力オーディオフレーム全体における特定の発語を表す入力オーディオフレームのシーケンスのうちの入力オーディオフレームのすべてを含む。
【0007】
いくつかの実装形態では、音声認識モデルは、エンコーダネットワークと、予測ネットワークと、ジョイントネットワークとを有するトランスデューサベースの音声認識モデルを含む。いくつかの例では、エンコーダネットワークは、複数のマルチヘッドアテンション層を含む。
【0008】
いくつかの例では、予測ネットワークは、初期時間ステップに続く複数の時間ステップの各々において、最終ソフトマックス層によって出力された非ブランクシンボルのシーケンスを入力として受信するように構成される。予測ネットワークは、複数の時間ステップの各々において、対応する時間ステップにおいて入力として受信される非ブランクシンボルのシーケンスにおける各非ブランクシンボルについて、共有埋め込み行列を使用して対応する非ブランクシンボルの埋め込み表現を生成し、対応する非ブランクシンボルにそれぞれの位置ベクトルを割り当て、埋め込み表現を埋め込み表現とそれぞれの位置ベクトルとの間の類似度に比例して重み付けするように構成される。予測ネットワークはさらに、対応する時間ステップにおける単一の埋め込みベクトルを出力として生成するように構成され、単一の埋め込みベクトルは、重み付けされた埋め込み表現の加重平均に基づく。いくつかの実装形態では、ジョイントネットワークは、初期時間ステップに続く複数の時間ステップの各々において、対応する時間ステップにおいて予測ネットワークからの出力として生成された単一の埋め込みベクトルを入力として受信し、対応する時間ステップにおける可能な音声認識仮説にわたる確率分布を生成するように構成される。いくつかの例では、予測ネットワークは、共有埋め込み行列の次元をジョイントネットワークの出力層の次元にタイイングさせる。
【0009】
本開示の別の態様は、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含むシステムを提供する。メモリハードウェアは、データ処理ハードウェア上で実行されると、ユーザデバイスによってキャプチャされた発話に対応する入力オーディオフレームのシーケンスを受信することを含む動作を、データ処理ハードウェアに実施させる命令を記憶する。発話は、複数の単語を含む。各入力オーディオフレームについて、動作は、入力オーディオフレームのシーケンスを入力として受信するように構成された単語境界検出モデルを使用して、入力オーディオフレームが単語境界であるかどうかを予測することを含む。動作は、単語境界として予測された入力オーディオフレームに基づいて、入力オーディオフレームを複数のバッチとしてバッチ処理し、各バッチは、対応する複数のバッチ処理された入力オーディオフレームを含む。複数のバッチの各々について、動作は、音声認識モデルを使用して、対応する複数のバッチ処理された入力オーディオフレームを並行して処理して音声認識結果を生成することを含む。
【0010】
本開示の実装形態は、以下の任意の特徴のうちの1つまたは複数を含む。いくつかの実装形態では、単語境界検出モデルは、音声区間検出(VAD)モデルを含む。
【0011】
いくつかの例では、音声認識モデルは、第1の音声認識モデルを含み、単語境界検出モデルは、隣接する単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベルを使用して訓練される第2の音声認識モデルを含む。いくつかの実装形態では、トランスクリプトラベルは、ワードピース単位にトークン化され、第1の音声認識モデルは、ワードピース単位を予測して音声認識結果を生成する。いくつかの例では、第1の音声認識モデルは、単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベルを使用して教師モデルとして訓練され、第2の音声認識モデルは、教師モデルのロジット損失を判定し、教師モデルのロジット損失の勾配を生徒モデルの重みに適用する勾配グラフティングを実施することによって生徒モデルとして訓練される。いくつかの実装形態では、第2の音声認識モデルは、小型音声認識モデルを含む。
【0012】
いくつかの実装形態では、複数のバッチのうちの第1のバッチは、入力オーディオフレームのシーケンスのうちの第1の数の入力オーディオフレームを含み、複数のバッチのうちの第2のバッチは、入力オーディオフレームのシーケンスのうちの異なる第2の数の入力オーディオフレームを含む。いくつかの例では、第1のバッチの入力オーディオフレームは、第1の発語を表し、第2のバッチの入力オーディオフレームは、異なる第2の発語を表す。いくつかの実装形態では、複数のバッチの各バッチは、入力オーディオフレーム全体における特定の発語を表す入力オーディオフレームのシーケンスのうちの入力オーディオフレームのすべてを含む。
【0013】
いくつかの実装形態では、音声認識モデルは、エンコーダネットワークと、予測ネットワークと、ジョイントネットワークとを有するトランスデューサベースの音声認識モデルを含む。いくつかの例では、エンコーダネットワークは、複数のマルチヘッドアテンション層を含む。
【0014】
いくつかの例では、予測ネットワークは、初期時間ステップに続く複数の時間ステップの各々において、最終ソフトマックス層によって出力された非ブランクシンボルのシーケンスを入力として受信するように構成される。予測ネットワークは、複数の時間ステップの各々において、対応する時間ステップにおける入力として受信された非ブランクシンボルのシーケンスにおける各非ブランクシンボルについて、共有埋め込み行列を使用して対応する非ブランクシンボルの埋め込み表現を生成し、対応する非ブランクシンボルにそれぞれの位置ベクトルを割り当て、埋め込み表現を埋め込み表現とそれぞれの位置ベクトルとの間の類似度に比例して重み付けするように構成される。予測ネットワークは、対応する時間ステップにおける単一の埋め込みベクトルを出力として生成するようにさらに構成され、単一の埋め込みベクトルは、重み付けされた埋め込み表現の加重平均に基づく。いくつかの実装形態では、ジョイントネットワークは、初期時間ステップに続く複数の時間ステップの各々において、対応する時間ステップにおける予測ネットワークからの出力として生成された単一の埋め込みベクトルを入力として受信し、対応する時間ステップにおける可能な音声認識仮説にわたる確率分布を生成するように構成される。いくつかの例では、予測ネットワークは、共有埋め込み行列の次元をジョイントネットワークの出力層の次元にタイイングさせる。
【0015】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0016】
図1】トランスクリプションのための自動音声認識(ASR)システムを使用する例示的な発話環境の概略図である。
図2図1のASRシステムの例の概略図である。
図3図2の回帰型ニューラルネットワークトランスデューサ(RNN-T)モデルの例示的なタイイングされ縮小された予測ネットワークの概略図である。
図4A図2のASRシステムを訓練するための例示的な訓練モジュールの概略図である。
図4B図2のASRシステムを訓練するための別の例示的な訓練モジュールの概略図である。
図5】エンドツーエンド音声認識モデルのオンデバイスバッチ処理のための単語境界を予測するコンピュータ実装方法のための動作の例示的な構成のフローチャートである。
図6】本明細書で説明するシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0017】
様々な図面における同じ参照記号は同じ要素を示す。
【0018】
あらゆるASRシステムについて(たとえば、ワードエラー率(WER)によって測定される)トランスクリプション品質が重要であるが、オンデバイスASRシステム(たとえば、ユーザデバイス上に実装されるかまたはユーザデバイスによって実装されるASRシステム)ではしばしば、特にレイテンシおよび電力消費量が重要になる。すなわち、オンデバイスASRシステムはしばしば、バッテリの使用量と実施される計算の量との兼ね合わせに直面する。たとえば、大型の音声認識モデルは一般に、より正確であるが、しばしば計算コストがより高く、電力消費量がより多い。
【0019】
入力オーディオフレームをバッチ処理すると、オンデバイスASRシステムについてのバッテリ使用量を改善することができる。すなわち、ASRシステムは有利には、多数の離散入力オーディオフレームをバッチ処理し、すべてのバッチ処理されたフレーム時間における音声認識予測を並行して計算する。しかし、入力オーディオフレームをバッチ処理すると、レイテンシが増大し、いくつかの例では、音声認識精度が低下することがある。すなわち、ASRシステムが発語を認識してそのトランスクリプションを出力するのにかかる時間が長くなることがある。
【0020】
計算とレイテンシをよりうまく兼ね合わせ、音声認識品質を維持するための1つの方法は、フルワードを表す入力オーディオフレームのセットまたはバッチを共にバッチ処理することである。そのような方式では、各発語の全体が連続入力オーディオフレームの単一のバッチによって表され、それによって、入力オーディオフレームの各バッチが、ASRシステムが発語のトランスクリプションを初めて放出することができるようになるのと実質的に同時に終了する。理想的なケースでは、これによって、単語のトランスクリプションが、入力オーディオフレームのバッチが処理された直後に放出され得るので、レイテンシが低減するかまたは最小限に抑えられる。すなわち、場合によっては、無音の状態が先行する場合を含め、バッチサイズが個々の単語と同程度の大きさである間でも追加のレイテンシが存在しない場合もある。そのような方式を実施するには、音声認識モデルによる、入力オーディオフレームの対応するバッチの処理が、単語の終了境界が検出された直後に開始することができるように、入力オーディオフレームのストリームにおける単語境界(すなわち、発語の終わりに対応する特定の入力オーディオフレーム)を迅速、正確、かつ確実に特定することが重要である。
【0021】
本明細書で開示される例では、単語境界検出を使用して、音声認識出力における単語境界を予測し、予測された単語境界を使用して、入力オーディオフレームを、各々が対応する発語全体を表す入力オーディオフレームのバッチとしてバッチ処理する。すなわち、予測された単語境界は、入力オーディオフレームについての単語終了タイミングを相関付けるために使用され得る。開示される例は、音声認識品質にも最終WERにも影響を与えない。その理由は、本明細書で開示される例では基本的な音声認識モデルを変更する必要がないからである。さらに、入力オーディオフレームの各バッチのサイズが発語全体に対応するように動的にかつ個別に最大化されるので、バッテリ使用量が低減されるかまたは最小限に抑えられる。さらに、入力オーディオフレームの各バッチがそれぞれの単語境界で終了するのでレイテンシは増大されない。いくつかの実施形態では、方法は、ユーザデバイスによってキャプチャされた発話に対応する入力オーディオフレームのシーケンスを受信するステップを含む。ここで、発話は複数の単語を含む。各入力オーディオフレームについて、方法は、入力オーディオフレームのシーケンスを入力として受信するように構成された単語境界検出モデルを使用して、入力オーディオフレームが単語境界であるかどうかを予測するステップを含んでもよい。これらの実装形態では、方法はまた、単語境界として予測された入力オーディオフレームに基づいて、入力オーディオフレームを複数のバッチとしてバッチ処理するステップを含む。ここで、各バッチは、対応する複数のバッチ処理された入力オーディオフレームを含む。方法は、次いで、複数のバッチの各々について、音声認識モデルを使用して、対応する複数のバッチ処理された入力オーディオフレームを並行して処理して、音声認識結果を生成するステップを含んでもよい。
【0022】
図1は、発話環境101において動作する例示的なシステム100の概略図である。発話環境101において、ユーザ104が、ユーザデバイス10などのコンピューティングデバイスと対話する方法は、音声入力によるものであってもよい。ユーザデバイス10(一般にデバイス10とも呼ばれる)は、発話環境101内の1人または複数のユーザ104から音声(たとえば、ストリーミングオーディオデータ)を取り込むように構成される。ここで、ストリーミングオーディオデータは、可聴クエリ、デバイス10に対するコマンド、デバイス10によって取り込まれる可聴通信などとして働く、ユーザ104による発話106を指してもよい。デバイス10の音声対応システムは、クエリに答え、かつ/またはコマンドを1つまたは複数のダウンストリームアプリケーションによって実行/完遂させることによってクエリまたはコマンドを適切に処理してもよい。
【0023】
ユーザデバイス10は、ユーザに関連付けられ、オーディオデータを受信することができる任意のコンピューティングデバイスに対応してもよい。ユーザデバイス10のいくつかの例には、限定はしないが、モバイルデバイス(たとえば、携帯電話、タブレット、ラップトップなど)、コンピュータ、ウェアラブルデバイス(たとえば、スマートウォッチ)、スマートアプライアンス、もののインターネット(IoT)デバイス、車載インフォテインメントシステム、スマートディスプレイ、スマートスピーカなどが含まれる。ユーザデバイス10は、データ処理ハードウェア12と、データ処理ハードウェア12と通信するメモリハードウェア14とを含み、データ処理ハードウェア12によって実行されたときに、データ処理ハードウェア12に1つまたは複数の動作を実行させる命令を記憶する。ユーザデバイス10は、発話環境101内の発話106を取り込み電気信号に変換するためのオーディオキャプチャデバイス(たとえば、マイクロフォン)16、16aを有するオーディオシステム16と、可聴オーディオ信号を(たとえば、デバイス10からの出力オーディオデータとして)通信するための発話出力デバイス(たとえば、スピーカ)16、16bとをさらに含む。ユーザデバイス10は、図示の例では単一のオーディオキャプチャデバイス16aを実装するが、本開示の範囲から逸脱せずにオーディオキャプチャデバイス16aのアレイを実装してもよく、アレイ内の1つまたは複数のキャプチャデバイス16aは、ユーザデバイス10上に物理的に存在せず、オーディオシステム16と通信する場合がある。
【0024】
特に、回帰型ニューラルネットワークトランスデューサ(RNN-T)ベースの音声認識モデル230と任意のリスコアラ180とを実装した自動音声認識(ASR)システム200を含むシステム100は、ユーザ104のユーザデバイス10および/またはネットワーク40を介してユーザデバイス10と通信するリモートコンピューティングデバイス60(たとえば、クラウドコンピューティング環境において実行される分散システムの1つまたは複数のリモートサーバまたは中央サーバ)上に存在する。いくつかの例では、ASRシステム200は、エンドツーエンドASRシステムである。ユーザデバイス10および/またはリモートコンピューティングデバイス60はまた、ユーザ104によって発話され、オーディオキャプチャデバイス16aによってキャプチャされた発話106を受信し、発話106を、ASRシステム200によって処理することができる入力オーディオフレーム110に関連付けられた対応するデジタルフォーマットに変換するように構成されたオーディオサブシステム108を含む。図示の例では、ユーザは、それぞれの発話106を発し、オーディオサブシステム108は、発話106をASRシステム200に入力するために対応する入力オーディオデータ(たとえば、入力音響フレームまたはオーディオフレーム)110に変換する。その後、RNN-Tモデル230は、発話106に対応するオーディオデータ110を入力として受信し、またはそれをバッチ処理し、発話106の対応するトランスクリプション120(たとえば、認識結果/仮説)を出力として生成/予測する。図示の例では、RNN-Tモデル230は、ストリーミング音声認識を実行して初期音声認識結果120、120aを生成してもよく、リスコアラ180は、初期音声認識結果120aを更新(リスコア)して最終音声認識結果120、120bを生成してもよい。サーバ60は、データ処理ハードウェア62と、データ処理ハードウェア62と通信するメモリハードウェア64とを含む。メモリハードウェア64は、データ処理ハードウェア62によって実行されると、データ処理ハードウェア62に、本明細書で開示される動作などの1つまたは複数の動作を実行させる命令を記憶する。
【0025】
ユーザデバイス10および/またはリモートコンピューティングデバイス60はまた、発話106のトランスクリプション120の表現をユーザデバイス10のユーザ104に提示するように構成されたユーザインターフェース生成器107を実行する。以下により詳細に説明するように、ユーザインターフェース生成器107は、時間1の間初期音声認識結果120aをストリーミング式に表示し、その後時間2の間最終音声認識結果120bを表示してもよい。いくつかの構成では、ASRシステム200から出力されたトランスクリプション120は、たとえば、ユーザデバイス10またはリモートコンピューティングデバイス60上で実行される自然言語処理/理解(NLP/NLU)モジュールによって処理され、発話106によって指定されたユーザコマンド/クエリを実行する。追加または代替として、テキスト音声(TSS)システム(図示せず)(たとえば、ユーザデバイス10またはリモートコンピューティングデバイス60の任意の組合せ上で実行される)が、トランスクリプションをユーザデバイス10および/または別のデバイスによる可聴出力のために合成音声に変換してもよい。
【0026】
図示の例では、ユーザ104は、ASRシステム200を使用するユーザデバイス10で実行するプログラムまたはアプリケーション50(たとえば、デジタルアシスタントアプリケーション50)と対話する。たとえば、図1は、ユーザ104がデジタルアシスタントアプリケーション50と通信しており、ユーザデバイス10が、グラフィカルユーザインターフェース18をユーザデバイス10の画面上に表示されるように実行していることを示し、ユーザ104とデジタルアシスタントアプリケーション50との間の会話を示している。たとえば、図1は、デジタルアシスタントアプリケーション50と通信するユーザ104およびユーザデバイス10の画面上にデジタルアシスタントインターフェース18を表示するデジタルアシスタントアプリケーション50を示し、ユーザ104とデジタルアシスタントアプリケーション50との間の会話を示している。この例では、ユーザ104は、デジタルアシスタントアプリケーション50に「今夜のコンサートは何時からですか」と尋ねる。ユーザ104からのこの質問は、オーディオキャプチャデバイス16aによってキャプチャされユーザデバイス10のオーディオシステム16によって処理される発話106である。この例では、オーディオシステム16は、発話106を受信して、ASRシステム200に入力するために入力オーディオフレーム110に変換する。
【0027】
引き続きこの例を説明すると、RNN-Tモデル230は、ユーザ104が発した発話106に対応するオーディオフレーム110またはそのバッチを受信しつつ、オーディオフレーム110を符号化し、次いで符号化されたオーディオフレーム110を初期音声認識結果120aに復号する。時間1の間、ユーザインターフェース生成器107は、単語、ワードピース、および/または個々の文字が発話された直後に画面上に現れるように、発話106の初期音声認識結果120aの表現をデジタルアシスタントインターフェース18を介してストリーミング式にユーザデバイス10のユーザ104に提示する。いくつかの例では、第1のルックアヘッドオーディオコンテキストはゼロに等しい。
【0028】
時間2の間、ユーザインターフェース生成器107は、発話106の最終音声認識結果120bの表現をデジタルアシスタントインターフェース18を介して、リスコアラ180によってリスコアされるユーザデバイス10のユーザ104に提示する。いくつかの実装形態では、ユーザインターフェース生成器107は、時間1に提示された初期音声認識結果120aの表現を、時間2に提示された最終音声認識結果120bの表現で置き換える。ここで、時間1および時間2は、ユーザインターフェース生成器107がそれぞれの音声認識結果を提示するときに対応するタイムスタンプを含んでもよい。この例では、時間1のタイムスタンプは、ユーザインターフェース生成器107が最終音声認識結果120bよりも早い時間に初期音声認識結果120aを提示することを示す。たとえば、最終音声認識結果120bは、初期音声認識結果120aよりも正確であると推定されるので、最終的にトランスクリプション120として表示される最終音声認識結果120bは、初期音声認識結果120aにおいて誤認識された可能性のある任意の単語を修正することができる。この例では、RNN-Tモデル230によって出力され、時間1にユーザデバイス10の画面上に表示されるストリーミング初期音声認識結果120aは、低レイテンシが伴い、ユーザのクエリが処理されている旨の応答をユーザ104に提供し、一方、リスコアラ180によって出力され、時間2に画面上に表示される最終音声認識結果120bは、追加の音声認識モデルおよび/または言語モデルを活用して精度の点で音声認識品質を向上させるが、レイテンシを増加させる。しかし、ユーザが発話106を発したときに初期音声認識結果120aが表示されるので、最終認識結果の生成および最終的な表示に伴うより高いレイテンシは、ユーザ104に気づかれない。
【0029】
図1に示す例では、デジタルアシスタントアプリケーション50は、ユーザ104によってNLP/NLU処理を使用することによってポスティングされた質問に応答してもよい。NLP/NLCは一般に、書かれた言語(たとえば、初期音声認識結果120aおよび/または最終音声認識結果120b)を解釈し、書かれた言語が何らかのアクションを促しているかどうかを判定するプロセスを指す。この例では、デジタルアシスタントアプリケーション50は、NLP/NLUを使用して、ユーザ104からの質問がユーザのスケジュール、より詳細にはユーザのスケジュールにおけるコンサートに関することを認識する。NLP/NLUによってこれらの詳細を認識することによって、自動化されたアシスタントがユーザのクエリに対する応答19を返し、この場合、応答19には、「開場は午後6時半で、コンサートは午後8時から始まります。」と記載される。いくつかの構成では、NLP/NLUは、ユーザデバイス10のデータ処理ハードウェア12と通信しながらリモートサーバ60上で行われる。
【0030】
図2は、単語境界検出モデル210と、バッチモジュール220と、RNN-Tモデル230とを含む図1のASRシステム200の一例の概略図である。単語境界検出モデル210は、入力オーディオフレーム110を処理して単語境界を判定する。詳細には、単語境界検出モデル210は、各特定の入力オーディオフレーム110について、特定の入力オーディオフレーム110が単語境界に対応するか否かを表す出力212を判定するように構成され訓練される。すなわち、単語境界検出モデル210は、入力オーディオフレーム110における発語の隣接するペア間の境界を表す入力オーディオフレーム110を単語境界として特定する。いくつかの例では、単語境界検出モデル210は、特定の入力オーディオフレーム110を単語境界として特定すると、第1の値(たとえば、論理「真」を表す)を有する対応する出力212を出力する。単語境界検出モデル210は、特定の入力オーディオフレーム110を単語境界として特定しない場合、異なる第2の値(たとえば、論理「偽」を表す)を有する対応する出力212を出力する。
【0031】
いくつかの例では、単語境界検出モデル210は、対応する入力オーディオフレーム110が発話を表すデータを含むかどうかを表す各入力オーディオフレーム110についての出力212を判定するように構成され訓練された音声区間検出(VAD)モデルを含む。
【0032】
追加的または代替的な実装形態では、単語境界検出モデル210は、たとえば、音響およびテキスト情報を使用して単語境界を検出するように構成され訓練された音声認識モデルを含む。いくつかの例では、音声認識モデルは、RNN-Tモデル230などのRNN-Tモデルを含む。ここで、音声認識モデルは、RNN-Tモデル230のより小さいバージョン、より単純なバージョン、または小型のバージョンであってもよい。音声認識モデルは、セル幅が512である(たとえば、3200万個のパラメータを含む)かまたはセル幅が144である(たとえば、400万個のパラメータを含む)コンフォーマとして構成され得るエンコーダと、埋め込みデコーダとして構成されたデコーダとを含む。いくつかの例では、単語境界検出モデル210は、シーケンスレベル放出正則化を使用して音声認識モデルに単語境界をより迅速に特定するように促すように訓練される。いくつかの追加の例では、単語境界検出モデル210は、ペアになった訓練データに基づく教師あり学習を使用して訓練される。ここで、ペアになった訓練データは、オーディオ-トランスクリプトペア、すなわち、入力オーディオフレーム110と、隣接する単語のペア間に挿入された特殊な境界トークン(たとえば、"<wb>")を用いて拡張された対応するグラウンドトゥルーストランスクリプトラベルとのペアを含む。ここで、トランスクリプトラベルには、手動によるアノテーションが行われてもよい。しかしながら、トランスクリプトラベルは、任意の他の方法で生成または決定されてもよい。いくつかの例では、RNN-Tモデル230は、音声認識を実行しつつワードピース単位を予測し、トランスクリプトラベルはワードピース単位にトークン化される。
【0033】
追加的または代替的実装形態では、単語境界検出モデル210は、RNN-Tモデル230によって予測される単語境界を予測するように構成され訓練された音声認識モデルを含む。いくつかの例では、音声認識モデルは、RNN-Tモデル230などのRNN-Tモデルを含む。ここで、音声認識モデルは、RNN-Tモデル230のより小さいバージョン、より単純なバージョン、または小型のバージョンであってもよい。音声認識モデルは、セル幅が512である(たとえば、3200万個のパラメータを含む)かまたはセル幅が144である(たとえば、400万個のパラメータを含む)コンフォーマとして構成され得るエンコーダと、埋め込みデコーダとして構成されたデコーダとを含む。いくつかの例では、単語境界検出モデル210は、知識蒸留および勾配グラフティングを使用して、RNN-Tモデル230によって予想される単語境界を予測することを学習するように訓練される。ここで、ASRモデル200の訓練では、単語境界検出モデル210を生徒モデルとして訓練する際に使用される教師モデルとしてRNN-Tモデル230を使用する。訓練の間、教師予測と生徒予測との間のフルKLダイバージェンスまたは近似KLダイバージェンス、すなわち、単語境界検出にわたる条件付き確率の格子分布を計算することによって、単語境界検出モデル210に追加の損失が適用される。ここで、RNN-Tモデル230は、上記で説明したオーディオ-トランスクリプトペアにおける同じタイプのペアになった訓練データを使用して訓練される。一例では、RNN-T損失は、ペアになった訓練データを用いた教師モデル(すなわち、RNN-Tモデル230)の訓練の間教師モデルのロジットに基づいて判定され、教師モデルのロジットに基づいて勾配が判定され、勾配は、生徒モデル(すなわち、単語境界検出モデル210)を訓練するために生徒モデルに適用される。たとえば、教師モデル(すなわち、RNN-Tモデル230)のロジットlogitsteacherおよび生徒モデル(すなわち、単語境界検出モデル210)のロジットlogitsstudentを考えると、生徒モデルを訓練するためのlogitsは次のように算出される。
logits = stop_gradient(logitsteacher - logitsstudent) + logitsstudent ... (1)
数式(1)のlogitsは、生徒モデル(すなわち、単語境界検出モデル210)について算出され生徒モデルを更新するために使用される標準損失に適用される加重和を判定するために使用され得る。代替的に、数式(1)のlogitsは、生徒モデル(すなわち、単語境界検出モデル210)を更新するために使用される単独の損失関数として適用され得る。
【0034】
バッチモジュール220は、入力オーディオフレーム110を、各々が、入力オーディオフレーム110全体におけるそれぞれの発語を表す1つまたは複数のバッチ222としてバッチ処理する。各バッチ222は、対応する発語を共に表す連続的な複数の入力オーディオフレーム110を含む。バッチモジュール220は、どのオーディオ入力フレーム110が単語境界に対応するかを特定する単語境界検出モデル210の出力212に基づいて入力オーディオフレーム110をバッチ222に分割する。バッチモジュール220は、これらの特定された単語境界を使用して、連続的な複数の入力オーディオフレーム110をバッチ222として明示する。バッチモジュール220は、単語境界検出モデル210によって特定された単語境界に基づいて入力オーディオフレーム110をバッチ処理し、発語はそれぞれに異なる長さを有するので、バッチ222は、それぞれに異なる数の入力オーディオフレーム110を含んでもよい。
【0035】
RNN-Tモデル230は、提供する計算フットプリントが小さく、従来のASRアーキテクチャよりも利用するメモリ要件が低く、RNN-Tモデル230が音声認識全体をユーザデバイス102上で実行するのに適したものになる(たとえば、リモートサーバとの通信は必要とされない)。
【0036】
図示のように、RNN-Tモデル230は、エンコーダネットワーク240と、予測ネットワーク300と、ジョイントネットワーク250と、最終ソフトマックス層260とを含む。予測ネットワーク300およびジョイントネットワーク250は集合的にRNN-Tデコーダを構成する。エンコーダネットワーク240は、従来のASRシステムにおける音響モデル(AM)とほぼ同様であり、限定はしないが、コンフォーマ層またはトランスフォーマ層などのマルチヘッドアテンション層のネットワークを含んでもよい。たとえば、エンコーダは、d次元特徴ベクトルのバッチ222(たとえば、入力オーディオフレーム110のバッチ222(図1))x = (x1, x2, ..., xT)を読み取る。ここで、
【数1】
である。エンコーダは、各時間ステップにおいて、高次特徴表現242を生成する。この高次特徴表現242は、
【数2】
として示される。他の例では、エンコーダネットワーク240は、積層長短期記憶(LSTM)層の回帰型ネットワークを含む。
【0037】
同様に、予測ネットワーク300はまた、LSTMネットワークであり、言語モデル(LM)と同様に、これまでに最終ソフトマックス層260によって出力された非ブランクシンボル232のシーケンス、y0, ..., yui-1を密結合または隠れ表現
【数3】
350として処理する。以下により詳細に説明するように、表現
【数4】
350は、単一の埋め込みベクトルを含む。特に、予測ネットワーク300において受信される非ブランクシンボル232のシーケンスは、それまでの時間ステップの間に予測された非ブランクシンボル232間の言語依存性を取り込んで、ジョイントネットワーク250が現在の時間ステップの間に次の出力シンボルまたはブランクシンボルの確率を予測するのを助ける。以下により詳細に説明するように、RNN-Tモデル230の精度/性能を犠牲にせずに予測ネットワーク300のサイズを縮小するための技法に寄与するために、予測ネットワーク300は、最終ソフトマックス層260によって出力されたN個の以前の非ブランクシンボル232に限定される非ブランクシンボル232yui-n, ..., yui-1の限定された履歴シーケンスを受信してもよい。
【0038】
図3は、最終ソフトマックス層260によって出力されるN個の前の非ブランクシンボル232a~232nに限定される非ブランクシンボル232 yui-n, ..., yui-1のシーケンスを入力として受信するRNN-Tモデル230の予測ネットワーク300を示す。いくつかの例では、Nは2に等しい。他の例では、Nは5に等しいが、本開示は非限定的であり、Nは任意の整数に等しくてよい。非ブランクシンボル232a~232nのシーケンスは、初期音声認識結果120a(図1)を示す。いくつかの実装形態では、予測ネットワーク300は、マルチヘッドアテンション機構302を含み、マルチヘッドアテンション機構は、その各ヘッド302A~302Hにわたって共有埋め込み行列304を共有する。一例では、マルチヘッドアテンション機構302は4つのヘッドを含む。しかし、マルチヘッドアテンション機構302によって任意の数のヘッドが使用されてもよい。特に、マルチヘッドアテンション機構は、モデルサイズを増大を最小限に抑えて性能を著しく向上させる。以下により詳細に説明するように、各ヘッド302A~302Hは、そのヘッド独自の位置ベクトルの行を含み、すべてのヘッドからの出力318A~318Hを連結することによってモデルサイズの増大を招く代わりに、出力318A~318Hはヘッド平均モジュール322によって平均化される。
【0039】
マルチヘッドアテンション機構302の第1のヘッド302Aを参照すると、ヘッド302Aは、共有埋め込み行列304を使用して、複数の時間ステップからの対応する時間ステップにおいて入力として受信される非ブランクシンボル232a~232n yui-n, ..., yui-1のシーケンスのうちの各非ブランクシンボルについて対応する埋め込み表現306、306a~306n(たとえば、
【数5】
)を生成する。特に、共有埋め込み行列304は、マルチヘッドアテンション機構302のすべてのヘッドにわたって共有されるので、他のヘッド302B~302Hはすべて、各非ブランクシンボルについて同じ対応する埋め込み表現306を生成する。ヘッド302Aはまた、非ブランクシンボル232a~232n yui-n, ..., yui-1のシーケンスにおける各対応する非ブランクシンボルにそれぞれの位置ベクトルPVAa~An308、308Aa~308An(たとえば、
【数6】
)を割り当てる。各非ブランクシンボルに割り当てられたそれぞれの位置ベクトルPV308は、非ブランクシンボル(たとえば、最終ソフトマックス層260によって出力されるN個の以前の非ブランクシンボル232a~232n)のシーケンスの履歴における位置を示す。たとえば、第1の位置ベクトルPVAaは履歴における最新位置に割り当てられ、最後の位置ベクトルPVAnは、最終ソフトマックス層260によって出力されるN個の以前の非ブランクシンボルの履歴における最後の位置に割り当てられる。特に、埋め込み表現306の各々は、位置ベクトルPV308の各々と同じ次元(すなわち、次元サイズ)を含んでもよい。
【0040】
非ブランクシンボル232a~232n、yui-n, ..., yui-1のシーケンスのうちの各非ブランクシンボルについて共有埋め込み行列304によって生成される対応する埋め込み表現は、マルチヘッドアテンション機構302のヘッド302A~302Hのすべてにおいて同じであるが、各ヘッド302A~302Hは位置ベクトル308の異なるセット/行を画定する。たとえば、第1のヘッド302Aは位置ベクトルPVAa~An308Aa~308Anの行を画定し、第2のヘッド302Bは位置ベクトルPVBa~Bn308Ba~Bnの異なる行を画定し、第Hのヘッド302Hは位置ベクトルPVHa~Hn308Ha~Hnの別の異なる行を画定する。
【0041】
受信された非ブランクシンボル232a~232nのシーケンスにおける各非ブランクシンボルについて、第1のヘッド302Aはまた、対応する埋め込み表現306を、重み層310を介して、対応する埋め込み表現とそれに割り当てられたそれぞれの位置ベクトルPV308との間の類似度に比例して重み付けする。いくつかの例では、類似度は、コサイン類似度(たとえば、コサイン距離)を含んでもよい。図示の例では、重み層310は、各々が、割り当てられたそれぞれの位置ベクトルPV308に比例して重み付けされた対応する埋め込み表現306に関連付けられた、重み付けされた埋め込み表現312、312Aa~312Anのシーケンスを出力する。言い換えれば、各埋め込み表現306について重み層310によって出力される重み付けされた埋め込み表現312は、埋め込み表現306とそれぞれの位置ベクトルPV308との間のドット積に対応してもよい。重み付けされた埋め込み表現312は、それぞれの位置ベクトルPV308に関連付けられた位置にどれだけ類似しているかに比例した埋め込み表現に対するアテンドと解釈されてもよい。計算速度を増大させるために、予測ネットワーク300は、非反復層を含み、したがって、重み付けされた埋め込み表現312Aa~312Anのシーケンスは連結されず、その代わり加重平均モジュール316によって平均化され、次式によって表される重み付けされた埋め込み表現312Aa~312Anの加重平均318Aを第1のヘッド302Aからの出力として生成する。
【数7】
式(2)において、hはヘッド302のインデックスを表し、nは文脈における位置を表し、eは、埋め込み次元を表す。加えて、式(2)では、H、N、およびdeは、対応する次元のサイズを含む。位置ベクトルPV308は、訓練可能である必要はなく、ランダム値を含んでもよい。特に、重み付けされた埋め込み表現312が平均化されるにもかかわらず、位置ベクトルPV308は場合によっては、位置履歴状態を保存することができ、予測ネットワーク300の各層において回帰結合を設ける必要性を軽減させることができる。
【0042】
第1のヘッド302Aに関して上記で説明した演算は、マルチヘッドアテンション機構302の各他のヘッド302B~302Hによって同様に実行される。各ヘッド302によって位置ベクトルPV308の異なるセットが定義されることに起因して、重み層310は、第1のヘッド302Aにおける重み付けされた埋め込み表現312Aa~312Anのシーケンスとは異なる各他のヘッド302B~302Hにおける重み付けされた埋め込み表現312Ba~312Bn、312Ha~312Hnのシーケンスを出力する。その後、加重平均モジュール316は、非ブランクシンボルのシーケンスの対応する重み付けされた埋め込み表現312のそれぞれの加重平均318A~318Hを、各他の対応するヘッド302B~302Hからの出力として生成する。
【0043】
図示の例では、予測ネットワーク300は、対応するヘッド302A~302Hから出力される加重平均318A~318Hを平均化するヘッド平均モジュール322を含む。SWISHを有する投影層326は、加重平均318A~318Hの平均に対応するヘッド平均モジュール322からの出力324を入力として受信し、投影された出力328を出力として生成してもよい。最終層正規化330は、投影された出力328を正規化して、複数の時間ステップからの対応する時間ステップにおいて単一の埋め込みベクトル
【数8】
350を提供する。予測ネットワーク300は、初期時間ステップに続く複数の時間ステップの各々において単一の埋め込みベクトル
【数9】
350のみを生成する。
【0044】
いくつかの構成では、予測ネットワーク300は、マルチヘッドアテンション機構302を実装せず、第1のヘッド302Aに関して上記で説明した演算のみを実行する。これらの構成では、重み付けされた埋め込み表現312Aa~312Anの加重平均318Aを単に、投影層326および層正規化330を通過させて単一の埋め込みベクトル
【数10】
350を提供する。
【0045】
再び図2を参照すると、エンコーダネットワーク240によって生成された高次特徴表現
【数11】
242と予測ネットワーク300によって生成された表現
【数12】
350(すなわち、単一の埋め込みベクトル350)がジョイントネットワーク250によって組み合わされる。ジョイントネットワーク250は、次の出力シンボルにわたる分布252
【数13】
を予測する。言い換えれば、ジョイントネットワーク250は、各時間ステップにおいて、可能な音声認識仮説にわたる確率分布252を生成する。ここで、「可能な音声認識仮説」は、各々が、指定された自然言語におけるシンボル/文字を表す出力ラベルのセットに対応する。たとえば、自然言語処理が英語であるとき、出力ラベルのセットは、27個のシンボルを含んでもよく、たとえば、1つのラベルが英語のアルファベットにおける26文字の各々に相当し、1つのラベルがスペースを指定する。したがって、ジョイントネットワーク250は、出力ラベルの所定のセットの各出力ラベルが生じる尤度を示す値のセットを出力してもよい。この値のセットは、ベクトルであってもよく、出力ラベルのセットにわたる確率分布を示すことができる。場合によっては、出力ラベルは、書記素(たとえば、個々の文字、および場合によっては句読点および他のシンボル)であるが、出力ラベルのセットはそのように限定されない。たとえば、出力ラベルのセットは、書記素に加えてまたは書記素の代わりに、ワードピースおよび/または単語全体を含むことができる。ジョイントネットワーク250の出力分布は、それぞれに異なる出力ラベルの各々の後方確率値を含むことができる。したがって、それぞれに異なる書記素または他の記号を表す100個の異なる出力ラベルがある場合、ジョイントネットワーク250の出力Zi 252は、1つが各出力ラベルに相当する、100個の異なる確率値を含むことができる。その場合、確率分布を使用してスコアを選択して、トランスクリプション120を判定するための(たとえば、ソフトマックス層260による)ビームサーチプロセスにおいて候補表記要素(たとえば、書記素、ワードピース、および/または単語)にスコアを割り当てることができる。
【0046】
最終ソフトマックス層260は、最終音声認識結果120bについての確率分布Zi 252を受信し、最高の確率を有する出力ラベル/記号を選択してトランスクリプションを生成する。最終ソフトマックス層260は、分布Zi 232における最高確率を有する出力ラベル/シンボルを選択するために任意の技法を使用してよい。このようにして、RNN-Tモデル230は、条件付き独立仮定を行わず、むしろ各シンボルyu 232の予測は、音響だけでなくそれまでに出力されたラベル232 yui-n, ..., yui-1のシーケンスを条件とされる。RNN-Tモデル230は、出力シンボル232が将来の音響フレーム110から独立していると仮定し、それによって、RNN-Tモデルをストリーミング式に使用することができる。
【0047】
RNN-Tモデル230は、初期音声認識結果120aをストリーミング式に決定し、初期音声認識結果120aからの前の非ブランクシンボルを使用して最終音声認識結果120bを決定するので、最終音声認識結果120bは初期音声認識結果120aよりも正確であると推定される。すなわち、最終音声認識結果120bは、前の非ブランクシンボルを考慮しており、したがって、初期音声認識結果120aは前の非ブランクシンボルを考慮していないので、最終音声認識結果120bはより正確であると推定される。さらに、リスコアラ180(図1)は、最終音声認識結果120bを用いて初期音声認識結果120aを更新してユーザインターフェース生成器170を介してトランスクリプションをユーザ104に提供してもよい。
【0048】
いくつかの実装形態では、RNN-Tデコーダ(すなわち、予測ネットワーク300およびジョイントネットワーク250)のサイズをさらに縮小するために、予測ネットワーク300とジョイントネットワーク250との間のパラメータタイイングが適用される。具体的には、語彙サイズ|V|および埋め込み次元deについて、予測ネットワークにおける共有埋め込み行列304は
【数14】
である。一方、最後の隠れ層は、ジョイントネットワーク250における次元サイズdhを含み、隠れ層から出力ロジットへのフィードフォワード投影重みは
【数15】
であり、語彙に余分なブランクトークンが含まれる。したがって、ジョイントネットワーク250の最後の層に対応するフィードフォワード層は重み行列[dh, |V]|を含む。予測ネットワーク300に埋め込み次元deのサイズをジョイントネットワーク250の最後の隠れ層の次元dhにタイイングさせることによって、ジョイントネットワーク250のフィードフォワード投影重みおよび予測ネットワーク300の共有埋め込み行列304は、それらの重みを単純なトランスポーズ変換を介してすべての非ブランクシンボルについて共有することができる。2つの行列がすべてのそれらの値を共有するので、RNN-Tデコーダは、2つの個々の行列を記憶する代わりに、値をメモリに一度記憶するだけでよい。埋め込み次元deのサイズを隠れ層次元dhのサイズに等しく設定することによって、RNN-Tデコーダは、パラメータの数を埋め込み次元deと語彙サイズ|V|の積に等しい値に減少させる。この重みタイイングは正則化技法に対応する。
【0049】
いくつかの例では、オーディオサブシステム108によってキャプチャされたオーディオデータが32ミリ秒(ms)のウィンドウおよび10msのシフトを用いて算出された128次元ログメルフィーチャとして処理され、次いで3フレーム左にスタッキングされ、係数3だけダウンサンプリングされ、30msのフレームレートが得られる。
【0050】
ソフトマックス層260は、トレーニングデータにおけるすべての一意のワードピースまたは書記素を使用して生成される統合されたワードピースまたは書記素セットから構成されてもよい。出力シンボル/ラベルがワードピースを含むとき、出力シンボル/ラベルのセットは4096個の異なるワードピースを含んでもよい。出力シンボル/ラベルが書記素を含むとき、出力シンボル/ラベルのセットは100個未満の異なる書記素を含んでもよい。
【0051】
図4Aは、ASRシステム200の単語境界検出モデル210(図2)を訓練するための例示的な訓練プロセス400aの概略図である。ここで、訓練プロセス400aは、オーディオ-トランスクリプトペアを含むペアになった訓練サンプル405を使用して教師あり訓練を実施する。すなわち、訓練サンプル405は、入力オーディオフレーム410と、隣接する単語のペア間に挿入された特殊な境界トークン(たとえば、"<wb>")を用いて拡張された対応するグラウンドトゥルーストランスクリプトラベル415とのペアを含む。ここで、トランスクリプトラベル415には、手動によるアノテーションが行われてもよい。しかしながら、トランスクリプトラベルは、任意の他の方法で取得または生成されてもよい。いくつかの例では、トランスクリプトラベル415はワードピース単位にトークン化される。
【0052】
各特定の訓練サンプル405について、単語境界検出モデル210は、特定の訓練サンプル405の入力訓練オーディオフレーム410を入力として受信する。上記でより詳細に説明したように、単語境界検出モデル210は、各入力オーディオフレーム410を処理して、オーディオフレーム410が単語境界に対応するかどうかを判定する。詳細には、訓練プロセス400aは、対応する訓練入力オーディオフレーム410が単語境界に対応するか否かを表す対応する出力422を判定するように単語境界検出モデル210を訓練する。その後、損失項モジュール430が、各特定の訓練サンプル405について、特定の訓練サンプル405についての対応するグラウンドトゥルーストランスクリプションラベル415に基づいて、特定の訓練サンプル405についての単語境界検出モデル210の出力422に関連付けられた損失項432を判定する。
【0053】
訓練プロセス400aは、損失項432に基づいて単語境界検出モデル210のパラメータを更新または精緻化することによって単語境界検出モデル210を訓練する。たとえば、訓練プロセス400aは、確率的勾配降下法を使用して損失項432に基づいて単語境界検出モデル210のパラメータを更新してもよい。
【0054】
図4Bは、ASRシステム200の単語境界検出モデル210を訓練するための別の例示的な訓練プロセス400bの概略図である。ここで、訓練プロセス400bは、図4Aの訓練プロセス400aに関連して上記で説明したペアになった訓練サンプル405などのペアになった訓練サンプル405を使用して教師あり訓練を実施する。単語境界検出モデル210、出力422、損失項モジュール430、および損失項432については図4aに関連して上記で説明した。
【0055】
各特定の訓練サンプル405について、ASRモデル230は、特定の訓練サンプル405の入力訓練オーディオフレーム410を入力として受信し、入力訓練オーディオフレーム410を処理して特定の訓練サンプル405についてのトランスクリプション442を予測する。その後、損失項モジュール450が、各特定の訓練サンプル405について、特定の訓練サンプル405についての対応するグラウンドトゥルーストランスクリプションラベル415に基づいて、特定の訓練サンプル405についての予測されたトランスクリプション442に関連付けられた損失項452を判定する。いくつかの例では、訓練プロセス400bはまた、損失項452に基づいてASRモデル230のパラメータを更新または精緻化することによってASRモデル230を訓練する。たとえば、訓練プロセス400bは、確率的勾配降下法を使用して損失項452に基づいてASR(たとえば、RNN-T)モデル230のパラメータを更新してもよい。
【0056】
勾配グラフティングモジュール460は、単語境界検出モデル210の損失432およびRNN-Tモデル440の損失452に基づいて、単語境界検出モデル210を更新するために使用することのできる損失462を判定する。一例では、勾配グラフティングモジュール460は、損失452を処理して、単語境界の予測に関係するASRモデル230のロジットlogitsteacherを判定し、損失432を処理して単語境界検出モデル210のロジットlogitsstudentを判定し、たとえば、数式(1)を使用して、単語境界検出モデル210を訓練するためのlogitsを判定する。勾配グラフティングモジュール460は、logitsに基づいて加重和を判定し、加重和を損失432に適用して、単語境界検出モデル210を更新するための損失462を判定する。代替的に、勾配グラフティングモジュール460は、単語境界検出モデル210を更新するための損失462を判定するために使用される単独の損失関数としてlogitsを適用することができる。
【0057】
いくつかの例では、訓練プロセス400bはまた、損失項462に基づいて単語境界検出モデル210のパラメータを更新または精緻化することによって単語境界検出モデル210を訓練する。たとえば、訓練プロセス400bは、確率的勾配降下法を使用して損失項462に基づいて単語境界検出モデル210のパラメータを更新してもよい。
【0058】
図5は、エンドツーエンド音声認識モデルのオンデバイスバッチ処理についての単語境界を予測するコンピュータ実装方法500のための動作を例示的に配列したフローチャートである。動作502において、方法500は、ユーザデバイス10によってキャプチャされた発話106に対応する入力オーディオフレーム110のシーケンスを受信することを含む。発話106は、複数の単語を含む。動作504において、方法500は、各入力オーディオフレーム110について、入力オーディオフレーム110のシーケンスを入力として受信するように構成された単語境界検出モデル(たとえば、単語境界検出モデル210)を使用して、入力オーディオフレーム110が単語境界であるかどうかを予測することを含む。
【0059】
動作506において、方法500は、単語境界として予測された入力オーディオフレーム110に基づいて、入力オーディオフレーム110を複数のバッチ222としてバッチ処理することを含む。各バッチ222は、対応する複数のバッチ処理された入力オーディオフレーム110を含む。動作508において、方法500は、複数のバッチ222の各々について、音声認識モデル(たとえば、RNN-T 230)を使用して、対応する複数のバッチ処理された入力オーディオフレーム110を並行して処理して、音声認識結果232を生成することを含む。
【0060】
図6は、本文書に記載されたシステムおよび方法を実装するために使用され得る例示的なコンピューティングデバイス600の概略図である。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図されている。ここで示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本文献で説明および/または請求される発明の実装形態を限定するものではない。
【0061】
コンピューティングデバイス600は、データ処理ハードウェア12および/または62を実装するために使用され得るプロセッサ610(すなわち、データ処理ハードウェア)と、メモリハードウェア14および/または64を実装するために使用され得るメモリ620(すなわち、メモリハードウェア)と、メモリハードウェア14および/または64を実装するために使用され得る記憶デバイス630(すなわち、メモリハードウェア)と、メモリ620および高速拡張ポート650に接続する高速インターフェース/コントローラ640と、低速バス670および記憶デバイス630に接続する低速インターフェース/コントローラ660とを含む。構成要素610、620、630、640、650、および660の各々は、様々なバスを使用して相互接続され、共通のマザーボード上に搭載されるか、または適宜他の方法で搭載されてもよい。プロセッサ610は、メモリ620内または記憶デバイス630上に記憶された命令を含む、コンピューティングデバイス600内で実行される命令を処理して、高速インターフェース640に結合されたディスプレイ680などの外部入出力デバイス上にグラフィカルユーザインターフェース(GUI)についてのグラフィカル情報を表示する。他の実装形態では、適宜、複数のメモリおよび複数のタイプのメモリとともに、複数のプロセッサおよび/または複数のバスが使用されてもよい。また、複数のコンピューティングデバイス600が、必要な動作の一部を提供する各デバイスに(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)接続されてもよい。
【0062】
メモリ620は、コンピューティングデバイス600内に非一時的に情報を記憶する。メモリ620は、コンピュータ可読媒体、揮発性メモリユニット、または非揮発性メモリユニットであってもよい。非一時的メモリ620は、プログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラム状態情報)をコンピューティングデバイス600によって使用するために一時的または永続的に記憶するために使用される物理デバイスであってもよい。非揮発的メモリの例には、限定はしないが、フラッシュメモリおよび読取り専用メモリ(ROM)/プログラム可能読取り専用メモリ(PROM)/消去プログラム可能型読取り専用メモリ(EPROM)/電子的消去プログラム可能型読取り専用メモリ(EEPROM)(たとえば、一般に、ブートプログラムなどのファームウェアに使用される)が含まれる。揮発性メモリの例には、限定はしないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、ならびにディスクまたはテープが含まれる。
【0063】
記憶デバイス630は、コンピューティングデバイス600用の大容量記憶装置を提供することができる。いくつかの実装形態では、記憶デバイス630は、コンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス630は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリ、もしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成内のデバイスを含むデバイスのアレイであってもよい。追加の実装形態では、コンピュータプログラム製品は、情報担体において実体的に具体化される。コンピュータプログラム製品は、実行されたときに、上述のような1つまたは複数の方法を実行する命令を含む。情報担体は、メモリ620、記憶デバイス630、またはプロセッサ610上のメモリなどのコンピュータまたは機械可読媒体である。
【0064】
高速コントローラ640は、コンピューティングデバイス600用の帯域幅集約的動作を管理し、低速コントローラ660はより低い帯域幅の集約的動作を管理する。そのようなデューティの割振りは例示的なものにすぎない。いくつかの実装形態では、高速コントローラ640は、メモリ620に結合され、(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)ディスプレイ680に結合され、かつ様々な拡張カード(図示せず)を受け入れ得る高速拡張ポート650に結合される。いくつかの実装形態では、低速コントローラ660は、記憶デバイス630および低速拡張ポート690に結合される。低速拡張ポート690は、様々な通信ポート(たとえば、USB、Bluetooth、Ethernet、ワイヤレスEthernet)を含んでもよく、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つまたは複数の入出力デバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【0065】
コンピューティングデバイス600は、図示するように、いくつかの異なる形態で実装されてもよい。たとえば、コンピューティングデバイス600は、標準的なサーバ600aとして実装されても、もしくはそのようなサーバ600aのグループに複数回実装されてもよく、またはラップトップコンピュータ600bとして実装されてもよく、またはラックサーバシステム600cの一部として実装されてもよい。
【0066】
本明細書で説明するシステムおよび技法の様々な実装形態は、デジタル電子および/または光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せにおいて実現することができる。これらの様々な実装形態には、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能であり、かつ/または解釈可能である1つまたは複数のコンピュータプログラムにおける実装を含めることができ、このプロセッサは、専用または汎用であってもよく、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間でデータおよび命令の受信および送信を行うように結合されてもよい。
【0067】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを指すことがある。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」または「プログラム」と呼ばれることがある。例示的なアプリケーションには、限定はしないが、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、文書作成アプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションが含まれる。
【0068】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、プログラマブルプロセッサ用の機械命令を含み、高水準手続き型言語および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/機械言語で実装することができる。本明細書では、「機械可読媒体」および「コンピュータ可読媒体」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械命令を機械可読信号として受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令および/またはデータをプログラム可能プロセッサに提供するために使用される任意の信号を指す。
【0069】
本明細書で説明するプロセスおよびロジックフローは、1つまたは複数のプログラマブルプロセッサによって実行することができ、これらのプログラマブルプロセッサは、データ処理ハードウェアとも呼ばれ、1つまたは複数のコンピュータプログラムを実行して、入力データを処理して出力を生成することによって機能を実行する。プロセスおよびロジックフローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもできる。コンピュータプログラムを実行するのに適したプロセッサには、一例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの基本的な要素は、命令を実行するためのプロセッサならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含み、それらのデバイスからデータを受信し、それらのデバイスにデータを転送し、またはその両方を行うように動作可能に結合される。しかし、コンピュータはそのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体には、一例として半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形態の非揮発メモリ、媒体、およびメモリデバイスが含まれる。プロセッサおよびメモリは、専用論理回路によって補助するか、または専用論理回路に組み込むことができる。
【0070】
ユーザとの対話を可能にするには、本開示の1つまたは複数の態様を、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)、モニタ、またはタッチスクリーン、および場合によっては、キーボードおよびユーザがコンピュータに入力を提供することができるポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装することができる。他の種類のデバイスを使用してユーザとの対話を可能にすることもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力を音響、発話、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスとの間で文書を送受信し、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザと対話することができる。
【0071】
逆のことが明示されない限り、「または」は、包含的なまたはを指し、排他的なまたはを指すものではない。たとえば、「A、B、またはC」は、(1)Aのみ、(2)Bのみ、(3)Cのみ、(4)AとB、(5)AとC、(6)BとC、(7)AとBとCなどのA、B、Cの任意の組合せまたはサブセットを指す。同様に、「AまたはBのうちの少なくとも1つ」という語句は、(1)少なくとも1つのA、(2)少なくとも1つのB、(3)少なくとも1つのAおよび少なくとも1つのBなどのAおよびBの任意の組合せまたはサブセットを指すことが意図される。さらに、「AおよびBのうちの少なくとも1つ」という語句は、(1)少なくとも1つのA、(2)少なくとも1つのB、(3)少なくとも1つのAおよび少なくとも1つのBなどのAおよびBの任意の組合せまたはサブセットを指すことが意図される。
【0072】
いくつかの実装形態について説明した。それにもかかわらず、本開示の趣旨および範囲から逸脱せずに様々な修正を施してもよいことが理解されよう。したがって、他の実装形態は以下の特許請求の範囲の範囲内である。
【符号の説明】
【0073】
10 ユーザデバイス
12 データ処理ハードウェア
14 メモリハードウェア
16、16a オーディオキャプチャデバイス
18 インターフェース
19 応答
40 ネットワーク
50 デジタルアシスタントアプリケーション
60 リモートコンピューティングデバイス
62 データ処理ハードウェア
64 メモリハードウェア
100 システム
101 発話環境
102 ユーザデバイス
104 ユーザ
106 発話
107 ユーザインターフェース生成器
108 オーディオサブシステム
110 入力オーディオフレーム
120 トランスクリプション
120a 初期音声認識結果
120b 最終音声認識結果
170 ユーザインターフェース生成器
180 リスコアラ
200 ASRシステム
210 単語境界検出モデル
212 出力
220 バッチモジュール
222 バッチ
230 RNN-Tモデル、音声認識モデル
232、232a~232n 非ブランクシンボル
240 エンコーダネットワーク
242 高次特徴表現
250 ジョイントネットワーク
252 確率分布
260 最終ソフトマックス層
300 予測ネットワーク
302 マルチヘッドアテンション機構
302A~302H ヘッド
302B~302H 他のヘッド
304 共有埋め込み行列
306、306a~306n 埋め込み表現
308、308Aa~308An 位置ベクトル
310 重み層
312、312Aa~312An 重み付けされた埋め込み表現
316 加重平均モジュール
318A~318H 出力
322 ヘッド平均モジュール
324 出力
326 投影層
328 投影された出力
350 埋め込みベクトル
400a、400b 訓練プロセス
405 訓練サンプル
410 入力訓練オーディオフレーム
415 トランスクリプトラベル
422 出力
430 損失項モジュール
432 損失項
440 RNN-Tモデル
442 トランスクリプション
450 損失項モジュール
452 損失項
460 勾配グラフティングモジュール
462 損失
500 コンピュータ実装方法
600 コンピューティングデバイス
600a サーバ
600b ラップトップコンピュータ
600c ラックサーバシステム
610 プロセッサ
620 メモリ
630 記憶デバイス
640 高速インターフェース/コントローラ
650 高速拡張ポート
660 低速インターフェース/コントローラ
670 低速バス
680 ディスプレイ
690 低速拡張ポート
図1
図2
図3
図4A
図4B
図5
図6
【手続補正書】
【提出日】2024-05-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ータ処理ハードウェア(610)に実施される方法(500)であって
ユーザデバイス(10)によってキャプチャされた発話(106)に対応する入力オーディオフレーム(110)のシーケンスを受信することであって、前記発話(106)は、複数の単語を含む、受信することと、
各入力オーディオフレーム(110)について、前記入力オーディオフレーム(110)のシーケンスを入力として受信するように構成された単語境界検出モデル(210)を使用して、前記入力オーディオフレーム(110)が単語境界であるかどうかを予測することと、
単語境界として予測された前記入力オーディオフレーム(110)に基づいて、前記入力オーディオフレーム(110)を複数のバッチ(222)としてバッチ処理し、各バッチ(222)は、対応する複数のバッチ処理された入力オーディオフレーム(110)を備える、バッチ処理することと、
前記複数のバッチ(222)の各々について、音声認識モデル(230)を使用して、前記対応する複数のバッチ処理された入力オーディオフレーム(110)を並行して処理して、音声認識結果(120)を生成することと、
を含む、方法(500)。
【請求項2】
前記単語境界検出モデル(210)は、音声区間検出(VAD)モデルを備える、請求項1に記載の方法(500)。
【請求項3】
前記音声認識モデル(230)は、第1の音声認識モデルを備え、前記単語境界検出モデル(210)は、隣接する単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベル(415)を使用して訓練される第2の音声認識モデルを備える、請求項1に記載の方法(500)。
【請求項4】
前記トランスクリプトラベル(415)は、ワードピース単位にトークン化され、前記第1の音声認識モデルは、ワードピース単位を予測して音声認識結果(120)を生成する、請求項3に記載の方法(500)。
【請求項5】
前記第1の音声認識モデルは、隣接する単語の各ペア間の前記特殊な境界トークンを用いて拡張された前記トランスクリプトラベル(415)を使用して教師モデルとして訓練され、
前記第2の音声認識モデルは、前記教師モデルのロジット損失を判定し、前記教師モデルの前記ロジット損失の勾配を生徒モデルの重みに適用する勾配グラフティングを実施することによって前記生徒モデルとして訓練される、請求項3に記載の方法(500)。
【請求項6】
前記第2の音声認識モデルは、小型音声認識モデルを備える、請求項3に記載の方法(500)。
【請求項7】
前記複数のバッチ(222)のうちの第1のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの第1の数の入力オーディオフレーム(110)を含み、
前記複数のバッチ(222)のうちの第2のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの異なる第2の数の入力オーディオフレーム(110)を含む、請求項1に記載の方法(500)。
【請求項8】
前記第1のバッチ(222)の前記入力オーディオフレーム(110)は、第1の発語を表し、
前記第2のバッチ(222)の前記入力オーディオフレーム(110)は、異なる第2の発語を表す、請求項7に記載の方法(500)。
【請求項9】
前記複数のバッチ(222)の各バッチ(222)は、前記入力オーディオフレーム(110)全体における特定の発語を表す前記入力オーディオフレーム(110)のシーケンスのうちの前記入力オーディオフレーム(110)のすべてを含む、請求項1に記載の方法(500)。
【請求項10】
前記音声認識モデルは、エンコーダネットワーク(240)と、予測ネットワーク(300)と、ジョイントネットワーク(250)とを備えるトランスデューサベースの音声認識モデル(230)を備える、請求項1に記載の方法(500)。
【請求項11】
前記エンコーダネットワーク(240)は、複数のマルチヘッドアテンション層を備える、請求項10に記載の方法(500)。
【請求項12】
前記予測ネットワーク(300)は、初期時間ステップに続く複数の時間ステップの各々において、
最終ソフトマックス層(260)によって出力された非ブランクシンボル(232)のシーケンスを入力として受信することと、
対応する時間ステップにおいて入力として受信される前記非ブランクシンボル(232)のシーケンスにおける各非ブランクシンボル(232)について、
共有埋め込み行列(304)を使用して前記対応する非ブランクシンボル(232)の埋め込み表現(306)を生成することと、
前記対応する非ブランクシンボル(232)にそれぞれの位置ベクトル(308)を割り当てることと、
前記埋め込み表現(306)を前記埋め込み表現(306)と前記それぞれの位置ベクトル(308)との間の類似度に比例して重み付けすることと、
前記対応する時間ステップにおける単一の埋め込みベクトル(350)を出力として生成することであって、前記単一の埋め込みベクトル(350)が、前記重み付けされた埋め込み表現(312)の加重平均(316)に基づく、生成することと、
を行うように構成され、
前記ジョイントネットワーク(250)は、前記初期時間ステップに続く前記複数の時間ステップの各々において、
前記対応する時間ステップにおける前記予測ネットワーク(300)からの出力として生成された前記単一の埋め込みベクトル(350)を入力として受信することと、
前記対応する時間ステップにおける可能な音声認識仮説にわたる確率分布(252)を生成することと、
を行うように構成される、請求項10または11に記載の方法(500)。
【請求項13】
前記予測ネットワーク(300)は、前記共有埋め込み行列(304)の次元を前記ジョイントネットワーク(250)の出力層の次元にタイイングさせる、請求項12に記載の方法(500)。
【請求項14】
データ処理ハードウェア(610)と、
前記データ処理ハードウェア(610)と通信するメモリハードウェア(620)とを備え、前記メモリハードウェア(620)は、前記データ処理ハードウェア(610)上で実行されると、前記データ処理ハードウェア(610)に動作を実行させる命令を記憶し、前記動作は、
ユーザデバイス(10)によってキャプチャされた発話(106)に対応する入力オーディオフレーム(110)のシーケンスを受信することであって、前記発話(106)は、複数の単語を含む、受信することと、
各入力オーディオフレーム(110)について、前記入力オーディオフレーム(110)のシーケンスを入力として受信するように構成された単語境界検出モデルを(210)使用して、前記入力オーディオフレーム(110)が単語境界であるかどうかを予測することと、
単語境界として予測された前記入力オーディオフレーム(110)に基づいて、前記入力オーディオフレーム(110)を複数のバッチ(222)としてバッチ処理することであって、各バッチ(222)は、対応する複数のバッチ処理された入力オーディオフレーム(110)を備える、バッチ処理することと、
前記複数のバッチ(222)の各々について、音声認識モデル(230)を使用して、前記対応する複数のバッチ処理された入力オーディオフレーム(110)を並行して処理して音声認識結果を生成することと、
を含む、システム(100)。
【請求項15】
前記単語境界検出モデル(210)は、音声区間検出(VAD)モデルを備える、請求項14に記載のシステム(100)。
【請求項16】
前記音声認識モデル(230)は、第1の音声認識モデルを備え、前記単語境界検出モデル(210)は、隣接する単語の各ペア間の特殊な境界トークンを用いて拡張されたトランスクリプトラベル(415)を使用して訓練される第2の音声認識モデルを備える、請求項14に記載のシステム(100)。
【請求項17】
前記トランスクリプトラベル(415)は、ワードピース単位にトークン化され、前記第1の音声認識モデルは、ワードピース単位を予測して前記音声認識結果を生成する、請求項16に記載のシステム(100)。
【請求項18】
前記第1の音声認識モデルは、隣接する単語の各ペア間の前記特殊な境界トークンを用いて拡張された前記トランスクリプトラベル(415)を使用して教師モデルとして訓練され、
前記第2の音声認識モデルは、前記教師モデルのロジット損失を判定し、前記教師モデルの前記ロジット損失の勾配を生徒モデルの重みに適用する勾配グラフティングを実施することによって前記生徒モデルとして訓練される、請求項16に記載のシステム(100)。
【請求項19】
前記第2の音声認識モデルは、小型音声認識モデルを備える、請求項16から18のいずれか一項に記載のシステム(100)。
【請求項20】
前記複数のバッチ(222)のうちの第1のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの第1の数の入力オーディオフレーム(110)を含み、
前記複数のバッチ(222)のうちの第2のバッチ(222)は、前記入力オーディオフレーム(110)のシーケンスのうちの異なる第2の数の入力オーディオフレーム(110)を含む、請求項14に記載のシステム(100)。
【請求項21】
前記第1のバッチ(222)の前記入力オーディオフレーム(110)は、第1の発語を表し、
前記第2のバッチ(222)の前記入力オーディオフレーム(110)は、異なる第2の発語を表す、請求項20に記載のシステム(100)。
【請求項22】
前記複数のバッチ(222)の各バッチは、前記入力オーディオフレーム(110)全体における特定の発語を表す前記入力オーディオフレーム(110)のシーケンスのうちの前記入力オーディオフレーム(110)のすべてを含む、請求項14に記載のシステム(100)。
【請求項23】
前記音声認識モデル(230)は、エンコーダネットワーク(240)と、予測ネットワーク(300)と、ジョイントネットワーク(250)とを備えるトランスデューサベースの音声認識モデル(230)を備える、請求項14に記載のシステム(100)。
【請求項24】
前記エンコーダネットワーク(240)は、複数のマルチヘッドアテンション層を備える、請求項23に記載のシステム(100)。
【請求項25】
前記予測ネットワーク(300)は、初期時間ステップに続く複数の時間ステップの各々において、
最終ソフトマックス層(260)によって出力された非ブランクシンボル(232)のシーケンスを入力として受信することと、
対応する時間ステップにおいて入力として受信される前記非ブランクシンボル(232)のシーケンスにおける各非ブランクシンボル(232)について、
共有埋め込み行列(304)を使用して前記対応する非ブランクシンボル(232)の埋め込み表現(306)を生成することと、
前記対応する非ブランクシンボル(232)にそれぞれの位置ベクトル(308)を割り当てることと、
前記埋め込み表現(306)を前記埋め込み表現(306)と前記それぞれの位置ベクトル(308)との間の類似度に比例して重み付けすることと、
前記対応する時間ステップにおける単一の埋め込みベクトル(350)を出力として生成することであって、前記単一の埋め込みベクトル(350)が、前記重み付けされた埋め込み表現(312)の加重平均(316)に基づく、生成することと、
を行うように構成され、
前記ジョイントネットワーク(250)は、前記初期時間ステップに続く前記複数の時間ステップの各々において、
前記対応する時間ステップにおける前記予測ネットワーク(300)からの出力として生成された前記単一の埋め込みベクトル(350)を入力として受信することと、
前記対応する時間ステップにおける可能な音声認識仮説にわたる確率分布(252)を生成することと、
を行うように構成される、請求項23または24に記載のシステム(100)。
【請求項26】
前記予測ネットワーク(300)は、前記共有埋め込み行列(304)の次元を前記ジョイントネットワーク(250)の出力層の次元にタイイングさせる、請求項25に記載のシステム(100)。
【国際調査報告】