(58)【調査した分野】(Int.Cl.,DB名)
前記少なくとも1つの画像が前記少なくとも1つの画像によって捉えられる物体に関連した要求に関連すると判定するステップが、前記クライアント装置または前記追加クライアント装置からの1つまたは複数の信号に基づいて決定されるユーザコンテキストに基づく、請求項1に記載の方法。
前記少なくとも1つの画像が前記少なくとも1つの画像によって捉えられる物体に関連した要求に関連すると判定するステップが、前記クライアント装置のユーザインタフェース入力デバイスまたは前記追加クライアント装置を介して受け取られる自然言語入力に基づく、請求項1に記載の方法。
前記少なくとも1つの画像が前記少なくとも1つの画像によって捉えられる物体に関連した要求に関連すると判定する際に、前記プロセッサのうちの1つまたは複数が、前記クライアント装置または前記追加クライアント装置からの1つまたは複数の信号に基づいて決定されるユーザコンテキストに基づいて、前記少なくとも1つの画像が前記少なくとも1つの画像によって捉えられる物体に関連した要求に関連すると判定することをする、請求項13に記載のシステム。
前記少なくとも1つの画像が前記少なくとも1つの画像によって捉えられる物体に関連した要求に関連すると判定する際に、前記プロセッサのうちの1つまたは複数が、前記クライアント装置のユーザインタフェース入力デバイスまたは前記追加クライアント装置を介して受け取られる自然言語入力に基づいて、前記少なくとも1つの画像が前記少なくとも1つの画像によって捉えられる物体に関連した要求に関連すると判定することをする、請求項13に記載のシステム。
【発明を実施するための形態】
【0027】
図1は、本明細書に開示される技法が実装できる環境例を例示する。環境例は、複数のクライアント装置106
1-Nおよび自動アシスタント120を含む。自動アシスタント120がクライアント装置106
1-Nと別個として
図1に例示されるが、一部の実装例では、自動アシスタント120の全てまたは諸態様がクライアント装置106
1-Nの1つまたは複数によって実装されてよい。例えば、クライアント装置106
1が自動アシスタント120の1つまたは複数の態様の1つまたは複数のインスタンスを実装してよく、そしてクライアント装置106
Nも自動アシスタント120のそれらの1つまたは複数の態様の別個のインスタンスを実装してよい。自動アシスタント120の1つまたは複数の態様がクライアント装置106
1-Nから遠隔の1つまたは複数のコンピューティング装置によって実装される実装例では、クライアント装置106
1-Nおよび自動アシスタント120のそれらの態様は、ローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)(例えば、インターネット)などの1つまたは複数のネットワークを介して通信してよい。
【0028】
クライアント装置106
1-Nとしては、例えば、デスクトップコンピューティング装置、ラップトップコンピューティング装置、タブレットコンピューティング装置、移動電話コンピューティング装置、ユーザの車両のコンピューティング装置(例えば、車内通信システム、車内エンターテイメントシステム、車内ナビゲーションシステム)、スタンドアロン対話型スピーカ、スマートカメラ、および/またはコンピューティング装置を含むユーザのウェアラブル機器(例えば、コンピューティング装置を有するユーザの携帯時計、コンピューティング装置を有するユーザの眼鏡、仮想もしくは拡張現実感コンピューティング装置)の1つまたは複数を含んでよい。追加および/または代替のクライアントコンピューティング装置が設けられてよい。
【0029】
一部の実装例では、所与のユーザが、コンピューティング装置の協調「エコシステム」を集合的に形成する複数のクライアント装置を活用する自動アシスタント120と通信してよい。一部のそのような実装例では、自動アシスタント120は、例えば、「応対される」ユーザによってアクセスが制御されるリソース(例えば、コンテンツ、文書等)への拡張アクセスを自動アシスタント120に与える、その所与のユーザに「応対する」と考えられてよい。しかしながら、簡潔さのために、本明細書に記載される一部の例は、単一のクライアント装置を動作させるユーザに注目することになる。
【0030】
クライアント装置106
1-Nの各々は、複数のメッセージ交換クライアント107
1-Nの対応する1つ、および複数のカメラアプリケーション109
1-Nの対応する1つなどの、各種の異なるアプリケーションを動作させてよい。各クライアント装置106には、1つもしくは複数のカメラ111(例えば、スマートフォンもしくはタブレットの場合の前面および/もしくは背面カメラ)ならびに/または1つもしくは複数の追加センサ113も搭載されてよい。追加センサ113は、例えば、マイクロホン、温度センサ、重量センサ等を含んでよい。一部の実装例では、追加センサ113のうちの1つまたは複数が、1つもしくは複数の対応するクライアント装置106および/または自動アシスタント120と別個であるが、それと通信状態にある、スタンドアロン周辺装置の一部として提供されてよい。例えば、追加センサの1つ113
1は周辺スケールに含めることができ、そしてスケールに置かれる物体の重量を示すセンサデータを生成できる。
【0031】
メッセージ交換クライアント107
1-Nは様々な形態であってよく、そしてその形態はクライアントコンピューティング装置106
1-Nにわたって異なってよく、かつ/または複数の形態がクライアントコンピューティング装置106
1-Nの単一の1つにおいて動作されてよい。一部の実装例では、メッセージ交換クライアント107
1-Nの1つまたは複数が、ショートメッセージサービス(「SMS」)および/またはマルチメディアメッセージサービス(「MMS」)クライアント、オンラインチャットクライアント(例えば、インスタントメッセンジャ、インターネットリレーチャットまたは「IRC」等)、ソーシャルネットワークと関連するメッセージアプリケーション、自動アシスタント120との会話に専用のパーソナルアシスタントメッセージサービス等の形態であってよい。一部の実装例では、メッセージ交換クライアント107
1-Nの1つまたは複数が、クライアントコンピューティング装置106のウェブブラウザ(図示せず)または他のアプリケーションによって描画されるウェブページまたは他のリソースを介して実装されてよい。
【0032】
カメラアプリケーション109
1-Nは、ユーザがカメラ111
1-Nを制御することを可能にしてよい。例えば、カメラアプリケーション109
1-Nの1つまたは複数が、ユーザが対話して1つまたは複数の画像および/またはビデオを取得してよいグラフィカルユーザインタフェースを提供してよい。一部の実装例では、カメラアプリケーション109
1-Nは、本明細書に記載されるように自動アシスタント120と対話/インタフェースして、ユーザが、カメラ111
1-Nによって取得される画像と関連する要求を解決することを可能にしてよい。他の実装例では、カメラアプリケーション109
1-Nの1つまたは複数が、ユーザが、カメラ111
1-Nによって取得される画像と関連する要求を解決することを可能にする、自動アシスタント120と別個の、それ自体の内蔵機能性を有してよい。追加的または代替的に、一部の実装例では、メッセージ交換クライアント107またはクライアント装置106にインストールされる任意の他のアプリケーションが、アプリケーションがカメラ111および/または追加センサ113によって取得されるデータにアクセスし、そして本明細書に記載される技法を行うことを可能にする機能性を含んでよい。
【0033】
カメラ111
1-Nは、モノクロカメラ、ステレオカメラおよび/またはサーモグラフィカメラを含むことができる。クライアント装置106
1およびクライアント装置106
Nが各々単一のカメラのみと共に
図1に例示されるが、多くの実装例で、クライアント装置は複数のカメラを含んでよい。例えば、クライアント装置は、前面および背面モノクロカメラを有することができる。また、例えば、クライアント装置は、ステレオカメラおよびサーモグラフィカメラを有することができる。また、例えば、クライアント装置は、モノクロカメラおよびサーモグラフィカメラを有することができる。その上、様々な実装例で、本明細書に記載される技法に活用されるセンサデータが(同じクライアント装置のおよび/または複数のクライアント装置の)複数の異種のカメラからの画像を含むことができる。例えば、モノクロカメラからの画像が初めに活用されて、要求が解決可能でないと判定してよく、そして別個のサーモグラフィカメラからの画像が続いて受け取られ(例えば、プロンプトに応じて)、要求を解決する際に活用されてよい。追加的に、一部の実装例では、3次元レーザスキャナからの点群センサデータなど、他の視覚センサからのセンサデータが活用されてよい。
【0034】
本明細書により詳細に記載されるように、自動アシスタント120は、1つまたは複数のクライアント装置106
1-Nのユーザインタフェース入出力デバイスを介して1人または複数のユーザとのヒューマンコンピュータダイアログセッションに係わる。一部の実装例では、自動アシスタント120は、クライアント装置106
1-Nの1つの1つまたは複数のユーザインタフェース入力デバイスを介してユーザによって与えられるユーザインタフェース入力に応じてユーザとのヒューマンコンピュータダイアログセッションに係わってよい。
【0035】
それらの実装例の一部では、ユーザインタフェース入力は明示的に自動アシスタント120に宛てられる。例えば、メッセージ交換クライアント107
1-Nの1つが自動アシスタント120との会話に専用のパーソナルアシスタントメッセージサービスでよく、そしてそのパーソナルアシスタントメッセージサービスを介して与えられるユーザインタフェース入力が自動アシスタント120に自動的に提供されてよい。また、例えば、ユーザインタフェース入力は、自動アシスタント120が呼び出されることになることを示す特定のユーザインタフェース入力に基づいて、メッセージ交換クライアント107
1-Nの1つまたは複数において明示的に自動アシスタント120に宛てられてよい。例えば、特定のユーザインタフェース入力は、1つもしくは複数のタイプ文字(例えば、@AutomatedAssistant)、ハードウェアボタンおよび/もしくは仮想ボタンとのユーザ対話(例えば、タップ、ロングタップ)、口頭コマンド(例えば、「おい、自動アシスタント」)、ならびに/または他の特定のユーザインタフェース入力でよい。一部の実装例では、自動アシスタント120は、ユーザインタフェース入力が明示的に自動アシスタント120に宛てられないときでも、そのユーザインタフェース入力に応じてダイアログセッションに係わってよい。例えば、自動アシスタント120は、ユーザインタフェース入力の内容を検査し、そしてユーザインタフェース入力に或る用語が存在することに応じて、および/または他の指示に基づいて、ダイアログセッションに係わってよい。多くの実装例では、自動アシスタント120は、ユーザがコマンド、検索等を発してよいように、対話型音声応答(「IVR」)に係わってよく、そして自動アシスタント120は、自然言語処理および/または1つもしくは複数の文法を活用して発話をテキストへ変換し、それに応じて応答してよい。
【0036】
クライアントコンピューティング装置106
1-Nの各々および自動アシスタント120は、データおよびソフトウェアアプリケーションの記憶のための1つまたは複数のメモリ、データにアクセスし、かつアプリケーションを実行するための1つまたは複数のプロセッサ、ならびにネットワークを通じた通信を容易にする他の部品を含んでよい。クライアントコンピューティング装置106
1-Nの1つもしくは複数によっておよび/または自動アシスタント120によって行われる動作は複数のコンピュータシステムにわたって分散されてよい。自動アシスタント120は、例えば、ネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で起動するコンピュータプログラムとして実装されてよい。
【0037】
自動アシスタント120は、
図1に示されない他の部品の中で、自然言語プロセッサ122、要求エンジン124、プロンプトエンジン126、および要求解決エンジン130(属性モジュール132を含む)を含んでよい。一部の実装例では、自動アシスタント120のエンジンおよび/またはモジュールの1つまたは複数が省略、結合、および/または自動アシスタント120と別個である部品に実装されてよい。一部の実装例では、自動アシスタント120は、自動アシスタント120とのヒューマンコンピュータダイアログセッション中のクライアント装置106
1-Nからの様々な入力に応じて応答内容を生成する。自動アシスタント120は、ダイアログセッションの一部としてユーザへの提示のために応答内容を(例えば、ユーザのクライアント装置と別個のときは1つまたは複数のネットワークを通じて)提供する。例えば、自動アシスタント120は、クライアント装置106
1-Nの1つを介して与えられる自由形式自然言語入力に応じて、カメラ111のうちの1つによって取得される画像に応じて、かつ/または追加センサ113のうちの1つもしくは複数によって取得される追加センサデータに応じて応答内容を生成してよい。本明細書で使用されるように、自由形式入力は、ユーザによって作成され、かつユーザによる選択のために提示される一群のオプションに制約されない入力である。
【0038】
本明細書で使用されるように、「ダイアログセッション」は、ユーザと自動アシスタント120(と一部の場合には、ダイアログにおける他の人間の参加者)との間の1つまたは複数のメッセージの論理的に独立した交換を含んでよい。自動アシスタント120は、セッション間の時間の経過、セッション間のユーザコンテキスト(例えば、場所、予定された会議前/中/後、等)の変化、ユーザと自動アシスタントとの間のダイアログ以外のユーザとクライアント装置との間の1つまたは複数の介在作用の検出(例えば、ユーザがしばらくの間アプリケーションを切り替える、ユーザがスタンドアロン音声作動型製品から歩き去り、その後戻ってくる)、セッション間のクライアント装置のロック/スリープ、自動アシスタント120の1つまたは複数のインスタンスとインタフェースするために使用されるクライアント装置の変更等などの、様々な信号に基づいてユーザとの複数のダイアログセッション間を区別してよい。
【0039】
一部の実装例では、自動アシスタント120がユーザインタフェース入力(例えば、口頭入力および/またはタイプ入力)の形態のユーザフィードバックを要請するプロンプトを提供するとき、自動アシスタント120は、プロンプトに応じて受け取られることになるユーザインタフェース入力を処理するように構成される、クライアント装置(プロンプトが提供される際に介する)の1つまたは複数の部品を事前に作動させてよい。例えば、ユーザインタフェース入力がクライアント装置106
1のマイクロホンを介して与えられることになる場合、自動アシスタント120は、1つまたは複数のコマンドを提供して、マイクロホンが事前に「開かれる」(それによってインタフェース要素を打ってもしくは「ホットワード」を話してマイクロホンを開く必要を阻止する)、クライアント装置106
1のローカル音声テキストプロセッサが事前に作動される、クライアント装置106
1とリモート音声テキストプロセッサ(例えば、自動アシスタント120のリモートに設けられる音声テキストプロセッサ)との間の通信セッションが事前に確立される、かつ/またはグラフィカルユーザインタフェースがクライアント装置106
1に描画される(例えば、フィードバックを与えるために選択されてよい1つもしくは複数の選択可能要素を含むインタフェース)ようにしてよい。これは、部品が事前に作動されない場合よりも、ユーザインタフェース入力が迅速に与えられるおよび/または処理されることを可能にしてよい。
【0040】
自動アシスタント120の自然言語プロセッサ122は、クライアント装置106
1-Nを介してユーザによって生成される自然言語入力を処理し、そして要求エンジン124、プロンプトエンジン126および/または要求解決エンジン130など、自動アシスタント120の1つまたは複数の他の部品による使用のためのアノテーション付き出力を生成してよい。例えば、自然言語プロセッサ122は、クライアント装置106
1の1つまたは複数のユーザインタフェース入力デバイスを介してユーザによって生成される自然言語自由形式入力を処理してよい。生成されるアノテーション付き出力は、自然言語入力の1つまたは複数のアノテーションおよび任意選択で自然言語入力の用語の1つまたは複数(例えば、全て)を含む。一部の実装例では、自然言語プロセッサ122は、音声(口頭)自然言語入力を処理するように構成される音声処理モジュールを含む。自然言語プロセッサ122は次いで、処理された音声入力に作用できる(例えば、処理された音声入力から導出されるテキストに基づいて)。例えば、音声処理モジュールは、ストリーミングオーディオ録音の形態の自由形式自然言語音声入力を受け取り、そして1つまたは複数の音声テキストモデルを活用してその音声入力をテキストへ変換する音声テキストモジュールでもよい。例えば、クライアント装置は、ユーザが話している間にクライアント装置のマイクロホンから受け取られる信号に応じてストリーミングオーディオ録音を生成でき、そして音声テキストモジュールによる処理のためにストリーミングオーディオ録音を自動アシスタントに送信できる。
【0041】
一部の実装例では、自然言語プロセッサ122は、自然言語入力における様々な種類の文法情報を識別およびアノテーション付けするように構成される。例えば、自然言語プロセッサ122は、用語にそれらの文法的役割をアノテーション付けするように構成される品詞タガーを含んでよい。例えば、品詞タガーは各用語に、「名詞」、「動詞」、「形容詞」、「代名詞」等などのその品詞をタグ付けしてよい。また、例えば、一部の実装例では、自然言語プロセッサ122は、自然言語入力における用語間の統語関係を決定するように構成される依存パーサ(図示せず)を追加的および/または代替的に含んでよい。例えば、依存パーサは、どの用語が文等(例えば、解析木)の他の用語、主語および動詞を修飾するかを判定してよく-そしてそのような依存のアノテーションを作ってよい。
【0042】
一部の実装例では、自然言語プロセッサ122は、人々(例えば、文学上の人物、著名人、公人等を含む)、組織、場所(実在および仮想)等の参照など、1つまたは複数の区分における実体参照にアノテーション付けするように構成される実体タガー(図示せず)を追加的および/または代替的に含んでよい。一部の実装例では、実体についてのデータが、知識グラフ(図示せず)になど、1つまたは複数のデータベースに記憶されてよい。一部の実装例では、知識グラフは、既知の実体(および一部の場合には、実体属性)を表すノードの他に、ノードを接続しかつ実体間の関係を表すエッジを含んでよい。例えば、「バナナ」ノードが「果物」ノードに接続されてよく(例えば、子として)、次いで「果物」ノードは「農産物」および/または「食物」ノードに接続されてよい(例えば、子として)。別の例として、「仮定のカフェ」と呼ばれる飲食店が、その住所、出される食物の種類、営業時間、連絡先情報等などの属性も含むノードによって表されてよい。「仮定のカフェ」ノードは、一部の実装例では、「飲食店」ノード、「事業」ノード、飲食店が設けられる都市および/または州を表すノード等などの1つまたは複数の他のノードにエッジ(例えば、親子関係を表す)によって接続されてよい。
【0043】
自然言語プロセッサ122の実体タガーは、高レベルの粒度(例えば、人々などの実体クラスの全ての参照の特定を可能にする)および/または低レベルの粒度(例えば、特定の人物などの特定の実体の全ての参照の特定を可能にする)で実体の参照にアノテーション付けしてよい。実体タガーは、自然言語入力の内容に依存して特定の実体を解決してよく、かつ/または任意選択で知識グラフもしくは他の実体データベースと通信して特定の実体を解決してよい。
【0044】
一部の実装例では、自然言語プロセッサ122は、1つまたは複数のコンテキスト指示に基づいて同じ実体の参照をグループ化または「クラスタリング」するように構成される共参照解析器(図示せず)を追加的および/または代替的に含んでよい。例えば、共参照解析器が活用されて、自然言語入力「私は、前回私達がそこで食事をした仮定のカフェが好きだった」において用語「そこで」を「仮定のカフェ」に解決してよい。
【0045】
一部の実装例では、自然言語プロセッサ122の1つまたは複数の部品が自然言語プロセッサ122の1つまたは複数の他の部品からのアノテーションに依存してよい。例えば、一部の実装例では、固有表現タガーは、特定の実体への全ての言及にアノテーション付けする際に共参照解析器および/または依存パーサからのアノテーションに依存してよい。また、例えば、一部の実装例では、共参照解析器は、同じ実体の参照をクラスタリングする際に依存パーサからのアノテーションに依存してよい。一部の実装例では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の部品が、特定の自然言語入力以外で関連した先行の入力および/または他の関連データを使用して1つまたは複数のアノテーションを決定してよい。
【0046】
要求エンジン124は、1つまたは複数の信号を活用して、要求と関連するクライアント装置の環境内の物体に関連した要求がいつあるかを判定する。例えば、要求エンジン124は、クライアント装置106
1を介して与えられる自然言語入力、カメラ111
1によって取得される画像、追加センサ113
1からの追加センサデータ、ならびに/またはクライアント装置106
1の検出場所および/もしくは他のコンテキスト属性に基づいて、クライアント装置106
1の環境内の物体に関連した要求を決定できる。
【0047】
1つの例として、要求エンジン124は、クライアント装置106
1を介してユーザによって与えられる自然言語入力(例えば、口頭音声入力)に基づいて、そのような要求を決定できる。例えば、要求エンジン124は、自然言語プロセッサ122からのアノテーションに依存して、「これは何か」、「これはどこで買えるのか」、「これはいくらするのか」、「この物はどれくらいの重さか」、「それについてもっと教えて」等という発話など、或る発話が環境内の物体に関連する可能性があると判定できる。一部の実装例では、要求エンジン124は、先行の自然言語入力における先行詞に(例えば、自然言語プロセッサ122によって)共参照解決できない代用形(例えば、「これ」、「この物」、「それ」、「それ」などの曖昧な代名詞)を含む発話に基づいて、そのような要求を決定できる。言い換えれば、要求エンジン124は、先行の自然言語入力の先行詞に解決不可能である代用形を参照する要求のため、発話が環境物体に関連すると仮定できる。一部の実装例では、要求エンジン124は、発話が環境物体に関連するとの判定に応じて、画像および/または他のセンサデータがクライアント装置106
1によって取得されるようにすることができる。例えば、要求エンジン124は、カメラ111
1および/またはカメラアプリケーション109
1に1つまたは複数のコマンドを提供して、1つまたは複数の画像が取得されるようにすることができる。それらの実装例の一部では、要求エンジン124は、クライアント装置106
1のユーザが「画像取得」インタフェース要素を選択する、言葉による「画像を取得」コマンドを与える、および/またはその他クライアント装置106
1と物理的に対話して画像が取得されるようにすることを必要とすることなく、画像が取得されるようにすることができる。一部の実装例では、画像の取得に先立ち、ユーザからの確認を必要とすることができる。例えば、要求エンジン124は、「あなたの要求に答えるために画像を取得する必要がある」というユーザインタフェース出力が提供されるように、そして肯定的なユーザ応答(例えば、「オーケー」)に応じてのみ画像が取得されるようにすることができる。
【0048】
別の例として、要求エンジン124は、クライアント装置106
1を介して画像、録音および/または他のセンサデータが取得されることに基づいて、そのような要求を追加的または代替的に決定できる。例えば、要求エンジン124は、カメラ111
1を介する少なくとも1つの画像の取得と併せて(例えば、少なくとも1つの画像の取得の直前、直後および/または最中に)発話が与えられることに基づいて、そのような要求を決定できる。例えば、ユーザインタフェース入力に応じてカメラ111
1を介して画像を取得したX秒以内の「これは何か」という発話。画像は、クライアント装置106
1のアシスタントアプリケーション(例えば、専ら自動アシスタント120との対話に充てられるアプリケーション)との関連で、またはカメラアプリケーション、チャットアプリケーション等など、クライアント装置106
1の別のアプリケーションとの関連で、カメラ111
1を介して取得できる。したがって、一部の実装例では、要求エンジン124は、複数の異種のアプリケーションのいずれかから取得される画像および/または発話に基づいて、そのような要求を決定できる。また、例えば、要求エンジン124は、センサデータが取得されることに基づいて、そのような要求を決定でき、そしていかなる発話からも独立して、そのような要求を決定できる。例えば、要求エンジン124は、或るコンテキストで(例えば、クライアント装置106
1の場所データが、ユーザが小売場所にいることを示すときに)ユーザが画像を取得することに基づいて、そのような要求を決定できる。さらに別の例として、要求エンジン124は、追加センサ113
1のマイクロホンを介して録音が取得されるようにユーザがすることに応じて、そのような要求を決定できる。例えば、ユーザは、オーディオ録音が取得されるようにし、ここでオーディオ録音がユーザの掃除機によって立てられている音を取得しており、次いで「掃除機はなぜこんな音を立てているのか」という発話を与えることができる。
【0049】
別の例として、要求エンジン124は、ユーザによって選択されるインタフェース要素に基づいて、ならびに/または画像および/もしくは他のセンサデータが特定のインタフェースを介して取得されることに基づいて、そのような要求を追加的または代替的に決定できる。例えば、カメラアプリケーション109
1を介して画像を取得した後に、「もっと知る」というグラフィカルインタフェース要素がカメラアプリケーション109
1を介して提案として提示でき(例えば、自動アシスタント120からの出力に基づいて)、そしてグラフィカルインタフェース要素の選択が要求エンジン124によって、画像によって捉えられる物体についての追加情報の要求と解釈できる。また、例えば、ユーザがメッセージ交換クライアント107
1および/または特に自動アシスタント120に合わせて修正された他のアプリケーション(例えば、専ら自動アシスタント120との対話に充てられるクライアントアプリケーション)を活用して画像および/または他のセンサデータを取得すれば、そのような取得は要求エンジン124によって、センサデータによって捉えられる物体に関連した要求と解釈できる。
【0050】
要求と関連するクライアント装置の環境内の物体に関連した要求がある(例えば、要求エンジン124によって判定される)と、要求解決エンジン130は要求を解決しようと試みる。要求を解決しようと試みる際に、要求解決エンジン130は、要求と関連する自然言語入力(もしあれば)、要求と関連する画像および/もしくは他のセンサデータ、ならびに/または他の内容を活用できる。本明細書により詳細に記載されるように、要求解決エンジン130は、要求が解決可能であるかどうかを判定する際に1つもしくは複数のエージェント146、画像処理エンジン142および/または追加処理エンジン144とインタフェースできる。
【0051】
要求解決エンジン130が要求を解決可能であると判定すれば、要求解決エンジン130は、要求を解決する際に1つまたは複数のエージェント146と対話できる。エージェント146は、自動アシスタント120を制御する同じ当事者によって制御される1つもしくは複数のいわゆる当事者(1P)エージェントを含むことができ、かつ/または別個の当事者によって制御される1つもしくは複数のいわゆる第三者(3P)エージェントを含むことができる。1つの例として、エージェント146は検索システム(1P検索システムまたは3P検索システム)を含むことができ、そして要求解決エンジン130は、検索システムに検索を提出し、応答内容(例えば、単一の「答え」)を受け取り、そしてクライアント装置106
1を介する提示のために応答内容を提供することによって要求を解決できる。
【0052】
要求解決エンジン130が要求を解決可能でないと判定すれば、要求解決エンジン130は、プロンプトエンジン126がクライアント装置106
1を介する提示のために提供する1つまたは複数のプロンプトを決定するようにすることができる。プロンプトエンジン126によって決定されるプロンプトは、ユーザに物体に対する追加センサデータ(例えば、画像、オーディオ、温度センサデータ、重量センサデータ)を取得するかつ/または物体(および/もしくは他の物体)を動かして物体に対する追加センサデータの取得を可能にするように命令できる。プロンプトは、ユーザに、物体の未解決の属性を対象とするユーザインタフェース入力を与えるように追加的または代替的に要請できる。
【0053】
要求解決エンジン130は次いで、プロンプトに応じて受け取られる追加センサデータおよび/またはユーザインタフェース入力を活用して、再び要求を解決しようと試みることができる。要求が依然として解決可能でなければ、要求解決エンジン130は、プロンプトエンジン126がクライアント装置106
1を介する提示のために提供する1つまたは複数の追加プロンプトを決定するようにすることができる。そのような追加プロンプトに応じて受け取られる追加センサデータおよび/またはユーザインタフェース入力が次いで活用されて、再び要求を解決しようと試みることができる。これは、要求が解決される、閾値数のプロンプトに達する、閾値時限が経過するまで、および/または1つもしくは複数の他の基準が達成されるまで継続できる。
【0054】
要求解決エンジン130は、要求によって示される物体に対する様々な属性を決定する属性モジュール132を任意選択で含む。本明細書に記載されるように、属性は、要求が解決可能であるかどうかを判定する際に、および/または要求が解決可能でないと判定されると提供するプロンプトを決定する際に活用できる。属性モジュール132は、様々な属性を決定する際に画像処理エンジン142および/または追加処理エンジン144とインタフェースできる。例えば、属性モジュール132は、画像処理エンジン142のうちの1つまたは複数に取得画像を提供できる。画像処理エンジン142は、そのような画像に画像処理を行い、そしてそれに応じて、取得画像に基づいて解決可能である属性(もしあれば)を提供できる。また、例えば、属性モジュール132は、追加処理エンジン144のうちの1つまたは複数に他の取得センサデータを提供できる。追加処理エンジン144は、そのような画像に処理を行い、そしてそれに応じて、取得センサデータに基づいて解決可能である属性(もしあれば)を提供できる。例えば、追加処理エンジン144のうちの1つが、音声データを処理して、音声データに存在する実体(例えば、音声データにおける音の発生源である特定の物体)など、音声データの1つまたは複数の属性、ならびに/または音声データの他の属性(例えば、音声データにおける「ビープ音」の数および/もしくは周波数)を決定するように構成されてよい。
【0055】
一部の実装例では、要求解決エンジン130は、属性モジュール132によって解決される属性(もしあれば)が目標特異度で物体を定義することができないとの判定に基づいて、要求が解決可能でないと判定する。一部の実装例では、物体に対する目標特異度は分類学における物体の目標分類度であることができる。例えば、車の目標分類度は、車の型およびモデルを定義するレベルの、または車の型、モデルおよび年式を定義するレベルの分類であることができる。そのような目標分類度は、任意選択でリソースデータベース148に記憶でき、かつそれからアクセスできる。一部の実装例では、物体に対する目標特異度は1つまたは複数の定義されるべき項目に関して定義でき、ここで物体に対する項目は物体の分類(一般的または具体的)に依存していることができる。例えば、ワインのボトルに対して、項目は特定のブランド、ワインタイプおよび/またはヴィンテージに対して定義でき、そして目標特異度はそれらの項目の全てに対する属性の解決である。物体の分類に対するそのような定義されるべき項目は、任意選択でリソースデータベース148に記憶でき、かつそれからアクセスできる。一部の実装例では、目標特異度は、ユーザによって与えられる初期自然言語入力、ユーザによって与えられるフィードバック、ユーザおよび/もしくは他のユーザの対話履歴、ならびに/または場所および/もしくは他のコンテキスト信号に基づいて決定できる。
【0056】
一部の実装例では、プロンプトエンジン126は、環境物体に関連した要求の解決を可能にするであろうさらなる入力の指針を提供するプロンプトを決定する。それらの実装例の一部では、プロンプトは、属性モジュール132によって解決された物体に対する1つまたは複数の属性に基づいて決定される。例えば、取得画像に基づいて画像処理エンジン142のうちの1つによって解決される分類属性など、環境物体に対する分類属性が属性モジュール132によって決定できる。例えば、プロンプトエンジン126は、「車」分類に特化される車分類に対するプロンプト(例えば、「車の後部の写真を撮って」)を決定できる。また、例えば、プロンプトエンジン126は、「ジャケット」分類に特化される「ジャケット」分類に対するプロンプト(例えば、「ロゴの写真を撮って」)を決定できる。また、例えば、一部の実装例では、分類属性は1つまたは複数の定義されるべき項目と関連付けできる。それらの状況の一部では、プロンプトは、属性モジュール132によって既に決定された属性(もしあれば)によって定義されていない項目に基づいて生成できる。例えば、ワインのボトルに対するヴィンテージ項目がまだ定義されていなければ、プロンプトは「年代の写真を撮って」または「年代はどれくらい?」であることができる。
【0057】
図1の様々な部品の追加説明が、ここで
図2A〜
図8の例を参照しつつ提供される。
図1の部品の一部が
図2A〜
図8に示されないが、それらは、様々な部品の機能性の或る例を記載する際に以下の考察で参照される。
【0058】
図2Aおよび
図2Bは、本明細書に記載される実装例に従ってクライアント装置106
1上で、かつ/またはそれと併せて動作する自動アシスタント(
図1における120)のインスタンスとユーザ(図示せず)がどのように対話できるかの一例を例示する。クライアント装置106
1は、タッチスクリーン160ならびに少なくとも1つのカメラ111
1(前面および/もしくは背面)を含むスマートフォンまたはタブレットコンピュータの形態をとる。タッチスクリーン160に描画されるのが、カメラ111
1によって取得されるセンサデータを、例えば、リアルタイムに描画するカメラ機能性(例えば、
図1におけるカメラアプリケーション109および/または電子ビューファインダを含む他のアプリケーション)と関連するグラフィカルユーザインタフェースである。グラフィカルユーザインタフェースは、ユーザ入力フィールド164、およびカメラ111
1の動作を制御するように動作可能でよい1つまたは複数のグラフィカル要素166
1、2を含む。例えば、第1のグラフィカル要素166
1は、前面および背面カメラ間を切り替えるように動作可能でよく、そして第2のグラフィカル要素166
2は、カメラ111
1を使用して画像(または設定に応じてビデオ(複数の画像を連続して取得する))を取得するように動作可能でよい。
図2Aおよび
図2Bに示されない他のグラフィカル要素は、カメラ設定を変更する、画像取得およびビデオ取得モード間を切り替える、様々な効果を追加する等などの、他の作用を行うように動作可能でよい。
【0059】
ユーザ入力フィールド164は、自動アシスタント120に提供できる自由形式自然言語入力などの、様々な入力を与えるようにユーザによって操作可能でよい。自由形式自然言語入力は、タイプユーザインタフェース入力(例えば、図示されない仮想キーボードを介する)であることができる、および/またはユーザによって与えられる音声入力(例えば、右側のマイクロホンアイコンをクリックする、もしくは「ホットワード」を話すことによる)であることができる。例えば、自動アシスタント120の態様がクライアント装置106
1から遠隔で実装され、かつユーザ入力フィールド164を介して音声入力が与えられる場合、音声入力のストリーミングバージョンが自動アシスタント120に1つまたは複数のネットワークを通じて送信されてよい。様々な実装例で、ユーザ入力フィールド164を介して与えられる音声入力は、例えば、クライアント装置106
1においておよび/または遠隔で(例えば、自動アシスタント120の1つもしくは複数のクラウドベースの部品において)テキストに変換されてよい。
【0060】
図2Aにおけるカメラ111
1はその視界にワインのボトル261を捉えた。結果的に、ワインのボトル261の描画261Aが上述の電子ビューファインダの一部としてタッチスクリーン160に現れる。様々な実装例で、ユーザは、例えば、ユーザ入力フィールド164内をタップすることによってまたは「おい、自動アシスタント」などの呼出しフレーズを話すことによって、自動アシスタント120を呼び出してよい。一旦自動アシスタント120が呼び出されると、ユーザは、「これはいくらする?」という自然言語入力を話すまたはタイプする。追加的または代替的に、ユーザは、自動アシスタント120を呼び出しかつ自然言語入力も提供する単一の自然言語入力(例えば、「おい、自動アシスタント、これはいくらする?」)を与えてよい。一部の実装例では、カメラアプリケーションがクライアント装置上でアクティブなときはいつでも、自動アシスタント120は自動的に呼び出されてよい、またはそれ以外の場合には自動アシスタント120を呼び出さない異なる呼出しフレーズに応じて呼び出されてよい。例えば、一部の実装例では、カメラアプリケーション109がアクティブであるとき(すなわち、ユーザによって対話されている、グラフィカルユーザインタフェースとして提示されている等)、自動アシスタント120は呼び出されてよい。
【0061】
自動アシスタント120の要求エンジン124は、「これはいくらするのか」という自然言語入力がクライアント装置106
1の環境内の物体に関連すると判定できる。一部の実装例では、要求エンジン124は、そのような判定に応じて環境の画像が取得されるようにすることができる(例えば、
図2Aの描画261Aを取得する画像)。一部の他の実装例では、ユーザは、画像が取得されるようにし(例えば、第2のグラフィカル要素166
2の選択を通じて)、そして画像の取得と併せて(例えば、直前、最中または直後に)自然言語入力を与えてよい。それらの実装例の一部では、要求エンジン124は、自然言語入力にもユーザによる画像の取得にも基づいて、要求が環境内の物体に関連すると判定できる。
【0062】
要求エンジン124は、要求解決エンジン130に要求の指示を提供する。要求解決エンジン130は、自然言語入力および取得画像を使用して要求を解決しようと試みる。例えば、要求解決エンジン130は、画像処理エンジン142のうちの1つまたは複数に取得画像を提供できる。画像処理エンジン142は、取得画像を処理して「ワインボトル」の分類属性を決定し、そして要求解決エンジン130に分類属性を返すことができる。要求解決エンジン130は、要求が「コスト」行動に対するとさらに判定できる(例えば、「これはいくらする?」に基づいている、自然言語プロセッサ122によって提供される出力に基づいて)。さらに、「ワインボトル」である物体に対する「コスト」行動に対して、要求解決エンジン130は、要求を解決するために、ブランド、ワインタイプおよびヴィンテージの項目に対して属性が解決される必要があると判定できる。例えば、要求解決エンジン130は、リソースデータベース148で「ワインボトル」分類に対する「コスト」行動に対する定義項目を調べることに基づいて、それらの項目を決定できる。また、例えば、要求解決エンジン130は、エージェント146のうちの、要求を扱えるエージェント(例えば、「ワインコスト」エージェント、より一般的な「酒類コスト」エージェントまたはさらに一般的な「検索システム」エージェント)によってどんな項目が必要とされるとして示されるかに基づいて、それらの項目を決定できる。例えば、エージェントは、「ワインコスト」意図と関連付けでき、そしてその「ワインコスト」意図に対する「ブランド」、「ワインタイプ」および「ヴィンテージ」の必須のスロット/項目を定義してよい。
【0063】
要求解決エンジン130は、与えられた自然言語入力および取得画像の画像処理に基づいて要求を解決することができないとさらに判定できる。例えば、要求解決エンジン130は、ブランド、ワインタイプおよびヴィンテージが解決可能でないと判定できる。例えば、それらは自然言語入力から解決可能でなく、そして画像処理エンジン142は、「ワインボトル」分類属性のみを提供したかもしれない(例えば、それらは、例えば、
図2Aの描画261Aに対応する取得画像においてラベルが見えないためにより詳細な属性を解決することができなかった)。
【0064】
要求が解決不可能であることに基づいて、プロンプトエンジン126は、「ラベルの写真を撮ってくれますか?」というプロンプト272Aを決定および提供する。プロンプト272Aは可聴プロンプト(例えば、クライアント装置106
1のスピーカを介して提供される)として
図2Aに例示される。しかしながら、他の実装例では、グラフィカルプロンプトが追加的および/または代替的に提供されてよい。可聴プロンプトが提供されるとき、テキスト音声プロセッサモジュールが任意選択で活用されてテキストプロンプトを可聴プロンプトに変換できる。例えば、プロンプトエンジン126は、テキスト音声プロセッサを含み、テキストプロンプトをオーディオ形式(例えば、ストリーミングオーディオ)に変換し、そしてクライアント装置106
1のスピーカを介する可聴提示のためにクライアント装置106
1にオーディオ形式を提供できる。プロンプトエンジン126は、要求解決エンジン130によって決定される「ワインボトル」分類属性に基づいて、かつ/またはブランド、ワインタイプおよびヴィンテージ項目が要求解決エンジン130によって未解決であることに基づいて、プロンプト272Aを決定できる。例えば、リソースデータベース148は、「ワインボトル」分類に対してならびに/またはブランド、ワインタイプおよび/もしくはヴィンテージの未解決の項目に対して、プロンプト272Aなどのプロンプトが提供されるべきであると定義してよい(例えば、そのプロンプト(またはその部分)が「ワインボトル」分類および/または未解決の項目と関連付けて記憶されてよい)。
【0065】
図2Bにおいて、カメラ111
1によって追加画像が取得され、ここで追加画像はワインのボトル261のラベルを捉える。例えば、追加画像は、
図2Bの電子ビューファインダに図示されるワインのボトル261の描画261Bに一致する画像を捉えることができる。そのような画像を取得するために、ユーザは、ワインのボトル261の位置を変える(例えば、ラベルが見えるようにそれを回す、かつ/もしくはそれをカメラ111
1に近づける)ことができ、カメラ111
1の位置を変えることができ、かつ/またはカメラ111
1のズーム(ハードウェアおよび/もしくはソフトウェア)ならびに/または他の特性を調節できる(例えば、タッチスクリーン160上での「ピンチアウト」ジェスチャを介して)。一部の実装例では、追加画像は、ユーザによる第2のグラフィカル要素166
2の選択に応じて
図2Bにおいて取得できる。一部の他の実装例では、追加画像は自動的に取得できる。
【0066】
要求解決エンジン130は、追加画像を活用して物体の追加属性を決定する。例えば、要求解決エンジン130は、画像処理エンジン142のうちの1つまたは複数に取得された追加画像を提供できる。画像処理に基づいて、画像処理エンジン142のうちの1つまたは複数が「仮定のヴィンヤード」、「メルロー」および「2014」というテキスト属性を決定し(例えば、OCRを使用して)、そして要求解決エンジン130にそのようなテキストを返せる。追加的または代替的に、画像処理エンジン142のうちの1つまたは複数が、仮定のヴィンヤードの2014メルローを詳細に識別する詳細な分類を提供できる。本明細書に記載されるように、一部の実装例では、要求解決エンジン130は、プロンプトに応じて取得されるセンサデータ(例えば、画像)に対して、そのようなセンサデータに基づいて追加属性を決定するための利用可能な画像処理エンジンの部分集合のみを呼び出してよい。例えば、要求解決エンジン130は、OCRを活用して属性が導出されることになる後続の画像に帰着するようにプロンプト272A(
図2A)が修正されていることに基づいて、エンジン142のうちのOCR画像処理エンジンのみに追加画像を提供してよい。また、例えば、要求解決エンジン130は、一般分類が既に解決されていることに基づいて、エンジン142のうちの、一般分類エンジンに追加画像を提供しなくてよい。それらの実装例の一部では、これは、様々な計算リソースを節約してよい。これは、例えば、画像処理エンジン142のうちの1つまたは複数がクライアント装置106
1に実装されるときに特に有益でよい。
【0067】
要求解決エンジン130は次いで、要求が追加属性に基づいて解決可能であると判定できる。例えば、要求解決エンジン130は、エージェント146のうちの1つに、自然言語入力および追加属性に基づいているエージェントクエリを提出できる。例えば、要求解決エンジン130は、「ヴィンヤードAカベルネソーヴィニヨン2012のコスト」というエージェントクエリおよび/または{intent= "wine_cost"; brand="vineyard a"; type="merlot"; vintage="2012"}などの構造化エージェントクエリを提出できる。エージェントクエリに応じてエージェントから追加内容を受け取ることができ、そして追加内容の少なくとも一部がユーザへの提示のために提供できる。例えば、
図2Bの出力272Bが追加内容に基づいて提示できる。出力272Bは価格帯を特定し、そしてまた、ユーザがワインのボトルを購入できるリンク先をユーザが見たいかどうかを尋ねる。ユーザが出力272Bに肯定的に応答すれば(例えば、「はい」というさらなる音声入力)、購入のためのリンクが
図2Bのインタフェースおよび/または別個のインタフェースを介して表示されてよい。価格帯およびリンクは両方とも、エージェントクエリに応じて受け取られる追加内容に基づいてよい。出力272Bは、可聴出力(例えば、クライアント装置106
1のスピーカを介して提供される)として
図2Bに例示される。しかしながら、他の実装例では、グラフィカル出力が追加的および/または代替的に提供されてよい。
【0068】
図3は、本明細書に記載される実装例に従ってクライアント装置106
1上で、かつ/またはそれと併せて動作する自動アシスタント(
図1における120、
図2に図示せず)のインスタンスとユーザ(図示せず)がどのように対話できるかの別の例を例示する。
図3は
図2Aと類似しており、そして同様の番号は同様の部品を指す。
図3において、カメラ111
1はその視界にワインのボトル261を捉えた、そして取得画像およびワインのボトル261の描画261Aは
図2Aにおけるそれと同じである。
【0069】
しかしながら、
図3においてユーザが「これの写真をボブにテキストで伝えて」という自然言語入力を与えた一方、ユーザは代わりに「これはいくらするのか」という
図2Aにおける自然言語入力を与えた。
【0070】
自動アシスタント120の要求エンジン124は、「これの写真をボブにテキストで伝えて」という自然言語入力がクライアント装置106
1の環境内の物体に関連すると判定できる。一部の実装例では、要求エンジン124は、そのような判定に応じて環境の画像が取得されるようにすることができる(例えば、
図3の描画261Aを取得する画像)。一部の他の実装例では、ユーザは、画像が取得されるようにし(例えば、第2のグラフィカル要素166
2の選択を通じて)、そして画像の取得と併せて(例えば、直前、最中または直後に)自然言語入力を与えてよい。
【0071】
要求エンジン124は、要求解決エンジン130に要求の指示を提供する。要求解決エンジン130は、自然言語入力および取得画像を使用して要求を解決しようと試みる。
図3の状況では、要求解決エンジン130は、要求(写真をボブに送ること)が画像自体に基づいて解決できると判定する。結果として、要求解決エンジン130は、ユーザに追加画像を撮る(もしくはその他ワインのボトルに関連した追加情報を提供する)ように促すことなく、かつ/または画像処理エンジン142による処理のために画像を提供することなく、要求を解決することができる。例えば、要求解決エンジン130は、単に「ボブ」という名前のユーザの連絡先に写真をテキストで伝えることによって要求を解決できる。要求解決エンジン130は、「送りました」という出力372Aを任意選択で提供して、要求が解決されたことをユーザに通知できる。
【0072】
したがって、
図3は、追加物体属性の決定を可能にするように修正されるプロンプトが、要求が初期センサデータおよび/または初期ユーザインタフェース入力に基づいて解決可能でないと判定されるときにのみ、任意選択でどのように提供できるかの一例を提供する。
図3において、ユーザが代わりに「このワインの名前をボブにテキストで伝えて」という自然言語入力を与えたならば、(ワインの名前はおそらく
図3の描画261Aに一致する画像に基づいて解決可能でないので)プロンプトが提供されるであろうことが留意される。
【0073】
したがって、これらおよび他の方式では、そのようなプロンプトが提供されるかどうかは、要求が解決可能であるかどうかに基づいており、これは次いで要求の特異度に基づいている。例えば、「これの写真をボブにテキストで伝えて」が画像内の物体のいずれの属性も知られていることを必要としない一方、「このワインの名前をボブにテキストで伝えて」は、ワインボトルの名前が知られていることを必要とする。一部の実装例では、特異度が、要求と共に与えられる自然言語入力に加えて、またはその代わりに他の要因に基づいてよいことも留意される。例えば、一部の実装例では、自然言語入力は取得画像(または他の取得されたセンサデータ)と併せて与えられなくてよい。それらの実装例では、特異度は、クライアント装置106
1の場所に基づいてよく、画像の解決された属性に基づいても、および/または他の要因に基づいてもよい。例えば、ユーザが小売場所(例えば、食料品店)で物体の画像を取得すれば、「コスト比較」または高特異度の類似の要求が推定できる。他方では、ユーザが公園または他の非小売場所で物体の画像を取得すれば、要求は推定できない(例えば、画像は記憶できるだけである)または低(もしくは無)特異度の要求が推定できる。
【0074】
図4は、本明細書に記載される実装例に従ってクライアント装置106
1上で、かつ/またはそれと併せて動作する自動アシスタント(
図1における120、
図2に図示せず)のインスタンスとユーザ(図示せず)がどのように対話できるかの別の例を例示する。
図4のインタフェースは
図2A、
図2Bおよび
図3のそれと類似しており、そして同様の番号は同様の部品を指す。
図4において、カメラ111
1はその視界にワインのボトル261を捉えた。取得画像およびワインのボトル261の描画261Cは描画261A(
図2A、
図3)および261B(
図2B)と異なる。描画261Cはワインのボトル261のラベルの大部分を捉えるが、「ヴィンヤード」の一部を欠き、かつ「2014」における「4」を欠く。
【0075】
図4において、ユーザは「これを1ケース注文して」という自然言語入力を与えた。要求エンジン124は、自然言語入力がクライアント装置106
1の環境内の物体に関連した要求であると判定し、そして要求解決エンジン130に要求の指示を提供できる。
【0076】
要求解決エンジン130は、自然言語入力および取得画像を使用して要求を解決しようと試みる。例えば、要求解決エンジン130は、画像処理エンジン142のうちの1つまたは複数に取得画像を提供できる。画像処理に基づいて、画像処理エンジン142は、「ワインボトル」の分類属性、「仮定のヴィンヤード」のブランド属性(例えば、観測可能な「仮定の」および観測可能な「ヴィン」に基づく)、ならびに「メルロー」のタイプ属性を決定できる。しかしながら、要求解決エンジン130は、必要とされる「ヴィンテージ」項目に対する属性が解決可能でない(例えば、特定の年代を十分高い信頼で解決できない)と判定できる。「ヴィンテージ」項目が解決不可能であり、かつ「1ケース注文する」要求に対して必要とされる結果として、プロンプトエンジン126は、「分かりました、仮定のヴィンヤードのメルローのヴィンテージはどうしますか?」というプロンプト472Aを決定および提供する。プロンプト472Aは可聴プロンプトとして
図4に例示されるが、他の実装例ではグラフィカルであることができる。プロンプトエンジン126は、未解決の項目(ヴィンテージ)に基づいてかつ解決された属性に基づいて(ブランドおよびタイプに対する決定された属性への参照を含むことによって)プロンプト472Aを決定できる。
【0077】
プロンプト472Aは、ユーザに、ヴィンテージ項目に対する属性を解決するために活用できるさらなる自然言語入力(例えば、音声入力)を与えるように要請する。例えば、ユーザはプロンプト472Aに「2014」という音声入力で応答してよく、そして「2014」はヴィンテージ項目に対する属性として活用されてよい。一部の実装例では、自動アシスタント120は、さらなる音声入力を見越して、クライアント装置106
1のマイクロホンがプロンプト472Aの提供を受けて作動されるようにしてよい。代替的に、プロンプト472Aは、完全な年代「2014」を見ることができる第2の画像(例えば、
図2Bの261B)を入力することによって対処され得る。
【0078】
要求解決エンジン130は、次いで「2014」という追加属性および先に決定された属性を活用して要求を解決できる。例えば、要求解決エンジン130は、エージェント146のうちの1つに、「仮定のヴィンヤードの2014メルロー」が1ケース注文されるようにするエージェントクエリを提出できる。エージェントクエリに応じてエージェントから任意選択で追加内容を受け取ることができ(例えば、命令の確認、合計価格および/または予想配達日)、そして追加内容の少なくとも一部が任意選択でユーザへの提示のために提供できる。
【0079】
図5Aおよび
図5Bは、本明細書に記載される実装例に従ってクライアント装置106
1上で、かつ/またはそれと併せて動作する自動アシスタント(
図1における120、
図2に図示せず)のインスタンスとユーザ(図示せず)がどのように対話できるかの別の例を例示する。
図5Aのインタフェースは
図2A、
図2B、
図3および
図4のそれと類似しており、そして同様の番号は同様の部品を指す。
【0080】
図5Aにおいて、カメラ111
1は25セント硬貨561しかも、特に、ケンタッキー州25セント硬貨の「裏」側を捉えた。
図5Aにおいて、ユーザは「これについてもっと教えて」という自然言語入力を与えた。要求エンジン124は、自然言語入力が取得画像に関連した要求であると判定でき、そして要求解決エンジン130に要求の指示を提供する。
【0081】
要求解決エンジン130は、自然言語入力および取得画像を使用して要求を解決しようと試みる。例えば、要求解決エンジン130は、画像処理エンジン142のうちの1つまたは複数に取得画像を提供できる。画像処理に基づいて、要求解決エンジン130は、それが「2001年ケンタッキー州25セント硬貨」であると判定できる。例えば、要求解決エンジン130は、画像処理エンジン142のうちの1つがそれを「2001年ケンタッキー州25セント硬貨」と詳細に分類することに基づいて、それが「2001年ケンタッキー州25セント硬貨」であると判定できる。また例えば、要求解決エンジン130は、画像処理エンジン142のうちの1つがそれを「25セント硬貨」と分類することに基づいて、かつ画像処理エンジン142の別の1つが画像内の「ケンタッキー」および「2001」というテキストを認識することに基づいて、それが「2001年ケンタッキー州25セント硬貨」であると追加的または代替的に判定できる。要求解決エンジン130は、画像処理エンジン142に取得画像を提供することに基づいて、25セント硬貨に存在する追加テキストおよび/または追加実体をさらに決定できる。例えば、処理エンジン142のうちの1つによるOCR処理がテキスト「マイオールドケンタッキーホーム」も識別してよい、および/または画像処理が25セント硬貨上の「家屋」を「マイオールドケンタッキーホーム」家屋として識別してよい。
【0082】
図5Bに図示されるように、自動アシスタント120は、「それは2001年ケンタッキー州25セント硬貨です」という出力572Aを最初に提供する。そのような出力572Aは、例えば、「25セント硬貨」分類に対する目標特異度が「年」および「州」であると判定することに基づいて自動アシスタント120によって最初に提供できる。それに応じて、初期出力572Aに対して、ユーザは「いや、裏面の場所」という自然言語入力574Aを与える。自然言語入力574Aに基づいて、要求解決エンジン130は、25セント硬貨によって引用される特定の場/場所の調節された目標特異度を決定する。言い換えれば、要求解決エンジン130は、自然言語入力574Aでユーザによって与えられるフィードバックに基づいて目標特異度を調節する。応えて、要求解決エンジン130は、調節された目標特異度の要求を解決しようと試みる。例えば、要求解決エンジン130は、「マイオールドケンタッキーホーム」に関連するテキストおよび/または実体など、「場」に関連する画像から解決される属性を決定できる。取得画像に基づいてそのような属性が解決されなければ、ユーザが「場」を示すユーザインタフェース入力を与える、および/または「場」の追加画像を取得することを要求するためにプロンプトを提供できる。
【0083】
しかしながら、
図5Bの例では、要求解決エンジン130は、以前の取得画像に基づいて「マイオールドケンタッキーホーム」という属性を解決した。したがって、ユーザ入力574Aに応じて、要求解決エンジン130は、調節された特異度の要求を解決することができ、そして「マイオールドケンタッキーホーム」属性に基づいて応答572Bを生成する。例えば、要求解決エンジン130は、「マイオールドケンタッキーホーム」の検索要求を発行し、そして検索要求に応じて、応答572Bおよび追加検索結果を受け取れる。要求解決エンジン130は、追加検索結果が表示されるようにするようにユーザによって選択できる選択可能なオプション572Cと共に、出力として応答572Bを提供できる。
【0084】
一部の実装例では、「25セント硬貨」分類に対する目標特異度は、少なくとも部分的に
図5Aおよび
図5Bの対話に基づいてユーザおよび/または他のユーザに適合されてよい。例えば、そのような対話および/または類似の対話履歴に基づいて、「25セント硬貨」分類に対して「25セント硬貨上の具体的な場/場所」の学習された目標特異度が決定できる。したがって、25セント硬貨の取得画像に関連した以降の要求は、そのような決定された特異度を鑑みて適合できる。これらおよび他の方式では、自動アシスタント120との対話を介して与えられるユーザフィードバックが活用されて、要求がいつ解決されるかを学習できる、および/または様々な将来の要求に対する適切な目標特異度を学習できる。
【0085】
図6は、開示される技法が利用されてよい別のシナリオ例を示す。
図6において、クライアント装置106
Nは、クライアント装置106
N上で、かつ/またはそれと併せて実行する自動アシスタント120との口頭ヒューマンコンピュータダイアログにユーザ101が係わることを可能にするスタンドアロン対話型スピーカの形態をとる。この目的で、クライアント106
Nは、ユーザ101からの口頭入力を検出するための1つまたは複数のマイクロホン(
図6に図示せず)も含んでよい。クライアント装置106
Nは、画像を取得するように構成されるカメラ111
Nも含む。
図6に示されないが、一部の実装例では、クライアント装置106
Nは表示デバイスも含んでよい。
【0086】
この例では、ユーザ101は、「ロボット掃除機はなぜこんな音を立てているの?」という音声入力674Aを与える。
【0087】
自動アシスタント120の要求エンジン124は、「ロボット掃除機はなぜこんな音を立てているの?」という自然言語入力がクライアント装置106
Nの環境内の物体にかつ物体によって立てられている音に関連すると判定できる。一部の実装例では、要求エンジン124は、オーディオ(例えば、「こんな音」を捉えようと試みるオーディオ)および/または画像がそのような判定に応じて取得されるようにすることができる。
【0088】
要求エンジン124は、要求解決エンジン130に要求の指示を提供する。要求解決エンジン130は、自然言語入力ならびに取得オーディオおよび/または取得画像を使用して要求を解決しようと試みる。例えば、要求解決エンジン130は、追加処理エンジン144のうちの1つまたは複数に取得オーディオを提供できる。追加処理エンジン144は、オーディオを解析し、そしてオーディオから「3連続のビープ音」という属性を決定できる。言い換えれば、オーディオは、3連続のビープ音を立てているロボット掃除機を捉えた。
【0089】
要求解決エンジン130は次いで、例えば、検索システムエージェントに、入力674Aおよび解決されたオーディオ属性に基づいているエージェントクエリ(例えば、「3連続のビープ音はロボット掃除機にとって何を意味するのか」というエージェントクエリ)を提出することによって、要求を解決しようと試みることができる。エージェントクエリに応じて、検索システムは、いかなる答えも返すことができないかもしれず、または閾値を満たす信頼レベルで答えを返さないかもしれない。それに応じて、要求解決エンジン130は、要求が解決できないと判定できる。
【0090】
要求が解決不可能であることに基づいて、プロンプトエンジン126は、「カメラに掃除機を掲げてくれますか?」というプロンプト672Aを決定および提供する。例えば、プロンプト672Aは、クライアント装置106
Nのスピーカを介する可聴表現のために提供される。プロンプト672Aは、ユーザに、掃除機ロボット661に関連した追加属性を解決するために活用できる画像を取得する試みでカメラ111
Nの視界に掃除機ロボット661(「こんな音」を立てている)を保つように要請する。
【0091】
ユーザが最初にカメラ111
Nに掃除機を掲げた後に画像を取得できる。しかしながら、要求解決エンジン130は、画像から属性を解決できない、および/またはいずれの解決された属性も要求を解決するには依然として不十分であると判定してよい。それに応じて、ユーザに「それを動かして別の画像を取得させる」ように命令する別のプロンプト672Bが提供される。
【0092】
ユーザ101が掃除機をさらに動かした後に追加画像を取得でき、そして要求解決エンジン130は、追加画像から解決される属性に基づいて要求を解決することができるかもしれない。例えば、追加画像は、「仮定の掃除機」ブランドおよび/または掃除機の「3000」モデルの決定を可能にして、「3連続のビープ音は仮定の掃除機3000にとって何を意味するのか」というエージェントクエリが要求解決エンジン130によって作成されることを可能にしたかもしれない。そのエージェントクエリは検索システムエージェントに提出でき、そして高信頼の答えがそれに応じて返される。さらなる出力672Cは高信頼の答えに基づくことができる。例えば、高信頼の答えは、「3連続のビープ音は容器が一杯であることを意味します」というさらなる出力672Cに一致してよい。
【0093】
図7は
図6と類似している。特に、
図7においてユーザ101によって与えられる自然言語入力774Aは
図6の自然言語入力674Aと同じである。その上、自動アシスタント120は、自然言語入力774Aに基づいて、かついかなる取得された初期オーディオおよび/または画像に基づいても要求を解決することができないと同様に判定してよい。
図7において、プロンプト772Aは、ユーザがカメラ111
Nに掃除機661を掲げることを要求する代わりに、ユーザ101が自分の別個のスマートフォンで写真を撮ることを要求する。例えば、
図7に例示されるように、ユーザ101は、クライアント装置106
1(スマートフォンでよい)を活用して、掃除機661が接地している間に掃除機661の画像を取得できる。クライアント装置106
1およびクライアント装置106
Nは、本明細書に記載されるように自動アシスタント120を介して同じユーザにリンクできる。自動アシスタント120は、クライアント装置106
1によって(プロンプト772Aに応じて)取得された画像を活用して要求を解決できる。出力772Bは出力672Cと同じであり、そしてクライアント装置106
1によって取得される画像から導出される属性の他に、クライアント装置106
Nを介して取得されるオーディオに基づく属性に基づくことができる。これらおよび他の方式では、自動アシスタント120は、要求を解決する際にユーザの複数のデバイスからの自然言語入力および/またはセンサデータを活用することができる。
【0094】
図8は、本明細書に開示される実装例に係る方法例800を例示するフローチャートである。便宜上、フローチャートの動作は、動作を行うシステムに関して記載される。このシステムは、自動アシスタント120の1つまたは複数の部品など、様々なコンピュータシステムの様々な部品を含んでよい。その上、方法800の動作が特定の順に図示されるが、これは限定的であるとは意味されない。1つまたは複数の動作が再順序付け、省略または追加されてよい。
【0095】
ブロック802で、システムは、クライアント装置の環境内の物体に関連した要求を決定する。一部の実装例では、システムは、クライアント装置の自動アシスタントインタフェースを介して与えられる自然言語入力に基づいて要求を決定できる。自然言語入力は音声入力および/またはタイプ入力を含むことができる。一部の実装例では、システムは、クライアント装置を介して画像、録音および/または他のセンサデータが取得されることに基づいて要求を追加的または代替的に決定できる。一部の実装例では、システムは、ユーザによって選択されるインタフェース要素に基づいて、ならびに/または画像および/もしくは他のセンサデータが特定のインタフェースを介して取得されることに基づいて要求を追加的または代替的に決定できる。
【0096】
ブロック804で、システムは、クライアント装置から初期センサデータを受け取る。例えば、システムは、クライアント装置のカメラによって取得される初期画像を受け取れる。一部の追加または代替実装例では、システムは、クライアント装置と同じく関連付けられるユーザに関連を有する追加クライアント装置などの、追加クライアント装置から初期センサデータを追加的または代替的に受け取る。
【0097】
ブロック806で、システムは、ブロック804で受け取られた初期センサデータに基づいて物体の初期属性を解決する。例えば、初期センサデータが初期画像を含む場合、システムは、1つまたは複数の画像処理エンジンに初期画像を提供し、そしてそれに応じてエンジンから初期属性を受け取ることに基づいて初期属性を解決できる。
【0098】
ブロック808で、システムは、ブロック802の要求が物体のこれまでに解決された属性に基づいて解決可能であるかどうかを判定する。一部の実装例では、システムは、これまでに解決された属性が目標特異度で物体を定義するかどうかに基づいて、要求が解決可能であるかどうかを判定する。それらの実装例の一部では、目標特異度は分類学における物体の目標分類度であり、かつ/または1つもしくは複数の定義されるべき項目に関して定義され、ここで物体に対する項目は物体の分類(一般的もしくは具体的)に依存していることができる。それらの実装例の一部では、目標特異度は、ユーザによって与えられる初期自然言語入力、ユーザによって与えられるフィードバック、ユーザおよび/もしくは他のユーザの対話履歴、ならびに/または場所および/もしくは他のコンテキスト信号に基づいて追加的または代替的に決定できる。
【0099】
ブロック808で、システムが要求が解決可能であると判定すれば、システムはブロック816に進んで要求を解決する。一部の実装例では、ブロック808および816は協調して発生してもよい(例えば、システムは、ブロック816で要求を解決しようと試みることに基づいて、要求が解決可能である、または可能でないと判定してよい)。
【0100】
ブロック808で、システムが要求が解決可能でないと判定すれば、システムはブロック810に進んで、クライアント装置または追加クライアント装置を介する提示のためにプロンプトを提供する。プロンプトは、例えば、ユーザに追加センサデータを取得する(例えば、追加画像を撮る)、物体を動かす、かつ/またはユーザインタフェース入力(例えば、自然言語入力)を与えるように促すことができる。一部の実装例では、システムは、解決された物体に対する1つもしくは複数の属性(例えば、分類属性)に基づいて、かつ/または既に解決された属性によって定義されない項目に基づいて、プロンプトを決定する。
【0101】
ブロック812で、システムは、プロンプトを提供した後に、さらなる入力を受け取る。システムは、クライアント装置または追加クライアント装置を介してさらなる入力を受け取る。さらなる入力は、追加センサデータ(例えば、追加画像)および/またはユーザインタフェース入力(例えば、自然言語入力)を含むことができる。
【0102】
ブロック814で、システムは、さらなる入力に基づいて追加属性を解決する。システムは次いでブロック808に戻る。例えば、追加センサデータが追加画像を含む場合、システムは、1つまたは複数の画像処理エンジンに追加画像を提供し、そしてそれに応じてエンジンから追加属性を受け取ることに基づいて追加属性を解決できる。
【0103】
一部の実装例では、ブロック816はサブブロック817および818を含む。サブブロック817で、システムは、解決された属性のうちの1つまたは複数に基づいて追加内容を生成する。一部の実装例では、システムは、解決された属性の1つまたは複数に基づいて要求を作成し、エージェントに要求を提出し、そして要求に応じてエージェントから追加内容を受け取ることに基づいて、追加内容を生成する。それらの実装例の一部では、システムは、解決された属性(例えば、センサデータおよび/または自然言語入力から解決された属性)に基づいてエージェントを選択できる。ブロック818で、システムは、クライアント装置または追加クライアント装置を介する提示のために追加内容を提供する。例えば、システムは、可聴および/またはグラフィカル提示のために追加内容を提供できる。例えば、システムは、クライアント装置または追加クライアント装置に、追加内容を含むストリーミングオーディオを提供することによって、可聴提示のために追加内容を提供できる。
【0104】
図9は、本明細書に記載される技法の1つまたは複数の態様を行うために任意選択で活用されてよいコンピューティング装置例910のブロック図である。一部の実装例では、クライアント装置、自動アシスタント120および/または他の部品の1つまたは複数がコンピューティング装置例910の1つまたは複数の部品から成ってよい。
【0105】
コンピューティング装置910は、バスサブシステム912を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ914を典型的に含む。これらの周辺デバイスとしては、例えば、メモリサブシステム925およびファイル記憶サブシステム926を含む、記憶サブシステム924、ユーザインタフェース出力デバイス920、ユーザインタフェース入力デバイス922ならびにネットワークインタフェースサブシステム916を含んでよい。入出力デバイスは、コンピューティング装置910とのユーザ対話を可能にする。ネットワークインタフェースサブシステム916は、外部ネットワークへのインタフェースを提供し、かつ他のコンピューティング装置における対応するインタフェースデバイスに結合される。
【0106】
ユーザインタフェース入力デバイス922としては、キーボード、マウス、トラックボール、タッチパッドもしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイへ組み込まれるタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロホン、および/または他の種類の入力デバイスを含んでよい。一般に、用語「入力デバイス」の使用は、コンピューティング装置910へまたは通信ネットワーク上へ情報を入力する全ての可能な種類のデバイスおよび手段を含むと意図される。
【0107】
ユーザインタフェース出力デバイス920としては、表示サブシステム、プリンタ、ファックス機器、またはオーディオ出力デバイスなどの非視覚表示を含んでよい。表示サブシステムとしては、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を作成するための何らかの他のメカニズム(例えば、「スマート」グラスと関連する拡張現実感ディスプレイ)を含んでよい。表示サブシステムは、オーディオ出力デバイスを介してなどの非視覚表示も提供してよい。一般に、用語「出力デバイス」の使用は、コンピューティング装置910からユーザにまたは別のマシンもしくはコンピューティング装置に情報を出力する全ての可能な種類のデバイスおよび手段を含むと意図される。
【0108】
記憶サブシステム924は、本明細書に記載されるモジュールの一部または全ての機能性を提供するプログラミングおよびデータ構造を記憶する。例えば、記憶サブシステム924は、
図8の方法の選択された態様を行う他に、
図1に示される様々な部品を実装するロジックを含んでよい。
【0109】
これらのソフトウェアモジュールは一般に、プロセッサ914によって単独でまたは他のプロセッサとの組合せで実行される。記憶サブシステム924に使用されるメモリ925としては、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)930ならびに固定命令が記憶されるリードオンリメモリ(ROM)932を含むいくつかのメモリを含むことができる。ファイル記憶サブシステム926は、プログラムおよびデータファイルのための永続記憶を提供でき、そしてハードディスクドライブ、フロッピーディスクドライブに加えて関連する取外し可能媒体、CD-ROMドライブ、光ドライブ、または取外し可能媒体カートリッジを含んでよい。或る実装例の機能性を実装するモジュールは、ファイル記憶サブシステム926によって記憶サブシステム924に、またはプロセッサ914によってアクセス可能な他のマシンに記憶されてよい。
【0110】
バスサブシステム912は、コンピューティング装置910の様々な部品およびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム912が単一バスとして概略的に図示されるが、バスサブシステムの代替実装例が複数のバスを使用してよい。
【0111】
コンピューティング装置910は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティング装置を含む様々な種類であることができる。コンピュータおよびネットワークの絶えず変化する性質のため、
図9に示されるコンピューティング装置910の説明は、単に一部の実装例を例示する目的の具体例として意図される。
図9に示されるコンピューティング装置より多くのまたは少ない部品を有して、コンピューティング装置910の多くの他の構成が可能である。
【0112】
本明細書に述べられる或る実装例がユーザについての個人情報(例えば、他の電子通信から抽出されるユーザデータ、ユーザのソーシャルネットワークについての情報、ユーザの場所、ユーザの時間、ユーザの生体情報、ならびにユーザの活動および人口統計情報、ユーザ間の関係等)を収集または使用してよい状況では、ユーザには、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、ならびにユーザについて情報がどのように収集、記憶および使用されるかを制御する1つまたは複数の機会が設けられる。すなわち、本明細書に述べられるシステムおよび方法は、そうすることへの関連ユーザからの明示的な認可を受けた上でのみ、ユーザ個人情報を収集、記憶および/または使用する。
【0113】
例えば、ユーザには、プログラムまたは特徴がプログラムまたは特徴に関連するその特定のユーザまたは他のユーザについてのユーザ情報を収集するかどうかの制御権が与えられる。個人情報が収集されることになる各ユーザには、そのユーザに関連する情報収集の制御を可能にして、情報が収集されるかどうかに関するおよび情報のどの部分が収集されることになるかに関する許可または認可を与える、1つまたは複数の選択肢が提示される。例えば、ユーザには、通信ネットワークを通じて1つまたは複数のそのような制御選択肢が与えられ得る。加えて、或るデータは、個人識別可能情報が削除されるように、それが記憶または使用される前に1つまたは複数の手段で処理されてよい。1つの例として、ユーザの識別情報は、個人識別可能情報が判定できないように処理されてよい。別の例として、ユーザの地理的場所は、ユーザの特定の場所が判定できないようにより大きい領域に一般化されてよい。さらには、本開示に係る或る処理は、データおよび関連処理がネットワークまたは他の第三者装置またはサービスに共有されないように専らユーザの装置上で行われてよく、かつ追加のプライバシーおよびセキュリティのために暗号化および/またはパスワード保護されてよい。