(57)【要約】  入力モードを選択するための方法、システム、および装置が説明される。一態様では、方法は、モバイルデバイスのロックスクリーンから仮想アシスタントアプリケーションを起動するという要求を指定する要求データを受信するステップを含む。要求データを受信したことに応答して、入力信号が取得される。仮想アシスタントアプリケーションのための入力モードの選択は、候補入力モードから、入力信号に基づいて行われる。各候補入力モードは、他の各候補入力モードの他の各入力タイプとは異なる入力タイプのものである。入力タイプは、画像タイプおよびオーディオタイプを含む。画像タイプの入力モードは、仮想アシスタントアプリケーションへの入力のためのピクセルデータを受信する。オーディオタイプの入力モードは、仮想アシスタントアプリケーションのためのオーディオ入力を受信する。仮想アシスタントアプリケーションは、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示する。
2021523487.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のデータ処理装置によって実施される方法であって、
モバイルデバイスのロックスクリーンから仮想アシスタントアプリケーションを起動するという要求を指定する要求データを受信するステップと、
前記要求データを受信したことに応答して、複数の入力信号を取得するステップであって、
前記入力信号の各々が、他の各入力信号の他の各入力タイプとは異なる入力タイプのものであり、
各入力信号が、前記仮想アシスタントアプリケーションのための入力であり、
前記入力信号の前記入力タイプが、画像タイプおよびオーディオタイプを含み、
前記画像タイプの前記入力信号が、前記モバイルデバイスのカメラによってキャプチャされた画像のピクセルデータであり、
前記オーディオタイプの前記入力信号が、前記モバイルデバイスのマイクロフォンによってキャプチャされたオーディオ入力のオーディオデータである、ステップと、
前記複数の入力信号に基づいて複数の候補入力モードから、前記仮想アシスタントアプリケーションのための入力モードを選択するステップであって、
各候補入力モードが、他の各候補入力モードの他の各入力タイプとは異なる入力タイプのものであり、
前記入力タイプが、画像タイプおよびオーディオタイプを含み、
前記画像タイプの前記入力モードが、前記仮想アシスタントアプリケーションへの入力のためのピクセルデータを受信し、
前記オーディオタイプの前記入力モードが、前記仮想アシスタントアプリケーションのためのオーディオ入力を受信する、ステップと、
前記仮想アシスタントアプリケーションによって、前記モバイルデバイスのユーザにコンテンツを提示するステップであって、前記提示されるコンテンツが、前記選択された入力モードを使用して受信された前記入力信号に基づいて選択される、ステップと
を含む方法。
【請求項２】
前記複数の入力信号に基づいて複数の候補入力モードから、前記仮想アシスタントアプリケーションのための入力モードを選択するステップが、
前記ピクセルデータに基づいて、前記画像が1つまたは複数の認識されたオブジェクトを含むかどうかを判定するステップと、
前記オーディオデータに基づいて、前記オーディオデータが1つまたは複数の認識された話し言葉を含むかどうかを判定するステップと、
それぞれの前記判定に基づいて、前記入力モードのうちの少なくとも1つを選択するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記選択された入力モードに基づいて、前記複数の入力信号の入力をリモートサーバに送信するステップをさらに含み、
前記ユーザに提示される前記コンテンツが、前記複数の入力信号の前記送信された入力に基づいて前記リモートサーバから受信される、
請求項1または2に記載の方法。
【請求項４】
前記選択された入力モードに基づいて、前記仮想アシスタントアプリケーションによって提示するためのユーザインターフェースを選択するステップをさらに含み、
前記コンテンツが、前記選択されたユーザインターフェースを使用して提示される、
請求項1または2に記載の方法。
【請求項５】
複数の入力信号を取得するステップが、前記モバイルデバイスの加速度計または前記モバイルデバイスのジャイロスコープのうちの1つまたは複数から受信されたデータに基づいて、前記ユーザに対する前記モバイルデバイスの位置を判定するステップを含み、
前記複数の入力信号に基づいて複数の候補入力モードから、前記仮想アシスタントアプリケーションのための入力モードを選択するステップが、前記ユーザに対する前記モバイルデバイスの前記位置に基づいて前記入力モードを選択するステップを含む、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
複数の入力信号を取得するステップが、前記モバイルデバイスの加速度計または前記モバイルデバイスのジャイロスコープのうちの1つまたは複数から受信されたデータに基づいて、前記モバイルデバイスの前記カメラが指している方向を判定するステップを含み、
前記複数の入力信号に基づいて複数の候補入力モードから、前記仮想アシスタントアプリケーションのための入力モードを選択するステップが、前記モバイルデバイスの前記カメラが指している前記方向に基づいて前記入力モードを選択するステップを含む、
請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記仮想アシスタントアプリケーションのための前記入力に関連する1つまたは複数の信号を取得するステップが、前記モバイルデバイスの地理的位置を指定する地理的位置データを取得するステップを含み、
前記1つまたは複数の信号に基づいて複数の候補入力モードから、前記仮想アシスタントアプリケーションのための入力モードを選択するステップが、前記モバイルデバイスの前記地理的位置に基づいて前記入力モードを選択するステップを含む、
請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記1つまたは複数の信号に基づいて複数の候補入力モードから、前記仮想アシスタントアプリケーションのための入力モードを選択するステップが、音声入力がクエリを含むかどうかを判定し、前記音声入力が前記クエリを含むとの判定に応答して、オーディオ入力モードを選択するステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記仮想アシスタントアプリケーションによって、前記モバイルデバイスのユーザにコンテンツを提示するステップが、前記仮想アシスタントアプリケーションのユーザインターフェースにおいて画像コンテンツを提示するステップ、前記仮想アシスタントアプリケーションの前記ユーザインターフェースにおいてビデオコンテンツを提示するステップ、またはオーディオコンテンツを再生するステップのうちの少なくとも1つを含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
請求項1から9のいずれか一項に記載の方法をコンピュータに実施させるように構成されたコンピュータ可読命令を含むコンピュータプログラムを記憶したコンピュータ可読記録媒体。
【請求項１１】
コンピュータシステムであって、
プロセッサ可読命令を記憶したメモリと、
前記プロセッサ可読命令を読み取り、実行するように構成された1つまたは複数のプロセッサと
を備え、前記プロセッサ可読命令が、請求項1から9のいずれか一項に記載の方法を実施するように前記コンピュータシステムを制御するように構成された命令を含む、コンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
仮想アシスタントは、質問に答える、音楽を再生する、カレンダーアプリケーションにイベントのスケジュールを入れるなど、ユーザのためのタスクまたはサービスを実施することができるソフトウェアアプリケーションである。仮想アシスタントは、通常は自然言語の形態の音声またはテキストを介して要求を受信する。たとえば、ユーザは、音声を使用して仮想アシスタントに質問をすることができ、仮想アシスタントは、音声入力を認識し、スピーカーを使用してまたはユーザインターフェースに答えを提示して質問に対する答えを提供することができる。
【発明の概要】
【課題を解決するための手段】
【０００２】
本明細書は、1つまたは複数の信号に基づいてコンテンツをユーザに提供するための入力モードを選択することに関する技術について説明する。一般に、本明細書で説明される主題の1つの革新的な態様は、モバイルデバイスのロックスクリーンから仮想アシスタントアプリケーションを起動するという要求を指定する要求データを受信するステップと、要求データを受信したことに応答して、入力信号を取得するステップであって、入力信号の各々が、他の各入力信号の他の各入力タイプとは異なる入力タイプのものであり、各入力信号が、仮想アシスタントのための入力であり、入力信号の入力タイプが、画像タイプおよびオーディオタイプを含み、画像タイプの入力信号が、モバイルデバイスのカメラによってキャプチャされた画像のピクセルデータであり、オーディオタイプの入力信号が、モバイルデバイスのマイクロフォンによってキャプチャされたオーディオ入力のオーディオデータである、ステップと、入力信号に基づいて複数の候補入力モードから、仮想アシスタントアプリケーションのための入力モードを選択するステップであって、各候補入力モードが、他の各候補入力モードの他の各入力タイプとは異なる入力タイプのものであり、入力タイプが、画像タイプおよびオーディオタイプを含み、画像タイプの入力モードが、仮想アシスタントアプリケーションへの入力のためのピクセルデータを受信し、オーディオタイプの入力モードが、仮想アシスタントアプリケーションのためのオーディオ入力を受信する、ステップと、仮想アシスタントアプリケーションによって、モバイルデバイスのユーザにコンテンツを提示するステップであって、提示されるコンテンツが、選択された入力モードを使用して受信された入力信号に基づいて選択される、ステップとを含む方法において具現化され得る。この態様の他の実装形態は、コンピュータストレージデバイス上で符号化された方法のアクションを実施するように構成された、対応する装置、デバイス、システム、およびコンピュータプログラムを含む。
【０００３】
これらのおよび他の実装形態はそれぞれ、以下の特徴のうちの1つまたは複数を任意選択で含むことができる。いくつかの態様では、入力信号に基づいて複数の候補入力モードから、仮想アシスタントアプリケーションのための入力モードを選択するステップは、ピクセルデータに基づいて、画像が1つまたは複数の認識されたオブジェクトを含むかどうかを判定するステップと、オーディオデータに基づいて、オーディオが1つまたは複数の認識された話し言葉を含むかどうかを判定するステップと、それぞれの判定に基づいて、入力モードのうちの少なくとも1つを選択するステップとを含む。
【０００４】
いくつかの態様は、選択された入力モードに基づいて、複数の入力信号の入力をリモートサーバに送信するステップを含む。ユーザに提示されるコンテンツは、入力信号の送信された入力に基づいてリモートサーバから受信され得る。
【０００５】
いくつかの態様は、選択された入力モードに基づいて、仮想アシスタントアプリケーションによって提示するためのユーザインターフェースを選択するステップを含む。コンテンツは、選択されたユーザインターフェースを使用して提示され得る。
【０００６】
いくつかの態様では、入力信号を取得するステップは、モバイルデバイスの加速度計またはモバイルデバイスのジャイロスコープのうちの1つまたは複数から受信されたデータに基づいて、ユーザに対するモバイルデバイスの位置を判定するステップを含む。入力信号に基づいて複数の候補入力モードから、仮想アシスタントアプリケーションのための入力モードを選択するステップは、ユーザに対するモバイルデバイスの位置に基づいて入力モードを選択するステップを含むことができる。
【０００７】
いくつかの態様では、入力信号を取得するステップは、モバイルデバイスの加速度計またはモバイルデバイスのジャイロスコープのうちの1つまたは複数から受信されたデータに基づいて、モバイルデバイスのカメラが指している方向を判定するステップを含む。入力信号に基づいて複数の候補入力モードから、仮想アシスタントアプリケーションのための入力モードを選択するステップは、モバイルデバイスのカメラが指している方向に基づいて入力モードを選択するステップを含むことができる。
【０００８】
いくつかの態様では、仮想アシスタントのための入力に関連する1つまたは複数の信号を取得するステップは、モバイルデバイスの地理的位置を指定する地理的位置データを取得するステップを含むことができる。1つまたは複数の信号に基づいて複数の候補入力モードから、仮想アシスタントアプリケーションのための入力モードを選択するステップは、モバイルデバイスの地理的位置に基づいて入力モードを選択するステップを含むことができる。
【０００９】
いくつかの態様では、1つまたは複数の信号に基づいて複数の候補入力モードから、仮想アシスタントアプリケーションのための入力モードを選択するステップは、音声入力がクエリを含むかどうかを判定し、音声入力がクエリを含むとの判定に応答して、オーディオ入力モードを選択するステップを含むことができる。いくつかの態様では、仮想アシスタントアプリケーションによって、モバイルデバイスのユーザにコンテンツを提示するステップは、仮想アシスタントアプリケーションのユーザインターフェースにおいて画像コンテンツを提示するステップ、仮想アシスタントアプリケーションのユーザインターフェースにおいてビデオコンテンツを提示するステップ、またはオーディオコンテンツを再生するステップのうちの少なくとも1つを含むことができる。
【００１０】
本明細書で説明される主題は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態において実装され得る。受信された入力信号に基づいて入力モードを自動的に判定することによって、入力信号がより効果的かつ効率的に処理され得る。たとえば、受信された信号に基づいて入力モードを最初に判定することによって、有益な入力を提供しない入力信号のさらなる処理が回避され得る。たとえば、受信された画像データまたはオーディオデータがクエリの一部として提供された入力信号ではないと判定される場合があり、したがって、オブジェクト認識および/または分類のための技法などの、計算コストが高い画像処理技法またはオーディオ処理技法が受信された画像ベースの入力信号に適用されない場合がある。追加または代替として、リモートデバイスへの入力信号の送信が回避され、リモートデバイスにおける処理に適していない信号のリモートデバイスへの送信のための帯域幅使用を回避し得る。ユーザがロックスクリーン(または他のユーザインターフェース要素)から仮想アシスタントアプリケーションを起動したことに応答して入力モードを選択することによって、仮想アシスタントアプリケーションは、ユーザが入力モードを選択するのを待機するか、または複数の入力モードから選択するようにユーザに促すよりも迅速に、選択された入力モードから受信された入力信号に基づいてコンテンツを識別し、提示することができる。適切な入力モードを使用することは、仮想アシスタントアプリケーションが、たとえば、ユーザの要求に応答して適切なコンテンツを提供することによって、ユーザの要求により正確に応答することを可能にする。
【００１１】
これは、ユーザが複数の要求を行わなければならないことを防止し、このことは、コンピューティングシステムがコンテンツを識別して選択するために要求を処理する回数を低減する。多くのユーザにわたって集約されると、これは、コンピュータに課された処理デマンドを低減することによって、コンテンツを選択するコンテンツ配信システムのコンピュータの機能を大幅に改善することができる。コンテンツ配信システムはネットワークを介してアクセスされ得るので、要求の数を低減することはまた、消費される帯域幅の量を低減し、他のネットワークトラフィックに帯域幅を与えるかつ/またはネットワークの速度を上げることができる。
【００１２】
ユーザのための適切な入力モードを選択することによって、ユーザはそれぞれの要求に対する入力モードを選択しなければならないことに悩まされることがない。これは、ユーザエクスペリエンスを改善し、ユーザによるより迅速な要求およびユーザのためのさらなる柔軟性を可能にすることができる。たとえば、ユーザは、カメラがオブジェクトを指しているようにモバイルデバイスを持ち、カメラ入力モードを選択するためにモバイルデバイスと対話もする必要なしにオブジェクトについての情報を取得することができる。
【００１３】
上記の主題の様々な特徴および利点は、図に関して以下で説明される。追加の特徴および利点は、本明細書で説明される主題および特許請求の範囲から明らかである。
【図面の簡単な説明】
【００１４】
【図１】仮想アシスタントアプリケーションが入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示する環境のブロック図である。
【図２】入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示するモバイルデバイスの例示的なスクリーンショットのシーケンスを示す図である。
【図３】入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示するモバイルデバイスの例示的なスクリーンショットの別のシーケンスを示す図である。
【図４】仮想アシスタントアプリケーションのための入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいてコンテンツを提示するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【００１５】
様々な図面における同様の参照番号および名称は、同様の要素を指す。
【００１６】
一般に、本明細書で説明されるシステムおよび技法は、ユーザに提示すべきコンテンツを選択する際に使用するための入力モードを選択することができる。入力モードは、各入力モードが、他の各入力モードの他の各入力タイプとは異なる入力タイプのものである、複数の異なる入力モードから選択され得る。たとえば、入力モードは、オーディオタイプ(たとえば、音声入力)のオーディオ入力モード、画像タイプの画像入力モード、テキストタイプのテキスト入力モード、および/または2つ以上の入力タイプ(たとえば、音声および画像)の組合せの組合せ入力モードを含むことができる。入力モードは、仮想アシスタントアプリケーション(または別のアプリケーション)を起動するという要求に応答して選択され得る。仮想アシスタントアプリケーションは、複数の異なる候補入力モードから受信された入力信号に基づいて、入力モードを選択することができる。
【００１７】
たとえば、ユーザは、ロックスクリーン上に提示されたアイコンを特定の方向にスワイプするなどのジェスチャをすることによって、モバイルデバイスのロックスクリーンから仮想アシスタントアプリケーションを起動するように要求することができる。要求を検出したことに応答して、仮想アシスタントアプリケーションは、1つまたは複数の信号を取得し、1つまたは複数の信号に基づいて、コンテンツを識別する際にどの入力モードを使用すべきかを判定することができる。
【００１８】
信号は、仮想アシスタントアプリケーションの入力モードに関連し得る。たとえば、信号は、音声入力において認識された単語または句、モバイルデバイスのカメラのビューファインダのピクセルデータ(たとえば、オブジェクトがビューファインダ内で検出されるかどうかおよび/または認識されるオブジェクトもしくはオブジェクトのタイプ)、ならびに/あるいは、モバイルデバイスのポジションおよび/または配向(たとえば、モバイルデバイスがユーザの顔に近いかまたは下方に向けられているか)を含むことができる。信号はまた、モバイルデバイスの地理的位置(たとえば、モバイルデバイスがどのタイプの建物に位置しているか)、環境信号(たとえば、照明および/または周囲雑音の量)、前の信号に基づいた入力モードについてのユーザの履歴もしくは選好、および/または他の適切な信号を含むことができる。
【００１９】
たとえば、音声入力が質問を含み、ビューファインダに何が示されているか(たとえば、何がカメラによってキャプチャされているか)を表すピクセルデータにおいてオブジェクトが認識されない場合、ユーザが仮想アシスタントアプリケーションに質問をしており、ユーザが関心のあるオブジェクトにカメラを向けていない可能性があるので、音声入力モードが選択され得る。別の例では、ユーザがユーザの顔の近くでモバイルデバイスを持っており、ピクセルデータ内で1つまたは複数のオブジェクトが検出される場合、ユーザはオブジェクトのうちの1つについての情報を要求している可能性がある。
【００２０】
図1は、仮想アシスタントアプリケーション116が入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示する環境100のブロック図である。仮想アシスタントアプリケーション116は、モバイルデバイス110上にインストールされかつ/またはモバイルデバイス110によって実行され得る。モバイルデバイス110は、データ通信ネットワーク140を介してデータを送り、受信することが可能な電子デバイスである。例示的なモバイルデバイス110は、スマートフォン、タブレットコンピューティングデバイス、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ)、および、ネットワーク140を介してデータを送り、受信することができる他のデバイスを含む。ネットワーク140は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せを含むことができる。
【００２１】
仮想アシスタントアプリケーション116は、特定のプラットフォームまたは特定のデバイス用に開発されたネイティブアプリケーションとして実装され得る。仮想アシスタントアプリケーション116は、モバイルデバイス110のユーザのためのタスクまたはサービスを実施することができる。たとえば、仮想アシスタントアプリケーション116は、ユーザの質問に答えること、オブジェクト(たとえば、画像またはカメラ111のビューファインダに示されたオブジェクト)に関連するデータを識別して提示すること、音楽を再生すること、他のアプリケーションを構成する(たとえば、カレンダーアプリケーションに会議を設定する)こと、および/または他の適切なタスクもしくはサービスを実施することができる。
【００２２】
仮想アシスタントアプリケーション116は、複数の異なる入力モードを介して要求(たとえば、情報に対する質問、コマンド、または要求)を受信することができる。たとえば、仮想アシスタントアプリケーション116は、モバイルデバイス110のマイクロフォン112から音声要求を受信することができる。仮想アシスタントアプリケーション116はまた、モバイルデバイス110のカメラ111のビューファインダ内のオブジェクトを検出かつ/または認識し、ユーザがオブジェクトにカメラ111を向けているという事実を、オブジェクトについてのさらなる情報に対する要求として解釈することができる。いくつかの実装形態では、仮想アシスタントアプリケーション116はまた、たとえば、モバイルデバイス110の物理キーパッドまたはタッチキーパッドを使用してタイプされたテキスト要求を受信することができる。
【００２３】
モバイルデバイス110は、モバイルデバイス110のロックスクリーンから仮想アシスタントアプリケーション116にアクセスすることを可能にすることができる。ロックスクリーンは、ユーザがモバイルデバイス110にアクセスするためのアクションを実施することを必要とすることによってモバイルデバイス110へのアクセスを規制するユーザインターフェース要素である。モバイルデバイス110は、モバイルデバイス110がロックされている間に特定のユーザアクション(たとえば、ジェスチャ)を検出したことに応答して、仮想アシスタントアプリケーション116を起動するように構成され得る。たとえば、ユーザアクションは、特定の方向へのアイコンのスワイプ、特定の動きでモバイルデバイス110を動かすこと、特定のコマンドを話すこと、または別の適切なアクションであり得る。
【００２４】
特定のユーザアクションを検出したことに応答して、モバイルデバイス110は、仮想アシスタントアプリケーション116を起動し、仮想アシスタントアプリケーション116のユーザインターフェースを提示することができる。加えて、仮想アシスタントアプリケーション116は、複数の異なる候補入力モードから選択するための1つまたは複数の入力信号を取得することができる。各候補入力モードは、他の各候補入力モードの他の各入力タイプとは異なる入力タイプのものであり得る。候補入力モードは、画像タイプの画像入力モードおよびオーディオタイプのオーディオ入力モードを含むことができる。画像入力モードは、仮想アシスタントアプリケーションへの入力のためのピクセルデータを受信することができる。同様に、オーディオ入力モードは、仮想アシスタントアプリケーションのためのオーディオ入力を受信することができる。
【００２５】
候補入力モードはまた、2つ以上のタイプ(たとえば、ピクセルデータとオーディオデータ、またはオーディオデータとテキストデータ)の入力を受信する組合せ入力モードを含むことができる。上記で説明されたように、入力モードは、たとえば、規則のセットまたは機械学習モデルを使用して、入力信号のうちの1つまたは複数に基づいて選択され得る。
【００２６】
入力信号の各々は、他の各入力信号の他の各入力タイプとは異なる入力タイプのものであり得る。たとえば、入力タイプは、画像タイプおよびオーディオタイプを含むことができる。画像タイプの入力信号は、モバイルデバイスのカメラによってキャプチャされた、たとえば、モバイルデバイスが仮想アシスタントアプリケーションを起動するという要求を検出した後でキャプチャされた1つまたは複数の画像に対するピクセルデータであり得る。ピクセルデータは、各画像に対するそれぞれのピクセルデータセットを含むことができる。各ピクセルデータセットは、特定の時点のカメラのビューファインダのピクセルを表すことができる。各ピクセルデータセット内のピクセルデータは、カメラのビューファインダの各ピクセルの視覚特性(たとえば、色、明度、輝度など)を指定するデータを含むことができる。
【００２７】
オーディオタイプの入力信号は、モバイルデバイスのマイクロフォンによってキャプチャされたオーディオ入力のオーディオデータであり得る。たとえば、オーディオデータは、オーディオ入力が話し言葉を含む場合、オーディオ入力における話し言葉を表すテキストを含むことができる。たとえば、仮想アシスタントアプリケーション(または別のアプリケーション)は、オーディオトランスクリプション技法を使用してオーディオデータをテキストに転換することができる。
【００２８】
仮想アシスタントアプリケーション116は、入力信号に基づいて入力モードを選択する入力モード選択器117を含む。仮想アシスタントアプリケーション116は、仮想アシスタントアプリケーション116が起動されたときに、信号を取得するのを開始することができる。たとえば、仮想アシスタントアプリケーション116は、仮想アシスタントアプリケーション116が起動されたときに、マイクロフォン112からオーディオ入力を取得し、カメラ111からビューファインダ用のピクセルデータを取得するのを開始することができる。入力モード選択器117は、入力モード選択器117が入力モードを選択するのに十分な情報を有するまで、これらの信号を監視することができる。たとえば、入力モード選択器117は、入力モード選択器117がどの入力モードを選択するかに関する決定を行うのに十分なデータを取得するまで、オーディオのストリーム、画像のストリーム用のピクセルデータ、および/またはその他の信号を監視することができる。
【００２９】
十分なデータが取得されたかどうかの判定は、オーディオ入力においてクエリが検出されるかどうか、ビューファインダ用のピクセルデータにおいてオブジェクト、オブジェクトのクラスが検出されるかどうか、オブジェクトが認識される(たとえば、実際のオブジェクトが識別される)かどうか、ユーザに対するモバイルデバイスのポジションが判定され得るかどうか、またはこれらの信号のうちの1つもしくは複数の組合せに基づき得る。いくつかの実装形態では、入力モード選択器117は、これらの信号のうちの1つまたは複数に基づいて候補入力モードの信頼スコアを判定する。信頼スコアがしきい値を満たすかまたはしきい値を超える場合、入力モード選択器117は候補入力モードを選択することができる。
【００３０】
仮想アシスタントアプリケーション116は、マイクロフォン112からオーディオ入力を受信し、(オーディオが話し言葉を含む場合)オーディオをテキストに変換し、テキストを仮想アシスタントアプリケーション116に提供することができる、音声認識器119を含む。次いで、仮想アシスタントアプリケーション116は、テキストを(単独でまたは他の信号と組み合わせて)使用して、入力モードを選択することができる。
【００３１】
いくつかの実装形態では、入力モード選択器117は、音声認識器119によって出力されたテキストがクエリを含むかどうかに基づいて、入力モードを選択することができる。たとえば、入力モード選択器117は、テキストをクエリのセット(たとえば、1人または複数のユーザから仮想アシスタントアプリケーションによって受信された前のクエリ、または定義されたクエリのセット)と比較することができる。テキストがクエリと一致する場合、入力モード選択器117は、ユーザに提示すべきコンテンツを識別するために、オーディオ入力モードを選択し、テキストを使用することができる。別の例では、入力モード選択器117は、テキストがクエリを含む尤度を判定するために、言語モデルを使用する。言語モデルは、クエリのセットを使用して、たとえば、どのテキストがクエリであり、どのテキストがクエリではないかを指定するラベル付きのトレーニングデータを使用して、トレーニングされ得る。言語モデルは、入力テキストに基づいて、入力テキストがクエリを含む尤度を出力することができる。
【００３２】
入力モード選択器117は、入力モードを選択するために、テキストがクエリを含むかどうかを指定するデータを単独でまたは他の信号と組み合わせて使用することができる。テキストがクエリを含む場合、ユーザがユーザの音声入力に基づいてコンテンツを要求している可能性がより高く、ユーザの音声入力はテキストに変換されている。したがって、入力モード選択器117は、テキストがクエリを含むときにユーザに提示すべきコンテンツを選択するために、オーディオ入力モードを選択し、テキストを使用することがある。
【００３３】
入力モード選択器117は、カメラ111のビューファインダ用のピクセルデータに基づいて、入力モードを選択することができる。仮想アシスタントアプリケーション116は、仮想アシスタントアプリケーション116が起動された後にカメラ111からピクセルデータを取得することができる。たとえば、仮想アシスタントアプリケーション116は、ピクセルデータセットのストリームを取得することができる。各ピクセルデータセットは、特定の時点のビューファインダのピクセルを表すことができる。各ピクセルデータセット内のピクセルデータは、ビューファインダの各ピクセルの視覚特性(たとえば、色、明度、輝度など)を指定するデータを含むことができる。
【００３４】
いくつかの実装形態では、入力モード選択器117は、ピクセルの全体的な輝度に基づいて、入力モードを選択する。たとえば、全体的な輝度が低い(たとえば、しきい値未満である)場合、ユーザは夜間に屋外にいるかまたは暗い位置にいることがあり、その場合、ユーザがカメラ111のビューファインダ内で検出され得るものに基づいてコンテンツを要求している可能性は低い。しかしながら、ピクセルの全体的な輝度が高い(たとえば、しきい値よりも大きい)場合、ユーザは昼間に屋外にいるかまたは十分に明るい部屋にいることがあり、その場合、ユーザはカメラ111のビューファインダ内の情報を取得しようと試みていることがある。ピクセルデータセットの全体的な輝度は、ピクセルデータセット内の各ピクセルの視覚特性の組合せ(たとえば、ピクセルデータセット内のピクセルのすべてにわたる輝度値の平均)に基づいて判定され得る。
【００３５】
入力モード選択器117は、ビューファインダ内で(たとえば、ピクセルデータセットのうちの1つまたは複数内で)オブジェクトが検出されるかどうかと、検出される場合には、オブジェクトまたはオブジェクトのクラスの識別情報とに基づいて、入力モードを選択することができる。たとえば、仮想アシスタントアプリケーション116は、ピクセルデータ(または画像)内のオブジェクトを検出し、認識(たとえば、識別)しようと試みるオブジェクト認識器120を含むことができる。オブジェクト認識器120は、エッジ検出技法および/または他のオブジェクト認識技法を使用して、人間、バーコード、ランドマーク、絵画、車両、および/または他のタイプのオブジェクトなどの様々なオブジェクトを検出することができる。
【００３６】
いくつかの実装形態では、オブジェクト認識器120は、ピクセルデータセットがオブジェクトの1つまたは複数の特定のクラス(たとえば、カテゴリ)におけるオブジェクトを含むかどうかを判定する粗分類器を含む。たとえば、粗分類器は、実際のオブジェクトの認識の有無にかかわらず、ピクセルデータセットが特定のクラスのオブジェクトを含むことを検出することがある。
【００３７】
粗分類器は、画像がオブジェクトのクラスを示す1つまたは複数の特徴を含むか否かに基づいて、オブジェクトのクラスの存在を検出することができる。粗分類器は、オブジェクトのクラス内のオブジェクトの存在を検出するために、低計算解析を実施する軽量モデルを含むことができる。たとえば、粗分類器は、画像がオブジェクトのクラス内に入るオブジェクトを示すかどうかを判定するために、オブジェクトの各クラスに対して、画像に示された視覚特徴の限定されたセットを検出することができる。特定の例では、粗分類器は、画像が以下のクラス、すなわち、テキスト、バーコード、ランドマーク、メディアオブジェクト(たとえば、アルバムカバー、映画ポスターなど)、またはアートワークオブジェクト(たとえば、絵画、彫刻など)のうちの1つまたは複数に分類されるオブジェクトを示すかどうかを検出することができる。バーコードの場合、粗分類器は、画像が異なる幅を有する平行線を含むかどうかを判定することができる。
【００３８】
いくつかの実装形態では、粗分類器は、画像の視覚特徴に基づいて画像を分類するために、トレーニングされた機械学習モデル(たとえば、畳み込みニューラルネットワーク)を使用する。たとえば、機械学習モデルは、それぞれのクラスでラベル付けされたラベル付きの画像を使用してトレーニングされ得る。機械学習モデルは、画像をオブジェクトのクラスの特定のセットのうちの0個以上に分類するためにトレーニングされ得る。機械学習モデルは、画像の視覚特徴に関連するデータを入力として受信し、分類をオブジェクトのクラスの特定のセット内のオブジェクトのクラスのうちの0個以上に出力することができる。
【００３９】
粗分類器は、画像内でオブジェクトのクラスが検出されたかどうかを指定するデータを出力することができる。粗分類器はまた、画像内でオブジェクトのクラスの存在が検出されたという信頼度を示す信頼値、および/または、実際のオブジェクト、たとえば、エッフェル塔が画像に示されているという信頼度を示す信頼値を出力することができる。
【００４０】
オブジェクト認識器120は、入力モード選択器117に、ピクセルデータセット内でオブジェクトが検出されたかどうかを指定するデータと、オブジェクトが認識された場合には、認識されたオブジェクトを識別するデータとを提供することができる。粗分類器が使用されるとき、オブジェクト認識器120は、入力モード選択器117に、オブジェクトのクラスのうちの少なくとも1つ内でオブジェクトの存在が検出されたかどうかを指定するデータと、検出された場合には、検出されたクラスとを提供することができる。上記で説明されたように、仮想アシスタントアプリケーション116は、ピクセルデータセットのストリームを受信することができる。この例では、オブジェクト認識器120は、各ピクセルデータセットを評価し、ストリーム内のピクセルデータセットの各々(またはピクセルデータセットの少なくとも一部分)について、このデータを入力モード選択器117に提供することができる。
【００４１】
入力モード選択器117は、1つまたは複数のピクセルデータセットがオブジェクトを含むかどうか、認識された実際のオブジェクト、および/またはピクセルデータセット内で検出されたオブジェクトのクラスに基づいて、入力モードを選択することができる。たとえば、(ビューファインダのピクセルデータセットに基づいて)ビューファインダ内でオブジェクトが検出される場合、ビューファインダ内に検出可能なオブジェクトがない場合よりも、ユーザがビューファインダ内にあるものに基づいてコンテンツを要求している可能性がより高い。したがって、ピクセルデータ内でオブジェクトまたはオブジェクトのクラスが検出される場合、入力モード選択器117は画像入力モードを選択することができる。
【００４２】
入力モード選択器117は、特定のオブジェクトまたはオブジェクトのクラスが検出される場合、他の入力モードではなく、画像入力モードを選択することができる。たとえば、ランドマークまたは有名な絵画が検出される場合、木製の床または砂が検出される場合よりも、ユーザがそのランドマークまたは有名な絵画についてのコンテンツを要求している可能性がより高い。
【００４３】
入力モード選択器117はまた、たとえば、ストリーム内のピクセルデータセットのシーケンスに基づいて、入力モードを選択することができる。たとえば、ピクセルデータセット内で認識されたオブジェクトが短い時間期間(たとえば、2〜5秒)にわたって変化する場合、ユーザがモバイルデバイス110をあちこちに動かしており、特定のオブジェクトについてのコンテンツを取得しようとしていない可能性があり得、オーディオ入力がクエリを含む場合、オーディオ入力モードが選択され得る。しかしながら、ピクセルデータセットのシーケンス内で同じオブジェクトが認識される場合、ユーザがオブジェクトについてのコンテンツを要求している可能性がより高く、画像入力モードが選択され得る。
【００４４】
入力モード選択器117はまた、たとえば、ユーザに対するモバイルデバイス110の位置および/またはモバイルデバイス110の配向に基づいて、入力モードを選択することができる。たとえば、モバイルデバイス110がユーザまたはユーザの顔に近い(たとえば、しきい値距離内)場合、ユーザがビューファインダを見ていて、ビューファインダ内のオブジェクトについてのコンテンツを要求している可能性があり、画像入力モードが選択され得る。モバイルデバイスがユーザまたはユーザの顔から遠い(たとえば、しきい値距離を超えて離れている)場合、ユーザがビューファインダを見ている可能性はより低く、オーディオ入力モードが選択され得る。
【００４５】
いくつかの実装形態では、入力モード選択器117は、(たとえば、仮想アシスタントアプリケーションを起動するという要求が受信される前のしきい値時間内の)最近の動きに基づいて、モバイルデバイス110がユーザの顔に近いかどうかを判定することができる。たとえば、入力モード選択器117は、たとえば、連続したストリームにおいて、モバイルデバイス110の動きを記述する加速度計113および/またはジャイロスコープ114からデータを取得することができる。入力モード選択器117は、要求が受信される前のしきい値時間内でモバイルデバイス110が上方に(たとえば、少なくともしきい値距離)動かされたかどうかを判定することができる。動かされた場合、入力モード選択器117は、モバイルデバイス110がユーザの顔に近い可能性があると判定することができる。同様に、モバイルデバイス110が下方に少なくともしきい値距離動かされた場合、モバイルデバイスはユーザの顔に近くない可能性がある。
【００４６】
いくつかの実装形態では、入力モード選択器117は、オーディオ入力に基づいて、モバイルデバイス110がユーザの顔に近いかどうかを判定することができる。たとえば、入力モード選択器117は、オーディオ入力において検出された音声入力の強度に基づいて、モバイルデバイス110がユーザの顔に近いかどうかを判定することができる。音声入力が少なくともしきい値強度である場合、入力モード選択器117は、モバイルデバイス110がユーザの顔に近いと判定することができる。
【００４７】
入力モード選択器117はまた、地面に対するモバイルデバイス110の配向またはモバイルデバイス110のアングルに基づいて、入力モードを選択することができる。入力モード選択器117は、加速度計113および/またはジャイロスコープ114から受信されたデータに基づいて、モバイルデバイス110の配向またはアングルを判定することができる。カメラ111が水平にまたはユーザから上方に向けられているようにモバイルデバイス110が配向される場合、ユーザがオブジェクトに関連するコンテンツを取得するためにオブジェクトにカメラを向けていることを示すことがあり、画像入力モードが選択され得る。カメラ111がユーザから下方に向けられているようにモバイルデバイス110が配向される場合、ユーザがオブジェクトにカメラを向けるのではなくモバイルデバイス110に話しかけていることを示すことがあり、オーディオ入力モードが選択され得る。
【００４８】
入力モード選択器117はまた、モバイルデバイス110の位置、たとえば、モバイルデバイス110の地理的位置に基づいて、入力モードを選択することができる。たとえば、モバイルデバイス110は、モバイルデバイス110の地理的位置を判定する全地球測位システム(GPS)センサーを含むことができる。入力モード選択器117は、モバイルデバイス110が位置する建物、建物のタイプ、屋外エリア(たとえば、公園、ランドマーク、記念碑)、または他のエリアを判定するために、地理的位置を使用することができる。たとえば、入力モード選択器117は、どの建物のタイプまたはエリアにモバイルデバイス110が位置するかを判定するために、モバイルデバイス110のGPS座標を既知の位置のGPS座標と比較することができる。ユーザは、一定のタイプの位置における(たとえば、美術館における、ランドマークにおける、など)音声よりもオブジェクトの画像に基づいてコンテンツを要求する可能性がより高い場合がある。モバイルデバイス110がこれらの位置のうちの1つに(またはその位置からのしきい値距離内に)あるとき、入力モード選択器117は画像入力モードを選択することができる。ユーザが音声要求を使用してコンテンツを要求する可能性がより高いタイプの位置にモバイルデバイス110が位置する場合、入力モード選択器117はオーディオ入力モードを選択することができる。
【００４９】
入力モード選択器117は、前の信号に基づいた入力モードについてのユーザの履歴または選好に基づいて、入力モードを選択することができる。たとえば、ユーザは、信号に関連する特定の状況に対してユーザがどの入力モードを好むかを選択することができる。特定の例では、モバイルデバイスが上向きのアングルを向いているとき、ビューファインダ内でオブジェクトの特定のクラスが検出されるとき、またはユーザが特定の句を話すとき、ユーザは画像入力モードを選択することがある。信号がこれらの状況のうちの1つと一致する場合、入力モード選択器117は画像入力モードを選択することができる。
【００５０】
別の例では、入力モード選択器117は、信号の様々な値についてのユーザによって選択された入力モードの履歴を維持することができる。たとえば、入力モード選択器117は、ユーザのために、個々の各信号または信号の各組合せの各値についてユーザが各入力モードを選択する回数を維持することができる。信号が特定の値を有するかまたは特定の範囲内にあるときに、ユーザが1つの入力モードをその他の入力モードよりも頻繁に選択する場合、入力モード選択器117は、信号がその特定の値または値の範囲を有するときに、当該の1つの入力モードを選択することができる。たとえば、全体的なピクセル輝度がしきい値よりも大きいときにユーザが画像入力モードを選択する場合、入力モード選択器117は、ビューファインダのピクセルデータセットの全体的な輝度値がしきい値よりも大きいときに画像入力モードを選択することができる。
【００５１】
入力モード選択器117は、仮想アシスタントアプリケーションが起動されるときに複数の信号を取得することができるので、適切な入力モードの選択が困難である場合がある。いくつかの実装形態では、入力モード選択器117は、信号に基づいて入力モードを選択するための規則のセットまたは他の論理を処理する。一例では、規則は、信号の階層または相対的重要性を指定することができる。たとえば、オブジェクトの検出は、モバイルデバイス110の位置または配向よりも高い重みを有してもよい。この例では、ピクセルデータ内でオブジェクトが検出される場合、入力モード選択器117は、モバイルデバイス110のポジションまたは配向にかかわらず、画像入力モードを選択することができる。
【００５２】
入力モード選択器117は、入力モードを選択するために、規則を処理することができる。たとえば、第1の規則は、オブジェクトが検出される場合に画像入力モードが選択されるべきであることを指定してもよい。検出されない場合、第2の規則が処理されるべきである。第2の規則は、オーディオ入力がクエリを含む場合にオーディオ入力モードが選択されるべきであることを指定してもよい。含まない場合、第3の規則が処理されるべきであり、入力モードの選択が選択されるまで以下同様である。
【００５３】
いくつかの実装形態では、入力モード選択器117は、入力モードを選択するために、トレーニングされた機械学習モデルを使用する。機械学習モデルは、信号の複数の異なる組合せの各々についてどの入力モードが選択されるべきかを指定する、ラベル付きのトレーニングデータを使用して、トレーニングされ得る。入力モード選択器117によって取得される様々な信号は、入力として機械学習モデルに提供され得る。機械学習モデルの出力は、入力に基づいた入力モードのうちの1つの選択である。
【００５４】
いくつかの実装形態では、入力モード選択器117は、オーディオ入力と画像入力の両方に基づいた入力モードを選択することができる。たとえば、入力モード選択器117は、オーディオから変換されたテキストがビューファインダのピクセルデータにおいて認識されたオブジェクトに関連するときに、そのような入力モードを選択することができる。入力モード選択器117は、テキストが同じオブジェクト、同じオブジェクトのクラス、またはオブジェクトの特性を参照するときに、テキストがオブジェクトに関連すると判定することができる。特定の例では、ユーザは、モバイルデバイス110のカメラ111を車に向けながら、「この車はいくらですか」と話すことがある。入力モード選択器117は、両方の入力が車に関連すると判定し、オーディオ入力モードおよび画像入力モードを選択することができる。
【００５５】
入力モード選択器117が入力モードを選択した後、仮想アシスタントアプリケーション116は、入力モードについての入力をコンテンツ配信システム150にネットワーク140を介して送ることができる。たとえば、画像入力モードが選択される場合、仮想アシスタントアプリケーション116は、1つまたは複数のピクセルデータセットをコンテンツ配信システム150に送ることができる。ピクセルデータセットは、画像入力モードを選択するために使用されるビューファインダのピクセルデータおよび/または画像入力モードが選択された後にキャプチャされたピクセルデータセットを含むことができる。たとえば、仮想アシスタントアプリケーション116は最初に、画像入力モードを選択するために使用されるピクセルデータセットを送ることができる。その後ビューファインダが異なるオブジェクトを指している場合、仮想アシスタントアプリケーション116は、異なるオブジェクトについてのピクセルデータをコンテンツ配信システム150に送ることができる。したがって、仮想アシスタントアプリケーション116は、選択された入力モードに基づいて、入力をコンテンツ配信システム150に送信し得る。たとえば、選択された入力モードに関連付けられた入力のみが、コンテンツ配信システムに送信され得る。したがって、仮想アシスタントアプリケーション116は、コンテンツをユーザに提供するのに有用であるかつ/またはユーザからの入力として意図されている入力信号を判定し、コンテンツをユーザに提供するのに有用であると判定された入力信号のみを送信するために、入力信号を事前処理し得る。したがって、通信ネットワークを介した入力信号の送信は、有用な入力信号のみを送ることによって低減され得る。
【００５６】
同様に、仮想アシスタントアプリケーション116は、コンテンツ配信システム150に、オーディオ入力モードが選択される前および/または選択された後にキャプチャされたオーディオ入力から変換されたテキストを送ることができる。たとえば、オーディオ入力モードが選択された後に変換されたテキストが、オーディオ入力モードが選択される前にキャプチャされたオーディオ入力から変換されたテキストとは異なるクエリを含む場合、仮想アシスタントアプリケーション116は、異なるクエリを含むテキストをコンテンツ配信システム150に送ることができる。
【００５７】
コンテンツ配信システム150は、モバイルデバイス110から受信されたデータ(たとえば、ピクセルデータおよび/またはオーディオから変換されたテキスト)に基づいて、モバイルデバイス110においてユーザに提示するためのコンテンツを選択することができる。コンテンツ配信システム150は、1つまたは複数のフロントエンドサーバ152および1つまたは複数のバックエンドサーバ154を含む。フロントエンドサーバ152は、モバイルデバイス110からデータを受信し、データをバックエンドサーバ154に提供することができる。フロントエンドサーバ152はまた、データを受信したことに応答して、コンテンツをモバイルデバイス110に送ることができる。
【００５８】
バックエンドサーバ154は、モバイルデバイス110から受信されたデータに応答してモバイルデバイス110に提供するためのコンテンツを選択するコンテンツ選択エンジン156を含む。本明細書で使用される場合、エンジンという用語は、タスクのセットを実施するデータ処理装置を指す。コンテンツ選択エンジン156は、オブジェクトに関連するコンテンツ、ユーザによって要求され得る情報、音楽、ビデオ、画像、バーコードに関連する情報、および/または他の適切なコンテンツを記憶するコンテンツデータストレージユニット158(たとえば、1つまたは複数のハードドライブ、フラッシュメモリなど)からコンテンツを選択することができる。コンテンツ選択エンジン156は、コンテンツデータストレージユニット158に記憶されたコンテンツから、モバイルデバイス110から受信されたデータに最も関係がある1つまたは複数のコンテンツアイテムを選択することができる。
【００５９】
たとえば、モバイルデバイス110から受信されたピクセルデータがバーコードの画像を表す場合、コンテンツ選択エンジン156は、バーコードによって表されるオブジェクトを識別し、オブジェクトに関連するコンテンツ(たとえば、画像、タイトルなど)を選択することができる。ピクセルデータがランドマークの画像を表す場合、コンテンツ選択エンジン156は、ランドマークに関連するコンテンツ、たとえば、ランドマークの写真、ランドマークへの地図などを選択することができる。音声入力から変換されたテキストが特定の事実またはオブジェクトの特性についてのクエリ(たとえば、フロリダの4月の平均気温は何度ですか?)を含む場合、コンテンツ選択エンジン156は、コンテンツデータストレージユニット158に記憶されたデータから、この平均気温を識別することができる。
【００６０】
バックエンドサーバ154は、コンテンツ選択エンジン156によって選択されたコンテンツをフロントエンドサーバ152に提供することができる。フロントエンドサーバ152は、今度は、そのコンテンツを、コンテンツを選択するために使用されるデータが受信されたモバイルデバイス110に提供することができる。
【００６１】
仮想アシスタントアプリケーション116は、モバイルデバイス110においてユーザインターフェース122を生成し、更新し、提示するユーザインターフェース生成器118を含む。ユーザインターフェース122は、選択された入力モードに対するデータをコンテンツ配信システム150に送ったことに応答して、コンテンツ配信システム150から受信されたコンテンツを提示することができる。ユーザインターフェース122はまた、コンテンツ配信システム150に送られたデータ(またはデータの一部分)を提示することができる。たとえば、ユーザが仮想アシスタントアプリケーション116に質問をした場合、質問に対する答えを提供するユーザインターフェース122はまた、質問自体を含むことができる。このようにして、ユーザは、答えがユーザが行った質問に対する答えであることを確認する。同様に、コンテンツがカメラ111のビューファインダのピクセルデータに基づいて提供されている場合、ピクセルデータによって表される画像はユーザインターフェース122において提示され得る。これは同様の確認を提供する。
【００６２】
ユーザインターフェース生成器118は、選択された入力モードに基づいてユーザインターフェース122を選択かつ/または構成することができる。たとえば、画像入力モードが選択されるときに生成されるユーザインターフェースは、オーディオ入力モードが選択されるときに生成されるユーザインターフェースとは異なる(たとえば、異なるタイプのコンテンツを含む、異なるレイアウトを有する、異なるインターフェース制御を含む、など)ことがある。特定の例では、画像入力モード用のユーザインターフェースは、コンテンツを選択するために使用されるピクセルデータによって表される画像を含むことができるが、オーディオ入力モード用のユーザインターフェースは、ユーザのクエリおよびクエリに対する答えを提示するチャットインターフェースを含むことができる。
【００６３】
いくつかの実装形態では、入力モード選択器117および/またはユーザインターフェース生成器118は、モバイルデバイス110から離れて実装され得る。たとえば、入力モード選択器117および/またはユーザインターフェース生成器118は、コンテンツ配信システム150において実装され得る。そのような実装形態では、ユーザは、仮想アシスタントアプリケーション116がピクセルデータおよび/またはオーディオデータをコンテンツ配信システム150に送ることを可能にする機能を選択することができる。
【００６４】
いくつかの実装形態では、コンテンツ選択エンジン156は、モバイルデバイス110上で実装される。たとえば、仮想アシスタントアプリケーション116は、コンテンツ選択エンジン156と、コンテンツ、たとえば、コンテンツデータストレージユニット158よりも限定されたコンテンツのセットを記憶するコンテンツデータストレージユニットとを含むことができる。この例では、仮想アシスタントアプリケーション116は、仮想アシスタントアプリケーション116のコンテンツデータストレージユニット内のコンテンツを識別しようと試みることができる。適切ではないコンテンツが識別される場合、仮想アシスタントアプリケーション116はコンテンツ配信システム150からのコンテンツを要求することができる。このようにして、場合によっては、コンテンツ配信システム150からコンテンツを取得するよりも迅速に、コンテンツがユーザに提示され得る。
【００６５】
図2は、入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示するモバイルデバイスの例示的なスクリーンショット210、220、および230のシーケンスを示す。
【００６６】
第1のスクリーンショット210は、モバイルデバイスの例示的なロックスクリーン212を示す。上記で説明されたように、ロックスクリーン212は、モバイルデバイスへのアクセスを規制することができる。ロックスクリーン212はまた、情報をユーザに提示することができる。たとえば、ロックスクリーン212は、現在の日時214を提示する。
【００６７】
この例では、ユーザは、たとえば、特定の方向にタッチスクリーンをスワイプすることによって、モバイルデバイスにアクセスすることができる。こうすることで、モバイルデバイスのメインユーザインターフェースが開く。ロックスクリーン212はまた、仮想アシスタントアプリケーションのアイコン216を提示する。この例では、アイコン216は、マイクロフォンのシンボルを示す。しかしながら、アイコンはカメラのシンボル、マイクロフォンのシンボルとカメラのシンボルの両方、または仮想アシスタントアプリケーションの別の適切なシンボル(もしくは他の視覚要素)を提示することが可能である。
【００６８】
ユーザがアイコン216を上方(または別の適切な方向)にスワイプする場合、モバイルデバイスは、モバイルデバイスへのアクセスを可能にし、仮想アシスタントアプリケーションのユーザインターフェースを提示することができる。第2のスクリーンショット220は、仮想アシスタントアプリケーションの初期ユーザインターフェース222を提示している。この例では、初期ユーザインターフェース222は、オーディオ入力モード選択器制御223および画像入力モード選択器制御224を提示している。ユーザがオーディオ入力モード選択器制御223と対話する(たとえば、それを選択する)場合、仮想アシスタントアプリケーションは、ユーザに提示するためのコンテンツを選択するためにオーディオ入力を使用することができる。同様に、ユーザが画像入力モード選択器制御224と対話する(たとえば、それを選択する)場合、仮想アシスタントアプリケーション116は、ユーザに提示するためのコンテンツを選択するために画像入力(たとえば、カメラのビューファインダのピクセルデータ)を使用することができる。他の入力モードが利用可能である場合、初期ユーザインターフェース222は、ユーザが他の入力モードを選択することを可能にする選択器制御を含むことができる。
【００６９】
いくつかの実装形態では、初期ユーザインターフェース222は、仮想アシスタントアプリケーションがコンテンツを識別しようと試みていることを示すコンテンツまたはアニメーションを提示することができる。たとえば、初期ユーザインターフェース222は、ループでアニメ化するスローバーアニメーション、または仮想アシスタントアプリケーションがユーザに提示するためのコンテンツを識別中であることをシグナリングする別のアニメーションを提示することができる。
【００７０】
上記で説明されたように、仮想アシスタントアプリケーションは、ユーザがたとえばロックスクリーン212から仮想アシスタントアプリケーションを起動したことに応答して、入力モードを選択することができる。入力モードを選択するために、仮想アシスタントアプリケーションは、1つまたは複数の信号を取得することができる。この例では、仮想アシスタントアプリケーションは、オーディオ入力225、(たとえば、ピクセルデータの形態の)画像入力226、およびユーザの顔に対するモバイルデバイスの位置を指定する近接データ227を取得する。
【００７１】
オーディオ入力225は、テキストに変換され得る。この例では、オーディオ入力225は、「1961スーパーロードスターの速度はどれくらいでしたか?」という質問に変換されている。たとえば、ユーザは、仮想アシスタントアプリケーションに変換された質問をした場合がある。
【００７２】
画像入力226は、各ピクセルが同じ色を有する単色を有する画像を表す。たとえば、カメラは、地面、壁、または単色を有する何らかの他の表面に向けられていた場合がある。近接データ227は、(たとえば、仮想アシスタントアプリケーションが起動される前および/または起動されたときにモバイルデバイスが下方に動いていたことを示す、モバイルデバイスの動きデータに基づいて)モバイルデバイスがユーザの顔の下にあることを示す。
【００７３】
仮想アシスタントアプリケーションは、入力モードを選択するためにオーディオ入力225、画像入力226、および近接データ227を使用することができる。この例では、仮想アシスタントアプリケーションは、オーディオ入力におけるクエリ(たとえば、質問クエリ)を識別し、画像入力226内にオブジェクトがないと判定し、モバイルデバイスがユーザの顔に近くないと判定することができる。したがって、仮想アシスタントアプリケーションは、ユーザが画像入力226内の単色ではなく変換された質問に基づいてコンテンツを要求している可能性がより高いことをこれらの信号が示すので、オーディオ入力モードを選択することができる。
【００７４】
入力モードが選択された後、仮想アシスタントアプリケーションは、スクリーンショット230に示されるように、選択された入力モードからの入力を使用して選択されたコンテンツを提示するユーザインターフェース232を提示することができる。この例示的なスクリーンショット230では、ユーザインターフェース232は、質問および質問に対する答えを含むテキストボックス234を提示している。他の例では、質問および答えは、ユーザが音声またはテキストのいずれかを使用して他の質問をすることを可能にするチャットボックスにおいて提示され得る。
【００７５】
上記で説明されたように、ユーザインターフェースは、選択された入力モードに基づいて選択され得る。この例では、選択された入力モードはオーディオ入力モードであり、テキストベースのユーザインターフェースが選択された。ユーザインターフェースはまた、提示用に選択されるコンテンツに基づいて選択され得る。たとえば、ユーザの質問が「1961スーパーロードスターはどのような外観ですか」であった場合、1961スーパーロードスターの画像を提示するユーザインターフェースが選択され、ユーザに提示され得る。
【００７６】
例示的なユーザインターフェース232はまた、オーディオ入力モードが選択された入力モードであったことを示すために、オーディオ入力モード選択器制御223の周りにボックス236を提示する。オーディオ入力モードが選択された入力モードであったことを示すために、他の視覚インジケータも使用され得る。ユーザが画像入力モード選択器制御224を選択する場合、仮想アシスタントアプリケーションは、カメラから画像入力を取得するのを開始し、画像入力に基づいて提示すべきコンテンツを選択することができる。仮想アシスタントアプリケーションはまた、ユーザインターフェースを更新するか、または画像入力モード用のユーザインターフェースを生成することができる。
【００７７】
図3は、入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいて選択されたコンテンツを提示するモバイルデバイスの例示的なスクリーンショット310、320、および330の別のシーケンスを示す。第1のスクリーンショット310は、モバイルデバイスの例示的なロックスクリーン312を示す。ロックスクリーン312は、図2のロックスクリーン212と同じまたは同様であり得る。たとえば、ロックスクリーン312は、現在の日時314および仮想アシスタントアプリケーションのアイコン316を提示している。
【００７８】
第2のスクリーンショット320は、図2の初期ユーザインターフェース222と同じまたは同様であり得る、仮想アシスタントアプリケーションの初期のユーザインターフェース322を提示している。たとえば、初期ユーザインターフェース322は、オーディオ入力モード選択器制御323および画像入力モード選択器制御324を提示している。
【００７９】
上記で説明されたように、仮想アシスタントアプリケーションは、ユーザがたとえばロックスクリーン312から仮想アシスタントアプリケーションを起動したことに応答して、入力モードを選択することができる。入力モードを選択するために、仮想アシスタントアプリケーションは、1つまたは複数の信号、たとえば、オーディオ入力325、(たとえば、ピクセルデータの形態の)画像入力326、およびユーザの顔に対するモバイルデバイスの位置を指定する近接データ327を取得することができる。
【００８０】
この例では、オーディオ入力325は「彼女はあれをどこで買ったのかな」という質問に変換されており、画像入力326は、たとえば、車に向いていたカメラのビューファインダからのピクセルデータに基づいて、車の画像を表している。たとえば、ユーザは、車について友人と話している間、車にカメラを向けた場合がある。近接データ327は、(たとえば、仮想アシスタントアプリケーションが起動される前および/または起動されたときにモバイルデバイスが上方に動いていたことを示す、モバイルデバイスの動きデータに基づいて、かつ/あるいは、少なくともしきい値強度を有する音声を含むオーディオデータに基づいて)モバイルデバイスがユーザの顔くらいの高さにある(またはユーザの顔に近い)ことを示す。
【００８１】
仮想アシスタントアプリケーションは、入力モードを選択するためにオーディオ入力325、画像入力326、および近接データ327を使用することができる。この例では、仮想アシスタントアプリケーションは、変換されたテキスト内に識別可能なオブジェクトがないので、オーディオ入力325がクエリを含まないと判定することができる。仮想アシスタントアプリケーションはまた、(たとえば、オブジェクト検出技法を使用して)画像入力326がオブジェクトの画像または車の画像を表すと判定し、(たとえば、粗分類器を使用して)画像入力326が車両クラスにおけるオブジェクトの画像を表すと判定し、かつ/あるいは、(たとえば、オブジェクト認識技法を使用して)画像入力326が特定の車、たとえば、1961スーパーロードスターの画像を表すと判定することができる。
【００８２】
画像入力326がオブジェクトの画像を表し、モバイルデバイスがユーザの顔くらいの高さにあるかまたはユーザの顔に近いことを近接データ327が示し、オーディオ入力がクエリを含まないので、仮想アシスタントアプリケーションは画像入力モードを選択することができる。
【００８３】
入力モードが選択された後、仮想アシスタントアプリケーションは、スクリーンショット330に示されるように、選択された入力モードからの入力を使用して選択されたコンテンツを提示するユーザインターフェース332を提示することができる。この例示的なスクリーンショット330では、ユーザインターフェース332は、画像入力324によって表される画像334と、画像に示された車についての情報を含む情報ボックス335とを提示している。たとえば、仮想アシスタントアプリケーション(またはコンテンツ配信システム)は、画像内の車を認識し、ユーザインターフェース332において提示するための車に関連するコンテンツを選択することができる。この例では、車についての情報(たとえば、車の識別情報)が選択され、提示されている。他の例では、車の他の画像、車のビデオ、または車についての他の情報が選択され、提示され得る。オーディオ入力が車についての質問、または車についての質問(たとえば、あれは何色ですか?またはあの車は何年製ですか?)として分類され得る質問を含んでいた場合、仮想アシスタントアプリケーションは、質問に答えるコンテンツを選択することができる。
【００８４】
例示的なユーザインターフェース332はまた、画像入力モードが選択された入力モードであったことを示すために、画像入力モード選択器制御324の周りにボックス336を提示する。ユーザがオーディオ入力モード選択器制御323を選択する場合、仮想アシスタントアプリケーションは、マイクロフォンからオーディオ入力を取得するのを開始し、オーディオ入力に基づいて提示すべきコンテンツを選択することができる。仮想アシスタントアプリケーションはまた、ユーザインターフェースを更新するか、またはオーディオ入力モード用のユーザインターフェースを生成することができる。
【００８５】
図4は、仮想アシスタントアプリケーションのための入力モードを選択し、選択された入力モードを使用して受信された入力信号に基づいてコンテンツを提示するための例示的なプロセス400のフローチャートである。プロセス400の動作は、たとえば、図1のモバイルデバイス110などの1つまたは複数のデータ処理装置によって実施され得る。プロセス400の動作はまた、非一時的コンピュータ可読媒体上に記憶された命令として実装され得る。命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実施させる。
【００８６】
モバイルデバイスのロックスクリーンから仮想アシスタントアプリケーションを起動するという要求を指定する要求データが受信される(402)。モバイルデバイスは、ロックスクリーンにおいて(またはモバイルデバイスがロックされている間に)、ユーザがモバイルデバイスをロック解除して仮想アシスタントアプリケーションを起動することをモバイルデバイスに要求していることを示す特定のアクション、ジェスチャ、または口頭のコマンドを検出することができる。たとえば、モバイルデバイスは、ロックスクリーン上に提示されたアイコンのユーザスワイプを検出することができる。
【００８７】
仮想アシスタントのための入力信号が取得される(404)。入力信号の各々は、他の各入力信号の他の各入力タイプとは異なる入力タイプのものであり得る。たとえば、入力タイプは、画像タイプおよびオーディオタイプを含むことができる。画像タイプの入力信号は、モバイルデバイスのカメラによってキャプチャされた、たとえば、モバイルデバイスが仮想アシスタントアプリケーションを起動するという要求を検出した後にキャプチャされた1つまたは複数の画像に対するピクセルデータであり得る。ピクセルデータは、各画像に対するそれぞれのピクセルデータセットを含むことができる。各ピクセルデータセットは、特定の時点のカメラのビューファインダのピクセルを表すことができる。各ピクセルデータセット内のピクセルデータは、カメラのビューファインダの各ピクセルの視覚特性(たとえば、色、明度、輝度など)を指定するデータを含むことができる。
【００８８】
オーディオタイプの入力信号は、モバイルデバイスのマイクロフォンによってキャプチャされたオーディオ入力のオーディオデータであり得る。たとえば、オーディオデータは、オーディオ入力が話し言葉を含む場合、オーディオ入力における話し言葉を表すテキストを含むことができる。たとえば、仮想アシスタントアプリケーション(または別のアプリケーション)は、オーディオトランスクリプション技法を使用してオーディオデータをテキストに転換することができる。
【００８９】
取得された信号はまた、ユーザまたはユーザの顔に対するモバイルデバイスの位置を示す近接タイプの入力を含むことができる。近接タイプの入力信号は、モバイルデバイスとユーザ(またはユーザの顔)との間の距離と、ユーザ(またはユーザの顔)に対するモバイルデバイスの相対位置、たとえば、上方、同じ高さ、下方、特定の側になどとを指定することができる。
【００９０】
取得された信号はまた、地理的位置タイプの入力を含むことができる。地理的位置タイプの入力信号は、モバイルデバイスの地理的位置を含むことができる。たとえば、仮想アシスタントアプリケーションは、モバイルデバイスのGPSセンサーからGPS座標を取得することができる。仮想アシスタントアプリケーションは、たとえば、モバイルデバイスが位置する建物のタイプまたはエリア(たとえば、美術館、公園、スタジアム、住宅、小売店など)を判定するために、座標と位置のインデックスとを使用することができる。
【００９１】
取得された信号は、環境タイプの入力を含むことができる。環境タイプの入力は、照明、雑音に関連する信号および/または他の環境信号を含むことができる。たとえば、モバイルデバイスは、モバイルデバイスの位置における周囲光の量を検出する光センサーおよび/またはモバイルデバイスの位置における周囲雑音の量を検出する周囲雑音センサーを含むことができる。別の例では、仮想アシスタントアプリケーション(または別のアプリケーション)は、ピクセルデータを使用して周囲照明の量を判定するかつ/またはオーディオデータを使用して周囲雑音の量を判定することができる。
【００９２】
取得された信号は、前の信号に基づいた入力モードについてのユーザの履歴または選好を含むことができる。たとえば、ユーザが以前に、画像内でオブジェクトが認識されたときに好ましい入力モードとして仮想アシスタントのために画像モードを選択した場合、このデータが、入力モードを選択するときに仮想アシスタントアプリケーションによって取得され得る。
【００９３】
仮想アシスタントアプリケーションのための入力モードが、1つまたは複数の信号に基づいて複数の候補入力モードから選択される(406)。各候補入力モードは、他の各候補入力モードの他の各入力タイプとは異なる入力タイプのものであり得る。候補入力モードは、画像タイプの画像入力モードおよびオーディオタイプのオーディオ入力モードを含むことができる。画像入力モードは、仮想アシスタントアプリケーションへの入力のためのピクセルデータを受信することができる。同様に、オーディオ入力モードは、仮想アシスタントアプリケーションのためのオーディオ入力を受信することができる。
【００９４】
候補入力モードはまた、2つ以上のタイプ(たとえば、ピクセルデータとオーディオデータ、またはオーディオデータとテキストデータ)の入力を受信する組合せ入力モードを含むことができる。上記で説明されたように、入力モードは、たとえば、規則のセットまたは機械学習モデルを使用して、入力信号のうちの1つまたは複数に基づいて選択され得る。
【００９５】
一例では、入力モードは、画像入力モードを使用して受信された画像に対するピクセルデータに基づいて、画像が1つまたは複数の認識されたオブジェクトを含むかどうかを判定し、オーディオ入力モードを使用して受信されたオーディオデータに基づいて、オーディオが1つまたは複数の認識された話し言葉を含むかどうかを判定することによって選択される。入力モードは、画像が1つまたは複数の認識されたオブジェクトを含むかどうかと、オーディオが1つまたは複数の認識された話し言葉を含むかどうかとに基づいて判定される。たとえば、画像が1つまたは複数の認識されたオブジェクトを含み、オーディオが話し言葉を含まない場合、ユーザが画像内のオブジェクトに関心がある可能性がより高く、画像入力モードが選択され得る。同様に、オーディオが1つまたは複数の認識された話し言葉を含み、画像が認識されたオブジェクトを含まない場合、ユーザが話し言葉に関連するコンテンツを受信することに関心がある可能性がより高い。
【００９６】
画像が1つまたは複数の認識されたオブジェクトを含み、オーディオが1つまたは複数の認識されたオブジェクトに関連する1つまたは複数の話し言葉を含む場合、ユーザは、認識されたオブジェクトについての質問をしているか、またはユーザが求めているオブジェクトに関連するコンテンツを指定していることがある。画像が1つまたは複数の認識されたオブジェクトを含み、オーディオが1つまたは複数の認識されたオブジェクトに関連する1つまたは複数の話し言葉を含む場合、仮想アシスタントアプリケーションによって提示するためのコンテンツを識別する際に使用するために、オーディオデータとピクセルデータの両方を使用する組合せ入力モードが選択され得る。
【００９７】
コンテンツがモバイルデバイスのユーザに提示される(408)。提示されるコンテンツは、選択された入力モードを使用して受信された入力信号に基づいて選択され得る。たとえば、オーディオ入力モードが選択される場合、コンテンツは、オーディオ入力のオーディオデータ(たとえば、オーディオ入力のトランスクリプション)に基づいて選択され得る。画像入力モードが選択される場合、コンテンツは、1つまたは複数の画像に対するピクセルデータにおいて認識された1つまたは複数のオブジェクトに基づいて選択され得る。画像/オーディオ入力モードが選択される場合、コンテンツは、画像入力とオーディオ入力の組合せに基づいて選択され得る。コンテンツは、リモートシステム、たとえば、コンテンツ配信システムによって選択され、提示のためにモバイルデバイスに送られ得る。
【００９８】
本明細書で説明される主題および機能的動作の実施形態は、デジタル電子回路において、有形に具現化されるコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示される構造およびそれらの構造的等価物を含むコンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するためにまたはデータ処理装置の動作を制御するために有形の非一時的プログラム担体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成される機械生成の電気信号、光信号、または電磁信号上で符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得る。
【００９９】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。
【０１００】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか、またはそれらとして説明されることもある)は、コンパイル型言語もしくはインタープリタ型言語または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれる場合があり、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む、任意の形態で展開される場合がある。コンピュータプログラムは、必ずしも必要ではないが、ファイルシステム内のファイルに対応してもよい。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語文書に記憶された1つもしくは複数のスクリプトを保持するファイルの一部分に、当該プログラム専用の単一のファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトにあるかもしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
【０１０１】
本明細書で説明されるプロセスおよび論理フローは、入力データを操作して出力を生成することによって機能を実施するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPGPU(汎用グラフィックス処理ユニット)によって実施される場合があり、装置はまた、専用論理回路として実装される場合がある。
【０１０２】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理ユニットを含み、例として、それらに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、あるいは、それらからデータを受信することもしくはそれらにデータを転送することまたはその両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込まれる場合がある。
【０１０３】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されるか、または専用論理回路に組み込まれる場合がある。
【０１０４】
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実装され得る。ユーザとの対話を提供するために、他の種類のデバイスも使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答して、そのウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。
【０１０５】
本明細書で説明される主題の実施形態は、たとえば、データサーバとしてのバックエンドコンポーネントを含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書で説明される主題の一実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態の媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、たとえば、インターネットを含む。
【０１０６】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いとのクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【０１０７】
本明細書は多数の具体的な実装形態の詳細を含んでいるが、これらは、任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々にまたは任意の適切なサブコンビネーションで実装され得る。さらに、特徴はいくつかの組合せにおいて働くものとして上記で説明されることがあり、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されることがあり、特許請求される組合せは、サブコンビネーションまたはサブコンビネーションの変形形態を対象としてもよい。
【０１０８】
同様に、動作は特定の順序で図面に示されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序でまたは逐次順序で実施されること、またはすべての図示された動作が実施されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上記で説明された実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品に一緒に統合されるかまたは複数のソフトウェア製品にパッケージされ得ることが理解されるべきである。
【０１０９】
主題の特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲において列挙されるアクションは、異なる順序で実施され、それでも望ましい結果を達成することができる。一例として、添付の図に示されたプロセスは、望ましい結果を達成するために、示された特定の順序または逐次順序を必ずしも必要としない。いくつかの実装形態では、マルチタスクおよび並列処理が有利であり得る。
【符号の説明】
【０１１０】
100  環境
110  モバイルデバイス
111  カメラ
112  マイクロフォン
113  加速度計
114  ジャイロスコープ
116  仮想アシスタントアプリケーション
117  入力モード選択器
118  ユーザインターフェース生成器
119  音声認識器
120  オブジェクト認識器
122  ユーザインターフェース
140  ネットワーク
150  コンテンツ配信システム
152  フロントエンドサーバ
154  バックエンドサーバ
156  コンテンツ選択エンジン
158  コンテンツデータストレージユニット
210  スクリーンショット、第1のスクリーンショット
220  スクリーンショット、第2のスクリーンショット
230  スクリーンショット
212  ロックスクリーン
214  現在の日時
216  アイコン
222  初期ユーザインターフェース
223  オーディオ入力モード選択器制御
224  画像入力モード選択器制御
225  オーディオ入力
226  画像入力
227  近接データ
234  テキストボックス
236  ボックス
310  スクリーンショット、第1のスクリーンショット
320  スクリーンショット、第2のスクリーンショット
330  スクリーンショット
312  ロックスクリーン
314  現在の日時
316  アイコン
322  初期ユーザインターフェース
323  オーディオ入力モード選択器制御
324  画像入力モード選択器制御
325  オーディオ入力
326  画像入力
327  近接データ
332  ユーザインターフェース
334  画像
335  情報ボックス
336  ボックス
【図１】
2021523487.tif 000003
【図２】
2021523487.tif 000004
【図３】
2021523487.tif 000005
【図４】
2021523487.tif 000006
【国際調査報告】
2021523487.tif 000007
2021523487.tif 000008
2021523487.tif 000009