(57)【特許請求の範囲】
【請求項１】
第2のユーザによって制御される所与のリソースへのアクセスに対する第1のユーザによる要求を、1つまたは複数のプロセッサにより動作させられる対話型アシスタントモジュールによって受信するステップと、
前記第1のユーザと前記第2のユーザとの第1の関係の1つまたは複数の属性を、前記対話型アシスタントモジュールによって判定するステップと、
前記第2のユーザと1人または複数の他のユーザとの1つまたは複数の他の関係の1つまたは複数の属性を、前記対話型アシスタントモジュールによって判定するステップと、
前記第1の関係の前記1つまたは複数の属性と前記1つまたは複数の他の関係の前記1つまたは複数の属性とを、前記対話型アシスタントモジュールによって比較するステップと、
前記比較したことに基づいて、前記所与のリソースへのアクセスを前記第1のユーザに提供する許可を、前記対話型アシスタントモジュールによって条件付きで仮定するステップと、
前記条件付きで仮定したことに少なくとも一部基づいて、前記所与のリソースへのアクセスを前記第1のユーザに、前記対話型アシスタントモジュールによって提供するステップと、を含み、
前記対話型アシスタントモジュールは前記所与のリソースへのアクセスを前記第1のユーザに提供する事前許可を有さず、
前記第1の関係の前記1つまたは複数の属性は前記第1のユーザと関連付けられた1つまたは複数の許可の第1のセットを含み、前記第1のセットの各許可は、前記対話型アシスタントモジュールが前記第2のユーザによって制御されるリソースへのアクセスを前記第1のユーザに提供することを許可し、
前記1つまたは複数の他の関係の前記1つまたは複数の属性は前記1人または複数の他のユーザと関連付けられた1つまたは複数の許可の1つまたは複数の追加のセットを含み、前記1つまたは複数の追加のセットの各セットは前記1人または複数の他のユーザの異なるユーザと関連付けられ、各追加のセットの各許可は、前記対話型アシスタントモジュールが前記許可と関連付けられたリソースへのアクセスを前記追加のセットと関連付けられたユーザに提供することを許可し、前記対話型アシスタントモジュールは前記所与のリソースへのアクセスを前記1人または複数の他のユーザに提供する事前許可を有する、コンピュータ実施方法。
【請求項２】
前記第1のセットあるいは前記1つまたは複数の追加のセットの少なくとも1つの許可は、サードパーティのアプリケーションと関連付けられる、請求項1に記載のコンピュータ実施方法。
【請求項３】
1つまたは複数の出力デバイスを介して、前記所与のリソースへのアクセスを前記第1のユーザに提供する許可を前記第2のユーザに請求する出力を、前記対話型アシスタントモジュールによって提供するステップをさらに含み、前記所与のリソースへの前記アクセスは前記請求したことへの応答にさらに基づいて提供され、前記応答は前記第2のユーザによって提供される、請求項1または2に記載のコンピュータ実施方法。
【請求項４】
前記所与のリソースへの前記アクセスは、前記所与のリソースの機密性レベルにさらに基づいて提供される、請求項1から3のいずれか一項に記載のコンピュータ実施方法。
【請求項５】
前記所与のリソースは、前記第1のユーザと前記第2のユーザとの間の音声通信チャネルを含む、請求項1から4のいずれか一項に記載のコンピュータ実施方法。
【請求項６】
前記第1の関係および前記1つまたは複数の他の関係の前記1つまたは複数の属性を判定するステップは、
前記第1のユーザ、前記第2のユーザ、および前記1人または複数の他のユーザの属性を表す複数の特徴ベクトルを形成するステップと、
1つまたは複数の機械学習モデルを用いて前記複数の特徴ベクトルの少なくともいくつか間の距離を判定するステップと、を含み、
前記複数の特徴ベクトルの任意の所与のペア間の距離は、特徴ベクトルの前記所与のペアによって表される2人のユーザ間の関係を表す、請求項1から5のいずれか一項に記載のコンピュータ実施方法。
【請求項７】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサと動作可能に結合されたメモリとを含み、前記メモリは命令を記憶し、前記命令は、前記1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに対話型アシスタントモジュールを動作させ、前記対話型アシスタントモジュールは、
第2のユーザによって制御される所与のリソースへのアクセスに対する第1のユーザによる要求を受信することと、
前記第1のユーザと関連付けられた信頼レベルを判定することと、
前記信頼レベルと関連付けられた他のユーザがアクセス可能である前記第2のユーザによって制御されるリソースを統御する1つまたは複数の基準を識別することと、
前記要求が前記1つまたは複数の基準を満たすとの判定に応答して、前記所与のリソースへのアクセスを前記第1のユーザに提供することとを行うように構成され、
前記対話型アシスタントモジュールは前記所与のリソースへのアクセスを前記第1のユーザに提供する事前許可を有さず、
前記信頼レベルは前記第1のユーザと前記第2のユーザとの関係の1つまたは複数の属性に基づいて前記対話型アシスタントモジュールによって推測され、そのような属性は前記第1のユーザと関連付けられた1つまたは複数の許可の第1のセットを含み、前記第1のセットの各許可は、前記対話型アシスタントモジュールが前記第2のユーザによって制御されるリソースへのアクセスを前記第1のユーザに提供することを許可する、システム。
【請求項８】
前記第1のユーザと関連付けられた前記信頼レベルは、前記第1のユーザと関連付けられた1つまたは複数の許可の第1のセットに基づいて推測され、前記第1のセットの各許可は、前記対話型アシスタントモジュールが前記第2のユーザによって制御されるリソースへのアクセスを前記第1のユーザに提供することを許可する、請求項7に記載のシステム。
【請求項９】
前記第1のユーザと関連付けられた前記信頼レベルは、1人または複数の他のユーザと関連付けられた1つまたは複数の許可の1つまたは複数の追加のセットに基づいてさらに推測され、前記対話型アシスタントモジュールは前記所与のリソースへのアクセスを前記1人または複数の他のユーザに提供する事前許可を有し、前記1つまたは複数の追加のセットの各セットは前記1人または複数の他のユーザの異なるユーザと関連付けられる、請求項8に記載のシステム。
【請求項１０】
各追加のセットの各許可は、前記対話型アシスタントモジュールが前記許可と関連付けられたリソースへのアクセスを前記追加のセットと関連付けられたユーザに提供することを許可する、請求項9に記載のシステム。
【請求項１１】
前記第1のセットあるいは前記1つまたは複数の追加のセットの少なくとも1つの許可は、サードパーティのアプリケーションと関連付けられる、請求項10に記載のシステム。
【請求項１２】
前記対話型アシスタントモジュールに、1つまたは複数の出力デバイスを介して、前記所与のリソースへのアクセスを前記第1のユーザに提供する許可を前記第2のユーザに請求する出力を提供させる命令をさらに含み、前記1つまたは複数の基準は前記第2のユーザによって提供された前記請求への応答を含む、請求項7から11のいずれか一項に記載のシステム。
【請求項１３】
前記所与のリソースは前記第2のユーザによって制御されるデータを含む、請求項7から12のいずれか一項に記載のシステム。
【請求項１４】
前記所与のリソースは前記第1のユーザと前記第2のユーザとの間の音声通信チャネルを含む、請求項7から13のいずれか一項に記載のシステム。
【請求項１５】
命令を含み、前記命令は、1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに以下の動作を行わせ、前記動作は、
第2のユーザによって制御される所与のリソースへのアクセスに対する第1のユーザによる要求を、前記1つまたは複数のプロセッサにより動作させられる対話型アシスタントモジュールによって受信することと、
前記第1のユーザと前記第2のユーザとの第1の関係の1つまたは複数の属性を、前記対話型アシスタントモジュールによって判定することと、
前記第2のユーザと1人または複数の他のユーザとの1つまたは複数の他の関係の1つまたは複数の属性を、前記対話型アシスタントモジュールによって判定することと、
前記第1の関係の前記1つまたは複数の属性と前記1つまたは複数の他の関係の前記1つまたは複数の属性とを、前記対話型アシスタントモジュールによって比較することと、
前記比較したことに基づいて、前記所与のリソースへのアクセスを前記第1のユーザに、前記対話型アシスタントモジュールによって提供することと、であり、
前記対話型アシスタントモジュールは前記所与のリソースへのアクセスを前記第1のユーザに提供する事前許可を有さず、
前記第1の関係の前記1つまたは複数の属性は前記第1のユーザと関連付けられた1つまたは複数の許可の第1のセットを含み、前記第1のセットの各許可は、前記対話型アシスタントモジュールが前記第2のユーザによって制御されるリソースへのアクセスを前記第1のユーザに提供することを許可し、
前記1つまたは複数の他の関係の前記1つまたは複数の属性は前記1人または複数の他のユーザと関連付けられた1つまたは複数の許可の1つまたは複数の追加のセットを含み、前記1つまたは複数の追加のセットの各セットは前記1人または複数の他のユーザの異なるユーザと関連付けられ、各追加のセットの各許可は、前記対話型アシスタントモジュールが前記許可と関連付けられたリソースへのアクセスを前記追加のセットと関連付けられたユーザに提供することを許可し、前記対話型アシスタントモジュールは前記所与のリソースへのアクセスを前記1人または複数の他のユーザに提供する事前許可を有する、少なくとも1つの非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話型アシスタントモジュールによるアクセスの条件付き提供に関する。
【背景技術】
【０００２】
スマートフォン、タブレット、スマートウォッチ、独立型スマートスピーカなどの計算デバイスにおいて現時点で実施されている対話型アシスタントモジュールは一般に、計算デバイスに音声入力を提供する者に対し応答するように構成される。対話型アシスタントモジュールの中には遠隔計算デバイスで発せられた(つまり入力された)音声入力に応答するものもあり、この音声入力は対話型アシスタントモジュールを動作させる計算デバイスに対し1つまたは複数のネットワーク上で送信されたものである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本明細書は対話型アシスタントモジュールによって行うコンピュータ実施処理のセキュリティ管理に関する技術的課題の解決について説明するものである。本明細書は概して、他のユーザ(いわゆる「制御ユーザ」)によって制御されるリソースへのアクセスを、最初に制御ユーザに許可を促しても促さなくても、要求ユーザに提供するよう対話型アシスタントモジュールを自動的に許可する様々な技術に関する。こうしたリソースはコンテンツ(例えばドキュメント、スケジュール、リマインダ、データ)、通信チャネル(例えば電話、テキスト、テレビ会議など)、信号(例えば現在地、軌道、行動)などを含んでもよいが、これらに限定されない。この自動許可付与は様々な方法で達成されてもよい。
【課題を解決するための手段】
【０００４】
様々な実施形態において対話型アシスタントモジュールは、第2のユーザによって制御されるリソース(制御ユーザ)へのアクセスを、第1のユーザ(要求ユーザ)と第2のユーザとの関係と、第2のユーザと1人または複数の他のユーザとの1つまたは複数の関係との比較に基づいて、第1のユーザに提供する許可を条件付き仮定してもよい。ある実施形態において対話型アシスタントモジュールは、第2のユーザとの第1のユーザと同様の関係(1つまたは複数の属性を共有する関係)を有する他のユーザと同様の、第2のユーザによって制御されるリソースへのアクセスを第1のユーザが有するべきであると仮定してもよい。例えば、第2のユーザは特定のリソースのセットへのアクセスを第2のユーザのある同僚に提供することを対話型アシスタントモジュールに許可すると想定する。対話型アシスタントは、第2のユーザとの同様の関係を有する第2のユーザの別の同僚に同様のリソースへのアクセスを提供することが許可されていると仮定してもよい。
【０００５】
ある実施形態において、対話型アシスタントモジュールによって検討されてもよい関係の属性は、特定のユーザに付与される許可のセットを含んでもよい。対話型アシスタントは(制御ユーザによって制御されるリソースへのアクセスを要求した)要求ユーザと関連付けられた許可の第1のセットへのアクセスを有し、第1のセットの各許可により対話型アシスタントモジュールは制御ユーザによって制御されるリソースへのアクセスを要求ユーザに提供すると想定する。様々な実施形態において対話型アシスタントモジュールはこの許可の第1のセットと、他のユーザと関連付けられた許可のセットとを比較してもよい。他のユーザには、要求ユーザにより要求されたリソースへのアクセスを提供する事前許可を対話型アシスタントモジュールが有するユーザが含まれてもよい。要求ユーザと関連付けられた許可の第1のセットと、他のユーザと関連付けられた1つまたは複数の許可のセットとが十分類似している場合、対話型アシスタントモジュールは要求されたリソースへのアクセスを要求ユーザに提供する許可を有すると仮定してもよい。
【０００６】
様々な実施形態において、制御ユーザの連絡先の様々な特徴(例えばユーザに対しまたはユーザにより付与される許可、位置など)を抽出することで各連絡先の特徴ベクトルを形成してもよい。同様に、要求ユーザと関連付けられた(例えばコンテンツデータから抽出された)特徴に基づいて特徴ベクトルが形成されてもよい。その後、対話型アシスタントモジュールによって採用されてもよい埋込などの様々な機械学習技術により、例えば様々な特徴ベクトル間の距離を判定してもよい。その後こうした距離は、該当ユーザ間の関係の特徴として用いられてもよい。例えば要求ユーザのベクトルと制御ユーザのベクトルとの間の(例えば縮小次元空間における)第1の距離は、制御ユーザのベクトルと、要求されたリソースへのアクセスを提供する事前許可を対話型アシスタントモジュールが有する別のユーザのベクトルとの間の第2の距離と比較されてもよい。2つの距離が十分類似する場合、あるいは第1の距離が第2の距離よりも短い場合(より近い関係を示唆)、対話型アシスタントモジュールは要求されたリソースへのアクセスを要求ユーザに提供することが許可されていると仮定してもよい。
【０００７】
上記の「許可」は様々な形式であってもよい。ある実施形態において許可は、例えば確認、修正などのために、制御ユーザによって制御されるドキュメント、リマインダ、タスクリストなどのコンテンツへのアクセスを例えば対話型アシスタントモジュールが要求ユーザに提供する許可を含んでもよい。さらにまたはあるいは、許可は(例えば制御ユーザのモバイルデバイスの位置座標センサが提供するような)通信チャネル、現在地、制御ユーザのソーシャルネットワークプロフィールと関連付けられたデータ、制御ユーザの個人情報、制御ユーザのアカウントなどへのアクセスを対話型アシスタントモジュールが要求ユーザに提供する許可を含んでもよい。ある実施形態において許可は、相乗りアプリケーションに対しユーザにより付与された許可(例えばユーザの現在地へのアクセスに対する許可)、ソーシャルネットワーキングアプリケーション(例えばアプリケーションが写真/位置にアクセスし互いに写真にタグする許可)などのサードパーティのアプリケーションと関連付けられた許可を含んでもよい。
【０００８】
制御ユーザによって制御されるリソースへのアクセスを要求ユーザに提供する許可を仮定するかどうかを判定するために、様々な他のアプローチが対話型アシスタントモジュールにより用いられてもよい。例えば、ある実施形態において複数のいわゆる「信頼レベル」を制御ユーザが設定してもよい(あるいは対話型アシスタントモジュールが学習により経時的に自動的に設定してもよい)。各信頼レベルはメンバーのセット(つまり制御ユーザの連絡先、ソーシャルメディア関係など)と、メンバーに対し対話型アシスタントが有する許可のセットとを含んでもよい。
【０００９】
ある実施形態において要求ユーザは1つまたは複数の基準を満たすことにより制御ユーザの所与の信頼レベルでの会員資格を得てもよい。こうした基準は、制御ユーザと十分な対話があること、共有コンテンツ(例えばドキュメント、スケジュール情報)の量が十分あること、制御ユーザにより手作業で信頼レベルに追加されることなどを含んでもよいが、これらに限定されない。制御ユーザによって制御されるリソースへのアクセスを要求ユーザが要求する場合、対話型アシスタントモジュールは(i)信頼レベルがあるとすれば、要求されたリソースへのアクセスを提供することを対話型アシスタントモジュールに許可する信頼レベルはどのレベルか、および(ii)要求ユーザが判定された信頼レベルのいずれかのレベルのメンバーであるかどうか、を判定してもよい。こうした判定の結果に基づいて、対話型アシスタントモジュールは要求されたリソースへのアクセスを要求ユーザに提供してもよい。
【００１０】
このためある実施形態の方法は、第2のユーザによって制御される所与のリソースへのアクセスに対する第1のユーザによる要求を、1つまたは複数のプロセッサによって動作させられる対話型アシスタントモジュールによって受信するステップであって、対話型アシスタントモジュールは所与のリソースへのアクセスを第1のユーザに提供する事前許可がない、受信するステップと、第1のユーザと第2のユーザとの第1の関係の1つ以上1つまたは複数の属性を、対話型アシスタントモジュールが対話型アシスタントモジュールによって判定するステップと、第2のユーザと1人または複数の他のユーザとの1つまたは複数の他の関係の1つまたは複数の属性を対話型アシスタントモジュールによって判定するステップであって、対話型アシスタントモジュールは所与のリソースへのアクセスを1人または複数の他のユーザに提供する事前許可を有する、判定するステップと、第1の関係の1つまたは複数の属性と1つまたは複数の他の関係の1つまたは複数の属性とを対話型アシスタントモジュールによって比較するステップと、比較したことに基づいて、所与のリソースへのアクセスを第1のユーザに提供する許可を対話型アシスタントモジュールによって条件付きで仮定するステップと、条件付きで仮定したことに基づいて、所与のリソースへのアクセスを第1のユーザに対話型アシスタントモジュールによって提供するステップと、を含んでもよい。
【００１１】
様々な実施形態において第1の関係の1つまたは複数の属性を判定するステップは、第1のユーザと関連付けられた1つまたは複数の許可の第1のセットを対話型アシスタントモジュールによって識別するステップを含み、第1のセットの各許可は対話型アシスタントモジュールが第2のユーザによって制御されるリソースへのアクセスを第1のユーザに提供することを許可することを含んでもよい。
【００１２】
様々な実施形態において1つまたは複数の他の関係の1つまたは複数の属性を判定するステップは、1人または複数の他のユーザと関連付けられた1つまたは複数の許可の1つまたは複数の追加のセットを対話型アシスタントモジュールによって識別するステップを含み、1つまたは複数の追加のセットの各セットは1人または複数の他のユーザの異なるユーザと関連付けられ、各追加のセットの各許可は、対話型アシスタントモジュールが許可と関連付けられたリソースへのアクセスを追加のセットと関連付けられたユーザに提供することを許可することを含んでもよい。
【００１３】
様々な実施形態において比較するステップは、第1のセットと1つまたは複数の追加のセットの各々とを対話型アシスタントモジュールによって比較するステップを含んでもよい。
【００１４】
様々な実施形態において第1のセットあるいは1つまたは複数の追加のセットの少なくとも1つの許可はサードパーティのアプリケーションと関連付けられてもよい。
【００１５】
様々な実施形態において方法はさらに、1つまたは複数の出力デバイスを介して、所与のリソースへのアクセスを第1のユーザに提供する許可を第2のユーザに請求する出力を、対話型アシスタントモジュールによって提供するステップをさらに含み、条件付きで仮定するステップは第2のユーザにより提供された請求への応答にさらに基づいてもよい。様々な実施形態においてリソースは第2のユーザによって制御されるデータを含んでもよい。
【００１６】
様々な実施形態においてリソースは第1のユーザと第2のユーザの間の音声通信チャネルを含んでもよい。
【００１７】
様々な実施形態において第1の関係および1つまたは複数の他の関係の1つまたは複数の属性を判定するステップは、第1のユーザ、第2のユーザ、および1人または複数の他のユーザの属性を表す複数の特徴ベクトルを形成するステップと、1つまたは複数の機械学習モデルを用いて複数の特徴ベクトルの少なくともいくつか間の距離を判定するステップと、を含み、複数の特徴ベクトルの任意の所与のペア間の距離は、特徴ベクトルの所与のペアによって表される2人のユーザ間の関係を表すことを含んでもよい。
【００１８】
別の態様の方法は、第2のユーザによって制御される所与のリソースへのアクセスに対する第1のユーザによる要求を対話型アシスタントモジュールによって受信するステップであって、対話型アシスタントモジュールは所与のリソースへのアクセスを第1のユーザに提供する事前許可がない、受信するステップと、対話型アシスタントモジュールによって第1のユーザと関連付けられた信頼レベルを判定するステップであって、信頼レベルは第1のユーザと第2のユーザとの関係の1つまたは複数の属性に基づいて対話型アシスタントモジュールによって推測される、判定するステップと、信頼レベルと関連付けられた他のユーザがアクセス可能である第2のユーザによって制御されるリソースを統御する1つまたは複数の基準を対話型アシスタントモジュールによって識別するステップと、要求が1つまたは複数の基準を満たすとの判定に応答して、対話型アシスタントモジュールによって所与のリソースへのアクセスを第1のユーザに提供するステップと、を含んでもよい。
【００１９】
また、ある実施形態はメモリと、メモリに記憶された命令を実行するよう動作可能な1つまたは複数のプロセッサを備えた装置を含んでもよく、命令は上記方法のいずれかを行うように構成される。ある実施形態は上記方法のいずれかを行うために1つまたは複数のプロセッサにより実行可能なコンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体を含んでもよい。
【００２０】
前述の概念と本明細書でさらに詳しく説明される追加概念の組合せは全て、本明細書で開示される対象事項の一部と考えられると認識されなければならない。例えば本開示の末尾で請求された対象事項の組合せは、本明細書で開示される対象事項の一部と考えられる。
【図面の簡単な説明】
【００２１】
【図１】コンピュータシステムの一例の構造を示す図である。
【図２】一例としての分散型音声入力処理環境のブロック図である。
【図３】図2の環境を用いた音声入力処理に関する一例としての方法を示すフローチャートである。
【図４】どのように開示技術を様々な実施形態に従い実行し得るのかに関する一例を示す図である。
【図５】様々な実施形態に従いレンダリングされ得るグラフィカルユーザインタフェースの一例を示す図である。
【図６】様々な実施形態に従った一例の方法を示すフローチャートである。
【発明を実施するための形態】
【００２２】
図面について、複数の図を通して同じ数字は同じ部品を表す。図1は一例のコンピュータシステム10における電子部品のブロック図である。システム10は通常、バスサブシステム14を介して多数の周辺機器と通信するプロセッサ12を少なくとも1つ含む。これら周辺機器は、例えばメモリサブシステム18とファイル記憶サブシステム20を含む記憶サブシステム16、ユーザインタフェース入力デバイス22、ユーザインタフェース出力デバイス24、ネットワークインタフェースサブシステム26を含んでもよい。入力デバイスと出力デバイスによりユーザはシステム10と対話できる。ネットワークインタフェースサブシステム26は外部ネットワークとのインタフェースを提供し、他のコンピュータシステムの対応インタフェースデバイスと連結される。
【００２３】
ある実施形態においてユーザインタフェース入力デバイス22はキーボード、マウスなどのポインティングデバイス、トラックボール、タッチパッド、グラフィックスタブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイク、および/または他の種類の入力デバイスを含んでもよい。通常「入力デバイス」という用語を使用する際は、コンピュータシステム10内または通信ネットワーク上に情報を入力するためのあらゆる種類のデバイスや方法を含むことが意図される。
【００２４】
ユーザインタフェース出力デバイス24はディスプレイサブシステム、プリンタ、ファックス機、音声出力デバイスなどの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムはブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投射デバイス、他の可視画像作成機構を含んでもよい。ディスプレイサブシステムは音声出力デバイスを介した非視覚ディスプレイを提供してもよい。通常「出力デバイス」という用語を使用する際は、コンピュータシステム10からユーザまたは別の機械やコンピュータシステムに情報を出力するためのあらゆる種類のデバイスや方法を含むことが意図される。
【００２５】
記憶サブシステム16は、本明細書で説明されるモジュールの一部または全ての機能を提供するプログラミングやデータ構造を記憶する。例えば記憶サブシステム16は以下に開示の方法のうち選択された態様を行う論理を含んでもよい。
【００２６】
これらソフトウェアモジュールは通常プロセッサ12単体で、あるいは他のプロセッサと組み合わせて実行される。記憶サブシステム16で使用されるメモリサブシステム18は、プログラム実行中に命令やデータを記憶するための主ランダムアクセスメモリ(RAM)28を含む多数のメモリと、固定命令を記憶する読み出し専用メモリ(ROM)30とを含んでもよい。ファイル記憶サブシステム20はプログラムとデータファイルの永続的記憶を提供し、ハードディスクドライブ、関連付けられたリムーバブルメディアを伴うフロッピー(登録商標)ディスクドライブ、CD-ROMドライブ、光学ドライブ、リムーバブルメディアカートリッジを含んでもよい。特定の実施形態の機能を実施するモジュールがファイル記憶サブシステム20により記憶サブシステム16内に記憶されてもよく、あるいはプロセッサ12によりアクセス可能な他の機械に記憶されてもよい。
【００２７】
バスサブシステム14はシステム10の様々な構成部品やサブシステムが意図したとおり互いに通信できるようにする機構を提供する。バスサブシステム14は単一のバスとして模式的に示されているが、バスサブシステムの代替実施形態では複数のバスを使用してもよい。
【００２８】
システム10はモバイルデバイス、携帯電子デバイス、埋込デバイス器、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、独立型音声起動製品(例えばスマートスピーカ)、ウェアラブルデバイス、ワークステーション、サーバ、計算クラスタ、ブレードサーバ、サーバファーム、その他データ処理システム、あるいは計算デバイスを含む様々な種類のシステムであってもよい。また、システム10により実施される機能は1つまたは複数のネットワーク上で、例えばクライアントのサーバ、ピアツーピア、他のネットワーキング構成で互いに相互接続される複数のシステムに分散されてもよい。コンピュータやネットワークは時々刻々と変化する性質であるため、図1に描くシステム10の記載は、ある実施形態を図解することを目的とした具体的一例に過ぎないことが意図される。システム10については図1に描くコンピュータシステムよりも構成部品が多いまたは少ない多数の他の構成が可能である。
【００２９】
以下で説明される実施形態は、本明細書で開示される機能の様々な組合せを実施する1つまたは複数の方法を含んでもよい。他の実施形態では、本明細書に記載される1つまたは複数の方法などの方法を行うために、プロセッサにより実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含んでもよい。さらに他の実施形態はメモリと、メモリに記憶され、本明細書に記載される1つまたは複数の方法などの方法を行う命令を実行するよう動作可能な1つまたは複数のプロセッサを有する装置を含んでもよい。
【００３０】
以下に記載される様々なプログラムコードは、特定の実施形態で実施されるアプリケーションに基づいて識別されてもよい。但し、以下の特定のプログラム名称は便宜上用いているに過ぎないと認識されなければならない。さらに、コンピュータプログラムを体系化してルーチン、手順、方法、モジュール、オブジェクトなどにできる方法が無数あり、典型的なコンピュータ(例えばオペレーティングシステム、ライブラリ、API、アプリケーション、アプレットなど)内に存在する様々なソフトウェア層にプログラム機能を割り当てることができる様々な方法があるため、ある実施形態は本明細書に記載される特定の構成やプログラム機能の割り当てに限定されるものではないと認識されなければならない。
【００３１】
さらに、プログラムコードにより行われる、あるいはルーチン、ワークフローなどで行われる本明細書に記載の様々な動作は、組合せ、分割、並べ替え、省略、順次または並行に実施されてもよく、および/または他の技術で補完されてもよいため、ある実施形態は本明細書に記載される特定の一連動作に限定されるものではないと認識されるものとする。
【００３２】
図2は例えばオンライン語義プロセッサ54のようなオンラインサービスと通信する音声対応デバイス52で使用される分散型音声入力処理環境50の一例を示す。以下に記載される実施形態において、例えば音声対応デバイス52は携帯電話やタブレットコンピュータなどのモバイルデバイスとして記載される。他の実施形態では多様な他の音声対応デバイスを活用してもよいため、以下での説明を簡略化する目的のためだけにモバイルデバイスを以下で言及する。例えばラップトップコンピュータ、時計、頭部装着型デバイス、仮想または拡張現実デバイス、他のウェアラブルデバイス、オーディオ/ビデオシステム、ナビゲーションシステム、自動車、その他車両システムなどを含む無数の他の種類の音声対応デバイスで本明細書に記載された機能を用いてもよい。
【００３３】
ある実施形態のオンライン語義プロセッサ54はクラウドインフラを採用して、例えば複数のユーザからの大容量の宣言を処理するのに適したソフトウェアを動かす高性能コンピュータのサーバファームやクラスタを用いて、クラウドベースサービスとして実施されてもよい。オンライン語義プロセッサ54は音声ベースの宣言に限定されず、他の種類の宣言、例えばテキストベースの宣言、画像ベースの宣言などの処理が可能であってもよい。ある実施形態においてオンライン語義プロセッサ54は音声ベースの宣言を処理してもよくこれはアラームやリマインダの設定、リスト管理、電話、テキスト、電子メールなどによる他のユーザとの通信の始動、音声入力により始動できる他のアクションの実行などである。
【００３４】
図2の実施形態では、音声対応デバイス52により受信された音声入力は、図2では対話型アシスタントモジュール56の形式である音声対応アプリケーション(または「アプリ」)により処理される。他の実施形態では音声入力が音声対応デバイス52のオペレーティングシステムまたはファームウェア内で処理されてもよい。図示した実施形態の対話型アシスタントモジュール56は音声アクションモジュール58と、オンラインインタフェースモジュール60と、レンダリング/同期モジュール62とを含む。音声アクションモジュール58は対話型アシスタントモジュール56に向けられた音声入力を受信し、音声入力の分析と音声対応デバイス52のユーザに対する1つまたは複数のアクションの実行を調整する。オンラインインタフェースモジュール60はオンライン語義プロセッサ54とのインタフェースを提供し、これにはオンライン語義プロセッサ54に音声入力を転送し、オンライン語義プロセッサ54に対する応答を受信することが含まれる。レンダリング/同期モジュール62は、例えば視覚表示、発話音声、特定の音声対応デバイスに適した他のフィードバックインタフェースを介して、ユーザへの応答のレンダリングを管理する。また、ある実施形態においてモジュール62は、例えば応答やアクションがオンライン検索サービスでユーザ用に保持されたデータに影響を与える場合(例えば音声入力で予約の作成を要求し、その予約がクラウドベースのカレンダに保持される場合)は必ずオンライン語義プロセッサ54との同期も処理する。
【００３５】
対話型アシスタントモジュール56は音声入力を処理する様々なミドルウェア、フレームワーク、オペレーティングシステムおよび/またはファームウェアモジュールに依拠してしてもよく、これには例えばストリーミング音声テキスト化モジュール64や、パーサモジュール68と、ダイアログマネージャモジュール70と、アクションビルダモジュール72とを含む語義プロセッサモジュール66が含まれる。
【００３６】
モジュール64は音声入力の音声記録を、例えばデジタル音声データ形式で受信し、デジタル音声データを1つまたは複数のテキスト単語や句(以下では「トークン」とも称す)に変換する。図示の実施形態においてモジュール64はストリーミングモジュールでもあり、音声入力がトークン毎にリアルタイムまたは準リアルタイムでテキストに変換されるようにし、ユーザが完全な発話宣言をはっきり発音する前に、ユーザの音声と同時に効果的にトークンがモジュール64から出力されるようにしてもよい。モジュール64はローカルに記憶された1つまたは複数のオフライン音響および/または言語モデル74に依拠してもよく、これらを合わせて音声信号と言語の音韻単位との関係が言語の語系列に沿ってモデル化される。ある実施形態では単一のモデル74が使用されてもよいが、他の実施形態では複数のモデルがサポートされることで、例えば複数の言語や複数の話し手などをサポートしてもよい。
【００３７】
モジュール64は音声をテキストに変換する一方、モジュール66は適切な応答を作成する目的で、モジュール64により出力されたテキストの語義や意味を識別しようと試みる。パーサモジュール68は、例えば、1つまたは複数のオフライン文法モデル76に依拠し、テキストを特定のアクションに対応付け、このようなアクションを強いて行わせる属性、例えばこのようなアクションに対する入力変数を識別する。ある実施形態では単一のモデル76が使用されてもよいが、他の実施形態では複数のモデルがサポートされることで、例えば異なるアクションやアクションドメイン(つまり通信に関連付けられたアクション、検索に関連付けられたアクション、音声/表示に関連付けられたアクション、カレンダに関連付けられたアクション、デバイス制御に関連付けられたアクションなどの関連アクションの集合体)をサポートしてもよい。
【００３８】
例として、オフライン文法モデル76は、どの種類のリマインダを設定するかを特定するリマインダ種類パラメータ、リマインダと関連付けられた1つまたは複数の項目を特定する項目パラメータ、リマインダを作動させてユーザに思い出させる時間を特定する時間パラメータを有する「リマインダ設定」などの動作をサポートしてもよい。パーサモジュール68は「を思い出させる」、「ピックアップ」、「パン」、「勤務後」などのトークンシーケンスを受信し、トークンシーケンスを「買い物リマインダ」に設定されたリマインダ種類パラメータ、「パン」に設定された項目パラメータ、「5:00pm」に設定された時間パラメータと共にリマインダ設定動作に対応付けてもよく、これによりユーザが当日5:00pmに「パン購入」リマインダを受信する。
【００３９】
パーサモジュール68はユーザとの対話を管理するダイアログマネージャモジュール70と連動してもよい。この文脈での対話とは、2人の個人間の会話と同様の音声入力と応答のセットを意味する。よってモジュール70は対話「状態」を維持し、先の音声入力でユーザから得られた情報を次の音声入力処理時に使用できるようにする。このように、例えばユーザが「パンをピックアップすることを思い出させて」と言った場合、「OK、いつ思い出させてほしいですか」という応答が作成され得るため、「勤務後」という次の音声入力が元の要求に結び付けられ、リマインダが作成される。ある実施形態においてモジュール70は対話型アシスタントモジュール56の一部として実施されてもよい。
【００４０】
アクションビルダモジュール72は音声入力解釈を表すパースされたテキストをパーサモジュール68から受信し、関連パラメータに沿って1つまたは複数の応答アクションや「タスク」を生成し、対話型アシスタントモジュール56のモジュール62により処理されるようにする。アクションビルダモジュール72は、パースされたテキストからアクションを作成する様々なルールを組み入れた1つまたは複数のオフラインアクションモデル78に依拠してもよい。あるパラメータは直接音声入力として受信されてもよいが、あるパラメータを他の方法で、例えばユーザの位置、人口統計リソース、あるいはユーザ特有の他のリソースに基づいて判定されてもよいと認識されるものとする。例えば、ユーザが「食料品店でパンをピックアップすることを思い出させて」と言った場合、ユーザの現在地、勤務先と家との間でユーザが知っているルート、ユーザのいつもの食料品店などの追加情報がなければ位置パラメータは判定不可としてもよい。
【００４１】
ある実施形態においてモジュール64、68、70、72の機能となるようにモデル74、76、78は統合されて少数モデルにされてもよく、あるいは分割されて追加モデルにされてもよいと認識されるものとする。また、デバイス52がオンライン語義プロセッサ54と通信していない場合、モデルは音声対応デバイス52上にローカルに記憶され、オフラインでアクセス可能である限りにおいて、本明細書ではモデル74〜78はオフラインモデルと称される。また、本明細書ではモジュール56は対話型アシスタントモジュールであるとして記載されるが、これは限定を意味するものではない。様々な実施形態において、音声対応デバイス52上で動作するあらゆる種類のアプリは、他のユーザ(いわゆる「制御ユーザ」)によって制御されるリソースへのアクセスを要求ユーザに提供するために、最初に制御ユーザに許可を促しても促さなくても、対話型アシスタントモジュールを自動的に許可するための本明細書に記載の技術を実行してもよい。
【００４２】
様々な実施形態においてオンライン語義プロセッサ54は音声入力を処理するための補足機能を含んでもよく、例えば様々な音響/言語、文法および/またはアクションモデル82に依拠する音声ベースクエリプロセッサ80を用いてもよい。ある実施形態において特に音声対応デバイス52がリソース制約デバイスである場合、音声ベースクエリプロセッサ80と、音声ベースクエリプロセッサ80により使用されるモデル82は、音声対応デバイス52のローカルな機能よりも複雑で計算形のリソース集約型音声処理機能を実施してもよいと認識されるものとする。
【００４３】
ある実施形態において複数の音声ベースクエリプロセッサ80が採用され、各プロセッサが1つまたは複数の個別対話型アシスタントモジュール56のオンライン対応物として動作してもよい。例えば、ある実施形態においてユーザのエコシステムの各デバイスは、ユーザと関連付けられた対話型アシスタントモジュール56のインスタンスを動作させるように構成されてもよい(例えばユーザの好みで構成される、同様の対話履歴と関連付けられるなど)。音声ベースクエリプロセッサ80の単一のユーザセントリックのオンラインインスタンスは、その時にユーザが動作しているデバイスによって、対話型アシスタントモジュール56のこれらの複数のインスタンスの各々にアクセス可能としてもよい。
【００４４】
ある実施形態において、オンライン機能とオフライン機能が共にサポートされ、例えばデバイスがオンラインサービスと通信している時は必ずオンライン機能が使用されるようにし、通信が存在しない場合はオフライン機能が使用されるようにしてもよい。他の実施形態では異なるアクションやアクションドメインがオンライン機能とオフライン機能に割り当てられてもよく、さらに他の実施形態ではオフライン機能が特定の音声入力を十分処理できない場合に限りオンライン機能が使用されるようにしてもよいが、他の実施形態では補足オンライン機能は使用されないようにしてもよい。
【００４５】
図3は、例えば、音声入力を処理するために音声対応デバイス52により実行されてもよい音声処理ルーチン100を示す。ルーチン100は例えばデジタル音声信号形式で音声入力を受信することでブロック102を開始する。この実施形態では音声入力をオンライン検索サービスに転送する最初の試みがなされる(ブロック104)。例えば接続性の欠如やオンライン検索サービスからの応答の欠如によりこれに成功しない場合、ブロック106はブロック108に制御を移行し、音声入力をテキストトークンに変換し(ブロック108、例えば図2のモジュール64を使用)、テキストトークンをパースし(ブロック110、例えば図2のモジュール68を使用)、パースされたテキストからアクションを構築する(ブロック112、例えば図2のモジュール72を使用)。その後、結果としての生じるアクションによりクライアント側のレンダリングと同期を行い(ブロック114、例えば図2のモジュール62を使用)、音声入力処理が完了する。
【００４６】
ブロック106に戻り、音声入力をオンライン検索サービスに転送する試みが成功した場合、ブロック106はブロック108〜112を飛び越え、直接ブロック114に制御を移行し、クライアント側のレンダリングと同期を行う。その後、音声入力処理が完了する。他の実施形態では、例えば音声入力がローカルに処理され得る場合に不要なデータ通信を回避するために、上記のとおりオンライン処理の前にオフライン処理を試みてもよいと認識されるものとする。
【００４７】
図4は他のユーザ(いわゆる「制御ユーザ」)によって制御されるリソースへのアクセスを要求ユーザに提供するために、最初に制御ユーザからの許可を求めても求めなくても、対話型アシスタントモジュール56が単独で、あるいは対応物のオンライン版音声ベースプロセッサ80と連動して、どのように許可を自動的に推測または条件付きで仮定し得るのかについての一例としてのシナリオ420を模式的に示す。本例において第1の携帯電話422Aは第1のユーザ(不図示)により操作され、第2の携帯電話422Bは第2のユーザ(不図示)により操作される。
【００４８】
第1のユーザはある基準が満たされなければ電話着信を拒絶するよう第1の携帯電話422Aを構成したと想定する。例えば、第1のユーザは現時点で他の誰かとの通話で第1の携帯電話422Aを使用中であってもよく、他の誰かとのビデオ会議のために第1の携帯電話422Aを使用中であってもよく、あるいは第1の携帯電話422Aを「応答不可」設定に設定したとしてもよい。さらに、第2のユーザは第2の携帯電話422Bを操作し、例えば1つまたは複数のセルラー塔424を介して第1の携帯電話422Aに電話をかけたと想定する。
【００４９】
様々な実施形態において第1の携帯電話422A上で動く、あるいは第1の携帯電話422Aおよび/または第1のユーザに代わって動く対話型アシスタントモジュール(例えば上記56)が着信を検出し、この着信を、第1のユーザによって制御される所与のリソース、つまり第1のユーザと第2のユーザの間の音声通信チャネルへのアクセスに対する第2のユーザによる要求と解釈する。ある実施形態において対話型アシスタントモジュールは、着信電話番号や第2の携帯電話422Bと関連付けられた他の識別子と、例えば第1の携帯電話422Aのメモリに記憶される連絡先リストに含まれる第1のユーザの連絡先とを結び付けてもよい。その後、対話型アシスタントモジュールは、第1のユーザと第2のユーザ間の音声通信チャネルへのアクセスを第2のユーザに提供する事前許可がないと判断してもよい。
【００５０】
但し、対話型アシスタントモジュールは着信を単に拒絶するのではなく、第1のユーザは現時点で他の誰かと話し中である、あるいは第1の携帯電話422Aを「応答不可」に設定したにもかかわらず、第1のユーザが第2のユーザからの着信を受けたいかどうかを推測するよう試みてもよい。従って様々な実施形態において対話型アシスタントモジュールは第1のユーザと第2のユーザとの第1の関係の1つまたは複数の属性を判定してもよい。また、対話型アシスタントモジュールは第1のユーザと、第2のユーザとは別の1人または複数の他のユーザとの間の1つまたは複数の他の関係の1つまたは複数の属性を判定してもよい。ある実例では対話型アシスタントモジュールは、現状下で第1のユーザとの音声通信チャネルへのアクセスを1人または複数の他のユーザに提供する事前許可を有してもよい。
【００５１】
その後、対話型アシスタントモジュールは第1のユーザと第2のユーザとの第1の関係の1つまたは複数の属性と、第1のユーザと第2のユーザとは別の1人または複数の他のユーザの1つまたは複数の他の関係の1つまたは複数の属性とを比較してもよい。この比較に基づいて、対話型アシスタントモジュールは第1のユーザとの音声通信チャネルへのアクセスを第2のユーザに提供する許可を条件付きで仮定(例えば推測、推定)してもよい。ある実例では対話型アシスタントモジュールは第1のユーザに対し確認を求める出力を提供してもよい。他の実例では対話型アシスタントモジュールは最初に確認を求めることなく、アクセスを第2のユーザに提供し、第2のユーザの着信を第1の携帯電話422Aに接続してもよい。例えば第1のユーザは許可を選択し得る着信がある旨(例えば通話中着信)の通知を第1の携帯電話422A上で受信してもよい。さらにまたはあるいは対話型アシスタントモジュールは第2のユーザを、例えば多者間会議電話の一員として、第1のユーザが第1の携帯電話422Aで話し中の既存の通話セッションに自動的に追加してもよい。
【００５２】
ある実施形態において対話型アシスタントモジュールは、第1のユーザと第2のユーザとの関係の性質に基づいて、リソース(第1のユーザとの音声通信チャネル)へのアクセスを第2のユーザに付与する許可を推定してもよい。第1のユーザと第2のユーザは同一の直系家族の一員であり、第1のユーザは以前に第1の携帯電話422A(および/または第1のユーザにより操作されるデバイスエコシステムの他のデバイス)上で動く対話型アシスタントモジュールに対し、別の直系家族のメンバーからの電話着信を接続する許可を付与したと想定する。第1のユーザは以前に別の直系家族のメンバーに接続を許可したので、第2のユーザも第1のユーザの直系家族のメンバーであるため、対話型アシスタントモジュールは第2のユーザも接続されるべきであると仮定してもよい。
【００５３】
他の実施形態では対話型アシスタントモジュールは異なる技術によって第1のユーザと第2のユーザとの関係と、第1のユーザと他のユーザとの関係とを比較してもよい。例えばある実施形態において対話型アシスタントモジュールは、1つの特徴ベクトルが第1のユーザの属性を表し、別の特徴ベクトルが第2のユーザの属性を表す複数の特徴ベクトルと、第1のユーザと関係のある(通話接続が許可される)1人または複数の他のユーザそれぞれを表す1つまたは複数の追加特徴ベクトルとを形成してもよい。このような実施形態では対話型アシスタントモジュールはこうした特徴ベクトルを連絡先リスト、ソーシャルネットワークプロフィール(例えば「友人」リスト)、および/または第1のユーザと関連付けられた他の同様の連絡先ソースから形成してもよい。各特徴ベクトルに含めるために第1のユーザの各連絡先から抽出された特徴は、第1のユーザと連絡先の間の関係の明白な呼称(例えば「配偶者」、「兄弟」、「親」、「いとこ」、「仕事仲間」、「友人」、「級友」、「知り合い」など)、第1のユーザと連絡先の間で共有される連絡先の数、第1のユーザと連絡先の間の対話履歴(例えば通話履歴/頻度、テキスト履歴/頻度、共有カレンダ予約など)、連絡先の人口統計(例えば年齢、性別、住所)、第1のユーザによって制御される様々なリソースへのアクセスを連絡先に提供するために対話型アシスタントに付与された許可などを含むが、これらに限定されない。
【００５４】
その後、対話型アシスタントモジュールは、例えば1つまたは複数の機械学習モデル(例えばロジスティック回帰)を用いて、縮小次元空間に埋め込むなどで、複数の特徴ベクトルのうち少なくともいくつかの間の「距離」を判定してもよい。ある実施形態において機械学習分類器やモデルは、各特徴ベクトルにより表される2人の個人間の関係度合い(または距離)でラベル付けされたペアの特徴ベクトルのようなラベル付けトレーニングデータを用いてトレーニングされてもよい。例えば、対応するペアの仕事仲間用に対しペアの特徴ベクトルが生成されてもよい。ペアの特徴ベクトルは数値(例えば0.0〜1.0の尺度で、0.0は最も親密な関係(または距離)を表し、1.0は無関係を表す)、あるいは列挙した関係(例えば「直系家族」、「血縁家族」、「配偶者」、「子」、「兄弟」、「いとこ」、「同僚」、「仕事仲間」など)、本例では「仕事仲間」、などの仕事仲間の関係に関する何らかの指標でラベル付けされてもよい。このラベル付けペアは、前記機械学習分類器をトレーニングしてペアの個人を表す特徴ベクトルペア間の関係を分類するために、任意の数の他のラベル付けペアと共に使用されてもよい。他の実施形態では各特徴ベクトルの特徴が埋込空間に埋め込まれ、例えば点乗積、コサイン類似度、ユークリッド距離などを用いて特徴のそれぞれの埋込間の距離が判定されてもよい。
【００５５】
但し、特徴ベクトル間の距離が判定される場合、複数の特徴ベクトルのうち所与のペア間の距離は、該所与のペアの特徴ベクトルによって表される2人のユーザ間の関係を表してもよい。距離が近いほど関係も強く、その逆も同じである。第1のユーザと第2のユーザを表す特徴ベクトル間の関係が、第1のユーザと別のユーザ間の別の関係よりも短い距離で表される想定する。さらに、対話型アシスタントモジュールは他のユーザの通話を第1のユーザに接続する許可を有すると想定する。このような状況において対話型アシスタントモジュールは第2のユーザも接続する許可を有すると推定してもよい。
【００５６】
さらに他の実施形態では対話型アシスタントモジュールは、第1のユーザによって制御される様々なリソースへのアクセスを様々なユーザに提供するように対話型アシスタントモジュールに付与された許可を用いて、関係を比較してもよい。例えばある実施形態において対話型アシスタントモジュールは、第2のユーザと関連付けられた1つまたは複数の許可の第1のセットを識別してもよい。第1のセットの各許可は、第1のユーザによって制御されるリソースへのアクセスを第2のユーザに提供するよう対話型アシスタントモジュールを許可してもよい。また、対話型アシスタントモジュールは、1人または複数の他のユーザと関連付けられた1つまたは複数の許可の1つまたは複数の追加のセットを識別してもよい。1つまたは複数の追加のセットの各セットは、1人または複数の他のユーザの異なるユーザと関連付けられてもよい。また、各追加のセットの各許可は、第1のユーザによって制御されるリソースへのアクセスを追加のセットと関連付けられたユーザに提供するよう対話型アシスタントモジュールを許可してもよい。その後、対話型アシスタントモジュールは第1のセットと1つまたは複数の追加のセットのそれぞれとを比較してもよい。第2のユーザと関連付けられた許可の第1のセットが、対話型アシスタントモジュールが第1のユーザに通話を接続する事前許可を有する別のユーザと関連付けられた許可のセットと十分類似している場合、対話型アシスタントモジュールは第2のユーザの通話を第1のユーザに接続する許可を有すると推定してもよい。
【００５７】
図5は例えば第1の携帯電話422Aによりレンダリングされ得るグラフィカルユーザインタフェースの一例を描いたもので、第1のユーザの2人の連絡先としてMolly SimpsonとJohn Jonesに付与された許可のセットの一例を示す。ある実施形態において第1のユーザはこのようなグラフィカルユーザインタフェースを操作して様々な連絡先に対し許可を設定してもよいが、これは必須ではない。本例の対話型アシスタントモジュールは第1のユーザの連絡先、ローカルな写真(例えば第1の携帯電話422Aおよび/または第1のユーザのデバイスエコシステムの別のデバイスのローカルメモリに記憶された写真)、オンライン上の写真(例えば第1のユーザがクラウド上に保存した写真)へのアクセスをMolly Simpsonに提供する許可を有している。同様に対話型アシスタントモジュールは第1のユーザの連絡先へのアクセスをJohn Jonesに提供し、John Jonesからの電話を第1のユーザに接続し、第1のユーザのスケジュールと(例えば第1の携帯電話422Aおよび/または第1のユーザにより操作されるデバイスエコシステムの別のデバイスの位置座標センサにより判定された)第1のユーザの現在地へのアクセスをJohn Jonesに提供する許可を有する。もちろん第1のユーザは図4には描かれていない許可について任意の数の追加連絡先を有してもよく、図示した連絡先および関連する許可は例証目的でしかない。
【００５８】
図4について上記に記載したシナリオの続きで、第2のユーザの着信を第1のユーザに接続するかどうかを決める場合、対話型アシスタントモジュールは第2のユーザに対する許可と、Molly SimpsonとJohn Jonesを含む第1のユーザの各連絡先に対する許可とを比較してもよい。第2のユーザと関連付けられた許可のセットはMolly Simpsonに関連付けられた許可のセットと最も類似している(例えば両者は第1のユーザの連絡先、ローカルな写真、オンライン上の写真へのアクセスを提供され得る)と想定する。対話型アシスタントモジュールはMolly Simpsonからの着信を第1のユーザに接続する許可を有していない。従って対話型アシスタントモジュールは第2のユーザの着信を接続する許可を有していると推定することもできない。
【００５９】
但し、第2のユーザと関連付けられた許可のセットはJohn Jonesに関連付けられた許可のセットと最も類似する(例えば両者は第1のユーザの連絡先、スケジュール、位置へのアクセスを提供され得る)と想定すると、対話型アシスタントモジュールにはJohn Jonesからの着信を第1のユーザに接続する事前許可を有するため、対話型アシスタントモジュールは第2のユーザの着信も接続する許可を有すると推定してもよい。
【００６０】
ある実施形態において連絡先間の許可の「類似性」は上記と同様の機械学習技術を用いて判定されてもよい。例えば図5に図示したような許可を用いて上述の連絡先特徴ベクトルが形成されてもよい。このような特徴ベクトル間の距離は対話型アシスタントモジュールにより(またはクライアントデバイスとネットワーク通信する1つまたは複数のサーバにより遠隔に)計算されてもよく、これを用いて連絡先間の類似性を判定し、最終的には第2のユーザの着信を第1のユーザに接続することを許可するかどうかを判定してもよい。
【００６１】
図5において各連絡先に関連付けられた許可は通常これら連絡先について対話型アシスタントモジュールに付与された許可である。但しこれは限定を意味するものではない。ある実施形態において連絡先と関連付けられた許可は他の種類の許可、例えばサードパーティのアプリケーションと関連付けられた許可を含んでもよい。例えばある実施形態において相乗りアプリケーション(例えばユーザの現在地へのアクセス)、ソーシャルネットワーキングアプリケーション(例えば特定のグループまたはイベントへのアクセス許可、互いの写真を見る許可、互いに写真にタグを付ける許可など)などの連絡先によりアプリケーションに付与された許可を用いて連絡先を比較してもよい。ある実施形態においてこれら他の許可を単に連絡先および/または制御ユーザとの関係を比較するためのデータポイントとして用いてもよい。例えば上記のように各連絡先と関連付けられた特徴ベクトルが生成されて距離が判定される場合、サードパーティのアプリケーション許可は特徴ベクトルの特徴として含まれてもよい。
【００６２】
対話型アシスタントモジュールによって様々な他のアプローチを用いて、制御ユーザによって制御されるリソースへのアクセスを要求ユーザに提供する許可を仮定するかどうかを判定してもよい。例えばある実施形態において複数のいわゆる「信頼レベル」を制御ユーザが設定してもよい(あるいは対話型アシスタントモジュールが学習により経時的に自動的に設定してもよい)。各信頼レベルはメンバーのセット(つまり制御ユーザの連絡先)と、メンバーについて対話型アシスタントが有する許可のセットとを含んでもよい。
【００６３】
制御ユーザとの関係が1つまたは複数の基準を満たすことにより、要求ユーザは制御ユーザの所与の信頼レベルで会員資格を得てもよい。こうした基準は制御ユーザとの十分な対話があること、共有コンテンツ(例えばドキュメント、カレンダ入力)の量が十分あること、共有ソーシャルネットワーキングの連絡先の数がしきい値にあること、制御ユーザにより手作業で信頼レベルに追加されることなどを含んでもよい。制御ユーザによって制御されるリソースへのアクセスを要求ユーザが要求する場合、対話型アシスタントモジュールは(i)信頼レベルがあるとすれば、要求されたリソースへのアクセスを提供することを対話型アシスタントモジュールに許可する信頼レベルはどのレベルか、および(ii)要求ユーザが判定された信頼レベルのいずれかのレベルのメンバーであるかどうか、を判定してもよい。こうした判定の結果に基づいて、対話型アシスタントモジュールは要求されたリソースへのアクセスを要求ユーザに提供してもよい。
【００６４】
ある実施形態において信頼レベルを自動で判断してもよい。例えば特定のユーザの様々な連絡先は、これら連絡先の様々な特徴(例えば許可や上述の他の特徴)に基づいて、例えば埋込空間にクラスタ化されてもよい。十分な数の連絡先が共有特徴に基づいてクラスタ化される場合、信頼レベルは自動的にクラスタと関連付けられてもよい。このように例えば(例えば同様の許可の数が多いことなどに基づいて)特定のユーザと非常に親密な関係の連絡先は、「高」信頼レベルを表す第1クラスタにグループ化されてもよい。特定のユーザとそれほど親密ではないが実体のない関係ではない連絡先は、「中」信頼レベルを表す第2クラスタにグループ化されてもよい。特定のユーザとの関係が比較的弱い他の連絡先は、「低」信頼レベルを表す第3クラスタにグループ化されてもよい。以下同様。
【００６５】
ある実施形態において特定のクラスタの閾値頻度と共に見いだされる対話型アシスタントモジュールに付与された許可は、当該クラスタの全ての連絡先に対し仮定されてもよい。例えば対話型アシスタントモジュールは特定のユーザの現在地を高信頼レベルの連絡先の75%と共有する許可を有する(クラスタの残りの連絡先に対する許可は否認されていない)と想定する。対話型アシスタントは高信頼レベルのクラスタの全ての連絡先は(要求があれば)特定のユーザの現在地へのアクセスが提供されるべきと仮定してもよい。様々な実施形態において特定のユーザは、例えばグラフィカルユーザインタフェースを用いて、様々な信頼レベルと関連付けられた許可を修正し、信頼レベルなどに対し連絡先を追加または削除するなどしてもよい。ある実施形態において特定のユーザが新規連絡先を追加する場合、対話型アシスタントモジュールは同様の技術を用いてどのクラスタ(よって信頼レベル)に新規連絡先が追加されるべきかを判断してもよい。ある実施形態において対話型アシスタントモジュールは単に自動的に信頼レベルに新規連絡先を追加するのではなく、最初に信頼レベルに新規連絡先を追加するよう提案して特定のユーザを促してもよい。他の実施形態では要求ユーザが、例えば制御ユーザによって制御されるリソースを要求した時点で急いで分析され、適した信頼レベルを判定してもよい。
【００６６】
図6は、必ずしも制御ユーザを最初に許可を促すことなく、(最初に許可を求めても求めなくても)制御ユーザによって制御されるリソースへのアクセスを要求ユーザに提供するよう対話型アシスタントモジュールを許可するために対話型アシスタントモジュールによる実行に適したルーチン650を示す。音声ベースのクエリを処理するのと同じサービスにより、あるいは全く異なるサービスによりルーチン650が実行されてもよい。特定の動作は特定の順番で記載されているが、これは限定を意味するものではない。様々な実施形態において1つまたは複数の動作が追加、省略、または並べ替えられてもよい。
【００６７】
ブロック658で対話型アシスタントモジュールは、第2のユーザによって制御されるリソースへのアクセスに対する第1のユーザからの要求を受信する。例えば第2のユーザが既に通話中に、あるいは携帯電話を「応答不可」モードに設定中に、第1のユーザは第2のユーザの携帯電話への電話を試みてもよい。別の例として第1のユーザは、第2のユーザによって制御される写真、媒体、ドキュメントなどのコンテンツへのアクセスを対話型アシスタントモジュールが提供するように要求してもよい。さらにまたはあるいは第1のユーザは、第2のユーザの現在地、状態(例えばソーシャルネットワークの状態)などの状況の1つまたは複数の属性を対話型アシスタントモジュールが提供するように要求してもよい。
【００６８】
ブロック660で対話型アシスタントモジュールは第1のユーザと第2のユーザとの第1の関係の属性を判定してもよい。多数の関係属性の例示が可能であり、これには上記例(例えば第2のユーザによって制御されるリソースへのアクセスを第1のユーザに提供するように第2のユーザにより対話型アシスタントモジュールに付与される許可(または他の一般的な許可))、共有連絡先、(例えば電話などでの単一のモダリティにおける、または複数のモダリティにわたる)ユーザ間の連絡頻度、列挙した関係の分類(例えば配偶者、兄弟、友人、知り合い、仕事仲間など)、第1のユーザと第2のユーザの間の(例えば両者の現在地の間および/または両者の自宅/勤務先住所の間の)地理的距離、ユーザにより共有されるドキュメント(例えばドキュメントの数、ドキュメントの種類など)、人口統計の類似性(例えば年齢、性別など)などが含まれるが、これらに限定されない。
【００６９】
ブロック662で対話型アシスタントモジュールは第2のユーザ(つまりこのシナリオでは制御ユーザ)と1人または複数の他のユーザとの間の1つまたは複数の関係の1つまたは複数の属性を判定してもよい。ブロック664で、例えば様々な体験学習や上記の機械学習技術などを用いて、第1の関係の属性は1つまたは複数の他の関係の属性と比較されてもよい。例えば上述のように様々なユーザと関連付けられた埋込間の「距離」が埋込空間で判定されてもよい。
【００７０】
ブロック666で対話型アシスタントモジュールは、ブロック664での比較に基づいて、要求されたリソースへのアクセスを第1のユーザに提供する許可を条件付きで仮定してもよい。例えば第1のユーザと第2のユーザ間の距離は、第2のユーザと、対話型アシスタントモジュールが要求されたリソースへのアクセスを付与する許可を有する別のユーザとの間の距離よりも短いと想定する。このようなシナリオでは第1のユーザも同様に対話型アシスタントモジュールによって要求されたリソースへのアクセスが付与されてもよい。
【００７１】
ある実施形態において、ブロック668で対話型アシスタントモジュールは要求されたリソースが「高機密性」リソースかどうかを判定してもよい。例えば第2のユーザが断言的にリソースをこのように識別する場合、リソースは高機密性であると考えられてもよい。さらにまたはあるいは対話型アシスタントモジュールは、リソースの機密性度合いが所定の閾値を満たすかどうかを「学習する」ために、要求されたリソースおよび/または同様のリソースへのアクセスがあった過去の実例を調べてもよい。例えば特定のリソースへのアクセスが自動的に付与され(つまり第2のユーザの明示的な許可を最初に取得せずに)、その後第2のユーザがこのような自動アクセスが付与されるべきではなかったことを示すフィードバックを提供する場合、対話型アシスタントモジュールはこの特定リソースの機密性レベルを引き上げてもよい。
【００７２】
別の例として、要求されたリソースが高機密性であるかどうかを判定するために、要求されたリソースの特徴は高(または低)機密性で知られる他のリソースの特徴と比較されてもよい。ある実施形態において様々な機密性の証印でラベル付けされたリソースの特徴を含むトレーニングデータで機械学習モデルがトレーニングされてもよい。その後、機械学習モデルがラベルのないリソースの特徴に適用され、その機密性レベルが判定されてもよい。
【００７３】
さらに他の実施形態では、要求されたリソースの機密性レベルを判定するために、ルールおよび/または体験学習が採用されてもよい。例えば要求されたリソースは、住所、社会保障番号、口座情報などの第2のユーザに関する個人および/または機密情報を含む、またはこれらへのアクセスを許可するドキュメントまたは他のリソースであると想定する。このようなシナリオでは要求されたリソースは1つまたは複数のルールを満たすため、対話型アシスタントモジュールは要求されたリソースを高機密性と分類してもよい。
【００７４】
ブロック668での答えがnoである(つまり要求されたリソースは高機密性とは考えられない)場合、方法650はブロック670に進むことができる。ブロック670で対話型アシスタントモジュールはリソースへのアクセスを第1(つまり要求)ユーザに提供してもよい。例えば対話型アシスタントモジュールは第1のユーザからの電話を第2のユーザに接続してもよい。あるいは対話型アシスタントモジュールは第2のユーザの位置、状態、状況などの要求された情報を第1のユーザに提供してもよい。ある実施形態において第1のユーザは、第2のユーザのカレンダ入力の追加/修正、第2のユーザ用リマインダ設定など、リソースを変更することが許されてもよい。
【００７５】
但し、ブロック668での答えがyesである(つまり要求されたリソースは高機密性と考えられる)場合、方法650はブロック672に進むことができる。ブロック672で対話型アシスタントモジュールは要求されたリソースへのアクセスを第1のユーザに提供する許可を第2の(つまり制御)ユーザから得てもよい。ある実施形態において対話型アシスタントモジュールは、第2のユーザのクライアントデバイスエコシステムの1つまたは複数のクライアントデバイス上に、第2のユーザからの許可を請求する出力を提供してもよい。例えば第2のユーザがスマートフォン上のポップアップ通知、独立型音声起動製品(例えばスマートスピーカ)や車載演算システム上の可聴要求、スマートテレビ上の視覚および/または音声要求などを受信してもよい。第2のユーザが許可を付与すると仮定し、上述のとおり方法650はブロック670に進むことができる。
【００７６】
複数の実施形態が本明細書に記載され図示されたが、機能の実行および/または結果の取得のための様々な他の手段および/または構造、および/または本明細書に記載された1つまたは複数の効果が活用されてもよく、このような変形および/または修正はそれぞれ本明細書に記載される実施形態の範囲に含まれるものとする。より全体的には、本明細書に記載されるパラメータ、寸法、材料、構成は全て例示的なものとされ、実際のパラメータ、寸法、材料、および/または構成は、特定のアプリケーションまたは教示が用いられるアプリケーションに委ねられる。当業者はルーチン実験だけで本明細書に記載される特定の実施形態の同等物を多数認識し、または確認できる。このため、前述の実施形態は例示に過ぎず、添付の請求項およびその同等物の範囲内において、具体的に記載され請求されたものとは違うやり方で実施形態が実施されてもよいことが理解されることになる。本開示の実施形態は本明細書に記載された各個別特徴、システム、物品、材料、キット、および/または方法に関するものである。また、このような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合は、2つまたは複数の特徴、システム、物品、材料、キット、および/または方法の組合せのいずれかが本開示の範囲に含まれる。
【符号の説明】
【００７７】
10  コンピュータシステム
12  プロセッサ
14  バスサブシステム
16  記憶サブシステム
18  メモリサブシステム
20  ファイル記憶サブシステム
22  ユーザインタフェース入力デバイス
24  ユーザインタフェース出力デバイス
26  ネットワークインタフェースサブシステム
28  ランダムアクセスメモリ(RAM)
30  読み出し専用メモリ(ROM)
50  分散型音声入力処理環境
52  音声対応デバイス
54  オンライン語義プロセッサ
56  対話型アシスタントモジュール
58  音声アクションモジュール
60  オンラインインタフェースモジュール
62  レンダリング/同期モジュール
64  ストリーミング音声テキスト化モジュール
66  語義プロセッサモジュール
68  パーサモジュール
70  ダイアログマネージャモジュール
72  アクションビルダモジュール
74  オフライン音響および/または言語モデル
76  オフライン文法モデル
78  オフラインアクションモデル
80  音声ベースクエリプロセッサ
82  音響/言語、文法および/またはアクションモデル
420  シナリオ例
422A  第1の携帯電話
422B  第2の携帯電話
424  セルラー塔
【図１】
0006690063.tif 000002
【図２】
0006690063.tif 000003
【図３】
0006690063.tif 000004
【図４】
0006690063.tif 000005
【図５】
0006690063.tif 000006
【図６】
0006690063.tif 000007