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

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

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

特許7400112自動音声認識のための英数字列のバイアス付加
<>
  • 特許-自動音声認識のための英数字列のバイアス付加 図1A
  • 特許-自動音声認識のための英数字列のバイアス付加 図1B
  • 特許-自動音声認識のための英数字列のバイアス付加 図2
  • 特許-自動音声認識のための英数字列のバイアス付加 図3
  • 特許-自動音声認識のための英数字列のバイアス付加 図4
  • 特許-自動音声認識のための英数字列のバイアス付加 図5
  • 特許-自動音声認識のための英数字列のバイアス付加 図6
  • 特許-自動音声認識のための英数字列のバイアス付加 図7
  • 特許-自動音声認識のための英数字列のバイアス付加 図8
  • 特許-自動音声認識のための英数字列のバイアス付加 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】自動音声認識のための英数字列のバイアス付加
(51)【国際特許分類】
   G10L 15/193 20130101AFI20231211BHJP
   G10L 15/16 20060101ALI20231211BHJP
   G10L 15/08 20060101ALI20231211BHJP
【FI】
G10L15/193 100
G10L15/16
G10L15/08 200J
【請求項の数】 18
(21)【出願番号】P 2022543558
(86)(22)【出願日】2020-01-17
(65)【公表番号】
(43)【公表日】2023-03-16
(86)【国際出願番号】 US2020014141
(87)【国際公開番号】W WO2021145893
(87)【国際公開日】2021-07-22
【審査請求日】2022-09-01
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ベンジャミン・ハイナー
(72)【発明者】
【氏名】ペタル・アレクシッチ
【審査官】山下 剛史
(56)【参考文献】
【文献】特開2000-267691(JP,A)
【文献】特開2010-66493(JP,A)
【文献】特開2017-219769(JP,A)
【文献】特開2019-20597(JP,A)
【文献】米国特許第8972243(US,B1)
【文献】米国特許第10176802(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34,25/30
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実施される方法であって、
自動音声認識(「ASR」)エンジンを使用して、英数字列を含む口で言われた発話をキャプチャするオーディオデータのテキスト表現を生成するステップを含み、前記ASRエンジンを使用して、前記英数字列を含む前記口で言われた発話をキャプチャする前記オーディオデータの前記テキスト表現を生成するステップが、
前記英数字列に関する文脈情報を決定すること、
前記文脈情報に基づいて、前記英数字列のための1つまたは複数の文脈的有限状態トランスデューサを選択すること、
前記ASRエンジンのASRモデル部を使用して前記オーディオデータを処理することに基づいて、前記口で言われた発話の1組の認識候補を生成すること、ならびに
前記口で言われた発話の前記テキスト表現を生成することであって、前記テキスト表現が、前記英数字列を含み、前記テキスト表現を生成することが、前記生成された1組の認識候補および前記1つまたは複数の選択された文脈的有限状態トランスデューサに基づく、生成することを含む、方法。
【請求項2】
前記ASRモデルが、再帰型ニューラルネットワークトランスデューサ(RNN-T)モデルであり、前記ASRエンジンが、ビームサーチ部をさらに含む請求項1に記載の方法。
【請求項3】
前記生成された1組の認識候補および前記1つまたは複数の選択された文脈的有限状態トランスデューサに基づいて前記口で言われた発話の前記テキスト表現を生成することが、
前記1つまたは複数の文脈的有限状態トランスデューサを使用して前記ASRエンジンの前記ビームサーチ部を修正することを含む請求項2に記載の方法。
【請求項4】
前記1つまたは複数の文脈的有限状態トランスデューサを使用して前記ASRエンジンの前記ビームサーチ部を修正することが、
前記1つまたは複数の文脈的有限状態トランスデューサを使用して前記ASRエンジンの前記ビームサーチ部をシャロウフュージョンによって修正することを含む請求項3に記載の方法。
【請求項5】
前記生成された1組の認識候補および前記1つまたは複数の選択された文脈的有限状態トランスデューサに基づいて前記口で言われた発話の前記テキスト表現を生成することが、
前記1組の認識候補中の各認識候補に関する対応する確率測度を決定することと、
前記1つまたは複数の文脈的有限状態トランスデューサを使用して修正された前記ASRエンジンの前記ビームサーチ部を使用して前記対応する確率測度を修正することと、
認識候補に関する前記対応する確率測度が1つまたは複数の条件を満たすと判定することに基づいて、前記1組の認識候補から前記認識候補を選択することと、
前記選択された認識候補に基づいて、前記口で言われた発話の前記テキスト表現を生成することとをさらに含む請求項4に記載の方法。
【請求項6】
前記オーディオデータが、クライアントデバイスの1つまたは複数のマイクロフォンによってキャプチャされる請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記英数字列に関する前記文脈情報を決定することが、前記口で言われた発話をキャプチャする前記オーディオデータに基づいており、前記オーディオデータに基づいて前記英数字列に関する前記文脈情報を決定することが、
前記オーディオデータの1つまたは複数の認識された語に基づいて前記英数字列に関する前記文脈情報を生成することであって、前記1つまたは複数の認識された語が、前記英数字列以外である、生成することを含む請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記英数字列に関する前記文脈情報を決定することが、前記口で言われた発話の直前にあったレンダリングされたシステムプロンプトに基づき、前記レンダリングされたシステムプロンプトに基づいて前記文脈情報を決定することが、
前記レンダリングされたシステムプロンプトに対する少なくとも1つの予測された応答に基づいて前記文脈情報を決定することを含む請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記1つまたは複数の文脈的有限状態トランスデューサのうちの少なくとも所与の文脈的有限状態トランスデューサを生成するステップをさらに含み、前記所与の文脈的有限状態トランスデューサを生成するステップが、
英数字列に対応する英数字文法有限状態トランスデューサを選択することと、
ワードピースを構成書記素にマッピングするスペラ有限状態トランスデューサを選択することと、
前記英数字文法有限状態トランスデューサおよび前記スペラ有限状態トランスデューサに基づいて、重み付けされていないワードピースに基づくアクセプタ文法を生成することとを含む請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記所与の文脈的有限状態トランスデューサを生成するステップが、
因子演算を使用して前記重み付けされていないワードピースに基づくアクセプタ文法を処理することに基づいてファクタード有限状態トランスデューサを生成することと、
前記重み付けされていないワードピースに基づくアクセプタ文法の各弧に一定の重みを適用することに基づいて、前記所与の文脈的有限状態トランスデューサを生成することとをさらに含む請求項9に記載の方法。
【請求項11】
前記英数字列が、少なくとも1つの数を含み、少なくとも1つの文字を含む請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記ASRエンジンの前記ASRモデル部が、エンドツーエンド音声認識モデルである請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記ASRエンジンが、1組の訓練インスタンスを使用して訓練され、前記英数字列が、前記1組の訓練インスタンス内にない請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記ASRエンジンが、1組の訓練インスタンスを使用して訓練され、前記英数字列が、前記1組の訓練インスタンスに、閾値未満の回数発生する請求項1から13のいずれか一項に記載の方法。
【請求項15】
1つまたは複数のプロセッサによって実施される方法であって、
自動音声認識中に口で言われた発話の英数字列の認識候補の1つまたは複数の確率を修正するのに使用するための文脈的有限状態トランスデューサを生成するステップを含み、前記文脈的有限状態トランスデューサを生成するステップが、
前記英数字列に対応する英数字文法有限状態トランスデューサを選択すること、
ワードピースを構成書記素にマッピングするスペラ有限状態トランスデューサを選択すること、
前記英数字文法有限状態トランスデューサおよび前記スペラ有限状態トランスデューサに基づいて、重み付けされていないワードピースに基づくアクセプタ文法を生成すること、
因子演算を使用して前記重み付けされていないワードピースに基づくアクセプタ文法を処理することに基づいてファクタード有限状態トランスデューサを生成すること、ならびに
前記重み付けされていないワードピースに基づくアクセプタ文法の各弧に一定の重みを適用することに基づいて、前記文脈的有限状態トランスデューサを生成することを含む、方法。
【請求項16】
コンピューティングシステムの1つまたは複数のプロセッサによって実行されるときに前記コンピューティングシステムに請求項1から15のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【請求項17】
請求項1から15のいずれか一項に記載の方法を実行するように構成されたコンピューティングシステム。
【請求項18】
請求項1から15のいずれか一項に記載の方法を実行するためにコンピューティングシステムの1つまたは複数のプロセッサによって実行され得る命令を記憶するコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
自動音声認識のための英数字列のバイアス付加に関する。
【背景技術】
【0002】
自動音声認識(ASR)技術は、自然言語入力をテキストに変換する。たとえば、マイクロフォンを使用してキャプチャされたオーディオデータが、テキストに変換され得る。ASRシステムは、1組の認識候補を生成する際に使用するためのASRモデルを含み得る。ASRシステムは、1組の認識候補から生成されたテキストを選択することができる。
【0003】
人は、本明細書において「自動化されたアシスタント」と呼ばれるインタラクティブなソフトウェアアプリケーション(「デジタルエージェント」、「チャットボット」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)を用いて人間とコンピュータとの対話に従事する可能性がある。たとえば、人(自動化されたアシスタントとインタラクションするときは「ユーザ」と呼ばれる場合がある)は、場合によってはテキストに変換され(たとえば、ASR技術を使用してテキストに変換され)、それから処理される場合がある口で言われた自然言語入力(つまり、発話)を使用して自動化されたアシスタントにコマンドおよび/または要求を与える可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書において開示される実装は、文脈的バイアス付加有限状態トランスデューサ(FST)を使用して、英数字列を含む口で言われた発話のテキスト表現を決定することを対象とする。文脈的バイアス付加FSTは、本明細書においては、文脈的FST、文脈的文語ドメイン(written domain)英数字文法FST、および文語ドメイン英数字文法FSTとも呼ばれる。一例として、「DAYへのフライトについて教えて」という口で言われた発話は、デイトン国際空港を示す英数字列「DAY」を含む。英数字列は、本明細書において使用されるとき、アルファベット文字および/または数字文字の組合せを含み得る。一部の実装において、英数字列は、本明細書において使用されるとき、予想される文字長、アルファベット文字および/もしくは数字文字の予想されるパターン、ならびに/または1つもしくは複数の追加的な予想される特性を有する。たとえば、空港コードは、予想される長さが3文字であり、最初のアルファベット文字、2番目のアルファベット文字、および3番目のアルファベット文字の予想されるパターンを持つ英数字列である。別の例として、追跡番号は、予想される長さならびに/またはアルファベット文字および/もしくは数字文字の予想されるパターンを持つ英数字列である。英数字列は、追跡番号、空港コード、無線局呼び出し番号、個人識別番号、時間、郵便番号、電話番号、および/または追加的もしくは代替的な列を含み得る。
【0005】
自動音声認識(ASR)システムが、口で言われた発話のテキスト表現を生成するために使用され得る。一部の実装において、ASRシステムは、1組の訓練インスタンスを使用して訓練されることが可能であり、1組の訓練インスタンスは、当該英数字列を含まない。追加的または代替的に、ASRシステムは、1組の訓練インスタンスを使用して訓練されることが可能であり、英数字列は、1組の訓練インスタンス内に閾値未満の回数発生する。言い換えると、本明細書において説明される実装による文脈的バイアス付加FSTの使用は、ASRシステムを訓練するために使用される訓練データに存在しないおよび/または訓練データ内で遭遇頻度が低い英数字列の認識を増やすことができ、したがって、そのような英数字列に基づくASRシステムの追加の訓練を必要とせずにASRシステムの精度を高める。
【0006】
一部の実装において、ASRシステムは、ASRシステムのASRモデル部を使用して口で言われた発話を処理して、口で言われた発話の1つまたは複数の認識候補を生成することができる。再帰型ニューラルネットワーク(RNN)モデル、再帰型ニューラルネットワーク-トランスフォーマ(RNN-T)モデル、シーケンスツーシーケンスモデル、リッスン・アテンド・スペル(LAS: listen attend spell)モデル、および/または口で言われた発話の認識候補を生成するのに使用するための1つもしくは複数の追加的なモデルを含む様々なASRモデルが、口で言われた発話の認識候補を生成するのに使用され得る。
【0007】
ASRシステムは、1つまたは複数の認識候補の確率を再採点する(rescore)(たとえば、認識候補の確率を上げるおよび/または下げる)ことができる。認識候補および/または再採点された認識候補は、口で言われた発話のテキスト表現を生成するためにASRシステムによって使用され得る。ASRシステムは、認識候補を再採点する際に使用されるビームサーチ部を含み得る。一部の実装において、ASRシステムは、文脈的バイアス付加FSTを使用してビームサーチ部を修正することができる。一部の実装において、ビームサーチ部は、一度に1単位ずつ認識候補を構築する際にASRモデルと反復してインタラクションすることができる。たとえば、ASRシステムは、ASRモデルとしてRNN-Tモデルを含み得る。ASRシステムは、RNN-Tモデルを使用して生成された認識候補を、ビームサーチ部を使用して修正し、ビームサーチ部は、シャロウフュージョン(shallow fusion)によって文脈的FSTを使用して修正される。
【0008】
文脈的バイアス付加FSTは、口で言われた発話に対応する文脈情報に基づいて、FSTエンジンを使用して選択され得る。別の言い方をすれば、文脈情報が、文脈情報にマッピングされる1つまたは複数の文脈的バイアス付加FSTを選択する際に直接的または間接的に使用され得る。一部の実装においては、口で言われた発話が、関連する文脈情報を決定するために文脈エンジンを使用して処理され得る。追加的または代替的に、追加情報が、文脈情報を決定するために文脈エンジンを使用して処理され得る。追加情報は、たとえば、口で言われた発話に先立つユーザとコンピューティングシステムとの間の対話の1つもしくは複数の以前の順番、ユーザプロファイルに記憶されたユーザについての情報、コンピューティングシステムについての情報、1つもしくは複数のネットワーク接続されたハードウェアデバイス(たとえば、ネットワーク接続されたスマートサーモスタット、ネットワーク接続されたスマートオーブン、ネットワーク接続されたカメラなど)についての情報、および/または発話の文脈に関する追加情報を含み得る。たとえば、「turn the temperature up to 72 degrees」という口で言われた発話に基づいて、サーモスタットの温度に関連する文脈情報が決定され得る。たとえば、サーモスタットの温度に関連する文脈情報は、口で言われた発話の中の、「turn」、「temperature」、「up」、および/または「degrees」などのサーモスタットの温度に(個々にまたは集合的に)マッピングされる特定の語の存在に基づき得る。追加的または代替的に、ネットワーク接続されたスマートサーモスタットに関連する追加情報が、文脈情報を決定するのに使用され得る。たとえば、ネットワーク接続されたスマートサーモスタットが、口で言われた発話がそのデバイスを介して受信されるデバイスとリンクされることに基づいて、追加情報が利用され得る。示された例においては、「turn the temperature up to 72 degrees」という口で言われた発話と、ネットワーク接続されたスマートサーモスタットについての追加情報とが、サーモスタットの温度の文脈情報を決定するために文脈エンジンを使用して処理され得る。この文脈情報は、温度の文脈的バイアス付加FSTを選択するた
めにFSTエンジンを使用して処理され得る。温度の文脈的バイアス付加FSTは、1桁または2桁の予想される長さ、最初の数字文字に2番目の数字文字が続く予想される構造、および値の予想される範囲(たとえば、50から90までの間の予想される範囲)を持ち得る。一部の実装において、FSTエンジンは、文脈情報に関連する複数の文脈的バイアス付加FSTを選択することができる。たとえば、FSTエンジンは、華氏温度の文脈的バイアス付加FSTおよび摂氏温度の文脈的バイアス付加FSTを選択することができる。華氏温度の文脈的バイアス付加FSTは、華氏温度の予想される範囲を持つことができ、一方、摂氏の文脈的バイアス付加FSTは、摂氏温度の別個の予想される範囲を持つことができる。
【0009】
多くの実装において、文脈的バイアス付加FSTは、英数字文法FSTに基づいて生成され得る。英数字文法FSTは、英数字列の種類に関して有効な英数字列を受け入れることができる。たとえば、空港コードの英数字列のための空港コードの英数字の文法は、最初のアルファベット文字、2番目のアルファベット文字、および3番目のアルファベット文字の3文字列の様々な組合せを受け入れることができる。一部の実装において、空港コードの英数字の文法は、有効な空港コードに対応する可能な3文字の組合せのサブセットのみを受け入れてよい。言い換えると、空港の英数字の文法は、アルファベット文字の17,000を超える潜在的な3文字列のすべてを受け入れるのではなく、実際の空港コードに対応するアルファベット文字の3文字列のみを受け入れるように構築され得る。一部の実装においては、重み付けされていないワードピース(wordpiece)に基づくアクセプタ(acceptor)文法が、英数字文法FSTおよびスペラ(speller)FSTに基づいて生成されることが可能であり、スペラFSTは、ワードピースをその構成書記素にマッピングすることができる。重み付けされていないワードピースに基づくアクセプタ文法は、英数字の文法の有効なワードピースのトークン化を受け入れることができる。たとえば、重み付けされていないワードピースに基づくアクセプタ文法は、ロサンゼルス国際空港を示す空港コード「LAX」の有効なワードピーストークン化として「LAX」、「L AX」、または「LA X」を受け入れることができる。さらに、一部の実装においては、ファクタード(factored)FSTが、重み付けされていないワードピースに基づくアクセプタ文法に因子演算(factor operation)を適用することによって生成されることが可能であり、ファクタードFSTの所与の状態に至るいずれのパスも、同じ数の弧を越える。文脈的バイアス付加FSTは、ファクタードFSTに弧ごとの一定の重みを適用することによって生成され得る。追加的または代替的に、文脈的バイアス付加FSTは、失敗の遷移(failure transition)を、ファクタードFSTへの各状態までに蓄積された累積的な重みに等しくすることによって生成され得る。
【0010】
したがって、様々な実装は、オーディオデータを処理して英数字列のテキスト表現を生成する--ならびに音声認識がより効率的および/または正確であることを可能にする方法でそうする--ための技術を示す。本明細書において開示される実装は、たとえ英数字列が低い事前確率を有する(すなわち、ASRシステムを訓練するために使用される訓練データ内で遭遇頻度が低い)か、または基礎となるASRシステムの語彙から外れているときでも、英数字列のテキスト表現の精度を高める。これらのおよびその他の方法で、所与の英数字列を含む複数の(またはさらにはいずれの)訓練例でASRシステムを訓練することにリソースを事前に利用することなく、所与の英数字列に関して正確な音声認識が実行され得る。さらに、キャプチャされたオーディオデータを正確に認識することは、ユーザがシステムによって誤って認識されたオーディオデータを繰り返す(または誤った認識の訂正を手動でタイピングする)必要をなくすことによって、システムリソース(たとえば、プロセッササイクル、メモリ、バッテリ電力、および/またはコンピューティングシステムの追加リソース)を節約することができる。これは、ユーザ入力の継続時間およびユーザとシステムとの対話の継続時間を短縮する。さらに、システムによって誤って認識されたオーディオデータをユーザが繰り返す必要をなくすことによって、ユーザエクスペリエンスが改善され得る。
【0011】
上の説明は、本明細書において開示される一部の実装の概要としてのみ提供されている。テクノロジーのこれらのおよびその他の実装が、下でさらに詳細に開示される。
【0012】
上述の概念および本明細書においてより詳細に説明される追加の概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【0013】
図1A】本明細書において開示される様々な実装によって、キャプチャされたオーディオデータのテキスト表現を生成する例を示す図である。
図1B】本明細書において開示される様々な実装が実装され得る例示的な環境を示す図である。
図2】本明細書において開示される様々な実装による英数字文法FSTの例を示す図である。
図3】本明細書において開示される様々な実装による、重み付けされていないワードピースに基づくアクセプタ文法の例を示す図である。
図4】本明細書において開示される様々な実装によるファクタードFSTの例を示す図である。
図5】本明細書において開示される様々な実装による文脈的バイアス付加FSTの例を示す図である。
図6】本明細書において開示される実装による例示的なプロセスを示す流れ図である。
図7】本明細書において開示される実装による別の例示的なプロセスを示す流れ図である。
図8】本明細書において開示される様々な実装が実装され得る別の例示的な環境を示す図である。
図9】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0014】
英数字列の正確な認識は、音声認識アプリケーションにとって極めて重要であり得る。たとえば、ユーザは、カレンダーイベントを追加しようとする可能性があり、イベントの時間、日付、および継続期間を言うように自動化されたアシスタントによって求められる可能性がある。本明細書において開示される実装は、エンドツーエンド音声認識システムと、有限状態トランスデューサとして表される文語ドメインの英数字の文法とのシャロウフュージョンを使用して英数字エンティティ(alphanumeric entity)を認識する文脈的音声認識技術を対象とする。文語ドメインにおいて英数字エンティティを表す文法を、ビームサーチ中にこれらの文法に一致する仮説の確率を高めるために使用され得る有限状態トランスデューサに自動的に変換するための手法が、提示される。
【0015】
英数字列の正確な認識は、自動音声認識(ASR)を使用する多くのアプリケーションにまたがる重要なタスクである。住所、時間、日付、数字列などの英数字列を認識することは、対話の文脈などの特定の文脈で必要とされることが多い難しいタスクであり得る。たとえば、ユーザは、アラームまたはカレンダーイベントを設定するために、音声制御式のデジタルアシスタントにコマンドを与え、そして今度は、アラームの時間またはカレンダーイベントの継続期間を指定するように求められる可能性がある。これらの種類の文脈的シナリオにおいて、音声認識の誤りは、ユーザエクスペリエンスに大きな影響を与え得る。
【0016】
英数字列の種類の多様性を考えると、新しい文脈および英数字エンティティの種類に容易に適応することができる柔軟なASRシステムを持つことが重要である。したがって、特に訓練データで十分に表現される可能性が低い英数字列に関してASRの精度を向上させるためには、利用可能な文脈情報を取り入れることが重要である。
【0017】
文脈情報の様々な関連ソースが存在する可能性がある。たとえば、異なる国の郵便番号および電話番号は異なる形式を有するので、場所が、文脈的シグナルとして使用され得る。同様に、対話の順番で、ユーザは、特定の長さの数字列を入力するように要求される可能性がある。この文脈的知識を利用することができないASRシステムは、潜在的に、数字エンティティ(numeric entity)の低い認識精度を提供し得る。
【0018】
通常のASRシステムの認識精度を向上させるために、文脈情報が利用され得る。ASRシステムを特定の文脈にオンザフライで適応させるために、様々な文脈的シグナル(たとえば、場所、対話の状態、表面(surface)など)が利用され得る。オンザフライ再採点および有限状態トランスデューサ文脈モデルが、文脈的ASRシステムにおいて使用され得る。通常のASRシステムは、文脈情報と一緒にバーバライザ(verbalizer)およびクラスに基づくシステムを使用して、数字列の品質向上に取り組んできた。
【0019】
同様に、文脈情報は、エンドツーエンド(E2E)ASRシステムにおいて利用され得る。たとえば、E2E ASRシステムにおける文脈的音声認識の通常の手法は、シャロウフュージョン言語モデルを利用することができる。追加的なおよび/または代替的な技術は、推論プロセスを適応させることを含み、ビームサーチの各ステップで出力尤度(output likelihood)を調整することによって文脈的シグナルを利用し得る。提案される方法は、E2Eシステムの予測に文脈を取り入れることに有効性を示すリッスン・アテンド・スペル(LAS) E2Eモデル上で評価され得る。
【0020】
さらに、技術は、E2E音声認識システムにおいて使用される浅いビーム(shallow beam)が原因でよくあり得る探索エラーを最小化することができる。システムは、再帰型ニューラルネットワークトランスデューサ(RNN-T)を使用して評価され得る。ビームサーチ中に、出力尤度が、枝刈り(pruning)前に外部モデルによって再採点される。外部モデルは、ワードピース出力の確率、正の重みかまたは負の重みかのどちらかを提供し得る。探索エラーを減らすために、システムは、文脈モデルに存在する単語のプレフィックス(prefix)の確率を上げ、失敗したマッチングに関して確率を引き下げる。この方法によって、潜在的に文脈モデルからの単語につながる可能性があるパスの確率が、ビームサーチ中に高められる。プレフィックスがマッチングを停止する場合、スコアが引き下げられる。この技術は、コミュニケーションおよびメディアのタスクを含む多種多様な文脈的音声アプリケーションにおいて有望であることが判明している。
【0021】
このシステムの限界は、フレーズのリストから文脈モデルを構築することしかできないことである。数字クラス、たとえば、10桁の数字列に関して文脈的ASRをサポートするためには、すべての10桁の数が列挙される必要がある。これは、多数の要素を有するクラス(たとえば、郵便番号、電話番号など)に関して、(たとえば、メモリの観点でおよび/またはプロセッサの観点で)計算コストが手に負えないほど高い。
【0022】
E2Eシステムにおける文脈的音声認識のための代替的な技術、文脈的リッスン、アテンド、およびスペル(CLAS: Contextual Listen, Attend and Spell)が、利用され得る。しかし、CLAS技術は、大量のフレーズへの拡張性に乏しい。
【0023】
E2Eシステムにおける英数字エンティティの認識を向上させるために、様々な手法が利用され得る。文語テキストトゥスピーチ(TTS)システムにおいては、訓練のために使用される英数字エンティティを含む合成クエリを生成するためにTTSシステムが使用される。この手法は、生成された訓練データに似たクエリおよび音声を使用して生成されたテストセットに関しては改善を示したが、一般的なテストセットに関しては若干後退する結果となった。これらの手法は、汎用的な数字エンティティ認識には有用である可能性があるが、モジュール型および/またはスケーラブルでなく、ユーザが時間を求めるプロンプトに応答するような文脈的な英数字エンティティ認識シナリオに対処しない。
【0024】
E2Eシステムが通常のモデルと競合するようになるとき、これらのシステムが英数字エンティティに対する同等の認識性能を持つことを保証することが有益である。E2E ASRシステムは、明示的なバーバライザまたは辞書(lexicon)を利用せず、限られた文脈的ASR能力のみを有し、したがって、複雑な言語化規則を持つ特にロングテール(long tail)数字エンティティをともなう英数字エンティティなどの、E2Eモデルの訓練データで十分に表現されず、特定の文脈でのみ必要とされる英数字エンティティの特定のクラスに対してはやはりうまくいかない可能性がある。
【0025】
様々な実装は、E2E音声認識器と、有限状態トランスデューサとして表される文語ドメインの英数字の文法とのシャロウフュージョンを使用して英数字エンティティを認識するための文脈的音声認識技術を対象とする。文語ドメインにおいて英数字エンティティを表す文法を、E2E音声認識システムにおいてビームサーチ中にこれらの文法に一致する仮説の確率を高めるために使用され得るFSTに自動的に変換するための手法が、提供される。
【0026】
E2E RNN-Tに基づくASRシステムが、一部の実装において利用され得る。ビームサーチ中にワードピースに基づくRNN-Tを文脈的FSTと融合させることによって、文脈的ASRが実現され得る。本明細書において説明される技術は、E2E ASRシステムに英数字の文脈を追加するための技術を導入する。この技術は、数字の文法から英数字の文脈的FSTを構築し、それらを文脈的E2E ASRシステムに統合することに取り組む。
【0027】
英数字の文法が、対応する英数字の文法に基づく文脈的FSTを生成するために処理され得る。結果として得られる文脈的FSTは、英数字の文脈的FSTインベントリに記憶され得る。認識時には、このインベントリから文脈的に関連するFSTをフェッチするために、文脈情報が分析され得る。これらのFSTは、与えられた数字の文法に一致する仮説の確率を高めるために、ビームサーチ中にRNN-Tの重みによって補間される重みを提供する。
【0028】
英数字の文脈的FSTがフェッチされるべきかどうかを決定するために使用される文脈情報は、たとえば、特定の対話の状態であることが可能である。たとえば、ユーザがアラームの時間を求められた場合、時間の数字の文脈的FSTが、インベントリからフェッチされ得る。同様に、文脈情報は、ユーザが使用しているデバイスの種類である可能性がある。ユーザがスマートラジオシステムを使用している場合、ラジオ局の文脈的FSTがフェッチされ、文脈的ASRのために使用される。
【0029】
技術は、本明細書においては、事前にコンパイルされた文法を使用して説明されるが、英数字の文法を英数字の文脈的FSTにオンザフライで変換することも可能である。これは、特定のAPIを通じてオンザフライで指定される、カスタムのクライアントによって提供される英数字の文法をサポートするために特に有用である可能性がある。
【0030】
特定の種類の英数字エンティティのための文脈的FSTを構築するために、様々な実装は、文語ドメインの英数字の文法から開始する。技術は、文字列「200」または「202」を受け入れる簡単な文法の例を用いて示される。概して、英数字の文法は、複雑であり、たとえば、時間、パーセンテージ、数字列などを表す可能性がある。文語ドメインの英数字の文法は、Gと表記される。文字__が、単語の始まりを示すために使用される。
【0031】
E2E RNN-T ASRシステムの文脈的ASRのために使用されるために、英数字文法FSTは、「スペラ」技術と同様の技術を使用してワードピースに変換される必要がある。スペラFST Sは、ワードピースからそのワードピースの構成書記素に変換する。Sを使用して、重み付けされていないワードピースに基づくアクセプタ文法Uが、式1のFSTの演算を使用して生成され得る。重み付けされていないワードピースに基づくアクセプタ文法FSTは、文法Gの文字列のすべての有効なワードピースレベルのトークン化を受け入れる。示された例においては、数「__200」が、ワードピース「__20 0」、「__2 0 0」、または「__2 00」にトークン化され得る。
【0032】
U = min(det det(project(S〇G))) (1)
【0033】
既存の文脈的ASRシステムと統合するために、文脈的FSTは、部分一致に関してペナルティを減算するための失敗の遷移を有することができる。したがって、同じ状態に至るすべてのパスは、同じ累積的重みを有するべきである。文脈的FSTにおいて一致する弧ごとの一定の重みを適用することは、曖昧な失敗の重みの問題をもたらし得る。この問題を解決するために、いずれの状態でも、その状態までの累積的なパスの重みが同じであることを保証するために、因子重み(factor weight)1としてFactorFST演算が使用され得る。どの状態でも、その状態に到達するために越えられる弧の累積的な数は、その状態に到達するために選ばれたパスとは無関係に、今や同じであることに留意されたい。因子演算の代替的な解決策は、ツリーFST(tree FST)を作成することである。しかし、一部の実装において、そのようなツリーは、N桁の数のような単純な文法に関して指数関数的に大きくなり得る。
【0034】
最後に、重みおよび失敗の遷移が、ファクタードFSTに適用され、重み付けされた文脈的FST Cをもたらす。この例においては、弧ごとの一定の重みを適用され得るが、その他の戦略は、所与の状態に到達するために越えられる弧の数の関数として重みを適用する可能性がある。どちらの戦略も、任意の所与の状態において一定の累積的なパスの重みをもたらし、失敗の遷移に関して一貫した重みをもたらす。このFSTに関して、同じ数字列の異なるトークン化は、異なる重みを得ることに留意されたい。追加的または代替的に、重みが書記素の深さ(FSTのある状態に到達するために必要とされる書記素の累積的な数)の関数として適用されることが可能であり、これは、同じ数字列を綴るすべてのパスが等しい重みを有するという、一部のユースケースのために潜在的に望ましい特性をもたらす。
【0035】
文脈的FSTの重みは、式2に従って、ビームサーチ中に確率を修正するために使用され得る。s(y)と表記されるラベルyの対数確率が、因子αlog log pC(y)によって修正され、αは、補間重みであり、log log pC(y)は、ラベルyがCの弧に一致する場合に文脈的FSTによって与えられる重みである。ラベルyがCの弧に一致しない場合、対数確率s(y)は修正されない。
【0036】
s(y) = log log p(x) - αlog log pC(y) (2)
【0037】
文脈的FSTを構築し、使用するためのプロセスは、以下のように要約され得る。(1)非巡回的な文字に基づくFST Gを構築する。(2)ワードピースをそれらの構成書記素にマッピングする「スペラ」FST Sを構築する。(3)式1に示されたように、SおよびGを使用して、重み付けされていないワードピースに基づくアクセプタ文法Uを計算する。(4)所与の状態に至るいずれのパスも同じ数の弧を越えることを保証するために、因子演算を適用してファクタードFST Fを生成する。(5)弧ごとの一定の重みと、ここまでに蓄積された累積的重みに等しい失敗の遷移とを適用して、文脈的バイアス付加FST Cを取得する。(6)式2に示されたように、文脈的FSTを使用して、ビームサーチ中に一致するラベルの確率を修正する。
【0038】
前述の段落は、様々な実装の概要として提供されている。それらおよびその他の実装が、以降で図に関連してより詳細に説明される。図1Aは、様々な実装による、文脈的バイアス付加有限状態トランスデューサを使用してオーディオデータのテキスト表現を生成する例を示す。示された例100においては、1つまたは複数の英数字列を含むオーディオデータ102が、文脈エンジン104およびASRモデル114を使用して処理される。オーディオデータ102は、クライアントデバイスのマイクロフォンによってキャプチャされた口で言われた自然言語などのキャプチャされたオーディオデータであることが可能である。文脈エンジン104は、オーディオデータ102を処理して、処理されたオーディオデータに対応する文脈情報108を生成することができる。たとえば、文脈エンジン104は、「tell me about my flight to DAY」という口で言われた発話に基づいて、フライトに関連する文脈情報を決定することができ、DAYは、デイトン国際空港を示す空港コードの英数字列である。
【0039】
一部の実装において、文脈エンジン104は、追加情報106を処理して、文脈情報108を生成することができる。追加情報106は、オーディオデータ102に先立つユーザ-コンピューティングシステムの対話の1つもしくは複数の以前の順番、ユーザプロファイルに記憶されたユーザ情報、クライアントデバイス情報、ならびに/または現在の対話セッション、以前の対話セッション、デバイス、ユーザ、および/もしくはその他の文脈情報に関連する追加情報を含み得る。たとえば、追加情報106は、オハイオ州デイトンへのフライトを示すカレンダエントリを含み得る。一部の実装において、文脈エンジン104は、オーディオデータ102に加えて追加情報106を処理して、文脈情報108を生成することができる。たとえば、文脈エンジン104は、「tell me about my flight to DAY」というオーディオデータ102と、オハイオ州デイトンへのフライトを示すカレンダエントリの追加情報106とを処理して、文脈情報108を生成することができる。一部のその他の実装において、文脈エンジン104は、オーディオデータ102を処理することなく追加情報106を処理して、文脈情報108を生成することができる。
【0040】
FSTエンジン110は、文脈情報108を処理して、文脈情報に対応する1つまたは複数の文脈的FST 112を決定することができる。文脈的FST 112は、オーディオデータ102の1つまたは複数のテキスト認識候補116の確率を修正するために使用され得る。たとえば、FSTエンジン110が、フライトを示す文脈情報108に基づいて、空港コードの文脈的FST 112を決定することができる。
【0041】
追加的または代替的に、オーディオデータ102は、ASRエンジンを使用して処理され得る。たとえば、オーディオデータ102は、オーディオデータの1つまたは複数のテキスト認識候補116を生成するために、ASRエンジンのASRモデル114の部分を使用して処理され得る。ASRモデル114は、再帰型ニューラルネットワーク(RNN)モデル、再帰型ニューラルネットワーク-トランスフォーマ(RNN-T)モデル、シーケンスツーシーケンスモデル、リッスン・アテンド・スペル(LAS)モデル、および/または口で言われた発話の認識候補を生成するのに使用するための1つもしくは複数の追加的なモデルを含む様々な機械学習モデルを含み得る。追加的または代替的に、ASRエンジンは、認識候補116からテキスト表現を選択する際に利用され得るビームサーチ部を含むことが可能である。一部の実装において、文脈的FSTは、ASRエンジンのビームサーチ部118を修正することによって、1つまたは複数の認識候補116の確率を修正することができる。それらの実装の一部において、文脈的FST 112は、シャロウフュージョンによってASRエンジンのビームサーチ部118を修正するために使用され得る。たとえば、空港コードの文脈的FSTが、「to DAY」というテキスト認識候補の確率を上げるため、および/または「today」というテキスト認識候補の確率を下げるために使用され得る。
【0042】
図1Bは、本明細書において開示される様々な実装が実装されてよい例示的な環境を示す。例示的な環境150は、クライアントデバイス152を含む。クライアントデバイス152は、ASRエンジン115、文脈エンジン104、FSTエンジン110、追加的もしくは代替的エンジン(図示せず)、ASRモデル114、および/または追加的もしくは代替的モデル(図示せず)を含み得る。追加的または代替的に、クライアントデバイス152は、文脈的FST 112と関連付けられてよい。多くの実装において、文脈的FST 112は、クライアントデバイスのローカルに記憶されることが可能であり、英数字列を含む口で言われた発話などの口で言われた発話の認識候補の確率を修正するために使用されることが可能であり、認識候補は、口で言われた発話のテキスト表現を生成する際に使用される。一部の実装において、クライアントデバイス152は、ユーザインターフェース入力/出力デバイス(図示せず)を含む場合があり、ユーザインターフェース入力/出力デバイスは、たとえば、物理的なキーボード、(たとえば、仮想キーボードもしくはその他のテキスト入力メカニズムを実装する)タッチスクリーン、マイクロフォン、カメラ、ディスプレイスクリーン、および/またはスピーカを含んでよい。ユーザインターフェース入力/出力デバイスは、ユーザの1つまたは複数のクライアントデバイス152と統合されてよい。たとえば、ユーザのモバイル電話が、ユーザインターフェース入力出力デバイスを含む場合があり、スタンドアロンのデジタルアシスタントハードウェアデバイスが、ユーザインターフェース入力/出力デバイスを含む場合があり、第1のコンピューティングデバイスが、ユーザインターフェース入力デバイスを含む場合があり、別のコンピューティングデバイスが、ユーザインターフェース出力デバイスを含む場合があり、以下同様である。一部の実装において、クライアントデバイス152のすべてまたは態様は、やはりユーザインターフェース入力/出力デバイスを含むクライアントデバイスに実装される場合がある。一部の実装において、クライアントデバイス152は、自動化されたアシスタント(図示せず)を含んでよく、自動化されたアシスタントのすべてまたは態様は、ユーザインターフェース入力/出力デバイスを含むクライアントデバイスと別
れており、遠隔にあるコンピューティングデバイスに実装される場合がある(たとえば、すべてまたは態様は、「クラウドに」実装される場合がある)。それらの実装の一部において、自動化されたアシスタントのそれらの態様は、ローカルエリアネットワーク(LAN)および/または広域ネットワーク(WAN)(たとえば、インターネット)などの1つまたは複数のネットワークを介してコンピューティングデバイスと通信する場合がある。
【0043】
クライアントデバイス152のいくつかの非限定的な例は、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、自動化されたアシスタントに少なくとも部分的に専用のスタンドアロンのハードウェアデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、乗り物のコンピューティングデバイス(たとえば、車載通信システム、および車載エンターテインメントシステム、車載ナビゲーションシステム、車載ナビゲーションシステム)、またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含む。追加的および/または代替的なコンピューティングシステムが、提供されてよい。クライアントデバイス152は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にするためのその他の構成要素とを含んでよい。クライアントデバイス152によって実行される動作は、複数のコンピューティングデバイスに分散される場合がある。たとえば、1つまたは複数の場所の1つまたは複数のコンピュータ上で実行されるコンピューティングプログラムが、ネットワークを通じて互いに結合され得る。
【0044】
図1Bに示されるように、文脈的FST生成エンジン156が、文脈的FST 112を生成することができる。一部の実装において、文脈的FST生成エンジン156は、英数字列を受け入れることができる文語ドメイン英数字文法FSTを決定することができる。たとえば、図2の英数字文法FST200は、「200」および「202」の英数字列を受け入れることができる。一部の実装において、英数字文法FSTは、有向非巡回グラフである。一部の実装において、文脈的FST生成エンジン156は、英数字文法FSTを生成することができる。追加的または代替的に、文脈的FST生成エンジン156は、追加的なエンジンによって生成された英数字文法FSTを選択することができる。
【0045】
文脈的FST生成エンジン156は、ワードピースをそのワードピースの構成書記素にマッピングするスペラFSTを決定することができる。一部の実装において、文脈的FST生成エンジン156は、スペラFSTを生成することができる。追加的または代替的に、文脈的FST生成エンジン156は、追加的なエンジン(図示せず)によって生成されたスペラFSTを選択することができる。一部の実装において、文脈FST生成エンジン156は、スペラFSTおよび英数字文法FSTを使用して、重み付けされていないワードピースに基づくアクセプタ文法FSTを生成することができる。重み付けされていないワードピースアクセプタ文法は、英数字文法FSTの文字列の有効なワードピースレベルのトークン化を受け入れる場合がある。たとえば、図3の重み付けされていないワードピースに基づくアクセプタ文法300は、文字列「2 00」、「2 0 0」、「2 0 2」、「20 2」、および「20 0」を受け入れることが可能である。
【0046】
一部の実装において、文脈的FST生成エンジン156は、重み付けされていないワードピースに基づくアクセプタ文法に因子演算を適用することによってファクタードFSTを生成することができ、ファクタードFSTの所与の状態に至るいずれのパスも、同じ数の弧を越える。たとえば、図4のファクタードFST400の所与の状態に至るすべてのパスは、同じ長さを有する。さらに、文脈的FST生成エンジン156は、弧ごとの一定の重みをファクタードFSTに適用することによって、文脈的FST 112を生成することができる。図5の文脈的バイアス付加FST500は、文脈的FSTの説明のための例である。
【0047】
一部の実装においては、クライアントデバイス152のマイクロフォンを使用してキャプチャされたオーディオデータなどのオーディオデータが、オーディオデータに対応する文脈情報を決定するために文脈エンジン104を使用して処理され得る。追加的または代替的に、文脈エンジン104は、追加情報に基づいて文脈情報を決定することができる。たとえば、追加情報は、クライアントデバイスの構成要素とユーザとの間の、オーディオデータに先立つ対話の1つもしくは複数の以前の順番、ユーザプロファイルに記憶されたユーザ情報、クライアントデバイス情報、ならびに/または現在の対話セッション、以前の対話セッション、デバイス、ユーザ、および/もしくはその他の情報に関連する追加情報を含み得る。一部の実装において、FSTエンジン110は、文脈情報に基づいて1つまたは複数の文脈的FST 112を選択することができる。たとえば、FSTエンジン110は、サーモスタットの温度に関連する文脈情報に基づいて、温度の文脈的FSTを選択することができる。
【0048】
ASRエンジン154は、ASRモデル114を使用して、オーディオデータの1つまたは複数の認識候補を決定することができる。たとえば、ASRモデル114は、再帰型ニューラルネットワーク-トランスフォーマ(RNN-T)モデルであることが可能であり、ASRエンジンは、RNN-Tモデルを使用してオーディオデータの1組の認識候補を決定することが可能である。一部の実装において、ASRエンジン154は、認識候補に基づいてオーディオデータのテキスト表現を生成するためのビームサーチ部を含み得る。文脈エンジン104を使用して決定された文脈情報に基づいてFSTエンジン110によって選択された文脈的FST 112は、ビームサーチ中に認識候補の確率を修正するために使用され得る。一部の実装において、文脈的FST 112は、シャロウフュージョンによってビームサーチ部を修正することができる。たとえば、文脈的FSTは、文脈的FSTによって示される英数字列の認識候補の確率を上げるおよび/または下げることができる。
【0049】
図2は、英数字文法FSTの例を示す。英数字文法FSTは、書記素に基づくアクセプタ文法のような有向非巡回グラフであることが可能である。示された例において、英数字文法FST200は、英数字列「200」または「202」を受け入れる。一部の実装においては、文字「_」が、英数字列の始まりを示す。たとえば、英数字文法FST200は、「_200」および「_202」を受け付ける。示された例において、英数字文法FST200は、頂点0で始まり、頂点4で終了する。英数字列200は、頂点0と頂点4との間に、頂点1、頂点2、および頂点3を含む様々な追加の頂点を含む。示された例においては、頂点0と頂点1との間の辺が、「_」(すなわち、英数字列の開始を示すトークン)を表す。頂点1と頂点2との間の辺は、受け入れられる列の最初の文字「2」を表す。頂点2と頂点3との間の辺は、受け入れられる列の2番目の文字「0」を表す。頂点3と頂点4との間には、2つの辺がある。第1の辺は、受け入れられる列の3番目の文字である文字「2」を表す。第2の辺は、英数字の文法によって受け入れられるさらなる列の3番目の文字である文字「0」を表す。
【0050】
図3は、例示的な重み付けされていないワードピースに基づくアクセプタ文法を示す。一部の実装において、重み付けされていないワードピースに基づくアクセプタ文法300は、スペラFSTを使用して図2の英数字文法FST200を処理することによって生成され得る。スペラFSTは、ワードピースをそれらの構成書記素にマッピングすることができる。重み付けされていないワードピースに基づくアクセプタ文法300は、頂点0で始まり、頂点3で終了する。頂点0と頂点3との間に、頂点1および頂点2を含む様々な追加の頂点がある。示された例において、頂点0と頂点1との間の辺は、「_2」を表し、頂点1と頂点3との間の辺は、「00」を表し、頂点0と頂点2との間の辺は、「_20」を表し、頂点1と頂点2との間の辺は、「0」を表し、頂点2と頂点3との間の第1の辺は、「2」を表し、頂点2と頂点3との間の第2の辺は、「0」を表す。示された例において、重み付けされていないワードピースに基づくアクセプタ文法300は、文字列「2 00」、「2 0 0」、「20 0」、「2 0 2」、および「20 2」を受け入れることが可能である。
【0051】
図4は、例示的なファクタードFSTを示す。示された例において、ファクタードFST400の所与の状態に至るすべてのパスは、同じ長さを有する。一部の実装において、ファクタードFST400は、重み付けされていないワードピースに基づくアクセプタ文法300に因子演算を適用することによって生成される。ファクタードFST400は、頂点0で始まり、頂点4かまたは頂点5かのどちらかで終わる。ファクタードFST400は、頂点1、頂点2、および頂点3も含む。頂点0と頂点1との間の辺は、「_2」を表す。頂点1と頂点3との間の辺は、「0」を表す。頂点3と頂点5との間の第1の辺は、「2」を表す。頂点3と頂点5との間の第2の辺は、「0」を表す。頂点1と頂点4との間の辺は、「00」を表す。頂点0と頂点2との間の辺は、「_20」を表す。頂点2と頂点4との間の第1の辺は、「2」を表す。頂点2と頂点4との間の第2の辺は、「0」を表す。
【0052】
図5は、文脈的バイアス付加FSTの例を示す。示された例において、文脈的バイアス付加FST500は、弧ごとの一定の重み1を有する。一部の実装において、文脈的バイアス付加FSTは、弧ごとの追加の重み(たとえば、弧ごとの一定の重み2、弧ごとの一定の重み10、および/または弧ごとの追加の一定の重み)を有する。文脈的バイアス付加FST500は、弧ごとの一定の重み、および/またはファクタードFST400の所与の状態までに蓄積された累積的な重みに等しい失敗の遷移を適用することによって生成され得る。一部の実装において、文脈的FST500の重みは、自動音声認識のビームサーチ部の間に確率を修正するために使用され得る。文脈的バイアス付加FST500は、頂点0で始まり、頂点4かまたは頂点5かのどちらかで終わる。文脈的バイアス付加FST500の追加の頂点は、頂点1、頂点2、および頂点3を含む。示された例において、頂点0と頂点1との間の辺は、「_2/1」を表し、_2は、開始文字および受け付けられる数の最初の桁を表し、1は、重みを表す。頂点1と頂点3との間の辺は、「0/1」を表し、0は、受け付けられる数の2番目の桁であり、1は、重みを表す。頂点3と頂点5との間の第1の辺は、「2/1」を表し、2は、受け付けられる数の3番目の桁であり、1は、重みを表す。頂点3と頂点5との間の第2の辺は、「0/1」を表し、0は、受け付けられる数の3番目の桁であり、1は、重みを表す。頂点1と頂点4との間の辺は、「00/1」を表し、00は、受け付けられる数の2番目および3番目の桁であり、1は、重みである。頂点0と頂点2との間の辺は、「_20/1」を表し、_は、開始文字であり、20は、受け付けられる数の最初のおよび2番目の桁であり、1は、重みである。頂点2と頂点4との間の第1の辺は、「2/1」を表し、2は、受け付けられる数の3番目の桁であり、1は、重みである。頂点2と頂点4との間の第2の辺は、「0/1」を表し、0は、受け付けられる数の3番目の桁であり、1は、重みである。
【0053】
頂点1と頂点0との間の辺は、-1の失敗の遷移を示す「<epsilon>/-1」を表す。頂点3と頂点0との間の辺は、-2の失敗の遷移を示す「<epsilon>/-2」を表す。頂点2と頂点0との間の辺は、-1の失敗の遷移を示す「<epsilon>/-1」を表す。
【0054】
図6は、本明細書において開示される実装による文脈的バイアス付加FSTを生成するプロセス600を示す流れ図である。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、図1Bのクライアントデバイス152の1つまたは複数の構成要素などの、様々なコンピュータシステムの様々な構成要素を含んでよい。さらに、プロセス600の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、および/または追加される可能性がある。
【0055】
ブロック602において、システムが、英数字文法FSTを選択する。一部の実装において、英数字文法FSTは、非巡回的な文字に基づくFSTである。たとえば、図2の英数字文法FST200が、列「200」および「202」を受け入れる。
【0056】
ブロック604において、システムが、スペラFSTを選択し、スペラFSTが、ワードピースをその構成書記素にマッピングする。
【0057】
ブロック606において、システムが、英数字文法FSTおよびスペラFSTに基づいて、重み付けされていないワードピースに基づくアクセプタ文法FSTを生成する。一部の実装において、システムは、ブロック602で選択された英数字文法FSTとブロック604で選択されたスペラFSTとに基づいて、重み付けされていないワードピースに基づくアクセプタ文法FSTを生成する。たとえば、図3の重み付けされていないワードピースに基づくアクセプタ文法FST300は、文字列「2 00」、「2 0 0」、「2 0 2」、「20 2」、および「20 0」を受け入れることが可能である。
【0058】
ブロック608において、システムが、因子演算を使用して、重み付けされていないワードピースに基づくアクセプタ文法を処理することによって、ファクタードFSTを生成する。一部の実装においては、ファクタードFSTの所与の状態に至るいずれのパスも、同じ数の弧を越える。図4のファクタードFST400は、ファクタードFSTの例である。
【0059】
ブロック610において、システムが、弧ごとの一定の重みをファクタードFSTに適用することによって文脈的バイアス付加FSTを生成する。図5の文脈的バイアス付加FST500は、例示的な文脈的バイアス付加FSTである。
【0060】
図7は、本明細書において開示される実装による文脈的バイアス付加FSTを使用して口で言われた発話のテキスト表現を生成するプロセス700を示す流れ図である。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、図1Bのクライアントデバイス152の1つまたは複数の構成要素などの、様々なコンピュータシステムの様々な構成要素を含んでよい。さらに、プロセス700の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、および/または追加される可能性がある。
【0061】
ブロック702において、システムが、英数字列を含む口で言われた発話をキャプチャするオーディオデータを受信する。一部の実装において、オーディオデータは、クライアントデバイスのマイクロフォンを使用してキャプチャされる。たとえば、システムは、「DAYへのフライトについて教えて」という口で言われた発話をキャプチャするオーディオデータを受信することができ、DAYは、デイトン国際空港を示す空港コードの英数字列である。別の例として、システムは、「追跡番号ABC-123の私の荷物はいつ着きますか」という口で言われた発話をキャプチャするオーディオデータを受信することができる。
【0062】
ブロック704において、システムが、英数字列に関する文脈情報を決定する。一部の実装において、システムは、口で言われた発話に基づいて文脈情報を決定することができる。たとえば、システムは、口で言われた発話「追跡番号ABC-123の私の荷物はいつ着きますか」に関して、追跡番号を示す文脈情報を決定することができる。追加的または代替的に、システムは、口で言われた発話に先立つユーザとコンピューティングシステムとの間の対話の1つもしくは複数の以前の順番、ユーザプロファイルに記憶されたユーザについての情報、コンピューティングシステムについての情報、1つもしくは複数のネットワーク接続されたハードウェアデバイス(たとえば、ネットワーク接続されたスマートサーモスタット、ネットワーク接続されたスマートオーブン、ネットワーク接続されたカメラなど)についての情報、および/または発話の文脈に関する追加情報を含む追加情報に基づいて文脈情報を決定することができる。たとえば、ユーザとコンピューティングシステムとの間の対話は、ユーザ--「私の荷物はいつ着きますか」、コンピューティングシステム--「荷物の追跡番号は何番ですか」、ユーザ--「ABC-123です」を含み得る。「追跡番号は何番ですか」という追加情報が、追跡番号に関連する文脈情報を生成するために使用され得る。別の例として、ユーザのユーザプロファイルが、サンフランシスコ国際空港からロサンゼルス国際空港へのフライトに関連するカレンダエントリを含むことが可能であり、それが、フライトに関連する文脈情報を決定するために使用され得る。追加的または代替的に、サーモスタットの温度に関連する文脈情報が、システムに関連するスマートサーモスタットに基づいて決定され得る。
【0063】
ブロック706において、システムが、文脈情報に対応する1つまたは複数の文脈的バイアス付加FSTを選択する。たとえば、システムは、フライトを示す文脈情報に基づいて、空港コードの文脈的バイアス付加FSTを選択することができる。一部の実装において、システムは、文脈情報に対応する複数の文脈的FSTを選択することができる。たとえば、システムは、スマートサーモスタットの温度を示す文脈情報に対応する華氏温度の文脈的バイアス付加FSTおよび摂氏温度の文脈的バイアス付加FSTを選択することができる。一部の実装において、1つまたは複数の文脈的バイアス付加FSTは、図6のプロセス600によって生成され得る。一部の実装において、システムは、クライアントデバイスのローカルに記憶された文脈的FSTの所定の組から文脈的バイアス付加FSTを選択することができる。追加的または代替的に、システムは、サーバ上の、クライアントデバイスの遠隔に記憶された文脈的FSTの所定の組から文脈的バイアス付加FSTを選択することできる。一部の実装において、システムは、クライアントによって提供された数字の文法に基づいてオンザフライで生成される文脈的バイアス付加FSTなどの、システムによってオンザフライで生成される文脈的バイアス付加FSTを選択することができる。
【0064】
ブロック708において、システムが、ASRエンジンのASRモデル部を使用して口で言われた発話を処理することによって、英数字列を含む口で言われた発話の1組の認識候補を生成する。一部の実装において、システムは、RNN-Tモデルを使用してブロック702で受信されたオーディオデータを処理することによって、口で言われた発話の1組の認識候補を生成することができる。
【0065】
ブロック710において、システムが、1組の認識候補および1つまたは複数の選択された文脈的FSTに基づいて、口で言われた発話のテキスト表現を生成する。一部の実装において、システムは、ブロック708で生成された1組の認識候補と、ブロック702で選択された1つまたは複数の文脈的FSTとに基づいて、口で言われた発話のテキスト表現を生成することができる。たとえば、ASRシステムのビームサーチ部が、ブロック708においてASRモデルを使用して生成された認識候補の確率を変更するために、文脈的FSTを使用してシャロウフュージョンによって修正され得る。
【0066】
図8に目を向けると、本明細書において開示される実装が実装され得る例示的な環境。図8は、自動化されたアシスタントクライアント804のインスタンスを実行するクライアントコンピューティングデバイス802を含む。1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素810が、808に全体的に示される1つまたは複数のローカルエリアおよび/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス802に通信可能なように結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)に実装され得る。
【0067】
自動化されたアシスタントクライアント804のインスタンスは、1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素810とのその自動化されたアシスタントクライアント804のインタラクションを通して、ユーザの観点から見てユーザが人とコンピュータとの対話に従事する可能性がある自動化されたアシスタント800の論理的なインスタンスであるように見えるものを形成する場合がある。したがって、一部の実装において、クライアントデバイス802上で実行される自動化されたアシスタントクライアント804と関わり合うユーザは、実際には、自動化されたアシスタント800のそのユーザ独自の論理的なインスタンスと関わり合う可能性があることを理解されたい。簡潔で単純にするために、特定のユーザに「サービスを提供する」ものとして本明細書において使用される用語「自動化されたアシスタント」は、多くの場合、ユーザによって運用されるクライアントデバイス802上で実行される自動化されたアシスタントクライアント804と(複数のクライアントコンピューティングデバイスの複数の自動化されたアシスタントクライアントの間で共有される可能性がある)1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素810との組合せを指す。一部の実装において、自動化されたアシスタント800は、ユーザが自動化されたアシスタント800のその特定のインスタンスによって実際に「サービスを提供される」かどうかに関係なく任意のユーザからの要求に応答する場合があることも理解されたい。
【0068】
クライアントコンピューティングデバイス802は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイルスマートフォンコンピューティングデバイス、スタンドアロンのインタラクティブスピーカ、スマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)であってよい。追加的および/または代替的なクライアントコンピューティングデバイスが、提供されてよい。追加的または代替的に、クライアントコンピューティングデバイス802の動作は、複数のコンピューティングデバイスに分散される場合がある。たとえば、クライアントコンピューティングデバイス802の1つまたは複数の動作が、モバイルスマートフォンと乗り物のコンピューティングデバイスとに分散される場合がある。さらに、クライアントコンピューティングデバイス802の動作は、(場合によっては通信可能なように結合されてよい)複数のコンピューティングデバイスの間で繰り返される場合がある。さらなる例として、両方とも(下で説明される)呼び出しエンジンを含むモバイルスマートフォンおよび乗り物のインターフェースデバイスなどのモバイルスマートフォンおよび乗り物のインターフェースデバイスが、自動化されたアシスタント800の動作をそれぞれ実施する場合がある。様々な実装において、クライアントコンピューティングデバイス802は、任意で、メッセージ交換クライアント(たとえば、SMS、MMS、オンラインチャット)、ブラウザなどの、自動化されたアシスタントクライアント804以外の1つまたは複数のその他のアプリケーションを動作させる場合がある。それらの様々な実装の一部においては、その他のアプリケーションのうちの1つまたは複数が、任意で、自動化されたアシスタント804と(たとえば、アプリケーションプログラミングインターフェースを介して)インターフェースを取るか、または(クラウドに基づく自動化されたアシスタント構成要素810とやはりインターフェースを取る可能性がある)自動化されたアシスタントアプリケーションのそれらの
その他のアプリケーション独自のインスタンスを含み得る。
【0069】
自動化されたアシスタント800は、クライアントデバイスのユーザインターフェース入力および出力デバイス(図示せず)を介してユーザとの人とコンピュータとの対話セッションに従事する。ユーザのプライバシーを守るおよび/またはリソースを節約するために、多くの状況で、ユーザは、自動化されたアシスタントが口で言われた発話を完全に処理する前に自動化されたアシスタント800を明示的に呼び出さなければならないことが多い。自動化されたアシスタント800の明示的な呼び出しは、クライアントデバイス802において受け取られた特定のユーザインターフェース入力に応答して起こり得る。たとえば、クライアントデバイス802を介して自動化されたアシスタント800を呼び出すことができるユーザインターフェース入力は、任意で、クライアントデバイス802のハードウェアのおよび/または仮想的なボタンの作動を含み得る。さらに、自動化されたアシスタントクライアントは、1つまたは複数の口で言われた呼び出しフレーズの存在を検出するように動作可能である呼び出しエンジンなどの1つまたは複数のローカルエンジン806を含み得る。呼び出しエンジンは、口で言われた呼び出しフレーズのうちの1つまたは複数の検出に応じて自動化されたアシスタント800を呼び出すことができる。たとえば、呼び出しエンジンは、「ヘイ、アシスタント」、「オーケー、アシスタント」、および/または「アシスタント」などの口で言われた呼び出しフレーズの検出に応じて自動化されたアシスタント800を呼び出すことができる。呼び出しエンジンは、口で言われた呼び出しフレーズの発生を監視するためにクライアントデバイス802の1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを(たとえば、「非アクティブ」モードでない場合に)継続的に処理することができる。口で言われた呼び出しフレーズの発生を監視している間に、呼び出しエンジンは、口で言われた呼び出しフレーズを含まないすべてのオーディオデータフレームを(たとえば、バッファに一時的に記憶した後)破棄する。しかし、呼び出しエンジンが処理されるオーディオデータフレーム内で口で言われた呼び出しフレーズの発生を検出するとき、呼び出しエンジンは、自動化されたアシスタント800を呼び出すことができる。本明細書において使用されるとき、自動化されたアシスタント800を「呼び出すこと」は、自動化されたアシスタント800の1つまたは複数の前は非アクティブであった機能をアクティブ化させることを含み得る。たとえば、自動化されたアシスタント800を呼び出すことは、(呼び出しの前はオーディオデータフレームのさらなる処理が行われていなかったが)1つまたは複数のローカルエンジン806および/またはクラウドに基づく自動化されたアシスタント構成要素810に、呼び出しフレーズが検出されたオーディオデータフレームおよび/または1つもしくは複数の引き続くオーディオデータフレームをさらに処理させることを含み得る。
【0070】
自動化されたアシスタント804の1つまたは複数のローカルエンジン806は、任意であり、たとえば、上述の呼び出しエンジン、(キャプチャされたオーディオをテキストに変換する)ローカルスピーチトゥテキスト(「STT」)エンジン、(テキストをスピーチに変換する)ローカルテキストトゥスピーチ(「TTS」)エンジン、(オーディオおよび/もしくはオーディオから変換されたテキストの意味論的意味を決定する)ローカル自然言語プロセッサ、ならびに/またはその他のローカル構成要素を含み得る。クライアントデバイス802はコンピューティングリソース(たとえば、プロセッササイクル、メモリ、バッテリなど)の点で比較的制約されるので、ローカルエンジン806は、クラウドに基づく自動化されたアシスタント構成要素810に含まれる任意の対応する機能に比べて制限された機能を有する場合がある。
【0071】
自動化されたアシスタントクライアント804は、文脈エンジンおよび/またはFSTエンジン(図示せず)をさらに含み得る。図1Aおよび図1Bの文脈エンジン104などの文脈エンジンが、オーディオデータおよび/またはオーディオデータに関連する追加情報に基づいて文脈情報を決定する際に自動化されたアシスタントクライアント804によって利用され得る。図1Aおよび図1BのFSTエンジン110などのFSTエンジンが、1つまたは複数の文脈的バイアス付加FSTを選択する際に自動化されたアシスタントクライアント804によって利用され得る。TTSエンジン812は、シャロウフュージョンによって文脈的バイアス付加FSTを用いてビームサーチを修正することによるなどして、オーディオデータのテキスト表現を生成する際に1つまたは複数の選択された文脈的バイアス付加FSTを利用することができる。
【0072】
クラウドに基づく自動化されたアシスタント構成要素810は、クラウドの実質的に制限のないリソースを利用して、ローカルエンジン806の任意の対応する処理に比べてオーディオデータおよび/またはその他のユーザインターフェース入力のより堅牢なおよび/またはより正確な処理を実行する。さらにまた、様々な実装において、クライアントデバイス802は、呼び出しエンジンによる口で言われた呼び出しフレーズの検出または自動化されたアシスタント800の何らかのその他の明示的な呼び出しの検出に応じてクラウドに基づく自動化されたアシスタント構成要素810にオーディオデータおよび/またはその他のデータを提供することができる。
【0073】
示されたクラウドに基づく自動化されたアシスタント構成要素810は、クラウドに基づくTTSモジュール812、クラウドに基づくSTTモジュール814、および自然言語プロセッサ816を含む。一部の実装において、自動化されたアシスタント800のエンジンおよび/またはモジュールのうちの1つまたは複数は、省略されるか、組み合わされるか、および/または自動化されたアシスタント800とは別である構成要素に実装される場合がある。さらに、一部の実装において、自動化されたアシスタント800は、追加的および/または代替的なエンジンおよび/またはモジュールを含み得る。
【0074】
クラウドに基づくSTTモジュール814は、オーディオデータをテキストに変換することができ、テキストは、それから、自然言語プロセッサ816に提供されてよい。様々な実装において、クラウドに基づくSTTモジュール814は、割り振りエンジン(図示せず)によって提供される話者ラベルおよび割り振りのインジケーションに少なくとも部分的に基づいてオーディオデータをテキストに変換することができる。
【0075】
クラウドに基づくTTSモジュール812は、テキストデータ(たとえば、自動化されたアシスタント800によって作られた自然言語応答)をコンピュータによって生成されたスピーチ出力に変換することができる。一部の実装において、TTSモジュール812は、コンピュータによって生成されたスピーチ出力を、たとえば、1つまたは複数のスピーカを使用して直接出力されるようにクライアントデバイス802に提供し得る。その他の実装においては、自動化されたアシスタント800によって生成されたテキストデータ(たとえば、自然言語応答)が、ローカルエンジン806のうちの1つに提供されてよく、それから、そのローカルエンジン806が、テキストデータを、ローカルで出力されるコンピュータによって生成されたスピーチに変換する場合がある。
【0076】
自動化されたアシスタント800の自然言語プロセッサ816は、自由形式の自然言語入力を処理し、自然言語入力に基づいて、自動化されたアシスタント800の1つまたは複数のその他の構成要素による使用のために注釈付きの出力を生成する。たとえば、自然言語プロセッサ816は、クライアントデバイス802を介してユーザによって与えられたオーディオデータのSTTモジュール814による変換であるテキスト入力である自然言語の自由形式の入力を処理することができる。生成される注釈付きの出力は、自然言語入力の1つまたは複数の注釈と、任意で、自然言語入力の語のうちの1つまたは複数(たとえば、すべて)とを含んでよい。一部の実装において、自然言語プロセッサ816は、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、自然言語プロセッサ816は、語にそれらの語の文法的役割によって注釈を付けるように構成された音声タガー(図示せず)の一部を含んでよい。また、たとえば、一部の実装において、自然言語プロセッサ816は、追加的および/また代替的に、自然言語入力内の語の間の統語的関係を決定するように構成された依存関係パーサ(図示せず)を含んでよい。
【0077】
一部の実装において、自然言語プロセッサ816は、追加的および/また代替的に、(たとえば、文学のキャラクタ、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のサンプル内のエンティティの言及に注釈を付けるように構成されたエンティティタガー(図示せず)を含んでよい。自然言語プロセッサ816のエンティティタガーは、(たとえば、人などのエンティティのクラスへのすべての言及の特定を可能にするための)高レベルの粒度(granularity)および/または(たとえば、特定の人物などの特定のエンティティへのすべての言及の特定を可能にするための)より低レベルの粒度でエンティティへの言及に注釈を付ける可能性がある。エンティティタガーは、特定のエンティティを解決するために自然言語入力の内容に依拠する可能性があり、および/または特定のエンティティを解決するためにナレッジグラフもしくはその他のエンティティデータベースと任意で通信する可能性がある。
【0078】
一部の実装において、自然言語プロセッサ816は、追加的および/また代替的に、1つまたは複数の文脈的手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一指示(coreference)リゾルバ(図示せず)を含んでよい。たとえば、同一指示リゾルバは、自然言語入力「I liked Hypothetical Cafe last time we ate there」内の語「there」を「Hypothetical Cafe」に解決するために利用されてよい。
【0079】
一部の実装において、自然言語プロセッサ816の1つまたは複数の構成要素は、自然言語プロセッサ816の1つまたは複数のその他の構成要素からの注釈に依拠する可能性がある。たとえば、一部の実装において、指定されたエンティティタガーは、特定のエンティティへのすべての言及に注釈を付ける際に同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠してよい。また、たとえば、一部の実装において、同一指示リゾルバは、同じエンティティへの言及をクラスタリングする際に依存関係パーサからの注釈に依拠してよい。一部の実装においては、特定の自然言語入力を処理する際に、自然言語プロセッサ816の1つまたは複数の構成要素が、1つまたは複数の注釈を決定するために、関連する以前の入力、および/または特定の自然言語入力外のその他の関連するデータを使用する場合がある。
【0080】
図9は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用されてよい例示的なコンピューティングデバイス910のブロック図である。一部の実装においては、クライアントコンピューティングデバイスおよび/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス910の1つまたは複数の構成要素を含む場合がある。
【0081】
概して、コンピューティングデバイス910は、バスサブシステム912を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ914を含む。これらの周辺デバイスは、たとえば、メモリサブシステム925およびファイルストレージサブシステム926を含むストレージサブシステム924と、ユーザインターフェース出力デバイス920と、ユーザインターフェース入力デバイス922と、ネットワークインターフェースサブシステム916とを含んでよい。入力および出力デバイスは、コンピューティングデバイス910とのユーザのインタラクションを可能にする。ネットワークインターフェースサブシステム916は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【0082】
ユーザインターフェース入力デバイス922は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含んでよい。概して、用語「入力デバイス」の使用は、コンピューティングデバイス910または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【0083】
ユーザインターフェース出力デバイス920は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどの非視覚的表示を含んでよい。ディスプレイサブシステムは、ブラウン管(「CRT」)、液晶ディスプレイ(「LCD」)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含んでよい。ディスプレイサブシステムは、音声出力デバイスを介するなどして非視覚的表示を提供する場合もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス910からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【0084】
ストレージサブシステム924は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム924は、図8のプロセスのうちの1つまたは複数の選択された態様を実行するためおよび図1Bに示された様々な構成要素を実装するための論理を含んでよい。
【0085】
これらのソフトウェアモジュールは、概して、プロセッサ914によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム924において使用されるメモリ925は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(「RAM」)930と、決まった命令が記憶される読み出し専用メモリ(「ROM」)932とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム926は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体をともなうフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含んでよい。特定の実装の機能を実装するモジュールは、ストレージサブシステム924内のファイルストレージサブシステム926によって、またはプロセッサ914によりアクセスされ得るその他のマシンに記憶される場合がある。
【0086】
バスサブシステム912は、コンピューティングデバイス910の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム912は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する場合がある。
【0087】
コンピューティングデバイス910は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図9に示されたコンピューティングデバイス910の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図9に示されたコンピューティングデバイスよりも多くのまたは図9に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス910の多くのその他の構成が、可能である。
【0088】
本明細書において説明されたシステムがユーザ(もしくは本明細書においては「参加者」と呼ばれることが多い)についての個人情報を収集するかまたは個人情報を利用する可能性がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受信するべきかどうかおよび/またはどのようにして受信するべきかを制御する機会を与えられてよい。また、特定のデータが、個人を特定することができる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定することができる情報がユーザに関して決定され得ないように、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される場合があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理されてよい。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御することができる場合がある。
【0089】
一部の実装においては、自動音声認識(「ASR」)エンジンを使用して、英数字列を含む口で言われた発話をキャプチャするオーディオデータのテキスト表現を生成するステップを含む、1つまたは複数のプロセッサによって実施される方法が提供される。一部の実装において、ASRエンジンを使用して、英数字列を含む口で言われた発話をキャプチャするオーディオデータのテキスト表現を生成するステップは、英数字列に関する文脈情報を決定することを含む。一部の実装において、方法は、文脈情報に基づいて、英数字列のための1つまたは複数の文脈的有限状態トランスデューサを選択するステップを含む。一部の実装において、方法は、ASRエンジンのASRモデル部を使用してオーディオデータを処理することに基づいて、口で言われた発話の1組の認識候補を生成するステップを含む。一部の実装において、方法は、口で言われた発話のテキスト表現を生成するステップであって、テキスト表現が、英数字列を含み、テキスト表現を生成するステップが、生成された1組の認識候補および1つまたは複数の選択された文脈的有限状態トランスデューサに基づく、ステップを含む。
【0090】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【0091】
一部の実装において、ASRモデルは、再帰型ニューラルネットワークトランスデューサ(RNN-T)モデルであり、ASRエンジンは、ビームサーチ部をさらに含む。それらの実装の一部のバージョンにおいて、生成された1組の認識候補および1つまたは複数の選択された文脈的有限状態トランスデューサに基づいて、口で言われた発話のテキスト表現を生成するステップは、1つまたは複数の文脈的有限状態トランスデューサを使用してASRエンジンのビームサーチ部を修正することを含む。それらの実装の一部のバージョンにおいて、1つまたは複数の文脈的有限状態トランスデューサを使用してASRエンジンのビームサーチ部を修正することは、1つまたは複数の文脈的有限状態トランスデューサを使用してASRエンジンのビームサーチ部をシャロウフュージョンによって修正することを含む。それらの実装の一部のバージョンにおいて、生成された1組の認識候補および1つまたは複数の選択された文脈的有限状態トランスデューサに基づいて、口で言われた発話のテキスト表現を生成するステップは、1組の認識候補中の各認識候補に関する対応する確率測度(probability measure)を決定することをさらに含む。一部の実装において、方法は、1つまたは複数の文脈的有限状態トランスデューサを使用して修正されたASRエンジンのビームサーチ部を使用して対応する確率測度を修正するステップをさらに含む。一部の実装において、方法は、認識候補に関する対応する確率測度が1つまたは複数の条件を満たすと判定することに基づいて、1組の認識候補から認識候補を選択するステップをさらに含む。一部の実装において、方法は、選択された認識候補に基づいて、口で言われた発話のテキスト表現を生成するステップをさらに含む。
【0092】
一部の実装において、オーディオデータは、クライアントデバイスの1つまたは複数のマイクロフォンによってキャプチャされる。
【0093】
一部の実装において、英数字列に関する文脈情報を決定することは、口で言われた発話をキャプチャするオーディオデータに基づいており、オーディオデータに基づいて英数字列に関する文脈情報を決定することは、オーディオデータの1つまたは複数の認識された語に基づいて英数字列に関する文脈情報を生成することであって、1つまたは複数の認識された語が、英数字列以外である、生成することを含む。
【0094】
一部の実装において、英数字列に関する文脈情報を決定することは、口で言われた発話の直前にあったレンダリングされたシステムプロンプトに基づき、レンダリングされたシステムプロンプトに基づいて文脈情報を決定することは、レンダリングされたシステムプロンプトに対する少なくとも1つの予測された応答に基づいて文脈情報を決定することを含む。
【0095】
一部の実装において、方法は、1つまたは複数の文脈的有限状態トランスデューサのうちの少なくとも所与の文脈的有限状態トランスデューサを生成するステップをさらに含む。一部の実装において、所与の文脈的有限状態トランスデューサを生成するステップは、英数字列に対応する英数字文法有限状態トランスデューサを選択することを含む。一部の実装において、方法は、ワードピースを構成書記素にマッピングするスペラ有限状態トランスデューサを選択するステップをさらに含む。一部の実装において、方法は、英数字文法有限状態トランスデューサおよびスペラ有限状態トランスデューサに基づいて、重み付けされていないワードピースに基づくアクセプタ文法を生成するステップをさらに含む。それらの実装の一部のバージョンにおいて、所与の文脈的有限状態トランスデューサを生成するステップは、因子演算を使用して重み付けされていないワードピースに基づくアクセプタ文法を処理することに基づいてファクタード有限状態トランスデューサを生成することをさらに含む。一部の実装において、方法は、重み付けされていないワードピースに基づくアクセプタ文法の各弧に一定の重みを適用することに基づいて、所与の文脈的有限状態トランスデューサを生成するステップをさらに含む。
【0096】
一部の実装において、英数字列は、少なくとも1つの数を含み、少なくとも1つの文字を含む。
【0097】
一部の実装において、ASRエンジンのASRモデル部は、エンドツーエンド音声認識モデルである。
【0098】
一部の実装において、ASRエンジンは、1組の訓練インスタンスを使用して訓練され、英数字列は、1組の訓練インスタンス内にない。
【0099】
一部の実装において、ASRエンジンは、1組の訓練インスタンスを使用して訓練され、英数字列は、1組の訓練インスタンスに、閾値未満の回数発生する。
【0100】
一部の実装においては、自動音声認識中に口で言われた発話の英数字列の認識候補の1つまたは複数の確率を修正するのに使用するための文脈的有限状態トランスデューサを生成するステップを含む、1つまたは複数のプロセッサによって実施される方法が提供される。一部の実装において、文脈的有限状態トランスデューサを生成するステップは、英数字列に対応する英数字文法有限状態トランスデューサを選択することを含む。一部の実装において、方法は、ワードピースを構成書記素にマッピングするスペラ有限状態トランスデューサを選択するステップを含む。一部の実装において、方法は、英数字文法有限状態トランスデューサおよびスペラ有限状態トランスデューサに基づいて、重み付けされていないワードピースに基づくアクセプタ文法を生成するステップを含む。一部の実装において、方法は、因子演算を使用して重み付けされていないワードピースに基づくアクセプタ文法を処理することに基づいてファクタード有限状態トランスデューサを生成するステップを含む。一部の実装において、方法は、重み付けされていないワードピースに基づくアクセプタ文法の各弧に一定の重みを適用することに基づいて、文脈的有限状態トランスデューサを生成するステップを含む。
【0101】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソルプロセッシングユニット(TPU))を含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、本明細書において説明された方法のいずれかの実行を引き起こすように構成される。一部の実装は、本明細書において説明された方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得るコンピュータ命令を記憶する1つまたは複数の一時的または非一時的コンピュータ可読ストレージ媒体も含む。
【符号の説明】
【0102】
100 例
102 オーディオデータ
104 文脈エンジン
106 追加情報
108 文脈情報
110 FSTエンジン
112 文脈的FST
114 ASRモデル
115 ASRエンジン
116 テキスト認識候補
118 ASRエンジンのビームサーチ部
150 環境
152 クライアントデバイス
154 ASRエンジン
156 文脈的FST生成エンジン
200 英数字文法FST
300 重み付けされていないワードピースに基づくアクセプタ文法
400 ファクタードFST
500 文脈的バイアス付加FST
600 プロセス
700 プロセス
800 自動化されたアシスタント
802 クライアントコンピューティングデバイス
804 自動化されたアシスタントクライアント
806 ローカルエンジン
808 ローカルエリアおよび/または広域ネットワーク
810 クラウドに基づく自動化されたアシスタント構成要素
812 クラウドに基づくTTSモジュール
814 クラウドに基づくSTTモジュール
816 自然言語プロセッサ
910 コンピューティングデバイス
912 バスサブシステム
914 プロセッサ
916 ネットワークインターフェースサブシステム
920 ユーザインターフェース出力デバイス
922 ユーザインターフェース入力デバイス
924 ストレージサブシステム
925 メモリサブシステム
926 ファイルストレージサブシステム
930 主ランダムアクセスメモリ(「RAM」)
932 読み出し専用メモリ(「ROM」)
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9