(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】人間の参加者の代理の自動アシスタントによる準委任通話
(51)【国際特許分類】
G10L 13/00 20060101AFI20231128BHJP
G10L 15/22 20060101ALI20231128BHJP
G10L 15/00 20130101ALI20231128BHJP
H04M 3/42 20060101ALI20231128BHJP
【FI】
G10L13/00 100M
G10L15/22 300Z
G10L15/00 200A
H04M3/42 Z
(21)【出願番号】P 2022520917
(86)(22)【出願日】2020-04-22
(86)【国際出願番号】 US2020029346
(87)【国際公開番号】W WO2021188126
(87)【国際公開日】2021-09-23
【審査請求日】2022-05-17
(32)【優先日】2020-03-20
(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)【参考文献】
【文献】特開2020-034914(JP,A)
【文献】特開2018-101847(JP,A)
【文献】特表2019-522914(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-15/34
H04M 3/42
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実施される方法であって、
所与のユーザに関連するクライアントデバイスを介して前記所与のユーザから、支援された通話を開始するためのユーザ入力を受け取るステップと、
前記ユーザ入力に基づいて、
前記支援された通話中に前記所与のユーザの代理として関わり合うエンティティ、および
前記支援された通話中に前記所与のユーザの代理として実行されるタスク
を決定するステップと、
前記タスクおよび/または前記エンティティに関連付けて記憶された1つまたは複数の候補パラメータに関して、前記支援された通話中に前記タスクを実行する際に合成音声を自動的に生成するのに使用される1つまたは複数の対応する値を決定するステップと、
前記所与のユーザに関連する前記クライアントデバイスを使用して、前記支援された通話の実行を開始するステップと、
前記支援された通話の実行中に、前記エンティティに関連するさらなるユーザの発言をキャプチャする、前記支援された通話のオーディオデータを処理することに基づいて、さらなるパラメータに関連する情報が前記さらなるユーザによって要求されると判定するステップと、
前記さらなるパラメータに関連する前記情報が要求されるとの判定に応じて、
前記クライアントデバイスに、前記支援された通話外で、前記さらなるパラメータを特定し、前記情報に関するさらなるユーザ入力を要求する通知をレンダリングさせるステップと、
前記通知に応じる何らかのさらなる入力を受け取るのに先立って、
前記支援された通話を継続するステップであって
、前記
1つまたは複数の対応する値のうちの
少なくとも1つに基づいている合成音声の1つまたは複数のインスタンスをレンダリングすることを含む、ステップと、
前記支援された通話を継続する間に、前記通知に応じ、前記さらなるパラメータの特定の値を特定するさらなるユーザ入力が閾値の継続時間内に受け取られるかどうかを判定するステップと、
前記さらなるユーザ入力が前記閾値の継続時間内に受け取られるとの判定に応じて、
前記支援された通話の一部として、前記特定の値に基づいているさらなる合成音声をレンダリングするステップと
を含む、方法。
【請求項2】
前記
1つまたは複数の対応する値のうちの所与の値を決定することが、
前記支援された通話を開始する前に、
前記候補パラメータのうちの所与の候補パラメータを特定し、前記所与の候補パラメータに関連するさらなる情報を要求するプロンプトを生成することと、
前記クライアントデバイスに前記プロンプトをレンダリングさせることと、
前記プロンプトに応じるさらなるユーザ入力に基づいて、前記所与の候補パラメータの前記所与の値を特定することと
を含む、請求項1に記載の方法。
【請求項3】
前記
1つまたは複数の対応する値のうちのさらなる値を決定することが、
前記支援された通話を開始する前に、
前記所与のユーザに関連するユーザプロファイルに基づいて前記さらなる値を特定することを含む、請求項1または2に記載の方法。
【請求項4】
前記支援された通話を継続するステップが、
前記支援された通話のさらなるオーディオデータを処理して、前記さらなるユーザのさらなる発言が前記候補パラメータのうちの所与の候補パラメータの要求を含むと判定することと、
前記さらなる発言が前記所与の候補パラメータの前記要求を含むとの判定に応じて、
前記クライアントデバイスに、前記通話において、合成音声の前記1つまたは複数のインスタンスのうちの所与のインスタンスをレンダリングさせることであって、
前記所与のインスタンスが、前記所与の候補パラメータに関して所与の値が決定されることに基づいて、前記
1つまたは複数の対応する値のうちの前記所与の値を含み、
前記所与のインスタンスが、前記所与のユーザからのいかなるさらなるユーザ入力も要求することなくレンダリングされる、レンダリングさせることと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記支援された通話を継続するステップが、
前記さらなるユーザのさらなる発言がさらなる閾値の継続時間内に受け取られるかどうかを判定するために、さらなるオーディオデータを処理することと、
前記さらなる発言が前記さらなる閾値の継続時間内に前記さらなるユーザから受け取られないとの判定に応じて、
前記支援された通話中に、合成音声の前記1つまたは複数のインスタンスのうち、前記さらなるユーザによって要求されなかった前記
1つまたは複数の対応する値のうちの
少なくとも1つに基づいている別のインスタンスをレンダリングすることと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記さらなるパラメータに関連する前記情報が前記さらなるユーザによって要求されるとの判定に応じて、
前記エンティティに関連付けて記憶された前記1つまたは複数の候補パラメータを、前記さらなるパラメータを含むように更新するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記さらなるパラメータに関連する前記情報が前記さらなるユーザによって要求されるときに前記クライアントデバイスの状態を決定するステップと、
前記クライアントデバイスの前記状態に基づいて、前記通知および/または前記通知をレンダリングするための1つもしくは複数のプロパティを決定するステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記クライアントデバイスの前記状態が、前記所与のユーザが前記支援された通話を能動的に監視していることを示し、前記クライアントデバイスの前記状態に基づいて前記通知を決定するステップが、
前記所与のユーザが前記支援された通話を能動的に監視していることを示す前記クライアントデバイスの前記状態に基づいて、1つまたは複数の選択可能なグラフィカル要素と一緒に前記クライアントデバイスのディスプレイによって視覚的にレンダリングされる視覚的な構成要素を含むように前記通知を決定することを含み、
前記通知に応じる前記さらなるユーザ入力が、前記1つまたは複数の選択可能なグラフィカル要素のうちの所与の1つの選択を含む、請求項7に記載の方法。
【請求項9】
前記クライアントデバイスの前記状態が、前記所与のユーザが前記支援された通話を能動的に監視していないことを示し、前記クライアントデバイスの前記状態に基づいて前記通知を決定するステップが、
前記所与のユーザが前記支援された通話を能動的に監視していないことを示す前記クライアントデバイスの前記状態に基づいて、前記クライアントデバイスの1つまたは複数のスピーカによって聴覚的にレンダリングされる聴覚的構成要素を含むように前記通知を決定することを含む、請求項7に記載の方法。
【請求項10】
前記支援された通話を終了させるステップと、
前記支援された通話を終了させた後、
前記クライアントデバイスに、前記支援された通話の結果のインジケーションを含むさらなる通知をレンダリングさせるステップと
をさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記支援された通話の前記インジケーションを含む前記さらなる通知が、
前記支援された通話の終了に応じて前記ユーザの代理として実行されるさらなるタスクのインジケーションを含むか、または
選択されると、前記クライアントデバイスに前記ユーザの代理としてさらなるタスクを実行させる1つもしくは複数の選択可能なグラフィカル要素を含む、請求項10に記載の方法。
【請求項12】
前記さらなるユーザ入力が前記閾値の継続時間内に受け取られないとの判定に応じて、
前記支援された通話を終了させるステップと、
前記支援された通話を終了させた後、
前記クライアントデバイスに、前記支援された通話の結果のインジケーションを含むさらなる通知をレンダリングさせるステップと
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記閾値の継続時間が、
前記さらなるパラメータを特定し、前記情報に関するさらなるユーザ入力を要求する前記通知がレンダリングされるときからの固定の継続時間、または
前記
1つまたは複数の対応する値のうちの
少なくとも1つの最後の1つが前記クライアントデバイスを介して前記さらなるユーザに提示するためにレンダリングされるときに基づいている動的な持続時間である、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記支援された通話を開始した後、
前記エンティティに関連する前記さらなるユーザから、前記支援された通話を監視することへの同意を得るステップをさらに含む、請求項1から13のいずれか一項に記載の方法。
【請求項15】
少なくとも1つのプロセッサと、
実行されると前記少なくとも1つのプロセッサに請求項1から
14のいずれか一項に記載の方法を実行させる命令を記憶した少なくとも1つのメモリと
を含む、少なくとも1つのコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
自動アシスタントは、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、自動車システム、スタンドアロンのパーソナルアシスタントデバイスなどの様々なコンピューティングデバイスを介してユーザによってインタラクションされ得る。自動アシスタントは、ユーザから(たとえば、発話された、タッチ、および/またはタイピングされた)入力を受け取り、(たとえば、視覚的および/または聴覚的(audible))応答出力によって応答する。
【0002】
ユーザは、自動アシスタントとインタラクションして、自動アシスタントにユーザの代理としてアクションを実行させることができる。一例として、自動アシスタントは、所与のアクションを実行するためにユーザの代理として電話をかけることができ、アクションを実行するためにさらなるユーザと対話を行うことができる。たとえば、ユーザは、自動アシスタントがユーザの代理として電話でレストランの予約をすることを要求するユーザ入力を与えることができる。自動アシスタントは、特定のレストランとの電話を開始することができ、予約をするために、特定のレストランに関連するさらなるユーザに予約情報を提供することができる。そして、自動アシスタントは、ユーザの代理としてレストランの予約が成功裏に行われたかどうかをユーザに通知することができる。
【0003】
しかし、ユーザの代理として自動アシスタントによって実行される何らかのアクションに関して、自動アシスタントは、アクションを完全に実行するのに十分な情報を知らない場合がある。一例として、自動アシスタントが上述のユーザの代理として電話でレストランの予約をすると仮定し、さらに、特定のレストランに関連するさらなるユーザが自動アシスタントに知られていない情報を要求すると仮定する。一部の自動アシスタントは、要求された情報が知られていないと判定し、レストランの予約を完了するために通話に能動的に参加するようにユーザに要求する通知をユーザに提供することができる。しかし、ユーザが能動的に通話に参加するのを待つことは、通話を長引かせ、通話中に使用される計算および/またはネットワークリソースの関連する使用も長引かせ得る。追加的または代替的に、ユーザが通話に参加することができない場合もある。これは、通話の失敗につながり、自動アシスタントおよび/またはユーザが後でアクションを実行することを要求し、それによって、最初の通話中に自動アシスタントによってアクションが成功裏に実行された場合よりも多くの計算および/またはネットワークリソースを消費し得る。
【発明の概要】
【課題を解決するための手段】
【0004】
一部の実装は、所与のユーザの代理としてタスクを実行するためにエンティティ(entity)との支援された通話(assisted call)を実行するために自動アシスタントを使用することを対象とする。支援された通話は、自動アシスタントと、エンティティに関連するさらなるユーザとの間で行われる。自動アシスタントは、タスクおよび/またはエンティティに関連付けられるパラメータの解決された値を使用して、支援された通話を実行することができる。支援された通話を実行することは、自動アシスタントによって、支援された通話において、さらなるユーザが聴覚的に知覚可能な合成音声のインスタンスを聴覚的にレンダリングすることを含み得る。支援された通話において合成音声のインスタンスをレンダリングすることは、さらなるユーザ(ただし、所与のユーザとは限らない)が聴覚的に知覚可能である合成音声を支援された通話に差し込むことを含み得る。合成音声のインスタンスは、それぞれ、解決された値のうちの1つもしくは複数に基づいて生成されることが可能であり、および/または支援された通話中のさらなるユーザの発言に応じるように生成されることが可能である。また、支援された通話を実行することは、自動アシスタントによって、さらなるユーザの発言をキャプチャする支援された通話のオーディオデータの自動音声認識を実行して、発言の認識されたテキストを生成することと、支援された通話においてレンダリングするための、発言に応じる合成音声のインスタンスを決定する際に認識されたテキストを使用することとを含み得る。
【0005】
それらの実装の一部は、支援された通話の実行中に、さらなるユーザの発言がさらなるパラメータに関連する情報の要求を含み、さらなるパラメータに関して値が自動的に決定可能でないと判定することをさらに対象とする。それに応じて、自動アシスタントは、所与のユーザに対して音声のおよび/または視覚的な通知(たとえば、プロンプト)をレンダリングさせることができ、通知は、さらなるパラメータの値を解決することに関連するさらなるユーザ入力を要求する。一部の実装において、通知は、進行中の通話外でレンダリングされる(すなわち、進行中の通話の一部として差し込まれない)が、所与のユーザが値を確認し、進行中の通話内で値を伝達することを可能にするために所与のユーザが知覚可能であることが可能である。通知に応じる何らかのさらなるユーザ入力を受け取るまで、自動アシスタントは、支援された通話を継続することができる。たとえば、自動アシスタントは、通知に応じるさらなるユーザ入力を待たずに、合成音声の前のインスタンスでまだ伝えられていない、既に解決された値に基づく合成音声のインスタンスを、通話中に先回りして提供し得る。通知に応じてさらなるユーザ入力が与えられ、さらなるパラメータの値がさらなるユーザ入力に基づいて解決可能である場合、自動アシスタントは、支援された通話を継続した後、さらなるパラメータの解決された値を伝えるさらなる合成音声を提供することができる。通知に応じるさらなるユーザ入力を待たずに支援された通話を継続することによって、タスクを完了するために必要な値が、さらなるパラメータのさらなる値を待つ間に、支援された通話中に伝えることが可能であり、さらなる値が、(受け取られる場合)後で提供されることが可能である。これらの方法およびその他の方法で、支援された通話は、より迅速に終了することができ、それによって、支援された通話を実行する際にコンピュータおよび/またはネットワークリソースが利用される全体の継続時間を減らす。
【0006】
さらなるパラメータの値を解決することに関連するさらなるユーザ入力を要求する通知をレンダリングする一部の実装において、通知および/または通知をレンダリングするための1つもしくは複数のプロパティは、支援された通話の状態および/または支援された通話で使用されているクライアントデバイスの状態に基づいて動的に決定され得る。たとえば、クライアントデバイスの状態が、所与のユーザが支援された通話を能動的に監視していることを示す場合、通知は、視覚のみの通知であることが可能であり、および/またはより低いボリュームの聴覚的構成要素を含むことが可能である。一方、クライアントデバイスの状態が、所与のユーザが支援された通話を能動的に監視していないことを示す場合、通知は、少なくとも聴覚的構成要素を含むことが可能であり、および/または聴覚的構成要素は、より高い音量でレンダリングされることが可能である。クライアントデバイスの状態は、たとえば、クライアントデバイスのセンサ(たとえば、ジャイロスコープ、加速度計、存在センサ、および/もしくはその他のセンサ)ならびに/またはユーザに関連するその他のクライアントデバイスのセンサからのセンサデータに基づくことが可能である。さらに別の例として、支援された通話の状態が、通知を提供する時点で複数の解決された値がまだ伝えられていないことを示す場合、通知は、視覚のみの通知であることが可能であり、および/またはより低いボリュームの聴覚的構成要素を含むことが可能である。一方、支援された通話の状態が、通知を提供する時点で1つの解決された値のみがまだ伝えられていない(またはすべての解決された値が既に伝えられた)ことを示す場合、通知は、少なくとも聴覚的構成要素を含むことが可能であり、および/または聴覚的構成要素は、より高い音量でレンダリングされることが可能である。より広く、クライアントデバイスの状態が、ユーザが通話を能動的に監視していないことを示すとき、および/または会話の状態が、会話を有意義に継続する継続時間が比較的短いことを示すとき、実装は、より嵌入的(intrusive)な通知を提供しようとすることができる。一方、実装は、クライアントデバイスの状態が、ユーザが通話を能動に監視していることを示すとき、および/または会話の状態が、会話を有意義に継続する継続時間が比較的長いことを示すとき、より嵌入的でない通知を提供しようとすることができる。より嵌入的な通知は、レンダリングするためにより多くのリソースを必要とし得るが、実装は、より嵌入的な通知をやはり選択的にレンダリングして、より嵌入的な通知をレンダリングするための増加したリソースと、支援された通話をむやみに引き延ばし、および/またはタスクの完了なしに支援された通話を終了するために必要とされるであろう増加したリソースとのバランスをとろうとし得る。
【0007】
一部の実装は、追加的または代替的に、所与のユーザとさらなるユーザとの間の進行中の通話中に、進行中の通話中にさらなるユーザによって要求された値に基づく出力を提供するために自動アシスタントを使用することを対象とする。出力は、先回りして提供されることが可能であり、所与のユーザがアプリケーションを起動し、および/またはアプリケーション内をナビゲートして、独力で値を探すことを防止することが可能である。たとえば、所与のユーザが公益事業会社の担当者との進行中の通話に従事していると仮定し、さらに、公益事業会社の担当者が所与のユーザの住所情報および公益事業会社に関連する口座番号を要求すると仮定する。この例において、所与のユーザは、住所情報を提供する場合があるが、公益事業会社からの受信された電子メールもしくはメッセージを検索し、公益事業会社に関連するウェブサイトを検索し、および/または公益事業会社に関連する口座番号を見つけるためにその他のコンピューティングデバイスのインタラクションを実行しないと公益事業会社に関する口座番号を知らない場合がある。しかし、本明細書において説明される技術を使用することによって、自動アシスタントは、自動アシスタントが口座番号を特定することを要求する所与のユーザからのいかなるユーザ入力とも無関係に公益事業会社に関連する口座番号を容易に特定することができ、公益事業会社の担当者が口座番号を要求したことの特定に応じて、進行中の通話中に所与のユーザおよび/またはさらなるユーザに口座番号を視覚的および/または聴覚的に提供することができる。
【0008】
これらのおよびその他の方法で、クライアントデバイスのリソースは、そのようなアプリケーションの起動および/またはそのようなアプリケーションとのインタラクションを防止することによって節約され得る。さらに、先回りして提供される出力によって示される値は、ユーザが独力で値を探さなければならないとした場合よりもより迅速に所与の通話において伝達されることが可能であり、それによって、進行中の通話の全体的な継続時間を短縮する。様々な実装において、自動アシスタントは、進行中の通話中に少なくとも1つの発話された発言をキャプチャするオーディオデータのストリームを処理して、認識されたテキストを生成することができ、少なくとも1つの発話された発言は、所与のユーザまたはさらなるユーザのものである。さらに、自動アシスタントは、認識されたテキストを処理することに基づいて、少なくとも1つの発話された発言がパラメータの情報を要求することを特定し、パラメータに関して、所与のユーザの個人的なアクセス制限されたデータを使用して、パラメータの値が解決可能であると判定することができる。値が解決可能であるとの判定に応じて、出力がレンダリングされ得る。一部の実装において、出力は、進行中の通話外でレンダリングされる(すなわち、進行中の通話の一部として差し込まれない)が、所与のユーザが値を確認し、進行中の通話内で値を伝達することを可能にするために所与のユーザが知覚可能であることが可能である。いくつかの追加的または代替的な実装において、出力は、進行中の通話の一部として、合成音声としてレンダリングされ得る。たとえば、合成音声は、進行中の通話内で自動的にまたは所与のユーザから肯定的なユーザインターフェース入力を受け取るとレンダリングされ得る。所与のユーザとさらなるユーザとの間の進行中の通話中に、進行中の通話中にさらなるユーザによって要求された値に基づく出力を提供する一部の実装において、出力は、値を含む音声入力が進行中の通話中に所与のユーザによって閾値の量の時間内に提供されないとの判定に応じてのみ提供される。これらのおよびその他の方法で、出力を不必要にレンダリングするインスタンスが削減される。
【0009】
上の説明は、本明細書において開示されるほんの一部の実装の概要として提供されている。それらの実装およびその他の実装が、本明細書においてさらに詳細に説明される。
【図面の簡単な説明】
【0010】
【
図1】本開示の様々な態様を示し、本明細書において開示される実装が実装され得る例示的な環境のブロック図である。
【
図2】様々な実装による、支援された通話を実行する例示的な方法を示す流れ図である。
【
図3】様々な実装による、進行中の支援されていない通話(non-assisted call)中に補助出力(assistive output)を提供する例示的な方法を示す流れ図である。
【
図4A】様々な実装による、支援された通話の実行に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図4B】様々な実装による、支援された通話の実行に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図4C】様々な実装による、支援された通話の実行に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図4D】様々な実装による、支援された通話の実行に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図5A】様々な実装による、進行中の支援されていない通話中の補助出力の提供に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図5B】様々な実装による、進行中の支援されていない通話中の補助出力の提供に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図5C】様々な実装による、進行中の支援されていない通話中の補助出力の提供に関連するユーザインターフェースの様々な非限定的な例を示す図である。
【
図6】様々な実装によるコンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0011】
図1は、本開示の様々な態様を示す例示的な環境のブロック図を示す。クライアントデバイス110が、
図1に示され、様々な実装において、ユーザ入力エンジン111、デバイス状態エンジン112、レンダリングエンジン113、スケジューリングエンジン114、音声認識エンジン120A1、自然言語理解(「NLU」)エンジン130A1、および音声合成エンジン140A1を含む。
【0012】
ユーザ入力エンジン111は、クライアントデバイス110における様々な種類のユーザ入力を検出することができる。クライアントデバイス110において検出されるユーザ入力は、クライアントデバイス110のマイクロフォンによって検出される発話された入力、および/もしくは(たとえば、支援された通話中におよび/もしくは支援された通話がまだ呼び出されていないときのその他の進行中の通話中に)さらなるユーザのさらなるクライアントデバイスからクライアントデバイス110に送信されたさらなる発話された入力、クライアントデバイス110のユーザインターフェース入力デバイス(たとえば、タッチスクリーン)によって検出されるタッチ入力、ならびに/またはクライアントデバイス110のユーザインターフェース入力デバイスによって(たとえば、タッチスクリーン上の仮想キーボードによって)検出されるタイピングされた入力を含み得る。エンティティとの(支援されたまたは支援されていない)進行中の通話中のエンティティに関連するさらなるユーザは、たとえば、人間、さらなるクライアントデバイスに関連するさらなる人間の参加者、さらなるユーザのさらなるクライアントデバイスに関連するさらなる自動アシスタント、および/またはその他のさらなるユーザであることが可能である。
【0013】
本明細書において説明される支援された通話および/または進行中の通話は、様々な音声通信プロトコル(たとえば、ボイスオーバインターネットプロトコル(VoIP)、公衆交換電話網(PSTN)、および/またはその他の電話通信プロトコル)を使用して実行され得る。本明細書において説明されるように、合成音声が、支援された通話および/または進行中の通話の一部としてレンダリングされることが可能であり、これは、合成音声が進行中の通話の参加者のうちの少なくとも1人によって知覚可能であり、進行中の通話のオーディオデータの一部を形成するように、合成音声を通話に差し込むことを含み得る。合成音声は、通話のエンドポイント(endpoint)のうちの1つであるクライアントデバイスによって生成されるおよび/もしくは差し込まれることが可能であり、ならびに/またはクライアントデバイスと通信し、通話にも接続されているサーバによって生成されるおよび/もしくは差し込まれることが可能である。やはり本明細書において説明されるように、聴覚的出力が、支援された通話外でレンダリングされることも可能であり、これは、聴覚的出力が通話に接続されたクライアントデバイスのマイクロフォンによって検出され、その結果、通話において知覚可能になる可能性があるが、聴覚的出力を通話に差し込むことを含まない。一部の実装においては、通話外でレンダリングされた聴覚的出力の通話内での知覚を軽減するために、通話が任意でミュートされることが可能であり、および/またはフィルタリングが使用されることが可能である。
【0014】
様々な実装において、(概して、
図1において破線によって示される)自動アシスタント115は、支援された通話システム180を使用して、ネットワーク190(たとえば、Wi-Fi、Bluetooth、近距離無線通信(near-field communication)、ローカルエリアネットワーク、広域ネットワーク、および/またはその他のネットワーク)を介してクライアントデバイス110において支援された通話を実行することができる。支援された通話システム180は、様々な実装において、音声認識エンジン120A2、NLUエンジン130A2、音声合成エンジン140A2、および支援された通話エンジン150を含む。自動アシスタント115は、支援された通話システム180を利用して、さらなるユーザとの通話中に、クライアントデバイス110の所与のユーザの代理としてタスクを実行することができる。
【0015】
さらに、一部の実装においては、クライアントデバイス110の所与のユーザの代理として何らかのタスクを実行する前に、自動アシスタント115は、自動アシスタント115と対話をするために、さらなるユーザから同意を得ることが可能である。たとえば、自動アシスタント115は、支援された通話を開始すると、タスクを実行する前に同意を得ることができる。別の例として、自動アシスタント115は、たとえ進行中の通話が自動アシスタント115によって開始されなくても、所与のユーザが進行中の通話を開始すると、クライアントデバイス110の所与のユーザに対して同意を得ることができる。自動アシスタント115が関連するさらなるユーザから同意を得る場合、自動アシスタント115は、支援された通話システム180を使用してタスクを実行することができる。しかし、自動アシスタント115がさらなるユーザから同意を得ない場合、自動アシスタント115は、クライアントデバイス110に、クライアントデバイス110の所与のユーザに対して、所与のユーザがタスクを実行することおよび/または通話を終了することが必要とされることを示す通知を(たとえば、レンダリングエンジン113を使用して)レンダリングさせ、クライアントデバイス110の所与のユーザに対して、タスクが実行されなかったことを示す通知を(たとえば、レンダリングエンジン113を使用して)レンダリングさせることができる。
【0016】
下でより詳細に説明されるように、自動アシスタント115は、支援された通話を使用して通話を開始するための、クライアントデバイス110の所与のユーザからのユーザ入力の検出に応じて、および/または進行中の通話中に(すなわち、支援された通話がまだ呼び出されていないときに)、支援された通話システム180を使用して支援された通話を実行することができる。一部の実装において、自動アシスタント115は、支援された通話中および/または進行中の通話中に、クライアントデバイス110の所与のユーザの代理として、タスクを実行する際に使用される候補パラメータの値を決定することができる。それらの実装のいくつかのバージョンにおいて、自動アシスタント115は、支援された通話の前におよび/または支援された通話中に、候補パラメータの値を求めるためにクライアントデバイス110の所与のユーザと対話することができる。それらの実装のいくつかの追加的および/または代替的なバージョンにおいて、自動アシスタント115は、支援された通話の前におよび/または支援された通話中に候補パラメータの値を求めることなく、クライアントデバイス110の所与のユーザに関連するユーザプロファイルに基づいて候補パラメータの値を決定することができる。それらの実装のいくつかのバージョンにおいて、自動アシスタント115は、ユーザ入力エンジン111によってクライアントデバイス110の所与のユーザからのいかなるユーザ入力も検出することなく、進行中の通話の対話に基づいて自動的に支援された通話システム180を使用して支援された通話を実施することができる。
【0017】
図1に示されるように、支援された通話システム180は、遠隔に(たとえば、サーバおよび/またはその他の遠隔クライアントデバイスによって)実装され得る。支援された通話システム180は、ネットワーク190を介して遠隔に実装されるものとして
図1に示されているが、それは例示のためであり、限定的であるように意図されていないことを理解されたい。たとえば、様々な実装において、支援された通話システム180は、クライアントデバイス110のローカルに実装され得る。さらに、自動アシスタント115は、ローカルのクライアントデバイス110と遠隔の支援された通話システム180との両方に実装されるものとして
図1に示されているが、それも例示のためであり、限定的であるように意図されていないことを理解されたい。たとえば、様々な実装において、自動アシスタント115は、クライアントデバイス110のローカルに実装されることが可能であり、またはクライアントデバイス110のローカルに実装され、別個のクラウドに基づく自動アシスタントとインタラクションすることが可能である。
【0018】
実装においては、ユーザ入力エンジン111がクライアントデバイス110のマイクロフォンによって所与のユーザの発話された入力を検出する、ならびに/または(たとえば、支援された通話中および/もしくは進行中の通話中に)さらなるクライアントデバイスからクライアントデバイス110に送信された、さらなるユーザからのさらなる発話された入力をキャプチャするオーディオデータを受信するとき、クライアントデバイス110の音声認識エンジン120A1は、音声認識モデル120Aを使用して、発話された入力をキャプチャするおよび/またはさらなる発話された入力をキャプチャするオーディオデータを処理して、発話された入力および/またはさらなる発話された入力に対応する認識されたテキストを生成することができる。さらに、クライアントデバイス110のNLUエンジン130A1は、NLUモデル130Aを使用して、音声認識エンジン120A1によって生成された認識されたテキストを処理して、発話された入力および/またはさらなる発話された入力に含まれる意図を決定することができる。たとえば、クライアントデバイス110が所与のユーザから「Example Cafeに電話して今夜の予約をして」という発話された入力を検出する場合、クライアントデバイス110は、音声認識モデル120Aを使用して、発話された入力をキャプチャするオーディオデータを処理して、「Example Cafeに電話して今夜の予約をして」という発話された入力に対応する認識されたテキストを生成することができ、NLUモデル130Aを使用して、認識されたテキストを処理して、少なくとも、電話を開始するという第1の意図と、レストランの予約をするという第2の意図とを決定することができる。別の例として、クライアントデバイス110が、「お子様もいらっしゃいますか」というさらなる発話された入力を検出する場合、クライアントデバイス110は、音声認識モデル120Aを使用して、さらなる発話された入力をキャプチャするオーディオデータを処理して、「お子様もいらっしゃいますか」というさらなる発話された入力に対応する認識されたテキストを生成することができ、NLUモデル130Aを使用して、認識されたテキストを処理して、本明細書において説明されるように、追加パラメータに関連する情報の要求の意図を決定する
ことができる。それらの実装のいくつかのバージョンにおいて、クライアントデバイス110は、オーディオデータ、認識されたテキスト、および/または意図をアシスタント通話システム180に送信することができる。
【0019】
その他の実装においては、ユーザ入力エンジン111がクライアントデバイス110のマイクロフォンによって所与のユーザの発話された入力、ならびに/または(たとえば、支援された通話中および/もしくは進行中の通話中に)さらなるクライアントデバイスからクライアントデバイス110に送信された、さらなるユーザからのさらなる発話された入力をキャプチャするオーディオデータを検出するとき、自動アシスタント115は、クライアントデバイス110に、発話された入力をキャプチャするオーディオデータおよび/またはさらなる発話された入力をキャプチャするオーディオデータを支援された通話システム180に送信させることができる。支援された通話システム180の音声認識エンジン120A2および/またはNLUエンジン130A2は、クライアントデバイス110の音声認識エンジン120A1および/またはNLUエンジン130A1に関連して上で説明されたのと同様にして、発話された入力をキャプチャするオーディオデータおよび/またはさらなる発話された発言をキャプチャするオーディオデータを処理することができる。いくつかの追加的および/または代替的な実施態様において、クライアントデバイス110の音声認識エンジン120A1および/またはNLUエンジン130A1は、分散された方法で、支援された通話システム180の音声認識エンジン120A2および/またはNLUエンジン130A2と併せて使用され得る。さらに、音声認識モデル120Aおよび/またはNLUモデル130Aは、ローカルのクライアントデバイス110に、ならびに/またはネットワーク190を介してクライアントデバイス110および/もしくは支援された通話システム180と通信する遠隔のサーバに記憶され得る。
【0020】
様々な実装において、音声認識モデル120Aは、音声認識エンジン120A1および/または120A2が、モデルを直接使用して、発話された入力に対応する認識されたテキストを生成することができるようなエンドツーエンドの音声認識モデルである。たとえば、音声認識モデル120Aは、認識されたテキストを一文字ずつ(またはその他の一トークンずつ)生成するために使用されるエンドツーエンドのモデルであることが可能である。認識されたテキストを一文字ずつ生成するために使用されるそのようなエンドツーエンドのモデルの1つの非限定的な例は、再帰型ニューラルネットワークトランスデューサ(RNN-T: recurrent neural network transducer)モデルである。RNN-Tモデルは、アテンションメカニズムを使用しないシーケンスツーシーケンス(sequence-to-sequence)モデルの形態である。また、たとえば、音声認識モデルがエンドツーエンドの音声認識モデルでないとき、音声認識エンジン120A1および/または120A2は、その代わりに、予測された音素(および/またはその他の表現)を生成し得る。たとえば、そのようなモデルを用いて、予測された音素(および/またはその他の表現)は、次に、予測された音素に適合する認識されたテキストを決定するために音声認識エンジン120A1および/または120A2によって利用される。そのようにする際、音声認識エンジン120A1および/または120A2は、任意で、復号グラフ(decoding graph)、辞書、および/またはその他のリソースを使用し得る。
【0021】
実装においては、ユーザ入力エンジン111がクライアントデバイス110のユーザインターフェース入力デバイスによってタッチ入力および/またはタイピングされた入力を検出するとき、自動アシスタント115は、タッチ入力のインジケーションおよび/またはタイピングされた入力のインジケーションをクライアントデバイス110から支援された通話システム180に送信させることができる。それらの実装のいくつかのバージョンにおいて、タッチ入力のインジケーションおよび/またはタイピングされた入力のインジケーションは、タッチ入力の基礎となるテキストおよび/またはタイピングされた入力のテキストを含むことができ、基礎となるテキストおよび/またはテキストは、基礎となるテキストおよび/またはテキストの意図を決定するためにNLUモデル130Aを使用して処理され得る。
【0022】
本明細書において説明されるように、支援された通話システム180の支援された通話エンジン150は、音声認識エンジン120A1および/もしくは120A2によって生成された認識されたテキスト、クライアントデバイス110において検出されたタッチ入力の基礎となるテキスト、クライアントデバイス110において検出されたタイピングされた入力の基礎となるテキスト、ならびに/またはNLUエンジン130A1および/もしくは130A2によって決定された意図をさらに処理することができる。支援された通話エンジン150は、様々な実装において、エンティティ特定エンジン151、タスク決定エンジン152、パラメータエンジン153、タスク実行エンジン154、フィードバックエンジン155、および推薦エンジン156を含む。
【0023】
エンティティ特定エンジン151は、クライアントデバイス110の所与のユーザの代理として関わり合うエンティティを特定することができる。エンティティは、たとえば、人のエンティティ、企業のエンティティ、場所のエンティティ、および/またはその他のエンティティであることが可能である。一部の実装において、エンティティ特定エンジン151は、特定されたエンティティのエンティティの特定の種類を決定することもできる。たとえば、人のエンティティの種類は、友人のエンティティ、家族のエンティティ、同僚のエンティティ、および/または人のエンティティのその他の特定の種類であることが可能である。さらに、企業のエンティティの種類は、レストランのエンティティ、航空会社のエンティティ、ホテルのエンティティ、サロンのエンティティ、診療所のエンティティ、および/または企業のエンティティのその他の特定の種類であることが可能である。さらに、場所のエンティティの種類は、学校のエンティティ、博物館のエンティティ、図書館のエンティティ、公園のエンティティ、および/または場所のエンティティのその他の特定の種類であることが可能である。一部の実装において、エンティティ特定エンジン151は、特定されたエンティティに関する特定のエンティティを決定することもできる。たとえば、人のエンティティに関する特定のエンティティは、人の名前(たとえば、Jane Doeなど)であることが可能であり、企業のエンティティに関する特定のエンティティは、企業の名前(たとえば、Hypothetical Cafe、Example Cafe、Example Airlinesなど)であることが可能であり、場所のエンティティに関する特定のエンティティは、場所の名前(たとえば、Hypothetical University、Example National Parkなど)であることが可能である。本明細書において説明されるエンティティは様々な粒度で定義され得るが、それらのエンティティは、簡単にするために、本明細書においては集合的に「エンティティ」と呼ばれる。
【0024】
一部の実装において、エンティティ特定エンジン151は、自動アシスタント115を使用して支援された通話を開始する前に、クライアントデバイス110とのユーザのインタラクションに基づいて、クライアントデバイス110の所与のユーザの代理として関わり合うエンティティを特定することができる。それらの実装のいくつかのバージョンにおいて、エンティティは、支援された通話を開始するためのユーザ入力の受信に応じて特定され得る。たとえば、クライアントデバイス110の所与のユーザが、ソフトウェアアプリケーションの通話インターフェース要素(たとえば、連絡先アプリケーション(contacts application)の連絡先に関する、ブラウザアプリケーションの検索結果に関する、および/またはその他のソフトウェアアプリケーションに含まれるその他の通話可能なエンティティに関する)に対して(たとえば、発話されたまたはタッチ)入力を送る場合、エンティティ特定エンジン151は、通話インターフェース要素に関連するエンティティを特定することができる。たとえば、ユーザ入力がブラウザアプリケーション内の「Example Cafe」に関連する通話インターフェース要素を対象とする場合、エンティティ特定エンジン151は、支援された通話中に、クライアントデバイス110の所与のユーザの代理として関わり合うエンティティとして「Example Cafe」(またはより広く、企業のエンティティもしくはレストランのエンティティ)を特定することができる。
【0025】
一部の実装において、エンティティ特定エンジン151は、進行中の通話に関連するメタデータに基づいて、クライアントデバイス110の所与のユーザの代理として関わり合うエンティティを特定することができる。メタデータは、たとえば、さらなるユーザに関連する電話番号、さらなるユーザに関連する場所、さらなるユーザおよび/もしくはさらなるユーザに関連するエンティティを特定する識別子、進行中の通話が始まった時間、進行中の通話の継続時間、ならびに/または通話に関連するその他のメタデータを含み得る。たとえば、クライアントデバイス110の所与のユーザがさらなるユーザとの進行中の通話に従事している場合、エンティティ特定エンジン151は、クライアントデバイス110の所与のユーザとさらなるユーザとの間の進行中の通話のメタデータを分析して、進行中の通話中に関わり合われるさらなるユーザに関連する電話番号を特定することができる。さらに、エンティティ特定エンジン151は、電話番号をデータベースと相互参照してさらなるユーザに関連するエンティティを特定し、電話番号の検索クエリを送って電話番号に関連する対応する検索結果を特定してさらなるユーザに関連するエンティティを特定し、および/またはその他のアクションを実行してさらなるユーザに関連するエンティティを特定することができる。たとえば、クライアントデバイス110の所与のユーザが進行中の通話に従事している場合、エンティティ特定エンジン151は、進行中の通話に関連するメタデータを分析して、「Example Airlines」のアイデンティティ(identity)を特定するができる。
【0026】
さらに、エンティティ特定エンジン151は、任意の特定されたエンティティをエンティティデータベース151Aに記憶させることができる。一部の実装において、エンティティデータベース151Aに記憶された特定されたエンティティは、エンティティおよび/またはエンティティの特定の種類によってインデックス付けされ得る。たとえば、エンティティ特定エンジン151が「Example Cafe」エンティティを特定する場合、「Example Cafe」は、エンティティデータベース151Aにおいて企業のエンティティとしてインデックス付けされることが可能であり、任意で、レストランのエンティティとしてさらにインデックス付けされることが可能である。さらに、エンティティ特定エンジン151が「Example Airlines」エンティティを特定する場合、「Example Airlines」も、エンティティデータベース151Aにおいて企業のエンティティとしてインデックス付けされることが可能であり、任意で、航空会社のエンティティとしてさらにインデックス付けされることが可能である。特定されたエンティティをエンティティデータベース151Aに記憶し、インデックス付けすることによって、エンティティ特定エンジン151は、エンティティを容易に特定し、取り出すことができ、それによって、将来の支援された通話および/または進行中の通話においてそれらのエンティティに遭遇するときに、エンティティを特定するためのその後の処理を減らす。さらに、様々な実装において、各エンティティは、エンティティデータベース151Aにおいてタスクに関連付けられ得る。
【0027】
タスク決定エンジン152は、クライアントデバイス110の所与のユーザの代理として実行されるタスクを決定することができる。一部の実装において、タスク決定エンジン152は、自動アシスタント115を使用して支援された通話を開始する前に、タスクを決定することができる。それらの実装のいくつかのバージョンにおいて、タスク決定エンジン152は、支援された通話を開始するためのユーザ入力に基づいて、クライアントデバイス110の所与のユーザの代理として実行されるタスクを決定することができる。たとえば、クライアントデバイス110の所与のユーザが「Example Cafeに電話して今夜の予約をして」という発話された入力を与える場合、タスク決定エンジン152は、(たとえば、NLUモデル130Aを使用して決定された)通話を開始し、レストランの予約をするという意図を利用して、発話された入力に基づいて、レストラン予約を行うタスクを決定することができる。別の例として、クライアントデバイス110の所与のユーザが「Example Cafe」に関連する通話インターフェース要素を選択するタッチ入力を与え、通話インターフェースが所与のユーザがExample Cafeのレストラン予約を修正したいことを示す場合、タスク決定エンジン152は、タッチ入力に基づいて既存のレストラン予約を修正するタスクを決定することができる。
【0028】
それらの実装のいくつかの追加的および/または代替的なバージョンにおいて、タスク決定エンジン152は、支援された通話中に関わり合う特定されたエンティティに基づいてタスクを決定することができる。たとえば、レストランのエンティティは、レストラン予約を行うタスク、レストラン予約を修正するタスク、レストラン予約をキャンセルするタスク、および/またはその他のタスクに関連付けられ得る。別の例として、学校のエンティティは、休校(closure)について問い合わせるタスク、生徒/職員がその日に登校しないことを報告するタスク、および/またはその他のタスクに関連付けられ得る。
【0029】
その他の実装において、タスク決定エンジン152は、進行中の通話中に、クライアントデバイス110の所与のユーザの代理として実行されるタスクを決定することができる。それらの実装のいくつかのバージョンにおいては、クライアントデバイス110の所与のユーザとさらなるクライアントデバイスのさらなるユーザとの間の対話に対応するオーディオデータのストリームが、本明細書において説明されるように(たとえば、音声認識モデル120AおよびNLUモデル130Aに関連して)処理され得る。たとえば、クライアントデバイス110の所与のユーザとさらなるクライアントデバイスに関連するさらなるユーザとの間の進行中の通話中に、タスク決定エンジン152が「あなたのマイレージ会員(frequent flier)番号は何番ですか」という認識されたテキストを特定する場合、タスク決定エンジン152は、さらなるユーザにマイレージ会員番号を提供するタスクを決定することができる。それらの実装のいくつかのさらなるバージョンにおいて、タスク決定エンジン152は、エンティティデータベース151Aにタスクに関連付けて記憶されているエンティティに基づいてタスクを決定することもできる。たとえば、エンティティ特定エンジン151が、(たとえば、上述のように進行中の通話に関連するメタデータに基づいて)Example Airlinesエンティティに関連するさらなるユーザを特定する場合、タスク決定エンジン152は、航空会社のエンティティに関連付けて記憶されているマイレージ会員番号を提供するためのタスクに基づいて、さらなるユーザにExample Airlinesに関連するマイレージ会員番号を提供するタスクを決定することができる。
【0030】
パラメータエンジン153は、タスク決定エンジン152によって決定されたタスクに関連するパラメータを特定することができる。自動アシスタント115は、パラメータの値を使用してタスクを実行することができる。一部の実装においては、候補パラメータが、パラメータデータベース153Aにタスクに関連付けて記憶され得る。それらの実装のいくつかのバージョンにおいては、所与のタスクのための候補パラメータが、支援された通話中に、クライアントデバイス110の所与のユーザの代理として関わり合うエンティティの特定に応じて、パラメータデータベースから取り出され得る。たとえば、レストラン予約を行うタスクに関して、パラメータエンジン153は、名前パラメータ、日付/時間パラメータ、予約の人数パラメータ、電話番号パラメータ、様々な座席の種類パラメータ(たとえば、ボックス席もしくはテーブル席、屋内席もしくは屋外席など)、子供パラメータ(すなわち、子供が予約に参加するかどうか)、特別な機会パラメータ(たとえば、誕生日、記念日など)、および/またはその他の候補パラメータを含む1つまたは複数の候補パラメータを特定し、取り出すことができる。対照的に、レストラン予約を修正するタスクに関して、パラメータエンジン153は、名前パラメータ、元の予約の日付/時間パラメータ、修正された予約の日付/時間パラメータ、修正された予約の人数パラメータ、および/またはその他の候補パラメータを含む候補パラメータを特定し、取り出すことができる。
【0031】
いくつかの追加的および/または代替的な実装において、パラメータエンジン153は、クライアントデバイス110の所与のユーザとさらなるクライアントデバイスのさらなるユーザとの間の進行中の通話中に所与のタスクのためのパラメータを特定することができる。それらの実装のいくつかのバージョンにおいて、進行中の通話中に所与のタスクのために特定されるパラメータは、パラメータデータベース153Aに所与のタスクに関連付けて記憶された候補パラメータである可能性があり、またはそうでない可能性がある。上述のように、所与のユーザとさらなるユーザとの間の対話に対応するオーディオデータのストリームが、進行中の通話中に実行されるタスクを決定するために処理され得る。パラメータエンジン153は、さらなるユーザが自動アシスタント115に知られていない所与のパラメータに関連する情報を要求しているかどうかを判定することができる。たとえば、進行中の通話中に、Example Airlinesの担当者がクライアントデバイスの所与のユーザにマイレージ会員番号を要求する場合、パラメータエンジン153は、会話の認識されたテキストに含まれる意図に基づいて、および/または特定された「Example Airlines」エンティティに基づいて、「Example Airlinesマイレージ会員番号」パラメータを特定することができる。
【0032】
さらに、一部の実装においては、パラメータデータベース153Aに記憶された候補パラメータが、エンティティデータベース151Aに記憶された様々なエンティティにマッピングされ得る。パラメータデータベース153Aに記憶された候補パラメータをエンティティデータベース151Aに記憶された様々なエンティティにマッピングすることによって、支援された通話エンジン150は、所与のエンティティの特定に応じて、タスクのためのパラメータを容易に特定することができる。たとえば、「Example Cafe」エンティティ(またはより広く、レストランのエンティティ)の特定に応じて、支援された通話エンジン150は、1組の候補パラメータを決定するために、(たとえば、エンティティデータベース151Aに「Example Cafe」エンティティおよび/またはレストランのエンティティに関連付けて記憶された)予め定義されたタスクを特定することができ、(たとえば、特定されたエンティティおよび/またはユーザ入力に基づいた)特定のタスクの特定に応じて、支援された通話エンジン150は、特定されたエンティティのための特定のタスクに関連する候補パラメータを決定することができる。その他の実装において、エンティティデータベース151Aおよびパラメータデータベース153Aは、エンティティ、タスク、および候補パラメータがそれぞれ互いに関連付けて記憶され得るように、様々なインデックスを用いる(たとえば、エンティティによってインデックス付けされた、タスクによってインデックス付けされた、および/またはその他の方法でインデックス付けされた)1つのデータベースとして組み合わされることが可能である。
【0033】
上述のように、自動アシスタント115は、パラメータの値を使用して、クライアントデバイス110の所与のユーザの代理としてタスクを実行することができる。パラメータエンジン153は、パラメータの値を決定することもできる。実装においては、クライアントデバイス110の所与のユーザが支援された通話を開始するためのユーザ入力を与えるとき、パラメータエンジン153は、候補パラメータに関する情報を要求するさらなるユーザ入力を求めるために、支援された通話を開始する前に、自動アシスタント115に(たとえば、クライアントデバイス110を介して視覚的および/または聴覚的に)所与のユーザと対話させることができる。本明細書において説明されるように、自動アシスタント115は、情報を要求するプロンプトを生成することができ、対応する値(またはそのサブセット)を聴覚的に(たとえば、クライアントデバイス110のスピーカを介して)および/または視覚的に(たとえば、クライアントデバイス110のディスプレイを介して)求めるためにプロンプトをレンダリングすることができる。たとえば、(たとえば、タッチ入力または発話された入力による)Example Cafeの予約をするために支援された通話を開始するためのユーザ入力の受け取り応じて、自動アシスタント115は、候補パラメータ(またはそのサブセット)に関して、予約のための日付/時間パラメータの値、予約のための人数パラメータの値などを含むさらなるユーザ入力を要求するプロンプトを生成することができる。
【0034】
それらの実装のいくつかのバージョンにおいて、パラメータエンジン153は、ユーザプロファイルデータベース153Bに記憶されたクライアントデバイス110の所与のユーザのユーザプロファイルに基づいて、候補パラメータの値を決定することができる。これらの実装のいくつかのさらなるバージョンにおいて、パラメータエンジン153は、所与のユーザからのいかなるさらなるユーザ入力も要求することなく、候補パラメータの値を決定することができる。パラメータエンジン153は、ユーザプロファイルデータベース153Bにアクセスすることができ、ソフトウェアアプリケーション(たとえば、カレンダーアプリケーション、電子メールアプリケーション、連絡先アプリケーション、リマインダアプリケーション、メモアプリケーション、SMSもしくはテキストメッセージングアプリケーション、および/またはその他のソフトウェアアプリケーション)から名前パラメータ、電話番号パラメータ、日付/時間パラメータの値を取り出すことができる。ユーザプロファイルは、たとえば、所与のユーザから許可を得て、所与のユーザのリンクされたアカウント、所与のユーザの電子メールアカウント、所与のユーザのフォトアルバム、所与のユーザのソーシャルメディアプロファイル、所与のユーザの連絡先、ユーザプリファレンス、および/またはその他の情報を含み得る。たとえば、クライアントデバイス110の所与のユーザが、支援された通話を開始するためのユーザ入力を与える前に、友人とのテキストメッセージングの会話、および所与のエンティティにおけるレストラン予約のための日付/時間情報の検討に従事している場合、パラメータエンジン153は、日付/時間パラメータの値としてテキストメッセージングの会話からの日付/時間情報を利用することができ、自動アシスタントは、レストラン予約のための日付/時間情報に関して所与のユーザに促す必要がない。(たとえば、
図4Bに関連して)本明細書においてより詳細に検討されるように、クライアントデバイス110の所与のユーザは、支援された通話が開始される前に、候補パラメータの値を修正することができる。
【0035】
さらに、様々な実装において、所与のタスクのための一部の候補パラメータは、必須のパラメータであってよく、一方、所与のタスクのためのその他の候補パラメータは任意のパラメータであってよい。それらの実装のいくつかのバージョンにおいて、所与のパラメータが必須のパラメータであるのかまたは任意のパラメータであるのかは、タスクに基づき得る。言い換えれば、所与のタスクのための必須のパラメータは、所与のタスクを実行するために知られている必要がある最小限の量の情報であることが可能である。たとえば、レストラン予約のタスクに関しては、名前パラメータおよび時間/日付パラメータのみが、必須のパラメータであってよい。しかし、任意のパラメータ(たとえば、予約によりしっかりと対応するための人数、何らかの追加の連絡が必要とされる場合にかけるための電話番号など)の値が知られている場合、レストラン予約のタスクは、所与のユーザとレストラン予約のタスクに関連するレストランとの両方により大きな恩恵をもたらす可能性がある。したがって、自動アシスタント115は、少なくとも必須のパラメータに関するプロンプトを生成することができ、任意で、任意のパラメータに関するプロンプトを生成することができる。
【0036】
実装においては、支援された通話システム180が、クライアントデバイス110の所与のユーザとの進行中の通話に従事しているさらなるユーザがパラメータの情報を要求すると判定するとき、パラメータエンジン153が、ユーザプロファイルデータベース153Bに記憶されたクライアントデバイス110の所与のユーザのユーザプロファイルに基づいて値を決定することができる。それらの実装のいくつかのバージョンにおいて、パラメータエンジン153は、さらなるユーザがパラメータの情報を要求していることの特定に応じて、パラメータの値を決定することができる。それらの実装のその他のバージョンにおいて、パラメータエンジン153は、パラメータの情報を要求するクライアントデバイス110の所与のユーザからのユーザ入力に応じて、パラメータの値を決定することができる。
【0037】
様々な実装において、タスク実行エンジン154は、自動アシスタント115に、タスクを実行するための支援された通話中に、合成音声を使用して、特定されたエンティティに関連するさらなるユーザと対話させることができる。タスク実行エンジン154は、合成音声オーディオデータを生成するために、クライアントデバイス110の音声合成エンジン140A1および/または支援された通話システム180の音声合成エンジン140A2に少なくとも値を含むテキストおよび/または音素を提供することができる。合成音声オーディオデータは、さらなるクライアントデバイスにおいて聴覚的にレンダリングするために、さらなるユーザのさらなるクライアントデバイスに送信され得る。音声合成エンジン140A1および/または140A2は、音声合成モデル140Aを使用して、少なくともパラメータの値に対応する合成音声を含む合成音声オーディオデータを生成することができる。たとえば、音声合成エンジン140A1および/または140A2は、さらなるユーザによって要求されたパラメータの情報に対応すると判定された音素のシーケンスを決定することができ、音声合成モデル140Aを使用して音素のシーケンスを処理して、合成音声オーディオデータを生成することができる。合成音声オーディオデータは、たとえば、オーディオ波形の形態であることが可能である。少なくともパラメータの値に対応する音素のシーケンスを決定する際に、音声合成エンジン140A1および/または140A2は、クライアントデバイス110のローカルに記憶された、または(たとえば、ネットワーク190を介して)サーバに記憶されたトークンから音素へのマッピングにアクセスすることができる。
【0038】
一部の実装いおいて、タスク実行エンジン154は、クライアントデバイス110に、クライアントデバイス110の所与のユーザの代理として関わり合うエンティティとの支援された通話を開始させ、クライアントデバイス110の所与のユーザの代理としてタスクを実行させることができる。さらに、タスク実行エンジン154は、少なくともパラメータの値を含む合成音声オーディオデータを利用して、クライアントデバイス110の所与のユーザの代理としてタスクを実行することができる。たとえば、レストラン予約を行うタスクに関して、自動アシスタント115は、さらなるユーザに関連するさらなるクライアントデバイスにおいて、クライアントデバイス110の所与のユーザの代理として自動アシスタント115を特定し、支援された通話中に所与のユーザの代理として実行されるタスクを述べる合成音声(たとえば、「こちらはJane Doeの代理として予約をするために電話しているJane Doeの自動アシスタントです」)をレンダリングさせることができる。
【0039】
それらの実装のいくつかのバージョンにおいて、自動アシスタント115は、エンティティに関連するさらなるユーザによって明示的に要求されることなく、(たとえば、上述のようにパラメータエンジン153を使用して決定された)様々な候補パラメータの対応する値をレンダリングさせることができる。上述の例を続けると、自動アシスタント115は、予約のための日付/時間パラメータの値(たとえば、「今夜7時」など)、予約のための人数パラメータの値(たとえば、「2」、「3」、「4」など)、予約のための座席の種類パラメータの値(たとえば、「ボックス席」、「屋内席」など)、および/またはその他の候補パラメータのその他の値を対話の始めに提供することができる。これらの実装のその他のバージョンにおいて、自動アシスタント115は、さらなるコンピューティングデバイスのさらなるユーザと対話し、エンティティに関連するさらなるユーザによって明示的に要求されたパラメータの特定の値を提供することができる。上述の例を続けると、自動アシスタント115は、さらなるユーザのスピーチ(たとえば、「何時に、何名様でしょうか」など)をキャプチャするオーディオデータを処理することができ、さらなるユーザからの要求の受け取りに応じて、さらなるユーザによって要求されているパラメータの情報(たとえば、「今夜7時に5名」など)を決定することができる。
【0040】
さらに、それらの実装のいくつかのバージョンにおいて、タスク決定エンジン154は、エンティティに関連するさらなるユーザからの要求が、自動アシスタント115が対応するさらなる値を知らないさらなるパラメータに関連する情報の要求であると判定し得る。たとえば、レストラン予約のタスクに関して、自動アシスタント115は、日付/時間情報パラメータ、人数パラメータ、および座席の種類パラメータの値を知っているが、さらなるユーザが、知られていない子供パラメータの情報(すなわち、子供が予約に参加するかどうか)を要求すると仮定する。さらなるユーザが知られていない子供パラメータの情報を要求しているとの判定に応じて、自動アシスタント115は、(たとえば、レンダリングエンジン113を使用して)子供パラメータのさらなる値がさらなるユーザによって要求されたことを示し、クライアントデバイス110の所与のユーザに子供パラメータのさらなる値を提供するように促す通知をクライアントデバイス110にレンダリングさせることができる。
【0041】
それらの実装のいくつかのさらなるバージョンにおいて、クライアントデバイス110においてレンダリングされる通知の種類、および/または通知をレンダリングする1つもしくは複数のプロパティ(たとえば、ボリューム、明るさ、サイズ)は、(たとえば、デバイス状態エンジン112を使用して決定された)クライアントデバイス110の状態および/または進行中の通話の状態に基づき得る。進行中の通話の状態は、たとえば、進行中の通話においてどの値が伝達されたかおよび/もしくはまだ伝達されていないかを示すことができ、ならびに/または進行中の通話のタスクのどのコンポーネントが進行中の通話において完了されたかおよび/もしくはまだ完了されていないかを示すことができる。クライアントデバイス110の状態は、たとえば、クライアントデバイス110のフォアグラウンドで動作するソフトウェアアプリケーション、クライアントデバイス110のバックグラウンドで動作するソフトウェアアプリケーション、クライアントデバイス110がロック状態であるかどうか、クライアントデバイス110がスリープ状態であるかどうか、クライアントデバイス110がオフ状態であるかどうか、クライアントデバイス110のセンサからのセンサデータ、および/またはその他のデータに基づき得る。たとえば、クライアントデバイス110の状態が、支援された通話の文字起こしを表示するソフトウェアアプリケーション(たとえば、自動アシスタントアプリケーション、通話アプリケーション、支援された通話アプリケーション、および/またはその他のソフトウェアアプリケーション)がクライアントデバイス110のフォアグラウンドで動作していることを示す場合、通知の種類は、バナー通知、ポップアップ通知、および/またはその他の種類の視覚的通知であってよい。別の例として、クライアントデバイス110の状態が、クライアントデバイス110がスリープ状態またはロック状態であることを示す場合、通知の種類は、スピーカによる聴覚的インジケーションおよび/またはスピーカもしくはクライアントデバイス110のその他のハードウェア構成要素による振動であってよい。さらに別の例として、クライアントデバイスの存在センサ、加速度計、および/またはその他のセンサからのセンサデータが、所与のユーザがクライアントデバイスの近くに現在いない
および/またはクライアントデバイスを現在保持していないことを示す場合、(たとえば、視覚的なおよび第1のボリュームレベルの聴覚的な)より嵌入的な通知が提供され得る。一方、そのようなセンサデータが、所与のユーザがクライアントデバイスの近くに現在いるおよび/またはクライアントデバイスを現在保持していることを示す場合、(たとえば、視覚のみの、または視覚的なおよび第1の音量レベルよりも小さい第2の音量レベルの聴覚的な)より嵌入的でない通知が提供され得る。さらに別の例として、対話の状態が、対話が終わりに近いことを示す場合、より嵌的な通知が提供され得る一方、対話の状態が、対話が終わりに近くないことを示す場合は、より嵌入的でない通知が提供され得る。
【0042】
それらの実装のいくつかのさらなるバージョンにおいては、たとえ自動アシスタント115がさらなるユーザによって要求されたさらなるパラメータの対応するさらなる値を知らなくても、タスク決定エンジン153が、自動アシスタント115にさらなるユーザとの対話を継続させることができる。そのとき、自動アシスタント115は、さらなるユーザからの要求に応答する更なるユーザ入力を受け取った後、対話の中で後でさらなる値を提供することができる。たとえば、レストラン予約のタスクに関して、自動アシスタント115が、日付/時間情報パラメータ、人数パラメータ、および座席の種類パラメータの値を知っていると仮定し、さらに、さらなるユーザが、日付/時間情報パラメータおよび人数パラメータの値を要求すると仮定する。さらに、さらなるユーザが、次に、自動アシスタント115が値を知らない子供パラメータの値を要求すると仮定する。この例において、タスク決定エンジン153は、自動アシスタント115に、さらなるユーザのさらなるクライアントデバイスにおいて、子供が参加するかどうかに関する要求された情報が現在知られておらず、子供パラメータの値を含む、通知に応答するさらなるユーザ入力がクライアントデバイス110において検出されるまで(たとえば、座席の種類の)その他の値を提供することによって自動アシスタント115が支援された通話を継続し得るというインジケーションを含む合成音声をレンダリングさせることができる。さらなるユーザ入力の受け取りに応じて、自動アシスタント115は、さらなる値を単独の値として(たとえば、「子供は来ません」)、または後続の値として(たとえば、「Jane Doeはボックス席を希望しています。なお、子供は来ません」)提供することができる。
【0043】
さらに、実装において、さらなるユーザが知られていないさらなるパラメータの情報を要求する場合、自動アシスタント115は、情報を要求する通知に応答するさらなるユーザ入力が閾値の継続時間(たとえば、15秒、30秒、60秒、および/またはその他の継続時間)内に受け取られない場合、支援された通話を終了し得る。それらの実装のいくつかのバージョンにおいて、閾値の継続時間は、情報を要求する通知が所与のユーザのクライアントデバイス110においてレンダリングされるときに始まり得る。それらの実装のその他のバージョンにおいて、閾値の継続時間は、自動アシスタント115に知られている最後の値がさらなるユーザによって要求されるかまたは(さらなるユーザが要求することとは無関係に)自動アシスタント115によって先回りして提供されるときに始まり得る。
【0044】
さらに、実装において、さらなるユーザが知られていないさらなるパラメータの情報を要求する場合、フィードバックエンジン155は、さらなるパラメータをタスクのための候補パラメータとしてパラメータデータベース153Aに記憶することができる。それらの実装のいくつかのバージョンにおいて、フィードバックエンジン155は、さらなるパラメータを、エンティティデータベース151Aに記憶された、さらなるユーザに関連するエンティティにマッピングすることができる。それらの実装のいくつかのさらなるバージョンにおいて、フィードバックエンジン155は、支援されたスピーチ(assisted speech)がアクティブである間に、エンティティに関連するさらなるユーザが複数のユーザにさらなるパラメータを閾値の回数要求する場合に、さらなるパラメータをエンティティにマッピングし得る。たとえば、レストランのエンティティが、それぞれのクライアントデバイスを介して複数のユーザによって開始された複数の支援された通話にわたって対話中に、レストラン予約が子供を含むかどうかを少なくとも閾値の回数(たとえば、100回、1000回、および/またはその他の数の閾値)尋ねる場合、フィードバックエンジン155は、エンティティデータベース151Aにおいて子供パラメータを様々なレストランのエンティティにマッピングし得る。この例において、子供パラメータは、様々なレストランのエンティティおよび/または子供パラメータの情報を頻繁に要求する特定のエンティティとのレストラン予約のタスクのための将来の支援された通話を開始する前に値を求める新しい候補パラメータと考えられ得る。これらの方法およびその他の方法で、将来の支援された通話を開始する前に値が求められることが可能であり、それによって、将来の支援された通話の継続時間を短縮し、および/または将来の支援された通話において値に関するプロンプトをレンダリングするのに計算リソースを利用する必要を阻止する。
【0045】
一部の実装において、タスク実行エンジン154は、クライアントデバイス110の所与のユーザの代理としてタスクを実行するために、たとえ進行中の通話が支援されたスピーチを使用して開始されなかった場合(すなわち、支援されていない通話)でも、自動アシスタント115に、エンティティに関連するさらなるユーザとの進行中の通話に適した出力を提供させることができる。たとえば、自動アシスタント115は、進行中の通話を中断して、さらなるクライアントデバイス110においてレンダリングされる値を含む合成音声を生じさせ得る。それらの実装のいくつかのバージョンにおいて、自動アシスタント115は、(たとえば、
図5Aに関連して説明されるように)クライアントデバイス110の所与のユーザからのユーザ入力に応じて、進行中の通話に適した出力を提供することができる。それらの実装のいくつかのさらなるバージョンにおいて、自動アシスタント115は、進行中の通話に対応するオーディオデータを処理しない場合があり、それによって、さらなるユーザから同意を得る必要をなくす。むしろ、自動アシスタント115は、進行中の通話に関連するメタデータを分析し、メタデータおよび/またはユーザ入力に基づいて、さらなるユーザによって要求されているパラメータの対応する値を決定することができる。たとえば、クライアントデバイス110は、支援された通話を作動させ、さらなるユーザによって要求された対応する値(たとえば、マイレージ会員番号パラメータの値)を取り出すように自動アシスタント115に求めるユーザ入力を検出することができ、たとえ特定のエンティティが要求の中で明示的に特定されなかったとしても、進行中の通話に関連するメタデータに基づいて、値が特定のエンティティ(たとえば、Example Airlines)に関連付けられると判定することができる。そして、ユーザのアクセス制限されたデータが、さらなるユーザの要求(たとえば、「マイレージ会員」)とメタデータ(たとえば、「Example Airlines」)との両方に基づく検索パラメータ(たとえば、語)を使用して、自動アシスタントによって検索され得る。さらに、それらの実装のいくつかのさらなるバージョンにおいて、自動アシスタント115が進行中の通話に適した出力を提供するためのユーザ入力は、(たとえば、
図5Bに関
連して説明されるように)自動アシスタント115によって生成され、クライアントデバイス110において(たとえば、レンダリングエンジン113を使用して)レンダリングされる、支援された通話システム180がさらなるユーザに値を提供することができるという通知に応じるものである。たとえば、自動アシスタント115は、支援された通話システム180がさらなるユーザによって要求されているパラメータの対応する値を提供することができることを、クライアントデバイス110の所与のユーザに先回りして通知し得る。
【0046】
それらの実装のその他のバージョンにおいて、自動アシスタント115は、(たとえば、
図5Cに関連して説明されるように)情報がさらなるユーザによって要求されているとの判定に応じて、クライアントデバイス110の所与のユーザからいかなるユーザ入力も受け取ることなく、進行中の通話に適した出力(たとえば、進行中の通話内の合成音声)を提供する。それらの実装のいくつかのバージョンにおいて、自動アシスタント115は、値に関する信頼性測定指標が信頼性の閾値を満たすことに基づいて値を自動的に提供し得る。信頼性測定指標は、たとえば、所与のユーザが、同じ値の以前の要求の受け取りに応じて、決定された値を以前提供したかどうか、進行中の通話中に特定されたパラメータが、進行中の通話中に特定されたタスクに関連付けて記憶された候補パラメータであるかどうか、値が決定されるソース(たとえば、電子メール/カレンダーアプリケーション対テキストメッセージングアプリケーション)、および/または信頼性測定指標を決定する方法に基づき得る。たとえば、クライアントデバイス110の所与のユーザと航空会社のエンティティに関連するさらなるユーザとの間の進行中の通話に関して、支援された通話システム180は、さらなるユーザによって要求されているマイレージ会員番号を決定することができ、支援された通話システム180は、自動アシスタント115に、進行中の通話の一部として、マイレージ会員番号を含む合成音声を自動的に提供させることができ--自動アシスタント115がマイレージ会員番号を提供することを要求するいかなるユーザ入力も受け取ることなく合成音声を自動的に提供することができる。これらの実装のいくつかのバージョンにおいて、クライアントデバイス110の所与のユーザは、支援された通話に関連する設定において、進行中の通話を自動的に中断する権限を支援された通話に与えなければならない場合がある。
【0047】
様々な実装において、推薦エンジン156は、対話において伝達される候補値を決定することができ、自動アシスタント115に、クライアントデバイス110の所与のユーザのための推薦として候補値を提供させることができる。一部の実装において、候補値は、ネットワーク190を介してクライアントデバイス110に送信され得る。さらに、候補値は、さらなるユーザからの要求に応じた推薦として、(たとえば、レンダリングエンジン113を使用して)クライアントデバイスのディスプレイ上に視覚的にレンダリングされ得る。それらの実装のいくつかのバージョンにおいては、(たとえば、ユーザ入力エンジン111によって判定されるように)ユーザ入力が所与の推薦を対象とするときに、所与の推薦が、さらなるユーザのさらなるクライアントデバイスにおいて聴覚的にレンダリングされる合成音声に組み込まれ得るように、推薦は、選択可能であり得る。
【0048】
一部の実装において、推薦エンジン156は、さらなるユーザからの情報の要求に基づいて候補値を決定することができる。たとえば、要求がはいかいいえかの質問(たとえば、「予約にお子様も含まれますか」)である場合、推薦エンジン156は、「はい」の値を含む第1の推薦と、「いいえ」の値を含む第2の推薦とを決定することができる。その他の実装において、推薦エンジン156は、ユーザプロファイルデータベース153Bに記憶されたクライアントデバイス110に関連する所与のユーザのユーザプロファイルに基づいて候補値を決定することができる。たとえば、要求が特定の情報を求める場合(たとえば、「お子様は何人ですか」)、推薦エンジン156は、所与のユーザからの許可を得て、所与のユーザのユーザプロファイルに基づいて、クライアントデバイス110の所与のユーザが3人の子供がいると判定することができ--「3」の値を含む第1の推薦、「2」の値を含む第2の推薦、「1」の値を含む第3の推薦、および/またはその他の値を含むその他の推薦を決定することができる。本明細書において説明される様々な推薦は、クライアントデバイスに関連する所与のユーザへの提示のために、クライアントデバイス110において視覚的および/または聴覚的にレンダリングされ得る。
【0049】
本明細書において説明されるように、レンダリングエンジン113は、クライアントデバイス110において様々な通知またはその他の出力をレンダリングすることができる。レンダリングエンジン113は、本明細書において説明される様々な通知を聴覚的および/または視覚的にレンダリングすることができる。さらに、レンダリングエンジン113は、クライアントデバイス110のユーザインターフェース上に対話の文字起こしをレンダリングさせることができる。一部の実装において、文字起こしは、(たとえば、
図4Bに関連して説明されるように)クライアントデバイス110の所与のユーザと自動アシスタント115との間の対話に対応し得る。その他の実装において、文字起こしは、(たとえば、
図4Cおよび
図4Dに関連して説明されるように)さらなるクライアントデバイスのさらなるユーザと自動アシスタント115との間の対話に対応し得る。さらにその他の実装において、文字起こしは、(たとえば、
図5A~
図5Cに関連して説明されるように)クライアントデバイス110の所与のユーザと、さらなるクライアントデバイスのさらなるユーザと、自動アシスタント115との間の対話に対応し得る。
【0050】
一部の実装において、スケジューリングエンジン114は、タスクの実行の結果に基づいて自動アシスタントがさらなる(または後続の)タスクを実行する推薦を、タスクの実行の結果を示す通知とともにおよび/またはタスクの実行の結果を示す通知に含めて、自動アシスタント115に含めさせることができる。それらの実装のいくつかのバージョンにおいては、(たとえば、ユーザ入力エンジン111によって判定されるように)ユーザ入力が所与の推薦を対象とするときに、所与の推薦がさらなるタスクを実行させ得るように、推薦は、選択可能であり得る。たとえば、成功したレストラン予約のタスクに関して、自動アシスタント115は、クライアントデバイス110のディスプレイのユーザインターフェースによって、クライアントデバイス110の所与のユーザによって選択されるとスケジューリングエンジン114に成功したレストラン予約に関するカレンダー項目を作成させる選択可能な要素をレンダリングすることができる。別の例として、成功したレストラン予約のタスクに関して、自動アシスタント115は、レストラン予約のタスクが成功裏に実行されたことを示すSMSまたはテキストメッセージを、レストラン予約に参加しているその他のユーザに送信することができる。対照的に、失敗したレストラン予約のタスクに関して、自動アシスタント115は、クライアントデバイス110の所与のユーザによって選択されると、スケジューリングエンジン114に、レストラン予約のタスクを後でおよび試みられたレストラン予約のタスクの時間/日付の値の前に再び実行する(たとえば、後で自動アシスタント115によって自動的に実行されるか、またはリマインダおよび/もしくはカレンダー項目のユーザの選択に応じて自動アシスタント115によって実行される)ためのリマインダおよび/またはカレンダー項目を作成させる選択可能な要素をレンダリングすることができる。
【0051】
その他の実装において、スケジューリングエンジン114は、自動アシスタント115に、タスクの実行の結果の決定に応じて、タスクの実行の結果に基づいてさらなる(または後続の)タスクを自動的に実行させることができる。たとえば、成功したレストラン予約のタスクに関して、自動アシスタント115は、成功したレストラン予約に関するカレンダー項目を自動的に作成し、レストラン予約のタスクが成功裏に実行されたことを示すSMSもしくはテキストメッセージをレストラン予約に参加しているその他のユーザに自動的に送信し、および/またはレストラン予約のタスクの成功裏の実行に応じて自動アシスタント115によって実行され得るその他のさらなるタスクを自動的に実行することができる。対照的に、失敗したレストラン予約のタスクに関して、自動アシスタント115は、レストラン予約のタスクを後でおよびレストラン予約のタスクの時間/日付の値の前に再び実行する(たとえば、後で自動アシスタント115によって自動的に実行されるか、またはリマインダおよび/もしくはカレンダー項目のユーザの選択に応じて自動アシスタント115によって実行される)ためのリマインダおよび/またはカレンダー項目を自動的に作成することができる。
【0052】
本明細書において説明される技術を使用することによって、様々な技術的利点が、実現され得る。非限定的な一例として、自動アシスタント115は、自動アシスタント115に現在知られていない情報がさらなるユーザによって要求されるときに、さらなるパラメータの値を待つために支援された通話の対話が停止されないので、支援された通話をより迅速に終わらせることができる。本明細書において開示される技術を使用することによって、支援された通話の長さが短縮され得るので、ネットワークリソースと計算リソースとの両方が節約され得る。別の非限定的な例として、自動アシスタント115は、進行中の通話中の所与のユーザによるタスクの実行中に、パラメータの対応する値を提供することができる。上述のように対応する値を自動的にかまたは明示的なユーザ入力に応じてかのどちらかで提供することによって、ユーザが、対応する値を決定するためにまったく異なるユーザインターフェースを有する様々なアプリケーションにナビゲートする必要がないので、クライアントデバイス110は、クライアントデバイス110の所与のユーザからより少ない入力を受け取り、それによって、所与のクライアントデバイスの計算リソースを節約する。さらに、ユーザがこれらの様々なアプリケーションにナビゲートする必要がないので、システムは、進行中の通話をより迅速に終わらせることによって計算リソースとネットワークリソースとの両方を節約する。
【0053】
図2は、様々な実装による、支援された通話を実行する例示的な方法200を示す流れ図を示す。便宜上、方法200の動作は、動作を実行するシステムに関連して説明される。方法200のこのシステムは、コンピューティングデバイス(たとえば、
図1のクライアントデバイス110、
図4A~
図4Dのクライアントデバイス410、
図5A~
図5Cのクライアントデバイス510、
図6のコンピューティングデバイス610、1つもしくは複数のサーバ、および/またはその他のコンピューティングデバイス)の1つもしくは複数のプロセッサおよび/またはその他の構成要素を含む。さらに、方法200の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される可能性がある。
【0054】
ブロック252において、システムは、所与のユーザに関連するクライアントデバイスを介して所与のユーザから、支援された通話を開始するためのユーザ入力を受け取る。一部の実装において、ユーザ入力は、クライアントデバイスのマイクロフォンによって検出される発話された入力である。たとえば、発話された入力は、「Example Cafeに電話して」、または特に「支援された通話を使ってExample Cafeに電話して」を含み得る。その他の実装において、ユーザ入力は、クライアントデバイスにおいて検出されたタッチ入力である。たとえば、タッチ入力は、クライアントデバイス上で様々なソフトウェアアプリケーション(たとえば、ブラウザアプリケーション、メッセージングアプリケーション、電子メールアプリケーション、メモアプリケーション、リマインダアプリケーション、および/またはその他のソフトウェアアプリケーション)が動作している間に検出され得る。
【0055】
ブロック254において、システムは、支援された通話を開始するためのユーザ入力に応じて、支援された通話中に所与のユーザの代理として関わり合うエンティティを特定する。エンティティは、ユーザ入力に基づいて特定され得る。実装において、ユーザ入力が発話された入力であるとき、エンティティは、(たとえば、
図1の音声認識モデル120Aおよび/またはNLUモデル130Aを使用して)発話された入力をキャプチャするオーディオデータを処理して、発話された入力に含まれるエンティティ(たとえば、企業のエンティティ、特定の企業のエンティティ、場所のエンティティ、および/またはその他のエンティティ)を特定することに基づいて特定され得る。実装において、ユーザ入力がタッチ入力であるとき、エンティティは、クライアントデバイスとのユーザのインタラクション(たとえば、エンティティに関連する連絡先のエントリ、エンティティに関連する検索結果、エンティティに関連する広告を選択するタッチ入力、および/またはその他のユーザのインタラクション)に基づいて特定され得る。
【0056】
ブロック256において、システムは、ユーザ入力および/またはエンティティに基づいて、支援された通話中に所与のユーザの代理として実行される少なくとも1つのタスクを決定する。様々な実装において、予め定義されたタスクが、1つまたは複数のデータベース(たとえば、
図1のエンティティデータベース151A)に複数の対応するエンティティに関連付けて記憶され得る。たとえば、フライトの予約、フライトの変更、フライトのキャンセル、ロストバゲージの問い合わせのタスク、および/またはその他のタスクが、複数の異なる航空会社のエンティティに関連付けて記憶され得る。一部の実装において、実行される少なくとも1つのタスクは、ユーザ入力に基づいて決定され得る。たとえば、「Example Cafeに電話して今夜7時に予約をして」という発話された入力がクライアントデバイスにおいて受け取られる場合、システムは、発話された入力がレストラン予約のタスクを含むと判定することができる。その他の実装において、実行される少なくとも1つのタスクは、ブロック254において特定されたエンティティに基づいて決定され得る。たとえば、「Example Cafeに電話して」という発話された入力がクライアントデバイスにおいて受け取られる場合(つまり、レストラン予約のタスクを明示していない場合)、システムは、それがレストランのエンティティに関連する予め定義されたタスクであることに基づいて、予約を行うタスクを推測することができる。
【0057】
ブロック258において、システムは、少なくとも1つのタスクに関連する候補パラメータを特定する。様々な実装において、候補パラメータは、1つまたは複数のデータベース(たとえば、
図1のパラメータデータベース153A)に、(ブロック256において決定された)少なくとも1つのタスクに関連付けて、および/または(ブロック254において決定された)少なくとも1つのエンティティに関連付けて記憶され得る。たとえば、フライトの予約、フライトの変更、フライトのキャンセル、ロストバゲージの問い合わせのタスク、および/またはその他のタスクが、対応する候補パラメータに関連付けて記憶され得る。また、たとえば、Airline Entity 1に関連するフライトの変更のタスクが、第1の対応するパラメータに関連付けて記憶されることが可能であり、Airline Entity 2に関連するフライトの変更のタスクが、第2の対応するパラメータに関連付けて記憶されることが可能である。別の例として、Restaurant Entity 1が、第1の対応するパラメータに関連付けて記憶されることが可能であり、Restaurant Entity 2が、第2の対応するパラメータに関連付けて記憶されることが可能である。
【0058】
ブロック260において、システムは、候補パラメータに関して、少なくとも1つのタスクの実行の際に使用される対応する値を決定する。一部の実装において、候補パラメータの値は、1つまたは複数のデータベース(たとえば、
図1のユーザプロファイルデータベース153B)に記憶されている所与のユーザのユーザプロファイルに基づいて決定され得る。ユーザプロファイルは、たとえば、所与のユーザのリンクされたアカウント、所与のユーザの電子メールアカウント、所与のユーザのフォトアルバム、所与のユーザのソーシャルメディアプロファイル、所与のユーザの連絡先、ユーザプリファレンス、および/またはその他の情報を含み得る。たとえば、サロン予約のタスクに関して、システムは、連絡先アプリケーションに基づいて所与のユーザの名前パラメータおよび電話番号パラメータを決定し、特定のスタイリストとの以前の通信(たとえば、電子メールメッセージ、テキストもしくはSMSメッセージ、電話、および/またはその他の通信)に基づいてサロンの好ましいスタイリストを決定することができる。いくつかの追加的および/または代替的な実装において、候補パラメータの値は、追加的または代替的に、クライアントデバイスにおいて視覚的および/または聴覚的にレンダリングされ、パラメータの情報を要求するプロンプトに応じるさらなるユーザ入力に基づいて決定され得る。それらの実装のいくつかのバージョンにおいて、システムは、システムがユーザプロファイルに基づいて決定することができなかった候補パラメータの対応する値に関してのみプロンプトを生成し得る。たとえば、上述のサロン予約のタスクに関して、システムは、名前パラメータ、電話番号パラメータ、および電話番号パラメータの値を既に知っており、したがって、システムは、日付/時間パラメータの値を要求するプロンプトを生成するだけでよい。(たとえば、
図4Bに関連して)本明細書において説明されるように、システムは、支援された通話を開始する前に、クライアントデバイスの所与のユーザが候補パラメータの値を修正するための機会を提供することができる。
【0059】
ブロック262において、システムは、所与のユーザに関連するクライアントデバイスを使用して、候補パラメータの値を用いて少なくとも1つのタスクを実行するために、所与のユーザの代理として、エンティティとの支援された通話を開始する。システムは、さらなるコンピューティングデバイスからクライアントデバイスにおいて受信されたオーディオデータを処理して、さらなるユーザによって要求されているパラメータの値を決定することができる。さらに、システムは、ブロック254において特定されたエンティティに関連するさらなるユーザのさらなるクライアントデバイスに送信され、少なくともパラメータの値を含む合成音声オーディオを(たとえば、先回りして、またはさらなるユーザによる要求に応じて)生成することができる。一部の実装において、システムは、さらなるユーザと対話することができ、さらなるユーザによって要求された情報に含まれる特定の値を含む合成音声オーディオを生成することができる。たとえば、レストラン予約のタスクに関して、さらなるユーザは、日付/時間パラメータの情報を要求することができ、システムは、さらなるユーザからの要求が日付/時間パラメータの情報を求めるものであるとの判定に応じて、日付/時間の値を含む合成音声オーディオデータを生成することができる。さらに、システムは、合成音声オーディオデータをさらなるユーザのさらなるクライアントデバイスに送信させ、合成音声オーディオデータに含まれる合成音声をさらなるクライアントデバイスにおいて聴覚的にレンダリングさせることができる。さらなるユーザは、様々なパラメータのさらなる情報を要求することができ、システムは、レストラン予約のタスクを実行するために、さらなるユーザに値を提供することができる。
【0060】
一部の実装において、方法200は、任意の下位ブロック262Aを含み得る。含まれる場合、任意の下位ブロック262Aにおいて、システムは、エンティティに関連するさらなるユーザから、支援された通話を監視するための同意を得る。たとえば、システムは、支援された通話を開始すると、タスクを実行する前に同意を得ることができる。システムが関連するさらなるユーザからの同意を得る場合、システムは、タスクを実行することができる。しかし、システムがさらなるユーザから同意を得ない場合、システムは、クライアントデバイスに、所与のユーザに対して、所与のユーザがタスクを実行することおよび/または通話を終了することが必要とされることを示す通知をレンダリングさせ、所与のユーザに対して、タスクが実行されなかったことを示す通知をレンダリングさせることができる。
【0061】
ブロック264において、システムは、支援された通話中に、エンティティに関連するさらなるユーザによって、さらなるパラメータに関連する何らかの情報が要求されるかどうかを判定する。上述のように、システムは、さらなるコンピューティングデバイスからクライアントデバイスにおいて受信されたオーディオデータを処理して、さらなるユーザによって要求されている値を決定することができる。さらに、システムは、さらなるユーザによって要求されている値がシステムに現在知られていないように、要求されている値がシステムが以前に解決していないさらなるパラメータのものであるかどうかを判定することがでる。たとえば、システムがレストラン予約のタスクのための座席の種類パラメータの値を以前に決定していない場合、座席の種類パラメータは、システムに現在知られていない値を有するさらなるパラメータと考えられ得る。ブロック264の反復において、システムが、支援された通話中に、エンティティに関連するさらなるユーザによって、さらなるパラメータに関連する情報が要求されないと判定する場合、システムは、以下でより詳細に検討されるブロック272に進んでよい。
【0062】
任意のブロック266を含むブロック264の反復において、システムが、支援された通話中に、エンティティに関連するさらなるユーザからの要求にさらなるパラメータの値が含まれていると判定する場合、システムは、任意のブロック266に進んでよい。任意のブロック266を含む実装において、システムは、ブロック264からブロック266に直接進んでよく、ブロック266は、以下でより詳細に検討される。
【0063】
含まれる場合、任意のブロック266において、システムは、所与のユーザに関連するクライアントデバイスの状態を決定する。クライアントデバイスの状態は、たとえば、クライアントデバイスのフォアグラウンドで動作するソフトウェアアプリケーション、クライアントデバイスのバックグラウンドで動作するソフトウェアアプリケーション、クライアントデバイス110がロック状態であるかどうか、クライアントデバイスがスリープ状態であるかどうか、クライアントデバイス110がオフ状態であるかどうか、クライアントデバイスのセンサからのセンサデータ、および/またはその他のデータに基づき得る。一部の実装において、システムは、追加的または代替的に、ブロック266において進行中の通話の状態を決定する。
【0064】
ブロック268において、システムは、所与のユーザに関連するクライアントデバイスに、そのさらなるパラメータを特定する通知をレンダリングさせる。通知は、さらに、情報に含まれるさらなるパラメータの値を要求し得る。任意のブロック268を含む実装において、クライアントデバイスによってレンダリングされる通知の種類、および/またはレンダリングに関する1つもしくは複数のプロパティは、任意のブロック268において決定されたクライアントデバイスの状態および/または進行中の通話の状態に基づき得る。たとえば、クライアントデバイスの状態が、支援された通話の文字起こしを表示するソフトウェアアプリケーション(たとえば、自動アシスタントアプリケーション、通話アプリケーション、支援された通話アプリケーション、および/またはその他のソフトウェアアプリケーション)がクライアントデバイスのフォアグラウンドで動作していることを示す場合、通知の種類は、バナー通知、ポップアップ通知、および/またはその他の種類の視覚的通知であってよい。別の例として、クライアントデバイスの状態が、クライアントデバイスがスリープ状態またはロック状態であることを示す場合、通知の種類は、スピーカによる聴覚的インジケーションおよび/またはスピーカもしくはクライアントデバイスのその他のハードウェア構成要素による振動であってよい。
【0065】
ブロック270において、システムは、閾値の継続時間内に所与のユーザに関連するクライアントデバイスにおいて何らかのさらなるユーザ入力が受け取られるかどうかを判定する。さらなるユーザ入力は、たとえば、情報を要求する通知に応じるさらなる発話された入力、さらなるタイプ入力、および/またはさらなるタッチ入力であることが可能である。一部の実装において、閾値の継続時間は、情報を要求する通知が所与のユーザのクライアントデバイスにおいてレンダリングされるときに始まり得る。その他の実装において、閾値の継続時間は、最後の値がさらなるユーザによって求められるときに開始し得る。ブロック270の反復において、さらなるユーザ入力が閾値の継続時間内に受け取られるとシステムが判定する場合、システムは、ブロック272に進んでよい。さらなるユーザ入力は、さらなるユーザによって要求されている情報を示す通知に応じて受け取られることが可能であり、要求に応じた値のインジケーションを含み得る。
【0066】
ブロック272において、システムは、候補パラメータおよび/またはさらなるパラメータの値に基づいて、少なくとも1つのタスクを完了する。実装において、支援された通話中に、ブロック264において、さらなるユーザからの情報の要求にさらなる値が含まれていないとシステムが判定する場合、システムは、ブロック260において決定された候補パラメータの対応する値を使用して、少なくとも1つのタスクを完了することができる。これらの実装において、システムは、クライアントデバイスの所与のユーザを関与させる必要なしに、支援された通話を完了することができる。実装において、支援された通話中に、ブロック264において、さらなるパラメータに関連する情報がさらなるユーザによって要求されるとシステムが判定する場合、システムは、ブロック260において決定された候補パラメータの対応する値と、ブロック270において受け取られたさらなるパラメータの値とを使用して少なくとも1つのタスクを完了することができる。これらの実装において、システムは、クライアントデバイスの所与のユーザからの最小限の関与で、支援された通話を完了することができる。ブロック272から、システムは、以下でより詳細に検討されるブロック276に進んでよい。
【0067】
特に、ブロック264において、さらなるユーザがシステムに現在知られていない情報を要求しているとシステムが判定する場合があるが、システムは、さらなるパラメータの値なしで少なくとも1つのタスクの実行を継続し得る。たとえば、システムは、合成音声を支援された通話の一部として提供させることができ、それによって、その合成音声をさらなるユーザのさらなるクライアントデバイスにおいてレンダリングさせる。さらに、合成音声は、システムがさらなるパラメータの値を現在知らないが、システムがユーザに情報に関連する値を要求することができ、システムがクライアントデバイスの所与のユーザにさらなるパラメータの値を求める間、ブロック260において決定された候補パラメータのその他の値を提供することができることを示し得る。このようにして、システムは、タスクを実行するためにさらなるユーザと対話を続けることができる。さらに、さらなるユーザからの情報の要求に応じた値を含むさらなるユーザ入力が受け取られる場合、システムは、知られている値のうちの1つの提供の続きとして、または対話に中断があるときに単独の値として値を提供することができる。このようにして、さらなるパラメータの値を待つために対話が停止されないので、システムは、より迅速でより効率的に、クライアントデバイスの所与のユーザの代理としてタスクを成功裏に実行することができる。より迅速でより効率的にタスクを実行することによって、本明細書において開示される技術を使用することによって、会話の長さが短縮され得るので、ネットワークリソースと計算リソースとの両方が節約され得る。
【0068】
ブロック270の反復において、さらなるユーザ入力が閾値の継続時間内に受け取られないとシステムが判定する場合、システムは、ブロック274に進んでよい。ブロック274において、システムは、少なくとも1つのタスクの実行を終了する。さらに、システムは、エンティティとの進行中の通話を終了する場合がある。閾値の継続時間を超えてさらなるユーザ入力を待つのとは対照的に、進行中の通話を終了させることによって、たとえタスクが完全に実行され得ない場合でも、上述の技術的利点を達成するために、対話が、やはりより迅速に終わらせられ得る。ブロック274から、システムは、ブロック276に進んでよい。
【0069】
ブロック276において、システムは、クライアントデバイスによって、少なくとも1つのタスクの実行の結果を示す通知をレンダリングする。実装において、システムがブロック272からタスクの実行を完了する場合、通知は、クライアントデバイスの所与のユーザの代理としてタスクが完了されたというインジケーションを含むことができ、タスクの完了に関連する確認情報(たとえば、日付/時間情報、タスクに関連する金銭的コスト、確認番号、エンティティに関連する情報、および/またはその他の確認情報)を含むことができる。実装において、システムがブロック274からタスクの実行を終了する場合、通知は、タスクが完了されなかったというインジケーションを含むことができ、タスクの終了に関連するタスク情報(たとえば、必要とされる特定のパラメータの値、エンティティがブロック260において決定された対応する値および/もしくはブロック270において受け取られた値に対応することができないこと、エンティティが閉まっていること、ならびに/またはその他のタスク情報)を含むことができる。様々な実装において、通知は、選択されるときにシステムに、タスクの結果に基づいてカレンダー項目を作成させる、タスクの結果に基づいてリマインダを作成させる、タスクの結果を含むメッセージ(たとえば、テキスト、SMS、電子メール、および/もしくはその他のメッセージ)を送信させる、ならびに/またはそのユーザの選択に応じたその他のさらなるタスクを実行させることができる選択可能なグラフィカル要素を含み得る。
【0070】
図3は、様々な実装による、進行中の支援されていない通話中の補助出力の例示的な方法300を示す流れ図を示す。便宜上、方法300の動作は、動作を実行するシステムに関連して説明される。方法300のこのシステムは、コンピューティングデバイス(たとえば、
図1のクライアントデバイス110、
図4A~
図4Dのクライアントデバイス410、
図5A~
図5Cのクライアントデバイス510、
図6のコンピューティングデバイス610、1つもしくは複数のサーバ、および/またはその他のコンピューティングデバイス)の1つもしくは複数のプロセッサおよび/またはその他の構成要素を含む。さらに、方法300の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加される可能性がある。
【0071】
ブロック352において、システムは、クライアントデバイスにおいて、クライアントデバイスに関連する所与のユーザと、さらなるクライアントデバイスに関連するさらなるユーザとの間の進行中の通話を検出する。システムは、任意で、さらなるユーザに関連するエンティティも特定し得る。システムは、進行中の通話に関連するメタデータに基づいてエンティティを特定することができる。一部の実装において、方法300は、任意の下位ブロック352Aを含み得る。含まれる場合、任意の下位ブロック352Aにおいて、システムは、エンティティに関連するさらなるユーザから、進行中の通話を監視するための同意を得る。システムは、
図2の任意の下位ブロック260Aに関連して説明された同じ方法で、さらなるユーザから同意を得ることができる。
【0072】
ブロック354において、システムは、進行中の通話に対応するオーディオデータのストリームを処理して、認識されたテキストを生成する。進行中の通話に対応するオーディオデータのストリームは、少なくとも、所与のユーザのクライアントデバイスに送信される、さらなるユーザのさらなる発話された入力を含み得る。進行中の通話に対応するオーディオデータのストリームは、所与のユーザの発話された入力も含み得る。さらに、システムは、音声認識モデル(たとえば、
図1の音声認識モデル120A)を使用してオーディオデータのストリームを処理して、認識されたテキストを生成することができる。さらなるユーザが通話の監視に同意したと仮定して、システムは、進行中の通話に対応するオーディオデータのストリームを継続的に処理することができることを理解されたい。
【0073】
ブロック356において、システムは、認識されたテキストに基づいて、進行中の通話中に所与のユーザによって実行される少なくとも1つのタスクのためのパラメータを特定する。システムは、NLUモデル(たとえば、
図1のNLUモデル130A)を使用して、ブロック354からの認識されたテキストを処理して、オーディオデータのストリームに含まれる意図を決定することができる。一部の実装において、システムは、さらなるユーザのさらなるユーザ入力が少なくとも1つのタスクのパラメータの情報の要求を含むと判定し得る。たとえば、「この件の品質保証ケース番号をお持ちですか」という、さらなるユーザからのさらなる発話された入力が受け取られる場合、システムは、品質保証ケース番号パラメータを特定することができ、ユーザ入力が品質保証ケース番号パラメータの値の要求を含むと判定することができる。この例において、タスクは、航空会社のエンティティに関連する任意のタスク、および/または航空会社のエンティティに関連付けられるその他のパラメータにまったく関係なく品質保証ケース番号を提供する特定のタスクであることが可能である。
【0074】
ブロック358において、システムは、パラメータに関して、少なくとも1つのタスクの実行の際に使用される対応する値を決定する。対応する値は、ブロック356において少なくとも1つのタスクのためのパラメータを特定した後に決定され得る。一部の実装において、対応する値は、クライアントデバイスの所与のユーザに関連するユーザプロファイルに基づいて、少なくとも1つのタスクのパラメータの特定に応じて自動的に決定され得る。たとえば、品質保証ケース番号パラメータの特定に応じて、システムは、所与のユーザからの許可(たとえば、事前の許可)を得て、所与のユーザに関連する電子メールアカウントにアクセスし、品質保証ケース番号パラメータの対応する値を含む電子メールを検索することができる。さらに、実装において、進行中の通話中に所与のユーザと関わり合うエンティティが特定される場合、システムは、特定されたエンティティに関連する電子メールのみに検索を制限することができる。その他の実装において、対応する値は、自動的に特定されるのとは対照的に、パラメータの対応する値を要求する情報を含むユーザ入力の受け取りに応じて決定され得る。対応する値は、上述の同じまたは同様の方法で、ユーザ入力の受け取りに応じて決定され得る。
【0075】
一部の実装において、方法300は、任意のブロック360、362、および/または364を含み得る。含まれる場合、任意のブロック360において、システムは、支援された通話を作動させるための任意のユーザ入力が所与のユーザに関連するクライアントデバイスにおいて受け取られるかどうかを判定することができる。システムは、本明細書において説明される任意の方法で、クライアントデバイスの所与のユーザとさらなるクライアントデバイスのさらなるユーザとの間の進行中の通話中に支援された通話を呼び出す発話された入力、タイピングされた入力、および/またはタッチ入力に基づいて、ユーザ入力が支援された通話を作動させるかどうかを判定することができる。任意のブロック360の反復において、支援された通話を作動させるためのユーザ入力が受け取られるとシステムが判定する場合、システムは、以下でより詳細に検討されるブロック366に進むことができる。任意のブロック360の反復において、支援された通話を作動させるためのユーザ入力が受け取られないとシステムが判定する場合、システムは、任意のブロック362に進むことができる。
【0076】
含まれる場合、任意のブロック362において、システムは、所与のユーザに関連するクライアントデバイスによって、支援された通話が少なくとも1つのタスクを実行することができることを示す通知をレンダリングすることができる。通知は、たとえば、ブロック356において特定されたパラメータの、ブロック358において決定された対応する値の情報をさらなるユーザが要求しているというインジケーションを含むことができ、システムが所与のユーザの代理としてさらなるユーザに対応する値を提供することができるというインジケーションも含むことができる。通知は、視覚的および/または聴覚的にレンダリングされ得る。実装において、通知が聴覚的にレンダリングされる場合、通知は、クライアントデバイスのさらなるユーザが通知を知覚しないように(すなわち、通話外)、クライアントデバイスにおいてのみ聴覚的にレンダリングされてよい。任意で、さらなるユーザが通知を知覚する可能性を少なくするために、進行中の通話は、通知の聴覚的なレンダリング中、一時的にミュートされることが可能であり、または音響エコーキャンセル(acoustic echo cancellation)もしくはその他のフィルタリングが、通知をフィルタリングし、通知が進行中の通話の一部として提供されるのを防止するために利用されることが可能である。その他の実装において、通知が聴覚的にレンダリングされる場合、通知は、通知が所与のユーザとさらなるユーザとの間の進行中の通話を中断させるように、所与のユーザのクライアントデバイスとさらなるユーザのさらなるクライアントデバイスとの両方において聴覚的にレンダリングされる場合がある。
【0077】
含まれる場合、任意のブロック364において、システムは、支援された通話を作動させるための何らかのユーザ入力が所与のユーザに関連するクライアントデバイスにおいて受け取られるかどうかを判定することができる。ブロック364において受け取られるユーザ入力は、支援された通話が少なくとも1つのタスクを実行することができることを示す通知のレンダリングに応じるものであることが可能である。システムは、本明細書において説明される任意の方法で、クライアントデバイスの所与のユーザとさらなるクライアントデバイスのさらなるユーザとの間の進行中の通話中に支援された通話を呼び出す発話された入力、タイピングされた入力、および/またはタッチ入力に基づいて、ユーザ入力が支援された通話を作動させるかどうかを判定することができる。任意のブロック360の反復において、支援された通話を作動させるためのユーザ入力が受け取られないとシステムが判定する場合、システムは、ブロック354に戻って、進行中の通話に対応するさらなるオーディオデータを処理することができる。たとえば、システムは、クライアントデバイスの所与のユーザが、ブロック362において通知の中でレンダリングされた対応する値を含む発話された入力を与えたと判定する場合があり、システムは、ブロック354に戻り、さらなるユーザによって要求されている任意のさらなるパラメータを監視するためにオーディオデータのストリームを処理することを継続することができる。任意のブロック364の反復において、支援された通話を作動させるためのユーザ入力が受け取られるとシステムが判定する場合、システムは、ブロック366に進むことができる。
【0078】
ブロック366において、システムは、さらなるユーザに対する提示のために、さらなるクライアントデバイスにおいて値をレンダリングさせる。システムは、対応する値をさらなるユーザに提供するために支援された通話を作動させるためのユーザ入力の受け取るに応じて、対応する値を含む合成音声をさらなるユーザのさらなるクライアントデバイスおよび/または所与のユーザのクライアントデバイスにおいてレンダリングさせることができる。
【0079】
任意のブロック360、362、および/または364を含む実装において、システムは、支援された通話を呼び出す明示的なユーザ入力の受け取りに応じて、さらなるユーザのさらなるクライアントデバイスおよび/または所与のユーザのクライアントデバイスにおいて対応する値をレンダリングさせることができる。それらの実装のいくつかのバージョンにおいて、支援された通話を作動させ、進行中の通話を中断するためのユーザ入力は、先回りしたものであることが可能である。言い換えると、システムがブロック360でユーザ入力を受け取る場合、(たとえば、
図5Aに関連して説明されるように)たとえシステムが少なくとも1つのタスクを実行できることを示すいかなる通知もシステムがレンダリングしなかった場合でも、タスクのための対応する値を提供するために、支援された通話が作動され得る。それらの実装のその他のバージョンにおいて、支援された通話を作動させるためのユーザ入力は、事後的であることが可能である。言い換えると、システムがブロック364でユーザ入力を受け取る場合、(たとえば、
図5Bに関連して説明されるように)システムが少なくとも1つのタスクを実行できることを示す通知の、ブロック362におけるレンダリングの後に、タスクのための対応する値を提供するために、支援された通話が作動され得る。任意のブロック360、362、および/または364を含まない実装において、システムは、ブロック258からブロック366に直接進むことができる。それらの実装のいくつかのバージョンにおいて、システムは、(たとえば、
図5Cに関連して説明されるように)ブロック358における対応する値の決定に応じて、進行中の通話を自動的に(すなわち、支援された通話を作動させるためのいかなる明示的なユーザ入力も受け取ることなく)中断し得る。
【0080】
ブロック368において、システムは、支援された通話を継続するための何らかのユーザ入力が所与のユーザに関連するクライアントデバイスにおいて受け取られるかどうかを判定する。ブロック368の反復において、支援された通話を継続するためのユーザ入力が受け取られないとシステムが判定する場合、システムは、ブロック354に戻って、進行中の通話に対応するさらなるオーディオデータを処理することができる。ブロック368の反復において、支援された通話を継続するためのユーザ入力が受け取られるとシステムが判定する場合、システムは、
図2のブロック264に進み、支援された通話中にさらなるパラメータのいずれかの値が必要とされるかどうかを判定することができる。このようにして、システムは、通話中の所与のユーザによるタスクの実行中に、パラメータの対応する値を提供することができる。上述のように対応する値を自動的にかまたは明示的なユーザ入力に応じてかのどちらかで提供することによって、ユーザが、対応する値を決定するためにまったく異なるユーザインターフェースを有する様々なアプリケーションにナビゲートする必要がないので、システムは、クライアントデバイスの所与のユーザからより少ない入力を受け取り、それによって、所与のクライアントデバイスの計算リソースを節約する。さらに、ユーザがこれらの様々なアプリケーションにナビゲートする必要がないので、システムは、進行中の通話をより迅速に終わらせることによって計算リソースとネットワークリソースとの両方を節約する。1つの非限定的な例として、本明細書において説明される技術を使用することによって、所与のユーザは、対応する値に関して電子メールアプリケーション、航空会社のアプリケーション、および/またはその他のアプリケーションを検索する間、対話を一時停止するかまたは対話を保留にする必要がない。
【0081】
ここで
図4A~
図4Dを参照して、支援された通話の実行に関連するユーザインターフェースの様々な非限定的な例が、説明される。
図4A~
図4Dは、それぞれ、クライアントデバイス410の所与のユーザのインタラクションの例を表示するグラフィカルユーザインターフェース480を有するクライアントデバイス410を示す。インタラクションは、たとえば、1つまたは複数のソフトウェアアプリケーション(たとえば、ウェブブラウザアプリケーション、自動アシスタントアプリケーション、連絡先アプリケーション、電子メールアプリケーション、カレンダーアプリケーション、および/またはクライアントデバイス410によってアクセス可能なその他のソフトウェアに基づくアプリケーション)とのインタラクション、ならびにさらなるユーザ(たとえば、さらなるクライアントデバイスに関連するさらなる人間の参加者、さらなるユーザのさらなるクライアントデバイスに関連するさらなる自動アシスタント、および/またはその他のさらなるユーザ)とのインタラクションを含み得る。クライアントデバイス410に関連する自動アシスタント(たとえば、
図1の自動アシスタント115)の1つまたは複数の態様は、クライアントデバイス410のローカルに実装されてよく、および/またはクライアントデバイス410とネットワーク通信するその他のクライアントデバイスに(たとえば、
図1のネットワーク190を介して)分散して実装されてよい。簡単にするために、
図4A~
図4Dの動作は、自動アシスタントによって実行されるものとして本明細書において説明される。
図4A~
図4Dのクライアントデバイス410は、モバイル電話として描かれているが、それは限定的であるように意図されていないことを理解されたい。クライアントデバイス410は、たとえば、(たとえば、スピーカおよび/もしくはディスプレイを有する)スタンドアロンのアシスタントデバイス、ラップトップ、デスクトップコンピュータ、ならびに/または電話をかけることができる任意のその他のクライアントデバイスであることが可能である。
【0082】
図4A~
図4Dのグラフィカルユーザインターフェース480は、仮想キーボードまたはその他のタッチおよび/もしくはタイピングされた入力によってユーザ入力を生成するためにユーザが選択してよいテキスト応答インターフェース要素484と、クライアントデバイス410のマイクロフォンによってユーザ入力を生成するためにユーザが選択してよい音声応答インターフェース要素485とをさらに含む。一部の実装において、ユーザは、音声応答インターフェース要素485を選択することなく、マイクロフォンによってユーザ入力を生成してよい。たとえば、マイクロフォンによる聴覚的ユーザ入力の能動的な監視が、ユーザが音声応答インターフェース要素485を選択する必要をなくすために行われてよい。それらの一部において、および/またはその他の実装において、音声応答インターフェース要素485は、省略されてよい。さらに、一部の実装において、テキスト応答インターフェース要素484は、追加的および/または代替的に、省略されてよい(たとえば、ユーザは、聴覚的ユーザ入力のみを提供してよい)。
図4A~
図4Dのグラフィカルユーザインターフェース480は、コンピューティングデバイス410に1つまたは複数のアクションを実行させるためにユーザによってインタラクションされてよいシステムインターフェース要素481、482、483も含む。
【0083】
本明細書において説明される様々な実装において、自動アシスタントを使用してエンティティとの通話(たとえば、支援された通話)を開始するためのユーザ入力が、受け取られ得る。ユーザ入力は、支援された通話を開始するインジケーションを含む発話された入力、タッチ入力、および/またはタイピングされた入力であることが可能である。さらに、自動アシスタントは、エンティティに関連して、クライアントデバイス410の所与のユーザの代理としてタスクを実行ことができる。
図4Aに示されるように、ユーザインターフェース480は、(たとえば、「www.exampleurl0.com/」というURL 411によって示されるように)クライアントデバイス410においてアクセス可能なブラウザアプリケーションからのレストランのエンティティの検索結果を含む。さらに、検索結果は、「Hypothetical Cafe」の第1の検索結果420と、「Example Cafe」の第2の検索結果430とを含む。
【0084】
一部の実装において、検索結果420および/または430は、選択されるとき、クライアントデバイス410に対応するアクションを実行させる様々な選択可能なグラフィカル要素に関連付けられ得る。たとえば、検索結果420および/または430の所与の1つに関連する通話グラフィカル要素421および/または431が選択されるとき、ユーザ入力は、検索結果420および/または430に関連するレストランのエンティティへの電話アクションが実行されるべきであることを示し得る。別の例として、検索結果420および/または430の所与の1つに関連する道順グラフィカル要素422および/または432が選択されるとき、ユーザ入力は、検索結果420および/または430に関連するレストランのエンティティへのナビゲーションアクションが実行されるべきであることを示し得る。さらに別の例として、検索結果420および/または430の所与の1つに関連するメニューグラフィカル要素423および/または433が選択されるとき、ユーザ入力は、検索結果420および/または430に関連するレストランのエンティティのメニューを表示するブラウザベースのアクションが実行されるべきであることを示し得る。
図4Aにおいては、支援された通話がブラウザアプリケーションから開始されるが、それは例示のためであり、限定的であるように意図されていないことを理解されたい。たとえば、支援された通話は、クライアントデバイス410においてアクセス可能な様々なソフトウェアアプリケーション(たとえば、連絡先アプリケーション、電子メールアプリケーション、テキストもしくはSMSメッセージングアプリケーション、および/またはその他のソフトウェアアプリケーション)から開始されることが可能であり、支援された通話が発話された入力を使用して開始される場合は、クライアントデバイス410のホーム画面から、クライアントデバイス410のロック画面から、および/またはクライアントデバイス410のその他の状態から開始されることが可能である。
【0085】
例示のために、「Example Cafe」の第2の検索結果430を用いて通話を開始するためのユーザ入力が、クライアントデバイス410において検出されると仮定する。ユーザ入力は、たとえば、「Example Cafeに電話して」という発話された入力、または通話グラフィカル要素431を対象とするタッチ入力であることが可能である。一部の実装においては、「Example Cafe」との通話を開始するためのユーザ入力の受け取り応じて、クライアントデバイス410において、通話詳細インターフェース470がレンダリングされ得る。それらの実装のいくつかのバージョンにおいて、通話詳細インターフェース470は、ユーザインターフェース480の一部としてクライアントデバイス410においてレンダリングされ得る。それらの実装のいくつかのその他のバージョンにおいて、通話詳細インターフェース470は、ユーザインターフェースに覆い被さるユーザインターフェース480とは別個のインターフェースであることが可能であり、ユーザが(たとえば、通話詳細インターフェース要素486上で上にスワイプすることによって)さらなる通話の詳細を表示するために通話詳細インターフェース470を展開すること、および/または(たとえば、通話詳細インターフェース要素486上で下にスワイプすることによって)通話詳細インターフェース470を終わらせることを可能にする通話詳細インターフェース要素486を含み得る。通話詳細インターフェース470は、ユーザインターフェース480の下部にあるものとして描かれているが、それは例示のためであり、限定的であるように意図されていないことを理解されたい。たとえば、通話詳細インターフェース470は、ユーザインターフェース480の上部、ユーザインターフェース480の側部、またはユーザインターフェース480とは完全に別個のインターフェースにレンダリングされ得る。
【0086】
通話詳細インターフェース470は、様々な実装において、複数のグラフィカル要素を含み得る。一部の実装において、グラフィカル要素は、グラフィカル要素の所与の1つが選択されるとき、クライアントデバイス410が対応するアクションを実行することができるように、選択可能であり得る。
図4Aに示されるように、通話詳細インターフェース470は、「支援された通話」の第1のグラフィカル要素471、「通常通話」の第2のグラフィカル要素472、および「連絡先『Example Cafe』を保存」の第3のグラフィカル要素473を含む。さらに、第1のグラフィカル要素471は、選択されるとき、自動アシスタントを使用して支援された通話を開始したいという希望のインジケーションを自動アシスタントに与えることができ、第2のグラフィカル要素472は、選択されるとき、自動アシスタントに、支援された通話を使用せずに通話を開始させることができ、第3のグラフィカル要素473は、選択されるとき、自動アシスタントに、Example Cafeに関連する連絡先を作成させることができる。特に、それらの実装のいくつかのバージョンにおいて、グラフィカル要素は、実行されるタスクのインジケーションを提供するための下位要素を含み得る。たとえば、「支援された通話」の第1のグラフィック要素471は、Example Cafeのレストラン予約を行うタスクに関連する「予約する」の第1の下位要素471A、Example Cafeのレストラン予約を修正するタスクに関連する「予約を修正する」の第2の下位要素471B、およびExample Cafeのレストラン予約をキャンセルするタスクに関連する「予約をキャンセルする」の第3の下位要素471Cを含み得る。
【0087】
例示のために、Example Cafeのレストラン予約を行うためにExample Cafeとの支援された通話を開始するためのユーザ入力が、クライアントデバイス410において検出されると仮定する。ユーザ入力は、たとえば、「Example Cafeに電話してレストラン予約をして」という発話された入力、または第1の下位要素471Aを対象とするタッチ入力であることが可能である。ユーザ入力の検出に応じて、自動アシスタントは、「Example Cafeのレストラン予約をする」というタスクを決定することができ、(たとえば、
図1のパラメータエンジン153に関連して)本明細書において説明されたように、特定されたタスクに関連する候補パラメータを特定することができる。一部の実装においては、
図4Bに示されるように、自動アシスタントは、候補パラメータの値を決定することができる。特に、
図4Aから
図4Bに進む際、通話詳細インターフェース470は、特定された候補パラメータを含むように更新され得る。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、クライアントデバイス410の所与のユーザに関連するユーザプロファイルに基づいて、候補パラメータの値を決定することができる。たとえば、自動アシスタントは、自動アシスタントがクライアントデバイス410の所与のユーザのユーザプロファイルを介して値474Aおよび475Aにアクセスすることができることに基づいて、所与のユーザに値474Aおよび475Aを求める必要なしに、名前パラメータ474の値474A(たとえば、Jane Doe)、および電話番号パラメータ475の値475A(たとえば、(502)123-4567)を決定することができる。
図4Bは、自動アシスタントによって特定された特定の候補パラメータに関連して本明細書において説明されるが、それは例示のためであることを理解されたい。
【0088】
それらの実装のいくつかのバージョンにおいて、自動アシスタントは、クライアントデバイス410の所与のユーザのユーザプロファイルに基づいて特定されない候補パラメータの対応する値を求めるために、クライアントデバイス410の所与のユーザと(たとえば、聴覚的および/または視覚的に)対話することができる。それらの実装のいくつかのさらなるバージョンにおいて、自動アシスタントは、(たとえば、
図1のパラメータエンジン153に関連して)本明細書において説明されたように必須のパラメータとみなされる候補パラメータの値のみを求めてよい。たとえば、レストラン予約を行うタスクに関して、自動アシスタントは、"何日の何時にExample Cafeの予約をしたいですか"というプロンプト452B1を生成し、「3月1日の午後7時にボックス席」という(たとえば、タイピングされたかまたは発話された)ユーザ入力454B1を受け取ることができる。したがって、通話詳細インターフェース470は、日付/時間パラメータ476の値476A(たとえば、2020年3月1日午後7時)を含むように更新され得る。特に、ユーザ入力454B1は、プロンプト452B1において求められなかった座席の種類パラメータ478の「ボックス席」という値478Aも含む。たとえ自動アシスタントがプロンプト452B1において値478Aを要求しなかったとしても、自動アシスタントは、値478Aが、(たとえば、
図1のパラメータエンジン153に関連して)本明細書において説明されたように任意のパラメータとみなされ得る座席の種類パラメータ478に対応すると判定することができる。さらに、自動アシスタントは、さらなるパラメータ(たとえば、人数パラメータ477)に関するさらなるプロンプト(たとえば、プロンプト452B2)を生成して、さらなるパラメータの対応する値(たとえば、値5を有する477A)を決定することができる。このようにして、自動アシスタントは、支援された通話を開始する前に、クライアントデバイス410の所与のユーザの代理としてタスクを実行する際に使用される候補パラメータの値を決定することができる。
【0089】
さらに、様々な実装において、候補パラメータの値を決定するとき、
図4Bに示されるように、通話詳細インターフェース470は、様々なグラフィカル要素を含み得る。たとえば、通話詳細インターフェース470は、選択されるとき、支援された通話を開始する前にユーザが値474A~478Aを修正することを可能にする編集グラフィカル要素441Bと、選択されるとき、支援された通話を終了し、任意で、ユーザインターフェース480を、支援された通話を開始するためのユーザ入力を検出する前の状態(たとえば、
図4Aのユーザインターフェース480)に戻すキャンセルグラフィカル要素442Bと、選択されるとき、(たとえば、
図4Aのグラフィカル要素472の選択と同様に)ユーザが自動アシスタントの助けなしに通常通話を開始することを可能にする通話インターフェース要素443Bとを含み得る。
【0090】
候補パラメータ474~478の対応する値474A~478Aを決定した後、自動アシスタントは、エンティティに関連して、クライアントデバイス410の所与のユーザの代理としてタスクを実行するために支援された通話を開始することができる。自動アシスタントは、クライアントデバイス410においてアクセス可能な通話アプリケーションを使用して支援された通話を開始することができる。様々な実装において、
図4Cに示されるように、通話詳細インターフェース470は、自動アシスタントによる通話の開始に応じて、様々なグラフィカル要素を含むように更新され得る。たとえば、通話詳細インターフェース470は、選択されるとき、支援された通話を開始した後に自動アシスタントに支援された通話を終了させる通話終了グラフィカル要素441Cと、選択されるとき、クライアントデバイス410の所与のユーザが自動アシスタントから通話および/またはタスクの実行を引き継ぐことを可能にする通話参加グラフィカル要素442Cと、選択されるとき、クライアントデバイス410にさらなるユーザと自動アシスタントとの間の対話を聴覚的にレンダリングさせるスピーカインターフェース要素443Cとを含み得る。これらのグラフィカル要素442C、443C、および444Cは、支援された通話の継続時間全体を通じて選択され得る。
【0091】
さらに、様々な実装において、自動アシスタントは、支援された通話を開始した後およびタスクを実行する前に、クライアントデバイスのさらなるユーザから同意を得ることができる。
図4Cに示されるように、自動アシスタントは、自動アシスタントとインタラクションするための同意をExample Cafeの担当者が与えることを要求する合成音声452C1を、Example Cafeの担当者に関連するさらなるクライアントデバイスにおいてレンダリングさせることができる。自動アシスタントは、Example Cafeの担当者からのさらなる発話された入力に対応するオーディオデータ456C1を処理して、Example Cafeの担当者によって同意が与えられた(たとえば、オーディオデータ456C1中の「はい」)と判定することができる。さらに、自動アシスタントは、オーディオデータ456C1が日付/時間パラメータ476の値476Aの情報を要求するとの判定に応じて、日付/時間パラメータ476の値476Aを含むさらなる合成音声456C2をExample Cafeの担当者のさらなるクライアントデバイスにおいてレンダリングさせることができる。このようにして、自動アシスタントは、Example Cafeの担当者からの情報の要求に応じた値を含む合成音声を提供することによって、Example Cafeのレストラン予約を行うタスクを実行することができる。
【0092】
一部の実装において、自動アシスタントは、Example Cafeの担当者からのさらなる発話された入力に対応するオーディオデータを処理することができ、さらなる発話された入力が自動アシスタントに現在知られていないパラメータに関連するさらなる値の情報を要求していると判定することができる。
図4Cに示されるように、オーディオデータ456C2は、自動アシスタントに現在知られていない子供パラメータの情報を要求するさらなる発話された入力をキャプチャする。Example Cafeの担当者からのさらなる発話された入力が自動アシスタントに現在知られていない情報を要求しているとの判定に応じて、自動アシスタントは、要求されている情報が現在知られていないことを示すさらに別の合成音声をさらなるクライアントデバイスにおいてレンダリングさせることができる。自動アシスタントは、要求されている情報を現在知らない場合があるが、自動アシスタントが現在知っているその他の値を用いてタスクを実行し続けることができる。たとえば、自動アシスタントは、オーディオデータ456C2が自動アシスタントに現在知られていないパラメータに関連するさらなる値の情報を要求するとの判定に応じて、「分かりません。Jane Doeに聞いてくる必要があります。答えをもらうまで予約を続けてよろしいですか」というさらに別の合成音声454C3を生じ得る。
【0093】
それらの実装のいくつかのバージョンにおいては、自動アシスタントが、さらなるユーザのオーディオデータが情報の要求を含むと判定するとき、自動アシスタントは、自動アシスタントが現在知らないパラメータに関連する情報をさらなるユーザが要求していることを示す通知をクライアントデバイス410においてレンダリングさせることができる。それらの実装のいくつかのさらなるバージョンにおいて、通知は、情報の要求に応じる推薦として提案される値をさらに含み得る。推薦の所与の1つを選択すると、自動アシスタントが推薦の所与の1つに含まれる値をさらなるユーザの要求に応じた値として利用することができるように、推薦は、選択可能であり得る。たとえば、
図4Dに示されるように、自動アシスタントは、通知479を通話詳細インターフェース470において視覚的にレンダリングさせることができる。通知479は、「Example Cafeは、予約に子供が含まれているかどうかを知りたい」というインジケーションを含み、さらなるユーザの要求に応じた推薦される値として提供される「はい」の第1の提案479Aおよび「いいえ」の第2の提案479Bも含む。以下でより詳細に説明されるように、様々なその他の種類の通知が、クライアントデバイス410においてレンダリングされることが可能であり、通知の種類は、オーディオデータが自動アシスタントが現在知らない情報の要求を含むとシステムが判定するときのクライアントデバイス410の状態に基づき得る。
【0094】
上述のように、自動アシスタントは、たとえさらなるユーザが自動アシスタントが現在知らない情報を要求していると自動アシスタントが判定する場合でも、自動アシスタントが現在知っているその他の値を用いてタスクを実行し続けることができる。さらなる値は、通知479に応じてクライアントデバイス410の所与のユーザからさらなるユーザ入力を受け取った後、対話の中で後で提供され得る。たとえば、
図4Dに示されるように、子供パラメータの値が自動アシスタントに現在知られていないが、自動アシスタントがその他の値を知っており、それらのその他の値を使用してタスクを実行し続けたいことを示すさらに別の合成音声452C3のレンダリングに応じて。さらに、「かまいません。お座席の種類はどうしますか」というオーディオデータ456D1が受け取られると仮定する(たとえば、座席の種類パラメータ478の「ボックス席」という値478Aの情報の要求)。さらに、オーディオデータ456D1が自動アシスタントによって処理されている間に、クライアントデバイス410の所与のユーザが、第2の提案479Bを対象とする発話された入力および/またはタッチ入力を与えて、Example Cafeのレストラン予約に子供が参加しないことを示すと仮定する。この例において、自動アシスタントは、座席の種類パラメータ478の「ボックス席」という値478Aを含み、値(たとえば、第2の提案479Bのユーザの選択に基づいて「いいえ」)を含む合成音声452D1を、さらなるユーザのさらなるクライアントデバイスにおいて聴覚的にレンダリングさせることができる。自動アシスタントは、「完璧です。予約は完了しました」というさらなるオーディオデータ456D2を処理して、レストラン予約のタスクが完了されたと判定することができ、「Jane Doeに知らせます。良い一日を」というさらなる合成音声452D2を生じることができ、通話を終了することができる。
【0095】
特に、一部の実装において、自動アシスタントは、さらなるユーザからの、その他の情報の要求に応じる合成音声に、さらなる値(すなわち、さらなるユーザによって要求されたときにはまだ知られていなかったが、さらなるユーザインターフェース入力に基づいて今は知られている)を含めることができる。言い換えれば、自動アシスタントは、たとえさらなるユーザからの直前の要求が情報の要求でない場合でも、合成音声にさらなる値を含めることができる。たとえば、
図4Dに示されるように、合成音声452D1は、オーディオデータ456D1に含まれる座席の種類パラメータ478に関連する情報の直前の要求に応じる「ボックス席」の値478Aを含み、合成音声は、オーディオデータ456C2に含まれる子供パラメータに関連する情報の前の要求に応じる子供パラメータの「いいえ」の値も含む。このようにして、自動アシスタントは、さらなる値を含むさらなるユーザ入力を待つ間、タスクの実行を継続することができ、さらなる値が自動アシスタントに知られるようになるとき、論理的におよび会話形式で、さらなる値をさらなるユーザに提供することができる。さらなるユーザ入力を待つ間、タスクの実行を継続することによって、タスクは、さらなるユーザ入力が受け取られるまでタスクの実行が一時停止されないので、より迅速でより効率的に実行され得る。より迅速でより効率的にタスクを実行することによって、本明細書において説明される技術は、支援された通話を使用してタスクを実行する際の計算リソースおよびネットワークリソースを節約することができる。
【0096】
様々な実装において、描かれていないが、自動アシスタントは、支援された通話中に、エンティティに関連するさらなるユーザからのさらなるオーディオデータが閾値の継続時間内に受信されないと判定する場合がある。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、さらなるユーザからの情報の要求に含まれていなかった1つまたは複数の対応する値に基づくさらに別の合成音声をレンダリングし得る。たとえば、自動アシスタントが、さらなるユーザが10秒間何も言わなかったと判定し、自動アシスタントが、さらなるユーザによって要求されなかったレストラン予約のタスクの人数パラメータの値を知っている場合、アシスタントは、「念のためお伝えすると、5名が予約に参加します」という合成音声をレンダリングし得る。それらの実装のいくつかの追加的および/または代替的なバージョンにおいて、自動アシスタントは、さらなるユーザからの情報の要求に含まれていなかった1つまたは複数のパラメータに基づくさらに別の合成音声をレンダリングすることができる。たとえば、自動アシスタントが、さらなるユーザが10秒間何も言わなかったと判定し、自動アシスタントが、さらなるユーザによって要求されなかったレストラン予約のタスクのための人数パラメータの値を知っている場合、アシスタントは、「予約に参加する人数を知りたいですか」という合成音声をレンダリングすることができる。
【0097】
さらに、様々な実装において、自動アシスタントは、様々な対話の文字起こしを、クライアントデバイス410のユーザインターフェース480において視覚的にレンダリングさせることができる。文字起こしは、たとえば、クライアントデバイス410のホームに、様々なソフトウェアアプリケーション(たとえば、アシスタントアプリケーション、通話アプリケーション、および/またはその他のアプリケーション)において表示され得る。一部の実装において、文字起こしは、(たとえば、
図4Bに示されるように)自動アシスタントとクライアントデバイス410の所与のユーザとの間の対話を含み得る。いくつかの追加的および/または代替的な実装において、文字起こしは、(たとえば、
図4Cおよび
図4Dに示されるように)自動アシスタントとさらなるユーザとの間の対話を含み得る。
【0098】
図4B~
図4Dの各々は、対話の文字起こしを含むものとして示されているが、それは例示のためであり、限定的であるように意図されていないことに留意されたい。上述の支援された通話は、クライアントデバイス410がスリープ状態、ロック状態、その他のソフトウェアアプリケーションがフォアグラウンドで動作しているとき、および/またはその他の状態である間に実行され得ることを理解されたい。さらに、実装において、自動アシスタントがクライアントデバイス410において通知をレンダリングさせる場合、クライアントデバイスにおいてレンダリングされる通知の種類は、本明細書において説明されるように、クライアントデバイス410の状態に基づく。さらに、
図4A~
図4Dは、レストラン予約を行うタスクに関連して本明細書において説明されているが、それはやはり限定的であるように意図されておらず、本明細書において説明される技術は、複数の異なるエンティティに関連して実行され得る複数の異なるタスクのために利用されることが可能であることを理解されたい。
【0099】
さらに、様々な実装において、自動アシスタントは、支援された通話の始めにおよび/または支援された通話中に、さらなるユーザによって保留にされる場合がある。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、自動アシスタントがさらなる人間参加者との会話に従事していないとき、保留中とみなされ得る。たとえば、自動アシスタントが、エンティティに関連する保留システム、エンティティに関連する音声自動応答(IVR: interactive voice response)システム、および/またはエンティティに関連するその他のシステムの対応をしている場合、自動アシスタントは、保留中とみなされ得る。さらに、自動アシスタントは、支援された通話が保留にされるときおよび/または支援された通話が保留にされた後で再開されるときに、クライアントデバイス410において通知をレンダリングさせることができる。通知は、たとえば、支援された通話が保留にされたこと、支援された通話が保留にされた後で再開したこと、保留にされた後で再開されるときにユーザが支援された通話に加わるように要求されること、および/または支援された通話に関連するその他の情報を示すことができる。さらに、自動アシスタントは、さらなるユーザのさらなるクライアントデバイスから所与のユーザのクライアントデバイス410に送信されたオーディオデータのストリームを処理することに基づいて、支援された通話が保留にされた後で再開したと判定することができる。
【0100】
それらの実装のいくつかのバージョンにおいて、自動アシスタントは、自動アシスタントが知っているパラメータに関連する情報のすべてをさらなるユーザが既に要求したと判定することができる。それらの実装のいくつかのさらなるバージョンにおいて、自動アシスタントは、タスクの残りの部分がクライアントデバイス410の所与のユーザを必要とする場合、支援された通話が保留にされた後で再開されるときに、クライアントデバイス410の所与のユーザが支援された通話に加わることを先回りして要求することができる。たとえば、特定のタスクは、自動アシスタントではなく、クライアントデバイス410の所与のユーザを必要とする場合がある。たとえば、エンティティが銀行であり、さらなるユーザが銀行の担当者であり、タスクがデビットカードの請求に対する異議申し立てであると仮定する。この例において、自動アシスタントは、最初に銀行に電話をかけ、所与のユーザの名前を含む合成音声、ユーザの銀行口座番号を含むシミュレーションされたボタンの押下、電話の理由を提供する合成音声、および/または銀行に関連する電話を転送するための自動化されたシステム(たとえば、IVRシステム)をナビゲートするシミュレーションされたボタンの押下などの合成音声および/またはエミュレーションされたボタンの押下を提供することができる。しかし、自動アシスタントは、支援された通話が銀行の担当者に転送されるときに、所与のユーザが所与のユーザのアイデンティティを確認し、異議を申し立てられたデビットカードの請求を説明するために支援された通話に参加することを求められることを知る場合があり、支援された通話が銀行の担当者に転送されるときにユーザのクライアントデバイス410において通知をレンダリングさせることができる。したがって、自動アシスタントは、支援された通話の最初の部分を処理し、異議を申し立てられた請求について話し合うために銀行の担当者が対応可能であるとき、クライアントデバイス410の所与のユーザが支援された通話を引き継ぐことを要求することができる。
【0101】
それらの実装のいくつかのその他のさらなるバージョンにおいて、自動アシスタントは、自動アシスタントがレストラン予約に関連するいかなるさらなる情報も知らないので、支援された通話が保留にされた後で再開されるときに、クライアントデバイス410の所与のユーザが支援された通話に加わることを先回りして要求し得る。たとえば、
図4B~
図4Dに示された支援された通話のさらなるユーザが、レストラン予約が完了したことを示すのではなく、オーディオデータ456D2において自動アシスタントを保留にしたと仮定する。この例において、自動アシスタントは、レストラン予約に関連して自動アシスタントに知られている情報のすべての値を既に提供しており、支援された通話が再開されるときにさらなるユーザによって要求されたいずれのさらなる情報も、自動アシスタントに現在知られていない情報であることになる。したがって、自動アシスタントは、支援された通話が再開されるときに、クライアントデバイス410の所与のユーザが支援された通話を引き継ぐことを先回りして要求し得る。
【0102】
それらの実装のさらにその他のさらなるバージョンにおいて、自動アシスタントは、支援された通話が保留にされたこと、および/または支援された通話が保留にされた後で再開したことを示す通知を差し控え、支援された通話が保留にされた後で再開すると支援された通話を継続し、さらなるユーザが自動アシスタントが現在知らないパラメータに関連する情報を要求していることを示す通知(たとえば、
図4Dの通知479)と一緒にまたはその通知の代わりに所与のユーザのクライアントデバイス410において通知をレンダリングさせることができる。上の例について続けると、支援された通話が再開されるときにクライアントデバイス410の所与のユーザが支援された通話を引き継ぐことを先回りして要求するのではなく、自動アシスタントは、さらなるユーザのさらなる発話された入力に対応するさらなるオーディオデータを処理して、さらなるユーザが自動アシスタントが現在知らないパラメータに関連するさらなる情報を要求しているかどうかを判定することができる。この例において、自動アシスタントは、
図4Dの通知479と同様の、さらなる情報の値を要求する通知と一緒にまたはその通知の代わりに、クライアントデバイス410の所与のユーザが支援された通話を引き継ぐことを要求する通知を提供することができる。このようにして、自動アシスタントは、
図4B~
図4Dにおいて説明されたように支援された通話を継続し、および/または支援された通話の制御をクライアントデバイス410の所与のユーザに受け渡すことができる。
【0103】
ここで
図5A~
図5Cを参照して、進行中の支援されていない通話中の補助出力の提供に関連するユーザインターフェースの様々な非限定的な例が、説明される。
図5A~
図5Cは、それぞれ、クライアントデバイス510の所与のユーザのインタラクションの例を表示するグラフィカルユーザインターフェース580を有するクライアントデバイス510を示す。インタラクションは、たとえば、1つまたは複数のソフトウェアアプリケーション(たとえば、ウェブブラウザアプリケーション、自動アシスタントアプリケーション、連絡先アプリケーション、電子メールアプリケーション、カレンダーアプリケーション、および/またはクライアントデバイス510によってアクセス可能なその他のソフトウェアに基づくアプリケーション)とのインタラクション、ならびにさらなるユーザ(たとえば、クライアントデバイス510に関連する自動アシスタント、さらなるクライアントデバイスに関連するさらなる人間の参加者、さらなるユーザのさらなるクライアントデバイスに関連するさらなる自動アシスタント、および/またはその他のさらなるユーザ)とのインタラクションを含み得る。クライアントデバイス510に関連する自動アシスタント(たとえば、
図1の自動アシスタント115)の1つまたは複数の態様は、クライアントデバイス510のローカルに実装されてよく、および/またはクライアントデバイス510とネットワーク通信するその他のクライアントデバイスに(たとえば、
図1のネットワーク190を介して)分散して実装されてよい。簡単にするために、
図5A~
図5Cの動作は、自動アシスタントによって実行されるものとして本明細書において説明される。
図5A~
図5Cのクライアントデバイス510は、モバイル電話として描かれているが、それは限定的であるように意図されていないことを理解されたい。クライアントデバイス510は、たとえば、スタンドアロンのスピーカ、グラフィカルユーザインターフェースに接続されたスピーカ、ラップトップ、デスクトップコンピュータ、ならびに/または電話をかけることができる任意のその他のクライアントデバイスであることが可能である。
【0104】
図5A~
図5Cのグラフィカルユーザインターフェース580は、仮想キーボードまたはその他のタッチおよび/もしくはタイピングされた入力によってユーザ入力を生成するためにユーザが選択してよいテキスト応答インターフェース要素584と、クライアントデバイス510のマイクロフォンによってユーザ入力を生成するためにユーザが選択してよい音声応答インターフェース要素585とをさらに含む。一部の実装において、ユーザは、音声応答インターフェース要素585を選択することなく、マイクロフォンによってユーザ入力を生成してよい。たとえば、マイクロフォンによる聴覚的ユーザ入力の能動的な監視が、ユーザが音声応答インターフェース要素585を選択する必要をなくすために行われてよい。それらの一部において、および/またはその他の実装において、音声応答インターフェース要素585は、省略されてよい。さらに、一部の実装において、テキスト応答インターフェース要素584は、追加的および/または代替的に、省略されてよい(たとえば、ユーザは、聴覚的ユーザインターフェース入力のみを提供してよい)。
図5A~
図5Cのグラフィカルユーザインターフェース580は、コンピューティングデバイス510に1つまたは複数のアクションを実行させるためにユーザによってインタラクションされてよいシステムインターフェース要素581、582、583も含む。一部の実装において、通話詳細インターフェース570は、クライアントデバイス510においてレンダリングされることが可能であり、通話詳細インターフェース570は、選択されるとき、進行中の通話を終了させることができるグラフィカル要素542を含むことが可能であり、選択されるとき、自動アシスタントに、支援された通話を使用してクライアントデバイス510の所与のユーザから通話を引き継がせることができるグラフィカル要素543も含むことが可能である。それらの実装のいくつかのバージョンにおいて、支援された通話インターフェース570は、ユーザが(たとえば、通話詳細インターフェース要素586上で上にスワイプすることによって)さらなる通話の詳細を表示するために通話詳細インターフェース570を展開すること、および/または(たとえば、通話詳細インターフェース要素586上で下にスワイプすることによって)通話詳細インターフェース5
70を終わらせることを可能にする通話詳細インターフェース要素586も含み得る。
【0105】
様々な実装において、自動アシスタントは、クライアントデバイス410の所与のユーザとさらなるクライアントデバイスのさらなるユーザとの間の進行中の通話(すなわち、支援された通話ではない)を中断することができる。一部の実装において、自動アシスタントは、進行中の通話に対応するオーディオデータを処理して、さらなるユーザに関連するエンティティ、進行中の通話中に実行されるタスク、および/または進行中の通話中に実行されるタスクのためのパラメータを特定することができる。さらに、自動アシスタントは、特定されたパラメータの値を決定することができる。たとえば、
図5A~
図5Cに示されるように、さらなるユーザからの「Example Airlinesです。ご用件をどうぞ」という発話された入力をキャプチャするオーディオデータ552A1、552B1、および/または552C1が、クライアントデバイス510において受信されると仮定する。この例において、自動アシスタントは、オーディオデータ552A1、552B1、および/または552C1を処理することができ、処理に基づいて、さらなるユーザがExample Airlinesの担当者であると判定し、および/またはExample AirlinesをExample Airlinesの担当者に関連するエンティティとして特定することができる。いくつかの追加的および/または代替的な実装において、自動アシスタントは、追加的および/または代替的に、(たとえば、
図1の支援された通話エンジン150に関連して)本明細書において説明されたように進行中の通話に関連するメタデータに基づいてエンティティを特定することができる。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、進行中の通話に対応するオーディオデータのストリームを処理せず、進行中の通話に関連するメタデータのみに基づいてエンティティを特定してよく、それによって、進行中の通話のさらなるユーザから同意を得る必要をなくす。以下で説明されるように、自動アシスタントは、進行中の通話に対応するオーディオデータのストリームを処理することなく、クライアントデバイス510の所与のユーザの代理として、依然としてタスクを実行することができる。
【0106】
さらに、クライアントデバイス510の所与のユーザ(たとえば、Jane Doe)からの「もしもし、フライトの変更が必要なのですが」という発話された入力をキャプチャするオーディオデータ554A1、554B1、および/または554C1が、クライアントデバイス510において検出され、さらなるユーザのさらなるクライアントデバイスに送信されると仮定する。この例において、自動アシスタントは、オーディオデータ554A1、554B1、および/または552C1を処理することができ、処理に基づいてフライトを変更するタスクを決定することができる。その他の例において、自動アシスタントは、追加的および/または代替的に、(たとえば、
図1の支援された通話エンジン150に関連して)本明細書において説明されたようにエンティティに関連するタスクを決定することができる。さらなるユーザからの「承知しました。マイレージ会員番号はお持ちですか」という発話された入力をキャプチャするオーディオデータ552A2、552B2、および/または552C2が、クライアントデバイス510において受信されるとさらに仮定する。この例において、自動アシスタントは、オーディオデータ554A2、554B2、および/または552C2を処理することができ、処理に基づいて、フライトを変更するタスクのためにマイレージ会員番号パラメータを特定する(またはマイレージ会員番号を提供するタスクを考える)ことができる。その他の例において、自動アシスタントは、追加的および/または代替的に、(たとえば、
図1の支援された通話エンジン150に関連して)本明細書において説明されたように、パラメータがタスクおよび/またはエンティティに関連付けて記憶されていることに基づいてパラメータを特定することができる。さらに、自動アシスタントは、マイレージ会員番号パラメータの値を決定することができ、マイレージ会員番号パラメータの値をさらなるユーザに提供することができる。
【0107】
一部の実装において、自動アシスタントは、クライアントデバイス510の所与のユーザからの、パラメータに関連する情報の要求を含むユーザ入力の受け取りに応じて、クライアントデバイス510の所与のユーザとさらなるユーザとの間の進行中の通話中に特定されたパラメータの値を決定することができる。自動アシスタントは、(たとえば、
図1のユーザプロファイルデータベース153Bに記憶された)クライアントデバイス510の所与のユーザに関連するユーザプロファイルに基づいて、パラメータの値を決定することができる。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、パラメータの値の決定に応じて、さらなるユーザのさらなるクライアントデバイスおよび/または所与のユーザのクライアントデバイス510においてパラメータの値をレンダリングさせることができる。たとえば、
図5Aに示されるように、クライアントデバイス510の所与のユーザ(たとえば、Jane Doe)からの「アシスタント、私のマイレージ会員番号は何番」という発話された入力をキャプチャするオーディオデータ554A2が、クライアントデバイス510において検出されると仮定する。オーディオデータ554A2にキャプチャされた発話された入力の受け取りに応じて、自動アシスタントは、(たとえば、所与のユーザに関連するExample Airlinesのアカウントがユーザプロファイルに含まれることに基づいて)マイレージ会員パラメータの値を決定することができ、さらなるユーザのクライアントデバイスおよび/または所与のユーザのクライアントデバイス510において「Jane DoeのExample Airlinesマイレージ会員番号は0112358です」という合成音声556A1をレンダリングさせることができる。
【0108】
それらの実装のいくつかの追加的および/または代替的なバージョンにおいては、オーディオデータ554A2に含まれる発話された入力を受け取るのではなく、自動アシスタントは、支援された通話を使用してクライアントデバイス510の所与のユーザから通話を引き継ぐためのグラフィカル要素543の選択を受け取り得る。たとえば、グラフィカル要素543の選択の受け取りに応じて、自動アシスタントは、(たとえば、所与のユーザに関連するExample Airlinesのアカウントがユーザプロファイルに含まれることに基づいて)マイレージ会員パラメータの値を決定することができ、合成音声556A1をさらなるユーザのさらなるクライアントデバイスおよび/または所与のユーザのクライアントデバイス510においてレンダリングさせることができる。
【0109】
特に、オーディオデータ554A2は、マイレージ会員番号に関連するエンティティを特定しない「私のマイレージ会員番号は何番」を含む。実装において、自動アシスタントがさらなるユーザから同意を得ず、および/またはマイレージ会員番号パラメータに関連するエンティティのインジケーションを提供しない場合、自動アシスタントは、進行中の通話に関連するメタデータに基づいて、「私のマイレージ会員番号」がExample Airlinesに関連するマイレージ会員番号パラメータの値を参照すると判定することができる。このようにして、自動アシスタントは、進行中の通話に対応するオーディオデータのストリームを処理することなく、クライアントデバイス510の所与のユーザからの要求に応じた値を依然として提供することができる。
【0110】
その他の実装において、自動アシスタントは、クライアントデバイス510の所与のユーザからの、パラメータに関連する情報の要求を含むいかなるユーザ入力も受け取ることなく、クライアントデバイス510の所与のユーザとさらなるユーザとの間の進行中の通話中に特定されたパラメータの値を先回りして決定することができる。自動アシスタントは、(たとえば、
図1のユーザプロファイルデータベース153Bに記憶された)クライアントデバイス510の所与のユーザに関連するユーザプロファイルに基づいて、パラメータの値を決定することができる。
【0111】
それらの実装のいくつかのバージョンにおいて、自動アシスタントは、支援された通話がタスクを実行することができ、および/またはパラメータの値をさらなるユーザに提供することができるというインジケーションを含む通知を、クライアントデバイス510においてレンダリングさせることができる。自動化された支援は、クライアントデバイス510の所与のユーザからの、支援されたスピーチを呼び出すユーザ入力の受け取りに応じて、さらなるユーザのさらなるクライアントデバイスにおいて、値を含む合成音声をレンダリングさせることができる。たとえば、
図5Bに示されるように、自動アシスタントが、オーディオデータ552B2内のマイレージ会員番号パラメータの値の要求の特定に応じて、マイレージ会員番号パラメータの値を決定すると仮定する。さらに、自動アシスタントが、「あなたのExample Airlinesマイレージ会員番号は0112358です。Example Airlinesの担当者にマイレージ会員番号を提供してよろしいですか」という通知579をクライアントデバイス510の通話詳細インターフェース570においてレンダリングさせると仮定する。そのとき、自動アシスタントは、自動アシスタントがマイレージ会員番号パラメータの値をされなるユーザに提供すべきであることを示すグラフィカル要素579Aおよび/またはグラフィカル要素543の選択を受け取ることに応じて、さらなるユーザのさらなるクライアントデバイスおよび/または所与のユーザのクライアントデバイス510において「Jane DoeのExample Airlinesマイレージ会員番号は0112358です」という合成音声556B1をレンダリングさせることができる。いくつかの追加的および/または代替的な実装において、自動アシスタントは、進行中の対話中に特定されたパラメータの値を含むクライアントデバイス510の所与のユーザの発話された入力を検出することができる。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、通話詳細インターフェース570に含まれる通知579を自動的に終わらせることができる。
【0112】
それらの実装のいくつかのその他のバージョンにおいて、自動アシスタントは、パラメータに関連する情報の要求を含むいかなるユーザ入力も受け取ることなく、パラメータの値の決定に応じて、進行中の通話中に特定されたパラメータの値を先回りして提供することもできる。自動化された支援は、値の決定に応じて、さらなるユーザのさらなるクライアントデバイスにおいて、値を含む合成音声をレンダリングさせることができる。たとえば、
図5Cに示されるように、自動アシスタントが、オーディオデータ552C2内の、さらなるユーザからの、マイレージ会員番号パラメータの値の要求の特定に応じて、マイレージ会員番号パラメータの値を決定すると仮定する。そのとき、自動アシスタントは、マイレージ会員番号パラメータに関連する情報の要求を含むいかなるユーザ入力も受け取ることなく、マイレージ会員番号パラメータの値の決定に応じて、さらなるユーザのさらなるクライアントデバイスおよび/または所与のユーザのクライアントデバイス510において「Jane DoeのExample Airlinesマイレージ会員番号は0112358です」という合成音声556C1をレンダリングさせることができる。それらの実装のいくつかのさらなるバージョンにおいて、自動アシスタントは、パラメータの決定された値に関連する信頼性測定指標が信頼性の閾値を満たす場合、進行中の通話中に特定されたパラメータの値を先回りして提供するだけでよい。信頼性測定指標は、たとえば、所与のユーザが、同じ情報の以前の要求の受け取りに応じて、決定された値を以前提供したかどうか、進行中の通話中に特定されたパラメータが、進行中の通話中に特定されたタスクに関連付けて記憶された候補パラメータであるかどうか、値が決定されるソース(たとえば、電子メール/カレンダーアプリケーション対テキストメッセージングアプリケーション)、および/または信頼性測定指標を決定する方法に基づき得る。
【0113】
さらに、様々な実装においては、進行中の通話中に自動アシスタントが特定されたパラメータの値を提供した後、自動アシスタントは、進行中の通話の残りを引き継ぐことができる。それらの実装のいくつかのバージョンにおいて、自動アシスタントは、グラフィカル要素543のユーザの選択に応じて、進行中の通話の残りを引き継ぐことができる。さらに、自動アシスタントは、クライアントデバイス510に送信されたオーディオデータに基づいてタスクのためのパラメータを特定し、特定されたパラメータの値を決定することを継続することができる。さらに、所与の要求が自動アシスタントによって決定され得ない情報を求めるものであると自動アシスタントが判定する場合、(たとえば、
図4Cおよび
図4Dに関連して)上で説明されたように、自動アシスタントは、要求に応じるさらなるユーザ入力を求める通知を提供することができ、自動アシスタントは、次に、要求に応じるさらなるユーザ入力に基づいて値を提供することができる。
【0114】
図5A~
図5Cは、マイレージ会員番号を提供するタスクに関連して本明細書において説明されているが、それは限定的であるように意図されておらず、本明細書において説明される技術は、複数の異なるエンティティに関連して実行され得る複数の異なるタスクのために利用されることが可能であることを理解されたい。さらに、
図5A~
図5Cに示されていないが、たとえ進行中の通話が支援された通話を使用して自動アシスタントによって開始されない場合でも、進行中の通話が開始されると、自動アシスタントがさらなるユーザから同意を得ることができることを理解されたい。自動アシスタントは、本明細書において説明される任意の方法を使用して、さらなるユーザから同意を得ることができる。
【0115】
図6は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用されてよい例示的なコンピューティングデバイス610のブロック図である。一部の実装においては、クライアントデバイス、クラウドに基づく自動アシスタント構成要素、および/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を含んでよい。
【0116】
概して、コンピューティングデバイス610は、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含んでよい。入力および出力デバイスは、コンピューティングデバイス610とのユーザのインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【0117】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含んでよい。概して、用語「入力デバイス」の使用は、コンピューティングデバイス610または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【0118】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどの非視覚的表示を含んでよい。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含んでよい。ディスプレイサブシステムは、音声出力デバイスを介するなどして非視覚的表示を提供する場合もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【0119】
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム624は、本明細書において開示される方法の選択された態様を実行するためおよび
図1に示された様々な構成要素を実装するための論理を含んでよい。
【0120】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624において使用されるメモリ625は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)630と、決まった命令が記憶される読み出し専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体をともなうフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含んでよい。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶される場合がある。
【0121】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステム612の代替的な実装は複数のバスを使用する場合がある。
【0122】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、
図6に示されたコンピューティングデバイス610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。
図6に示されたコンピューティングデバイスよりも多くのまたは
図6に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス610の多くのその他の構成が、可能である。
【0123】
本明細書において説明されたシステムがユーザについての個人情報を収集するかもしくはそうでなければ監視するか、または個人情報および/もしくは監視された情報を利用する場合がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザのプリファレンス、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受信するべきかどうかおよび/またはどのようにして受信するべきかを制御する機会を与えられてよい。また、特定のデータが、個人を特定することができる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティが、個人を特定することができる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される場合があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理されてよい。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御することができる場合がある。
【0124】
一部の実装においては、1つまたは複数のプロセッサによって実施される方法が、提供され、所与のユーザに関連するクライアントデバイスを介して所与のユーザから、支援された通話を開始するためのユーザ入力を受け取るステップと、ユーザ入力に基づいて、支援された通話中に所与のユーザの代理として関わり合うエンティティ、および支援された通話中に所与のユーザの代理として実行されるタスクを決定するステップとを含む。方法は、タスクおよび/またはエンティティに関連付けて記憶された1つまたは複数の候補パラメータに関して、支援された通話中にタスクを実行する際に合成音声を自動的に生成するのに使用される1つまたは複数の対応する値を決定するステップと、所与のユーザに関連するクライアントデバイスを使用して、支援された通話の実行を開始するステップと、支援された通話の実行中に、エンティティに関連するさらなるユーザの発言をキャプチャする、支援された通話のオーディオデータを処理することに基づいて、さらなるパラメータに関連する情報がさらなるユーザによって要求されると判定するステップとをさらに含む。方法は、さらなるパラメータに関連する情報が要求されるとの判定に応じて、クライアントデバイスに、支援された通話外で、さらなるパラメータを特定し、情報に関するさらなるユーザ入力を要求する通知をレンダリングさせるステップをさらに含む。方法は、通知に応じる何らかのさらなる入力を受け取るのに先立って、支援された通話を継続するステップをさらに含む。支援された通話を継続するステップは、候補パラメータの対応する値のうちの1つまたは複数に基づく合成音声の1つまたは複数のインスタンスをレンダリングすることを含む。方法は、支援された通話を継続する間に、通知に応じ、さらなるパラメータの特定の値を特定するさらなるユーザ入力が閾値の継続時間内に受け取られるかどうかを判定するステップと、さらなるユーザ入力が閾値の継続時間内に受け取られるとの判定に応じて、支援された通話の一部として、特定の値に基づくさらなる合成音声をレンダリングするステップとをさらに含む。
【0125】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、任意で、以下の特徴のうちの1つまたは複数を含み得る。
【0126】
一部の実装において、対応する値のうちの所与の値を決定することは、支援された通話を開始する前に、候補パラメータのうちの所与の候補パラメータを特定し、所与の候補パラメータに関連するさらなる情報を要求するプロンプトを生成することと、クライアントデバイスにプロンプトをレンダリングさせることと、プロンプトに応じるさらなるユーザ入力に基づいて、所与の候補パラメータの所与の値を特定することとを含む。
【0127】
一部の実装において、対応する値のうちのさらなる値を決定することは、支援された通話を開始する前に、所与のユーザに関連するユーザプロファイルに基づいてさらなる値を特定することを含む。
【0128】
一部の実装において、支援された通話を継続するステップは、支援された通話のさらなるオーディオデータを処理して、さらなるユーザのさらなる発言が候補パラメータのうちの所与の候補パラメータの要求を含むと判定することと、さらなる発言が所与の候補パラメータの要求を含むとの判定に応じて、クライアントデバイスに、通話において、合成音声の1つまたは複数のインスタンスのうちの所与のインスタンスをレンダリングさせることとを含む。それらの実装のいくつかのバージョンにおいて、所与のインスタンスは、所与の候補パラメータに関して所与の値が決定されることに基づいて、対応する値のうちの所与の値を含み、所与のインスタンスは、所与のユーザからのいかなるさらなるユーザ入力も要求することなくレンダリングされる。
【0129】
一部の実装において、支援された通話を継続するステップは、さらなるユーザのさらなる発言がさらなる閾値の継続時間内に受け取られるかどうかを判定するために、さらなるオーディオデータを処理することと、さらなる発言がさらなる閾値の継続時間内にさらなるユーザから受け取られないとの判定に応じて、支援された通話中に、合成音声の1つまたは複数のインスタンスのうち、さらなるユーザによって要求されなかった対応する値のうちの1つまたは複数に基づく別のインスタンスをレンダリングすることとを含む。
【0130】
一部の実装において、方法は、さらなるパラメータに関連する情報がさらなるユーザによって要求されるとの判定に応じて、エンティティに関連付けて記憶された1つまたは複数の候補パラメータを、さらなるパラメータを含むように更新するステップをさらに含む。
【0131】
一部の実装において、方法は、さらなるパラメータに関連する情報がさらなるユーザによって要求されるときにクライアントデバイスの状態を決定するステップと、クライアントデバイスの状態に基づいて、通知および/または通知をレンダリングするための1つもしくは複数のプロパティを決定するステップとをさらに含む。
【0132】
それらの実装のいくつかのバージョンにおいて、クライアントデバイスの状態は、所与のユーザが支援された通話を能動的に監視していることを示し、クライアントデバイスの状態に基づいて通知を決定するステップは、所与のユーザが支援された通話を能動的に監視していることを示すクライアントデバイスの状態に基づいて、1つまたは複数の選択可能なグラフィカル要素と一緒にクライアントデバイスのディスプレイによって視覚的にレンダリングされる視覚的な構成要素を含むように通知を決定することを含む。それらの実装のいくつかのさらなるバージョンにおいて、通知に応じるさらなるユーザ入力は、1つまたは複数の選択可能なグラフィカル要素のうちの所与の1つの選択を含む。
【0133】
それらの実装のいくつかのバージョンにおいて、クライアントデバイスの状態は、所与のユーザが支援された通話を能動的に監視していないことを示し、クライアントデバイスの状態に基づいて通知を決定するステップは、所与のユーザが支援された通話を能動的に監視していないことを示すクライアントデバイスの状態に基づいて、クライアントデバイスの1つまたは複数のスピーカによって聴覚的にレンダリングされる聴覚的構成要素を含むように通知を決定することを含む。
【0134】
一部の実装において、方法は、支援された通話を終了させるステップと、支援された通話を終了させた後、クライアントデバイスに、支援された通話の結果のインジケーションを含むさらなる通知をレンダリングさせるステップとをさらに含む。それらの実装のいくつかのバージョンにおいて、支援された通話のインジケーションを含むさらなる通知は、支援された通話の終了に応じてユーザの代理として実行されるさらなるタスクのインジケーションを含むか、または選択されると、クライアントデバイスにユーザの代理としてさらなるタスクを実行させる1つもしくは複数の選択可能なグラフィカル要素を含む。
【0135】
一部の実装において、方法は、さらなるユーザ入力が閾値の継続時間内に受け取られないとの判定に応じて、支援された通話を終了させるステップと、支援された通話を終了させた後、クライアントデバイスに、支援された通話の結果のインジケーションを含むさらなる通知をレンダリングさせるステップとをさらに含む。
【0136】
一部の実装において、閾値の継続時間は、さらなるパラメータを特定し、情報に関するさらなるユーザ入力を要求する通知がレンダリングされるときからの固定の継続時間、または対応する値のうちの1つもしくは複数の最後の1つがさらなるクライアントデバイスを介してさらなるユーザに提示するためにレンダリングされるときに基づく動的な持続時間である。
【0137】
いくつかの実装では、方法は、支援された通話を開始した後、エンティティに関連するさらなるユーザから、支援された通話を監視することへの同意を得るステップをさらに含む。
【0138】
一部の実装においては、1つまたは複数のプロセッサによって実施される方法が、提供され、クライアントデバイスにおいて、クライアントデバイスの所与のユーザとさらなるクライアントデバイスのさらなるユーザとの間の進行中の通話を検出するステップ、進行中の通話中の少なくとも1つの発話された発言をキャプチャするオーディオデータのストリームを処理して、認識されたテキストを生成するステップを含む。少なくとも1つの発話された発言は、所与のユーザまたはさらなるユーザのものである。方法は、認識されたテキストを処理することに基づいて、少なくとも1つの発話された発言がパラメータの情報を要求することを特定するステップと、パラメータに関して、所与のユーザの個人的なアクセス制限されたデータを使用して、パラメータの値が解決可能であると判定するステップとをさらに含む。方法は、値が解決可能であるとの判定に応じて、進行中の通話中に、値に基づく出力をレンダリングするステップをさらに含む。
【0139】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、任意で、以下の特徴のうちの1つまたは複数を含み得る。
【0140】
一部の実装において、方法は、パラメータの値を解決するステップをさらに含む。それらの実装のいくつかのバージョンにおいて、進行中の通話中に出力をレンダリングするステップは、さらに、パラメータの値の解決に応じる。それらの実装のいくつかのさらなるバージョンにおいて、パラメータの値を解決するステップは、所与のユーザとさらなるユーザとの間の進行中の通話のメタデータを分析することと、分析に基づいて、さらなるユーザに関連するエンティティを特定することと、値がエンティティおよびパラメータに関連付けて記憶されていることに基づいて、値を解決することとを含む。
【0141】
一部の実装において、出力は、合成音声を含み、進行中の通話中に、値に基づく出力をレンダリングするステップは、合成音声を進行中の通話の一部としてレンダリングすることを含む。それらの実装のいくつかのバージョンにおいて、方法は、合成音声を進行中の通話の一部としてレンダリングする前に、所与のユーザから、進行中の通話中に支援を作動させるためのユーザ入力を受け取るステップをさらに含む。それらの実装のいくつかのバージョンにおいて、合成音声を進行中の通話の一部としてレンダリングすることは、さらに、支援を作動させるためのユーザ入力の受け取りに応じる。
【0142】
一部の実装において、出力は、クライアントデバイスにおいて、進行中の通話外でレンダリングされる通知を含む。それらの実装のいくつかのバージョンにおいて、出力は、進行中の通話の一部としてレンダリングされる合成音声をさらに含み、方法は、通知をレンダリングした後に、通知に応じた肯定的なユーザ入力の受け取りに応じて、合成音声をレンダリングするステップをさらに含む。
【0143】
一部の実装において、方法は、パラメータの情報を要求する少なくとも1つの発話された発言の後、閾値の継続時間の間、オーディオデータのストリームを処理することに基づいて、所与のユーザの、閾値の継続時間内に受け取られた任意のさらなる発話された発言が値を含むかどうかを判定するステップをさらに含む。それらの実装のいくつかのバージョンにおいて、出力を提供することは、所与のユーザの、閾値の継続時間内に受け取られたさらなる発話された発言が値を含まないと判定することを条件とする。
【0144】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU))、グラフィックス処理ユニット(GPU)、および/またはテンソルプロセッシングユニット(TPU)を含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、上述の方法のいずれかの実行を引き起こすように構成される。一部の実装は、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得るコンピュータ命令を記憶する1つまたは複数の非一時的コンピュータ可読ストレージ媒体も含む。一部の実装は、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得る命令を含むコンピュータプログラム製品も含む。
【0145】
上述の概念および本明細書においてより詳細に説明された追加の概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【符号の説明】
【0146】
110 クライアントデバイス
111 ユーザ入力エンジン
112 デバイス状態エンジン
113 レンダリングエンジン
114 スケジューリングエンジン
115 自動アシスタント
120A1 音声認識エンジン
120A2 音声認識エンジン
130A1 NLUエンジン
130A2 NLUエンジン
140A1 音声合成エンジン
140A2 音声合成エンジン
150 支援された通話エンジン
151 エンティティ特定エンジン
151A エンティティデータベース
152 タスク決定エンジン
153 パラメータエンジン
153A パラメータデータベース
153B ユーザプロファイルデータベース
154 タスク実行エンジン
155 フィードバックエンジン
156 推薦エンジン
180 支援された通話システム
190 ネットワーク
200 方法
410 クライアントデバイス
411 URL
420 第1の検索結果
421 通話グラフィカル要素
422 道順グラフィカル要素
423 メニューグラフィカル要素
430 第2の検索結果
431 通話グラフィカル要素
432 道順グラフィカル要素
433 メニューグラフィカル要素
441B 編集グラフィカル要素
441C 終了通話グラフィカル要素
442B キャンセルグラフィカル要素
442C 通話参加グラフィカル要素
443B 通話インターフェース要素
443C スピーカインターフェース要素
452B1 プロンプト
452B2 プロンプト
452C1 合成音声
452C3 合成音声
452D1 合成音声
452D2 合成音声
454B1 ユーザ入力
454C3 合成音声
456C1 オーディオデータ
456C2 オーディオデータ
456D1 オーディオデータ
456D2 オーディオデータ
470 通話詳細インターフェース
471 第1のグラフィカル要素
471A 第1の下位要素
471B 第2の下位要素
471C 第3の下位要素
472 第2のグラフィカル要素
473 第3のグラフィカル要素
474 名前パラメータ
474A 値
475 電話番号パラメータ
475A 値
476 日付/時間パラメータ
476A 値
477 人数パラメータ
値 477A
478 座席の種類パラメータ
478A 値
479 通知
479A 第1の提案
479B 第2の提案
480 グラフィカルユーザインターフェース
481 システムインターフェース要素
482 システムインターフェース要素
483 システムインターフェース要素
484 テキスト応答インターフェース要素
485 音声応答インターフェース要素
486 通話詳細インターフェース要素
510 クライアントデバイス
542 グラフィカル要素
543 グラフィカル要素
552A1 オーディオデータ
552A2 オーディオデータ
552B1 オーディオデータ
552B2 オーディオデータ
552C1 オーディオデータ
552C2 オーディオデータ
554A1 オーディオデータ
554A2 オーディオデータ
554B1 オーディオデータ
554C1 オーディオデータ
556A1 合成音声
556B1 合成音声
556C1 合成音声
570 通話詳細インターフェース
579 通知
579A グラフィカル要素
580 グラフィカルユーザインターフェース
581 システムインターフェース要素
582 システムインターフェース要素
583 システムインターフェース要素
584 テキスト応答インターフェース要素
585 音声応答インターフェース要素
586 通話詳細インターフェース要素
610 コンピューティングデバイス
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 ストレージサブシステム
625 メモリサブシステム
626 ファイルストレージサブシステム
630 主ランダムアクセスメモリ(RAM)
632 読み出し専用メモリ(ROM)