(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】会話制御方法、装置、及びプログラム
(51)【国際特許分類】
G10L 15/22 20060101AFI20241106BHJP
G10L 15/10 20060101ALI20241106BHJP
G10L 13/00 20060101ALI20241106BHJP
G06F 16/90 20190101ALI20241106BHJP
G06F 40/56 20200101ALI20241106BHJP
【FI】
G10L15/22 300U
G10L15/10 500T
G10L13/00 100M
G06F16/90 100
G06F40/56
(21)【出願番号】P 2020075466
(22)【出願日】2020-04-21
【審査請求日】2023-01-12
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】辻 裕央
【審査官】毛利 太郎
(56)【参考文献】
【文献】特開2008-170817(JP,A)
【文献】特開2019-101291(JP,A)
【文献】特開2007-079397(JP,A)
【文献】特開2007-047488(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00 - 25/93
G06F 16/90
G06F 40/56
(57)【特許請求の範囲】
【請求項1】
会話内容と回答とを組にした単位会話を話の流れに順序性を持たせて連結した複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御方法において、
第1の会話シナリオに基づく会話制御の実行中にユーザの発話を受け付け、前記ユーザの発話と、発話に応じたユーザの意図を推定するように予め機械学習により生成されたモデルとに基づいて推定された、前記ユーザの発話に応じたユーザの意図を発話内容として受け付け、受け付けた前記発話内容が前記第1の会話シナリオに含まれるいずれかの
単位会話における会話内容に対応する場合、前記いずれかの
単位会話における回答を出力し、
前記発話内容が前記第1の会話シナリオに含まれるいずれの
単位会話における会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの
単位会話における会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの
単位会話における回答を出力すると共に、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに
含まれる前記いずれかの単位会話からの会話制御に遷移させる
ことを含む処理をコンピュータが実行する会話制御方法。
【請求項2】
前記複数の会話シナリオの各々は、会話シーンに応じた複数の話題の各々に対応している請求項1に記載の会話制御方法。
【請求項3】
前記複数の会話シナリオの各々は、前記会話内容と、前記会話内容及び前記会話内容が含まれる会話シナリオに対応する話題に応じた回答とを組にした
前記単位会話を複数連結して定義される請求項2に記載の会話制御方法。
【請求項4】
複数の会話シーンの各々について、前記複数の会話シナリオが定義されており、
前記発話内容が、第1の会話シーンに含まれるいずれの会話シナリオのいずれの会話内容にも対応せず、かつ、前記第1の会話シーンとは異なる第2の会話シーンに含まれるいずれかの会話シナリオのいずれかの会話内容に対応する場合、前記第2の会話シーンに含まれる前記いずれかの会話シナリオの前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シーンに基づく会話制御を前記第2の会話シーンに基づく会話制御に遷移させる
請求項2又は請求項3に記載の会話制御方法。
【請求項5】
推定された前記ユーザの意図を示す前記発話内容が、前記複数の会話シナリオに含まれるいずれの会話内容にも対応しない場合、推定された前記ユーザの意図に応じて、予め定めた定型の回答を出力する請求項1~請求項4のいずれか1項に記載の会話制御方法。
【請求項6】
会話内容と回答とを組にした単位会話を話の流れに順序性を持たせて連結した複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御装置であって、
第1の会話シナリオに基づく会話制御の実行中にユーザの発話を受け付け、前記ユーザの発話と、発話に応じたユーザの意図を推定するように予め機械学習により生成されたモデルとに基づいて推定された、前記ユーザの発話に応じたユーザの意図を発話内容として受け付け、受け付けた前記発話内容が前記第1の会話シナリオに含まれるいずれかの
単位会話における会話内容に対応する場合、前記いずれかの
単位会話を遷移先として決定し、前記発話内容が前記第1の会話シナリオに含まれるいずれの
単位会話における会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの
単位会話における会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの
単位会話を遷移先として決定する決定部と、
前記決定部により決定された遷移先の
単位会話における回答を出力すると共に、前記第2の会話シナリオに含まれる前記いずれかの
単位会話が遷移先として決定された場合、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに基づく会話制御に遷移させる出力部
と、
を含む会話制御装置。
【請求項7】
会話内容と回答とを組にした単位会話を話の流れに順序性を持たせて連結した複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御プログラムにおいて、
第1の会話シナリオに基づく会話制御の実行中にユーザの発話を受け付け、前記ユーザの発話と、発話に応じたユーザの意図を推定するように予め機械学習により生成されたモデルとに基づいて推定された、前記ユーザの発話に応じたユーザの意図を発話内容として受け付け、受け付けた前記発話内容が前記第1の会話シナリオに含まれるいずれかの
単位会話における会話内容に対応する場合、前記いずれかの
単位会話における回答を出力し、
前記発話内容が前記第1の会話シナリオに含まれるいずれの
単位会話における会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの
単位会話における会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの
単位会話における回答を出力すると共に、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに
含まれる前記いずれかの単位会話からの会話制御に遷移させる
ことを含む処理をコンピュータに実行させるための会話制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、会話制御方法、会話制御装置、及び会話制御プログラムに関する。
【背景技術】
【0002】
従来、FAQ(Frequently Asked Questions)システムやWebページの検索などに、タスク指向型の対話システムや一問一答型のチャットボットなどの対話システムが利用されている。近年では、ユーザ発話とユーザ発話への応答発話との対話関係を学習し、学習後の学習モデルを用いて、ユーザ発話から応答内容を選択して発話する対話システムが知られている。
【0003】
例えば、ユーザとの会話の内容を充実化させること等によって、ユーザを適切にアシストするデータ処理装置が提案されている。このデータ処理装置は、ユーザの状態を管理する状態管理データを参照して、ユーザに対するアクションを決定する。また、このデータ処理装置は、ユーザの携帯端末によって取得されたユーザの活動履歴データを収集し、分析することによって特定した、ユーザの状態を示すユーザ状態データに基づいて、ユーザの状態管理データを更新する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、対話システムで、一問一答ではなく、継続した会話のラリーを行おうとする場合、ユーザ発話を想定したシナリオを用意する必要がある。この場合において、シナリオに対して想定外のユーザ発話が発せられた場合には、システムが対応することができず、会話が終了してしまう。また、シナリオがない場合には、前後の会話の流れを無視した脈絡のない回答をシステムが返してしまう場合もある。このように、対話システムにおいて、会話が続かないことや、システムが脈絡のない回答をしてしまうことで、ユーザの対話システムに対する「飽き」が発生し易くなる。
【0006】
一つの側面として、開示の技術は、ユーザとの会話を自然な流れで継続させることができる回答を出力することを目的とする。
【課題を解決するための手段】
【0007】
一つの態様として、開示の技術は、複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御方法である。開示の技術は、第1の会話シナリオに基づく会話制御の実行中に受け付けた発話内容が前記第1の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記いずれかの会話内容に応じた回答を出力する。また、開示の技術は、前記発話内容が前記第1の会話シナリオに含まれるいずれの会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの会話内容に対応する場合、以下の処理を行う。開示の技術は、前記第2の会話シナリオに含まれる前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに基づく会話制御に遷移させる。
【発明の効果】
【0008】
一つの側面として、ユーザとの会話を自然な流れで継続させることができる回答を出力することができる、という効果を有する。
【図面の簡単な説明】
【0009】
【
図3】シナリオDBのデータ構造を概念的に示す図である。
【
図5】会話制御装置として機能するコンピュータの概略構成を示すブロック図である。
【
図6】会話制御処理の一例を示すフローチャートである。
【
図7】同じ話題で会話が継続する場合を説明するための図である。
【
図8】同じ会話シーンの下で話題を変えて会話が継続する場合を説明するための図である。
【
図9】会話シーンを変えて新たな話題を開始して会話を継続する場合を説明するための図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。本実施形態では、ユーザと音声による会話を行う会話制御装置に開示の技術を適用した例について説明する。
【0011】
図1に示すように、会話制御装置10は、ユーザ発話を示す音声データを、マイク(図示省略)を介して受け付ける。また、会話制御装置10は、ユーザ発話に応じた回答(システム発話)を示す音声データを、スピーカ(図示省略)を介して出力する。会話制御装置10は、機能的には、推定部12と、決定部14と、出力部16とを含む。また、会話制御装置10の所定の記憶領域には、意図推定モデル22と、シナリオDB(Database)24が記憶される。
【0012】
推定部12は、受け付けた音声データが示すユーザ発話の意図を推定する。具体的には、推定部12は、音声データを音声認識処理してテキストデータに変換したユーザ発話を、予め学習された意図推定モデル22に入力する。推定部12は、入力されたユーザ発話に応じて意図推定モデル22で推定され出力された意図ラベルを受け取り、決定部14へ受け渡す。
【0013】
ここで、意図推定モデル22について説明する。意図推定モデル22は、意図ラベルとユーザ発話とのペアである学習データを用いて予め機械学習された、ニューラルネットワーク等のモデルである。
図2に学習データの一例を示す。
図2に示す一覧の各行が1つの学習データに相当する。
図2に示すように、様々な表現のユーザ発話のうち、共通の意図を持つユーザ発話に同一の意図ラベルが対応付けられる。
図2の例では、好きな食べ物を問うユーザ発話に対して、「好きな食べ物」という意図ラベルを対応付けている。同様に、用件を聞き返すユーザ発話に対して、「用件がある場合の聞き返し」という意図ラベルを対応付けている。また、
図2に示す意図ラベル「朝ご飯何が作れるんだっけ?」のように、ユーザ発話の表現の揺れを統一した表現を意図ラベルとしてもよい。
【0014】
上記のような学習データを大量に用いてモデルのパラメータを学習することにより、意図推定モデル22が生成される。意図推定モデル22は、学習された意図ラベルのうち、入力されたユーザ発話と最も相関の高い意図ラベルを出力する。なお、意図ラベルは、開示の技術の発話内容の一例である。
【0015】
決定部14は、シナリオDB24に記憶された複数の会話シナリオに含まれる会話から、推定部12で推定された意図ラベルに対応する会話を決定する。
【0016】
図3に、シナリオDB24のデータ構造を概念的に示す。
図3に示すように、シナリオDB24には、例えば、日常の場面を想定した複数の会話シーンの各々について、その会話シーンに応じた複数の話題の各々を示す会話シナリオが定義されている。
図3の例では、会話シーン1として「朝食時」、会話シーン2として「帰宅時」、会話シーン3として「就寝前」の各場面を想定した会話シーンが定義されている。また、
図3の例では、会話シーン1(朝食時)には、話題1として「朝食」、話題2として「天気」、話題3として「ニュース」、話題4として「学校」の各話題を示す会話シナリオが含まれている。
【0017】
会話シナリオの各々は、複数の単位会話を話の流れに順序性を持たせて連結して定義されている。単位会話は、意図ラベルと回答とを組にした一問一答の会話である。
図3の例では、話題iを示す会話シナリオのj番目の単位会話を「会話i-j」と表記している。以下では、会話i-jの単位会話を単に「会話i-j」ともいう。話の流れに順序性を持たせるとは、ここでは、ある単位会話の回答に対するユーザ発話を想定した意図ラベルが次の単位会話に含まれるように順序立てて単位会話を連結することである。なお、
図3の例では、説明を簡単にするため、単位会話を一列に並べた会話シナリオの例を示しているが、
図4に示すように、単位会話を途中で分岐させるようにしてもよい。
図4の例では、会話1-2に続く単位会話を、会話1-3-1と会話1-3-2とに分岐させている。
【0018】
単位会話に含まれる回答としては、組となる意図ラベルに対応し、かつ、その単位会話が含まれる会話シナリオが示す話題、及びその会話シナリオが含まれる会話シーンに応じた内容が予め定義されている。定義しておく回答は、会話制御装置10から出力するシステム発話そのものでもよいし、所定の単語又は単語列を埋め込んで回答を作成するためのテンプレートであってもよい。所定の単語又は単語列は、例えば、時間帯やユーザの属性に応じた単語又は単語列、ユーザ発話から抽出した単語又は単語列、対応する意図ラベルに応じて検索サイト等から検索した単語又は単語列等とすることができる。
【0019】
また、上述したように、回答は、話題及び会話シーンに応じた内容が定義されるため、同一の意図ラベルであっても話題又は会話シーンが異なる場合には、異なる回答が対応付けられる場合がある。例えば、ある話題における「好きな食べ物」という意図ラベルに対して、「鳩サブレです」という回答を対応付け、別の話題における同一の意図ラベル「好きな食べ物」に対して、「ご馳走してくれるんですか?」という回答を対応付けることができる。
【0020】
また、例えば、朝食時の会話シーンにおける天気の話題を示す会話シナリオに、「天気はどうですか?」という意図ラベルが含まれているとする。この意図ラベルに対する回答として、天気予報のウェブサイト等から検索した今日の天気を示す単語列が埋め込まれるテンプレートを定義することができる。また、就寝前の会話シーンにおける天気の話題を示す会話シナリオに同一の意図ラベル「天気はどうですか?」が含まれているとする。この意図ラベルの回答として、上記の朝食時の会話シーンの場合と異なり、天気予報のウェブサイト等から検索した明日の天気を示す単語列が埋め込まれるテンプレートを定義することができる。
【0021】
具体的には、決定部14は、所定のルールにしたがって、会話開始時の会話シナリオを決定する。例えば、決定部14は、時間帯に応じた会話シーンに含まれるi番目(例えば1番目)の話題を示す会話シナリオを、会話開始時の会話シナリオとして決定することができる。また、例えば、決定部14は、ユーザ発話に基づいて、会話開始時の会話シナリオを決定してもよい。この場合、決定部14は、後述する出力部16を介して、「ご用はありますか?」等の、会話開始時の会話シナリオを決定するための発話をユーザに促すシステム発話を行った上で、ユーザ発話を受け付けるようにしてもよい。また、決定部14は、ユーザ発話から推定された意図ラベルを含む単位会話が1番目にある会話シナリオを、会話開始時の会話シナリオとして決定してもよい。
【0022】
また、決定部14は、現在の会話シナリオに基づく会話制御の実行中に推定部12から受け渡された意図ラベルが、現在の会話シナリオに含まれるいずれかの単位会話の意図ラベルに対応する場合、その単位会話を次の会話として決定する。以下では、推定部12から受け渡された意図ラベルを「推定された意図ラベル」という。また、意図ラベルが対応する場合とは、推定された意図ラベルと、会話シナリオ内の意図ラベルとが一致する場合、又は類似する場合とすることができる。意図ラベルが類似する場合とは、例えば、予め類似する意図ラベルをグループ分けしておき、同じグループに属する意図ラベル同士を類似する意図ラベルとすることができる。決定部14は、現在の会話シナリオに、該当の意図ラベルを含む単位会話が複数含まれる場合、現在の単位会話に後続する単位会話のうち、会話シナリオ内での出現順が現在の単位会話により近い単位会話を選択することができる。
【0023】
また、決定部14は、推定された意図ラベルが、現在の会話シナリオに含まれるいずれの単位会話の意図ラベルにも対応しない場合、同一の会話シーンに含まれる、現在の会話シナリオとは異なる他の会話シナリオを探索する。具体的には、決定部14は、推定された意図ラベルが、他の会話シナリオに含まれるいずれかの単位会話の意図ラベルに対応する場合、その単位会話を次の会話として決定する。対応する意図ラベルを含む他の会話シナリオが複数存在する場合、決定部14は、例えば、対応する意図ラベルの会話シナリオ内での出現順が早い会話シナリオを選択する。これにより、決定部14は、現在の会話シナリオに基づく会話制御を他の会話シナリオに基づく会話制御に遷移させる。
【0024】
また、決定部14は、推定された意図ラベルが、現在の会話シーンに含まれるいずれの会話シナリオにも含まれない場合、現在の会話シーンとは異なる他の会話シーンを探索する。具体的には、決定部14は、推定された意図ラベルが、他の会話シーンに含まれるいずれかの他の会話シナリオのいずれかの単位会話の意図ラベルに対応する場合、その単位会話を次の会話として決定する。対応する意図ラベルを含む他の会話シーンが複数存在する場合、決定部14は、例えば、対応する意図ラベルの会話シナリオ内での出現順が早い会話シナリオが含まれる会話シーンを選択する。これにより、決定部14は、現在の会話シーンに基づく会話制御を他の会話シーンに基づく会話制御に遷移させる。
【0025】
なお、現在の会話シナリオは、開示の技術の第1の会話シナリオの一例であり、他の会話シナリオは、開示の技術の第2の会話シナリオの一例である。また、現在の会話シーンは、開示の技術の第1の会話シーンの一例であり、他の会話シーンは、開示の技術の第2の会話シーンの一例である。
【0026】
また、決定部14は、いずれの会話シーンのいずれの会話シナリオにも、推定された意図ラベルに対応する意図ラベルが含まれない場合、定型の会話を次の会話として決定する。定型の会話は、例えば、挨拶、相槌、聞き返し等の予め定められた回答が意図ラベルに対応付けられたものとすることができる。
【0027】
決定部14は、次の会話として決定した単位会話の情報を、出力部16へ受け渡す。決定した単位会話の情報は、その単位会話を含む会話シーン及び会話シナリオの識別情報、並びに、その単位会話が会話シナリオ内の何番目の単位会話かを示す情報である。
【0028】
出力部16は、決定部14から受け渡された単位会話の情報に基づいて、シナリオDB24を参照して、該当の単位会話に含まれる回答に応じたシステム発話を生成する。出力部16は、生成したシステム発話を音声データに変換して出力する。
【0029】
会話制御装置10は、例えば
図5に示すコンピュータ40で実現することができる。コンピュータ40は、CPU(Central Processing Unit)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶部43とを備える。また、コンピュータ40は、入力部、表示部等の入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部45とを備える。また、コンピュータ40は、インターネット等のネットワークに接続される通信I/F(Interface)46を備える。CPU41、メモリ42、記憶部43、入出力装置44、R/W部45、及び通信I/F46は、バス47を介して互いに接続される。
【0030】
記憶部43は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部43には、コンピュータ40を、会話制御装置10として機能させるための会話制御プログラム50が記憶される。会話制御プログラム50は、推定プロセス52と、決定プロセス54と、出力プロセス56とを有する。また、記憶部43は、意図推定モデル22及びシナリオDB24の各々を構成する情報が記憶される情報記憶領域60を有する。
【0031】
CPU41は、会話制御プログラム50を記憶部43から読み出してメモリ42に展開し、会話制御プログラム50が有するプロセスを順次実行する。CPU41は、推定プロセス52を実行することで、
図1に示す推定部12として動作する。また、CPU41は、決定プロセス54を実行することで、
図1に示す決定部14として動作する。また、CPU41は、出力プロセス56を実行することで、
図1に示す出力部16として動作する。また、CPU41は、情報記憶領域60から情報を読み出して、意図推定モデル22及びシナリオDB24の各々をメモリ42に展開する。これにより、会話制御プログラム50を実行したコンピュータ40が、会話制御装置10として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0032】
なお、会話制御プログラム50により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0033】
次に、本実施形態に係る会話制御装置10の作用について説明する。会話制御装置10において、会話制御の開始が指示されると、会話制御装置10が、
図6に示す会話制御処理を実行する。なお、会話制御処理は、開示の技術の会話制御方法の一例である。
【0034】
ステップS12で、決定部14が、所定のルールにしたがって、会話開始時の会話シナリオを決定する。決定部14は、例えば、決定した会話シナリオの1番目の単位会話に含まれる意図ラベルに応じたユーザ発話を促すためのシステム発話を決定し、出力部16に受け渡す。出力部16は、受け渡されたシステム発話を音声データに変換して出力する。
【0035】
次に、ステップS14で、推定部12が、ユーザ発話を受け付けたか否かを判定する。ユーザ発話を受け付けた場合には、処理はステップS16へ移行し、受け付けていない場合には、処理はステップS30へ移行する。
【0036】
ステップS16では、推定部12が、受け付けたユーザ発話を示す音声データを音声認識処理してテキストデータに変換し、予め学習された意図推定モデル22に入力する。そして、推定部12は、入力されたユーザ発話に応じて意図推定モデル22で推定され出力された意図ラベルを受け取り、決定部14へ受け渡す。
【0037】
次に、ステップS18で、決定部14が、推定された意図ラベルに対応する意図ラベルが、現在の会話シナリオに存在するか否かを判定する。対応する意図ラベルが存在する場合には、処理はステップS24へ移行し、存在しない場合には、処理はステップS20へ移行する。
【0038】
ステップS20では、決定部14が、推定された意図ラベルに対応する意図ラベルが、現在の会話シナリオを含む同じ会話シーンに含まれる他の会話シナリオに存在するか否かを判定する。対応する意図ラベルが存在する場合には、処理はステップS24へ移行し、存在しない場合には、処理はステップS22へ移行する。
【0039】
ステップS22では、決定部14が、推定された意図ラベルに対応する意図ラベルが、別の会話シーンに含まれるいずれかの会話シナリオに存在するか否かを判定する。対応する意図ラベルが存在する場合には、処理はステップS24へ移行し、存在しない場合には、処理はステップS26へ移行する。
【0040】
ステップS24では、決定部14が、推定された意図ラベルと対応する意図ラベルを含む単位会話を次の会話として決定する。すなわち、上記ステップS18で肯定判定されて本ステップへ移行した場合、決定部14は、現在の会話シナリオ内から次の会話となる単位会話を決定する。対応する意図ラベルが複数存在する場合、決定部14は、現在の単位会話に後続する単位会話のうち、会話シナリオ内での出現順が現在の単位会話により近い単位会話を次の会話として決定する。
【0041】
また、上記ステップS20で肯定判定されて本ステップへ移行した場合、決定部14は、現在の会話シーンの他の会話シナリオ内から次の会話となる単位会話を決定する。他の会話シナリオが複数存在する場合、決定部14は、対応する意図ラベルの会話シナリオ内での出現順が最も早い会話シナリオから、次の会話となる単位会話を決定する。
【0042】
また、上記ステップS22で肯定判定されて本ステップへ移行した場合、決定部14は、他の会話シーンのいずれかの会話シナリオ内から次の会話となる単位会話を決定する。他の会話シーンが複数存在する場合、決定部14は、対応する意図ラベルの会話シナリオ内での出現順が最も早い会話シナリオが含まれる会話シーンから、次の会話となる単位会話を決定する。次の会話が決定されると、処理はステップS28へ移行する。
【0043】
一方、ステップS26では、推定された意図ラベルに対応する定型の会話を次の会話として決定し、処理はステップS28へ移行する。
【0044】
ステップS28では、決定部14が、次の会話として決定した単位会話の情報を、出力部16へ受け渡す。そして、出力部16が、決定部14から受け渡された単位会話の情報に基づいて、シナリオDB24を参照して、該当の単位会話に含まれる回答に応じたシステム発話を生成する。出力部16は、生成したシステム発話を音声データに変換して出力する。
【0045】
次に、ステップS30で、推定部12が、会話制御を終了するか否かを判定する。例えば、ユーザから会話の終了を指示された場合や、前回の回答出力から所定時間以上経過しても次のユーザ発話が受け付けられない場合などに、会話制御を終了すると判定することができる。会話制御を終了しない場合には、処理はステップS14に戻り、会話制御を終了する場合には、会話制御処理を終了する。
【0046】
例えば、会話開始時の会話シナリオとして、
図7に示す会話シーン1の話題1を示す会話シナリオが決定されたとする。この場合において、ユーザ発話から、会話シーン1の会話1-1に含まれる意図ラベルに対応する意図ラベルが推定されると、会話1-1に含まれる回答に基づくシステム発話が出力される。これに対するユーザ発話から推定される意図ラベルが、続く会話1-2に含まれる意図ラベルに対応している場合、話題1を示す会話シナリオに沿って、会話が会話1-1から会話1-2へ遷移する。同様に、推定される意図ラベルが会話1-3の意図ラベル、会話1-4の意図ラベルの順に対応すると、
図7において網掛けで示す単位会話の列のように、会話シナリオに沿った会話が行われることになる。これにより、話題が特定された状態、すなわち同一の話題について、一問一答ではない会話が連続することになり、自然な会話を継続することができる。
【0047】
また、
図8に示すように、会話1-2に含まれる回答に基づくシステム発話の出力に対するユーザ発話から推定された意図ラベルに対応する意図ラベルが、同じ会話シナリオ内に存在しないとする。この場合、同じ会話シーンの他の会話シナリオのうち、推定された意図ラベルに対応する意図ラベルを持つ会話シナリオへ会話制御が遷移する。
図8の例では、話題1を示す会話シナリオの会話1-2の次の会話として、話題2を示す会話シナリオの会話2-3へ遷移し、そこから話題2を示す会話シナリオに沿って会話が継続していることを示している。また、会話2-4の次は、話題4を示す会話シナリオの会話4-2へ遷移し、その会話シナリオに沿って会話が継続し、会話4-4の次に、話題3を示す会話シナリオの会話3-5へ遷移していることを示している。
【0048】
このように、同じ会話シナリオ内の継続する単位会話に、推定された意図ラベルに対応する意図ラベルが存在しない場合は、同じ会話シーンの別の会話シナリオに遷移する。これにより、会話シーンが特定された状態で、話題を変えながら会話を継続させることができる。すなわち、通常の人と人との会話の場合にも、話題が変わることはあるため、同じ会話シーンという制約の下で、異なる話題を示す会話シナリオへの遷移を行うことで、違和感なく会話を継続させることができる。
【0049】
また、
図9に示すように、会話1-1、会話1-2、会話2-3、会話2-4と遷移し、会話2-4に含まれる回答に基づくシステム発話に対するユーザ発話から推定された意図ラベルに対応する意図ラベルが同じ会話シーン内に存在しないとする。この場合、他の会話シーンに会話制御が遷移する。
図9の例では、会話シーン1の会話2-4の次に、会話シーン2の会話1-1へ遷移していることを示している。これにより、唐突に会話が終了する事態を回避し、新たな会話シーンにおける会話を開始して、会話を継続させることができる。
【0050】
以上説明したように、本実施形態に係る会話制御装置は、現在の会話シナリオに基づく会話制御の実行中に推定された意図ラベルが現在の会話シナリオに含まれるいずれかの意図ラベルに対応する場合、その意図ラベルを含む単位会話に含まれる回答を出力する。一方、推定された意図ラベルが現在の会話シナリオに含まれるいずれの意図ラベルにも対応しない場合、会話制御装置は、同じ会話シーンに含まれる他の会話シナリオから、推定された意図ラベルに対応する意図ラベルを探索する。他の会話シナリオに、推定された意図ラベルに対応する意図ラベルが含まれる場合、会話制御装置は、現在の会話シナリオに基づく会話制御を、探索され意図ラベルを含む他の会話シナリオに基づく会話制御に遷移させる。これにより、ユーザとの会話を自然な流れで継続させることができる回答を出力することができる。
【0051】
なお、上記実施形態では、音声による会話の例について説明したが、これに限定されない。例えば、ユーザの会話内容をテキストデータで受け付け、上記と同様のシナリオDBに基づく会話制御を行って、テキストデータの回答を出力するようにしてもよい。
【0052】
また、上記実施形態における会話シーン、話題、回答等の例示は一例であり、会話制御装置の適用場面に応じて、それぞれの内容が定義されていればよい。
【0053】
また、上記実施形態において、会話シナリオから、推定された意図ラベルに対応する意図ラベルを探索する際、一連の会話制御において過去に出力した回答と組みの意図ラベルは探索の対象外としてもよい。これにより、不自然な会話の繰り返しや逆戻りを回避することができる。
【0054】
また、上記実施形態では、会話制御プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【0055】
以上の実施形態に関し、更に以下の付記を開示する。
【0056】
(付記1)
複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御方法において、
第1の会話シナリオに基づく会話制御の実行中に受け付けた発話内容が前記第1の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記いずれかの会話内容に応じた回答を出力し、
前記発話内容が前記第1の会話シナリオに含まれるいずれの会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに基づく会話制御に遷移させる
ことを含む処理をコンピュータが実行する会話制御方法。
【0057】
(付記2)
前記複数の会話シナリオの各々は、会話シーンに応じた複数の話題の各々に対応している付記1に記載の会話制御方法。
【0058】
(付記3)
前記複数の会話シナリオの各々は、前記発話内容と、前記発話内容及び前記発話内容が含まれる会話シナリオに対応する話題に応じた回答とを組にした単位会話を複数連結して定義される付記2に記載の会話制御方法。
【0059】
(付記4)
前記複数の会話シーンの各々について、前記複数の会話シナリオが定義されており、
前記発話内容が、第1の会話シーンに含まれるいずれの会話シナリオのいずれの会話内容にも対応せず、かつ、前記第1の会話シーンとは異なる第2の会話シーンに含まれるいずれかの会話シナリオのいずれかの会話内容に対応する場合、前記第2の会話シーンに含まれる前記いずれかの会話シナリオの前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シーンに基づく会話制御を前記第2の会話シーンに基づく会話制御に遷移させる
付記2又は付記3に記載の会話制御方法。
【0060】
(付記5)
前記発話内容として、ユーザの発話と、発話に応じたユーザの意図を推定するモデルとに基づいて推定された、前記ユーザの意図を受け付ける付記1~付記4のいずれか1項に記載の会話制御方法。
【0061】
(付記6)
推定された前記ユーザの意図を示す前記発話内容が、前記複数の会話シナリオに含まれるいずれの会話内容にも対応しない場合、推定された前記ユーザの意図に応じて、予め定めた定型の回答を出力する付記5に記載の会話制御方法。
【0062】
(付記7)
複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御装置であって、
第1の会話シナリオに基づく会話制御の実行中に受け付けた発話内容が前記第1の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記いずれかの会話内容を遷移先として決定し、前記発話内容が前記第1の会話シナリオに含まれるいずれの会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの会話内容を遷移先として決定する決定部と、
前記決定部により決定された遷移先の会話内容に応じた回答を出力すると共に、前記第2の会話シナリオに含まれる前記いずれかの会話内容が遷移先として決定された場合、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに基づく会話制御に遷移させる出力部
を含む会話制御装置。
【0063】
(付記8)
前記複数の会話シナリオの各々は、会話シーンに応じた複数の話題の各々に対応している付記7に記載の会話制御装置。
【0064】
(付記9)
前記複数の会話シナリオの各々は、前記発話内容と、前記発話内容及び前記発話内容が含まれる会話シナリオに対応する話題に応じた回答とを組にした単位会話を複数連結して定義される付記8に記載の会話制御装置。
【0065】
(付記10)
前記複数の会話シーンの各々について、前記複数の会話シナリオが定義されており、
前記決定部は、前記発話内容が、第1の会話シーンに含まれるいずれの会話シナリオのいずれの会話内容にも対応せず、かつ、前記第1の会話シーンとは異なる第2の会話シーンに含まれるいずれかの会話シナリオのいずれかの会話内容に対応する場合、前記第2の会話シーンに含まれる前記いずれかの会話シナリオの前記いずれかの会話内容を遷移先として決定する
付記8又は付記9に記載の会話制御装置。
【0066】
(付記11)
前記発話内容として、ユーザの発話と、発話に応じたユーザの意図を推定するモデルとに基づいて推定された、前記ユーザの意図を受け付ける推定部を含む付記7~付記10のいずれか1項に記載の会話制御装置。
【0067】
(付記12)
前記決定部は、推定された前記ユーザの意図を示す前記発話内容が、前記複数の会話シナリオに含まれるいずれの会話内容にも対応しない場合、推定された前記ユーザの意図に応じて、予め定めた定型の会話を遷移先として決定し、
前記出力部は、前記定型の会話に応じた回答を出力する
付記11に記載の会話制御装置。
【0068】
(付記13)
複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御プログラムにおいて、
第1の会話シナリオに基づく会話制御の実行中に受け付けた発話内容が前記第1の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記いずれかの会話内容に応じた回答を出力し、
前記発話内容が前記第1の会話シナリオに含まれるいずれの会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに基づく会話制御に遷移させる
ことを含む処理をコンピュータに実行させるための会話制御プログラム。
【0069】
(付記14)
前記複数の会話シナリオの各々は、会話シーンに応じた複数の話題の各々に対応している付記13に記載の会話制御プログラム。
【0070】
(付記15)
前記複数の会話シナリオの各々は、前記発話内容と、前記発話内容及び前記発話内容が含まれる会話シナリオに対応する話題に応じた回答とを組にした単位会話を複数連結して定義される付記14に記載の会話制御プログラム。
【0071】
(付記16)
前記複数の会話シーンの各々について、前記複数の会話シナリオが定義されており、
前記発話内容が、第1の会話シーンに含まれるいずれの会話シナリオのいずれの会話内容にも対応せず、かつ、前記第1の会話シーンとは異なる第2の会話シーンに含まれるいずれかの会話シナリオのいずれかの会話内容に対応する場合、前記第2の会話シーンに含まれる前記いずれかの会話シナリオの前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シーンに基づく会話制御を前記第2の会話シーンに基づく会話制御に遷移させる
付記14又は付記15に記載の会話制御プログラム。
【0072】
(付記17)
前記発話内容として、ユーザの発話と、発話に応じたユーザの意図を推定するモデルとに基づいて推定された、前記ユーザの意図を受け付ける付記13~付記16のいずれか1項に記載の会話制御プログラム。
【0073】
(付記18)
推定された前記ユーザの意図を示す前記発話内容が、前記複数の会話シナリオに含まれるいずれの会話内容にも対応しない場合、推定された前記ユーザの意図に応じて、予め定めた定型の回答を出力する付記17に記載の会話制御プログラム。
【0074】
(付記19)
複数の会話シナリオのうちいずれかの会話シナリオに基づく会話制御を実行する会話制御プログラムにおいて、
第1の会話シナリオに基づく会話制御の実行中に受け付けた発話内容が前記第1の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記いずれかの会話内容に応じた回答を出力し、
前記発話内容が前記第1の会話シナリオに含まれるいずれの会話内容にも対応せず、かつ、前記第1の会話シナリオとは異なる第2の会話シナリオに含まれるいずれかの会話内容に対応する場合、前記第2の会話シナリオに含まれる前記いずれかの会話内容に応じた回答を出力すると共に、前記第1の会話シナリオに基づく会話制御を前記第2の会話シナリオに基づく会話制御に遷移させる
ことを含む処理をコンピュータに実行させるための会話制御プログラムを記憶した記憶媒体。
【符号の説明】
【0075】
10 会話制御装置
12 推定部
14 決定部
16 出力部
22 意図推定モデル
24 シナリオDB
40 コンピュータ
41 CPU
42 メモリ
43 記憶部
49 記憶媒体
50 会話制御プログラム