(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0011】
(第1実施形態)
図1に示すように、本発明の第1実施形態に係る対話システム1000は、音声でユーザUと対話するロボットである対話装置100と、対話装置100がユーザUと対話する際に必要な各種処理(例えば音声認識処理、応答文作成処理等)を行うサーバ装置200と、を備える。対話装置100はユーザが発話した音声のデータ(音声データ)を外部のサーバ装置200に送信し、該サーバ装置200に音声認識処理や応答文情報作成等を行ってもらうことにより、ユーザUと対話する際の対話装置100自身の処理負荷を軽くしている。
【0012】
図2に示すように、対話装置100は頭20と胴体30とからなる。そして、対話装置100の頭20には、マイク21と、カメラ22と、スピーカ23と、センサ群24と、が設けられている。
【0013】
マイク21は、頭20の左右、人の顔でいうところの耳の位置に複数設けられており、アレイマイクを構成する。マイク21は、対話装置100の周囲にいるユーザUが発話した音声を音声データとして取得する音声取得部として機能する。
【0014】
カメラ22は、頭20の前面の中央部、人の顔でいうところの鼻の位置に設けられている撮像装置である。カメラ22は、対話装置100の正面の画像のデータ(画像データ)を取得する画像取得部として機能し、取得した画像データを後述する制御部110に入力する。
【0015】
スピーカ23は、カメラ22の下側、人の顔でいうところの口の位置に設けられている。スピーカ23は、音声を出力する音声出力部として機能する。
【0016】
センサ群24は、人の顔でいうところの目の位置に設けられている。センサ群24は、加速度センサ、障害物検知センサ等を含み、各種物理量を検出して、対話装置100の姿勢制御、衝突回避、安全性確保等のために使用される。
【0017】
対話装置100の頭20と胴体30とは、
図2に示すように、破線で示される首関節31によって相互に連結されている。首関節31は、複数のモータを含む。後述する制御部110がこれら複数のモータを駆動することにより、対話装置100の頭20を上下方向、左右方向及び傾ける方向の3軸で回転させることができる。これにより、対話装置100は、例えばうなずきの動作をすることができる。
【0018】
図2に示すように、対話装置100の胴体30の下部には足回り部32が設けられている。足回り部32は、4つの車輪(ホイール)と駆動モータとを含む。4つの車輪のうち、2つが前輪として胴体30の前側に、残り2つが後輪として胴体30の後ろ側に、それぞれ配置されている。車輪としては、例えば、オムニホイール、メカナムホイール等を使用してもよい。後述する制御部110が、駆動モータを制御して車輪を回転させると、対話装置100は移動する。
【0019】
次に、
図3を参照して、対話装置100の機能構成を説明する。
図3に示すように、対話装置100は、上述の構成に加え、通信部25と、操作ボタン33と、制御部110と、記憶部120と、を備える。
【0020】
通信部25は、サーバ装置200等の外部装置と無線通信するための、アンテナを含む無線モジュールである。例えば、通信部25は、無線LAN(Local Area Network)により無線通信を行うための無線モジュールである。通信部25を用いることにより、対話装置100は、サーバ装置200に音声データ等の音声情報を送信し、また、サーバ装置200から後述する応答文情報を受信することができる。対話装置100とサーバ装置200との無線通信は、ダイレクトな通信でもよいし、基地局、アクセスポイント等を介しての通信でもよい。
【0021】
操作ボタン33は、図示しないが、胴体30の背中の位置に設けられている。操作ボタン33は、対話装置100を操作するための各種ボタンである。操作ボタン33は、電源ボタン、スピーカ23の音量調節ボタン等を含む。
【0022】
制御部110は、CPU(Central Processing Unit)等で構成される。制御部110は、記憶部120に記憶されたプログラムを実行することにより、後述する音声記録部111、見せかけ部112、応答文情報取得部113及び応答部114として機能する。また、制御部110は、時計機能及びタイマー機能を備え、現在時刻(現在日時)や経過時間を取得することができる。
【0023】
記憶部120は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、制御部110のCPUが実行するプログラム、各種データ等を記憶する。また、記憶部120は、音声取得部(マイク21)が取得した音声データに発話日時等を付加した付加情報付音声情報121も記憶する。
【0024】
付加情報付音声情報121は、
図4に示すように、ユーザが発話した内容を、通信状態及び発話日時とともに記録したデータである。通信状態の値は、通信部25がサーバ装置200と通信可能な状態なら「接続」、通信不可能な状態なら「切断」となる。
図4では、通信状態によらずに付加情報付音声情報121を記憶しているが、通信状態が「切断」の付加情報付音声情報121だけを記憶部120に記録するようにしてもよい。また、通信切断の検出をトリガにして付加情報付音声情報121の記録を開始するようにしてもよい。また、通信状態の値は付加情報付音声情報121に含めずに、サーバ装置200が発話日時に基づいて通信状態を判断してもよい。
【0025】
次に、制御部110が実現する各機能について説明する。制御部110は、前述したように、記憶部120に記憶されたプログラムを実行することにより、音声記録部111、見せかけ部112、応答文情報取得部113及び応答部114として機能する。また、制御部110は、マルチスレッド機能に対応しており、複数のスレッド(異なる処理の流れ)を並行して実行することができる。
【0026】
音声記録部111は、音声取得部(マイク21)が取得した音声データに発話日時等を付加して付加情報付音声情報121として、記憶部120に記録する。なお、本実施形態では後述するように音声認識処理をサーバ装置200で行うが、音声認識処理を対話装置100で行う実施形態も考えられる。この場合、音声記録部111は、音声データを音声認識したテキストデータを記憶部120に記録してもよい。そこで、対話装置100がサーバ装置200に送信する情報を音声情報と表現することとする。本実施形態では音声情報は音声取得部が取得した音声データであるが、音声情報が音声認識後のテキストデータである実施形態も考えられる。そして、音声情報に発話日時等を付加した情報が、付加情報付音声情報121である。
【0027】
見せかけ部112は、通信部25によるサーバ装置200との通信が切断されている場合に、ユーザUにユーザUが発話している内容を聞いている風に見せかける動作をするための制御を行う。具体的には、うなずく、相づちを打つ等の動作をするように、首関節31やスピーカ23等を制御する。
【0028】
応答文情報取得部113は、サーバ装置200が作成した応答文に関する情報(応答文情報)を、通信部25を介して取得する。応答文情報については後述する。
【0029】
応答部114は、応答文情報取得部113が取得した応答文情報に基づいて作成された応答文で、ユーザUに対して応答する。具体的には、応答部114は、応答文情報に基づいて作成された応答文を音声合成し、スピーカ23から該応答文の音声を出力する。なお、音声合成処理をサーバ装置200が行う実施形態も考えられる。このような実施形態では音声合成後のボイスデータが応答文情報としてサーバ装置200から送信されるため、応答部114は、音声合成処理をする必要なく、そのままそのボイスデータをスピーカ23から出力することができる。
【0030】
以上、対話装置100の機能構成を説明した。次に、サーバ装置200の機能構成を説明する。
図5に示すように、サーバ装置200は、制御部210と、記憶部220と、通信部230と、を備える。
【0031】
制御部210は、CPU等で構成される。制御部210は、記憶部220に記憶されたプログラムを実行することにより、後述する音声認識部211、特徴単語抽出部212及び応答作成部213として機能する。
【0032】
記憶部220は、ROM、RAM等で構成され、制御部210のCPUが実行するプログラム、各種データ等を記憶する。また、記憶部220は、後述する応答文作成ルール221も記憶する。
【0033】
応答文作成ルール221は、
図6に示すように、特定の単語(特徴単語)毎に応答文を対応させたルールである。なお、
図6では、応答文作成ルール221は、特徴単語として、「暑い」「映画」「かわいい」のような具体的な単語を割り当てたルールになっているが、これに限られない。例えば、特徴単語を「寒暖を表すネガティブな形容詞:○い」と定義し、これに対応する応答文を「○い○い言ってると余計○くなるよ。」とルール付けしてもよい。また、寒暖を表す形容詞の他の応答文作成ルール例として、例えば、特徴単語を「寒暖を表すポジティブな形容詞:○い」と定義し、これに対応する応答文を「最近は○くなってきたのかな。○いと気持ち良いね。」とルール付けしてもよい。ここで、「寒暖を表すネガティブな形容詞」としては、例えば「暑い」「寒い」等が挙げられ、「寒暖を表すポジティブな形容詞」としては、例えば「涼しい」「暖かい」等が挙げられる。
【0034】
通信部230は、対話装置100等の外部装置と無線通信するための、アンテナを含む無線モジュールである。例えば、通信部230は、無線LAN(Local Area Network)により無線通信を行うための無線モジュールである。通信部230を用いることにより、サーバ装置200は、対話装置100から音声データ等の音声情報を受信し、また、対話装置100に後述する応答文情報を送信することができる。制御部210は、通信部230を介して対話装置100から音声情報を受信する際には受信部として機能し、通信部230を介して対話装置100に応答文情報を送信する際には送信部として機能する。
【0035】
次に、制御部210が実現する各機能について説明する。制御部210は、前述したように、記憶部220に記憶されたプログラムを実行することにより、音声認識部211、特徴単語抽出部212及び応答作成部213として機能する。
【0036】
音声認識部211は、対話装置100から送信された付加情報付音声情報121に含まれる音声データを音声認識して、ユーザUの発話内容を表すテキストデータを生成する。上述したように、音声認識を対話装置100が行う実施形態においては、音声認識部211は不要であり、この場合は、対話装置100から送信された付加情報付音声情報121に音声認識後のテキストデータが含まれている。
【0037】
特徴単語抽出部212は、音声認識部211が生成したテキストデータ(又は付加情報付音声情報121に含まれているテキストデータ)から、該テキストデータに含まれる特徴的な単語である特徴単語を抽出する。特徴単語とは、例えば、テキストデータ中に含まれる特定ワード(名詞、動詞、形容詞、形容動詞)のうち、最も多く含まれる特定ワードである。また、テキストデータ中に含まれる特定ワードのうち、強調修飾語(「とても」、「すごく」等)に修飾された特定ワードも、特徴単語になり得る。
【0038】
応答作成部213は、特徴単語抽出部212が抽出した特徴単語を、記憶部220に記憶されている応答文作成ルール221に適用して、応答文に関する情報(応答文情報)を作成する。なお、本実施形態では、応答作成部213が完成した応答文を作成しているが、これに限られない。対話処理においては、ユーザが発話した音声を音声認識し、構文解析等して、応答文を作成し、音声合成するという一連の処理が存在するが、この中の一部をサーバ装置200が行い、残りの処理を対話装置100が行うようにしてもよい。例えば、音声認識や構文解析等の重い処理をサーバ装置200が行い、応答文を完成させる処理は対話装置100が行ってもよい。これらの処理のどれをどちらの装置で行うかは任意である。そこで、サーバ装置200が対話装置100へ送信する情報を応答文情報と表現し、対話装置100がユーザUに発話する情報を応答文と表現するものとする。応答文情報と応答文が同一である(デジタルデータかアナログ音声であるか等の信号形態は異なるとしても、内容として同じ)場合もある。本実施形態では、応答文情報は応答文と同一である。
【0039】
以上、サーバ装置200の機能構成を説明した。次に、対話装置100の制御部110が行う対話制御処理について、
図7を参照して説明する。この処理は、対話装置100が起動して初期設定が完了すると開始される。
【0040】
まず、制御部110は、通信部25によるサーバ装置200との通信が切断されているか否かを判定する(ステップS101)。例えば、通信部25がアクセスポイントを経由してサーバ装置200と通信している場合、該アクセスポイントの電波が受信できないならサーバ装置200との通信が切断されていると判断する。
【0041】
サーバ装置200との通信が切断されているなら(ステップS101;Yes)、制御部110は、現在時刻(通信が切断された時刻)を記憶部120に記憶する(ステップS102)。そして、見せかけ部112としての制御部110は、後述する見せかけスレッドを起動し(ステップS103)、見せかけスレッドの処理を並行して行う。
【0042】
そして、音声記録部111としての制御部110は、音声取得部(マイク21)が取得した音声データに、通信状態(切断)及び現在時刻の情報を付加して、付加情報付音声情報121として記憶部120に記録する(ステップS104)。ステップS104は、音声記録ステップとも呼ばれる。その後、制御部110は、サーバ装置200との通信が回復したか否かを判定する(ステップS105)。サーバ装置200との通信が回復していなければ(ステップS105;No)、制御部110は、ステップS104に戻って、通信が回復するまで付加情報付音声情報121を記録しながら待機する。サーバ装置200との通信が回復したら(ステップS105;Yes)、制御部110は、見せかけスレッドを終了させる(ステップS106)。
【0043】
そして、制御部110は、ステップS102で記憶部220に記憶した通信切断時刻から現在時刻までの(通信切断中の)付加情報付音声情報121を、通信部25を介して、サーバ装置200に送信する(ステップS107)。なお、ここでは通信の回復を対話装置100が検出しているが、サーバ装置200が通信の回復を検出して、対話装置100に付加情報付音声情報121の送信をリクエストしてもよい。対話装置100がステップS107で送信した付加情報付音声情報121はサーバ装置200で音声認識され、サーバ装置200は対話装置100に応答文情報を送信する。
【0044】
すると、応答文情報取得部113としての制御部110は、通信部25を介して、サーバ装置200が送信した応答文情報を取得する(ステップS108)。ステップS108は、応答文情報取得ステップとも呼ばれる。本実施形態では完成文としての応答文を応答文情報として取得するが、これに限らず、サーバ装置200が応答文作成の全部でなく一部を担当する場合は、部分的な情報としての応答文情報(例えば後述する特徴単語の情報)を取得し、対話装置100内で応答文を完成させてもよい。
【0045】
そして、応答部114としての制御部110は、応答文情報取得部113が取得した応答文情報に基づき、ユーザに応答する(ステップS109)。本実施形態では、応答文情報は応答文そのものなので、具体的には、応答部114は、応答文の内容を音声合成して、スピーカ23から応答文を発話する。この応答文は、サーバ装置200と対話装置100との連携により、通信切断中の音声に対応する内容の応答文になっているので、ユーザは対話装置100が通信切断中もユーザの発話内容をきちんと聞いていてくれたことを確認できる。ステップS109は、応答ステップとも呼ばれる。そして、制御部110は、処理をステップS101に戻す。
【0046】
一方、ステップS101で、サーバ装置200との通信が切断されていないなら(ステップS101;No)、音声記録部111としての制御部110は、マイク21が取得した音声に、通信状態(接続)及び現在時刻の情報を付加して、付加情報付音声情報121として記憶部120に記録する(ステップS110)。そして、制御部110は、ステップS110で記録した(通信接続中の)付加情報付音声情報121を、通信部25を介してサーバ装置200に送信する(ステップS111)。
【0047】
なお、通信状態が「切断」の付加情報付音声情報121だけが記憶部120に記録されるようにした場合は、ステップS110の処理をスキップし、ステップS111の処理の代わりに、制御部110は、マイク21が取得した音声データに、通信状態(接続)及び現在時刻を付加して、付加情報付音声情報121として、通信部25を介してサーバ装置200に送信する。
【0048】
本実施形態では、上記いずれの場合も、ここで送信された付加情報付音声情報121に含まれる音声データがサーバ装置200で音声認識され、サーバ装置200は対話装置100に応答文を送信する。このサーバ装置200による処理(応答文作成処理)については後述する。
【0049】
すると、応答文情報取得部113としての制御部110は、通信部25を介して、サーバ装置200が送信した応答文情報を取得する(ステップS112)。そして、応答部114としての制御部110は、応答文情報取得部113が取得した応答文情報に基づき、ユーザに応答する(ステップS113)。本実施形態では、応答文情報は応答文そのものなので、具体的には、応答部114は、応答文の内容を音声合成して、スピーカ23から応答文を発話する。この応答文は、サーバ装置200と対話装置100との連携により、通信接続中の音声に対応する内容の応答文になっているので、従来技術により作成された応答文と同様の内容である。そして、制御部110は、処理をステップS101に戻す。
【0050】
次に、ステップS103で起動される見せかけスレッドの処理について、
図8を参照して説明する。
【0051】
まず、制御部110は、制御部110が備えるタイマーを、釈明を行う間隔設定用に使うためにリセットする(ステップS201)。これ以降このタイマーを釈明用タイマーと呼ぶことにする。
【0052】
そして、制御部110は、カメラ22が取得した画像を認識し(ステップS202)、ユーザに見つめられているか否かを判定する(ステップS203)。ユーザに見つめられているなら(ステップS203;Yes)、ユーザに例えば「今、頭がボーッとしていて、きちんとしたお返事ができないのです。ごめんなさい。」等のような釈明をする(ステップS204)。この時は、サーバ装置200との間の通信が切断されており、音声認識や応答文作成ができないからである。
【0053】
そして、釈明をしたことにより、制御部110は、釈明用タイマーをリセットする(ステップS205)。そして、制御部110は、10秒待ってから(ステップS206)、ステップS202に戻る。ここで、この10秒という値は、対話装置100が頻繁に同じ動作を繰り返さないようにするための待ち時間の例であり、10秒に限定する必要はなく、3秒、1分等、任意の値に変更可能である。なお、ステップS206におけるこの待ち時間を、他の待ち時間と区別するために、見せかけ待ち基準時間と呼ぶことにする。
【0054】
一方、ステップS203で、ユーザに見つめられていないなら(ステップS203;No)、制御部110は、釈明用タイマーの値がリセット後3分経過しているか否かを判定する(ステップS207)。なおこの3分という値は、対話装置100が頻繁に釈明しないようにするための待ち時間の例であり、3分に限定する必要はない。例えば、1分、10分等、任意の値に変更可能である。なお、この待ち時間を他の待ち時間と区別するために、釈明基準時間と呼ぶことにする。
【0055】
3分経過しているなら(ステップS207;Yes)、ステップS204に進み、以降の処理は上述した通りとなる。3分経過していないなら(ステップS207;No)、制御部110は、マイク21から取得される音声が途切れたか否かを判定する(ステップS208)。この判定は、例えば、マイク21から取得される音声において、無音期間が基準無音時間(例えば1秒)以上続いたら、制御部110は音声が途切れたと判定する。
【0056】
音声が途切れていなければ(ステップS208;No)、ステップS202に戻る。音声が途切れていれば(ステップS208;Yes)、制御部110は、「うなずく」、「相づちを打つ」、「つぶやく」の3つの中から1つランダムに選択し、選択した動作を行うように、首関節31、スピーカ23等を制御する(ステップS209)。
【0057】
例えば、「うなずく」を選択したら、制御部110は、首関節31を用いて頭20を縦に振るように動かす。このうなずきの動作について、制御部110は、ステップS209を実行する度に、頭20を振る回数や速度をランダムに変更してもよい。また、「相づちを打つ」を選択したら、制御部110は、首関節31を用いて頭20を縦に振るように動かしながら、スピーカ23から「はい」、「そうですね」、「うん」等を発話する。この相づちの動作についても、制御部110は、ステップS209を実行する度に、制御部110は、頭20を振る回数や速度、スピーカ23から発話する内容をランダムに変更してもよい。
【0058】
また「つぶやく」を選択したら、制御部110は、スピーカ23から適当なつぶやきを発話させる。ここで、適当なつぶやきとは、人間的なつぶやきでもよいが、動物の鳴き声を模倣した音や、ロボットにありがちな人間には理解不能な電子音等でもよい。このつぶやきについても、制御部110は、ステップS209を実行する度に、いくつかの種類の中から制御部110がランダムに選択したつぶやきを発話させるようにしてもよい。
【0059】
そして、ステップS206に進み、以降の処理は上述した通りとなる。以上、説明した見せかけスレッドの処理により、対話装置100は、サーバ装置200との通信が切断している時でも、ユーザに聞いている風に見せかけることができる。
【0060】
次に、サーバ装置200が行う応答文作成処理について、
図9を参照して説明する。なお、サーバ装置200は起動すると応答文作成処理を開始する。
【0061】
まず、サーバ装置200の通信部230は、対話装置100が送信した付加情報付音声情報121を受信する(ステップS301)。対話装置100から付加情報付音声情報121が送信されていないなら、送信されるまでステップS301で待機する。そして、制御部210は、受信した付加情報付音声情報121が、通信切断中のものであるか否かを判定する(ステップS302)。付加情報付音声情報121には、
図4に示すように通信状態を示す情報が含まれているので、この情報を参照することにより、受信した付加情報付音声情報121が通信切断中のものであるか否かを判定することができる。また、サーバ装置200は、対話装置100との通信状況を把握できるので、付加情報付音声情報121に通信状態を示す情報が含まれていなくても、付加情報付音声情報121に含まれている発話日時の情報に基づいて、その付加情報付音声情報121が通信切断中のものであるか否かを判断することもできる。
【0062】
受信した付加情報付音声情報121が、通信切断中のものであるなら(ステップS302;Yes)、音声認識部211としての制御部210は、付加情報付音声情報121に含まれる音声データを音声認識してテキストデータを生成する(ステップS303)。そして、特徴単語抽出部212としての制御部210は、生成されたテキストデータから特徴単語を抽出する(ステップS304)。そして、応答作成部213としての制御部210は、抽出された特徴単語と応答文作成ルール221に基づき、応答文情報(本実施形態では応答文そのもの)を作成する(ステップS305)。そして、応答作成部213は、作成した応答文(応答文情報)を、通信部230を介して対話装置100に送信する(ステップS306)。そして、ステップS301に戻る。
【0063】
一方、受信した付加情報付音声情報121が、通信切断中のものでなければ(ステップS302;No)、音声認識部211としての制御部210は、付加情報付音声情報121に含まれる音声データを音声認識してテキストデータを生成する(ステップS307)。そして、応答作成部213としての制御部210は、生成されたテキストデータに対する応答文情報(本実施形態では応答文そのもの)を、従来の応答文作成技術を用いて作成する(ステップS308)。そして、応答作成部213は、作成した応答文(応答文情報)を、通信部230を介して対話装置100に送信する(ステップS309)。そして、ステップS301に戻る。
【0064】
以上説明した応答文作成処理により、通信接続中は通常の応答文情報が生成され、通信切断中は、特徴単語及び応答文作成ルールに基づいて応答文情報が作成される。したがって、サーバ装置200は、対話装置100との通信が切断している間の音声情報に対して、ユーザの発話をきちんと聞いていたかのように思わせるための応答文情報を作成することができる。
【0065】
そして、上述の対話装置100の対話制御処理により、サーバ装置200との通信が切断している間の音声情報に対する応答文情報をサーバ装置200から取得することにより、対話装置100は、ユーザの発話をきちんと聞いていたかのように思わせる応答文を発話することができる。
【0066】
例えば、
図4のNo1からNo.3に示すユーザの発話内容に対し、対話装置100はその時点では応答文を返答できないが、サーバ装置200との通信が回復した時点で、これらのNo.1からNo.3に示すユーザの発話内容がサーバ装置200に送信される。そして、サーバ装置200の特徴単語抽出部212により、これらのユーザの発話内容から、最も多く使われている特定ワードとして「暑い」が抽出される。この「暑い」を
図6に示す応答文作成ルールに適用することにより、応答作成部213は「暑い暑い言っていると余計暑くなるよ。」という応答文情報(本実施形態では、応答文そのもの)を作成する。そして、対話装置100の応答文情報取得部113は、この応答文(応答文情報)を取得し、応答部114により、対話装置100はユーザに対して「暑い暑い言ってると余計暑くなるよ。」と発話することができる。
【0067】
このように、対話装置100は、サーバ装置200との通信が切断している時には小まめな応答を行うことができないが、通信が回復した時に、切断中のユーザの発話内容に含まれる特徴単語(最も多く使われている特定ワード等)に基づいた応答文を発話することによって、比較的短い応答文で、通信切断中もきちんとユーザの発話内容を聞いていたことをユーザに示すことができる。このように、対話装置100は、通信状況が悪い場合の受け答え技術を改善することができる。
【0068】
(第2実施形態)
上述した第1実施形態では、対話装置100は、サーバ装置200との通信が切断している間にユーザが発話した内容全体の中で最も多く使われている特定ワード等(1つの特徴単語)に対応する応答文で応答する。特徴単語はユーザの印象に残りやすいので、このような応答でもあまり問題は生じないと考えられるが、場合によってはユーザが発話中に話題が変化し、時間の経過とともに複数の特徴単語が同じ位多く使われることもあり得る。このような場合は、話題毎にそれぞれ最も多く使われている特徴単語を抽出して、抽出された複数の特徴単語それぞれに対応する応答文により複数回応答した方が望ましい場合もあると考えられる。そこで、このような複数の応答文により応答可能な第2実施形態について説明する。
【0069】
第2実施形態に係る対話システム1001が対話装置101とサーバ装置201とを備える点は、第1実施形態に係る対話システム1000と同じである。第2実施形態に係る対話装置101は、第1実施形態に係る対話装置100と同じ外観である。対話装置101の機能構成は、
図10に示すように、第1実施形態に係る対話装置100と比較して、記憶部120に、応答文情報リスト122を記憶する点が異なる。また、サーバ装置201の機能構成は、第1実施形態に係るサーバ装置200と同じである。
【0070】
応答文情報リスト122は、
図11に示すように、「発話日時」、「特徴単語」「ユーザの音声に対する応答文」を含み、これらは、サーバ装置201から送信された情報である。例えば、
図11のNo.1は、ユーザが2017年9月5日10時3分5秒から2017年9月5日10時3分11秒までの間に発話した内容に含まれている特徴単語が「暑い」であり、このユーザの発話に対する応答文が「暑い暑い言ってると余計暑くなるよ。」であることを示している。No.2以降も同様である。なお、説明のための一例であるが、
図11に示される「ユーザの音声に対する応答文」が対応する「ユーザの発話内容」は、
図4に示す付加情報付音声情報121に示されているものである。
【0071】
次に、対話装置101の制御部110が行う対話制御処理について、
図12を参照して説明する。この処理は、第1実施形態に係る対話装置100の対話制御処理(
図7)と比べ、一部を除いて同じなので、異なる点を中心に説明する。
【0072】
ステップS101からステップS107及びステップS110からステップS113は、
図7を参照して説明した処理と同じである。ステップS107の次のステップであるステップS121では、応答文情報取得部113としての制御部110は、通信部25を介して、サーバ装置201が送信した応答文情報リスト122を取得する。次に、応答文情報リスト122には、1つ以上の応答文情報が含まれているので、応答文情報取得部113としての制御部110は、応答文情報リスト122から応答文情報を1つ取り出す(ステップS122)。
【0073】
応答文情報リスト122から取り出した応答文情報は、
図11に示すように、「発話日時」が含まれている。制御部110は、「発話日時」の終了時刻が現在時刻より2分以上前であるか否かを判定する(ステップS123)。ここで2分とは、次に述べるステップS124で前置きを追加するか否かを判定するための時間なので、前置き判定基準時間とも言い、2分に限られない。前置き判定基準時間は、例えば3分、10分等、任意の値に変更可能である。
【0074】
「発話日時」の終了時刻が現在時刻より2分以上前なら(ステップS123;Yes)、応答部114としての制御部110は、応答文情報に前置きを追加する。ここで前置きとは、例えば「そういえば、暑いと言ってましたけど」というような句である。より一般的には、「そういえば、[特徴単語]と言ってましたけど」と表すことができる。この前置きを追加することにより、「特徴単語」に対応する応答文が唐突に発話されたような印象をユーザに与えることを避けることができる。なお、「発話日時」の終了時刻が現在時刻より2分以上前ということではないなら(ステップS123;No)、前置きを追加すること無く、ステップS125に進む。
【0075】
そして、応答部114としての制御部110は、応答文情報取得部113が取得した応答文情報(ステップS124で前置きが追加された場合は、前置き付きの応答文情報)に基づき、ユーザに応答する(ステップS125)。本実施形態では、応答文情報は応答文そのものなので、具体的には、応答部114は、応答文(又は前置き付きの応答文)の内容を音声合成して、スピーカ23から応答文を発話する。そして、制御部110は、応答文情報リスト122に次の応答文情報(まだ発話の対象になっていない応答文情報)が有るかないかを判定する(ステップS126)。
【0076】
次の応答文情報があるなら(ステップS126;Yes)、ステップS122に戻り、応答文情報リストに存在する全ての応答文情報が発話されるまで、ステップS122からステップS125までの処理を繰り返す。次の応答文情報がないなら(ステップS126;No)、ステップS101に戻る。この応答文情報リストには、サーバ装置201で作成された、通信切断中の音声に対応する内容の、複数の応答文が含まれているので、ユーザは対話装置101が通信切断中もユーザの発話内容をきちんと聞いていてくれたことを確認できる。
【0077】
次に、サーバ装置201が行う応答文作成処理について、
図13を参照して説明する。この処理は、第1実施形態に係るサーバ装置200の応答文作成処理(
図9)と比べ、一部を除いて同じなので、異なる点を中心に説明する。
【0078】
ステップS301からステップS303及びステップS307からステップS309は、
図9を参照して説明した処理と同じである。ステップS303の次のステップであるステップS321では、制御部210は、対話装置101が送信した音声情報(本実施形態では音声データ)から話の切れ目(話題)を抽出する。これは、ステップS303で生成されたテキストデータに基づいて話の切れ目(話題)を抽出してもよいし、音声データに基づいて例えば音声の途切れ等に基づいて話の切れ目(話題)を抽出してもよい。
【0079】
次に、特徴単語抽出部212としての制御部210は、ステップS321で抽出した話の切れ目(話題)毎に、特徴単語を抽出する(ステップS322)。例えば、音声データの話の切れ目が発話開始から3分のところと5分のところに抽出された場合を想定する。この場合、発話開始後3分までの部分に最も多く含まれている特定ワードを最初の話題の特徴単語として抽出する。そして、発話開始後3分から5分までの部分に最も多く含まれている特定ワードを2番目の話題の特徴単語として抽出する。そして、発話開始後5分以降の部分に最も多く含まれている特定ワードを3番目の話題の特徴単語として抽出する。
【0080】
そして、応答作成部213としての制御部210は、話の切れ目(話題)毎に抽出した特徴単語を応答文作成ルール221に適用して応答文情報(本実施形態では応答文そのもの)を作成し、その応答文に発話日時及び特徴単語を付加して、
図11に示すような応答文情報リストを作成する(ステップS323)。そして、応答作成部213は、作成した応答文情報リストを、通信部230を介して対話装置101に送信する(ステップS324)。そして、ステップS301に戻る。
【0081】
以上説明した応答文作成処理により、通信切断中に複数の話題からなる発話をユーザがしたとしても、各話題にそれぞれ含まれる特徴単語に基づいて応答文情報リストが作成される。したがって、サーバ装置201は、対話装置101との通信が切断している間に発話された複数の話題それぞれに対応する応答文情報を作成することができる。
【0082】
そして、上述の対話装置101の対話制御処理により、サーバ装置201との通信が切断している間の音声情報に対する応答文情報リストをサーバ装置201から取得することにより、対話装置101は、複数の応答文による応答を行うことができる。これによって、1つの応答文による応答に比べ、ユーザの発話をよりきちんと聞いていたかのように思わせる応答を行うことができる。
【0083】
例えば、
図4のNo.8からNo.12に示すユーザの発話内容に対し、対話装置101はその時点では応答文を返答できないが、サーバ装置201との通信が回復した時点で、これらのNo.8からNo.12に示すユーザの発話内容がサーバ装置201に送信される。そして、サーバ装置201の応答文作成処理により、これらのユーザの発話内容から、
図11のNo.2及びNo.3に示す応答文情報リストが作成される。そして、対話装置101の応答文情報取得部113は、この応答文情報リストを取得し、応答部114により、対話装置101はユーザに対して「そういえば、映画と言ってましたけど、映画って良いよね。私も映画大好き。」、「そういえば、かわいいと言ってましたけど、かわいいって私のこと?嬉しい。」等と発話することができる。
【0084】
このように、対話装置101は、サーバ装置201との通信が切断している時には小まめな応答を行うことができないが、通信が回復した時に、切断中のユーザの発話内容に複数の話題が含まれていても、それぞれの話題中の特徴単語(最も多く使われている特定ワード等)に基づいた応答文を発話することができる。したがって、対話装置101は、各話題についてきちんとユーザの発話内容を聞いていたことを示すことができる。このように、対話装置101は、通信状況が悪い場合の受け答え技術をさらに改善することができる。
【0085】
(第3実施形態)
対話装置が自己の位置を取得できるようにすると、応答文に位置に関する情報を含めることができるようになり、ユーザの発話内容をどこで聞いていたかということも示すことができるようになる。このような第3実施形態について説明する。
【0086】
第3実施形態に係る対話システム1002が対話装置102とサーバ装置202とを備える点は、第1実施形態に係る対話システム1000と同じである。第3実施形態に係る対話装置102は、第1実施形態に係る対話装置100と同じ外観である。対話装置102の機能構成は、
図14に示すように、第1実施形態に係る対話装置100と比較して、位置取得部26を備える点と、記憶部120に位置履歴データ123を記憶する点が異なる。また、サーバ装置202の機能構成は、第1実施形態に係るサーバ装置200と同じである。
【0087】
位置取得部26は、GPS(Global Positioning System)衛星からの電波を受信することによって、自己位置の座標(位置データ)を取得することができる。自己位置の座標の情報は、緯度及び経度で表されている。
【0088】
位置履歴データ123は、
図15に示すように、自己位置を取得した日時と、自己位置の座標(緯度及び経度)と、のペアの履歴である。
【0089】
次に、対話装置102の制御部110が行う対話制御処理について、
図16を参照して説明する。この処理は、第1実施形態に係る対話装置100の対話制御処理(
図7)と比べ、一部を除いて同じなので、異なる点を中心に説明する。
【0090】
ステップS101からステップS103、ステップS105からステップS106及びステップS110からステップS113は、
図7を参照して説明した処理と同じである。ステップS103の次のステップであるステップS131では、音声記録部111としての制御部110は、マイク21が取得した音声データを、通信状態(切断)及び現在時刻とともに、付加情報付音声情報121として記憶部120に記録し、また、制御部110は、位置取得部26が取得した位置データを取得日時とともに、位置履歴データ123として記憶部120に記憶する。
【0091】
そして、ステップS106の次のステップであるステップS132では、制御部110は、ステップS102で記憶部220に記憶した通信切断時刻から現在時刻までの(通信切断中の)付加情報付音声情報121と位置履歴データ123とを、通信部25を介して、サーバ装置202に送信する。ここで送信した付加情報付音声情報121及び位置履歴データ123はサーバ装置202で音声認識及び場所名検索され、サーバ装置202は対話装置102に特徴単語、応答文及び位置に対応する場所名を送信する。具体例を示すと、位置に対応する場所名が存在すれば、サーバ装置202は、例えば、
図17のNo.1に示すように、特徴単語「暑い」、応答文及び場所名「第一公園」を送信する。また、位置に対応する場所名が存在しなければ、サーバ装置202は、例えば、
図17のNo.2に示すように、特徴単語「映画」、応答文及び場所名が無いことを示すデータ「−−−」を送信する。このサーバ装置202による処理(応答文作成処理)については後述する。
【0092】
すると、応答文情報取得部113としての制御部110は、通信部25を介して、サーバ装置202が送信した特徴単語、応答文情報(本実施形態においては応答文そのもの)及び位置に対応する場所名を取得する(ステップS133)。そして、応答部114としての制御部110は、位置に対応する場所名が存在するか否かを判定する(ステップS134)。位置に対応する場所名が存在するなら(ステップS134;Yes)、応答文情報取得部113は、取得した応答文情報に、場所に関する前置きを追加する(ステップS135)。場所に関する前置きとは、例えば「そういえば、さっき公園にいたときに、暑いって言ってたけど」というような句である。より一般的には、「そういえば、さっき[位置に対応する場所名]にいたときに、[特徴単語]って言ってたけど」と表すことができる。なお、位置に対応する場所名が存在しないなら(ステップS134;No)、前置きを追加すること無く、ステップS136に進む。
【0093】
そして、応答部114としての制御部110は、応答文情報取得部113が取得した応答文情報(ステップS135で前置きが追加された場合は、前置き付きの応答文情報)に基づき、ユーザに応答する(ステップS136)。本実施形態では、応答文情報は応答文そのものなので、具体的には、応答部114は、応答文(又は前置き付きの応答文)の内容を音声合成して、スピーカ23から応答文を発話する。そして、制御部110は、処理をステップS101に戻す。
【0094】
次に、サーバ装置202が行う応答文作成処理について、
図18を参照して説明する。この処理は、第1実施形態に係るサーバ装置200の応答文作成処理(
図9)と比べ、一部を除いて同じなので、異なる点を中心に説明する。
【0095】
ステップS301からステップS302、ステップS303からステップS305及びステップS307からステップS309は、
図9を参照して説明した処理と同じである。ステップS302の判定がYesの場合の処理であるステップS331では、通信部230は、対話装置102が送信した位置履歴データ123を受信する。そして、制御部210は、位置履歴データ123に含まれる各座標について、緯度及び経度から場所名を取得するクラウドサービスを利用して、場所名を取得する(ステップS332)。例えば、google(登録商標)や、ゼンリン(登録商標)等の地図データベースを保有する企業から情報提供を受けることにより、ビル名などのかなり詳細な場所名を取得することができる。ただし、場所名が定義されていない座標も存在するので、場所名が取得できないこともある。
【0096】
そして、ステップS305の次のステップであるステップS333では、制御部210は、ステップS332で場所名を取得できたか否かを判定する。場所名が取得できたなら(ステップS333;Yes)、応答作成部213は、ステップS304で抽出した特徴単語、ステップS305で作成した応答文情報、及び、ステップS332で取得した場所名を通信部230を介して対話装置102に送信する(ステップS334)。この送信データは、例えば
図17のNo.1やNo.3に示すようなデータである。
【0097】
場所名が取得できなかったなら(ステップS333;No)、応答作成部213は、ステップS304で抽出した特徴単語、ステップS305で作成した応答文情報、及び、場所名が無いことを示すデータを、通信部230を介して対話装置102に送信する(ステップS335)。この送信データは、例えば
図17のNo.2に示すようなデータである。
【0098】
そして、何れの場合(場所名が取得できた場合も取得できない場合も)も、その後、ステップS301に戻る。
【0099】
以上説明した応答文作成処理により、通信切断中の発話内容に対する応答文情報には、特徴単語の情報と場所名の情報を付加して対話装置102に送信することができる。そして、上述の対話装置102の対話制御処理により、サーバ装置202との通信が切断している間の音声情報に対する応答文情報を、サーバ装置202から取得することにより、対話装置102は、ユーザがどの場所でどのような話をしたかをきちんと聞いていたかのように思わせる応答文で応答することができる。このように、対話装置102は、通信状況が悪い場合の受け答え技術をさらに改善することができる。
【0100】
(変形例)
上述の各実施形態は任意に組み合わせることができる。例えば第2実施形態と第3実施形態とを組み合わせることにより、複数の話題に対応した応答文を、各話題を発話した場所についての前置きとともに発話させることができるようになる。これにより、例えば、「そういえば、さっき、第一公園にいたときに、暑いって言ってたけど、暑い暑い言ってると余計暑くなるよ。」、「そういえば、映画って言ってましたけど、映画って良いよね。私も映画大好き。」、「そういえば、さっき、第三食堂にいたときに、かわいいって言ってたけど、かわいいって私のこと?嬉しい。」のような発話を対話装置にさせることができる。これにより、対話装置がサーバ装置と通信できない状態のときのユーザの発話内容の話題の変化や各話題がどの場所で発話されたかに対して、あたかも対話装置がきちんと聞いていたかのように受け答えすることができる。したがって、この対話装置の変形例は、通信状況が悪い場合の受け答え技術をさらに改善することができる。
【0101】
また、上述の各実施形態では、サーバ装置と対話装置の通信環境の乱れを想定して説明したが、節電等のために意図的に両装置間の通信を遮断した場合にも適用できるものである。
【0102】
また、上述の各実施形態では、対話装置がユーザ1名に対応しているイメージで説明したが、対話装置が個人認識機能を搭載することにより、複数のユーザにそれぞれ対応した受け答えをすることが可能である。
【0103】
なお、対話装置100,101,102の各機能は、通常のPC(Personal Computer)等のコンピュータによっても実施することができる。具体的には、上記実施形態では、対話装置100,101,102が行う対話制御処理等のプログラムが、記憶部120のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)及びMO(Magneto−Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【0104】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0105】
(付記1)
ユーザが発話した音声に対する応答文を外部のサーバ装置と通信しながら作成する対話装置であって、
ユーザが発話した音声を音声データとして取得する音声取得部と、
前記音声取得部が取得した音声データに基づく音声情報を記録する音声記録部と、
前記サーバ装置と通信する通信部と、
前記通信部による前記サーバ装置との通信が一時的に切断した後に回復した状態において、通信切断中に前記音声記録部が記録した音声情報を前記サーバ装置に送信し、前記音声情報に対する応答文情報を前記サーバ装置から取得する、応答文情報取得部と、
前記応答文情報取得部が取得した応答文情報に基づいて作成された応答文でユーザに応答する応答部と、
を備える対話装置。
【0106】
(付記2)
前記通信部による前記サーバ装置との通信が切断している間ユーザに聞いている風に見せかける見せかけ部をさらに備える、
付記1に記載の対話装置。
【0107】
(付記3)
前記見せかけ部は、前記音声取得部が取得した前記音声データに応じてうなずく、相づちを打つ、つぶやく、の少なくとも1つを実行する、
付記2に記載の対話装置。
【0108】
(付記4)
前記見せかけ部は、釈明基準時間が経過すると、ユーザに対し適切な応答ができないことを釈明する、
付記2又は3に記載の対話装置。
【0109】
(付記5)
前記応答文は、前記音声データを音声認識して取得したテキストデータに含まれる特徴単語に基づいて作成される、
付記1から4のいずれか1つに記載の対話装置。
【0110】
(付記6)
前記特徴単語は、前記音声データを音声認識して取得したテキストデータに最も多く含まれる特定ワードである、
付記5に記載の対話装置。
【0111】
(付記7)
前記特徴単語は、前記音声データを音声認識して取得したテキストデータに含まれる特定ワードのうち、強調修飾語に修飾された特定ワードである、
付記5に記載の対話装置。
【0112】
(付記8)
前記応答文は、前記特徴単語に応答文作成ルールを適用することによって作成される、
付記5から7のいずれか1つに記載の対話装置。
【0113】
(付記9)
前記応答文情報取得部は、通信切断中に前記音声記録部が記録した音声情報の話題毎の前記音声情報に対する応答文情報を前記サーバ装置から取得し、
前記応答部は、前記応答文情報取得部が取得した話題毎の応答文情報に基づいて作成した応答文でユーザに応答する、
付記1から8のいずれか1つに記載の対話装置。
【0114】
(付記10)
前記応答部は、前記応答文情報取得部が取得した応答文情報に基づいて作成した応答文に前置きを追加した応答文で、ユーザに応答する、
付記1から9のいずれか1つに記載の対話装置。
【0115】
(付記11)
自己の位置データを取得する位置取得部をさらに備え、
前記応答文情報取得部は、前記通信部による前記サーバ装置との通信が一時的に切断した後に回復した状態において、通信切断中に前記音声記録部が記録した音声情報及び通信切断中に前記位置取得部が取得した位置データを前記サーバ装置に送信し、前記音声情報に対する応答文情報及び前記位置データに対応する場所名を前記サーバ装置から取得し、
前記応答部は、前記応答文情報取得部が取得した応答文情報に基づいて作成された応答文に、前記応答文情報取得部が取得した場所名を含む前置きを追加した応答文でユーザに応答する、
付記1から10のいずれか1つに記載の対話装置。
【0116】
(付記12)
制御部が、ユーザが発話した音声に基づく音声情報を記録し、
外部のサーバ装置との通信が一時的に切断した後に回復した状態において、通信切断中に記録された前記音声情報に対応する応答文情報を前記サーバ装置に作成させ、
前記サーバ装置から受信した前記応答文情報に基づいた応答文でユーザに応答する対話方法。
【0117】
(付記13)
ユーザが発話した音声に対する応答文をサーバ装置と通信しながら作成する対話装置と、前記サーバ装置と、を備える対話システムにおけるサーバ装置であって、
前記対話装置と通信する通信部と、
前記ユーザが発話した音声に基づく音声情報を前記対話装置から前記通信部を介して受信する受信部と、
前記受信部が受信した音声情報に含まれる音声データを音声認識してテキストデータを生成する音声認識部と、
前記音声認識部が生成したテキストデータから該テキストデータに含まれる特徴的な単語である特徴単語を抽出する特徴単語抽出部と、
前記特徴単語抽出部が抽出した特徴単語に基づき、応答文情報を作成する応答作成部と、
前記応答作成部が作成した応答文情報を前記通信部を介して送信する送信部と、
を備え、
前記通信部による前記対話装置との通信が一時的に切断した後に回復した状態において、通信切断中の音声情報を前記対話装置から受信し、前記受信した音声情報に対する応答文情報を作成して前記対話装置に送信する、
ことを特徴とするサーバ装置。
【0118】
(付記14)
ユーザが発話した音声に対する応答文を外部のサーバ装置と通信しながら作成する対話装置のコンピュータに、
ユーザが発話した音声に基づく音声情報を記録する音声記録ステップ、
前記サーバ装置との通信が一時的に切断した後に回復した状態において、通信切断中に前記音声記録ステップで記録した音声情報を前記サーバ装置に送信し、前記音声情報に対する応答文情報を前記サーバ装置から取得する、応答文情報取得ステップ、及び、
前記応答文情報取得ステップで取得した応答文情報に基づいて作成された応答文でユーザに応答する応答ステップ、
を実行させるためのプログラム。