(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-16
(54)【発明の名称】動的なコンテキスト対話セッション延長
(51)【国際特許分類】
G10L 15/04 20130101AFI20221109BHJP
G10L 15/10 20060101ALI20221109BHJP
G10L 15/28 20130101ALI20221109BHJP
【FI】
G10L15/04 300Z
G10L15/10 500T
G10L15/28 230K
G10L15/10 200W
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022516212
(86)(22)【出願日】2020-07-09
(85)【翻訳文提出日】2022-05-02
(86)【国際出願番号】 US2020041460
(87)【国際公開番号】W WO2021050159
(87)【国際公開日】2021-03-18
(32)【優先日】2019-09-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-07-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ケニウィック,マイケル・リチャード
(57)【要約】
休止またはタイムギャップによって分離され得る複数のユーザ発話をカバーする単一の対話セッションを維持することができ、セッション内の複数の発話にわたって意図を連続的に判断する対話システムが記載されている。
【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
対話システムが、対話セッションを開始するステップと、
前記対話システムが、第1の音声入力を受信するステップと、
前記対話システムが、第1の口頭発話の完了を示す前記第1の音声入力における休止を検出するステップと、
前記対話システムが、前記第1の口頭発話に基づいて、前記対話セッションのための停止条件を判断するステップとを含み、前記停止条件は、前記対話セッションを延長する第1の時間値を示し、前記方法はさらに、
前記対話システムが、前記対話セッションのための前記停止条件が満たされていないことを判断するステップと、
前記停止条件が満たされていないと判断したことに応答して、少なくとも前記停止条件によって示される前記第1の時間値だけ前記対話セッションを延長するステップとを含む、方法。
【請求項2】
前記対話システムが、前記対話セッションが複数の構成された状態のうちの特定の状態にあることを判断するステップをさらに含み、
前記対話システムは、前記判断された状態に基づいて、前記対話セッションのための前記停止条件を判断する、請求項1に記載の方法。
【請求項3】
前記対話システムが、前記第1の音声入力に基づいて応答を生成するステップと、
前記対話システムが、前記応答を出力するステップとをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記応答を生成するステップおよび前記応答を出力するステップは、前記停止条件が満たされていないことを判断するステップの前に実行される、請求項3に記載の方法。
【請求項5】
前記対話システムが、第2の音声入力を受信するステップと、
前記対話システムが、第2の口頭発話の完了を示す前記第2の音声入力における第2の休止を検出するステップと、
前記対話システムが、前記第2の口頭発話に基づいて、前記対話セッションのための第2の停止条件を判断するステップとをさらに含み、前記第2の停止条件は、前記対話セッションを延長する第2の時間値を示す、先行する請求項のいずれか1項に記載の方法。
【請求項6】
前記対話システムが、前記第1の音声入力および前記第2の音声入力に基づいて意図を識別するステップをさらに含む、請求項5に記載の方法。
【請求項7】
前記対話システムが、前記第1の音声入力または前記第2の音声入力のうちの1つまたは複数に基づいて応答を生成するステップと、
前記対話システムが、前記応答を出力するステップとをさらに含む、請求項5または6に記載の方法。
【請求項8】
前記対話システムが、前記応答を出力するステップの後に、前記第2の停止条件が満たされていることを判断するステップと、
前記対話システムが、前記対話セッションを終了させるステップとをさらに含む、請求項7に記載の方法。
【請求項9】
前記対話システムは、前記休止の長さ、前記第1の音声入力または前記第2の音声入力のうちの1つまたは複数に基づいて前記第2の停止条件を判断する、請求項5~8のいずれか1項に記載の方法。
【請求項10】
前記対話セッションを開始するステップは、
ウェイクワードを検出するステップ、または
開始ボタンとのインタラクションを検出するステップ、のうちの1つまたは複数を含む、先行する請求項のいずれか1項に記載の方法。
【請求項11】
前記対話システムが、第3の音声入力を受信するステップと、
前記対話システムが、前記第3の音声入力および前記第1の音声入力に基づいて、前記第3の音声入力が前記第1の音声入力に関連していないことを判断するステップと、
前記対話システムが、前記第3の音声入力を無視するステップとをさらに含む、先行する請求項のいずれか1項に記載の方法。
【請求項12】
1つまたは複数のプロセッサによって実行可能な複数の命令を格納する非一時的なコンピュータ読取可能メモリであって、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
対話セッションを開始するステップと、
第1の音声入力を受信するステップと、
第1の口頭発話の完了を示す前記第1の音声入力における休止を検出するステップと、
前記第1の口頭発話に基づいて、前記対話セッションのための停止条件を判断するステップとを含み、前記停止条件は、前記対話セッションを延長する第1の時間値を示し、前記処理はさらに、
前記対話セッションのための前記停止条件が満たされていないことを判断するステップと、
前記停止条件が満たされていないと判断したことに応答して、少なくとも前記停止条件によって示される前記第1の時間値だけ前記対話セッションを延長するステップとを含む、非一時的なコンピュータ読取可能メモリ。
【請求項13】
前記処理は、
前記対話セッションが複数の構成された状態のうちの特定の状態にあることを判断するステップをさらに含み、
前記対話セッションのための前記停止条件は、前記判断された状態に基づいて判断される、請求項12に記載の非一時的なコンピュータ読取可能メモリ。
【請求項14】
前記処理は、
前記第1の音声入力に基づいて応答を生成するステップと、
前記応答を出力するステップとをさらに含み、前記応答を生成するステップおよび前記応答を出力するステップは、前記停止条件が満たされていないことを判断するステップの前に実行される、請求項12または13に記載の非一時的なコンピュータ読取可能メモリ。
【請求項15】
前記処理は、
第2の音声入力を受信するステップと、
第2の口頭発話の完了を示す前記第2の音声入力における第2の休止を検出するステップと、
前記第2の口頭発話に基づいて、前記対話セッションのための第2の停止条件を判断するステップとをさらに含み、前記第2の停止条件は、前記対話セッションを延長する第2の時間値を示す、請求項12~14のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。
【請求項16】
前記処理は、
前記第1の音声入力および前記第2の音声入力に基づいて意図を識別するステップをさらに含む、請求項15に記載の非一時的なコンピュータ読取可能メモリ。
【請求項17】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたメモリとを備え、前記メモリは、前記1つまたは複数のプロセッサによって実行可能な複数の命令を格納しており、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
対話セッションを開始するステップと、
第1の音声入力を受信するステップと、
第1の口頭発話の完了を示す前記第1の音声入力における休止を検出するステップと、
前記第1の口頭発話に基づいて、前記対話セッションのための停止条件を判断するステップとを含み、前記停止条件は、前記対話セッションを延長する第1の時間値を示し、前記処理はさらに、
前記対話セッションのための前記停止条件が満たされていないことを判断するステップと、
前記停止条件が満たされていないと判断したことに応答して、少なくとも前記停止条件によって示される前記第1の時間値だけ前記対話セッションを延長するステップとを含む、システム。
【請求項18】
前記処理は、
前記対話セッションが複数の構成された状態のうちの特定の状態にあることを判断するステップをさらに含み、
前記停止条件が満たされていないことの前記判断は、前記判断された状態に基づく、請求項17に記載のシステム。
【請求項19】
前記処理は、
前記第1の音声入力に基づいて応答を生成するステップと、
前記応答を出力するステップとをさらに含み、前記応答を生成するステップおよび前記応答を出力するステップは、前記停止条件が満たされていないことを判断するステップの前に実行される、請求項17または18に記載のシステム。
【請求項20】
前記処理は、
第2の音声入力を受信するステップと、
第2の口頭発話の完了を示す前記第2の音声入力における第2の休止を検出するステップと、
前記第2の口頭発話に基づいて、前記対話セッションのための第2の停止条件を判断するステップとをさらに含み、前記第2の停止条件は、前記対話セッションを延長する第2の時間値を示し、前記処理はさらに、
前記第1の音声入力および前記第2の音声入力に基づいて意図を識別するステップを含む、請求項17~19のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、「発話にわたる連続的な意図判断(Continuous Intent Determination Across Utterances)」と題される2019年9月12日に出願された米国出願番号第62/899,645号および「動的なコンテキスト対話セッション延長(Dynamic Contextual Dialog Session Extension)」と題される2020年7月8日に出願された米国出願番号第16/923,483号の利益および優先権を主張し、これらの内容全体は、すべての目的のために引用によって本明細書に援用される。
【0002】
技術分野
本開示は、一般に対話システムに関する。より具体的には、本開示は、コンテキスト要因に基づいて対話セッションを動的に延長することによって対話セッションのエクスペリエンスおよび効率を向上させるための技術について記載しているが、それに限定されるものではない。
【背景技術】
【0003】
背景
現在、ユーザが音声または口頭のスピーチを使用してデバイスと直接対話することを可能にするデバイスが増えつつある。たとえば、ユーザは、このようなデバイスに自然言語で話しかけることができ、ユーザは、質問をしたり、実行すべき何らかのアクションを要求する発言をしたりし得る。これに応答して、デバイスは、要求されたアクションを実行したり、音声出力を使用してユーザの質問に応答したりする。音声を使用して直接対話することは、人間が周囲とコミュニケーションをとるためのより自然で直観的な方法であるので、このような音声ベースのシステムの人気は、天文学的な速度で上昇している。
【0004】
従来のシステムでは、ユーザとこのような対話システムを実装するデバイスとの間の対話は、単一入力単一応答パラダイムに基づく。たとえば、ユーザは、ウェイクワードを言うまたは「対話開始」ボタンを押すことによって対話システムを開始するまたは立ち上げる。ウェイクワードまたはボタン押下は、対話システムに新たな対話セッションを開始させる。ウェイクワードまたはボタン押下直後のユーザの口頭スピーチ発話が受信される。ある期間にわたる休止または沈黙のタイムギャップは、音声入力の終わりを示す。音声入力は、対話システムによって処理されて、応答が生成されてユーザに出力される。対話セッションは、応答がユーザに出力された後に終了される。対話セッションが終了されると、ユーザは、新たな対話を開始したければ、ウェイクワードを話すまたは対話開始ボタンを押すことをしなければならない。この単一入力単一応答パラダイムは、対話への不自然な流れを生じさせるため、ユーザにとってはいらだたしいであろう。
【発明の概要】
【課題を解決するための手段】
【0005】
簡単な概要
本開示は、一般に対話システムに関する。より特定的には、休止またはタイムギャップによって分離され得る複数のユーザ発話をカバーする単一の対話セッションを維持することができる対話システムが記載されている。この対話システムは、ユーザが1つまたは複数の文を話している間に連続的なフィードバック(たとえば、自然言語理解(NLU)/セマンティックパーサ出力のもの)をユーザに提供し得る。この対話システムは、音声入力における休止または中断を無視する条件を判断し得る。この対話システムは、連続音声が自動音声認識(ASR)サブシステムによって処理されるときにこの連続音声からNLU出力を連続的に生成し得る。方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コードまたは命令を格納する非一時的なコンピュータ読取可能記憶メモリなどを含むさまざまな実施形態が本明細書に記載されている。
【0006】
特定の実施形態において、対話システムは、対話セッションを開始する。上記対話システムは、第1の音声入力を受信する。上記対話システムは、第1の口頭発話の完了を示す上記第1の音声入力における休止を検出する。上記対話システムは、上記第1の口頭発話に基づいて、上記対話セッションのための停止条件を判断し、上記停止条件は、上記対話セッションを延長する第1の時間値を示す。上記対話システムは、上記対話セッションのための上記停止条件が満たされていないことを判断する。上記対話システムは、上記停止条件が満たされていないと判断したことに応答して、少なくとも上記停止条件によって示される上記第1の時間値だけ上記対話セッションを延長する。
【0007】
いくつかの局面において、上記対話システムはさらに、上記対話セッションが複数の構成された状態のうちの特定の状態にあることを判断し、上記対話システムは、上記判断された状態に基づいて、上記対話セッションのための上記停止条件を判断する。いくつかの局面において、上記対話システムはさらに、上記第1の音声入力に基づいて応答を生成し、上記応答を出力する。いくつかの局面において、上記応答を生成することおよび上記応答を出力することは、上記停止条件が満たされていないことを判断する前に実行される。
【0008】
いくつかの局面において、上記対話システムはさらに、第2の音声入力を受信し、第2の口頭発話の完了を示す上記第2の音声入力における第2の休止を検出し、上記第2の口頭発話に基づいて、上記対話セッションのための第2の停止条件を判断し、上記第2の停止条件は、上記対話セッションを延長する第2の時間値を示す。いくつかの局面において、上記対話システムはさらに、上記第1の音声入力および上記第2の音声入力に基づいて意図を識別する。
【0009】
いくつかの局面において、上記対話システムはさらに、上記第1の音声入力または上記第2の音声入力のうちの1つまたは複数に基づいて応答を生成し、上記応答を出力する。いくつかの局面において、上記対話システムはさらに、上記応答を出力した後に、上記停止条件が満たされていることを判断し、上記対話セッションを終了させる。いくつかの局面において、上記対話システムは、上記休止の長さ、上記第1の音声入力または上記第2の音声入力のうちの1つまたは複数に基づいて上記第2の停止条件を判断する。
【0010】
いくつかの局面において、上記対話セッションを開始することは、ウェイクワードを検出すること、または開始ボタンとのインタラクションを検出すること、のうちの1つまたは複数を備える。いくつかの局面において、上記対話システムはさらに、第3の音声入力を受信する。上記対話システムは、上記第3の音声入力および上記第1の音声入力に基づいて、上記第3の音声入力が上記第1の音声入力に関連していないことを判断し、上記第3の音声入力を無視する。
【0011】
実施形態はさらに、本明細書に記載されている方法を実行するように構成されたシステムおよびコンピュータ読取可能媒体を含む。
【0012】
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【0013】
【
図1】特定の実施形態に係る、対話システムを示す簡略化されたブロック図である。
【
図2】特定の実施形態に係る、
図1の対話マネージャサブシステムを示す簡略化されたブロック図である。
【
図3】特定の実施形態に係る、1つまたは複数の発話にわたる対話セッション延長のための方法を示す簡略化されたフローチャートである。
【
図4】特定の実施形態に係る、
図3の停止条件が満たされたか否かを判断するための方法を示す簡略化されたフローチャートである。
【
図5】特定の実施形態に係る、音声入力が他の音声入力に関連しているか否かを判断するための方法を示す簡略化されたフローチャートである。
【
図6】一実施形態を実現するための分散型システムの簡略図である。
【
図7】特定の実施形態に係る、さまざまな対話セッション関連サービスがクラウドサービスとして提供され得るクラウドベースのシステム環境の簡略化されたブロック図である。
【
図8】特定の実施形態を実現するために使用され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0014】
詳細な説明
以下の説明には、特定の実施形態を十分に理解できるようにするために、具体的な詳細が説明の目的で記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施形態を実施できるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。本明細書において、「例示的な」という単語は、「例、例証または例示としての役割を果たす」ことを意味するように使用されている。例示的であるとして本明細書に記載されているいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるものではない。
【0015】
音声入力および音声出力を介してユーザと対話することができる音声対応システムは、さまざまな形態のものがある。たとえば、このようなシステムは、スタンドアロンのデバイス、デジタルまたは仮想アシスタント、音声対応サービスなどとして提供され得る。これらの形態の各々では、システムは、音声またはスピーチ入力を受信して、これらの入力を理解して、これらの入力に応答して応答を生成したりアクションを起こしたりして、音声出力を使用して応答を出力することができる。特定の実施形態において、このような音声対応システムにおける対話機能は、対話システムまたはインフラストラクチャ(「対話システム」)によって提供される。
【0016】
上記のように、各発話が受信されて処理された後に対話セッションが終了することは一般的である。たとえば、以前の対話システムは、一般に、休止を検出した後にセッションを終了させ、ユーザは、追加の入力の提供を進めるために、(たとえば、ウェイクワードを話すことによって)新たな対話セッションを再開しなければならない。この単一入力単一応答パラダイムは、対話への不自然な流れを生じさせるため、ユーザにとってはいらだたしいであろう。
【0017】
「発話」は、境界要素によって目印が付けられる音声の単位または期間であり、境界要素は、休止、音声入力なしのタイムギャップ、またはウェイクワードであり得る。発話は、1つの単語または単語群を含み得る。単語群は、1つまたは複数の句、1つまたは複数の文、1つまたは複数の質問、およびそれらの組み合わせを含み得る。たとえば、ユーザが中断または休止をとることなく複数の文を話す場合、これらの複数の文は1つの発話ということになり得る。対話システムによって受信される「音声入力」は、1つの発話、複数の発話、または発話の一部を含み得る。
【0018】
一般に、従来の対話システムでは、ユーザとの対話は短期間である。たとえば、単一の文からなる発話が受け付けられて、この発話が処理されて、応答が生成されて、次いで、応答出力がおそらく音声出力としてユーザに出力される。上記のように、この単一入力単一応答パラダイムは、自然音声対話に近くないため、ユーザに対していらだたしいユーザエクスペリエンスを提供する。たとえば、人がピザをオーダーしているまたは食料雑貨類を購入している場合、自然音声対話は、休止、行ったり来たりの対話、無関係の音声(たとえば、「うーん...」または「ねえ、何が欲しい?」)の期間などを散在させた複数の発話を含む。しかし、従来の対話システムを使用して同一のオーダーをするためには、ユーザは、ウェイクワードを言い続けて(または、対話開始ボタンを押し続けて)各々の個々の発話について新たな会話または対話セッションを開始しなければならない。本明細書に記載されている技術は、ユーザとのより長い単一の対話セッションを維持することができる対話システムについて説明しており、単一のセッションは、休止またはタイムギャップによって分離された複数のユーザ発話を含み得て、これらの複数の発話にわたって意図判断が実行される。これは、ユーザからのよりフレンドリーなエクスペリエンスをもたらすのと同時に、必要な計算時間およびリソースの点でより効率的なプロセスをもたらす。たとえば、従来のシステムは、一般に、たとえユーザが話し終えていなくても単語と単語との間に比較的長い休止があればユーザを遮る。従来のシステムは、しばしば、入力の一部に基づいて応答を提供して、セッションを終了させようと試みるであろう。休止に対するこのような応答の結果、ユーザは最初からやり直して入力を再び提供しなければならない可能性があり、ユーザのクエリを解決するために使用される時間および計算リソースを増大させるとともに、ユーザをいらだたせる可能性がある。
【0019】
特定の実施形態において、対話システムは、複数の発話にわたるユーザとの連続的な対話を維持する。対話システムは、ユーザが1つまたは複数の文を話している間にユーザに連続的なフィードバック(たとえば、自然言語理解(NLU)/セマンティックパーサ出力のもの)を提供し得る。対話システムは、音声入力における休止または中断を無視する条件を判断し得る。対話システムは、連続音声が自動音声認識(ASR)サブシステムによって処理されるときにこの連続音声からNLU出力を連続的に生成し得る。対話システムは、数分または数十分続く可能性があるセッションの間、連続的にユーザに耳を傾ける(たとえば、聞き状態にとどまる)ことができる。たとえば、対話システムは、ユーザがオーダーを理解しようとしている間は、オーダープロセスの期間中、連続的に耳を傾けることができる。
【0020】
たとえば、ピザをオーダーすることは、複数の発話を通じて自然に展開する。以前のシステムは、一般に、対話セッション内でシステムから1つの要求および1つの応答を必要としていた。しかし、エクスペリエンスがより合理化されると、要求の中に休止または中断があるようになって、自然音声対話により近くなる。たとえば、本明細書に記載されている技術を使用して、連続的な音声認識および連続的なNLU処理を用いて単一のセッションにおいて以下を達成することができる。
【0021】
「おすすめは何ですか?」
[システムは結果を示す]
「ギリシャ風スペシャルにします。」...[休止]「...オリーブを追加して」....「...唐辛子なしで」
「ラージサイズのチーズピザもほしいです。」....「シンクラストにしてください」...「実際には2枚もらいます。」
[休止]
「コーラ2リットルも追加してください。以上です。」
[システムはオーダーを整理する]
図1は、いくつかの実施形態に係る対話システム100の一例を示す図である。対話システム100は、音声またはスピーチ入力104(スピーチ発話とも称される)をユーザ102から受信するように構成される。次いで、対話システム100は、これらの音声入力を解釈し得る。対話システム100は、ユーザ102との対話を維持して、場合によってはこれらの音声入力の解釈に基づいて1つまたは複数のアクションを実行したり実行させたりし得る。対話システム100は、適切な応答を準備して、音声またはスピーチ出力を使用してこれらの応答をユーザに出力し得る。対話システム100は、多数のコンピュータ処理サイクルを使用して大量のデータを処理するのに使用され得る専門のコンピューティングシステムである。
図1に示されるデバイスの数は、例示の目的で提供されている。異なる数のデバイスが使用されてもよい。たとえば、
図1における各デバイス、サーバおよびシステムは、単一のデバイスとして示されているが、その代わりに複数のデバイスが使用されてもよい。
【0022】
特定の実施形態において、対話システムによって実行される処理は、コンポーネントまたはサブシステムのパイプラインによって実現され、これらのコンポーネントまたはサブシステムは、音声入力コンポーネント105と、ウェイクワード検出(WD)サブシステム106と、自動音声認識(ASR)サブシステム108と、自然言語理解(NLU)サブシステム110とを含み、NLUサブシステム110は、固有表現認識部(NER)サブシステム112と、セマンティックパーササブシステム114とを含み、これらのコンポーネントまたはサブシステムはさらに、対話マネージャ(DM)サブシステム116と、自然言語生成部(NLG)サブシステム118と、テキスト・トゥ・スピーチ(TTS)サブシステム120と、音声出力コンポーネント124とを含む。上記のサブシステムは、ソフトウェアのみで(たとえば、1つまたは複数のプロセッサまたはコアによって実行可能なコード、プログラムまたは命令を使用して)実現されてもよく、ハードウェアのみで実現されてもよく、またはハードウェアとソフトウェアとの組み合わせで実現されてもよい。特定の実現例において、サブシステムのうちの1つまたは複数は、組み合わせて単一のサブシステムにされてもよい。さらにまたは代替的に、いくつかの実現例において、特定のサブシステムによって実行されるものとして本明細書に記載されている機能は、複数のサブシステムによって実行されてもよい。
【0023】
音声入力コンポーネント105は、音声入力104を受信するように構成されたハードウェアおよびソフトウェアを含む。いくつかの例では、音声入力コンポーネント105は、対話システム100の一部であり得る。いくつかの他の例では、音声入力コンポーネント105は、対話システム100とは別であって、対話システム100に通信可能に結合され得る。音声入力コンポーネント105は、たとえば、音声入力をデジタル化してウェイクワード検出サブシステム106に送信するように構成されたソフトウェアに結合されたマイクロフォンを含み得る。
【0024】
ウェイクワード検出(WD)サブシステム106は、特別な音または単語または単語のセット(ウェイクワードと称される)に対応する入力についてオーディオ入力ストリームを聞いて監視するように構成される。対話システム100のために構成されたウェイクワードを検出すると、WDサブシステム106は、ASRサブシステム108を起動するように構成される。特定の実現例において、ユーザは、(たとえば、ウェイクワードを話してボタンを押すことによって)WDサブシステム106を起動したり停止したりする能力を提供され得る。WDサブシステム106は、起動されると(または、アクティブモードで動作しているとき)、オーディオ入力ストリームを連続的に受信して、このオーディオ入力ストリームを処理して、ウェイクワードに対応するオーディオまたは音声入力を識別するように構成される。ウェイクワードに対応するオーディオ入力が検出されると、WDサブシステム106は、ASRサブシステム108を起動する。
【0025】
上記のように、WDサブシステム106は、ASRサブシステム108を起動する。音声対応システムのいくつかの実現例において、ウェイクワード以外の機構を使用してASRサブシステム108をトリガまたは起動してもよい。たとえば、いくつかの実現例において、デバイスのプッシュボタンを使用して、ウェイクワードを必要とすることなくASRサブシステム108の処理をトリガしてもよい。このような実現例では、WDサブシステム106を設けなくてもよい。プッシュボタンが押されるまたは起動されると、ボタン起動後に受信された音声入力は、処理のためにASRサブシステム108に提供される。いくつかの実現例において、ASRサブシステム108は、処理対象の入力を受信したときに起動されてもよい。
【0026】
ASRサブシステム108は、トリガまたはウェイクアップ信号(たとえば、ウェイクアップ信号は、音声入力の中にウェイクワードを検出するとWDサブシステム106によって送信され得る、ウェイクアップ信号は、ボタンの起動時に受信され得る、など)後に口頭の音声入力を受信および監視して、この音声入力をテキストに変換するように構成される。その処理の一部として、ASRサブシステム108は、スピーチ・トゥ・テキスト変換を実行する。口頭のスピーチまたは音声入力は、自然言語形式であり得て、ASRサブシステム108は、音声入力の言語で対応する自然言語テキストを生成するように構成される。次いで、ASRサブシステムによって生成されたテキストは、その後の処理のためにNLUサブシステム110に送り込まれる。ASRサブシステム108によって受信された音声入力は、1つまたは複数の単語、句、節、文、質問などを含み得る。ASRサブシステム108は、各々の口頭の節についてテキスト発話を生成して、その後の処理のためにこれらのテキスト発話をNLUサブシステム110に送り込むように構成される。
【0027】
NLUサブシステム110は、ASRサブシステム108によって生成されたテキストを受信する。ASRサブシステム108からNLUサブシステム110によって受信されたテキストは、口頭の単語、句、節などに対応するテキスト発話を含み得る。NLUサブシステム110は、各テキスト発話(または、一連のテキスト発話)をその対応する論理形式に変換する。
【0028】
特定の実現例において、NLUサブシステム110は、固有表現認識部(NER)サブシステム112と、セマンティックパーサ(SP)サブシステム114とを含む。NERサブシステム112は、テキスト発話を入力として受信して、このテキスト発話の中の固有表現を識別して、識別された固有表現に関連する情報でこのテキスト発話をタグ付けする。次いで、タグ付けされたテキスト発話は、SPサブシステム114に送り込まれ、SPサブシステム114は、各々のタグ付けされたテキスト発話について(または、一連のタグ付けされたテキスト発話について)論理形式を生成するように構成される。発話について生成された論理形式は、テキスト発話に対応する1つまたは複数の意図を識別し得る。発話の意図は、発話の目的を識別する。意図の例としては、「ピザをオーダーする」および「行き方を探し出す」が挙げられる。意図は、たとえば、実行されるように要求されるアクションを識別し得る。意図に加えて、テキスト発話について生成された論理形式は、識別された意図についてスロット(パラメータまたは引数とも称される)も識別し得る。たとえば、「マッシュルームとオリーブののったラージサイズのペパロニピザをオーダーしたい」という音声入力では、NLUサブシステム110は、ピザをオーダーするという意図を識別することができる。NLUサブシステムは、スロット(たとえば、pizza_size(「ラージサイズの」で充足される)およびpizza_toppings(「マッシュルームとオリーブ」で充足される))も識別して充足することができる。NLUサブシステムは、機械学習ベースの技術、ルール(ドメインに固有であり得る)、またはこれら2つの組み合わせを使用して、論理形式を生成し得る。次いで、NLUサブシステム110によって生成された論理形式は、その後の処理のためにDMサブシステム116に送り込まれる。
【0029】
DMサブシステム116は、NLUサブシステム110から受信された論理形式に基づいてユーザとの対話を管理するように構成される。対話管理の一部として、DMサブシステム116は、対話状態を追跡して、1つもしくは複数のアクションもしくはタスクの実行を開始するかまたはそれ自体が1つもしくは複数のアクションもしくはタスクを実行して、どのようにユーザと対話するかを判断するように構成される。これらのアクションは、たとえば、1つまたは複数のデータベースに照会すること、実行結果を生成すること、および他のアクションを含み得る。たとえば、DMサブシステム116は、NLUサブシステム110から受信された論理形式で識別された意図を解釈するように構成される。この解釈に基づいて、DMサブシステム116は、それがユーザによって提供された音声入力によって要求されているものであると解釈する1つまたは複数のアクションを開始し得る。特定の実施形態において、DMサブシステム116は、現在および過去の音声入力に基づいて、ならびに、DMサブシステム116のために構成されたルール(たとえば、対話ポリシ)のセットに基づいて、対話状態追跡を実行する。これらのルールは、さまざまな対話状態、状態間の遷移のための条件、特定の状態にあるときに実行されるアクションなどを指定し得る。これらのルールは、ドメインに固有であり得る。また、DMサブシステム116は、対話に関与しているユーザに返される応答も生成する。これらの応答は、DMサブシステム116によって開始されたアクションおよびそれらの結果に基づき得る。DMサブシステム116によって生成された応答は、その後の処理のためにNLGサブシステム118に送り込まれる。
【0030】
図2に関して以下でさらに説明するように、DMサブシステム116は、対話状態を追跡して、このような対話状態情報に基づいて停止条件および応答を判断するように構成されたサブシステムを含む。いくつかの実施形態において、DMサブシステム116は、状態情報を維持しており、この状態情報を使用して、対話における休止または中断にもかかわらず対話セッションを延長するか否かおよびどれぐらい延長するかを判断することができる。DMサブシステム116は、構成されたセッション管理情報130を使用してこれらの状態を追跡し得る。たとえば、
図2~
図4に関して以下でさらに詳細に説明するように、このような状態は、「Likely_To_Continue」(ユーザが追加の音声入力を提供し続けるものと思われる)および「Likely_No_Additional_Input」(追加の音声入力が受信されそうにない)を含み得る。対話システムは、要因(対話セッションにおける1つまたは複数の発話の内容、休止の長さ、マルチモーダル入力(たとえば、ボタンの押下)など)に基づいて所与の時間に特定の状態を対話セッションに割り当て得る。対話セッションの現在の状態は、対話セッションを継続するか否かおよびどれぐらい継続するかに対応し得る。たとえば、状態1では、対話セッションは、少なくとも1分間継続すべきであるのに対して、状態2では、停止条件が満たされており、対話セッションは終了されるべきである。停止条件情報132は、対話セッションを停止するか延長するか、および対話セッションをどれぐらい延長するかについてのルールを含み得る。本明細書に記載されているように、停止条件は、対話セッションを延長するための期間値に対応し得る。
【0031】
NLGサブシステム118は、DMサブシステム116によって生成された応答に対応する自然言語テキストを生成するように構成される。これらのテキストは、TTSサブシステム120によってそれらを音声に変換することを可能にする形式で生成され得る。TTSサブシステム120は、これらのテキストをNLGサブシステム118から受信して、それらの各々をスピーチまたは音声オーディオに変換し、このスピーチまたは音声オーディオは、次いで、対話システムのオーディオまたは音声出力コンポーネント124(たとえば、スピーカ、または外部スピーカに結合された通信チャネル)を介してユーザに出力され得る。いくつかの例では、音声出力コンポーネント124は、対話システム100の一部であり得る。いくつかの他の例では、音声出力コンポーネント124は、対話システム100とは別であって、対話システム100に通信可能に結合され得る。
【0032】
上記のように、協働して動作する対話システム100のさまざまなサブシステムは、対話システム100が音声入力104を受信して、音声出力122を使用して応答して、自然言語音声を使用してユーザとの対話を維持することを可能にする機能を提供する。上記のさまざまなサブシステムは、単一のコンピュータシステムを使用して実現されてもよく、または協働して動作する複数のコンピュータシステムを使用して実現されてもよい。たとえば、音声対応システムを実装するデバイスでは、上記の対話システム100のサブシステムは、もっぱらユーザが対話するデバイスに実装され得る。いくつかの他の実現例では、対話システム100のいくつかのコンポーネントまたはサブシステムは、ユーザが対話するデバイスに実装され得るのに対して、他のコンポーネントは、デバイスからリモートで、場合によっては他のコンピューティングデバイス、プラットフォームまたはサーバに実装され得る。
【0033】
上記のように、特定の実施形態において、対話システム100は、サブシステムのパイプラインを使用して実現され得る。いくつかの実施形態において、サブシステムのうちの1つまたは複数は、組み合わせて単一のサブシステムにされてもよい。特定の実施形態において、特定のサブシステムによって提供される機能は、複数のサブシステムによって提供されてもよい。また、特定のサブシステムは、複数のサブシステムを使用して実現されてもよい。
【0034】
特定の実施形態において、機械学習技術を使用して、対話システム100の1つまたは複数の機能を実行し得る。たとえば、教師あり機械学習技術(ニューラルネットワーク(たとえば、ディープニューラルネットワーク)を使用して実現されるものなど)を使用して、対話システム100の1つまたは複数の機能を実行し得る。一例として、実行対象のASR機能を実行するように訓練されたニューラルネットワークが提供され得て、このような訓練されたモデルがASRサブシステム108によってその処理に使用され得る。このようなニューラルネットワーク実現例は、音声入力を入力として、テキスト発話をNLUサブシステムに出力し得る。機械学習ベースのモデルは、対話システム100の他のサブシステムによっても使用され得る。
【0035】
図2は、特定の実施形態に係る、
図1の対話マネージャサブシステム116をさらに詳細に示す簡略化されたブロック図である。上記のように、対話マネージャサブシステム116は、NLUサブシステム110から受信された論理形式に基づいてユーザとの対話を管理するように構成される。対話マネージャサブシステム200は、セッション管理サブシステム202と、状態管理サブシステム204と、関連性判断サブシステム206と、アクション管理サブシステム208と、応答サブシステム210とを含む。
【0036】
状態管理サブシステム204は、対話状態を追跡することができる。特定の実施形態において、状態管理サブシステム204は、現在および過去の音声入力に基づいて対話状態追跡を実行する。状態管理サブシステムは、対話がいくつかの構成された状態のうちの1つの状態にあるか否かを判断し得る。特定の実施形態において、対話状態は、複数の状態とこれらの状態間の遷移とを備える状態遷移図として規定され得る。ルール(たとえば、対話ポリシ)のセットは、さまざまな対話状態、状態間の遷移のための条件、特定の状態にあるときに実行されるアクションなどを指定し得る。たとえば、1つまたは複数の音声入力、ならびに、NLUサブシステムによって判断された対応する意図および論理形式に基づいて、状態管理システムは、対話がいくつかの予め構成された状態のうちの1つの状態にあるか否かを判断し得る。いくつかの実施形態において、以下の状態が規定され得る。
【0037】
(1)「Likely_To_Continue」は、受信された音声入力に基づいて、ユーザが追加の音声入力を提供し続けるものと思われると対話システムが判断する場合に確立される。たとえば、必要な情報を欠いている発話が処理される場合、対話システムは、対話がLikely_To_Continue状態(たとえば、「私は...[休止]」)にあると判断し得る。
【0038】
(2)「Unclear_About_Additional_Input」は、受信された音声入力に基づいて、追加の入力がユーザによって提供されるか否かが不明である(たとえば、明確化が提供されるべきである)と対話システムが判断する場合に確立される。たとえば、「私は...[休止]」という第1の発話および「ペパロニピザ...[休止]」という第2の発話を受信した後、追加の入力が可能であり得るが、必須ではない。この場合、対話システムは、対話がUnclear_About_Additional_Input状態にあると判断して、ユーザに「他に何かありますか?」と尋ねる応答を出力し得る。
【0039】
(3)「Likely_No_Additional_Input」は、受信された音声入力に基づいて、追加の音声入力が受信されそうにないとシステムが判断する場合に確立される。一例として、ピザをオーダーする上記の例を続けて、ユーザが次に「いいえ、それだけです」と言う場合、追加の音声入力は受信されそうになく、この場合、対話システムは、対話システムがLikely_No_Additional_Input状態にあると判断し得る。
【0040】
セッション管理サブシステム202は、セッションをいつ停止または開始するかを判断する。セッションを停止する判断は、状態管理サブシステム204によって判断された現在の状態に基づき得る。セッションを管理するのに使用され得る他の要因は、セッション全体の長さおよび音声入力の異なるユニット間の休止を含む。セッション長さのためのさまざまなルールがさまざまなコンテキストについて管理され得る。たとえば、セッション管理サブシステム202は、個人的な買い物に関連する対話については長いセッションを維持し、天気に関連する対話については比較的短いセッションを維持し得る。
【0041】
関連性判断サブシステム206は、特定の発話が対話セッション内の対話全体に関連しているか否かを判断する。たとえば、関連性判断サブシステムは、無視されるべき入力(たとえば、「うーん」、「やあ」など)を示す単語を検出するように訓練された1つまたは複数の機械学習モデルを含み得る。代替的にまたはさらに、関連性判断サブシステム206は、意図に関連する予想される入力に基づいて無関係の発話を識別するように訓練されてもよい。たとえば、ユーザが食べ物および飲み物に注目したレストランオーダーに関連する音声入力を提供していた場合、関連性判断サブシステムは、食べ物または飲み物に関連する単語を含まない発話を廃棄すべきであろうと判断し得る。
【0042】
アクション管理サブシステム208は、NLUサブシステム110から受信された情報に基づいて実行すべきアクションまたはタスクを判断する。アクション管理サブシステム208は、ユーザによって提供された音声入力によって要求されているとして解釈される1つまたは複数のアクションを開始またはそれ自体が実行し得る。このようなアクションの例としては、1つまたは複数のデータベースに照会すること、インターネット検索を実行すること、購入を開始することが挙げられる。
【0043】
応答サブシステム210は、ユーザに提供される応答を生成する。これらの応答は、NLUサブシステムから受信された意図および論理形式、ならびに、ASRサブシステム108によって開始されたアクションおよびそれらの結果に基づき得る。応答サブシステム210によって生成された応答は、その後の処理のためにNLGサブシステム118およびTTSサブシステム220に送り込まれる。たとえば、応答サブシステム210は、コンピュータ読取可能な形式でテキスト応答を生成し得て、NLGサブシステム118は、このテキスト応答を自然言語テキストに変換し、TTSサブシステム220は、このテキスト応答を口頭の応答に変換する。たとえば、対話システムが出力し得る応答は、「他に何かありますか?」、「39.78ドルになります」、「カリフォルニア州の州議会議事堂はサクラメントです」などを含む。
【0044】
図3は、特定の実施形態に係る、1つまたは複数の発話にわたる対話セッションを延長するための方法300を示す簡略化されたフローチャートである。
図3に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。
図3に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。
図3は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、
図3に示される処理は、
図1および
図2の対話マネージャサブシステム116および
図1に関して上記した対話システム100の他のコンポーネントによって実行され得る。
【0045】
302において、対話システム(たとえば、対話マネージャサブシステム116のセッション管理サブシステム202)は、対話セッションを開始する。「対話セッション」は、対話システムへの入力としてユーザによって提供された1つまたは複数の発話と、対話システムによって生成された1つまたは複数の応答とを、対話システムによって実行される処理の目的で一緒に処理する期間に対応する。
【0046】
さまざまな異なる信号または刺激は、302において対話システムに対話セッションを開始させ得る。対話システムは、たとえば、WDサブシステム106がウェイクワードを検出したことに応答して新たな対話セッションを開始し得る。別の例として、対話システムは、新たな対話セッションが開始されることを示す信号をユーザが対話システムに送信するようにしたことに応答して新たな対話セッションを開始し得る。たとえば、対話システムは、「対話開始」ボタンまたは他のユーザ選択可能なオプションを選択または押下したことを検出し得る。したがって、対話セッションを開始することは、ウェイクワードを検出すること、または、開始ボタンとのインタラクションを検出することのうちの1つまたは複数を含み得る。対話セッションを開始することはさらに、対話セッションのためのパラメータ(セッション識別子および初期状態など)を生成することを含み得る。代替的にまたはさらに、対話セッションを開始することは、メモリを対話セッションに割り当てることを含み得る。
【0047】
304において、対話システムは、第1の音声入力を受信する。対話システムは、たとえば音声入力コンポーネント105を介して第1の音声入力をユーザから受信し得る。この音声入力は、波形として受信され得る。この音声入力は、特定の言語であって、自然言語クエリ形式であり得る。この音声入力は、ユーザが対話システムに回答させたい質問を指定したり、ユーザが対話システムに開始させたい1つまたは複数のアクション(たとえば、「ミディアムサイズのペパロニピザがほしいです」)を指定したりする、などであり得る。
【0048】
特定の実施形態において、(304または322のように)音声入力を受信する代わりに、入力は、たとえばユーザが対話システムとのチャット中にテキストをタイプする場合にはテキスト形式で受信され得る。本開示に記載されているセッション管理技術は、口頭のスピーチまたはテキスト入力またはそれらの組み合わせの形式で入力を受信するシステムとともに使用することができる。
【0049】
306において、対話システムは、口頭発話の完了を示す音声入力における休止を検出する。対話システムは、所与の時間にわたって入力が提供されなかったと判断することによって休止を検出し得る。対話システムは、休止を検出すると、セッションを維持して、休止の期間中、聞き状態にとどまり得る。対話システムは、休止中はセッションを維持しながら、第1の音声入力を処理し得る。対話システムは、各休止の長さを識別し得る。
【0050】
308において、対話システムは、306において識別された口頭発話を処理する。対話システムは、ASR、スピーチ・トゥ・テキスト変換および自然言語処理を含む処理パイプラインを使用して口頭発話を処理して(たとえば、発話の論理形式および/または意図を判断して)、発話に応答してとるべきアクションを判断する。対話システムは、
図1に関して上記したパイプラインを使用してこのような機能を実行し得る。
【0051】
特定の実施形態において、音声入力波形がASRサブシステム108への入力として提供され、ASRサブシステム108は、音声入力を処理して、対応するテキスト発話を生成する。ASRサブシステム108は、さまざまな技術(機械学習ベースの技術およびルールベースの技術を含む)を使用して、入力音声のスピーチ・トゥ・テキスト変換を実行し得る。次いで、ASRサブシステム108によって生成されたテキストは、NLUサブシステム110への入力として提供され、NLUサブシステム110は、テキスト発話の論理形式および/または意図を判断する。
【0052】
いくつかの実施形態において、対話システムは、ASRサブシステム108の出力であり得るテキストまたはユーザによってタイプされるテキストをNLUサブシステム110に流す。ASRサブシステムは、音声入力が受信されるときに全ての入来する音声を処理し、テキストが音声認識プロセスから出力されるときにテキストストリームをチャンクの状態でNLUサブシステムに送信し得る。たとえば、ASRサブシステムは、ユーザが話し続けるときに発話の一部を処理し得て、NLUサブシステムは、この発話の一部を、発話の残部がASRサブシステムによって処理されるときに処理し得る。
【0053】
NLUサブシステムは、ASRサブシステムから渡されたテキスト発話に対応する論理形式および/または意図を判断することによって、テキスト発話を処理し得る。NLUサブシステムは、論理形式を判断するためのさまざまな技術を使用し得て、これらの技術は、機械学習技術(たとえば、訓練されたモデル(ディープニューラルネットワークなど)を使用する)、ルールベースの技術、またはそれらの組み合わせを含むが、それらに限定されるものではない。たとえば、ルールのセットは、音声入力および対応するテキスト発話がルールのセットに基づいて「フライト」または「自動車」または「電車」とともに「本」または「購入」という単語を含む場合、Book_Travel意図をテキスト発話に割り当て得る。別の例として、「ラージサイズのペパロニがほしいです」という発話に基づいて、対話システムは、対応する意図がOrder_Pizzaであると判断し得る。対話システムはさらに、第1の音声入力に対応する論理形式を生成し得て、発話において識別された単語に基づいてスロットを充足し得る(たとえば、対話システムは、ペパロニをトッピングスロットに割り当て得る)。
【0054】
対話システムは、音声セッション内に複数の発話を処理し得る。たとえば、対話システムは、第1の発話を受信して、この第1の発話の論理形式を識別し得る。次いで、対話システムは、第2の発話を受信して、この第2の発話の論理形式を識別し得る。第2の発話の論理形式は、識別された意図を含み得る。後続の発話(たとえば、第2の発話、第3の発話、第4の発話など)の識別された意図は、対話セッションにおける複数の発話に基づき得る。場合によっては、後続の論理形式および/または意図はさらに、対話システムによって生成された応答に基づき得る。具体例として、以下の対話セッションが処理され得る。
【0055】
発話1:「チーズバーガーをオーダーしたい」
論理形式1:「Order_Food;Item=cheeseburger」
応答1:追加のトッピングは?
発話2:「ピクルスを追加してください」
論理形式2:「Add_Topping;Topping=pickles」
応答2:「分かりました。他に何かありますか?」
...
Add_Toppingという第2の意図は、ピクルスがチーズバーガーのトッピングの文脈におけるものであることを指定する先行する第1の発話、論理形式および応答を前提としている。したがって、対話セッションにおける所与の時点での1つまたは複数の入力された発話および応答は、当該時点での論理形式および意図を判断するのに使用され得る。
【0056】
いくつかの実施形態において、対話システムは、対話における所与の時点で処理パイプラインにおける1つまたは複数のステップを実行することを控え得る。たとえば、第1の発話は、意図を判断するのに十分な情報を含んでいない。このような場合、対話システムは、意図全体が判断されるまで、第1の発話とともに後続の発話を連続的なストリームで処理し続け得る。具体例として、対話システムは、「もしよかったら...[休止]...」という第1の発話に対してASRおよびNLPを実行し、「帽子を売っていただけないかと思ったのですが」という第2の発話を待って、この第2の発話に対してASRおよびNLPを実行する前に、両方の発話を一緒に処理して2つの発話の意図全体、すなわちCheck_Stockを判断する。
【0057】
いくつかの実施形態において、308における処理は、実質的にリアルタイムで実行される。本明細書で使用される「実質的にリアルタイムで」は、完全な発話が受信されたことを示す表示を待つのではなく、入力データが受信されると入力データのストリームを処理することを指す。たとえば、ユーザが音声入力を提供し続けて対話システムが追加の音声入力を受信し続けている間、対話システムは文または単語のセットを処理し得る。いくつかの実施形態において、対話システムは、発話の一部を処理し得る。たとえば、システムは、発話をチャンク(「手に入れたい」、「ピザ」、「ソースなし」など)に分割して、各チャンクを順番に処理し得る。
【0058】
いくつかの実施形態において、音声入力は、一体型の音声認識および自然言語理解パイプラインを使用して処理され得る。たとえば、単一のニューラルネットワークを使用して、(たとえば、テキスト発話を出力する中間ステップなしに)音声入力から論理形式を生成し得る。一体型の音声認識および自然言語理解のための技術は、たとえば、ルゴーシュ等による「エンド・ツー・エンド口頭言語理解のための音声モデル事前訓練(Speech Model Pre-training for End-to-End Spoken Language Understanding)」(https://arxiv.org/pdf/1904.03670.pdf)およびハガニ等による「オーディオからセマンティクスへ:エンド・ツー・エンド口頭言語理解へのアプローチ(From Audio to Semantics: Approaches to end-to-end spoken language understanding)」(https://arxiv.org/abs/1809.09190)に記載されている。
【0059】
310において、対話システムは、応答が生成されるか否かを判断する。対話システムは、受信されて処理された1つまたは複数の音声入力に基づいて、応答が生成されるか否かを判断し得る。たとえば、ユーザが短い休止の後に文を終わらせるものと思われる場合、対話におけるこの時点で応答は適切でないだろう。しかし、発話または発話の組み合わせの後に明確化またはフィードバックが適切である場合、応答は適切であろう。たとえば、ユーザが「...へのフライトを予約したい」と言うと、対話システムは、この時点で応答が生成されないと判断して、別の発話を待って、「マイアミへの」という第2の発話を受信し得て、この時点で、対話システムからの応答は適切である。
【0060】
312において、310において応答が生成される場合、対話システムは、応答を生成して出力し得る。対話システムは、タスクを実行し、および/または、フィードバックをユーザに提供し得る。対話システムは、1つまたは複数の音声入力(たとえば、第1の音声入力および/または第2の音声入力)に基づいて応答を生成し得る。対話システムは、応答をユーザに提供し得る。応答を提供することは、音声出力を準備して出力することによって実行され得る。対話システムは、対話マネージャサブシステム116およびNLGサブシステム118を介してテキスト応答を準備し得る。このようなテキスト応答は、ユーザインターフェイスを介してユーザに表示され得る。代替的にまたはさらに、テキスト応答は、テキスト・トゥ・スピーチサブシステム120に渡されてもよく、テキスト・トゥ・スピーチサブシステム120は、このテキスト応答を口頭の応答に変換する。次いで、この口頭の応答は、音声出力コンポーネント124を介して音声出力122として出力される。場合によっては、対話システムは、対話セッション内に複数の応答(たとえば、第1の音声入力に基づく応答、第2の音声入力に基づく応答など)を判断して提供し得る。
【0061】
対話システムは、入力を連続的に処理して、応答を準備し得る。たとえば、対話システムは、「航空券を購入したい」という音声入力を受信する。対話システムは、追加の音声入力を聞き続けながら、「分かりました。どこ行きですか?」という応答を準備して提供する。対話システムはさらに、対話セッションが継続しているときにタスク(情報を検索する、オーダーするなど)を実行し得る。いくつかの実施形態において、318に関して以下でさらに説明するように、応答を生成して出力することは、停止条件が満たされていないと判断する前に実行される。
【0062】
314において、対話システム(たとえば、状態管理サブシステム204)は、対話セッションの現在の状態を判断する。対話システムは、対話セッションが複数の構成された状態のうちの特定の状態にあると判断し得る。対話セッションに関連するさまざまな基準を使用して、対話セッションの現在の状態を判断し得る。いくつかの実施形態において、対話セッションの状態は、休止が検出されたか否か、および、対話セッションにおいて検出された1つまたは複数の休止の長さ(たとえば、発話間の時間的距離)に基づき得る。対話セッションの現在の状態を判断するのに使用され得る追加の要因は、1つまたは複数の受信された音声入力の内容、提供された応答、識別された意図、固有表現、および/または、論理形式、セッション内の以前の状態などを含む。対話システムは、304において受信された音声入力(たとえば、受信された最後の音声入力)または対話セッション中に受信された音声入力の組み合わせ(たとえば、304において受信された第1の音声入力および/または320において受信された後続の音声入力)に基づいて現在の状態を判断し得る。対話システムはさらに、状態判断を、対話セッションにおいて経過した時間(たとえば、経過した合計時間および/または対話セッションが最後に延長されてから経過した時間)に基づくようにし得る。
【0063】
いくつかの実施形態において、対話システムは、このような要因の組み合わせに基づいて現在の状態を判断する。現在の状態は、ルールおよび/または機械学習モデルを使用して判断され得る。たとえば、ユーザが30秒間休止して、これ以上の音声入力が不要であることを以前の音声入力が示す場合、対話システムは、対話が、ユーザが入力を提供し終えているものと思われるがさらなる入力が可能である状態にあると判断し得る。一方、ユーザが30秒間休止するが、「ちょっと待ってください」または「そして...」と言った場合、対話システムは、ユーザが追加の入力を提供する可能性が最も高いと判断し得る。別の例として、対話システムは、308において判断された意図に基づいて現在の状態を判断し得る。たとえば、意図がシステムによってサポートされた関数にマッチして、ユーザが追加の入力を提供するかもしれない場合、対話システムは、対話セッションがAdditional_Input_Likely状態にあると判断し得る。
【0064】
いくつかの実施形態において、ユーザが音声入力を提供し終えていることを示す(たとえば、ユーザが「停止」ボタンを押したことを検出する、または終了単語(「終了」または「し終えている」など)を検出するなど)、ユーザのための決定的な機構が存在し得る。入力を提供し終えていることをユーザが示した場合、これは、対話システムによって、これ以上の入力が受信されることがないことを示す状態を割り当てるのに使用され得る。対話セッションの状態を判断するための技術については、
図4に関して以下でさらに詳細に説明する。
【0065】
316において、314において判断された現在の状態に基づいて、対話システムは、対話セッションを延長する期間値を求める。求められた期間値は、対話セッションのための停止条件を設定する。そのため、この期間値は、対話セッションの現在の状態に基づいて、対話セッションがどれぐらい継続されるかを確立し得る。したがって、いくつかの実施形態において、対話セッションの状態が対話セッション中に変化すると、新たな停止条件が動的に設定される。
【0066】
対話システムは、314において判断された状態および/または追加情報(休止の長さ、第1の音声入力および/または後続の音声入力(たとえば、第2の音声入力)を含む)に基づいて期間/停止条件を判断し得る。停止条件は、ルールまたは機械学習モデルを使用して計算することができ、ルールまたは機械学習モデルのどちらも、対話セッションの状態を入力とすることができる。いくつかの実施形態において、状態は、直接期間にマッピングし得る(たとえば、対話が状態「1」にある場合、対話セッションは少なくとも1分間延長されるべきである)。代替的にまたはさらに、期間は、追加情報と組み合わせて現在の状態に基づいてもよく、期間値を求めるのに使用される対話セッションのコンテキスト全体を確立することができる。たとえば、対話が状態「B」にあって、最後の音声入力が固有表現を含む場合、対話システムは、対話セッションを30秒間延長すべきであると判断する。代替的にまたはさらに、ステップ314は省略されてもよく、コンテキスト要因を使用して、状態を対話セッションに明示的に割り当てることなく、対話セッションを延長する期間値を求めることができる。
【0067】
いくつかの実施形態において、ゼロという時間値は、対話セッションを延長しないことを示す。したがって、「停止条件」パラメータの値は、セッションを延長すべきか否かを指定し得る。いくつかの実施形態において、対話セッションの期間値および/または基本的な状態は、ユーザの音声パターンによってさまざまであり得る。たとえば、第2のユーザが短い休止をとっているのに対して第1のユーザが発話間に長い休止をとっている場合、これを、対話セッションをどれぐらい延長するかの計算に含めることができる。このように、いくつかの実施形態において、延長の期間もユーザカスタマイズされる。
【0068】
318において、対話システムは、316において確立された停止条件が満たされたか否かを判断する。いくつかの実施形態において、対話システムは、316において求められた期間値を使用して、停止条件が満たされたか否かを判断する。たとえば、期間がゼロである場合、停止条件は満たされている。代替的にまたはさらに、対話システムは、314~316に関して上記したように、対話セッションにおけるさまざまなコンテキスト要因を解析することに基づいて、停止条件が満たされたか否かを判断してもよい。いくつかの実施形態において、対話システムは、停止条件が満たされたか否かを定期的に(たとえば、毎秒、10分の1秒ごと、または数十秒ごとなど)判断し得る。
【0069】
318において対話セッションのための停止条件が満たされていないと対話システムが判断した場合、対話システムは、少なくとも停止条件によって示される期間値だけ対話セッションを延長し得る。たとえば、停止条件が対話セッションを1分だけ延長するように指定する場合、対話システムは、対話セッションを1分だけ延長する。
【0070】
318において停止条件が満たされていない場合、対話システムは対話セッションを継続する。対話セッションを継続するために、対話システムは、追加の入力を聞き続け得る。対話システムは、状態を監視し続けて、データを格納し得る。対話システムは、対話処理(たとえば、ASR、NLP、NLGおよび/またはTTS処理)を実行し続け得る。
【0071】
320において、対話セッションが依然としてアクティブである間に、対話システムは追加の音声入力(たとえば、第2の音声入力、第3の音声入力、第4の音声入力など)を受信する。追加の音声入力は、ステップ304に関して上記した態様と実質的に同様の態様で受信され得る。
【0072】
320においてユーザから追加の音声入力を受信した後、フローは306に戻る。対話システムは、追加の口頭発話(たとえば、第2の口頭発話、第3の口頭発話など)の完了を示す追加の休止(たとえば、第2の休止、第3の休止など)を検出し得る。
【0073】
308の後続の反復において、対話システムは、上記のように追加の発話を処理する。音声入力は、ASRサブシステム108によってテキスト発話に変換されて、NLUサブシステム110に渡され得て、NLUサブシステム110は、論理形式を対話マネージャサブシステム116に渡す。発話を処理することは、後続の音声入力に対応する意図および/または論理形式(たとえば、第2の音声入力に対応する意図、第3の音声入力に対応する意図など)を識別することを含み得る。308に関して上記したように、場合によっては、第1の音声入力について判断される意図は、後続の音声入力について判断される意図を通知し得る(たとえば、第1の音声入力が旅行に関連する意図に対応する場合、モデルまたはルールは、後続の音声入力の旅行に関連する意図をより重く重み付けするように構成され得る)。
【0074】
いくつかの実施形態において、
図5に関して以下でさらに詳細に説明するように、対話システムは、追加の音声入力を処理して、追加の音声入力が以前の音声入力(たとえば、第1の音声入力)に関連しているか否かを判断し得る。場合によっては、追加の音声入力は、第1の音声入力に関連し得る。たとえば、第1の音声入力は、「1枚のラージサイズの最高のピザ」である。休止の後、ユーザは、「たまねぎなしで」という第2の音声入力を提供する。この場合、対話システムは、対話セッションに関連付けられた論理形式全体を更新し得る。たとえば、第1の音声入力の後、対話システムは、Order_Pizzaという意図を識別して、トッピングスロットをペパロニ、たまねぎ、ピーマンおよびソーセージで充足している。第2の音声入力を処理した後、対話システムは、トッピングスロットからたまねぎを除去するように論理形式を更新する。他の場合に、対話システムは、後続の音声入力が第1の音声入力に関連していないと判断し得る。たとえば、追加の音声入力は、ユーザが別の人に話しかけること、またはユーザが無関係の発言をすることに対応し得る。この場合、対話システムは、追加の音声入力を無視し得る。
【0075】
いくつかの実施形態において、対話システムは、追加の音声入力に基づいて応答を生成して出力する。このような応答は、受信された最後の音声入力に基づき得る(たとえば、第2の応答は、第2の発話の処理に基づいて判断される)。場合によっては、後続の応答はさらに、以前の音声入力に基づき得る(たとえば、第2の応答は、第2の音声入力および第1の音声入力に基づき得る)。たとえば、2つの発話の最中に食べ物のオーダーを処理した後、対話システムは、応答(「他に何かありますか?」または「分かりました。21.99ドルになります」など)を準備して提供し得る。
【0076】
追加の音声入力の意図を判断して、場合によってはアクションを実行して、応答を準備して、および/または、応答を提供した後、フローは、再び314に進んで対話セッションの現在の状態を判断し、再び316に進み、316は、対話システムが、追加の(たとえば、第2の)口頭発話に基づいて、追加の(たとえば、第2の、第3の、など)停止条件に対応して、対話セッションを延長する追加の(たとえば、第2の、第3の、など)時間値を求めることを含む。これは、318において停止条件が満たされるまで、複数の発話にわたって、場合によっては複数の応答にわたって継続し得て、318において停止条件が満たされた時点で、対話システムは、322において音声セッションを終了させ得る。
【0077】
322において、対話システムは、318において停止条件が満たされたと判断すると、対話セッションを終了させる。対話セッションを終了させるために、対話システムは、追加の入力を聞くことを中止し得る。代替的にまたはさらに、対話システムは、状態を監視してデータを格納することを中止してもよい。いくつかの実施形態において、対話システムは、対話に関係する一時記憶をクリアし得る。
【0078】
図4は、特定の実施形態に係る、
図3の314において実行される、対話セッションの状態を判断するための方法400を示す簡略化されたフローチャートである。
図4に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。
図4に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。
図4は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、
図4に示される処理は、
図1および
図2の対話マネージャサブシステム116および
図1に関して上記した対話システム100の他のコンポーネントによって実行され得る。特定の実施形態において、
図4に示される処理は、対話セッションの現在の状態を判断することの一部として
図3のブロック314において実行される。
【0079】
いくつかの実施形態において、対話システム(たとえば、対話マネージャサブシステム116の状態管理サブシステム204)は、状態解析を実行して、所与の時間に、複数の状態のうちの1つが存在しているか否かを判断する。たとえば、対話システムは、3つの状態を規定し得る。3つの状態とは、(1)ユーザが入力を提供し終えていることについて対話システムが自信をもっている状態(これは、停止条件が満たされることに対応し得る)、(2)以前の音声入力に基づいて、ユーザが追加の音声入力を提供するものと思われるが、しばらくの間話していない状態(これにより、対話システムはプロンプト(たとえば、「終わりましたか?」)を出力することになり得る)、および(3)以前の音声入力に基づいて、ユーザが追加の音声入力を提供することについて対話システムが自信をもっている状態、である。
【0080】
402において、対話システムは、対話セッションを継続して、状態解析を実行する。
図3に関して上記したように、対話セッションを継続することは、受信された音声入力を聞くこと、および/または、処理することを含み得る。受信された音声入力から導き出された意味に基づいて、対話システムは、各状態の基準が満たされたか否かを評価し得る。
【0081】
404において、対話システムは、対話セッションが第1の状態にあるか否かを判断する。第1の状態では、ユーザは、追加のフィードバックを提供しそうにない。たとえば、対話セッション全体の解析は、対話が完全であることを示し得る。場合によっては、ユーザが追加のフィードバックを提供しそうにないことを示す明示的な表示が受信され得る。たとえば、ユーザは、停止ボタンを明確に押すだろう。別の例として、対話システムは、処理された単語に基づいて、対話セッションが第1の状態にあることを判断し得る。特定の単語または句の存在は、対話が完全であることを示し得る(たとえば、または、ユーザが「終わりました」または以上ですと言ってもよい)。場合によっては、対話システムは、予め確立された停止語(たとえば、「停止」または「終了」)を検出することによって、対話セッションが第1の状態にあると判断し得る。
【0082】
いくつかの実施形態において、対話システムは、訓練済み機械学習モデルを使用して、さまざまなコンテキスト要因を使用して、ユーザが追加の入力を提供するものと思われるか否かを予測し得る。
図3のブロック314に関して上記したように、このようなコンテキスト要因は、1つまたは複数の休止、1つまたは複数の発話およびその派生物(たとえば、意図、論理形式など)の長さ、ならびに、対話セッション自体の長さを含み得る。
【0083】
いくつかの実施形態において、対話システムは、追加の入力が受信される見込みを表す値を計算し得る。この値は、予め規定された閾値と比較されて、所与の時間に対話セッションが特定の状態にあるか否かを判断し得る。たとえば、対話システムは、ユーザが追加の音声入力を提供する信頼レベルを表す信頼度スコアを計算し得る。この信頼度スコアは、1つまたは複数の要因(意図、発話の中のキーワード、および休止の長さなど)に基づき得る。信頼度スコアは、1つまたは複数の閾値と比較され、この比較に基づいて、対話システムは、対話セッションが特定の状態にあると判断し得る。たとえば、対話システムは、信頼度スコアが第1の状態に対応する閾値(たとえば、30%)を下回ると判断すると、対話セッションが第1の状態にあると判断し得る。別の例として、対話システムは、ルールのセットを使用して、第1の状態にとどまるか否か(たとえば、休止が閾値長さを上回るか否か)を判断し得る。上記のように、音声入力間の休止の長さは、単独でまたは他の要因と組み合わせて、対話セッションが特定の状態にあることを判断するのに使用され得る。たとえば、1分間の休止は、一般に、ユーザがし終えていることを示すが、ユーザがし終えていないことを示す音声入力(たとえば、「ちょっと待ってください」または「そして...」)を提供した場合には示さないであろう。
【0084】
対話が第1の状態にあると対話システムが判断した場合、フローは406に進み得る。406において、対話システムは、停止条件にフラグをたて得る。これは、314において対話セッションが第1の状態にあると判断し、次いでこれを316において使用して、対応する期間値がゼロであると判断することによって、実行され得る。
【0085】
404において対話セッションが第1の状態にないと対話システムが判断した場合、フローは408に進み得る。408において、対話システムは、対話が第2の状態にあるか否かを判断する。第2の状態は、ユーザが入力を提供し続けるという中間信頼レベルに対応し得る。たとえば、404に関して上記した、計算された信頼度スコアおよび/または個々の値(休止の長さなど)は、第1の閾値と第2の閾値との間であり得る。具体例として、検出された最後の休止が30秒~2分である場合、第2の状態がトリガされ得る。別の例として、信頼度スコアが40%~80%である場合、第2の状態がトリガされ得る。第2の状態にある場合、対話システムは410に進んで、明確化を要求し得る。
【0086】
410において、対話システムは、ユーザから明確化を要求する。対話システムは、音声またはテキスト出力(「他に何かありますか?」または「終わりましたか?」など)を提供することによって明確化を要求し得る。代替的にまたはさらに、対話システムは、ユーザが入力を提供し終えていることを示すために対話し得る視覚イメージ(チェックマークなど)を表示することによって明確化を要求し得る。
【0087】
410において明確化を要求した後、対話システムは、410における要求に応答して入力を受信する場合もあれば、受信しない場合もある。対話システムは、402に戻って、入力またはその欠如を使用して追加の状態解析を実行する。たとえば、ユーザは、「他に何かありますか?」に対して「ありません」と応答してもよく、これは、ユーザが入力を提供し終えていることを示す。別の例として、ユーザは、「終わりましたか?」に対して「いいえ」と応答してもよく、これは、ユーザが入力を提供し終えていないことを示す。このような入力またはその欠如は、402~406における状態処理に含められる。
【0088】
406において対話セッションが第2の状態にないと対話システムが判断した場合、フローは412に進み得る。412において、対話システムは、対話セッションが第3の状態にあると判断する。第3の状態は、追加の音声入力が見込まれる(たとえば、対話セッションを継続して追加の音声入力を待つことが適切である)状態である。
図3に関して上記したように、対話システムは、要因(以前の音声入力の内容、1つまたは複数の休止の長さ、および対話セッション内に受信された発話の数など)に基づいて、対話セッションを継続することが適切であると判断し得る。404および408に関して上記したように、対話システムは、信頼度スコアに基づいて、対話セッションが第3の状態にあると判断し得る。たとえば、信頼度スコアが80%という閾値を超える場合、対話システムは、対話セッションが第3の状態にあると判断する。別の例として、休止および/または対話セッションの長さが閾値を下回る場合、対話システムは、対話セッションが第3の状態にあると判断し得る。たとえば、10秒の休止の後、対話システムは、追加の音声入力が見込まれると判断し得る。
【0089】
対話が第1の状態にあると対話システムが判断した場合、フローは402に進み得て、対話システムは、停止条件が満たされるまで状態解析を実行し続け得る。
【0090】
図5は、特定の実施形態に係る、音声入力が他の音声入力に関連しているか否かを判断するための方法500を示す簡略化されたフローチャートである。
図5に示される処理は、1つまたは複数の音声入力(たとえば、第1の音声入力、および場合によっては第2の音声入力、第3の音声入力など)を受信した後に実行され得る。特定の実施形態において、
図5に示される処理は、
図1および
図2の対話マネージャサブシステム116および
図1に関して上記した対話システム100の他のコンポーネントによって実行され得る。特定の実施形態において、
図5に示される処理は、発話の処理の一部として
図3のブロック308において実行される。
図5に示される処理はさらに、314において対話セッションの現在の状態を判断するのに使用され得る。
【0091】
502において、対話システムは、後続の音声入力をユーザから受信する。
図3のブロック322に関して上記したように、後続の音声入力が受信され得る。
【0092】
504において、対話システムは、後続の音声入力(たとえば、第2の音声入力、第3の音声入力など)を処理する。
図3の308に関して上記したように、対話システム(たとえば、NLUサブシステム110)は音声入力を処理し得る。
【0093】
506において、対話システムは、後続の音声入力が以前の音声入力に関連しているか否かを判断する。対話システムは、以前の音声入力の意図に関連する単語が後続の音声入力に存在しているか否かを識別し得る。対話システムは、ルールまたは訓練済み機械学習モデルを使用して、後続の音声入力が以前の音声入力に関連しているか否かを判断し得る。たとえば、対話システムは、以前の音声入力と後続の音声入力との間の類似性スコアを計算し得る。この類似性スコアが閾値を上回る場合、対話システムは、後続の音声入力が以前の音声入力に関連していると判断し得る。類似性スコアが閾値を上回らない場合、対話システムは、後続の音声入力が以前の音声入力に関連していないと判断し得る。いくつかの実施形態において、このようなルールおよび/またはモデルは、ささやき(たとえば、「うーん」、人の名前、および音声入力を対話の一部として処理すべきでないことを示す他の発話)に関連付けられた単語を識別するように構成され得る。
【0094】
508において、後続の音声入力が以前の音声入力に関連していると対話システムが判断した場合、対話システムは、以前の音声入力を用いて後続の音声入力を処理する。音声入力を相関付けることは、どのぐらい違う発話が互いに関連しているか(たとえば、ピザのオーダーに飲み物を追加する)を判断することを含み得る。代替的にまたはさらに、後続の音声入力を以前の音声入力と相関付けることは、(たとえば、追加のスロットを充足することによって、誤解を修正することによって、など)以前の音声入力に基づいて生成された意味表現を更新することを含み得る。
【0095】
510において、後続の音声入力が以前の音声入力に関連していないと対話システムが判断した場合、対話システムは、後続の音声入力を無視する。対話システムは、関連していないと思われる後続の音声入力を使用することを控え得る(たとえば、後続の音声入力は、応答の生成またはアクションの実行に使用されない)。対話システムは、関連していないいかなる後続の音声入力も廃棄し得る。したがって、
図3に示される音声セッションを継続するプロセスはさらに、無関係の音声入力を無視してセッションを継続することを含み得る。
【0096】
本明細書に記載されている技術は、複数の利点を提供する。オープンエンドの態様で音声入力を連続的に監視することによって、以前のシステムの欠点を解消または低減することができる。上記のように、以前のシステムは、一般に、対話をシステムからの1つの要求および1つの応答に限定しており、これは、支離滅裂なユーザエクスペリエンスを生じさせる可能性がある。本開示の技術を使用して、システムは、セッションを維持して対話を継続すべきであるか、対話を終了させるべきであるかを判断することができる。したがって、エクスペリエンスはより合理化されて、要求において休止または中断が可能になる。これにより、ユーザによって要求される機能を実行するのに必要な時間および処理全体を減らすことができる。なぜなら、ユーザが対話の中で休止するたびに、対話を最初からやり直したり、新たなセッションを開始したりするなどの必要がないからである。
【0097】
上記のインフラストラクチャは、さまざまな異なる環境(クラウド環境(プライベート、パブリックおよびハイブリッドクラウド環境を含むさまざまなタイプのクラウドであり得る)、オンプレミス環境、ハイブリッド環境などを含む)において実現されることができる。
【0098】
図6は、一実施形態を実現するための分散型システム600の簡略図である。示されている実施形態では、分散型システム600は、1つまたは複数のクライアントコンピューティングデバイス602,604,606および608を含み、それらは、1つまたは複数の通信ネットワーク610を介してサーバ612に結合されている。クライアントコンピューティングデバイス602,604,606および608は、1つまたは複数のアプリケーションを実行するように構成され得る。
【0099】
さまざまな実施形態において、サーバ612は、1つまたは複数の発話にわたる連続的な意図判断を可能にする1つまたは複数のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
【0100】
特定の実施形態において、サーバ612は、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションも提供し得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして(ソフトウェア・アズ・ア・サービス(SaaS)モデル下など)クライアントコンピューティングデバイス602,604,606および/または608のユーザに対して提供され得る。クライアントコンピューティングデバイス602,604,606および/または608を動作させるユーザは、次いで、1つまたは複数のクライアントアプリケーションを利用してサーバ612と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。
【0101】
図6に示される構成では、サーバ612は、サーバ612によって実行される機能を実現する1つまたは複数のコンポーネント618,620および262を含み得る。これらのコンポーネントは、1つまたは複数のプロセッサによって実行され得るソフトウェアコンポーネント、ハードウェアコンポーネント、またはそれらの組み合わせを含み得る。分散型システム600とは異なっていてもよいさまざまな異なるシステム構成が可能であるということが理解されるべきである。
図6に示される実施形態は、したがって、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【0102】
ユーザは、本開示の教示に従って、1つまたは複数の発話にわたる対話セッションを動的に延長するのにクライアントコンピューティングデバイス602,604,606および/または608を使用し得る。クライアントデバイスは、クライアントデバイスのユーザがクライアントデバイスと対話することを可能にするインターフェイスを提供し得る。また、クライアントデバイスは、このインターフェイスを介して情報をユーザに出力し得る。
図6は、クライアントコンピューティングデバイスを4つだけ示しているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
【0103】
クライアントデバイスは、さまざまなタイプのコンピューティングシステム(携帯型の手持ち式デバイス、汎用コンピュータ(パーソナルコンピュータおよびラップトップなど)、ワークステーションコンピュータ、ウェアラブルデバイス、ゲーミングシステム、シンクライアント、さまざまなメッセージングデバイス、センサまたは他の感知デバイスなど)を含み得る。これらのコンピューティングデバイスは、さまざまなタイプおよびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえば、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、Linux(登録商標)またはLinux系オペレーティングシステム(グーグルクローム(商標)OSなど))を実行し得て、これらのソフトウェアアプリケーションおよびオペレーティングシステムは、さまざまなモバイルオペレーティングシステム(たとえば、マイクロソフトウィンドウズモバイル(登録商標)、iOS(登録商標)、ウィンドウズフォン(登録商標)、アンドロイド(商標)、ブラックベリー(登録商標)、パームOS(登録商標))を含む。携帯型の手持ち式デバイスは、携帯電話、スマートフォン(たとえば、iPhone(登録商標))、タブレット(たとえば、iPad(登録商標))、パーソナルデジタルアシスタント(PDA)などを含み得る。ウェアラブルデバイスは、グーグルグラス(登録商標)頭部装着型ディスプレイおよび他のデバイスを含み得る。ゲーミングシステムは、さまざまな手持ち式ゲーミングデバイス、インターネット対応ゲーミングデバイス(たとえば、キネクト(登録商標)ジェスチャ入力デバイスを有していたり有していなかったりするマイクロソフトXbox(登録商標)ゲーム機、ソニープレイステーション(登録商標)システム、任天堂(登録商標)によって提供されるさまざまなゲーミングシステムなど)などを含み得る。クライアントデバイスは、さまざまな異なるアプリケーション(さまざまなインターネット関連アプリ、通信アプリケーション(たとえば、電子メールアプリケーション、ショートメッセージサービス(SMS)アプリケーション)など)を実行することが可能であり得て、さまざまな通信プロトコルを使用し得る。
【0104】
ネットワーク610は、さまざまな入手可能なプロトコルのうちのいずれかを使用したデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであり得て、これらのプロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトーク(登録商標)などを含むが、それらに限定されるものではない。単に一例として、ネットワーク610は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク(たとえば、米国電気電子学会(IEEE)1002.11のプロトコル一式、ブルートゥース(登録商標)および/もしくはその他のワイヤレスプロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのいずれかの組み合わせおよび/もしくは他のネットワークであり得る。
【0105】
サーバ612は、1つもしくは複数の汎用コンピュータ、専門のサーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、または、その他の適切な構成および/もしくは組み合わせで構成され得る。サーバ612は、仮想オペレーティングシステムを実行する1つもしくは複数の仮想マシン、または、仮想化を含む他のコンピューティングアーキテクチャ(サーバのために仮想ストレージデバイスを維持するように仮想化され得る論理ストレージデバイスの1つもしくは複数のフレキシブルなプールなど)を含み得る。さまざまな実施形態において、サーバ612は、前述の開示に記載される機能を提供する1つまたは複数のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
【0106】
サーバ612におけるコンピューティングシステムは、上記のもののうちのいずれかを含む1つまたは複数のオペレーティングシステム、および、任意の市場で入手可能なサーバオペレーティングシステムを実行し得る。サーバ612は、さまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行し得て、これらのアプリケーションは、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル社(登録商標)、マイクロソフト社(登録商標)、サイベース社(登録商標)、IBM社(登録商標)(インターナショナルビジネスマシンズ)などから市場で入手可能なものを含むが、それらに限定されるものではない。
【0107】
いくつかの実現例において、サーバ612は、クライアントコンピューティングデバイス602,604,606および608のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つまたは複数のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新情報は、1つまたは複数の第三者情報源および連続データストリームから受信される、ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報またはリアルタイムの更新情報を含み得るが、それらに限定されるものではなく、これらは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含み得る。サーバ612は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス602,604,606および608の1つまたは複数のディスプレイデバイスを介して表示するための1つまたは複数のアプリケーションも含み得る。
【0108】
分散型システム600は、1つまたは複数のデータリポジトリ614,616も含み得る。特定の実施形態において、これらのデータリポジトリは、データおよび他の情報を格納するのに使用され得る。たとえば、データリポジトリ614,616のうちの1つまたは複数は、情報(対話履歴など)を格納するのに使用され得る。データリポジトリ614,616は、さまざまな場所にあり得る。たとえば、サーバ612によって使用されるデータリポジトリは、サーバ612に対してローカルであってもよく、またはサーバ612から遠く離れていてネットワークベースのまたは専用の接続を介してサーバ612と通信してもよい。データリポジトリ614,616は、異なるタイプであり得る。特定の実施形態において、サーバ612によって使用されるデータリポジトリは、データベース(たとえば、リレーショナルデータベース(オラクル社(登録商標)および他のベンダによって提供されるデータベースなど))であり得る。これらのデータベースのうちの1つまたは複数は、SQLでフォーマット済みのコマンドに応答したデータベースとの間でのデータの格納、更新および検索を可能にするように適合され得る。
【0109】
特定の実施形態において、データリポジトリ614,616のうちの1つまたは複数は、アプリケーションによって、アプリケーションデータを格納するのにも使用され得る。アプリケーションによって使用されるデータリポジトリは、異なるタイプ(たとえば、キー値格納リポジトリ、オブジェクト格納リポジトリ、またはファイルシステムによってサポートされる一般的なストレージリポジトリなど)であり得る。
【0110】
特定の実施形態において、本開示に記載されている対話セッション延長機能は、クラウド環境を介してサービスとして提供され得る。
図7は、特定の実施形態に係る、さまざまな対話セッション関連サービスがクラウドサービスとして提供され得るクラウドベースのシステム環境の簡略化されたブロック図である。
図7に示される実施形態において、クラウドインフラストラクチャシステム702は、1つまたは複数のクライアントコンピューティングデバイス704,706および708を使用してユーザによって要求され得る1つまたは複数のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム702は、1つまたは複数のコンピュータおよび/またはサーバを備え得る。クラウドインフラストラクチャシステム702におけるコンピュータは、汎用コンピュータ、専門のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせとして編成され得る。
【0111】
ネットワーク710は、クライアント704,706および708とクラウドインフラストラクチャシステム702との間のデータの伝達およびやりとりを容易にし得る。ネットワーク710は、1つまたは複数のネットワークを含み得る。これらのネットワークは、同一のタイプであってもよく、または異なるタイプであってもよい。ネットワーク710は、通信を容易にするために、1つまたは複数の通信プロトコル(ワイヤードおよび/またはワイヤレスプロトコルを含む)をサポートし得る。
【0112】
図7に示される実施形態は、クラウドインフラストラクチャシステムの一例に過ぎず、限定的であるよう意図されるものではない。いくつかの他の実施形態において、クラウドインフラストラクチャシステム702は、
図7に示されるコンポーネントよりも多くのコンポーネントまたは少ないコンポーネントを有してもよく、2つまたはそれ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい、ということが理解されるべきである。たとえば、
図7は3つのクライアントコンピューティングデバイスを示しているが、代替的な実施形態では任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
【0113】
クラウドサービスという語は、一般に、サービスプロバイダのシステム(たとえば、クラウドインフラストラクチャシステム702)によって通信ネットワーク(インターネットなど)を介してオンデマンドでユーザが入手できるようにされるサービスを指すのに使用される。一般に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。したがって、顧客は、クラウドサービスプロバイダによって提供されるクラウドサービスのために別のライセンス、サポート、またはハードウェアおよびソフトウェアリソースを購入する必要なく、これらのサービスを利用することができる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホストし得て、ユーザは、このアプリケーションを実行するためのインフラストラクチャリソースを購入する必要なく、インターネットを介してオンデマンドでこのアプリケーションをオーダーして使用することができる。クラウドサービスは、アプリケーション、リソースおよびサービスへの簡単でスケーラブルなアクセスを提供するように設計される。いくつかのプロバイダは、クラウドサービスを提供する。たとえば、いくつかのクラウドサービス(ミドルウェアサービス、データベースサービス、Javaクラウドサービスなど)は、カリフォルニア州レッドウッドショアーズのオラクル社(登録商標)によって提供される。
【0114】
特定の実施形態において、クラウドインフラストラクチャシステム702は、ハイブリッドサービスモデルを含むさまざまなモデル(ソフトウェア・アズ・ア・サービス(SaaS)モデル、プラットフォーム・アズ・ア・サービス(PaaS)モデル、インフラストラクチャ・アズ・ア・サービス(IaaS)モデルなど)を使用して1つまたは複数のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム702は、さまざまなクラウドサービスの提供を可能にする一連のアプリケーション、ミドルウェア、データベースおよび他のリソースを含み得る。
【0115】
SaaSモデルは、基本的なアプリケーションのためのハードウェアまたはソフトウェアを顧客が購入する必要なく、アプリケーションまたはソフトウェアをインターネットのような通信ネットワークを介してサービスとして顧客に提供することを可能にする。たとえば、SaaSモデルは、クラウドインフラストラクチャシステム702によってホストされるオンデマンドアプリケーションへのアクセスを顧客に提供するのに使用され得る。オラクル社(登録商標)によって提供されるSaaSサービスの例としては、人材/資本管理、顧客関係管理(CRM)、企業リソース計画(ERP)、サプライチェーン管理(SCM)、企業業績管理(EPM)、アナリティクスサービス、ソーシャルアプリケーションなどのためのさまざまなサービスが挙げられるが、それらに限定されるものではない。
【0116】
IaaSモデルは、一般に、インフラストラクチャリソース(たとえば、サーバ、ストレージ、ハードウェアおよびネットワーキングリソース)をクラウドサービスとして顧客に提供して、弾力的な計算およびストレージ機能を提供するのに使用される。さまざまなIaaSサービスは、オラクル社(登録商標)によって提供される。
【0117】
PaaSモデルは、一般に、顧客がプラットフォームおよび環境リソースを調達、構築または保守整備する必要なく、顧客がアプリケーションおよびサービスを開発、実行および管理することを可能にするこのようなリソースをサービスとして提供するのに使用される。オラクル社(登録商標)によって提供されるPaaSサービスの例としては、オラクルJavaクラウドサービス(JCS)、オラクルデータベースクラウドサービス(DBCS)、データ管理クラウドサービス、さまざまなアプリケーション開発ソリューションサービスなどが挙げられるが、それらに限定されるものではない。
【0118】
クラウドサービスは、一般に、オンデマンドセルフサービスベースの、申し込みベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、セキュリティ保護された態様で提供される。たとえば、顧客は、クラウドインフラストラクチャシステム702によって提供される1つまたは複数のサービスを申し込みオーダーを介してオーダーし得る。次いで、クラウドインフラストラクチャシステム702は、顧客の申し込みオーダーで要求されたサービスを提供するように処理を実行する。たとえば、クラウドインフラストラクチャシステム702は、履歴コンテキストを使用して対話タスクに影響を及ぼす。クラウドインフラストラクチャシステム702は、1つまたは複数のクラウドサービスを提供するように構成され得る。
【0119】
クラウドインフラストラクチャシステム702は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。パブリッククラウドモデルでは、クラウドインフラストラクチャシステム702は、第三者クラウドサービスプロバイダによって所有され得て、クラウドサービスは、任意の一般大衆顧客に提供され、顧客は、個人または企業であり得る。特定の他の実施形態では、プライベートクラウドモデルの下で、クラウドインフラストラクチャシステム702は、組織内(たとえば、企業組織内)で運営され得て、当該組織内の顧客にサービスが提供される。たとえば、顧客は、企業のさまざまな部署(人事部、給与支払部など)または当該企業内の個人であり得る。特定の他の実施形態では、コミュニティクラウドモデルの下で、クラウドインフラストラクチャシステム702および提供されるサービスは、関連するコミュニティ内のいくつかの組織によって共有され得る。さまざまな他のモデル(上記のモデルのハイブリッドなど)も使用され得る。
【0120】
クライアントコンピューティングデバイス704,706および708は、異なるタイプ(
図6に示されるデバイス602,604,606および608など)であり得て、1つまたは複数のクライアントアプリケーションを動作させることが可能であり得る。ユーザは、クライアントデバイスを使用してクラウドインフラストラクチャシステム702と対話し得る(クラウドインフラストラクチャシステム702によって提供されるサービスを要求するなど)。たとえば、ユーザは、クライアントデバイスを使用して、本開示に記載されている対話セッション関連サービスを要求し得る。
【0121】
いくつかの実施形態において、対話セッション関連サービスを提供するためにクラウドインフラストラクチャシステム702によって実行される処理は、ビッグデータ解析を含み得る。この解析は、大きなデータセットを使用、解析および操作して、データ内のさまざまなトレンド、挙動、関係などを検出して視覚化することを含み得る。この解析は、場合によってはデータを並行して処理したりデータを使用してシミュレーションを行ったりする1つまたは複数のプロセッサによって実行され得る。たとえば、ビッグデータ解析は、受信された音声入力に基づいて意図を識別するためにクラウドインフラストラクチャシステム702によって実行され得る。この解析に使用されるデータは、構造化されたデータ(たとえば、データベースに格納されたデータまたは構造化されたモデルに従って構造化されたデータ)および/または構造化されていないデータ(たとえば、データブロブ(バイナリ・ラージ・オブジェクト))を含み得る。
【0122】
図7の実施形態に示されるように、クラウドインフラストラクチャシステム702は、クラウドインフラストラクチャシステム702によって提供されるさまざまなクラウドサービスの提供を容易にするために利用されるインフラストラクチャリソース730を含み得る。インフラストラクチャリソース730は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。
【0123】
特定の実施形態において、クラウドインフラストラクチャシステム702によってさまざまな顧客に提供されるさまざまなクラウドサービスをサポートするためのこれらのリソースの効率的なプロビジョニングを容易にするために、リソースは、リソースまたはリソースモジュールのセット(「ポッド」とも称される)に束ねられ得る。各リソースモジュールまたはポッドは、1つまたは複数のタイプのリソースの予め統合されて最適化された組み合わせを備え得る。特定の実施形態において、サーバ212について上記したものを含み得るさまざまなタイプのクラウドサービスのためにさまざまなポッドが予めプロビジョニングされ得る。たとえば、ポッドの第1のセットは、データベースサービスのためにプロビジョニングされ得て、ポッドの第1のセットの中のポッドとは異なるリソースの組み合わせを含み得るポッドの第2のセットは、Javaサービスのためにプロビジョニングされ得る、などである。いくつかのサービスでは、サービスのプロビジョニングに割り当てられるリソースは、サービス間で共有され得る。
【0124】
クラウドインフラストラクチャシステム702自体は、クラウドインフラストラクチャシステム702のさまざまなコンポーネントによって共有されるサービス732を内部で使用し得て、これにより、クラウドインフラストラクチャシステム702によるサービスのプロビジョニングが容易になる。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、それらに限定されるものではない。
【0125】
クラウドインフラストラクチャシステム702は、複数のサブシステムを備え得る。これらのサブシステムは、ソフトウェアで実現されてもよく、またはハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。
図7に示されるように、サブシステムは、クラウドインフラストラクチャシステム702のユーザまたは顧客がクラウドインフラストラクチャシステム702と対話することを可能にするユーザインターフェイスサブシステム712を含み得る。ユーザインターフェイスサブシステム712は、さまざまな異なるインターフェイス(ウェブインターフェイス714、オンラインストアインターフェイス716(クラウドインフラストラクチャシステム702によって提供されたクラウドサービスが宣伝されて消費者によって購入可能である)および他のインターフェイス718など)を含み得る。たとえば、顧客は、クライアントデバイスを使用して、クラウドインフラストラクチャシステム702によって提供された1つまたは複数のサービスをインターフェイス714,716および718のうちの1つまたは複数を使用して要求し得る(サービス要求734)。たとえば、顧客は、オンラインストアにアクセスして、クラウドインフラストラクチャシステム702によって提供されたクラウドサービスをブラウズして、顧客が申し込みたい、クラウドインフラストラクチャシステム702によって提供された1つまたは複数のサービスの申し込みオーダーを行い得る。このサービス要求は、顧客および顧客が申し込みたい1つまたは複数のサービスを識別する情報を含み得る。たとえば、顧客は、クラウドインフラストラクチャシステム702によって提供された対話セッション関連サービスの申し込みオーダーを行い得る。オーダーの一部として、顧客は、要求を識別する音声入力を提供し得る。
【0126】
特定の実施形態(
図7に示される実施形態など)において、クラウドインフラストラクチャシステム702は、新たなオーダーを処理するように構成されたオーダー管理サブシステム(OMS)720を備え得る。この処理の一部として、OMS720は、まだなされていなければ顧客のアカウントを作成して、要求されたサービスを顧客に提供するために請求書を顧客に発行するのに使用される請求書発行および/または課金情報を顧客から受信して、顧客情報を検証して、検証時に顧客のオーダーを確定して、さまざまなワークフローをオーケストレートしてプロビジョニングに備えてオーダーを準備するように構成され得る。
【0127】
適切な形で認証されると、OMS720は、次に、オーダープロビジョニングサブシステム(OPS)724を呼び出し得る。オーダープロビジョニングサブシステム(OPS)724は、オーダーのためのリソース(処理、メモリおよびネットワーキングリソースを含む)をプロビジョニングするように構成される。プロビジョニングは、オーダーのためのリソースを割り当てて、顧客オーダーによって要求されたサービスを容易にするようにこれらのリソースを構成することを含み得る。オーダーのためのリソースをプロビジョニングする態様およびプロビジョニングされたリソースのタイプは、顧客によってオーダーされたクラウドサービスのタイプに依存し得る。たとえば、1つのワークフローに従って、OPS724は、特定のクラウドサービスが要求されていると判断して、当該特定のクラウドサービスについて予め構成されていたであろうポッドの数を識別するように構成され得る。オーダーに割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割り当てられるポッドの数は、サービスによってサポートされるユーザの数、サービスが要求されている期間などに基づいて決定され得る。次いで、割り当てられたポッドは、要求されたサービスを提供するように特定の要求発行顧客に合わせてカスタマイズされ得る。
【0128】
クラウドインフラストラクチャシステム702は、応答または通知744を要求発行顧客に送信して、要求されたサービスがいつ使用できる状態になるかを示し得る。いくつかの例において、要求されたサービスの利益を顧客が使用および利用し始めることを可能にする情報(たとえば、リンク)が顧客に送信され得る。特定の実施形態において、顧客が対話セッション関連サービスを要求する場合、応答は、識別された意図に基づいて生成された応答を含み得る。
【0129】
クラウドインフラストラクチャシステム702は、サービスを複数の顧客に提供し得る。各顧客について、クラウドインフラストラクチャシステム702は、顧客から受信された1つまたは複数の申し込みオーダーに関連する情報を管理して、これらのオーダーに関連する顧客データを維持して、要求されたサービスを顧客に提供することを担当する。クラウドインフラストラクチャシステム702は、申し込みされたサービスの顧客の使用に関する使用量統計も収集し得る。たとえば、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などについて統計が収集され得る。この使用量情報は、顧客に請求書を発行するのに使用され得る。請求書発行は、たとえば月1回のサイクルで行われ得る。
【0130】
クラウドインフラストラクチャシステム702は、サービスを複数の顧客に並行して提供し得る。クラウドインフラストラクチャシステム702は、これらの顧客の情報(場合によっては、専有情報を含む)を格納し得る。特定の実施形態において、クラウドインフラストラクチャシステム702は、顧客情報を管理して、ある顧客に関連する情報が別の顧客によってアクセス不可能であるように、管理された情報を分離するように構成されたアイデンティティ管理サブシステム(IMS)728を備える。IMS728は、さまざまなセキュリティ関連サービス(アイデンティティサービス(情報アクセス管理、認証および認可サービス、顧客のアイデンティティおよび役割および関連する機能を管理するためのサービスなど))を提供するように構成され得る。
【0131】
図8は、特定の実施形態を実現するために使用され得る例示的なコンピュータシステム800を示す図である。たとえば、いくつかの実施形態において、コンピュータシステム800は、ASRサブシステム、NLUサブシステム、ならびに上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するために使用され得る。
図8に示されるように、コンピュータシステム800は、処理サブシステム804を含むさまざまなサブシステムを含み、処理サブシステム804は、バスサブシステム802を介していくつかの他のサブシステムと通信する。これらの他のサブシステムは、処理加速ユニット806と、I/Oサブシステム808と、ストレージサブシステム818と、通信サブシステム824とを含み得る。ストレージサブシステム818は、記憶媒体822とシステムメモリ810とを含む非一時的なコンピュータ読取可能記憶媒体を含み得る。
【0132】
バスサブシステム802は、コンピュータシステム800のさまざまなコンポーネントおよびサブシステムに意図した通りに互いに通信させるための機構を提供する。バスサブシステム802は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム802は、いくつかのタイプのバス構造のうちのいずれかであり得て、これらのバス構造は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バス、ローカルバスなどを含む。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスなどを含み得る。
【0133】
処理サブシステム804は、コンピュータシステム800の動作を制御し、1つまたは複数のプロセッサ、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を備え得る。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含み得る。コンピュータシステム800の処理リソースは、1つまたは複数の処理ユニット832,834などに編成されることができる。処理ユニットは、1つもしくは複数のプロセッサ、同一のもしくは異なるプロセッサからの1つもしくは複数のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとの他の組み合わせを含み得る。いくつかの実施形態において、処理サブシステム804は、1つまたは複数の特別目的コプロセッサ(グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)など)を含み得る。いくつかの実施形態において、処理サブシステム804の処理ユニットの一部または全ては、カスタマイズされた回路(特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)など)を使用して実現可能である。
【0134】
いくつかの実施形態において、処理サブシステム804内の処理ユニットは、システムメモリ810内またはコンピュータ読取可能記憶媒体822上に格納された命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。どんなときでも、実行対象のプログラムコードの一部または全ては、システムメモリ810内および/またはコンピュータ読取可能記憶媒体822上(場合によっては、1つまたは複数のストレージデバイス上を含む)にあることができる。好適なプログラミングを通じて、処理サブシステム804は、上記のさまざまな機能を提供することができる。コンピュータシステム800が1つまたは複数の仮想マシンを実行している例では、1つまたは複数の処理ユニットは、各仮想マシンに割り当てられ得る。
【0135】
特定の実施形態において、処理加速ユニット806は、コンピュータシステム800によって実行される処理全体を加速させるために、カスタマイズされた処理を実行するように、または、処理サブシステム804によって実行される処理の一部をオフロードするように任意に設けられ得る。
【0136】
I/Oサブシステム808は、情報をコンピュータシステム800に入力する、および/または、情報をコンピュータシステム800からもしくはコンピュータシステム800を介して出力するためのデバイスおよび機構を含み得る。一般に、入力デバイスという語の使用は、情報をコンピュータシステム800に入力するための全ての可能なタイプのデバイスおよび機構を含むよう意図されている。ユーザインターフェイス入力デバイスは、たとえば、キーボード、ポインティングデバイス(マウスまたはトラックボールなど)、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴うオーディオ入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするモーション感知および/またはジェスチャ認識デバイス(マイクロソフトキネクト(登録商標)モーションセンサなど)、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャおよび口頭のコマンドを使用して入力を受信するためのインターフェイスを提供するデバイスも含み得る。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえば、グーグルグラス(登録商標))への入力として変換するアイジェスチャ認識デバイス(グーグルグラス(登録商標)瞬き検出器など)も含み得る。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システムと対話することを可能にする音声認識感知デバイスを含み得る。
【0137】
ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにオーディオ/ビジュアルデバイス(スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなど)が挙げられるが、それらに限定されるものではない。さらに、ユーザインターフェイス入力デバイスは、たとえば、医療用画像化入力デバイス(コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィーおよび医療用超音波検査デバイスなど)を含み得る。ユーザインターフェイス入力デバイスは、たとえば、オーディオ入力デバイス(MIDIキーボード、デジタル楽器など)も含み得る。
【0138】
一般に、「出力デバイス」という語の使用は、情報をコンピュータシステム800からユーザまたは他のコンピュータに出力するための全ての可能なタイプのデバイスおよび機構を含むよう意図されている。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または非ビジュアルディスプレイ(オーディオ出力デバイスなど)を含み得る。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネルデバイス(液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなど)、投影デバイス、タッチスクリーンなどであり得る。たとえば、ユーザインターフェイス出力デバイスは、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイス(モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなど)を含み得るが、それらに限定されるものではない。
【0139】
ストレージサブシステム818は、コンピュータシステム800によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム818は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。ストレージサブシステム818は、処理サブシステム804によって実行されると上記の機能を提供するソフトウェア(たとえば、プログラム、コードモジュール、命令)を格納し得る。このソフトウェアは、処理サブシステム804の1つまたは複数の処理ユニットによって実行され得る。ストレージサブシステム818は、本開示の教示に従って使用されるデータを格納するためのリポジトリも提供し得る。
【0140】
ストレージサブシステム818は、揮発性および不揮発性メモリデバイスを含む1つまたは複数の非一時的なメモリデバイスを含み得る。
図8に示されるように、ストレージサブシステム818は、システムメモリ810と、コンピュータ読取可能記憶媒体822とを含む。システムメモリ810は、いくつかのメモリを含み得て、これらのメモリは、プログラム実行中に命令およびデータを格納するための揮発性メインランダムアクセスメモリ(RAM)、および、固定された命令が格納される不揮発性リードオンリメモリ(ROM)またはフラッシュメモリを含む。いくつかの実現例において、起動中などにコンピュータシステム800内の要素間で情報を転送するのを手助けする基本的なルーチンを含むベーシックインプット/アウトプットシステム(BIOS)は、一般に、ROMに格納され得る。RAMは、一般に、処理サブシステム804によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ810は、複数の異なるタイプのメモリ(スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)など)を含み得る。
【0141】
一例として、
図8に示されるように、システムメモリ810は、実行中のアプリケーションプログラム812(ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのさまざまなアプリケーションを含み得る)、プログラムデータ814およびオペレーティングシステム816をロードし得るが、それらに限定されるものではない。一例として、オペレーティングシステム816は、さまざまなバージョンのマイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはLinuxオペレーティングシステム、さまざまな市場で入手可能なUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、グーグルクローム(登録商標)OSなどを含むが、それらに限定されるものではない)、ならびに/または、モバイルオペレーティングシステム(iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)OS、パーム(登録商標)OSオペレーティングシステムなど)を含み得る。
【0142】
コンピュータ読取可能記憶媒体822は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。コンピュータ読取可能媒体822は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム800のために格納し得る。処理サブシステム804によって実行されると上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム818に格納され得る。一例として、コンピュータ読取可能記憶媒体822は、不揮発性メモリ(ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ(CD ROM、DVD、ブルーレイ(登録商標)ディスクなど)、または他の光学式媒体など)を含み得る。コンピュータ読取可能記憶媒体822は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、それらに限定されるものではない。コンピュータ読取可能記憶媒体822は、不揮発性メモリに基づくソリッドステートドライブ(SSD)(フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなど)、揮発性メモリに基づくSSD(ソリッドステートRAM、ダイナミックRAM、スタティックRAMなど)、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMベースのSSDとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。
【0143】
特定の実施形態において、ストレージサブシステム818は、コンピュータ読取可能記憶媒体822にさらに接続可能なコンピュータ読取可能記憶媒体リーダ820も含み得る。リーダ820は、メモリデバイス(ディスク、フラッシュドライブなど)からデータを受信して、読み取るように構成され得る。
【0144】
特定の実施形態において、コンピュータシステム800は、仮想化技術(処理およびメモリリソースの仮想化を含むが、それに限定されるものではない)をサポートし得る。たとえば、コンピュータシステム800は、1つまたは複数の仮想マシンを実行するためのサポートを提供し得る。特定の実施形態において、コンピュータシステム800は、仮想マシンの構成および管理を容易にするプログラム(ハイパーバイザなど)を実行し得る。各仮想マシンは、メモリ、計算(たとえば、プロセッサ、コア)、I/Oおよびネットワーキングリソースを割り当てられ得る。各仮想マシンは、一般に、他の仮想マシンから独立して動作する。仮想マシンは、一般に、自身のオペレーティングシステムを実行し、このオペレーティングシステムは、コンピュータシステム800によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム800によって同時に実行され得る。
【0145】
通信サブシステム824は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム824は、他のシステムとコンピュータシステム800との間のデータの送受のためのインターフェイスとしての役割を果たす。たとえば、通信サブシステム824は、コンピュータシステム800が、クライアントデバイスとの間での情報の送受のための、インターネットを介した1つまたは複数のクライアントデバイスとの通信チャネルを確立することを可能にし得る。たとえば、通信サブシステムは、データベースと通信して、要求可能なエンティティを識別するためのクエリを実行するために使用され得る。
【0146】
通信サブシステム824は、ワイヤードおよび/またはワイヤレス通信プロトコルを両方ともサポートし得る。たとえば、特定の実施形態において、通信サブシステム824は、(たとえば、セルラー電話技術、先進データネットワーク技術(3G、4GもしくはEDGE(グローバル進化のための拡張版データ通信速度)など)、WiFi(IEEE802.XXファミリー規格)、または他のモバイル通信技術、またはそれらの任意の組み合わせを使用して)ワイヤレス音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または、他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム824は、ワイヤレスインターフェイスに加えて、またはその代わりに、ワイヤードネットワーク接続(たとえば、イーサネット)を提供することができる。
【0147】
通信サブシステム824は、データをさまざまな形式で送受信することができる。たとえば、いくつかの実施形態において、他の形式に加えて、通信サブシステム824は、構造化されたおよび/または構造化されていないデータフィード826、イベントストリーム828、イベント更新情報830などの形式で入力通信を受信し得る。たとえば、通信サブシステム824は、ソーシャルメディアネットワークのユーザからリアルタイムでデータフィード826を受信(または、送信)し、および/または、他の通信サービス(ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報、ウェブフィード(リッチ・サイト・サマリ(RSS)フィードなど)、および/または、1つもしくは複数の第三者情報源からのリアルタイム更新情報など)を受信(または、送信)するように構成され得る。
【0148】
特定の実施形態において、通信サブシステム824は、連続データストリームの形式でデータを受信するように構成され得て、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム828および/またはイベント更新情報830を含み得る。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
【0149】
また、通信サブシステム824は、データをコンピュータシステム800から他のコンピュータシステムまたはネットワークに伝えるように構成され得る。このデータは、コンピュータシステム800に結合された1つまたは複数のストリーミングデータソースコンピュータと通信し得る1つまたは複数のデータベースに、さまざまな異なる形式(構造化されたおよび/または構造化されていないデータフィード826、イベントストリーム828、イベント更新情報830など)で伝えられ得る。
【0150】
コンピュータシステム800は、さまざまなタイプ(手持ち式の携帯型デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む)のもののうちの1つであり得る。常に変化するコンピュータおよびネットワークの性質のために、
図8に示されるコンピュータシステム800の記載は、具体例として意図されているに過ぎない。
図8に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の態様および/または方法を理解するであろう。
【0151】
特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物が可能である。実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して特定の実施形態について説明してきたが、これは限定的であるよう意図されるものではないということが当業者に明らかであるべきである。いくつかのフローチャートは、動作をシーケンシャルなプロセスとして説明しているが、これらの動作の多くは、並列にまたは同時に実行されてもよい。また、動作の順序は、並べ替えられてもよい。プロセスは、図面に含まれていない追加のステップを有してもよい。上記の実施形態のさまざまな特徴および局面は、個々に使用されてもよく、または一緒に使用されてもよい。
【0152】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを使用して特定の実施形態について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも可能であるということが認識されるべきである。特定の実施形態は、ハードウェアのみで実現されてもよく、ソフトウェアのみで実現されてもよく、またはそれらの組み合わせを使用して実現されてもよい。本明細書に記載されているさまざまなプロセスは、同一のプロセッサ上で実現されてもよく、または任意の組み合わせの異なるプロセッサ上で実現されてもよい。
【0153】
デバイス、システム、コンポーネントまたはモジュールは、特定の動作または機能を実行するように構成されるものとして説明されているが、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行する(コンピュータ命令もしくはコードを実行するなど)ようにプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることによって、または非一時的なメモリ媒体に格納されたコードもしくは命令を実行するようにプロセッサもしくはコアがプログラムされることによって、またはそれらの任意の組み合わせによって達成することができる。プロセスは、さまざまな技術(プロセス間通信のための従来の技術を含むが、それに限定されるものではない)を使用して通信することができ、異なるプロセスペアは異なる技術を使用してもよく、同じプロセスペアは別々のタイミングで異なる技術を使用してもよい。
【0154】
実施形態を十分に理解できるようにするために、本開示では具体的な詳細が提供されている。しかし、これらの具体的な詳細がなくても実施形態を実施することができる。たとえば、周知の回路、プロセス、アルゴリズム、構造および技術は、実施形態を曖昧にすることを回避するために、不必要な詳細なしに示されている。この説明は、例示的な実施形態を提供しているに過ぎず、他の実施形態の範囲、適用性または構成を限定するよう意図されているわけではない。むしろ、実施形態の上記の説明は、さまざまな実施形態を実現するための実施可能な程度の説明を当業者に提供するであろう。要素の機能および配置の点でさまざまな変更がなされてもよい。
【0155】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広い精神および範囲から逸脱することなく、追加、減算、削除ならびに他の変形および変更がなされてもよい、ということは明らかであろう。したがって、特定の実施形態について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。
【国際調査報告】