(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
(51)【国際特許分類】
G10L 15/22 20060101AFI20241217BHJP
G10L 13/00 20060101ALI20241217BHJP
G06F 40/56 20200101ALI20241217BHJP
G06F 16/90 20190101ALI20241217BHJP
G06F 3/16 20060101ALI20241217BHJP
【FI】
G10L15/22 300U
G10L13/00 100M
G06F40/56
G06F16/90 100
G06F3/16 690
G06F3/16 650
(21)【出願番号】P 2021548415
(86)(22)【出願日】2020-08-06
(86)【国際出願番号】 JP2020030193
(87)【国際公開番号】W WO2021059771
(87)【国際公開日】2021-04-01
【審査請求日】2023-06-07
(31)【優先権主張番号】P 2019174047
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100093241
【氏名又は名称】宮田 正昭
(74)【代理人】
【識別番号】100101801
【氏名又は名称】山田 英治
(74)【代理人】
【識別番号】100086531
【氏名又は名称】澤田 俊夫
(74)【代理人】
【識別番号】100095496
【氏名又は名称】佐々木 榮二
(74)【代理人】
【識別番号】110000763
【氏名又は名称】弁理士法人大同特許事務所
(72)【発明者】
【氏名】金盛 克俊
【審査官】土井 悠生
(56)【参考文献】
【文献】特開2003-255990(JP,A)
【文献】特開2003-044088(JP,A)
【文献】米国特許出願公開第2019/0057684(US,A1)
【文献】特開2017-203808(JP,A)
【文献】特許第6555838(JP,B1)
【文献】特開2018-185401(JP,A)
【文献】国際公開第2019/048957(WO,A1)
【文献】特開2018-049588(JP,A)
【文献】特開2016-212541(JP,A)
【文献】特開2015-210342(JP,A)
【文献】矢島 敬士, 他3名,独居高齢者に優しい談話システムの提案,電気学会研究会資料 The Papers of Technical Meeting on "Information Systems",IEE Japan,日本,一般社団法人電気学会,2019年05月27日,pp.33-38
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-99/00
G06F 40/56
G06F 16/90
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
システム発話を生成して出力するデータ処理部を有し、
前記データ処理部は、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する処理を実行する構成であり、
前記複数の対話実行モジュールは、
(a)様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したシナリオデータベースを参照してシステム発話を生成するシナリオベース対話実行モジュール、
(b)様々なエピソード情報を記録したエピソード知識データベースを参照してシステム発話を生成するエピソード知識ベース対話実行モジュール、
(c)様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを参照してシステム発話を生成するRDF知識ベース対話実行モジュール、
少なくとも上記(a)~(c)3種類の対話実行モジュールを含み、
上記(a)~(c)3種類の対話実行モジュール各々は、
システム発話の生成に成功した場合は、生成したシステム発話と、生成したシステム発話の自信度を示す0より大きい値の自信度を出力し、
システム発話の生成に失敗した場合は、システム発話を出力することなく、自信度の値として0を出力する構成であり、
前記データ処理部は、
上記(a)~(c)3種類の対話実行モジュールが個別に生成した複数のシステム発話を含む複数のシステム発話から
、自信度の値が最大である1つのシステム発話を選択して出力する情報処理装置。
【請求項2】
前記複数の対話実行モジュールの各々は、
異なるシステム発話生成アルゴリズムに従って、アルゴリズム固有のシステム発話を生成する請求項1に記載の情報処理装置。
【請求項3】
前記データ処理部は、
ユーザ発話を入力し、入力したユーザ発話の音声認識結果を前記複数の対話実行モジュールに入力して、
前記複数の対話実行モジュールが、ユーザ発話に基づいて生成したシステム発話から1つのシステム発話を選択する請求項1に記載の情報処理装置。
【請求項4】
前記データ処理部は、
観測情報である状況情報を入力し、入力した状況情報を前記複数の対話実行モジュールに入力して、
前記複数の対話実行モジュールが、状況情報に基づいて生成したシステム発話から1つのシステム発話を選択する請求項1に記載の情報処理装置。
【請求項5】
前記データ処理部は、
前記自信度の値が最高値のシステム発話が複数、存在する場合、
予め規定された対話実行モジュール対応の優先度に従って、優先度の高い対話実行モジュールが生成したシステム発話を出力システム発話として選択する
請求項1に記載の情報処理装置。
【請求項6】
前記複数の対話実行モジュールには、
状況情報の言語化処理を実行し、該言語化処理によって生成した状況言語化データに基づいて、様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを検索してシステム発話を生成する状況言語化&RDF知識ベース対話実行モジュールが含まれる請求項1に記載の情報処理装置。
【請求項7】
前記複数の対話実行モジュールには、
入力文と応答文の組データの機械学習処理により生成された機械学習モデルを用いてシステム発話を生成する機械学習モデルベース対話実行モジュールが含まれる請求項1に記載の情報処理装置。
【請求項8】
前記データ処理部は、
入力部から音声情報を含む外部情報を入力して、各時間単位の外部状態解析情報である時間単位の状態情報を生成する状態解析部と、
前記状態情報を継続して入力し、入力した複数の状態情報に基づいて外部の状況情報を生成する状況解析部と、
前記状況解析部の生成した状況情報を入力して、情報処理装置が実行する処理を決定する処理決定部を有し、
前記処理決定部が、
前記状況情報を複数の対話実行モジュールに入力し、
前記複数の対話実行モジュールが前記状況情報に基づいて個別に生成した複数のシステム発話を取得し、
取得した複数のシステム発話から出力する1つのシステム発話を選択する請求項1に記載の情報処理装置。
【請求項9】
対話ロボットを制御するロボット制御装置と、前記ロボット制御装置と通信可能なサーバを有する情報処理システムであり、
前記ロボット制御装置は、
入力部を介して入力する状況情報を、前記サーバに出力し、
前記サーバは、
異なるシステム発話生成アルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを有し、
前記複数の対話実行モジュールの各々が、前記状況情報に基づいて個別のシステム発話を生成して、前記ロボット制御装置に送信し、
前記ロボット制御装置は、
前記サーバから受信する複数のシステム発話から1つのシステム発話を選択して出力する処理を実行し、
前記サーバが有する前記複数の対話実行モジュールは、
(a)様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したシナリオデータベースを参照してシステム発話を生成するシナリオベース対話実行モジュール、
(b)様々なエピソード情報を記録したエピソード知識データベースを参照してシステム発話を生成するエピソード知識ベース対話実行モジュール、
(c)様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを参照してシステム発話を生成するRDF知識ベース対話実行モジュール、
少なくとも上記(a)~(c)3種類の対話実行モジュールを含み、
上記(a)~(c)3種類の対話実行モジュール各々は、
システム発話の生成に成功した場合は、生成したシステム発話と、生成したシステム発話の自信度を示す0より大きい値の自信度を出力し、
システム発話の生成に失敗した場合は、システム発話を出力することなく、自信度の値として0を出力する構成であり、
前記ロボット制御装置は、
前記サーバから受信する上記(a)~(c)3種類の対話実行モジュールが個別に生成した複数のシステム発話を含む複数のシステム発話から
、自信度の値が最大である1つのシステム発話を選択して出力する情報処理システム。
【請求項10】
前記ロボット制御装置は、
前記自信度の値が最高値のシステム発話が複数、存在する場合、
予め規定された対話実行モジュール対応の優先度に従って、優先度の高い対話実行モジュールが生成したシステム発話を出力システム発話として選択する
請求項9に記載の情報処理システム。
【請求項11】
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、システム発話を生成して出力するデータ処理部を有し、
前記データ処理部が、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する処理を実行し、
前記複数の対話実行モジュールは、
(a)様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したシナリオデータベースを参照してシステム発話を生成するシナリオベース対話実行モジュール、
(b)様々なエピソード情報を記録したエピソード知識データベースを参照してシステム発話を生成するエピソード知識ベース対話実行モジュール、
(c)様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを参照してシステム発話を生成するRDF知識ベース対話実行モジュール、
少なくとも上記(a)~(c)3種類の対話実行モジュールを含み、
上記(a)~(c)3種類の対話実行モジュール各々は、
システム発話の生成に成功した場合は、生成したシステム発話と、生成したシステム発話の自信度を示す0より大きい値の自信度を出力し、
システム発話の生成に失敗した場合は、システム発話を出力することなく、自信度の値として0を出力する処理を実行し、
前記データ処理部は、
上記(a)~(c)3種類の対話実行モジュールが個別に生成した複数のシステム発話を含む複数のシステム発話から
、自信度の値が最大である1つのシステム発話を選択して出力する情報処理方法。
【請求項12】
対話ロボットを制御するロボット制御装置と、前記ロボット制御装置と通信可能なサーバを有する情報処理システムにおいて実行する情報処理方法であり、
前記ロボット制御装置は、
入力部を介して入力する状況情報を、前記サーバに出力し、
前記サーバは、異なるシステム発話生成アルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを有し、
前記複数の対話実行モジュールの各々が、前記状況情報に基づいて個別のシステム発話を生成して、前記ロボット制御装置に送信し、
前記ロボット制御装置が、
前記サーバから受信する複数のシステム発話から1つのシステム発話を選択して出力する処理を実行し、
前記サーバが有する前記複数の対話実行モジュールは、
(a)様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したシナリオデータベースを参照してシステム発話を生成するシナリオベース対話実行モジュール、
(b)様々なエピソード情報を記録したエピソード知識データベースを参照してシステム発話を生成するエピソード知識ベース対話実行モジュール、
(c)様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを参照してシステム発話を生成するRDF知識ベース対話実行モジュール、
少なくとも上記(a)~(c)3種類の対話実行モジュールを含み、
上記(a)~(c)3種類の対話実行モジュール各々は、
システム発話の生成に成功した場合は、生成したシステム発話と、生成したシステム発話の自信度を示す0より大きい値の自信度を出力し、
システム発話の生成に失敗した場合は、システム発話を出力することなく、自信度の値として0を出力する処理を実行し、
前記ロボット制御装置は、
前記サーバから受信する上記(a)~(c)3種類の対話実行モジュールが個別に生成した複数のシステム発話を含む複数のシステム発話から
、自信度の値が最大である1つのシステム発話を選択して出力する情報処理方法。
【請求項13】
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、システム発話を生成して出力するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力させ、
前記複数の対話実行モジュールは、
(a)様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したシナリオデータベースを参照してシステム発話を生成するシナリオベース対話実行モジュール、
(b)様々なエピソード情報を記録したエピソード知識データベースを参照してシステム発話を生成するエピソード知識ベース対話実行モジュール、
(c)様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを参照してシステム発話を生成するRDF知識ベース対話実行モジュール、
少なくとも上記(a)~(c)3種類の対話実行モジュールを含み、
上記(a)~(c)3種類の対話実行モジュール各々は、
システム発話の生成に成功した場合は、生成したシステム発話と、生成したシステム発話の自信度を示す0より大きい値の自信度を出力し、
システム発話の生成に失敗した場合は、システム発話を出力することなく、自信度の値として0を出力する処理を実行し、
前記プログラムは、前記データ処理部に、
上記(a)~(c)3種類の対話実行モジュールが個別に生成した複数のシステム発話を含む複数のシステム発話から
、自信度の値が最大である1つのシステム発話を選択して出力させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。さらに詳細には、ユーザ発話の音声認識結果に基づく処理を実行する情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、ユーザ発話の音声認識を行い、認識結果に基づく応答を行う音声認識システムの利用が増大している。
音声認識システムは、マイクを介して入力するユーザ発話を解析して、解析結果に応じた応答を行う。
例えばユーザが、「明日の天気を教えて」と発話した場合、天気情報提供サーバから天気情報を取得して、取得情報に基づくシステム応答を生成して、生成した応答をスピーカから出力する。具体的には、例えば、
システム発話=「明日の天気は晴れです。ただし、夕方、雷雨があるかもしれません」
このようなシステム発話を出力する。
【0003】
このようなシステム発話出力装置は、ユーザ発話の解析処理、および解析結果に基づく応答を生成するデータ処理機能を有する。このデータ処理機能を実行するモジュールは「対話実行モジュール」、あるいは「対話エンジン」等と呼ばれる。
この対話実行モジュール(対話エンジン)には様々な種類がある。
【0004】
例えば、特許文献1(特開2003-280683号公報)は、分野別の辞書を用いて専門分野に応じた対話を実現する構成を開示している。
この特許文献1に記載の技術を用いれば、辞書に記録されている分野の専門的な対話を行うことが可能となる。しかし、辞書に日常会話を行うための情報が記録されていなければ、日常的な会話はうまくできない可能性がある。
【0005】
このように、装置の利用する対話実行モジュールの種類や機能に応じて、スムーズな対話ができるケースと、対話が不自然、あるいは全く成立しなくなるといったケースが発生する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
本開示は、例えば、上記問題点に鑑みてなされたものであり、複数の異なる対話実行モジュール(対話エンジン)を選択的に利用して様々な状況に応じた最適な対話を可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示の第1の側面は、
システム発話を生成して出力するデータ処理部を有し、
前記データ処理部は、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する情報処理装置にある。
【0009】
さらに、本開示の第2の側面は、
対話ロボットを制御するロボット制御装置と、前記ロボット制御装置と通信可能なサーバを有する情報処理システムであり、
前記ロボット制御装置は、
入力部を介して入力する状況情報を、前記サーバに出力し、
前記サーバは、
異なるシステム発話生成アルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを有し、
前記複数の対話実行モジュールの各々が、前記状況情報に基づいて個別のシステム発話を生成して、前記ロボット制御装置に送信し、
前記ロボット制御装置は、
前記サーバから受信する複数のシステム発話から1つのシステム発話を選択して出力する情報処理システムにある。
【0010】
さらに、本開示の第3の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、システム発話を生成して出力するデータ処理部を有し、
前記データ処理部が、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する情報処理方法にある。
【0011】
さらに、本開示の第4の側面は、
対話ロボットを制御するロボット制御装置と、前記ロボット制御装置と通信可能なサーバを有する情報処理システムにおいて実行する情報処理方法であり、
前記ロボット制御装置は、
入力部を介して入力する状況情報を、前記サーバに出力し、
前記サーバは、異なるシステム発話生成アルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを有し、
前記複数の対話実行モジュールの各々が、前記状況情報に基づいて個別のシステム発話を生成して、前記ロボット制御装置に送信し、
前記ロボット制御装置が、
前記サーバから受信する複数のシステム発話から1つのシステム発話を選択して出力する情報処理方法にある。
【0012】
さらに、本開示の第5の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、システム発話を生成して出力するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力させるプログラムにある。
【0013】
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【0014】
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0015】
本開示の一実施例の構成によれば、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールが生成した複数のシステム発話から最適なシステム発話を選択して出力する構成が実現される。
具体的には、例えば、システム発話を生成して出力するデータ処理部が、複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する。複数の対話実行モジュールの各々は、異なるアルゴリズムに従って、アルゴリズム固有のシステム発話を生成する。データ処理部は、複数の対話実行モジュールの各々が生成したシステム発話に対応して設定される自信度や、予め規定された対話実行モジュール対応の優先度に従って出力する1つのシステム発話を選択する。
本構成により、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールが生成した複数のシステム発話から最適なシステム発話を選択して出力する構成が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
【図面の簡単な説明】
【0016】
【
図1】ユーザ発話に対する応答を行う対話ロボットの具体的な処理例について説明する図である。
【
図2】ユーザ発話に対する応答を行う対話ロボットの具体的な処理例について説明する図である。
【
図3】本開示の情報処理装置の構成例について説明する図である。
【
図4】本開示の情報処理装置の構成例について説明する図である。
【
図5】本開示の情報処理装置の実行する処理について説明する図である。
【
図6】本開示の情報処理装置の実行する処理について説明する図である。
【
図7】本開示の情報処理装置の処理決定部(意思決定部)の構成と処理について説明する図である。
【
図8】本開示の情報処理装置の処理決定部(意思決定部)が実行する処理のシーケンスについて説明するフローチャートを示す図である。
【
図9】シナリオベース対話実行モジュールが実行する処理について説明する図である。
【
図10】シナリオベース対話実行モジュールが参照するシナリオデータベースの格納データについて説明する図である。
【
図11】シナリオベース対話実行モジュールが実行する処理について説明するフローチャートを示す図である。
【
図12】エピソード知識ベース対話実行モジュールが実行する処理について説明する図である。
【
図13】エピソード知識ベース対話実行モジュールが参照するエピソード知識データベースの格納データについて説明する図である。
【
図14】エピソード知識ベース対話実行モジュールが実行する処理について説明するフローチャートを示す図である。
【
図15】RDF知識ベース対話実行モジュールが実行する処理について説明する図である。
【
図16】RDF知識ベース対話実行モジュールが参照するRDF知識データベースの格納データについて説明する図である。
【
図17】RDF知識ベース対話実行モジュールが実行する処理について説明するフローチャートを示す図である。
【
図18】状況言語化&RDF知識ベース対話実行モジュールが実行する処理について説明する図である。
【
図19】状況言語化&RDF知識ベース対話実行モジュールが実行する処理について説明するフローチャートを示す図である。
【
図20】機械学習モデルベース対話実行モジュールが実行する処理について説明する図である。
【
図21】機械学習モデルベース対話実行モジュールが実行する処理について説明するフローチャートを示す図である。
【
図22】実行処理決定部の実行する処理について説明する図である。
【
図23】実行処理決定部が利用する対話実行モジュール対応の優先度情報について説明する図である。
【
図24】実行処理決定部の実行する処理について説明するフローチャートを示す図である。
【
図25】本開示の情報処理装置の実行する対話処理シーケンスについて説明する図である。
【
図26】本開示の情報処理装置の実行する対話処理シーケンスについて説明する図である。
【
図27】情報処理装置のハードウェア構成例について説明する図である。
【発明を実施するための形態】
【0017】
以下、図面を参照しながら本開示の情報処理装置、情報処理システム、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
1.本開示の情報処理装置が実行するユーザ発話の音声認識に基づく対話処理の概要について
2.本開示の情報処理装置の構成例について
3.処理決定部(意思決定部)の具体的構成例と具体的処理例について
4.対話実行モジュール(対話エンジン)における処理の詳細について
4-1.シナリオベース対話実行モジュールによるシステム発話の生成処理について
4-2.エピソード知識ベース対話実行モジュールによるシステム発話の生成処理について
4-3.RDF知識ベース対話実行モジュールによるシステム発話の生成処理について
4-4.状況言語化&RDF知識ベース対話実行モジュールによるシステム発話の生成処理について
4-5.機械学習モデルベース対話実行モジュールによるシステム発話の生成処理について
5.実行処理決定部の実行する処理の詳細について
6.本開示の情報処理装置によるシステム発話出力例について
7.情報処理装置のハードウェア構成例について
8.本開示の構成のまとめ
【0018】
[1.本開示の情報処理装置が実行するユーザ発話の音声認識に基づく対話処理の概要について]
まず、
図1以下を参照して、本開示の情報処理装置が実行するユーザ発話の音声認識に基づく対話処理の概要について説明する。
【0019】
図1は、ユーザ1の発するユーザ発話を認識して応答を行う本開示の情報処理装置の一例である対話ロボット10の一処理例を示す図である。
対話ロボット10は、ユーザ発話、例えば、
ユーザ発話=「ビール飲みたいな」
このユーザ発話の音声認識処理を実行する。
なお、音声認識処理等のデータ処理を実行するのは、対話ロボット10自身であってもよいし、対話ロボット10と通信可能な外部装置であってもよい。
【0020】
対話ロボット10は、ユーザ発話の音声認識結果に基づく応答処理を実行する。
図1に示す例では、ユーザ発話=「ビール飲みたいな」に応答するためのデータを取得し、取得データに基づいて応答を生成して生成した応答を、対話ロボット10のスピーカを介して出力する。
【0021】
図1に示す例では、対話ロボット10は、以下のシステム応答を行っている。
システム応答=「ビールといえばベルギーだね」
なお、本明細書では、対話ロボット等の装置からの発話を「システム発話」、あるいは「システム応答」と表記して説明する。
【0022】
対話ロボット10は、装置内の記憶部から取得した知識データ、またはネットワークを介して取得した知識データを利用して応答を生成して出力する。
すなわち知識データベースを参照して、ユーザ発話に最適なシステム応答を生成して出力する。
【0023】
この
図1に示す例では、知識データベースにビールのおいしい地域情報としてベルギーが登録されており、この知識データベースの登録情報を参照して、ユーザ発話に対する最適なシステム応答を生成して出力している。
【0024】
図2は、
ユーザ発話=「ベルギーに行って何かおいしいもの食べたいな」
対話ロボット10は、このユーザ発話に対する応答として、以下のシステム応答を行っている。
システム応答=「好きな食べ物は何なの?」
【0025】
このシステム応答は、先に説明した
図1のシステム応答とは異なり、知識データベースを参照して、ユーザ発話に最適なシステム応答を生成して出力したものではない。
この
図2に示すシステム応答は、シナリオデータベースに登録されたシステム応答を利用した応答処理である。
【0026】
シナリオデータベースには、様々なユーザ発話に対応する最適なシステム発話が対応付けて登録されており、対話ロボット10は、シナリオデータベースから、ユーザ発話に一致または類似する登録データを検索し、検索した登録データに記録されたシステム応答データを取得して、取得したシステム応答を出力する。
この結果として、
図2に示すようなシステム応答を行うことができる。
【0027】
対話ロボット10は、
図1と
図2の対話処理では、異なるアルゴリズムに従った処理を行ってシステム応答を生成して出力している。
例えば、
図2に示すユーザ発話、
ユーザ発話=「ベルギーに行って何かおいしいもの食べたいな」、
このユーザ発話に対して
図1に示す処理と同様、知識データベースを参照してシステム発話を生成した場合、例えば以下のようなシステム発話が生成されることが予想される。
システム発話=「ベルギーはチョコレートがおいしいですよ」
【0028】
このように、対話ロボット10側で実行するシステム応答の生成アルゴリズムが異なると、同じユーザ発話に対する応答の内容が全く異なることになる可能性が高い。
また、1つの応答生成アルゴリズムのみを利用した対話処理を行うと、最適なシステム応答を生成できず、ユーザ発話に対して全く検討違いのシステム発話を行ってしまう場合がある。あるいはシステム応答ができなくなる場合もある。
【0029】
本開示は、このような問題点を解決するものであり、複数の異なる対話実行モジュール(対話エンジン)を選択的に利用して様々な状況に応じた最適な対話を実現する。
すなわち、
図1に示すように知識データベースを利用した応答生成処理や、
図2に示すようにシナリオデータベースを利用した応答生成処理等、状況に応じて応答生成アルゴリズムを変更して最適なシステム発話を行うことを可能としたものである。
【0030】
[2.本開示の情報処理装置の構成例について]
次に、本開示の情報処理装置の構成例について説明する。
【0031】
図3は、本開示の情報処理装置の構成例を示す図である。
図3には、
(1)情報処理装置構成例1
(2)情報処理装置構成例2
これら2つの情報処理装置構成例を示している。
【0032】
(1)の情報処理装置構成例1は、対話ロボット10単体の構成である。対話ロボット10がマイクを介して入力するユーザ発話の音声認識処理、システム発話の生成処理等、全ての処理を実行する構成である。
【0033】
(2)の情報処理装置構成例2は、対話ロボット10と、対話ロボット10に接続された外部装置によって構成される装置である。外部装置は、例えば、サーバ21、PC22、スマホ23等である。
【0034】
この構成では、対話ロボット10のマイクから入力したユーザ発話を外部装置に転送し、外部装置でユーザ発話の音声認識を行う。外部装置は、さらに音声認識結果に基づくシステム発話を生成する。外部装置は、生成したシステム発話を対話ロボット10に送信し、対話ロボット10がスピーカを介して出力する。
【0035】
なお、このような対話ロボット10と外部装置からなるシステム構成では、対話ロボット10側で実行する処理と、外部装置側で実行する処理の処理区分は様々な設定が可能である。
【0036】
次に、
図4を参照して本開示の情報処理装置の具体的構成例について説明する。
図4は、本開示の情報処理装置100の一構成例を示す図である。
情報処理装置100は、データ入出力部110と、ロボット制御部150に区分される。
【0037】
データ入出力部110は、
図1他に示す対話ロボット内に構成される構成要素である。
一方、ロボット制御部150は、
図1他に示す対話ロボット内に構成することも可能であるが、ロボットと通信可能な外部装置内に構成することも可能な構成要素である。外部装置とは、例えばクラウド上のサーバや、PC、あるいはスマホ(スマートフォン)等の装置である。これら装置の1つ、あるいは複数装置を利用した構成としてもよい。
【0038】
データ入出力部110と、ロボット制御部150が異なる装置である場合、データ入出力部110と、ロボット制御部150は各々、通信部を有しており、双方の通信部を介して、相互にデータ入出力を実行する。
【0039】
なお、
図4には、本開示の処理を説明するために必要となる主要要素のみを示してある。データ入出力部110と、ロボット制御部150の各々は、例えばそれぞれの実行処理を制御する制御部や様々なデータを記憶する記憶部、さらにユーザ操作部、通信部等を有するが、これらの構成については図には示していない。
【0040】
以下、データ入出力部110と、ロボット制御部150の主要構成要素について説明する。
データ入出力部110は入力部120と出力部130を有する。
入力部120は、音声入力部(マイク)121、画像入力部(カメラ)122、センサ部123を有する。
出力部130は音声出力部(スピーカ)131、駆動制御部132を有する。
【0041】
入力部120の音声入力部(マイク)121は、ユーザ発話等の音声を入力する。
画像入力部(カメラ)122は、ユーザの顔画像等の画像を撮影する。
センサ部123は、例えば、距離センサ、温度センサ、照度センサ等、様々なセンサによって構成される。
これら入力部120の取得データは、ロボット制御部150のデータ処理部160内の状態解析部161に入力される。
【0042】
なお、データ入出力部110と、ロボット制御部150が異なる装置によって構成されている場合、入力部120の取得データは、データ入出力部110から通信部を介してロボット制御部150に送信される。
【0043】
次に、データ入出力部110の出力部130について説明する。
出力部130の音声出力部(スピーカ)131は、ロボット制御部150のデータ処理部160内の対話処理部164が生成したシステム発話を出力する。
駆動制御部132は、対話ロボットを駆動する。例えば、
図1に示す対話ロボット10は、タイヤ他の駆動部を有しており、移動することができる。
例えばユーザに近づいていく等の移動処理を行うことができる。このような移動等の駆動処理は、ロボット制御部150のデータ処理部160のアクション処理部165からの駆動命令に従って実行される。
【0044】
次に、ロボット制御部150の構成について説明する。
前述したように、ロボット制御部150は、
図1他に示す対話ロボット10内に構成することも可能であるが、ロボットと通信可能な外部装置内に構成することも可能である。
外部装置とは、例えばクラウド上のサーバや、PC、あるいはスマホ(スマートフォン)等の装置である。これら装置の1つ、あるいは複数装置を利用した構成としてもよい。
【0045】
ロボット制御部150は、データ処理部160、通信部170を有する。通信部170は、外部サーバと通信可能な構成である。外部サーバは、例えば知識データベース等、システム発話の生成に利用可能な様々なデータベースを保持したサーバである。
【0046】
なお、先に説明したように、図には示していないが、ロボット制御部150は、ロボット制御部150の各部の処理を制御する制御部、記憶部、データ入出力部110と通信する通信部等も有している。
【0047】
データ処理部160は、状態解析部161、状況解析部162、処理決定部(意思決定部)163、対話処理部164、アクション処理部165を有している。
【0048】
状態解析部161は、データ入出力部110の入力部120の音声入力部(マイク)121、画像入力部(カメラ)122、センサ部123、これら入力部120からの入力情報を入力して、入力情報に基づく状態解析を実行する。
【0049】
具体的には、音声入力部(マイク)121を介して入力するユーザ発話音声の解析を実行する。また、画像入力部(カメラ)122から入力する画像データを解析して、ユーザ顔画像に基づくユーザ識別処理、ユーザの状態解析処理等を実行する。
なお、状態解析部161は、予めユーザ顔画像を登録したユーザDBを参照してユーザ顔画像に基づくユーザ識別処理を実行する。ユーザDBは、データ処理部160のアクセス可能な記憶部に格納されている。
【0050】
状態解析部161は、さらにセンサ部123から入力するセンサ情報に基づいて、ユーザとの距離や、現在の温度、明るさ等の状態を解析する。
【0051】
状態解析部161は、入力部120の音声入力部(マイク)121、画像入力部(カメラ)122、センサ部123、これら入力部構成要素の取得情報を逐次、解析し、解析した状態情報を、状況解析部152に出力する。
【0052】
すなわち、状態解析部161は、時間t1に取得した状態、時間t2に取得した状態、時間t3に取得した状態、これら時系列の状態情報を随時、状況解析部152に出力する。
状態解析部161は、例えば状態情報取得時間を示すタイムスタンプを付与した状態情報を、随時、状況解析部152に出力する。
【0053】
状態解析部161が解析する状態情報には、自装置の状態、人の状態、モノの状態、場の状態の各状態を示す情報が含まれる。
自装置の状態情報としては、例えば、自装置、すなわちデータ入出力部110を有する対話ロボットが充電中であるといった情報や、最後に実行した行動、バッテリ残量、装置温度、転んでる、歩いてる、現在の感情状態など、様々な状態情報が含まれる。
【0054】
人の状態情報には、例えば、カメラ撮影画像に含まれる人の名前、人の表情、人の位置、角度、喋っている、喋っていない、人の発話テキスト等の状態情報等が含まれる。
【0055】
モノの状態情報には、例えば、カメラ撮影画像に含まれるモノの識別結果、モノを最後に認識した時刻,場所(角度,距離)等の情報等が含まれる。
場の状態情報には、その場の明るさ、気温、室内か屋外か等の情報が含まれる。
【0056】
状態解析部161は、これら様々な情報によって構成される状態情報を、音声入力部(マイク)121、画像入力部(カメラ)122、センサ部123の取得情報に基づいて逐次、生成し、生成した状態情報を情報取得時の時間情報を示すタイムスタンプとともに状況解析部152に出力する。
【0057】
状況解析部162は、状態解析部161から遂次入力する各時間単位の状態情報に基づいて、状況情報を生成し、生成した状況情報を処理決定部(意思決定部)163に出力する。
なお、状況解析部162は、処理決定部(意思決定部)163内の対話実行モジュール(対話エンジン)が解釈可能なデータ形式を持つ状況情報を生成する。
【0058】
状況解析部162は、例えば音声入力部(マイク)121から状態解析部161を介して入力するユーザ発話の音声認識処理を実行する。
なお、状況解析部162におけるユーザ発話の音声認識処理は、例えばASR(Automatic Speech Recognition)等を適用した音声データのテキストデータへの変換処理等が含まれる。
【0059】
処理決定部(意思決定部)163は、複数の異なるアルゴリズムに従ったシステム発話を生成する複数の対話実行モジュール(対話エンジン)が生成したシステム発話から1つのシステム発話を選択する処理等を実行する。
【0060】
複数の異なるアルゴリズムに従ったシステム発話を生成する複数の対話実行モジュール(対話エンジン)の各々は、状況解析部162が生成した状況情報に基づいてシステム発話を生成する。
なお、複数の対話実行モジュール(対話エンジン)は、処理決定部(意思決定部)163の内部に構成してもよいし、外部サーバ内に構成されていてもよい。
【0061】
状態解析部161と、状況解析部162の実行する処理の具体例について、
図5、
図6を参照して説明する。
図5は、状態解析部161が生成したある時間t1の状態情報の一例を示している。
【0062】
すなわち、状態解析部161は、時間t1において、データ入出力部110の入力部120の音声入力部(マイク)121、画像入力部(カメラ)122、センサ部123、これら入力部構成要素の取得情報を入力し、入力情報に基づいて、以下の状態情報を生成する。
状態情報=「タナカがこっちを向いて正面にいる。タナカが喋っている。知らない人が遠くにいる。ペットボトルが左斜め前にある。・・・」
【0063】
状態解析部161は、例えば、このような状態情報を生成する。
状態解析部161が生成したこの状態情報は、逐次、タイムスタンプとともに状況解析部162に入力される。
【0064】
図6を参照して、状況解析部162の具体的処理例について説明する。状況解析部162は、状態解析部161が生成した複数の状態情報、すなわち時系列状態情報に基づいて状況情報を生成する。例えば、
図6に示すような以下の状況情報が生成される。
状況情報=「タナカがこっちを向いた。知らない人が現れた。タナカが「腹減ったなあ」と言った。」
【0065】
状況解析部162の生成した状況情報が、処理決定部(意思決定部)163に出力される。
処理決定部(意思決定部)163は、この状況情報を、複数の異なるアルゴリズムに従ったシステム発話を生成する複数の対話実行モジュール(対話エンジン)に転送する。
複数の対話実行モジュール(対話エンジン)の各々は、状況解析部162が生成した状況情報に基づいて、各モジュール固有のシステム発話生成アルゴリズムを実行して、個別にシステム発話を生成する。
【0066】
処理決定部(意思決定部)163は、複数の対話実行モジュール(対話エンジン)の各々が生成した複数のシステム発話の中から、出力する1つのシステム発話を選択する。
【0067】
複数の対話実行モジュール(対話エンジン)の各々が異なるアルゴリズムを適用して生成するシステム発話は異なる発話となるが、処理決定部(意思決定部)163は、これらの複数のシステム発話から出力すべき1つのシステム発話を選択する処理等を実行する。
この処理決定部(意思決定部)163の実行するシステム発話の生成、選択処理の具体例については、後段で詳細に説明する。
【0068】
さらに、処理決定部(意思決定部)163は、システム発話のみならず、ロボット装置のアクション、すなわち駆動制御情報も生成する。
【0069】
処理決定部(意思決定部)163が決定したシステム発話は、対話処理部164に出力される。
また、処理決定部(意思決定部)163が決定したロボット装置のアクションは、アクション処理部165に出力される。
【0070】
対話処理部164は、処理決定部(意思決定部)163が決定したシステム発話に基づく発話テキストを生成して、出力部130の音声出力部(スピーカ)131を制御してシステム発話を出力する。
【0071】
一方、アクション処理部165は、処理決定部(意思決定部)163が決定したロボット装置のアクションに基づく駆動情報を生成して、出力部130の駆動制御部132を制御してロボットを駆動させる。
【0072】
[3.処理決定部(意思決定部)の具体的構成例と具体的処理例について]
次に、処理決定部(意思決定部)163の具体的構成例と具体的処理例について説明する。
【0073】
前述したように、処理決定部(意思決定部)163は、複数の対話実行モジュール(対話エンジン)の各々が生成した複数のシステム発話の中から、出力する1つのシステム発話を選択する。
【0074】
複数の異なるアルゴリズムに従ったシステム発話を生成する複数の対話実行モジュール(対話エンジン)の各々は、状況解析部162の生成した状況情報、具体的には例えば状況情報に含まれるユーザ発話に基づいて、次に実行すべきシステム発話を生成する。
【0075】
図7に処理決定部(意思決定部)163の具体的構成例を示す。
図7に示す例は、処理決定部(意思決定部)163内に、以下の5つの対話実行モジュール(対話エンジン)を有する構成例である。
(1)シナリオベース対話実行モジュール201
(2)エピソード知識ベース対話実行モジュール202
(3)RDF(Resource Description Framework)知識ベース対話実行モジュール203
(4)状況言語化&RDF知識ベース対話実行モジュール204
(5)機械学習モデルベース対話実行モジュール205
これら5つの対話実行モジュール(対話エンジン)は、並列処理を実行して、各々、異なるアルゴリズムでシステム応答を生成する。
【0076】
なお、
図7には、5つの対話実行モジュール(対話エンジン)201~205を処理決定部(意思決定部)163内に構成した例を示しているが、これら5つの対話実行モジュール(対話エンジン)201~205は、外部サーバ等の外部装置に個別に構成された構成でもよい、
【0077】
この場合、処理決定部(意思決定部)163は、通信部170を介して外部サーバ等の外部装置と通信を実行する。処理決定部(意思決定部)163は、状況解析部162の生成した状況情報、具体的には例えば状況情報に含まれるユーザ発話等の状況情報を、通信部170を介して外部サーバ等の外部装置に送信する。
外部サーバ等の外部装置内の対話実行モジュール(対話エンジン)は、受信したユーザ発話等の状況情報に基づいて、各モジュール固有のアルゴリズムに従ってシステム発話を生成して処理決定部(意思決定部)163に送信する。
【0078】
処理決定部(意思決定部)163内、または外部装置に構成された5つの対話実行モジュール(対話エンジン)201~205の生成したシステム発話は、
図7に示す処理決定部(意思決定部)163内の実行処理決定部210に入力される。
【0079】
実行処理決定部210は、5つのモジュールが生成したシステム発話を入力し、入力したシステム発話から、出力すべき1つのシステム発話を選択する。
選択したシステム発話が、対話処理部164に出力され、テキスト化されて音声出力部(スピーカ)131を介して出力される。
【0080】
なお、5つのモジュール201~205は、それぞれのアルゴリズムに従ってシステム発話の生成処理を行うが、必ずしも全てのモジュールがシステム発話の生成に成功するとは限らない。例えば5つのモジュールの全てがシステム発話の生成に失敗する場合もある。このような場合には、実行処理決定部210は、ロボットのアクションを決定し、決定したアクションをアクション処理部165に出力する。
【0081】
アクション処理部165は、処理決定部(意思決定部)163が決定したロボット装置のアクションに基づく駆動情報を生成して、出力部130の駆動制御部132を制御してロボットを駆動させる。
【0082】
なお、処理決定部(意思決定部)163には、状況解析部162の生成した状況情報が直接入力されており、この状況情報、例えばユーザ発話以外の状況情報に基づいて、ロボットのアクションを決定する場合もある。
【0083】
次に、
図8を参照して処理決定部(意思決定部)163の実行する処理の処理シーケンスについて説明する。
図8は、処理決定部(意思決定部)163の実行する処理のシーケンスについて説明するフローチャートを示す図である。
【0084】
このフローに従った処理は、情報処理装置100のロボット制御部150の記憶部に格納されたプログラムに従って実行することが可能であり、例えばプログラム実行機能を有するCPU等のプロセッサを有する制御部(データ処理部)の制御下で実行することができる。
以下、
図8に示すフローの各ステップの処理について説明する。
【0085】
(ステップS101)
まず、ステップS101において、処理決定部(意思決定部)163は、状況が更新された、または、ユーザ発話テキストを入力したか否かを判定する。
具体的には、状況解析部162から、新たな状況情報、またはユーザ発話が処理決定部(意思決定部)163に入力されたか否かを判定する。
【0086】
状況解析部162から、新たな状況情報、またはユーザ発話が処理決定部(意思決定部)163に入力されていないと判定した場合はステップS101に留まる。
状況解析部162から、新たな状況情報、またはユーザ発話が処理決定部(意思決定部)163に入力されたと判定した場合は、ステップS102に進む。
【0087】
(ステップS102)
状況解析部162から、新たな状況情報、またはユーザ発話が処理決定部(意思決定部)163に入力されたと判定した場合、処理決定部(意思決定部)163は、ステップS102.において、既定アルゴリズムに従い、システム発話の実行要否を決定する。
【0088】
既定アルゴリズムとは、具体的には、例えば、ユーザ発話が入力されている場合は、システム発話を実行し、ユーザ発話が入力されていない場合、すなわち状況変化のみの場合は、2回に1回の頻度でシステム発話を実行するといったアルゴリズムである。
【0089】
(ステップS103)
ステップS102におけるシステム発話の実行要否決定処理において、システム発話を実行すると決定した場合は、ステップS111~S115の処理を並列に実行する。
このステップS111~S115の処理は、異なる対話実行モジュール(対話エンジン)を使用したシステム発話の生成処理である。
【0090】
一方、ステップS102におけるシステム発話の実行要否決定処理において、システム発話を実行しないと決定した場合は、ステップS104の処理を実行する。
【0091】
(ステップS104)
ステップS102におけるシステム発話の実行要否決定処理において、システム発話を実行しないと決定した場合は、ステップS104に進み、システム発話の出力を行わない。
【0092】
なお、この場合、処理決定部(意思決定部)163は、対話ロボットに例えば移動処理等のアクションを実行させるようにアクション処理部165に指示を出力してもよい。
【0093】
(ステップS111~S115)
ステップS102におけるシステム発話の実行要否決定処理において、システム発話を実行すると決定した場合は、ステップS111~S115の処理を並列に実行する。
前述したように、ステップS111~S115の処理は、異なる対話実行モジュール(対話エンジン)を使用したシステム発話の生成処理である。
【0094】
ステップS111~S115では、以下の5つの処理を並列に実行する。
(S111)シナリオベース対話実行モジュールによるシステム発話の生成(+発話自信度)(シナリオDBを参照した処理を実行)
(S112)エピソード知識ベース対話実行モジュールによるシステム発話の生成(+発話自信度)(エピソード知識DBを参照した処理を実行)
(S113)RDF知識ベース対話実行モジュールによるシステム発話の生成(+発話自信度)(RDF知識DBを参照した処理を実行)
(S114)状況言語化処理を伴うRDF知識ベース対話実行モジュールによるシステム発話の生成(+発話自信度)(RDF知識DBを参照した処理を実行)
(S115)機械学習モデルベース対話実行モジュールによるシステム発話の生成(+発話自信度)(機械学習モデルを参照した処理を実行)
【0095】
これら5つの処理は、異なる対話実行モジュール(対話エンジン)201~205を使用したシステム発話の生成処理である。
前述したように、これら5つの対話実行モジュール(対話エンジン)201~205による処理は、
図4に示すロボット制御部150のデータ処理部160内で実行してもよいし、通信部170を介して接続された外部サーバ等の外部装置を利用して実行してもよい。
【0096】
対話実行モジュール(対話エンジン)201~205の実行する5つの処理の詳細については、後段で説明する。
ステップS111~115では、5つの異なる対話実行モジュール(対話エンジン)201~205による異なるアルゴリズムを適用したシステム発話生成処理が実行される。
各対話実行モジュール(対話エンジン)は、1つの同じ状況情報、例えば1つの同じユーザ発話に対応するシステム発話を生成するが、アルゴリズムが異なるため、各モジュールは異なるシステム発話を生成する。また、モジュールによってはシステム発話の生成に失敗する場合もある。
【0097】
5つの対話実行モジュール(対話エンジン)はステップS111~S115のシステム発話生成に際して、生成したシステム発話の自信度を示す指標値である自信度(Confidence)の値も併せて生成して、実行処理決定部210に出力する。
【0098】
各対話実行モジュール(対話エンジン)は、例えば、システム発話の生成に成功した場合は、自信度(confidence)=1.0を出力し、システム発話の生成に失敗した場合は、自信度=0.0を出力する。
ただし、過去に何度も繰り返した発話の場合や、作成したシステム発話文の確度が低いときなどは、自信度=0.0~1.0の値、例えば0.5等の値を出力する設定としてもよい。
【0099】
(ステップS121)
ステップS111~S115の処理後、
図7に示す処理決定部(意思決定部)163の実行処理決定部210は、複数の対話実行モジュール(対話エンジン)201~205から、それぞれ異なるアルゴリズムに基づいて生成された複数の異なるシステム発話を入力する。
【0100】
実行処理決定部210は、ステップS121において、複数の対話実行モジュール(対話エンジン)から入力した複数のシステム発話から自信度の値が最高の1つのシステム発話を選択して、対話ロボットが出力するシステム発話とする。
【0101】
なお、複数の対話実行モジュール(対話エンジン)から入力された自信度の値が等しい場合は、予め設定されている対話実行モジュール(対話エンジン)単位の優先度に従って、対話ロボットが出力するシステム発話を決定する。この処理の詳細については後段で説明する。
【0102】
なお、各対話実行モジュール(対話エンジン)201~205は、システム発話のみを出力し、自信度(confidence)の値は出力しない構成としてもよい。
この構成の場合、実行処理決定部210側で以下の処理を実行する。
対話実行モジュール(対話エンジン)からシステム発話が入力された場合は、そのシステム発話の自信度=1.0と設定し、対話実行モジュール(対話エンジン)からシステム発話が入力されなかった場合は、システム発話の自信度=0.0とする。
【0103】
実行処理決定部210は、ステップS121において、複数の対話実行モジュール(対話エンジン)から入力した複数のシステム発話の中から、1つのシステム発話を出力するシステム発話として選択する。
この選択処理は、各モジュールの生成したシステム発話に対応付けられた自信度の値と、予め設定された各モジュールの優先度を考慮して実行される。
この処理の詳細については後段で説明する。
【0104】
(ステップS122)
最後に、ステップS122において、処理決定部(意思決定部)163は、ステップS121で選択した1つのシステム発話を対話ロボットから出力させる。
【0105】
具体的には、処理決定部(意思決定部)163が決定したシステム発話が対話処理部164に出力される。対話処理部164は、入力したシステム発話に基づく発話テキストを生成して、出力部130の音声出力部(スピーカ)131を制御してシステム発話を出力する。
【0106】
[4.対話実行モジュール(対話エンジン)における処理の詳細について]
次に、
図8に示すフローのステップS111~S115において実行する異なる対話実行モジュール(対話エンジン)201~205を使用したシステム発話の生成処理の詳細について説明する。
【0107】
なお、前述したように、
図8に示すフローのステップS111~S115では、以下の5つの処理が並列に実行される。
(S111)シナリオベース対話実行モジュール201によるシステム発話の生成(+発話自信度)(シナリオDBを参照した処理を実行)
(S112)エピソード知識ベース対話実行モジュール202によるシステム発話の生成(+発話自信度)(エピソード知識DBを参照した処理を実行)
(S113)RDF知識ベース対話実行モジュール203によるシステム発話の生成(+発話自信度)(RDF知識DBを参照した処理を実行)
(S114)状況言語化処理を伴うRDF知識ベース対話実行モジュール204によるシステム発話の生成(+発話自信度)(RDF知識DBを参照した処理を実行)
(S115)機械学習モデルベース対話実行モジュール205によるシステム発話の生成(+発話自信度)(機械学習モデルを参照した処理を実行)
【0108】
前述したように、これら5つの処理は、
図4に示すロボット制御部150のデータ処理部160内で実行してもよいし、通信部170を介して接続された外部サーバ等の外部装置で実行してもよい。
例えば、5つの外部サーバが、各々ステップS111~S115の5つの処理を実行して、処理結果を
図4に示すロボット制御部150のデータ処理部160内の処理決定部(意思決定部)163が受信する構成としてもよい。
【0109】
以下、これら5つの対話実行モジュール(対話エンジン)201~205の実行する処理の詳細について、順次、説明する。
(4-1.シナリオベース対話実行モジュールによるシステム発話の生成処理について)
まず、
図8に示すフローのステップS111において実行するシナリオベース対話実行モジュール201によるシステム発話の生成処理について説明する。
【0110】
シナリオベース対話実行モジュール201によるシステム発話の生成処理の詳細について、
図9を参照して説明する。
図9には、シナリオベース対話実行モジュール201を示している。シナリオベース対話実行モジュール201は、
図9に示すシナリオDB(データベース)211に格納されたシナリオデータを参照してシステム発話を生成する。
シナリオDB(データベース)211は、ロボット制御部150内、または外部サーバ等の外部装置に設置されたデータベースである。
【0111】
なお、シナリオベース対話実行モジュール201や、シナリオDB(データベース)211は、
図4に示す情報処理装置100のロボット制御部150内に構成してもよいが、情報処理装置100と通信可能な外部サーバが有する構成でもよい。
【0112】
シナリオベース対話実行モジュール201は、
図9に示すステップS11~S14の順に処理を実行する。すなわち、シナリオベースのシステム発話生成アルゴリズムを実行してシナリオベースのシステム発話を生成する。
まず、ステップS11において、状況解析部162からユーザ発話を入力する。
例えば、以下のユーザ発話を入力する。
ユーザ発話=「おはようございまーす」
【0113】
次に、ステップS12において、シナリオベース対話実行モジュール201は、入力したユーザ発話と、シナリオDB登録データとのマッチング処理を実行する。
【0114】
シナリオDB(データベース)211は、様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したデータベースである。
シナリオDB(データベース)211の登録データの具体例を
図10に示す。
図10に示すように、シナリオDB(データベース)211には、様々な対話シナリオ(シナリオID=1,2,・・・)ごとにユーザ発話とシステム発話の発話組みデータが登録されている。
【0115】
各エントリには、あるユーザ発話に応じて対話ロボット(システム)が実行すべき最適なシステム発話が登録されている。
このシナリオDBは、様々な対話シナリオに応じて、ユーザ発話に応じた最適なシステム発話を予め登録したデータベースである。
【0116】
シナリオベース対話実行モジュール201は、ステップS12において、入力したユーザ発話に一致または類似するユーザ発話が、シナリオDBに登録されていないかの検索処理、すなわち、入力ユーザ発話とDB登録データとのマッチング処理を実行する。
【0117】
次に、ステップS13において、シナリオベース対話実行モジュール201は、入力ユーザ発話に対するマッチング率が最も高いシナリオDB登録データを取得する。
図10に示すシナリオDB(データベース)211には、
シナリオID=(S1)の登録データとして、
ユーザ発話=おはよう/システム発話=おはよう、今日も頑張ろう
が登録されている。
【0118】
ステップS13において、シナリオベース対話実行モジュール201は、このデータベース登録データを取得する。
すなわち、シナリオDB(データベース)211から以下のシステム発話を取得する。
システム発話=「おはよう、今日も頑張ろう」
【0119】
次に、シナリオベース対話実行モジュール201は、ステップS14において、シナリオDB(データベース)211から取得したシステム発話を、
図7に示す実行処理決定部210に出力する。
【0120】
なお、このシステム発話出力に際して、シナリオベース対話実行モジュール201は、出力したシステム発話の自信度を示す指標値である自信度(Confidence)の値、例えば自信度=0.0~1.0を生成してシステム発話に併せて実行処理決定部210に出力する構成としてもよい。
例えば、システム発話の生成に成功した場合は、自信度(confidence)=1.0を出力し、システム発話の生成に失敗した場合は、自信度=0.0を出力する。
なお、前述したように各対話実行モジュール(対話エンジン)は、システム発話のみを出力し、自信度(confidence)の値は出力しない構成も可能である。
【0121】
次に、
図11に示すフローチャートを参照して、シナリオベース対話実行モジュール201の実行する処理シーケンスについて説明する。
図11に示すフローの各ステップの処理について、順次、説明する。
【0122】
(ステップS211)
まず、ステップS211において、状況解析部162からユーザ発話を入力したか否かを判定し、入力したと判定した場合はステップS212に進む。
【0123】
(ステップS212)
次に、ステップS212において、シナリオベース対話実行モジュール201は、入力したユーザ発話と一致または類似するユーザ発話データがシナリオDB211に登録されているか否かを判定する。
【0124】
シナリオDB(データベース)211は、先に
図10を参照して説明したように、様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したデータベースである。
シナリオベース対話実行モジュール201は、ステップS212において、入力したユーザ発話に一致または類似するユーザ発話が、シナリオDB211に登録されていないかの検索処理、すなわち、入力ユーザ発話とDB登録データとのマッチング処理を実行する。
【0125】
入力したユーザ発話に一致または類似するユーザ発話が、シナリオDB211に登録されていると判定した場合は、ステップS213に進む。
入力したユーザ発話に一致または類似するユーザ発話が、シナリオDB211に登録されていないと判定した場合は、ステップS214に進む。
【0126】
(ステップS213)
ステップS212において、入力したユーザ発話に一致または類似するユーザ発話が、シナリオDB211に登録されていると判定した場合は、ステップS213に進む。
【0127】
ステップS213において、シナリオベース対話実行モジュール201は、シナリオDB211から、入力ユーザ発話に対するマッチング率が最も高いシナリオDBの登録ユーザ発話に対応して記録されたシステム発話を取得して、取得したシステム発話を、
図7に示す実行処理決定部210に出力する。
【0128】
なお、このシステム発話の出力に併せて、取得したシステム発話の自信度を示す指標値である自信度(Confidence)の値も併せて実行処理決定部210に出力してもよい。
この場合、システム発話の生成(取得)に成功しているので、自信度=1.0の値を出力する。
【0129】
(ステップS214)
一方、ステップS212において、入力したユーザ発話に一致または類似するユーザ発話が、シナリオDB211に登録されていないと判定した場合は、ステップS214に進む。
【0130】
ステップS214において、シナリオベース対話実行モジュール201は、実行処理決定部210に対するシステム発話の出力を実行しない。
なお、システム発話の自信度を示す指標値である自信度(Confidence)の値を出力する場合は、システム発話の生成(取得)に失敗しているので、自信度=0.0の値を実行処理決定部210に出力する。
【0131】
(4-2.エピソード知識ベース対話実行モジュールによるシステム発話の生成処理について)
次に、
図8に示すフローのステップS112において実行するエピソード知識ベース対話実行モジュール202によるシステム発話の生成処理について説明する。
【0132】
エピソード知識ベース対話実行モジュール202によるシステム発話の生成処理の詳細について、
図12を参照して説明する。
図12には、エピソード知識ベース対話実行モジュール202を示している。エピソード知識ベース対話実行モジュール202は、
図12に示すエピソード知識DB(データベース)212に格納されたエピソード知識データを参照してシステム発話を生成する。
エピソード知識DB(データベース)212は、ロボット制御部150内、または外部サーバ等の外部装置に設置されたデータベースである。
【0133】
なお、エピソード知識ベース対話実行モジュール202や、エピソード知識DB(データベース)212は、
図4に示す情報処理装置100のロボット制御部150内に構成してもよいが、情報処理装置100と通信可能な外部サーバが有する構成でもよい。
【0134】
エピソード知識ベース対話実行モジュール202は、
図12に示すステップS21~S24の順に処理を実行する。すなわち、エピソード知識ベースのシステム発話生成アルゴリズムを実行してエピソード知識ベースのシステム発話を生成する。
まず、ステップS21において、状況解析部162からユーザ発話を入力する。
例えば、以下のユーザ発話を入力する。
ユーザ発話=「織田信長は桶狭間で何したんだっけ」
【0135】
次に、ステップS22において、エピソード知識ベース対話実行モジュール202は、入力したユーザ発話に基づいて、エピソード知識DB212の登録データの検索処理を実行する。
【0136】
エピソード知識DB(データベース)212は、様々なエピソード、例えば歴史的な事実、ニュース、さらにユーザ関連の周囲の出来事等の様々なエピソード情報を記録したデータベースである。なお、このエピソード知識DB212は逐次、更新される。例えば対話ロボットのデータ入出力部120の入力部120を介して入力される情報に基づいて更新される。
【0137】
エピソード知識DB(データベース)212の登録データの具体例を
図13に示す。
図13に示すように、エピソード知識DB(データベース)212には、様々な対話エピソード(エピソードID(Ep_id)=1,2,・・・)ごとに、エピソード詳細を示すデータが記録されている。
【0138】
具体的には、エピソード単位で、以下のような情報が記録される。
When,Who,Where=いつ、どこで、誰が
Action,State=何をしたか、どういう状態だったか
Target=何に/何を
with=誰と
Why,How=なぜ、どのように,目的
Cause=その結果どうなったか
これらの情報をエピソード単位で記録したデータベースがエピソード知識DB(データベース)212である。
【0139】
エピソード知識DB(データベース)212の登録情報を参照することで、様々なエピソードに関する詳細情報を知ることができる。
【0140】
エピソード知識ベース対話実行モジュール202は、ステップS22において、入力したユーザ発話に基づいて、エピソード知識DB登録データの検索処理を実行する。
以下のユーザ発話を入力した場合の処理について説明する。
ユーザ発話=「織田信長は桶狭間で何したんだっけ」
【0141】
この場合、ステップS23において、エピソード知識ベース対話実行モジュール202は、
図13に示すエピソード知識DB登録データから、エピソードID(Ep_id)=Ep1のエントリを、ユーザ発話に含まれる語句に一致する語句が最も含まれるエピソードとして抽出する。
【0142】
次に、エピソード知識ベース対話実行モジュール202は、ステップS24において、エピソード知識DB(データベース)212から取得したエピソードID(Ep_id)=Ep1のエントリに含まれるエピソード詳細情報に基づいてシステム発話を生成して、
図7に示す実行処理決定部210に出力する。
例えば、以下のようなシステム発話を生成して実行処理決定部210に出力する。
システム発話=「今川義元を奇襲で破ったよ」
【0143】
なお、このシステム発話出力に際して、エピソード知識ベース対話実行モジュール202は、出力したシステム発話の自信度を示す指標値である自信度(Confidence)の値、例えば自信度=0.0~1.0を生成してシステム発話に併せて実行処理決定部210に出力する構成としてもよい。
例えば、システム発話の生成に成功した場合は、自信度(confidence)=1.0を出力し、システム発話の生成に失敗した場合は、自信度=0.0を出力する。
なお、前述したように各対話実行モジュール(対話エンジン)は、システム発話のみを出力し、自信度(confidence)の値は出力しない構成も可能である。
【0144】
次に、
図14に示すフローチャートを参照して、エピソード知識ベース対話実行モジュール202の実行する処理シーケンスについて説明する。
図14に示すフローの各ステップの処理について、順次、説明する。
【0145】
(ステップS221)
まず、ステップS221において、状況解析部162からユーザ発話を入力したか否かを判定し、入力したと判定した場合はステップS222に進む。
【0146】
(ステップS222)
次に、ステップS222において、エピソード知識ベース対話実行モジュール202は、入力したユーザ発話に含まれる語句と一致または類似する語句を含むエピソードデータがエピソード知識DB212に登録されているか否かを判定する。
【0147】
エピソード知識DB(データベース)212は、先に
図13を参照して説明したように、様々な対話エピソードに関する詳細情報を登録したデータベースである。
エピソード知識ベース対話実行モジュール202は、ステップS222において、入力したユーザ発話に含まれる語句と一致または類似する語句を含むエピソードデータがエピソード知識DB212に登録されているか否かを判定する。
【0148】
入力したユーザ発話に含まれる語句と一致または類似する語句を含むエピソードデータがエピソード知識DB212に登録されていると判定した場合は、ステップS223に進む。
入力したユーザ発話に含まれる語句と一致または類似する語句を含むエピソードデータがエピソード知識DB212に登録されていないと判定した場合は、ステップS224に進む。
【0149】
(ステップS223)
ステップS222において、入力したユーザ発話に含まれる語句と一致または類似する語句を含むエピソードデータがエピソード知識DB212に登録されていると判定した場合は、ステップS223に進む。
【0150】
ステップS223において、エピソード知識ベース対話実行モジュール202は、エピソード知識DB212から取得したエピソードに含まれるエピソード詳細情報に基づいてシステム発話を生成して、
図7に示す実行処理決定部210に出力する。
【0151】
なお、このシステム発話の出力に併せて、取得したシステム発話の自信度を示す指標値である自信度(Confidence)の値も併せて実行処理決定部210に出力してもよい。
この場合、システム発話の生成(取得)に成功しているので、自信度=1.0の値を出力する。
【0152】
(ステップS224)
一方、ステップS222において、入力したユーザ発話に含まれる語句と一致または類似する語句を含むエピソードデータがエピソード知識DB212に登録されていないと判定した場合は、ステップS224に進む。
【0153】
ステップS224において、エピソード知識ベース対話実行モジュール202は、実行処理決定部210に対するシステム発話の出力を実行しない。
なお、システム発話の自信度を示す指標値である自信度(Confidence)の値を出力する場合は、システム発話の生成(取得)に失敗しているので、自信度=0.0の値を実行処理決定部210に出力する。
【0154】
(4-3.RDF知識ベース対話実行モジュールによるシステム発話の生成処理について)
次に、
図8に示すフローのステップS113において実行するRDF(Resource Description Framework)知識ベース対話実行モジュール203によるシステム発話の生成処理について説明する。
【0155】
RDF知識ベース対話実行モジュール203によるシステム発話の生成処理の詳細について、
図15を参照して説明する。
図15には、RDF知識ベース対話実行モジュール203を示している。RDF知識ベース対話実行モジュール203は、
図15に示すRDF知識DB(データベース)213に格納されたRDF知識データを参照してシステム発話を生成する。
RDF知識DB(データベース)213は、ロボット制御部150内、または外部サーバ等の外部装置に設置されたデータベースである。
【0156】
なお、RDF知識ベース対話実行モジュール203や、RDF知識DB(データベース)213は、
図4に示す情報処理装置100のロボット制御部150内に構成してもよいが、情報処理装置100と通信可能な外部サーバが有する構成でもよい。
【0157】
RDF知識ベース対話実行モジュール203は、
図15に示すステップS31~S34の順に処理を実行する。すなわち、RDF知識ベースのシステム発話生成アルゴリズムを実行してRDF知識ベースのシステム発話を生成する。
【0158】
なお、RDFとは、リソース・デスクリプション・フレームワーク(Resource Description Framework)であり、主にウェブ上の情報(リソース)を記述するための枠組みであり、W3Cにおいて規格化されたフレームワークである。
RDFは要素間の関係性を記述するフレームワークであり、主語(Subject)、述語(Predicate)、目的語(Object)の3つの要素で情報(リソース)に関する関係情報を記述する。
【0159】
例えば、「ダックスフントは犬である」という情報(リソース)は、
主語(Subject)=ダックスフント
述語(Predicate)=である(ia a)
目的語(Object)=犬
これらの3要素に分類され、かつ3要素の関係性が決定された情報として記述される。
【0160】
このような要素間の関係性を記録したデータが、RDF知識データベース213に記録されている。
RDF知識データベース213の格納データ例を
図16に示す。
図16に示すように、RDF知識データベース213には、様々な情報に関して、
(a)述語(Predicate)
(b)主語(Subject)
(c)目的語(Object)
これら3要素に区分され記録されている。
RDF知識DB(データベース)213の登録情報を参照することで、様々な情報に含まれる要素と、要素間の関係性を知ることができる。
【0161】
RDF知識ベース対話実行モジュール203は、このように様々な情報に含まれる要素と、要素間の関係性を記録したRDF知識DB(データベース)213の登録データを参照して、ユーザ発話に応じた最適なシステム発話を生成する。
RDF知識ベース対話実行モジュール203は、
図15に示すステップS31~S34の順に処理を実行する。すなわち、RDF知識ベースのシステム発話生成アルゴリズムを実行してRDF知識ベースのシステム発話を生成する。
【0162】
まず、ステップS31において、状況解析部162からユーザ発話を入力する。
例えば、以下のユーザ発話を入力する。
ユーザ発話=「ダックスフントって何?」
【0163】
次に、ステップS32において、RDF知識ベース対話実行モジュール203は、入力したユーザ発話に基づいて、RDF知識DB登録データの検索処理を実行する。
【0164】
RDF知識DB(データベース)213は、先に
図16を参照して説明したように、様々な情報に関して、
(a)述語(Predicate)
(b)主語(Subject)
(c)目的語(Object)
これら3要素に区分した情報を記録したデータベースである。
RDF知識DB(データベース)213の登録情報を参照することで、様々な情報に含まれる要素と、要素間の関係性を知ることができる。
【0165】
RDF知識ベース対話実行モジュール203は、ステップS32において、入力したユーザ発話に基づいて、RDF知識DB登録データの検索処理を実行する。
以下のユーザ発話を入力した場合の処理について説明する。
ユーザ発話=「ダックスフントって何?」
【0166】
この場合、ステップS33において、RDF知識ベース対話実行モジュール203は、
図16に示すRDF知識DB登録データから、リソースID=(R1)の情報(リソース)を、ユーザ発話に含まれる語句に一致する語句が最も含まれる情報(リソース)として抽出する。
【0167】
次に、RDF知識ベース対話実行モジュール203は、ステップS34において、RDF知識DB(データベース)213から取得したリソースID(R1)のエントリに含まれる情報、すなわち、
主語(Subject)=ダックスフント
述語(Predicate)=である(ia a)
目的語(Object)=犬
これらの要素および要素間情報に基づいてシステム発話を生成して、
図7に示す実行処理決定部210に出力する。
例えば、以下のようなシステム発話を生成して実行処理決定部210に出力する。
システム発話=「ダックスフントは犬だよ」
【0168】
なお、このシステム発話出力に際して、RDF知識ベース対話実行モジュール203は、出力したシステム発話の自信度を示す指標値である自信度(Confidence)の値、例えば自信度=0.0~1.0を生成してシステム発話に併せて実行処理決定部210に出力する構成としてもよい。
例えば、システム発話の生成に成功した場合は、自信度(confidence)=1.0を出力し、システム発話の生成に失敗した場合は、自信度=0.0を出力する。
なお、前述したように各対話実行モジュール(対話エンジン)は、システム発話のみを出力し、自信度(confidence)の値は出力しない構成も可能である。
【0169】
次に、
図17に示すフローチャートを参照して、RDF知識ベース対話実行モジュール203の実行する処理シーケンスについて説明する。
図17に示すフローの各ステップの処理について、順次、説明する。
【0170】
(ステップS231)
まず、ステップS231において、状況解析部162からユーザ発話を入力したか否かを判定し、入力したと判定した場合はステップS232に進む。
【0171】
(ステップS232)
次に、ステップS232において、RDF知識ベース対話実行モジュール203は、入力したユーザ発話に含まれる語句と一致または類似する語句を含むリソースデータがRDF知識DB213に登録されているか否かを判定する。
【0172】
RDF知識DB(データベース)213は、先に
図16を参照して説明したように、様々な情報(リソース)を構成する要素と要素間の関係を記録したデータベースである。
RDF知識ベース対話実行モジュール203は、ステップS232において、入力したユーザ発話に含まれる語句と一致または類似する語句が含まれる情報(リソース)がRDF知識DB213に登録されているか否かを判定する。
【0173】
入力したユーザ発話に含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていると判定した場合は、ステップS233に進む。
入力したユーザ発話に含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていないと判定した場合は、ステップS234に進む。
【0174】
(ステップS233)
ステップS232において、入力したユーザ発話に含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていると判定した場合は、ステップS233に進む。
【0175】
ステップS233において、RDF知識ベース対話実行モジュール203は、RDF知識DB213から、入力したユーザ発話に含まれる語句と一致または類似する語句を含む情報(リソース)を取得し、取得した情報に基づいてシステム発話を生成して、
図7に示す実行処理決定部210に出力する。
【0176】
なお、このシステム発話の出力に併せて、取得したシステム発話の自信度を示す指標値である自信度(Confidence)の値も併せて実行処理決定部210に出力してもよい。
この場合、システム発話の生成(取得)に成功しているので、自信度=1.0の値を出力する。
【0177】
(ステップS234)
一方、ステップS232において、入力したユーザ発話に含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていないと判定した場合は、ステップS234に進む。
【0178】
ステップS234において、RDF知識ベース対話実行モジュール203は、実行処理決定部210に対するシステム発話の出力を実行しない。
なお、システム発話の自信度を示す指標値である自信度(Confidence)の値を出力する場合は、システム発話の生成(取得)に失敗しているので、自信度=0.0の値を実行処理決定部210に出力する。
【0179】
(4-4.状況言語化&RDF知識ベース対話実行モジュールによるシステム発話の生成処理について)
次に、
図8に示すフローのステップS114において実行する状況言語化&RDF(Resource Description Framework)知識ベース対話実行モジュール204によるシステム発話の生成処理について説明する。
【0180】
状況言語化&RDF知識ベース対話実行モジュール204によるシステム発話の生成処理の詳細について、
図18を参照して説明する。
図18には、状況言語化&RDF知識ベース対話実行モジュール204を示している。状況言語化&RDF知識ベース対話実行モジュール204は、
図18に示すRDF知識DB(データベース)213に格納されたRDF知識データを参照してシステム発話を生成する。
RDF知識DB(データベース)213は、ロボット制御部150内、または外部サーバ等の外部装置に設置されたデータベースである。
【0181】
図18に示すRDF知識DB(データベース)213は、先に
図15、
図16を参照して説明したRDF知識DB(データベース)213と同様のデータベースである。すなわち、様々な情報(リソース)について、主語(Subject)、述語(Predicate)、目的語(Object)の3つの要素に分類して要素間の関係性を記録したデータベースである。
【0182】
なお、状況言語化&RDF知識ベース対話実行モジュール204や、RDF知識DB(データベース)213は、
図4に示す情報処理装置100のロボット制御部150内に構成してもよいが、情報処理装置100と通信可能な外部サーバが有する構成でもよい。
【0183】
状況言語化&RDF知識ベース対話実行モジュール204は、
図15に示すステップS41~S45の順に処理を実行する。すなわち、状況言語化&RDF知識ベースのシステム発話生成アルゴリズムを実行して状況言語化&RDF知識ベースのシステム発話を生成する。
【0184】
状況言語化&RDF知識ベース対話実行モジュール204は、まず、ステップS41において、状況解析部162から状況情報を入力する。ここでは、ユーザ発話の入力ではなく、例えばカメラの撮影画像に基づく状況情報を入力する。
例えば、以下の状況情報を入力する。
状況情報=「太郎が、今、現れた」
【0185】
次に、ステップS42において、状況言語化&RDF知識ベース対話実行モジュール204は、入力した状況情報の言語化処理を実行する。
これは、観測された状況をユーザ発話と同様のテキスト情報として記述する処理である。例えば以下の状況言語化情報を生成する。
状況言語化情報=太郎、今、現れた
【0186】
次に、ステップS43において、状況言語化&RDF知識ベース対話実行モジュール204は、生成した状況言語化情報に基づいて、RDF知識DB213の登録データの検索処理を実行する。
【0187】
RDF知識DB(データベース)213は、先に
図16を参照して説明したように、様々な情報に関して、
(a)述語(Predicate)
(b)主語(Subject)
(c)目的語(Object)
これら3要素に区分した情報を記録したデータベースである。
RDF知識DB(データベース)213の登録情報を参照することで、様々な情報に含まれる要素と、要素間の関係性を知ることができる。
【0188】
状況言語化&RDF知識ベース対話実行モジュール204は、ステップS43において、生成した状況言語化情報に基づいて、RDF知識DB登録データの検索処理を実行する。
以下の状況言語化情報に対する処理について説明する。
状況言語化情報=太郎、今、現れた
【0189】
この場合、ステップS44において、状況言語化&RDF知識ベース対話実行モジュール204は、RDF知識DB登録データから、上記の状況言語化情報に含まれる語句に一致する語句が最も含まれる情報(リソース)として抽出する。
【0190】
次に、状況言語化&RDF知識ベース対話実行モジュール204は、ステップS45において、RDF知識DB(データベース)213から取得した情報に基づいてシステム発話を生成して、
図7に示す実行処理決定部210に出力する。
例えば、以下のようなシステム発話を生成して実行処理決定部210に出力する。
システム発話=「あ、太郎が今来た」
【0191】
なお、このシステム発話出力に際して、状況言語化&RDF知識ベース対話実行モジュール204は、出力したシステム発話の自信度を示す指標値である自信度(Confidence)の値、例えば自信度=0.0~1.0を生成してシステム発話に併せて実行処理決定部210に出力する構成としてもよい。
例えば、システム発話の生成に成功した場合は、自信度(confidence)=1.0を出力し、システム発話の生成に失敗した場合は、自信度=0.0を出力する。
なお、前述したように各対話実行モジュール(対話エンジン)は、システム発話のみを出力し、自信度(confidence)の値は出力しない構成も可能である。
【0192】
次に、
図19に示すフローチャートを参照して、状況言語化&RDF知識ベース対話実行モジュール204の実行する処理シーケンスについて説明する。
図19に示すフローの各ステップの処理について、順次、説明する。
【0193】
(ステップS241)
まず、ステップS241において、状況解析部162から状況情報を入力したか否かを判定し、入力したと判定した場合はステップS242に進む。
【0194】
(ステップS242)
次に、ステップS242において、状況言語化&RDF知識ベース対話実行モジュール204は、入力した状況情報の言語化処理を実行する。
【0195】
(ステップS243)
次に、ステップS243において、状況言語化&RDF知識ベース対話実行モジュール204は、ステップS242で生成した状況言語化データに含まれる語句と一致または類似する語句を含むリソースデータがRDF知識DB213に登録されているか否かを判定する。
【0196】
RDF知識DB(データベース)213は、先に
図16を参照して説明したように、様々な情報(リソース)を構成する要素と要素間の関係を記録したデータベースである。
状況言語化&RDF知識ベース対話実行モジュール204は、ステップS243において、生成した状況言語化データに含まれる語句と一致または類似する語句が含まれる情報(リソース)がRDF知識DB213に登録されているか否かを判定する。
【0197】
生成した状況言語化データに含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていると判定した場合は、ステップS244に進む。
生成した状況言語化データに含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていないと判定した場合は、ステップS245に進む。
【0198】
(ステップS244)
ステップS243において、生成した状況言語化データに含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていると判定した場合は、ステップS244に進む。
【0199】
ステップS244において、状況言語化&RDF知識ベース対話実行モジュール204は、RDF知識DB213から、生成した状況言語化データに含まれる語句と一致または類似する語句を含む情報(リソース)を取得し、取得した情報に基づいてシステム発話を生成して、
図7に示す実行処理決定部210に出力する。
【0200】
なお、このシステム発話の出力に併せて、取得したシステム発話の自信度を示す指標値である自信度(Confidence)の値も併せて実行処理決定部210に出力してもよい。
この場合、システム発話の生成(取得)に成功しているので、自信度=1.0の値を出力する。
【0201】
(ステップS245)
一方、ステップS243において、生成した状況言語化データに含まれる語句と一致または類似する語句を含む情報(リソース)がRDF知識DB213に登録されていないと判定した場合は、ステップS245に進む。
【0202】
ステップS245において、状況言語化&RDF知識ベース対話実行モジュール204は、実行処理決定部210に対するシステム発話の出力を実行しない。
なお、システム発話の自信度を示す指標値である自信度(Confidence)の値を出力する場合は、システム発話の生成(取得)に失敗しているので、自信度=0.0の値を実行処理決定部210に出力する。
【0203】
(4-5.機械学習モデルベース対話実行モジュールによるシステム発話の生成処理について)
次に、
図8に示すフローのステップS115において実行する機械学習モデルベース対話実行モジュール205によるシステム発話の生成処理について説明する。
【0204】
機械学習モデルベース対話実行モジュール205によるシステム発話の生成処理の詳細について、
図20を参照して説明する。
図20には、機械学習モデルベース対話実行モジュール205を示している。機械学習モデルベース対話実行モジュール205は、
図20に示す機械学習モデル215にユーザ発話を入力して、機械学習モデル215からの出力としてシステム発話を取得する。
機械学習モデル215は、ロボット制御部150内、または外部サーバ等の外部装置に設置されている。
【0205】
図20に示す機械学習モデル215は、ユーザ発話を入力して、出力としてシステム発話を出力する学習モデルである。この機械学習モデルは、多数の様々な異なる入力文と応答文との組データ、すなわち、ユーザ発話と出力発話(システム発話)の組からなるデータの機械学習処理により生成された学習モデルである。
この学習モデルは、例えばユーザ単位の学習モデルであり、逐次、更新処理がなされる。
【0206】
なお、機械学習モデルベース対話実行モジュール205や、機械学習モデル215は、
図4に示す情報処理装置100のロボット制御部150内に構成してもよいが、情報処理装置100と通信可能な外部サーバが有する構成でもよい。
【0207】
機械学習モデルベース対話実行モジュール205は、
図20に示すステップS51~S52の順に処理を実行する。すなわち、機械学習モデルを利用した機械学習モデルベースのシステム発話生成アルゴリズムを実行して機械学習モデルベースのシステム発話を生成する。
【0208】
機械学習モデルベース対話実行モジュール205は、まず、ステップS51において、状況解析部162からユーザ発話を入力する。
例えば、以下のユーザ発話を入力する。
ユーザ発話=「昨日の試合、まじで最高」
【0209】
次に、ステップS52において、機械学習モデルベース対話実行モジュール204は、入力したユーザ発話「昨日の試合、まじで最高」を、機械学習モデル215に入力する。
【0210】
機械学習モデル215は、ユーザ発話を入力した場合に、出力としてシステム発話を出力する学習モデルである。
【0211】
機械学習モデル215は、ステップS52において、
ユーザ発話「昨日の試合、まじで最高」
を入力すると、この入力に対する出力として、システム発話を出力する。
【0212】
ステップS53において、機械学習モデルベース対話実行モジュール205は、機械学習モデル215からの出力を取得する。取得データは、例えば、以下のデータである。
取得データ=「わかるわかる感動した」
【0213】
次に、機械学習モデルベース対話実行モジュール205は、ステップS54において、機械学習モデル215から取得したデータをシステム発話として
図7に示す実行処理決定部210に出力する。
例えば、以下のようなシステム発話を実行処理決定部210に出力する。
システム発話=「わかるわかる感動した」
【0214】
なお、このシステム発話出力に際して、機械学習モデルベース対話実行モジュール205は、出力したシステム発話の自信度を示す指標値である自信度(Confidence)の値、例えば自信度=0.0~1.0を生成してシステム発話に併せて実行処理決定部210に出力する構成としてもよい。
例えば、システム発話の生成に成功した場合は、自信度(confidence)=1.0を出力し、システム発話の生成に失敗した場合は、自信度=0.0を出力する。
なお、前述したように各対話実行モジュール(対話エンジン)は、システム発話のみを出力し、自信度(confidence)の値は出力しない構成も可能である。
【0215】
次に、
図21に示すフローチャートを参照して、機械学習モデルベース対話実行モジュール205の実行する処理シーケンスについて説明する。
図21に示すフローの各ステップの処理について、順次、説明する。
【0216】
(ステップS251)
まず、ステップS251において、状況解析部162からユーザ発話を入力したか否かを判定し、入力したと判定した場合はステップS252に進む。
【0217】
(ステップS252)
次に、ステップS252において、機械学習モデルベース対話実行モジュール205は、ステップS251で入力したユーザ発話を、機械学習モデルに入力し、機械学習モデルの出力を取得し、この出力をシステム発話として実行処理決定部に出力する。
【0218】
なお、このシステム発話の出力に併せて、取得したシステム発話の自信度を示す指標値である自信度(Confidence)の値も併せて実行処理決定部210に出力してもよい。
この場合、システム発話の生成(取得)に成功しているので、自信度=1.0の値を出力する。
【0219】
このように、
図8に示すフローのステップS111~S115では、以下の5つの処理が並列に実行される。
(S111)シナリオベース対話実行モジュールによるシステム発話の生成(+発話自信度)(シナリオDBを参照した処理を実行)
(S112)エピソード知識ベース対話実行モジュールによるシステム発話の生成(+発話自信度)(エピソード知識DBを参照した処理を実行)
(S113)RDF知識ベース対話実行モジュールによるシステム発話の生成(+発話自信度)(RDF知識DBを参照した処理を実行)
(S114)状況言語化処理を伴うRDF知識ベース対話実行モジュールによるシステム発話の生成(+発話自信度)(RDF知識DBを参照した処理を実行)
(S115)機械学習モデルベース対話実行モジュールによるシステム発話の生成(+発話自信度)(機械学習モデルを参照した処理を実行)
【0220】
前述したように、これら5つの処理は、
図4に示すロボット制御部150のデータ処理部160内で実行してもよいし、通信部170を介して接続された外部サーバ等の外部装置を利用して分散型処理として実行してもよい。
例えば、5つの外部サーバが、各々ステップS111~S115の5つの処理を実行して、処理結果を
図4に示すロボット制御部150のデータ処理部160内の処理決定部(意思決定部)163が受信する構成としてもよい。
【0221】
図8に示すフローのステップS111~S115の処理結果、すなわち
図7に示す5つの対話実行モジュール(対話エンジン)201~205が生成したシステム発話は、
図7に示す実行処理決定部210に入力される。
【0222】
[5.実行処理決定部の実行する処理の詳細について]
次に、実行処理決定部210の実行する処理の詳細について説明する。
【0223】
先に、
図7を参照して説明したように、実行処理決定部210は、5つの対話実行モジュール(対話エンジン)201~205が生成したシステム発話を入力し、入力したシステム発話から、出力すべき1つのシステム発話を選択する。
選択したシステム発話が、対話処理部164に出力され、テキスト化されて音声出力部(スピーカ)131を介して出力される。
【0224】
図22参照して実行処理決定部210の実行する処理について説明する。
図22に示すように、実行処理決定部210は、以下の5つの対話実行モジュールから各モジュールにおける処理結果を入力する。
(1)シナリオベース対話実行モジュール201
(2)エピソード知識ベース対話実行モジュール202
(3)RDF(Resource Description Framework)知識ベース対話実行モジュール203
(4)状況言語化&RDF知識ベース対話実行モジュール204
(5)機械学習モデルベース対話実行モジュール205
【0225】
これら5つの対話実行モジュール(対話エンジン)201~205は、並列処理を実行して、各々、異なるアルゴリズムでシステム応答を生成する。
これら5つのモジュールが生成したシステム発話が実行処理決定部210に入力される。
【0226】
5つの対話実行モジュール(対話エンジン)201~205は、各モジュールの生成したシステム発話とその自信度(0.0~1.0)を実行処理決定部210に入力する。
【0227】
実行処理決定部210は、5つの対話実行モジュール(対話エンジン)201~205から入力した複数のシステム発話から自信度の値が最高の1つのシステム発話を選択して、データ入出力部110の出力部130から出力するシステム発話を決定する。すなわち、対話ロボット10が出力するシステム発話を決定する。
【0228】
なお、実行処理決定部210は、複数の対話実行モジュール(対話エンジン)201~205から入力されたシステム発話に対応して設定された自信度の値が等しい場合は、予め設定されている対話実行モジュール(対話エンジン)単位の優先度に従って、対話ロボットが出力するシステム発話を決定する。
【0229】
予め設定されている対話実行モジュール(対話エンジン)単位の優先度の例について、
図23を参照して説明する。
図23は、予め設定されている対話実行モジュール(対話エンジン)単位の優先度の例を示す図である。
優先度は1が最高優先度であり、5が最低優先度となる。
【0230】
図23に示す例では、
優先度1=シナリオベース対話実行モジュール201
優先度2=エピソード知識ベース対話実行モジュール202
優先度3=RDF(Resource Description Framework)知識ベース対話実行モジュール203
優先度4=状況言語化&RDF知識ベース対話実行モジュール204
優先度5=機械学習モデルベース対話実行モジュール205
このような対話実行モジュール対応の優先度設定である。
【0231】
実行処理決定部210は、まず、複数の対話実行モジュール(対話エンジン)から入力された自信度の値に基づいて、最も高い自信度の値を持つシステム発話を選択する処理を出力するシステム発話として選択する。
ただし、最高自信度を持つシステム発話が複数ある場合は、
図23に示す予め設定されている対話実行モジュール(対話エンジン)単位の優先度に従って、対話ロボットが出力するシステム発話を決定する。
【0232】
次に、
図24に示すフローチャートを参照して実行処理決定部210の実行する処理のシーケンスについて説明する。
各ステップの処理について、順次、説明する。
【0233】
(ステップS301)
まず、実行処理決定部210は、ステップS301において、5つの対話実行モジュール(対話エンジン)、すなわち、
シナリオベース対話実行モジュール201
エピソード知識ベース対話実行モジュール202
RDF(Resource Description Framework)知識ベース対話実行モジュール203
状況言語化&RDF知識ベース対話実行モジュール204
機械学習モデルベース対話実行モジュール205
これら5つの対話実行モジュール(対話エンジン)201~205から入力があったか否かを判定する。
【0234】
すなわち、各モジュールにおいて実行されるアルゴリズムに従って生成されたシステム発話と、その自信度(0.0~1.0)のデータ入力があったか否かを判定する。
入力があった場合、ステップS302に進む。
【0235】
(ステップS302)
次に、実行処理決定部210は、ステップS302において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度=1.0のデータがあるか否かを判定する。
ある場合は、ステップS303に進む。
ない場合は、ステップS311に進む。
【0236】
(ステップS303)
ステップS302において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度=1.0のデータがあると判定した場合、次に、実行処理決定部210は、ステップS303において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度=1.0のデータが複数、あるか否かを判定する。
複数、ある場合は、ステップS304に進む。
複数でなく、1つのみの場合は、ステップS305に進む。
【0237】
(ステップS304)
ステップS303において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度=1.0のデータが複数、ある場合は、ステップS304の処理を実行する。
【0238】
実行処理決定部210は、ステップS304において、自信度=1.0の複数のシステム発話から、予め既定されたモジュール単位の優先度に従い、高優先度のモジュールが出力したシステム発話を、最終的に対話ロボットの出力するシステム発話として選択する。
実行処理決定部210は、選択したシステム発話を対話処理部164に出力する。
【0239】
(ステップS305)
一方、ステップS303において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度=1.0のデータが1つのみの場合は、ステップS305の処理を実行する。
【0240】
実行処理決定部210は、ステップS305において、自信度=1.0の1つのシステム発話を、最終的に対話ロボットの出力するシステム発話として選択する。
実行処理決定部210は、選択したシステム発話を対話処理部164に出力する。
【0241】
(ステップS311)
ステップS302の判定処理において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度=1.0のデータがないと判定した場合、次に、実行処理決定部210は、ステップS311において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度>0.0のデータがあるか否かを判定する。
ある場合は、ステップS312に進む。
ない場合は、処理を修了する。この場合、システム発話は出力されない。
【0242】
(ステップS312)
ステップS311において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度>0.0のデータがあると判定した場合、次に、実行処理決定部210は、ステップS312において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度>0.0の最高自信度のデータが複数、あるか否かを判定する。
複数ある場合は、ステップS313に進む。
複数でなく、1つのみの場合は、ステップS314に進む。
【0243】
(ステップS313)
ステップS312において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度>0.0の最高自信度のデータが複数ある場合は、ステップS313の処理を実行する。
【0244】
実行処理決定部210は、ステップS313において、自信度>0.0のデータ中、最高自信度の複数のシステム発話から、予め既定されたモジュール単位の優先度に従い、高優先度のモジュールが出力したシステム発話を、最終的に対話ロボットの出力するシステム発話として選択する。
実行処理決定部210は、選択したシステム発話を対話処理部164に出力する。
【0245】
(ステップS314)
一方、ステップS312において、5つの対話実行モジュール(対話エンジン)201~205からの入力データ中に、自信度>0.0の最高自信度のデータが1つのみの場合は、ステップS314の処理を実行する。
【0246】
実行処理決定部210は、ステップS314において、自信度>1.0の最高自信度のシステム発話を、最終的に対話ロボットの出力するシステム発話として選択する。
実行処理決定部210は、選択したシステム発話を対話処理部164に出力する。
【0247】
このように、実行処理決定部210は、5つの対話実行モジュール(対話エンジン)201~205から入力した複数のシステム発話から自信度の値が最高の1つのシステム発話を選択して、対話ロボットが出力するシステム発話とする。
複数の対話実行モジュール(対話エンジン)から入力された自信度の値が等しい場合は、予め設定されている対話実行モジュール(対話エンジン)単位の優先度に従って、対話ロボットが出力するシステム発話を決定する。
【0248】
このように本開示の情報処理装置は、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを並列に動作させて複数のシステム発話を生成し、その中から最適なシステム発話を選択して出力する。
このような処理を行うことで、様々な状況に応じた最適なシステム発話を出力することが可能となり、ユーザとの対話を、より自然にスムーズに行うことが可能となる。
【0249】
[6.本開示の情報処理装置によるシステム発話出力例について]
次に、上述した本開示の情報処理装置の処理によって行われるシステム発話の具体例について説明する。
【0250】
図25、
図26は、ユーザ1と対話ロボット10との対話シーケンスの一例を示している。
対話ロボット10は、上述した本開示の処理に従ったシステム発話生成処理を行ってシステム発話を実行する。
すなわち、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを並列に動作させて複数のシステム発話を生成し、その中から最適なシステム発話を選択して出力している。
【0251】
図26~
図27においいて、システム発話01、ユーザ発話02、システム発話03、・・・ユーザ発話18まで、ユーザ1と対話ロボット10が交互に発話する。
すなわち、以下の発話シーケンスである。
【0252】
(ユーザが帰ってくる)
システム発話=「おかえり。どこ行ってたの」
ユーザ発話=「会社にお仕事しに行ってたよ」
システム発話=「そうなんだ。毎日行ってるね」
ユーザ発話=「それが仕事っていうもんだよ」
システム発話=「わたしの分もがんばってくれ」
ユーザ発話=「はいはい。ちょっとビール持ってくるよ」
システム発話=「ビールといえばベルギーだね」
ユーザ発話=「ベルギー行ってなんか食べたいわ」
システム発話=「そういえば好きな食べ物何なの?」
ユーザ発話=「そうねえ、でも今は焼き鳥かな」
システム発話=「焼き鳥が好きなのか。鶏肉はいいよね」
ユーザ発話=「肉はいいぞ肉は」
システム発話=「タナカも肉好きって言ってたよ」
ユーザ発話=「あー、そうだね」
システム発話=「週末タナカとバーベキュー行くんでしょ」
ユーザ発話=「うん。もう寒いんだけどね」
システム発話=「こたつとミカンがいいよ」
(ビールと食事がテーブルに並ぶ)
システム発話=「お。ご馳走だね。めしあがれ」
【0253】
これらの発話シーケンスにおいて、対話ロボット10の出力するシステム発話の各々は、以下の5つの対話実行モジュールの生成したシステム発話から、その都度、選択された1つのシステム発話となる。
(1)シナリオベース対話実行モジュール201
(2)エピソード知識ベース対話実行モジュール202
(3)RDF(Resource Description Framework)知識ベース対話実行モジュール203
(4)状況言語化&RDF知識ベース対話実行モジュール204
(5)機械学習モデルベース対話実行モジュール205
【0254】
例えば、最初のシステム発話=「おかえり。どこ行ってたの」
このシステム発話は、ユーザの状況、すなわち
(ユーザが帰ってくる)
このユーザが帰ってきた状況情報に基づいて、状況言語化&RDF知識ベース対話実行モジュール204が生成したシステム発話である。
【0255】
次のシステム発話=「そうなんだ。毎日行ってるね」
このシステム発話は、直前のユーザ発話、すなわち、
ユーザ発話=「会社にお仕事しに行ってたよ」
このユーザ発話に基づいて、エピソード知識ベース対話実行モジュール202が生成したシステム発話である。
【0256】
次のシステム発話=「わたしの分もがんばってくれ」
このシステム発話は、直前のユーザ発話、すなわち、
ユーザ発話=「それが仕事っていうもんだよ」
このユーザ発話に基づいて、機械学習モデルベース対話実行モジュール205が生成したシステム発話である。
【0257】
次のシステム発話=「ビールといえばベルギーだね」
このシステム発話は、直前のユーザ発話、すなわち、
ユーザ発話=「はいはい。ちょっとビール持ってくるよ」
このユーザ発話に基づいて、RDF(Resource Description Framework)知識ベース対話実行モジュール203が生成したシステム発話である。
【0258】
次のシステム発話=「そういえば好きな食べ物何なの?」
このシステム発話は、直前のユーザ発話、すなわち、
ユーザ発話=「ベルギー行ってなんか食べたいわ」
このユーザ発話に基づいて、シナリオベース対話実行モジュール201が生成したシステム発話である。
【0259】
以下のシステム発話についても、同様であり、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを並列に動作させて複数のシステム発話を生成し、その中から最適なシステム発話を選択して出力している。
【0260】
このように本開示の情報処理装置は、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを並列に動作させて複数のシステム発話を生成し、その中から最適なシステム発話を選択して出力する。
このような処理を行うことで、様々な状況に応じた最適なシステム発話を出力することが可能となり、ユーザとの対話を、より自然にスムーズに行うことが可能となる。
【0261】
[7.情報処理装置のハードウェア構成例について]
次に、
図27を参照して、情報処理装置のハードウェア構成例について説明する。
図27を参照して説明するハードウェアは、先に
図4を参照して説明した情報処理装置や、対話実行モジュール(対話エンジン)を備えた外部サーバ等の外部装置に共通するハードウェア構成例である。
【0262】
CPU(Central Processing Unit)501は、ROM(Read Only Memory)502、または記憶部508に記憶されているプログラムに従って各種の処理を実行する制御部やデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)503には、CPU501が実行するプログラムやデータなどが記憶される。これらのCPU501、ROM502、およびRAM503は、バス504により相互に接続されている。
【0263】
CPU501はバス504を介して入出力インタフェース505に接続され、入出力インタフェース505には、各種スイッチ、キーボード、マウス、マイクロホン、センサなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507が接続されている。CPU501は、入力部506から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部507に出力する。
【0264】
入出力インタフェース505に接続されている記憶部508は、例えばハードディスク等からなり、CPU501が実行するプログラムや各種のデータを記憶する。通信部509は、Wi-Fi通信、ブルートゥース(登録商標)(BT)通信、その他インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
【0265】
入出力インタフェース505に接続されているドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア511を駆動し、データの記録あるいは読み取りを実行する。
【0266】
[8.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0267】
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) システム発話を生成して出力するデータ処理部を有し、
前記データ処理部は、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する情報処理装置。
【0268】
(2) 前記複数の対話実行モジュールの各々は、
異なるシステム発話生成アルゴリズムに従って、アルゴリズム固有のシステム発話を生成する(1)に記載の情報処理装置。
【0269】
(3) 前記データ処理部は、
ユーザ発話を入力し、入力したユーザ発話の音声認識結果を前記複数の対話実行モジュールに入力して、
前記複数の対話実行モジュールが、ユーザ発話に基づいて生成したシステム発話から1つのシステム発話を選択する(1)または(2)に記載の情報処理装置。
【0270】
(4) 前記データ処理部は、
観測情報である状況情報を入力し、入力した状況情報を前記複数の対話実行モジュールに入力して、
前記複数の対話実行モジュールが、状況情報に基づいて生成したシステム発話から1つのシステム発話を選択する(1)~(3)いずれかに記載の情報処理装置。
【0271】
(5) 前記データ処理部は、
前記複数の対話実行モジュールの各々が生成したシステム発話に対応して設定されるシステム発話対応の自信度を参照し、自信度の値の高いシステム発話を出力システム発話として選択する(1)~(4)いずれかに記載の情報処理装置。
【0272】
(6) 前記データ処理部は、
前記自信度の値が最高値のシステム発話が複数、存在する場合、
予め規定された対話実行モジュール対応の優先度に従って、優先度の高い対話実行モジュールが生成したシステム発話を出力システム発話として選択する(5)に記載の情報処理装置。
【0273】
(7) 前記複数の対話実行モジュールの各々は、
生成したシステム発話と、生成したシステム発話に対応する自信度を生成し、
前記データ処理部は、
前記自信度の値の高いシステム発話を出力システム発話として選択する(1)~(6)いずれかに記載の情報処理装置。
【0274】
(8) 前記複数の対話実行モジュールには、
様々な対話シナリオに応じたユーザ発話とシステム発話の発話組みデータを登録したシナリオデータベースを参照してシステム発話を生成するシナリオベース対話実行モジュールが含まれる(1)~(7)いずれかに記載の情報処理装置。
【0275】
(9) 前記複数の対話実行モジュールには、
様々なエピソード情報を記録したエピソード知識データベースを参照してシステム発話を生成するエピソード知識ベース対話実行モジュールが含まれる(1)~(8)いずれかに記載の情報処理装置。
【0276】
(10) 前記複数の対話実行モジュールには、
様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを参照してシステム発話を生成するRDF知識ベース対話実行モジュールが含まれる(1)~(9)いずれかに記載の情報処理装置。
【0277】
(11) 前記複数の対話実行モジュールには、
状況情報の言語化処理を実行し、該言語化処理によって生成した状況言語化データに基づいて、様々な情報に含まれる要素と、要素間の関係性を記録したRDF(Resource Description Framework)知識データベースを検索してシステム発話を生成する状況言語化&RDF知識ベース対話実行モジュールが含まれる(1)~(10)いずれかに記載の情報処理装置。
【0278】
(12) 前記複数の対話実行モジュールには、
入力文と応答文の組データの機械学習処理により生成された機械学習モデルを用いてシステム発話を生成する機械学習モデルベース対話実行モジュールが含まれる(1)~(11)いずれかに記載の情報処理装置。
【0279】
(13) 前記データ処理部は、
入力部から音声情報を含む外部情報を入力して、各時間単位の外部状態解析情報である時間単位の状態情報を生成する状態解析部と、
前記状態情報を継続して入力し、入力した複数の状態情報に基づいて外部の状況情報を生成する状況解析部と、
前記状況解析部の生成した状況情報を入力して、情報処理装置が実行する処理を決定する処理決定部を有し、
前記処理決定部が、
前記状況情報を複数の対話実行モジュールに入力し、
前記複数の対話実行モジュールが前記状況情報に基づいて個別に生成した複数のシステム発話を取得し、
取得した複数のシステム発話から出力する1つのシステム発話を選択する(1)~(12)いずれかに記載の情報処理装置。
【0280】
(14) 対話ロボットを制御するロボット制御装置と、前記ロボット制御装置と通信可能なサーバを有する情報処理システムであり、
前記ロボット制御装置は、
入力部を介して入力する状況情報を、前記サーバに出力し、
前記サーバは、
異なるシステム発話生成アルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを有し、
前記複数の対話実行モジュールの各々が、前記状況情報に基づいて個別のシステム発話を生成して、前記ロボット制御装置に送信し、
前記ロボット制御装置は、
前記サーバから受信する複数のシステム発話から1つのシステム発話を選択して出力する情報処理システム。
【0281】
(15) 前記ロボット制御装置は、
前記複数の対話実行モジュールの各々が生成したシステム発話に対応して設定されるシステム発話対応の自信度を参照し、自信度の値の高いシステム発話を出力するシステム発話として選択する(14)に記載の情報処理システム。
【0282】
(16) 前記ロボット制御装置は、
前記自信度の値が最高値のシステム発話が複数、存在する場合、
予め規定された対話実行モジュール対応の優先度に従って、優先度の高い対話実行モジュールが生成したシステム発話を出力システム発話として選択する(15に記載の情報処理システム。
【0283】
(17) 情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、システム発話を生成して出力するデータ処理部を有し、
前記データ処理部が、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する情報処理方法。
【0284】
(18) 対話ロボットを制御するロボット制御装置と、前記ロボット制御装置と通信可能なサーバを有する情報処理システムにおいて実行する情報処理方法であり、
前記ロボット制御装置は、
入力部を介して入力する状況情報を、前記サーバに出力し、
前記サーバは、異なるシステム発話生成アルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールを有し、
前記複数の対話実行モジュールの各々が、前記状況情報に基づいて個別のシステム発話を生成して、前記ロボット制御装置に送信し、
前記ロボット制御装置が、
前記サーバから受信する複数のシステム発話から1つのシステム発話を選択して出力する情報処理方法。
【0285】
(19) 情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、システム発話を生成して出力するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力させるプログラム。
【0286】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0287】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0288】
以上、説明したように、本開示の一実施例の構成によれば、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールが生成した複数のシステム発話から最適なシステム発話を選択して出力する構成が実現される。
具体的には、例えば、システム発話を生成して出力するデータ処理部が、複数の対話実行モジュールが個別に生成した複数のシステム発話から1つのシステム発話を選択して出力する。複数の対話実行モジュールの各々は、異なるアルゴリズムに従って、アルゴリズム固有のシステム発話を生成する。データ処理部は、複数の対話実行モジュールの各々が生成したシステム発話に対応して設定される自信度や、予め規定された対話実行モジュール対応の優先度に従って出力する1つのシステム発話を選択する。
本構成により、異なるアルゴリズムに従ってシステム発話を生成する複数の対話実行モジュールが生成した複数のシステム発話から最適なシステム発話を選択して出力する構成が実現される。
【符号の説明】
【0289】
10 対話ロボット
21 サーバ
22 スマホ
23 PC
100 情報処理装置
110 データ入出力部
120 入力部
121 音声入力部
122 画像入力部
123 センサ
130 出力部
131 音声出力部
132 駆動制御部
150 ロボット制御部
160 データ処理部
161 状態解析部
162 状況解析部
163 処理決定部(意思決定部)
164 対話処理部
165 アクション処理部
170 通信部
201 シナリオベース対話実行モジュール
202 エピソード知識ベース対話実行モジュール
203 RDF知識ベース対話実行モジュール
204 状況言語化&RDF知識ベース対話実行モジュール
205 機械学習モデルベース対話実行モジュール
210 実行処理決定部
211 シナリオデータベース
212 エピソード知識データベース
213 RDF知識データベース
215 機械学習モデル
501 CPU
502 ROM
503 RAM
504 バス
505 入出力インタフェース
506 入力部
507 出力部
508 記憶部
509 通信部
510 ドライブ
511 リムーバブルメディア