(57)【要約】【課題】対話シナリオをより柔軟に適応させてコンピュータとの対話を実行可能とすること。【解決手段】対話シナリオ処理システム１において、シーン判定部１１７は、実行対象となるシナリオのデータの要素が、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する。検索要求部１１８は、シーン判定部１１７によってシナリオのデータの要素が未整合要素であると判定された場合に、未整合要素において入出力される情報を補間するためのシナリオのデータの要素である補間要素のデータをサーバ２０から取得する。データ実行部１１４は、実行対象となるシナリオのデータにおける未整合要素に、検索要求部１１８によって取得された補間要素のデータを追加して、実行対象となるシナリオのデータを実行する。【選択図】図３
2019174732.tif 000002
【特許請求の範囲】
【請求項１】
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムであって、
前記情報処理装置は、
実行対象となる前記シナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定手段と、
前記要素判定手段によって前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータを前記サーバから取得するデータ取得手段と、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得手段によって取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行手段と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記データ取得手段は、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差を補間する対話内容が定義された１つまたは複数の前記補間要素のデータを取得することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記データ取得手段は、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の範囲を拡大することにより、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行することを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記データ取得手段は、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報を類似する情報に変更することにより、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行することを特徴とする請求項１から３のいずれか１項に記載の情報処理システム。
【請求項５】
前記データ取得手段は、前記対話処理における対話内容に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報との差を減少させるための情報を追加することを特徴とする請求項１から４のいずれか１項に記載の情報処理システム。
【請求項６】
前記データ取得手段は、対話者個人のプロファイルに基づいて、前記補間要素のデータを取得することを特徴とする請求項１から５のいずれか１項に記載の情報処理システム。
【請求項７】
前記データ取得手段は、複数の対話者のプロファイルに基づいて、前記補間要素のデータを取得することを特徴とする請求項１から６のいずれか１項に記載の情報処理システム。
【請求項８】
前記サーバは、
前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された前記補間要素のデータを検索するデータ検索手段を備えることを特徴とする請求項１から７のいずれか１項に記載の情報処理システム。
【請求項９】
実行対象となる対話処理のシナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定手段と、
前記要素判定手段によって前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータをサーバから取得するデータ取得手段と、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得手段によって取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行手段と、
を備えることを特徴とする情報処理装置。
【請求項１０】
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムにおけるサーバであって、
実行対象となる前記シナリオのデータに含まれる、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索するデータ検索手段と、
前記データ検索手段によって検索された前記シナリオのデータの要素を前記情報処理装置に提供するデータ提供手段と、
を備えることを特徴とするサーバ。
【請求項１１】
対話処理のシナリオのデータを実行する情報処理装置が実行する情報処理方法であって、
実行対象となる対話処理のシナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定ステップと、
前記要素判定ステップにおいて前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータをサーバから取得するデータ取得ステップと、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得ステップにおいて取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行ステップと、
を含むことを特徴とする情報処理方法。
【請求項１２】
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムにおけるサーバが実行する情報処理方法であって、
実行対象となる前記シナリオのデータに含まれる、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索するデータ検索ステップと、
前記データ検索ステップにおいて検索された前記シナリオのデータの要素を前記情報処理装置に提供するデータ提供手段と、
を含むことを特徴とする情報処理方法。
【請求項１３】
コンピュータに、
実行対象となる対話処理のシナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定機能と、
前記要素判定機能によって前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータをサーバから取得するデータ取得機能と、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得機能によって取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行機能と、
を実現させることを特徴とするプログラム。
【請求項１４】
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムにおけるサーバを構成するコンピュータに、
実行対象となる前記シナリオのデータに含まれる、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、前記未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索するデータ検索機能と、
前記データ検索機能によって検索された前記シナリオのデータの要素を前記情報処理装置に提供するデータ提供機能と、
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、サーバ、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータと人間とが対話を行う対話システムが知られている。このような対話システムにおいては、予め用意された対話シナリオをベースとして、1つの対話シナリオまたは複数の対話シナリオの組み合わせにより、対話内容が構築される。そのため、対話のバリエーションを増加させるためには、対話のインプット及びアウトプットを想定して、多くの対話シナリオを予め作成しておく必要がある。
なお、対話シナリオを作成するための技術は、例えば、非特許文献１に開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「初めての音声対話システム構築〜効率アップの開発術〜/株式会社ヒムズのブログ」、［ｏｎｌｉｎｅ］、株式会社ヒムズ、［平成３０年２月１６日検索］、インターネット＜ＵＲＬ：http://hims.jp/blog02.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、対話シナリオを作成するための従来の技術においては、予め用意されている対話シナリオに対し、先行する対話シナリオから想定されていないインプットが入力された場合、次の対話シナリオへの遷移を行うことができず、適切な対話が成立しないこととなる。そのため、次の対話シナリオへの遷移を行うことができない場合には、対話シナリオの作成段階に戻り、対話シナリオのインプット及びアウトプットを対応付けし直す作業等が必要となる。このとき、対話シナリオの作成者には、対話シナリオ間のインプットとアウトプットとの整合を厳密に考慮しながら、対話シナリオを作成することが求められる。
このように、従来の技術においては、コンピュータとの対話を行う場合に、対話シナリオのインターフェースを厳密に整合させることが求められており、対話シナリオを柔軟に適応させて対話を実行することが困難であった。
【０００５】
本発明は、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一態様の情報処理システムは、
対話処理のシナリオのデータを実行する情報処理装置と、前記シナリオのデータの要素となるデータを蓄積するサーバとが通信可能に構成された情報処理システムであって、
前記情報処理装置は、
実行対象となる前記シナリオのデータの要素が、前記シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素であるか否かを判定する要素判定手段と、
前記要素判定手段によって前記シナリオのデータの要素が前記未整合要素であると判定された場合に、前記未整合要素において入出力される情報を補間するための前記シナリオのデータの要素である補間要素のデータを前記サーバから取得するデータ取得手段と、
実行対象となる前記シナリオのデータにおける前記未整合要素に、前記データ取得手段によって取得された前記補間要素のデータを追加して、実行対象となる前記シナリオのデータを実行するデータ実行手段と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明に係る対話シナリオ処理システムのシステム構成を示す図である。
【図２】端末装置及びサーバを構成する情報処理装置のハードウェア構成を示す図である。
【図３】端末装置の機能構成を示すブロック図である。
【図４】シナリオ作成ＧＵＩの一例を示す模式図である。
【図５】サーバの機能構成を示すブロック図である。
【図６】端末装置が実行するシナリオ作成処理の流れを示すフローチャートである。
【図７】端末装置が実行する補間処理の流れを示すフローチャートである。
【図８】端末装置が実行するシナリオ実行処理の流れを示すフローチャートである。
【図９】サーバが実行するシナリオ作成支援処理の流れを示すフローチャートである。
【図１０】サーバが実行するシナリオ実行支援処理の流れを説明するフローチャートである。
【図１１】本実施形態において実行される対話処理のシナリオの一例を示す模式図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を用いて説明する。
［構成］
［システム構成］
図１は、本発明に係る対話シナリオ処理システム１のシステム構成を示す図である。
対話シナリオ処理システム１は、本発明に係る情報処理システムの一実施形態として構成されるものであり、コンピュータ上に生成されたキャラクタが人間と対話する際のシナリオ（対話処理のシナリオ）の実行に際し、対話の流れにおいて隣接して配置された対話シナリオ間のインプットとアウトプットとが厳密に整合していない場合であっても、これらインプットとアウトプットとの不整合を他の対話シナリオ等により補間することで、対話シナリオのデータをより柔軟に適応させて実行可能なシステムである。なお、シナリオのインプット及びアウトプットとは、シナリオの実行において順次受け渡される各種情報を表すパラメータである。
【００１０】
本実施形態において、対話シナリオ処理システム１では、キャラクタの一連の対話のフローを表すシナリオのデータが、シーンのデータを構成単位として構築される。シーンとは、対話のフローを構成する要素であり、各シーンは、対話における対話者の発話や操作あるいはシーンの遷移等に基づいて発生する各種イベントによって構成される。また、イベントが発生すると、そのイベントの内容が定義（ビジュアルプログラム）されたアクションが実行される。
【００１１】
また、対話シナリオ処理システム１において、シナリオのデータが構築される場合、ユーザに対して、後述するように、フロービルダーを含むＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が提供される。本実施形態において、フロービルダーでは、シーンを表すアイコンを配列することで、一連の対話のフローを表すシナリオを構築することができる。
【００１２】
また、シナリオのデータ及びシーンのデータには、シナリオ及びシーンを利用するために必要なパラメータセット、及び、パラメータ値の条件（値、あるいは、値の範囲）を指定することができる。そして、対話シナリオ処理システム１は、対話処理における各種パラメータを管理し、シナリオのデータまたはシーンのデータが実行されることに対応して、各種パラメータ値を更新する。
【００１３】
なお、シナリオのデータ及びシーンのデータに対して指定されるパラメータの種類としては、例えば、タグ、タスク、位置情報、時間、使用回数、センサ情報及び使用履歴等を定義することが可能である。具体的には、タグとして、タイトル、用途、分野（スポーツ、アーティスト、食べ物等）が指定できる。また、タスクとして、検索、計算、あいさつ、ボケる等の実行内容が指定できる。また、位置情報として、所定位置（現在位置または特定の位置等）周辺の情報表示等が指定でき、時間として、朝、昼、夜（即ち、時間帯で対話内容の選択可否が決まる）等が指定できる。また、使用回数として、所定期間あたりの使用回数（一度使用された場合は３ヶ月使用しない等）が指定でき、センサ情報として、加速度センサの検出値等が指定できる。また、使用履歴として、ユーザ毎のシナリオのデータ及びシーンのデータの使用履歴（過去に使用されたか否か等）を指定できる。
【００１４】
図１に示すように、対話シナリオ処理システム１は、複数の端末装置１０と、サーバ２０とを含んで構成され、複数の端末装置１０とサーバ２０とは、ネットワーク３０を介して互いに通信可能に構成されている。
【００１５】
端末装置１０は、クリエータ等のユーザによって使用され、後述するシナリオ作成処理を実行することにより、シナリオのデータを構築するためのＧＵＩ（以下、「シナリオ作成ＧＵＩ」と称する。）を提供する。
また、端末装置１０は、シナリオ作成ＧＵＩにおいて、シナリオを構成するための部品データをサーバ２０から取得し、ユーザが選択可能な形態で提供する。さらに、端末装置１０は、シナリオ作成ＧＵＩにおいて作成されたシナリオのデータをサーバ２０にアップロードする。サーバ２０にアップロードされたシナリオのデータは、他のシナリオのデータを作成する際に、部品データとして再利用することが可能となっている。
【００１６】
本実施形態において、シナリオのデータには、後続のシーンのデータのインプットに対し、アウトプットが整合していない先行するシーン（以下、「未整合シーン」と称する。）のデータを含めることが許容されている。なお、未整合シーンは、例えば、シナリオ作成者が意図することなくシーン間のインプットとアウトプットとの不整合が生じて発生する場合や、シナリオ作成者が対話の流れの概略のみを構成し、シーン間のインプットとアウトプットとの整合を意図的に看過して発生する場合等が想定される。
【００１７】
また、端末装置１０は、コンピュータとの対話者等のユーザによって使用され、後述するシナリオ実行処理を実行することにより、シナリオのデータを実行する。ここで、未整合シーンが含まれるシナリオのデータにおいては、シナリオに含まれるシーンを単に実行した場合、未整合シーンが実行された時点で、後続のシーンに移行することができなくなる。そのため、本実施形態においては、未整合シーンが含まれると判定された場合、端末装置１０は、未整合シーンと、未整合シーンに後続するシーンとの間に補間のためのシーン（以下、「補間シーン」と称する。）を追加し、シーン間の不整合の解消を図る。この結果、未整合シーン及び補間シーンを含めてシーン間のインプット及びアウトプットが整合された状態となり、端末装置１０は、シナリオのデータを実行することが可能となる。
これにより、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００１８】
サーバ２０は、複数の部品データを格納した部品データベース（部品ＤＢ）と、複数のシナリオのデータを格納したシナリオデータベース（シナリオＤＢ）とを備えている。そして、サーバ２０は、後述するシナリオ作成支援処理を実行することにより、端末装置１０においてシナリオ作成ＧＵＩがユーザに提供される際に、部品ＤＢに格納されている部品データ及びシナリオＤＢに格納されているシナリオのデータを端末装置１０に適宜提供する。また、サーバ２０は、後述するシナリオ実行支援処理を実行することにより、端末装置１０において対話処理のシナリオが実行される際に、未整合シーンを補間するための条件（以下、「補間条件」と称する。）に適合する部品データまたはシナリオのデータを検索し、端末装置１０に適宜提供する。補間条件としては、例えば、後続のシーンのデータのインプットに対し、先行する未整合シーンのアウトプットでは不足する情報（例えば、「時間」や「場所」等の情報）を取得可能であることを定義することができる。
【００１９】
［ハードウェア構成］
次に、対話シナリオ処理システム１の端末装置１０及びサーバ２０のハードウェア構成について説明する。
端末装置１０及びサーバ２０は、情報処理装置によって構成され、例えば端末装置１０はＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ２０はサーバコンピュータによって構成することができる。
【００２０】
図２は、端末装置１０及びサーバ２０を構成する情報処理装置８００のハードウェア構成を示す図である。
図２に示すように、情報処理装置８００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１３と、バス８１４と、入力部８１５と、出力部８１６と、記憶部８１７と、通信部８１８と、ドライブ８１９と、を備えている。
【００２１】
ＣＰＵ８１１は、ＲＯＭ８１２に記録されているプログラム、または、記憶部８１７からＲＡＭ８１３にロードされたプログラムに従って各種の処理を実行する。
ＲＡＭ８１３には、ＣＰＵ８１１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００２２】
ＣＰＵ８１１、ＲＯＭ８１２及びＲＡＭ８１３は、バス８１４を介して相互に接続されている。バス８１４には、入力部８１５、出力部８１６、記憶部８１７、通信部８１８及びドライブ８１９が接続されている。
【００２３】
入力部８１５は、各種ボタン等で構成され、指示操作に応じて各種情報を入力する。
出力部８１６は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
記憶部８１７は、ハードディスクあるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各サーバで管理される各種データを記憶する。
通信部８１８は、ネットワークを介して他の装置との間で行う通信を制御する。
【００２４】
ドライブ８１９には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア８２１が適宜装着される。ドライブ８１９によってリムーバブルメディア８２１から読み出されたプログラムは、必要に応じて記憶部８１７にインストールされる。
なお、上記ハードウェア構成は、情報処理装置８００の基本的構成であり、端末装置１０あるいはサーバ２０を構成する場合、適宜、付加的なハードウェアを備えることができる。例えば、端末装置１０を構成する場合、デジタル画像を撮像する撮像部を備えること等が可能である。
【００２５】
［機能的構成］
次に、端末装置１０及びサーバ２０の機能構成について説明する。図３は、端末装置１０の機能構成を示すブロック図である。
図３に示すように、端末装置１０のＣＰＵ８１１がシナリオ作成処理及びシナリオ実行処理を実行することにより、ＣＰＵ８１１において、ＧＵＩ形成部１１１と、ＧＵＩ入力受付部１１２と、データ生成部１１３と、データ実行部１１４と、シナリオデータ登録部１１５と、シナリオデータ取得部１１６と、シーン判定部１１７と、検索要求部１１８と、が機能する。また、端末装置１０の記憶部８１７には、シナリオデータ記憶部１２１と、履歴データ記憶部１２２と、が形成される。
【００２６】
シナリオデータ記憶部１２１には、シナリオ作成ＧＵＩにおいて作成されたシナリオのデータ及び実行対象となるシナリオのデータが記憶される。
履歴データ記憶部１２２には、端末装置１０において実行された対話処理の履歴のデータが記憶される。
ＧＵＩ形成部１１１は、シナリオ作成処理の実行開始と共に、表示画面上にシナリオ作成ＧＵＩを形成する。また、ＧＵＩ形成部１１１は、シナリオ実行処理の実行開始と共に、キャラクタの画像を表示し、対話シナリオのデータに従ってキャラクタの動きを制御する。
【００２７】
図４は、シナリオ作成ＧＵＩの一例を示す模式図である。図４に示すように、シナリオ作成ＧＵＩには、フロービルダー部１３１が含まれている。
フロービルダー部１３１は、シナリオ全体のフローを構成するためのＧＵＩである。フロービルダー部１３１において、ユーザは、シナリオを構成するシーンを表すアイコンを配列することで、目的とする対話の流れの枠組みを有するシナリオを構成することができる。即ち、ユーザは、シナリオをシーンの状態遷移として定義することができる。本実施形態において、フロービルダー部１３１では、シナリオを構成する各種属性のシーンを定義することができる。
【００２８】
なお、本実施形態においては、通常のシーンとして、対話シナリオ処理システム１において予め用意されている特定の内容を表すシーンのデータ（部品データ）を選択可能となっている。例えば、シナリオの作成時に、高い頻度で組み込まれる内容のシーンのデータを部品データとして予め用意しておくことができる。具体的には、キャラクタが挨拶するシーンのデータ等を部品データとして用意しておくことができる。また、上述のように、本実施形態においては、サーバ２０にアップロードされたシナリオのデータも、部品データとして再利用することが可能となっている。
【００２９】
図３に戻り、ＧＵＩ入力受付部１１２は、シナリオ作成ＧＵＩの各部に対するユーザの入力を受け付け、受け付けた入力内容をＧＵＩ形成部１１１、データ生成部１１３、データ実行部１１４、あるいは、シナリオデータ登録部１１５に出力する。例えば、ＧＵＩ入力受付部１１２は、フロービルダー部１３１におけるシーンを表すアイコンの選択を受け付ける。さらに、ＧＵＩ入力受付部１１２は、選択されたアイコンの種類に応じた入力内容の入力を受け付ける。
【００３０】
データ生成部１１３は、シナリオ作成ＧＵＩに対するユーザの入力に応じて、シナリオの作成に関する各種のデータを生成する。例えば、データ生成部１１３は、フロービルダー部１３１においてシーンを表すアイコンが選択された場合、作成中のシナリオのデータに、選択されたアイコンに対応する種類のシーンのデータを追加する。また、データ生成部１１３は、ユーザの入力に応じて、作成中のシナリオのデータに追加する部品データまたはシナリオのデータの要求（作成用データの要求）をサーバ２０に送信し、作成用データの要求に対応してサーバ２０から提供された部品データまたはシナリオのデータを、作成中のシナリオのデータに追加する。
【００３１】
データ実行部１１４は、シナリオ作成ＧＵＩにおいて作成されたシナリオのデータ、または、シナリオデータ取得部１１６によって取得された実行対象のシナリオのデータを実行し、キャラクタによる人間との対話を進行する。本実施形態において、シーンのデータがシナリオのデータに追加される場合、シナリオにおいて隣接するシーン間のインプット及びアウトプットを厳密に整合させることは要求されない。即ち、シーンのデータにおいて、先行するシナリオのデータのアウトプットと、引き続くシナリオのデータのインプットが整合していない場合でも、後述する検索要求部１１８によって、適切なシーンが補間され、シーン間の不整合の解消が図られる。即ち、実行対象のシナリオのデータに未整合シーンが含まれている場合、データ実行部１１４は、検索要求部１１８から入力された部品データまたはシナリオのデータを補間シーンとして未整合シーンに追加する。そして、データ実行部１１４は、未整合シーン及び補間シーンを含めてシーン間のインプット及びアウトプットが整合された状態のシナリオのデータを実行する。
【００３２】
なお、データ実行部１１４は、ユーザの指定に応じて、シナリオ作成ＧＵＩにおいて作成されているシナリオのデータの一部（例えば、シナリオの冒頭のシーンのデータから未整合シーンのデータまで等）を実行することも可能である。
これにより、ユーザは、作成中のシナリオのデータが実行された場合のシミュレーションを行いながら、シナリオのデータを作成することができる。
【００３３】
シナリオデータ登録部１１５は、ユーザの指示に応じて、シナリオ作成ＧＵＩにおいて作成されたシナリオのデータをサーバ２０に送信し、シナリオＤＢに登録する。シナリオＤＢに登録されたシナリオのデータは、他のユーザがシナリオ作成ＧＵＩにおいてシナリオのデータを作成する際に、部品データとして再利用可能となる。
【００３４】
シナリオデータ取得部１１６は、ユーザによって実行が指示されたシナリオのデータ（実行対象のシナリオのデータ）を取得する。例えば、シナリオデータ取得部１１６は、サーバ２０のシナリオＤＢ２２１から、ユーザによって選択されたシナリオのデータを取得する。そして、シナリオデータ取得部１１６は、取得したシナリオのデータをシナリオデータ記憶部１２１に記憶する。
【００３５】
シーン判定部１１７は、実行対象のシナリオのデータに未整合シーンが含まれているか否かの判定を行う。実行対象のシナリオのデータに未整合シーンが含まれていると判定した場合、シーン判定部１１７は、未整合シーンを補間するための補間条件を示す情報を検索要求部１１８に出力する。
【００３６】
検索要求部１１８は、シーン判定部１１７によって、実行対象のシナリオのデータに未整合シーンが含まれていると判定された場合に、シーン判定部１１７から入力された未整合シーンを補間するための補間条件を示す情報に基づいて、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）をサーバ２０に送信する。そして、検索要求部１１８は、補間用データの要求に応答してサーバ２０から提供された部品データまたはシナリオのデータを、データ実行部１１４に出力する。なお、検索要求部１１８は、シーン判定部１１７から未整合シーンを補間するための補間条件を示す情報が入力された場合、補間条件のうち、現在までの対話内容あるいは他の情報（端末の位置情報等）において、既に取得されている情報（「時間」や「場所」等の不足する情報を直接的または間接的に表す情報等）を未整合シーンのアウトプットに追加することで、補間条件を更新する。そして、検索要求部１１８は、更新後の補間条件を示す情報に基づいて、補間用データの要求をサーバ２０に送信する。
【００３７】
次に、サーバ２０の機能構成について説明する。図５は、サーバ２０の機能構成を示すブロック図である。
図５に示すように、サーバ２０のＣＰＵ８１１がシナリオ作成支援処理及びシナリオ実行支援処理を実行することにより、ＣＰＵ８１１において、シナリオ登録受付部２１１と、作成用データ要求取得部２１２と、作成用提供データ取得部２１３と、作成用データ提供部２１４と、補間用データ要求取得部２１５と、補間用データ検索部２１６と、補間用データ提供部２１７と、が機能する。また、サーバ２０の記憶部８１７には、シナリオＤＢ２２１と、部品ＤＢ２２２と、ユーザプロファイル記憶部２２３と、が形成される。
【００３８】
シナリオＤＢ２２１には、キャラクタと人間との種々の対話内容を表すシナリオのデータが記憶されている。部品ＤＢ２２２には、特定の内容を表す種々の部品データが記憶されている。
ここで、シナリオＤＢ２２１に記憶されたシナリオのデータ及び部品ＤＢ２２２に記憶された部品データには、インプット及びアウトプットを表すデータが併せて記憶されている。そのため、端末装置１０から補間用データの要求を取得した場合、サーバ２０においては、補間条件に示される情報（即ち、先行する未整合シーンのアウトプットでは不足する情報）を取得できるシナリオのデータまたは部品データを検索することができる。
【００３９】
なお、本実施形態において、シナリオＤＢ２２１に記憶されたシナリオのデータ及び部品ＤＢ２２２に記憶された部品データに、シナリオ及びシーンを利用するために必要なパラメータセット、及び、パラメータ値の条件（値、あるいは、値の範囲）を設定することが可能である。そして、シナリオのデータ及び部品データが検索される場合、これらのパラメータセット及びパラメータ値の条件をキーとして、シナリオのデータ及び部品データをスコア化し、補間条件に適合するシナリオのデータ及び部品データの中から、スコアが高いものを検索結果として選択することができる。
【００４０】
ユーザプロファイル記憶部２２３は、複数の端末装置１０において対話処理を行ったユーザそれぞれの個人プロファイル（ユーザプロファイル）が記憶されている。ユーザプロファイルには、例えば、年齢、性別、職業、趣味、嗜好性、行動パターンあるいは性格等が含まれ、これらの情報は、対話者個人に特有の対話を行う場合等に、適宜用いることができる。
【００４１】
シナリオ登録受付部２１１は、端末装置１０においてシナリオ作成ＧＵＩによって作成され、シナリオＤＢに登録するために送信されたシナリオのデータを受信し、シナリオＤＢ２２１に登録する。
【００４２】
作成用データ要求取得部２１２は、シナリオ作成ＧＵＩでシナリオのデータに追加される部品データまたはシナリオのデータの要求（作成用データの要求）を端末装置１０から取得する。
【００４３】
作成用提供データ取得部２１３は、作成用データ要求取得部２１２によって取得された作成用データの要求に示される部品データまたはシナリオのデータを部品ＤＢ２２２またはシナリオＤＢ２２１から取得する。
【００４４】
作成用データ提供部２１４は、作成用提供データ取得部２１３によって取得された部品データあるいはシナリオのデータを、作成用データの要求を行った端末装置１０に提供する。
補間用データ要求取得部２１５は、実行対象のシナリオのデータの実行時に、未整合シーンに挿入される部品データまたはシナリオのデータの要求（補間用データの要求）を端末装置１０から取得する。なお、補間用データの要求には、未整合シーンを補間するための補間条件が含まれている。
【００４５】
補間用データ検索部２１６は、補間用データ要求取得部２１５によって取得された補間用データの要求に示される補間条件に基づいて、先行する未整合シーンのアウトプットでは不足する情報を取得できる部品データまたはシナリオのデータを部品ＤＢ２２２またはシナリオＤＢ２２１から検索する。このとき、補間用データ検索部２１６は、パラメータセット及びパラメータ値の条件をキーとして、シナリオのデータ及び部品データをスコア化し、補間条件に適合するシナリオのデータ及び部品データの中から、スコアが高いものを検索結果として選択することができる。このときのスコアの算出方法は、汎用の検索エンジンに用いられるものを採用することや、部品データまたはシナリオのデータを検索するために用意されたものを採用することが可能である。
【００４６】
補間用データ提供部２１７は、補間用データ検索部２１６によって検索されたシナリオのデータまたはシーンのデータを、補間用データの要求を行った端末装置１０に提供する。本実施形態において、補間用データ提供部２１７は、例えば、補間用データ検索部２１６によって検索されたシナリオのデータまたはシーンのデータのうち、スコアが最も高く、補間条件に適合するものを端末装置１０に提供することができる。ただし、補間用データ提供部２１７が、補間用データ検索部２１６によって検索されたシナリオのデータまたはシーンのデータのうち、補間条件に適合するものであって、スコアが上位である複数のものを端末装置１０に提供することとしてもよい。
【００４７】
［動作］
次に、対話シナリオ処理システム１の動作を説明する。初めに、端末装置１０の動作について説明する。
【００４８】
［シナリオ作成処理］
図６は、端末装置１０が実行するシナリオ作成処理の流れを示すフローチャートである。
シナリオ作成処理は、端末装置１０において、シナリオ作成処理の実行を指示する操作が行われることに対応して開始される。
ステップＳ１において、ＧＵＩ形成部１１１は、表示画面上にシナリオ作成ＧＵＩ（図４参照）を形成する。
【００４９】
ステップＳ２において、ＧＵＩ形成部１１１は、ＧＵＩ入力受付部１１２を介してシナリオ作成ＧＵＩへの入力が行われたか否かの判定を行う。
ＧＵＩ入力受付部１１２を介してシナリオ作成ＧＵＩへのシーンの入力（シーンを表すアイコンの選択）が行われた場合、ステップＳ２においてＹＥＳと判定されて、処理はステップＳ３に移行する。一方、ＧＵＩ入力受付部１１２を介してシナリオ作成ＧＵＩへの入力が行われていない場合、ステップＳ２においてＮＯと判定されて、処理はステップＳ１０に移行する。
【００５０】
ステップＳ３において、データ生成部１１３は、入力されたシーンをシナリオのデータに追加する。なお、このとき追加されるシーンは、ユーザによって直接定義されたものや、作成用データの要求をサーバ２０に送信することによりサーバ２０から取得したものが含まれる。
【００５１】
ステップＳ４において、ＧＵＩ形成部１１１は、シナリオ作成ＧＵＩへの入力が作成中のシナリオの実行を指示する操作であるか否かの判定を行う。なお、ステップＳ８においては、作成中のシナリオの一部（１シーンのみ等）または全体の実行の指示が受け付けられる。
シナリオ作成ＧＵＩへの入力が作成中のシナリオの実行を指示する操作である場合、ステップＳ４においてＹＥＳと判定されて、処理はステップＳ５に移行する。一方、シナリオ作成ＧＵＩへの入力が作成中のシナリオの実行を指示する操作でない場合、ステップＳ４においてＮＯと判定されて、処理はステップＳ１０に移行する。
ステップＳ５において、データ実行部１１４は、ステップＳ４において実行が指示されたシナリオ（一部または全体）の実行を開始する。
【００５２】
ステップＳ６において、シーン判定部１１７は、実行対象のシナリオのデータに未整合シーンが含まれているか否かの判定を行う。
実行対象のシナリオのデータに未整合シーンが含まれている場合、ステップＳ６においてＹＥＳと判定されて、処理はステップＳ７に移行する。一方、実行対象のシナリオのデータに未整合シーンが含まれていない場合、ステップＳ６においてＮＯと判定されて、処理はステップＳ８に移行する。
【００５３】
ステップＳ７において、未整合シーンに対する補間シーンを取得するための補間処理（図７参照）が実行される。なお、ステップＳ７において補間処理が実行される場合、シーン判定部１１７から検索要求部１１８に出力された未整合シーンを補間するための補間条件を示す情報が参照される。
ステップＳ８において、データ実行部１１４は、次のシーンの対話処理を実行する。
ステップＳ９において、データ実行部１１４は、実行対象のシナリオの実行が完了したか否かの判定を行う。
実行対象のシナリオの実行が完了していない場合、ステップＳ９においてＮＯと判定されて、処理はステップＳ６に移行する。一方、実行対象のシナリオの実行が完了した場合、ステップＳ９においてＹＥＳと判定されて、処理はステップＳ１０に移行する。
【００５４】
ステップＳ１０において、ＧＵＩ形成部１１１は、シナリオ作成ＧＵＩへの入力がシナリオのデータをサーバ２０のシナリオＤＢに登録する指示のための操作であるか否かの判定を行う。
シナリオ作成ＧＵＩへの入力がシナリオのデータをサーバ２０のシナリオＤＢに登録する指示のための操作である場合、ステップＳ１０においてＹＥＳと判定されて、処理はステップＳ１１に移行する。一方、シナリオ作成ＧＵＩへの入力がシナリオのデータをサーバ２０のシナリオＤＢに登録する指示のための操作でない場合、ステップＳ１０においてＮＯと判定されて、処理はステップＳ１２に移行する。
ステップＳ１１において、シナリオデータ登録部１１５は、シナリオのデータをシナリオＤＢに登録するためにサーバ２０に送信する。
【００５５】
ステップＳ１２において、ＧＵＩ形成部１１１は、シナリオ作成ＧＵＩの終了を指示する操作が行われたか否かの判定を行う。
シナリオ作成ＧＵＩの終了を指示する操作が行われた場合、ステップＳ１２においてＹＥＳと判定されて、シナリオ作成処理は終了となる。一方、シナリオ作成ＧＵＩの終了を指示する操作が行われていない場合、ステップＳ１２においてＮＯと判定されて、処理はステップＳ２に移行する。
【００５６】
次に、端末装置１０が実行する補間処理について説明する。
［補間処理］
図７は、端末装置１０が実行する補間処理の流れを示すフローチャートである。
補間処理は、シナリオ作成処理またはシナリオ実行処理において呼び出されることにより開始される。
【００５７】
ステップＳ２１において、シナリオデータ取得部１１６は、補間処理の対象となる未整合シーンのデータを取得する。
ステップＳ２２において、検索要求部１１８は、シーン判定部１１７から入力された未整合シーンを補間するための補間条件を示す情報に基づいて、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）をサーバ２０に送信し、サーバ２０からの応答に基づいて、補間条件に適合する補間用データが存在するか否かの判定を行う。
補間条件に適合する補間用データが存在しない場合、ステップＳ２２においてＮＯと判定されて、処理はステップＳ２３に移行する。一方、補間条件に適合する補間用データが存在する場合、ステップＳ２２においてＹＥＳと判定されて、処理はステップＳ２５に移行する。
【００５８】
ステップＳ２３において、検索要求部１１８は、補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加できるか否かの判定を行う。
補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加できない場合、ステップＳ２３においてＮＯと判定されて、処理は呼び出し元の処理に戻る。一方、補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加できる場合、ステップＳ２３においてＹＥＳと判定されて、処理はステップＳ２４に移行する。
【００５９】
ステップＳ２４において、検索要求部１１８は、補間条件のうち、現在までの対話内容において、既に取得されている情報を未整合シーンのアウトプットに追加し、補間条件を更新する。
ステップＳ２４の後、処理はステップＳ２２に移行する。
ステップＳ２５において、検索要求部１１８は、サーバ２０から提供された補間シーン（以下、「補間シーンＡ」と称する。）のデータを取得する。
【００６０】
ステップＳ２６において、シーン判定部１１７は、ステップＳ２５で取得された補間シーンＡのアウトプットがステップＳ２１で取得された未整合シーンに続くシーンのインプットに整合するか否かの判定を行う。
ステップＳ２５で取得された補間シーンＡのアウトプットがステップＳ２１で取得された未整合シーンに続くシーンのインプットに整合する場合、ステップＳ２６においてＹＥＳと判定されて、処理はステップＳ２７に移行する。一方、ステップＳ２５で取得された補間シーンＡのアウトプットがステップＳ２１で取得された未整合シーンに続くシーンのインプットに整合しない場合、ステップＳ２６においてＮＯと判定されて、処理はステップＳ２８に移行する。
【００６１】
ステップＳ２７において、検索要求部１１８は、ステップＳ２５で取得された補間シーンＡをステップＳ２１で取得された未整合シーンの補間シーンとして確定し、補間シーンＡのデータをデータ実行部１１４に出力する。ステップＳ２７の後、処理は呼び出し元の処理に戻る。
【００６２】
ステップＳ２８において、検索要求部１１８は、ステップＳ２５で取得された補間シーンＡの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）をサーバ２０に送信し、サーバ２０からの応答に基づいて、ステップＳ２５で取得された補間シーンＡのアウトプットにインプットが整合する補間シーンのデータが存在するか否かの判定を行う。即ち、ステップＳ２８においては、未整合シーンを１つの補間シーンで補間できない場合に、補間シーンをさらに補間することで、未整合シーンを補間できるか否かが判定される。
ステップＳ２５で取得された補間シーンのアウトプットにインプットが整合する補間シーンのデータが存在しない場合、ステップＳ２８においてＮＯと判定されて、処理はステップＳ３４に移行する。一方、ステップＳ２５で取得された補間シーンのアウトプットにインプットが整合する補間シーンのデータが存在する場合、ステップＳ２８においてＹＥＳと判定されて、処理はステップＳ２９に移行する。
【００６３】
ステップＳ２９において、検索要求部１１８は、サーバ２０から提供された補間シーン（以下、「補間シーンＢ」と称する。）のデータを取得する。
ステップＳ３０において、検索要求部１１８は、ステップＳ２５で取得された補間シーンに続く補間シーンとして、ステップＳ２９で取得された補間シーンＢを設定する。
【００６４】
ステップＳ３１において、シーン判定部１１７は、ステップＳ３０で取得された補間シーンＢのアウトプットがステップＳ２１で取得された未整合シーンに続くシーンのインプットに整合するか否かの判定を行う。
ステップＳ３０で取得された補間シーンＢのアウトプットがステップＳ２１で取得された未整合シーンに続くシーンのインプットに整合する場合、ステップＳ３１においてＹＥＳと判定されて、処理はステップＳ３２に移行する。一方、ステップＳ３０で取得された補間シーンＢのアウトプットがステップＳ２１で取得された未整合シーンに続くシーンのインプットに整合しない場合、ステップＳ３１においてＮＯと判定されて、処理はステップＳ３３に移行する。
【００６５】
ステップＳ３２において、検索要求部１１８は、ステップＳ２５で取得された補間シーンＡに続く補間シーンを、ステップＳ２９で取得された補間シーンＢに確定し、補間シーンＡ及び補間シーンＢのデータをデータ実行部１１４に出力する。
ステップＳ３２の後、処理は呼び出し元の処理に戻る。
【００６６】
ステップＳ３３において、検索要求部１１８は、ステップＳ２５で取得された補間シーンＡの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）をサーバ２０に送信し、サーバ２０からの応答に基づいて、ステップＳ２５で取得された補間シーンＡのアウトプットにインプットが整合する他の補間シーンＢのデータが存在するか否かの判定を行う。即ち、ステップＳ２８においては、ステップＳ２９で取得された補間シーンＢ以外に、ステップＳ２５で取得された補間シーンＡのアウトプットにインプットが整合する補間シーンＢが存在するか否かが判定される。
【００６７】
ステップＳ２５で取得された補間シーンＡのアウトプットにインプットが整合する他の補間シーンＢのデータが存在する場合、ステップＳ３３においてＹＥＳと判定されて、処理はステップＳ２９に移行する。一方、ステップＳ２５で取得された補間シーンＡのアウトプットにインプットが整合する他の補間シーンＢのデータが存在しない場合、ステップＳ３３においてＮＯと判定されて、処理はステップＳ３４に移行する。
【００６８】
ステップＳ３４において、検索要求部１１８は、シーン判定部１１７から入力された未整合シーンを補間するための補間条件を示す情報に基づいて、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）をサーバ２０に送信し、サーバ２０からの応答に基づいて、補間条件に適合する他の補間用データＡが存在するか否かの判定を行う。即ち、ステップＳ３４においては、ステップＳ２５で取得された補間シーンＡ以外に、ステップＳ２１で取得された未整合シーンのアウトプットにインプットが整合する補間シーンＡが存在するか否かが判定される。
補間条件に適合する他の補間用データＡが存在する場合、ステップＳ３４においてＹＥＳと判定されて、処理はステップＳ２５に移行する。一方、補間条件に適合する他の補間用データＡが存在しない場合、ステップＳ３４においてＮＯと判定されて、処理は呼び出し元の処理に戻る。
【００６９】
次に、端末装置１０が実行するシナリオ実行処理について説明する。
［シナリオ実行処理］
図８は、端末装置１０が実行するシナリオ実行処理の流れを示すフローチャートである。
シナリオ実行処理は、端末装置１０において、シナリオ実行処理の実行を指示する操作が行われることに対応して開始される。
ステップＳ４１において、シナリオデータ取得部１１６は、実行対象のシナリオのデータにおける開始シーンのデータを取得する。
【００７０】
ステップＳ４２において、データ実行部１１４は、開始シーンに定義されている対話処理を実行する。
ステップＳ４３において、シナリオデータ取得部１１６は、実行対象のシナリオのデータにおける次のシーンのデータを取得する。
ステップＳ４４において、シーン判定部１１７は、次のシーンが未整合シーンであるか否かの判定を行う。
次のシーンが未整合シーンでない場合、ステップＳ４４においてＮＯと判定されて、処理はステップＳ４５に移行する。一方、次のシーンが未整合シーンである場合、ステップＳ４４においてＹＥＳと判定されて、処理はステップＳ４７に移行する。
【００７１】
ステップＳ４５において、シーン判定部１１７は、次のシーンが実行対象のシナリオのデータにおける終了シーンであるか否かの判定を行う。
次のシーンが実行対象のシナリオのデータにおける終了シーンでない場合、ステップＳ４５においてＮＯと判定されて、処理はステップＳ４６に移行する。一方、次のシーンが実行対象のシナリオのデータにおける終了シーンである場合、ステップＳ４５においてＹＥＳと判定されて、シナリオ実行処理は終了となる。
【００７２】
ステップＳ４６において、データ実行部１１４は、次のシーンに定義されている対話処理を実行する。
ステップＳ４７において、データ実行部１１４は、補間処理（図７参照）を実行する。
ステップＳ４８において、データ実行部１１４は、未整合シーン及び補間シーンに定義されている対話処理を実行する。なお、補間処理の結果、適切な補間シーンが補間されず、未整合シーンのアウトプットと後続のシーンのインプットとの整合が取れていない場合、シナリオ実行処理は中断される。
ステップＳ４８の後、処理はステップＳ４３に移行する。
【００７３】
次に、サーバ２０の動作について説明する。
［シナリオ作成支援処理］
図９は、サーバ２０が実行するシナリオ作成支援処理の流れを示すフローチャートである。
シナリオ作成支援処理は、サーバ２０において、シナリオ作成処理の実行を指示する操作が行われることに対応して開始される。
【００７４】
ステップＳ１０１において、作成用データ要求取得部２１２は、シナリオ作成ＧＵＩで選択される部品データを要求するための作成用データの要求を、端末装置１０から取得したか否かの判定を行う。
シナリオ作成ＧＵＩで選択される部品データを要求するための作成用データの要求を、端末装置１０から取得した場合、ステップＳ１０１においてＹＥＳと判定されて、処理はステップＳ１０２に移行する。一方、シナリオ作成ＧＵＩで選択される部品データを要求するための作成用データの要求を、端末装置１０から取得していない場合、ステップＳ１０１においてＮＯと判定されて、処理はステップＳ１０４に移行する。
【００７５】
ステップＳ１０２において、作成用提供データ取得部２１３は、作成用データ要求取得部２１２によって取得されたデータ要求に示される部品データを部品ＤＢ２２２から取得する。このとき、作成用提供データ取得部２１３は、作成用データの要求が部品データとしてのシナリオデータを要求するものである場合、作成用データの要求に示されるシナリオデータをシナリオＤＢ２２１から取得する。
【００７６】
ステップＳ１０３において、作成用データ提供部２１４は、作成用提供データ取得部２１３によって取得された部品データあるいはシナリオのデータを、作成用データの要求を行った端末装置１０に提供する。
ステップＳ１０４において、シナリオ登録受付部２１１は、シナリオＤＢに登録するためのシナリオのデータを受信したか否かの判定を行う。
シナリオＤＢに登録するためにシナリオのデータを受信した場合、ステップＳ１０４においてＹＥＳと判定されて、処理はステップＳ１０５に移行する。一方、シナリオＤＢに登録するためにシナリオのデータを受信していない場合、ステップＳ１０４においてＮＯと判定されて、シナリオ作成支援処理が繰り返される。
【００７７】
ステップＳ１０５において、シナリオ登録受付部２１１は、受信したシナリオのデータをシナリオＤＢ２２１に登録する。なお、本実施形態におけるシナリオのデータには、未整合シーンを含むことが可能である。
ステップＳ１０５の後、シナリオ作成支援処理が繰り返される。
【００７８】
次に、サーバ２０が実行するシナリオ実行支援処理について説明する。
［シナリオ実行支援処理］
図１０は、サーバ２０が実行するシナリオ実行支援処理の流れを説明するフローチャートである。
シナリオ実行支援処理は、サーバ２０において、シナリオ実行支援処理の実行を指示する操作が行われることに対応して開始される。
【００７９】
ステップＳ２０１において、補間用データ要求取得部２１５は、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）を端末装置１０から取得したか否かの判定を行う。
未整合シーンの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）を端末装置１０から取得した場合、ステップＳ２０１においてＹＥＳと判定されて、処理はステップＳ２０２に移行する。一方、未整合シーンの補間に適合する部品データまたはシナリオのデータの要求（補間用データの要求）を端末装置１０から取得していない場合、ステップＳ２０１においてＮＯと判定されて、シナリオ実行支援処理が繰り返される。
【００８０】
ステップＳ２０２において、補間用データ検索部２１６は、補間用データ要求取得部２１５によって取得された補間用データの要求に示される未整合シーンを補間するための補間条件に基づいて、先行する未整合シーンのアウトプットでは不足する情報を取得できる部品データまたはシナリオのデータを部品ＤＢ２２２またはシナリオＤＢ２２１から検索する。このとき、補間用データ検索部２１６は、パラメータセット及びパラメータ値の条件をキーとして、対話処理の現在の状況を示すパラメータ、及び、補間条件に適合するシナリオのデータまたはシーンのデータをスコア化する。
【００８１】
ステップＳ２０３において、補間用データ提供部２１７は、補間条件に適合するシナリオのデータまたはシーンのデータのうち、スコアが最も高いものを取得する。
ステップＳ２０４において、補間用データ提供部２１７は、取得したスコアが最も高いシナリオのデータまたはシーンのデータを、補間用データの要求を行った端末装置１０に提供する。なお、同一の補間条件について補間用データの要求が複数回行われた場合、補間用データ提供部２１７は、補間条件に適合するシナリオのデータまたはシーンのデータのうち、スコアが高いものから順に取得する。これにより、端末装置１０で実行される補間処理において、補間用データの要求が複数回行われた場合に、補間条件に適合するシナリオのデータまたはシーンのデータをスコアの高いものから順に提供することが可能となる。
ステップＳ２０４の後、シナリオ実行支援処理が繰り返される。
【００８２】
このように、本実施形態における対話シナリオ処理システム１では、コンピュータ上に生成されたキャラクタが人間と対話する際のシナリオ（対話処理のシナリオ）の実行に際し、未整合シーンを補間するための補間条件に適合する部品データまたはシナリオのデータをサーバ２０から取得して実行する。
これにより、後続のシーンのデータのインプットに対し、アウトプットが整合していない先行するシーンが存在する場合であっても、インプットとアウトプットとの不整合を補間可能な部品データまたはシナリオのデータをサーバ２０から取得することにより、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００８３】
［シナリオの具体例］
次に、上述のような処理により、対話シナリオ処理システム１において作成されるシナリオの具体例について説明する。
図１１は、本実施形態において実行される対話処理のシナリオの一例を示す模式図である。
図１１において、実行対象のシナリオのデータにおける開始シーンＳＣ１が対話者の発話を受け付けるシーンである場合に、対話者が午前７：００に「お腹が空いた」と発話したとする。そして、開始シーンＳＣ１の次のシーンＳＣ２は、時間の値によって、何が食べたいかの問い合わせを行うシナリオであるとする。この場合、シーンＳＣ２のアウトプットは「食べたいもの（食べ物）」である。ここで、シーンＳＣ２に続くシーンＳＣ３は、場所をインプットとし、地図の表示をアウトプットとするシーンであるものとする。
【００８４】
すると、シーンＳＣ２は、そのアウトプット「食べたいもの（食べ物）」が後続のシーンＳＣ３の入力「場所」と整合しないことから、未整合シーンとなる。このとき、本実施形態に係る対話シナリオ処理システム１では、シーンＳＣ２のアウトプット「食べたいもの（食べ物）」とインプットが適合し、かつ、アウトプットがシーンＳＣ３のインプット「場所」と整合することを補間条件として、補間シーンが検索される。
そして、「食べ物」からお店の「場所」の情報を提供するシナリオＳＣ２ａが存在したとすると、シナリオＳＣ２ａのアウトプットは「場所」であることから、補間条件と適合するものとなる。
すると、対話シナリオ処理システム１では、未整合シーンであるシナリオＳＣ２の次に補間シーンであるシナリオＳＣ２ａを追加して補間することにより、シナリオＳＣ３に遷移可能な状態が構成される。
これにより、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００８５】
［補間条件の具体例］
上述のように、補間条件のうち、現在までの対話内容あるいは他の情報（端末の位置情報等）において、既に取得されている情報（「時間」や「場所」等の不足する情報を直接的または間接的に表す情報等）を未整合シーンのアウトプットに追加することで、補間条件を更新することができる。即ち、未整合シーンと未整合シーンに続くシーンとのインプット及びアウトプットの差が減少するように、既に取得されている情報を未整合シーンのアウトプットに追加することができる。
例えば、未整合シーンよりも前の対話内容において、「渋谷で遊ぶ」という目的が検出されているときに、未整合シーンのアウトプットが「時間」のみであり、未整合シーンに続くシーンのインプットが「場所」、「時間」及び「食べ物」である場合、初期の補間条件として、「場所」及び「食べ物」をインプットとするシーンであることが設定される。
ここで、本実施形態に係る対話シナリオ処理システム１では、未整合シーンよりも前の対話内容で検出された「渋谷で遊ぶ」という目的から、未整合シーンのアウトプットに対し、「場所」の情報として「渋谷」を追加する。
すると、補間条件の内容は、「場所」及び「食べ物」をインプットとするシーンであることから、「食べ物」をインプットとするシーンであることに更新される。
これにより、取得される補間シーンの数を増加させることができ、より適切な補間シーンを選択することが可能となる。
【００８６】
［変形例１］
上述の実施形態では、対話の流れにおいて隣接して配置された対話シナリオ間のインプットとアウトプットとが整合するか否かによって、未整合シーンであるか否か、あるいは、補間条件に適合するか否か等を判定するものとした。
これに対し、対話の流れにおいて隣接して配置された対話シナリオ間のインプットとアウトプットとの整合性を判定する場合に、インプットまたはアウトプットの情報を拡大することにより、整合性の判定基準を緩和することとしてもよい。
例えば、未整合シーンに続くシーンのインプットにおいて、「レストラン」が要求されているときに、未整合シーンのアウトプットが「喫茶店」である場合、検索要求部１１８において、「レストラン」及び「喫茶店」を「飲食店」等の上位概念を表す情報に変更（即ち、情報の範囲を拡大）することにより、インプットとアウトプットとが整合している状態に修正することとしてもよい。また、上位概念を表す情報に変更することの他、検索要求部１１８において、「喫茶店」を「レストラン」に変更する等、意味あるいはカテゴリ等が類似する情報に変更することにより、インプットとアウトプットとが整合している状態に修正することとしてもよい。なお、これら上位概念を表す情報への変更及び類似する情報への変更は、一方のみ、または、両方を行うことができる。
【００８７】
このような処理をインプット及びアウトプットの一部または全部に行った場合、整合していないインプット及びアウトプットの一部または全部が整合することとなり、検索要求部１１８は、その結果に基づいて補間条件を更新し、必要な場合には、サーバ２０に補間用データの要求を送信する。
これにより、未整合シーンを解消させる手段が増加し、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００８８】
［変形例２］
上述の実施形態において、パラメータセット及びパラメータ値の条件をキーとして、シナリオのデータ及び部品データをスコア化し、補間条件に適合するシナリオのデータ及び部品データの中から、スコアが高いものを検索結果として選択する例について説明したが、これに限られない。
即ち、未整合シーンの補間条件が充足されれば、他の条件に基づいて、部品データまたはシナリオのデータを絞り込むこととしてもよい。例えば、検索要求部１１８による補間用シナリオのデータの要求に応じて、サーバ２０に記憶されたユーザの個人プロファイル（ユーザプロファイル）を参照して、部品データまたはシナリオデータを検索することとしてもよい。
【００８９】
さらに、検索要求部１１８による補間用シナリオのデータの要求に応じて、対話を行っているユーザのユーザプロファイルに限らず、複数のユーザにおけるユーザプロファイルの統計を参照して、部品データまたはシナリオデータを検索することとしてもよい。
なお、対話を行っているユーザのユーザプロファイル及び複数のユーザにおけるユーザプロファイルの統計を共に反映させて、部品データまたはシナリオデータを検索することとしてもよい。この場合、対話を行っているユーザのユーザプロファイル及び複数のユーザにおけるユーザプロファイルの統計を重み付けして統合し、統合されたユーザプロファイルを参照して、部品データまたはシナリオデータを検索することが可能である。
【００９０】
［変形例３］
上述の実施形態において、シナリオのデータに、具体的なシーンの指定ではなく、シーンを選択するための条件（以下、「シーン選択条件」と称する。）が設定された抽象シーンのデータを含めることを許容してもよい。シーン選択条件は、例えば、抽象シーンに挿入されるシーン等に求められるパラメータの条件として設定することができる。例えば、シーン選択条件として「時間」が設定された抽象シーンの場合、その抽象シーンに挿入されるシーンとしては、「時間」のパラメータあるいは「時間」に関連するパラメータが指定されたシーンのみが選択可能となる。
【００９１】
この場合、端末装置１０において、シーン判定部１１７が抽象シーンを検出すると、検索要求部１１８が、対話実行時の状況に適合する部品データまたはシナリオのデータ（シーン選択条件に適合し、対話処理の現在の状況（対話の流れ等）に適合するシーンまたはシナリオのデータ）をサーバ２０からリアルタイムに取得して、データ実行部１１４は、抽象シーンに埋め込む形で対話処理を実行する。即ち、シナリオのデータに抽象シーンのデータが含まれている場合、端末装置１０は、対話処理の現在の状況に適合し、かつ、抽象シーンに設定されたシーン選択条件に適合する部品データまたはシナリオのデータをサーバ２０に要求することにより、動的にシーンを選択して、シナリオのデータに基づく対話処理を実行する。
これにより、対話処理のシナリオのバリエーションを容易に増加させることが可能となる。
なお、上述の実施形態における未整合シーンが本変形例における抽象シーンであることも許容され、この場合、シナリオの作成者は、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となると共に、対話処理のシナリオのバリエーションを容易に増加させることが可能となる。
【００９２】
以上のように構成される対話シナリオ処理システム１は、端末装置１０と、サーバ２０とを含む。端末装置１０は、シーン判定部１１７と、検索要求部１１８と、データ実行部１１４と、を備える。
シーン判定部１１７は、実行対象となるシナリオのデータの要素（例えば、部品データまたはシナリオのデータ等）が、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素（例えば、未整合シーン）であるか否かを判定する。
検索要求部１１８は、シーン判定部１１７によってシナリオのデータの要素が未整合要素であると判定された場合に、未整合要素において入出力される情報を補間するためのシナリオのデータの要素である補間要素のデータをサーバ２０から取得する。
データ実行部１１４は、実行対象となるシナリオのデータにおける未整合要素に、検索要求部１１８によって取得された補間要素のデータを追加して、実行対象となるシナリオのデータを実行する。
これにより、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合シーンが存在する場合であっても、入出力される情報を補間可能な補間要素のデータをサーバ２０から取得して、実行対象となるシナリオのデータを実行することができる。
したがって、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００９３】
検索要求部１１８は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差を補間する対話内容が定義された１つまたは複数の補間要素のデータを取得する。
これにより、未整合要素が存在する場合であっても、入出力される情報の差を適切に補間して、実行対象となるシナリオのデータを実行することができる。
【００９４】
検索要求部１１８は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の範囲を拡大することにより、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行する。
これにより、未整合要素を解消させる手段が増加し、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００９５】
検索要求部１１８は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報を類似する情報に変更することにより、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の整合性を高める処理を実行する。
これにより、未整合要素を解消させる手段が増加し、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【００９６】
検索要求部１１８は、対話処理における対話内容に基づいて、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報との差を減少させるための情報を追加する。
これにより、取得される補間要素の数を増加させることができ、より適切な補間要素を選択することが可能となる。
【００９７】
検索要求部１１８は、対話者個人のプロファイルに基づいて、補間要素のデータを取得する。
これにより、対話者個人の特徴に適合したシナリオのデータを取得して実行することができる。
【００９８】
検索要求部１１８は、複数の対話者のプロファイルに基づいて、補間要素のデータを取得する。
これにより、複数のユーザの傾向に適合したシナリオのデータを取得して実行することができる。
【００９９】
サーバ２０は、補間用データ検索部２１６を備える。補間用データ検索部２１６は、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索する。
これにより、未整合要素が存在する場合であっても、入出力される情報の差を適切に補間可能な補間要素のデータを提供することが可能となる。
【０１００】
サーバ２０は、補間用データ検索部２１６と、補間用データ提供部２１７と、を備える。
補間用データ検索部２１６は、実行対象となる前記シナリオのデータに含まれる、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素とにおいて入出力される情報の差に基づいて、未整合要素と、当該未整合要素の前または後の少なくともいずれかの要素との差を補間する対話内容が定義された補間要素のデータを検索する。
補間用データ提供部２１７は、補間用データ検索部２１６によって検索された前記シナリオのデータの要素を前記情報処理装置に提供する。
これにより、シナリオのデータの前または後の少なくともいずれかの要素と入出力される情報が整合しない未整合シーンが存在する場合であっても、入出力される情報を補間可能な補間要素のデータをサーバ２０から提供して、端末装置１０において、実行対象となるシナリオのデータを実行することができる。
したがって、対話シナリオをより柔軟に適応させてコンピュータとの対話を実行することが可能となる。
【０１０１】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、上述の実施形態において、後続のシーンのデータのインプットに対し、アウトプットが整合していない先行するシーンを未整合シーンとして定義したが、これに限られない。即ち、先行するシーンのデータのアウトプットに対し、インプットが整合していない後続のシーンを未整合シーンとして定義することとしてもよい。
また、上述の実施形態において、サーバ２０の構成は一例として示したものであり、対話シナリオ処理システム１全体として、サーバ２０の機能が備えられていれば、サーバ２０の機能を複数のサーバに分割して実装したり、端末装置１０にサーバ２０の機能の一部を実装したりすることができる。
【０１０２】
また、上述の実施形態に記載された例を適宜組み合わせて、本発明を実施することが可能である。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図３及び図５の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が対話シナリオ処理システム１に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図３及び図５の例に限定されない。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【０１０３】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【０１０４】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図２のリムーバブルメディア８２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア８２１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ），Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ（ブルーレイディスク）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図２のＲＯＭ８１２や、図２の記憶部８１７に含まれるＤＲＡＭ等で構成される。
【０１０５】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【符号の説明】
【０１０６】
１  対話シナリオ処理システム、１０  端末装置、２０  サーバ、３０  ネットワーク、１１１  ＧＵＩ形成部、１１２  ＧＵＩ入力受付部、１１３  データ生成部、１１４  データ実行部、１１５  シナリオデータ登録部、１１６  シナリオデータ取得部、１１７  シーン判定部、１１８  検索要求部、１２１  シナリオデータ記憶部、１２２  履歴データ記憶部、１３１  フロービルダー部、２１１  シナリオ登録受付部、２１２  作成用データ要求取得部、２１３  作成用提供データ取得部、２１４  作成用データ提供部、２１５  補間用データ要求取得部、２１６  補間用データ検索部、２１７  補間用データ提供部、２２１  シナリオＤＢ、２２２  部品ＤＢ、２２３  ユーザプロファイル記憶部、８００  情報処理装置、８１１  ＣＰＵ、８１２  ＲＯＭ、８１３  ＲＡＭ、８１４  バス、８１５  入力部、８１６  出力部、８１７  記憶部、８１８  通信部、８１９  ドライブ、８２１  リムーバブルメディア
【図１】
2019174732.tif 000003
【図２】
2019174732.tif 000004
【図３】
2019174732.tif 000005
【図４】
2019174732.tif 000006
【図５】
2019174732.tif 000007
【図６】
2019174732.tif 000008
【図７】
2019174732.tif 000009
【図８】
2019174732.tif 000010
【図９】
2019174732.tif 000011
【図１０】
2019174732.tif 000012
【図１１】
2019174732.tif 000013