(57)【特許請求の範囲】
【請求項１】
サーバコンピュータ、クライアントコンピュータ、およびクエリ応答デバイスを備えたコンピュータシステムであって、 前記サーバコンピュータは、前記クライアントコンピュータと前記クエリ応答デバイスとのペアリングが確立したことによって生成されたペアリング情報を受信し、前記ペアリング情報は、前記クライアントコンピュータと前記クエリ応答デバイスとを関連付けた情報であり、  前記クエリ応答デバイスは、ユーザからの発話を受信し、前記発話に基づいてクエリ電文を生成してサーバコンピュータに送信し、  前記サーバコンピュータは、 前記ペアリング情報に基づいて、前記クエリ応答デバイスとのペアリングが確立されているクライアントコンピュータを特定し、 前記クライアントコンピュータに接続確認要求電文を送信し、 前記クライアントコンピュータは、前記クエリ応答デバイスとの近距離無線通信が確立したことによって、前記クエリ応答デバイスを識別する第１の識別子を取得し、前記サーバコンピュータに前記第１の識別子を含む接続確認応答電文を送信し、 前記サーバコンピュータは、    前記クライアントコンピュータから前記接続確認応答電文を受信し、    前記第１の識別子と、前記ペアリング情報に含まれる第２の識別子とが一致するかを判定することによって、前記近距離無線通信が確立していると判定し、    前記第１の識別子と前記第２の識別子とが一致したと判定したことに応答して、前記クエリ電文に対応する応答電文を生成して前記クエリ応答デバイスに送信し、  前記クエリ応答デバイスは、前記応答電文を出力する  ことを特徴とするコンピュータシステム。
【請求項２】
前記クライアントコンピュータと前記クエリ応答デバイスとの間の接続は、Ｂｌｕｅｔｏｏｔｈ通信規格に従って確立されることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
サーバコンピュータ、クライアントコンピュータ、およびクエリ応答デバイスを備えたコンピュータシステムによって実行される方法であって、 前記サーバコンピュータは、前記クライアントコンピュータと前記クエリ応答デバイスとのペアリングが確立したことによって生成されたペアリング情報を受信するステップであって、前記ペアリング情報は、前記クライアントコンピュータと前記クエリ応答デバイスとを関連付けた情報である、ステップと、  前記クエリ応答デバイスが、ユーザからの発話を受信し、前記発話に基づいてクエリ電文を生成してサーバコンピュータに送信するステップと、  前記サーバコンピュータが、 前記ペアリング情報に基づいて、前記クエリ応答デバイスとのペアリングが確立されているクライアントコンピュータを特定するステップと、    クライアントコンピュータに接続確認要求電文を送信するステップと、 前記クライアントコンピュータが、前記クエリ応答デバイスとの近距離無線通信が確立したことによって、前記クエリ応答デバイスを識別する第１の識別子を取得し、前記サーバコンピュータに前記第１の識別子を含む接続確認応答電文を送信するステップと、 前記サーバコンピュータが、    前記クライアントコンピュータから第1の識別子を含む接続確認応答電文を受信するステップと、    前記第１の識別子と、前記ペアリング情報に含まれる第２の識別子とが一致するかを判定することによって、前記近距離無線通信が確立していると判定するステップと、    前記第１の識別子と前記第２の識別子とが一致したと判定したことに応答して、前記クエリ電文に対応する応答電文を生成し、前記クエリ応答デバイスに送信するステップと、  前記クエリ応答デバイスが、前記応答電文を出力するステップと  を備えたことを特徴とする方法。
【請求項４】
コンピュータ実行可能命令を含むコンピュータプログラムであって、前記コンピュータ実行可能命令は、コンピュータによって実行されると、前記コンピュータに請求項３に記載の方法を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クエリ応答システムおよびクエリ応答方法に関し、特に、セキュリティが確保された方式で、ユーザからクエリに対して応答するクエリ応答システムおよびクエリ応答方法に関する。
【背景技術】
【０００２】
ユーザが発した音声（発話）を認識し、その発話に対応する音声応答を返却するクエリ応答システムが知られている。例えば、Ａｍａｚｏｎ（登録商標）Ｅｃｈｏは、ＡＩ（Artificial Intelligence）スピーカとしてユーザからの発話を分析し、適切な音声応答を返却する。このようなＡＩスピーカは、ユーザからの発話に対してどのように応答するかを学習し、使用を重ねるにつれて適切な応答を返却する。【０００３】
ＡＩスピーカは、特定のサービスを提供するアプリケーションと連携することができる。ＡＩスピーカは、ユーザからの発話における特定のキーワードに基づいて（つまり、ユーザの発話に対して適切な応答を返却する処理を実装する）アプリケーションを選択する。選択されたアプリケーションが発話に応じた応答を返却する処理を実行し、ＡＩスピーカがその応答を音声出力する。【０００４】
上述したアプリケーションと連携する場合、ＡＩスピーカは、当該アプリケーションを実装したコンピュータデバイスと通信する必要がある。通常、このような通信を行う場合、ＷｉＦｉなどの無線通信が利用される。従来技術では、無線通信を行う際には、ユーザは認証コードを発話することが要求される。例えば、ユーザが「テレビをつけて」と発話すると、ＡＩスピーカが「ＰＩＮコードを教えてください」などと応答し、ユーザがＰＩＮコードを発話することによって認証が行われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−０９９６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したＡＩスピーカで口座情報の残高などを含む秘密情報を問い合わせることも考えられる。このようなケースでは、秘密情報をやり取りすることになるので、セキュリティが確保された方式、つまり所定の認証を介して発話応答が行われる必要がある。ＡＩスピーカにおける認証方式として、（１）発話による認証コードを介した認証、（２）発話音声の生体認証、および（３）携帯電話（スマートフォンなど）のコンピュータデバイスと連携した二経路認証などが考えられる。【０００７】
認証コードを介した認証は、ユーザが毎回認証コードを発話する必要が生じ、利便性に欠ける。また、認証コードを音声で発することになるので、認証コードが第三者に漏洩するおそれもある。発話音声の生体認証は、音声に基づいてユーザが正当な者であるかを判定する音声による生体認証方式である。音声による生体認証は、指紋や虹彩に比べ認証精度が劣り、信頼性に欠ける。【０００８】
二経路認証は、オンラインバンキングなどで採用されている認証方式である。この方式では、相互接続された２つのコンピュータデバイスのうちの第１のコンピュータデバイスで取引データを作成し、第２のコンピュータデバイスで承認することで取引が成立する。【０００９】
このような方式は、セキュリティを確保することができるが、ユーザによるコンピュータデバイスを介した操作を必要とし、利便性に欠ける。特に、ＡＩスピーカでは、音声により情報が交換される以上、人間による操作を簡易化することが要求される。このことは、例えば、車を運転しているとき、キッチンで作業しているときなどコンピュータデバイスを介した操作を簡易化することが要求されるときに有益となる。【００１０】
特許文献１は、顧客からの音声に応じて音声により銀行取引を実行する技術を開示している。特許文献１に係る技術では、顧客からの口座番号などの情報、およびサービスコードの音声入力によって本人確認を行っている。また、特許文献１に係る技術では、予め登録されている顧客の声紋と、顧客本人が発声した音声データの声紋とを比較することによって本人確認を行っている。【００１１】
特許文献１に係る技術は、上述した（１）発話による認証コードを介した認証、および（２）発話音声の生体認証を利用するものである。この技術は、上述した課題を何ら解決するものではない。【００１２】
本発明は、このような問題に鑑みてなされたものであり、セキュリティが確保された方式でユーザからのクエリに対する応答を返却するクエリ応答システムを提供することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明に係るクエリ応答システムは、サーバコンピュータおよびクエリ応答デバイスを備えたコンピュータシステムであって、前記クエリ応答デバイスは、入力を受信し、前記入力に基づいてクエリ電文を生成してサーバコンピュータに送信し、前記サーバコンピュータは、クライアントコンピュータに接続確認要求電文を送信し、前記クライアントコンピュータから第１の識別子を含む接続確認応答電文を受信し、前記第１の識別子は、前記クエリ応答デバイスを識別し、前記第１の識別子と記憶された第２の識別子とが一致するかを判定することによって、前記クライアントコンピュータと前記クエリ応答デバイスとの間の接続が確立されていると判定し、前記第１の識別子と前記第２の識別子とが一致したと判定したことに応答して、前記クエリ電文に対応する応答電文を生成して前記クエリ応答デバイスに送信し、前記クエリ応答デバイスは、前記応答電文を出力することを特徴とする。
【発明の効果】
【００１４】
本発明に係るクエリ応答システムによれば、ユーザからのクエリに対する応答を返却する際のセキュリティを確保することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るクエリ応答システムを構成するコンピュータシステム全体の構成の例を示す図である。
【図２】本発明の一実施形態に係るクエリ応答システムを構成するコンピュータシステムの詳細な構成の例を示す図である。
【図３】本発明の第１の実施形態に係るユーザデータテーブルのデータ構造の例を示す図である。
【図４】本発明の第１の実施形態に係る口座データテーブルのデータ構造の例を示す図である。
【図５】本発明の第１の実施形態に係るクエリ応答システムが実行する処理の例を示す図である。
【図６】本発明の第２の実施形態に係る発話に含まれるキーワードと識別対象との関係の例を示す図である。
【図７】本発明の第２の実施形態に係るクエリ応答システムが実行する処理の例を示す図である。
【図８】本発明の第２の実施形態に係るユーザデータテーブルのデータ構造の例を示す図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して、本発明に係るクエリ応答システムを詳細に説明する。本実施形態に係るクエリ応答システムは、ユーザからのクエリに対する応答を介して特定のアプリケーションサービスを提供する。図１は、本発明の一実施形態に係るクエリ応答システムを構成するコンピュータシステム全体の構成の例を示す図である。以下で説明する実施形態では、本発明に係るクエリ応答システムがユーザからの発話（つまり、音声入力）に対して音声の形式で応答を返却する（つまり、音声出力）処理を実行する例として説明する。
【００１７】
クエリ応答システムは、サーバコンピュータ１、クエリ応答デバイス２、およびクライアントコンピュータ３を備える。サーバコンピュータ１と、クエリ応答デバイス２およびクライアントコンピュータ３とは、ネットワーク４（インターネットなどの公衆ネットワーク）を介して接続され、その接続方式は、有線または無線のいずれかであってもよい。クエリ応答デバイス２とクライアントコンピュータ３とは、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの近距離無線通信規格に従った接続方式で接続される。
【００１８】
サーバコンピュータ１は、ユーザにアプリケーションサービスを提供するサーバコンピュータデバイスである。サーバコンピュータ１は、ユーザからのクエリ応答デバイス２を通じたクエリ（発話）に応答して、実装するアプリケーションサービスに対応するアプリケーションプログラムを実行し、発話に応じた応答電文を生成する。応答電文は、クエリ応答デバイス２に送信される。
【００１９】
サーバコンピュータ１は、単一のデバイスで実装されてもよく、または複数のデバイスで実装されてもよい。また、サーバコンピュータ１は、それぞれが異なるサービスを実装する複数のデバイスで実装されてもよい。この場合、クエリ応答デバイス２がユーザからの発話を認識して（例えば、発話における特定のキーワードに基づいて）、発話に対応するアプリケーションサービスを実装するサーバコンピュータ１を選択することになる。
【００２０】
クエリ応答デバイス２は、ユーザからの発話に応答して音声で応答する学習機能付きのスピーカデバイスである。クエリ応答デバイス２は、クライアントコンピュータ３が一定の範囲内にあることを検出することによって、クライアントコンピュータ３と接続する（Ｂｌｕｅｔｏｏｔｈ接続を介して）。そして、ユーザの発話がされるとその音声を認識し、サーバコンピュータ１に、発話に対応するクエリ電文を送信し、クエリ電文に対応する応答電文を受信して音声に変換して音声出力する。つまり、クエリ応答デバイス２は、ユーザからの発話に対応する応答を返却するサーバコンピュータ１を選択し、サーバコンピュータ１からの応答を音声出力する仲介デバイスとして機能する。クエリ応答デバイス２も、単一のデバイスで実装されてもよく、または複数のデバイスで実装されてもよい。
【００２１】
クライアントコンピュータ３は、ユーザの認証に使用されるコンピュータデバイスである。クライアントコンピュータ３は、クエリ応答デバイス２との接続を確立すると、サーバコンピュータ１に接続情報を送信する。クライアントコンピュータ３とクエリ応答デバイス２との間での接続をサーバコンピュータ１が確認することによって、ユーザの認証が行われる。本実施形態では、クライアントコンピュータ３は、スマートフォンを含む携帯電話を想定しているが、そのような機器に限定されず、近距離無線通信機能（特に、Ｂｌｕｅｔｏｏｔｈ接続機能）を有するコンピュータデバイスであれば、特に機器は限定されない。例えば、ユーザが衣服などに身に着けるウェアラブルデバイス（スマートウォッチおよびスマートグラス）などであってもよい。
【００２２】
次に、図２を参照して、本発明の一実施形態に係るクエリ応答システムを構成するコンピュータシステムの詳細な構成の例を説明する。図２に示すように、サーバコンピュータ１は、制御装置１１、メモリ１２、記憶装置１３、および通信装置１４を含み、それらの構成要素がバスを介して相互に結合されている。
【００２３】
制御装置１１は、プロセッサなどで実装され、中央処理装置（ＣＰＵ）、グラフィックプロセシングユニット（ＧＰＵ）、および／または１つもしくは複数のプロセッサコアを含んでもよい。サーバコンピュータ１は、ＤＢＭＳ（Database Management System）を実装し、制御装置１１は、ＯＳ（Operating System）を実装する各プログラム、アプリケーションサービスを実装する各アプリケーションプログラム、およびＤＢＭＳが実装する各プログラムを実行する。メモリ１２は、揮発性記憶領域として機能し、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ、またはキャッシュメモリを含んでもよい。制御装置１１は、上述したプログラムをメモリ１２に読み出して実行する。
【００２４】
記憶装置１３は、サーバコンピュータ１に内蔵された記憶装置であり、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、およびフラッシュドライブを含んでもよい。記憶装置１３は、上述したプログラム、および後述する供給先データテーブルなどのデータベーステーブル１３ａを記憶する。通信装置１４は、例えば、ネットワークインタフェースカード（例えば、ＬＡＮカード）などで実装され、ネットワーク４を介してクエリ応答デバイス２およびクライアントコンピュータ３との間でデータを送受信する。
【００２５】
クエリ応答デバイス２は、制御装置２１、メモリ２２、記憶装置２３、通信装置２４、入力ドライバ２５、マイクロフォン２６、出力ドライバ２７、およびスピーカ２８を含み、それらの構成要素がバスを介して相互に結合されている。
【００２６】
制御装置２１は、サーバコンピュータ１と同様にＣＰＵなどで実装される。制御装置２１は、ＯＳを実装するプログラム、音声信号をデジタルデータに符号化し、デジタルデータを音声信号に復号するコーデックを実装したプログラム（コーデックプログラム）、および学習機能を実装するプログラム（学習プログラム）などをメモリ２２に読み出して実行する。なお、学習機能は、ニューラルネットワークモデルなどの既知の技術を使用して実装されてもよい。
【００２７】
記憶装置２３は、サーバコンピュータ１と同様に、ハードディスクドライブなどを含む内蔵された記憶装置であり、ニューラルネットワークモデルなどに従って蓄積した学習データを記憶する。通信装置２４は、無線ＬＡＮカードおよびＢｌｕｅｔｏｏｔｈアダプタなどを含む。通信装置２４は、サーバコンピュータ１との間でネットワーク４を介してデータを送受信し、クライアントコンピュータ３との間でＢｌｕｅｔｏｏｔｈ接続を介してデータを送受信する。
【００２８】
マイクロフォン（入力装置）２６は、入力ドライバ２５を介して、ユーザによる発話を受信する。受信した発話は、制御装置２１（コーデック）によって符号化されてクエリ電文に変換される。スピーカ（出力装置）２８は、サーバコンピュータ１から受信した応答電文から変換された音声信号を音声出力する。応答電文は、制御装置２１（コーデック）によって復号されて、出力ドライバ２７を介してスピーカ２８に送信される。
【００２９】
クライアントコンピュータ３は、図示しない通信装置および制御装置を有する。通信装置は、サーバコンピュータ１との間でネットワーク４を介してデータを送受信し、クライアントコンピュータ３との間でＢｌｕｅｔｏｏｔｈ接続を介してデータを送受信する。制御装置は、ＯＳおよびサーバコンピュータ１が実行するアプリケーションプログラムに対応するクライアントアプリケーションプログラムを実行する。なお、クライアントアプリケーションプログラムは、サーバコンピュータ１から事前にダウンロードされている。
【００３０】
次に、図３を参照して、本発明の一実施形態に係るユーザデータテーブル３００のデータ構造の例を説明する。本実施形態では、サーバコンピュータ１が提供するアプリケーションサービスがインターネットバンキングサービスであるものとして説明する。そのことを前提に、ユーザからの発話が自身の口座の残高に関する問い合わせに関するものであり、それに対する応答が残高に関するものである。ユーザデータテーブル３００は、サーバコンピュータ１の記憶装置１３に記憶されたデータベーステーブル１３ａのうち、残高に関する問い合わせに対するユーザの認証に使用されるデータテーブルである。
【００３１】
図３に示すように、ユーザデータテーブル３００は、データ項目「ユーザＩＤ」、「クライアントコンピュータ通知ＩＤ」、「利用デバイス名」、および「有効フラグ」を含む。各データレコードは、ユーザごとに生成される。ユーザＩＤは、サーバコンピュータ１が実装するアプリケーションサービス（以下、「アプリケーションサービス」）においてユーザごとに一意な識別子が設定される。クライアントコンピュータ通知ＩＤは、サーバコンピュータ１がクライアントコンピュータに、後述する接続確認要求電文を送信するための送信先を識別するＩＤである。利用デバイス名は、対象のユーザが使用するクエリ応答デバイス２の名称（例えば、型式番号など）が設定される。つまり、対象のユーザと使用するクエリ応答デバイス２とが関連付けて記憶される。有効フラグは、残高に関する問い合わせに対して応答するサービスが有効であるか否かを示す値が設定され、例えば、「１:有効」または「２：無効」である。
【００３２】
ユーザデータテーブル３００における対象のユーザのデータレコードは、例えば、対象のユーザが、アプリケーションサービスに登録するときに生成（追加）される。ユーザがアプリケーションサービスに登録する際に、一意なユーザＩＤが割り当てられ、所定の認証（パスワードなど）でログインする。このときに割り当てられるユーザＩＤが、ユーザデータテーブル３００の対象のデータレコードに設定される。
【００３３】
また、後述する接続確認を行うための接続確認要求電文は、例えば、サーバコンピュータ１が実装するＯＳのプッシュ通知サービスを利用して送信される。プッシュ通知サービスは、例えば、クライアントコンピュータ３がｉＯＳ（登録商標）を実装している場合「ＡＰＮ（Apple Push Notification Service)」を利用し、Ａｎｄｒｏｉｄ（登録商標）を実装している場合「ＧＣＭ（Google Cloud Messaging）」を利用する。よって、ユーザが上記プッシュ通知サービスに登録する際に割り当てられたＩＤが、ユーザデータテーブル３００の対象のデータレコードに設定される（クライアントコンピュータ通知ＩＤ）。
【００３４】
なお、上述したプッシュ通知サービスは例示的なものにすぎず、上記例に限定されない。サーバコンピュータ１がクライアントコンピュータ３に接続確認要求電文を送信することができる任意の方式が利用されてもよい。
【００３５】
Ｂｌｕｅｔｏｏｔｈ接続では、２つのデバイス（Ｂｌｕｅｔｏｏｔｈ接続対応デバイス）との間でペアリングを行う必要がある。２つのデバイス間が通信可能な範囲内にあると、相互に他方のデバイスの存在を検出し、対象のデバイス名を認識する。その後、いずれかのデバイスでＰＩＮコードを入力すると、ペアリングが完了し、双方の機器にペアリング情報が記憶される（他方の機器のデバイス名など）する。クライアントコンピュータ３とクエリ応答デバイス２との間では事前にペアリングを行い、そのクエリ応答デバイス２のデバイス名がユーザデータテーブル３００の利用デバイス名に設定される（つまり、クライアントコンピュータ３とクエリ応答デバイス２とのペアリング情報がユーザデータテーブル３００に登録される）。
【００３６】
Ｂｌｕｅｔｏｏｔｈ接続では、２つのデバイスがＩＥＥＥ（Institute of Electrical and Electronics Engineers）８０２．１５．１で規定された２．４ＧＨｚ帯の電波を放出し、数メートルから数１０メートルの範囲で通信を行う。つまり、クライアントコンピュータ３とクエリ応答デバイス２との間の通信は、双方が数メートルから数１０メートルの範囲内にあるときにのみ有効となる。
【００３７】
次に、図４を参照して、本発明の一実施形態に係る口座データテーブル４００のデータ構造の例を説明する。口座データテーブル４００は、上述したサービスを実装するために必要な、サーバコンピュータ１の記憶装置１３に記憶されたデータベーステーブル１３ａのうち、ユーザごとの口座情報を記憶したデータテーブルである。
【００３８】
図４に示すように、口座データテーブル４００は、データ項目「ユーザＩＤ」、「口座番号」、「金融機関コード」、「支店コード」、「口座種別」、「名義人」、「残高」、および「限度額」を含む。各データレコードは、上述したインターネットバンキングサービスを利用するユーザごとに生成される。つまり、本実施形態に係るアプリケーションサービスを利用するユーザごとに、図３で説明したユーザデータテーブル３００のデータレコードと対で生成される。限度額は、後述する残高に関する問い合わせに対して応答を制限する場合に所定の値が設定される。
【００３９】
＜第１の実施形態＞
次に、図５を参照して、本発明の第１の実施形態に係るクエリ応答システムが実行する処理を説明する。この処理では、ユーザＡがクエリ応答システムに自身の残高を問い合わせる発話をし、それに対して残高に関する応答が音声で返却される。ユーザＡの口座情報は、口座データテーブル４００に登録されているものとする。
【００４０】
また、クライアントコンピュータ３とクエリ応答デバイス２との間の通信は、Ｂｌｕｅｔｏｏｔｈ接続により通信が行われ、双方の間で既にペアリングが行われ、ユーザＡのユーザＩＤ、利用デバイス名、およびクライアントコンピュータ通知ＩＤがユーザデータテーブル３００に登録されているものとする。このような状態で、クライアントコンピュータ３が音声対応デバイスとＢｌｕｅｔｏｏｔｈ接続が可能な範囲に入ると、自動的に接続状態となる。
【００４１】
図５で説明する処理におけるサーバコンピュータ１によって実行される処理は、サーバコンピュータ１の制御装置１１がアプリケーションプログラムを実行することによって実装される。また、クエリ応答デバイス２によって実行される処理は、クエリ応答デバイス２の制御装置２１がコーデックプログラムおよび学習プログラムなどを実行することによって実装される。さらに、クライアントコンピュータ３によって実行される処理は、クライアントコンピュータ３の制御装置がクライアントアプリケーションプログラムを実行することによって実装される。
【００４２】
まず、ステップＳ５０１では、クエリ応答デバイス２の通信装置２４は、クライアントコンピュータ３の存在を検出する（または、クライアントコンピュータ３がクエリ応答デバイス２の存在を検出する）。この検出の処理は、クライアントコンピュータ３が放出する電波をクエリ応答デバイス２が検出することによって実行される。ステップＳ５０１でクエリ応答デバイス２がクライアントコンピュータ３の存在を検出すると、両者間での接続が確立し、クライアントコンピュータ３は、クエリ応答デバイス２のデバイス名を認識することができる。
【００４３】
次に、ユーザＡは、クエリ応答デバイス２に対し、例えば、「口座の残高を教えてください」と発話する（ステップＳ５０２）。次に、クエリ応答デバイス２のマイクロフォン２６が、ステップＳ５０２における発話を受信し音声信号に変換すると、制御装置２１に送信する。制御装置２１は、音声信号をデジタルデータに変換し、デジタルデータに含まれるキーワードを分析する（つまり、ユーザＡの発話を分析する）（ステップＳ５０３）。キーワードの分析は、デジタルデータに変換された発話におけるキーワードを抽出することによって実行される。キーワード抽出は、例えば、ＴＦ−ＩＤＦ（Term Frequency-Inverse Document Frequency）およびＳＶＭ（Support Vector Machine）などの既知の特徴語抽出アルゴリズムを使用して実行される。
【００４４】
この分析の結果、ニューラルネットワークなどの学習データに従って、分析したキーワードに対応するアプリケーションサービスを特定する（ステップＳ５０４）。本実施形態では、例えば、学習データには、「残高」などのキーワードとインターネットバンキングサービスとが関連付けられたデータが記憶されている。ユーザからの発話にキーワード「残高」が含まれる場合に、制御装置２１は、インターネットバンキングサービスを提供するサーバコンピュータ１を特定する。
【００４５】
次に、制御装置２１は、クエリ電文を生成し、通信装置２４がステップＳ５０４で特定したサーバコンピュータ１に送信する（ステップＳ５０５）。クエリ電文は、少なくともステップＳ５０１で取得したクライアントコンピュータ３のユーザＡによる要求の種別を示す情報を含む。要求の種別は、所定のキーワードと関連付けて学習データに記憶されており、例えば、キーワード「残高」と、残高に関する問い合わせ要求とが関連付けられている。
【００４６】
次に、サーバコンピュータ１の通信装置１４が、ステップＳ５０５で送信されたクエリ電文を受信すると、制御装置１１は、ユーザデータテーブル３００から対象のデータレコードを取得する（ステップＳ５０６）。そして、制御装置１１は、クライアントコンピュータ３とクエリ応答デバイス２との間で接続が確立されているかを確認するための接続確認要求電文を生成する。そして、通信装置１４は、ステップＳ５０６で取得したユーザデータレコードに含まれるクライアントコンピュータ通知ＩＤを宛先（つまり、クライアントコンピュータ３）として接続確認要求電文を送信する（ステップＳ５０７）。この接続確認要求電文は、上述したプッシュ通知サービスなどを利用して送信される。
【００４７】
次に、クライアントコンピュータ３がステップＳ５０７で送信された接続確認要求電文を受信すると、接続確認応答電文を生成し、サーバコンピュータ１に送信する（ステップＳ５０８）。接続確認応答電文は、少なくともステップＳ５０１で取得したクエリ応答デバイス２のデバイス名を含む。
【００４８】
ステップＳ５０８でクライアントコンピュータ３が接続確認要求電文を受信した時点で、クライアントコンピュータ３上では、クライアントアプリケーションプログラムが実行されている必要がある。クライアントアプリケーションプログラムが実行されていない場合、クライアントコンピュータ３のＯＳがクライアントアプリケーションプログラムを起動してもよい。クライアントアプリケーションプログラムを起動する際は、接続確認要求電文のポート番号を参照することによって、対象のアプリケーションを特定することができる（ポート番号は、サーバコンピュータ１のアプリケーションプログラムに割り当てられたポート番号と関連付けられる）。
【００４９】
次に、サーバコンピュータ１の通信装置１４が、ステップＳ５０８で送信された接続確認応答電文を受信すると、制御装置１１は、接続確認応答電文に含まれるデバイス名（第１の識別子）が、ステップＳ５０６で取得したユーザデータテーブルに含まれる利用デバイス名（第２の識別子）と一致するかを判定する（ステップＳ５０９）。この処理の際に、ユーザデータレコードに含まれる利用デバイス名が接続確認応答電文に含まれるデバイス名と一致する場合、クライアントコンピュータ３と対象のデバイス名に対応するクエリ応答デバイス２との間で接続が確立されていることを確認することができる。つまり、ユーザＡからの発話が、対象のクエリ応答デバイス２と接続されたクライアントコンピュータ３を有するユーザであることを確認することができ、ひいてはユーザＡの本人確認を行うことができる。
【００５０】
なお、ステップＳ５０９の処理において、クエリ応答デバイス２とクライアントコンピュータ３との間の接続が確認できなかった場合、サーバコンピュータ１が対象のユーザに接続を促す旨の通知を行ってもよい。具体的には、サーバコンピュータ１の通信装置１４が、予め定められたメッセージをクエリ応答デバイス２および／またはクライアントコンピュータ３に送信する。クエリ応答デバイス２および／またはクライアントコンピュータ３は、送信されたメッセージを音声または視覚的表示などの所定の形式で出力する。
【００５１】
次に、制御装置１１は、ステップＳ５０５で送信されたクエリ電文に含まれる要求の種別に従って処理を実行する。本実施形態では、要求の種別が残高に関する問い合わせ要求であるので、制御装置１１は、ステップＳ５０６で取得したデータレコードに含まれるユーザＩＤに基づいて、口座データテーブル４００から対象のデータレコードを取得する（ステップＳ５１０）。データレコードを取得すると、制御装置１１は、取得したデータレコードに基づいて、クエリ応答電文を生成し、通信装置１４がクエリ応答デバイス２に送信する（ステップＳ５１１）。クエリ応答電文は、少なくともステップＳ５１０で取得したデータレコードに含まれる残高を含む。
【００５２】
次に、クエリ応答デバイス２の通信装置２４が、ステップＳ５１１で送信されたクエリ応答電文を受信すると、制御装置２１は、クエリ応答電文を音声信号に変換する（ステップＳ５１２）。変換された音声信号は、出力ドライバ２７を介してスピーカ２８を通じて音声出力される（ステップＳ５１３）。例えば、音声出力は、「残高は１，０２９，３８９円です。」などである。
【００５３】
ステップＳ５０９でデバイス名が一致しなかった場合、つまりユーザＡの本人確認ができず、その旨を通知するメッセージを通知する場合は通知してから所定の時間が経過した後、ステップＳ５１０の処理は実行されずにエラー応答が返却される。この場合、ステップＳ５１１では、本人確認ができなかったことを示すエラー応答電文が生成され、ステップＳ５１２およびステップＳ５１３の処理を通じてその旨が音声出力される。例えば、音声出力は、「本人確認ができなかったのでお答えできません。」などである。
【００５４】
上述したエラー応答は、ステップＳ５１０で取得した口座データテーブル４００のデータレコードに含まれる残高が限度額を上回る場合にも適用されてもよい。これによって、一定の額を上回る残高をユーザが有している場合に、問い合わせに対する回答を制限することができる。
【００５５】
サーバコンピュータ１は、ステップＳ５０５の処理以降のいずれか（つまり、ユーザＡから残高に関する問い合わせがあった後のいずれか）で、ユーザＡから残高に関する問い合わせがあったことを示す通知をクライアントコンピュータ３に送信してもよい（例えば、電子メールの形式で）。この処理によって、第三者による残高に関する問い合わせに関する発話の試みが行われたことをユーザＡが確認することができる。
【００５６】
また、ステップＳ５０９の処理以降のいずれか（つまり、ユーザＡの本人確認に成功した後のいずれか）で、ユーザＡから残高に関する問い合わせに対し応答したことを示す通知をクライアントコンピュータ３に送信してもよい。さらに、ステップＳ５０９の処理において本人確認に失敗した場合、その処理以降のいずれかで、ユーザＡから残高に関する問い合わせに対し本人確認ができなかったことを示す通知をクライアントコンピュータ３に送信してもよい。いずれの処理によっても、第三者による残高に関する問い合わせに対する本人確認が成功／失敗したことをユーザＡが確認することができる。
【００５７】
なお、ユーザＡは、クライアントコンピュータ３の操作を介して上述した残高に関する問い合わせの機能を無効化することができる。この無効化のために、クライアントコンピュータ３の操作を介してユーザデータテーブル３００の対象のデータレコードに含まれる有効フラグが「２：無効」に更新される。この処理によって、制御装置１１は、上述したステップＳ５０８の処理以降において有効フラグに設定された値を設定することによって、クエリ応答デバイス２にエラー応答を返却することができる。
【００５８】
以上のように、本発明に第１の実施形態に係るクエリ応答システムを説明した。本実施形態に係るクエリ応答システムによると、ＰＩＮコードなどの発話も入力も必要とせずにユーザ認証を行うことができ、残高などの秘密情報の交換においてセキュリティを確保することができる。また、クライアントコンピュータ３とクエリ応答デバイス２との間でのＢｌｕｅｔｏｏｔｈ接続を介して応答が返却されるので、少なくともクライアントコンピュータ３がクエリ応答デバイス２から一定の範囲内にない応答が返却されない。よって、例えば、第三者のコンピュータデバイスがネットワークを介した遠隔操作などによって残高を盗聴するような行為を防止することができる。
【００５９】
また、クライアントコンピュータ３とクエリ応答デバイス２との間でのＢｌｕｅｔｏｏｔｈ接続が条件となることから、一方のデバイスが盗難などにあっても、双方のデバイスが揃わない限り、第三者による盗聴を防止することができる。
【００６０】
さらに、クライアントコンピュータ３をロック機能付きのコンピュータデバイスで実装することによってさらにセキュリティを高めることができる。一方で、クライアントコンピュータ３をウェアラブルデバイスで実装する場合、ユーザによる操作を必要とせずに本発明に係るクエリ応答システムを利用することができる。ウェアラブルデバイスでは、ユーザがデバイスを装着している場合はロックが解除されている状態であるので（内部センサがユーザとデバイスとの密着状態を検出することによって）、ユーザがロックを解除する操作を必要としないからである。
【００６１】
なお、第１の実施形態では、クライアントコンピュータ３とクエリ応答デバイス２との間の接続がＢｌｕｅｔｏｏｔｈ通信規格に従って確立されるものとして説明したが、そのような形式に限定されない。Ｂｌｕｅｔｏｏｔｈと同様のペアリングに相当する手順を行ういずれかの通信方式を採用してもよい。この場合、最初のデバイス間接続時に双方で他方のデバイスを識別する情報を保持し、その後の通信は、双方のデバイスが所定の範囲内にあるときに秘密鍵によって通信が暗号化されることになる。以下の第２の実施形態でも同様である。
【００６２】
また、Ｂｌｕｅｔｏｏｔｈ以外の通信方式を利用する場合でも、本実施形態に係るクエリ応答システムを一定の範囲内での使用に制限することによってセキュリティを確保するために、近距離無線接続の通信方式を利用することが望ましい。例えば、ＺｉｇＢｅｅや赤外線を利用した近距離無線通信などである。
【００６３】
＜第２の実施形態＞
次に、図６および図７を参照して、本発明の第２の実施形態に係るクエリ応答システムが実行する処理を説明する。図６は、ユーザからの発話におけるキーワードに基づいて識別される識別対象が複数あり、それぞれの識別対象が対応するキーワードに基づいて識別されることを示す。つまり、発話に含まれる１つまたは複数のキーワードに基づいて、アプリケーションサービスおよびユーザなどの複数の異なる識別対象が判定される。
【００６４】
本実施形態では、識別対象は、ユーザに提供するアプリケーションサービスを含み、つまり、ユーザからの発話における第１のキーワードに基づいてアプリケーションサービスが識別される（本実施形態では、インターネットバンキングサービス）。また、識別対象は、ユーザによる要求の種別を含み、ユーザからの発話における第２のキーワードに基づいて要求の種別が識別される（本実施形態では、残高に関する問い合わせ）。さらに、識別対象は、問い合わせたユーザを含み、つまり、ユーザからの発話における第３のキーワードに基づいて問い合わせたユーザが識別（認証）される。
【００６５】
図６に示す例では、ユーザからの発話が「スミス、○○銀行の口座残高を教えて。」であるものとする。そして、この発話におけるキーワード「○○銀行」は第１のキーワードであり、本実施形態におけるインターネットバンキングサービスと関連付けられる。つまり、クエリ応答デバイス２は、ユーザからの発話に「○○銀行」が含まれると判定したことに応じて、対象のインターネットバンキングサービスを提供するサーバコンピュータ１を選択する。上記第１のキーワードとアプリケーションサービスとの関連付け（第１の対応関係）は、学習データに記憶される。
【００６６】
発話におけるキーワード「残高」は第２のキーワードであり、本実施形態における残高に関する問い合わせの処理要求と関連付けられる。つまり、クエリ応答デバイス２は、ユーザからの発話に「残高」が含まれると判定したことに応じて、残高に関する問い合わせ要求であることを示す情報を含むクエリ電文を生成する。上記第２のキーワードと処理要求との関連付け（第２の対応関係）は、学習データに記憶される。
【００６７】
発話におけるキーワード「スミス」は第３のキーワードであり、本実施形態における問い合わせたユーザと関連付けられる。このキーワードは、クエリ応答デバイス２から送信されるクエリ電文に含まれ、サーバコンピュータ１においてこのキーワードに基づいてユーザの認証が行われる。
【００６８】
次に、図７を参照して、本発明の第２の実施形態に係るクエリ応答システムが実行する処理を説明する。第２の実施形態は、第１の実施形態と処理が重複する部分を有するので、異なる部分のみを説明する。図７におけるステップの処理のうち、以下の表１に示すステップの処理は、図５で説明したステップの処理に対応するので、説明を省略する。
【００６９】
【表１】
0006694069.tif 000002
【００７０】
ステップＳ７０２では、ユーザＡは、クエリ応答デバイス２に対し、例えば、「スミス、○○銀行の口座残高を教えて。」と発話する。ステップＳ７０４では、クエリ応答デバイス２の制御装置２１は、ステップＳ７０３で分析されたキーワードから、学習データに記憶された第１の対応関係に従って、対応するアプリケーションサービスを特定する。つまり、第１のキーワードである「○○銀行」がユーザＡからの発話に含まれていると判定したことに応じて、インターネットバンキングサービスを提供するサーバコンピュータ１を特定する。
【００７１】
ステップＳ７０５では、制御装置２１は、ステップＳ７０３で分析されたキーワードから、学習データに記憶された第２の対応関係に従って、ユーザＡからの要求の種別を決定する。そして、その要求の種別を示す情報、ステップＳ７０３で分析されたキーワードを含むクエリ要求を生成する。クエリ電文は、通信装置２４によってサーバコンピュータ１に送信される。
【００７２】
ステップＳ７０６では、サーバコンピュータ１の制御装置１１がユーザデータテーブル３００から対象のデータレコードを取得することになるが、図８を参照して、第２の実施形態におけるユーザデータテーブル８００のデータ構造の例を説明する。
【００７３】
図８に示すように、第２の実施形態に係るユーザデータテーブル８００は、図３で説明したユーザデータテーブルに含まれるデータ項目に加え、認証キーワードを含む。認証キーワードは、ユーザによって任意のキーワードの値が設定される。
【００７４】
図７の説明に戻り、ステップＳ７０９では、ステップＳ７０６で取得したデータレコードに含まれるデバイス名に加え、認証キーワードに設定されたキーワードが、ステップＳ７０５で送信されたクエリ電文に含まれるかを判定する。つまり、ユーザＡからの発話が予め設定したキーワードを含んでいるかが判定される。この処理によって、予め所定のキーワードを設定し、そのキーワードを発話に含ませることによって、ユーザＡの認証を行うことができる。
【００７５】
なお、本実施形態では、第３のキーワードの一致判定をサーバコンピュータ１において実行しているが、そのような形式に限定されない。例えば、クエリ応答デバイス２において、ユーザからの対話に設定した認証キーワードが含まれるかを判定してもよい。この場合、クエリ応答デバイス２の学習データに、クライアントコンピュータ３から取得したＢＤアドレスなどのデバイス識別子とキーワードとの対応関係が記憶され、ユーザからの対話に含まれるキーワードが学習データに従って判定される。
【００７６】
以上のように、本発明に第２の実施形態に係るクエリ応答システムを説明した。本実施形態に係るクエリ応答システムによると、さらにセキュリティが確保された方式で秘密情報を交換することができる。また、第１の実施形態で説明した方式と同様に、ユーザによる操作を必要としないでユーザ認証を行うことができる。
【００７７】
＜その他の実施形態＞
上述した構成に加え、クライアントコンピュータ３が予め定められた位置の範囲内にあるかを判定することによって、ユーザからの発話に対する応答を制限してもよい。この場合の処理の具体例を以下に示す。
【００７８】
前提として、図５で説明したステップＳ５０７（第２の実施形態では、ステップＳ７０７）でクライアントコンピュータ３から送信される接続確認応答電文に、クライアントコンピュータ３の位置情報を含める。この場合、クライアントコンピュータ３は、ＧＰＳ受信機を備える必要があり、ＧＰＳ受信機が衛星から受信したＧＰＳ信号に基づいて位置情報が生成される。
【００７９】
また、上述したユーザデータテーブル３００（第２の実施形態では、ユーザデータテーブル８００）に、予め定められた範囲を示す位置情報を記憶する。そして、サーバコンピュータ１において、クライアントコンピュータ３から送信される接続確認応答電文に含まれる位置情報が、ユーザデータテーブル３００の対象のデータレコードに含まれる位置情報の範囲内にあるかを判定する。
【００８０】
本実施形態に係るクエリ応答システムによると、ユーザが指定した範囲内においてのみ、発話に対する応答が音声出力されない。このことは、例えば、クエリ応答デバイス２およびクライアントコンピュータ３のいずれもが盗難などにあった場合でも、指定した位置でのみの利用に制限されることから、第三者が残高を盗聴するような行為を防止することができる。
【００８１】
また、上記実施形態では、クエリ応答デバイス２が、ユーザから発話（つまり、音声）によるクエリに応答して音声の形式で応答を返却する例を説明したが、そのような実施形態に限定されない。例えば、ユーザからのクエリは、音声以外の任意の媒体でのユーザからの入力が含まれてもよい。また、返却される応答も、音声以外の任意の媒体での応答の出力が含まれてもよい。いずれの場合も、クエリ応答デバイス２は、音声以外の媒体での入力を受け付け、応答を出力するマルチメディア応答デバイスとして実装されることになる。
【００８２】
ユーザからの入力は、例えば、クエリ応答デバイス２に備えられた物理ボタンの押下、タッチスクリーンへの接触操作（タッチおよびスライドなど）、クエリ応答デバイス２全体に対する触覚的操作、ならびにクエリ応答デバイス２への視覚的入力などの任意の媒体での入力を含んでもよい。
【００８３】
クエリ応答デバイス２全体に対する触覚的操作は、例えば、ユーザがクエリ応答デバイス２を所定の方向に傾ける操作、および／または移動させる操作などを含んでもよい。いずれの操作も、クエリ応答デバイス２がデバイスの傾きおよび移動の角速度および加速度などを検出することによって判定される。デバイスの傾きおよび移動のいずれについても、所定の方向、所定の距離および／または所定の速度の組み合せとクエリの内容とが関連付けられて、クエリ応答デバイス２がクエリを判定してもよい。例えば、ユーザがクエリ応答デバイス２を右４５度に傾ける操作は、口座の残高を問い合わせるクエリに対応する。
【００８４】
クエリ応答デバイス２への視覚的入力は、例えば、ユーザまたはユーザの一部（顔など）がクエリ応答デバイス２の所定の範囲に近づく動作、ならびに所定の色および輝度をクエリ応答デバイス２にかざす動作などを含んでもよい。いずれの動作もクエリ応答デバイスユーザのデバイスに対する近接度および光などを検出することによって判定される。それらの動作のいずれについても、所定の近接度、色および輝度またはそれらのいずれかの組み合わせとクエリの内容とが関連付けられて、クエリ応答デバイス２がクエリを判定してもよい。例えば、ユーザが黒い服を身に着けてクエリ応答デバイス２の５０センチ以内に近づく動作は、口座の残高を問い合わせるクエリに対応する。
【００８５】
上記いずれの場合も、クエリ応答デバイス２は、入力装置としてタッチスクリーンおよびカメラなどを備え、検出素子として近接センサ、加速度センサ、角速度センサ、および光学センサなどを備える。
【００８６】
応答の出力は、例えば、クエリ応答デバイス２のディスプレイ上の視覚的表示などの任意の媒体での出力を含んでもよい。この場合、クエリ応答デバイス２は、出力装置としてディスプレイなどを備える。
【００８７】
上述したクエリ入力は、クエリ応答デバイス２の代わりにクライアントデバイス３によって受け付けられてもよい。例えば、クライアントコンピュータ３が傾き操作などを検出すると、その操作に対応する値（角速度など）をクエリ応答デバイス２に送信し、クエリ応答デバイス２が操作に対応するクエリ内容を判定してもよい。また、クライアントコンピュータ３がクエリ内容を判定してもよい。
【００８８】
応答出力も同様に、クエリ応答デバイス２の代わりにクライアントデバイス３によって出力されてもよい。例えば、クエリ応答デバイス２が応答を生成すると、その応答をクライアントコンピュータ３に送信し、ディスプレイなどに表示してもよい。
【００８９】
さらに、上記実施形態では、単一のクエリ応答デバイス２と単一のクライアントコンピュータ３とのペアリング情報をサーバコンピュータ１に登録する例を説明したが、そのペアリング情報は、複数のペアを関連付けて登録されてもよい。例えば、Ｎ個のクライアントコンピュータ３がＭ個のクエリ応答デバイス２と関連付けられてユーザデータテーブル３００または８００に登録されてもよい。
【００９０】
２つのクライアントコンピュータ３のそれぞれがクエリ応答デバイス２とペアリングされる例を説明する。この例では、２つのクライアントコンピュータ３双方のクライアントコンピュータ通知ＩＤが、ユーザＩＤおよび利用デバイス名と関連付けてユーザデータテーブル３００または８００に登録される。認証処理では、サーバコンピュータ１から２つのクライアントコンピュータ３の双方に接続確認要求電文が送信され、双方がクエリ応答デバイス２と接続しているかを確認する。
【００９１】
このような構成とすることによって、例えば、２つのクライアントコンピュータ３およびクエリ応答デバイス２のうちのいずれかのデバイスが盗難などにあっても、３つのデバイスが揃わない限り、第三者による盗聴を防止することができる。ひいては、セキュリティをさらに強固にすることができる。
【００９２】
上記実施形態で説明した構成はいずれも例示的なものにすぎず、そのような構成に限定されるものではない。例えば、本実施形態では、サーバコンピュータ１とクエリ応答デバイス２とが連携することによって発話に対する応答を出力しているが、スピーカを実装した単独のコンピュータデバイスによって上記処理を実装してもよい。また、上記説明したサーバコンピュータ１によって実行される処理のうちの一部が、本発明の基本的な概念を逸脱することなく、クエリ応答デバイス２で実行されてもよく、逆もまたそうである。
【００９３】
また、上記説明したクエリ応答デバイス（つまり、スピーカおよびマイクを実装したデバイス）は、ＡＩスピーカとして実装されるものとして説明したが、クエリ応答デバイスは、学習機能を必ずしも有する必要はない。学習機能を有さないでクエリ応答デバイスを実装する場合、予め定められたキーワードと要求処理などを関連付けた対応関係を記憶し、その対応関係に従って処理が実行されることになる。
【００９４】
上記説明したユーザデータテーブル３００などのデータ構造は、例示的なものにすぎず、その他の必要なデータ項目が含まれてもよく、また本発明の基本的な概念から逸脱することなく代替的なデータテーブルが使用されてもよい。また、上記実施形態で説明した処理の順序は、必ずしも説明した順序で実行される必要がなく、任意の順序で実行されてもよい。さらに、本発明の基本的な概念から逸脱することなく、追加のステップが新たに加えられてもよく、説明したステップが省略されてもよい。
【符号の説明】
【００９５】
１  サーバコンピュータ
２  クエリ応答デバイス
３  クライアントコンピュータ
４  ネットワーク
３００  ユーザデータテーブル
４００  口座データテーブル
８００  ユーザデータテーブル
Ａ  ユーザ
【図１】
0006694069.tif 000003
【図２】
0006694069.tif 000004
【図３】
0006694069.tif 000005
【図４】
0006694069.tif 000006
【図５】
0006694069.tif 000007
【図６】
0006694069.tif 000008
【図７】
0006694069.tif 000009
【図８】
0006694069.tif 000010