(57)【要約】  一実施形態は、共用電子デバイス上のデータ処理システムを提供し、データ処理システムは、命令を記憶するためのメモリデバイスと、メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサとを備える。命令は、１つ以上のプロセッサに、共用電子デバイスにおいてコマンドを受信する仮想アシスタントを提供させ、仮想アシスタントは、１つ以上のプロセッサを介して、共用電子デバイスにおいてコマンドを受信し、共用電子デバイスに関連付けられたユーザの個人データにそのコマンドがアクセスすることになるかどうかを判定するように構成されている。ユーザの個人データは、ユーザに固有のデータを含む。ユーザの個人データにコマンドがアクセスすることになるとの判定に応じて、仮想アシスタントは、ユーザの個人電子デバイスに要求を送信してコマンドの少なくとも一部を処理することができる。
2020537793.tif 000002
【特許請求の範囲】
【請求項１】
共用電子デバイス上のデータ処理システムであって、
命令を記憶するためのメモリデバイスと、
前記メモリデバイス上に記憶された前記命令を実行するための１つ以上のプロセッサと、を備え、前記命令が、前記１つ以上のプロセッサに仮想アシスタントを提供させて前記共用電子デバイスにおいてコマンドを受信させ、前記仮想アシスタントが、前記１つ以上のプロセッサを介して、
前記共用電子デバイスにおいてコマンドを受信し、
前記共用電子デバイスに関連付けられたユーザの個人データであって、前記個人データが前記ユーザに固有のデータを含む、個人データに前記コマンドがアクセスすることになるかどうかを判定し、
前記ユーザの個人データに前記コマンドがアクセスすることになるとの判定に応じて、前記コマンドの少なくとも一部を処理するために前記ユーザの個人電子デバイスに要求を送信する、データ処理システム。
【請求項２】
前記ユーザの個人データが、連絡先リスト、テキストメッセージ、電子メール、通話履歴、アラーム、リマインダ、通信履歴、設定、好み、又は位置履歴を含み、前記共用電子デバイスがスマートスピーカデバイスを含む、請求項１に記載のデータ処理システム。
【請求項３】
個人データが、前記ユーザの前記個人電子デバイス上に記憶され、前記仮想アシスタントが、前記共用電子デバイスの代わりに個人データにアクセスするように前記個人電子デバイスに要求する、請求項１に記載のデータ処理システム。
【請求項４】
前記仮想アシスタントが、前記ユーザの前記個人電子デバイスに送信された要求の出力を受信し、前記出力に基づいてコマンドの処理を完了し、前記コマンドがボイスコマンド又はテキストコマンドである、請求項１に記載のデータ処理システム。
【請求項５】
前記ユーザの前記個人電子デバイスに要求を送信することが、前記ユーザの前記個人電子デバイスにコマンドをリダイレクトすることを含み、前記個人電子デバイスが前記共用電子デバイスの代わりに前記コマンドを処理する、請求項１に記載のデータ処理システム。
【請求項６】
前記仮想アシスタントが、前記個人電子デバイスによって生成されたオーディオ応答を受信し、前記コマンドに対する応答として前記オーディオ応答を再生する、請求項５に記載のデータ処理システム。
【請求項７】
前記コマンドが、前記ユーザの連絡先にメッセージを送信するためのコマンドであり、前記オーディオ応答が、前記メッセージに対する受信した応答の通知である、請求項６に記載のデータ処理システム。
【請求項８】
前記共用電子デバイスが、前記共用電子デバイスが前記個人電子デバイスに前記要求を送信することが可能になる前に、前記個人電子デバイスとの信頼関係を確立し、前記仮想アシスタントが、前記個人電子デバイスとの検証されたデータ接続を介して前記ユーザの個人電子デバイスに前記要求を送信し、前記検証されたデータ接続が、前記個人電子デバイスとの前記信頼関係に基づいて確立される、請求項７に記載のデータ処理システム。
【請求項９】
前記検証されたデータ接続が、前記信頼関係の確立中に交換されたデータを介して検証される、請求項８に記載のデータ処理システム。
【請求項１０】
前記検証されたデータ接続が、広域ネットワークを介して確立されたリモートデータ接続を介して確立される、請求項８に記載のデータ処理システム。
【請求項１１】
前記個人データが、本質的に個人的データ又は私的データを含む、請求項１に記載のデータ処理システム。
【請求項１２】
前記個人データが、個人的又は私的として指定されたデータを含む、請求項１に記載のデータ処理システム。
【請求項１３】
命令を記憶する非一時的機械可読媒体であって、前記命令が、１つ以上のプロセッサに、
共用デバイスとコンパニオンデバイスとの間に通信セッションを確立すべきと判定することであって、前記コンパニオンデバイスがユーザに関連付けられた個人データにアクセスできる電子デバイスであり、前記個人データが前記ユーザに固有のデータを含む、ことと、
前記共用電子デバイスと前記コンパニオンデバイスとの間にデータ接続を確立することと、
前記共用電子デバイスと前記コンパニオンデバイスとの間の信頼関係を検証することと、
前記信頼関係を検証した後に、前記共用電子デバイスと前記コンパニオンデバイスとの間に暗号化通信セッションを確立することと、
前記暗号化通信セッションを介して、前記共用電子デバイスにおいて受信されたコマンドを前記コンパニオンデバイスに中継することと、を含む動作を実行させる、非一時的機械可読媒体。
【請求項１４】
前記動作が、
ローカルネットワーク上の前記コンパニオンデバイスの発見を試みることと、
前記ローカルネットワーク上の前記コンパニオンデバイスを発見した後に、前記ローカルネットワークを介して前記共用電子デバイスと前記コンパニオンデバイスとの間に前記データ接続を確立することと、を更に含む、請求項１３に記載の非一時的機械可読媒体。
【請求項１５】
前記動作が、
ローカルネットワーク上の前記コンパニオンデバイスの発見を試みることと、
前記ローカルネットワーク上の前記コンパニオンデバイスの発見に失敗した後に、前記コンパニオンデバイスのリモート識別子が前記共用電子デバイスにおいて利用可能であるかどうかを判定することと、
前記コンパニオンデバイスの前記リモート識別子が前記共用電子デバイスにおいて利用可能であると判定したことに応じて、前記リモート識別子を使用して、前記コンパニオンデバイスとの前記データ接続を広域ネットワークを介して確立することと、を更に含む、請求項１３に記載の非一時的機械可読媒体。
【請求項１６】
前記動作が、前記コンパニオンデバイスのユーザの個人データに前記コマンドがアクセスすることになると判定したことに応じて、前記暗号化通信セッションを介して、前記共用電子デバイスにおいて受信された前記コマンドを前記コンパニオンデバイスに中継することを更に含む、請求項１３に記載の非一時的機械可読媒体。
【請求項１７】
前記動作が、前記共用電子デバイスにおいて前記コマンドに対する応答を受信することを更に含み、前記応答が前記コンパニオンデバイスによって生成された前記コマンドに対する応答であり、前記コマンドがボイスコマンド又はテキストコマンドである、請求項１６に記載の非一時的機械可読媒体。
【請求項１８】
電子デバイスであって、
１つ以上のネットワークに接続するためのネットワークインタフェースと、
前記電子デバイスのユーザに関連付けられた命令及び個人データを記憶するためのメモリデバイスであって、前記個人データが前記ユーザに固有のデータを含む、メモリデバイスと、
前記メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサと、を備え、前記命令が、前記１つ以上のプロセッサに、仮想アシスタントを提供させてコマンドを受信させ、前記仮想アシスタントが、前記１つ以上のプロセッサを介して、
共用電子デバイスからリダイレクトされたコマンドであって前記コマンドが前記電子デバイスのユーザに関連付けられた個人データにアクセスし、前記個人データが前記ユーザに固有のデータを含む、コマンドを、前記ネットワークインタフェースを介して受信し、
前記共用電子デバイスの代わりに前記コマンドの少なくとも一部を処理し、
前記ネットワークインタフェースを介して、前記共用電子デバイスの代わりに実行された処理の出力を前記共用電子デバイスに送信する、電子デバイス。
【請求項１９】
前記共用電子デバイスの代わりに個人データにアクセスすることが、前記共用電子デバイス上の成功裏のロック解除許可の後にのみ個人データにアクセスすることを含む、請求項１８に記載の電子デバイス。
【請求項２０】
前記共用電子デバイスの代わりに前記コマンドの少なくとも一部を処理することが、前記共用電子デバイスの代わりに個人データにアクセスすることを含む、請求項１８に記載の電子デバイス。
【請求項２１】
前記共用電子デバイスの代わりに前記コマンドの少なくとも一部を処理することが、前記共用電子デバイスの代わりに前記ネットワークインタフェースを介してリモートに記憶された個人データにアクセスすることを含む、請求項１８に記載の電子デバイス。
【請求項２２】
広域ネットワークを介して前記共用電子デバイスが前記電子デバイスに接続し、前記コマンドの少なくとも一部を前記電子デバイス上の前記仮想アシスタントにリダイレクトすることを可能にする一意の識別子を更に含む、請求項１８に記載の電子デバイス。
【請求項２３】
仮想アシスタントサーバに対して前記仮想アシスタントを識別するための一意の識別子を更に含み、前記仮想アシスタントが、前記ネットワークインタフェースを介して前記仮想アシスタントサーバに接続して、前記共用電子デバイスからリダイレクトされた前記コマンドの少なくとも一部を処理し、前記コマンドがボイスコマンド又はテキストコマンドであるする、請求項１８に記載の電子デバイス。
【請求項２４】
前記共用電子デバイスの代わりに個人データにアクセスすることが、前記共用電子デバイスの代わりに個人データにアクセスするための許可を要求することを含み、前記共用電子デバイスの代わりに個人データにアクセスするための許可を要求することが、ディスプレイを介して許可の要求を表示すること、又はスピーカデバイスを介して許可のためのオーディオ要求を再生することを含む、請求項１８に記載の電子デバイス。
【請求項２５】
前記個人データが、個人的若しくは私的として指定されたデータ、又は本質的に個人的若しくは私的であるデータを含む、請求項１８に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１７年１０月２１日に出願された米国仮特許出願第６２／５７５，３７３号の優先権を主張するものであり、その内容が参照により本明細書に組み入れられる。
【背景技術】
【０００２】
当該技術分野において既知の電子デバイスは、電子デバイスのユーザと繋がることができるインテリジェント自動アシスタントシステムを含み得る。一般に、インテリジェント自動アシスタントシステムは、電子デバイス上でアクションを実行することができる、又は要求された情報をユーザに提供することができる、デジタルアシスタント又は仮想アシスタントを提供する。これらの自動アシスタントは、電話番号をダイヤルし、テキストメッセージを送信し、リマインダを設定し、カレンダにイベントを追加し、及びユーザの代わりに様々な他の動作を実行するなど、電子デバイスの多くの動作及び機能を制御することができる。自動アシスタントシステムは、発話された自然言語コマンドをユーザから受信することができ、発話合成エンジンを使用して、ユーザへの生成された応答を発話することができる。
【０００３】
自動アシスタント用のサービス及び動作は、自動アシスタント用のサービス領域を説明する様々なドメインに分類することができる。特定のドメイン内の完全な機能を可能にすることには、電子デバイスのユーザに関連付けられた又はユーザに固有の、個人的データ又は私的データへのアクセスを必要とする場合がある。そのようなデータは、個人ユーザデバイス上に記憶されてもよく、又はユーザデバイスにアクセス可能なリモート位置に記憶されてもよい。しかしながら、自動アシスタントのいくつかの実施態様は、２人以上のユーザによって使用され得る共用デバイス上に含むことができる。プライバシー目的のため、共用デバイス上に個人又は私的ユーザ情報を記憶することを防止することが有益であり得る。したがって、ユーザの個人情報へのアクセスを必要とする自動アシスタントサービスは、共用デバイス上で利用可能でなくてもよい。
【発明の概要】
【０００４】
本明細書に記載される実施形態は、スマートスピーカデバイス又は別のスマートホームデバイスなどの共用電子デバイスが個人ユーザデータを含む仮想アシスタント要求を処理のために、個人ユーザデバイスに中継又はリダイレクトすることを可能にする通信機構を提供する。通信機構はまた、構成データを含むデータをスマートホームデバイスが交換することを可能にする汎用通信機構として使用することができる。
【０００５】
一実施形態は、共用電子デバイス上のデータ処理システムを提供し、データ処理システムは、命令を記憶するためのメモリデバイスと、メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサとを備える。命令は、１つ以上のプロセッサに、共用電子デバイスにおいてコマンドを受信する仮想アシスタントを提供させ、仮想アシスタントは、１つ以上のプロセッサを介して、共用電子デバイスにおいてコマンドを受信し、共用電子デバイスに関連付けられたユーザの個人データにそのコマンドがアクセスすることになるかどうかを判定するように構成されている。ユーザの個人データにコマンドがアクセスすることになるとの判定に応じて、仮想アシスタントは、コマンドの少なくとも一部を処理するために、ユーザの個人電子デバイスに要求を送信することができる。ユーザの個人データは、ユーザに固有のデータであり、本質的に個人的若しくは私的であるデータ、又は個人的若しくは私的として指定されるデータを含むことができる。個人データはまた、ユーザを具体的に識別するために使用できるデータを含み得る。
【０００６】
一実施形態は、１つ以上のプロセッサに動作を実行させる命令を記憶する非一時的機械可読媒体を提供し、動作は、共用デバイスとコンパニオンデバイスとの間に通信セッションを確立すべきと判定することを含み、コンパニオンデバイスは、ユーザに関連付けられた個人データにアクセスできる電子デバイスである。個人データは、ユーザに固有のデータを含む。動作は、コンパニオンデバイスとのデータ接続を確立することと、共用電子デバイスとコンパニオンデバイスとの間の信頼関係を検証することと、信頼関係を検証した後に共用デバイスとコンパニオンデバイスとの間に暗号化通信セッションを確立することと、暗号化通信セッションを介して共用電子デバイスにおいて受信したコマンドをコンパニオンデバイスに中継することと、を更に含む。
【０００７】
一実施形態は、１つ以上のネットワークに接続するためのネットワークインタフェースと、命令、及び電子デバイスのユーザに関連付けられた個人データを記憶するためのメモリデバイスとを備える電子デバイスを提供する。電子デバイスは、メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサを含み、命令は、１つ以上のプロセッサにコマンドを受信するための仮想アシスタントを提供させる。仮想アシスタントは、１つ以上のプロセッサによって、ネットワークインタフェースを介して、共用電子デバイスからリダイレクトされたコマンドを受信することができる。コマンドは、電子デバイスのユーザに関連付けられた個人データにアクセスする要求を含むか、又は指定することができる。次いで、仮想アシスタントは、共用電子デバイスの代わりにコマンドの少なくとも一部を処理し、共用電子デバイスの代わりに実行された処理の出力を、ネットワークインタフェースを介して共用電子デバイスに送信することができる。
【０００８】
本実施形態の他の特徴は、添付の図面から、及び以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【０００９】
本発明の実施形態は、限定ではなく例として示されるものであり、参照番号が発端の図を示す添付図面の図において、同様の参照番号は同様の要素を示し得る。
【図１Ａ】実施形態による、仮想アシスタント及び個人データドメインを可能にする電子デバイスシステムのブロック図を示す。
【図１Ｂ】実施形態による、仮想アシスタント及び個人データドメインを可能にする電子デバイスシステムのブロック図を示す。
【図２】実施形態による、複数のスマートホームデバイスを含むホームネットワーク環境を示す。
【図３】実施形態による、共用デバイスを発見し、コンパニオンデバイスとペアリングするために使用される発見プロセスの動作のフロー図である。
【図４Ａ】共用デバイス上の仮想アシスタントクライアントがプライバシー保持方式でクエリを処理することを可能にするプロセスのフロー図である。
【図４Ｂ】共用デバイス上の仮想アシスタントクライアントがプライバシー保持方式でクエリを処理することを可能にするプロセスのフロー図である。
【図４Ｃ】共用デバイス上の仮想アシスタントクライアントがプライバシー保持方式でクエリを処理することを可能にするプロセスのフロー図である。
【図５】本明細書に記載された実施形態による、ペアリングされたデバイスとのコンパニオンリンク接続を確立するためのプロセスを示す。
【図６】本明細書に記載された実施形態による、コンパニオンデバイス上の個人データへのアクセスを可能にするためのプロセスを示す。
【図７】一実施形態による、スマートホームデバイス内で使用するためのコンピューティングデバイスのブロック図である。
【図８】本発明のいくつかの実施形態において使用され得る、例示的なＡＰＩアーキテクチャを示すブロック図である。
【図９Ａ】実施形態による、例示的なＡＰＩソフトウェアスタックのブロック図である。
【図９Ｂ】実施形態による、例示的なＡＰＩソフトウェアスタックのブロック図である。
【図１０】一実施形態による、モバイルデバイスアーキテクチャのブロック図である。
【図１１】一実施形態による、コンピューティングシステムのブロック図である。
【図１２】一実施形態による、仮想アシスタントのブロック図である。
【発明を実施するための形態】
【００１０】
接続されたスマートホームデバイスのネットワークは、家庭内の複数のユーザによって使用される共用デバイスを含み得る。デバイスが複数のユーザを有する共用デバイスであるため、デバイスの任意の所与のユーザに固有の個人情報を記憶することを防止することが有益であり得る。更に、共用デバイスの他のユーザの個人データに関する無許可のクエリをユーザが芳香することを防止することが有益であり得る。共用デバイスの各ユーザに関連付けられた例示的な個人的又は私的ユーザ情報としては、連絡先リスト、カレンダ項目、テキストメッセージ、電子メール、通話履歴、警報、リマインダ、及び個人データ又は私的ユーザデータとみなされ得る他の電子データを挙げることができるが、これらに限定されない。様々な実施形態では、追加の個人的又は私的情報としては、位置情報、家族関係、ユーザの好み、アプリケーション情報、個人デバイス上に記憶されたデータ、デバイス位置、家族のデバイス位置、医療情報、又は健康情報を含み得るが、これらに限定されない。いくつかの実施形態では、いくつかのユーザデータは、本質的に個人的又は私的であるとみなされるが、他の情報は、ユーザによって個人情報又は私的情報として指定することができる。
【００１１】
本明細書に記載される実施形態は、ペアリングされたユーザデバイスを介して共用デバイス上の仮想アシスタントが個人ドメイン機能にアクセスすることを可能にする、システム及び方法を提供する。ペアリングされたユーザデバイスは、共用デバイスに対するコンパニオンデバイスとして使用することができる。共用デバイスとコンパニオンデバイスとの間のペアリングは、デバイスがセキュアデータチャネルを介して信頼でき、かつ、セキュアな通信を確立することを可能にすることができる。共用デバイス上の仮想アシスタントが、共用デバイス上に記憶されていない、かつ共用デバイスにアクセス可能でない個人ユーザ情報へのアクセスを必要とするクエリを受信したイベントにおいて、共用デバイスは、コンパニオンデバイスに接続し、コンパニオンデバイスに個人ユーザデータに関連する動作を実行するように要求することができる。
【００１２】
共用デバイスとコンパニオンデバイスとの間の通信は、コンパニオンリンクと呼ばれるセキュアデータチャネル上で実行することができる。コンパニオンリンクは、ホームネットワーク環境内の接続されたデバイス用の永続的な低遅延メッセージングシステムを提供する。いくつかの実施形態では、コンパニオンリンクは、ホーム内の個人モバイルデバイスを有する、又はインターネットを介して到達可能なスピーカデバイスなどの、ホーム内の固定型共用デバイスのリンクをサポートする。コンパニオンリンクは、共用デバイスが個人要求を１つ以上の個人デバイスにリダイレクトすることを可能にするが、共用デバイスはそうしなければ、個人要求をプライバシーの懸念に起因して取り扱うことができない。ユーザに関連付けられた個人デバイスへの個人要求のリダイレクトにより、共用デバイス上の仮想アシスタントがプライバシー保持方式で受信及び要求することを可能にすることができる。
【００１３】
コンパニオンデバイスへの個人クエリのリダイレクトを可能にすることに加えて、一実施形態では、コンパニオンリンクはまた、ホームネットワーク環境内のデバイス用の汎用メッセージングシステムを提供する。汎用メッセージングシステムは、コンパニオンリンクを介してメッセージを交換することによって、複数のホームデバイスが協調して機能することを可能にする。例えば、複数のスマートスピーカデバイス間のオーディオ再生を調整して、メディアアイテムの再生を調整すること、ユーザに最も近いスピーカを介してユーザにオーディオ通知を選択的に提供すること、複数のスピーカをマルチチャネルオーディオシステムに構成すること、又は発話要求及び応答の持続時間中にスピーカでオーディオダッキングを調整すること、などであるがこれらに限定されない動作を、デバイスが実行することを可能にすることができる。
【００１４】
共用デバイスは、発見プロトコルを介して、コンパニオンリンクサービス用のサポートをアドバタイズすることができる。共用デバイスと同じネットワーク上の個人ユーザデバイスは、共用デバイスによって、アドバタイズされたコンパニオンリンクサービスを発見し、アドバタイズされた情報を使用して、共用デバイスと接続することができる。個人デバイスは、共用デバイスとのペアリングプロセスを実行して、ユーザ用のコンパニオンデバイスになることができる。一実施形態では、ペアリングプロセスは、ユーザデバイスが近距離無線通信機構を介してコンパニオンデバイスと識別子、鍵、又はシークレットを交換する近接要素を含む。ペアリングプロセスはまた、コンパニオンリンクを介した共用デバイスとコンパニオンデバイスとの間のその後の接続を容易にすることができる、存在情報及び到達可能情報の交換を含むことができる。
【００１５】
以下の図及び説明では、参照番号は、参照番号がＮ００である要素が図Ｎで最初に紹介されるように、参照される要素が導入されている図を示す。例えば、１００と１９９との間の参照番号を有する要素が図１に最初に示され、一方、２００と２９９との間の参照番号を有する要素が図２に最初に示される、などである。所与の図の説明内では、以前に導入された要素が参照される場合とされない場合がある。
【００１６】
以下の図に示されるプロセス及び動作は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（非一時的機械可読記憶媒体上の命令として）、又はハードウェア及びソフトウェアの両方の組み合わせを含む処理ロジックを介して実行することができる。以下でプロセスのいくつかについてシーケンシャルな動作の観点で述べるが、説明する動作のいくつかは、異なる順序で実施できることを理解すべきである。更には、一部の動作は、逐次的にではなく、並列して実行することができる。加えて、いくつかの動作は、任意選択的に示されてもよく、全ての実施形態によって実行されない。
システム及び環境
【００１７】
図１Ａ〜図１Ｂは、実施形態による、仮想アシスタント及び個人データドメインを可能にする電子デバイスシステムのブロック図を示す。図１Ａは、本明細書に記載される実施形態による、仮想アシスタントシステム１００のブロック図を示す。図１Ｂは、実施形態による、仮想アシスタントシステム１００内のデバイス間の通信を可能にするコンパニオンリンクシステム１３０のブロック図を示す。図１Ｂのコンパニオンリンクシステム１３０は、仮想アシスタントシステム内の個人データドメインを確立して、共用デバイス上に記憶されていない個人ユーザデータへのアクセスを必要とするクエリに、共用デバイス上の仮想アシスタントが回答することを可能にする。図１Ａ〜図１Ｂのブロック図は、部分的にロジカルであり、つまり、例示されるいくつかの構成要素が、同じ物理サーバ又はデバイス内に常駐するロジック構成要素を分離してもよい。
【００１８】
図１Ａは、発話及び／又はテキスト形式で受信された自然言語入力を解釈してユーザ意図を推測する処理システムを提供する仮想アシスタントシステム１００を示す。次いで、仮想アシスタントシステム１００は、推測されたユーザ意図に基づいてアクションを実行することができる。様々な実施形態では、システムは、推測されたユーザ意図を達成するように設計されたステップ及びパラメータを有するタスクフローを特定することと、推測されたユーザ意図からタスクフローに特定の要件を入力することと、プログラム、方法、サービス、又はＡＰＩなどを呼び出すことによってそのタスクフローを実行することと、可聴（例えば、発話）形式及び／又は視覚形式でユーザに対する出力応答を生成することとを含むがこれらに限定されない、動作のセットを実行することができる。本明細書で使用するとき、用語仮想アシスタントは、用語「デジタルアシスタント」、「インテリジェント自動アシスタント」又は「自動デジタルアシスタント」と互換的に使用することができ、一般に、発話及び／又はテキスト形式の自然言語入力を解釈してユーザの代わりにアクションを実行する任意の情報処理システムを指す。
【００１９】
仮想アシスタントは、自然言語コマンド、要求、ステートメント、叙述、及び／又は照会の形態で、少なくとも部分的にユーザ要求を受け入れることができる。典型的には、ユーザ要求は、仮想アシスタントによる情報回答又はタスクの実行のいずれかを求めることができる。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又はその２つの組み合わせとすることができる。例えば、ユーザは仮想アシスタントに、「私は今どこにいますか？（Where am I right now?）」などの質問をすることができる。ユーザの現在位置に基づいて、仮想アシスタントは、「あなたは西口近くのゴールデンゲートパークにいます。（You are in Golden Gate Park near the west entrance.）」と回答することができる。ユーザはまた、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待して下さい。（Please invite my friends to my girlfriend's birthday party next week.）」というタスクの実行を要求してもよい。それに応じて、仮想アシスタントは、「はい、ただ今（Yes,right away.）」と述べることによって、その要求に肯定応答することができ、次いで、そのユーザの電子アドレス帳に列挙されているユーザの友人のそれぞれに、ユーザの代わりに好適なカレンダ招待を送信することができる。要求されたタスクの実行の間、仮想アシスタントは、時に、長時間にわたって情報を複数回交換することを含む連続的なダイアログにおいて、ユーザと対話することができる。情報又は様々なタスクの実行を要求するために仮想アシスタントと対話する方法は、他にも数多く存在する。口頭応答を提供し、プログラムされたアクションを取ることに加えて、仮想アシスタントは、他の視覚形態又はオーディオ形態の応答を、例えば、テキスト、アラート、音楽、ビデオ、アニメーションなどとして提供することもできる。
【００２０】
図１Ａに示すように、仮想アシスタントシステム１００は、１つ以上のサーバデバイスを有するサーバシステム１０８を含むことができる。一実施形態では、サーバシステム１０８は、複数の仮想アシスタントクライアント（ＶＡＣ）（例えば、ＶＡＣ１０１、ＶＡＣ１０２）と通信できる仮想アシスタントサーバ１０６を含む。仮想アシスタントクライアントは、サーバシステム１０８と接続及び通信することができる複数の電子デバイス上で実行することができる。第１の仮想アシスタントクライアント（例えば、ＶＡＣ１０１）は、スマートスピーカデバイスなどのスマートホームデバイス１０３上で実行することができる。第２の仮想アシスタントクライアント（例えば、ＶＡＣ１０２）は、スマートフォンデバイスなどのユーザデバイス１０４上で実行することができる。仮想アシスタントクライアントは、ローカルエリアネットワークと広域ネットワークとの組み合わせを含み得る１つ以上のネットワーク１１０を通じて、仮想アシスタントサーバ１０６と通信することができる。様々な仮想アシスタントクライアントは、ユーザに面する入力及び出力処理などのクライアント側機能を提供することができ、仮想アシスタントサーバ１０６と通信することができる。仮想アシスタントサーバ１０６は、１つ以上のネットワーク１１０を介して接続された任意の数のユーザデバイス上に常駐する多数の仮想アシスタントクライアントに、サーバ側機能を提供することができる。
【００２１】
一実施形態では、仮想アシスタントサーバ１０６は、ＶＡクライアントへのＩ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及び処理モデル１１６を含むストレージデバイス、並びに外部サービスへのＩ／Ｏインタフェース１１８を含む。ＶＡクライアントへのＩ／Ｏインタフェース１１２は、仮想アシスタントサーバ１０６用のクライアント向け入出力処理を容易にすることができる。１つ以上の処理モジュール１１４は、データ及び処理モデル１１６を利用して、ユーザの意図を推測するために発語入力に対して自然言語処理を実行することができる。次いで、１つ以上の処理モジュール１１４は、推測されたユーザの意図に基づいてタスク実行を行うことができる。外部サービスへのＩ／Ｏインタフェース１１８は、１つ以上のネットワーク１１０を介した仮想アシスタントサーバ１０６と外部サービス１２０との間の通信を容易にすることができる。一実施形態では、仮想アシスタントサーバ１０６は、ユーザデバイス１０４上でＶＡＣ１０２を受信した要求に応じてタスクを完了するために、又はＶＡＣ１０２で受信されたクエリに応じて情報を取得するために、外部サービス１２０と通信することができる。外部サービス１２０としては、ナビゲーションサービス（単数又は複数）、メッセージングサービス（単数又は複数）、情報サービス（単数又は複数）、カレンダサービス（単数又は複数）、及び／又は電話サービス（単数又は複数）などを挙げることができる。例えば、１つ以上のナビゲーションサービスを使用して、ユーザデバイス上のＶＡＣ１０２で受信した要求に応じて、ユーザデバイス１０４上での経路誘導ナビゲーションを可能にすることができる。外部サービスは、位置情報、天気、財務情報、又はアカウント情報を追加的に含むことができる。様々な実施形態では、外部サービス１２０のいくつかを可能にするロジックは、サーバシステム１０８内に常駐することができ、ロジックの一部は、ユーザデバイス１０４内に常駐することができる。
【００２２】
仮想アシスタントサーバ１０６は、仮想アシスタントクライアントから受信した発語入力に応じてメッセージを送信するために、１つ以上のメッセージングサービスと通信することができる。インターネット検索エンジン又は情報データベースなどの情報サービス（単数又は複数）は、仮想アシスタントサーバ１０６によってアクセスされて、情報クエリに応じてユーザに情報を提供することができる。一実施形態では、仮想アシスタントサーバ１０６は、１つ以上のカレンダサービスにアクセスして、タスク若しくはイベントをスケジュールし、又はタスク若しくはイベントに関するクエリを満たすことができる。仮想アシスタントサーバ１０６はまた、１つ以上の電話サービスにアクセスして、ユーザに対する通話を開始することができる。
【００２３】
様々な実施形態では、仮想アシスタントサーバ１０６は、ユーザによってクライアントに提供された発話入力の処理によってＶＡＣ１０１、１０２を支援することができる。一実施形態では、発話処理及び自然言語処理へのテキストは、ＶＡＣ１０１、１０２によって部分的に、及び仮想アシスタントサーバ１０６上で部分的に、実行することができる。仮想アシスタントサーバ１０６のデータ及び処理モデル１１６は、ＶＡＣ１０１、１０２にローカルでアクセス可能である対応するモデルよりも複雑かつ高性能であり得る。したがって、仮想アシスタントサーバ１０６は、いくつかのコマンドを処理するためにより好適であり得、処理されたコマンドの結果を１つ以上のネットワーク１１０を介してＶＡＣ１０１、１０２に送り戻すことができる。ユーザに提示された仮想アシスタント対話フローを構築する動作は、仮想アシスタントサーバ１０６とＶＡＣ１０１、１０２との間で共有することができる。一実施形態では、ユーザ入力の初期処理、発話出力の提示、及び大部分のユーザデータへのアクセスは、ＶＡＣ１０１、１０２によって実行することができる。そのような実施形態では、発話認識及び自然言語処理は、仮想アシスタントサーバ１０６によって少なくとも部分的に実行することができる。
【００２４】
スマートホームデバイス１０３及びユーザデバイス１０４は、１つ以上のネットワーク１１０ローカルエリアネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）、例えばインターネットを介して、互いに、及びサーバシステム１０８と通信することができる。１つ以上のネットワークは、様々な有線又は無線プロトコルを含む、任意の既知の相互接続又はネットワークプロトコルを使用して、実装することができる。例示的な相互接続及び／又はネットワークプロトコルとしては、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）、移動通信用グローバルシステム（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、ロングタームエボリューション（ＬＴＥ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、又は任意の他の好適な通信プロトコルが挙げられる。
【００２５】
様々な実施形態では、サーバシステム１０８は、スタンドアロンデータ処理装置、又はコンピュータの分散ネットワーク上に実装することができる。いくつかの実施例では、サーバシステム１０８はまた、サーバシステム１０８の基礎的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供するために、様々な仮想デバイス、及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを利用することができる。
【００２６】
様々な実施形態では、スマートホームデバイス１０３は、スマートスピーカデバイス、スマートホームハブデバイス、又は別のタイプのインテリジェント電子機器であり得る。例えば、一実施形態では、スマートホームデバイス１０３は、分散メディア再生システムの一部であるように構成できるスマートスピーカデバイスである。スマートスピーカデバイスの具体例は、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）による、ＨｏｍｅＰｏｄ（登録商標）スマートスピーカデバイスである。一実施形態では、スマートホームデバイス１０３は、スマートサーモスタット又はスマート照明システムなどのインテリジェント及び／又はデジタル接続デバイスを含むがこれらに限定されない、デジタル接続されたスマートホームシステム内の１つ以上の他のデバイスを管理するように構成されたスマートホームハブデバイスとすることができる。スマートホームデバイス１０３は、データを交換するためにユーザデバイス１０４と接続することができる。スマートホームデバイス１０３とユーザデバイス１０４との間の接続は、１つ以上のネットワーク１１０を介して実行することができる。一実施形態では、スマートホームデバイス１０３及びユーザデバイス１０４は、ユーザデバイス１０４がＬＡＮとインターネット接続との間で遷移する間、永続的接続を動的に維持することができる。
【００２７】
ユーザデバイス１０４は、任意の好適な電子デバイスであり得る。例えば、一実施形態では、ユーザデバイス１０４は、ポータブル多機能デバイス、多機能デバイス、又は個人電子デバイスであり得る。ポータブル多機能デバイスは、例えば、個人データアシスタント、音楽プレーヤ、及び／又はアプリケーション（例えば、ａｐｐｓなど）を実行することができるアプリケーションプロセッサなどの他の機能も含む携帯電話であり得る。ポータブル多機能デバイスの具体的な実施例としては、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）による、ｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）デバイスを挙げることができる。ポータブル多機能デバイスの他の例としては、ラップトップ若しくはタブレットコンピュータ、又はスマートウォッチデバイスなどのウェアラブル電子デバイスを挙げることができるが、これらに限定されない。いくつかの実施形態では、ユーザデバイス１０４は、デスクトップコンピュータ、ゲームコンソール、テレビ、又はテレビセットトップボックスなどであるが、これらに限定されない、非ポータブル多機能デバイスとすることができる。一実施形態では、ユーザデバイス１０４は、ホーム、車両、モーターホームなどの備品であり得る。いくつかの実施形態では、ユーザデバイス１０４は、車両、ホーム、若しくはモバイルホーム用のドア又は別の入口点であり、又はそれらと連携して動作することができる。
【００２８】
ユーザデバイス１０４には、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッドインタフェース）、又は物理キーボード、マウス、及び／若しくはジョイスティックなどの１つ以上の物理ユーザインタフェースデバイスを挙げることができる。
【００２９】
一実施形態では、スマートホームデバイス１０３上のＶＡＣ１０１は、ユーザデバイス１０４上のＶＡＣ１０２と通信して、発語入力の処理を容易にし、又はスマートホームデバイス１０３で受信したコマンドの意図の推測を容易にすることができる。例えば、一実施形態では、スマートホームデバイス１０３は、家庭内の複数のユーザによって使用される共用デバイスであり得る。連絡先情報、カレンダ情報、メッセージデータなど、共用デバイスのユーザに関する特定の個人情報又は私的情報は、所与のユーザ用のプライベートとして分類することができる。共用デバイスであるスマートホームデバイス１０３上にそのような私的情報を記憶することを防止するために、又は、そのような情報（例えば、仮想アシスタントサーバ１０６）を含む、或いはアクセスするサーバへの共用デバイスのアクセスを可能にすることを防止するために、スマートホームデバイス１０３上のＶＡＣ１０１は、そのような情報へのアクセスを容易にし得るユーザデバイス１０４に関連付けることができる。スマートホームデバイス１０３上のＶＡＣ１０１が、ユーザに関連付けられた私的情報へのアクセスを必要とするコマンド又はアクションを実行すべき場合、スマートホームデバイス１０３上のＶＡＣ１０１は、ユーザデバイス１０４、及び／又はユーザデバイス１０４上のＶＡＣ１０２と通信して、要求されたコマンド又はアクションを実行するために使用される情報を取得することができる。
【００３０】
単一のユーザは、複数のユーザデバイス１０４に関連付けることができる。そのような状況において、ユーザデバイス１０４の単一のインスタンスは、コンパニオンデバイスとして指定されてもよい。次いで、スマートホームデバイス１０３は、特定の要求の処理を可能にするために、コンパニオンデバイスと通信する。例えば、ユーザは、１つ以上のスマートフォンデバイス、１つ以上のタブレットデバイス、又はラップトップデバイスなどの、ユーザデバイス１０４の複数のインスタンスを有することができる。ユーザは、スマートホームデバイス１０３が通信して私的ユーザ情報へのアクセスを取得する先のコンパニオンデバイスとして、そのようなユーザデバイス１０４のうちの１つを指定することができる。
【００３１】
いくつかの実施形態では、スマートホームデバイス１０３及びユーザデバイス１０４は、ユーザデバイス１０４上のユーザデバイス１０４及び／又はＶＡＣ１０２にスマートホームデバイス１０３上のＶＡＣ１０１が私的情報をクエリすることを可能にする、永続的又は半永続的接続であるコンパニオンリンク１０５を確立及び維持することができる。一実施形態では、コンパニオンリンク１０５は、ホーム内のデバイス間の通信を可能にする常時接続された低遅延メッセージングシステムである。そのような接続は、ＬＡＮ上でローカルに維持することができ、又はインターネットなどの広域ネットワーク上で確立することができる。コンパニオンリンク１０５は、要求がプライバシー保持方式で処理され得るように、ユーザデバイスへの個人要求を共用デバイスがリダイレクトすることを可能にすることができる。
【００３２】
図１Ｂは、仮想アシスタントシステム１００内のデバイス間の通信を可能にする、図１Ｂのコンパニオンリンクシステム１３０を示す。様々な実施形態では、コンパニオンリンクシステム１３０は、複数のデバイス間でのセキュアな、かつ認証されたメッセージ交換を可能にすることができる。複数のデバイスは、それぞれがポータブル多機能デバイスであり得る１つ以上のユーザデバイス（例えば、ユーザデバイス１０４、ユーザデバイス１１５）を含むことができる。複数のデバイスはまた、複数のユーザによって使用され得る１つ以上の共用スマートホームデバイス（例えば、スマートホームデバイス１０３、スマートホームデバイス１３３）などの１つ以上の固定型デバイスを含むことができる。一実施形態では、コンパニオンリンクのセット１０５ａ〜１０５ｂは、ユーザデバイスと１つ以上の共用スマートホームデバイスとの間のメッセージベースの通信を可能にし得る。コンパニオンリンク１０５ｃがまた、共用スマートホームデバイス間に確立されて、それらのデバイス間の通信を可能にすることができる。一実施形態では、コンパニオンリンク１０５ｄがまた、ユーザデバイス間に確立されて、デバイスデータのピアツーピア交換を可能にすることができる。
【００３３】
一実施形態では、コンパニオンリンクのセット１０５ａ〜１０５ｂを使用して、ユーザに関連付けられた個人デバイスへの個人要求を共用固定型デバイスがリダイレクトすることを可能にし、プライバシー保持方式でそのような要求を処理することを可能にすることができる。例えば、一実施形態では、ユーザは、「次の会議はいつですか？（When is my next meeting?）」などの個人用クエリを共用デバイスに発話することができる。個人クエリは、スマートホームデバイス１０３又はスマートホームデバイス１３３上のＶＡＣ１０１又はＶＡＣ１３１によって受信することができる。そのような要求は発話者のカレンダを使用するため、共用デバイスは、そのような個人データに直接アクセスできない場合がある。そのような要求を満足するために、共用デバイスは、ユーザデバイス１０４などの指定されたコンパニオンデバイスにクエリをリダイレクトし、それによってクエリの分析を実行し、ユーザへの再生のために共用デバイスに返送できるオーディオ応答を生成することができる。
【００３４】
様々な実施形態では、リダイレクトは、明示的又は暗黙的な方法で実行することができる。明示的なリダイレクトの場合、スマートホームデバイス１０３上のＶＡＣ１０１又はスマートホームデバイス１３３上のＶＡＣ１３１は、要求を受信し、処理のために仮想アシスタントサーバ１０６に少なくとも部分的に要求をサブミットすることができる。仮想アシスタントサーバ１０６は、要求を満たすために、少なくともいくつかの情報がコンパニオンデバイス（例えば、ユーザデバイス１０４）から必要とされ得ることを判定することができる。一実施形態では、仮想アシスタントサーバ１０６が、要求を処理するのに使用される個人情報を取り出すために１つ以上のネットワーク１１０を介してユーザデバイス１０４に要求を送信できるという判定に応じて、明示的なリダイレクトを実行することができる。一実施形態では、共用スマートホームデバイスは、スマートホームデバイス１０３上の仮想アシスタントクライアントが仮想アシスタント要求をユーザデバイス１０４上のＶＡＣ１０２にリダイレクトできる、暗黙的なリダイレクトを使用することができる。次いで、ユーザデバイス１０４上のＶＡＣ１０２は、要求がユーザデバイス１０４で直接受信されたかのように要求を処理することができる。次に、ユーザデバイス１０４は、共用デバイス上で再生するためのオーディオ応答を構成することができる。
【００３５】
プライバシー保持方式でのクエリの処理を可能にすることに加えて、一実施形態では、コンパニオンリンク１０５ｃは、スマートホームデバイス１０３及びスマートホームデバイス１３３などの共用デバイス間の通信を可能にする汎用メッセージングを可能にすることができる。そのようなリンクにより、共用デバイスが協調して働き、動作を調整できる。例えば、スマートホームデバイス１０３及びスマートホームデバイス１３３は、音楽又は他のメディアを再生することができる分散メディア再生システムの一部として構成することができる。スマートホームデバイス１０３とスマートホームデバイス１３３との間に確立されたコンパニオンリンク１０５ｃを使用して、メディア再生を調整し、又は複数のデバイスを介してマルチチャネルオーディオ再生を調整することができる。ユーザがスマートホームデバイスのうちの１つにクエリを発話すると、デバイスは、メッセージを交換して、発話要求及び任意の関連するオーディオ応答の持続時間の間、オーディオ再生のダッキングを調整することができる。コンパニオンリンクシステム１３０を使用すると、任意の数の共用スマートホームデバイス及びユーザデバイスは、通信して、オーディオデータ、メディアプレイリスト、構成データ、及び接続されたデジタルホームシステムを可能にするために使用される他の情報を交換することができる。
【００３６】
一実施形態では、コンパニオンリンク１０５ａ〜１０５ｄは、ローカル有線及び／又は無線ネットワーク接続を介してローカルネットワーク接続（例えば、ＬＡＮ）上で確立することができる。一実施形態では、コンパニオンリンク１０５ａ〜１０５ｄはまた、インターネット接続などのＷＡＮ接続を介して確立され得るが、ポリシー及び構成判定は、任意選択的に、スマートホームデバイス１０３、１３３間のコンパニオンリンク１０５ｃを単一ネットワークに制限するように構成されてもよい。一実施形態では、仮想アシスタントサーバ１０６に加えて、サーバシステム１０８は、ユーザデバイス１０４、１１５及びスマートホームデバイス１０３、１３３が１つ以上のネットワーク１１０を介して接続できるオンラインアカウントサーバ１３６を含むことができる。オンラインアカウントサーバ１３６は、様々なデバイスに関連付けられたユーザのオンラインアカウントに関連する情報を含むことができる。いくつかの実施形態では、オンラインアカウントサーバ１３６はまた、オンラインストレージ、メッセージング、電子メール、メディア及びストリーミングサービス、又はナビゲーションサービスを含むオンラインサービスを提供するために、サーバハードウェア及びソフトウェアロジックを含むか、又はそれに関連付けることができる。一実施形態では、オンラインアカウントサーバ１３６はまた、図１Ｂの外部サービス１２０のうちの１つ以上へのアクセスを提供又は容易にすることができる。一実施形態では、オンラインアカウントサーバ１３６はまた、オンラインアプリケーションストア（例えば、アップストア）、及び／又は音楽、ビデオ、若しくは電子ブックストアなどのオンラインメディアストアなどの、オンラインストアへのアクセスを提供又は容易にすることができる。
【００３７】
一実施形態では、ユーザデバイス１０４及び１１５間のコンパニオンリンク１０５ｄを使用して、ピアツーピアデータ交換を可能にすることができる。一実施形態では、デバイス間の自動データ交換は、コンパニオンリンク１０５ｄを介して実行されるように構成され得る。例えば、ユーザデバイス１０４及びユーザデバイス１１５がそれぞれ、オンラインアカウントサーバ１３６上の同じアカウントに関連付けられている場合、デバイスが直接通信範囲内にあるときはいつも、オンラインアカウントサーバを介してクレデンシャル交換を実行して、デバイス間の暗号化通信チャネルの自動確立を可能にすることができる。一実施形態では、オンラインアカウントサーバ１３６に関連付けられたクラウドサービス用のデータは、１つ以上のネットワーク１１０を介する代わりに、コンパニオンリンク１０５ｄを介してデバイス間で交換することができる。一実施形態では、オンラインアカウントサーバ１３６は、単一のアカウントに関連付けられたデバイスのリスト、又は関連するアカウントのファミリーに関連付けられたデバイスのリストを維持することができる。アカウントのファミリーアカウントに関連付けられたデバイスのリストを使用して、デバイスの発見、及びデバイス間のコンパニオンリンク接続の確立を容易にすることができる。オンラインアカウントサーバ上のアカウントは、認証クレデンシャルの交換を介して電子デバイス間の相互認証を可能にすることができる。
【００３８】
一実施形態では、オンラインアカウントサーバ１３６は、登録サーバを含み、又は登録サーバに関連付けられており、各デバイスに関連付けられた一意のデバイス識別子をユーザに関連付けられたオンラインアカウントで登録する。いったんデバイスがユーザのオンラインアカウントに登録されると、ネットワーク１１０を介してデバイスが特定され識別されることを可能にする識別子トークンを作成することができる。識別子トークンは、１つ以上の暗号鍵、トークン、証明書、又は仮想アシスタントサーバ１０６、オンラインアカウントサーバ１３６、及びサーバシステム１０８内の他のサーバが１つ以上のネットワーク１１０にわたってデバイスを特定及び識別することを可能にする他のデータを含むことができる。いくつかの実施形態では、スマートホームデバイス１０３、１３３は、ユーザデバイスが、ホームの外部にあるか、又はスマートホームデバイスのホームネットワークに接続されていない場合、識別子トークンを使用して、ユーザデバイス１０４とのリモート接続を確立することができる。スマートホームデバイス１０３、１３３は、識別子トークンを使用して、モバイル無線ネットワーク上でユーザデバイス１０４を特定し、ユーザデバイス１０４とのセキュアなリモートコンパニオンリンク接続を確立することができる。ユーザデバイス１０４を特定し、ユーザデバイスへの接続を確立することは、仮想アシスタントサーバ１０６及びオンラインアカウントサーバ１３６を介して、部分的に容易にすることができる。そのような実施形態では、ユーザデバイス１０４のコンパニオンデバイス機能の少なくともサブセットは、ユーザデバイス１０４がホームから離れているとき、又はユーザがホームにいるがホームネットワークに接続されていない場合に動作し続けることができる。
【００３９】
いくつかの実施形態では、デバイス上で実行する各仮想アシスタントクライアント（ＶＡＣ１０１、ＶＡＣ１０２、ＶＡＣ１３１）は、仮想アシスタント識別子に関連付けることができる。様々な実施形態では、仮想アシスタント識別子は、ホストデバイスの識別子トークン、デバイスのユーザのオンラインアカウントに関連付けられたアカウント識別子、及び／又はアカウント若しくはデバイス識別子に関連付けられた若しくはそこから導出される別のトークン、に関連付けられ得るか、又はそこから導出され得る。仮想アシスタントクライアントの仮想アシスタント識別子は、仮想アシスタントクライアントが互いに通信しているとき又は仮想アシスタントサーバ１０６と通信しているときに、様々なデバイス上のＶＡＣ１０１、１０２、１３１を一意に又は準一意に識別することができる。仮想アシスタント識別子は、ホストデバイスの識別トークンなどの、仮想アシスタントのホストデバイスの識別情報又は位置情報に関連付けることができる。スマートホームデバイス１０３、１３３とユーザデバイス１０４との間にペアリング関係が作成された後、スマートホームデバイス上の仮想アシスタントクライアント（ＶＡＣ１０１、ＶＡＣ１３１）は、仮想アシスタント識別子を記憶し、仮想アシスタント識別子を使用してユーザデバイス１０４上のＶＡＣ１０２を特定し、識別し、及び通信することができる。ＶＡＣ１０２の仮想アシスタント識別子はまた、仮想アシスタントサーバ１０６に送信され、コンパニオン仮想アシスタント識別子として記憶され得る。仮想アシスタントサーバ１０６が、スマートホームデバイス１０３、１３３のＶＡＣ１０１、１３１において受信した要求の処理動作を実行するためにユーザの私的情報へのアクセスを必要とする場合、仮想アシスタントサーバ１０６は、ＶＡＣ１０１、１３１の代わりにユーザデバイス１０４のＶＡＣ１０２にコンタクトすることができる。次いで、仮想アシスタントサーバ１０６は、様々な実施形態では、ユーザデバイス１０４上のＶＡＣ１０２から、ユーザデバイス１０４からの私的情報、ユーザデバイス１０４にディスパッチされた情報処理タスクの処理結果、又はユーザデバイス１０４の代わりに私的データにアクセスするための許可及び／若しくはアクセスクレデンシャルを受信することができる。
【００４０】
いくつかの実施形態では、サーバシステム１０８は、スマートホームデバイス１０３、１３３とユーザデバイス１０４との間のリモート接続を容易にするために使用できる中継サーバ１２６を含む。中継サーバ１２６は、ローカル接続、又はリモートピアツーピア接続などの別の形態のリモート接続が確立できないイベントにおいて、デバイス間でコンパニオンリンクメッセージを中継できる中継サービスを可能にすることができる。中継サーバ１２６は、スマートホームデバイス１０３、１３３とユーザデバイス１０４との間に確立された中継ペアリングに基づいて、リモートコンパニオンリンクメッセージパッシングを可能にすることができる。様々なデバイスに関連付けられた鍵、証明書、並びに他の識別データ及び検証データは、デバイス間の中継ペアリングを確立するために使用できるローカルペアリングプロセス中に交換することができる。いったん中継ペアリングがデバイス間に確立されると、スマートホームデバイス１０３、１３３は、ユーザデバイス１０４に関連付けられた一意の中継識別子を用いてメッセージを中継サーバ１２６に送信することができる。
【００４１】
中継サーバ１２６と接続できる各デバイスは、関連する中継識別子を有することができ、中継識別子は、接続しているデバイスを識別及び認証するために使用できる永続的なペアリングトークンである。中継識別子は、デバイスを一意に識別するデバイス識別子又は識別子トークンであるか、それを含むか、又はそれから導出することができ、中継トークンの検証を可能にする証明書及び／又は署名を含むことができる。次いで、中継サーバ１２６は、メッセージをユーザデバイス１０４に中継することができる。一実施形態では、永続的及び双方向接続を確立することができ、中継サーバ１２６を介してスマートホームデバイス１０３、１３３にユーザデバイス１０４が戻りメッセージを送信することを可能にする。一実施形態では、ユーザデバイス１０４はまた、デバイスに関連付けられた中継識別子を使用して、スマートホームデバイス１０３、１３３との接続を開始することができる。一実施形態では、中継サーバ１２６を介して交換される各メッセージに対して中継識別子が使用され、サーバを介して中継される各メッセージの信頼性を中継サーバ１２６が検証し、確立された中継サーバ接続を介して無許可のデバイスがメッセージを送信するのを防止することを可能にする。
【００４２】
図２は、実施形態による、複数のスマートホームデバイスを含むホームネットワーク環境２００を示す。ホームネットワーク環境２００は、ホームネットワーク環境にサービスする無線ネットワークへのアクセスを提供するための無線アクセスポイント２１２を含むことができる。複数のスマートホームデバイス２０４、２０６、２１４、２１６、２２２Ａ〜２２２Ｂは、無線ネットワーク、又は任意選択的に有線ネットワーク接続を介して、ホームネットワーク環境２００に接続することができる。様々な実施形態では、ホームネットワーク環境は、様々なタイプのスマートホームデバイスを含むことができる。例えば、スマートホームデバイス２０４、２０６、２１４は、分散メディア再生を行うように構成されたスマートスピーカデバイスであり得る。更に、スマートホームデバイス２１６は、スマート冷蔵庫デバイスなどのスマートアプライアンスデバイスであり得る。スマートホームデバイス２０４、２０６、２１４、２１６、２２２Ａ〜２２２Ｂのそれぞれは、ホームネットワーク環境２００のネットワークを使用して、相互接続するコンパニオンリンクを確立してデバイスが構成情報を交換することを可能にすることができる。例えば、スマートホームデバイス２２２Ａ〜２２２Ｂは、マルチチャネルスマートスピーカデバイスとして構成することができ、マルチチャネルスマートスピーカデバイスは、コンパニオンリンクを使用してマルチチャネル（例えば、ステレオ、サラウンドなど）オーディオ再生を構成することができる。更に、スマートホームデバイス２０４、２０６、２１４、２１６、２２２Ａ〜２２２Ｂのそれぞれは、私的ユーザ情報へのアクセスを必要とする要求のイベントにおいて、要求の処理を容易にするために、コンパニオンリンクを介して指定されたコンパニオンデバイスと対話することができる仮想アシスタントクライアントを含むことができる。ユーザデバイス１０４のモバイルインスタンス、又は接続された車両インフォテインメントシステムなどのユーザデバイスはまた、無線アクセスポイント２１２に近接したときに、ホームネットワーク環境に接続するように構成することができる。一実施形態では、ユーザデバイス１０４はまた、ホームネットワーク環境２００に接続され得る、又はユーザデバイス１０４の直接無線範囲内の任意の他のユーザデバイスへのコンパニオンリンク接続を作成することができる。
デバイス及びコンパニオンの発見
【００４３】
ユーザデバイス１０４と、スマートホームデバイス２０４、２０６、２１４、２１６、２２２Ａ〜２２２Ｂとの間にコンパニオンリンク通信チャネルが確立される前に、コンパニオン発見及びペアリングプロセスが実行される。コンパニオン発見プロセスにより、スマートホームデバイス上の仮想アシスタントクライアント（例えば、図１Ａ〜図１ＢのＶＡＣ１０１、１３１）がユーザ要求を処理及び／又は応答するために使用され得る私的ユーザ情報にアクセスすることになるコンパニオンデバイスを、スマートホームデバイスが特定することを可能にする。いくつかの例では、コンパニオン発見プロセスはまた、スマートホームデバイスとコンパニオンデバイスとの間に通信が生じるべきであることのユーザ検証を含むことができる。いくつかの実施形態では、コンパニオン発見は、ＵＰｎＰフォーラムによって開発されたシンプルサービス発見プロトコル（（ＳＳＤＰ）、又はＡｐｐｌｅ  Ｉｎｃ．によって開発されたＢｏｎｊｏｕｒネットワーキング技術（ＩＥＴＦ  ＲＦＣ  ６７６２及びＩＥＴＦ  ＲＦＣ  ６７６３として公開され、本明細書では「Ｂｏｎｊｏｕｒ」と呼ばれる）などの無線又は他のネットワーク上のデバイス及び／又はサービスの特定を容易にする既存のサービス発見プロトコルを活用することができる。デバイス発見サービスにおいて、デバイスは、その存在、アドレス、及び任意選択的なその能力に関する追加情報を示す情報をアドバタイズすることができる。他のスマートホームデバイス又はユーザデバイスを含む他のデバイスは、アドバタイズをブラウズし、ブロードキャストされた情報に基づいて目的のデバイスを識別することができる。アドバタイズされたアドレスを使用すれば、ブラウジングデバイスは、アドバタイズ主との通信を開始することができる。
【００４４】
ネットワーク及び発見サービスに応じて、アドバタイズは、任意選択的に、情報のリアルタイムブロードキャスト（例えば、マルチキャスト若しくはビーコン信号を介して）を含むことができ、及び／又は他のデバイスが情報を取り出せる中央リポジトリ（例えば、ネットワークアクセスポイント）にアドバタイズ情報を提供することができる。アドバタイズのブラウジングは、ブロードキャストアドバタイズを検出すること、及び／又は中央リポジトリからアドバタイズ情報を取り出すことを含むことができる。いくつかの実施形態では、電気コンセントなどの電源に取り付けられた共用スマートホームデバイスは、コンパニオンリンクサービスのアドバタイズ及び発見を継続的に実行することができる。モバイルユーザデバイスは、ユーザデバイスの位置に基づいて、コンパニオンリンクサービスの発見を可能にすることができる。例えば、一実施形態では、地理的フェンス境界２０３は、モバイルデバイスがユーザデバイス１０４のホームロケーションとして指定された位置に地理的近接内にあるときにコンパニオンリンク発見が可能になるように、モバイルデバイス上に構成される。
【００４５】
共用スマートホームデバイスがコンパニオンデバイス（例えば、ユーザデバイス１０４）として作用するユーザデバイスによって発見されると、共用スマートホームデバイスとコンパニオンデバイスとの間に、ネットワークデータ接続（例えば、ＴＣＰ、ＵＤＰなど）を確立することができる。ネットワークデータ接続は、任意のネットワークレイヤ（例えば、レイヤ３）プロトコルを使用して確立することができる。アドバタイズ及び発見の両方であるデバイス間の接続競争を防止するために、辞書学的により低い永続的識別子を有するデバイスは、デバイス間の接続を開始する。デバイスの永続的識別子は、発見サービスを介してアドバタイズされる、匿名識別子から導出される。一実施形態では、アドバタイズされた情報に基づいて永続的識別子を導出することは、以前に実行されたペアリングプロセスを介して交換されたデータを使用する。そのような実施形態では、スマートホームデバイスがユーザデバイスとペアリングされるまでスマートホームデバイスとのデータ接続を確立することができず、それは、共用スマートホームデバイスとの接続に使用される永続的識別子がそうしなければ不明であるためである。いったんデータ接続が確立されると、共用スマートホームデバイスとコンパニオンデバイスとの間に、セキュアな通信セッションを確立することができる。共用スマートホームデバイス及び接続されたコンパニオンデバイスは、次いで、存在情報及び到達可能情報を交換することができる。コンパニオンデバイスがモバイルデバイスである場合、コンパニオンデバイスは次いで、データがコンパニオンリンクを介して交換されていないときに、必要に応じてウェイクオン無線（ＷｏＷ）状態に入ることができ、一方、電源に接続された共用デバイスは、第１のメッセージ遅延を低減するためにアクティブなままであり得る。
【００４６】
デバイス間の接続性が失われたイベントにおいて、発見サービスは再び可能にされ、ローカルネットワーク上のデバイスを検索するために使用され得る。不明デバイスが再発見された場合、デバイス間のデータ接続を再確立することができる。不明デバイスが発見できない場合、不明デバイスの記録内の状態発見サービス情報が再確認され、クリアされる。検索デバイスは、次いで、セキュアインターネットセッションを介して不明デバイスとの通信を確立しようと試みることができる。一実施形態では、データ接続を確立する際に交換される存在情報及び到達可能情報の一部は、例えば、ピアツーピア又は中継インターネット接続を介して、デバイス識別子、識別子トークン、中継識別子、又は不明デバイスとのメッセージ交換を達成又は可能にするために使用できる別の形態の識別トークンを含む。セキュアインターネット接続が以前の不明デバイスと成功裏に確立できる場合、コンパニオンリンクメッセージがセキュアインターネット接続を介して交換され得る。
【００４７】
コンパニオンデバイスがインターネットベース接続を介してスマートホームデバイスに接続され、ローカル接続が利用可能となるイベントにおいて、コンパニオンリンク接続はローカル接続に切り替えることができる。例えば、ユーザデバイス１０４は、地理的フェンス境界２０３を横切って、発見プロトコル（例えば、ＳＳＤＰ、Ｂｏｎｊｏｕｒなど）がデバイス（例えば、スマートホームデバイス２０４、２０６、２１４、２１６、２２２Ａ〜２２２Ｂ）を検索することを可能にすることができる。ユーザデバイス１０４が、インターネット接続を介してユーザデバイス１０４が接続されているスマートホームデバイスへのローカル接続の利用可能性を発見した場合、ユーザデバイスは、インターネット接続をローカル（例えば、Ｗｉ−Ｆｉ）接続に遷移させることができる。一実施形態では、接続スイッチングは、接続されたデバイス間で接続性が失われた（例えば、ユーザデバイス１０４がホームネットワーク環境２００を離れた）とき、又はデバイスがより良好な接続が利用可能であると判定した（例えば、ユーザデバイス１０４がホームネットワーク環境２００に戻る）ときには、いつでも実行することができる。ローカル接続は恐らくは遅延がより短いため、インターネット接続にはローカル接続が好ましい場合がある。加えて、インターネット接続の代わりにローカル接続を維持することにより、デバイス及びインフラストラクチャの観点から、リソースの集中をより少なくすることができる。
【００４８】
図３は、本明細書に記載される実施形態による、コンパニオンデバイスで共用デバイスを発見及びペアリングするために使用される発見プロセス３００の動作のフロー図である。示される発見プロセス３００は、共用デバイス３０２及び個人デバイス３０４上で実行される動作を含む。共用デバイス３０２は、本明細書に記載される任意のスマートホームデバイス（例えば、図１のスマートホームデバイス１０３、１３３、図２のスマートホームデバイス２０４、２０６、２１４、２１６、２２２Ａ〜２２２Ｂ）であり得る。個人デバイス３０４は、スマートフォンデバイス、タブレットコンピュータデバイス、又はコンパニオンリンクを介して共用デバイス３０２によってアクセス可能であり得る個人データを記憶する別のユーザデバイスなど、本明細書に記載される任意の個人ユーザデバイス（例えば、ユーザデバイス１０４）であり得るが、これらに限定されない。発見プロセス３００は、共用デバイス３０２と個人デバイス３０４との間で実行されるものとして図示及び説明されているが、例示されたプロセスの変形例もまた、共用デバイス３０２の複数のインスタンス間、又は個人デバイス３０４の複数のインスタンス間で実行することもできる。
【００４９】
一実施形態では、ブロック３１０に示されるように、共用デバイス３０２は、デバイスが現在ペアリングされていないこと、又はそうでなければペアリングすべきコンパニオンデバイスを探していることを示すための状態ビットを設定することができる。状態ビットは、共用デバイス３０２によってアドバタイズされる状態情報に列挙された状態フラグインジケータ内のビットであり得る。ブロック３１２において、共用デバイス３０２は、コンパニオンリンクサービス用のサポートを有するように、発見プロトコル（例えば、ＳＳＤＰ、Ｂｏｎｊｏｕｒなど）を介してその存在をアドバタイズすることができる。例えば、Ｂｏｎｊｏｕｒを使用して、共用デバイス３０２は、名前及びサービスタイプを用いてそれ自身をアドバタイズすることができる。名前は、コンパニオン発見（例えば、「Ｓｐｅａｋｅｒ」）用のユーザ可読な名前であってもよく、いくつかの場合では、アドバタイズされた名前は、デバイス定義記録のコンパニオン発見情報サービスインスタンス内で指定された名前であり得る。サービスタイプは、均一なアクセサリプロトコル（例えば、サービスタイプ「＿ｃｏｍｐａｎｉｏｎ−ｌｉｎｋ．＿ｔｃｐ」）に対して定義することができる。アドバタイズはまた、追加情報を含むことができる。同様の情報は、他のサービス発見プロトコル及び技術を使用して分散され得る。例えば、ＳＳＤＰを使用して、コンパニオン発見は、マルチキャストＨＴＴＰ  ＮＯＴＩＦＹメッセージを使用して、名前及びサービスタイプＵＲＩをアドバタイズすることを含み得る。ＵＲＩは、個人デバイス３０４によって使用されて、共用デバイス３０２へのユニキャスト要求を介して追加情報を取り出すことができる。
【００５０】
共用デバイス３０２がサービス発見プロトコルを介してコンパニオンリンクサービスのアドバタイズを開始した後、ブロック３１４に示されるように、個人デバイス３０４は、ペアリングされていないデバイスのブラウジング時に、共用デバイスを発見することができる。アドバタイズの開始とサービスブラウジングの開始との間に特定のタイミングは必要ではないが、個人デバイス３０４は、個人デバイス３０４がブラウズしたときに共用デバイス３０２の発見アドバタイズが検出可能でない限り、共用デバイス３０２を発見することができない。
【００５１】
一実施形態では、個人デバイス３０４は、個人デバイス３０４上でのアプリケーション実行によって提供されるトリガなどのトリガに応じて、ペアリングされていないデバイスをブラウズすることができる。一実施形態では、個人デバイス３０４は、個人デバイス３０４がペアリングされていないデバイスに物理的に近接して配置されたときに、ペアリングされていないデバイスをブラウズすることができる。例えば、共用デバイス用のボックス外近接セットアップは、（例えば、Ｂｌｕｅｔｏｏｔｈ及び／又はＢｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ、ＮＦＣなどを使用する）近距離無線通信機構を介したデータ交換を含むことができ、これによって、個人デバイス３０４をトリガして、ペアリングされていないデバイスをブラウズできる。
【００５２】
ブロック３１６において、個人デバイス３０４は、例えば、ブロック３１２において実行されたアドバタイズを検出することによって、発見サービスアドバタイズを介してデバイスを見つけることができる。ブロック３１８において、個人デバイス３０４は、アドバタイズに基づいて、発見されたデバイスが、ペアリングされていない共用デバイス３０２などの接続候補であるかどうかを判定することができる。一実施形態では、個人デバイス３０４は、発見されたデバイスがコンパニオンリンクサービスをアドバタイズしている場合、発見されたデバイスが接続候補であると判定することができる。個人デバイス３０４は、発見状態フラグを確認して、共用デバイス３０２が既に構成されているか、又はコンパニオンデバイスとペアリングされているかどうかを判定することができる。別の例として、個人デバイス３０４は、アドバタイズされたプロトコルバージョンを確認して、共用デバイス３０２のコンパニオンリンクプロトコルバージョンが、個人デバイス３０４によってサポートされるコンパニオンリンクプロトコルと互換性があるかどうかを判定することができる。個人デバイス３０４が、コンパニオンリンクを確立すべきコンパニオンデバイスに対してアクセサリがアドバタイズしていないと判定した場合、個人デバイス３０４は、ブロック３１４に戻ってブラウズし続けることができる。一実施形態では、共用デバイスが発見されなかった期間後、ブラウジング動作がタイムアウトし、未払いデバイスをブラウジングすることが一時的に停止する場合がある。
【００５３】
ブロック３２２において、個人デバイス３０４は、個人デバイス３０４の表示デバイスなどのユーザインタフェースを介して、ユーザに共用デバイス３０２に関する情報を提示することができる。ブロック３２４において、個人デバイス３０４は、検出されたデバイスで実行するアクションに関して、ユーザインタフェースを介してユーザから入力を受信することができる。例えば、ユーザは、個人デバイス３０４が共用デバイスとのペアリングを確立するべきかどうかを示す入力を提供することができる。個人デバイス３０４は、共用デバイスによって提供されたアドバタイズデータから取得された情報のいずれか又は全てを提示し、個人デバイス３０４が共用デバイス３０２に接続すべきかどうかを指示するようにユーザに促すことができる。ユーザ確認を要求することは、共用デバイスと個人デバイスとの間の偽性又は不必要なペアリングを防止する助けとなり得る。ブロック３２６において、個人デバイス３０４は、ブロック３２４において受信したユーザ入力を解釈し、共用デバイス３０２とペアリングするかどうかを判定することができる。ペアリング手順を完了することにより、共用デバイス３０２が個人デバイス３０４のユーザに関する個人的な性質のクエリを受け入れることができるため、ペアリング動作を開始するユーザ承認に加えて、他の動作を実行して、個人デバイス３０４の権利のある所有者／オペレータの承認なしに生じるペアリングのリスクを最小限にするためのペアリング動作を完了する。例えば、個人デバイス３０４及び／又は共用デバイス３０２は、個人デバイス３０４のユーザに既知のパスコードの入力を要求してもよい。一実施形態では、ブロック３２６においてペアリング動作を完了するために、バイオメトリック検証（例えば、指紋、顔認識など）を、共用デバイス３０２及び／又は個人デバイス３０４によって要求することができる。
【００５４】
ユーザが、ペアリング又はユーザ検証動作を拒否するように個人デバイス３０４に指示する場合、個人デバイス３０４は、ブロック３１４に戻って他のアクセサリ又はデバイスを探すことができる。個人デバイス３０４及び共用デバイス３０２がペアリングする場合、ブロック３２８及びブロック３３０において、個人デバイス３０４及び共用デバイス３０２は、ペアリングセットアッププロセスをそれぞれ実行することができる。いくつかの実施形態では、ペアリングセットアッププロセスを使用して暗号鍵を確立し、個人デバイス３０４と共用デバイス３０２との間のセキュア通信を容易にすることができる。いくつかの実施形態では、ペアリングセットアッププロセスにユーザ確認を組み込むことができ、ペアリングセットアップを開始する前の別個のユーザ確認は必要とされない。一実施形態では、ペアリングセットアッププロセスは、共用デバイス３０２と個人デバイス３０４との間の信頼関係の確立を可能にする。確立された信頼関係は、セキュア通信セッションのセットアップ中に、後に検証することができる。
【００５５】
ペアリングセットアッププロセスが成功裏に完了した場合、共用デバイス３０２は、ブロック３３１において、例えば、アドバタイズされたデバイスデータ内の状態フラグインジケータを更新することによって、アクセサリと通信するためにここで認証が必要とされていること、及び／又はアクセサリが少なくとも１つの個人デバイスとここでペアリングされることを示す、デバイス状態情報を更新することができる。
【００５６】
ブロック３３２において、個人デバイス３０４は、共用デバイス３０２からデバイス定義記録を取得しキャッシュすることができ、ブロック３３４において要求に応じて記録を提供することができる。デバイス定義記録には、デバイスによってサポートされるサービスのセット、及び／又は他の個人デバイス３０４を可能にし得る他の関連する特性、並びに共用デバイス３０２を制御、接続、又はそうでなければ対話する方法を判定するための他の接続されたデバイス、を含むことができる。個人デバイス３０４がデバイス定義記録をキャッシュする場合、情報を使用して、共用デバイス３０２における状態変化の検出を容易にすることができる。いくつかの実施形態では、個人デバイス３０４はまた、共用デバイス３０２によって提供されるアドバタイズデータから情報をキャッシュすることができ、これは、共用デバイスの状態変化を検出するために使用することもできる。
【００５７】
ブロック３３６及び３３８において、個人デバイス３０４及び共用デバイス３０２は、セキュア通信チャネルを確立するために使用されるデータの交換を開始することができる。データ交換には、デバイス間の鍵又は証明書の交換を含むことができる。鍵交換は、デバイス間で交換された共有シークレットを介して保護することができ、共有シークレットは、アウトオブバンド通信方法を使用して交換することができる。更に、データ交換は、１つ以上の短期鍵によって自身が保護され得る、デバイス間の１つ以上の長期鍵の交換を含むことができる。いったんペアリングが確立されると、ペアリングされたデバイスのみがデバイス間で交換されたメッセージを読み取ることができるように、ペアリングを活用してエンドツーエンドメッセージ暗号化を提供できる。一実施形態では、セキュア通信チャネルは双方向チャネルであり、チャネルと通信していないどちらかのデバイスがメッセージ交換を開始することを可能にする。メッセージ交換中、通信セッションを開始するデバイスは、どれもクライアントデバイスと呼ばれ、セッションを受け入れるデバイスは、サーバデバイスと呼ばれる。一実施形態では、デバイス間で交換される第１のメッセージは、情報交換メッセージである。クライアントデバイスは、特徴フラグ又は他のデバイス情報を含む初期情報メッセージを送信することができる。サーバデバイスは、次いで、サポートされた機能に関する情報メッセージで応答することができる。いったんセキュア通信チャネルが確立され、情報交換が生じると、通信デバイスは、保留中の即時動作がない場合に、アイドル状態に入ることができる。
【００５８】
一実施形態では、共用デバイス３０２は、ブロック３４０において追加動作を実行して、接続された個人デバイス３０４をコンパニオンデバイスとして有効にすることができる。そのような実施形態では、発見プロセス３００は、ユーザの正当な個人デバイスであるが、共用デバイス３０２と共に使用するためにコンパニオンデバイスとして指定されている個人デバイスでなくてもよい複数のデバイスで実行されてもよい。一実施形態では、複数の可能な個人デバイスのセットのうちの１つのみが、共用デバイス３０２に対するコンパニオンデバイスとして指定されることになる。個人デバイス３０４は、コンパニオンデバイスとして指定されるユーザのものであり、様々な機構を介して判定することができる。いくつかの実施形態では、ユーザは、個人デバイスがコンパニオンデバイスとして構成され得ることを示す、個人デバイス３０４上の設定を可能にすることができる。一実施形態では、設定は、接続されたスマートホームデバイス用のコンパニオンデバイスとして使用するために、この特定の個人デバイスをユーザが指定したことを示す、特定のコンパニオンデバイス設定とすることができる。一実施形態では、コンパニオンデバイス選択は、個人デバイス３０４上の他の設定に基づいて間接的に判定することができる。例えば、個人デバイスがユーザの位置情報のソースであるように構成されている場合、共用デバイス３０２は、個人デバイス３０４がコンパニオンデバイスとして指定されていると判断することができる。
【００５９】
本明細書で説明される発見及びペアリングプロセスは例示であり、変形及び修正が可能であることは理解されるであろう。シーケンシャルとして記載された動作は同時並行で行ってもよく、ステップの順序を変更しても、ステップの修正、組み合わせ、追加又は省略をしても構わない。更に、ＳＳＤＰサービス及びＢｏｎｊｏｕｒサービスがデバイス発見サービスの例として使用されているが、同様の概念を他のデバイス発見サービスのコンテキストにおいて適用することができる。いくつかの実施形態では、共用デバイス３０２又は任意の他の発見されたデバイスとペアリングするかどうかを判定する前に、個人デバイス３０４は、例えば、ＨＴＴＰ要求を介して要求され得る、ペアリング候補デバイスから定義記録（又はその一部）を要求することができる。構成に応じて、ペアリング候補デバイスは、ペアリングされていない個人デバイスからの要求に応じて、そのアクセサリ定義記録の全て若しくは一部を提供することができ、又は全く提供しないこともできる。あるいは、ペアリングが確立される前に定義記録がアクセス可能であってもよく、ペアリングするかどうかの判定は、ペアリング候補デバイスによって提供されるアドバタイズ情報に基づくことができる。アドバタイズデータは、例えば、デバイスのローカル名、一意のアクセサリ識別子、アクセサリが発見可能であることを示すフラグ、サービスのうちの少なくとも一部に対する汎用一意識別子（ＵＵＩＤ）、デバイス状態のインジケータ、及びデバイスが任意の他の個人デバイスとのペアリングセットアップを実行しているかどうかの指標、を含むことができる。
【００６０】
いくつかの実施形態において、発見プロセス３００、又は同様のプロセスを使用して、ペアリングされたデバイスでの状態変化を検出することができる。例えば、デバイス状態が変化すると、デバイスによってアドバタイズされる状態番号値をインクリメントすることができる。デバイス（例えば、共用デバイス３０２）が状態変化をアドバタイズすると、他のペアリングされたデバイス（例えば、個人デバイス３０４）は、例えば更新されたＢｏｎｊｏｕｒ  ＴＸＴ記録をブロードキャストすることによって状態変化をアドバタイズすることができ、デバイス記録を以前にキャッシュしたペアリングされた個人デバイスは、状態番号のブロードキャスト値をキャッシュ値と比較することによって変化を検出することができる。
【００６１】
ブロック３３６及びブロック３３８においてデバイス間に確立されたセキュア通信チャネルを使用して、コンパニオンリンクメッセージを交換することができる。一実施形態では、コンパニオンリンクメッセージがコンパニオンリンクを介して交換される前に、セキュアセッションが、共用デバイス３０２と個人デバイス３０４との間に確立又は再確立される。一実施形態では、セッションを確立することは、デバイス間のペアリングを検証するためのペアリング検証プロセスを実行することを含む。ペアリング検証プロセスは、共用デバイス３０２と個人デバイス３０４との間の以前に確立されたペアリング関係に依存する。例えば、一実施形態では、デバイス間のコンパニオンリンクセッションを確立することは、デバイスの永続的識別子を必要とする場合があり、永続的識別子は、発見サービスを介してアドバタイズされる匿名識別子から導出することができる。しかしながら、アドバタイズされた情報に基づいて永続的識別子を導出するために、デバイス間のペアリングプロセス中に交換されたデータのうちの１つ以上の要素を使用できる。一実施形態では、ペア検証プロセスは、検証プロセス中に交換されたメッセージを暗号化又は署名するために使用される短期公開鍵ペアの生成、並びにデバイスの初期ペアリング中に交換された以前交換された長期鍵ペアの検証を含み得る。ペアリング検証プロセスは、コンパニオンリンク接続を使用してデバイス間でセキュアセッションが確立されるたびに実行することができる。
【００６２】
図４Ａ〜図４Ｃは、プライバシー保持方式で共用デバイス上の仮想アシスタントクライアントがクエリを処理することを可能にするプロセス４００、４３０、４６０の動作のフロー図である。図４Ａ〜図４Ｃは、共用デバイス４０２及びコンパニオンデバイス４０４上で実行される動作を示す。様々な実施形態では、共用デバイス４０２は、図３の共用デバイス３０２の変形例であり得る。コンパニオンデバイス４０４は、共用デバイス４０２とのペアリングプロセスを受けた図３の個人デバイス３０４であり得る。
【００６３】
図４Ａは、本明細書に記載されるいくつかの実施形態による、共用デバイス４０２上の仮想アシスタントクライアントが、コンパニオンデバイス４０４と接続して個人ユーザデータとして分類されるデータにアクセスする仮想アシスタント要求の処理を容易にすることができるプロセス４００を示す。図４Ｂは、本明細書に記載されるいくつかの実施形態による、共用デバイス４０２上の仮想アシスタントクライアントが、仮想アシスタントクエリをコンパニオンデバイス４０４に暗黙的にリダイレクトすることができるプロセス４５０を示す。図４Ｃは、本明細書に記載されるいくつかの実施形態による、共用デバイスへの発話要求を介して連絡先にメッセージを送信するためのプロセス４６０を示す。特定のプロセスが使用される状況は、ポリシー、構成、及びネットワーク状態に基づいて変化し得る。一実施形態では、特定のプロセスが選択される状況は、実行される動作のタイプに基づいて判定することができる。例えば、受信メッセージを読み取る要求は、図４Ａのプロセス４００に基づいて実行することができ、一方、メッセージを送信する要求（例えば、図４Ｃのプロセス４６０）は、図４Ｂのプロセス４３０に基づいて実行することができる。
【００６４】
図４Ａに示すように、共用デバイス４０２は、ブロック４１０に示されるように、共用デバイス上で実行されている仮想アシスタントクライアントにおいて要求を受信することができる。ブロック４１２において、共用デバイス４０２は、要求を少なくとも部分的に処理して、要求がユーザの私的データにアクセスすることになるかどうかを判定することができる。要求は、テキストベース要求、又は自然言語処理を介して解釈される発話口頭要求であり得る。様々な実施形態では、自然言語処理は、共用デバイス４０２上で部分的に、共用デバイス上で全体的に、又は仮想アシスタントサーバ（例えば、図１Ａ〜図１Ｂの仮想アシスタントサーバ１０６）上で実行することができる。要求が少なくとも部分的に処理された後、共用デバイス４０２（又は処理がオフロードされている場合は仮想アシスタントサーバ）は、ブロック４１４に示すように、要求が私的データへのアクセスを必要とするかどうかを判定することができる。
【００６５】
要求が個人ユーザデータの使用を行うかどうかのブロック４１４における判定は、要求が処理され、要求の意図が判定された後に実行され得る。例えば、共用デバイス４０２の位置に対する現在の天気予報の要求は、個人ユーザデータとして分類されるデータへのアクセスを必要としない場合がある。そのような要求は、４１８において示されるように、要求処理を完了し、要求に対する応答を構成することができる、共用デバイス４０２によって、少なくとも部分的に更に処理することができる。
【００６６】
ブロック４１４において、要求の更なる処理が個人ユーザデータへのアクセスを必要とすると共用デバイス４０２が判定した場合、共用デバイス４０２は、ブロック４１５に示すように、処理のために要求に関連付けられたタスクをコンパニオンデバイスにサブミットすることができる。コンパニオンデバイス４０４は、ブロック４２２において処理要求を受信することができる。ブロック４１５において共用デバイス４０２によってサブミットされ、ブロック４２２においてコンパニオンデバイスによって受信されたタスクは、共用デバイス４０２とコンパニオンデバイス４０４との間に確立されたコンパニオンリンクを介して送信することができる。例えば、一実施形態では、共用デバイス４０２及びコンパニオンデバイス４０４上で実行する仮想アシスタントクライアントは、データを交換するために共通のコンパニオンリンクメッセージパッシングアプリケーションプログラミングインタフェース（ＡＰＩ）を使用することができる。
【００６７】
一実施形態では、要求が個人ユーザデータを使用するかどうかの、ブロック４１４における判定は、共用デバイスと通信する仮想アシスタントサーバ（例えば、図１の仮想アシスタントサーバ１０６）によって実行することができる。共用デバイス４０２は、共用デバイスの処理動作を実行するときに、コンパニオンデバイス４０４の仮想アシスタント識別子を提供することができる。仮想アシスタントサーバが私的データへのアクセスを必要とする場合、仮想アシスタントサーバは、コンパニオンデバイスの仮想アシスタント識別子を使用して、共用デバイス４０２の代わりにコンパニオンデバイス４０４にコンタクトすることができる。
【００６８】
ブロック４２４において、コンパニオンデバイス４０４は、共用デバイス４０２からの要求に応じて個人ユーザデータにアクセスすることができる。コンパニオンデバイス４０４によって容易にされ得る例示的な要求は、例えば、イベントを追加する、又は次のカレンダイベントの発生をクエリするための、ユーザのカレンダにアクセスする要求を含む。コンパニオンデバイス４０４はまた、例えば、ユーザの連絡先のうちの１つの連絡先情報を探すために、ユーザの連絡先内のデータにアクセスすることができる。コンパニオンデバイス４０４は、デバイス上にローカルに記憶された個人ユーザデータにアクセスすることができる。一実施形態では、コンパニオンデバイス４０４は、１つ以上のサーバ（例えば、図１Ｂのオンラインアカウントサーバ１３６）と通信して、コンパニオンデバイス上に記憶された又はそれに関連付けられたオンラインアカウントクレデンシャルに基づいて、コンパニオンデバイスによってリモートにアクセス可能な私的データにアクセスすることができる。一実施形態では、個人ユーザデータへアクセスする。
【００６９】
ブロック４２６において、コンパニオンデバイス４０４は、要求の個人データ部分を処理することができる。例えば、コンパニオンデバイス４０４は、ユーザのカレンダ上のスケジュールされたタスク若しくはイベントのセット内でルックアップを実行し、又はユーザ用のカレンダにタスク若しくはイベントを追加することができる。コンパニオンデバイス４０４はまた、共用デバイス４０２において受信した要求に応じて、ユーザにテキストメッセージ又は電子メールメッセージを送信することができる。例えば、コンパニオンデバイス４０４は、ユーザのスケジュールされたタスク又はイベントのセットを読み取る又は書き込む要求に応じて、ユーザのカレンダデータにアクセスすることができる。コンパニオンデバイス４０４はまた、例えば、連絡先の電話番号、電子メールアドレス、又はメッセージング識別子をルックアップし、テキスト又は電子メールメッセージを連絡先に送信するために、ユーザの連絡先内のデータにアクセスすることができる。
【００７０】
要求の個人データ部分を処理することはまた、コンパニオンデバイス４０４上の１つ以上のアプリケーション、又はそれらの１つ以上のアプリケーションにバックエンドサービスを提供する１つ以上の基礎的なフレームワークと対話することも含み得る。一実施形態では、コンパニオンデバイス４０４は、仮想アシスタントサーバ（例えば、図１Ａ〜図１Ｂの仮想アシスタントサーバ１０６）に許可及び／又はクレデンシャルを提供して、コンパニオンデバイス４０４の代わりに仮想アシスタントサーバが個人ユーザデータを使用して処理タスクを実行することを可能にすることができる。
【００７１】
ブロック４２８において、コンパニオンデバイス４０４は、要求された処理タスクの出力を、デバイス間に確立されたコンパニオンリンクを介して、共用デバイス４０２に提供することができる。共用デバイス４０２に提供される出力は、実装にわたって、及び／又は共用デバイス４０２で受信された要求のタイプに基づいて変化し得る。一実施形態では、要求された処理タスクの出力は、次のカレンダイベントの時間及び日付、又は別のタイプの具体的に要求されたデータなどの生情報であり得る。一実施形態では、出力は、共用デバイス４０２によって提供される最終出力に統合し得る発話出力などの、共用デバイス４０２を介して出力される発話データのサブセットであり得る。
【００７２】
ブロック４１６において、共用デバイス４０２は、デバイス間に確立されたコンパニオンリンクを介して、コンパニオンデバイス４０４から要求された処理タスクの出力を受信することができる。一実施形態では、コンパニオンデバイス４０４から受信された個人データは、共用デバイス４０２上に永続的には記憶又はキャッシュされず、個人データが使用された後に廃棄することができる。共用デバイス４０２は、ブロック４１８において、個人データを使用して、仮想アシスタント要求の処理を完了し、要求に対する応答を構成することができる。
【００７３】
一実施形態では、ブロック４１８における要求処理を完了するために、共用デバイス４０２と仮想アシスタントサーバとの間のデータ交換を含むことができる。図１Ａを更に参照すると、一実施形態では、図４Ａの共用デバイス４０２は、仮想アシスタントクライアント（例えば、ＶＡＣ１０１）を有するスマートホームデバイス１０３である。ＶＡＣ１０１は、ＶＡクライアントへのＩ／Ｏインタフェース１１２を介して、仮想アシスタントサーバ１０６と通信することができる。処理モジュール１１４は、データ及び処理モデル１１６を使用して、受信した要求がスマートホームデバイスの領域に対するローカルな気象予報用であると判定することができる。次いで、仮想アシスタントサーバ１０６は、外部サービスへのＩ／Ｏインタフェース１１８を利用して、１つ以上のネットワーク１１０を介して外部サービス１２０にアクセスすることができる。例えば、外部サービス１２０（例えば、情報サービス（単数又は複数））にアクセスして、要求された天気予報を取り出すことができる。要求に対する応答を構成するために使用され得る情報は、ＶＡクライアントへのＩ／Ｏインタフェース１１２を介して出力することができ、スマートホームデバイス１０３上のＶＡＣ１０１は、要求に対する応答を構成することができる。あるいは、いくつかの例では、仮想アシスタントサーバ１０６は、受信した要求に対する応答を構成し、ＶＡクライアントへのＩ／Ｏインタフェース１１２を介した出力に対する応答を提供することができる。スマートホームデバイス１０３上のＶＡＣ１０１は、出力を最終応答に組み込むことができる。
【００７４】
図４Ａに戻ると、一実施形態では、共用デバイス４０２は、共用デバイスにキャッシュされた、共用デバイス４０２に関連付けられた仮想アシスタントサーバから取り出した公開情報に基づいて、又はコンパニオンデバイス４０４から受信した個人情報に基づいて、仮想アシスタントクライアントにおいて受信した要求に対する応答を構成することができる。出力が発話出力である場合、発話出力は、共用デバイス４０２にローカルな発話エンジンにテキストを使用して、共用デバイス４０２上で完全に生成することができる。一実施形態では、発話出力のサブセットは、コンパニオンデバイス４０４によって生成され、共用デバイス４０２によって構成された応答に組み込まれてもよい。
【００７５】
ブロック４２０において、共用デバイス４０２は、要求に対する応答を出力することができる。応答は、共用デバイス４０２上のスピーカを介して出力される発話構成要素を含むことができる。いくつかの実施形態では、出力は、アニメーション、色変化、又は共用デバイス４０２によって示され得る他の視覚的表示などの視覚的構成要素を含むことができる。いくつかの実装では、テキスト情報又は他の視覚データは、共用デバイス４０２に関連付けられたディスプレイ上に表示されてもよいが、共用デバイス４０２のいくつかの実装では、ディスプレイを欠いていてもよい。
【００７６】
図４Ｂに示すように、いくつかの実施形態では、共用デバイス４０２及びコンパニオンデバイス４０４は、プロセス４３０を実行することができ、共用デバイスは、着信した仮想アシスタントクライアント要求を処理のためにコンパニオンデバイスにリダイレクトする。一実施形態では、共用デバイス４０２は、１つ以上の仮想アシスタントクライアント要求の全体の処理をコンパニオンデバイス４０４に暗黙的にリダイレクトしながら、個人ユーザデータへアクセスできるように見えるように構成することができる。ブロック４４０において、共用デバイス４０２は、個人ユーザデータへのアクセスを必要とするデバイスの仮想アシスタントクライアントで要求を受信することができる。ブロック４４２において、共用デバイス４０２は、次いで、コンパニオンデバイスと確立されたコンパニオンリンクを介して、コンパニオンデバイス４０４への要求をリダイレクトすることができる。一実施形態では、仮想アシスタント要求の処理の全て又は実質的に全ては、共用デバイスのユーザに対してわかりやすい様式で、コンパニオンデバイス４０４上で実行することができる。コンパニオンデバイス上での仮想アシスタント要求の処理はまた、本明細書に記載される仮想アシスタントサーバ（例えば、図１Ａ〜図１Ｂの仮想アシスタントサーバ１０６）上で部分的に実行することができる。例えば、発話認識及び自然言語処理は、仮想アシスタントサーバによって少なくとも部分的に実行することができる。
【００７７】
ブロック４５２において、コンパニオンデバイス４０４は、コンパニオンデバイス上で実行されている仮想アシスタントクライアントにおいて、共用デバイスからの要求を受信することができる。次いで、コンパニオンデバイス４０４は、ブロック４５４において共用デバイスの代わりに要求を処理し、ブロック４５６において共用デバイス上の仮想アシスタントクライアントによって出力される応答を構成することができる。一実施形態では、コンパニオンデバイス４０４上での処理及び応答の生成は、コンパニオンデバイスではない仮想アシスタントクライアントにおいて要求が直接受信されたかのように実行することができる。ブロック４５８において、コンパニオンデバイスは次いで、出力用に、共用デバイス４０２への応答を提供することができる。一実施形態では、共用デバイス４０２に提供される応答は、共用デバイス４０２によって配信される特定の発話出力を含むことができる。あるいは、提供された応答は、共用デバイス上の発話エンジンを介して、共用デバイスによって発話出力にレンダリングできる他のデータであってもよい。
【００７８】
ブロック４５９において、要求がそのようなデータの変更を含む場合、コンパニオンデバイス４０４は、個人ユーザデータに対して１つ以上の仮想アシスタント動作を実行することができる。例えば、ユーザのカレンダ、アラーム、又はリマインダデータを要求に基づいてコンパニオンデバイス上で更新することができ、アプリケーションをコンパニオンデバイス上で開くことができ、構成設定をコンパニオンデバイス上で調整することができ、又はコンパニオンデバイス４０４上の仮想アシスタントによって要求が直接受信されたかのように、任意の他の仮想アシスタント動作を実行することができる。ブロック４５９はブロック４７８の後に実行されるものとして例示されているが、要求された仮想アシスタント動作は、ブロック４５８における出力のために共用デバイスへ応答を提供することに対して、任意の順序で実行することができる。例えば、アプリケーションを開く要求は、要求を確認応答するオーディオ応答が再生のために共用デバイスに提供された後に実行することができる。あるいは、スケジュール及びイベント又はアラームの要求は、共用デバイスへの出力のための確認応答を提供する前に、又はそれと並行して実行することができる。
【００７９】
ブロック４４４において、共用デバイス４０２は、リダイレクト要求に対する応答を受信することができる。次いで、共用デバイス４０２は、ブロック４４６において要求に対する応答を出力することができる。応答出力は、図４Ａのブロック４２０において実行される出力と同様の方法で実行することができ、コンパニオンデバイス４０４によって生成される発話データの出力、又はコンパニオンデバイス４０４から受信した出力に基づいて共用デバイス４０２上でローカルに生成された発話データの出力を含むことができる。要求を完了するために複数回の対話を要求が必要とするイベントにおいて、デバイス間に確立されたコンパニオンリンクを使用して、共用デバイス４０２とコンパニオンデバイス４０４との間で複数回の要求リダイレクトを実行することができる。
【００８０】
図４Ｃに示すように、いくつかの実施形態では、共用デバイス４０２及びコンパニオンデバイス４０４は、プロセス４６０を実行することができ、ここで、共用デバイスは、仮想アシスタントクライアント要求をリダイレクトして、メッセージ（例えば、テキストメッセージ、電子メールメッセージ、又は別の直接メッセージ）をコンパニオンデバイスに送信する。共用デバイス４０２は、メッセージを連絡先に送信するために、共用デバイス上の仮想アシスタントクライアントで発話要求を受信することができる。メッセージは、テキストメッセージ、電子メールメッセージ、又はユーザデバイス間で送信され得る別のタイプの直接メッセージであってもよい。様々な実施形態では、テキストメッセージは、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）によって提供されるｉＭｅｓｓａｇｅ（登録商標）システムを介して送信されるメッセージなどの、ショートメッセージングサービス（ＳＭＳ）メッセージ及び／又は別のタイプのテキストベースのメッセージであり得る。いくつかの実施形態は、テキストメッセージが、他のタイプの非ＳＭＳテキストメッセージングサービスを介して送信されることを可能にする。一実施形態では、メッセージは、記録されたボイスメッセージであり得る。メッセージが送信される連絡先は、連絡先リストに列挙された連絡先とすることができ、連絡先リストは、ユーザの個人ドメインの一部とみなすことができる。様々な実施形態では、共用デバイス４０２は、発話要求を少なくとも部分的に処理することができ、また、図４Ａのブロック４１２における動作と同様の方法で、処理の少なくとも一部を仮想アシスタントサーバ（例えば、図１の仮想アシスタントサーバ１０６）にオフロードすることもできる。一実施形態では、仮想アシスタントサーバ上の自然言語処理動作は、ブロック４７０において受信した発話要求を処理するために個人ユーザデータを使用するかどうかを判定することができる。例えば、仮想アシスタントサーバは、発話要求を処理することが、ユーザの連絡先情報及び関連付けられたメッセージングサービスなどのユーザの個人ドメイン内にあるデータ又はサービスにアクセスすることを判定することができる。ユーザのメッセージングサービスにアクセスすることは、ユーザに関連付けられたメッセージングサービスアカウントにアクセスすることを含み得る。ブロック４７０において受信した発話要求の処理を容易にするために、共用デバイス４０２は、ブロック４７２において、メッセージング要求をコンパニオンデバイス４０４に送信することができる。ブロック４８０において、コンパニオンデバイス４０４は、デバイスの仮想アシスタントクライアントでメッセージング要求を受信することができる。一実施形態では、メッセージング要求は、ブロック４８２において、発話要求の一部で処理された仮想アシスタントサーバを介して、共用デバイス４０２から間接的に受信することができる。
【００８１】
共用デバイス４０２から直接的又は間接的にメッセージング要求を受信したコンパニオンデバイス４０４は、コンパニオンデバイス４０４上の仮想アシスタントクライアントを介してメッセージング要求を処理することができる。メッセージング要求を処理することは、ブロック４８２に示すように、共用デバイスの代わりに特定された連絡先にメッセージを送信することを含み得る。コンパニオンデバイス４０４上でメッセージを送信することは、ＳＭＳサービスを介してテキストメッセージを送信すること、電子メールクライアントを介してメッセージを送信すること、又は別のメッセージングサービス若しくはコンパニオンデバイス４０４上のアプリケーションを介してメッセージを送信すること、を含み得る。一実施形態では、送信するメッセージのタイプは、ブロック４７０において共用デバイス４０２によって受信された発話要求内で指定することができる。一実施形態では、メッセージを送信することは、ユーザのオンラインアカウント、例えば、図１Ｂのオンラインアカウントサーバ１３６に関連付けられたオンラインアカウントに基づいて容易にすることができる。例えば、メッセージが連絡先に送信されるメッセージングサービスは、ユーザのオンラインアカウントに関連付けられたメッセージングサービスであり得る。
【００８２】
コンパニオンデバイス４０４は、ブロック４８４において送信されたメッセージに対する応答を受信することができる。一実施形態では、ブロック４８４に示されるように、メッセージに対する応答は、ある期間内に受信されるべきであり、コンパニオンデバイス４０４は、ブロック４８６において共用デバイス４０２への応答の通知を送信することができる。受信されたメッセージのために通知が送信される期間は、仮想アシスタントシステムに関連付けられた構成若しくはポリシー内で指定することができ、又はユーザと関連付けられた好み、共用デバイス４０２、又はコンパニオンデバイス４０４のユーザ設定に基づいて構成することができる。
【００８３】
一実施形態では、コンパニオンデバイス４０４は、ブロック４８６において、メッセージング要求の受信先である共用デバイス４０２に通知を送信する。一実施形態では、コンパニオンデバイス４０４が共用デバイス４０２の複数のインスタンスと接続される場合、ブロック４８６における通知の送信先である特定の共用デバイスは、複数の技術のうちの１つを使用して判定することができる。上述のように、１つの技術では、メッセージング要求の受信先である共用デバイスに通知を送信する。追加的な技術では、ユーザが直近に対話した共用デバイスに通知を送信する。例えば、ユーザは、第１の位置の第１の共用デバイスに要求して、メッセージを連絡先に送信することができる。ユーザは次いで、第２の位置に移動し、第２の共用デバイスと対話することができる。メッセージへの応答が一定期間内に受信され、ユーザが第２の共用デバイスと直近に対話した場合、第２の共用デバイスに通知を送信することができる。使用できる追加的な技術では、ユーザが最も近い共用デバイスに通知を送信する。一実施形態では、コンパニオンデバイス４０４と共用デバイス４０２との間の範囲を周期的に判定するために、１つ以上の測距技術を使用することができる。最近送信されたメッセージへの応答が受信されると、コンパニオンデバイス４０４は、１つ以上の測距技術に従って、コンパニオンデバイス又は関連するウェアラブル電子デバイスが最も近い共用デバイス４０２に通知を送信することができる。
【００８４】
ブロック４７６において、ブロック４７４で応答の通知を受信した共用デバイス４０２は、ブロック４７６において受信した応答の通知を出力することができる。一実施形態では、通知の出力は、共用デバイス４０２の１つ以上のスピーカデバイスを介して再生される発話通知を介して提供されてもよい。一実施形態では、視覚通知技術を含む他の通知技術を使用することができる。一実施形態では、発話通知は、発話連絡先名などの、受信メッセージの１つ以上の構成要素の発話変換に対するテキストを含むことができる。一実施形態では、発話通知は、受信メッセージの発話コンテンツを含むことができる。受信メッセージが記録メディアを含む一実施形態では、受信メッセージに関連付けられた記録メディア（例えば、オーディオ、ビデオ）を出力することができる。いくつかの実施形態では、受信テキストメッセージの発話コンテンツ、又は記録メディアの再生は、ユーザによって提供された要求に応じてのみ実行することができる。そのような実施形態では、応答のコンテンツを再生するための発話要求は、図４Ａのプロセス４００又は図４Ｂのプロセス４３０による要求を処理できる、コンパニオンデバイスに送信することができる。
【００８５】
図５は、本明細書に記載される実施形態による、ペアリングされたデバイスとのコンパニオンリンク接続を確立するためのプロセス５００を示す。プロセス５００は、共用デバイスが、コンパニオンリンク（例えば、図４の共用デバイス４０２及びコンパニオンデバイス４０４）を介してコンパニオンデバイスとの接続を開始する動作を示す。しかしながら、コンパニオンデバイスが共用デバイスとの接続を開始する、同様の動作を実行することができる。一実施形態では、コンパニオンリンクを介したメッセージ交換の間、通信セッションを開始するいずれのデバイスもコンパニオンリンクに対するクライアントデバイスであるが、セッションを受け入れるデバイスは、コンパニオンリンクに対するサーバデバイスであり、したがって、共用デバイス４０２及びコンパニオンデバイス４０４はそれぞれ、コンパニオンリンク接続を開始又は受け入れることができる。更に、一実施形態では、ホームネットワーク環境（例えば、図２のホームネットワーク環境２００）内の複数の共用デバイス間に、コンパニオンリンク接続を確立することができる。加えて、図１のように、ユーザデバイス１０４とユーザデバイス１１４との間などの複数のコンパニオンデバイス間に、コンパニオンリンク接続を確立することができる。
【００８６】
ブロック５０２において、コンパニオンリンクを介して共用デバイスとコンパニオンデバイスとの間に通信セッションを確立すべきとの判定がなされ得る。この判定は、共用デバイス又はコンパニオンデバイスのいずれかによって行うことができる。例示的な目的のために、プロセス５００は、クライアントとしての共用デバイス、及びサーバとしてのコンパニオンデバイスを用いて例示されているが、実施形態はそのようには限定されない。
【００８７】
ブロック５０４において、共用デバイスは、ローカルネットワークを介して、コンパニオンデバイスの発見を試みることができる。発見は、Ｂｏｎｊｏｕｒ又はＳＳＤＰを含むがこれらに限定されない、本明細書に記載された発見サービスを使用して実行することができる。デバイスがブロック５０６においてローカルに発見された場合、プロセス５００がブロック５１６において続行され、ここで共用デバイスは、コンパニオンデバイスとのローカルネットワーク接続の確立を試みることができる。ローカルネットワーク接続は、伝送制御プロトコル（ＴＣＰ）などであるがこれらに限定されないネットワークプロトコルを介して確立することができる。デバイスがローカルに発見されない場合、共用デバイスは、ブロック５０８においてリモート識別子が利用可能であるかどうかを判定することができる。リモート識別子は、同じネットワーク上に常駐しない又はそうしなければ発見サービスプロトコルを介して発見できないペアリングされたデバイスとのコンパニオンリンクセッションを、共用デバイス又は別のコンパニオンリンククライアントが特定、接続、及び確立することを可能にする、識別子又は識別トークンであり得る。１つ以上のリモート識別子は、ローカルデバイス発見及び／又はペアリングプロセス（例えば、図３の発見プロセス３００）の間に生じる、存在情報及び到達可能情報の交換中に、コンパニオンリンクデバイス間で交換することができる。例示的なリモート識別子は、仮想アシスタントサーバ（例えば、図１Ｂの仮想アシスタントサーバ１０６）を介して通信するために使用され得る、コンパニオンデバイス上の仮想アシスタントクライアントに関連付けられた仮想アシスタント識別子と、オンラインアカウントサーバ（例えば、図１Ｂのオンラインアカウントサーバ１３６）での登録を介して確立された識別子トークンと、中継サーバ（例えば、図１Ｂの中継サーバ１２６）に関連付けられた中継識別子と、を含む。共用デバイスは、インターネットＩＰアドレスなどのネットワークアドレスのクエリに利用可能なリモート識別子を使用することができ、リモート識別子を使用して、コンパニオンデバイスに接続し、又は中継サービスを介してコンパニオンデバイスとの中継メッセージ交換を可能にすることができる。ブロック５１８において、共用デバイスは、リモート識別子を使用して、コンパニオンデバイスとのリモートネットワーク接続を確立することができる。
【００８８】
ブロック５１６においてローカルネットワーク接続を介して、又はブロック５１８においてリモートネットワーク接続を介して接続が確立されたかどうかにかかわらず、共用デバイスは、ブロック５２０においてコンパニオンデバイスとのペアリングを検証することができる。ペアリングを検証することにより、コンパニオンリンクを介してコメントしているデバイス間に真のペアリング関係が存在し、以前のローカルペアリング中に交換されたデータを利用することが確立される。一実施形態では、ペアリング検証プロセスが実行され、各デバイスは、ペアリングのセットアップ中に交換された長期公開鍵に対応する長期シークレット鍵の所有を実証する。ペア検証プロセスは、ペアリング検証セッション中に生じる通信を暗号化するために使用できる、新しい共有シークレット又はセッション鍵を確立することを更に含み得る。
【００８９】
ブロック５２２において、コンパニオンデバイスは、ペア検証プロセスが成功したかどうかを判定することができる。ブロック５２０におけるペアリング検証プロセスが、共用デバイスとコンパニオンデバイスとの間のペアリング関係を検証できなかった場合、コンパニオンデバイスは、少なくともコンパニオンデバイスに関連付けられたユーザの個人情報への仮想アシスタントアクセスが利用できなくなる、ブロック５１０に向けられる。
【００９０】
ブロック５０８において判定されたように、共用デバイスがコンパニオンデバイスにアクセスするために使用するリモート識別子が利用できない場合、個人情報への仮想アシスタントアクセスもまた利用できなくなる。そのような状況下で、ペアリングされた及び／又は有効なコンパニオンデバイスなしでユーザの個人情報へのアクセスを必要とするクエリが与えられると、共用デバイス上の仮想アシスタントは、クエリを処理することができなくなる。
【００９１】
ブロック５２２において、ペアリングが成功裏に検証されたと共用デバイスが判定した場合、共用デバイスは、ブロック５２４においてコンパニオンデバイスのユーザ用のシークレットデータにアクセスするクエリをサービスするために、コンパニオンデバイスとの検証されたコンパニオンリンクセッションを、共用デバイス上の仮想アシスタントクライアントに確立することができる。検証されたセッションは、メッセージ及びデータがプライバシー保持方式でデバイス間で交換され得るように、デバイス間のエンドツーエンド暗号化メッセージ交換を可能にすることができる。暗号化メッセージ交換は、例えば、個人又は個人のユーザデータに対する仮想アシスタント用のコマンド又は応答の中継を可能にするように実行することができる。暗号化メッセージ交換はまた、デバイスデータ、アプリケーションデータ、又はクラウドサービスアカウントに関連付けられた構成データなどの、電子デバイス間のデバイスデータを同期させるように実行することもできる。
【００９２】
上述のように、プロセス５００は、接続を開始するデバイスとして、共用デバイスと共に図示されているが、コンパニオンデバイスはまた、共用デバイスとのローカル又はリモートセッションを開始することもできる。一実施形態では、検証されたコンパニオンリンクセッションは、いったん確立されると双方向接続であり、デバイス間の双方向メッセージ交換を可能にする。更に、セッションに参加する任意のモバイルデバイスは、無線機及び関連するプロセッサがセッションに関連付けられた接続を維持しながらデバイスが低電力状態に入り得るように、データがコンパニオンリンクを介して交換されていないときにウェイクオン無線状態に入ることができる。
【００９３】
いくつかの実施形態では、本明細書に記載されるコンパニオンデバイスは、デフォルトで、個人データの１つ以上の要素へのアクセスを制限するように構成することができる。一実施形態では、制限は、仮想アシスタントの使用がコンパニオンデバイス上で可能になるまで、個人データの特定の要素上に実施されなくてもよい。一実施形態では、制限は、デバイスがロック状態にある間、特定の要素の個人データ上に実施されてもよい。一実施形態では、制限は、デバイスパワーオン以降に少なくとも１つの成功裏のロック解除許可が生じるまで、所定の位置にあってもよい。例えば、一実施形態では、ユーザデバイス上の個人データを暗号化することができ、そのような個人データのアクセスに使用される鍵へのアクセスは、デバイスがロックされている間に制限することができる。したがって、コンパニオンデバイスの構成に応じて、コンパニオンデバイスは、コンパニオンデバイスがロックされている間に要求を受信した場合、共用デバイスからの要求を処理するために使用され得る個人データへのアクセスを有さなくてもよい。一実施形態では、個人データへのアクセスは、図６に示すプロセスを使用して、コンパニオンデバイス上で可能にすることができる。
【００９４】
図６は、本明細書に記載される実施形態による、コンパニオンデバイス上の個人データへのアクセスを可能にするためのプロセス６００を示す。プロセス６００は、本明細書に記載されるコンパニオンデバイス内のロジックによって実行することができ、コンパニオンデバイスは、本明細書に記載される任意の指定された個人ユーザデバイスであり得る。コンパニオンデバイスは、ブロック６０２に示すように、個人ユーザデータへのアクセスを必要とする要求を処理するために、共用デバイスからの要求を受信することができる。コンパニオンデバイスは、個人データアクセスが個人デバイス上で可能であるかどうかを判定することができる。様々な実施形態では、コンパニオンデバイス上の個人データアクセスは、様々な方法で制限され得る。一実施形態では、デバイスは、デバイスがロック状態にある間に、個人ユーザデータへのプログラム的アクセスを制限するように構成することができる。ブロック６０３において判定されたように、個人データアクセスが制限されている（例えば、有効でない）場合、コンパニオンデバイスは、ブロック６０４に示すように、ユーザに個人データへのアクセスを促すことができる。個人データへのアクセスのためのプロンプトは、アクセスのためのブランケットプロンプトであり得、又はアクセスされる個人データのタイプに固有であり得る。様々な実施形態において、ブロック６０４におけるプロンプトは、様々な形態で提示され得る。一実施形態では、プロンプトは、コンパニオンデバイスのユーザインタフェース上に提示されるポップアップ通知又は別のタイプの通知である。一実施形態では、プロンプトは、コンパニオンデバイスによって発話され得る口頭プロンプトである。
【００９５】
ブロック６０５においてユーザによって個人データアクセスが可能になった場合、コンパニオンデバイスは、ブロック６０８において、共用デバイスから個人データにアクセスし、その要求を処理することができる。個人データアクセスがユーザによって許可される方法は、アクセスプロンプトの性質に依存し得る。例えば、一実施形態では、ユーザは、提示されたユーザインタフェース要素の選択によるアクセスを可能にすることができ、又は、コンパニオンデバイスへの要求の口頭確認応答を提供することができる。ユーザが個人データへのアクセスを許可しなかった場合、コンパニオンデバイスは、ブロック６０６において、共用デバイスからの要求を拒否することができる。
【００９６】
図７は、一実施形態による、分散メディア再生システムを使用するためのコンピューティングデバイス７００のブロック図である。一実施形態では、コンピューティングデバイス７００は、共用スマートスピーカデバイス、又はメディア再生機能を有するスマートアプライアンスなど、本明細書で説明されるユーザデバイス又はスマートホームデバイス内での使用に好適であり得るハードウェア及びソフトウェアを含む。コンピューティングデバイス７００は、メディア再生を可能にする１つ以上のスピーカデバイス（単数又は複数）７０１を含む。コンピューティングデバイス７００がスマートスピーカデバイスとして実装される場合、スピーカデバイス（単数又は複数）７０１は、コンピューティングデバイスがユーザデバイス又はスマートアプライアンスとして実装されるときに対して、より高い品質であり得る。
【００９７】
コンピューティングデバイス７００は、ネットワーク通信機能を可能にするネットワークインタフェース７０２を含む。ネットワークインタフェース７０２は、１つ以上の無線機（単数又は複数）７０３と結合して、Ｗｉ−Ｆｉ及びＢｌｕｅｔｏｏｔｈなどであるがこれらに限定されない、１つ以上の無線ネットワーキング技術を介して無線通信を可能にすることができる。いくつかの実施態様では、ネットワークインタフェース７０２はまた、有線ネットワーク接続をサポートすることができる。コンピューティングデバイスはまた、複数のプロセッサデバイスを有する処理システム７０４、並びに揮発性及び不揮発性メモリを含むアドレス空間を有する仮想メモリシステムであり得るシステムメモリ７１０を含む。
【００９８】
一実施形態では、処理システム７０４は、ユーザ用の、及びコンピューティングデバイス上で実行されるシステムアプリケーション用の命令を実行するための１つ以上のアプリケーションプロセッサ（単数又は複数）７０５を含む。処理システムはまた、動きセンサ、光センサ、近接センサ、バイオメトリックセンサ、オーディオセンサ（例えば、マイクロフォン）、及び画像センサ（例えば、カメラ）を含むがこれらに限定されないセンサを有する一組のセンサデバイス７０８を処理及び監視するセンサプロセッサを含むことができる。センサプロセッサ７０６は、センサデバイス７０８のスイート内の常時オンセンサの低電力監視を可能にすることができる。センサプロセッサ７０６は、コンピューティングデバイス７００がアクティブに使用されていないときに、アプリケーションプロセッサ（単数又は複数）７０５が低電力状態に留まることを可能にする一方で、コンピューティングデバイス７００が仮想アシスタント７２０へのボイス入力又はジェスチャ入力を介してアクセス可能なままであることを可能にすることができる。一実施形態では、処理システム内のセンサプロセッサ７０６又は同様の低電力プロセッサは、メディアプレーヤ７２５によって提供されるメディア命令の低電力処理を可能にすることができる。メディアプレーヤ７２５は、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６４、及びＨ．２６５／ＨＥＶＣを含むがこれらに限定されない、様々な異なるオーディオ及び／又はビデオメディアタイプの再生ができるモジュール式メディアプレーヤであってもよい。一実施形態では、他のフォーマットは、追加のコーデックプラグインを介してサポートされてもよい。
【００９９】
仮想アシスタント７２０は、コンピューティングデバイス７００上で実行されて、本明細書で説明されるインテリジェント自動アシスタントシステムを提供するロジックである。仮想アシスタント７２０には、ネットワークを介してデータを取り出すためのネットワークインタフェース７０２、メディアファイルの再生を開始若しくは停止するためのメディア再生アプリケーション、又はカレンダイベント、タスク、リマインダ、若しくはアラームをスケジュールするためのユーザカレンダデータを含むが、これらに限定されない、コンピューティングデバイス内の様々なソフトウェア及びハードウェア構成要素へのアクセスを選択的に与えることができる。仮想アシスタント７２０が本明細書に記載される共用デバイス上で実行される場合、仮想アシスタントは、コンパニオンリンクモジュール７２２と対話して、ユーザの個人ドメインデータにアクセスする要求が受信されたイベントでは、コンパニオンデバイス、又はコンパニオンデバイス上で実行されている仮想アシスタントを特定し、接続することができる。
【０１００】
コンピューティングデバイス７００が分散再生システムに参加することができるスマートスピーカデバイス内にある場合、分散再生モジュール７１２は、分散再生システムを介して再生されるメディアのリストを管理する再生キューマネージャ７１４と、分散再生システムの特定の要素にメディア再生をルーティングする再生ルーティングマネージャ７１６とを含むがこれらに限定されない、メディア再生の様々な態様を管理するための動作を実行することができる。一実施形態では、再生ルーティングマネージャ７１６は、コンパニオンリンクモジュール７２２を使用して確立された接続を介して、分散再生システムの異なる要素と接続することができる。コンパニオンリンクモジュール７２２は、マルチチャネル再生システム用のチャネル出力を構成する、又は複数の接続されたスピーカにわたって音量調整を調整するなどの動作を実行するために、分散再生システムのスピーカとデバイスとの間に確立されたコンパニオンリンクを介して接続確立及びメッセージ中継を容易にすることができる。
【０１０１】
一実施形態では、イベントスケジューラ７３０は、分散再生モジュール７１２とデータを交換することができる。データ交換は、コンピューティングデバイス７００、又は分散型再生システム内に参加する異なるコンピューティングデバイスのユーザインタフェースを介して受信した入力に応じて実行することができる。データ交換はまた、仮想アシスタント７２０を介して要求された活動に応じて実行することができる。例えば、一実施形態では、イベントスケジューラ７３０を介してスケジュールされたイベントは、スケジュールされたイベントの発生時に再生キューマネージャ７１４を介してプレイリストを再生できるように、メディアプレイリストに関連付けることができる。例えば、アラームは、ユーザを特定の時間に起こすようにスケジュールできる。アラームは、１つ以上のメディア要素がアラーム音に関連して又はアラーム音の代替として再生されるように、プレイリストに関連付けることができる。一実施形態では、プレイリストは、リマインダ又はタイマ失効イベントを含むイベントスケジューラ７３０を介してスケジュールされた任意のイベントに関連付けることができる。
【０１０２】
一実施形態では、再生キューマネージャ７１４は、複数の同時再生キューを管理することができ、再生キューは、コンピューティングデバイス７００を介して再生される１つ以上の過去、現在、又は未来のメディア要素を含む。再生キューは、複数のメディア要素を指定する個々のメディア要素又はプレイリストでロードすることができる。再生キューには、ローカルに記憶されたメディア、メディアサーバ経由で再生するために取り出されるメディア、又はローカル若しくはリモートのメディアストリーミングサーバからストリーミングされるメディア、を含むことができる。再生キューマネージャを介して、音楽、音楽ビデオ、及びオーディオ若しくはビデオポッドキャストを含むポッドキャスト、又は現在のニュース、天気、若しくはスポーツイベントのオーディオ及び／若しくはビデオクリップなどを含むがこれらに限定されない、マルチメディアファイルを含む再生キューマネージャを介して、分散再生システム上で再生されてもよい。
【０１０３】
１つ以上のポッドキャストがスケジュールされたイベントの発生に応じて再生用に選択される場合、ポッドキャスト選択ロジックは、ポッドキャストの最新の利用可能なエピソード、又は最新の利用可能な未再生のポッドキャストなど、再生用のポッドキャストの特定のエピソードを選択することができる。そのような選択は、明示的なユーザの好みから、又は学習されたユーザ好み情報に基づいて判定することができる。選択はまた、現在の日付に対する利用可能な未再生のポッドキャストの履歴に基づいて実行することもできる。一実施形態では、ポッドキャストフィードは、ポッドキャストフィードがシリアルポッドキャスト又はニューススタイルポッドキャストに関連付けられているかどうかを示すメタデータを含む。再生されていないエピソードを再生するか、又は最新のエピソードを再生するかは、そのようなメタデータに少なくとも部分的に基づいて判定することができる。
【０１０４】
一実施形態では、例えば、ウェイクアラームを設定するときに、ニュース番組又はニュースチャンネルを再生用に選択することができる。ユーザは、ウェイクアラームに応じて再生するための特定のプログラム又はチャネルを選択することができる。あるいは、ユーザは、再生キューマネージャ７１４に関連付けられた一般的なニュースカテゴリ及びロジックを選択することができ、選択されたユーザの好みに基づいて再生するニュース番組又はニュースチャンネルを選択することができる。一実施形態では、ニュースプログラムの好みは、ユーザデバイス上のニュース番組内で選択されたニューストピックの好みに基づいて判定することができる。
【０１０５】
一実施形態では、異なる再生キューの再生を引き起こすスケジュールされたイベント中に既存の再生キューが有効な場合、再生キューマネージャ７１４は、ユーザによって選択された好みに基づいてキューを管理することができる。一例では、再生キューマネージャ７１４は、既存の再生キューを新しい再生キューに置き換えるように構成することができ、既存の再生キューのキュー項目を除去し、それらを新しい再生キューの項目と置き換える。そのような場合では、アラーム又は他のスケジュールされたイベントに応じて再生するために選択された項目は、以前のキュー項目を置き換え、包含する。あるいは、再生キューマネージャ７１４は、スケジュールされたイベントが却下されるまでのみ、効果のある過渡再生キューを実装するように構成することができる。スケジュールされたイベントが却下された後、以前に存在する再生キューの再生項目は、アクティブキューに復元され、以前に存在するキューの再生を再開することができる。スケジュールされたイベントは、仮想アシスタントへのボイスコマンド若しくはテキストコマンドを介して、コンピューティングデバイス７００上のユーザインタフェース、又はコンピューティングデバイス７００に接続されたユーザデバイスのユーザインタフェースを介して、却下することができる。
【０１０６】
一実施形態では、再生ルーティングマネージャ７１６を使用して、再生キューの再生に使用するための分散再生システム内の再生デバイスを選択することができる。分散再生システム内の再生デバイスの数に応じて、複数の異なるキューを複数の異なる再生デバイス上でアクティブにし、又は分散再生システム内の複数の異なる再生デバイスをグループ化することができる。グループ化された再生デバイスは、共通の再生キューを共有し、同時に同じメディアを再生することができる。スマート再生デバイスがプロビジョニングされると、１人以上のユーザ及び／又は１つ以上のユーザアカウントに、再生デバイスを関連付けることができる。スマート再生デバイスはまた、位置及び／又はデバイスタイプを割り当てることができる。一実施形態では、住居分散再生ネットワークは、複数のユーザデバイスが、住居内の１つ以上のスマート再生デバイスを介してメディアを再生するように構成することができる。スマート再生デバイスが住居ネットワークに追加されると、各再生デバイスの部屋又は位置を指定することができる。スマート再生デバイスが単一のユーザに関連付けられているかどうか、又はスマート再生デバイスが複数のユーザに関連付けられた共用デバイスであるかどうかを示すオーナーシップを、各スマート再生デバイスに対して指定することもできる。
【０１０７】
上述のように、本技術の一態様は、本明細書で説明するように、仮想アシスタントで使用するための、特定の正当なソースから利用可能なデータを収集及び使用することである。本開示は、場合によっては、この収集されたデータは、特定の人物を一意的に特定する、又は特定するために使用できる、個人情報データを含み得ることを意図している。そのような個人情報データは、人口統計データ、位置ベースのデータ、オンライン識別子、電話番号、電子メールアドレス、ホームアドレス、ユーザの健康又はフィットネスレベル（例えば、バイタルサイン測定、服薬情報、運動情報）に関するデータ若しくは記録、生年月日、又は任意の他の個人情報を含むことができる。
【０１０８】
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、個人情報データを使用して、仮想アシスタントを介してカレンダ又はリマインダデータにユーザがアクセスすることを可能にすることができる。仮想アシスタントが連絡先データにアクセスできるようにすることにより、仮想アシスタントがメッセージを送信し、又は通話を開始することを可能にすることができる。更には、ユーザに利益をもたらす、個人情報データに関する他の使用もまた、本開示によって想到される。例えば、ユーザの好みに従って、健康及びフィットネスのデータを使用して、一般的なウェルネスへの洞察を提供し、又はウェルネス目標を追求する技術を使用した個人への肯定的フィードバックとして使用することができる。
【０１０９】
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用に関与するそれらエンティティが、確固たるプライバシーポリシー及び／又はプライバシー慣行を遵守するものとなることを意図している。具体的には、そのようなエンティティは、ユーザのプライバシーを維持するための業界又は政府の要件を満たす又は上回ると一般に認識されるプライバシー慣行を実現し、一貫して適用することが予想されるであろう。個人データの使用に関するそのような情報は、ユーザによって顕著に、容易にアクセス可能であるべきであり、かつ、データの収集及び／又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、正当な使用のためのみに収集されるべきである。更に、そのような収集／共有は、ユーザの承諾を受けた後に、又は適用可能な法律に明記された他の正当な根拠に基づいて行われるべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。加えて、ポリシー及び慣行は、収集及び／又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、かつ、より高い基準を課す役割を担い得る管轄権固有の考慮事項を含めた、適用可能な法令及び基準に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はアクセスは、医療保険の相互運用性と説明責任に関する法律（Health Insurance Portability and Accountability Act、ＨＩＰＡＡ）などの、連邦法及び／又は州法によって管理することができ、その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。
【０１１０】
前述のことがらにもかかわらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び／又はソフトウェア要素を提供することができると想到する。例えば、個人データにアクセスできる共用スマートホームデバイスの場合、本技術は、サービスの登録中又はその後いつでも、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」をユーザが選択することを可能にするよう構成することができる。別の例では、ユーザは、スマートホームデバイスからの個人的データ又は私的データの特定の要素へのアクセスを可能にしないように選択することができる。「オプトイン」及び「オプトアウト」の選択肢を提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを想到する。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
【０１１１】
更には、本開示の意図は、個人情報データを、非意図的若しくは無許可アクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなった時点で削除することによって、危険性を最小限に抑えることができる。更には、適用可能な場合、特定の健康関連アプリケーションにおいて、ユーザのプライバシーを保護するために、データの非特定化を使用することができる。非特定化は、適切な場合には、識別子を除去すること、記憶されたデータの量又は特異性を制御すること（例えば、位置データを住所レベルよりも都市レベルで収集すること）、データがどのように記憶されるかを制御すること（例えば、データをユーザ全体にわたって集約すること）、及び／又は差分プライバシーなどの他の方法によって、容易にしてもよい。
【０１１２】
それゆえ、本開示は、１つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものではあるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することもまた可能であることを想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、実施不可能となるものではない。例えば、いくつかのスマートホームデバイスの機能は、ユーザのデバイス上でのみ取り扱われるコンテンツ、又は利用可能な他の非個人情報などの、集計された非個人情報データ、又は裸の最小限の個人情報に基づいて可能にされ得る。
【０１１３】
本明細書に記載される実施形態は、１つ以上のプログラミングインタフェースを介して呼び出される他のプログラムコードとコーリングプログラムコードとが相互作用する環境内の１つ以上のアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。様々な機能呼び出し、メッセージ、又は他のタイプの呼び出しは、様々な種類のパラメータを更に含んでもよく、呼び出しプログラムと呼び出されているコードとの間でＡＰＩを介して転送することができる。加えて、ＡＰＩは、ＡＰＩ内で定義され、呼び出されたプログラムコード内に実装されるデータタイプ又はクラスを使用する能力を、呼び出しプログラムコードに提供することができる。
【０１１４】
ＡＰＩは、ＡＰＩ呼び出し構成要素の開発者（サードパーティ開発者であってもよい）がＡＰＩ実装構成要素によって提供される特定の機能を利用することを可能にする。１つのＡＰＩ呼び出し構成要素が存在してもよく、又はこのような構成要素は２つ以上存在してもよい。ＡＰＩは、アプリケーションからのサービスの要求をサポートするためにコンピュータシステム又はプログラムライブラリが提供するソースコードインタフェースであり得る。オペレーティングシステム（ＯＳ）は複数のＡＰＩを有し、そのＯＳ上で動作するアプリケーションがそれらのＡＰＩのうちの１つ以上を呼び出すことを可能にすることができ、サービス（プログラムライブラリ等）は複数のＡＰＩを有し、そのサービスを利用するアプリケーションがそれらのＡＰＩのうちの１つ以上を呼び出すことを可能にすることができる。ＡＰＩは、アプリケーションの構築時に解釈実行又はコンパイルすることができるプログラミング言語において指定することができる。
【０１１５】
いくつかの実施形態では、ＡＰＩ実装構成要素は、ＡＰＩ実装構成要素によって実装される機能の異なる態様にアクセスする異なる観点又は異なる態様をそれぞれが提供する、２つ以上のＡＰＩを提供してもよい。例えば、ＡＰＩ実装構成要素の１つのＡＰＩは、第１の組の関数を提供することができ、かつサードパーティー開発者に開示され、ＡＰＩ実装構成要素の他のＡＰＩは、隠されており（開示されない）、かつ第１の組の関数のサブセットを提供するとともに、第１のセットの関数に含まれていないテスト又はデバッグ関数などの他のセットの関数を提供することもできる。他の実施形態では、ＡＰＩ実装構成要素自身が、基礎的なＡＰＩを介して１つ以上の他の構成要素を呼び出すため、ＡＰＩ呼び出し構成要素、及びＡＰＩ実装構成要素の両方であり得る。
【０１１６】
ＡＰＩは、ＡＰＩ呼び出し構成要素がＡＰＩ実装構成要素の指定された機能にアクセスして利用する際に用いる言語及びパラメータを定義する。例えば、ＡＰＩ呼び出し構成要素は、ＡＰＩによって公開される（例えば関数又はメソッド呼び出しによって具体化される）１つ以上のＡＰＩ呼び出し又は起動を通じてＡＰＩ実装構成要素の指定された機能にアクセスし、ＡＰＩ呼び出し又は起動を介してパラメータを用いてデータ及び制御情報を渡す。ＡＰＩ実装構成要素は、ＡＰＩ呼び出し構成要素からのＡＰＩ呼び出しに応じてＡＰＩを通じて値を返してもよい。ＡＰＩは、ＡＰＩ呼び出しの構文及び結果（例えば、どのようにＡＰＩ呼び出しを起動するのか、及びＡＰＩ呼び出しは何をするのか）を定義するが、ＡＰＩは、ＡＰＩ呼び出しはどのようにＡＰＩ呼び出しによって指定された関数を完遂するのかは明らかにしなくてもよい。呼び出し（ＡＰＩ呼び出し構成要素）とＡＰＩ実装構成要素との間では、１つ以上のアプリケーションプログラミングインタフェースを介して種々のＡＰＩ呼び出しが転送される。ＡＰＩ呼び出しの転送は、発行、開始、起動、呼び出し、受信、返信、又は関数呼び出し若しくはメッセージへの応答を含み得る。換言すれば、転送は、ＡＰＩ呼び出し構成要素又はＡＰＩ実装構成要素のいずれかによるアクションとして説明することができる。ＡＰＩの関数呼び出し又はその他の起動は、パラメータリスト又はその他の構造を通じて１つ以上のパラメータを送信するか又は受信してもよい。パラメータは、定数、鍵、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、あるいはＡＰＩを介して渡されるデータ若しくはその他の項目を参照するための関数若しくはメソッド又は別の手段へのポインタであり得る。
【０１１７】
更に、データ型又はクラスがＡＰＩによって提供され、ＡＰＩ実装構成要素によって実装されてもよい。それゆえ、ＡＰＩ呼び出し構成要素は、ＡＰＩ内で提供される定義を利用することによって、このような型若しくはクラスの変数を宣言するか、定数値へのポインタを用いるか、定数値を使用するか、又はインスタンス生成してもよい。
【０１１８】
一般的に、ＡＰＩは、ＡＰＩ実装構成要素によって提供されるサービス又はデータにアクセスするため、あるいはＡＰＩ実装構成要素によって提供される演算又は計算の実行を開始するために用いることができる。例として、ＡＰＩ実装構成要素及びＡＰＩ呼び出し構成要素はそれぞれ、オペレーティングシステム、ライブラリ、デバイスドライバ、ＡＰＩ、アプリケーションプログラム、又はその他のモジュールのうちのいずれかのものであってもよい（ＡＰＩ実装構成要素及びＡＰＩ呼び出し構成要素は、互いに同じ又は異なる種類のモジュールであってもよいことを理解されたい）。ＡＰＩ実装構成要素は、場合によっては、ファームウェア、マイクロコード、又はその他のハードウェア論理の形で少なくとも部分的に具体化されてもよい。実施形態によっては、ＡＰＩは、クライアントプログラムが、ソフトウェア開発キット（ＳＤＫ）ライブラリによって提供されるサービスを利用することを可能としてもよい。他の実施形態では、アプリケーション又は他のクライアントプログラムは、アプリケーションフレームワークによって提供されるＡＰＩを利用してもよい。これらの実施形態では、アプリケーション又はクライアントプログラムは、ＳＤＫによって提供され、ＡＰＩによって提供される関数若しくはメソッドに対する呼び出しを組み込むか、又はＳＤＫ内で定義され、ＡＰＩによって提供されるデータタイプ若しくはオブジェクトを使用してもよい。これらの実施形態では、アプリケーションフレームワークが、フレームワークによって定義される種々のイベントに応答するプログラムのためのメインイベントループを提供してもよい。ＡＰＩは、アプリケーションがアプリケーションフレームワークを利用して、イベント、及びイベントへの応答を特定することを可能にする。いくつかの実装形態では、ＡＰＩ呼び出しは、入力能力及び状態、出力能力及び状態、処理能力、電力状態、記憶容量及び状態、通信能力などの側面に関するものを含む、ハードウェアデバイスの能力又は状態をアプリケーションに報告することができ、ＡＰＩは、ファームウェア、マイクロコード、又はハードウェア構成要素上で部分的に実行するその他の低レベルロジックによって部分的に実装されてもよい。
【０１１９】
ＡＰＩ呼び出し構成要素は、ローカル構成要素（すなわち、ＡＰＩ実装構成要素と同じデータ処理システム上にある）、又はＡＰＩを介してネットワークを通じてＡＰＩ実装構成要素と通信するリモート構成要素（すなわち、ＡＰＩ実装構成要素と異なるデータ処理システム上にある）であってもよい。ＡＰＩ実装構成要素はまた、ＡＰＩ呼び出し構成要素の役割も果たしてよく（すなわち、それは、異なるＡＰＩ実装構成要素によって公開されたＡＰＩへのＡＰＩ呼び出しを行ってもよい）、ＡＰＩ呼び出し構成要素はまた、ＡＰＩを実装することによって、異なるＡＰＩ呼び出し構成要素に公開されたＡＰＩ実装構成要素の役割も果たしてよいことを理解されたい。
【０１２０】
ＡＰＩにより、異なるプログラミング言語で書かれている複数のＡＰＩ呼び出し構成要素は、ＡＰＩ実装構成要素と通信することができるが（したがって、ＡＰＩは、ＡＰＩ実装構成要素とＡＰＩ呼び出し構成要素との間で呼び出しと戻りを翻訳するための機能を備えることができる）、ＡＰＩは、特定のプログラミング言語に関して実装されてもよい。ＡＰＩ呼び出し構成要素は、一実施形態では、あるＡＰＩのセットはＯＳ提供者から、かつ別のＡＰＩのセットはプラグイン提供者から、かつ別のＡＰＩのセットは別の提供者（例えばソフトウェアライブラリの提供者）又は別のＡＰＩのセットの作成者からなどの、異なる提供者からのＡＰＩを呼び出すことができる。
【０１２１】
図８は、本発明のいくつかの実施形態において使用され得る、例示的なＡＰＩアーキテクチャを示すブロック図である。図８に示すように、ＡＰＩアーキテクチャ８００は、ＡＰＩ８２０を実装するＡＰＩ実装構成要素８１０（例えば、オペレーティングシステム、ライブラリ、デバイスドライバ、ＡＰＩ、アプリケーションプログラム、ソフトウェア、又は他のモジュール）を含む。ＡＰＩ８２０は、ＡＰＩ呼び出し構成要素８３０によって使用され得るＡＰＩ実装構成要素の１つ以上の関数、メソッド、クラス、オブジェクト、プロトコル、データ構造、フォーマット、及び／又は他の機能を指定する。ＡＰＩ８２０は、ＡＰＩ実装構成要素の関数がＡＰＩ呼び出し構成要素からパラメータをどのように受け取るか、及び関数がＡＰＩ呼び出し構成要素に結果をどのように返すかを指定する少なくとも１つの呼び出し規約を指定することができる。ＡＰＩ呼び出し構成要素８３０（例えば、オペレーティングシステム、ライブラリ、デバイスドライバ、ＡＰＩ、アプリケーションプログラム、ソフトウェア、又は他のモジュール）は、ＡＰＩ８２０を通じてＡＰＩ呼び出しを実行して、ＡＰＩ８２０によって指定されているＡＰＩ実装構成要素８１０の機能にアクセスし、使用する。ＡＰＩ実装構成要素８１０は、ＡＰＩ呼び出しに応じて、ＡＰＩ呼び出し構成要素８３０にＡＰＩ８２０を通じて値を返すことができる。
【０１２２】
ＡＰＩ実装構成要素８１０は、追加の関数、メソッド、クラス、データ構造、及び／又はＡＰＩ８２０を通じて指定されておらず、かつ、ＡＰＩ呼び出し構成要素８３０に利用可能ではない他の機能を含む得ることが理解されるであろう。ＡＰＩ呼び出し構成要素８３０は、ＡＰＩ実装構成要素８１０と同じシステム上にあるか、又はリモートに特定することができ、ネットワークを経由してＡＰＩ８２０を使用してＡＰＩ実装構成要素８１０にアクセスすることができることを理解されたい。図８は、ＡＰＩ８２０と相互に作用する単一のＡＰＩ呼び出し構成要素８３０を示しているが、ＡＰＩ呼び出し構成要素８３０と異なる言語（又は同じ言語）で書くことが可能な他のＡＰＩ呼び出し構成要素がＡＰＩ８２０を用いることができることを理解されたい。
【０１２３】
ＡＰＩ実装構成要素８１０、ＡＰＩ８２０、及びＡＰＩ呼び出し構成要素８３０は、機械可読媒体に記憶することができ、これは機械（例えば、コンピュータ又は他のデータ処理システム）によって読み取ることができる形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読媒体には、磁気ディスク、光ディスク、ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリデバイスなどが挙げられる。
【０１２４】
図９Ａ〜図９Ｂは、実施形態による、例示的なＡＰＩソフトウェアスタック９００、９１０のブロック図である。図９Ａは、アプリケーション９０２が、サービスＡＰＩを使用してサービスＡ又はサービスＢへの呼び出しを行い、ＯＳ  ＡＰＩを使用してオペレーティングシステム９０４への呼び出しを行うことができる、例示的なＡＰＩソフトウェアスタック９００を示す。更に、サービスＡ及びサービスＢは、いくつかのＯＳ  ＡＰＩを使用してオペレーティングシステム９０４への呼び出しを行うことができる。
【０１２５】
図９Ｂは、アプリケーション１、アプリケーション２、サービス１、サービス２、及びオペレーティングシステム９０４を含む例示的なＡＰＩソフトウェアスタック９１０を示す。示されるように、サービス２は、２つのＡＰＩを有し、それらの一方（サービス２ＡＰＩ１）が、アプリケーション１から呼び出しを受信して、アプリケーション１に値を返し、他方（サービス２ＡＰＩ２）が、アプリケーション２から呼び出しを受信して、アプリケーション２に値を返す。サービス１（例えば、ソフトウェアライブラリとすることができる）は、ＯＳ  ＡＰＩ１への呼び出しを行い、ＯＳ  ＡＰＩ１から戻り値を受信し、サービス２（例えば、ソフトウェアライブラリとすることができる）は、ＯＳ  ＡＰＩ１及びＯＳ  ＡＰＩ２の双方への呼び出しを行い、双方から戻り値を受信する。アプリケーション２は、ＯＳ  ＡＰＩ２への呼び出しを行い、ＯＳ  ＡＰＩ２から戻り値を受信する。
追加の例示的コンピューティングデバイス
【０１２６】
図１０は、一実施形態による、モバイルデバイス又は組み込みデバイス用のデバイスアーキテクチャ１０００のブロック図である。デバイスアーキテクチャ１０００は、メモリインタフェース１００２と、１つ以上のデータプロセッサ、画像プロセッサ、及び／又はグラフィックス処理ユニットを含む処理システム１００４と、周辺機器インタフェース１００６とを含む。様々な構成要素は、１つ以上の通信バス又は信号線によって結合することができる。様々な構成要素は、別個のロジック構成要素若しくはデバイスであってもよく、又はチップ集積回路上のシステムなどの１つ以上の集積回路に統合することができる。
【０１２７】
メモリインタフェース１００２は、スタティックランダムアクセスメモリ（ＳＲＡＭ）若しくはダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの高速ランダムアクセスメモリ、及び／又はフラッシュメモリ（例えば、ＮＡＮＤフラッシュ、ＮＯＲフラッシュなど）などであるがこれに限定されない不揮発性メモリ、を含むことができるメモリ１０５０に結合することができる。
【０１２８】
センサ、デバイス、及びサブシステムは、周辺機器インタフェース１００６と結合することにより、多機能を容易にすることができる。例えば、動きセンサ１０１０、光センサ１０１２、及び近接センサ１０１４を周辺機器インタフェース１００６に結合して、モバイルデバイス機能を容易にすることができる。指紋認識用の指紋スキャナ又は顔認識用の画像センサなど、１つ以上のバイオメトリックセンサ（単数又は複数）１０１５も存在してもよい。他のセンサ１０１６はまた、測位システム（例えば、ＧＰＳ受信器）、温度センサ、又は他の検出デバイスなどの周辺機器インタフェース１００６に結合して、関連する機能を容易にすることができる。カメラサブシステム１０２０及び光学センサ１０２２（例えば、電荷結合素子（ＣＣＤ）又は相捕型金属酸化膜半導体（ＣＭＯＳ）光学センサを利用して、写真及びビデオクリップの記録等のカメラ機能を容易にすることができる。
【０１２９】
１つ以上の無線通信サブシステム１０２４を通じて、通信機能を容易にすることができ、それらのサブシステムとしては、無線受信器及び送信器、並びに／又は光（例えば、赤外線）受信器及び送信器を挙げることができる。無線通信サブシステム１０２４の具体的な設計及び実装は、このモバイルデバイスが動作することを目的とする、通信ネットワーク（単数又は複数）次第であり得る。例えば、図示されたデバイスアーキテクチャ１０００を含むモバイルデバイスは、ＧＳＭネットワーク、ＣＤＭＡネットワーク、ＬＴＥネットワーク、Ｗｉ−Ｆｉネットワーク、ブルートゥースネットワーク、又は任意の他の無線ネットワーク上で動作するように設計された無線通信サブシステム１０２４を含むことができる。特に、無線通信サブシステム１０２４は、メディア再生アプリケーションが、リモートメディアサーバからリソースを、又はリモートカレンダ若しくはイベントサーバからスケジュールされたイベントを取り出せる、通信機構を提供することができる。
【０１３０】
オーディオサブシステム１０２６をスピーカ１０２８及びマイクロフォン１０３０に結合することにより、ボイス認識機能、ボイス複製機能、デジタル録音機能、及び電話機能等のボイスを使用可能な機能を容易にすることができる。本明細書に記載されるスマートメディアデバイスでは、オーディオサブシステム１０２６は、仮想サラウンドサウンド用のサポートを含む高品質オーディオシステムであり得る。
【０１３１】
Ｉ／Ｏサブシステム１０４０は、タッチスクリーンコントローラ１０４２及び／又は他の入力コントローラ（単数又は複数）１０４５を含むことができる。表示デバイスを含むコンピューティングデバイスの場合、タッチスクリーンコントローラ１０４２は、タッチ感知ディスプレイシステム１０４６（例えば、タッチスクリーン）に結合することができる。タッチ感知ディスプレイシステム１０４６及びタッチスクリーンコントローラ１０４２は、例えば、容量性、抵抗性、赤外線、及び表面弾性波技術、並びに他の近接センサアレイ、又はタッチ感知ディスプレイシステム１０４６との１つ以上の接触点を判定するための他の要素を含むがこれらに限定されない、複数のタッチ及び圧力感知技術のうちのいずれかを使用して、接触及び動き並びに／又は圧力を検出することができる。タッチ感知ディスプレイシステム１０４６用の表示出力は、ディスプレイコントローラ１０４３によって生成することができる。一実施形態では、ディスプレイコントローラ１０４３は、フレームデータをタッチ感知ディスプレイシステム１０４６に可変フレームレートで提供することができる。
【０１３２】
一実施形態では、センサコントローラ１０４４は、動きセンサ１０１０、光センサ１０１２、近接センサ１０１４、又は他のセンサ１０１６のうちの１つ以上から受信したデータを、監視、制御、及び／又は処理するために含まれる。センサコントローラ１０４４は、センサデータを解釈して、センサからのセンサデータの分析によって、より多くのモーションイベント又は活動のうちの１つの発生を判定するためのロジックを含むことができる。
【０１３３】
一実施形態では、Ｉ／Ｏサブシステム１０４０は、１つ以上のボタン、ロッカスイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／若しくスタイラスなどのポインタデバイス、又はスピーカ１０２８及び／若しくはマイクロフォン１０３０の音量制御用のアップ／ダウンボタンなどの制御デバイス、などの他の入力／制御デバイス１０４８に結合できる他の入力コントローラ（単数又は複数）１０４５を含む。
【０１３４】
一実施形態では、メモリインタフェース１００２に結合されたメモリ１０５０は、ポータブルオペレーティングシステムインタフェース（ＰＯＳＩＸ）適合及び非適合オペレーティングシステム又は組み込みオペレーティングシステムを含む、オペレーティングシステム１０５２用の命令を記憶することができる。オペレーティングシステム１０５２は、基本システムサービスを処理するし、及びハードウェア依存タスクを実行する命令を含むことができる。いくつかの実装形態では、オペレーティングシステム１０５２は、カーネルであり得る。
【０１３５】
メモリ１０５０はまた、例えば、リモートウェブサーバからウェブリソースを取り出すために、通信命令１０５４を記憶して、１つ以上の追加デバイス、１つ以上のコンピュータ、及び／又は１つ以上のサーバとの通信を容易にすることができる。メモリ１０５０はまた、グラフィックユーザインタフェースの処理を容易にするグラフィカルユーザインタフェース命令を含むユーザインタフェース命令１０５６を含むことができる。
【０１３６】
加えて、メモリ１０５０は、センサ関連の処理及び機能を容易にするためのセンサ処理命令１０５８、電話関連の処理及び機能を容易にするための電話命令１０６０、電子メッセージング関連の処理及び機能を容易にするためのメッセージング命令１０６２、ウェブブラウジング関連の処理及び機能を容易にするためのウェブブラウザ命令１０６４、メディア処理関連の処理及び機能を容易にするためのメディア処理命令１０６６、ＧＰＳ及び／又はナビゲーション命令１０６８、並びに位置ベースの機能を容易にするためのＷｉ−Ｆｉベースの位置命令を含む位置サービス命令、カメラ関連の処理及び機能を容易にするためのカメラ命令１０７０、並びに／又は他の処理及び機能、例えば、セキュリティ処理及び機能、及びシステム関連の処理及び機能を容易にするための他のソフトウェア命令１０７２、を記憶することができる。メモリ１０５０はまた、ウェブビデオ関連の処理及び機能を容易にするためのウェブビデオ命令などの他のソフトウェア命令、及び／又はウェブショッピング関連の処理及び機能を容易にするためのウェブショッピング命令、を記憶することができる。いくらかの実装形態では、メディア処理命令１０６６を、オーディオ処理関連の処理及び機能を容易にするためのオーディオ処理命令と、ビデオ処理関連の処理及び機能を容易にするためのビデオ処理命令とに、それぞれ分割することができる。国際移動体装置識別番号（ＩＭＥＩ）１０７４又は同様のハードウェア識別子などの移動体装置識別子もまた、メモリ１０５０に記憶することができる。
【０１３７】
上記の識別された命令及びアプリケーションのそれぞれは、上記１つ以上の機能を実行する命令セットに対応し得る。これらの命令は、別個のソフトウェアプログラム、手順、又はモジュールとして実装する必要がない。メモリ１０５０に追加の命令を含めてもよいし、又は含まれている命令を減らしてもよい。更にまた、様々な機能は、１つ以上の信号処理及び／又は特定用途向け集積回路を含むハードウェア及び／又はソフトウェアに実装できる。
【０１３８】
図１１は、コンピューティングシステム１１００の一実施形態のブロック図である。図１１に示されるコンピューティングシステムは、例えば、デスクトップコンピュータシステム、ラップトップコンピュータシステム、タブレットコンピュータシステム、セルラー電話、セルラー対応ＰＤＡを含む個人デジタルアシスタント（ＰＤＡ）、セットトップボックス、娯楽システム若しくは他の消費者向け電子デバイス、スマート家電デバイス、又はスマートメディア再生デバイスの１つ以上の実装を含む、様々なコンピューティングシステム（有線又は無線）を表すことを目的としている。代替的なコンピューティングシステムは、より多く、より少ない、及び／又は異なる構成要素を含み得る。図１１のコンピューティングシステムは、コンピューティングデバイス、及び／又はコンピューティングデバイスが接続し得るサーバデバイスを提供するために使用されてもよい。
【０１３９】
コンピューティングシステム１１００は、情報を通信するためのバス１１３５又は他の通信デバイス、及び情報を処理し得るバス１１３５に結合されたプロセッサ（単数又は複数）１１１０を含む。コンピューティングシステム１１００は単一のプロセッサで例示されているが、コンピューティングシステム１１００は、複数のプロセッサ及び／又はコプロセッサを含んでもよい。コンピューティングシステム１１００は、バス１１３５に結合されたランダムアクセスメモリ（ＲＡＭ）又は他のダイナミックストレージデバイスなどのメモリ１１２０を更に含んでもよい。メモリ１１２０は、プロセッサ（単数又は複数）１１１０によって実行され得る情報及び命令を記憶してもよい。メモリ１１２０はまた、プロセッサ（単数又は複数）１１１０による命令の実行中に一時的変数又は他の中間情報を記憶するために使用されてもよい。
【０１４０】
コンピューティングシステム１１００はまた、プロセッサ（単数又は複数）１１１０に対する情報及び命令を記憶し得るバス１１３５に結合された読み出し専用メモリ（ＲＯＭ）１１３０及び／又は別のデータ記憶デバイス１１４０を含んでもよい。データ記憶デバイス１１４０は、フラッシュメモリデバイス、磁気ディスク、又は光ディスクなどの様々な記憶デバイスであってもよく、又はそれを含むことができ、バス１１３５を介して、又はリモート周辺インタフェースを介して、コンピューティングシステム１１００に結合されてもよい。
【０１４１】
コンピューティングシステム１１００はまた、バス１１３５を介してディスプレイデバイス１１５０に結合されて、ユーザに情報を表示することができる。コンピューティングシステム１１００はまた、情報及びコマンド選択をプロセッサ（単数又は複数）１１１０に通信するためにバス１１３５に結合され得る、英数字及び他のキーを含む英数字入力デバイス１１６０を含むことができる。別のタイプのユーザ入力デバイスには、タッチパッド、マウス、トラックボール、又はカーソル方向キーなどのカーソル制御デバイス１１７０が含まれ、方向情報及びコマンド選択をプロセッサ（単数又は複数）１１１０に通信し、表示デバイス１１５０上のカーソル移動を制御する。コンピューティングシステム１１００はまた、１つ以上のネットワークインタフェース（単数又は複数）１１８０を介して通信可能に結合されたリモートデバイスからのユーザ入力を受信することができる。
【０１４２】
コンピューティングシステム１１００は、ローカルエリアネットワークなどのネットワークへのアクセスを提供するために、１つ以上のネットワークインタフェース（単数又は複数）１１８０を更に含んでもよい。ネットワークインタフェース（単数又は複数）１１８０は、例えば、１つ以上のアンテナ（ｅ）を表し得るアンテナ（単数又は複数）１１８５を有する無線ネットワークインタフェースを含んでもよい。コンピューティングシステム１１００は、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、近距離通信（ＮＦＣ）、及び／又はセルラー電話インタフェースの組み合わせなどの、複数の無線ネットワークインタフェースを含むことができる。例えば、ネットワークインタフェース（単数又は複数）１１８０はまた、例えば、イーサネットケーブル、同軸ケーブル、光ファイバケーブル、シリアルケーブル、又はパラレルケーブルであり得るネットワークケーブル１１８７を介してリモートデバイスと通信するための有線ネットワークインタフェースを含んでもよい。
【０１４３】
一実施形態では、ネットワークインタフェース（単数又は複数）１１８０は、例えばＩＥＥＥ８０２．１１ｂ及び／又はＩＥＥＥ８０２．１１ｇ規格に準拠することによってローカルエリアネットワークへのアクセスを提供することができ、及び／又は無線ネットワークインタフェースは、例えばＢｌｕｅｔｏｏｔｈ規格に準拠することによって個人エリアネットワークへのアクセスを提供することができる。他の無線ネットワークインタフェース及び／又はプロトコルもサポートすることができる。無線ＬＡＮ規格を介した通信に加えて、又はその代わりに、ネットワークインタフェース（単数又は複数）１１８０は、例えば、時分割多重アクセス（ＴＤＭＡ）プロトコル、移動通信用グローバルシステム（ＧＳＭ）プロトコル、符号分割多重アクセス（ＣＤＭＡ）プロトコル、ロングタームエボリューション（ＬＴＥ）プロトコル、及び／又は任意の他のタイプの無線通信プロトコルを使用して、無線通信を提供することができる。
【０１４４】
コンピューティングシステム１１００は、１つ以上のエネルギー源１１０５及び１つ以上のエネルギー測定システム１１４５を更に含むことができる。エネルギー源１１０５は、外部電源、１つ以上の電池、１つ以上の充電貯蔵デバイス、ＵＳＢ充電器、又は他のエネルギー源に結合されたＡＣ／ＤＣアダプタを含むことができる。エネルギー測定システムは、所定の期間中にコンピューティングシステム１１００によって消費されるエネルギーを測定できる、少なくとも１つの電圧又はアンペア数測定デバイスを含む。更に、例えば、表示デバイス、冷却サブシステム、Ｗｉ−Ｆｉサブシステム、又は他の頻繁に使用される若しくは高エネルギーの消費サブシステムによって消費されるエネルギーを測定する１つ以上のエネルギー測定システムを含み得る。
【０１４５】
図１２は、本明細書に記載される実施形態による、仮想アシスタントシステム１２００のブロック図を示す。例示される仮想アシスタントシステム１２００は、一実施形態の例示であり、本明細書に記載される全ての実施形態に限定されるものではない。本明細書に記載される様々な実施形態によって使用される仮想アシスタントは、図示されたものよりも、追加の、より少ない、及び／若しくは異なる構成要素又は特徴を含み得る。仮想アシスタントシステム１２００は、発話又はタイプされた言語などのユーザ入力１２０４を受け入れ、入力を処理し、及びユーザに出力１２０８を生成し、及び／又はユーザの代わりに１２１０のアクションを実行することができる仮想アシスタント１２０２を含む。仮想アシスタント１２０２は、コンテキスト情報を使用して、ユーザからの自然言語又はジェスチャ入力を補完することができる。コンテキスト情報は、ユーザの意図を明確にし、ユーザ入力の候補解釈の数を低減するために使用することができる。コンテキスト情報はまた、ユーザが過剰な明確化入力を提供する必要性を低減することができる。コンテキストは、情報処理の問題を制約するため、及び／又は結果をパーソナライズするための明示的なユーザ入力を補足するためにアシスタントによって使用可能な任意の利用可能情報を含むことができる。コンテキストは、例えば、発話認識、自然言語処理、タスクフロー処理、及びダイアログ生成を含む、様々な処理段階中の解決策を制約するために使用することができる。
【０１４６】
仮想アシスタント１２０２は、辞書、ドメインモデル、及び／又はタスクモデルなどの多数の異なる背景知識ソース及びデータのうちのいずれかを描くことができる。本明細書に現に記載されている実施形態の観点から、そのような背景ソースは、仮想アシスタント１２０２の内部にあってもよく、又は１つ以上のリモートデータベースから収集することができる。ユーザ入力１２０４及び背景ソースに加えて、仮想アシスタント１２０２はまた、例えば、デバイスセンサデータ１２５６、アプリケーションの好み及び使用履歴１２７２、ダイアログ履歴及びアシスタントメモリ１２５２、個人データベース１２５８、個人音響コンテキストデータ１２８０、現在のアプリケーションコンテキスト１２６０、並びにイベントコンテキスト１２０６を含む、いくつかのコンテキストソースからの情報を描くこともできる。
【０１４７】
一実施形態では、本明細書に記載されるようなユーザデバイス、再生デバイス、又はスマートメディア再生デバイスなどの仮想アシスタント１２０２を実行する物理デバイスは、１つ以上のセンサデバイスを有する。そのようなセンサは、デバイスセンサデータ１２５６の形態のコンテキスト情報のソースを提供することができる。センサ情報の例としては、ユーザの現在位置、ユーザの現在位置におけるローカル時間、ユーザが対話しているデバイスの位置、向き、及び動き、現在の光レベル、温度、及び他の環境測定値、使用中のマイクロフォン及びカメラの特性、使用されている現在のネットワーク、並びにイーサネット、Ｗｉ−Ｆｉ、及びＢｌｕｅｔｏｏｔｈを含む接続されたネットワークの署名が挙げられるが、これらに限定されない。署名には、ネットワークアクセスポイントのＭＡＣアドレス、割り当てられたＩＰアドレス、Ｂｌｕｅｔｏｏｔｈ名、周波数チャネルなどのデバイス識別子、及び無線ネットワークの他の特性が挙げられる。センサは、例えば、加速度計、コンパス、ＧＰＳユニット、高度検出器、光センサ、温度計、気圧計、クロック、ネットワークインタフェース、バッテリテスト回路などを含む任意のタイプのものであり得る。
【０１４８】
現在のアプリケーションコンテキスト１２６０は、ユーザの現在の活動に関連するアプリケーション状態又は同様のソフトウェア状態を指す。例えば、ユーザは、特定の人とチャットするためにテキストメッセージアプリケーションを使用することができる。仮想アシスタント１２０２は、テキストメッセージアプリケーションのユーザインタフェースに固有である必要はなく、又はその一部である必要はない。代わりに、仮想アシスタント１２０２は、任意の数のアプリケーションからコンテキストを受信することができ、各アプリケーションは、仮想アシスタント１２０２に通知するようにそのコンテキストに寄与する。仮想アシスタント１２０２が呼び出されたときにユーザがアプリケーションを現在使用している場合、そのアプリケーションの状態は、有用なコンテキスト情報を提供することができる。例えば、仮想アシスタント１２０２が電子メールアプリケーション内から呼び出される場合、コンテキスト情報は、送信者情報、受信者情報、送信された日付及び／又は時刻、件名、電子メールコンテンツから抽出されたデータ、メールボックス又はフォルダ名などを含んでもよい。
【０１４９】
一実施形態では、ユーザのアプリケーションの好み及び使用履歴１２７２を説明する情報は、様々なアプリケーション用の好み及び設定、並びにそれらのアプリケーションに関連付けられた使用履歴を含む。アプリケーションの好み及び使用履歴１２７２は、仮想アシスタント１２０２のユーザの意図又は他の機能を解釈及び／又は実用化するコンテキストとして使用される。そのようなアプリケーションの好み及び使用履歴１２７２の例としては、ショートカット、お気に入り、ブックマーク、友人リスト、又は人、企業、住所、電話番号、場所、ウェブサイト、電子メールメッセージに関するユーザーデータの任意の他のコレクション、又は任意の他の好み、すなわち、デバイス上で行われた最近の呼び出し、会話への当事者を含む最近のテキストメッセージ会話、地図又は方向に対する最近の要求、最近のウェブ探索及びＵＲＬ、株価アプリケーションに列挙された株価、最近の歌若しくはビデオ若しくは再生された他のメディア、アラートアプリケーションに設定されたアラーム名、デバイス上のアプリケーション若しくは他のデジタルオブジェクトの名前、及びユーザの好みの言語若しくはユーザの位置で使用する言語、が挙げられるが、これらに限定されない。
【０１５０】
コンテキストデータの別のソースは、例えば、名前及び電話番号を含むアドレス帳など、電話などのデバイス上のユーザの個人データベース１２５８である。一実施形態では、個人データベース１２５８から取得されたユーザの個人情報は、仮想アシスタント１２０２のユーザの意図又は他の機能を解釈及び／又は実用化するためのコンテキストとして使用される。例えば、ユーザの連絡先データベース内のデータを使用して、ユーザがファーストネームのみで誰かを参照したときのユーザのコマンドを解釈する際の曖昧性を低減することができる。個人データベース１２５８から取得できるコンテキスト情報の例としては、人、企業、組織、場所、ウェブサイト、及びユーザが参照し得る他のエンティティ、すなわち、ユーザ自身の名前、好ましい発音、アドレス、電話番号など、母、父、姉妹、上司などのユーザの名前付き関係、カレンダイベント、特別の日の名前、又はユーザが参照し得る任意の他の名前付きエントリを含む、ユーザのカレンダデータ、ユーザが参照し得る、やるべきこと、覚えておくべきこと、又は入手すべきもののリストを含む、ユーザのリマインダ又はタスクリスト、ユーザが参照し得る、ユーザの音楽ライブラリに関連付けられた歌、ジャンル、プレイリスト、及び他のデータの名前、ユーザのメディアライブラリ内の写真若しくはビデオ又は他のメディア上の人、場所、カテゴリ、タグ、ラベル、又は他の記号名、ユーザの個人ライブラリ内の本又は他の文学における、タイトル、著者、ジャンル、又は他の記号名、に関する、（名前、電話番号、物理アドレス、ネットワークアドレス、アカウント識別子、重要な日付に関する情報を含む）ユーザの連絡先データベース（アドレス帳）が挙げられるが、これらに限定されない。
【０１５１】
コンテキストデータの別のソースは、仮想アシスタント１２０２とのユーザのダイアログ履歴である。そのような履歴は、例えば、ドメイン、人々、場所などへの言及を含み得る。例えば、ユーザは、「ニューヨークでは何時ですか？（What's the time in New York?）」と尋ねることができる。仮想アシスタント１２０２は、ニューヨーク市における現在時間を提供することによって応答することができる。次いで、ユーザは、「天気はどうですか？（What's the weather?）」と尋ねることができる。仮想アシスタント１２０２は、以前のダイアログ履歴を使用して、天気クエリ用の意図された位置が、ダイアログ履歴内で言及された最後の位置であると推測することができる。
【０１５２】
ダイアログ履歴及び仮想アシスタントメモリからのコンテキスト情報の例としては、ダイアログで言及された人、ダイアログで言及された場所及び位置、フォーカスされている現在の時間フレーム、電子メール又はカレンダなどの、フォーカスされている現在のアプリケーションドメイン、電子メールを読むこと又はカレンダエントリを作成することなどの、フォーカスされている現在のタスク、読んだばかりの電子メールメッセージ、又は作成したばかりのカレンダエントリなどの、フォーカスされている現在のドメインオブジェクト、質問が尋ねられているかどうか、及びどのような可能な回答が期待されているかなどの、ダイアログ又はトランザクションフローの現在の状態、ユーザ要求の履歴、返されたレストランのセットなどの、ユーザ要求の結果の履歴、アシスタントがダイアログで使用したフレーズの履歴、及びユーザがアシスタントに伝えた事実、が挙げられるが、これらに限定されない。
【０１５３】
一実施形態では、個人音響コンテキストデータ１２８０を使用して、ユーザ発語を理解するために使用され得る、可能性のある統計言語モデルから選択するか、又はそうでなければ認識された音響コンテキストを最適化するために発語認識を調整する。発語入力を解釈すると、仮想アシスタント１２０２は、発語が入力された音響環境を考慮するために、発語をテキストサービスに同調させることができる。例えば、静かなオフィスのノイズプロファイルは、自動車又は公共の場所のそれとは異なる。発話認識システムが、音響プロファイルデータを識別及び記憶することができる場合、これらのデータはまた、コンテキスト情報として提供することができる。使用中のマイクロフォンの特性、現在位置、及び現在のダイアログ状態などの他のコンテキスト情報と組み合わせると、音響コンテキストは、入力の認識及び解釈を支援することができる。
【０１５４】
前述の明細書では、本発明をその特定の実施形態に関して説明してきた。しかしながら、より広範な本発明の趣旨及び範囲から逸脱することなく、それらの実施形態に様々な修正及び変更を加えることができる点が明白となるであろう。したがって、明細書及び図面は、限定的でなく、例示的な意味で考慮されるべきである。提供される説明及び実施例における詳細は、１つ以上の実施形態において任意の場所で使用され得る。異なる実施形態又は実施例の様々な特徴は、含まれるいくつかの特徴と様々に組み合わされてもよく、他の特徴は、様々な異なるアプリケーションに適合するように除外されてもよい。例には、方法、その方法の動作を実行するための手段などの主題が含まれる場合があり、少なくとも１つの機械可読媒体は、機械によって実行されるときに、その方法の動作、又は本明細書に記載される実施形態及び実施例による装置若しくはシステムの動作を機械に実行させる命令を含む。加えて、本明細書に記載される様々な構成要素は、一実施形態により説明される動作又は機能を実行するための手段とすることができる。
【０１５５】
本明細書に記載される実施形態は、私的データへのアクセスが要求されているユーザに関連付けられた個人ユーザデバイスであるコンパニオンデバイスに、スマートスピーカデバイス又は別のスマートホームデバイスなどの共用電子デバイスが、個人ユーザデータを含む仮想アシスタント要求を中継又はリダイレクトすることを可能にする通信機構を提供する。通信機構はまた、スマートホームデバイスが構成データを含むデータを交換することを可能にする汎用通信機構として使用することもできる。
【０１５６】
共用デバイスとコンパニオンデバイスとの間の通信は、コンパニオンリンクと呼ばれるセキュアデータチャネル上で実行することができる。コンパニオンリンクは、ホームネットワーク環境内で接続されたデバイスのための永続的な低遅延メッセージングシステムを提供する。いくつかの実施形態では、コンパニオンリンクは、ホーム内の個人モバイルデバイスを有する、又はインターネットを介して到達可能な、スピーカデバイスなどのホーム内の固定型共用デバイスのリンク化をサポートする。コンパニオンリンクは、共用デバイスが個人要求を１つ以上の個人デバイスにリダイレクトすることを可能にするが、共用デバイスは、そうしなければ、プライバシーの懸念に起因して、個人要求を取り扱うことができない。ユーザに関連付けられた個人デバイスへの個人要求のリダイレクトは、プライバシー保持方式で共用デバイス上の仮想アシスタントが受信及び要求することを可能にし得る。
【０１５７】
コンパニオンデバイスへの個人クエリのリダイレクトを可能にすることに加えて、一実施形態では、コンパニオンリンクはまた、ホームネットワーク環境内のデバイス用の汎用メッセージングシステムも提供する。汎用メッセージングシステムは、コンパニオンリンクを介してメッセージを交換することによって、複数のホームデバイスが協調して働くことを可能にする。例えば、複数のスマートスピーカデバイス間のオーディオ再生を調整して、メディアアイテムの再生を調整すること、ユーザに最も近いスピーカを介してユーザにオーディオ通知を選択的に提供すること、複数のスピーカをマルチチャネルオーディオシステムに構成すること、又は発話要求及び応答の持続時間中にスピーカでオーディオダッキングを調整すること、などであるがこれらに限定されない動作を、デバイスが実行することを可能にすることができる。
【０１５８】
共用デバイスは、発見プロトコルを介して、コンパニオンリンクサービス用のサポートをアドバタイズすることができる。共用デバイスと同じネットワーク上の個人ユーザデバイスは、共用デバイスによってアドバタイズされるコンパニオンリンクサービスを発見し、アドバタイズされた情報を使用して共用デバイスと接続することができる。個人デバイスは、共用デバイスとのペアリングプロセスを実行して、ユーザ用のコンパニオンデバイスになることができる。一実施形態では、ペアリングプロセスは、ユーザデバイスが近距離無線通信機構を介してコンパニオンデバイスと識別子、鍵、又はシークレットを交換する近接要素を含む。ペアリングプロセスはまた、コンパニオンリンクを介した共用デバイスとコンパニオンデバイスとの間の後続の接続を容易にすることができる、存在情報及び到達可能情報の交換を含むことができる。
【０１５９】
本明細書に記載される実施形態は、個人ユーザデータを含む仮想アシスタント要求を、スマートスピーカデバイス又は別のスマートホームデバイスなどの共用電子デバイスが処理のために個人ユーザデバイスに中継又はリダイレクトすることを可能にする通信機構を提供する。通信機構はまた、スマートホームデバイスが構成データを含むデータを交換することを可能にする汎用通信機構として使用することもできる。しかしながら、より広範な本発明の趣旨及び範囲から逸脱することなく、それらの実施形態に様々な修正及び変更を加えることができる点が明白となるであろう。したがって、明細書及び図面は、限定的でなく、例示的な意味で考慮されるべきである。提供される説明及び実施例における詳細は、１つ以上の実施形態において任意の場所で使用され得る。異なる実施形態又は実施例の様々な特徴は、含まれるいくつかの特徴と様々に組み合わされてもよく、他の特徴は、様々な異なるアプリケーションに適合するように除外されてもよい。例には、方法、その方法の動作を実行するための手段などの主題が含まれる場合があり、少なくとも１つの機械可読媒体は、機械によって実行されるときに、その方法の動作、又は本明細書に記載される実施形態及び実施例による装置若しくはシステムの動作を機械に実行させる命令を含む。加えて、本明細書に記載される様々な構成要素は、一実施形態により説明される動作又は機能を実行するための手段とすることができる。
【０１６０】
一実施形態は、共用電子デバイス上のデータ処理システムを提供し、データ処理システムは、命令を記憶するためのメモリデバイスと、メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサとを備える。命令は、１つ以上のプロセッサに、共用電子デバイスにおいてコマンドを受信する仮想アシスタントを提供させ、仮想アシスタントは、１つ以上のプロセッサを介して、共用電子デバイスにおいてコマンドを受信し、共用電子デバイスに関連付けられたユーザの個人データにそのコマンドがアクセスすることになるかどうかを判定するように構成されている。コマンドがユーザの個人データにアクセスすることになるとの判定に応じて、仮想アシスタントは、コマンドの少なくとも一部を処理するためにユーザの個人電子デバイスに要求を送信することができる。
【０１６１】
本明細書に記載される実施形態では、ユーザの個人データは、連絡先リスト、テキストメッセージ、電子メール、通話履歴、アラーム、リマインダ、通信履歴、設定、好み、又は位置履歴を含み、共用電子デバイスは、スマートスピーカデバイスを含む。個人データは、ユーザの個人電子デバイス上に記憶することができ、仮想アシスタントは、共用電子デバイスの代わりに個人データにアクセスするように個人電子デバイスに要求することができる。次いで、仮想アシスタントは、ユーザの個人電子デバイスに送信された要求の出力を受信し、その出力に基づいてコマンドの処理を完了することができる。コマンドは、ユーザによって発話されたボイスコマンド、又は共用デバイスに送信されたテキストコマンドであってもよい。一実施形態では、ユーザの個人電子デバイスに要求を送信することは、ユーザの個人電子デバイスにコマンドをリダイレクトすることを含み、個人電子デバイスは、共用電子デバイスの代わりにコマンドを処理する。仮想アシスタントは、個人電子デバイスによって生成されたオーディオ応答を受信し、コマンドに対する応答としてオーディオ応答を再生することができる。コマンドがユーザの連絡先にメッセージを送信するコマンドである場合、オーディオ応答は、メッセージに対する受信した応答の通知であり得る。
【０１６２】
一実施形態では、共用電子デバイスは、共用電子デバイスが個人電子デバイスに要求を送信することが可能になる前に、個人電子デバイスとのペアリング及び／又は信頼関係を確立することができる。仮想アシスタントは、個人電子デバイスとの検証されたデータ接続を介して、ユーザの個人電子デバイスに要求を送信することができる。検証されたデータ接続は、個人電子デバイスとの信頼関係に基づいて確立することができ、検証されたデータ接続は、信頼関係の確立中に交換されたデータを介して検証される。一実施形態では、検証されたデータ接続は、インターネットなどの広域ネットワークを介して確立されたリモートデータ接続を介して確立される。ユーザの個人データは、ユーザに固有のデータであり、本質的に個人的若しくは私的であるデータ、又は個人的若しくは私的として指定されるデータを含むことができる。個人データはまた、ユーザを具体的に識別するために使用できるデータを含み得る。
【０１６３】
一実施形態は、１つ以上のプロセッサに動作を実行させる命令を記憶する非一時的機械可読媒体を提供し、命令は、共用デバイスとコンパニオンデバイスとの間に通信セッションを確立すべきと判定することを含み、コンパニオンデバイスは、ユーザに関連付けられた個人データにアクセスできる電子デバイスである。動作は、コンパニオンデバイスとのデータ接続を確立することと、共用電子デバイスとコンパニオンデバイスとの間の信頼関係を検証することと、信頼関係を検証した後に共用デバイスとコンパニオンデバイスとの間に暗号化通信セッションを確立することと、暗号化通信セッションを介して共用電子デバイスにおいて受信したコマンドをコンパニオンデバイスに中継することと、を更に含む。
【０１６４】
一実施形態は、１つ以上のネットワークに接続するためのネットワークインタフェースと、命令、及び電子デバイスのユーザに関連付けられた個人データを記憶するためのメモリデバイスとを備える電子デバイスを提供する。電子デバイスは、メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサを含み、命令は、１つ以上のプロセッサにコマンドを受信するための仮想アシスタントを提供させる。仮想アシスタントは、１つ以上のプロセッサによって、ネットワークインタフェースを介して、共用電子デバイスからリダイレクトされたコマンドを受信することができる。コマンドは、電子デバイスのユーザに関連付けられた個人データにアクセスする要求を含むか、又は指定することができる。次いで、仮想アシスタントは、共用電子デバイスの代わりにコマンドの少なくとも一部を処理し、共用電子デバイスの代わりに実行された処理の出力を、ネットワークインタフェースを介して共用電子デバイスに送信することができる。
【０１６５】
コンパニオンリンク接続は、スマートスピーカデバイスなどの共用の電子デバイスと、スマートフォンデバイスなどのコンパニオンデバイスとの間で説明されているが、コンパニオンリンク接続はまた、複数のスマートフォンデバイス、テーブルコンピューティングデバイスなどの複数のコンパニオンデバイス間、又はスマートフォンデバイスとテーブルコンピューティングデバイスとの間でも確立できる。
【０１６６】
一実施形態は、電子デバイス上のデータ処理システムを提供し、データ処理システムは、命令を記憶するためのメモリデバイスと、メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサとを備える。命令は、実行されると、１つ以上のプロセッサに、電子デバイス間の暗号化データチャネルを有効にさせる。暗号化データチャネルを有効にするために、１つ以上のプロセッサは、第１の電子デバイスと第２の電子デバイスとの間に通信セッションを確立すべきと判定するように構成され、第１の電子デバイス及び第２の電子デバイスは、それぞれクラウドサービスアカウントに関連付けられる。１つ以上のプロセッサは、第１の電子デバイスと第２の電子デバイスとの間にピアツーピアデータ接続を確立し、第１の電子デバイスと第２の電子デバイスとの間の信頼関係を検証し、かつ、信頼関係の検証後に、第１の電子デバイスと第２の電子デバイスとの間に暗号化通信セッションを確立する、ように更に構成することができる。次いで、暗号化通信セッションを使用して、暗号化通信セッションを介して第１の電子デバイスと第２の電子デバイスとの間でデータを交換することができる。
【０１６７】
更なる実施形態では、データ処理システムの１つ以上のプロセッサは、第１の電子デバイスと第２の電子デバイスとの間の近距離無線接続を介してピアツーピアデータ接続を確立し、及び／又は無線ネットワーク接続を介してネットワークレイヤプロトコルによって暗号化通信セッションを確立することができる。第１の電子デバイスと第２の電子デバイスとの間の信頼関係を検証することは、以前に確立された信頼関係を検証することを含むことができ、信頼関係は、短距離無線接続を介した第１の電子デバイスと第２の電子デバイスとの間のクレデンシャルの交換、及び／又は第１の電子デバイス及び第２の電子デバイスに関連付けられたクラウドサービスアカウントを介したクレデンシャルの交換、のうちの１つ以上を介して確立することができ、クレデンシャルは、第１の電子デバイスと第２の電子デバイスとの間の相互認証を可能にする。
【０１６８】
更なる実施形態では、１つ以上のプロセッサは、デバイス発見プロトコルを介して第１の電子デバイスにおいて第２の電子デバイスを発見したことに応じて、第１の電子デバイスと第２の電子デバイスとの間に通信セッションを確立するべきと判定し、第２の電子デバイスを発見した後に、第１の電子デバイスと第２の電子デバイスとの間にピアツーピアデータ接続を確立する、するように構成することができる。通信セッションはまた、第１のデバイス及び第２のデバイスが関連付けられているクラウドサービスアカウントに関連付けられたデバイスのリストに基づいて確立することができる。一実施形態では、通信セッションは、クラウドサービスアカウントのファミリーに関連付けられたデバイスのリストに基づいて確立することができ、第１の電子デバイスは第１のアカウントに関連付けられ、第２の電子デバイスは第２のアカウントに関連付けられ、クラウドサービスアカウントのファミリーは、第１のアカウント及び第２のアカウントを含む。一実施形態では、第１の電子デバイスは、第１の電子デバイスが第２の電子デバイスへのデータ交換の要求を送信することを可能にする前に、第２の電子デバイスとの信頼関係を確立する。
【０１６９】
一実施形態は、１つ以上のプロセッサに第１の電子デバイスと第２の電子デバイスとの間に通信セッションを確立することを判定することを含む動作を実行させる命令を記憶する非一時的機械可読媒体を提供し、第１の電子デバイス及び第２の電子デバイスはそれぞれ、クラウドサービスアカウントに関連付けられている。命令は、１つ以上のプロセッサに、第１の電子デバイスと第２の電子デバイスとの間にピアツーピアデータ接続を確立することと、第１の電子デバイスと第２の電子デバイスとの間の信頼関係を検証することと、信頼関係を検証した後に、第１の電子デバイスと第２の電子デバイスとの間に暗号化通信セッションを確立することと、暗号化通信セッションを介して第１の電子デバイスと第２の電子デバイスとの間でデータを交換することと、を含む、追加の動作を、更に実行させることができる。
【０１７０】
一実施形態は、本明細書に記載されるコンピューティングデバイス又はデータ処理システム上で実行される方法を提供する。方法は、第１の電子デバイスと第２の電子デバイスとの間に通信セッションが確立すべきと判定することであって、第１の電子デバイス及び第２の電子デバイスがそれぞれ、クラウドサービスアカウントに関連付けられている、ことと、無線機を介して、第１の電子デバイスと第２の電子デバイスとの間にピアツーピアデータ接続を確立することと、第１の電子デバイスと第２の電子デバイスとの間の信頼関係を検証することであって、第１の電子デバイスと第２の電子デバイスとの間の信頼関係を検証することが、以前に確立された信頼関係を検証することを含む、ことと、を含む。方法は、無線ネットワーク接続上で、ネットワークレイヤプロトコルを介して、第１の電子デバイスと第２の電子デバイスとの間に暗号化通信セッションを確立することを更に含み、暗号化通信セッションは信頼関係を確認した後に確立され、暗号化通信セッションを介して第１の電子デバイスと第２の電子デバイスとの間でデータが交換される。データは、例えば、第１の電子デバイスと第２の電子デバイスとの間でデバイスデータを同期させるために交換することができ、デバイスデータは、クラウドサービスアカウントに関連付けられる。
【０１７１】
更なる実施形態では、方法は、クラウドサービスアカウントのファミリーに関連付けられたデバイスのリストに基づいて、第１の電子デバイスと第２の電子デバイスとの間に通信セッションが確立すべきと判定することを更に含み、第１の電子デバイスは第１のアカウントに関連付けられ、第２の電子デバイスは第２のアカウントに関連付けられ、クラウドサービスアカウントのファミリーは、第１のアカウント及び第２のアカウントを含む。第１の電子デバイスは、デバイス発見プロトコルを介して第２の電子デバイスを発見でき、第２の電子デバイスの発見後に、第２の電子デバイスとのピアツーピアデータ接続を確立することができる。
【０１７２】
本発明の他の特徴は、添付図面から、及び上記の「発明を実施するための形態」から、明らかとなるであろう。したがって、本発明の真の範囲は、図面、明細書、及び以下の特許請求の範囲を研究すると、当業者には明らかになるであろう。
【図１Ａ】
2020537793.tif 000003
【図１Ｂ】
2020537793.tif 000004
【図２】
2020537793.tif 000005
【図３】
2020537793.tif 000006
【図４Ａ】
2020537793.tif 000007
【図４Ｂ】
2020537793.tif 000008
【図４Ｃ】
2020537793.tif 000009
【図５】
2020537793.tif 000010
【図６】
2020537793.tif 000011
【図７】
2020537793.tif 000012
【図８】
2020537793.tif 000013
【図９Ａ】
2020537793.tif 000014
【図９Ｂ】
2020537793.tif 000015
【図１０】
2020537793.tif 000016
【図１１】
2020537793.tif 000017
【図１２】
2020537793.tif 000018
【手続補正書】
【提出日】令和2年4月17日(2020.4.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共用電子デバイス上のデータ処理システムであって、
命令を記憶するためのメモリデバイスと、
前記メモリデバイス上に記憶された前記命令を実行するための１つ以上のプロセッサと、を備え、前記命令が、前記１つ以上のプロセッサに仮想アシスタントを提供させて前記共用電子デバイスにおいてコマンドを受信させ、前記仮想アシスタントが、前記１つ以上のプロセッサを介して、
前記共用電子デバイスにおいてコマンドを受信し、
前記共用電子デバイスに関連付けられたユーザの個人データであって、前記個人データが前記ユーザに固有のデータを含む、個人データに前記コマンドがアクセスすることになるかどうかを判定し、
前記ユーザの個人データに前記コマンドがアクセスすることになるとの判定に応じて、前記コマンドの少なくとも一部を処理するために前記ユーザの個人電子デバイスに要求を送信する、データ処理システム。
【請求項２】
前記ユーザの個人データが、連絡先リスト、テキストメッセージ、電子メール、通話履歴、アラーム、リマインダ、通信履歴、設定、好み、又は位置履歴を含み、前記共用電子デバイスがスマートスピーカデバイスを含む、請求項１に記載のデータ処理システム。
【請求項３】
個人データが、前記ユーザの前記個人電子デバイス上に記憶され、前記仮想アシスタントが、前記共用電子デバイスの代わりに個人データにアクセスするように前記個人電子デバイスに要求する、請求項１又は２に記載のデータ処理システム。
【請求項４】
前記仮想アシスタントが、前記ユーザの前記個人電子デバイスに送信された要求の出力を受信し、前記出力に基づいてコマンドの処理を完了し、前記コマンドがボイスコマンド又はテキストコマンドである、請求項１又は２に記載のデータ処理システム。
【請求項５】
前記ユーザの前記個人電子デバイスに要求を送信することが、前記共用電子デバイスの代わりに処理される前記ユーザの前記個人電子デバイスにコマンドをリダイレクトすることを含む、請求項１又は２に記載のデータ処理システム。
【請求項６】
前記仮想アシスタントが、前記個人電子デバイスによって生成されたオーディオ応答を受信し、前記コマンドに対する応答として前記オーディオ応答を再生する、請求項５に記載のデータ処理システム。
【請求項７】
前記コマンドが、前記ユーザの連絡先にメッセージを送信するためのコマンドであり、前記オーディオ応答が、前記メッセージに対する受信した応答の通知である、請求項６に記載のデータ処理システム。
【請求項８】
前記共用電子デバイスが、前記共用電子デバイスが前記個人電子デバイスに前記要求を送信することが可能になる前に、前記個人電子デバイスとの信頼関係を確立し、前記仮想アシスタントが、前記個人電子デバイスとの検証されたデータ接続を介して前記ユーザの個人電子デバイスに前記要求を送信し、前記検証されたデータ接続が、前記個人電子デバイスとの前記信頼関係に基づいて確立される、請求項７に記載のデータ処理システム。
【請求項９】
前記検証されたデータ接続が、前記信頼関係の確立中に交換されたデータを介して検証される、請求項８に記載のデータ処理システム。
【請求項１０】
前記検証されたデータ接続が、広域ネットワークを介して確立されたリモートデータ接続を介して確立される、請求項８に記載のデータ処理システム。
【請求項１１】
前記個人データが、本質的に個人的データ又は私的データを含む、請求項１又は２に記載のデータ処理システム。
【請求項１２】
前記個人データが、個人的又は私的として指定されたデータを含む、請求項１に記載のデータ処理システム。
【請求項１３】
命令を記憶する非一時的機械可読媒体であって、前記命令が、１つ以上のプロセッサに、
共用デバイスとコンパニオンデバイスとの間に通信セッションを確立すべきと判定することであって、前記コンパニオンデバイスがユーザに関連付けられた個人データにアクセスできる電子デバイスであり、前記個人データが前記ユーザに固有のデータを含む、ことと、
前記共用電子デバイスと前記コンパニオンデバイスとの間にデータ接続を確立することと、
前記共用電子デバイスと前記コンパニオンデバイスとの間の信頼関係を検証することと、
前記信頼関係を検証した後に、前記共用電子デバイスと前記コンパニオンデバイスとの間に暗号化通信セッションを確立することと、
前記暗号化通信セッションを介して、前記共用電子デバイスにおいて受信されたコマンドを前記コンパニオンデバイスに中継することと、を含む動作を実行させる、非一時的機械可読媒体。
【請求項１４】
前記動作が、
ローカルネットワーク上の前記コンパニオンデバイスの発見を試みることと、
前記ローカルネットワーク上の前記コンパニオンデバイスを発見した後に、前記ローカルネットワークを介して前記共用電子デバイスと前記コンパニオンデバイスとの間に前記データ接続を確立することと、を更に含む、請求項１３に記載の非一時的機械可読媒体。
【請求項１５】
前記動作が、
ローカルネットワーク上の前記コンパニオンデバイスの発見を試みることと、
前記ローカルネットワーク上の前記コンパニオンデバイスの発見に失敗した後に、前記コンパニオンデバイスのリモート識別子が前記共用電子デバイスにおいて利用可能であるかどうかを判定することと、
前記コンパニオンデバイスの前記リモート識別子が前記共用電子デバイスにおいて利用可能であると判定したことに応じて、前記リモート識別子を使用して、前記コンパニオンデバイスとの前記データ接続を広域ネットワークを介して確立することと、を更に含む、請求項１３に記載の非一時的機械可読媒体。
【請求項１６】
前記動作が、前記コンパニオンデバイスのユーザの個人データに前記コマンドがアクセスすることになると判定したことに応じて、前記暗号化通信セッションを介して、前記共用電子デバイスにおいて受信された前記コマンドを前記コンパニオンデバイスに中継することを更に含む、請求項１３に記載の非一時的機械可読媒体。
【請求項１７】
前記動作が、前記共用電子デバイスにおいて前記コマンドに対する応答を受信することを更に含み、前記応答が前記コンパニオンデバイスによって生成された前記コマンドに対する応答であり、前記コマンドがボイスコマンド又はテキストコマンドである、請求項１６に記載の非一時的機械可読媒体。
【請求項１８】
電子デバイスであって、
１つ以上のネットワークに接続するためのネットワークインタフェースと、
前記電子デバイスのユーザに関連付けられた命令及び個人データを記憶するためのメモリデバイスであって、前記個人データが前記ユーザに固有のデータを含む、メモリデバイスと、
前記メモリデバイス上に記憶された命令を実行するための１つ以上のプロセッサと、を備え、前記命令が、前記１つ以上のプロセッサに、仮想アシスタントを提供させてコマンドを受信させ、前記仮想アシスタントが、前記１つ以上のプロセッサを介して、
共用電子デバイスからリダイレクトされたコマンドであって前記コマンドが前記電子デバイスのユーザに関連付けられた個人データにアクセスし、前記個人データが前記ユーザに固有のデータを含む、コマンドを、前記ネットワークインタフェースを介して受信し、
前記共用電子デバイスの代わりに前記コマンドの少なくとも一部を処理し、
前記ネットワークインタフェースを介して、前記共用電子デバイスの代わりに実行された処理の出力を前記共用電子デバイスに送信する、電子デバイス。
【請求項１９】
前記共用電子デバイスの代わりに個人データにアクセスすることが、前記共用電子デバイス上の成功裏のロック解除許可の後にのみ個人データにアクセスすることを含む、請求項１８に記載の電子デバイス。
【請求項２０】
前記共用電子デバイスの代わりに前記コマンドの少なくとも一部を処理することが、前記共用電子デバイスの代わりに個人データにアクセスすることを含む、請求項１８又は１９に記載の電子デバイス。
【請求項２１】
前記共用電子デバイスの代わりに前記コマンドの少なくとも一部を処理することが、前記共用電子デバイスの代わりに前記ネットワークインタフェースを介してリモートに記憶された個人データにアクセスすることを含む、請求項１８又は１９に記載の電子デバイス。
【請求項２２】
広域ネットワークを介して前記共用電子デバイスからリダイレクトされた前記コマンドを受信できるようにする一意の識別子を更に含む、請求項１８又は１９に記載の電子デバイス。
【請求項２３】
仮想アシスタントサーバに対して前記仮想アシスタントを識別するための一意の識別子を更に含み、前記仮想アシスタントが、前記ネットワークインタフェースを介して前記仮想アシスタントサーバに接続して、前記共用電子デバイスからリダイレクトされた前記コマンドの少なくとも一部を処理し、前記コマンドがボイスコマンド又はテキストコマンドであるする、請求項１８又は１９に記載の電子デバイス。
【請求項２４】
前記共用電子デバイスの代わりに個人データにアクセスすることが、前記共用電子デバイスの代わりに個人データにアクセスするための許可を要求することを含み、前記共用電子デバイスの代わりに個人データにアクセスするための許可を要求することが、ディスプレイを介して許可の要求を表示すること、又はスピーカデバイスを介して許可のためのオーディオ要求を再生することを含む、請求項１８又は１９に記載の電子デバイス。
【請求項２５】
前記個人データが、個人的若しくは私的として指定されたデータ、又は本質的に個人的若しくは私的であるデータを含む、請求項１８又は１９に記載の電子デバイス。
【国際調査報告】
2020537793.tif 000019
2020537793.tif 000020
2020537793.tif 000021
2020537793.tif 000022
2020537793.tif 000023