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