IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7534451自動アシスタントとのユーザ対話を介したアプリケーション動作の取消し
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】自動アシスタントとのユーザ対話を介したアプリケーション動作の取消し
(51)【国際特許分類】
   G06F 3/16 20060101AFI20240806BHJP
   G06F 3/0481 20220101ALI20240806BHJP
   G10L 15/22 20060101ALI20240806BHJP
【FI】
G06F3/16 650
G06F3/16 620
G06F3/0481
G10L15/22 300Z
【請求項の数】 22
(21)【出願番号】P 2022578717
(86)(22)【出願日】2021-12-06
(65)【公表番号】
(43)【公表日】2023-08-28
(86)【国際出願番号】 US2021061995
(87)【国際公開番号】W WO2022159180
(87)【国際公開日】2022-07-28
【審査請求日】2023-02-02
(31)【優先権主張番号】17/157,178
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マシュー・シャリフィ
(72)【発明者】
【氏名】ヴィクター・カルブネ
【審査官】田川 泰宏
(56)【参考文献】
【文献】特表2018-525653(JP,A)
【文献】特表2020-528585(JP,A)
【文献】米国特許出願公開第2021/0020163(US,A1)
【文献】国際公開第2006/051965(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/16
G06F 3/01-3/04895
G10L 15/22
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、
コンピューティングデバイスによって、前記コンピューティングデバイスを介してアクセス可能な自動アシスタントに対してユーザによって提供されたアシスタント入力を受信するステップと、
前記自動アシスタントによって、前記アシスタント入力が、前記自動アシスタントとは別個のアプリケーションによって実施されたいくつかの動作を取り消すための要求に対応すると決定するステップと、
前記アシスタント入力に基づいて、前記アプリケーションの状態に影響を及ぼし、前記アシスタント入力に関連付けられた、1つまたは複数の動作を識別するステップであって、
前記1つまたは複数の動作が、前記アプリケーションを第1のアプリケーション状態から第2のアプリケーション状態に遷移させ、前記アプリケーションを前記第2のアプリケーション状態から第3のアプリケーション状態に遷移させ、
前記ユーザが、前記アプリケーションが前記第3のアプリケーション状態を示している間、またはその後に前記アシスタント入力を提供し
1つまたは複数の動作を識別するステップが、前記第1のアプリケーション状態を識別する第1の選択可能オプションと、前記第2のアプリケーション状態を識別する第2の選択可能オプションとを含む選択プロンプトに対する前記ユーザの選択を受信するステップを含む、
識別するステップと、
前記アシスタント入力に基づいて、前記アプリケーションを前記第1のアプリケーション状態に復帰させるステップと
を含む、方法。
【請求項2】
択プロンプトを前記ユーザに対してレンダリングさせるステップであって、
記ユーザが、前記ユーザに対する前記選択プロンプトのレンダリングに応答して、前記第1の選択可能オプションを選択する、
レンダリングさせるステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記選択プロンプトを前記レンダリングさせるステップが、
前記第1の選択可能オプションに対応し、前記アプリケーションの前記第1のアプリケーション状態の視覚的コンテンツを特徴付ける、選択可能なグラフィカルユーザインターフェース(GUI)要素を生成するステップと、
前記第2の選択可能オプションに対応し、前記アプリケーションの前記第2のアプリケーション状態の他の視覚的コンテンツを特徴付ける、別の選択可能なGUI要素を生成するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記アプリケーションの前記状態に影響を及ぼし、前記アシスタント入力に関連付けられた、前記1つまたは複数の動作を前記識別するステップが、
前記ユーザが前記アシスタント入力を提供する前の時間期間内に前記アプリケーションにおいて初期化された動作のセットから前記1つまたは複数の動作を選択するステップであって、
前記1つまたは複数の動作が、前記時間期間内に前記アプリケーションにおいてやはり初期化された1つまたは複数の他の動作を省く
選択するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記アシスタント入力を前記受信するステップに先立って、
前記自動アシスタントによって、前記アプリケーションが、前記アプリケーションを前記第1のアプリケーション状態から前記第2のアプリケーション状態に遷移させた前記1つまたは複数の動作を実施したと決定するステップ
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記アプリケーションが前記1つまたは複数の動作を実施したと前記決定するステップが、
1つまたは複数のトレーニングされた機械学習モデルを使用して、前記アプリケーションが前記第2のアプリケーション状態を示しているとき、前記アプリケーションのGUIインターフェースを特徴付ける画像データを処理するステップ
を含む、請求項5に記載の方法。
【請求項7】
前記アシスタント入力が、前記アプリケーションによって実行された前記いくつかの動作を取り消すための前記要求に対応すると前記決定するステップが、
前記アシスタント入力が、前記ユーザが前記アシスタント入力を提供したとき、前記アプリケーションのインターフェースにおいてレンダリングされている自然言語コンテンツに関連付けられると決定するステップ
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記アシスタント入力が、前記ユーザによって提供された音声発話で実施され、前記音声発話が、前記アプリケーションの前記インターフェースにおいてレンダリングされている前記自然言語コンテンツのうちのいずれも識別しない、請求項7に記載の方法。
【請求項9】
1つまたは複数のプロセッサによって実装される方法であって、
アプリケーションによって、前記アプリケーションを対象とするユーザ入力を受信するステップであって、
前記アプリケーションが、自動アシスタントに対するアクセスをやはり提供するコンピューティングデバイスを介してアクセス可能である、
受信するステップと、
前記ユーザ入力に基づいて、前記アプリケーションに1つまたは複数の動作を実施することを行わせるステップであって、
前記1つまたは複数の動作を前記実施することが、前記アプリケーションを第1の動作状態から第2の動作状態に遷移させ、前記アプリケーションを前記第2の動作状態から第3の動作状態に遷移させる、
実施することを行わせるステップと、
前記アプリケーションによって、1つまたは複数の他の動作を実施するための要求を前記自動アシスタントから受信するステップであって、
前記自動アシスタントからの前記要求が、ユーザから前記自動アシスタントへのアシスタント入力に基づく、
受信するステップと、
前記アシスタント入力に基づいて、前記アプリケーションの状態に影響を及ぼし、前記アシスタント入力に関連付けられた、1つまたは複数の動作を識別するステップであって、1つまたは複数の動作を識別するステップが、前記アプリケーションの前記第1の動作状態を識別する第1の選択可能オプションと、前記アプリケーションの前記第2の動作状態を識別する第2の選択可能オプションとを含む選択プロンプトに対する前記ユーザの選択を受信するステップを含む、識別するステップと、
前記自動アシスタントからの前記要求に基づいて、前記アプリケーションを前記第2の動作状態から前記第1の動作状態に復帰させるステップと
を含む、方法。
【請求項10】
前記要求を前記自動アシスタントから前記受信するステップに先立って、
前記アプリケーションがアプリケーション状態データを前記自動アシスタントに提供するための別個の要求を受信するステップであって、
前記アプリケーション状態データが、前記アプリケーションの前記第1の動作状態の1つまたは複数の特徴を特徴付ける
受信するステップ
をさらに含む、請求項9に記載の方法。
【請求項11】
前記要求を前記自動アシスタントから前記受信するステップに先立って、
アプリケーション動作データを前記自動アシスタントに提供するようにとの前記アプリケーションに対する別個の要求を受信するステップであって、
前記アプリケーション動作データが、前記アプリケーションを前記第2の動作状態から前記第1の動作状態に復帰するための前記1つまたは複数の他の動作を識別する
受信するステップ
をさらに含む、請求項9または10に記載の方法。
【請求項12】
前記アプリケーションを前記第2の動作状態から前記第1の動作状態に前記復帰させるステップが、
前記ユーザ入力に基づいて実施された前記1つまたは複数の動作を取り消すために、前記アプリケーションを介して前記ユーザによってアクセスされているファイルを前記アプリケーションに修正させるステップ
を含む、請求項9から11のいずれか一項に記載の方法。
【請求項13】
1つまたは複数のプロセッサによって実装される方法であって、
コンピューティングデバイスによって、前記コンピューティングデバイスを介してアクセス可能な自動アシスタントに対してユーザによって提供されたアシスタント入力を受信するステップであって、
前記アシスタント入力が、前記自動アシスタントとは別個の1つまたは複数のアプリケーションによって実施された特定の動作を取り消すための要求に対応する、
受信するステップと、
前記アシスタント入力に基づいて、前記1つまたは複数のアプリケーションに影響を及ぼした前記特定の動作を識別する動作データを処理するステップと、
前記動作データおよび前記アシスタント入力に基づいて、前記1つまたは複数のアプリケーションが実施すべき1つまたは複数の動作または1つまたは複数の他の動作を選択するステップであって、
前記1つまたは複数の動作および1つまたは複数の他の動作が、前記1つまたは複数のアプリケーションによって実施された前記特定の動作の取消しを促進する際に選択され
1つまたは複数の動作または1つまたは複数の他の動作を選択するステップが、前記1つまたは複数のアプリケーションが前記1つまたは複数の動作によって影響を受ける第1の状態を特徴付ける第1の選択可能オプションと、前記1つまたは複数のアプリケーションが前記1つまたは複数の他の動作によって影響を受ける第2の状態を特徴付ける第2の選択可能オプションとを含む選択プロンプトに対する前記ユーザの選択を受信するステップを含む、
選択するステップと、
前記自動アシスタントによって、前記アシスタント入力に応答して、前記1つまたは複数のアプリケーションに前記1つまたは複数の動作を実施させるステップと
を含む、方法。
【請求項14】
前記アシスタント入力が、前記ユーザによって提供される音声発話で実施され、前記音声発話が、前記コンピューティングデバイスまたは別個のコンピューティングデバイスのインターフェースを介して前記1つまたは複数のアプリケーションを閲覧している前記ユーザに同時に提供される、請求項13に記載の方法。
【請求項15】
前記1つまたは複数のアプリケーションが実施すべき前記1つまたは複数の動作を前記選択するステップが、
前記自動アシスタントによって、アプリケーションプログラミングインターフェースを使用して、前記1つまたは複数のアプリケーションのアプリケーションに別個の要求を提供するステップであって、
前記要求が、前記1つまたは複数のアプリケーションによって実施された前記特定の動作を識別する、
提供するステップ
を含む、請求項13または14に記載の方法。
【請求項16】
択プロンプトを前記ユーザに対してレンダリングさせるステップであって、
記ユーザが、前記ユーザに対する前記選択プロンプトのレンダリングに応答して、前記第1の選択可能オプションを選択する、
レンダリングさせるステップと
をさらに含む、請求項13から15のいずれか一項に記載の方法。
【請求項17】
前記選択プロンプトを前記レンダリングさせるステップが、
前記第1の選択可能オプションに対応し、前記1つまたは複数のアプリケーションの前記第1の状態の視覚的コンテンツを特徴付ける、選択可能なグラフィカルユーザインターフェース(GUI)要素を生成するステップと、
前記第2の選択可能オプションに対応し、前記1つまたは複数のアプリケーションの前記第2の状態の他の視覚的コンテンツを特徴付ける、別の選択可能なGUI要素を生成するステップと
を含む、請求項16に記載の方法。
【請求項18】
前記1つまたは複数のアプリケーションが実施すべき前記1つまたは複数の動作を前記選択するステップが、
前記ユーザまたは別のユーザが前記1つまたは複数のアプリケーションを生じさせた前のインスタンス、または前記1つまたは複数のアプリケーションの別個のインスタンスに基づいて、特定の動作状態に復帰するようにトレーニングされた、トレーニングされた機械学習モデルにアクセスするステップであって、
前記1つまたは複数の動作が、前記トレーニングされた機械学習モデルに基づいて実施される
アクセスするステップ
を含む、請求項16に記載の方法。
【請求項19】
前記ユーザが前記第1の選択可能オプションを選択することに基づいて、フィードバックデータを生成するステップと、
前記トレーニングされた機械学習モデルを前記フィードバックデータに基づいてさらにトレーニングさせるステップと
をさらに含む、請求項18に記載の方法。
【請求項20】
前記アシスタント入力に基づいて、前記ユーザが前記アシスタント入力を提供した環境の1つまたは複数の特徴を特徴付けるコンテキストデータを処理するステップであって、
前記1つまたは複数のアプリケーションが実施すべき前記1つまたは複数の動作を前記選択するステップが、前記コンテキストデータにさらに基づく、
処理するステップ
をさらに含む、請求項13から19のいずれか一項に記載の方法。
【請求項21】
システムであって、
少なくとも1つのプロセッサと、
命令を記憶するメモリと
を含み、前記命令が、実行されると、前記少なくとも1つのプロセッサに、請求項1から20のいずれか一項に対応する動作を実施させる
システム。
【請求項22】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、実行されると、少なくとも1つのプロセッサに、請求項1から20のいずれか一項に対応する動作を実施させる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
自動アシスタントとのユーザ対話を介したアプリケーション動作の取消しに関する。
【背景技術】
【0002】
人間は、本明細書で「自動アシスタント」と呼ばれる(「デジタルエージェント」、「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントアシスタント」、「会話エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションと人間対コンピュータダイアログに参加し得る。たとえば、人間(自動アシスタントと対話するとき、「ユーザ」と呼ばれることがある)は、場合によっては、テキストに変換され、次いで、処理され得る、音声自然言語入力(すなわち、発話)を提供することによって、および/または処理され得るテキスト(たとえば、タイプされた)自然言語を提供することによって、コマンドおよび/または要求を提供し得る。
【0003】
場合によっては、ユーザは、動作の中でも、文書の編集、音楽の再生、インターネットの検索など、一定の動作を実施するためにアプリケーションと対話し得る。いくつかのアプリケーションは、ユーザがアプリケーションによって実施されたアクションを取り消す(undo)ことを可能にする特徴を提供し得る。たとえば、ユーザは、アプリケーションと手動で対話して、アプリケーションをアプリケーションの現在の状態からアプリケーションの前の状態に復帰することができる。ユーザは自動アシスタントを採用して、現在の状態に到達するための一定の動作をアプリケーションに実施させることができ、各動作は、前の状態に復帰するために、アプリケーションのインターフェースにおいて手動で取り消される必要があり得る。たとえば、ユーザがアシスタント対応デバイス(たとえば、スタンドアロンスピーカーデバイス)を介してアプリケーションと対話しているとき、このように前の状態に復帰することは、ユーザが異なるデバイス(たとえば、ラップトップ)においてアプリケーションを初期化することを必要とし得る。これは、追加デバイスが所与のネットワーク上でアクティブ化されるにつれてますます消費され得る電力およびネットワーク帯域幅などの他のリソースを無駄にすることがある。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書に記載する実装形態は、様々な異なるアプリケーションおよび/またはスマートデバイスに対する取り消す動作を実施し得る自動アシスタントに関する。取り消す動作は、ユーザが本来ならコンピューティングデバイスにおいて手動で実施することになるいくつかの動作を低減し、それにより、計算リソースを保存し得る。たとえば、取り消す動作を実施する自動アシスタントは、ユーザがアプリケーションインターフェースを介してアプリケーションとの手動の対話に費やさなければならない時間量および/またはユーザがそのアプリケーションと対話することによって提供しなければならないことになる入力品質を低減し、それにより、電力消費を低減し得る。さらに、アプリケーションおよび/またはスマートデバイス状態を復帰するためのロバストな特徴を備えた自動アシスタントを採用することは、ユーザが、対象を明確化する多数の入力を提供する必要なしに、そのアプリケーションからの所望の出力をより容易に受信することおよび/またはそのアプリケーションを使用して所望のアクションを実施させることを可能にし得る。これは、追加または代替として、ユーザが本来なら特定のアプリケーション状態を達成するために手動のユーザ入力に排他的に依存するときに消費され得る処理帯域幅を保存する。
【0005】
いくつかの実装形態では、自動アシスタントは、1つまたは複数の条件が満たされるときに「取り消す」コマンドを有効にするように動作し、それにより、「取り消す」動作が偶発的にトリガされるインスタンスを制限し得る。たとえば、自動アシスタントが、ユーザからの事前の許可を得て、ユーザがアプリケーションおよび/またはアプリケーションに関連付けられたデバイスを制御するための1つまたは複数の動作をアプリケーションに実施させていると決定するとき、自動アシスタントは取り消すコマンドを有効にし得る。アプリケーションは、限定はしないが、文書編集アプリケーション、音楽アプリケーション、テキストメッセージングアプリケーション、電子メールアプリケーション、連絡アプリケーション、カレンダーアプリケーション、リマインダアプリケーション、ユーザに関連付けられたスマートデバイスのエコシステム内に含まれ、かつ自動アシスタントによって制御され得る1つまたは複数のスマートデバイス(たとえば、スマート照明、スマートサーモスタット、スマートアプライアンス、スマートTV、スマートスピーカー、および/または任意の他のモノのインターネット(IoT)デバイス)に関連付けられたスマートデバイスアプリケーション、および/またはユーザのコンピューティングデバイスによってアクセス可能であり、自動アシスタントにアクセスをやはり提供する任意の他のアプリケーションであってよい。さらに、ユーザ(または、ユーザに代わって自動アシスタント)は、アプリケーションと対話して、アプリケーションおよび/またはアプリケーションに関連付けられたデバイスを様々な状態にわたって遷移させることができる。たとえば、アプリケーションが文書編集アプリケーションである実装形態では、文書のテキストを追加、除去、または修正することは、アプリケーションが様々な状態にわたって遷移することに対応し得る。別の例として、アプリケーションがスマートデバイスアプリケーションである実装形態では、対応するスマートデバイスの状態を変更することは、アプリケーションおよび/またはスマートデバイスが様々な状態にわたって遷移することに対応し得る。また、たとえば、アプリケーションがカレンダーアプリケーションまたはリマインダアプリケーションである実装形態では、エントリのテキストの追加、除去、または修正は、アプリケーションが様々な状態にわたって遷移することに対応し得る。
【0006】
たとえば、ユーザが、文書編集アプリケーションを介して文書を編集しており、草案文書に対して数時間にわたって様々な異なる編集を実施すると仮定する。ユーザが、同僚から受け取ったフィードバックに基づいて、草案文書は最近の編集のうちのいくつかを含むべきではないと決定し、応答して、ユーザがそれらの最近の編集を取り消すために自動アシスタントを起動しているとさらに仮定する。この例では、ユーザは、自動アシスタントを起動して取り消す動作を初期化するために、「取り消して」など、音声発話(spoken utterance)を提供し得る。音声発話の受信に応答して、自動アシスタントは、ユーザが、文書に関して実施されている1つまたは複数の動作を取り消すために自動アシスタントを起動すると決定し得る。さらに、自動アシスタントは、ユーザが指している可能性がある1つまたは複数の特定のアプリケーション(たとえば、文書編集アプリケーション)および/またはユーザが指している可能性がある1つまたは複数の動作(たとえば、それらの最近の編集)を識別し得る。
【0007】
別の例として、ユーザが、台所のスマート照明を「オフ」状態から「オン」状態に遷移させる、「台所照明をオンにして、50%に減光して」というコマンドを含む音声発話を提供し、次いで、スマート照明の強度を50%の強度に設定すると仮定する。ユーザが、自動アシスタントを起動して取り消す動作を初期化するために、「取り消して」などの追加の音声発話を提供するとさらに仮定する。追加の音声発話の受信に応答して、自動アシスタントは、スマート照明に対して実施されている1つまたは複数の動作を取り消すためにユーザが自動アシスタントを起動していると決定し得る。さらに、自動アシスタントは、ユーザが指している可能性がある1つまたは複数の特定のアプリケーション(たとえば、スマート照明アプリケーション)および/またはユーザが指している可能性がある1つまたは複数の動作(たとえば、スマート照明をオンにするおよび/またはスマート照明を減光する)を識別し得る。この例では、自動アシスタントは、「取り消して」は単にスマート照明の「減光する」ことを取り消すことを指すと決定することができ、自動アシスタントは、前の強度にスマート照明を再度復帰させることができる。追加または代替として、自動アシスタントは、「取り消して」がスマート照明を「オンにすること」とスマート照明を「減光すること」の両方を取り消すことを指すと決定し得る。この例では、自動アシスタントは、(また随意に、スマート照明の強度を変更せずに)スマート照明を「オフ」状態に再度復帰させることができる。さらに、これらの例では、自動アシスタントは、ユーザに提示するために提供されることになるプロンプトを生成し得、プロンプトに応答して受信されたユーザ入力に基づいて、ユーザが照明をオンにすることおよび/または照明を減光することを対象とする取り消す動作を意図するかどうかを決定し得る。対照的に、追加の音声発話が「減光することを取り消す」と指定した場合、自動アシスタントは、何のプロンプトも生成せずに、スマート照明を前の強度に再度復帰させて、スマート照明を「オン」状態に維持し得る。さらに、追加の音声発話が「それをすべて取り消す」などと指定した場合、自動アシスタントは、何のプロンプトも生成せずに、スマート照明を(また随意に、スマート照明の強度を変更せずに)「オフ」状態に再度復帰させることができる。また、対照的に、台所照明を「オン」にし、台所照明を「減光する」コマンドが別個の発話において受信されている場合、自動アシスタントは、最近の状態変化を取り消すことができる。
【0008】
いくつかの実装形態では、ユーザからの事前の許可を得て、自動アシスタントは、ユーザに関連付けられたアプリケーションによって実施されている最近の動作および/または(たとえば、1つまたは複数のスマートデバイスを制御している)アプリケーションに代わって自動アシスタントによって実施されているアクションを特徴付けるデータを含む動作ログにアクセスし得る。動作ログは、ユーザが取り消すことを求めている可能性がある、様々な粒度レベルで定義される特定の動作および/または動作のクラスタ(たとえば、特定の語または句の包含の取消し対文書例内の文または段落の包含の取消し)を識別するために、ヒューリスティックプロセスおよび/または1つまたは複数のトレーニングされた機械学習モデルを使用して処理され得る。たとえば、動作ログは、ユーザが発行した「取り消す」コマンドに最も相関する1つまたは複数の最近の動作を識別するために処理され得る。これらの実装形態のいくつかのバージョンでは、動作ログは、ユーザと1つまたは複数のアプリケーションおよび/またはスマートデバイスとの間の様々な対話を特徴付けるデータ、ならびにそれらの対話に関連付けられ得る他のコンテキストデータに基づいて、自動アシスタントによって生成され得る。たとえば、ユーザは、ユーザがコンピューティングデバイスのディスプレイインターフェースの前景内でアプリケーションを閲覧していたときに、音声発話「取り消して」を提供した可能性がある。アプリケーションのこの前景位置は、ユーザが動作ログ内のアプリケーションの直近の動作のみが取り消されるべきであることを要求している可能性が高いと決定するために自動アシスタントによって使用され得るコンテキストデータによって特徴付けられてよい。この決定に基づいて、自動アシスタントは、アプリケーションを使用して実施された1つまたは複数の直近の動作を識別し、それらの直近の動作を取り消すために1つまたは複数の他の動作を実施させることができる。別の例として、1つまたは複数の特定の動作が実施されるしきい値持続時間内にユーザが音声発話「取り消して」を提供した可能性がある。1つまたは複数の特定の動作および取り消す動作のこの時間的な近接性は、ユーザが特定の動作のうちの1つまたは複数が取り消されるべきであることを要求している可能性が高いと決定するために自動アシスタントによって使用され得るコンテキストデータによって特徴付けられ得る。この決定に基づいて、自動アシスタントは、特定の動作のうちの1つまたは複数を識別し、それらの直近の動作を取り消すために1つまたは複数の他の動作を実施させることができる。さらに、自動アシスタントは、意味的に関係するアプリケーションを使用して実施される動作内の1つまたは複数の直近の動作を識別し得る。たとえば、文書編集アプリケーション内の文書の段落または文書の一部分に対する編集は、意味的に関係すると決定され得、それらの段落または部分に対する編集は、ユーザが取り消すことを求めている可能性がある動作のクラスタとして識別され得る。
【0009】
いくつかの実装形態では、自動アシスタントは、自動アシスタントによって取り消されることになる動作に対する1つまたは複数のオプションをユーザに提供し得る。代替または追加として、自動アシスタントは、いくつかの動作を取り消すためにそこから選択するための1つまたは複数の前のアプリケーション状態をユーザに提供し得る。たとえば、音声発話「取り消して」に応答して、自動アシスタントは、2つ以上の選択可能なグラフィカルユーザインターフェース(GUI)要素をユーザがアクセスしているディスプレイインターフェースにおいてレンダリングさせることができる。第1の選択可能なGUI要素は、アプリケーションの第1の前の状態を反映するコンテンツを含んでよく、第2の選択可能なGUI要素は、アプリケーションの異なる、第2の前の状態を反映するコンテンツを含んでよい。たとえば、第1の選択可能なGUI要素および第2の選択可能なGUI要素は各々、ユーザが草案文書に対して行った1つまたは複数の直近の編集に先立って、ユーザが文書編集アプリケーションを介して編集していた草案文書の異なるレンダリング、対応するスマートデバイスアプリケーションを介して最近変更させられたスマートデバイスの異なる状態、およびカレンダーアプリケーションまたはリマインダアプリケーションを介して最近変更させられたカレンダーエントリまたはリマインダに対する異なる日および/または時間をそれぞれ含み得る。ユーザが復帰すべき特定の状態を識別した場合、ユーザはその特定の状態に対応する特定の選択可能なGUI要素を選択し得る。応答して、自動アシスタントは、草案文書が選択されたGUI要素に対応する状態に戻るように、文書編集アプリケーションに草案文書を修正させることができる。
【0010】
いくつかの実装形態では、ユーザは、いくつかの動作が取り消されるために選択され、他の動作が取り消されないように、自動アシスタントが特定のタイプの取消しを実施することを要求し得る。動作は、ユーザによって提供された入力のコンテンツおよび/またはその入力に関連付けられたコンテキストデータに従って、自動アシスタントによって選択され得る。たとえば、ユーザは、いくつかの歌を再生リストに追加し、他の歌を再生リストから除去することによって、音楽アプリケーションの再生リストを編集していることがある。ユーザが再生リストを編集し続けている間に、ユーザは、「アシスタント、それらの追加を取り消して」など、音声発話を提供することによって、その自動アシスタントを起動し得る。応答して、自動アシスタントは、音楽アプリケーションを介してユーザが実施した直近の動作のうちのいくつかが、歌を追加すること、並べ替えること、および/または再生リストから除去することを含むと決定し得る。自動アシスタントは、次いで、歌を除去することに対する任意の動作の選択をバイパスしながら、歌を追加する直近の動作を選択し得る。自動アシスタントは、次いで、ユーザに関連付けられた再生リストに歌を追加した前の動作の「取消し」を音楽アプリケーションに行わせる1つまたは複数の動作を実施し得る。これらのおよび他の方法で、ユーザは、ユーザがそのような変更を実現するために音楽アプリケーションと直接的に手動で対話する必要なしに、ユーザが取り消させることを望む特定の動作を識別するために自動アシスタントに依存し得る。
【0011】
上記の説明は、本開示のいくつかの実装形態の概要として提供された。それらの実装形態、および他の実装形態のさらなる記述は、以下でより詳細に説明される。
【図面の簡単な説明】
【0012】
図1A】ユーザが別個のアプリケーションを前の動作状態に復帰するために自動アシスタントを起動するビューを示す図である。
図1B】ユーザが別個のアプリケーションを前の動作状態に復帰するために自動アシスタントを起動するビューを示す図である。
図1C】ユーザが別個のアプリケーションを前の動作状態に復帰するために自動アシスタントを起動するビューを示す図である。
図2A】ユーザがサードパーティアプリケーションを前の動作状態に復帰するために自動アシスタントを採用するビューを示す図である。
図2B】ユーザがサードパーティアプリケーションを前の動作状態に復帰するために自動アシスタントを採用するビューを示す図である。
図2C】ユーザがサードパーティアプリケーションを前の動作状態に復帰するために自動アシスタントを採用するビューを示す図である。
図2D】ユーザがサードパーティアプリケーションを前の動作状態に復帰するために自動アシスタントを採用する図である。
図2E】ユーザがサードパーティアプリケーションを前の動作状態に復帰するために自動アシスタントを採用するビューを示す図である。
図3】様々なアプリケーションをそれらのアプリケーションが前のユーザ入力を介して到達した可能性がある前の状態に復帰するための動作を実施し得る自動アシスタントを提供するシステムを示す図である。
図4】自動アシスタントに1つまたは複数の別個のアプリケーションの各アプリケーションをそれぞれのアプリケーション状態に復帰させるための方法を示す図である。
図5】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0013】
図1A図1B、および図1Cは、ユーザ102が対応するアプリケーションを前の動作状態に復帰するために自動アシスタントを起動しているビュー100、ビュー120、およびビュー140をそれぞれ示す。ユーザ102がそのような動作を実施するために自動アシスタントを起動することを可能にすることは、ユーザ102が本来ならば対応するアプリケーションと行うことになる直接対話の数を低減し得る。結果として、いくつかのタスクは、特定のコンピューティングデバイス104においてより迅速に実施され得、メモリおよび処理帯域幅など、いくつかの計算リソースが保存され得る。
【0014】
一例として、ユーザ102は、ユーザ102がオーディオデータを編集することを可能にする、サードパーティオーディオアプリケーションなど、サードパーティアプリケーションと対話していることがある。サードパーティオーディオアプリケーションは、コンピューティングデバイス104の1つまたは複数のインターフェースを介してユーザ102から入力を受信し得る。たとえば、コンピューティングデバイス104は、ユーザ102の手108からタッチ入力を受信し得るディスプレイインターフェース106を含み得る。本明細書で使用するとき、ファーストパーティという用語は、自動アシスタントを公開し維持するエンティティを指し、サードパーティという用語は、ファーストパーティに関連付けられたエンティティとは別個の、自動アシスタントを公開および維持しないエンティティを指す。これらの技法は概して、本明細書においてサードパーティアプリケーションに関して説明されるが、それは例のためであり、限定的であることを意味せず、本明細書で説明する技法はファーストパーティアプリケーションに関しても利用され得ることを理解されたい。
【0015】
ユーザ102がサードパーティオーディオアプリケーションと対話している間、サードパーティオーディオアプリケーションは第1の状態114にあり得る。サードパーティオーディオアプリケーションは、ユーザ102からの1つまたは複数の入力(たとえば、音声入力、タッチ入力、および/またはタイプされた入力)に応答して状態間で遷移し得る。たとえば、ユーザ102は、ユーザ102が開いたオーディオファイルを編集するために、サードパーティオーディオアプリケーションインターフェース110と対話し得る。たとえば、ユーザ102がオーディオファイル内の雑音を低減するためにフィルタを適用し、オーディオファイル内のいくつかの周波数の振幅を低減するために等化器を適用すると仮定する。ユーザ102がこれらの入力のうちの1つまたは複数をサードパーティオーディオアプリケーションに提供したとき、サードパーティオーディオアプリケーションは、図1Bのビュー120に示すように、第2の状態124を表し得る。言い換えれば、ユーザ102からの入力はオーディオファイルを修正させ、それにより、サードパーティオーディオアプリケーションに異なる状態を表させる。
【0016】
いくつかの実装形態では、ユーザ102は、サードパーティオーディオアプリケーションを第2の状態124から第1の状態114に再度復帰させるために、コンピューティングデバイス104(または、ネットワーク(たとえば、Wi-Fi、Bluetoothなどのローカルエリアネットワーク(LAN)、および/またはインターネットなどの広域ネットワーク(WAN))を介して、コンピューティングデバイス104と通信している別個のコンピューティングデバイス)を介して自動アシスタントを起動し得る。ユーザ102は、「アシスタント、取り消して」など音声発話122を提供することによって自動アシスタントにこの「取り消す」動作の実施を初期化させることができる。音声発話122の受信に応答して、自動アシスタントは、ユーザ102が指している可能性がある1つまたは複数のアプリケーションおよび/または1つまたは複数の動作を識別し得る。たとえば、いくつかの実装形態では、自動アシスタントは、ユーザ102に関連付けられた様々なアプリケーションによって実施される動作を識別するログデータにアクセスし得る。いくつかの実装形態では、ユーザ102が様々なアプリケーションについて指している可能性がある動作のクラスタを識別するために、ログデータ内の動作識別子が処理され得る。たとえば、音声発話122に応答して、動作のうちの1つまたは複数が「取り消される」べきであるかどうかを決定するために、動作間の類似性が識別され得る。
【0017】
たとえば、対応する入力の受信時間、実行時間、対応するデバイスのロケーション、動作のタイプ、動作に関連付けられたアプリケーション、動作に関連付けられたデータ、そのタイプの動作が実施される(また随意に、その後取り消される)頻度、実施されているそのタイプの動作と後続の動作(また随意に、後続の動作が取り消す動作である)との間の時間量、前の動作および/または前の動作中に対話されたコンテンツに関連するメタデータ、1つまたは複数の動作が実施されたときに文書内に含まれるテキストから導出される特徴(たとえば、1つまたは複数の語または句、文、段落などに対する埋込み)、および/または動作の任意の他の特性などの特性が自動アシスタントによって識別され得る。代替または追加として、1つまたは複数のアプリケーションの状態を識別するために、ユーザからの事前の許可を得て、スクリーンキャプチャデータが生成され得る。特定のアプリケーション状態に再度復帰するための、動作のセットから選択されたいくつかの動作が識別され得るように、ログデータに関連付けられた1つまたは複数の状態が記憶され得る。特に、これらの特性のうちの1つまたは複数は、コンピューティングデバイス104のユーザに固有であり得るか、または複数のユーザに対して一般化され得る。
【0018】
図1A図1Cの例によれば、音声発話122に応答して、自動アシスタントは、サードパーティオーディオアプリケーションが第1の状態114に戻るために実施し得る1つまたは複数の他の動作を識別し得る。たとえば、スクリーンキャプチャデータおよび/またはログデータは、ユーザ102がオーディオファイルに対するフィルタリング動作および等化動作をサードパーティオーディオアプリケーションに実施させたことを示し得る。いくつかの実装形態では、この決定は、対応するメニュー項目(たとえば、図1Bに示される)がユーザ102および/または音声発話122を提供したユーザ102によって初期化された動作に関する様々な詳細を(ユーザからの事前の許可を得て)自動アシスタントに提供するコンピューティングデバイス104のオペレーティングシステムによって選択されていることに基づき得る。
【0019】
図2A図2B図2C図2D、および図2Eは、ユーザ202がサードパーティアプリケーションを前の動作状態に復帰するために自動アシスタントを採用しているビュー200、ビュー220、ビュー240、ビュー260、およびビュー280をそれぞれ示す。サードパーティアプリケーションは、たとえば、ユーザ202が様々なスケジューリングタスクを実施することを可能にするサードパーティカレンダーアプリケーションであってよい。サードパーティカレンダーアプリケーションは、自動アシスタントにやはりアクセスを提供するコンピューティングデバイス204にインストールされてよいか、または本来ならそれを介してアクセス可能であってよい。これらのおよび他の方法で、ユーザ202は、自動アシスタントおよびサードパーティカレンダーアプリケーションインターフェース210を介してサードパーティカレンダーアプリケーションを制御し得る。
【0020】
たとえば、ユーザ202は、ディスプレイインターフェース206を対象とするタッチ入力またはタイプされた入力を介して、サードパーティカレンダーアプリケーションインターフェース210と対話するためにその手212を使用して、サードパーティカレンダーアプリケーションによって管理される異なる日に対する様々なイベントをスケジュールし得る。ユーザ202は、月曜日など、特定の日をタップして、バンドリハーサルなどのイベントを追加し得る。加えて、ユーザ202は、図2Aのビュー200に示すように、火曜日など、別の日をタップして、別のイベントを追加し得る。サードパーティカレンダーアプリケーションインターフェース210と対話することによって、ユーザ202は、ユーザ入力をコンピューティングデバイス204のオペレーティングシステムからサードパーティカレンダーアプリケーションに通信させることができる。結果として、ユーザ入力は、サードパーティカレンダーアプリケーションに1つまたは複数の動作を実施させること、および/またはサードパーティカレンダーアプリケーションの動作状態を変更させることができる。たとえば、新しいイベントを作成するためにドロップダウンメニューを選択すること、および新しいイベントのいくつかのフィールドにテキストを入力することなど、1つまたは複数のユーザ入力の受信に応答して、サードパーティカレンダーアプリケーションインターフェース210は新しいイベント224をレンダリングし得る。
【0021】
いくつかの実装形態では、自動アシスタントは、サードパーティカレンダーアプリケーションの1つまたは複数の動作および/または1つまたは複数の動作状態を特徴付けるログデータを生成すること、および/またはそれにアクセスすることができる。たとえば、ログデータは、サードパーティカレンダーアプリケーションインターフェース210においてレンダリングされたカレンダーが何のイベントも含まない第1のアプリケーション状態を特徴付けることができる。ログデータは、サードパーティカレンダーアプリケーションインターフェース210においてレンダリングされたカレンダーがカレンダー上で月曜日に対して単一のイベントを含む第2のアプリケーション状態を特徴付けることができる。さらに、ログデータは、サードパーティカレンダーアプリケーションインターフェース210が、月曜日および火曜日に対してイベントをレンダリングしているが、火曜日に対する新しいイベント224が完了していない、第3のアプリケーション状態を特徴付けることができる。
【0022】
ユーザがサードパーティカレンダーアプリケーションインターフェース210と対話している間、ユーザ202は、サードパーティカレンダーアプリケーションを前の状態に復帰するために自動アシスタントを起動し得る。たとえば、ユーザ202は、「アシスタント、取り消して」などの音声発話222を提供し得る。ユーザ202はサードパーティカレンダーアプリケーションが復帰させるための特定の状態を指定しないが、自動アシスタントは、それでも、ユーザ202が回復することを求めている動作状態を独立して決定するか、またはユーザ202がそこから選択するための状態オプションを提供することのいずれかが可能である。いくつかの実装形態では、コンピューティングデバイス204および/または別個のコンピューティングデバイス244は、音声発話222に対応する入力データ246を処理し得る。入力データ246を処理して、ユーザ202によって自動アシスタントに提出された1つまたは複数の要求を識別し得る。たとえば、自動アシスタントは、音声発話222が、自動アシスタントが1つまたは複数のアプリケーション(たとえば、サードパーティカレンダーアプリケーション、またはコンピューティングデバイス204においてまたは別個のコンピューティングデバイス244においてアクセス可能な別のアプリケーション)における取り消す動作を初期化するための要求に対応すると決定し得る。音声発話222が、自動アシスタントが取り消す動作を初期化するための要求に対応すると決定する際に、自動アシスタントは、自動音声認識(ASR:automatic speech recognition)モデルを使用して、音声発話222を処理して認識されたテキストを生成し得る。さらに、自動アシスタントは、自然言語理解(NLU:natural language understanding)モデルを使用して、認識されたテキストを処理して自動アシスタントが取り消す動作を初期化するための要求を示す意図を識別し得る。音声発話222を処理して、それが、自動アシスタントが取り消す動作を初期化するための要求を含むと決定することについては、(たとえば、図3に関して)本明細書で詳細に説明する。
【0023】
この決定に基づいて、自動アシスタントは、1つまたは複数のアプリケーションおよび/またはユーザ202に関連付けられ得るアプリケーションのうちの1つまたは複数に関連付けられるスマートデバイスの1つまたは複数の状態を特徴付ける状態データ248を生成および/または識別し得る。たとえば、ユーザ202によってアクセスされている1つまたは複数のアプリケーションに関連付けられたアプリケーションデータは、ユーザ202によって最近修正されているアプリケーション状態を識別するために処理され得る。追加または代替として、音声発話222に関連付けられた様々なコンテキスト特徴を特徴付けるコンテキストデータが処理され得る。いくつかの実装形態では、状態データ248は、ヒューリスティックプロセスを介して、および/または1つまたは複数のトレーニングされた機械学習モデルを使用して、生成され得る。たとえば、1つまたは複数のトレーニングされた機械学習モデルは、ユーザからの要求と1つまたは複数のアプリケーション状態との間の相関を識別するために、アプリケーションデータ、ログデータ、および/またはコンテキストデータを処理するときに使用され得る。
【0024】
状態選択データ250は、取り消す動作に対する要求に相関するとして識別されている1つまたは複数のアプリケーション状態に基づいて生成され得る。状態選択データ250は、たとえば、ユーザ202がアプリケーションおよび/またはスマートデバイスを復帰することを自動アシスタントに要求している可能性がある複数の状態を識別し得る。たとえば、状態選択データ250は、サードパーティカレンダーアプリケーションに対するアプリケーションインターフェースに対応するグラフィカルデータ(たとえば、視覚的コンテンツ、自然言語コンテンツ)を含み得る。自動アシスタントは、状態選択データ250を使用して、ユーザ202が特定のアプリケーション状態を選択することを可能にするためのプロンプトをコンピューティングデバイス204のアプリケーションインターフェースにおいて生成し得る。いくつかの実装形態では、自動アシスタントは、コンピューティングデバイス204のインターフェースに状態選択オプションをユーザ202に対してレンダリングさせるために、サードパーティカレンダーアプリケーションおよび/またはコンピューティングデバイス204のオペレーティングシステムに状態選択データを提供し得る。
【0025】
たとえば、図2Dのビュー220において提供されるように、自動アシスタントは、第1の選択可能要素262および第2の選択可能要素264をコンピューティングデバイス204のディスプレイインターフェース206においてレンダリングさせることができる。選択可能要素がディスプレイインターフェース206においてレンダリングされるとき、ユーザ202は、ユーザ202がサードパーティカレンダーアプリケーションを復帰することを望む所望のアプリケーション状態に対応する特定の選択可能要素を少なくとも第1の選択可能要素262および第2の選択可能要素264の中から選択することによって動作266を実施し得る。たとえば、ユーザ202は、その手212を使用して、第2の選択可能要素264に対応するロケーションにおいてディスプレイインターフェース206をタップし得る。応答して、自動アシスタントは、(たとえば、図2Bからの)月曜日のイベントおよび火曜日のイベントがもはやカレンダーに入力されないアプリケーション状態に復帰するための1つまたは複数の動作をサードパーティカレンダーアプリケーションに実施させることができる。このアプリケーション状態は、サードパーティカレンダーアプリケーションインターフェース210の部分282がもはや月曜日のイベントおよび火曜日のイベントを示さない、図2Dで提供される第2の選択可能要素264の画像コンテンツに対応し得る。さらに、これは、本来ならユーザがイベントを除去するためにサードパーティカレンダーアプリケーションに対する命令を直接的に、また後で入力しなければならない場合に消費されることになる計算リソースおよび時間を保存し得る。
【0026】
いくつかの実装形態では、自動アシスタントは、様々なアプリケーションの様々なアプリケーションインターフェースを特徴付けるグラフィカルコンテンツを生成し得、グラフィカルコンテンツは、ログデータ内で識別される動作に関連付けられて記憶され得る。これらのおよび他の方法で、ユーザがアプリケーションおよび/またはスマートデバイスを前の状態に復帰するように自動アシスタントに要求するとき、GUI選択可能要素のユーザ選択はログデータ内で識別される1つまたは複数の動作に相関し得る。自動アシスタントは、次いで、アプリケーションが1つまたは複数の動作を取り消すために、および/またはアプリケーションおよび/またはスマートデバイスを前の状態に復帰するために、実施すべき1つまたは複数の他の動作を識別し得る。いくつかの実装形態では、ユーザがアプリケーションおよび/またはスマートデバイスをそこから復帰することを自動アシスタントに要求している現在の状態を引き起こした1つまたは複数の動作を識別するとすぐに、自動アシスタントは、アプリケーションプログラミングインターフェースを介して動作データを要求し得る。動作データは、1つまたは複数の動作を取り消すことになる1つまたは複数の他の動作を識別し得る。この動作データを使用して、自動アシスタントは、次いで、アプリケーションおよび/またはスマートデバイスが1つまたは複数の他の動作を実施することを要求し得る。
【0027】
図3は、様々なアプリケーションをそれらのアプリケーションおよび/またはスマートデバイスが前のユーザ入力を介して到達した可能性がある前の状態に復帰するための動作を実施し得る自動アシスタントを提供するシステム300を示す。自動アシスタント304は、コンピューティングデバイス302および/またはサーバデバイスなど、1つまたは複数のコンピューティングデバイスにおいて提供されるアシスタントアプリケーションの部分として動作し得る。ユーザは、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションおよび/またはスマートデバイスとの間のインターフェースを提供することが可能な任意の他の装置であってよいアシスタントインターフェース320を介して自動アシスタント304と対話し得る、たとえば、ユーザは、口頭入力、テキスト入力、および/またはタッチ入力をアシスタントインターフェース320に提供して自動アシスタント304に1つまたは複数のアクション(たとえば、データを提供すること、周辺デバイスを制御すること、エージェントにアクセスすること、入力および/または出力を生成することなど)を初期化させることによって、自動アシスタント304を初期化し得る。代替として、自動アシスタント304は、1つまたは複数のトレーニングされた機械学習モデルを使用してコンテキストデータ336を処理することに基づいて初期化され得る。コンテキストデータ336は、自動アシスタント304がアクセス可能な環境の1つまたは複数の特徴、および/または自動アシスタント304と対話することが予測されるユーザの1つまたは複数の特徴を特徴付けることができる。コンピューティングデバイス302は、ディスプレイデバイスを含んでよく、ディスプレイデバイスは、ユーザがタッチインターフェースを介してコンピューティングデバイス302のアプリケーション334を制御することを可能にするためのタッチ入力および/またはジェスチャを受信するためのタッチインターフェースを含むディスプレイパネルであってよい。いくつかの実装形態では、コンピューティングデバイス302はディスプレイデバイスが欠如していることがあり、それにより、グラフィカルユーザインターフェース出力を提供せずに、可聴ユーザインターフェース出力を提供する。さらに、コンピューティングデバイス302は、話された自然言語入力をユーザから受信するために、マイクロフォンなどのユーザインターフェースを提供し得る。いくつかの実装形態では、コンピューティングデバイス302は、タッチインターフェースを含んでよく、カメラがないことがあるが、1つまたは複数の他のセンサーを随意に含んでよい。
【0028】
コンピューティングデバイス302および/または他のコンピューティングデバイスは、インターネットなど、ネットワークを介してサーバデバイスと通信していることがある。加えて、コンピューティングデバイス302および任意の他のコンピューティングデバイスは、Wi-Fiネットワークなど、ローカルエリアネットワーク(LAN)を介して互いと通信していることがある。コンピューティングデバイス302は、コンピューティングデバイス302において計算リソースを保存するために、計算タスクをサーバデバイスにオフロードし得る。たとえば、サーバデバイスは自動アシスタント304をホストすることができ、および/またはコンピューティングデバイス302は、1つまたは複数のアシスタントインターフェース320において受信された入力をサーバデバイスに送信し得る。しかしながら、いくつかの実装形態では、自動アシスタント304はコンピューティングデバイス302においてホストされてよく、自動アシスタント動作に関連付けられ得る様々なプロセスは、コンピューティングデバイス302において実施され得る。
【0029】
様々な実装形態では、自動アシスタント304のすべての態様またはすべてに満たない態様がコンピューティングデバイス302上で実装され得る。それらの実装形態のうちのいくつかでは、自動アシスタント304の態様は、コンピューティングデバイス302を介して実装され、自動アシスタント304の他の態様を実装し得るサーバデバイスとインターフェースし得る。サーバデバイスは、複数のスレッドを介して、複数のユーザおよびその関連付けられたアシスタントアプリケーションに随意にサービスし得る。自動アシスタント304のすべての態様またはすべてに満たない態様がコンピューティングデバイス302を介して実装される実装形態では、自動アシスタント304は、(たとえば、オペレーティングシステムの「上部に」インストールされた)コンピューティングデバイス302のオペレーティングシステムとは別個のアプリケーションであってよいか、または代替として、(たとえば、オペレーティングシステムのアプリケーションと見なされるが、それと一体化された)コンピューティングデバイス302のオペレーティングシステムによって直接的に実装されてよい。したがって、本明細書で説明する動作は、コンピューティングデバイス302において(または、ネットワークを介してコンピューティングデバイス302と通信している別のコンピューティングデバイスにおいて局所的に)、サーバにおいてリモートで、および/またはそれらの任意の組合せで実施され得る。
【0030】
いくつかの実装形態では、自動アシスタント304は、コンピューティングデバイス302および/またはサーバデバイスに対する入力および/または出力を処理するために複数の異なるモジュールを採用し得る入力処理エンジン306を含んでよい。たとえば、入力処理エンジン306は、アシスタントインターフェース320において受信されたオーディオデータを処理して、ASRモデルを使用してオーディオデータで具現されたテキストを識別し得る音声処理エンジン308を含んでよい。オーディオデータは、コンピューティングデバイス302における計算リソースを保存するために、たとえば、コンピューティングデバイス302からサーバデバイスに送信され得、オーディオデータは、ASRモデルを使用してサーバにおいてリモートで処理され得る。追加または代替として、オーディオデータは、ASRモデルを使用してコンピューティングデバイス302において局所的に、排他的に処理され得る。
【0031】
オーディオデータをテキストに変換するためにASRモデルによって利用されるプロセスは、語または句に対応するオーディオデータのグループを識別するためにニューラルネットワークおよび/または統計モデルを採用し得る音声認識アルゴリズムを含んでよい。オーディオデータから変換されたテキストは、データパーシングエンジン310によってパースされ、コマンドフレーズ、意図、アクション、スロット値、および/またはユーザによって指定される任意の他のコンテンツを生成および/または識別するために使用され得るテキストデータとして自動アシスタント304に利用可能にされ得る。いくつかの実装形態では、データパーシングエンジン310によって提供される出力データは、ユーザが、自動アシスタント304および/または自動アシスタント304を介してアクセスされることが可能なアプリケーションもしくはエージェントによって実施されることが可能な特定の意図、アクション、および/またはルーチンに対応する入力を提供したかどうかを決定するためにパラメータエンジン312に提供され得る。たとえば、アシスタントデータ338は、サーバデバイスおよび/またはコンピューティングデバイス302において記憶されてよく、自動アシスタント304によって実施されることが可能な1つまたは複数のアクションを定義するデータ、ならびにそれらのアクションを実施するために必要なパラメータを含んでよい。パラメータエンジン312は、意図、アクション、および/またはスロット値に対する1つまたは複数のパラメータを生成し、1つまたは複数のパラメータを出力生成エンジン314に提供し得る。出力生成エンジン314は1つまたは複数のパラメータを使用して、出力をユーザに提供するためにアシスタントインターフェース320と通信すること、および/またはアプリケーション334および/またはそれに関連付けられたスマートデバイスのうちの1つまたは複数に出力を提供するために、1つまたは複数のアプリケーション334および/またはそれに関連付けられたスマートデバイスと通信することが可能である。
【0032】
いくつかの実装形態では、自動アシスタント304は、コンピューティングデバイス302のオペレーティングシステムの「上部に」インストールされ得るアプリケーションであってよく、および/または、それ自体、コンピューティングデバイス302のオペレーティングシステムの部分(または、その全体)を形成し得る。自動アシスタントアプリケーションは、オンデバイス音声認識、オンデバイス自然言語理解、およびオンデバイス実現を含み、かつ/またはそれらに対するアクセスを有する。たとえば、オンデバイス音声認識は、コンピューティングデバイス302において局所的に記憶されたエンドツーエンド音声認識機械学習モデル(たとえば、ASRモデル)を使用して、(マイクロフォンによって検出された)オーディオデータを処理するオンデバイス音声認識モジュールを使用して実施され得る。オンデバイス音声認識は、オーディオデータ内に存在する音声発話(もしあれば)に対して認識されたテキストを生成する。また、たとえば、オンデバイスNLUは、NLUデータを生成するために、オンデバイス音声認識を使用して生成された認識されたテキスト、および随意にコンテキストデータを処理するオンデバイスNLUモジュールを使用して実施され得る。
【0033】
NLUデータは、音声発話に対応する意図、および随意にその意図に対するパラメータ(たとえば、スロット値)を含み得る。オンデバイス実現は、音声発話の意図(および随意に、その意図に対するパラメータ)を分析するためにとるべきアクションを決定するために、(オンデバイスNLUからの)NLUデータ、および随意に、他のローカルデータを利用するオンデバイス実現モジュールを使用して実施され得る。これは、音声発話に対するローカルおよび/またはリモート応答(たとえば、回答)、音声発話に基づいて実施するために局所的にインストールされたアプリケーションとの対話、音声発話に基づいてIoTデバイスに(直接的にまたは対応するリモートシステムを介して)送信するためのコマンド、および/または音声発話に基づいて実施するための他の分析アクションを決定することを含み得る。オンデバイス実現は、次いで、音声発話を分析するために決定されたアクションのローカルおよび/またはリモートの実施/実行を開始し得る。
【0034】
様々な実装形態では、リモート音声処理、リモートNLU、および/またはリモート実現は、少なくとも選択的に利用され得る。たとえば、認識されたテキストは、リモートNLUおよび/またはリモート実現のためにリモート自動アシスタント構成要素に少なくとも選択的に送信され得る。たとえば、認識されたテキストは、随意に、オンデバイス実施と平行して、またはオンデバイスNLUおよび/またはオンデバイス実現の失敗に応答して、リモート実施のために送信され得る。しかしながら、オンデバイス音声処理、オンデバイスNLU、オンデバイス実現、および/またはオンデバイス実行は、少なくとも音声発話を分析するときにそれらが提供するレイテンシ低減により(音声発話を分析するために必要とされているクライアント-サーバラウンドトリップがないことにより)優先順位付けされ得る。さらに、オンデバイス機能性は、ネットワーク接続性がまったくないかまたは限定されている状況で唯一利用可能な機能性であり得る。
【0035】
いくつかの実装形態では、コンピューティングデバイス302は、コンピューティングデバイス302および/または自動アシスタント304を提供したエンティティとは異なるサードパーティエンティティによって提供され得る1つまたは複数のアプリケーション334を含み得る。自動アシスタント304および/またはコンピューティングデバイス302のアプリケーション状態エンジンは、アプリケーションデータ330にアクセスして、1つまたは複数のアプリケーション334によって実施されることが可能な1つまたは複数のアクション、ならびに1つまたは複数のアプリケーション334の各アプリケーションの状態および/またはコンピューティングデバイス302に関連付けられたそれぞれのスマートデバイスの状態を決定し得る。自動アシスタント304および/またはコンピューティングデバイス302のデバイス状態エンジンは、デバイスデータ332にアクセスして、コンピューティングデバイス302および/またはコンピューティングデバイス302に関連付けられた1つまたは複数のデバイスによって実施されることが可能な1つまたは複数のアクションを決定し得る。さらに、アプリケーションデータ330および/または任意の他のデータ(たとえば、デバイスデータ332)は、その中で特定のアプリケーション334および/またはデバイスが実行しているコンテキスト、および/またはその中で特定のユーザがコンピューティングデバイス302にアクセスしている、アプリケーション334および/または任意の他のデバイスまたはモジュールにアクセスしているコンテキストを特徴付けることができるコンテキストデータ336を生成するために、自動アシスタント304によってアクセスされ得る。
【0036】
1つまたは複数のアプリケーション334はコンピューティングデバイス302において実行しているが、デバイスデータ332は、コンピューティングデバイス302において実行している各アプリケーション334の現在の動作状態を特徴付けることができる。さらに、アプリケーションデータ330は、1つまたは複数のアプリケーション334の指示においてレンダリングされる1つまたは複数のグラフィカルユーザインターフェースのコンテンツなど、実施しているアプリケーション334の1つまたは複数の特徴を特徴付けることができる。追加または代替として、アプリケーションデータ330は、それぞれのアプリケーションの現在の動作状態に基づいて、それぞれのアプリケーションによっておよび/または自動アシスタント304によって更新され得るアクションスキーマを特徴付けることができる。追加または代替として、1つまたは複数のアプリケーション334に対する1つまたは複数のアクションスキーマは、静的な状態にとどまり得るが、自動アシスタント304を介して初期化するための好適なアクションを決定するためにアプリケーション状態エンジンによってアクセスされ得る。
【0037】
コンピューティングデバイス302は、1つまたは複数のトレーニングされた機械学習モデルを使用して、アプリケーションデータ330、デバイスデータ332、コンテキストデータ336、および/またはコンピューティングデバイス302にとってアクセス可能な任意の他のデータを処理し得るアシスタント起動エンジン322をさらに含み得る。アシスタント起動エンジン322は、このデータを処理して、ユーザが自動アシスタント304を起動するための起動句を明示的に発話するのを待つか否かを決定することができるか、または、ユーザが起動句を明示的に発話することおよび/または自動アシスタントを当初起動するための明示的な入力を提供することを必要とする代わりに、データが自動アシスタントを起動するためのユーザによる意図を示すと見なすことができる。たとえば、1つまたは複数のトレーニングされた機械学習モデルは、複数のデバイスおよび/またはアプリケーションが様々な動作状態を表す環境内にいるシナリオに基づくトレーニングデータのインスタンスを使用してトレーニングされ得る。トレーニングデータのインスタンスは、ユーザが自動アシスタントを起動するコンテキストおよびユーザが自動アシスタントを起動しない他のコンテキストを特徴付けるトレーニングデータをキャプチャするために生成され得る。
【0038】
1つまたは複数のトレーニングされた機械学習モデルがトレーニングデータのこれらのインスタンスに従ってトレーニングされるとき、アシスタント起動エンジン322は、自動アシスタント304に、コンテキストおよび/または環境の特徴に基づいて、ユーザからの音声起動句を検出させるか、または検出を制限させることができる。追加または代替として、アシスタント起動エンジン322は、自動アシスタント304に、コンテキストおよび/または環境の特徴に基づいて、ユーザからの1つまたは複数のアシスタントコマンドを検出させるか、または検出を制限させることができる。いくつかの実装形態では、アシスタント起動エンジン322は、コンピューティングデバイス302が別のコンピューティングデバイスからのアシスタント抑圧出力を検出することに基づいて、無効にされ得るか、または制限され得る。これらのおよび他の方法で、コンピューティングデバイス302がアシスタント抑制出力を検出しているとき、自動アシスタント304は、本来ならアシスタント抑制出力が検出されていなかった場合に自動アシスタント304を起動させることになるコンテキストデータ336に基づいて起動されないことになる。
【0039】
いくつかの実装形態では、コンピューティングデバイス302は、1つまたは複数のアプリケーション334の現在の状態および/または1つまたは複数のアプリケーション334の前の状態を特徴付けるデータを自動アシスタント304に提供し得るアプリケーション状態エンジン316を含んでよい。たとえば、アプリケーション状態エンジン316は、コンピューティングデバイス302のインターフェースにおいてレンダリングされ得るアプリケーションインターフェースを特徴付けるGUIデータにアクセスし得る。GUIデータに基づいて、アプリケーション状態エンジン316は、各アプリケーションのそれぞれの状態を特徴付ける状態データを生成し得る。いくつかの実装形態では、アプリケーション状態エンジン316は、ユーザからの事前の許可を得て、コンピューティングデバイス302のオペレーティングシステムによって提供され得るログデータにアクセスし得る。アプリケーション状態エンジン316は、ログデータを使用して、各それぞれのアプリケーションに関する状態データを生成し得る。たとえば、アプリケーション状態エンジン316は、アプリケーション334の特定の状態に対応し得る動作のクラスタを識別するために、ヒューリステック方法および/または1つまたは複数のトレーニングされた機械学習モデルを使用してログデータを処理し得る。たとえば、アプリケーション状態エンジン316は、これらの技法のうちの1つまたは複数を使用して、意味的に関係する1つまたは複数の動作を識別し得る。たとえば、文書編集アプリケーション内の文書の第1のセクションに対する編集は、意味的に互いと関係し得、文書編集アプリケーション内の文書の第2のセクションに対する編集は、意味的に互いと関係し得るが、文書の第1のセクション内の編集には関係し得ない。これらのおよび他の方法で、自動アシスタント304は、アプリケーション334を特定の状態に復帰するためのユーザからの要求に応答して、特定の状態を容易に識別し得る。
【0040】
いくつかの実装形態では、コンピューティングデバイス302は、1つまたは複数のアプリケーション334および/またはアプリケーション334のうちの1つまたは複数に関連付けられたスマートデバイスを1つまたは複数のそれぞれの前の状態に復帰するための動作を識別するために、アプリケーション状態エンジン316によって生成されたデータを処理し得る動作復帰エンジン318を含んでよい。たとえば、アプリケーション状態エンジン316が、ログデータ内で識別された動作のセットに基づいて、アプリケーション334および/またはスマートデバイスの特定の状態を識別する状態データを生成するとき、動作復帰エンジン318は、動作のセットに対する識別子にアクセスし得る。これらの識別子に基づいて、動作復帰エンジン318は、動作のセットを取り消すための1つまたは複数の他の動作を識別するために、APIおよび/または他のアプリケーションインターフェースを使用し得る。これらのおよび他の方法で、アプリケーション334および/またはアプリケーション334に関連付けられたスマートデバイスの特定の状態が、ユーザが「取り消す」ことを望む状態になることが要求されるとき、自動アシスタント304は、1つまたは複数の他の動作を識別し得る。自動アシスタント304は、次いで、アプリケーション334および/またはアプリケーション334に関連付けられたスマートデバイスに特定の状態から前の状態(たとえば、動作のセットが実行されるのに先立ってアプリケーション334によって前に表された状態)に復帰させるために、アプリケーション334および/またはアプリケーション334に関連付けられたスマートデバイスに1つまたは複数の動作を実施させることができる。
【0041】
いくつかの実装形態では、コンピューティングデバイス302は、アプリケーションおよび/またはスマートデバイスを復帰するための特定の状態を選択するようにユーザに催促し得る状態選択エンジン326を含んでよい。たとえば、自動アシスタント304がそこからユーザが選択するための複数の候補状態が存在すると決定するとき、状態選択エンジン326は、コンピューティングデバイス302および/または別のコンピューティングデバイスのユーザインターフェースにおいてレンダリングされ得るデータを生成し得る。ユーザは、次いで、自動アシスタント304にアプリケーション334および/またはアプリケーション334に関連付けられたスマートデバイスに1つまたは複数の要求を通信させて、アプリケーション334および/またはアプリケーション334に関連付けられたスマートデバイスにその特定の候補状態に復帰させるために、ユーザインターフェースにおいて特定の候補状態を選択し得る。いくつかの実装形態では、状態選択エンジン326は、各候補アプリケーション状態の各それぞれのインターフェースのグラフィカル特徴を特徴付けることができるグラフィカルデータを生成し得る。これらのおよび他の方法で、自動アシスタント304が、ユーザが指している可能性がある複数の候補状態を識別するとき、ユーザは、候補状態のうちの1つの選択がアプリケーション334および/またアプリケーション334に関連付けられたスマートデバイスをコンピューティングデバイス302のグラフィカルユーザインターフェース内に示された特定の状態に復帰させることになることを通知され得る。
【0042】
いくつかの実装形態では、自動アシスタント304は、自動アシスタント304とユーザとの間、および/またはユーザと1つまたは複数の他のアプリケーションとの間の対話に基づいて、ユーザからの事前の許可を得て、トレーニングデータを生成するためのトレーニングデータエンジン324を随意に含み得る。トレーニングデータは、自動アシスタント304が、音声起動句を介して明示的に起動されずに初期化された可能性があり、その後、ユーザが、しきい値持続時間内に、アシスタントコマンドを提供した、および/またはアシスタントコマンドを提供しなかったのいずれかを行ったインスタンスを特徴付けることができる。いくつかの実装形態では、トレーニングデータは、ユーザからの事前の許可を得て、他のユーザに関連付けられた様々な異なるコンピューティングデバイスからデータをやはり受信するリモートサーバデバイスと共有され得る。これらのおよび他の方法で、1つまたは複数のトレーニングされた機械学習モデルは、各それぞれの自動アシスタントが、計算リソースをやはり保存しながら、ユーザをより良く支援するためのさらにトレーニングされた機械学習モデルを採用し得るために、さらにトレーニングされ得る。いくつかの実装形態では、トレーニングデータエンジン324は、別のアプリケーションが再度復帰するための特定の状態をユーザが選択するとき、または選択しないとき、ユーザから受信されるフィードバックに基づいて、トレーニングデータを生成し得る。これらのおよび他の方法で、自動アシスタント304は、アプリケーションを現在の状態から復帰するためのユーザからの要求に応答して、より関連する選択可能なオプションを提供し得る。
【0043】
図4は、自動アシスタントに1つまたは複数の別個のアプリケーションの各アプリケーションをそれぞれのアプリケーション状態に復帰させるための方法400を示す。方法400は、1つまたは複数のアプリケーション、コンピューティングデバイス、および/または自動アシスタントと対話することが可能な任意の他の装置またはモジュールによって実施され得る。方法400は、アシスタント入力が検出されているかどうかを決定する動作402を含み得る。アシスタント入力は、たとえば、ユーザによってコンピューティングデバイスのオーディオインターフェースに提供され得る、「取り消す」などの音声発話であってよい。応答して、自動アシスタントは、ユーザが自動アシスタントを明示的に識別していないにもかかわらず、コンテキストデータに基づいて、音声発話が自動アシスタントを対象とすると決定し得る。
【0044】
アシスタント入力が検出されるとき、方法400は、動作402から動作404に進んでよい。場合によっては、自動アシスタントは、続いてユーザが自動アシスタントに入力を提供したかどうかを決定し得る。動作404は、アシスタント入力が、自動アシスタントが別個のアプリケーションおよび/またはスマートデバイスの1つまたは複数の動作を取り消すための要求に対応すると決定することを含み得る。いくつかの実装形態では、ユーザは、自動システムがアプリケーションファイルを前のバージョンに復帰するための要求を提供し得る。たとえば、ユーザがメッセージングアプリケーションを用いて編集している文書を指し得る、「アシスタント、もっと丁寧なバージョンに復帰して」という交互の音声発話をユーザが提供すると仮定する。この音声発話は、ユーザが行った1つまたは複数の編集に先立って存在した文書のバージョンを指し得る。いくつかの実装形態では、自動アシスタントおよび/またはメッセージングアプリケーションは、フィードバックとしてコンテンツのトーンの指示を提供することができ、自動アシスタントはこのフィードバックを使用して、ユーザが指している可能性がある前のアプリケーション状態(すなわち、動作状態)を識別し得る。これらの実装形態では、自動アシスタントは、コンテンツの表現(たとえば、画像ベースのコンテンツに対する埋込みまたはタグベースの表現、テキストベースのコンテンツに対する埋込みまたはword2vec表現)を生成することができ、その表現をその音声発話の対応する表現と比較し得る。たとえば、音声発話が「もっと丁寧な」またはコンテンツが復帰されるべき何らかの他の意味的指示を含む場合、自動アシスタントは、音声発話の埋込みを潜在空間におけるこれらの表現の埋込みと比較し得る。いくつかの実装形態では、ユーザは、自動システムがスマートデバイスを前の状態またはサブ状態に復帰するための要求を提供し得る。たとえば、ユーザが、「アシスタント、台所照明をオンにして、50%に減光して」という前の音声発話の後に受信される、「アシスタント、取り消して」などの音声発話を提供すると仮定する。この例では、「取り消して」は、台所照明を「オン」状態にすること、および/または台所照明を「50%」減光することを指し得る。
【0045】
ユーザが別個のアプリケーションの1つまたは複数の動作が取り消されることを要求していると自動アシスタントが決定したとき、方法400は動作404から動作406に進んでよい。動作406は、アシスタント入力および/または他のデータに基づいて、ユーザが望むアプリケーションおよび/またはスマートデバイスの状態が識別可能であるかどうかを決定することを含み得る。たとえば、文書に関する前述の音声発話に応答して、自動アシスタントは、ユーザが指し得る、特定のアプリケーションの特定のアプリケーション状態を識別することが可能であり得る。結果として、方法400は、動作406から動作412に進んでよい。場合によっては、後者の例において、「取り消して」が、台所照明を「オン」状態にすること、および/または台所照明を「50%」に減光することを指し得るときなど、方法400は、動作406から動作408に進んでよい。
【0046】
動作408は、1つまたは複数のそれぞれの候補アプリケーション状態および/またはスマートデバイス状態(たとえば、「オン」または「オフ」)またはサブ状態(たとえば、「減光する」または「減光しない」)に対応する1つまたは複数の選択可能な選択をレンダリングすることを含み得る。たとえば、自動アシスタントは、ユーザがアプリケーションを復帰することを望む可能性がある1つまたは複数の候補アプリケーション状態を識別し得る。これらの候補アプリケーション状態および/またはスマートデバイス状態に基づいて、自動アシスタントは、コンピューティングデバイスのインターフェースに候補アプリケーション状態および/またはスマートデバイス状態のうちの1つを選択するようにユーザに催促させることができる。たとえば、自動アシスタントは、候補アプリケーション状態の各々を可聴的に記述すること、および/または候補アプリケーション状態および/またはスマートデバイス状態の各々に対応するコンテンツをグラフィカルにレンダリングすることができる。前述の例によれば、自動アシスタントは、別の候補アプリケーション状態の中に含まれていない1つの候補アプリケーション状態の1つまたは複数の特徴を記述するプロンプトをグラフィカルにまたは可聴的にレンダリングし得る。たとえば、自動アシスタントは、第1のアプリケーション状態の文書からの文を具陳および/または記述し、次いで、第2のアプリケーション状態の文書からの異なる文を具陳および/または記述し得る。これらのおよび他の方法で、ユーザは、各状態のすべての詳細のレビューに大量の時間量を費やさずに、特定の状態を識別することが可能になる。
【0047】
いくつかの実装形態では、各候補アプリケーション状態および/またはスマートデバイス状態は、潜在空間においてマッピングされた埋込みから識別され得る。たとえば、ユーザが1つまたは複数のアプリケーションと対話すると、自動アシスタントは、アプリケーションのアプリケーション状態および/またはスマートデバイスのスマートデバイス状態に対応する埋込みを生成し得る。その後、アプリケーションを前のアプリケーションおよび/またはスマートデバイス状態に復帰するためのユーザからの要求は、自動アシスタントにその要求を処理させて、埋込みから1つまたは複数の候補アプリケーション状態および/またはスマートデバイス状態を識別させることができる。要求が特定の埋込みに対応するとき、特定の埋込みに関連付けられたアプリケーション状態および/またはスマートデバイス状態がアプリケーションおよび/またはスマートデバイスにおいて復元され得る。代替として、自動アシスタントは、たとえば、複数の埋込みがその要求に関連付けられるためのしきい値を満たすことに基づいて、その要求が複数の異なる埋込みに関連付けられると決定し得る。この決定に基づいて、自動アシスタントは、それらの複数の埋込みに対する候補アプリケーション状態をコンピューティングデバイスのインターフェースを介してユーザに選択可能にさせることができる。ユーザは、次いで、自動アシスタントにアプリケーションを選択されたアプリケーション状態および/またはスマートデバイス状態に復帰させるために候補アプリケーション状態および/またはスマートデバイス状態を選択し得る。方法400は、動作408から、候補アプリケーション状態および/またはスマートデバイス状態の選択を受信する動作410に進んでよい。選択が受信されるとき、方法400は、動作410から動作412に進んでよい。
【0048】
動作412は、アプリケーションおよび/またはスマートデバイスが所望のアプリケーション状態に戻るために実施すべき1つまたは複数の動作を識別することを含み得る。いくつかの実装形態では、自動アシスタントは、ログデータおよびアプリケーションプログラミングインターフェースを使用して、1つまたは複数の動作を識別し得る。たとえば、選択されたアプリケーション状態および/またはスマートデバイス状態に対応するログデータ内で識別された動作は、アプリケーションプログラミングインターフェース(API)に対する呼の1つまたは複数のパラメータ内で識別され得る。APIを介して戻されるデータは、そのアプリケーションが所望のアプリケーション状態に戻るためにアプリケーションが実施すべき1つまたは複数の他の動作を示し得る。代替または追加として、自動アシスタントは、ユーザ、アプリケーション、および/または1つまたは複数のコンピューティングデバイスのオペレーティングシステムの間の対話に基づいて生成されたデータを使用して、所望のアプリケーション状態に戻るためにアプリケーションが実施すべき、および/または所望のスマートデバイス状態に戻るためにスマートデバイスが実施すべき、1つまたは複数の他の動作を識別し得る。たとえば、オペレーティングシステムは、所望のアプリケーション状態および/またはスマートデバイス状態に戻るために取り消されるべき動作を識別するログデータに対応する1つまたは複数の入力を識別し得る。これらの入力に基づいて、自動アシスタントは、所望のアプリケーション状態に戻るためにアプリケーションが実施すべき、および/または所望のスマートデバイス状態に戻るためにスマートデバイスが実施すべき、1つまたは複数の他の動作を特徴付ける動作データを生成し得る。動作が動作412において識別されているとき、方法400は、動作412から、アプリケーションおよび/またはスマートデバイスに1つまたは複数の動作を実施させることを含み得る動作414に進んでよい。
【0049】
いくつかの実装形態では、方法400は、アシスタントがアプリケーションおよび/またはスマートデバイスの状態を復帰することに関する何らかのフィードバックが受信されたかどうかを決定する動作416を含み得る。たとえば、フィードバックは、ユーザが1つまたは複数の他の候補アプリケーション状態よりも特定の候補アプリケーション状態を選択すると識別され得る。フィードバックは、候補アプリケーション状態を識別するためのいくつかの要因が特定のアプリケーションおよび/または要求のタイプに対して異なって重み付けされるべきであることを自動アシスタントに示し得る。たとえば、特定のユーザは、前の状態がそこからユーザが要求を提供した異なるロケーションにおけるアプリケーションおよび/またはスマートデバイスとのユーザ対話の結果であったとき、前の状態を選択する傾向がより強いことがある。したがって、ユーザの異なるジオロケーションに関連付けられたアプリケーション状態および/またはスマートデバイス状態は、ユーザがその要求を提供した同じジオロケーションに関連付けられたアプリケーション状態および/またはスマートデバイス状態よりも高く重み付けされおよび/または優先順位付けされ得る。代替または追加として、特定のユーザは、アプリケーションおよび/またはスマートデバイスの最後から2つ目の状態であった前の状態を選択する傾向がより強いことがある。たとえば、ユーザが朝アプリケーションファイルをレビューしているとき、ユーザは、自らが前夜遅くに行った編集が理想的でなかったことに気づくことがある。したがって、ユーザは、自動アシスタントにアプリケーションファイルを前の状態に復帰させるための要求(たとえば、「アシスタント、取り消して」)を提供することができ、自動アシスタントは、前夜より前にアプリケーションファイルが示した状態を優先順位付けし得る。たとえば、前のフィードバックの1つまたは複数のインスタンスに基づいて、自動アシスタントは、ユーザが選択し得る候補アプリケーション状態として前夜からのアプリケーション状態を省き、代わりに、ユーザが選択するための1つまたは複数の他の候補アプリケーション状態(たとえば、前夜に先立って存在した1つまたは複数の候補アプリケーション状態)を提供し得る。
【0050】
アシスタントがアプリケーションの状態を復帰することに関するフィードバックが受信されるとき、方法400は、随意の動作416から随意の動作418に進んでよい。場合によっては、方法400は動作402に戻ってよい。動作418は、フィードバックに従って、1つまたは複数のトレーニングされた機械学習モデルをトレーニングすることを含み得る。これらのおよび他の方法で、そのユーザおよび/または他のユーザが別個のアプリケーションの動作を取り消すために自動アシスタントを起動し続けると、自動アシスタントは、一定の動作を取り消すとき、ユーザの選好を適応し得る。たとえば、ユーザが「台所照明をオンにして、台所照明を50%に減光して」という音声発話に続いて取り消すコマンドを含む音声発話を提供し、自動アシスタントが、台所照明をオフにするが、ユーザが(たとえば、照明スイッチを介して物理的にまたはスマート照明に関連付けられたアプリケーションを介して手動で)台所照明を手動で再度オンにする場合、自動アシスタントは、ユーザが台所照明を「オン」状態に維持し、「減光する」の言及を取り消すことを意図したと推定し得る。したがって、自動アシスタントがこのシーケンスに再度遭遇する場合、自動アシスタントは、台所照明を単に減光し得る。さらに、自動アシスタントは、このフィードバックをこの特定のシナリオを超えた動作に一般化し得る。たとえば、ユーザが取り消すコマンドを提供するのに先立って、「台所照明を赤にして」という追加の音声発話を提供したと仮定する。この例では、自動アシスタントは、照明を減光状態に保つが、台所照明の色を前の状態に関連付けられた色に復帰し得る。
【0051】
図5は、例示的なコンピュータシステム510のブロック図500である。コンピュータシステム510は、典型的には、バスサブシステム512を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ514を含む。これらの周辺デバイスは、たとえば、メモリ525およびファイルストレージサブシステム526を含むストレージサブシステム524と、ユーザインターフェース出力デバイス520と、ユーザインターフェース入力デバイス522と、ネットワークインターフェースサブシステム516とを含み得る。入力デバイスおよび出力デバイスは、コンピュータシステム510とのユーザ対話を可能にする。ネットワークインターフェースサブシステム516は、外部ネットワークに対するインターフェースを提供し、他のコンピュータシステム内の対応するインターフェースデバイスに結合される。
【0052】
ユーザインターフェース入力デバイス522は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイ内に組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどのオーディオ入力デバイス、および/または他のタイプの入力デバイスを含んでよい。一般に、「入力デバイス」という用語の使用は、コンピュータシステム510内または通信ネットワーク上に情報を入力するためのすべての考えられるタイプのデバイスおよび方法を含むことを意図する。
【0053】
ユーザインターフェース出力デバイス520は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または視覚画像を作成するためのいくつかの他の機構を含んでよい。ディスプレイサブシステムはまた、オーディオ出力デバイスを介してなど、非視覚的ディスプレイを提供してもよい。一般に、「出力デバイス」という用語の使用は、コンピュータシステム510からユーザまたは別の機械もしくはコンピュータシステムに情報を出力するためのすべての考えられるタイプのデバイスおよび方法を含むことを意図する。
【0054】
ストレージサブシステム524は、本明細書で説明するモジュールのうちのいくつかまたはすべての機能性を提供するプログラミング構成およびデータ構成を記憶する。たとえば、ストレージサブシステム524は、方法400の選択された態様を実施するための、および/またはシステム300、コンピューティングデバイス104、コンピューティングデバイス204、コンピューティングデバイス244、自動アシスタント304、および/または本明細書で論じた、任意の他のアプリケーション、デバイス、装置、および/またはモジュールのうちの1つまたは複数を実装するための論理を含んでよい。
【0055】
これらのソフトウェアモジュールは、一般に、単独で、または他のプロセッサと組み合わせてプロセッサ514によって実行される。ストレージサブシステム524内で使用されるメモリ525は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)530およびその中に固定命令が記憶された読取り専用メモリ(ROM)532を含む、いくつかのメモリを含んでよい。ファイルストレージサブシステム526は、プログラムファイルおよびデータファイル用の永続ストレージを提供し得、ハードディスクドライブ、関連付けられたリムーバブルメディアとともにフロッピーディスクライブ、CD-ROMドライブ、光ドライブ、またはリムーバブルメディアカートリッジを含んでよい。いくつかの実装形態の機能性を実装するモジュールは、ストレージサブシステム524内のファイルストレージサブシステム526によって、またはプロセッサ514によってアクセス可能な他の機械内に記憶され得る。
【0056】
バスサブシステム512は、コンピュータシステム510の様々な構成要素およびサブシステムに意図するように互いと通信させるための機構を提供する。バスサブシステム512は単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用し得る。
【0057】
コンピュータシステム510は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムまたはコンピューティングデバイスを含めて、様々なタイプのものであってよい。コンピュータおよびネットワークの絶え間なく変化する性質により、図5に示すコンピュータシステム510の説明は、いくつかの実装形態を示すための特定の例としてのみ意図されている。図5に示したコンピュータシステムよりも多数または少数の構成要素を有するコンピュータシステム510の多くの他の構成が可能である。
【0058】
本明細書で説明したシステムがユーザ(または、本明細書においてしばしば「参加者」と呼ばれる)に関する個人情報を収集するか、または個人情報を利用し得る状況において、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくは活動、職業、ユーザの選好、またはユーザの現在の地理的ロケーションに関する情報)を収集するかどうかを制御するための、またはユーザにより関連し得るコンテンツをコンテンツサーバから受信するかどうか、および/またはどのように受信するかを制御するための機会がユーザに提供され得る。また、個人的に識別可能な情報が除去されるように、いくつかのデータはそのデータが記憶または使用される前に1つまたは複数の方法で扱われてよい。たとえば、ユーザの識別情報は、ユーザに関する個人的に識別可能な情報が決定できないように扱われてよく、または、(都市、郵便番号、または州レベルなど)地理的ロケーション情報が取得される場合、ユーザの地理的ロケーションは、ユーザの特定の地理的ロケーションを決定することができないように一般化されてよい。したがって、ユーザは、ユーザに関する情報がどのように収集されるか、および/または使用されるかに対して制御を有し得る。
【0059】
いくつかの実装形態について本明細書で説明し、示したが、本明細書で説明した、機能を実施するためのおよび/または結果および/または利点のうちの1つまたは複数を取得するための様々な他の手段および/または構造が利用されてよく、そのような変種および/または修正は各々、本明細書で説明した実装形態の範囲内であると見なされる。より一般的に、本明細書で説明したすべてのパラメータ、寸法、材料、および構成は、例示的であることを意味し、実際のパラメータ、寸法、材料、および/または構成は、本教示が使用される特定の1つまたは複数のアプリケーションに依存することになる。当業者は、せいぜい日常的な実験を使用することで、本明細書で説明した特定の実装形態に対する多くの均等物を認識することになる、またはそれらを確認することが可能になる。したがって、前述の実装形態は単なる例示として提示され、具体的に説明され特許請求された以外に、添付の請求項およびその均等物の範囲内で、実装形態を実施することが可能であることを理解されよう。本開示の実装形態は、本明細書で説明した各個々の特徴、システム、物品、材料、キット、および/または方法に関する。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法のいずれの組合せも、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合、本開示の範囲内に含まれる。
【0060】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、本方法は、コンピューティングデバイスによって、コンピューティングデバイスを介してアクセス可能な自動アシスタントに対してユーザによって提供されたアシスタント入力を受信するステップと、自動アシスタントによって、アシスタント入力が、自動アシスタントとは別個のアプリケーションによって実施されたいくつかの動作を取り消すための要求に対応すると決定するステップと、アシスタント入力に基づいて、アプリケーションの状態に影響を及ぼし、アシスタント入力に関連付けられる1つまたは複数の動作を識別するステップとを含む。1つまたは複数の動作は、アプリケーションを第1のアプリケーション状態から第2のアプリケーション状態に遷移させ、ユーザは、アプリケーションが第2のアプリケーション状態を示している間に、またはその後に、アシスタント入力を提供した。本方法は、アシスタント入力に基づいて、アプリケーションを第1のアプリケーション状態に復帰させるステップをさらに含む。
【0061】
本明細書で開示する技術のこれらのおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含んでよい。
【0062】
いくつかの実装形態では、本方法は、アシスタント入力に基づいて、1つまたは複数の他の動作を識別するステップをさらに含み得る。1つまたは複数の他の動作は、アプリケーションを第2のアプリケーション状態から第3のアプリケーション状態に遷移させた可能性がある。本方法は、選択プロンプトをユーザに対してレンダリングさせるステップをさらに含んでよく、選択プロンプトは、第1のアプリケーション状態を識別する第1の選択可能オプションと、第2のアプリケーション状態を識別する第2の選択可能オプションとを含んでよく、ユーザは、ユーザに対する選択プロンプトのレンダリングに応答して、第1の選択可能オプションを選択し得る。それらの実装形態のいくつかのバージョンでは、選択プロンプトをレンダリングさせるステップは、第1の選択可能オプションに対応し、アプリケーションの第1のアプリケーション状態の視覚的コンテンツを特徴付ける、選択可能なグラフィカルユーザインターフェース(GUI)要素を生成するステップと、第2の選択可能オプションに対応し、アプリケーションの第2のアプリケーション状態の他の視覚的コンテンツを特徴付ける、別の選択可能なGUI要素を生成するステップとを含み得る。
【0063】
いくつかの実装形態では、アプリケーションの状態に影響を及ぼし、アシスタント入力に関連付けられた、1つまたは複数の動作を識別するステップは、ユーザがアシスタント入力を提供する前の時間期間内にアプリケーションにおいて初期化された動作のセットから1つまたは複数の動作を選択するステップを含み得る。1つまたは複数の動作は、その時間期間内にアプリケーションにおいてやはり初期化された1つまたは複数の他の動作を省いてよい。
【0064】
いくつかの実装形態では、本方法は、アシスタント入力を受信するステップに先立って、自動アシスタントによって、アプリケーションがアプリケーションを第1のアプリケーション状態から第2のアプリケーション状態に遷移させた1つまたは複数の動作を実施したと決定するステップをさらに含み得る。それらの実装形態のいくつかのバージョンでは、アプリケーションが1つまたは複数の動作を実施したと決定するステップは、1つまたは複数のトレーニングされた機械学習モデルを使用して、アプリケーションが第2のアプリケーション状態を示しているとき、アプリケーションのGUIインターフェースを特徴付ける画像データを処理するステップを含み得る。
【0065】
いくつかの実装形態では、アシスタント入力が、アプリケーションによって実施されたいくつかの動作を取り消すための要求に対応すると決定するステップは、アシスタント入力が、ユーザがアシスタント入力を提供したとき、アプリケーションのインターフェースにおいてレンダリングされている自然言語コンテンツに関連付けられると決定するステップを含み得る。それらの実装形態のいくつかのバージョンでは、アシスタント入力は、ユーザが提供した音声発話内で実施されてよく、音声発話は、アプリケーションのインターフェースにおいてレンダリングされている自然言語コンテンツのうちのいずれも識別することができない。
【0066】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、本方法は、アプリケーションによって、アプリケーションを対象とするユーザ入力を受信するステップを含む。アプリケーションは、自動アシスタントに対するアクセスをやはり提供するコンピューティングデバイスを介してアクセス可能である。本方法は、ユーザ入力に基づいて、アプリケーションに1つまたは複数の動作を実施することを行わせるステップをさらに含む。1つまたは複数の動作を実施することは、アプリケーションを第1の動作状態から第2の動作状態に遷移させる。本方法は、アプリケーションによって、1つまたは複数の他の動作を実施するための要求を自動アシスタントから受信するステップをさらに含む。自動アシスタントからの要求は、ユーザから自動アシスタントへのアシスタント入力に基づく。本方法は、自動アシスタントからの要求に基づいて、アプリケーションを第2の動作状態から第1の動作状態に復帰させるステップをさらに含む。
【0067】
本明細書で開示する技術のこれらのおよび他の実施形態は、以下の特徴のうちの1つまたは複数を随意に含んでよい。
【0068】
いくつかの実装形態では、本方法は、要求を自動アシスタントから受信するステップに先立って、アプリケーションがアプリケーション状態データを自動アシスタントに提供するための別個の要求を受信するステップをさらに含み得る。アプリケーション状態データは、アプリケーションの第1の動作状態の1つまたは複数の特徴を特徴付けることができる。
【0069】
いくつかの実装形態では、本方法は、要求を自動アシスタントから受信するステップに先立って、アプリケーション動作データを自動アシスタントに提供するようにとのアプリケーションに対する別個の要求を受信するステップをさらに含み得る。アプリケーション動作データは、アプリケーションを第2の動作状態から第1の動作状態に復帰するための1つまたは複数の他の動作を識別し得る。
【0070】
いくつかの実装形態では、アプリケーションを第2の動作状態から第1の動作状態に復帰させるステップは、ユーザ入力に基づいて実施された1つまたは複数の動作を取り消すために、アプリケーションを介してユーザによってアクセスされているファイルをアプリケーションに修正させるステップを含み得る。
【0071】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、本方法は、コンピューティングデバイスによって、コンピューティングデバイスを介してアクセス可能な自動アシスタントに対してユーザによって提供されたアシスタント入力を受信するステップを含む。アシスタント入力は、自動アシスタントとは別個の1つまたは複数のアプリケーションによって実施された特定の動作を取り消すための要求に対応する。本方法は、アシスタント入力に基づいて、1つまたは複数のアプリケーションに影響を及ぼした特定の動作を識別する動作データを処理するステップと、動作データおよびアシスタント入力に基づいて、1つまたは複数のアプリケーションが実施すべき1つまたは複数の動作を選択するステップとをさらに含む。1つまたは複数の動作は、1つまたは複数のアプリケーションによって実施された特定の動作の取消しを促進する際に選択される。本方法は、自動アシスタントによって、アシスタント入力に応答して、1つまたは複数のアプリケーションに1つまたは複数の動作を実施させるステップをさらに含む。
【0072】
本明細書に開示する技術のこれらのおよび他の実装形態は、以下の特徴のうちの1つまたは複数を随意に含んでよい。
【0073】
いくつかの実装形態では、アシスタント入力は、ユーザによって提供される音声発話で実施されてよく、音声発話は、コンピューティングデバイスまたは別個のコンピューティングデバイスのインターフェースを介して1つまたは複数のアプリケーションを閲覧しているユーザに同時に提供され得る。
【0074】
いくつかの実装形態では、1つまたは複数のアプリケーションが実施すべき1つまたは複数の動作を選択するステップは、自動アシスタントによって、アプリケーションプログラミングインターフェースを使用して1つまたは複数のアプリケーションのアプリケーションに別個の要求を提供するステップを含み得る。要求は、1つまたは複数のアプリケーションによって実施された特定の動作を識別し得る。
【0075】
いくつかの実装形態では、本方法は、動作データおよびアシスタント入力に基づいて、1つまたは複数のアプリケーションが実施すべき1つまたは複数の他の動作を選択するステップをさらに含み得る。1つまたは複数の他の動作は、1つまたは複数のアプリケーションによって実施された特定の動作の取消しを促進する際に選択され得る。本方法は、選択プロンプトをユーザに対してレンダリングさせるステップをさらに含み得る。選択プロンプトは、1つまたは複数のアプリケーションが1つまたは複数の動作によって影響を受ける第1の状態を特徴付ける第1の選択可能オプションと、1つまたは複数のアプリケーションが1つまたは複数の他の動作によって影響を受ける第2の状態を特徴付ける第2の選択可能オプションとを含み得る。ユーザは、ユーザに対する選択プロンプトのレンダリングに応答して、第1の選択可能オプションを選択し得る。
【0076】
それらの実装形態のいくつかのバージョンでは、選択プロンプトをレンダリングさせるステップは、第1の選択可能オプションに対応し、1つまたは複数のアプリケーションの第1の状態の視覚的コンテンツを特徴付ける、選択可能なグラフィカルユーザインターフェース(GUI)要素を生成するステップと、第2の選択可能オプションに対応し、1つまたは複数のアプリケーションの第2の状態の他の視覚的コンテンツを特徴付ける、別の選択可能なGUI要素を生成するステップとを含み得る。
【0077】
それらの実装形態の追加または代替のバージョンでは、1つまたは複数のアプリケーションが実施すべき1つまたは複数の動作を選択するステップは、ユーザまたは別のユーザが1つまたは複数のアプリケーションを生じさせた前のインスタンス、または1つまたは複数のアプリケーションの別個のインスタンスに基づいて、特定の動作状態に復帰するようにトレーニングされた、トレーニングされた機械学習モデルにアクセスするステップを含み得る。1つまたは複数の動作は、トレーニングされた機械学習モデルに基づいて実施され得る。これらの実装形態のいくつかのさらなるバージョンでは、本方法は、ユーザが第1の選択可能オプションを選択することに基づいて、フィードバックデータを生成するステップと、トレーニングされた機械学習モデルをフィードバックデータに基づいてさらにトレーニングさせるステップとをさらに含み得る。
【0078】
いくつかの実装形態では、本方法は、アシスタント入力に基づいて、ユーザがアシスタント入力を提供した環境の1つまたは複数の特徴を特徴付けるコンテキストデータを処理するステップをさらに含み得る。1つまたは複数のアプリケーションが実施すべき1つまたは複数の動作を選択するステップは、コンテキストデータにさらに基づき得る。
【0079】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法が提供され、本方法は、コンピューティングデバイスによって、コンピューティングデバイスを介してアクセス可能な自動アシスタントに対してユーザによって提供されたアシスタント入力を受信するステップと、自動アシスタントによって、アシスタント入力が、アプリケーションに関連付けられたスマートデバイスによって実施されたいくつかの動作を取り消すための要求に対応すると決定するステップと、アシスタント入力に基づいて、スマートデバイスの状態に影響を及ぼし、アシスタント入力に関連付けられた、1つまたは複数の動作を識別するステップとを含む。1つまたは複数の動作は、スマートデバイスを第1のスマートデバイス状態から第2のスマートデバイス状態に遷移させ、ユーザは、スマートデバイスが第2のスマートデバイス状態を示している間に、またはその後に、アシスタント入力を提供した。本方法は、アシスタント入力に基づいて、アシスタント入力の受信に応答して、スマートデバイスを第1のスマートデバイス状態に復帰させるステップをさらに含み得る。
【0080】
他の実装形態は、上記および/または本明細書の他の場所で説明した方法のうちの1つまたは複数などの方法を実施するために、1つまたは複数のプロセッサ(たとえば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU))によって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含んでよい。さらに他の実装形態は、上記および/または本明細書の他の場所で説明した方法のうちの1つまたは複数などの方法を実施するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のコンピュータのシステムを含んでよい。
【0081】
本明細書でより詳細に説明する前述の概念および追加の概念のすべての組合せは、本明細書で開示する主題の部分として企図されることを諒解されたい。たとえば、本開示の最後に出現する特許請求される主題のすべての組合せは、本明細書で開示する主題の部分として企図される。
【符号の説明】
【0082】
100 ビュー
102 ユーザ
104 コンピューティングデバイス
106 ディスプレイインターフェース
108 ユーザの手
110 サードパーティオーディオアプリケーションインターフェース
114 第1の状態
120 ビュー
122 音声発話
124 第2の状態
140 ビュー
200 ビュー
202 ユーザ
204 コンピューティングデバイス
206 ディスプレイインターフェース
210 サードパーティカレンダーアプリケーションインターフェース
220 ビュー
222 音声発話
224 新しいイベント
240 ビュー
244 コンピューティングデバイス
246 入力データ
248 状態データ
250 状態選択データ
260 ビュー
262 第1の選択可能要素
264 第2の選択可能要素
280 ビュー
282 サードパーティカレンダーアプリケーションインターフェースの部分
300 システム
302 コンピューティングデバイス
304 自動アシスタント
306 入力処理エンジン
308 音声処理エンジン
310 データパーシングエンジン
312 パラメータエンジン
314 出力生成エンジン
316 アプリケーション状態エンジン
318 動作復帰エンジン
320 アシスタントインターフェース
322 アシスタント起動エンジン
324 トレーニングデータエンジン
326 状態選択エンジン
330 アプリケーションデータ
332 デバイスデータ
334 アプリケーション
336 コンテキストデータ
338 アシスタントデータ
400 方法
500 ブロック図
510 コンピュータシステム
512 バスサブシステム
514 プロセッサ
516 ネットワークインターフェースサブシステム
520 ユーザインターフェース出力デバイス
522 ユーザインターフェース入力デバイス
524 ストレージサブシステム
525 メモリ
526 ファイルストレージサブシステム
530 メインランダムアクセスメモリ(RAM)
532 読取り専用メモリ(ROM)
図1A
図1B
図1C
図2A
図2B
図2C
図2D
図2E
図3
図4
図5