(57)【要約】【課題】音声対話システムにおいて、ユーザの発話が短単語であった場合でも意味をくみ取って応答を返す。【解決手段】音声対話システムは、複数の対話シナリオを格納した対話シナリオ記憶手段と、音声認識の結果に基づいてユーザ発話に応答する対話文を生成する対話文生成手段と、を備える。対話シナリオは、第１のシステム発話の内容と、当該第１のシステム発話に対する応答として期待するユーザ発話の内容と、期待するユーザ発話に対する応答である第２のシステム発話の内容との３つが１組となったものである。対話文生成手段は、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものであるかを判断し、そうである場合には、当該当該ユーザ発話に対する応答として対話シナリオに定義されている第２のシステム発話を、前記ユーザ発話に応答する対話文として生成する。【選択図】図５
2018054790.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ発話の音声認識の結果を取得する音声認識手段と、
複数の対話シナリオを格納した対話シナリオ記憶手段と、
前記音声認識の結果に基づいて、前記ユーザ発話に応答する対話文を生成する対話文生成手段と、
を備え、
前記対話シナリオは、第１のシステム発話の内容と、当該第１のシステム発話に対する応答として期待するユーザ発話の内容と、期待するユーザ発話に対する応答である第２のシステム発話の内容との３つが１組となったものであり、
前記対話文生成手段は、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものであるかを判断し、そうである場合には、当該当該ユーザ発話に対する応答として対話シナリオに定義されている第２のシステム発話を、前記ユーザ発話に応答する対話文として生成する、
音声対話システム。
【請求項２】
前記対話文生成手段は、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものではない場合は、前記対話シナリオ記憶手段に格納されている複数の対話シナリオからいずれかの対話シナリオを選択して、選択された対話シナリオにおける第１のシステム発話の内容を、前記ユーザ発話に応答する対話文として生成する、
請求項１に記載の音声対話システム。
【請求項３】
対話シナリオを選択して対話文の生成および音声出力をした後にユーザ発話を取得した場合、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものであるかの判断は、前記ユーザ発話が前記選択された対話シナリオにおいて期待する応答として格納されたものであるか否かに基づいて行われる、
請求項２に記載の音声対話システム。
【請求項４】
前記対話シナリオ記憶手段には、少なくとも一部の対話シナリオにおける第２のシステム発話の内容を第１のシステム発話の内容として有する別の対話シナリオが格納される、
請求項１から３のいずれか１項に記載の音声対話システム。
【請求項５】
ユーザ発話の音声認識の結果を取得する音声認識ステップと、
前記音声認識の結果に基づいて、前記ユーザ発話に応答する対話文を生成する対話文生成ステップと、
を含み、
前記対話文生成ステップは、
第１のシステム発話の内容と、当該第１のシステム発話に対する応答として期待するユーザ発話の内容と、期待するユーザ発話に対する応答である第２のシステム発話の内容との３つが１組として定義された対話シナリオを参照して対話文を生成するものであり、
前記ユーザ発話が１つ前のシステム発話の応答として期待されるものであるかを判断し、そうである場合には、当該当該ユーザ発話に対する応答として対話シナリオに定義されている第２のシステム発話を、前記ユーザ発話に応答する対話文として生成する、
音声対話方法。
【請求項６】
請求項５に記載の方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声対話システムに関する。
【背景技術】
【０００２】
音声対話システムでは、ユーザとのあいだで自然な流れの対話を行えることが望まれる。
【０００３】
特許文献１では、ユーザ発話の意図を解釈し、情報の検索を要求するものであるか否かを判断する。この判断は、文章中に所定の文字列が含まれるか否かなどによって行われる。ユーザ発話の意図が情報の検索である場合には、外部のサーチエンジンなどを利用して情報を検索して、検索結果を取得する。一方、ユーザ発話の意図が情報の検索ではない場合は、あらかじめ決められた雑談データの中から発話に応じたものを抽出する。
【０００４】
特許文献２では、自然言語による文書に含まれる文について、文同士、単語同士、および文と単語との対応付けを行ってその情報を会話データベースに格納する。ユーザから自然言語による質問文の入力を受け付けると、会話データベースに蓄積された文と入力された質問文の類似度を算出して、類似度が高い文を返答文として選択する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−９８８４４号公報
【特許文献２】特開２００１−１７５６５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１，２はいずれも、ユーザの発話に対する応答文を決定するものであるが、ユーザの１つの発話から応答を決定するため、適切なシステム応答を決定できない場合がある。例えば、ユーザがＹＥＳまたはＮＯのみの返答をした場合には、会話を続けることが困難となる。
【０００７】
本発明は、ユーザの発話が短単語であった場合でも意味をくみ取って応答を返すことができる音声対話システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第一の態様は、
ユーザ発話の音声認識の結果を取得する音声認識手段と、
複数の対話シナリオを格納した対話シナリオ記憶手段と、
前記音声認識の結果に基づいて、前記ユーザ発話に応答する対話文を生成する対話文生成手段と、
を備え、
前記対話シナリオは、第１のシステム発話の内容と、当該第１のシステム発話に対する応答として期待するユーザ発話の内容と、期待するユーザ発話に対する応答である第２のシステム発話の内容との３つが１組となったものであり、
前記対話文生成手段は、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものであるかを判断し、そうである場合には、当該当該ユーザ発話に対する応答として対話シナリオに定義されている第２のシステム発話を、前記ユーザ発話に応答する対話文として生成する、
音声対話システムである。
【０００９】
このような構成によれば、対話シナリオ（会話テンプレート）を用いているので、ユーザ発話の長短に関わらず、１つ前のシステム発話の内容も考慮した自然な応答を返すことができる。
【００１０】
１つの対話シナリオにおいて、第１のシステム発話に対して期待するユーザ発話を複数定義してもよい。この場合、ユーザ発話の内容に応じて第２のシステム発話の内容がそれぞれ登録される。したがって、同じシステム発話に対して、ユーザの応答に応じてシステムの第２の応答を容易に異ならせることができる。
【００１１】
本発明において、前記対話文生成手段は、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものではない場合は、前記対話シナリオ記憶手段に格納されている複数の対話シナリオからいずれかの対話シナリオを選択して、選択された対話シナリオにおける第１のシステム発話の内容を前記ユーザ発話に応答する対話文として生成してもよい。この際、それまでの会話の話題、現在の状況（シーン）、ユーザの感情などを考慮して、対話シナリオを選択することも好ましい。このような選択を可能とするために、対話シナリオ記憶手段には、対話シナリオと関連付けて会話の話題、状況、ユーザの感情を記憶しておくとよい。
【００１２】
また、本発明において、対話シナリオを選択して対話文の生成および音声出力をした後にユーザ発話を取得した場合、前記ユーザ発話が１つ前のシステム発話の応答として期待されるものであるかの判断は、前記ユーザ発話が前記選択された対話シナリオにおいて期待する応答として格納されたものであるか否かに基づいて行えばよい。
【００１３】
また、本発明において、前記対話シナリオ記憶手段には、少なくとも一部の対話シナリオにおける第２のシステム発話の内容を第１のシステム発話の内容として有する別の対話シナリオが格納されてもよい。１つの対話シナリオに３発話よりも長い対話を定義することも考えられるが、３発話のシナリオを複数用意しこれらをつなぎ合わせて対話を行うようにすれば、対話シナリオの管理が容易となる。
【００１４】
なお、本発明は、上記手段の少なくとも一部を備える音声対話システムとして捉えることもできる。本発明はまた、音声対話システムを構成する音声対話装置あるいは対話サーバとして捉えることもできる。本発明は、また、上記処理の少なくとも一部を実行する音声対話方法として捉えることができる。また、本発明は、この方法をコンピュータに実行させるためのコンピュータプログラム、あるいはこのコンピュータプログラムを非一時的に記憶したコンピュータ可読記憶媒体として捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００１５】
本発明によれば、音声対話システムにおいて、ユーザの発話が短単語であった場合でも意味をくみ取って応答を返すことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施形態に係る音声対話システムの構成を示す図である。
【図２】図２は、変形例に係る音声対話システムの構成を示す図である。
【図３】図３（Ａ）および図３（Ｂ）は、対話シナリオの例を示す図である。
【図４】図４は、実施形態に係る音声対話システムにおける処理の流れの例を示す図である。
【図５】図５は、実施形態におけるユーザとシステムのあいだの対話の例である。
【発明を実施するための形態】
【００１７】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。以下で説明される実施形態は音声対話ロボットを音声対話端末として用いたシステムであるが、音声対話端末はロボットである必要はなく任意の情報処理装置や音声対話インタフェースなどを用いることができる。
【００１８】
＜システム構成＞
図１は、本実施形態に係る音声対話システム（音声対話ロボット）の構成を示す図である。本実施形態に係る音声対話ロボット１００は、マイク１０１、センサ１０３、スピーカー１０８、およびマイクロプロセッサなどの演算装置、メモリ、通信装置などを含むコンピュータである。マイクロプロセッサがプログラムを実行することにより、音声対話ロボット１００は、音声認識部１０２、シーン推定部１０４、対話文生成部１０５、対話シナリオ記憶部１０６、音声合成部１０７として機能する。図示はしていないが、音声対話ロボット１００は、画像取得装置（カメラ）や可動関節部や移動手段などを備えていてもよい。
【００１９】
音声認識部１０２は、マイク１０１から入力されたユーザ発話の音声データに対して、雑音除去、音源分離、特徴量抽出などの処理を行い、ユーザ発話の内容をテキスト化する。音声認識部１０２は、ユーザ発話の内容から話題を推定したり、ユーザ発話の内容あるいは音声特徴量からユーザの感情を推定したりする。
【００２０】
シーン推定部１０４は、センサ１０３から得られるセンサ情報から現在のシーンを推定する。センサ１０３は周囲の情報を取得できるものであれば、どのようなものであっても良い。例えば、位置情報を取得するＧＰＳセンサを用いて、現在のシーンが自宅滞在中なのか、職場で勤務中か、あるいは観光地に滞在中なのかなどを判断できる。これ以外にも、クロック（時刻取得）、照度センサ、降雨センサ、速度センサ、加速度センサなどをセンサ１０３として用いて現在のシーンを推定するようにしてもよい。
【００２１】
対話文生成部１０５は、ユーザに向けて発話するシステム発話の内容を決定する。典型的には、対話文生成部１０５は、ユーザ発話の内容や現在の会話の話題、ユーザの感情、現在のシーンなどに基づいて対話文を生成する。
【００２２】
対話文生成部１０５は、対話シナリオ記憶部１０６に記憶された会話テンプレート（対話シナリオ）を参照して対話文を決定する。会話テンプレートは、（１）システム発話、（２）システム発話の応答として期待するユーザ発話、（３）期待されるユーザ発話に応答するシステム発話、の３つが１組となったものである。対話文生成部１０５は、会話テンプレートにしたがって発話した後にユーザから得られた応答が、最初のシステム発話の応答として期待されるものであれば、会話テンプレートに定義されているシステム応答をユーザ発話に対する応答用の対話文として決定する。詳細は後ほど説明する。
【００２３】
音声合成部１０７は、発話内容のテキストを対話文生成部１０５から受け取り、音声合成を行って応答音声データを生成する。音声合成部１０７によって生成された応答音声データは、スピーカー１０８から再生される。
【００２４】
なお、音声対話ロボット１００は、１つの装置として構成される必要はない。例えば図２に示すように、マイク１０１、センサ１０３、スピーカー１０８、カメラ、可動関節部などを含むロボット装置１０９（フロントエンド装置）と、各種の処理を実行するスマートフォン１１０（あるいはその他のコンピュータ）の２つの装置から構成することができる。この場合、ロボット装置とコンピュータは、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの
無線通信により接続され、ロボット装置が取得したデータはコンピュータに送られ、コンピュータによる処理結果に基づいて応答文などの再生がロボット装置から行われる。
【００２５】
また、音声認識処理や対話文生成処理を音声対話ロボット１００で行う必要は無く、図２に示すように、音声認識サーバ２００や対話サーバ３００においてこれらの処理を行ってもよい。またこれらの処理は１つのサーバによって行われてもよい。このように外部サーバを用いて処理を行う場合、スマートフォン１１０（あるいはロボット装置１０９）がサーバとのあいだの連携を制御する。
【００２６】
＜対話シナリオ（会話テンプレート）＞
図３（Ａ）は、本実施形態における対話シナリオの一例を示す図である。例えば、欄３０１は、システムが「元気ですか？」という発話をしたときに、ユーザが「元気ですよ」と返したらシステムがさらに「それは良かった」と応答し、ユーザが「元気じゃない」と返したらシステムがさらに「あら、それは残念」と応答する対話シナリオが定義されている。
【００２７】
欄３０２は、「どこに行ったの？」というシステム発話に対して、ユーザが「京都だよ」と返したらシステムがさらに「京都かぁ。清水寺行った？」と応答し、ユーザが「東京だよ」と返したらシステムがさらに「東京かぁ。東京タワー行った？」と応答する対話シナリオである。欄３０３は、「今日は、何食べたの？」というシステム発話に対して、ユーザが「ラーメンだよ」と返したらシステムがさらに「いいなぁ。僕も食べたい」と応答し、ユーザが「うどんだよ」と返したらシステムがさらに「そっかぁ。うどんすき？」と応答する対話シナリオである。
【００２８】
このような対話シナリオを個別に定義するのは手間がかかるので、本実施形態では対話シナリオは、単語または文の属性情報を用いた会話テンプレートによって表され対話シナリオ記憶部１０６に格納される。
【００２９】
図３（Ｂ）は会話テンプレートを用いた対話シナリオの例を示す。欄３１１は、欄３０１の対話シナリオに対応する会話テンプレートであり、「元気ですか？」というシステム発話に、ユーザが肯定的な応答を返したらシステムが「それは良かった」と応答し、ユーザが否定的な応答を返したらシステムが「あら、それは残念」と応答することが定義されている。ここで、＜肯定＞あるいは＜否定＞は、ユーザの応答文が全体として肯定あるいは否定を表すことを意味する属性情報である。肯定的な文には「元気です」「絶好調」「はい」「うん」などが含まれ、否定的な文には「元気じゃない」「調子悪い」「いいえ」などが含まれる。
【００３０】
欄３１２は、欄３０２の対話シナリオに対応する会話テンプレートである。「どこに行ったの」というシステム発話に対し、ユーザが場所や施設名に関する応答をした場合に、システムは、ユーザが発話した場所・施設名を繰り返し、さらにその場所・施設に関連する場所に行ったかどうかを質問する。関連する場所は、対話文生成部１０５がデータベースを参照することで取得できる。
【００３１】
欄３１３は、欄３０３の対話シナリオに対する会話テンプレートである。「今日は、何食べたの？」というシステム発話に対して、ユーザの好物を食べたと返した場合には、「いいなぁ。僕も食べたい」とシステムが応答し、ユーザが好きかどうかをシステムが把握していない食べ物を食べたと返した場合には、その食べ物が好きかどうかをユーザに質問する。ここで、ユーザ発話に含まれる食べ物がユーザの好物であるか否かは、ユーザ情報を格納したデータベースを参照することで判断できる。
【００３２】
図４は、本実施形態における対話文生成処理の流れを示すフローチャートである。ここでは、音声対話システムがユーザから発話を受けた後の応答を生成する場合の処理を説明する。
【００３３】
ステップＳ１１において、対話文生成部１０５は音声認識部１０２からユーザ発話の認識結果を取得し、ユーザの発話が期待した応答であるか否かを判断する。
【００３４】
ユーザ発話が期待した応答である（Ｓ１１−ＹＥＳ）というのは、音声対話システムがある対話シナリオにしたがった発話をして、この対話シナリオにおいて期待される応答として定義されている応答をユーザが返した場合が相当する。例えば、図３（Ｂ）の欄３１２の対話シナリオにしたがって「どこに行ったの？」と音声対話システムがユーザに問いかけた際に、ユーザが場所や施設名を答えた場合が相当する。
【００３５】
ユーザ発話が期待した応答である場合（Ｓ１１−ＹＥＳ）は、ステップＳ１２において、対話文生成部１０５は、対話シナリオに定義されている応答を、システム応答として決定する。上記の例では、ユーザが応答した場所や施設名に関連する場所に行ったかどうかの質問（「＜場所・施設名＞かあ。＜関連場所＞は行った？」）が、システム応答として決定される。
【００３６】
一方、ユーザ発話が期待した応答ではない（Ｓ１１−ＮＯ）というのは上記以外が該当する。すなわち、音声対話システムがある対話シナリオにしたがったシステム発話をして、この対話シナリオにおいて期待される応答として定義されている以外の応答をユーザが返した場合が相当する。また、ユーザがシステムの発話に応答して発話したのではなく、ユーザが自発的にシステムに話しかけた場合も相当する。
【００３７】
ユーザ発話が期待した応答ではない場合（Ｓ１１−ＮＯ）は、ステップＳ１３において、対話文生成部１０５は、ユーザ発話の内容や推定シーンなどに基づいて、採用する対話シナリオを新たに選択する。ステップＳ１４において、対話文生成部１０５は、選択された対話シナリオにおける発話内容を、システム応答として決定する。なお、どの対話シナリオが選択されたかは、記憶部に記憶される。
【００３８】
図５は本実施形態にしたがって行われるシステムとユーザのあいだの対話の例を示す。まず、ステップＳ２１において、ユーザが「今日は旅行に行ったよ」とシステムに話しかける。ユーザのこの発話によって会話が始まり、その時点ではシステムは対話シナリオに基づく対話を開始していない。したがって、ステップＳ２１のユーザ発話は、システムが期待する応答には該当しない（Ｓ１１−ＮＯ）。
【００３９】
そこで、ステップＳ２２において、対話文生成部１０５は、ユーザ発話の内容を考慮してその応答として適切な対話シナリオ（図３（Ｂ）の欄３１２）を選択し、「どこに行ったの？」という発話を行う（Ｓ１３〜Ｓ１４）。
【００４０】
これに対してユーザは、ステップＳ２３において、「京都だよ」と答える。この応答は、対話シナリオにおいて期待される応答（＜場所・施設名＞）に該当する（Ｓ１１−ＹＥＳ）。したがって、対話文生成部１０５は、現在の対話シナリオにおいて定義されている応答（＜場所・施設名＞かあ。＜関連場所＞は行った？）を応答とする。この際、＜場所・施設名＞にはユーザ発話に含まれる「京都」がそのまま代入され、＜関連場所＞には「京都」に関連する場所として決定される「清水寺」が代入される。そして、ステップＳ２４において、「京都かぁ。清水寺は行った？」というシステム応答が返される（Ｓ１２）。
【００４１】
なお、ステップＳ２３におけるユーザ発話が「夜に帰ってきたんだ」というものであれば、これは対話シナリオにおいて期待されている応答ではない（Ｓ１１−ＮＯ）。この場合、対話文生成部１０５は、現在の対話シナリオにおいて定義されている「＜場所・施設名＞かあ。＜関連場所＞は行った？」という応答は採用せずに、再度全ての対話シナリオ（会話テンプレート）の中から選択を行って、選択した対話シナリオに定義される発話を行う（Ｓ１３〜Ｓ１４）。
【００４２】
＜本実施形態の有利な効果＞
本実施形態によれば、対話シナリオに沿った対話が行われるので、システム発話に対するユーザの応答が短いものであっても、最初のシステム発話の内容を考慮した自然な応答を返すことができる。
【００４３】
また、対話シナリオを３発話を１組として管理しているので、対話シナリオデータベースの生成・管理が容易であるという利点がある。
【００４４】
また、ある対話シナリオにおける３発話目を１発話目とする別の対話シナリオを用意しておけば、複数の対話シナリオをつなぎ合わせた長い対話が可能となる。対話文生成部１０５は、ある対話シナリオにおいてユーザに期待する応答が得られたときに、その対話シナリオに定義されている応答を発話文として決定すると共に、当該発話文を第１発話として定義している別の対話シナリオを選択して、この別の対話シナリオを現在利用中の対話シナリオとして記憶し直せばよい。
【００４５】
＜変形例＞
上記で説明した対話シナリオは一例に過ぎず、種々の変形を採用可能である。例えば、上記の説明では、ユーザ発話の文言（テキスト）のみを考慮して対話シナリオを定義しているが、ユーザの感情に応じてどのような応答を返すかを異ならせてもよい。例えば、「どこに行ったの？」や「何を食べたの？」という問いかけに対してユーザが同じ応答をした場合であっても、ユーザが楽しそうなのか悲しそうなのかなどに応じて異なるシステム応答を返すように対話シナリオを定義することもできる。同様に、ユーザが置かれている状況（シーン）に応じて、システム応答を返すように対話シナリオを定義することもできる。
【００４６】
＜その他＞
上記の実施形態および変形例の構成は、本発明の技術的思想を逸脱しない範囲内で、適宜組み合わせて利用することができる。また、本発明は、その技術的思想を逸脱しない範囲で適宜変更を加えて実現しても構わない。
【符号の説明】
【００４７】
１００：音声対話ロボット
１０１：マイク
１０２：音声認識部
１０３：マイク
１０４：シーン推定部
１０５：対話文生成部
１０６：対話シナリオ記憶部
１０７：音声合成部
１０８：スピーカー
【図１】
2018054790.tif 000003
【図２】
2018054790.tif 000004
【図３】
2018054790.tif 000005
【図４】
2018054790.tif 000006
【図５】
2018054790.tif 000007