(57)【要約】【課題】本発明は、ユーザにストレスを感じさせずに当該ユーザが所望する情報を提供可能な対話型の情報出力装置を提供する。【解決手段】本発明の対話型の情報出力装置１０は、所定のシナリオに基づくユーザとの対話によって取得されるリクエストに基づき、そのリクエストに対応する対応情報を外部記憶装置３０から取得する必要があるか否かを判断し、必要があるときは、当該対応情報を所定の外部記憶装置３０から取得する。また、当該対応情報が取得されるまでの間、シナリオを中断し、中断したシナリオとは別のシナリオに基づいてユーザと対話し、その別のシナリオの終了後、中断したシナリオを再開し、そのシナリオに外部記憶装置３０から取得した対応情報を反映させてユーザ端末２に出力するようになっている。【選択図】図３
2009104409.tif 000002
【特許請求の範囲】
【請求項１】
入力情報を入力するために用いられる入力手段と、前記入力手段により入力された入力情報に対応する出力情報を決定するためのシナリオを複数記憶するシナリオ記憶手段と、当該シナリオ記憶手段に記憶されたいずれかのシナリオに基づいて入力情報に対応する出力情報を決定する出力情報決定手段と、前記出力情報決定手段により決定された出力情報を出力する出力手段と、を備えた対話型の情報出力装置において、
前記入力情報に対応する出力情報を外部記憶装置から取得する必要があるか否かを判断する判断手段と、
必要と判断された場合、前記外部装置から取得する必要があると判断された出力情報（以下、対応情報と称す）を取得する対応情報取得手段と、
前記入力情報が入力されてからその入力情報に対応する前記対応情報が取得されるまでの間、出力中のシナリオを中断し、中断したシナリオとは別のシナリオに基づいて前記出力情報を決定するように前記出力情報決定手段を制御する第一制御手段と、
切替後の前記別のシナリオの終了後、前記中断したシナリオを再開し、再開したシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御する第二制御手段と、
を備えたことを特徴とする特徴とする対話型の情報出力装置。
【請求項２】
前記第二制御手段は、前記中断したシナリオを再開直後に、前記外部記憶装置から取得した対応情報を前記再開したシナリオに反映させて前記出力情報として決定することを特徴とする請求項１に記載の対話型の情報出力装置。
【請求項３】
過去の前記対応情報の取得に要する前記外部記憶装置の取得時間を記憶しておき、
前記第一制御手段は、
前記取得時間が所定の閾値を越えている場合に、前記別のシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御することを特徴とする請求項１、又は２に記載の対話型の情報出力装置。
【請求項４】
前記シナリオ毎に当該シナリオに基づくユーザとの対話に要する時間を予想した予想出力時間を記憶しておき、
前記第一制御手段は、
前記取得時間と前記予想出力時間とがほぼ一致する１の前記別のシナリオが前記出力情報として決定されるように制御することを特徴とする請求項３に記載の対話型の情報出力装置。
【請求項５】
前記別のシナリオの終了後、前記対応情報が取得されていない場合には、
前記第一制御手段は、
更に前記別のシナリオとは異なる他の別のシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御することを特徴とする請求項１乃至４のいずれか一項に記載の対話型の情報出力装置。
【請求項６】
前記対応情報が取得されていない場合に出力される他の別のシナリオは、当該他の別のシナリオより前に出力された別のシナリオよりも前記予想時間が短いことを特徴とする請求項５に記載の対話型の情報出力装置。
【請求項７】
入力情報を入力するために用いられる入力手段と、前記入力手段により入力された入力情報に対応する出力情報を決定するためのシナリオを複数記憶するシナリオ記憶手段と、当該シナリオ記憶手段に記憶されたいずれかのシナリオに基づいて入力情報に対応する出力情報を決定する出力情報決定手段と、前記出力情報決定手段により決定された出力情報を出力する出力手段と、を備えた対話型の情報出力装置のコンピュータを、
前記入力情報に対応する出力情報を外部記憶装置から取得する必要があるか否かを判断し、必要と判断された場合、前記外部装置から取得する必要があると判断された出力情報（以下、対応情報と称す）を取得し、前記入力情報が入力されてからその入力情報に対応する前記対応情報が取得されるまでの間、出力中のシナリオを中断し、中断したシナリオとは別のシナリオに基づいて前記出力情報を決定するように前記出力情報決定手段を制御するとともに、切替後の前記別のシナリオの終了後、前記中断したシナリオを再開し、再開したシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御するように機能させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ユーザの所望する情報を出力する対話型の情報出力装置等の技術分野に関する。
【背景技術】
【０００２】
近年、インターネットを利用することで大概の情報を検索することが可能である。しかしながら、現状はあまりにも多くの情報が存在する結果、なかなか所望する情報を探しだすのが困難である。
【０００３】
このような課題を解決する装置として、ユーザが所望する情報を容易に出力可能な情報出力装置が存在する（特許文献１参照）。この情報出力装置は、ユーザと情報の送受信によって会話しながら、ユーザの所望する情報を検索するための検索条件を特定し、その検索条件に基づいてインターネットを介して外部端末から所定の情報を取得しユーザに出力するようになっている。
【０００４】
【特許文献１】特開２００２−１６３１７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の装置は、外部装置との通信にかかる時間が長い場合に、会話が一時的に中断してしまい、ユーザは外部装置との通信時間の間、単に待っていなければならず、ストレスを感じる場合がある。
【０００６】
本発明は、このような問題の解消を一つの課題とし、その目的は、ユーザにストレスを感じさせずに当該ユーザが所望する情報を提供可能な対話型の情報出力装置等を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の対話型の情報出力装置は、入力情報を入力するために用いられる入力手段と、前記入力手段により入力された入力情報に対応する出力情報を決定するためのシナリオを複数記憶するシナリオ記憶手段と、当該シナリオ記憶手段に記憶されたいずれかのシナリオに基づいて入力情報に対応する出力情報を決定する出力情報決定手段と、前記出力情報決定手段により決定された出力情報を出力する出力手段と、を備えた対話型の情報出力装置において、前記入力情報に対応する出力情報を外部記憶装置から取得する必要があるか否かを判断する判断手段と、必要と判断された場合、前記外部装置から取得する必要があると判断された出力情報（以下、対応情報と称す）を取得する対応情報取得手段と、前記入力情報が入力されてからその入力情報に対応する前記対応情報が取得されるまでの間、出力中のシナリオを中断し、中断したシナリオとは別のシナリオに基づいて前記出力情報を決定するように前記出力情報決定手段を制御する第一制御手段と、切替後の前記別のシナリオの終了後、前記中断したシナリオを再開し、再開したシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御する第二制御手段と、を備えたことを特徴とする。
【０００８】
この発明によれば、シナリオに基づくユーザとの対話を行う最中に、ユーザから入力される入力情報によって外部記憶装置から当該入力情報に対応する対応情報を取得する必要がある場合に、その対応情報が外部記憶装置から取得されるまでの間、出力中のシナリオを中断し、当該中断したシナリオとは別のシナリオが出力され、ユーザとの対話を行うようになっているので、対応情報が取得されるまでの応答待ちによるユーザのストレスを軽減できる。
【０００９】
また、請求項２に記載の対話型の情報出力装置は、請求項１に記載の対話型の情報出力装置において、前記第二制御手段は、前記中断したシナリオを再開直後に、前記外部装置から取得した対応情報を反映させて前記出力手段として決定することを特徴とする。
【００１０】
この発明によれば、外部記憶装置から対応情報が取得されるまでの間、出力中のシナリオが中断されて、別のシナリオが出力されて当該別のシナリオが終了し、中断されたシナリオを再開した直後に外部記憶装置から取得した対応情報が出力されるようになっているので、外部記憶装置から取得した対応情報を迅速にユーザに提供することができる。
【００１１】
また、請求項３に記載の対話型の情報出力装置は、請求項１、又は２に記載の対話型の情報出力装置において、過去の前記対応情報の取得に要する前記外部装置の取得時間を記憶しておき、前記第一制御手段は、前記取得時間が所定の閾値を越えている場合に、前記別のシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御することを特徴とする。
【００１２】
この発明によれば、対応情報が取得されるまでのユーザの応答待ち時間が長くなると予想される場合に、出力中のシナリオが中断され、その中断されたシナリオとは別のシナリオが出力されるようになっているので、応答待ち時間が短いと予想されるときなど必要のないときにまで出力中のシナリオが別のシナリオに切替えられて出力されるのを防止できる。
【００１３】
また、請求項４に記載の対話型の情報出力装置は、請求項３に記載の対話型の情報出力装置において、前記シナリオ毎に当該シナリオに基づくユーザとの対話に要する時間を予想した予想出力時間を記憶しておき、前記第一制御手段は、前記取得時間と前記予想出力時間とがほぼ一致する１の前記別のシナリオが前記出力情報として決定されるように制御することを特徴とする。
【００１４】
この発明によれば、出力中のシナリオから別のシナリオに切替えられる時に、当該別のシナリオに基づくユーザとの対話に要する時間が前記取得時間とほぼ一致するようになっているので、応答待ち時間に適したシナリオをユーザに対して出力させることができる。
【００１５】
また、請求項５に記載の対話型の情報出力装置は、請求項１乃至４のいずれか一項に記載の対話型の情報出力装置において、前記別のシナリオの終了後、前記対応情報が取得されていない場合には、前記第一制御手段は、更に前記別のシナリオとは異なる他の別のシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御することを特徴とする。
【００１６】
この発明によれば、何らかの要因により、外部記憶装置から取得すべき対応情報を取得する取得時間が予想される時間よりも長い場合には、応答待ちの際に出力される別のシナリオとは異なる他の別のシナリオを更に出力するようになっているので、応答待ち時間に対応させて他の別のシナリオをユーザに対して出力させることができ、ユーザに対して前記対応情報が取得されるまでの応答待ちを感じさせないようにすることが可能となる。
【００１７】
また、請求項６に記載の対話型の情報出力装置は、請求項５に記載の対話型の情報出力装置において、前記対応情報が取得されていない場合に出力される他の別のシナリオは、当該他の別のシナリオより前に出力された別のシナリオよりも前記予想時間が短いことを特徴とする。
【００１８】
この発明によれば、応答待ちの際に出力される別のシナリオよりもその後に出力される他の別のシナリオの方が予想時間が短くなっているので、無駄に長い時間を要する他の別のシナリオが出力されるのを防止できる。
【００１９】
また、請求項７に記載の制御プログラムは、入力情報を入力するために用いられる入力手段と、前記入力手段により入力された入力情報に対応する出力情報を決定するためのシナリオを複数記憶するシナリオ記憶手段と、当該シナリオ記憶手段に記憶されたいずれかのシナリオに基づいて入力情報に対応する出力情報を決定する出力情報決定手段と、前記出力情報決定手段により決定された出力情報を出力する出力手段と、を備えた対話型の情報出力装置のコンピュータを、前記入力情報に対応する出力情報を外部記憶装置から取得する必要があるか否かを判断し、必要と判断された場合、前記外部装置から取得する必要があると判断された出力情報（以下、対応情報と称す）を取得し、前記入力情報が入力されてからその入力情報に対応する前記対応情報が取得されるまでの間、出力中のシナリオを中断し、中断したシナリオとは別のシナリオに基づいて前記出力情報を決定するように前記出力情報決定手段を制御するとともに、切替後の前記別のシナリオの終了後、前記中断したシナリオを再開し、再開したシナリオに基づいて出力情報を決定するように前記出力情報決定手段を制御するように機能させることを特徴とする。
【発明の効果】
【００２０】
請求項１の発明によれば、シナリオに基づくユーザとの対話を行う最中に、ユーザから入力される入力情報によって外部記憶装置から当該入力情報に対応する対応情報を取得する必要がある場合に、その対応情報が外部記憶装置から取得されるまでの間、出力中のシナリオを中断し、当該中断したシナリオとは別のシナリオが出力され、ユーザとの対話を行うようになっているので、対応情報が取得されるまでの応答待ちによるユーザのストレスを軽減できる。
【００２１】
また、請求項２の発明によれば、外部記憶装置から対応情報が取得されるまでの間、出力中のシナリオが中断されて、別のシナリオが出力されて当該別のシナリオが終了し、中断されたシナリオを再開した直後に外部記憶装置から取得した対応情報が出力されるようになっているので、当該対応情報を迅速にユーザに提供することができる。
【００２２】
また、請求項３の発明によれば、対応情報が取得されるまでのユーザの応答待ち時間が長くなると予想される場合に、出力中のシナリオが中断され、その中断されたシナリオとは別のシナリオが出力されるようになっているので、応答待ち時間が短いと予想されるときなど必要のないときにまで出力中のシナリオが別のシナリオに切替えられて出力されるのを防止できる。
【００２３】
また、請求項４の発明によれば、出力中のシナリオから別のシナリオに切替えられる時に、当該別のシナリオに基づくユーザとの対話に要する時間が前記取得時間とほぼ一致するようになっているので、応答待ち時間に適したシナリオをユーザに対して出力させることができる。
【００２４】
また、請求項５の発明によれば、何らかの要因により、外部記憶装置から取得すべき対応情報を取得する取得時間が予想される時間よりも長い場合には、応答待ちの際に出力される別のシナリオとは異なる他の別のシナリオを更に出力するようになっているので、応答待ち時間に対応させて他の別のシナリオをユーザに対して出力させることができ、ユーザに対して前記対応情報が取得されるまでの応答待ちを感じさせないようにすることが可能となる。
【００２５】
また、請求項６の発明によれば、応答待ちの際に出力される別のシナリオよりもその後に出力される他の別のシナリオの方が予想時間が短くなっているので、無駄に長い時間を要する他の別のシナリオが出力されるのを防止できる。
【００２６】
また、請求項７の発明によれば、シナリオに基づくユーザとの対話を行う最中に、ユーザから入力される入力情報によって外部記憶装置から当該入力情報に対応する対応情報を取得する必要がある場合に、その対応情報が外部記憶装置から取得されるまでの間、出力中のシナリオを中断し、当該中断したシナリオとは別のシナリオが出力されるようになっているので、対応情報が取得されるまでの応答待ちによるユーザのストレスを軽減できる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して本発明の最良の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、ユーザが所望する情報を出力する対話型の情報出力システムに対して本発明を適用した場合の実施形態である。具体的には、情報出力システムは、ユーザの発声又はテキスト入力によるリクエストに応じた情報を出力するものである。
【００２８】
［１．情報出力システムの構成及び機能概要］
先ず、本実施形態に係る情報出力システムＳの構成及び機能の概要について、図１及び図２を用いて説明する。図１は情報出力システムの一例を示す構成図、図２はユーザ端末の一例を示す構成図である。
【００２９】
図１に示すように、情報出力システムＳは、ユーザ端末２と、情報出力サーバ１０と、外部サーバ３０と、を含んで構成される。このユーザ端末２、情報出力サーバ１０、及び外部サーバ３０は、ネットワークＮＷを介して、例えば、通信プロトコルにＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）等を用いて相互にデータの送受信が可能になっている。なお、ネットワークＮＷは、例えば、ＩＰ（Internet Protocol）網、専用通信回線、移動体通信網（基地局等を含む）、及びゲートウェイ等により構築されている。
【００３０】
ユーザ端末２は、それぞれのユーザが所有する端末装置であり、例えば、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯電話機等を適用することができる。
【００３１】
ユーザ端末２は、図２に示すように、ネットワークＮＷに接続して情報出力サーバ１０との通信状態を制御する通信部６と、各種プログラムやデータ等を記憶する記憶部３と、ユーザが所望する情報を得るためのリクエストを入力する入力部５と、所定の情報を出力する表示部４と、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えるシステム制御部７と、を備え、各部３〜７は相互にシステムバス８を介して接続されている。
【００３２】
入力部５は、例えばキーボードやマウスを備え、当該キーボード、又はマウスを用いて、所定のリクエストをテキスト入力することが可能となっている。
【００３３】
ユーザは、当該ユーザ端末２を用いて情報出力サーバ１０に対して所定のリクエストを入力することで当該情報出力サーバ１０と情報の送受信による対話をしながら当該リクエストに応じた情報を取得可能になっている。
【００３４】
なお、例えば、音声認識プログラムや音声合成プログラムを記憶部３に備え、入力部５としてマイクを備えることで、ユーザは当該マイクを用いて所定のリクエストを音声入力することが可能となる。
【００３５】
情報出力サーバ１０は、所定の端末装置で構成されており、ユーザ端末２及び外部サーバ３０と情報の送受信を行う。この情報出力サーバ１０は、所定のシナリオに基づく対話をユーザ端末２との間で行い、ユーザ端末２からのリクエストに対応する対応情報を外部サーバ３０から取得する必要がある場合に、所定の外部サーバ３０にアクセスし、当該外部サーバ３０からリクエストに応じた対応情報を取得するようになっている。
【００３６】
また、情報出力サーバ１０は、当該外部サーバ３０から対応情報を取得する間、出力中の前記シナリオに基づく対話を中断し、中断したシナリオとは別のシナリオに基づく対話をユーザ端末２との間で行い、当該別のシナリオによるユーザ端末２との対話終了後、前記中断したシナリオを再開し、前記外部サーバ３０から取得した対応情報をユーザ端末２に出力するようになっている。
【００３７】
外部サーバ３０は、様々な情報が記憶されている端末装置であり、情報出力サーバ１０からアクセスされる。この外部サーバ３０は、情報出力サーバ１０から送信されるユーザのリクエストに対応する対応情報を検索し、その検索結果に基づく対応情報を前記情報出力サーバ１０に出力するようになっている。
【００３８】
このように構成された情報出力システムＳは、所定のシナリオに基づいてユーザと対話し、当該ユーザがユーザ端末２を用いて所定のリクエストを入力することにより、情報出力サーバ１０が外部サーバ３０にアクセスして、そのリクエストに対応する対応情報を外部サーバ３０から取得してユーザに提供することができる。よって、ユーザは所望する情報を容易に取得することが可能となっている。また、情報出力サーバ１０は、外部サーバ３０にアクセスして対応情報を取得している間、当該シナリオを中断し、別のシナリオに基いてユーザと対話するようになっているので、ユーザは応答待ちをさほど感じずに済む。よって、対応情報が取得されるまでの応答待ちによるユーザのストレスを軽減できる。
【００３９】
［２．情報出力サーバの具体的な構成及び機能］
次に、情報出力サーバの具体的な構成及び機能について、図３乃至図６を用いて説明する。図３は情報出力サーバの概要構成の一例を示す構成図、図４はデータベースの構成例を示し、図４（ａ）は会話シナリオデータベースの一例を示す図、図４（ｂ）は話題切替用シナリオデータベースの一例を示す図、図５は外部サーバへのアクセス履歴を示すデータベースの一例を示す図、図６は外部サーバへのアクセス履歴を示す他のデータベースの一例を示す図である。
【００４０】
図３に示すように、情報出力サーバ１０は、ネットワークＮＷに接続して、外部サーバ３０やユーザ端末２との通信状態を制御する通信部１１と、各種プログラム及びユーザにより入力される入力情報に対応する出力情報を決定するための複数のシナリオなどのデータを記憶する記憶部（例えば、ハードディスク装置等）１５と、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備えるシステム制御部２０と、を備え、システム制御部２０、通信部１１、及び記憶部１５は、相互にシステムバス２１を介して接続されている。
【００４１】
記憶部１５には、会話シナリオデータベース（以下、「会話シナリオＤＢ５１」と称する。）、話題切替用シナリオデータベース（以下、「話題切替用シナリオＤＢ５２」と称する。）、及び応答時間データベース（以下、「応答時間ＤＢ５３」と称する。）が構築されている。
【００４２】
会話シナリオデータベース５１は、例えば、図４（ａ）に示すように、ＩＤ番号、カテゴリ、及び会話用のシナリオファイルにより構成されている。
【００４３】
カテゴリとは、ユーザにより入力されるリクエストを想定して設定されたものであり、例えば、「ホテル検索」、「レストラン検索」等に分類分けされて構成されている。そして、そのカテゴリ毎にユーザ端末２に出力すべき会話用のシナリオファイル（例えば、「ビジネスホテル検索シナリオ」、「京都レストラン検索シナリオ」等）が対応づけられている。また、当該カテゴリ及び会話用のシナリオファイルはＩＤ番号により管理される。
【００４４】
この会話用のシナリオファイルは、複数のシナリオ文書を有しており、各シナリオ文書をユーザ端末２との対話にしたがって提示するとともにユーザがユーザ端末２を用いてそのシナリオ文書に応答することによって会話を成立させるものである。
【００４５】
話題切替用シナリオデータベース５２は、例えば、図４（ｂ）に示すように、ＩＤ番号、カテゴリ、話題切替用のシナリオファイル、予想会話時間により構成されている。
【００４６】
カテゴリには、ユーザにより入力されるリクエストを想定して設定されたものの他、汎用に類するものを含んで分類分けされて構成されている。そして、そのカテゴリ毎にユーザ端末２に出力すべき話題切替用のシナリオファイルが対応づけられているとともに、その話題切替用のシナリオファイルを実行した場合の予想会話時間が対応づけられている。また、当該カテゴリ、話題切替用のシナリオファイル、及び予想会話時間はＩＤ番号により管理される。
【００４７】
予想会話時間とは、当該話題切替用のシナリオファイルに基づいてユーザ端末２と情報出力サーバ１０との間で対話が行なわれる際の、対話が開始されてから終了するまでの時間を予想したものである。
【００４８】
この話題切替用のシナリオファイルは、一方的に所定の情報をユーザ端末２に提示するシナリオ文書やユーザ端末２との対話にしたがって所定のシナリオ文書を提示し、ユーザがユーザ端末２を用いてそのシナリオ文書に応答することによって会話を成立させる複数のシナリオ文書が含まれる。
【００４９】
応答時間データベース５３は、例えば、図５に示すように、過去の外部サーバ３０へのアクセス状況を示すアクセス情報により構成されている。各アクセス情報は、過去に情報出力サーバ１０がアクセスした外部サーバ３０の場所を示すアドレス（ＵＲＬ）、操作態様を示すメソッド、アクセス時間の平均を示す平均実行時間により構成されている。
【００５０】
このアクセス情報は、情報出力サーバ１０が外部サーバ３０へアクセスした際に登録される。また、平均実行時間は、情報出力サーバ１０がユーザのリクエストに対応する対応情報を取得するために所定の外部サーバ３０にアクセスし、当該対応情報を取得するまでに要する取得時間の平均を算出したものであって、外部サーバ３０によってアクセスされる毎に算出され更新される。また、新たな外部サーバ３０へのアクセスによりその外部サーバ３０へのアクセス情報が追加されるようになっている。
【００５１】
なお、ネットワークＮＷや外部サーバ３０内の問題によりアクセス時間は時間帯ごとに変動する場合があるため、その点を考慮して、図６（ａ）に示すように、アクセス情報はアドレス、メソッドをＩＤ番号により管理し、図６（ｂ）に示すように、平均実行時間を所定の時間帯ごとに区分けしてＩＤ番号により管理するようにしても構わない。さらに、何度も同じ場所にアクセスする場合には、平均実行時間を算出するためにＣＰＵに負荷がかかるため、その負担を軽減すべく、アクセス情報として管理される平均実行時間は、過去のすべてのアクセス時間の平均を算出するのではなく、直近に所定の外部サーバ３０にアクセスしたアクセス時間の平均のみを算出するようにしても構わない。
【００５２】
また、記憶部１５には、所定のオペレーティングシステムの他、ユーザ端末２から送信されるリクエストに対して会話シナリオＤＢ５１に記憶されているシナリオファイルを用いて応答する会話シナリオ制御プログラム、ユーザ端末２に対して話題切替用シナリオＤＢ５２に記憶されているシナリオファイルを用いて応答する話題切替制御プログラム、外部サーバ３０との通信時間を管理するためのタイマ制御プログラム、所定の外部サーバ３０との通信時間を計測する応答時間計測制御プログラム等が記憶されている。
【００５３】
なお、各種プログラム等は、例えば、他のサーバ装置等からネットワークＮＷを介して取得されるようにしても良いし、ＣＤ−ＲＯＭ等のディスクＤＫに記録されてドライブ部１４を介して読み込まれるようにしても良い。
【００５４】
システム制御部２０は、コンピュータとして、演算機能を有するＣＰＵ、ＲＡＭ、及びＲＯＭ等を備えて構成されている。そして、ＣＰＵが、例えば記憶部１５等に記憶された制御プログラムを読み出して実行（制御アプリケーションを起動）することにより、コンピュータが本願の情報出力装置として機能するようになっている。この制御プログラムは、ユーザ端末２から入力されるリクエストに基づいて情報出力サーバ１０のシステム制御部２０が行う処理プログラムである。
【００５５】
なお、本実施形態のシステム制御部２０は、本願の入力手段、出力情報決定手段、出力手段、判断手段、対応情報取得手段、第一制御手段、及び第二制御手段として機能するものである。
【００５６】
具体的には、システム制御部２０は、ユーザ端末２により入力されたリクエストを受け付け、そのリクエストに関連するカテゴリを特定し、会話シナリオＤＢ５１を用いて当該カテゴリに対応する会話用のシナリオファイルを決定し、当該会話用のシナリオファイルに基づくシナリオ文書をユーザ端末２に出力する。また、ユーザ端末２からそのシナリオ文書に基づくリクエストを受信したら、更にそのリクエストに対応する所定のシナリオ文書をユーザ端末２に出力し、会話を成立させる。
【００５７】
また、システム制御部２０は、会話用のシナリオファイルに基づくユーザからのリクエストにより、当該リクエストに対応する対応情報を外部サーバ３０から取得する必要があるか否かを判断する。この判断は、例えば会話用のシナリオファイルに基づくユーザ端末との対話中に、ユーザが所望するリクエストを得るための検索条件が特定されたか否かにより行われる。
【００５８】
また、システム制御部２０は、上記判断により必要と判断された場合に、当該検索条件に基づいて所定の外部サーバ３０にアクセスし当該外部サーバ３０から当該検索条件に対応する所定の対応情報を取得する。
【００５９】
また、システム制御部２０は、外部サーバ３０にアクセスして対応情報を取得している間、出力中の会話用のシナリオファイルに基づくシナリオ文書の出力を中断し、話題切替用シナリオＤＢ５２を用いて、前記リクエストにより特定されたカテゴリに対応する話題切替用のシナリオファイルを取得し、当該話題切替用のシナリオファイルに基づくシナリオ文書をユーザ端末２に出力する。
【００６０】
このようにすれば、外部サーバ３０へアクセスしている間は、会話用のシナリオファイルに基づくシナリオ文書の出力が中断されて、話題切替用のシナリオファイルに基づくシナリオ文書がユーザ端末２に出力されるようになっているので、ユーザに対して応答待ちを感じさせないようにすることができる。よって、所望する情報を取得するまでの応答待ちによるユーザのストレスを軽減できる。
【００６１】
また、システム制御部２０は、前記話題切替用のシナリオファイルの出力終了後、中断していた会話用のシナリオファイルに基づいてユーザ端末２に出力すべきシナリオ文書を決定し、当該シナリオ文書をユーザ端末２に出力する。
【００６２】
なお、前記中断していた会話用のシナリオファイルに基づいて初めにシナリオ文書を出力する際に、前記外部サーバ３０から取得した対応情報を反映させてユーザ端末２に出力するようになっている。
【００６３】
また、ユーザ端末２に話題切替用のシナリオファイルに基づくシナリオ文書を出力する際には、図５に示す応答時間ＤＢ５３を参照してアクセスすべき外部サーバ３０の平均実行時間を取得し、当該平均実行時間が予め規定された所定の閾値を超えるか否かを判断し、この判断の結果、平均実行時間が所定の閾値を超える場合には、当該話題切替用のシナリオファイルを取得して当該話題切替用のシナリオファイルに基づくシナリオ文書をユーザ端末２に出力することが好ましい。なお、この閾値は、ユーザが情報の出力にかかる応答待ちに対してストレスを感じない時間であって、例えば、５秒である。
【００６４】
このように、ユーザが応答待ちによるストレスを感じるか否かを平均実行時間の長さで管理することによってユーザが応答待ちによるストレスを感じると想定した場合のみ、話題切替用のシナリオファイルに基づくシナリオ文書をユーザ端末２に出力するようになっているので、ユーザが応答待ちによるストレスを感じないような短い時間で対応情報を取得できると想定されるような場合にまで話題切替用のシナリオファイルに基づくシナリオ文書がユーザ端末２に出力されるのを防止可能になっている。
【００６５】
また、話題切替用のシナリオファイルは、当該話題切替用シナリオＤＢ５２及び応答時間ＤＢ５３を参照して、カテゴリに対応するシナリオファイルの予想会話時間とアクセスすべき外部サーバ３０における平均実行時間がほぼ一致するシナリオフィアルを取得することが好ましい。さらに好適には、記憶されているシナリオファイルの中から、予想会話時間が平均実行時間を最小限越えている１のシナリオファイルを取得することが好ましい。
【００６６】
このように、話題切替用のシナリオファイルは、予想される外部サーバ３０の平均実行時間とほぼ一致するようになっているので、応答待ち時間に適したシナリオを出力することができる。
【００６７】
また、話題切替用のシナリオファイルの出力処理が終了した際に外部サーバ３０から所定のリクエストに応じた情報を取得していない場合には、直近に取得した話題切替用のシナリオファイルとは異なるシナリオファイルを更に取得し、その異なるシナリオファイルに基づくシナリオ文書をユーザ端末２に出力することが好ましい。
【００６８】
このようにすれば、何らかの要因により、応答待ちを利用してシナリオファイルを出力した後に更に応答待ちが発生するような場合（対応情報の取得が予想した時間よりも長くかかる場合）でも、ユーザ端末２に対して直近に出力したシナリオファイルとは異なるシナリオファイルを再度ユーザ端末２に出力するようになっているので、応答待ちなどの無駄な時間を有効に活用できるとともに、ユーザに応答待ちを感じさせないようにすることが可能である。
【００６９】
なお、この異なるシナリオファイルは、当該直近に出力したシナリオファイルよりも予想会話時間が短いものを選択して出力するようになっている。好ましくは、予想会話時間が半分程度のものを選択することが好ましい。
【００７０】
このようにすれば、無駄に長い話題切替用のシナリオファイルが実行されるのを防止できる。そして、ユーザにリクエストに対応する対応情報を提供することが可能となる。また、応答待ちによる空白の時間をなくすことができるので、ユーザに応答待ちを感じさせないようにすることが可能である。
【００７１】
［３．会話シナリオ制御プログラムを起動した際の動作例］
次に、会話シナリオ制御プログラムを起動した際の動作処理について図７を用いて説明する。図７は会話シナリオファイルに基づくユーザ端末と情報出力サーバの動作例を示すフローチャート図である。なお、当該会話シナリオ制御プログラムは、ユーザからユーザ端末２によってリクエストが入力され、当該リクエストを情報出力サーバ１０が受信した際に起動するものである。
【００７２】
まず、ユーザがユーザ端末２を操作してリクエスト（例えば、京都のレストラン検索を示すカテゴリ）を選択等すると、情報出力サーバ１０は、そのリクエストに対応する会話用のシナリオファイルを決定し、そのシナリオファイルに基づいて所定のシナリオ文書（例えば、「こちらは京都レストラン案内です。どの地域のレストランをお探しですか」）を出力し（ステップＳ１０１）、地域名の入力をユーザに促す。ユーザがその出力に応答することにより、その応答に対して所定のシナリオ文書を出力し（ステップＳ１０３、ステップＳ１０５）、料理名や予算の入力をユーザに促す。なお、ユーザがユーザ端末２を用いてあやふやな応答などをした場合には、地域名や料理、予算を特定するためのシナリオ文書がユーザ端末２に出力される（ステップＳ１０２、ステップＳ１０４、ステップＳ１０６）。
【００７３】
次に、情報出力サーバ１０は、上記対話によって取得したユーザのリクエストに対応する対応情報を外部サーバ３０から取得する必要があると判断し、前記リクエストによって特定された検索条件に合致するレストラン情報が記憶されている外部サーバ３０を特定しその外部サーバ３０に接続し、検索条件に合致するレストラン情報を外部サーバ３０に検索させる（ステップＳ１０７）。
【００７４】
次に、情報出力サーバ１０は、外部サーバ３０によって検索された検索結果を取得し、前記シナリオファイルにその検索結果を反映させてユーザ端末２に出力する。例えば、該当する情報が多数存在する場合には、多数の該当する情報が検索された旨のシナリオ文書を出力する（ステップＳ１０８）。また、該当する情報が少数の場合には、検索された件数を示唆するシナリオ文書を出力する（ステップＳ１０９）。また、該当する情報が検索されなかった場合には、該当なしを示唆するシナリオ文書を出力し（ステップＳ１１０）し、検索条件を変更するためのシナリオ文書を出力し（ステップＳ１１１）、再度外部サーバ３０に検索させる。
【００７５】
次に、検索結果として該当する情報が検索された場合には、予め規定された優先順位の一番高いレストラン情報を示唆するシナリオ文書を出力する（ステップＳ１１２）。
【００７６】
そして、この出力に対してユーザがユーザ端末２を用いて、次の検索結果を示すリクエストが入力された場合には、優先順位の高い順にレストラン情報を示唆するシナリオ文書を出力し、ユーザ端末２から何のリクエストも入力されない場合には、所定のリクエスト（終了するか又は他の検索結果を見るなど）を入力するように促すシナリオ文書を出力する（ステップＳ１１３）。
【００７７】
次に、ユーザ端末２から終了する旨のリクエストが入力されたら、検索案内の出力処理を終了する旨の案内を示すシナリオ文書を出力して（ステップＳ１１４）、処理を終了する。
【００７８】
次に、シナリオ文書をユーザの端末に出力する際の具体的な情報出力サーバの動作例について図８を用いて説明する。図８はシナリオ文書をユーザ端末に出力する際の動作例を示すフローチャート図である。
【００７９】
まず、ユーザ端末を用いてユーザがリクエストに対応するシナリオを選択すると、情報出力サーバ１０は当該シナリオ名を受信する（ステップＳ２０１）。
【００８０】
次に、情報出力サーバ１０は、会話シナリオＤＢ５１を参照して当該受信したシナリオ名に対応する会話用のシナリオファイルを取得し、当該会話用のシナリオファイルから所定のシナリオ文書をユーザ端末２に出力する（ステップＳ２０２）。そして、ユーザがユーザ端末２を用いてそのシナリオ文書に応答しながら、当該会話用のシナリオファイルに沿ったユーザとの会話処理を実行し（ステップＳ２０３）、処理を終了する。
【００８１】
ここで、ユーザとの会話処理に関する情報出力サーバの動作例について図９を用いて説明する。図９はユーザとの会話処理に関する動作例を示すフローチャート図である。
【００８２】
情報出力サーバ１０によって会話用のシナリオファイルが特定され、当該会話用のシナリオファイルに基づく初めのシナリオ文書がユーザ端末２に出力されて、ユーザがユーザ端末２を用いてそのシナリオ文書に対して応答すると、情報出力サーバ１０はユーザ端末２から送信されたユーザのリクエストを受信する（ステップＳ３０１）。
【００８３】
情報出力サーバ１０は、ユーザのリクエストに基づいて、外部サーバ３０にアクセスして検索処理が必要か否かを判断する（ステップＳ３０２）。この判断が肯定されれば、ステップＳ３０３に進み、否定されれば、ステップＳ３０６に進む。なお、この判断が否定された場合には、会話用のシナリオファイルに含まれるシナリオ文書を参照し、ユーザ端末２に出力すべきシナリオ文書を検索しておく。
【００８４】
ステップＳ３０３では、所定の外部サーバ３０を特定し、その外部サーバ３０にアクセスし、ユーザから取得したリクエストに基づいて特定される所定の検索条件を送信する（ステップＳ３０４）。
【００８５】
次に、情報出力サーバ１０は、外部サーバ３０から所定の検索条件により検索された検索結果を受信したか否かを判断し（ステップＳ３０４）、この判断が肯定されれば、ステップＳ３０５に進み、否定されれば、ステップＳ３０６に進む。なお、この判断が否定された場合には、会話用のシナリオファイルに含まれるシナリオ文書を参照し、ユーザ端末２に出力すべきシナリオ文書を検索しておく。
【００８６】
次に、ステップＳ３０５では、会話用のシナリオファイルに含まれるシナリオ文書を参照し、所定のシナリオ文書を検索して、取得した検索結果を当該検索されたシナリオ文書に反映させてユーザ端末２に出力すべきシナリオ文書を構築する。
【００８７】
次に、ステップＳ３０６では、所定のシナリオ文書をユーザ端末２に出力し、処理を終了する。
【００８８】
［４．話題切替プログラムを起動した際の動作例］
次に、話題切替プログラム起動時の情報出力サーバ１０の動作例について図１０を用いて説明する。図１０はユーザの応答待ち時における動作例を示すフローチャート図である。なお、当該話題切替プログラムは、外部サーバ３０との通信時に起動する。
【００８９】
まず、情報出力サーバ１０は、外部サーバ３０にアクセスする際にタイマを起動させる（ステップＳ４０１）。このタイマの起動によって情報出力サーバ１０は、外部サーバ３０との通信（応答）時間を管理する。
【００９０】
また、当該タイマの起動とともに、情報出力サーバ１０は、外部サーバ３０との通信処理を非同期で開始する（ステップＳ４０２）。
【００９１】
次に、情報出力サーバ１０は、応答時間ＤＢ５３を参照して、外部サーバ３０の平均実行時間を取得する（ステップＳ４０３）。この平均実行時間の取得により情報出力サーバ１０は、外部サーバ３０への通信時間を予想可能となる。
【００９２】
次に、情報出力サーバ１０は、平均実行時間が所定の閾値を越えているか否かを判断し（ステップＳ４０４）、この判断が肯定されれば、ステップＳ４０５に進み、否定されれば、処理を終了する。情報出力サーバ１０は、この判断により、ユーザが応答待ちによるストレスを感じるか否かを判断するようになっている。
【００９３】
ステップＳ４０５では、情報出力サーバ１０は、話題切替用シナリオＤＢ５２を参照してカテゴリが一致する話題切替用のシナリオファイルを検索する。
【００９４】
次に、情報出力サーバ１０は、検索結果としての話題切替用のシナリオファイルが１件以上存在するか否かを判断し（ステップＳ４０６）、この判断が肯定されれば、ステップＳ４０８に進み、否定されれば、ステップＳ４０７に進む。
【００９５】
ステップＳ４０７では、話題切替用シナリオＤＢ５２を参照してカテゴリが汎用の話題切替用のシナリオファイルを検索し、ステップＳ４０８に進む。
【００９６】
次に、ステップＳ４０８では、話題切替用のシナリオファイルに対応づけられる予想会話時間がステップＳ４０３にて取得した平均実行時間を超えているシナリオファイルの中からもっとも予想会話時間が最小のシナリオファイルを取得する。
【００９７】
次に、所定の外部サーバ３０との通信が切断されたか否かを判断し（ステップＳ４０９）、この判断が肯定されれば、処理を終了させ、否定されれば、ステップＳ４１０に進む。
【００９８】
ステップＳ４１０では、ステップＳ４０８にて取得したシナリオファイルに基づいてユーザとの会話処理を実行する。具体的には、所定のシナリオ文書をユーザ端末２に出力し、その出力に対するユーザからの応答により再度シナリオ文書を出力したり、一方的に所定のシナリオ文書をユーザ端末２に出力する。
【００９９】
ステップＳ４１１では、情報出力サーバ１０は、所定の時間経過後、再度、外部サーバ３０との通信が切断されたか否かを判断し、この判断が肯定されれば、処理を終了させ、否定されれば、ステップＳ４１２に進む。
【０１００】
ステップＳ４１２では、ユーザ端末２に出力したシナリオファイルの平均実行時間を１／２に設定し、ステップＳ４０５に戻り、設定された平均実行時間を有するシナリオファイルを検索し、処理を続行する。
【０１０１】
［５．タイマプログラム及び応答時間計測プログラムを起動した際の動作例］
次に、タイマプログラム及び応答時間計測プログラムを起動した際の情報出力サーバ１０の動作例について図１１を用いて説明する。図１１は平均実行時間を更新する際の動作例を示すフローチャート図である。なお、当該タイマプログラム及び応答時間計測プログラムは、外部サーバ３０との通信開始とともに起動する。
【０１０２】
まず、外部サーバ３０との通信開始とともに、当該外部サーバ３０との通信開始時の開始時刻を記憶部１５に記憶する（ステップＳ５０１）。
【０１０３】
次に、外部サーバ２０との通信終了（回線の切断）とともに、当該外部サーバ３０との通信終了時の終了時刻を記憶部１５に記憶する（ステップＳ５０２）。
【０１０４】
次に、記憶部１５に記憶されている開始時刻と終了時刻に基づいて外部サーバ３０への応答（通信）時間を算出する（ステップＳ５０３）。
【０１０５】
次に、応答時間ＤＢ５３を参照して、ステップＳ５０３にて算出した応答時間に対応する外部サーバ３０のアドレスと一致するアクセス情報の平均実行時間を取得する（ステップＳ５０４）。
【０１０６】
次に、ステップＳ５０４にて取得した平均実行時間とステップＳ５０３にて算出した応答時間に基づき当該外部サーバ３０への平均実行時間を新たに算出し、当該新たに算出された平均実行時間を応答時間ＤＢ５３に反映させて、処理を終了する。
【０１０７】
以上に説明したように、本願の情報出力装置として機能する情報出力サーバ１０は、所定の会話シナリオファイル（以下、「シナリオ」と称する）に基づくユーザ端末２との対話によって取得されたリクエストを受信し、そのリクエストに対応する対応情報を本願の外部記憶装置として機能する外部サーバ３０から取得する必要があるか否かを判断し、必要があるときは、当該対応情報を所定の外部サーバ３０から取得する。また、情報出力サーバ１０は、所定の外部サーバ３０から前記対応情報が取得されるまでの間、前記シナリオを中断し、中断したシナリオとは別の話題切替用のシナリオファイル（以下、「別のシナリオ」と称する）に基づいてユーザ端末２と対話し、前記別のシナリオの終了後、中断したシナリオを再開し、そのシナリオに外部サーバ３０から取得した対応情報を反映させてユーザ端末２に出力するようになっている。
【０１０８】
この発明によれば、ユーザによってリクエストが入力されてからそのリクエストに対応する対応情報が外部サーバ３０から取得されるまでの間、話題切替用のシナリオファイルに基づくシナリオ文書がユーザ端末２に出力され、ユーザとの対話を行うようになっているので、ユーザは応答待ちをほとんど感じることがない。よって、対応情報を外部サーバ３０から取得する際に生じる応答待ちによるユーザのストレスを軽減できる。
【０１０９】
また、過去の前記対応情報の取得に要する外部サーバ３０の取得時間として機能する平均実行時間を記憶しておき、前記平均実行時間が所定の閾値を越えている場合に、話題切替用のシナリオファイルに基づくシナリオ文書を出力するようになっている。
【０１１０】
この発明によれば、対応情報を取得するまでの応答待ち時間が長くなると予想される場合に、出力中のシナリオが中断されて別のシナリオが出力されるようになっているので、応答待ち時間が短いと予想されるときなど必要のないときにまで出力中のシナリオが別のシナリオに切替えられて出力されるのを防止できる。
【０１１１】
また、前記話題切替用のシナリオファイルに基づくユーザとの対話に要する時間を予想した予想出力時間として機能する予想会話時間を記憶しておき、複数の前記話題切替用のシナリオファイルの中から前記予想実行時間と前記予想会話時間とがほぼ一致する１の話題切替用のシナリオファイルに基づくシナリオ文書をユーザ端末２に出力するようになっている。
【０１１２】
この発明によれば、出力中のシナリオから別のシナリオに切替えられる時に、当該別のシナリオに基づくユーザとの対話に要する時間が前記取得時間とほぼ一致するようになっているので、応答待ち時間に適したシナリオをユーザに対して出力させることができる。
【０１１３】
また、前記話題切替用のシナリオファイルに基づくユーザとの対話が終了した時に、前記対応情報が取得されていない場合には、更に複数の前記話題切替用のシナリオファイルの中から前記出力した別のシナリオとは異なる別のシナリオを出力するようになっている。
【０１１４】
この発明によれば、何らかの要因により、外部サーバ３０から取得すべき対応情報を取得する取得時間が予想される時間よりも長い場合は、応答待ちの際に出力される別のシナリオとは異なる他の別のシナリオを更に出力するようになっているので、応答待ち時間に対応させて他の別のシナリオをユーザに対して出力させることができ、ユーザに対して前記対応情報が取得されるまでの応答待ちを感じさせないようにすることが可能となる。
【０１１５】
また、当該他の別のシナリオは、当該他の別のシナリオより前に出力された別のシナリオよりも予想会話時間が短いことが好ましい。
【０１１６】
この発明によれば、応答待ちの際に出力される別のシナリオよりもその後に出力される他の別のシナリオの方が予想時間が短くなっているので、無駄に長い時間を要する他の別のシナリオが出力されるのを防止できる。
【０１１７】
なお、本実施形態は、本願の対話型の情報出力装置を対話型の情報出力システムＳに適用したものを例示しているが、単にリクエストの入力により当該リクエストに対応した情報を出力可能な情報出力システムに適用することも可能である。
【０１１８】
また、本実施形態では、ユーザが所望する情報を外部サーバ３０に接続して取得するようになっているが、情報出力サーバ１０の記憶部に所定の情報を記憶しておき、その記憶部からユーザが所望する情報を取得するようにしても構わない。
【図面の簡単な説明】
【０１１９】
【図１】情報出力システムの一例を示す構成図である。
【図２】ユーザ端末の一例を示す構成図である。
【図３】情報出力サーバの概要構成の一例を示す構成図である。
【図４】データベースの構成例を示し、図４（ａ）は会話シナリオデータベースの一例を示す図、図４（ｂ）は話題切替用シナリオデータベースの一例を示す図である。
【図５】外部サーバへのアクセス履歴を示すデータベースの一例を示す図である。
【図６】外部サーバへのアクセス履歴を示す他のデータベースの一例を示す図である。
【図７】会話シナリオファイルに基づくユーザ端末と情報出力サーバの動作例を示すフローチャート図である。
【図８】シナリオ文書をユーザ端末に出力する際の動作例を示すフローチャート図である。
【図９】ユーザとの会話処理に関する動作例を示すフローチャート図である。
【図１０】ユーザの応答待ち時における動作例を示すフローチャート図である。
【図１１】平均実行時間を更新する際の動作例を示すフローチャート図である。
【符号の説明】
【０１２０】
Ｓ  情報出力システム
ＮＷ  ネットワーク
２  ユーザ端末
１０  情報出力サーバ
３０  外部サーバ
５１  会話シナリオＤＢ
５２  話題切替用シナリオＤＢ
５３  応答時間ＤＢ
【図１】
2009104409.tif 000003
【図２】
2009104409.tif 000004
【図３】
2009104409.tif 000005
【図４】
2009104409.tif 000006
【図５】
2009104409.tif 000007
【図６】
2009104409.tif 000008
【図７】
2009104409.tif 000009
【図８】
2009104409.tif 000010
【図９】
2009104409.tif 000011
【図１０】
2009104409.tif 000012
【図１１】
2009104409.tif 000013