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

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

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

特表2022-539674特定話者スピーチモデルを使用した話者認識
<>
  • 特表-特定話者スピーチモデルを使用した話者認識 図1A
  • 特表-特定話者スピーチモデルを使用した話者認識 図1B
  • 特表-特定話者スピーチモデルを使用した話者認識 図2
  • 特表-特定話者スピーチモデルを使用した話者認識 図3
  • 特表-特定話者スピーチモデルを使用した話者認識 図4
  • 特表-特定話者スピーチモデルを使用した話者認識 図5
  • 特表-特定話者スピーチモデルを使用した話者認識 図6
  • 特表-特定話者スピーチモデルを使用した話者認識 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-13
(54)【発明の名称】特定話者スピーチモデルを使用した話者認識
(51)【国際特許分類】
   G10L 15/07 20130101AFI20220906BHJP
   G10L 17/00 20130101ALI20220906BHJP
   G10L 15/06 20130101ALI20220906BHJP
   G10L 15/04 20130101ALI20220906BHJP
   G10L 15/16 20060101ALI20220906BHJP
【FI】
G10L15/07
G10L17/00 200C
G10L15/06 500L
G10L15/04 300Z
G10L15/16
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021574850
(86)(22)【出願日】2019-12-04
(85)【翻訳文提出日】2022-02-15
(86)【国際出願番号】 US2019064501
(87)【国際公開番号】W WO2021112840
(87)【国際公開日】2021-06-10
(81)【指定国・地域】
(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)【発明者】
【氏名】アレクサンダー・グルーエンステイン
(72)【発明者】
【氏名】ハカン・エルドガン
(57)【要約】
本明細書において開示する技法は、クライアントデバイスの任意のユーザに個人化可能な特定話者(SD)スピーチモデルをトレーニングおよび/または利用することを可能にする。さまざまな実装形態は、SDスピーチモデルを使用してターゲットユーザに対応する話者埋め込みをオーディオデータインスタンスとともに処理することによって、SDスピーチモデルをターゲットユーザに合わせて個人化することを含む。SDスピーチモデルを使用して追加のターゲットユーザに対応する追加の話者埋め込みを別のオーディオデータインスタンスとともに処理することによって、SDスピーチモデルを追加のターゲットユーザに合わせて個人化することができる。追加または代替の実装形態は、教師-生徒学習を使用して、SDスピーチモデルを不特定話者スピーチモデルに基づいてトレーニングすることを含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実施される方法であって、
特定話者スピーチモデル(SDスピーチモデル)をトレーニング済み不特定話者スピーチモデル(SIスピーチモデル)に基づいてトレーニングするステップ
を含み、前記SDスピーチモデルが、対応するクライアントデバイスの任意のユーザに個人化可能であり、前記SDスピーチモデルをトレーニングするステップが、
ターゲットユーザの1つまたは複数の口頭による発話を捕捉したオーディオデータインスタンスを識別するステップと、
前記ターゲットユーザの話者埋め込みを決定するステップと、
前記オーディオデータインスタンスを前記ターゲットユーザからのものではない1つまたは複数の追加の音と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成するステップと、
前記SIスピーチモデルを使用して前記オーディオデータインスタンスを処理して、不特定話者出力(SI出力)を生成するステップと、
前記SDスピーチモデルを使用して、前記雑音のあるオーディオデータインスタンスを前記話者埋め込みとともに処理して、特定話者出力(SD出力)を生成するステップと、
前記SI出力および前記SD出力に基づく損失を生成するステップと、
前記生成された損失に基づいて前記SDモデルの1つまたは複数の部分を更新するステップと
を含む、方法。
【請求項2】
前記SDスピーチモデルを前記トレーニング済みSIスピーチモデルに基づいてトレーニングするステップが、
追加のターゲットユーザの1つまたは複数の追加の口頭による発話を捕捉した追加のオーディオデータインスタンスを識別するステップと、
前記追加のターゲットユーザの追加の話者埋め込みを決定するステップと、
前記追加のオーディオデータインスタンスを前記追加のターゲットユーザからのものではない1つまたは複数の追加の音と組み合わせることによって、雑音のある追加のオーディオデータインスタンスを生成するステップと、
前記SIスピーチモデルを使用して前記追加のオーディオデータインスタンスを処理して、追加の不特定話者出力(追加のSI出力)を生成するステップと、
前記SDスピーチモデルを使用して、前記雑音のある追加のオーディオデータインスタンスを前記追加の話者埋め込みとともに処理して、追加の特定話者出力(追加のSD出力)を生成するステップと、
前記追加のSI出力および前記追加のSD出力に基づく追加の損失を生成するステップと、
前記生成された追加の損失に基づいて前記SDスピーチモデルの前記1つまたは複数の部分を更新するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記SDスピーチモデルをトレーニングした後で、
前記SDスピーチモデルを、所与のクライアントデバイスのローカルストレージ内に記憶させ、前記所与のクライアントデバイスにおいてデプロイするステップ
をさらに含み、
前記SDスピーチモデルが前記ローカルストレージ内に記憶されて前記所与のクライアントデバイスにおいてデプロイされたことに応答して、前記所与のクライアントデバイスが、前記トレーニング済みSDスピーチモデルを使用してローカルオーディオデータインスタンスをローカル話者埋め込みとともに処理することに基づいて、1つまたは複数のアクションを実施し、前記ローカル話者埋め込みが、前記クライアントデバイスに関連する別個ユーザに対応する、
請求項1または2に記載の方法。
【請求項4】
前記SIスピーチモデルが不特定話者音声区間検出モデルであり、前記SDスピーチモデルが特定話者音声区間検出モデル(SD VADモデル)であり、前記方法が、
前記クライアントデバイスにおいて、前記ローカルオーディオデータインスタンスを検出するステップであって、前記ローカルオーディオデータインスタンスが、前記クライアントデバイスの前記別個ユーザの1つまたは複数の口頭による発話を捕捉しており、前記ローカルオーディオデータインスタンスが、前記クライアントデバイスの1つまたは複数のマイクロホンを使用して捕捉される、ステップと、
前記クライアントデバイスにおいて、前記SD VADモデルを使用して前記ローカルオーディオデータインスタンスを前記ローカル話者埋め込みとともに処理して、前記別個ユーザの音声区間を前記オーディオデータが含むかどうかを示す出力を生成するステップと、
前記別個ユーザの音声区間を前記オーディオデータが含むとの判定に応答して、前記1つまたは複数のアクションを実施するステップであって、前記1つまたは複数のアクションを実施するステップが、前記ローカルオーディオデータインスタンスを追加のスピーチモデルを使用して処理するステップを含む、ステップと
をさらに含む、請求項3に記載の方法。
【請求項5】
前記追加のスピーチモデルがホットワード検出モデルおよび/または自動スピーチ認識エンジンモデルである、請求項4に記載の方法。
【請求項6】
前記SIスピーチモデルが不特定話者自動スピーチ認識モデルであり、前記SDスピーチモデルが特定話者自動スピーチ認識モデル(SD ASRモデル)であり、前記方法が、
前記クライアントデバイスにおいて、前記ローカルオーディオデータインスタンスを検出するステップであって、前記ローカルオーディオデータインスタンスが、前記クライアントデバイスの前記別個ユーザの1つまたは複数の口頭による発話を捕捉しており、前記ローカルオーディオデータインスタンスが、前記クライアントデバイスの1つまたは複数のマイクロホンを使用して捕捉される、ステップと、
前記クライアントデバイスにおいて、前記SD ASRモデルを使用して前記ローカルオーディオデータインスタンスを前記ローカル話者埋め込みとともに処理して、前記別個ユーザの前記1つまたは複数の口頭による発話のみについての認識されたテキストを示す出力を生成するステップと、
前記出力によって示された前記認識されたテキストに基づいて前記1つまたは複数のアクションを実施するステップと
をさらに含む、請求項3に記載の方法。
【請求項7】
前記SIスピーチモデルが不特定話者ホットワード検出モデルであり、前記SDスピーチモデルが特定話者ホットワード検出モデル(SDホットワード検出モデル)であり、前記方法が、
前記クライアントデバイスにおいて、前記ローカルオーディオデータインスタンスを検出するステップであって、前記ローカルオーディオデータインスタンスが、前記クライアントデバイスの前記別個ユーザの1つまたは複数の口頭による発話を捕捉しており、前記ローカルオーディオデータインスタンスが、前記クライアントデバイスの1つまたは複数のマイクロホンを使用して捕捉される、ステップと、
前記クライアントデバイスにおいて、前記SDホットワード検出モデルを使用して前記ローカルオーディオデータインスタンスを前記話者埋め込みとともに処理して、前記別個ユーザによって話されたホットワードを前記オーディオデータが含むかどうかを示す出力を生成するステップと、
前記別個ユーザによって話された前記ホットワードを前記オーディオデータが含むとの判定に応答して、前記1つまたは複数のアクションを実施するステップであって、前記1つまたは複数のアクションを実施するステップが、前記ローカルオーディオデータインスタンスを追加のスピーチモデルを使用して処理するステップを含む、ステップと
をさらに含む、請求項3に記載の方法。
【請求項8】
前記追加のスピーチモデルが音声区間検出モデルおよび/または自動スピーチ認識モデルである、請求項7に記載の方法。
【請求項9】
前記オーディオデータインスタンスが、前記ターゲットユーザの前記1つまたは複数の口頭による発話を捕捉した前記オーディオデータインスタンスに前記ターゲットユーザが対応することを示すラベルにマッピングされ、前記ターゲットユーザの前記話者埋め込みを決定するステップが、前記ラベルに基づいて前記ターゲットユーザの前記話者埋め込みを選択するステップを含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記ターゲットユーザの前記話者埋め込みを決定するステップが、
前記ターゲットユーザの前記1つまたは複数の口頭による発話を捕捉した前記オーディオデータインスタンスの1つまたは複数の部分を話者埋め込みモデルを使用して処理して、前記ターゲットユーザの前記話者埋め込みを生成するステップ
を含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記ターゲットユーザからのものではない前記1つまたは複数の追加の音が、1つまたは複数の背景雑音を含み、前記オーディオデータインスタンスを前記ターゲットユーザからのものではない前記1つまたは複数の追加の音と組み合わせることによって、前記雑音のあるオーディオデータインスタンスを生成するステップが、前記オーディオデータインスタンスを前記1つまたは複数の背景雑音と組み合わせるステップを含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記ターゲットユーザからのものではない前記1つまたは複数の追加の音が、前記ターゲットユーザではないユーザによって話された1つまたは複数の発話を含み、前記オーディオデータインスタンスを前記ターゲットユーザからのものではない前記1つまたは複数の追加の音と組み合わせることによって、前記雑音のあるオーディオデータインスタンスを生成するステップが、前記オーディオデータインスタンスを前記ターゲットユーザではないユーザによって話された前記1つまたは複数の発話と組み合わせるステップを含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記トレーニング済みSIスピーチモデルが、前記SDスピーチモデルの前記トレーニング中に凍結される、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記SI出力および前記SD出力に基づく前記損失を生成するステップが、前記SI出力および前記SD出力に基づく交差エントロピー損失を生成するステップを含み、前記生成された損失に基づいて前記SDモデルの前記1つまたは複数の部分を更新するステップが、前記交差エントロピー損失に基づいて前記SDモデルの前記1つまたは複数の部分を更新するステップを含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記SDスピーチモデルが前記SIスピーチモデルと同じネットワークトポロジーを有する、請求項1に記載の方法。
【請求項16】
前記SDスピーチモデルが前記SIスピーチモデルと同じネットワークトポロジーを有しておらず、前記SDスピーチモデルトポロジーが前記SIスピーチモデルよりも小型である、請求項1に記載の方法。
【請求項17】
1つまたは複数のプロセッサによって実施される方法であって、
クライアントデバイスのユーザの1つまたは複数の口頭による発話を捕捉したオーディオデータインスタンスを受領するステップであって、前記オーディオデータインスタンスが、前記クライアントデバイスの1つまたは複数のマイクロホンを使用して捕捉される、ステップと、
前記クライアントデバイスのターゲットユーザに対応する話者埋め込みを決定するステップと、
前記オーディオデータインスタンスを前記話者埋め込みとともに、特定話者音声区間検出モデル(SD VADモデル)を使用して処理して、前記クライアントデバイスの前記ターゲットユーザのものである音声区間を前記オーディオデータが含むかどうかを示す出力を生成するステップであって、前記SD VADモデルが、前記クライアントデバイスの任意のユーザに個人化可能である、ステップと、
前記出力に基づいて1つまたは複数のアクションを実施するステップと
を含む、方法。
【請求項18】
前記出力に基づいて前記1つまたは複数のアクションを実施するステップが、
前記出力に基づいて、前記ターゲットユーザのものである音声区間を前記オーディオデータが含むかどうかを判定するステップと、
前記クライアントデバイスの前記ターゲットユーザのものである音声区間を前記オーディオデータが含むとの判定に応答して、前記オーディオデータインスタンスを追加のスピーチモデルを使用して処理するステップと
を含む、請求項17に記載の方法。
【請求項19】
前記追加のスピーチモデルがホットワード検出モデルおよび/または自動スピーチ認識モデルである、請求項18に記載の方法。
【請求項20】
前記出力に基づいて前記1つまたは複数のアクションを実施するステップが、
前記出力に基づいて、前記ターゲットユーザのものである音声区間を前記オーディオデータが含むかどうかを判定するステップと、
前記クライアントデバイスの前記ターゲットユーザのものである音声区間を前記オーディオデータが含まないとの判定に応答して、
前記クライアントデバイスの追加のターゲットユーザに対応する追加の話者埋め込みを決定するステップと、
前記オーディオデータインスタンスを前記追加の話者埋め込みとともに、前記SD VADモデルを使用して処理して、前記クライアントデバイスの前記追加のターゲットユーザのものである音声区間を前記オーディオデータが含むかどうかを示す追加の出力を生成するステップと
を含む、請求項17に記載の方法。
【請求項21】
前記出力に基づいて前記1つまたは複数のアクションを実施するステップが、
前記出力に基づいて、前記ターゲットユーザのものである音声区間を前記オーディオデータが含むかどうかを判定するステップと、
前記クライアントデバイスの前記ターゲットユーザのものである音声区間を前記オーディオデータが含まないとの判定に応答して、前記オーディオデータインスタンスのさらなる任意の処理を実施することなく前記オーディオデータインスタンスを破棄するステップと
を含む、請求項17に記載の方法。
【請求項22】
コンピューティングシステムの1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに請求項1から21のいずれか一項に記載の方法を実施させる命令を含む、コンピュータプログラム。
【請求項23】
クライアントデバイスであって、1つまたは複数のプロセッサを含み、前記1つまたは複数のプロセッサが、前記クライアントデバイスのメモリ内に記憶された命令を実行して、請求項1から21のいずれか一項に記載の方法を実施する、クライアントデバイス。
【請求項24】
コンピューティングシステムの1つまたは複数のプロセッサによって実行可能な、請求項1から21のいずれか一項に記載の方法を実施するための命令を記憶した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(「パーソナルアシスタント」、「モバイルアシスタント」などとしても知られる)自動アシスタントは、ユーザによって、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、自動車システム、スタンドアロンのパーソナルアシスタントデバイスなど、種々のクライアントデバイスを介して、対話されることが可能である。自動アシスタントは、口頭による自然言語入力(すなわち発話)を含むユーザからの入力を受領し、また別のデバイスを制御することによる、かつ/または応答コンテンツ(例えば視覚的および/もしくは聴覚的な自然言語出力)を提供することによるアクションを実施することによって、応答することができる。クライアントデバイスを介して対話される自動アシスタントは、そのクライアントデバイス自体を介して、かつ/またはそのクライアントデバイスとネットワーク通信する1つもしくは複数の遠隔のコンピューティングデバイス(例えばクラウド内のコンピューティングデバイス)を介して、実装することができる。
【0002】
自動アシスタントは、ユーザの口頭による発話に対応するオーディオデータを、対応するテキスト(または他の意味論的表現)に変換することができる。例えば、オーディオデータは、自動アシスタントを含むクライアントデバイスの1つまたは複数のマイクロホンを介して、ユーザの口頭による発話を検出することに基づいて、生成されることが可能である。自動アシスタントは、口頭による発話による生成された音(例えば音素)、発音された音の順序、スピーチのリズム、イントネーションなど、オーディオデータ内に捕捉された口頭による発話のさまざまな特徴を認識しようと試みるスピーチ認識エンジンを含むことができる。さらに、スピーチ認識エンジンは、そのような特徴によって表されたテキストの単語またはフレーズを識別することができる。次いで、口頭による発話に対する応答コンテンツを決定する際に、テキストが自動アシスタントによって(例えば自然言語理解エンジンおよび/またはダイアログ状態エンジンを使用して)さらに処理されることが可能である。スピーチ認識エンジンは、クライアントデバイスによって、かつ/またはクライアントデバイスから遠隔にあるがクライアントデバイスとネットワーク通信する1つもしくは複数の自動アシスタントコンポーネントによって、実装することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書において説明する技法は、特定話者(SD)スピーチモデル(SDスピーチモデル)をトレーニング済み不特定話者(SI)スピーチモデル(SIスピーチモデル)に基づいてトレーニングすることを対象とし、SDスピーチモデルは、トレーニングされると、任意のユーザに個人化可能である。本明細書において説明する技法は、それに加えてまたはその代わりに、トレーニング済みSDスピーチモデルを使用してオーディオデータをターゲットユーザの話者埋め込みとともに処理して、そのターゲットユーザに個人化された出力を生成することを対象とする。出力は、それが、オーディオデータ内に含まれたターゲットユーザの口頭による発話(があればそれ)のみを反映するという点で、ターゲットユーザに個人化される。非限定的な一例として、トレーニング済みSDスピーチモデルがホットワード検出モデルである場合、出力は、オーディオデータが、ターゲットユーザによって話されたホットワードを含むかどうかを反映することになる。したがって、オーディオデータが、異なるターゲットユーザによって話されたホットワードのみを含んでいた場合、出力は、オーディオデータが、ターゲットユーザによって話されたホットワードを含んでいないことを反映することになる。一方、オーディオデータが、ターゲットユーザによって話されたホットワードを含んでいた場合、出力は、オーディオデータが確かに、ターゲットユーザによって話されたホットワードを含んでいることを示すことになる。本明細書において説明するように、トレーニング済みSDスピーチモデルを使用して生成された出力は、トレーニング済みSDスピーチモデルを使用してオーディオデータとともにターゲットユーザの話者埋め込みを処理する結果として、ターゲットユーザに個人化される。したがって、同じトレーニング済みSDスピーチモデル(またはそのコピー)を使用して、オーディオデータとともに異なるターゲットユーザの異なる話者埋め込みを処理して、異なるターゲットユーザに個人化された異なる出力を生成することができる。上記の様式および他の様式で、同じSDスピーチモデル(またはそのコピー)を使用することができ、それを複数のユーザのうちのいずれかの対応するユーザに、それらのユーザのうちの対応するユーザの話者埋め込みを対応するオーディオデータとともに、SDスピーチモデルを使用して処理することを通じて、適応させることができる。
【0004】
一具体例として、Katherineの第1の話者埋め込み、Calebの第2の話者埋め込み、およびKatherineの口頭による発話を捕捉しているがCalebのいかなる口頭による発話も捕捉していないオーディオデータを仮定されたい。SDスピーチモデルを使用して、(a)Katherineの口頭による発話を捕捉しているがCalebのいかなる口頭による発話も捕捉していないオーディオデータ、および(b)(Katherineに対応する)第1の話者埋め込みを処理する場合、Katherineに個人化された出力が生成されることになる。例として、SDスピーチモデルが自動スピーチ認識(ASR)モデルである場合、出力は、(そのオーディオデータ内に捕捉された可能性のある他の任意のユーザの発話についてのいかなる認識されたテキストも示さずに)Katherineの口頭による発話についての認識されたテキストを(直接的または間接的に)示すことができる。一方、SDスピーチモデルを使用して、(a)Katherineの口頭による発話を捕捉しているがCalebのいかなる口頭による発話も捕捉していないオーディオデータ、および(b)(Calebに対応する)第2の話者埋め込みを処理する場合、Calebに個人化された出力が生成されることになる。例として、SDスピーチモデルがASRモデルである場合、出力は、そのオーディオデータについての認識されたテキストを(直接的または間接的に)示すことができない(というのも、すなわちそのオーディオデータはCalebのいかなる口頭による発話も捕捉していないためである)。この具体例の続きとして、Calebの口頭による発話を捕捉しているがKatherineのいかなる口頭による発話も捕捉していない追加のオーディオデータを仮定されたい。この追加のオーディオデータが、SDスピーチモデルを使用して、(Calebの)第2の話者埋め込みとともに処理された場合、Calebに個人化された出力が生成されることになる。例として、SDスピーチモデルがASRモデルである場合、出力は、(その追加のオーディオデータ内に捕捉された可能性のある他の任意のユーザの発話についてのいかなる認識されたテキストも示さずに)Calebの口頭による発話についての認識されたテキストを(直接的または間接的に)示すことができる。一方、その追加のオーディオデータが、SDスピーチモデルを使用して、(Katherineの)第1の話者埋め込みとともに処理された場合、Katherineに個人化された出力が生成されることになる。例として、SDスピーチモデルがASRモデルである場合、出力は、そのオーディオデータについての認識されたテキストを(直接的または間接的に)示すことができない(というのも、すなわちその追加のオーディオデータはKatherineのいかなる口頭による発話も捕捉していないためである)。
【0005】
トレーニング実装形態の多くでは、SDスピーチモデルは、教師-生徒学習技法を使用して、SIスピーチモデルに基づいてトレーニングすることができる。教師-生徒学習では、ソースドメインモデル(すなわちSIスピーチモデル)によって生成される確率を使用して、ターゲットドメインモデル(すなわちSDスピーチモデル)をトレーニングすることができる。SDスピーチモデルをトレーニングするとき、SIスピーチモデルを使用して、1人のターゲット話者の発話を捕捉したクリーンなオーディオデータインスタンスを処理して、SI出力を生成することができる。SDスピーチモデルを使用して、雑音のあるオーディオデータインスタンスをターゲット話者に対応する話者埋め込みとともに処理して、SD出力を生成することができ、その場合、雑音のあるオーディオデータインスタンスは、1人のターゲット話者の発話を捕捉したオーディオデータインスタンスをターゲット話者からのものではない1つまたは複数の追加の音(例えば1人または複数の追加の話者からの発話、背景雑音など)と組み合わせることによって生成される。したがって、SI出力は、SIスピーチモデルを使用してクリーンなオーディオデータインスタンスを処理することに基づいて、かついかなる話者埋め込みも処理することなく、生成される。一方、SD出力は、SDスピーチモデルを使用して、雑音のあるオーディオデータインスタンスおよび話者埋め込みを処理することに基づいて、生成される。SI出力とSD出力との間の差に基づく損失を決定することができる(例えばSI出力およびSD出力に基づく交差エントロピー損失を決定することができる)。多くの実装形態では、決定された損失に基づいてSDスピーチモデルの1つまたは複数の部分を更新することができる。例えば、その損失および(例えばバッチトレーニング技法における)任意選択の追加の損失に基づいてSDスピーチモデルを更新することができる。異なるオーディオデータインスタンスおよび異なる話者埋め込みを用いた多数の反復を通じて、SDスピーチモデルを任意のターゲット話者に個人化可能となるようにトレーニングすることができる。
【0006】
さまざまな実装形態では、SIスピーチモデルは、SDスピーチモデルをトレーニングしている間に凍結させることができる。換言すれば、SIスピーチモデルは決定された損失に基づいて更新されない。種々の実装形態では、SDスピーチモデルはSIスピーチモデルと同じネットワークトポロジーを有することができる。それに加えてまたはその代わりに、SDスピーチモデルは、より小型のネットワークトポロジーなど、SIスピーチモデルとは異なるネットワークトポロジーを有することができる。例えば、SDスピーチモデルはより少数のノードを有することができ、それにより、より小さなメモリ実装面積を有し、かつ/またはモデルはより小さなストレージ実装面積を有する。メモリ実装面積および/またはストレージ実装面積がより小さいことにより、しばしばリソースに制約のあるクライアントデバイスが、トレーニング済みSDスピーチモデルを利用すること、および/またはトレーニング済みSDスピーチモデルを利用する際により少ないメモリリソースを利用することが可能になり得る。
【0007】
いくつかの実装形態では、人間の話者の発話を捕捉したオーディオデータ内のその人間の話者にラベル付けすることができる。話者埋め込みは、ラベル付けされた話者に対応する事前計算された話者埋め込みを選択することによって決定することができる。例えば、Jamesの発話を捕捉したものとしてラベル付けされたオーディオデータインスタンスに対して、Jamesに対応する事前計算された話者埋め込みを選択することができる。それに加えてまたはその代わりに、話者埋め込みは、そのオーディオデータ(および/または同じ話者からのものであると分かっている他のオーディオデータ)の部分を話者埋め込みモデルを使用して処理することによって、生成することができる。換言すれば、話者埋め込みは、ラベル付けされたオーディオデータの必要なくオーディオデータインスタンス自体に基づいて生成することができる。これにより、非構造化データを使用してSDスピーチモデルをトレーニングすることが可能になり得る。
【0008】
本明細書において開示する技法は、自動スピーチ認識(ASR)モデル、音声区間検出(VAD)モデル、ホットワード検出モデル、スピーチ強調モデル、および/またはさらなるスピーチモデルを含む、種々のスピーチモデルのいずれかとともに利用することができる。例として、特定話者VADモデル(SD VADモデル)は不特定話者VADモデル(SI VADモデル)に基づいてトレーニングすることができる。同様に、特定話者ホットワード検出モデルは不特定話者ホットワード検出モデルに基づいてトレーニングすることができる。
【0009】
多くの実装形態では、システムは複数のSDスピーチモデルを含むことができる。例えば、システムは、VADモデル、ホットワード検出モデル、およびASRモデルを含むことができ、その場合、VADモデルを使用して生成された出力を使用して、オーディオデータをホットワード検出モデルを使用して処理するかどうかが判定され、またホットワード検出モデルを使用して生成された出力を使用して、オーディオデータをASRモデルを使用して処理するかどうかが判定される。いくつかの実装形態では、システム内の全てのスピーチモデルが、SDスピーチモデルである。例として、システムは、SD VADモデル、SDホットワード検出モデル、およびSD ASRモデルを含むことができる。他のいくつかの実装形態では、システム内の全てではなく一部のスピーチモデルが、SDスピーチモデルである。例として、システムは、SD VADモデル、SIホットワード検出モデル、およびSI ASRモデルを含むことができ、システムは、SD VADモデル、SDホットワード検出モデル、およびSI ASRモデルを含むことができ、システムは、SI VADモデル、SIホットワード検出モデル、およびSD ASRモデルを含むことができる。多くの実装形態に従って、特定話者スピーチモデルおよび/または不特定話者スピーチモデルの追加または代替の組合せをシステム内で利用することができる。
【0010】
したがって、さまざまな実装形態では、教師-生徒学習を使用して、SDスピーチモデルをSIスピーチモデルに基づいてトレーニングするための技法について記載している。トレーニングインスタンスを完全教師あり様式で生成することは、リソース集約的および/または労働集約的となり得る。例えば、単一のトレーニングインスタンスを生成する際、関連するデータ(例えば1人の話者の口頭による発話を捕捉したオーディオデータ)を人間のレビュアのクライアントデバイスに送信しなければならず、レビュアが注釈を付ける(例えばオーディオデータインスタンス内の1人の話者にラベル付けする)ことができるように、クライアントデバイスのリソースが利用されなければならず、その注釈は、トレーニングインスタンスの生成のために送信し戻されなければならない。本明細書において開示する実装形態では、トレーニングインスタンスを非構造化データ(例えば話者を識別する対応するラベルのないオーディオデータ)を使用して生成することを利用し、それにより、システムが、レビュアにより付けられた注釈を取得する際のレビュアのクライアントデバイスへのデータ送信およびそれらのクライアントデバイスのリソースの利用をすることなく、多数の別個の話者に対応するトレーニングデータを迅速に生成することが可能になる。それに加えてまたはその代わりに、種々の多様なリソースから多数のトレーニングインスタンスを自動的に生成することができ、それにより、そのようなトレーニングインスタンスに対してトレーニングされたSDスピーチモデルを使用して生成される出力の正確さおよび/またはロバスト性が向上することが可能である。多くの実装形態では、SDスピーチモデルは、自動的に生成されたトレーニングデータを使用してトレーニングすることができる。例えば、オーディオデータインスタンスの部分に基づいて話者埋め込みを自動的に生成することができ、そのオーディオデータの口頭による発話をそのオーディオデータ内に捕捉された発話の話者からのものではない追加の雑音と組み合わせることによって、雑音のあるオーディオデータインスタンスを自動的に生成することができる。
【0011】
さらに、SDスピーチモデルは任意のターゲットユーザに、対応する話者埋め込みをオーディオデータとともに処理し、それにより、ターゲットユーザおよびオーディオデータに固有の出力を生成することを通じて、個人化可能とすることができる。したがって、SDスピーチモデルを使用して生成された出力は、そのモデルを使用して(対応するオーディオデータとともに)処理される話者埋め込みに対応するターゲットユーザの発話のみを反映することになる。したがって、SDスピーチモデルを使用して生成されたある特定の出力の発生のみに応答して実施される下流のプロセスは、ターゲットユーザからのものである発話に対してのみ実施されることになる。このことが、そのような下流のプロセスがターゲットユーザ以外のユーザについてアクティブ化されるインスタンス数の低減をもたらし、それにより、そのような下流のプロセスを実施するのに利用されるさまざまなリソースを節約することができる。例えば、SD VADモデルを使用して、オーディオデータをSamの埋め込みとともに処理すると、オーディオデータがSamによる音声区間を含むときに、オーディオデータの下流の処理(例えばASR)を生じさせる出力(例えばしきい値を満足させる確率または他の尺度)が生成するとともに、オーディオデータが(Samによるいかなる音声区間もなく)Deanによる音声区間を含むときに、オーディオデータのさらなる下流の処理を妨げる他の出力(例えばしきい値を満足させない確率または他の尺度)が生成することが可能である。上記の様式および他の様式で、SD VADモデルより下流のASRモデルなど、下流のスピーチモデルを、オーディオデータのより小さな部分を処理するのに使用し、したがって、システムリソース(例えばバッテリ電力、プロセッササイクル、メモリなど)を節約することができる。別の例として、SDスピーチモデルを使用して、オーディオデータをSamの埋め込みとともに処理すると、オーディオデータがSamの発話を含むときに、そのような口頭による発話についての認識されたテキストを(直接的または間接的に)示す出力が生成するとともに、オーディオデータが(たとえそれが別のユーザからの口頭による発話を含んでいる可能性があっても)Samのいかなる口頭による発話も欠いているときに、認識されたテキストを示さない出力が生成することが可能である。したがって、認識されたテキストを処理する自然言語理解(NLU)モデルならびに/または認識されたテキストおよび/もしくはNLU処理に基づいて応答を生成する(かつ/もしくは他の応答アクションを実施する)遂行エンジンは、SDスピーチモデルが認識されたテキストを示すときにのみ(すなわちオーディオデータがSamからの口頭による発話を含むときにのみ)、利用されることになる。したがって、NLU処理および/または遂行エンジンに関連するリソースは、SDスピーチモデルが認識されたテキストを示すときにのみ(すなわちオーディオデータがSamからの口頭による発話を含むときにのみ)、利用されることになる。それに加えてまたはその代わりに、SDスピーチモデルは、その対応するSIスピーチモデルよりも小型のネットワークトポロジーを有することができる。より小型のトポロジーをもつネットワークは、より小さなメモリ実装面積および/またはより小さなストレージ実装面積を有することができる。より小型のネットワークトポロジーをもつスピーチモデルを利用すると、メモリリソース、ストレージリソース、および/または電力リソースの節約などの技術的利点をもたらすことができ、それは特に、制限されたリソースをもつクライアントデバイスおよび/または他のコンピューティングデバイスにとって有益となり得る。
【0012】
上の説明は、本開示のいくつかの実装形態の概要として提供されたものである。それらの実装形態についてのさらなる説明、および他の実装形態について、下でより詳細に説明する。
【図面の簡単な説明】
【0013】
図1A】本明細書において開示するさまざまな実装形態による、特定話者スピーチモデルを使用してオーディオデータおよび話者埋め込みを処理する例を示す図である。
図1B】本明細書において開示するさまざまな実装形態による、特定話者スピーチモデルを不特定話者スピーチモデルに基づいてトレーニングする例を示す図である。
図2】さまざまな実装形態を実装することのできる例示的な環境を示すブロック図である。
図3】本明細書において開示する実装形態による例示的なプロセスを示すフローチャートである。
図4】本明細書において開示する実装形態による別の例示的なプロセスを示す別のフローチャートである。
図5】本明細書において開示する実装形態による別の例示的なプロセスを示す別のフローチャートである。
図6】さまざまな実装形態を実装することのできるさらに別の例示的な環境を示す別のブロック図である。
図7】コンピューティングデバイスの例示的なアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0014】
ここで図に移ると、図1Aは、本明細書において開示する実装形態による、SDスピーチモデルを使用してオーディオデータをいくつかの異なる話者埋め込みとともに処理する例を示す。図1Aは、オーディオデータ102を含み、これは「話者A」および「話者B」による重なり合った発話を含む。オーディオデータ102内の矢印は時間を示し、オーディオデータ102内の3つの斜め網掛け領域は、オーディオデータの、「話者A」がそれぞれに対応する発話を行っているセグメントを表し、オーディオデータ102内の2つの直交平行線網掛け領域は、オーディオデータの、「話者B」がそれぞれに対応する発話を行っているセグメントを表す。図示の例では、「話者A」の発話は、少なくとも一部には「話者B」の発話と重なり合っている。図1Aは、SDスピーチモデル112を使用してオーディオデータ102および「話者A」に対応する話者埋め込みA 110を処理して、出力A 114を生成する例104をさらに示す。SDスピーチモデル112は、クライアントデバイスの任意のユーザに個人化可能である。多くの実装形態では、話者埋め込みを利用して、SDスピーチモデル112を別個ユーザに合わせて個人化することができる。例えば、話者埋め込みA 110を使用して、SDスピーチモデル112を「話者A」に合わせて個人化することができる。「話者A」の発話は、オーディオデータ102内に捕捉されており、したがって、SDスピーチモデル112を使用してオーディオデータ102を話者埋め込みA 110とともに処理すると、オーディオデータ102が「話者A」の発話を含むことを示す出力A 114が生成することが可能である。
【0015】
多くの実装形態では、オーディオデータを追加および/または代替の話者埋め込みとともに処理することによって、同じSDスピーチモデルを追加および/または代替の話者に合わせて個人化することができる。図1Aは、SDスピーチモデル112を使用してオーディオデータ102を「話者B」に対応する話者埋め込みB 116とともに処理して、出力B 118を生成する別の例106を示す。オーディオデータ102はさらに、「話者B」の発話も捕捉しており、したがって、SDスピーチモデル112を使用してオーディオデータ102を話者埋め込みB 116とともに処理すると、出力B 118が生成することが可能であり、その場合、出力B 118は、オーディオデータ102が「話者B」の発話を含むことを示す。
【0016】
図1Aは、SDスピーチモデル112を使用してオーディオデータ102を「話者C」に対応する話者埋め込みC 120とともに処理して、出力C 122を生成する例108も示す。図示の例では、オーディオデータ102内に「話者C」の発話が全く(またはごくわずかしか)捕捉されていない。したがって、SDスピーチモデル112を使用してオーディオデータ102を話者埋め込みC 120とともに処理することによって生成された出力C 122は、オーディオデータ102内に「話者C」の発話が捕捉されていないことを示すことができる。
【0017】
図1Aの例は、同じオーディオデータインスタンス102を処理しているが、多くの実装形態に従って、追加および/または代替のオーディオデータインスタンスを処理することができる。オーディオデータは、1人または複数の追加および/または代替の話者からの口頭による発話を捕捉することができる。例えば、オーディオデータは、3人のユーザ、4人のユーザ、5人のユーザなどによって話された発話を捕捉することができる。オーディオデータは、それに加えてまたはその代わりに、クライアントデバイスのユーザによって話されたのではない背景雑音を捕捉することができる。例えば、オーディオデータは、犬がほえる声、電話の鳴る音、煙探知機のビープ音、および/またはさらなる雑音を捕捉することができる。オーディオデータ102は、少なくとも一部には「話者B」の発話と重なり合った「話者A」の発話を含む。しかし、これは例にすぎず、SDスピーチモデルを使用して、別個の話者の重なり合っていない発話を捕捉したオーディオデータを処理することができる。
【0018】
多くの実装形態に従って、種々のタイプのスピーチモデルを利用することができる(例えばSD VADモデル、SD ASRモデル、SDホットワードモデル、SDスピーチ強調モデルなど)。種々のタイプのSDスピーチモデルを使用してオーディオデータおよび話者埋め込みを処理すると、SDスピーチモデルのタイプに合った種々のタイプの出力が生成することが可能である。例えば、SD VADモデルを使用して生成された出力は(SI VADモデルを使用して生成された、処理されたオーディオデータ内の発話の任意の話者の音声区間を示す出力とは対照的に)、処理された話者埋め込みに対応する話者の音声区間が、処理されたオーディオデータ内に存在することを示すことができる。SD ASRモデルを、(SI ASRモデルを使用して生成された、処理されたオーディオデータ内に捕捉された任意の発話のテキスト表現をもたらす出力とは対照的に)処理された話者埋め込みに対応する話者によって話された発話に対応するテキスト表現をもたらす出力を生成するのに使用することができる。同様に、SDホットワード検出モデルを使用して、(処理されたオーディオデータ内に任意のユーザによって話されたホットワードが捕捉されていることを示すSIホットワード検出モデルの出力とは対照的に)処理されたオーディオデータ内に処理された話者埋め込みに対応する話者によって話されたホットワードが捕捉されているかどうかを示す出力を生成することができる。さらに、SDスピーチ強調モデルは、(処理されたオーディオデータ内に捕捉された任意の発話に対応する強調されたスピーチを生成するために使用することのできるSIスピーチ強調モデルとは対照的に)処理された話者埋め込みに対応する強調されたスピーチを生成するために使用することができる。
【0019】
いくつかの実装形態では、システムは複数のスピーチモデルを含むことができる。例えば、システムは、VADモデル、ホットワード検出モデル、およびASRモデルを含むことができ、その場合、VADモデルを使用して生成された出力を使用して、オーディオデータをホットワード検出モデルを使用して処理するかどうかが判定され、またホットワード検出モデルを使用して生成された出力を使用して、オーディオデータをASRモデルを使用して処理するかどうかが判定される。いくつかの実装形態では、システム内の全てのスピーチモデルが、SDスピーチモデルである。例として、システムは、SD VADモデル、SDホットワード検出モデル、およびSD ASRモデルを含むことができる。他のいくつかの実装形態では、システム内の全てではなく一部のスピーチモデルが、SDスピーチモデルである。例として、システムは、SD VADモデル、SIホットワード検出モデル、およびSI ASRモデルを含むことができ、システムは、SD VADモデル、SDホットワード検出モデル、およびSI ASRモデルを含むことができ、システムは、SI VADモデル、SIホットワード検出モデル、およびSD ASRモデルを含むことができる。多くの実装形態に従って、特定話者スピーチモデルおよび/または不特定話者スピーチモデルの追加または代替の組合せをシステム内で利用することができる。
【0020】
図1Bは、SDスピーチモデル158をSIスピーチモデル154に基づいてトレーニングする例150を示す。多くの実装形態では、教師-生徒学習技法を、SDスピーチモデル158をSIスピーチモデル154に基づいてトレーニングするのに利用することができる。多くの実装形態では、オーディオデータインスタンス152および雑音のあるオーディオデータインスタンス156を、SDスピーチモデル158をトレーニングするのに利用することができる。オーディオデータ152は、ターゲット話者ではない話者からのいかなる発話も捕捉することなく(もしくはターゲット話者ではない話者からの発話をごくわずかしか捕捉することなく)、かつ/または背景雑音を捕捉することなく(もしくは背景雑音をごくわずかしか捕捉することなく)、ターゲット話者の口頭による発話を捕捉することができる。例えば、オーディオデータ152は、Mollyによって話された発話を捕捉することができ、Mollyではない話者からの発話を捕捉しないことができ、かつ/またはいかなる背景雑音も捕捉しないことができる。雑音のあるオーディオデータ156は、ターゲットユーザによって話された発話をターゲットユーザによって話されたのではない追加の雑音と組み合わせることによって生成することができる。例えば、雑音のあるオーディオデータ156は、Mollyによって話された発話をTimmyによって話された発話と組み合わせることによって生成することができる。
【0021】
SIスピーチモデル154を使用して、オーディオデータ152(すなわちMollyからの発話のみを捕捉したオーディオデータ)を処理して、SI出力162を生成することができる。SDスピーチモデル158を使用して、雑音のあるオーディオデータ156(すなわちMollyからの発話およびTimmyからの発話を捕捉したオーディオデータ)をMollyに対応する話者埋め込み160とともに処理して、SD出力164を生成することができる。いくつかの実装形態では、話者埋め込み160は、オーディオデータ152内に捕捉された話者を示すラベルに基づいて決定することができる(例えば、Mollyによって話された発話をオーディオデータ152が捕捉していることを示すラベルを使用して、Mollyに対応する事前計算された話者埋め込みを選択することができる)。さまざまな実装形態では、話者埋め込み160は、オーディオデータ152の1つまたは複数の部分を話者埋め込みモデル(図示せず)を使用して処理することによって、生成することができる。例えば、オーディオデータ152の最初の0.5秒、オーディオデータ152の最初の1.5秒、オーディオデータ152の最後の2秒、オーディオデータ152の最初の1秒および最後の1秒、オーディオデータ152全体、ならびに/またはオーディオデータ152のさらなる部分を、話者埋め込みモデルを使用して処理して、話者埋め込み160を生成することができる。多くの実装形態では、話者埋め込み160は、オーディオデータの話者の、dベクトル、iベクトル、および/またはさらなる表現とすることができる。
【0022】
多くの実装形態では、SI出力162およびSD出力164に基づく損失を生成することができる。例えば、SI出力162およびSD出力164に基づく交差エントロピー損失を生成することができる。いくつかの実装形態では、最大尤度損失、平均二乗誤差損失、および/または追加もしくは代替の損失を含む、種々の損失を生成することができる。損失166に基づいてSDスピーチモデル158の1つまたは複数の部分を更新する(例えばバックプロパゲーションを使用して更新する)ことができる。種々の実装形態では、SIスピーチモデル154は、SDスピーチモデル158をトレーニングしている間に凍結させることができる。換言すれば、SIスピーチモデル154の部分が損失166に基づいて更新されない。多くの実装形態では、SDスピーチモデル158はSIスピーチモデル154と同じネットワークトポロジーを有することができる。しかし、追加および/または代替の実装形態は、SIスピーチモデル154とは異なるネットワークトポロジーをもつSDスピーチモデル158を含むことができる。例えば、SDスピーチモデル158は、SDスピーチモデル158がSIスピーチモデル154よりも少数のノードを有し、それにより、SDスピーチモデル158がSIスピーチモデル154よりも小さなメモリ実装面積および/または小さなストレージ実装面積を有するような、より小型のネットワークトポロジーを有することができる。
【0023】
図2に移ると、さまざまな実装形態を実装することのできる例示的な環境が示されている。図2は、クライアントコンピューティングデバイス202を含む。多くの実装形態では、クライアントデバイス202は、自動アシスタントのインスタンス(図示せず)を実行することができる。クライアントコンピューティングデバイス202は、例えば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(例えば車両内通信システム、および車両内エンターテインメントシステム、車両内ナビゲーションシステム)、スタンドアロンの対話型スピーカ、スマートテレビジョンなどのスマートアプライアンス、ならびに/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えばコンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想現実コンピューティングデバイスもしくは拡張現実コンピューティングデバイス)とすることができる。追加および/または代替のクライアントコンピューティングデバイスが可能にされてよい。
【0024】
図2に示す例示的な環境は、個人化エンジン204、話者埋め込みエンジン206、トレーニングエンジン208、SDスピーチモデル158、SIスピーチモデル154、ならび/または追加のエンジンおよび/もしくは追加のモデル(図示せず)を含む。個人化エンジン204、話者埋め込みエンジン206、およびトレーニングエンジン208は、本明細書において説明する技法がインターフェースすることのできる例示的なコンポーネントである。図2の1つまたは複数のエンジン204、206、および208によって実施される動作は、複数のコンピューティングシステムにわたって分散されてよい。いくつかの態様では、エンジン204、206、および208、ならびに/もしくはモデル158および154の1つもしくは複数の態様が、単一のシステムに組み合わされてよく、かつ/または1つもしくは複数の態様が、クライアントデバイス202上に実装されてよい。例えば、それらの実装形態のいくつかでは、個人化エンジン204の態様が話者埋め込みエンジン206の態様と組み合わされてよい。多くの実装形態によるエンジンはそれぞれ、例えば通信ネットワークを通じて通信する1つまたは複数のコンピューティングデバイス内に実装されてよい。通信ネットワークは、インターネットなどの広域ネットワーク、Wi-Fi LAN、メッシュネットワークなどの1つもしくは複数のローカルエリアネットワーク(「LAN」)、および/または1つもしくは複数のバスサブシステムを含んでよい。通信ネットワークは、任意選択で、1つまたは複数の標準的な通信技術、プロトコル、および/またはプロセス間通信技法を利用してよい。
【0025】
トレーニングエンジン208は、SDスピーチモデル158をSIスピーチモデル154に基づいてトレーニングすることができる。多くの実装形態では、トレーニングエンジン208は、教師-生徒学習技法を利用して、SDスピーチモデル158をSIスピーチモデル154に基づいてトレーニングすることができる。例えば、トレーニングエンジン208は、1つまたは複数のトレーニングインスタンス(図示せず)を選択し、SDスピーチモデル158およびSIスピーチモデル154を使用してそのトレーニングインスタンスを処理することができる。多くの実装形態では、トレーニングインスタンスは、(1)ターゲット話者の口頭による発話を捕捉したクリーンなオーディオデータインスタンス、(2)ターゲット話者の口頭による発話およびターゲット話者によって話されたのではない雑音を捕捉した、雑音のあるオーディオデータインスタンス、ならびに(3)ターゲット話者に対応する話者埋め込みを含むことができる。トレーニングエンジン208は、SIスピーチモデル154を使用して、ターゲット話者の口頭による発話を捕捉したクリーンなオーディオデータインスタンスを処理して、SI出力を生成することができる。それに加えて、トレーニングエンジン208は、SDスピーチモデル158を使用して、雑音のあるオーディオデータインスタンスを話者埋め込みとともに処理して、SD出力を生成することができる。多くの実装形態では、トレーニングエンジン208は、SD出力とSI出力との間の差に基づく損失(例えば交差エントロピー損失)を生成し、生成された損失に基づいてSDスピーチモデル158の1つまたは複数の部分を更新することができる。換言すれば、SIスピーチモデル154が凍結されている間、SDスピーチモデル158の部分が更新される。種々の実装形態では、トレーニングインスタンスは、図3のプロセス300に従ってトレーニングインスタンスエンジン(図示せず)を使用して生成することができる。いくつかの実装形態では、トレーニングエンジン208は、図4のプロセス400に従ってSDスピーチモデル158をトレーニングすることができる。
【0026】
個人化エンジン204は、SDスピーチモデル158を使用して、クライアントデバイス202のマイクロホン(図示せず)を使用して捕捉されたオーディオデータなどのオーディオデータを話者埋め込みとともに処理して、特定話者出力を生成することができる。多くの実装形態では、話者埋め込みは、話者埋め込みエンジン206を使用して選択することができる。例えば、話者埋め込みエンジン206は、クライアントデバイス202に関連するユーザプロファイルの話者埋め込みを選択することができる。種々の実装形態では、話者埋め込みは、デジタルシステムを用いたユーザの登録(例えばクライアントデバイス202を用いた登録および/または追加のデジタルシステムを用いた登録)中に、事前計算することができる。
【0027】
次に図3に移ると、本明細書において開示するさまざまな実装形態による、SDスピーチモデルをSIスピーチモデルに基づいてトレーニングするのに使用するトレーニングインスタンスを生成するプロセス300を示すフローチャートが示されている。便宜上、フローチャートの動作については、その動作を実施するシステムを参照して説明する。このシステムは、1つまたは複数のプロセッサ(例えばCPU、GPU、および/またはTPU)など、1つまたは複数のコンポーネントを含んでよい。プロセス300の動作は特定の順序で示されているが、これは限定することを意図するものではない。1つまたは複数の動作が並べ替え、省略、および/または追加されてよい。
【0028】
ブロック302において、システムは、話者の口頭による発話を捕捉したオーディオデータインスタンスを選択する。多くの実装形態では、選択されたオーディオデータインスタンスは、話者からのものではない追加の雑音を全く(またはごくわずかしか)捕捉していない。
【0029】
ブロック304において、システムは、その話者の話者埋め込みを決定する。いくつかの実装形態では、オーディオデータインスタンスに話者をラベル付けすることができ、システムは、そのラベルに基づいて、事前計算された話者埋め込みを選択することができる。多くの実装形態では、システムは、オーディオデータインスタンスの部分を話者埋め込みモデルを使用して処理することによって、話者埋め込みを生成することができる。これにより、システムが、話者の識別情報が不明の非構造化データを使用してトレーニングインスタンスを生成することが可能になり得る。
【0030】
ブロック306において、システムは、(1)その話者によって話された発話および(2)その話者によって話されたのではない追加の雑音を捕捉した、雑音のあるオーディオデータインスタンスを生成する。多くの実装形態では、システムは、ブロック302において選択されたオーディオデータインスタンスを、そのオーディオデータインスタンスの発話の話者ではない1人または複数の追加の話者によって話された1つまたは複数の発話と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成することができる。多くの実装形態では、システムは、ブロック302において選択されたオーディオデータインスタンスを背景雑音(すなわちいかなる話者によって話されたのでもない雑音)と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成することができる。それに加えてまたはその代わりに、システムは、追加の話者によって話された発話ならびに背景雑音をそのオーディオデータインスタンス内の発話と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成することができる。
【0031】
ブロック308において、システムは、(1)オーディオデータインスタンス、(2)雑音のあるオーディオデータインスタンス、および(3)話者埋め込みを、トレーニングインスタンスとして記憶する。
【0032】
ブロック310において、システムは、追加のトレーニングインスタンスを生成するかどうかを判定する。生成するとの判定をした場合、システムは再びブロック302に進み、1人の話者の口頭による発話を捕捉した追加のオーディオデータインスタンスを選択してから、その追加のオーディオデータインスタンスを使用してブロック304、306、および308に進む。いくつかの実装形態では、追加のオーディオデータインスタンス内の発話の話者は、先のオーディオデータ内の発話の話者と同じ話者である。いくつかの実装形態では、追加のオーディオデータインスタンス内の発話の話者は、先のオーディオデータインスタンス内の発話の話者と同じ話者ではない。ブロック310において、システムがいかなる追加のトレーニングインスタンスも生成しないとの判定をした場合、プロセスは終了する。
【0033】
次に図4に移ると、本明細書において開示するさまざまな実装形態による、SDスピーチモデルをトレーニングするプロセス400を示すフローチャートが示されている。便宜上、フローチャートの動作については、その動作を実施するシステムを参照して説明する。このシステムは、1つまたは複数のプロセッサ(例えばCPU、GPU、および/またはTPU)など、1つまたは複数のコンポーネントを含んでよい。プロセス400の動作は特定の順序で示されているが、これは限定することを意図するものではない。1つまたは複数の動作が並べ替え、省略、および/または追加されてよい。
【0034】
ブロック402において、システムは、話者の、(1)その話者によって話された発話を捕捉したオーディオデータインスタンス、(2)その話者によって話された発話およびその話者によって話されたのではない追加の雑音を捕捉した、雑音のあるオーディオデータインスタンス、ならびに(3)その話者に対応する話者埋め込みを含む、トレーニングインスタンスを選択する。多くの実装形態では、トレーニングインスタンスは、本明細書において説明した図3のプロセス300に従って生成することができる。
【0035】
ブロック404において、システムは、SIスピーチモデルを使用してオーディオデータインスタンスを処理して、SI出力を生成する。
【0036】
ブロック406において、システムは、SDスピーチモデルを使用して、雑音のあるオーディオデータインスタンスならびに話者埋め込みを処理して、SD出力を生成する。
【0037】
ブロック408において、システムは、SI出力およびSD出力に基づく損失を生成する。多くの実装形態では、システムは、交差エントロピー損失を生成することができる。
【0038】
ブロック410において、システムは、決定された損失に基づいてSDスピーチモデルの1つまたは複数の部分を更新する。例えば、システムは、バックプロパゲーションを利用して、決定された損失に基づいてSDスピーチモデルの部分を更新することができる。多くの実装形態では、決定された損失は、SDスピーチモデルのみの部分を更新するために使用され、SIスピーチモデルの部分を更新するために使用されない。換言すれば、SIスピーチモデルは、SDスピーチモデルのトレーニング中に凍結される。
【0039】
ブロック412において、システムは、追加のトレーニングを実施するかどうかを判定する。実施するとの判定をした場合、システムは再びブロック402に進み、追加のトレーニングインスタンスを選択し、次いで追加のトレーニングインスタンスに基づいてブロック404、406、408、および410の反復を実施し、次いで、ブロック412の追加の反復を実施する。いくつかの実装形態では、システムは、1つまたは複数の追加の未処理のトレーニングインスタンスがある場合、かつ/または他の基準がまだ満たされていない場合、さらに多くを実施するとの判定をすることができる。他の基準は、例えば、しきい値数のエポックが生じたかどうか、かつ/またはしきい値期間のトレーニングが生じたかどうかを含むことができる。プロセス400については、非バッチ学習技法に即して説明しているが、バッチ学習がそれに加えてかつ/またはその代わりに利用されてよい。ブロック412において、システムが追加のトレーニングを実施しないとの判定をした場合、プロセスは終了する。
【0040】
次に図5に移ると、本明細書において開示するさまざまな実装形態による、捕捉されたオーディオデータを話者埋め込みとともに、SDスピーチモデルを使用して処理して出力を生成し、その出力に基づいてアクションを実施する、プロセス500を示すフローチャートが示されている。便宜上、フローチャートの動作については、その動作を実施するシステムを参照して説明する。このシステムは、1つまたは複数のプロセッサ(例えばCPU、GPU、および/またはTPU)など、1つまたは複数のコンポーネントを含んでよい。プロセス500の動作は特定の順序で示されているが、これは限定することを意図するものではない。1つまたは複数の動作が並べ替え、省略、および/または追加されてよい。
【0041】
ブロック502において、システムは、クライアントデバイスのユーザの口頭による発話を捕捉したオーディオデータインスタンスを受領する。いくつかの実装形態では、オーディオデータインスタンスは、ユーザの口頭による発話を、そのユーザによって話されたのではない追加の雑音を全く(またはごくわずかしか)伴わずに捕捉している。それに加えてまたはその代わりに、オーディオデータインスタンスは、ユーザの口頭による発話とともに追加の雑音を捕捉することができる。例えば、オーディオデータインスタンスは、ユーザによって話された発話に加えて、1人もしくは複数の追加の話者によって話された発話および/または背景雑音を捕捉することができる。
【0042】
ブロック504において、システムは、クライアントデバイスのターゲットユーザの話者埋め込みを選択する。多くの実装形態では、話者埋め込みは、話者埋め込みに関連するユーザのクライアントデバイスにおいてオーディオデータが捕捉された後で選択することができる。それに加えてまたはその代わりに、話者埋め込みは、所与のユーザの(例えば以前の発話からの音声指紋採取(voice fingerprinting)および/または他のバイオメトリック照合を使用した)照合に基づいて選択することができる。種々の実装形態では、話者埋め込みは、デジタルシステムを用いたユーザの登録(例えば自動アシスタントを用いたユーザの登録)中に、生成することができる。多くの実装形態では、クライアントデバイスは、単一の話者埋め込み(例えばクライアントデバイスの所有者に対応する話者埋め込み)に関連することができる。例えば、モバイル電話が、そのモバイル電話の所有者に関連する話者埋め込みを記憶することができる。それに加えてまたはその代わりに、クライアントデバイスは、複数の話者埋め込みに関連することができ、システムは、決定された現在アクティブなユーザに基づいて話者埋め込みを選択することができる。多くの実装形態では、現在アクティブなユーザは、顔認識技法、音声認識技法、および/またはさらなるバイオメトリック認識技法に基づいて決定することができる。
【0043】
ブロック506において、システムは、SDスピーチモデルを使用して(1)オーディオデータインスタンスおよび(2)話者埋め込みを処理して、出力を生成する。多くの実装形態では、出力は、話者埋め込みに対応する話者によって話された発話をオーディオデータが捕捉していることを示すことができる。それに加えてまたはその代わりに、出力は、話者埋め込みに対応する話者によって話された発話をオーディオデータが捕捉していないことを示すことができる。一例として、ユーザであるJohnが、アシスタントと複数のダイアログセッションを持つことができる。システムは、Johnによって話された呼び出しフレーズに基づいてJohnがアクティブなユーザであると決定することができ、それにより、システムはブロック504においてJohnに関連する話者埋め込みを選択することができる。ダイアログセッション中にJohnが話していないときにBobがJohnに話し始めた場合、システムは、Bobによって話された対話を捕捉したオーディオデータをJohn(アクティブなユーザ)に対応する話者埋め込みとともに、例えばSD VADモデルを使用して処理して、Bobによって話された発話を捕捉したオーディオデータの部分はJohnが話したものではなかったことを示す出力を生成することができる。
【0044】
ブロック508において、システムは、出力に基づいて1つまたは複数のアクションを実施する。例として、ブロック506におけるSDスピーチモデルはSD VADモデルとすることができ、その場合、生成された出力は、オーディオデータ内にターゲット話者による音声区間(すなわち口頭による発話)が捕捉されているかどうかを示す。それとは対照的に、SI VADモデルは、オーディオデータ内に任意の話者の音声区間(すなわち口頭による発話)が捕捉されているかどうかを示す出力を生成するのに使用することができる。ブロック506においてSD VADモデルを使用して生成された出力が、ターゲットユーザによって話された発話をオーディオデータが捕捉していることを示すとき、ターゲットユーザによって話された発話を捕捉したオーディオデータおよび/またはオーディオデータの部分を、SD VADモデルより下流の追加および/または代替のスピーチモデル(例えばSD VADモデルより下流のホットワード検出モデル、SD VADモデルより下流のASRモデルなど)を使用して処理することができる。いくつかの実装形態では、ブロック506においてSDスピーチモデルを使用して生成された出力が、ターゲットユーザによって話された発話をオーディオデータが捕捉していないことを示すとき、システムは再びブロック504に進んで、追加のターゲットユーザの追加の話者埋め込みを選択し、ブロック506において、SDスピーチモデルを使用してオーディオデータインスタンスおよび追加の話者埋め込みを処理することができる。それに加えてまたはその代わりに、システムは、SDスピーチモデルの複数のインスタンスを含むことができ、オーディオデータを複数の話者埋め込みとともに、SDスピーチモデルを使用して並列に処理することができる(例えばシステムは、オーディオデータを話者埋め込みAとともに、SDスピーチモデルの第1のインスタンスを使用して処理し、それと並行してシステムは、オーディオデータを話者埋め込みBとともに、SDスピーチモデルの第2のインスタンスを使用して処理することができる)。種々の実装形態では、ブロック506においてSDスピーチモデルを使用して生成された出力が、ターゲットユーザによって話された発話をオーディオデータが捕捉していないことを示すとき、システムはさらなるオーディオデータを待機することができる。
【0045】
それに加えてまたはその代わりに、ブロック506におけるSDスピーチモデルはSDホットワード検出モデルとすることができ、その場合、生成された出力は、ターゲットユーザによって話された1つまたは複数のホットワードをオーディオデータが捕捉しているかどうかを示す。それとは対照的に、SIホットワード検出モデルを使用して生成された出力は、任意のユーザによって話された1つまたは複数のホットワードをオーディオデータが捕捉しているかどうかを示すことができる。ブロック506においてSDホットワード検出モデルを使用して生成された出力が、ターゲットユーザによって話されたホットワードをオーディオデータが捕捉していることを示すとき、ターゲットユーザによって話された発話を捕捉したオーディオデータおよび/またはオーディオデータの部分を、SDホットワード検出モデルより下流の追加および/または代替のスピーチモデル(例えばSDホットワード検出モデルより下流のVADモデル、SDホットワード検出モデルより下流のASRモデルなど)を使用して処理することができる。いくつかの実装形態では、ブロック506においてSDホットワード検出モデルを使用して生成された出力が、ターゲットユーザによって話されたホットワードをオーディオデータが捕捉していないことを示すとき、システムは再びブロック504に進んで、追加のターゲットユーザの追加の話者埋め込みを選択し、ブロック506において、SDスピーチモデルを使用してオーディオデータインスタンスおよび追加の話者埋め込みを処理することができる。種々の実装形態では、ブロック506においてSDホットワード検出モデルを使用して生成された出力が、ターゲットユーザによって話されたホットワードをオーディオデータが捕捉していないことを示すとき、システムはさらなるオーディオデータを待機することができる。
【0046】
さらに、ブロック506におけるSDスピーチモデルはSD ASRモデルとすることができ、その場合、生成された出力は、ターゲットユーザによって話された発話を捕捉したテキスト表現をもたらし、ターゲットユーザではないユーザによって話された発話を除外する。それとは対照的に、SI ASRモデルは、オーディオデータ内に捕捉された任意の話者の発話のテキスト表現を生成するのに使用することができる。ブロック506においてSD ASRモデルを使用して生成された出力が、ターゲットユーザによって話された発話をオーディオデータが捕捉していることを示す(例えば出力が口頭による発話のテキスト表現を含む)とき、そのテキスト表現をシステムによって使用して、アクションを実施することができる。例えば、ターゲットユーザが「居間の明かりをオフにして」と話すことができ、これはSD ASRモデルを使用してテキスト表現に変換することができる。テキスト表現は、居間に位置する1つまたは複数のネットワーク化されたスマート電球を制御するためのシステムの追加の部分によって処理されることが可能である。いくつかの実装形態では、ブロック506においてSD ASRモデルを使用して生成された出力が、ターゲットユーザによって話された発話をオーディオデータが捕捉していないことを示す(例えば出力が口頭による発話の任意のテキスト表現を欠いており、空(empty)、ヌルなどであるとき)とき、システムは再びブロック504に進み、追加のターゲットユーザの追加の話者埋め込みを選択し、ブロック506においてSDスピーチモデルを使用してオーディオデータインスタンスおよび追加の話者埋め込みを処理することができる。種々の実装形態では、ブロック506においてSD ASRモデルを使用して生成された出力が、ターゲットユーザによって話された発話をオーディオデータが捕捉していないことを示すとき、システムはさらなるオーディオデータを待機することができる。
【0047】
次に図6に移ると、さまざまな実装形態を実施することのできる例示的な環境が示されている。図6について最初に説明し、図6はクライアントコンピューティングデバイス602を含み、このクライアントコンピューティングデバイス602は、自動アシスタントクライアント604のインスタンスを実行する。1つまたは複数のクラウドベースの自動アシスタントコンポーネント610を、全体的に608で示す1つまたは複数のローカルエリアネットワークおよび/または広域ネットワーク(例えばインターネット)を介してクライアントデバイス602に通信可能に結合される、1つまたは複数のコンピューティングシステム(まとめて「クラウド」コンピューティングシステムと呼ばれる)上に実装することができる。
【0048】
自動アシスタントクライアント604のインスタンスは、1つまたは複数のクラウドベースの自動アシスタントコンポーネント610とのその対話によって、ユーザの視点から、ユーザがヒューマンコンピュータダイアログ(human-to-computer dialog)内で関与することのできる自動アシスタント600の論理インスタンスのように見えるものを形成することができる。そのような自動アシスタント600のインスタンスが、図6に描かれている。したがって、いくつかの実装形態では、クライアントデバイス602上で実行される自動アシスタントクライアント604と関与するユーザは、実際には、自動アシスタント600のユーザ自身の論理インスタンスと関与することができる、ということを理解されたい。簡略かつ簡単にするために、特定のユーザに「サービスする」ものとして本明細書において使用される「自動アシスタント」という用語は、しばしば、ユーザによって操作されるクライアントデバイス602上で実行される自動アシスタントクライアント604と、(複数のクライアントコンピューティングデバイスの複数の自動アシスタントクライアント間で共有されてよい)1つまたは複数のクラウドベースの自動アシスタントコンポーネント610との組合せを指す。いくつかの実装形態では、自動アシスタント600は、任意のユーザからの要求に、そのユーザが実際に自動アシスタント600のその特定のインスタンスによって「サービスされる」かどうかに関わらず応答することができる、ということも理解されたい。
【0049】
クライアントコンピューティングデバイス602は、例えば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(例えば車両内通信システム、車両内エンターテインメントシステム、車両内ナビゲーションシステム)、スタンドアロンの対話型スピーカ、スマートテレビジョンなどのスマートアプライアンス、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えばコンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想現実コンピューティングデバイスもしくは拡張現実コンピューティングデバイス)とすることができる。追加および/または代替のコンピューティングデバイスが可能にされてよい。さまざまな実装形態では、クライアントコンピューティングデバイス602は、任意選択で、メッセージ交換クライアント(例えばSMS、MMS、オンラインチャット)、ブラウザなど、自動アシスタントクライアント604以外の1つまたは複数の他のアプリケーションを動作させてよい。それらのさまざまな実装形態のいくつかでは、他のアプリケーションのうちの1つまたは複数が、任意選択で、(例えばアプリケーションプログラミングインターフェースを介して)自動アシスタント600とインターフェースするか、または(やはりクラウドベースの自動アシスタントコンポーネント610とインターフェースすることのできる)自動アシスタントアプリケーションのそれら自体のインスタンスを含むことができる。
【0050】
自動アシスタント600は、ヒューマンコンピュータダイアログセッション内でユーザと、クライアントデバイス602のユーザインターフェース入力デバイスおよびユーザインターフェース出力デバイスを介して関与する。ユーザのプライバシを守りかつ/またはリソースを節約するために、多くの状況下では、ユーザはしばしば自動アシスタント600を、口頭による発話を自動アシスタントが完全に処理する前に、明示的に呼び出さなければならない。自動アシスタント600の明示的な呼び出しは、クライアントデバイス602において受領されたある特定のユーザインターフェース入力に応答して生じることができる。例えば、クライアントデバイス602を介して自動アシスタント600を呼び出すことのできるユーザインターフェース入力は、任意選択で、クライアントデバイス602のハードウェアボタンおよび/または仮想ボタンの作動を含むことができる。さらに、自動アシスタントクライアントは、1つまたは複数の口頭による呼び出しフレーズの存在を検出するように動作可能な呼び出しエンジンなど、1つまたは複数のローカルエンジン606を含むことができる。呼び出しエンジンは、口頭による呼び出しフレーズのうちの1つの検出に応答して、自動アシスタント600を呼び出すことができる。例えば、呼び出しエンジンは、「ヘイ、アシスタント」、「オーケー、アシスタント」、および/または「アシスタント」など、口頭による呼び出しフレーズの検出に応答して、自動アシスタント600を呼び出すことができる。呼び出しエンジンは(例えば「非アクティブ」モードにない場合に)、口頭による呼び出しフレーズの発生があるかどうかを監視するために、クライアントデバイス602の1つまたは複数のマイクロホンからの出力に基づくオーディオデータフレームのストリームを継続的に処理することができる。口頭による呼び出しフレーズの発生があるかどうかを監視している間、呼び出しエンジンは、口頭による呼び出しフレーズを含まない任意のオーディオデータフレームを(例えばバッファ内に一時的に記憶した後で)破棄する。しかし、呼び出しエンジンは、処理されたオーディオデータフレーム内の口頭による呼び出しフレーズの発生を検出すると、自動アシスタント600を呼び出すことができる。本明細書では、自動アシスタント600を「呼び出すこと」は、自動アシスタント600の1つまたは複数の以前に非アクティブであった機能をアクティブ化させることを含むことができる。例えば、自動アシスタント600を呼び出すことは、1つまたは複数のローカルエンジン606および/またはクラウドベースの自動アシスタントコンポーネント610に、呼び出しフレーズがそれに基づいて検出されたオーディオデータフレームおよび/または1つもしくは複数の後続のオーディオデータフレームをさらに処理させることを含むことができる(一方、呼び出し以前には、オーディオデータフレームのさらなる処理は生じていなかった)。例として、ローカルコンポーネントおよび/またはクラウドベースのコンポーネントは、自動アシスタント600の呼び出しに応答して、捕捉されたオーディオデータをSDスピーチモデルを使用して処理することができる。
【0051】
自動アシスタント600の1つまたは複数のローカルエンジン606は任意選択であり、例えば、上述した呼び出しエンジン、(捕捉されたオーディオをテキストに変換する)ローカル音声トゥテキスト(「STT」)エンジン、(テキストをスピーチに変換する)ローカルテキストトゥスピーチ(「TTS」)エンジン、(オーディオおよび/もしくはオーディオから変換されたテキストの意味論的意味を決定する)ローカル自然言語プロセッサ、ならびに/または他のローカルコンポーネントを含むことができる。クライアントデバイス602は、コンピューティングリソース(例えばプロセッササイクル、メモリ、バッテリなど)の点で比較的制約を受けているので、ローカルエンジン606は、クラウドベースの自動アシスタントコンポーネント610内に含まれる任意の対応物に比べて制限された機能を有することがある。
【0052】
クラウドベースの自動アシスタントコンポーネント610は、クラウドの実質的に無制限のリソースを活用して、ローカルエンジン606の任意の対応物に比べてロバストかつ/または正確な、オーディオデータおよび/または他のユーザインターフェース入力の処理を実施する。この場合もやはり、さまざまな実装形態では、クライアントデバイス602は、呼び出しエンジンが口頭による呼び出しフレーズを検出したこと、または自動アシスタント600の他の何らかの明示的な呼び出しを検出したことに応答して、オーディオデータおよび/または他のデータをクラウドベースの自動アシスタントコンポーネント610に供給することができる。
【0053】
図示のクラウドベースの自動アシスタントコンポーネント610は、クラウドベースのTTSモジュール612、クラウドベースのSTTモジュール614、自然言語プロセッサ616、ダイアログ状態トラッカ618、およびダイアログマネージャ620を含む。いくつかの実装形態では、自動アシスタント600のエンジンおよび/またはモジュールのうちの1つまたは複数が、省略され、組み合わされ、かつ/または自動アシスタント600とは別のコンポーネント内に実装されてよい。さらに、いくつかの実装形態では、自動アシスタント600は、追加および/または代替のエンジンおよび/またはモジュールを含むことができる。クラウドベースのSTTモジュール614は、オーディオデータをテキストに変換することができ、そのテキストは次いで、自然言語プロセッサ616に供給されてよい。
【0054】
クラウドベースのTTSモジュール612は、テキストデータ(例えば自動アシスタント600によって構築された自然言語応答)をコンピュータ生成のスピーチ出力に変換することができる。いくつかの実装形態では、TTSモジュール612は、コンピュータ生成のスピーチ出力を、例えば1つまたは複数のスピーカを使用して直接出力されるように、クライアントデバイス602に供給してよい。他の実装形態では、自動アシスタント600によって生成されたテキストデータ(例えば自然言語応答)が、ローカルエンジン606のうちの1つに供給されてよく、そのローカルエンジン606が次いで、そのテキストデータを、ローカルに出力されるコンピュータ生成のスピーチに変換してよい。
【0055】
自動アシスタント600の自然言語プロセッサ616は、自由形式の自然言語入力を処理し、その自然言語入力に基づいて、自動アシスタント600の1つまたは複数の他のコンポーネントによって使用するための注釈付き出力を生成する。例えば、自然言語プロセッサ616は、ユーザによってクライアントデバイス602を介して提供されたオーディオデータがSTTモジュール614によって変換されたものである、テキスト入力である自然言語自由形式入力を処理することができる。生成された注釈付き出力は、その自然言語入力の1つまたは複数の注釈と、任意選択でその自然言語入力の用語のうちの1つまたは複数(例えば全て)を含んでよい。
【0056】
いくつかの実装形態では、自然言語プロセッサ616は、自然言語入力内のさまざまなタイプの文法情報を識別し、それに注釈を付けるように構成される。いくつかの実装形態では、自然言語プロセッサ616は、それに加えてかつ/またはその代わりに、(例として文学上の登場人物、有名人、公人などを含む)人々、組織、位置(実在および架空)などへの参照など、1つまたは複数のセグメント内の実体参照に注釈を付けるように構成された実体タガー(entity tagger)(図示せず)を含んでよい。いくつかの実装形態では、自然言語プロセッサ616は、それに加えておよび/またはその代わりに、同じ実体への参照を1つまたは複数のコンテキスト上の手がかりに基づいてグループ化または「クラスタ化」するように構成された共参照リゾルバ(図示せず)を含んでよい。例えば、共参照リゾルバは、「私は、前回私たちがそこで食事したとき、仮想カフェが気に入った」という自然言語入力内の「そこで」という用語を「仮想カフェ」へと解決するために利用されてよい。いくつかの実装形態では、自然言語プロセッサ616の1つまたは複数のコンポーネントが、自然言語プロセッサ616の1つまたは複数の他のコンポーネントからの注釈を用いてよい。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ616の1つまたは複数のコンポーネントが、関係する以前の入力および/またはその特定の自然言語入力以外の他の関係するデータを使用して、1つまたは複数の注釈を決定してよい。
【0057】
いくつかの実装形態では、ダイアログ状態トラッカ618は、例としてヒューマンコンピュータダイアログセッションにわたって、かつ/または複数のダイアログセッションにわたって、1人または複数のユーザの目標(または「意図」)の信念状態を含む「ダイアログ状態」を追跡するように構成されてよい。ダイアログ状態を決定する際、いくつかのダイアログ状態トラッカが、ダイアログセッション内でのユーザおよびシステムの発話に基づいて、ダイアログにおいてインスタンス化されるスロットにとって最も可能性のある値を決定しようと努めてよい。いくつかの技法は、スロットのセットおよびそれらのスロットに関連付けられた値のセットを定義した固定のオントロジーを利用する。いくつかの技法は、それに加えてまたはその代わりに、個別のスロットおよび/またはドメインに適応されてよい。例えば、いくつかの技法は、各ドメイン内の各スロットタイプについて、モデルをトレーニングすることを必要としてよい。
【0058】
ダイアログマネージャ620は、例えばダイアログ状態トラッカ618によって提供された現在のダイアログ状態を、複数の候補応答アクションのうちの、次いで自動アシスタント600によって実施される1つまたは複数の「応答アクション」にマッピングするように構成されてよい。応答アクションは、現在のダイアログ状態に応じて、種々の形態のものがあってよい。例えば、(例えばユーザが所望する最終的なタスクが実施されるときの)最終ターン以前に生じるダイアログセッションのターン(turn)に対応する、初期および途中のダイアログ状態が、自動アシスタント600が追加の自然言語ダイアログを出力することを含む、さまざまな応答アクションにマッピングされてよい。この応答ダイアログは、例として、ユーザが実施するつもりであるとダイアログ状態トラッカ618が考える何らかのアクションのためのパラメータをユーザが提供するように(すなわちスロットを埋めるように)要求することを含んでよい。いくつかの実装形態では、応答アクションは、「要求する」(例えばスロットを埋めるためのパラメータを得ようとする)、「提供する」(例えばユーザのためのアクションまたは一連のアクションを提案する)、「選択する」、「知らせる」(例えば要求された情報をユーザに提供する)、「適合せず」(例えばユーザの最終入力が理解されないことをユーザに通知する)、周辺デバイスへの(例えば電球をオフにするための)コマンドなどのアクションを含んでよい。
【0059】
図7は、本明細書において説明した技法の1つまたは複数の態様を実施するために任意選択で利用されてよい、例示的なコンピューティングデバイス710のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイスおよび/または他のコンポーネントのうちの1つまたは複数が、例示的なコンピューティングデバイス710の1つまたは複数のコンポーネントを備えてよい。
【0060】
コンピューティングデバイス710は、典型的には、バスサブシステム712を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ714を含む。これらの周辺デバイスには、例えばメモリサブシステム725およびファイルストレージサブシステム726を含むストレージサブシステム724、ユーザインターフェース出力デバイス720、ユーザインターフェース入力デバイス722、ならびにネットワークインターフェースサブシステム716が含まれてよい。入力デバイスおよび出力デバイスは、コンピューティングデバイス710とのユーザ対話を可能にする。ネットワークインターフェースサブシステム716は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0061】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロホンなどのオーディオ入力デバイス、および/または他のタイプの入力デバイスを含んでよい。一般に、「入力デバイス」という用語が使用される場合、コンピューティングデバイス710に、または通信ネットワーク上に情報を入力するための、可能なあらゆるタイプのデバイスおよび方途を含むことが意図される。
【0062】
ユーザインターフェース出力デバイス720は、ディスプレイサブシステム、プリンタ、ファックス装置、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管(「CRT」)、液晶ディスプレイ(「LCD」)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生み出すための他の何らかの機構を含んでよい。ディスプレイサブシステムは、オーディオ出力デバイスを介するなどして、非視覚的ディスプレイを提供してもよい。一般に、「出力デバイス」という用語が使用される場合、コンピューティングデバイス710からユーザにまたは別のマシンもしくはコンピューティングデバイスに情報を出力するための、可能なあらゆるタイプのデバイスおよび方途を含むことが意図される。
【0063】
ストレージサブシステム724は、本明細書において説明したモジュールの一部または全部のモジュールの機能を提供するプログラミング構造およびデータ構造を記憶する。例えば、ストレージサブシステム724は、図3図4、および/または図5のプロセスのうちの1つまたは複数のプロセスの選択された態様を実施するための、また図2および/または図6に描いたさまざまなコンポーネントを実装するための、ロジックを含んでよい。
【0064】
これらのソフトウェアモジュールは、一般に、プロセッサ714単独で、またはプロセッサ714と他のプロセッサとの組合せによって、実行される。ストレージサブシステム724内で使用されるメモリ725は、プログラム実行中の命令およびデータを記憶しておくためのメインランダムアクセスメモリ(「RAM」)730、ならびに固定の命令が記憶された読出し専用メモリ(「ROM」)732を含む、いくつかのメモリを含むことができる。ファイルストレージサブシステム726は、プログラムおよびデータファイルの永続的ストレージを提供することができ、ファイルストレージサブシステム726には、ハードディスクドライブ、フロッピーディスクドライブおよび関連するリムーバブルメディア、CD-ROMドライブ、光学式ドライブ、またはリムーバブルメディアカートリッジが含まれてよい。ある特定の実装形態の機能を実装したモジュールは、ファイルストレージサブシステム726によって、ストレージサブシステム724内またはプロセッサ714によってアクセス可能な他のマシン内に記憶されてよい。
【0065】
バスサブシステム712は、コンピューティングデバイス710のさまざまなコンポーネントおよびサブシステムに意図した通りに相互に通信させるための機構を提供する。バスサブシステム712は、単一のバスとして概略的に図示されているが、バスサブシステムの代替実装形態は、複数のバスを使用してよい。
【0066】
コンピューティングデバイス710は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または他の任意のデータ処理システムもしくはコンピューティングデバイスを含む、さまざまなタイプのものとすることができる。コンピュータおよびネットワークの絶えず変化する性質のため、図7に描いたコンピューティングデバイス710の説明は、いくつかの実装形態を例示することを目的とした一具体例として意図されているにすぎない。図7に描いたコンピューティングデバイスよりも多くのまたは少ないコンポーネントを有するコンピューティングデバイス710の他の多くの構成が可能である。
【0067】
本明細書において説明したシステムが、ユーザ(または本明細書においてしばしば参照されるように、「参加者」)についての個人情報を収集するか、または個人情報を使用する可能性のある状況下では、ユーザには、プログラムまたは特徴がユーザ情報(例えばユーザのソーシャルネットワーク、社会的行為もしくは社会的活動、職業、ユーザの嗜好、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するための、あるいはユーザにとってより関連のあり得るコンテンツサーバからのコンテンツを受信するかどうかまたはその受信の仕方を制御するための、機会が与えられてよい。また、ある特定のデータが、それが記憶または使用される前に、個人を特定可能な情報が取り除かれるように、1つまたは複数の方途で取り扱われてよい。例えば、ユーザの識別情報が、そのユーザにとって個人を特定可能な情報が特定され得ないように取り扱われてもよく、地理的位置情報が得られるユーザの地理的位置が、ユーザの具体的な地理的位置が特定され得ないように(市レベル、郵便番号レベル、または州レベルなどに)一般化されてもよい。したがって、ユーザは、ユーザについてどのように情報が収集されかつ/または使用されるかについて、制御することができる。
【0068】
いくつかの実装形態では、特定話者スピーチモデル(SDスピーチモデル)をトレーニング済み不特定話者スピーチモデル(SIスピーチモデル)に基づいてトレーニングすることを含む方法が提供される。SDスピーチモデルは、対応するクライアントデバイスの任意のユーザに個人化可能である。SDスピーチモデルをトレーニングすることは、ターゲットユーザの1つまたは複数の口頭による発話を捕捉したオーディオデータインスタンスを識別することと、ターゲットユーザの話者埋め込みを決定することとを含む。SDスピーチモデルをトレーニングすることは、オーディオデータインスタンスをターゲットユーザからのものではない1つまたは複数の追加の音と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成することをさらに含む。SDスピーチモデルをトレーニングすることは、SIスピーチモデルを使用してオーディオデータインスタンスを処理して、不特定話者出力(SI出力、speaker independent output)を生成することをさらに含む。SDスピーチモデルをトレーニングすることは、SDスピーチモデルを使用して、雑音のあるオーディオデータインスタンスを話者埋め込みとともに処理して、特定話者出力(SD出力)を生成することをさらに含む。SDスピーチモデルをトレーニングすることは、SI出力およびSD出力に基づく損失を生成することと、生成された損失に基づいてSDモデルの1つまたは複数の部分を更新することとをさらに含む。
【0069】
本明細書において開示する本技術の上記および他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【0070】
いくつかの実装形態では、SDスピーチモデルをトレーニング済みSIスピーチモデルに基づいてトレーニングすることは、追加のターゲットユーザの1つまたは複数の追加の口頭による発話を捕捉した追加のオーディオデータインスタンスを識別することと、追加のターゲットユーザの追加の話者埋め込みを決定することと、追加のオーディオデータインスタンスを追加のターゲットユーザからのものではない1つまたは複数の追加の音と組み合わせることによって、雑音のある追加のオーディオデータインスタンスを生成することと、SIスピーチモデルを使用して追加のオーディオデータインスタンスを処理して、追加の不特定話者出力(追加のSI出力)を生成することと、SDスピーチモデルを使用して、雑音のある追加のオーディオデータインスタンスを追加の話者埋め込みとともに処理して、追加の特定話者出力(追加のSD出力)を生成することと、追加のSI出力および追加のSD出力に基づく追加の損失を生成することと、生成された追加の損失に基づいてSDスピーチモデルの1つまたは複数の部分を更新することとをさらに含む。
【0071】
いくつかの実装形態では、方法は、SDスピーチモデルをトレーニングした後で、SDスピーチモデルを、所与のクライアントデバイスのローカルストレージ内に記憶させ、所与のクライアントデバイスにおいてデプロイすることをさらに含む。SDスピーチモデルがローカルストレージ内に記憶されて所与のクライアントデバイスにおいてデプロイされたことに応答して、所与のクライアントデバイスは、トレーニング済みSDスピーチモデルを使用してローカルオーディオデータインスタンスをローカル話者埋め込みとともに処理することに基づいて、1つまたは複数のアクションを実施する。ローカル話者埋め込みは、クライアントデバイスに関連する別個ユーザに対応する。それらの実装形態のいくつかのバージョンでは、SIスピーチモデルは不特定話者音声区間検出モデルであり、SDスピーチモデルは特定話者音声区間検出モデル(SD VADモデル)であり、方法は、クライアントデバイスにおいて、ローカルオーディオデータインスタンスを検出することと、クライアントデバイスにおいて、SD VADモデルを使用してローカルオーディオデータインスタンスをローカル話者埋め込みとともに処理して、その別個ユーザの音声区間をそのオーディオデータが含むかどうかを示す出力を生成することと、その別個ユーザの音声区間をそのオーディオデータが含むとの判定に応答して、1つまたは複数のアクションを実施することとをさらに含む。例えば、1つまたは複数のアクションを実施することは、ローカルオーディオデータインスタンスを、ホットワード検出モデルおよび/または自動スピーチ認識エンジンモデルなど、追加のスピーチモデルを使用して処理することを含むことができる。それらの実装形態の他のいくつかのバージョンでは、SIスピーチモデルは不特定話者自動スピーチ認識モデルであり、SDスピーチモデルは特定話者自動スピーチ認識モデル(SD ASRモデル)であり、方法は、クライアントデバイスにおいて、ローカルオーディオデータインスタンスを検出することと、クライアントデバイスにおいて、SD ASRモデルを使用してローカルオーディオデータインスタンスをローカル話者埋め込みとともに処理して、その別個ユーザの1つまたは複数の口頭による発話のみについての認識されたテキストを示す出力を生成することと、その出力によって示された認識されたテキストに基づいて1つまたは複数のアクションを実施することとをさらに含む。それらの実装形態のさらに他のバージョンでは、SIスピーチモデルは不特定話者ホットワード検出モデルであり、SDスピーチモデルは特定話者ホットワード検出モデル(SDホットワード検出モデル)であり、方法は、クライアントデバイスにおいて、ローカルオーディオデータインスタンスを検出することと、クライアントデバイスにおいて、SDホットワード検出モデルを使用してローカルオーディオデータインスタンスを話者埋め込みとともに処理して、その別個ユーザによって話されたホットワードをそのオーディオデータが含むかどうかを示す出力を生成することと、その別個ユーザによって話されたホットワードをそのオーディオデータが含むとの判定に応答して、1つまたは複数のアクションを実施することとをさらに含む。例えば、1つまたは複数のアクションを実施することは、ローカルオーディオデータインスタンスを、音声区間検出モデルおよび/または自動スピーチ認識モデルなど、追加のスピーチモデルを使用して処理することを含むことができる。
【0072】
いくつかの実装形態では、オーディオデータインスタンスが、ターゲットユーザの1つまたは複数の口頭による発話を捕捉したオーディオデータインスタンスにターゲットユーザが対応することを示すラベルにマッピングされる。それらの実装形態のいくつかでは、ターゲットユーザの話者埋め込みを決定することは、そのラベルに基づいてターゲットユーザの話者埋め込みを選択することを含む。
【0073】
いくつかの実装形態では、ターゲットユーザの話者埋め込みを決定することは、ターゲットユーザの1つまたは複数の口頭による発話を捕捉したオーディオデータインスタンスの1つまたは複数の部分を話者埋め込みモデルを使用して処理して、ターゲットユーザの話者埋め込みを生成することを含む。
【0074】
いくつかの実装形態では、ターゲットユーザからのものではない1つまたは複数の追加の音は、1つまたは複数の背景雑音を含み、オーディオデータインスタンスをターゲットユーザからのものではない1つまたは複数の追加の音と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成することは、オーディオデータインスタンスを1つまたは複数の背景雑音と組み合わせることを含む。いくつかの実装形態では、ターゲットユーザからのものではない1つまたは複数の追加の音は、それに加えてまたはその代わりに、ターゲットユーザではないユーザによって話された1つまたは複数の発話を含み、オーディオデータインスタンスをターゲットユーザからのものではない1つまたは複数の追加の音と組み合わせることによって、雑音のあるオーディオデータインスタンスを生成することは、オーディオデータインスタンスをターゲットユーザではないユーザによって話された1つまたは複数の発話と組み合わせることを含む。
【0075】
いくつかの実装形態では、トレーニング済みSIスピーチモデルは、SDスピーチモデルのトレーニング中に凍結される。
【0076】
いくつかの実装形態では、SI出力およびSD出力に基づく損失を生成することは、SI出力およびSD出力に基づく交差エントロピー損失を生成することを含む。それらの実装形態のいくつかでは、生成された損失に基づいてSDモデルの1つまたは複数の部分を更新することは、交差エントロピー損失に基づいてSDモデルの1つまたは複数の部分を更新することを含む。
【0077】
いくつかの実装形態では、SDスピーチモデルはSIスピーチモデルと同じネットワークトポロジーを有する。
【0078】
いくつかの実装形態では、SDスピーチモデルはSIスピーチモデルと同じネットワークトポロジーを有しておらず、SDスピーチモデルトポロジーはSIスピーチモデルよりも小型である。
【0079】
いくつかの実装形態では、方法が提供され、方法は、クライアントデバイスのユーザの1つまたは複数の口頭による発話を捕捉したオーディオデータインスタンスを受領することを含む。オーディオデータインスタンスは、クライアントデバイスの1つまたは複数のマイクロホンを使用して捕捉される。方法は、クライアントデバイスのターゲットユーザに対応する話者埋め込みを決定することをさらに含む。方法は、オーディオデータインスタンスを話者埋め込みとともに、特定話者音声区間検出モデル(SD VADモデル)を使用して処理して、クライアントデバイスのターゲットユーザのものである音声区間をそのオーディオデータが含むかどうかを示す出力を生成することをさらに含む。SD VADモデルは、クライアントデバイスの任意のユーザに個人化可能である。方法は、出力に基づいて1つまたは複数のアクションを実施することをさらに含む。
【0080】
本明細書において開示する本技術の上記および他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【0081】
いくつかの実装形態では、出力に基づいて1つまたは複数のアクションを実施することは、出力に基づいて、ターゲットユーザのものである音声区間をそのオーディオデータが含むかどうかを判定することと、クライアントデバイスのターゲットユーザのものである音声区間をそのオーディオデータが含むとの判定に応答して、オーディオデータインスタンスを追加のスピーチモデルを使用して処理することとを含む。それらの実装形態のいくつかでは、追加のスピーチモデルはホットワード検出モデルおよび/または自動スピーチ認識モデルである。
【0082】
いくつかの実装形態では、出力に基づいて1つまたは複数のアクションを実施することは、出力に基づいて、ターゲットユーザのものである音声区間をそのオーディオデータが含むかどうかを判定することと、クライアントデバイスのターゲットユーザのものである音声区間をそのオーディオデータが含まないとの判定に応答して、クライアントデバイスの追加のターゲットユーザに対応する追加の話者埋め込みを決定することと、オーディオデータインスタンスを追加の話者埋め込みとともに、SD VADモデルを使用して処理して、クライアントデバイスの追加のターゲットユーザのものである音声区間をそのオーディオデータが含むかどうかを示す追加の出力を生成することとを含む。
【0083】
いくつかの実装形態では、出力に基づいて1つまたは複数のアクションを実施することは、出力に基づいて、ターゲットユーザのものである音声区間をそのオーディオデータが含むかどうかを判定することと、クライアントデバイスのターゲットユーザのものである音声区間をそのオーディオデータが含まないとの判定に応答して、オーディオデータインスタンスのさらなる任意の処理を実施することなくオーディオデータインスタンスを破棄することとを含む。
【0084】
それに加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサ(例えば中央処理装置(CPU)、グラフィック処理装置(GPU)、および/またはテンソルプロセッシングユニット(TPU))を含み、その場合、1つまたは複数のプロセッサは、関連するメモリ内に記憶された命令を実行するように動作可能であり、またその場合、命令は、本明細書において説明した方法のいずれかの実施を生じさせるように構成される。いくつかの実装形態は、1つまたは複数のプロセッサによって実行可能な、本明細書において説明した方法のいずれかを実施するためのコンピュータ命令を記憶した、1つまたは複数の非一時的コンピュータ可読記憶媒体も含む。
【0085】
以上、いくつかの実装形態について、本明細書において説明し図示してきたが、機能を実施するための、かつ/または結果および/もしくは本明細書において説明した利点のうちの1つもしくは複数を得るための、種々の他の手段および/または構造を利用することができ、そのような変形形態および/または修正形態はそれぞれ、本明細書において説明した実装形態の範囲内にあるものと見なされる。より一般には、本明細書において説明した全てのパラメータ、寸法、材料、および構成は、例示であることを意図したものであり、実際のパラメータ、寸法、材料、および/または構成は、本教示がそのために使用される1つまたは複数の特定の適用例に応じて決まることになる。当業者なら、本明細書において説明した特定の実装形態の多くの等価物を認識し、または通常の実験だけを使用してそれを確かめることができるであろう。したがって、前述の実装形態はほんの一例として提示されたものであること、また添付の特許請求の範囲およびその等価物の範囲内で、具体的に説明し特許請求された以外の方法でも実装形態を実施できることを理解されたい。本開示の実装形態は、本明細書において説明した各個別の特徴、システム、物品、材料、用具一式、および/または方法を対象としている。加えて、2つ以上のそのような特徴、システム、物品、材料、用具一式、および/または方法の任意の組合せが、そのような特徴、システム、物品、材料、用具一式、および/または方法が相互に矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【0086】
102 オーディオデータ、オーディオデータインスタンス
104 例
106 例
108 例
110 話者埋め込みA
112 SDスピーチモデル
114 出力A
116 話者埋め込みB
118 出力B
120 話者埋め込みC
122 出力C
150 例
152 オーディオデータインスタンス、オーディオデータ
154 SIスピーチモデル
156 雑音のあるオーディオデータインスタンス、雑音のあるオーディオデータ
158 SDスピーチモデル
160 話者埋め込み
162 SI出力
164 SD出力
166 損失
202 クライアントコンピューティングデバイス、クライアントデバイス
204 個人化エンジン
206 話者埋め込みエンジン
208 トレーニングエンジン
300 プロセス
400 プロセス
500 プロセス
600 自動アシスタント
602 クライアントコンピューティングデバイス、クライアントデバイス
604 自動アシスタントクライアント
606 ローカルエンジン
608 ローカルエリアネットワークおよび/または広域ネットワーク
610 自動アシスタントコンポーネント
612 TTSモジュール
614 STTモジュール
616 自然言語プロセッサ
618 ダイアログ状態トラッカ
620 ダイアログマネージャ
710 コンピューティングデバイス
712 バスサブシステム
714 プロセッサ
716 ネットワークインターフェースサブシステム
720 ユーザインターフェース出力デバイス
722 ユーザインターフェース入力デバイス
724 ストレージサブシステム
725 メモリサブシステム、メモリ
726 ファイルストレージサブシステム
730 メインランダムアクセスメモリ(「RAM」)
732 読出し専用メモリ(「ROM」)
図1A
図1B
図2
図3
図4
図5
図6
図7
【国際調査報告】