(57)【特許請求の範囲】
【請求項１】
ユーザと対話を行う対話システムが実行する対話方法であって、
入力部が、ユーザが発した発話を受け付ける発話受付ステップと、
提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、
上記提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、
対話制御部が、
予め定めたシナリオに基づき上記発話受付ステップと上記第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、
上記発話受付ステップと上記第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、
を含み、
第一対話フローの失敗を判断する判断基準が予め定められており、
第一対話フローが失敗したと判断された場合には、第二対話フローが実行され、
上記第一対話フローの失敗を判断する判断基準には、上記第一提示ステップの発話に対するユーザの反応が芳しくない場合に上記第一対話フローが失敗したと判断することを含む
対話方法。
【請求項２】
ユーザと対話を行う対話システムが実行する対話方法であって、
入力部が、ユーザが発した発話を受け付ける発話受付ステップと、
提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、
上記提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、
対話制御部が、
予め定めたシナリオに基づき上記発話受付ステップと上記第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、
上記発話受付ステップと上記第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、
を含み、
第一対話フローの失敗を判断する判断基準が予め定められており、
第一対話フローが失敗したと判断された場合には、第二対話フローが実行され、
上記第一対話フローの失敗を判断する判断基準には、上記第一対話フローにおいて発話受付ステップが受け付けたユーザの発話にあらかじめ定めた語句が含まれていた場合に上記第一対話フローが失敗したと判断することを含む
対話方法。
【請求項３】
ユーザと対話を行う対話システムが実行する対話方法であって、
入力部が、ユーザが発した発話を受け付ける発話受付ステップと、
提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、
上記提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、
対話制御部が、
予め定めたシナリオに基づき上記発話受付ステップと上記第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、
上記発話受付ステップと上記第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、
を含み、
第二対話フローにおいて上記発話受付ステップで受け付けたユーザの発話と、当該第二対話フローにおいて上記第二提示ステップで出力した発話と、の少なくとも何れかが予め定めたシナリオに対応する場合には、当該シナリオに基づく第一対話フローが実行される
対話方法。
【請求項４】
ユーザと対話を行う対話システムが実行する対話方法であって、
入力部が、ユーザが発した発話を受け付ける発話受付ステップと、
提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、
上記提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、
対話制御部が、
予め定めたシナリオに基づき上記発話受付ステップと上記第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、
上記発話受付ステップと上記第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、
を含み、
第二対話フローの失敗を判断する判断基準が予め定められており、
第二対話フローが失敗したと判断された場合には、第一対話フローが実行される
対話方法。
【請求項５】
請求項４に記載の対話方法であって、
上記第二対話フローの失敗を判断する判断基準には、第二対話フローにおいて上記発話受付ステップで受け付けたユーザの発話と、少なくとも当該発話の内容に基づいて生成した発話とが整合しないことが発生した場合または所定回数以上連続して発生した場合に上記第二対話フローが失敗したと判断することを含む
対話方法。
【請求項６】
請求項４または５に記載の対話方法であって、
上記第二対話フローの失敗を判断する判断基準には、上記第二提示ステップの発話に対するユーザの反応が芳しくない場合に上記第二対話フローが失敗したと判断することを含む
対話方法。
【請求項７】
請求項４から６の何れかに記載の対話方法であって、
上記第二対話フローの失敗を判断する判断基準は、上記第二対話フローにおいて発話受付ステップが受け付けたユーザの発話にあらかじめ定めた語句が含まれていた場合に上記第二対話フローが失敗したと判断することを含む
対話方法。
【請求項８】
ユーザと対話を行う対話システムが実行する対話方法であって、
入力部が、ユーザが発した発話を受け付ける発話受付ステップと、
提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、
上記提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、
対話制御部が、
予め定めたシナリオに基づき上記発話受付ステップと上記第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、
上記発話受付ステップと上記第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、
を含み、
第二対話フローの直前に行う第一対話フローの第一提示ステップの発話は、該第一対話フローの話題以外の発話をユーザに促す発話である
対話方法。
【請求項９】
ユーザと対話を行う対話システムが実行する対話方法であって、
入力部が、ユーザが発した発話を受け付ける発話受付ステップと、
提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、
上記提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、
対話制御部が、
予め定めたシナリオに基づき上記発話受付ステップと上記第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、
上記発話受付ステップと上記第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、
を含み、
予め記憶した複数のシナリオのうちの１つのシナリオを第二対話フローの直後に行う第一対話フローのシナリオとして選択する選択基準は、該第二対話フローの発話内容に基づく基準を含む
対話方法。
【請求項１０】
請求項９に記載の対話方法であって、
予め記憶した複数のシナリオには、シナリオごとに該シナリオの話題を表す語が対応付けて記憶されており、
上記選択基準は、シナリオの話題を表す語と前記第二対話フローの発話内容との類似度の高さに少なくとも基づく基準である
対話方法。
【請求項１１】
請求項９または１０に記載の対話方法であって、上記選択基準は、シナリオの先頭部分の内容と前記第二対話フローの発話内容との類似度の高さに少なくとも基づく基準である
対話方法。
【請求項１２】
請求項９から１１の何れかに記載の対話方法であって、
予め記憶した複数のシナリオには、シナリオごとに該シナリオの選択の尤度を表す情報が対応付けて記憶されており、
上記選択基準は、上記複数のシナリオのうちの１つのシナリオを該第二対話フローの発話内容に基づいて選択することが適切でないと判断される場合には、上記尤度に基づいた選択を行う
対話方法。
【請求項１３】
ユーザと対話を行う対話システムであって、
ユーザが発した発話を受け付ける入力部と、
予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、
上記発話決定部が決定した第一の発話と、上記発話決定部が決定した第二の発話と、を提示する提示部と、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部と、
を含み、
第一対話フローの失敗を判断する判断基準が予め定められており、
第一対話フローが失敗したと判断された場合には、第二対話フローが実行され、
上記第一対話フローの失敗を判断する判断基準には、上記第一対話フローで決定した発話に対するユーザの反応が芳しくない場合に上記第一対話フローが失敗したと判断することを含む
対話システム。
【請求項１４】
ユーザと対話を行う対話システムであって、
ユーザが発した発話を受け付ける入力部と、
予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、
上記発話決定部が決定した第一の発話と、上記発話決定部が決定した第二の発話と、を提示する提示部と、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部と、
を含み、
第一対話フローの失敗を判断する判断基準が予め定められており、
第一対話フローが失敗したと判断された場合には、第二対話フローが実行され、
上記第一対話フローの失敗を判断する判断基準には、上記第一対話フローにおいて受け付けたユーザの発話にあらかじめ定めた語句が含まれていた場合に上記第一対話フローが失敗したと判断することを含む
対話システム。
【請求項１５】
ユーザと対話を行う対話システムであって、
ユーザが発した発話を受け付ける入力部と、
予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、
上記発話決定部が決定した第一の発話と、上記発話決定部が決定した第二の発話と、を提示する提示部と、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部と、
を含み、
第二対話フローにおいて受け付けたユーザの発話と、当該第二対話フローにおいて出力した発話と、の少なくとも何れかが予め定めたシナリオに対応する場合には、当該シナリオに基づく第一対話フローが実行される
対話システム。
【請求項１６】
ユーザと対話を行う対話システムであって、
ユーザが発した発話を受け付ける入力部と、
予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、
上記発話決定部が決定した第一の発話と、上記発話決定部が決定した第二の発話と、を提示する提示部と、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部と、
を含み、
第二対話フローの失敗を判断する判断基準が予め定められており、
第二対話フローが失敗したと判断された場合には、第一対話フローが実行される
対話システム。
【請求項１７】
ユーザと対話を行う対話システムであって、
ユーザが発した発話を受け付ける入力部と、
予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、
上記発話決定部が決定した第一の発話と、上記発話決定部が決定した第二の発話と、を提示する提示部と、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部と、
を含み、
第二対話フローの直前に行う第一対話フローで決定する発話は、該第一対話フローの話題以外の発話をユーザに促す発話である
対話システム。
【請求項１８】
ユーザと対話を行う対話システムであって、
ユーザが発した発話を受け付ける入力部と、
予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、
上記発話決定部が決定した第一の発話と、上記発話決定部が決定した第二の発話と、を提示する提示部と、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部と、
を含み、
予め記憶した複数のシナリオのうちの１つのシナリオを第二対話フローの直後に行う第一対話フローのシナリオとして選択する選択基準は、該第二対話フローの発話内容に基づく基準を含む
対話システム。
【請求項１９】
ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部、
を含み、
第一対話フローの失敗を判断する判断基準が予め定められており、
第一対話フローが失敗したと判断された場合には、第二対話フローが実行され、
上記第一対話フローの失敗を判断する判断基準には、上記第一対話フローで決定した発話に対するユーザの反応が芳しくない場合に上記第一対話フローが失敗したと判断することを含む
対話装置。
【請求項２０】
ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部、
を含み、
第一対話フローの失敗を判断する判断基準が予め定められており、
第一対話フローが失敗したと判断された場合には、第二対話フローが実行され、
上記第一対話フローの失敗を判断する判断基準には、上記第一対話フローにおいて受け付けたユーザの発話にあらかじめ定めた語句が含まれていた場合に上記第一対話フローが失敗したと判断することを含む
対話装置。
【請求項２１】
ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部、
を含み、
第二対話フローにおいて受け付けたユーザの発話と、当該第二対話フローにおいて出力した発話と、の少なくとも何れかが予め定めたシナリオに対応する場合には、当該シナリオに基づく第一対話フローが実行される
対話装置。
【請求項２２】
ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部、
を含み、
第二対話フローの失敗を判断する判断基準が予め定められており、
第二対話フローが失敗したと判断された場合には、第一対話フローが実行される
対話装置。
【請求項２３】
ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部、
を含み、
第二対話フローの直前に行う第一対話フローで決定する発話は、該第一対話フローの話題以外の発話をユーザに促す発話である
対話装置。
【請求項２４】
ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、
予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、
ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、
を少なくとも含んだ対話を実行する制御を行う対話制御部、
を含み、
予め記憶した複数のシナリオのうちの１つのシナリオを第二対話フローの直後に行う第一対話フローのシナリオとして選択する選択基準は、該第二対話フローの発話内容に基づく基準を含む
対話装置。
【請求項２５】
請求項１から１２のいずれかに記載の対話方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項２６】
請求項１９から２４のいずれかに記載の対話装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、人とコミュニケーションを行うロボットなどに適用可能な、コンピュータが人間と自然言語を用いて対話を行う技術に関する。
【背景技術】
【０００２】
近年、人とコミュニケーションを行うロボットの研究開発が進展しており、様々な現場で実用化されてきている。例えば、コミュニケーションセラピーの現場において、ロボットが孤独感を抱える人の話し相手となる利用形態がある。具体的には、老人介護施設においてロボットが入居者の傾聴役となることで、入居者の孤独感を癒す役割を担うことができると共に、ロボットとの会話している姿を見せ、入居者とその家族や介護士など周りの人々との会話のきっかけを作ることができる。また、例えば、コミュニケーション訓練の現場において、ロボットが練習相手となる利用形態がある。具体的には、外国語学習施設においてロボットが外国語学習者の練習相手となることで、外国語学習を効率的に進めることができる。また、例えば、情報提示システムとしての応用において、ロボット同士の対話を聞かせることを基本としながら、時折人に話しかけることで、退屈させずに人を対話に参加させ、人が受け入れやすい形で情報を提示することができる。具体的には、街中の待ち合わせ場所やバス停、駅のホームなどで人が時間を持て余している際や、自宅や教室などで対話に参加する余裕がある際に、ニュースや商品紹介、蘊蓄・知識紹介、教育（例えば、子供の保育・教育、大人への一般教養教授、モラル啓発など）など、効率的な情報提示が期待できる。さらに、例えば、情報収集システムとしての応用において、ロボットが人に話しかけながら情報を収集する利用形態がある。ロボットとのコミュニケーションにより対話感を保持できるため、人に聴取されているという圧迫感を与えずに情報収集することができる。具体的には、個人情報調査や市場調査、商品評価、推薦商品のための趣向調査などに応用することが想定されている。このように人とロボットのコミュニケーションは様々な応用が想定されており、ユーザとより自然に対話を行うロボットの実現が期待される。また、スマートフォンの普及により、LINE(登録商標)のように、複数ユーザでほぼリアルタイムにチャットを行うことにより、人との会話を楽しむサービスも実施されている。このチャットサービスにロボットとの会話の技術を適用すれば、チャット相手がいなくても、ユーザとより自然に対話を行うチャットサービスの実現が可能となる。【０００３】
本明細書では、これらのサービスで用いられるロボットやチャット相手などのユーザとの対話相手となるハードウェアやユーザとの対話相手となるハードウェアとしてコンピュータを機能させるためのコンピュータソフトウェアなどを総称してエージェントと呼ぶこととする。エージェントは、ユーザとの対話相手となるものであるため、ロボットやチャット相手などのように擬人化されていたり、人格化されていたり、性格や個性を有していたりするものであってもよい。【０００４】
これらのサービスの実現のキーとなるのは、ハードウェアやコンピュータソフトウェアにより実現されるエージェントが人間と自然に対話を行うことができる技術である。【０００５】
上記のエージェントの一例として、あらかじめ定められたシナリオに沿って特定の話題についてユーザと対話を行うシナリオ対話システムがある。シナリオ対話システムでは、シナリオに沿って対話が展開する限り対話を続けることが可能である。例えば、非特許文献１に記載された対話システムは、ユーザと複数のエージェント間で、エージェントによる割り込みやエージェント同士のやり取りを含めながら対話を行うシステムである。例えば、エージェントは、ユーザに対してシナリオに用意された質問を発話し、質問に対するユーザの回答の発話がシナリオに用意された選択肢に対応する場合にその選択肢に対応する発話を行うように機能する。すなわち、シナリオ対話システムは、システムに予め記憶されたシナリオに基づいた発話をエージェントが行う対話システムである。この対話システムでは、エージェントがユーザに問いかけ、ユーザからの返答を受けた際に、ユーザの発話内容に関わらず「そっか」といった相槌で流したり、エージェントの割り込みで話題を変えたりすることで、ユーザの発話が本来の話題から外れた場合であってもストーリーの破綻をユーザに感じさせないように応答することが可能である。【０００６】
また、上記のエージェントの一例として、ユーザの発話内容に沿った発話をエージェントが行うことにより、ユーザとエージェントとが自然な対話を行う雑談対話システムがある。例えば、非特許文献２に記載された対話システムは、ユーザとエージェントとの間で行われる複数ターンの対話の中で文脈に特有のものをより重視しながら、ユーザまたはエージェントの発話に含まれる単語をトリガーとして、あらかじめ記述しておいたルールに従ってシステムが発話することで、ユーザとシステムとの間で雑談対話を実現するシステムである。雑談対話システムが用いるルールは、あらかじめ記述したものだけでなく、ユーザの発話内容に基づいて自動的に生成したものであってもよいし、ユーザまたはエージェントによる直前の発話またはその近傍に発話された発話に基づいて自動的に生成したものであってもよいし、ユーザまたはエージェントによる直前の発話またはその近傍に発話された発話を少なくとも含む発話に基づいて自動的に生成したものであってもよい。非特許文献２には、ユーザの発話に含まれる単語と共起関係や係り受け関係にある単語に基づいて、自動的にルールを生成する技術が記載されている。また、例えば、非特許文献３に記載された対話システムは、人手で記述したルールと統計的発話生成手法で記述したルールを融合することで、ルール生成のコストを低減したシステムである。雑談対話システムは、シナリオ対話システムとは異なり、予め用意されたシナリオに沿った発話をエージェントが行うものではないため、ユーザの発話によっては、エージェントの発話がユーザの発話に対応しないものとなってしまうという事態は生じずに、少なくともユーザの発話内容、もしくはユーザまたはエージェントによる直前の発話またはその近傍に発話された発話、もしくはユーザまたはエージェントによる直前の発話またはその近傍に発話された発話を少なくとも含む発話に基づいた発話をエージェントが行うことが可能である。すなわち、雑談対話システムは、少なくともユーザの発話内容、もしくはユーザまたはエージェントによる直前の発話またはその近傍に発話された発話、もしくはユーザまたはエージェントによる直前の発話またはその近傍に発話された発話を少なくとも含む発話に基づいた発話をエージェントが行う対話システムである。これらの雑談対話システムでは、ユーザの発話に対して明示的に応答することが可能である。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】有本庸浩，吉川雄一郎，石黒浩，“複数体のロボットによる音声認識なし対話の印象評価”，日本ロボット学会学術講演会，2016年
【非特許文献２】杉山弘晃，目黒豊美，東中竜一郎，南泰浩，“任意の話題を持つユーザ発話に対する係り受けと用例を利用した応答文の生成”，人工知能学会論文誌，vol.30(1)，pp. 183-194，2015年
【非特許文献３】目黒豊美，杉山弘晃，東中竜一郎，南泰浩，“ルールベース発話生成と統計的発話生成の融合に基づく対話システムの構築”，人工知能学会全国大会論文集，vol. 28，pp. 1-4，2014年
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の雑談対話システムでは、基本的に一問一答であるため一貫したストーリーで対話を続けることができない。従来のシナリオ対話システムでは、ユーザの発話がシナリオで想定した範囲外であると応答できない場合がある。また、非特許文献１の対話システムでは、ユーザは自分の発話が流されてばかりいると感じてしまうおそれがある。【０００９】
この発明の目的は、上述のような点に鑑みて、ユーザの話題への参加感を向上し、かつ、対話を長く続けることができる対話技術を提供することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、この発明の第一の態様の対話方法は、ユーザと対話を行う対話システムが実行する対話方法であって、入力部が、ユーザが発した発話を受け付ける発話受付ステップと、提示部が、予め記憶されたシナリオに基づいて決定した発話を提示する第一提示ステップと、提示部が、ユーザの発話内容に基づいて決定した発話を提示する第二提示ステップと、対話制御部が、予め定めたシナリオに基づき発話受付ステップと第一提示ステップとをそれぞれ少なくとも１回以上含む対話である第一対話フローと、発話受付ステップと第二提示ステップとをそれぞれ少なくとも１回以上含む対話である第二対話フローと、を少なくとも含んだ対話を実行する制御を行う対話制御ステップと、を含む。【００１１】
この発明の第二の態様の対話システムは、ユーザと対話を行う対話システムであって、ユーザが発した発話を受け付ける入力部と、予め記憶されたシナリオに基づく第一の発話と、ユーザの発話内容に基づく第二の発話と、を決定する発話決定部と、発話決定部が決定した第一の発話と、発話決定部が決定した第二の発話と、を提示する提示部と、予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、を少なくとも含んだ対話を実行する制御を行う対話制御部と、を含む。【００１２】
この発明の第三の態様の対話装置は、ユーザが発した発話を受け付ける入力部と、提示部が提示する発話を決定する発話決定部と、発話決定部が決定した発話を提示する提示部と、を含む対話システムが提示する発話を決定する対話装置であって、予め定めたシナリオに基づいて、ユーザが発した発話を受け付けることと、提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第一対話フローと、ユーザが発した発話を受け付けることと、当該発話に少なくとも基づいて提示部が提示する発話を決定することと、をそれぞれ少なくとも１回以上含む対話である第二対話フローと、を少なくとも含んだ対話を実行する制御を行う対話制御部、を含む。
【発明の効果】
【００１３】
この発明によれば、シナリオ対話における話題の切り替えが雑談対話の内容に基づいて行われるため、ユーザが話題の切り替えに自身の発言も貢献したと錯覚しやすく、実際には話題の切り替えが雑談対話の内容の一部のみに基づくものであったとしても、話題への参加感を向上することができ、かつ、ユーザとの間で対話を長く続けることが可能な対話システム、対話装置を実現することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第一実施形態の人型ロボットによる対話システムの機能構成を例示する図である。
【図２】図２は、第一実施形態の対話方法の処理手続きを例示する図である。
【図３】図３は、第二実施形態の人型ロボットによる対話システムの機能構成を例示する図である。
【図４】図４は、第二実施形態の対話方法の処理手続きを例示する図である。
【図５】図５は、第一実施形態のグループチャットによる対話システムの機能構成を例示する図である。
【発明を実施するための形態】
【００１５】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１６】
＜第一実施形態＞
第一実施形態の対話システムは、複数台の人型ロボットが協調してユーザとの対話を行うシステムである。すなわち、第一実施形態の対話システムは、エージェントが人型ロボットである場合の一例である。対話システム１０は、図１に示すように、入力部１、音声認識部２、発話決定部３、音声合成部４、および提示部５を備える。この対話システム１０が後述する各ステップの処理を行うことにより第一実施形態の対話方法が実現される。なお、図１に示すように、対話システム１０の音声認識部２、発話決定部３、音声合成部４による部分を第一実施形態の対話装置１１とする。発話決定部３は、外部に存在する雑談対話システム６およびシナリオ対話システム７と通信可能なインターフェースを備える。雑談対話システム６およびシナリオ対話システム７は同様の機能を持つ処理部として対話装置１１内に構成しても構わない。なお、雑談対話システム６は少なくともユーザの発話内容に基づいた発話をエージェントが行う対話システムの一例であり、シナリオ対話システム７は予め記憶されたシナリオに基づいた発話をエージェントが行う対話システムの一例である。
【００１７】
本形態の対話システム１０は、応答感を向上するために、オープン発話に対するユーザの発話に基づいて雑談対話システム６が決定した発話を提示し、続いて、シナリオ対話システム７が決定した発話を雑談対話システム６が決定した発話の後に提示する。雑談対話システム６は少なくともユーザの発話内容に基づいて発話を決定するため、ユーザの発話に対して明示的に返答することができる。そのため、例えば「そっか」など単に相槌を打つ場合と比較して、自分の発言が流されてばかりいるような感覚をユーザへ与えてしまうことを回避することができる。これにより、ユーザに対して対話システム１０が真面目に対応してくれている印象を与えることができ、その後に続くシナリオ対話においても長く対話を続けることが可能となる。
【００１８】
対話装置１１は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。対話装置１１は、例えば、中央演算処理装置の制御のもとで各処理を実行する。対話装置１１に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、対話装置１１の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００１９】
入力部１は、ユーザの発話を対話システム１０が取得するためのインターフェースである。言い換えれば、入力部１は、ユーザが発話を対話システム１０へ入力するためのインターフェースである。例えば、入力部１はユーザの発話音声を収音して音声信号とするマイクロホンである。入力部１は、収音したユーザの発話音声の音声信号を、音声認識部２へ入力する。
【００２０】
音声認識部２は、入力部１が収音したユーザの発話音声の音声信号をユーザの発話内容を表すテキストに変換する。音声認識部２は、ユーザの発話内容を表すテキストを、発話決定部３へ入力する。音声認識の方法は既存のいかなる音声認識技術を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。
【００２１】
発話決定部３は、雑談対話システム６またはシナリオ対話システム７と通信し、入力されたテキストに基づいてユーザの発話に対する対話システム１０からの発話内容を表すテキストを決定する。発話決定部３は、決定した発話内容を表すテキストを、音声合成部４へ入力する。
【００２２】
音声合成部４は、発話決定部３が決定した発話内容を表すテキストを、発話内容を表す音声信号に変換する。音声合成部４は、発話内容を表す音声信号を、提示部５へ入力する。音声合成の方法は既存のいかなる音声合成技術を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。
【００２３】
提示部５は、発話決定部３が決定した発話内容をユーザへ提示するためのインターフェースである。例えば、提示部５は、人間の形を模して製作された人型ロボットである。この人型ロボットは、発話決定部３が決定した発話内容を表すテキストを音声合成部４が音声信号に変換した発話内容を表す音声信号を、例えば頭部に搭載したスピーカから発音する、すなわち、発話を提示する。提示部５を人型ロボットとした場合には、対話に参加する人格ごとに一台の人型ロボットを用意する。以下では、二人の人格が対話に参加する例として、二台の人型ロボット５−１および５−２が存在するものとする。
【００２４】
入力部１は提示部５と一体として構成してもよい。例えば、提示部５を人型ロボットとした場合、人型ロボットの頭部にマイクロホンを搭載し、入力部１として利用することも可能である。
【００２５】
以下、図２を参照して、第一実施形態の対話方法の処理手続きを説明する。
【００２６】
ステップＳ１１において、人型ロボット５−１または５−２は、シナリオ対話システム７または雑談対話システム６が、選択したオープン発話の内容を表す音声をスピーカから出力する。オープン発話とは、相手が自由に応答できる発話であり、少なくともオープン質問とオープンコメントの何れかを含む発話である。オープン質問とは、いわゆる５Ｗ１Ｈ（いつ（When）、どこで（Where）、だれが（Who）、なにを（What）、なぜ（Why）、どのように（How））のように、相手が自由に回答できる質問である。オープン質問の逆に、例えば「Yes / No」や「A or B or C」のように回答範囲が限定される質問は、クローズ質問と呼ばれる。オープンコメントとは、話題に対するとりとめのない感想など、特に答えを求めない発言であり、すなわち相手が自由に発言できる発話である。オープン発話の内容を表すテキストは発話決定部３の要求に応じてシナリオ対話システム７が選択したシナリオに沿って決定される。シナリオ対話システム７は、あらかじめ用意された複数のシナリオからランダムにシナリオを選択してもよいし、直前までの対話内容に基づいてあらかじめ定めたルールに従ってシナリオを選択してもよい。直前までの対話内容に基づいてシナリオを選択する方法としては、例えば、直前の５発話程度を含む対話について、各発話に含まれる単語や各発話を構成する焦点語と各シナリオに含まれる単語や焦点語との単語間距離が所定の距離より近いシナリオを選択する方法が挙げられる。
【００２７】
ステップＳ１２において、マイクロホン１は、オープン発話に対するユーザの発話を受け付ける。音声認識部２は、マイクロホン１が収音したユーザの発話音声の音声信号を音声認識し、音声認識結果として得られたテキストをユーザの発話内容を表すテキストとして発話決定部３へ入力する。
【００２８】
ステップＳ１３において、人型ロボット５−１は、ユーザの発話内容を表すテキストに基づいて雑談対話システム６が決定した雑談発話の内容を表す音声をスピーカから出力する。雑談発話の内容を表すテキストは、発話決定部３がユーザの発話の音声認識結果であるユーザの発話内容を表すテキストに基づいて、雑談対話システム６を用いて決定する。雑談発話の内容を表す音声を出力する人型ロボットは、オープン発話の内容を表す音声を出力した人型ロボットであってもよいし、オープン発話の内容を表す音声を出力した人型ロボットとは異なる人型ロボットであってもよい。
【００２９】
ステップＳ１４において、人型ロボット５−２は、シナリオ対話システム７が決定したシナリオ発話の内容を表す音声をスピーカから出力する。ステップＳ１４は、ステップＳ１３の後に行われる。すなわち、対話システムは、ユーザの発話に基づいて雑談対話システム６が決定した雑談発話の内容を表す音声をスピーカから出力した後に、シナリオ対話システム７が決定したシナリオ発話の内容を表す音声をスピーカから出力する。シナリオ発話の内容を表すテキストは、発話決定部３の要求に応じてシナリオ対話システム７が選択したシナリオに沿って、発話決定部３が決定する。シナリオ発話の内容を表す音声を出力する人型ロボットは、オープン発話の内容を表す音声を出力した人型ロボットであってもよいし、オープン発話の内容を表す音声を出力した人型ロボットとは異なる人型ロボットであってもよい。以降は、例えば、シナリオに沿った対話がユーザと対話システムとの間で実行されるように、対話システムは、シナリオ対話システム７が決定したシナリオ発話の発話内容を表す音声をスピーカから出力する。以降の発話を行う人型ロボットは、何れか１つの人型ロボットであっても複数の人型ロボットであってもよい。
【００３０】
以下、第一実施形態の対話内容の具体例を示す。ここで、Ｒは人型ロボットを表し、Ｈはユーザを表す。Ｒの後の括弧内における数字は人型ロボットの識別子である。「Ｒ（１→Ｈ）」は人型ロボット５−１がユーザへ話しかける意図で発話していることを表し、「Ｒ（１→２）」は人型ロボット５−１が人型ロボット５−２へ話しかける意図で発話していることを表す。なお、人型ロボットが誰に話かける意図であるかは、例えば、人型ロボットの頭部や視線の動きにより表出するようにしてもよいが、表出しないでもよい。
【００３１】
Ｒ（１→Ｈ）：「食べ物だったら何が好き？」（※２）
Ｈ：「ラーメンが好き！」
Ｒ（１→Ｈ）：「豚骨がいいよね。」（※１）
Ｒ（２→１）：「僕たちロボットだから、何も食べられないんだけどね。」（※２）
Ｒ（１→２）：「それはしょうがないよ。」（※２）
Ｒ（２→１）：「そっか。」（※２）
【００３２】
ここで、※１は雑談対話システム６により決定された発話内容である。※２はシナリオ対話システム７により決定された発話内容である。なお、※１以降の人型ロボットの発話は、発話する人型ロボットが逆でもよいし、話しかける相手が人間でも他の人型ロボットでも人間と他の人型ロボットの両方でもよい。
【００３３】
上記のように構成することにより、本形態の対話技術によれば、オープン発話に対するユーザの発話がシナリオの想定外であっても、雑談対話システムによりユーザの発話にふさわしい応答をすることができるため、ユーザが感じる応答感が向上する。これにより、ユーザはシステムとの対話を継続する意欲をかき立てられ、対話を長く続けることができるようになる。
【００３４】
＜第一実施形態の変形例１＞
第一実施形態では、ステップＳ１１においてシナリオ対話システム７が選択したオープン発話をスピーカから出力する例を説明したが、ステップＳ１１においてスピーカから出力するオープン発話はどのように生成されたものでもよい。
【００３５】
例えば、ステップＳ１１の前に行われたユーザの発話を入力部１が収音して音声信号とし、音声認識部２がユーザの発話内容を表すテキストを得て、発話決定部３がユーザの発話内容を表すテキストに少なくとも基づいて雑談対話システム６によってオープン発話の発話内容を表すテキストを決定し、雑談対話システム６が決定したオープン発話の発話内容を表す音声信号をスピーカから出力するようにしてもよい。
【００３６】
＜第一実施形態の変形例２＞
第一実施形態では、ステップＳ１３においてユーザの発話に基づいて雑談対話システム６が決定した雑談発話の内容を表す音声をスピーカから出力する例、すなわち、ステップＳ１３において雑談対話システム６が決定した１つの雑談発話の内容を表す音声をスピーカから出力する例を説明したが、ステップＳ１３において雑談対話システム６が決定した複数の雑談発話の内容を表す音声をスピーカから出力してもよい。
【００３７】
例えば、ステップＳ１３において、まず、人型ロボット５−１が、ユーザの発話に基づいて雑談対話システム６が決定した雑談発話の内容を表す音声をスピーカから出力し、次に、人型ロボット５−２が、スピーカから出力した人型ロボット５−１の発話に基づいて雑談対話システム６が決定した雑談発話の内容を表す音声をスピーカから出力するようにしてもよい。
【００３８】
＜第一実施形態の変形例３＞
第一実施形態の対話システム１０は、複数台の人型ロボットが協調してユーザとの対話を行うシステムであったが、ユーザとの対話の全てまたは一部を１台の人型ロボットが行うシステムであってもよい。例えば、ステップＳ１１のオープン発話、ステップＳ１３のユーザの発話に基づいて雑談対話システム６が決定した雑談発話、およびステップＳ１４のシナリオ対話システム７が決定したシナリオ発話を同じ１台の人型ロボットが行うようにしてもよい。この場合は、例えば、ステップＳ１４以降のユーザとの対話は、複数台の人型ロボットで協調して行ってもよいし、ステップＳ１４までと同じ１台の人型ロボットが行ってもよい。
【００３９】
＜第二実施形態＞
第二実施形態では、ユーザの話題への参加感を向上するために、シナリオ対話から雑談対話に移行し、その後、雑談対話から再度シナリオ対話へ移行する。シナリオ対話の間に雑談対話を挿入することで、対話の流れが自然になり、話題の決定に自分も参加している感覚をユーザへ与えることができる。これにより、ユーザはその後に続くシナリオ対話においても長く対話を続けることが可能となる。
【００４０】
第二実施形態の対話システム１２は、図３に示すように、入力部１、音声認識部２、発話決定部３、音声合成部４、および提示部５を、第一実施形態と同様に備え、さらに対話制御部８を備える。この対話システム１２が後述する各ステップの処理を行うことにより第二実施形態の対話方法が実現される。なお、図３に示すように、対話システム１２の音声認識部２、発話決定部３、音声合成部４、対話制御部８による部分を第二実施形態の対話装置１３とする。対話制御部８は、対話システム１２が備える他の処理部を制御して、ユーザの発話の受付とユーザへの発話の提示とをそれぞれ少なくとも一回以上実行する対話である対話フローを実行する。
【００４１】
以下、図４を参照して、第二実施形態の対話方法の処理手続きを説明する。
【００４２】
ステップＳ２１において、人型ロボット５−１または５−２は、シナリオ対話システム７が任意に選択した第一シナリオに含まれる第一シナリオ発話の内容を表す音声をスピーカから出力する。第一シナリオの選択は発話決定部３の要求を契機として行われる。シナリオ対話システム７は、あらかじめ用意された複数のシナリオからランダムに第一シナリオを選択してもよいし、以前の対話内容に基づいてあらかじめ定めたルールに従って第一シナリオを選択してもよい。シナリオ対話システム７が第一シナリオを選択する方法は、第一実施形態のステップＳ１１で説明した方法と同様である。
【００４３】
ステップＳ２２において、マイクロホン１は、第一シナリオ発話に対してユーザが発した第一ユーザ発話を受け付ける。音声認識部２は、マイクロホン１が収音したユーザの発話の音声信号を音声認識し、音声認識結果として得られたテキストを第一ユーザ発話の内容を表すテキストとして発話決定部３へ入力する。
【００４４】
ステップＳ２３において、対話システム１２は、シナリオ対話から雑談対話へ切り替える条件を満足したか否かを判定する。条件を満足したと判定した場合には、ステップＳ２４へ処理を進める。条件を満足していないと判定した場合には、ステップＳ２１へ処理を戻し、ステップＳ２１−Ｓ２２の処理を再度実行する。
【００４５】
シナリオ対話から雑談対話へ切り替える条件は、例えば、Ａ１．第一シナリオに沿った対話がすべて完了した場合、Ａ２．第一シナリオの進行が失敗した場合などが挙げられる。シナリオの進行が失敗した場合とは、例えば、Ａ２−１．ユーザへ向けて発話した後のユーザの発話がシナリオ対話システムの想定範囲に含まれていない場合、Ａ２−２．進行中のシナリオに対するユーザの振る舞いからそのシナリオについて話したくない意思やユーザの対話意欲が減退していることが認識された場合などが挙げられる。また、Ａ２−１の場合とＡ２−２の場合とを組み合わせ、ユーザへ向けて発話した後のユーザの反応が芳しくない場合も含まれる。ユーザの発話がシナリオ対話システムの想定範囲に含まれていない場合とは、例えば、ユーザの発話と、シナリオ対話システムが予め記憶されたシナリオに基づいてユーザの発話に対して決定した発話とが整合しない場合である。ユーザの振る舞いには、非言語シグナル、パラ言語シグナル（間の情報も含む）なども含まれる。ユーザの反応が芳しくない場合には、ユーザの振る舞いから話したくない意思が認識された場合や、ユーザの対話意欲の減退が認識された場合が含まれる。話したくない意思の認識や対話意欲の減退は、例えば、ユーザがあらかじめ定めた特定の語句（フレーズ）（例えば、「この話、さっきもしたよ。」など）を発したら、もうその話題について話したくない意思を表していると判断すればよい。
【００４６】
ステップＳ２４において、人型ロボット５−１または５−２は、第一ユーザ発話の内容を表すテキストに基づいて雑談対話システム６が決定した雑談発話の内容を表す音声をスピーカから出力する。雑談発話の内容を表す音声を出力する人型ロボットは、第一シナリオに基づく一つ以上の発話のうち最後の発話の内容を表す音声を出力した人型ロボットであってもよいし、その最後の発話の内容を表す音声を出力した人型ロボットとは異なる人型ロボットであってもよい。
【００４７】
雑談発話の内容を表すテキストは、発話決定部３が第一シナリオによる対話中の人型ロボットとユーザとの発話の系列の音声認識結果である発話系列の内容を表すテキストに基づいて、雑談対話システム６を用いて決定したものである。雑談対話システム６へ入力する発話系列の範囲は、直前の発話に限定してもよいし、第一シナリオの一部または全部でもよいし、第一シナリオの前に行われた雑談対話またはシナリオ対話すべてを含めてもよい。雑談対話へ切り替える際の最初の発話をシナリオごとに事前に設定しておいてもよい。例えば、食べ物の話をするシナリオの後に「食べること以外で、何が好き？」などの質問を用意することなどが考えられる。
【００４８】
ステップＳ２５において、マイクロホン１は、雑談発話に対してユーザが発した第二ユーザ発話を受け付ける。音声認識部２は、マイクロホン１が収音した第二ユーザ発話の音声信号を音声認識し、音声認識結果として得られたテキストを第二ユーザ発話の内容を表すテキストとして発話決定部３へ入力する。
【００４９】
ステップＳ２６において、対話システム１２は、雑談対話からシナリオ対話へ切り替える条件を満足したか否かを判定する。条件を満足したと判定した場合には、ステップＳ２７へ処理を進める。条件を満足していないと判定した場合には、ステップＳ２４へ処理を戻し、ステップＳ２４−Ｓ２５の処理を再度実行する。
【００５０】
雑談対話からシナリオ対話へ切り替える条件は、例えば、Ｂ１．雑談対話の継続が困難になった場合、Ｂ２．雑談対話を通じて次のシナリオを十分な信頼度で選択できる状況となった場合などが挙げられる。雑談対話の継続が困難な場合とは、例えば、Ｂ１−１．ユーザへ向けて発話した後のユーザの発話が雑談対話システムの想定範囲に含まれていない場合、Ｂ１−２．進行中の雑談対話に対するユーザの振る舞いからそのシナリオについて話したくない意思やユーザの対話意欲が減退していることが認識された場合、Ｂ１−３．次のシナリオを十分な信頼度で選択できる状況とならず所定の回数の雑談発話を繰り返した場合などが挙げられる。また、Ｂ１−１の場合とＢ１−２の場合とを組み合わせ、ユーザへ向けて発話した後のユーザの反応が芳しくない場合も含まれる。Ｂ１−３の場合は、Ｂ１−１の場合および／またはＢ１−２の場合と組み合わせることができ、例えば、ユーザの発話が雑談対話システムの想定範囲に含まれない場合および／またはユーザの振る舞いから話したくない意思が認識された場合が所定の回数繰り返し発生した場合に、雑談対話の継続が困難と判断するように構成してもよい。ユーザの発話が雑談対話システムの想定範囲に含まれていない場合とは、例えば、ユーザの発話と、雑談対話システムが少なくともユーザの発話に基づいて決定した発話とが整合しない場合である。ユーザの振る舞いには、非言語シグナル、パラ言語シグナル（間の情報も含む）なども含まれる。ユーザの反応が芳しくない場合には、ユーザの振る舞いから話したくない意思が認識された場合や、ユーザの対話意欲の減退が認識された場合が含まれる。話したくない意思の認識や対話意欲の減退は、例えば、ユーザがあらかじめ定めた特定の語句（フレーズ）（例えば、「この話、さっきもしたよ。」など）を発した場合などが挙げられる。
【００５１】
シナリオ対話へ切り替える際には、直前のユーザの発話を「そっか」といった相槌で受けるとともに、最初の発話の直前に間を挿入し、「ところでさ」「そうそう」「ねぇ」など、話題を変えようとしていることを表す発話を、雑談対話の最後に発話した人型ロボットと異なる人型ロボットに発話させるとよい。これにより、話題の不連続性により生じる違和感を軽減することができる。このとき、次のシナリオを選択した際の信頼度に応じて、発話する内容を変更してもよい。ここで、選択の信頼度とは、雑談対話の内容と選択したシナリオの類似度の高さを表す指標である。例えば、選択の信頼度が比較的高い場合には「そうそう、・・・」などと短い発話を挿入することとし、選択の信頼度が比較的低い場合には「ところでさ、全然関係ないかもしれないけど・・・」などと話題が変わることを明示的に表す内容を発話することが考えられる。選択の信頼度が低い場合の具体例としては、例えば、雑談対話で「ラーメンを食べた」ことを発話した後に、シナリオ対話で「レストランの経営」を話題にするように、話題語・話題述語項間の類似度が低い場合が挙げられる。また、例えば、雑談対話で「スポーツが好きではない」ことを発話した後に、シナリオ対話で「スキーをした」ことを話題にするように、話題の類似度は高いものの、ユーザがその話題に否定的である場合が挙げられる。さらに、例えば、雑談対話で「ドラッグ」についての発話があり、マウスのドラッグの話題か薬のドラッグの話題か判別できない場合のように、話題語が多義語であり、いずれの意味で発話されたのかを判別できない場合が挙げられる。
【００５２】
ステップＳ２７において、人型ロボット５−１または５−２は、シナリオ対話システム７が選択した第二シナリオに含まれる第二シナリオ発話の内容を表す音声をスピーカから出力する。第二シナリオの選択は発話決定部３の要求を契機として行われる。ステップＳ２３において第一シナリオが完了する前にシナリオ対話から雑談対話への切り替えが行われていた場合には、第一シナリオの残りの部分を第二シナリオとしてもよい。以降、第二シナリオに沿った対話がユーザと対話装置との間で実行される。
【００５３】
シナリオ対話システム７は、ステップＳ２４およびＳ２５で行われた雑談対話の内容に基づいてあらかじめ定めたルールに従って第二シナリオを選択する。雑談対話中の発話にはユーザが興味を抱き得る話題を表す語句が含まれていると考えられるため、これらを手掛かりとすることで適切な話題に関するシナリオを第二シナリオとして選択することができる。例えば、各シナリオに話題を表すキーワードを設定しておき、雑談対話中の人型ロボットの発話およびユーザの発話のいずれかまたは両方とそのキーワードとの類似度に従ってシナリオの選択を行う。また、例えば、ユーザの発話に対して雑談対話システム６が生成した文がいずれかのシナリオの先頭文に類似している場合はそのシナリオを選択する。
【００５４】
雑談対話中の発話を手掛かりとした選択が行えず、対話の継続が困難と判定した場合、あらかじめ用意された複数のシナリオの中からランダムに第二シナリオを選択する。この場合、事前にシナリオを準備する際にシナリオごとに選択確率を設定してもよい。すなわち、必ずしも均等なランダム選択をしなくともよい。また、これまでの観測情報から算出されている類似度に基づいて選択確率を重み付けしてもよい。
【００５５】
第二実施形態の対話方法における各ステップは対話制御部８の制御により実行される。対話制御部８は、シナリオ対話システム７が決定した第一シナリオに基づいて第一シナリオ発話の内容を提示するステップＳ２１と第一シナリオ発話に対してユーザが発した第一ユーザ発話を受け付けるステップＳ２２とをそれぞれ一回以上実行する第一対話フローと、雑談対話システム６がユーザの発話に基づいて決定した雑談発話の内容を提示するステップＳ２４と雑談発話に対してユーザが発した第二ユーザ発話を受け付けるステップＳ２５とをそれぞれ一回以上実行する第二対話フローとを実行する制御を行うことで、第二実施形態の対話方法を実現する。
【００５６】
以下、第二実施形態の対話内容の具体例を示す。ここで、Ｒは人型ロボットを表し、Ｈはユーザを表す。Ｒの後の括弧内における数字は人型ロボットの識別子である。第一実施形態と同様に、人型ロボットが誰に話かける意図であるかは、例えば、人型ロボットの頭部や視線の動きにより表出するようにしてもよいが、表出しなくてもよい。
【００５７】
Ｒ（１→２）：「食べ物だったら何が好き？」（※１：シナリオ対話システム７が選択した第一シナリオに基づいて決定した発話内容である。）
Ｒ（２→１）：「お寿司が好き。」（※１：シナリオ対話システム７が選択した第一シナリオに基づいて決定した発話内容である。）
Ｈ：「この話、さっきもしたよ。」（※「Ａ２−２．進行中のシナリオに対するユーザの振る舞いからそのシナリオについて話したくない意思が認識された場合」の具体例である。）
Ｒ（１→Ｈ）：「食べること以外で、何が好き？」（※１：以前の対話内容である「食べ物」に基づいてシナリオ対話システム７が選択した第一シナリオに含まれる発話の具体例である。）
Ｈ：「読書かな。」
Ｒ（１→Ｈ）：「好きな本のジャンルは何？」（※２：ユーザ発話の「読書」に基づいて雑談対話システム６が決定した発話の具体例である。）
Ｈ：「スポーツ漫画が好きだよ」
Ｒ（２→Ｈ）：「スポーツはよくやるの？」（※２：雑談対話を複数回繰り返す具体例である。ここではユーザ発話の「スポーツ」に基づいて雑談対話システム６が発話内容を決定している。）
Ｈ：「スポーツはあんまり好きじゃないな」
Ｒ（２→Ｈ）：「そっか」（※３：「Ｂ１−２．進行中の雑談対話に対するユーザの振る舞いからそのシナリオについて話したくない意思が認識された場合」に雑談対話の継続が困難と判断する場合の具体例である。ユーザが「あんまり好きじゃない」と話題を否定したため、雑談対話の継続が困難と判断している。ここでは、まず直前のユーザ発話を相槌で受けている。）
Ｒ（１→２）：「そういえば，ぼくはこの前スキーをしてきたよ」（※３：最初に、話題を変えようとしていることを表す「そういえば」を発話し、続いて、雑談対話の内容であった「スポーツ」に基づいてシナリオ対話システム７が選択した第二シナリオに含まれる発話を行っている。）
Ｒ（２→１）：「その体型でスキーは難しいんじゃない？」（※３：雑談対話の内容であった「スポーツ」に基づいてシナリオ対話システム７が選択した第二シナリオに含まれる発話の具体例である。）
【００５８】
上記のように構成することにより、本形態の対話技術によれば、あるシナリオ対話が終了した後、雑談対話の内容に従って次のシナリオ対話の話題が決定されるため、ユーザが感じる対話への参加感が向上する。これにより、ユーザは対話システムとの対話を継続する意欲をかき立てられ、対話を長く続けることができるようになる。
【００５９】
＜変形例＞
上述した実施形態では、エージェントとしてロボットを用いて音声による対話を行う例を説明したが、上述した実施形態のロボットは身体等を有する人型ロボットであっても、身体等を有さないロボットであってもよい。また、この発明の対話技術はこれらに限定されず、人型ロボットのように身体等の実体がなく、発声機構を備えないエージェントを用いて対話を行う形態とすることも可能である。そのような形態としては、例えば、コンピュータの画面上に表示されたエージェントを用いて対話を行う形態が挙げられる。より具体的には、「LINE」（登録商標）や「２ちゃんねる」（登録商標）のような、複数アカウントがテキストメッセージにより対話を行うグループチャットにおいて、ユーザのアカウントと対話装置のアカウントとが対話を行う形態に適用することも可能である。この形態では、エージェントを表示する画面を有するコンピュータは人の近傍にある必要があるが、当該コンピュータと対話装置とはインターネットなどのネットワークを介して接続されていてもよい。つまり、本対話システムは、人とロボットなどの話者同士が実際に向かい合って話す対話だけではなく、話者同士がネットワークを介してコミュニケーションを行う会話にも適用可能である。
【００６０】
変形例の対話システム２０は、図５に示すように、入力部１、発話決定部３、および提示部５を備える。図５の例では、変形例の対話システム２０は１台の対話装置２１からなり、変形例の対話装置２１は、入力部１、発話決定部３、および提示部５を備える。発話決定部３は、外部に存在する雑談対話システム６およびシナリオ対話システム７と通信可能なインターフェースを備える。雑談対話システム６およびシナリオ対話システム７は同様の機能を持つ処理部として対話装置内に構成しても構わない。
【００６１】
変形例の対話装置は、例えば、スマートフォンやタブレットのようなモバイル端末、もしくはデスクトップ型やラップトップ型のパーソナルコンピュータなどの情報処理装置である。以下、対話装置がスマートフォンであるものとして説明する。提示部５はスマートフォンが備える液晶ディスプレイである。この液晶ディスプレイにはチャットアプリケーションのウィンドウが表示され、ウィンドウ内にはグループチャットの対話内容が時系列に表示される。グループチャットとは、チャットにおいて複数のアカウントが互いにテキストメッセージを投稿し合い対話を展開する機能である。このグループチャットには、対話装置が制御する仮想的な人格に対応する複数の仮想アカウントと、ユーザのアカウントとが参加しているものとする。すなわち、本変形例は、エージェントが、対話装置であるスマートフォンの液晶ディスプレイに表示された仮想アカウントである場合の一例である。ユーザはソフトウェアキーボードを用いて入力部１へ発話内容を入力し、自らのアカウントを通じてグループチャットへ投稿することができる。発話決定部３はユーザのアカウントからの投稿を雑談対話システム６またはシナリオ対話システム７へ入力し、各対話システムから得た発話内容を、各仮想アカウントを通じてグループチャットへ投稿する。なお、スマートフォンに搭載されたマイクロホンと音声認識機能を用い、ユーザが発声により入力部１へ発話内容を入力する構成としてもよい。また、スマートフォンに搭載されたスピーカと音声合成機能を用い、各対話システムから得た発話内容を、各仮想アカウントに対応する音声でスピーカから出力する構成としてもよい。
【００６２】
なお、エージェントの発話が提示部５（ディスプレイ）に同時に表示されると、対話が活発である、あるいは盛り上がっている、と好意的に感じられる可能性がある一方、ユーザが一度に読み切れないほどの量のテキストが提示されると、ユーザが対話を継続しにくく感じる可能性があるため、ユーザに認知負荷をかけられない場面、落ち着いた雰囲気が求められる場面など、使用される状況に応じて、発話を順次表示することにしてもよい。なお、順次表示する場合には、所定の時間間隔を開けて表示してもよい。時間間隔は固定であっても可変であってもよい。
【００６３】
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００６４】
［プログラム、記録媒体］
上記実施形態で説明した対話装置における各種の処理機能をコンピュータによって実現する場合、対話装置が有すべき機能の処理内容はプログラムによって記述される。また、上記変形例で説明した対話システムにおける各種の処理機能をコンピュータによって実現する場合、対話システムが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記対話装置および対話システムにおける各種の処理機能がコンピュータ上で実現される。
【００６５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００６６】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
0006719747.tif 000002
【図２】
0006719747.tif 000003
【図３】
0006719747.tif 000004
【図４】
0006719747.tif 000005
【図５】
0006719747.tif 000006