以下、対話制御装置等を具備する対話システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、対話エンジンの応答を採用する自動モード、管理者の応答を採用する手動モードが存在する対話制御装置を具備する対話システムについて説明する。なお、管理者とは、対話システムの管理に関与する者であり、運営者、支援者等と言っても良く、広く解する。管理者は、ユーザの対話システムの利用を支援する者、という程度のものでも良い。
また、本実施の形態において、モードを自動決定、または自動変更する対話システムについて説明する。なお、本実施の形態において、対話の破綻等を自動検知し、モードを自動変更する。
また、本実施の形態において、管理者からの指示によりモードを変更する対話システムについて説明する。
また、本実施の形態において、自動モードの場合に、対話エンジンからの応答を管理端末に出力する対話システムについて説明する。
さらに、本実施の形態において、手動モードの場合に、管理者からの応答を対話エンジンに提供する対話システムについて説明する。
図1は、本実施の形態における対話システムAの概念図である。対話システムAは、1または2以上のユーザ端末1、対話制御装置2、対話エンジン3、および1または2以上の管理端末4を備える。ユーザ端末1、管理端末4は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。なお、ユーザ端末1は、ユーザが使用する端末である。ユーザは、対話エンジンとの対話を行う人である。また、管理端末4は、管理者が使用する端末である。管理端末4は、例えば、ビデオ会議の機能を有し、ユーザと管理者とによる対話を行える端末でも良い。管理端末4は、例えば、電話機能を有し、ユーザと管理者との電話による通話を行える端末でも良い。管理者は、対話の管理者であり、手動モードの場合に、ユーザと対話を行う人である。管理者は、対話を支援する人である、と言っても良い。対話制御装置2は、対話を制御する装置である。対話制御装置2は、例えば、ASPのサーバ、クラウドサーバ等である。但し、対話制御装置2の種類は問わない。対話エンジン3は、ユーザからの発話の情報を受け付け、応答を返す装置である。対話エンジン3は、例えば、ASPのサーバ、クラウドサーバ等である。但し、対話エンジン3の種類は問わない。また、対話エンジン3は、発話情報を受け付け、自動応答情報を出力する。対話エンジン3は、公知の対話エンジンでも良い。
また、通常、1以上のユーザ端末1と対話制御装置2とは、インターネット、LAN等のネットワークにより通信可能である。また、通常、対話制御装置2と対話エンジン3とは、インターネット、LAN等のネットワークにより通信可能である。また、通常、対話制御装置2と1以上の管理端末4とは、インターネット、LAN等のネットワークにより通信可能である。ただし、対話制御装置2は、対話エンジン3、管理端末4のうちの1以上の装置を内部に含んでいても良い。つまり、対話制御装置2と対話エンジン3と管理端末4のうちの2以上の装置は、物理的に一の装置で実現されても良い。また、対話制御装置2は、ユーザ端末1、対話エンジン3のうちの1以上の装置を内部に含んでいても良い。つまり、対話制御装置2とユーザ端末1と対話エンジン3のうちの2以上の装置は、物理的に一の装置で実現されても良い。
図2は、実施の形態における対話システムAのブロック図である。また、図3は、対話制御装置2のブロック図である。
ユーザ端末1は、ユーザ受付部11、ユーザ処理部12、ユーザ送信部13、ユーザ受信部14、およびユーザ出力部15を備える。
対話制御装置2は、格納部21、受信部22、処理部23、出力部24、受付部25、および送信部26を備える。
格納部21は、モード格納部211を備える。処理部23は、決定部231、判断部232、およびモード変更部233を備える。出力部24は、発話情報出力部241、自動情報出力部242、および手動情報出力部243を備える。受付部25は、自動応答受付部251、手動応答受付部252、および変更指示受付部253を備える。送信部26は、応答送信部261を備える。
対話エンジン3は、学習情報格納部311、発話受付部32、応答取得部33、応答出力部34、学習受付部35、および学習部36を備える。
管理端末4は、例えば、管理格納部41、管理情報受付部42、管理処理部43、管理者出力部44、管理指示受付部45、および管理出力部46を備える。管理端末4は、例えば、単に、ビデオ会議機能を有する装置でも良い。また、管理端末4は、例えば、単に、電話機能を有する装置でも良い。
ユーザ端末1を構成するユーザ受付部11は、ユーザからの発話を受け付ける。発話の受け付けは、音声での受け付けでも良いし、テキストでの受け付けでも良い。ユーザ受付部11は、ユーザからの発話とユーザを撮影した映像とを受け付けても良い。発話は、ユーザが発した情報、ユーザが入力した情報であれば良い。発話の入力手段は、マイク、キーボード、マウス、メニュー画面、ビデオカメラによるもの等、何でも良い。ユーザ受付部11は、マイクやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。また、ユーザ受付部11は、後述する変更指示を受け付けても良い。
ユーザ処理部12は、ユーザ受付部11が受け付けた発話から、当該発話に対応するユーザ発話情報を取得する。ユーザ処理部12は、例えば、音声である発話を音声認識し、テキストであるユーザ発話情報を取得する。なお、ユーザ発話情報は、ユーザが入力した発話と同じでも良い。また、ユーザ発話情報は、ユーザが発した音声データとユーザの映像でも良い。なお、音声データとは、単に音声と言っても良い。つまり、音声データは、デジタルデータでもアナログデータでも良い。
また、ユーザ処理部12は、ユーザ受信部14が受信した自動情報または手動情報がテキストの場合、当該を自動情報または手動情報から音声データを生成しても良い。
また、ユーザ処理部12は、ユーザ端末1が有するビデオ会議機能を起動する処理を行っても良い。そして、ユーザ処理部12は、管理端末4とのビデオ会議を遂行する機能を実行する。なお、ビデオ会議機能は公知技術なので、詳細な説明は省略する。また、ビデオ会議は、テレビ会議、ビデオカンファレンス等とも言う。
また、ユーザ処理部12は、ユーザ端末1が有する電話機能を起動する処理を行っても良い。そして、ユーザ処理部12は、管理端末4との電話を遂行する機能を実行する。
ユーザ送信部13は、ユーザ処理部12が取得したユーザ発話情報を対話制御装置2に送信する。ユーザ送信部13は、ユーザ受付部11が受け付けた変更指示を対話制御装置2に送信しても良い。
ユーザ受信部14は、後述する自動情報または後述する手動情報を受信する。
ユーザ出力部15は、ユーザ受信部14が受信した自動情報または手動情報を出力する。ユーザ出力部15は、ユーザ処理部12が自動情報または手動情報から取得した音声データを音声出力しても良い。なお、かかる場合も、自動情報または手動情報を出力したものとする。また、ここでの出力とは、通常、ディスプレイへの表示、またはスピーカーへの音声出力であるが、プロジェクターを用いた投影、プリンタでの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である、と考えても良い。
対話制御装置2を構成する格納部21は、各種の情報が格納される。各種の情報とは、例えば、後述するモード情報、対話の履歴、2以上の管理端末管理情報である。対話の履歴は、例えば、ユーザ発話情報、発話情報、自動応答情報、自動情報、手動応答情報、手動情報等である。管理端末管理情報は、対話の話題を特定する話題情報と管理端末4を識別する管理端末識別子との組の情報である。話題情報は、例えば、話題を特定する用語、話題を特定する識別子等である。管理端末識別子は、例えば、IPアドレス、電話番号、ID等である。
モード格納部211は、モード情報が格納される。モード情報は、ユーザとの対話が自動であるか手動であるかを示す情報である。モード情報には、通常、対話エンジン3を採用する自動モード、または管理端末4を採用する手動モードがある。つまり、モード情報は、自動モード、手動モードのいずれかを、少なくとも採り得る。ただし、モード情報は、自動モード、手動モード以外のモードを採り得ても良い。自動モード、手動モード以外のモードとは、例えば、動作しない停止モード等である。また、対話エンジン3を採用することは、対話エンジン3からの応答がユーザ端末1に送信されることである。また、管理端末4を採用することは、管理端末4からの応答がユーザ端末1に送信されることである。
受信部22は、ユーザ発話情報をユーザ端末1から受信する。また、ユーザ発話情報は、通常、テキストであるが、音声データでも良い。ユーザ発話情報のデータ構造やータタイプは問わない。
受信部22は、ユーザ端末1から、ビデオ映像と音声データを受信しても良い。かかる場合、ユーザ発話情報は、ビデオ映像と音声データであると考えても良い。
処理部23は、各種の処理を行う。各種の処理とは、決定部231、判断部232、モード変更部233等が行う処理である。
各種の処理とは、例えば、ユーザ発話情報から発話情報を取得する処理である。処理部23は、例えば、ユーザ発話情報の受信に応じて、発話識別子を生成する。そして、処理部23は、例えば、ユーザ発話情報に発話識別子を付加し、発話情報を構成する。なお、発話識別子は、ユーザ発話情報の識別子であり、ユニークな情報である。また、処理部23は、例えば、最近に生成した発話識別子を1インクリメントし、ユニークな発話識別子を生成する。
また、処理部23は、例えば、自動応答情報または手動応答情報から自動情報または手動情報を取得しても良い。処理部23は、例えば、テキストの自動応答情報からその音声データである自動情報を生成しても良い。処理部23は、例えば、テキストの手動応答情報からその音声データである手動情報を生成しても良い。また、処理部23は、例えば、自動応答情報または手動応答情報から、送信するデータ構造の自動情報または送信するデータ構造の手動情報を取得しても良い。かかる場合、処理部23は、例えば、自動応答情報または手動応答情報のデータ構造を変更し、自動情報または手動情報を取得する。なお、処理部23は、例えば、自動応答情報と自動情報が同じ情報である場合、単に、受付部25が受け付けた自動応答情報を取得する。また、処理部23は、例えば、手動応答情報と手動情報が同じ情報である場合、単に、受付部25が受け付けた手動応答情報を取得する。
決定部231は、対話エンジン3を採用するか、管理端末4を採用するかを決定する。なお、対話エンジン3の採用とは、対話エンジン3の応答の採用であり、対話エンジン3の応答である自動応答情報に対する情報である自動情報をユーザ端末1に送信することである。また、管理端末4の採用とは、管理端末4からの応答の採用であり、管理端末4の応答である手動応答情報に対する情報である手動情報をユーザ端末1に送信することである。
決定部231は、例えば、モード格納部211のモード情報を取得する。そして、決定部231は、モード格納部211のモード情報に従って、対話エンジン3を採用するか、管理端末4を採用するかを決定する。このモード情報は、例えば、対話エンジン3を採用することを示す自動モード、または管理端末4を採用することを示す手動モードである。
なお、決定部231の上記決定の処理は、モード格納部211のモード情報の読み出しでも良い。
また、決定部231は、発話情報の出力先を決定しても良い。決定部231は、例えば、モード格納部211のモード情報に従って、発話情報の出力先を対話エンジン3とするか、管理端末4とするかを決定する。また、決定部231は、発話情報の出力先を、常に、対話エンジン3と管理端末4との両方にする、としても良い。
また、2以上の管理端末4が存在する場合、決定部231は、2以上の管理端末4のうちの一の管理端末4を決定しても良い。かかる場合、決定部231は、例えば、1以上の自動応答情報、1以上の手動応答情報、1以上の自動情報、1以上の手動情報のうちの1種類以上の情報を用いて、2以上の管理端末4のうちの一の管理端末4を決定する。つまり、決定部231は、例えば、1以上の自動応答情報、1以上の手動応答情報、1以上の自動情報、1以上の手動情報のうちの1種類以上の情報を用いて、ユーザの対話の話題を示す話題情報を取得し、当該話題情報に対応する管理端末識別子を格納部21から取得する。なお、決定部231は、2以上の管理端末4のうち、ランダムに一の管理端末4を決定しても良い。また、決定部231は、2以上の管理端末4のうち、他のユーザ端末1と通信中でない一の管理端末4を決定しても良い。さらに、決定部231は、2以上の管理端末4のうち、単位期間における、ユーザ端末1との通信頻度が最も少ない一の管理端末4を決定する等しても良い。つまり、決定部231が一の管理端末4を決定するアルゴリズムは問わない。また、対話の文等の情報から、の話題を示す話題情報を取得する処理は、例えば、深層学習やSVM等の機械学習の技術等を用いることにより可能であり、公知技術であるので、詳細な説明を省略する。
なお、2以上の管理端末4が存在する場合、決定部231は、2以上の管理端末4のうちの2以上の管理端末4を決定しても良い。
判断部232は、予め決められた条件を満たすか否かを判断する。ここで、予め決められた条件とは、モード情報を変更するための条件である。モード情報を変更するための条件は、自動モードから手動モードに変更するための第一の条件、手動モードから自動モードに変更するための第二の条件がある。
第一の条件は、例えば、対話が破綻していることを特定するための条件、管理端末4からの指示を受け付けたこと、ユーザ端末1からの指示を受け付けたこと等である。対話が破綻していることを特定するための条件は、例えば、対話エンジン3からの応答である1または2以上の自動応答情報を用いて対話の破綻を検出するための条件、ユーザ端末1からの1または2以上のユーザ発話情報を用いて対話の破綻を検出するための条件、管理端末4からの入力に基づいて対話の破綻を検出するための条件である。対話が破綻していることを特定するための条件は、例えば、対話エンジン3からの応答である自動応答情報に予め決められた用語(例えば、「理解できなかった」「理解不能」)を含むこと、予め決められた用語を含む自動応答情報が予め決められた期間内に閾値以上または閾値より多い回数受け付けられたこと、受信された2以上の連続するユーザ発話情報が同一または閾値以上の類似度であること、ユーザ発話情報に予め決められた用語(例えば、「何言っているのか」「駄目だな」)を含むこと等である。また、管理端末4からの指示とは、例えば、モード情報を変更する指示、モード情報を指定する指示である。なお、対話の破綻とは、ユーザと対話エンジン3との対話の破綻である。また、予め決められた条件は、例えば、格納部21に格納されている。
第二の条件は、例えば、管理端末4からの応答を閾値以上の回数受け付けたこと、管理端末4からの指示を受け付けたこと等である。
モード変更部233は、判断部232が予め決められた条件を満たすと判断した場合に、モード情報を変更する。モード情報の変更とは、通常、モード情報をモード格納部211に書き込むことである。モード変更部233は、変更指示に応じて、モード格納部211のモード情報を変更する。
出力部24は、各種の情報を出力する。ここでの出力とは、通常、送信である。ただし、出力とは、情報が出力先に渡れば良い。
発話情報出力部241は、ユーザ発話情報に対応する情報である発話情報を、対話エンジン3または管理端末4のうちの少なくともどちらか一方に出力する。発話情報出力部241は、発話情報を、モード情報に関係なく、対話エンジン3および管理端末4に出力しても良い。ここで、発話情報は、ユーザ発話情報と同じ情報でも良い。また、発話情報は、ユーザ発話情報を音声認識し、得られたテキストでも良い。発話情報は、発話識別子が付加された情報であることは好適である。また、発話情報は、ユーザの音声および映像から構成される情報でも良い。また、発話情報は、ユーザ発話情報と同じ情報でも良い。
自動情報出力部242は、自動情報を管理端末4に出力する。自動情報出力部242は、自動応答受付部251が受け付けた自動応答情報に対応する自動情報を管理端末4に出力する。
手動情報出力部243は、手動情報を対話エンジン3に出力する。手動情報出力部243は、手動応答受付部252が受け付けた手動応答情報に対応する手動情報を管理端末4に出力する。
受付部25は、各種の情報や指示等を受け付ける。ここでの受け付けとは、通常、受信である。但し、受け付けは、情報等を受け取れれば良い。
自動応答受付部251は、発話情報の対話エンジン3への出力に応じて、対話エンジン3からの応答である自動応答情報を受け付ける。自動応答受付部251は、例えば、対話エンジン3から自動応答情報を受信する。
手動応答受付部252は、発話情報の管理端末4への出力に応じて、管理端末4からの応答である手動応答情報を受け付ける。手動応答受付部252は、例えば、管理端末4から手動応答情報を受信する。
手動応答受付部252は、常時、管理端末4から手動応答情報を受け付けても良い。かかる場合、例えば、手動応答情報は、管理端末4で受け付けられているビデオ映像と音声である。
変更指示受付部253は、管理端末4からモードの変更の指示である変更指示を受け付ける。変更指示受付部253は、例えば、管理端末4から変更指示を受信する。この変更指示は、自動モードから手動モードへの変更でも良いし、手動モードから自動モードへの変更でも良い。
変更指示受付部253は、ユーザ端末1からモードの変更の指示である変更指示を受け付けても良い。変更指示受付部253は、例えば、ユーザ端末1から変更指示を受信する。
送信部26は、各種の情報を送信する。各種の情報とは、例えば、手動情報、自動情報等である。
応答送信部261は、自動応答情報に対応する情報である自動情報または手動応答情報に対応する情報である手動情報をユーザ端末1に送信する。
応答送信部261は、決定部231の決定が対話エンジン3を採用するとの決定の場合は、自動情報をユーザ端末1に送信しても良い。また、応答送信部261は、決定部231の決定が管理端末4を採用するとの決定の場合は、手動情報をユーザ端末1に送信しても良い。ここで、自動情報は、自動応答情報と同じ情報でも良い。自動情報と自動応答情報の内容は、通常、同じである。自動情報は、例えば、自動応答情報を音声に変換した音声データである。手動情報は、手動応答情報と同じ情報でも良い。手動情報と手動応答情報の内容は、通常、同じである。手動情報は、例えば、手動応答情報を音声に変換した音声データである。手動情報は、例えば、管理端末4から送信されたビデオ会議の映像と音声データである。
対話エンジン3を構成する学習情報格納部311は、1または2以上の学習情報を格納している。なお、単に「学習情報」と言うときは、2以上の学習情報でも良い。また、学習情報とは、発話情報に対応する自動応答情報を取得するための情報である。学習情報は、例えば、発話情報と自動応答情報との組である。また、学習情報は、例えば、発話情報の文字列パターンと自動応答情報の文字列パターンとの組である。また、学習情報は、例えば、会話の状態遷移を示す情報(例えば、特許文献2参照)等でも良い。また、学習情報は、単語の辞書等を含んでも良い。なお、学習情報のデータ構造や内容は問わないことは言うまでもない。
発話受付部32は、対話制御装置2から発話情報を受け付ける。発話受付部32は、通常、対話制御装置2から発話情報を受信する。
応答取得部33は、発話受付部32が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部311の学習情報を用いて取得する。なお、かかる応答取得部33の処理は公知技術である。例えば、応答取得部33は、発話受付部32が受け付けた発話情報と対になる自動応答情報を学習情報格納部311から検索する。また、例えば、応答取得部33は、発話受付部32が受け付けた発話情報に合致する発話情報の文字列パターンを検知し、当該発話情報の文字列パターンと対になる自動応答情報の文字列パターンを取得し、当該自動応答情報の文字列パターンの変数部分に発話情報から抽出した単語または句を代入して、自動応答情報を構成する。
応答出力部34は、応答取得部33が取得した自動応答情報を対話制御装置2に出力する。ここでの出力は、通常、送信である。ただし、出力とは、対話制御装置2に自動応答情報が渡されれば良い。
学習受付部35は、管理端末4からの応答である手動応答情報を受け付ける。ここでの手動応答情報の受け付けは、手動情報の受け付けでも良い趣旨である。
学習部36は、学習受付部35が受け付けた手動応答情報を用いて、学習処理を行う。学習処理は、例えば、手動応答情報を用いて、学習情報格納部311の学習情報に情報を付加することである。学習処理は、例えば、手動応答情報を用いて、学習情報格納部311の学習情報を変更することである。学習情報に情報を付加する処理は、学習情報格納部311に新しい学習情報を追記する処理を含む。
学習部36は、例えば、手動応答情報と当該手動応答情報に対応する発話情報の組である学習情報を学習情報格納部311に追記する。
学習部36は、例えば、手動応答情報と当該手動応答情報に対応する発話情報の組の情報から、状態遷移情報である学習情報に、当該発話情報の前の自動応答情報のノード(状態)の先の状態として、発話情報のノードを付加し、当該発話情報のノードに、手動応答情報のノードを付加する。
学習部36は、例えば、手動応答情報から手動応答情報のパターンを構成し、かつ当該手動応答情報に対応する発話情報から発話情報のパターンを構成し、発話情報のパターンと応答のパターンとの組である学習情報を学習情報格納部311に追記する。なお、応答のパターンは、自動応答情報のパターンとなる。
学習部36は、例えば、手動応答情報から手動応答情報のパターンを構成し、かつ当該手動応答情報に対応する発話情報から発話情報のパターンを構成し、当該パターンの組に合致する、発話情報のパターンと自動応答情報のパターンの組の出現頻度または出現確率を増加させるように、学習情報格納部311の学習情報を更新する。かかる場合、学習情報は、発話情報のパターンと自動応答情報のパターンの組、および出現頻度または出現確率を有する。
手動応答情報がビデオ会議機能を用いた管理者の応答である場合、学習部36は、例えば、ユーザ端末1から送信されたユーザ発話情報が有するユーザの音声データを音声認識して取得した文の情報と、手動応答情報が有する音声データを音声認識して取得した文の情報とから学習情報を構成し、学習情報格納部311に追記する等しても良い。
なお、学習部36は、例えば、発話情報に対応する発話識別子と手動応答情報に対応する発話識別子とが同一の、発話情報と手動応答情報とを用いて、上記の学習処理を行う。
また、学習部36が行う手動応答情報を用いた学習処理は種々あり得る。手動応答情報を用いる点を除いて、学習部36が行う学習処理は他の公知の学習処理のアルゴリズムを用いても良い。
管理端末4を構成する管理格納部41は、各種の情報が格納される。各種の情報は、例えば、モード情報、発話情報、自動情報、手動応答情報等である。
管理情報受付部42は、管理者からの手動応答情報を受け付ける。ここでの受け付けは、音声による受け付けでも良いし、キーボードやマウス等の入力手段からの受け付けでも良い。
管理情報受付部42は、管理者からの手動応答情報を音声で受け付けることは好適である。また、管理情報受付部42は、管理者からの手動応答情報をキーボード、マウス、タッチパネル、メニュー画面、ビデオカメラによるもの等から受け付けても良い。管理情報受付部42は、一の手動応答情報を、音声で受け付けたり、キーボード等の入力手段により受け付けたりすることは好適である。つまり、管理情報受付部42は、音声による受け付け手段と、キーボード、マウス、タッチパネル、またはメニュー画面等の入力手段との両方を具備し、一の手動応答情報をいずれかの手段により受け付けることは好適である。また、手動応答情報は、ビデオ会議機能を用いて取得された映像と音声データでも良い。
管理情報受付部42は、自動情報を対話制御装置2から受け付ける。また、管理情報受付部42は、発話情報を対話制御装置2から受け付ける。なお、ここでの受け付けは、通常、受信であるが、情報が管理端末4に渡る処理であれば良い。
管理処理部43は、各種の処理を行う。各種の処理とは、例えば、管理情報受付部42が受け付けた自動情報または発話情報を出力するデータ構造にしたり、かかる情報の出力画面を構成したりする処理である。
管理者出力部44は、各種の情報を出力する。各種の情報とは、例えば、自動情報、自動情報を含む画面、発話情報等である。また、かかる出力は、管理者に向けての出力である。また、出力は、音声出力でも、テキストや画像等での出力でも良い。テキストや画像等での出力は、通常、ディスプレイへの出力である。
管理指示受付部45は、管理者から各種の指示を受け付ける。各種の指示とは、例えば、モードの変更の指示である変更指示等である。
管理出力部46は、各種の情報や指示を対話制御装置2に出力する。各種の情報や指示は、例えば、変更指示、モード情報等である。なお、ここでの出力は、通常、送信であるが、情報等が対話制御装置2に渡れば良い。
ユーザ処理部12、処理部23、決定部231、判断部232、モード変更部233、応答取得部33、学習部36、および管理処理部43は、通常、MPUやメモリ等から実現され得る。ユーザ処理部12の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ユーザ送信部13、出力部24、発話情報出力部241、自動情報出力部242、手動情報出力部243、送信部26、応答送信部261、応答出力部34、および管理出力部46は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
なお、出力部24、発話情報出力部241、自動情報出力部242、手動情報出力部243、応答出力部34は、情報を出力する出力手段で実現されても良い。ここでの情報の出力とは、例えば、プログラムによる情報の引き渡しである。
ユーザ受信部14、受信部22、受付部25、自動応答受付部251、手動応答受付部252、変更指示受付部253、発話受付部32、学習受付部35、および管理情報受付部42は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
なお、受付部25、自動応答受付部251、手動応答受付部252、変更指示受付部253、発話受付部32、学習受付部35は、情報を受け付ける受付手段で実現されても良い。ここでの情報の受け付けとは、例えば、プログラムによる情報の引き渡しである。
ユーザ出力部15は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。ユーザ出力部15は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
格納部21、モード格納部211、学習情報格納部311、および管理格納部41は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部21等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部21等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部21等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部21等で記憶されるようになってもよい。
次に、対話システムAの動作について説明する。まず、ユーザ端末1の動作例について説明する。
ユーザ端末1のユーザ受付部11は、ユーザからの発話を受け付ける。次に、ユーザ処理部12は、ユーザ受付部11が受け付けた発話から、当該発話に対応するユーザ発話情報を取得する。ここで、ユーザ処理部12は、例えば、音声である発話を音声認識し、テキストであるユーザ発話情報を取得する。次に、ユーザ送信部13は、ユーザ処理部12が取得したユーザ発話情報を対話制御装置2に送信する。次に、ユーザ発話情報の送信に応じて、ユーザ受信部14は、自動情報または手動情報を受信する。なお、自動情報または手動情報は、ユーザの発話に対する応答の情報である。次に、ユーザ出力部15は、ユーザ受信部14が受信した自動情報または手動情報を出力する。以上の処理を繰り返す、ユーザと対話エンジン3または管理者との対話が継続される。なお、自動情報または手動情報がテキストの場合、ユーザ出力部15は、当該テキストを音声合成し、音声出力しても良い。また、ユーザの指示等により、対話は終了する。
なお、ユーザ端末1は、対話制御装置2からの指示により、ビデオ会議機能を起動しても良い。かかる場合は、モードが手動モードに変更された場合である。そして、ビデオ会議機能が起動された後、ユーザ受付部11は、ユーザからの発話と映像とを受け付ける。そして、ユーザ処理部12は、発話に対応する情報であり、ユーザからの発話の内容、および映像を含むユーザ発話情報を取得する。次に、ユーザ送信部13は、ユーザ処理部12が取得したユーザ発話情報を対話制御装置2に送信する。そして、ユーザ受信部14は、管理端末4から送信された情報であり、管理者の発話に関する情報と映像とを含む手動情報を受信する。そして、ユーザ出力部15は、ユーザ受信部14が受信した手動情報を出力する。なお、モードが手動モードから自動モードに変更された場合、ビデオ会議機能が停止され、上述した対話エンジン3との対話に移行しても良い。
次に、対話制御装置2の動作について、図4のフローチャートを用いて説明する。
(ステップS401)受信部22は、ユーザ発話情報をユーザ端末1から受信したか否かを判断する。ユーザ発話情報を受信した場合はステップS402に行き、受信しない場合はステップS419に行く。
(ステップS402)処理部23は、ユーザ発話情報から発話情報を取得する。
(ステップS403)決定部231は、発話情報の出力先を決定する。特に、決定部231は、例えば、モード格納部211のモード情報に従って、出力先を対話エンジン3とするか、管理端末4とするかを決定する。なお、決定部231は、発話情報の出力先を、常に、対話エンジン3と管理端末4との両方にする、としても良い。また、決定部231は、モード情報が手動モードを示す情報である場合、2以上の管理端末4のうちの1以上の管理端末4を決定しても良い。
(ステップS404)発話情報出力部241は、ステップS403で決定された出力先に、ステップS402で取得された発話情報を出力する。
(ステップS405)受付部25は、発話情報の出力に応じて、自動応答情報または手動応答情報を受け付けたか否かを判断する。受付部25がかかる情報を受け付けた場合はステップS406に行き、情報を受け付けない場合はステップS405に戻る。なお、受付部25は、自動応答情報および手動応答情報の両方を受け付けても良い。なお、受付部25は、発話情報の出力に応じるのではなく、常に、手動応答情報を受け付けていても良い。
(ステップS406)処理部23は、ステップS405で受け付けられた自動応答情報または手動応答情報から、自動情報または手動情報を取得する。なお、ステップS405で、自動応答情報および手動応答情報の両方が受け付けられた場合、処理部23は、自動応答情報および動応答情報から、自動情報および手動情報を取得する。
(ステップS407)処理部23は、自動情報を管理端末4に出力するか否かを判断する。管理端末4に出力する場合はステップS408に行き、出力しない場合はステップS409に行く。なお、例えば、自動情報を管理端末4に出力するか否かを示すフラグが格納部21で管理されており、処理部23は、かかるフラグを格納部21から読み出し、判断する。また、処理部23は、常に、自動情報を管理端末4に出力しても良いし、常に、自動情報を管理端末4に出力しなくても良い。
(ステップS408)自動情報出力部242は、ステップS406で取得された自動情報を管理端末4に出力する。
(ステップS409)処理部23は、手動情報を対話エンジン3に出力するか否かを判断する。対話エンジン3に出力する場合はステップS410に行き、出力しない場合はステップS411に行く。なお、例えば、手動情報を対話エンジン3に出力するか否かを示すフラグが格納部21で管理されており、処理部23は、かかるフラグを格納部21から読み出し、判断する。また、処理部23は、常に、手動情報を対話エンジン3に出力しても良いし、常に、手動情報を対話エンジン3に出力しなくても良い。
(ステップS410)手動情報出力部243は、ステップS406で取得された手動情報を対話エンジン3に出力する。
(ステップS411)決定部231は、対話エンジン3を採用するか、管理端末4を採用するかを決定する。そして、決定部231は、対話エンジン3を採用するとの判断である場合は自動情報を取得し、管理端末4を採用するとの判断である場合は手動情報を取得する。
(ステップS412)応答送信部261は、ステップS411で取得された自動情報または手動情報をユーザ端末1に送信する。
(ステップS413)判断部232は、モード情報を変更するための条件を満たすか否かを判断する。
(ステップS414)ステップS413における判断結果が、条件を満たすとの判断結果である場合はステップS415に行き、条件を満たさないとの判断結果である場合はステップS416に行く。
(ステップS415)モード変更部233は、モード格納部211のモード情報を変更する。ステップS401に戻る。
(ステップS416)処理部23は、ステップS415における変更が、手動モードへの変更であるか否かを判断する。手動モードへの変更である場合はステップS417に行き、手動モードへの変更でない場合はステップS418に行く。
(ステップS417)出力部24は、最新の発話情報を管理端末4に出力する。ステップS405に戻る。
(ステップS418)出力部24は、最新の発話情報を対話エンジン3に出力する。ステップS405に戻る。
(ステップS419)変更指示受付部253は、管理端末4またはユーザ端末1から変更指示を受け付けたか否かを判断する。変更指示を受け付けた場合はステップS420に行き、変更指示を受け付けない場合はステップS401に戻る。
(ステップS420)モード変更部233は、モード格納部211のモード情報を変更する。ステップS401に戻る。
なお、図4のフローチャートにおいて、ステップS413の判断部232の判断処理のタイミングは問わない。
また、図4のフローチャートにおいて、自動情報や手動情報の送信の順序や、送信するか否かの判断の順序等の各種の処理の順序は問わないことは言うまでもない。
また、図4のフローチャートにおいて、ステップS405で自動応答情報を受け付けない場合、自動情報は出力されない。また、ステップS405で手動応答情報を受け付けない場合、手動情報は出力されない。
さらに、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、対話エンジン3の動作について、図5のフローチャートを用いて説明する。
(ステップS501)発話受付部32は、対話制御装置2から発話情報を受け付けたか否かを判断する。発話情報を受け付けた場合はステップS502に行き、発話情報を受け付けない場合はステップS504に行く。
(ステップS502)応答取得部33は、ステップS501で受け付けられた発話情報に対応する自動応答情報を、学習情報格納部311の学習情報を用いて取得する。
(ステップS503)応答出力部34は、応答取得部33が取得した自動応答情報を対話制御装置2に出力する。
(ステップS504)学習受付部35は、学習対象の手動応答情報を受け付けたか否かを判断する。手動応答情報を受け付けた場合はステップS505に行き、手動応答情報を受け付けない場合はステップS501に戻る。
(ステップS505)学習部36は、学習受付部35が受け付けた手動応答情報を用いて、学習情報に、追記する情報を構成する。
(ステップS506)学習部36は、ステップS505で構成した情報を学習情報格納部311に追記する。ステップS501に戻る。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、管理端末4の動作について、図6のフローチャートを用いて説明する。
(ステップS601)管理情報受付部42は、発話情報を対話制御装置2から受け付けたか否かを判断する。発話情報を受け付けた場合はステップS602に行き、受け付けない場合はステップS606に行く。
(ステップS602)管理者出力部44は、ステップS601で受け付けられた発話情報を、または管理処理部43により出力用に構成された発話情報を出力する。
(ステップS603)管理処理部43は、発話情報の出力に対応した手動応答情報を出力するか否かを判断する。手動応答情報を出力する場合はステップS604に行き、手動応答情報を出力しない場合はステップS601に戻る。なお、手動応答情報を出力する場合は、モード情報が手動モードの場合である。なお、例えば、管理格納部41のモード情報が「手動モード」である場合、管理処理部43は、手動応答情報を出力すると判断する。
(ステップS604)管理情報受付部42は、手動応答情報を受け付けたか否かを判断する。手動応答情報を受け付けた場合はステップS605に行き、手動応答情報を受け付けない場合はステップS604に戻る。
(ステップS605)管理者出力部44は、ステップS604で受け付けられた手動応答情報を対話制御装置2に出力する。ステップS601に戻る。
(ステップS606)管理情報受付部42は、自動情報を対話制御装置2から受け付けたか否かを判断する。自動情報を受け付けた場合はステップS607に行き、受け付けない場合はステップS608に行く。
(ステップS607)管理者出力部44は、ステップS606で受け付けられた自動情報を、または管理処理部43により出力用に構成された自動情報を出力する。ステップS601に戻る。
(ステップS608)管理指示受付部45は、管理者からモードの変更指示を受け付けたか否かを判断する。変更指示を受け付けた場合はステップS609に行き、変更指示を受け付けない場合はステップS601に戻る。
(ステップS609)管理出力部46は、ステップS608で受け付けられた変更指示を対話制御装置2に出力する。ステップS601に戻る。
なお、図6のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
また、管理端末4がビデオ会議機能を有する場合、管理端末4が手動モードへの変更指示等の指示を対話制御装置2から受信することにより、ビデオ会議機能を起動し、ユーザ端末1とのビデオ会議が開始されても良い。そして、かかる場合、自動モードへの変更指示等の指示を対話制御装置2から受信することにより、管理端末4は、ビデオ会議機能を終了しても良い。
以下、本実施の形態における対話システムAの具体的な動作について説明する。
今、対話制御装置2の格納部21は、対話が破綻していることを特定するための条件を示す情報である破綻判断条件管理表が格納されている、とする(図7参照)。破綻判断条件管理表は、「ID」「破綻条件」を有するレコードを1以上管理している。「破綻条件」は、「情報」「条件」を有する。「ID」は、レコードを識別する情報である。「情報」は、対話の破綻を判断するために使用する情報である。「情報」は、ユーザ発話情報または自動応答情報である。なお、ユーザ発話情報の代わりに発話情報であっても良いし、自動応答情報の代わりに自動情報でも良い。また、「条件」は、対話の破綻を判断するための条件である。「ID=1」の条件は、類似度が90%以上のユーザ発話情報が連続して受け付けられることである。なお、ユーザ発話情報の類似度の算出の処理は、例えば、文の類似度の算出と同一の処理であり、公知技術であるので詳細な説明を省略する。「ID=2」の条件は、類似度が90%以上のユーザ発話情報が、連続して受け付けられる4つのユーザ発話情報の中で、3以上存在することである。「ID=3」の条件は、連続して受け付けられる4つの自動応答情報の中で、破綻用語を含む自動応答情報が2以上存在することである。「ID=4」の条件は、会話不成立を示す情報を含む自動応答情報が受け付けられたことである。なお、破綻用語は、ここでは、例えば、「理解できなかった」「理解不能」である、とする。また、会話不成立を示す情報は、例えば、自動応答情報に含まれ得るスコア「0」である、とする。さらに、例えば、モード格納部211のデフォルトのモード情報は「自動モード」である、とする。
また、対話エンジン3を構成する学習情報格納部311は、図8に示す学習情報管理表を格納している、とする。学習情報管理表は、「ID」「学習情報」を有する1以上のレコードを管理している。「ID」はレコードを識別する情報である。「学習情報」は「発話情報」と「自動応答情報」との対である。「発話情報」「自動応答情報」は、定数(固定的な文字列)でも良いし、変数を有する情報でも良い。また、「自動応答情報」は、プログラムや検索式(ここでは、例えば、SQL文であるが、他の形式でも構わない)などの実行可能な情報でも良い。学習情報の中の{}は変数を示し、学習情報の中の*は0文字以上の文字を示す。また、自動応答情報の中の$は変数であり、学習情報格納部311に値が保持されている。なお、「$営業日」の値は、ここでは「日曜日、火曜日、水曜日、木曜日、金曜日、土曜日」である、とする。また、自動応答情報の中の「include」は、含まれるか否かの論理演算子である、とする。つまり、「{timeExpression} include $営業日」は、変数「timeExpression」の情報が変数「営業日」の中に含まれるか否かを判断することを示す。そして、含まれる場合は真「1」を、含まれない場合は偽「0」を返す、とする。
また、学習情報格納部311は、図9に示すFoodtableを格納している、とする。Foodtableは、「ID」「料理」「作り方」を有するレコードを1以上格納している。
さらに、学習情報格納部311は、料理名を格納しているfood辞書、作物名を格納しているcrops辞書を有する、とする。food辞書には、「カツ丼、牛丼、親子丼、・・・」等の多数の料理名が格納されている。また、crops辞書には、「お米、ナス、にんじん、・・・」等の多数の作物名が格納されている。
かかる状況において、以下の5つの具体例について説明する。具体例1は、対話制御装置2が対話の破綻を自動検知して、モード情報が自動モードから手動モードに自動的に切り替わる場合である。また、具体例1において、自動で手動モードから自動モードに切り替える処理についても説明する。また、具体例2は、管理者が手動で、モード情報を自動モードから手動モードに切り替える場合である。また、具体例2において、管理者が手動で、モード情報を手動モードから自動モードに切り替える場合についても説明する。また、具体例3は、管理者が入力した手動応答情報を用いて、対話エンジン3が学習を行う場合である。また、具体例4は、モード情報が自動モードから手動モードに自動的に切り替わった場合に、ユーザ端末1と管理端末4との間で、ビデオ会議機能を用いた対話が行われる場合である。さらに、具体例5は、モード情報が自動モードから手動モードに自動的に切り替わった場合に、過去の対話の内容から話題を抽出し、話題に応じた管理端末4を選択し、ユーザ端末1と選択された管理端末4との間で、ビデオ会議機能を用いた対話が行われる場合である。
(具体例1)
今、ユーザは、ユーザ端末1に対して、「おはよう」と音声入力した、とする。すると、ユーザ端末1のユーザ受付部11は、ユーザからの発話「おはよう」を受け付ける。次に、ユーザ処理部12は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「おはよう」を取得する。次に、ユーザ送信部13は、ユーザ発話情報「おはよう」を対話制御装置2に送信する。
次に、対話制御装置2の受信部22は、ユーザ発話情報「おはよう」をユーザ端末1から受信する。
そして、処理部23は、ユーザ発話情報「おはよう」から発話情報「1:おはよう」を取得する。つまり、処理部23は、格納されている発話識別子「0」(発話識別子の初期値である、とする)をインクリメントし、ユニークな発話識別子「1」を生成する。そして、処理部23は、ユーザ発話情報に発話識別子「1」を付加し、発話情報「1:おはよう」を構成する。
次に、決定部231は、モード情報「自動モード」をモード格納部211から取得し、発話情報の出力先を「対話エンジン3」と決定する。
次に、発話情報出力部241は、対話エンジン3に発話情報「1:おはよう」を送信する。
次に、対話エンジン3の発話受付部32は、対話制御装置2から発話情報「1:おはよう」を受信する。
次に、応答取得部33は、発話情報が有する「おはよう」と対になる自動応答情報「おはようございます」を図8の学習情報管理表から取得する。なお、ここで、応答取得部33は、発話識別子「1」を付加した自動応答情報「1:おはようございます」を取得することは好適である。
次に、応答出力部34は、応答取得部33が取得した自動応答情報「1:おはようございます」を対話制御装置2に送信する。なお、送信される自動応答情報は、「おはようございます」でも良い。
次に、対話制御装置2の自動応答受付部251は、自動応答情報「1:おはようございます」を対話エンジン3から受信する。
次に、処理部23は、自動応答情報から、自動情報「おはようございます」を取得する。次に、決定部231は、モード情報「自動モード」から対話エンジン3を採用すると決定する。そして、応答送信部261は、自動情報「おはようございます」をユーザ端末1に送信する。なお、処理部23は、自動情報を管理端末4に出力しない、と判断する。
次に、ユーザ端末1のユーザ受信部14は、自動情報「おはようございます」を受信する。そして、ユーザ出力部15は、自動情報「おはようございます」を音声出力する。
次に、ユーザは、ユーザ端末1に対して、「来週の木曜日は営業していますか?」と音声入力した、とする。すると、ユーザ端末1のユーザ受付部11は、ユーザからの発話「来週の木曜日は営業していますか?」を受け付ける。次に、ユーザ処理部12は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「来週の木曜日は営業していますか?」を取得する。次に、ユーザ送信部13は、当該ユーザ発話情報を対話制御装置2に送信する。
次に、対話制御装置2の受信部22は、ユーザ発話情報「来週の木曜日は営業していますか?」をユーザ端末1から受信する。
そして、処理部23は、当該ユーザ発話情報から発話情報「2:来週の木曜日は営業していますか?」を取得する。つまり、処理部23は、格納されている発話識別子「1」をインクリメントし、ユニークな発話識別子「2」を生成する。そして、処理部23は、ユーザ発話情報に発話識別子「2」を付加し、発話情報「2:来週の木曜日は営業していますか?」を構成する。
次に、決定部231は、モード情報から発話情報の出力先を「対話エンジン3」と決定する。
次に、発話情報出力部241は、対話エンジン3に発話情報「2:来週の木曜日は営業していますか?」を送信する。
次に、対話エンジン3の発話受付部32は、対話制御装置2から発話情報「2:来週の木曜日は営業していますか?」を受信する。
次に、応答取得部33は、発話情報が有する「来週の木曜日は営業していますか?」が、図8の学習情報管理表の中の発話情報のパターン「{timeExpression}*営業していますか?*」に合致することを検出する。なお、かかる発話情報のパターンは、図8の学習情報管理表の「ID=3」の情報である。
次に、応答取得部33は、「ID=3」の自動応答情報を取得する。そして、応答取得部33は、当該自動応答情報の{timeExpression}に対して「来週の木曜日」を代入し、「$営業日」の値「日曜日、火曜日、水曜日、木曜日、金曜日、土曜日」から、来週の木曜日が営業日に含まれる(つまり、自動応答情報の実行結果「真」)、と判断する。なお、応答取得部33は、「来週の木曜日」から曜日を示す「木曜日」を抽出し、「$営業日」の値に含まれる、と判断する。
次に、応答取得部33は、自動応答情報のパターン“はい。{timeExpression}は営業しております”を取得する。次に、応答取得部33は、自動応答情報のパターンの{timeExpression}に対して「来週の木曜日」を代入し、自動応答情報「来週の木曜日は営業しております」を取得する。そして、応答送信部261は、自動応答情報「2:来週の木曜日は営業しております」をユーザ端末1に送信する。
次に、対話制御装置2の自動応答受付部251は、自動応答情報「2:来週の木曜日は営業しております」を対話エンジン3から受信する。
次に、処理部23は、自動応答情報から、自動情報「来週の木曜日は営業しております」を取得する。次に、決定部231は、モード情報「自動モード」から対話エンジン3を採用すると決定する。そして、応答送信部261は、自動情報「来週の木曜日は営業しております」をユーザ端末1に送信する。
次に、ユーザ端末1のユーザ受信部14は、自動情報「来週の木曜日は営業しております」を受信する。そして、ユーザ出力部15は、自動情報「来週の木曜日は営業しております」を音声出力する。
以上のように、ユーザと対話エンジン3との対話の動作が繰り返し行われた、とする。そして、対話エンジン3から送信された自動応答情報の中に「理解不能」を含む情報が、2回連続して、対話制御装置2に送信された、とする。なお、対話エンジン3は、受け付けた発話情報に対応する自動応答情報を取得することができなかった場合、「理解不能」を含む自動応答情報を構成し、送信する、とする。また、2回目の「理解不能」を含む自動応答情報に対応するユーザ発話情報は「来週の木曜日のお席の予約は可能ですか?」であった、とする。
そして、対話制御装置2の自動応答受付部251が、2度目の「理解不能」を含む自動応答情報を対話エンジン3から受信した、とする。なお、処理部23は、受信された自動応答情報やユーザ発話情報や手動応答情報等のログを格納部21に蓄積することは好適である。または、処理部23は、1度目の「理解不能」を含む自動応答情報を対話エンジン3から受信した際に、当該自動応答情報を格納部21に蓄積しても良い。
次に、判断部232は、2回の連続した「理解不能」を含む自動応答情報が、図7の「ID=3」の破綻条件に合致する、と判断する。
次に、モード変更部233は、モード格納部211のモード情報「自動モード」から「手動モード」に変更する。
次に、処理部23は、手動モードへの変更である、と判断する。そして、出力部24は、最新の発話情報「12:来週の木曜日のお席の予約は可能ですか?」を管理端末4に出力する。なお、「12」は発話識別子である。
次に、管理端末4の管理情報受付部42は、発話情報「12:来週の木曜日のお席の予約は可能ですか?」を対話制御装置2から受信する。
次に、管理者出力部44は、発話情報のうちの発話内容「来週の木曜日のお席の予約は可能ですか?」を出力する。かかる出力例は、図10である。図10において、1001に発話情報のうちの発話内容が表示されている。
次に、管理者は、図10の1002の「Yes」ボタンを押下した、とする。すると、管理情報受付部42は、「Yes」ボタンの押下を検知し、「Yes」ボタンに対応づけて格納されている手動応答情報「はい。」を、図11の手動応答情報管理表から取得する。なお、管理格納部41には、図10の画面上のボタンに対応する手動応答情報が管理されている。かかる手動応答情報管理表は、図11である。図11は、「ID」「ボタン」「手動応答情報」を有するレコードが管理されている。「ボタン」の各属性値は、図10のボタンに対応する。次に、管理者出力部44は、手動応答情報「はい。」を対話制御装置2に送信する。
なお、ここで、管理者は、図10の画面内のボタンを押下せずに、または図10の1003の「音声入力」ボタンを押下した後、「はい。来週の木曜日は、4名様までご予約可能です。」などと、音声入力しても良い。かかる場合、対話制御装置2の管理情報受付部42は、音声データ「はい。来週の木曜日は、4名様までご予約可能です。」を受け付け、当該音声データを音声認識し、テキストの手動応答情報「はい。来週の木曜日は、4名様までご予約可能です。」を得る。そして、管理者出力部44は、当該手動応答情報を対話制御装置2に送信する。なお、管理情報受付部42は、デフォルトで、音声を受け付けても良い。
次に、対話制御装置2の手動情報受付部252は、手動応答情報「はい。来週の木曜日は、4名様までご予約可能です。」を受け付ける。そして、処理部23は、当該手動応答情報を手動情報として取得する。
そして、モード情報が「手動モード」なので、応答送信部261は手動情報「はい。来週の木曜日は、4名様までご予約可能です。」をユーザ端末1に送信する。
次に、ユーザ端末1のユーザ受信部14は、当該手動情報を受信する。次に、ユーザ出力部15は、手動情報「はい。来週の木曜日は、4名様までご予約可能です。」を音声出力する。
以上の処理により、対話の破綻を自動検知し、自動モードから手動モードの自動切り替えを行うことにより、対話の継続が可能となる。
また、手動モードの状態で、閾値以上の回数の対話(手動応答情報の受信)が行われた場合、判断部232は、「手動モード」から「自動モード」にモード情報を変更する、と判断するとする。そして、モード変更部233は、モード格納部211のモード情報を「手動モード」から「自動モード」に変更する。
以後、上記で説明したような「自動モード」での対話処理が継続される。なお、ユーザ端末1において、図12に示すようにキャラクタがお話しているように、自動情報または手動情報を音声出力することは好適である。
(具体例2)
今、ユーザは、ユーザ端末1に対して、「牛丼の作り方を教えて」と音声入力した、とする。すると、ユーザ端末1のユーザ受付部11は、ユーザからの発話「牛丼の作り方を教えて」を受け付ける。次に、ユーザ処理部12は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「牛丼の作り方を教えて」を取得する。次に、ユーザ送信部13は当該ユーザ発話情報を対話制御装置2に送信する。
次に、対話制御装置2の受信部22は、ユーザ発話情報「牛丼の作り方を教えて」をユーザ端末1から受信する。
そして、処理部23は、当該ユーザ発話情報から発話情報「1:牛丼の作り方を教えて」を取得する。発話情報の「1」は発話識別子である。
次に、決定部231は、発話情報の出力先を対話エンジン3および管理端末4と決定する。なお、本具体例において、発話情報の出力先は、常に、対話エンジン3および管理端末4である、とする。
次に、発話情報出力部241は、発話情報「1:牛丼の作り方を教えて」を、対話エンジン3および管理端末4に送信する。
そして、管理端末4は、発話情報「1:牛丼の作り方を教えて」を受信し、発話情報に含まれる「牛丼の作り方を教えて」を出力する。
次に、対話エンジン3の発話受付部32は、対話制御装置2から発話情報「1:牛丼の作り方を教えて」を受信する。
次に、応答取得部33は、発話情報が有する「牛丼の作り方を教えて」を形態素解析する。そして、応答取得部33は、取得した形態素「牛丼」をキーとして、辞書を検索し、「牛丼」は{food}に含まれることを検出する。次に、応答取得部33は、「牛丼の作り方を教えて」が図8の学習情報管理表の「ID=4」の発話情報に合致することを検出する。そして、応答取得部33は、「ID=4」の自動応答情報を取得し、当該自動応答情報を実行し、図9のFoodtableから料理「牛丼」に対応する作り方「4人前の材料をご紹介します。・・・」を取得する。そして、応答出力部34は、応答取得部33が取得した自動応答情報「1:4人前の材料をご紹介します。・・・」を対話制御装置2に送信する。
次に、対話制御装置2の受付部25は、当該自動応答情報を受け付ける。そして、処理部23は、当該答情報から、自動情報「4人前の材料をご紹介します。・・・」を取得する。なお、ここでは、自動応答情報と自動情報が同じでも良い。
次に、処理部23は、自動情報を管理端末4に出力する、と判断する。そして、自動情報出力部242は、自動情報「4人前の材料をご紹介します。・・・」を管理端末4に出力する。
次に、決定部231は、モード情報「自動モード」から対話エンジン3を採用する、と判断する。そして、応答送信部261は、取得された自動情報「4人前の材料をご紹介します。・・・」をユーザ端末1に送信する。
次に、ユーザ端末1のユーザ受信部14は、自動情報「4人前の材料をご紹介します。・・・」を受信する。そして、ユーザ出力部15は、当該自動情報を出力する。
次に、ユーザは、ユーザ端末1に対して、「粉末うどんスープはどちらのスープがお勧めですか?」と音声入力した、とする。すると、ユーザ端末1のユーザ受付部11は、当該ユーザの音声入力を受け付ける。次に、ユーザ処理部12は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「粉末うどんスープはどちらのスープがお勧めですか?」を取得する。次に、ユーザ送信部13は、当該ユーザ発話情報を対話制御装置2に送信する。
次に、対話制御装置2の受信部22は、当該ユーザ発話情報をユーザ端末1から受信する。
そして、処理部23は、当該ユーザ発話情報から発話情報「2:粉末うどんスープはどちらのスープがお勧めですか?」を取得する。
次に、決定部231は、発話情報の出力先を対話エンジン3および管理端末4と決定する。そして、発話情報出力部241は、発話情報「2:粉末うどんスープはどちらのスープがお勧めですか?」を、対話エンジン3および管理端末4に送信する。
次に、対話エンジン3は、当該発話情報を受信し、当該発話情報に対応する自動応答情報を取得し、対話制御装置2に送信する。なお、ここでの自動応答情報は、例えば、「理解できない」旨の情報を含む、とする。
また、管理端末4は、当該発話情報を受信し、発話情報に含まれる「粉末うどんスープはどちらのスープがお勧めですか?」を出力する。
そして、この出力を見た管理者は、対話エンジン3には答えられないと判断し、管理端末4にモード情報の変更指示を入力した、とする。そして、管理者は、「粉末うどんスープはA社のスープがお勧めです。」と音声入力した、とする。
次に、管理指示受付部45は、管理者からモードの変更指示(自動モードから手動モードへの変更指示)を受け付ける。そして、管理出力部46は、かかる変更指示を対話制御装置2に出力する。
また、管理情報受付部42は、音声データ「粉末うどんスープはA社のスープがお勧めです。」を受け付け、当該音声データを音声認識し、テキストに変更する。次に、管理者出力部44は、テキストの手動応答情報「2:粉末うどんスープはA社のスープがお勧めです。」を対話制御装置2に送信する。
次に、対話制御装置2の変更指示受付部253は、管理端末4から変更指示を受信する。モード変更部233は、モード格納部211のモード情報を、手動モードに変更する。
また、手動応答受付部252は、管理端末4から手動応答情報を受信する。処理部23は、受信された自動応答情報および手動応答情報から、自動情報および手動情報を取得する。
次に、決定部231は、モード情報「手動モード」から管理端末4を採用する、と決定する。
そして、応答送信部261は、取得された手動情報「粉末うどんスープはA社のスープがお勧めです。」をユーザ端末1に送信する。
次に、ユーザ端末1は、手動情報「粉末うどんスープはA社のスープがお勧めです。」を受信し、出力する。
以上の処理により、管理者が適切に対話に介在し、効果的で継続的な対話を行える。なお、本具体例において、管理者が「自動モード」にモード情報を変更する指示を入力した後、「自動モード」で対話を行うことができる。
(具体例3)
具体例2において、対話制御装置2の手動応答受付部252が管理端末4から手動応答情報「2:粉末うどんスープはA社のスープがお勧めです。」を受信した後、処理部23は、手動応答情報を対話エンジン3に送信する、と判断する。
そして、手動情報出力部243は、かかる手動応答情報を対話エンジン3に送信する。なお、ここで、手動情報出力部243は、手動情報を対話エンジン3に送信しても良い。
次に、対話エンジン3の学習受付部35は、手動応答情報「2:粉末うどんスープはA社のスープがお勧めです。」を受信する。
次に、学習部36は、学習受付部35が受け付けた手動応答情報を用いて、学習情報に、追記する情報を構成する。つまり、学習部36は、手動応答情報「2:粉末うどんスープはA社のスープがお勧めです。」が有する発話識別子「2」に対応する発話情報を取得する。そして、発話識別子「2」に対応する発話情報の内容「粉末うどんスープはどちらのスープがお勧めですか?」と手動応答情報の内容「粉末うどんスープはA社のスープがお勧めです。」との組を、図8の学習情報管理表に追記する。
なお、学習部36は、発話情報の内容「粉末うどんスープはどちらのスープがお勧めですか?」のうち、名詞または名詞句「粉末うどんスープ」「スープ」を変数に置き換え、「{変数1}はどちらの{変数2}がお勧めですか?」というパターンに変更し、「粉末うどんスープはA社のスープがお勧めです。」のうち、名詞または名詞句「粉末うどんスープ」「A社」「スープ」を変数に置き換え、「{変数3}は{変数4}の{変数5}がお勧めです。」というパターンに変更し、2つのパターンの組を、図8の学習情報管理表に追記するなどしても良い。
つまり、本具体例において、管理者からの入力である手動応答情報を用いて、学習情報をよくすれば良く、学習情報の構造は問わない。
(具体例4)
具体例1と同様に、対話制御装置2を経由して、ユーザ端末1と対話エンジン3との間で対話が進行している状況が続きた後、判断部232は、ユーザ発話情報または自動応答情報が、図7に示す条件のいずれかを満たしたと判断した、とする。
次に、モード変更部233は、モード格納部211のモード情報「自動モード」から「手動モード」に変更する。
次に、処理部23は、手動モードへの変更である、と判断する。そして、出力部24は、手動モードへのモード変更指示を管理端末4とユーザ端末1とに送信する。
次に、管理端末4の管理情報受付部42は、手動モードへのモード変更指示を受信する。
そして、管理端末4の管理処理部43は、ビデオ会議機能を起動する。そして、管理情報受付部42は、管理者のビデオ映像と管理者が発した音声データとを有する手動応答情報を受け付ける。
そして、管理処理部43は、送信する手動応答情報を取得する。
次に、管理者出力部44は、手動応答情報を対話制御装置2に送信する。
また、ユーザ端末1のユーザ受信部14は、手動モードへのモード変更指示を受信する。
そして、ユーザ端末1のユーザ処理部12は、ビデオ会議機能を起動する。そして、ユーザ受付部11は、ユーザのビデオ映像と、ユーザが発した音声データとを受け付ける。
次に、ユーザ処理部12は、ユーザ受付部11が受け付けたビデオ映像と音声データとからユーザ発話情報を取得する。
次に、ユーザ送信部13は、ユーザ処理部12が取得したユーザ発話情報を対話制御装置2に送信する。
そして、管理端末4の管理者とユーザ端末1のユーザとは、対話制御装置2を経由したビデオ映像を見ながら、対話を行える。つまり、管理端末4の管理者とユーザ端末1のユーザとは、ビデオ会議を行うことができる。
また、ビデオ会議により、ユーザと管理者とが対話した内容が、対話制御装置2により対話エンジン3に送信されても良い。そして、対話エンジン3の学習受付部35は、ユーザと管理者との対話の内容を受信する。なお、対話の内容とは、通常、ユーザが発した発話情報と管理者が発した手動応答情報とを有する。
次に、学習部36は、学習受付部35が受信したユーザが発した発話情報と管理者が発した手動応答情報とを用いて、学習情報に、追記する情報を構成する。そして、学習部36は、構成した情報を学習情報管理表(例えば、図8)に追記する。
(具体例5)
今、対話制御装置2の格納部21は、図17に示す管理端末管理表を保持している、とする。管理端末管理表は、「ID」「話題情報」「管理端末識別子」「IPアドレス」を有するレコードを複数格納している。「ID」は、レコードを識別する情報である。「話題情報」は、話題を特定する1以上の用語を有する。「管理端末識別子」は、管理端末4を識別する情報である。「IPアドレス」は、管理端末4と通信するためのIPアドレスアドレスである。
かかえる状況において、具体例1と同様に、対話制御装置2を経由して、ユーザ端末1と対話エンジン3との間で対話が進行している状況が続きた後、判断部232は、ユーザ発話情報または自動応答情報が、図7に示す条件のいずれかを満たしたと判断した、とする。
次に、モード変更部233は、モード格納部211のモード情報「自動モード」から「手動モード」に変更する。
次に、処理部23は、手動モードへの変更である、と判断する。そして、決定部231は、以下のように3つの管理端末4のうちの一の管理端末4を決定する。
つまり、決定部231は、本ユーザと対話エンジン3との今までの対話の内容の文の情報を取得する。そして、決定部231は、例えば、対話の内容の文からベクトルを構成する。なお、このベクトルは、例えば、Wrod2Vecを用いて構成される。次に、決定部231は、深層学習やSVM等の機械学習の技術を用いて、当該ベクトルから話題を示す情報(ここでは、例えば、「ホテル」)を取得する。次に、決定部231は、当該話題を示す情報「ホテル」を含む「ID=1」のレコードのIPアドレスを「123.205.070.018」を図17の管理端末管理表から取得する。
次に、出力部24は、「123.205.070.018」に対応する管理端末Aに、手動モードへのモード変更指示を送信する。また、出力部24は、モード変更指示をユーザ端末1にも送信する。
そして、具体例4で説明したように、ユーザ端末1と管理端末4とはビデオ会議を行える状況になり、ユーザと管理者とは、ビデオ会議機能を介して、対話を行う。
以上、本実施の形態によれば、対話エンジン3からの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
また、本実施の形態によれば、管理者からの応答を学習できる対話エンジン3を提供できる。
また、本実施の形態によれば、例えば、対話が破綻した等の場合に、対話を支援できる管理端末4を提供できる。
また、本実施の形態によれば、例えば、対話が破綻した等の場合に、ビデオ会議や電話による通話に切り替えることができ、対話エンジン3との対話が難しい等の場合でも、ユーザの対話が継続できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話制御装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、ユーザが入力した対話であるユーザ対話情報をユーザ端末から受信する受信部と、前記ユーザ対話情報に対応する情報である対話情報を対話エンジンに出力するか、管理端末に出力するかを決定する決定部と、前記決定部の決定に従って、前記対話情報を対話エンジンまたは管理端末に出力する対話情報出力部と、前記対話情報の前記対話エンジンへの出力に応じて、前記対話エンジンからの応答である自動応答情報を受け付ける自動応答受付部と、前記対話情報の前記管理端末への出力に応じて、前記管理端末からの応答である手動応答情報を受け付ける手動応答受付部と、前記自動応答情報に対応する情報である自動情報または前記手動応答情報に対応する情報である手動情報を前記ユーザ端末に送信する応答送信部として機能させるためのプログラムである。
また、上記プログラムにおいて、コンピュータがアクセス可能な記録媒体は、前記対話情報を対話エンジンに出力する自動モード、または前記対話情報を前記管理端末に出力する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部を具備し、コンピュータを、モード情報を変更するための予め決められた条件を満たすか否かを判断する判断部と、前記判断部が予め決められた条件を満たすと判断した場合に、前記モード情報を変更するモード変更部としてさらに機能させ、前記決定部は、前記モード格納部のモード情報を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記判断部は、自動モードから手動モードに自動変更するための条件を満たしたか否かを判断し、前記モード変更部は、前記判断部が予め決められた条件を満たすと判断した場合に、前記モード情報を自動モードから手動モードに変更するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記判断部は、手動モードから自動モードに自動変更するための条件を満たしたか否かを判断し、前記モード変更部は、前記判断部が予め決められた条件を満たすと判断した場合に、前記モード情報を手動モードから自動モードに自動変更するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、コンピュータにアクセス可能な記録媒体は、前記対話情報を対話エンジンに出力する自動モード、または前記対話情報を前記管理端末に出力する手動モードのいずれかを採り得るモード情報が格納されるモード格納部を具備し、コンピュータを、管理端末からモードの変更の指示である変更指示を受け付ける変更指示受付部と、前記変更指示に応じて、前記モード格納部のモード情報を変更するモード変更部としてさらに機能させ、前記決定部は、前記モード格納部のモード情報に従って、前記受信部が受信したユーザ対話情報に関する対話情報を対話エンジンに出力するか、管理端末に出力するかを決定するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、コンピュータを、前記自動情報を前記管理端末に出力する自動情報出力部としてさらに機能させるプログラムであることは好適である。
また、上記プログラムにおいて、コンピュータを、前記手動情報を前記対話エンジンに出力する手動情報出力部としてさらに機能させるプログラムであることは好適である。
また、本実施の形態における対話エンジン3を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、対話制御装置から発話情報を受け付ける発話受付部と、前記発話受付部が受け付けた発話情報に対応する応答である自動応答情報を、前記学習情報を用いて取得する応答取得部と、前記応答取得部が取得した自動応答情報を前記対話制御装置に出力する応答出力部と、前記管理端末からの応答である手動応答情報を受け付ける学習受付部と、前記学習受付部が受け付けた手動応答情報を用いて、前記学習情報に情報を付加する学習部として機能させるプログラムである。
また、本実施の形態における管理端末4を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、対話制御装置から発話情報を受け付ける管理情報受付部と、前記発話情報、または前記発話情報から出力用に構成された発話情報を出力する管理者出力部と、前記発話情報の出力に応じて、手動応答情報を受け付ける管理情報受付部と、前記手動応答情報を対話制御装置に出力する管理者出力部として機能させるプログラムである。
また、本実施の形態における管理端末4を実現するソフトウェアは、以下のようなプログラムでも良い。つまり、このプログラムは、コンピュータを、請求項7記載の対話制御装置からモード変更指示を受け付け、かつ請求項7記載の対話制御装置から映像および音声データを有する発話情報を受け付ける管理情報受付部と、前記モード変更指示に応じて、ビデオ会議機能を起動する管理処理部と、前記発話情報、または前記発話情報から出力用に構成された発話情報を出力する管理者出力部と、映像および音声データを有する手動応答情報を受け付ける管理情報受付部と、前記手動応答情報を対話制御装置に出力する管理者出力部として機能させるためのプログラムである。
(実施の形態2)
本実施の形態において、スタンドアロンの対話装置5について説明する。ここでは、対話装置5は、通常、対話エンジン3を有する。また、対話装置5は、例えば、対話システムAのユーザ端末1、対話制御装置2、対話エンジン3を有する。ただし、ここでの対話装置5は、管理端末4は含まず、管理端末4と通信を行う。
図13は、本実施の形態における対話装置5のブロック図である。
対話装置5は、格納部50、受付部51、発話情報出力部52、自動応答受付部53、手動応答受付部54、応答出力部55、対話エンジン3を備える。
格納部50は、各種の情報が格納される。各種の情報とは、例えば、モード情報、自動情報を画面に出力するか否かを示すフラグ等である。
受付部51は、ユーザが入力した発話に対応するユーザ発話情報を受け付ける。なお、受付部51は、発話を受け付け、当該発話からユーザ発話情報を構成しても良い。また、ここでの受け付けは、音声データであるユーザ発話情報の受け付けでも良いし、テキストのユーザ発話情報の受け付けでも良い。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。また、ユーザ発話情報は、音声データとユーザを撮影した映像でも良い。
ユーザ発話情報の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部51は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
発話情報出力部52は、ユーザ発話情報に関する発話情報を、対話エンジン3または画面のうちの少なくともどちらか一方に出力する。ここでの出力とは、発話情報の引き渡しを行われれば良い。なお、画面への出力とは、管理端末4の画面への出力でも良い。
発話情報出力部52は、通常、MPUやメモリ等から実現され得る。発話情報出力部52の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
自動応答受付部53は、発話情報の対話エンジン3への出力に応じて、対話エンジン3からの応答である自動応答情報を受け付ける。
手動応答受付部54は、発話情報の画面への出力に応じて、管理者からの応答である手動応答情報を受け付ける。ここでの受け付けは、管理端末4からの受信でも良い。なお、手動応答情報は、管理者の音声データと管理者を撮影した映像でも良い。
手動応答情報の入力手段は、キーボードやマウスやメニュー画面によるもの音声入力等、何でも良い。手動応答受付部54は、例えば、無線または有線のネットワークの受信手段等で実現され得る。
応答出力部55は、自動応答情報に関する自動情報または手動応答情報に関する手動情報を出力する。ここでの出力は、ユーザに対する出力であり、例えば、音声出力、またはディスプレイへの表示である。
応答出力部55は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。応答出力部55は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、対話装置5の動作について、図14のフローチャートを用いて説明する。図14のフローチャートにおいて、図4のフローチャートと同一のステップについて、説明を省略する。
(ステップS1401)受付部51は、ユーザ発話情報を受け付けたか否かを判断する。ユーザ発話情報を受け付けた場合はステップS1402に行き、受け付けない場合はステップS419に行く。
(ステップS1402)自動応答受付部53は、対話エンジン3を動作させるか否かを判断する。対話エンジン3を動作させる場合はステップS1403に行き、対話エンジン3を動作させない場合はステップS1404に行く。なお、自動応答受付部53は、例えば、格納部50のモード情報が自動モードである場合、対話エンジン3を動作させると判断する。
(ステップS1403)自動応答受付部53は、対話エンジン3の出力である自動応答情報を取得する。
(ステップS1404)手動応答受付部54は、管理者の入力に対応する手動応答情報を取得する。なお、例えば、モード情報が手動モードである場合、手動応答受付部54は、手動応答情報を取得できるまでウェイトする。
(ステップS1405)応答出力部55は、自動情報を画面に出力するか否かを判断する。画面に出力する場合はステップS1406に行き、出力しない場合はステップS409に行く。なお、例えば、自動情報を画面に出力するか否かを示すフラグが格納部50で管理されており、処理部23は、かかるフラグを格納部50から読み出し、判断する。また、応答出力部55は、常に、自動情報を画面に出力しても良いし、常に、自動情報を画面に出力しなくても良い。また、本ステップの処理は、応答出力部55が行ったが、図示しない判断手段が行っても良い。
(ステップS1406)応答出力部55は、自動情報を画面に出力する。
(ステップS1407)応答出力部55は、ユーザに出力する情報を取得する。かかる情報は、自動情報または手動情報である。また、応答出力部55は、例えば、モード情報が自動モードの場合は自動情報を取得し、手動モードの場合は手動情報を取得する。
(ステップS1408)応答出力部55は、ステップS1407で取得した情報を出力する。
(ステップS1409)出力部24は、最新の発話情報を画面に出力する。ステップS1402に戻る。
なお、図14のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上、本実施の形態によれば、対話エンジン3からの応答と管理者からの応答とを使い分けて、ユーザに対して出力することにより、適切な対話を継続できる。
なお、本実施の形態における対話装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、ユーザが入力した発話に対応するユーザ発話情報を受け付ける受付部と、前記ユーザ発話情報に関する発話情報を、対話エンジンまたは画面のうちの少なくともどちらか一方に出力する発話情報出力部と、前記発話情報の前記対話エンジンへの出力に応じて、前記対話エンジンからの応答である自動応答情報を受け付ける自動応答受付部と、前記発話情報の前記画面への出力に応じて、管理者からの応答である手動応答情報を受け付ける手動応答受付部と、前記自動応答情報に関する自動情報または前記手動応答情報に関する手動情報を出力する応答出力部として機能させるためのプログラムである。
また、本実施の形態において、対話装置5は、管理端末4と通信した。しかし、対話装置5は、ユーザ端末1と通信しても良い。かかる場合、対話装置5は、管理端末4を具備しても良い。
また、図15は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の対話制御装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図15は、このコンピュータシステム300の概観図であり、図16は、システム300のブロック図である。
図15において、コンピュータシステム300は、CD−ROMドライブを3012含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図16において、コンピュータ301は、CD−ROMドライブ3012と、MPU3013と、バス3014と、ROM3015と、RAM3016と、ハードディスク3017とを含む。ROM3015は、ブートアッププログラム等のプログラムを記憶している。RAM3016は、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供する。ハードディスク3017は、通常、アプリケーションプログラム、システムプログラム、及びデータを記憶している。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の対話制御装置等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。また、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の対話制御装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切なモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。