(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】検出されたジェスチャおよび凝視に基づく自動化アシスタントの機能の呼び出し
(51)【国際特許分類】
G06F 3/01 20060101AFI20241105BHJP
G06F 3/16 20060101ALI20241105BHJP
G10L 15/28 20130101ALI20241105BHJP
G10L 15/30 20130101ALI20241105BHJP
G10L 17/00 20130101ALI20241105BHJP
G06T 7/20 20170101ALI20241105BHJP
G06T 7/00 20170101ALI20241105BHJP
【FI】
G06F3/01 510
G06F3/16 650
G06F3/16 640
G10L15/28 230K
G10L15/30
G10L17/00 400
G06T7/20 300Z
G06T7/00 350B
【外国語出願】
(21)【出願番号】P 2023076301
(22)【出願日】2023-05-02
(62)【分割の表示】P 2021512356の分割
【原出願日】2018-05-04
【審査請求日】2023-05-26
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ユアン・ユアン
(72)【発明者】
【氏名】ケネス・ミックスター
(72)【発明者】
【氏名】トゥアン・グエン
【審査官】仲野 一秀
(56)【参考文献】
【文献】米国特許出願公開第2015/0268719(US,A1)
【文献】国際公開第2018/047932(WO,A1)
【文献】特表2016-502137(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/16
G10L 15/28
G10L 15/30
G10L 17/00
G06T 7/20
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
クライアントデバイスであって、
少なくとも1つの視覚コンポーネントと、
少なくとも1つのマイクロフォンと、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに動作可能に結合されたメモリであって、前記メモリが、前記プロセッサのうちの1つまたは複数による命令の実行に応じて前記プロセッサのうちの1つまたは複数に、
前記クライアントデバイスの前記視覚コンポーネントからの出力に基づく視覚データのストリームを受信することと、
前記クライアントデバイスの前記マイクロフォンからの出力に基づくオーディオデータのストリームを受信することと、
前記視覚データを処理することに基づいて、
前記クライアントデバイスに向けられているユーザの凝視と、
前記ユーザについてのユーザプロファイルと
を判定することと、
前記オーディオデータを処理することに基づいて、前記オーディオデータに含まれる口頭による発話が、
前記凝視に一時的に対応し、かつ
前記視覚データを処理することに基づいて判定された前記ユーザプロファイルに一致する音声特徴を有するか
を判定することと、
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記視覚データを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、
自動化アシスタントの少なくとも1つの休止機能をアクティブ化させることと
を備える動作を実行させる前記命令を記憶する、メモリと
を備える、クライアントデバイス。
【請求項2】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記視覚データを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記クライアントデバイスから、前記自動化アシスタントに関連付けられたリモートサーバへデータを送信すること
を備える、請求項1に記載のクライアントデバイス。
【請求項3】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記視覚データを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記ユーザプロファイルに合わせて仕立てられたコンテンツをグラフィカルにレンダリングすること
をさらに備える、請求項1に記載のクライアントデバイス。
【請求項4】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記視覚データを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記オーディオデータを自動的に音声認識すること
を備える、請求項1に記載のクライアントデバイス。
【請求項5】
前記視覚データを処理することに基づいて前記ユーザの前記ユーザプロファイルを判定することが、前記視覚データを処理することに基づいて顔認識を実行することを備える、請求項1に記載のクライアントデバイス。
【請求項6】
前記視覚データを処理することに基づいて前記クライアントデバイスに向けられている前記ユーザの前記凝視を判定することが、前記クライアントデバイスにローカルに記憶されたトレーニング済み凝視機械学習モデルを使用して前記視覚データを処理することを備える、請求項1に記載のクライアントデバイス。
【請求項7】
前記ユーザプロファイルが前記クライアントデバイスに対して認可されるかを判定することをさらに備え、
前記自動化アシスタントの前記少なくとも1つの休止機能をアクティブ化させることが、前記ユーザプロファイルが前記クライアントデバイスに対して認可されるかを判定することをさらに条件とする、
請求項1に記載のクライアントデバイス。
【請求項8】
1人または複数のユーザと自動化アシスタントとの間の非接触式のインタラクションを容易にするクライアントデバイスの1つまたは複数のプロセッサによって実施される方法であって、
前記クライアントデバイスのカメラによってキャプチャされた画像フレームを処理するステップと、
前記画像フレームを処理することに基づいて、
前記クライアントデバイスに向けられているユーザの凝視と、
前記ユーザについてのユーザプロファイルと
を判定するステップと、
前記クライアントデバイスの1つまたは複数のマイクロフォンによってキャプチャされたオーディオデータを処理するステップと、
前記オーディオデータを処理することに基づいて、前記オーディオデータに含まれる口頭による発話が、
前記凝視に一時的に対応し、かつ
前記画像フレームを処理することに基づいて判定された前記ユーザプロファイルに一致する音声特徴を有するか
を判定するステップと、
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記画像フレームを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、
自動化アシスタントの少なくとも1つの休止機能をアクティブ化させるステップと
を備える、方法。
【請求項9】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記画像フレームを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記クライアントデバイスから、前記自動化アシスタントに関連付けられたリモートサーバへデータを送信すること
を備える、請求項8に記載の方法。
【請求項10】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記画像フレームを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記オーディオデータを自動的に音声認識すること
をさらに備える、請求項9に記載の方法。
【請求項11】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記画像フレームを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記ユーザプロファイルに合わせて仕立てられたコンテンツをグラフィカルにレンダリングすること
をさらに備える、請求項8に記載の方法。
【請求項12】
前記ユーザの前記凝視を判定したことに応答して、かつ前記口頭による発話が、前記凝視に一時的に対応し、かつ前記画像フレームを処理することに基づいて判定された前記ユーザプロファイルに一致する前記音声特徴を有するかを判定したことを条件として、アクティブ化された前記自動化アシスタントの前記少なくとも1つの休止機能が、
前記オーディオデータを自動的に音声認識すること
をさらに備える、請求項8に記載の方法。
【請求項13】
前記画像フレームを処理することに基づいて前記ユーザの前記ユーザプロファイルを判定することが、前記画像フレームの少なくとも1つを処理することに基づいて顔認識を実行するステップを備える、請求項8に記載の方法。
【請求項14】
前記画像フレームを処理することに基づいて前記クライアントデバイスに向けられている前記ユーザの前記凝視を判定することが、前記クライアントデバイスにローカルに記憶されたトレーニング済み凝視機械学習モデルを使用して前記画像フレームを処理することを備える、請求項13に記載の方法。
【請求項15】
前記ユーザプロファイルが前記クライアントデバイスに対して認可されるかを判定するステップをさらに備え、
前記自動化アシスタントの前記少なくとも1つの休止機能をアクティブ化させることが、前記ユーザプロファイルが前記クライアントデバイスに対して認可されるかを判定することをさらに条件とする、
請求項8に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検出されたジェスチャおよび凝視に基づく自動化アシスタントの機能の呼び出しに関する。
【背景技術】
【0002】
人は、本明細書において「自動化アシスタント」と呼ばれるインタラクティブなソフトウェアアプリケーション(「デジタルエージェント」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)を用いて人間とコンピュータとの対話に従事する場合がある。たとえば、人(自動化アシスタントとインタラクションするときは「ユーザ」と呼ばれる場合がある)は、場合によってはテキストに変換され、それから処理される場合がある口頭による自然言語入力(つまり、発話)を使用して、および/またはテキスト(たとえば、タイピングされた)自然言語入力を与えることによって自動化アシスタントにコマンドおよび/または要求を与える場合がある。自動化アシスタントは、可聴のおよび/または視覚的なユーザインターフェース出力を含んでもよい応答ユーザインターフェース出力を提供することによって要求に応答する。
【0003】
上述のように、多くの自動化アシスタントは、口頭による発話によってインタラクションされるように構成される。ユーザのプライバシーを守るおよび/またはリソースを節約するために、ユーザは、自動化アシスタントが口頭による発話を完全に処理する前に自動化アシスタントを明示的に呼び出さなければならないことが多い。自動化アシスタントの明示的な呼び出しは、概して特定のユーザインターフェース入力がクライアントデバイスにおいて受け取られることに応じて発生する。クライアントデバイスは、自動化アシスタントとインターフェースを取るためのインターフェースをクライアントデバイスのユーザに提供し(たとえば、ユーザから入力を受け取り、可聴のおよび/またはグラフィカルな応答を提供し)、自動化アシスタントを実装する1つまたは複数の追加的なコンポーネント(たとえば、ユーザ入力を処理し、適切な応答を生成するリモートサーバデバイス)とインターフェースを取るアシスタントインターフェースを含む。
【0004】
クライアントデバイスを介して自動化アシスタントを呼び出すことができる一部のユーザインターフェース入力は、自動化アシスタントを呼び出すためのクライアントデバイスのハードウェアのおよび/または仮想的なボタン(たとえば、ハードウェアのボタンのタップ、クライアントデバイスによって表示されたグラフィカルインターフェース要素の選択)を含む。多くの自動化アシスタントは、追加的にまたは代替的に「ホットワード/フレーズ」または「トリガワード/フレーズ」としても知られる1つまたは複数の口頭による呼び出しフレーズに応答して呼び出されてもよい。たとえば、「ヘイ、アシスタント」、「オーケー、アシスタント」、および/または「アシスタント」などの口頭による呼び出しフレーズが、自動化アシスタントを呼び出すために口で言われてもよい。
【発明の概要】
【課題を解決するための手段】
【0005】
上述のように、自動化アシスタントとのインタラクションを容易にする多くのクライアントデバイス~本明細書において「アシスタントデバイス」とも呼ばれる~は、ユーザが自動化アシスタントと非接触式のインタラクションに従事することを可能にする。たとえば、アシスタントデバイスは、多くの場合、ユーザが自動化アシスタントを呼び出すおよび/またはそれ以外の方法で自動化アシスタントとインタラクションをするために音声の発話を与えることを可能にするマイクロフォンを含む。本明細書において説明されるアシスタントデバイスは、追加的にまたは代替的に自動化アシスタントと非接触式のインタラクションを容易にするための1つもしくは複数の視覚コンポーネント(たとえば、カメラ、光検出および測距(LIDAR: Light Detection and Ranging)コンポーネント、レーダーコンポーネントなど)を組み込むおよび/またはそのような1つもしくは複数の視覚コンポーネントと通信することができる。
【0006】
本明細書において開示される実装、1つまたは複数の視覚コンポーネントからの視覚データの処理に基づいて、(1)ユーザの(たとえば、1つもしくは複数の「呼び出しジェスチャ」のうちの)特定のジェスチャを検出すること、ならびに/または(2)自動化アシスタントの(グラフィカルなおよび/もしくは可聴の)自動化アシスタントインターフェースを提供するアシスタントデバイスにユーザの凝視が向けられていることを検出することに応じて、自動化アシスタントの1つまたは複数の以前休止状態にあった機能を呼び出すことに関する。たとえば、以前休止状態にあった機能は、特定のジェスチャを検出すること、少なくとも閾値の量の時間の間、ユーザの凝視がアシスタントデバイスに向けられていることを検出すること、ならびに任意で特定のジェスチャおよびユーザの向けられている凝視が同時に起こるかまたは互いに閾値の時間的近さ以内(たとえば、0.5秒以内、1.0秒以内、もしくはその他の閾値の時間的近さ)に起こることを検出することに応じて呼び出されてもよい。たとえば、以前休止状態にあった機能は、特定のジェスチャ(たとえば、「親指を立てる」ジェスチャおよび/または「手を振る」ジェスチャ)を検出することに応じて、ならびに少なくとも0.5秒の継続時間の、特定のジェスチャと同時に起こったまたは特定のジェスチャの1.0秒以内に起こった、向けられている凝視を検出することに応じて呼び出されてもよい。
【0007】
それらの実装の一部のバージョンにおいて、1つまたは複数の以前休止状態にあった機能は、ジェスチャおよび向けられている凝視を検出することのみに応じて呼び出されてもよい。たとえば、ジェスチャおよび向けられている凝視を検出することのみに応じて、1つまたは複数のセンサコンポーネントによって生成された特定のセンサデータが、クライアントデバイスによって1つまたは複数の遠隔の自動化アシスタントコンポーネントに送信されてもよい(しかし、ジェスチャおよび向けられている凝視を検出する前は、センサコンポーネントからのセンサデータは送信されていなかった)。特定のセンサデータは、たとえばジェスチャおよび向けられている凝視を検出した後にキャプチャされた視覚および/もしくはオーディオデータ、ならびに/またはジェスチャの実行中におよび/もしくは向けられている凝視の間にキャプチャされたバッファリングされた視覚および/もしくはオーディオデータを含んでもよい。このようにして、データネットワークを介した遠隔のコンピューティングコンポーネントへのデータの送信が、選択的に適時実行される。これは、ネットワーク容量ならびにネットワークを介してデータを送受信することに関わるコンピューティングリソースおよびその他のハードウェアリソースの効率的使用を提供する。データネットワークおよび遠隔のシステムのコンピューティングリソースの使用の効率の向上は、ネットワーク内のトランスミッタおよびレシーバによる電力使用の観点ならびに遠隔のシステムにおけるメモリの動作およびプロセッサの使用の観点で大幅な節約につながってもよい。対応する効果も、クライアントデバイスにおいて経験される場合がある。これらの効果は、特に経時的に、自動化アシスタントの継続している動作の間ずっと、ネットワークにおいてならびにアシスタントを実行するデバイスおよびシステムを含むコンピューティング装置全体において多大な追加的な容量が経験されることを可能にする。この追加的な容量は、たとえば追加のまたは更新されたインフラストラクチャおよびコンピューティング装置における追加のコンピューティング動作によってネットワーク容量を拡大する必要なしに、アシスタントに関連するか否かにかかわらず、データネットワークにおけるさらなる通信のために使用されてもよい。その他の技術的な改善は、以下の検討から明らかになる。
【0008】
それらの実装の一部のその他のバージョンにおいて、1つまたは複数の以前休止状態にあった機能は、ジェスチャおよび向けられている凝視を検出することと、1つまたは複数のその他の条件の発生を検出することとに応じて呼び出されてもよい。1つまたは複数のその他の条件の発生は、たとえば検出されたジェスチャおよび向けられている凝視と時間的に近接した音声活動(voice activity)(たとえば、任意の音声活動、ジェスチャおよび向けられている凝視を与えるユーザの音声活動、認可されたユーザの音声活動、口頭による呼び出しフレーズを含む音声活動)をオーディオデータに基づいて検出すること、検出されたジェスチャおよび向けられている凝視と同時に起こるかもしくは検出されたジェスチャおよび向けられている凝視と時間的に近接しているユーザの口の動きを視覚データに基づいて検出すること、ユーザが認可されたユーザであることをオーディオデータおよび/もしくは視覚データに基づいて検出すること、ならびに/またはその他の条件を検出することを含んでもよい。たとえば、バッファリングされたオーディオデータが、ジェスチャおよび向けられている凝視を検出することに応じて、ならびに(たとえば、音声活動検出器(VAD: voice activity detector)モジュールを使用して)バッファリングされたオーディオデータの少なくとも一部の音声活動を検出することに応じてクライアントデバイスによって1つまたは複数の遠隔の自動化アシスタントコンポーネントに送信されてもよい。これは、上で説明された利点に対応する利点を有する。
【0009】
本明細書において開示される一部の実装において、ジェスチャおよび向けられている凝視を検出することに応じて呼び出される自動化アシスタントの以前休止状態にあった機能は、特定のセンサデータ(たとえば、オーディオデータ、動画、画像など)の特定の処理ならびに/または特定のコンテンツの(たとえば、グラフィカルなおよび/もしくは可聴の)レンダリングを含んでもよい。たとえば、ジェスチャおよび向けられている凝視を検出することに基づく呼び出しの前は、自動化アシスタントは、オーディオデータ、動画/画像データなどの特定のセンサデータの限られた処理のみを実行する(またはまったく処理を実行しない)場合がある。たとえば、呼び出しの前に、自動化アシスタントは、明示的な呼び出しを監視する際に一部のセンサデータをローカルで処理することができるが、ローカルの処理の後、自動化アシスタントを実装する1つまたは複数の追加的なコンポーネント(たとえば、ユーザ入力を処理し、適切な応答を生成するリモートサーバデバイス)によってデータを処理させることなくデータを「破棄する」。しかし、呼び出しに応じて、そのようなデータは、追加的なコンポーネントによって処理されてもよい。これらのおよびその他の方法では、処理および/またはネットワークリソースが、呼び出しに応じて特定のセンサデータを送信することおよび/または特定のセンサデータの特定の処理を実行することのみによって削減されてもよい。
【0010】
また、たとえば明示的な呼び出しの前は、自動化アシスタントは、限られたコンテンツのみを(たとえば、グラフィカルに)レンダリングすることができる(またはコンテンツをまったくレンダリングすることができない)。しかし、呼び出しに応じて、自動化アシスタントは、自動化アシスタントを呼び出したユーザに合わせて仕立てられるコンテンツなどのその他のコンテンツをレンダリングすることができる。たとえば、明示的な呼び出しの前は、いかなるコンテンツも、自動化アシスタントによって制御されるディスプレイスクリーンによってグラフィカルにレンダリングされない場合があり、または限られた低消費電力のコンテンツのみが、レンダリングされる場合がある(たとえば、ディスプレイスクリーンの小さな部分の現在時刻のみ)。しかし、呼び出しに応じて、自動化アシスタントは、ディスプレイスクリーン上により明るく表示されるおよび/またはディスプレイスクリーンのより大きな部分を専有する場合がある天気予報、日々の出来事のまとめ、および/またはその他のコンテンツなどの追加的なおよび任意でより高消費電力のコンテンツをディスプレイスクリーンによってグラフィカルにレンダリングさせるおよび/またはスピーカによって聞こえるようにレンダリングさせることができる。これらのおよびその他の方法では、呼び出しの前は低消費電力のコンテンツを表示すること(またはコンテンツを表示しないこと)、および呼び出しに応じてより高消費電力のコンテンツを表示することのみによって、電力消費が削減されてもよい。
【0011】
一部の実装においては、特定のジェスチャを監視する際およびクライアントデバイスに向けられている凝視を監視する際、クライアントデバイスのローカルに記憶されるトレーニングされた機械学習モデル(たとえば、ニューラルネットワークモデル)が、クライアントデバイスの視覚コンポーネントからの視覚データの少なくとも一部(たとえば、クライアントデバイスのカメラからの画像フレーム)を少なくとも選択的に処理するためにクライアントデバイスによって利用される。たとえば、1人または複数のユーザの存在を検出することに応じて、クライアントデバイスは、特定のジェスチャおよび向けられている凝視を監視する際にローカルに記憶された機械学習モデルを利用して視覚データの少なくとも一部を少なくともある継続時間の間(たとえば、少なくとも閾値の継続時間の間および/または存在がもはや検出されなくなるまで)処理してもよい。クライアントデバイスは、専用の存在検知センサ(たとえば、パッシブ赤外線センサ(PIR))を使用して、視覚データおよび別個の機械学習モデル(たとえば、人の存在の検出のためにだけトレーニングされた別個の機械学習モデル)を使用して、ならびに/またはオーディオデータおよび別個の機械学習モデル(たとえば、VAD機械学習モデルを使用するVAD)を使用して1人または複数のユーザの存在を検出することができる。特定のジェスチャを監視する際の視覚データの処理が1人または複数のユーザの存在をまず検出することを条件とする実装においては、ジェスチャおよび/または向けられている凝視を監視する際の視覚データの連続的でない処理によって電力リソースが節約されてもよい。むしろ、それらの実装においては、ジェスチャおよび/または向けられている凝視を監視する際の視覚データの処理が、アシスタントデバイスの環境内の1人または複数のユーザの存在を1つまたは複数の低消費電力技術によって検出することに応じてのみ行われてもよい。
【0012】
特定のジェスチャおよび向けられている凝視を監視する際にローカルの機械学習モデルが利用される一部の実装においては、少なくとも1つのジェスチャ検出機械学習モデルが、ジェスチャを監視する際に利用され、別個の凝視検出機械学習モデルが、凝視を監視する際に利用される。それらの実装の一部のバージョンにおいては、1つまたは複数の「上流」モデル(たとえば、物体検出および分類モデル)が、視覚データ(たとえば、画像)の恐らく顔である部分、恐らく目である部分、恐らく腕/体である部分などを検出するために利用されることが可能であり、~それらの部分は、それぞれの機械学習モデルを使用して処理される。たとえば、画像の顔および/または目の部分が、上流モデルを使用して検出され、凝視検出機械学習モデルを使用して処理されてもよい。また、たとえば画像の腕および/または体の部分が、上流モデルを使用して検出され、ジェスチャ検出機械学習モデルを使用して処理されてもよい。さらに別の例として、画像の人の部分が、上流モデルを使用して検出され、凝視検出機械学習モデルとジェスチャ検出機械学習モデルとの両方を使用して処理されてもよい。
【0013】
オプションで、凝視検出機械学習モデルは、ジェスチャ検出機械学習モデルよりも高解像度の視覚データ(たとえば、画像)を処理することができる。これは、より低解像度の画像の処理によってジェスチャ検出機械学習モデルの利用がより効率的であることを可能にしてもよい。さらに、オプションで凝視検出機械学習モデルは、ジェスチャ検出機械学習モデルが可能性の高いジェスチャを検出するために利用された後にのみ画像の一部を処理するために利用されてもよい(またはその逆である)。またこれは、両方のモデルを利用して画像データを連続的に処理しないことによって計算の効率性につながることがある。
【0014】
一部の実装においては、顔のマッチング、目のマッチング、声のマッチング、および/またはその他の技術が、ジェスチャおよび/または向けられている凝視に関連付けられる特定のユーザプロファイルと、特定のユーザプロファイルに合わせて仕立てられるクライアントデバイスの自動化アシスタントアプリケーションによってレンダリングされるコンテンツとを特定するために利用されてもよい。仕立てられたコンテンツのレンダリングは、ジェスチャおよび向けられている凝視を検出することに応じて呼び出される自動化アシスタントの機能のうちの1つであることが可能である。オプションで、特定のユーザプロファイルの特定は、向けられている凝視およびジェスチャが検出された後にのみ行われる。一部の実装においては、上述のように、呼び出しの検出に関して、1つまたは複数の追加的な条件の発生も、必要とされてもよい~追加的な条件は、凝視および/またはジェスチャの検出に付け加えられる。たとえば、一部の実装において、追加的な条件は、(たとえば、顔のマッチング、声のマッチング、および/またはその他の技術を使用して)ジェスチャおよび向けられている凝視を与えるユーザがクライアントデバイスに関して認可されているユーザプロファイルに関連付けられることを特定することを含んでもよい。
【0015】
一部の実装においては、動画/画像の特定の部分が、ジェスチャおよび/または凝視を検出する際にフィルタリングで取り除かれ/無視され/より低く重み付けされてもよい。たとえば、動画/画像内のキャプチャされたテレビが、テレビによってレンダリングされた人(たとえば、天気予報士)の結果としての誤検出を防止するために無視されてもよい。たとえば、画像の一部分が、その一部分に関する複数のフレームに渡ってその部分の中の特定の表示周波数(つまり、テレビのリフレッシュレートに一致する)を検出することなどに応じて別個の物体検出/分類機械学習モデルに基づいてテレビに対応すると判定されてもよい。そのような部分は、テレビまたはその他のビデオディスプレイデバイスからのジェスチャおよび/または向けられている凝視の検出を防止するために、本明細書において説明されるジェスチャおよび/または向けられている凝視の検出技術においては無視されてもよい。別の例として、写真フレームが無視されてもよい。これらのおよびその他の技術は、自動化アシスタントの誤検出された呼び出しを軽減することができ、これは、誤検出された呼び出しにおいてそれ以外の方法では消費される様々な計算リソースおよび/またはネットワークリソースを節約することができる。また、様々な実装において、TV、写真フレームなどの位置が検出されると、それは、オプションで(たとえば、間欠的に検証する間、クライアントデバイスまたは物体の動きが検出されるまでなど)複数のフレームに渡って無視され続けることが可能である。これは、様々な計算リソースをやはり節約することができる。
【0016】
上の説明は、本明細書において開示される様々な実装の概要として提供されている。それらの様々な実装および追加的な実装が、本明細書においてより詳細に説明される。
【0017】
一部の実装においては、1人または複数のユーザと自動化アシスタントとの間の非接触式のインタラクションを容易にする方法が、クライアントデバイスの1つまたは複数のプロセッサによって実行される。方法は、クライアントデバイスの1つまたは複数のカメラからの出力に基づく画像フレームのストリームを受信するステップを含む。方法は、画像フレームのうちの少なくとも1つによってキャプチャされたユーザの呼び出しジェスチャと、クライアントデバイスに向けられているユーザの凝視との両方の発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた機械学習モデルを使用してストリームの画像フレームを処理するステップをさらに含む。方法は、呼び出しジェスチャと、凝視の両方の発生を監視することに基づいて検出するステップをさらに含む。方法は、呼び出しジェスチャと凝視との両方の発生を検出することに応じて、自動化アシスタントの少なくとも1つの機能をアクティブ化させるステップをさらに含む。
【0018】
テクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含んでもよい。
【0019】
一部の実装において、呼び出しジェスチャと凝視との両方の発生を検出することに応じてアクティブ化される自動化アシスタントの少なくとも1つの機能は、クライアントデバイスの1つまたは複数のマイクロフォンによってキャプチャされたオーディオデータの自動化アシスタントに関連するリモートサーバへの送信を含む。
【0020】
一部の実装において、呼び出しジェスチャと凝視との両方の発生を検出することに応じてアクティブ化される少なくとも1つの機能は、追加的にまたは代替的に自動化アシスタントに関連するリモートサーバへの追加の画像フレームの送信を含み、追加の画像フレームは、カメラのうちの1つまたは複数からの出力に基づき、呼び出しジェスチャと凝視との両方の発生を検出した後に受信される。
【0021】
一部の実装において、呼び出しジェスチャと凝視との両方の発生を検出することに応じてアクティブ化される少なくとも1つの機能は、追加的にまたは代替的にクライアントデバイスにおけるバッファリングされたオーディオデータの処理を含み、バッファリングされたオーディオデータは、クライアントデバイスのメモリに記憶され、クライアントデバイスの1つまたは複数のマイクロフォンによってキャプチャされ、バッファリングされたオーディオデータの処理は、呼び出しフレーズ検出処理、および自動音声認識のうちの一方または両方を含む。それらの実装の一部のバージョンにおいて、バッファリングされたオーディオデータの処理は、自動音声認識を含み、自動音声認識は、音声からテキストへの処理を含む。それらの実装の一部の追加的なまたは代替的なバージョンにおいて、バッファリングされたオーディオデータの処理は、呼び出しフレーズ検出処理を含み、本方法は、呼び出しフレーズ検出処理がバッファリングされたオーディオデータ内の呼び出しフレーズの存在を検出することに応じて、クライアントデバイスの1つもしくは複数のマイクロフォンによってキャプチャされたさらなるオーディオデータを自動化アシスタントに関連するリモートサーバに送信すること、および自動化アシスタントに関連するリモートサーバに追加の画像フレームを送信することであって、追加の画像フレームが、カメラのうちの1つもしくは複数からの出力に基づき、呼び出しジェスチャと凝視との両方の発生を検出した後に受信される、送信することのうちの一方または両方を実行するステップをさらに含む。
【0022】
一部の実装において、呼び出しジェスチャと凝視との両方の発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた機械学習モデルを使用してストリームの画像フレームを処理するステップは、呼び出しジェスチャの発生を監視するために第1のトレーニングされた機械学習モデルを使用することと、クライアントデバイスに向けられているユーザの凝視を監視するために第2のトレーニングされた機械学習モデルを使用することとを含む。それらの実装の一部のバージョンにおいて、クライアントデバイスに向けられているユーザの凝視を監視するために第2のトレーニングされた機械学習モデルを使用することは、第1のトレーニングされた機械学習モデルを使用して呼び出しジェスチャの発生を検出することに応じてのみ行われる。それらのバージョンの一部において、またはその他のバージョンにおいて、呼び出しジェスチャの発生を監視するために第1のトレーニングされた機械学習モデルを使用することは、第1の機械学習モデルを使用して画像フレームの第1の解像度のバージョンを処理することを含み、ユーザの凝視を監視するために第2のトレーニングされた機械学習モデルを使用することは、第2の機械学習モデルを使用して画像フレームの第2の解像度のバージョンを処理することを含む。
【0023】
一部の実装において、本方法は、クライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを受信するステップと、口頭による呼び出しフレーズの発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた呼び出しフレーズ検出機械学習モデルを使用してストリームのオーディオデータフレームを処理するステップと、口頭による呼び出しフレーズの発生を監視することに基づいて口頭による呼び出しフレーズの発生を検出するステップとをさらに含む。それらの実装の一部において、自動化アシスタントの少なくとも1つの機能をアクティブ化させるステップは、呼び出しジェスチャと凝視との両方と時間的に近接した口頭による呼び出しフレーズの発生を検出することに応じる。それらの実装の一部のバージョンにおいて、アクティブ化される少なくとも1つの機能は、クライアントデバイスの1つもしくは複数のマイクロフォンによってキャプチャされた追加のオーディオデータフレームの自動化アシスタントに関連するリモートサーバへの送信、およびカメラのうちの1つもしくは複数からの1つもしくは複数の追加の画像フレームの自動化アシスタントに関連するリモートサーバへの送信のうちの一方または両方を含む。
【0024】
一部の実装において、呼び出しジェスチャと凝視との両方の発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた機械学習モデルを使用してストリームの画像フレームを処理するステップは、人の顔を含む画像フレームの領域を予測するために第1のトレーニングされた機械学習モデルを使用して画像フレームを処理することと、ユーザの凝視を検出するためにトレーニングされた第2のトレーニングされた機械学習モデルを使用して画像フレームの領域を処理することとを含む。
【0025】
一部の実装において、呼び出しジェスチャと凝視との両方の発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた機械学習モデルを使用してストリームの画像フレームを処理するステップは、画像フレームの領域が電子ディスプレイに対応すると判定することと、領域が電子ディスプレイに対応すると判定することに応じて、呼び出しジェスチャと凝視との両方の発生を監視する際に領域を無視することとを含む。それらの実装の一部において、画像フレームの領域が電子ディスプレイに対応すると判定することは、画像フレームの領域内で電子ディスプレイの表示周波数に対応する表示周波数を検出することに基づく。
【0026】
一部の実装において、本方法は、存在検知センサからの信号に基づいて、人がクライアントデバイスの環境内に存在することを検出するステップと、人が環境内に存在することを検出することに応じて1つまたは複数のカメラに画像フレームのストリームを提供させるステップとをさらに含む。
【0027】
一部の実装において、少なくとも1つの視覚コンポーネントと、少なくとも1つのマイクロフォンと、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに動作可能に結合されたメモリとを含むクライアントデバイスが提供される。メモリは、プロセッサのうちの1つまたは複数による命令の実行に応じてプロセッサのうちの1つまたは複数に以下の動作、すなわち、クライアントデバイスの視覚コンポーネントからの出力に基づく視覚データのストリームを受信すること、視覚データによってキャプチャされたユーザの呼び出しジェスチャと、クライアントデバイスに向けられているユーザの凝視との両方の発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた機械学習モデルを使用して視覚データを処理すること、呼び出しジェスチャと、凝視との両方の発生を監視することに基づいて検出すること、ならびに呼び出しジェスチャと凝視との両方の発生を検出することに応じて、クライアントデバイスによって1つまたは複数の遠隔の自動化アシスタントコンポーネントに視覚コンポーネントからの出力に基づく追加の視覚データ、およびクライアントデバイスのマイクロフォンからの出力に基づくオーディオデータのうちの一方または両方を送信することを実行させる命令を記憶する。動作は、オプションで送信することに応じて応答コンテンツを受信することと、クライアントデバイスの1つまたは複数のユーザインターフェース出力デバイスによって応答コンテンツをレンダリングすることとをさらに含んでもよい。
【0028】
一部の実装においては、少なくとも1つの視覚コンポーネントと、視覚コンポーネントからの出力に基づく視覚データのストリームを受信する1つまたは複数のプロセッサとを含むシステムが提供される。プロセッサのうちの1つまたは複数は、視覚データによってキャプチャされたユーザの呼び出しジェスチャと、クライアントデバイスに向けられているユーザの凝視との両方の発生を監視するためにクライアントデバイスのローカルに記憶された少なくとも1つのトレーニングされた機械学習モデルを使用して視覚データを処理し、呼び出しジェスチャと、凝視との両方の発生を監視することに基づいて検出し、呼び出しジェスチャと凝視との両方の発生を検出することに応じて、自動化アシスタントの少なくとも1つの機能をアクティブ化させるように構成される。
【0029】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、上述の方法のいずれかの実行を引き起こすように構成される。一部の実装は、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行されてもよいコンピュータ命令を記憶する1つまたは複数の非一時的コンピュータ可読記録媒体も含む。
【0030】
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【0031】
【
図1】本明細書において開示される実装が実装される場合がある例示的な環境のブロック図である。
【
図2A】様々な実装による本開示の様々な態様を明示する例示的なプロセスフローを示す図である。
【
図2B】様々な実装による本開示の様々な態様を明示する例示的なプロセスフローを示す図である。
【
図2C】様々な実装による本開示の様々な態様を明示する例示的なプロセスフローを示す図である。
【
図3】アシスタントデバイスならびにジェスチャおよび向けられている凝視を与えるユーザの例を示し、ユーザがジェスチャおよび向けられている凝視を与えているときにアシスタントデバイスのカメラによってキャプチャされた画像も示す図である。
【
図4A】本明細書において開示される実装による例示的な方法を示す流れ図である。
【
図4B】
図4Aの例示的な方法の特定のブロックの特定の例を示す流れ図である。
【
図5】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0032】
図1は、本明細書において開示される技術が実装されてもよい例示的な環境を示す。例示的な環境は、1つまたは複数のクライアントコンピューティングデバイス106を含む。各クライアントデバイス106は、自動化アシスタントクライアント110のそれぞれのインスタンスを実行してもよい。1つまたは複数のクラウドベース自動化アシスタントコンポーネント130は、114に全体的に示される1つまたは複数のローカルエリアおよび/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス106に通信可能に結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)に実装されてもよい。クラウドベース自動化アシスタントコンポーネント130は、たとえば高性能なサーバのクラスタによって実装されてもよい。
【0033】
様々な実装において、自動化アシスタントクライアント110のインスタンスは、1つまたは複数のクラウドベース自動化アシスタントコンポーネント130とのその自動化アシスタントクライアント110のインタラクションを通して、ユーザの観点から見てユーザが人とコンピュータとのインタラクション(たとえば、口頭によるインタラクション、ジェスチャに基づくインタラクション、および/または接触に基づくインタラクション)に従事する場合がある自動化アシスタント120の論理的なインスタンスであるように見えるものを形成してもよい。そのような自動化アシスタント120の1つのインスタンスが、
図1において破線の中に示される。したがって、クライアントデバイス106上で実行される自動化アシスタントクライアント110と関わり合う各ユーザは、実際には、自動化アシスタント120のそのユーザ独自の論理的なインスタンスと関わり合ってもよいことを理解されたい。簡潔で単純にするために、特定のユーザに「サービスを提供する」ものとして本明細書において使用される用語「自動化アシスタント」は、ユーザによって運用されるクライアントデバイス106上で実行される自動化アシスタントクライアント110と(複数の自動化アシスタントクライアント110の間で共有される場合がある)任意で1つまたは複数のクラウドベース自動化アシスタントコンポーネント130との組合せを指す。一部の実装において、自動化アシスタント120は、ユーザが自動化アシスタント120のその特定のインスタンスによって実際に「サービスを提供される」かどうかに関係なく任意のユーザからの要求に応答してもよいこともまた理解されたい。
【0034】
1つまたは複数のクライアントデバイス106は、たとえばデスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの乗り物のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、(場合によっては視覚センサを含んでもよい)スタンドアロンのインタラクティブスピーカ、スマートテレビ(もしくは自動化アシスタントの能力を有するネットワークに接続されたドングルを備える普通のテレビ)などのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含んでもよい。追加的なおよび/または代替的なクライアントコンピューティングデバイスが提供されてもよい。上述のように、一部のクライアントデバイス106は、主としてユーザと自動化アシスタント120(たとえば、スピーカおよびディスプレイを有するスタンドアロンのインタラクティブデバイス)との間のインタラクションを容易にするように設計されるアシスタントデバイスの形態をとってもよい。
【0035】
クライアントデバイス106は、1つまたは複数の視界を有する1つまたは複数の視覚コンポーネント107を備えることが可能である。視覚コンポーネント107は、モノグラフィックカメラ(monographic camera)、ステレオグラフィックカメラ(stereographic camera)、LIDARコンポーネント、レーダーコンポーネントなどの様々な形態をとってもよい。1つまたは複数の視覚コンポーネント107は、たとえばクライアントデバイス106が配置される環境の視覚フレーム(vision frame)(たとえば、画像フレーム(静止画または動画))をキャプチャするために視覚的キャプチャモジュール114によって使用されてもよい。そして、これらの視覚フレームは、たとえば視覚フレームによってキャプチャされたユーザの(1つもしくは複数の候補ジェスチャのうちの)特定のジェスチャおよび/またはユーザからの向けられている凝視(つまり、クライアントデバイス106に向けられている凝視)の発生を監視するために呼び出しエンジン115の凝視およびジェスチャモジュール116によって少なくとも選択的に分析されてもよい。凝視およびジェスチャモジュール116は、特定のジェスチャおよび/または向けられている凝視の発生を監視する際に1つまたは複数のトレーニングされた機械学習モデル117を利用することができる。
【0036】
特定のジェスチャおよび向けられている凝視の検出に応じて(ならびに任意でその他の条件モジュール118による1つまたは複数のその他の条件の検出に応じて)、呼び出しエンジン115は、自動化アシスタント120の1つまたは複数の以前休止状態にあった機能を呼び出すことができる。そのような休止状態にあった機能は、たとえば特定のセンサデータ(たとえば、オーディオデータ、動画、画像など)の処理ならびに/または特定のコンテンツの(たとえば、グラフィカルなおよび/もしくは可聴の)レンダリングを含んでもよい。
【0037】
1つの非限定的な例として、特定のジェスチャおよび向けられている凝視の検出の前は、クライアントデバイス106においてキャプチャされた視覚データおよび/またはオーディオデータは、クライアントデバイス106にローカルにおいてのみ(つまり、クラウドベース自動化アシスタントコンポーネント130に送信せずに)処理されおよび/または一時的にバッファリングされてもよい。しかし、特定のジェスチャおよび向けられている凝視の検出に応じて、オーディオデータおよび/または視覚データ(たとえば、最近バッファリングされたデータおよび/または検出後に受信されたデータ)は、さらなる処理のためにクラウドベース自動化アシスタントコンポーネント130に送信されてもよい。たとえば、特定のジェスチャおよび向けられている凝視の検出は、ユーザの口頭による発話を自動化アシスタント120によって十分に処理させ、応答コンテンツを自動化アシスタント120によって生成させ、ユーザに対してレンダリングさせるためにユーザが明示的な呼び出しフレーズ(たとえば、「オーケー、アシスタント」)を言う必要をなくすことができる。
【0038】
たとえば、ユーザが今日の予報を取得するために「オーケー、アシスタント。今日の予報はどう」と言う必要があるのではなく、ユーザは、その代わりに特定のジェスチャを行い、クライアントデバイス106を見て、ジェスチャを行うおよび/もしくはクライアントデバイス106を見る間にまたはジェスチャを行うおよび/もしくはクライアントデバイス106を見るのと時間的に近接して(たとえば、その前および/もしくは後の閾値の時間以内に)「今日の予報はどう」とだけ言う可能性がある。口頭による発話「今日の予報はどう」に対応するデータ(たとえば、口頭による発話をキャプチャするオーディオデータまたはそのテキストのもしくはその他の意味的変換(semantic conversion))が、ジェスチャおよび向けられている凝視を検出することに応じて、ならびに口頭による発話がジェスチャおよび向けられている凝視の間におよび/またはジェスチャおよび向けられている凝視と時間的に近接して受信されることに応じてクライアントデバイス106によってクラウドベース自動化アシスタントコンポーネント130に送信されてもよい。別の例においては、ユーザが接続されたサーモスタットによってそのユーザの家の温度を上げるために「オーケー、アシスタント。暖房を強くして」と言う必要があるのではなく、ユーザは、その代わりに特定のジェスチャを行い、クライアントデバイス106を見て、ジェスチャを行うおよび/もしくはクライアントデバイス106を見る間にまたはジェスチャを行うおよび/もしくはクライアントデバイス106を見るのと時間的に近接して(たとえば、その前および/もしくは後の閾値の時間以内に)「暖房を強くして」とだけ言う可能性がある。口頭による発話「暖房を強くして」に対応するデータ(たとえば、口頭による発話をキャプチャするオーディオデータまたはそのテキストのもしくはその他の意味的変換)が、ジェスチャおよび向けられている凝視を検出することに応じて、ならびに口頭による発話がジェスチャおよび向けられている凝視の間におよび/またはジェスチャおよび向けられている凝視と時間的に近接して受信されることに応じてクライアントデバイス106によってクラウドベース自動化アシスタントコンポーネント130に送信されてもよい。別の例においては、ユーザがそのユーザのガレージを開けるために「オーケー、アシスタント。ガレージの扉を開けて」と言う必要があるのではなく、ユーザは、その代わりに特定のジェスチャを行い、クライアントデバイス106を見て、ジェスチャを行うおよび/もしくはクライアントデバイス106を見る間にまたはジェスチャを行うおよび/もしくはクライアントデバイス106を見るのと時間的に近接して(たとえば、その前および/もしくは後の閾値の時間以内に)「ガレージの扉を開けて」とだけ言う可能性がある。口頭による発話「ガレージの扉を開けて」に対応するデータ(たとえば、口頭による発話をキャプチャするオーディオデータまたはそのテキストのもしくはその他の意味的変換)が、ジェスチャおよび向けられている凝視を検出することに応じて、ならびに口頭による発話がジェスチャおよび向けられている凝視の間におよび/またはジェスチャおよび向けられている凝視と時間的に近接して受信されることに応じてクライアントデバイス106によってクラウドベース自動化アシスタントコンポーネント130に送信されてもよい。一部の実装において、クライアントデバイス106によるデータの送信は、その他の条件モジュール118が1つまたは複数の追加的な条件の発生を判定することをさらに条件としてもよい。たとえば、データの送信は、音声活動がオーディオデータ内に存在することを示す、その他の条件モジュール118によって実行されるオーディオデータのローカルの音声活動検出処理にさらに基づいてもよい。また、たとえばデータの送信は、追加的にまたは代替的にオーディオデータがジェスチャおよび向けられている凝視を与えたユーザに対応するとその他の条件モジュール118によって判定することにさらに基づいてもよい。たとえば、(クライアントデバイス106に対する)ユーザの方向が、視覚データに基づいて判定されることが可能であり、データの送信は、(たとえば、ビームフォーミングおよび/またはその他の技術を使用して)オーディオデータ内の口頭による発話が同じ方向から来るとその他の条件モジュール118によって判定することにさらに基づいてもよい。また、たとえばユーザのユーザプロファイルが、(たとえば、顔認識を使用して)視覚データに基づいて決定されることが可能であり、データの送信は、オーディオデータ内の口頭による発話がユーザプロファイルに一致する声の特徴を有するとその他の条件モジュール118によって判定することにさらに基づいてもよい。さらに別の例として、データの送信は、追加的にまたは代替的にユーザの口の動きがユーザの検出されたジェスチャおよび/もしくは向けられている凝視と同時に起こったかまたは検出されたジェスチャおよび/もしくは向けられている凝視の閾値の量の時間以内に起こったと、視覚データに基づいてその他の条件モジュール118によって判定することにさらに基づいてもよい。その他の条件モジュール118は、オプションでその他の条件が存在すると判定する際に1つまたは複数のその他の機械学習モデル119を利用することができる。凝視およびジェスチャモジュール116のならびにその他の条件モジュール118の実装のさらなる説明が、本明細書において(たとえば、
図2A~
図2Cを参照して)与えられる。
【0039】
クライアントコンピューティングデバイス106およびクラウドベース自動化アシスタントコンポーネント130を動作させるコンピューティングデバイスの各々は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にするためのその他のコンポーネントとを含んでもよい。クライアントコンピューティングデバイス106によっておよび/または自動化アシスタント120によって実行される動作は、複数のコンピュータシステムに分散されてもよい。自動化アシスタント120は、たとえばネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装されてもよい。
【0040】
上述のように、様々な実装において、クライアントコンピューティングデバイス106は、自動化アシスタントクライアント110を動作させてもよい。それらの様々な実装の一部において、自動化アシスタントクライアント110は、音声キャプチャモジュール112、上述の視覚的キャプチャモジュール114、および呼び出しエンジン115を含んでもよく、呼び出しエンジン115は、凝視およびジェスチャモジュール116ならびに任意でその他の条件モジュール118を含んでもよい。その他の実装において、音声キャプチャモジュール112、視覚的キャプチャモジュール114、および/または呼び出しエンジン115の1つまたは複数の態様は、自動化アシスタントクライアント110とは別に、たとえば1つまたは複数のクラウドベース自動化アシスタントコンポーネント130によって実装されてもよい。
【0041】
様々な実装において、ハードウェアとソフトウェアとの任意の組合せを使用して実装される場合がある音声キャプチャモジュール112は、ユーザの口頭による発話のオーディオ録音をキャプチャするためのマイクロフォン109またはその他の圧力センサなどのハードウェアとインターフェースをとってもよい。様々な種類の処理が、下で説明されるように、様々な目的でこのオーディオ録音に対して実行されてもよい。様々な実装において、ハードウェアとソフトウェアとの任意の組合せを使用して実装される場合がある視覚的キャプチャモジュール114は、視覚センサ107の任意の適応可能な視界に対応する1つまたは複数の視覚フレーム(たとえば、デジタル画像)をキャプチャするための視覚的コンポーネント107とインターフェースを取るように構成されてもよい。
【0042】
音声キャプチャモジュール112は、上述のように、たとえばマイクロフォン109によってユーザの音声をキャプチャするように構成されてもよい。追加的にまたは代替的に、一部の実装において、音声キャプチャモジュール112は、たとえばスピーチトゥテキスト("STT")処理技術を使用してそのキャプチャされたオーディオをテキストおよび/またはその他の表現もしくは埋め込み(embedding)に変換するようにさらに構成されてもよい。しかし、クライアントデバイス106が計算リソース(たとえば、プロセッササイクル、メモリ、バッテリなど)の点で比較的制約される場合があるので、クライアントデバイス106のローカルにある音声キャプチャモジュール112は、有限の数の異なる口頭によるフレーズ~自動化アシスタント120を呼び出すフレーズなど~をテキストに(またはより低い次元の埋め込みなどのその他の形態に)変換するように構成されてもよい。その他の音声入力が、クラウドベース自動化アシスタントコンポーネント130に送信されてもよく、クラウドベース自動化アシスタントコンポーネント130は、クラウドベースSTTモジュール132を含んでもよい。
【0043】
クラウドベースTTSモジュール131は、テキストデータ(たとえば、自動化アシスタント120によって作られた自然言語応答)をコンピュータによって生成される音声出力に変換するためにクラウドの実質的に制限のないリソースを利用するように構成されてもよい。一部の実装において、TTSモジュール131は、コンピュータによって生成される音声出力を、たとえば1つまたは複数のスピーカを使用して直接出力されるようにクライアントデバイス106に提供してもよい。その他の実装において、自動化アシスタント120によって生成されたテキストデータ(たとえば、自然言語応答)は、クライアントデバイス106に提供されてもよく、それから、クライアントデバイス106のローカルのTTSモジュールが、テキストデータをローカルで出力されるコンピュータによって生成される音声に変換してもよい。
【0044】
クラウドベースSTTモジュール132は、音声キャプチャモジュール112によってキャプチャされた音声データをテキストに変換するためにクラウドの実質的に制限のないリソースを利用するように構成されてもよく、それから、テキストは、自然言語理解モジュール135に提供されてもよい。一部の実装において、クラウドベースSTTモジュール132は、音声のオーディオ録音を1つまたは複数の音素に変換し、それから、1つまたは複数の音素をテキストに変換してもよい。追加的にまたは代替的に、一部の実装において、STTモジュール132は、状態復号グラフ(state decoding graph)を使用してもよい。一部の実装において、STTモジュール132は、ユーザの発話の複数の候補テキスト解釈を生成し、1つまたは複数の技術を利用して候補から所与の解釈を選択してもよい。
【0045】
自動化アシスタント120(および特にクラウドベース自動化アシスタントコンポーネント130)は、意図理解モジュール135、上述のTTSモジュール131、上述のSTTモジュール132、および本明細書においてより詳細に説明されるその他のコンポーネントを含んでもよい。一部の実装において、自動化アシスタント120のモジュールおよび/またはモジュールのうちの1つまたは複数は、省略され、組み合わされ、および/または自動化アシスタント120とは別であるコンポーネントに実装されてもよい。一部の実装において、意図理解モジュール135、TTSモジュール131、STTモジュール132などの自動化アシスタント120のコンポーネントのうちの1つまたは複数は、クライアントデバイス106に少なくとも部分的に(たとえば、クラウドベース実装と組み合わせてまたはクラウドベース実装を排除して)実装されてもよい。
【0046】
一部の実装において、自動化アシスタント120は、クライアントデバイス106を介してユーザに対して聞こえるようにおよび/またはグラフィカルにレンダリングするための様々なコンテンツを生成する。たとえば、自動化アシスタント120は、天気予報、毎日のスケジュールなどのコンテンツを生成してもよく、本明細書において説明されるようにユーザからのジェスチャおよび/または向けられている凝視を検出することに応じてコンテンツをレンダリングさせることができる。また、たとえば自動化アシスタント120は、クライアントデバイス106を介して与えられたユーザの自由形式の自然言語入力に応じる、クライアントデバイスの視覚的コンポーネント107からの視覚データによって検出されるユーザのジェスチャに応じるなどによりコンテンツを生成してもよい。本明細書において使用されるとき、自由形式の入力は、ユーザによって作られ、ユーザによる選択のために提示される一群の選択肢に制約されない入力である。自由形式の入力は、たとえばタイピングされる入力および/または口で言われる入力であることが可能である。
【0047】
意図理解モジュール135の自然言語プロセッサ133は、クライアントデバイス106を介してユーザによって生成された自然言語入力を処理し、自動化アシスタント120の1つまたは複数のその他のコンポーネントによる使用のために(たとえば、テキスト形式の)注釈付きの出力を生成してもよい。たとえば、自然言語プロセッサ133は、クライアントデバイス106の1つまたは複数のユーザインターフェースの入力デバイスを介してユーザによって生成される自然言語の自由形式の入力を処理してもよい。生成される注釈付きの出力は、自然言語入力の1つまたは複数の注釈および自然言語入力の語のうちの1つまたは複数(たとえば、すべて)を含む。
【0048】
一部の実装において、自然言語プロセッサ133は、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、自然言語プロセッサ133は、個々の単語を形態素に分割するおよび/または形態素にたとえばそれらの形態素のクラスによって注釈を付ける場合がある形態モジュールを含んでもよい。また、自然言語プロセッサ133は、語にそれらの語の文法的役割によって注釈を付けるように構成された品詞タガーを含んでもよい。また、たとえば一部の実装において、自然言語プロセッサ133は、追加的におよび/また代替的に、自然言語入力内の語の間の統語的関係を決定するように構成された依存関係パーサ(図示せず)を含んでもよい。
【0049】
一部の実装において、自然言語プロセッサ133は、追加的におよび/また代替的に、(たとえば、文学のキャラクタ、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のセグメント内のエンティティの言及に注釈を付けるように構成されたエンティティタガー(図示せず)を含んでもよい。一部の実装において、エンティティについてのデータは、ナレッジグラフ(図示しない)などの1つまたは複数のデータベースに記憶されてもよく、自然言語プロセッサ133のエンティティタガーは、エンティティのタグ付けにそのようなデータベースを利用することができる。
【0050】
一部の実装において、自然言語プロセッサ133は、追加的におよび/また代替的に、1つまたは複数の状況から得られる手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一指示(coreference)リゾルバ(図示せず)を含んでもよい。たとえば、同一指示リゾルバは、自然言語入力"I liked Hypothetical Cafe last time we ate there"内の語"there"を"Hypothetical Cafe"に解決するために利用されてもよい。
【0051】
一部の実装において、自然言語プロセッサ133の1つまたは複数のコンポーネントは、自然言語プロセッサ133の1つまたは複数のその他のコンポーネントからの注釈に依拠してもよい。たとえば、一部の実装において、指定されたエンティティタガーは、特定のエンティティへのすべての言及に注釈を付ける際に同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠してもよい。また、たとえば一部の実装において、同一指示リゾルバは、同じエンティティへの言及をクラスタリングする際に依存関係パーサからの注釈に依拠してもよい。一部の実装においては、特定の自然言語入力を処理する際に、自然言語プロセッサ133の1つまたは複数のコンポーネントが、1つまたは複数の注釈を決定するために関連する以前の入力および/または特定の自然言語入力の外のその他の関連するデータを使用してもよい。
【0052】
意図理解モジュール135は、自動化アシスタント120とのインタラクションに従事するユーザの意図を決定するように構成される意図マッチャ134をさらに含んでもよい。
図1においては自然言語プロセッサ133とは別に示されるが、その他の実装において、意図マッチャ134は、自然言語プロセッサ133の(またはより広く自然言語プロセッサ133を含むパイプラインの)一体的な部分であってもよい。一部の実装において、自然言語プロセッサ133および意図マッチャ134は、集合的に上述の意図理解モジュール135を形成してもよい。
【0053】
意図マッチャ134は、たとえば(自然言語入力の注釈および語を含む場合がある)自然言語プロセッサ133からの出力に基づいて、クライアントデバイス106のタッチ式ディスプレイにおけるユーザのタッチ入力に基づいて、ならびに/または視覚データ内で検出されたジェスチャおよび/もしくはその他の視覚的な手掛かりに基づいてユーザの意図を決定するために様々な技術を使用してもよい。一部の実装において、意図マッチャ134は、たとえば文法と応答アクション(またはより広く意図)との間、視覚的な手掛かりと応答アクションとの間、および/またはタッチ入力と応答アクションとの間の複数のマッピングを含む1つまたは複数のデータベース(図示せず)にアクセスすることができてもよい。たとえば、マッピングに含まれる文法は、選択されるおよび/または経時的に学習されることが可能であり、ユーザのよくある意図を表してもよい。たとえば、1つの文法"play <artist>"が、<artist>による音楽をユーザによって運用されるクライアントデバイス106上で再生させる応答アクションを呼び出す意図にマッピングされてもよい。別の文法"[weather|forecast] today"は、"what's the weather today"および"what's the forecast for today?"などのユーザの問い合わせにマッチング可能であってもよい。別の例として、視覚的な手掛かりとアクションとのマッピングは、複数のユーザ(たとえば、すべてのユーザ)に当てはまることがある「包括的」マッピングおよび/またはユーザに固有のマッピングを含んでもよい。視覚的な手掛かりとアクションとのマッピングの一部の例は、ジェスチャに関するマッピングを含む。たとえば、「手を振る」ジェスチャが、(ジェスチャを与えるユーザに合わせて仕立てられた)仕立てられたコンテンツをユーザに対してレンダリングさせるアクションにマッピングされることが可能であり、「親指を立てる」ジェスチャが、「音楽再生」アクションにマッピングされることが可能であり、「ハイタッチ」ジェスチャが、スマートコーヒーメーカーをオンにすること、特定のスマート照明を点けること、およびニュースのまとめを聞こえるようにレンダリングすることなどの実行される自動化アシスタントのアクションの「ルーチン」にマッピングされることが可能である。
【0054】
文法に加えてまたは文法の代わりに、一部の実装において、意図マッチャ134は、1つまたは複数のトレーニングされた機械学習モデルを単独で、または1つもしくは複数の文法、視覚的な手掛かり、および/もしくはタッチ入力と組み合わせて使用してもよい。これらのトレーニングされた機械学習モデルも、1つまたは複数のデータベースに記憶されてもよく、たとえばユーザの発話および/または任意の検出されたユーザによって与えられた視覚的な手掛かりを示すデータを削減された次元の空間に埋め込み、それから、たとえばユークリッド距離、コサイン類似度などの技術を使用してどのその他の埋め込み(およびしたがって意図)が最も近いかを判定することによって意図を特定するようにトレーニングされてもよい。
【0055】
上の"play <artist>"の例示的な文法に見られるように、いくつかの文法は、スロット値(または「パラメータ」)によって埋められてもよいスロット(たとえば、<artist>)を有する。スロット値は、様々な方法で決定されてもよい。多くの場合、ユーザは、スロット値を先回りして与える。たとえば、文法"Order me a <topping> pizza"に関して、ユーザは、フレーズ"order me a sausage pizza"と言う可能性が高い場合があり、その場合、スロット<topping>は、自動的に埋められる。追加的にまたは代替的に、ユーザがスロット値を先を見越して与えることなしにユーザがスロット値によって満たされるスロットを含む文法を呼び出す場合、自動化アシスタント120が、ユーザにそれらのスロット値を求めてもよい(たとえば、"what type of crust do you want on your pizza?")。一部の実装において、スロットは、視覚コンポーネント107によってキャプチャされた視覚データに基づいて検出された視覚的な手掛かりに基づくスロット値によって埋められてもよい。たとえば、ユーザは、クライアントデバイス106の視覚的コンポーネント107に向かって3本の指を立てながら"Order me this many cat bowls"のようなことを発話する可能性がある。または、ユーザは、特定の映画のDVDのケースを持ちながら"Find me more movies like this"のようなことを発話する可能性がある。
【0056】
一部の実装において、自動化アシスタント120は、ユーザと、入力を受け取り、応答出力を提供する独立したソフトウェアプロセスである場合があるエージェントとの間のトランザクションを容易にし(たとえば、「仲介し」)てもよい。一部のエージェントは、たとえばクラウドベース自動化アシスタントコンポーネント130を動作させるコンピューティングシステムとは別であるコンピューティングシステム上で動作する場合がありまたは動作しない場合があるサードパーティアプリケーションの形態をとってもよい。意図マッチャ134によって特定される場合があるユーザの意図の1つの種類は、サードパーティアプリケーションを関与させることである。たとえば、自動化アシスタント120は、ピザ宅配サービスへのアプリケーションプログラミングインターフェース("API")へのアクセスを提供してもよい。ユーザは、自動化アシスタント120を呼び出し、"I'd like to order a pizza"などのコマンドを与えてもよい。意図マッチャ134は、このコマンドを、サードパーティピザ宅配サービスと関わり合うように自動化アシスタント120をトリガする文法にマッピングしてもよい。サードパーティピザ宅配サービスは、自動化アシスタント120に、ピザ宅配の注文を遂行するために満たされる必要があるスロットの最小限のリストを与えてもよい。自動化アシスタント120は、スロットのためのパラメータを求める自然言語出力を生成し、(クライアントデバイス106を介して)ユーザに与えてもよい。
【0057】
遂行モジュール138は、意図マッチャ134によって出力される予測された/推定された意図と、(ユーザによって先回りして与えられるかまたはユーザに求められるかに関わらず)関連するスロット値とを受信し、意図を遂行する(または「解決する」)ように構成されてもよい。様々な実装において、ユーザの意図の遂行(または「解決」)は、様々な遂行情報(「応答」情報またはデータとも呼ばれる)を、たとえば遂行モジュール138によって生成させる/取得させてもよい。
【0058】
遂行情報は、意図が様々な方法で遂行されてもよいので様々な形態を取ってもよい。ユーザが"Where were the outdoor shots of 'The Shining' filmed?"のように純然たる情報を要求すると仮定する。ユーザの意図は、たとえば意図マッチャ134によって検索クエリであるものと判定されてもよい。検索クエリの意図および内容が、遂行モジュール138に与えられてもよく、遂行モジュール138は、
図1に示されるように、応答情報に関して文書のコーパスおよび/またはその他のデータソース(たとえば、ナレッジグラフなど)を検索するように構成された1つまたは複数の検索モジュール150と通信してもよい。遂行モジュール138は、検索クエリを示すデータ(たとえば、クエリのテキスト、次元の削減された埋め込みなど)を検索モジュール150に提供してもよい。検索モジュール150は、GPS座標または"Timberline Lodge, Mt. Hood, Oregon"などのその他のより明示的な情報などの応答情報を提供してもよい。この応答情報は、遂行モジュール138によって生成される遂行情報の一部を形成してもよい。
【0059】
追加的にまたは代替的に、遂行モジュール138は、たとえば意図理解モジュール135から、ユーザの意図と、ユーザによって与えられたまたはその他の手段を使用して決定された任意のスロット値(たとえば、ユーザのGPS座標、ユーザの好みなど)とを受信し、応答アクションをトリガするように構成されてもよい。応答アクションは、たとえば品物/サービスを注文すること、タイマーを開始すること、リマインダを設定すること、通話を開始すること、メディアを再生すること、メッセージを送信すること、複数のアクションのルーチンを開始することなどを含んでもよい。一部のそのような実装において、遂行情報は、遂行に関連するスロット値、(場合によっては所定の応答から選択されてもよい)確認応答などを含んでもよい。
【0060】
追加的にまたは代替的に、遂行モジュール138は、(たとえば、時刻、過去のインタラクションなどに基づいて)ユーザの意図を推測し、それらの意図に関する応答情報を取得するように構成されてもよい。たとえば、遂行モジュール138は、ユーザのための毎日の予定の概要、ユーザのための天気予報、および/またはユーザのためのその他のコンテンツを取得するように構成されてもよい。さらに、遂行モジュール138は、ユーザに対してグラフィカルにおよび/または聞こえるようにレンダリングするためにそのようなコンテンツを「プッシュ」させてもよい。たとえば、そのようなコンテンツのレンダリングが、呼び出しエンジン115が特定のジェスチャおよび向けられている凝視の発生を検出することに応じて呼び出される休止状態にあった機能であることが可能である。
【0061】
自然言語ジェネレータ136は、様々なソースから取得されたデータに基づいて自然言語出力(たとえば、人間の音声をまねるように設計される単語/フレーズ)を生成するおよび/または選択するように構成されてもよい。一部の実装において、自然言語ジェネレータ136は、意図の遂行に関連する遂行情報を入力として受信し、遂行情報に基づいて自然言語出力を生成するように構成されてもよい。追加的にまたは代替的に、自然言語ジェネレータ136は、その自然言語ジェネレータ136がユーザのための自然言語出力を構成するために使用する場合があるサードパーティアプリケーションなどのその他のソースからの情報を受信してもよい。
【0062】
ここで
図2A、
図2B、および
図2Cを参照すると、凝視およびジェスチャモジュール116が特定のジェスチャおよび/または向けられている凝視をどのようにして検出することができるか、ならびに呼び出しエンジン115がそれに応じて1つまたは複数の以前休止状態にあった自動化アシスタントの機能をどのようにして呼び出すことができるかの様々な例が示される。
【0063】
最初に
図2Aに目を向けると、視覚的キャプチャモジュール114が、凝視およびジェスチャモジュール116に視覚フレームを提供する。一部の実装において、視覚的キャプチャモジュール114は、凝視およびジェスチャモジュール116に視覚フレームのリアルタイムストリームを提供する。それらの実装の一部において、視覚的キャプチャモジュール114は、クライアントデバイス106を有する環境内に人が存在することを示す別個の存在検知センサ105からの信号に応じて視覚フレームを提供し始める。たとえば、存在検知センサ105は、PIRセンサであることが可能であり、人の存在を検出することに応じて視覚的キャプチャモジュール114に信号を与えることができる。視覚的キャプチャモジュール114は、人の存在が検出されない限り、凝視およびジェスチャモジュール116にいかなる視覚フレームを提供することも控えてもよい。視覚的キャプチャモジュール114が凝視およびジェスチャモジュール116に視覚フレームを選択的にのみ提供するその他の実装においては、追加的なおよび/または代替的な手掛かりが、そのような提供を開始するために利用されてもよい。たとえば、人の存在は、音声キャプチャモジュール112からのオーディオデータに基づいて、1つもしくは複数のその他のコンポーネントによる視覚フレームの分析に基づいて、および/またはその他の信号に基づいて検出されてもよい。
【0064】
凝視およびジェスチャモジュール116は、向けられている凝視と特定のジェスチャとの両方の発生を監視するために1つまたは複数の機械学習モデル117を使用して視覚フレームを処理する。向けられている凝視と特定のジェスチャとの両方が検出されるとき、凝視およびジェスチャモジュール116は、呼び出しエンジン115に凝視およびジェスチャの検出のインジケーションを与える。
【0065】
図2Aにおいて、視覚的フレームおよび/または(音声キャプチャモジュール112によって提供される)オーディオデータは、その他の条件モジュール118にも提供される。その他の条件モジュール118は、1つまたは複数のその他の条件の発生を監視するために任意で1つまたは複数のその他の機械学習モデル119を使用して提供されたデータを処理する。たとえば、その他の条件は、オーディオデータに基づいて任意の音声活動を検出すること、オーディオデータ内の口頭による呼び出しフレーズの存在を検出すること、ユーザの方向または位置からである音声活動をオーディオデータに基づいて検出すること、ユーザが認可されたユーザであることを視覚的フレームおよび/またはオーディオデータに基づいて検出すること、(ジェスチャおよび向けられている凝視を与えた)ユーザの口の動きを視覚的フレームに基づいて検出することなどであってもよい。その他の条件が検出されるとき、その他の条件モジュール118は、呼び出しエンジン115にその他の条件の発生のインジケーションを与える。
【0066】
呼び出しエンジン115が向けられている凝視およびジェスチャのインジケーションならびにその他の条件の時間的に近接したインジケーションを受信するとき、呼び出しエンジン115は、休止状態にあった機能の呼び出し101を引き起こす。たとえば、休止状態にあった機能の呼び出し101は、クライアントデバイス106のディスプレイスクリーンをアクティブ化すること、コンテンツをクライアントデバイス106によって視覚的におよび/もしくは聞こえるようにレンダリングさせること、視覚的フレームおよび/もしくはオーディオデータをクライアントデバイス106によって1つまたは複数のクラウドベース自動化アシスタントコンポーネント130に送信させることなどのうちの1つまたは複数を含んでもよい。
【0067】
一部の実装においては、
図2Bおよび
図2Cに関連してより詳細に説明されるように、凝視およびジェスチャモジュール116は、向けられている凝視を検出するために1つまたは複数の第1の機械学習モデル117を使用し、ジェスチャを検出するために1つまたは複数の第2の機械学習モデル117を使用することができる。
【0068】
一部のその他の実装において、凝視およびジェスチャモジュール116は、視覚的フレーム(またはその特徴)を入力として受け付け、特定のジェスチャおよび向けられている凝視が発生したかどうかを示す出力を(モデル上の入力の処理に基づいて)生成するために利用されてもよいエンドツーエンドの機械学習モデルを利用することができる。そのような機械学習モデルは、たとえば1つまたは複数の記憶層(たとえば、長期短期記憶(LSTM: long short-term memory)層)を含む再帰型ニューラルネットワーク(RNN)モデルなどのニューラルネットワークモデルであることが可能である。そのようなRNNモデルのトレーニングは、視覚的フレームのシーケンス(たとえば、動画)をトレーニング例入力として含み、シーケンスがジェスチャと向けられている凝視との両方を含むかどうかのインジケーションをトレーニング例出力として含むトレーニング例に基づいてもよい。たとえば、トレーニング例出力は、ジェスチャと向けられている凝視との両方が存在するかどうかを示す単一の値であることが可能である。別の例として、トレーニング例出力は、向けられている凝視が存在するかどうかを示す第1の値と、N個のジェスチャのうちの対応する1つが含まれるかどうかをそれぞれ示すN個の追加的な値とを含んでもよい(それによって、N個の別個のジェスチャの各々に関する対応する確率を予測するためのモデルのトレーニングを可能にする)。さらに別の例として、トレーニング例出力は、向けられている凝視が存在するかどうかを示す第1の値と、1つまたは複数の特定のジェスチャのいずれかが存在するかどうかを示す第2の値とを含んでもよい(それによって、いずれかのジェスチャが含まれるかどうかに対応する確率を予測するためのモデルのトレーニングを可能にする)。
【0069】
モデルがN個の別個のジェスチャの各々に関する対応する確率を予測するようにトレーニングされる実装において、凝視およびジェスチャモジュール116は、オプションでN個のジェスチャのうちのどれが発生したかのインジケーションを呼び出しエンジン115に与えることができる。さらに、呼び出しエンジン115による休止状態にあった機能の呼び出し101は、N個の別個のジェスチャのうちのどれが発生したかに依存してもよい。たとえば、「手を振る」ジェスチャに関して、呼び出しエンジン115は、特定のコンテンツをクライアントデバイスのディスプレイスクリーン上にレンダリングさせることができ、「親指を立てる」ジェスチャに関して、呼び出しエンジン115は、オーディオデータおよび/または視覚的フレームをクラウドベース自動化アシスタントコンポーネント130へ送信させることができ、「ハイタッチ」ジェスチャに関して、呼び出しエンジン115は、スマートコーヒーメーカーをオンにすること、特定のスマート照明を点けること、およびニュースのまとめを聞こえるようにレンダリングすることなどの自動化アシスタントのアクションの「ルーチン」を実行させることができる。
【0070】
図2Bは、ジェスチャおよび凝視検出モジュール116がジェスチャの発生を監視する際にジェスチャ機械学習モデル117Aを利用するジェスチャモジュール116Aを含み、向けられている凝視の発生を監視する際に凝視機械学習モデル117Bを利用する凝視モジュール116Bを含む例を示す。その他の条件モジュール118は、簡単にするために
図2Bに示されないが、オプションで
図2Aに関連して説明されたのと同様の方法でジェスチャモジュール116Aおよび117Bと組み合わせてやはり利用されてもよい。
【0071】
図2Bにおいて、視覚的キャプチャモジュール114は、視覚フレームを提供する。視覚フレームのより低解像度のバージョンが、ジェスチャモジュール116Aに提供され、視覚フレームのより高解像度のバージョンが、バッファ104に記憶される。より低解像度のバージョンは、より高解像度のバージョンと比べてより低解像度である。より高解像度のバージョンは、未圧縮であるかまたはより低解像度のバージョンと比べてより低圧縮であることが可能である。バッファ104は、先入れ先出しバッファであることが可能であり、より高解像度の視覚フレームの最も新しい継続期間を一時的に記憶することができる。
【0072】
図2Bの例において、ジェスチャモジュール116Aは、ジェスチャの存在を監視する際により低解像度の視覚フレームを処理することができ、凝視モジュール116Bは、ジェスチャモジュール116Aがジェスチャの発生を検出するまで非アクティブであることができる。ジェスチャの発生が検出されるとき、ジェスチャモジュール116Aは、ジェスチャの検出のインジケーションを凝視モジュール116Bおよび呼び出しエンジン115に提供することができる。凝視モジュール116Bは、ジェスチャの検出のインジケーションを受信することに応じてアクティブ化され、バッファ104からバッファリングされたより高解像度の視覚フレームを取り出し、向けられている凝視が存在するかどうかを判定する際にバッファリングされたより高解像度の視覚フレーム(および任意でさらに高解像度の視覚フレーム)を利用することができる。このようにして、凝視モジュール116Bは、選択的にのみアクティブ化され、それによって、それ以外の方法では凝視モジュール116Bによるより高解像度の視覚フレームの追加的な処理によって消費されたであろう計算リソースを節約する。
【0073】
ジェスチャモジュール116Aは、特定のジェスチャを検出するために1つまたは複数のジェスチャ機械学習モデル117Aを使用することができる。そのような機械学習モデルは、たとえば1つまたは複数の記憶層を含むRNNモデルなどのニューラルネットワークモデルであることが可能である。そのようなRNNモデルのトレーニングは、視覚的フレームのシーケンス(たとえば、動画)をトレーニング例入力として含み、シーケンスが1つまたは複数の特定のジェスチャを含むかどうかのインジケーションをトレーニング例出力として含むトレーニング例に基づいてもよい。たとえば、トレーニング例出力は、単一の特定のジェスチャが存在するかどうかを示す単一の値であることが可能である。たとえば、単一の値は、単一の特定のジェスチャが存在しないとき"0"であり、単一の特定のジェスチャが存在するとき"1"であることが可能である。それらの例の一部においては、異なる単一の特定のジェスチャに合わせてそれぞれ仕立てられた複数のジェスチャ機械学習モデル117Aが利用される。別の例として、トレーニング例出力は、N個のジェスチャのうちの対応する1つが含まれるかどうかをそれぞれ示すN個の値を含んでもよい(それによって、N個の別個のジェスチャの各々に関する対応する確率を予測するためのモデルのトレーニングを可能にする)。モデルがN個の別個のジェスチャの各々に関する対応する確率を予測するようにトレーニングされる実装において、ジェスチャモジュール116Aは、オプションでN個のジェスチャのうちのどれが発生したかのインジケーションを呼び出しエンジン115に与えることができる。さらに、呼び出しエンジン115による休止状態にあった機能の呼び出しは、N個の別個のジェスチャのうちのどれが発生したかに依存してもよい。
【0074】
凝視モジュール116Bは、向けられている凝視を検出するために1つまたは複数の凝視機械学習モデル117Bを使用することができる。そのような機械学習モデルは、たとえば畳み込みニューラルネットワーク(CNN)モデルなどのニューラルネットワークモデルであることが可能である。そのようなCNNモデルのトレーニングは、視覚的フレーム(たとえば、画像)をトレーニング例入力として含み、画像が向けられている凝視を含むかどうかのインジケーションをトレーニング例出力として含むトレーニング例に基づいてもよい。たとえば、トレーニング例出力は、向けられている凝視が存在するかどうかを示す単一の値であることが可能である。たとえば、単一の値は、向けられている凝視が存在しないとき"0"であること、画像をキャプチャするセンサに真っ直ぐ向けられているかまたは画像をキャプチャするセンサの5度以内に向けられている凝視が存在するとき"1"であること、画像をキャプチャするセンサの5~10度以内に向けられている凝視が存在するとき"0.75"であることなどが可能である。
【0075】
それらのおよび/またはその他の実装の一部において、凝視モジュール116Bは、向けられている凝視が少なくとも閾値の確率でおよび/または少なくとも閾値の継続時間の間検出されるときにのみ向けられている凝視を判定する。たとえば、画像フレームのストリームが、CNNモデルを使用して処理されることが可能であり、各フレームの処理は、フレームが向けられている凝視を含む対応する確率をもたらしてもよい。凝視モジュールは、(閾値の継続時間に対応する)画像フレームのシーケンスの少なくともX%が閾値を満たす対応する確率を有する場合にのみ向けられている凝視が存在すると判定してもよい。たとえば、X%が60%であり、確率の閾値が0.7であり、閾値の継続時間が0.5秒であると仮定する。さらに、10画像フレームが0.5秒に対応すると仮定する。画像フレームが処理されて[0.75,0.85,0.5,0.4,0.9,0.95,0.85,0.89,0.6,0.85]の確率を生じる場合、フレームの70%が0.7を超える確率で向けられている凝視を示したので、向けられている凝視は、検出されてもよい。これらのおよびその他の方法では、たとえユーザがそのユーザの凝視の方向を短い間逸らすとしても、向けられている凝視が検出されてもよい。追加的なおよび/または代替的な機械学習モデル(たとえば、RNNモデル)および/または技術が、少なくとも閾値の継続時間で発生する、向けられている凝視を検出するために利用されてもよい。
【0076】
図2Cは、ジェスチャおよび凝視検出モジュール116がジェスチャの発生を監視する際にジェスチャ機械学習モデル117Aを利用するジェスチャモジュール116Aを含み、向けられている凝視の発生を監視する際に凝視機械学習モデル117Bを利用する凝視モジュール116Bを含む別の例を示す。その他の条件モジュール118は、簡単にするために
図2Cに示されないが、オプションで
図2Aに関連して説明されたのと同様の方法でジェスチャモジュール116Aおよび117Bと組み合わせてやはり利用されてもよい。また、
図2Bのバッファ104およびより高解像度/より低解像度の視覚フレームは、簡単にするために
図2Cに示されないが、同様の技術が、
図2Cにおいて実施されてもよい(たとえば、視覚フレームのより高解像度の部分が、凝視モジュール116Bに提供されてもよい)。
【0077】
図2Cにおいて、視覚的キャプチャモジュール114は、視覚フレームを検出および分類モジュール116Cに提供する。検出および分類モジュール116Cは、各視覚フレームの様々な領域を分類するために物体検出および分類機械学習モデル117Cを利用する。たとえば、検出および分類モジュール116Cは、人に対応する各視覚フレームの人の領域(もしあれば)を分類し、各視覚フレームに関してそのような人の領域のインジケーションをジェスチャモジュール116Aおよび凝視モジュール116Bに提供することができる。また、たとえば検出および分類モジュール116Cは、人の体の領域(たとえば、腕および胴体)に対応する各視覚フレームの領域(もしあれば)を分類し、各視覚フレームに関してそのような領域のインジケーションをジェスチャモジュール116Aに提供することができる。また、たとえば検出および分類モジュール116Cは、人の顔の領域に対応する各視覚フレームの領域(もしあれば)を分類し、各視覚フレームに関してそのような領域のインジケーションを凝視モジュール116Bに提供することができる。
【0078】
一部の実装において、ジェスチャモジュール116Aは、提供された領域を利用して各視覚フレームの対応する部分のみを処理することができる。たとえば、ジェスチャモジュール116Aは、人および/または体の領域を含む部分のみを処理するために視覚フレームを「クロップ」し、サイズ変更することができる。それらの実装の一部において、ジェスチャ機械学習モデル117Aは、「クロップ」される視覚フレームに基づいてトレーニングされることが可能であり、サイズ変更は、そのようなモデルの入力の寸法に合うサイズへのサイズ変更であることが可能である。一部の追加的なまたは代替的な実装において、ジェスチャモジュール116Aは、提供された領域を利用していくつかの視覚フレーム(たとえば、人および/または体の領域を含まないと示された視覚フレーム)の処理をすべてまとめてスキップすることができる。さらにその他の実装において、ジェスチャモジュール116Aは、提供された領域を各視覚フレームの処理の焦点を合わせるための注目(attention)メカニズムとして(たとえば、ジェスチャ機械学習モデル117Aへの別個の注目入力として)利用することができる。
【0079】
同様に、一部の実装において、凝視モジュール116Bは、提供された領域を利用して各視覚フレームの対応する部分のみを処理することができる。たとえば、凝視モジュール116Bは、人および/または顔の領域を含む部分のみを処理するために視覚フレームを「クロップ」し、サイズ変更することができる。それらの実装の一部において、凝視機械学習モデル117Bは、「クロップ」される視覚フレームに基づいてトレーニングされることが可能であり、サイズ変更は、そのようなモデルの入力の寸法に合うサイズへのサイズ変更であることが可能である。一部の追加的なまたは代替的な実装において、凝視モジュール116Bは、提供された領域を利用していくつかの視覚フレーム(たとえば、人および/または顔の領域を含まないと示された視覚フレーム)の処理をすべてまとめてスキップすることができる。さらにその他の実装において、凝視モジュール116Bは、提供された領域を各視覚フレームの処理の焦点を合わせるための注目メカニズムとして(たとえば、凝視機械学習モデル117Bへの別個の注目入力として)利用することができる。
【0080】
一部の実装において、検出および分類モデル116Cは、追加的にまたは代替的に特定の領域のインジケーションをその他の条件モジュール118による使用のために(簡単にするために
図2Cに図示されていない)その他の条件モジュール118に提供することができる。たとえば、顔の領域が、口の動きが非アクティブな機能を呼び出すための追加的な条件であるときに対応する口の動き機械学習モデルを利用して口の動きを検出する際にその他の条件モジュール118によって使用されてもよい。
【0081】
一部の実装において、検出および分類モデル116Cは、追加的にまたは代替的にTVまたはその他のビデオディスプレイソースとして分類される領域のインジケーションをジェスチャモジュール116Aおよび凝視モジュール116Bに提供することができる。それらの実装の一部において、モジュール116Aおよび116Bは、処理される視覚フレームからそれらの領域をクロップする、それらの領域から外れたところに注目する、および/またはそれ以外の方法で検出においてそれらの領域を無視するかもしくは検出がそのような領域に基づく可能性を低くすることができる。これらのおよびその他の方法では、休止状態にあった機能の誤検出された呼び出しが、軽減されてもよい。
【0082】
図3は、
図1のクライアントデバイス106および視覚コンポーネント107の例を示す。
図3において、例示的なクライアントデバイスは、106Aとして示され、スピーカおよびディスプレイをさらに含む。
図3において、例示的な視覚コンポーネントは、107Aとして示され、カメラである。
図3は、(ユーザの右手付近の「動き」の線によって示される)手の動きのジェスチャおよびカメラ107Aに向けられている凝視を与えるユーザ301も示す。
【0083】
また、
図3は、アシスタントデバイスならびにジェスチャおよび向けられている凝視を与えるユーザの例を示し、ユーザがジェスチャおよび向けられている凝視を与えているときにカメラ107Aによってキャプチャされた例示的な画像360も示す。ユーザとユーザの後ろにある(したがって
図3の斜視図の中には見られない)テレビとが、画像360内にキャプチャされていることが分かる。
【0084】
画像360内に、境界ボックス361が与えられ、人に対応すると(たとえば、
図2Cの検出および分類モジュール116Cによって)判定されてもよい画像の領域を表す。一部の実装においては、クライアントデバイス106A上で動作するジェスチャ検出モジュールが、その部分が人に対応する部分として示されることに基づいて特定のジェスチャを監視する際に画像のその部分のみを処理する(またはその部分に注目する)ことができる。
【0085】
画像360内に、境界ボックス362も与えられ、顔に対応すると(たとえば、
図2Cの検出および分類モジュール116Cによって)判定されてもよい画像の領域を表す。一部の実装においては、クライアントデバイス106A上で動作する凝視検出モジュールが、その部分が顔に対応する部分として示されることに基づいて向けられている凝視を監視する際に画像のその部分のみを処理する(またはその部分に注目する)ことができる。単一の画像のみが
図3に示されるが、様々な実装において、向けられている凝視の検出および/またはジェスチャの検出は、本明細書において説明されるように画像のシーケンスに基づくことが可能である。
【0086】
画像360内に、境界ボックス363も与えられ、ビデオディスプレイに対応すると判定されることが可能であり、視覚的な手掛かりの誤検出を引き起こす可能性がある画像の領域を表す。たとえば、テレビは、ジェスチャを行う、カメラを見るなどしている1人または複数の人を示す動画をレンダリングする可能性があり、それらの行っていることのいずれかが、ジェスチャおよび/または向けられている凝視の発生として誤って解釈される可能性がある。一部の実装において、
図2Cの検出および分類モジュール116Cは、(たとえば、TVの分類を検出することに基づいて)そのような領域を決定することができ、ならびに/またはそのような領域は、領域がビデオディスプレイの表示周波数(たとえば、約60Hz、120Hz、および/もしくはその他の典型的なビデオディスプレイ周波数)に対応する表示周波数を有すると判定するための画像360およびそれに先立つ画像の分析に基づいて決定されてもよい。一部の実装において、凝視検出モジュールおよび/またはジェスチャモジュールは、処理される視覚フレームからその領域をクロップする、その領域から外れたところに注目する、および/またはそれ以外の方法で検出においてその領域を無視するかもしくは検出がそのような領域に基づく可能性を低くすることができる。これらのおよびその他の方法では、休止状態にあった機能の誤検出された呼び出しが、軽減されてもよい。
【0087】
図4Aは、本明細書において開示される実装による例示的な方法400を示す流れ図である。
図4Bは、
図4Aのブロック402、404、および406の実装の例を示す流れ図である。便宜上、
図4Aおよび
図4Bの流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、自動化アシスタント120を実装するコンピューティングシステム(たとえば、クライアントデバイスおよび/または遠隔のコンピューティングシステム)の1つまたは複数のコンポーネントなどの様々なコンピュータシステムの様々なコンポーネントを含んでもよい。さらに、方法400の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加されてもよい。
【0088】
ブロック402において、システムは、視覚コンポーネントからの出力に基づく視覚データを受信する。一部の実装において、視覚コンポーネントは、アシスタントクライアントを含むクライアントデバイスに統合されてもよい。一部の実装において、視覚コンポーネントは、クライアントデバイスと別れているが、クライアントデバイスと通信することができる。たとえば、視覚コンポーネントは、アシスタントクライアントを含むクライアントデバイスと有線および/またはワイヤレス通信するスタンドアロンのスマートカメラを含んでもよい。
【0089】
ブロック404において、システムは、ジェスチャと向けられている凝視との両方の発生を監視するために少なくとも1つの機械学習モデルを使用して視覚データを処理する。
【0090】
ブロック406において、システムは、ブロック404の監視に基づいてジェスチャと凝視との両方が検出されたかどうかを判定する。検出されていない場合、システムは、ブロック402に戻り、追加の視覚データを受信し、ブロック404および406の別の反復を実行する。一部の実装において、システムは、ジェスチャおよび向けられている凝視が同時に起こるかまたは互いに閾値の時間的近さ以内に起こることを検出することに基づいてジェスチャと凝視との両方が検出されたと判定する。一部の追加的なまたは代替的な実装において、システムは、ジェスチャが少なくとも閾値の継続時間がある(たとえば、少なくとも継続時間Xの間「手を振る」もしくは少なくとも継続時間Xの間「親指を立てる」)、および/または向けられている凝視が(任意でジェスチャの継続時間に関して使用される閾値の継続時間と同じであってもよいかもしくは異なってもよい)少なくとも閾値の継続時間があることを検出することに基づいて、ジェスチャと凝視との両方が検出されたと判定する。
【0091】
ブロック406の反復において、システムがブロック404の監視に基づいてジェスチャと凝視との両方が検出されたと判定する場合、システムは、オプションでブロック408に(またはブロック408が含まれないときは直接ブロック410に)進む。
【0092】
任意のブロック408において、システムは、1つまたは複数のその他の条件が満たされるかどうかを判定する。1つまたは複数のその他の条件が満たされない場合、システムは、ブロック402に戻り、追加の視覚データを受信し、ブロック404、406、および408の別の反復を実行する。1つまたは複数のその他の条件が満たされる場合、システムは、ブロック410に進む。システムは、ブロック402において受信された視覚データ、オーディオデータ、および/またはその他のセンサもしくは非センサデータを使用して1つまたは複数のその他の条件が満たされるかどうかを判定することができる。本明細書において明示的に説明される条件などの様々なその他の条件が、システムによって考慮されてもよい。
【0093】
ブロック410において、システムは、1つまたは複数の非アクティブな自動化アシスタントの機能をアクティブ化する。システムは、本明細書において明示的に説明される非アクティブな自動化アシスタントの機能などの様々な非アクティブな自動化アシスタントの機能をアクティブ化することができる。一部の実装においては、異なる種類のジェスチャが、ブロック404において監視されることが可能であり、どの非アクティブな機能がブロック410においてアクティブ化されるかは、ブロック404の監視において検出される特定の種類のジェスチャに依存してもよい。
【0094】
ブロック412において、システムは、ブロック410においてアクティブ化された自動化アシスタントの機能に関して非アクティブ化条件を監視する。非アクティブ化条件は、たとえばタイムアウト、検出された口頭による入力および/もしくは検出された向けられている凝視の欠如の少なくとも閾値の継続時間、(口頭による、ジェスチャで示された、もしくはタッチ入力された)明示的な停止コマンド、ならびに/またはその他の条件を含んでもよい。
【0095】
ブロック414において、システムは、ブロック412の監視に基づいて非アクティブ化条件が検出されたかどうかを判定する。非アクティブ化条件が検出されていない場合、システムは、ブロック412に戻り、非アクティブ化条件の監視を続ける。非アクティブ化条件が検出された場合、システムは、ブロック410においてアクティブ化された機能を非アクティブ化することができ、視覚データを再び受信し、呼び出しジェスチャと凝視との両方の発生を再び監視するためにブロック402に戻る。
【0096】
アクティブ化された機能が1つまたは複数のクラウドベース自動化アシスタントコンポーネントへのオーディオデータのストリーミングを含むブロック412および414の一例として、システムは、(たとえば、VADを使用して)音声活動の欠如を少なくとも閾値の継続時間の間検出することに応じて、明示的な停止コマンドに応じて、または少なくとも閾値の継続時間の間ユーザの凝視がクライアントデバイスに向けられなかったことを(継続的な凝視の監視によって)検出することに応じてストリーミングを停止することができる。
【0097】
ここで
図4Bに目を向けると、
図4Aのブロック402、404、および406の実装の一例が示される。
図4Bは、ジェスチャの検出および向けられている凝視の検出が別個のモデルを利用して実行され、向けられている凝視の監視が最初にジェスチャを検出することに応じてのみ行われる例を示す。
図4Bにおいて、ブロック402Aは、
図4Aのブロック402の特定の例であり、ブロック404Aおよび404Bは、
図4Aのブロック404の特定の例であり、ブロック406Aおよび406Bは、
図4Aのブロック406の特定の例である。
【0098】
ブロック402Aにおいて、システムは、視覚データを受信し、バッファリングする。
【0099】
ブロック404Aにおいて、システムは、ジェスチャの発生を監視するためにジェスチャ機械学習モデルを使用して視覚データを処理する。一部の実装において、ブロック404Aは、視覚データの一部分が人および/または体の領域に対応することを検出することに基づいてジェスチャ機械学習モデルを使用してその一部分をシステムが処理する下位ブロック404A1を含む。
【0100】
ブロック406Aにおいて、システムは、ブロック404Aの監視に基づいてジェスチャが検出されたかどうかを判定する。ジェスチャが検出されていない場合、システムは、ブロック402Aに戻り、追加の視覚データを受信し、バッファリングし、ブロック404Aの別の反復を実行する。
【0101】
ブロック406Aの反復において、システムがブロック404Aの監視に基づいてジェスチャが検出されたと判定する場合、システムは、ブロック404Bに進む。
【0102】
ブロック404Bにおいて、システムは、向けられている凝視の発生を監視するために凝視機械学習モデルを使用してバッファリングされたおよび/または追加の視覚データを処理する。
【0103】
一部の実装において、ブロック404Bは、視覚データの一部分が人および/または顔の領域に対応することを検出することに基づいて凝視機械学習モデルを使用してその一部分をシステムが処理する下位ブロック404B1を含む。
【0104】
ブロック406Bにおいて、システムは、ブロック404Bの監視に基づいて向けられている凝視が検出されたかどうかを判定する。向けられている凝視が検出されていない場合、システムは、ブロック402Aに戻り、追加の視覚データを受信し、バッファリングし、ブロック404Aの別の反復を実行する。
【0105】
ブロック406Bの反復において、システムがブロック404Bの監視に基づいてジェスチャが検出されたと判定する場合、システムは、
図4Aのブロック408または410に進む。
【0106】
特定のジェスチャと向けられている凝視との両方を検出することに応じて休止状態にあったアシスタントの機能をアクティブ化する様々な例が、本明細書において説明される。しかし、様々な実装において、休止状態にあったアシスタントの機能は、本明細書において説明される条件などの1つまたは複数のその他の条件と任意で組み合わせて、特定のジェスチャおよび向けられている凝視のうちの一方のみを検出することに応じてアクティブ化されてもよい。たとえば、それらの様々な実装の一部において、休止状態にあったアシスタントの機能は、ユーザの口の動きなどの同時に起こるその他の条件と一緒に少なくとも閾値の継続時間のユーザの向けられている凝視を検出することに応じてアクティブ化されてもよい。また、たとえばそれらの様々な実装の一部において、休止状態にあったアシスタントの機能は、検出された音声活動などの同時に起こるおよび/または時間的に近接したその他の条件と一緒にユーザのジェスチャを検出することに応じてアクティブ化されてもよい。
【0107】
図5は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用されてもよい例示的なコンピューティングデバイス510のブロック図である。一部の実装においては、クライアントコンピューティングデバイス、ユーザによって制御されるリソースモジュール130、および/またはその他のコンポーネントのうちの1つまたは複数が、例示的なコンピューティングデバイス510の1つまたは複数のコンポーネントを含んでもよい。
【0108】
概して、コンピューティングデバイス510は、バスサブシステム512を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ514を含む。これらの周辺デバイスは、たとえばメモリサブシステム525およびファイルストレージサブシステム526を含むストレージサブシステム524と、ユーザインターフェース出力デバイス520と、ユーザインターフェース入力デバイス522と、ネットワークインターフェースサブシステム516を含んでもよい。入力および出力デバイスは、コンピューティングデバイス510とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム516は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【0109】
ユーザインターフェース入力デバイス522は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含んでもよい。概して、用語「入力デバイス」の使用は、コンピューティングデバイス510または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【0110】
ユーザインターフェース出力デバイス520は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的表示を含んでもよい。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含んでもよい。ディスプレイサブシステムは、オーディオ出力デバイスによってなどの非視覚的表示を与える可能性もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス510からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【0111】
ストレージサブシステム524は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム524は、
図4Aおよび
図4Bの方法の選択された態様を実行するためならびに
図1、
図2A~
図2C、および
図3に示された様々なコンポーネントを実装するための論理を含んでもよい。
【0112】
これらのソフトウェアモジュールは、概してプロセッサ514によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム524において使用されるメモリ525は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)530と、決まった命令が記憶される読み出し専用メモリ(ROM)532とを含むいくつかのメモリを含んでもよい。ファイルストレージサブシステム526は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含んでもよい。特定の実装の機能を実装するモジュールは、ストレージサブシステム524内のファイルストレージサブシステム526によって、またはプロセッサ514によりアクセスされてもよいその他のマシンに記憶されてもよい。
【0113】
バスサブシステム512は、コンピューティングデバイス510の様々なコンポーネントおよびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム512は単一のバスとして概略的に示されるが、バスサブシステムの代替的な実装は複数のバスを使用してもよい。
【0114】
コンピューティングデバイス510は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、
図5に示されたコンピューティングデバイス510の説明は、一部の実装を示すことを目的とする特定の例としてのみ意図される。
図5に示されたコンピューティングデバイスよりも多くのまたは
図5に示されたコンピューティングデバイスよりも少ないコンポーネントを有するコンピューティングデバイス510の多くのその他の構成が可能である。
【0115】
本明細書において説明されたシステムがユーザについての個人情報を収集するかもしくはそうでなければ監視するかまたは個人情報および/もしくは監視された情報を利用する場合がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある場合があるコンテンツをコンテンツサーバから受信するべきかどうかおよび/またはどのようにして受信するべきかを制御する機会を与えられてもよい。また、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理されてもよい。たとえば、ユーザのアイデンティティ(identity)が、個人を特定できる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される場合があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理されてもよい。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御することができてもよい。たとえば、一部の実装において、ユーザは、ジェスチャおよび/または向けられている凝視の発生を監視する際に視覚コンポーネント107を使用するおよび/または視覚コンポーネント107からの視覚データを使用するアシスタントデバイスから離脱してもよい。
【符号の説明】
【0116】
104 バッファ
105 存在検知センサ
106 クライアントコンピューティングデバイス
106A クライアントデバイス
107 視覚コンポーネント、視覚センサ
107A カメラ
109 マイクロフォン
110 自動化アシスタントクライアント
112 音声キャプチャモジュール
114 視覚的キャプチャモジュール
115 呼び出しエンジン
116 凝視およびジェスチャモジュール、ジェスチャおよび凝視検出モジュール
116A ジェスチャモジュール
116B 凝視モジュール
116C 検出および分類モジュール、検出および分類モデル
117 機械学習モデル
117A ジェスチャ機械学習モデル
117B 凝視機械学習モデル
117C 物体検出および分類機械学習モデル
118 その他の条件モジュール
119 その他の機械学習モデル
120 自動化アシスタント
130 クラウドベース自動化アシスタントコンポーネント、リソースモジュール
131 クラウドベースTTSモジュール
132 クラウドベースSTTモジュール
133 自然言語プロセッサ
134 意図マッチャ
135 自然言語理解モジュール、意図理解モジュール
136 自然言語ジェネレータ
138 遂行モジュール
150 検索モジュール
301 ユーザ
360 画像
361 境界ボックス
362 境界ボックス
400 方法
510 コンピューティングデバイス
512 バスサブシステム
514 プロセッサ
516 ネットワークインターフェースサブシステム
520 ユーザインターフェース出力デバイス
522 ユーザインターフェース入力デバイス
524 ストレージサブシステム
525 メモリサブシステム、メモリ
526 ファイルストレージサブシステム
530 主ランダムアクセスメモリ(RAM)
532 読み出し専用メモリ(ROM)