〔実施形態1〕
図1〜図5に基づいて、本発明の第1の実施の形態(実施形態1)を説明する。
(対話システム300の概要)
図3は、対話システム300を概略的に示す模式図である。図3に示されるように、上記対話システム300は、対話ロボット100とサーバ200とを含む。上記対話システム300によれば、ユーザは自然言語を用いた音声によって上記対話ロボット100と対話することにより、様々な情報を得ることができる。
対話ロボット(情報処理装置)100は、ユーザが発した音声に応じて、当該ユーザに所定のフレーズ(返答文)を提示する装置である。音声を入力可能であり、入力された音声に基づいて上記所定のフレーズを提示可能な機器でありさえすればよく、対話ロボットに限定されない(例えば、上記対話ロボット100は、タブレット端末、スマートフォン、パーソナルコンピュータなどによっても実現され得る)。
サーバ200は、ユーザが上記対話ロボット100に対して発した音声に応じて、当該ユーザに所定のフレーズを提示するように当該対話ロボット100を制御する装置である。なお、図3に示されるように、上記対話ロボット100と上記サーバ200とは、所定の通信方式にしたがう通信網を介して通信可能に接続されている。
上記対話システム300において、ユーザが発した音声に対する回答として、対話ロボット100がフレーズを取得する場合、以下の2つが考えられる。
(1)フレーズをローカルから取得する
上記対話ロボット100が上記音声を認識した結果が、当該対話ロボット100が備える記憶部に格納されたフレーズセット(ローカル辞書)に含まれる場合、上記対話ロボット100は、上記フレーズセットにおいて上記認識した結果に対応する所定のフレーズを、上記記憶部から取得する。
例えば、ユーザが上記対話ロボット100に対して「おはよう」と音声によって呼びかけた場合、当該音声を認識した結果は上記フレーズセットに含まれるため、上記対話ロボット100は、上記フレーズセットにおいて上記認識した結果に対応する「おはよう、今日の調子はどう?」というフレーズ(図4の(a)に示される表の1行目を参照)を、上記記憶部から取得し、当該フレーズを音声によってユーザに提示する。上記(1)の場合のように、対話ロボット100は、簡単な呼びかけに対するフレーズをユーザに返すことができる。
(2)フレーズをクラウドから取得する
上記対話ロボット100が上記音声を認識した結果が上記フレーズセットに含まれない場合、上記対話ロボット100は、当該音声をサーバ200に送信(アップロード)する。サーバ200は、当該サーバ200が備える記憶部に格納されたフレーズセット(クラウド辞書)において、上記認識した結果に対応する所定のフレーズを特定する。上記対話ロボット100は、上記サーバ200によって特定されたフレーズを取得(ダウンロード)する。
例えば、ユーザが上記対話ロボット100に対して「今日の天気は?」と音声によって呼びかけをした場合、当該音声を認識した結果は上記フレーズセット(ローカル辞書)には含まれないため、上記対話ロボット100は、上記サーバ200から「雨だよ、傘を持っていってね」という上記フレーズを取得し、当該フレーズを音声によってユーザに提示する。音声を認識した結果にマッチするパターン(検出ワード)は、上記ローカル辞書よりも上記クラウド辞書の方に多く含まれることが通常であるため、上記(2)の場合のように、対話ロボット100は、複雑な呼びかけに対しても適切なフレーズをユーザに返すことができる。
上記(1)および(2)のいずれの場合においても、上記対話ロボット100がフレーズを提示する前に、他のフレーズを提示することが求められることがある。例えば、ユーザが上記対話ロボット100に対して「今日の天気は?」(先の呼びかけ)と音声によって呼びかけた場合、当該対話ロボット100が「雨だよ、傘を持っていってね」(先のフレーズ)というフレーズをユーザに提示する前に、当該ユーザが「ところで、スポーツのニュースは?」(後の呼びかけ)と呼びかけることにより、「昨日、チームAは大勝だったよ」(後のフレーズ)というフレーズを提示することが求められることがある。
このように、先の呼びかけに対する先のフレーズと、後の呼びかけに対する後のフレーズとが交錯するのは、上記先のフレーズをユーザに提示するタイミングが遅れることがあるからである。すなわち、上記(1)の場合においては、上記ローカル辞書から適切なフレーズを抽出(検索)する処理が重いことによって、上記(2)の場合においては、上記対話ロボット100と上記サーバ200との間で通信が停滞することによって、上記タイミングが遅延することがある。特に、本実施の形態で説明するように、主要なフレーズセットがサーバ200の側にある(クラウド構成をとる)場合、通信環境の悪化が原因となって上記タイミングが遅延しやすい。人間同士の会話を模擬する対話において、不自然な遅延が発生する(奇妙な間が空く)ことは許容されないため、先の呼びかけに対する先のフレーズが未提示であっても、ユーザは後のフレーズを要求することが想定される。このとき、先のフレーズが未提示のままになるおそれが考えられる。
そこで、上記対話ロボット100は、先のフレーズを提示する前に、後のフレーズが新たに取得された場合、先のフレーズをユーザに提示することが必要であるときは、後のフレーズを提示した後に、先のフレーズを提示する。これにより、上記対話ロボット100は、先のフレーズをユーザに提示することが必要と判断される場合、当該先のフレーズを未提示のままにすることなく、当該先のフレーズを必ずユーザに提示できる。
以下の説明においては、一例として、「今日の天気は?」という先の呼びかけが音声1aによってユーザから行われ、その後に「ところで、スポーツのニュースは?」という後の呼びかけが音声1bによって行われたとする。そして、上記先の呼びかけに対する回答として「雨だよ、傘を持っていってね」という先のフレーズ(フレーズ6a)を音声1cによって、上記後の呼びかけに対する回答として「昨日、チームAは大勝だったよ」という後のフレーズ(フレーズ6b)を音声1dによって、上記対話ロボット100は、それぞれユーザに提示するとする。
(対話ロボット100の構成)
図1は、対話ロボット100の要部構成を示すブロック図である。図1に示されるように、対話ロボット100は、通信部50a(受信部51a、送信部52a)、制御部10a(音声検出部11、音声認識部12、回答確定部13、回答取得部14、音声送出部15、音声出力部16、フラグ判定部17、回答格納部18)、音声入出力部40(マイク41、スピーカ42)、および、記憶部30aを備えている。
音声入出力部40は、対話ロボット100に対する音声の入出力を制御するものである。音声入出力部40は、マイク41とスピーカ42とを含む。
マイク41は、対話ロボット100の周囲から音声を集め、当該音声1aおよび音声1bをそれぞれ表す音声信号2aおよび音声信号2bを、音声検出部11に出力する。
スピーカ42は、音声出力部16から入力される音声信号2cおよび音声信号2dを、音声1cおよび音声1dにそれぞれ変換し、当該音声1cおよび当該音声1dを外部に出力する。なお、スピーカ42は、対話ロボット100に内蔵されたものであってもよいし、外部接続端子を介して外付けされたものであってもよいし、通信可能に接続されたものであってもよい。
制御部10aは、対話ロボット100が有する各種の機能を統括的に制御する。制御部10aは、音声検出部11、音声認識部12、回答確定部13、回答取得部14、音声送出部15、音声出力部16、フラグ判定部17、および、回答格納部18を含む。
音声検出部11は、ユーザが発した音声を検出する。具体的には、マイク41から音声信号2aまたは音声信号2bが入力された場合、当該音声信号2aおよび当該音声信号2bを、対話ロボット100においてデジタル処理が可能な音声情報3aおよび音声情報3bにそれぞれ変換し、当該音声情報3aおよび当該音声情報3bを回答確定部13および音声認識部12に出力する。
音声認識部12は、ユーザが対話ロボット100に対して発した音声を認識する。具体的には、音声検出部11から音声情報3aまたは音声情報3bが入力された場合、音声認識部12は、所定の音声認識のアルゴリズムにしたがって、当該音声情報3aまたは当該音声情報3bを認識した結果(認識結果4aまたは認識結果4b)をそれぞれ得る。ここで、当該認識結果4aまたは当該認識結果4bは、上記音声情報3aまたは上記音声情報3bから変換されたテキスト(ユーザが発話した内容を文字によって表現するもの)を少なくとも含む。なお、上記音声認識のアルゴリズムとしては、公知のものが適宜採用されてよい。音声認識部12は、上記認識結果4aおよび上記認識結果4bを回答確定部13に出力する。
回答確定部13は、音声を認識した結果に基づいて、ユーザに返す回答を確定する。具体的には、音声認識部12から上記認識結果4aまたは上記認識結果4bが入力された場合、回答確定部13は、記憶部30aに格納されたフレーズセット5aを参照し、上記認識結果4aまたは上記認識結果4bに含まれる上記テキストを含むパターン(検出ワード)が、当該フレーズセット5aに含まれるか否かを判定する。含まれると判定される場合、回答確定部13は、当該パターンに対応付けられたフレーズをユーザに返す回答として確定し、回答取得部14に出力する。一方、含まれないと判定される場合、回答確定部13は、音声検出部11から入力された音声情報3aを音声送出部15に出力する。このとき、回答確定部13は、回答を保留するフレーズを回答取得部14に出力することによって、当該フレーズをユーザに提示してよい。
図4は、フレーズセットの一例を示す表であり、(a)は、対話ロボット100が記憶部30aに保持するフレーズセット5a(ローカル辞書)を示し、(b)は、サーバ200が記憶部30bに保持するフレーズセット5b(クラウド辞書)を示す。ここで、上記「フレーズセット」(辞書)は、所定のパターン(検出ワード)に所定のフレーズ(および重要フラグ7)を対応付けたデータセットである。また、上記「フレーズ」は、上記所定のパターンに対する好ましい回答を、所定のデータ形式(例えば、テキスト形式)によって表すものである。さらに、上記「重要フラグ」(要否情報)は、フレーズ6aをユーザに提示することが必要であるか否かを示す情報であり、例えば、「1」または「0」の値をとる2値フラグであってよい。このとき、当該重要フラグ7が「1」の場合は「重要」(フレーズ6aをユーザに提示することが必要であること)を示し、「0」の場合は「通常」(必要でないこと)を示してよい。
例えば、音声認識部12から入力される認識結果4a(音声1aを認識した結果)に含まれる上記テキストは「今日の天気は」となるが、図4の(a)に示されるように、当該テキストを含むパターンは、フレーズセット5aには存在しない。このとき、回答確定部13は、音声情報3aを音声送出部15に出力するとともに、回答を保留するフレーズ(図4の(a)においては「ちょっとまってね」、「そうだね」、「うーん」などのフレーズ)を、回答取得部14に出力する。
回答取得部(取得手段)14は、音声1aが認識された結果に対応付けられたフレーズ(第1のフレーズ)6aを取得する。具体的には、ユーザに返す回答として回答確定部13からフレーズ6aが入力された場合、回答取得部14は、当該フレーズ6aを音声出力部16に出力する。同様に、受信部51aからフレーズ(第2のフレーズ)6bおよび重要フラグ7が入力された場合、回答取得部14は、当該フレーズ6bを音声出力部16に出力する。
一方、受信部51aからフレーズ6aおよび重要フラグ7が入力されたとき、(1)当該フレーズ6aを提示する前に、フレーズ6bが取得された場合(音声出力部16によってフレーズ6aが音声1cとして出力される前に、回答取得部14がフレーズ6bを取得したとき)、回答取得部14は、当該フレーズ6aおよび当該重要フラグ7をフラグ判定部17に出力する。(2)それ以外の場合、回答取得部14は、当該フレーズ6aを音声出力部16に出力する。
音声送出部15は、所定の通信方式にしたがう通信網を介して、音声情報3aおよび音声情報3bをサーバ200に送信する。具体的には、回答確定部13から音声情報3aまたは音声情報3bが入力された場合、音声送出部15は、当該音声情報3aまたは当該音声情報3bを送信部52aに出力する。
音声出力部16は、スピーカ42を介して、フレーズ6aおよびフレーズ6bを音声によって出力することにより、当該フレーズ6aおよび当該フレーズ6bをユーザに提示する。具体的には、回答取得部14からフレーズ6aまたはフレーズ6bが入力された場合、当該フレーズ6aまたは当該フレーズ6bをスピーカ42に出力する。
フラグ判定部17は、フレーズ6aを提示する前に、フレーズ6bが新たに取得された場合、重要フラグ7に基づいて、上記フレーズ6aをユーザに提示することが必要であるか否かを判定する。具体的には、回答取得部14からフレーズ6aおよび重要フラグ7が入力された場合、フラグ判定部17は、当該重要フラグ7が「重要」を示すか、「通常」を示すかを判定する。「重要」を示すと判定される場合、フラグ判定部17は、上記フレーズ6aを回答格納部18に出力する。
なお、「通常」を示すと判定される場合、フラグ判定部17は、上記フレーズ6aを回答格納部18に出力せず、当該フレーズ6aを破棄してよい。または、ユーザに後から提示することを再要求された場合に備えて、記憶部30aの所定の記憶領域に、当該フレーズ6aを格納してもよい。例えば、「おもしろい話聞かせて」という先の呼びかけが音声1aによってユーザから行われ、その後に「ところで、スポーツのニュースは?」という後の呼びかけが音声1bによって行われたとする。そして、上記先の呼びかけに対する回答として「昔々、おじいさんとおばあさんが・・・」(図4の(b)に示される表の6行目参照)という先のフレーズ(フレーズ6a)が取得された場合、当該フレーズ6aの重要フラグ7は「通常」を示すため、上記対話ロボット100は、上記後の呼びかけに対する回答として「昨日、チームAは大勝だったよ」という後のフレーズ(フレーズ6b)をユーザに提示した後でも、上記フレーズ6aを提示しなくともよい。
回答格納部(格納手段)18は、フレーズ6aを提示する前に、フレーズ6bが新たに取得された場合、上記フレーズ6aをユーザに提示することが必要であるときは、当該フレーズ6aを所定の記憶部30aに格納する。具体的には、フラグ判定部17から上記フレーズ6aが入力された場合、回答格納部18は、当該フレーズ6aを上記記憶部30aに格納する。
ここで、音声出力部(提示手段)16は、フレーズ6aを提示する前に、フレーズ6bが新たに取得された場合、上記フレーズ6aをユーザに提示することが必要であるときは、上記フレーズ6bを提示した後に、上記フレーズ6aを提示する。すなわち、フラグ判定部17によって重要フラグ7が「重要」を示すと判定されたことにより、回答格納部18によってフレーズ6aが記憶部30aに格納されている場合、音声出力部16は、上記フレーズ6bをスピーカ42に出力した後、上記フレーズ6aを上記記憶部30aから読み出し、当該フレーズ6aをスピーカ42に出力する。
通信部50aは、所定の通信方式にしたがう通信網を介して外部と通信する。外部の機器との通信を実現する本質的な機能が備わってさえいればよく、通信回線、通信方式、または通信媒体などは限定されない。通信部50aは、例えばイーサネット(登録商標)アダプタなどの機器で構成できる。また、通信部50aは、例えばIEEE802.11無線通信、Bluetooth(登録商標)などの通信方式や通信媒体を利用できる。通信部50aは、受信部51aと送信部52aとを含む。
受信部51aは、上記所定の通信方式にしたがう通信網を介して外部と通信することによって、フレーズ6aおよびフレーズ6bをサーバ200から受信する。受信部51aは、受信したフレーズ6aおよびフレーズ6bを回答取得部14に出力する。
送信部52aは、音声送出部15から音声情報3aまたは音声情報3bが入力された場合、上記所定の通信方式にしたがう通信網を介して外部と通信することによって、サーバ200に当該音声情報3aまたは当該音声情報3bを送信する。
記憶部30aは、フレーズセット5aおよびフレーズ6aを格納可能な記憶機器である。記憶部30aは、例えば、ハードディスク、SSD(silicon state drive)、半導体メモリ、DVDなどで構成できる。
(サーバ200の構成)
図2は、サーバ200の要部構成を示すブロック図である。図2に示されるように、サーバ200は、通信部50b(受信部51b、送信部52b)、制御部10b(音声取得部21、音声認識部22、回答特定部23、フラグ生成部24、情報送出部25)、および、記憶部30bを備えている。
通信部50bは、通信部50aと同様であるため、詳細な説明を省略する。通信部50bは、受信部51bと送信部52bとを含む。
受信部51bは、所定の通信方式にしたがう通信網を介して外部と通信することによって、音声情報3aおよび音声情報3bを対話ロボット100から受信する。受信部51bは、受信した音声情報3aおよび音声情報3bを音声取得部21に出力する。
送信部52bは、情報送出部25からフレーズ6aまたはフレーズ6bと重要フラグ7とが入力された場合、上記所定の通信方式にしたがう通信網を介して外部と通信することによって、対話ロボット100に当該フレーズ6aまたは当該フレーズ6bと当該重要フラグ7とを送信する。
音声取得部21は、所定の通信方式にしたがう通信網を介して、対話ロボット100から音声情報3aおよび音声情報3bを取得する。具体的には、受信部51bから音声情報3aまたは音声情報3bが入力された場合、音声取得部21は、当該音声情報3aまたは当該音声情報3bを音声認識部22に出力する。
音声認識部22は、ユーザが対話ロボット100に対して発した音声を認識する。具体的には、音声取得部21から音声情報3aまたは音声情報3bが入力された場合、音声認識部22は、所定の音声認識のアルゴリズムにしたがって、当該音声情報3aまたは当該音声情報3bを認識した結果(認識結果4aまたは認識結果4b)をそれぞれ得る。音声認識部22は、上記認識結果4aまたは上記認識結果4bを回答特定部23に出力する。
回答特定部(特定手段)23は、音声を認識した結果(認識結果4aまたは認識結果4b)に対応付けられたフレーズを、フレーズセット5bにおいて特定する。具体的には、音声認識部22から認識結果4aまたは認識結果4bが入力された場合、記憶部30bに格納されたフレーズセット5bを参照し、上記認識結果4aまたは上記認識結果4bに含まれる上記テキストを含むパターンを抽出する。そして、回答特定部23は、当該パターンに対応付けられたフレーズ(フレーズ6aまたはフレーズ6b)をユーザに返す回答として特定し、フラグ生成部24に出力する。
例えば、音声認識部22から入力される認識結果4a(音声1aを認識した結果)に含まれる上記テキストは「今日の天気は」となるところ、当該テキストには「天気」というパターンが含まれるため、図4の(b)に示される表の1行目によれば、回答特定部23は「今日の天気は雨だよ、傘を持っていってね」というフレーズ6aを、ユーザに返す回答として特定し、フラグ生成部24に出力する。なお、上記テキストを含むパターンがフレーズセット5bに含まれない場合(図4の(b)に示される表の9行目「−マッチングなし−」を参照)、音声認識部22は、音声認識またはフレーズの特定に失敗したことをユーザにフィードバックするフレーズ(例えば、「全然分からないよ」など)をユーザに返す回答として特定し、フラグ生成部24に出力する(すなわち、上記テキストにマッチするパターンがフレーズセット5bに含まれない場合であっても、フレーズは必ず特定される)。
フラグ生成部(生成手段)24は、フレーズをユーザに提示することが必要であるか否かに応じて、重要フラグを生成する。具体的には、回答特定部23からフレーズ6aまたはフレーズ6bが入力された場合、フラグ生成部24は、当該フレーズ6aまたは当該フレーズ6bに「重要度」(図4の(b)に示される表の2列目を参照、2列目に丸印が付された行のフレーズの重要度が「高い」ことを示す)が設定されているか否かを判定する。設定されていると判定される場合、フラグ生成部24は、「重要」(フレーズ6aをユーザに提示することが必要であることを表す)を示す重要フラグ7を生成し、当該重要フラグ7と、当該重要フラグ7に対応するフレーズ(フレーズ6aまたはフレーズ6b)とを情報送出部25に出力する。設定されていないと判定される場合、フラグ生成部24は、「通常」(フレーズ6aをユーザに提示することが必要でないことを表す)を示す重要フラグ7を生成し、当該重要フラグ7を情報送出部25に出力する。
情報送出部(送信手段)25は、所定の通信方式にしたがう通信網を介して、フレーズ6aおよびフレーズ6bを対話ロボット100に送信する。具体的には、フラグ生成部24からフレーズ6aまたはフレーズ6bと重要フラグ7とが入力された場合、情報送出部25は、当該フレーズ6aまたは当該フレーズ6bと当該重要フラグ7とを送信部52bに出力する。
記憶部30bは、フレーズセット5bを格納可能な記憶機器である。記憶部30bは、記憶部30aと同様に、例えば、ハードディスク、SSD、半導体メモリ、DVDなどで構成できる。
(対話システム300において実行される処理)
図5は、対話システム300において実行される処理の一例を示すフローチャートである。なお、以下の説明において、カッコ書きの「〜ステップ」は、対話ロボット100の制御方法に含まれる各ステップを表す。
ユーザが発した「今日の天気は?」という音声1aを、音声検出部11が検出すると(ステップ1においてYES、以下「ステップ」を「S」と略記する)、音声認識部12が当該音声1aを認識する(S2)。回答確定部13は、記憶部30aに格納されたフレーズセット5a(ローカル辞書)を参照し、認識結果4aに含まれるテキストを含むパターンが、当該フレーズセット5aに含まれるか否か(マッチするか否か)を判定する(S3)。含まれると判定される場合(S3においてYES)、回答確定部13は、当該パターンに対応付けられたフレーズをユーザに返す回答として確定する(S4)。回答取得部14が当該フレーズを取得すると(S16)、音声出力部16が当該フレーズを音声としてユーザに提示し(当該音声を再生する、S17)、処理が終了する。一方、含まれないと判定される場合(S3においてNO)、回答確定部13は、「ちょっとまってね」という回答を保留するフレーズを確定し(S5)、音声出力部16が当該フレーズを音声としてユーザに提示する(S6)。また、音声送出部15は、音声情報3aをサーバ200に送信する(S7)。
サーバ200の受信部51bが上記音声情報3aを受信し、音声取得部21が当該音声情報3aを取得すると(S8)、音声認識部22が音声1aを認識する(S9)。回答特定部23は、音声1aを認識した結果(認識結果4a)に対応付けられたフレーズ6aを、フレーズセット5b(クラウド辞書)において特定する(S10)。フラグ生成部24は、当該フレーズ6aをユーザに提示することが必要であるか否か(当該フレーズ6aの重要度は「高い」か否か)を判定し(S11)、「高い」と判定される場合(S11においてYES)、「高い」を示す重要フラグ7を生成し(S12)、「高い」と判定されない場合(S11においてNO)、「通常」を示す重要フラグ7を生成する(S13)。情報送出部25は、上記フレーズ6aおよび上記重要フラグ7を対話ロボット100に送信し(S14)、当該対話ロボット100の受信部51aは、当該フレーズ6aおよび当該重要フラグ7を受信する(S15)。回答取得部14は、当該フレーズ6aおよび当該重要フラグ7を取得する(S16、取得ステップ)。
上記S7〜S15の間に、ユーザがさらに発した「ところでスポーツのニュースは?」という音声1bを、音声検出部11が検出した場合(割り込み処理が発生した場合、S18においてYES)、フラグ判定部17は、上記S15において受信した上記重要フラグ7に基づいて、上記フレーズ6aをユーザに提示することが必要であるか否かを判定する(S19)。必要であると判定される場合(上記重要フラグ7が「重要」を示す場合、S19においてYES)、回答格納部18は、上記フレーズ6aを記憶部30aに格納する(S20)。
対話ロボット100およびサーバ200は、上記音声1bに対して、上記S2〜S17の処理を実行する(図5に示されるフローチャートにおいて「A」と表される)。上記S7〜S15の間に、ユーザからさらなる音声を検出しなければ(S18においてNO)、回答取得部14は、上記音声1bに対する回答として「昨日、チームAは大勝だったよ」というフレーズ6bを取得し(S16、取得ステップ)、当該フレーズ6bを音声1dによってユーザに提示する(S17、提示ステップ)。上記「A」から呼び出された一連の処理S2〜S17が終了し、処理の流れはS21の直前に復帰する。
音声出力部16は、上記S16において取得した上記フレーズ6aをユーザに提示することが必要であるときは(すなわち、フラグ判定部17によって重要フラグ7が「重要」を示すと判定されたことにより、回答格納部18によって上記フレーズ6aが記憶部30aに格納されているときは、S21においてYES)、音声1cによって上記フレーズ6aをユーザに提示する(S17、提示ステップ)。なお、上記フレーズ6aがユーザに提示された後、音声出力部16は、上記記憶部30aに格納された上記フレーズ6aを、当該記憶部30aから削除してよい。
上記のように、例えば、通信が停滞したことにより、対話ロボット100がユーザに回答(フレーズ6a)を提示するタイミングが遅延し、上記S7〜S15の間にユーザがさらなる音声1bを与えたことによって、上記フレーズ6aが提示される前に、フレーズ6bが新たに取得された場合、上記フレーズ6aをユーザに提示することが必要であるときは、上記対話ロボット100は、上記フレーズ6bを提示した後に、上記フレーズ6aを提示する。
なお、音声1bに対して上記S2〜S16の処理を実行している間に、ユーザからさらなる音声を検出した場合(2回目のS18においてYES)、対話ロボット100は、上記S19および上記S20の処理を実行した後、上記S2〜S17の処理をさらに実行できる。さらに実行できる回数は任意であり、当該回数は予め設定されていてよい。
〔実施形態2〕
図6および図7に基づいて、本発明の第2の実施の形態(実施形態2)を説明する。本実施の形態では、実施形態1に追加される構成や、実施形態1の構成とは異なる構成のみについて説明する。すなわち、実施形態1において記載された構成は、実施形態2にもすべて含まれ得る。また、実施形態1において記載された用語の定義は、実施形態2においても同じである。
(実施形態1との相違点)
図6は、対話ロボット101の要部構成を示すブロック図である。実施形態1に係る対話ロボット100は、サーバ20と通信可能に接続されて対話システム300を構成し、フレーズセット5aにフレーズ6aまたはフレーズ6bが存在しない場合、上記対話ロボット100は、当該フレーズ6aまたは当該フレーズ6bを上記サーバ20から取得した(クラウド構成)。
一方、本実施の形態においては、対話ロボット101が備える記憶部30aにフレーズセット5aおよびフレーズセット5bが格納されており、対話ロボット101は、上記フレーズ6aまたは上記フレーズ6bを上記記憶部30aから取得する(スタンドアロン構成)。したがって、図6に示されるように、対話ロボット101は、対話ロボット100が備えた通信部50aおよび音声送出部15を備えない(フレーズを取得するためにサーバ20と通信する必要がないだけであるため、対話ロボット101は通信部50aまたは音声送出部15を備えていてもよい)。
上記対話ロボット101はフレーズを取得するためにサーバ20と通信しないため、「対話ロボットとサーバとの間で通信が停滞する」ことを原因として、ユーザにフレーズを提示するタイミングが遅延するという問題は生じ得ない。しかし、実施形態1ではサーバ200が集中管理していたフレーズセット5b(フレーズセット5aよりも多くのパターンを含むクラウド辞書)を、実施形態2では対話ロボット101(記憶部30a)がローカル辞書として保持するため、当該ローカル辞書から適切なフレーズを抽出する処理が一層重くなり、上記タイミングが遅延し得る。したがって、前述したように、先の呼びかけに対する先のフレーズと、後の呼びかけに対する後のフレーズとが交錯することにより、上記先のフレーズが未提示のままになるおそれが考えられる。
そこで、上記対話ロボット101は、先のフレーズを提示する前に、後のフレーズが新たに取得された場合、先のフレーズをユーザに提示することが必要であるときは、後のフレーズを提示した後に、先のフレーズを提示する。これにより、上記対話ロボット101は、先のフレーズをユーザに提示することが必要と判断される場合、当該先のフレーズを未提示のままにすることなく、当該先のフレーズを必ずユーザに提示できる。
(対話ロボット101の構成)
回答確定部13は、音声を認識した結果に基づいて、ユーザに返す回答を確定する。具体的には、音声認識部12から上記認識結果4aまたは上記認識結果4bが入力された場合、回答確定部13は、記憶部30aに格納されたフレーズセット5aを参照し、上記認識結果4aまたは上記認識結果4bに含まれる上記テキストを含むパターンが、当該フレーズセット5aに含まれるか否かを判定する。
含まれると判定される場合、回答確定部13は、当該パターンに対応付けられたフレーズをユーザに返す回答として確定し、回答取得部14に出力する。一方、含まれないと判定される場合、回答確定部13は、記憶部30aに格納されたフレーズセット5bを参照し、上記テキストを含むパターンを抽出する。そして、回答確定部13は、当該パターンに対応付けられたフレーズ(フレーズ6aまたはフレーズ6b)をユーザに返す回答として確定する。このとき、回答確定部13は、回答を保留するフレーズを回答取得部14に出力することによって、当該フレーズをユーザに提示してよい。
次に、回答確定部13は、フレーズをユーザに提示することが必要であるか否かに応じて、重要フラグを生成する。具体的には、回答確定部13は、上記フレーズ6aまたは上記フレーズ6bに「重要度」が設定されているか否かを判定する。設定されていると判定される場合、回答確定部13は、「重要」を示す重要フラグ7を生成し、当該重要フラグ7と、当該重要フラグ7に対応するフレーズ(フレーズ6aまたはフレーズ6b)とを回答取得部14に出力する。設定されていないと判定される場合、回答確定部13は、「通常」を示す重要フラグ7を生成し、当該重要フラグ7を回答取得部14に出力する。
回答取得部(取得手段)14は、フレーズ6a、フレーズ6b、および、重要フラグ7を回答確定部13から取得する。これらを取得した後の処理は、実施形態1で説明したものと同じである。
(対話ロボット101が実行する処理)
図7は、対話ロボット101が実行する処理の一例を示すフローチャートである。上記フローチャートは、図5に例示されたフローチャート(対話システム300において実行される処理)から通信に関係する処理(S7、S8、S14、S15)、および、サーバ20が再度音声認識を行う処理(S9)が除かれ、サーバ200において実行された処理(S10〜S13)が上記対話ロボット101(回答確定部13)において実行される(S22〜S25)としたものである。
すなわち、回答確定部13は、音声1aを認識した結果(認識結果4a)に対応付けられたフレーズ6aを、フレーズセット5b(クラウド辞書)において特定する(S22)。そして、回答確定部13は、当該フレーズ6aをユーザに提示することが必要であるか否かを判定し(S23)、「高い」と判定される場合(S23においてYES)、「高い」を示す重要フラグ7を生成し(S24)、「高い」と判定されない場合(S23においてNO)、「通常」を示す重要フラグ7を生成する(S25)。
〔実施形態3〕
本発明の第3の実施の形態(実施形態3)を説明する。本実施の形態では、実施形態1または実施形態2に追加される構成や、実施形態1または実施形態2の構成とは異なる構成のみについて説明する。すなわち、実施形態1または実施形態2において記載された構成は、実施形態3にもすべて含まれ得る。また、実施形態1または実施形態2において記載された用語の定義は、実施形態3においても同じである。
(フレーズの動的変化)
対話ロボット(制御部10aを備えるもの)は、フレーズを取得した時点における状況を反映させるように、動的に変化させたフレーズをユーザに提示してよい。すなわち、ユーザが対話ロボットに対して「今日の天気は?」と音声1aによって呼びかけ、当該対話ロボットが「雨だよ、傘を持っていってね」というフレーズ6aを音声1cによって上記ユーザに提示する一例を前述したが、「今日の天気」が「晴れ」である場合、上記対話ロボットは「晴れだよ、傘はいらないね」というフレーズ6aを提示できる。
具体的には、回答確定部13(スタンドアロン構成の場合)または回答特定部23(クラウド構成の場合)は、所定のウェブサービスから動的に変化する情報(例えば、天気の予報を示すテキスト)を取得し、当該情報に基づいて補完したフレーズを生成して(例えば、「・・・だよ」の更新可能な箇所「・・・」に、「晴れ」、「雨」などの上記テキストを挿入する)、当該補完したフレーズでフレーズセット5bを更新する。そして、回答取得部14は、外部サービス(例えば、天気予報を提供する上記所定のウェブサービスなど)から取得可能な動的に変化する所定の情報によって補完された上記フレーズを取得する。これにより、上記対話ロボットは、動的に変化する上記フレーズをユーザに提示できる。
(重要フラグの動的設定)
フレーズセット5bに含まれる重要フラグ7は、パターンまたはフレーズに応じて、ユーザによってあらかじめ設定される。すなわち、ユーザは、フレーズセット5aまたはフレーズセット5bの所定のレコードにパターン(検出ワード)を登録し、当該パターンに対して重要フラグ7を設定することができる。また、ユーザは、パターンを登録した後でも上記重要フラグ7を新たに設定または変更できる。
一方、上記重要フラグ7は、動的に変更されてもよい。例えば、音声1aまたは音声1bの音量が通常よりも大きい場合(音声信号2aまたは音声信号2bのゲインが所定のしきい値(または、これまでに得たゲインの平均値)を超える場合)、回答確定部13(スタンドアロン構成の場合)またはフラグ生成部24(クラウド構成の場合)は、「重要」を示す重要フラグ7を生成してよい。逆に、上記音量が通常よりも小さい場合、「通常」を示す重要フラグ7を生成してよい。
あるいは、上記音声1aまたは上記音声1bが疑問形であると判定される場合(上記音声1aまたは上記音声1bの周波数が高くなる場合、認識結果4aまたは認識結果4bが所定のパターンで終了する場合など)回答確定部13またはフラグ生成部24は、「重要」を示す重要フラグ7を生成してよい。逆に、疑問形でないと判定される場合、「通常」を示す重要フラグ7を生成してよい。
〔ソフトウェアによる実現例〕
対話ロボット100およびサーバ200の制御ブロック(特に、制御部10aおよび制御部10b)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。後者の場合、対話ロボット100およびサーバ200は、各機能を実現するソフトウェアであるプログラム(制御プログラム)の命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係る情報処理装置は、ユーザが発した音声(1a、1b)に応じて、当該ユーザに所定のフレーズを提示する情報処理装置(対話ロボット100、対話ロボット101)であって、前記音声が認識された結果(4a、4b)に対応付けられた第1のフレーズ(6a)を取得する取得手段(回答取得部14)と、前記第1のフレーズを提示する前に、当該第1のフレーズとは異なる第2のフレーズ(6b)が前記取得手段によって新たに取得された場合、前記第1のフレーズを前記ユーザに提示することが必要であるときは、前記第2のフレーズを提示した後に、前記第1のフレーズを提示する提示手段(音声出力部16)とを備えている。
人間と機械とが自然にコミュニケーションすることが前提となる場合、ユーザから機械への呼びかけに対するフレーズの提示が遅れることによって、当該提示の前に、ユーザから機械へさらなる呼びかけが行われるときがある。このとき、当該さらなる呼びかけに対してのみフレーズが新たに提示され、先のフレーズが未提示のままとなるおそれがある。
上記構成によれば、上記情報処理装置は、上記第1のフレーズを提示する前に、上記第2のフレーズが新たに取得された場合、上記第1のフレーズをユーザに提示することが必要であるときは、上記第2のフレーズを提示した後に、上記第1のフレーズを提示する。したがって、上記情報処理装置は、上記先のフレーズ(第1のフレーズ)を未提示のままにすることなく、確実にユーザに提示できる。
本発明の態様2に係る情報処理装置では、上記態様1において、前記取得手段は、前記第1のフレーズを前記ユーザに提示することが必要であるか否かを示す要否情報(重要フラグ7)をさらに取得し、前記提示手段は、前記要否情報が必要であることを示すときは、前記第2のフレーズを提示した後に、前記第1のフレーズを提示してよい。
上記構成によれば、上記情報処理装置は、上記第1のフレーズをユーザに提示することが必要であるか否かを、上記要否情報によって知ることができる。そして、当該要否情報によってユーザに提示することが必要であると判定される場合、上記情報処理装置は、上記第2のフレーズを提示した後に、上記第1のフレーズを提示する。したがって、上記情報処理装置は、上記第1のフレーズを未提示のままにすることなく、確実にユーザに提示できる。
本発明の態様3に係る情報処理装置は、上記態様1または態様2において、前記第1のフレーズを提示する前に、前記第2のフレーズが新たに取得された場合、当該第1のフレーズを前記ユーザに提示することが必要であるときは、当該第1のフレーズを所定の記憶部(30a)に格納する格納手段(回答格納部18)をさらに備え、前記提示手段は、前記所定の記憶部に前記第1のフレーズが格納されている場合、前記第2のフレーズを提示した後に、当該第1のフレーズを当該所定の記憶部から読み出して提示してよい。
上記構成によれば、上記情報処理装置は、上記第1のフレーズをユーザに提示することが必要であるときは、当該第1のフレーズを記憶部に待避させる。そして、上記情報処理装置は、上記記憶部に上記第1のフレーズが存在する場合、上記第2のフレーズを提示した後に当該第1のフレーズをユーザに提示する。したがって、上記情報処理装置は、上記第1のフレーズを未提示のままにすることなく、確実にユーザに提示できる。
本発明の態様4に係るサーバは、ユーザが情報処理装置に対して発した音声に応じて、当該ユーザに所定のフレーズを提示するように当該情報処理装置を制御するサーバ(200)であって、前記音声を認識した結果に対応付けられたフレーズを、所定のフレーズセット(5b)において特定する特定手段(回答特定部23)と、前記フレーズを前記ユーザに提示することが必要であるか否かに応じて、要否情報を生成する生成手段(フラグ生成部24)と、前記フレーズおよび前記要否情報を前記情報処理装置に送信する送信手段(情報送出部25)とを備えている。
上記構成によれば、上記サーバは、上記音声を認識した結果に応じて、上記フレーズおよび上記要否情報を上記情報処理装置に送信する。ここで、上記音声を認識した結果にマッチするパターンは、上記情報処理装置が保持するフレーズセットよりも、上記サーバが保持するフレーズセットの方に多く含まれることが通常であるため、ユーザが上記情報処理装置に対して複雑な呼びかけを行った場合であっても、上記サーバは、適切なフレーズを返すように上記情報処理装置を制御できる。
また、上記フレーズをユーザに提示することが必要であるか否かを、上記要否情報によって上記情報処理装置に知らせることができる。したがって、上記サーバは、上記フレーズを未提示のままにすることなく、確実にユーザに提示するように、上記情報処理装置を制御することができる。
本発明の別態様に係る対話システム(300)は、上記態様のいずれか1つの態様に係る情報処理装置と、上記態様に係るサーバとを含んでいる。
したがって、上記対話システムは、上記態様のいずれか1つの態様に係る情報処理装置、または、上記態様に係るサーバと同様の効果を奏する。
本発明の別態様に係る情報処理装置の制御方法は、ユーザが発した音声に応じて、当該ユーザに所定のフレーズを提示する情報処理装置の制御方法であって、前記音声が認識された結果に対応付けられた第1のフレーズを取得する取得ステップ(S16)と、前記第1のフレーズを提示する前に、当該第1のフレーズとは異なる第2のフレーズを前記取得ステップにおいて新たに取得した場合、当該第1のフレーズを前記ユーザに提示することが必要であるときは、前記第2のフレーズを提示した後に、前記第1のフレーズを提示する提示ステップ(S17)とを含んでいる。
したがって、上記情報処理装置の制御方法は、上記態様に係る情報処理装置と同様の効果を奏する。
本発明の各態様に係る情報処理装置およびサーバは、コンピュータによって実現されてもよく、この場合、コンピュータを上記情報処理装置および上記サーバが備えた各手段として動作させることにより、上記情報処理装置および上記サーバをコンピュータにおいて実現させる情報処理装置の制御プログラム、サーバの制御プログラム、および、それらを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述したそれぞれの実施の形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施の形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施の形態についても、本発明の技術的範囲に含まれる。さらに、各実施の形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成できる。