(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-11
(45)【発行日】2024-09-20
(54)【発明の名称】自動アシスタントに関する自然な会話を可能にすること
(51)【国際特許分類】
G10L 15/22 20060101AFI20240912BHJP
G10L 15/10 20060101ALI20240912BHJP
G10L 15/02 20060101ALI20240912BHJP
G10L 13/00 20060101ALI20240912BHJP
【FI】
G10L15/22 300Z
G10L15/10 500T
G10L15/02 300K
G10L13/00 100M
(21)【出願番号】P 2023518288
(86)(22)【出願日】2021-12-01
(86)【国際出願番号】 US2021061466
(87)【国際公開番号】W WO2022245393
(87)【国際公開日】2022-11-24
【審査請求日】2023-05-11
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-11-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジョセフ・スマール
(72)【発明者】
【氏名】デイヴィッド・アイゼンバーグ
(72)【発明者】
【氏名】ヒューゴ・サントス
(72)【発明者】
【氏名】デイヴィッド・エルソン
【審査官】大野 弘
(56)【参考文献】
【文献】特開2018-087847(JP,A)
【文献】特開2018-040897(JP,A)
【文献】特開2002-287793(JP,A)
【文献】特表2019-535037(JP,A)
【文献】特開2017-021125(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/22
G10L 15/10
G10L 15/02
G10L 13/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
自動音声認識(ASR)モデルを使用して、ASR出力のストリームを生成するためにオーディオデータのストリームを処理するステップであって、前記オーディオデータのストリームがクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記オーディオデータのストリームが、前記クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントに向けられたユーザの1つまたは複数の発話をキャプチャする、ステップと、
自然言語理解(NLU)モデルを使用して、NLUデータのストリームを生成するために前記ASR出力のストリームを処理するステップと、
前記NLUデータのストリームに基づいて、フルフィルメントデータのストリームを生成するステップと、
前記オーディオデータのストリームを処理することに基づいて、前記発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴を決定するステップと、
前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴の現在の状態に基づいて、実施されるべき次の対話状態が、
(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、
(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせるか、または
(iii)いかなる対話を実施させることも控える
のいずれであるかを決定するステップ
であって、
分類機械学習(ML)モデルを使用して、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させること、(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせること、および(iii)いかなる対話を実施させることも控えることの各々に関連付けられた対応する予測応答測定値を生成するために、前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記オーディオベースの特徴の前記現在の状態を処理するステップと、
前記対応する予測応答測定値に基づいて、実施されるべき前記次の対話状態が、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定するステップと、を含む、前記実施されるべき次の対話状態を決定するステップと、
前記次の対話状態を実施させるステップと
を含む、方法。
【請求項2】
前記フルフィルメントデータのストリームに基づいて、フルフィルメント出力のセットを決定するステップと、
前記NLUデータのストリームに関連付けられた予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた予測フルフィルメント測定値に基づいて、前記フルフィルメント出力のセットの中から前記フルフィルメント出力を選択するステップと
をさらに含む、請求項
1に記載の方法。
【請求項3】
前記フルフィルメント出力のセットの中から前記フルフィルメント出力を選択するステップが、実施されるべき前記次の対話状態が、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させることであると決定するステップに応答し、前記NLUデータのストリームに関連付けられた前記予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた前記予測されるフルフィルメント測定値に基づいて、前記フルフィルメント出力のセットの中から前記フルフィルメント出力を選択するステップが、
前記NLUデータのストリームに関連付けられた前記予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた前記予測されるフルフィルメント測定値が、第1のしきい値測定値と第2のしきい値測定値の両方を満たすと判定したことに応答して、前記フルフィルメント出力のセットの中から第1のフルフィルメント出力を前記フルフィルメント出力として選択するステップを含む、
請求項
2に記載の方法。
【請求項4】
前記NLUデータのストリームに関連付けられた前記予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた前記予測されるフルフィルメント測定値に基づいて、前記フルフィルメント出力のセットの中から前記フルフィルメント出力を選択するステップが、
前記NLUデータのストリームに関連付けられた前記予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた前記予測されるフルフィルメント測定値が、前記第1のしきい値測定値を満たすが、前記第2のしきい値測定値を満たさないと判定したことに応答して、前記フルフィルメント出力のセットの中から第2のフルフィルメント出力を前記フルフィルメント出力として選択するステップをさらに含み、
前記第2のフルフィルメント出力が、前記第1のフルフィルメント出力とは異なる、
請求項
3に記載の方法。
【請求項5】
前記NLUデータのストリームに関連付けられた前記予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた前記予測されるフルフィルメント測定値に基づいて、前記フルフィルメント出力のセットの中から前記フルフィルメント出力を選択するステップが、
前記NLUデータのストリームに関連付けられた前記予測されるNLU測定値および/または前記フルフィルメントデータのストリームに関連付けられた前記予測されるフルフィルメント測定値が、前記第1のしきい値測定値と前記第2のしきい値測定値の両方を満たさないと判定したことに応答して、前記フルフィルメント出力のセットの中から第3のフルフィルメント出力を前記フルフィルメント出力として選択するステップをさらに含み、
前記第3のフルフィルメント出力が、前記第1のフルフィルメント出力と前記第2のフルフィルメント出力の両方と異なる、
請求項4に記載の方法。
【請求項6】
前記フルフィルメントデータのストリームに基づいて前記フルフィルメント出力のセットを決定するステップが、
複数のサードパーティエージェントを使用して、対応するファーストパーティフルフィルメント出力を生成するために前記フルフィルメントデータを処理するステップと、
前記対応するファーストパーティフルフィルメント出力を前記フルフィルメント出力のセットに組み込むステップと
を含む、
請求項
2から
5のいずれか一項に記載の方法。
【請求項7】
前記フルフィルメントデータのストリームに基づいて前記フルフィルメント出力のセットを決定するステップが、
1つまたは複数のネットワークを介して、前記クライアントデバイスから1つまたは複数のサードパーティシステムに前記フルフィルメントデータを送信するステップであって、前記1つまたは複数のサードパーティシステムに前記フルフィルメントデータを送信するステップが、対応するサードパーティフルフィルメント出力を生成するために、前記サードパーティシステムの各々に、対応するサードパーティエージェントを使用して、前記フルフィルメントデータを処理させる、ステップと、
前記ネットワークのうちの1つまたは複数を介して、前記クライアントデバイスにおいて、前記1つまたは複数のサードパーティシステムから前記対応するサードパーティフルフィルメント出力を受信するステップと、
複数のファーストパーティバーティカルを使用して生成された前記対応するサードパーティフルフィルメント出力を前記フルフィルメント出力のセットに組み込むステップと
をさらに含む、
請求項
6に記載の方法。
【請求項8】
前記フルフィルメントデータのストリームに基づいて生成された前記フルフィルメント出力に対応する任意の合成音声を前記クライアントデバイスの1つまたは複数のスピーカを介して聴覚的にレンダリングさせる前に、
前記フルフィルメント出力のセット内の前記フルフィルメント出力のうちの1つまたは複数について、部分的なフルフィルメントを開始するステップであって、前記部分的なフルフィルメントが、前記フルフィルメント出力のセット内の前記フルフィルメント出力の各々に固有である、ステップを
さらに含む、請求項
2から
7のいずれか一項に記載の方法。
【請求項9】
前記フルフィルメント出力が、
前記クライアントデバイスの1つまたは複数のスピーカのうちの1つもしくは複数を介して前記ユーザに提示するために聴覚的にレンダリングされるべき前記フルフィルメント出力に対応する合成音声を含む合成音声オーディオデータ、
前記クライアントデバイスもしくは前記クライアントデバイスと通信する追加のクライアントデバイスのディスプレイを介して前記ユーザに提示するために視覚的にレンダリングされるべき前記フルフィルメント出力に対応するグラフィカルコンテンツ、または
実行されると、前記自動アシスタントに前記クライアントデバイスもしくは前記クライアントデバイスと通信する追加のクライアントデバイスを制御させる、前記フルフィルメント出力に対応するアシスタントコマンド
のうちの1つまたは複数を含む、
請求項1から
8のいずれか一項に記載の方法。
【請求項10】
前記クライアントデバイスによってアクセス可能な1つまたは複数のデータベースにおいて、自然な会話出力のセットを維持するステップと、
少なくとも前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴に基づいて、前記自然な会話出力のセットの中から前記自然な会話出力を選択するステップと
をさらに含む、請求項1から
9のいずれか一項に記載の方法。
【請求項11】
前記自然な会話出力のセットの中から前記自然な会話出力を選択するステップが、実施されるべき前記次の対話状態が(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせることであると決定することに応答し、前記自然な会話出力のセットの中から前記自然な会話出力を選択するステップが、
前記NLUデータに関連付けられた予測測定値と、前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴とに基づいて、前記自然な会話出力のセットの中から第1の自然な会話出力を前記自然な会話出力として選択するステップを含む、
請求項
10に記載の方法。
【請求項12】
前記自然な会話出力のセットの中から前記自然な会話出力を選択するステップが、
前記NLUデータに関連付けられた前記予測測定値と、前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴とに基づいて、前記自然な会話出力のセットの中から第2の自然な会話出力を前記自然な会話出力として選択するステップをさらに含み、
前記第2の自然な会話出力が、前記第1の自然な会話出力とは異なる、
請求項
11に記載の方法。
【請求項13】
実施されるべき前記次の対話状態が(iii)いかなる対話を実施させることも控えることであると決定したことに応答して、
音声活動検出モデルを使用して、音声活動の発生を監視するために前記オーディオデータのストリームを処理するステップと、
前記音声活動の発生を検出したことに応答して、
前記音声活動の発生が前記自動アシスタントに向けられているかどうかを判定するステップと
をさらに含む、請求項1から
12のいずれか一項に記載の方法。
【請求項14】
前記音声活動の発生が前記自動アシスタントに向けられているかどうかを判定するステップが、
前記ASRモデルを使用して、前記ASR出力のストリームを生成し続けるために、前記オーディオデータのストリームを処理するステップと、
前記NLUモデルを使用して、前記NLUデータのストリームを生成し続けるために、前記ASR出力のストリームを処理するステップと、
前記NLUデータのストリームに基づいて、前記音声活動の発生が前記自動アシスタントに向けられているかどうかを判定するステップと
を含む、
請求項
13に記載の方法。
【請求項15】
前記音声活動の発生が前記自動アシスタントに向けられていると決定したことに応答して、
前記NLUデータのストリームに基づいて、前記フルフィルメントデータのストリームを生成し続けるステップと、
前記フルフィルメントデータのストリームに基づいて、前記フルフィルメント出力が選択されるフルフィルメント出力のセットを更新するステップと
をさらに含む、請求項
14に記載の方法。
【請求項16】
前記音声活動の発生が前記自動アシスタントに向けられていないと決定したことに応答して、
前記ユーザが前記1つまたは複数の発話を提供してからしきい値持続時間が経過したかどうかを判定するステップと、
前記ユーザが前記1つまたは複数の発話を提供してから前記しきい値持続時間が経過したと判定したことに応答して、
実施されるべき前記次の対話状態が(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせることであると決定するステップと
をさらに含む、請求項
14または
15に記載の方法。
【請求項17】
前記クライアントデバイスの1つまたは複数のスピーカのうちの1つまたは複数を介して前記ユーザに提示するために聴覚的にレンダリングされるべき前記自然な会話出力が、
前記自動アシスタントと対話し続けるかどうかの希望の指示、または
前記ユーザと前記自動アシスタントとの間のダイアログセッションの促進のために前記ユーザが追加のユーザ入力を提供することの要求
のうちの1つまたは複数を含む、
請求項
16に記載の方法。
【請求項18】
前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴が、
前記1つまたは複数の発話の各々に関連付けられた1つもしくは複数の韻律特性であって、前記1つもしくは複数の韻律特性が、イントネーション、トーン、ストレス、リズム、テンポ、ピッチ、および休止のうちの1つまたは複数を含む、1つまたは複数の韻律特性、または
前記ユーザが前記1つもしくは複数の発話のうちの最新の発話を提供してから経過した持続時間
のうちの1つまたは複数を含む、
請求項1から
17のいずれか一項に記載の方法。
【請求項19】
前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴の前記現在の状態が、前記1つまたは複数の発話のうちの最新の発話に基づいて生成された前記NLUデータの最新のインスタンスと、前記最新のNLUデータに基づいて生成された前記フルフィルメントデータの最新のインスタンスと、前記最新の発話に基づいて生成された前記オーディオベースの特徴の最新のインスタンスとを含む、請求項1から
18のいずれか一項に記載の方法。
【請求項20】
前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴の前記現在の状態が、前記最新の発話に先行する1つまたは複数の過去の発話に基づいて生成された前記NLUデータの1つまたは複数の履歴インスタンスと、前記NLUデータの前記1つまたは複数の履歴インスタンスに基づいて生成された前記フルフィルメントデータの1つまたは複数の履歴インスタンスと、前記1つまたは複数の過去の発話に基づいて生成された前記オーディオベースの特徴の1つまたは複数の履歴インスタンスとをさらに含む、請求項
19に記載の方法。
【請求項21】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
自動音声認識(ASR)モデルを使用して、ASR出力のストリームを処理するステップであって、オーディオデータのストリームがクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記オーディオデータのストリームが、前記クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントに向けられたユーザの1つまたは複数の発話をキャプチャする、ステップと、
自然言語理解(NLU)モデルを使用して、NLUデータのストリームを生成するために前記ASR出力のストリームを処理するステップと、
前記NLUデータのストリームに基づいて、フルフィルメントデータのストリームを生成するステップと、
前記オーディオデータのストリームを処理することに基づいて、前記発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴を決定するステップと、
前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴の現在の状態に基づいて、(i)いつ合成音声を含む合成音声オーディオデータを前記ユーザに提示するために聴覚的にレンダリングさせるか、および(ii)なにを前記合成音声内に含めるかを決定するステップ
であって、該決定するステップが、
分類機械学習(ML)モデルを使用して、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させること、(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせること、および(iii)いかなる対話を実施させることも控えることの各々に関連付けられた対応する予測応答測定値を生成するために、前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記オーディオベースの特徴の前記現在の状態を処理するステップと、
前記対応する予測応答測定値に基づいて、実施されるべき次の対話状態が、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定するステップと,
により決定するステップと、を含む、ステップと、
前記合成音声オーディオデータを前記ユーザに提示するために聴覚的にレンダリングさせると決定したことに応答して、
前記クライアントデバイスの1つまたは複数のスピーカを介して前記合成音声オーディオデータを聴覚的にレンダリングさせるステップと、
前記合成音声オーディオデータを前記ユーザに提示するために聴覚的にレンダリングさせないと決定したことに応答して、
前記クライアントデバイスの1つまたは複数のスピーカを介して前記合成音声オーディオデータを聴覚的にレンダリングさせることを控えるステップと
を含む、
方法。
【請求項22】
少なくとも1つのプロセッサと、
実行されると、前記少なくとも1つのプロセッサに、
自動音声認識(ASR)モデルを使用して、ASR出力のストリームを生成するためにオーディオデータのストリームを処理することであって、前記オーディオデータのストリームがクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、前記オーディオデータのストリームが、前記クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントに向けられたユーザの1つまたは複数の発話をキャプチャする、処理することと、
自然言語理解(NLU)モデルを使用して、NLUデータのストリームを生成するために前記ASR出力のストリームを処理することと、
前記NLUデータのストリームに基づいて、フルフィルメントデータのストリームを生成することと、
前記オーディオデータのストリームを処理することに基づいて、前記発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴を決定することと、
前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記発話のうちの1つまたは複数に関連付けられた前記オーディオベースの特徴の現在の状態に基づいて、実施されるべき次の対話状態が、
(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させること、
(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせること、または
(iii)いかなる対話を実施させることも控えること
のいずれであるかを決定することと
であって、
分類機械学習(ML)モデルを使用して、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させること、(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせること、および(iii)いかなる対話を実施させることも控えることの各々に関連付けられた対応する予測応答測定値を生成するために、前記NLUデータのストリーム、前記フルフィルメントデータのストリーム、および前記オーディオベースの特徴の前記現在の状態を処理することと、
前記対応する予測応答測定値に基づいて、実施されるべき前記次の対話状態が、(i)前記フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、(ii)自然な会話出力を前記ユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定することと、を備える、前記実施されるべき次の対話状態を決定することと、
前記次の対話状態を実施させることと
を実行させる命令を記憶するメモリと
を備えるシステム。
【請求項23】
少なくとも1つのプロセッサと、
実行されると、前記少なくとも1つのプロセッサに請求項1から
21のいずれか一項に対応する動作を実行させる
コンピュータプログラムを記憶するメモリと
を備えるシステム。
【請求項24】
実行されると、少なくとも1つのプロセッサに請求項1から
21のいずれか一項に対応する動作を実行させる
コンピュータプログラムを記憶する非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
自動アシスタントに関する自然な会話を可能にすることに関する。
【背景技術】
【0002】
人間は、本明細書では「自動アシスタント」と呼ばれる(「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナル音声アシスタント」、「会話型エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションとの人間対コンピュータのダイアログに参加し得る。自動アシスタントは、典型的には、発話の解釈および応答において、構成要素のパイプラインに依存する。例えば、自動音声認識(ASR)エンジンは、発話の音声仮説(すなわち、用語および/または他のトークンのシーケンス)などのASR出力を生成するために、ユーザの発話に対応するオーディオデータを処理することができる。さらに、自然言語理解(NLU)エンジンは、発話(またはタッチ/タイプ入力)を提供する際のユーザの意図、およびオプションで意図に関連付けられたパラメータのスロット値などのNLU出力を生成するために、ASR出力(またはタッチ/タイプ入力)を処理することができる。さらに、NLU出力を処理し、発話に対する応答内容を取得するおよび/または発話に応答するアクションを実行するための構造化された要求などのフルフィルメント出力を生成するために、フルフィルメントエンジンが使用され得る。
【0003】
一般に、自動アシスタントとのダイアログセッションは、ユーザが発話を提供することによって開始され、自動アシスタントは、応答を生成するために前述の構成要素のパイプラインを使用して発話に応答することができる。ユーザは、追加の発話を提供することによってダイアログセッションを続けることができ、自動アシスタントは、追加応答を生成するために前述の構成要素のパイプラインを使用して追加の発話に応答することができる。別の言い方をすれば、これらのダイアログセッションは、一般に、ユーザが発話を提供するためにダイアログセッションを引き受け、自動アシスタントが発話に応答するためにダイアログセッションを引き受けるという点でターン制である。しかしながら、これらのターン制ダイアログセッションは、ユーザの観点からは、人間が実際に互いにどのように会話するかを反映していないので、自然ではない場合がある。
【0004】
例えば、第1の人間は、単一の考えを第2の人間に伝えるために、複数の異なる発話を提供する場合があり、第2の人間は、第1の人間への応答を考案するために、複数の異なる発話の各々を考慮する可能性がある。場合によっては、第1の人間は、これらの複数の異なる発話の間に様々な時間量の間休止する場合がある。特に、第2の人間は、単に、複数の異なる発話のうちの第1の発話に基づいて、または分離した複数の発話の各々に基づいて、第1の人間への応答を完全には考案することができない場合がある。
【0005】
同様に、これらのターン制ダイアログセッションにおいて、自動アシスタントは、複数の異なる発話に関する所与の発話のコンテキストを考慮することなく、ユーザの所与の発話への応答を完全には考案することができない場合がある。結果として、これらのターン制ダイアログセッションは、ユーザがこれらのターン制ダイアログセッションの単一のターン中に単一の発話において自動アシスタントにユーザの考えを伝えようとするので、長引く可能性があり、それによって計算リソースを浪費する。さらに、ユーザが、これらのターン制ダイアログセッションの単一のターン中に複数の発話において自動アシスタントにユーザの考えを伝えようとする場合、自動アシスタントは、単純に失敗する場合があり、それによっても計算リソースを浪費する。例えば、自動アシスタントは、ユーザが発話を考案することを試みる際に長い一時停止をもたらすと、ユーザが話し終わったと早まって結論付け、不完全な発話を処理し、不完全な発話によって意味のある意図が伝えられていないと(処理から)判定した結果として失敗する場合がある。それに加えて、ターン制ダイアログセッションは、アシスタント応答のレンダリング中に提供されたユーザの発話が意味あるように処理されるのを妨げる可能性ある。これは、発話を提供する前にアシスタント応答のレンダリングの完了を待つことをユーザに要求する可能性があり、それによってダイアログセッションを長引かせる。
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書で説明する実装形態は、ダイアログセッション中に自動アシスタントがユーザと自然な会話を実行することを可能にすることに向けられている。いくつかの実装形態は、ストリーミング自動音声認識(ASR)モデルを使用して、ASR出力のストリームを生成するため、にユーザのクライアントのマイクロフォンによって生成されたオーディオデータのストリームを処理することができる。オーディオデータのストリームは、クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントに向けられた、ユーザの1つまたは複数の発話をキャプチャすることができる。さらに、ASR出力は、自然言語理解(NLU)出力のストリームを生成するために、NLUモデルを使用して処理されることが可能である。さらに、NLU出力は、フルフィルメントデータのストリームを生成するために、1つもしくは複数のフルフィルメントルールおよび/または1つもしくは複数のフルフィルメントモデルを使用して処理されることが可能である。それに加えて、オーディオデータのストリームを処理することに基づいて、発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴が決定されることが可能である。NLU出力のストリーム、フルフィルメントデータのストリーム、および/またはオーディオベースの特徴の現在の状態に基づいて、ダイアログセッション中に実施されるべき次の対話状態が決定されることが可能である。ダイアログセッション中に実施されるべき次の対話状態は、(i)フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させること、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせること、または(iii)いかなる対話を実施させることも控えることのいずれか1つであることが可能である。次の対話状態は、ダイアログセッションの促進のために実装されることが可能である。さらに、次の対話状態を決定することは、各反復がNLU出力、フルフィルメントデータ、およびオーディオベースの特徴のそれぞれの現在の状態に基づいて、ユーザまたは自動アシスタントの応答の完了を待つことなく、ダイアログセッション中に反復的に(例えば、10Hz、20Hz、または他の周波数において継続的に)発生することができる。したがって、ダイアログセッション中に本明細書で説明する技法を使用して次の対話状態を決定することによって、自動アシスタントは、ターン制ダイアログセッションのように、ユーザが発話を提供した後に単にユーザに応答するのではなく、次の対話状態を実施するかどうかと、ダイアログセッションの促進のために次の対話状態をどのように実施するかとを決定することができる。
【0007】
例えば、ユーザが自動アシスタントとのダイアログセッションに参加しており、「...をオンにして、うーん...(turn on the... the uhmmm...)」という発話を提供したと仮定する。ユーザが発話を提供すると、ASR出力のストリーム、NLU出力のストリーム、およびフルフィルメントデータのストリームは、発話をキャプチャするオーディオデータのストリームを処理することに基づいて生成されることが可能である。特に、この例において、NLU出力のストリームは、ユーザがなんらかのソフトウェアアプリケーション(例えば、音楽ソフトウェアアプリケーション、ビデオソフトウェアアプリケーションなど)またはなんらかのデバイス(例えば、クライアントデバイス、スマート家電、スマートテレビ、スマートスピーカなど)を制御させようと意図しているが、ユーザが正確になにが「オンにして(turn on)」によって意図されているかをまだ特定していないことを示す場合がある。それにもかかわらず、フルフィルメントデータのストリームは、フルフィルメント出力のセットを生成するために処理されることが可能である。さらに、発話に関連付けられたオーディオベースの特徴は、オーディオデータのストリームを処理することに基づいて生成されることが可能であり、例えば、ユーザが正確になにが「オンにして」によって意図されているかわからないことを示すイントネーションおよび話す調子、「オンにして」と「うーん(the uhmmm)」との間に経過した持続時間、「うーん」から経過した持続時間、ならびに/または他のオーディオベースの特徴を含むことができる。さらに、NLU出力のストリームおよびオーディオベースの特徴は、自然な会話出力のセットを生成するために処理されることが可能である。
【0008】
この例において、NLU出力のストリーム、フルフィルメントデータのストリーム、および/または発話に関連付けられたオーディオベースの特徴の現在の状態は、決定されることが可能である。例えば、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴は、予測測定値(例えば、バイナリ値、確率、対数尤度など)を生成するために、分類機械学習(ML)モデルを使用して処理されることが可能である。次の対話状態の各々は、自動アシスタントが、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定することができるように、予測測定値のうちの対応する1つに関連付けられることが可能である。この例において、自動アシスタントが(i)フルフィルメント出力を実施させると決定した場合、自動アシスタントは、複数のフルフィルメント出力の中からフルフィルメント出力を選択し、それを実施させることができる(例えば、テレビをつけること、照明をつけること、音楽をかけることなどに関連付けられたアシスタントコマンド)。さらに、自動アシスタントが(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせると決定した場合、自動アシスタントは、複数の自然な会話出力の中から自然な会話出力を選択し、それを聴覚的にレンダリングさせることができる(例えば、「なにをオンにして欲しいですか(What would you like me to turn on?)」、「まだそこにいますか(Are you still there?)」など)。さらに、自動アシスタントが(iii)いかなる対話を実施させることも控えると決定した場合、自動アシスタントは、オーディオデータのストリームを処理し続けることができる。
【0009】
この例において、ダイアログセッションの現在の時点が、ユーザが「...をオンにして、うーん...(turn on the... the uhmmm...)」という発話の「うーん(the uhmmm)」という部分を提供し終わった2秒後に対応するとさらに仮定する。現在の時点について、次の対話状態に関連付けられた、対応する予測測定値が、自動アシスタントがいかなる対話を実施させることも控えるべきであることを示す場合がある。別の言い方をすれば、ユーザが一時的に話し終わってように見えても、自動アシスタントは、十分な確信を持って実施するフルフィルメント出力を決定しておらず、ユーザが自分の考えをまとめて、ユーザがオンにすることを意図しているものが正確になんであるかを特定するための追加の時間を提供すべきである。しかしながら、追加の5秒が経過するとさらに仮定する。この後続の時点において、オーディオベースの特徴は、ユーザが最後に話してから7秒が経過したことを示す場合があり、現在の状態は、オーディオベースの特徴に少なくとも部分的に基づいて更新されることが可能である。したがって、この後続の時点について、次の対話状態に関連付けられた対応する予測測定値は、ユーザをダイアログセッションに再参加させるために自動アシスタントが「なにをオンにして欲しいですか(What would you like me to turn on?)」という自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるべきであることを示す場合がある。別の言い方をすれば、ユーザが話し終え、自動アシスタントが十分な確信を持って実施するフルフィルメント出力をまだ決定していない場合であっても、自動アシスタントは、ダイアログセッションを推進させることと、ユーザが以前に示したユーザがすることを望んでいたこと(例えば、なにかをオンにする)に戻るようにすることとをユーザに促すことができる。さらに、ユーザが「ああ、テレビ(oh, the television)」という追加の発話を提供するとさらに仮定する。このさらに後続の時点において、データのストリームは、ユーザがテレビをオンにさせることを意図していることを示すように更新され得、現在の状態は、更新されたデータのストリームに基づいて更新されることが可能である。したがって、このさらに後続の時点について、次の対話状態に関連付けられた対応する予測測定値は、自動アシスタントがテレビをオンにさせる(オプションで、自動アシスタントがテレビをオンにさせることを示す合成音声を聴覚的にレンダリングさせる)べきであることを示してもよい。別の言い方をすれば、このさらに後続の時点において、自動アシスタントは、実施されるのに十分な確信を持ってフルフィルメント出力を決定している。
【0010】
いくつかの実装形態において、NLUデータのストリームは、フルフィルメントデータのストリームを生成するために複数のエージェントによって処理されることが可能である。フルフィルメント出力のセットは、フルフィルメントデータのストリームに基づいて生成されることが可能であり、フルフィルメント出力は、NLUデータのストリームに関連付けられた予測されるNLU測定値、および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、フルフィルメント出力のセットから選択されることが可能である。いくつかの実装形態では、1つのフルフィルメント出力のみが次の対話状態として実装されてもよいが、他の実装形態では、複数のフルフィルメント出力が次の対話状態として実装されてもよい。本明細書で使用される「ファーストパーティ」(1P)エージェント、デバイス、および/またはシステムは、本明細書で参照する自動アシスタントを制御する当事者と同じ当事者によって制御されるエージェント、デバイス、および/またはシステムを指す。対照的に、「サードパーティ」(3P)エージェント、デバイス、および/またはシステムは、本明細書で参照される自動アシスタントを制御する当事者とは異なるが、1つまたは複数の1Pエージェント、デバイス、および/またはシステムに通信可能に結合されることが可能な当事者によって制御されるエージェント、デバイス、および/またはシステムを指す。
【0011】
それらの実装形態のいくつかの変形例において、複数のエージェントは、1つまたは複数の1Pエージェントを含む。上記の例を続けると、ダイアログセッションの現在の時点(例えば、ユーザが「...をオンにして、うーん...」という発話の「うーん」という部分を提供し終わった2秒後)において、フルフィルメントデータのストリームは、実施されると音楽をかけるアシスタントコマンドに関連付けられたフルフィルメント出力を生成するための1P音楽エージェント、実施されるとビデオストリーミングサービスをオンにさせるアシスタントコマンドに関連付けられたフルフィルメント出力を生成するための1Pビデオストリーミングサービスエージェント、実施されると1つまたは複数の1Pスマートデバイスを制御させるアシスタントコマンドに関連付けられたフルフィルメント出力を生成するための1Pスマートデバイスエージェントなどによって処理されることが可能である。この例において、フルフィルメントデータのストリームは、アプリケーションプログラミングインターフェース(API)を介して1Pエージェントに送信されることが可能である。それらの実装形態の追加または代替の変形例において、複数のエージェントは、1つまたは複数の3Pエージェントを含む。3Pエージェントによって生成されるフルフィルメント出力は、1Pエージェントによって生成されるものと類似していることが可能であるが、3Pエージェントによって生成される。この例において、フルフィルメントデータのストリームは、アプリケーションプログラミングインターフェース(API)を介し、1つまたは複数のネットワークを介して3Pエージェントに送信されることが可能であり、3Pエージェントは、フルフィルメント出力をクライアントデバイスに送信し戻すことができる。複数のエージェント(例えば、1Pエージェントおよび/または3Pエージェント)によって生成されたフルフィルメント出力の各々は、フルフィルメント出力のセットとして集約されることが可能である。
【0012】
上記の例について、アシスタントコマンドのフルフィルメント出力のセットに関して説明したが、これは、例のためのものであり、限定することを意味していないことが理解されるべきである。いくつかの実装形態において、フルフィルメント出力のセットは、追加的または代替的に、対応する合成音声を含み、クライアントデバイスのスピーカのうちの1つまたは複数を介してユーザに提示するために聴覚的にレンダリングされることが可能な合成音声オーディオデータのインスタンスを含むことができる。例えば、ユーザがダイアログセッション中に「15分のタイマを設定して(set a timer for 15 minutes)」という発話を代わりに提供したと仮定する。NLUデータのストリームに関連付けられた予測測定値および/またはフルフィルメントデータのストリームに関連付けられた予測測定値が、ユーザが15分または50分のいずれかを言ったことを示すとさらに仮定する。この例において、フルフィルメントデータのストリームは、15分のタイマを設定する第1のアシスタントコマンドに関連付けられた第1のフルフィルメント出力、50分のタイマを設定する第2のアシスタントコマンドに関連付けられた第2のフルフィルメント出力、実行されるべきアシスタントコマンドを確認する合成音声オーディオデータの第1のインスタンス(例えば、「タイマは、15分に設定されました(the timer is set for 15 minutes)」)に関連付けられた第3のフルフィルメント出力、ユーザが実行されるべきアシスタントコマンドの曖昧さをなくすことを要求する合成音声オーディオデータの第1のインスタンス(例えば、「そのタイマは、15分ですかまたは50分ですか(is that timer for 15 minutes or 50 minutes)」)に関連付けられた第4のフルフィルメント出力などを生成するために、1Pタイマエージェントによって処理されることが可能である。
【0013】
この例において、自動アシスタントは、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、実施されるべきフルフィルメント出力のセットの中からフルフィルメント出力のうちの1つまたは複数を選択することができる。例えば、予測測定値が第1のしきい値測定値と第2のしきい値測定値の両方を満たし、ユーザが「15分のタイマを設定して(set a timer for 15 minutes)」と言った非常に高い信頼度を示すと仮定する。この例において、自動アシスタントは、15分のタイマを設定する第1のアシスタントコマンドに関連付けられた第1のフルフィルメント出力を実施させることができ、合成音声の任意のインスタンスをユーザに提示するために聴覚的にレンダリングさせることはない。対照的に、予測測定値が第1のしきい値測定値を満たすが、第2のしきい値測定値を満たさず、ユーザが「15分のタイマを設定して」と言った中程度の信頼度を示すと仮定する。この例において、自動アシスタントは、15分のタイマを設定する第1のアシスタントコマンドに関連付けられた第1のフルフィルメント出力を実施させ、また、実行されるべきアシスタントコマンドを確認する合成音声オーディオデータの第1のインスタンス(例えば、「タイマは、15分に設定されました」)に関連付けられた第3のフルフィルメント出力を実施させることができる。これは、自動アシスタントが、正しくない場合、ユーザが修正する機会を提供する。しかしながら、予測測定値が第1のしきい値測定値と第2のしきい値測定値の両方を満たさず、ユーザが「タイマは、15分に設定して」と言った低い信頼度を示すと仮定する。この例において、自動アシスタントは、ユーザがアシスタントコマンドの曖昧さをなくすことを要求する合成音声オーディオデータの第1のインスタンス(例えば、「そのタイマは、15分ですかまたは50分ですか」)に関連付けられた第4のフルフィルメント出力を実行させることができ、自動アシスタントは、低い信頼度のため、任意のタイマを設定することを控えることができる。
【0014】
いくつかの実装形態において、フルフィルメント出力のセットは、追加的または代替的に、クライアントデバイスまたはクライアントデバイスと通信する追加のクライアントデバイスのディスプレイを介してユーザに提示するために視覚的にレンダリングされることが可能なグラフィカルコンテンツのインスタンスを含む。上記のタイマの例を続けると、フルフィルメントデータのストリームは、追加的または代替的に、15分に設定されたタイマを示す第1のグラフィカルコンテンツに関連付けられた第5のフルフィルメント出力と、50分に設定されたタイマを示す第2のグラフィカルコンテンツに関連付けられた第6のフルフィルメント出力とを生成するために、1Pタイマエージェントによって処理されることが可能である。同様に、自動アシスタントは、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、実施されるべきフルフィルメント出力のセットの中からフルフィルメント出力のうちの1つまたは複数を選択することができる。例えば、予測測定値が第1のしきい値測定値および/または第2のしきい値測定値を満たし、ユーザが「15分のタイマを設定して」と言った非常に高いおよび/または中程度の信頼度を示すと仮定する。この例において、自動アシスタントは、追加的または代替的に、15分に設定されたタイマのグラフィカル描写がユーザに提示するために視覚的にレンダリングされるように、15分に設定されたタイマを示す第1のグラフィカルコンテンツに関連付けられた第5のフルフィルメント出力を実施させることができる。対照的に、予測測定値が第1のしきい値測定値と第2のしきい値測定値の両方を満たさず、ユーザが「15分のタイマを設定して」と言った低い信頼度を示すと仮定する。この例において、自動アシスタントは、追加的または代替的に、15分に設定されたタイマのグラフィカル描写と50分に設定されたタイマの別のグラフィカル描写の両方がユーザに提示するために視覚的にレンダリングされるように、15分に設定されたタイマを示す第1のグラフィカルコンテンツに関連付けられた第5のフルフィルメント出力を実施させ、50分に設定されたタイマを示す第2のグラフィカルコンテンツに関連付けられた第6のフルフィルメント出力を実施させることができる。したがって、次の対話状態が、フルフィルメント出力が実施されるべきであることを示す場合であっても、フルフィルメント出力は、現在の状態に基づいて動的に決定されることが可能である。
【0015】
いくつかの実装形態において、自動アシスタントは、フルフィルメント出力を実施させる次の対話状態を決定する前に、フルフィルメント出力のセット内のフルフィルメント出力を部分的に履行させることができる。ユーザが「...をオンにして、うーん...」という発話を提供した最初の例に関して上述したように、複数のエージェントによって生成されたフルフィルメント出力のセットは、実施されると音楽をかけるアシスタントコマンドに関連付けられたフルフィルメント出力、実施されるとビデオストリーミングサービスをオンにさせるアシスタントコマンドに関連付けられたフルフィルメント出力、実施されると1つまたは複数の1Pスマートデバイスを制御させるアシスタントコマンドに関連付けられたフルフィルメント出力などを含むことができる。この例において、自動アシスタントは、自動アシスタントがソフトウェアアプリケーション(例えば、音楽アプリケーション、ビデオストリーミングアプリケーション)および/またはスマートデバイス(例えば、スマートテレビ、スマート家電など)に関して実行されるべきなんらかのアクションを実行することをユーザが要求するのを見越して、ソフトウェアアプリケーションおよび/またはスマートデバイスとの接続を先制して確立することができる。結果として、フルフィルメント出力を次の対話状態として実施させる際の待ち時間が短縮されることが可能である。
【0016】
いくつかの実装形態において、自然な会話出力のセットは、NLUデータのストリームに関連付けられたNLU測定値および/またはオーディオベースの特徴に基づいて生成されることが可能であり、自然な会話出力は、自然な会話出力のセットの中から選択されることが可能である。それらの実装形態のいくつかの変形例において、自然な会話出力のスーパーセットが、クライアントデバイスによってアクセス可能な1つまたは複数のデータベース内に記憶されることが可能であり、自然な会話出力のセットは、NLUデータのストリームに関連付けられたNLU測定値および/またはオーディオベースの特徴に基づいて、自然な会話出力のスーパーセットから生成されることが可能である。これらの自然な会話出力は、ダイアログセッションの促進のために次の対話状態として実装されることが可能であるが、必ずしもフルフィルメントとして実装される必要はない。例えば、自然な会話出力は、ユーザが自動アシスタントと対話し続けることを望む指示を確認することに対する要求(例えば、「まだそこにいますか」など)、ユーザがユーザと自動アシスタントとの間のダイアログセッションの促進のために追加のユーザ入力を提供することに対する要求(例えば、「なにをオンにしたかったのですか(What did you want to turn on?)」など)、フィラースピーチ(例えば、「確かに(Sure)」、「大丈夫(Alright)」など)を含むことができる。
【0017】
いくつかの実装形態において、実施されるべき次の対話状態が対話を実施させることを控えている場合であっても、オーディオデータのストリームは、ASR出力のストリーム、NLU出力のストリーム、および/またはフルフィルメントデータのストリームを更新するために、ASRモデルを使用して依然として処理されることが可能である。したがって、現在の状態は、次の対話状態を決定することがダイアログセッション中に反復的に発生することもできるように、反復的に更新されることが可能である。それらの実装形態のいくつかの変形例において、自動アシスタントは、追加的または代替的に、(例えば、ユーザが数秒間沈黙した後)音声活動の発生を監視するために、音声活動検出(VAD)モデルを使用してオーディオデータのストリームを処理することができる。これらの実装形態において、自動アシスタントは、検出された音声活動の発生が自動アシスタントに向けられているかどうかを判定することができる。例えば、NLUデータの更新されたストリームは、この検出された音声活動が自動アシスタントに向けられているかどうかを示すことができる。そうであれば、自動アシスタントは、フルフィルメントデータのストリームとフルフィルメント出力のセットとを更新し続けることができる。
【0018】
いくつかの実装形態において、NLU出力のストリーム、フルフィルメントデータのストリーム、オーディオベースの特徴の現在の状態は、1つまたは複数の発話のうちの最新の発話に基づいて生成されたNLU出力の最新のインスタンスと、最新のNLU出力に基づいて生成されたフルフィルメントデータの最新のインスタンスと、最新の発話に基づいて生成されたオーディオベースの特徴の最新のインスタンスとを含む。上記の例を続けると、ダイアログセッションの現在の時点(例えば、(例えば、ユーザが「...をオンにして、うーん...」という発話の「うーん」という部分を提供し終わった2秒後)において、現在の状態は、発話の「うーん」という部分に基づいて生成されたNLUデータ、フルフィルメントデータ、およびオーディオベースの特徴にのみ対応する場合がある。追加または代替の実装形態において、NLU出力のストリーム、フルフィルメントデータのストリーム、オーディオベースの特徴の現在の状態は、最新の発話に先行する1つまたは複数の過去の発話に基づいて生成されたNLU出力の1つまたは複数の履歴インスタンスと、NLU出力の1つまたは複数の履歴インスタンスに基づいて生成されたフルフィルメントデータの1つまたは複数の履歴インスタンスと、1つまたは複数の過去の発話に基づいて生成されたオーディオベースの特徴の1つまたは複数の履歴インスタンスとをさらに含む。上記の例を続けると、ダイアログセッションの現在の時点(例えば、(例えば、ユーザが「...をオンにして、うーん...」という発話の「うーん」という部分を提供し終わった2秒後)において、現在の状態は、発話の「うーん」という部分と、発話の「オンにして」という部分と、オプションで発話の「オンにして」という部分の前に発生した任意の発話とに基づいて生成されたNLUデータ、フルフィルメントデータ、およびオーディオベースの特徴にのみ対応する場合がある。
【0019】
本明細書で説明する技法を使用することによって、1つまたは複数の技法的利点が達成されることが可能である。1つの非限定的な例として、本明細書で説明する技法は、自動アシスタントがダイアログセッション中にユーザとの自然な会話に参加することを可能にする。例えば、自動アシスタントは、自動アシスタントがターン制ダイアログセッションに限定されないように、またはユーザに応答する前にユーザが話し終わったと判定することに依存しないように、ダイアログセッションの現在の状態に基づいて、ダイアログセッションの次の対話状態を決定することができる。したがって、自動アシスタントは、ユーザがこれらの自然な会話に参加するときに、いつユーザに応答するか、およびユーザにどのように応答するかを決定することができる。これは、クライアントデバイスにおける計算リソースを節約し、ダイアログセッションをより迅速かつより効率的に終了させることができるという、様々な技法的利点を結果として生じる。例えば、自動アシスタントは、ユーザの代わりに任意のフルフィルメントを実行しようとする前に、ユーザからのより多くの情報を待つことができるので、自動アシスタントが失敗する回数が低減されることが可能である。また、例えば、ユーザが同じことを繰り返さなければならない回数、または自動アシスタントを再呼び出ししなければならない回数が低減されることが可能であるので、クライアントデバイスにおいて受信されるユーザ入力の量が低減されることが可能である。
【0020】
本明細書で使用される「ダイアログセッション」は、ユーザと自動アシスタント(場合によっては、他の人間の参加者)との間の論理的に自己充足型の交換を含む場合がある。自動アシスタントは、セッション間の時間経過、セッション間のユーザコンテキスト(例えば、場所、予定された会議の前/最中/後など)の変更、ユーザと自動アシスタントとの間のダイアログ以外のユーザとクライアントデバイスとの間の1つまたは複数の介在する対話(例えば、ユーザがしばらくの間アプリケーションを切り替え、ユーザが、立ち去り、その後、スタンドアロンの音声起動製品に戻る)の検出、セッション間のクライアントデバイスのロック/スリープ、自動アシスタントと対話するために使用されるクライアントデバイスの変更など、様々な信号に基づいて、ユーザとの複数のダイアログセッション間を区別してもよい。
【0021】
上記の説明は、本明細書で開示するいくつかの実装形態のみの概要として提供される。それらの実装形態および他の実装形態について、本明細書でさらに詳細に説明する。
【0022】
本明細書で開示する技法は、クライアントデバイス上でローカルに、1つまたは複数のネットワークを介してクライアントデバイスに接続されたサーバによってリモートで、および/またはその両方で実装されることが可能であることが理解されるべきである。
【図面の簡単な説明】
【0023】
【
図1】本開示の様々な態様を実証し、本明細書で開示する実装形態が実装されることが可能な例示的な環境のブロック図である。
【
図2】様々な実装形態による、
図1の様々な構成要素を使用して本開示の様々な態様を実証する例示的なプロセスフローを示す図である。
【
図3A】様々な実装形態による、ダイアログセッション中に実施されるべき次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話も実施させることを控えるかを決定する例示的な方法を示すフローチャートである。
【
図3B】様々な実装形態による、ダイアログセッション中に実施されるべき次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話も実施させることを控えるかを決定する例示的な方法を示すフローチャートである。
【
図4】様々な実装形態による、ダイアログセッション中に実施されるべき次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話も実装させることを控えるかを決定することの非限定的な例を示す図である。
【
図5A】様々な実装形態による、ダイアログセッション中にフルフィルメント出力を実施させることの様々な非限定的な例を示す図である。
【
図5B】様々な実装形態による、ダイアログセッション中にフルフィルメント出力を実施させることの様々な非限定的な例を示す図である。
【
図5C】様々な実装形態による、ダイアログセッション中にフルフィルメント出力を実施させることの様々な非限定的な例を示す図である。
【
図6】様々な実装形態による、コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0024】
ここで
図1に進むと、本開示の様々な態様を実証し、本明細書で開示する実装形態が実装されることが可能な例示的な環境のブロック図が示されている。例示的な環境は、クライアントデバイス110と自然会話システム180とを含む。いくつかの実装形態において、自然会話システム180は、クライアントデバイス110においてローカルに実装されることが可能である。追加または代替の実装形態において、自然会話システム180は、
図1に示すようにクライアントデバイス110からリモートで実装されることが可能である。これらの実装形態において、クライアントデバイス110および自然会話システム180は、1つまたは複数の有線またはワイヤレスのローカルエリアネットワーク(Wi-Fi LANを含む「LAN」、メッシュネットワーク、Bluetooth、近距離無線通信など)またはワイドエリアネットワーク(インターネットを含む「WAN」)などの1つまたは複数のネットワーク199を介した互いに通信可能に結合され得る。
【0025】
クライアントデバイス110は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、携帯電話、車両のコンピューティングデバイス(例えば、車載通信システム、車載娯楽システム、車載ナビゲーションシステム)、スタンドアロンの対話型スピーカ(オプションでディスプレイを有する)、スマートテレビなどのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)のうちの1つまたは複数であり得る。追加のおよび/または代替のクライアントデバイスが提供され得る。
【0026】
クライアントデバイス110は、自動アシスタントクライアント114を実行することができる。自動アシスタントクライアント114のインスタンスは、クライアント110のオペレーティングシステムとは別の(例えば、オペレーティングシステムの「上に」インストールされた)アプリケーションであることが可能であり、または代替的にはクライアントデバイス110のオペレーティングシステムによって直接実装されることが可能である。自動アシスタントクライアント114は、クライアントデバイス110においてローカルに実装された自然会話システム180と対話することができ、または
図1に示すようにネットワーク199のうちの1つまたは複数を介して自然会話システム180と対話することができる。自動アシスタントクライアント114は(およびオプションで他のリモートシステム(例えば、サーバ)との対話によって)、ユーザに視点から、ユーザが人間対コンピュータのダイアログに参加し得る自動アシスタント115の論理的インスタンスであるように見えるものを形成し得る。自動アシスタント115のインスタンスが
図1に示されており、クライアントデバイス110の自動アシスタントクライアント114と自然会話システム180とを含む破線によって囲まれている。したがって、クライアントデバイス110上で実行される自動アシスタントクライアント114と関与するユーザは、実際には、自動アシスタント115のユーザ自身の論理インスタンス(または世帯もしくは他のユーザグループの間で共有される自動アシスタント115の論理インスタンス)と関与し得ることが理解されるべきである。簡潔さおよび単純さのために、本明細書で使用する自動アシスタント115は、クライアントデバイス110上でローカルに実行される自動アシスタントクライアント114、および/または自然会話システム180を実装し得る1つもしくは複数のサーバを指す。
【0027】
様々な実装形態において、クライアントデバイス110は、1つまたは複数のユーザインターフェース入力デバイスを使用してクライアントデバイス110のユーザによって提供されるユーザ入力を検出するように構成されたユーザ入力エンジン111を含み得る。例えば、クライアントデバイス110は、クライアントデバイス110の環境におけるユーザの発話または他の音に対応するオーディオデータなどのオーディオデータをキャプチャする1つまたは複数のマイクロフォンを備え得る。追加的または代替的に、クライアントデバイス110は、視覚構成要素のうちの1つまたは複数の視野内で検出された画像および/または動き(例えば、ジェスチャ)に対応する視覚データをキャプチャするように構成された1つまたは複数の視覚構成要素を備え得る。追加的または代替的に、クライアントデバイス110は、クライアントデバイス110に向けられたタッチ入力に対応する信号をキャプチャするように構成された1つまたは複数のタッチ感知構成要素(例えば、キーボードおよびマウス、スタイラス、タッチスクリーン、タッチパネル、1つまたは複数のハードウェアボタンなど)を備え得る。
【0028】
様々な実装形態において、クライアントデバイス110は、1つまたは複数のユーザインターフェース出力デバイスを使用してクライアントデバイス110のユーザに可聴および/または視覚的提示のためのコンテンツを提供するように構成されたレンダリングエンジン112を含み得る。例えば、クライアントデバイス110は、クライアントデバイス110を介してユーザに可聴提示のためにコンテンツが提供されることを可能にする1つまたは複数のスピーカを備え得る。追加的または代替的に、クライアントデバイス110は、クライアントデバイス110を介してユーザに視覚的提示のためにコンテンツが提供されることを可能にするディスプレイまたはプロジェクタを備え得る。
【0029】
様々な実装形態において、クライアントデバイス110は、対応するユーザからの承認を得て、検出された存在、特に人間の存在を示す信号を提供するように構成された1つまたは複数の存在センサ113を含み得る。それらの実装形態のうちのいくつかにおいて、自動アシスタント115は、クライアントデバイス110における(またはクライアントデバイス110のユーザに関連付けられた別のコンピューティングデバイスにおける)ユーザの存在に少なくとも部分的に基づいて、発話を満たすクライアントデバイス110(またはクライアントデバイス110のユーザに関連付けられた別のコンピューティングデバイス)を特定することができる。発話は、クライアントデバイス110および/もしくはクライアントデバイス110のユーザに関連付けられた他のコンピューティングデバイスにおいて(例えば、レンダリングエンジン112を介して)応答コンテンツをレンダリングすることによって、クライアントデバイス110および/もしくはクライアントデバイス110のユーザに関連付けられた他のコンピューティングデバイスを制御させることによって、ならびに/またはクライアントデバイス110および/もしくはクライアントデバイス110のユーザに関連付けられた他のコンピューティングデバイスに、発話を満たすために任意の他のアクションを実行させることによって満たされることが可能である。本明細書で説明するように、自動アシスタント115は、ユーザが近くにいるかまたは最近近くにいた場所に基づいてクライアントデバイス110(または他のコンピューティングデバイス)を決定する際に存在センサ113に基づいて決定されたデータを活用し、対応するコマンドをクライアントデバイス110(またはそれらの他のコンピューティングデバイス)のみに提供することができる。いくつかの追加のまたは代替の実装形態において、自動アシスタント115は、任意のユーザ(任意のユーザまたは特定のユーザ)が現在クライアントデバイス110(または他のコンピューティングデバイス)に近接しているかどうかを判定する際に存在センサ113に基づいて決定されたデータを活用することができ、クライアントデバイス110(または他のコンピューティングデバイス)に近接しているユーザに基づいて、クライアントデバイス110(または他のコンピューティングデバイス)へのデータの提供および/またはクライアントデバイス110(または他のコンピューティングデバイス)からのデータの提供をオプションで抑制することができる。
【0030】
存在センサ113は、様々な形態であり得る。例えば、クライアントデバイス110は、ユーザの存在を検出するために、ユーザ入力エンジン111に関して上記で説明したユーザインターフェース入力構成要素のうちの1つまたは複数を利用することができる。追加的または代替的に、クライアントデバイス110は、視野内の物体から放射される赤外(「IR」)光を測定する受動型赤外線(「PIR」)センサなどの、他のタイプの光ベースの存在センサ113を備え得る。
【0031】
追加的または代替的に、いくつかの実装形態において、存在センサ113は、人間の存在またはデバイスの存在に関連付けられた他の現象を検出するように構成され得る。例えば、いくつかの実施形態において、クライアントデバイス110は、例えば、ユーザによって携帯/操作される他のコンピューティングデバイス(例えば、モバイルデバイス、ウェアラブルコンピューティングデバイスなど)および/または他のコンピューティングデバイスによって放射される様々なタイプのワイヤレス信号(例えば、無線、超音波、電磁気などの波)を検出する存在センサ113を備え得る。例えば、クライアントデバイス110は、(例えば、超音波対応マイクロフォンなどの超音波/赤外線受信機を介して)他のコンピューティングデバイスによって検出され得る、超音波または赤外線などの、人間には知覚できない波を放射するように構成され得る。
【0032】
追加的または代替的に、クライアントデバイス110は、ユーザによって携帯/操作される他のコンピューティングデバイス(例えば、モバイルデバイス、ウェアラブルコンピューティングデバイスなど)によって検出され、ユーザの特定の位置を決定するために使用され得る無線波(例えば、Wi-Fi、Bluetooth、セルラなど)などの、他のタイプの人間が知覚できない波を放射し得る。いくつかの実装形態において、例えば、クライアントデバイス110への/からのGPSおよび/またはWi-Fi信号に基づいて、人の位置を検出するために、GPSおよび/またはWi-Fi三角測量が使用され得る。他の実装形態において、ユーザによって携帯/操作される他のコンピューティングデバイスによって放射される信号に基づいて特定の人の位置を決定するために、飛行時間、信号強度などの他のワイヤレス信号特徴が、クライアントデバイス110によって、単独または集合的に使用され得る。
【0033】
追加的または代替的に、いくつかの実装形態において、クライアントデバイス110は、ユーザの声からユーザを認識するために、話者識別(SID)を実行し得る。いくつかの実装形態において、次いで、例えば、クライアントデバイス110の存在センサ113(およびオプションでクライアントデバイス110のGPSセンサ、Soliチップ、および/または加速度計)によって、話者の動きが決定され得る。いくつかの実装形態において、そのような検出された動きに基づいて、ユーザの位置が予測され得、この位置は、ユーザの位置に対するクライアントデバイス110および/または他のコンピューティングデバイスの近接性に少なくとも部分的に基づいて、クライアントデバイス110および/または他のコンピューティングデバイスにおいて任意のコンテンツがレンダリングされるときにユーザの位置であると想定され得る。いくつかの実装形態において、ユーザは、特に、最後の関与からあまり時間が経過していない場合、ユーザが自動アシスタント115と関与した最後の位置にいると単純に想定され得る。
【0034】
さらに、クライアントデバイス110および/または自然会話システム180は、データおよび/もしくはソフトウェアアプリケーション198を記憶するための1つもしくは複数のメモリ、データにアクセスし、ソフトウェアアプリケーション198を実行するための1つもしくは複数のプロセッサ、ならびに/またはネットワーク199のうちの1つまたは複数を介する通信を容易にする他の構成要素を含み得る。いくつかの実装形態において、ソフトウェアアプリケーション198のうちの1つまたは複数は、クライアントデバイス110においてローカルにインストールされることが可能であるが、他の実装形態において、ソフトウェアアプリケーション198のうちの1つまたは複数は、(例えば、1つまたは複数のサーバによって)リモートでホストされることが可能であり、ネットワーク199のうちの1つまたは複数を介してクライアントデバイス110によってアクセス可能であることが可能である。クライアントデバイス110、他のコンピューティングデバイス、および/または自動アシスタント115によって実行される動作は、複数のコンピューティングデバイスにわたって分散され得る。自動アシスタント115は、例えば、ネットワーク(例えば、
図1のネットワーク199)を介して互いに結合された1つまたは複数の場所におけるクライアントデバイス110および/または1つもしくは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【0035】
いくつかの実装形態において、自動アシスタント115によって実行される動作は、自動アシスタントクライアント114を介してクライアント110においてローカルに実装され得る。
図1に示すように、自動アシスタントクライアント114は、自動音声認識(ASR)エンジン120A1と、自然言語理解(NLU)エンジン130A1と、フルフィルメントエンジン140A1と、テキスト読み上げ(TTS)エンジン150A1とを含み得る。いくつかの実装形態において、自動アシスタント115によって実行される動作は、
図1に示すように自然会話システム180がクライアントデバイス110からリモートで実装される場合などでは、複数のコンピュータシステムにわたって分散され得る。これらの実装形態において、自動アシスタント115は、追加的または代替的に、自然会話システム180のASRエンジン120A2、NLUエンジン130A2、フルフィルメントエンジン140A2、およびTTSエンジン150A2を利用し得る。
【0036】
これらのエンジンの各々は、1つまたは複数の機能を実行するように構成され得る。例えば、ASRエンジン120A1および/または120A2は、機械学習(ML)モデルデータベース115A内に記憶されたストリーミングASRモデル(例えば、リカレントニューラルネットワーク(RNN)モデル、トランスフォーマーモデル、および/またはASRを実行することができる任意の他のタイプのMLモデル)を使用して、ASR出力のストリームを生成するために、発話をキャプチャし、クライアントデバイス110のマイクロフォンによって生成されたオーディオデータのストリームを処理することができる。特に、ストリーミングASRモデルは、オーディオデータのストリームが生成されるときに、ASR出力のストリームを生成するために利用されることが可能である。さらに、NLUエンジン130A1および/または130A2は、MLモデルデータベース115A内に記憶されたNLUモデル(例えば、長短期記憶(LSTM)、ゲート付き回帰型ユニット(GRU)、および/またはNLUを実行することができる任意の他のタイプのRNNもしくは他のMLモデル)および/または文法ベースのルールを使用して、NLU出力のストリームを生成するために、ASR出力のストリームを処理することができる。さらに、フルフィルメントエンジン140A1および/または140A2は、NLU出力のストリームに基づいて生成されたフルフィルメントデータのストリームに基づいて、フルフィルメント出力のセットを生成することができる。フルフィルメントデータのストリームは、例えば、1つもしくは複数のファーストパーティ(1P)エージェント171および/または1つもしくは複数のサードパーティ(3P)エージェント172を使用して(
図2に関して説明するように)生成されることが可能である。最後に、TTSエンジン150A1および/または150A2は、MLモデルデータベース115A内に記憶されたTTSモデルを使用して、コンピュータで生成された合成音声を含む合成音声オーディオデータを生成するために、テキストデータ(例えば、自動アシスタント115によって考案されたテキスト)を処理することができる。特に、MLモデルデータベース115A内に記憶されたMLモデルは、クライアントデバイス110内にローカルに記憶されたオンデバイスMLモデル、またはクライアントデバイス110および/もしくはリモートシステム(例えば、サーバ)の両方にアクセス可能な共有MLモデルであることが可能である。
【0037】
様々な実装形態において、ASR出力のストリームは、例えば、オーディオデータのストリーム内にキャプチャされたユーザの発話に対応すると予測される音声仮説(例えば、用語仮説および/または転写仮説)のストリーム、音声仮説の各々についての1つまたは複数の対応する予測値(例えば、確率、対数尤度、および/または他の値)、オーディオデータのストリーム内にキャプチャされたユーザの発話に対応すると予測される複数の音素、および/または他のASR出力を含むことができる。それらの実装形態のいくつかの変形例において、ASRエンジン120A1および/または120A2は、(例えば、対応する予測値に基づいて)発話に対応する認識されたテキストとして音声仮説のうちの1つまたは複数を選択することができる。
【0038】
様々な実装形態において、NLU出力のストリームは、例えば、認識された用語のうちの1つまたは複数(例えば、すべて)に対する認識されたテキストの1つまたは複数の注釈を含む注釈付きの認識されたテキストのストリームを含むことができる。例えば、NLUエンジン130A1および/または130A2は、用語にそれらの文法的な役割で注釈を付けるように構成された品詞タガー(図示せず)を含み得る。追加的または代替的に、NLUエンジン130A1および/または130A2は、人(例えば、文学の登場人物、有名人、公人などを含む)、組織、場所(実在および架空)への参照などの、認識されたテキストの1つまたは複数のセグメント内のエンティティ参照に注釈を付けるように構成されたエンティティタガー(図示せず)を含み得る。いくつかの実装形態において、エンティティに関するデータが、ナレッジグラフ(図示せず)などの1つまたは複数のデータベース内に記憶され得る。いくつかの実装形態において、ナレッジグラフは、既知のエンティティ(および場合によってはエンティティ属性)を表すノード、ならびにノードを接続してエンティティ間の関係を表すエッジを含み得る。エンティティタガーは、(例えば、人などのエンティティクラスへのすべての参照の識別を可能にするために)高レベルの粒度および/または(例えば、特定の人などの特定のエンティティへのすべての参照の識別を可能にするために)低レベルの粒度においてエンティティへの参照に注釈を付け得る。エンティティタガーは、特定のエンティティを解決するために自然言語入力のコンテンツに依存し得、および/または特定のエンティティを解決するためにナレッジグラフもしくは他のエンティティデータベースとオプションで通信し得る。追加的または代替的に、NLUエンジン130A1および/または130A2は、1つまたは複数のコンテキストキューに基づいて、同じエンティティへの参照をグループ化または「クラスタ化」するように構成された共参照リゾルバ(図示せず)を含み得る。例えば、共参照リゾルバは、「それらを買う(buy them)」という入力を受信する直前にレンダリングされたクライアントデバイスの通知において「劇場のチケット(theatre tickets)」が言及されていることに基づいて、「それらを買う(buy them)」という自然言語入力において、「それら(them)」という用語を「劇場のチケットを買う(buy theatre tickets)」に解決するために利用され得る。いくつかの実装形態において、NLUエンジン130A1および/または130A2の1つまたは複数の構成要素は、NLUエンジン130A1および/または130A2の1つまたは複数の他の構成要素からの注釈に依存し得る。例えば、いくつかの実装形態において、エンティティタガーは、特定のエンティティへのすべての言及に注釈を付ける際に、共参照リゾルバからの注釈に依存し得る。また、例えば、いくつかの実装形態において、共参照リゾルバは、同じエンティティへの参照をクラスタ化する際に、エンティティタガーからの注釈に依存し得る。
【0039】
図1は、単一のユーザを有する単一のクライアントデバイスに関して説明されているが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。例えば、ユーザの1つまたは複数の追加のクライアントデバイスも、本明細書で説明する技法を実装することができる。例えば、クライアントデバイス110、1つもしくは複数の追加のクライアントデバイス、および/またはユーザの任意の他のコンピュータデバイスは、本明細書で説明する技法を用いることができるデバイスのエコシステムを形成することができる。これらの追加のクライアントデバイスおよび/またはコンピューティングデバイスは、(例えば、ネットワーク199を介して)クライアントデバイス110と通信し得る。別の例として、所与のクライアントデバイスが、共有設定(例えば、ユーザのグループ、世帯)において複数のユーザによって利用されることが可能である。
【0040】
本明細書で説明するように、自動アシスタント115は、NLU出力のストリーム、フルフィルメントデータのストリーム、ならびにNLU出力のストリームおよびフルフィルメントデータのストリームが生成されるオーディオデータのストリーム内にキャプチャされた発話のオーディオベースの特徴の現在の状態に基づいて、ユーザと自動アシスタント115との間のダイアログセッション中に実施されるべき次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定するかどうかを決定することができる。この決定を行う際、自動アシスタントは、自然会話エンジン160を利用することができる。様々な実装形態において、
図1に示すように、自然会話エンジン160は、音響エンジン161と、状態エンジン162と、フルフィルメント出力エンジン163と、自然会話出力エンジン164と、部分フルフィルメントエンジン165とを含むことができる。
【0041】
いくつかの実装形態において、音響エンジン161は、オーディオデータのストリームを処理することに基づいて、オーディオベースの特徴を決定することができる。いくつかの実装形態において、音響エンジン161は、MLモデルデータベース115A内に記憶された音響MLモデルを使用して、オーディオベースの特徴を決定するためにオーディオデータのストリームを処理することができる。いくつかの実装形態において、音響エンジン161は、1つまたは複数のルールを使用して、オーディオベースの特徴を決定するためにオーディオデータのストリームを処理することができる。オーディオベースの特徴は、例えば、オーディオデータのストリーム内にキャプチャされた発話に関連付けられた韻律特性、最新の発話が提供されてから経過した持続時間、および/または他のオーディオベースの特徴を含むことができる。韻律特性は、例えば、イントネーション、トーン、ストレス、リズム、テンポ、ピッチ、および休止などの言語学的機能を含む、音節およびより大きい音声単位の1つまたは複数の特性を含むことができる。さらに、韻律特性は、例えば、感情状態、形式(例えば、声明、質問、または命令)、皮肉、風刺、話す調子、および/または強調の指示を提供することができる。言い換えれば、韻律特性は、所与のユーザの個々の音声特徴に依存せず、個々の発話および/または複数の発話の組み合わせに基づいてダイアログセッション中に動的に決定されることが可能な音声の特徴である。
【0042】
いくつかの実装形態において、状態エンジン162は、NLU出力のストリームと、フルフィルメントデータのストリームと、オーディオベースの特徴とに基づいて、ダイアログセッションの現在の状態を決定することができる。さらに、状態エンジン162は、ダイアログセッションの現在の状態に基づいて、ダイアログセッションの促進のために実施されるべき次の対話状態を決定することができる。次の対話状態は、例えば、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを含むことができる。別の言い方をすれば、状態エンジン162は、ダイアログの現在の状態を決定し、現在の状態に基づいて、自動アシスタント115がダイアログセッションの促進のためにどのように進められるべきかを決定するために、本明細書で説明する様々な構成要素によって生成された信号を分析することができる。特に、状態エンジン162は、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴への更新に基づいて、ユーザまたは自動アシスタントの応答の完了を待つことなしに、ダイアログセッション全体を通して現在の状態を反復的に(例えば、10Hz、20Hz,または他の周波数において連続的に)更新することができる。結果として、実施されるべき次の対話状態は、自動アシスタント115がダイアログセッションの促進のためにどのように進められるべきかが継続的に決定されるように、反復的に更新されることが可能である。
【0043】
いくつかの実装形態において、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴の現在の状態は、1つまたは複数の発話のうちの最新の発話に基づいて生成されたNLU出力の最新のインスタンスと、最新のNLU出力に基づいて生成されたフルフィルメントデータの最新のインスタンスと、最新の発話に基づいて生成されたオーディオベースの特徴の最新のインスタンスとを含む。追加または代替の実装形態において、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴の現在の状態は、最新の発話に先行する1つまたは複数の過去の発話に基づいて生成されたNLU出力の1つまたは複数の履歴インスタンスと、NLU出力の1つまたは複数の履歴インスタンスに基づいて生成されたフルフィルメントデータの1つまたは複数の履歴インスタンスと、1つまたは複数の過去の発話に基づいて生成されたオーディオベースの特徴の1つまたは複数の履歴インスタンスとをさらに含む。したがって、ダイアログセッションの現在の状態は、最新の発話および/または1つもしくは複数の以前の発話の関数として決定されることが可能である。
【0044】
様々な実装形態において、状態エンジン162は、MLモデルデータベース115A内に記憶された分類MLモデルを使用して、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴の現在の状態を処理することに基づいて、次の対話状態を決定することができる。分類MLモデルは、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴の現在の状態を処理することに基づいて、次の対話状態の各々に関連付けられた対応する予測測定値を生成することができる。分類MLモデルは、複数のトレーニングインスタンスに基づいてトレーニングされることが可能である。トレーニングインスタンスの各々は、トレーニングインスタンス入力とトレーニングインスタンス出力とを含むことができる。トレーニングインスタンス入力は、例えば、NLU出力のトレーニングストリーム、フルフィルメントデータのトレーニングストリーム、およびトレーニングオーディオベースの特徴のトレーニング状態を含むことができ、トレーニングインスタンス出力は、自動アシスタント115が、トレーニングインスタンスに基づいて、(i)フルフィルメント出力を実施させるべきか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるべきか、または(iii)いかなる対話を実施させることも控えるべきかに関連付けられたグラウンドトゥルース出力を含むことができる。トレーニング状態は、ユーザと自動アシスタント115(ならびに/または他のユーザおよびそれぞれの自動アシスタント)との間の過去のダイアログセッションに基づいて決定されることが可能であり、またはヒューリスティックに定義されることが可能である。分類MLモデルをトレーニングする際、トレーニングインスタンスは、予測出力(例えば、対応する予測測定値)を生成するための入力として適用されることが可能であり、予測出力は、1つまたは複数の損失を生成するために、グラウンドトゥルース出力と比較されることが可能である。分類MLモデルは、(例えば、バックプロパゲーションを介して)損失のうちの1つまたは複数に基づいて更新されることが可能である。トレーニングされると、分類MLモデルは、本明細書で説明するように、状態エンジン162による使用のために展開されることが可能である。
【0045】
いくつかの実装形態において、フルフィルメント出力エンジン163は、実施されるべき次の対話状態が(i)フルフィルメント出力を実施させることであると決定することに応答して、フルフィルメント出力のセットの中から、実施されるべき1つまたは複数のフルフィルメント出力を選択することができる。上述のように、フルフィルメントエンジン140A1および/または140A2は、フルフィルメントデータのストリームに基づいてフルフィルメント出力のセットを生成することができ、フルフィルメントデータのストリームは、例えば、1Pエージェント171のうちの1つもしくは複数および/または3Pエージェント172のうちの1つまたは複数を使用して生成されることが可能である。1Pエージェント171のうちの1つまたは複数が
図1においてネットワーク199のうちの1つまたは複数を介して実装されるものとして示されているが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。例えば、1Pエージェント171のうちの1つまたは複数は、クライアントデバイス110においてローカルに実装されることが可能であり、NLU出力のストリームは、アプリケーションプログラミングインターフェース(API)を介して1Pエージェント171のうちの1つまたは複数に送信されることが可能であり、1Pエージェント171のうちの1つまたは複数からのフルフィルメントデータは、APIを介してフルフィルメント出力エンジン163によって取得され、フルフィルメントデータのストリームに組み込まれることが可能である。3Pエージェント172のうちの1つまたは複数は、対応する3Pシステム(例えば、3Pサーバ)を介して実装されることが可能である。NLU出力のストリームは、追加的または代替的に、3Pエージェント172のうちの1つまたは複数にフルフィルメントデータを生成させるために、ネットワーク199のうちの1つまたは複数を介して3Pエージェント172のうちの1つまたは複数(およびクライアントデバイス110においてローカルに実装されていない1Pエージェント171のうちの1つまたは複数)に送信されることが可能である。フルフィルメントデータは、ネットワーク199のうちの1つまたは複数を介してクライアントデバイス110に送り返され、フルフィルメントデータのストリームに組み込まれることが可能である。
【0046】
さらに、フルフィルメント出力エンジン163は、NLUデータのストリームに関連付けられたNLU測定値および/またはフルフィルメントデータのストリームに関連付けられたフルフィルメント測定値に基づいて、フルフィルメント出力のセットの中から1つまたは複数のフルフィルメント出力を選択することができる。NLU測定値は、例えば、NLUエンジン130A1および/もしくは130A2が、予測された意図がオーディオデータのストリーム内にキャプチャされた発話を提供したユーザの実際の意図に対応することをどの程度確信しているか、ならびに/または予測された意図に関連付けられたパラメータの予測スロット値が予測された意図に関連付けられたパラメータの実際のスロット値に対応することをどの程度確信しているかを示す、確率、対数尤度、バイナリ値などであることが可能である。NLU測定値は、NLUエンジン130A1および/または130A2がNLU出力のストリームを生成するときに生成されることが可能であり、NLU出力のストリーム内に含められることが可能である。フルフィルメント測定値は、例えば、フルフィルメントエンジン140A1および/または140A2が、予測フルフィルメント出力がユーザの所望のフルフィルメントに対応することをどの程度確信しているかを示す、確率、対数尤度、バイナリ値などであることが可能である。フルフィルメント測定値は、1Pエージェント171のうちの1つもしくは複数および/または3Pエージェント172のうちの1つもしくは複数がフルフィルメントデータを生成するときに生成されることが可能であり、フルフィルメントデータのストリームに組み込まれることが可能であり、ならびに/またはフルフィルメントエンジン140A1および/もしくは140A2が1Pエージェント171のうちの1つもしくは複数および/もしくは3Pエージェント172のうちの1つもしくは複数から受信したフルフィルメントデータを処理するときに生成されることが可能であり、フルフィルメントデータのストリームに組み込まれることが可能である。
【0047】
いくつかの実装形態において、自然会話出力エンジン164は、自然な会話出力のセットを生成することができ、実施されるべき次の対話状態が(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることであると決定することに応答して、自然な会話出力のセットの中から、実施されるべき1つまたは複数の自然な会話出力を選択することができる。自然な会話出力のセットは、例えば、NLUデータのストリームに関連付けられたNLU測定値および/またはオーディオベースの特徴に基づいて生成されることが可能である。それらの実装形態のいくつかの変形例において、自然な会話出力のスーパーセットが、クライアントデバイス110によってアクセス可能な1つまたは複数のデータベース(図示せず)内に記憶されることが可能であり、自然な会話出力のセットは、NLUデータのストリームに関連付けられたNLU測定値および/またはオーディオベースの特徴に基づいて、自然な会話出力のスーパーセットから生成されることが可能である。これらの自然な会話出力は、ダイアログセッションの促進のために次の対話状態として実施されることが可能であるが、必ずしもフルフィルメントとして実装される必要はない。例えば、自然な会話出力は、ユーザが自動アシスタント115と対話し続けることを望む指示を確認することに対する要求(例えば、「まだそこにいますか」など)、ユーザがユーザと自動アシスタント115との間のダイアログセッションの促進のために追加のユーザ入力を提供することに対する要求(例えば、「なにをオンにしたかったのですか(What did you want to turn on?)」など)、フィラースピーチ(例えば、「確かに(Sure)」、「大丈夫(Alright)」など)を含むことができる。様々な実装形態において、自然会話エンジン164は、自然な会話出力を生成する際、MLモデルデータベース115A内に記憶された1つまたは複数の言語モデルを利用することができる。
【0048】
いくつかの実装形態において、部分フルフィルメントエンジン165は、フルフィルメント出力を実施させる次の対話状態を決定する前に、フルフィルメント出力のセット内のフルフィルメント出力を部分的に履行させることができる。例えば、部分フルフィルメントエンジン165は、ソフトウェアアプリケーション198のうちの1つもしくは複数、1Pエージェント171のうちの1つもしくは複数、3Pエージェント172のうちの1つもしくは複数、クライアントデバイス101と通信する追加のクライアントデバイス、および/もしくはフルフィルメント出力のセット内に含まれるフルフィルメント出力に関連付けられたクライアントデバイス110と通信する1つもしくは複数のスマートデバイスとの接続を確立することができ、合成音声を含む合成音声オーディオデータを生成させることができ(しかし、聴覚的にレンダリングさせない)、グラフィカルコンテンツを生成させることができ(しかし、視覚的にレンダリングさせない)、ならびに/またはフルフィルメント出力のうちの1つもしくは複数の他の部分的なフルフィルメントを実行することができる。結果として、次の対話状態としてフルフィルメント出力を実施させる際の待ち時間が短縮されることが可能である。
【0049】
ここで
図2に進むと、
図1の様々な構成要素を使用して本開示の様々な態様を実証する例示的なプロセスフローが示されている。ASRエンジン120A1および/または120A2は、ASR出力のストリーム220を生成するために、MLモデルデータベース115A内に記憶されたストリーミングASRモデルを使用して、オーディオデータのストリーム201Aを処理することができる。NLUエンジン130A1および/または130A2は、NLU出力のストリーム230を生成するために、MLモデルデータベース115A内に記憶されたNLUモデルを使用して、ASR出力のストリーム220を処理することができる。いくつかの実装形態において、NLUエンジン130A1および/または130A2は、追加的または代替的に、NLU出力のストリーム230を生成する際に、非オーディオデータのストリーム201Bを処理することができる。非オーディオデータのストリーム201Bは、クライアントデバイス110の視覚構成要素によって生成された視覚データ、クライアントデバイス110のディスプレイを介してユーザによって提供されたタッチ入力のストリーム、クライアントデバイス110のディスプレイもしくは周辺デバイス(例えば、マウスおよびキーボード)によって提供されたタイプ入力のストリーム、および/または他の非オーディオデータを含むことができる。いくつかの実装形態において、1Pエージェント171は、1Pフルフィルメントデータ240Aを生成するために、NLU出力のストリームを処理することができる。追加または代替の実装形態において、3Pエージェント172は、3Pフルフィルメントデータ240Bを生成するために、NLU出力のストリーム230を処理することができる。フルフィルメントエンジン140A1および/または140A2は、1Pフルフィルメントデータ240Aおよび/または3Pフルフィルメントデータ240Bに基づいて、フルフィルメントデータのストリーム240を生成することができる。さらに、音響エンジン161は、オーディオデータのストリーム201Aに関連付けられたオーディオベースの特徴261を生成するために、オーディオデータのストリーム201Aを処理することができる。
【0050】
状態エンジン162は、現在の状態262を決定するために、NLU出力のストリーム230、フルフィルメントデータのストリーム240、および/またはオーディオベースの特徴を処理することができ、ブロック299に示すように、次の対話状態が(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定することができる。例えば、NLU出力のストリーム230、フルフィルメントデータのストリーム240、およびオーディオベースの特徴241は、予測測定値(例えば、バイナリ値、確率、対数尤度など)を生成するために、分類MLモデルを使用して処理されることが可能である。状態エンジン162が、(i)予測測定値のうちの第1の対応する予測測定値に基づいて、フルフィルメント出力を実施させるか、(ii)予測測定値のうちの第2の対応する予測測定値に基づいて、自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)予測測定値のうちの第3の対応する予測測定値に基づいて、いかなる対話を実施させることも控えるかを決定することができるように、次の対話状態の各々は、予測測定値のうちの対応する1つに関連付けられることが可能である。
【0051】
この場合、状態エンジン162が、(i)第1の対応する予測測定値に基づいて、フルフィルメント出力を実施させることを決定した場合、フルフィルメント出力エンジン163は、フルフィルメント出力のセットの中から1つまたは複数のフルフィルメント出力263を選択することができ、1つまたは複数のフルフィルメント出力263を選択することができ、1つまたは複数のフルフィルメント出力263は、280によって示すように実施されることが可能である。さらに、この場合、状態エンジン162が、(ii)第2の対応する予測測定値に基づいて、自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることを決定した場合、自然会話出力エンジン164は、自然な会話出力のセットの中から、1つまたは複数の自然な会話出力264を選択することができ、1つまたは複数の自然な会話出力264は、280によって示すようにユーザに提示するために聴覚的にレンダリングされることが可能である。さらに、この場合、状態エンジン162が、(iii)第3の予測測定値に基づいて、いかなる対話を実施させることも控えることを決定した場合、自動アシスタント115は、280によって示すようにいかなる対話を実施させることも控えることができる。特定の実装形態が
図2のプロセスフローに関して説明されているが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。
【0052】
本明細書で説明する技法を使用することによって、1つまたは複数の技法的利点が達成されることが可能である。1つの非限定的な例として、本明細書で説明する技法は、自動アシスタントがダイアログセッション中にユーザとの自然な会話に参加することを可能にする。例えば、自動アシスタントは、自動アシスタントがターン制ダイアログセッションに限定されないように、またはユーザに応答する前にユーザが話し終わったと判定することに依存しないように、ダイアログセッションの現在の状態に基づいて、ダイアログセッションの次の対話状態を決定することができる。したがって、自動アシスタントは、ユーザがこれらの自然な会話に参加するときに、いつユーザに応答するか、およびユーザにどのように応答するかを決定することができる。これは、クライアントデバイスにおける計算リソースを節約し、ダイアログセッションをより迅速かつより効率的に終了させることができるという、様々な技法的利点を結果として生じる。例えば、自動アシスタントは、ユーザの代わりに任意のフルフィルメントを実行しようとする前に、ユーザからのより多くの情報を待つことができるので、自動アシスタントが失敗する回数が低減されることが可能である。また、例えば、ユーザが同じことを繰り返さなければならない回数、または自動アシスタントを再呼び出ししなければならない回数が低減されることが可能であるので、クライアントデバイスにおいて受信されるユーザ入力の量が低減されることが可能である。
【0053】
ここで
図3Aに進むと、ダイアログセッション中に実施されるべき次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定する例示的な方法300を示すフローチャートが示されている。便宜上、方法300の動作について、動作を実行するシステムを参照して説明する。方法300のこのシステムは、コンピューティングデバイス(例えば、
図1のクライアントデバイス110、
図4のクライアントデバイス110A、
図5A~
図5Cのクライアントデバイス110B、および/もしくは
図6のコンピューティングデバイス610、1つもしくは複数のサーバ、ならびに/または他のコンピューティングデバイス)の1つもしくは複数のプロセッサ、メモリ、および/または他の構成要素を含む。さらに、方法300の動作が特定の順序において示されているが、これは、限定することを意味していない。1つまたは複数の動作が、並べ替えられ、省略され、および/または追加され得る。
【0054】
ブロック352において、システムは、ASR出力のストリームを生成するために、ストリーミングASRモデルを使用して、オーディオデータのストリームを処理する。オーディオデータのストリームは、クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントとのダイアログセッションに関与しているユーザのクライアントデバイスのマイクロフォンによって生成されることが可能である。さらに、オーディオデータのストリームは、自動アシスタントに向けられたユーザの1つまたは複数の発話をキャプチャすることができる。いくつかの実装形態において、ユーザが、1つもしくは複数の特定の単語および/もしくは句(例えば、「ねえ、アシスタント(Hey Assistant)」、「アシスタント(Assistant)」などのホットワード)、1つもしくは複数のボタン(例えば、ソフトウェアボタンおよび/またはハードウェアボタン)の作動、検出されると自動アシスタントを呼び出すクライアントデバイスの視覚構成要素によってキャプチャされた、1つもしくは複数のジェスチャを介して、ならびに/または任意の他の手段によって自動アシスタントを呼び出したと判定することに応答して、システムは、オーディオデータのストリームを処理し得る。ブロック354において、システムは、NLU出力のストリームを生成するために、NLUモデルを使用して、ASR出力のストリームを処理する。ブロック356において、システムは、NLU出力のストリームに基づいて、フルフィルメントデータのストリームを生成する。ブロック358において、システムは、オーディオデータのストリームを処理することに基づいて、オーディオデータ内にキャプチャされた1つまたは複数の発話に関連付けられたオーディオベースの特徴を決定する。オーディオベースの特徴は、例えば、1つもしくは複数の発話の各々に関連付けられた1つもしくは複数の韻律特性(例えば、イントネーション、トーン、ストレス、リズム、テンポ、ピッチ、休止、および/または他の韻律特性)、ユーザが1つまたは複数の発話のうちの最新の発話を提供してから経過した持続時間、および/またはオーディオデータのストリームを処理することに基づいて決定されることが可能な他のオーディオベースの特徴を含むことができる。
【0055】
ブロック360において、システムは、NLU出力のストリーム、フルフィルメントデータのストリーム、および/またはオーディオデータ内にキャプチャされた1つもしくは複数の発話に関連付けられたオーディオベースの特徴の現在の状態に基づいて、実施されるべき次の対話状態を決定する。いくつかの実装形態において、現在の状態は、ダイアログセッションにおける現在の時点におけるNLU出力、フルフィルメントデータ、および/またはオーディオベースの特徴に基づくことができる。追加または代替の実装形態において、現在の状態は、ダイアログセッションにおける1つまたは複数の以前の時点におけるNLU出力、フルフィルメントデータ、および/またはオーディオベースの特徴に基づくことができる。別の言い方をすれば、現在の状態は、ユーザによって提供された最新の発話のコンテキスト内のダイアログセッションの状態および/または全体としてダイアログセッション全体の状態に対応することができる。システムは、例えば、
図3Bの方法360Aを使用して、現在の状態に基づいて、実施されるべき次の対話状態を決定することができる。
【0056】
図3Bを参照すると、ブロック382において、システムは、対応する予測測定値を生成するために、分類MLモデルを使用して、NLU出力のストリーム、フルフィルメントデータのストリーム、および/またはオーディオベースの特徴の現在の状態を処理することができる。例えば、システムは、(i)フルフィルメント出力を実施させることに関連付けられた第1の対応する予測測定値と、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることに関連付けられた第2の対応する予測測定値と、(iii)いかなる対話を実施させることも控えることに関連付けられた第3の対応する予測測定値とを生成することができる。対応する予測測定値は、例えば、(i)フルフィルメント出力を実施させること、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせること、および(iii)いかなる対話を実施させることも控えることのうちの1つが次の対話状態として実施されるべきであることの可能性を示す、バイナリ値、確率、対数尤度などであることが可能である。
【0057】
ブロック384において、システムは、対応する予測測定値に基づいて、次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定することができる。
【0058】
ブロック384の反復において、システムが、対応する予測測定値に基づいて、次の対話状態が(i)フルフィルメント出力を実施させることであると判定した場合、システムは、ブロック386Aに進み得る。ブロック386Aにおいて、システムは、NLU出力のストリームに関連付けられたNLU予測測定値および/またはフルフィルメントデータのストリームに関連付けられたフルフィルメント測定値に基づいて、(例えば、
図1および
図2のフルフィルメント出力エンジン163に関して説明したように)フルフィルメント出力のセットの中からフルフィルメント出力を選択する。フルフィルメント出力のセットは、(例えば、
図1および
図2の1Pエージェント171および/または3Pエージェント172に関して説明したように)複数のエージェントによって生成されることが可能である。システムは、
図3Aのブロック362に戻り、次の対話状態を実施させることができる。別の言い方をすれば、システムは、ブロック386Aにおいて選択されたフルフィルメント出力を実施させることができる。
【0059】
ブロック384の反復において、システムが、対応する予測測定値に基づいて、次の対話状態が(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることであると判定した場合、システムは、ブロック386Bに進み得る。ブロック386Bにおいて、システムは、NLU出力のストリームに関連付けられたNLU予測測定値および/またはブロック360において決定されたオーディオベースの特徴に基づいて、自然な会話出力のセットの中から自然な会話出力を選択する。自然な会話出力のセットは、(例えば、
図1および
図2の自然会話出力エンジン164に関して説明したように)自然な会話出力のスーパーセットを含む1つまたは複数のデータベースに基づいて生成されることが可能である。システムは、
図3Aのブロック362に戻り、次の対話状態を実施させることができる。別の言い方をすれば、システムは、ブロック386Bにおいて選択された自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることができる。
【0060】
ブロック384の反復において、システムが、対応する予測測定値に基づいて、次の対話状態が(iii)いかなる対話を実施させることも控えることであると判定した場合、システムは、ブロック386Cに進み得る。ブロック386Cにおいて、システムは、対話を実施させることを控える。システムは、
図3Aのブロック362に戻り、次の対話状態を実施させることができる。別の言い方をすれば、システムは、ダイアログセッションのこの所与の時点においていかなるアクションも実行することなしに、自動アシスタントにオーディオデータのストリームを処理し続けさせることができる。
【0061】
特に、
図3Aを再び参照すると、システムがブロック362において次の対話状態を実施させることができた後、システムは、ブロック352に戻る。ブロック352の後続の反復において、システムは、ASR出力のストリームと、NLUデータのストリームと、フルフィルメントデータのストリームとを生成し続けるために、オーディオデータのストリームを処理し続ける。さらに、1つまたは複数の追加のオーディオベースの特徴が、この後続の反復においてオーディオデータのストリームを処理することに基づいて決定されることが可能である。結果として、現在の状態は、この後続の反復のために更新されることが可能であり、さらなる次の対話状態が、更新された現在の状態に基づいて決定されることが可能である。このようにして、現在の状態は、ダイアログセッションのための次の対話状態を継続的に決定するために継続的に更新されることが可能である。
【0062】
ここで
図4に進むと、ダイアログセッション中に実施されるべき次の対話状態が、(i)フルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定することの非限定的な例が示されている。自動アシスタントは、クライアントデバイス110Aにおいて少なくとも部分的に実装されることが可能である(例えば、
図1に関して説明した自動アシスタント115)。自動アシスタントは、自動アシスタントは、次の対話状態を決定するために、自然会話システム(例えば、
図1に関して説明した自然会話システム180)を利用することができる。
図4に示すクライアントデバイス110Aは、例えば、発話および/もしくは他の可聴入力に基づいてオーディオデータを生成するためのマイクロフォン、合成音声および/もしくは他の可聴出力を聴覚的にレンダリングするためのスピーカ、ならびにタッチ入力を受信し、ならびに/または転写および/もしくは他の視覚的出力を視覚的にレンダリングするためのディスプレイ190Aを含む、様々なユーザインターフェース構成要素を含み得る。
図4に示すクライアントデバイス110Aは、モバイルデバイスであるが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。
【0063】
さらに、
図4に示すように、クライアントデバイス110Aのディスプレイ190Aは、クライアントデバイス110Aに1つまたは複数のアクションを実行させるためにクライアントデバイス110Aのユーザによって対話され得る様々なシステムインターフェース要素191、192、および193(例えば、ハードウェアインターフェース要素および/またはソフトウェアインターフェース要素)を含む。クライアントデバイス110Aのディスプレイ190Aは、タッチ入力によって(例えば、ユーザ入力をディスプレイ190Aまたはその一部(例えば、テキスト入力ボックス194またはディスプレイ190Aの他の部分)に向けることによって)および/または発話入力によって(例えば、マイクロフォンインターフェース要素195を選択することによって、またはマイクロフォンインターフェース要素195を必ずしも選択することなしに、単に話すことによって)、ユーザがディスプレイ190A上にレンダリングされたコンテンツと対話することを可能にする(すなわち、自動アシスタントは、クライアントデバイス110Aにおける発話入力をアクティブ化するために、1つまたは複数の特定の用語もしくは句、ジェスチャ、視線、口の動き、唇の動き、および/または他の条件を監視し得る)。
【0064】
例えば、クライアントデバイス110Aのユーザが、ダイアログセッションを開始するために「アシスタント、オフィスに電話して(Assistant, call the office)」という発話452を提供すると仮定する。特に、ダイアログセッションを開始する際、ユーザは、自動アシスタントがユーザに代わって電話をかけることを要求している。自動アシスタントは、発話452をキャプチャしたオーディオデータのストリームを処理することに基づいて生成されたNLUデータのストリーム、フルフィルメントデータのストリーム、および/またはオーディオベースの特徴の現在の状態に基づいて、ダイアログセッションの促進のために実施されるべき次の対話状態を決定することができる。例えば、自動アシスタントが、(例えば、現在の状態を決定する際に利用される)NLUデータのストリームに基づいて、発話452がユーザに代わって電話をかける意図に関連付けられており、電話番号パラメータのスロット値が「オフィス」に対応すると判定すると仮定する。この場合、NLUデータのストリームは、(例えば、現在の状態を決定する際に利用される)フルフィルメントデータのストリームを生成するために、複数のエージェント(例えば、
図1の1Pエージェント171および/または3Pエージェント172)によって処理されることが可能である。さらに、フルフィルメントデータのストリームが、電話番号パラメータのスロット値が未解決であるように、「オフィス」パラメータに利用可能な連絡先エントリが存在しないことを示すと仮定する。
【0065】
この例において、少なくともNLUデータのストリームおよびフルフィルメントデータのストリームに基づいて、決定された現在の状態は、1つまたは複数のフルフィルメント出力がダイアログセッションを促進するために次の対話状態として実施されるべきであることを示し得る。実施されるべき1つまたは複数のフルフィルメント出力は、フルフィルメント出力のセットの中から選択されることが可能である。フルフィルメント出力のセットは、例えば、ユーザの代わりに「オフィス」の連絡先エントリを用いて通話を開始するためのアシスタントコマンド、連絡先エントリ「オフィス」に関するより多くの情報を要求する合成音声を含む合成音声オーディオデータ、および/または他のフルフィルメント出力を含み得る。さらに、この例において、フルフィルメントデータのストリームは、「オフィス」に利用可能な連絡先エントリが存在しないことを示すので、自動アシスタントは、連絡先エントリ「オフィス」に関するより多くの情報を要求する合成音声を含む合成音声オーディオデータとして実施されるべき次のフルフィルメント出力を選択することができる。したがって、自動アシスタントは、連絡先エントリ「オフィス」に関するより多くの情報を要求する合成音声オーディオデータ内に含まれる合成音声454を、クライアントデバイス110Aのスピーカを介してユーザに提示するために聴覚的にレンダリングさせることができる。
図4に示すように、合成音声454は、「はい、電話番号はなんですか(Sure, what's the phone number)」を含むことができる。
【0066】
さらに、合成音声454がユーザに提示するために聴覚的にレンダリングされていることに応答して、ユーザが、数秒間の休止が続く「それは、うーん...(It's uhhh...)」という発話456と、別の数秒間の休止が続く発話458とを提供すると仮定する。ユーザが発話456および458を提供すると、自動アシスタントは、実施される次の対話状態を決定するために、現在の状態を反復的に更新するために、クライアントデバイス110Aのマイクロフォンによって生成されたオーディオデータのストリームを処理し続けることができる。例えば、ユーザが発話456を提供した後、ユーザが発話458を提供する前のダイアログセッションの所与の時点において、現在の状態を決定する際に利用されるオーディオベースの特徴に含まれるイントネーションまたは話す調子は、ユーザが「オフィス」の電話番号について確信がないが、電話番号を見つけようとしていることを示す可能性がある。この例において、自動アシスタントは、ユーザが電話番号を見つけることによって自分の考えを完了するための時間を提供されるように、いかなる対話を実施させることも控えることを決定し得る。したがって、自動アシスタントが、ユーザが発話456を完了したと判定したとしても、自動アシスタントは、ユーザからのさらなる情報を依然として待つことができる。さらに、ユーザが発話458を提供した後のダイアログセッションの所与の時点において、現在の状態を決定する際に利用されるオーディオベースの特徴に含まれるイントネーションまたは話す調子は、ユーザが「オフィス」の電話番号について確信がないことを依然として示す可能性がある。結果として、自動アシスタントは、ユーザが電話番号を見つけることによって自分の考えを完了するための時間を提供されるように、いかなる対話を実施させることも控えることを依然として決定し得る。しかしながら、ダイアログセッションの後続の時点(例えば、ユーザが発話458を提供した数秒後)において、オーディオベースの特徴は、ユーザが発話458を提供してからの持続時間を含み得る。
【0067】
この例において、NLUデータのストリームおよびフルフィルメントデータのストリーム(例えば、ユーザの代わりに通話を開始するために「オフィス」の電話番号が必要であることを依然として示す)と、ユーザが電話番号について確信がなく、数秒間沈黙していることを示すオーディオベースの特徴とに基づいて、決定された現在の状態は、1つまたは複数の自然な会話出力がダイアログセッションの促進のために次の対話状態として実施されるべきであることを示し得る。したがって、自動アシスタントが、ユーザが所与の時点において発話458を完了したと判定したとしても、自動アシスタントは、1つまたは複数の自然な会話出力が次の対話状態として実施されるべきなのが(例えば、所与の時点に続く)この後続の時点までではないように、ユーザからのさらなる情報を依然として待つことができる。
【0068】
実施されるべき1つまたは複数の自然な会話出力は、自然な会話出力のセットの中から選択されることが可能である。自然な会話出力のセットは、例えば、ユーザがさらに情報を収集したいかどうかもしくはユーザの考えを要求する合成音声を含む合成音声オーディオデータ、ユーザが自動アシスタントと対話したいという欲求を依然として持っているかどうかを要求する合成音声を含む合成音声オーディオデータ、および/または他の自然な会話出力を含み得る。さらに、この例において、フルフィルメントデータのストリームは、「オフィス」に利用可能な連絡先エントリが存在しないことを示し、オーディオベースの特徴は、ユーザが「オフィス」の連絡先エントリに関連付けられた情報について確信がないことを示すので、自動アシスタントは、ユーザがさらに情報を収集したいかどうかまたはユーザの考えを要求する合成音声オーディオデータであるべきである、ユーザに提示するために聴覚的にレンダリングされるべき次の自然な会話出力を選択することができる。したがって、自動アシスタントは、ユーザがさらに情報を収集したいかどうかまたはユーザの考えを要求する合成音声オーディオデータ内に含まれる合成音声460を、クライアントデバイス110Aのスピーカを介してユーザに提示するために聴覚的にレンダリングさせることができる。
図4に示すように、合成音声460は、「もっと時間を必要としますか(Do you need more time?)」を含むことができる。
【0069】
さらに、合成音声460がユーザに提示するために聴覚的にレンダリングされていることに応答して、ユーザが「はい(Yes)」という発話462を提供し、自動アシスタントが、より多くの時間の遅延に対するユーザの希望を確認するために、「わかりました(Okay)」という合成音声464をユーザに提示するために聴覚的にレンダリングさせたと仮定する。いくつかの実装形態において、ユーザが(例えば、「それを見つけるために少し時間をくれますか(Can you give me some time to find it?)」の発話を提供することによって)遅延を呼び出した場合であっても、自動アシスタントは、現在の状態を更新するためにオーディオデータのストリームを処理し続け得るが、実施されるべき次の対話状態が、ユーザが自動アシスタントにさらなる入力(例えば、音声入力、タッチ入力、および/またはタイプ入力)を指示しない限り、しきい値持続時間(例えば、10秒、15秒、30秒など)の間、いかなる対話が実施されることも控えることに対応すると決定し得る。追加または代替の実装形態において、ユーザが遅延を呼び出した場合であっても、自動アシスタントは、現在の状態を更新するためにオーディオデータのストリームを処理し続け得るが、遅延に関係なく実施されるべき次の対話状態を決定し得る。
【0070】
例えば、466によって示すようにユーザが発話462を提供してから15秒が経過したとさらに仮定し、468によって示すように音声活動が検出されたとさらに仮定する。この例において、自動アシスタントは、VADモデルを使用してオーディオデータのストリームを処理することによって、音声活動が検出されたと判定することができる。さらに、自動アシスタントは、音声活動をキャプチャするオーディオデータのストリームに基づいて生成されたNLUデータの更新されたストリームに基づいて、検出された音声活動が自動アシスタントに向けられているかどうかを判定することができる。音声活動が実際に自動アシスタントに向けられていると仮定すると、自動アシスタントは、現在の状態に基づいて、実施されるべき次の対話状態を決定し、次の対話状態を実施させることができる。しかしながら、音声活動が自動アシスタントに向けられていないと仮定すると、
図4に関して説明したように、オーディオベースの特徴は、オーディオデータのストリームを処理することに基づいて、自動アシスタントに向けられていない音声活動が検出され、ユーザが最後に自動アシスタントに発話を提供してからの持続時間が15秒(または、しきい値持続時間を満たし得るなにか他の持続時間)であることを決定している。したがって、この時点において、自動アシスタントは、1つまたは複数の自然な会話出力がユーザに促すために次の対話状態として実施されるべきであると決定することができる。例えば、自動アシスタントは、ユーザが自動アシスタントと対話し続けるかどうかの希望を示すことを要求する合成音声オーディオデータ内に含まれる合成音声470を引き起こすことができる。
図4に示すように、合成音声470は、自動アシスタントとのダイアログセッションを続けるかどうかの希望を示すためのユーザに対するプロンプトとして、「まだそこにいますか(Still there?)」を含むことができる。
【0071】
さらに、ユーザは、合成音声470への応答である「はい、番号は、123-456-7890です(Yes, the number is 123-456-7890)」という発話472を提供すると仮定する。この時点において、自動アシスタントは、発話472をキャプチャするオーディオデータのストリームに基づいて、現在の状態を更新することができる。例えば、NLU出力のストリームは、電話番号パラメータのスロット値(例えば、「123-456-7890」)を示すように更新されることが可能である。結果として、フルフィルメントデータのストリームは、「オフィス」への通話が開始されることが可能であることを示すように更新されることが可能である。したがって、この時点において、更新された現在の状態に基づいて、自動アシスタントは、フルフィルメント出力を実施させることができる。この例において実施されるべきフルフィルメント出力は、ユーザに代わって「オフィス」との通話を開始するためのアシスタントコマンド(例えば、「123-456-7890」の電話番号)を含むことができ、オプションで、通話が開始されていることの指示をユーザに提供するために、「わかりました、今オフィスに電話します(Alright, calling the office now)」という合成音声474を含むことができる。したがって、
図4の例において、自動アシスタントは、ターン制ダイアログセッションのように各発話に単に応答するのではなく、ダイアログセッションの促進ために実施されるべき次の対話状態を反復的に決定することができる。
【0072】
特に、通話は、合成音声474に関連付けられたダイアログセッションの時点まで開始されないが、自動アシスタントは、通話を開始するアシスタントコマンドをこの時点よりも前に部分的に履行させることができる。例えば、自動アシスタントは、(例えば、
図1の部分フルフィルメントエンジン165に関して説明したように)ユーザが電話番号パラメータのスロット値を最終的に提供したときに開始される通話における待ち時間を短縮するために、発話452を受信することに応答して(またはダイアログセッションの別の時点において)クライアントデバイスのバックグラウンドにおいて実行されている電話アプリケーションとの接続を確立することができる。さらに、ダイアログセッションが自動アシスタントアプリケーションを介する転写として示されているが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。
【0073】
ここで
図5A、
図5B、および
図5Cに進むと、ダイアログセッション中にフルフィルメント出力を実施させることの様々な非限定的な例が示されている。自動アシスタントは、クライアントデバイス110B(例えば、
図1に関して説明した自動アシスタント115)において少なくとも部分的に実装されることが可能である。自動アシスタントは、自動アシスタントが次の対話状態として実施されるべきフルフィルメントを決定すると仮定して、実施されるべきフルフィルメント出力を決定するために自然会話システム(例えば、
図1に関して説明した自然会話システム180)を利用することができる。
図5A、
図5B、および
図5Cに示すクライアントデバイス110Bは、例えば、発話および/または他の可聴入力に基づいてオーディオデータを生成するためのマイクロフォン、合成音声および/または他の可聴出力を聴覚的にレンダリングするためのスピーカ、ならびにタッチ入力を受信し、および/または転写および/もしくは他の視覚的出力を視覚的にレンダリングするためのディスプレイ190Bを含む、様々なユーザインターフェース構成要素を含み得る。
図5A、
図5B、および
図5Cに示すクライアントデバイス110Bは、ディスプレイ190Bを有するスタンドアロンの対話型スピーカであるが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。
【0074】
図5A、
図5B、および
図5C全体にわたる例のために、ユーザ101が「アシスタント、15分のタイマを設定して(Assistant, set a timer for 15 minutes)」という発話552を提供すると仮定する。さらに、自動アシスタントが実施されるべき次の対話状態を決定したことが、NLU出力のストリーム、フルフィルメントデータのストリーム、および/または発話552をキャプチャするオーディオデータのストリームを処理することに基づいて生成されたオーディオベースの特徴の現在の状態に基づいて、1つまたは複数のフルフィルメント出力を実施させていると仮定する。しかしながら、これらの例において、自動アシスタントによって実施される1つまたは複数のフルフィルメント出力は、現在の状態を決定する際に利用されるNLUデータのストリームに関連付けられたNLU測定値、および/または現在の状態を決定する際に利用されるフルフィルメントデータのストリームに関連付けられたフルフィルメント測定値に基づいて変化し得る。
【0075】
図5Aを具体的に参照し、さらに、NLU測定値、フルフィルメント測定値、および/またはNLU測定値とフルフィルメント測定値とのなんらかの組み合わせ(例えば、測定値の平均、測定値の最低値など)が、自動アシスタントが、ユーザが15分のタイマを設定する希望を示したことを高く確信していることを示すと仮定する。例えば、NLU測定値および/またはフルフィルメント測定値が、第1のしきい値測定値および第2のしきい値測定値(または、個別に検討する場合、それぞれの第1のしきい値測定値およびそれぞれの第2のしきい値測定値)を満たすと仮定する。したがって、NLU測定値は、15分の持続時間パラメータのスロット値とともに、タイマを設定することに関連付けられた意図においてこの高い確信を示すことができ、フルフィルメント測定値は、15分のタイマを設定するためのアシスタントコマンドにおいてこの高い確信を示すことができる。結果として、自動アシスタントは、1)15分のタイマを設定するためのアシスタントコマンドを実装すること、2)ディスプレイ190Bにおいて示された15分のタイマによって示されるようにユーザへの視覚的提示のために提供されるべきグラフィカルコンテンツを実装すること、および/または3)「わかりました、15分のタイマを設定します(Okay, I set a timer for 15-one five-minutes)」という合成音声554Aを実装することのフルフィルメント出力を選択することができる。
【0076】
図5Bを具体的に参照し、さらに、NLU測定値、フルフィルメント測定値、および/またはNLU測定値とフルフィルメント測定値とのなんらかの組み合わせ(例えば、測定値の平均、測定値の最低値など)が、自動アシスタントが、ユーザが15分のタイマを設定する希望を示したことを中程度に確信していることを示すと仮定する。例えば、NLU測定値および/またはフルフィルメント測定値が、第1のしきい値測定値を満たすが、第2のしきい値測定値を満たさない(または、個別に検討する場合、それぞれの第1のしきい値測定値を満たすが、それぞれの第2のしきい値測定値を満たさない)と仮定する。したがって、NLU測定値は、15分の持続時間パラメータのスロット値(ただし、50分の持続時間パラメータのスロット値も考慮されたい)とともに、タイマを設定することに関連付けられた意図においてこの中程度の確信を示すことができ、フルフィルメント測定値は、15分のタイマを設定するためのアシスタントコマンド(ただし、50分のタイマを設定するためのアシスタントコマンドも考慮されたい)においてこの中程度の確信を示すことができる。結果として、自動アシスタントは、1)ディスプレイ190Bにおいて示された15分のタイマによって示されるようにユーザへの視覚的提示のために提供されるべきグラフィカルコンテンツを実装すること、および/または2)「わかりました、50分ではなく15分のタイマが欲しいのですね(Okay, you want a timer for 15 minutes, not 50 minutes, right?)」という合成音声554Bを実装することのフルフィルメント出力を選択することができる。この例において、自動アシスタントは、ユーザが、タイマが50分ではなく15分に設定されるべきであることを確認するまで、タイマを15分に設定するためのアシスタントコマンドを実施しない場合があるが、アシスタントコマンドは、(ユーザへの視覚的提示のために提供されるグラフィカルコンテンツを実装することによって示されるように)すでに部分的に履行される場合がある。
【0077】
図5Cを具体的に参照し、さらに、NLU測定値、フルフィルメント測定値、および/またはNLU測定値とフルフィルメント測定値とのなんらかの組み合わせ(例えば、測定値の平均、測定値の最低値など)が、自動アシスタントが、ユーザが15分のタイマを設定する希望を示したことを確信していないことを示すと仮定する。例えば、NLU測定値および/またはフルフィルメント測定値が、第1のしきい値測定値と第2のしきい値測定値の両方(または、個別に検討する場合、それぞれの第1のしきい値測定値とそれぞれの第2のしきい値測定値)を満たせないと仮定する。したがって、NLU測定値は、15分または50分の持続時間パラメータのスロット値とともに、タイマを設定することに関連付けられた意図においてこの低い確信を示すことができ、フルフィルメント測定値は、15分または50分のタイマを設定するためのアシスタントコマンドにおいてこの低い確信を示すことができる。結果として、自動アシスタントは、1)ディスプレイ190Bにおいて示された15分のタイマと50分のタイマの両方によって示されるようにユーザへの視覚的提示のために提供されるべきグラフィカルコンテンツを実装すること、および/または2)「タイマ、確かに、しかしそれは15分または50分でしたか(A timer, sure, but was that 15 minutes or 50 minutes?)」という合成音声554Cを実装することのフルフィルメント出力を選択することができる。この例において、自動アシスタントは、ユーザが、タイマが50分ではなく15分に設定されるべきであることを確認するまで、タイマを15分または50分に設定するためのアシスタントコマンドを実施しない場合があるが、アシスタントコマンドは、(ユーザへの視覚的提示のために提供されるグラフィカルコンテンツを実装することによって示されるように)すでに部分的に履行される場合がある。
【0078】
したがって、自動アシスタントが、実施されるべき次の対話状態が(自然な会話出力を聴覚的にレンダリングさせること、または対話を実施させることを控えることではなく)フルフィルメント出力を実施させることであると判定した場合であっても、自動アシスタントは、フルフィルメント出力としてなにを含めるかを依然として決定することができる。
図5A、
図5B、および
図5Cは、特定のしきい値に基づいて実施される特定のフルフィルメント出力に関して説明されているが、それは、例のためのものであり、限定することを意味していないことが理解されるべきである。例えば、実施されるべきフルフィルメント出力を決定するために、複数の追加または代替のしきい値が利用されることが可能である。また、例えば、フルフィルメント出力は、図示されているものとは異なる場合がある。例えば、
図4を再び参照すると、自動アシスタントは、ユーザがタイマを15分に設定する希望を示したことを高く確信しているので、合成音声554Aを提供することなく、単にユーザのためにタイマを15分に設定し得る。
【0079】
ここで
図6に進むと、本明細書で説明する技法の1つまたは複数の態様を実行するためにオプションで利用され得る例示的なコンピューティングデバイス610のブロック図が示されている。いくつかの実装形態において、クライアントデバイス、クラウドベースの自動アシスタント構成要素、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を備え得る。
【0080】
コンピューティングデバイス610は、典型的には、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、例えば、メモリサブシステム625およびファイル記憶サブシステム626を含む記憶サブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含み得る。入力デバイスおよび出力デバイスは、ユーザがコンピューティングデバイス610と対話することを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0081】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイスまたは通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0082】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するためのなにか他のメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどして、非視覚的ディスプレイを提供し得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス610からユーザまたは別の機械もしくはコンピューティングデバイスに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0083】
記憶サブシステム624は、本明細書で説明するモジュールのうちのいくつかまたはすべての機能を提供するプログラミング構造およびデータ構造を記憶する。例えば、記憶サブシステム624は、本明細書で開示する方法の選択された態様を実行するため、ならびに
図1および
図2に示す様々な構成要素を実装するためのロジックを含み得る。
【0084】
これらのソフトウェアモジュールは、一般に、プロセッサ614単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム624内で使用されるメモリ625は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)630と、固定命令が記憶される読み取り専用メモリ(ROM)632とを含むいくつかのメモリを含むことができる。ファイル記憶サブシステム626は、プログラムおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連付けられたリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装するモジュールは、記憶サブシステム624内のファイル記憶サブシステム626によって、またはプロセッサ614によってアクセス可能な他の機械内に記憶され得る。
【0085】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムを意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は、単一のバスとして概略的に示されているが、バスサブシステム612の代替実装形態は、複数のバスを使用し得る。
【0086】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであることが可能である。コンピュータおよびネットワークの絶えず変化する性質のために、
図6に示すコンピューティングデバイス610の説明は、いくつかの実装形態を説明する目的のための特定の例としてのみ意図されている。コンピューティングデバイス610の他の多くの構成は、
図6に示すコンピューティングデバイスよりも多いまたは少ない構成要素を有することが可能である。
【0087】
本明細書で説明するシステムがユーザに関する個人情報を収集もしくは他の方法で監視するか、または個人情報および/もしくは監視情報を利用する可能性がある状況では、ユーザは、プログラムまたは機能がユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置に関する情報)を収集するかどうかを制御する機会、またはユーザにより関連性がある可能性があるコンテンツサーバからのコンテンツを受信するかどうかおよび/もしくはどのように受信するかを制御する機会を提供され得る。また、特定のデータは、個人を特定し得る情報が除去されるように、それが記憶または使用される前に1つまたは複数の方法で処理され得る。例えば、ユーザの識別情報は、個人を特定し得る情報がユーザに関して決定され得ないように処理され得、またはユーザの地理的位置は、ユーザの特定の地理的位置が決定され得ないように、地理的位置情報が取得される場所(都市、郵便番号、または州レベルなど)で一般化され得る。したがって、ユーザは、情報がユーザに関してどのように収集および/または使用されるかについて制御し得る。
【0088】
いくつかの実装形態において、1つまたは複数のプロセッサによって実装される方法が提供され、自動音声認識(ASR)モデルを使用して、ASR出力のストリームを生成するためにオーディオデータのストリームを処理するステップであって、オーディオデータのストリームがクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、オーディオデータのストリームが、クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントに向けられたユーザの1つまたは複数の発話をキャプチャする、ステップと、自然言語理解(NLU)モデルを使用して、NLU出力のストリームを生成するためにASR出力のストリームを処理するステップと、NLU出力のストリームに基づいて、フルフィルメントデータのストリームを生成するステップと、オーディオデータのストリームを処理することに基づいて、発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴を決定するステップと、NLU出力のストリーム、フルフィルメントデータのストリーム、および発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴の現在の状態に基づいて、実施されるべき次の対話状態が、(i)フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定するステップと、次の対話状態を実施させるステップとを含む。
【0089】
本明細書で開示する技術のこれらおよび他の実装形態は、オプションで、以下の特徴のうちの1つまたは複数を含むことができる。
【0090】
いくつかの実装形態において、NLU出力のストリーム、フルフィルメントデータのストリーム、および発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴の現在の状態に基づいて、実施されるべき次の対話状態が、(i)フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定するステップは、分類機械学習(ML)モデルを使用して、(i)フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させること、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせること、および(iii)いかなる対話を実施させることも控えることの各々に関連付けられた対応する予測応答測定値を生成するために、NLU出力のストリーム、フルフィルメントデータのストリーム、およびオーディオベースの特徴の現在の状態を処理するステップと、対応する予測応答測定値に基づいて、実施されるべき次の対話状態が、(i)フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させるか、(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせるか、または(iii)いかなる対話を実施させることも控えるかを決定するステップとを含み得る。
【0091】
いくつかの実装形態において、方法は、フルフィルメントデータのストリームに基づいて、フルフィルメント出力のセットを決定するステップと、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、フルフィルメント出力のセットの中からフルフィルメント出力を選択するステップとをさらに含み得る。
【0092】
それらの実装形態のいくつかの変形例において、フルフィルメント出力のセットの中からフルフィルメント出力を選択するステップは、実施されるべき次の対話状態が、(i)フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力を実施させることであると決定するステップに応答し得る。NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、フルフィルメント出力のセットの中からフルフィルメント出力を選択するステップは、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値が、第1のしきい値測定値と第2のしきい値測定値の両方を満たすと判定したことに応答して、フルフィルメント出力のセットの中から第1のフルフィルメント出力をフルフィルメント出力として選択するステップを含み得る。
【0093】
それらの実装形態のいくつかのさらなる変形例において、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、フルフィルメント出力のセットの中からフルフィルメント出力を選択するステップは、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値が、第1のしきい値測定値を満たすが、第2のしきい値測定値を満たさないと判定したことに応答して、フルフィルメント出力のセットの中から第2のフルフィルメント出力をフルフィルメント出力として選択するステップをさらに含み得る。第2のフルフィルメント出力は、第1のフルフィルメント出力とは異なり得る。
【0094】
それらの実装形態のいくつかの追加または代替のさらなる変形例において、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値に基づいて、フルフィルメント出力のセットの中からフルフィルメント出力を選択するステップは、NLUデータのストリームに関連付けられた予測されるNLU測定値および/またはフルフィルメントデータのストリームに関連付けられた予測されるフルフィルメント測定値が、第1のしきい値測定値と第2のしきい値測定値の両方を満たさないと判定したことに応答して、フルフィルメント出力のセットの中から第3のフルフィルメント出力をフルフィルメント出力として選択するステップをさらに含み得る。第3のフルフィルメント出力は、第1のフルフィルメント出力と第2のフルフィルメント出力の両方と異なり得る。
【0095】
それらの実装形態のいくつかの変形例において、フルフィルメントデータのストリームに基づいてフルフィルメント出力のセットを決定するステップは、複数のサードパーティエージェントを使用して、対応するファーストパーティフルフィルメント出力を生成するためにフルフィルメントデータを処理するステップと、対応するファーストパーティフルフィルメント出力をフルフィルメント出力のセットに組み込むステップとを含み得る。それらの実装形態のいくつかのさらなる変形例において、フルフィルメントデータのストリームに基づいてフルフィルメント出力のセットを決定するステップは、1つまたは複数のネットワークを介して、クライアントデバイスから1つまたは複数のサードパーティシステムにフルフィルメントデータを送信するステップと、ネットワークのうちの1つまたは複数を介して、クライアントデバイスにおいて、1つまたは複数のサードパーティシステムから対応するサードパーティフルフィルメント出力を受信するステップと、複数のファーストパーティバーティカルを使用して生成された対応するサードパーティフルフィルメント出力をフルフィルメント出力のセットに組み込むステップとをさらに含み得る。サードパーティシステムのうちの1つまたは複数にフルフィルメントデータを送信するステップは、対応するサードパーティフルフィルメント出力を生成するために、サードパーティシステムの各々に、対応するサードパーティエージェントを使用して、フルフィルメントデータを処理させる。
【0096】
それらの実装形態のいくつかの変形例において、方法は、フルフィルメントデータのストリームに基づいて生成されたフルフィルメント出力に対応する任意の合成音声をクライアントデバイスの1つまたは複数のスピーカを介して聴覚的にレンダリングさせる前に、フルフィルメント出力のセット内のフルフィルメント出力のうちの1つまたは複数について、部分的なフルフィルメントを開始するステップであって、部分的なフルフィルメントが、フルフィルメント出力のセット内のフルフィルメント出力の各々に固有である、ステップをさらに含み得る。
【0097】
いくつかの実装形態において、フルフィルメント出力は、クライアントデバイスのスピーカのうちの1つもしくは複数を介してユーザに提示するために聴覚的にレンダリングされるべきフルフィルメント出力に対応する合成音声を含む合成音声オーディオデータ、クライアントデバイスもしくはクライアントデバイスと通信する追加のクライアントデバイスのディスプレイを介してユーザに提示するために視覚的にレンダリングされるべきフルフィルメント出力に対応するグラフィカルコンテンツ、または実行されると、自動アシスタントにクライアントデバイスもしくはクライアントデバイスと通信する追加のクライアントデバイスを制御させる、フルフィルメント出力に対応するアシスタントコマンドのうちの1つまたは複数を含み得る。
【0098】
いくつかの実装形態において、方法は、クライアントデバイスによってアクセス可能な1つまたは複数のデータベースにおいて、自然な会話出力のセットを維持するステップと、少なくとも発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴に基づいて、自然な会話出力のセットの中から自然な会話出力を選択するステップとをさらに含み得る。それらの実装形態のいくつかの変形例において、自然な会話出力のセットの中から自然な会話出力を選択するステップは、実施されるべき次の対話状態が(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることであると決定することに応答し得る。自然な会話出力のセットの中から自然な会話出力を選択するステップは、NLU出力に関連付けられた予測測定値と、発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴とに基づいて、自然な会話出力のセットの中から第1の自然な会話出力を自然な会話出力として選択するステップを含み得る。それらの実装形態のいくつかのさらなる変形例において、自然な会話出力のセットの中から自然な会話出力を選択するステップは、NLU出力に関連付けられた予測測定値と、発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴とに基づいて、自然な会話出力のセットの中から第2の自然な会話出力を自然な会話出力として選択するステップをさらに含み得る。第2の自然な会話出力は、第1の自然な会話出力とは異なり得る。
【0099】
いくつかの実装形態において、方法は、実施されるべき次の対話状態が(iii)いかなる対話を実施させることも控えることであると決定したことに応答して、音声活動検出モデルを使用して、音声活動の発生を監視するためにオーディオデータのストリームを処理するステップと、音声活動の発生を検出したことに応答して、音声活動の発生が自動アシスタントに向けられているかどうかを判定するステップとをさらに含み得る。それらの実装形態のいくつかの変形例において、音声活動の発生が自動アシスタントに向けられているかどうかを判定するステップは、ASRモデルを使用して、ASR出力のストリームを生成し続けるために、オーディオデータのストリームを処理するステップと、NLUモデルを使用して、NLU出力のストリームを生成し続けるために、ASR出力のストリームを処理するステップと、NLU出力のストリームに基づいて、音声活動の発生が自動アシスタントに向けられているかどうかを判定するステップとを含み得る。それらの実装形態のいくつかのさらなる変形例において、方法は、音声活動の発生が自動アシスタントに向けられていると決定したことに応答して、NLU出力のストリームに基づいて、フルフィルメントデータのストリームを生成し続けるステップと、フルフィルメントデータのストリームに基づいて、フルフィルメント出力が選択されるフルフィルメント出力のセットを更新するステップとをさらに含み得る。それらの実装形態の追加または代替のさらなる変形例において、方法は、音声活動の発生が自動アシスタントに向けられていないと決定したことに応答して、ユーザが1つまたは複数の発話を提供してからしきい値持続時間が経過したかどうかを判定するステップと、ユーザが1つまたは複数の発話を提供してからしきい値持続時間が経過したと判定したことに応答して、実施されるべき次の対話状態が(ii)自然な会話出力をユーザに提示するために聴覚的にレンダリングさせることであると決定するステップとをさらに含み得る。それらの実装形態のさらに別の変形例において、クライアントデバイスのスピーカのうちの1つまたは複数を介してユーザに提示するために聴覚的にレンダリングされるべき自然な会話出力は、自動アシスタントと対話し続けるかどうかの希望の指示、またはユーザと自動アシスタントとの間のダイアログセッションの促進のためにユーザが追加のユーザ入力を提供することの要求のうちの1つまたは複数を含み得る。
【0100】
いくつかの実装形態において、発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴は、1つもしくは複数の発話の各々に関連付けられた1つもしくは複数の韻律特性であって、1つもしくは複数の韻律特性が、イントネーション、トーン、ストレス、リズム、テンポ、ピッチ、および休止のうちの1つまたは複数を含む、1つもしくは複数の韻律特性、またはユーザが1つもしくは複数の発話のうちの最新の発話を提供してから経過した持続時間のうちの1つまたは複数を含み得る。
【0101】
いくつかの実装形態において、NLU出力のストリーム、フルフィルメントデータのストリーム、および発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴の現在の状態は、1つまたは複数の発話のうちの最新の発話に基づいて生成されたNLU出力の最新のインスタンスと、最新のNLU出力に基づいて生成されたフルフィルメントデータの最新のインスタンスと、最新の発話に基づいて生成されたオーディオベースの特徴の最新のインスタンスとを含み得る。それらの実装形態のいくつかの変形例において、NLU出力のストリーム、フルフィルメントデータのストリーム、および発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴の現在の状態は、最新の発話に先行する1つまたは複数の過去の発話に基づいて生成されたNLU出力の1つまたは複数の履歴インスタンスと、NLU出力の1つまたは複数の履歴インスタンスに基づいて生成されたフルフィルメントデータの1つまたは複数の履歴インスタンスと、1つまたは複数の過去の発話に基づいて生成されたオーディオベースの特徴の1つまたは複数の履歴インスタンスとをさらに含み得る。
【0102】
いくつかの実装形態において、1つまたは複数のプロセッサによって実装される方法が提供され、自動音声認識(ASR)モデルを使用して、ASR出力のストリームを処理するステップであって、オーディオデータのストリームがクライアントデバイスの1つまたは複数のマイクロフォンによって生成され、オーディオデータのストリームが、クライアントデバイスにおいて少なくとも部分的に実装された自動アシスタントに向けられたユーザの1つまたは複数の発話をキャプチャする、ステップと、自然言語理解(NLU)モデルを使用して、NLU出力のストリームを生成するためにASR出力のストリームを処理するステップと、NLU出力のストリームに基づいて、フルフィルメントデータのストリームを生成するステップと、オーディオデータのストリームを処理することに基づいて、発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴を決定するステップと、NLU出力のストリーム、フルフィルメントデータのストリーム、および発話のうちの1つまたは複数に関連付けられたオーディオベースの特徴の現在の状態に基づいて、(i)いつ合成音声を含む合成音声オーディオデータをユーザに提示するために聴覚的にレンダリングさせるか、および(ii)なにを合成音声内に含めるかを決定するステップと、合成音声オーディオデータをユーザに提示するために聴覚的にレンダリングさせると決定したことに応答して、クライアントデバイスの1つまたは複数のスピーカを介して合成音声オーディオデータを聴覚的にレンダリングさせるステップと、合成音声オーディオデータをユーザに提示するために聴覚的にレンダリングさせないと決定したことに応答して、クライアントデバイスの1つまたは複数のスピーカを介して合成音声オーディオデータを聴覚的にレンダリングさせることを控えるステップとを含む。
【0103】
それに加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサ(例えば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU))を含み、1つまたは複数のプロセッサは、関連付けられたメモリ内に記憶された命令を実行するように動作可能であり、命令は、前述の方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態は、前述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する1つまたは複数の非一時的なコンピュータ可読記憶媒体も含む。いくつかの実装形態は、前述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能な命令を含むコンピュータプログラム製品も含む。
【符号の説明】
【0104】
110 クライアントデバイス
110A クライアントデバイス
110B クライアントデバイス
111 ユーザ入力エンジン
112 レンダリングエンジン
113 存在センサ
114 自動アシスタントクライアント
115 自動アシスタント
115A 機械学習(ML)モデルデータベース、MLモデルデータベース
120A1 自動音声認識(ASR)エンジン、ASRエンジン
120A2 ASRエンジン
130A1 自然言語理解(NLU)エンジン、NLUエンジン
130A2 NLUエンジン
140A1 フルフィルメントエンジン
140A2 フルフィルメントエンジン
150A1 テキスト読み上げ(TTS)エンジン、TTSエンジン
150A2 TTSエンジン
160 自然会話エンジン
161 音響エンジン
162 状態エンジン
163 フルフィルメント出力エンジン
164 自然会話出力エンジン、自然会話エンジン
165 部分フルフィルメントエンジン
171 1Pエージェント
172 3Pエージェント
180 自然会話システム
190A ディスプレイ
190B ディスプレイ
191 システムインターフェース要素
192 システムインターフェース要素
193 システムインターフェース要素
194 テキスト入力ボックス
195 マイクロフォンインターフェース要素
198 ソフトウェアアプリケーション
199 ネットワーク
201A オーディオデータのストリーム
201B 非オーディオデータのストリーム
220 ASR出力のストリーム
230 NLU出力のストリーム
240 フルフィルメントデータのストリーム
240A 1Pフルフィルメントデータ
240B 3Pフルフィルメントデータ
261 オーディオベースの特徴
262 現在の状態
263 フルフィルメント出力
264 自然な会話出力
452 発話
454 合成音声
456 発話
458 発話
460 合成音声
462 発話
464 合成音声
470 合成音声
472 発話
474 合成音声
552 発話
554A 合成音声
554B 合成音声
610 コンピューティングデバイス
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 記憶サブシステム
625 メモリサブシステム
626 ファイル記憶サブシステム
630 メインランダムアクセスメモリ(RAM)
632 読み取り専用メモリ(ROM)