近年、ユーザーが発話した音声を利用して、テレビ、照明等の電子機器を制御する技術が開発されている(例えば、特許文献1参照。)。図6は、従来の電子機器制御システムのシステム構成を示す図である。電子機器制御システム11は、端末装置12(12a〜12c)、ホームサーバー13、クラウドサーバー14、ルーター15を備える。例えば、端末装置12a、ホームサーバー13、ルーター15は、自宅1階のリビングに設置されている。端末装置12bは、自宅2階の書斎に設置されている。端末装置12cは、自宅2階の子供部屋に設置されている。クラウドサーバー14は、自宅外に設置された外部サーバーである。
端末装置12a〜12cは、同一の構成を有する。端末装置12は、マイクロコンピュータ121、マイク122、スピーカー123、赤外線LED124等を備える。マイクロコンピュータ121は、端末装置12を構成する各部を制御する。また、マイクロコンピュータ121は、無線LANネットワークプロセッサーを有しており、ルーター15と無線LANに従った通信を行う。マイク122は、外部の音声を集音し音声データとして出力する。マイク122が出力した音声データは、図示しないDSP(Digital Signal Processor)を介して、マイクロコンピュータ121に入力される。なお、マイク122は、デジタルマイクであり、集音した音声データをA/D変換してDSPに出力する。スピーカー123は、音声データに基づいて音声を出力する。なお、スピーカー123には、図示しないD/Aコンバータが音声データ(デジタルデータ)をD/A変換し、図示しないパワーアンプが増幅した音声データが出力される。赤外線LED124は、テレビ16、照明17に対して、テレビ16、照明17を制御するためのリモコンコードを送信する。
ホームサーバー13は、CPU(Central Processing Unit)131、RAM(Random Access Memory)132、記憶部133、ネットワークインターフェース(以下、「NW I/F」という。)134を備える。CPU131は、ホームサーバー13を構成する各部を制御する。RAM132は、CPU131のワークメモリとして機能する。記憶部133は、各種のプログラム、データを記憶する。NW I/F134は、外部の機器(例えば、ルーター15)と有線LAN、無線LANに従った通信を行うためのものである。
ルーター15は、アクセスポイント機能を有しており、端末装置12と無線LANに従った通信を行う。また、ルーター15は、ホームサーバー13と有線LANに従った通信を行う。また、ルーター15は、ホームサーバー13とクラウドサーバー14とをインターネット接続する。
上述したホームサーバー13は、電子機器(テレビ16、照明17)を制御するために、機器制御情報データベース(以下、「機器制御情報DB」という。)を記憶部133に記憶している。図7は、機器制御情報DBを示す図である。図7(a)に示すように、機器制御情報DBには、端末装置12a〜12cのIDと、端末装置12a〜12cの位置と、が対応付けて記憶されている。例えば、IDが「XXX1」の端末装置12aは、自宅1階のリビングにあることが記憶されている。また、図7(b)に示すように、機器制御情報DBには、端末装置12a〜12cのIDと、電子機器のプロファイルと、が対応付けて記憶されている。電子機器のプロファイルとしては、「Accessory」、「Service」、「Characteristics」がある。「Accessory」は、制御対象の電子機器(照明、テレビ)を示す。「Service」は、制御対象の機能(Light、tv_control)を示す。「Characteristics」は、実行内容(Power State、Volume Control等)を示す。
また、図7(c)に示すように、制御対象の電子機器を特定するために、機器制御情報DBには、Accessoryと、音声コマンドと、が対応付けて記憶されている。また、図7(d)に示すように、制御対象の機能を特定するために、機器制御情報DBには、Serviceと、音声コマンドと、が対応付けて記憶されている。また、図7(e)に示すように、実行内容を特定するために、機器制御情報DBには、Characteristicsと、音声コマンドと、が対応付けて記憶されている。
例えば、音声コマンドが、「テレビつけて」であれば、音声コマンド「テレビ」に対応するAccessory(制御対象の電子機器)は、「テレビ」である。また、音声コマンド「つけ」に対応するCharacteristics(実行内容)は、「Power State」である。従って、CPU131は、音声コマンドと機器制御情報DBとに基づいて、テレビの電源をオンすることを決定することができる。そして、CPU131は、テレビの電源をオンする制御コマンドを端末装置12に送信する。
図8は、従来の電子機器制御システムの動作を示すシーケンス図である。以下、図8に基づいて、テレビ16を制御する一連の動作を説明する。まず、ユーザーは、端末装置12がホームサーバー13に音声データを送信するデータ送信モードとするために、所定のキーワードを発話する。例えば、ユーザーは、「こんにちはオンキヨー」と発話する(図8の(1))。端末装置12のマイク122は、ユーザーが発話した音声を集音し音声データとしてマイクロコンピュータ121に出力する。マイクロコンピュータ121は、音声認識機能を有しており、音声データに含まれる文字データを認識し、認識した文字データが所定のキーワードと一致しているか否かを判断する。マイクロコンピュータ121は、認識した文字データが所定のキーワードと一致していると判断した場合、データ送信モードに遷移する(図8の(2))。
次に、例えば、ユーザーは、テレビの電源をオンにしたい場合、「テレビつけて」と発話する(図8の(3))。端末装置12のマイク122は、ユーザーが発話した音声を集音し音声データとしてマイクロコンピュータ121に出力する。マイクロコンピュータ121は、音声データ(「テレビつけて」)をホームサーバー14に送信する(図8の(4))。ホームサーバー13のCPU131は、NW I/F134により端末装置12が送信した音声データを受信する。次に、CPU131は、NW I/F134によりクラウドサーバー14に音声データを送信し、音声認識の問い合わせを行う(図8の(5))。
クラウドサーバー14は、ホームサーバー13が送信した音声データを受信する。クラウドサーバー14は、音声認識機能を有しており、音声データに含まれる文字データを認識する。次に、クラウドサーバー14は、認識した文字データに対応する音声コマンド(「テレビつけて」)をホームサーバー13に送信し、音声認識の結果を応答する(図8の(6))。ホームサーバー13のCPU131は、NW I/F134によりクラウドサーバー14が送信した音声コマンドを受信する。CPU131は、音声認識結果の解析を行う(図8の(7))。具体的には、CPU131は、機器制御情報DBと音声コマンドとに基づいて、音声コマンドに対応する制御コマンドを決定する。CPU131は、NW I/F134により決定した制御コマンド(テレビの電源をオンする制御コマンド)を送信する(図8の(8))。
同時に、CPU131は、NW I/F134によりクラウドサーバー14に音声合成を行わせる要求を送信する(図8の(9))。例えば、CPU131は、音声コマンドが「テレビつけて」であった場合、これに対応する「テレビつけました」の音声合成をクラウドサーバー14に行わせる。クラウドサーバー14は、音声合成を行い、音声合成データをホームサーバー13に送信し、音声合成の結果を応答する(図8の(10))。ホームサーバー13のCPU131は、NW I/F134により音声合成データを受信する。次に、CPU131は、NW I/F134により受信した音声合成データを端末装置12に送信する(図8の(11))。
一方、端末装置12のマイクロコンピュータ121は、ホームサーバー13が送信した制御コマンドを受信する。次に、マイクロコンピュータ121は、受信した制御コマンドに対応するリモコンコード(テレビの電源をオンするリモコンコード)を、赤外線LED124により送信する(図8の(12))。テレビ16は、端末装置12が送信したテレビの電源をオンするリモコンコードにより電源がオンする(図8の(13))。また、マイクロコンピュータ121は、ホームサーバー13が送信した音声合成データを受信する。マイクロコンピュータ121は、受信した音声合成データに基づいてスピーカー123から音声(「テレビつけました」)を出力させる。
以下、本発明の実施形態について説明する。図1は、本実施形態に係る電子機器制御システムの構成を示すブロック図である。電子機器制御システム1は、端末装置2(2a〜2c)、ホームサーバー3、クラウドサーバー4、ルーター5を備える。例えば、端末装置2a、ホームサーバー3、ルーター5は、自宅1階のリビングに設置されている。端末装置2bは、自宅2階の書斎に設置されている。端末装置2cは、自宅2階の子供部屋に設置されている。クラウドサーバー4は、自宅外に設置された外部サーバーである。端末装置2は、ホームサーバー3と通信を行う。ホームサーバー3は、クラウドサーバー4と通信を行う。
端末装置2は、マイクロコンピュータ21、マイク22、スピーカー23、赤外線LED24等を備える。マイクロコンピュータ21(第1制御部)は、端末装置2を構成する各部を制御する。また、マイクロコンピュータ21は、無線LANネットワークプロセッサーを有しており、ルーター5と無線LANに従った通信を行う。マイク22は、外部の音声を集音し音声データとして出力する。マイク22が出力した音声データは、図示しないDSP(Digital Signal Processor)を介して、マイクロコンピュータ21に入力される。なお、マイク22は、デジタルマイクであり、集音した音声データをA/D変換してDSPに出力する。スピーカー23は、音声データに基づいて音声を出力する。なお、スピーカー23には、図示しないD/Aコンバータが音声データ(デジタルデータ)をD/A変換し、図示しないパワーアンプが増幅した音声データが出力される。赤外線LED24(送信部)は、テレビ6(電子機器)、照明(電子機器)7に対して、テレビ6、照明7を制御するためのリモコンコードを送信する。
ホームサーバー3(サーバー)は、CPU(Central Processing Unit)31、RAM(Random Access Memory)32、記憶部33、ネットワークインターフェース(以下、「NW I/F」という。)34を備える。CPU31(第2制御部)は、ホームサーバー3を構成する各部を制御する。RAM32は、CPU31のワークメモリとして機能する。記憶部33は、各種のプログラム、データを記憶する。また、記憶部33には、機器制御情報データベース(以下、「機器制御情報DB」という。)が記憶されている。機器制御情報DBは、図7に示す従来の機器制御情報DBと同様であるため、説明を省略する。NW I/F34は、外部の機器(例えば、ルーター5)と有線LAN、無線LANに従った通信を行うためのものである。
ルーター5は、アクセスポイント機能を有しており、端末装置2と無線LANに従った通信を行う。また、ルーター5は、ホームサーバー3と有線LANに従った通信を行う。また、ルーター5は、ホームサーバー3とクラウドサーバー4とをインターネット接続する。
クラウドサーバー4(外部サーバー)は、音声区間検出(Voice Activity Detection、以下、「VAD」という。)機能を有する。また、クラウドサーバー4は、音声認識機能を有する。クラウドサーバー4は、VAD機能を有しているため、無音区間を検出し、適切に音声認識を行うことができる。例えば、ユーザーが「こんにちは オンキヨー」と発話した場合、無音区間を検出し、「こんにちは」「おんきよー」と文字データを認識する。一方で、VAD機能がなければ、ユーザーが「こんにちは オンキヨー」と発話した場合、例えば、「こんに」「ちわ」「おん」「きよー」と認識されてしまう。なお、本明細書中、文中の空白部分は、無音区間を示している場合がある。
電子機器制御システム1において、端末装置2は、集音した音声データ(例えば、「テレビ つけて」)をホームサーバー3に送信する。ホームサーバー3は、音声データを受信し、受信した音声データをクラウドサーバー4に送信する。クラウドサーバー4は、音声データを受信する。クラウドサーバー4は、受信した音声データを音声認識し、対応する音声コマンド(例えば、「テレビ」「つけて」)を決定する。クラウドサーバー4は、決定した音声コマンドをホームサーバー3に送信する。ホームサーバー3は、クラウドサーバー4が送信した音声コマンドを受信する。ホームサーバー3は、受信した音声コマンドに対応する制御コマンド(例えば、「テレビの電源をオンする制御コマンド」)を端末装置2に送信する。端末装置2は、ホームサーバー3が送信した制御コマンドを受信する。端末装置2は、受信した制御コマンドに対応するリモコンコード(例えば、「テレビの電源をオンするリモコンコード」)を赤外線LED24により送信する。
ホームサーバー3のCPU31が、受信した音声コマンドに対応する制御コマンド(例えば、「テレビの電源をオンする制御コマンド」)を決定するために、記憶部33には、受信した音声コマンドに対応するAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)の情報が記憶される。図2は、受信した音声コマンドに対応するAccessory、Service、Characteristicsの情報を記憶するコマンド情報データベース(以下、「コマンド情報DB」という。)を示す図である。図2(a)に示すように、コマンド情報DBには、初期状態では何も記憶されていない(「None」)。CPU31は、例えば、NW I/F34によりクラウドサーバー4が送信した音声コマンド「テレビ」を受信した場合、機器制御情報DBに基づいて、音声コマンド「テレビ」に対応するAccessory「テレビ」をコマンド情報DBに記憶する(図2(b))。この時点では、テレビに対するService、Characteristicsが確定していないため、CPU31は、動作未決定の「No Action」状態となる。
続いて、CPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンド「つけて」を受信した場合、機器制御情報DBに基づいて、音声コマンド「つけ」に対応するCharacteristics「Power State ON」を記憶する(図2(c))。このとき、CPU31は、音声コマンド「つけ」に対応するCharacteristicsから、Serviceが「tv_control」であることが判別できるため、Service「tv_control」をコマンド情報DBに記憶する。CPU31は、Accessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)が確定したため、制御コマンドを「テレビの電源をオンする制御コマンド」に決定することができる。また、図2(c)に示す状態において、CPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンド「オフ」を受信した場合、機器制御情報DBに基づいて、音声コマンド「オフ」に対応するCharacteristics「Power State OFF」を記憶する(図2(d))。コマンド情報DBには、既に、Accessory「テレビ」、Service「tv_control」が記憶されているため、Accessory、Service、Characteristicsが確定し、CPU31は、受信した音声コマンドに対応する制御コマンドを「テレビの電源をオフする制御コマンド」に決定することができる。
このように、CPU31は、受信した音声コマンドに対応するAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)を記憶部33のコマンド情報DBに記憶する。そして、CPU31は、記憶部33のコマンド情報DBに記憶されているAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)に基づいて、制御コマンドを決定する。ここで、記憶部33のコマンド情報DBに記憶されているAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)は、受信した音声コマンドに対応するものであるため、CPU31は、受信した音声コマンドに基づいて、制御コマンドを決定していることになる。
コマンド情報DBには、優先順位がある。その優先順位は、Accessory>Service>Characteristicsである。図2(c)に示す状態において、CPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンド「おんりょう」を受信した場合、機器制御情報DBに基づいて、音声コマンド「おんりょう」に対応するService「tv_control」を記憶する(図2(e))。ここで、CPU31は、Serviceよりも優先順位が下位のCharacteristicsを消去(「None」に変更)する。また、図2(c)に示す状態において、CPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンド「でんき」を受信した場合、機器制御情報DBに基づいて、音声コマンド「でんき」に対応するAccessory「照明」を記憶する(図2(f))。ここで、CPU31は、Accessoryよりも優先順位が下位のService、Characteristicsを消去(「None」に変更)する。
このように、CPU31は、受信した音声コマンドがAccessory(制御対象の電子機器)に対応している場合、Accessory(制御対象の電子機器)よりも優先順位が下位の、記憶部33のコマンド情報DBに記憶されているService(制御対象の機能)、Characteristics(実行内容)を消去する。また、CPU31は、受信した音声コマンドがService(制御対象の機能)に対応している場合、Service(制御対象の機能)よりも優先順位が下位の、記憶部33のコマンド情報DBに記憶されているCharacteristics(実行内容)を消去する。
図2(a)に示す初期状態において、CPU31は、例えば、NW I/F34によりクラウドサーバー4が送信した音声コマンド「つけて」を受信した場合、機器制御情報DBに基づいて、音声コマンド「つけ」に対応するCharacteristics「Power State ON」をコマンド情報DBに記憶する(図2(g))。この時点では、Accessory、Serviceが確定していないため、CPU31は、動作未決定の「No Action」状態となる。続いて、CPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンド「でんき」を受信した場合、機器制御情報DBに基づいて、音声コマンド「でんき」に対応するAccesorry「照明」をコマンド情報DBに記憶する(図2(h))。初期状態において、優先順位が下位の情報が確定した後、それよりも優先順位が上位の情報が確定した場合は、優先順位が下位の情報を消去しない(「None」に変更しない)。これにより、初期状態で、CPU31は、例えば、NW I/F34によりクラウドサーバー4が送信した音声コマンド「つけて」、「でんき」を受信した場合、「照明の電源をオンする制御コマンド」を決定することができる(図2(h)参照)。
このように、CPU31は、記憶部33のコマンド情報DBにAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)が記憶されていない初期状態で、且つ、受信した音声コマンドがCharacteristics(実行内容)に対応している場合、記憶部33のコマンド情報DBにCharacteristics(実行内容)を記憶する。そして、CPU31は、この後、受信した音声コマンドがAccessory(制御対象の電子機器)又はService(制御対象の機能)に対応している場合、記憶部33のコマンド情報DBに記憶されているCharacteristics(実行内容)を消去せずに、受信した音声コマンドが対応するAccessory(制御対象の電子機器)又はCharacteristics(制御対象の機能)を記憶部33のコマンド情報DBに記憶する。
上述のように、クラウドサーバー4は、VAD機能を有している。例えば、ユーザーが「テレビ つけて」のように、「テレビ」と「つけて」の間に無音を挟んで発話した場合、クラウドサーバー4は、「テレビ」「つけて」の音声コマンドをホームサーバー3に送信する。例えば、ユーザーが「テレビつけて」のように、連続して発話した場合、クラウドサーバー4は、「テレビつけて」の音声コマンドをホームサーバー3に送信する。この場合、CPU31は、優先順位に関係なく、音声コマンド「テレビ」に対応するAccessory「テレビ」、音声コマンド「つけ」に対応するCharacteristics「Power State ON」をコマンド情報DBに記憶する。同様に、例えば、ユーザーが「つけてテレビ」のように、連続して発話した場合、クラウドサーバー4は、「つけてテレビ」の音声コマンドをホームサーバー3に送信する。この場合、CPU31は、優先順位に関係なく、音声コマンド「つけ」に対応するCharacteristics「Power State ON」、音声コマンド「テレビ」に対応するAccessory「テレビ」をコマンド情報DBに記憶する。
このように、CPU31は、受信した音声コマンドがAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)のいずれか2つ以上に対応している場合、優先順位に関係なく、受信した音声コマンドに対応するAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)を記憶部33のコマンド情報DBに記憶する。
図3及び図4は、電子機器制御システムの動作を示すシーケンス図である。以下、図3及び図4に基づいて、テレビ6を制御する一連の動作を説明する。まず、ユーザーは、端末装置2がホームサーバー3に音声データを送信するデータ送信モードとするために、所定のキーワードを発話する。例えば、ユーザーは、「こんにちはオンキヨー」と発話する(図3の(1))。端末装置2のマイク22は、ユーザーが発話した音声を集音し音声データとしてマイクロコンピュータ21に出力する。マイクロコンピュータ21は、音声認識機能を有しており、音声データに含まれる文字データを認識し、認識した文字データが所定のキーワードと一致しているか否かを判断する。マイクロコンピュータ21は、認識した文字データが所定のキーワードと一致していると判断した場合、データ送信モードに遷移する(図3の(2))。
次に、例えば、ユーザーは、テレビの電源をオンにしたい場合、「テレビ つけて」と発話する(図3の(3)、(4))。端末装置2のマイク22は、ユーザーが発話した音声を集音し音声データとしてマイクロコンピュータ21に出力する。マイクロコンピュータ21は、音声データ(「テレビ つけて」)をホームサーバー3に送信する(図3の(5)、(6))。ホームサーバー3のCPU31は、NW I/F34により端末装置2が送信した音声データを受信する。次に、CPU31は、NW I/F34によりクラウドサーバー4に音声データを送信し、音声認識の問い合わせを行う(図3の(7)、(8))。
クラウドサーバー4は、ホームサーバー3が送信した音声データを受信する。クラウドサーバー4は、音声認識機能を有しており、音声データに含まれる文字データを認識する。上述したように、クラウドサーバー4は、VAD機能を有しているため、無音区間を検出し、適切に音声認識を行うことができる。次に、クラウドサーバー4は、認識した文字データに対応する音声コマンド(「テレビ」「つけて」)をホームサーバー3に送信し、音声認識の結果を応答する(図3の(9)、(10))。ホームサーバー3のCPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンドを受信する。CPU31は、音声認識結果の解析を行う(図3の(11)、(12))。具体的には、CPU31は、機器制御情報DBと音声コマンドとに基づいて、音声コマンドに対応する制御コマンドを決定する。
ここで、CPU31は、音声コマンド「テレビ」を受信したときに、機器制御情報DBに基づいて、音声コマンド「テレビ」に対応するAccessory「テレビ」をコマンド情報DBに記憶する(図2(b)参照。)。また、CPU31は、音声コマンド「つけて」を受信したときに、機器制御情報DBに基づいて、音声コマンド「つけ」に対応するCharacteristics「Power State ON」を記憶する(図2(c)参照。)。このとき、CPU31は、音声コマンド「つけ」に対応するCharacteristicsから、Serviceが「tv_control」であることが判別できるため、Service「tv_control」の情報をコマンド情報DBに記憶する。CPU31は、Accessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)が確定したため、受信した音声コマンドに対応する制御コマンドを「テレビの電源をオンする制御コマンド」に決定することができる。CPU31は、NW I/F34により決定した制御コマンド(テレビの電源をオンする制御コマンド)を端末装置2に送信する(図3の(13))。
端末装置2のマイクロコンピュータ21は、ホームサーバー3が送信した制御コマンドを受信する。次に、マイクロコンピュータ21は、受信した制御コマンドに対応するリモコンコード(テレビの電源をオンするリモコンコード)を、赤外線LED24により送信する(図3の(14))。テレビ6は、端末装置2が送信したテレビの電源をオンするリモコンコードにより電源がオンする(図3の(15))。
次に、例えば、ユーザーは、テレビの電源をオフにしたい場合、「オフ」と発話する(図4の(16))。端末装置2のマイク22は、ユーザーが発話した音声を集音し音声データとしてマイクロコンピュータ21に出力する。マイクロコンピュータ21は、音声データ(「オフ」)をホームサーバー3に送信する(図4の(17))。ホームサーバー3のCPU31は、NW I/F34により端末装置2が送信した音声データを受信する。次に、CPU31は、NW I/F34によりクラウドサーバー4に音声データを送信し、音声認識の問い合わせを行う(図4の(18))。
クラウドサーバー4は、ホームサーバー3が送信した音声データを受信する。クラウドサーバー4は、音声データに含まれる文字データを認識し、認識した文字データに対応する音声コマンド(「オフ」)をホームサーバー3に送信し、音声認識の結果を応答する(図4の(19))。ホームサーバー3のCPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンドを受信する。CPU31は、音声認識結果の解析を行う(図4の(20))。
CPU31は、音声コマンド「オフ」を受信したときに、機器制御情報DBに基づいて、音声コマンド「オフ」に対応するCharacteristics「Power State OFF」を記憶する(図2(d)参照)。コマンド情報DBには、既に、Accessory「テレビ」、Service「tv_control」が記憶されているため、Accessory、Service、Characteristicsが確定し、CPU31は、受信した音声コマンドに対応する制御コマンドを「テレビの電源をオフする制御コマンド」に決定することができる。CPU31は、NW I/F34により決定した制御コマンド(テレビの電源をオフする制御コマンド)を端末装置2に送信する(図4の(21))。
端末装置2のマイクロコンピュータ21は、ホームサーバー3が送信した制御コマンドを受信する。次に、マイクロコンピュータ21は、受信した制御コマンドに対応するリモコンコード(テレビの電源をオフするリモコンコード)を、赤外線LED24により送信する(図4の(22))。テレビ6は、端末装置2が送信したテレビの電源をオフするリモコンコードにより電源がオフする(図4の(23))。
端末装置2のマイクロコンピュータ21は、データ送信モードに遷移してから所定時間経過後、データ送信モードを終了する。また、クラウドサーバー4が所定時間、無音を検出した場合に、マイクロコンピュータ21は、データ送信モードを終了するようにしてもよい。
次に、クラウドサーバー4が送信した音声コマンドを受信した場合のホームサーバー3の処理動作を、図5に示すフローチャートに基づいて説明する。ホームサーバー3のCPU31は、NW I/F34によりクラウドサーバー4が送信した音声コマンドを受信すると(S1)、機器制御情報DBに基づいて、受信した音声コマンドが機器制御情報と一致するか否かを判断する(S2)。CPU31は、受信した音声コマンドが機器制御情報と一致しないと判断した場合(S2:No)、処理を終了する。
CPU31は、受信した音声コマンドが機器制御情報と一致すると判断した場合(S2:Yes)、受信した音声コマンドがAccessoryに対応しているか否かを判断する(S3)。CPU31は、受信した音声コマンドがAccessoryに対応していると判断した場合(S3:Yes)、コマンド情報DBに基づいて、初期状態(図2(a)参照)であるか否かを判断する(S4)。CPU31は、初期状態でないと判断した場合(S4:No)、コマンド情報DBにおいて、Accessoryよりも優先順位が下位のService、Characteristicsを消去(「None」に変更)する(S5)。
CPU31は、受信した音声コマンドがAccessoryに対応していないと判断した場合(S3:No)、受信した音声コマンドがServiceに対応しているか否かを判断する(S6)。CPU31は、受信した音声コマンドがServiceに対応していると判断した場合(S6:No)、コマンド情報DBに基づいて、初期状態(図2(a)参照)であるか否かを判断する(S7)。CPU31は、初期状態でないと判断した場合(S7:No)、コマンドDB情報において、Serviceよりも優先順位が下位のCharacteristicsを消去(「None」に変更)する(S8)。
CPU31は、初期状態であると判断した場合(S4、S7:Yes)、受信した音声コマンドがServiceに対応していないと判断した場合(S6:No)、S5、S8の処理の後、情報コマンドDBに基づいて、Accessory、Service、Characteristicsが確定しており、制御コマンドを決定できるか否かを判断する(S9)。CPU31は、Accessory、Service、Characteristicsが確定しておらず、制御コマンドを決定できないと判断した場合(S9:No)、処理を終了する。
CPU31は、Accessory、Service、Characteristicsが確定しており、制御コマンドを決定できると判断した場合(S9:Yes)、コマンド情報DBに基づいて制御コマンドを決定し、NW I/F34により決定した制御コマンドを端末装置2に送信する(S10)。
以上説明したように、本実施形態では、端末装置2のマイクロコンピュータ21は、マイク22が出力する音声データに含まれる文字データと所定のキーワードとが一致した場合に、所定のキーワードよりも後にマイク22が出力する音声データをホームサーバー3に送信する。ホームサーバー3のCPU31は、端末装置2が送信した音声データをクラウドサーバー4に送信し、送信した音声データに対応する音声コマンドをクラウドサーバー4から受信する。また、CPU31は、受信した音声コマンドに基づいて制御コマンドを決定し、決定した制御コマンドを端末装置2に送信する。そして、端末装置2のマイクロコンピュータ21は、ホームサーバー3が送信する制御コマンドを受信し、受信した制御コマンドに対応するリモコンコードを赤外線LED24によりテレビ6又は照明7に送信する。従って、ユーザーは、所定のキーワードを一度発話すればよく、所定のキーワードを復唱する必要がないため、少ない発話量で電子機器を制御することができる。また、端末装置2側で逐一キーワードの音声認識をする必要がない。
また、本実施形態では、ホームサーバー3のCPU31は、受信した音声コマンドに対応するAccessory(制御対象の電子機器(例えば、テレビ))、Service(制御対象の機能(例えば、tv_control))、Characteristics(実行内容(例えば、Power State ON))を記憶部33のコマンド情報DBに記憶する。そして、CPU31は、記憶部33のコマンド情報DBに記憶されているAccessory(制御対象の電子機器(例えば、テレビ))、Service(制御対象の機能(例えば、tv_control))、Characteristics(実行内容(例えば、Power State ON))に基づいて、制御コマンド(例えば、テレビの電源をオンする制御コマンド)を決定する。例えば、CPU31は、Accessory(制御対象の電子機器(例えば、テレビ))、Service(制御対象の機能(例えば、tv_control))、Characteristics(実行内容(例えば、Power State ON))が記憶部33のコマンド情報DBに記憶されており、且つ、Characteristics(実行内容(例えば、Power State OFF)に対応する音声コマンドを受信した場合、制御コマンド(例えば、テレビの電源をオフにする制御コマンド)を決定することができる。このため、ユーザーは、Accessory(制御対象の電子機器(例えば、テレビ))、Service(制御対象の機能(例えば、tv_control))、Characteristics(実行内容(例えば、Power State ON))に対応する音声を発話しており、Characteristics(実行内容(例えば、Power State OFF)だけ異なる制御を行いたい場合は、Characteristics(実行内容)に対応する音声のみを発話すればよい。これにより、ユーザーは、少ない発話量で電子機器を制御することができる。
また、本実施形態では、ホームサーバー3のCPU31は、受信した音声コマンドがAccessory(制御対象の電子機器(例えば、テレビ))に対応している場合、記憶部33のコマンド情報DBに記憶されているService(制御対象の機能(例えば、tv_control)、Characteristics(実行内容(例えば、Power State ON)を消去する。また、CPU31は、受信した音声コマンドがService(制御対象の機能(例えば、tv_control))に対応している場合、記憶部33のコマンド情報DBに記憶されているCharacteristics(実行内容(例えば、Power State ON)を消去する。このため、ユーザーは、Accessory(制御対象の電子機器)、Service(制御対象の機能)に対応する音声を発話して、それらを変更することができる。
また、本実施形態では、ホームサーバー3のCPU31は、記憶部33のコマンド情報DBにAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)が記憶されていない初期状態で、且つ、受信した音声コマンドがCharacteristics(実行内容(例えば、Power State On)に対応している場合、記憶部33のコマンド情報DBにCharacteristics(実行内容)を記憶し、この後、受信した音声コマンドがAccessory(制御対象の電子機器)又はService(制御対象の機能)に対応している場合、記憶部33のコマンド情報DBに記憶されているCharacteristics(実行内容)を消去せずに、受信した音声コマンドが対応するAccessory(制御対象の電子機器(例えば、テレビ))又はService(制御対象の機能(例えば、tv_control))を記憶部33のコマンド情報DBに記憶する。そして、CPU31は、記憶部33のコマンド情報DBに記憶されているAccessory(制御対象の電子機器(例えば、テレビ))、Service(制御対象の機能(例えば、tv_control))、Characteristics(実行内容(例えば、Power State ON))に基づいて、制御コマンド(例えば、テレビの電源をオンする制御コマンド)を決定する。このため、ユーザーは、初期状態では、音声の発話順を考えることなく発話して、電子機器を制御することができる。
また、本実施形態では、ホームサーバー3のCPU31は、受信した音声コマンドがAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)のいずれか2つ以上に対応している場合、優先順位に関係なく、受信した音声コマンドに対応するAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)を記憶部33のコマンド情報DBに記憶する。そして、CPU31は、記憶部33のコマンド情報DBに記憶されているAccessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)に基づいて、制御コマンドを決定する。このため、ユーザーは、Accessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)に対応する音声を連続して発話することで、電子機器を制御することができる。また、ユーザーは、Accessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)に対応する音声を連続して発話することで、音声の発話順を考えることなく発話して、電子機器を制御することができる。また、Accessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)に対応する音声が連続して発話されれば、Accessory(制御対象の電子機器)、Service(制御対象の機能)、Characteristics(実行内容)の順に発話される必要がない。このため、例えば、日本語では、「テレビつけて」のように、Accessory(制御対象の電子機器)、Characteristics(実行内容)の順に発話するのが一般的であるが、例えば、英語の「Turn on the TV」のように、Characteristics(実行内容)、Accessory(制御対象の電子機器)の順の発話にも対応することができる。
以上、本発明の実施形態について説明したが、本発明を適用可能な形態は、上述の実施形態には限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更を加えることが可能である。