(57)【特許請求の範囲】
【請求項１】
複数の機器を制御する機器制御装置であって、
それぞれの機器は、数値パラメータを用いて制御され、
語句と所定の定数とを対応付けて複数記憶し、複数の処理項目のうちの一の処理項目から他の処理項目への遷移を定義する遷移定義データを複数記憶する記憶手段と、
音声を表す音声データを取得し、当該音声データに音声認識を施すことにより、当該音声に含まれる語句の候補を特定し、当該特定された語句の候補のそれぞれについて、尤度を計算する音声認識手段と、
現在の処理項目から、前記音声認識手段により特定された語句の候補を含む他の処理項目へ、の遷移経路のそれぞれについて、当該遷移経路上の前記所定の定数を順次乗算することにより当該遷移経路の重み係数を計算し、前記音声認識手段により計算された尤度と、前記計算された重み係数と、の積で表される値を計算し、当該計算された値のうち最も大きい値に対応する語句の候補が示す処理項目に基づいて、前記複数の機器の中の制御可能な機器と前記数値パラメータの変量とを特定し、当該特定された変量だけ当該数値パラメータを変化させることにより、当該特定された機器を制御する機器制御手段と、
を備え、
前記特定された機器の個数が１個である場合、前記機器制御手段は、当該１個の機器を制御し、
前記特定された機器が複数存在する場合、前記音声認識手段は、音声データを更に取得して語句の候補を特定し且つ尤度を計算し、前記機器制御手段は、前記特定された語句の候補に対応付けられる前記所定の定数と前記音声認識手段により計算された前記尤度とに基づいて、前記制御可能な機器の中からいずれか１つの機器を特定し、当該特定された機器を制御する、
ことを特徴とする機器制御装置。
【請求項２】
前記機器制御手段は、前記特定された機器が複数存在する場合、前記制御可能な機器の中からいずれか１つの機器を指定する音声を発するようにユーザに促すデータを出力する、
ことを特徴とする請求項１に記載の機器制御装置。
【請求項３】
前記音声認識手段が特定する語句の候補は、前記数値パラメータを増加させる若しくは減少させることを意味する語句であり、
前記複数の機器のうち一の機器はオーディオ装置であって、当該オーディオ装置を制御するための前記数値パラメータは音量を表し、
前記複数の機器のうち他の一の機器はパワーウィンドウであって、当該パワーウィンドウを制御するための前記数値パラメータは窓の開閉量を表す、
ことを特徴とする請求項１又は２に記載の機器制御装置。
【請求項４】
前記音声認識手段が特定する語句の候補は、前記数値パラメータを増加させる若しくは減少させることを意味する語句であり、
前記複数の機器のうち一の機器はエアコンであって、当該エアコンを制御するための前記数値パラメータは温度を表し、
前記複数の機器のうち他の一の機器はパワーウィンドウであって、当該パワーウィンドウを制御するための前記数値パラメータは窓の開閉量を表す、
ことを特徴とする請求項１又は２に記載の機器制御装置。
【請求項５】
前記音声認識手段が特定する語句の候補は、前記数値パラメータを増加させる若しくは減少させることを意味する語句であり、
前記複数の機器のうち一の機器はエアコンであって、当該エアコンを制御するための前記数値パラメータは温度を表し、
前記複数の機器のうち他の一の機器はオーディオ装置であって、当該オーディオ装置を制御するための前記数値パラメータは音量を表す、
ことを特徴とする請求項１又は２に記載の機器制御装置。
【請求項６】
音声入力部とエージェント処理部と記憶部とを有し、複数の機器を制御する機器制御装置にて実行される機器制御方法であって、
それぞれの機器は、数値パラメータを用いて制御され、
前記記憶部には、語句と所定の定数とが対応付けて複数記憶され、複数の処理項目のうちの一の処理項目から他の処理項目への遷移を定義する遷移定義データが複数記憶され、
前記音声入力部が、音声を表す音声データを取得し、当該音声データに音声認識を施すことにより、当該音声に含まれる語句の候補を特定し、当該特定された語句の候補のそれぞれについて、尤度を計算する音声認識ステップと、
前記エージェント処理部が、現在の処理項目から、前記音声認識ステップで特定された語句の候補を含む他の処理項目へ、の遷移経路のそれぞれについて、当該遷移経路上の前記所定の定数を順次乗算することにより当該遷移経路の重み係数を計算し、前記音声認識ステップで計算された尤度と、前記計算された重み係数と、の積で表される値を計算し、当該計算された値のうち最も大きい値に対応する語句の候補が示す処理項目に基づいて、前記複数の機器の中の制御可能な機器と前記数値パラメータの変量とを特定し、当該特定された変量だけ前記数値パラメータを変化させることにより、前記特定された機器を制御する機器制御ステップと、
を備え、
前記特定された機器の個数が１個である場合、前記機器制御ステップでは、前記エージェント処理部が、当該１個の機器を制御し、
前記特定された機器が複数存在する場合、前記音声認識ステップでは、前記音声入力部が、音声データを更に取得して語句の候補を特定し且つ尤度を計算し、前記機器制御ステップでは、前記エージェント処理部が、前記特定された語句の候補に対応付けられる前記所定の定数と前記音声認識ステップで計算された前記尤度と基づいて、前記制御可能な機器の中からいずれか１つの機器を特定し、当該特定された機器を制御する、
ことを特徴とする機器制御方法。
【請求項７】
数値パラメータを用いて複数の機器を制御するコンピュータを、
語句と所定の定数とを対応付けて複数記憶し、複数の処理項目のうちの一の処理項目から他の処理項目への遷移を定義する遷移定義データを複数記憶する記憶手段、
音声を表す音声データを取得し、当該音声データに音声認識を施すことにより、当該音声に含まれる語句の候補を特定し、当該特定された語句の候補のそれぞれについて、尤度を計算する音声認識手段、
現在の処理項目から、前記音声認識手段により特定された語句の候補を含む他の処理項目へ、の遷移経路のそれぞれについて、当該遷移経路上の前記所定の定数を順次乗算することにより当該遷移経路の重み係数を計算し、前記音声認識手段により計算された尤度と、前記計算された重み係数と、の積で表される値を計算し、当該計算された値のうち最も大きい値に対応する語句の候補が示す処理項目に基づいて、前記複数の機器の中の制御可能な機器と前記数値パラメータの変量とを特定し、当該特定された変量だけ当該数値パラメータを変化させることにより、当該特定された機器を制御する機器制御手段、
として機能させ、
前記特定された機器の個数が１個である場合、前記機器制御手段は、当該１個の機器を制御し、
前記特定された機器が複数存在する場合、前記音声認識手段は、音声データを更に取得して語句の候補を特定し且つ尤度を計算し、前記機器制御手段は、前記特定された語句の候補に対応付けられる前記所定の定数と前記音声認識手段により計算された前記尤度とに基づいて、前記制御可能な機器の中からいずれか１つの機器を特定し、当該特定された機器を制御する、
ように動作させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器制御装置、機器制御方法及びプログラムに関する。
【背景技術】
【０００２】  近年、音声認識の技術を用いて音声を認識し、認識結果に応答して電気機器などを制御する手法が用いられている。この手法は、例えば、特許文献１に記載されているように、入力した音声が表す単語を識別し、識別された単語が所定のキーワードに合致するか否かを判別して、判別結果に基づいて外部の機器を制御するものである。
【特許文献１】特開平４−３２４３１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】  しかし、人間が言語の形で発する指示を完全に認識するのは困難である。このため、上述の手法では、人間が言語の形で発する指示に適切に応答することができない場合があった。
【課題を解決するための手段】
【０００４】
この発明は上記実状に鑑みてなされたものであり、人間が言語の形で発する指示に適切に応答して機器を制御できる機器制御装置、機器制御方法及びプログラムを提供することを目的とする。
【０００５】
上記目的を達成するため、この発明の第１の観点にかかる機器制御装置は、
複数の機器を制御する機器制御装置であって、
それぞれの機器は、数値パラメータを用いて制御され、
語句と所定の定数とを対応付けて複数記憶し、複数の処理項目のうちの一の処理項目から他の処理項目への遷移を定義する遷移定義データを複数記憶する記憶手段と、
音声を表す音声データを取得し、当該音声データに音声認識を施すことにより、当該音声に含まれる語句の候補を特定し、当該特定された語句の候補のそれぞれについて、尤度を計算する音声認識手段と、
現在の処理項目から、前記音声認識手段により特定された語句の候補を含む他の処理項目へ、の遷移経路のそれぞれについて、当該遷移経路上の前記所定の定数を順次乗算することにより当該遷移経路の重み係数を計算し、前記音声認識手段により計算された尤度と、前記計算された重み係数と、の積で表される値を計算し、当該計算された値のうち最も大きい値に対応する語句の候補が示す処理項目に基づいて、前記複数の機器の中の制御可能な機器と前記数値パラメータの変量とを特定し、当該特定された変量だけ当該数値パラメータを変化させることにより、当該特定された機器を制御する機器制御手段と、
を備え、
前記特定された機器の個数が１個である場合、前記機器制御手段は、当該１個の機器を制御し、
前記特定された機器が複数存在する場合、前記音声認識手段は、音声データを更に取得して語句の候補を特定し且つ尤度を計算し、前記機器制御手段は、前記特定された語句の候補に対応付けられる前記所定の定数と前記音声認識手段により計算された前記尤度とに基づいて、前記制御可能な機器の中からいずれか１つの機器を特定し、当該特定された機器を制御する、
ことを特徴とする。
【０００６】
前記機器制御手段は、前記特定された機器が複数存在する場合、前記制御可能な機器の中からいずれか１つの機器を指定する音声を発するようにユーザに促すデータを出力するものであってもよい。
また、前記音声認識手段が特定する語句の候補は、前記数値パラメータを増加させる若しくは減少させることを意味する語句であり、
前記複数の機器のうち一の機器はオーディオ装置であって、当該オーディオ装置を制御するための前記数値パラメータは音量を表し、
前記複数の機器のうち他の一の機器はパワーウィンドウであって、当該パワーウィンドウを制御するための前記数値パラメータは窓の開閉量を表すものであってもよい。
また、前記音声認識手段が特定する語句の候補は、前記数値パラメータを増加させる若しくは減少させることを意味する語句であり、
前記複数の機器のうち一の機器はエアコンであって、当該エアコンを制御するための前記数値パラメータは温度を表し、
前記複数の機器のうち他の一の機器はパワーウィンドウであって、当該パワーウィンドウを制御するための前記数値パラメータは窓の開閉量を表すものであってもよい。
また、前記音声認識手段が特定する語句の候補は、前記数値パラメータを増加させる若しくは減少させることを意味する語句であり、
前記複数の機器のうち一の機器はエアコンであって、当該エアコンを制御するための前記数値パラメータは温度を表し、
前記複数の機器のうち他の一の機器はオーディオ装置であって、当該オーディオ装置を制御するための前記数値パラメータは音量を表すものであってもよい。
【０００７】
また、この発明の第２の観点にかかる機器制御方法は、
音声入力部とエージェント処理部と記憶部とを有し、複数の機器を制御する機器制御装置にて実行される機器制御方法であって、
それぞれの機器は、数値パラメータを用いて制御され、
前記記憶部には、語句と所定の定数とが対応付けて複数記憶され、複数の処理項目のうちの一の処理項目から他の処理項目への遷移を定義する遷移定義データが複数記憶され、
前記音声入力部が、音声を表す音声データを取得し、当該音声データに音声認識を施すことにより、当該音声に含まれる語句の候補を特定し、当該特定された語句の候補のそれぞれについて、尤度を計算する音声認識ステップと、
前記エージェント処理部が、現在の処理項目から、前記音声認識ステップで特定された語句の候補を含む他の処理項目へ、の遷移経路のそれぞれについて、当該遷移経路上の前記所定の定数を順次乗算することにより当該遷移経路の重み係数を計算し、前記音声認識ステップで計算された尤度と、前記計算された重み係数と、の積で表される値を計算し、当該計算された値のうち最も大きい値に対応する語句の候補が示す処理項目に基づいて、前記複数の機器の中の制御可能な機器と前記数値パラメータの変量とを特定し、当該特定された変量だけ前記数値パラメータを変化させることにより、前記特定された機器を制御する機器制御ステップと、
を備え、
前記特定された機器の個数が１個である場合、前記機器制御ステップでは、前記エージェント処理部が、当該１個の機器を制御し、
前記特定された機器が複数存在する場合、前記音声認識ステップでは、前記音声入力部が、音声データを更に取得して語句の候補を特定し且つ尤度を計算し、前記機器制御ステップでは、前記エージェント処理部が、前記特定された語句の候補に対応付けられる前記所定の定数と前記音声認識ステップで計算された前記尤度と基づいて、前記制御可能な機器の中からいずれか１つの機器を特定し、当該特定された機器を制御する、
ことを特徴とする。
【０００８】
また、この発明の第３の観点にかかるプログラムは、
数値パラメータを用いて複数の機器を制御するコンピュータを、
語句と所定の定数とを対応付けて複数記憶し、複数の処理項目のうちの一の処理項目から他の処理項目への遷移を定義する遷移定義データを複数記憶する記憶手段、
音声を表す音声データを取得し、当該音声データに音声認識を施すことにより、当該音声に含まれる語句の候補を特定し、当該特定された語句の候補のそれぞれについて、尤度を計算する音声認識手段、
現在の処理項目から、前記音声認識手段により特定された語句の候補を含む他の処理項目へ、の遷移経路のそれぞれについて、当該遷移経路上の前記所定の定数を順次乗算することにより当該遷移経路の重み係数を計算し、前記音声認識手段により計算された尤度と、前記計算された重み係数と、の積で表される値を計算し、当該計算された値のうち最も大きい値に対応する語句の候補が示す処理項目に基づいて、前記複数の機器の中の制御可能な機器と前記数値パラメータの変量とを特定し、当該特定された変量だけ当該数値パラメータを変化させることにより、当該特定された機器を制御する機器制御手段、
として機能させ、
前記特定された機器の個数が１個である場合、前記機器制御手段は、当該１個の機器を制御し、
前記特定された機器が複数存在する場合、前記音声認識手段は、音声データを更に取得して語句の候補を特定し且つ尤度を計算し、前記機器制御手段は、前記特定された語句の候補に対応付けられる前記所定の定数と前記音声認識手段により計算された前記尤度とに基づいて、前記制御可能な機器の中からいずれか１つの機器を特定し、当該特定された機器を制御する、
ように動作させる。
【発明の効果】
【０００９】
この発明によれば、人間が言語の形で発する指示に適切に応答して機器を制御できる機器制御装置、機器制御方法及びプログラムが実現される。
【図面の簡単な説明】
【００１０】［図１］この発明の実施の形態に係る車内空調システムを示す図である。
［図２］この実施の形態に係る車内空調システムのより詳細な構成図である。
［図３］グルーピング用のフラグの具体例を模式的に示す図である。
［図４］トリガ取得処理を説明するための図である。
［図５］判別処理を説明するための図である。
［図６］問い合わせ付きの判別処理を説明するための図である。
［図７］入出力処理を説明するための図である。
［図８］ワイヤを示す図である。
［図９］処理項目データベース及びワイヤデータベースが全体として表しているフローを示す図である。
［図１０］重み係数の設定を説明するための図である。
［図１１］エージェント処理部の動作を説明するためのフローチャートである。
［図１２］外部サーバ（配信サーバ）の構成と、ネットワーク構成とを示す図である。
［図１３］ダウンロード処理を説明するためのフローチャートである。
［図１４］応用例を説明するための構成図である。
［図１５］図１４に示すシステムの動作例を示すフローチャートである。
［図１６］図１４に示すシステムの動作例を示すフローチャートである。
［図１７］図１４に示すシステムの動作例を示すフローチャートである。
［図１８］図１４に示すシステムの動作例を示すフローチャートである。
【符号の説明】
【００１１】１    音声入力部
２    言語解析部
３    音声合成処理部
４    音声出力部
５    入出力対象機器群
５１  エアコン
５２  窓開閉制御部
６    エージェント処理部
【発明を実施するための最良の形態】
【００１２】  以下、図面を参照して、この発明の実施の形態を、車両内に設置された車内空調システムを例として説明する。
図１は、この車内空調システムの構成を示すブロック図である。また、図２は、各部の物理的な構成の例を示すブロック図である。
図１に示すように、この車内空調システムは、音声入力部１と、言語解析部２と、音声合成処理部３と、音声出力部４と、入出力対象機器群５と、エージェント処理部６とより構成されている。【００１３】  音声入力部１は、音声を入力し、入力した音声からデジタル形式の音声データを生成し、この音声データを言語解析部２へと供給する。具体的には、音声入力部１は、図２に示すように、例えば、マイクロフォン１１と、ＡＦ（Ａｕｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）増幅器１２と、サンプルホールド回路を内蔵するＡ／Ｄ（Ａｎａｌｏｇ−ｔｏ−Ｄｉｇｉｔａｌ）コンバータ１３などより構成されている。マイクロフォン１１は音声を音声信号に変換して出力する。ＡＦ増幅器１２は、マイクロフォン１１からの音声信号を増幅して出力する。Ａ／Ｄコンバータ１３は、ＡＦ増幅器１２からの増幅された音声信号をサンプリング、Ａ／Ｄ変換することにより、デジタル音声データを生成し、言語解析部２へと供給する。【００１４】  言語解析部２と音声合成処理部３とエージェント処理部６とは、図２に示すように、それぞれ、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等からなるプロセッサ２１、３１、６１と、このプロセッサ２１、３１、６１が実行するプログラムを記憶するハードディスク装置等の不揮発性メモリ２２、３２、６２と、プロセッサのワークエリアとなる記憶領域を有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリ２３、３３、６３とより構成されている。なお、言語解析部２、音声合成処理部３及びエージェント処理部６の一部又は全部の機能を１つのプロセッサや１つの不揮発性メモリや１つの揮発性メモリで構成してもよい。【００１５】  言語解析部２は、音声入力部１より供給された音声データに音声認識処理を行う。言語解析部２は、音声認識処理により、音声データが表している単語の候補と、この候補の尤度（スコア）とを特定する。音声認識の手法は任意である。また、単語の候補は複数特定されてよい。言語解析部２は、特定した候補とその候補のスコアとを示すデータ（以下、単語データと呼ぶ）を生成し、エージェント処理部６へと供給する。【００１６】  音声合成処理部３の不揮発性メモリ３２は、単語の波形を表すデータを記憶する音片データベースＤ１と、音素の波形を構成するための波形データを記憶する素片データベースＤ２とを記憶する。【００１７】  音片データベースＤ１は、単語の波形を表すデータを記憶する。素片データベースＤ２は、音素を構成するための波形データを記憶する。音声合成処理部３は、音片データベースＤ１及び／又は素片データベースＤ２に格納されているデータを用いて、エージェント処理部６より供給された文章データを読み上げる音声を表すデジタル音声データを生成する。【００１８】  音声合成部３は、生成した音声データを音声出力部４に供給する。デジタル音声データを生成する手法は任意であるが、例えば、録音編集方式や規則合成方式（Ｒｕｌｅ−ｂａｓｅｄ  ｓｙｎｔｈｅｓｉｓ）を使用できる。なお、録音編集方式は、例えば、単語単位の音声を予めアナウンサーに読んでもらい、それらをつなぎあわせて出力する方式である。また、規則合成方式は、音韻（子音や母音）や仮名のような比較的小さな単位をつなぎあわせて出力する方式である。【００１９】  音声出力部４は、音声合成処理部３から供給されたデジタル音声データが表す音声を再生する。より詳細には、音声出力部４は、図２に示すように、Ｄ／Ａ（Ｄｉｇｉｔａｌ−ｔｏ−Ａｎａｌｏｇ）コンバータ４１、ＡＦ増幅器４２及びスピーカ４３を備える。Ｄ／Ａコンバータ４１は、音声合成処理部３より供給されたデジタル音声データをＤ／Ａ変換して、アナログ音声信号に変換する。ＡＦ増幅器４２は、アナログ音声信号を増幅する。スピーカ４３は、アナログ音声信号に従って振動し、アナログ音声データが表す音声を再生し、放音する。【００２０】  入出力対象機器群５は、例えば、エアコン（エアコンディショナ）５１や、窓開閉制御部５２などより構成されている。【００２１】  エアコン５１は、制御信号に従って、冷房、暖房又は送風の動作を行う。また、エアコン５１は、自己の動作状態を表すデータ、例えば、自己が冷房動作中、暖房動作中、設定温度へ向けた温度調整中、送風動作中及び停止中のうちどの状態にあるかを示すステータスデータを出力する。【００２２】  窓開閉制御部５２は、制御信号に従って窓の開閉を行うものであり、モータ、制御信号に従ってモータの回転及び停止を制御する制御回路、モータの回転に従って窓枠を動かすウインチ等を備える。また、窓開閉制御部５２の制御回路は、窓開閉制御部５２の動作状態を表すデータ、例えば、窓が開いている量（程度；開度）を示すデータを出力する。【００２３】  エージェント処理部６は、モデムやパケット通信端末等からなる通信制御装置６４を備え、この通信制御装置を介して外部のネットワーク（例えば、無線電話回線を介したインターネット）を介して後述する配信サーバ１００に接続している。【００２４】  エージェント処理部６の不揮発性メモリ６２は、単語データベースＤ３を記憶する。単語データベースＤ３は、複数の単語のデータと、複数の単語のグルーピングを示すための単語グルーピング用のフラグ１個以上とを、互いに対応付けて格納する。【００２５】  １個の単語に対応付けられている各フラグは、ある概念に対応付けられてグルーピングされている。そして、フラグが所定の値（以下では、この値は“１”であるとする）を示す場合は、このフラグに対応付けられた単語が、このフラグに対応付けられたグループにグルーピングされている。一方、このフラグが他の値（例えば“０”）を示す場合は、この単語は、そのフラグに対応付けられたグループにはグルーピングされていない。【００２６】  図３は、グルーピング用のフラグの具体例を模式的に示す図である。
図３の例では、単語「上がる」、「暑い」及び「開ける」に、単語グルーピング用のフラグが４ビットずつ対応付けられている。【００２７】  ４ビットビット群の最上位（ＭＳＢ）のフラグは「温度」という概念に対応付けられている。上位から２ビット目のフラグが「エアコンの操作」という概念に対応付けられている。上位から３ビット目のフラグが「窓の開閉」という概念に対応付けられている。最下位のフラグが「故障」という概念に対応付けられている。一方、図示するように、単語「上がる」に対応付けられている４ビットのフラグ群の値が２進数“１１１０”であり、単語「暑い」に対応付けられているフラグ群の値が２進数“１１００”であり、単語「開ける」に対応付けられているフラグ群の値が２進数“１０１０”である。【００２８】  この場合、このフラグ群は、概念「温度」の下には単語「上がる」、「暑い」及び「開ける」がグルーピングされており、概念「エアコンの操作」の下には単語「上がる」及び「暑い」がグルーピングされており、概念「窓の開閉」の下には単語「暑い」及び「開ける」がグルーピングされており、概念「故障」の下には単語「上がる」、「暑い」又は「開ける」のいずれもグルーピングされていないことを示す。
なお、各単語及び各概念は、処理項目データベースＤ４に格納されている各処理項目の「判別条件」として使用される。【００２９】  エージェント処理部６の不揮発性メモリは、更に、処理項目データベースＤ４及びワイヤデータベースＤ５を記憶している。【００３０】  処理項目データベースＤ４は、エージェント処理部６が実行する様々な処理、例えば、トリガ取得処理（ＴＧｘｘ）、判別処理（ＣＮｘｘ又はＱＢｘｘ）及び入出力処理（後述するＥＸｘｘ）の内容を、処理項目（ポインタ）毎に記述するデータ（処理項目データ）を格納したデータベースである。なお、「ｘｘ」は識別番号である。【００３１】  処理項目データベースＤ４に格納される処理項目のうち、「トリガ取得処理（ＴＧｘｘ）」の内容を記述するデータは、これらの処理を開始させるトリガを特定するトリガデータ（トリガとして取得するデータの内容を指定するデータ）と、後述する進行方向決定用の遷移定数ｋ（その進行方向に遷移する程度を示すもので、後述する重み係数Ｊの算出基準となる定数）とを含む。【００３２】  トリガデータは任意であり、例えば、エアコンが冷房動作中、暖房動作中、温度調整中、送風動作中及び停止中のうちどの状態にあるかを示すデータや、窓が開いている量を示すデータや、室内の温度を示すデータや、言語解析部２より供給される上述の単語データである。あるいは、トリガデータは、エージェント処理部６自身が行う処理から引き渡されるデータであってもよい。また、トリガデータ（トリガ取得処理で取得されるデータ）が単語データである場合は、当該単語データが表す単語が属すグルーピングに割り当てられている「概念」を示すデータでもよい。ただし、トリガ取得処理の内容は、後述するように、複数のトリガ取得処理が互いに同一の単語を表す単語データを取得することがないように記述されるものとする。【００３３】  図４（ａ）にトリガ取得処理ＴＧｘｘの例を示す。この例では、トリガＴＧ０１は、トリガとしての単語「暑い」を取得する（単語「暑い」を識別する）処理であり、その処理に後続する処理に進む（遷移する）か否かを決定するための遷移定数ｋは０．８である。図４（ｂ）には、トリガ取得処理ＴＧ０１のフローチャートを示す。トリガ取得処理ＴＧ０２は単語「開けて」を取得する処理である。トリガ取得処理ＴＧ０３は概念「温度」に対応するグループに属す単語を取得する（図３では、「上がる」、「暑い」、「開ける」のいずれかを取得する）処理である。ＴＧ０４は、概念「エアコンの操作」に対応するグループに属す単語（図３では、「上がる」、「暑い」のいずれかを取得する）処理である。【００３４】  処理項目データベースＤ４に格納されている「判別処理（ＣＮｘｘ）」の内容を記述するデータは、判別条件と、判別結果としてとり得る結果のリストと、後述する戻り方向の遷移定数ｋとを、判別処理別に記述したデータを含んでいる。判別処理の内容を記述するデータは、進行方向を決定するための進行方向の遷移定数ｋを、判別結果毎に記述したデータを含んでいる。【００３５】  図５（ａ）に判別処理ＣＮｘｘの例を示す。この例では、判別処理ＣＮ０１は、「窓が開いているか否かを判別する処理」であり、開いていると判���したときに後続する処理に進むか否かを決定するための遷移定数ｋが０．３、開いていないと判別したときにそれに後続する処理に進むか否かを決定するため遷移定数ｋが０．４である。この例のフローチャートを図５（ｂ）に示す。図５（ｂ）に示すノードＣＮ０１．１は、処理の開始点を示す始点ノード、ノードＣＮ０１．２は、「窓が閉じている」と判別したときの進行方向のノードであり、その遷移定数ｋは０．４である。さらに、ノードＣＮ０１．３は、窓が開いていると判別したときの進行方向のノードであり、その遷移定数ｋは０．３である。また、判別処理ＣＮ０２は、エアコン５１のステータスがオン（動作中か）否かを判別する処理であり、動作中であると判別したときに後続する処理に進むか否かを決定するための遷移定数ｋが０．５、オフである（動作していない）と判別したときの遷移定数ｋが０．３である。【００３６】  「判別処理」は、判別に用いるデータを任意の取得源から取得する場合があってもよいとする。取得源としては、例えば、言語解析部２や、エージェント処理部６が実行する他の処理や、入出力対象機器群５に属する機器（センサ）や、その他外部の機器などが考えられる。そしてこの場合、判別処理の内容を記述するデータは、例えば、判別に用いるデータの取得源を指定するデータを更に含んでいればよい。【００３７】  また、「判別処理」では、所定のデータを、判別に先立って所定の出力先に出力するようにしてもよい（この場合は、処理を示す記号を例えばＱＢｘｘとする）。例えば、所定の質問を表すデータを、判別に先立って音声合成処理部３に引き渡す、等が考えられる。判別処理において所定のデータを判別に先立って所定のデータを出力する場合、判別処理の内容を記述するデータは、例えば、出力するデータの内容と、このデータの出力先とを指定するデータを含む。【００３８】  図６（ａ）に判別処理ＱＢｘｘの例を示す。この例では、例えば、判別処理ＱＢ０１は、「窓を開けますか？エアコンをつけますか？」と利用者に問い合わせ、その応答（利用者の回答）が「エアコンをつける」であったときの進行方向の遷移定数ｋが０．７、「窓を開ける」であったときの進行方向の遷移定数が０．４である。この例のフローチャートを図６（ｂ）に示す。図６（ｂ）に示すノードＱＢ０１．１は、処理の開始点を示す始点ノード、ノードＱＢ０１．２は、問い合わせに対して、「エアコン」をつけることが指定されたことを判別したときの進行方向のノードであり、その遷移定数ｋは０．７である。さらに、ノードＱＢ０１．３は、窓を開けることが指定されたことを判別したときの進行方向のノードであり、その遷移定数ｋは０．４である。また、判別処理ＱＢ０２は、「窓を閉じますか？」と利用者に問い合わせ、その応答（利用者の回答）が「閉じる」であったときの進行方向の遷移定数ｋが０．５、「閉じない」であったときの進行方向の遷移定数ｋが０．３である。【００３９】  処理項目データベースＤ４に格納されている「入出力処理」の内容を記述するデータは、入力あるいは出力するデータの内容を指定するデータから構成されている。入力データ及び出力データは任意の内容を有していてよい。例えば、出力データは、音声合成��理部３を介して音声出力部４に発生させる音声の読みを表すデータや外部の機器を制御する制御信号であってもよい。また、入力データは、例えば、外部の機器から供給されるデータであってもよい。【００４０】  図７（ａ）に出力処理ＥＸｘｘの例を示す。この例では、例えば、出力処理ＥＸ０１は、「窓を閉める且つエアコンを動作させる」という動作であり、動作後の処理を行う進行方向の遷移定数ｋが０．８である。この例のフローチャートを図７（ｂ）に示す。図７（ｂ）に示すノードＥＸ０１．１は、処理の開始点を示す始点ノード、ノードＥＸ０１．２は、処理の終了を示すノードであり、遷移定数ｋは０．８である。なお、出力処理ＥＸｘｘについては、遷移定数ｋの設定を行わずに、処理の終了を示すノードの選択を必須の処理としてもよい。【００４１】  ワイヤデータベースＤ５は、複数の処理（ＴＧ、ＣＮｘｘ、ＱＢｘｘ、ＥＸｘｘ）間の遷移を記述するデータ（以下、このデータをワイヤと呼ぶ）の集合から構成されている。ワイヤは、例えば図８に示すような書式で記述されたデータから構成されている。ワイヤＷｎ（Ｗ１、Ｗ２．．．）は図示するように、先行する処理Ｘ（Ｆｒｏｍ（Ｘ））から後続する処理Ｙ（Ｔｏ（Ｙ））への遷移（Ｐｒｏｍ（Ｘ）Ｔｏ（Ｙ））について、当該先行の処理（Ｘ）と、当該後続の処理（Ｙ）と、当該遷移に対して与えられた重み係数Ｊと、を指定するデータである。なお、先行の処理Ｘが判別処理である場合は、当該判別処理のどの判別結果からの遷移であるか、まで記述される必要がある。また、遷移元処理Ｘと遷移先Ｙは、それぞれ、各処理のノード番号で特定される。【００４２】  各ワイヤの重み係数Ｊは、固定値ではなく、処理の進行に応じて、適宜計算され、設定されるものである。ワイヤの重み係数Ｊの計算は図１０を参照して後述する。【００４３】  エージェント処理部６は、処理項目データベースＤ４及びワイヤデータベースＤ５が全体として表しているフローを実行する。処理項目データベースＤ４及びワイヤデータベースＤ５は、例えば、図３〜図８の例に基づくと、全体として図９に示すようなフローを記述することができる。【００４４】  図９に示すフローにおいては、エージェント処理部６は、トリガ取得処理ＴＧ０１では、「暑い」という単語を示す単語データを言語解析部２より供給されるのを待機して、供給されるとこれを取得して判別処理ＣＮ０１に引き渡す（ワイヤＷ１）。【００４５】  エージェント処理部６は、判別処理ＣＮ０１では、窓が開いているか否かを示す情報を窓開閉制御部５２より取得し、開いていると判別すると入出力処理ＥＸ０１に処理を移す（ワイヤＷ２）。入出力処理ＥＸ０１では、窓開閉制御部５２に、窓を閉めることを指示する制御信号を出力し、エアコン５１に、冷房動作を開始することを指示する制御信号を出力する。この結果、窓開閉制御部５２は窓を閉め、エアコン５１は冷房動作を開始する。【００４６】  一方、判別処理ＣＮ０１で、窓が閉じていると判別すると、質問を含む判別処理ＱＢ０１に処理を移す（ワイヤＷ３）。判別処理ＱＢ０１でエージェント処理部６は、まず、「窓を開けますか。それともエアコンをつけますか。」という文章を表すデータを音声合成処理部３に供給する。音声合成処理部３は、音声出力部４を介して、この文章を読み上げる音声を再生させる。【００４７】  判別処理ＱＢ０１でエージェント処理部６は、次に、言語解析部２から、単語「窓」又は単語「エアコン」を表すデータが供給されるのを待機し、該当するデータが供給されると、このデータが単語「窓」又は単語「エアコン」のどちらを表すかを判別する。そして、単語「窓」を表すと判別すると入出力処理ＥＸ０３に処理を移し（ワイヤＷ５）、単語「エアコン」を表すと判別すると、入出力処理ＥＸ０２に処理を移す（ワイヤＷ６）。【００４８】  エージェント処理部６は、入出力処理ＥＸ０２では、エアコン５１に、冷房を開始することを指示する制御信号を出力する。一方、エージェント処理部６は、入出力処理ＥＸ０３では、窓開閉制御部５２に、換気用の窓を開けることを指示する制御信号を出力する。【００４９】  一方、エージェント処理部６は、「窓を開けて」或いは「開けて」という単語を示すデータを言語解析部２より供給されるのを待機して（トリガ取得処理ＴＧ０２）、供給されると、入出力処理ＥＸ０３へと処理を移す（ワイヤＷ４）。【００５０】  エージェント処理部６は、例えば言語解析部２が単語データを複数供給した場合などにおいては、複数の判別処理を並行して行う。この場合、エージェント処理部６は同一の単語を入力の対象とする処理（例えば、トリガ取得処理や、判別処理におけるデータの入力）が複数があって、該当する単語を表す単語データが言語解析部２より供給された場合は、これらの処理すべてを並行して行う。【００５１】  次に、各ワイヤの重み係数Ｊを計算する方法を説明する。
複数の処理がワイヤＷにより連結されている場合には、注目するワイヤＷの重み係数Ｊは、現在処理中の処理を起点として、注目しているワイヤＷに至るまでの遷移の経路上の遷移定数ｋを順次乗算することにより求められる。【００５２】  理解を容易にするため、図１０（ａ）にフローを示す処理を想定する。図１０（ａ）の処理は、全体としては、ユーザが「暑い」と発話すると、これを検出してスタートし、まず、窓が開いているか否かを判別し、閉まっている場合に、窓を開けるかエアコンを入れるかをユーザに問い合わせて、ユーザの回答に応じた処理を行うものである。【００５３】  図１０（ａ）に示す処理では、処理ＴＧ１０１、ＣＮ１０１，ＱＢ１０１のいずれについても、各進行方向決定用の遷移定数ｋは、順方向についてはいずれも０．５、逆（戻り）方向については、いずれも０．１である。この場合、ワイヤは、例えば、図１０（ｂ）に示すように、定義される。【００５４】  例えば、エージェント処理部６は、処理（又は制御）がトリガ取得処理ＴＧ１０１に位置するとき（処理ポインタＰＰがトリガ取得処理ＴＧ１０１を指しているとき）、トリガ取得処理ＴＧ１０１を起点として、注目するワイヤまでの経路上の遷移定数ｋを順次乗算することにより、ワイヤＷ５１〜Ｗ５５（図示していないワイヤが存在する場合にはそれらを含むすべて）のそれぞれの重み係数Ｊを計算し、計算結果をワイヤＷ５１〜Ｗ５５に対応付けてワイヤデータベースＤ５に書き込む。【００５５】  具体的には、処理がトリガ取得処理ＴＧ１０１に位置するとき、ワイヤＷ５１の重み係数Ｊは、トリガ取得処理ＴＧ１０１の判別処理ＣＮ１０１に繋がるノードに割り当てられている遷移定数ｋの値すなわち０．５となる。
判別処理ＣＮ１０１のワイヤＷ５２の重み係数Ｊは、トリガ取得処理ＴＧ１０１のワイヤＷ５１に係る遷移定数ｋ＝０．５に判別処理ＣＮ１０１のワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋ＝０．５を乗じた結果すなわち０．２５となる。同様に、判別処理ＣＮ１０１のワイヤＷ５４の重み係数Ｊは、トリガ取得処理ＴＧ１０１のワイヤＷ５１に繋がるノードに割り当てられている遷移定数ｋ＝０．５に判別処理ＣＮ１０１のワイヤＷ５４に繋がるノードの遷移定数ｋ＝０．５を乗じた結果すなわち０．２５となる。【００５６】  また、ワイヤＷ５３の重み係数Ｊは、トリガ取得処理ＴＧ１０１のワイヤＷ５１に繋がるノードに割り当てられている遷移定数ｋ＝０．５に、判別処理ＣＮ１０１のワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋ＝０．５を乗じた結果に更に判別処理ＱＢ１０１のワイヤＷ５３に繋がるノードに割り当てられている遷移定数ｋ＝０．５を乗じた結果、すなわち０．１２５となる。同様に、ワイヤＷ５５の重み係数Ｊは、トリガ取得処理ＴＧ１０１のワイヤＷ５１に繋がるノードに割り当てられている遷移定数ｋ＝０．５に、判別処理ＣＮ１０１のワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋ＝０．５を乗じた結果に、更に判別処理ＱＢ１０１のワイヤＷ５５に繋がるノードに割り当てられている遷移定数ｋ＝０．５を乗じた結果、すなわち０．１２５となる。【００５７】  処理が判別処理ＣＮ１０１に遷移すると、ワイヤＷ５２の重み係数Ｊは、ワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋに等しい値０．５となり、ワイヤＷ５４の重み係数Ｊは、ワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋに等しい値０．５となる。また、ワイヤＷ５３の重み係数ＪはワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋ＝０．５と判別処理ＱＢ１０１のワイヤＷ５３に繋がるノードに割り当てられている遷移定数ｋ＝０．５との積すなわち０．２５となり、ワイヤＷ５５の重み係数ＪはワイヤＷ５２に繋がるノードに割り当てられている遷移定数ｋ＝０．５と判別処理ＱＢ１０１のワイヤＷ５５に繋がるノードに割り当てられている遷移定数ｋ＝０．５との積すなわち０．２５となる。さらに、逆方向（トリガ取得処理ＴＧ１０１に戻る方向に係るワイヤＷ５１の重み係数Ｊは、ワイヤＷ５１に繋がるノードに割り当てられている戻り方向のノードの遷移定数ｋ＝０．１に等しい値０．１となる。【００５８】  さらに、処理が判別処理ＱＢ１０１に遷移すると、ワイヤＷ５３とＷ５５の重み係数Ｊは、ワイヤＷ５３とＷ５５にそれぞれ繋がるノードに割り当てられている遷移定数ｋに等しい値０．５となる。さらに、ワイヤＷ５２の重み係数Ｊは、それに繋がる戻り方向のノードに割り当てられている戻り方向の遷移定数ｋ＝０．１となる。さらに、ワイヤＷ５１の重み係数Ｊは、判別処理ＱＢ１０１のワイヤＷ５２に繋がるノードに割り当てられている戻り方向の遷移定数ｋ＝０．１に、判別処理ＣＮ１０１のワイヤＷ５１に繋がれている戻り方向のノードに割り当てられている戻り方向の遷移定数ｋ＝０．１の積の０．０１となる。ワイヤＷ５４の重み係数Ｊは、判別処理ＱＢ１０１のワイヤＷ５２に繋がるノードに割り当てられている戻り方向の遷移定数ｋ＝０．１に、判別処理ＣＮ１０１のワイヤＷ５４に繋がれているノードに割り当てられている遷移定数ｋ＝０．５の積の０．０５となる。【００５９】  各ワイヤＷｎの重み係数Ｊの変化の例を図１０（ｃ）に示す。【００６０】  重み係数Ｊの計算は、関連するフローの処理のみではなく、全てのフローの全てのワイヤについて実行され、計算された重み係数Ｊが各ワイヤに設定される。ここで現在の処理に関連のないワイヤについては、予め定められた低い計数値を割り当てるようにすればよい。しかし、特にトリガ取得処理を先行の処理とするワイヤについては、遷移定数ｋをある程度高く設定するようにする。こうすることによって、直前までなされていた会話と著しく異なる内容の会話にもジャンプすることが可能になる。【００６１】  次に、このように構成されたシステム全体の動作を、図１１を参照して説明する。
音声入力部１と言語解析部２とは、独自に動作して、音声を取り込み、解析し、単語データをエージェント処理部６に提供する。【００６２】  そして、エージェント処理部６は、判別条件に係る（１個又は複数個の）単語データが言語解析部２より供給されると、以下の処理を行う。【００６３】  まず、エージェント処理部６は、供給された単語を認識（識別）し（図１１ステップＳ１１）、それが、単語データベースＤ４に登録されている単語に相当するか否かを判別する（ステップＳ１２）。登録されていなければ（ステップＳ１２，Ｎｏ）、単語入力処理を終了する。【００６４】  一方、登録されていれば（ステップＳ１２，Ｙｅｓ）、その単語又はその単語の属すグループの「概念」が条件となっている処理に関し、単語の尤度とワイヤの重み係数Ｊの積を計算する（ステップＳ１３）。
例えば、図１０（ａ）に示すフローを実行している場合において、処理ポインタＰＰがトリガ取得処理ＴＧ１０１を指示しているとする。この場合の、各ワイヤの重み計数Ｊは図１０（ｃ−１）に示す通りである。【００６５】  この状態で、スコアが８０％の単語「暑い」と、スコアが５０％の単語「窓」を示す単語データが入力されたと仮定する。図１０（ａ）に示す例では、トリガ取得処理ＴＧ１０１では、単語「暑い」が判別に関連し、判別処理ＱＢ１０１では、単語「窓」が判別に関連する。図１０（ｃ−１）示すように、単語「暑い」を示す単語データを入力する処理を先行の処理とするワイヤＷ５１の重み係数Ｊが０．５、単語「窓」を示す単語データを入力する処理を先行の処理とするワイヤＷ５３の重み係数Ｊが０．１２５である。この場合、ワイヤＷ５１及びＷ５３について求められる尤度Ｓと重み係数Ｊの積は、数式１及び２に示すとおりとなる。【００６６】
0004533844.tif 000002
0004533844.tif 000003
【００６７】  エージェント処理部６は、スコアと重み係数との積を求める上述の処理を、フローが有するすべてのワイヤについて行う。続いて、エージェント制御部６は、計算された積Ｓ・Ｊが最大のワイヤを選択する（図１１，ステップＳ１４）。エージェント制御部６は、選択したワイヤに後続する処理に制御を進める（ステップＳ１５）。例えばワイヤＷ５１について求めた積が最も高い値を示した場合、入力された単語データは単語「暑い」を示すものであったと認識して、ワイヤＷ５１が後続の処理としている判別処理ＣＮ１０１に遷移する。通常、現在の処理中の処理を起点するとワイヤの重み係数Ｊが比較的大きい。このため、一般的には、次の処理に移るが、従前と全く異なる単語で尤度の高いものが入力された場合には、その単語に対応する処理が開始されることもある。【００６８】  エージェント処理部６は、処理が遷移すると、遷移後の状態に基づいて、各ワイヤの重み係数Ｊを再計算する（ステップＳ１６）。以後は、その処理の内容に従って処理を進める（ステップＳ１７）。
この例では、判別処理ＣＮ１０１を実行する。すなわち、エージェント処理部６は、窓開閉制御部５２から窓の開閉の情報を取り込む等の処理を行う。【００６９】  なお、窓開閉制御部５２からの窓の開閉を示す信号は、開の尤度が１００％又は０％、閉の尤度が０％又は１００％でもよく。また、開度に応じて変化させるようにしてもよい。そして、処理の過程で、入出力処理ＥＸｘｘがあり、エージェント処理部６がその処理を実行して音声データを出力すれば、それが音声として放音される。また、処理の過程で、入出力処理ＥＸ０１のように、エアコンや窓開閉制御部５２への制御を行う処理を実行すると、その処理内容に従って、エアコン５１や窓開閉制御部５２への制御を行う。【００７０】  なお、図８、図９では、「単語」に基づく判別処理を主に説明したが、概念に基づく判別処理でも同様になされる。また、単語或いは概念に基づくトリガ取得処理からのワイヤも判断の対象となる。トリガ取得処理からの遷移に対しては、ある程度高い重み係数を設定しておくとよい。具体的には、例えば図８のワイヤ群、すなわち、図９のフローにおいて、「窓を開けて」という単語を示す単語データを取得するトリガ取得処理ＴＧ０２からの遷移に対しては、例えば重み係数０．８を与えておく。そうすると、例えば、エージェント処理部６の処理がトリガ取得処理ＴＧ０１に係属している場合において、ユーザが「窓を開けて」と発音し、例えば単語「窓を開けて」に対するスコアが９０％である単語データが得られれば、このスコアと、「ユーザが「窓を開けて」と言ったか否かの判断」に係るワイヤＷ５の重み係数との積は、９０％×０．８すなわち７２となる。この値が他のワイヤに関して計算されたスコアと重み係数Ｊの積では得られないような大きな値であれば、入力された音声は「窓を開けて」であったと認識され、エージェント処理部６の処理が判別処理ＱＢ１０１にジャンプする可能性が高くなる。一方で、他のワイヤの重み係数を極めて低く設定しておけば、これら他のワイヤにより定義されている遷移が起こる可能性は極めて低くなり、結果として、ある程度想定される会話の流れに沿って認識率を向上させて制御処理を行うことができる。【００７１】  この実施の形態では、戻り方向への遷移も起こり得る。しかし、現実的には会話を戻すことは好ましくないことが多い。そこで、戻り方向の遷移定数ｋは、進行方向の遷移定数ｋに比べて低い値に設定するようにすればよい。そうすると、入力された音声から高いスコアの音声データが仮に得られても、戻り方向の遷移定数ｋに基づいて得られた重み係数Ｊが書き込まれたワイヤについて求めた積Ｓ・Ｊは小さい値となるため、戻り方向への遷移の可能性を低く抑えることができる。また、エージェント処理部６は、求めた積の値が所定の条件に合致しないような処理（たとえば、積の値が所定値に達しないような処理）は、遷移を実行する対象から除外するよう取り扱ってもよい。【００７２】  なお、例えば図８に示しているように、ワイヤは、処理項目から処理項目へという形で遷移を定義する。そして、ワイヤを図８に示すような形態で記述してワイヤデータベースＤ５に格納することにより、各処理項目同士の関係を、あたかもコン��ュータのマクロ処理のように定義することが可能になる。これによって、各処理項目を容易に接続することができる。【００７３】  また、トリガとなる処理項目は、実際には接続されるワイヤに係る認識対象単語等（他の入力対象機器群からの入力の場合もあり得る）のスコアの判定になるので、ワイヤにおいてトリガ取得処理項目はワイヤの開始点として定義されず、ワイヤそのものが遷移元として定義されることになる。【００７４】  更に、上述のように各処理項日の接続関係をワイヤによって定義することによって、簡単にワイヤを追加することができる。例えば、「暑い」という音声入力の後に、ユーザが休憩することを意図して「ファミリーレストランを探して」という音声を入力する機会が多い場合、ファミリーレストランの検索処理項目に対して自動でワイヤを追加する。そうすると、ワイヤが自動で追加された後には、ファミリーレストラン検索処理項目に接続されたワイヤの重み係数をある程度大きくすることで、当該入力「ファミリーレストランを探して」に適切に対応することができるようになる。（ただしこの場合、エージェント処理部６は、例えばファミリーレストランの位置を示す情報を含んだ地図データ等を記憶し、あるいは外部の地図データ等にアクセスするものとする。）
このワイヤの自動追加は、ある処理項目からある処理項目へのジャンプの回数を計数し、これが所定回数に達したときに自動で行うようにすればよい。【００７５】  前述のように、エージェント処理部６は、処理項目データベースＤ４やワイヤデータベースＤ５の内容を、外部から供給される新たな処理項目データやワイヤへと更新する機能を有する。具体的には、例えば、処理項目データ及び／又はワイヤを記憶する外部のサーバが、その内容が更新されると、ネットワークを介し、エージェント処理部６に、処理項目データ及び／又はワイヤの更新がある旨を通知する。すると、エージェント処理部６はこの通知に応答して、ネットワークを介し、このサーバにアクセスして、新たな処理項目データ及び／又はワイヤをダウンロードする。そして、自己の処理項目データベースＤ４やワイヤデータベースＤ５に格納されている、古い処理項目データ及び／又はワイヤを、ダウンロードした新たな処理項目データ及び／又はワイヤへと更新する。
また、エージェント処理部６が、外部サーバにアクセスし、データベースが更新されていれば、これをダウンロードするようにしてもよい。【００７６】  外部サーバの構成例を図１２に示す。
この外部サーバ１００は、単語データ、処理項目データ及び／又はワイヤデータを通信ネットワークを介して複数の車両のエージェント処理部６に配信するためのものであり、制御部１１０、通信制御部１２０、単語データベース１３０、処理項目データベース１４０、ワイヤベース１５０、入力部１６０、出力部１７０、から構成される。【００７７】  制御部１１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算処理装置）などから構成され、配信サーバ１００の各部を制御するとともに、所定のプログラムを実行することで後述する各処理を実現する。【００７８】  通信制御部１２０は、例えば、モデム、ルータなどの通信装置から構成され、配信サーバ１００と車両のエージェント処理部６（通信制御部）との間のネットワークを介した通信を制御する。【００７９】  ネットワークの構成は任意である。例えば、専用線、公衆回線網、ケーブルテレビ（ＣＡＴＶ）網、無線通信網、有線放送網、などを採用することができる。【００８０】  単語データベース１３０は、例えば、ハードディスク装置などの書換可能な記憶装置から構成され、配信サーバ１００が配信する単語データをバージョン情報（例えば、タイムスタンプ）共に蓄積する。【００８１】  処理項目データベース１４０は、例えば、ハードディスク装置などの書換可能な記憶装置から構成され、配信対象の処理項目データをバージョン情報（例えば、タイムスタンプ）共に蓄積する。【００８２】  ワイヤデータベース１５０は、例えば、ハードディスク装置などの書換可能な記憶装置から構成され、配信対象のワイヤデータをバージョン情報（例えば、タイムスタンプ）共に蓄積している。【００８３】  配信サーバ１００の管理者は、適宜、入力部１６０を操作して、各ＤＢ１３０〜１５０の情報を更新する。【００８４】  各車両のエージェント処理部６は、通信制御部（ＣＣＵ）６４を介して、配信サーバ１００からの更新通知を受信すると、例えば、図１３（ａ）の処理を開始し、セッションを確立し（ステップＳ２１）、更新されたデータをダウンロードし、自己のデータベースを更新する（ステップＳ２２）。或いは、各車両のエージェント処理部６は、定期的或いは適宜、この配信サーバ１００に通信制御部（ＣＣＵ）６４を介してアクセスしてセッションを確立し（ステップＳ３１）、各データベースのバージョン情報（更新日付など）を取得する（ステップＳ３２）。そして、両データのバージョンを比較し（ステップＳ３３）、自己が記憶しているデータよりも新しいデータをダウンロードして、自己のデータベースにセットする（ステップＳ３４）。【００８５】  このような構成とすれば、配信サーバ１００に記録されている情報を更新するだけで、配信サーバ１００を利用可能なすべての車両制御システムのデータを適宜更新することができる。【００８６】  なお、配信サーバ１００には、データを圧縮及び暗号化して格納しておき、エージェント処理部６がダウンロードしてデータを伸張及び復号化してデータベースにセットすることが望ましい。このようにすることにより、通信の量を抑え、情報漏洩を防止できる。【００８７】  エージェント処理部６が配信サーバ１００からデータを���ウンロードするタイミングは上述の例に限定されず任意であり、例えば、ユーザの要求に対応する処理項目及び／又はワイヤが記憶されていない場合、これを検出してネットワークを介して配信サーバ１００にアクセスし、新たな処理項目データ及び／又はワイヤをダウンロードするようにしてもよい。更には、エージェント処理部６に接続される入出力対象機器５が新たに追加された場合や、新たな機能が追加された場合に、自動でこれを検出して、上述と同様に、ネットワークを介して配信サーバ１００にアクセスし、新たな処理項目データ及び／又はワイヤをダウンロードするようにしてもよい。【００８８】（実際の制御への応用例）
以上の説明では、エアコン５１と窓開閉制御部５２を制御する場合を例にこの発明を説明したが、制御対象は任意であり、また、制御する場面も任意である。以下、エアコンと、オーディオ装置と、窓開閉制御部とを制御する他の例を説明する。【００８９】  図１４に示すように、この例では、制御対象機器５にオーディオ装置５３が含まれている。このオーディオ装置５３は、エージェント処理部６からの指示に従って動作し、また、自己の動作状況を示すステータス信号をエージェント処理部６に供給する。
また、この実施例では、単語データベースＤ３では、概念「上昇」および概念「下降」を意味する単語がそれぞれグルーピングされているものとする。例えば、単語「上げる」、「上昇」、「高める」、「上」などが概念「上昇」にグルーピングされ、単語「下げる」、「下降」、「低くする」、「下」などが概念「下降」にグルーピングされている。
まず、オーディオ装置５３と窓開閉制御部５２とを制御対象とする動作（エアコン５１の制御について触れない）について説明する。
なお、この例では、処理項目データベースＤ４に格納されている処理項目データとワイヤデータベースＤ５に格納されているワイヤにより、図１５のフローで表される処理が規定されているものとする。【００９０】  ユーザが「上げて」等の上昇を意味する音声を発すると、音声入力部１と言語解析部２とが、音声認識処理を行って、候補「上げて」とそのスコア、さらに、その他の候補とそれらのスコアとをエージェント処理部６に提供する。
前述したように、各ワイヤＷには、その時点の処理ポインタＰＰが示している位置を基準として、基準位置から遠ざかるに従って小さくなるような重みＪが設定されている。【００９１】  エージェント処理部６は、図１１を参照して前述したように、各候補について、全てのターゲット取得処理ＴＧと判別処理ＣＮ又はＱＢの判別に適合するか否かを判別する。エージェント処理部６は、適合すると判別された処理の、適合した候補に対応するワイヤＷについて、その時点での各ワイヤの重みＪと各単語のスコアＳとを乗算して、各ワイヤについて乗算値Ｓ・Ｊを求める。そして、求めた各ワイヤの積Ｓ・Ｊを互いに比較し、最も大きい乗算値Ｓ・Ｊを有するワイヤＷが導く処理を実行する。【００９２】  図１５の例では、エージェント制御部６は、ターゲット取得処理ＴＧ１０１において、入力された単語「上げて」が概念の「上昇」に適合すると判別する。そして、ワイヤＷ１０１について・重みＪと単語「上げて」のスコアＳとの積Ｊ・Ｓを求める。そして、ワイヤＷ１０１についての積が他のワイヤについての積よりも大きな値となる（と仮定する）。
すると、処理は、ワイヤＷ１０１を辿って判別処理ＣＮ１０１に移る。【００９３】  エージェント処理部６は、判別処理ＣＮ１０１において、オーディオ装置５３からステータス情報を取り込み、窓開閉制御部５２から窓の開閉状態を示す情報を取り込む。
エージェント処理部６は、判別処理ＣＮ１０１で「オーディオ装置５３が動作しておらず且つ窓が閉まっている」状態であると判断した場合、その処理は、ワイヤＷ１０２を辿って、問い合わせ付き判別処理ＱＢ１０１に進み、「何をあげるの？オーディオの電源を入れる？」等、操作の対象と内容を特定することを促すメッセージを音声合成処理部３に出力する。音声合成処理部３と音声出力部４とは、対応する音声を生成し、これを放音する。【００９４】  このメッセージに応答して、ユーザが例えば「オーディオ」や「入れる」と発話すると、この単語が認識され、制御は、ワイヤＷ１０３を辿って入出力処理ＥＸ１０１に移り、エージェント処理部６は、オーディオ５３を制御してその電源をオンする。【００９５】  判断処理ＣＮ１０１で、オーディオ装置５３が動作中であり且つ窓も開いている（ガラスがホームポジションよりも下がった状態）であると判別された場合には、処理は、ワイヤＷ１０４を辿って判別処理ＱＢ１０２に進み、「何を上げる？ボリューム？それとも窓？」等、操作対象を特定することを促すメッセージを出力する。【００９６】  このメッセージに応答して、ユーザが、例えば「オーディオ」、「ボリューム」、「音」等と発話すると、これらの単語が認識され、制御は、ワイヤＷ１０５を辿って、入出力処理ＥＸ１０２に移る。入出力処理ＥＸ１０２では、音量を上げる（大きくする）旨のメッセージが出力される。制御は、ワイヤＷ１０６を辿って、入出力処理ＥＸ１０３に至り、オーディオ装置５３に音量を所定量増加することを指示する。また、このメッセージに応答して、ユーザが、例えば「窓」、「ウィンドウ」、等と発話すると、これらの単語が認識され、制御は、ワイヤＷ１１０を辿って、入出力処理ＥＸ１０４に移る。【００９７】  一方、判別処理ＣＮ１０１で、オーディオ装置５３が動作中で且つ窓が閉じた状態であると判別された場合には、概念「上昇」に対応し且つ制御可能な機器がオーディオ装置５３だけである。このため、制御は、ワイヤＷ１０７を辿って入出力処理ＥＸ１０２に進み、「ボリュームを上げます」等のメッセージを出力し、入出力処理ＥＸ１０３で、オーディオ装置５３のボリュームを所定量だけ上昇させる。【００９８】  また、判別処理ＣＮ１０１で、オーディオ装置５３が停止中で、窓が開いた状態であると判別された場合、概念「上昇」に対応し且つ制御可能な機器は窓開閉制御部５２だけである。このため、制御は、ワイヤＷ１０８を辿って入出力処理ＥＸ１０４で「窓を閉める」等のメッセージを出力した後に、ワイヤＷ１０９を辿って入出力処理ＥＸ１０５で窓を上昇させて閉じる。【００９９】  次に、エアコン５１と窓開閉制御部５２とを制御する処理について説明する。
なお、この例では、処理項目データベースＤ４に格納されている処理項目データとワイヤデータベースＤ５に格納されているワイヤにより、図１６のフローで表される処理が規定されているものとする。【０１００】  ユーザが「上げて」等の上昇を意味する音声を発すると、ターゲット取得処理ＴＧ２０１が、入力された単語「上げて」が概念の「上昇」に適合すると判別する。そして、ワイヤＷ２０１についての認識結果の尤度（スコア）Ｓと重み係数Ｊの積Ｓ・Ｊが他のワイヤについての積よりも大きな値となる（と仮定する）。【０１０１】  すると、処理は、ワイヤＷ２０１を辿って判別処理ＣＮ２０１に移る。エージェント処理部６は、判別処理ＣＮ２０１において、エアコン装置５１からステータス情報を取り込み、窓開閉制御部５２から窓の開閉状態を示す情報を取り込む。【０１０２】  エージェント処理部６は、判別処理ＣＮ２０１で「エアコン５１が動作しておらず且つ窓が閉まっている」状態であると判断した場合、その処理は、ワイヤＷ２０２を辿って、問い合わせ付き判別処理ＱＢ２０１に進み、「何をあげるの？暖房にする？」等、操作の対象と内容を特定することを促すメッセージを音声合成処理部３に出力する。音声合成処理部３と音声出力部４とは、対応する音声を生成し、これを放音する。【０１０３】  このメッセージに応答して、ユーザが例えば「暖房」、「エアコン」、「温度」、「入れる」と発話すると、この単語が認識され、制御は、ワイヤＷ２０３を辿って入出力処理ＥＸ２０１に移り、エージェント処理部６は、エアコン装置５１を制御してその電源をオンする。【０１０４】  判断処理ＣＮ２０１で、「エアコン装置５１が動作中であり且つ窓が開いている（ホームポジションよりも下がった状態）である」と判別された場合には、処理は、ワイヤＷ２０４を辿って「何を上げる？エアコンの設定温度？それとも窓？」等、操作対象を特定することを促すメッセージを出力する。このメッセージに応答して、ユーザが、例えば「エアコン」、「温度」又は「設定」等と発話すると、これらの単語が認識され、制御は、ワイヤＷ２０５を辿って、入出力処理ＥＸ２０２に移る。入出力処理ＥＸ２０２では、エアコンの設定温度を上げる旨のメッセージが出力される。続いて、制御は、ワイヤＷ２０６を辿って、入出力処理ＥＸ２０３に至り、エアコン装置５１に設定温度の上昇を指示する。【０１０５】  一方、処理ＱＢ２０２で出力されたメッセージに応答して、ユーザが、例えば「窓」、「閉める」等と発話すると、これらの単語が認識され、制御は、ワイヤＷ２０７を辿って、入出力処理ＥＸ２０４に移る。入出力処理ＥＸ２０４では、窓を閉める旨のメッセージが出力される。制御は、ワイヤＷ２０８を辿って、入出力処理ＥＸ２０４に至り、窓開閉制御部５２に窓の上昇（窓ガラスの上昇）を指示する。【０１０６】  一方、判別処理ＣＮ２０１で、「エアコン装置５１が動作中で且つ窓が閉じた状態である」と判別された場合には、概念「上昇」に対応し且つ制御可能な機器がエアコン装置５１だけである。このため、制御は、ワイヤＷ２０９を辿って入出力処理ＥＸ２０２に進み、「エアコンの設定温度を上げる」旨のメッセージを出力し、入出力処理ＥＸ２０３で���設定温度を所定量だけ上昇させる。【０１０７】  また、判別処理ＣＮ２０１で、「エアコン装置５１が停止中で、窓が開いた状態である」と判別された場合、概念「上昇」に対応し且つ制御可能な機器は窓開閉制御部５２だけである。このため、制御は、ワイヤ２１０を辿って入出力処理ＥＸ２０４で「窓を閉めます」等のメッセージを出力した後に、ワイヤＷ２０８を辿って入出力処理ＥＸ２０５で窓を閉じる（窓ガラスを上昇させる）。【０１０８】  次に、エアコン５１とオーディオ装置５３とを制御する動作について説明する。
なお、この例では、処理項目データベースＤ４に格納されている処理項目データとワイヤデータベースＤ５に格納されているワイヤにより、図１７のフローで表される処理が規定されているものとする。【０１０９】  ユーザが「上げて」等の上昇を意味する音声を発すると、ターゲット取得処理ＴＧ３０１が、入力された単語「上げて」が概念の「上昇」に適合すると判別する。そして、ワイヤＷ３０１についてのスコアＳと重みＪの積が他のワイヤについての積よりも大きな値となる（と仮定する）。【０１１０】  すると、処理は、ワイヤＷ３０１を辿って判別処理ＣＮ３０１に移る。エージェント処理部６は、判別処理ＣＮ３０１において、エアコン５１とオーディオ装置５３とから動作状態を示す情報をそれぞれ取り込む。エージェント処理部６が、判別処理ＣＮ３０１で「エアコン５１が動作しておらず且つオーディオ装置５３が動作していない」状態であると判断した場合、その処理は、ワイヤＷ３０２を辿って、問い合わせ付き判別処理ＱＢ３０１に進み、「何をあげるの？暖房にする？オーディオのスイッチを入れる？」等、操作の対象と内容を特定することを促すメッセージを音声合成処理部３に出力する。音声合成処理部３と音声出力部４とは、対応する音声を生成し、これを放音する。【０１１１】  このメッセージに応答して、ユーザが例えば「暖房」、「エアコン」、「温度」、等と発話すると、この単語が認識され、制御は、ワイヤＷ３０３を辿って入出力処理ＥＸ３０１に移り、エージェント処理部６は、エアコン装置５１を制御してその電源をオンする。また、メッセージに応答して、ユーザが例えば「オーディオ」、「音楽」等と発話すると、この単語が認識され、制御は、ワイヤＷ３０４を辿って入出力処理ＥＸ３０２に移り、エージェント処理部６は、オーディオ装置５３を制御してその電源をオンする。【０１１２】  判断処理ＣＮ３０１で、「エアコン装置５１とオーディオ装置５３が共に動作中である」と判別された場合には、処理は、ワイヤＷ３０５を辿って「何を上げる？エアコンの設定温度？オーディオのボリューム？」等、操作対象を特定することを促すメッセージを出力する。このメッセージに応答して、ユーザが、例えば「エアコン」、「温度」又は「設定」等と発話すると、これらの単語が認識され、制御は、ワイヤＷ３０６を辿って、入出力処理ＥＸ３０３に移る。入出力処理ＥＸ３０３では、エアコン５１の設定温度を上げる旨のメッセージが出力される。制御は、ワイヤＷ３０７を辿って、入出力処理ＥＸ３０４に至り、エアコン装置５１に設定温度の上昇を指示する。一方、処理ＱＢ３０２で出力されたメッセージに応答して、ユーザが、例えば「オーディオ」、「音」等と発話すると、これらの単語が認識され、制御は、ワイヤＷ３０８を辿って、入出力処理ＥＸ３０５に移る。入出力処理ＥＸ３０５では、オーディオのボリュームを大きくする旨のメッセージが出力される。制御は、ワイヤＷ３０９を辿って、入出力処理ＥＸ３０６に至り、オーディオ装置５３に音ボリュームの上昇（音を大きくする）を指示する。【０１１３】  一方、判別処理ＣＮ３０１で、「エアコン装置５１が動作中で且つオーディオ装置５３がオフした状態である」と判別された��合には、概念「上昇」に対応し且つ制御可能な機器がエアコン装置５１だけである。このため、制御は、ワイヤＷ３１０を辿って入出力処理ＥＸ３０３に進み、「エアコンの設定温度を上げる」旨のメッセージを出力し、入出力処理ＥＸ３０４で、エアコン装置５１の設定温度を所定量だけ上昇させる。【０１１４】  また、判別処理ＣＮ３０１で、「エアコン装置５１が停止中で、オーディオ装置５３が動作中である」と判別された場合、概念「上昇」に対応し且つ制御可能な機器はオーディオ装置５３だけである。このため、制御は、ワイヤ３１１を辿って入出力処理ＥＸ３０５で「音量を上げます」等のメッセージを出力した後に、ワイヤＷ３０９を辿って入出力処理ＥＸ３０６でオーディオ装置５３の音量を上げる。【０１１５】  次に、エアコン５１と窓開閉部５２とオーディオ装置５３を全て制御対象とする場合の制御について説明する。
なお、この例では、処理項目データベースＤ４に格納されている処理項目データとワイヤデータベースＤ５に格納されているワイヤにより、図１８のフローで表される処理が規定されているものとする。【０１１６】  ユーザが「上げて」等の上昇を意味する音声を発すると、ターゲット取得処理ＴＧ４０１が、入力された単語「上げて」が概念の「上昇」に適合すると判別する。そして、ワイヤＷ４０１についてのスコアＳと重み係数Ｊの積が他のワイヤについての積よりも大きな値となる（と仮定する）。【０１１７】  すると、処理は、ワイヤＷ４０１を辿って判別処理ＣＮ４０１に移る。エージェント処理部６は、判別処理ＣＮ４０１において、装置５１〜５３から動作状態を示す情報をそれぞれ取り込む。エージェント処理部６は、判別処理ＣＮ４０１で「エアコン５１が動作しておらず、窓は閉まっており且つオーディオ装置５３が動作していない」状態であると判断した場合、その処理は、ワイヤＷ４０２を辿って、問い合わせ付き判別処理ＱＢ４０１に進み、「何をあげるの？暖房にする？オーディオのスイッチを入れる？」等、操作の対象と内容を特定することを促すメッセージを音声合成処理部３に出力する。音声合成処理部３と音声出力部４とは、対応する音声を生成し、これを放音する。【０１１８】  このメッセージに応答して、ユーザが例えば「暖房」、「エアコン」、「温度」、等と発話すると、この単語が認識され、制御は、ワイヤＷ４０３を辿って入出力処理ＥＸ４０１に移り、エージェント処理部６は、エアコン装置５１を制御してその電源をオンする。また、メッセージに応答して、ユーザが例えば「オーディオ」、「音楽」等と発話すると、この単語が認識され、制御は、ワイヤＷ４０４を辿って入出力処理ＥＸ４０２に移り、エージェント処理部６は、オーディオ装置５３を制御してその電源をオンする。【０１１９】  判別処理ＣＮ４０１で、「エアコン装置５１が動作中で、窓が閉まった状態であり且つオーディオ装置５３がオフした状態である」と判別された場合には、概念「上昇」に対応し且つ制御可能な機器がエアコン装置５１だけである。このため、制御は、ワイヤＷ４０５を辿って入出力処理ＥＸ４０３に進み、「エアコンの設定温度を上げる」旨のメッセージを出力し、さらに、ワイヤＷ４０６を辿って、入出力処理ＥＸ４０４で、設定温度を所定量だけ上昇させる。【０１２０】  判別処理ＣＮ４０１で、「窓が開いた状態で、エアコン装置５１とオーディオ装置５３がオフした状態である」と判別された場合には、概念「上昇」に対応し且つ制御可能な機器が窓開閉制御部５１だけである。このため、制御は、ワイヤＷ４０７を辿って入出力処理ＥＸ４０５に進み、「窓を閉める」旨のメッセージを出力し、ワイヤＷ４０８を辿って、入出力処理ＥＸ４０６で、窓を閉める（窓ガラスをホームポジションまで上昇させる）。【０１２１】  また、判別処理ＣＮ４０１で、「オーディオ装置５３が動作中で、エアコン装置５１が停止中で、窓が閉まっている」と判別された場合、概念「上昇」に対応し且つ制御可能な機器はオーディオ装置５３だけである。このため、制御は、ワイヤ４１０を辿って入出力処理ＥＸ４０８で「音量を上げます」等のメッセージを出力した後に、ワイヤＷ４１１を辿って入出力処理ＥＸ４０８でオーディオ装置５３の音量を上げる。【０１２２】  判断処理ＣＮ４０１で、上述の場合以外の動作状態であると判別された場合には、処理は、ワイヤＷ４１２を辿って「何を上げる？エアコンの設定温度？窓を閉じる？オーディオのボリューム？」等、操作対象を特定することを促すメッセージを出力する。このメッセージに応答して、ユーザが、例えば「エアコン」、「温度」又は「設定」、「窓」、「閉じる」、「ガラス」、「オーディオ」、「音」等と発話すると、これらの単語が認識され、制御は、その内容に応じて、適宜、ワイヤＷ４１３〜Ｗ４１５を辿って、例えば、前述の入出力処理ＥＸ４０３，ＥＸ４０５，ＥＸ４０８に移る。【０１２３】  以上説明した構成によれば、ユーザが口頭で指示した結果を得るために、変化させるべき変量（エアコンの設定温度、窓ガラスの位置又はオーディオ装置５３の音量）、当該変量を変化させるべき方向（上昇）、及び当該変量を変化させるために制御すべき機器（エアコン装置５１、窓開閉制御部５２又はオーディオ装置５３）を特定し、特定した変量を特定した方向に変化させるよう、特定した機器を制御する場合において、特定した変量を特定した方向に変化させるよう制御可能な機器の個数が１個であるときは当該１個の機器を制御し、特定した変量を特定した方向に変化させるよう制御可能な機器が複数存在するときは、前記音声認識手段が音声データを更に取得して特定した候補に基づいて、制御可能な各機器のうちいずれの機器の操作を欲するかを特定し、特定した機器を制御する、ことが可能となる。尚、上述の操作対象を特定することを促すメッセージを出力後、改めて音声によって操作対象が特定されると、特定された操作対象の対象変量を所定量上昇させる。【０１２４】  なお、上述の処理のいずれにおいて、エージェント処理部６は、ポインタＰＰが指示している処理が予定している指示と内容の異なる指示に対しても、対応可能である。すなわち、上述のように、トリガー取得処理に対応するワイヤの重み係数は、他のワイヤの重み係数よりも高い所定値に設定されるので、上述のような「あげて」に対応する処理を実行中であっても、他の関係ない音声指示、例えば「今何時？」等にも適切に対応することができる。【０１２５】  上述の「あげて」と同様、「下げて」も上述と同様に制御を行うことができる。これら「上げて」「下げて」等概念によるグルーピングは、図３に示したグルーピング用フラグが使用される。つまり、言語解析部２で得られた単語データに対応する概念を有する機器が複数存在する場合には、そのいずれも制御対象機器として抽出し、これらの制御対象機器のうち、いずれの機器を制御するかを、改めて特定するように促すのである。このとき、抽出された機器をやみくもに制御対象機器とするのではなく、それぞれの動作状態を検出することでより精度の高い対応を行うことができる。上記では、オーディオ装置と窓、エアコンと窓等、２つ又は３つの制御対象機器が存在する場合について説明したが、４つ以上の制御対象機器に対しても同様に処理を行うことができる。【０１２６】  以上説明した機器制御装置では、入力される音声等に対して、図５に��したフローチャートで説明したワイヤと処理項目の関係、ワイヤに設定される条件、また、遷移定数ｋが適宜適用される。具体的には、例えば、ユーザが「上げて」と音声入力部１に音声入力すると、言語解析部２は単語データベースを参照して、それぞれの単語に対するスコアを算出する。算出したスコアは単語データとしてエージェント処理部６に出力され、該当する単語が設定されたワイヤにスコアを設定する。スコアが供給されたワイヤは、それぞれ対応する重み係数とスコアを乗算し、最終的な判別結果を得る。得られた判別結果のうち、最も高い値を示す単語が入力された音声であると認識する。つまり、ここで得られた判別結果のうち、最も高い値を示す単語が「あげて」であった場合に、入力された音声は「あげて」であったと認識することになる。そして、対応するワイヤが選択され、当該ワイヤが指示する処理に状態が遷移される。以下、同様にして処理が進められる。尚、ワイヤに対して、同様の意味の異なる単語を複数設定しておけば、ユーザがそのときの気分で発した言葉でも適切に対応することができる。例えば、「あげて」「アップ」などを１つのワイヤに条件としての単語を設定しておく。そうすれば、いずれの音声で指示がなされても、適切に当該ワイヤが選択されることになり、自然な会話でこの制御を行うことができる。【０１２７】  以上説明したこの車内空調システムは、処理の内容を示すデータやワイヤが適切に記述されれば、制御する対象である機器や加える制御の内容を完全に特定することを必ずしも必要とせずに、ユーザが発した言語に応答し、この言語からユーザの欲求を推測し、この欲求を満たすためにどの機器にどのような制御を加えればよいかを適切に判断して、判断結果に従った制御を機器に加えることができるようになる。【０１２８】  エージェント処理部６は、新たなワイヤを自動で生成する機能を有するが、ダウンロードした新たな処理項目及び既存の処理項目に対して、どのような関係のワイヤを設定するかについて、これを記述したプログラムを一緒にダウンロードするようにしてもよい。【０１２９】  以上説明したこの車内空調システムは、処理の内容を示すデータやワイヤが適切に記述されれば、制御する対象である機器や加える制御の内容を完全に特定することを必ずしも必要とせずに、ユーザが発した言語に応答し、この言語からユーザの欲求を推測し、この欲求を満たすためにどの機器にどのような制御を加えればよいかを適切に判断して、判断結果に従った制御を機器に加えることができるようになる。【０１３０】  また、処理項目データやワイヤは随時新たなものへと更新されるので、エージェント処理部６の応答の仕方を変化させる余地が常にあり、ユーザはこの車内空調システムとの対話に飽きにくい。【０１３１】  なお、この車内空調システムの構成は上述のものに限られない。
例えば、入出力対象機器群５に属する機器は、必ずしも直接にユーザの欲求を満たす結果をもたらす機器である必要はなく、例えば、外部の表示装置等を制御してユーザに特定の行動をとるよう促すメッセージを出力する機器（例えば、液晶ディスプレイ等の表示装置）からなっていてもよい。【０１３２】  また、単語データベースは、必ずしも単語を示すデータのみならず、複数の単語からなる語句を示すデータを単語データベースの要素として記憶するようにしてもよいし、単語の一部あるいは音素を示すデータを単語データベースの要素として記憶するようにしてもよい。また、単語等は必ずしも特定の概念の下にグルーピングされている必要はなく、グルーピングを行う場合も、グルーピングを行うために用いられるデータは、必ずしもフラグの集合の形をとっていなくてもよい。【０１３３】  また、エージェント処理部６は、新たな処理項目データやワイヤを、外部の供給元からの通知を待たずに自発的にダウンロードしてもよいし、言語解析部２から供給される単語データに応答して新たな処理項目データやワイヤのダウンロードを開始するようにしてもよい。【０１３４】  また、エージェント処理部６は、ワイヤに記述された重み係数を、過去に当該ワイヤが表す遷移を実行した数などに基づき所定の基準に従って変化させ、遷移定数ｋが変化後の値となるようにワイヤを書き換えてもよい。具体的には、例えば、ワイヤデータベースに、それぞれのワイヤについて、当該ワイヤが表す遷移が実行された回数を記憶しておく。そしてエージェント処理部６は、当該遷移が新たに行われる毎に、この回数の値を書き換えることにより、この回数の値を１ずつインクリメントし、それぞれのワイヤに記述された遷移定数ｋを、例えば、当該ワイヤについて記憶された回数に比例した値と書き換える。【０１３５】  また、エージェント処理部６は、判別処理や入出力処理において出力するデータを、これらの処理に引き渡されたデータや、これらの処理に伴って入力したデータや、その他任意の条件に従って変化させるようにしてもよい。【０１３６】  また、この車内空調システムは、エージェント処理部６の制御に従って画像を出力するための表示装置（例えば、液晶ディスプレイ等）を備えていてもよく、エージェント処理部６は、入出力処理や判別処理において、処理毎に所定の画像を表示させるようこの表示装置を制御してもよい。【０１３７】  また、エージェント処理部６は、１個の入力処理や１個の判別処理において、連続して発話される等した複数の単語データを一括して取得するようにしてもよい。また、エージェント処理部６は、一括して取得した複数の単語データがどの概念の下で同一のグループ内にグルーピングされているかを特定し、特定した概念が所定の概念に合致する場合にのみ、取得した単語データの一部または全部を処理に用いるものとしてもよい。
また、複数の単語が示す共通の概念が得られたときだけトリガ取得処理や判別処理が動作（トリガの取得、条件の成立）するようにしてもよい。【０１３８】  また、エージェント処理部６は、トリガ取得処理、判別処理、入出力処理等の各種処理とワイヤとが全体として形成するフローを分担して行う、互いに接続された複数のデータ処理装置（例えば、コンピュータ等）から構成されていてもよい。この場合、解析処理部３を構成するそれぞれのデータ処理装置は、解析処理部３が実行し得るフロー全体のうち、自己が実行する可能性がある部分を表すデータを、処理項目データベースやワイヤデータベースの要素として記憶すれば十分である。そして、それぞれのデータ処理装置が記憶するデータが、当該データ処理装置が実行する部分の処理をマクロ定義するようなデータとなっていれば、複数のデータ処理装置に分散処理を行わせることも容易である。【０１３９】  また、この車内空調システムは、音声入力部１や言語解析部２あるいは音声出力部４も複数備えていてよい。また、音声入力部１は、たとえば、音声を表すデータが記録された記録媒体（たとえば、フロッピー（登録商標）ディスクや、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）や、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｋ）など）から波形信号を読み出して言語解析部２に供給する記録媒体ドライブ装置（たとえば、フロッピー（登録商標）ディスクドライブや、ＣＤ−ＲＯＭドライブや、ＭＯドライブなど）を備えていてもよい。【０１４０】  以上、この発明の実施の形態を説明したが、この発明にかかる機器制御装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
例えば、入出力対象機器群５に接続されたパーソナルコンピュータに上述の音声入力部１、言語解析部２、音声合成処理部３、音声出力部４及びエージェント処理部６の動作を実行させるためのプログラムを格納した記録媒体から該プログラムをインストールすることにより、上述の処理を実行する車内空調システムを構成することができる。そして、このプログラムを実行するパーソナルコンピュータが、図１の車内空調システムの動作に相当する処理として、例えば、図４に示すフローを実行するものとする。【０１４１】  なお、パーソナルコンピュータに上述の車内空調システムの機能を行わせるプログラムは、例えば、通信回線の掲示板（ＢＢＳ）にアップロードし、これを通信回線を介して配信してもよく、また、このプログラムを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調してこのプログラムを復元するようにしてもよい。そして、このプログラムを起動し、ＯＳの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。【０１４２】  なお、ＯＳが処理の一部を分担する場合、あるいは、ＯＳが本願発明の１つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
【図１】
0004533844.tif 000004
【図２】
0004533844.tif 000005
【図３】
0004533844.tif 000006
【図４】
0004533844.tif 000007
【図５】
0004533844.tif 000008
【図６】
0004533844.tif 000009
【図７】
0004533844.tif 000010
【図８】
0004533844.tif 000011
【図９】
0004533844.tif 000012
【図１０】
0004533844.tif 000013
【図１１】
0004533844.tif 000014
【図１２】
0004533844.tif 000015
【図１３】
0004533844.tif 000016
【図１４】
0004533844.tif 000017
【図１５】
0004533844.tif 000018
【図１６】
0004533844.tif 000019
【図１７】
0004533844.tif 000020
【図１８】
0004533844.tif 000021