(57)【要約】  視覚センサーを備えたアシスタントデバイスにおいて誤検出を減らすための技術が、本明細書において説明される。様々な実装においては、初期画像フレームが、アシスタントデバイスの視覚センサーから取得され、視覚的なノイズを含む可能性が高いものとして初期画像フレームの特定の領域を分類するために分析されてもよい。それから、視覚センサーから取得された後続の画像フレームが、誤検出を減らすまたはなくす方法で、利用可能なユーザによって与えられた視覚的な手掛かりを検出するために分析されてもよい。一部の実装においては、後続の画像フレームの特定の領域に対して分析が実行されなくてもよい。追加的にまたは代替的に、一部の実装においては、特定の領域内で検出された第1の候補の視覚的な手掛かりが、1つまたは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けされてもよい。そして、自動化されたアシスタントが、検出された利用可能な視覚的な手掛かりに基づいて応答アクションを行ってもよい。
2021515350.tif 000002
【特許請求の範囲】
【請求項１】
1人または複数のユーザと自動化されたアシスタントとの間の非接触式のインタラクションを容易にする1つまたは複数のプロセッサによって実施される方法であって、
1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得するステップと、
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析するステップと、
前記1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得するステップと、
前記ユーザのうちの1人または複数によって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために前記1つまたは複数の後続の画像フレームを分析するステップであって、
前記1つもしくは複数の後続の画像フレームの前記特定の領域を分析することを控えること、または
前記1つもしくは複数の後続の画像フレームの前記特定の領域内で検出された第1の候補の視覚的な手掛かりを前記1つもしくは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含む、ステップと、
前記検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを前記自動化されたアシスタントに行わせるステップとを含む、方法。
【請求項２】
前記1つまたは複数の初期画像フレームを分析するステップが、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む請求項1に記載の方法。
【請求項３】
前記電子ディスプレイが、物体認識プロセスを使用して検出される請求項2に記載の方法。
【請求項４】
前記電子ディスプレイを検出することが、前記電子ディスプレイの表示周波数を検出することを含む請求項2または3に記載の方法。
【請求項５】
前記控えることまたは重み付けすることが、前記電子ディスプレイがグラフィックスを現在レンダリングしているかどうかの判定に基づいて条件付きで実行される請求項2から4のいずれか一項に記載の方法。
【請求項６】
前記1つまたは複数の初期画像フレームを分析するステップが、前記1つまたは複数の初期画像フレーム内でキャプチャされた写真フレームを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された写真フレームを含む請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記ユーザのうちの1人または複数からの発話と併せて前記1つまたは複数の検出された利用可能な視覚的な手掛かりに基づいて呼び出される請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記1つまたは複数の検出された利用可能な視覚的な手掛かりのみに基づいて呼び出される請求項1から6のいずれか一項に記載の方法。
【請求項９】
前記1つまたは複数の検出された利用可能な視覚的な手掛かりが、ユーザが基準点を見ること、ユーザが手のジェスチャを行うこと、ユーザが特定の表情をしていること、または前記1つもしくは複数の後続の画像フレーム内の前記ユーザの位置のうちの1つまたは複数を含む請求項1から8のいずれか一項に記載の方法。
【請求項１０】
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの前記特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析するステップが、
前記1つまたは複数の初期画像フレームの前記特定の領域を視覚的なノイズインジケータに関連付けることを含む請求項1から9のいずれか一項に記載の方法。
【請求項１１】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能なように結合されたメモリとを含み、前記メモリが、1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに以下の動作、すなわち、
1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得する動作、
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析する動作、
前記1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得する動作、
前記ユーザのうちの1人または複数によって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために前記1つまたは複数の後続の画像フレームを分析する動作であって、
前記1つもしくは複数の後続の画像フレームの前記特定の領域を分析することを控えること、または
前記1つもしくは複数の後続の画像フレームの前記特定の領域内で検出された第1の候補の視覚的な手掛かりを前記1つもしくは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含む、動作、および
前記検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを自動化されたアシスタントに行わせる動作を実行させる前記命令を記憶する、システム。
【請求項１２】
前記1つまたは複数の初期画像フレームを分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む請求項11に記載のシステム。
【請求項１３】
前記電子ディスプレイが、物体認識プロセスを使用して検出される請求項12に記載のシステム。
【請求項１４】
前記電子ディスプレイを検出することが、前記電子ディスプレイの表示周波数を検出することを含む請求項12または13に記載のシステム。
【請求項１５】
前記控えることまたは重み付けすることが、前記電子ディスプレイがグラフィックスを現在レンダリングしているかどうかの判定に基づいて条件付きで実行される請求項12から14のいずれか一項に記載のシステム。
【請求項１６】
前記1つまたは複数の初期画像フレームを分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた写真フレームを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された写真フレームを含む請求項11から15のいずれか一項に記載のシステム。
【請求項１７】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記ユーザのうちの1人または複数からの発話と併せて前記1つまたは複数の検出された利用可能な視覚的な手掛かりに基づいて呼び出される請求項11から16のいずれか一項に記載のシステム。
【請求項１８】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記1つまたは複数の検出された利用可能な視覚的な手掛かりのみに基づいて呼び出される請求項11から16のいずれか一項に記載のシステム。
【請求項１９】
前記1つまたは複数の検出された利用可能な視覚的な手掛かりが、ユーザが基準点を見ること、ユーザが手のジェスチャを行うこと、ユーザが特定の表情をしていること、または前記1つもしくは複数の後続の画像フレーム内の前記ユーザの位置のうちの1つまたは複数を含む請求項11から18のいずれか一項に記載のシステム。
【請求項２０】
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの前記特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析する動作が、
前記1つまたは複数の初期画像フレームの前記特定の領域を視覚的なノイズインジケータに関連付けることを含む請求項11から19のいずれか一項に記載のシステム。
【請求項２１】
1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに以下の動作、すなわち、
1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得する動作、
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析する動作、
前記1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得する動作、
前記ユーザのうちの1人または複数によって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために前記1つまたは複数の後続の画像フレームを分析する動作であって、
前記1つもしくは複数の後続の画像フレームの前記特定の領域を分析することを控えること、または
前記1つもしくは複数の後続の画像フレームの前記特定の領域内で検出された第1の候補の視覚的な手掛かりを前記1つもしくは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含む、動作、および
前記検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを自動化されたアシスタントに行わせる動作を実行させる前記命令を含む少なくとも1つの非一時的コンピュータ可読媒体。
【請求項２２】
前記1つまたは複数の初期画像フレームを分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む請求項21に記載の少なくとも1つの非一時的コンピュータ可読媒体。
【請求項２３】
1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに請求項1から10のいずれか一項に記載の方法を実行させる前記命令を含む少なくとも1つの非一時的コンピュータ可読媒体。
【請求項２４】
少なくとも1つのコンピューティング装置によって実行されるときに前記少なくとも1つのコンピューティング装置に請求項1から10のいずれか一項に記載の方法を実行させるコンピュータが実行可能な命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動化されたアシスタントのための視覚的な手掛かりの選択的検出に関する。
【背景技術】
【０００２】
人は、本明細書において「自動化されたアシスタント」(「チャットボット」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナルボイスアシスタント」、「会話エージェント」などとも呼ばれる)と呼ばれるインタラクティブなソフトウェアアプリケーションを用いて人とコンピュータとの対話に従事する可能性がある。たとえば、人(自動化されたアシスタントとインタラクションするときは「ユーザ」と呼ばれる可能性がある)は、テキストに変換され、それから処理される音声の発話を含む可能性がある自由形式の自然言語入力および/またはタイピングされた自由形式の自然言語入力を使用してコマンド、クエリ、および/または要求(本明細書においては集合的に「問い合わせ」と呼ばれる)を与える可能性がある。多くの場合、自動化されたアシスタントは、たとえば、予め定義された口頭の呼び出しフレーズを使用して最初に「呼び出され」なければならない。
【発明の概要】
【課題を解決するための手段】
【０００３】
自動化されたアシスタントがよりどこにでもあるようになるにつれて、コンピューティングデバイスは、自動化されたアシスタントとのインタラクションを容易にするように特に設計される--本明細書においては「アシスタントデバイス」と呼ばれる--可能性がある。アシスタントデバイスは、ユーザが自動化されたアシスタントとの非接触式のインタラクションに従事することを可能にする可能性がある。たとえば、アシスタントデバイスは、ユーザが入力として音声の発話を与えることを可能にするマイクロフォンを含む可能性がある。加えて、アシスタントデバイスは、存在、ジェスチャなどを検出することができるカメラ、パッシブ赤外線(「PIR」)センサーなどの視覚センサーを含む可能性がある。
【０００４】
視覚センサーを備えたアシスタントデバイス上で、自動化されたアシスタントは、ジェスチャなどのユーザによって与えられた1つもしくは複数の所定の視覚的な手掛かり(Visual Cue)のみによって、または音声の発話と組み合わされたそのような1つもしくは複数の所定の視覚的な手掛かりによって呼び出される可能性がある。たとえば、ユーザの凝視が特定の基準点に(たとえば、視覚センサーに真っ直ぐに)向けられていることのような比較的とらえにくい視覚的な手掛かりは、自動化されたアシスタントを呼び出すためにユーザからの音声の発話と組み合わされて使用される可能性がある。追加的にまたは代替的に、視覚センサーに向かって手を振ること、所定のジェスチャ(たとえば、ユーザの手で所定の形を作ること)などのよりとらえやすいジェスチャは、自動化されたアシスタントを呼び出すために単独で(または音声の発話と組み合わせて)使用される可能性がある。さらに、ユーザによって与えられた視覚的な手掛かりは、呼び出し後の様々な異なるアクションを行うために自動化されたアシスタントによって解釈される可能性がある。たとえば、ユーザの「親指を立てる」合図は、自動化されたアシスタントによって投げかけられた質問に対する肯定的な応答として解釈される可能性がある。
【０００５】
視覚センサーを備えたアシスタントデバイスの1つの課題は、誤検出である。たとえば、テレビ、写真、またはその他の(動画のもしくは静止画の)画像などの視覚的コンテンツのソースがアシスタントデバイスの視野内に見えていると仮定する。そのソースによって与えられた視覚的コンテンツが、自動化されたアシスタントを呼び出すためにおよび/または自動化されたアシスタントにアクションを実行させるために設計された視覚的な手掛かりと取り違えられる可能性がある。例として、視覚センサーを備えたアシスタントデバイス上でユーザと関わり合う自動化されたアシスタントが、「本当にこの注文をしてよろしいですか」のようなユーザからのはい/いいえの答えを求める質問を投げかけると仮定する。質問が投げかけられた直後、ただし、ユーザが答える機会を得る前に、アシスタントデバイスの視野内に見えているテレビで、テレビの登場人物がたまたま親指を立てるジェスチャをするとさらに仮定する。親指を立てるジェスチャが検出され、ユーザからの肯定的な応答と解釈されかねない。これは、ユーザが注文をすることを共有することについて気が変わっていた場合にユーザにとって特に問題となる可能性があり、下でさらに概説されるように、セキュリティ上のリスクをもたらす可能性がある。さらに、下でやはり説明されるように、アシスタントを実装するために使用されるコンピューティング装置および関連するサードパティサービスにおいて使用されるコンピューティング装置が、誤検出の後にそれらのコンピューティングリソースの望ましくない不必要な使用に見舞われる可能性がある。また、誤検出は、たとえば、システム内の望ましくない電力使用を引き起こす可能性がある。
【０００６】
視覚センサーを備えたアシスタントデバイスにおいて誤検出を減らすおよび/またはなくすための技術が、本明細書において説明される。一部の実装においては、アシスタントデバイスによってキャプチャされた画像フレームの領域が、視覚的なノイズを含む可能性が高いおよび/または視覚的な手掛かりを含む可能性が低いものとして分類される可能性がある。その後、ユーザによって与えられた視覚的な手掛かりを検出しようと試みるとき、アシスタントデバイスによってキャプチャされた後続の画像フレームを分析するとき、それらの同じ領域は、無視されるか、または少なくともその他の領域よりも低く重み付けされる可能性がある。これは、たとえば、テレビ、コンピュータスクリーン、静止画像などによって生み出される誤検出された視覚的な手掛かりを減らすまたはなくす可能性がある。
【０００７】
本明細書において「除外される領域の分類」と呼ばれるプロセスにおいて、画像フレームの領域(または言い換えると、視覚センサーの視野の領域)が、様々な技術を使用して様々な時間に視覚的なノイズを含む可能性が高いおよび/またはユーザによって与えられた視覚的な手掛かりを含む可能性が低いものとして分類される可能性がある。様々な実装において、除外される領域の分類は、アシスタントデバイスが最初に場所(たとえば、卓上もしくはカウンター上)に置かれるときに、アシスタントデバイスが動かされる度に、および/またはアシスタントデバイスの視覚センサーが調整される(たとえば、パンされる、チルトされる、ズームされる)場合に実行される可能性がある。追加的にまたは代替的に、一部の実装において、除外される領域の分類は、環境に対する変更(たとえば、テレビまたはコンピュータが位置を変えられること、取り去られることなど)を考慮に入れるために周期的に、たとえば、毎日、毎週など実行される可能性がある。一部の実装において、除外される領域の分類は、照明の変化(たとえば、昼対夜)、テレビまたはコンピュータがオフにされたという判定(その場合、テレビまたはコンピュータはもはや誤検出を引き越す可能性が高くない)、テレビまたはコンピュータ(特にラップトップもしくはタブレット)が動かされたという判定、時刻(たとえば、テレビは夜中またはユーザが仕事をしている間はオンになっている可能性があまり高くない可能性がある)などのその他の刺激に応じて実行される可能性がある。
【０００８】
様々な技術が、除外される領域の分類を実行するために使用される可能性がある。一部の実装においては、畳み込みニューラルネットワークなどの機械学習モデルが、テレビ、コンピュータスクリーン、映写スクリーン、静止画像(たとえば、壁に掛かった写真)、電子写真フレームなどの誤検出を生じる可能性が高い物体をアシスタントデバイスによってキャプチャされた画像フレーム内で特定するように訓練される可能性がある。そして、誤検出の潜在的なソースを包含する対象領域(「ROI: region of interest」)が、生成される可能性がある。これらのROIは、無視される可能性があり、またはこれらの領域内で検出された視覚的な手掛かりは、ユーザによって与えられた視覚的な手掛かりを検出するための後続の分析中に懐疑的に見られる可能性がある。
【０００９】
コンピュータ支援設計(「CAD」)モデルに依拠する手法、特徴に基づく方法(たとえば、曲面パッチ(surface patch)、直線エッジ(linear edge))、外観に基づく方法(たとえば、エッジマッチング、分割統治法(divide-and-conquer)、勾配マッチング(gradient matching)、ヒストグラムなど)、遺伝的アルゴリズムなどのその他の通常の物体認識技術も、使用される可能性がある。追加的にまたは代替的に、テレビまたはコンピュータスクリーンなどの物体に関して、これらの物体を認識するためにその他の技術が使用される可能性がある。一部の実装においては、テレビが、テレビの表示周波数に基づいて画像フレームのシーケンス内で特定される可能性がある。画像フレームのシーケンスが、典型的なテレビの周波数のレートの2倍でキャプチャされると仮定する。画像フレームのシーケンスの1つおきの画像フレームにおいて、新しい画像がテレビに現れる。これが、検出され、無視され得るおよび/またはより低く重み付けされ得るテレビのROIを決定するために使用される可能性がある。
【００１０】
テレビまたはコンピュータスクリーンなどの視覚的な手掛かりの検出を妨げる可能性がある物体は、いつもノイズを発生するとは限らない可能性がある。たとえば、テレビがオフのとき、テレビは、視覚的な手掛かりの検出を妨げる可能性があるグラフィックスをレンダリングし得ない。したがって、一部の実装においては、自動化されたアシスタント(またはそれに関連する別のプロセス)が、テレビがグラフィックスを現在レンダリングしている(したがって、誤検出された視覚的な手掛かりを生じるリスクをもたらす)かどうかを判定することができる可能性がある。たとえば、テレビがその表示周波数に基づいて検出される実装においては、そのような周波数の検出がないことが、テレビがグラフィックスを現在レンダリングしていないことを意味すると解釈される可能性がある。追加的にまたは代替的に、一部の実装において、テレビは、たとえば、テレビが視覚的な手掛かりを検出しようと試みているアシスタントデバイスを含むクライアントデバイスの同じ協調的な「エコシステム」の一部であることによって自動化されたアシスタントとネットワーク通信する「スマート」テレビである可能性がある。一部のそのような実装において、自動化されたアシスタントは、テレビの状態、たとえば、「オン」、「オフ」、「アクティブ」、「スリープ」、「スクリーンセーバー」などを判定することができる可能性があり、その判定に基づいてテレビのROIを含めるかまたは除外する可能性がある。
【００１１】
後続の画像フレームがアシスタントデバイスによってキャプチャされるとき、視覚的なノイズを含む可能性が高いおよび/またはユーザによって与えられた視覚的な手掛かりを含む可能性が低いものとして既に分類されたそれらの後続の画像フレームの領域(すなわち、2次元空間の部分)が、様々な方法で処理される可能性がある。一部の実装において、それらの分類された領域は、単純に無視される可能性がある(たとえば、それらの後続の画像フレームの分析が、それらの領域を分析することを控える可能性がある)。追加的にまたは代替的に、一部の実装において、それらの分類された領域内で検出された候補の視覚的な手掛かり(たとえば、手のジェスチャ、凝視など)は、たとえば、後続の画像フレーム内の他の場所で検出された候補の視覚的な手掛かりよりも低く重み付けされる可能性がある。
【００１２】
本明細書において説明される技術は、様々な技術的利点および恩恵を生み出す可能性がある。一例として、画像フレームの分類された領域を無視することは、たとえば、プロセッサを視覚的な手掛かりを含む可能性がより高い領域に焦点を合わせるために利用可能状態にしておくことによってコンピューティングリソースを節約する可能性がある。別の例として、誤検出は、コンピューティングリソースおよび/または電力を無駄にし、潜在的にユーザを混乱させるかまたはいら立たせさえする様々なアクションを行うように自動化されたアシスタントおよび/またはアシスタントデバイスをトリガする可能性がある。電力およびコンピューティングリソースのそのような浪費またはそうでなければ非効率的なもしくは不必要な使用は、アシスタントデバイス自体(たとえば、クライアントデバイス)においておよび/またはアシスタントデバイスが様々なアクションを実行するために通信する1つもしくは複数のネットワークサーバなどの遠隔のコンピューティング装置において発生する可能性がある。さらに、遠隔のコンピューティング装置との不必要な通信は、通信ネットワークに対する望ましくない負荷を引き起こす。本明細書において説明される技術は、検出される視覚的な手掛かりの誤検出の数を減らす。また、本明細書において説明される技術は、セキュリティの観点からの利点をもたらす。たとえば、悪意のあるユーザが、自動化されたアシスタントおよび/またはアシスタントデバイスによる望ましくない応答アクション(たとえば、カメラをオンにすること、ドアを解錠することなど)をトリガする可能性がある視覚的な手掛かりをレンダリングするためにテレビまたはコンピュータスクリーンを遠隔で乗っ取る可能性がある。テレビ/コンピュータスクリーンを含む画像フレームの領域を無視する(または少なくとも低く重み付けする)ことによって、そのようなセキュリティ侵害が、阻止される可能性がある。
【００１３】
一部の実装においては、1人または複数のユーザと自動化されたアシスタントとの間の非接触式のインタラクションを容易にする1つまたは複数のプロセッサによって実行される方法が、提供される。方法は、1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得するステップと、視覚的なノイズを含む可能性が高いものとして1つまたは複数の初期画像フレームの特定の領域を分類するために1つまたは複数の初期画像フレームを分析するステップとを含む。方法は、1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得するステップと、ユーザのうちの1人または複数によって与えられた1つまたは複数の利用可能な(actionable)視覚的な手掛かりを検出するために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つまたは複数の初期画像フレームの特定の領域を視覚的なノイズインジケータに関連付けることを含む。
【００２１】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、上述の方法のいずれかの実行を引き起こすように構成される。一部の実装は、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得るコンピュータ命令を記憶する1つまたは複数の非一時的コンピュータ可読ストレージ媒体も含む。
【００２２】
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【００２３】
【図１】本明細書において開示される実装が実装される可能性がある例示的な環境のブロック図である。
【図２】様々な実装による本開示の様々な態様を明示する例示的なプロセスフローを示す図である。
【図３】アシスタントデバイスの視覚センサーの視野が含む可能性があるものの例を示す図である。
【図４】様々な実装による、視覚的なノイズを含む可能性が高いおよび/または視覚的な手掛かりを含む可能性が低いものとして分類された対象領域を有する図3の画像フレームの例を示す図である。
【図５】本明細書において開示される実装による例示的な方法を示す流れ図である。
【図６】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００２４】
ここで図1に目を向けると、本明細書において開示される技術が実装される可能性がある例示的な環境が示される。例示的な環境は、1つまたは複数のクライアントコンピューティングデバイス106を含む。各クライアントデバイス106は、自動化されたアシスタントクライアント108のそれぞれのインスタンスを実行する可能性がある。自然言語理解モジュール135などの1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素119は、114に全体的に示される1つまたは複数のローカルエリアおよび/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス106に通信可能なように結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)に実装される可能性がある。
【００２５】
様々な実装において、自動化されたアシスタントクライアント108のインスタンスは、1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素119とのインタラクションを通して、ユーザの観点から見てユーザが、それにより人とコンピュータとの対話に従事する可能性がある自動化されたアシスタント120の論理的なインスタンスであるように見えるものを形成する可能性がある。そのような自動化されたアシスタント120の1つのインスタンスが、図1において破線の中に示される。したがって、クライアントデバイス106上で実行される自動化されたアシスタントクライアント108と関わり合う各ユーザは、実際には、自動化されたアシスタント120のそのユーザ独自の論理的なインスタンスと関わり合う可能性があることを理解されたい。簡潔で単純にするために、特定のユーザに「サービスを提供する」ものとして本明細書において使用される用語「自動化されたアシスタント」は、ユーザによって運用されるクライアントデバイス106上で実行される自動化されたアシスタントのクライアント108と(複数の自動化されたアシスタントクライアント108の間で共有される可能性がある)1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素119との組合せを指す。一部の実装において、自動化されたアシスタント120は、ユーザが自動化されたアシスタント120のその特定のインスタンスによって実際に「サービスを提供される」かどうかに関係なく任意のユーザからの要求に応答する可能性があることも理解されたい。
【００２６】
1つまたは複数のクライアントデバイス106は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの乗り物のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、(場合によっては視覚センサーを含んでもよい)スタンドアロンのインタラクティブスピーカ、スマートテレビ(もしくは自動化されたアシスタントの能力を有するネットワークに接続されたドングルを備える普通のテレビ)などのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含む可能性がある。追加的なおよび/または代替的なクライアントコンピューティングデバイスが、提供される可能性がある。上述のように、一部のクライアントデバイス106は、主としてユーザと自動化されたアシスタント120(たとえば、スタンドアロンのインタラクティブスピーカ)との間の対話を容易にするように設計されるアシスタントデバイスの形態をとってもよい。
【００２７】
本開示の目的のために、クライアントデバイス106は、1つまたは複数の視野を有する1つまたは複数の視覚センサー107を備えていてもよい。視覚センサー107は、デジタルカメラ、パッシブ赤外線(「PIR」)センサー、立体カメラ、RGBdカメラなどの様々な形態をとる可能性がある。1つまたは複数の視覚センサー107は、クライアントデバイス106が配置される環境の画像フレーム(静止画像または動画)をキャプチャするためにたとえば画像キャプチャモジュール111によって使用されてもよい。そして、これらの画像フレームは、画像フレームに含まれるユーザによって与えられた視覚的な手掛かり(Visual Cue)を検出するためにたとえば視覚的手掛かりモジュール112によって分析されてもよい。これらの視覚的な手掛かりは、手のジェスチャ、特定の基準点に向けられた凝視、表情、ユーザによる予め定義された動作などを含んでもよいがこれらに限定されない。これらの検出された視覚的な手掛かりは、様々な目的のために使用される可能性があり、下でさらに検討される。
【００２８】
本明細書においてより詳細に説明されるように、自動化されたアシスタント120は、1つまたは複数のクライアントデバイス106のユーザインターフェースの入力および出力デバイスを介した1人または複数のユーザとの人とコンピュータとの対話セッションに従事する。一部の実装において、自動化されたアシスタント120は、クライアントデバイス106のうちの1つの1つまたは複数のユーザインターフェースの入力デバイスを介してユーザによって与えられたユーザインターフェース入力に応答してユーザとの人とコンピュータとの対話セッションに従事する可能性がある。それらの実装の一部において、ユーザインターフェースの入力は、自動化されたアシスタント120に明示的に向けられる。たとえば、ユーザは、自動化されたアシスタント120にアクティブなリスニングを開始させる「OK, Assistant」または「Hey, Assistant」などの所定の呼び出しフレーズを言う可能性がある。追加的にまたは代替的に、一部の実装において、自動化されたアシスタント120は、1つもしくは複数の検出された視覚的な手掛かりのみに基づいて、または発話された呼び出しフレーズと組み合わされたそのような1つもしくは複数の検出された視覚的な手掛かりに基づいて呼び出されてもよい。
【００２９】
一部の実装において、自動化されたアシスタント120は、ユーザインターフェース入力が自動化されたアシスタント120に明示的に向けられないときでさえもそのユーザインターフェース入力に応答して人とコンピュータとの対話セッションに従事する可能性がある。たとえば、自動化されたアシスタント120は、ユーザインターフェース入力の内容を調べ、ユーザインターフェース入力の中に特定の用語が存在することに応じておよび/またはその他の手掛かりに基づいて対話セッションに従事する可能性がある。多くの実装において、自動化されたアシスタント120は、音声認識を利用してユーザからの発話をテキストに変換し、たとえば、検索結果を提供することによって、全般的な情報を提供することによって、および/または1つもしくは複数の応答する行為を行うこと(たとえば、メディアを再生すること、ゲームを起動すること、食べ物を注文することなど)によってテキストに相応に応答する可能性がある。一部の実装において、自動化されたアシスタント120は、追加的にまたは代替的に、発話をテキストに変換することなく発話に応答し得る。たとえば、自動化されたアシスタント120は、音声入力を埋め込み、(音声入力内に存在する1つのエンティティ(entity)/複数のエンティティを示す)エンティティ表現、および/またはその他の「非テキスト」表現に変換し、そのような非テキスト表現によって働き得る。したがって、音声入力から変換されたテキストに基づいて動作するものとして本明細書において説明される実装は、追加的におよび/または代替的に、直接的に音声入力によっておよび/または音声入力のその他の非テキスト表現によって動作する可能性がある。
【００３０】
クライアントコンピューティングデバイス106およびクラウドに基づく自動化されたアシスタント構成要素119を動作させるコンピューティングデバイスの各々は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にするためのその他の構成要素とを含む可能性がある。クライアントコンピューティングデバイス106によっておよび/または自動化されたアシスタント120によって実行される動作は、複数のコンピュータシステムに分散される可能性がある。自動化されたアシスタント120は、たとえば、ネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装される可能性がある。
【００３１】
上述のように、様々な実装において、クライアントコンピューティングデバイス106は、自動化されたアシスタントクライアント108を動作させる可能性がある。様々な実装において、自動化されたアシスタントクライアント108は、音声キャプチャモジュール110、上述の画像キャプチャモジュール111、視覚的手掛かりモジュール112、および/または呼び出しモジュール113を含んでもよい。その他の実装において、音声キャプチャモジュール110、画像キャプチャモジュール111、視覚的手掛かりモジュール112、および/または呼び出しモジュール113の1つまたは複数の態様は、自動化されたアシスタントクライアント108とは別に、たとえば、1つまたは複数のクラウドに基づく自動化されたアシスタント構成要素119によって実装されてもよい。
【００３２】
様々な実装において、ハードウェアとソフトウェアとの任意の組合せを使用して実装される可能性がある音声キャプチャモジュール110は、ユーザの発話のオーディオ録音をキャプチャするためのマイクロフォン109またはその他の圧力センサーなどのハードウェアとインターフェースをとってもよい。様々な種類の処理が、下で説明されるように、様々な目的でオーディオ録音に対して実行される可能性がある。様々な実装において、ハードウェアまたはソフトウェアの任意の組合せを使用して実装される可能性がある画像キャプチャモジュール111は、視覚センサー107の視野に対応する1つまたは複数の画像フレーム(たとえば、デジタル写真)をキャプチャするためにカメラ107とインターフェースをとるように構成されてもよい。
【００３３】
様々な実装において、ハードウェアまたはソフトウェアの任意の組合せを使用して実装される可能性がある視覚的手掛かりモジュール112は、1つもしくは複数の画像フレーム内でおよび/または1つもしくは複数の画像フレームにまたがってキャプチャされた1つまたは複数の視覚的な手掛かりを検出するために画像キャプチャモジュール111によって提供された1つまたは複数の画像フレームを分析するように構成されてもよい。視覚的手掛かりモジュール112は、視覚的な手掛かりを検出するために様々な技術を使用してもよい。たとえば、図1において、視覚的手掛かりモジュール112は、(クライアントデバイス106と一体である、および/またはクライアントデバイス106の遠隔に、たとえば、クラウドにホストされる可能性がある)視覚的手掛かりモデルデータベース114と通信可能なように結合される。視覚的手掛かりモデルデータベース114は、たとえば、画像フレーム内の検出されたユーザによって与えられた視覚的な手掛かりを示す出力を生成するように訓練される1つまたは複数の人工知能(または機械学習)モデルを含んでもよい。
【００３４】
1つの非限定的な例として、畳み込みニューラルネットワークなどのニューラルネットワークが、1つもしくは複数の画像フレーム--または画像フレームから抽出された特徴ベクトル--が入力としてニューラルネットワーク全体に適用される可能性があるように訓練され(データベース114に記憶され)てもよい。様々な実装において、畳み込みニューラルネットワークは、複数の検出された視覚的な手掛かりと、それぞれの視覚的な手掛かりが検出された関連する確率とを示す出力を生成してもよい。一部のそのような実装において、出力は、視覚的な手掛かりが検出された画像フレーム内の位置をさらに示してもよいが、これは必須ではない。そのような畳み込みニューラルネットワークは、画像フレームのシーケンス内に/画像フレームのシーケンスにまたがって含まれることが知られているジェスチャによってラベル付けされた画像フレームのシーケンス(またはそれらから生成された特徴ベクトル)などの様々な形態の訓練例を使用して訓練されてもよい。訓練例がネットワーク全体に適用されるとき、生成された出力と訓練例に関連するラベルとの間の違いが、たとえば、損失関数を最小化するために使用される可能性がある。そして、畳み込みニューラルネットワークの様々な重みが、たとえば、勾配降下および/または逆伝播などの標準的な技術を使用して調整される可能性がある。
【００３５】
様々な実装において、視覚的手掛かりモジュール112は、誤検出された視覚的な手掛かりを減らすおよび/またはなくすために本開示の選択された態様を実行するように構成されてもよい。たとえば、視覚的手掛かりモジュール112は、誤検出された視覚的な手掛かりの検出を引き起こす可能性がある視覚的なノイズのソースである可能性が高いものとして視覚センサー107の視野内の1つまたは複数の領域を分類するために視覚センサー107によってキャプチャされた1つまたは複数の画像フレームを視覚的手掛かりモジュール112が分析する「除外される領域の分類」として既に説明されたことに従事してもよい。これらの領域は、テレビ画面、コンピュータモニタ、写真(たとえば、LCD/LED写真フレーム内のデジタル写真および/または紙に印刷されたスチール写真)などを有する領域を含んでもよい。視覚的手掛かりモジュール112は、潜在的なノイズの領域を検出するために様々な異なる技術を使用してもよい。
【００３６】
たとえば、一部の実装において、視覚的手掛かりモジュール112は、テレビおよびコンピュータモニタなどの潜在的にノイズを生じる物体を認識するために様々な物体認識技術を使用してもよい(テレビ、コンピュータモニタ、スマートフォンの画面、タブレットの画面、スマートウォッチの画面、またはデジタル画像および/もしくは動画をレンダリングするその他の同様のディスプレイは、集合的に「電子ディスプレイ」と呼ばれる可能性がある)。これらの物体が検出されると、これらの物体は、それらの検出された物体を含み、したがって、誤検出された視覚的な手掛かりの検出を引き起こす可能性がある視覚的なノイズのソースである可能性が高い対象領域を分類するためにたとえば視覚的手掛かりモジュール112によって使用されてもよい。
【００３７】
コンピュータ支援設計(「CAD」)モデルに依拠する手法、(たとえば、訓練された畳み込みニューラルネットワークを使用する)機械学習技術、特徴に基づく方法(たとえば、曲面パッチ、直線エッジ)、外観に基づく方法(たとえば、エッジマッチング、分割統治法、勾配マッチング、ヒストグラムなど)、遺伝的アルゴリズムなどの様々な物体認識技術が、視覚的手掛かりモジュール112によって使用されてもよい。追加的にまたは代替的に、テレビまたはコンピュータスクリーンなどの物体に関して、これらの物体を認識するためにその他の技術が使用される可能性がある。一部の実装においては、テレビが、テレビの表示周波数に基づいて画像フレームのシーケンス内で特定される可能性がある。画像フレームのシーケンスが、テレビの周波数のレートの2倍でキャプチャされると仮定する。画像フレームのシーケンスの1つおきの画像フレームにおいて、新しい画像がテレビに現れる。これが検出され、テレビのROIを決定するために使用されてもよい。
【００３８】
後続の画像フレームがクライアントデバイス106の視覚センサー107によってキャプチャされるとき、視覚的なノイズのソースである可能性が高いものとして既に分類されたそれらの後続の画像フレームの領域は、様々な方法で処理される可能性がある。一部の実装において、それらの領域は、単純に無視されてもよい(たとえば、それらの後続の画像フレームの分析が、それらの領域を分析することを控えてもよい)。追加的にまたは代替的に、一部の実装において、それらの分類された領域内で検出された候補の視覚的な手掛かり(たとえば、手のジェスチャ、凝視など)は、たとえば、後続の画像フレーム内の他の場所で検出された候補の視覚的な手掛かりよりも低く重み付けされてもよい。
【００３９】
音声キャプチャモジュール110は、上述のように、たとえば、マイクロフォン109によってユーザの話しをキャプチャするように構成されてもよい。追加的にまたは代替的に、一部の実装において、音声キャプチャモジュール110は、たとえば、スピーチトゥテキスト(「STT」)処理技術を使用してそのキャプチャされたオーディオをテキストおよび/またはその他の表現もしくは埋め込みに変換するようにさらに構成される可能性がある。追加的にまたは代替的に、一部の実装において、音声キャプチャモジュール110は、たとえば、1つまたは複数の音声合成器を使用してテキストをコンピュータによって合成された話しに変換するように構成される可能性がある。しかし、クライアントデバイス106が計算リソース(たとえば、プロセッササイクル、メモリ、バッテリなど)の点で比較的制約される可能性があるので、クライアントデバイス106のローカルにある音声キャプチャモジュール110は、有限の数の異なる口語フレーズ--特に自動化されたアシスタント120を呼び出すフレーズ--をテキストに(またはより低い次元の埋め込みなどのその他の形態に)変換するように構成される可能性がある。その他の音声入力が、クラウドに基づく自動化されたアシスタントの構成要素119に送信される可能性があり、クラウドに基づく自動化されたアシスタントの構成要素119は、クラウドに基づくTTSモジュール116および/またはクラウドに基づくSTTモジュール117を含む可能性がある。
【００４０】
様々な実装において、呼び出しモジュール113は、たとえば、音声キャプチャモジュール110および/または(一部の実装においては単一のモジュール内で画像キャプチャモジュール111と組み合わされる可能性がある)視覚的手掛かりモジュール112によって提供された出力に基づいて自動化されたアシスタント120を呼び出すべきかどうかを判定するように構成されてもよい。たとえば、呼び出しモジュール113は、ユーザの発話が自動化されたアシスタント120との人とコンピュータとの対話セッションを開始すべき呼び出しフレーズとして適するかどうかを判定してもよい。一部の実装において、呼び出しモジュール113は、オーディオ録音またはオーディオ録音から抽出された特徴のベクトル(たとえば、埋め込み)などのユーザの発話を示すデータを視覚的手掛かりモジュール112によって検出された1つまたは複数の視覚的な手掛かりと併せて分析してもよい。一部の実装においては、音声の発話に応じて自動化されたアシスタント120を呼び出すべきかどうかを判定するために呼び出しモジュール113によって使用される閾値が、特定の視覚的な手掛かりも検出されるときに引き下げられてもよい。結果として、たとえユーザが「オーケー、アシスタント」などの適切な呼び出しフレーズと異なるが音声学的に幾分似ている音声の発話を与えるとしても、その発話は、それにもかかわらず、視覚的な手掛かり(たとえば、話者が手を振っていること、話者が視覚センサー107を真っ直ぐに凝視することなど)と併せて検出されるときには呼び出しとして受け付けられてもよい。
【００４１】
一部の実装においては、デバイスに搭載された呼び出しモデルが、発話および/または視覚的な手掛かりが呼び出しとして適するかどうかを判定するために呼び出しモジュール113によって使用されてもよい。そのようなデバイスに搭載された呼び出しモデルは、呼び出しフレーズ/ジェスチャの変化形を検出するように訓練されてもよい。たとえば、一部の実装において、デバイスに搭載された呼び出しモデル(たとえば、1つまたは複数のニューラルネットワーク)は、ユーザからの発話のオーディオ録音(または抽出された特徴ベクトル)と、発話と同時にキャプチャされた1つまたは複数の画像フレームおよび/または検出された視覚的な手掛かりを示すデータとをそれぞれが含む訓練例を使用して訓練されてもよい。
【００４２】
クラウドに基づくTTSモジュール116は、テキストデータ(たとえば、自動化されたアシスタント120によって作られた自然言語応答)をコンピュータによって生成される音声出力に変換するためにクラウドの実質的に制限のないリソースを利用するように構成されてもよい。一部の実装において、TTSモジュール116は、コンピュータによって生成される音声出力を、たとえば、1つまたは複数のスピーカを使用して直接出力されるようにクライアントデバイス106に提供する可能性がある。その他の実装において、自動化されたアシスタント120によって生成されたテキストデータ(たとえば、自然言語応答)は、音声キャプチャモジュール110に提供される可能性があり、それから、音声キャプチャモジュール110が、テキストデータを、ローカルで出力されるコンピュータによって生成される音声に変換する可能性がある。
【００４３】
クラウドに基づくSTTモジュール117は、音声キャプチャモジュール110によってキャプチャされたオーディオデータをテキストに変換するためにクラウドの実質的に制限のないリソースを利用するように構成されてもよく、それから、テキストは、自然言語理解モジュール135に提供されてもよい。一部の実装において、クラウドに基づくSTTモジュール117は、話しのオーディオ録音を1つまたは複数の音素に変換し、それから、1つまたは複数の音素をテキストに変換する可能性がある。追加的にまたは代替的に、一部の実装において、STTモジュール117は、状態復号グラフ(state decoding graph)を使用する可能性がある。一部の実装において、STTモジュール117は、ユーザの発話の複数の候補テキスト解釈を生成する可能性がある。一部の実装において、STTモジュール117は、同時に検出された視覚的な手掛かりが存在するかどうかに応じて特定の候補テキスト解釈をその他の候補テキスト解釈よりも高く重み付けしまたはバイアスをかけてもよい。たとえば、2つの候補テキスト解釈が、同様の信頼スコアを有すると仮定する。通常の自動化されたアシスタント120によれば、ユーザは、これらの候補テキスト記述の間の曖昧さを解消するように求められる可能性がある。しかし、本開示の選択された態様を用いて構成された自動化されたアシスタント120によれば、1つまたは複数の検出された視覚的な手掛かりが、「均衡を破る」ために使用される可能性がある。
【００４４】
自動化されたアシスタント120(および特にクラウドに基づく自動化されたアシスタント構成要素119)は、自然言語理解モジュール135、上述のTTSモジュール116、上述のSTTモジュール117、および下でより詳細に説明されるその他の構成要素を含む可能性がある。一部の実装において、自動化されたアシスタント120のモジュールおよび/またはモジュールのうちの1つまたは複数は、省略される、組み合わされる、および/または自動化されたアシスタント120とは別である構成要素に実装される可能性がある。一部の実装においては、プライバシーを保護するために、自然言語プロセッサ122、TTSモジュール116、STTモジュール117などの自動化されたアシスタント120の構成要素のうちの1つまたは複数が、(たとえば、クラウドを除いて)少なくとも部分的にクライアントデバイス106に実装される可能性がある。
【００４５】
一部の実装において、自動化されたアシスタント120は、自動化されたアシスタント120との人とコンピュータとの対話セッション中にクライアントデバイス106のうちの1つのユーザによって生成された様々な入力に応答して応答内容を生成する。自動化されたアシスタント120は、対話セッションの一部としてユーザに提示するための応答内容を(たとえば、ユーザのクライアントデバイスと別であるときは1つまたは複数のネットワークを介して)提供する可能性がある。たとえば、自動化されたアシスタント120は、クライアントデバイス106を介して与えられた自由形式の自然言語入力に応答して応答内容を生成する可能性がある。本明細書において使用されるとき、自由形式の入力は、ユーザによって作られ、ユーザによる選択のために提示される一群の選択肢に制約されない入力である。
【００４６】
本明細書において使用されるとき、「対話セッション」は、ユーザと自動化されたアシスタント120(および場合によってはその他の人間の参加者)との間の1つまたは複数のメッセージの論理的に自己充足的な交換を含む可能性がある。自動化されたアシスタント120は、セッション間の時間の経過、セッション間のユーザコンテキスト(たとえば、場所、スケジューリングされた会議の前/間/後など)、ユーザと自動化されたアシスタントとの間の対話以外のユーザとクライアントデバイスとの間の1つまたは複数の仲介インタラクションの検出(たとえば、ユーザはしばらくの間アプリケーションを切り替え、ユーザはスタンドアロンの音声作動式の製品から遠ざかり、そして後でその音声作動式の製品に戻る)、セッション間のクライアントデバイスのロック/スリープ、自動化されたアシスタント120の1つまたは複数のインスタンスとインターフェースを取るために使用されるクライアントデバイスの変更などの様々な合図に基づいてユーザとの複数の対話セッションを区別する可能性がある。
【００４７】
自然言語理解モジュール135の自然言語プロセッサ122は、クライアントデバイス106を介してユーザによって生成された自然言語入力を処理し、自動化されたアシスタント120の1つまたは複数のその他の構成要素による使用のために(たとえば、テキスト形式の)注釈付きの出力を生成する可能性がある。たとえば、自然言語プロセッサ122は、クライアントデバイス106の1つまたは複数のユーザインターフェースの入力デバイスを介してユーザによって生成される自然言語の自由形式の入力を処理する可能性がある。生成される注釈付きの出力は、自然言語入力の1つまたは複数の注釈および自然言語入力の語のうちの1つまたは複数(たとえば、すべて)を含む。
【００４８】
一部の実装において、自然言語プロセッサ122は、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、個々の単語を形態素に分割するおよび/または形態素にたとえばそれらの形態素のクラスによって注釈を付ける可能性がある形態モジュールを含む可能性がある。自然言語プロセッサ122は、語にそれらの語の文法的役割によって注釈を付けるように構成された品詞タガーも含む可能性がある。たとえば、品詞タガーは、各語を「名詞」、「動詞」、「形容詞」、「代名詞」などのその語の品詞によってタグ付けする可能性がある。また、たとえば、一部の実装において、自然言語プロセッサ122は、追加的におよび/また代替的に、自然言語入力内の語の間の統語的関係を決定するように構成された依存関係パーサ(図示せず)を含む可能性がある。たとえば、依存関係パーサは、どの語がその他の語を修飾するか、文の主語および動詞など(たとえば、解析木)を決定する可能性があり--そのような依存関係の注釈を付ける可能性がある。
【００４９】
一部の実装において、自然言語プロセッサ122は、追加的におよび/また代替的に、(たとえば、文学のキャラクタ、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のセグメント内のエンティティの言及に注釈を付けるように構成されたエンティティタガー(図示せず)を含む可能性がある。一部の実装においては、エンティティについてのデータが、ナレッジグラフ(knowledge graph)(図示せず)などの1つまたは複数のデータベースに記憶される可能性がある。一部の実装において、ナレッジグラフは、知られているエンティティ(および場合によってはエンティティの属性)を表すノードと、ノードを接続し、エンティティの間の関係を表すエッジとを含む可能性がある。たとえば、「banana」ノードが、「fruit」ノードに(たとえば、子として)接続される可能性があり、そして今度は、「fruit」ノードが、「produce」および/または「food」ノードに(たとえば、子として)接続される可能性がある。別の例として、「Hypothetical Cafe」と呼ばれるレストランが、そのレストランの住所、提供される食事の種類、営業時間、連絡先情報などの属性も含むノードによって表される可能性がある。「Hypothetical Cafe」ノードは、一部の実装において、「restaurant」ノード、「business」ノード、レストランのある都市および/または州を表すノードなどの1つまたは複数のその他のノードに(たとえば、子-親関係を表す)エッジによって接続される可能性がある。
【００５０】
自然言語プロセッサ122のエンティティタガーは、(たとえば、人などのエンティティのクラスへのすべての言及の特定を可能にするための)高レベルの粒度(granularity)および/または(たとえば、特定の人物などの特定のエンティティへのすべての言及の特定を可能にするための)より低いレベルの粒度でエンティティへの言及に注釈を付ける可能性がある。エンティティタガーは、特定のエンティティを解決するために自然言語入力の内容に依拠する可能性があり、および/または特定のエンティティを解決するためにナレッジグラフもしくはその他のエンティティデータベースと任意で通信する可能性がある。
【００５１】
一部の実装において、自然言語プロセッサ122は、追加的におよび/また代替的に、1つまたは複数の状況から得られる手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一指示(coreference)リゾルバ(図示せず)を含む可能性がある。たとえば、同一指示リゾルバは、自然言語入力「I liked Hypothetical Cafe last time we ate there.」内の語「there」を「Hypothetical Cafe」に解決するために利用される可能性がある。
【００５２】
一部の実装において、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数のその他の構成要素からの注釈に依拠する可能性がある。たとえば、一部の実装において、指定されたエンティティタガーは、特定のエンティティへのすべての言及に注釈を付ける際に同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠する可能性がある。また、たとえば、一部の実装において、同一指示リゾルバは、同じエンティティへの言及をクラスタリングする際に依存関係パーサからの注釈に依拠する可能性がある。一部の実装においては、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素が、1つまたは複数の注釈を決定するために関連する以前の入力および/または特定の自然言語入力の外のその他の関連するデータを使用する可能性がある。
【００５３】
自然言語理解モジュール135は、自動化されたアシスタント120との人とコンピュータとの対話セッションに従事させられるユーザの意図を判定するように構成される意図マッチャ(Intent Matcher)136も含む可能性がある。図1においては自然言語プロセッサ122とは別に示されているが、その他の実装において、意図マッチャ136は、自然言語プロセッサ122の(またはより広く自然言語プロセッサ122を含むパイプラインの)一体的な部分である可能性がある。一部の実装において、自然言語プロセッサ122および意図マッチャ136は、集合的に、上述の「自然言語理解」モジュール135を形成する可能性がある。
【００５４】
意図マッチャ136は、たとえば、(自然言語入力の注釈および語を含む可能性がある)自然言語プロセッサ122からの出力に基づいてならびに/または視覚的手掛かりモジュール113からの出力に基づいてユーザの意図を決定するための様々な技術を使用してもよい。一部の実装において、意図マッチャ136は、たとえば文法と、視覚的な手掛かりと、応答アクション(またはより広く意図)との間の複数のマッピングを含む1つまたは複数のデータベース(図示せず)にアクセスすることができる可能性がある。多くの場合、これらの文法は、選択されおよび/または時間とともに学習される可能性があり、ユーザの最も普通の意図を表す可能性がある。たとえば、1つの文法「play <artist>」は、<artist>による音楽をユーザによって運用されるクライアントデバイス106上で再生させる応答する行為を呼び出す意図にマッピングされる可能性がある。別の文法「[weather|forecast] today」は、「what's the weather today」および「what's the forecast for today?」などのユーザの問い合わせにマッチングされ得る可能性がある。
【００５５】
文法に加えてまたは文法の代わりに、一部の実装において、意図マッチャ136は、1つまたは複数の訓練された機械学習モデルを単独でまたは1つもしくは複数の文法および/もしくは視覚的な手掛かりと組み合わせて使用してもよい。これらの訓練された機械学習モデルも、1つまたは複数のデータベースに記憶されてもよく、たとえば、ユーザの発話および/または任意の検出されたユーザによって与えられた視覚的な手掛かりを示すデータを削減された次元の空間に埋め込むことによって意図を特定し、それから、たとえば、ユークリッド距離、コサイン類似度などの技術を使用してどのその他の埋め込み(およびしたがって意図)が最も近いかを判定するように訓練されてもよい。
【００５６】
「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?」)。一部の実装において、スロットは、視覚的手掛かりモジュール112によって検出された視覚的な手掛かりに基づくスロット値によって埋められてもよい。たとえば、ユーザは、クライアントデバイス106の視覚的センサー107に向かって3本の指を立てながら「Order me this many cat bowls」のようなことを発話する可能性がある。または、ユーザは、特定の映画のDVDのケースを持ちながら「Find me more movies like this」のようなことを発話する可能性がある。
【００５７】
一部の実装において、自動化されたアシスタント120は、ユーザと、入力を受け取り、応答出力を提供する独立したソフトウェアプロセスである可能性があるエージェントとの間のトランザクションを容易にする(たとえば、「仲介する」)可能性がある。一部のエージェントは、たとえば、クラウドに基づく自動化されたアシスタント構成要素119を動作させるコンピューティングシステムとは別であるコンピューティングシステム上で動作する可能性がありまたは動作しない可能性があるサードパーティアプリケーションの形態をとる可能性がある。意図マッチャ136によって特定される可能性があるユーザの意図の1つの種類は、サードパーティアプリケーションを関与させることになる。たとえば、自動化されたアシスタント120は、アプリケーションプログラミングインターフェース(「API」)へのアクセスをピザ宅配サービスに提供する可能性がある。ユーザは、自動化されたアシスタント120を呼び出し、「I'd like to order a pizza.」などのコマンドを与える可能性がある。意図マッチャ136は、このコマンドを、サードパーティピザ宅配サービスと関わり合うように自動化されたアシスタント120をトリガする(場合によってはサードパーティによってデータベース137に追加される可能性がある)文法にマッピングする可能性がある。サードパーティピザ宅配サービスは、自動化されたアシスタント120に、ピザ宅配の注文を遂行するために埋められる必要があるスロットの最小限のリストを与える可能性がある。自動化されたアシスタント120は、スロットのためのパラメータを求める自然言語出力を生成し、(クライアントデバイス106を介して)ユーザに与える可能性がある。
【００５８】
遂行モジュール124は、意図マッチャ136によって出力される予測された/推定された意図と、(ユーザによって先回りして与えられるかまたはユーザに求められるかに関わらず)関連するスロット値とを受け取り、意図を遂行する(または「解決する」)ように構成される可能性がある。様々な実装において、ユーザの意図の遂行(または「解決」)は、様々な遂行情報(「応答」情報またはデータとも呼ばれる)を、たとえば、遂行モジュール124によって生成させる/取得させる可能性がある。以下で説明されるように、遂行情報は、一部の実装においては、自然言語ジェネレータ(一部の図においては「NLG」)126に提供される可能性があり、自然言語ジェネレータ126は、遂行情報に基づいて自然言語出力を生成する可能性がある。
【００５９】
遂行情報は、意図が様々な方法で遂行され得るので様々な形態をとる可能性がある。ユーザが「Where were the outdoor shots of 'The Shining' filmed?」のように純然たる情報を要求すると仮定する。ユーザの意図は、たとえば、意図マッチャ136によって検索クエリであるものと判定される可能性がある。検索クエリの意図および内容が、遂行モジュール124に与えられる可能性があり、遂行モジュール124は、図1に示されるように、応答情報に関して文書のコーパスおよび/またはその他のデータソース(たとえば、ナレッジグラフなど)を検索するように構成された1つまたは複数の検索モジュール150と通信する可能性がある。遂行モジュール124は、検索クエリを示すデータ(たとえば、クエリのテキスト、次元の削減された埋め込みなど)を検索モジュール150に提供する可能性がある。検索モジュール150は、GPS座標または「Timberline Lodge, Mt. Hood, Oregon」などのその他のより明示的な情報などの応答情報を提供する可能性がある。この応答情報は、遂行モジュール124によって生成される遂行情報の一部を形成する可能性がある。
【００６０】
追加的にまたは代替的に、遂行モジュール124は、たとえば、自然言語理解モジュール135から、ユーザの意図と、ユーザによって与えられたまたはその他の手段を使用して決定された任意のスロット値(たとえば、ユーザのGPS座標、ユーザの好みなど)とを受け取り、応答する行為をトリガするように構成される可能性がある。応答する行為は、たとえば、品物/サービスを注文すること、タイマーを開始すること、リマインダを設定すること、電話をかけること、メディアを再生すること、メッセージを送信することなどを含む可能性がある。一部のそのような実装において、遂行情報は、遂行に関連するスロット値、(場合によっては所定の応答から選択される可能性がある)確認応答などを含む可能性がある。
【００６１】
自然言語ジェネレータ126は、様々なソースから取得されたデータに基づいて自然言語出力(たとえば、人間の話しをまねるように設計される単語/フレーズ)を生成するおよび/または選択するように構成される可能性がある。一部の実装において、自然言語ジェネレータ126は、意図の遂行に関連する遂行情報を入力として受け取り、遂行情報に基づいて自然言語出力を生成するように構成される可能性がある。追加的にまたは代替的に、自然言語ジェネレータ126は、その自然言語ジェネレータ126がユーザのための自然言語出力を構成するために使用する可能性があるサードパーティアプリケーションなどのその他のソースからの情報(たとえば、必要とされるスロット)を受け取る可能性がある。
【００６２】
図2は、様々な実装によって、音声キャプチャモジュール110および画像キャプチャモジュール111からの出力の組合せが図1の様々な構成要素によってどのようにして処理される可能性があるかの例を示す。本明細書において説明される技術に関連する構成要素が示されるが、これは限定であるように意図されておらず、図2に示されていない様々なその他の構成要素が、それにもかかわらず配置される可能性がある。図2に示される動作は、除外される領域の分類が既に実行された後に行われると仮定される。
【００６３】
左から始めると、音声キャプチャモジュール110が、呼び出しモジュール113にオーディオデータを提供してもよい。上述のように、このオーディオデータは、ユーザの発話のオーディオ録音、オーディオ録音から生成された埋め込み、オーディオ録音から生成された特徴ベクトルなどを含んでもより。同時にまたはほぼ同時に(たとえば、アクションの同じセットの一部として同時に)、画像キャプチャモジュール111が、1つまたは複数の画像フレームを示すデータを視覚的手掛かりモジュール112に提供してもよい。1つまたは複数の画像フレームを示すデータは、生画像フレームデータ、生画像フレームデータの削減された次元の埋め込みなどであってもよい。
【００６４】
視覚的手掛かりモジュール112は、視覚的な手掛かりを検出するために画像フレームを示すデータを分析してもよい。上述のように、視覚的手掛かりモジュール112は、視覚的なノイズを含む可能性が高いものとして既に分類された領域内で検出された視覚的な手掛かりを無視するかまたはそれらの視覚的な手掛かりにより低い重みを割り振ってもよい。一部の実装において、視覚的手掛かりモジュール112は、状態を示す、視覚センサー107の視野内のテレビ250(またはより広く電子ディスプレイ)からの1つまたは複数の信号を受信してもよい。状態を示すこれらの信号は、たとえば、1つまたは複数のコンピュータネットワークを使用して提供されてもよい。テレビの状態がオフである場合、テレビを含む視覚センサーの視野の領域は、無視されないかまたはより低く重み付けされなくてもよく、その代わりに通常通り処理されてもよい。しかし、テレビの状態がオンである場合、テレビを含む視覚センサーの視野の領域は、無視されるかまたはその他の領域よりも低く重み付けされてもよい。
【００６５】
一部の実装においては、音声キャプチャモジュール110によって提供されたオーディオデータおよび視覚的手掛かりモジュール112によって検出された1つまたは複数の視覚的な手掛かりが、呼び出しモジュール113に提供されてもよい。これらの入力に基づいて、呼び出しモジュール113は、自動化されたアシスタント120が呼び出されるべきかどうかを判定してもよい。たとえば、呼び出しフレーズのユーザの発話が、たとえば、環境ノイズが原因で明瞭に録音されなかったと仮定する。そのノイズの入った発話だけでは、自動化されたアシスタント120を呼び出すのに十分でない可能性がある。しかし、呼び出しモジュール113が、ユーザが視覚センサー107を真っ直ぐに凝視している形態の視覚的な手掛かりも、たとえば、発話のキャプチャと同時に検出されたと判定する場合、呼び出しモジュール113は、自動化されたアシスタント120の呼び出しが適切であると判定してもよい。
【００６６】
上述のように、視覚的な手掛かりの使用は、自動化されたアシスタント120の呼び出しに限定されない。様々な実装において、視覚的な手掛かりは、自動化されたアシスタント120を呼び出すことに加えてまたは自動化されたアシスタント120を呼び出す代わりに、自動化されたアシスタント120に様々な応答アクションを行わせるために使用されてもよい。図2においては、視覚的手掛かりモジュール112によって検出された視覚的な手掛かりが、自然言語理解エンジン135などの自動化されたアシスタント120のその他の構成要素に提供されてもよい。自然言語理解エンジン135は、たとえば、自然言語プロセッサ122によって、エンティティのタグ付け(entity tagging)(たとえば、ユーザが新聞の有名人または著名人の写真を掲げて、「これは誰」と言う)などの様々な目的のために視覚的な手掛かりを利用してもよい。追加的にまたは代替的に、自然言語理解エンジン135は、たとえば、意図マッチャ136によって、ユーザの意図を特定するために視覚的な手掛かりを単独でまたはSTTモジュール117によって生成され、自然言語プロセッサ122によって注釈を付けられた音声認識出力と組み合わせて使用してもよい。そして、この意図が、遂行モジュール124に提供されてもよく、遂行モジュール124が、上述のように、意図を遂行するための様々なアクションを行ってもよい。
【００６７】
図3は、本開示の選択された態様を用いて構成されたアシスタントデバイス306の視覚センサー307の例示的な視野348を示す。テレビ350および写真フレーム352が、視野348内に見えていることが分かる。これらは、両方とも、視覚的な手掛かりの誤検出を生じる可能性がある視覚的なノイズの潜在的なソースである。たとえば、テレビ350は、ジェスチャを行う、カメラを見るなどしている1人または複数の人を示す動画をレンダリングする可能性があり、それらの行っていることのいずれかが、視覚的な手掛かりとして誤って解釈される可能性がある。写真フレーム352は、単に印刷された写真を収容する非電子式フレームである可能性があり、またはその写真フレーム自体のメモリに記憶された1つもしくは複数の画像をレンダリングする電子式写真フレームである可能性がある。写真フレーム352に含まれるまたは写真フレーム352によってレンダリングされる写真が、たとえば、カメラを真っ直ぐに凝視する人を含むと仮定すると、その人の凝視が、視覚的な手掛かりとして誤って解釈される可能性がある。図3に示されていないが、潜在的な視覚的なノイズのその他のソースは、ラップトップコンピュータに関連するモニタ、タブレットコンピュータ、スマートフォンの画面、スマートウォッチの画面、その他のアシスタントデバイスに関連する画面などの電子ディスプレイを含む可能性がある。
1つまたは複数の画像フレームが、たとえば、視覚センサー307によってキャプチャされてもよく、それらの画像フレームは、視覚センサー307の視野348に対応する可能性がある。これらの画像フレームは、テレビ350および写真フレーム352を含む領域などのノイズのソースを含む可能性が高い領域を特定するためにたとえば視覚的手掛かりモジュール112によって分析されてもよい。視覚的手掛かりモジュール112は、画像フレームのその視覚的手掛かりモジュール112の分析の一部としてそのような物体を認識し、それに応じて領域を特定してもよい。これらの領域が特定されると、視覚的手掛かりモジュール112は、視覚的なノイズの潜在的なソースを含む対応する対象領域を生成してもよい。たとえば、図4は、図3と同じ視野348を示す。しかし、図4においては、対象領域360および362が、テレビ350および写真フレーム352をそれぞれ含むように生成済みである。これらの対象領域360〜362は、視覚的なノイズを含む可能性が高い(または視覚的な手掛かりを含む可能性が低い)ものとして分類されてもよい。たとえば、対象領域は、特定の閾値を超える視覚的なノイズの確率を割り振られてもよい。追加的にまたは代替的に、対象領域は、(たとえば、視覚的なノイズの確率が閾値を超えていることを示す可能性がある)視覚的なノイズインジケータに関連付けられてもよい。
【００６８】
結果として、対象領域が、無視されてもよく、および/またはこれらの領域内で検出された視覚的な手掛かりが、視野348内の他の場所で検出された視覚的な手掛かりよりも低く重み付けされてもよい。
【００６９】
図5は、本明細書において開示される実装による例示的な方法500を示す流れ図である。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、自動化されたアシスタント120を実装するコンピューティングシステムの1つまたは複数の構成要素などの様々なコンピュータシステムの様々な構成要素を含む可能性がある。さらに、方法500の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される可能性がある。
【００７０】
ブロック502において、システムが、たとえば、画像キャプチャモジュール111によって、1つまたは複数の視覚センサー(たとえば、107)から1つまたは複数の初期画像フレームを取得してもよい。これらの初期画像フレームは、除外される領域の分類の目的でキャプチャされてもよい。ブロック504において、システムが、たとえば、視覚的手掛かりモジュール113によって、視覚的なノイズを含む可能性が高いおよび/または視覚的な手掛かりを含む可能性が低いものとして1つまたは複数のビデオフレームの特定の領域を分類するために1つまたは複数の初期画像フレームを分析してもよい。ブロック504の動作は、本明細書において説明された除外される領域の分類を構成してもよい。ブロック506において、システムが、たとえば、画像キャプチャモジュール111によって、1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得してもよい。これらの画像フレームは、除外される領域の分類の後に取得されてもよい。
【００７１】
ブロック508において、システムが、ユーザのうちの1人または複数によって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために1つまたは複数の後続の画像フレームを分析してもよい。一部の実装において、この分析は、ブロック510において、1つまたは複数の後続の画像フレーム内で、視覚的なノイズのソースである可能性が高いおよび/または視覚的な手掛かりを含む可能性が低いものとして分類された特定の領域を分析することを控えることを含んでもよい。たとえば、特定の領域からの画像データ(たとえば、RGBピクセル)は、視覚的な手掛かりを検出するように訓練される上述の機械学習モデル(たとえば、畳み込みニューラルネットワーク)のうちの1つ全体に入力として適用されなくてもよい。
【００７２】
追加的にまたは代替的に、一部の実装において、ブロック508の分析は、ブロック512において、たとえば、視覚的手掛かりモジュール113および/または意図マッチャ136によって、1つまたは複数の後続の画像フレームの特定の領域内で検出された第1の候補の視覚的な手掛かりを1つまたは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含んでもよい。たとえば、視覚センサーの視野の第1の領域に含まれるテレビが、手を振っている人を示す画像のシーケンスをレンダリングすると仮定する(手を振ることが、自動化されたアシスタント120からの応答を引き出す所定の視覚的な手掛かりであると仮定する)。視覚センサーの視野の第2の異なる領域内のユーザも、たとえば、ユーザの手で「8の字」を形成することによってジェスチャを行うとさらに仮定する。通常、これらのジェスチャは、概ね等しくユーザの意図を示す可能性があり、したがって、自動化されたアシスタント120は、自動化されたアシスタント120がどちらの意図を遂行しようと試みるべきかに関して混乱する可能性がある。しかし、手を振ることは視覚的なノイズを含む可能性が高いものとして分類された領域(つまり、テレビを含む対象領域)内で検出されたので、手を振ることは、8の字のジェスチャよりも候補の視覚的な手掛かりとして低い重みを割り振られてもよい。したがって、8の字のジェスチャが、自動化されたアシスタント120からの応答を引き出す可能性がより高くてもよい。
【００７３】
この例は複数の候補の視覚的な手掛かりからそれらのそれぞれの重みに基づいて選択を行うことを示すが、これは、限定であるように意図されていない。様々な実装において、単一の候補の視覚的な手掛かりが、たとえば、その候補の視覚的な手掛かりが自動化されたアシスタント120からの応答を引き出すべきかどうかを判定するために所定の閾値と比較される可能性がある。したがって、たとえば、視覚的なノイズを含む可能性が高いものとして分類された画像フレームの領域内で検出された視覚的な手掛かりは、信頼性の閾値を満たすことができない重みを割り振られてもよい。結果として、視覚的な手掛かりは、自動化されたアシスタント120からの応答を引き出さない可能性がある。これは、たとえば、利用可能な視覚的な手掛かりに対応するジェスチャをたまたまちょうど行うテレビの誰かから生じる誤検出を防止するかまたは削減する。
【００７４】
追加的にまたは代替的に、場合によっては、単一の視覚的な手掛かりが、画像フレームのシーケンスにまたがって、視覚センサーの視野の複数の領域内で検出される可能性があり、これらの領域の一部は、視覚的なノイズを含む可能性が高いものとして分類され、その他は、分類されない。一部のそのような実装においては、視覚的な手掛かりが両方の領域で検出された組み合わされた信頼性--分類された領域から検出された手掛かりは寄与がより少ない--が、視覚的な手掛かりが自動化されたアシスタント120からの応答を引き出すための何らかの所定の閾値を満たすと判定するために閾値と比較されてもよい。
【００７５】
再び図5を参照すると、ブロック514において、システムが、検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを自動化されたアシスタント120によってまたは自動化されたアシスタント120のために行わせてもよい。これらの応答アクションは、自動化されたアシスタント120を呼び出すことを含んでもよい。たとえば、呼び出しモジュール113が、利用可能な視覚的な手掛かりが単独でまたはユーザによって与えられた発話との組合せで自動化されたアシスタント120を呼び出すのに十分であり、したがって、ユーザが自動化されたアシスタント120に追加の要求を行うことができると判定してもよい。追加的にまたは代替的に、一部の実装においては、ユーザが話しながらクライアントデバイス106のカメラ107を真っ直ぐに凝視する視覚的な手掛かりが、自動化されたアシスタント120が呼び出される(およびおそらくはユーザが言っているいかなることに対してもアクションを行う)べきであるという強いインジケータであってもよい。
【００７６】
追加的にまたは代替的に、応答アクションは、たとえば、人とコンピュータとの対話の通常の部分として、自動化されたアシスタント120が呼び出された後に自動化されたアシスタント120によって行われる可能性がある様々な応答アクションを含んでもよい。一部の実装において、様々なアクションは、特定の視覚的な手掛かりを単独でもしくは音声の発話と組み合わせて予め割り振られるか、または特定の視覚的な手掛かりのみにもしくは音声の発話との組合せにマッピングされてもよい。非限定的な例として、ユーザが「親指を立てる」形態の視覚的な手掛かりが、公共交通機関を使用して場所にたどり着くことについての情報を自動化されたアシスタント120に取り出させるために発話「How do I get to <location>」と組み合わせて使用されてもよい。対照的に、ユーザがハンドル操作の身振りをする形態の視覚的な手掛かりが、場所への運転の案内を自動化されたアシスタント120に取り出させるために同じ発話と組み合わせて使用されてもよい。一部の実装においては、ユーザが、視覚的な手掛かりと様々なアクションとの間のカスタムのマッピングを作成してもよい。たとえば、ユーザは、「オーケー、アシスタント。私があなたを見て3回瞬きをしたら、ジングルベルをかけて」のようなことを言う可能性がある。マッピングが、たとえば、意図マッチャ136によって利用され得るデータベース内に作成されてもよく、後で3回瞬きをする視覚的な手掛かりが検出されるときにはいつでも使用される。
【００７７】
図6は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用される可能性がある例示的なコンピューティングデバイス610のブロック図である。一部の実装においては、クライアントコンピューティングデバイス、ユーザによって制御されるリソースモジュール130、および/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を含む可能性がある。
【００７８】
概して、コンピューティングデバイス610は、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含む可能性がある。入力および出力デバイスは、コンピューティングデバイス610とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【００７９】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含む可能性がある。概して、用語「入力デバイス」の使用は、コンピューティングデバイス610または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【００８０】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的表示を含む可能性がある。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含む可能性がある。ディスプレイサブシステムは、オーディオ出力デバイスなどの非視覚的表示を与える可能性もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【００８１】
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム624は、図5の方法の選択された態様を実行するためならびに図1および図2に示された様々な構成要素を実装するための論理を含む可能性がある。
【００８２】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624において使用されるメモリ625は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)630と、決まった命令が記憶される読み出し専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含む可能性がある。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶される可能性がある。
【００８３】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する可能性がある。
【００８４】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図6に示されたコンピューティングデバイス610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図6に示されたコンピューティングデバイスよりも多くのまたは図6に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス610の多くのその他の構成が、可能である。
【００８５】
本明細書において説明されたシステムがユーザについての個人情報を収集するかもしくはそうでなければ監視するまたは個人および/もしくは監視された情報を利用する可能性がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受け取るべきかどうかおよび/またはどのようにして受け取るべきかを制御する機会を与えられる可能性がある。また、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定できる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される可能性があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理される可能性がある。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御する可能性がある。たとえば、一部の実装において、ユーザは、たとえば、視覚センサー107を無効にすることによってアシスタントデバイスが視覚的な手掛かりを検出しようと試みることを止める可能性がある。
【００８６】
いくつかの実装が本明細書において説明され、図示されたが、本明細書において説明された機能を実行するならびに/あるいは結果および/または利点のうちの1つもしくは複数を得るための様々なその他の手段および/または構造が利用される可能性があり、そのような変更および/または修正の各々は本明細書において説明された実装の範囲内にあるとみなされる。より広く、本明細書において説明されたすべてのパラメータ、寸法、材料、および構成は、例示的であるように意図されており、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の1つの応用または複数の応用に依存する。当業者は、本明細書において説明された特定の実装の多くの均等物を通常の実験だけを使用して認識するかまたは突き止めることができる。したがって、上述の実装は単に例として提示されており、添付の請求項およびその均等物の範囲内で、実装が、特に説明され、主張されたのとは異なる方法で実施される可能性があることを理解されたい。本開示の実装は、本明細書において説明されたそれぞれの個々の特徴、システム、品物、材料、キット、および/または方法を対象とする。さらに、2つ以上のそのような特徴、システム、品物、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、品物、材料、キット、および/または方法が相互に矛盾しない場合は本開示の範囲に含まれる。
【符号の説明】
【００８７】
106  クライアントコンピューティングデバイス、クライアントデバイス
107  視覚センサー、カメラ
108  自動化されたアシスタントクライアント
109  マイクロフォン
110  音声キャプチャモジュール
111  画像キャプチャモジュール
112  視覚的手掛かりモジュール
113  呼び出しモジュール
114  視覚的手掛かりモデルデータベース
116  クラウドに基づくTTSモジュール
117  クラウドに基づくSTTモジュール
119  クラウドに基づく自動化されたアシスタント構成要素
120  自動化されたアシスタント
122  自然言語プロセッサ
124  遂行モジュール
126  自然言語ジェネレータ
130  リソースモジュール
135  自然言語理解モジュール、自然言語理解エンジン
136  意図マッチャ
137  データベース
150  検索モジュール
250  テレビ
306  アシスタントデバイス
307  視覚センサー
348  視野
350  テレビ
352  写真フレーム
360  対象領域
362  対象領域
500  方法
610  コンピューティングデバイス
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェースサブシステム
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  ストレージサブシステム
625  メモリサブシステム
626  ファイルストレージサブシステム
630  RAM
632  ROM
【図１】
2021515350.tif 000003
【図２】
2021515350.tif 000004
【図３】
2021515350.tif 000005
【図４】
2021515350.tif 000006
【図５】
2021515350.tif 000007
【図６】
2021515350.tif 000008
【手続補正書】
【提出日】令和2年12月23日(2020.12.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1人または複数のユーザと自動化されたアシスタントとの間の非接触式のインタラクションを容易にする1つまたは複数のプロセッサによって実施される方法であって、
1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得するステップと、
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析するステップであって、当該分析するステップが、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む、分析するステップと、
前記1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得するステップと、
前記1人または複数のユーザによって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために前記1つまたは複数の後続の画像フレームを分析するステップであって、
前記1つもしくは複数の後続の画像フレームの前記特定の領域を分析することを控えること、または
前記1つもしくは複数の後続の画像フレームの前記特定の領域内で検出された第1の候補の視覚的な手掛かりを前記1つもしくは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含む、分析するステップと、
前記検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを前記自動化されたアシスタントに行わせるステップとを含み、
前記控えることまたは前記重み付けすることが、前記電子ディスプレイがグラフィックスを現在レンダリングしているかどうかの判定に基づいて条件付きで実行される、方法。
【請求項２】
前記電子ディスプレイが、物体認識プロセスを使用して検出される請求項1に記載の方法。
【請求項３】
前記電子ディスプレイを検出することが、前記電子ディスプレイの表示周波数を検出することを含む請求項1または2に記載の方法。
【請求項４】
前記1つまたは複数の初期画像フレームを分析するステップが、前記1つまたは複数の初期画像フレーム内でキャプチャされた写真フレームを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された写真フレームを含む請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記1人または複数のユーザからの発話と併せて前記1つまたは複数の検出された利用可能な視覚的な手掛かりに基づいて呼び出される請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記1つまたは複数の検出された利用可能な視覚的な手掛かりのみに基づいて呼び出される請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記1つまたは複数の検出された利用可能な視覚的な手掛かりが、ユーザが基準点を見ること、ユーザが手のジェスチャを行うこと、ユーザが特定の表情をしていること、または前記1つもしくは複数の後続の画像フレーム内の前記ユーザの位置のうちの1つまたは複数を含む請求項1から6のいずれか一項に記載の方法。
【請求項８】
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの前記特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析するステップが、
前記1つまたは複数の初期画像フレームの前記特定の領域を視覚的なノイズインジケータに関連付けることを含む請求項1から7のいずれか一項に記載の方法。
【請求項９】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能なように結合されたメモリとを含み、前記メモリが、1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに以下の動作、すなわち、
1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得する動作、
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析する動作であって、当該分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む、分析する動作、
前記1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得する動作、
1人または複数のユーザによって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために前記1つまたは複数の後続の画像フレームを分析する動作であって、
前記1つもしくは複数の後続の画像フレームの前記特定の領域を分析することを控えること、または
前記1つもしくは複数の後続の画像フレームの前記特定の領域内で検出された第1の候補の視覚的な手掛かりを前記1つもしくは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含む、分析する動作、および
前記検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを自動化されたアシスタントに行わせる動作
を実行させる前記命令を記憶し、
前記控えることまたは前記重み付けすることが、前記電子ディスプレイがグラフィックスを現在レンダリングしているかどうかの判定に基づいて条件付きで実行される、システム。
【請求項１０】
前記電子ディスプレイが、物体認識プロセスを使用して検出される請求項9に記載のシステム。
【請求項１１】
前記電子ディスプレイを検出することが、前記電子ディスプレイの表示周波数を検出することを含む請求項9または10に記載のシステム。
【請求項１２】
前記1つまたは複数の初期画像フレームを分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた写真フレームを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された写真フレームを含む請求項9から11のいずれか一項に記載のシステム。
【請求項１３】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記1人または複数のユーザからの発話と併せて前記1つまたは複数の検出された利用可能な視覚的な手掛かりに基づいて呼び出される請求項9から12のいずれか一項に記載のシステム。
【請求項１４】
前記1つまたは複数の応答アクションが、前記自動化されたアシスタントの呼び出しを含み、前記自動化されたアシスタントが、前記1つまたは複数の検出された利用可能な視覚的な手掛かりのみに基づいて呼び出される請求項9から12のいずれか一項に記載のシステム。
【請求項１５】
前記1つまたは複数の検出された利用可能な視覚的な手掛かりが、ユーザが基準点を見ること、ユーザが手のジェスチャを行うこと、ユーザが特定の表情をしていること、または前記1つもしくは複数の後続の画像フレーム内の前記ユーザの位置のうちの1つまたは複数を含む請求項9から14のいずれか一項に記載のシステム。
【請求項１６】
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの前記特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析する動作が、
前記1つまたは複数の初期画像フレームの前記特定の領域を視覚的なノイズインジケータに関連付けることを含む請求項9から15のいずれか一項に記載のシステム。
【請求項１７】
1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに以下の動作、すなわち、
1つまたは複数の視覚センサーから1つまたは複数の初期画像フレームを取得する動作、
視覚的なノイズを含む可能性が高いものとして前記1つまたは複数の初期画像フレームの特定の領域を分類するために前記1つまたは複数の初期画像フレームを分析する動作であって、当該分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む、分析する動作、
前記1つまたは複数の視覚センサーから1つまたは複数の後続の画像フレームを取得する動作、
1人または複数のユーザによって与えられた1つまたは複数の利用可能な視覚的な手掛かりを検出するために前記1つまたは複数の後続の画像フレームを分析する動作であって、
前記1つもしくは複数の後続の画像フレームの前記特定の領域を分析することを控えること、または
前記1つもしくは複数の後続の画像フレームの前記特定の領域内で検出された第1の候補の視覚的な手掛かりを前記1つもしくは複数の後続の画像フレーム内の他の場所で検出された第2の候補の視覚的な手掛かりよりも低く重み付けすることを含む、動作、および
前記検出された利用可能な視覚的な手掛かりのうちの1つまたは複数に基づいて1つまたは複数の応答アクションを自動化されたアシスタントに行わせる動作
を実行させる前記命令を含み、
前記控えることまたは前記重み付けすることが、前記電子ディスプレイがグラフィックスを現在レンダリングしているかどうかの判定に基づいて条件付きで実行される、少なくとも1つのコンピュータ可読記録媒体。
【請求項１８】
前記1つまたは複数の初期画像フレームを分析する動作が、前記1つまたは複数の初期画像フレーム内でキャプチャされた電子ディスプレイを検出することを含み、前記1つまたは複数の画像フレームの前記特定の領域が、前記検出された電子ディスプレイを含む請求項17に記載の少なくとも1つのコンピュータ可読記録媒体。
【請求項１９】
1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに請求項1から8のいずれか一項に記載の方法を実行させる前記命令を含む少なくとも1つのコンピュータ可読記録媒体。
【請求項２０】
少なくとも1つのコンピューティング装置によって実行されるときに前記少なくとも1つのコンピューティング装置に請求項1から8のいずれか一項に記載の方法を実行させるコンピュータが実行可能な命令を含むコンピュータプログラム。
【国際調査報告】
2021515350.tif 000009
2021515350.tif 000010