以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
<ネットワークシステム1の全体構成>
まず、図1を参照して本実施の形態にかかるネットワークシステム1の全体構成について説明する。本実施の形態にかかるネットワークシステム1は、主に、音声サービスサーバ100と、他の情報提供サーバ100B,100Cと、ロボット300Aや冷蔵庫やエアコンなどの電気機器(通信端末)と、を含む。本実施の形態にかかる電気機器は、ユーザからのメッセージに応じて、音声サービスサーバ100からのデータに基づいてメッセージを音声出力するものである。
なお、電気機器(通信端末)は、ロボット300Aに限らず、冷蔵庫、電子レンジ、エアコン、洗濯機、掃除機、空気清浄器、加湿器、除湿器、炊飯器、照明などの家電、携帯電話、スマートフォン、テレビ、ハードディスクレコーダ、プロジェクタ、音楽プレーヤ、ゲーム機、パーソナルコンピュータなどのAV(オーディオ・ビジュアル)機器、組み込み照明、太陽光発電機、インターホン、給湯器、温水洗浄便座コントローラなどの住宅設備、などであってもよい。以下では、これらの電気機器(通信端末)を総称して、電気機器300ともいう。
<ネットワークシステム1の動作概要>
次に、図2〜図4を参照して本実施の形態にかかるネットワークシステム1の動作概要について説明する。本実施の形態にかかるネットワークシステム1に関しては、ユーザがロボット300Aなどの電気機器300に話しかけたり、電気機器300がユーザに話しかけたりすることによって、対話すなわち音声メッセージのやり取りが行われる。より詳細には、本実施の形態においては、音声サービスサーバ100が、電気機器300に音声メッセージを出力させたり、電気機器300を介してユーザからの音声メッセージを取得したりする。
そして、図2に示すように、音声サービスサーバ100は、ユーザの反応に応じて、先に出力した音声メッセージをユーザが聞いたか否かを判断したり、先に出力した音声メッセージや当該メッセージに関する話題にユーザが興味を持っているか否かを判断したりする。
そして特に本実施の形態においては、図3に示すように、音声サービスサーバ100は、予め準備されている複数種類のテーマやシナリオのメッセージのデータに基づいて、あるテーマに関してのユーザとの対話中に、これ以上対話を続けることが困難であると判断された場合に、別の話題のシナリオデータに基づいて、別の話題の対話を開始する。
また、図4に示すように、音声サービスサーバ100は、予め準備されている複数種類のテーマやシナリオのメッセージのデータに基づいて、あるテーマに関するユーザとの対話が終了したまま所定の時間が経過してしまったときに、別の話題のシナリオデータに基づいて、別の話題の対話を開始する。
このように、本実施の形態にかかる音声サービスサーバ100は、電気機器300によるユーザとの対話をスムーズにすることができる。すなわち、ユーザと電気機器300との間(ま)を持たせることができ、ユーザの居心地を良い状態にしたり良い状態のまま維持したりしやすくなる。以下、このような機能を実現するためのネットワークシステム1の具体的な構成について詳述する。
<音声サービスサーバ100のハードウェア構成>
まず、本実施の形態にかかるネットワークシステム1を構成する音声サービスサーバ100のハードウェア構成の一態様について説明する。他の情報提供サーバ100B、100Cも音声サービスサーバ100と同様の構成を有しているため、ここでは説明を繰り返さない。
図5を参照して、音声サービスサーバ100は、主たる構成要素として、CPU(Central Processing Unit)110と、メモリ120と、操作部140と、通信インターフェイス160とを含む。
CPU110は、メモリ120に記憶されているプログラムを実行することによって、音声サービスサーバ100の各部を制御する。たとえば、CPU110は、メモリ120に格納されているプログラムを実行し、各種のデータを参照することによって、後述する各種の処理を実行する。
メモリ120は、各種のRAM(Random Access Memory)、各種のROM(Read-Only Memory)などによって実現される。メモリ120は、CPU110によって実行されるプログラムや、CPU110によるプログラムの実行により生成されたデータ、入力されたデータ、その他、テーマテーブル121や対話シナリオデータベース122や、ユーザがメッセージに興味を持っていることを示す第1のレベルの複数種類のキーワードや、ユーザが単にメッセージを聞いたことを示す第2のレベルの複数種類のキーワードのデータなどの音声サービスに利用されるデータベースなどを記憶する。なお当然に、これらのデータは、音声サービスサーバ100自体が格納していなくても、音声サービスサーバ100がアクセス可能な他の装置に格納されていてもよい。
ここで、図6を参照して、テーマテーブル121は、テーマ毎に、テーマIDとテーマ名との対応関係を格納する。また、図7を参照して、対話シナリオデータベース122は、シナリオ毎またはメッセージ毎に、対話シナリオIDと、テーマIDと、テキストデータまたは音声データとの対応関係を格納する。なお、以下では、ユーザと対話するための一連のメッセージをシナリオともいう。
このように構成されているため、本実施の形態においては、CPU110は、メモリ120のプログラムを実行することによって、図8に示すように、対話シナリオ選択部110Aと対話シナリオ実行処理部110Bと、連想シナリオ検索部110Cなどを実現する。
より詳細には、対話シナリオ選択部110Aは、ユーザとメッセージのやり取りを開始する前に、対話シナリオデータベース122からテーマおよびシナリオを選択する。対話シナリオ実行処理部110Bは、通信インターフェイス160を介してシナリオに含まれるメッセージを電気機器300に送信することによって、電気機器300にユーザとの対話を実行させる。
そして、シナリオの対話が終了すると、または対話が終了して所定時間沈黙が続くと、または現在のシナリオに続きのメッセージが用意されていないと、連想シナリオ検索部110Cが、先に選択されたテーマやシナリオやメッセージに関連するシナリオを検索して、対話シナリオデータベース122から新たなメッセージを抽出する。これによって、対話シナリオ実行処理部110Bは、再度、ユーザからのメッセージに応じて、通信インターフェイス160を介してシナリオに含まれるメッセージを電気機器300に送信することによって、電気機器300にユーザとの対話を実行させる。
図5に戻って、操作部140は、サービスの管理者などの命令を受け付けて、当該命令をCPU110に入力する。
通信インターフェイス160は、CPU110からのデータを、インターネット、キャリア網、ルータなどを介して電気機器300などの他の装置に送信する。逆に、通信インターフェイス160は、インターネット、キャリア網、ルータなどを介して他の装置からのデータを受信して、CPU110に受け渡す。
他の情報提供サーバ100B,100Cの構成は、メモリ120のデータやCPU110の処理が異なるが、ハードウェア構成は概ね音声サービスサーバ100のそれと同様であるため、ここでは説明を繰り返さない。
<音声サービスサーバ100における情報処理>
次に、図9を参照しながら、本実施の形態にかかる音声サービスサーバ100における情報処理について説明する。
音声サービスサーバ100のCPU110は、ユーザ毎または電気機器300毎に、定期的に、電気機器300毎に以下の処理を実行する。まず、CPU110は、現在、対話中であるか否かを判断する(ステップS102)。対話中においては(ステップS102にてYESである場合)、CPU110は、電気機器300からの音声データからユーザのメッセージを抽出して、当該メッセージを解析する(ステップS104)。
CPU110は、メモリ120のデータを参照して、ユーザが電気機器300が出力したメッセージやそのテーマなどに興味を示したか否かを判断する(ステップS112)。たとえば、CPU110は、抽出したメッセージに第1のレベルのキーワード、たとえば「大好き!!」や「いいよね。」やユーザからの質問などが含まれている場合に、ユーザが一連のメッセージに興味を示しと判断し、メッセージに第1のレベルのキーワードが含まれていない場合に、ユーザが一連のメッセージに興味を示さなかったと判断する。あるいは、CPU110は、電気機器300を介してユーザにクイズを出して、ユーザの回答があったときに、ユーザが一連のメッセージに興味を示したと判断し、当該クイズに対して回答がなかった場合に、ユーザが一連のメッセージに興味を示さなかったと判断してもよい。あるいは、ユーザに「興味がありますか?」と質問したのちのユーザの「はい。」や「うん。」などの回答があったとき時に、ユーザが一連のメッセージに興味を示したと判断し、当該質問に対して「いいえ。」や「ううん。」の回答があった場合や回答がなかった場合に、ユーザがメッセージに興味を示さなかったと判断する。
ユーザがメッセージに興味を示したと判断した場合(ステップS112にてYESである場合)、CPU110は、ユーザの特定情報と、電気機器300が出力したメッセージの特定情報やそのテーマの特定情報や時間帯と、に対応付けて、ユーザが興味を持っていることを示すデータをメモリ120に格納する(ステップS114)。CPU110は、ステップS132からの処理を実行する。
ユーザがメッセージに興味を示さなかったと判断した場合(ステップS112にてNOである場合)、CPU110は、メモリ120のデータを参照して、ユーザが電気機器300からのメッセージを聞いたか否かを判断する(ステップS122)。たとえば、CPU110は、抽出したユーザのメッセージに第2のレベルのキーワード、たとえば「うん。」や「へえ。」などが含まれている場合に、ユーザがメッセージを聞いたと判断し、メッセージに第2のレベルのキーワードが含まれていない場合に、ユーザがメッセージを聞かなかったと判断する。あるいは、ユーザに「ねえ、聞いていますか?」と質問したのちのユーザの「はい。」や「うん。」などの回答があったとき時に、ユーザがメッセージを聞いたと判断し、当該質問に対して「いいえ。」や「ううん。」などの回答があった場合や回答がなかった場合に、ユーザがメッセージを聞かなかったと判断する。
ユーザがメッセージを聞いたと判断した場合(ステップS122にてYESである場合)、CPU110は、ユーザの特定情報と、電気機器300が出力したメッセージの特定情報やそのテーマの特定情報や時間帯と、に対応付けて、ユーザがメッセージを聞いたことを示すデータをメモリ120に格納する(ステップS124)。CPU110は、ステップS132からの処理を実行する。
ユーザがメッセージを聞かなかったと判断した場合(ステップS122にてNOである場合)、CPU110は、ステップS132からの処理を実行する。
好ましくは、CPU110は、「ユーザ毎の、または年齢・住所・性別などのユーザ層毎の、またはユーザ全体の」、「メッセージ毎の、またはテーマ毎の、または時間帯毎の」、「メッセージを聞いた割合、またはメッセージに興味を示した割合」などを計算してメモリ120に格納したり、通信インターフェイス160を介して他のサーバに当該情報を提供したりする。
ステップS132では、CPU110は、対話シナリオデータベース122を参照して、電気機器300が出力したメッセージの続きのメッセージが準備されているか否かを判断する。続きのメッセージが準備されている場合(ステップS132にてYESである場合)、CPU110は、電気機器300にそのままユーザとの対話を続行させる。すなわち、CPU110は、通信インターフェイス160を介して、次のメッセージを電気機器300に送信したり、電気機器300からの次のメッセージを待ちうけたりする。あるいは電気機器300毎に、第1の所定時間たとえば1秒経過毎にステップS102を繰り返す。
続きのメッセージが準備されていない場合(ステップS132にてNOである場合)、CPU110は、テーマテーブル121を参照して、次のテーマを特定する(ステップS144)。なお、CPU110は、テーマテーブル121のテーマIDの順に次のテーマを決定してもよいし、人気のニュースに基づいて次のテーマを決定してもよいし、ユーザ設定や後述するようなユーザの過去の履歴などに基づいて次のテーマを決定してもよい。
CPU110は、対話シナリオデータベース122を参照して、特定されたテーマに対応するメッセージを読み出して、通信インターフェイス160を介して電気機器300にメッセージのデータを送信する(ステップS146)。これによって、電気機器300のCPU310は、音声サービスサーバ100からのデータに基づいて新たなテーマに関する対話をスタートすることができる。音声サービスサーバ100のCPU110は、通信インターフェイス160を介して電気機器300からの次のメッセージを待ちうける。あるいは電気機器300毎に、第1の所定時間の経過後にステップS102を繰り返す。
一方、対話中でないときは(ステップS102にてYESである場合)、CPU110は、対話が止まってから第2の所定時間たとえば20秒が経過したか否かを判断する(ステップS142)。CPU110は、第2の所定時間経過した場合(ステップS142にてYESである場合)、ステップS144からの処理を実行する。
第2の所定時間経過していない場合(ステップS142にてNOである場合)、CPU110は、通信インターフェイス160を介して電気機器300からの次のメッセージを待ちうける。あるいは電気機器300毎に、第1の所定時間の経過後にステップS102を繰り返す。
<電気機器300のハードウェア構成>
次に、図10を参照して、ネットワークシステム1を構成する電気機器300の構成の一態様について説明する。電気機器300は、主たる構成要素として、CPU310と、メモリ320と、ディスプレイ330と、操作部340と、カメラ350、通信インターフェイス360と、スピーカ370と、マイク380と、機器駆動部390とを含む。
CPU310は、メモリ320あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、電気機器300の各部を制御する。
メモリ320は、各種のRAMや、各種のROMなどによって実現される。メモリ320は、CPU310によって実行される機器駆動プログラムや会話プログラムやその他のプログラムや、CPU310によるプログラムの実行により生成されたデータ、音声サービスサーバ100や他のサーバから受信したデータ、操作部340を介して入力されたデータなどを記憶する。
ディスプレイ330は、CPU310からの信号に基づいて、文字や画像などを出力する。ディスプレイ330は、図1に示すように、単にライト330A,330Bであってもよい。
操作部340は、ボタン、タッチパネルなどによって実現され、ユーザからの命令を受け付けて、当該命令をCPU310に入力する。なお、ディスプレイ330と操作部340とは、タッチパネルを構成してもよい。
また、操作部340は、近接センサや温度センサなどであってもよい。この場合は、CPU310は、操作部340としての近接センサや温度センサを介して、ユーザが電気機器300に手をかざしたことを検知して、各種の動作を開始する。たとえば、電気機器300がロボットであって、近接センサが額の近辺に配置されることによって、ユーザが電気機器300をなでたり・たたいたりすることを電気機器300が検知してもよい。
カメラ350は、画像を撮影して、画像データをCPU310に受け渡す。CPU310は、画像データからユーザの動きを特定してもよいし、画像データをサーバ100に提供してサーバ100がユーザの動きを特定してもよい。
通信インターフェイス360は、無線LAN通信あるいは有線LANなどの通信モジュールによって実現される。通信インターフェイス360は、有線通信あるいは無線通信によって音声サービスサーバ100などの他の装置との間でデータをやり取りする。
スピーカ370は、CPU310からの信号に基づいて、音声を出力する。より詳細には、本実施の形態においては、CPU310は、通信インターフェイス360を介してサーバ100から受信した音声データに基づいてスピーカ370に音声メッセージを出力させる。あるいは、CPU310は、通信インターフェイス360を介してサーバ100から受信したテキストデータに基づいて音声信号を作成し、スピーカ370に音声メッセージを出力させる。あるいは、CPU310は、通信インターフェイス360を介してサーバ100から受信したメッセージIDに基づいて、メモリ320からメッセージの音声データを読み出して、スピーカ370に音声メッセージを出力させる。
マイク380は、外部からの音声に基づいて音声信号を作成し、CPU310に入力する。
機器駆動部390は、CPU310からの信号に基づいて、電気機器300の各部(モータやヒータなど)を制御する。
このように、本実施の形態にかかる音声サービスにおいては、続きの対話用のメッセージデータが準備されていない場合に別の話題をスタートさせたり、対話がストップして所定時間が経過した際に別の話題をスタートさせたりするため、電気機器300のユーザが退屈しにくくなり、居心地良く感じやすくなる。さらに、本実施の形態に係る音声サービスにおいては、たとえば当該音声サービスに会話情報や広告情報の提供者に、「ユーザ毎の、または年齢・住所・性別などのユーザ層毎の、またはユーザ全体の」、「メッセージ毎の、または話題毎の、またはテーマ毎の、または時間帯毎の」、「メッセージを聞いた割合、またはメッセージに興味を示した割合」などを伝えることができる。そして、このような情報は、広告の提供者から徴収する料金の算定や、他の情報の提供者へ支払う料金の算定や、各種のマーケティングなどに利用することができる。
<第2の実施の形態>
音声サービスサーバ100は、さらに、ユーザが興味を示したり肯定的なメッセージを話したり対話が盛り上がったりした場合に、企業や商品やサービスの広告を電気機器300から出力させ(図2などを参照。)、ユーザが興味を示さなかったり否定的なメッセージを話したり対話が盛り上がらなかった場合に、企業や商品やサービスの広告を電気機器300から出力させないという機能を有してもよい。
より詳細には、図11を参照して、ユーザがメッセージに興味を示したと判断した場合(ステップS112にてYESである場合)、CPU110は、ステップS114に加えて、通信インターフェイス160を介して電気機器300に広告用のデータを送信する(ステップS118)。これによって、図2に示すように、電気機器300は音声サービスサーバ100からのデータに基づいて広告を出力する。
一方、ユーザがメッセージに興味を示さなかったと判断した場合(ステップS112にてNOである場合)、CPU110は、ユーザが電気機器300のメッセージを聞いたか否かの判断を行うが(ステップS122)、この場合は電気機器300に広告を出力させない。
あるいは、図12を参照して、ユーザがメッセージに興味を示したと判断した場合(ステップS112にてYESである場合)、CPU110は、ステップS114に加えて、ユーザが第1の所定回数以上、電気機器300が出力するメッセージに反応しているか否か、たとえば第1の所定回数以上ユーザが電気機器300にメッセージを入力したか否かを判断する(ステップS116)。第1の所定回数以上ユーザが電気機器300にメッセージを入力している場合(ステップS116にてYESである場合)、CPU110は、通信インターフェイス160を介して電気機器300に広告用のデータを送信する(ステップS118)。これによって、図2に示すように、電気機器300は音声サービスサーバ100からのデータに基づいて、広告を出力する。
一方、未だ第1の所定回数以上ユーザが電気機器300にメッセージを入力していない場合(ステップS116にてNOである場合)、あるいはユーザがメッセージに興味を示さなかったと判断した場合(ステップS112にてNOである場合)、CPU110は電気機器300に広告を出力させない。
なお、予め肯定的な第1のメッセージが設定されており、音声サービスサーバ100のCPU110が、ユーザのメッセージが当該第1のメッセージを含む場合にユーザが肯定的であると判断し、ユーザのメッセージが当該第1のメッセージを含まない場合にユーザが否定的であると判断してもよい。
あるいは、予め否定的な第2のメッセージが設定されており、音声サービスサーバ100のCPU110が、ユーザのメッセージが当該第2のメッセージを含む場合にユーザが否定的であると判断し、ユーザのメッセージが当該第2のメッセージを含まない場合にユーザが肯定的であると判断してもよい。
なお、予め肯定的な第1のメッセージと否定的な第2のメッセージが設定されており、音声サービスサーバ100のCPU110が、ユーザのメッセージが当該第1のメッセージを含む場合にユーザが肯定的であると判断し、ユーザのメッセージが当該第2のメッセージを含む場合にユーザが否定的であると判断し、ユーザのメッセージがいずれのメッセージも含まない場合は次のメッセージまで判断を保留してもよい。
あるいはメッセージ毎に、肯定的である度合を示す肯定ポイントが付与されている。なお、肯定的なメッセージ、たとえば「大好き。」「最高。」には“正”の大きなポイントが付与されており、否定的なメッセージ、たとえば「大嫌い。」「いや。」には“負”の大きなポイントが付与される。そして、CPU110が、ユーザのメッセージのポイントまたは累積ポイントが所定値以上である場合に肯定的であると判断し、所定値未満である場合に肯定的ではないと判断してもよい。
また、上記の実施の形態においては、肯定的なユーザのメッセージに応じて広告情報を出力させ、否定的なユーザのメッセージに応じて広告情報を出力しないものとしているがこのような形態には限られない。
たとえば、音声サービスサーバ100のCPU110は、肯定的なユーザのメッセージに応じて第1の広告情報を出力させ、否定的なユーザのメッセージに応じて第2の広告情報を出力する形態にしてもよい。なお、第1の広告情報は、第2の広告情報よりも詳しい内容を含む。あるいは、第1の広告情報には企業名と商品とを含み、第2の広告情報には企業名と商品のいずれかを含む。
なお、広告情報に限らず、音声サービスサーバ100のCPU110は、肯定的なユーザのメッセージに応じてニュースなどの情報を出力させ、否定的なユーザのメッセージに応じてニュースなどの情報を出力しない形態にしてもよい。あるいは、肯定的なユーザのメッセージに応じて詳細情報を出力させ、否定的なユーザのメッセージに応じて簡易情報を出力する形態にしてもよい。
さらにはそれらを組み合わせて、音声サービスサーバ100のCPU110は、ユーザのメッセージのポイントまたは累積ポイントが第1の所定値以上である場合、あるいはユーザのメッセージに第1の肯定メッセージが含まれている場合、第1の肯定状態であると判断し、詳細情報と広告情報とを電気機器300に出力させる。CPU110は、ユーザのメッセージのポイントまたは累積ポイントが第1の所定値未満かつ第1の所定値よりも小さな第2の所定値以上である場合、あるいはユーザのメッセージに第2の肯定メッセージが含まれている場合、第2の肯定状態であると判断し、簡易情報と広告情報とを電気機器300に出力させる。CPU110は、ユーザのメッセージのポイントまたは累積ポイントが第2の所定値未満である場合、あるいはユーザのメッセージに第1および第2の肯定メッセージが含まれていない場合、否定的な状態であると判断し、簡易情報のみを電気機器300に出力させてもよい。
<第3の実施の形態>
音声サービスサーバ100は、さらに、時間帯や曜日などに応じて、対話のテーマの切り替え方や、各種の判断方法などを変更してもよい。
以下では、図13に示すように、ユーザ毎の電気機器300のメッセージに集中することができる可能性が高い時間帯、換言すればユーザ毎の忙しくない時間帯を、ゴールデンタイムという。たとえば、音声サービスサーバ100のCPU110は、ユーザ毎または電気機器300毎の、メッセージに対する「興味あり」との判断結果の割合に基づいて、「興味あり」との判断結果の割合が多い、たとえば30%以上などの、時間帯をユーザ毎のゴールデンタイムとして設定する。あるいは、CPU110は、ユーザ毎または電気機器300毎の、メッセージに対する「興味あり」の判断結果の割合と「聞いた」の判断結果の割合とに基づいて、両者の割合の合計が多い、たとえば40%以上などの、時間帯をユーザ毎のゴールデンタイムとして設定する。あるいは、CPU110は、ユーザ毎または電気機器300毎の、ユーザとの対話のキャッチボールの回数が多い時間帯をゴールデンタイムとしてもよい。
ただし、ゴールデンタイムはユーザ毎に設定される必要はなく、全ユーザに共通であってもよいし、年齢・性別・住所などの属性毎に設定されるものであってもよい。
図14を参照して、ユーザがメッセージに興味を示したと判断した場合(ステップS112にてYESである場合)、CPU110は、ステップS114に加えて、対象となる電気機器300またはユーザにとって、現在がゴールデンタイムであるか否かを判断する(ステップS116)。
現在がゴールデンタイムである場合(ステップS116にてYESである場合)、CPU110は、通信インターフェイス160を介して、広告用のデータを送信する(ステップS118)。そして、図2に示すように、電気機器300は音声サービスサーバ100からのデータに基づいて、広告を出力する。CPU110は、ユーザが電気機器300のメッセージに興味を持った時間を記憶して、ゴールデンタイムの判断のための反応頻度を高める補正をする(ステップS119)。CPU110は、ステップS132からの処理を実行する。
一方、ユーザがメッセージに興味を示さなかったと判断した場合(ステップS112にてNOである場合)、CPU110は、メモリ120のデータを参照して、ユーザがメッセージを聞いたか否かを判断する(ステップS122)。ユーザがメッセージを聞いたと判断した場合(ステップS122にてYESである場合)、CPU110は、ステップS124に加えて、ユーザが電気機器300のメッセージを聞いた時間を記憶して、ゴールデンタイムの判断のための反応頻度を維持する(ステップS126)。CPU110は、ステップS132からの処理を実行する。
ユーザがメッセージを聞かなかったと判断した場合(ステップS122にてNOである場合)、CPU110は、ユーザが電気機器300のメッセージを聞かなかった時間を記憶して、ゴールデンタイムの頻度を低減する補正をする(ステップS128)。CPU110は、ステップS132からの処理を実行する。
あるいは、図15を参照して、CPU110は、対話シナリオデータベース122を参照して、電気機器300が出力するメッセージの続きのメッセージが準備されていない場合(ステップS132にてNOである場合)や、対話が止まってから第2の所定時間たとえば20秒が経過した場合(ステップS142にてYESである場合)、CPU110は、対象となる電気機器300またはユーザにとって、現在がゴールデンタイムであるか否かを判断する(ステップS143)。
現在がゴールデンタイムである場合(ステップS143にてYESである場合)、CPU110は、ステップS144からの処理を実行する。一方、現在がゴールデンタイムでない場合(ステップS143にてNOである場合)、CPU110は、通信インターフェイス160を介して電気機器300からの次のメッセージを待ちうける。あるいは電気機器300毎に、第1の所定時間の経過後にステップS102を繰り返す。
あるいは、図16を参照して、ステップS102において対話中でない場合について説明する。CPU110は、まず、対象となる電気機器300またはユーザにとって、現在がゴールデンタイムであるか否かを判断する(ステップS152)。現在がゴールデンタイムである場合(ステップS152にてYESである場合)、CPU110は、対話が止まってから第1の所定時間たとえば10秒が経過したか否かを判断する(ステップS154)。CPU110は、第1の所定時間経過した場合(ステップS154にてYESである場合)、ステップS144からの処理を実行する。
一方、現在がゴールデンタイムでない場合(ステップS152にてNOである場合)、CPU110は、対話が止まってから第1の所定時間よりも長い第2の所定時間たとえば30秒が経過したか否かを判断する(ステップS156)。CPU110は、第2の所定時間経過した場合(ステップS156にてYESである場合)、ステップS144からの処理を実行する。
逆に、CPU110は、第1の所定時間経過していない場合(ステップS154にてNOである場合)や、第2の所定時間経過していない場合(ステップS156にてNOである場合)、ステップS102からの処理を繰り返す。
これによって、本実施の形態にかかる音声サービスは、ユーザが電気機器300との対話に意識を回す余裕がある可能性が高い場合、すなわちゴールデンタイムには、話が途切れるとすぐに新たな話題のメッセージをユーザに提供し、ユーザが電気機器300との対話に意識を回す余裕がない可能性が高い場合、すなわちゴールデンタイムでないときは、話が途切れても次の話題をユーザに提供するまでに若干の間待機する。その結果、よりユーザにとって、居心地が良い状況を作り出すことが可能になる。
<第4の実施の形態>
音声サービスサーバ100は、単にテーマテーブル121のテーマID順にテーマを選択してシナリオを抽出したり、ランダムに選ばれたテーマを選択してシナリオを抽出したりする形態には限られない。たとえば、ユーザ毎または電気機器300毎の、過去の興味を持った履歴や過去の聞いた履歴に基づいて、音声サービスサーバ100のCPU110が、ユーザが興味を持ちやすいテーマや話題や、ユーザが聞いてくれる可能性が高いテーマや話題を優先して選択することが好ましい。
たとえば、音声サービスサーバ100のメモリ120は、ユーザ毎または電気機器300毎に、図17に示すようなユーザ反応テーブル123を記憶する。ユーザ反応テーブル123は、テーマ毎に、テーマIDと、対話スタート回数と、実際の対話におけるメッセージの往復の回数と、1つの対話すなわち1つのシナリオに対するメッセージの往復の回数の平均などの対応関係を含む。なお、対話スタート回数は、新たなシナリオの対話を開始した回数である。そして、ユーザ反応テーブル123は、次のテーマを選択する際に利用されるものであるが、広告の提供者などが各種のマーケティングなどに利用することも可能である。
そして、図18に示すように、ユーザがメッセージに興味を示したと判断した場合(ステップS112にてYESである場合)、CPU110は、ステップS114に加えて、今回の対話に関するメッセージの往復の回数を反応テーブル123に追加したり平均を更新したりする(ステップS119B)。CPU110は、ステップS132からの処理を実行する。
また、ユーザがメッセージを聞いたと判断した場合(ステップS122にてYESである場合)にも、CPU110は、ステップS124に加えて、今回の対話に関するメッセージの往復の回数を反応テーブル123に追加したり平均を更新したりする(ステップS126B)。CPU110は、ステップS132からの処理を実行する。
そして、ステップS144において、CPU110は、反応テーブル123とテーマテーブル121とを参照して次のテーマを特定する(ステップS144)。たとえば、CPU110は、平均回数に基づいて重みづけをしてから全てのテーマの中から次のテーマを選択する。CPU110は、対話シナリオデータベース122を参照して、特定されたテーマに対応する一連のメッセージを読み出して、通信インターフェイス160を介して電気機器300にメッセージのデータを送信する(ステップS146)。このとき、CPU110は、反応テーブル123の、今回新たに特定されたテーマの対話スタート回数を+1する。
なお、テーマテーブル121や対話シナリオデータベース122や反応テーブル123は、大分類のテーマだけでなく、さらに小さな分類の話題やキーワードなども設定されることが好ましい。これによって、音声サービスサーバ100のCPU110は、さらにユーザに適したシナリオを選択することができる。
このように、ユーザとの対話が滞りそうになった場合に、音声サービスサーバ100は先のテーマとは別のテーマを選択する場合もあるし、同じテーマの別のシナリオを連続して選択する場合もある。そして、本実施の形態にかかる音声サービスサーバ100のCPU110は、ユーザ反応テーブル123に基づいて次のテーマを決めるため、興味があるテーマたとえばメッセージのキャッチボールの平均回数が多いテーマが選ばれる可能性が高く、同じテーマの別のシナリオが選択される可能性が高い。
<第5の実施の形態>
音声サービスサーバ100のCPU110は、図3または図4に示すように、新たなテーマや話題の対話を開始する際には、「そうそう」や「ところで」という呼びかけのための言葉を挟んでから、新たなテーマのメッセージを電気機器300から出力させることが好ましい。
より詳細には、図19に示すように、CPU110は、反応テーブル123とテーマテーブル121とを参照して次のテーマを特定する(ステップS144)。そして、CPU110は、特定されたテーマに対応するメッセージを読み出して、当該メッセージの前に「そうそう」や「ところで」という呼びかけのための言葉を追加する(ステップS145)。CPU110は、通信インターフェイス160を介して、メッセージデータを電気機器300に送信する(ステップS146)。これによって、電気機器300のCPU310は、音声サービスサーバ100からのデータに基づいて、スピーカ370から「そうそう」や「ところで」という呼びかけのための言葉を発してから、メッセージの出力を開始する。
ただし、音声サービスサーバ100のメモリ120が、図20に示すようなシナリオデータベース122Bを記憶してもよい。すなわち、予めシナリオの最初のメッセージに、「そうそう」や「ところで」という呼びかけのための言葉が含まれたものがシナリオデータベース122Bに格納されていてもよい。この場合は、ステップS145の処理を実行せずに、CPU110は、ステップS146を実行すればよい。
<第6の実施の形態>
なお、第1〜第5の実施の形態においては、音声サービスサーバ100のCPU110は、ユーザからのメッセージに基づいて各種の判断を行っていたが、このような構成には限られない。たとえば、音声サービスサーバ100のCPU110は、音声ではなく電気機器300からの画像に基づいて、各種の判断をおこなってもよい。
具体的には、電気機器300のCPU310が、カメラ350の撮影画像を音声サービスサーバ100に送信してもよい。そして、図21に示すように、音声サービスサーバ100のCPU110は、電気機器300からの画像データを解析してもよい(ステップS604)。
たとえば、CPU110は、ユーザが大きくうなずいた場合(ステップS612にてYESである場合)、CPU110は、ユーザとメッセージまたはテーマなどの特定情報に対応付けて、興味を持っていることを示すデータをメモリ120に格納する(ステップS114)。また、CPU110は、ユーザが小さくうなずいた場合あるいは首を振った場合(ステップS622にてYESである場合)、CPU110は、ユーザとメッセージまたはテーマなどの特定情報に対応付けて、ユーザがメッセージを聞いたことを示すデータをメモリ120に格納する(ステップS124)。
あるいは、CPU110は、ユーザが笑顔のときにユーザがメッセージに興味を持っている判断したり広告を出力したりして、ユーザが笑顔ではないがうなずいた際にユーザが単にメッセージを聞いたと判断したり広告を出力しないようにしたりしてもよい。
あるいは、電気機器300の操作部340としての近接センサや温度センサからのデータに基づいて、ユーザが電気機器300に手をかざしたり、電気機器300の頭をなでたり・たたいたりしたことを検知して、その旨を音声サービスサーバ100に送信してもよい。音声サービスサーバ100のCPU110は、電気機器300からのそのようなデータに基づいて、ユーザがメッセージに興味をもったと判断したり、ユーザがメッセージを聞いたと判断したりしてもよい。逆に、ユーザが電気機器300に触れなければ、CPU110は、ユーザがメッセージに興味がないと判断する。
あるいは、電気機器300の操作部340としてのボタンをユーザが押した場合に、その旨を音声サービスサーバ100に送信してもよい。音声サービスサーバ100のCPU110は、電気機器300からのそのようなデータに基づいて、ユーザがメッセージに興味をもったと判断したり、ユーザがメッセージを聞いたと判断したりしてもよい。逆に、ユーザが電気機器300に触れなければ、CPU110は、ユーザがメッセージに興味がないと判断する。
<第7の実施の形態>
なお、第1〜第6の実施の形態のような、サーバ100や電気機器300の構造・機能・動作に限られず、たとえば各装置の役割が、他のサーバやデータベースなどの複数の装置に分担されてもよい。逆に、複数の装置の役割の一部または全部が1つの装置に集約されてもよい。
たとえば、図22に示すように、第1から第6の実施の形態にかかる音声サービスサーバ100の役割の全部を、スタンドアローン型の電気機器300Aが有してもよい。あるいは電気機器300は、対話サービスの一部の更新データだけを音声サービスサーバ100から取得してもよいし、他のサーバ100B,100Cの情報を利用してもよい。また、第1から第7の実施の形態にかかる音声サービスサーバ100の一部だけを電気機器300が有するものであってもよい。
<その他の応用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体(あるいはメモリ)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。