(57)【要約】【課題】音声に対する認識結果から問題発生の懸念があるコマンド文字列が不用意に選択され、当該コマンド文字列に基づいてコマンドデータが生成されることを防止したコマンドデータ生成システムを提供する。【解決手段】コマンド生成システムは、機器への音声コマンドに対する認識結果を示す認識結果文字列を取得する音声認識結果取得部と、前記認識結果文字列と、複数のコマンド文字列のそれぞれと、の近似度を計算する近似度計算部と、前記各近似度と、前記各コマンド文字列に対応する閾値と、に基づいて、前記コマンド文字列を選択するコマンド文字列選択部と、前記選択されたコマンド文字列に基づいて、前記機器に対して送信すべきコマンドを生成するコマンド生成部と、を有する。【選択図】図８
2019101254.tif 000002
【特許請求の範囲】
【請求項１】
機器への音声コマンドに対する認識結果を示す認識結果文字列を取得する音声認識結果取得部と、
前記認識結果文字列と、複数のコマンド文字列のそれぞれと、の近似度を計算する近似度計算部と、
前記各近似度と、前記各コマンド文字列に対応する閾値と、に基づいて、前記コマンド文字列を選択するコマンド文字列選択部と、
前記選択されたコマンド文字列に基づいて、前記機器に対して送信すべきコマンドを生成するコマンド生成部と、
を有することを特徴とするコマンド生成システム。
【請求項２】
前記文字列選択部は、前記閾値より大きな近似度に対応した前記コマンド文字列を選択することを特徴とする請求項１に記載のコマンド生成システム。
【請求項３】
前記コマンド文字列選択部は、さらに、前記コマンド文字列を選択するごとに、選択された前記コマンド文字列と関連付けられた前記機器が設置されたロケーションを識別するロケーション識別子を取得し、
前記近似度計算部は、直近の前記ロケーション識別子と関連付けられた１または複数の前記コマンド文字列と、前記認識結果文字列と、の近似度のみを計算する、
ことを特徴とする請求項１または２に記載のコマンド生成システム。
【請求項４】
前記音声認識結果取得部は、さらに、前記認識結果文字列と関連付けて、前記音声コマンドが入力された音声入力装置を識別する音声入力装置識別子を取得し、
前記複数のコマンド文字列は、それぞれ前記音声入力装置識別子と関連付けられ、
前記コマンド文字列選択部は、取得された前記音声入力装置識別子と関連付けられた１または複数の前記コマンド文字列の中に、前記閾値より大きな近似度に対応した前記コマンド文字列が有る場合に該対応する前記コマンド文字列を選択し、該対応した前記コマンド文字列がない場合に、取得された前記音声入力装置識別子と関連付けられていない１または複数の前記コマンド文字列の中から前記閾値より大きな近似度に対応した前記コマンド文字列を選択する、
ことを特徴とする請求項１または２に記載のコマンド生成システム。
【請求項５】
機器への音声コマンドに対する認識結果を示す認識結果文字列を取得する音声認識結果取得ステップと、
前記認識結果文字列と、複数のコマンド文字列のそれぞれと、の近似度を計算する近似度計算ステップと、
前記各近似度と、前記各コマンド文字列に対応する閾値と、に基づいて、前記コマンド文字列を選択するコマンド文字列選択ステップと、
前記選択されたコマンド文字列に基づいて、前記機器に対して送信すべきコマンドを生成するコマンド生成ステップと、
を有することを特徴とするコマンド生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコマンドデータ生成システム及びコマンド生成方法に関する。
【背景技術】
【０００２】
ネットワークを介して送信されるコマンドデータを受信して当該コマンドデータに対応する動作を行う機器が知られている（特許文献１）。また、近年、当該機器と、音声入力装置に入力された音声を変換することでコマンドデータを生成する装置とを合わせたシステムが用いられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１０００８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
機器の名称等は、ユーザによって任意に設定される場合があり、当該名称を予め予測することは困難である。そのため、任意に設定された名称を含む音声が音声入力装置に入力されると、予め記憶したコマンド文字列から機器に送信するコマンド文字列を選択することはできない。この場合、予め記憶されたコマンド文字列のうち、当該コマンド文字列と音声から変換されたデータとの近似度が所定の閾値より高いコマンド文字列が選択される。
【０００５】
しかし、当該閾値がどのコマンド文字列に対しても一定であれば、生成されるコマンド文字列によっては、不都合が生じる場合がある。例えば、当該コマンド文字列が機器に音楽の再生を指示するコマンドを表す場合や、再生した音楽の音量を上げるコマンドを表す場合、安眠を妨げる等の問題が生じる可能性がある。このように、コマンド文字列には、実際に発行されることによりトラブルが発生する懸念があるコマンド文字列が含まれる。
【０００６】
本発明は上記課題に鑑みてなされたものであって、その目的は、音声に対する認識結果から問題発生の懸念があるコマンド文字列が不用意に選択され、当該コマンド文字列に基づいてコマンドデータが生成されることを防止したコマンドデータ生成システムを提供することにある。
【課題を解決するための手段】
【０００７】
本開示にかかるコマンド生成システムは、機器への音声コマンドに対する認識結果を示す認識結果文字列を取得する音声認識結果取得部と、前記認識結果文字列と、複数のコマンド文字列のそれぞれと、の近似度を計算する近似度計算部と、前記各近似度と、前記各コマンド文字列に対応する閾値と、に基づいて、前記コマンド文字列を選択するコマンド文字列選択部と、前記選択されたコマンド文字列に基づいて、前記機器に対して送信すべきコマンドを生成するコマンド生成部と、を有することを特徴とする。
【０００８】
本開示にかかるコマンド生成方法は、機器への音声コマンドに対する認識結果を示す認識結果文字列を取得する音声認識結果取得ステップと、前記認識結果文字列と、複数のコマンド文字列のそれぞれと、の近似度を計算する近似度計算ステップと、前記各近似度と、前記各コマンド文字列に対応する閾値と、に基づいて、前記コマンド文字列を選択するコマンド文字列選択ステップと、前記選択されたコマンド文字列に基づいて、前記機器に対して送信すべきコマンドを生成するコマンド生成ステップと、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、音声に対する認識結果から問題発生の懸念があるコマンドデータが不用意に生成されることを防止できる。
【図面の簡単な説明】
【００１０】
【図１】コマンド生成システムを含む機器制御システムの構成を示す図である。
【図２】コマンドの例を示す図である。
【図３】コマンド生成システムの構成を示す図である。
【図４】機器テーブルの一例を示す図である。
【図５】機器閾値テーブルの一例を示す図である。
【図６】機器閾値テーブルの一例を示す図である。
【図７】コマンドテーブルの一例を示す図である。
【図８】機器制御システムの機能ブロック図である。
【図９】コマンドデータの例を示す図である。
【図１０】コマンド生成システムで実行される処理を示す図である。
【図１１】コマンド生成システムで実行される処理を示す図である。
【図１２】コマンド生成システムで実行される処理を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態の例を図面に基づいて説明する。
【００１２】
［１．システム構成］図１は、本発明の実施形態に係るコマンド生成システム５０を含む機器制御システム１の構成を示す。図１に示すように、機器制御システム１は、第１機器２０−１、第２機器２０−２、第３機器２０−３、第４機器２０−４、第５機器２０−５、第１音声入力装置３０−１、第２音声入力装置３０−２、第３音声入力装置３０−３、音声認識装置４０、及びコマンド生成システム５０を含む。
【００１３】
以下では、第１機器２０−１、第２機器２０−２、第３機器２０−３、第４機器２０−４及び第５機器２０−５を総称して「機器２０」と記載する場合がある。第１音声入力装置３０−１、第２音声入力装置３０−２及び第３音声入力装置３０−３を総称して「音声入力装置３０」と記載する場合がある。第１ＬＡＮ２−１及び第２ＬＡＮ２−２を総称して「ＬＡＮ２」と記載する場合がある。第１ルータ４−１及び第２ルータ４−２を総称して「ルータ４」と記載する場合がある。
【００１４】
機器２０及び音声入力装置３０はローカルエリアに設置され、第１ＬＡＮ２−１または第２ＬＡＮ２−２に接続される。具体的には、第１機器２０−１、第２機器２０−２、第３機器２０−３、第４機器２０−４、第１音声入力装置３０−１及び第２音声入力装置３０−２は、第１ＬＡＮ２−１に接続される。第５機器２０−５及び第３音声入力装置３０−３は、第２ＬＡＮ２−２に接続される。第１ＬＡＮ２−１と第２ＬＡＮ２−２は、分離されたローカルエリアネットワークである。
【００１５】
ＬＡＮ２は有線ＬＡＮであってもよいし、無線ＬＡＮであってもよい。ＬＡＮ２はルータ４を介してインターネット６（ワイドエリアネットワーク）に接続される。具体的には、第１ＬＡＮ２−１は、自宅に設置されたローカルエリアネットワークである。第２ＬＡＮ２−２は、別荘に設置されたローカルエリアネットワークであって、第１ＬＡＮ２−１とは分離されている。第１ＬＡＮ２−１は、第１ルータ４−１を介してインターネット６に接続される。第２ＬＡＮ２−２は、第２ルータ４−２を介してインターネット６に接続される。音声認識装置４０及びコマンド生成システム５０はローカルエリア外に設置される。すなわち、機器２０及び音声入力装置３０から見て、音声認識装置４０及びコマンド生成システム５０はインターネット６側に設置される。
【００１６】
なお、「ローカルエリア」とは、ＬＡＮ２を介した通信が可能な限られた範囲のエリアである。一方、「ワイドエリア」とは、ローカルエリア外も含むエリアであり、インターネット６を介した通信が可能な範囲のエリアである。また、図１には２個のローカルエリアを記載しているが、ローカルエリアは１個であってもよいし、３個以上であってもよい。
【００１７】
機器２０は、コマンド生成システム５０が生成したコマンドデータの宛先となる機器である。図１では、５台の機器２０のみが示されているが、６台以上の機器２０が含まれていてもよいし、４台以下の機器２０のみが含まれていてもよい。
【００１８】
例えば、機器２０はオーディオ機器又はオーディオビジュアル機器である。具体的には、機器２０は、ＡＶレシーバ、ＡＶアンプ、スピーカ、光ディスク再生機器（ブルーレイディスク（登録商標）プレーヤ又はＤＶＤ（登録商標）プレーヤ等）、又はテレビジョン受像機である。また例えば、機器２０は楽器（電子楽器又は電気楽器等）であってもよい。なお、機器２０はこれら以外の機器であってもよい。
【００１９】
以下では、第１機器２０−１がＡＶレシーバであり、第２機器２０−２が自動演奏機能（データに基づいて鍵盤やペダルの動きを再現して自動的に演奏を行う機能）を備えた電子ピアノであり、第３機器２０−３、第４機器２０−４及び第５機器２０−５がテレビジョン受像機である例を想定する。また、第１機器２０−１、第２機器２０−２、第３機器２０−３及び第１音声入力装置３０−１は、自宅のリビングルームに設置されているとする。また、第４機器２０−４及び第２音声入力装置３０−２は、自宅のベッドルームに設置されているとする。さらに、第５機器２０−５及び第３音声入力装置３０−３は、別荘のベッドルームに設置されているとする。
【００２０】
第２機器２０−２はオーディオケーブルを介して第１機器２０−１の外部入力端子に接続され、第３機器２０−３はＨＤＭＩ（High-Definition Multimedia Interface：登録商標）ケーブルを介して第１機器２０−１の第１のＨＤＭＩ端子（ＨＤＭＩ１）に接続されている。
【００２１】
また、第１機器２０−１のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：１１」であり、プライベートＩＰアドレス「１９２．１６８．０．２」が第１機器２０−１に対して設定されている。第２機器２０−２のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：２２」であり、プライベートＩＰアドレス「１９２．１６８．０．３」が第２機器２０−２に対して設定されている。第３機器２０−３のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：３３」であり、プライベートＩＰアドレス「１９２．１６８．０．４」が第３機器２０−３に対して設定されている。第４機器２０−４のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：４４」であり、プライベートＩＰアドレス「１９２．１６８．０．５」が第４機器２０−４に対して設定されている。第５機器２０−５のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：５５」であり、プライベートＩＰアドレス「１９２．１６８．０．６」が第５機器２０−５に対して設定されている。
【００２２】
図１に示すように、第１機器２０−１は制御部２１、記憶部２２、及び通信部２３を含む。制御部２１は少なくとも一つのマイクロプロセッサ（ＣＰＵ）を含み、記憶部２２に記憶されたプログラムに従って処理を実行する。記憶部２２は、主記憶部（例えばＲＡＭ）及び補助記憶部（例えば、不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ）を含む。記憶部２２はプログラムやデータを記憶するためのものである。通信部２３は他の装置との間でデータを送受信するためのものである。図１では省略されているが、第２機器２０−２、第３機器２０−３、第４機器２０−４及び第５機器２０−５も制御部２１、記憶部２２、及び通信部２３を含む。
【００２３】
なお、機器２０は、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成要素（例えば光ディスクドライブ又はメモリーカードスロット等）を備えてもよい。そして、プログラムが情報記憶媒体を介して機器２０に供給されてもよい。プログラムはインターネット６を介して機器２０に供給されてもよい。
【００２４】
機器２０は、第１ＬＡＮ２−１または第２ＬＡＮ２−２（ローカルエリア内での伝送手段の一例）を介して送信されるコマンドを受信して当該コマンドに対応する動作を行う。このため、ＬＡＮ２を介して機器２０を制御できる。すなわち、スマートフォン又はタブレット型コンピュータ等の端末からＬＡＮ２を介してコマンドを機器２０に送信することによって、当該コマンドに応じた動作を機器２０に行わせることができる。
【００２５】
図２はコマンドの例を示す。図２に示すコマンドＣ１及びＣ５は第１機器２０−１（ＡＶレシーバ）に対するコマンドの例であり、コマンドＣ２乃至Ｃ４は第２機器２０−２（電子ピアノ）に対するコマンドの例である。
【００２６】
図２に示すコマンドはＨＴＴＰプロトコルを使用したものになっており、コマンドとしてＵＲＬが設定されている。図２に示す例の場合、コマンドがＨＴＴＰリクエストの形で第１機器２０−１又は第２機器２０−２に対して送信される。第１機器２０−１又は第２機器２０−２ではＨＴＴＰデーモンが起動されており、ＨＴＴＰデーモンによってＨＴＴＰリクエストが受け付けられ、当該ＨＴＴＰリクエストに応じた処理が実行される。そして、その処理結果を示すＨＴＴＰレスポンスがコマンドの送信元に返信される。なお、第３機器２０−３、第４機器２０−４及び第５機器２０−５に対しても、ＨＴＴＰプロトコルを使用したコマンドを送信することが可能である。
【００２７】
コマンドＣ１は第１機器２０−１をスタンバイ状態（非起動状態）から起動するコマンドである。「スタンバイ状態」とは消費電力が通常状態（起動状態）よりも低減された状態である。すなわち、スタンバイ状態は完全に電源がオフになった状態ではなく、スタンバイ状態でもネットワーク通信機能等は有効になっており、コマンドデータを受信したり、コマンドを実行（送信）したり、コマンドを受け付けたりすることが可能である。
【００２８】
コマンドＣ２は、第２機器２０−２（電子ピアノ）の自動演奏を開始させるコマンドである。コマンドＣ３は、第２機器２０−２の出力音量を上げるコマンドである。コマンドＣ４は、第２機器２０−２の出力音量を下げるコマンドである。コマンドＣ５は第１機器２０−１を起動状態からスタンバイ状態に移行させるコマンドである。
【００２９】
なお、第２機器２０−２と第１機器２０−１とでコマンドの形式は同じであってもよいし、異なっていてもよい。第１機器２０−１、第２機器２０−２、第３機器２０−３、第４機器２０−４及び第５機器２０−５の間でもコマンドの形式は同じであってもよいし、異なっていてもよい。
【００３０】
音声入力装置３０はマイクロフォンを含み、音声コマンドを受け付ける。本実施形態では、ユーザが機器２０への音声コマンドを入力するために音声入力装置３０が使用される。例えば、ユーザが電子ピアノに自動演奏させたい場合、ユーザは「ｐｉａｎｏ  ｐｌａｙ」等を音声入力装置３０に入力する。また例えば、居間に設置されているオーディオシステムに音楽を再生させたい場合、ユーザは「ｐｌａｙ  ｉｎ  ｌｉｖｉｎｇ  ｒｏｏｍ」等を音声入力装置３０に入力する。
【００３１】
なお、音声入力装置３０は、複数であってもよいし、１つであってもよい。また、図１に示すように、１つのローカルエリアネットワーク（第１ＬＡＮ２−１）に複数の音声入力装置３０が接続されていてもよい。
【００３２】
音声入力装置３０に入力された音声コマンド（動作指示）を示す音声データはユーザＩＤとともにインターネット６を介して音声認識装置４０に送信される。音声認識装置４０は例えばサーバコンピュータによって実現される。音声認識装置４０は音声認識処理を実行することによって、音声データを、プログラム（コマンド生成システム５０）によって理解しやすい形式のデータに変換する。例えば、音声データを所定形式のテキストデータに変換する。そして、テキストデータに変換された音声コマンドはユーザＩＤとともにコマンド生成システム５０に送信される。
【００３３】
なお、ユーザＩＤは、音声データがコマンド生成システム５０に送信されるまでの間に、いずれかのインターネット側の装置（処理）によって付与されてもよい。また、音声データは、当該音声データが入力された音声入力装置３０を識別する音声入力装置識別子（以下音声入力装置ＩＤとする）とともに音声認識装置４０に送信されてもよい。
【００３４】
なお、機器２０の製造元ごとに異なるコマンド生成システム５０が用意されている場合であれば、機器２０に対する音声コマンドは、当該機器２０を製造したメーカー用のコマンド生成システム５０に送信される。また、コマンドの形式ごとに異なるコマンド生成システム５０が用意されている場合であれば、機器２０に対する音声コマンドは、当該機器２０で採用されているコマンドの形式用のコマンド生成システム５０に送信される。
【００３５】
図３に示すように、コマンド生成システム５０は、コマンドデータ送信装置１０、データベース６０、及びＭＱＴＴ（Message Queueing Telemetry Transport）サーバ７０を含む。
【００３６】
コマンドデータ送信装置１０は例えばサーバコンピュータによって実現される。図３に示すように、コマンドデータ送信装置１０は制御部１１、記憶部１２、及び通信部１３を含む。制御部１１、記憶部１２、及び通信部１３は制御部２１、記憶部２２、及び通信部２３と同様である。なお、コマンドデータ送信装置１０は、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成要素（例えば光ディスクドライブ又はメモリーカードスロット等）を備えてもよい。そして、プログラムが情報記憶媒体を介してコマンドデータ送信装置１０に供給されてもよい。プログラムはインターネット６を介してコマンドデータ送信装置１０に供給されてもよい。
【００３７】
コマンドデータ送信装置１０はデータベース６０にアクセス可能である。コマンドデータ送信装置１０とデータベース６０とは一つのサーバコンピュータによって実現されてもよいし、別のサーバコンピュータによって実現されてもよい。
【００３８】
コマンドデータ送信装置１０は、機器２０に対する音声コマンドを受け付け、当該音声コマンドに基づいてコマンドデータを生成し、当該コマンドデータを当該機器２０又は他の機器２０（代替機器）に送信する。後述するように、コマンドデータはＭＱＴＴサーバ７０を介して機器２０又は他の機器２０（代替機器）に送信される。
【００３９】
データベース６０は各種データを記憶する。例えば、データベース６０は各ユーザの所有している機器２０の情報を記憶する。図４はデータベース６０に記憶される機器テーブルの一例を示す。機器テーブルＴ１はユーザごとに（ユーザＩＤと関連付けて）記憶される。なお、コマンド生成システム５０（データベース６０）で使用されるユーザＩＤは、音声入力装置３０及び音声認識装置４０で使用されるユーザＩＤと異なっていてもよいし、同じであってもよい。ただし、これらのユーザＩＤが異なる場合には、それらのユーザＩＤを変換するための対応関係データがコマンド生成システム５０又は音声認識装置４０に記憶されている必要がある。
【００４０】
図４に示すように、機器テーブルＴ１は「ＩＤ」、「名称」、「ｚｏｎｅ」、「ＬＩＤ」「ＭＡＣアドレス」、「ＩＰアドレス」、「音声入力装置ＩＤ」フィールドを含む。
【００４１】
「ＩＤ」フィールドは、ユーザの所有している各機器２０を一意に識別する情報を示す。図４では、第１機器２０−１が機器ＩＤ「１」に相当し、第２機器２０−２が機器ＩＤ「２」に相当する。
【００４２】
「名称」フィールドは機器２０の名称を示す。この名称はユーザが動作指示の対象の機器２０を指定するために使用される。名称としては、ユーザによって設定された任意の名称が使用されるようにしてもよいし、機器２０の製造元等によって設定された名称が使用されるようにしてもよい。
【００４３】
例えば、第１機器２０−１乃至第３機器２０−３の名称として、「ｌｉｖｉｎｇ  ｒｏｏｍ」が設定されている。第４機器２０−４の名称として、「ｂｅｄ  ｒｏｏｍ１」が設定されている。第５機器２０−５の名称として、「ｂｅｄ  ｒｏｏｍ２」が設定されている。
【００４４】
「ｚｏｎｅ」フィールドは、ホスト機器によって制御されるクライアント機器の名称を示す。具体的には、図１に示すように、第１機器２０−１がホスト機器であって、第２機器２０−２及び第３機器２０−３が第１機器２０−１のクライアント機器であるとして説明する。「ｚｏｎｅ」フィールドに「ｍａｉｎ」が設定された機器は、ホスト機器である。すなわち、第１機器２０−１は、ホスト機器である。「ｚｏｎｅ」フィールドに「ｍａｉｎ」という情報以外が設定された機器２０は、クライアント機器である。すなわち、第２機器２０−２及び第３機器２０−３は、第１機器２０−１のクライアント機器である。第２機器２０−２の「ｚｏｎｅ」フィールドには、「ｐｉａｎｏ」が設定されている。第３機器２０−３の「ｚｏｎｅ」フィールドには、「ＴＶ」が設定されている。また、ホスト機器とクライアント機器の関係にある機器２０の「名称」フィールドには、同一の名称が設定される。
【００４５】
なお、「名称」フィールド及び「ｚｏｎｅ」フィールドの各値は、特許請求の範囲のコマンド文字列の一部に相当する。
【００４６】
「ＬＩＤ」フィールドは、機器２０が設置されているロケーションを識別する情報（ロケーション識別子、以下「ＬＩＤ」とする）を示す。具体的には、「ＬＩＤ」フィールドには、設置された環境ごとに当該環境を識別する情報が設定される。例えば、それぞれ自宅のリビングルームに設置された第１機器２０−１、第２機器２０−２及び第３機器２０−３に対して、同じ「０」という「ＬＩＤ」が設定される。自宅のベッドルームに設置された第４機器２０−４に対して、「１」という「ＬＩＤ」が設定される。別荘のベッドルームに設置された第５機器２０−５に対して、「２」という「ＬＩＤ」が設定される。また、「ＬＩＤ」フィールドは、部屋ごとではなくフロアごとに一意の値が設定されてもよい。例えば、１階に設置された各機器２０に対し「０」という「ＬＩＤ」を設定し、２階に設置された各機器２０に対し「１」という「ＬＩＤ」を設定してもよい。
【００４７】
直近の指示の対象となった機器２０の「ＬＩＤ」は、例えば記憶部１２に、「ＣＩＤ」として記憶される。「ＣＩＤ」は、テンポラリデータであって、ユーザが機器２０に対して指示を行うごとに、「ＣＩＤ」は更新される。具体的には、例えば、直前にユーザが「ＬＩＤ」が「０」である第２機器２０−２に対して指示をしていた場合、「０」という「ＣＩＤ」が記憶部１２に記憶される。なお、「ＣＩＤ」はデータベース６０に記憶されてもよい。
【００４８】
「ＭＡＣアドレス」及び「ＩＰアドレス」フィールドは、機器２０が備えている有線又は無線ネットワークインタフェースカードに対して設定されたＭＡＣアドレス及びＩＰアドレスを示す。
【００４９】
「音声入力装置ＩＤ」フィールドは、機器２０と関連付けられた音声入力装置３０を識別する識別子を示す。具体的には、第１音声入力装置３０−１と同じ自宅のリビングルームに設置された第１機器２０−１、第２機器２０−２及び第３機器２０−３に対して、同じ「０」という「音声入力装置ＩＤ」が設定される。第２音声入力装置３０−２と同じ自宅のベッドルームに設置された第４機器２０−４に対して、「１」という「音声入力装置ＩＤ」が設定される。第３音声入力装置３０−３と同じ別荘のベッドルームに設置された第５機器２０−５に対して、「２」という「音声入力装置ＩＤ」が設定される。
【００５０】
なお、機器テーブルＴ１は、「ＬＩＤ」フィールドと「音声入力装置ＩＤ」フィールドとを共に含んでいてもよいし、いずれか一方のみを含んでいてもよい。
【００５１】
また、直近の指示の対象となった機器２０の「ＬＩＤ」ではなく、直近の音声コマンドが入力された音声入力装置３０の「音声入力装置ＩＤ」を「ＣＩＤ」として記憶してもよい。例えば、ユーザが直近に入力した音声コマンドが、第１音声入力装置３０−１に対しての音声コマンドである場合、第１音声入力装置３０−１の「音声入力装置ＩＤ」である「０」が「ＣＩＤ」として記憶されてもよい。
【００５２】
また、データベース６０は、機器閾値テーブルを記憶する。図５及び図６は、データベース６０に記憶される機器閾値テーブルの一例である機器閾値テーブルＴ２及びＴ３を示す。機器閾値テーブルは「ＬＩＤ」ごとに（ＬＩＤと関連付けて）記憶される。
【００５３】
なお、機器閾値テーブルは、ＬＩＤの値によらず一意に定まるテーブルであってもよい。また、音声入力装置３０の「音声入力装置ＩＤ」を「ＣＩＤ」として記憶する場合、機器閾値テーブルは、「音声入力装置ＩＤ」ごとに（音声入力装置ＩＤと関連付けて）記憶されるようにしてもよい。
【００５４】
図５及び図６に示すように、機器閾値テーブルＴ２及びＴ３は「ＩＤ」、「名称」、「ｚｏｎｅ」及び「閾値」フィールドを含む。「ＩＤ」、「名称」及び「ｚｏｎｅ」フィールドは、機器テーブルＴ１の「ＩＤ」、「名称」及び「ｚｏｎｅ」とそれぞれ同じである。
【００５５】
「閾値」フィールドは、機器選択部１５０及びコマンド選択部１６０がコマンド文字列を選択する際に、近似度との比較の対象となる値を示す。「閾値」は、各「ＬＩＤ」ごとに各「ＩＤ」と関連付けて設定される。図５及び図６に示すように、同じ「ＩＤ」である機器に対して、「ＬＩＤ」が異なる場合には異なる「閾値」が設定される。
【００５６】
機器閾値テーブルＴ２並びにＴ３及びコマンドテーブルＴ４の「閾値」フィールドには、例えば、そのＬＩＤと関連付けられた機器２０が選択されやすいように小さい値が設定されるとともに、誤って選択された場合に問題が大きい機器２０又はコマンドと関連付けて大きな値が設定される。例えば、指示対象である機器２０が誤って認識されるおそれがある。具体的には、ユーザが指示対象の機器２０として「ｐｉａｎｏ」を音声入力したにもかかわらず、「ｂｅｄ  ｒｏｏｍ１」として認識されたとする。この場合、ユーザの意図に反して、リビングルームに設置された電子ピアノではなく、寝室に設置されたＴＶが動作するおそれがある。このように、誤った指示がなされた場合に問題が大きいと考えられる各項目について、大きな「閾値」が設定される。
【００５７】
例えば、「０」という「ＬＩＤ」と関連付けられた機器閾値テーブルＴ２では、「０」という「ＬＩＤ」と関連付けられた第１機器２０−１、第２機器２０−２及び第３機器２０−３に対して、第４機器２０−４及び第５機器２０−５よりも小さい閾値が設定される。「２」という「ＬＩＤ」と関連付けられた機器閾値テーブルＴ３では、「２」という「ＬＩＤ」と関連付けられた第５機器２０−５に対して、第１機器２０−１、第２機器２０−２、第３機器２０−３及び第４機器２０−４よりも小さい閾値が設定される。
【００５８】
また、ＬＩＤと関連付けられていない機器２０を機器閾値テーブルから取り除いておいてもよい。これにより、そのＬＩＤと関連付けられた機器２０のみを検索対象とすることができる。
【００５９】
さらに、データベース６０は、コマンドテーブルを記憶する。図７は、データベース６０に記憶されるコマンドテーブルＴ４の一例を示す。図７に示すように、コマンドテーブルＴ４は「コマンドＩＤ」、「コマンド」、及び「閾値」フィールドを含む。
【００６０】
「コマンドＩＤ」フィールドは、機器２０に対する各コマンドを一意に識別する情報を示す。図７では、「ｐｏｗｅｒ  ｏｎ」コマンドがコマンドＩＤ「１」に相当し、「ｐｌａｙ」コマンドがコマンドＩＤ「２」に相当し、「ｖｏｌｕｍｅ  ｕｐ」コマンドがコマンドＩＤ「３」に相当し、「ｖｏｌｕｍｅ  ｄｏｗｎ」コマンドがコマンドＩＤ「４」に相当し、「ｐｏｗｅｒ  ｏｆｆ」コマンドがコマンドＩＤ「５」に相当する。
【００６１】
「コマンド」フィールドは、機器２０に対する音声コマンドの内容を示す。具体的には、「ｐｏｗｅｒ  ｏｎ」コマンドは、機器をスタンバイ状態から起動するコマンドである。「ｐｌａｙ」コマンドは、機器２０（例えば、第２機器２０−２である電子ピアノ）の自動演奏を開始させるコマンドである「ｖｏｌｕｍｅ  ｕｐ」コマンドは、機器２０の出力音量を上げるコマンドである。「ｖｏｌｕｍｅ  ｄｏｗｎ」コマンドは、機器２０の出力音量を下げるコマンドである。「ｐｏｗｅｒ  ｏｆｆ」コマンドは、機器２０を起動状態からスタンバイ状態に移行させるコマンドである。
【００６２】
なお、「コマンド」フィールドの各値は、特許請求の範囲のコマンド文字列の一部に相当する。
【００６３】
「閾値」フィールドは、機器閾値テーブルＴ２及びＴ３に含まれる「閾値」と同様、後述するコマンド文字列選択部がコマンド文字列を選択する際に、近似度との比較の対象となる値を示す。
【００６４】
なお、図７のコマンドテーブルＴ４には、図２のコマンドＣ１乃至Ｃ５と対応するコマンドが記載されているが、他のコマンドを含んでいてもよい。また、各コマンドと対応する「閾値」は、機器２０に共通の値であってもよいし、機器２０ごとに（機器ＩＤと関連付けて）異なる値であってもよい。
【００６５】
データベース６０には機器テーブルＴ１、機器閾値テーブルＴ２並びにＴ３及びコマンドテーブルＴ４以外のデータも記憶される。例えば、音声コマンドとコマンド文字列との対応関係を示すデータ（言い換えれば、音声コマンドをテキストデータであるコマンドに変換するためのデータ）がデータベース６０に記憶される。このデータはコマンドの種類（体系）ごとに記憶される。
【００６６】
ＭＱＴＴサーバ７０は、ＭＱＴＴプロトコルを使用してデータを送受信するためのものである。コマンドデータ送信装置１０とＭＱＴＴサーバ７０とは一つのサーバコンピュータによって実現されてもよいし、別のサーバコンピュータによって実現されてもよい。
【００６７】
［２．機能ブロック］図８は、コマンド生成システム５０及び機器２０で実現される機能ブロックの一例を示す。
【００６８】
図８に示すように、コマンドデータ送信装置１０は音声認識結果取得部１１０、コマンドデータ制御部１２０、コマンドデータ送信部１３０を含む。コマンドデータ制御部１２０は、近似度計算部１４０、機器選択部１５０、コマンド選択部１６０、及びコマンドデータ生成部１７０を含む。これらの機能ブロックは例えば制御部１１によって実現される。
【００６９】
また図８に示すように、機器２０はコマンドデータ受信部２１０、及びコマンド送信部２２０を含む。これらの機能ブロックは例えば制御部２１によって実現される。
【００７０】
音声認識結果取得部１１０は、機器２０への音声コマンドに対する認識結果を示す認識結果文字列を取得する。具体的には、例えば、ユーザが第１音声入力装置３０−１に対して、「ｐｉａｎｏ  ｐｌａｙ」という音声を入力した例を想定して説明する。第１音声入力装置３０−１に入力された音声は、第１音声入力装置３０−１によって音声データに変換される。変換された音声データは、第１ルータ４−１及びインターネット６を介して音声認識装置４０に送信される。音声認識装置４０は、音声データを所定形式のテキストデータに変換する。例えば、「ｐｉａｎｏ  ｐｌａｙ」という音声データに基づいて、「ｐｉａｎｏ  ｐｌａｙ」というテキストデータが生成される。
【００７１】
ここで、第１音声入力装置３０−１の置かれた環境等に起因して、ユーザの意図を反映しないテキストデータに変換される場合がある。例えば、「ｐｉａｎｏ  ｐｌａｙ」という音声に基づいて、「ｐｉｎｏ  ｐｌｙ」というテキストデータが生成される場合がある。この場合、音声認識結果取得部１１０は、音声認識装置４０によって変換された、「ｐｉｎｏ  ｐｌｙ」というテキストデータを取得する。
【００７２】
また、音声認識結果取得部１１０は、認識結果文字列と関連付けて、音声コマンドが入力された音声入力装置を識別する「音声入力装置ＩＤ」を取得してもよい。具体的には、例えば図４に示す「音声入力装置ＩＤ」が設定されている場合を想定して説明する。まず、第１音声入力装置３０−１に音声コマンドが入力される。第１音声入力装置３０−１に入力された音声コマンドは、第１音声入力装置３０−１の「音声入力装置ＩＤ」である「０」とともにインターネット６を介して音声認識装置４０に送信される。音声認識装置４０は、音声データのデータ形式を変換し、変換後の音声データである認識結果文字列とともに「０」という「音声入力装置ＩＤ」を音声認識結果取得部１１０に送信する。そして、音声認識結果取得部１１０は、認識結果文字列と関連付けて、「０」という「音声入力装置ＩＤ」を取得してもよい。
【００７３】
コマンドデータ制御部１２０は、音声認識結果取得部１１０が取得した認識結果文字列に基づいて、コマンド文字列の選択及び機器２０に送信するコマンドデータの生成等を行う。近似度計算部１４０は、認識結果文字列と、複数のコマンド文字列のそれぞれと、の近似度を計算する。具体的には、近似度計算部１４０は、認識結果文字列に含まれる機器２０を示す文字列と、機器テーブルＴ１に含まれる当該機器２０の「名称」フィールドまたは「ｚｏｎｅ」フィールドの各値と、の近似度を計算する。
【００７４】
例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉａｎｏ  ｐｌａｙ」である場合、近似度計算部１４０は、認識結果文字列に含まれる「ｐｉａｎｏ」という文字列を機器２０に相当する文字列として抽出する。さらに、「ｐｉａｎｏ」という文字列と、「ｌｉｖｉｎｇ  ｒｏｏｍ」、「ｂｅｄ  ｒｏｏｍ１」、「ｂｅｄ  ｒｏｏｍ２」、「ｍａｉｎ」、「ｐｉａｎｏ」及び「ＴＶ」の各文字列と、の近似度を計算する。なお、文字列同士の近似度の計算方法については、従来技術を用いる為詳細な説明は省略する。
【００７５】
近似度計算部１４０は、「ｐｉａｎｏ」という文字列と、「ｐｉａｎｏ」という文字列と、の近似度は例えば１．０であると算出する。近似度計算部１４０は、「ｐｉａｎｏ」という文字列と、「ｌｉｖｉｎｇ  ｒｏｏｍ」、「ｂｅｄ  ｒｏｏｍ１」、「ｂｅｄ  ｒｏｏｍ２」、「ｍａｉｎ」、「ｐｉａｎｏ」及び「ＴＶ」の各文字列と、の近似度はそれぞれ例えば「０．１」であると算出する。ここでは、近似度「１．０」という値は、文字列同士が最も近似していることを示し、近似度「０．０」という値は、文字列同士が最も近似していないことを示す。
【００７６】
また、例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉｎｏ  ｐｌｙ」である場合、近似度計算部１４０は、認識結果文字列に含まれる「ｐｉｎｏ」という文字列を機器２０に相当する文字列として抽出する。さらに、「ｐｉｎｏ」という文字列と、「ｌｉｖｉｎｇ  ｒｏｏｍ」、「ｂｅｄ  ｒｏｏｍ１」、「ｂｅｄ  ｒｏｏｍ２」、「ｍａｉｎ」、「ｐｉａｎｏ」及び「ＴＶ」の各文字列と、の近似度を計算する。この場合、近似度計算部１４０は、「ｐｉｎｏ」という文字列と、「ｐｉａｎｏ」という文字列と、の近似度は例えば「０．７」であると算出する。近似度計算部１４０は、「ｐｉｎｏ」という文字列と、「ｌｉｖｉｎｇ  ｒｏｏｍ」、「ｂｅｄ  ｒｏｏｍ１」、「ｂｅｄ  ｒｏｏｍ２」、「ｍａｉｎ」、「ｐｉａｎｏ」及び「ＴＶ」の各文字列との近似度は例えばそれぞれ「０．１」であると算出する。
【００７７】
さらに、近似度計算部１４０は、認識結果文字列に含まれるコマンドを示す文字列と、コマンドテーブルＴ４に含まれる「コマンド」フィールドの各値と、の近似度を計算する。例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉａｎｏ  ｐｌａｙ」である場合、近似度計算部１４０は、認識結果文字列に含まれる「ｐｌａｙ」という文字列をコマンドに相当する文字列として抽出する。さらに、「ｐｌａｙ」という文字列と、「ｐｏｗｅｒ  ｏｎ」、「ｐｌａｙ」、「ｖｏｌｕｍｅ  ｕｐ」、「ｖｏｌｕｍｅ  ｄｏｗｎ」及び「ｐｏｗｅｒ  ｏｆｆ」の各文字列と、の近似度を計算する。近似度計算部１４０は、「ｐｌａｙ」という文字列と、「ｐｌａｙ」という文字列と、の近似度は例えば「１．０」であると算出する。近似度計算部１４０は、「ｐｌａｙ」という文字列と、「ｐｏｗｅｒ  ｏｎ」、「ｐｌａｙ」、「ｖｏｌｕｍｅ  ｕｐ」、「ｖｏｌｕｍｅ  ｄｏｗｎ」及び「ｐｏｗｅｒ  ｏｆｆ」の各文字列との近似度は例えばそれぞれ「０．１」であると算出する。
【００７８】
また、例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉｎｏ  ｐｌｙ」である場合、近似度計算部１４０は、認識結果文字列に含まれる「ｐｌｙ」という文字列をコマンドに相当する文字列として抽出する。さらに、「ｐｌｙ」という文字列と、「ｐｏｗｅｒ  ｏｎ」、「ｐｌａｙ」、「ｖｏｌｕｍｅ  ｕｐ」、「ｖｏｌｕｍｅ  ｄｏｗｎ」及び「ｐｏｗｅｒ  ｏｆｆ」の各文字列と、の近似度を計算する。この場合、近似度計算部１４０は、「ｐｌｙ」という文字列と、「ｐｌａｙ」という文字列と、の近似度は例えば「０．８」であると算出する。近似度計算部１４０は、「ｐｌｙ」という文字列と、「ｐｏｗｅｒ  ｏｎ」、「ｐｌａｙ」、「ｖｏｌｕｍｅ  ｕｐ」、「ｖｏｌｕｍｅ  ｄｏｗｎ」及び「ｐｏｗｅｒ  ｏｆｆ」の各文字列との近似度は例えばそれぞれ「０．１」であると算出する。
【００７９】
なお、近似度計算部１４０は、直近のロケーションＩＤと関連付けられた１または複数のコマンド文字列と、認識結果文字列と、の近似度のみを計算してもよい。具体的には、例えば、直近のコマンドデータが第２機器２０−２に対して送信されていた場合、「ＣＩＤ」は、第２機器２０−２と関連付けられた「ＬＩＤ」の値である「０」となる。この場合、近似度計算部は、認識結果文字列と、「ＬＩＤ」が「０」である第１機器２０−１、第２機器２０−２及び第３機器２０−３と関連付けられた「名称」及び「ｚｏｎｅ」の値とのみ、近似度を計算してもよい。「ＣＩＤ」が「ＬＩＤ」と異なる機器２０に関して、近似度の計算対象から除外することによって、現在ユーザが操作している対象の機器２０と異なるロケーションに設置された機器２０に対して誤った指示がなされることを防止できる。
【００８０】
機器選択部１５０及びコマンド選択部１６０は、各近似度と、各コマンド文字列に対応する閾値と、に基づいて、コマンド文字列を選択する。なお、特許請求の範囲におけるコマンド選択部は、機器選択部１５０及びコマンド選択部１６０に相当する。具体的には、機器選択部１５０は、機器２０に関する近似度と、機器閾値テーブルＴ２又はＴ３に含まれる当該機器２０と関連付けられた「閾値」と、に基づいて、機器閾値より大きな近似度に対応したコマンド文字列を選択する。
【００８１】
例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉａｎｏ  ｐｌａｙ」である場合、第２機器２０−２に関する近似度「１．０」は、機器閾値テーブルＴ２に含まれる第２機器２０−２と対応する「閾値」の値「０．７」よりも大きい。他の機器２０に関する各近似度は、機器閾値テーブルＴ２に含まれるそれぞれ対応する機器２０の「閾値」の値よりも小さい。そのため、機器選択部１５０は、第２機器２０−２と対応する「ｐｉａｎｏ」というコマンド文字列を選択する。
【００８２】
また、例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉｎｏ  ｐｌｙ」である場合、第２機器２０−２に関する近似度「０．７」は、機器閾値テーブルＴ２に含まれる第２機器２０−２と対応する「閾値」の値「０．７」と同じである。他の機器２０に関する各近似度は、機器閾値テーブルＴ２に含まれるそれぞれ対応する機器２０の「閾値」の値よりも小さい。そのため、機器選択部１５０は、第２機器２０−２と対応する「ｐｉａｎｏ」というコマンド文字列を選択する。
【００８３】
なお、機器選択部１５０は、さらに、コマンド文字列を選択するごとに、選択されたコマンド文字列と関連付けられた機器２０が設置されたロケーションを識別するロケーション識別子（ＬＩＤ）を取得してもよい。具体的には、例えば、機器選択部１５０は、「ｐｉａｎｏ」というコマンド文字列を選択した場合、「ｐｉａｎｏ」というコマンド文字列と関連付けられた「０」という「ＬＩＤ」を取得する。機器選択部１５０が取得した「ＬＩＤ」は、「ＣＩＤ」として記憶部に記憶される。
【００８４】
また、機器選択部１５０は、直近のＬＩＤと関連付けられた「名称」及び「ｚｏｎｅ」フィールドのみを検索の対象としてもよい。具体的には、例えば、直近のコマンドデータが第２機器２０−２に対して送信されていた場合、「ＣＩＤ」は、第２機器２０−２と関連付けられた「ＬＩＤ」の値である「０」となる。この場合、機器選択部１５０は、「ＬＩＤ」が「０」である第１機器２０−１、第２機器２０−２及び第３機器２０−３と関連付けられた「名称」及び「ｚｏｎｅ」のみを検索の対象としてもよい。
【００８５】
コマンド選択部１６０は、コマンドに関する近似度と、コマンドテーブルＴ４に含まれる当該コマンドと関連付けられた「閾値」と、に基づいて、機器閾値より大きな近似度に対応したコマンド文字列を選択する。
【００８６】
例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉａｎｏ  ｐｌａｙ」である場合、「ｐｌａｙ」というコマンドに関する近似度「１．０」は、コマンドテーブルＴ４に含まれる「ｐｌａｙ」と対応する「閾値」の値「０．８」よりも大きい。他のコマンドに関する各近似度は、コマンドテーブルＴ４に含まれるそれぞれ対応するコマンドの「閾値」の値よりも小さい。そのため、機器選択部１５０は、「ｐｌａｙ」というコマンド文字列を選択する。
【００８７】
また、例えば、音声認識結果取得部１１０が取得した認識結果文字列が「ｐｉｎｏ  ｐｌｙ」である場合、「ｐｌｙ」というコマンドに関する近似度「０．８」は、コマンドテーブルＴ４に含まれる「ｐｌｙ」と対応する「閾値」の値「０．８」と同じである。他のコマンドに関する各近似度は、コマンドテーブルＴ４に含まれるそれぞれ対応するコマンドの「閾値」の値よりも小さい。そのため、機器選択部１５０は、「ｐｌａｙ」というコマンド文字列を選択する。
【００８８】
上記のように、音声認識結果取得部１１０が取得した認識結果文字列が、実際にユーザ意図したコマンド文字列と異なる場合であっても、同じコマンド文字列が選択される。これにより、音声に対する認識結果から問題発生の可能性があるコマンドデータが不用意に生成されることを防止できる。
【００８９】
なお、コマンド選択部は、取得された音声入力装置ＩＤと関連付けられた１または複数のコマンド文字列の中に、閾値より大きな近似度に対応したコマンド文字列が有る場合に該対応するコマンド文字列を選択してもよい。さらに、コマンド選択部は、該対応したコマンド文字列がない場合に、取得された音声入力装置ＩＤと関連付けられていない１または複数のコマンド文字列の中から閾値より大きな近似度に対応したコマンド文字列を選択するようにしてもよい。具体的には、例えば取得された音声入力装置ＩＤが「０」である場合、コマンド選択部は、まず「０」という音声入力装置ＩＤと関連付けられた「名称」及び「ｚｏｎｅ」フィールドの中から、閾値より大きな近似度に対応したコマンド文字列を選択する。コマンド選択部は、閾値より大きな近似度に対応したコマンド文字列がない場合に、「０」という音声入力装置ＩＤと関連付けられていない１または複数のコマンド文字列の中から閾値より大きな近似度に対応したコマンド文字列を選択するようにしてもよい。これにより、取得された音声入力装置ＩＤと関連付けられたコマンド文字列が優先的に選択される。
【００９０】
コマンドデータ生成部１７０は、選択されたコマンド文字列に基づいて、機器２０に対して送信すべきコマンドを生成する。具体的には、コマンドデータ生成部１７０は、音声コマンドに応じた動作を行わせるために機器２０に対して送信すべきコマンドと、当該コマンドをＬＡＮ２を介して機器２０に送信する際の宛先とを示すコマンドデータを生成する。
【００９１】
図９はコマンドデータの例を示す。図９に示すコマンドデータＤ１は、第１機器２０−１をスタンバイ状態から起動する音声コマンドが受け付けられた場合に生成されるコマンドデータの一例を示す。すなわち、コマンドデータＤ１は、図２に示したコマンドＣ１を第１機器２０−１に対して実行したい場合に生成されるコマンドデータの一例を示す。
【００９２】
コマンドデータＤ１は項目「ｔｙｐｅ」，「ｉｄ」，「ｃｏｍｍａｎｄ」を含む。項目「ｔｙｐｅ」はデータの種別を示す。図９に示す例では「ｃｍｄ」が項目「ｔｙｐｅ」に設定されている。これはデータがコマンドデータであることを示している。項目「ｉｄ」はデータ（コマンドデータ）を一意に識別する識別情報を示す。項目「ｃｏｍｍａｎｄ」はコマンドデータの内容を示す。項目「ｃｏｍｍａｎｄ」は項目「ｉｐ」，「ｐａｔｈ」，「ｍｅｔｈｏｄ」を含む。項目「ｉｐ」はコマンドの宛先を示す。第１機器２０−１のＩＰアドレスが項目「ｉｐ」に設定されている。項目「ｐａｔｈ」はコマンド本体に相当する。項目「ｉｐ」はコマンドＣ１のうちのＩＰアドレス部分に相当し、項目「ｐａｔｈ」はコマンドＣ１のうちのＩＰアドレス以降の部分に相当する。項目「ｍｅｔｈｏｄ」は、使用されるＨＴＴＰプロトコルのメソッドを示す。
【００９３】
図９に示すコマンドデータＤ２は、第２機器２０−２を自動演奏する音声コマンドが受け付けられた場合に生成されるデータの一例を示す。すなわち、コマンドデータＤ２は、図２に示したコマンドＣ２を第２機器２０−２に対して実行したい場合に生成されるコマンドデータの一例を示す。コマンドデータＤ１と同様、コマンドデータＤ２も項目「ｔｙｐｅ」，「ｉｄ」，「ｃｏｍｍａｎｄ」を含む。コマンドデータＤ２では、第２機器２０−２のＩＰアドレスが項目「ｉｐ」に設定されている。コマンドデータＤ２では、項目「ｉｐ」がコマンドＣ２のうちのＩＰアドレス部分に相当し、項目「ｐａｔｈ」はコマンドＣ２のうちのＩＰアドレス以降の部分に相当する。
【００９４】
なお、コマンドデータＤ１，Ｄ２では、ＨＴＴＰプロトコルのＧＥＴメソッドを使用する場合について示していたが、ＰＯＳＴメソッドを使用するようにしてもよい。図９のコマンドデータＤ３に示すように、ＰＯＳＴメソッドを使用する場合には、ＰＯＳＴメソッドによって送信される内容を示す項目「ｂｏｄｙ」を含む。なお、ＨＴＴＰヘッダ情報によって送信される内容を示す項目「ｈｅａｄｅｒｓ」をコマンドデータに含めてもよい。例えば、“ｈｅａｄｅｒｓ”：［“Ｘ−ＨＥＡＤＥＲ１：ＩＮＦＯ１”，“Ｘ−ＨＥＡＤＥＲ２：ＩＮＦＯ２”］のような項目「ｈｅａｄｅｒｓ」をコマンドデータに含め、コマンド送信時に当該内容をＨＴＴＰヘッダに追加して送信するようにしてもよい。
【００９５】
コマンドデータ送信部１３０は、コマンドデータ生成部１７０によって生成されたコマンドデータをインターネット６を介してローカルエリア装置に送信する。「ローカルエリア装置」とは、ローカルエリアに設置される装置であり、インターネット６を介してデータを受信可能な装置であり、ＬＡＮ２を介してコマンドを宛先に送信可能な装置である。
【００９６】
例えば、第１機器２０−１は、ホスト機器であって、インターネット６を介して送信されるデータを受信可能である。このため、第１機器２０−１に対するコマンドを示すコマンドデータが生成された場合、コマンドデータ送信部１３０は当該コマンドデータを、インターネット６を介して第１機器２０−１（ローカルエリア装置）に送信する。
【００９７】
一方、第２機器２０−２は、クライアント機器である。このため、第２機器２０−２に対するコマンドを示すコマンドデータが生成された場合、コマンドデータ送信部１３０は当該コマンドデータを、インターネット６及び第１機器２０−１を介して第２機器２０−２に送信する。
【００９８】
コマンドデータはＭＱＴＴプロトコルを使用してローカルエリア装置に送信される。すなわち、コマンドデータ送信部１３０はＭＱＴＴサーバ７０を介してコマンドデータをローカルエリア装置に送信する。ＭＱＴＴサーバ７０は、従来技術と同様であるため詳細な説明は省略する。
【００９９】
コマンドデータ受信部２１０は、コマンドデータをインターネット６を介して受信する。コマンド送信部２２０は、コマンドデータに基づいて、ＬＡＮ２を介して宛先にコマンドを送信する。
【０１００】
［３．処理］コマンド生成システム５０で実行される処理について説明する。
【０１０１】
図１０は、テキストデータに変換された音声コマンドがユーザＩＤ及び「音声入力装置ＩＤ」とともにコマンドデータ送信装置１０に送信された場合に実行される処理の一例を示す。制御部１１がプログラムに従って図１０に示す処理を実行することによって、制御部１１が音声認識結果取得部１１０、コマンドデータ制御部１２０、及びコマンドデータ送信部１３０として機能する。以下では、電子ピアノの自動演奏を指示する音声コマンドがユーザＩＤ「Ｕ１」とともに受信され、「ＣＩＤ」が「０」である場合を想定して、図１０に示す処理を説明する。
【０１０２】
図１０に示すように、まず、制御部１１は、ユーザＩＤ及び「音声入力装置ＩＤ」とともに認識結果文字列を取得する（Ｓ１００）。具体的には、音声認識結果取得部１１０は、「Ｕ１」というユーザＩＤ及び「０」という「音声入力装置ＩＤ」とともに、「ｐｉａｎｏ  ｐｌａｙ」という文字列を取得する。また、場合によっては、音声認識結果取得部１１０は、「ｐｉｎｏ  ｐｌｙ」という文字列を取得する。
【０１０３】
次に、音声認識結果取得部１１０は、「ＣＩＤ」を取得する（Ｓ１０２）。例えば、音声認識結果取得部１１０は、「０」という「ＣＩＤ」を取得する。ＣＩＤは、テンポラリデータとして記憶部１２に記憶されている。そのため、音声認識結果取得部１１０は、記憶部１２から「ＣＩＤ」を取得する。
【０１０４】
次に、制御部１１は対象機器を特定する（Ｓ１０４）。制御部１１はユーザＵ１の機器テーブルＴ１及び機器閾値テーブルＴ２を参照し、動作指示の対象となる機器２０を特定する。なお、Ｓ１０２において取得された「ＣＩＤ」が「０」であるため、制御部１１は機器閾値テーブルＴ２を参照するが、取得された「ＣＩＤ」が「２」である場合、制御部１１は機器閾値テーブルＴ３を参照する。具体的な制御部１１が対象機器を特定するフローについて、図１１を用いて説明する。
【０１０５】
まず、近似度計算部１４０は、認識結果文字列に含まれる「ｐｉａｎｏ」または「ｐｉｎｏ」という文字列を機器２０に相当する文字列として抽出する（Ｓ１１００）。そして、近似度計算部１４０は、近似度を計算する（Ｓ１１０２）。具体的には、近似度計算部１４０は、上記のように「ｐｉａｎｏ」という文字列と、「ｐｉａｎｏ」という文字列と、の近似度は１．０であると算出する。抽出された文字列が「ｐｉｎｏ」である場合、近似度計算部１４０は、「ｐｉｎｏ」という文字列と、「ｐｉａｎｏ」という文字列と、の近似度は「０．７」であると算出する。さらに、近似度計算部１４０は、「ｐｉａｎｏ」または「ｐｉｎｏ」という文字列と、「ｌｉｖｉｎｇ  ｒｏｏｍ」、「ｂｅｄ  ｒｏｏｍ１」、「ｂｅｄ  ｒｏｏｍ２」、「ｍａｉｎ」、「ｐｉａｎｏ」及び「ＴＶ」の各文字列と、との近似度はそれぞれ「０．１」であると算出する。
【０１０６】
次に、機器選択部１５０は、各近似度と、各コマンド文字列に対応する閾値との大小関係を判定し（Ｓ１１０４）、コマンド文字列を選択する（Ｓ１１０６）。具体的には、機器選択部１５０は、第２機器２０−２に関する近似度「１．０」は、機器閾値テーブルＴ２に含まれる第２機器２０−２と対応する「閾値」の値「０．７」よりも大きいと判定する。または「ｐｉｎｏ」という文字列が抽出された場合、機器選択部１５０は、第２機器２０−２に関する近似度「０．７」は、機器閾値テーブルＴ２に含まれる第２機器２０−２と対応する「閾値」の値「０．７」と同じであると判定する。機器選択部１５０は、他の文字列に関する近似度はそれぞれ対応する「閾値」の値より小さいと判定する。そして、機器選択部１５０は、第２機器２０−２と対応する「ｐｉａｎｏ」というコマンド文字列を選択する。
【０１０７】
次に、制御部１１は、コマンドを特定する（Ｓ１０６）。制御部１１はコマンドテーブルＴ４を参照し、音声コマンドの内容を表すコマンドを特定する。具体的な制御部１１がコマンドを特定するフローについて、図１２を用いて説明する。
【０１０８】
まず、近似度計算部１４０は、認識結果文字列に含まれる「ｐｌａｙ」または「ｐｌｙ」という文字列をコマンドに相当する文字列として抽出する（Ｓ１２００）。そして、近似度計算部１４０は、近似度を計算する（Ｓ１２０２）。具体的には、近似度計算部１４０は、「ｐｌａｙ」という文字列と、「ｐｌａｙ」という文字列と、の近似度は１．０であると算出する。抽出された文字列が「ｐｌｙ」である場合、近似度計算部１４０は、「ｐｌｙ」という文字列と、「ｐｌａｙ」という文字列と、の近似度は「０．８」であると算出する。さらに、近似度計算部１４０は、「ｐｌａｙ」または「ｐｌｙ」という文字列と、ｐｏｗｅｒ  ｏｎ」、「ｐｌａｙ」、「ｖｏｌｕｍｅ  ｕｐ」、「ｖｏｌｕｍｅ  ｄｏｗｎ」及び「ｐｏｗｅｒ  ｏｆｆ」の各文字列との近似度はそれぞれ「０．１」であると算出する。
【０１０９】
次に、機器選択部１５０は、各近似度と、各コマンド文字列に対応する閾値との大小関係を判定し（Ｓ１２０４）、コマンド文字列を選択する（Ｓ１２０６）。具体的には、機器選択部１５０は、「ｐｌａｙ」というコマンドに関する近似度「１．０」は、コマンドテーブルＴ４に含まれる「ｐｌａｙ」コマンドと対応する「閾値」の値「０．８」よりも大きいと判定する。または「ｐｌｙ」という文字列が抽出された場合、機器選択部１５０は、「ｐｌｙ」というコマンドに関する近似度「０．８」は、コマンドテーブルＴ４に含まれる「ｐｌａｙ」コマンドと対応する「閾値」の値「０．８」と同じであると判定する。機器選択部１５０は、他の文字列に関する近似度はそれぞれ対応する「閾値」の値より小さいと判定する。そして、機器選択部１５０は、「ｐｌａｙ」というコマンド文字列を選択する。
【０１１０】
次に、制御部１１は対象機器及び関連機器を制御するためのコマンドデータを生成する（Ｓ１０８）。具体的には、制御部１１は、第２機器２０−２が自動演奏を行わせるためのコマンドデータＤ２を生成する。
【０１１１】
その後、制御部１１はコマンドデータを送信する（Ｓ１１０）。具体的には、制御部１１は、コマンドデータＤ２をＭＱＴＴサーバ７０を介して第２機器２０−２に送信する。コマンドデータＤ２を取得したコマンド送信部２２０は、コマンドデータＤ２の項目「ｉｐ」及び「ｐａｔｈ」に基づき、図２に示したコマンドＣ２を取得する。そして、コマンド送信部２２０はコマンドＣ２として設定されたＵＲＬにアクセスする。この場合、ＨＴＴＰリクエストが第２機器２０−２に送信され、その結果、第２機器２０−２による自動演奏が開始される。
【０１１２】
［４．まとめ］以上に説明したコマンド生成システム５０によれば、音声に対する認識結果から問題発生の懸念があるコマンドデータが不用意に生成されることを防止できる。
【０１１３】
［５．変形例］本発明は以上に説明した実施形態に限定されるものではない。
【０１１４】
［５−１］以上では、主に、第１機器２０−１、第２機器２０−２、第３機器２０−３、第４機器２０−４及び第５機器２０−５がＡＶレシーバ、電子ピアノ、テレビジョン受像機、又はブルーレイディスクプレーヤである場合を想定して説明したが、機器制御システム１による制御の対象となる機器２０はこれらに限られない。機器２０は、ＡＶレシーバ、テレビジョン受像機、及びブルーレイディスクプレーヤ以外のオーディオ機器又はオーディオビジュアル機器であってもよいし、電子ピアノ以外の楽器（電子オルガン又はギター等のネットワーク機能を有する楽器）であってもよい。ネットワーク通信機能を有するオーディオ機器、オーディオビジュアル機器、又は楽器は機器制御システム１による制御の対象となり得る。また、機器２０は、オーディオ機器、オーディオビジュアル機器、及び楽器以外の機器であってもよい。ネットワーク通信機能を有する機器は機器制御システム１による制御の対象となり得る。
【０１１５】
また、コマンドデータ送信装置１０からコマンドデータを受信するローカルエリア装置は、機器制御システム１による制御の対象となる機器２０以外の装置であってもよい。例えば、ローカルエリア装置は、ルータ、スイッチ、無線通信アクセスポイント等のネットワーク機器であってもよい。
【０１１６】
［５−２］音声入力装置３０はインターネット６に接続していればよく、機器２０と同じＬＡＮ２に接続されていなくてもよい。
【０１１７】
［５−３］以上に説明した実施形態では、ユーザが機器２０の音声コマンドを音声入力装置３０に入力するようになっていたが、動作指示は音声入力されなくてもよい。例えば、ユーザが端末の画面に表示されるボタンを選択することによって動作指示を入力できるようにしてもよい。
【０１１８】
［５−４］ＬＡＮ２が有線ＬＡＮと無線ＬＡＮとの両方を含む場合、コマンドの送信先の機器２０に応じて、いずれかを優先的に使用してもよい。
【０１１９】
［５−５］以上に説明した実施形態では、コマンドがＬＡＮ２を介して送信されていたが、コマンドはＬＡＮ２以外の伝送手段を介して送信されてもよい。例えば、コマンドは、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の、無線ＬＡＮ以外の無線通信を介して送信されてもよいし、ＨＤＭＩケーブル等の、ＬＡＮケーブル以外のケーブルを介して送信されてもよい。この場合、「ローカルエリア」とは、無線通信又はケーブルを介して通信可能なエリアである。
【０１２０】
また、コマンドは以上に説明した形式（図２参照）に限られず、他の形式であってもよい。コマンドデータも以上に説明した形式（図５，７，８参照）に限られず、他の形式であってもよい。つまり、コマンドはＨＴＴＰプロトコルを使用したものでなくてもよい。
【０１２１】
［５−６］以上に説明した実施形態では、ＭＱＴＴプロトコルを使用した方法でコマンドデータを送信していたが、他の手法を採用してもよい。例えば、コマンドデータをサーバに登録しておき、機器２０がサーバにアクセスすることによって、サーバに登録されたコマンドデータをダウンロードするようにしてもよい。
【符号の説明】
【０１２２】
１  機器制御システム、２  ＬＡＮ、２−１  第１ＬＡＮ、２−２  第２ＬＡＮ、４  ルータ、４−１  第１ルータ、４−２  第２ルータ、６  インターネット、１０  コマンドデータ送信装置、１１  制御部、１２  記憶部、１３  通信部、２０  機器、２０−１  第１機器、２０−２  第２機器、２０−３  第３機器、２０−４  第４機器、２０−５  第５機器、２１  制御部、２２  記憶部、２３  通信部、３０  音声入力装置、３０−１  第１音声入力装置、３０−２  第２音声入力装置、３０−３  第３音声入力装置、４０  音声認識装置、５０  コマンド生成システム、６０  データベース、７０  ＭＱＴＴサーバ、１１０  音声認識結果取得部、１２０  コマンドデータ制御部、１３０  コマンドデータ送信部、１４０  近似度計算部、１５０  機器選択部、１６０  コマンド選択部、１７０  コマンドデータ生成部、２１０  コマンドデータ受信部、２２０  コマンド送信部、Ｃ１〜Ｃ５  コマンド、Ｄ１〜Ｄ３  コマンドデータ、Ｔ１  機器テーブル、Ｔ２  機器閾値テーブル、Ｔ３  機器閾値テーブル、Ｔ４  コマンドテーブル。
【図１】
2019101254.tif 000003
【図２】
2019101254.tif 000004
【図３】
2019101254.tif 000005
【図４】
2019101254.tif 000006
【図５】
2019101254.tif 000007
【図６】
2019101254.tif 000008
【図７】
2019101254.tif 000009
【図８】
2019101254.tif 000010
【図９】
2019101254.tif 000011
【図１０】
2019101254.tif 000012
【図１１】
2019101254.tif 000013
【図１２】
2019101254.tif 000014