(57)【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
複数のオブジェクトを含む電子会話内の１つまたは複数のオブジェクトを識別することであって、前記複数のオブジェクトは、異なるメディアタイプのものである、前記識別すること、
前記１つまたは複数のオブジェクトを１つまたは複数のオブジェクトグループにグループ化することであって、各オブジェクトグループは、少なくとも１つのオブジェクトを含む、前記グループ化すること、
前記１つまたは複数のオブジェクトグループに基づいて前記電子会話を分析し、前記電子会話の会話構造を判定すること、
前記電子会話の会話構造に基づいて、前記１つまたは複数のオブジェクトグループに会話フレーミングを適用し、音声インタフェース会話プレゼンテーションを生成すること、
音声出力デバイスによる出力のために構成された前記音声インタフェース会話プレゼンテーションを提供すること
を含み、
前記会話フレーミングを適用することは、オブジェクトグループのペア間に１つまたは複数の中間会話フレーミング部分を挿入することを含み、
前記１つまたは複数のオブジェクトグループは、少なくとも２つのオブジェクトグループを含み、
前記１つまたは複数の中間会話フレーミング部分は、前記少なくとも２つのオブジェクトグループの、１つまたは複数のそれぞれのペア間に挿入される、コンピュータ実装方法。
【請求項２】
前記１つまたは複数のオブジェクトを識別することは、１つまたは複数の言語オブジェクトおよび１つまたは複数の非言語オブジェクトを識別することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記１つまたは複数のオブジェクトをグループ化することは、
連続する言語オブジェクトをグループ化すること、
連続する非言語オブジェクトをグループ化すること、
前記電子会話のシーケンス情報を保持すること
を含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記会話フレーミングを適用することは、非言語オブジェクトのコンテンツを自動的に識別すること、前記非言語オブジェクトのテキスト説明を含めることを含む、請求項２または３に記載のコンピュータ実装方法。
【請求項５】
前記電子会話を分析することは、少なくとも１つのルックアップテーブルに基づいて、識別されたオブジェクトのテキスト表現を提供することを含む、請求項１乃至４のいずれか一項に記載のコンピュータ実装方法。
【請求項６】
前記会話フレーミングを適用することは、オブジェクトグループの前、または２つのオブジェクトグループの間に、事前定義された会話フレーム部分を挿入するための会話参照ポイントを使用することをさらに含み、前記参照ポイントは、前記電子会話を分析する際に識別され、新しいオブジェクトグループの開始を示す、請求項１乃至５のいずれか一項に記載のコンピュータ実装方法。
【請求項７】
前記会話フレーミングを適用することは、前記音声インタフェース会話プレゼンテーションの冒頭に、導入会話フレーミング部分を挿入することをさらに含む、請求項１乃至６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
前記導入会話フレーミング部分は、前記電子会話の１または複数の参加者の識別を含む、請求項７に記載のコンピュータ実装方法。
【請求項９】
前記会話フレーミングを適用することは、最後のオブジェクトグループと前のオブジェクトグループとの間に結論会話フレーミング部分を挿入することをさらに含み、前記前のオブジェクトグループは、前記最後のオブジェクトグループの直前にある、請求項１乃至８のいずれか一項に記載のコンピュータ実装方法。
【請求項１０】
前記電子会話内の１つまたは複数のオブジェクトを識別することは、前記電子会話内のオブジェクトのエンコードを分析することを含む、請求項１乃至９のいずれか一項に記載のコンピュータ実装方法。
【請求項１１】
前記電子会話内のオブジェクトのエンコードを分析することは、各オブジェクトが含むヘッダー情報を使用することを含み、前記ヘッダー情報は、前記１つまたは複数のオブジェクトが前記１つまたは複数のオブジェクトグループにグループ化される基となるオブジェクトタイプを示す、請求項１０に記載のコンピュータ実装方法。
【請求項１２】
会話フレーミングを適用することは、省略形のテキストを展開すること、省略形のテキストを所定の位置に残すこと、または省略形のテキストを別の言語のテキストで置き換えることのうちの１つまたは複数をさらに含む、請求項１乃至１１のいずれか一項に記載のコンピュータ実装方法。
【請求項１３】
会話フレーミングを適用することは、グラフィカル記号をグラフィカル記号のテキスト説明に変換することをさらに含む、請求項１乃至１２のいずれか一項に記載のコンピュータ実装方法。
【請求項１４】
音声インタフェースプレゼンテーションの方が表示インタフェースよりも適したプレゼンテーション形式であることを、動作コンテキストが示すという決定がなされた場合、ユーザに音声クエリを提示すること、
前記音声クエリに対する音声応答を受信すること、
前記音声応答に基づいて、前記音声インタフェース会話プレゼンテーションが前記音声出力デバイスから出力されるようにすること
をさらに含む、請求項１乃至１３のいずれか一項に記載のコンピュータ実装方法。
【請求項１５】
前記電子会話が、テキスト部分と、画像、グラフィカル記号、およびユニフォームリソースロケーターのうちの少なくとも１つとを含む、請求項１乃至１４のいずれか一項に記載のコンピュータ実装方法。
【請求項１６】
デバイスのコンテキストを判定すること、
前記デバイスのコンテキストが、視覚表示よりも音声出力の方が適しているコンテキストである場合、前記音声インタフェース会話プレゼンテーションが前記音声出力デバイスを介して出力されるようにすること、
前記デバイスのコンテキストが、音声出力よりも視覚表示の方が適しているコンテキストである場合、前記電子会話がディスプレイデバイスに表示されるようにすること
をさらに含む、請求項１乃至１５のいずれか一項に記載のコンピュータ実装方法。
【請求項１７】
システムであって、
１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに動作を実行させるソフトウェア命令を格納した非一時的コンピュータ可読媒体に結合された１つまたは複数のプロセッサ
を備え、前記動作は、
複数のオブジェクトを含む電子会話における１つまたは複数のオブジェクトを識別することであって、前記複数のオブジェクトは、異なるメディアタイプのものである、前記識別すること、
前記電子会話を分析し、前記電子会話の会話構造を判定すること、
前記電子会話の会話構造に基づいて、前記１つまたは複数のオブジェクトに会話フレーミングを適用し、代替インタフェース会話プレゼンテーションを生成すること、
非表示出力デバイスによる出力のために構成された少なくとも一部を有する代替インタフェース会話プレゼンテーションを提供すること
を含み、
前記会話フレーミングを適用することは、オブジェクトグループのペア間に１つまたは複数の中間会話フレーミング部分を挿入することを含み、
前記１つまたは複数のオブジェクトグループは、少なくとも２つのオブジェクトグループを含み、
前記１つまたは複数の中間会話フレーミング部分は、前記少なくとも２つのオブジェクトグループの、１つまたは複数のそれぞれのペア間に挿入される、システム。
【請求項１８】
前記１つまたは複数のオブジェクトを識別することは、１つまたは複数の言語オブジェクトおよび１つまたは複数の非言語オブジェクトを識別することを含む、請求項１７に記載のシステム。
【請求項１９】
前記１つまたは複数のオブジェクトを識別することは、前記１つまたは複数のオブジェクトのエンコードを分析することを含む、請求項１７または１８に記載のシステム。
【請求項２０】
１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに動作を実行させるソフトウェア命令を備えるコンピュータプログラムであって、前記動作は、
複数のオブジェクトを含む電子会話における１つまたは複数のオブジェクトを識別することであって、前記複数のオブジェクトは、異なるメディアタイプのものである、前記識別すること、
前記電子会話を分析し、前記電子会話の会話構造を判定すること、
前記電子会話の会話構造に基づいて、前記１つまたは複数のオブジェクトに会話フレーミングを適用し、代替インタフェース会話プレゼンテーションを生成すること、
非表示出力デバイスによる出力のために構成された少なくとも一部を有する代替インタフェース会話プレゼンテーションを提供すること
を含み、
前記会話フレーミングを適用することは、オブジェクトグループのペア間に１つまたは複数の中間会話フレーミング部分を挿入することを含み、
前記１つまたは複数のオブジェクトグループは、少なくとも２つのオブジェクトグループを含み、
前記１つまたは複数の中間会話フレーミング部分は、前記少なくとも２つのオブジェクトグループの、１つまたは複数のそれぞれのペア間に挿入される、コンピュータプログラム。
【請求項２１】
前記１つまたは複数のオブジェクトを識別することは、１つまたは複数の言語オブジェクトおよび１つまたは複数の非言語オブジェクトを識別することを含む、請求項２０に記載のコンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
モバイルデバイスのユーザは、電子会話に参加できる。電子会話は、混合メディア（例えば、１つまたは複数のテキストメッセージ、絵文字などの記号、省略されたテキスト短縮形、画像、ビデオ、マルチメディアオブジェクト、ユニフォームリソースロケーターなどの他のリソースへのリンクなど）を含む。ユーザは、ディスプレイ上で電子会話を閲覧することが適切でない設定にある場合がある（例えば、ユーザが車両を操作している場合）。従って、音声などの代替インタフェースを介した電子会話のプレゼンテーションは、あるモバイルデバイスユーザにとって有用であり得る。
【０００２】
本明細書で提供される背景の説明は、本開示の状況を概略的に提示することを目的としている。この背景技術の欄において記載される限りにおいて、現時点で明記されている本発明者らの取り組み、ならびにその他、出願時に先行技術としてみなされない記載の態様は、明示的にも黙示的にも、本開示に対する先行技術として認めたものではない。
【発明の概要】
【０００３】
いくつかの実装形態は、一般に電子メッセージングに関連し、特に、音声インタフェースまたは他の非表示インタフェースのような代替インタフェース（例えば、非表示インタフェース）における少なくとも部分的なプレゼンテーションのために電子会話を解析する方法およびシステムに関連する。
【０００４】
いくつかの実装形態は、コンピュータ実装方法を含み得る。方法は、複数のオブジェクトを含む電子会話内の１つまたは複数のオブジェクトを識別することであって、複数のオブジェクトは、異なるメディアタイプのものである、識別すること、１つまたは複数のオブジェクトを１つまたは複数のオブジェクトグループにグループ化することであって、各オブジェクトグループは、少なくとも１つのオブジェクトを含む、グループ化することを含み得る。方法は、１つまたは複数のオブジェクトグループに基づいて電子会話を分析して電子会話の会話構造を決定すること、電子会話の会話構造に基づいて１つまたは複数のオブジェクトグループに会話フレーミング（conversational framing）を適用して音声インタフェース会話プレゼンテーションを生成することも含み得る。電子会話のオブジェクトは、各メッセージまたは会話の一部内の情報に基づいて決定され得る。例えば、マルチメディアメッセージング会話には、各メッセージまたは会話の一部のコンテンツのタイプを示すヘッダー情報を含む会話内のオブジェクトのエンコードが存在し得る。例えば、テキスト部分は、ヘッダーまたはメッセージの他の部分に示される第１のタイプを有し、画像は、ヘッダーまたは他の部分で示される第２のタイプを有するなどの場合がある。従って、電子会話を分析し、電子会話の会話構造を決定することは、例えば、各オブジェクトが含むヘッダー情報を使用して、電子会話が含むオブジェクトのエンコードを分析することを含んでよく、ヘッダー情報は、１つまたは複数のオブジェクトが１つまたは複数のオブジェクトグループにグループ化される基となるオブジェクトタイプを示す。方法は、さらに、音声出力デバイスによる出力のために構成された前記音声インタフェース会話プレゼンテーションを提供することを含み得る。
【０００５】
いくつかの実装形態では、１つまたは複数のオブジェクトを識別することは、１つまたは複数の言語オブジェクトおよび１つまたは複数の非言語オブジェクトを識別することを含み得る。１つまたは複数のオブジェクトをグループ化することは、連続する言語オブジェクトをグループ化すること、連続する非言語オブジェクトをグループ化すること、および電子会話のシーケンス情報を保持することを含み得る。いくつかの実装形態では、各グループが、同じ（オブジェクト）タイプの１つまたは複数のオブジェクトを含む。いくつかの実装形態では、会話フレーミングを適用することは、非言語オブジェクトのコンテンツを自動的に識別すること、非言語オブジェクトのテキスト説明を含めることを含み得る。
【０００６】
いくつかの実装形態では、会話フレーミングを適用することは、オブジェクトグループの前、または２つのオブジェクトグループの間に、事前定義された会話フレーム部分を挿入するための会話参照ポイントを使用することを含むことができ、参照ポイントは、電子会話を分析する際に識別され、新しいオブジェクトグループの開始を示す。
【０００７】
会話フレーミングを適用することは、音声インタフェース会話プレゼンテーションの冒頭に、導入会話フレーミング部分を挿入することを含み得る。いくつかの実装形態では、導入会話フレーミング部分は、電子会話の１人または複数の参加者の識別を含み得る。
【０００８】
会話フレーミングを適用することは、１つまたは複数の中間会話フレーミング部分をオブジェクトグループのペア間に挿入することを含み得る。１つまたは複数のオブジェクトグループは、少なくとも２つのオブジェクトグループを含むことができ、１つまたは複数の中間会話フレーミング部分は、少なくとも２つのオブジェクトグループの、１つまたは複数のそれぞれのペア間に挿入され得る。
【０００９】
会話フレーミングを適用することは、最後のオブジェクトグループと前のオブジェクトグループとの間に結論会話フレーミング部分を挿入することを含むことができ、前のオブジェクトグループは、最後のオブジェクトグループの直前にある。電子会話内の１つまたは複数のオブジェクトを識別することは、電子会話内のオブジェクトのエンコードを分析することを含み得る。
【００１０】
電子会話を分析することは、少なくとも１つのルックアップテーブルに基づいて、識別されたオブジェクトのテキスト表現を提供することを含み得る。いくつかの実装形態では、ルックアップテーブルの各インデックスが少なくとも１つのテキスト表現に関連付けられるように、ルックアップテーブルは、オブジェクトに対応するインデックスと、インデックスに対応するテキスト表現とを含み得る。従って、分析は、例えば、グラフィカル記号の表現を言語要素として（例えば、テキスト説明として）提供することを含むことができ、記号要素を言語要素として表すことは、ルックアップテーブルを使用して、記号（例えば、絵文字）に対応する数値コードを検索し、テーブルからその記号の言語説明またはテキストを取り出し、会話の代替インタフェースプレゼンテーションのための要素としてその言語説明を提供することを含み得る。例えば、笑っている顔の絵文字が分析されて、「笑顔」などのテキストとして表され得る。従って、分析は、例えば、省略形のテキストを展開することも含むことができ（例えば、ＣＵＬ８ｔｒは、「後で会いましょう（see you later）」と展開され得る）、オブジェクト「ＣＵＬ８ｔｒ」または対応するインデックスは、「また後で会いましょう」というテキスト表現に関連付けられている。従って、会話フレーミングを適用することは、省略形のテキストを展開すること、省略形のテキストを所定の位置に残すこと、およびテキストを別の言語のテキストで置換することのうちの１つまたは複数を含み得る。会話フレーミングを適用することは、グラフィカル記号をグラフィカル記号のテキスト説明に変換することを含み得る。
【００１１】
方法は、音声インタフェースプレゼンテーションがプレゼンテーションの適切な形式であることを、動作コンテキストが示すという決定がなされた場合、ユーザに音声クエリを提示すること、および音声クエリに対する音声応答を受信することを含み得る。方法は、音声応答に基づいて、音声インタフェース会話プレゼンテーションが音声出力デバイスから出力されるようにすることをさらに含み得る。電子会話は、テキスト部分と、画像、グラフィカル記号、およびユニフォームリソースロケーターのうちの少なくとも１つとを含み得る。
【００１２】
方法は、デバイスのコンテキストを判定することを含み得る。方法は、デバイスのコンテキストが音声出力に適したものである場合（すなわち、プレゼンテーションの適切な形式）、音声インタフェース会話プレゼンテーションが音声出力デバイスを介して出力されるようにすること、デバイスのコンテキストが視覚表示に適したものである場合、電子会話をディスプレイデバイスに表示させることをさらに含み得る。デバイスのコンテキストを判定することは、例えば、デバイスの少なくとも１つのセンサ、特に音声出力デバイスまたはディスプレイデバイスの少なくとも１つのセンサを使用することを含み、それを介してデバイスの周囲の測定データが受信される。測定データは、デバイスのコンテキストを示し、例えば、ユーザが車両を運転していることを示すカメラ画像を含む場合があり、その結果、音声または他の非表示インタフェースによる電子会話のプレゼンテーションは、視覚的なインタフェースよりも適したプレゼンテーション形式である。
【００１３】
いくつかの実装形態は、１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに動作を実行させるソフトウェア命令を格納した非一時的コンピュータ可読媒体に結合された１つまたは複数のプロセッサを含むシステムを含むことができる。動作は、複数のオブジェクトを含む電子会話内の１つまたは複数のオブジェクトを識別することであって、複数のオブジェクトは異なるメディアタイプのものである、識別すること、電子会話を分析して電子会話の会話構造を決定することを含み得る。動作は、電子会話の会話構造に基づいて、１つまたは複数のオブジェクトに会話フレーミングを適用し、代替インタフェース会話プレゼンテーションを生成することも含み得る。動作はさらに、非表示出力デバイスによる出力のために構成された少なくとも一部を有する代替インタフェース会話プレゼンテーションを提供することを含み得る。
【００１４】
１つまたは複数のオブジェクトを識別することは、１つまたは複数の言語オブジェクトおよび１つまたは複数の非言語オブジェクトを識別することを含み得る。１つまたは複数のオブジェクトを識別することは、１つまたは複数のオブジェクトのエンコードを分析することを含み得る。
【００１５】
いくつかの実装形態は、１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに動作を実行させるソフトウェア命令を格納した非一時的コンピュータ可読媒体を含み得る。動作は、複数のオブジェクトを含む電子会話内の１つまたは複数のオブジェクトを識別することであって、複数のオブジェクトは異なるメディアタイプのものである、識別すること、電子会話を分析して電子会話の会話構造を決定することを含み得る。動作は、電子会話の会話構造に基づいて、１つまたは複数のオブジェクトに会話フレーミングを適用し、代替インタフェース会話プレゼンテーションを生成することも含み得る。動作はさらに、非表示出力デバイスによる出力のために構成された少なくとも一部を有する代替インタフェース会話プレゼンテーションを提供することを含み得る。１つまたは複数のオブジェクトを識別することは、１つまたは複数の言語オブジェクトおよび１つまたは複数の非言語オブジェクトを識別することを含み得る。
【図面の簡単な説明】
【００１６】
【図１】本明細書に記載の１つまたは複数の実装形態に使用することができる例示的なシステムおよびネットワーク環境のブロック図である。
【図２】いくつかの実装形態による、音声インタフェースでのプレゼンテーションのために電子会話を解析する例示的な方法を示すフロー図である。
【図３】ＡおよびＢは、いくつかの実装形態による、解析の前後の電子会話の図である。
【図４】いくつかの実装形態による、会話フレーミングにより解析および拡張された例示的な電子会話の図である。
【図５】本明細書に記載の１つまたは複数の実装形態に使用できる例示的なデバイスのブロック図である。
【発明を実施するための形態】
【００１７】
本明細書で提供されるシステムおよび方法は、いくつかの従来のメッセージングシステムおよび方法の１つまたは複数の欠陥を克服し得る。例えば、電子メッセージングシステムは、ユーザが他のユーザと電子会話（例えば、電話、タブレット、ウェアラブルデバイス、コンピュータなどの電子デバイスを使用して行われ、チャットまたはメッセージングプラットフォーム、ソーシャルネットワークなどの電子プラットフォームによって仲介される会話）を行うことを可能にする。電子会話は、ユーザが受信されたメッセージを閲覧し、メッセージを送信し、電子会話への参加者を追加または削除し、会話を保存するなどのためのユーザインタフェースを提供するチャットまたはメッセージングアプリケーションを介して実行され得る。メッセージは、言語メッセージ、例えばテキスト、および非言語メッセージ、例えば、画像、ビデオ、ＵＲＬ、インタラクティブオブジェクト（例えば、招待、支払いの通知）、コンピュータファイルなどを含み得る。
【００１８】
電話、ウェアラブルデバイス、ヘッドマウントデバイス、タブレット、パーソナルコンピュータなどのモバイルデバイスを簡単に利用できるため、ユーザは、さまざまな設定やコンテキストにおいて互いに電子会話に参加することが可能である。ユーザが電子会話に参加している可能性のある設定およびコンテキストのいくつかは、会話の視覚的な表示に適さない場合がある。いくつかの従来のメッセージングシステムは、会話のための視覚表示ユーザインタフェース以外の代替インタフェースを提供しないか、効率的ではない代替インタフェースを提供する場合があり、電子会話を効率的に提示することがユーザにとって有用であり得る。
【００１９】
例えば、いくつかの従来のメッセージングシステムは、会話を提示するための代替インタフェース、例えば、会話の音声インタフェースプレゼンテーションなどを提供し得る。しかしながら、このようなプレゼンテーションは、１つまたは複数の制限のために有用でない場合がある。例えば、会話の従来の音声プレゼンテーションのいくつかは、非言語的な会話要素の逐語的な音声出力（例えば、他のリソースへのリンク、画像、ビデオ、絵文字、省略形テキストなど）を含み得る。非言語アイテムのそのような逐語的な音声出力は、ユーザの時間の非効率的な使用であり、プロセッサ利用、バッテリーまたは電力使用、メモリ利用などに関しても非効率的である可能性がある。例えば、対応するウェブページのタイトル（例えば、「Google Pixel、素晴らしいレビューでリリース」）ではなく、ＵＲＬ全体（例えば、http://www.technologynews.com/consumer/smartphone/2017/oct/google-pixel-released-to-great-reviews/）の音声プレゼンテーション（例えば、スピーカーデバイスを使用）には、より大きなバッテリー電力とプロセッサ利用が必要とされる可能性があり、前者のプレゼンテーションが、ユーザにとってより効果的である。
【００２０】
従来のメッセージングシステムは、代替インタフェースプレゼンテーションを提供するときに非言語的会話要素を認識しないか、代替インタフェースプレゼンテーションのための非言語的要素を効率的に解釈またはフォーマットしない場合がある。さらに、従来のメッセージングシステムは、ユーザがコンテキストを収集し、代替インタフェースプレゼンテーション内の会話の流れに従うことができるように、代替インタフェースでのプレゼンテーションのための会話フレーミングを提供しない場合がある。
【００２１】
本明細書で説明する例示的なシステムおよび方法は、従来のメッセージングシステムの１つまたは複数の欠陥を克服して、非言語会話要素を処理し、会話フレーミングも提供する電子会話の代替インタフェースプレゼンテーションをユーザに提供することができる。いくつかの従来のメッセージングシステムの技術的な問題は、そのようなシステムが非言語的な会話要素を解釈せず、会話の代替インタフェースプレゼンテーションのための会話フレーミングを提供しないことであり得る。さらに、代替インタフェースを提供する従来のシステムは、デバイスの計算サイクル、メモリ使用量および／または電力使用量に関して非効率的である可能性のある逐語的な非言語アイテムを提示する代替インタフェースプレゼンテーションを生成する可能性がある。
【００２２】
開示される主題は、電子会話の代替インタフェースプレゼンテーション（例えば、マルチメディアチャット会話の音声表示）を生成する特定の技術に関する。代替インタフェースプレゼンテーションは、コンピュータ上のプロセスをインスタンス化して会話を解析し、会話内のオブジェクトとそれらのオブジェクトのタイプ（例えば、言語または非言語）を決定することにより、会話を解析することに基づく。コンピュータ上のプロセスは、会話オブジェクトの１つまたは複数のグループを決定し、１つまたは複数のグループに対し会話フレーミングを提供し得る。
【００２３】
特定の実装形態では、次の利点のうちの１つまたは複数を実現し得る。本明細書で説明する方法およびシステムに基づいて会話の代替インタフェースプレゼンテーションを生成する利点は、代替インタフェースプレゼンテーションが、（例えば、表示インタフェースが適切でない場合にユーザがメッセージを受信できるようにすることにより）ユーザにとってより効率的であり得ること、およびプレゼンテーションを提供するデバイスにとってより効率的であり得ること（例えば、計算リソース、バッテリーまたは電力リソース、および／またはメモリリソースの節約）である。別の利点は、デバイスが、非言語的な会話要素を解釈し、それらの要素をより効率的に提示することに基づいて、（例えば、非言語オブジェクトのテキストによる言語要約を提示することにより）より短いプレゼンテーション期間で会話を提示できることであり、その結果、処理操作が少なくなり、システム全体の待ち時間が短縮されることである。会話言語の規則で提示する別の利点は、インタフェースプレゼンテーションの新しい形式を学習する必要がなくなることを含む（例えば、会話言語に精通していることにより、ユーザは会話音声インタフェースを理解するためのトレーニングを必要としない場合がある）。デバイスの使用のためのトレーニング期間を排除することに加えて、会話音声インタフェースで提示することは、ユーザの認知負荷を軽減し、潜在的にデバイスの使用効率を改善するのに役立ち得る。
【００２４】
いくつかの実装形態のさらなる利点は、代替インタフェースで会話を提示する決定が、ユーザの許可により取得されるユーザのコンテキスト（例えば、デバイスの位置、デバイスの移動、カレンダー上のスケジュールされたアクティビティなどのうちの１つまたは複数によって示される）に基づき得ることであり、これにより、使用のコンテキストにふさわしい、または適したインタフェースを使用して会話が自動的に提示されるようになり、これにより、デバイスのより安全な使用（例えば、ユーザが車両を操作しているとき）、従来のユーザインタフェースが不適切なコンテキストでのデバイスの使用（例えば、ユーザがアクティビティ、例えば料理、トレーニング、掃除などに従事している場合）、よりタイムリーなデバイスの使用（例えば、ユーザはよりタイムリーな方法で会話に参加できるようになり得る）、および対話の改善（例えば、ユーザが使用コンテキストまたは設定を変更したときに会話に参加できる）などの利点がもたらされ得る。
【００２５】
図１は、本明細書で説明されるいくつかの実装形態で使用され得る例示的なネットワーク環境１００のブロック図を示している。いくつかの実装形態では、ネットワーク環境１００は、１つまたは複数のサーバシステム、例えば図１の例のサーバシステム１０２を含む。サーバシステム１０２は、例えばネットワーク１３０と通信することができる。サーバシステム１０２は、サーバデバイス１０４およびデータベース１０６または他の記憶デバイスを含み得る。ネットワーク環境１００は、ネットワーク１３０を介して、相互に、および／またはサーバシステム１０２と通信することができる１つまたは複数のクライアントデバイス、例えば、クライアントデバイス１２０、１２２、１２４、および１２６を含み得る。ネットワーク１３０は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、スイッチまたはハブ接続などのうちの１つまたは複数を含む、任意のタイプの通信ネットワークであり得る。いくつかの実装形態では、ネットワーク１３０は、例えばピアツーピア無線プロトコルを使用した、デバイス間のピアツーピア通信１３２を含み得る。
【００２６】
説明を簡単にするために、図１は、サーバシステム１０２、サーバデバイス１０４、およびデータベース１０６の１つのブロックを示し、クライアントデバイス１２０、１２２、１２４、および１２６の４つのブロックを示している。サーバシステム１０２、１０４、および１０６を表すブロックは、複数のシステム、サーバデバイス、およびネットワークデータベースを表すことができ、ブロックは、示されているものとは異なる構成で提供され得る。例えば、サーバシステム１０２は、ネットワーク１３０を介して他のサーバシステムと通信できる複数のサーバシステムを表し得る。いくつかの例では、データベース１０６および／または他の記憶デバイスは、サーバデバイス１０４とは別個のサーバシステムブロックで提供され、ネットワーク１３０を介してサーバデバイス１０４および他のサーバシステムと通信することができる。また、任意の数のクライアントデバイスが存在し得る。
【００２７】
各クライアントデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、ポータブルまたはモバイルデバイス、カメラ、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、ＴＶセットトップボックスまたはエンターテインメントデバイス、ウェアラブルデバイス（ディスプレイメガネまたはゴーグル、ヘッドマウントディスプレイ（ＨＭＤ）、腕時計、ヘッドセット、アームバンド、ジュエリーなど）、仮想現実（ＶＲ）および／または拡張現実（ＡＲ）対応デバイス、携帯情報端末（ＰＤＡ）、メディアプレーヤー、ゲームデバイスなど、任意のタイプの電子デバイスであり得る。一部のクライアントデバイスは、データベース１０６または他のストレージに類似したローカルデータベースも有し得る。他の実装形態では、ネットワーク環境１００は、示された構成要素の全てを有しない場合があり、かつ／または本明細書に記載されたものの代わりにまたはそれに加えて他のタイプの要素を含む他の要素を有し得る。
【００２８】
様々な実装形態において、エンドユーザＵ１、Ｕ２、Ｕ３、およびＵ４は、会話の１人または複数の参加者を含むことができ、それぞれのクライアントデバイス１２０、１２２、１２４、および１２６を使用してサーバシステム１０２および／または相互に通信することができる。いくつかの例では、ユーザＵ１、Ｕ２、Ｕ３、およびＵ４は、それぞれのクライアントデバイスおよび／またはサーバシステム１０２上で実行されるアプリケーションを介して、および／またはサーバシステム１０２上で実装されるネットワークサービス、例えば画像共有サービス、メッセージングサービス、ソーシャルネットワークサービス、または他のタイプのネットワークサービスを介して相互に対話することができる。例えば、それぞれのクライアントデバイス１２０、１２２、１２４、および１２６は、１つまたは複数のサーバシステム（例えば、サーバシステム１０２）との間でデータを通信することができる。
【００２９】
いくつかの実装形態では、サーバシステム１０２は、各クライアントデバイスがサーバシステム１０２および／またはネットワークサービスにアップロードされた通信コンテンツまたは共有コンテンツを受信できるように、適切なデータをクライアントデバイスに提供し得る。いくつかの例では、ユーザは、音声またはビデオ会議、音声、ビデオ、またはテキストチャット、または他の通信モードまたはアプリケーションを介して対話できる。いくつかの例では、ネットワークサービスは、ユーザがさまざまな通信を実行し、リンクや関連付けを形成し、画像、画像構成（例えば、１つまたは複数の画像を含むアルバム、画像コラージュ、動画など）、音声データ、その他のタイプのコンテンツなどの共有コンテンツをアップロードおよび投稿し、さまざまな形式のデータを受信し、および／または社会関連機能を実行することを可能にする任意のシステムを含み得る。例えば、ネットワークサービスは、ユーザが特定または複数の他のユーザにメッセージを送信し、ネットワークサービス内の他のユーザとの関連付けの形でソーシャルリンクを形成し、ユーザリスト、フレンドリスト、または他のユーザグループで他のユーザをグループ化し、テキスト、画像、画像構成、音声シーケンスまたは録音、またはネットワークサービスの指定されたセットのユーザによるアクセスのための他の種類のコンテンツを含むコンテンツを投稿または送信し、ライブビデオ、音声、および／またはテキストビデオ会議、またはサービスの他のユーザとのチャットなどに参加することを可能にする。いくつかの実装形態では、「ユーザ」は、１つまたは複数のプログラムまたは仮想エンティティ、およびシステムまたはネットワークとのインタフェースを持つ人物を含み得る。
【００３０】
ユーザインタフェースは、クライアントデバイス１２０、１２２、１２４、１２６（代替的にはサーバシステム１０２）上での、画像、画像構成、データ、および他のコンテンツ、ならびに通信、プライバシー設定、通知、および他のデータの表示を可能にできる。そのようなインタフェースは、クライアントデバイス上のソフトウェア、サーバデバイス上のソフトウェア、および／またはサーバデバイス１０４上で実行されるクライアントソフトウェアとサーバソフトウェアとの組み合わせ、例えばサーバシステム１０２と通信するアプリケーションソフトウェアまたはクライアントソフトウェアを使用して表示され得る。ユーザインタフェースは、クライアントデバイスまたはサーバデバイスのディスプレイデバイス、例えばディスプレイスクリーン、プロジェクタなどによって表示され得る。いくつかの実装形態では、サーバシステム上で実行されるアプリケーションプログラムは、クライアントデバイスと通信して、クライアントデバイスでユーザ入力を受信し、クライアントデバイスで視覚データ、音声データなどのデータを出力できる。
【００３１】
本明細書で説明される機能の様々な実装形態は、任意のタイプのシステムおよび／またはサービスを使用し得る。例えば、ソーシャルネットワーキングサービス、画像収集および共有サービス、アシストメッセージングサービス、または他のネットワークサービス（例えば、インターネットに接続された）は、クライアントおよびサーバデバイスによってアクセスされる１つまたは複数の説明された機能を含み得る。任意のタイプの電子デバイスが、本明細書で説明されている機能を利用できる。いくつかの実装形態は、コンピュータネットワークから切断された、または断続的に接続されたクライアントまたはサーバデバイス上に、本明細書に記載の１つまたは複数の機能を提供することができる。いくつかの例では、表示デバイスを含むまたは表示デバイスに接続されたクライアントデバイスは、（例えば、通信ネットワークを介して接続されていない）クライアントデバイスのローカル記憶デバイスに格納された画像を調べて表示でき、ユーザにより閲覧可能な、本明細書に記載されるような機能および結果を提供し得る。
【００３２】
図２は、いくつかの実装形態による、音声インタフェースなどの代替インタフェースでのプレゼンテーションのために電子会話を解析し、会話的にフレーム化するための例示的な方法２００（例えば、コンピュータ実装方法）を示すフロー図である。
【００３３】
いくつかの実装形態では、方法２００は、例えば図１に示されるようなサーバシステム１０２上で実装され得る。他の実装形態では、方法２００の一部またはすべては、図１に示される１つまたは複数のクライアントデバイス１２０、１２２、１２４、または１２６、１つまたは複数のサーバデバイス、および／またはサーバデバイスおよびクライアントデバイスの両方上で実装され得る。記載の例では、実施するシステムは、１つまたは複数のデジタルハードウェアプロセッサまたは処理回路（「プロセッサ」）と、１つまたは複数の記憶デバイス（例えば、データベース１０６または他の記憶装置）とを含む。いくつかの実装形態では、１つまたは複数のサーバおよび／またはクライアントの異なる構成要素は、方法２００の異なるブロックまたは他の部分を実行することができる。
【００３４】
いくつかの実装形態は、ユーザ入力および／またはデバイスコンテキスト（ユーザの許可を得て）に基づいて方法２００を開始することができる。例えば、ユーザは、表示されたユーザインタフェースから方法２００の開始を選択した可能性がある。いくつかの実装形態では、方法２００またはその一部は、ユーザ入力を介したユーザによるガイダンスで実行され得る。例えば、いくつかの実装形態は、音声インタフェースプレゼンテーションがプレゼンテーションの適切な形式であることを、動作コンテキストが示すという決定がなされた場合、ユーザに音声クエリを提示すること、および音声クエリに対する音声応答を受信することを含み得る。実装形態は、音声応答に基づいて、音声インタフェース会話プレゼンテーションが音声出力デバイスから出力されるようにすることを含み得る。システムは、ユーザからの明示的な許可がない限り、デバイスコンテキスト、場所などのようなユーザ情報を使用、処理、または格納しない。
【００３５】
いくつかの実装形態では、デバイスのコンテキストが音声（または他の非表示）インタフェースによる電子会話のプレゼンテーションが、プレゼンテーションの適切な形式であると判断された場合（例えば、ユーザが車を運転しているというコンテキスト、またはユーザが物理的な制限またはディスプレイを閲覧するのに適さない周囲などの他の制限のために非視覚インタフェースを要求したというコンテキストをデバイスが検出した場合）、方法２００は自動的に呼び出され得る（またはユーザの許可で自動的に呼び出され得る）。もう１つのコンテキストは、ユーザのデバイスのバッテリー残量が少ない場合、またはユーザが電源から離れている場合であり、この場合、ディスプレイ画面をオフにして音声ユーザインタフェースを提示することは、バッテリー容量を節約するために有利であり得る。コンテキストは、アプリケーションまたはシステムがコンテキスト情報を取得するための明示的な許可がユーザから与えられた場合に判定され得る。
【００３６】
いくつかの実装形態では、方法２００または方法の一部は、デバイスによって自動的に開始され得る。例えば、方法（またはその一部）は、定期的に実行されるか、または、１つまたは複数の特定のイベントまたは条件の発生に基づいて実行され得る。例えば、そのようなイベントまたは条件は、デバイス（例えば、ユーザデバイス）によって受信された、またはデバイスにアップロードされた、またはデバイスによりアクセス可能なメッセージ、方法２００の最後の実行以降に満了した所定の期間、および／または方法２００を実装するデバイスの設定で指定できる、発生する１つまたは複数の他のイベントまたは条件を含み得る。いくつかの実装形態では、そのような条件は、（ユーザの同意を得てデバイスまたは方法からアクセス可能な）ユーザの保存されたカスタム設定でユーザにより事前に指定され得る。いくつかの例では、デバイス（サーバまたはクライアント）は、電子会話メッセージを受信する１つまたは複数のアプリケーションにアクセスして方法２００を実行し得る（ユーザの同意が受信された場合）。別の例では、カメラ、携帯電話、タブレットコンピュータ、ウェアラブルデバイス、または他のクライアントデバイスは、電子会話メッセージを受信し、方法２００を実行することができる。加えて、または代替的に、クライアントデバイスは、ネットワークを介して１つまたは複数の電子会話メッセージをサーバに送信でき、サーバは、方法２００を使用してメッセージを処理できる。
【００３７】
ブロック２０２では、電子会話内の１つまたは複数のオブジェクトが識別される。システムがユーザの電子会話にアクセスする前に、ユーザの許可が取得される。電子会話は、様々な異なるタイプのメッセージを有する会話などの混合メディア電子会話を含み得る。メッセージタイプは、テキストメッセージ、音声メッセージ、画像、ビデオ、記号（例えば、絵文字）、省略形のテキスト、他の言語のテキスト、インタラクティブオブジェクト、マルチメディアオブジェクト、通貨、仮想ギフト、インタラクティブ仮想オブジェクト、ゲームオブジェクトなどを含み得る。会話のオブジェクトは、各メッセージまたは会話の一部内の情報に基づいて決定され得る。例えば、マルチメディアメッセージング会話には、各メッセージまたは会話の一部のコンテンツのタイプを示すヘッダー情報を含む会話内のオブジェクトのエンコードが存在し得る。例えば、テキスト部分は、ヘッダーまたはメッセージの他の部分に示される第１のタイプを有し、画像は、ヘッダーまたは他の部分で示される第２のタイプを有するなどの場合がある。処理は２０４に続く。
【００３８】
２０４では、２０２で識別されたオブジェクトが、任意選択で１つまたは複数のオブジェクトグループにグループ化されることができ、各グループは、同じオブジェクトタイプ（例えば、グループ化された言語オブジェクト、画像、ＵＲＬなどのようなタイプによりグループ化された非言語オブジェクト）の１つまたは複数のオブジェクトを含む。例えば、会話が２つのテキストメッセージとそれに続く３つの画像、次にテキストメッセージおよび絵文字を含む場合、グループ化は、２つのテキストメッセージを含む第１のグループ、３つの画像の第２のグループ、テキストメッセージの第３のグループ、および絵文字を有する第４のグループを含み得る。別の例は、テキストの後にビデオとＵＲＬが続き、さらにテキストが続き、三目並べボードゲームオブジェクトが続くものを含む。オブジェクトのグループ化は、言語的および非言語的オブジェクトに基づいて、または独立したグループ、例えば、言語、ビデオ、画像、インタラクティブオブジェクトなどに基づいて行うことができ、適切な会話フレーミングが使用される。グループは、会話内のメッセージのシーケンスに対応する情報を保存およびキャプチャするように形成および編成され得る。シーケンス情報は、会話フレーミングを提供する際に、および会話を提示する際に使用され得る。
【００３９】
別の例では、図３のＡの電子会話３００が解析され（例えば２０２で）、言語オブジェクト（３０２）、２つの非言語オブジェクト（３０４、３０６）、言語オブジェクト２（３０８）、および非言語オブジェクト（３１０）を含むと判定され得る。電子会話３００は、ブロック２０４に従ってグループ化されて、図３のＢのグループ化された会話３０１を生成することができ、グループ化された会話３０１は、第１の言語オブジェクトグループ３１２、第１の非言語グループ３１４、第２の言語グループ３１６、および第２の非言語グループ３１８を含む。処理は２０６に続く。
【００４０】
２０６では、会話の会話構造を決定するために会話が分析される。ユーザの許可は、電子会話を分析する前に取得される（例えば、分析の許可は、電子会話へのアクセスの許可と併せて提供されるか、または個別に提供され得る）。会話を分析することは、２０４からの１つまたは複数のグループを分析すること（グループ化が使用された場合）および／または２０２で識別されたオブジェクトを分析することを含み得る。分析は、会話の構造を決定し、会話フレーミングを提供するために使用され得る会話参照ポイントを識別する。会話参照ポイントは、オブジェクトグループのペア間の会話におけるポイントを含み得る。
【００４１】
会話の分析は、非言語オブジェクトまたはオブジェクトのグループの分析も任意選択で含み得る。分析は、非言語オブジェクトを識別すること、音声などの代替インタフェースでのプレゼンテーションに適している可能性があるオブジェクトの言語表現を提供することを含み得る。例えば、３つの画像オブジェクトのグループが分析され、（例えば、ヘッダー情報の分析を介して）画像タイプの３つのオブジェクトであると決定され、「３つの写真」または類似の言語会話要素として表され得る。別の例では、システムは、音声インタフェースで招待状、例えば、「送信者Ａは明日の午後１０時の彼の家でのパーティーにあなたを招待しました」を提示し得る。別の例では、システムは、音声インタフェースで支払いまたはギフトの受領、例えば、「送信者Ａが１０ドルをあなたに送信し、「これは昨日の映画のチケット代です」と述べました」を提示し得る。このような分析は、アニメーション画像や動画にも適用され得る。
【００４２】
分析は、システムまたはサービスを使用して、画像、アニメーション画像、またはビデオのコンテンツを識別し、非言語オブジェクトのコンテンツの標示を提供することも含み得る。画像、ビデオなどの非言語オブジェクトのコンテンツへのアクセス、および画像コンテンツの分析などを実行する処理は、ユーザの明示的な許可を受けて実行されることが可能である。そして、コンテンツ標示は、非言語オブジェクトの言語表現に含まれ得る。例えば、メッセージが、テキストオブジェクト（「これらの場所をチェックしてください」）、３つの画像オブジェクト（例えば、ビーチリゾートの３つの写真）、および最後のテキストオブジェクト（「どれが好きか教えてください」）を含む場合、３つの画像オブジェクトの分析は、画像コンテンツ分析のためにシステムに画像を送信すること、コンテンツ分析の結果を音声表現で利用することを含み得る。例えば、画像コンテンツ分析が、３つの画像がそれぞれビーチリゾートであるという結果を返すと、分析は、非言語画像オブジェクトの言語表現として「ビーチリゾートの３つの写真」などの言語表現を生成できる。分析のために非言語オブジェクトを外部システムに送信することに加えて、またはその代替として、非言語オブジェクトメタデータを使用して、非言語オブジェクトのコンテンツまたは特徴を決定し、コンテンツのローカル分析が実行され得る。
【００４３】
分析は、グラフィカル記号の表現を言語要素として（例えば、テキスト説明として）提供することを含み得る。例えば、笑っている顔の絵文字は、分析されて、「笑顔」などのテキストとして表され得る。記号要素を言語要素として表すプログラム分析は、ルックアップテーブルを使用して、記号（例えば、絵文字）に対応する数値コードを検索し、テーブルからその記号の言語説明またはテキストを取り出し、会話の代替インタフェースプレゼンテーションのための要素としてその言語説明を提供することを含み得る。
【００４４】
分析は、省略形のテキストを展開することも含み得る（例えば、ＣＵＬ８ｔｒは「また後で会いましょう（see you later）」と展開され得る）。省略形のテキストの展開は、テーブル検索またはその他の適切な方法で実現され得る。分析は、省略形のテキスト（または他の言語または非言語オブジェクト）を別の言語に翻訳することも含み得る。例えば、英語の省略形コードが使用されているが、ユーザがスペイン語話者である場合、システムは、英語の省略形コードを言語プレゼンテーションのためにスペイン語の単語に展開し得る。
【００４５】
別の例では、図３のＢの非言語グループ３１４が分析され、図４の言語表現４０４を生成することができる。また、図３のＢの第２の非言語グループ３１８が分析され、図４の言語表現４０８を生成することができる。処理は２０８に続く。
【００４６】
２０８において、会話フレーミングが分析された会話に適用される。例えば、会話フレーミングは、２０２のオブジェクト、２０４のオブジェクトのグループ、および／または２０６で生成された言語表現のうちの１つまたは複数に適用され得る。会話フレーミングは、メッセージの送信者に関する情報を任意選択で含むことができる導入会話フレーミング部分を含み得る。例えば、導入会話フレーミングは、「それは言います（It says）」を含んでもよく、または導入会話フレーミングは、送信者を参照して「メアリーは言います（Mary says）」などを含んでもよい。導入会話フレーミング部分は、音声インタフェース会話プレゼンテーション（または点字などの他の代替インタフェース会話プレゼンテーション、または音声および制限付きディスプレイの組み合わせなど）の冒頭に挿入され得る。
【００４７】
会話フレーミングは、「次にそれは言います（Then it say）」などの１つまたは複数の中間フレーミング部分を任意選択で含み得る。中間フレーミング部分の存在と数は、会話内のオブジェクトまたはオブジェクトのグループの数、または代替インタフェースにおけるプレゼンテーションのために解析およびフレーム化される会話の一部に依存し得る。中間会話フレーミング部分は、オブジェクトグループの１つまたは複数のそれぞれのペアの間に挿入され得る。
【００４８】
会話フレーミングは、最後のオブジェクトグループの前に（または最後のオブジェクトグループと、最後のオブジェクトグループの隣の前のオブジェクトグループとの間に）挿入される「そして次にそれは言います（And then it says）」または「そして最後にそれは言います（And finally it says）」などのオプションの結論会話フレーミング部分を含み得る。導入、中間、および／または結論会話のフレーミング部分は、言語オブジェクトまたは非言語オブジェクトの言語表現と組み合わせられ得る。例えば、第２の非言語グループ３１８（絵文字）は、結論会話フレーミング要素と組み合わせられて、絵文字の言語表現と結論会話フレーミング部分（例えば、言語表現４０８）とを含む会話要素を生成し得る。一部の実装形態は、「５０件の未読メッセージがあります。ジェシカとショーンはタイでの休暇について話し、いくつかの写真を交換し、１２月の第１週のチケットを見つけました。」のような、より長い概要（複数のメッセージの概要、メッセージ数の概要、複数の会話の概要など）を提供し得る。
【００４９】
例えば、図３のＢのグループ化された会話３０１は、図４に示されるような音声インタフェース会話プレゼンテーション４００を生成するために適用される会話フレーミングを有することができる。会話フレーミングは、導入会話フレーミング部分４０２、中間会話フレーミング部分４０６、および言語表現４０８（結論会話フレーミング部分を含む）を含むことができる。処理は２１０に続く。
【００５０】
２１０では、代替インタフェース会話プレゼンテーションが、出力として提供される。例えば、音声インタフェース会話プレゼンテーション４００は、スピーカー、ヘッドフォンなどの音声出力デバイスを介して再生するための出力として提供され得る。
【００５１】
図２では、様々なブロック（例えば、ブロック２０２〜２１０）が、順次実行されるものとして示されている。しかしながら、これらのブロックは、特定の実施形態に適するように便宜的に再配置されてもよく、これらのブロックまたはその一部は、いくつかの実施形態で同時に実行されてもよいことが理解されるであろう。また、いくつかの例では、さまざまなブロックが、削除され、追加のブロックに分割され、および／または他のブロックと組み合わせられ得ることも理解されよう。テーブルを使用して、テーブルの値に基づいて閾値を決定できる。
【００５２】
図３のＡおよびＢは、例示的な電子会話３００および例示的なグループ化された電子会話３０１の図を示す。電子会話３００は、第１の言語オブジェクト３０２（例えば、「これらは私が見つけることのできる最良の選択肢です」、または別の例では「これらは私が見つけることのできる最良の選択肢であるとユーザＡは言っています」）を含む。電子会話３００は、２つの非言語オブジェクト３０４および３０６（例えば、ＵＲＬ）を含む。電子会話３００は、第２の言語オブジェクト３０８（例えば、「どう思いますか？（What do you think?）」）に続き、非言語オブジェクト３１０（例えば、笑顔の絵文字）が続く。
【００５３】
グループ化された電子会話３０１は、第１の言語オブジェクトグループ３１２、第１の非言語オブジェクトグループ３１４、第２の言語オブジェクトグループ３１６、および第２の非言語オブジェクトグループ３１８を含む。
【００５４】
図４は、音声インタフェース会話プレゼンテーション４００の図を示し、これは、導入会話フレーミング４０２、第１の言語オブジェクトグループ３１２、第１の非言語オブジェクトグループ４０４の会話表現、中間会話フレーミング４０６、第２の言語オブジェクトグループ３１６、および第２の非言語オブジェクトグループ４０８の会話フレーミング（結論会話フレーミングを含む）を含む。
【００５５】
図５は、本明細書に記載の１つまたは複数の機能を実装するために使用することができる例示的なデバイス５００のブロック図である。一例では、デバイス５００を使用して、コンピュータデバイス、例えば、サーバデバイス（例えば、図１のサーバデバイス１０４）を実装し、本明細書で説明する適切な方法実装形態を実行することができる。デバイス５００は、任意の適切なコンピュータシステム、サーバ、または他の電子もしくはハードウェアデバイスであり得る。例えば、デバイス５００は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス（ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、ＴＶセットトップボックス、携帯情報端末（ＰＤＡ）、メディアプレーヤー、ゲームデバイス、ウェアラブルデバイスなど）であってよい。いくつかの実装形態では、デバイス５００は、プロセッサ５０２、メモリ５０４、およびＩ／Ｏインタフェース５０６を含む。
【００５６】
プロセッサ５０２は、プログラムコードを実行し、デバイス５００の基本動作を制御するための１つまたは複数のプロセッサおよび／または処理回路であり得る。「プロセッサ」は、データ、信号または他の情報を処理する任意の適切なハードウェアおよび／またはソフトウェアシステム、機構、またはコンポーネントを含む。プロセッサは、汎用中央処理ユニット（ＣＰＵ）、複数の処理ユニット、機能を達成するための専用回路、または他のシステムを有するシステムを含み得る。処理は特定の地理的位置に限定される必要はなく、または時間的な制限がある必要もない。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでその機能を実行し得る。処理の一部は、異なる時間および異なる場所で、異なる（または同じ）処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【００５７】
メモリ５０４は、通常、プロセッサ５０２によるアクセスのためにデバイス５００に設けられ、プロセッサにより実行される命令を格納するのに適した、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどの任意の適切なプロセッサ読み取り可能記憶媒体とすることができ、プロセッサ５０２とは別個に配置され、および／またはそれと一体化され得る。メモリ５０４は、オペレーティングシステム５０８、１つまたは複数のアプリケーション５１０、例えば、代替インタフェースプレゼンテーションアプリケーション５１２、他のアプリケーション５１４、およびアプリケーションデータ５２０を含む、プロセッサ５０２によってサーバデバイス５００上で動作するソフトウェアを格納することができる。いくつかの実装形態では、アプリケーション５１０は、プロセッサ５０２が本明細書に記載の機能、例えば、図２の方法のうちのいくつかまたは全てを実施することを可能とする命令を含み得る。
【００５８】
例えば、アプリケーション５１０は、本明細書で説明するように、電子会話解析および会話フレーミング、および他の機能、例えば、音声インタフェースまたは他の非表示インタフェースまたは非表示出力デバイスによる出力のために構成された会話を提供することができる音声インタフェースプレゼンテーションアプリケーション４１２を含み得る。いくつかの実装形態では、音声インタフェースプレゼンテーションアプリケーションは、デバイス５００の音声デバイスでの出力のための音声インタフェースプレゼンテーションを提供するために、１つまたは複数の電子会話メッセージを受信し、メッセージを解析し、解析されたメッセージに会話フレーミングを追加することを含み得る。他のアプリケーション５１４（またはエンジン）は、同様に、または代替的に、アプリケーション５１０、例えば、電子メールアプリケーション、ＳＭＳおよび他の電話通信アプリケーション、ウェブブラウザアプリケーション、メディアディスプレイアプリケーション、通信アプリケーション、ウェブホスティングエンジンまたはアプリケーション、ソーシャルネットワーキングエンジンまたはアプリケーションなどに含まれてもよい。あるいは、メモリ５０４内のソフトウェアのうちの任意のものは、他の任意の適切なストレージロケーションまたはコンピュータ可読媒体に格納され得る。加えて、メモリ５０４（および／または他の接続された記憶装置）は、電子会話メッセージ、電子会話メッセージのグループ、会話フレーミング要素、ユーザデータおよびプリファレンス、および本明細書に記載の機能で用いられる他の命令およびデータなどのアプリケーションデータを格納し得る。メモリ５０４および他の任意の種類の記憶装置（磁気ディスク、光ディスク、磁気テープ、または他の有形の媒体）は、「記憶装置」または「記憶デバイス」と見なすことができる。
【００５９】
例えば、アプリケーションデータ５２０は、グループ５２２およびフレーミング５２４を含み得る。例えば、グループ５２２は、グループ化された電子会話メッセージまたは部分（例えば、テキストグループ、画像グループ、ＵＲＬグループなど）を含み得る。会話フレーミング５２４は、音声または他のインタフェースによるプレゼンテーションのために電子会話グループをフレーム化するために使用され得る複数の会話フレーミング要素を含むことができる。例えば、会話フレーミング要素は、フレーミング部分のリストまたはテーブルに格納され得る。例えば、単一の会話フレーミング要素は、「写真（a picture）」、「＜Ｘ＞の写真（a picture of <X>）」、「動画（a video）」、「＜Ｘ＞の動画（a video of <X>）」、「ウェブリンク（a weblink）」、「＜Ｘ＞へのリンク（a link to <X>）」などを含み得る。類似タイプの複数のグループ化の会話フレーミング部分は、「いくつかの写真（some pictures）」、「＜Ｘ＞のいくつかの写真（some pictures of <X>）」などを含み得る。一部の実装形態では、機械学習を使用して、上記のＸで示されるような画像説明を決定できる（例えば、ユーザは画像をＸとして説明し、自動化されたアシスタントは、類似の画像をＸとして説明する）。
【００６０】
Ｉ／Ｏインタフェース５０６は、デバイス５００を他のシステムおよびデバイスとインタフェースすることを可能にするための機能を提供することができる。例えば、ネットワーク通信デバイス、記憶デバイス（例えば、メモリおよび／またはデータベース１０６）、および入力／出力デバイスは、Ｉ／Ｏインタフェース５０６を介して通信することができる。いくつかの実装形態では、Ｉ／Ｏインタフェースは、入力デバイス（キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど）および／または出力デバイス（表示デバイス、スピーカーデバイス、プリンター、モーター、触覚出力デバイスなど）を含むインタフェースデバイスに接続することができる。音声入力／出力デバイス５３０は、本明細書で説明されるように、音声入力を受信し、音声出力（例えば、音声インタフェース出力）を提供するために使用され得る入力および出力デバイスの一例である。音声入力／出力デバイス５３０は、ローカル接続（例えば、有線バス、無線インタフェース）および／またはネットワーク接続を介してデバイス５００に接続されることが可能であり、任意の適切なデバイスとすることができ、そのいくつかの例が以下に説明される。
【００６１】
説明を簡単にするために、図５は、プロセッサ５０２、メモリ５０４、Ｉ／Ｏインタフェース５０６、およびソフトウェアブロック５０８および５１０の各々について１つのブロックを示している。これらのブロックは、１つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、Ｉ／Ｏインタフェース、アプリケーション、および／またはソフトウェアモジュールを表すことができる。他の実装形態では、デバイス５００は、示された構成要素の全てを有しない場合があり、かつ／または本明細書に示されたものの代わりにまたはそれに加えて他のタイプの要素を含む他の要素を有し得る。サーバシステム１０２は、本明細書のいくつかの実装形態で説明されるように、動作を実行するものとして説明されているが、サーバシステム１０２または同様のシステム、またはそのようなシステムに関連する任意の適切な１つまたは複数のプロセッサの任意の適切なコンポーネントまたはコンポーネントの組合せが、説明されている動作を実行し得る。
【００６２】
クライアントデバイスは、本明細書で説明される機能、例えば図１に示されるクライアントデバイス１２０〜１２６と共に実装および／または使用され得る。クライアントデバイスの例は、デバイス５００と同様のいくつかのコンポーネント、例えばプロセッサ５０２、メモリ５０４、およびＩ／Ｏインタフェース５０６を含むコンピュータデバイスであり得る。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、およびアプリケーション、例えば、画像管理ソフトウェア、クライアントグループ通信アプリケーションソフトウェアなどは、メモリで提供され、プロセッサにより使用され得る。クライアントデバイスのためのＩ／Ｏインタフェースは、ネットワーク通信デバイス、および入出力デバイス、例えば、音をキャプチャするためのマイク、画像またはビデオをキャプチャするためのカメラ、音を出力するためのオーディオスピーカーデバイス、画像やビデオを出力するための表示デバイス、またはその他の出力デバイスに接続され得る。音声入力／出力デバイス５３０は、例えば、音声入力（例えば、音声コマンド）を受信し、音声出力（例えば、音声インタフェース）を提供するためにデバイス５００に接続される（または含まれる）ことが可能であり、マイク、スピーカー、ヘッドフォンなどのような適切なデバイスを含み得る。一部の実装形態は、音声出力デバイス、例えば、テキストを話す音声出力または合成を提供できる。
【００６３】
本明細書に記載の１つまたは複数の方法（例えば、方法２００）は、コンピュータプログラム命令またはコードによって実装することができ、それらはコンピュータ上で実行することができる。例えば、コードは、１つまたは複数のデジタルプロセッサ（例えば、マイクロプロセッサまたは他の処理回路）によって実装することができ、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、リジッドメモリを含む、例えば、磁気、光学、電磁気、または半導体の記憶媒体などの、非一時的コンピュータ可読媒体（例えば、記憶媒体）を含むコンピュータプログラム製品に格納することができる。プログラム命令は、例えば、サーバ（例えば、分散システムおよび／またはクラウドコンピューティングシステム）から配信されるサービスとしてのソフトウェア（ＳａａＳ）の形で、電子信号に含まれ、電子信号として提供されることもできる。代替的に、１つまたは複数の方法は、ハードウェア（論理ゲートなど）、またはハードウェアとソフトウェアの組み合わせで、実施することができる。ハードウェアの例は、プログラマブルプロセッサ（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス）、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路（ＡＳＩＣ）などであり得る。１つまたは複数の方法は、システム上で実行されているアプリケーションの一部またはコンポーネントとして、あるいは他のアプリケーションおよびオペレーティングシステムと共に実行されているアプリケーションまたはソフトウェアとして実行することができる。
【００６４】
本明細書に記載の１つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行することができるスタンドアロンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス（携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス（腕時計、アームバンド、宝飾品、帽子、ゴーグルまたはメガネなど）、ラップトップコンピュータなど）上で実行されるモバイルアプリケーション（「ａｐｐ」）において実行することができる。一例では、クライアント／サーバアーキテクチャを使用することができ、例えば、（クライアントデバイスとしての）モバイルコンピューティングデバイスは、ユーザ入力データをサーバデバイスに送信し、出力のための（例えば、表示のための）最終出力データをサーバから受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ（および／または他のアプリ）内で実行することができる。別の例では、計算は、モバイルコンピューティングデバイスと１つまたは複数のサーバデバイスとの間で分割することができる。
【００６５】
いくつかの実装形態では、代替のインタフェースは、音声以外の他の非視覚的態様、例えば、視覚障害のあるユーザ向けの点字、および触覚（例えば、「love」のステッカーは、触覚出力デバイスからの特定のビートまたはパターンに対応し得る）を含み得る。いくつかの実装形態では、会話は、音声および視覚ディスプレイなどの出力デバイスの組み合わせを使用して出力され得る。例えば、いくつかのデバイス（例えば、時計、他のウェアラブル）は、あるメディア（例えば、テキスト、写真）の表示に適しているが、他のメディア（例えば、ビデオ、パノラマ写真、３Ｄメディアなど）には適さない場合がある。いくつかのデバイスは、特定のメディアを再生できない場合がある（例えば、音声出力機能のないデバイス、３Ｄコンテンツを出力する２Ｄディスプレイを有するデバイス、カラーを表示する白黒スクリーンなど）。上記のコンテキストでは、電子会話のプレゼンテーションは、テキストまたは音声形式の会話フレーミング（例えば、ビデオ、３Ｄコンテンツなどの説明）とともに、言語および非言語オブジェクト（例えば、テキストおよび画像）を含み得る。例えば、家庭用またはその他の設定用のアシスタント製品は、音声出力のみを有するか、または音声および制限されたディスプレイを有する場合がある。そのような例では、実装形態は、利用可能な出力デバイスに適した形式で会話オブジェクトを出力すること、利用可能な適切な出力デバイスを持たないオブジェクトに会話フレーミングを提供することを含むように、電子会話のプレゼンテーションを調整し得る。
【００６６】
非言語オブジェクトは、静止画像（例えば、動きのない単一のフレーム）、アニメーション画像、ビデオ（例えば、複数のフレームを有する）などを含み得る。例えば、静止画像は、固定された表情の１つまたは複数の顔を描写し、アニメーション画像は、画像内で変化する表情で１つまたは複数の顔を描写し得る（例えば、目が閉じた状態と開いた状態との間を遷移する顔、笑顔でないポジションから笑顔のポジションへと動く口を有する顔などをキャプチャするライブ写真）。ビデオは、１人または複数人の人物を表す複数のフレームを含み得る。
【００６７】
非言語オブジェクトの分析は、アクションを検出すること、およびビデオの顔認識を行って（例えば、ビデオ全体またはビデオフレームの一部を使用してビデオを分析し得る）、言語説明（例えば、「馬に乗っているアレン」）を生成すること、顔認識なしでアクションを検出すること（例えば、「歩いている２人の人」）、有名人および／または映画クリップを検出すること（例えば、「ミッション・インポッシブルからの抜粋」）、他の種類のビデオまたはアニメーションのオブジェクトおよび動きを検出すること（例えば、「猫とネズミを示すアニメーション」）を含み得る。
【００６８】
他の非言語オブジェクトおよび関連するテキスト表現の例は、３６０度ビュー（例えば、タージマハルの没入型ビュー）、シネマグラフ／アニメーションＧＩＦ（「あなたの友人のボブが目を回すジェスチャーをしています」）、音声（例えば、音声トランスクリプトの概要、音楽や歌などの音声の認識）、ゲームおよびインタラクティブマルチメディアオブジェクト（例えば、ジェスチャーで投げることができるフットボール）、およびミーム（例えば、「バットマンキャラクタージョーカーの笑い声」）を含む。
【００６９】
非言語オブジェクトは、非言語オブジェクトの言語表現または概要を生成するために分析されることが可能なメタデータを含み得る。非言語オブジェクトの言語説明は、電子会話を仲介しているサーバデバイス（例えば、１０４）によって生成され得る。いくつかの実装形態では、電子会話に使用されるクライアントデバイスは、非言語オブジェクトの言語またはテキスト説明を生成し得る。本明細書で説明される技術は、暗号化されていない会話および暗号化された会話で使用され得る。エンドツーエンドの暗号化された会話では、方法２００は、クライアントデバイス上でのみ実行され得る。いくつかの実装形態では、非言語オブジェクトは、分析される前に処理され得る（例えば、圧縮、低解像度への変換など）。ユーザの同意なしに、会話に関する情報がサーバに提供されることはない。
【００７０】
一部の実装形態では、代替インタフェースにおける解析、会話フレーミング、およびプレゼンテーションは、支援ソフトウェアアプリケーションまたはボットによって全体的または部分的に実行され得る。ボットは、例えば、クライアントデバイス１２０のようなクライアントデバイスおよび／またはサーバデバイス１０４のようなサーバデバイス上で動作するメッセージングアプリケーションを介して、ユーザが通常テキストまたは音声を通じて対話する、１つまたは複数のコンピュータ上で実装される自動化されたサービスを含み得る。ボットは、ボットが様々なメッセージングアプリケーションまたは他のアプリケーションのユーザと対話できるように、ボットプロバイダによって実装され得る。いくつかの実装形態では、メッセージングアプリケーションのプロバイダは、１つまたは複数のボットを提供することもある。いくつかの実装形態では、メッセージングアプリケーションのプロバイダによって提供されるボットは、ボットが他のメッセージングアプリケーションに含まれることができるように、例えば他のプロバイダによって提供されるように構成され得る。ボットは他のモードに比べていくつかの利点を提供することが可能である。ユーザは、テキストおよび／または音声を介してボットと対話することができ、これは、ウェブサイト、ソフトウェアアプリケーション、電話通話、例えば、対話式音声応答（interactive voice response：ＩＶＲ）サービス、またはサービスとやり取りする他の方法を使用するのに必要である可能性がある学習と比較して、最小限の学習しか必要とせず、または全く学習を必要としない可能性がある。メッセージングサービスまたはアプリケーションにボットを組み込むことで、ユーザは、メッセージングサービス内で旅行の計画、買い物、イベントのスケジュール、情報の取得などのさまざまなタスクを他のユーザと協力することも可能となり、タスクを実行するためのさまざまなアプリケーション（例えば、タクシー予約アプリケーション、レストラン予約アプリケーション、カレンダーアプリケーションなど）間またはＷｅｂサイト間での切り替えのような面倒な操作を排除することができる。
【００７１】
本明細書で説明される代替インタフェースでのプレゼンテーションのために電子会話を解析するためのボットは、１つまたは複数のメッセージングアプリケーションに関連して、１または複数のユーザ（例えば、ユーザＵ１〜Ｕ４のいずれか）と対話するように構成されたコンピュータプログラムまたはアプリケーション（例えば、ソフトウェアアプリケーション）として実装され得る。
【００７２】
メッセージングアプリケーションのユーザと通信することができるボットを実装することは、多くの利点を提供し得る。前述のように、ボットは、電子会話を解析し、クライアントデバイスが使用されているコンテキストに適した代替インタフェースでそれらの会話を提示できる（例えば、ユーザが車両を操作している場合は、音声インタフェースで会話を提示する）。
【００７３】
特定の実施形態では、ボットは会話型インタフェースを使用して自然言語（例えば、会話フレーミング）を使用してユーザと会話的に対話することができる。いくつかの実施形態では、ボットは、例えばレストランの住所の要求に応じて、「レストランＲの位置はＬである」などのテンプレートを使用するなど、テンプレートベースのフォーマットを使用して、ユーザと対話するための文章を作成することができる。場合によっては、例えばボットがユーザと対話するために自然言語を使用するかどうか、ボットがテンプレートベースの対話を使用するかどうかなど、ユーザが、ボット対話フォーマットを選択できるようにすることが可能であり得る。
【００７４】
ボットが自然言語を使用して会話的に対話する場合、ボットの対話の内容および／またはスタイルは、自然言語処理を使用して判定される会話のコンテンツ、会話中のユーザの識別情報、１つまたは複数の会話コンテキスト（例えば、ユーザの対話に関する履歴情報、ソーシャルグラフに基づく会話内のユーザ間の関係）、外部条件（例えば、天気、交通）、ユーザのスケジュール、ユーザに関連する関連コンテキストなどのうちの一つまたは複数に基づいて動的に変化し得る。このような場合、ボットの対話の内容とスタイルは、会話に参加しているユーザが同意した要素のみに基づいて異なる。
【００７５】
一例として、会話のユーザがフォーマルな言葉を使用していると判断された場合（例えば、俗語や絵文字がない、または最小限の俗語または絵文字）、ボットもフォーマルな言葉を使用してその会話内で対話することができ、逆もまた同様である。
【００７６】
特定の実施形態では、会話に参加しているユーザは、例えば、ボット名またはボットハンドル（例えば、タクシー（taxi）、＠タクシーボット（@taxibot）、＠ムービー（@movies）など）を入力すること、音声コマンド（例えば、「銀行ボットを呼び出して」など）を使用すること、ユーザインタフェース要素（例えば、ボット名またはハンドルでラベル付けされたボタンまたはその他の要素）をアクティブにすることなどによって、特定のボットまたは特定のタスクを実行するボットを呼び出すことが可能とされ得る。ボットが呼び出されると、ユーザは、ボットが音声インタフェースでユーザに受信されたメッセージを解析して読むことを要求し得る。
【００７７】
特定の実施形態では、ボットは、具体的に呼び出されることなく、メッセージング会話内の情報またはアクションを自動的に提案することができる。即ち、ユーザはボットを特に起動する必要がないことがあり得る。これらの実施形態では、ボットは、継続的にまたは別々の時点でのユーザのコンテキスト（ユーザの許可により取得される）の分析および理解に依存することができる。コンテキストの分析は、特定のユーザのニーズを理解し、いつボットが支援を提案すべきかを識別するために使用することができる。一例として、ボットは、ユーザが車両にいることを示唆する方法でユーザデバイスが動いていると判断し、ボットは、着信メッセージが解析され、音声インタフェースまたは他の代替インタフェースで提示されることを示唆し得る。
【００７８】
ボットが具体的に呼び出されることなく、メッセージング会話内において情報またはアクションを自動的に提案することができる実施形態では、例えば、メッセージング会話に参加している一または複数のユーザが、ユーザの会話の分析をボットが実施することについて同意しない場合、そのような機能は無効にされる。さらに、そのような機能は、ユーザ入力に基づいて一時的に無効にされてもよい。例えば、会話がプライベートまたはセンシティブであることをユーザが示したとき、会話コンテキストの分析は、ユーザがボットをアクティブにするための入力を提供するまで一時停止される。さらに、分析機能が無効化されているという標示を、例えばユーザインタフェース要素を用いて、会話の参加者に提供することができる。
【００７９】
様々な実装形態では、ボットは様々な構成で実装され得る。例えば、ボットはクライアントデバイス（例えば、１２０-１２６）上に実装され得る。この例では、ボットは、クライアントデバイスに対してローカルなソフトウェアアプリケーション内のモジュールであり得る。ユーザが、クライアントデバイス上のメッセージングアプリケーションに関連してボットと会話することができるように、ボットはクライアントデバイス上にローカルに実装され得る。
【００８０】
別の例では、ボットは、クライアントデバイスおよびサーバデバイスの両方に実装され得る。この例では、ボットは、例えば、ボット機能の一部がクライアントボットおよびサーバボットの各々によって提供される、クライアント−サーバコンピュータプログラムとして実装され得る。いくつかの実装形態において、ボットは、例えば、複数のクライアントデバイスおよびサーバ（例えば、クライアントデバイス、サーバデバイスなど）にわたって分散されたモジュールを有する分散アプリケーションとして実施されてもよい。いくつかの実装形態では、ボットは、サーバデバイス上に実装されるサーバアプリケーションとして実装され得る。
【００８１】
クライアントのみ、サーバのみ、クライアント−サーバ、分散などのような異なる実装形態は、異なる利点を提供し得る。例えば、クライアントのみの実装形態では、例えば、ネットワークアクセスなしで、ボット機能をローカルに提供することができ、このことは、例えば、ユーザがネットワークのカバレッジエリア外にある場合、またはネットワーク帯域幅が狭いか、または制限されている任意のエリア内にある場合など、特定の状況で有利となり得る。サーバのみ、クライアント−サーバ、または分散構成などの１つまたは複数のサーバを含む実装では、例えば、チケットの予約などのクライアントデバイスでローカルに提供できない特定の機能が許可され得る。
【００８２】
ボットは、メッセージングアプリケーションとは異なるものであってよく、いくつかの実装形態では、１つまたは複数のボットは、メッセージングアプリケーションの一部として実装され得る。ボットがメッセージングアプリケーションの一部として実装される実装形態では、ボットを実行する前にユーザの許可が取得され得る。いくつかの実装形態において、メッセージングアプリケーションのプロバイダおよびユーザとは異なるサードパーティが、ユーザと通信することができるボットを提供し得る。
【００８３】
非言語オブジェクトのオブジェクト認識および解析、並びに会話フレーミングの識別およびレンダリングは、機械学習技術を使用して実行され得る。例えば、言語オブジェクトは、ＬＳＴＭモデルを使用して解析および要約され、画像／ビデオコンテンツは、オブジェクト認識用のためにトレーニングされた機械学習モデルを使用して解析され得る。インタラクティブなオブジェクトは、これらのタイプのオブジェクトなどのために特別にトレーニングされたモデルを使用して認識され得る。例えば、電子的コミュニケーション分析アプリケーションは、メッセージングアプリケーションとのユーザの対話を向上させることが可能な、例えばディープラーニングモデルなどの機械学習を実装することができる。機械学習モデルは、合成データ、例えば、ユーザ情報を使用せずにコンピュータによって自動的に生成されたデータを使用してトレーニングすることができる。いくつかの実装形態では、機械学習モデルは、例えば、トレーニングのためにユーザデータを利用する許可がユーザから明示的に得られているサンプルデータに基づいてトレーニングされ得る。例えば、サンプルデータは、受信されたメッセージを含み得る。サンプルデータに基づいて、機械学習モデルは、受信されたメッセージを解析して会話フレーミングを提供する方法を予測し、これは次に、代替インタフェースを介してプレゼンテーションとして提供され得る。
【００８４】
いくつかの実装形態では、機械学習は、サーバデバイス、クライアントデバイス、またはその両方で実装され得る。いくつかの実装形態では、単純な機械学習モデルがクライアントデバイス上で実施され（例えば、クライアントデバイスのメモリ、ストレージ、および処理制約内でモデルの動作を可能にするため）、複雑な機械学習モデルがサーバデバイス上で実施され得る。ユーザが機械学習技術の使用について同意しない場合、そのような技術は実装されない。いくつかの実装形態において、ユーザは、クライアントデバイス上でのみ実施される機械学習のために同意を選択的に提供し得る。これらの実装形態では、機械学習モデルに対する更新または機械学習モデルによって使用されるユーザ情報は、ローカルに格納または使用され、かつサーバデバイスまたは他のクライアントデバイスなどの他のデバイスとは共有されないように、機械学習モデルがクライアントデバイス上で実施され得る。
【００８５】
いくつかの実装形態では、機械学習アプリケーションは、１つまたは複数のプロセッサが本明細書に記載の機能、例えば、図２の方法のうちのいくつかまたは全てを実施することを可能とする命令を含み得る。
【００８６】
様々な実装形態では、本明細書に記載の機能を実行する機械学習アプリケーションは、ベイズ分類器、サポートベクターマシン、ニューラルネットワーク、または他の学習技術を利用することができる。いくつかの実装形態では、機械学習アプリケーションは、トレーニングされたモデル、推論エンジン、およびデータを含み得る。いくつかの実装形態では、データは、トレーニングデータ、例えばトレーニングされたモデルを生成するために使用されるデータを含み得る。例えば、トレーニングデータは、テキスト、画像、音声、ビデオなどのような任意の種類のデータを含み得る。トレーニングデータは、任意のソース、例えば、トレーニングのために特別にマークされたデータリポジトリ、機械学習のためのトレーニングデータとして使用するために許可が与えられているデータなどから取得することができる。１または複数のユーザが、機械学習モデル、例えば、トレーニングされたモデルをトレーニングするためにそれぞれのユーザデータの使用を許可する実装形態では、トレーニングデータは、そのようなユーザデータを含むことができる。ユーザがそれぞれのユーザデータの使用を許可する実装形態では、データは、画像（例えば、写真または他のユーザ生成画像）、通信（例えば、電子メール、テキストメッセージなどのチャットデータ、音声、ビデオなど）、およびドキュメント（例えば、スプレッドシート、テキストドキュメント、プレゼンテーションなど）などの許可されたデータを含み得る。
【００８７】
いくつかの実装形態では、トレーニングデータは、例えばシミュレートされた会話から生成されたデータ、コンピュータ生成画像など、訓練されているコンテキストにおけるユーザ入力または活動に基づいていないデータのような、トレーニングの目的で生成された合成データを含み得る。いくつかの実装形態では、機械学習アプリケーションは、データを除外する。例えば、これらの実装形態では、トレーニングされたモデルは、例えば異なるデバイス上で生成され、機械学習アプリケーションの一部として提供され得る。様々な実装形態では、トレーニングされたモデルは、モデル構造または形態、ならびに関連する重みを含むデータファイルとして提供され得る。推論エンジンは、トレーニングされたモデルのデータファイルを読み取り、トレーニングされたモデルで指定されたモデル構造または形態に基づく、ノードの接続性、層、および重みを用いてニューラルネットワークを実装することができる。
【００８８】
機械学習アプリケーションは、トレーニングされたモデルも含み得る。いくつかの実装形態では、トレーニングされたモデルは、１つまたは複数のモデル形態または構造を含み得る。例えば、モデル形態または構造は、線形ネットワーク、複数の層（例えば、入力層と出力層との間の「隠れ層」、各層は線形ネットワークである）を実装するディープニューラルネットワーク、畳み込みニューラルネットワーク（例えば、入力データを複数の部分またはタイルに分割または区分けし、１つまたは複数のニューラルネットワーク層を用いて各タイルを別個に処理し、各タイルの処理からの結果を集約するネットワーク）、ｓｅｑｕｅｎｃｅ−ｔｏ−ｓｅｑｕｅｎｃｅニューラルネットワーク（例えば、文中の単語、ビデオのフレームなどの入力シーケンシャルデータを取り、結果シーケンスを出力として生成するネットワーク）のような、任意のタイプのニューラルネットワークを含み得る。モデル形態または構造は、様々なノード間の接続性およびノードの層への編成を指定することができる。例えば、第１層（例えば入力層）のノードは、入力データまたはアプリケーションデータとしてデータを受け取ることができる。そのようなデータは、例えば、トレーニングされたモデルが画像分析のために使用される場合、例えば、ノードごとに１つまたは複数のピクセルを含むことができる。後続の中間層は、モデル形態または構造で指定された接続性に従って、前の層のノードの入力出力を受け取ることができる。これらの層は、隠れ層とも呼ばれる。最終層（例えば、出力層）は、機械学習アプリケーションの出力を生成する。例えば、出力は、特定のトレーニングされたモデルに応じて、画像に対するラベルのセット、画像を他の画像と比較することを可能にする画像の表現（例えば、画像に対する特徴ベクトル）、入力文に応答した出力文、入力データのための１つまたは複数のカテゴリなどであり得る。いくつかの実装形態では、モデル形態または構造は、各層のノードの数および／またはタイプも指定する。
【００８９】
異なる実装形態では、トレーニングされたモデルは、モデル構造または形態ごとに層に配置された複数のノードを含むことができる。いくつかの実装形態では、ノードは、メモリなしの計算ノード、例えば、１単位の入力を処理して１単位の出力を生成するように構成されたものであり得る。ノードによって実行される計算は、例えば、複数のノード入力の各々に重みを乗算すること、重み付き和を取得すること、および重み付き和をバイアスまたは切片値で調整してノード出力を生成することを含み得る。いくつかの実装形態では、計算は、調整された重み付き和にステップ／活性化関数を適用することを含み得る。いくつかの実装形態では、ステップ／活性化関数は、非線形関数であり得る。様々な実装形態では、計算は、行列乗算などの演算を含み得る。いくつかの実装形態では、複数のノードによる計算は、例えばマルチコアプロセッサの複数のプロセッサコアを使用して、ＧＰＵの個々の処理ユニットを使用して、または専用のニューラル回路を使用して、並列して実行され得る。いくつかの実装形態では、ノードは、メモリを含むことができ、例えば、後続の入力を処理する際に１つまたは複数の以前の入力を格納して使用することが可能であり得る。例えば、メモリを有するノードは、長期短期記憶（ＬＳＴＭ）ノードを含み得る。ＬＳＴＭノードは、ノードが有限状態機械（ＦＳＭ）のように動作することを可能にする「状態」を維持するためにメモリを使用することができる。そのようなノードを有するモデルは、連続データ、例えば文章または段落内の単語、ビデオ内のフレーム、スピーチまたは他の音声などを処理するのに有用であり得る。
【００９０】
いくつかの実装形態では、トレーニングされたモデルは、個々のノードに対する埋め込みまたは重みを含み得る。例えば、モデルは、モデルの形態または構造によって指定されるような層に編成された複数のノードとして開始されてもよい。初期化時に、モデル形態ごとに接続されているノード、例えばニューラルネットワークの連続する層におけるノード、の各ペアの間の接続に、それぞれの重みが適用され得る。例えば、それぞれの重みは、ランダムに割り当てられてもよく、またはデフォルト値に初期化されてもよい。次いで、モデルが、例えばデータを使用してトレーニングされ、結果を生成することができる。
【００９１】
例えば、トレーニングは、教師あり学習技術を適用することを含み得る。教師あり学習では、トレーニングデータは、複数の入力（例えば、一組の画像）および各入力に対する対応する予想される出力（例えば、各画像に対する１つまたは複数のラベル）を含み得る。モデルの出力と、期待される出力との比較に基づいて、重みの値が、例えば同様の入力が与えられたときにモデルが期待される出力を生成する確率を高めるように、自動的に調整される。
【００９２】
いくつかの実装形態では、トレーニングは、教師なし学習技術を適用することを含み得る。教師なし学習では、入力データのみが提供され、モデルは、データを区別するように、例えば、入力データを複数のグループにクラスタ化するようにトレーニングされることが可能であり、各グループは、何らかの点で類似した入力データを含む。例えば、モデルが、抽象画像（例えば、合成画像、人間が描いた画像など）を自然画像（例えば、写真）から区別するように、画像を区別するようにトレーニングされ得る。
【００９３】
別の例では、教師なし学習を使用してトレーニングされたモデルは、入力文における単語の使用に基づいて単語をクラスタ化することができる。いくつかの実装形態では、教師なし学習を使用して、例えば機械学習アプリケーションによって使用され得る知識表現を生成することができる。様々な実装形態では、トレーニングされたモデルは、モデル構造に対応する重みまたは埋め込みの集合を含む。データが省略される実装形態では、機械学習アプリケーションは、例えば、機械学習アプリケーションの開発者、またはサードパーティなどによる事前のトレーニングに基づくトレーニングされたモデルを含み得る。いくつかの実装形態では、トレーニングされたモデルは、例えば重みを提供するサーバからダウンロードされた、固定された重みのセットを含み得る。
【００９４】
機械学習アプリケーションは、推論エンジンも含み得る。推論エンジンは、トレーニングされたモデルをアプリケーションデータなどのデータに適用して推論を提供するように構成されている。いくつかの実装形態では、推論エンジンは、プロセッサによって実行されるべきソフトウェアコードを含み得る。いくつかの実装形態では、推論エンジンは、プロセッサがトレーニングされたモデルを適用することを可能にする回路構成（例えば、プログラマブルプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）を指定することができる。いくつかの実装形態では、推論エンジンは、ソフトウェア命令、ハードウェア命令、またはそれらの組み合わせを含み得る。いくつかの実装形態では、推論エンジンは、例えばトレーニングされたモデルをアプリケーションデータに適用して推論を生成するために、オペレーティングシステムおよび／または他のアプリケーションによって使用されて、推論エンジンを呼び出すことができるアプリケーションプログラミングインタフェース（ＡＰＩ）を提供し得る。
【００９５】
機械学習アプリケーションは、複数の技術的利点を提供することができる。例えば、トレーニングされたモデルが、教師なし学習に基づいて生成される場合、トレーニングされたモデルが、推論エンジンによって適用されて、入力データ、例えばアプリケーションデータから知識表現（例えば、数値表現）を生成することができる。例えば、画像分析のためにトレーニングされたモデルは、入力画像（例えば１０ＭＢ）よりも実質的に小さいサイズ（例えば１ＫＢ）を有する画像の表現を生成し得る。いくつかの実装形態では、そのような表現は、出力（例えば、ラベル、分類、画像を説明する文章など）を生成するための処理コスト（例えば、計算コスト、メモリ使用量など）を削減するのに役立ち得る。いくつかの実装形態では、そのような表現は、推論エンジンの出力から出力を生成する異なる機械学習アプリケーションへの入力として提供され得る。いくつかの実装形態では、機械学習アプリケーションによって生成された知識表現は、例えばネットワークを介して、さらなる処理を実行する異なるデバイスに提供され得る。そのような実装形態では、画像ではなく知識表現を提供することにより、実質的な技術的利益が提供され、例えば、より低いコストでより速いデータ伝送を可能にすることができる。別の例では、ドキュメントをクラスタ化するためにトレーニングされたモデルは、入力ドキュメントからドキュメントクラスタを生成することができる。ドキュメントクラスタは、元のドキュメントにアクセスする必要なしに、さらなる処理（例えば、ドキュメントがトピックに関連しているかどうかの判定、そのドキュメントの分類カテゴリの判定など）に適し、従って計算コストを節約することができる。
【００９６】
いくつかの実装形態では、機械学習アプリケーションは、オフライン方式で実装され得る。これらの実装形態では、トレーニングされたモデルは、第一段階で生成され、機械学習アプリケーションの一部として提供され得る。いくつかの実装形態では、機械学習アプリケーションは、オンライン方式で実装され得る。例えば、そのような実装形態では、機械学習アプリケーションを呼び出すアプリケーション（例えば、オペレーティングシステム、および／または１つまたは複数の他のアプリケーション）は、機械学習アプリケーションによって生成された推論を利用することができ、例えば、その推論をユーザに提供し、システムログ（例えば、ユーザによって許可された場合、推論に基づいてユーザによって取られたアクション、またはさらなる処理のための入力として利用された場合、さらなる処理の結果）を生成することができる。システムログは、定期的に、例えば、毎時、毎月、毎四半期などに生成されてもよく、ユーザの許可を得て、トレーニングされたモデルを更新するために、例えばトレーニングされたモデルの埋め込みを更新するために使用され得る。
【００９７】
いくつかの実装形態では、機械学習アプリケーションは、機械学習アプリケーションが実行されるデバイスの特定の構成に適応することができる方法で実装され得る。例えば、機械学習アプリケーションは、利用可能な計算資源、例えばプロセッサを利用する計算グラフを決定することができる。例えば、機械学習アプリケーションが複数のデバイス上の分散型アプリケーションとして実施される場合、機械学習アプリケーションは、計算を最適化する方法で個々のデバイス上で実行されるべき計算を決定することができる。別の例では、機械学習アプリケーションは、プロセッサが特定の数（例えば、１０００）のＧＰＵコアを有するＧＰＵを含み、それに応じて推論エンジンを（例えば、１０００個の個々のプロセスまたはスレッドとして）実装することを決定し得る。
【００９８】
いくつかの実装形態では、機械学習アプリケーションは、トレーニングされたモデルのアンサンブルを実施し得る。例えば、トレーニングされたモデルは、それぞれ同じ入力データに適用可能な複数のトレーニングされたモデルを含み得る。これらの実装形態では、機械学習アプリケーションは、例えば、利用可能な計算リソース、以前の推論での成功率などに基づいて、特定のトレーニングされたモデルを選択することができる。いくつかの実装形態では、機械学習アプリケーションは、複数のトレーニングされたモデルが適用されるように推論エンジンを実行することができる。これらの実装形態では、機械学習アプリケーションは、個々のモデルの適用からの出力を、例えば、各トレーニング済みモデルの適用からの個々の出力を採点する投票技術を使用して、または１つまたは複数の特定の出力を選択することによって、組み合わせることができる。さらに、これらの実装形態では、機械学習アプリケーションは、個々のトレーニングされたモデルを適用するための時間閾値（例えば、０．５ｍｓ）を適用し、その時間閾値内で利用可能な個々の出力のみを利用することができる。時間閾値内に受信されない出力は利用されず、例えば破棄され得る。例えば、そのようなアプローチは、例えばオペレーティングシステム、または１つまたは複数のアプリケーションによって、機械学習アプリケーションを呼び出す間に指定された時間制限がある場合に適切であり得る。
【００９９】
異なる実装形態では、機械学習アプリケーションは、異なるタイプの出力を生成することができる。例えば、機械学習アプリケーションは、表現またはクラスタ（例えば、入力データの数値表現）、ラベル（例えば、画像、ドキュメントなどを含む入力データに対する）、フレーズまたは文章（例えば、入力文に対する応答としての使用に適している画像またはビデオの説明など）、画像（例えば、入力に応答して機械学習アプリケーションによって生成される）、音声またはビデオ（例えば、入力ビデオに応答して、機械学習アプリケーションは、特定の効果が適用された出力ビデオ、例えば、トレーニングされたモデルがコミックブックまたは特定のアーティストなどからのトレーニングデータを使用してトレーニングされる場合、コミックブックまたは特定のアーティストのスタイルでレンダリングされた出力ビデオを生成し得る）を提供することができる。いくつかの実装形態では、機械学習アプリケーションは、呼び出し側アプリケーション、例えば、オペレーティングシステムまたは１つまたは複数のアプリケーションによって指定されたフォーマットに基づいて出力を生成することができる。いくつかの実装形態では、呼び出し側アプリケーションは、別の機械学習アプリケーションであり得る。例えば、そのような構成は、敵対的生成ネットワークで使用され得、呼び出し側機械学習アプリケーションが、機械学習アプリケーションからの出力を使用してトレーニングされ、その逆も同様である。
【０１００】
あるいは、メモリ内のソフトウェアのいずれも、他の任意の適切な記憶場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ（および／または他の接続された単数または複数の記憶デバイス）は、１つまたは複数のメッセージ、１つまたは複数の分類法、電子百科事典、辞書、シソーラス、ナレッジベース、メッセージデータ、文法、ユーザプリファレンス、および／または本明細書で説明された機能で使用される他の命令およびデータを格納することができる。メモリおよび他の任意の種類の記憶装置（磁気ディスク、光ディスク、磁気テープ、または他の有形の媒体）は、「記憶装置」または「記憶デバイス」と見なすことができる。
【０１０１】
Ｉ／Ｏインタフェースは、サーバデバイスを他のシステムおよびデバイスとインタフェースすることを可能にするための機能を提供することができる。インタフェースされたデバイスは、デバイスの一部として含めることができ、または分離してデバイスと通信することができる。例えば、ネットワーク通信デバイス、記憶デバイス（例えば、メモリおよび／またはデータベース１０６）、および入力／出力デバイスは、Ｉ／Ｏインタフェースを介して通信することができる。いくつかの実装形態では、Ｉ／Ｏインタフェースは、入力デバイス（キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど）および／または出力デバイス（表示デバイス、スピーカーデバイス、プリンター、モーターなど）のようなインタフェースデバイスに接続することができる。
【０１０２】
Ｉ／Ｏインタフェースに接続することができるインタフェースデバイスのいくつかの例は、コンテンツ、例えば、本明細書で説明されるような出力アプリケーションの画像、ビデオ、および／またはユーザインタフェースを表示するために使用できる１つまたは複数の表示デバイスを含み得る。表示デバイスは、ローカル接続（例えば、表示バス）および／またはネットワーク接続を介してデバイスに接続されることができ、任意の適切な表示デバイスとすることができる。表示デバイスは、ＬＣＤ、ＬＥＤ、またはプラズマディスプレイスクリーン、ＣＲＴ、テレビ、モニタ、タッチスクリーン、３Ｄディスプレイスクリーン、または他の視覚的表示デバイスのような任意の適切な表示デバイスを含むことができる。例えば、表示デバイスは、モバイルデバイスに提供されるフラットディスプレイスクリーン、ゴーグルまたはヘッドセットデバイスに提供される複数の表示スクリーン、またはコンピュータデバイス用のモニタスクリーンであり得る。
【０１０３】
Ｉ／Ｏインタフェースは、他の入力および出力デバイスとインタフェースすることができる。いくつかの例は、画像をキャプチャすることができる１つまたは複数のカメラを含む。いくつかの実装形態は、（例えば、キャプチャされた画像、音声コマンドなどの一部として）音声をキャプチャするためのマイクロフォン、音声を出力するためのオーディオスピーカーデバイス、または他の入出力デバイスを提供することができる。
【０１０４】
説明は、その特定の実装形態に関して記載されているが、これらの特定の実装形態は単なる例示であり、限定的なものではない。例に示されている概念は、他の例および実装形態にも適用することができる。
【０１０５】
本明細書で説明される特定の実装形態が、ユーザに関する個人情報（例えば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの所在地および所在地における時間、ユーザのバイオメトリック情報、ユーザの活動およびデモグラフィック情報）を収集または使用し得る状況において、ユーザには、情報が収集されるかどうか、個人情報が格納されるかどうか、個人情報が使用されるかどうか、およびユーザに関する情報がどのように収集、格納、および使用されるかを制御するための１つまたは複数の機会が提供される。すなわち、本明細書で説明されたシステムおよび方法は、特に、関連するユーザからの明確な許可を受けたときに、ユーザの個人情報を収集、格納および／または使用する。例えば、ユーザは、プログラムまたは機能がその特定のユーザまたはプログラムまたは機能に関連する他のユーザについてのユーザ情報を収集するかどうかについての制御を提供される。個人情報が収集される各ユーザには、そのユーザに関連した情報収集の制御を可能にする１つまたは複数のオプションが提供され、それにより、情報が収集されてよいかどうか、およびその情報のどの部分が収集されるかに関する許可または認可を与える。例えば、ユーザには、１つまたは複数のそのような制御オプションが、通信ネットワークを通じて提供されてよい。さらに、特定のデータは、個人を特定可能な情報が削除されるように、格納または使用される前に１つまたは複数の方法で処理され得る。一例として、個人を識別可能な情報が判定され得ないように、ユーザの識別情報が取り扱われ得る。別の例として、ユーザの地理的位置は、ユーザの特定の位置が判定され得ないように、より大きな領域に一般化することができる。
【０１０６】
本開示に記載されている機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組み合わせに統合または分割することができることに留意されたい。特定の実装形態のルーチンを実装するために、任意の適切なプログラミング言語およびプログラミング技術が使用され得る。例えば、手続き型またはオブジェクト指向などの異なるプログラミング技術が使用され得る。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行することができる。ステップ、動作、または計算は特定の順序で提示され得るが、異なる特定の実装形態においてはその順序は変更されてもよい。いくつかの実装形態では、本明細書において連続的なものとして示されている複数のステップまたは動作が同時に実行され得る。
【図１】
0006889281.tif 000002
【図２】
0006889281.tif 000003
【図３】
0006889281.tif 000004
【図４】
0006889281.tif 000005
【図５】
0006889281.tif 000006