(57)【要約】  ユーザの口の運動、ならびに/または自動化アシスタントの自動化アシスタントインターフェース(グラフィカルおよび/もしくは可聴)を提供するアシスタントデバイスにユーザの注視が向けられていることを検出したことに基づいて自動化アシスタントを適応させる。口運動および/または指向性注視の検出は、アシスタントデバイスに組み込まれたカメラなど、アシスタントデバイスに関連付けられた1つまたは複数の視覚構成要素からの視覚データの処理に基づき得る。検出される口運動は、(口が属す)ユーザが話していることを示す運動であってよい。
2021521497.tif 000002
【特許請求の範囲】
【請求項１】
1人または複数のユーザと自動化アシスタントとの間のタッチフリー対話を容易にする、クライアントデバイスの1つまたは複数のプロセッサによって実装される方法であって、
前記クライアントデバイスの1つまたは複数のカメラからの出力に基づく画像フレームのストリームを受信するステップと、
前記クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、
前記クライアントデバイスの前記1つまたは複数のカメラの方へ向けられた、ユーザの注視と、
前記ユーザの口の運動
の両方の出現を監視するために、前記ストリームの前記画像フレームを処理するステップと、
前記監視に基づいて、
前記ユーザの前記注視と、
前記ユーザの前記口の前記運動
の両方の出現を検出するステップと、
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることと、
前記クライアントデバイスによるオーディオデータ処理を適応させることの一方または両方を実施するステップとを含む方法。
【請求項２】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して実施される、請求項1に記載の方法。
【請求項３】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、
前記クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力のボリュームを低下させることを含む、請求項2に記載の方法。
【請求項４】
前記ユーザの前記口の前記運動と時間的に対応するオーディオデータのボイスアクティビティ検出を実施するステップと、
前記ユーザの口運動に時間的に対応する前記オーディオデータの前記ボイスアクティビティ検出に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含み、
前記クライアントデバイスによってレンダリングされた前記可聴ユーザインターフェース出力の前記ボリュームを低下させることは、ボイスアクティビティの前記出現を判断したことにさらに応答し、前記ボイスアクティビティの前記出現が、前記ユーザの前記口運動に時間的に対応する前記オーディオデータについてであることに基づく、請求項3に記載の方法。
【請求項５】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、
前記クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力の前記レンダリングを停止することを含む、請求項2に記載の方法。
【請求項６】
前記ユーザの前記口の前記運動と時間的に対応するオーディオデータのボイスアクティビティ検出を実施するステップと、
前記ユーザの口運動に時間的に対応する前記オーディオデータの前記ボイスアクティビティ検出に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含み、
前記クライアントデバイスによってレンダリングされた前記可聴ユーザインターフェース出力の前記レンダリングを停止することは、ボイスアクティビティの前記出現を判断したことにさらに応答したものであり、前記ボイスアクティビティの前記出現が、前記ユーザの前記口運動に時間的に対応する前記オーディオデータについてであることに基づくものである、請求項5に記載の方法。
【請求項７】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、人間知覚可能合図をレンダリングすることを含み、
前記クライアントデバイスによるオーディオデータ処理を適応させることは、前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して実施され、
前記クライアントデバイスによる前記オーディオデータ処理を適応させることは、前記クライアントデバイスにおけるローカル自動スピーチ認識を開始すること、または前記クライアントデバイスの1つもしくは複数のマイクロフォンによりキャプチャされたオーディオデータの、前記自動化アシスタントに関連付けられたリモートサーバへの送信を開始することを含み、
前記ローカル自動スピーチ認識を開始すること、または前記リモートサーバへのオーディオデータの前記送信を開始することは、合図の前記レンダリングに続いて、前記ユーザの前記注視が、前記クライアントデバイスの前記1つまたは複数のカメラの方へ向けられ続けることを検出したことにさらに応答する、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記クライアントデバイスによるオーディオデータ処理を適応させることは、前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して実施される、請求項1に記載の方法。
【請求項９】
前記クライアントデバイスによる前記オーディオデータ処理を適応させることは、前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの、前記自動化アシスタントに関連付けられたリモートサーバへの送信を開始することを含む、請求項8に記載の方法。
【請求項１０】
前記ユーザの前記口の前記運動と時間的に対応する特定のオーディオデータのボイスアクティビティ分析を実施するステップであって、前記特定のオーディオデータは、前記オーディオデータに含まれるか、または前記オーディオデータに先行する、ステップと、
前記ユーザの口運動に時間的に対応する前記特定のオーディオデータの前記ボイスアクティビティ分析に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含み、
オーディオデータの前記送信を開始することは、ボイスアクティビティの前記出現を判断したことにさらに応答し、前記ボイスアクティビティの前記出現が、前記ユーザの前記口運動に時間的に対応する前記オーディオデータについてであることに基づく、請求項9に記載の方法。
【請求項１１】
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、前記クライアントデバイスによる前記オーディオデータ処理を適応させることは、
前記画像フレームのうちの1つまたは複数に基づいて、前記クライアントデバイスに相対した前記ユーザの位置を判断することと、
前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際に前記ユーザの前記位置を使うこととを含む、請求項8に記載の方法。
【請求項１２】
前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際に前記ユーザの前記位置を使うことは、前記ユーザの口頭発声に対応する、前記オーディオデータの部分を分離する際に、前記位置を使うことを含む、請求項11に記載の方法。
【請求項１３】
前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際に前記ユーザの前記位置を使うことは、前記オーディオデータからバックグラウンドノイズを削除する際に前記位置を使うことを含む、請求項11に記載の方法。
【請求項１４】
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の出現を監視するために、前記クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、前記ストリームの前記画像フレームを処理することは、
前記ユーザの前記注視の出現を監視するのに、第1のトレーニング済み機械学習モデルを使うことと、
前記ユーザの前記口の前記運動を監視するのに、第2のトレーニング済み機械学習モデルを使うこととを含む、請求項1から13のいずれか一項に記載の方法。
【請求項１５】
存在センサからの信号に基づいて、前記クライアントデバイスの環境に人間が存在することを検出するステップと、
前記環境に前記人間が存在することを検出したことに応答して、前記1つまたは複数のカメラに、画像フレームの前記ストリームを提供させるステップとをさらに含む、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
少なくとも1つの視覚構成要素と、
少なくとも1つのマイクロフォンと、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサと動作可能に結合されたメモリとを備えるクライアントデバイスであって、前記メモリは命令を記憶し、前記命令は、前記プロセッサのうちの1つまたは複数による前記命令の実行に応答して、前記プロセッサのうちの1つまたは複数に、
前記クライアントデバイスの前記視覚構成要素からの出力に基づく視覚データのストリームを受信する動作と、
前記クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、
前記クライアントデバイスの前記視覚構成要素の方へ向けられたユーザの注視と、
前記ユーザの口の運動
の両方の出現を監視するために、前記ストリームの前記視覚データを処理する動作と、
前記監視に基づいて、
前記ユーザの前記注視と、
前記ユーザの前記口の前記運動
の両方の出現を検出する動作と、
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させる動作とを実施させる、クライアントデバイス。
【請求項１７】
少なくとも1つの視覚構成要素と、
1つまたは複数のマイクロフォンと、
前記視覚構成要素からの出力に基づく視覚データのストリームを受信する1つまたは複数のプロセッサとを備えるシステムであって、前記プロセッサのうちの1つまたは複数は、
少なくとも1つのトレーニング済み機械学習モデルを使って、
前記視覚構成要素の方へ向けられたユーザの注視と、
前記ユーザの口の運動
の両方の出現を監視するために、前記ストリームの前記視覚データを処理することと、
前記監視に基づいて、
前記ユーザの前記注視と、
前記ユーザの前記口の前記運動
の両方の出現を検出することと、
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、
クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることと、
前記1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理を適応させることの両方を実施することとを行うように構成される、システム。
【請求項１８】
命令を含むコンピュータプログラム製品であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から15のいずれか一項に記載の方法を実践させる、コンピュータプログラム製品。
【請求項１９】
命令を含むコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から15のいずれか一項に記載の方法を実践させる、コンピュータ可読記憶媒体。
【請求項２０】
請求項1から15のいずれか一項に記載の方法を実践するための1つまたは複数のプロセッサを備えるシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
人間は、本明細書では「自動化アシスタント」と呼ばれる(「デジタルエージェント」、「対話型パーソナルアシスタント」、「知的パーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションとの、人間-コンピュータ間ダイアログに関与する場合がある。たとえば、人間(自動化アシスタントと対話するときは、「ユーザ」と呼ばれ得る)は、いくつかのケースでは、テキストに変換され、次いで、処理され得る口頭自然言語入力(すなわち、発声)を使って、および/またはテキスト(たとえば、タイプされた)自然言語入力を与えることによって、自動化アシスタントにコマンドおよび/または要求を与える場合がある。自動化アシスタントは、可聴および/または視覚的ユーザインターフェース出力を含み得る応答性ユーザインターフェース出力を与えることによって、要求に応答する。
【発明の概要】
【課題を解決するための手段】
【０００２】
本明細書では「アシスタントデバイス」とも呼ばれる自動化アシスタントとの対話を容易にする多くのクライアントデバイスは、ユーザが、自動化アシスタントとのタッチフリー対話に関与することを可能にする。たとえば、アシスタントデバイスはしばしば、ユーザが、自動化アシスタントを呼び出し、かつ/または他のやり方でアシスタントと対話する有声発声を与えることをできるようにするマイクロフォンを含む。本明細書に記載するアシスタントデバイスは、追加または代替として、自動化アシスタントとのタッチフリー対話を容易にするために、1つまたは複数の視覚構成要素(たとえば、カメラ、光検出および測距(LIDAR)構成要素、レーダー構成要素など)を組み込み、かつ/またはそれらと通信することができる。
【０００３】
本明細書で開示する実装形態は、(1)ユーザの口の運動(本明細書では、「口運動」とも呼ばれる)、および/または(2)ユーザの注視がアシスタントデバイスに向けられていること(本明細書では、「指向性注視」とも呼ばれる)を検出したことに基づいて、自動化アシスタントを適応させることに関し、ここで、アシスタントデバイスは、自動化アシスタントの自動化アシスタントインターフェース(グラフィカルおよび/または可聴)を提供する。口運動および/または指向性注視の検出は、アシスタントデバイスに組み込まれたカメラ、またはクライアントデバイスとは別個の(ただし、クライアントデバイスと通信する)カメラなど、アシスタントデバイスに関連付けられた1つまたは複数の視覚構成要素からの視覚データの処理に基づき得る。検出される口運動は、(口が属す)ユーザが話していることを示す運動であってよい。これは、ユーザが自分の頭を振り、足を左/右に踏み出した、などの結果として起こり得る、ユーザの口の運動とは対照的である。以下で説明するように、本明細書に記載する実装形態は、自動化アシスタントを実装するのに使われる、コンピューティングリソースおよび通信ネットワークにおける効率性をもたらし得る。たとえば、以下の議論から明らかになるように、実装形態の態様は、データネットワークを介した通信のより選択的な開始と、ネットワークを介したデータトラフィックの対応する削減とを生じ得る。たとえばクライアントデバイスからの、ネットワーク通信のより選択的な開始は、通信が開始されるリモートシステムにおけるコンピューティングリソースのより効率的な使用にさらにつながり得るが、それは、クライアントデバイスからの何らかの起こり得る通信が、リモートシステムとのいかなる接触も開始される前にフィルタアウトされるからである。リモートシステム上でのデータネットワークおよびコンピューティングリソースの使用における効率の向上は、ネットワーク中の送信機および受信機による電力使用における、ならびにリモートシステムにおけるメモリ動作および処理使用率における大幅な省力につながり得る。対応する効果が、以下で説明するように、クライアントデバイスにおいても体験され得る。特に、長時間にわたる、および自動化アシスタントの進行中の動作にわたる、これらの効果は、ネットワークにおいて、ならびに全体として、アシスタントを稼働するデバイスおよびシステムを含むコンピューティング装置において、大幅な追加容量を体験させる。この追加容量は、アシスタント関連であるかどうかにかかわらず、たとえば追加または更新されたインフラストラクチャ、およびコンピューティング装置中の追加コンピューティング動作を通してネットワーク能力を拡張する必要なく、データネットワーク中でのさらなる通信のために使うことができる。他の技術的改良が、以下の説明から明らかになる。
【０００４】
一例として、自動化アシスタントは、(任意選択で、閾持続時間の)ユーザの口運動を検出したこと、ユーザの注視がアシスタントデバイスに(任意選択で、同じまたは異なる閾持続時間だけ)向けられていること、ならびに任意選択で、口運動およびユーザの指向性注視が、共起するか、または互いとの閾時間近接以内(たとえば、0.5秒以内、1.0秒以内、もしくは他の閾時間近接)に起こることを検出したことに応答して適応され得る。たとえば、自動化アシスタントは、少なくとも0.3秒の持続時間の口運動を検出したことに応答して、および少なくとも0.5秒の持続時間であり、口運動と共起するか、または口運動の0.5秒以内に起こった指向性注視を検出したことに応答して適応され得る。
【０００５】
いくつかの実装形態では、自動化アシスタントは、口運動および指向性注視のみを検出したことに応答して適応され得る。いくつかの他の実装形態では、自動化アシスタントは、口運動および指向性注視を検出したこと、ならびに1つまたは複数の他の条件の出現を検出したことに応答して適応され得る。1つまたは複数の他の条件の出現は、たとえば、オーディオデータに基づいて、検出された口運動および指向性注視に時間的に近接するボイスアクティビティ(たとえば、任意のボイスアクティビティ、口運動および指向性注視を与えるユーザのボイスアクティビティ、認可されたユーザのボイスアクティビティ、口頭呼出しフレーズを含むボイスアクティビティ)を検出すること、視覚データに基づいて、検出された口運動および指向性注視と共起するか、もしくは時間的に近接する、ユーザのジェスチャー(たとえば、「手の振り」、「親指を立てるしぐさ」、「ハイタッチ」)を検出すること、オーディオデータおよび/もしくは視覚データに基づいて、ユーザが認可されたユーザであることを検出すること、ならびに/または他の条件を検出することを含み得る。
【０００６】
本明細書で開示するいくつかの実装形態では、口運動および指向性注視を検出したことに応答して起こる、自動化アシスタントの適応は、アシスタントデバイスによるユーザインターフェース出力のレンダリングの適応を含み得る。それらの実装形態のうちのいくつかでは、ユーザインターフェース出力のレンダリングの適応は、アシスタントデバイスによってレンダリングされる可聴ユーザインターフェース出力のボリュームを低下させること、ならびに/または可聴ユーザインターフェース出力および/もしくはアシスタントデバイスによって視覚的にレンダリングされるビデオ出力の停止を含む。
【０００７】
一例として、自動化アシスタントに向けられた発声をユーザが話し始めると、ユーザの口運動が検出されると、および検出された口運動と共起する、ユーザの指向性注視が検出されると仮定する。さらに、口運動および指向性注視の検出に先立って、および検出の間に、アシスタントデバイスは、可聴および/または画像コンテンツをレンダリングしていると仮定する。たとえば、アシスタントデバイスの自動化アシスタントクライアントは、歌の可聴レンダリングと、歌に合わせたビデオの視覚的レンダリングとを引き起こしていてよい。口運動および指向性注視を検出したことに応答して、自動化アシスタントクライアントは、歌の可聴レンダリングのボリュームを低下させることができる(依然として、低下されたボリュームでの可聴レンダリング、およびビデオの視覚的レンダリングを続けながら)。ボリュームの低下により、アシスタントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータなど、口頭発声をキャプチャするオーディオデータの処理の性能を向上することができる。たとえば、オーディオデータのボイステキスト処理は、ボリュームの低下の結果として向上させることができ、オーディオデータに基づくボイスアクティビティ検出(VAD)は、ボリュームの低下の結果として向上させることができ、オーディオデータに基づくスピーカーダイアライゼーションは、ボリュームの低下の結果として向上させることができる、などである。オーディオデータの向上した処理により、自動化アシスタントが口頭発声を適切に解釈し、適切なやり方で応答する見込みが増し得る。その結果、向上したユーザ-アシスタント対話がもたらされ、かつ/またはユーザに口頭発声を繰り返させる可能性がある(結果として、繰り返された口頭発声を処理し、別の応答を生成し、レンダリングする際に計算リソースが消費されることを要求する)、不適切な自動化アシスタント応答のリスクを軽減することができる。
【０００８】
上記例の変形体として、適応は、ボリュームの低下の代わりに、歌の(および任意選択で、ビデオの)可聴レンダリングの停止を含み得る。上記例のさらなる変形体として、適応は最初に、歌の可聴レンダリングのボリュームの低下を含んでよく、適応は、1つまたは複数の他の条件の出現に応答して、後に続く、歌の可聴レンダリングの停止をさらに含み得る。たとえば、ボリュームの低下は、口運動および指向性注視のみを検出したことに応答して起こってよく、停止は、オーディオデータの処理に基づいて、ボイスアクティビティの出現の、後での検出に応答して起こってよい。
【０００９】
いくつかの実装形態では、アシスタントデバイスによるユーザインターフェース出力のレンダリングの適応は、追加または代替として、人間知覚可能合図のレンダリングを含み得る。人間知覚可能合図のレンダリングは任意選択で、自動化アシスタントをさらに適応させるのに先立って行うことができ、さらなる適応が起ころうとしていることを(直接または間接的に)示すことができる。たとえば、人間知覚可能合図のレンダリングは、口運動および指向性注視を最初に検出したことに応答して起こってよく、さらなる適応は、継続した口運動および/または継続した指向性注視を検出したことに応答して起こってよい。この例を続けると、さらなる適応は、1つまたは複数のリモート自動化アシスタント構成要素へ、クライアントデバイスの1つまたは複数のセンサ構成要素によって生成された特定のセンサデータを、クライアントデバイスによって送信することを含み得る(センサ構成要素からのどのセンサデータも、さらなる適応に先立って送信されていなかった)。特定のセンサデータは、たとえば、口運動および指向性注視を検出した後にキャプチャされた視覚および/もしくはオーディオデータ、ならびに/または口運動の実施中に、および/もしくは指向性注視中にキャプチャされた、バッファリングされた視覚および/もしくはオーディオデータを含み得る。人間知覚可能合図を与えることによって、ユーザは、起ころうとしているさらなる適応を警告され、さらなる適応を防止するための機会を与えられ得る。たとえば、さらなる適応が、ユーザの継続した指向性注視を条件とする場合、ユーザは、さらなる適応を防止するために、自分の注視をそらせばよい(たとえば、ユーザが、自動化アシスタントと対話し、センサデータを送信させることを意図していない場合)。このようにして、さらなる適応は、さらなる適応から生じることになるネットワークおよび/または計算リソースの使用とともに防止することができる。可聴の「鐘の音」、可聴「口頭出力」(たとえば、「アシスタントに話しかけているように見えるから、違うなら目をそらして」)、アシスタントデバイスの表示画面上の視覚的シンボル、アシスタントデバイスの発光ダイオードの照明などのような、様々な人間知覚可能合図を与えることができる。
【００１０】
いくつかの実装形態では、アシスタントデバイスによるユーザインターフェース出力のレンダリングの適応は、追加または代替として、レンダリングされたコンテンツを、検出された口運動および指向性注視に対応するユーザに合わせることを含み得る。レンダリングされたコンテンツを合わせることは、アシスタントデバイスに相対して、ユーザの距離を判断することと、距離に基づくようにコンテンツをレンダリングすることとを含み得る。たとえば、可聴コンテンツは、検出された口運動および指向性注視に対応するユーザの距離に基づくボリュームでレンダリングされ得る。また、たとえば、画像コンテンツは、検出された口運動および指向性注視に対応するユーザの距離に基づくサイズでレンダリングされ得る。さらに別の例として、コンテンツは、距離に基づいて生成され得る。たとえば、距離がクライアントデバイスに比較的近いときは、より詳細なコンテンツが生成されてよく、距離がクライアントデバイスから比較的遠いときは、より詳細でないコンテンツが生成されてよい。1つの具体的な事例として、「天気はどう」という口頭発声に応答して、比較的近い距離では、1日の天気予報が生成されてよく、比較的遠い距離では、3日間の天気予報が生成されてよい。ユーザの距離は、検出された口運動および指向性注視に対応するユーザ(ユーザが、自動化アシスタントと言葉で関わっていることを示し得る)に応答して判断され得る。これは、複数のユーザ(複数の距離にいる)が視覚データの中にキャプチャされる状況において有用であり得、というのは、レンダリングされたコンテンツを、検出された口運動および指向性注視に対応するユーザの距離に合わせると、レンダリングされたコンテンツを、自動化アシスタントとのダイアログに能動的に関与しているユーザに合わせることが可能になるからである。
【００１１】
本明細書で開示するいくつかの実装形態では、および上述したように、口運動および指向性注視を検出したことに応答して起こる、自動化アシスタントの適応は、追加および/または代替として、オーディオデータおよび/または視覚データの処理など、センサデータの処理の適応を含み得る。
【００１２】
それらの実装形態のうちのいくつかでは、適応は、口運動および指向性注視を検出したことに応答した、特定のセンサデータ(たとえば、オーディオデータ、ビデオ、画像など)の特定の処理の開始を含み得る(特定の処理は、事前に実施されていなかった)。たとえば、口運動および指向性注視を検出したことに先立って、自動化アシスタントは、オーディオデータ、ビデオ/画像データなどのような、特定のセンサデータの限られた処理のみを実施し得る(または処理を実施しない)。たとえば、そのような検出に先立って、自動化アシスタントは、明示的呼出しフレーズを監視する際にオーディオデータをローカルに処理することができるが、ローカル処理の後、および自動化アシスタントを実装する1つまたは複数の追加構成要素(たとえば、ユーザ入力を処理し、適切な応答を生成するリモートサーバデバイス)によってオーディオデータを処理させることなく、データを「破棄」することになる。ただし、口運動および指向性注視(ならびに任意選択で、1つまたは複数の他の条件の出現)を検出したことに応答して、そのようなデータは、追加構成要素によって処理することができる。これらおよび他のやり方で、処理および/またはネットワークリソースは、口運動および指向性注視を検出したことに応答して、特定のセンサデータの特定の処理を送信および/または実施するだけで削減することができる。
【００１３】
本明細書に記載するいくつかの追加または代替の実装形態では、センサデータの処理の適応は、口運動および指向性注視が検出されたユーザの判断された位置に基づく、ローカルおよび/またはリモート処理の適応を含み得る。ユーザの位置は、クライアントデバイスに相対してよく、たとえば、ユーザに対応すると判断された視覚データの部分に基づいて判断することができる。ユーザの位置に基づくオーディオデータの処理は、たとえば、口頭発声に対応するオーディオデータの部分を分離すること、および/またはオーディオデータからバックグラウンドノイズを削除することを含み得る。そのような処理は、オーディオデータの部分を分離し、かつ/またはオーディオデータからバックグラウンドノイズを削除する際に、判断された位置と、ビームフォーミングおよび/または他の技法とに依拠し得る。これにより、大幅なバックグラウンドノイズ、一斉に話す複数の話者などを有する環境での、オーディオデータの処理が向上し得る。
【００１４】
いくつかの実装形態では、口運動を監視する際、およびクライアントデバイスに向けられる注視を監視する際に、クライアントデバイス上でローカルに記憶されるトレーニング済み機械学習モデル(たとえば、ニューラルネットワークモデル)が、クライアントデバイスの視覚構成要素からの視覚データ(たとえば、クライアントデバイスのカメラからの画像フレーム)の少なくともいくつかの部分を少なくとも選択的に処理するために、クライアントデバイスによって使用される。たとえば、1人または複数のユーザの存在を検出したことに応答して、クライアントデバイスは、少なくとも一定の持続時間だけ(たとえば、少なくとも一定の閾持続時間だけ、および/または存在が検出されなくなるまで)、口運動および指向性注視を監視する際に、ローカルに記憶された機械学習モデルを使用して、視覚データの少なくとも1つまたは複数の部分を処理することができる。クライアントデバイスは、専用存在センサ(たとえば、受動赤外線センサ(PIR))を使って、視覚データおよび別個の機械学習モデル(たとえば、人間存在検出のためにのみトレーニングされた別個の機械学習モデル)を使って、かつ/またはオーディオデータおよび別個の機械学習モデル(たとえば、VAD機械学習モデルを使うVAD)を使って、1人または複数のユーザの存在を検出することができる。口運動および/または指向性注視を監視する際の視覚データの処理が、1人または複数のユーザの存在を最初に検出することを条件とする実装形態では、口運動および/または指向性注視を監視する際の、視覚データの非継続処理を通して、電力リソースを節約することができる。そうではなく、それらの実装形態では、口運動および/または指向性注視を監視する際の、視覚データの処理は、1つまたは複数の低電力消費技法により、アシスタントデバイスの環境において、1人または複数のユーザの存在を検出したことにのみ応答して起こり得る。
【００１５】
口運動および指向性注視を監視する際にローカル機械学習モデルが使用されるいくつかの実装形態では、少なくとも1つの口運動機械学習モデルが、口運動を監視する際に使用され、別個の注視機械学習モデルが、指向性注視を監視する際に使用される。それらの実装形態のいくつかのバージョンでは、1つまたは複数の「アップストリーム」モデル(たとえば、オブジェクト検出および分類モデル)が、顔のような、目のような、口のような、などの、視覚データ(たとえば、画像)の部分を検出するのに使用され、それらの部分は、それぞれの機械学習モデルを使って処理され得る。たとえば、画像の顔および/または目の部分は、アップストリームモデルを使って検出し、注視機械学習モデルを使って処理することができる。また、たとえば、画像の顔および/または口の部分は、アップストリームモデルを使って検出し、口運動機械学習モデルを使って処理することができる。さらに別の例として、画像の人間部分は、アップストリームモデルを使って検出し、注視検出機械学習モデルと口運動機械学習モデルの両方を使って処理することができる。
【００１６】
いくつかの実装形態では、顔照合、目照合、ボイス照合、および/または他の技法が、口運動および/または指向性注視、ならびに特定のユーザプロファイルに合わせられている、クライアントデバイスの自動化アシスタントアプリケーションによってレンダリングされたコンテンツに関連付けられた特定のユーザプロファイルを識別するのに使用され得る。合わせられたコンテンツのレンダリングは、口運動および指向性注視を検出したことに応答する、自動化アシスタントの適応の全部または一部であってよい。任意選択で、特定のユーザプロファイルの識別は、口運動および指向性注視が検出された後でのみ起こる。いくつかの実装形態では、および上述したように、自動化アシスタントの適応のために、1つまたは複数の追加条件の出現が要求される場合があり、ここで、追加条件は、注視および/または口運動検出に対する追加である。たとえば、いくつかの実装形態では、追加条件は、口運動および指向性注視を与えるユーザが、クライアントデバイスに対して認可されているユーザプロファイルに関連付けられていることを(たとえば、顔照合、ボイス照合、および/または他の技法を使って)識別することを含み得る。
【００１７】
いくつかの実装形態では、ビデオ/画像のいくつかの部分が、口運動および/または注視を検出する際に、フィルタアウトされ/無視され/比較的重くなく重みづけされ得る。たとえば、ビデオ/画像中でキャプチャされたテレビジョンは、人がテレビジョンによってレンダリングされた(たとえば、天気予報士)結果としての誤検出を防止するために無視されてよい。たとえば、画像のある部分が、その部分のための複数のフレームにわたる、その部分(すなわち、テレビジョンリフレッシュレートに合致する)での特定の表示周波数を検出したことなどに応答して、別個のオブジェクト検出/分類機械学習モデルに基づいて、テレビジョンに対応すると判断される場合がある。そのような部分は、本明細書に記載する口運動および/または指向性注視検出技法では、テレビジョンまたは他のビデオディスプレイデバイスからの口運動および/または指向性注視の検出を防止するために無視されてよい。別の例として、ピクチャフレームは無視されてよい。これらおよび他の技法は、自動化アシスタントの誤判定適応を軽減することができ、そうすることにより、そうでなければ誤判定適応において消費されるはずの様々な計算および/またはネットワークリソースを節約することができる。また、様々な実装形態では、TV、ピクチャフレームなどのロケーションが検出されると、任意選択で、複数のフレームにわたって無視され続けてよい(たとえば、断続的に検証する間、クライアントデバイスまたはオブジェクトの運動が検出されるまで、など)。こうすることにより、やはり様々な計算リソースを節約することができる。
【００１８】
上記説明は、本明細書で開示される様々な実装形態の概要として与えられている。それらの様々な実装形態、ならびに追加実装形態について、本明細書においてより詳しく記載する。
【００１９】
いくつかの実装形態では、1人または複数のユーザと自動化アシスタントとの間のタッチフリー対話を容易にする、クライアントデバイスの1つまたは複数のプロセッサによって実施される方法が提供される。この方法は、クライアントデバイスの1つまたは複数のカメラからの出力に基づく画像フレームのストリームを受信するステップを含む。方法は、クライアントデバイスの1つまたは複数のカメラの方へ向けられた、ユーザの注視と、ユーザの口の運動の両方の出現を監視するために、クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、ストリームの画像フレームを処理するステップをさらに含む。方法は、監視に基づいて、ユーザの注視と、ユーザの口の運動の両方の出現を検出するステップをさらに含む。方法は、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させること、およびクライアントデバイスによるオーディオデータ処理を適応させることの一方または両方を実施するステップをさらに含む。
【００２０】
本明細書に記載される技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。
【００２１】
いくつかの実装形態では、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して実施される。それらの実装形態のうちのいくつかでは、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力のボリュームを低下させることを含む。それらの実装形態のいくつかのバージョンでは、方法は、ユーザの口の運動と時間的に対応するオーディオデータのボイスアクティビティ検出を実施するステップと、ユーザの口運動に時間的に対応するオーディオデータのボイスアクティビティ検出に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含む。それらのバージョンでは、クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力のボリュームを低下させることは、ボイスアクティビティの出現を判断したことにさらに応答し、ボイスアクティビティの出現が、ユーザの口運動に時間的に対応するオーディオデータについてであることに基づく。
【００２２】
クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることが、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して実施されるいくつかの実装形態では、ユーザインターフェース出力のレンダリングを適応させることは、クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力のレンダリングを停止することを含む。それらの実装形態のいくつかでは、方法は、ユーザの口の運動と時間的に対応するオーディオデータのボイスアクティビティ検出を実施するステップと、ユーザの口運動に時間的に対応するオーディオデータのボイスアクティビティ検出に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含む。それらの実装形態では、クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力のレンダリングを停止することは、ボイスアクティビティの出現を判断したことにさらに応答したものであり、ボイスアクティビティの出現が、ユーザの口運動に時間的に対応するオーディオデータについてであることに基づくものである。
【００２３】
いくつかの実装形態では、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、人間知覚可能合図をレンダリングすることを含み、クライアントデバイスによるオーディオデータ処理を適応させることは、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して実施され、クライアントデバイスによるオーディオデータ処理を適応させることは、クライアントデバイスにおけるローカル自動スピーチ認識を開始することを含み、ローカル自動スピーチ認識を開始することは、合図のレンダリングに続いて、ユーザの注視が、クライアントデバイスの1つまたは複数のカメラの方へ向けられ続けることを検出したことにさらに応答する。
【００２４】
いくつかの実装形態では、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、人間知覚可能合図をレンダリングすることを含み、クライアントデバイスによるオーディオデータ処理を適応させることは、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して実施され、クライアントデバイスによるオーディオデータ処理を適応させることは、クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの、自動化アシスタントに関連付けられたリモートサーバへの送信を開始することを含み、リモートサーバへのオーディオデータの送信を開始することは、合図のレンダリングに続いて、ユーザの注視が、クライアントデバイスの1つまたは複数のカメラの方へ向けられ続けることを検出したことにさらに応答する。
【００２５】
いくつかの実装形態では、クライアントデバイスによるオーディオデータ処理を適応させることは、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して実施される。それらの実装形態のうちのいくつかでは、クライアントデバイスによるオーディオデータ処理を適応させることは、クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの、自動化アシスタントに関連付けられたリモートサーバへの送信を開始することを含む。それらの実装形態のいくつかのバージョンでは、方法は、ユーザの口の運動と時間的に対応する、オーディオデータに含まれるか、またはオーディオデータに先行する特定のオーディオデータのボイスアクティビティ分析を実施することと、ユーザの口運動に時間的に対応する特定のオーディオデータのボイスアクティビティ分析に基づいて、ボイスアクティビティの出現を判断することとをさらに含む。それらのバージョンでは、オーディオデータの送信を開始することは、ボイスアクティビティの出現を判断したことにさらに応答し、ボイスアクティビティの出現が、ユーザの口運動に時間的に対応するオーディオデータについてであることに基づく。
【００２６】
クライアントデバイスによるオーディオデータ処理を適応させることが、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して実施されるいくつかの実装形態では、オーディオデータ処理を適応させることは、画像フレームのうちの1つまたは複数に基づいて、クライアントデバイスに相対したユーザの位置を判断することと、クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際にユーザの位置を使うこととを含む。それらの実装形態のいくつかのバージョンでは、クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際にユーザの位置を使うことは、ユーザの口頭発声に対応する、オーディオデータの部分を分離する際に、位置を使うことを含む。それらの実装形態のいくつかの追加または代替のバージョンでは、クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際にユーザの位置を使うことは、オーディオデータからバックグラウンドノイズを削除する際に位置を使うことを含む。
【００２７】
いくつかの実装形態では、ユーザの注視とユーザの口の運動の両方の出現を監視するために、クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、ストリームの画像フレームを処理することは、ユーザの注視の出現を監視するのに、第1のトレーニング済み機械学習モデルを使うことと、ユーザの口の運動を監視するのに、第2のトレーニング済み機械学習モデルを使うこととを含む。
【００２８】
いくつかの実装形態では、方法は、存在センサからの信号に基づいて、クライアントデバイスの環境に人間が存在することを検出することと、環境に人間が存在することを検出したことに応答して、1つまたは複数のカメラに、画像フレームのストリームを提供させることとをさらに含む。
【００２９】
いくつかの実装形態では、クライアントデバイスが提供され、少なくとも1つの視覚構成要素、少なくとも1つのマイクロフォン、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサと動作可能に結合されたメモリを含む。メモリは、命令を記憶し、命令は、プロセッサのうちの1つまたは複数による命令の実行に応答して、プロセッサのうちの1つまたは複数に、クライアントデバイスの視覚構成要素からの出力に基づく視覚データのストリームを受信する動作と、クライアントデバイスの視覚構成要素の方へ向けられたユーザの注視と、ユーザの口の運動の両方の出現を監視するために、クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、ストリームの視覚データを処理する動作と、監視に基づいて、ユーザの注視と、ユーザの口の運動の両方の出現を検出する動作と、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させる動作とを実施させる。
【００３０】
いくつかの実装形態では、システムが提供され、少なくとも1つの視覚構成要素と、1つまたは複数のマイクロフォンと、視覚構成要素からの出力に基づく視覚データのストリームを受信する1つまたは複数のプロセッサとを含む。プロセッサのうちの1つまたは複数は、視覚構成要素の方へ向けられたユーザの注視と、ユーザの口の運動の両方の出現を監視するために、少なくとも1つのトレーニング済み機械学習モデルを使って、ストリームの視覚データを処理することと、監視に基づいて、ユーザの注視と、ユーザの口の運動の両方の出現を検出することと、ユーザの注視とユーザの口の運動の両方の出現を検出したことに応答して、クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることと、1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理を適応させることの両方を実施することとを行うように構成される。
【００３１】
さらに、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連付けられたメモリに記憶された命令を実行するように動作可能であり、命令は、上述した方法のうちのいずれかの実施を引き起こすように構成される。いくつかの実装形態は、上述した方法のうちのいずれかを実施するように1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体も含む。
【００３２】
本明細書でより詳細に記載する、上記概念と追加概念のすべての組合せは、本明細書で開示する主題の一部であることを企図されることを諒解されたい。たとえば、本開示の最後に著される、特許請求する主題のすべての組合せが、本明細書で開示する主題の一部であることを企図される。
【図面の簡単な説明】
【００３３】
【図１】本明細書で開示する実装形態が実装され得る例示的な環境のブロック図である。
【図２Ａ】様々な実装形態による、本開示の様々な態様を論証する例示的プロセスフローである。
【図２Ｂ】様々な実装形態による、本開示の様々な態様を論証する例示的プロセスフローである。
【図３】アシスタントデバイスならびに指向性注視および発話を与える(そうすることによって、口運動を引き起こす)ユーザの例を示し、ユーザが指向性注視および発話を与えているときにアシスタントデバイスのカメラによってキャプチャされた画像も示す図である。
【図４Ａ】本明細書で開示する実装形態による例示的方法を示すフローチャートである。
【図４Ｂ】図4Aの例示的方法のいくつかのブロックの特定の例を示すフローチャートである。
【図４Ｃ】図4Aの例示的方法のいくつかのブロックの特定の例を示すフローチャートである。
【図４Ｄ】図4Aの例示的方法のいくつかのブロックの特定の例を示すフローチャートである。
【図４Ｅ】図4Aの例示的方法のいくつかのブロックの特定の例を示すフローチャートである。
【図５】コンピューティングデバイスの例示的アーキテクチャを示す図である。
【発明を実施するための形態】
【００３４】
図1は、本明細書で開示する技法が実装され得る例示的な環境を示す。この例示的環境は、1つまたは複数のクライアントコンピューティングデバイス106を含む。各クライアントデバイス106は、自動化アシスタントクライアント110のそれぞれのインスタンスを実行することができる。1つまたは複数のクラウドベース自動化アシスタント構成要素130が、概して114において示される1つまたは複数のローカルおよび/またはワイドエリアネットワーク(たとえば、インターネット)を介してクライアントデバイス106に通信可能に結合されている1つまたは複数のコンピューティングシステム(まとめて「クラウド」コンピューティングシステムと呼ばれる)上で実装され得る。クラウドベース自動化アシスタント構成要素130は、たとえば、高性能サーバのクラスタにより実装され得る。
【００３５】
様々な実装形態では、自動化アシスタントクライアント110のインスタンスが、1つまたは複数のクラウドベース自動化アシスタント構成要素130との対話により、ユーザの視点から、人間-コンピュータ間対話(たとえば、口頭対話、ジェスチャーベースの対話、および/またはタッチベースの対話)にユーザが一緒に関与し得る自動化アシスタント120の論理インスタンスがどう見えるかを形成し得る。そのような自動化アシスタント120の1つのインスタンスが、図1において破線中に示されている。したがって、クライアントデバイス106上で実行する自動化アシスタントクライアント110と関わる各ユーザは、実際には、自動化アシスタント120の自分自身の論理インスタンスと関わり得ることを理解されたい。簡潔および簡単のために、特定のユーザに「サービスする」ものとして本明細書で使用する「自動化アシスタント」という用語は、ユーザによって操作されるクライアントデバイス106上で実行する自動化アシスタントクライアント110と、任意選択で、1つまたは複数のクラウドベース自動化アシスタント構成要素130(複数の自動化アシスタントクライアント110の間で共有されてよい)の組合せを指す。いくつかの実装形態では、自動化アシスタント120は、自動化アシスタント120のその特定のインスタンスによってユーザが実際に「サービスされる」かどうかにかかわらず、どのユーザからの要求にも応答し得ることも理解されたい。
【００３６】
1つまたは複数のクライアントデバイス106は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイルフォンコンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車両内通信システム、車両内娯楽システム、車両内ナビゲーションシステム)、スタンドアロンの対話型スピーカー(いくつかのケースでは、視覚センサを含み得る)、スマートテレビジョン(もしくは自動化アシスタント能力をもつネットワーク接続ドングルを装備する標準テレビジョン)などのスマート機器、および/またはコンピューティングデバイスを含む、ユーザの装着可能装置(たとえば、コンピューティングデバイスを有するユーザの時計、コンピューティングデバイスを有するユーザの眼鏡、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。追加および/または代替クライアントコンピューティングデバイスが提供されてもよい。前記のように、いくつかのクライアントデバイス106は、ユーザと自動化アシスタント120(たとえば、スピーカーおよびディスプレイ付きのスタンドアロンの対話型デバイス)との間の対話を容易にするように主に設計されているアシスタントデバイスの形をとり得る。
【００３７】
クライアントデバイス106は、1つまたは複数の視野を有する1つまたは複数の視覚構成要素107を装備することができる。視覚構成要素107は、モノグラフィックカメラ、ステレオグラフィックカメラ、LIDAR構成要素、レーダー構成要素などのような、様々な形をとり得る。1つまたは複数の視覚構成要素107は、たとえば、視覚的キャプチャモジュール114によって、クライアントデバイス106が展開される環境の視覚フレーム(たとえば、画像フレーム(静止画像またはビデオ))をキャプチャするのに使われ得る。これらの視覚フレームは次いで、たとえば、適応エンジン115の注視および口モジュール116によって、視覚フレームによってキャプチャされたユーザの口運動(たとえば、ユーザが話していることを示す口運動)および/またはユーザからの指向性注視(たとえば、クライアントデバイス106の方へ向けられた注視)の出現を監視するために、少なくとも選択的に分析され得る。注視および口モジュール116は、口運動および/または指向性注視の出現を監視する際に、1つまたは複数のトレーニング済み機械学習モデル117を使用することができる。
【００３８】
口運動および指向性注視の検出に応答して(ならびに任意選択で、他条件モジュール118による、1つまたは複数の他の条件の検出に応答して)、適応エンジン115は、自動化アシスタントクライアント110の態様および/またはクラウドベース自動化アシスタント構成要素130の態様など、自動化アシスタント120の1つまたは複数の態様を適応させることができる。そのような適応は、たとえば、クライアントデバイス106によってレンダリングされるとともに自動化アシスタントクライアント110によって制御されるユーザインターフェース出力(たとえば、可聴および/または視覚的)の適応を含み得る。そのような適応は、追加または代替として、たとえば、クライアントデバイス106による(たとえば、自動化アシスタントクライアントの1つもしくは複数の構成要素による)、および/または1つもしくは複数のクラウドベース自動化アシスタント構成要素130によるセンサデータ処理の適応を含み得る。
【００３９】
センサデータ処理を適応させる1つの非限定的例として、口運動および指向性注視の検出に先立って、クライアントデバイス106においてキャプチャされた視覚データおよび/またはオーディオデータは、クライアントデバイス106においてただローカルに(すなわち、クラウドベース自動化アシスタント構成要素130への送信なしで)処理および/または一時的にバッファリングされ得る。ただし、口運動および指向性注視の検出に応答して、そのような処理は、オーディオデータおよび/または視覚データ(たとえば、最近バッファリングされたデータおよび/または検出の後に受信されたデータ)の、さらなる処理のためのクラウドベース自動化アシスタント構成要素130への送信を引き起こすことによって適応され得る。たとえば、口運動および指向性注視の検出により、ユーザは、ユーザの口頭発声を自動化アシスタント120によって完全に処理させ、応答性コンテンツを自動化アシスタント120によって生成させ、ユーザに対してレンダリングさせるための明示的呼出しフレーズ(たとえば、「OKアシスタント」)を話す必要がなくなり得る。
【００４０】
たとえば、ユーザが、今日の予報を取得するために「OKアシスタント、今日の予報はどう」と話す必要があるのではなく、ユーザは代わりに、クライアントデバイス106を見て、クライアントデバイス106を見ている間か、または時間的にその近くに(たとえば、その前および/または後の時間閾内に)「今日の予報はどう」と話すだけでよい。「今日の予報はどう」という口頭発声に対応するデータ(たとえば、口頭発声をキャプチャするオーディオデータ、またはそのテキストもしくは他の意味変換)が、口運動(「今日の天気予報はどう」の全部またはいくつかの部分を話すことによって引き起こされる)および指向性注視を検出したことに応答して、ならびに口運動および指向性注視の間および/または時間的にその近くに口頭発声が受信されたことに応答して、クライアントデバイス106によってクラウドベース自動化アシスタント構成要素130へ送信され得る。
【００４１】
別の例では、ユーザが、接続されたサーモスタットにより自分の家の温度を上げるために「OKアシスタント、暖房を強くして」と話す必要があるのではなく、ユーザは代わりに、クライアントデバイス106を見て、クライアントデバイス106を見ている間か、または時間的にその近くに(たとえば、その前および/または後の時間閾内に)「暖房を強くして」と話すだけでよい。「暖房を強くして」という口頭発声に対応するデータ(たとえば、口頭発声をキャプチャするオーディオデータ、またはそのテキストもしくは他の意味変換)が、口運動(「暖房を強くして」の全部またはいくつかの部分を話すことによって引き起こされる)および指向性注視を検出したことに応答して、ならびに口運動および指向性注視の間および/または時間的にその近くに口頭発声が受信されたことに応答して、クライアントデバイス106によってクラウドベース自動化アシスタント構成要素130へ送信され得る。
【００４２】
別の例では、ユーザが、自宅のガレージのドアを開けるために「OKアシスタント、ガレージのドアを開けて」と話す必要があるのではなく、ユーザは代わりに、クライアントデバイス106を見て、クライアントデバイス106を見ている間か、または時間的にその近くに(たとえば、その前および/または後の時間閾内に)「ガレージのドアを開けて」と話すだけでよい。「ガレージのドアを開けて」という口頭発声に対応するデータ(たとえば、口頭発声をキャプチャするオーディオデータ、またはそのテキストもしくは他の意味変換)が、口運動(「ガレージのドアを開けて」の全部またはいくつかの部分を話すことによって引き起こされる)および指向性注視を検出したことに応答して、ならびに口運動および指向性注視の間および/または時間的にその近くに口頭発声が受信されたことに応答して、クライアントデバイス106によってクラウドベース自動化アシスタント構成要素130へ送信され得る。
【００４３】
いくつかの実装形態では、クライアントデバイス106によるデータの送信は、他条件モジュール118が1つまたは複数の追加条件の出現を判断することをさらに条件とし得る。たとえば、データの送信は、オーディオデータ中にボイスアクティビティが存在することを示す、他条件モジュール118によって実施される、オーディオデータのローカルボイスアクティビティ検出処理にさらに基づき得る。また、たとえば、データの送信は、追加または代替として、他条件モジュール118によって、オーディオデータが、ジェスチャーおよび指向性注視を与えたユーザに対応すると判断したことにさらに基づき得る。たとえば、ユーザの方向(クライアントデバイス106に相対する)は、視覚データに基づいて判断することができ、データの送信は、他条件モジュール118によって、オーディオデータ中の口頭発声が同じ方向から来たものであると判断する(たとえば、ビームフォーミングおよび/または他の技法を使って)ことにさらに基づき得る。また、たとえば、ユーザのユーザプロファイルは、視覚データに基づいて判断することができ(たとえば、顔認識を使って)、データの送信は、他条件モジュール118によって、オーディオデータの中の口頭発声が、ユーザプロファイルと合致するボイス特性を有すると判断したことにさらに基づき得る。さらに別の例として、データの送信は、追加または代替として、他条件モジュール118によって、視覚データに基づいて、ユーザのジェスチャー(たとえば、1つまたは複数の候補呼出しジェスチャーのうちのいずれか)がユーザの口運動および/もしくは指向性注視と共起したか、または検出された口運動および/もしくは指向性注視の閾時間量以内に起こったと判断したことにさらに基づき得る。他条件モジュール118は任意選択で、他の条件が存在すると判断する際に、1つまたは複数の他の機械学習モデル119を使用することができる。注視および口モジュール116の、ならびに他条件モジュール118の実装形態の追加説明が、本明細書において(たとえば、図2A〜図2Bを参照して)与えられる。さらに、検出された口運動および/または注視に基づいて自動化アシスタントを適応させる実装形態の追加説明が、本明細書において(たとえば、図4B〜図4Dを参照して)与えられる。
【００４４】
クラウドベース自動化アシスタント構成要素130を操作する、クライアントコンピューティングデバイス106およびコンピューティングデバイスの各々は、データおよびソフトウェアアプリケーションの記憶のための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にする他の構成要素とを含み得る。クライアントコンピューティングデバイス106によって、および/または自動化アシスタント120によって実施される動作は、複数のコンピュータシステムに分散されてよい。自動化アシスタント120は、たとえば、ネットワークを通して互いと結合される、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上で稼動するコンピュータプログラムとして実装され得る。
【００４５】
上述したように、様々な実装形態では、クライアントコンピューティングデバイス106が自動化アシスタントクライアント110を操作し得る。それらの様々な実装形態のうちのいくつかでは、自動化アシスタントクライアント110は、スピーチキャプチャモジュール112と、上述した視覚的キャプチャモジュール114と、注視および口モジュール116ならびに任意選択で他条件モジュール118を含み得る適応エンジン115とを含み得る。他の実装形態では、スピーチキャプチャモジュール112、視覚的キャプチャモジュール114、および/または適応エンジン115の1つまたは複数の態様は、たとえば、1つまたは複数のクラウドベース自動化アシスタント構成要素130によって、自動化アシスタントクライアント110とは別個に実装されてよい。
【００４６】
様々な実装形態では、スピーチキャプチャモジュール112は、ハードウェアとソフトウェアのどの組合せを使って実装されてもよく、マイクロフォン109または他の圧力センサなどのハードウェアとインターフェースして、ユーザの口頭発声のオーディオ記録をキャプチャすることができる。様々なタイプの処理が、以下で説明するように、このオーディオ記録に対して様々な目的のために実施され得る。様々な実装形態では、視覚的キャプチャモジュール114は、ハードウェアまたはソフトウェアのどの組合せを使って実装されてもよく、視覚構成要素107とインターフェースして、視覚センサ107の、任意選択で適応可能な視野に対応する1つまたは複数の視覚フレーム(たとえば、デジタル画像)をキャプチャするように構成され得る。
【００４７】
スピーチキャプチャモジュール112は、たとえば、前述のように、マイクロフォン109を介して、ユーザのスピーチをキャプチャするように構成され得る。追加または代替として、いくつかの実装形態では、スピーチキャプチャモジュール112は、そのキャプチャされたオーディオを、たとえば、スピーチ-テキスト(「STT」)処理技法を使って、テキストに、および/または他の表現もしくは埋め込みに変換するようにさらに構成され得る。ただし、クライアントデバイス106は、コンピューティングリソース(たとえば、プロセッサ周期、メモリ、バッテリーなど)に関して比較的制約を受ける場合があるので、クライアントデバイス106にとってローカルなスピーチキャプチャモジュール112は、自動化アシスタント120を呼び出すフレーズなど、有限数の異なる口頭フレーズを、テキストに(または、より低次元の埋め込みなど、他の形に)変換するように構成され得る。他のスピーチ入力が、クラウドベースSTTモジュール132を含み得るクラウドベース自動化アシスタント構成要素130へ送られてもよい。
【００４８】
クラウドベースTTSモジュール131は、テキストデータ(たとえば、自動化アシスタント120によって定式化された自然言語応答)をコンピュータ生成スピーチ出力に変換するために、クラウドのほぼ無限のリソースを活用するように構成され得る。いくつかの実装形態では、TTSモジュール131は、コンピュータ生成スピーチ出力を、たとえば、1つまたは複数のスピーカーを使って直接出力されるように、クライアントデバイス106に与えてよい。他の実装形態では、自動化アシスタント120によって生成されたテキストデータ(たとえば、自然言語応答)はクライアントデバイス106に与えられてよく、クライアントデバイス106のローカルTTSモジュールが次いで、テキストデータを、ローカルに出力されるコンピュータ生成スピーチに変換し得る。
【００４９】
クラウドベースSTTモジュール132は、クラウドのほぼ無限のリソースを活用して、スピーチキャプチャモジュール112によってキャプチャされたオーディオデータをテキストに変換するように構成されてよく、テキストは次いで、自然言語理解モジュール135に与えられ得る。いくつかの実装形態では、クラウドベースSTTモジュール132は、スピーチのオーディオ記録を1つまたは複数の音素に変換し、次いで、1つまたは複数の音素をテキストに変換することができる。追加または代替として、いくつかの実装形態では、STTモジュール132は状態復号グラフを利用し得る。いくつかの実装形態では、STTモジュール132は、ユーザの発声の複数の候補テキスト解釈を生成し、1つまたは複数の技法を使用して、候補から所与の翻訳を選択することができる。
【００５０】
自動化アシスタント120(および特に、クラウドベース自動化アシスタント構成要素130)は、意図理解モジュール135、上述したTTSモジュール131、上述したSTTモジュール132、および本明細書においてより詳しく記載する他の構成要素を含み得る。いくつかの実装形態では、モジュールのうちの1つもしくは複数および/または自動化アシスタント120のモジュールは、省かれ、組み合わされ、かつ/または自動化アシスタント120とは別個の構成要素中で実装されてよい。いくつかの実装形態では、意図理解モジュール135、TTSモジュール131、STTモジュール132などのような、自動化アシスタント120の構成要素のうちの1つまたは複数は、クライアントデバイス106上の少なくとも一部において(たとえば、クラウドベース実装形態との組合せで、またはそれらを除いて)実装され得る。
【００５１】
いくつかの実装形態では、自動化アシスタント120は、クライアントデバイス106を介して、ユーザに対する可聴および/またはグラフィカルレンダリングのための様々なコンテンツを生成する。たとえば、自動化アシスタント120は、天気予報、日課表などのようなコンテンツを生成する場合があり、本明細書に記載するように、ユーザからの口運動および/または指向性注視を検出したことに応答してコンテンツをレンダリングさせることができる。また、たとえば、自動化アシスタント120は、クライアントデバイス106を介して与えられた、ユーザの自由形式自然言語入力に応答して、クライアントデバイスの視覚構成要素107からの視覚データを介して検出される、ユーザのジェスチャーに応答して、などのようにして、コンテンツを生成する場合がある。本明細書で使用する自由形式入力は、ユーザによって定式化されるとともに、ユーザによる選択用に提示されるオプションのグループに限定されない入力である。自由形式入力は、たとえば、タイプされた入力および/または口頭入力であってよい。
【００５２】
意図理解モジュール135の自然言語プロセッサ133は、クライアントデバイス106を介してユーザによって生成された自然言語入力を処理し、注釈付き出力を(たとえば、テキストの形で)、自動化アシスタント120の1つまたは複数の他の構成要素による使用のために生成し得る。たとえば、自然言語プロセッサ133は、クライアントデバイス106の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語自由形式入力を処理することができる。生成された注釈付き出力は、自然言語入力の1つまたは複数の注釈と、自然言語入力の言葉のうちの1つまたは複数(たとえば、すべて)とを含む。
【００５３】
いくつかの実装形態では、自然言語プロセッサ133は、自然言語入力中の様々なタイプの文法情報を識別し、注釈を付けるように構成される。たとえば、自然言語プロセッサ133は、個々の単語を形態素に切り離し、かつ/または形態素に、たとえば、それらのクラスで注釈をつけることができる形態素モジュールを含み得る。自然言語プロセッサ133は、言葉に、それらの文法的役割で注釈を付けるように構成された品詞タグ付け器も含み得る。また、たとえば、いくつかの実装形態では、自然言語プロセッサ133は、追加および/または代替として、自然言語入力の中の言葉の間の構文的関係を判断するように構成された依存パーサ(図示せず)を含み得る。
【００５４】
いくつかの実装形態では、自然言語プロセッサ133は、追加および/または代替として、人々(たとえば、文学上の登場人物、有名人、公人などを含む)、組織、ロケーション(実際のおよび仮想の)などへの参照など、1つまたは複数のセグメント中のエンティティ参照に注釈を付けるように構成されたエンティティタグ付け器(図示せず)を含み得る。いくつかの実装形態では、エンティティについてのデータが、知識グラフ(図示せず)中など、1つまたは複数のデータベース中に記憶されてよく、自然言語プロセッサ133のエンティティタグ付け器は、そのようなデータベースを、エンティティタグ付けにおいて使用することができる。
【００５５】
いくつかの実装形態では、自然言語プロセッサ133は、追加および/または代替として、1つまたは複数の文脈的合図に基づいて、同じエンティティへの参照をグループ化、または「クラスタ化」するように構成された相互参照決定器(図示せず)を含み得る。たとえば、同一指示決定器は、「この前Hypotheticalカフェで食事したとき、そこを気に入った」という自然言語入力の中で、「そこ」という用語を、「Hypotheticalカフェ」に決定するのに使用され得る。
【００５６】
いくつかの実装形態では、自然言語プロセッサ133の1つまたは複数の構成要素は、自然言語プロセッサ133の1つまたは複数の他の構成要素からの注釈に依拠し得る。たとえば、いくつかの実装形態では、固有表現タグ付け器は、特定のエンティティへのすべての言及に注釈を付ける際に、相互参照決定器および/または依存パーサからの注釈に依拠し得る。また、たとえば、いくつかの実装形態では、相互参照決定器は、同じエンティティへの参照をクラスタ化する際に、依存パーサからの注釈に依拠し得る。いくつかの実装形態では、特定の自然言語入力を処理する際、自然言語プロセッサ133の1つまたは複数の構成要素は、特定の自然言語入力の他の、関連のある以前の入力および/または他の関連データを、1つまたは複数の注釈を判断するのに使うことができる。
【００５７】
意図理解モジュール135は、自動化アシスタント120との対話に関与するユーザの意図を判断するように構成されている意図照合器134も含み得る。図1では、自然言語プロセッサ133とは別々に示されているが、他の実装形態では、意図照合器134は、自然言語プロセッサ133の(またはより全般的には、自然言語プロセッサ133を含むパイプラインの)不可欠部分であってよい。いくつかの実装形態では、自然言語プロセッサ133および意図照合器134が集合的に、上述した意図理解モジュール135を形成し得る。
【００５８】
意図照合器134は、たとえば、自然言語プロセッサ133からの出力(自然言語入力の注釈および用語を含み得る)に基づいて、クライアントデバイス106のタッチセンサ式ディスプレイにおけるユーザタッチ入力に基づいて、ならびに/または視覚データ中で検出されたジェスチャーおよび/もしくは他の視覚的合図に基づいて、ユーザの意図を判断するのに、様々な技法を使うことができる。いくつかの実装形態では、意図照合器134は、たとえば、文法と応答性アクション(もしくはより全般的には、意図)、視覚的合図と応答性アクション、および/またはタッチ入力と応答性アクションとの間の複数のマッピングを含む、1つまたは複数のデータベース(図示せず)へのアクセスを有し得る。たとえば、マッピングに含まれる文法は、時間をかけて選択および/または学習することができ、ユーザの共通意図を表し得る。たとえば、ある文法、すなわち「<アーティスト>を再生する」が、<アーティスト>による音楽を、ユーザによって操作されるクライアントデバイス106上で再生させる応答性アクションを呼び出す意図にマップされ得る。別の文法、すなわち「今日[天気|予報]」は、「今日は、天気はどう」および「今日の予報はどう?」などのユーザクエリと合致可能であり得る。別の例として、視覚的合図からアクションへのマッピングは、複数のユーザ(たとえば、すべてのユーザ)に適用可能な「包括的」マッピングおよび/またはユーザ固有マッピングを含み得る。視覚的合図からアクションへのマッピングのいくつかの例は、ジェスチャーのためのマッピングを含む。たとえば、「振る」ジェスチャーが、合わせられたコンテンツ(ジェスチャーを与えるユーザに合わせられた)を、ユーザに対してレンダリングさせるアクションにマップされてよく、「親指を立てる」ジェスチャーが、「音楽を演奏する」アクションにマップされてよく、「ハイタッチ」ジェスチャーが、スマートコーヒーメーカーをオンにする、いくつかのスマートライトをオンにする、およびニュース概要を聞こえるようにレンダリングするなど、実施されるべき自動化アシスタントアクションの「ルーチン」にマップされてよい。
【００５９】
文法に加え、またはその代わりに、いくつかの実装形態では、意図照合器134は、1つまたは複数のトレーニング済み機械学習モデルを、単独で、または1つもしくは複数の文法、視覚的合図、および/もしくはタッチ入力との組合せで利用することができる。これらのトレーニング済み機械学習モデルは、1つまたは複数のデータベースに記憶されてもよく、たとえば、ユーザの発声を示すデータおよび/または任意の検出されたユーザ提供視覚的合図を、次元低下空間に埋め込むこと、ならびに、次いで、どの他の埋め込み(およびしたがって、意図)が最も近似しているかを、たとえば、ユークリッド距離、コサイン類似などのような技法を使って判断することによって、意図を識別するようにトレーニングされ得る。
【００６０】
上の「<アーティスト>を再生する」という例示的文法に見られるように、いくつかの文法は、スロット値(または「パラメータ」)で埋められ得るスロット(たとえば、<アーティスト>)を有する。スロット値は、様々なやり方で判断することができる。しばしば、ユーザは、スロット値を積極的に与える。たとえば、「<トッピング>ピザを注文して」という文法の場合、ユーザは、「ソーセージピザを注文して」というフレーズを話す見込みがあり得、そのケースでは、スロット<トッピング>が自動的に埋められる。追加または代替として、ユーザが、ユーザが積極的にスロット値を与えることなく、スロット値で埋められるべきスロットを含む文法を呼び出した場合、自動化アシスタント120は、それらのスロット値をユーザに対して求め得る(たとえば、「ピザはどのタイプのクラストにしますか?」)。いくつかの実装形態では、スロットは、視覚構成要素107によってキャプチャされた視覚データに基づいて検出された視覚的合図に基づくスロット値で埋められ得る。たとえば、ユーザは、クライアントデバイス106の視覚構成要素107に対して3本の指を立てながら、「この猫用食器をたくさん注文して」のようなことを発する場合がある。または、ユーザは、特定の映画用のDVDケースをつかみながら、「こういう映画をもっとたくさん探して」のようなことを発する場合がある。
【００６１】
いくつかの実装形態では、自動化アシスタント120は、ユーザと、入力を受信し、応答性出力を与える独立ソフトウェアプロセスであってよいエージェントとの間のトランザクションを容易にし(または「仲介し」)得る。いくつかのエージェントは、たとえば、クラウドベース自動化アシスタント構成要素130を操作するものとは別個であるコンピューティングシステム上で動作し得るか、または動作することができないサードパーティアプリケーションの形をとり得る。意図照合器134によって識別され得る、ある種のユーザ意図は、サードパーティアプリケーションと関わることである。たとえば、自動化アシスタント120は、ピザ配達サービスへのアプリケーションプログラミングインターフェース(「API」)へのアクセスを提供し得る。ユーザは、自動化アシスタント120を呼び出し、「ピザを注文したい」などのコマンドを与えればよい。意図照合器134は、このコマンドを、サードパーティピザ配達サービスに関与するように自動化アシスタント120をトリガする文法にマップすればよい。サードパーティピザ配達サービスは、ピザ配達注文を遂行するために埋められる必要があるスロットの最小限のリストを、自動化アシスタント120に提供すればよい。自動化アシスタント120は、スロット向けのパラメータを求める自然言語出力を生成し、(クライアントデバイス106を介して)ユーザに与えればよい。
【００６２】
遂行モジュール138は、意図照合器134によって出力される、予測/推定される意図、ならびに関連付けられたスロット値(ユーザによって積極的に与えられたか、ユーザに対して求められたかにかかわらず)を受信し、意図を遂行する(または「解決する」)ように構成され得る。様々な実装形態では、ユーザの意図の遂行(または「解決」)は、たとえば、遂行モジュール138によって、様々な遂行情報(「応答性」情報またはデータとも呼ばれる)を生成/取得させ得る。
【００６３】
様々なやり方で意図が遂行され得るので、遂行情報は様々な形をとり得る。ユーザが、「「シャイニング」の屋外場面はどこで撮影された?」など、純粋な情報を要求すると想定する。ユーザの意図は、たとえば、意図照合器134によって、検索クエリであると判断され得る。検索クエリの意図および内容は遂行モジュール138に与えられてよく、このモジュールは、図1に示されるように、応答性情報を求めて、ドキュメントのコーパスおよび/または他のデータソース(たとえば、知識グラフなど)を検索するように構成された1つまたは複数の検索モジュール150と通信し得る。遂行モジュール138は、検索クエリ(たとえば、クエリのテキスト、次元低下埋め込みなど)を示すデータを検索モジュール150に提供し得る。検索モジュール150は、GPS座標などの応答性情報、または「オレゴン州、フッド山、ティンバーラインロッジ」など、他のより明示的な情報を提供し得る。この応答性情報は、遂行モジュール138によって生成された遂行情報の一部を形成し得る。
【００６４】
追加または代替として、遂行モジュール138は、たとえば、意図理解モジュール135から、ユーザの意図と、ユーザによって与えられるか、または他の手段(たとえば、ユーザのGPS座標、ユーザ選好など)を使って判断された任意のスロット値とを受信し、応答性アクションをトリガするように構成され得る。応答性アクションは、たとえば、商品/サービスを注文すること、タイマーをスタートすること、リマインダをセットすること、電話呼を開始すること、メディアを再生すること、メッセージを送ること、複数のアクションのルーチンを開始することなどを含み得る。いくつかのそのような実装形態では、遂行情報は、遂行に関連付けられたスロット値、確認応答(いくつかのケースでは、所定の応答から選択され得る)などを含み得る。
【００６５】
追加または代替として、遂行モジュール138は、ユーザの意図を(たとえば、時刻、過去の対話などに基づいて)推論し、それらの意図についての応答性情報を取得するように構成され得る。たとえば、遂行モジュール138は、ユーザのための日めくりカレンダ要約、ユーザ向けの天気予報、および/またはユーザ向けの他のコンテンツを取得するように構成される場合がある。遂行モジュール138はさらに、そのようなコンテンツを、ユーザへのグラフィカルおよび/または可聴レンダリングのために「プッシュ」させることができる。たとえば、そのようなコンテンツのレンダリングは、適応エンジン115が口運動および指向性注視の出現を検出したことに応答して起こる適応であってよい。
【００６６】
自然言語ジェネレータ136は、様々なソースから取得されたデータに基づいて、自然言語出力(たとえば、人間スピーチを模倣するように設計されている単語/フレーズ)を生成および/または選択するように構成され得る。いくつかの実装形態では、自然言語ジェネレータ136は、入力として、意図の遂行に関連付けられた遂行情報を受信するように、および遂行情報に基づいて自然言語出力を生成するように構成され得る。追加または代替として、自然言語ジェネレータ136は、サードパーティアプリケーションなど、他のソースから情報を受信する場合があり、その情報を、ユーザ向けの自然言語出力を組み立てるのに使えばよい。
【００６７】
ここで図2Aおよび図2Bを参照すると、注視および口モジュール116がどのようにして特定の口運動および/または指向性注視を検出することができるか、ならびにそれに応じて、適応エンジン115がどのようにして自動化アシスタントを適応させ得るかの様々な例が示されている。
【００６８】
最初に図2Aに移ると、視覚的キャプチャモジュール114が、注視および口モジュール116に視覚フレームを与える。いくつかの実装形態では、視覚的キャプチャモジュール114は、注視および口モジュール116に、視覚フレームのリアルタイムストリームを提供する。それらの実装形態のうちのいくつかでは、視覚的キャプチャモジュール114は、クライアントデバイス106をもつ環境に人間が存在することを示す、別個の存在センサ105からの信号に応答して、視覚フレームを与え始める。たとえば、存在センサ105は、PIRセンサであってよく、人間の存在を検出したことに応答して、視覚的キャプチャモジュール114に信号を与えることができる。視覚的キャプチャモジュール114は、人間存在が検出されない限り、注視および口モジュール116にいかなる視覚フレームを与えるのも控えてよい。視覚的キャプチャモジュール114が、注視および口モジュール116に視覚フレームを選択的に与えるだけである他の実装形態では、追加および/または代替合図が、そのような提供を開始するのに使用されてよい。たとえば、人間の存在は、1つもしくは複数の他の構成要素による視覚フレームの分析に基づく、スピーチキャプチャモジュール112からのオーディオデータ、および/または他の信号に基づいて検出することができる。
【００６９】
注視および口モジュール116は、指向性注視と口運動の両方の出現を監視するために、1つまたは複数の機械学習モデル117を使って視覚フレームを処理する。指向性注視と口運動の両方が検出されると、注視および口モジュール116は、注視および口運動の検出の指示を適応エンジン115に与える。
【００７０】
図2Aにおいて、視覚フレームおよび/またはオーディオデータ(スピーチキャプチャモジュール112によって与えられた)は、他条件モジュール118にも与えられる。他条件モジュール118は、1つまたは複数の他の条件の出現を監視するために、任意選択で1つまたは複数の他の機械学習モデル119を使って、与えられたデータを処理する。たとえば、他の条件は、オーディオデータに基づいて、どのボイスアクティビティも検出すること、オーディオデータ中での口頭呼出しフレーズの存在を検出すること、オーディオデータに基づいて、ユーザの方向または位置からのボイスアクティビティを検出すること、視覚フレームおよび/またはオーディオデータに基づいて、ユーザが、認可されたユーザであることを検出すること、視覚フレームに基づいて、(口運動および指向性注視を与えた)ユーザのジェスチャーを検出することなどであってよい。他の条件が検出されると、他条件モジュール118は、他の条件の出現の指示を適応エンジン115に与える。
【００７１】
適応エンジン115が、指向性注視および口運動の指示、ならびに他の条件の時間的に近似した指示を受信すると、適応エンジン115は、自動化アシスタント120の適応101を引き起こす。たとえば、適応101は、クライアントデバイス106のユーザインターフェース出力のレンダリングを適応させること、および/またはクライアントデバイス106によるオーディオデータ処理を適応させることを含み得る。
【００７２】
いくつかの実装形態では、および図2Bに関してより詳しく記載するように、注視および口モジュール116は、指向性注視を検出するための1つまたは複数の第1の機械学習モデル117、および口運動を検出するための1つまたは複数の第2の機械学習モデル117を使うことができる。いくつかの他の実装形態では、注視および口モジュール116は、入力として、視覚フレーム(またはそれらの特徴)を受諾するとともに口運動および指向性注視が起こったかどうかを示す出力を(モデルにわたる入力の処理に基づいて)生成するのに使用することができるエンドツーエンドの機械学習モデルを使用することができる。そのような機械学習モデルは、たとえば、1つまたは複数のメモリレイヤ(たとえば、長短期メモリ(LSTM)レイヤ)を含む回帰型ニューラルネットワーク(RNN)モデルなどのニューラルネットワークモデルであってよい。そのようなRNNモデルのトレーニングは、トレーニング例入力として、視覚フレーム(たとえば、ビデオ)のシーケンスと、トレーニング例出力として、シーケンスが口運動と指向性注視の両方を含むかどうかの指示とを含むトレーニング例に基づいてよい。たとえば、トレーニング例出力は、口運動と指向性注視の両方が存在するかどうかを各々が示す1つまたは複数の値を含み得る。たとえば、トレーニング例出力は、値のシーケンスを含んでよく、シーケンスの値の各々が、視覚フレームのうちの対応する1つについてである。
【００７３】
図2Bは、口運動および注視検出モジュール116が、口運動の出現を監視する際に口機械学習モデル117Aを使用する口モジュール116Aを含み、指向性注視の出現を監視する際に注視機械学習モデル117Bを使用する注視モジュール116Bを含む例を示す。他条件モジュール118は、簡単のために図2Bには示されていないが、任意選択で、図2Aに関して記載するのと同様に、口モジュール116Aおよび注視モジュール116Bとの組合せで使用されてもよい。
【００７４】
図2Bにおいて、視覚的キャプチャモジュール114は、検出および分類モジュール116Cに視覚フレームを与える。検出および分類モジュール116Cは、各視覚フレームの様々な領域を分類するのに、オブジェクト検出および分類機械学習モデル117Cを使用する。たとえば、検出および分類モジュール116Cは、人間に対応する各視覚フレームの人間領域(もしあれば)を分類し、そのような人間領域の指示を、各視覚フレームについて、口モジュール116Aおよび注視モジュール116Bに与えることができる。また、たとえば、検出および分類モジュール116Cは、顔領域に対応する各視覚フレームの領域(もしあれば)を分類し、各視覚フレームについて、口モジュール116Aおよび注視モジュール116Bに与えることができる。また、たとえば、検出および分類モジュール116Cは、人間の目領域に対応する各視覚フレームの領域(もしあれば)を分類し、そのような領域の指示を、各視覚フレームについて、注視モジュール116Bに与えることができる。さらに別の例として、検出および分類モジュール116Cは、人間の口領域に対応する各視覚フレームの領域(もしあれば)を分類し、そのような領域の指示を、各視覚フレームについて、口モジュール116Aに与えることができる。
【００７５】
いくつかの実装形態では、口モジュール116Aは、各視覚フレームの対応する部分のみを処理するのに、与えられた領域を使用することができる。たとえば、口モジュール116Aは、人間領域、または顔領域、または口領域を含む部分のみを処理するのに、視覚フレームを「クロップ」し、サイズ変更することができる。それらの実装形態のうちのいくつかでは、口機械学習モデル117Aは、「クロップ」される視覚フレームに基づいてトレーニングすることができ、サイズ変更は、そのようなモデルの入力寸法に従うサイズまでであってよい。いくつかの追加または代替実装形態では、口モジュール116Aは、まとめていくつかの視覚フレーム(たとえば、人間および/または顔領域を含まないものとして示されるもの)の処理をスキップするのに、与えられた領域を使用することができる。さらに他の実装形態では、口モジュール116Aは、与えられた領域を、各視覚フレームの処理に集中するための注意機構として(たとえば、口機械学習モデル117Aへの別個の注意入力として)使用することができる。
【００７６】
同様に、いくつかの実装形態では、注視モジュール116Bは、各視覚フレームの対応する部分のみを処理するのに、与えられた領域を使用することができる。たとえば、注視モジュール116Bは、人間領域、または顔領域、または目領域を含む部分のみを処理するのに、視覚フレームを「クロップ」し、サイズ変更することができる。それらの実装形態のうちのいくつかでは、注視機械学習モデル117Bは、「クロップ」される視覚フレームに基づいてトレーニングすることができ、サイズ変更は、そのようなモデルの入力寸法に従うサイズまでであってよい。いくつかの追加または代替実装形態では、注視モジュール116Bは、まとめていくつかの視覚フレーム(たとえば、人間および/または顔領域を含まないものとして示されるもの)の処理をスキップするのに、与えられた領域を使用することができる。さらに他の実装形態では、注視モジュール116Bは、与えられた領域を、各視覚フレームの処理に集中するための注意機構として(たとえば、注視機械学習モデル117Bへの別個の注意入力として)使用することができる。
【００７７】
いくつかの実装形態では、検出および分類モジュール116Cは、追加または代替として、特定の領域の指示を、他条件モジュール118による使用のために他条件モジュール118(簡単のために、図2Bには示していない)に与えることができる。たとえば、ジェスチャーの検出が、自動化アシスタントを適応させるための追加条件であるとき、体領域が、対応するジェスチャー機械学習モデルを使用してジェスチャーを検出する際に、他条件モジュール118によって使われ得る。
【００７８】
いくつかの実装形態では、検出および分類モジュール116Cは、追加または代替として、口モジュール116Aおよび注視モジュール116Bに、TVまたは他のビデオディスプレイソースとして分類される領域の指示を与えることができる。それらの実装形態のうちのいくつかでは、モジュール116Aおよび116Bは、それらの領域を、処理された視覚フレームからクロップし、それらの領域から注意をそらし、および/もしくは検出の際に他のやり方でそれらの領域を無視し、またはそのような領域に検出が基づく機会を減らすことができる。これらおよび他のやり方で、自動化アシスタントの誤判定適応を軽減することができる。
【００７９】
上述したように、口モジュール116Aは、口運動を検出するための1つまたは複数の口機械学習モデル117Aを使うことができる。そのような機械学習モデルは、たとえば、1つまたは複数のメモリレイヤを含むRNNモデルなどのニューラルネットワークモデルであってよい。そのようなRNNモデルのトレーニングは、トレーニング例入力として、視覚フレーム(たとえば、ビデオ)のシーケンスと、トレーニング例出力として、シーケンスが1つまたは複数の特定の口運動を含むかどうかの指示とを含むトレーニング例に基づいてよい。たとえば、トレーニング例出力は、対応するユーザが話していることを示すいずれかの口運動が存在するかどうかを示す単一の値であってよい。たとえば、単一の値は、口運動が存在しないときは「0」、ユーザが話していることを示す口運動が存在するときは「1」であってよい。たとえば、トレーニング例出力は、対応するユーザが話していることを示すいずれかの口運動が存在するかどうかを各々が示す1つまたは複数の値を含み得る。たとえば、トレーニング例出力は、値のシーケンスを含んでよく、シーケンスの値の各々が、視覚フレームのうちの対応する1つについてである(たとえば、トレーニングされるモデルがシーケンス-シーケンスモデルであるとき)。値は、たとえば、口運動が存在しないときは「0」、ユーザが話していることを示す口運動が存在するときは「1」であってよい。別の例として、トレーニング例出力は、視覚フレームのシーケンスについての単一の値を含んでよく、ここで、単一の値は、対応するユーザが話していることを示すいずれかの口運動が存在するかどうかを示す。
【００８０】
それらおよび/または他の実装形態のうちのいくつかでは、口モジュール116Aは、少なくとも閾確率での、および/または少なくとも閾持続時間の口運動が検出されたときにのみ、口運動を判断する。たとえば、画像フレームのストリームは、シーケンス-シーケンスRNNモデルを使って処理することができ、各フレームを処理すると、口運動が起こっている(ネットワークの回帰型性質により、前のフレームに基づき得る)対応する確率が生じ得る。口運動モジュールは、画像フレームのシーケンスの少なくともX%(閾持続時間に対応する)が、閾を満足する、対応する確率を有する場合のみ、口運動があると判断することができる。たとえば、X%は60%であり、確率閾は0.6であり、閾持続時間は0.25秒であると仮定する。さらに、5つの画像フレームは0.5秒に対応すると仮定する。画像フレームが処理されて、[0.75、0.85、0.5、0.7、0.9]の確率を生成した場合、フレームの80%が、0.7よりも大きい確率で口運動を示したので、口運動を検出することができる。追加および/または代替の機械学習モデルおよび/または技法が、口運動を検出するのに使用されてよい。
【００８１】
注視モジュール116Bは、指向性注視を検出するための1つまたは複数の注視機械学習モデル117Bを使うことができる。そのような機械学習モデルは、たとえば、畳込みニューラルネットワーク(CNN)モデルなどのニューラルネットワークモデルであってよい。そのようなCNNモデルのトレーニングは、トレーニング例入力として、視覚フレーム(たとえば、画像)と、トレーニング例出力として、画像が指向性注視を含むかどうかの指示とを含むトレーニング例に基づいてよい。たとえば、トレーニング例出力は、指向性注視が存在するかどうかを示す単一の値であってよい。たとえば、単一の値は、指向性注視が存在しないときは「0」、画像をキャプチャするセンサに直接、またはその5度以内に向けられる注視が存在するときは「1」、画像をキャプチャするセンサの5〜10度以内に向けられる注視が存在するときは「0.75」、などであってよい。
【００８２】
それらおよび/または他の実装形態のうちのいくつかでは、注視モジュール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モデル)および/または技法が、少なくとも閾持続時間をかけて起こる指向性注視を検出するのに使用され得る。
【００８３】
図3は、図1のクライアントデバイス106および視覚構成要素107の例を示す。図3では、例示的クライアントデバイスは、106Aと記され、スピーカーおよびディスプレイをさらに含む。図3では、例示的視覚構成要素は、107Aと記され、カメラである。図3は、話している(図示せず)とともにカメラ107Aに向けられる注視を与えているユーザ301も示す。図3は、ユーザが話し、指向性注視を与えているときにカメラ107Aによってキャプチャされた例示的画像360も示す。ユーザは画像360、ならびにユーザの後ろにある(したがって、図3の斜視図では見えない)テレビジョン中にキャプチャされることが分かり得る。
【００８４】
画像360中では、境界ボックス362が設けられ、顔に対応すると判断され得る(たとえば、図2Bの検出および分類モジュール116Cによって)画像の領域を表す。いくつかの実装形態では、クライアントデバイス106A上で動作する注視および口運動モジュールは、その部分が、顔に対応する部分として示されることに基づいて、指向性注視および口運動を監視する際に、画像のその部分のみを処理(またはその部分に注意を集中)すればよい。単一の画像のみが図3に示されているが、様々な実装形態では、指向性注視検出および/または口運動検出は、本明細書に記載するように、画像のシーケンスに基づき得る。
【００８５】
画像360中では、境界ボックス363も設けられ、ビデオディスプレイに対応すると判断され得るとともに視覚的合図の誤判定を起こす可能性がある画像の領域を表す。たとえば、テレビジョンは、1人または複数の個人が話をし、カメラをのぞき込んでいる、などのことを示すビデオをレンダリングする場合があり、これらはいずれも、口運動および/または指向性注視の出現と誤解されかねない。いくつかの実装形態では、図2Bの検出および分類モジュール116Cは、そのような領域を(たとえば、TV分類を検出したことに基づいて)判断することができ、かつ/またはそのような領域は、画像360および先行する画像の分析に基づいて判断されて、領域は、ビデオディスプレイの表示周波数(たとえば、ほぼ60Hz、120Hz、および/もしくは他の典型的なビデオ表示周波数)に対応する表示周波数を有すると判断することができる。いくつかの実装形態では、口運動モジュールおよび/または注視モジュールは、その領域を、処理された視覚フレームからクロップし、その領域から注意をそらし、および/もしくは検出の際に他のやり方でその領域を無視し、またはそのような領域に検出が基づく機会を減らすことができる。これらおよび他のやり方で、自動化アシスタントの誤判定適応を軽減することができる。
【００８６】
図4Aは、本明細書で開示する実装形態による例示的方法400を示すフローチャートである。図4B、図4C、図4D、および図4Eは各々、図4Aのブロック410の実装形態の異なる例を示すフローチャートである。便宜上、図4A〜図4Dのフローチャートの動作は、動作を実施するシステムを参照して記載される。このシステムは、自動化アシスタント120を実装するコンピューティングシステム(たとえば、クライアントデバイスおよび/またはリモートコンピューティングシステム)の1つまたは複数の構成要素など、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法400の動作は特定の順序で示されているが、これは限定的であることは意図していない。1つまたは複数の動作が、並べ替えられ、省かれ、または追加されてよい。
【００８７】
ブロック402において、システムは、視覚構成要素からの出力に基づく視覚データを受信する。いくつかの実装形態では、視覚構成要素は、アシスタントクライアントを含むクライアントデバイスと統合されてよい。いくつかの実装形態では、視覚構成要素は、クライアントデバイスと別個であってよいが、クライアントデバイスと通信する。たとえば、視覚構成要素は、アシスタントクライアントを含むクライアントデバイスとワイヤードおよび/またはワイヤレス通信するスタンドアロンスマートカメラを含み得る。
【００８８】
ブロック404において、システムは、口運動と指向性注視の両方の出現を監視するために、少なくとも1つの機械学習モデルを使って視覚データを処理する。
【００８９】
ブロック406において、システムは、ブロック404の監視に基づいて、口運動と指向性注視の両方が検出されたかどうかを判断する。検出されていない場合、システムはブロック402に逆進し、追加視覚データを受信し、ブロック404および406を再度反復して実施する。いくつかの実装形態では、システムは、口運動および指向性注視が共起するか、または互いの閾時間近接以内に起こることを検出したことに基づいて、口運動と指向性注視の両方が検出されたと判断する。いくつかの追加または代替実装形態では、システムは、口運動が、少なくとも閾持続時間にわたり、かつ/または指向性注視が少なくとも閾持続時間(口運動持続時間に対して任意選択で使われるものと同じでも、異なってもよい)にわたることを検出したことに基づいて、口運動と指向性注視の両方が検出されたと判断する。本明細書に記載するように、システムは、ブロック406を実施する際に、1つまたは複数の機械学習モデルを使用することができる。
【００９０】
ブロック406の反復において、システムは、ブロック404の監視に基づいて、口運動と注視の両方が検出されたと判断した場合、システムは任意選択で、ブロック408に(または、ブロック408が含まれないときは、ブロック410に直接)進む。
【００９１】
任意選択のブロック408において、システムは、1つまたは複数の他の条件が満足されるかどうかを判断する。満足されない場合、システムはブロック402に逆進し、追加視覚データを受信し、ブロック404、406、および408を再度反復して実施する。満足される場合、システムはブロック410に進む。システムは、ブロック402において受信された視覚データ、オーディオデータ、および/または他のセンサもしくは非センサデータを使って、1つまたは複数の他の条件が満足されるかどうかを判断することができる。明示的に本明細書に記載したものなど、他の様々な条件が、システムによって検討され得る。
【００９２】
ブロック410において、システムは自動化アシスタントを適応させる。システムは、図4B〜図4Dに関して以下で説明するもののうちの1つまたは複数など、様々なやり方で自動化アシスタントを適応させることができる。
【００９３】
ここで図4B〜図4Dに移ると、図4Aのブロック410の実装形態の様々な例が示されている。最初に図4Bに移ると、ブロック410の例の初回反復410B1が、図4Aのブロック406および408における「yes」という判断に応答して実施される。反復410B1において、システムは、リモート処理のためのセンサデータ(たとえば、視覚データおよび/またはオーディオデータ)を提供するのに先立って、可聴および/または視覚的合図を与える。合図のレンダリングは、オーディオデータおよび/または視覚データのリモート処理が起ころうとしていることを(直接または間接的に)示し得る。可聴の「鐘の音」および/またはアシスタントデバイスの発光ダイオードの照明など、様々な人間知覚可能合図がレンダリングされ得る。
【００９４】
反復410B1の後、ブロック402、404、および406(図4A)のさらなる反復が実施され、図4Bに示されるように、さらなる「yes」判断がブロック406および408において行われる。さらなる「yes」判断は、ユーザが話し、自分の注視をクライアントデバイスに向け続けていることを示す。さらなる「yes」判断に応答して、ブロック410の例の追加反復410B2が実施される。反復410B2において、システムは、オーディオデータおよび/または視覚データを、リモート処理のためにリモート構成要素に送信する。さらなる「yes」判断が行われなかった場合、反復410B2のさらなる適応は起こることはない。たとえば、ユーザが自分の注視をそらし、かつ/または話すのをやめていた場合、「no」判断が行われることになり、反復410B2のさらなる適応は防止される。
【００９５】
ここで図4Cに移ると、ブロック410の例410C1が、図4Aのブロック406および408における「yes」という判断に応答して実施される。ブロック410C1において、ブロック406および408における「yes」判断が行われると、システムは、レンダリングされている可聴出力のボリュームを低下させる。いくつかの実装形態では、ブロック410のさらなる例示的ブロック410C2および任意選択で410C3も実施される。ブロック410C2において、システムはオーディオデータの特定の処理を開始する。ブロック410C2は、図4Aのブロック406および408における「yes」判断に応答して実施することができ、バッファリングされる、および/またはストリーミング中であるオーディオデータの特定の処理を含み得る。特定の処理は、たとえば、ボイスアクティビティ検出、呼出しフレーズ検出、および/または他の処理を含み得る。ブロック410C3において、図410C2の特定の処理が1つまたは複数の条件を満足する場合、システムは可聴出力を停止する。たとえば、図410C2のボイスアクティビティ検出が、処理されたオーディオデータ中にユーザの口頭発声が存在することを示す場合、ならびに/または口頭発声が存在し、口運動および指向性注視に対応するユーザの方向から発することを処理が示す場合、システムは、可聴処理を停止することができる。
【００９６】
ここで図4Dに移ると、ブロック410の例410D1が、図4Aのブロック406および408における「yes」という判断に応答して実施される。ブロック410D1において、ブロック406および408における「yes」判断が行われると、システムは、レンダリングされている可聴出力を停止する。いくつかの実装形態では、ブロック410のさらなる例示的ブロック410D2も実施される。ブロック410D2において、システムはオーディオデータの特定の処理を開始する。ブロック410D2は、図4Aのブロック406および408における「yes」判断に応答して実施することができ、バッファリングされる、および/またはストリーミング中であるオーディオデータの特定の処理を含み得る。特定の処理は、たとえば、ボイスアクティビティ検出、呼出しフレーズ検出、さらなる処理のための、リモート構成要素へのオーディオデータの送信、および/または他の処理を含み得る。
【００９７】
ここで図4Eに移ると、ブロック410の例410Eが、図4Aのブロック406および408における「yes」という判断に応答して実施される。ブロック410Eにおいて、システムは、ブロック406および408において行われる「yes」判断が行われたことに応答して、オーディオデータを処理する際に、ユーザの判断されたロケーションを使う。いくつかの実装形態では、ブロック410のさらなる例示的ブロック410D2も実施される。ユーザの位置は、クライアントデバイスに相対してよく、たとえば、ユーザに対応すると判断された視覚データの部分に基づいてシステムによって判断することができる。ユーザの位置は、ユーザが、検出された口運動および指向性注視に対応すること(ユーザが、システムと可聴的に対話しようと試みていることを示し得る)に基づいて、処理において判断され、使われ得る。ユーザの位置に基づくオーディオデータの処理は、たとえば、口頭発声に対応するオーディオデータの部分を分離すること、および/またはオーディオデータからバックグラウンドノイズを削除することを含み得る。そのような処理は、オーディオデータの部分を分離し、かつ/またはオーディオデータからバックグラウンドノイズを削除する際に、判断された位置と、ビームフォーミングおよび/または他の技法とに依拠し得る。
【００９８】
図4A〜図4Eは別々に示されているが、様々な実装形態では、図4A〜図4Eのうちの複数の、例示的ブロックは、口運動および指向性注視の出現を検出したことに応答して実施され得ることに留意されたい。一例として、図4Aのブロック406および408における「yes」判断に応答して、図4Cのブロック410C1および410C2が実施されてよく、ブロック410C2は、図4Eのブロック410Eの処理を含み得る。別の例として、図4Aのブロック406および408における初回「yes」判断に応答して、図4Bのブロック410B1が実施されてよく、追加「yes」判断に応答して、ブロック410B2が実施されてよく、リモート構成要素は、図4Eのブロック410Eの処理を実施することができる。
【００９９】
口運動と指向性注視の両方を検出したことに応答して、自動化アシスタントを適応させる様々な例が、本明細書に記載されている。ただし、様々な実装形態では、自動化アシスタントは、口運動、および指向性注視のうちのただ1つを検出したことに応答して、任意選択で、本明細書に記載するものなど、1つまたは複数の他の条件との組合せで、適応され得る。たとえば、それらの様々な実装形態のうちのいくつかでは、自動化アシスタントは、少なくとも閾持続時間にわたるユーザの指向性注視を、ユーザのジェスチャーなど、共起する他の条件とともに検出したことに応答して適応され得る。また、たとえば、それらの様々な実装形態のうちのいくつかでは、自動化アシスタントは、ユーザの口運動を、ユーザのジェスチャーおよび/または検出されたボイスアクティビティなど、共起および/または時間的に近接する他の条件とともに検出したことに応答して適応され得る。
【０１００】
図5は、本明細書に記載する技法の1つまたは複数の態様を実施するために任意選択で使用され得る例示的コンピューティングデバイス510のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイス、クラウドベース自動化アシスタント構成要素130、および/または他の構成要素のうちの1つまたは複数が、例示的コンピューティングデバイス510の1つまたは複数の構成要素を含み得る。
【０１０１】
コンピューティングデバイス510は通常、バスサブシステム512を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ514を含む。これらの周辺デバイスは、たとえば、メモリサブシステム525およびファイル記憶サブシステム526を含む記憶サブシステム524と、ユーザインターフェース出力デバイス520と、ユーザインターフェース入力デバイス522と、ネットワークインターフェースサブシステム516とを含み得る。入力および出力デバイスは、コンピューティングデバイス510とのユーザ対話を可能にする。ネットワークインターフェースサブシステム516は、外側ネットワークへのインターフェースを提供し、他のコンピューティングデバイス中の対応するインターフェースデバイスに結合される。
【０１０２】
ユーザインターフェース入力デバイス522は、キーボード、マウス、トラックボールなどのポインティングデバイス、タッチパッド、もしくはグラフィックスタブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどのオーディオ入力デバイス、および/または他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、すべての可能なタイプのデバイスと、コンピューティングデバイス510中に、または通信ネットワーク上に情報を入力する方法とを含むことを意図している。
【０１０３】
ユーザインターフェース出力デバイス520は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための何らかの他の機構を含み得る。ディスプレイサブシステムは、オーディオ出力デバイスを介するなどして、非視覚的ディスプレイも提供し得る。概して、「出力デバイス」という用語の使用は、すべての可能なタイプのデバイスと、コンピューティングデバイス510からユーザに、または別の機械もしくはコンピューティングデバイスに情報を出力する方法とを含むことを意図している。
【０１０４】
記憶サブシステム524は、本明細書に記載するモジュールの一部または全部の、機能性を提供するプログラミングおよびデータ構造体を記憶する。たとえば、記憶サブシステム524は、図4A〜図4Dの方法の選択された態様を実施するための、ならびに図1、図2A〜図2B、および図3に示す様々な構成要素を実装するための論理を含み得る。
【０１０５】
これらのソフトウェアモジュールは概して、プロセッサ514によって単独で、または他のプロセッサとの組合せで実行される。記憶サブシステム524において使われるメモリ525は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)530と、固定命令が記憶される読出し専用メモリ(ROM)532とを含むいくつかのメモリを含み得る。ファイル記憶サブシステム526が、プログラムおよびデータファイルのための永続記憶をもたらすことができ、ハードディスクドライブ、フロッピーディスクドライブを、関連付けられた取り外し可能媒体、CD-ROMドライブ、光ドライブ、または取り外し可能メディアカートリッジとともに含み得る。いくつかの実装形態の機能性を実装するモジュールは、ファイル記憶サブシステム526によって記憶サブシステム524に、またはプロセッサ514によってアクセス可能な他の機械に記憶され得る。
【０１０６】
バスサブシステム512は、コンピューティングデバイス510の様々な構成要素およびサブシステムを、意図したように互いと通信させるための機構を提供する。バスサブシステム512は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は複数のバスを使うことができる。
【０１０７】
コンピューティングデバイス510は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、またはどの他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプであってもよい。コンピュータおよびネットワークの絶えず変わる性質により、図5に示すコンピューティングデバイス510の記述は、いくつかの実装形態を示す目的のための具体例としてのみ意図している。コンピューティングデバイス510の多くの他の構成は、図5に示すコンピューティングデバイスよりも多いか、またはそれよりも少ない構成要素を有することが可能である。
【０１０８】
本明細書に記載するシステムがユーザについての個人情報を収集し、もしくはそうでなければ監視するか、または個人および/もしくは監視される情報を利用する場合がある状況では、ユーザには、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの嗜好、またはユーザの現在の地理的ロケーションについての情報)を収集するかどうかを制御するための、あるいはユーザにより関連する場合があるコンテンツをコンテンツサーバから受信するかどうか、および/またはどのようにして受信するかを制御するための機会が与えられ得る。また、特定のデータが、記憶され、または使われる前に、個人識別情報が削除されるように1つまたは複数のやり方で扱われ得る。たとえば、ユーザのアイデンティティが、ユーザについての個人識別情報が判断され得ないように扱われてよく、またはユーザの地理的ロケーションが、ユーザの特定の地理的ロケーションを判断することができないように、地理的ロケーション情報が取得されるように(たとえば、市、郵便番号、または州レベルに)一般化されてよい。したがって、ユーザは、情報がどのように、ユーザについて収集され、かつ/または使われるかに対する制御を有することができる。たとえば、いくつかの実装形態では、ユーザは、口運動および/または指向性注視の出現を監視する際に、視覚構成要素107を使って、かつ/または視覚構成要素107からの視覚データを使って、アシスタントデバイスを選ばなくてもよい。
【符号の説明】
【０１０９】
105  存在センサ
106  クライアントコンピューティングデバイス、クライアントデバイス
106A  クライアントデバイス
107  視覚構成要素、視覚センサ
107A  カメラ
109  マイクロフォン
110  自動化アシスタントクライアント
112  スピーチキャプチャモジュール
114  ローカルおよび/またはワイドエリアネットワーク、視覚的キャプチャモジュール
115  適応エンジン
116  注視および口モジュール
116A  口モジュール、モジュール
116B  注視モジュール、モジュール
116C  検出および分類モジュール
117  トレーニング済み機械学習モデル、機械学習モデル
117A  口機械学習モデル
117B  注視機械学習モデル
117C  オブジェクト検出および分類機械学習モデル、検出および分類機械学習モデル
118  他条件モジュール
119  機械学習モデル
120  自動化アシスタント
130  クラウドベース自動化アシスタント構成要素
131  クラウドベースTTSモジュール、TTSモジュール
132  クラウドベースSTTモジュール、STTモジュール
133  自然言語プロセッサ
134  意図照合器
135  自然言語理解モジュール、意図理解モジュール
136  自然言語ジェネレータ
138  遂行モジュール
150  検索モジュール
510  コンピューティングデバイス
512  バスサブシステム
514  プロセッサ
516  ネットワークインターフェースサブシステム
520  ユーザインターフェース出力デバイス
522  ユーザインターフェース入力デバイス
524  記憶サブシステム
525  メモリサブシステム、メモリ
526  ファイル記憶サブシステム
530  メインランダムアクセスメモリ(RAM)
532  読出し専用メモリ(ROM)
【図１】
2021521497.tif 000003
【図２Ａ】
2021521497.tif 000004
【図２Ｂ】
2021521497.tif 000005
【図３】
2021521497.tif 000006
【図４Ａ】
2021521497.tif 000007
【図４Ｂ】
2021521497.tif 000008
【図４Ｃ】
2021521497.tif 000009
【図４Ｄ】
2021521497.tif 000010
【図４Ｅ】
2021521497.tif 000011
【図５】
2021521497.tif 000012
【手続補正書】
【提出日】令和2年12月9日(2020.12.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1人または複数のユーザと自動化アシスタントとの間のタッチフリー対話を容易にする、クライアントデバイスの1つまたは複数のプロセッサによって実装される方法であって、
前記クライアントデバイスの1つまたは複数のカメラからの出力に基づく画像フレームのストリームを受信するステップと、
前記クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、
前記クライアントデバイスの前記1つまたは複数のカメラの方へ向けられた、ユーザの注視と、
前記ユーザの口の運動
の両方の出現を監視するために、前記ストリームの前記画像フレームを処理するステップと、
前記監視に基づいて、
前記ユーザの前記注視と、
前記ユーザの前記口の前記運動
の両方の出現を検出するステップと、
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることと、
前記クライアントデバイスによるオーディオデータ処理を適応させることの一方または両方を実施するステップとを含む方法。
【請求項２】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して実施される、請求項1に記載の方法。
【請求項３】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、
前記クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力のボリュームを低下させることを含む、請求項2に記載の方法。
【請求項４】
前記ユーザの前記口の前記運動と時間的に対応するオーディオデータのボイスアクティビティ検出を実施するステップと、
前記ユーザの口運動に時間的に対応する前記オーディオデータの前記ボイスアクティビティ検出に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含み、
前記クライアントデバイスによってレンダリングされた前記可聴ユーザインターフェース出力の前記ボリュームを低下させることは、ボイスアクティビティの前記出現を判断したことにさらに応答し、前記ボイスアクティビティの前記出現が、前記ユーザの前記口運動に時間的に対応する前記オーディオデータについてであることに基づく、請求項3に記載の方法。
【請求項５】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、
前記クライアントデバイスによってレンダリングされた可聴ユーザインターフェース出力の前記レンダリングを停止することを含む、請求項2に記載の方法。
【請求項６】
前記ユーザの前記口の前記運動と時間的に対応するオーディオデータのボイスアクティビティ検出を実施するステップと、
前記ユーザの口運動に時間的に対応する前記オーディオデータの前記ボイスアクティビティ検出に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含み、
前記クライアントデバイスによってレンダリングされた前記可聴ユーザインターフェース出力の前記レンダリングを停止することは、ボイスアクティビティの前記出現を判断したことにさらに応答したものであり、前記ボイスアクティビティの前記出現が、前記ユーザの前記口運動に時間的に対応する前記オーディオデータについてであることに基づくものである、請求項5に記載の方法。
【請求項７】
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させることは、人間知覚可能合図をレンダリングすることを含み、
前記クライアントデバイスによるオーディオデータ処理を適応させることは、前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して実施され、
前記クライアントデバイスによる前記オーディオデータ処理を適応させることは、前記クライアントデバイスにおけるローカル自動スピーチ認識を開始すること、または前記クライアントデバイスの1つもしくは複数のマイクロフォンによりキャプチャされたオーディオデータの、前記自動化アシスタントに関連付けられたリモートサーバへの送信を開始することを含み、
前記ローカル自動スピーチ認識を開始すること、または前記リモートサーバへのオーディオデータの前記送信を開始することは、合図の前記レンダリングに続いて、前記ユーザの前記注視が、前記クライアントデバイスの前記1つまたは複数のカメラの方へ向けられ続けることを検出したことにさらに応答する、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記クライアントデバイスによるオーディオデータ処理を適応させることは、前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して実施される、請求項1に記載の方法。
【請求項９】
前記クライアントデバイスによる前記オーディオデータ処理を適応させることは、前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの、前記自動化アシスタントに関連付けられたリモートサーバへの送信を開始することを含む、請求項8に記載の方法。
【請求項１０】
前記ユーザの前記口の前記運動と時間的に対応する特定のオーディオデータのボイスアクティビティ分析を実施するステップであって、前記特定のオーディオデータは、前記オーディオデータに含まれるか、または前記オーディオデータに先行する、ステップと、
前記ユーザの口運動に時間的に対応する前記特定のオーディオデータの前記ボイスアクティビティ分析に基づいて、ボイスアクティビティの出現を判断するステップとをさらに含み、
オーディオデータの前記送信を開始することは、ボイスアクティビティの前記出現を判断したことにさらに応答し、前記ボイスアクティビティの前記出現が、前記ユーザの前記口運動に時間的に対応する前記オーディオデータについてであることに基づく、請求項9に記載の方法。
【請求項１１】
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、前記クライアントデバイスによる前記オーディオデータ処理を適応させることは、
前記画像フレームのうちの1つまたは複数に基づいて、前記クライアントデバイスに相対した前記ユーザの位置を判断することと、
前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際に前記ユーザの前記位置を使うこととを含む、請求項8に記載の方法。
【請求項１２】
前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際に前記ユーザの前記位置を使うことは、前記ユーザの口頭発声に対応する、前記オーディオデータの部分を分離する際に、前記位置を使うことを含む、請求項11に記載の方法。
【請求項１３】
前記クライアントデバイスの1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理の際に前記ユーザの前記位置を使うことは、前記オーディオデータからバックグラウンドノイズを削除する際に前記位置を使うことを含む、請求項11に記載の方法。
【請求項１４】
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の出現を監視するために、前記クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、前記ストリームの前記画像フレームを処理することは、
前記ユーザの前記注視の出現を監視するのに、第1のトレーニング済み機械学習モデルを使うことと、
前記ユーザの前記口の前記運動を監視するのに、第2のトレーニング済み機械学習モデルを使うこととを含む、請求項1から13のいずれか一項に記載の方法。
【請求項１５】
存在センサからの信号に基づいて、前記クライアントデバイスの環境に人間が存在することを検出するステップと、
前記環境に前記人間が存在することを検出したことに応答して、前記1つまたは複数のカメラに、画像フレームの前記ストリームを提供させるステップとをさらに含む、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
少なくとも1つの視覚構成要素と、
少なくとも1つのマイクロフォンと、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサと動作可能に結合されたメモリとを備えるクライアントデバイスであって、前記メモリは命令を記憶し、前記命令は、前記プロセッサのうちの1つまたは複数による前記命令の実行に応答して、前記プロセッサのうちの1つまたは複数に、
前記クライアントデバイスの前記視覚構成要素からの出力に基づく視覚データのストリームを受信する動作と、
前記クライアントデバイス上でローカルに記憶された少なくとも1つのトレーニング済み機械学習モデルを使って、
前記クライアントデバイスの前記視覚構成要素の方へ向けられたユーザの注視と、
前記ユーザの口の運動
の両方の出現を監視するために、前記ストリームの前記視覚データを処理する動作と、
前記監視に基づいて、
前記ユーザの前記注視と、
前記ユーザの前記口の前記運動
の両方の出現を検出する動作と、
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、
前記クライアントデバイスのユーザインターフェース出力のレンダリングを適応させる動作とを実施させる、クライアントデバイス。
【請求項１７】
少なくとも1つの視覚構成要素と、
1つまたは複数のマイクロフォンと、
前記視覚構成要素からの出力に基づく視覚データのストリームを受信する1つまたは複数のプロセッサとを備えるシステムであって、前記プロセッサのうちの1つまたは複数は、
少なくとも1つのトレーニング済み機械学習モデルを使って、
前記視覚構成要素の方へ向けられたユーザの注視と、
前記ユーザの口の運動
の両方の出現を監視するために、前記ストリームの前記視覚データを処理することと、
前記監視に基づいて、
前記ユーザの前記注視と、
前記ユーザの前記口の前記運動
の両方の出現を検出することと、
前記ユーザの前記注視と前記ユーザの前記口の前記運動の両方の前記出現を検出したことに応答して、
前記システムのユーザインターフェース出力のレンダリングを適応させることと、
前記1つまたは複数のマイクロフォンによりキャプチャされたオーディオデータの処理を適応させることの両方を実施することとを行うように構成される、システム。
【請求項１８】
命令を含むコンピュータプログラムであって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から15のいずれか一項に記載の方法を実践させる、コンピュータプログラム。
【請求項１９】
命令を含むコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項1から15のいずれか一項に記載の方法を実践させる、コンピュータ可読記憶媒体。
【請求項２０】
請求項1から15のいずれか一項に記載の方法を実践するための1つまたは複数のプロセッサを備えるシステム。
【国際調査報告】
2021521497.tif 000013
2021521497.tif 000014
2021521497.tif 000015