(第1の実施形態)
図1は、第1の実施形態に係る対話装置の構成例を示すブロック図である。例えば、図1に示すように、対話装置100は、発話セット記憶部101と、発話セット取得部102と、出力部103と、検知部104とを有する。かかる対話装置100は、例えば、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
発話セット記憶部101は、第1発話と、第1発話に対する応答として想定されるユーザによる発話に対する応答の発話を表す第2発話とを含んだ発話セットを記憶する。ここで、図2を用いて、第1の実施形態に係る発話セット記憶部101に記憶される情報について説明する。図2は、第1の実施形態に係る発話セット記憶部101に記憶される情報例を示す図である。
例えば、図2に示すように、発話セット記憶部101は、第1発話「映画は好き?」と、第1発話に対して想定されるユーザによる発話を表す想定ユーザ発話「好きです」と、第2発話「そうなんだ」とを含んだ「発話セット1」を記憶する。図2では、説明の便宜上、「想定ユーザ発話」を含む発話セット記憶部101を例示したが、「想定ユーザ発話」は、発話セット記憶部101に含まれていなくても良い。すなわち、図2に示すように、発話セット記憶部101は、第1発話に対するユーザ発話がどのような応答であっても、自然な対話を実現できる発話セットを記憶している。
発話セット取得部102は、発話セットを取得する。例えば、発話セット取得部102は、ユーザが対話装置100の前に立ったり、ユーザによる対話装置100の利用準備が整ったりした等、任意のタイミングで、発話セット記憶部101に記憶された発話セットを取得する。例を挙げると、発話セット取得部102は、発話セット記憶部101に記憶された「発話セット1」である、第1発話「映画は好き?」と、第2発話「そうなんだ」とを取得する。
出力部103は、発話セット取得部102によって取得された発話セットを出力する。かかる出力部103は、第1出力部103aと、第2出力部103bとを有する。これらのうち、第1出力部103aは、発話セット取得部102によって取得された発話セットに含まれる第1発話を出力する。例を挙げると、第1出力部103aは、発話セット取得部102によって取得された発話セット「発話セット1」に含まれる第1発話「映画は好き?」を所定の表示出力装置に出力する。なお、第2出力部103bによる処理については後述する。
検知部104は、第1発話が出力された後のユーザによる発話を検知する。例えば、検知部104は、第1出力部103aによる第1発話の出力後に、ユーザによる発話を検知する。例を挙げると、検知部104は、第1出力部103aによって第1発話「映画は好き?」が所定の表示出力装置へ出力された後に、ユーザが「好きです」等を発話したことを検知する。なお、ユーザによる発話は、上記の例に限られるものではなく、どのような発話であっても良い。
また、第2出力部103bは、検知部104によってユーザによる発話が検知された場合に、発話セット取得部102によって取得された発話セットに含まれる第2発話を出力する。例を挙げると、第2出力部103bは、検知部104によってユーザによる発話「好きです」が検知された場合に、発話セット取得部102によって取得された発話セット「発話セット1」に含まれる第2発話「そうなんだ」を所定の表示出力装置に出力する。但し、検知部104によってユーザによる発話を一定時間検知できない場合には、第2出力部103bによる第2発話の出力を行わずに、次の発話セットを発話セット取得部102に取得させる。
次に、図3を用いて、第1の実施形態に係る対話処理の流れを説明する。図3は、第1の実施形態に係る対話処理の流れの例を示すフローチャートである。
例えば、図3に示すように、発話セット取得部102は、発話セット記憶部101から発話セットを取得する(ステップS101)。また、第1出力部103aは、発話セット取得部102によって取得された発話セットに含まれる第1発話を所定の表示出力装置に出力する(ステップS102)。
また、検知部104は、第1出力部103aによって出力された第1発話に対する、ユーザによる発話を検知したか否かを判定する(ステップS103)。このとき、検知部104によってユーザによる発話が検知された場合に(ステップS103肯定)、第2出力部103bは、発話セット取得部102によって取得された発話セットに含まれる第2発話を所定の表示出力装置に出力する(ステップS104)。また、第2発話の出力後、発話セット取得部102は、次の発話セットを発話セット記憶部101から取得する(ステップS101)。
一方、検知部104は、ユーザによる発話を検知していない場合に(ステップS103否定)、一定時間が経過したか否かを判定する(ステップS105)。このとき、検知部104は、一定時間が経過していない場合に(ステップS105否定)、再度、ユーザによる発話を検知したか否かを判定する(ステップS103)。一方、一定時間が経過した場合に(ステップS105肯定)、発話セット取得部102は、次の発話セットを発話セット記憶部101から取得する(ステップS101)。
本実施形態によれば、ユーザによる発話を限定する発話と、ユーザによる発話に対する応答の発話とを利用して対話するので、自然な対話を実現することができる。換言すると、ユーザによる発話の内容を認識することなく、自然な対話を実現することができる。
(第2の実施形態)
図4は、第2の実施形態に係る対話装置の構成例を示すブロック図である。第2の実施形態では、第1の実施形態と同様の処理を実行する機能部については同一の符号を付し、同様の処理についてはその説明を省略する場合がある。
例えば、図4に示すように、対話装置200は、発話セット記憶部101と、発話セット取得部102と、出力部103と、検知部104と、概念辞書記憶部205と、発話テンプレート記憶部206と、概念取得部207と、発話テンプレート取得部208と、発話セット生成部209とを有する。また、第1の実施形態と同様に、対話装置200は、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
概念辞書記憶部205は、語句と概念とを対応付けて記憶する。例えば、概念辞書記憶部205に記憶される単語は、常用されている単語であり、固有名詞や新しい単語等は含まれていない。発話テンプレート記憶部206は、一部の語句が概念で表現された第1発話と第2発話とを含んだ発話セットのテンプレートを記憶する。ここで、図5A及び図5Bを用いて、第2の実施形態に係る発話テンプレート記憶部206に記憶される情報について説明する。図5A及び図5Bは、第2の実施形態に係る発話テンプレート記憶部206に記憶される情報例を示す図である。
例えば、図5Aに示すように、発話テンプレート記憶部206は、第1発話「[食べ物]は好き?」と、想定ユーザ発話「好きだよ」と、第2発話「[食べ物]はおいしいんだよ」とを含んだ発話セットのテンプレート「テンプレート1」を記憶する。ここで、“[]”で囲まれた「食べ物」は、単語の概念である。すなわち、発話テンプレート記憶部206に記憶される発話セットのテンプレートには、発話に含まれる単語が概念で表現されている。
また、例えば、図5Bに示すように、発話テンプレート記憶部206は、第1発話「[食べ物]は好き?」と、想定ユーザ発話「好きだよ」と、第2発話「[食べ物]は「味」んだよ」とを含んだ発話セットのテンプレート「テンプレート1」を記憶する。同様に、“[]”で囲まれた「食べ物」及び「味」は、単語の概念である。すなわち、発話テンプレート記憶部206に記憶される発話セットのテンプレートには、発話に含まれる複数の単語が概念で表現されていても良い。なお、図5A及び図5Bでは、説明の便宜上、「想定ユーザ発話」を含む発話テンプレート記憶部206を例示したが、「想定ユーザ発話」は、発話テンプレート記憶部206に含まれていなくても良い。
概念取得部207は、語句が入力された場合に、該語句に対応する概念を概念辞書記憶部205から取得する。例を挙げると、概念取得部207は、ユーザによる対話装置200の操作により、単語「チョコレート」の入力を受け付ける。そして、概念取得部207は、受け付けた単語「チョコレート」に対応する概念「食べ物」を概念辞書記憶部205から取得する。また、複数の単語が入力される場合の例を挙げると、概念取得部207は、ユーザによる対話装置200の操作により、単語「チョコレート」、「甘い」の入力を受け付ける。そして、概念取得部207は、受け付けた単語「チョコレート」、「甘い」に対応する概念「食べ物」、「味」を概念辞書記憶部205から取得する。なお、対話装置200は、単語に対応する概念が概念辞書記憶部205に登録されていなかった場合に処理を終了する。
発話テンプレート取得部208は、概念取得部207によって取得された概念を含む発話セットのテンプレートを発話テンプレート記憶部206から取得する。例を挙げると、発話テンプレート取得部208は、概念取得部207によって取得された概念「食べ物」を含む発話セットのテンプレート「テンプレート1」を発話テンプレート記憶部206(図5A参照)から取得する。また、複数の単語が入力された場合の例を挙げると、発話テンプレート取得部208は、概念取得部207によって取得された概念「食べ物」、「味」を含む発話セットのテンプレート「テンプレート1」を発話テンプレート記憶部206(図5B参照)から取得する。なお、対話装置200は、概念を含む発話セットのテンプレートが発話テンプレート記憶部206に登録されていなかった場合に処理を終了する。
発話セット生成部209は、発話テンプレート取得部208によって取得された発話セットのテンプレートに含まれる概念に、入力された語句を挿入して新たな発話セットを生成する。そして、発話セット生成部209は、生成した新たな発話セットを発話セット記憶部101に格納する。
例を挙げると、発話セット生成部209は、発話テンプレート取得部208によって取得された発話セットのテンプレート「テンプレート1」(図5A参照)に含まれる概念「食べ物」に、入力を受け付けた単語「チョコレート」を挿入して新たな発話セットを生成する。上記の例で生成される発話セットは、第1発話「チョコレートは好き?」と、想定ユーザ発話「好きだよ」と、第2発話「チョコレートはおいしいんだよ」とを含むものとなる。そして、発話セット生成部209は、生成した新たな発話セットを発話セット記憶部101に格納する。
また、複数の単語が入力された場合の例を挙げると、発話セット生成部209は、発話テンプレート取得部208によって取得された発話セットのテンプレート「テンプレート1」(図5B参照)に含まれる概念「食べ物」、「味」に、入力を受け付けた単語「チョコレート」、「甘い」を挿入して新たな発話セットを生成する。上記の例で生成される発話セットは、第1発話「チョコレートは好き?」と、想定ユーザ発話「好きだよ」と、第2発話「チョコレートは甘いんだよ」とを含むものとなる。そして、発話セット生成部209は、生成した新たな発話セットを発話セット記憶部101に格納する。
次に、図6を用いて、第2の実施形態に係る発話セット生成処理の流れを説明する。図6は、第2の実施形態に係る発話セット生成処理の流れの例を示すフローチャートである。
例えば、図6に示すように、概念取得部207は、単語の入力を受け付けた場合に(ステップS201肯定)、該単語に対応する概念を概念辞書記憶部205から検索する(ステップS202)。また、概念取得部207は、単語の入力を受け付けていない場合に(ステップS201否定)、該単語の入力待ちの状態となる。
このとき、概念取得部207によって単語に対応する概念が概念辞書記憶部205から取得された場合に(ステップS203肯定)、発話テンプレート取得部208は、取得された概念を含む発話セットのテンプレートを発話テンプレート記憶部206から検索する(ステップS204)。一方、対話装置200は、概念取得部207によって単語に対応する概念が概念辞書記憶部205から取得されなかった場合に(ステップS203否定)、処理を終了する。
また、発話テンプレート取得部208は、概念取得部207によって取得された概念を含む発話セットのテンプレートを発話テンプレート記憶部206から検索する(ステップS204)。このとき、発話テンプレート取得部208によって発話セットのテンプレートが発話テンプレート記憶部206から取得された場合に(ステップS205肯定)、発話セット生成部209は、取得された発話セットのテンプレートに含まれる概念に、入力された単語を挿入して新たな発話セットを生成する(ステップS206)。その後、発話セット生成部209は、生成した発話セットを発話セット記憶部101に格納する。一方、対話装置200は、発話テンプレート取得部208によって発話セットのテンプレートが発話テンプレート記憶部206から取得されなかった場合に(ステップS205否定)、処理を終了する。
本実施形態によれば、予め登録された発話セットを使用した対話だけでなく、任意の単語に基づいた発話セットを使用した種々の対話を実現することができる。
(第3の実施形態)
図7は、第3の実施形態に係る対話装置の構成例を示すブロック図である。第3の実施形態では、第1の実施形態又は第2の実施形態と同様の処理を実行する機能部については同一の符号を付し、同様の処理についてはその説明を省略する場合がある。
例えば、図7に示すように、対話装置300は、発話セット記憶部101と、発話セット取得部102と、出力部103と、検知部104と、発話テンプレート記憶部206と、発話テンプレート取得部308と、発話セット生成部309と、特有単語記憶部310とを有する。また、第1の実施形態と同様に、対話装置300は、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
特有単語記憶部310は、外部から取得された特有な語句と、該特有な語句の概念とを対応付けて記憶する。ここで、図8を用いて、第3の実施形態に係る特有単語記憶部310に記憶される情報について説明する。図8は、第3の実施形態に係る特有単語記憶部310に記憶される情報例を示す図である。
例えば、図8に示すように、特有単語記憶部310は、特有単語「猛暑」と、特有単語の概念「天気」と、特有単語の出所を表す素性「http://tenki_jouhou.jp」とを対応付けて記憶する。また、特有単語は、特有な語句の一例である。特有単語記憶部310に記憶される情報は、日々変化する情報に基づいて適宜更新される。具体的には、天気に該当する特有単語は、予め登録された地域の天気に基づいた単語(例えば、「晴れ」、「雨」、「猛暑」、「ゲリラ豪雨」等)に更新される。同様に、ニュースに該当する特有単語は、解析された特定のニュースサイトの記事に基づいた単語(例えば、「なでしこジャパン」、「東日本大震災」、「○○首相」等)に更新される。同様に、このほかの特有単語は、マイクロブログ(Micro Blogging)等で頻出する単語(例えば、「台風○○号」、「正心誠意」、「女子会」等)に更新される。このように、特有単語記憶部310に記憶される特有単語は、常用されない単語を含む等、上述した概念辞書記憶部205等に登録された単語とは異なる性質を有する単語である。なお、特有単語記憶部310への特有単語の登録は、対話装置300内で実行されても良いし、特有単語を抽出するサービスを利用しても良い。
発話テンプレート取得部308は、特有な語句の概念を含む発話セットのテンプレートを発話テンプレート記憶部206から取得する。例を挙げると、発話テンプレート取得部308は、特有単語記憶部310に記憶された特有単語「わさびソフト」の概念「食べ物」を取得する。そして、発話テンプレート取得部308は、取得した概念「食べ物」を含む発話セットのテンプレート「テンプレート1」を発話テンプレート記憶部206(図5A参照)から取得する。なお、発話テンプレート取得部308は、特有単語記憶部310から特有単語の概念を取得する際、一つの様態として、特有単語記憶部310への登録が最新のものから取得する。
また、複数の特有単語の概念を取得する場合の例を挙げると、発話テンプレート取得部308は、特有単語記憶部310に記憶された特有単語「わさびソフト」、「涙が出るほど辛い」の概念「食べ物」、「味」を取得する。そして、発話テンプレート取得部308は、取得した概念「食べ物」、「味」を含む発話セットのテンプレート「テンプレート1」を発話テンプレート記憶部206(図5B参照)から取得する。
発話セット生成部309は、発話テンプレート取得部308によって取得された発話セットのテンプレートに含まれる概念に、特有な語句を挿入して新たな発話セットを生成する。そして、発話セット生成部309は、生成した新たな発話セットを発話セット記憶部101に格納する。
例を挙げると、発話セット生成部309は、発話テンプレート取得部308によって取得された発話セットのテンプレート「テンプレート1」(図5A参照)に含まれる概念「食べ物」に、特有単語「わさびソフト」を挿入して新たな発話セットを生成する。上記の例で生成される発話セットは、第1発話「わさびソフトは好き?」と、想定ユーザ発話「好きだよ」と、第2発話「わさびソフトはおいしいんだよ」とを含むものとなる。そして、発話セット生成部309は、生成した新たな発話セットを発話セット記憶部101に格納する。
また、複数の特有単語の概念を取得した場合の例を挙げると、発話セット生成部309は、発話テンプレート取得部308によって取得された発話セットのテンプレート「テンプレート1」(図5B参照)に含まれる概念「食べ物」、「味」に、特有単語「わさびソフト」、「涙が出るほど辛い」を挿入して新たな発話セットを生成する。上記の例で生成される発話セットは、第1発話「わさびソフトは好き?」と、想定ユーザ発話「好きだよ」と、第2発話「わさびソフトは涙が出るほど辛いんだよ」とを含むものとなる。そして、発話セット生成部309は、生成した新たな発話セットを発話セット記憶部101に格納する。
なお、特有単語記憶部310から複数の特有単語の概念を取得する場合には、同じ素性を有する特有単語の概念を取得することが好ましい。なぜならば、何らかの関係を有する特有単語同士を利用して発話を生成することにより、より好適な発話を生成することができるからである。このことから、上記の例では、同じ素性「http://web.Analyze.cgi」を有する特有単語「わさびソフト」、「涙が出るほど辛い」の概念「食べ物」、「味」を取得する場合を例に挙げた。
次に、図9を用いて、第3の実施形態に係る発話セット生成処理の流れを説明する。図9は、第3の実施形態に係る発話セット生成処理の流れの例を示すフローチャートである。
例えば、図9に示すように、発話テンプレート取得部308は、特有単語の概念を特有単語記憶部310から取得する(ステップS301)。そして、発話テンプレート取得部308は、取得した特有単語の概念を含む発話セットのテンプレートを発話テンプレート記憶部206から検索する(ステップS302)。
このとき、発話テンプレート取得部308によって該当する発話セットのテンプレートが発話テンプレート記憶部206から取得された場合に(ステップS303肯定)、発話セット生成部309は、取得された発話セットのテンプレートに含まれる概念に、取得された特有単語を挿入して新たな発話セットを生成する(ステップS304)。
その後、発話セット生成部309は、生成した発話セットを発話セット記憶部101に格納する。一方、対話装置300は、発話テンプレート取得部308によって発話セットのテンプレートが発話テンプレート記憶部206から取得されなかった場合に(ステップS303否定)、処理を終了する。
本実施形態によれば、日々更新される最新のキーワードが含まれた発話セットを使用した対話を実現することができる。
(第4の実施形態)
図10は、第4の実施形態に係る対話装置の構成例を示すブロック図である。第4の実施形態では、第1の実施形態又は第2の実施形態と同様の処理を実行する機能部については同一の符号を付し、同様の処理についてはその説明を省略する場合がある。
例えば、図10に示すように、対話装置400は、発話セット記憶部101と、発話セット取得部102と、出力部103と、検知部104と、概念辞書記憶部205と、発話テンプレート記憶部206と、概念取得部407と、発話テンプレート取得部208と、発話セット生成部409と、抽出部411とを有する。また、第1の実施形態と同様に、対話装置400は、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
抽出部411は、概念辞書記憶部205に記憶された語句に合致する、ユーザによる発話に含まれる語句を抽出する。例えば、抽出部411は、検知部104によって検知されたユーザによる発話の音声認識を行なう。そして、抽出部411は、音声認識処理の結果残った単語を、概念辞書記憶部205に記憶された単語に合致する、ユーザによる発話に含まれる単語として抽出する。
かかる音声認識処理では、一つの様態として、ユーザによる発話を形態素解析することで単語に分割され、各単語を概念辞書記憶部205から検索する処理が実行される。ここで、概念辞書記憶部205に記憶されていない単語は、助詞や助動詞等のため排除される。これらにより、音声認識処理の結果、残った単語が抽出される。ここでは、音声認識処理の結果残った単語が「カレー」である場合を例に挙げる。
概念取得部407は、抽出部411によって抽出された語句に対応する概念を概念辞書記憶部205から取得する。例を挙げると、概念取得部407は、抽出部411による音声認識処理の結果、残った単語「カレー」に対応する概念「食べ物」を概念辞書記憶部205から取得する。また、発話テンプレート取得部208は、第2の実施形態と同様に、概念取得部407によって取得された概念「食べ物」を含む発話セットのテンプレート「テンプレート1」を発話テンプレート記憶部206(図5A参照)から取得する。
発話セット生成部409は、発話テンプレート取得部208によって取得された発話セットのテンプレートに含まれる概念に、抽出部411によって抽出された語句を挿入して新たな発話セットを生成する。そして、発話セット生成部409は、生成した新たな発話セットを発話セット記憶部101に格納する。
例を挙げると、発話セット生成部409は、発話テンプレート取得部208によって取得された発話セットのテンプレート「テンプレート1」(図5A参照)に含まれる概念「食べ物」に、抽出部411によって抽出された単語「カレー」を挿入して新たな発話セットを生成する。上記の例で生成される発話セットは、第1発話「カレーは好き?」と、想定ユーザ発話「好きだよ」と、第2発話「カレーはおいしいんだよ」とを含むものとなる。そして、発話セット生成部409は、生成した新たな発話セットを発話セット記憶部101に格納する。
次に、図11を用いて、第4の実施形態に係る発話セット生成処理の流れを説明する。図11は、第4の実施形態に係る発話セット生成処理の流れの例を示すフローチャートである。
例えば、図11に示すように、検知部104によってユーザによる発話が検知された場合に(ステップS401肯定)、抽出部411は、音声認識処理を実行することにより、ユーザによる発話に含まれる単語を抽出する(ステップS402)。また、抽出部411は、検知部104によってユーザによる発話が検知されていない場合に(ステップS401否定)、検知部104によるユーザによる発話の検知待ちの状態となる。
また、概念取得部407は、抽出部411によって抽出された単語に対応する概念を概念辞書記憶部205から検索する(ステップS403)。このとき、概念取得部407によって単語に対応する概念が概念辞書記憶部205から取得された場合に(ステップS404肯定)、発話テンプレート取得部208は、取得された概念を含む発話セットのテンプレートを発話テンプレート記憶部206から検索する(ステップS405)。一方、対話装置400は、概念取得部407によって単語に対応する概念が概念辞書記憶部205から取得されなかった場合に(ステップS404否定)、処理を終了する。
また、発話テンプレート取得部208によって発話セットのテンプレートが発話テンプレート記憶部206から取得された場合に(ステップS406肯定)、発話セット生成部409は、取得された発話セットのテンプレートに含まれる概念に、抽出部411によって抽出された単語を挿入して新たな発話セットを生成する(ステップS407)。その後、発話セット生成部409は、生成した発話セットを発話セット記憶部101に格納する。一方、対話装置400は、発話テンプレート取得部208によって発話セットのテンプレートが発話テンプレート記憶部206から取得されなかった場合に(ステップS406否定)、処理を終了する。
本実施形態によれば、ユーザ発話に基づいて生成された発話セットを使用して対話するので、自然な対話の流れを実現することができる。
(第5の実施形態)
図12は、第5の実施形態に係る対話装置の構成例を示すブロック図である。第5の実施形態では、第1の実施形態又は第2の実施形態と同様の処理を実行する機能部については同一の符号を付し、同様の処理についてはその説明を省略する場合がある。
例えば、図12に示すように、対話装置500は、発話セット記憶部101と、発話セット取得部502と、出力部103と、検知部104と、概念辞書記憶部205と、発話テンプレート記憶部506と、概念取得部207と、発話テンプレート取得部208と、発話セット生成部209と、類似度算出部512と、共起辞書記憶部513と、決定部514とを有する。また、第1の実施形態と同様に、対話装置500は、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
発話テンプレート記憶部506は、第2の実施形態と同様に、一部の語句が概念で表現された第1発話と第2発話とを含んだ発話セットのテンプレートを記憶する。さらに、発話テンプレート記憶部506は、第1発話の種類と、第1発話に対するユーザによる発話から得られるユーザ情報と、発話セットのテンプレートの話題とを、第1発話及び第2発話に対応付けて記憶する。ここで、図13を用いて、第5の実施形態に係る発話テンプレート記憶部506に記憶される情報について説明する。図13は、第5の実施形態に係る発話テンプレート記憶部506に記憶される情報例を示す図である。
例えば、図13に示すように、発話テンプレート記憶部506は、第1発話の種類「質問」と、第1発話「[食べ物]は好き?」と、想定ユーザ発話「好きだよ」と、ユーザ情報「好きな食べ物」と、第2発話「[食べ物]は[味]んだよ」と、話題「食べ物」とを含んだ発話セットのテンプレート「テンプレート1」を記憶する。ここで、“[]”で囲まれた「食べ物」、「味」は、単語の概念である。
また、発話テンプレート記憶部506は、第1発話の種類「申し出」と、第1発話「[食べ物]はいかが?」と、想定ユーザ発話「どうも」と、第2発話「[食べ物]おすすめだよ」と、話題「食べ物」とを含んだ発話セットのテンプレート「テンプレート7」を記憶する。同様に、“[]”で囲まれた「食べ物」は、単語の概念である。「テンプレート7」のように、ユーザ情報は、発話セットのテンプレートによっては得られない場合もあるため、得られない場合にはその情報は保持されない。なお、「想定ユーザ発話」は、発話テンプレート記憶部506に含まれていなくても良い。
類似度算出部512は、新たな発話セットを含む発話セット間、又は、発話セットのテンプレート間の類似度を算出する。例えば、類似度算出部512は、発話セットのテンプレート間で、「第1発話の種類」による類似度を算出する。詳細には、類似度算出部512は、発話セットのテンプレート「s1」と、発話セットのテンプレート「s2」との第1発話の種類による類似度「Rt(s1,s2)」を、第1発話の種類が同じであれば「1」、異なれば「0」とする。例を挙げると、類似度算出部512は、発話セットのテンプレート「テンプレート1」と、発話セットのテンプレート「テンプレート6」との第1発話の種類による類似度「Rt(s1,s2)」を、第1発話の種類が同じ「質問」であるので「1」とする。同様に、類似度算出部512は、発話セットのテンプレート「テンプレート1」と、発話セットのテンプレート「テンプレート7」との第1発話の種類による類似度「Rt(s1,s2)」を、第1発話の種類が異なる「質問」、「申し出」であるので「0」とする。第1の発話による類似度を算出する理由は、発話の種類が同じものを連続させてしまうことで、似たような対話ばかりになるのを防ぐためである。
また、例えば、類似度算出部512は、発話セットのテンプレート間で、「ユーザ情報」による類似度を算出する。詳細には、類似度算出部512は、発話セットのテンプレート「s1」と、発話セットのテンプレート「s2」とのユーザ情報による類似度「Ru(s1,s2)」を、ユーザ情報が同じであれば「1」、異なれば「0」とする。例を挙げると、類似度算出部512は、発話セットのテンプレート「テンプレート1」と、発話セットのテンプレート「テンプレート6」とのユーザ情報による類似度「Ru(s1,s2)」を、ユーザ情報が同じ「好きな食べ物」であるので「1」とする。同様に、類似度算出部512は、発話セットのテンプレート「テンプレート1」と、発話セットのテンプレート「テンプレート7」とのユーザ情報による類似度「Ru(s1,s2)」を、異なる「好きな食べ物」、「(空欄)」であるので「0」とする。ユーザ情報による類似度を算出する理由は、似たようなことを尋ねる対話を連続させてしまうことが好ましくないからである。
また、例えば、類似度算出部512は、発話セットのテンプレート間で、「話題」による類似度を算出する。詳細には、類似度算出部512は、発話セットのテンプレート「s1」と、発話セットのテンプレート「s2」との話題による類似度「Rd(s1,s2)」を、話題が同じであれば「1」、異なれば「0」とする。例を挙げると、類似度算出部512は、発話セットのテンプレート「テンプレート1」と、発話セットのテンプレート「テンプレート6」との話題による類似度「Rd(s1,s2)」を、話題が同じ「食べ物」であるので「1」とする。同様に、類似度算出部512は、発話セットのテンプレート「テンプレート1」と、発話セットのテンプレート「テンプレート5」との話題による類似度「Rd(s1,s2)」を、異なる「食べ物」、「人」であるので「0」とする。話題による類似度を算出する理由は、同じ話題の発話を連続させてしまうことで、似たような対話ばかりになるのを防ぐためである。
これまで、発話セットのテンプレートの状態で類似度を算出する場合を説明したが、以下では、発話セットの状態で類似度を算出する場合を説明する。例えば、類似度算出部512は、発話セット間で、第1発話と第2発話との類似度を算出する。かかる類似度の算出の一つの様態として、編集距離を例に挙げる。編集距離とは、ある文章から別の文章に書き換えるときの、書き換えた単語の数を表す手数のことを指す。
また、以下では、下記の2つの発話セットを例に挙げる。
発話セットs1
「第1発話:カレーは好き? 第2発話:カレーって辛いよね」
発話セットs2
「第1発話:アイスクリームは好き? 第2発話:アイスクリームは冷たいよね」
詳細には、類似度算出部512は、発話セットs1と発話セットs2とに含まれる第1発話同士の編集距離を求める。
発話セットs1の第1発話:カレー /は/好き?
発話セットs2の第1発話:アイスクリーム/は/好き?
上記の例では、発話セットs1の第1発話から、発話セットs2の第1発話へ書き換えるときに、「カレー」を「アイスクリーム」に書き換えるだけで良いので、手数は「1」となる。また、編集距離は、文章が長いほど大きくなることが多い。このため、文章の長さで正規化する。但し、助詞や助動詞は文章の内容に影響するものではないので、これら以外の単語に限定して正規化編集距離「手数÷文章の長さ」を求める。すなわち、類似度算出部512は、「は」以外の単語の正規化編集距離「1/2=0.5」を求める。
続いて、類似度算出部512は、発話セットs1と発話セットs2とに含まれる第2発話同士の編集距離を求める。
発話セットs1の第2発話:カレー /って/辛い /よね
発話セットs2の第2発話:アイスクリーム/は /冷たい/よね
上記の例では、発話セットs1の第2発話から、発話セットs2の第2発話へ書き換えるときに、「カレー」を「アイスクリーム」に書き換えるとともに、「辛い」を「冷たい」に書き換えれば良いので、手数は「2」となる。すなわち、類似度算出部512は、正規化編集距離「2/2=1」を求める。
その後、類似度算出部512は、発話セットs1と発話セットs2との間の編集距離「0.5+1=1.5」を求める。すなわち、発話セット間の編集距離は、第1発話同士の編集距離と、第2発話同士の編集距離との和で求められる。そして、類似度算出部512は、発話セットs1と発話セットs2との間の編集距離による類似度「Re(s1,s2)」を、求めた和の逆数「1/1.5=0.67」として求める。
ところで、上記の例では、単語が一致するか否かを判定したが、単語間の関係性をさらに考慮しても良い。単語間の関係性の一例として、単語間の概念の違いが挙げられる。単語の概念は、概念辞書記憶部205に記憶された情報を利用する。例えば、「カレー」は、「生産物」、「食べ物」、「料理」という3階層の概念が付与されているものとする。また、「アイスクリーム」は、「生産物」、「食べ物」、「菓子」という3階層の概念が付与されているものとする。同様に、「辛い」は、「自然」、「自然」、「味」という3階層の概念が付与されているものとする。また、「冷たい」は、「関係」、「量」、「寒暖」という3階層の概念が付与されているものとする。概念の下位層まで一致する単語同士ほど、互いの意味が近い単語であると言える。そこで、概念の一致しなかった数で編集距離を求める。
詳細には、類似度算出部512は、発話セットs1と発話セットs2とに含まれる第1発話同士の単語の概念の編集距離を求める。上記の例では、第1発話それぞれに含まれる単語「カレー」、「アイスクリーム」の概念は2階層まで一致しているため、手数は「3−2=1」となる。この結果、第1発話同士の単語の概念の正規化編集距離は、「1/2=0.5」となる。
続いて、類似度算出部512は、発話セットs1と発話セットs2とに含まれる第2発話同士の単語の概念の編集距離を求める。上記の例では、第2発話それぞれに含まれる単語「カレー」、「アイスクリーム」の概念は2階層まで一致しているため、手数は「3−2=1」となる。加えて、第2発話それぞれに含まれる単語「辛い」、「冷たい」の概念は1階層も一致していないため、手数は「3−0=3」となる。この結果、第2発話同士の単語の概念の正規化編集距離は、「(1+3)/2=2」となる。
その後、類似度算出部512は、発話セットs1と発話セットs2との間の編集距離「0.5+2=2.5」を求める。そして、類似度算出部512は、発話セットs1と発話セットs2との間の編集距離による類似度「Rec(s1,s2)」を、求めた和の逆数「1/2.5=0.4」として求める。
ところで、上記の例では、単語間の関係性の一例として、単語間の概念の違いを挙げたが、単語間の共起性をさらに考慮しても良い。共起性に関しては、共起辞書記憶部513を利用する。共起辞書記憶部513は、例えば、任意の2つの単語の共起率を記憶する。共起率とは、2つの単語が同じ文書中でどれくらい使用されているかを表すものである。このような共起率の算出方法は、一つの様態として、以下の(数1)等がある。
(数1)では、共起率の一例として「cosine係数」を挙げており、「単語Aと単語Bとの共起頻度」とは単語A、単語Bが同じ文書中で使用される頻度を意味する。このように、共起辞書記憶部513には、大量の文書を含んだデータを使用して予め算出された2つの単語の共起率が記憶されている。
詳細には、類似度算出部512は、発話セットs1と発話セットs2とに含まれる第1発話同士の単語の共起率の編集距離を求める。上記の例において、第1発話それぞれに含まれる単語「カレー」、「アイスクリーム」の共起率は、「0.2」であることとする。この結果、第1発話同士の単語の共起率の正規化編集距離は、「1/0.2/2=10」となる。
続いて、類似度算出部512は、発話セットs1と発話セットs2とに含まれる第2発話同士の単語の概念の編集距離を求める。上記の例では、第2発話それぞれに含まれる単語「カレー」、「アイスクリーム」の共起率は、「0.2」であることとする。加えて、第2発話それぞれに含まれる単語「辛い」、「冷たい」の共起率は、「0.01」であることとする。この結果、第2発話同士の単語の共起率の正規化編集距離は、「(1/0.2+1/0.01)/2=52.5」となる。
その後、類似度算出部512は、発話セットs1と発話セットs2との間の編集距離「10+52.5=62.5」を求める。そして、類似度算出部512は、発話セットs1と発話セットs2との間の共起率を用いた編集距離による類似度「Res(s1,s2)」を、求めた和の逆数「1/62.5=0.016」として求める。
以上をふまえ、類似度算出部512は、発話セットs1と発話セットs2との間の類似度「R(s1,s2)」を、以下の(数2)により算出する。
(数2)
R(s1,s2)=Wt*Rt(s1,s2)+Wu*Ru(s1,s2)+Wd*Rd(s1,s2)+We*Re(s1,s2)+Wec*Rec(s1,s2)+Wes*Res(s1,s2)
(数2)に含まれる「Wt」、「Wu」、「Wd」、「We」、「Wec」及び「Wes」は、類似度それぞれに対する重みであり、0から1の間の値をとる。なお、類似度「R(s1,s2)」の算出では、上記の類似度のいずれかを利用することとしても良い。
決定部514は、類似度が所定値を超えない範囲で、連続する発話セット間又は発話セットのテンプレート間の類似度が最も高くなるように、発話セット又は発話セットのテンプレートの順番を決定する。ここで、図14を用いて、第5の実施形態に係る順番決定処理を説明する。図14は、第5の実施形態に係る順番決定処理を説明する図である。
図14では、類似度算出部512によって算出された、「発話セット1」、「発話セット2」、「発話セット3」及び「発話セット4」それぞれの間の類似度が表されている。また、ここでは、所定値が「0.9」である場合を例に挙げる。例えば、図14に示すように、決定部514は、「発話セット1」の次に利用する発話セットを、所定値「0.9」を超えない範囲で、「発話セット1」との間の類似度が最も高い「発話セット4」に決定する。
そして、決定部514は、「発話セット4」の次に利用する発話セットを、所定値「0.9」を超えない範囲で、「発話セット4」との間の類似度が最も高い「発話セット3」に決定する。続いて、決定部514は、「発話セット3」の次に利用する発話セットを、所定値「0.9」を超えない範囲で、「発話セット3」との間の類似度が最も高い「発話セット2」に決定する。すなわち、決定部514は、図14に示す類似度と所定値「0.9」とである場合に、「発話セット1」、「発話セット4」、「発話セット3」、「発話セット2」の順に発話セットの順番を決定する。
これらのように、連続する発話セット同士の類似度に所定値を設定し、類似度が所定値以上となる発話セットは連続して使用しないようにする。但し、類似度が低い発話セット同士を連続して使用すると、対話の内容が急に変化する場合があるため、所定値を超えない範囲で、連続する発話セット間の類似度が最も高くなるように発話セットの順番が決定される。
発話セット取得部502は、決定された順番に従って発話セットを取得する。例えば、発話セット取得部502は、決定部514によって決定された発話セットの順番に従って、発話セット記憶部101から発話セットを取得する。また、第1出力部103aは、発話セットの取得順に、第1発話を出力する。例えば、第1出力部103aは、発話セット取得部502による発話セットの取得順に、発話セットに含まれる第1発話を所定の表示出力装置に出力する。なお、第2出力部103bは、検知部104によるユーザ発話の検知後に、第1出力部103aによって出力された第1発話に対応する第2発話を所定の表示出力装置に出力する。
次に、図15を用いて、第5の実施形態に係る対話処理の流れを説明する。図15は、第5の実施形態に係る対話処理の流れの例を示すフローチャートである。
例えば、図15に示すように、類似度算出部512は、発話セット間又は発話セットのテンプレート間の類似度を算出する(ステップS501)。また、決定部514は、類似度算出部512によって算出された類似度が所定値を超えない範囲で、連続する発話セット間又は発話セットのテンプレート間の類似度が最も高くなるように、発話セット又は発話セットのテンプレートの順番を決定する(ステップS502)。
また、発話セット取得部502は、決定部514によって決定された順番に従って、発話セット記憶部101に記憶された発話セットを取得する(ステップS503)。また、第1出力部103aは、発話セット取得部502によって取得された発話セットに含まれる第1発話を所定の表示出力装置に出力する(ステップS504)。
また、検知部104は、第1出力部103aによって出力された第1発話に対する、ユーザによる発話を検知したか否かを判定する(ステップS505)。このとき、検知部104によってユーザによる発話が検知された場合に(ステップS505肯定)、第2出力部103bは、第1出力部103aによって出力された第1発話に対応する、発話セット取得部502によって取得された発話セットに含まれる第2発話を所定の表示出力装置に出力する(ステップS506)。また、第2発話の出力後、発話セット取得部502は、決定部514によって決定された順番に従って、次の発話セットを発話セット記憶部101から取得する(ステップS503)。
一方、検知部104は、ユーザによる発話を検知していない場合に(ステップS505否定)、一定時間が経過したか否かを判定する(ステップS507)。このとき、検知部104は、一定時間が経過していない場合に(ステップS507否定)、再度、ユーザによる発話を検知したか否かを判定する(ステップS505)。一方、一定時間が経過した場合に(ステップS507肯定)、発話セット取得部502は、決定部514によって決定された順番に従って、次の発話セットを発話セット記憶部101から取得する(ステップS503)。
本実施形態によれば、発話セット間の類似度に基づいて発話セットの順番を決定するので、より自然な対話の流れを実現することができる。
(第6の実施形態)
図16は、第6の実施形態に係る対話装置の構成例を示すブロック図である。第6の実施形態では、第1の実施形態、第2の実施形態又は第5の実施形態と同様の処理を実行する機能部については同一の符号を付し、同様の処理についてはその説明を省略する場合がある。
例えば、図16に示すように、対話装置600は、発話セット記憶部101と、発話セット取得部602と、出力部103と、検知部104と、概念辞書記憶部205と、発話テンプレート記憶部506と、概念取得部207と、発話テンプレート取得部208と、発話セット生成部209と、類似度算出部612と、共起辞書記憶部513と、決定部614とを有する。また、第1の実施形態と同様に、対話装置600は、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
類似度算出部612は、新たな発話セットを含む発話セット間、又は、発話セットのテンプレート間の類似度を算出する。かかる類似度算出部612による処理は、第5の実施形態に係る類似度算出部512による処理と同様であるため、ここでは詳細な説明を省略する。
決定部614は、類似度が所定値以上となる発話セット同士又は発話セットのテンプレート同士を同一のグループにグループ分けし、類似度が最も近い異なるグループを順次選択して、連続する発話セット又は発話セットのテンプレートの順番を決定する。例えば、決定部614は、類似度算出部612によって算出された類似度が所定値「X1」以上であるというルールのもとに発話セットをグルーピングする。
そして、決定部614は、グループ同士の類似度を求める。グループ同士の類似度は、例えば、同一グループに属する発話セット間の類似度の平均値、最大値又は最小値のいずれかとする。続いて、決定部614は、同じグループから連続する発話セットを選択しない、すなわち異なるグループから連続する発話セットを順次選択し、発話セットの順番を決定する。但し、決定部614は、異なるグループから連続する発話セットを順次選択する場合に、グループ間の類似度が最も近いグループから連続する発話セットを順次選択する。
なお、グループから発話セットを選択する場合には、一度選択されたグループは全てのグループが選択された後にしか再選択できないようにしても良い。また、毎発話セットで類似度が所定値未満のグループに属する発話セットを選択しなくても良く、N回(「N」は、自然数)だけ同じグループ内から連続して発話セットを選択し、その後、他のグループから同じようにN回選択するようにしても良い。
発話セット取得部602は、決定された順番に従って発話セットを取得する。例えば、発話セット取得部602は、決定部614によって決定された発話セットの順番に従って、発話セット記憶部101から発話セットを取得する。また、第1出力部103aは、発話セットの取得順に、第1発話を出力する。例えば、第1出力部103aは、発話セット取得部602による発話セットの取得順に、発話セットに含まれる第1発話を所定の表示出力装置に出力する。なお、第2出力部103bは、検知部104によるユーザ発話の検知後に、第1出力部103aによって出力された第1発話に対応する第2発話を所定の表示出力装置に出力する。
次に、図17を用いて、第6の実施形態に係る対話処理の流れを説明する。図17は、第6の実施形態に係る対話処理の流れの例を示すフローチャートである。
例えば、図17に示すように、類似度算出部612は、発話セット間又は発話セットのテンプレート間の類似度を算出する(ステップS601)。また、決定部614は、類似度算出部612によって算出された類似度が所定値以上となる発話セット同士を同一グループにグループ分けする(ステップS602)。続いて、決定部614は、グループ同士の類似度に基づいて、連続する発話セットを各グループから選択し、発話セットの順番を決定する(ステップS603)。
また、発話セット取得部602は、決定部614によって決定された順番に従って、発話セット記憶部101に記憶された発話セットを取得する(ステップS604)。また、第1出力部103aは、発話セット取得部602によって取得された発話セットに含まれる第1発話を所定の表示出力装置に出力する(ステップS605)。
また、検知部104は、第1出力部103aによって出力された第1発話に対する、ユーザによる発話を検知したか否かを判定する(ステップS606)。このとき、検知部104によってユーザによる発話が検知された場合に(ステップS606肯定)、第2出力部103bは、第1出力部103aによって出力された第1発話に対応する、発話セット取得部602によって取得された発話セットに含まれる第2発話を所定の表示出力装置に出力する(ステップS607)。また、第2発話の出力後、発話セット取得部602は、決定部614によって決定された順番に従って、次の発話セットを発話セット記憶部101から取得する(ステップS604)。
一方、検知部104は、ユーザによる発話を検知していない場合に(ステップS606否定)、一定時間が経過したか否かを判定する(ステップS608)。このとき、検知部104は、一定時間が経過していない場合に(ステップS608否定)、再度、ユーザによる発話を検知したか否かを判定する(ステップS606)。一方、一定時間が経過した場合に(ステップS608肯定)、発話セット取得部602は、決定部614によって決定された順番に従って、次の発話セットを発話セット記憶部101から取得する(ステップS604)。
本実施形態によれば、発話セット同士の類似度が所定値以上のものをグルーピングして、グループ同士の類似度に基づいて発話セットの順番を決定するので、より自然な対話を実現することができる。
(第7の実施形態)
図18は、第7の実施形態に係る対話装置の構成例を示すブロック図である。第7の実施形態では、第1の実施形態、第2の実施形態、第4の実施形態又は第5の実施形態と同様の処理を実行する機能部については同一の符号を付し、同様の処理についてはその説明を省略する場合がある。
例えば、図18に示すように、対話装置700は、発話セット記憶部101と、発話セット取得部702と、出力部103と、検知部104と、概念辞書記憶部205と、発話テンプレート記憶部206と、概念取得部407と、発話テンプレート取得部208と、発話セット生成部409と、抽出部411と、類似度算出部712と、共起辞書記憶部513と、決定部714とを有する。また、第1の実施形態と同様に、対話装置700は、ディスプレイ又はスピーカ等を備えた所定の表示出力装置に、文字又は音声を出力することによりユーザとの対話を実現する。
類似度算出部712は、抽出された語句と新たな発話セットを含む発話セットとの間、及び、発話セット間の類似度を算出する。例えば、類似度算出部712は、抽出部411による音声認識処理で抽出された単語と、各発話セットと間の類似度を算出するとともに、発話セット間の類似度を算出する。発話セット間の類似度の算出は上述してきた実施形態と同様であるためその説明を省略し、ここでは、抽出された単語と発話セットとの間の類似度の算出について説明する。
また、以下では、下記の単語と発話セットとを例に挙げる。
単語k1「カレー」
発話セットs1
「第1発話:アイスクリームは好き? 第2発話:アイスクリームは冷たいよね」
詳細には、類似度算出部712は、単語k1と発話セットs1とに含まれる単語「カレー」、「アイスクリーム」の概念の類似度「Rec(k1,s1)=1」を算出する。なお、発話セット中に複数の単語が含まれている場合には、平均値、最大値又は最小値のいずれかを類似度とすれば良い。
また、類似度算出部712は、単語「カレー」、「アイスクリーム」の共起率「0.2」と、単語「カレー」、「冷たい」の共起率「0.01」と、単語「カレー」、「好き」の共起率「0.05」とを共起辞書記憶部513から取得する。そして、類似度算出部712は、共起率を用いた類似度「Res(k1,s1)=(0.2+0.01+0.05)/3=0.087」を求める。ここでは、平均値を使用する例を挙げたが、最大値又は最小値のいずれかを類似度としても良い。
以上をふまえ、類似度算出部712は、単語k1と発話セットs1との間の類似度「R(k1,s1)」を、以下の(数3)により算出する。
(数3)
R(k1,s1)=Wec*Rec(k1,s1)+Wes*Res(k1,s1)
(数3)に含まれる「Wec」及び「Wes」は、類似度それぞれに対する重みであり、0から1の間の値をとる。なお、類似度「R(k1,s1)」の算出では、上記の類似度のいずれかを利用することとしても良い。
決定部714は、類似度が最も高い発話セットを一番目の発話セットとして、該一番目の発話セットから類似度が所定値を超えない範囲で、連続する発話セット間の類似度が最も高くなるように、発話セットの順番を決定する。例えば、決定部714は、類似度算出部712によって算出された単語k1と各発話セットとの間の類似度のうち、最も高い類似度となった発話セットを一番目の発話セットとする。
そして、決定部714は、類似度算出部712によって算出された発話セット間の類似度に基づいて、一番目の発話セットから類似度が所定値を超えない範囲で、連続する発話セット間の類似度が最も高くなるように、発話セットの順番を決定していく。すなわち、一番目の発話セットが決定された後、連続する発話セット同士の類似度に所定値を設定し、類似度が所定値以上となる発話セットは連続して使用しないようにする。但し、類似度が低い発話セット同士を連続して使用すると、対話の内容が急に変化する場合があるため、所定値を超えない範囲で、連続する発話セット間の類似度が最も高くなるように発話セットの順番が決定される。
発話セット取得部702は、決定された順番に従って発話セットを取得する。例えば、発話セット取得部702は、決定部714によって決定された発話セットの順番に従って、発話セット記憶部101から発話セットを取得する。また、第1出力部103aは、発話セットの取得順に、第1発話を出力する。例えば、第1出力部103aは、発話セット取得部702による発話セットの取得順に、発話セットに含まれる第1発話を所定の表示出力装置に出力する。なお、第2出力部103bは、検知部104によるユーザ発話の検知後に、第1出力部103aによって出力された第1発話に対応する第2発話を所定の表示出力装置に出力する。また、抽出部411によって新たな単語が抽出された場合には、上記処理を再度実行して、発話セットの順番を更新する。
次に、図19を用いて、第7の実施形態に係る対話処理の流れを説明する。図19は、第7の実施形態に係る対話処理の流れの例を示すフローチャートである。
例えば、図19に示すように、検知部104によってユーザによる発話が検知された場合に(ステップS701肯定)、抽出部411は、音声認識処理を実行することにより、ユーザによる発話に含まれる単語を抽出する(ステップS702)。また、抽出部411は、検知部104によってユーザによる発話が検知されていない場合に(ステップS701否定)、検知部104によるユーザによる発話の検知待ちの状態となる。
また、類似度算出部712は、抽出部411によって抽出された単語と各発話セットとの間、及び、発話セット間の類似度を算出する(ステップS703)。また、決定部714は、類似度算出部712によって算出された単語と発話セットとの類似度をもとに一番目の発話セットを決定し、類似度算出部712によって算出された発話セット間の類似度をもとに一番目の発話セットに続く発話セットの順番を決定する(ステップS704)。
また、発話セット取得部702は、決定部714によって決定された順番に従って、発話セット記憶部101に記憶された発話セットを取得する(ステップS705)。また、第1出力部103aは、発話セット取得部702によって取得された発話セットに含まれる第1発話を所定の表示出力装置に出力する(ステップS706)。
また、検知部104は、第1出力部103aによって出力された第1発話に対する、ユーザによる発話を検知したか否かを判定する(ステップS707)。このとき、検知部104によってユーザによる発話が検知された場合に(ステップS707肯定)、第2出力部103bは、第1出力部103aによって出力された第1発話に対応する、発話セット取得部702によって取得された発話セットに含まれる第2発話を所定の表示出力装置に出力する(ステップS708)。また、第2発話の出力後、発話セット取得部702は、決定部714によって決定された順番に従って、次の発話セットを発話セット記憶部101から取得する(ステップS705)。
一方、検知部104は、ユーザによる発話を検知していない場合に(ステップS707否定)、一定時間が経過したか否かを判定する(ステップS709)。このとき、検知部104は、一定時間が経過していない場合に(ステップS709否定)、再度、ユーザによる発話を検知したか否かを判定する(ステップS707)。一方、一定時間が経過した場合に(ステップS709肯定)、発話セット取得部702は、決定部714によって決定された順番に従って、次の発話セットを発話セット記憶部101から取得する(ステップS705)。
本実施形態によれば、音声認識で抽出された単語を含んだ発話セットを使用するので、より自然な対話を実現することができる。
(上記以外の実施形態)
上記実施形態では、ユーザによる発話の内容を認識することなく対話を実現する場合を説明したが、対話の続行に支障をきたさないような対話を実現することが好ましい。例えば、ユーザによる発話が「聞き返し」等の所定発話である場合に、そのまま次の発話を出力すると、ユーザを無視した対話になる可能性がある。これを回避するために、ユーザによる発話が「聞き返し」等の所定発話である場合に、再度、直前の発話を出力することもできる。
図20は、再発話の要求時に係る対話処理の流れの例を示すフローチャートである。例えば、図20に示すように、対話装置100は、発話セットを発話セット記憶部101から取得し(ステップS801)、取得した発話セットに含まれる第1発話を所定の表示出力装置に出力する(ステップS802)。
そして、対話装置100は、ユーザによる発話を検知した場合に(ステップS803肯定)、検知したユーザによる発話が再発話の要求であるか否かを判定する(ステップS804)。かかる再発話の要求であるか否かの判定では、「もう一回話して」等の所定発話を予め保持しておき、検知したユーザによる発話が所定発話に該当するか否かを判定する。また、所定のボタンが押下された場合に、これを再発話の要求とみなしても良い。このとき、対話装置100は、再発話の要求であると判定した場合に(ステップ804肯定)、再度、第1発話を出力する(ステップS802)。第1発話の再出力では、例えば、音声を大きくしたり、発話の速度をさらに遅くしたりする等、ユーザに理解されやすいように変更しても良い。
一方、対話装置100は、再発話の要求でないと判定した場合に(ステップS804否定)、第2発話を出力する(ステップS805)。また、対話装置100は、ユーザによる発話を検知していない場合に(ステップS803否定)、一定時間が経過したか否かを判定する(ステップS806)。このとき、対話装置100は、一定時間が経過していないと判定した場合に(ステップS806否定)、ステップS803の処理を実行する。一方、対話装置100は、一定時間が経過したと判定した場合に(ステップS806肯定)、ステップS801の処理を実行する。なお、再発話要求の判定処理は、第2発話の出力後にも実行しても良い。
本実施形態によれば、ユーザ発話が所定発話である場合に、再度直前の発話を出力するので、一方的な対話になるのを抑制することができる。
また、上記実施形態では、ユーザによる発話を一定時間検知できなければ次の発話セットを使用した発話を行なう場合を説明したが、ユーザが何も発話しなかった場合でも適切な発話をすることもできる。ここでは、ユーザによる発話の応答の発話を表す「第2発話」に、ユーザが何も発話しなかった場合に出力する発話を表す「第3発話」が含まれる場合を例に挙げる。
図21は、第3発話を含む発話セット記憶部101に記憶される情報例を示す図である。例えば、図21に示すように、発話セット記憶部101は、第1発話「映画は好き?」と、想定ユーザ発話「好きだよ」、「(応答なし)」と、第2発話「映画はいいよね」、「僕は映画好きだよ(第3発話)」とを含んだ「発話セット1」を記憶する。上記実施形態と同様に、「想定ユーザ発話」は、発話セット記憶部101に含まれていなくても良い。
図22は、一定時間にユーザ発話を検知できない場合の対話処理の流れの例を示すフローチャートである。例えば、図22に示すように、対話装置100は、発話セットを発話セット記憶部101から取得し(ステップS901)、取得した発話セットに含まれる第1発話を所定の表示出力装置に出力する(ステップS902)。
そして、対話装置100は、ユーザによる発話を検知した場合に(ステップS903肯定)、検知したユーザによる発話が再発話の要求であるか否かを判定する(ステップS904)。このとき、対話装置100は、再発話の要求であると判定した場合に(ステップS904肯定)、再度、第1発話を出力する(ステップS902)。一方、対話装置100は、再発話の要求でないと判定した場合に(ステップS904否定)、第2発話を出力する(ステップS905)。
また、対話装置100は、ユーザによる発話を検知していない場合に(ステップS903否定)、一定時間が経過したか否かを判定する(ステップS906)。このとき、対話装置100は、一定時間が経過していないと判定した場合に(ステップS906否定)、ステップS903の処理を実行する。一方、対話装置100は、一定時間が経過したと判定した場合に(ステップS906肯定)、第3発話を出力する(ステップS907)。
本実施形態によれば、一定時間にユーザ発話を検知できない場合でも、対応する発話を出力するので、適切な対話を実現することができる。
また、上記実施形態2では、概念辞書記憶部205には固有名詞や新しい単語等が含まれていないが、発話セットのテンプレート中に記載された概念に合わせて未知の単語を追加することもできる。未知の単語を追加する場合には、単語の概念を概念辞書記憶部205から取得及び付与し、概念を含む発話セットのテンプレートを検索し、発話セットを生成する。これにより、常用される単語だけでなく、話題のキーワードやおすすめの商品名等を追加することができる。例えば、商品名「チョコレートクランチNEW」という未知の単語を概念「食べ物」と設定し、商品の特徴である「やみつきになるほどおいしい」というフレーズを概念「味」と設定する。この結果、「チョコレートクランチNEWは好き?」や、「チョコレートクランチNEWはやみつきになるほどおいしいんだよ」等の発話セットを生成することができる。すなわち、本実施形態によれば、日常の対話だけでなく、商品の販売促進等にも適用することができる。
また、上記実施形態では、2つの発話セットに含まれる第1発話同士、第2発話同士の編集距離をもとに類似度を算出する場合を説明したが、第2発話と次の発話セットの第1発話との編集距離をもとに類似度を算出することもできる。すなわち、第1発話、第2発話の順にユーザが認識することから、第2発話と次の発話セットの第1発話との発話が似たような発話であると好ましくないので、これらの編集距離をもとに類似度を算出する。
また、上述してきた実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。