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

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

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

特許7513684ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話
<>
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図1
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図2
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図3
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図4
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図5
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図6
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図7
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図8
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図9
  • 特許-ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話
(51)【国際特許分類】
   G06F 3/16 20060101AFI20240702BHJP
   G06F 3/01 20060101ALI20240702BHJP
   G06F 3/0481 20220101ALI20240702BHJP
   G10L 13/00 20060101ALI20240702BHJP
   G10L 15/22 20060101ALI20240702BHJP
【FI】
G06F3/16 620
G06F3/16 650
G06F3/16 690
G06F3/01 510
G06F3/0481
G10L13/00 100M
G10L15/22 300Z
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2022180485
(22)【出願日】2022-11-10
(62)【分割の表示】P 2020562767の分割
【原出願日】2018-05-07
(65)【公開番号】P2023017956
(43)【公開日】2023-02-07
【審査請求日】2022-11-16
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ウラス・キラッジ
(72)【発明者】
【氏名】アダム・コインブラ
(72)【発明者】
【氏名】アブラハム・リー
(72)【発明者】
【氏名】ウェイ・ドン
(72)【発明者】
【氏名】トゥシャン・アマラシリワルデナ
【審査官】佐藤 光起
(56)【参考文献】
【文献】特開2015-018265(JP,A)
【文献】特表2013-517566(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/16
G06F 3/01
G06F 3/0481
G10L 13/00
G10L 15/22
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実施される方法であって、
ユーザをアシストするための自動化されたアシスタントを実行するステップであって、前記ユーザが前記ユーザ、前記自動化されたアシスタント、およびサードパーティコンピューティングサービスの間の人間対コンピュータのダイアログセッションに参加するために前記自動化されたアシスタントとインタラクションし、前記サードパーティコンピューティングサービスが、口頭ダイアログステートマシンおよび視覚的ダイアログステートマシンに従って前記ユーザと関わる、ステップと、
前記自動化されたアシスタントにおいて、前記サードパーティコンピューティングサービスから、前記視覚的ダイアログステートマシンの第1の視覚的ダイアログ状態を示すデータを受信するステップと、
前記自動化されたアシスタントによって、前記プロセッサの1つまたは複数と動作可能に結合されるディスプレイ上に、前記第1の視覚的ダイアログ状態に基づいて、前記人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースがレンダリングされるようにするステップであって、前記グラフィカルユーザインターフェースが、前記口頭ダイアログステートマシンを、前記ユーザの意図が解決された状態に達するために、前記第1の視覚的ダイアログ状態に対応する第1の口頭ダイアログ状態から、前記第1の口頭ダイアログ状態に続く第2の口頭ダイアログ状態に遷移させるように動作可能な少なくとも1つのグラフィカル要素を含む、ステップと、
前記自動化されたアシスタントによって、前記ユーザによる前記少なくとも1つのグラフィカル要素の動作を検出するステップと、
前記自動化されたアシスタントによって、前記少なくとも1つのグラフィカル要素の動作を示すデータを、前記サードパーティコンピューティングサービスに提供するステップであって、前記少なくとも1つのグラフィカル要素の動作を示す前記データが、前記サードパーティコンピューティングサービスを、前記第1の口頭ダイアログ状態から前記第2の口頭ダイアログ状態に遷移させる、ステップとを含む、方法。
【請求項2】
前記自動化されたアシスタントによって、前記サードパーティコンピューティングサービスから、前記第2の口頭ダイアログ状態を示すデータを受信するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記自動化されたアシスタントによって、前記プロセッサのうちの1つまたは複数に動作可能に結合されるスピーカーにおいて、前記第2の口頭ダイアログ状態を示す前記データが可聴にレンダリングされるようにするステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記第2の口頭ダイアログ状態において、前記グラフィカルユーザインターフェースが特定の物体に焦点を合わせられる、請求項2に記載の方法。
【請求項5】
前記第2の口頭ダイアログ状態において、前記特定の物体が、後続の口頭ダイアログを明確にするために前記自動化されたアシスタントによって使用可能である、請求項4に記載の方法。
【請求項6】
前記自動化されたアシスタントから前記サードパーティコンピューティングサービスへの、前記少なくとも1つのグラフィカル要素の動作を示す前記データの提供が、前記サードパーティコンピューティングサービスを、前記第1の視覚的ダイアログ状態から第2の視覚的ダイアログ状態に遷移させる、請求項1に記載の方法。
【請求項7】
前記自動化されたアシスタントにより、前記サードパーティコンピューティングサービスから、前記第2の視覚的ダイアログ状態を示すデータを受信するステップをさらに含む、請求項6に記載の方法。
【請求項8】
前記第2の視覚的ダイアログ状態を示す前記データが、前記ディスプレイ上に視覚的コンテンツをレンダリングするために使用可能であるマークアップ言語を含む、請求項7に記載の方法。
【請求項9】
前記第2の視覚的ダイアログ状態を示す前記データが、前記少なくとも1つのグラフィカル要素の前記動作に従って前記グラフィカルユーザインターフェースとインタラクションするための1つまたは複数のコマンドを含む、請求項7に記載の方法。
【請求項10】
1つまたは複数のプロセッサおよび命令を記憶したメモリを含むシステムであって、前記命令が、前記1つまたは複数のプロセッサによる実行に応答して、前記1つまたは複数のプロセッサに、
ユーザをアシストするための自動化されたアシスタントを実行させ、前記ユーザが前記ユーザ、前記自動化されたアシスタント、およびサードパーティコンピューティングサービスの間の人間対コンピュータのダイアログセッションに参加するために前記自動化されたアシスタントとインタラクションし、前記サードパーティコンピューティングサービスが、口頭ダイアログステートマシンおよび視覚的ダイアログステートマシンに従って前記ユーザと関わり、
前記自動化されたアシスタントにおいて、前記サードパーティコンピューティングサービスから、前記視覚的ダイアログステートマシンの第1の視覚的ダイアログ状態を示すデータを受信させ、
前記自動化されたアシスタントによって、前記プロセッサの1つまたは複数と動作可能に結合されるディスプレイ上に、前記第1の視覚的ダイアログ状態に基づいて、前記人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースがレンダリングされるようにさせ、前記グラフィカルユーザインターフェースが、前記口頭ダイアログステートマシンを、前記ユーザの意図が解決された状態に達するために、前記第1の視覚的ダイアログ状態に対応する第1の口頭ダイアログ状態から、前記第1の口頭ダイアログ状態に続く第2の口頭ダイアログ状態に遷移させるように動作可能な少なくとも1つのグラフィカル要素を含み、
前記自動化されたアシスタントによって、前記ユーザによる前記少なくとも1つのグラフィカル要素の動作を検出させ、
前記自動化されたアシスタントによって、前記少なくとも1つのグラフィカル要素の動作を示すデータを、前記サードパーティコンピューティングサービスへ提供させ、前記少なくとも1つのグラフィカル要素の動作を示す前記データが、前記サードパーティコンピューティングサービスを、前記第1の口頭ダイアログ状態から前記第2の口頭ダイアログ状態に遷移させる、システム。
【請求項11】
前記自動化されたアシスタントによって、前記サードパーティコンピューティングサービスから、前記第2の口頭ダイアログ状態を示すデータを受信するための命令をさらに含む、請求項10に記載のシステム。
【請求項12】
前記自動化されたアシスタントによって、前記プロセッサのうちの1つまたは複数に動作可能に結合されるスピーカーにおいて、前記第2の口頭ダイアログ状態を示す前記データが可聴にレンダリングされるようにするための命令をさらに含む、請求項11に記載のシステム。
【請求項13】
前記第2の口頭ダイアログ状態において、前記グラフィカルユーザインターフェースが特定の物体に焦点を合わせられる、請求項11に記載のシステム。
【請求項14】
前記第2の口頭ダイアログ状態において、前記特定の物体が後続の口頭ダイアログを明確にするために前記自動化されたアシスタントによって使用可能である、請求項13に記載のシステム。
【請求項15】
前記自動化されたアシスタントから前記サードパーティコンピューティングサービスへの、前記少なくとも1つのグラフィカル要素の動作を示す前記データの提供が、前記サードパーティコンピューティングサービスを、前記第1の視覚的ダイアログ状態から第2の視覚的ダイアログ状態に遷移させる、請求項10に記載のシステム。
【請求項16】
前記自動化されたアシスタントによって、前記サードパーティコンピューティングサービスから、前記第2の視覚的ダイアログ状態を示すデータを受信するための命令をさらに含む、請求項15に記載のシステム。
【請求項17】
前記第2の視覚的ダイアログ状態を示す前記データが、前記ディスプレイ上に視覚的コンテンツをレンダリングするために使用可能であるマークアップ言語を含む、請求項16に記載のシステム。
【請求項18】
前記第2の視覚的ダイアログ状態を示す前記データが、前記少なくとも1つのグラフィカル要素の前記動作に従って前記グラフィカルユーザインターフェースとインタラクションするための1つまたは複数のコマンドを含む、請求項16に記載のシステム。
【請求項19】
命令を含む少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
自動化されたアシスタントを実装させ、ユーザが前記ユーザ、前記自動化されたアシスタント、およびサードパーティコンピューティングサービスの間の人間対コンピュータのダイアログセッションに参加するために前記自動化されたアシスタントとインタラクションし、前記サードパーティコンピューティングサービスが、口頭ダイアログステートマシンおよび視覚的ダイアログステートマシンに従って前記ユーザと関わり、
前記自動化されたアシスタントにおいて、前記サードパーティコンピューティングサービスから、前記視覚的ダイアログステートマシンの第1の視覚的ダイアログ状態を示すデータを受信させ、
前記自動化されたアシスタントによって、前記プロセッサの1つまたは複数と動作可能に結合されるディスプレイ上に、前記第1の視覚的ダイアログ状態に基づいて、前記人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースがレンダリングされるようにさせ、前記グラフィカルユーザインターフェースが、前記口頭ダイアログステートマシンを、前記第1の視覚的ダイアログ状態に対応する第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させるように動作可能な少なくとも1つのグラフィカル要素を含み、
前記自動化されたアシスタントによって、前記ユーザによる前記少なくとも1つのグラフィカル要素の動作を検出させ、
前記自動化されたアシスタントによって、前記少なくとも1つのグラフィカル要素の動作を示すデータを、前記サードパーティコンピューティングサービスへ提供させ、前記少なくとも1つのグラフィカル要素の動作を示す前記データが、前記サードパーティコンピューティングサービスを、前記第1の口頭ダイアログ状態から前記第2の口頭ダイアログ状態に遷移させる、非一時的コンピュータ可読記憶媒体。
【請求項20】
前記自動化されたアシスタントによって、前記サードパーティコンピューティングサービスから、前記第2の口頭ダイアログ状態を示すデータを受信するための命令をさらに含む、請求項19に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
人間は、本明細書で「自動化されたアシスタント」と呼ばれる(「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナル音声アシスタント」、「会話エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションとの人間対コンピュータの対話を行う場合がある。例えば、人間(自動化されたアシスタントと対話するとき、「ユーザ」と呼ばれる場合がある)は、テキストに変換され、次いで処理された発話、および/またはタイプされた自由形式の自然言語入力を含み得る自由形式の自然言語入力を使用して、コマンド、クエリ、および/または要求(本明細書では「クエリ」と総称される)を提供し得る。多くの場合、自動化されたアシスタントは、例えば、事前定義された口頭の呼び出しフレーズを使用して、最初に「呼び出され」なければならない。
【0002】
自動化されたアシスタントと対話することができる多くのコンピューティングサービス(「ソフトウェアエージェント」または「エージェント」とも呼ばれる)が、存在する。コンピューティングサービスを提供するエンティティは、しばしば、自動化されたアシスタントを提供するエンティティに直接属していないので、これらのコンピューティングサービスは、しばしば、本明細書では「サードパーティ」(または「サードパーティ開発者」)と呼ばれるものによって開発および/または提供される。しかしながら、コンピューティングサービスは、サードパーティによって開発されたものに限定されず、自動化されたアシスタントを実装するのと同じエンティティによって実装され得る。コンピューティングサービスは、様々な異なるユーザ意図を解決するように構成され得るが、その多くは、自動化されたアシスタントによって解決できない場合がある。そのような意図は、もちろん限定はしないが、スマートデバイスを制御または構成すること、タスクを実行するための段階的な指示を受信すること、およびオンラインサービスと対話することに関連する場合がある。したがって、多くの自動化されたアシスタントは、ユーザとサードパーティコンピューティングサービスの両方と同時に対話し、ユーザとサードパーティとの間のメディエータまたは仲介者として効果的に機能する場合がある。
【0003】
いくつかのサードパーティコンピューティングサービスは、複数の状態、ならびにユーザおよび/または他の場所(例えば、センサ、ウェブサービスなど)から受信された様々な入力に基づいて発生するそれらの状態間の遷移を効果的に定義するダイアログステートマシンに従って動作し得る。ユーザが、サードパーティコンピューティングサービスとの1つまたは複数のダイアログ「ターン」中に、(メディエータとして自動化されたアシスタントを介して)自由形式の自然言語入力を(音声でまたはタイプで)提供すると、サードパーティコンピューティングサービスに関連付けられたダイアログステートマシンは、様々なダイアログ状態間を進む。最終的に、ダイアログステートマシンは、ユーザの意図が解決された状態に達する場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
自動化されたアシスタントが、よりユビキタスになるにつれて、本明細書では「アシスタントデバイス」と呼ばれる自動化されたアシスタントとの対話を容易にするように特別に設計されたコンピューティングデバイスが、より一般的になってきている。多くのアシスタントデバイスは、ユーザが自動化されたアシスタントとのタッチフリーの対話を行うことを可能にする。例えば、アシスタントデバイスは、しばしば、ユーザが入力として音声発話を提供することを可能にするマイクロフォンを含む。加えて、ますます多くのアシスタントデバイスが、現在、表示能力を含む。
【0005】
したがって、ユーザと、自動化されたアシスタントと、他のコンピューティングサービスとの間のマルチモーダル対話のための技法およびフレームワークについて、本明細書で説明する。より具体的には、しかし排他的にではなく、本明細書で説明したいくつかの実装形態は、ユーザが視覚的/触覚的モダリティなどの、口頭の自由形式の自然言語入力以外の入力モダリティを使用して、サードパーティコンピューティングサービスに関連付けられたダイアログステートマシンを介して進むことを可能にする。本明細書で使用される場合、「口頭の」は、キーボードと対話することによっておよび/または音声発話(音声認識を使用してテキストコンテンツに変換され得る)を提供することによって、ユーザによって提供され得る自由形式の自然言語入力を指す。追加的または代替的に、本明細書で説明したいくつかの実装形態は、ユーザがサードパーティコンピューティングサービスに関連するグラフィカルユーザインターフェースとのタッチレス対話をトリガすることを可能にする。他の変形例が、本明細書では企図されている。ユーザが口頭入力と非口頭入力の両方の組合せを使用してサードパーティサービスと対話することを可能にするメカニズムの提供は、健常者のユーザと幅広い障害を有するユーザの両方によるサードパーティサービスへのアクセスを容易にし得る(および、サービスの特別に適合された変形例の必要性を低減し得る)。これは、ユーザがユーザにとって最も適した方法でサードパーティサービスと対話することをメカニズムが可能にし得るため、なおさらである。
【課題を解決するための手段】
【0006】
いくつかの実装形態では、自動化されたアシスタントは、クライアント部分とサーバ部分とを含み得る。自動化されたアシスタントのクライアント部分は、「アシスタントアプリ」としてクライアントデバイス(例えば、スマートフォン、スマートウォッチ、アシスタントデバイスなど)上で動作し得る。自動化されたアシスタントのサーバ部分は、本明細書では時には「クラウド」コンピューティングシステムまたは「クラウド」と呼ばれる1つまたは複数のサーバ上で動作し得る。様々な実装形態では、クライアントデバイスは、グラフィカルユーザインターフェース(「GUI」)をレンダリングするために、例えば、自動化されたアシスタントのクライアント部分によって使用されるディスプレイを含み得る。いくつかの実装形態では、GUIは、サードパーティコンピューティングサービスによって提供された基礎となるマークアップ言語(例えば、HTML、XML)に基づいてグラフィックをレンダリングする組み込みウェブブラウザの形態をとり得る。GUIの提供は、音声対話のみを介して可能であり得るよりも効率的な方法でユーザがサードパーティコンピューティングサービスと対話することを可能にし得る。
【0007】
ユーザが、サードパーティコンピューティングサービスとさらに関わるために自動化されたアシスタントと関わっているいくつかの実装形態では、サードパーティコンピューティングサービスは、口頭ダイアログステートマシンおよび/または視覚的ダイアログステートマシンに従ってユーザと関わり得る。口頭ダイアログステートマシンは、ユーザとコンピューティングサービスとの間の口頭ダイアログを管理し得、口頭ダイアログにおいて、ユーザは、タイプされたおよび/または音声の自由形式の自然言語入力を提供する。視覚的ダイアログステートマシンは、没入型体験の一部としてGUI上にレンダリングされるものを管理し得る。いくつかのそのような実装形態では、口頭ダイアログが特定の状態に達したときに、特定のGUIがレンダリングされるように、および/または視覚的ダイアログステートマシンを特定の視覚的ダイアログ状態に進めるためにユーザが特定の方法でGUIと対話したときに、口頭ダイアログが特定の状態に自動的に進むように、口頭ダイアログステートマシンの1つまたは複数の口頭ダイアログ状態は、視覚的ダイアログステートマシンの1つまたは複数の視覚的ダイアログ状態にリンクされ得る。
【0008】
いくつかの実装形態では、ユーザは、自動化されたアシスタントのサーバ部分を介して送り込まれた口頭コマンドまたは他のタッチレス入力(ユーザの意図を示す)を使用して、サードパーティコンピューティングサービスによって提供されたGUIとタッチレス会話することができ得る。例えば、ユーザが、スマートホームデバイスの制御を可能にするサードパーティコンピューティングサービスと(自動化されたアシスタントを介して)関わることを想定する。スマートホームデバイスを制御/構成することに関連する様々なオプションが、例えば、GUIの複数のタイル内で、GUI上に提示され得る。(例えば、マウスまたはタッチスクリーンを使用して)タイルのうちの1つを選択することができることに加えて、ユーザは、「私のデバイスを構成しましょう(Let's configure my device)」または「助けが必要です(I need help)」などの口頭コマンドを発することによって、タイルのうちの1つを選択することもできる。これは、ユーザがデバイスを構成することを可能にする、または選択可能なFAQのリストを提供するインターフェースモジュールに進む、GUIとのタッチレス対話をトリガし得る。別の例として、ユーザは、「1画面下にスクロールして(scroll down one screen)」または「次の段落に移動して(move to the next paragraph)」などの口頭コマンドを発することによって、GUIの一部としてレンダリングされた文書をスクロールし得る。自動化されたアシスタントのサーバ部分を介してサードパーティコンピューティングサービスに口頭コマンド/他のタッチレス入力を送り込むことに加えて、サードパーティコンピューティングサービスからクライアントデバイスへのすべてのデータおよびコマンドは、自動化されたアシスタントのサーバ部分を介して送られ得る。自動化されたアシスタントのサーバ部分は、サードパーティコンピューティングサービスから発信された、またはサードパーティコンピューティングサービスを介して受信された不正なメッセージなどが、クライアントデバイスに到達するのを防ぐ可能性があるので、これは、クライアントデバイスのセキュリティを強化するのに役立ち得る。
【0009】
いくつかの実装形態では、ユーザは、視覚的ダイアログステートマシンと口頭ダイアログステートマシンの両方を介して進むために、サードパーティコンピューティングサービスによって提供されたGUIと対話し得る。例として、ユーザは、特定のオブジェクトにズームインするようにGUIを操作し、「これは、なんですか?(What's this?)」などの口頭クエリを提供し得る。GUIを特定のオブジェクトに焦点を合わせることによって、ユーザはまた、口頭ステートマシンを特定のオブジェクトに焦点が合った状態に進める。したがって、「これは、なんですか?(What's this?)」というクエリ内の「これ(this)」という用語は、特定のオブジェクトに解決され得る。
【0010】
別の例として、サードパーティコンピューティングサービスが、複数選択式のターンベースのダイアログ(例えば、タスクを実行するための段階的なガイダンスに関連する)を提供することを想定する。特定の質問について、クライアントコンピューティングデバイスにおいてレンダリングされたGUIは、サードパーティコンピューティングサービスの視覚的ダイアログステートマシンの特定の状態に対応し得、複数選択式質問と回答の選択肢とを含み得る。同時に、口頭の自然言語出力が、サードパーティコンピューティングサービスの口頭ダイアログステートマシンに従って提供され得る。口頭の自然言語出力は、例えば、複数選択式質問を音読し得る(場合によっては、同様に回答の選択肢も通過し得る)。いくつかの実装形態では、ユーザは、画面上の回答の選択肢のうちの1つを選択するか、または特定の回答の選択肢を示す音声発話を提供することによって、視覚的ダイアログステートマシンと口頭ダイアログステートマシンの両方を異なるそれぞれの状態に(例えば、次の質問に)進め得る。
【0011】
本明細書で説明した技法は、様々な技術的利点および利益を生じさせ得る。一例として、自由形式の入力に基づいて解釈することおよび/または意図のマッチングを実行することは、かなりのコンピューティングリソースを拘束する。ユーザが自動化されたアシスタントとの会話を進めるために事前定義されたグラフィカル要素と触覚的に対話することを可能にすることによって、これらのリソースは、解釈/意図のマッチングを実行する必要がないことと、サードパーティコンピューティングサービスに関連付けられたダイアログステートマシンの効率的なトラバーサルを可能にすることとの両方から節約され得る。電力およびコンピューティングリソースのそのような浪費またはその他の非効率的もしくは不必要な使用は、クライアントコンピューティングデバイス自体において、および/または自動化されたアシスタントのサーバ部分を動作する1つもしくは複数のネットワークサーバなどのリモートコンピューティング装置において発生し得る。加えて、リモートコンピューティング装置との不必要な通信は、通信ネットワーク上に望ましくない負荷を引き起こす。別の例として、プラットフォーム非依存型ウェブブラウザを、自動化されたアシスタントのクライアント部分に組み込むことによって、サードパーティ開発者は、それらのコンピューティングサービスに一様な方法で付随するように視覚的コンテンツを提供することができる。これは、メカニズム/プロセスが特定のクライアントデバイス用に特別に構成されることを必要とすることなく、コンピューティングサービスおよび視覚的コンテンツが広範囲のクライアントデバイスにわたって提供されることを可能にし得る。
【0012】
いくつかの実装形態では、少なくとも1つのクライアントコンピューティングデバイスを含むシステムが、提供される。クライアントコンピューティングデバイスは、ディスプレイを有し、自動化されたアシスタントのクライアント部分を実装する。システムは、自動化されたアシスタントのサーバ部分を実装する1つまたは複数のサーバコンピューティングデバイスをさらに含む。ユーザは、ユーザと、自動化されたアシスタントと、サードパーティコンピューティングサービスとの間の人間対コンピュータのダイアログセッションに参加するためにクライアント部分と対話する。サードパーティコンピューティングサービスは、口頭ダイアログステートマシンと視覚的ダイアログステートマシンとに従ってユーザと関わる。自動化されたアシスタントのクライアント部分は、サードパーティコンピューティングサービスから、自動化されたアシスタントのサーバ部分を経由して、視覚的ダイアログステートマシンの第1の視覚的ダイアログ状態を示すデータを受信するように構成される。自動化されたアシスタントのクライアント部分は、第1の視覚的ダイアログ状態に基づいて、ディスプレイ上に、人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースをレンダリングするようにさらに構成される。グラフィカルユーザインターフェースは、口頭ステートマシンを、第1の視覚的ダイアログ状態に対応する第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させるように動作可能な少なくとも1つのグラフィカル要素を含む。自動化されたアシスタントのクライアント部分は、ユーザによる少なくとも1つのグラフィカル要素の動作を検出するようにさらに構成される。自動化されたアシスタントのクライアント部分は、自動化されたアシスタントのサーバ部分に、少なくとも1つのグラフィカル要素の動作を示すデータを提供するようにさらに構成される。自動化されたアシスタントのサーバ部分は、少なくとも1つのグラフィカル要素の動作を示すデータを、サードパーティコンピューティングサービスに提供するように構成される。少なくとも1つのグラフィカル要素の動作を示すデータは、サードパーティコンピューティングサービスを、第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させる。
【0013】
本明細書で開示した技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意選択で含み得る。
【0014】
いくつかの実装形態では、自動化されたアシスタントのサーバ部分は、サードパーティコンピューティングサービスから、第2の口頭ダイアログ状態を示すデータを受信することと、自動化されたアシスタントのクライアント部分に、第2の口頭ダイアログ状態を示すデータを提供することとを行うようにさらに構成され得る。いくつかの実装形態では、第2の口頭ダイアログ状態を示すデータは、テキストまたはオーディオデータを含み得る。それらの実装形態のうちのいくつかでは、クライアントデバイスは、第2の口頭ダイアログ状態を示すデータを受信したことに応答して、テキストを音声に変換し、音声を可聴にレンダリングすること、または、オーディオデータを可聴にレンダリングすることを行うようにさらに構成され得る。
【0015】
いくつかの実装形態では、自動化されたアシスタントのサーバ部分からサードパーティコンピューティングサービスへの、少なくとも1つのグラフィカル要素の動作を示すデータの提供は、サードパーティコンピューティングサービスを、第1の視覚的ダイアログ状態から第2の視覚的ダイアログ状態に遷移させ得る。それらの実装形態のうちのいくつかでは、第2の視覚的ダイアログ状態は、第2の口頭ダイアログ状態に対応し得る。それらの実装形態のうちのいくつかでは、自動化されたアシスタントのクライアント部分は、サードパーティコンピューティングサービスから、自動化されたアシスタントのサーバ部分を経由して、第2の視覚的ダイアログ状態を示すデータを受信することと、第2の視覚的ダイアログ状態に基づいて、ディスプレイ上に、人間対コンピュータのダイアログセッションに関連付けられた更新されたグラフィカルユーザインターフェースをレンダリングすることとを行うようにさらに構成され得る。それらの実装形態のうちのいくつかでは、第2の視覚的ダイアログ状態を示すデータは、クライアントデバイスに、更新されたグラフィカルユーザインターフェースをレンダリングするためにタッチレス対話を自動的に実行させ得る。それらの実装形態のうちのいくつかでは、タッチレス対話は、グラフィカルユーザインターフェースの選択可能要素の動作と、グラフィカルユーザインターフェース内にレンダリングされた文書の特定の位置へのスクロールと、グラフィカルユーザインターフェースの一部に対するズームインとのうちの1つまたは複数を含み得る。
【0016】
いくつかの実装形態では、サードパーティコンピューティングサービスが第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移した後、自動化されたアシスタントのクライアント部分は、ユーザから、クライアントコンピューティングデバイスの1つまたは複数の入力構成要素において、音声の自由形式の入力を受信することと、自動化されたアシスタントのサーバ部分に、音声の自由形式の入力を示すデータを提供することと、自動化されたアシスタントのサーバ部分から、表示内容を示すデータを受信することとを行うようにさらに構成され得る。自動化されたアシスタントのサーバ部分は、サードパーティコンピューティングサービスに、音声の自由形式の入力を示すデータ、または音声の自由形式の入力を示すデータに基づく追加データを提供したことに基づいて、サードパーティコンピューティングサービスから表示内容を示すデータを取得し得る。サードパーティコンピューティングサービスは、受信したデータまたは追加データに基づいて、かつ第2の口頭ダイアログ状態に遷移したことに基づいて、表示内容を示すデータを生成し得る。自動化されたアシスタントのクライアント部分は、受信した表示内容に基づいて、グラフィカルユーザインターフェースにおけるタッチレス対話をトリガするようにさらに構成され得る。
【0017】
いくつかの実装形態では、タッチレス対話は、グラフィカルユーザインターフェースの選択可能要素の動作と、グラフィカルユーザインターフェース内にレンダリングされた文書の特定の位置へのスクロールと、グラフィカルユーザインターフェースの一部に対するズームインとのうちの1つまたは複数を含み得る。
【0018】
いくつかの実装形態では、少なくとも1つのクライアントコンピューティングデバイスと1つまたは複数のサーバコンピューティングデバイスとを含むシステムが、提供される。クライアントコンピューティングデバイスは、ディスプレイを有し、自動化されたアシスタントのクライアント部分を実装する。システムは、自動化されたアシスタントのサーバ部分を実装する1つまたは複数のサーバコンピューティングデバイスをさらに含む。ユーザは、ユーザと、自動化されたアシスタントと、サードパーティコンピューティングサービスとの間の人間対コンピュータのダイアログセッションに参加するためにクライアント部分と対話する。自動化されたアシスタントのクライアント部分は、クライアントコンピューティングデバイスのディスプレイ上に、人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースをレンダリングするように構成される。自動化されたアシスタントのクライアント部分は、ユーザから、クライアントコンピューティングデバイスの1つまたは複数の入力構成要素において、音声の自由形式の入力を受信するようにさらに構成される。自動化されたアシスタントのクライアント部分は、自動化されたアシスタントのサーバ部分に、音声の自由形式の入力を示すデータを提供するようにさらに構成される。自動化されたアシスタントのクライアント部分は、自動化されたアシスタントのサーバ部分から、表示内容を示すデータを受信するようにさらに構成される。自動化されたアシスタントのクライアント部分は、表示内容に基づいて、ユーザとグラフィカルユーザインターフェースとの間のタッチレス対話をトリガするようにさらに構成される。自動化されたアシスタントのサーバ部分は、音声の自由形式の入力を示すデータに基づいて、ユーザの意図を決定するように構成される。自動化されたアシスタントのサーバ部分は、意図を示すデータを、サードパーティコンピューティングサービスに提供するようにさらに構成される。意図を示すデータは、サードパーティコンピューティングサービスに、解決情報を生成するために意図を解決させる。自動化されたアシスタントのサーバ部分は、意図を示すデータの提供に応答して、サードパーティコンピューティングサービスから表示内容を受信するようにさらに構成される。表示内容は、人間対コンピュータのダイアログセッションに関連してサードパーティコンピューティングサービスのために維持され、ユーザの意図と解決情報のうちの一方または両方に少なくとも部分的に基づいて更新される。
【0019】
本明細書で開示した技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意選択で含み得る。
【0020】
いくつかの実装形態では、グラフィカルユーザインターフェースは、自動化されたアシスタントのクライアント部分に組み込まれたウェブブラウザを含み得る。いくつかの実装形態では、タッチレス対話は、グラフィカルユーザインターフェースの選択可能要素の動作と、グラフィカルユーザインターフェース内にレンダリングされた文書の特定の位置へのスクロールと、グラフィカルユーザインターフェースの一部に対するズームインとのうちの1つまたは複数を含み得る。
【0021】
いくつかの実装形態では、ディスプレイを有するクライアントデバイスにおいて、自動化されたアシスタントのクライアント部分を実装するステップを含む、1つまたは複数のプロセッサによって実行される方法が、提供される。方法は、1つまたは複数のサーバコンピューティングデバイスにおいて、自動化されたアシスタントのサーバ部分を実装するステップをさらに含む。ユーザは、ユーザと、自動化されたアシスタントと、サードパーティコンピューティングサービスとの間の人間対コンピュータのダイアログセッションに参加するために、クライアント部分と対話する。サードパーティコンピューティングサービスは、口頭ダイアログステートマシンと視覚的ダイアログステートマシンとに従ってユーザと関わる。方法は、クライアント部分において、サードパーティコンピューティングサービスから、自動化されたアシスタントのサーバ部分を経由して、視覚的ダイアログステートマシンの第1の視覚的ダイアログ状態を示すデータを受信するステップをさらに含む。方法は、クライアント部分によって、第1の視覚的ダイアログ状態に基づいて、ディスプレイ上に、人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースをレンダリングするステップをさらに含む。グラフィカルユーザインターフェースは、口頭ステートマシンを、第1の視覚的ダイアログ状態に対応する第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させるように動作可能な少なくとも1つのグラフィカル要素を含む。方法は、クライアント部分によって、ユーザによる少なくとも1つのグラフィカル要素の動作を検出するステップをさらに含む。方法は、クライアント部分によって、自動化されたアシスタントのサーバ部分に、少なくとも1つのグラフィカル要素の動作を示すデータを提供するステップをさらに含む。方法は、サーバ部分によって、少なくとも1つのグラフィカル要素の動作を示すデータを、サードパーティコンピューティングサービスに提供するステップをさらに含む。少なくとも1つのグラフィカル要素の動作を示すデータは、サードパーティコンピューティングサービスを、第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させる。
【0022】
本明細書で開示した技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意選択で含み得る。
【0023】
いくつかの実装形態では、方法は、サーバ部分によって、サードパーティコンピューティングサービスから、第2の口頭ダイアログ状態を示すデータを受信するステップと、サーバ部分によって、自動化されたアシスタントのクライアント部分に、第2の口頭ダイアログ状態を示すデータを提供するステップとをさらに含み得る。いくつかの実装形態では、自動化されたアシスタントのサーバ部分からサードパーティコンピューティングサービスへの、少なくとも1つのグラフィカル要素の動作を示すデータの提供は、サードパーティコンピューティングサービスを、第1の視覚的ダイアログ状態から第2の視覚的ダイアログ状態に遷移させ得る。
【0024】
いくつかの実装形態では、1つまたは複数のプロセッサによって少なくとも部分的に実装されたコンピューティングサービスによって、自動化されたアシスタントから、ユーザと自動化されたアシスタントとの間の人間対コンピュータのダイアログセッションの一部として自動化されたアシスタントと通信しているコンピューティングデバイスのユーザの意図を示すデータを受信するステップを含む、1つまたは複数のプロセッサによって実行される方法が、提供される。方法は、解決情報を生成するためにユーザの意図を解決するステップをさらに含む。方法は、人間対コンピュータのダイアログセッションに関連してコンピューティングサービスのために維持された表示内容を更新するステップをさらに含む。更新するステップは、意図と解決情報のうちの一方または両方に少なくとも部分的に基づく。方法は、表示内容を示すデータを自動化されたアシスタントに提供するステップをさらに含む。表示内容を示すデータは、自動化されたアシスタントによってコンピューティングデバイスに提供され、表示内容を示すデータは、コンピューティングデバイス上で実行されているアシスタントアプリケーションに、ユーザとアシスタントアプリケーションのグラフィカルユーザインターフェースとの間のタッチレス対話をトリガさせる。
【0025】
本明細書で開示した技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意選択で含み得る。
【0026】
いくつかの実装形態では、グラフィカルユーザインターフェースは、アシスタントアプリケーション内に組み込まれたウェブブラウザを含み得る。いくつかの実装形態では、タッチレス対話は、グラフィカルユーザインターフェースの選択可能要素の動作、グラフィカルユーザインターフェース内にレンダリングされた文書の特定の位置へのスクロールと、グラフィカルユーザインターフェースの一部に対するズームインとのうちの1つまたは複数を含み得る。それらの実装形態のうちのいくつかでは、ユーザの意図を示すデータは、コンピューティングデバイスにおいてユーザによって提供された音声の自由形式の入力の音声認識出力を含み得る。いくつかの実装形態では、方法は、コンピューティングサービスによって、音声認識出力に基づいてユーザの意図を決定するステップをさらに含み得る。
【0027】
他の実装形態は、上記および/または本明細書の他の箇所で説明した方法のうちの1つまたは複数などの方法を実行するために、1つまたは複数のプロセッサ(例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU))によって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含み得る。さらに他の実装形態は、上記および/または本明細書の他の箇所で説明した方法のうちの1つまたは複数などの方法を実行するために、記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のコンピュータのシステムを含み得る。
【0028】
本明細書でより詳細に説明した前述の概念および追加の概念のすべての組合せは、本明細書で開示した主題の一部であると考えられることが、理解されるべきである。例えば、本開示の終わりに現れる特許請求された主題のすべての組合せは、本明細書で開示した主題の一部であると考えられる。
【図面の簡単な説明】
【0029】
図1】本明細書で開示した実装形態が実装され得る例示的な環境のブロック図である。
図2】様々な実装形態による、自動化されたアシスタントのクライアント部分において実装され得る構成要素の例を示す図である。
図3】本明細書で説明した技法が1つのシナリオにおいてどのように用いられ得るのかの例を示す図である。
図4】本明細書で説明した技法が1つのシナリオにおいてどのように用いられ得るのかの例を示す図である。
図5】本明細書で説明した技法が別のシナリオにおいてどのように用いられ得るのかの例を示す図である。
図6】本明細書で説明した技法が別のシナリオにおいてどのように用いられ得るのかの例を示す図である。
図7】本明細書で説明した技法がさらに別のシナリオにおいてどのように用いられ得るのかの例を示す図である。
図8】本明細書で開示した実装形態による例示的な方法を示すフローチャートである。
図9】本明細書で開示した実装形態による例示的な方法を示すフローチャートである。
図10】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0030】
ここで図1に注目すると、本明細書で開示した技法が実装され得る例示的な環境が、示されている。例示的な環境は、1つまたは複数のクライアントコンピューティングデバイス106を含む。各クライアントデバイス106は、本明細書では自動化されたアシスタントの「クライアント部分」と呼ばれる場合もある自動化されたアシスタントクライアント108のそれぞれのインスタンスを実行し得る。本明細書では自動化されたアシスタントの「サーバ部分」と集合的に呼ばれる場合もある1つまたは複数のクラウドベースの自動化されたアシスタント構成要素119は、一般に114において示す1つまたは複数のローカルおよび/またはワイドエリアネットワーク(例えば、インターネット)を介してクライアントデバイス106に通信可能に結合された1つまたは複数のコンピューティングシステム(「クラウド」コンピューティングシステムと集合的に呼ばれる)上に実装され得る。
【0031】
様々な実装形態では、自動化されたアシスタントクライアント108のインスタンスは、1つまたは複数のクラウドベースの自動化されたアシスタント構成要素119とのその対話を経由して、ユーザの観点から、ユーザが人間対コンピュータのダイアログに関わり得る自動化されたアシスタント120の論理インスタンスであるように見えるものを形成し得る。そのような自動化されたアシスタント120の一例が、図1において破線で示されている。したがって、クライアントデバイス106上で実行されている自動化されたアシスタントクライアント108と関わる各ユーザは、事実上、自動化されたアシスタント120のユーザ自体の論理インスタンスと関わり得ることが、理解されるべきである。簡潔さおよび単純さのために、特定のユーザに「サービスする」ものとして本明細書で使用される「自動化されたアシスタント」という用語は、ユーザによって動作されるクライアントデバイス106上で実行されている自動化されたアシスタントクライアント108と、(複数の自動化されたアシスタントクライアント108間で共有され得る)1つまたは複数のクラウドベースの自動化されたアシスタント構成要素119との組合せを指す。いくつかの実装形態では、自動化されたアシスタント120は、ユーザが自動化されたアシスタント120のその特定のインスタンスによって実際に「サービス」されているかに関係なく、任意のユーザからの要求に応答し得ることも、理解されるべきである。
【0032】
1つまたは複数のクライアントデバイス106は、例えば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザのビークルのコンピューティングデバイス(例えば、ビークル内通信システム、ビークル内エンターテインメントシステム、ビークル内ナビゲーションシステム)、独立型対話式スピーカ(場合によっては、視覚センサを含み得る)、スマートテレビ(または、自動化されたアシスタント能力を有するネットワーク化されたドングルを備えた標準テレビ)などのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。追加のおよび/または代替のクライアントコンピューティングデバイスが、提供され得る。独立型対話式スピーカ(または「スマートスピーカ」)などのいくつかのクライアントデバイス106は、ユーザと自動化されたアシスタント120との間の対話を容易にするように主として設計されたアシスタントデバイスの形態をとり得る。
【0033】
いくつかの実装形態では、クライアントデバイス106は、必須ではないが、1つまたは複数の視野を有する1つまたは複数の視覚センサ107を備え得る。視覚センサ107は、デジタルカメラ、パッシブ赤外線(「PIR」)センサ、ステレオカメラ、RGBdカメラなどの様々な形態をとり得る。1つまたは複数の視覚センサ107は、クライアントデバイス106が展開されている環境の画像フレーム(静止画またはビデオ)をキャプチャするために、例えば、画像キャプチャモジュール111によって使用され得る。これらの画像フレームは、次いで、画像フレーム内に含まれるユーザが提供した視覚的手がかりを検出するために、例えば、視覚的手がかりモジュール1121によって分析され得る。これらの視覚的手がかりは、限定はしないが、手のジェスチャ、特定の基準点への注視、顔の表情、ユーザによる事前定義された動きなどを含み得る。これらの検出された視覚的手がかりは、自動化されたアシスタント120を呼び出すおよび/または自動化されたアシスタント120に様々なアクションをとらせるなどの、様々な目的のために使用され得る。
【0034】
本明細書でより詳細に説明したように、自動化されたアシスタント120は、1つまたは複数のクライアントデバイス106のユーザインターフェース入力および出力デバイスを介して、1人または複数のユーザとの人間対コンピュータのダイアログセッションに関わる。いくつかの実装形態では、自動化されたアシスタント120は、クライアントデバイス106のうちの1つの1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって提供されたユーザインターフェース入力に応答して、ユーザとの人間対コンピュータのダイアログセッションに関わり得る。それらの実装形態のうちのいくつかでは、ユーザインターフェース入力は、自動化されたアシスタント120に明示的に向けられる。例えば、ユーザは、自動化されたアシスタント120に、タイプされたテキストを積極的に聞き取るまたは監視することを開始させるために、「オーケー、アシスタント(OK, Assistant)」または「ねえ、アシスタント(Hey, Assistant)」などの所定の呼び出しフレーズを口頭で提供(例えば、タイプする、話す)し得る。追加的または代替的に、いくつかの実装形態では、自動化されたアシスタント120は、単独で、または口頭呼び出しフレーズと組み合わせて、1つまたは複数の検出された視覚的手がかりに基づいて呼び出され得る。
【0035】
いくつかの実装形態では、自動化されたアシスタント120は、ユーザインターフェース入力が自動化されたアシスタント120に明示的に向けられていない場合であっても、ユーザインターフェース入力に応答して人間対コンピュータのダイアログセッションに関わり得る。例えば、自動化されたアシスタント120は、ユーザインターフェース入力の内容を調査し、ユーザインターフェース入力内に存在している特定の用語に応答して、および/または他の手がかりに基づいて、ダイアログセッションに関わり得る。多くの実装形態では、自動化されたアシスタント120は、ユーザからの発話をテキストに変換するために音声認識を利用し、それに応じて、例えば、検索結果、一般的な情報を提供すること、および/または1つもしくは複数の応答アクション(例えば、メディアを再生すること、ゲームを起動すること、食べ物を注文することなど)をとることによって、テキストに応答し得る。いくつかの実装形態では、自動化されたアシスタント120は、追加的または代替的に、発話をテキストに変換することなく発話に応答することができる。例えば、自動化されたアシスタント120は、音声入力を、埋め込み、(音声入力内に存在するエンティティを示す)エンティティ表現、および/または他の「非テキスト」表現に変換し、そのような非テキスト表現に対して動作することができる。したがって、音声入力から変換されたテキストに基づいて動作するものとして本明細書で説明した実装形態は、追加的および/または代替的に、音声入力に対して直接、および/または音声入力の他の非テキスト表現に対して動作し得る。
【0036】
クライアントコンピューティングデバイス106、およびクラウドベースの自動化されたアシスタント構成要素119を動作させるコンピューティングデバイスの各々は、データおよびソフトウェアアプライアンスを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介する通信を容易にする他の構成要素とを含み得る。クライアントコンピューティングデバイス106によっておよび/または自動化されたアシスタント120によって実行される動作は、複数のコンピュータシステムにわたって分散され得る。自動化されたアシスタント120は、例えば、ネットワークを介して互いに結合された1つまたは複数の場所における1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【0037】
上記のように、様々な実装形態では、クライアントコンピューティングデバイス106は、自動化されたアシスタントクライアント108、または自動化されたアシスタント120の「クライアント部分」を動作させ得る。様々な実装形態では、自動化されたアシスタントクライアント108は、スピーチキャプチャモジュール110、前述の画像キャプチャモジュール111、視覚的手がかりモジュール1121、および/または呼び出しモジュール112を含み得る。他の実装形態では、スピーチキャプチャモジュール110、画像キャプチャモジュール111、視覚的手がかりモジュール1121、および/または呼び出しモジュール113の1つまたは複数の態様は、例えば、1つまたは複数のクラウドベースの自動化されたアシスタント構成要素119によって、自動化されたアシスタントクライアント108とは別に実装され得る。例えば、図1において、画像データ内の視覚的手がかりを検出し得るクラウドベースの視覚的手がかりモジュール1122も、存在する。
【0038】
様々な実装形態では、ハードウェアとソフトウェアとの任意の組合せを使用して実装され得るスピーチキャプチャモジュール110は、ユーザの発話のオーディオ記録をキャプチャするために、マイクロフォン109または他の圧力センサなどのハードウェアとインターフェースし得る。様々な目的のために、様々なタイプの処理が、このオーディオ記録に対して実行され得る。いくつかの実装形態では、ハードウェアまたはソフトウェアの任意の組合せを使用して実装され得る画像キャプチャモジュール111は、視覚センサ107の視野に対応する1つまたは複数の画像フレーム(例えば、デジタル写真)をキャプチャするために、カメラ107とインターフェースするように構成され得る。
【0039】
様々な実装形態では、視覚的手がかりモジュール1121(および/またはクラウドベースの視覚的手がかりモジュール1122)は、ハードウェアとソフトウェアとの任意の組合せを使用して実装され得、1つまたは複数の画像フレーム内および/またはそれらにわたってキャプチャされた1つまたは複数の視覚的手がかりを検出するために、画像キャプチャモジュール111によって提供された1つまたは複数の画像フレームを分析するように構成され得る。視覚的手がかりモジュール1121は、視覚的手がかりを検出するために様々な技法を用い得る。例えば、図1において、視覚的手がかりモジュール1121は、(クライアントデバイス106と一体であり得、および/または、例えば、クラウド内で、クライアントデバイス106からリモートでホストされ得る)視覚的手がかりモデルデータベース114と通信可能に結合されている。視覚的手がかりモデルデータベース114は、例えば、画像フレーム内の検出されたユーザが提供した視覚的手がかりを示す出力を生成するように訓練された1つまたは複数の人工知能(または機械学習)モデルを含み得る。
【0040】
スピーチキャプチャモジュール110は、前述のように、例えば、マイクロフォン109を介して、ユーザのスピーチをキャプチャするように構成され得る。追加的または代替的に、いくつかの実装形態では、スピーチキャプチャモジュール110は、例えば、スピーチ-テキスト(「STT」)処理技法を使用して、キャプチャされたオーディオをテキストおよび/または他の表現もしくは埋め込みに変換するようにさらに構成され得る。追加的または代替的に、いくつかの実装形態では、スピーチキャプチャモジュール110は、例えば、1つまたは複数の音声シンセサイザを使用して、テキストをコンピュータ合成音声に変換するように構成され得る。しかしながら、クライアントデバイス106は、コンピューティングリソース(例えば、プロセッササイクル、メモリ、バッテリなど)に関して比較的制約される場合があるので、クライアントデバイス106に対してローカルなスピーチキャプチャモジュール110は、有限数の異なる発話フレーズ、特に、自動化されたアシスタント120を呼び出すフレーズを、テキスト(または、より低次元の埋め込みなどの他の形式)に変換するように構成され得る。他のスピーチ入力は、クラウドベースのテキスト-スピーチ(「TTS」)モジュール116および/またはクラウドベースのSTTモジュール117を含み得るクラウドベースの自動化されたアシスタント構成要素119に送信され得る。
【0041】
様々な実装形態では、呼び出しモジュール113は、例えば、スピーチキャプチャモジュール110および/または(いくつかの実装形態では、単一のモジュール内で画像キャプチャモジュール111と組み合わされ得る)視覚的手がかりモジュール1121によって提供された出力に基づいて、自動化されたアシスタント120を呼び出すかどうかを決定するように構成され得る。例えば、呼び出しモジュール113は、ユーザの発話が、自動化されたアシスタント120との人間対コンピュータのダイアログセッションを開始すべき呼び出しフレーズとして適格であるかどうかを決定し得る。いくつかの実装形態では、呼び出しモジュール113は、オーディオ記録またはオーディオ記録から抽出された特徴のベクトル(例えば、埋め込み)などの、ユーザの発話を示すデータを、視覚的手がかりモジュール1121によって検出された1つまたは複数の視覚的手がかりと組み合わせて分析し得る。いくつかの実装形態では、音声発話に応答して自動化されたアシスタント120を呼び出すかどうかを決定するために呼び出しモジュール113によって用いられるしきい値は、特定の視覚的手がかりも検出されたときに下げられ得る。その結果、ユーザが、適切な呼び出しフレーズ「オーケー、アシスタント(OK assistant)」とは異なるが、音声学的に多少類似した音声発話を提供した場合であっても、それにもかかわらず、その発話は、視覚的手がかり(例えば、話者による手振り、話者が視覚センサ107を直接見つめるなど)と併せて検出された場合、適切な呼び出しとして受け入れられ得る。
【0042】
いくつかの実装形態では、発話および/または視覚的手がかりが呼び出しとして適格であるかどうかを決定するために、デバイス上の呼び出しモデルが、呼び出しモジュール113によって使用され得る。そのようなデバイス上の呼び出しモデルは、呼び出しフレーズ/ジェスチャのバリエーションを検出するように訓練され得る。例えば、いくつかの実装形態では、デバイス上の呼び出しモデル(例えば、1つまたは複数のニューラルネットワーク)は、ユーザからの発話のオーディオ記録(または抽出された特徴ベクトル)、ならびに発話と同時にキャプチャされた1つまたは複数の画像フレームおよび/または検出された視覚的手がかりを示すデータを各々が含む訓練例を使用して訓練され得る。
【0043】
クラウドベースのTTSモジュール116は、テキストデータ(例えば、自動化されたアシスタント120によって定式化された自然言語応答)をコンピュータ生成スピーチ出力に変換するために、クラウドの事実上無制限のリソースを活用するように構成され得る。いくつかの実装形態では、TTSモジュール116は、例えば、1つまたは複数のスピーカを使用して、直接出力されるように、コンピュータ生成スピーチ出力をクライアントデバイス106に提供し得る。他の実装形態では、自動化されたアシスタント120によって生成されたテキストデータ(例えば、自然言語応答)は、スピーチキャプチャモジュール110に提供され得、スピーチキャプチャモジュール110は、次いで、テキストデータを、ローカルに出力されるコンピュータ生成スピーチに変換し得る。
【0044】
クラウドベースのSTTモジュール117は、スピーチキャプチャモジュール110によってキャプチャされたオーディオデータをテキストに変換するために、クラウドの事実上無制限のリソースを活用するように構成され得、テキストは、次いで、自然言語理解モジュール135に提供され得る。いくつかの実装形態では、クラウドベースのSTTモジュール117は、スピーチのオーディオ記録を1つまたは複数の音素に変換し、次いで、1つまたは複数の音素をテキストに変換し得る。追加的または代替的に、いくつかの実装形態では、STTモジュール117は、状態復号グラフを用い得る。いくつかの実装形態では、STTモジュール117は、ユーザの発話の複数の候補テキスト解釈を生成し得る。いくつかの実装形態では、STTモジュール117は、同時に検出された視覚的手がかりが存在するかどうかに応じて、特定の候補テキスト解釈を他のものよりも高く重み付けまたはバイアスし得る。例えば、2つの候補テキスト解釈が同様の信頼スコアを有すると想定する。従来の自動化されたアシスタント120では、ユーザは、これらの候補テキスト解釈間の曖昧さをなくすように求められ得る。しかしながら、本開示の選択された態様を用いて構成される自動化されたアシスタント120では、1つまたは複数の検出された視覚的手がかりが、「均衡を破る(break the tie)」ために使用され得る。
【0045】
自動化されたアシスタント120(および特に、クラウドベースの自動化されたアシスタント構成要素119)は、意図照合器(matcher)135と、前述のTTSモジュール116と、前述のSTTモジュール117と、以下でより詳細に説明している他の構成要素とを含み得る。いくつかの実装形態では、モジュールおよび/または自動化されたアシスタント120のモジュールのうちの1つまたは複数は、省略、結合、および/または自動化されたアシスタント120とは別の構成要素内に実装され得る。いくつかの実装形態では、プライバシーを保護するために、自然言語プロセッサ122、TTSモジュール116、STTモジュール117などの、自動化されたアシスタント120の構成要素のうちの1つまたは複数は、(例えば、クラウドを除く)クライアントデバイス106上の少なくともパーツ上に実装され得る。
【0046】
いくつかの実装形態では、自動化されたアシスタント120は、自動化されたアシスタント120との人間対コンピュータのダイアログセッション中にクライアントデバイス106のうちの1つのユーザによって生成された様々な入力に応答して応答内容を生成する。自動化されたアシスタント120は、ダイアログセッションの一部としてユーザに提示するための応答内容を(例えば、ユーザのクライアントデバイスから分離されている場合、1つまたは複数のネットワークを介して)提供し得る。例えば、自動化されたアシスタント120は、クライアントデバイス106を介して提供された自由形式の自然言語入力に応答して応答内容を生成し得る。本明細書で使用される場合、自由形式の入力は、ユーザによって定式化され、ユーザによる選択のために提示されたオプションのグループに制約されない入力である。
【0047】
本明細書で使用される場合、「ダイアログセッション」は、ユーザと自動化されたアシスタント120(および、場合によっては、他の人間の参加者)との間の1つまたは複数のメッセージの論理的に自己充足型の交換を含み得る。自動化されたアシスタント120は、セッション間の時間の経過、セッション間のユーザコンテキスト(例えば、場所、スケジュールされた会議の前/中/後など)の変化、ユーザと自動化されたアシスタント間のダイアログ以外のユーザとクライアントデバイスとの間の1つまたは複数の介在する対話(例えば、ユーザがしばらくの間アプリケーションを切り替える、ユーザが独立型の音声起動製品から離れ、後に戻る)の検出、セッション間のクライアントデバイスのロック/スリープ、自動化されたアシスタント120の1つまたは複数のインスタンスとインターフェースするために使用されるクライアントデバイスの変更などの、様々な信号に基づいてユーザとの複数のダイアログセッション間を区別し得る。
【0048】
意図照合器135は、ユーザによって提供された入力(例えば、音声発話、視覚的手がかりなど)に基づいて、および/またはセンサ信号、オンライン信号(例えば、ウェブサービスから取得されたデータ)などの他の信号などに基づいて、ユーザの意図を決定するように構成され得る。いくつかの実装形態では、意図照合器135は、自然言語プロセッサ122と、前述のクラウドベースの視覚的手がかりモジュール1122とを含み得る。様々な実装形態では、クラウドベースの視覚的手がかりモジュール1122は、クラウドベースの視覚的手がかりモジュール1122が自由になるより多くのリソースを有し得ることを除いて、視覚的手がかりモジュール1121と同様に動作し得る。特に、クラウドベースの視覚的手がかりモジュール1122は、ユーザの意図を決定するために、単独でまたは他の信号と組み合わせて意図照合器135によって使用され得る視覚的手がかりを検出し得る。
【0049】
自然言語プロセッサ112は、クライアントデバイス106を介してユーザによって生成された自然言語入力を処理するように構成され得、自動化されたアシスタント120の1つまたは複数の他の構成要素によって使用するための注釈付き出力(例えば、テキスト形式)を生成し得る。例えば、自然言語プロセッサ122は、クライアントデバイス106の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成された自然言語自由形式入力を処理し得る。生成された注釈付き出力は、自然言語入力の1つまたは複数の注釈と、自然言語入力の用語のうちの1つまたは複数(例えば、すべて)とを含む。
【0050】
いくつかの実装形態では、自然言語プロセッサ122は、自然言語入力内の様々なタイプの文法情報を識別し、注釈を付けるように構成される。例えば、自然言語プロセッサ122は、個々の単語を形態素に分離し、および/または形態素に、例えば、それらのクラスで注釈を付け得る形態素モジュールを含み得る。自然言語プロセッサ122は、用語にそれらの文法的役割で注釈を付けるように構成される品詞タグ付け器も含み得る。例えば、品詞タグ付け器は、各用語に、「名詞」、「動詞」、「形容詞」、「代名詞」などのその品詞でタグ付けし得る。また、例えば、いくつかの実装形態では、自然言語プロセッサ122は、追加的および/または代替的に、自然言語入力内の用語間の統語関係(syntactic relationship)を決定するように構成される係り受け解析器(dependency parser)(図示せず)を含み得る。例えば、係り受け解析器は、どの用語が文の他の用語、主語、動詞などを変更するか(例えば、解析木)を決定し得、そのような係り受けの注釈を付け得る。
【0051】
いくつかの実装形態では、自然言語プロセッサ122は、追加的および/または代替的に、人(例えば、文学のキャラクタ、有名人、公人などを含む)、組織、場所(実在および架空)などへの参照などの、1つまたは複数のセグメント内のエンティティ参照に注釈を付けるように構成されるエンティティタグ付け器(図示せず)を含み得る。いくつかの実装形態では、エンティティに関する情報は、ナレッジグラフ内(図示せず)などの1つまたは複数のデータベース内に記憶され得る。いくつかの実装形態では、ナレッジグラフは、既知のエンティティ(および、場合によっては、エンティティ属性)を表すノード、ならびにノードを接続し、エンティティ間の関係を表すエッジを含み得る。例えば、「バナナ」ノードは、「フルーツ」ノードに(例えば、子供として)接続され得、「フルーツ」ノードは、次に、「農産物」ノードおよび/または「食品」ノードに(例えば、子供として)接続され得る。別の例として、「仮想カフェ(Hypothetical Cafe)」と呼ばれるレストランは、その住所、提供される食品のタイプ、時間、連絡先情報などの属性も含むノードによって表され得る。「仮想カフェ」ノードは、いくつかの実装形態では、(例えば、子供-親関係を表す)エッジによって、「レストラン」ノード、「ビジネス」ノード、レストランが位置する都市および/または州を表すノードなどの、1つまたは複数の他のノードに接続され得る。
【0052】
自然言語プロセッサ122のエンティティタグ付け器は、(例えば、人などのエンティティクラスへのすべての参照の識別を可能にする)高いレベルの粒度、および/または(例えば、特定の人物などの特定のエンティティへのすべての参照の識別を可能にする)より低いレベルの粒度において、エンティティへの参照に注釈を付け得る。エンティティタグ付け器は、特定のエンティティを解決するために自然言語入力の内容に依存し得、および/または特定のエンティティを解決するためにナレッジグラフもしくは他のエンティティデータベースと任意選択で通信し得る。
【0053】
いくつかの実装形態では、自然言語プロセッサ122は、追加的および/または代替的に、1つまたは複数の文脈的手がかりに基づいて、同じエンティティへの参照をグループ化または「クラスタ化」するように構成される共参照リゾルバ(coreference resolver)(図示せず)を含み得る。例えば、共参照リゾルバは、「私は、前回そこで食べたときに仮想カフェが好きでした(I liked Hypothetical Cafe last time we ate there)」という自然言語入力内の「そこで(there)」という用語を「仮想カフェ(Hypothetical Cafe)」に解決するために使用され得る。
【0054】
いくつかの実装形態では、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数の他の構成要素からの注釈に依存し得る。例えば、いくつかの実装形態では、名前付きエンティティタグ付け器は、特定のエンティティへのすべての言及に注釈を付ける際に、共参照リゾルバおよび/または係り受け解析器からの注釈に依存し得る。また、例えば、いくつかの実装形態では、共参照リゾルバは、同じエンティティへの参照をクラスタ化する際に、係り受け解析器からの注釈に依存し得る。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素は、1つまたは複数の注釈を決定するために、特定の自然言語入力の外部の関連する以前の入力および/または他の関連するデータを使用し得る。
【0055】
意図照合器135は、例えば、(自然言語入力の注釈および用語を含み得る)自然言語プロセッサ122からの出力に基づいて、および/または視覚的手がかりモジュール(例えば、1121および/または1122)からの出力に基づいて、ユーザの意図を決定するために様々な技法を使用し得る。いくつかの実装形態では、意図照合器135は、例えば、文法と、視覚的手がかりと、応答アクション(またはより一般的にはインテント)との間の複数のマッピングを含む1つまたは複数のデータベース(図示せず)にアクセスし得る。多くの場合、これらの文法は、時間の経過とともに選択および/または学習され得、ユーザの最も一般的な意図を表し得る。例えば、「再生する<アーティスト>(play<artist>)」という1つの文法は、ユーザによって動作されるクライアントデバイス106上で<アーティスト>(<artist>)による音楽を再生させる応答アクションを呼び出す意図にマッピングされ得る。「[天気|予報]今日([weather|forecast]today)」という別の文法は、「今日の天気は、なんですか?(what's the weather today)」および「今日の予報は、なんですか?(what's the forecast for today?)」などのユーザクエリに一致可能であり得る。
【0056】
文法に加えて、またはその代わりに、いくつかの実装形態では、意図照合器135は、1つまたは複数の訓練された機械学習モデルを、単独で、または1つもしくは複数の文法および/もしくは視覚的手がかりと組み合わせて用い得る。これらの訓練された機械学習モデルはまた、1つまたは複数のデータベース内に記憶され得、例えば、ユーザの意図および/または任意の検出されたユーザが提供した視覚的手がかりを示すデータを次元が低下した空間に埋め込み、次いで、例えば、ユークリッド距離、コサイン類似度などの技法を使用して、他のどの埋め込み(および、したがって意図)が最も近接しているかを決定することによって、意図を識別するように訓練され得る。
【0057】
「再生する<アーティスト>(play<artist>)」の例示的な文法に見られるように、いくつかの文法は、スロット値(または「パラメータ」)で満たされ得るスロット(例えば、<アーティスト>(<artist>))を有する。スロット値は、様々な方法で決定され得る。しばしば、ユーザは、スロット値を積極的に提供する。例えば、「<トッピング>ピザを注文して(Order me a <topping> pizza)」という文法について、ユーザは、「ソーセージピザを注文して(order me a sausage pizza)」というフレーズを話す可能性があり得、その場合、スロット<トッピング>(<topping>)は、自動的に満たされる。追加的または代替的に、ユーザがスロット値を積極的に提供することなく、ユーザがスロット値で満たされるべきスロットを含む文法を呼び出した場合、自動化されたアシスタント120は、ユーザからそれらのスロット値を求め得る(例えば、「ピザにどのタイプのクラストを望みますか?(what type of crust do you want on your pizza?)」)。いくつかの実装形態では、スロットは、視覚的手がかりモジュール1121-2によって検出された視覚的手がかりに基づくスロット値で満たされ得る。例えば、ユーザは、クライアントデバイス106の視覚センサ107に3本の指を立てながら、「これだけ多くの猫ボウルを注文して(Order me this many cat bowls)」のようななにかを発することができる。または、ユーザは、特定の映画のDVDケースを持ちながら、「このような映画をもっと見つけて(Find me more movies like this)」のようななにかを発することができる。
【0058】
いくつかの実装形態では、自動化されたアシスタント120は、ユーザと1つまたは複数のサードパーティコンピューティングサービス140(または「サードパーティエージェント」または「エージェント」)との間の仲介者として機能し得る。これらのサードパーティコンピューティングサービス140は、入力を受信し、応答出力を提供する独立したソフトウェアプロセスであり得る。いくつかのサードパーティコンピューティングサービスは、例えば、クラウドベースの自動化されたアシスタント構成要素119を動作させるものとは別のコンピューティングシステム上で動作してもしなくてもよいサードパーティアプリケーションの形態をとり得る。意図照合器135によって識別され得るユーザ意図の1つの種類は、サードパーティコンピューティングサービス140と関わることである。例えば、自動化されたアシスタント120は、スマートデバイスを制御するためのサービスへのアプリケーションプログラミングインターフェース(「API」)へのアクセスを提供し得る。ユーザは、自動化されたアシスタント120を呼び出し、「暖房をオンにしたい(I'd like to turn the heating on)」などのコマンドを提供し得る。意図照合器135は、サードパーティサービスと関わるように自動化されたアシスタント120をトリガし、それによってユーザの暖房をオンにさせる文法にこのコマンドをマッピングし得る。サードパーティサービスは、暖房をオンにするコマンドを履行する(または「解決する」)ために満たされる必要があるスロットの最小限のリストを、自動化されたアシスタント120に提供し得る。この例では、スロットは、暖房が設定されるべき温度と、暖房がオンにされるべき持続時間とを含み得る。自動化されたアシスタント120は、スロットのためのパラメータを求める自然言語出力を生成し、(クライアントデバイス106を介して)ユーザに提供し得る。
【0059】
履行モジュール124は、意図照合器135によって出力された予測された/推定された意図、ならびに関連するスロット値(ユーザによって積極的に提供されるか、またはユーザに求められるかにかかわらず)を受信し、意図を履行する(または「解決する」)ように構成され得る。様々な実装形態では、ユーザの意図の履行(または「解決」)は、例えば、履行モジュール124によって、様々な履行情報(「応答」情報または「解決情報」とも呼ばれる)を生成/取得させ得る。以下に説明しているように、履行情報は、いくつかの実装形態では、履行情報に基づいて自然言語出力を生成し得る自然言語生成器(いくつかの図では「NLG」)126に提供され得る。
【0060】
意図は、様々な方法で満たされ(または「解決され」)得るので、履行(または「解決」)情報は、様々な形態をとり得る。ユーザが「「シャイニング」の屋外ショットはどこで撮影されたのか?(Where were the outdoor shots of ‘The Shining' filmed?)」などの純粋な情報を要求すると想定する。ユーザの意図は、例えば、意図照合器135によって、検索クエリであるとして決定され得る。検索クエリの意図および内容は、履行モジュール124に提供され得、履行モジュール124は、図1に示すように、応答情報のための文書および/または他のデータ源(例えば、ナレッジグラフなど)のコーパスを検索するように構成される1つまたは複数の検索モジュール150と通信し得る。履行モジュール124は、検索クエリを示すデータ(例えば、クエリのテキスト、次元が低下した埋め込みなど)を検索モジュール150に提供し得る。検索モジュール150は、GPS座標などの応答情報、または「オレゴン州、フッド山、ティンバーラインロッジ(Timberline Lodge, Mt. Hood, Oregon)」などの他のより明示的な情報を提供し得る。この応答情報は、履行モジュール124によって生成された履行情報の一部を形成し得る。
【0061】
追加的または代替的に、履行モジュール124は、例えば、自然言語理解モジュール135から、ユーザによって提供された、または他の手段によって決定されたユーザの意図と任意のスロット値(例えば、ユーザのGPS座標、ユーザ設定など)とを受信し、応答アクションをトリガするように構成され得る。応答アクションは、例えば、商品/サービスを注文すること、タイマを開始すること、リマインダを設定すること、電話呼び出しを開始すること、メディアを再生すること、メッセージを送信することなどを含み得る。いくつかのそのような実装形態では、履行情報は、履行に関連するスロット値、確認応答(場合によっては、所定の応答から選択され得る)などを含み得る。
【0062】
自然言語生成器126は、様々なソースから取得されたデータに基づいて自然言語出力(例えば、人間のスピーチを模倣するように設計された単語/フレーズ)を生成および/または選択するように構成され得る。いくつかの実装形態では、自然言語生成器126は、入力として、意図の履行に関連する履行情報を受信し、履行情報に基づいて自然言語出力を生成するように構成され得る。追加的または代替的に、自然言語生成器126は、ユーザのための自然言語出力を構成するために使用し得る、サードパーティアプリケーションなどの他のソースからの情報(例えば、必要なスロット)を受信し得る。
【0063】
図2は、自動化されたアシスタント120のクライアント部分108(図1では、「自動化されたアシスタントクライアント」とも呼ばれる)がどのようにユーザと、自動化されたアシスタント120と、サードパーティコンピューティングサービス140との間のマルチモーダル対話を容易にするように構成され得るかの一例を概略的に示す。図2において、クライアント部分108は、1つまたは複数のライブラリ242を含み、1つまたは複数のライブラリ242は、例えば、自動化されたアシスタント120に固有のライブラリ(例えば、ライブアシスタント(libassistant))、キャストコンパニオンライブラリ(cast companion library)(「CCL」)、および/またはクライアント部分108の没入型エンジン244とのデータ交換を容易にする他のライブラリを含み得る。
【0064】
没入型エンジン244は、サードパーティコンピューティングサービスと関わるユーザに視覚的出力を提供するために(および、したがって、より没入型のユーザ体験を提供するために)、HTML5(HTML、CSS、およびJavaScriptを含む)、CSSカードなどの様々な異なる技術を実装し得る。様々な実装形態では、没入型エンジン244は、JavaScriptコントローラ246(または他の同様のコントローラ)および組み込みブラウザ248などの様々な構成要素を含み得る。様々な実装形態では、組み込みブラウザ248は、例えば、クライアントデバイス106に関連付けられた画面上で、GUIとしてレンダリングされ得る。GUIは、ユーザと、自動化されたアシスタント120と、サードパーティコンピューティングサービス140とを含む人間対コンピュータのダイアログに関連する情報を含み得る。例えば、いくつかの実装形態では、サードパーティコンピューティングサービス140は、例えば、自動化されたアシスタント120のサーバ部分119を介して、視覚的演出のために没入型エンジン244によって組み込みブラウザ248に提供されるHTML、XML、CSSなどのマークアップ言語データを提供し得る。組み込みブラウザ248は、webview(例えば、Android(登録商標)オペレーティングシステム用、iOS(登録商標)オペレーティングシステム用)、iframesなどの、様々な異なる技術を使用して実装され得る。
【0065】
図2の矢印に従って、第1に、ユーザは、口頭の自由形式の入力をクライアント部分108に提供し得る。この入力は、タイプまたは発話され得る。後者の場合、発話入力は、テキスト音声認識出力を生成するために分析され得る。いずれの場合も、テキストデータなどの自由形式の入力を示すデータは、クライアント部分108によってサーバ部分119に提供され得る。いくつかの実装形態では、サーバ部分119自体が、このテキストデータに基づいてユーザの意図を決定しようとし得る。追加的または代替的に、いくつかの実装形態では、サーバ部分119は、サードパーティコンピューティングサービス140がユーザの意図を確認することを試みることができるように、テキストデータをサードパーティコンピューティングサービス140に中継し得る。
【0066】
(サーバ部分119またはサードパーティコンピューティングサービス140のいずれによるかにかかわらず)ユーザの意図が確認されると、サードパーティコンピューティングサービス140は、例えば、応答アクションをとる(例えば、ユーザの暖房をオンにする)ことによって、ユーザの意図を解決し得る。加えて、サードパーティコンピューティングサービス140に関連付けられた1つまたは複数のダイアログステートマシンは、様々な状態間で遷移し得る。例えば、視覚的ダイアログステートマシンは、ある視覚的ダイアログ状態から別の視覚的ダイアログ状態に遷移され得、口頭ダイアログステートマシンは、ある口頭ダイアログ状態から別の口頭ダイアログ状態に遷移され得る。
【0067】
上記で説明したように、ユーザの意図の解決は、履行情報または解決情報を生成させ得る。この解決情報は、例えば、混合ペイロードの一部として、サードパーティコンピューティングサービス140によってサーバ部分119に提供され得る。解決情報は、自然言語出力を生成するなどの様々なアクションを実行するために、例えば、サーバ部分119によって使用され得る。いくつかの実装形態では、解決情報に加えて、混合ペイロードは、マークアップ源(例えば、HTML、XML)などの遷移された視覚的ダイアログ状態を示すデータ、または特定の方法(例えば、ズームイン/アウト、下方へのスクロール、特定のアイテムに焦点を合わせるなど)で既存のGUIと対話するコマンドも含み得る。特定の方法で既存のGUIと対話するコマンドの提供を通して、サードパーティコンピューティングサービス140は、クライアント部分に既存のGUIとの対話を引き起こすコマンドを実施させることによって、クライアント部分108を制御することができる。
【0068】
様々な実装形態では、サーバ部分119は、混合ペイロードの少なくとも一部をクライアント部分108に転送し得る。例えば、図2において、サーバ部分119は、遷移された視覚状態を示すデータをクライアント部分108に提供する。クライアント部分108は、例えば、没入型エンジン244を経由して、次いで、受信された視覚状態データに基づいて、組み込みブラウザ248によってレンダリングされたGUIを更新し得る。例えば、混合ペイロードが特定の方法で既存のGUIと対話するコマンドを含む場合、没入型エンジン244は、コマンドを実施させ、結果として、組み込みブラウザ248によってレンダリングされたGUIを更新させることができる。GUIの更新されたビューを表すデータの提供の代わりに、既存のGUIと対話するコマンドを利用することによって、GUIが更新されることを可能にするためにクライアントデバイスとサードパーティコンピューティングサービス140との間で転送される必要があるデータは、低減され得る。
【0069】
図3および図4は、本明細書で説明した技法が特定のシナリオにおいてどのように用いられ得るかの一例を示す。ユーザ301は、自動化されたアシスタント120と関わるために、独立型の対話式スピーカの形態をとる第1のクライアントデバイス306Aを操作する。特に、第1のクライアントデバイス306Aは、自動化されたアシスタント120のクライアント部分108のインスタンスをインストールされ得る。この例では、第1のクライアントデバイス306Aは、オンボード表示能力を欠いている。しかしながら、それは、スマートテレビの形態における第2のクライアントデバイス306Bとネットワーク通信をしている。いくつかの実装形態では、スマートテレビは、例えば、テレビのUSBまたはHDMIスロットに挿入されているワイヤレス通信機能(例えば、Wi-Fi、Bluetooth)を有する「スマートドングル」によって、「スマート」にされ得る。追加的または代替的に、テレビは、例えば、自動化されたアシスタント120のクライアント部分108の別のインスタンスを動作させることを可能にするオンボードロジックを有することによって、本質的に「スマート」であり得る。いくつかの実装形態では、クライアントデバイス306Aおよび306Bは、例えば、ユーザ301のオンラインプロファイルに関連付けられたクライアントデバイスの同じ調整された「エコシステム」の一部であり得る。いくつかの実装形態では、第1のクライアントデバイス306A上で動作する自動化されたアシスタント120のクライアント部分108のインスタンスは、そのGUIを第2のクライアントデバイス306Bに「キャスト」し得る。例えば、第1のクライアントデバイス306A上で動作するクライアント部分108のインスタンスは、組み込みブラウザ248を第2のクライアントデバイス306Bにキャストし得る。
【0070】
図3において、ユーザ301は、サーモスタット、または照明スイッチ用の調光器などの電気デバイスの配線を容易にする際に、自動化されたアシスタント120と関わっている。電気デバイスを配線するための可聴的および視覚的ガイダンスは、第1のクライアントデバイス306A上で動作する自動化されたアシスタント120のクライアント部分108と対話することによって、サードパーティコンピューティングサービスによって提供される。自動化されたアシスタント120は、第1のクライアントデバイス306Aを介して音声出力を提供し、ユーザ301に、「あなたの配線構成は、なんですか?(What is your wiring configuration?)」と、潜在的な配線構成のリストからユーザの家における配線構成を選択するように求める。一方、自動化されたアシスタント120は、サードパーティコンピューティングサービスによって提供されたGUIを第2のクライアントデバイス306B上にレンダリングさせた。このGUIは、同じ配線構成の質問と、候補回答選択肢A~Cである一連の潜在的な配線構成とを含む。これらの候補回答選択肢A~Cはまた、第1のクライアントデバイス306Aを介して自動化されたアシスタント120によって読み上げられても読み上げられなくてもよい。ユーザ301は、「2線式ではない(Not two-wire)」という発話を提供することによって、候補回答選択肢Aを排除する。候補回答選択肢Aが正しくないとの決定に応答して、サードパーティコンピューティングサービスは、配線構成に関連付けられた口頭ダイアログステートマシンと視覚的ダイアログステートマシンの両方を更新する。
【0071】
代替的に、第2のクライアントデバイス306Bがタッチスクリーンを含み、ユーザ301が候補回答選択肢A~Cから正しい配線構成を知っていた場合、ユーザ301は、ユーザが選択した回答をタップすることができる。いくつかの実装形態では、選択された回答は、少なくとも一時的に視覚的に強調され得る。いずれにせよ、ユーザ301による発話は、自動化されたアシスタント120のクライアント部分108およびサーバ部分119に関連して上記で説明した様々な構成要素を使用して記録および処理され得、ユーザ301によって提供された回答を示すデータは、最終的に、サードパーティコンピューティングサービスに提供される。
【0072】
一方、サードパーティコンピューティングサービスは、その視覚的ダイアログステートマシンの更新された状態に基づいて、視覚的ダイアログ状態データを(例えば、図2を参照して説明した混合ペイロードの一部として)自動化されたアシスタント120のサーバ部分119に提供し得、サーバ部分119は、次に、視覚的ダイアログ状態データを自動化されたアシスタント120のクライアント部分108に提供し得る。自動化されたアシスタント120のクライアント部分108は、視覚的ダイアログ状態データを受信したことに応答して、(例えば、取り消し線または他の同様の視覚的注釈を使用して)排除された回答Aが正しくなかったことの視覚的指示を提供するように、第2のクライアントデバイス306B上にレンダリングされたGUIを更新する。しかしながら、ユーザ301は、候補回答選択肢Aを排除しただけであり、候補回答選択肢B~Cのいずれも選択しなかった。
【0073】
ここで図4を参照すると、サードパーティコンピューティングサービスは、その視覚的ダイアログステートマシンの更新された状態に基づいて、自動化されたアシスタント120に「ワイヤの1つは、緑色ですか?(Is one of the wires green?)」という音声出力をレンダリングさせる解決データを生成し得る。ユーザ301は、「はい、ワイヤのうちの1つは、緑色です(Yes, one of the wires is green)」という発話を提供することによって応答し得る。サードパーティコンピューティングサービスは、次いで、その口頭ダイアログステートマシンの更新された状態に基づいて、ユーザ301がアース線を有する配線構成を有すると決定し、自動化されたアシスタント120に「あなたの配線構成は、おそらくアースを有する3線式です(Your wiring configuration is probably three-wire with ground)」という音声出力をレンダリングさせる解決データを生成し得る。候補回答選択肢Bがおそらく正しいとの決定に応答して、サードパーティコンピューティングサービスは、それが提供する潜在的な配線構成に関連付けられた口頭ダイアログステートマシンと視覚的ダイアログステートマシンの両方を更新し得る。一方、サードパーティコンピューティングサービスは、その視覚的ダイアログステートマシンの更新された状態に基づいて、視覚的ダイアログ状態データを(例えば、図2を参照して説明した混合ペイロードの一部として)自動化されたアシスタント120のサーバ部分119に提供し得、サーバ部分119は、次に、視覚的ダイアログ状態データを自動化されたアシスタント120のクライアント部分108に提供し得る。自動化されたアシスタント120のクライアント部分108は、視覚的ダイアログ状態データを受信したことに応答して、(例えば、正しい回答を強調するために、太字、下線、斜体、もしくは他のフォント、またはアニメーションを使用して)正しい配線構成がおそらくアースを有する3線構成または候補回答選択肢Bであることの視覚的指示を提供するように、第2のクライアントデバイス306B上にレンダリングされたGUIを更新し得る。
【0074】
さらに、サードパーティコンピューティングサービスは、その視覚的ダイアログステートマシンの更新された状態に基づいて、電気デバイスを配線するために使用されるアース接続を有する3線を含む配線図の視覚的指示を提供し得る。これは、アースを有する3線構成を配線するためのサードパーティコンピューティングサービスからの段階的な図、アースを有する3線構成を配線するためのサードパーティコンピューティングサービスからのビデオチュートリアルなどを含み得る。
【0075】
図5および図6は、本明細書で説明した技法が特定のシナリオにおいてどのように用いられ得るかの別の例を示す。図5において、タブレットコンピューティングデバイスの形態をとるクライアントデバイス506は、タッチスクリーン570上に、ユーザがサーモスタットに関連する様々な構成要素および/または構成にアクセスすることができ、それらを監視することができ、それらと対話することができ、それらを保存することができるインターフェースをユーザに提供するサードパーティコンピューティングサービス(図3および図4におけるサーモスタットデバイスの配線構成にも関連するサードパーティコンピューティングサービスなど)に関連するGUIを現在表示している。この例では、GUIは、サードパーティコンピューティングサービスによって提供された様々な構成要素および/または構成に関連し、ユーザがクライアントデバイス506上のサードパーティコンピューティングサービスによって提供されたアクション可能なコンテンツと対話することを可能にする、一連のタイル5561~5566(またはカード)を含む。第1のタイル5561は、ユーザの家のサーモスタットによって検出された現在の温度に関連する。第2のタイル5562は、ユーザの現在のアカウント設定に関連する。第3のタイル5563は、ユーザによるサーモスタットの過去、現在、および予想される将来の使用に関連する。第4のタイル5564は、サーモスタットの動作に関連するサポートについて、ユーザがサードパーティコンピューティングサービスをホストするサードパーティに連絡することを可能にする。第5のタイル5565は、サードパーティコンピューティングサービスによって提供され、ユーザによって対話され得るサーモスタットデバイスの(デバイスが図3および図4において適切に配線された後の)デバイス構成に関連する。
【0076】
図5において、ユーザは、「一番下のタイルを見てみよう(Let's have a look at the bottom tile)」という発話を提供した。この発話は、ユーザの意図を示すデータがサードパーティコンピューティングサービスに進むまで、前述の自動化されたアシスタント120の様々な構成要素を使用して記録および処理され得る。サードパーティコンピューティングサービスは、それに応じて、その視覚的ダイアログステートマシンとその口頭ダイアログステートマシンとを更新し得る。特に、図6に示すように、視覚的ダイアログステートマシンは、第5のタイル5565をズームイン(すなわち拡大)し、デバイス構成を効率的に視覚的および/または口頭ダイアログステートマシンの焦点にする新しい状態に遷移される。加えて、サードパーティコンピューティングサービスは、タッチスクリーン570上に表示するための複数のデバイス構成オプションを提供し得る。その結果、図6において、ユーザが「一番下の1つをしよう(Let's do the bottom one)」という追加の発話を提供した場合、サードパーティコンピューティングサービスは、「一番下の1つ(bottom one)」という用語を「温度を設定する」デバイス構成であるように解決することができ、現在の温度に関する追加情報を提供し、周囲の室温、屋外の温度、または他のユーザによって頻繁に設定された温度に基づいてユーザのための温度を提案することができる。サードパーティコンピューティングサービスは、クライアントデバイス506を介して、特定の設定温度を聴覚的または触覚的に入力するようにユーザに求め得る。さらに、ユーザは、「保存」、「構成を保存」などの可聴入力を提供することによって、特定のデバイス構成を保存し得る。代替的に、ユーザは、タッチスクリーン570上の「デバイス構成を保存する」をタップすることによって、触覚入力を提供し得る。
【0077】
本明細書で説明した技法は、サードパーティ開発者によって提供されるコンピューティングサービスまたはエージェントに限定されない。いくつかの実装形態では、本明細書で説明した技法は、自動化されたアシスタント120自体によって、例えば、自動化されたアシスタント120に属している、または自動化されたアシスタント120の一部を形成する「ファーストパーティコンピューティングサービス」として用いられ得る。図7は、本明細書で説明した技法がファーストパーティコンピューティングサービスによってどのように用いられ得るかの例を示す。図7において、クライアントデバイス706は、タッチスクリーンディスプレイ770の形態の表示能力を有する独立型対話式スピーカの形態をとる。この例では、ディスプレイ770は、ユーザ(図示せず)に潜在的に関連する様々な情報を含むGUIをレンダリングする。最も関連性が高いのは、ユーザが45分でJosephのサッカーの迎えに行く必要があるというリマインダである。様々な実装形態では、このリマインダは、例えば、ディスプレイ770上で、および/またはクライアントデバイス706を含むクライアントデバイスの調整されたエコシステムの他のクライアントデバイス上にレンダリングされたカードとして、ユーザに自動的にプッシュされ得る。
【0078】
このリマインダの下には、「すべてのリマインダを見て下さい(See all reminders)」と読める「アクション可能なテキスト」と本明細書で呼ばれるものがある。様々な実装形態では、ユーザは、例えば、それをタップすることによって、アクション可能なテキストを選択し得、またはユーザは、アクション可能なテキスト、この例では、「すべてのリマインダを見て下さい(see all reminders)」に関連付けられたフレーズを話し得、いずれの場合も、ユーザにユーザのリマインダを示す新しいGUIが、自動化されたアシスタント120によってディスプレイ770上にレンダリングされ得る。ユーザの観点から、このアクション可能なテキストは、ハイパーリンクと同様に動作しているように見え得る。しかしながら、いくつかの実装形態では、ユーザがこのアクション可能なテキストをタップした場合、それは、新しいウェブページをディスプレイ770にロードするためにHTTPコマンドがHTTPサーバに送信されることをトリガしない。むしろ、ユーザのタップを示すデータは、自動化されたアシスタント120のサーバ部分119に提供され得、サーバ部分119は、ユーザのタップを示すデータをコンピューティングサービス(ファーストパーティまたはサードパーティ)に提供し得る。コンピューティングサービスは、データを(例えば、すべてのリマインダを見る意図として)解釈し、それに応じて、例えば、その口頭ダイアログステートマシンおよび/または視覚的ダイアログステートマシンを更新し、サーバ部分119を介して視覚的ダイアログ状態データを自動化されたアシスタント120のクライアント部分108に提供することによって応答し得る。
【0079】
いくつかの実装形態では、自動化されたアシスタント120は、最初に呼び出しの要求さえしなくても、アクション可能なテキストに対応する任意の発話を「聞く」ように構成され得る。言い換えれば、アクション可能なテキストがディスプレイ上に提示された場合、自動化されたアシスタント120は、従来の呼び出しフレーズ(例えば、「オーケー、アシスタント(OK Assistant)」)と、表示されたアクション可能なテキストに関連する発話の両方を聞き得る。したがって、図7におけるGUIに直面した場合、ユーザは、従来の呼び出しフレーズを使用して自動化されたアシスタント120を呼び出し得、また、「すべてのリマインダを見て下さい(See all reminders)」というアクション可能なテキストを話す(またはタップする)ことによって自動化されたアシスタント120を呼び出し得る。
【0080】
いくつかの実装形態では、さもなければ自動化されたアシスタント120との音声関与(vocal engagement)によってトリガされ得る他のタスクをトリガするために動作可能な追加のタイルまたはカードが、提供され得る。例えば、第1のタイル7561は、自動化されたアシスタント120に、その口頭ダイアログステートマシンを更新させ、天気を説明する可聴出力を提供させるように動作可能である。ユーザが「来週は、どうですか?(what about next week?)」などの曖昧な質問でフォローアップしたと想定する。口頭ダイアログステートマシンの現在の口頭ダイアログ状態(「天気」の現在の意図が、アクティブである可能性がある)に基づいて、自動化されたアシスタント120は、曖昧なクエリを、「来週の天気は、なんですか?(What's the weather next week)」のようなものに解決し、それに応じて応答し得る。代替的に、「天気を教えて下さい(Tell me the weather)」というフレーズは、ユーザが同じ目標を達成するために話し得る(またはタップし得る)アクション可能なテキストであり得る。
【0081】
図7における別のカード7562は、例えば、クライアントデバイス706のスピーカ(図示せず)を介して可聴的に、および/またはディスプレイ770上に視覚的にユーザのスケジュールを提示するために、ユーザによって動作可能である。もう一度、「私のスケジュールは、なんですか?(What's on my schedule?)」というテキストは、例えば、引用符で囲まれていることによって、同じ目標を達成するためにユーザが(カード7562をタップする代わりに)話し得るアクション可能なテキストであり得る。いくつかの実装形態では、ユーザが、カード7562をタップした場合、それは、自動化されたアシスタント120によってユーザのスケジュールをディスプレイ770上に表示させ得、一方、ユーザが「私のスケジュールは、なんですか?(What's on my schedule?)」というアクション可能なテキストを話した場合、それは、自動化されたアシスタント120にユーザのスケジュールを可聴的に出力させ得る。
【0082】
図8は、本明細書で開示した実装形態による例示的な方法800を示すフローチャートである。便宜上、フローチャートの動作について、動作を実行するシステムを参照して説明している。このシステムは、自動化されたアシスタント120を実装するコンピューティングシステムの1つまたは複数の構成要素などの、様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法800の動作は、特定の順序で示されているが、これは、限定であることを意味していない。1つまたは複数の動作が、並べ替えられ得、省略され得、または追加され得る。いくつかの実装形態では、方法800の動作は、サードパーティコンピューティングサービス140を動作させる1つまたは複数のコンピューティングシステムによって実行され得るが、これは、必須ではない。
【0083】
ブロック802において、システムは、例えば、1つまたは複数のプロセッサによって少なくとも部分的に実装された(ファーストパーティまたはサードパーティ)コンピューティングサービスにおいて、自動化されたアシスタント(例えば、サーバ部分119)から、ユーザと自動化されたアシスタントとの間の人間対コンピュータのダイアログセッションの一部として自動化されたアシスタントと通信するコンピューティングデバイス(例えば、クライアントデバイス106、306、506、706)のユーザの意図を示すデータを受信し得る。例えば、データは、ユーザによって提供された音声発話に基づいて生成された音声認識出力を含み得る。追加的または代替的に、いくつかの実装形態では、データは、自動化されたアシスタント120のサーバ部分119(特に、意図照合器135)によって決定された意図を含み得る。いくつかの実装形態では、データは、コンピューティングサービスによって要求される場合もされない場合もある1つまたは複数のスロット値を含み得る。実施例として、自動化されたアシスタント120との人間対コンピュータのダイアログセッションに関わっているユーザは、ディスプレイ上の文書を提示され得る。ユーザは、例えば、次のページに、文書を下方へスクロールするコマンドを(音声で、および/または画面上で下方にスワイプすることによって)提供し得る。
【0084】
ブロック804において、システムは、例えば、コンピューティングサービスを経由して、解決情報を生成するためにユーザの意図を解決し得る。例えば、実施例では、コンピューティングサービスは、例えば、文書の以前表示された部分の下に表示する文書の「次の」部分を決定し得る。コンピューティングサービスは、文書の次の部分がここで表示されるように、クライアントデバイス上で動作する自動化されたアシスタント120のクライアント部分108に、例えば、組み込みブラウザ248においてレンダリングされたGUIを変更させるように設計されたコマンドを生成し得る。
【0085】
ブロック806において、システムは、例えば、コンピューティングサービスを経由して、人間対コンピュータのダイアログセッションに関連して、コンピューティングサービスのために維持された表示内容または視覚的ダイアログステートマシンを更新し得る。様々な実装形態では、ブロック806の更新は、ブロック802において決定された意図およびブロック804において生成された解決情報のうちの少なくとも1つに少なくとも部分的に基づき得る。
【0086】
ブロック808において、システムは、例えば、コンピューティングサービスを経由して、更新された表示内容または視覚的ダイアログステートマシンを示すデータを、自動化されたアシスタント120、特にそのサーバ部分119に提供し得る。様々な実装形態では、表示内容を示すデータは、次いで、サーバ部分119によってコンピューティングデバイス(例えば、106、306、506、706)に提供され得る。様々な実装形態では、表示内容を示すデータは、コンピューティングデバイス上で実行されるアシスタントアプリケーション(例えば、クライアント部分108)に、ユーザとアシスタントアプリケーションのグラフィカルユーザインターフェースとの間のタッチレス対話をトリガさせ得る。実施例に戻ると、表示は、ユーザがなにも触れる必要なく、文書の次の部分に「下方にスクロール」するように変更され得る。
【0087】
図9は、本明細書で開示した実装形態による例示的な方法900を示すフローチャートである。便宜上、フローチャートの動作について、動作を実行するシステムを参照して説明している。このシステムは、自動化されたアシスタント120を実装するコンピューティングシステムの1つまたは複数の構成要素などの、様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法900の動作は、特定の順序で示されているが、これは、限定であることを意味していない。1つまたは複数の動作が、並べ替えられ得、省略され得、または追加され得る。
【0088】
ブロック902において、システムは、ディスプレイ(例えば、306B、570、770)を有するクライアントデバイス(例えば、106、306、506、706)において、自動化されたアシスタント120のクライアント部分(108)を実装し得る。ブロック904において、システムは、1つまたは複数のサーバコンピューティングデバイスにおいて、自動化されたアシスタント120のサーバ部分(119)を実装し得る。様々な実装形態では、ユーザは、ユーザと、自動化されたアシスタント120と、サードパーティコンピューティングサービス140との間の人間対コンピュータのダイアログセッションに参加するために、クライアント部分108と対話し得る。様々な実装形態では、サードパーティコンピューティングサービス140は、口頭ダイアログステートマシンおよび視覚的ダイアログステートマシンに従って、ユーザと関わり得る。
【0089】
ブロック906において、システムは、例えば、クライアント部分108において、自動化されたアシスタント120のサーバ部分119を経由して、サードパーティコンピューティングサービス140から、視覚的ダイアログステートマシンの第1の視覚的ダイアログ状態を示すデータを受信し得る。ブロック908において、クライアント部分は、第1の視覚的ダイアログ状態に基づいて、ディスプレイ上に、人間対コンピュータのダイアログセッションに関連するグラフィカルユーザインターフェースをレンダリングし得る。様々な実装形態では、グラフィカルユーザインターフェースは、口頭ステートマシンを第1の視覚的ダイアログ状態に対応する第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させるように動作可能な少なくとも1つのグラフィカル要素(例えば、ボタン、アクション可能なテキストなど)を含み得る。
【0090】
ブロック910において、クライアント部分108は、ユーザによる少なくとも1つのグラフィカル要素の動作を検出し得る。例えば、ユーザは、グラフィカル要素をタップするか、またはコマンドを話し得る(例えば、グラフィカル要素と対話するために、アクション可能なテキストに関連するフレーズを発話し得る)。ブロック912において、クライアント部分108は、サーバ部分119に、少なくとも1つのグラフィカル要素(例えば、意図)の動作を示すデータを提供し得る。ブロック914において、サーバ部分119は、少なくとも1つのグラフィカル要素の動作を示すデータをサードパーティコンピューティングサービス140に提供し得る。様々な実装形態では、少なくとも1つのグラフィカル要素の動作を示すデータは、サードパーティコンピューティングサービス140を、第1の口頭ダイアログ状態から第2の口頭ダイアログ状態に遷移させ得る。
【0091】
図10は、本明細書で説明した技法の1つまたは複数の態様を実行するために任意選択で利用され得る例示的なコンピューティングデバイス1010のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイス、ユーザ制御リソースモジュール130、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス1010の1つまたは複数の構成要素を備え得る。
【0092】
コンピューティングデバイス1010は、典型的には、バスサブシステム1012を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ1014を含む。これらの周辺デバイスは、例えば、メモリサブシステム1025と、ファイル記憶サブシステム1026とを含む記憶サブシステム1024と、ユーザインターフェース出力デバイス1020と、ユーザインターフェース入力デバイス1022と、ネットワークインターフェースサブシステム1016とを含み得る。入力デバイスおよび出力デバイスは、コンピューティングデバイス1010とのユーザ対話を可能にする。ネットワークインターフェースサブシステム1016は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0093】
ユーザインターフェース入力デバイス1022は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス1010または通信ネットワークに情報を入力するすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0094】
ユーザインターフェース出力デバイス1020は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための他の何らかのメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどして、非視覚的表示を提供し得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス1010からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0095】
記憶サブシステム1024は、本明細書で説明したモジュールのうちのいくつかまたのすべての機能を提供するプログラミング構造およびデータ構造を記憶する。例えば、記憶サブシステム1024は、図8図9の方法の選択された態様を実行するためのロジック、ならびに図1および図2に示す様々な構成要素を実装するためのロジックを含み得る。
【0096】
これらのソフトウェアモジュールは、一般に、プロセッサ1014によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム1024において使用されるメモリ1025は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)1030と、固定命令が記憶されている読み取り専用メモリ(ROM)1032とを含むいくつかのメモリを含むことができる。ファイル記憶サブシステム1026は、プログラムファイルおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装するモジュールは、ファイル記憶サブシステム1026によって、記憶サブシステム1024内に、またはプロセッサ1014によってアクセス可能な他のマシン内に記憶され得る。
【0097】
バスサブシステム1012は、コンピューティングデバイス1010の様々な構成要素およびサブシステムを意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム1012は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用し得る。
【0098】
コンピューティングデバイス1010は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであり得る。コンピュータおよびネットワークの絶えず変化する性質のために、図10に示すコンピューティングデバイス1010の説明は、いくつかの実装形態を説明する目的のための特定の例としてのみ意図されている。図10に示すコンピューティングデバイスよりも多いまたは少ない構成要素を有するコンピューティングデバイス1010の多くの他の構成が、可能である。
【0099】
本明細書で説明したシステムが、ユーザに関する個人情報を収集もしくは他の方法で監視するか、または個人情報および/または監視された情報を利用する可能性がある状況では、ユーザは、プログラムまたは特徴がユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置)を収集するかどうかを制御する機会、またはユーザにより関連性がある可能性があるコンテンツサーバからのコンテンツを受信するかどうかおよび/もしくはどのように受信するかを制御する機会を提供され得る。また、特定のデータは、個人を特定し得る情報が除去されるように、それが記憶または使用される前に1つまたは複数の方法で処理され得る。例えば、ユーザの識別情報は、個人を特定し得る情報がユーザに関して決定され得ないように処理され得、またはユーザの地理的位置は、ユーザの特定の地理的位置が特定され得ないように、地理的位置情報が取得される場所(都市、郵便番号、または州レベルなど)で一般化され得る。したがって、ユーザは、情報がユーザに関してどのように収集および/または使用されるかについて制御し得る。例えば、いくつかの実装形態では、ユーザは、例えば、視覚センサ107を無効にすることによって、視覚的手がかりを検出しようとするアシスタントデバイスをオプトアウトし得る。
【0100】
いくつかの実装形態が本明細書で説明および例示されているが、機能を実行するため、ならびに/または本明細書で説明した結果および/もしくは利点のうちの1つもしくは複数を取得するための様々な他の手段および/または構造が、利用され得、そのような変更および/または修正の各々が、本明細書で説明した実装形態の範囲内であると見なされる。より一般的には、本明細書で説明したすべてのパラメータ、寸法、材料、および構成は、例示であることを意味し、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の用途に依存する。当業者は、日常的な実験のみを使用して、本明細書で説明する特定の実装形態に対する多くの均等物を認識するか、または確認することができるであろう。したがって、前述の実装形態は、単なる例として提示されており、添付した特許請求の範囲およびその均等物の範囲内で、実装形態は、具体的に説明および特許請求されている以外のように実施され得ることが理解されるべきである。本開示の実装形態は、本明細書で説明した個々の特徴、システム、物品、材料、キット、および/または方法の各々に向けられている。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【0101】
106 クライアントデバイス、クライアントコンピューティングデバイス
107 視覚センサ、カメラ
108 自動化されたアシスタントクライアント、クライアント部分
109 マイクロフォン
110 スピーチキャプチャモジュール
1121 視覚的手がかりモジュール
1122 クラウドベースの視覚的手がかりモジュール
113 呼び出しモジュール
114 ローカルおよび/またはワイドエリアネットワーク、視覚的手がかりモデルデータベース
116 クラウドベースのテキスト-スピーチモジュール
117 クラウドベースのSTTモジュール
119 クラウドベースの自動化されたアシスタント構成要素、サーバ部分
120 自動化されたアシスタント
122 自然言語プロセッサ
124 履行モジュール
126 自然言語生成器
135 自然言語理解モジュール、意図照合器
140 サードパーティコンピューティングサービス
150 検索モジュール
242 ライブラリ
244 没入型エンジン
246 JavaScriptコントローラ
248 組み込みブラウザ
301 ユーザ
306 クライアントデバイス、コンピューティングデバイス
306A クライアントデバイス
306B クライアントデバイス、ディスプレイ
506 クライアントデバイス、コンピューティングデバイス
5561 タイル
5562 タイル
5563 タイル
5564 タイル
5565 タイル
570 タッチスクリーン、ディスプレイ
706 クライアントデバイス、コンピューティングデバイス
7561 タイル
7562 カード
770 タッチスクリーンディスプレイ
1010 コンピューティングデバイス
1012 バスサブシステム
1014 プロセッサ
1016 ネットワークインターフェースサブシステム
1020 ユーザインターフェース出力デバイス
1022 ユーザインターフェース入力デバイス
1024 記憶サブシステム
1025 メモリサブシステム、メモリ
1030 メインランダムアクセスメモリ(RAM)
1032 読み取り専用メモリ(ROM)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10