〔実施形態1〕
以下、本発明の実施形態1について、図1から図11に基づいて詳細に説明する。
〔家族伝言板システム100の概要〕
まず、本実施形態に係る家族伝言板システム100(発話制御システム)の概要を図2に基づいて説明する。図2は、家族伝言板システム100の概要を示す図である。家族伝言板システム100は、あらかじめ登録されたユーザ(図2に示す例ではお父さん、お母さん、子供)の間で情報を共有可能な電子伝言板(いわゆるソーシャル・ネットワーク・サービス)を提供するシステムである。家族伝言板システム100は、スマートフォン3a、3b、3c、エージェントサーバ2a、家族伝言板サーバ2b、ホームサーバ2c、家庭内に配置された機器1(ロボット掃除機1aおよび冷蔵庫1bを含む)を含む。なお、「家庭内に配置された機器1」を以下では「家庭内機器1」と称する。また、スマートフォン3a、3b、3cを特に区別する必要がない場合は、単に「スマートフォン3」と称する。同様に、エージェントサーバ2a、家族伝言板サーバ2b、ホームサーバ2cを特に区別する必要がない場合は、単に「サーバ2」と称する。また、詳細は後述するが、家族伝言板システム100においてホームサーバ2cは必須ではない。
家族伝言板システム100において、ユーザは、スマートフォン3a、3b、3cを用いて、例えば、ごみの日、誕生日などの予定をスケジュール登録(入力)する。サーバ2(発話制御装置)は、ユーザがスマートフォン3を用いてスケジュール登録した予定についての発話データ(個別データIndD1)を生成し、家庭内機器1(発話装置)に送信する。また、サーバ2は、関連情報源4から取得する共通データ基礎情報等に基づいて、上記予定とは関係のない発話データ(共通データComD1)を生成し、家庭内機器1に送信する。家庭内機器1は、サーバ2から受信する上記発話データを発話する。また、家族伝言板システム100では、家庭内機器1の状態およびユーザによって書き込まれたメッセージの内容等に応じて、家庭内機器1が家族伝言板にメッセージを書き込む。さらに、ユーザは、それぞれが所持するスマートフォン3a、3b、3cを用いて家族伝言板にアクセスし、メッセージの書き込み、または閲覧を行うことができる。
家族伝言板システム100においては、ユーザが予定日を指定してスケジュール登録した(入力した)予定についての発話データは、所定の発話期間において発話される。発話期間とは、発話データに設定される、該発話データを家庭内機器1(例えば、冷蔵庫1b)が発話可能な期間である。例えば、ユーザが4月2日に、「予定日:4月15日、内容:ゴミの日」という予定をスケジュール登録した場合、ユーザが該予定に関する発話データを、4月3日に聞く必要性は低いと考えられ、また、4月16日以降に聞く必要性はほぼ無いと考えられる。ユーザは、「予定日:4月15日、内容:ゴミの日」という予定に関する発話データを、該予定日の前日である4月14日の夕方と、該予定日当日である4月15日の朝とに聞くことができるのが、最も望ましいと考えられる。したがって、「予定日:4月15日、内容:ゴミの日」という予定に関する発話データには、「4月14日の夕方」と「4月15日の朝」とが発話期間として設定される。家族伝言板システム100において、ユーザが予定日を指定して入力した予定についての発話データには、少なくとも、「該予定日当日の朝(例えば、当日の5時〜9時)」という発話期間が設定される。なお、詳細は後述するが、家族伝言板システム100においては、発話期間が特に設定されない、または、「重要発話時間帯」以外の時間帯が発話期間に設定される、発話データ(ランダム発話データ)があってもよい。「重要発話時間帯」とは、例えば、朝5時〜9時など、ユーザが、該ユーザにとって重要な内容の情報(発話データ)を収集していると想定される時間帯である。また、家族伝言板システム100においては、全ての発話データに発話期間が設定されてもよく、その場合、例えばランダム発話データには、「任意の日の0時〜24時」という発話期間が設定されてもよい。さらに、ランダム発話データに設定される発話期間が「任意の日の0時〜24時」であることは必須ではなく、例えば、ランダム発話データには「9時〜22時」という発話期間が設定されてもよい。ランダム発話データに「9時〜22時」という発話期間を設定することにより、ランダム発話データが以下の時間帯に発話されることを回避することができる。すなわち、ランダム発話データが、重要な内容の発話データの発話が集中すると考えられる重要発話時間帯:「5時〜9時」と、深夜の時間帯(22時以降から翌朝5時まで)とに、発話されることを回避することができる。
ここで、上記発話期間において上記予定についての発話データを発話する家庭内機器1は、上記発話期間において上記ユーザが使用する可能性が最も高いと考えられる家庭内機器1であることが望ましい。例えば、一般的に、朝という時間帯にユーザの使用頻度が高い家庭内機器1は、冷蔵庫1bであると考えられる。朝食等の準備のためにユーザは冷蔵庫1bを使用すると考えられるからである。したがって、ユーザがスケジュール登録した予定の予定日当日の朝に、該予定についての発話データを発話する家庭内機器1としては、冷蔵庫1bが好適である。また、例えば、帰宅後に空調装置1eを使用する傾向のあるユーザについて、該ユーザに次の日の予定に関する内容の発話を行う家庭内機器1としては、空調装置1eが好適である。
同様に、或るユーザ(例えば、子供)に関係する予定等については、該ユーザに対して、発話するのが好適である。また、ユーザの属性(例えば、性別、年齢、趣味、住所、および学校または職場の位置)を認識し、もしくは推定して、該ユーザの属性に対応する内容の発話データを、該ユーザに発話してもよい。ユーザの属性に対応する内容としては、例えば、ユーザの年齢、性別等に応じた商品および店舗の紹介を挙げることができる。すなわち、家庭内機器1は、発話タイミングを検知したタイミングにおいて、家庭内機器1が発話する発話データを聞くのがどのユーザであるのかを認識して、該ユーザに関係する(該ユーザの属性に対応する)内容の発話データを発話してもよい。
例えば、冷蔵庫1bは図示しないカメラ等を備え、ユーザが冷蔵庫1bを使用しようとするタイミング(つまり、発話タイミング)を検知するとともに、該発話タイミングにおいて冷蔵庫1bを使用しようとするユーザの顔等を認証して、ユーザを認識してもよい。また、冷蔵庫1bは図示しないマイク等を備え、発話タイミングを検知するとともに、該発話タイミングにおいて冷蔵庫1bを使用しようとするユーザの声紋等によって、ユーザを認識してもよい。さらに、冷蔵庫1bは図示しない指紋認証部等を例えば扉に備え、発話タイミングを検知するとともに、該発話タイミングにおいて扉(指紋認証部)に触れているユーザの指紋等を認証して、ユーザを認識してもよい。つまり、家庭内機器1は、発話タイミングを検知したタイミングにおいて、ユーザ認証のための既知の方法を利用して、家庭内機器1が発話する発話データを聞くのがどのユーザであるのかを認識することができる。そして、認識したユーザに関係する内容の発話データを、家庭内機器1が発話するとしてもよい。
なお、ユーザを認識する家庭内機器1と、該ユーザに対して該ユーザに関係する内容の発話データを発話する家庭内機器1とが同じであることは必須ではない。例えば、冷蔵庫1bが、冷蔵庫1bを使用しようとするユーザを認識し、該ユーザに対して、該ユーザに関係する内容の発話データを発話してもよい。また、冷蔵庫1bが発話タイミングを検知したタイミングにおいて、冷蔵庫1bが発話する発話データを聞く可能性の高いユーザを、ロボット掃除機1aが認識してもよい。そして、ロボット掃除機1aは、例えばサーバ2を介して、冷蔵庫1bが発話タイミングを検知したタイミングにおいて、冷蔵庫1bが発話する発話データを聞く可能性の高いユーザを、冷蔵庫1bに通知する。そして、冷蔵庫1bは、ロボット掃除機1aから通知されたユーザに関係する内容の発話データを発話してもよい。
また、冷蔵庫1bの発話する、或るユーザに関係する内容の発話データは、冷蔵庫1bが自装置の記憶部11に予め格納していた発話データであってもよいし、冷蔵庫1bが発話タイミングを検知した直後にサーバ2から取得する発話データであってもよい。すなわち、冷蔵庫1b(またはロボット掃除機1a)が冷蔵庫1bの発話する発話データを聞く可能性の高いユーザを認識すると、冷蔵庫1bは、記憶部11に予め格納されている発話データの中から、該ユーザに関係する内容の発話データを取得するとしてもよい。また、冷蔵庫1b(またはロボット掃除機1a)は、冷蔵庫1bが発話する発話データを聞く可能性の高いユーザを認識すると、サーバ2に、該ユーザを通知するとしてもよい。そして、上記通知に基づいて、サーバ2は、冷蔵庫1bに、冷蔵庫1bが発話する発話データを聞く可能性の高いユーザに関係する内容の発話データを、送信する。冷蔵庫1bは、冷蔵庫1bが発話する発話データを聞く可能性の高いユーザに関係する内容の発話データを、サーバ2から受信する(取得する)。冷蔵庫1bは、自装置の記憶部11に予め格納していた発話データ、または、発話タイミングを検知した直後にサーバ2から取得した発話データを発話する。
さらに、例えばユーザ毎に、どの時間帯にどの家庭内機器1を使用する傾向が高いかを、家庭内機器1の各々の使用ログ等を利用して把握することができる場合には、サーバ2は、家庭内機器1の各々に送信する発話データについて、以下の制御を行ってもよい。すなわち、サーバ2は、或るユーザ(例えば、子供)に関係する内容の発話データであって、所定の発話期間が設定された発話データを、該ユーザが該所定の発話期間において使用する可能性の高い家庭内機器1(例えば、テレビ1g)に送信してもよい。或るユーザに関係する内容の発話データを、該ユーザの使用頻度の高い家庭内機器1に送信することによって、サーバ2は、該発話データの送信処理の負荷を軽減することができ、また、該発話データを効率的に該ユーザに通知することができる。
家庭内機器1は、所定の発話タイミングにおいて、該発話タイミングにおいて発話可能な発話データを、つまり、該発話タイミングが上記発話期間内にある発話データを、発話する。発話タイミングとは、家庭内機器1が発話データを発話するタイミングであり、例えば、家庭内機器1が、ユーザが家庭内機器1を使用する(使用しようとする)ことを検知したタイミングである。具体的には、冷蔵庫1bの発話タイミングは、冷蔵庫1bが、ユーザにより冷蔵庫1bの扉が開けられたことを検知したタイミングである。例えば、「(予定日)当日の5時〜9時」という発話期間が設定され、予定日:「4月15日」である予定に関する発話データを冷蔵庫1bが発話するのは、冷蔵庫1bが、「4月15日の5時〜9時」に、冷蔵庫1bの扉が開けられたのを検知した場合のみである。冷蔵庫1bは、4月15日の4時半に、冷蔵庫1bの扉が開けられたのを検知したとしても、上記発話データを発話しない。発話タイミング:「4月15日の4時半」が、上記発話データに設定されている発話期間:「(予定日)当日の5時〜9時」内にないからである。つまり、家庭内機器1は、発話タイミングにおいて、該発話タイミングを含む発話期間が設定されている発話データを、発話する。
なお、詳細は後述するが、家庭内機器1が所定の発話タイミングにおいて1回だけ発話可能な発話データは、個別データIndD1、共通データComD1、および基本発話データBasD1の3つに分類される。家庭内機器1は、サーバ2から、個別データIndD1および共通データComD1の少なくとも一方を受信することができる。家庭内機器1がサーバ2から取得する個別データIndD1および共通データComD1を追加発話データAddD1と呼ぶことにする。基本発話データBasD1は、家庭内機器1が予め記憶部11に格納している発話データである。家庭内機器1は、発話タイミングにおいて発話可能な個別データIndD1または共通データComD1が無い場合、該発話タイミングにおいて基本発話データBasD1を発話する。
スマートフォン3は、ユーザからの予定の入力(予定入力)を受け付け、該予定に係る情報をサーバ2に送信する情報端末である。また、スマートフォン3は、家庭内機器1およびユーザが書き込んだメッセージ等を家族伝言板等に表示する。スマートフォン3は、入力面、表示面等を備える。ユーザは上記入力面をタッチし、スマートフォン3に当該入力面における位置を指定することにより(入力面上の座標を与えることにより)、スマートフォン3に予定を入力する。上記のように、スマートフォン3は携帯型の情報端末である。ここで、スマートフォン3と同等の機能は、携帯電話、パーソナルコンピュータ、タブレット型端末などでも実現できることに注意する。すなわち、必要な情報を入出力可能な機器でありさえすれば、端末はスマートフォンでなくともよい。
ホームサーバ2cには、家庭内機器1が通信可能に無線接続されている。ただし、ホームサーバ2cと家庭内機器1とが有線接続されていてもよい。なお、図2は、家庭内機器1が、ロボット掃除機1a、冷蔵庫1b、洗濯機1c、調理機器1d、空調装置1e、掃除機ロボットではない掃除機1f、およびテレビ1gである例を示すが、家庭内機器の種類および数は上記機器に限定されない。
エージェントサーバ2aは、スマートフォン3から、ユーザがスマートフォン3に入力した予定についての情報を受信し、該予定についての発話を家庭内機器1に発話させるための発話データ(個別データIndD1)を生成する。また、エージェントサーバ2aは、家庭内機器1に発話させるための発話データであって、上記予定とは関係のない発話データ(共通データComD1)を、関連情報源4から取得する共通データ基礎情報等に基づいて生成する。そして、エージェントサーバ2aは、個別データIndD1と共通データComD1との各々に予め対応付けられた優先度に基づいて、個別データIndD1と共通データComD1との家庭内機器1への送信を制御する。例えば、エージェントサーバ2aは、個別データIndD1と共通データComD1とについて、個別データIndD1と共通データComD1との各々に予め対応付けられた優先度に応じて、どちらを優先して家庭内機器1に発話させるべきかを判定する。そして、エージェントサーバ2aは、上記判定結果に応じて、個別データIndD1と共通データComD1との家庭内機器1への送信順序を制御する。
なお、個別データIndD1とは、エージェントサーバ2aが、ユーザ(図2に示す例ではお父さん、お母さん、子供)の宅内にある家庭内機器1のみに送信し、別の家庭内機器1’には送信しない発話データである。例えば、個別データIndD1を発話することができるのは、家庭内機器1だけであり、別の家庭内機器1’は個別データIndD1を発話することができない。また、家庭内機器1’だけが個別データIndD2を発話することができ、家庭内機器1は個別データIndD2を発話することができない。個別データIndD1は、例えば、上記ユーザがスマートフォン3に入力した予定に関する内容の発話データである。また、共通データComD1とは、エージェントサーバ2aが、上記「お父さん、お母さん、子供」の宅内にある家庭内機器1と、上記「お父さん、お母さん、子供」の宅内以外の宅内に所在する別の家庭内機器1’とに送信する発話データである。家庭内機器1と家庭内機器1’とはともに、エージェントサーバ2aから取得する共通データComD1を発話することができる。以上を整理すれば、エージェントサーバ2aは、或る宅内(宅内A)にある家庭内機器1のみに個別データIndD1を送信し、該家庭内機器1と別の宅内(宅内B)にある家庭内機器1’とに共通データComD1を送信する。そして、エージェントサーバ2aは、個別データIndD1と共通データComD1との各々に予め対応付けられた優先度に応じて、個別データIndD1と共通データComD1との家庭内機器1への送信を制御する。
さらに、エージェントサーバ2aは、家庭内機器1の状態、家庭内機器1が取得した情報、およびユーザの書き込み内容等に応じて、家庭内機器1の各々を擬人化したキャラクタとして、家族伝言板にメッセージ等を書き込む。これにより、ユーザは、家族伝言板において家庭内機器1の各々とのコミュニケーションを疑似体験できる。
なお、以下では、ユーザが入力した予定についての情報を受信する機能、該予定についての個別データIndD1を生成する機能、共通データComD1を生成する機能、および、個別データIndD1と共通データComD1との各々に予め対応付けられた優先度に基づいて、個別データIndD1と共通データComD1との家庭内機器1への送信を制御する機能を、エージェントサーバ2aが備えた例を説明する。ただし、これらの機能は個別のサーバに搭載してもよい。
家族伝言板サーバ2bは、スマートフォン3a、3b、および3cに対する家族伝言板の表示画面の提示、および書き込みの管理等の、家族伝言板に関する処理全般を行う。
ホームサーバ2cは、家庭内機器1の各々とエージェントサーバ2aとの間の情報の送受信を統括して制御する。具体的には、ホームサーバ2cは、エージェントサーバ2aから個別データIndD1と共通データComD1との少なくとも一方を受信すると、これを家庭内機器1の各々に送信する。また、ホームサーバ2cは、家庭内機器1から取得した情報を、エージェントサーバ2aに送信する。
ただし、ホームサーバ2cは、伝言板システム100の構成に必須ではない。すなわち、個々の家庭内機器1がエージェントサーバ2aと直接的に情報の送受信を行う構成であっても良い。
なお、以下では、図2に示されるエージェントサーバ2a、家族伝言板サーバ2b、およびホームサーバ2cが有する本質的な機能を、「サーバ2」が統合的に備えているとして説明する。
(発話データの概要)
次に、説明の簡略化のため、家庭内機器1が発話可能な発話データについて、概要を説明しておく。
図3は、家庭内機器1(例えば、冷蔵庫1b)が発話可能な発話データの一例を整理して示す図である。図に示すように、冷蔵庫1bが発話可能な発話データは、ランダム発話データと発話期間特定発話データとに大別される。ランダム発話データは、発話期間内に冷蔵庫1bが何回でも発話することのできる発話データである。発話期間特定発話データは、所定の発話期間(例えば、朝5時から朝9時)内に冷蔵庫1bが1回だけ発話する発話データである。なお、朝5時から朝9時の間に冷蔵庫1bが1回だけ発話する発話期間特定発話データであって、「おはよう。今日は○月○日(○曜日)。」との発話の後に続けて発話する発話期間特定発話データを、特に「おはよう後発話データ」と呼ぶことにする。
発話期間特定発話データには、冷蔵庫1bがサーバ2から取得する追加発話データAddD1と、冷蔵庫1bが予め準備している基本発話データBasD1との2種類がある。そして、追加発話データAddD1には、共通データComD1と、個別データIndD1との2種類がある。例えば、「おはよう後発話データ」(発話期間特定発話データ)には、「今日は何の日」発話データ(共通データComD1)と、「今日の予定」発話データ(個別データIndD1)との2種類がある。
「今日の予定」発話データは、特定のユーザ(例えば、図2に示す例ではお父さん、お母さん、子供)を対象としてのみ発話される発話データであって、つまり、該特定のユーザの宅内にある家庭内機器1のみが発話可能な発話データである。ユーザが、11月3日を予定日として「燃えるゴミの日」という予定を登録した場合、以下のような「今日の予定」発話データが生成され得る。すなわち、例えば、ユーザが予定日として登録した11月3日の朝を発話期間として設定された、「今日は燃えるゴミの日だよ。忘れずに出してね。」といった内容の発話データが、「今日の予定」発話データとして生成され得る。
「今日は何の日」発話データは、不特定のユーザを対象とする発話データであって、つまり、上記特定のユーザの宅内にある家庭内機器1と、上記特定のユーザ以外のユーザの宅内にある家庭内機器1’とがともに発話可能な発話データである。「今日は何の日」発話データは、例えば、11月3日の「調味料の日」の朝を発話期間として設定された、「調味料の日だよ。奥にしまい忘れている調味料ないかな?」といった内容の発話データである。
なお、「今日の予定」発話データと「今日は何の日」発話データとはともに、特定の日付(特定期間)に対応付けられる事象を内容とする発話データである点、および、家庭内機器1(冷蔵庫1b)が外部から(具体的にはサーバ2から)取得する点で共通する。すなわち、追加発話データAddD1は、特定の日付(特定期間)に対応付けられる事象を内容とする発話データであり、冷蔵庫1bがサーバ2から取得する発話データである。「今日の予定」発話データと「今日は何の日」発話データとの差異は、「今日の予定」発話データを発話可能な発話装置が特定されるのに対し、「今日は何の日」発話データを発話可能な発話装置は不特定である点である。
基本発話データBasD1は、例えば「今日も頑張りましょう」といった内容の発話データであり、特定の日付(特定期間)に対応付けられない事象を内容とする発話データである。家庭内機器1(冷蔵庫1b)は予め基本発話データBasD1を準備している。ただし、基本発話データBasD1についても発話期間は設定されており、つまり、家庭内機器1(冷蔵庫1b)が基本発話データBasD1を発話することができる期間が設定されている。
共通データComD1と個別データIndD1と基本発話データBasD1とに同じ発話期間が設定される場合、該発話期間に発話タイミングを検知した冷蔵庫1bは、いずれかの発話データを優先して発話する。例えば、冷蔵庫1bが11月3日(日曜日)の朝5時から朝9時までの発話期間において、「おはよう。今日は11月3日(日曜日)。」との発話の後に続けて発話することができる発話期間特定発話データには、以下の3種類の発話データがあるものとする。すなわち、冷蔵庫1bは、「調味料の日だよ。奥にしまい忘れている調味料ないかな?」という「今日は何の日」発話データ(共通データComD1)を、続けて発話することができる。また、冷蔵庫1bは、「今日は燃えるゴミの日だよ。忘れずに出してね。」という「今日の予定」発話データ(個別データIndD1)を、続けて発話することができる。さらに、冷蔵庫1bは、「今日も頑張りましょう」という基本発話データBasD1を、続けて発話することができる。この時、冷蔵庫1bが、「おはよう。今日は11月3日(日曜日)。」との発話の後に続けて、上記3種類のうちのいずれの発話データを発話するかは、冷蔵庫1bの記憶部11に格納されている発話データの状況による。冷蔵庫1bは、上記3種類の発話データの各々に対応付けられる発話優先順位(優先度)が最も高い発話データを優先して発話する。なお、詳細は後述するが、基本発話データBasD1の優先度は、追加発話データAddD1(すなわち、共通データComD1および個別データIndD1)の優先度よりも低い。
まず、冷蔵庫1b(発話装置)の概要を整理しておく。冷蔵庫1bは、音声による発話機能を備えた発話装置であって、発話期間(発話可能な期間)が予め設定されている発話データについて、発話時に発話可能な2つ以上の発話データがあるかを判定する判定部103(判定手段)と、判定部103によって上記発話時に発話可能な2つ以上の発話データがあると判定されると、上記発話時に発話可能な2つ以上の発話データの各々に予め対応付けられている発話優先順位(優先度)が高い発話データを優先して発話する音声出力部13(発話手段)と、を備える。
そして、冷蔵庫1bは、例えば予定日などの特定の日付(特定期間)に対応付けられる発話データであって、上記発話期間が重複する複数の追加発話データAddD1(発話データ)を、該追加発話データAddD1の各々に対応付けられている優先度が低い順にサーバ2から取得する追加データ取得部102(取得手段)をさらに備え、音声出力部13は、上記発話期間において、追加データ取得部102によって最後に取得された追加発話データAddD1のみを発話する。
冷蔵庫1bは、発話期間が予め設定されており、かつ、特定の日付に対応付けられない基本発話データBasD1を予め準備しており、判定部103は、発話期間が予め設定されており、かつ、特定の日付に対応付けられる追加発話データAddD1があるかを判定し、判定部103により上記発話時に発話可能な追加発話データAddD1が無いと判定されると、音声出力部13は、上記発話時に発話可能な基本発話データBasD1を発話する。
追加発話データAddD1(特定期間に対応付けられる発話データ)は、個別データIndD1(特定期間に対応付けられ、かつ、特定のユーザに対応付けられる発話データ)と、共通データComD1(特定期間に対応付けられ、かつ、特定のユーザに対応付けられない発話データ)と、を含む。
そして、個別データIndD1は、上記特定のユーザが関係する予定を内容とする発話データである。
次に、サーバ2の概要を整理しておく。サーバ2は、発話データを、発話期間(冷蔵庫1bが該発話データを発話可能な期間)を設定して、生成する発話データ生成部20(発話データ生成手段)と、発話データ生成部20によって生成される、特定期間に対応付けられる発話データであって、上記発話期間が重複する複数の追加発話データAddD1(発話データ)を、該追加発話データAddD1の各々に対応付けられる優先度が低い順に冷蔵庫1bに送信し、冷蔵庫1bに最後に送信した発話データのみを、上記発話期間において冷蔵庫1bに発話させる個別データ送信制御部25(発話データ送信手段)と、を備える。
そして、サーバ2において、発話データ生成部20によって生成される追加発話データAddD1(特定期間に対応付けられる発話データ)は、冷蔵庫1b(特定の発話装置)のみが発話可能な個別データIndD1(機器個別発話データ)と、冷蔵庫1bおよび冷蔵庫1b’(不特定の発話装置)が発話可能な共通データComD1(機器共通発話データ)とを含み、個別データ送信制御部25は、個別データIndD1を、個別データIndD1に対応付けられる冷蔵庫1bのみに送信する。
家族伝言板システム100は、発話データを、発話期間(冷蔵庫1bが該発話データを発話可能な期間)を設定して、生成する発話データ生成部20(発話データ生成手段)と、発話データ生成部20によって生成される、特定期間に対応付けられる発話データであって、上記発話期間が重複する複数の追加発話データAddD1(発話データ)を、該追加発話データAddD1の各々に対応付けられる優先度が低い順に冷蔵庫1bに送信する個別データ送信制御部25(発話データ送信手段)と、個別データ送信制御部25から、上記特定期間に対応付けられる発話データであって、上記発話可能な期間が重複する複数の追加発話データAddD1を、該追加発話データAddD1の各々に対応付けられている優先度が低い順に取得する追加データ取得部102(取得手段)と、追加データ取得部102によって最後に取得された追加発話データAddD1のみを、上記発話期間において発話する音声出力部13(発話手段)と、を含む。
以下、家族伝言板システム100における家庭内機器1、サーバ2、およびスマートフォン3について、図1を用いてより詳細に説明する。
〔構成の詳細〕
図1は、家庭内機器1、サーバ2、およびスマートフォン3の要部構成を示すブロック図である。なお、本実施の形態に直接関係のない部分(例えば、スマートフォン3について電話回線を利用して通話を実現する部分、冷蔵庫1bについて冷蔵・冷凍機能を実現する部分など)については、以下の説明および上記ブロック図から省略している。ただし、実施の実情に則して、家庭内機器1、サーバ2、およびスマートフォン3は、当該省略した構成を含んでもよい。
〔スマートフォン3の要部構成〕
スマートフォン3は、ユーザが入力するスケジュール(予定)を受け付ける入力受付部31と、入力受付部31が受け付けた予定についての情報をサーバ2に送信する端末通信部32とを備える。ユーザが、スマートフォン3に、スケジュール(予定)を登録(入力)すると、スマートフォン3は、該ユーザによって入力された該予定についての情報をサーバ2に送信する。
(スマートフォン3の操作)
図4は、スマートフォン3が、スマートフォン3の表示画面に、ユーザに選択可能に表示するイベントの一覧を示す図である。ユーザは、上記イベント一覧から、予定日に予定しているイベントを選択する。なお、各イベント(イベント種類)は、各イベントの概要を示す「イベント区分」ごとに分類される。例えば、「燃えるゴミ」、「燃えないゴミ」、「プラスチックゴミ」、「資源ゴミ」、「粗大ゴミ」、「大型ゴミ」、「古紙回収」、「その他」というイベント(イベント種類)は、「ゴミの日」というイベント区分に分類される。同様に、「結婚記念日」「誕生日」、「その他」というイベント(イベント種類)は、「記念日」というイベント区分に分類される。
なお、詳細は後述するが、各イベント(イベント種類)の予定についての発話データ(個別データIndD1)の優先度は、イベント区分ごとに設定される。また、同じ日に、イベント種類が違って、イベント区分が同じ複数のイベント(予定)をユーザが登録(入力)した場合、サーバ2は、イベント区分を用いて、該予定についての発話データ(個別データIndD1)を生成する。
図5は、ユーザがスマートフォン3を用いてスケジュール登録を行う場合に、つまり、予定情報を入力する場合に、スマートフォン3の表示画面に表示される画面の遷移を示した画面遷移図である。
図5の(a)は、カレンダー画面の一例である。2014年2月17日をユーザがタップすると、図5の(b)に例示する新規予定作成画面に遷移する。
図5の(b)は、ユーザがカレンダー画面で選択した日付についての予定を入力する新規予定作成画面の一例である。図では、カレンダー画面においてユーザがタップした2014年2月17日の新規予定作成画面が示されている。
図5の(c)は、新規予定作成画面の上段に表示されているタイトルボタンをユーザがタップした場合に表示画面に表示される情報の一例である。図5の(c)においては、カテゴリ(イベント区分)ごとに標準的な詳細カテゴリ(イベント種類)のアイコンが、図5の(b)に例示する新規予定作成画面に重畳して表示されている。例えば、「ゴミの日」というカテゴリの中に、「燃えるゴミ」、「燃えないゴミ」、「プラスチックゴミ」、「資源ゴミ」、「粗大ゴミ」、「大型ゴミ」、「古紙回収」、「その他」という詳細カテゴリのアイコンが示されている。同様に、「記念日」というカテゴリの中に、「結婚記念日」「誕生日」、「その他」という詳細カテゴリのアイコンが示されている。ユーザは、上記詳細カテゴリのアイコンをタップすることによって、新規予定作成画面に予定を入力することができる。例えば、図5の(c)に示す画面例において、ユーザは、「燃えるゴミ」のアイコンをタップして、2014年2月17日に、「燃えるゴミの日」という予定を入力することができる。
〔サーバ2の要部構成〕
サーバ2は、追加発話データAddD1(共通データComD1および個別データIndD1の少なくとも一方)を生成し、生成した追加発話データAddD1を家庭内機器1(例えば、冷蔵庫1b)に送信する。サーバ2は、発話データ生成部20、サーバ通信部23、リビジョン比較部24、個別データ送信制御部25、およびサーバ記憶部26を備える。
(サーバ2の記憶部に格納されているデータについて)
サーバ記憶部26は、サーバ2が使用する各種データを格納する。サーバ記憶部26は、サーバ2が実行する(1)制御プログラム、(2)OSプログラム、(3)各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを記憶する。上記の(1)〜(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。また、サーバ記憶部26には、共通データテーブル261、個別データテーブル262、および優先度定義テーブル263が格納されている。
共通データテーブル261には、共通データ生成部21が共通データ基礎情報等に基づいて生成した共通データComD1が格納される。図6の(a)は、共通データテーブル261の一例を示している。図に示すように、共通データテーブル261に格納される共通データComD1には、共通データComD1の変更を表す改訂番号であるリビジョン番号が付される。リビジョン番号の異なる共通データComD1は、異なる内容の発話データである。仮に、「4月3日は、インゲン豆の日だよ。冷蔵する時はラップで包んでね。冷凍する時は固めに茹でてね。」という内容の共通データComD1のリビジョン番号が「123」であるとき、「今日(4月5日)の誕生花は忘れな草。花言葉は『私を忘れないで』だよ。忘れられている食材ないかな?」という内容の共通データComD1のリビジョン番号は、「123」以外であればよく、例えば「124」であってもよい。図4の(a)の共通データテーブル261には、リビジョン番号:001であって、「調味料の日だよ。奥にしまい忘れている調味料ないかな?」という発話内容の共通データComD1が格納されている。
「発話期間」は、発話データについて、家庭内機器1が該発話データを発話することのできる期間を指定する情報である。例えば、図4の(a)の共通データテーブル261において、「調味料の日だよ。奥にしまい忘れている調味料ないかな?」という発話内容の共通データComD1を家庭内機器1が発話できるのは、5時から9時までである。つまり、家庭内機器1が5時から9時までに発話タイミングを検知した場合に、家庭内機器1は、「調味料の日だよ。奥にしまい忘れている調味料ないかな?」という発話内容の共通データComD1を発話し得る。
「発話方法」は、発話データについて、家庭内機器1が該発話データを発話する方法を指定する情報である。例えば、図4の(a)の共通データテーブル261に例示する「おはよう後」とは、家庭内機器1が、リビジョン番号:001の共通データComD1を、「おはよう後発話データ」として発話することを示している。すなわち、朝5時から朝9時の間に、冷蔵庫1bは1回だけ、「おはよう。今日は○月○日(○曜日)。」との発話の後に続けて、「調味料の日だよ。奥にしまい忘れている調味料ないかな?」と発話することができる。
「ボイスコード」は、発話データについて、発話期間および発話方法の組合せごとに設定される情報である。同じボイスコードの複数の発話データは、該発話データが共通データComD1であるか個別データIndD1であるかに関わらず、同じ発話期間、同じ発話方法で、家庭内機器1が発話可能な発話データである。例えば、「発話方法:おはよう後」の発話データは、朝5時から朝9時の間に、冷蔵庫1bが1回だけ、「おはよう。今日は○月○日(○曜日)。」との発話の後に続けて発話することのできる発話データである。したがって、「発話方法:おはよう後」の共通データComD1と、「発話方法:おはよう後」の個別データIndD1とには同じボイスコードが設定される。そして、ボイスコードが同じ共通データComD1と個別データIndD1とがある場合、冷蔵庫1bは、いずれか一方のみを、朝5時から朝9時の間に、「おはよう。今日は○月○日(○曜日)。」との発話の後に続けて1回発話する。冷蔵庫1bが、発話方法がともに「おはよう後」である(つまり、ボイスコードが同じである)共通データComD1と個別データIndD1とのいずれを発話するかについて、詳細は後述する。
「ボイスID」は、家庭内機器1が発話可能な全ての発話データの各々を一意に識別可能な情報である。
個別データテーブル262には、ユーザがスマートフォン3に入力した予定に基づいて個別データ生成部22が生成する個別データIndD1が格納される。図6の(b)は、個別データテーブル262の一例を示している。図6の(b)に例示する個別データテーブル262において、個別データIndD1は、共通データComD1と同様に、ボイスコード、ボイスID、発話方法、発話期間という項目を有し、これらについては説明済みなので詳細は省略する。個別データIndD1はさらに、「イベント」および「対象ユーザ」という項目を有する。
「イベント区分」は、個別データIndD1が、どのような区分のイベント(出来事)に係る予定を内容とする発話データであるかを示す情報である。例えば、「イベント区分:ゴミの日」である個別データIndD1は、「ゴミの日」の予定についての発話データである。個別データテーブル262におけるイベント区分は、スマートフォン3がユーザに選択可能に表示するイベント区分に一致する。
「発話可能機器」は、個別データIndD1を発話可能な家庭内機器1を特定する情報である。例えば、図2において、「お父さん」がスケジュール登録した「ゴミの日」の予定についての発話データは、図2の「お父さん」、「お母さん」、「たろう」の家庭にある家庭内機器1(例えば、冷蔵庫1b)が発話可能である。しかしながら、上記予定についての発話データを、別の家庭にある家庭内機器1’(例えば、冷蔵庫1b’)が発話することはない。したがって、上記予定についての個別データIndD1において「発話可能機器」は、「家庭内機器1(例えば、冷蔵庫1b)」となる。
なお、個別データIndD1は、「発話可能機器」の代わりに、該個別データIndD1をどのユーザに対して発話可能であるかを示す情報である「対象ユーザ」という項目を有してもよい。例えば、図2において、「お父さん」がスケジュール登録した「ゴミの日」の予定についての発話データを、図2の「お父さん」、「お母さん」、「たろう」に対して発話することが許可される場合、「対象ユーザ」を「お父さん、お母さん、たろう」としてもよい。「発話可能機器」の代わりに「対象ユーザ」を定義することにより、例えば、「お父さん」がスケジュール登録した予定について、サーバ2は、家庭内機器1に、「お父さんとお母さんにのみ発話させる」といった動作をさせることが可能となる。
優先度定義テーブル263は、共通データComD1および個別データIndD1の各々に優先度(発話優先順位)が対応付けられたテーブルである。より正確に言えば、優先度定義テーブル263において、共通データComD1については、共通データComD1自体に所定の優先度が設定され、個別データIndD1については、該個別データIndD1のイベント区分ごとに優先度が設定される。優先度定義テーブル263は、例えば図7に示すようなデータであってもよい。
図7に例示する優先度定義テーブル263において、「共通個別区分」という項目は、格納されている発話データが、共通データComD1であるのか、または個別データIndD1であるのかを識別するための情報である。具体的には、共通データComD1の共通個別区分は「共通」であり、個別データIndD1の共通個別区分は「個別」である。なお、図7の優先度定義テーブル263の「イベント区分/共通個別区分」の列において、共通個別区分:「共通」である個別データIndD1については、「個別」という共通個別区分は表示を省略され、イベント区分のみが表示されている。
「イベント区分」は、個別データテーブル262の説明において述べたように、共通個別区分:「個別」である個別データIndD1が、どのような区分のイベント(出来事)に係る予定を内容とする発話データであるかを示す情報である。詳細は後述するが、個別データIndD1の発話優先度は、該個別データIndD1のイベント区分ごとに、予め設定されている。
「登録締め切りタイミング」は、ユーザがスマートフォン3を用いてスケジュール登録した予定についての発話データ(個別データIndD1)をサーバ2が生成するために、ユーザはいつまでに該スケジュール登録をしなければならないかを示す情報である。
例えば、図7の優先度定義テーブル263の2行目には、イベント区分:ゴミの日である予定を予定日前日の15時までに入力した場合、該予定に係る個別データIndD1は、該予定日前日の夕方17時から22時まで発話可能であることが示されている。また、3行目には、上記予定を予定日前日の23時59分までに入力した場合、上記個別データIndD1は、予定日当日の朝5時から9時まで発話可能であることが示されている。
したがって、ユーザが、11月3日(日曜日)を予定日とする「燃えるゴミの日」の予定を、11月2日の15時までに入力した場合、サーバ2は、以下の2つの個別データIndD1を生成する。すなわち、サーバ2は、発話期間:「11月2日の17時から22時まで」である、「明日は『燃えるゴミの日』だよ。忘れずに出してね。」という個別データIndD1を生成する。また、サーバ2は、発話期間:「11月3日の朝5時から9時まで」であり、発話方法:「おはよう後」である、「今日は『燃えるゴミの日』だよ。忘れずに出してね。」という個別データIndD1を生成する。
また、ユーザが、11月3日(日曜日)を予定日とする「燃えるゴミの日」の予定を、11月2日の15時より後で23時59分までに入力した場合、サーバ2は、以下の個別データIndD1を生成する。すなわち、サーバ2は、発話期間:「11月3日の朝5時から9時まで」であり、発話方法:「おはよう後」である、「今日は『燃えるゴミの日』だよ。忘れずに出してね。」という個別データIndD1のみを生成する。
さらに、ユーザが、11月3日(日曜日)を予定日とする「燃えるゴミの日」の予定を、11月3日になってから入力した場合、サーバ2は、該予定に係る個別データIndD1を生成しない。
つまり、同じ予定日の同じイベント(イベント種類)の予定であっても、ユーザが該予定を入力した時刻に応じて、サーバ2は、該予定に係る、発話期間および発話方法の異なる複数の個別データIndD1を生成することができる。
「発話期間」、「発話方法」については、共通データテーブル261の説明において既に述べているので詳細は省略する。
「発話優先順位」は、少なくとも発話期間が同じである複数の発話データについて、該複数の発話データのうち、どの発話データを優先して家庭内機器1に発話させるかを示す情報である。なお、発話優先順位を示す数値が小さいほど、発話優先度が高い。
例えば、図7の優先度定義テーブル263には、発話期間:「当日5:00〜9:00」であって、発話方法:「おはよう後」である4つの発話データについて、「イベント区分」と「共通個別区分」とに応じて、以下のように発話優先順位が設定されることが示されている。すなわち、共通個別区分:「共通」である共通データComD1には、発話優先順位:「3」が設定されている。共通個別区分:「個別」であり、イベント区分:「ゴミの日」である個別データIndD1には、発話優先順位:「2」が設定されている。共通個別区分:「個別」であり、イベント区分:「記念日」である個別データIndD1には、発話優先順位:「1」が設定されている。共通個別区分:「個別」であり、イベント区分:「おでかけ」である個別データIndD1には、発話優先順位:「4」が設定されている。したがって、ボイスコードが同じであって、「記念日」の予定に係る個別データIndD1と、「ゴミの日」の予定に係る個別データIndD1とがある場合、家庭内機器1は、「記念日」の予定に係る個別データIndD1を優先して発話する。また、ボイスコードが同じであって、「記念日」または「ゴミの日」の予定に係る個別データIndD1と、共通データComD1とがある場合、家庭内機器1は、「記念日」または「ゴミの日」の予定に係る個別データIndD1を優先して発話する。ボイスコードが同じであって、「おでかけ」の予定に係る個別データIndD1と、共通データComD1とがある場合、家庭内機器1は、共通データComD1を優先して発話する。
なお、図7の優先度定義テーブル263には、発話方法:「おはよう後」の発話データについてのみ、発話優先順位が示されている。しかしながら、発話優先順位が設定されるのは、発話方法:「おはよう後」の発話データのみであるわけではない。発話優先順位は、少なくとも発話期間が同じである複数の発話データについて、設定され得る。また、ユーザは、優先度定義テーブル263について、個別データIndD1および共通データComD1に設定される優先度(発話優先順位)を変更することができてもよい。
(サーバ2の記憶部以外の構成について)
発話データ生成部20は、冷蔵庫1bに発話させる追加発話データAddD1を、発話期間を設定して生成する。発話データ生成部20は、共通データ生成部21と個別データ生成部22とを含む。
共通データ生成部21は、関連情報源4から取得する共通データ基礎情報等に基づいて、共通データComD1を生成し、生成した共通データComD1を共通データテーブル261に格納する。
個別データ生成部22は、スマートフォン3から、ユーザがスマートフォン3に入力した(スケジュール登録した)予定についての情報を取得し、該予定についての発話データである個別データIndD1を生成する。
例えば、ユーザが所定の登録締め切りタイミングまでに「燃えるゴミ」というイベント(イベント種類)を入力した場合、個別データ生成部22は、少なくとも以下の個別データIndD1を生成する。すなわち、個別データ生成部22は、発話方法が「おはよう後」であって、発話期間が「5時から9時まで」であって、イベント区分が「ゴミの日」である、「今日は燃えるゴミの日だよ。忘れずに出してね。」という発話内容の個別データIndD1を生成する。
なお、同じ日に、イベント種類が違って、イベント区分が同じ複数のイベント(予定)をユーザが登録(入力)した場合、個別データ生成部22は、イベント区分を用いて、該予定についての個別データIndD1を生成する。
例えば、ユーザが、所定の登録締め切りタイミングまでに、イベント区分がともに「ゴミの日」である「燃えるゴミ」と「燃えないゴミ」とを同じ予定日にスケジュール登録した場合、個別データ生成部22は、少なくとも以下の個別データIndD1を生成する。すなわち、個別データ生成部22は、発話方法が「おはよう後」であって、発話期間が「5時から9時まで」であって、イベント区分が「ゴミの日」である、「今日は『ゴミの日』だよ。忘れずに出してね。」という発話内容の個別データIndD1を生成する。
個別データ生成部22は、ユーザが入力した(スケジュール登録した)予定についての個別データIndD1を、該個別データIndD1を発話可能な家庭内機器1を特定して、つまり「発話可能機器」を設定して、生成する。例えば、個別データ生成部22は、図2のお父さんがスケジュール登録したゴミの日の予定に係る個別データIndD1の「発話可能機器」を、該お父さんの属する家庭(家庭A)にある家庭内機器1(例えば、冷蔵庫1b)とする。個別データ生成部22は、例えば、上記家庭A以外の家庭である家庭Bに属するママがスケジュール登録した誕生日の予定に係る個別データIndD2の「発話可能機器」を、該家庭Bにある家庭内機器1’(例えば、冷蔵庫1b’)とする。
一方、共通データ生成部21が生成する共通データComD1については、該共通データComD1を発話可能な家庭内機器は特定されない。例えば、図2のお父さんの属する家庭Aにある家庭内機器1(例えば、冷蔵庫1b)も、該家庭A以外の家庭である家庭Bにある家庭内機器1’(例えば、冷蔵庫1b’)も、共通データComD1を発話することができる。詳細は後述するが、サーバ2のサーバ通信部23は、共通データComD1を不特定の家庭内機器に送信し、個別データIndD1を、該個別データIndD1の「発話可能機器」において特定されている家庭内機器1のみに送信する。
サーバ通信部23は、家庭内機器1(例えば、冷蔵庫1b)との通信を行う。具体的には、サーバ通信部23は、冷蔵庫1bから、冷蔵庫1bの記憶部11に格納されている共通データComD1のリビジョン番号を受信する。また、サーバ通信部23は、リビジョン比較部24からの指示に基づいて、冷蔵庫1bに、サーバ2のサーバ記憶部26に格納されている最新のリビジョン番号の共通データComD1を送信する。
さらに、サーバ通信部23は、個別データ送信制御部25からの指示に基づいて、個別データIndD1を、該個別データIndD1の「発話可能機器」において特定されている冷蔵庫1bに送信する。
なお、サーバ通信部23による冷蔵庫1bへの共通データComD1および個別データIndD1の送信順序は、個別データ送信制御部25によって制御される。具体的には、サーバ通信部23は、個別データ送信制御部25からの指示に従って、発話データ生成部20によって生成される複数の追加発話データAddD1を、該追加発話データAddD1の各々に対応付けられる優先度が低い順に冷蔵庫1bに送信する。
リビジョン比較部24は、サーバ通信部23の取得する、家庭内機器1の記憶部11に格納されている共通データComD1のリビジョン番号と、サーバ記憶部26に格納されている共通データComD1のリビジョン番号とを比較する。そして、リビジョン比較部24は、家庭内機器1の記憶部11に格納されている共通データComD1のリビジョン番号と、サーバ記憶部26に格納されている共通データComD1のリビジョン番号とが異なると判定すると、以下の処理を行う。すなわち、リビジョン比較部24は、サーバ通信部23に、サーバ記憶部26に格納されている共通データComD1を、該共通データComD1のリビジョン番号とともに、家庭内機器1へ送信するよう指示する。
個別データ送信制御部25は、以下の判定を行い、該判定の結果に応じて、サーバ通信部23による追加発話データAddD1の送信を制御する。すなわち、個別データ送信制御部25は、先ず、共通データComD1に対応付けられる優先度(発話優先順位)よりも高い優先度が対応付けられる個別データIndD1が、個別データテーブル262に格納されているかを判定する。共通データComD1に対応付けられる優先度より高い優先度が対応付けられる個別データIndD1が個別データテーブル262にある場合、個別データ送信制御部25は、該個別データIndD1のボイスコードを取得する。そして、個別データ送信制御部25は、サーバ通信部23に、サーバ通信部23が上記個別データIndD1のボイスコードと同じボイスコードの共通データComD1を家庭内機器1に送信した後に、上記個別データIndD1を家庭内機器1に送信させる。つまり、サーバ通信部23が上記ボイスコードの共通データComD1を未だ家庭内機器1に送信していない場合、個別データ送信制御部25は、サーバ通信部23に、該共通データComD1の送信後に、上記個別データIndD1を家庭内機器1に送信させる。また、サーバ通信部23が上記ボイスコードの共通データComD1を既に家庭内機器1に送信していた場合、個別データ送信制御部25は、サーバ通信部23に、上記個別データIndD1を家庭内機器1に送信させる。個別データ送信制御部25は、共通データComD1に対応付けられる優先度より高い優先度が対応付けられる個別データIndD1を、該個別データIndD1のボイスコードと同じボイスコードの共通データComD1よりも後に、家庭内機器1に送信させる。つまり、同じボイスコードの個別データIndD1と共通データComD1とがある場合、個別データ送信制御部25は、サーバ通信部23に、優先度(発話優先順位)が低い方を先に家庭内機器1に送信させ、優先度が高い方を後に送信させる。言い換えれば、個別データ送信制御部25は、ボイスコードが同じ複数の発話データについて、サーバ通信部23に、優先度(発話優先順位)が劣後する順に該発話データを送信させる。個別データ送信制御部25は、サーバ通信部23に、例えば、優先度が最も低い発話データを最初に送信させ、優先度が最も高い発話データを最後に送信させる。同じボイスコードの複数の発話データについて、優先度(発話優先順位)が劣後する順に家庭内機器1に送信させる(つまり、優先度が低い発話データほど早い順番で送信させる)とすることにより、送信方法をより単純化することができる。
共通データComD1に対応付けられる優先度より高い優先度が対応付けられる個別データIndD1が個別データテーブル262にない場合、個別データ送信制御部25は、個別データIndD1を家庭内機器1に送信しない。
例えば、図7に例示する優先度定義テーブル263において、共通データComD1に対応付けられている優先度(発話優先順位)は「3」である。また、発話優先順位:「1」に対応付けられるイベント区分は「記念日」であり、発話優先順位:「2」に対応付けられるイベント区分は「ゴミの日」である。したがって、個別データ送信制御部25は、個別データテーブル262を参照して、イベント区分が「記念日」または「ゴミの日」である個別データIndD1が個別データテーブル262に格納されているかを確認する。
個別データ送信制御部25は、イベント区分が「記念日」または「ゴミの日」である個別データIndD1が個別データテーブル262に格納されているのを確認すると、該個別データIndD1のボイスコードを取得する。そして、上記ボイスコードと同じボイスコードの共通データComD1が共通データテーブル261に格納されている場合、個別データ送信制御部25は、さらに、該共通データComD1が家庭内機器1に送信済か否かを確認する。上記共通データComD1が家庭内機器1に送信済である場合、個別データ送信制御部25は、イベント区分が「記念日」または「ゴミの日」である上記個別データIndD1を家庭内機器1へ送信させる。上記共通データComD1が家庭内機器1に未送信である場合、個別データ送信制御部25は、サーバ通信部23が上記共通データComD1を家庭内機器1へ送信した後に、サーバ通信部23に、上記個別データIndD1を家庭内機器1へ送信させる。
イベント区分が「記念日」または「ゴミの日」である個別データIndD1が個別データテーブル262に格納されていないのを確認すると、個別データ送信制御部25は、サーバ通信部23に、個別データIndD1の家庭内機器1への送信を実行させない。または、優先度が低い個別データIndD1を家庭内機器1へ送信した後に、該個別データIndD1と同じボイスコードの共通データComD1を家庭内機器1へ送信させる。
〔冷蔵庫の要部構成〕
冷蔵庫1bは、発話タイミングを(例えば、ユーザにより冷蔵庫1bの扉が開けられたことを)検知すると、該発話タイミングにおいて発話可能な発話データを発話する。冷蔵庫1bは、サーバ2から追加発話データAddD1(共通データComD1および個別データIndD1の少なくとも一方)を受信すると、該追加発話データAddD1を追加データテーブル111に格納する。冷蔵庫1bは、発話タイミングにおいて発話可能な発話データが追加データテーブル111に格納されている(つまり、該発話タイミングにおいて発話可能な追加発話データAddD1が追加データテーブル111に格納されている)場合、該発話データを発話する。上記発話タイミングにおいて発話可能な発話データが追加データテーブル111に格納されていない場合、冷蔵庫1bは、基本データテーブル112を参照し、上記発話タイミングにおいて発話可能な基本発話データBasD1を発話する。冷蔵庫1bは、制御部10、記憶部11、通信部12、および音声出力部13を備える。
通信部12は、サーバ2との通信を行う。具体的には、通信部12は、サーバ2から、追加発話データAddD1(共通データComD1および個別データIndD1の少なくとも一方)を受信する。また、通信部12は、リビジョン通知部101から通知されるリビジョン番号をサーバ2に送信する。
音声出力部13は、出力制御部104から取得する発話データを、発話タイミングにおいて音声出力する。
制御部10は、冷蔵庫1bの機能を統括して制御するものであり、リビジョン通知部101、追加データ取得部102、判定部103、および出力制御部104を含む。
リビジョン通知部101は、追加データテーブル111を参照して、追加データテーブル111に格納されている追加発話データAddD1(共通データComD1および個別データIndD1の少なくとも一方)のリビジョン番号を通信部12に通知する。
追加データ取得部102は、通信部12から、通信部12がサーバ2から受信した追加発話データAddD1(共通データComD1および個別データIndD1の少なくとも一方)を取得し、該追加発話データAddD1を追加データテーブル111に格納する。具体的には、追加データ取得部102は、先ず、取得した共通データComD1または個別データIndD1のボイスコードと同じボイスコードの共通データComD1または個別データIndD1が既に追加データテーブル111に格納されているかを判定する。つまり、上記追加発話データAddD1(共通データComD1または個別データIndD1)のボイスコードと同じボイスコードの発話データ(共通データComD1または個別データIndD1)が追加データテーブル111に格納されているかを判定する。
通信部12から取得した追加発話データAddD1のボイスコードと同じボイスコードの発話データが既に追加データテーブル111に格納されていると判定すると、追加データ取得部102は、次に以下の処理を実行する。すなわち、追加データ取得部102は、通信部12から取得した追加発話データAddD1によって、追加データテーブル111に既に格納されている、該追加発話データAddD1のボイスコードと同じボイスコードの発話データを、上書きする。
上記追加発話データAddD1のボイスコードと同じボイスコードの発話データが未だ追加データテーブル111に格納されていないと判定すると、追加データ取得部102は、以下の処理を実行する。すなわち、追加データ取得部102は、通信部12から取得した追加発話データAddD1(共通データComD1または個別データIndD1)を追加データテーブル111に格納する。
判定部103は、発話タイミングにおいて発話可能な(つまり、該発話タイミングが発話期間内にある)追加発話データAddD1(共通データComD1または個別データIndD1)が追加データテーブル111に格納されているかを判定する。そして、上記判定の結果に基づいて、サーバ2が発話すべき発話データを出力制御部104に通知する。
具体的には、上記発話タイミングが発話期間内にある追加発話データAddD1が追加データテーブル111に格納されていないと判定する場合、判定部103は、以下の処理を実行する。すなわち、判定部103は、基本データテーブル112に格納されている、上記発話タイミングにおいて発話可能な基本発話データBasD1を、最も優先度(発話優先順位)が低い発話データとして、出力制御部104に通知する。
上記発話タイミングが発話期間内にある追加発話データAddD1(共通データComD1または個別データIndD1)があると判定する場合、判定部103は、該共通データComD1または個別データIndD1を、出力制御部104に通知する。
すなわち、判定部103は、発話タイミングにおいて発話可能な発話データのうち、優先度(発話優先順位)が最も高い発話データを出力制御部104に通知する。共通データComD1および個別データIndD1の優先度は、基本発話データBasD1の優先度よりも高い。したがって、発話タイミングにおいて発話可能な、共通データComD1または個別データIndD1が追加データテーブル111に格納されている場合、判定部103は、該共通データComD1または個別データIndD1を出力制御部104に通知する。発話タイミングにおいて発話可能な、共通データComD1も個別データIndD1も追加データテーブル111に格納されていない場合、判定部103は、該発話タイミングにおいて発話可能な基本発話データBasD1を出力制御部104に通知する。
出力制御部104は、音声出力部13による音声出力を制御する。具体的には、出力制御部104は、判定部103から通知される、共通データComD1、個別データIndD1、または基本発話データBasD1を音声出力部13に通知し、該発話データを発話タイミングにおいて音声出力部13に音声出力させる。
記憶部11は、冷蔵庫1bが使用する各種データを格納する。記憶部11は、冷蔵庫1bの制御部10が実行する(1)制御プログラム、(2)OSプログラム、(3)各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを記憶する。上記の(1)〜(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。また、記憶部11には、追加データテーブル111、および基本データテーブル112が格納されている。
追加データテーブル111には、追加データ取得部102によって、通信部12がサーバ2から受信した追加発話データAddD1(共通データComD1または個別データIndD1)が格納される。上記の通り、通信部12が受信した追加発話データAddD1のボイスコードと同じボイスコードの発話データ(共通データComD1または個別データIndD1)が既に追加データテーブル111に格納されている場合、追加データ取得部102は以下の処理を実行する。すなわち、追加データ取得部102は、通信部12から取得した発話データによって、該発話データのボイスコードと同じボイスコードの発話データであって、追加データテーブル111に既に格納されている発話データを、上書きする。したがって、追加データテーブル111に、同じボイスコードの発話データが2つ以上格納されているという状態は基本的には発生しない。
基本データテーブル112は、発話タイミングにおいて発話可能な共通データComD1および個別データIndD1がない場合に、音声出力部13によって発話される基本発話データBasD1が格納されている。上記の通り、基本データテーブル112に格納されている発話データ(基本発話データBasD1)の優先度(発話優先順位)は、共通データComD1および個別データIndD1の優先度よりも低い。また、基本発話データBasD1についても、発話期間が設定されている。
以上を整理すると、冷蔵庫1bは以下のようにして、発話データを発話する。すなわち、冷蔵庫1bの判定部103は、発話期間(発話可能な期間)が予め設定されている発話データについて、発話タイミング(発話時)に発話可能な2つ以上の発話データがあるかを判定する(判定ステップ)。ここで、基本データテーブル112には、上記発話タイミングを発話期間内に含む基本発話データBasD1が格納されている。したがって、判定部103は、上記基本発話データBasD1以外に、上記発話タイミングを発話期間内に含む追加発話データAddD1が無いかを、追加データテーブル111を参照して、判定する。つまり、「上記発話タイミングに発話可能な2つ以上の発話データがある」とは、上記発話タイミングを発話期間内に含む基本発話データBasD1と、上記発話タイミングを発話期間内に含む追加発話データAddD1とがあることを意味する。
判定部103が、上記発話タイミングを発話期間内に含む基本発話データBasD1と、上記発話タイミングを発話期間内に含む追加発話データAddD1とがあると判定すると、音声出力部13は以下の処理を実行する。すなわち、音声出力部13は、上記発話タイミングに発話可能な2つ以上の発話データ(つまり、上記基本発話データBasD1と上記追加発話データAddD1)の各々に予め対応付けられている優先度が高い発話データを優先して発話する(発話ステップ)。ここで、上記の通り、基本発話データBasD1の優先度(発話優先順位)は、追加発話データAddD1(共通データComD1および個別データIndD1)の優先度よりも低い。したがって、判定部103が、上記発話タイミングを発話期間内に含む基本発話データBasD1と、上記発話タイミングを発話期間内に含む追加発話データAddD1とがあると判定すると、音声出力部13は該追加発話データAddD1を発話する。
(サーバ2から家庭内機器1への発話データ送信処理の流れ)
次に、サーバ2による、冷蔵庫1b(家庭内機器1)への発話データの送信処理について説明する。サーバ2による冷蔵庫1bへの発話データの送信処理は、共通データ送信処理と個別データ送信処理とに大別することができる。
以下、先ず図8を用いて、共通データ送信処理について詳細を説明する。
図8は、サーバ2が、共通データComD1を冷蔵庫1bに送信する共通データ送信処理の一例を示すフローチャートである。
サーバ2は、冷蔵庫1b(発話装置)から、冷蔵庫1bの共通データComD1の、つまり、記憶部11の追加データテーブル111に格納されている共通データComD1の、リビジョン番号を取得する(S21)。
サーバ2は、冷蔵庫1bの共通データComD1のリビジョン番号と、自装置の共通データComD1のリビジョン番号とが一致するかを判定する(S22)。つまり、サーバ2は、冷蔵庫1bの追加データテーブル111に格納されている共通データComD1のリビジョン番号と、サーバ記憶部26の共通データテーブル261に格納されている共通データComD1のリビジョン番号とが一致するかを判定する。
冷蔵庫1bの共通データComD1のリビジョン番号と、自装置の共通データComD1のリビジョン番号とが一致すると判定した場合(S22でYES)、サーバ2は共通データ送信処理を終了する。
冷蔵庫1bの共通データComD1のリビジョン番号と、自装置の共通データComD1のリビジョン番号とが一致しないと判定した場合(S22でNO)、サーバ2は、自装置の共通データComD1を冷蔵庫1bに送信する(S23)。つまり、サーバ記憶部26の共通データテーブル261に格納されている共通データComD1を冷蔵庫1bに送信する。
次に、図9を用いて、個別データ送信処理について詳細を説明する。
図9は、サーバ2が、個別データIndD1を冷蔵庫1bに送信する個別データ送信処理の一例を示すフローチャートである。
サーバ2の発話データ生成部20(共通データ生成部21および個別データ生成部22)が、発話期間を設定して、個別データIndD1および共通データComD1の少なくとも一方を生成する(S31)と、個別データ送信制御部25は以下の処理を実行する。
すなわち、個別データ送信制御部25は、先ず、特定の発話機器(冷蔵庫1b)が発話可能な個別データIndD1が存在するかを判定する(S32)。具体的には、個別データ送信制御部25は、個別データテーブル262を参照して、冷蔵庫1bを「発話可能機器」とする個別データIndD1が個別データテーブル262に格納されているかを判定する。
冷蔵庫1bを「発話可能機器」とする個別データIndD1がない場合(S32でNO)、サーバ2は個別データ送信処理を終了する。
冷蔵庫1bを「発話可能機器」とする個別データIndD1がある場合(S32でYES)、サーバ2は次に、冷蔵庫1bが発話可能であって、かつ、共通データComD1の優先度より高い優先度が対応付けられる個別データIndD1が存在するかを判定する(S33)。ここで、図7に例示する優先度定義テーブル263において、共通データComD1に対応付けられる優先度(発話優先順位)は「3」、発話優先順位:「1」のイベント区分は「記念日」、発話優先順位:「2」のイベント区分は「ゴミの日」である。したがって、サーバ2は、イベント区分が「記念日」または「ゴミの日」であって、発話可能機器が「冷蔵庫1b」である個別データIndD1が、個別データテーブル262に格納されているかを確認する。
イベント区分が「記念日」または「ゴミの日」であって、発話可能機器が「冷蔵庫1b」である個別データIndD1がない場合(S33でNO)、サーバ2は個別データ送信処理を終了する。
上記条件を満たす個別データIndD1がある場合(S33でYES)、サーバ2は、冷蔵庫1bが発話可能であって、かつ、最も高い優先度が対応付けられる個別データIndD1を取得する(S34)。つまり、個別データテーブル262に、発話可能機器が「冷蔵庫1b」であって、「記念日」の個別データIndD1と「ゴミの日」の個別データIndD1とが2つとも格納されている場合、サーバ2は、該「記念日」の個別データIndD1を取得する。また、個別データテーブル262に、発話可能機器が「冷蔵庫1b」であって、「記念日」の個別データIndD1または「ゴミの日」の個別データIndD1が格納されている場合、サーバ2は、該個別データIndD1を取得する。
そして、サーバ2は、冷蔵庫1bが発話可能であって、かつ、最も高い優先度が対応付けられた個別データIndD1を、該個別データIndD1のボイスコードと同じボイスコードの共通データComD1を冷蔵庫1bに送信した後に、冷蔵庫1bに送信する(S35)。つまり、サーバ2は、先ず、発話可能機器が「冷蔵庫1b」であって、イベント区分が「記念日」または「ゴミの日」である上記個別データIndD1のボイスコードを確認する。そして、上記ボイスコードと同じボイスコードの共通データComD1を冷蔵庫1bへ送信した後に、上記個別データIndD1を冷蔵庫1bへ送信する。
上記に説明したサーバ2による発話データの送信処理は、以下のように整理することができる。すなわち、サーバ2による発話データの送信処理は、発話データを、発話期間(冷蔵庫1bが該発話データを発話可能な期間)を設定して、生成する発話データ生成ステップ(S31)と、上記発話データ生成ステップにて生成される、特定期間に対応付けられる発話データであって、上記発話期間が重複する複数の追加発話データAddD1(発話データ)を、該追加発話データAddD1の各々に対応付けられる発話優先順位(優先度)が低い順に冷蔵庫1b(発話装置)に送信し、冷蔵庫1bに最後に送信した追加発話データAddD1のみを、上記発話期間において冷蔵庫1bに発話させる発話データ送信ステップ(S35)と、を含む。
共通データ送信処理および個別データ送信処理は以下のように言い換えることができる。すなわち、サーバ2は、例えば定期的に、関連情報源4から共通データ基礎情報等を収集し(バッチ起動)、共起共通データ基礎情報等に基づいて共通データComD1を生成する。サーバ2は、生成した共通データComD1を、新たなリビジョン番号を付して、共通データテーブル261に格納する(リビジョン更新)。
サーバ2は、冷蔵庫1bからの定期ポーリングを受信すると、つまり、冷蔵庫1bから、冷蔵庫1bの追加データテーブル111に格納されている共通データComD1のリビジョン番号を受信すると、以下の判定を行う。すなわち、サーバ2は、共通データテーブル261に格納されている共通データComD1のリビジョン番号と、冷蔵庫1bから通知されたリビジョン番号とが一致するかを判定する。一致すると判定すると、サーバ2は、共通データ送信処理を終了する。一致しないと判定すると、サーバ2は、リビジョン更新後の(つまり共通データテーブル261に格納されている)共通データComD1データを、冷蔵庫1bにダウンロードさせる。
サーバ2は、冷蔵庫1bからのダウンロードの完了通知を受信すると、個別データテーブル262を参照し、上記共通データComD1に予め対応付けられている優先度よりも高い優先度が対応付けられている個別データIndD1があるかを判定する。上記共通データComD1に予め対応付けられている優先度よりも高い優先度が対応付けられている個別データIndD1があると判定すると、サーバ2は、当該個別データIndD1のダウンロード指示を冷蔵庫1bに送信する。上記個別データIndD1のダウンロード指示を受信した冷蔵庫1bは、上記個別データIndD1をダウンロードする。そして、冷蔵庫1bは、追加データテーブル111に格納されている、上記個別データIndD1のボイスコードと同じボイスコードの共通データComD1を、ダウンロードした上記個別データIndD1によって上書きする。
上記の共通データ送信処理および個別データ送信処理を実行することにより、サーバ2は、より少ない負荷量(通信負荷量)で冷蔵庫1bに発話させる発話データを冷蔵庫1bに送信することができ、コストを削減することができる。つまり、サーバ2は、冷蔵庫1bから通知されるリビジョン番号を受信してから、該リビジョン番号と共通データテーブル261に格納されている共通データComD1のリビジョン番号とを比較し、両者が異なる場合にのみ、冷蔵庫1bに、共通データComD1データをダウンロードさせる。したがって、冷蔵庫1bが一時的にネットワークに接続していない場合に冷蔵庫1bにダウンロードの指示をリトライする必要がなく、ネットワークにつながっている冷蔵庫1bのみと通信するため、通信量を最小限に抑えることができる。
以下に、発話タイミングにおいて発話すべき個別データIndD1がある冷蔵庫1bと、発話すべき個別データIndD1がない冷蔵庫1b’と、について、サーバ2から取得する追加発話データAddD1について説明する。具体的には、冷蔵庫1bのユーザは、イベント区分が「ゴミの日」(発話優先順位:「1」)の予定をスケジュール登録しており、冷蔵庫1b’のユーザは、スケジュール登録をしていない。したがって、個別データテーブル262には、冷蔵庫1b’を「発話可能機器」とする個別データIndD1は格納されていないが、冷蔵庫1bを「発話可能機器」とする個別データIndD1は格納されている。なお、以下では、冷蔵庫1bおよび冷蔵庫1b’の追加データテーブル111に格納されている共通データComD1のリビジョン番号が「000」であるものとする。また、サーバ2の共通データテーブル261に格納されている共通データComD1のリビジョン番号が「001」であるものとする。
図10は、サーバ2による、スケジュール登録をしたユーザの冷蔵庫1bへのデータ送信処理と、スケジュール登録をしていないユーザの冷蔵庫1b’への発話データ送信処理とを対比して示す図である。
冷蔵庫1b’は、自装置の共通データComD1のリビジョン番号をサーバ2に通知する。サーバ2は、共通データテーブル261に格納されている共通データComD1のリビジョン番号と、通知された共通データComD1のリビジョン番号とを比較する。上記の通り、サーバ2の共通データComD1のリビジョン番号は「001」であり、冷蔵庫1b’の共通データComD1のリビジョン番号は「000」である。したがって、サーバ2は、共通データテーブル261に格納されている共通データComD1のリビジョン番号と、通知された共通データComD1のリビジョン番号とが異なると判定する。そして、上記判定の結果に基づいて、サーバ2は、共通データテーブル261に格納されている、リビジョン番号:001の共通データComD1のダウンロード指示を冷蔵庫1b’に送信する。
冷蔵庫1b’は、リビジョン番号:001の共通データComD1のダウンロード指示をサーバ2から受信すると、リビジョン番号:001の共通データComD1の要求をサーバ2に送信する。リビジョン番号:001の共通データComD1の要求を冷蔵庫1b’から受信したサーバ2は、リビジョン番号:001の共通データComD1を冷蔵庫1b’に送信する。そして、冷蔵庫1b’は、リビジョン番号:001の共通データComD1の受信を完了すると、ダウンロード終了通知をサーバ2へ送信する。
上記ダウンロード終了通知を冷蔵庫1b’から受信したサーバ2は、冷蔵庫1b’を「発話可能機器」とする個別データIndD1が個別データテーブル262に格納されているかを判定する。個別データテーブル262に、冷蔵庫1b’を「発話可能機器」とする個別データIndD1が格納されていないことを確認すると、サーバ2は、処理終了指示を冷蔵庫1b’に送信する。上記処理終了指示をサーバ2から受信した冷蔵庫1b’は、受信したリビジョン番号:001の共通データComD1をサーバ記憶部26の共通データテーブル261に格納する。
図11の(a)は、サーバ2からリビジョン番号:001の共通データComD1を取得する前の、冷蔵庫1b’の追加データテーブル111の一例を示す図である。また、図11の(b)は、サーバ2からリビジョン番号:001の共通データComD1を取得した後の、冷蔵庫1b’の追加データテーブル111の一例を示す図である。図に示すように、サーバ2からリビジョン番号:001の共通データComD1を受信することにより、冷蔵庫1b’の追加データテーブル111に格納されている共通データComD1のリビジョン番号が、「000」から「001」に変更されている。
図10を再度参照して、サーバ2による、スケジュール登録をしたユーザの冷蔵庫1bへのデータ送信処理を説明する。サーバ2は、冷蔵庫1bに、リビジョン番号:001の共通データComD1と、冷蔵庫1bが発話すべき個別データIndD1(上記スケジュール登録に関係する内容の発話データ)とを送信する。以下、詳細を説明する。
冷蔵庫1bは、冷蔵庫1b’と同様に、自装置の共通データComD1のリビジョン番号:000をサーバ2に通知する。そして、サーバ2の共通データComD1のリビジョン番号:001と、冷蔵庫1bの共通データComD1のリビジョン番号:000とが異なることを確認したサーバ2から、冷蔵庫1bは、リビジョン番号:001の共通データComD1を受信する。そして、冷蔵庫1bは、サーバ2からのリビジョン番号:001の共通データComD1の受信を完了すると、当該共通データComD1のダウンロード終了通知をサーバ2へ送信する。
上記ダウンロード終了通知を冷蔵庫1bから受信したサーバ2は、冷蔵庫1bを「発話可能機器」とする個別データIndD1が個別データテーブル262に格納されているかを判定する。個別データテーブル262に、冷蔵庫1bを「発話可能機器」とする個別データIndD1が格納されていることを確認すると、サーバ2は、さらに以下の判定を行う。すなわち、サーバ2は、冷蔵庫1bを「発話可能機器」とする上記個別データIndD1の優先度(発話優先順位)が、リビジョン番号:001の共通データComD1に対応付けられる優先度(発話優先順位)よりも高いかを判定する。
冷蔵庫1bを「発話可能機器」とする上記個別データIndD1の優先度が、上記共通データComD1に対応付けられる優先度より高いと判定する場合、サーバ2は、上記個別データIndD1のダウンロード指示を冷蔵庫1bに送信する。サーバ2から上記個別データIndD1のダウンロード指示を受信した冷蔵庫1bは、上記個別データIndD1の要求をサーバ2へ送信し、該要求を受信したサーバ2は、上記個別データIndD1を冷蔵庫1bに送信する。サーバ2から上記個別データIndD1を受信した冷蔵庫1bは、上記個別データIndD1のボイスコードと同じボイスコードの、追加データテーブル111に格納されている共通データComD1を、上記個別データIndD1によって上書きする。
図11の(c)は、サーバ2から上記個別データIndD1を取得した後の追加データテーブル111の一例を示す図である。図11の(c)と図11の(b)とを比較することで明らかなように、図11の(b)の追加データテーブル111の5行目に格納されていた「ボイスコード:VC99」、「ボイスID:VI0003」の共通データComD1が、同11の(c)においては、以下の発話データに変更されている。すなわち、図11の(c)の追加データテーブル111の5行目には、「ボイスID:VI0003」の共通データComD1に代わって、「ボイスコード:VC99」、「ボイスID:VI3456」の個別データIndD1が格納されている。なお、図11の(c)の追加データテーブル111において、リビジョン番号は、「001」であり、上記個別データIndD1によってリビジョン番号は変わっていない。図11の(b)と(c)との相違点は、「ボイスコード:VC99」の発話データが、「ボイスID:VI0003」の共通データComD1から、「ボイスID:VI3456」の個別データIndD1に変わったことのみである。
なお、冷蔵庫1bを「発話可能機器」とする個別データIndD1に対応付けられる優先度(発話優先順位)が、共通データComD1に対応付けられる優先度より低い場合、サーバ2は、該個別データIndD1のダウンロード指示を冷蔵庫1bへ送信しない。
〔実施形態2〕
本発明の他の実施形態について、図12および図13に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材、および上記実施形態にて説明した処理と同様の処理については、それぞれ上記実施形態と同じ符号を付し、その説明を省略する。
まず、本実施形態に係る家族伝言板システム200の概要を図12に基づいて説明する。図12は、家族伝言板システム200の概要を示す図である。図に示すように、家族伝言板システム200は、サーバ2、スマートフォン3、および家庭内機器5(例えば、冷蔵庫5b)を含む。家族伝言板システム200におけるサーバ2とスマートフォン3とは、家族伝言板システム100におけるサーバ2とスマートフォン3と同様なので説明を省略する。
〔構成の詳細〕
図12に示す通り、家族伝言板システム200における家庭内機器5(例えば、冷蔵庫5b)は、家族伝言板システム100における家庭内機器1(例えば、冷蔵庫1b)と以下の点で異なる。すなわち、冷蔵庫5bは、冷蔵庫1bの構成に加えてさらに、記憶部14がランダムデータテーブル113を格納している。
冷蔵庫5bの追加データ取得部102は、通信部12から取得した追加発話データAddD1(共通データComD1または個別データIndD1)のボイスコードと同じボイスコードの発話データが既に追加データテーブル111に格納されているかを判定する。そして、取得した追加発話データAddD1のボイスコードと同じボイスコードの発話データ(共通データComD1または個別データIndD1)が追加データテーブル111に格納されていると判定すると、追加データ取得部102は、以下の処理を実行する。すなわち、冷蔵庫5bの追加データ取得部102は、取得した追加発話データAddD1のボイスコードと同じボイスコードの、追加データテーブル111に格納されている発話データを、ランダムデータテーブル113へと移動する(データ退避する)。その後に、冷蔵庫5bの追加データ取得部102は、通信部12から取得した追加発話データAddD1を追加データテーブル111に格納する。
ランダムデータテーブル113には、通信部12がサーバ2から受信した追加発話データAddD1のボイスコードと同じボイスコードの、追加データテーブル111に格納されていた発話データが、追加データ取得部102によって、格納される。
図13は、サーバ2のランダムデータテーブル113の一例を示す図である。
ランダムデータテーブル113には、発話期間が特に設定されない、または、「重要発話時間帯」以外の時間帯が発話期間に設定される、ランダム発話データが格納される。
冷蔵庫1bは、サーバ2から受信する追加発話データAddD1によって、追加データテーブル111に格納されている、該追加発話データAddD1のボイスコードと同じボイスコードの発話データを、上書きした。したがって、上記追加発話データAddD1を追加データテーブル111に格納した後、上記追加発話データAddD1のボイスコードと同じボイスコードの、追加データテーブル111に格納されていた発話データは失われる。つまり、冷蔵庫1bは、上記追加発話データAddD1の追加データテーブル111への格納後に、上記追加発話データAddD1のボイスコードと同じボイスコードの、追加データテーブル111に格納されていた発話データを発話することはできない。
一方、冷蔵庫5bは、サーバ2から受信する追加発話データAddD1のボイスコードと同じボイスコードの発話データであって、追加データテーブル111に格納されている発話データを、ランダムデータテーブル113に移動する。したがって、上記追加発話データAddD1を追加データテーブル111に格納した後、上記追加発話データAddD1のボイスコードと同じボイスコードの、追加データテーブル111に格納されていた発話データを、冷蔵庫5bが発話することができる。
例えば、図11の(b)の追加データテーブル111の5行目に格納されていた「ボイスコード:VC99」、「ボイスID:VI0003」の共通データComD1について、冷蔵庫1bと冷蔵庫5bとの実行する処理は以下の点において異なる。すなわち、冷蔵庫1bは、上記共通データComD1を、サーバ2から取得した「ボイスコード:VC99」、「ボイスID:VI3456」の個別データIndD1によって上書きする。これに対し、冷蔵庫5bは、上記共通データComD1をランダムデータテーブル113に移動した後、サーバ2から取得した「ボイスコード:VC99」、「ボイスID:VI3456」の個別データIndD1を追加データテーブル111の5行目に格納する。したがって、上記個別データIndD1の追加データテーブル111への格納後、冷蔵庫1bは上記共通データComD1を発話できなくなるが、冷蔵庫5bは上記共通データComD1を、ランダム発話データとして、発話することができる。
〔実施形態3〕
上記までに説明してきた家族伝言板システム100、200においては、以下の複数の処理(機能)が複数の装置、サーバに分散されて実行される構成となっていた。すなわち、ユーザによる予定の入力を受け付ける機能は、スマートフォン3によって実行されていた。また、ユーザが入力した予定についての情報を受信する機能、該予定についての個別データIndD1を生成する機能、共通データComD1を生成する機能、および、個別データIndD1と共通データComD1との各々に予め対応付けられた優先度に基づいて、個別データIndD1と共通データComD1との家庭内機器1への出力を制御する機能は、サーバ2によって実行されていた。さらに、発話タイミングにおいて個別データIndD1または共通データComD1を発話する機能、および、個別データIndD1を取得した場合、該個別データIndD1のボイスコードと同じボイスコードの共通データComD1をランダムデータテーブル113に格納する機能は、家庭内機器1、5によって実行されていた。
しかしながら、1つのサーバまたは装置内で各々の機能を実現してもよいし、各々の機能を有するサーバまたは装置が個別に複数存在してもよいし、個々のサーバは異なる事業者によって管理されていてもよい。例えば、ユーザによる予定の入力を受け付ける機能に加えて、サーバ2によって実行されていた機能を、スマートフォンが実行するとしてもよい。すなわち、本実施の形態に係るスマートフォンは、ユーザによる予定の入力を受け付けて該予定についての個別データIndD1を生成するとともに、共通データComD1を生成する。そして、上記スマートフォンは、上記個別データIndD1と上記共通データComD1との各々に予め対応付けられた優先度に基づいて、上記個別データIndD1および上記共通データComD1の家庭内機器1への出力を制御する。
なお、本実施の形態に係る上記スマートフォンは、さらに、家庭内機器1、5が備える上記機能を備えてもよい。すなわち、上記スマートフォンは、発話タイミングにおいて上記個別データIndD1または上記共通データComD1を発話する機能、および、上記個別データIndD1を取得した場合、上記個別データIndD1のボイスコードと同じボイスコードの共通データComD1をランダムデータテーブル113に格納する機能を備えてもよい。
〔実施形態4〕
本実施の形態に係る家庭内機器(冷蔵庫)は、家庭内機器1、5(冷蔵庫1b、5b)が備える機能に加えてさらに、スマートフォン3の備える機能、およびサーバ2の備える機能を備える。
すなわち、本実施の形態に係る家庭内機器(冷蔵庫)は、ユーザによる予定の入力を受け付けて該予定についての個別データIndD1を生成するとともに、共通データComD1を生成する。そして、上記家庭内機器(冷蔵庫)は、上記個別データIndD1と上記共通データComD1との各々に対応付けられる優先度(発話優先順位)に基づいて、上記個別データIndD1および上記共通データComD1の音声出力を制御する。すなわち、発話期間が同じ(つまり、ボイスコードが同じ)、複数の個別データIndD1と共通データComD1とがあると、上記家庭内機器(冷蔵庫)は、最も高い優先度が対応付けられる個別データIndD1または共通データComD1を発話する。
〔変形例〕
(発話される発話データを聞くユーザの認識について)
上記の通り、家庭内機器1(発話装置)は各々、家庭内機器1が発話する発話データを、どのユーザが聞くのかを認識して、発話してもよい。例えば、家庭内機器1は、ユーザを認識するための、カメラおよび画像認識部、マイクおよび音声認識部、指紋取得部及び指紋認識部を備えていてもよい。また、これらの例に限らず、家庭内機器1は、ユーザ認識のためのその他の方法を利用して、家庭内機器1が発話する発話データを聞くのがどのユーザであるのかを認識してもよい。そして、家庭内機器1は、発話を聞くユーザを認識し、該ユーザに関係する(該ユーザの属性に対応する)内容の発話データを発話してもよい。
なお、家庭内機器1の発話する、或るユーザに関係する内容の発話データは、家庭内機器1が自装置の記憶部11に予め格納していた発話データであってもよいし、家庭内機器1が発話タイミングを検知した直後にサーバ2から取得する発話データであってもよい。すなわち、家庭内機器1は、発話を聞くユーザを認識し、該ユーザに関係する内容の発話データを、自装置の記憶部11に予め格納していた発話データの中から取得し、取得した発話データを発話してもよい。また、家庭内機器1は、発話を聞くユーザを認識すると、認識したユーザをサーバ2に通知してもよい。そして、サーバ2が、通知されたユーザに関係する内容の発話データを家庭内機器1に送信し、家庭内機器1が該発話データを発話するとしてもよい。
また、発話を聞くユーザを認識する家庭内機器1と、該ユーザに発話データを発話する家庭内機器1とは同じでなくともよい。例えば、ロボット掃除機1aが、冷蔵庫1bの発話する発話データを聞くユーザを認識し、冷蔵庫1bが発話データを発話するとしてもよい。
さらに、ロボット掃除機1aまたは冷蔵庫1bが、冷蔵庫1bの発話する発話データを聞くユーザを認識した場合、冷蔵庫1bの発話する発話データは、以下のような発話データであってもよい。すなわち、冷蔵庫1bの発話する発話データは、上記ユーザの属性(例えば、性別、年齢、趣味、住所、および学校または職場の位置)に対応する内容の発話データであってもよい。具体的には、上記ユーザの年齢、性別等に応じた商品および店舗を紹介する内容の発話データであってもよい。
(どの家庭内機器1に発話データを発話させるかの決定について)
サーバ2は、或る発話期間の発話データ(個別データIndD1と共通データComD1との少なくとも一方)を、どの家庭内機器1(発話装置)へ送信するかを決定する発話装置決定部(発話装置決定手段)を備えてもよい。すなわち、サーバ2は、発話データを、どの発話装置に発話させるかを決定してもよい。
上記に説明した通り、例えば、冷蔵庫1bが発話する発話データを聞くユーザを、冷蔵庫1bまたは冷蔵庫1b以外の家庭内機器1(例、ロボット掃除機1a)が認識し、冷蔵庫1bまたはロボット掃除機1aは、該ユーザをサーバ2に通知してもよい。その場合、サーバ2は、通知されたユーザに関係する内容の発話データを冷蔵庫1bに送信し、冷蔵庫1bに該発話データを発話させてもよい。
また、既に説明したように、家庭内機器1(発話装置)は各々、各家庭において、所定の時間帯に使用される可能性が高い。例えば或る家庭において、「朝5時〜9時」に使用頻度が高い家庭内機器1は冷蔵庫1b、「夕方16時〜19時」に使用頻度が高い家庭内機器1は空調装置1e、「夜19時〜21時」に使用頻度が高い家庭内機器1は洗濯機1cであるかもしれない。その場合、上記家庭において、「朝5時〜9時」は冷蔵庫1bが、「夕方16時〜19時」は空調装置1eが、「夜19時〜21時」は洗濯機1cが、発話タイミングを(つまり、ユーザによる該家庭内機器1の使用を)検知する可能性が高い。そして、各家庭内機器1は、発話タイミングを検知すると、該発話タイミングを含む発話期間が設定された発話データを発話する。例えば、朝8時半に発話タイミングを検知すると、朝8時半を含む、例えば「朝5時〜9時」の発話期間が設定された発話データを発話し、朝8時半を含まない、例えば「夕方16時〜19時」の発話期間が設定された発話データについては発話しない。
したがって、サーバ2は、発話期間が「朝5時〜9時」である発話データは冷蔵庫1bに、発話期間が「夕方16時〜19時」である発話データは空調装置1eに、発話期間が「夜19時〜21時」である発話データは洗濯機1cに、送信するとしてもよい。
サーバ2は、発話データを、該発話データが家庭内機器1によって発話されるべき時間帯である発話期間を設定して、生成する。サーバ2は、例えば、ユーザが予定日を指定してスケジュール登録した予定について、「予定日当日の朝(例えば、当日の5時〜9時)」という発話期間を設定して、該予定についての発話データ(個別データIndD1)を生成する。したがって、サーバ2は、「予定日当日の朝5時〜9時」という発話期間を設定した発話データを、該「予定日当日の朝5時〜9時」内に発話タイミングを検知する可能性の高い家庭内機器1に、送信する。つまり、サーバ2は、上記「予定日当日の朝5時〜9時」内にユーザにより使用される可能性の高い家庭内機器1に、上記発話データを送信する。サーバ2は、発話データに設定された発話期間内に発話タイミングを検知する可能性の高い家庭内機器1に該発話データを送信することによって、該発話データを効率的に家庭内機器1に発話させることが可能となる。
なお、サーバ2は、発話期間内に発話タイミングを検知する可能性の高い家庭内機器1、つまり、該発話期間内にユーザにより使用される可能性の高い家庭内機器1を、ユーザによる家庭内機器1の使用履歴に基づいて決定してもよい。すなわち、サーバ2は、例えば、「毎日、何時に、何回、どの家庭内機器1をユーザが使用したか」についての情報を取得し、該情報に基づいて、発話期間内にユーザにより使用される可能性の高い家庭内機器1を決定してもよい。また、ユーザが、発話期間内に発話タイミングを検知する可能性の高い家庭内機器1を登録してもよい。すなわち、発話期間ごとに、該発話期間が設定される発話データを発話する家庭内機器1を、ユーザが登録しておいても好い。例えば、ユーザは、発話期間が「朝5時〜9時」である発話データは冷蔵庫1bに発話させ、発話期間が「夕方16時〜19時」である発話データは空調装置1eに発話させる、と登録してもよい。サーバ2は、ユーザによる上記登録に基づいて、発話データを、該発話データの発話期間と対応付けられる家庭内機器1に、送信する。
(発話タイミングについて)
これまで、発話タイミングが、家庭内機器1が、ユーザによって家庭内機器1が使用される(使用されようとする)ことを検知したタイミング(例えば、冷蔵庫1bの扉が開けられたことを検知したタイミング)である例を中心に説明を行ってきた。しかし、発話タイミングはこれに限られるものではなく、例えば、停電等のトラブルが発生した場合には、該トラブルからの復旧直後を発話タイミングとしてもよい。
(ネットワークアダプタについて)
冷蔵庫1b、5b(家庭内機器1、5)が備える以下の2つの機能については、冷蔵庫1b、5bに取付けられたネットワークアダプタが備えていてもよい。すなわち、個別データIndD1または共通データComD1を、優先度が低い順に取得し、最後に取得した個別データIndD1または共通データComD1を発話する機能は、冷蔵庫1b、5bに取付けられたネットワークアダプタが備えていてもよい。また、サーバ2から、発話タイミングにおいて発話可能な、個別データIndD1も共通データComD1も取得していなかった場合、該発話タイミングにおいて発話可能な基本発話データBasD1を発話する機能を上記ネットワークアダプタが備えていてもよい。
〔実施形態5〕
家庭内機器1、5、サーバ2、およびスマートフォン3の各ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。後者の場合、上記の各サーバ、各装置、または各機器を図14に示すようなコンピュータ(電子計算機)を用いて構成することができる。図14は、家庭内機器1、5、サーバ2、およびスマートフォン3として利用可能なコンピュータ1000の構成を例示したブロック図である。
コンピュータ1000は、図14に示すように、バス1100を介して互いに接続された演算装置1200と、主記憶装置1300と、補助記憶装置1400と、入出力インタフェース1500とを備えている。演算装置1200、主記憶装置1300、および補助記憶装置1400は、それぞれ、例えばCPU、RAM(random access memory)、ハードディスクドライブであってもよい。なお、主記憶装置1300は、コンピュータ読み取り可能な「一時的でない有形の媒体」であればよく、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブル論理回路などを用いることができる。
入出力インタフェース1500には、入力装置2000および出力装置3000が接続される。家庭内機器1、5、サーバ2、およびスマートフォン3の入力装置2000および出力装置3000は、他のサーバまたは装置から送信されるデータの受信、および他のサーバまたは装置へのデータの送信を行う。家庭内機器1、5、サーバ2、およびスマートフォン3の入力装置2000および出力装置3000は、さらに、ユーザからの入力操作の取得、ユーザへの発話等の出力を行う。
補助記憶装置1400には、コンピュータ1000を家庭内機器1、5、サーバ2、およびスマートフォン3として動作させるための各種プログラムが格納されている。そして、演算装置1200は、補助記憶装置1400に格納された上記各プログラムを主記憶装置1300上に展開し、主記憶装置1300上に展開された上記各プログラムに含まれる命令を実行することによって、コンピュータ1000を、家庭内機器1、5、サーバ2、およびスマートフォン3が備える各部として機能させる。
なお、ここでは、内部記録媒体である補助記憶装置1400に記録されている上記各プログラムを用いてコンピュータ1000を機能させる構成について説明したが、外部記録媒体に記録されているプログラムを用いてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係る発話装置(冷蔵庫1b、5b)は、音声による発話機能を備えた発話装置であって、発話可能な期間(発話期間)が予め設定されている発話データについて、発話時に発話可能な2つ以上の発話データ(追加発話データAddD1と基本発話データBasD1)があるかを判定する判定手段(判定部103)と、上記判定手段によって上記発話時に発話可能な2つ以上の発話データがあると判定されると、上記発話時に発話可能な2つ以上の発話データの各々に予め対応付けられている優先度が高い発話データを優先して発話する発話手段(音声出力部13)と、を備えている。
上記の構成によれば、上記発話装置は、発話時に発話可能な2つ以上の発話データがあると、該2つ以上の発話データの各々に予め対応付けられている優先度が高い発話データを優先して発話する。したがって、発話装置は、ユーザに優先して通知すべき発話データを発話することができるので、ユーザの利便性を向上させることができる。
本発明の態様2に係る発話装置は、上記態様1において、特定期間(例えば予定日などの特定の日付)に対応付けられる発話データであって、上記発話可能な期間が重複する複数の発話データ(追加発話データAddD1)を、該発話データの各々に対応付けられている優先度が低い順にサーバから取得する取得手段(追加データ取得部102)をさらに備え、上記発話手段は、上記発話可能な期間において、上記取得手段によって最後に取得された発話データのみを発話してもよい。
上記の構成によれば、上記発話装置は、優先度が最も高い発話データを、上記サーバから最後に受信し、最後に受信した発話データのみを発話する。つまり、上記発話装置は上記最後に受信した発話データのみを取得し発話すればよいので、上記発話装置の構成を単純化することができる。
本発明の態様3に係る発話装置は、上記態様1または2において、発話可能な期間が予め設定されており、かつ、特定期間に対応付けられない発話データ(基本発話データBasD1)を予め準備しており、上記判定手段は、上記発話時に発話可能な、発話可能な期間が予め設定されており、かつ、特定期間に対応付けられる発話データがあるかを判定し、上記判定手段により該当する発話データが無いと判定されると、上記発話手段は、上記発話時に発話可能な、上記発話可能な期間が予め設定されており、かつ、特定期間に対応付けられない発話データを発話してもよい。
上記の構成によれば、上記発話装置は、発話時に発話可能な、特定期間に対応付けられる発話データが無い場合、該発話時に発話可能な、特定期間に対応付けられない発話データを発話することができる。
本発明の態様4に係る発話装置は、上記態様3において、上記特定期間に対応付けられる発話データは、上記特定期間に対応付けられ、かつ、特定のユーザに対応付けられる発話データ(個別データIndD1)と、上記特定期間に対応付けられ、かつ、特定のユーザに対応付けられない発話データ(共通データComD1)と、を含んでもよい。
上記の構成によれば、上記発話装置は、上記特定期間に対応付けられ、かつ、特定のユーザに対応付けられる発話データ、または、上記特定期間に対応付けられ、かつ、特定のユーザに対応付けられない発話データを、各々の発話データに対応付けられる優先度に基づいて、発話することができる。
本発明の態様5に係る発話装置は、上記態様4において、上記特定期間に対応付けられ、かつ、特定のユーザに対応付けられる発話データは、上記特定のユーザが関係する予定を内容とする発話データであってもよい。
上記の構成によれば、上記発話装置は、特定のユーザが関係する予定を内容とする発話データを発話することができる。
本発明の態様6に係る発話制御装置(サーバ2)は、発話データを、発話装置が発話可能な期間を設定して、生成する発話データ生成手段(発話データ生成部20)と、上記発話データ生成手段によって生成される、特定期間に対応付けられる発話データであって、上記発話可能な期間が重複する複数の発話データ(追加発話データAddD1)を、該発話データの各々に対応付けられる優先度が低い順に上記発話装置に送信し、上記発話装置に最後に送信した発話データのみを、上記発話可能な期間において上記発話装置に発話させる発話データ送信手段(個別データ送信制御部25)と、を備えている。
上記の構成によれば、上記発話制御装置は、複数の追加発話データAddD1を、該複数の追加発話データAddD1の各々に対応付けられる優先度が低い順に上記発話装置に送信し、上記発話装置に最後に送信した発話データのみを、上記発話装置に発話させる。したがって、上記発話制御装置は、発話すべき発話データとして保持しておく発話データの量を削減することができ、コストを削減することができる。
本発明の態様7に係る発話制御装置は、上記態様6において、上記発話データ生成手段によって生成される、上記特定期間に対応付けられる発話データは、特定の発話装置のみが発話可能な機器個別発話データ(個別データIndD1)と、不特定の発話装置が発話可能な機器共通発話データ(共通データComD1)とを含み、上記発話データ送信手段は、上記機器個別発話データを、上記機器個別発話データに対応付けられる上記特定の発話装置のみに送信してもよい。
上記の構成によれば、上記発話制御装置は、特定の発話装置のみが発話可能な機器個別発話データを、上記機器個別発話データに対応付けられる上記特定の発話装置のみに送信する。したがって、上記特定の発話装置のみが、上記特定の発話装置のみが発話可能な機器個別発話データを、発話することができる。
本発明の態様8に係る発話制御システム(家族伝言板システム100、200)は、発話データを、発話装置が該発話データを発話可能な期間を設定して、生成する発話データ生成手段(発話データ生成部20)と、上記発話データ生成手段によって生成される、特定期間に対応付けられる発話データであって、上記発話可能な期間が重複する複数の発話データを、該発話データの各々に対応付けられる優先度が低い順に上記発話装置に送信する発話データ送信手段(個別データ送信制御部25)と、上記発話データ送信手段から、上記特定期間に対応付けられる発話データであって、上記発話可能な期間が重複する複数の発話データを、該発話データの各々に対応付けられている優先度が低い順に取得する取得手段(追加データ取得部102)と、上記取得手段によって最後に取得された発話データのみを、上記発話可能な期間において発話する発話手段(音声出力部13)と、を含む。この態様によれば、上記態様1と同様の効果を奏する。
本発明の態様9に係る発話装置(冷蔵庫1b)の制御方法は、音声による発話機能を備えた発話装置の制御方法であって、発話可能な期間が予め設定されている発話データについて、発話時に発話可能な2つ以上の発話データがあるかを判定する判定ステップと、上記判定ステップにて上記発話時に発話可能な2つ以上の発話データがあると判定されると、上記発話時に発話可能な2つ以上の発話データの各々に予め対応付けられている優先度が高い発話データを優先して発話する発話ステップと、を含む。よって、態様1と同様の効果を奏する。
本発明の態様10に係る発話制御装置の制御方法は、発話データを、発話装置が該発話データを発話可能な期間を設定して、生成する発話データ生成ステップ(S31)と、上記発話データ生成ステップにて生成される、特定期間に対応付けられる発話データであって、上記発話可能な期間が重複する複数の発話データを、該発話データの各々に対応付けられる優先度が低い順に上記発話装置に送信し、上記発話装置に最後に送信した発話データのみを、上記発話可能な期間において上記発話装置に発話させる発話データ送信ステップ(S35)と、を含む。よって、態様6と同様の効果を奏する。
本発明の各態様に係る発話装置および発話制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記発話装置および上記発話制御装置が備える各手段として動作させることにより上記発話装置および上記発話制御装置をコンピュータにて実現させる上記発話装置および上記発話制御装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。