(57)【特許請求の範囲】
【請求項１】
対話シナリオに従ってユーザと対話する対話装置であって、
対話における複数の処理状態と前記複数の処理状態の間の関係を示す関係情報とを取得し、前記複数の処理状態と前記関係情報とに基づいて、設計された対話機能の全体を記述する図を構築する対話設計部と、
実際の対話に際し前記対話装置の使用時の周辺状況から動的に取得される情報に基づいて、前記設計された対話機能の全体を記述する前記図における前記複数の処理状態のうちの、前記実際の対話において出現する処理状態を、前記設計された対話機能の全体を記述する前記図において探索し、前記探索によって得られた前記処理状態を含む前記対話シナリオを動的に決定する対話実行部と、
を備えることを特徴とする対話装置。
【請求項２】
前記設計された対話機能の全体を記述する前記図は、ステートチャート、ビヘイビアツリー、アクティビティ図、シーケンス図、ＸＭＬ図、及びグラフ、のうちのいずれかを含むことを特徴とする請求項１に記載の対話装置。
【請求項３】
前記関係情報は、前記複数の処理状態の間の遷移を示す遷移情報と、前記複数の処理状態の各々の出現順序を示す順序情報と、を含み、
前記対話設計部は、前記遷移情報と前記順序情報とに基づいて、前記設計された対話機能の全体を記述する前記図を構築する
ことを特徴とする請求項１又は２に記載の対話装置。
【請求項４】
前記関係情報は、予め決められた対話機能を記述するテンプレートを含み、
前記対話設計部は、前記テンプレートに基づいて、前記設計された対話機能の全体を記述する前記図を構築する
ことを特徴とする請求項１又は２に記載の対話装置。
【請求項５】
前記テンプレートを予め記憶するテンプレート記憶部をさらに備えたことを特徴とする請求項４に記載の対話装置。
【請求項６】
前記実際の対話に際し動的に取得される前記情報は、ユーザインターフェースから提供されるユーザ操作情報、アプリケーションから提供される情報、ネットワークを経由して提供される情報、及びデータベースから提供される情報、のうちの１つ以上を含むことを特徴とする請求項１から５のいずれか１項に記載の対話装置。
【請求項７】
前記実際の対話に際し動的に取得される前記情報は、前記対話シナリオに含まれる前記処理状態が満たす必要がある条件である探索条件を含むことを特徴とする請求項１から６のいずれか１項に記載の対話装置。
【請求項８】
前記対話実行部は、
前記対話シナリオに従って前記実際の対話を実行する対話シナリオ実行部と、
操作履歴記憶部と、
前記対話シナリオ実行部で前記実際の対話を実行する際に取得された前記情報と前記実際の対話に際し使用された前記対話シナリオにおける操作履歴とを関連付けた操作履歴情報を前記操作履歴記憶部に保存する操作履歴取得部と、
前記操作履歴記憶部に保存された前記操作履歴情報に基づいて、前記対話機能の全体を示す前記図から前記実際の対話において出現する処理状態を探索し、前記探索によって得られた前記処理状態を含む前記対話シナリオを動的に決定する対話シナリオ探索部と
を有することを特徴とする請求項１から７のいずれか１項に記載の対話装置。
【請求項９】
前記対話設計部によって構築された前記設計された対話機能の全体を記述する前記図を記憶する記憶装置をさらに備え、
前記対話実行部は、前記記憶装置に記憶されている前記設計された対話機能の全体を記述する前記図から、前記対話シナリオを動的に決定することを特徴とする請求項１から８のいずれか１項に記載の対話装置。
【請求項１０】
対話シナリオに従ってユーザと対話する対話装置が実行する対話方法であって、
前記対話装置の対話設計部が、対話における複数の処理状態と前記複数の処理状態の間の関係を示す関係情報とを取得し、前記複数の処理状態と前記関係情報とに基づいて、設計された対話機能の全体を記述する図を構築するステップと、
前記対話装置の対話実行部が、実際の対話に際し前記対話機能の使用時の周辺状況から動的に取得される情報に基づいて、前記設計された対話機能の全体を記述する前記図における前記複数の処理状態のうちの、前記実際の対話において出現する処理状態を、前記設計された対話機能の全体を記述する前記図において探索し、前記探索によって得られた前記処理状態を含む前記対話シナリオを動的に決定するステップと、
を有することを特徴とする対話方法。
【請求項１１】
コンピュータに、対話シナリオに従って対話を実行させるための対話プログラムであって、
前記コンピュータに、
対話における複数の処理状態と前記複数の処理状態の間の関係を示す関係情報とを取得し、前記複数の処理状態と前記関係情報とに基づいて、設計された対話機能の全体を記述する図を構築する処理と、
実際の対話に際し前記対話機能の使用時の周辺状況から動的に取得される情報に基づいて、前記設計された対話機能の全体を記述する前記図における前記複数の処理状態のうちの、前記実際の対話において出現する処理状態を、前記設計された対話機能の全体を記述する前記図において探索し、前記探索によって得られた前記処理状態を含む前記対話シナリオを動的に決定する処理と、
を実行させることを特徴とする対話プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話シナリオに従って対話を実行する対話装置、並びに、対話シナリオに従って対話を実行するために使用される対話方法及び対話プログラムに関する。
【背景技術】
【０００２】
対話型のＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）を備えた、カーナビ装置、家電機器、などの電気機器が普及している。このような電気機器では、事前に設計された対話処理の流れを示す対話シナリオに従って、ユーザからの問い掛けに対する応答、ユーザへの質問、などが行われる。対話シナリオに従って対話を実行する対話装置には、対話における処理状態（例えば、入力待ち状態、検索中の状態、などのステート）、処理状態の間の遷移を示す遷移情報、などの設計情報である対話機能情報が実装されている。対話機能情報は、例えば、ステートチャート、フローチャート、などのような、状態の遷移を表現する図によって記述されることができる。【０００３】
また、対話装置の設計及び保守管理における省力化などを可能にする種々の装置及び方法が提案されている（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３２４９９３号公報
【特許文献２】特表２００８−５１２７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ：人工知能）、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ：モノのインターネット）、などの普及により、対話装置には、センサから提供される検出信号、Ｗｅｂ（例えば、インターネット）上で提供される情報、対話装置と対話するユーザの嗜好を示す情報（例えば、個人情報）、などの様々な情報を用いた高度な対話機能が要求されている。このため、対話装置では、考慮されるべき条件が著しく増加しており、その結果、対話シナリオが非常に複雑化している。【０００６】
しかし、上記従来の対話装置で様々な情報を用いた高度な対話機能を実現するためには、複雑な対話シナリオの作成及び修正を人手で行う必要があるという課題がある。【０００７】
本発明は、上記従来の課題を解決するためになされたものであり、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに従って高度な対話を実行することができる対話装置、並びに、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに従って高度な対話を実行することを可能にする対話方法及び対話プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る対話装置は、対話シナリオに従ってユーザと対話する対話装置であって、対話における複数の処理状態と前記複数の処理状態の間の関係を示す関係情報とを取得し、前記複数の処理状態と前記関係情報とに基づいて、設計された対話機能の全体を記述する図を構築する対話設計部と、実際の対話に際し前記対話装置の使用時の周辺状況から動的に取得される情報に基づいて、前記設計された対話機能の全体を記述する前記図における前記複数の処理状態のうちの、前記実際の対話において出現する処理状態を、前記設計された対話機能の全体を記述する前記図において探索し、前記探索によって得られた前記処理状態を含む前記対話シナリオを動的に決定する対話実行部と、を備えることを特徴とする。
【０００９】
本発明の他の態様に係る対話方法は、対話シナリオに従ってユーザと対話する対話装置が実行する対話方法であって、前記対話装置の対話設計部が、対話における複数の処理状態と前記複数の処理状態の間の関係を示す関係情報とを取得し、前記複数の処理状態と前記関係情報とに基づいて、設計された対話機能の全体を記述する図を構築するステップと、前記対話装置の対話実行部が、実際の対話に際し前記対話機能の使用時の周辺状況から動的に取得される情報に基づいて、前記設計された対話機能の全体を記述する前記図における前記複数の処理状態のうちの、前記実際の対話において出現する処理状態を、前記設計された対話機能の全体を記述する前記図において探索し、前記探索によって得られた前記処理状態を含む前記対話シナリオを動的に決定するステップと、を有することを特徴とする。
【発明の効果】
【００１０】
本発明に係る対話装置は、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに基づいて高度な対話を行うことができる。【００１１】
また、本発明に係る対話方法又は対話プログラムを用いれば、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに基づいて高度な対話を行うことが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１に係る対話装置の構成を概略的に示すブロック図である。
【図２】実施の形態１に係る対話装置のハードウェア構成の例を示す図である。
【図３】実施の形態１に係る対話装置の動作を示すフローチャートである。
【図４】実施の形態１に係る対話装置の対話設計部によって取得されるステートリストの例を示す図である。
【図５】実施の形態１に係る対話装置の対話設計部によって取得される構築条件である出現順序の例を示す図である。
【図６】実施の形態１に係る対話装置の対話設計部によって取得される構築条件である遷移情報の例を示す図である。
【図７】実施の形態１に係る対話装置の対話設計部によってステートリストから構築された完全有向グラフの例を示す図である。
【図８】実施の形態１に係る対話装置の対話設計部によって構築された完全有向グラフと完全有向グラフから生成されたステートチャートとの例を示す図である。
【図９】図８におけるステートチャートを示す図である。
【図１０】実施の形態１に係る対話装置の対話実行部によって取得される探索条件の例を示す図である。
【図１１】実施の形態１に係る対話装置の対話実行部によって取得される対話シナリオの例を示す図である。
【図１２】実施の形態１に係る対話装置の対話実行部によって取得される対話シナリオの他の例を示す図である。
【図１３】実施の形態１に係る対話装置の対話設計部によって取得されるステートリストとステートリストから構築された完全有向グラフとの例を示す図である。
【図１４】図１３のケース＃１の場合の対話シナリオの例を示す図である。
【図１５】図１３のケース＃２の場合の対話シナリオの例を示す図である。
【図１６】図１３のケース＃３の場合の対話シナリオの例を示す図である。
【図１７】本発明の実施の形態２に係る対話装置の構成を概略的に示すブロック図である。
【図１８】実施の形態２に係る対話装置の動作を示すフローチャートである。
【図１９】本発明の実施の形態３に係る対話装置の構成を概略的に示すブロック図である。
【図２０】実施の形態３に係る対話装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態に係る対話装置、対話方法、及び対話プログラムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、本発明の範囲内で種々の変更が可能である。
【００１４】
《１》実施の形態１．
《１−１》実施の形態１の構成
図１は、本発明の実施の形態１に係る対話装置１の構成を概略的に示すブロック図である。対話装置１は、実施の形態１に係る対話方法を実施することができる装置である。図１に示されるように、対話装置１は、対話設計部１０と、対話実行部２０とを備えている。対話装置１は、対話シナリオに従ってユーザとの対話を実行する。対話装置１は、半導体記憶装置又はハードディスクドライブなどの記憶装置３１を備えてもよい。また、対話装置１は、表示画面を有する出力装置３２を備えてもよい。
【００１５】
対話設計部１０は、対話における複数の処理状態である複数のステートＡ１をステートリストとして取得するステートリスト入力部１１と、複数のステートＡ１の間の関係を示す関係情報である構築条件Ａ２を取得する構築条件入力部１２とを有している。また、対話設計部１０は、複数のステートＡ１と構築条件Ａ２とに基づいて、設計された対話機能の全体を記述する図であるステートチャートＡ３、すなわち、状態遷移図を構築するステートチャート構築部１３と、構築されたステートチャートＡ３を出力するステートチャート出力部１４とを有している。ステートチャートＡ３は、記憶装置３１に記憶される。また、ステートチャートＡ３は、出力装置３２の表示画面に表示されてもよい。
【００１６】
構築条件Ａ２は、複数のステートＡ１の間の遷移関係、複数のステートＡ１の遷移の順序関係、複数のステートの間の遷移関係を示すために複数のステートＡ１の間を結ぶ遷移線の制約条件、などのステートチャートの静的な構造を示す条件である。ステートチャート構築部１３は、遷移情報、順序情報、制約条件、などに基づいて、対話機能の全体を記述するステートチャートＡ３を構築する。
【００１７】
実施の形態１においては、対話機能の全体を記述する図がステートチャートである場合を説明する。ただし、対話機能の全体を記述する図は、対話機能の振舞い、すなわち、処理状態の遷移を示すことができる図であれば、他の形式の図であってもよい。例えば、対話機能の全体を記述する図は、ビヘイビアツリー（Ｂｅｈａｖｉｏｒ  Ｔｒｅｅ）、アクティビティ図（Ａｃｔｉｖｉｔｙ  Ｄｉａｇｒａｍ）、シーケンス図（Ｓｅｑｕｅｎｃｅ  Ｄｉａｇｒａｍ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）図、及びグラフ（例えば、有向グラフ）、のうちのいずれかであってもよい。
【００１８】
対話実行部２０は、実際の対話に際し動的に取得される情報である外部情報Ｂ１を取得する対話入力部２１と、ステートチャートＡ３において通過するステートを示すパスに関する探索条件Ｂ２を取得する探索条件入力部２２を有している。対話実行部２０は、ステートチャートＡ３における複数のステートＡ１のうちの、実際の対話において出現する処理状態であるステートを探索し、探索によって得られたステートと、得られたステートの間を結ぶ遷移線と、を含む対話シナリオＢ３を動的に決定する対話シナリオ探索部２３とを有している。また、対話実行部２０は、対話シナリオＢ３に従って対話を実行する対話シナリオ実行部２４を有している。
【００１９】
外部情報Ｂ１は、対話設計部１０で構築されたステートチャートにおける複数のステートのうちの対話処理を実行するときに通過するステート、のパスの決定に使用される情報である。外部情報Ｂ１は、例えば、ユーザインターフェース（ＵＩ）３３から提供されるユーザ操作情報、コンピュータで実行されるソフトウェアプログラムであるアプリケーション３４によって提供される情報、インターネット３５などのネットワークを経由して提供される情報、及び外部のデータベース３６から提供される情報、のうちの１つ以上を含むことができる。ユーザ操作情報は、例えば、音声の入力、タッチパネルにおけるタッチ操作、キーボードからの入力、などを含む。
【００２０】
探索条件Ｂ２は、対話機能の全体を示すステートチャートＡ３上において通過するパスの探索のための動的な条件である。言い換えれば、探索条件Ｂ２は、対話シナリオに含まれる処理状態が満たす必要がある条件である。
【００２１】
図２は、実施の形態１に係る対話装置１のハードウェア構成の例を示す図である。図２に示されるように、対話装置１は、例えば、ソフトウェアとしてのプログラム、すなわち、実施の形態１に係る対話プログラムを格納する記憶装置としてのメモリ５２と、メモリ５２に格納されたプログラムを実行する演算処理部としてのプロセッサ５１とを備えている。対話装置１は、例えば、コンピュータである。実施の形態１に係る対話プログラムは、情報を記憶する記憶媒体から媒体情報読取装置（図示せず）を介して又はインターネットなどに接続可能な通信インタフェース（図示せず）を介してメモリ５２に格納される。また、対話装置１は、ユーザの音声を受音するマイク、マウス、キーボード、などのユーザ操作部である入力装置５３を備えている。また、対話装置１は、画像を表示する表示装置、音声を出力する音声出力部、などの出力装置５４を備えている。また、対話装置１は、データベースなどの各種情報を格納する補助記憶装置５５を備えてもよい。補助記憶装置５５は、通信インタフェース（図示せず）を介して接続可能なクラウド上に存在する記憶装置であってもよい。
【００２２】
図１に示される対話設計部１０及び対話実行部２０は、メモリ５２に格納されるプログラムを実行するプロセッサ５１によって実現されることができる。また、図１に示される対話設計部１０及び対話実行部２０の一部が、メモリ５２に格納されているプログラムを実行するプロセッサ５１によって実現されてもよい。また、図１に示される記憶装置３１及びデータベース部３６は、補助記憶装置５５の一部であってもよい。
【００２３】
《１−２》実施の形態１の動作
次に、実施の形態１に係る対話装置１の動作について説明する。以下の説明では、対話装置１が、カーナビ装置である例を説明する。ただし、対話装置１は、対話型のＨＭＩを備えた家電機器などの、カーナビ装置以外の電気機器であってもよい。
【００２４】
図３は、実施の形態１に係る対話装置１の動作を示すフローチャートである。ステップＳＴ１０１からＳＴ１０３までは、対話装置１の対話設計部１０によって実行される処理である。ステップＳＴ１０４からＳＴ１０７までは、対話装置１の対話実行部２０によって実行される処理である。
【００２５】
図４は、対話装置１の対話設計部１０によって取得されるステートリスト１０１の例を示す図である。図５は、対話装置１の対話設計部１０によって取得される構築条件１０２である出現順序の例を示す図である。図６は、対話装置１の対話設計部１０によって取得される構築条件１０３である遷移情報の例を示す図である。
【００２６】
まず、ステップＳＴ１０１において、対話設計部１０のステートリスト入力部１１が、対話機能を実現するために必要なステート（図１におけるＡ１）のリストであるステートリスト１０１を取得する。ここで、対話のステートは、対話シナリオの中で機器が実行している処理の処理状態を示す。対話のステートは、例えば、「テロップの表示中」、「ガイダンス音声の出力中」、「音声認識情報の取り込み中」、などである。ステートリスト１０１は、例えば、機器の設計者によって予め準備された機能仕様書などの対話の設計情報から得られる。ステートリスト１０１は、設計者によって、対話機能の設計時に、随時変更されてもよい。
【００２７】
続くステップＳＴ１０２においては、対話設計部１０の構築条件入力部１２は、構築条件１０２，１０３（図１におけるＡ２）を取得する。図４に示されるステートリスト１０１に含まれるステートＳ１からＳ６は、対話機能を実現するためのステートの例である。  
【００２８】
図５に示される構築条件１０２は、図４に示されるステートＳ１からＳ６の対話機能における出現順序を示している。出現順序とは、機能仕様書の段階で明確に決まっているステートの並びによって示される。図５に示される出現順序は、どのような対話シナリオが設定される場合にも、必ず適用される対話機能を示すためのステートの出現順序である。出現順序は、例えば、「ビープ音を鳴らした後に音声認識を開始する。」、「テロップＡを表示した後にテロップＢを表示する。」、などの情報である。
【００２９】
また、図５の構築条件１０２において、ステートＳ２とＳ３との間、ステートＳ４とＳ５との間では、出現順序が指定されていない。構築条件１０２におけるステートＳ２とＳ３、ステートＳ４とＳ５は、いずれが先に実行されてもよい関係（すなわち、自由順の関係）を有している。なお、図５における構築条件１０２は、ステートリスト１０１に無いステートとして、開始点「Ｉｎｉｔｉａｌ」及び終了点「Ｆｉｎａｌ」を含んでいる。これらは、ステートチャートの開始及び終了を示す特殊なステートである。開始点「Ｉｎｉｔｉａｌ」及び終了点「Ｆｉｎａｌ」は、必要に応じて適宜追加される。また、複数個の開始点「Ｉｎｉｔｉａｌ」及び複数個の終了点「Ｆｉｎａｌ」が、適宜追加されてもよい。また、終了点「Ｆｉｎａｌ」の出現順序は、ステートチャートにおける最後である必要はない。
【００３０】
図６に示される構築条件１０３は、ステートチャートにおけるステートの間を結ぶ遷移線に関する制約を指定している。図６における構築条件１０３は、あるステートから他のステートへの遷移であって、対話シナリオにおいて必ず発生する遷移を規定している。図６における構築条件１０３の内容は、機能仕様書の作成段階で決まっている構造的制約を与える。構築条件１０３で定義された条件（すなわち、条件ＩＤ）Ｃ１は、「対話シナリオにおける処理は、ＩｎｉｔｉａｌからステートＳ１への遷移線を必ず通る。」すなわち「必ずステートＳ１から対話シナリオを開始する。」を含む。また、構築条件１０３で定義された条件Ｃ２は、「対話シナリオにおける処理は、ステートＳ６からＦｉｎａｌへの遷移線を必ず通る。」すなわち「必ずステートＳ６を通過して対話シナリオを終了する。」を含む。
【００３１】
続くステップＳＴ１０３においては、ステートチャート構築部１３は、ステップＳＴ１０１で得られたステートリスト１０１に対し、ステップＳＴ１０２で得られた構築条件１０２，１０３を適用することで、ステートチャート（図１におけるＡ３）を生成する。図７は、対話設計部１０のステートチャート構築部１３によってステートリスト１０１から構築された完全有向グラフの例２０１を示す図である。図８は、ステートチャート構築部１３によって構築された完全有向グラフ（すなわち、実線と破線で描かれたグラフ）と完全有向グラフから生成されたステートチャート（すなわち、実線で描かれたグラフ）の例２０２を示す図である。図９は、図８におけるステートチャート（すなわち、実線で描かれたグラフ）の例２０３を示す図である。図７から図９に基づいて、対話設計部１０のステートチャート構築部１３における処理内容を説明する。
【００３２】
まず、図７に示されるように、ステートチャート構築部１３は、ステートリスト１０１に構築条件１０２を適用し、ＩｎｉｔｉａｌからＦｉｎａｌの方向へ向かう遷移線に沿ってステートが移動するステートチャートを生成する。例えば、図７に示されるように、ステートチャート２０１は、ステートチャート２０１の各ステートをノードとし、ノード間を結ぶ遷移線をエッジとし、順序番号（Ｓｅｑ．）が小さいノードから順序番号（Ｓｅｑ．）が大きいノードに向けて処理状態が移動する完全有向グラフとして構築される。すなわち、ステートチャート２０１では、順序が早いステートＳ１から、それ以外のステートＳ２〜Ｓ６へ遷移線が与えられる。また、次に順序が早いステートＳ２，Ｓ３からは、ステートＳ１以外のステートＳ４〜Ｓ６への遷移線が与えられる。なお、同じ順序番号（Ｓｅｑ．）が付与されているステートは、１つのグループのステートとして、１つのステートのように扱われる。ステートチャートで２０１は、入れ子状態として定義される。ステートチャートで２０１においては、残りのステートに対しても、同様に遷移線が与えられる。以上の処理によって、完全有向グラフとしてのステートチャート２０１が得られる。
【００３３】
次に、ステートチャート構築部１３は、得られたステートチャート２０１に対して構築条件１０３を適用する。構築条件１０３の条件Ｃ１「対話シナリオにおける処理は、ＩｎｉｔｉａｌからＳ１への遷移線を必ず通る。」を適用すると、Ｉｎｉｔｉａｌからの遷移線のうちの、ステートＳ１へ向かう遷移線（すなわち、図８における実線の遷移線）以外の遷移線（すなわち、図８における破線の遷移線）は、全て棄却される（すなわち、全て不採用となる）。
【００３４】
同様に、条件Ｃ２「対話シナリオにおける処理は、Ｓ６からＦｉｎａｌへの遷移線を必ず通る。」を適用すると、ステートＳ６とＦｉｎａｌとの間の遷移線を通らずにＦｉｎａｌへ至る遷移線は、全て棄却される（すなわち、全て不採用となる）。
【００３５】
図８は、対話装置１の対話設計部１０によって構築された完全有向グラフ２０２（すなわち、図８において実線と破線で描かれたグラフ）と完全有向グラフ２０２から生成されたステートチャート（すなわち、図８において実線で描かれたグラフ）の例を示す図である。図９は、ステートチャート２０３（すなわち、図８における実線で描かれたグラフ）を示す図である。つまり、図９は、図８の完全有向グラフ２０２における破線の遷移線を取り除いた様子を示す。
【００３６】
以上に説明した図３のステップＳＴ１０１からＳＴ１０３の処理により、対話設計部１０におけるステートチャート２０３の自動構築が完了する。図３のステップＳＴ１０４からＳＴ１０７において、対話実行部２０は、ステップＳＴ１０３までの処理で生成されたステートチャート２０３から、実際に実行される対話シナリオを取得し、対話シナリオに従う対話を実行する。
【００３７】
まず、ステップＳＴ１０４では、対話実行部２０は、対話処理を起動する際に外部から動的に得られる外部情報を取得する。外部情報は、例えば、「道路が渋滞している。」、「天気が雨になる。」、「助手席の同乗者が眠っている。」、といった、対話装置１が適用されている機器の操作中に動的に与えられる情報である。つまり、外部情報は、対話装置１が適用された機器の周辺の環境又は状況の情報を含むことができる。
【００３８】
続くステップＳＴ１０５では、対話実行部２０は、ステートチャートＡ３（例えば、図９に示されるステートチャート）上でパスの探索を行うための探索条件Ｂ２を取得する。探索条件Ｂ２は、機能仕様書の作成時に決められる。
【００３９】
図１０は、対話装置１の対話実行部２０によって取得される探索条件１１１（すなわち、図１におけるＢ２）の例を示す図である。図１０において、探索条件１１１は、条件の適用判断を行う適用条件と、適用条件を満足する場合にパスが通過する条件とを含む。適用条件は、例えば、「ガソリン残量が１０リットル未満ならば」、「天気が雨ならば」、「助手席の同乗者が眠っているならば」、などの、ステップＳＴ１０４で取得される条件が合致するかの判断の条件である。
【００４０】
適用条件を満足した場合に、ステートチャートＡ３におけるパスの探索に用いる条件である。この条件は、例えば、「ステート“○○”を通る。」、「最短の経路を通る。」、といったグラフ構造に基づく探索の仕方を示す条件である。また、パスの探索に用いる条件は、各ステート又は遷移線に事前にモーダル情報又はスコアなどのパラメータを付与しておき、「運転者の認知負荷が最も少なくなる（視覚情報量が最も小さい、音が出ない、など）ステートを通る。」、「スコアが最大となるステートを通る。」、といった、パラメータの最適化に基づく探索の仕方を示す条件である。図１０の条件（すなわち、条件ＩＤ）Ｄ１では、適用条件「パラメータＰ１の値が閾値θ１より大きい。」を満たす場合には、ステートＳ３とステートＳ５とを通る対話シナリオが探索される。図１０の条件Ｄ２では、適用条件「パラメータＰ２の値が閾値θ１に等しい。」を満たす場合には、最短のパスを通るように（すなわち、通過するステートの数が最小となるように）、対話シナリオが探索される。
【００４１】
続くステップＳＴ１０６では、対話実行部２０は、ステップＳＴ１０３までの処理で作成したステートチャートに対し、ステップＳＴ１０４及びＳＴ１０５で取得した探索条件を適用してパスの探索を行う。
【００４２】
図１１は、対話装置１の対話実行部２０によって取得された対話シナリオ２０４の例を示す図である。図１２は、対話装置１の対話実行部２０によって取得された対話シナリオの他の例を示す図である。図１１及び図１２は、ステートチャート２０３（図９に示される。）に対して探索条件１１１の各条件Ｄ１及びＤ２（図１０に示される。）を適用した例である。なお、図１１及び図１２において、破線部分は、探索時に棄却された遷移線及びステートを示す。ステートチャート２０３に探索条件Ｄ１を適用すると、図１１に実線で示されるように、対話シナリオ２０４が取得される。一方、ステートチャート２０３に探索条件Ｄ２を適用すると、図１２に実線で示されるように、対話シナリオ２０５が取得される。
【００４３】
最後のステップＳＴ１０７において、対話実行部２０は、ステップＳＴ１０６までの処理で取得された対話シナリオを読み込み、この対話シナリオに従って対話を実行する。対話実行部２０による対話処理は、ステートチャートのランタイムすなわちランタイムモジュールによって実行されてもよいし、対話シナリオから変換されたプログラムによって実行されてもよい。
【００４４】
図１３は、対話装置１の対話設計部１０によって取得されるステートリスト１２１とステートリストから構築されたステートチャート１２２の例を示す図である。図１４は、図１３のケース＃１の場合の対話シナリオ１２３の例を示す図である。図１５は、図１３のケース＃２の場合の対話シナリオ１２４の例を示す図である。図１６は、図１３のケース＃３の場合の対話シナリオ１２５の例を示す図である。
【００４５】
ステートリスト１２１は、対話装置１における音声認識の開始までの対話機能に出現する複数のステート（すなわち、処理状態）を含む。ステートリスト１２１は、例えば、ガイダンス音声の出力「Ｇｕｉｄａｎｃｅ１」，「Ｇｕｉｄａｎｃｅ２」と、テロップの表示「Ｔｅｌｏｐ１」，「Ｔｅｌｏｐ２」と、ビープ音の出力「Ｂｅｅｐ」と、音声認識の開始「ＲｅｃｏｇＳｔａｒｔ」と、開始点「Ｉｎｉｔｉａｌ」と、終了点「Ｆｉｎａｌ」とを含む。
【００４６】
対話設計部１０は、ステートリスト１２１に種々の構築条件を適用することによって、ステートチャート１２２を取得する。例えば、ステートチャート１２２において、動的に変化する周囲の状況に応じた探索条件を適用してパスを探索すると、周囲の状況に適した対話シナリオが動的に得られる。図１４から図１６に示される対話シナリオ１２３〜１２５のパスにおいて、太線のパスは、ステートチャート１２２における探索の結果として取得された対話シナリオである。
【００４７】
例えば、図１４に示される対話シナリオ１２３のパスは、ステートチャート１２２における全てのステートを通過するパスである。図１４に示される対話シナリオ１２３のパスは、特別な状況が発生していない、通常の状況における対話シナリオ（すなわち、通常時の対話シナリオ）のパスを示す。
【００４８】
図１５に示される対話シナリオ１２４のパスでは、テロップの出力回数が、図１４に示される通常時の対話シナリオ１２３におけるテロップの出力回数より１回少なく、ガイダンス音声の出力回数が、図１４に示される通常時の対話シナリオ１２３におけるガイダンス音声の出力回数より１回少ない。つまり、図１５に示される対話シナリオ１２４のパスでは、図１４に示される通常時の対話シナリオ１２３のパスに比べると、ショートカットのパスである。図１５に示される対話シナリオ１２４のパスは、例えば、ユーザがカーナビ装置を使い慣れている運転者である場合に採用されるパスである。図１５に示される対話シナリオ１２４のパスは、最小限の対話のみの対話シナリオとして利用することができる。
【００４９】
図１６に示される対話シナリオ１２５のパスは、ガイダンス音声又はビープ音の出力の処理を通らない。図１６に示される対話シナリオ１２５のパスは、例えば、同乗者が眠っている状況で、音が出る処理を避ける対話シナリオとして利用することができる。
【００５０】
《１−３》実施の形態１の効果
以上に説明したように、実施の形態１に係る対話装置１、対話方法、又は対話プログラムを用いれば、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに基づいて高度な対話を行うことができる。また、対話シナリオの作成における人手による作業は要求されない。
【００５１】
《１−４》実施の形態１の変形例
なお、実施の形態１において構築条件入力部１２は、遷移関係、順序関係、遷移線の制約条件など、ステートチャートの構造自体を記述した条件を入力として取得してもよい。また、実施の形態１において構築条件入力部１２は、ステート又は遷移線の重要度など、ステートチャートの構造を直接表さない構築条件を入力として取得してもよい。
【００５２】
また、実施の形態１において構築条件入力部１２は、ステートチャートの構造を示すデザインパターン又はステートチャートのテンプレートなど、事前にある程度のステートチャートの構造を定義した構築条件を入力として取得してもよい。また、実施の形態１において構築条件入力部１２は、テンプレートと具体的な構築条件との組み合わせを入力として取得してもよい。なお、対話のテンプレートを用いた例は、実施の形態２において説明される。
【００５３】
また、対話入力部２１は、アプリケーション３４などにより様々な情報を入力として受け取ることが可能である。例えば、カーナビ装置では、アプリケーション３４からの車内情報を入力として受け取ることができる。この場合の車内情報は、車速、ブレーキの状態、ハンドルの舵角、運転者のプロファイル情報、運転者の状態を検出することで取得されるセンシングデータ、などを含むことができる。
【００５４】
また、対話装置１がカーナビ装置に適用された場合は、対話入力部２１は、車両の周辺状況の情報などを入力として受け取ることができる。車両の周辺状況の情報は、例えば、走行している地点を含む地図情報、走行している地点の周辺の渋滞情報、車両の周辺の外気温、などを含むことができる。
【００５５】
また、対話装置１が家電機器であるエアコンに適用された場合は、対話入力部２１は、室温又は室内の人の数、外気温、などの動作環境の情報を入力として受け取ることができる。また、対話装置１が家電機器であるエアコンに適用された場合は、対話入力部２１は、室内の人が眠っている、室内の人が食事をしている、などのユーザの行動又は状態に関する情報を入力として受け取ることができる。また、対話装置１が家電機器であるエアコンに適用された場合は、対話入力部２１は、ユーザ操作の履歴情報に基づいて、ステートチャートから最適なパス（すなわち、対話シナリオ）を適応的に獲得していく方法を採用することも可能である。なお、ユーザの操作履歴を用いる装置に関しては、実施の形態３において説明される。
【００５６】
また、対話シナリオ探索部２３は、１つの探索条件のみを選択して探索に使用してもよいし、複数の探索条件又はそれらの組み合わせた探索条件を選択して探索に使用してもよい。対話シナリオ探索部２３は、複数の探索条件を組み合わせた探索条件を使用して探索を行う場合に、探索条件の間に矛盾が生じる場合がありうる。対話シナリオ探索部２３は、探索条件に予め優先度を設定しておくことによって、探索を適切に実行することができる。例えば、対話シナリオ探索部２３は、優先度が高い順に探索条件を順次適用し、矛盾が生じた時点で、そのときの探索条件の適用を終了又はスキップすることで、探索を適切に実行することができる。
【００５７】
また、対話シナリオ探索部２３は、探索には、グラフ理論で用いられる一般的なアルゴリズムを用いることができる。このような探索では、例えば、非特許文献１に示される、組合せ集合の検索アルゴリズムを用いることができる。
【００５８】
【非特許文献１】ＭＩＮＡＴＯ，  Ｓｈｉｎ−ｉｃｈｉ．  “Ｚｅｒｏ−ｓｕｐｐｒｅｓｓｅｄ  ＢＤＤｓ  ｆｏｒ  ｓｅｔ  ｍａｎｉｐｕｌａｔｉｏｎ  ｉｎ  ｃｏｍｂｉｎａｔｏｒｉａｌ  ｐｒｏｂｌｅｍｓ．  Ｉｎ：  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３０ｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ”、  ＡＣＭ、  １９９３．  ｐｐ．２７２−２７７．
【００５９】
《２》実施の形態２．
図１７は、本発明の実施の形態２に係る対話装置２の構成を概略的に示すブロック図である。対話装置２は、実施の形態２に係る対話方法を実施することができる装置である。図１７において、図１に示される構成要素と同一又は対応する構成要素には、図１に示される符号と同じ符号が付されている。実施の形態２に係る対話装置２は、実施の形態１における対話設計部１０の構築条件入力部１２に代えて、対話設計部１０ａのテンプレート入力部１５を備えた点において、実施の形態１に係る対話装置１と異なる。テンプレート入力部１５は、テンプレート記憶部３７のデータベースからテンプレート３７ａを取得する。ただし、実施の形態２に係る対話装置２は、実施の形態１における対話設計部１０の構築条件入力部１２に加えて、対話設計部１０ａのテンプレート入力部１５を備えてもよい。
【００６０】
実施の形態２において、対話設計部１０ａのテンプレート入力部１５は、対話のテンプレート３７ａを、事前に対話シナリオ毎に用意するために取得する。例えば、回答がＹＥＳ又はＮＯとなる対話、回答が複数の選択肢のうちの１つ以上になる選択肢対話、など、対話装置が適用される機器によらず、ある程度共通した処理となる対話をテンプレートのステートチャート又はステートチャートの部分として用意する。後段のステートチャート構築部１３は、テンプレートＡ２ａに、ステートリスト入力部１１で取得したステートリストを当て嵌めることで、ステートチャートＡ３を構築する。上記以外に関して、実施の形態２に係る対話装置２は、実施の形態１に係る対話装置１と同じである。
【００６１】
図１８は、実施の形態２に係る対話装置２の動作を示すフローチャートである。図１８に示されるように、実施の形態２に係る対話装置２のステップＳＴ２０１、ＳＴ２０４〜ＳＴ２０７の動作は、実施の形態１に係る対話装置１のステップＳＴ１０１、ＳＴ１０４〜ＳＴ１０７の動作と同じである。実施の形態２に係る対話装置２のステップＳＴ２０２及びＳＴ２０３の動作は、実施の形態１に係る対話装置１のステップＳＴ１０２及びＳＴ１０３の動作と異なる。
【００６２】
実施の形態２では、ステップＳＴ２０１において、ステートリスト入力部１１がステートリストを取得した後に、ステップＳＴ２０２において、テンプレート入力部１５が、対話のテンプレート３７ａを取得する。ここで、対話のテンプレート３７ａは、事前に用意され、テンプレート記憶部３７にデータベースとして記憶されたものである。対話のテンプレート３７ａは、人手で構築されたものであってもよいし、デザインパターンから選定されたものであってもよい。あるいは、対話のテンプレート３７ａは、過去の対話機能開発における設計データなどの、既存のデータであってもよい。さらに、既存のデータを適宜編集したものを対話のテンプレート３７ａとしてテンプレート記憶部３７にデータベースとして記憶しても使用してもよい。
【００６３】
ステップＳＴ２０３では、ステートチャート構築部１３は、ステップＳＴ２０２で取得したテンプレートＡ２ａに対してステップＳＴ２０１で取得したステートを当て嵌めることで、ステートチャートＡ３を生成する。ステートを当て嵌める位置又は順序などの情報は、構築条件として各ステートに事前に付与した出現順序などの情報と照合して自動で行ってもよいし、人手で適宜当てはめていく方法であってもよい。ステップＳＴ２０４以降の処理は、実施の形態１におけるステップＳＴ１０４以降の処理と同じである。
【００６４】
以上に説明したように、実施の形態２に係る対話装置２、対話方法、又は対話プログラムを用いれば、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに基づいて高度な対話を行うことができる。
【００６５】
また、対話のテンプレートを利用することで、従来、全てを人手で構築していたステートチャートの構築の大部分が、自動的に実行されるため、設計の工数が削減される。また、専門技術者ではないユーザが、対話を容易に設計することが可能である。
【００６６】
《３》実施の形態３．
図１９は、本発明の実施の形態３に係る対話装置３の構成を概略的に示すブロック図である。対話装置３は、実施の形態３に係る対話方法を実施することができる装置である。図１９において、図１に示される構成要素と同一又は対応する構成要素には、図１に示される符号と同じ符号が付されている。実施の形態３に係る対話装置３は、実施の形態１における対話実行部２０に代えて、操作履歴取得部２５と、操作履歴２６ａを記憶する操作履歴記憶部２６とを備えた対話実行部２０ａを備えた点において、実施の形態１に係る対話装置１と異なる。
【００６７】
実施の形態３において、対話実行部２０ａは、対話入力部２１、探索条件入力部２２、及び対話シナリオ実行部２４からユーザの操作履歴を取得する操作履歴取得部２５を備えている。操作履歴取得部２５は、対話シナリオ実行部２４で実行した対話シナリオＢ４に対し、ユーザが対話入力部２１を通じて入力操作した内容と、そのときの探索条件を、対話シナリオとともに、操作履歴記憶部２６に操作履歴情報Ｂ５として記録する。対話シナリオの探索時に、類似した探索条件が出現した場合には、ユーザの以前の対話応答を再現するようにユーザの操作履歴で重みづけしたパスの探索を行う。その他の構成に関し、実施の形態３に係る対話装置３は、実施の形態１に係る対話装置１と同じである。
【００６８】
図２０は、実施の形態３に係る対話装置３の動作を示すフローチャートである。図２０に示されるように、実施の形態３に係る対話装置３のステップＳＴ２０１〜ＳＴ２０５の動作は、実施の形態１に係る対話装置１のステップＳＴ１０１〜ＳＴ１０５の動作と同じである。実施の形態３に係る対話装置３のステップＳＴ３０６〜ＳＴ３０８の動作は、実施の形態１に係る対話装置１のステップＳＴ１０６及びＳＴ１０７の動作と異なる。
【００６９】
実施の形態３では、対話実行部２０ａは、ステップＳＴ３０８において、対話処理実行時にユーザが行った操作と、対話シナリオの探索条件と、そのときの対話シナリオとを関連付けて、操作履歴２６ａとして操作履歴記憶部２６に格納する。例えば、対話実行部２０ａは、対話シナリオをキーとしたテーブルを用意し、そのレコードとして操作内容（例えば、選択されたステート）、探索条件（例えば、パラメータの値）、などを格納する。
【００７０】
ステップＳＴ３０６においては、対話実行部２０ａの対話シナリオ探索部２３は、過去の対話のステップＳＴ３０８で記憶した操作履歴２６ａを用いて、対話シナリオの探索を行う。実施の形態３において、上記以外のステップは、実施の形態１のステップと同じである。
【００７１】
以上に説明したように、実施の形態３に係る対話装置３、対話方法、又は対話プログラムを用いれば、様々な条件を満たす対話シナリオを動的に決定し、この対話シナリオに基づいて高度な対話を行うことができる。
【００７２】
また、実施の形態３では、ユーザが行うであろうと予測される操作に適した対話シナリオを提供することが可能となる。つまり、実施の形態３に係る対話装置３、対話方法、又は対話プログラムを用いれば、よりユーザが快適に操作できる対話機能を実現することができる。例えば、操作履歴を使用しない場合は、探索条件として「温度が“２５”度であった場合、エアコンの設定温度を下げる。」という操作指示と、「温度が“２５”度であった場合、窓を開ける。」という操作指示とが、対話として提供された。しかし、実施の形態３では、温度が２５度であった場合、窓を開けることを示す操作履歴が蓄積されているときに、対話実行部２０ａは、温度が２５度になった場合、窓を開けるように促す対話シナリオを優先させるように対話シナリオを作成することが可能となる。
【００７３】
《４》変形例．
実施の形態１〜３で説明した構成は、適宜、互いに組み合わせることが可能である。また、図２に示されるハードウェア構成は、実施の形態２及び３に適用可能である。
【符号の説明】
【００７４】
１，２，３  対話装置、  １０，１０ａ  対話設計部、  １１  ステートリスト入力部、  １２  構築条件入力部、  １３  ステートチャート構築部、  １４  ステートチャート出力部、  １５  テンプレート入力部、  ２０，２０ａ  対話実行部、  ２１  対話入力部、  ２２  探索条件入力部、  ２３  対話シナリオ探索部、  ２４  対話シナリオ実行部、  ２５  操作履歴取得部、  ２６  操作履歴記憶部、  ２６ａ  操作履歴情報、  ３１  記憶装置、  ３２  出力装置、  ３３  ユーザインターフェース（ＵＩ）、  ３４  アプリケーション、  ３５  インターネット（ネットワーク）、  ３６  データベース、  ３７  テンプレート記憶部、  ３７ａ  テンプレート、  Ａ１  ステート、  Ａ２  構築条件、  Ａ２ａ  テンプレート、  Ａ３ステートチャート、  Ｂ１  外部情報、  Ｂ２  探索条件、  Ｂ３  対話シナリオ、  Ｂ４  実行した対話シナリオ、  Ｂ５  操作履歴情報。
【要約】
対話シナリオに従ってユーザと対話する対話装置（１）は、対話における複数の処理状態と複数の処理状態の間の関係を示す関係情報とを取得し、複数の処理状態と関係情報とに基づいて、設計された対話機能の全体を記述する図を構築する対話設計部と、実際の対話に際し動的に取得される情報（Ｂ１，Ｂ２）に基づいて、設計された対話機能の全体を記述する図における複数の処理状態のうちの、実際の対話において出現する処理状態を探索し、探索によって得られた処理状態を含む対話シナリオを動的に決定する対話実行部とを備える。【図１】
0006570792.tif 000002
【図２】
0006570792.tif 000003
【図３】
0006570792.tif 000004
【図４】
0006570792.tif 000005
【図５】
0006570792.tif 000006
【図６】
0006570792.tif 000007
【図７】
0006570792.tif 000008
【図８】
0006570792.tif 000009
【図９】
0006570792.tif 000010
【図１０】
0006570792.tif 000011
【図１１】
0006570792.tif 000012
【図１２】
0006570792.tif 000013
【図１３】
0006570792.tif 000014
【図１４】
0006570792.tif 000015
【図１５】
0006570792.tif 000016
【図１６】
0006570792.tif 000017
【図１７】
0006570792.tif 000018
【図１８】
0006570792.tif 000019
【図１９】
0006570792.tif 000020
【図２０】
0006570792.tif 000021