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

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

▶ エスアールアイ インターナショナルの特許一覧

特表2022-531645人間会話キューを理解および生成する方法、システム、および装置
<>
  • 特表-人間会話キューを理解および生成する方法、システム、および装置 図1
  • 特表-人間会話キューを理解および生成する方法、システム、および装置 図2A
  • 特表-人間会話キューを理解および生成する方法、システム、および装置 図2B
  • 特表-人間会話キューを理解および生成する方法、システム、および装置 図2C
  • 特表-人間会話キューを理解および生成する方法、システム、および装置 図3
  • 特表-人間会話キューを理解および生成する方法、システム、および装置 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-08
(54)【発明の名称】人間会話キューを理解および生成する方法、システム、および装置
(51)【国際特許分類】
   G10L 15/22 20060101AFI20220701BHJP
   G10L 15/10 20060101ALI20220701BHJP
   G10L 13/00 20060101ALI20220701BHJP
   G10L 13/08 20130101ALI20220701BHJP
   G06F 40/211 20200101ALI20220701BHJP
   G06F 40/30 20200101ALI20220701BHJP
【FI】
G10L15/22 300U
G10L15/10 500Z
G10L13/00 100M
G10L13/08 124
G06F40/211
G06F40/30
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021556316
(86)(22)【出願日】2020-05-07
(85)【翻訳文提出日】2021-09-16
(86)【国際出願番号】 US2020031918
(87)【国際公開番号】W WO2020227557
(87)【国際公開日】2020-11-12
(31)【優先権主張番号】62/845,604
(32)【優先日】2019-05-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】501228071
【氏名又は名称】エスアールアイ インターナショナル
【氏名又は名称原語表記】SRI International
【住所又は居所原語表記】333 Ravenswood Avenue, Menlo Park, California 94025, U.S.A.
(74)【代理人】
【識別番号】100098899
【弁理士】
【氏名又は名称】飯塚 信市
(74)【代理人】
【識別番号】100163865
【弁理士】
【氏名又は名称】飯塚 健
(72)【発明者】
【氏名】ブラット, ハリー
(72)【発明者】
【氏名】プレコダ, クリスティン
(72)【発明者】
【氏名】バージリ, ディミトラ
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091CA05
5B091CA12
(57)【要約】
音声ベースのデジタルアシスタント(VDA)は、会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを使用して、1つまたは2つ以上のモジュールからの情報を処理し、人間のコミュニケーションの流れおよび交換において、ユーザとVDAとの間の会話フロアの奪取または放棄のうちの少なくとも1つのために、少なくとも相づちの理解および生成を含めて、i)人間会話キューの理解と、ii)人間会話キューの生成との両方について判定する。CIマネージャモジュールは、規則ベースエンジンを使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定し、ユーザが依然として会話フロアを保持している時間フレーム中にスピーチの流れにおいてユーザによって伝達される言語コミュニケーションについてのi)理解、ii)訂正、iii)承認、およびiv)質問のいずれかを伝えるための相づちを生成する。
【特許請求の範囲】
【請求項1】
人間会話キューを理解および生成する装置であって、
音声ベースのデジタルアシスタント(VDA)のための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを備え、前記CIマネージャモジュールは、人間のコミュニケーションの流れおよび交換において、1)ユーザと前記VDAとの間の会話フロアの取得、奪取、もしくは放棄、または2)前記会話フロアを取得しない会話グラウンディングの確立のうちの少なくとも1つのために、少なくとも相づちの理解および/または生成を含めて、i)前記人間会話キューの理解と、ii)人間的な会話キューの生成との両方について判定するために、1つまたは2つ以上のモジュールから情報を受け取るための1つまたは2つ以上の入力を有し、
前記CIマネージャモジュールは、前記規則ベースエンジンを使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定するように構成され、前記CIマネージャモジュールが前記相づちを生成すると決定したとき、前記CIマネージャモジュールは、前記ユーザのスピーチの流れにおいて前記ユーザによって伝達される言語コミュニケーションについてのi)理解、ii)さらなる情報の要求、iii)承認、およびiv)質問のいずれかを伝えるための前記相づちを発するためのコマンドを生成するように構成される、装置。
【請求項2】
前記CIマネージャモジュールは、前記規則ベースエンジンを使用して、会話キューの要因を分析および判定するように構成され、
前記規則ベースエンジンは、i)非語彙的な項目、ii)話し言葉の韻律、iii)前記ユーザのスピーチの流れにおける構文の文法的な完全性、iv)休止の継続時間、およびv)ユーザの発話の意味条件の程度のうちのいずれかの2つ以上の会話キューを分析および判定するための規則を有し、
前記CIマネージャモジュールは、これらの判定および分析を行った後、単に固定の継続時間の休止を待ち、次いで前記ユーザが前記会話フロアを放棄したと想定するのとは対照的に、1)前記ユーザからの追加の情報を促すこと、2)前記ユーザが前記会話フロアを引き続き有することに対する前記VDAの同意および理解を伝えること、または3)前記VDAが前記会話フロアの奪取を求めていることを示すことのうちの少なくとも1つのために、発話を生成するかどうかを決定するように構成される、請求項1に記載の装置。
【請求項3】
前記CIマネージャモジュールは、前記ユーザのスピーチの韻律情報を必要とするマイクロインタラクションを可能にする韻律分析器を有し、前記CIマネージャモジュールは、自動音声処理モジュールから前記韻律分析のための入力データを受け取るように構成され、前記自動音声処理モジュールは、第1に、何らかのスピーチ活動が生じているかどうかを確認して検出し、次いで、前記韻律検出器を使用してユーザの発話に前記韻律分析を適用し、i)前記ユーザが実際に前記会話フロアを放棄したかどうか、またはii)前記ユーザが追加の情報を伝達するために、スピーチの流れに休止を挿入しているかどうかを判定するように構成され、前記追加の情報は、1)長いリストの情報の伝達を助けるために、休止しながら話すこと、2)前記ユーザが最初に第1の発話によって不完全に話し、それに続いて休止し、次いで第2の発話によって前記ユーザが前記スピーチ活動で伝達しようとしている考えを完了させることができるように、2つ以上のユーザ発話間に休止しながら話すこと、3)前記システムからの相づちを求めるために、休止しながら話すこと、ならびに4)これら3つの任意の組合せからなる群から選択される、請求項1に記載の装置。
【請求項4】
前記CIマネージャモジュールのいくつかの部分がソフトウェアで実施されるとき、前記CIマネージャモジュールによって実行されるときに、前記CIマネージャモジュールに、請求項1に記載の装置に対してリスト化された機能を実行させる形式で、1つまたは2つ以上の非一時的機械可読記憶媒体内に命令が記憶され、
前記CIマネージャモジュールは、ユーザと前記VDAとの間に相互理解が生じていないことを判定するために、会話グラウンディング検出器からの入力を有し、前記CIマネージャモジュールが、前記相互理解が生じていないと判定したとき、前記CIマネージャモジュール、自然言語生成モジュール、およびテキストトゥスピーチモジュールは協働して、前記相互理解を再確立するための1つまたは2つ以上の発話を発するように構成され、前記規則ベースエンジンは、前記ユーザと前記VDAとの間に前記相互理解が生じていないと決定するための規則を使用するように構成される、
請求項1に記載の装置。
【請求項5】
前記CIマネージャモジュールは、スピーチ訂正に関するマイクロインタラクションをトリガして、i)発話の途中で途切れた単語および文、ならびに/またはii)前記ユーザが話しており前記会話フロアを保持している間に発せられた非語彙的な音語の様々な途切れの非流暢性情報を検出するための非流暢性検出器からの入力を有し、前記CIマネージャモジュールは、1)自動音声処理モジュールとともに、前記ユーザからのそれ以外は流暢なスピーチ内のスピーチにおける前記非流暢性情報を検出する働きをし、次いで2)前記規則ベースエンジンとともに、前記非流暢性情報を記録し、i)前記非流暢性情報を使用してスピーチを訂正すること、もしくはii)会話的にグラウンディングして、システムの理解が正しいことを前記ユーザによって承認すること、またはiii)両方のために、規則を適用する働きをするように構成される、請求項1に記載の装置。
【請求項6】
前記CIマネージャモジュールは、口頭言語理解モジュールと協働して、入力データから、ユーザが言っている内容で伝達される前記ユーザの姿勢を示すために、ユーザのi)応答中の感情状態、ii)発話の音響トーン、iii)韻律、iv)何らかの談話マーカ、ならびにv)これらの任意の組合せを分析することに関する入力情報を提供するように構成され、前記CIマネージャモジュールは、前記口頭言語理解モジュールからの前記感情状態、前記発話の前記音響トーン、または前記談話マーカを考慮して判定し、次いで応答を発し、または状態を調整し、前記応答を発したとき、テキストトゥスピーチモジュールを使用して、1)前記会話フロアを放棄し、2)前記ユーザからの追加の情報を求め、または3)前記ユーザに対する前記システム応答を変化させるために対話状態を変化させるように構成される、請求項1に記載の装置。
【請求項7】
対話マネージャモジュールが、前記CIマネージャモジュールへの入力および出力と双方に接続され、前記対話マネージャモジュールは、1つまたは複数の関連する発話に対して、現在の話題を含む少なくとも対話状態を分析および追跡するように構成され、
前記CIマネージャモジュールは、i)音声のトーンまたはピッチ、ii)タイミング情報、iii)発話、iv)転換語、およびv)前記会話フロアの転換を伝える他の人間のキューを含む少なくとも口頭言語理解モジュールからの情報を消化して、前記ユーザと前記VDAとの間の前記会話フロアを取得、奪取、または放棄するかどうかに関してどのように進むかを判定するように構成される、
請求項1に記載の装置。
【請求項8】
前記CIマネージャモジュールは、自然言語生成モジュールおよびテキストトゥスピーチモジュールと入力および出力を双方に交換して、前記ユーザと前記VDAとの間の人間のコミュニケーションの前記流れおよび交換のための韻律会話キューを利用する前記人間的な会話キューを生成するように構成される、請求項1に記載の装置。
【請求項9】
前記CIマネージャモジュールに通信可能に結合された1つまたは2つ以上の環境モジュールをさらに備え、前記環境モジュールは、前記ユーザが相互作用しているワールドコンテキストに関する情報を提供するように構成され、前記VDAの前記CIマネージャモジュールは、前記情報を使用して、前記ユーザが現在気を取られており、前記VDAからのスピーチを処理する能力が低下していると判定することを支援するように構成され、前記CIマネージャモジュールは、前記ユーザが気を取られていると判定したとき、前記VDAの挙動を調整する行動をとるように構成される、
請求項1に記載の装置。
【請求項10】
前記自然言語生成モジュールは、前記テキストトゥスピーチモジュールが前記ユーザへのスピーチを生成するとき、ピッチを含む韻律を使用して、前記CIマネージャモジュールおよび前記ユーザが韻律を介して前記会話グラウンディングを確立することを可能にするように構成され、前記自然言語生成モジュールは、言語コミュニケーションで不確実な、韻律学的にマークする特有の情報を介して、前記韻律を使用して、前記ユーザが前記特有の情報の不確実性状態に気付くように、前記言語コミュニケーション内で韻律学的にマークされた前記特有の情報を強調するように構成され、
前記自動音声処理モジュールは、前記ユーザのスピーチから、ピッチを含む韻律を分析して、前記CIマネージャモジュールおよび前記ユーザが、前記ユーザのスピーチ内の特有の情報に関する韻律の変化を検出することを介して、前記会話グラウンディングを確立することを可能にするように構成される、
請求項1に記載の装置。
【請求項11】
人間会話キューを理解および生成する方法であって、
音声ベースのデジタルアシスタント(VDA)のための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを利用して、1つまたは2つ以上のモジュールからの情報を処理し、人間のコミュニケーションの流れおよび交換において、1)ユーザと前記VDAとの間の会話フロアの取得、奪取、もしくは放棄、または2)前記会話フロアを取得しない会話グラウンディングの確立のうちの少なくとも1つのために、相づちの理解および/または生成を含めて、i)前記人間会話キューの理解と、ii)人間的な会話キューの生成との両方について判定することと、
前記規則ベースエンジンを利用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定し、前記スピーチの流れにおいて前記ユーザによって伝達される言語コミュニケーションのi)理解、ii)訂正、iii)承認、およびiv)質問のいずれかを伝えるための前記相づちを生成することとを含む方法。
【請求項12】
規則ベースエンジンを利用して、i)非語彙的な項目、ii)話し言葉の韻律、iii)前記ユーザのスピーチの流れにおける構文の文法的な完全性、iv)休止の継続時間、およびv)ユーザの発話の意味条件の程度のうちのいずれかの2つ以上の会話キューを分析および判定し、これらの判定および分析を行った後、単に固定の継続時間の休止を待ち、次いで前記ユーザが前記会話フロアを放棄したと想定するのとは対照的に、1)前記ユーザからの追加の情報を促すこと、2)前記ユーザが前記会話フロアを引き続き有することに対する前記VDAの同意および理解を伝えること、または3)前記VDAが前記会話フロアの奪取を求めていることを示すことのうちの少なくとも1つのために、発話を生成するかどうかを決定すること
をさらに含む、請求項11に記載の方法。
【請求項13】
前記ユーザのスピーチの韻律分析のために前記CIマネージャモジュール内の韻律分析器を利用することをさらに含み、前記CIマネージャモジュールは、自動音声処理モジュールから前記韻律分析のための入力データを受け取り、前記韻律分析器は、第1に、何らかのスピーチ活動が生じているかどうかを確認して検出し、次いで、前記韻律検出器を使用してユーザの発話に前記韻律分析を適用し、i)前記ユーザが実際に前記会話フロアを放棄したかどうか、またはii)前記ユーザが追加の情報を伝達するために、スピーチの流れに休止を挿入しているかどうかを判定し、前記追加の情報は、1)長いリストの情報の伝達を助けるために、休止しながら話すこと、2)前記ユーザが最初に第1の発話によって不完全に話し、それに続いて休止し、次いで第2の発話によって前記ユーザが前記スピーチ活動で伝達しようとしている考えを完了させることができるように、2つ以上のユーザ発話間に休止しながら話すこと、3)前記システムからの相づちを求めるために、休止しながら話すこと、ならびに4)これら3つの任意の組合せからなる群から選択される、
請求項11に記載の方法。
【請求項14】
前記CIマネージャモジュール内の会話グラウンディング検出器を利用して、ユーザと前記VDAとの間に相互理解が生じていないことを判定することをさらに含み、前記CIマネージャモジュールが、前記相互理解が生じていないと判定したとき、前記CIマネージャモジュール、自然言語生成モジュール、およびテキストトゥスピーチモジュールは協働して、前記相互理解を再確立するための1つまたは2つ以上の発話を発するように構成され、前記規則ベースエンジンは、前記ユーザと前記VDAとの間に前記相互理解が生じていないと決定するための規則を使用するように構成される、
請求項11に記載の方法。
【請求項15】
i)発話の途中で途切れた単語および文、ならびに/またはii)前記ユーザが話しており前記会話フロアを保持している間に発せられた非語彙的な音語の様々な途切れの非流暢性情報に関するスピーチ訂正のために、前記CIマネージャモジュール内の非流暢性検出器を利用することをさらに含み、前記CIマネージャモジュールは、1)自動音声処理モジュールとともに、前記ユーザからのそれ以外は流暢なスピーチ内のスピーチにおける前記非流暢性情報を検出する働きをし、次いで2)前記規則ベースエンジンとともに、前記非流暢性情報を記録し、i)前記非流暢性情報を使用してスピーチを訂正すること、もしくはii)会話的にグラウンディングして、システムの理解が正しいことを前記ユーザによって承認すること、またはiii)両方のために、規則を適用する働きをするように構成される、
請求項11に記載の方法。
【請求項16】
口頭言語理解モジュールを利用して、前記CIマネージャモジュールと協働して、入力データから、ユーザが言っている内容で伝達される前記ユーザの姿勢を示すために、ユーザのi)前記応答中の感情状態、ii)発話の音響トーン、iii)韻律、iv)何らかの談話マーカ、ならびにv)これらの任意の組合せを分析することに関する入力情報を提供することをさらに含み、前記CIマネージャモジュールは、前記口頭言語理解モジュールからの前記感情状態、前記発話の前記音響トーン、または前記談話マーカを考慮して判定し、次いで応答を発し、または状態を調整し、前記応答を発したとき、テキストトゥスピーチモジュールを使用して、1)前記会話フロアを放棄し、2)前記ユーザからの追加の情報を求め、または3)前記ユーザに対する前記システム応答を変化させるために対話状態を変化させるように構成される、
請求項11に記載の方法。
【請求項17】
前記CIマネージャモジュールへの入力および出力と双方に接続された対話マネージャモジュールを利用することであって、前記対話マネージャモジュールは、1つまたは2つ以上の関連する発話に対して、現在の話題を含む少なくとも対話状態を分析および追跡するように構成される、利用することと、
前記CIマネージャモジュールを利用して、i)音声のトーンまたはピッチ、ii)タイミング情報、iii)発話、iv)転換語、およびv)前記会話フロアの転換を伝える他の人間のキューを含む少なくともマイクロインタラクションに関する口頭言語理解モジュールからの情報を消化して、前記ユーザと前記VDAとの間の前記会話フロアの取得、奪取、または放棄のうちの少なくとも1つを行うかどうかに関してどのように進むかを判定することと
をさらに含む、請求項11に記載の方法。
【請求項18】
命令を含む非一時的コンピュータ可読媒体であって、計算機械によって実行されたとき、前記計算機械に、請求項11に記載の方法を実行させる、非一時的コンピュータ可読媒体。
【請求項19】
人間会話キューを理解および生成する装置であって、
音声ベースのデジタルアシスタント(VDA)のための会話知能に関する規則およびパラメータを使用するように構成された会話知能(CI)マネージャモジュールを備え、前記CIマネージャモジュールは、人間のコミュニケーションの流れおよび交換において、1)ユーザと前記VDAとの間の会話フロアの取得、奪取、または放棄、および2)前記会話フロアを取得しない会話グラウンディングの確立のうちの少なくとも1つのために、少なくとも相づちの理解および/または生成を含めて、i)前記人間会話キューの理解と、ii)人間的な会話キューの生成との両方について判定するために、1つまたは複数のモジュールから情報を前記パラメータとして受け取るための1つまたは複数の入力を有し、
前記CIマネージャモジュールは、前記規則および前記パラメータを使用する強化学習を使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定するように構成され、前記CIマネージャモジュールが前記相づちを生成すると決定したとき、前記CIマネージャモジュールは、前記ユーザのスピーチの流れにおいて前記ユーザによって伝達される言語コミュニケーションについてのi)理解、ii)さらなる情報の要求、iii)承認、およびiv)質問のいずれかを伝えるための前記相づちを発するためのコマンドを生成するように構成される、装置。
【請求項20】
前記CIマネージャモジュールは、強化学習を使用し、少なくとも前記ユーザの感情状態のパラメータを前記強化学習のための報酬関数として使用するように構成される、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組込み
本明細書は、米国特許法第119条に基づき、2019年5月9日に出願された「Method for understanding and generating human-like conversational cues」という名称の米国仮特許出願第62/845,604号の優先権を主張する。本明細書に記載するすべての公開物は、個々の各公開物が参照により組み込まれることが具体的かつ個別に示された場合と同じ範囲で、全体として参照により本明細書に組み込まれている。
【背景技術】
【0002】
いくつかの現在の音声ベースのデジタルアシスタント(VDA)は、会話モデルが非常に簡略化されすぎており、VDAと対話するときは本質的に非常にロボット的な印象を受けるという点で制限されている。人間は、複雑な会話を平滑に進めながら信頼および理解を確立するために、言葉で表せない会話キューを使用するが、現在、ほとんどのVDAは、対話自体の調整(やり取りを長くするために重要である)、コモングラウンドの確立のための会話の「グラウンディング」、調整された知識状態による信頼の維持、話者交代、コミュニケーションの誤りの訂正(および信頼の確立)、および転換の伝達のために使用される、「Uhmm」といった発話などのそのようなキューを無視する。VDAの現在のモデルが制限されているため、ユーザは自身の挙動を適合または制限しており、多くの場合は満足感の得られない経験が提供されている。Google、Amazon、Apple、およびMicrosoftを含む実体によって、オープンドメインVDAが市販されている。利用可能な市販システムのいくつかは、応答を待つために固定タイマなどのものによって制御された厳密にターンバイターンの相互作用を必要とするが、そのような固定タイマは、場合により必要な速度より遅い可能性があり、間違うこともあり、すなわち応答がいつ完了したか、または不完全であるかを不正確に決定することがある。システムの中には、適当な韻律キューを出力することができないものや、ユーザ入力で韻律キューを使用することができないものがある。いくつかのVDAは、情報がうまく交換されたことを承認するために視覚的な相互作用を必要とすることがあり、それによりVDAを使用することができる状況が制限される。いくつかの市販のVDAは、ほとんどテキスト上で動作する対話APIを有し、韻律情報を利用することはできない。現在、VDAのいくつかの一般的な要求は非常に簡単である(音楽の再生、アラームの管理、天気の確認、または電話番号の呼出し、「おもしろい質問」、ボイスメールの再生など)。
【発明の概要】
【課題を解決するための手段】
【0003】
機械、プロセス、およびシステムは、人間会話キューを理解および生成するための複数のモジュールを含む音声ベースのデジタルアシスタント(VDA)について論じる。会話知能(CI)マネージャモジュールが、VDAに対する会話知能に関する規則ベースエンジンを有する。CIマネージャモジュールは、人間のコミュニケーションの流れおよび交換において、ユーザとVDAとの間の会話フロアの取得、奪取、または放棄のうちの少なくとも1つのために、相づちを含めて、i)人間会話キューの理解と、ii)人間会話キューの生成との両方について判定するために、1つまたは2つ以上の他のモジュールから情報を受け取るための1つまたは2つ以上の入力を有する。CIマネージャモジュールは、規則ベースエンジンを使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定し、ユーザがまだ会話フロアを保持している時間フレーム中のスピーチの流れにおいて、ユーザによって伝達される言語コミュニケーションについてのi)理解、ii)訂正、iii)承認、およびiv)質問のいずれかを伝えるための相づちを生成するように構成される。たとえば、ユーザは、ユーザが会話フロアを手放していることを示すことなく、1つまたは複数の文を発することがあるが、システムは、単に「Uh Huh」という短い相づちを発することができ、それにより、ユーザから発せられる自然な会話の流れを遮ることなく、ユーザがまだ会話フロアを保持することを可能にし、ユーザからの追加の入力を促す。
【図面の簡単な説明】
【0004】
図1】ユーザとVDAとの間の対話の流れのための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態のブロック図である。
【0005】
図2A】ユーザとVDAとの間の対話の流れのための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態の流れ図である。
図2B】ユーザとVDAとの間の対話の流れのための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態の流れ図である。
図2C】ユーザとVDAとの間の対話の流れのための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態の流れ図である。
【0006】
図3】規則ベースエンジンを有するCIマネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態によるネットワーク環境内で互いに通信する複数の電子システムおよびデバイスのブロック図である。
【0007】
図4】本明細書に論じる本設計の一実施形態のための会話アシスタントの一部とすることができる1つまたは複数の計算デバイスの一実施形態のブロック図である。
【発明を実施するための形態】
【0008】
この設計は、様々な修正形態、均等物、および代替形態を対象とするが、本発明の特有の実施形態が例として図面に示されており、そのような実施形態について、次に詳細に説明する。この設計は、開示する特定の実施形態に限定されるものではなく、それどころかその意図は、特有の実施形態を使用してすべての修正形態、均等物、および代替形態を包含することであることを理解されたい。
【0009】
以下の説明では、本設計の徹底的な理解を提供するために、特有のデータ信号の例、名称付きの構成要素、メモリの数など、多数の特有の詳細について記載することがある。しかし、本設計は、これらの特有の詳細がなくても実施することができることが、当業者には明らかであろう。他の例では、本設計を不必要に曖昧にすることを避けるために、よく知られている構成要素または方法は詳細に説明されていないが、ブロック図に示されている。さらに、第1のメモリなどの特有の数値の参照を行うことがある。しかし、特有の数値の参照は、文字通りの順序として解釈されるべきではなく、第1のメモリは第2のメモリとは異なるものと解釈されたい。したがって、記載の特有の詳細は単なる例示であり得る。この開示は、特有の例を参照して発明の概念について説明する。しかし、その意図は、本開示に一貫する発明の概念のすべての修正形態、均等物、および代替形態を包含することである。しかし、これらの特有の詳細がなくても本手法を実施することができることが、当業者には明らかであろう。したがって、記載の特有の詳細は単なる例示であり、本開示の内容を限定することを意図したものではない。特有の詳細は、本設計から変更されることもあるが、それでもなお本設計の精神および範囲内であることが企図される。「結合される」という用語は、構成要素に直接接続されること、または1つもしくは複数の他の構成要素を介して間接的に構成要素に接続されることを意味すると定義される。一実施形態で実施される特徴は、論理的に可能な場合、別の実施形態でも実施することができる。
【0010】
概して、会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを使用して、人間のコミュニケーションの流れおよび交換において、ユーザとCIマネージャモジュールをホストするプラットホームとの間の会話フロアの取得、奪取、または放棄のうちの少なくとも1つのために、相づちを含めて、i)人間会話キューの理解と、ii)人間会話キューの生成との両方について判定するために、1つまたは複数のモジュールから情報を処理する機械、プロセス、およびシステムについて論じる。CIマネージャモジュールは、規則ベースエンジンを使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定し、ユーザがまだ会話フロアを保持している時間フレーム中のスピーチの流れにおいて、ユーザによって伝達される言語コミュニケーションについてのi)理解、ii)訂正、iii)承認、およびiv)質問のいずれかを伝えるための相づちを生成することができる。
【0011】
術語
【0012】
スピーチの非流暢性は、それ以外は(otherwise)流暢なスピーチの流れの中で生じる様々な途切れ、不規則性、繰返し、または非語彙的な音語のいずれかとすることができる。スピーチの非流暢性はまた、ユーザからの応答を求める質問または他の発言に返答および/または応答する準備ができていなかったユーザによる「um, I, I, um, I, well...」などの無意味の応答とすることができる。
【0013】
韻律は、個々の単音セグメント(母音および子音)ではないが、イントネーション、大きさ、トーン、強勢、タイミング、およびリズムなどの言語学的機能を含む音節およびより大きいスピーチ単位の特性であるそれらのスピーチ要素に関係することができる。
【0014】
会話フロアは、スピーチの流れにおける会話の話者交代、および現在この順番中に誰が話す権利を有するかを意味することができる。会話フロアは、話す順番がきた人に属すると言われている。
【0015】
相づちは、典型的に、会話中に同時に機能する2つの主チャネルのコミュニケーションで使用される短い発話とすることができる。すべての相づちは、肯定を伝える。主要チャネルは、会話フロアを有して話している実体のチャネルであり、したがって、話す順番中に1次的なスピーチの流れを生成する。2次的なコミュニケーションチャネルは、会話フロアを有する実体の1次的なスピーチの流れまたは聞き手の状態についての相づちを口頭で伝えている聞き手のチャネルであり、これは1次的なスピーチの流れに関係しても関係しなくてもよい。会話中の相づちは、1人の参加者が話しており、別の参加者が話者からのスピーチに素早い応答を差し挟むときに生じる可能性がある。相づち応答は、実質的な情報を伝達するのではなく、ユーザが言っている内容に対する聞き手の注意、理解もしくはその欠如、支持/同意、説明の必要、驚き、同情、または他の目的を表すためなど、社会的またはメタ会話の目的で使用することができる。相づちのいくつかの例には、「uh-huh」、「um」、「mm-hm」、「um-hm」、「okay」、「yeah」、「hmm」、および「right」、「really?」、「wow!」などの表現を含むことができる。
【0016】
非語彙的な相づちは、ほとんどまたはまったく指示的意味を有していないが、それでもなお話者の考えに対する聞き手の注意、理解、同意、驚き、怒りなどを言語化する発声音とすることができる。たとえば、英語では、「uh-huh」、「mm-hm」、「um-hm」、および「hmm」のような音が、非語彙的な相づちとしてこの役割を担う。
【0017】
会話グラウンディングは、会話で起こっていることについて同じページにいることに関する。会話グラウンディングは、現在の会話において前に発言または示唆されたよく知られている情報および項目の1群の「相互知識および相互信念」とすることができ、現在の会話は、話者が言っている内容に関して相互知識および相互信念を確立することによってグラウンディングされる。
【0018】
マイクロインタラクションは、特有の問題の解決または特有のタスクの実現を試みる、内容またはドメインに依存しない小さい集中的なユーザインタラクションとすることができる。
【0019】
応答は、ユーザの最後の発言に対する直接応答のようなもの、またはさらなる情報に対するシステム要求のような他のものを含むことができる。
【0020】
図1は、ユーザとVDAとの間の対話の流れのための会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態のブロック図を示す。会話関与マイクロサービスプラットホーム100のコンテナアーキテクチャ内に含まれて協働する複数のモジュールは、次のように機能および協働することができる。
【0021】
会話関与プラットホーム100に対する会話アシスタントは、テキストトゥスピーチモジュール112、対話管理モジュール108、CIマネージャモジュール106、自動音声処理モジュール102、自然言語生成モジュール110、口頭言語理解モジュール104、環境モジュール114、および他のモジュールという様々なモジュールを含むことができる。CIマネージャモジュール106は、ユーザとの間で情報を伝達し、適当なグラウンディングを確立し、ならびにユーザが情報の流れを制御することを許可する。CIマネージャモジュール106は、スピーチ活動検出、韻律分析、および対話管理モジュール108からの情報を使用して、いつ話すかを決定し、ならびに応答として何をするのが適当かを決定することができる。CIマネージャモジュール106は、テキストトゥスピーチモジュール112を使用して、韻律学的および会話的に適当な応答を生成することができ、そのような応答は、相づちまたは他のものとすることができる。CIマネージャモジュール106は、相づちを生成することが可能になり、ならびにユーザによって生成された相づちを識別および理解することが可能になるように構成される。
【0022】
会話知能(CI)マネージャモジュール
【0023】
CIマネージャモジュール106は、ハブアンドスポークアーキテクチャに接続して、線形のパイプラインアーキテクチャ内ではなくこのアーキテクチャ内の2つ以上のモジュールと情報を双方(入力および出力)に交換して調和するように構成される。各モジュールは、CIマネージャモジュール106を検出してそれと協働し、そのCIマイクロインタラクションを分析および判定するために、その特有の検出器または1組の検出器を有する。CIマネージャモジュール106は、i)音声のトーン、ii)タイミング、iii)発話、iv)転換語、およびv)会話フロアの転換を伝える他の人間的なキューを含む、これらの言語マイクロインタラクションに関する2つ以上のモジュールからの情報を消化して、ユーザとVDAとの間の会話フロアを取得、奪取、または放棄するかどうかに関してどのように進むかを判定するように構成される。一実施形態では、完全に接続されたアーキテクチャまたは別のモジュールがすべての情報を収集し、CIマネージャモジュール106と相互作用するため、他のアーキテクチャを実施することもできる。
【0024】
CIマネージャモジュール106は、会話フロアを奪取して取得してもよい。CIマネージャモジュール106は、ユーザが会話フロアを手放していないときに奪取し、たとえばシステムは、ユーザが話しているときに遮り、ユーザが話すことを少なくとも瞬間的に停止し、または誰の順番かはっきりしないマルチパーティ相互作用中、他の話者がフロアを手放したことがはっきりしないときでも、システムは話し始める。VDAが会話フロアを有することができ、ユーザは遮り(ただし、相づちなし)、またはフロア奪取を行い、次いでシステムは概してユーザに放棄する。またVDAが会話フロアを有することができ、ユーザは素早い相づちを発し、システムはそれを認識するが会話フロアを維持する。
【0025】
CIマネージャモジュール106は、少なくともハブアンドスポークアーキテクチャ内の会話フロアの処理のために、人間のコミュニケーションの流れおよび交換において、両方の話し言葉を個々に分析し、文を完成させ、会話キューを管理することができる。
【0026】
CIマネージャモジュール106は、VDAが相づちおよび非語彙的な音を使用および認識すること、会話フロア奪取または提供を認識してフロアを放棄すること、フロアを放棄してユーザおよびVDAが韻律を情報伝達チャネルとして使用することを許可することなど、流動的交代を実施することを可能にする。
【0027】
会話関与プラットホーム100のための会話アシスタントにおいて、VDAは、固定タイマおよび語彙的な単語を超えた会話キューを使用して、砕けた会話と統制された対話との両方に対して、会話フロアの処理および会話グラウンディングの確立または再確立に関係するものなどの会話態様を動的に適合させる。会話関与プラットホーム100のための会話アシスタントはまた、人間会話キューを理解するとともに、ユーザとの対話において人間的な会話キューを適当に生成することができる。
【0028】
CIマネージャモジュール106はまた、VDAが、人間が毎日使用する機構を使用して、日常会話を管理し、相互理解をうまく実現および保証することを可能にする。会話知能は、韻律の使用、相づちを含めて、人間の会話に通常存在する情報を使用して、会話フロアの奪取または保持などを行うことを含み、このVDAは、人間の会話の本当の複雑さを反映する新しい対話アーキテクチャ内でそれを利用する。CIマネージャモジュール106は、会話の多くの態様を制御する。フロアを奪取または保持することは、CIマネージャモジュール106によって制御される行動である。相づちは、CIマネージャモジュール106によって使用および理解されるコミュニケーション手段である。韻律は、人間がコミュニケーションのために使用する別の手段であり、CIマネージャモジュール106によって使用および理解される。CIマネージャモジュール106は、音声のトーン、タイミング、単語、および理解を含む複数のモジュールからの情報を消化し、ならびにどのように進むかを判定する。
【0029】
CIマネージャモジュール106は、少なくとも、VDAに対する会話知能に関する規則ベースエンジンを有する。CIマネージャモジュール106は、人間のコミュニケーションの流れおよび交換において、ユーザとVDAとの間の会話フロアの処理ならびに本明細書に論じる他の会話態様を少なくとも奪取および/または放棄するために、i)人間会話キューの理解と、ii)人間会話キューの生成との両方について判定するために、1組のモジュールから情報を受け取るための1つまたは2つ以上の入力を有する。CIマネージャモジュール106は、規則ベースエンジンを使用して、ユーザによって話されている語彙的な単語の話題または内容を判定するのではなく、ユーザとの間のスピーチの流れを分析および判定することに留意されたい。CIマネージャモジュール106は、規則ベースエンジンを使用して、たとえば非語彙的な音、話し言葉のピッチおよび/または韻律、休止、ならびに構文の文法的な完全性の分析を介して、ユーザとの間のスピーチの流れを分析および判定する。規則ベースエンジンは、この分析を使用して、たとえばユーザによって話された単語の伝達された意味の理解、承認、または質問などの反応を伝えるためにどの相づちを生成するべきかを判定し、これは、ユーザが依然として会話フロアを保持している間に行うことが重要である。したがって、ユーザは、文などの言語コミュニケーションを発することができ、VDAは、ユーザが依然として会話フロアを保持している間に、テキストトゥスピーチモジュール112を介して素早い相づちを生成することができ、したがって、この対話中に話すのはユーザの順番のままである。たとえば、ユーザは、「Find me a hotel in Rome by Trevi Fountain(ローマでトレビの泉のそばのホテルを探して)」と口頭で発言することができる。それらの単語の韻律およびピッチ、ならびに任意選択で最後の単語「Trevi Fountain(トレビの泉)」の後の休止に基づいて、CIマネージャモジュール106は、規則ベースエンジンを使用して、分析および判定を行う。たとえば、それらの単語の速いペースの韻律およびピッチ、ならびに最後の単語「Trevi Fountain(トレビの泉)」の後の時限期間によって、ユーザが自身の考えを完了させるために、この最初の発話後に追加の情報を伝達することを意図していることが示されているか? または、最後の単語「Trevi Fountain」の終わりのピッチの低下および/または文の最後の減速を伴うその文の突然の流れによって、ユーザが自身の現在の考えを完了させており、会話フロアを放棄してVDAからの完全な応答を待つことを意図していることが示されているか?
【0030】
この場合も、CIマネージャモジュール106は、規則ベースエンジンを使用して、「Uh-mm」または「Okay」などの相づちを発するべきかどうかについての分析および例示的な判定を行い、ユーザが依然として会話フロアを保持している間に、VDAがフロアの取得を試みることなく、この短い相づちを生成することによって、「Find me a hotel in Rome by Trevi Fountain(ローマでトレビの泉のそばのホテルを探して)」という最初の考えの背後にある単語および伝達された意味の両方をVDAのモジュールが理解したことを迅速に示す。ユーザからのスピーチの流れおよびその会話キューは、ユーザがこの最初の考えの後に追加の情報を引き続き伝達することを意図しており、したがって短い相づちによる肯定が適当であることを示す。
【0031】
別法として、CIマネージャモジュール106は、規則ベースエンジンを使用して、ユーザが完全な考えを形成する単一の発話をいつ発するかについての分析および例示的な判定を行い、次いでCIマネージャモジュール106は、ユーザとVDAとの間の進行中の対話において会話フロアを引き継ぐことが分かる。たとえば、VDAは次いで、対話マネージャモジュール108を参照し、完全な発話によってユーザに対して対話の現在の話題を繰り返すことができる。たとえば、VDAは、ユーザからのさらなる情報を迅速に促すことを試みて「uh-mm」といった単なる相づちを発するのではなく、現在の対話の話題および問題の会話グラウンディングを承認するために、「So then you want to make a reservation for a hotel room in Rome near walking distance within Trevi Fountain(では、ローマでトレビの泉から歩ける距離にあるホテルを予約したいのですか)?」と発言することができる。後に説明するように、CIマネージャモジュール106は、i)完全な文の応答と、ii)相づちによる応答との間の規則ベースエンジンによる選択を使用するとき、ユーザが最近伝達した内容の背後にある意味の理解に関する会話関与プラットホーム100の信用レベルに依存することができる。完全な文による応答は、ユーザが十分な情報(たとえば、ローマでトレビの泉近くのホテルの予約)を与えているとシステムが判定したときに行うことができ、CIマネージャモジュール106は、基準を満たすホテルの検索を指示し、ユーザが探している情報によって簡単に応答することに留意されたい。ユーザが探している情報の応答は、現在の対話の話題および問題に対する会話グラウンディングの承認を暗黙的に伝達する。
【0032】
CIマネージャモジュール106は、システム発話を分析および生成する。そのシステム発話を相づちとして肯定を示すことができ、または承認、訂正、および/もしくはユーザがフロアを維持することを可能にする相づちなど、代わりに他のものを示すこともできる。システムがユーザの理解を訂正しているとき、または何らかの方法でさらなる情報を求めているとき、システムはフロアを有するはずである。
【0033】
CIマネージャモジュール106は、規則ベースエンジンを使用して、会話キューの要因を分析および判定する。規則ベースエンジンは、i)非語彙的な項目、ii)話し言葉のピッチ、iii)話し言葉の韻律、iv)ユーザのスピーチの流れにおける構文の文法的な完全性、およびv)休止の継続時間、vi)ユーザの発話の意味条件の程度のうちの2つ以上の会話キューを分析および判定するための規則を有する。話し言葉のピッチは、韻律の一部とすることができることに留意されたい。また、ユーザの発話の意味条件の程度では、ユーザがレストランを探しており、次いで少し休止したとき、システムは、単に大量のレストランの選択肢を提供することがある。しかし、ユーザが高価な中華料理レストランを探しているとき、それはより意味的に制約されているため、システムはさらなる情報を有し、おそらく3つの選択肢によって応答するはずである。
【0034】
CIマネージャモジュールは、これらの判定および分析を行った後、単に固定の継続時間の休止を待ち、次いでユーザが会話フロアを放棄したと想定するのとは対照的に、1)ユーザからの追加の情報を促すこと、2)会話フロアを保持して引き続き話すようにユーザに伝えること、または3)VDAが会話フロアの奪取を求めていることを示すことのうちの少なくとも1つのために、ユーザが依然として会話フロアを保持している時間フレーム中に発話を生成するかどうかを決定することができる。したがって、CIマネージャモジュール106は、会話フロアを取得して、ユーザに照会し、もしくはユーザの要求に応答することができ、またはユーザが会話フロアを手放していない場合は相づちすることができる。ユーザが発話を終了したとき(大部分はシステムが韻律によって見分ける)、ユーザはフロアを手放そうとしていることを示すことに留意されたい。
【0035】
CIマネージャモジュール106は、語彙的な単語または固定タイマを超えた会話キューによる会話フロアの処理の奪取および/または放棄を仲介するVDAに対する会話知能に関する規則ベースエンジンを有する。CIマネージャモジュール106はまた、固定継続時間のタイマを使用してから、少なくともi)非語彙的な項目、ii)話し言葉の韻律、およびiii)フロアの処理に対するユーザのスピーチの流れにおける構文の文法的な完全性などの他の会話キューも見るようにユーザをさらに促すことを決定することができることに留意されたい。また、CIマネージャモジュール106は、対話管理モジュール108が対話における現在の話題の理解および追跡などを実行するように構成されるという義務ではなく、ユーザとの対話におけるスピーチの流れを監視および支援するように構成されることに留意されたい。
【0036】
対話管理モジュール108は、いくつかのインスタンスを作成させることができる。各対話管理モジュール108は、旅行、医療、金融などの特定の分野に関する訓練された1組のモデルとすることができ、話題ならびに1組のテンプレートの適当な質問および応答の識別に関して訓練されており、その特定の分野内の現在の対話からの様々な事実を格納するためのスロットを有する。しかし、CIマネージャモジュール106は、ユーザとVDAとの間の対話におけるスピーチの流れを監視および支援するように構成され、これは概して、人間の話題のすべての分野に当てはまる。
【0037】
会話関与プラットホーム100のための会話アシスタントにおける対話能力は、ユーザからの相づち、ユーザからの単語のピッチ/トーン、ユーザからの感情の理解などの多モード入力を利用して、これらの入力を後の対話で利用するほとんどの人間と人間の対話に対応するように、規則ベースエンジン内の対話規則を介して強化される。
【0038】
自動音声(audio)処理入出力モジュール
【0039】
CIマネージャモジュール106内の自動音声処理入出力モジュールは、自動音声処理モジュール102からの、i)スピーチ認識プロセスに対する状態データへの1つまたは2つ以上のインターフェース、ii)スピーチ認識プロセスの終了に対する状態データへのリンク、およびiii)両方の任意の組合せを有する。これらのリンクおよび/またはインターフェースは、自動音声処理モジュール102と情報を交換して、ユーザの音声入力を検出し、それをテキスト形式および/または波形形式に変換する。自動音声処理モジュール102は、1つまたは複数のマイクロフォンを介してユーザから入力されたスピーチを受け取る。リンクおよび/またはインターフェースは、自動音声処理モジュール102と情報を交換して、1つまたは複数のマイクロフォンからのユーザの音声入力を検出および把握する。
【0040】
CIマネージャモジュール106は、ユーザから発せられるスピーチの流れのためのタイマを有する。たとえば、口語のシステム出力のためにタイマを使用することができる(すなわち、システムは何かを言い、次いでX秒未満だけ応答を待つ)。
【0041】
CIマネージャモジュール106は、ユーザから発せられるスピーチの流れに関するタイミング情報の分析に対するマイクロインタラクションのための非流暢性検出器を有する。タイミング情報は、韻律分析のために使用することができる。タイミング情報はまた、ユーザが会話フロアを放棄しようとしていることを示す、ユーザからの完全な考えにおける最後の単語を受け取った後の0.75秒の休止などの継続時間を判定するために、タイマに対して使用することができる。タイミング情報はまた、固定の時間遅延判定のために使用することができる。同様に、韻律のタイミング情報は、ユーザからの完全な考えを伝達することができる。
【0042】
自動音声処理モジュール102は、スピーチ活動検出を含む自動スピーチ認識の構成要素を含み、そのような自動スピーチ認識の機能を実行する。CIマネージャモジュール106は、会話キューとしてのユーザからのスピーチのリズムおよびメロディに関する韻律分析に対するマイクロインタラクションのための韻律検出器を有する。CIマネージャモジュール106は、自動音声処理モジュール102から、韻律分析のための入力データを受け取る。韻律検出器はまた、第1に、自動音声処理モジュール102から、たとえばスピーチ活動を追跡するタイマを介して、何らかのスピーチ活動が生じているかどうかを確認して検出し、次いで、スピーチ分析論を使用する韻律検出器を使用して、ユーザの発話の「終わり」および/または「途中」で韻律分析を適用するように構成される。第1の確認は、韻律分析を適用するための処理の時間および量の削減を助ける。一実施形態では、韻律検出器は、スピーチ活動検出器とは別個である。
【0043】
CIマネージャモジュール106は、韻律検出器からの入力を使用して、i)ユーザが会話フロアを実際に放棄したかどうか、またはii)ユーザが追加の情報を伝達するために、スピーチの流れに休止を挿入しているかどうかを判定する。追加の情報は、1)長いリストの情報の伝達および理解を助けるために、休止しながら話すこと、2)ユーザが最初に第1の発話によって不完全に応答し、それに続いて休止し、次いで後の発話によってユーザがそのスピーチ活動で伝達しようとしている考えを完了させるように、2つ以上のユーザ発話間に休止しながら話すこと、ならびに3)これら2つの任意の組合せを含むことができることに留意されたい。
【0044】
口頭言語理解(SLU)入出力モジュール
【0045】
CIマネージャモジュール106内のSLU入出力モジュールは、SLUモジュール104からの、i)口頭言語プロセスの発話を含む単語の分析および理解のための状態データへの1つまたは2以上のインターフェース、ii)口頭言語プロセスに対する状態データへのリンク、およびiii)両方の任意の組合せを有する。これらのリンクおよび/またはインターフェースは、SLUモジュール104と情報を交換して、1つまたは2以上のマイクロフォンからのユーザの音声入力を検出および把握する。
【0046】
CIマネージャモジュール106は、口頭言語理解モジュール104と協働して、口頭言語理解モジュール104からの入力データから、ユーザが言っている内容に対するユーザの姿勢を示すために、i)応答におけるユーザの感情、ii)文字シーケンスからトークンシーケンスへの変換を介した発話のユーザの音響トーン、iii)任意の談話マーカ、ならびにiv)これら3つの任意の組合せを分析する際に、マイクロインタラクションのための入力情報を提供する。口頭言語理解モジュール104は、言語コミュニケーションの感情態様、言語コミュニケーションの音響態様、言語コミュニケーションの語彙的単語分析、および言語コミュニケーション内の談話マーカに関する入力を提供することができる。したがって、CIマネージャモジュール106は、口頭言語理解モジュール104からの感情応答、発話の音響トーン、および談話マーカを考慮して判定し、次いでテキストトゥスピーチモジュール112と協働する自然言語生成モジュール110を介して応答を発して、1)会話フロアを放棄し、2)ユーザが相づちを介して考えを表すことを促し、または会話フロアを取得して、少なくともユーザが何か他に伝達したいかどうかを尋ねるように構成される。
【0047】
話者が言っている内容に対するユーザの姿勢を示すためのいくつかの例示的な談話マーカは、「oh!」、「well now!」、「thennn...」、「you know」、「I mean...」、「so!!」、「because!」、および「but!!」とすることができる。
【0048】
一実施形態では、口頭言語理解入出力モジュールは、少なくとも口頭言語理解モジュール104からのユーザ状態分析を使用して、複数の異なる期間の相互作用におけるユーザとの会話を介してユーザに結び付けることができるメトリクスを抽出するように構成される。口頭言語理解入出力モジュールは、SenSayおよびJ-minerなどのユーザ感情状態モジュールからの状態データへの1つまたは複数のインターフェースおよび/またはリンクを有する。ユーザ感情状態モジュールは、最終適用範囲内で感情、情操、認知、精神的健康、およびコミュニケーションの質を含むユーザ状態を推定し、ユーザ状態分析入出力モジュールからのインターフェースは、ユーザ感情状態モジュールからの推定およびデータをプルまたはプッシュすることができる。
【0049】
自然言語生成入出力モジュール
【0050】
CIマネージャモジュール106内の自然言語生成(NLG)入出力モジュールは、i)所与の人間口頭言語に対して標準語および/または方言で言語コミュニケーション(すなわち、発話)を生成するための1つまたは2以上のインターフェースを有する。論じたように、CIマネージャモジュール106およびTTSモジュール112は、NLGモジュール110および所与の人間口頭言語モデルと協働して、所与の人間言語で用語およびスピーチを生成することができる。
【0051】
CIマネージャモジュール106は、i)音声のトーンまたはピッチ、ii)タイミング情報、iii)発話、iv)転換語、およびv)会話フロアの転換を伝える他の人間のキューを含むマイクロインタラクションに関する少なくとも口頭言語理解モジュール104からの情報を消化して、ユーザとVDAとの間の会話フロアを取得、奪取、または放棄するかどうかに関してどのように進むかを判定するように構成される。
【0052】
CIマネージャモジュール106は、ユーザとVDAとの間に相互理解が生じていないと判定したとき、マイクロインタラクションに対する会話グラウンディング検出器からの入力を有する。CIマネージャモジュール106は、対話マネージャモジュール108を参照して、追跡されている現在の話題が何であると対話マネージャモジュール108が考えているか、場合により何が直前の話題であったか、および話者によって伝達された考えがその話題において意味を成すかどうかを確認することができる。相互理解が生じていないとCIマネージャモジュール106が判定したとき、CIマネージャモジュール106、自然言語生成モジュール110、およびテキストトゥスピーチモジュール112は協働して、現在の会話に対する相互理解を再確立するための1つまたは2つ以上の質問を発するように構成される。規則ベースエンジンは、たとえば信用レベルに基づいて、ユーザとVDAとの間に相互理解が生じていないことを決定するための規則を有する。CIマネージャモジュール106は、タイマが設定継続時間を超えることによって、会話中の長い休止が生じたことが示されたとき、テキストトゥスピーチモジュール112に、「Did you understand(理解しましたか)?」、「Should I repeat something(何か繰り返しましょうか)?」など、相互理解を確立するための質問を発させ、ならびに自然言語生成モジュール110に、会話フロアを奪取するための要求を示すのではなく、テキストトゥスピーチモジュール112と協働して、ユーザからの追加の情報を促すための相づちを発するように命令させる。
【0053】
テキストトゥスピーチ(TTS)入出力モジュール
【0054】
CIマネージャモジュール106内のTTS入出力モジュールは、テキストトゥスピーチ構成要素からの、i)テキストトゥスピーチプロセスに対する状態データへの1つまたは2つ以上のインターフェース、ii)テキストトゥスピーチプロセスに対する状態データへのリンク、およびiii)両方の任意の組合せを有する。これらのリンクおよび/またはインターフェースは、i)TTSモジュール112と情報を交換して、テキスト形式または波形形式から音声出力を生成し、ならびにii)自然言語生成モジュール110とともに機能して、CIマネージャモジュール106からの音声応答および照会を生成する。TTSモジュール112は、1つまたは2つ以上のスピーカを使用して、ユーザが聞くための音声出力を生成する。
【0055】
一実施形態では、CIマネージャモジュール106およびテキストトゥスピーチモジュール112が協働して、テキストトゥスピーチ合成からの出力が非語彙的な事象を生じさせ、口語音素の出力タイミングを制御するべきであるときを判定する。テキストトゥスピーチモジュール112およびCIマネージャモジュール106は、音素の抽出に関して深層学習を使用して訓練されたニューラルネットワークモデルの使用を介して、音素を超えた会話関連情報(すなわち、パラ言語)を判定するように構成することができ、そのような音素は、クラスに対して継続時間が長く(たとえば、第90百分位数)、基本周波数(f0)追跡装置からのピッチ軌道を使用して、フレーズの最後の韻律に注釈を付ける。テキストトゥスピーチモジュール112は、各人間言語の非語彙的な音に対するモデルを参照して、非語彙的な音の生成を支援することができる。
【0056】
自然言語生成モジュール110は、テキストトゥスピーチモジュール112がユーザへのスピーチを生成するとき、ピッチを含む韻律を使用して、CIマネージャモジュール106およびユーザが、韻律を介して会話グラウンディングを確立することを可能にするように構成される。曖昧さまたは不確実性がある場合、VDAおよびユーザは、それを解決して、ユーザに向かう最善の経路に到達しなければならない。
【0057】
曖昧さまたは不確実性のあるいくつかの種類の状況が存在する。たとえば、(a)CIマネージャモジュール106が、単語(テキスト形式)を生成するための命令を発行するが、テキストトゥスピーチモジュール112が発する正しい発音が何であるか不明であり、(b)ユーザが、口頭言語理解モジュールに対して口頭で何かを要求したが、ユーザは、その要求を一意に指定するのに十分な情報を提供しておらず、その要求が曖昧であることに気付いておらず(たとえば、ユーザが、電気器具販売店を名前で尋ねたが、妥当な距離の範囲内にはその販売店のいくつかの支店が存在することに気付いていない)、(c)ユーザが、口頭言語理解モジュールに対して口頭で何かを要求し、それを一意に指定していなかったが、要求した何かが十分に一意に指定されていなかったことに気付いており、またはCIマネージャモジュール106によって気付かせることができる(たとえば、ユーザが、銀行を名前で尋ねており、いくつかの支店が存在することを知っているが、どの支店を求めているかを言うことに考えが至らなかった)。これらのシナリオの3つすべてにおいて、ユーザおよびCIマネージャモジュール106は、曖昧さをなくし、韻律を介して会話グラウンディングを確立する。同様に、自動音声処理モジュール102は、ユーザのスピーチからピッチを含む韻律を分析して、CIマネージャモジュール106およびユーザが、ユーザのスピーチ内の特有の情報で韻律変化を検出することを介して、会話グラウンディングを確立することを可能にするように構成される。どちらの場合も、不確実な状態を有する特有の情報で韻律の変化を聞いた実体は、i)不確実な状態を有する特有の情報を対象としてそれを使用し、またはii)不確実な状態を有する特有の情報に対する論理的代替物を対象としてそれを使用して、発声、文、または他の発話を生成することを介して、会話グラウンディングを確立する。
【0058】
曖昧さが存在するとき、CIマネージャモジュール106および自然言語生成モジュール110は協働して、スピーチを介して可能性が最も高い解決策を提示し、他の可能な解決策をディスプレイ画面に表示する必要はない。自然言語生成モジュール110は、自然言語生成モジュール110が不確実な情報を韻律学的にマークすることができるように、主音声チャネルに対するサイドチャネルとして韻律を使用するように構成される。自然言語生成モジュール110は、言語コミュニケーションで不確実な、韻律学的にマークする特有の情報を介して、韻律を使用して、ユーザが特有の情報の不確実性状態に気付くように、言語コミュニケーション内で韻律学的にマークされた特有の情報を強調する。テキストトゥスピーチモジュール112は、言語コミュニケーションで不確実な特有の情報で韻律を変化させるユーザへのスピーチを生成する。さらに、ユーザが韻律学的にマークされた不確実な情報を聞き、韻律学的にマークされた不確実な情報がより大きい言語コミュニケーション内で暗黙的に問題になっていることを理解するために、追加の視覚チャネルは必要とされない。ユーザが韻律学的にマークされた不確実な情報を訂正および/または変更したいと考えたとき、ユーザおよびCIマネージャモジュール106は、韻律サイドチャネルのために問題になっている不確実な情報が何であるかを暗黙的に理解する。
【0059】
たとえば、ユーザが「what hours is Wells Fargo open(Wells Fargoの営業時間は)?」と言ったと仮定する。素早い検索後、CIマネージャモジュール106は、2つの近隣のWells Fargo支店が存在すると判定する。1つのWells Fargo支店は5th Avenueにあり、もう1つのWells Fargo支店はMain Streetにある。しかし、補足情報がまた、5th AvenueのWells Fargo支店の方が大きく、より頻繁に要求される支店であることを伝達する。自然言語生成モジュール110、CIマネージャモジュール106、およびテキストトゥスピーチモジュール112は協働して、たとえば「The Wells Fargo on 5th Avenue is open from 9 until 6(5th AvenueのWells Fargoは9時から6時まで営業しています)」と言い、その際「5th Avenue」でより遅いペースの韻律にし、「Avenue」の後のピッチを落とし、5th AvenueのWells Fargoが可能性のある唯一のWells Fargo支店ではないことを、ユーザに会話的に伝達する。概して、ユーザは、2つの可能な方法のうちの1つに進むことができる。ユーザは概して、韻律学的に強調されたこの情報を受け入れることができる。たとえば、「yes-5th Avenue(そう、5th Avenue)」と言う。別法として、ユーザは、VDAからの言語コミュニケーションの韻律学的に強調された区間に対して、不確実な状態を有する特有の情報に対する論理的代替物によって応答することができる。たとえば、ユーザは、「Sorry, I meant the one on Main Street(ごめん、Main Streetの方のつもりだった)」、または「How about the branch on Main Street(Main Streetの支店はどう)?」、または「Is there a branch that's open later(もっと遅くまで営業している支店はない)?」と応答することもできる。不確実な状態を有する特有の情報で韻律の変化を聞いた実体は、i)不確実な状態を有する特有の情報を対象としてそれを使用し、またはii)不確実な状態を有する特有の情報に対する論理的代替物を対象としてそれを使用して、発声、文、または他の発話を生成することを介して、会話グラウンディングを確立する。
【0060】
したがって、VDAは、特有の情報での韻律の変化を理解して会話グラウンディングを確立し、ならびに特有の情報での韻律の変化を使用して会話グラウンディングを確立することができる。
【0061】
対話管理モジュール
【0062】
対話管理モジュール108は、他のモジュールからユーザに結び付けられたメトリクスを受け取り、口頭言語理解入出力モジュール104からの現在の話題、および現在の話題に関するユーザの感情を理解し、次いでこれらの異なるメトリクスを考慮して、対話規則に基づいて対話管理モジュール108からユーザへの対話を適合させる。会話アシスタントの会話内容は、宣言的なドメイン固有の対話仕様言語で指定することができ、それによりテキスト形式言語でのエンドユーザに対する会話内容の急速かつ表現的なコンテキストアウェアモデリングが可能になる。
【0063】
対話管理モジュール108は、対話仕様言語によって体系化された(またはこの場合も別法として、決定木および/または訓練された人工知能モデルによって実施された)規則を使用して、ユーザによって開始される話題の変化がいつ生じるか、ならびに会話アシスタントが話題の変化をいつ試すべきかを検出し、次いで会話コンテキストに基づいて、適合されたユーザ状態アウェア応答を生成する。対話仕様言語における対話のワークフローにより、テキスト形式言語でのエンドユーザに対する会話内容の表現的なコンテキストアウェアモデリングが可能になる。一実施形態では、対話仕様言語によって体系化された(またはこの場合も別法として、決定木および/もしくは訓練された人工知能モデルによって実施された)規則は、決定木またはMLまたは強化学習のうちの「いずれか」および/または「3つすべて」からの結果を案内する対話ガイドライン、対話指示、対話規定、対話要因などであることに留意されたい。
【0064】
対話マネージャモジュール108は、CIマネージャモジュール106への入力および出力と双方に接続される。対話マネージャモジュール108は、発話および応答周期に対して、少なくとも現在の話題を含む対話状態を分析および追跡するように構成される。
【0065】
話題理解入出力モジュールは、話題IDを検出および追跡して、自由形式会話(ユーザとの構造化されたメニューツリータイプの対話とは対照的)で議論される1組の話題を正確に識別する。話題理解入出力モジュールは、話題IDを記憶することができる。階層的分類器およびコクラスタリングパイプラインは、話題を識別するために、コクラスタリングおよび階層的分類器を含む深層学習(たとえば、CNN)技術を利用する。
【0066】
環境入出力モジュール
【0067】
いくつかの状況で、音声ベースのデジタルアシスタントは、CIマネージャモジュール106に通信可能に結合された1つまたは複数の環境モジュール114を有しており、そのような環境モジュール114は、ユーザが相互作用しているワールドコンテキストに関する情報を提供するように構成される。たとえば、ユーザが運転中であり、かつVDAが車に一体化されており、または現在、車との無線通信リンクを有しているとき、VDAの環境モジュールは、運転環境またはユーザの運転に関する情報を車のセンサから得ることができる。別の例では、VDAの環境モジュール114は、背景ノイズを待ち受け、ユーザの周辺の活動またはその活動の変化に関する情報を集めることができる。CIマネージャモジュール106は、その情報を使用して、ユーザが現在気を取られており、VDAからのスピーチを処理する能力が低下していると判定することを支援することができる。規則ベースエンジンは、運転者が運転に関する要求にさらなる注意を払わなければならないことに乗客が気付いたとき、車内の乗客がスピーチを停止し、または多くとも簡潔なコミュニケーションを伝達したときに観察されるものに類似した規則を組み込むことができる。ユーザが気を取られていることをVDAのCIマネージャモジュール106が見分けることが可能になる別の方法は、モジュールからの非流暢性入力を分析し、ユーザのスピーチ中の休止、およびユーザが文を言い終えることなくスピーチを急に停止した回数を分析することによる。
【0068】
規則が分析を同様に考慮することができる2つの例示的なシナリオがある。(1)ユーザが会話フロアを有しており、スピーチを停止し、VDAは、i)外的要因(たとえば、センサからの入力)、および/またはii)ユーザの挙動に基づいて、記載の規則に従って、ユーザが気を取られている可能性が高いと考えることができ、(2)VDAが会話フロアを有しており、VDAは、外的要因に基づいて、ユーザがこの時点で気を取られている可能性が高いと結論付けることができる。
【0069】
VDAのCIマネージャモジュール106が会話フロアを有しており、ユーザが気を取られているかどうかに関して不確実であるとき、CIマネージャモジュール106は、1組の規則を使用して、ユーザの素早い相づちが適当であるはずのときに一度休止することによって、その確実性の増大を試みる。ユーザが相づちする(または、「hang on(ちょっと待って)」のようなことを言う)かどうか、およびユーザが相づちするのにどれだけの時間を要するかは、ユーザがこの時点で気を取られているか否かの証拠を提供することができ、したがってユーザの状態に関するCIマネージャモジュール106の確実性を増大させることができる。
【0070】
VDAのCIマネージャモジュール106が、ユーザが気を取られている可能性があると判定したとき、CIマネージャモジュール106は、ユーザの注意レベルに対するその挙動を調整するための行動をとる。(a)VDAが会話フロアを有しているとき、そのような行動は、テキストトゥスピーチモジュールからの出力スピーチの速度を遅くすること、より長い期間にわたって休止すること、ユーザからの相づちをより長く待つこと、またはユーザに負担をかけすぎることを避けるために、ある程度の期間にわたってスピーチを停止することを含むことができる。CIマネージャモジュール106が、ユーザが気を取られていると考えたことから、スピーチを停止するための命令を発行したとき、CIマネージャモジュール106は、ユーザに負担をかけすぎることを避けるために停止したこと、およびシステムの何らかのエラーまたは障害のためにVDAが停止していないことを伝達することができる。CIマネージャモジュール106は、「should I wait(待ちましょうか)?」、「should I keep going(続けましょうか)?」、「let me know when you're ready(準備ができたら教えてください)」、「I'll wait(お待ちします)」のようなこと言うための命令を発行することができる。VDAがスピーチを停止したとき、それは意図的な停止であり、何らかのシステムエラーではないことを、場合によりTTSモジュールを使用して、単に急に停止するのではなくより人間的なスピーチ停止方法を生成することによって、ユーザに伝達すると有用である。一実施形態では、VDAは、他の方法を使用して、ユーザに負担をかけすぎることを避けるために停止したことを伝達することができる(実際には単語を話さない)。また、ユーザが会話フロアを有しているとき、VDAは、ユーザが継続することを促す前に、ユーザからの入力をより長く待つという例示的な行動をとることができる。
【0071】
CIマネージャモジュール106は、VDAに対するユーザの熟知度に依存した規則を使用する。ユーザがVDAを初めて体験するとき、VDAは、「take your time(ゆっくりでいいですよ)」(ユーザがフロアを有しているとき)、または「I'll wait(お待ちします)」(VDAがフロアを有しているとき)のような明示的なことを言うことができ、これらはどちらも、ユーザが気を取られていることをVDAが感知できることをユーザに教え、VDAが何らかのシステム障害を受けているとユーザが考えないようにするためのものである。ユーザがVDAをより熟知し、その能力に驚かなくなったはずであるとき、VDAは、「should I wait(待ちましょうか)」のようなこと言うのではなく、黙っていることができる。VDAは、ユーザが他のことに注意を払っているときにどれだけ頻繁に休止したいと考えるかを、時間とともに学習することができ、これは、ユーザが同時のタスクを処理する能力が変わることがあるため、カスタマイゼーションの1つである。
【0072】
VDAは、ユーザの全体的な仕事量を低減させるために、最後の数分の対話を記憶し、休止したときのその内容を覚えておく。CIマネージャモジュール106は、最近の対話の要約を生成し、したがってVDAとの相互作用が再開したとき、CIマネージャモジュール106は最近の対話の要約を送達する。
【0073】
ユーザの全体的な仕事量は、ユーザが前に言った内容から何かを繰り返すことを予期しないことによって低減される。
【0074】
追加の詳細を有する規則ベースエンジン
【0075】
規則ベースエンジン内へ符号化された会話知能(CI)は、VDAが、人間が毎日使用する機構を使用して、日常会話を管理し、相互理解をうまく実現および保証することを可能にする。CIマネージャモジュール106は、韻律の使用および相づちを含めて、人間の会話ですでに利用可能な情報を探して、会話フロアの奪取または保持などを行い、人間の会話の本当の複雑さを反映する。
【0076】
CIマネージャモジュール106は、会話知能に関する規則ベースエンジンを使用して、複雑な会話を平滑に進めながら信頼を確立するために、i)「Uhmm」という発話などの非語彙的な発声キューおよびii)「Right!!」または「Right??」などのピッチなど、言葉で表せない会話キューを理解および生成し、そのような会話キューは、対話自体の調整、iii)会話の「グラウンディング」およびコモングラウンドの確立、iv)会話フロアを保持する話者交代、v)ユーザが言い間違いを訂正することを可能にするコミュニケーションの誤りの訂正(および信頼の確立)、ならびに転換の伝達のために使用される。規則ベースエンジンは、各マイクロインタラクションに対して、言語学的に動機付けされた規則を実施するように構成される。
【0077】
CIマネージャモジュール106は、会話キューを抽出するために、SenSay(STARスピーチ分析プラットホーム)が感情検出に使用するのと同じ、言葉で表せない情報を利用する会話知能に関する規則ベースエンジンを使用する。一実施形態では、この設計は、VDA-ユーザ経験に大きな影響を与えるいくつかの頻繁な会話の現象のみをモデリングすることを標的とする。
【0078】
CIマネージャモジュール106は、会話フロアを保有するユーザの順番中に、i)ユーザから会話フロアをあからさまに奪取しようとすることなく、ユーザが現在伝達している内容についての理解のA)肯定、B)誤解、および/またはC)質問のいずれかを示すために保持する会話フロア、ならびにii)議論されている現在の話題についての相互理解を確立するための会話グラウンディングなどの対話区域において、1)単語表現および/または2)非語彙的な発話の短く素早い相づちなどの発声機構を使用することができる。
【0079】
CIマネージャモジュール106は、人間会話キューを理解および生成するために、VDAに対する会話知能に関する規則ベースエンジンを有する。会話知能は、VDAが非常に進化した会話機構を使用することを可能にする。会話知能は、VDAが、相互作用の本当の複雑さを反映する単なる単語を超えた新しい情報である言語知識を使用することを可能にする。CIマネージャモジュール106は、VDAが、i)流動的交代を使用すること、ii)相づち言語を認識すること、iii)相づちを待つこと、iv)フロア奪取を認識してフロアを放棄すること、およびv)ユーザが進行中にリスト提示を変更することを許可することを可能にする。
【0080】
規則ベースエンジンは、ユーザのスピーチの流れにおけるi)非語彙的な単語、ii)話し言葉のピッチ、iii)話し言葉の韻律、およびiv)構文の文法的な完全性のうちの2つ以上の会話キューにおいて、iii)単に固定の継続時間の休止を待ち、次いでユーザが会話フロアを放棄したと想定するのとは対照的に、1)ユーザからの追加の情報を促すこと、2)会話フロアを保持して引き続き話すようにユーザに伝えること、または3)VDAが会話フロアの奪取を求めていることを示すことのうちの少なくとも1つのために、ユーザが依然として会話フロアを保持している時間フレーム中に発話を生成するかどうかを分析および判定するための規則を有する。
【0081】
CIマネージャモジュール106は、次のように、規則ベースエンジンと協働して、会話フロア保持のためのマイクロインタラクションに対する(2つ以上の)規則を適用する。会話知能現象に対する各マイクロインタラクションは、複数の条件に対する複数の対話経路を有することができる。会話知能現象を含む言語学的に動機付けされたマイクロインタラクションに対して、いくつかの例示的な擬似コードが提示される。
【0082】
マイクロインタラクション:ユーザが依然として会話フロアを保持しているときに相づちを発するとき
【0083】
規則ベースエンジンは、CIマネージャモジュール106に、ユーザが依然として会話フロアを保持しているときに相づちを発するときに適当に反応させるための規則を有することができる。
【0084】
CIマネージャモジュール106は、ユーザとVDAとの間の会話フロアを取得、奪取、または放棄するためのユーザのスピーチの流れの転換を伝えるユーザのi)音声のトーン、ii)タイミング、iii)発話、iv)転換語、およびv)他の人間的なキューを評価するための入力を受け取る。
【0085】
転換を伝える韻律、ピッチ、転換語がないこと、および他の人間的なキューがないことに基づいて、ユーザが会話フロアを保持することを意図しているが1つまたは複数の完全な考えを伝達したと判定する。テキストトゥスピーチモジュール112は、ユーザが依然として会話フロアを保持している時間フレーム中のスピーチの流れにおいてユーザによって伝達された言語コミュニケーションについてのi)理解、ii)訂正、iii)承認、およびiv)質問のうちのいずれかを伝えるための相づちを告げる。
【0086】
マイクロインタラクション:ユーザが発話/考えを完了していない
【0087】
規則ベースエンジンは、ユーザが発話/考えを完了していないとき、CIマネージャモジュール106に、以下を介して、ユーザが休止したときに適当に反応させるための規則を有することができる。
【0088】
i)トリガ:スピーチ活動検出が、ユーザが話を停止したことを示すか?
【0089】
ii)文または他の言語学的考えが構文的に完了したか、それとも不完全か?
【0090】
iii)ユーザがパラ言語学的に会話フロアを保持しているかどうかを判定する。たとえば、韻律(たとえば、韻律終了ポインタが発せられたか?またはそのようなピッチがあったか?)を介して、ユーザがフロア保持しているかどうかを確認する。
【0091】
iv)加えて、ユーザが会話フロアを語彙的にまたは非語彙的な事象によって保持しているかどうか(たとえば、息を吸い込むこと、語彙的または非語彙的な単位が発せられたか? 歯吸着音がしたか?)を判定する。
【0092】
v)これらのいずれも検出されず、固定の継続時間がスピーチなく生じたとき、ユーザが会話フロアを手放したと判定する。
【0093】
規則ベースエンジンは、ユーザが休止したときでも発話を完了していないときに適当に反応することについて分析および判定するための規則を有する。
【0094】
可能な行動:
【0095】
ユーザがフロアを韻律学的に保持している場合、
● いずれの意味内容および/またはユーザ発話も不完全でない場合、待ち時間を長い固定設定に設定し、次いで会話フロアを引き継ぐ。
● そうでない場合、待ち時間を短い固定設定に設定し、相づちを発する。
【0096】
並行して、ユーザ発話が発言、質問、または不完全な発話であったかどうかを判定する。次に、設定した待ち時間を過ぎても依然として待っている場合、i)発言(たとえば、「okay」)、またはii)不完全な発話(たとえば「mm-hmm」)、またはiii)ピッチのある質問(たとえば、質問「Am I right(正しいですね)?」、相づち「Of course(もちろん)」)に適当な相づちを発し、これらはすべて、ユーザからの追加の情報を促す。
【0097】
並行して、ユーザがフロアを語彙的にまたは非語彙的な単位によって保持しているかを判定する。その場合、待ち時間を長い固定の設定に設定する。タイマ後も依然として待っているとき、「mm-hmm」などの適当な相づちを発する。
【0098】
次に、VDAによって発せられた最初の適当な相づちに応答して、ユーザがフロアを手放したかどうかを判定し、手放されたと判定したとき、次に進んでVDAが会話フロアを引き継ぎ、VDAの順番中に、ユーザの最後の完全な考えの話題に関する何らかの構文的に完全な内容を発する。
【0099】
マイクロインタラクション:会話グラウンディングの例示的な事例-ユーザの自己訂正
【0100】
規則ベースエンジンは、CIマネージャモジュール106に会話グラウンディングを確立させるための規則を有することができる。例示的なユーザの自己訂正は、利用される原理を示す。自己訂正は、言い間違いまたは発音の誤りを含むことができる。たとえば、ユーザは、言おうとしていた内容について考えを変え、または概念を広げる。
【0101】
規則ベースエンジンは、CIマネージャモジュール106に、i)条件が存在することを検出すること、ii)ユーザがユーザの自己訂正を発したときにユーザが訂正を意図する内容に関する信用レベルを判定すること、およびiii)相互理解を確立するための行動をとることによって、ユーザの自己訂正を識別させるための規則を有することができる。ユーザが訂正を意図する内容に関する信用レベルが、ユーザによって設定された閾値量を下回るとき、規則は、会話グラウンディングを再確立するためのとるべき特定の行動を要求する。規則は、たとえば追跡している話題に関する1つまたは複数の質問および/または発話など、VDAとユーザとの間のコミュニケーションの最後の交換の部分と一体化された行動をとることによって、ユーザとVDAとの間に相互理解を形成するための会話グラウンディングを確立する。
【0102】
ユーザの自己訂正の一例として、次を挙げることができる。ユーザは会話しており、「The first step, I mean the second, should be(1つ目のステップ、いやその2つ目は)...」と発言する。
【0103】
追跡されている話題は、対話マネージャモジュール108によって追跡される。対話マネージャモジュール108は、CIマネージャモジュール106と協働して、相互理解条件が存在しないとき、たとえばユーザの自己訂正を識別する。CIマネージャモジュール106は、対話マネージャモジュール108および他のモジュールを参照して、ユーザが訂正を意図する内容についての信用レベルを判定することができる。したがって、CIマネージャモジュール106と協働する対話マネージャモジュール108は、相互理解条件が存在しないこと、たとえばユーザの自己訂正を識別/検出することができ、次いでCIマネージャモジュール106は、ユーザが訂正を意図する内容についての信用レベルを判定することができる。CIマネージャモジュール106は、ユーザが訂正を意図する内容についての信用レベルを判定して、i)相づちもしくは他の素早い単語を発して実際の要点を補強するため、またはii)会話フロアを引き継いで相互理解を確立するために、どの行動をとるかを選択することができる。
【0104】
したがって、CIマネージャモジュール106は、会話グラウンディングを確立するために、2つの可能な行動のうちの1つをとる。CIマネージャモジュール106は、理解の信用レベルに応じて、相づち、訂正、質問、または発言などの可能な行動をもたらすための命令を発行する。
【0105】
VDAは、i)質問するトーンの相づちを発することができ、ii)本当に言おうとしていた単語を再確立するためにいくつかの単語を発することができ、またはiii)会話フロアを引き継ぎ、質問する音声で、CIマネージャモジュール106は何が現在の話題であると考えるかを発言することができる。VDAは、訂正する内容をユーザが積極的に発言することを促すために、i)「Hmmm?」などの質問するトーンの相づちを発することができる。VDAは代わりに、ii)「Okay, the second step(では、2つ目のステップ)」などのいくつかの単語を発することもできる。別の例では、VDAは、会話フロアを引き継ぐことができ、この場合、「Sorry, did you mean a first step, a second step, or something else(すみません、1つ目のステップを意味しましたか、それとも2つ目のステップまたはそれ以外ですか)?」と、本当はどの単語を意味したかを尋ねることができる。
【0106】
この場合も、ユーザの自己訂正の例示的な事例では、CIマネージャモジュール106が、ユーザが発話を自己訂正したことを検出したとき、CIマネージャモジュール106は、ユーザが訂正を意図する内容についての信用レベルを判定する。対話マネージャモジュール108および他のモジュールを参照した後、CIマネージャモジュール106は、ユーザが訂正を意図する内容についての信用レベルを判定する。訂正がVDAによって理解されたことに関して高い信用レベル(たとえば、90%超)が存在するとき、CIマネージャモジュール106は、素早い相づちを発し、または「Yes, the second step(はい、2つ目のステップ)」という現在のコミュニケーション交換のうちの素早い承認単語/語句を組み込む部分を発する。
【0107】
しかし、訂正がVDAによって理解されたことに関して低い信用レベル(たとえば、40%超)が存在するとき、CIマネージャモジュール106は、会話フロアを引き継ぐためにいくつかの単語または音を発することができる。CIマネージャモジュール106および自然言語生成モジュール110は、1)CIマネージャモジュールの現在の理解の内容/ユーザの意味する内容についてのCIマネージャモジュールの理解を承認すること、および2)ユーザが発言を意図する内容を伝達するための文を生成する。
【0108】
VDAが応答を発行した後、VDAは次の1組の行動をとる。CIマネージャモジュール106は、ユーザからの応答を待つ。ユーザが積極的承認で返答したとき(訂正が完了したという明示的なグラウンディングが得られた)、CIマネージャモジュール106は、承認する相づちで応答する。ユーザが新しい情報で会話を継続するとき(訂正が完了したという暗示的なグラウンディング)、CIマネージャモジュール106は、その情報を対話マネージャモジュール108へ渡す。追加の訂正が必要とされるとき、CIマネージャモジュール106は、訂正を必要とし得る前の情報へ戻る。
【0109】
加えて、CIマネージャモジュール106は、規則ベースエンジンを使用して、ユーザが自身の言い間違いまたは発音の誤りを訂正するインスタンスを分析および判定し、次いでユーザが言語コミュニケーションによって伝達しようとしている内容を解釈するとき、ユーザの訂正を補償する。VDAは、ユーザがどのように訂正するかおよびどの機構が相互理解を確立するのに最善に作用するかのパターンを記憶することができる。CIマネージャモジュール106はまた、システムの内部表現/理解を適宜更新する。
【0110】
CIマネージャモジュール106は、「not X,Y」(Yに強勢、場合によりXにも強勢)などのパターンを認識する手書きの文法または統計に基づく規則セットを使用することができる。
【0111】
マイクロインタラクション:VDAによる発音承認
【0112】
規則ベースエンジンは、VDAによる発音の承認に関して分析および判定するための規則を有する。
【0113】
トリガ:TTSモジュール112が、CIマネージャモジュール106に対して、発するべき単語の正しい発音が不明であることを伝える。
【0114】
行動/規則:
【0115】
TTSモジュール112に対して、質問するイントネーション、遅いスピーチ速度、およびそれに続く休止によって、その単語の発声を生じ、次いで2つの方法のうちの1つを継続するように命令する。
【0116】
ユーザが発音を訂正した場合、次のステップを行う。
最後の発音を繰り返すことを含めて、肯定を生じ、
TTSモジュール112による将来の使用のために発音を記憶する。
【0117】
出力を継続する。ユーザが単に発音を「Yes」と承認したとき、または内容を発話することを継続し、正しい発音を試みないとき、TTSモジュール112によって、その発音に対してより高い信用を更新および記憶する。
【0118】
マイクロインタラクションA1:長いリストの項目および/または複雑なリストの項目
【0119】
規則ベースエンジンは、CIマネージャモジュール106に、VDAが長いリストの項目および/または複雑な情報をユーザへどのように通信するべきかを判定させるための規則を有することができる。CIマネージャモジュール106は、自然言語生成モジュール110およびテキストトゥスピーチモジュール112と入力および出力を交換して、ユーザとVDAとの間の人間のコミュニケーションの流れおよび交換のための韻律会話キューを利用するVDAによるユーザとの人間会話キューを生成する。
【0120】
VDAは、長いリストの情報および/または複雑な情報を、この情報を個々のチャンクに分けることによって伝達することができ、これらのチャンクは、個々の各チャンクの十分な理解を可能にするために故意の休止によって分離される。意図的に挿入された休止は、伝達されている長いリストまたは複雑な1組の情報を伝達するとき、人間の理解を助けるのに役立つ。
【0121】
CIマネージャモジュール106が伝達すべき長いリストの項目/複雑な情報を有する場合、
【0122】
A)短く簡単な前置きを出力する(たとえば、「sure(承知しました)」、「sure, there are a few of them(承知しました、いくつかあります)」)
【0123】
A1)リストの第2の項目から最後の項目まで、
【0124】
i)談話マーカ付きの前置き(たとえば、「there's」、「then I've got」)
【0125】
ii)TTSを使用して各項目の終わりにピッチの上昇/平衡状態を生成する。
【0126】
iii)各項目後に指定量の時間まで休止するようにタイマを設定する。
【0127】
第1のリスト項目後の休止は、ユーザからの相づちを引き出し、相づちが可能であることをユーザに示すために、より長くすることができる。
【0128】
iv)タイマ限度内にユーザが相づちした場合、
【0129】
ユーザが相づちするのにどれだけ要したかを追跡し、長い場合、将来の項目に対するテキストトゥスピーチモジュール112からの情報出力速度を減少させる。
【0130】
待つのを停止し、次のリスト項目を継続する。
【0131】
v)ユーザが相づち以外のことを話した場合、どのカテゴリのスピーチかを判定する。
【0132】
フロア保持者である場合、
【0133】
ユーザからのさらなる入力のために休止する。
【0134】
リストナビゲーションコマンド(たとえば、「repeat(もう一度言って)」、「what was the first one(1つ目は何だった)?」、またはフィルタリング要求(たとえば「I need it to be less than $200(200ドル未満にして)」))があった場合、
【0135】
項目を繰り返し、リストをナビゲートし、またはフィルタリング/制約を追加する。
【0136】
そうでない場合、完全な発話を行う。
【0137】
対話マネージャに渡す。
【0138】
vi)ユーザが応答しない場合、
【0139】
タイマが切れるまで待ち、次のリスト項目を継続する。
【0140】
B)最後の項目を「and」で前置きし、最後の項目の終わりに下降するピッチを生成する。
【0141】
マイクロインタラクションA2:長いリストの項目および/または複雑なリストの項目
【0142】
次に、類似の1組の規則を使用して、規則ベースエンジンは、ユーザが進行中にリスト提示を変更することを許可する。検出器を有するCIマネージャモジュール106は、長いリストの情報がユーザによって伝達されようとしていることを聞くように待ち受け、i)長いリストの情報を聞いている人に、チャンクで発言および/または消化されるべきそのリスト内の各項目を処理するのに十分な時間を可能にするタイミングを制御する。CIマネージャモジュール106は、ユーザが会話フロアを有しているときにVDAが早くに遮ることを防止するために、検出器からの入力を有することに留意されたい。規則ベースエンジンは、ユーザが単に一時的に休止しているが、ユーザが伝達しようとする要点の全体にまだ伝達していないと決定するために規則を使用するように構成される。
【0143】
したがって、規則ベースエンジンは、CIマネージャモジュール106に、ユーザのスピーチの流れにおいて長い休止が検出されたこと、および/またはリストの最後の項目後のピッチの変化が表されたことを伝達するために、ユーザが長いリストの項目および/または複雑なリストの項目を通信しているかどうかを判定させるための規則を有することができる。
【0144】
A)話者が会話フロアを放棄したいと考えているのではなく、情報間に休止を挿入しているかどうかを判定する。
【0145】
ユーザが、
【0146】
A1)短く簡単な前置き単語(たとえば、「sure(承知しました)」、「sure, there are a few of them(承知しました、いくつかあります)」)を伝達しているかどうかを確認し、次いで
【0147】
A2)リストの第2の項目から最後の項目まで、
【0148】
i)ユーザは、キャリア語句(たとえば、「there's」、「then I've got」)で項目を前置きすることができる。
【0149】
ii)ユーザは、各項目の終わりにピッチの上昇/平衡状態を生成することができる。
【0150】
iii)各項目後に指定量の時間まで休止を確認するようにタイマを設定する。
【0151】
第1のリスト項目後、ユーザへの相づちを生成して追加の情報を促す。
【0152】
iv)ユーザがタイマ限度内により多くの項目/情報を与えた場合、
【0153】
ユーザが項目/情報を与えるのにどれだけ要したかを追跡する。
【0154】
v)ユーザが現在の話題に関するより多くの項目/情報以外のことを話した場合、どのカテゴリのスピーチかを判定する。
【0155】
フロア保持者である場合、
【0156】
ユーザからのさらなる入力のために休止する。
【0157】
他のものが会話グラウンディングを確立した場合、
【0158】
対話マネージャへ渡す。
【0159】
B)ユーザが最後の項目を「and」のような標識で前置きすること、および/または最後の項目の終わりに下降するピッチを生成したことを確認する。「anything else(他にありますか)?」などの相づちを使用することによって、項目のリストが完了したように見えるかどうかを確認する。
【0160】
マイクロインタラクション:VDAが会話フロアの奪取および/または会話フロアの保持を求めていることを示すためのピッチを有する相づち
【0161】
規則ベースエンジンは、CIマネージャモジュール106に、VDAが会話フロアの奪取および/または会話フロアの保持を求めていることを示すためのピッチを有する相づちを生成させるための規則を有することができる。
【0162】
CIマネージャモジュール106は、自動音声処理モジュール102、自然言語生成器モジュール110、およびテキストトゥスピーチモジュール112と協働して、単なる相づち自体を超えた意味を伝達するためのピッチを有する相づちを発することができる。CIマネージャモジュール106は、ユーザが話しているときに関する情報を受け取るための入力を有し、次いで規則ベースエンジンは、ユーザが話し始めてユーザに対するVDAの応答を遮ったとき、VDAが会話フロアをまだ放棄していないことを示すために、1)相づちの会話キューに対するテキスト、2)テキストに対するマークされた注釈に応答したピッチの使用、および3)これら2つのいずれかの組合せを生成するように自然言語生成器モジュール110に命令するべきときを判定するために、CIマネージャに対する規則を適用するように構成される。CIマネージャモジュール106は、ユーザがVDAを遮ったときに、VDAが会話フロアをまだ放棄していないことを示すために、自然言語生成器モジュール110およびテキストトゥスピーチモジュール112と協働して、スピーカデバイスを介して、1)「um」などの相づち/表現、および/または2)上昇するピッチなどの応答におけるピッチの使用などの会話キューを発する。
【0163】
マイクロインタラクション:ユーザおよびVDAが現在の会話において休止後に互いに「X」ミリ秒以内に話し始めたときのフロア衝突の処理
【0164】
規則ベースエンジンは、CIマネージャモジュール106に、両者が現在の会話において休止後の短い期間内に文(相づちでない)で話し始めたときにユーザとVDAとの間のフロア衝突を処理させるための規則を有することができる。多くの状況でフロア衝突が生じることがあり、文脈に応じて異なる形で処理されることに留意されたい。
【0165】
トリガ:ユーザおよびVDAが、0.50秒など、休止後に互いにXミリ秒以内に話し始め、どちらの発話も意味内容を有する。
【0166】
行動:
【0167】
CIマネージャモジュール106は、VDAおよびユーザの両方が話そうとしている間に、重複の長さを判定する。ユーザが話を止めることによって、またはそれ以外の方法で会話フロアを手放すことを積極的に伝達することによって、会話フロアを迅速に手放したか? CIマネージャモジュール106は、対話状態を判定する。
【0168】
CIマネージャモジュール106は、休止中に何が起こったか、および次いで休止後に何が起こっているかを判定する。i)ユーザが話し続けた場合、VDAは話を止め、ユーザが継続することを許可する。
ii)ユーザが話を止めた場合、VDAは「sorry, go ahead(すみません、続けてください)」と言い、ユーザが継続するのを待つ。
【0169】
マイクロインタラクション:待機方向
【0170】
規則ベースエンジンは、CIマネージャモジュール106に、「hang on(待機)」方向を処理させるための規則を有することができる。
【0171】
トリガ:CIマネージャモジュール106は、話を「hang on(待機)」またはそれ以外の方法で休止するためのユーザからVDAへの方向を検出する。
【0172】
行動:
【0173】
CIマネージャモジュール106は、自然言語生成器モジュール110およびテキストトゥスピーチモジュール112と協働して、肯定(たとえば、「sure(承知しました)」、「sure, let me know when you're ready(承知しました、準備ができたら教えてください)」など)を生成する。
【0174】
CIマネージャモジュール106は、自動スピーチ認識モジュール102および口頭言語理解モジュール104と協働して、システムに向けられたスピーチ/システムに向けられていないスピーチを区別する機能を可能にする。
【0175】
待機またはそれ以外の方法で休止するためのスピーチがVDAへ向けられた(可能性が高い)場合、規則ベースエンジンは、次のことを指示する。
a)スピーチが意味内容を有するかどうかを判定する。
スピーチが意味内容を有する場合、対話管理モジュール108からの指示により、通常の対話システムへ進む。
スピーチが意味内容を有していない場合、タイマを開始する。
ユーザからのさらなる入力なしに、システム開発者が指定した期間が経過した場合、会話知能マネージャモジュール106は、ユーザがVDAに再び話し始めたことを承認するための命令(「you ready(準備できましたか)?」)を生成する。
b)対話の状態を判定する。
VDAが話していた場合、会話知能マネージャモジュール106は、ユーザからの待機命令がきたときに伝達しようとしていた内容を要約し/繰り返し、かつ/または以下を含む他の行動をとるための命令を生成することができる。
ユーザが話の途中であった場合、VDAがこれまでに知っている内容を再び促す。
現在の話題に関してこれまでにほとんど情報が伝達されていない場合、ユーザが覚えていると想定し、ユーザからの待機命令がきたときに伝達しようとしていた内容を要約する/繰り返すステップを省く。
デフォルトで、これまでに伝達した情報の状態をユーザが覚えているかどうか(グラウンディング)を確信できない場合、または対話状態を再検討するのが速い場合、ユーザとの対話の状態を再検討し、ユーザからの待機命令がきたときにVDAが伝達しようとしていた内容を要約する/繰り返すステップを実行する。
【0176】
さらなる詳細
【0177】
韻律分析
【0178】
一実施形態では、VDAは、次のように、韻律に関する判定を行うことができる。VDAは、スピーチ韻律モデルに含まれる情報を利用することによって、スピーチの終点を見出す。韻律は、話者が単音、音節、単語、および語句のタイミング、ピッチ、および音量を変えて意味の特定の態様を伝達する方法を示し、非公式には、韻律は、スピーチの「リズム」および「メロディ」として知覚されるものを含む。ユーザは韻律を使用して単語以外の単位のスピーチを聞き手に伝達するため、方法および装置は、スピーチの関連する韻律特性を抽出および解釈することによって、終点検出を実行する。
【0179】
VDAへのスピーチ信号の入力は、ユーザが話した発話に関連付けられたスピーチ波形として捕捉される。スピーチデータ処理サブシステムは、スピーチ波形において人から捕捉された音声入力に対応するスピーチデータを作成する。音響フロントエンドは、単音および語句のタイミング、ピッチ、および音量に関する単語以外の分析を計算して、スピーチ波形のフレームにわたって韻律を伝達する。音響フロントエンドは、複数の分析エンジンを含み、各分析エンジンは、単音および語句のタイミング、ピッチ、および音量を含む異なるタイプのユーザ状態分析を計算して、スピーチ波形のフレームにわたって韻律を伝達するように構成された複数のアルゴリズムを備える。VDAは、スピーチ波形のフレームからのデータを計算し、データベースおよび後続分類モジュールと比較する。スピーチ信号の各サンプルは、終点信号を生成するために処理され、次いで次のサンプルが処理されることに留意されたい。終点信号を更新するために、新しいサンプルが使用される。音響フロントエンドは、休止分析エンジン、継続時間パターン分析エンジン、音量分析エンジン、およびピッチ処理分析エンジンを含むことができる。これらの分析エンジンの各々は、特にその特定の機能を実行するためのアルゴリズムを使用して、実行可能なソフトウェアを有することができる。たとえば、休止分析エンジンは、スピーチ中の休止が生じたことを検出する従来の「スピーチ/非スピーチ」アルゴリズムを利用することができる。出力は、現在のスピーチ信号サンプルがスピーチの一部分であるか、それともスピーチの一部分でないかを示す2進値である。この出力および判定情報を使用して、終点を識別することができる。同様に、継続時間パターン分析エンジンは、単音がユーザの平均単音継続時間に対して長くなっているかどうかを分析する。単音が長くなることは、ユーザが話し終えていないことを示す。この分析エンジンの出力は、2進信号とすることができ(たとえば、単音が平均より長い場合、出力は1であり、そうでない場合、出力は0である)、または単音の長さの点からユーザが話を完了した可能性を示す確率とすることができる。同様に、ピッチ処理分析エンジンを使用して、ユーザが発話を完了したことを示す特定のピッチパラメータをスピーチ信号から抽出することができる。ピッチ処理分析エンジンは、スピーチ信号から基本ピッチ周波数を抽出し、スピーチ信号の「ピッチの動き」を様式化する(すなわち、時間とともにピッチの変動を追跡する)。ピッチ処理分析エンジン内で、ピッチの輪郭が、相関するピッチ値のシーケンスとして生成される。スピーチ信号は、適当な速度、たとえば8kHz、16kHzなどでサンプリングされる。ピッチパラメータが抽出および計算(モデリング)される。このシーケンスは、区分的線形モデルで、またはスプラインとして所与の次数の多項式でモデリングすることができる。ピッチの輪郭から、有限状態オートマトンまたはマルコフ確率モデルを使用して、ピッチの動きモデルを作成することができる。このモデルは、ピッチの動きのシーケンスを推定する。ピッチ処理分析エンジンは、ユーザが停止、休止、話の継続、または質問を意図したかどうかをピッチ特徴が伝える点で、モデルからピッチ特徴を抽出する。特徴は、基線ピッチからのピッチの動きの勾配およびピッチの並進を含む。
【0180】
話者の典型的な韻律を分析した後、VDAは、話者からの完了した考えと話者からの不完全な考えとの間に長い休止を判定することができる。
【0181】
CIマネージャモジュール106は、たとえばCIマネージャモジュール106と通信するASRからのタイマを使用して、会話中の長い休止を検出することができる。組み合わせて、CIマネージャモジュール106は、ユーザが会話フロアを放棄したか、それとも長いリストの情報、複雑な情報の伝達および理解を助けるために挿入される話の休止、ならびに2つ以上のユーザ発話間に挿入される休止を含む追加の情報を伝達するために、スピーチの流れにおいて単に長い休止を挿入しているかを理解するために、記載の規則を有し、したがってユーザは、最初に第1の発話によって不完全に応答することができ、それに続いて短く休止し、次いで第2の発話によって、そのスピーチで伝達しようとしている考えを完了させる。
【0182】
強化学習
【0183】
論じたように、CIマネージャモジュールは、音声ベースのデジタルアシスタント(VDA)に対する会話知能に関する規則およびパラメータを使用することができる。CIマネージャモジュールは、少なくとも人間のコミュニケーションの流れおよび交換において、1)ユーザとVDAとの間の会話フロアの取得、奪取、または放棄、および2)会話フロアを取得しない会話グラウンディングの確立のうちの少なくとも1つのために、相づちの理解および/または生成を含めて、i)人間会話キューの理解と、ii)人間的な会話キューの生成との両方について判定するために、1つまたは2つ以上のモジュールからパラメータとして情報を受け取るための1つまたは2つ以上の入力を有する。
【0184】
CIマネージャモジュールは、規則およびパラメータを使用する強化学習を使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定することができる。CIマネージャモジュールが相づちを生成すると決定したとき、CIマネージャモジュールは、ユーザのスピーチの流れにおいてユーザによって伝達される言語コミュニケーションについてのi)理解、ii)さらなる情報の要求、iii)承認、およびiv)質問のいずれかを伝えるための相づちを発するためのコマンドを生成するように構成される。CIマネージャモジュールは、強化学習を使用することができ、少なくともユーザの感情状態のパラメータを強化学習のための報酬関数として使用することができる。
【0185】
非流暢性情報
【0186】
CIマネージャモジュール106は、i)自動音声処理モジュール102および/または口頭言語理解モジュール104とともに、ユーザからのそれ以外は流暢なスピーチ内の途切れの非流暢性情報を検出する働きをし、次いでii)規則ベースエンジンとともに、i)非流暢性情報を引き起こす途切れの記録、およびii)非流暢性情報の補償の両方のために規則を適用する働きをするように構成される。
【0187】
CIマネージャモジュール106は、スピーチ訂正に関するマイクロインタラクションをトリガして、i)発話の途中で途切れた単語および文、ならびに/またはii)ユーザが話しており会話フロアを保持している間に発せられた非語彙的な音語の様々な途切れの非流暢性情報を検出するための非流暢性検出器からの入力を有する。口頭言語理解モジュール104は、現在のスピーチの流れが、完了した考えを含まないことを示すことができる。CIマネージャモジュール106は、口頭言語理解モジュール104と協働して、ユーザからのスピーチの流れにおける構文の文法的な完全性を探す。ユーザが最初に「Yeah that looks good but(うん、それは良さそうに見えるけれど)...」と応答した場合、CIマネージャモジュール106は、これは人間の不完全な文であると理解するように構成される。次いで、ユーザは、長い休止後に、「I am not sure on Tuesday, maybe Wednesday(火曜日はよく分からない、たぶん水曜日)!」と発言する可能性がある。したがって、CIマネージャモジュール106が、この最初のスピーチの流れと、ユーザからの次のスピーチの流れとをペアリングした場合、場合により文法的に完全な文を口頭言語理解モジュール104に送り、ユーザから会話フロアを取得することなく、ユーザからのスピーチの正しい解釈を得ることができ、その後、それら2つの途切れた語句によって伝達しようとしたスピーチの流れにおける概念を完全に伝達する。CIマネージャモジュール106は、会話フロアを取得しないことによって、ユーザが自身の考えを完成させることによって途切れた語句が発せられることを可能にした。CIマネージャモジュール106はまた、「maybe Wednesday(たぶん水曜日)」という語句に対するトーン、ピッチ、および/または韻律に気付く。CIマネージャモジュール106は、会話知能を適用して2つの途切れた文を組み合わせ、それらの文はSLUによって再処理され、次いでモジュールは、ユーザの意図を理解する。予約に関して前述した内容はすべて、火曜日の開始日を除いて適当であり、ただし開始日は実際には水曜日とするべきである。
【0188】
対話マネージャモジュールに関する追加の詳細
【0189】
CIマネージャモジュール106内の話題理解入出力モジュールは、話題に対する階層的分類器および関連する話題のコクラスタリングから導出された話題IDを受け取って追跡し、ユーザと会話関与のための会話アシスタントプラットホーム100との間の自由形式会話で議論された1組の話題を正確に識別するように構成される。話題理解入出力モジュールは、音声ベースのデジタルアシスタント、階層的分類器、およびコクラスタリングパイプラインとともに、話題および話題に関する意図を識別する働きをするインターフェースを有する。情報抽出および話題理解入出力モジュールはまた、音声ベースのデジタルアシスタント(VDA)パイプラインから状態データへの1つまたは2つ以上のリンクを有することができる。話題理解入出力モジュールは、話題を識別するために階層的分類器およびパイプラインのコクラスタリング部分を含むVDAパイプラインからの入力を追跡し、これを対話管理モジュール108に供給する。
【0190】
話題理解入出力モジュールは、話題IDを検出および追跡して、自由形式会話(ユーザとの構造化されたメニューツリータイプの対話とは対照的)で議論される1組の話題を正確に識別する。話題理解入出力モジュールは、話題IDを記憶することができる。階層的分類器およびコクラスタリングパイプラインは、話題を識別するために、コクラスタリングおよび階層的分類器を含む深層学習(たとえば、CNN)技術を利用する。
【0191】
対話マネージャモジュール108は、1)対話マネージャモジュール108内の規則ベースエンジン、ならびに訓練された機械学習モデル部分の混成手法を使用して、現在の話題を含む対話状態を分析および決定し、適当な発話および応答周期を追跡するように構成することができる。
【0192】
対話マネージャモジュール108は、ユーザがどのような主題/話題について話したいと考えているかを知っているかどうかを判定し、次いでその話題になった後、「議論の最終決定」/「議論の解決」のためにその主題についてどの項目の情報の詳細を抽出する必要があるかを判定するために待ち受けおよび/または質問するように構成される。
【0193】
同様に、CIマネージャモジュール106は、1)CIマネージャモジュール106内の規則ベースエンジン、ならびに訓練された機械学習モデル部分の混成手法を使用して、本明細書に論じる会話知能の問題を分析および決定するように構成することができる。
【0194】
会話関与のための会話アシスタントプラットホーム100は、単なる話し言葉を超えた人間会話キューを考慮に入れた個別の言語コマンドに対するタスクまたはサービスを実行することができる規則ベースエンジンならびに混成の規則および機械学習エンジンと協働する1組のソフトウェアマイクロサービスとすることができる。VDAは、単なる話し言葉を超えた人間会話キューを含む人間のスピーチを解釈し、合成された音声を介して応答することが可能である。
【0195】
マイクロサービスは、1群の疎結合サービスとしてアプリケーションを構築するサービス指向アーキテクチャ(SOA)のアーキテクチャ様式の変形形態とすることができることに留意されたい。マイクロサービスアーキテクチャでは、サービスを細粒度とすることができ、プロトコルは軽量である。アプリケーションを異なるより小さいサービスに分解する利益は、モジュール性を改善することである。マイクロサービスアーキテクチャ(MSA)内のサービスは、HTTPなどの技術に非依存のプロトコルを使用して、ローカルネットワークを介して通信することができる。
【0196】
この場合も、会話関与のための会話アシスタントは、会話の話題のアウェアネスとユーザ状態のアウェアネスとの両方を追跡して、ユーザとの長い会話を作成する。長い会話は、ユーザの興味、感情状態、および健康を明らかにする。長い会話はまた、場合により若年性認知症および孤独を抑制する可能性もある。
【0197】
図2A図2Cは、ユーザとVDAとの間の対話の流れに対する会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを含む会話関与マイクロサービスプラットホームの一実施形態の流れ図を示す。
【0198】
ステップ202で、音声ベースのデジタルアシスタント(VDA)は、会話知能に関する規則ベースエンジンを有する会話知能(CI)マネージャモジュールを使用して、1つまたは2つ以上のモジュールからの情報を処理し、モジュールに、人間のコミュニケーションの流れおよび交換において、1)ユーザとVDAとの間の会話フロアの取得、奪取、もしくは放棄、または2)会話フロアを取得しない会話グラウンディングの確立のうちの少なくとも1つのために、相づちの理解および/または生成を含めて、i)人間会話キューの理解と、ii)人間的な会話キューの生成との両方について判定させることができる。VDAはまた、会話知能に関する規則ベースエンジンを有するCIマネージャモジュールを使用して、1つまたは2つ以上のモジュールからの情報を処理し、人間のコミュニケーションの流れおよび交換において、ユーザとVDAとの間の会話フロアの取得、奪取、または放棄のうちの少なくとも1つのために、相づちを含めて、i)人間会話キューの理解と、ii)人間会話キューの生成との両方について判定することができる。
【0199】
ステップ204で、CIマネージャモジュールは、規則ベースエンジンを使用して、少なくともユーザのスピーチの流れにおける韻律の会話キューを分析および判定し、ユーザが依然として会話フロアを保持している時間フレーム中にスピーチの流れにおいてユーザによって伝達される言語コミュニケーションについてのi)理解、ii)訂正、iii)承認、およびiv)質問のいずれかを伝えるための相づちを生成することができる。
【0200】
ステップ206で、CIマネージャモジュールは、自動音声処理モジュールおよびテキストトゥスピーチモジュールをCIマネージャモジュールとともに使用する。CIマネージャモジュールは、ユーザが話しているときに関する情報を受け取るための入力を有し、次いで規則ベースエンジンは、ユーザが話し始めてユーザに対するVDAの応答を遮ったとき、VDAが会話フロアをまだ放棄していないことを示すために、1)相づち、2)応答におけるピッチの使用、および3)これら2つの任意の組合せの会話キューを生成するようにテキストトゥスピーチモジュールに命令するべきときを判定するために、CIマネージャモジュールに対する規則を適用するように構成される。
【0201】
ステップ208で、規則ベースエンジンは、i)非語彙的な項目(たとえば、単語、音など)、ii)ピッチおよびタイミングを含む話し言葉の韻律、iii)ユーザのスピーチの流れにおける構文の文法的な完全性、iv)設定された継続時間に対する休止の継続時間、ならびにv)ユーザの発話の意味条件の程度のうちの2つ以上の会話キューを分析および判定する。CIマネージャモジュールは、これらの判定および分析を行った後、単に固定の継続時間の休止を待ち、次いでユーザが会話フロアを放棄したと想定するのとは対照的に、1)ユーザからの追加の情報を促すこと、2)ユーザが会話フロアを引き続き有することに対するVDAの同意および理解を伝えること、または3)VDAが会話フロアの奪取を求めていることを示すことのうちの少なくとも1つのために、発話を生成するかどうかを決定することができる。CIマネージャモジュールは、ユーザが依然として会話フロアを保持している時間フレーム中にこの発話を生成するかどうかを決定することができる。
【0202】
ステップ210で、CIマネージャモジュールは、ユーザからのスピーチの流れのリズムなど、ユーザからのスピーチに関する韻律分析のために、韻律分析器を使用する。CIマネージャモジュールは、自動音声処理モジュールから韻律分析のための入力データを受け取る。韻律検出器は最初に、自動音声処理モジュールから、何らかのスピーチ活動が生じているかどうかを確認して検出し、次いで韻律検出器を使用して、ユーザの発話の「終わり」および/または「途中」で韻律分析を適用し、i)ユーザが実際に会話フロアを放棄したかどうか、またはii)ユーザが追加の情報を伝達するために、スピーチの流れに休止を挿入しているかどうかを判定する。追加の情報は、1)長いリストの情報の伝達および理解を助けるために、休止しながら話すこと、2)ユーザが最初に第1の発話によって不完全に応答し、それに続いて休止し、次いで第2の発話によってユーザがそのスピーチ活動で伝達しようとしている考えを完了させることができるように、2つ以上のユーザ発話間に休止しながら話すこと、ならびに3)システムからの相づちを求めるために、休止しながら話すこと、ならびに4)これら3つの任意の組合せのいずれかを含むことができる。
【0203】
ステップ212で、CIマネージャモジュールは、CIマネージャモジュールへの入力および出力と双方に接続された対話マネージャモジュールを使用して、対話マネージャモジュールは、発話および応答周期に対して、現在の話題を含む少なくとも対話状態を分析および追跡するように構成される。
【0204】
ステップ214で、CIマネージャモジュールは、i)音声のトーンまたはピッチ、ii)タイミング情報、iii)発話、iv)転換語、およびv)会話フロアの転換を伝える他の人間のキューを含むマイクロインタラクションに関する少なくとも口頭言語理解モジュールからの情報を消化して、ユーザとVDAとの間の会話フロアの取得、奪取、または放棄のうちの少なくとも1つを行うかどうかに関してどのように進むかを判定する。
【0205】
ステップ216で、CIマネージャモジュールは、会話グラウンディング検出器を使用して、ユーザとVDAとの間に相互理解が生じていないことを判定する。CIマネージャモジュールが、相互理解が生じていないと判定したとき、CIマネージャモジュール、自然言語生成モジュール、およびテキストトゥスピーチモジュールは協働して、相互理解を再確立するための1つまたは2つ以上の発話を発する。規則ベースエンジンは、ユーザとVDAとの間に相互理解が生じていないと決定するための規則を使用する。
【0206】
ステップ218で、CIマネージャモジュールは、非流暢性検出器を使用して、スピーチ訂正に関するマイクロインタラクションをトリガして、i)発話の途中で途切れた単語および文、ならびに/またはii)ユーザが話しており会話フロアを保持している間に発せられた非語彙的な音語の様々な途切れの非流暢性情報を検出する。CIマネージャモジュールは、i)自動音声処理モジュールとともに、ユーザからのそれ以外は流暢なスピーチ内のスピーチにおいて非流暢性情報を検出する働きをし、次いでii)規則ベースエンジンとともに、非流暢性情報を記録し、i)非流暢性情報を使用してスピーチを訂正すること、もしくはii)会話的にグラウンディングして、システムの理解が正しいことをユーザによって承認すること、またはiii)両方のために、規則を適用する働きをするように構成される。
【0207】
ステップ220で、CIマネージャモジュールは、口頭言語理解モジュールと協働して、入力データから、ユーザが言っている内容で伝達されるユーザの姿勢を示すために、ユーザのi)応答中の感情状態、ii)発話の音響トーン、iii)韻律、iv)何らかの談話マーカ、ならびにv)これらの任意の組合せを分析することに関するマイクロインタラクションのための入力情報を提供する。CIマネージャモジュールは、口頭言語理解モジュールからの感情応答、発話の音響トーン、または談話マーカを考慮して判定し、次いで応答を発し、または状態を調整し、その応答を発したとき、テキストトゥスピーチモジュールを使用して、1)会話フロアを放棄し、2)ユーザからの追加の情報を求め、3)ユーザに対するシステム応答を変化させるために対話状態を変化させ、または4)ユーザに考えを表すことを促し、もしくは少なくともユーザが何かを伝達したいかどうかを尋ねる。
【0208】
ステップ222で、CIマネージャモジュールは、規則ベースエンジンを使用して、ユーザが自身の言い間違いまたは発音の誤りを訂正するインスタンスを分析および判定し、次いでユーザが言語コミュニケーションによって伝達しようとしている内容を解釈するとき、ユーザの訂正を補償する。
【0209】
ステップ224で、CIマネージャモジュールは、ユーザが相互作用しているワールドコンテキストに関する情報を使用して、ユーザが現在気を取られており、VDAからのスピーチを処理する能力が低下していると判定することを支援する。
【0210】
ネットワーク
【0211】
図3は、本設計の一実施形態によるネットワーク環境内で互いに通信する複数の電子システムおよびデバイスのブロック図を示す。
【0212】
ネットワーク環境は、サーバ計算システム304A~304Bおよび少なくとも1つまたは2つ以上の顧客計算システム302A~302Gを接続する通信ネットワーク320を有する。図示のように、多くのサーバ計算システム304A~304Bおよび多くの顧客計算システム302A~302Gを、ネットワーク320を介して互いに接続することができ、ネットワーク320は、たとえばインターネットとすることができる。別法として、ネットワーク320は、光ネットワーク、セルラーネットワーク、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、衛星リンク、ファイバネットワーク、ケーブルネットワーク、またはこれらおよび/もしくは他の組合せのうちの1つまたは複数とすることができ、またはそれらを含むことができることに留意されたい。各サーバ計算システム304A~304Bは、他方のサーバ計算システム304A~304Bおよび顧客計算システム302A~302Gとネットワーク320を介して通信するための回路およびソフトウェアを有することができる。各サーバ計算システム304A~304Bは、1つまたは2つ以上のデータベース306A~306Bに関連付けることができる。各サーバ304A~304Bは、その物理サーバ上で実行される仮想サーバの1つまたは2つ以上のインスタンスを有することができ、この設計によって複数の仮想インスタンスを実施することができる。顧客計算システム、たとえば302Dと、ネットワーク320との間には、顧客計算システム302D上のデータの完全性を保護するために、ファイアウォールを確立することができる。
【0213】
クラウドプロバイダサービスは、クラウド内にアプリケーションソフトウェアを導入して動作させることができ、ユーザは、顧客デバイスからソフトウェアサービスにアクセスすることができる。クラウド内にサイトを有するクラウドユーザは、アプリケーションが実行されているクラウドインフラストラクチャおよびプラットホームを単独で管理することができない。したがって、サーバおよびデータベースは、ユーザがこれらの資源の特定の量の専用使用を与えられる共用ハードウェアとすることができる。ユーザのクラウドベースのサイトには、クラウド内の仮想量の専用空間および帯域幅が与えられる。クラウドアプリケーションは、スケーラビリティの点で他のアプリケーションとは異なることができ、それは、変化する作業要求を満たすように実行時間で複数の仮想機械にタスクをクローニングすることによって実現することができる。ロードバランサが、1組の仮想機械にわたって作業を分散させる。このプロセスは、クラウドユーザにとって透明であり、クラウドユーザは、単一のアクセスポイントのみを見る。
【0214】
クラウドベースの遠隔アクセスは、ハイパテキスト転送プロトコル(HTTP)などのプロトコルを利用して、顧客デバイス302A~302Gに常駐する移動デバイスアプリケーションならびに顧客デバイス302A~302Gに常駐するウェブブラウザアプリケーションの両方による要求および応答周期に関与するようにコード化される。いくつかの状況で、ウェアラブル電子デバイス302Cに対するクラウドベースの遠隔アクセスには、そのウェアラブル電子デバイス302Cと協働する移動デバイス、デスクトップ、タブレットデバイスを介してアクセスすることができる。顧客デバイス302A~302Gとクラウドベースのプロバイダサイト304Aとの間のクラウドベースの遠隔アクセスは、1)すべてのウェブブラウザベースのアプリケーションからの要求および応答周期、2)SMS/ツイッターベースの要求および応答メッセージの交換、3)専用のオンラインサーバからの要求および応答周期、4)顧客デバイスに常駐するネイティブ移動アプリケーションと、ウェアラブル電子デバイスへのクラウドベースの遠隔アクセスとの間の直接の要求および応答周期、ならびに5)これらの組合せのうちの1つまたは2つ以上に関与するようにコード化される。
【0215】
一実施形態では、サーバ計算システム304Aは、サーバエンジン、ウェブページ管理構成要素またはオンラインサービスもしくはオンラインアプリ構成要素、コンテンツ管理構成要素、およびデータベース管理構成要素を含むことができる。サーバエンジンは、基本処理およびオペレーティングシステムレベルタスクを実行する。ウェブページ管理構成要素、オンラインサービス、またはオンラインアプリ構成要素は、デジタルコンテンツおよびデジタル広告の受信および提供に関連付けられたウェブページまたはスクリーンの作成および表示または経路指定を処理する。ユーザは、サーバ計算デバイスに関連付けられたURLによって、サーバ計算デバイスにアクセスすることができる。コンテンツ管理構成要素は、本明細書に記載する実施形態における機能の大部分を処理する。データベース管理構成要素は、データベースに対する記憶および検索タスク、データベースへの照会、ならびにデータの記憶を含む。
【0216】
計算デバイス
【0217】
図4は、本明細書に論じる本設計の一実施形態のための会話アシスタントの一部とすることができる1つまたは2つ以上の計算デバイスの一実施形態のブロック図を示す。
【0218】
計算デバイスは、命令を実行するための1つまたは2つ以上のプロセッサまたは処理ユニット420と、情報を記憶するための1つまたは2つ以上のメモリ430~432と、計算デバイス400のユーザからのデータ入力を受け取るための1つまたは2つ以上のデータ入力構成要素460~463と、管理モジュールを含む1つまたは2つ以上のモジュールと、計算デバイスの外部の他の計算デバイスと通信する通信リンクを確立するためのネットワークインターフェース通信回路470と、特有のトリガ条件を感知し、次いでそれに対応して1つまたは2つ以上の事前プログラムされた行動を生成するためにセンサからの出力が使用される1つまたは2つ以上のセンサと、1つまたは2つ以上のメモリ430~432内に記憶されている情報の少なくともいくつかを表示するためのディスプレイ画面491と、他の構成要素とを含むことができる。ソフトウェア444、445、446で実施されるこの設計のいくつかの部分は、1つまたは2つ以上のメモリ430~432内に記憶され、1つまたは2つ以上のプロセッサ420によって実行されることに留意されたい。処理ユニット420は、1つまたは2つ以上の処理コアを有することができ、それらの処理コアは、システムメモリ430を含む様々なシステム構成要素を結合するシステムバス421に結合する。システムバス421は、様々なバスアーキテクチャのいずれかを使用するメモリバス、インターコネクトファブリック、周辺バス、およびローカルバスから選択されたいくつかのタイプのバス構造のいずれかとすることができる。
【0219】
計算デバイス402は、典型的に、様々な計算機械可読媒体を含む。機械可読媒体は、計算デバイス402によってアクセスすることができる任意の利用可能な媒体とすることができ、揮発性および不揮発性媒体ならびに取外し可能および取外し不能媒体の両方を含む。限定ではなく例として、計算機械可読媒体の使用は、コンピュータ可読命令、データ構造、他の実行可能なソフトウェア、または他のデータなどの情報の記憶を含む。コンピュータ記憶媒体は、それだけに限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、計算デバイス402によってアクセスすることができる任意の他の有形の媒体を含む。無線チャネルなどの一時的媒体は、機械可読媒体に含まれない。機械可読媒体は、典型的に、コンピュータ可読命令、データ構造、および他の実行可能なソフトウェアを実施する。
【0220】
一例では、オペレーティングシステム444、アプリケーションプログラム445、他の実行可能なソフトウェア446、およびプログラムデータ447のいくつかの部分を記憶するための揮発性メモリドライブ441が示されている。
【0221】
ユーザは、キーボード、タッチスクリーン、またはソフトウェアもしくはハードウェア入力ボタン462、マイクロフォン463、マウス、トラックボール、もしくはタッチパッドなどのポインティングデバイスおよび/またはスクローリング入力構成要素461などの入力デバイスを介して、計算デバイス402にコマンドおよび情報を入力することができる。マイクロフォン463は、スピーチ認識ソフトウェアと協働することができる。これらその他の入力デバイスは、システムバス421に結合されたユーザ入力インターフェース460を介して処理ユニット420に接続されることが多いが、ライティングポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続することもできる。ディスプレイモニタ491または他のタイプのディスプレイ画面デバイスもまた、ディスプレイインターフェース490などのインターフェースを介して、システムバス421に接続される。モニタ491に加えて、計算デバイスはまた、出力周辺インターフェース495を介して接続することができるスピーカ497、振動デバイス499、および他の出力デバイスなどの他の周辺出力デバイスを含むことができる。
【0222】
計算デバイス402は、遠隔計算システム480などの1つまたは2つ以上の遠隔コンピュータ/顧客デバイスへの論理接続を使用して、ネットワーク環境内で動作することができる。遠隔計算システム480は、パーソナルコンピュータ、移動計算デバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、典型的に、計算デバイス402に関して上述した要素の多くまたはすべてを含む。論理接続は、パーソナルエリアネットワーク(PAN)472(たとえば、Bluetooth(登録商標))、ローカルエリアネットワーク(LAN)471(たとえば、Wi-Fi)、およびワイドエリアネットワーク(WAN)473(たとえば、セルラーネットワーク)を含むことができる。そのようなネットワーキング環境は、オフィスで一般的であり、企業規模のコンピュータネットワーク、イントラネット、およびインターネットが挙げられる。ブラウザアプリケーションおよび/または1つもしくは2つ以上のローカルアプリは、計算デバイスに常駐することができ、メモリに記憶することができる。
【0223】
LANネットワーキング環境で使用されるとき、計算デバイス402は、ネットワークインターフェース470を介してLAN471に接続されており、ネットワークインターフェース470は、たとえば、Bluetooth(登録商標)またはWi-Fiアダプタとすることができる。WANネットワーキング環境(たとえば、インターネット)で使用されるとき、計算デバイス402は、典型的に、WAN473を介して通信を確立する何らかの手段を含む。移動通信技術に関しては、たとえば、内部または外部に位置することができる無線インターフェースを、ネットワークインターフェース470または他の適当な機構を介して、システムバス421に接続することができる。ネットワーク環境において、計算デバイス402に関して示す他のソフトウェアまたはその一部分は、遠隔メモリ記憶デバイス内に記憶することができる。限定ではなく例として、遠隔アプリケーションプログラム485は、遠隔計算デバイス480に常駐する。図示のネットワーク接続は例示であり、計算デバイス間の通信リンクを確立する他の手段を使用することもできることが理解されよう。
【0224】
本設計は、この図に関して記載したものなどの計算デバイスで実施することができることに留意されたい。しかし、本設計は、サーバ、メッセージ処理専用の計算デバイス、または分散システムで実施することができ、分散システムでは、本設計の異なる部分が分散計算システムの異なる部分で実施される。
【0225】
本明細書に記載するアプリケーションは、それだけに限定されるものではないが、オペレーティングシステムアプリケーションの一部であるソフトウェアアプリケーション、移動アプリケーション、およびプログラムを含むことに留意されたい。この説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび象徴的表現の点から提示されている。これらのアルゴリズムの説明および表現は、作業の本質を当業者に最も効果的に伝達するためにデータ処理技術で当業者によって使用される手段である。本明細書では、アルゴリズムは概して、所望の結果をもたらす首尾一貫したステップのシーケンスであると考えられる。これらのステップは、物理量の物理的操作を必要とするものである。通常、必須ではないが、これらの数量は、記憶、伝達、組合せ、比較、および他の形の操作が可能な電気または磁気信号の形態をとる。場合により、主に一般的な仕様の理由で、これらの信号をビット、値、要素、記号、文字、用語、数などと呼ぶことが好都合であることが分かった。これらのアルゴリズムは、C、C++、HTTP、Java、または他の類似の言語などの複数の異なるソフトウェアプログラミング言語で書くことができる。また、アルゴリズムは、ソフトウェアのコード、ハードウェアの構成された論理ゲート、または両方の組合せによって実施することができる。一実施形態では、論理は、ブール論理の規則に従う電子回路、命令のパターンを含むソフトウェア、または両方の任意の組合せからなる。モジュールは、ハードウェア電子構成要素、ソフトウェア構成要素、および両方の組合せで実施することができる。
【0226】
概して、アプリケーションは、特定のタスクを実行しまたは特定の抽象データ型を実施するプログラム、ルーチン、オブジェクト、ウィジェット、プラグイン、および他の類似の構造を含む。本明細書に論じる任意の形態の計算機械可読媒体で実施することができるコンピュータ実行可能な命令として本明細書の説明および/または図を、当業者であれば実施することができる。
【0227】
電子ハードウェア構成要素によって実行される多くの機能は、ソフトウェアエミュレーションによって複製することができる。したがって、それらの同じ機能を実現するために書かれたソフトウェアプログラムは、入出力回路内のハードウェア構成要素の機能をエミュレートすることができる。
【0228】
上記の設計およびその実施形態についてかなり詳細に提供したが、本明細書に提供する設計および実施形態が限定的となることは、本出願人の意図ではない。追加の適合形態および/または修正形態が可能であり、より広い態様では、これらの適合形態および/または修正形態も包含される。したがって、以下の特許請求の範囲によって与えられる範囲から逸脱することなく、上記の設計および実施形態から逸脱することができ、特許請求の範囲は、適当に解釈されたとき、特許請求の範囲によってのみ限定される。
図1
図2A
図2B
図2C
図3
図4
【国際調査報告】