(57)【特許請求の範囲】
【請求項１】
現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信するステップと、
前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスを前記オーディオデータに基づいて識別するステップと、
前記識別された1つまたは複数のコンピューティングデバイス、および前記オーディオデータから判定された話された発話に基づいて、前記話された発話に基づくタスクまたはサービスを実行するために、前記現在のコンピューティングデバイスか、または前記識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するステップと
を含む方法。
【請求項２】
前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を前記現在のコンピューティングデバイスによって出力するステップをさらに含む請求項1に記載の方法。
【請求項３】
前記現在のコンピューティングデバイスが、特定のネットワークに接続され、前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという前記指示を出力するステップが、
前記現在のコンピューティングデバイスによって、前記特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させるステップであって、前記特定のネットワークに接続された前記1つまたは複数のその他のコンピューティングデバイスが、前記識別された1つまたは複数のコンピューティングデバイスを含む、ステップを含む請求項2に記載の方法。
【請求項４】
前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという前記指示が、サーバデバイスに出力され、前記特定のネットワークに接続された前記1つまたは複数のその他のコンピューティングデバイスに前記それぞれのオーディオ信号を発生させるステップが、
前記現在のコンピューティングデバイスによって、前記サーバデバイスに、それぞれのオーディオ信号を発生するために、前記特定のネットワークに接続された前記1つまたは複数のその他のコンピューティングデバイスへ要求を出力させるステップを含む請求項3に記載の方法。
【請求項５】
前記現在のコンピューティングデバイスが、特定のユーザアカウントに関連付けられ、前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという前記指示を出力するステップが、
前記現在のコンピューティングデバイスによって、前記特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させるステップであって、前記特定のユーザアカウントに関連する前記1つまたは複数のその他のコンピューティングデバイスが、前記識別された1つまたは複数のコンピューティングデバイスを含む、ステップを含む請求項2〜4のいずれか1項に記載の方法。
【請求項６】
前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという前記指示が、サーバデバイスに出力され、前記特定のユーザアカウントに関連する前記1つまたは複数のその他のコンピューティングデバイスに前記それぞれのオーディオ信号を発生させるステップが、
前記現在のコンピューティングデバイスによって、前記サーバデバイスに、それぞれのオーディオ信号を発生するために、前記特定のユーザアカウントに関連する前記1つまたは複数のその他のコンピューティングデバイスへ要求を出力させるステップを含む請求項5に記載の方法。
【請求項７】
前記現在のコンピューティングデバイスが、特定のネットワークに接続され、特定のユーザアカウントに関連付けられ、前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を出力するステップが、
前記現在のコンピューティングデバイスによって、前記特定のユーザアカウントに関連付けられる、前記特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させるステップであって、前記特定のユーザアカウントに関連付けられる、前記特定のネットワークに接続された前記1つまたは複数のその他のコンピューティングデバイスが、前記識別された1つまたは複数のコンピューティングデバイスを含む、ステップを含む請求項1〜6のいずれか1項に記載の方法。
【請求項８】
サーバデバイスによって、前記現在のコンピューティングデバイスに関連する1つまたは複数のコンピューティングデバイスを識別するステップと、
前記現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示の受信に応じて、それぞれのオーディオ信号を発生する要求を、前記サーバデバイスによって、前記現在のコンピューティングデバイスに関連する識別された1つまたは複数のコンピューティングデバイスのうちの各コンピューティングデバイスに出力するステップと
をさらに含む請求項1〜7のいずれか1項に記載の方法。
【請求項９】
前記現在のコンピューティングデバイスに関連する前記1つまたは複数のコンピューティングデバイスを識別するステップが、
前記サーバデバイスによって、1つまたは複数のコンピューティングデバイスであって、
前記現在のコンピューティングデバイスと同じネットワークに接続される、および
前記現在のコンピューティングデバイスと同じユーザアカウントに関連付けられる
のうちの一方または両方である1つまたは複数のコンピューティングデバイスを識別するステップを含む請求項8に記載の方法。
【請求項１０】
識別するステップが、
前記1つまたは複数のそれぞれのコンピューティングデバイスによって発生された前記それぞれのオーディオ信号に基づいて、前記現在のコンピューティングデバイスに対するそれぞれのコンピューティングデバイスのそれぞれの近さを判定するステップを含む請求項1〜9のいずれか1項に記載の方法。
【請求項１１】
前記それぞれのオーディオ信号のうちの各オーディオ信号が、1つまたは複数の一意のオーディオの特徴を有する請求項1〜10のいずれか1項に記載の方法。
【請求項１２】
前記現在のコンピューティングデバイスが、ディスプレイを含まず、選択するステップが、
ディスプレイが前記話された発話を満足させるために必要とされるとの判定に応じて、ディスプレイを含む前記識別された1つまたは複数のコンピューティングデバイスに含まれるコンピューティングデバイスからの前記特定のコンピューティングデバイスを選択するステップを含む請求項1〜11のいずれか1項に記載の方法。
【請求項１３】
前記現在のコンピューティングデバイスが、ディスプレイを含み、前記識別された1つまたは複数のコンピューティングデバイスからのコンピューティングデバイスを選択するステップが、
前記現在のコンピューティングデバイスのディスプレイよりも大きいディスプレイを含む前記識別された1つまたは複数のコンピューティングデバイスに含まれるコンピューティングデバイスからの前記特定のコンピューティングデバイスを選択するステップを含む請求項1〜11のいずれか1項に記載の方法。
【請求項１４】
1つまたは複数のマイクロフォンと、
請求項1〜13のいずれか1項に記載の方法を実行するように構成された1つまたは複数のプロセッサと
を含むデバイス。
【請求項１５】
実行されるときにコンピューティングデバイスの1つまたは複数のプロセッサに請求項1〜13のいずれか1項に記載の方法を実行させる命令を記憶した非一時的コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
一部のコンピューティングデバイスは、アシスタントに有用な情報を出力させるか、ユーザのニーズに応えさせるか、またはそうでなければユーザがさまざまな現実のもしくは仮想的なタスクを完了するのを助けるための特定の動作を実行させるためにユーザが仮想的なコンピュータによるアシスタント(たとえば、「インテリジェントアシスタント」または単に「アシスタント」とも呼ばれる)とチャットするか、話すか、またはその他の方法でコミュニケーションすることができるユーザインターフェースを提供する可能性がある。アシスタントは、ユーザがアシスタントとコミュニケーションしているユーザインターフェースを提供するコンピューティングデバイスを介して情報を出力するか、ユーザのニーズに応えるか、もしくはそれ以外の方法で動作を実行し、および/またはアシスタントがそこからアクセスすることができるその他の異なるコンピューティングデバイスを介して情報を出力する可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００２】
概して、本開示の技術は、現在のコンピューティングデバイスによって提供される仮想的なコンピュータによるアシスタント(たとえば、「インテリジェントアシスタント」または単に「アシスタント」とも呼ばれる)がユーザ入力に答えるために(たとえば、ユーザの発話またはテキスト入力を満足させるために)使用される可能性があるその他のコンピューティングデバイスを自動的に識別することを可能にする可能性がある。たとえば、スピーチ受信(speech reception)がアクティブ化されることに応じて、現在のコンピューティングデバイスが、その他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させる可能性がある。現在のコンピューティングデバイスは、ユーザの発話に対応する音響入力(たとえば、オーディオデータ)およびその他のコンピューティングデバイスによって発生されたオーディオ信号をマイクロフォンによって受信する可能性がある。音響入力に基づいて、アシスタントは、その他のコンピューティングデバイスを識別する可能性がある。
【０００３】
その他のコンピューティングデバイスを識別することは、アシスタントがユーザの発話を満足させるための別のコンピューティングデバイス(つまり、現在のコンピューティングデバイス以外)を選択することを可能にする可能性がある。たとえば、識別されたその他のコンピューティングデバイスのうちの特定のコンピューティングデバイスが現在のコンピューティングデバイスよりもユーザの発話を満足させるのにより適している場合、アシスタントは、ユーザの発話を満足させるために特定のコンピューティングデバイスを選択する可能性がある。そうでない場合、アシスタントは、現在のコンピューティングデバイスを使用して発話を満足させる可能性がある。このようにして、アシスタントは、ユーザの発話を満足させるために利用可能なデバイスの中から最も適するデバイスを選択することによって発話のより高い質の満足を提供する可能性がある。
【０００４】
一例においては、方法が、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信するステップと、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別するステップと、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するステップとを含む方法を含む。
【０００５】
別の例においては、デバイスが、1つまたは複数のマイクロフォンと、1つまたは複数のプロセッサであって、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信し、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別し、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するように構成された、1つまたは複数のプロセッサとを含む。
【０００６】
別の例においては、非一時的コンピュータ可読ストレージ媒体が、実行されるときにコンピューティングデバイスの1つまたは複数のプロセッサに、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信させ、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別させ、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択させる命令を記憶する。
【０００７】
別の例においては、システムが、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信するための手段と、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別するための手段と、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するための手段とを含む。
【０００８】
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載されている。本開示のその他の特徴、目的、および利点は、説明および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行する例示的なシステムを示す概念図である。
【図２】本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行するように構成される例示的なコンピューティングデバイスを示すブロック図である。
【図３】本開示の1つまたは複数の態様によるバーチャルアシスタントによる選択のために識別されるように構成される例示的なコンピューティングデバイスを示すブロック図である。
【図４】本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行するように構成される例示的なコンピューティングシステムを示すブロック図である。
【図５】本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行する1つまたは複数のプロセッサによって実行される例示的な動作を示す流れ図である。
【発明を実施するための形態】
【００１０】
図1は、本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行する例示的なシステムを示す概念図である。図1のシステム100は、コンピューティングデバイス110およびコンピューティングデバイス180A〜180N(集合的に「コンピューティングデバイス180」)とネットワーク130を介して通信するアシスタントサーバシステム160を含む。システム100がアシスタントサーバシステム160、コンピューティングデバイス110、およびコンピューティングデバイス180に分散されるように示されるが、その他の例において、システム100に帰せられる特徴および技術は、コンピューティングデバイス110のローカルの構成要素によって内部で実行される可能性がある。同様に、アシスタントサーバシステム160は、特定の構成要素を含み、下の説明においてはそうではなくコンピューティングデバイス110および/またはコンピューティングデバイス180に帰せられるさまざまな技術を実行する可能性がある。
【００１１】
ネットワーク130は、コンピューティングシステムと、サーバと、コンピューティングデバイスとの間でデータを送信するための任意の公共または私設通信ネットワーク、たとえば、セルラー、Wi-Fi、および/またはその他の種類のネットワークを表す。アシスタントサーバシステム160は、コンピューティングデバイス110がネットワーク130に接続されるときにコンピューティングデバイス110にアクセスし得るバーチャルアシスタントサービスを提供するためにコンピューティングデバイス110とネットワーク130を介してデータをやりとりする可能性がある。アシスタントサーバシステム160は、コンピューティングデバイス180のうちの1つまたは複数にさまざまな活動を実行させるためにネットワーク130を介してコンピューティングデバイス180とデータをやりとりする可能性がある。コンピューティングデバイス110は、コンピューティングデバイス180のうちの1つまたは複数にさまざまな活動を実行させるためにネットワーク130を介してコンピューティングデバイス180とデータをやりとりする可能性がある。
【００１２】
ネットワーク130は、動作可能なように相互に結合され、それによって、サーバシステム160と、コンピューティングデバイス110と、コンピューティングデバイス180との間の情報のやりとりを提供する1つまたは複数のネットワークハブ、ネットワークスイッチ、ネットワークルータ、または任意のその他のネットワーク機器を含む可能性がある。コンピューティングデバイス110、アシスタントサーバシステム160、およびコンピューティングデバイス180は、任意の好適な通信技術を使用してネットワーク130を介してデータを送信および受信する可能性がある。コンピューティングデバイス110、アシスタントサーバシステム160、およびコンピューティングデバイス180は、それぞれが、それぞれのネットワークリンクを使用してネットワーク130に動作可能なように結合される可能性がある。コンピューティングデバイス110、アシスタントサーバシステム160、およびコンピューティングデバイス180をネットワーク130に結合するリンクは、イーサネット(登録商標)またはその他の種類のネットワーク接続である可能性があり、そのような接続は、ワイヤレス接続および/または有線接続である可能性がある。
【００１３】
アシスタントサーバシステム160は、ネットワーク130などのネットワークに情報を送信することとネットワークから情報を受信することとの両方が可能な1つまたは複数のデスクトップコンピュータ、ラップトップコンピュータ、メインフレーム、サーバ、クラウドコンピューティングシステムなどの任意の好適なリモートコンピューティングシステムを表す可能性がある。アシスタントサーバシステム160は、バーチャルアシスタントサービスをホストする(または少なくともバーチャルアシスタントサービスへのアクセスを提供する)。一部の例において、アシスタントサーバシステム160は、クラウドを介してバーチャルアシスタントサービスへのアクセスを提供するクラウドコンピューティングシステムを表す。
【００１４】
コンピューティングデバイス110は、個々のモバイルまたは非モバイルコンピューティングデバイスを表す。コンピューティングデバイス110の例は、モバイル電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、メインフレーム、カメラ、セットトップボックス、テレビ、ウェアラブルデバイス(たとえば、コンピュータ化された腕時計、コンピュータ化されたアイウェア、コンピュータ化された手袋など)、ホームオートメーションデバイスもしくはシステム(たとえば、インテリジェントサーモスタットもしくはホームアシスタントデバイス)、携帯情報端末(PDA)、ゲームシステム、メディアプレイヤー、電子ブックリーダ、モバイルテレビプラットフォーム、自動車ナビゲーションもしくはインフォテインメントシステム、またはバーチャルアシスタントを実行するかもしくはバーチャルアシスタントにアクセスし、ネットワーク130などのネットワークを介して情報を受け取るように構成された任意のその他の種類のモバイル、非モバイル、ウェアラブル、および非ウェアラブルコンピューティングデバイスを含む。
【００１５】
アシスタントサーバシステム160は、アシスタントサーバシステム160によって提供されるバーチャルアシスタントサービスへのアクセスをコンピューティングデバイス110に与えるために、ネットワーク130を介してコンピューティングデバイス110と通信する可能性がある。バーチャルアシスタントサービスを提供する過程で、アシスタントサーバシステム160は、タスクを完了するための情報をバーチャルアシスタントサービスのユーザに提供するための検索結果を取得するためにネットワーク130を介して検索サーバシステム(図示せず)と通信する可能性がある。
【００１６】
図1の例において、アシスタントサーバシステム160は、リモートアシスタントモジュール122Bおよびデバイス選択モジュール124Bを含む。コンピューティングデバイス110は、ユーザインターフェースデバイス(UID)112、ユーザインターフェース(UI)モジュール120、ローカルアシスタントモジュール122A、およびデバイス選択モジュール124Aを含む。コンピューティングデバイス180は、それぞれ、UID 113およびUIモジュール121を含む。リモートアシスタントモジュール122Bおよびローカルアシスタントモジュール122Aは、集合的にアシスタントモジュール122と呼ばれる可能性がある。デバイス選択モジュール124Aおよびデバイス選択モジュール124Bは、集合的にデバイス選択モジュール124と呼ばれる可能性がある。
【００１７】
モジュール120、121、122、および124は、コンピューティングデバイス110、アシスタントサーバシステム160、もしくはコンピューティングデバイス180のうちの1つに存在するおよび/またはコンピューティングデバイス110、アシスタントサーバシステム160、もしくはコンピューティングデバイス180のうちの1つにおいて実行されるソフトウェア、ハードウェア、ファームウェア、またはハードウェア、ソフトウェア、およびファームウェアの混合を使用して説明される動作を実行する可能性がある。コンピューティングデバイス110、アシスタントサーバシステム160、およびコンピューティングデバイス180は、複数のプロセッサまたは複数のデバイスによってモジュール120、121、122、および124を実行する可能性がある。コンピューティングデバイス110、アシスタントサーバシステム160、およびコンピューティングデバイス180は、基礎をなすハードウェア上で実行される仮想マシンとしてモジュール120、121、122、および124を実行する可能性がある。モジュール120、121、122、および124は、オペレーティングシステムまたはコンピューティングプラットフォームの1つまたは複数のサービスとして実行される可能性がある。モジュール120、121、122、および124は、コンピューティングプラットフォームのアプリケーションレイヤにおいて1つまたは複数の実行可能なプログラムとして実行される可能性がある。
【００１８】
コンピューティングデバイス110のUID 112は、コンピューティングデバイス110のための入力および/または出力デバイスとして機能する可能性がある。UID 112は、さまざまなテクノロジーを使用して実装される可能性がある。たとえば、UID 112は、抵抗式タッチスクリーン、表面弾性波式タッチスクリーン、静電容量式タッチスクリーン、投影型静電容量式タッチスクリーン、感圧スクリーン、音響波識別(acoustic pulse recognition)タッチスクリーン、または別の存在感知(presence-sensitive)ディスプレイテクノロジーなどの存在感知入力スクリーンを使用する入力デバイスとして機能する可能性がある。
【００１９】
UID 112は、マイクロフォンテクノロジー、赤外線センサーテクノロジー、またはユーザ入力を受け取る際に使用するためのその他の入力デバイステクノロジーを使用する入力デバイスとして機能する可能性がある。たとえば、UID 112は、タスクを完了するためにUIモジュール120および/またはローカルアシスタントモジュール122Aが処理する音声入力(voice input)を組み込みマイクロフォンテクノロジーを使用して検出する可能性がある。別の例として、UID 112は、コンピューティングデバイス110のユーザから触覚入力を受け取り得る存在感知ディスプレイを含む可能性がある。UID 112は、ユーザから1つまたは複数のジェスチャ(たとえば、ユーザが指またはスタイラスペンによってUID 112の1つまたは複数の位置にタッチするかまたはそれらの位置を指すこと)を検出することによって触覚入力の指示を受け取る可能性がある。
【００２０】
UID 112は、出力(たとえば、ディスプレイ)デバイスとして機能し、ユーザに出力を提示する可能性がある。UID 112は、液晶ディスプレイ(LCD)、ドットマトリクスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電子インク、またはコンピューティングデバイス110のユーザに可視情報を出力することができる同様のモノクロもしくはカラーディスプレイなどの任意の1つまたは複数のディスプレイデバイスを使用する出力デバイスとして機能する可能性がある。UID 112は、スピーカテクノロジー、触覚フィードバックテクノロジー、またはユーザに情報を出力する際に使用するためのその他の出力デバイステクノロジーを使用する出力デバイスとして機能する可能性がある。UID 112は、ローカルアシスタントモジュール122Aおよび/またはリモートアシスタントモジュール122Bによって提供されるバーチャルアシスタントに関連するユーザインターフェース(たとえば、ユーザインターフェース114)を提示する可能性がある。UID 112は、コンピューティングデバイス110において実行されるおよび/またはコンピューティングデバイス110からアクセスされ得るコンピューティングプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービス(たとえば、電子メール、チャット、オンラインサービス、電話、ゲームなど)のその他の特徴に関連するユーザインターフェースを提示する可能性がある。
【００２１】
UIモジュール120は、UID 112を介してアシスタントサービスを提供するためにアシスタントサーバシステム160とインタラクションすることを含む、コンピューティングデバイス110のUID 112およびその他の構成要素とのユーザインタラクションを管理する可能性がある。UIモジュール120は、コンピューティングデバイス110のユーザがUID 112において出力を見るおよび/または入力を与えるときに、ユーザインターフェースをUID 112に出力させる可能性がある。UIモジュール120およびUID 112は、ユーザがユーザインターフェースとインタラクションするときに、異なる時間に、ならびにユーザおよびコンピューティングデバイス110が異なる位置にあるときに、ユーザから入力(たとえば、音声入力、ジェスチャ入力など)の1つまたは複数の指示を受け取る可能性がある。UIモジュール120およびUID 112は、UID 112において検出された入力を解釈する可能性があり、たとえば、コンピューティングデバイス110に機能を実行させるために、コンピューティングデバイス110において実行されるローカルアシスタントモジュール122Aおよび/または1つもしくは複数のその他の関連するプラットフォーム、オペレーティングシステム、アプリケーション、および/もしくはサービスに、UID 112において検出された入力についての情報を中継する可能性がある。
【００２２】
UIモジュール120は、コンピューティングデバイス110ならびに/またはサーバシステム160およびコンピューティングデバイス180などの1つもしくは複数のリモートコンピューティングシステムにおいて実行される1つまたは複数の関連するプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスから情報および命令を受け取る可能性がある。加えて、UIモジュール120は、コンピューティングデバイス110において実行される1つまたは複数の関連するプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスと、コンピューティングデバイス110によって出力(たとえば、グラフィック、光のひらめき、サウンド、触覚による応答など)を生成するためのコンピューティングデバイス110のさまざまな出力デバイス(たとえば、スピーカ、LEDインジケータ、オーディオまたは触覚出力デバイスなど)との間の仲介者として働く可能性がある。
【００２３】
コンピューティングデバイス110のローカルアシスタントモジュール122Aおよびアシスタントサーバシステム160のリモートアシスタントモジュール122Bは、アシスタントを自動的に実行するための本明細書において説明される同様の機能をそれぞれが実行する可能性がある。リモートアシスタントモジュール122Bおよびデバイス選択モジュール124Bは、例示的なバーチャルアシスタントのサーバサイドのまたはクラウドの実装を表し、一方、ローカルアシスタントモジュール122Aおよびデバイス選択モジュール124Aは、例示的なバーチャルアシスタントのクライアントサイドのまたはローカルの実装を表す。
【００２４】
モジュール122は、コンピューティングデバイス110のユーザなどの個人のためにタスクまたはサービスを実行することができるインテリジェントなパーソナルアシスタントとして実行されるように構成されたそれぞれのソフトウェアエージェントをそれぞれが含む可能性がある。モジュール122は、(たとえば、UID 112において検出された)ユーザ入力、(たとえば、コンテキストに基づく)位置認識、および/または(たとえば、コンピューティングデバイス110、アシスタントサーバシステム160のローカルに記憶されるか、もしくは検索サービスを介して取得されるかのどちらかの)さまざまな情報ソースからのその他の情報(たとえば、天気もしくは交通の状況、ニュース、株価、スポーツのスコア、ユーザのスケジュール、交通機関のスケジュール、小売価格など)にアクセスする能力に基づいてこれらのタスクまたはサービスを実行する可能性がある。話されたユーザ入力に基づいてタスクまたはサービスを実行することは、本明細書においては、ユーザの発話を満足させることであると言われる可能性がある。モジュール122は、1つまたは複数のタスクを自動的に識別し、ユーザの代わりに完了するために人工知能および/または機械学習技術を実行する可能性がある。
【００２５】
上で検討されたように、モジュール122は、話されたユーザ入力に基づいてタスクまたはサービスを実行する可能性がある。モジュール122は、UID 112の1つまたは複数のマイクロフォンによって生成されたオーディオデータを(つまり、UIモジュール120から)受信する可能性がある。モジュール122は、スピーチ受信がアクティブであるとき、発話を認識するために受信されたオーディオデータを選択的に処理する可能性がある。スピーチ受信は、いくつかの方法でアクティブ化される可能性がある。一例として、モジュール122が、受信されたオーディオデータ内の所定のアクティブ化フレーズ(たとえば、「聞いて、アシスタント」)の認識に応じてスピーチ受信をアクティブ化する可能性がある。別の例として、UIモジュール120が、ユーザがコンピューティングデバイス110のスピーチ受信ボタンを押すことに応じてモジュール122にスピーチ受信をアクティブ化させる可能性がある。
【００２６】
モジュール122は、コンピューティングデバイス110の1つまたは複数の構成要素によって提示される出力によってユーザの発話を満足させる可能性がある。たとえば、モジュール122は、UID 112の1つまたは複数の構成要素(たとえば、ディスプレイ、スピーカなど)に出力を生成させる(たとえば、ビデオを表示させる、グラフィカルユーザインターフェースを表示させる、音声を発生させるなど)可能性がある。一部の例においては、モジュール122がその他のコンピューティングデバイスに出力を提示させることによって何らかのユーザの発話を満足させることが望ましい可能性がある。たとえば、別のコンピューティングデバイスがユーザの発話を満足させるのにより適している場合、モジュール122がその他のコンピューティングデバイスによって出力を提示することが望ましい可能性がある。しかし、たとえ別のコンピューティングデバイスがユーザの発話を満足させるのにより適しているとしても、発話を与えたユーザが別のコンピューティングデバイスによって提示された出力を受け取ることができない場合、モジュール122がその他のコンピューティングデバイスによって出力を提示することは望ましくない可能性がある。
【００２７】
本開示の1つまたは複数の技術によれば、アシスタントは、ユーザ入力に応答するために(たとえば、ユーザの発話またはテキスト入力を満足させるために)使用される可能性がある1つまたは複数のその他のコンピューティングデバイスを識別する可能性がある。その他のコンピューティングデバイスを識別することは、アシスタントがユーザの発話を満足させるための別のコンピューティングデバイス(つまり、コンピューティングデバイス110以外)を選択することを可能にする可能性がある。たとえば、識別されたその他のコンピューティングデバイスのうちの特定のコンピューティングデバイスがコンピューティングデバイス110よりもユーザの発話を満足させるのにより適している場合、アシスタントは、ユーザの発話を満足させるために特定のコンピューティングデバイスを選択する可能性がある。このようにして、アシスタントは、発話のより高い質の満足を提供する可能性がある。
【００２８】
一部の例において、アシスタントは、ユーザ入力に応答するために使用される可能性がある1つまたは複数のその他のコンピューティングデバイスを周期的に(たとえば、5分、10分、30分、1時間、1日毎などに)識別する可能性がある。しかし、一部の例においては、その他のコンピューティングデバイスを周期的に識別することが望ましくない可能性がある。たとえば、コンピューティングデバイスは、識別されたデバイスがもはやコンピューティングデバイス110の近くにないように移動した可能性がある(つまり、識別が古くなった可能性がある)。加えて、コンピューティングデバイス110は、バッテリー給電式デバイスである可能性があり、周期的な識別が、コンピューティングデバイス110のバッテリー電力を不必要に消費する可能性がある。
【００２９】
本開示の1つまたは複数の技術によれば、アシスタントは、コンピューティングデバイス110においてスピーチ受信がアクティブ化されることに応じて1つまたは複数のその他のコンピューティングデバイスを識別する可能性がある。一部の例において、アシスタントは、コンピューティングデバイス110においてスピーチ受信がアクティブ化されることに応じてその他のコンピューティングデバイスの1回の識別を実行する可能性がある。一部の例において、アシスタントは、コンピューティングデバイス110においてスピーチ受信がアクティブ化されることに応じてその他のコンピューティングデバイスの最初の識別を実行し、コンピューティングデバイス110においてスピーチ受信がアクティブ化されたままである間、その他のコンピューティングデバイスの識別を更新し続ける可能性がある。たとえば、コンピューティングデバイス180Aが居間に置かれたTVであり、コンピューティングデバイス180Bがキッチンに置かれたTVであり、コンピューティングデバイス110が居間にある間にスピーチ受信がアクティブ化される場合、アシスタントは、コンピューティングデバイス180Aが最も適するTVであると最初に識別する可能性がある。それから、ユーザが発話している間にコンピューティングデバイス110がキッチンに運ばれる場合、アシスタントは、コンピューティングデバイス180Bが最も適するTVであると識別する可能性がある。
【００３０】
加えて、スピーチ受信がアクティブ化されることに応じてその他のコンピューティングデバイスの識別を開始することによって、アシスタントは、ユーザ入力に応答するためのコンピューティングデバイスをより迅速に選択する可能性がある。たとえば、アシスタントは、発話を満足させるために選択され得るその他のコンピューティングデバイスの識別を開始するためにユーザが発話を終えるまで待つことを避ける可能性がある。このようにして、アシスタントは、話された入力の受け取りと並行して、話された入力の受け取りに応答するために使用され得るコンピューティングデバイスを識別する可能性がある。
【００３１】
動作中、ユーザは、コンピューティングデバイス110におけるスピーチ受信をアクティブ化し、発話をする可能性がある。スピーチ受信がアクティブ化されることに応じて、コンピューティングデバイス110は、話された発話を満足させるために使用される可能性がある何らかのその他のコンピューティングデバイスが近くにあるかどうかを判定するための1つまたは複数の動作を実行する可能性がある。たとえば、デバイス選択モジュール124のうちの一方または両方は、コンピューティングデバイス180に、(図1において音声181A〜181N、集合的に「音声181」として示される)それぞれの音声を発生させる可能性がある。たとえば、デバイス選択モジュール124Aは、コンピューティングデバイス110においてスピーチ受信がアクティブ化されたことを示すメッセージをネットワーク130を介してデバイス選択モジュール124Bに送信する可能性がある。メッセージの受信に応じて、デバイス選択モジュール124Bは、それぞれの音声181を発生するためにコンピューティングデバイス180に要求を送信する可能性がある。たとえば、デバイス選択モジュール124Bは、音声181Aを発生するためにコンピューティングデバイス180Aに要求を送信し、音声181Bを発生するためにコンピューティングデバイス180Bに要求を送信し、音声181Nを発生するためにコンピューティングデバイス180Nに要求を送信する可能性がある。コンピューティングデバイス181A〜181Nによる音声の発出は、コンピューティングデバイス110が話された発話を満足させる候補である利用可能なデバイスを決定することを可能にする。一部の例において、要求のうちの1つまたは複数は、デバイス選択モジュール124Aによって送信される可能性がある。
【００３２】
一部の例において、要求は、音声の1つまたは複数のオーディオの特徴を指定する可能性がある。たとえば、コンピューティングデバイス180に送信される要求は、コンピューティングデバイス180が音声181を発生するべきそれぞれの周波数を指定する可能性がある。言い換えると、コンピューティングデバイス180の各々が、異なる発出周波数を割り振られる可能性がある。一部の例において、周波数は、通常の人の声の周波数を超えている(たとえば、300Hzを超えている)可能性がある。このようにして、アシスタントは、音声181と話された発話とをより上手く区別することができる可能性がある。一部の例において、周波数は、人間の聴力の範囲を超えている(たとえば、20kHzを超えている)可能性がある。このようにして、音声181の発出は、ユーザにとって等価的である可能性があるおよび/またはユーザにとって煩わしくない可能性がある。
【００３３】
デバイス選択モジュール124のうちの一方または両方は、ユーザの発話を満足させるために使用される可能性があるその他のコンピューティングデバイスを識別するために、UID 112の1つまたは複数のマイクロフォンによって生成されたオーディオデータを処理する可能性がある。受信されたオーディオデータがコンピューティングデバイス180のそれぞれのコンピューティングデバイスによって発生されたそれぞれの音声を含む場合、デバイス選択モジュール124のうちの一方または両方は、それぞれのコンピューティングデバイスが話された発話を満足させるための選択に適格であると判定する可能性がある。たとえば、受信されたオーディオデータが音声181Aを含む場合、デバイス選択モジュール124Aは、コンピューティングデバイス180Aが話された発話を満足させるための選択に適格であると判定する可能性がある。同様に、受信されたオーディオデータが音声181Bを含まない場合、デバイス選択モジュール124Aは、コンピューティングデバイス180Bが話された発話を満足させるための選択に適格でないと判定する可能性がある。
【００３４】
アシスタントは、ユーザの発話を認識するために、UID 112の1つまたは複数のマイクロフォンによって生成されたオーディオデータを同様に処理する可能性がある。たとえば、ローカルアシスタントモジュール122Aは、その他のコンピューティングデバイスの識別と並行してユーザの発話を認識するために、UID 112の1つまたは複数のマイクロフォンによって生成されたオーディオデータを処理する可能性がある。
【００３５】
デバイス選択モジュール124のうちの一方または両方は、話された発話を満足させるための1つまたは複数のコンピューティングデバイスを選択する可能性がある。たとえば、デバイス選択モジュール124Aは、コンピューティングデバイス110のうちの1つまたは複数と、話された発話を満足させるのに最も適しているコンピューティングデバイス180のうちの識別されたコンピューティングデバイスからのコンピューティングデバイスとを選択するためにローカルアシスタントモジュール122Aとインターフェースをとる可能性がある。一例として、コンピューティングデバイス110がディスプレイを含まず、発話がディスプレイによってより満足させられる場合(たとえば、ユーザの発話が「私の予定はどうなっている」である場合)、デバイス選択モジュール124Aは、発話を満足させるためにディスプレイを含む識別されたその他のコンピューティングデバイスのうちのコンピューティングデバイスを選択する可能性がある。発話「私の予定はどうなっている」は、たとえば、合成音声が予定を読み上げるよりも予定の視覚的表現の方がより理解しやすい可能性があるので、ディスプレイによってより満足させられる可能性がある。別の例として、コンピューティングデバイス110がディスプレイを含み、発話がより大きなディスプレイによってより満足させられる場合(たとえば、ユーザの発話が「ビデオを再生して」である場合)、デバイス選択モジュール124Aは、発話を満足させるために比較的大きなディスプレイを含む識別されたその他のコンピューティングデバイスのうちのコンピューティングデバイスを選択する可能性がある。発話「ビデオを再生して」は、ユーザがより大きなディスプレイ(たとえば、TV)上でビデオを見る方がより難しくないおよび/またはより快適である可能性があるので、比較的大きなディスプレイによってより満足させられる可能性がある。別の例として、発話が音楽を再生するためのものである場合、デバイス選択モジュール124Aは、コンピューティングデバイス110よりも高い品質のスピーカを含む識別されたその他のコンピューティングデバイスのうちのコンピューティングデバイスを選択する可能性がある。このようにして、アシスタントは、発話のより高い質の満足を提供する可能性がある。
【００３６】
アシスタントは、選択されたコンピューティングデバイスに発話を満足させるための1つまたは複数の活動を実行させる可能性がある。たとえば、コンピューティングデバイス180Aが発話を満足させるために選択される場合、ローカルアシスタントモジュール122Aは、UID 113の1つまたは複数の構成要素(たとえば、ディスプレイ、スピーカなど)に出力を生成させる(たとえば、ビデオを表示させる、グラフィカルユーザインターフェースを表示させる、音声を発生させるなど)可能性がある。たとえば、発話が「ビデオを再生して」である場合、ローカルアシスタントモジュール122Aは、UID 113のディスプレイにビデオを表示させる可能性がある。
【００３７】
コンピューティングデバイス110の改善された動作が上の説明に従って得られることは、理解されるであろう。たとえば、発話を満足させるためのその他のコンピューティングデバイスを識別することによって、コンピューティングデバイス110による発話の満足が避けられるおよび/または削減される可能性がある。ひいては、これは、帯域幅およびデータ送信の使用を減らしたり、一時的な揮発性メモリの使用を減らしたり、(たとえば、コンピューティングデバイス110の)バッテリーの消費を減らしたりする。さらに、特定の実施形態において、デバイスの性能を最適化することおよび/またはセルラーデータの使用を最小化することは、これらの基準に基づく別のデバイスの選択がバッテリーの消費の所望の直接的な削減および/または削減されたデータ使用を提供するようなデバイス選択(たとえば、現在のデバイスが発話を満足させるためにバッテリー電力を消費することを避けるおよび/または発話を満足させるためにデータを使用することを避けるように、発話を満足させるための別のデバイスを選択する)のための特徴であり得る。
【００３８】
図2は、本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行するように構成される例示的なコンピューティングデバイスを示すブロック図である。図2のコンピューティングデバイス210が、図1のコンピューティングデバイス110の例として下で説明される。図2は、コンピューティングデバイス210のただ1つの特定の例を示し、コンピューティングデバイス210の多くのその他の例が、その他の場合に使用される可能性があり、例示的なコンピューティングデバイス210に含まれる構成要素のサブセットを含む可能性があり、または図2に示されていないさらなる構成要素を含む可能性がある。
【００３９】
図2の例に示されるように、コンピューティングデバイス210は、ユーザインターフェースデバイス(UID)212、1つまたは複数のプロセッサ240、1つまたは複数の通信ユニット242、1つまたは複数の入力構成要素244、1つまたは複数の出力構成要素246、および1つまたは複数のストレージデバイス248を含む。UID 212は、ディスプレイ構成要素202、存在感知入力構成要素204、マイクロフォン構成要素206、およびスピーカ構成要素208を含む。コンピューティングデバイス210のストレージデバイス248は、UIモジュール220、アシスタントモジュール222、デバイス選択モジュール224、検索モジュール282、1つまたは複数のアプリケーションモジュール226、およびコンテキストモジュール230を含む。
【００４０】
通信チャネル250は、構成要素間通信のために(物理的に、通信可能なように、および/または動作可能なように)構成要素212、240、242、244、246、および248の各々を相互に接続する可能性がある。一部の例において、通信チャネル250は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを伝達するための任意のその他の方法を含む可能性がある。
【００４１】
コンピューティングデバイス210の1つまたは複数の通信ユニット242は、1つまたは複数のネットワーク(たとえば、図1のシステム100のネットワーク130)上でネットワーク信号を送信および/または受信することによって1つまたは複数の有線および/またはワイヤレスネットワークを介して外部デバイス(たとえば、図1のシステム100のアシスタントサーバシステム160および/またはコンピューティングデバイス180)と通信する可能性がある。通信ユニット242の例は、(たとえば、イーサネット(登録商標)カードなどの)ネットワークインターフェースカード、光トランシーバ、無線周波数トランシーバ、GPS受信機、または情報を送信および/もしくは受信することができる任意のその他の種類のデバイスを含む。通信ユニット242のその他の例は、短波無線、セルラーデータ無線、ワイヤレスネットワーク無線、およびユニバーサルシリアルバス(USB)コントローラを含む可能性がある。
【００４２】
コンピューティングデバイス210の1つまたは複数の入力構成要素244は、入力を受け取る可能性がある。入力の例は、触覚、オーディオ、およびビデオ入力である。コンピューティングデバイス210の入力構成要素242は、一例において、存在感知入力デバイス(たとえば、タッチ感知スクリーン、PSD)、マウス、キーボード、音声応答システム、カメラ、マイクロフォン、または人もしくは機械からの入力を検出するための任意のその他の種類のデバイスを含む。一部の例において、入力構成要素242は、1つまたは複数のセンサー構成要素、1つまたは複数の測位センサー(GPS構成要素、Wi-Fi構成要素、セルラー構成要素)、1つまたは複数の温度センサー、1つまたは複数の運動センサー(たとえば、加速度計、ジャイロ)、1つまたは複数の圧力センサー(たとえば、気圧計)、1つまたは複数の環境光センサー、および1つまたは複数のその他のセンサー(たとえば、赤外線近接センサー、湿度計センサーなど)を含む可能性がある。いくつかその他の非限定的な例を挙げるとすれば、その他のセンサーは、心拍数センサー、磁気計、グルコースセンサー、嗅覚センサー、コンパスセンサー、ステップカウンタセンサー(step counter sensor)を含む可能性がある。
【００４３】
コンピューティングデバイス210の1つまたは複数の出力構成要素246は、出力を生成する可能性がある。出力の例は、触覚、オーディオ、およびビデオ出力である。コンピューティングデバイス210の出力構成要素246は、一例において、存在感知ディスプレイ、サウンドカード、ビデオグラフィックスアダプタカード、スピーカ、ブラウン管(CRT)モニタ、液晶ディスプレイ(LCD)、または人もしくは機械への出力を生成するための任意のその他の種類のデバイスを含む。
【００４４】
コンピューティングデバイス210のUID 212は、コンピューティングデバイス110のUID 112と同様である可能性があり、ディスプレイ構成要素202、存在感知入力構成要素204、マイクロフォン構成要素206、およびスピーカ構成要素208を含む。ディスプレイ構成要素202は、情報がUID 212によって表示されるスクリーンである可能性があり、一方、存在感知入力構成要素204は、ディスプレイ構成要素202にあるおよび/またはディスプレイ構成要素202の近くにある物体を検出する可能性がある。スピーカ構成要素208は、可聴情報がUID 212によって再生されるスピーカである可能性があり、一方、マイクロフォン構成要素206は、ディスプレイ構成要素202および/もしくはスピーカ構成要素208においてならびに/またはディスプレイ構成要素202および/もしくはスピーカ構成要素208の近くで与えられた可聴入力を検出する可能性がある。
【００４５】
コンピューティングデバイス210の内部構成要素として示されているが、UID 212は、入力および出力を送信および/または受信するためにコンピューティングデバイス210とデータ経路を共有する外部構成要素を表す可能性もある。たとえば、一例において、UID 212は、コンピューティングデバイス210の外装内に置かれ、コンピューティングデバイス210の外装に物理的に接続されたコンピューティングデバイス210の組み込み構成要素(たとえば、モバイル電話のスクリーン)を表す。別の例において、UID 212は、コンピューティングデバイス210のパッケージまたはハウジングの外に置かれ、コンピューティングデバイス210のパッケージまたはハウジングから物理的に分離されたコンピューティングデバイス210の外部構成要素(たとえば、コンピューティングデバイス210と有線および/またはワイヤレスデータ経路を共有するモニタ、プロジェクタなど)を表す。
【００４６】
1つの例示的な範囲として、存在感知入力構成要素204は、ディスプレイ構成要素202の2インチ以内にある指またはスタイラスなどの物体を検出する可能性がある。存在感知入力構成要素204は、物体が検出されたディスプレイ構成要素202の位置(たとえば、[x, y]座標)を判定する可能性がある。別の例示的な範囲において、存在感知入力構成要素204は、ディスプレイ構成要素202から6インチ以内の物体を検出する可能性があり、その他の範囲も、可能である。存在感知入力構成要素204は、静電容量式、誘導式、および/または光学式認識技術を使用してユーザの指によって選択されたディスプレイ構成要素202の位置を判定する可能性がある。一部の例において、存在感知入力構成要素204は、さらに、ディスプレイ構成要素202に関連して説明されたように触覚、オーディオ、またはビデオの刺激を使用してユーザに出力を提供する。図2の例において、UID 212は、グラフィカルユーザインターフェースとして、ユーザインターフェースを提示する可能性がある。
【００４７】
スピーカ構成要素208は、コンピューティングデバイス210のハウジングに組み込まれたスピーカを含む可能性があり、一部の例において、コンピューティングデバイス210に動作可能なように結合される有線またはワイヤレスヘッドフォンのセットに組み込まれたスピーカである可能性がある。マイクロフォン構成要素206は、UID 212においてまたはUID 212の近くで発生する音響入力を検出する可能性がある。マイクロフォン構成要素206は、背景雑音を削除するためにさまざまな雑音除去技術を実行し、検出されたオーディオ信号からユーザの発話を分離する可能性がある。
【００４８】
コンピューティングデバイス210のUID 212は、2次元および/または3次元ジェスチャをコンピューティングデバイス210のユーザからの入力として検出する可能性がある。たとえばUID 212のセンサーは、UID 212のセンサーの閾値の距離以内のユーザの運動(たとえば、手、腕、ペン、スタイラスなどを動かすこと)を検出する可能性がある。UID 212は、運動の2または3次元ベクトル表現を決定し、ベクトル表現を複数次元を有するジェスチャ入力(たとえば、手を振ること、つまむこと、手を叩くこと、ペンの運びなど)と相互に関連付ける可能性がある。言い換えると、UID 212は、UID 212が表示するために情報を出力するスクリーンもしくは面においてまたはそのスクリーンもしくは面の近くでユーザがジェスチャをすることを要求することなく多次元ジェスチャを検出することができる。その代わりに、UID 212は、UID 212が表示するために情報を出力するスクリーンまたは面の近くに置かれる可能性がありまたは近くに置かれない可能性があるセンサーにおいてまたはそのセンサーの近くで実行される多次元ジェスチャを検出することができる。
【００４９】
1つまたは複数のプロセッサ240は、コンピューティングデバイス210に関連する機能を実施する可能性があるおよび/または命令を実行する可能性がある。プロセッサ240の例は、アプリケーションプロセッサ、ディスプレイコントローラ、補助プロセッサ、1つまたは複数のセンサーハブ、およびプロセッサ、処理ユニット、または処理デバイスとして機能するように構成された任意のその他のハードウェアを含む。モジュール220、222、224、226、230、および282は、コンピューティングデバイス210のさまざまな行動、動作、または機能を実行するためにプロセッサ240によって操作され得る可能性がある。たとえば、コンピューティングデバイス210のプロセッサ240は、動作モジュール220、222、224、226、230、および282をプロセッサ240に実行させる、ストレージデバイス248によって記憶された命令を取り出し、実行する可能性がある。命令は、プロセッサ240によって実行されるとき、コンピューティングデバイス210にストレージデバイス248内に情報を記憶させる可能性がある。
【００５０】
コンピューティングデバイス210内の1つまたは複数のストレージデバイス248は、コンピューティングデバイス210の動作中に処理するために情報を記憶する可能性がある(たとえば、コンピューティングデバイス210は、コンピューティングデバイス210における実行中にモジュール220、222、224、226、230、および282によってアクセスされるデータを記憶する可能性がある)。一部の例において、ストレージデバイス248は一時的メモリであり、つまり、ストレージデバイス248の主目的は長期的な記憶ではない。コンピューティングデバイス210のストレージデバイス248は、揮発性メモリとしての情報の短期記憶のために構成され、したがって、電源がオフにされた場合、記憶された内容を保持しない可能性がある。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当技術分野で知られているその他の形態の揮発性メモリを含む。
【００５１】
一部の例において、さらに、ストレージデバイス248は、1つまたは複数のコンピュータ可読ストレージ媒体を含む。一部の例において、ストレージデバイス248は、1つまたは複数の非一時的コンピュータ可読ストレージ媒体を含む。ストレージデバイス248は、揮発性メモリに通常記憶されるよりも多くの量の情報を記憶するように構成される可能性がある。さらに、ストレージデバイス248は、不揮発性メモリ空間としての情報の長期記憶のために構成され、電源のオン/オフのサイクルの後に情報を保持する可能性がある。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フロッピーディスク、フラッシュメモリ、または電気的にプログラミング可能なメモリ(EPROM)もしくは電気的に消去可能でありプログラミング可能である(EEPROM)メモリの形態を含む。ストレージデバイス248は、モジュール220、222、224、226、230、および282に関連するプログラム命令および/または情報(たとえば、データ)を記憶する可能性がある。ストレージデバイス248は、モジュール220、222、224、226、230、および282に関連するデータまたはその他の情報を記憶するように構成されたメモリを含む可能性がある。
【００５２】
UIモジュール220は、図1のコンピューティングデバイス110のUIモジュール120のすべての機能を含む可能性があり、たとえば、コンピューティングデバイス110のユーザとアシスタントモジュール222との間のインタラクションを容易にするためにUID 212においてコンピューティングデバイス210が提供するユーザインターフェースを管理するためにUIモジュール120と同様の動作を実行する可能性がある。たとえば、コンピューティングデバイス210のUIモジュール220は、アシスタントユーザインターフェース(たとえば、ユーザインターフェース114)を出力する(たとえば、表示するかまたはオーディオを再生する)ための命令を含むアシスタントモジュール222からの情報を受け取る可能性がある。UIモジュール220は、通信チャネル250を介してアシスタントモジュール222から情報を受け取り、データを使用してユーザインターフェースを生成する可能性がある。UIモジュール220は、UID 212にUID 212においてユーザインターフェースを提示させるために表示または可聴出力コマンドおよび関連するデータを通信チャネル250を介して送信する可能性がある。
【００５３】
一部の例において、UIモジュール220は、UID 212において検出された1つまたは複数のユーザ入力の指示を受け取る可能性があり、ユーザ入力についての情報をアシスタントモジュール222に出力する可能性がある。たとえば、UID 212は、ユーザからの音声入力を検出し、音声入力についてのデータをUIモジュール220に送信する可能性がある。
【００５４】
UIモジュール220は、音声入力の指示をさらに解釈するためにアシスタントモジュール222に送信する可能性がある。アシスタントモジュール222は、音声入力に基づいて、検出された音声入力がアシスタントモジュール222が1つまたは複数のタスクを実行することのユーザの要求を表すと判定する可能性がある。
【００５５】
アプリケーションモジュール226は、情報をユーザに提供するおよび/またはタスクを実行するためにアシスタントモジュール222などのアシスタントによってアクセスされる可能性がある、コンピューティングデバイス210において実行され、コンピューティングデバイス210からアクセスされ得るすべてのさまざまな個々のアプリケーションおよびサービスを表す。コンピューティングデバイス210のユーザは、コンピューティングデバイス210に機能を実行させるために1つまたは複数のアプリケーションモジュール226に関連するユーザインターフェースとインタラクションする可能性がある。アプリケーションモジュール226の多くの例が存在し、フィットネスアプリケーション、カレンダーアプリケーション、検索アプリケーション、地図もしくはナビゲーションアプリケーション、輸送サービスアプリケーション(たとえば、バスもしくは電車追跡アプリケーション)、ソーシャルメディアアプリケーション、ゲームアプリケーション、電子メールアプリケーション、チャットもしくはメッセージングアプリケーション、インターネットブラウザアプリケーション、またはコンピューティングデバイス210において実行され得る任意のおよびすべてのその他のアプリケーションを含む可能性がある。
【００５６】
コンピューティングデバイス210の検索モジュール282は、コンピューティングデバイス210のために統合された検索機能を実行する可能性がある。検索モジュール282は、UIモジュール220、アプリケーションモジュール226のうちの1つもしくは複数、および/またはアシスタントモジュール222によって、それらのモジュールの代わりに検索動作を実行するために呼び出される可能性がある。呼び出されたとき、検索モジュール282は、検索クエリを生成することならびに生成された検索クエリに基づく検索をさまざまなローカルおよびリモート情報ソースにまたがって実行する実行することなどの検索機能を実行する可能性がある。検索モジュール282は、実行された検索の結果を呼び出し元の構成要素またはモジュールに提供する可能性がある。つまり、検索モジュール282は、呼び出しコマンドに応答して検索結果をUIモジュール220、アシスタントモジュール222、および/またはアプリケーションモジュール226に出力する可能性がある。
【００５７】
コンテキストモジュール230は、コンピューティングデバイス210のコンテキストを定義するためにコンピューティングデバイス210に関連するコンテキスト情報を収集する可能性がある。特に、コンテキストモジュール230は、主に、特定の時間のコンピューティングデバイス210の物理的および/または仮想的環境ならびにコンピューティングデバイス210のユーザの特徴を明記するコンピューティングデバイス210のコンテキストを定義するためにアシスタントモジュール222によって使用される。
【００５８】
開示全体を通じて使用されるとき、用語「コンテキスト情報」は、コンピューティングデバイスおよびコンピューティングデバイスのユーザが特定の時間に経験する可能性がある仮想的なおよび/または物理的な環境の特徴を定義するためにコンテキストモジュール230によって使用され得る任意の情報を説明するために使用される。コンテキスト情報の例は多数あり、コンピューティングデバイス210に関連するアカウント(たとえば、コンピューティングデバイス210に現在サインインされているユーザアカウント)、コンピューティングデバイス210が現在接続されているネットワーク(たとえば、Wi-Fiネットワークのサービスセット識別子(SSID))、コンピューティングデバイス210のセンサー(たとえば、位置センサー、加速度計、ジャイロ、気圧計、環境光センサー、近接センサー、マイクロフォン、および任意のその他のセンサー)によって取得されたセンサー情報、コンピューティングデバイス210の通信モジュールによって送信および受信される通信情報(たとえば、テキストに基づく通信、可聴通信、ビデオ通信など)、ならびにコンピューティングデバイス210において実行されるアプリケーションに関連するアプリケーション使用情報(たとえば、アプリケーションに関連するアプリケーションデータ、インターネット検索履歴、テキスト通信、音声およびビデオ通信、カレンダー情報、ソーシャルメディアの投稿および関連する情報など)を含む可能性がある。コンテキスト情報のさらなる例は、コンピューティングデバイス210の外部にある送信デバイスから取得された信号および情報を含む。たとえば、コンテキストモジュール230は、小売商の物理的場所にまたは小売商の物理的場所の近くに置かれた外部ビーコンから送信されたビーコン情報をコンピューティングデバイス210の無線または通信ユニットを介して受信する可能性がある。
【００５９】
アシスタントモジュール222は、図1のコンピューティングデバイス110のローカルアシスタントモジュール122Aのすべての機能を含む可能性があり、アシスタントを提供するためのローカルアシスタントモジュール122Aと同様の動作を実行する可能性がある。一部の例において、アシスタントモジュール222は、アシスタント機能を提供するためにローカルで(たとえば、プロセッサ240において)実行される可能性がある。一部の例において、アシスタントモジュール222は、コンピューティングデバイス210にアクセスし得るリモートアシスタントサービスへのインターフェースとして働く可能性がある。たとえば、アシスタントモジュール222は、図1のアシスタントサーバシステム160のリモートアシスタントモジュール122Bへのインターフェースまたはアプリケーションプログラミングインターフェース(API)である可能性がある。
【００６０】
デバイス選択モジュール224は、図1のコンピューティングデバイス110のデバイス選択モジュール124Aのすべての機能を含む可能性があり、その他のコンピューティングデバイスを識別し、選択するためにデバイス選択モジュール124Aと同様の動作を実行する可能性がある。一部の例において、デバイス選択モジュール224は、その他のコンピューティングデバイスを識別するおよび/または選択するためにローカルで(たとえば、プロセッサ240において)実行される可能性がある。一部の例において、デバイス選択モジュール224は、コンピューティングデバイス210によってアクセスされ得るリモートデバイス選択サービスへのインターフェースとして働く可能性がある。たとえば、デバイス選択モジュール224は、図1のアシスタントサーバシステム160のデバイス選択モジュール124Bへのインターフェースまたはアプリケーションプログラミングインターフェース(API)である可能性がある。
【００６１】
図3は、本開示の1つまたは複数の態様によるバーチャルアシスタントによる選択のために識別されるように構成される例示的なコンピューティングデバイスを示すブロック図である。図3のコンピューティングデバイス380が、図1のコンピューティングデバイス180のうちのコンピューティングデバイスの例として下で説明される。図3は、コンピューティングデバイス380のただ1つの特定の例を示し、コンピューティングデバイス380の多くのその他の例が、その他の場合に使用される可能性があり、例示的なコンピューティングデバイス380に含まれる構成要素のサブセットを含む可能性があり、または図3に示されていないさらなる構成要素を含む可能性がある。
【００６２】
図3の例に示されるように、コンピューティングデバイス380は、ユーザインターフェースデバイス(UID) 313、1つまたは複数のプロセッサ341、1つまたは複数の通信ユニット343、1つまたは複数の入力構成要素344、1つまたは複数の出力構成要素346、および1つまたは複数のストレージデバイス348を含む。UID 313は、ディスプレイ構成要素303、存在感知入力構成要素305、マイクロフォン構成要素307、およびスピーカ構成要素309を含む。コンピューティングデバイス380のストレージデバイス348は、UIモジュール321、選択応答モジュール327、およびコンテキストモジュール331を含む。
【００６３】
プロセッサ340は、図2のコンピューティングシステム210のプロセッサ240に類似している。通信ユニット342は、図2のコンピューティングシステム210の通信ユニット242に類似している。UID 313は、図2のコンピューティングシステム210のUID 212に類似している。ストレージデバイス348は、図2のコンピューティングシステム210のストレージデバイス248に類似している。入力構成要素344は、図2のコンピューティングシステム210の入力構成要素244と類似している。出力構成要素346は、図2のコンピューティングシステム210の出力構成要素246と類似している。通信チャネル350は、図2のコンピューティングシステム210の通信チャネル250に類似しており、したがって、構成要素間通信のために構成要素340、342、344、346、313、および348の各々を相互に接続する可能性がある。一部の例において、通信チャネル350は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを伝達するための任意のその他の方法を含む可能性がある。
【００６４】
UIモジュール321は、図1のコンピューティングデバイス180AのUIモジュール121のすべての機能を含む可能性があり、UIモジュール121と同様の動作を実行する可能性がある。たとえば、コンピューティングデバイス380のUIモジュール321は、発話を満足させる(たとえば、ビデオを表示するかまたはオーディオを再生する)ための命令を含む情報を選択応答モジュール327から受信する可能性がある。UIモジュール321は、UID 313にUID 313においてユーザインターフェースを提示させるために表示または可聴出力コマンドおよび関連するデータを通信チャネル350を介して送信する可能性がある。
【００６５】
コンテキストモジュール331は、図2のコンピューティングデバイス210のコンテキストモジュール231と同様の機能を実行するように構成される可能性がある。たとえば、コンテキストモジュール331は、コンピューティングデバイス380のコンテキストを定義するためにコンピューティングデバイス380に関連するコンテキスト情報を収集する可能性がある。一部の例において、コンテキストモジュール331は、コンピューティングデバイス380のコンテキストに関連する1つまたは複数のその他のデバイスを更新する可能性がある。たとえば、コンテキストモジュール331は、コンピューティングデバイス380に関連するアカウントの識別およびコンピューティングデバイス380が現在接続されているネットワークの識別の一方または両方に関連するサーバシステム(たとえば、図1のアシスタントサーバシステム160)を更新する可能性がある。一部の例において、コンテキストモジュール331は、定期的な時間間隔(つまり、5分、10分、30分、1時間、1日)でその他のデバイスを更新する可能性がある。一部の例において、コンテキストモジュール331は、コンピューティングデバイス380のコンテキストが変わったとき(たとえば、コンピューティングデバイス380がネットワーク接続するかまたはネットワークから切断するとき、新しいアカウントがコンピューティングデバイス380にサインインされるとき)にその他のデバイスを更新する可能性がある。
【００６６】
選択応答モジュール327は、コンピューティングデバイス380の識別が図1のコンピューティングデバイス110または図2のコンピューティングデバイス210などの別のデバイスにおいて話された発話を満足させることを可能にする1つまたは複数の行動を実行する可能性がある。一部の例においては、(たとえば、図1のアシスタントサーバシステム160から)要求の受信に応じて、選択応答モジュール327が、UID 313のスピーカ構成要素309に音声を発生させる可能性がある。上で検討されたように、一部の例において、要求は、発せられる音声の1つまたは複数の一意のオーディオの特徴(たとえば、周波数)を識別する可能性がある。一部の例において、選択応答モジュール327は、別のデバイスにおいて話された発話を満足させるために、UID 313の1つまたは複数の構成要素に出力を生成させる(たとえば、ビデオを表示させる、グラフィカルユーザインターフェースを表示させる、音声を発生させるなど)可能性がある。
【００６７】
図4は、本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行するように構成される例示的なコンピューティングシステムを示すブロック図である。図4のアシスタントサーバシステム460が、図1のアシスタントサーバシステム160の例として下で説明される。図4は、アシスタントサーバシステム460の1つの特定の例を示すだけであり、アシスタントサーバシステム460の多くのその他の例が、その他の場合に使用される可能性があり、例示的なアシスタントサーバシステム460に含まれる構成要素のサブセットを含む可能性があり、または図4に示されない追加の構成要素を含む可能性がある。
【００６８】
図4の例に示されるように、アシスタントサーバシステム460は、1つまたは複数のプロセッサ440、1つまたは複数の通信ユニット442、および1つまたは複数のストレージデバイス448を含む。ストレージデバイス448は、アシスタントモジュール422、検索モジュール482、コンテキストモジュール430、およびデバイス選択モジュール424を含む。
【００６９】
プロセッサ440は、図2のコンピューティングシステム210のプロセッサ240に類似している。通信ユニット442は、図2のコンピューティングシステム210の通信ユニット242に類似している。ストレージデバイス448は、図2のコンピューティングシステム210のストレージデバイス248に類似している。通信チャネル450は、図2のコンピューティングシステム210の通信チャネル250に類似しており、したがって、構成要素間通信のために構成要素440、442、および448の各々を相互に接続する可能性がある。一部の例において、通信チャネル450は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを伝達するための任意のその他の方法を含む可能性がある。
【００７０】
アシスタントサーバシステム460の検索モジュール482は、コンピューティングデバイス210の検索モジュール282に類似しており、アシスタントサーバシステム460のために統合された検索機能を実行する可能性がある。つまり、検索モジュール482は、アシスタントモジュール422のために検索動作を実行する可能性がある。一部の例において、検索モジュール482は、アシスタントモジュール422のために検索動作を実行するための外部検索システムとインターフェースをとる可能性がある。呼び出されたとき、検索モジュール482は、検索クエリを生成することならびに生成された検索クエリに基づく検索をさまざまなローカルおよびリモート情報ソースにまたがって実行することなどの検索機能を実行する可能性がある。検索モジュール482は、実行された検索の結果を呼び出し元の構成要素またはモジュールに提供する可能性がある。つまり、検索モジュール482は、検索結果をアシスタントモジュール422に出力する可能性がある。
【００７１】
アシスタントサーバシステム460のコンテキストモジュール430は、コンピューティングデバイス210のコンテキストモジュール230に類似している。コンテキストモジュール430は、コンピューティングデバイスのコンテキストを定義するために図1のコンピューティングデバイス110および/もしくはコンピューティングデバイス180、図2のコンピューティングデバイス210、ならびに/または図3のコンピューティングデバイス380などのコンピューティングデバイスに関連するコンテキスト情報を収集する可能性がある。コンテキストモジュール430は、主に、アシスタントサーバシステム160によって提供されるサービスとインターフェースをとり、アシスタントサーバシステム160によって提供されるサービスにアクセスするコンピューティングデバイスのコンテキストを定義するためにアシスタントモジュール422および/または検索モジュール482によって使用される可能性がある。コンテキストは、特定の時間のコンピューティングデバイスの物理的および/または仮想的環境ならびにコンピューティングデバイスのユーザの特徴を指定する可能性がある。
【００７２】
アシスタントモジュール422は、図1のローカルアシスタントモジュール122Aおよびリモートアシスタントモジュール122Bならびに図2のコンピューティングデバイス210のアシスタントモジュール222のすべての機能を含む可能性がある。アシスタントモジュール422は、アシスタントサーバシステム460を介してアクセス可能であるアシスタントサービスを提供するためにリモートアシスタントモジュール122Bと同様の動作を実行する可能性がある。つまり、アシスタントモジュール422は、アシスタントサーバシステム460とネットワークを介して通信しているコンピューティングデバイスがアクセスし得るリモートアシスタントサービスとのインターフェースとして働く可能性がある。たとえば、アシスタントモジュール422は、図1のアシスタントサーバシステム160のリモートアシスタントモジュール122BへのインターフェースまたはAPIである可能性がある。
【００７３】
デバイス選択モジュール424は、図1のデバイス選択モジュール124Aおよびデバイス選択モジュール124Bならびに図2のコンピューティングデバイス210のデバイス選択モジュール224のすべての機能を含む可能性がある。デバイス選択モジュール424は、話された発話を満足させるためのその他のコンピューティングデバイスを識別し、選択するためにデバイス選択モジュール124Bと同様の動作を実行する可能性がある。一部の例において、デバイス選択モジュール424は、図1のアシスタントサーバシステム160のデバイス選択モジュール124BへのインターフェースまたはAPIである可能性がある。
【００７４】
動作中、デバイス選択モジュール424は、特定のコンピューティングデバイス(たとえば、図1のコンピューティングデバイス110または図2のコンピューティングデバイス210)に関連するコンピューティングデバイスのリストを保持する可能性がある。たとえば、デバイス選択モジュール424は、特定のコンピューティングデバイスと同じネットワークに接続される(たとえば、特定のコンピューティングデバイスと同じSSIDを有するネットワークに接続される1つもしくは複数のコンピューティングデバイス)および特定のコンピューティングデバイスと同じアカウント(たとえば、同じユーザアカウント)に関連付けられるの一方または両方である1つまたは複数のコンピューティングデバイスを、コンテキストモジュール430によって収集されたコンテキスト情報に基づいて識別する可能性がある。
【００７５】
特定のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示の受信に応じて、デバイス選択モジュール424は、それぞれのオーディオ信号を発生する要求を、特定のコンピューティングデバイスに関連する識別されたコンピューティングデバイスのうちの各コンピューティングデバイスに出力する可能性がある。たとえば、デバイス選択モジュール424は、特定のコンピューティングデバイスに関連する識別されたコンピューティングデバイスの各々にそれぞれの周波数を割り振り、割り振られた周波数の指示を要求に含める可能性がある。
【００７６】
コンピューティングデバイスによって発せられるオーディオ信号のうちの1つまたは複数は、特定のコンピューティングデバイスのマイクロフォンによって生成されるオーディオデータに含められる可能性がある。特定のコンピューティングデバイスは、オーディオデータをローカルで処理する可能性があり、および/またはオーディオデータをアシスタントサーバシステム460にアップロードする可能性がある。処理の一部として、特定のコンピューティングデバイスおよび/またはアシスタントサーバシステム460は、オーディオデータが割り振られた周波数のうちの1つまたは複数を含むかどうかを判定する可能性がある。オーディオデータが割り振られた周波数のうちの1つまたは複数を含む場合、特定のコンピューティングデバイスおよび/またはアシスタントサーバシステム460は、1つまたは複数の割り振られた周波数に関連するコンピューティングデバイスが発話を満足させるために適格であると判定する可能性がある。
【００７７】
特定のコンピューティングデバイスおよび/またはアシスタントサーバシステム460は、(たとえば、1つまたは複数の音声認識技術を使用して)話された発話を認識するためにオーディオデータを処理する可能性もある。話された発話および発話を満足させるために適格であると判定されたコンピューティングデバイスに基づいて、特定のコンピューティングデバイスおよび/またはアシスタントサーバシステム460は、認識された発話を満足させるための1つまたは複数のコンピューティングデバイスを選択する可能性がある。たとえば、特定のコンピューティングデバイスおよび/またはアシスタントサーバシステム460は、発話を満足させるのに最も適しているコンピューティングデバイスを選択する可能性がある。特定のコンピューティングデバイスおよび/またはアシスタントサーバシステム460は、選択されたコンピューティングデバイスに発話を満足させる可能性がある。
【００７８】
図5は、本開示の1つまたは複数の態様による例示的なバーチャルアシスタントを実行する1つまたは複数のプロセッサによって実行される例示的な動作を示す流れ図である。図5が、図1のシステム100の文脈で下で説明される。たとえば、ローカルアシスタントモジュール122Aおよびデバイス選択モジュール124Aは、コンピューティングデバイス110の1つまたは複数のプロセッサにおいて実行される間に、本開示の1つまたは複数の態様に従って動作502〜512のうちの1つまたは複数を実行する可能性がある。また、一部の例において、リモートアシスタントモジュール122Bおよびデバイス選択モジュール124Bは、アシスタントサーバシステム160の1つまたは複数のプロセッサにおいて実行される間に、本開示の1つまたは複数の態様に従って動作502〜512のうちの1つまたは複数を実行する可能性がある。例示のみを目的として、図5が、図1のコンピューティングデバイス110の文脈で下で説明される。
【００７９】
動作中、コンピューティングデバイス110は、スピーチ受信をアクティブ化する可能性がある(502)。たとえば、コンピューティングデバイス110のユーザは、コンピューティングデバイス110のスピーチ受信ボタンを押すか、またはローカルアシスタントモジュール122Aによって受け取られる所定のアクティブ化フレーズをUID 112において話す可能性がある。
【００８０】
スピーチ受信のアクティブ化に応じて、コンピューティングデバイス110は、その他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させる可能性がある(504)。たとえば、コンピューティングデバイス110は、コンピューティングデバイス110に関連する1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させる可能性がある。別のコンピューティングデバイスは、その他のコンピューティングデバイスが現在のコンピューティングデバイスと同じネットワークに接続されるおよび現在のコンピューティングデバイスと同じアカウント(たとえば、同じユーザアカウント)に関連付けられるのうちの一方または両方である場合、コンピューティングデバイス110に関連する可能性がある。一部の例において、コンピューティングデバイス110は、少なくとも、コンピューティングデバイス110においてスピーチ受信がアクティブ化されたという指示を出力することによってその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させる可能性がある。コンピューティングデバイス110は、サーバデバイスおよび関連するコンピューティングデバイスの一方または両方に指示を出力する可能性がある。コンピューティングデバイス110がサーバデバイスに指示を出力する例において、サーバデバイスは、コンピューティングデバイス110に関連すると識別された各コンピューティングデバイスに、それぞれのオーディオ信号を発生する要求を出力する可能性がある。コンピューティングデバイス110が指示を関連するコンピューティングデバイスに直接出力する例において、指示は、それぞれのオーディオ信号を発生する要求を含む可能性がある。
【００８１】
上で検討されたように、その他のコンピューティングデバイスによって発せられるオーディオ信号は、1つまたは複数の一意の特徴を有する可能性がある。特定のコンピューティングデバイスによって発せられるオーディオ信号の一意の特徴のうちの1つまたは複数は、特定のコンピューティングデバイスによって受信される要求により指定される可能性がある。たとえば、特定のコンピューティングデバイスに送信される要求は、特定のコンピューティングデバイスが特定の周波数を有するオーディオ信号を出力することを指定する可能性がある。上でやはり検討されたように、一部の例において、オーディオ信号は、人のしゃべりおよび/または人の聞き取りの範囲を超えている可能性がある。
【００８２】
いずれの場合も、コンピューティングデバイス110は、コンピューティングデバイス110のマイクロフォンによって生成されたオーディオデータを受信する可能性がある(506)。たとえば、コンピューティングデバイス110は、話された発話に対応する音響入力(たとえば、オーディオデータ)およびその他のコンピューティングデバイスによって発生されたオーディオ信号をマイクロフォンによって受信する可能性がある。
【００８３】
コンピューティングデバイス110は、オーディオデータに基づいてその他のコンピューティングデバイスを識別する可能性がある(508)。たとえば、受信されたオーディオデータがコンピューティングデバイスのそれぞれのコンピューティングデバイスによって発生されたそれぞれの音声を含む場合、コンピューティングデバイス110は、それぞれのコンピューティングデバイスが話された発話を満足させるための選択に適格であると判定する可能性がある。同様に、受信されたオーディオデータがコンピューティングデバイスのそれぞれのコンピューティングデバイスによって発生されたそれぞれの音声を含まない場合、コンピューティングデバイス110は、それぞれのコンピューティングデバイスが話された発話を満足させるための選択に適格でないと判定する可能性がある。
【００８４】
一部の例において、コンピューティングデバイス110は、オーディオデータに基づいてその他のコンピューティングデバイスが利用可能である(つまり、範囲内にある)かどうかを識別する可能性がある。一部の例において、コンピューティングデバイス110は、オーディオデータに基づいてその他のコンピューティングデバイスの追加のコンテキストを決定する可能性がある。たとえば、コンピューティングデバイス110は、オーディオデータに基づいて、コンピューティングデバイス110とその他の識別されたコンピューティングデバイスの各々との間のおおよその距離を判定する可能性がある。一部の例において、コンピューティングデバイス110は、その他のコンピューティングデバイスによって発生された音声の受信された大きさに基づいておおよその距離を判定する可能性がある。たとえば、オーディオデータが、第1の大きさを有する第1の音声と、第1の大きさよりも小さい第2の大きさを有する第2の音声とを含む場合、コンピューティングデバイス110は、第1の音声を発したコンピューティングデバイスが第2の音声を発したコンピューティングデバイスよりも近いと判定する可能性がある。
【００８５】
コンピューティングデバイス110は、オーディオデータに基づいて話された発話を判定する可能性がある(510)。たとえば、コンピューティングデバイス110は、ユーザによって話された問い合わせまたはその他の要求を判定するために音声認識を実行する可能性がある。上で検討されたように、一部の例において、コンピューティングデバイス110は、音声認識とその他のコンピューティングデバイスの識別とを同時に実行する可能性がある。
【００８６】
コンピューティングデバイス110は、コンピューティングデバイス110および識別されたその他のコンピューティングデバイスから、話された発話を満足させるための1つまたは複数のコンピューティングデバイスを選択する可能性がある(512)。たとえば、識別されたその他のコンピューティングデバイスのうちの特定のコンピューティングデバイスがコンピューティングデバイス110よりもユーザの発話を満足させるのにより適している場合、コンピューティングデバイス110は、ユーザの発話を満足させるために特定のコンピューティングデバイスを選択する可能性がある。一例として、コンピューティングデバイス110がディスプレイを含まず、発話がディスプレイによってより満足させられる場合(たとえば、ユーザの発話が「私の予定はどうなっている」である場合)、コンピューティングデバイス110は、発話を満足させるためにディスプレイを含む識別されたその他のコンピューティングデバイスのうちのコンピューティングデバイスを選択する可能性がある。発話「私の予定はどうなっている」は、たとえば、合成音声が予定を読み上げるよりも予定の視覚的表現の方がより理解しやすい可能性があるので、ディスプレイによってより満足させられる可能性がある。別の例として、コンピューティングデバイス110がディスプレイを含み、発話がより大きなディスプレイによってより満足させられる場合(たとえば、ユーザの発話が「ビデオを再生して」である場合)、コンピューティングデバイス110は、発話を満足させるために比較的大きなディスプレイを含む識別されたその他のコンピューティングデバイスのうちのコンピューティングデバイスを選択する可能性がある。発話「ビデオを再生して」は、ユーザがより大きなディスプレイ(たとえば、TV)上でビデオを見る方がより難しくないおよび/またはより快適である可能性があるので、比較的大きなディスプレイによってより満足させられる可能性がある。別の例として、コンピューティングデバイス110は、判定された距離に基づいて識別されたコンピューティングデバイスのうちのコンピューティングデバイスを選択する可能性がある。別の例として、識別されたデバイスがワイヤレススピーカを含み、発話の満足が音楽を再生することを含む場合、コンピューティングデバイス110は、音楽を再生するためにワイヤレススピーカを選択する可能性がある。
【００８７】
コンピューティングデバイス110は、選択されたコンピューティングデバイスに話された発話を満足させる可能性がある(514)。たとえば、コンピューティングデバイス110は、発話に応じて、選択されたコンピューティングデバイスに出力を生成させる(たとえば、ビデオを表示させる、グラフィカルユーザインターフェースを表示させる、音声を発生させるなど)可能性がある。このようにして、コンピューティングデバイス110は、発話のより高い質の満足を提供する可能性がある。
【００８８】
以下の番号を振られた例は、本開示の1つまたは複数の態様を示す可能性がある。
【００８９】
例1.  現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信するステップと、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別するステップと、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するステップとを含む方法。
【００９０】
例2.  現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を現在のコンピューティングデバイスによって出力するステップをさらに含む例1の方法。
【００９１】
例3.  現在のコンピューティングデバイスが、特定のネットワークに接続され、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を出力するステップが、現在のコンピューティングデバイスによって、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることであって、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスが、識別された1つまたは複数のコンピューティングデバイスを含む、発生させることを含む例2の方法。
【００９２】
例4.  現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示が、サーバデバイスに出力され、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることが、現在のコンピューティングデバイスによって、サーバデバイスに、それぞれのオーディオ信号を発生するために、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスへ要求を出力させることを含む例3の方法。
【００９３】
例5.  現在のコンピューティングデバイスが、特定のユーザアカウントに関連付けられ、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を出力するステップが、現在のコンピューティングデバイスによって、特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることであって、特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスが、識別された1つまたは複数のコンピューティングデバイスを含む、発生させることを含む例1〜4の任意の組合せの方法。
【００９４】
例6.  現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示が、サーバデバイスに出力され、特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることが、現在のコンピューティングデバイスによって、サーバデバイスに、それぞれのオーディオ信号を発生するために、特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスへ要求を出力させることを含む例1〜5の任意の組合せの方法。
【００９５】
例7.  現在のコンピューティングデバイスが、特定のネットワークに接続され、特定のユーザアカウントに関連付けられ、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を出力するステップが、現在のコンピューティングデバイスによって、特定のユーザアカウントに関連付けられる、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることであって、特定のユーザアカウントに関連付けられる、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスが、識別された1つまたは複数のコンピューティングデバイスを含む、発生させることを含む例1〜6の任意の組合せの方法。
【００９６】
例8.  サーバデバイスによって、現在のコンピューティングデバイスに関連する1つまたは複数のコンピューティングデバイスを識別するステップと、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示の受信に応じて、それぞれのオーディオ信号を発生する要求を、サーバデバイスによって、現在のコンピューティングデバイスに関連する識別された1つまたは複数のコンピューティングデバイスのうちの各コンピューティングデバイスに出力するステップとをさらに含む例1〜7の任意の組合せの方法。
【００９７】
例9.  現在のコンピューティングデバイスに関連する1つまたは複数のコンピューティングデバイスを識別するステップが、サーバデバイスによって、現在のコンピューティングデバイスと同じネットワークに接続されるおよび現在のコンピューティングデバイスと同じユーザアカウントに関連付けられるのうちの一方または両方である1つまたは複数のコンピューティングデバイスを識別することを含む例1〜8の任意の組合せの方法。
【００９８】
例10.  識別するステップが、1つまたは複数のそれぞれのコンピューティングデバイスによって発生されたそれぞれのオーディオ信号に基づいて、現在のコンピューティングデバイスに対するそれぞれのコンピューティングデバイスのそれぞれの近さを判定することを含む例1〜9の任意の組合せの方法。
【００９９】
例11.  それぞれのオーディオ信号のうちの各オーディオ信号が、1つまたは複数の一意のオーディオの特徴を有する例1〜10の任意の組合せの方法。
【０１００】
例12.  現在のコンピューティングデバイスが、ディスプレイを含まず、選択するステップが、ディスプレイが話された発話を満足させるために必要とされるとの判定に応じて、ディスプレイを含む識別された1つまたは複数のコンピューティングデバイスに含まれるコンピューティングデバイスからの特定のコンピューティングデバイスを選択することを含む例1〜11の任意の組合せの方法。
【０１０１】
例13.  現在のコンピューティングデバイスが、ディスプレイを含み、識別された1つまたは複数のコンピューティングデバイスからのコンピューティングデバイスを選択するステップが、現在のコンピューティングデバイスのディスプレイよりも大きいディスプレイを含む識別された1つまたは複数のコンピューティングデバイスに含まれるコンピューティングデバイスからの特定のコンピューティングデバイスを選択することを含む例1〜12の任意の組合せの方法。
【０１０２】
例14.  1つまたは複数のマイクロフォンと、1つまたは複数のプロセッサであって、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信し、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別し、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するように構成された、1つまたは複数のプロセッサとを含むデバイス。
【０１０３】
例15.  デバイスが、現在のコンピューティングデバイスであり、現在のコンピューティングデバイスが、1つまたは複数の通信ユニットをさらに含み、1つまたは複数のプロセッサが、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を1つまたは複数の通信ユニットを介して出力するようにさらに構成される例14のデバイス。
【０１０４】
例16.  現在のコンピューティングデバイスが、特定のネットワークに接続され、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を出力するために、1つまたは複数のプロセッサが、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることであって、特定のネットワークに接続された1つまたは複数のその他のコンピューティングデバイスが、識別された1つまたは複数のコンピューティングデバイスを含む、発生させることを行うように構成される例15のデバイス。
【０１０５】
例17.  現在のコンピューティングデバイスが、特定のユーザアカウントに関連付けられ、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたという指示を出力するために、1つまたは複数のプロセッサが、特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスにそれぞれのオーディオ信号を発生させることであって、特定のユーザアカウントに関連する1つまたは複数のその他のコンピューティングデバイスが、識別された1つまたは複数のコンピューティングデバイスを含む、発生させることを行うように構成される例14〜16の任意の組合せのデバイス。
【０１０６】
例18.  1つまたは複数のプロセッサが、現在のコンピューティングデバイスに関連する1つまたは複数のコンピューティングデバイスを識別し、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されたとの判定に応じて、それぞれのオーディオ信号を発生する要求を、現在のコンピューティングデバイスに関連する識別された1つまたは複数のコンピューティングデバイスのうちの各コンピューティングデバイスに出力するようにさらに構成される例14〜17の任意の組合せのデバイス。
【０１０７】
例19.  現在のコンピューティングデバイスに関連する1つまたは複数のコンピューティングデバイスを識別するために、1つまたは複数のプロセッサが、現在のコンピューティングデバイスと同じネットワークに接続されるおよび現在のコンピューティングデバイスと同じユーザアカウントに関連付けられるのうちの一方または両方である1つまたは複数のコンピューティングデバイスを識別するように構成される例14〜18の任意の組合せのデバイス。
【０１０８】
例20.  実行されるときにコンピューティングデバイスの1つまたは複数のプロセッサに、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信させ、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別させ、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択させる命令を記憶する非一時的コンピュータ可読ストレージ媒体。
【０１０９】
例21.  1つまたは複数のプロセッサに例1〜13の任意の組合せの方法を実行させる命令をさらに記憶する非一時的コンピュータ可読ストレージ媒体。
【０１１０】
例22.  例1〜13の任意の組合せの方法を実行するための手段を含むデバイス。
【０１１１】
本開示の全体を通じて、コンピューティングデバイスが情報を分析するためにコンピューティングデバイスのユーザから許可を受け取る場合にのみ、コンピューティングデバイスおよび/またはコンピューティングシステムがコンピューティングデバイスおよびコンピューティングデバイスのユーザに関連する情報(たとえば、コンテキスト、位置、通信(communication)、連絡先(contact)、チャットの会話、音声会話など)を分析する例が説明される。たとえば、下で検討される状況において、コンピューティングデバイスまたはコンピューティングシステムにおいて実行されるアシスタントがユーザに関連する情報を収集することができるかまたは利用する可能性があるよりも前に、ユーザは、アシスタント(またはコンピューティングデバイスおよび/もしくはコンピューティングシステムのその他のプログラムもしくは特徴)がユーザ情報を収集し、利用することができるかどうかを制御するための、あるいはコンピューティングデバイスおよび/もしくはコンピューティングシステムがユーザに関連する可能性がある内容を受け取る可能性があるかどうかならびに/またはどのようにして受け取るべきかを命じるための入力を与える機会を提供される可能性がある。さらに、特定のデータが、個人を識別し得る情報が削除されるように、アシスタントまたは基礎をなすコンピューティングデバイスおよび/もしくはコンピューティングシステムによって記憶されるかまたは使用される前に1つまたは複数の方法で暗号化されるおよび/または処理される可能性がある。たとえば、ユーザのアイデンティティが、個人を識別し得る情報がユーザについて決定され得ないように、または位置情報が取得される場合にユーザの地理的位置が(座標位置もしくは実際の住所とは対照的に都市、郵便番号、もしくは州になど)一般化される可能性があり、したがって、ユーザの特定の位置が決定され得ないように処理される可能性がある。したがって、ユーザは、どのようにして情報がユーザについて収集され、アシスタントならびにアシスタントを実行する基礎をなすコンピューティングデバイスおよびコンピューティングシステムによって使用されるのかを制御する可能性がある。
【０１１２】
1つまたは複数の例において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装される可能性がある。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体上で送信され、ハードウェアに基づく処理ユニットによって実行される可能性がある。コンピュータ可読媒体は、データストレージ媒体などの有形の媒体に対応するコンピュータ可読ストレージ媒体、またはたとえば通信プロトコルによるある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含む可能性がある。このようにして、概して、コンピュータ可読媒体は、(1)非一時的である有形のコンピュータ可読ストレージ媒体または(2)信号もしくは搬送波などの通信媒体に対応する可能性がある。データストレージ媒体は、本開示において説明された技術の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体である可能性がある。コンピュータプログラム製品は、コンピュータ可読媒体を含む可能性がある。
【０１１３】
限定ではなく例として、そのようなコンピュータ可読ストレージ媒体は、RAM、ROM、EEPROM、CD-ROMもしくはその他の光ディスクストレージ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用可能であり、コンピュータによってアクセス可能である任意のその他のストレージ媒体を含み得る。また、当然、任意の接続がコンピュータ可読媒体と呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、デジタル加入者線(DSL)、または赤外線、ラジオ波、およびマイクロ波などのワイヤレステクノロジーを用いてウェブサイト、サーバ、またはその他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、DSL、または赤外線、ラジオ波、およびマイクロ波などのワイヤレステクノロジーは、媒体の定義に含まれる。しかし、1つのコンピュータ可読ストレージ媒体および複数のコンピュータ可読ストレージ媒体ならびにデータストレージ媒体は、接続、搬送波、信号、またはその他の一時的媒体を含まず、その代わりに、非一時的な有形のストレージ媒体を対象とすることを理解されたい。本明細書において使用されるとき、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD: compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタルバーサタイルディスク(DVD: digital versatile disc)、フロッピーディスク(floppy disk)、およびブルーレイディスク(Blu-ray(登録商標) disc)を含み、ディスク(disk)が、通常、磁気的にデータを再生する一方、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１１４】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、またはその他の等価な集積もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行される可能性がある。したがって、用語「プロセッサ」は、本明細書において使用されるとき、上述の構造または本明細書において説明された技術の実装に好適な任意のその他の構造のいずれかを指す可能性がある。加えて、一部の態様において、本明細書において説明された機能は、専用のハードウェアおよび/またはソフトウェアモジュール内に設けられる可能性がある。また、技術は、1つまたは複数の回路または論理要素にすべて実装される可能性がある。
【０１１５】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または1組のIC(たとえば、チップセット)を含む多種多様なデバイスまたは装置に実装される可能性がある。さまざまな構成要素、モジュール、またはユニットが、開示された技術を実行するように構成されたデバイスの機能の態様を強調するために本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述のように、さまざまなユニットが、ハードウェアユニットにおいて組み合わされるか、または好適なソフトウェアおよび/もしくはファームウェアと連携した、上述の1つもしくは複数のプロセッサを含む相互運用性のあるハードウェアユニットの集合によって提供される可能性がある。
【０１１６】
さまざまな実施形態が、説明された。これらのおよびその他の実施形態は、添付の請求項の範囲内にある。
【符号の説明】
【０１１７】
100  システム
110  コンピューティングデバイス
112  ユーザインターフェースデバイス(UID)
114  ユーザインターフェース
120  ユーザインターフェース(UI)モジュール
122A  ローカルアシスタントモジュール
122B  リモートアシスタントモジュール
124A  デバイス選択モジュール
124B  デバイス選択モジュール
130  ネットワーク
160  アシスタントサーバシステム
180  コンピューティングデバイス
202  ディスプレイ構成要素
204  存在感知入力構成要素
206  マイクロフォン構成要素
208  スピーカ構成要素
210  コンピューティングデバイス
212  ユーザインターフェースデバイス(UID)
220  UIモジュール
222  アシスタントモジュール
224  デバイス選択モジュール
226  アプリケーションモジュール
230  コンテキストモジュール
240  プロセッサ
242  通信ユニット
244  入力構成要素
246  出力構成要素
248  ストレージ構成要素
250  通信チャネル
282  検索モジュール
303  ディスプレイ構成要素
305  存在感知入力構成要素
307  マイクロフォン構成要素
309  スピーカ構成要素
313  ユーザインターフェースデバイス(UID)
321  UIモジュール
327  選択応答モジュール
331  コンテキストモジュール
341  プロセッサ
342  通信ユニット
343  通信ユニット
344  入力構成要素
346  出力構成要素
348  ストレージデバイス
350  通信チャネル
380  コンピューティングデバイス
422  アシスタントモジュール
424  デバイス選択モジュール
430  コンテキストモジュール
440  プロセッサ
442  通信ユニット
448  ストレージ構成要素
450  通信チャネル
460  アシスタントサーバシステム
482  検索モジュール
【要約】
一例においては、方法が、現在のコンピューティングデバイスのマイクロフォンによって生成されたオーディオデータを受信するステップと、現在のコンピューティングデバイスにおいてスピーチ受信がアクティブ化されることに応じて、それぞれのオーディオ信号をそれぞれが発した1つまたは複数のコンピューティングデバイスをオーディオデータに基づいて識別するステップと、オーディオデータに基づいて判定された話された発話を満足させるために、現在のコンピューティングデバイスか、または識別された1つもしくは複数のコンピューティングデバイスからの特定のコンピューティングデバイスかのどちらかを選択するステップとを含む方法を含む。【図１】
0006640430.tif 000002
【図２】
0006640430.tif 000003
【図３】
0006640430.tif 000004
【図４】
0006640430.tif 000005
【図５】
0006640430.tif 000006