(57)【要約】【課題】複数のアプリケーションに対する単語を登録する場合においても、登録した単語を共通に使用することができるようにする。【解決手段】マイクロホン５１に音声が入力されると、ＡＤ変換部５２は、アナログ信号である音声信号を、ディジタル信号である音声データに変換する。特徴量抽出部５３は、音声データから特徴量を抽出し、マッチング部に供給する。マッチング部５４は、アプリケーションに対応するタスクを参照し、特徴量に基づいて音声を認識し、共通辞書部５５に単語を登録する。また、マッチング部５４は、必要に応じて、共通辞書部５５に登録した単語を変更する。マッチング部５４は、共通辞書部５５の内容を各タスクに反映させる。本発明は、ロボット制御システムに適用することができる。【選択図】      図２
2004252121.tif 000002
【特許請求の範囲】
【請求項１】
言語処理を利用するアプリケーションを有する言語処理装置であって、
単語が登録される登録辞書を記憶する登録辞書記億手段と、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記登録辞書に基づいて構築する構築手段と
を備えることを特徴とする言語処理装置。
【請求項２】
前記登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理手段と、
前記専用辞書の単語を削除する削除手段と
をさらに備え、
前記専用辞書に登録されたすべての単語が削除された後、
前記構築手段は、単語が追加、削除、または変更された前記登録辞書に基づいて、前記専用辞書を再構築する
ことを特徴とする請求項１に記載の言語処理装置。
【請求項３】
前記専用辞書は、所定の単語が予め登録されている固定辞書と、登録される単語が可変の可変辞書とを、少なくとも含み、
前記構築手段は、前記専用辞書のうちの前記可変辞書を構築する
ことを特徴とする請求項１に記載の言語処理装置。
【請求項４】
前記専用辞書は、単語のカテゴリが登録されたカテゴリテーブルをさらに含み、
前記構築手段は、前記登録辞書の単語のうち、前記カテゴリテーブルに登録されたカテゴリの単語を、前記可変辞書に登録することにより、前記可変辞書を構築する
ことを特徴とする請求項３に記載の言語処理装置。
【請求項５】
前記アプリケーションは複数存在し、
前記構築手段は、複数の前記アプリケーション毎の前記専用辞書を構築する
ことを特徴とする請求項１に記載の言語処理装置。
【請求項６】
言語処理を利用するアプリケーションを有する言語処理装置の言語処理方法であって、
単語が登録される登録辞書を記憶する登録辞書記億ステップと、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記登録辞書に基づいて構築する構築ステップと
を含むことを特徴とする言語処理方法。
【請求項７】
アプリケーションの言語処理を行なうプログラムであって、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される前記登録辞書に基づいて構築する構築ステップ
を含むことを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
【請求項８】
アプリケーションの言語処理を行なうプログラムであって、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される前記登録辞書に基づいて構築する構築ステップ
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、言語処理装置および言語処理方法、並びにプログラムおよび記録媒体に関し、特に、例えば、登録した単語を複数のアプリケーションで共通に認識できるようにした言語処理装置および言語処理方法、並びにプログラムに関する。
【０００２】
【従来の技術】
音声認識には、単独の単語を認識する孤立単語認識と複数の単語からなる単語列を認識する連続単語認識がある。従来の連続単語認識では、言語モデルという「単語間のつながりやすさについてのデータベース」を持つことで、「音は似ているが滅茶苦茶な単語列」が認識結果として生成されることを防いでいる。
【０００３】
しかしながら、言語モデルには、最初から認識できる単語（以下、適宜、既知語と称する）についての情報のみ記述されるため、後で登録された単語（以下、適宜、登録単語と称する）を正しく認識することが困難であった。すなわち、孤立単語認識では、認識辞書に単語を登録すれば、以降その単語は認識されるようになるが、連続単語認識では辞書への登録だけでは不十分であり、登録単語を言語モデルにも反映させる必要があるが、言語モデルへの反映は一般的には困難であった。
【０００４】
そこで、登録単語を「人名」、「地名」等のカテゴリに分類し、そのカテゴリに対応した認識文法を用意して、音声を認識することが提案されている（例えば、特許文献１参照）。
【０００５】
また、音声認識を使用するアプリケーションが複数、しかも可変個存在するシステムにおいて、１つのアプリケーションで登録された単語を、他のアプリケーションに反映させる場合、アプリケーションが１つの場合とは違った問題が発生する。例えば、既に起動しているアプリケーションに対してのみ単語登録を行うようにすると、アプリケーションが１つの場合と異なり、登録後に起動、またはインストールされたアプリケーションに、登録単語を反映させることが困難であるという課題があった。
【０００６】
さらに、アプリケーションが複数ある場合、複数のアプリケーションで、何度も同一の登録単語を削除することは面倒である。また、アプリケーションが複数である場合、登録単語を全て削除することは容易であるが、その一部だけを削除したり発音を変更することは困難であるという課題があった。
【０００７】
即ち、アプリケーションが１つである場合、例えば、削除または変更する登録単語を「ｎ回目に登録した単語」や「認識辞書中のｎ番目のエントリ」といった情報で特定できるが、アプリケーションが複数である場合、各アプリケーションによって、「ｎ回目に登録した単語」や「辞書エントリの何番目に追加したか」が異なるため特定することが困難であった。
【０００８】
また、アプリケーションが複数である場合、発音で、登録単語を特定することができるが、発音で登録単語を特定した場合、同音異義語が削除または変更されてしまうおそれがあった。
【０００９】
そこで、各アプリケーションが個別に音声認識を行う代わりに、「音声コマンダ」というモジュールが、全てのアプリケーションに対する音声認識を行い、その認識結果を各アプリケーションに転送することが提案されている（例えば、特許文献１参照）。
【００１０】
【特許文献１】
特開２００１−２１６１２８号公報
【００１１】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載の発明では、各アプリケーションに対応した認識辞書と言語モデルとを、「音声コマンダ」が所持している必要がある。即ち、「音声コマンダ」を開発する際に、どのようなアプリケーションが同時に使用されるかを想定して、それに適した認識辞書、言語モデルを用意しておく必要があるため、想定外のアプリケーションに対しては、登録単語を反映させることが困難であるという課題があった。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、登録した単語を複数のアプリケーションで共通に使用することができるようにするものである。
【００１３】
【課題を解決するための手段】
本発明の言語処理装置は、単語が登録される登録辞書を記憶する登録辞書記億手段と、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、登録辞書に基づいて構築する構築手段とを備えることを特徴とする。
【００１４】
登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理手段と、専用辞書の単語を削除する削除手段とをさらに備え、専用辞書に登録されたすべての単語が削除された後、構築手段は、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書を再構築するようにすることができる。
【００１５】
専用辞書は、所定の単語が予め登録されている固定辞書と、登録される単語が可変の可変辞書とを、少なくとも含み、構築手段は、専用辞書のうちの可変辞書を構築するようにすることができる。
【００１６】
専用辞書は、単語のカテゴリが登録されたカテゴリテーブルをさらに含み、構築手段は、登録辞書の単語のうち、カテゴリテーブルに登録されたカテゴリの単語を、可変辞書に登録することにより、可変辞書を構築するようにすることができる。
【００１７】
アプリケーションは複数存在し、構築手段は、複数のアプリケーション毎の専用辞書を構築するようにすることができる。
【００１８】
本発明の言語処理方法は、単語が登録される登録辞書を記憶する登録辞書記億ステップと、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、登録辞書に基づいて構築する構築ステップとを含むことを特徴とする。
【００１９】
本発明の記録媒体に記録されているプログラムは、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される登録辞書に基づいて構築する構築ステップを含むことを特徴とする。
【００２０】
本発明のプログラムは、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される登録辞書に基づいて構築する構築ステップをコンピュータに実行させることを特徴とする。
【００２１】
本発明においては、単語が登録される登録辞書が記憶され、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書が、登録辞書に基づいて構築される。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。図１は、本発明を適用したロボット制御システム１の構成例を表わしている。
【００２３】
このロボット制御システム１において、音声認識エンジン部１１は、入力された音声データを認識し、認識結果として、音声データに対応する単語列を生成する。音声認識エンジン部１１は、その認識結果を、名前登録用アプリケーション部２１１、雑談用アプリケーション部２１２、音声コマンダ用アプリケーション部２１３、・・・、その他のアプリケーション部２１Ｍ、並びに、アプリケーション管理部３１に供給する。
【００２４】
名前登録用アプリケーション部２１１、雑談用アプリケーション部２１２、音声コマンダ用アプリケーション部２１３、・・・、その他のアプリケーション部２１Ｍは、音声認識エンジン部１１から供給された認識結果に基づいて、各種の処理を行う。
【００２５】
名前登録用アプリケーション部２１１は、音声認識エンジン部１１から供給された認識結果に基づいて、ロボット名、ユーザ名等を音声で登録し、それ以外のアプリケーション部は、名前登録用アプリケーション部２１１が登録した名前を用い、ユーザからの発話に対応してロボットの動作を制御する。
【００２６】
したがって、雑談用アプリケーション部２１２、音声コマンダ用アプリケーション部２１３、・・・・、およびその他のアプリケーション部２１Ｍで行われる音声認識は、名前登録用アプリケーション部２１１で登録されたロボット名、ユーザ名等に対応する必要がある。
【００２７】
雑談用アプリケーション部２１２は、ロボットに、ユーザと音声で雑談させ、音声コマンダ用アプリケーション部２１３は、ロボットに、ユーザからの発話に対応する動作を行わせる。例えば、音声コマンダ用アプリケーション部２１３は、「エスディーアール（ロボット名）、前に進め！」といったユーザからの発話に対応して、ロボットを前に進める。
【００２８】
なお、アプリケーション部は、任意の個数用意することができる。以下、名前登録用アプリケーション部２１１、雑談用アプリケーション部２１２、音声コマンダ用アプリケーション部２１３、・・・、およびその他のアプリケーション部２１Ｍのそれぞれを個々に区別する必要がない場合、適宜、まとめて、アプリケーション部２１と称する。
【００２９】
アプリケーション管理部３１は、音声認識エンジン部１１から供給された認識結果に基づいて、アプリケーション部２１に対して、起動、終了の指令を行う。例えば、アプリケーション管理部３１は、音声認識エンジン部１１から「音声コマンダを起動」という認識結果が供給された場合、音声コマンダ用アプリケーション部２１３を起動する。このとき、複数のアプリケーション部を同時に起動させてもよい。
【００３０】
また、アプリケーション部２１、およびアプリケーション管理部３１は、音声認識エンジン部１１に対して、タスク切替コマンドを発行し、それぞれに対応したタスク（図２で後述する）が、音声認識エンジン部１１の内部で有効（アクティブ）、または無効（ディアクティブ）になるように制御する。
【００３１】
図２は、音声認識エンジン部１１の構成を示している。ユーザの発話は、マイクロホン５１に入力され、マイクロホン５１では、その発話が、電気信号としての音声信号に変換される。マイクロホン５１は、この音声信号を、ＡＤ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ）変換部５２に供給する。ＡＤ変換部５２は、マイクロホン５１からのアナログ信号である音声信号をサンプリングし、量子化して、ディジタル信号である音声データに変換する。この音声データは、特徴量抽出部４３に供給される。
【００３２】
特徴量抽出部５３は、ＡＤ変換部５２からの音声データについて、適当なフレーム毎に、例えば、スペクトル、パワー線形予測計数、ケプストラム計数、線スペクトル対等の特徴パラメータを抽出し、マッチング部５４に供給する。
【００３３】
マッチング部５４は、特徴量抽出部５３からの特徴パラメータに基づき、音韻タイプライタ用タスク７１１、アプリケーション切替用タスク７１２、名前登録用タスク７１３、雑談用タスク７１４、音声コマンダ用タスク７１５、・・・、およびその他のタスク７１Ｎのうち、その時点で有効にされているタスク毎に、タスク内部のデータベースを必要に応じて参照しながら、マイクロホン５１に入力された音声（入力音声）に最も近い単語列を、認識結果として求める。マッチング部５４は、その認識結果を、それぞれのタスクに対応するアプリケーション部２１、およびアプリケーション管理部３１に供給する。
【００３４】
なお、タスクとは、音声認識を行うのに必要なデータのセットのことである。即ち、音声認識エンジン部１１を、マッチング等を行うプログラム部分と、音響モデル、言語モデル、認識辞書等のデータ部分とに分類した場合のデータ部分、およびデータにアクセスするためのプログラムのことである。
【００３５】
したがって、複数のアプリケーションが異なる音響モデル、言語モデル、辞書を用いて音声認識を行う場合であっても、タスクを複数用意することによって、音声認識エンジン部は１つにすることができる。タスクの内部の詳細については、図６で後述する。
【００３６】
音韻タイプライタ用タスク７１１は、音韻タイプライタとして働くタスクであり、音声認識エンジン部１１の指令により、有効にされる。この音韻タイプライタによって、マッチング部５４は、入力された任意の音声に対して、音韻系列を取得する他、カナ表記の発音も取得する。例えば、「君の名前はエスディーアールだよ」という音声から、“ｋ／ｉ／ｍ／ｉ／ｎ／ｏ／ｎ／ａ／ｍ／ａ／ｅ／ｗ／ａ／ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ／ｄ／ａ／ｙ／ｏ”（“ｉ：”、“ａ：”は、それぞれ“ｉ”、“ａ”の長音）という音韻系列と、「キミノナマエワエスディーアールダヨ」というカナ表記を取得する。この音韻系列とカナ表記は、未知語獲得部５６で用いられる。
【００３７】
アプリケーション切替用タスク７１２は、アプリケーション管理部３１に対応したタスクであり、アプリケーション管理部３１が起動した後、アプリケーション管理部３１からタスク切替コマンドが供給されると、有効にされる。アプリケーション切替用タスク７１２によって、マッチング部５４は、例えば、「雑談アプリを起動」、「音声コマンダを起動」、「名前登録を起動して」等のアプリケーション部の起動、または終了命令に対応する音声を認識する。
【００３８】
名前登録用タスク７１３は、名前登録用アプリケーション部２１１に対応したタスクであり、アプリケーション管理部３１からの指令により、名前登録用アプリケーション部２１１が起動された後、名前登録用アプリケーション部２１１からタスク切替コマンドが供給されると、有効にされる。名前登録用タスク７１３によって、マッチング部５４は、例えば、「君の名前は、＜ロボット名を表す未知語＞だよ。」、「私の名前は、＜人名を表す未知語＞です。」といった名前に対応する音声を認識する。
【００３９】
雑談用タスク７１４、音声コマンダ用タスク７１５、・・・、およびその他のタスク７１Ｎは、それぞれ雑談用アプリケーション部２１２、音声コマンダ用アプリケーション部２１３、・・・、その他のアプリケーション部２１Ｍに対応したタスクであり、アプリケーション管理部３１からの指令により、対応するアプリケーション部が起動された後、対応するアプリケーション部からそれぞれタスク切替コマンドが供給されると、有効にされる。
【００４０】
マッチング部５４は、雑談用タスク７１４によって、例えば、「エスディーアール（ロボット名）、何時に起きたの？」というユーザからの雑談としての発話を認識することができる。また、マッチング部５４は、音声コマンダ用タスク７１５によって、例えば、「エスディーアール（ロボット名）、前に１歩進め」というユーザからの指令としての発話を認識することができる。
【００４１】
また、マッチング部５４は、後述する共通辞書部５５に登録された単語を、各タスクに反映させる。
【００４２】
なお、以下、音韻タイプライタ用タスク７１１、アプリケーション切替用タスク７１２、名前登録用タスク７１３、雑談用タスク７１４、音声コマンダ用タスク７１５、・・・、およびその他のタスク７１Ｎのそれぞれを個々に区別する必要がない場合、適宜、まとめて、タスク７１と称する。
【００４３】
共通辞書部５５は、タスク７１で共通に用いる単語の辞書としての共通辞書を記憶している。共通辞書部５５に記憶されている共通辞書には、そこに登録された全単語について、発音情報とカテゴリ情報が記述される。例えば、固有名詞である「エスディーアール（ロボット名）」が共通辞書に登録される場合、「エスディーアール」という発音（音韻情報）と“＿ロボット名＿”というカテゴリが共通辞書に記述される。詳細は、図２４で後述する。
【００４４】
未知語獲得部５６は、認識用の辞書（図６で後述する固定単語辞書１３１）に登録されていない名前等の単語（未知語）について、音韻タイプライタ用タスク７１１によって認識され、マッチング部５４から供給された音韻系列およびカナ表記を記憶し、それ以降、その単語の音声を認識できる（他の音声と識別できる）ようにする。
【００４５】
即ち、未知語獲得部５６は、音韻タイプライタ用タスク７１１によって認識された未知語の音韻系列およびカナ表記を、いくつかのクラスタに分類する。各クラスタはＩＤ、代表音韻系列、および代表カナ表記を持ち、ＩＤで管理される。
【００４６】
図３は、未知語獲得部５６のクラスタの状態を示している。
【００４７】
「あか」、「あお」、「みどり」の３回の音声が入力されたとき、未知語獲得部５６は、３回の入力音声を、それぞれに対応した「あか」クラスタ９１、「あお」クラスタ９２、および「みどり」クラスタ９３の３つのクラスタに分類し、各クラスタに、代表となる音韻系列（図３の例の場合、“ａ／ｋ／ａ”、“ａ／ｏ”、“ｍ／ｉ／ｄ／ｏ／ｒ／ｉ”）、代表的なカナ表記（図３の例の場合、「アカ」、「アオ」、「ミドリ」）、およびＩＤ（図３の例の場合、「１」、「２」、「３」）を付加する。
【００４８】
ここで、再び「あか」という音声が入力されると、対応するクラスタが既に存在するので、未知語獲得部５６は、入力音声を「あか」クラスタ９１に分類し、新しいクラスタは生成しない。これに対して、「くろ」という音声が入力された場合、対応するクラスタが存在しないので、未知語獲得部５６は、「くろ」に対応した「くろ」クラスタ９４を新たに生成し、そのクラスタに、代表的な音韻系列（図３の例の場合、“ｋ／ｕ／ｒ／ｏ”）、代表的なカナ表記（図３の例の場合、「クロ」）、およびＩＤ（図３の例の場合、「４」）を付加する。
【００４９】
この方法を用いると、ユーザが同じ音声を何度も入力することによって、各クラスタの代表音韻系列と代表カナ発音の精度をあげることができる。例えば、「みどり」を１度入力した時点では、音韻タイプライタが誤認識して、“ｍ／ｅ／ｒ／ａ／ａ”という音韻系列と、「メラア」というカナ発音とを出力したとする。その後、「みどり」という発話を何回もすることにより、音韻系列とカナ発音とが正しい値（“ｍ／ｉ／ｄ／ｏ／ｒ／ｉ”と「ミドリ」）に収束していく可能性がある。このような単語獲得処理の詳細は、本出願人が先に提案した特願２００１−０９７８４３号、および特願２００１−３８２５７９号に開示されている。
【００５０】
次に、図４と図５を参照して、図１のロボット制御システム１におけるロボット制御処理を説明する。なお、この処理は、ユーザによりロボット制御システム１が起動されたとき、開始される。
【００５１】
ステップＳ１において、音声認識エンジン部１１が起動し、ステップＳ２に進む。ステップＳ２において、音声認識エンジン部１１は、前回のロボット制御システム１の終了時に、不図示の記憶部に記憶しておいた（後述するステップＳ１７の処理）共通辞書部５５の内容（共通辞書）と未知語獲得部５６のクラスタの状態をロードする。共通辞書とクラスタの状態が記憶部に記憶されていない場合は、共通辞書部５５と未知語獲得部５６のクラスタのエントリが何もない状態のままにする。記憶部にクラスタの状態は記憶されているが共通辞書の状態は記憶されていないという場合は、共通辞書のみ初期化（エントリが何もない状態に）する。逆に、共通辞書の状態は記憶されているがクラスタの状態は記憶されていない場合は、クラスタ由来のエントリ（図２４でクラスタＩＤが記述されているエントリ）は共通辞書から削除し、カナ発音由来のエントリ（図２４でカナ発音が記述されているエントリ）は残す。
【００５２】
ステップＳ２の処理後は、ステップＳ３に進み、音声認識エンジン部１１は、音韻タイプライタ用タスク７１１を有効にし、音韻タイプライタ用タスク７１１が音声認識に使用できる状態にして、ステップＳ４に進む。ステップＳ４において、アプリケーション管理部３１が起動し、ステップＳ５に進む。
【００５３】
ステップＳ５において、アプリケーション管理部３１は、対応するタスクであるアプリケーション切替用タスク７１２を有効にし、ステップＳ６に進む。ステップＳ６において、音声認識エンジン部１１は、マイクロホン５１に音声で入力された、アプリケーション部２１の起動命令を認識し、認識結果をアプリケーション管理部３１に供給する。この音声認識処理の詳細は、図３５のフローチャートで後述する。
【００５４】
ステップＳ６の処理後は、図５のステップＳ７に進み、アプリケーション管理部３１は、音声認識エンジン部１１から供給された認識結果から、名前登録用アプリケーション部２１１を起動するか否かを判定し、名前登録用アプリケーション部２１１を起動すると判定した場合（例えば、認識結果が「名前登録を起動」である場合）、ステップＳ８に進む。
【００５５】
ステップＳ８において、アプリケーション管理部３１は、名前登録用アプリケーション部２１１を起動させる。ステップＳ８の処理後は、ステップＳ９に進み、名前登録用アプリケーション部２１１は、名前登録処理を行なう。この名前登録処理の詳細は、図２１のフローチャートで後述する。
【００５６】
ステップＳ７において、アプリケーション管理部３１は、名前登録用アプリケーション部２１１を起動しないと判定した場合、ステップＳ１０に進み、音声認識エンジン部１１による認識結果から、雑談用アプリケーション部２１２を起動するか否かを判定する。ステップＳ１０において、アプリケーション管理部３１は、雑談用アプリケーション部２１２を起動すると判定した場合（例えば、認識結果が「雑談を起動して」である場合）、ステップＳ１１に進み、雑談用アプリケーション部２１２を起動させる。
【００５７】
ステップＳ１１の処理後は、ステップＳ１２に進み、雑談用アプリケーション部２１２は、雑談処理を行なう。この雑談処理の詳細は、図３２のフローチャートで後述する。
【００５８】
ステップＳ１０において、アプリケーション管理部３１は、雑談用アプリケーション部２１２を起動しないと判定した場合、ステップＳ１３に進み、音声認識エンジン部１１による認識結果から、音声コマンダ用アプリケーション部２１３を起動するか否かを判定する。ステップＳ１３の処理において、アプリケーション管理部３１は、音声コマンダ用アプリケーション部２１３を起動すると判定した場合（例えば、認識結果が「音声コマンダ起動」である場合）、ステップＳ１４に進み、音声コマンダ用アプリケーション部２１３を起動させる。
【００５９】
ステップＳ１４の処理後は、ステップＳ１５に進み、音声コマンダ用アプリケーション部２１３は、音声コマンダ処理を行なう。この音声コマンダ処理の詳細は、図３２のフローチャートで後述する。
【００６０】
ステップＳ１３において、アプリケーション管理部３１は、音声コマンダ用アプリケーション部２１３を起動しないと判定した場合、音声認識エンジン部１１による認識結果が誤っているため（アプリケーション切り替え以外の発話の場合もある）、図４のステップＳ６に戻り、音声認識エンジン部１１は、新たに入力された音声を認識する処理を行う。
【００６１】
このように、アプリケーション管理部３１は、音声認識エンジン部１１による認識結果に応じて、アプリケーション部２１を起動させる。
【００６２】
ステップＳ９，Ｓ１２，Ｓ１５の処理の後は、ステップＳ１６に進み、アプリケーション管理部３１は、ロボット制御処理を終了するか否かを判定する。例えば、アプリケーション管理部３１は、ユーザにより不図示の終了ボタンが押圧されたか否かを判定し、終了ボタンが押圧された場合、ロボット制御処理を終了すると判定する。
【００６３】
ステップＳ１６において、ロボット制御処理を終了しないと判定された場合、処理は図４のステップＳ６に戻り、入力された音声を認識する処理を繰り返す。ステップＳ１６において、アプリケーション管理部３１は、ロボット制御処理を終了する（終了ボタンが押圧された）と判定した場合、ステップＳ１７に進み、共通辞書部５５の共通辞書および未知語獲得部５６のクラスタの状態を、不図示の記憶部に記憶させる。
【００６４】
そして、アプリケーション管理部３１は、起動しているアプリケーション部２１がある場合、そのアプリケーション部を終了する。このとき、アプリケーション部２１は、対応するタスク７１を無効にする。また、アプリケーション管理部３１は、アプリケーション切替用タスク７１２を無効にし、音声認識エンジン部１１は、音韻タイプライタ用タスク７１１を無効にして、アプリケーション管理部３１および音声認識エンジン部１１は、処理を終了する。
【００６５】
なお、上述の処理では、アプリケーション部が、名前登録用アプリケーション部２１１、雑談用アプリケーション部２１２、音声コマンダ用アプリケーション部２１３の３個のときを説明したが、さらにその他のアプリケーション部がある場合は、ステップＳ１３で、音声コマンダ用アプリケーションを起動しないと判定した場合、ステップＳ６に戻らず、ステップＳ７，Ｓ１０，Ｓ１３と同様に、他のアプリケーションを起動するか否かが判定され、その判定結果に応じて他のアプリケーションが起動される。
【００６６】
また、上述の処理では、音声認識の終了は、ユーザによって指令されたが、例えば、所定時間音声が入力されない場合に終了する等、ロボット制御システム１が自動的に判断してもよい。
【００６７】
上述の処理によれば、アプリケーション切替用タスク７１２は、各アプリケーション部２１の起動中も有効になっているため、「○○を起動して」という発話が他のアプリケーション部の起動中になされた場合も、その発話を認識して、対応するアプリケーションを起動することができる。例えば、音声コマンダアプリケーション部２１３が起動中に、ユーザによって「雑談を起動して」と発話された場合、雑談用アプリケーション部２１２を起動することができる。
【００６８】
この場合、起動中のアプリケーション部を終了させてから新しいアプリケーション部を起動させるか、起動中のアプリケーション部は一時停止状態にしてから新しいアプリケーション部を起動し、新しいアプリケーション部が終了してから元のアプリケーション部を再開するか、あるいは両方を並列に起動させるかは、アプリケーション部同士の組み合わせによって予め設定されている（メモリ等のリソース制約などから動的に判断することもある）。
【００６９】
図６は、タスク７１の構成を示している。タスク７１は、音響モデル１１１、言語モデル１１２、辞書１１３、音韻リスト１１４、カナ音韻変換規則１１５、およびサーチパラメータ１１６から構成されている。
【００７０】
音響モデル１１１は、音声認識する音声の個々の音韻、音節等の音響的な特徴を表すモデルを記憶している。音響モデルとしては、例えば、ＨＭＭ（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ）を用いることができる。
【００７１】
言語モデル１１２は、辞書１１３の単語辞書に登録されている各単語がどのように連鎖する（接続する）かを示す情報（以下、適宜、連鎖情報と称する）を記述している。記述方法としては、統計的な単語連鎖確率（ｎ−ｇｒａｍ）、生成文法、有限状態オートマン等がある。
【００７２】
言語モデル１１２は、単語についての連鎖情報の他に、単語を特定の観点で分類したカテゴリについての連鎖情報も含んでいる。例えば、「ユーザ名を表す単語からなるカテゴリを“＿ユーザ名＿”というシンボルで表し、「ロボット名を表す単語からなるカテゴリ」を“＿ロボット名＿”というシンボルで表す場合、言語モデル１１２は、“＿ユーザ名＿”、“＿ロボット名＿”についての連鎖情報（カテゴリ同士の連鎖、カテゴリと辞書に予め記憶されている単語との連鎖等）も記述している。
【００７３】
したがって、言語モデル１１２に含まれない単語についても連鎖情報を取得することができる。例えば、「エスディーアール」と「は（助詞）」の連鎖情報を取得する場合、言語モデル１１２に「エスディーアール」についての連鎖情報が記述されていなくても、「エスディーアール」が“＿ロボット名＿”というシンボルで表されるカテゴリに属していることがわかれば、代わりに“＿ロボット名＿”と「は」との連鎖情報を取得することによって、「エスディーアール」と「は」の連鎖情報を取得することができる。
【００７４】
なお、カテゴリは、意味属性に基づく分類（“＿ロボット名＿”、“＿ユーザ名＿”、“＿地名＿”、“＿店名＿”等）ではなく、品詞に基づく分類（“＿名詞＿”、“＿動詞＿”、“＿助詞＿”等）にしてもよい。以下、“＿・・・＿”という表記は、カテゴリ名を表すものとする。
【００７５】
辞書１１３は、固定単語辞書１３１、可変単語辞書１３２、およびカテゴリテーブル１３３から構成されている。
【００７６】
固定単語辞書１３１には、単語登録および削除の対象外の単語、すなわち、予めロボット制御システム１に設定されている単語（以下、適宜、固定単語と称する）についての発音（音韻系列）、音韻および音節の連鎖関係を記述したモデル等、各種の情報が記述されている。
【００７７】
なお、固定単語辞書１３１には、タスク７１毎に、そのタスク７１に対応するアプリケーション部２１で用いられる専用の単語についての情報が記述されている。上述の音響モデル１１１および言語モデル１１２において、並びに後述するカテゴリテーブル１３３、音韻リスト１１４、カナ音韻変換規則１１５、およびサーチパラメータ１１６においても同様である。
【００７８】
可変単語辞書１３２には、単語登録および削除の対象となる単語、すなわち、登録単語についての発音、音韻および音節の連鎖関係を記述したモデル等、各種の情報が記述されており、共通辞書部５５に新たな登録単語が登録されると、その登録単語が反映される。この反映処理については、図２５で後述する。単語の削除や発音の変更は、この可変単語辞書１３２のエントリに対してのみ行うことができる。なお、可変単語辞書１３２は、何も記億されていなくてもよい。
【００７９】
カテゴリテーブル１３３は、言語モデル１１２に含まれているカテゴリとそのカテゴリに含まれている単語の情報との対応を示すテーブルを記憶している。また、タスク７１がカテゴリ独自のＩＤ（カテゴリＩＤ）を付与している場合には、カテゴリテーブル１３３は、カテゴリのシンボルとそのＩＤの対応関係も記憶する。例えば、“＿ロボット名＿”のカテゴリに、カテゴリＩＤ「４」が付与されている場合、“＿ロボット名＿”に対応して、カテゴリＩＤ＝４も記憶する。なお、カテゴリテーブル１３３は、言語モデル１１２がカテゴリを含まない場合、何も記憶しない。
【００８０】
音韻リスト１１４は、タスク７１で使用する音韻記号の一覧である。カナ音韻変換規則１１５は、カナ文字列を音韻系列に変換するための規則である。このように、カナ音韻変換規則１１５をタスク毎に記憶することによって、共通辞書部５５は、発音情報として、音韻系列とは独立であるカナ文字列を保持することができる。
【００８１】
サーチパラメータ１１６は、マッチング部５４がマッチング（サーチ）する場合に用いるパラメータを保持している。パラメータには、音響モデル１１１に依存した値、語彙数に依存した値、言語モデル１１２の種類に依存した値等があるので、タスク毎に保持しておく必要がある。ただし、タスクに依存しないパラメータは、認識エンジン部１１で共通に保持すればよい。
【００８２】
なお、上述の説明では、全てのデータをタスク毎に記憶するようにしたが、複数のタスクで共通に用いるデータは、タスク間で共有することでメモリ使用量を減らすことができる。例えば、音韻リスト１１４が全てのタスクで共通である場合、音韻リスト１１４を音声認識エンジン部１１で１つだけ用意し、各タスクはそれを参照するようにすればよい。この場合、カナ音韻変換規則１１５も１つだけ用意すれば十分である。
【００８３】
また、音響モデル１１１は、静かな環境用（静かな環境で高い認識率が出る音響モデル）と雑音環境用（騒がしい環境でもそれなりの認識率が出る音響モデル）との２種類を用意し、タスク毎にどちらかを参照するようにしてもよい。
【００８４】
例えば、名前登録用タスク７１３と雑談用タスク７１４は、静かな環境で使用することを想定しているので、静かな環境用の音響モデル１１１を参照し、音声コマンダ用タスク７１５は、騒がしい環境（ロボットの動作音が大きい環境）で使うことを想定しているので、雑音環境用の音響モデルを参照するようにすることができる。
【００８５】
図７は、図６の音韻リスト１１４の例を示している。図７において、１つの記号は１つの音韻（に相当するもの）を表す。なお、図７の音韻リスト１１４において、母音＋コロン（例えば、“ａ：”）は、長音を表し、“Ｎ”は、撥音（「ん」）を表す。また、“ｓｐ”、“ｓｉｌＢ”、“ｓｉｌＥ”、“ｑ”は、全て無音を表すが、それぞれ「発話の中の無音」、「発話前の無音」、「発話後の無音」、「促音（「っ」）」を表す。
【００８６】
図８は、図６のカナ音韻変換規則１１５の例を示している。図８のカナ音韻変換規則１１５によれば、例えば、「エスディーアール」というカナ文字列は、“ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ”という音韻系列に変換される。
【００８７】
次に、各タスクの言語モデル１１２と辞書１１３（図６）の例を示す。
【００８８】
図９は、音韻タイプライタ用タスク７１１の言語モデル１１２（図６）の例を示している。図９において、第１行目の変数“＄ＳＹＬＬＡＢＬＥ”は、全てのカナ表記が「または」を意味する“｜”で繋がれているので、そのカナ表記の内の任意の１つを意味する。
【００８９】
即ち、ここでは、音韻タイプライタ用タスク７１１は、音節（シラブル）を単位とする音声認識用のタスクであるとして、図９の言語モデル１１２は、任意のシラブルが、任意に接続できるという連鎖規則を、ＢＮＦ（Ｂａｃｋｕｓ−Ｎａｕｒ−Ｆｏｒｍ）形式の文法で表している。なお、言語モデル１１２は、後述する統計言語モデルを用いてもよい。
【００９０】
図１０は、音韻タイプライタ用タスク７１１の固定単語辞書１３１（図６）の例を示している。「シンボル」は単語を識別するための文字列であり、例えば、カナ表記などを用いることができる。シンボルが同じエントリは、同じ単語のエントリであるとみなされる。また、言語モデル１１２は、このシンボルを用いて表されている。なお、「＜先頭＞」と「＜終端＞」は特殊なシンボルであり、それぞれ「発話前の無音」と「発話後の無音」を表す（後述する図１１等においても同様）。
【００９１】
また、「トランスクリプション」は、単語の表記を表し、認識結果として出力される文字列はこのトランスクリプションである。「音韻系列」は、単語の発音を音韻系列で表したものである。
【００９２】
音韻タイプライタ用タスク７１１の可変単語辞書１３２には、音韻タイプライタ用タスク７１１に単語を追加することは想定していないので、何も記憶されない。また、音韻タイプライタ用タスク７１１の言語モデル１１２は、図９に示すように、カテゴリを含まないので、カテゴリテーブル１３３にも何も記憶されない。
【００９３】
図１１は、アプリケーション切替用タスク７１２の言語モデル１１２（図６）の例を示している。図１１の言語モデル１１２は、ＢＮＦ形式の文法で記述されている。第１行目の変数“＄ＡＰＰＬＩＣＡＴＩＯＮＳ”は、全てのアプリケーション名（「雑談」、「音声コマンダ」、「名前登録」等）が「または」を意味する“｜”で繋がれているので、アプリケーション名の内のどれか１つを意味する。
【００９４】
また、第２行目の変数“＄ＵＴＴＥＲＡＮＣＥ”は、“＿ロボット名＿”と「を」のそれぞれに、「省略可能」を意味する“［］”が付加されているので、「（ロボット名）アプリケーション名（を）起動して」を意味する。ここで、「ロボット名」とは、“＿ロボット名＿”のカテゴリに登録された単語を示している。
【００９５】
例えば、“＿ロボット名＿”に「エスディーアール」が登録されていた場合、「エスディーアール、音声コマンダ（を）起動して」、「音声コマンダ（を）起動して」等の発話が、図１１の言語モデル１１２を用いて認識される。
【００９６】
このように言語モデル１１２を、カテゴリ名を用いて記述することによって、新たに登録された単語であっても、その単語が、言語モデル１１２に記述されているカテゴリに含まれるものである場合には、その新たに登録された単語を含む発話を、言語モデル１１２を用いて認識することができる。
【００９７】
図１２は、アプリケーション切替用タスク７１２の固定単語辞書１３１（図６）の例を示している。図１２の固定単語辞書１３１には、図１１の言語モデル１１２の文法中に記述されるシンボル（図１１における「雑談」や「音声コマンダ」等）について、トランスクリプションと音韻系列が記述されている。
【００９８】
図１３は、アプリケーション切替用タスク７１２のカテゴリテーブル１３３（図６）の例を示している。カテゴリテーブル１３３は、言語モデル１１２に使用されているカテゴリの種類と、カテゴリに属する単語の情報を記憶する。言語モデル１１２が図１１に示すような場合、アプリケーション切替用タスク７１２の言語モデル１１２には、“＿ロボット名＿”のカテゴリが使用されているため、カテゴリテーブル１３３には、図１３に示すように、“＿ロボット名＿”がエントリされている。図１３においては“＿ロボット名＿”のカテゴリに属する単語の集合は、空集合であり、まだ“＿ロボット名＿”に属する単語は何もないことを表している。
【００９９】
図１３に示したように、カテゴリテーブル１３３に、カテゴリがエントリされている場合であっても、そのエントリに属する単語がない場合（空集合の場合）、可変単語辞書１３２には、そのカテゴリに属する単語の情報は記憶されない。
【０１００】
図１４は、名前登録用タスク７１３の言語モデル１１２（図６）の例を示している。図１４の言語モデル１１２は、ＢＮＦ形式の文法で記述されている。変数“＄ＵＴＴＥＲＡＮＣＥ”は、「私［の  名前］  は＜ＯＯＶ＞［です］［と  いい  ます］」と「君［の  名前］は＜ＯＯＶ＞［と  いうん］だよ」が、「または」を意味する“｜”で繋がっており、「の  名前」、「です」、「と  いい  ます」、「と  いうん  だよ」それぞれに、「省略可能」を意味する“［］”が付加されている。
【０１０１】
したがって、図１４の言語モデル１１２を用いて、「私（の名前）は＜ＯＯＶ＞（です）（といいます）」または「君（の名前）は＜ＯＯＶ＞（というん）だよ」が認識される。なお、＜ＯＯＶ＞は、「Ｏｕｔ  Ｏｆ  Ｖｏｃａｂｕｌａｒｙ」を意味するシンボルであり、任意の発音の語句（固定単語辞書１３１に記述されていない単語）を意味する。
【０１０２】
シンボル＜ＯＯＶ＞を用いることによって、例えば、「私の名前は太郎です」、「君の名前はエスディーアールだよ」といった発話（「太郎」と「エスディーアール」は、固定単語辞書１３１に記述されていない）に対して、それぞれ図１４の言語モデル１１２の「＜先頭＞私の名前は＜ＯＯＶ＞です＜終端＞」、「＜先頭＞君の名前は＜ＯＯＶ＞だよ」が適用されることにより、「私の名前はタロウです」、「君の名前はエスディーアールだよ」という音声認識結果を得ることができる。
【０１０３】
図１５は、名前登録用タスク７１３の固定単語辞書１３１（図６）の例を示している。固定単語辞書１３１には、図１４に示されるような言語モデル１１２の文法中に記述されるシンボルについて、トランスクリプションと音韻系列が記述されている。
【０１０４】
名前登録用タスク７１３の可変単語辞書１３２には、ここでは、名前登録用タスク７１３に単語を追加することは想定していないので、何も記憶されない。また、名前登録用タスク７１３の言語モデル１１２は、図１４に示すように、カテゴリを含まないので、カテゴリテーブル１３３にも何も記憶されない。
【０１０５】
図１６は、雑談用タスク７１４の言語モデル１１２（図６）の例を示している。雑談は、語彙も発話のバリエーションも多いため、言語モデル１１２として、統計言語モデルが用いられている。統計言語モデルは、単語の連鎖情報を条件付確率で記述したモデルであり、図１６の言語モデル１１２では、３つの単語１，２，３の並び、すなわち単語の３連鎖の確率を表すｔｒｉ−ｇｒａｍが用いられている。
【０１０６】
図１６において、「Ｐ（単語３｜単語１単語２）」は、単語列中に「単語１」、「単語２」という並びがあった場合に、その次に「単語３」が出現する確率を表す。例えば、「＜先頭＞“＿ロボット名＿”」という並びがあった場合に、その次に「は」が出現する確率は、「０．０１２」である。なお、この確率は、大量の雑談を記述したテキストを解析することにより、予め求められる。また、言語モデル１１２としては、ｔｒｉ−ｇｒａｍの他に、ｂｉ−ｇｒａｍ（２連鎖の確率）やｕｎｉ−ｇｒａｍ（単語の出現確率）等も、必要に応じて用いることが可能である。
【０１０７】
図１６の言語モデル１１２においても、図１１における場合と同様に、単語の他、カテゴリを用いて文法が記述されている。即ち、図１６において、「＿ロボット名＿」、「＿地名＿」は、カテゴリ“＿ロボット名＿”、“＿地名＿”を意味するが、これらのカテゴリを用いてｔｒｉ−ｇｒａｍを記述することによって、ロボット名や地名を表す単語が可変単語辞書１３２に登録された場合に、その単語を雑談用タスク７１４で認識することができる。
【０１０８】
図１７は、雑談用タスク７１４の固定単語辞書１３１の例を示している。固定単語辞書１３１には、図１６に示されるような言語モデル１１２の文法中に記述されるシンボルについて、トランスクリプションと音韻系列が記述されている。
【０１０９】
図１８は、雑談用タスク７１４のカテゴリテーブル１３３の例を示している。カテゴリテーブル１３３は、言語モデル１１２に使用されているカテゴリの種類と、そのカテゴリに属する単語の情報を記憶する。言語モデル１１２が図１６に示すような場合、雑談用タスク７１４の言語モデル１１２には、“＿ロボット名＿”と“＿地名＿”の２個のカテゴリが使用されているため、カテゴリテーブル１３３には、図１８に示すように、“＿ロボット名＿”と“＿地名＿”の２つのカテゴリがエントリされている。図１８では、カテゴリ“＿ロボット名＿”と“＿地名＿”に属する単語は、まだ何もないことを表している。
【０１１０】
図１９は、音声コマンダ用タスク７１５の言語モデル１１２（図６）の例を示している。図１９の言語モデル１１２は、ＢＮＦ形式の文法で記述されている。第１行目の変数“＄ＮＵＭＢＥＲ”は、数字（「１」、「２」、「３」等）が「または」を意味する“｜”で繋がっているので、数字の内のどれか１つを意味する。
【０１１１】
第２行目の変数“＄ＤＩＲＥＣＴＩＯＮ”は、方向（「前」、「後」、「右」、「左」等）が「または」を意味する“｜”で繋がっているので、方向の内のどれか１つを意味する。第３行目の変数“ＵＴＴＥＲＡＮＣＥ”は、“＿ロボット名＿”、「＄ＤＩＲＥＣＴＩＯＮ  に」、および「＄ＮＵＭＢＥＲ  歩」に「進め」を付加したものとなっており、さらに、変数“＄ＵＴＴＥＲＡＮＣＥ”の“＿ロボット名＿”、「＄ＤＩＲＥＣＴＩＯＮ  に」、および「＄ＮＵＭＢＥＲ  歩」に、「省略可能」を意味する“［］”が付加されている。
【０１１２】
したがって、図１９の言語モデル１１２において、例えば、「（ロボット名）前に３歩進め」といった音声が認識される。
【０１１３】
図２０は、音声コマンダ用タスク７１５の固定単語辞書１３１の例を示している。固定単語辞書１３１には、図１９に示されるような言語モデル１１２の文法中に記述するシンボルについて、トランスクリプションと音韻系列が記述されている。
【０１１４】
なお、「１」と「歩」については、シンボルが重複しているが、これは「１」と「歩」が、それぞれ２つの発音（「イチ」と「イッ」、「ホ」と「ポ」）を持つことを表している。これによって、例えば、「イチホ」、「イッポ」という異なる発音がされた発話を、同じ「１歩」として認識することができる。
【０１１５】
言語モデル１１２が図１９に示すような場合、音声コマンダ用タスク７１５の言語モデル１１２には、“＿ロボット名＿”のカテゴリだけが使用されているため、音声コマンダ用タスク７１５のカテゴリテーブル１３３は、図１３に示した、アプリケーション切替用タスク７１２のカテゴリテーブル１３３と同じになる。また、“＿ロボット名＿”に属する単語がまだ発話されていない状態では、音声コマンダ用タスク７１５の可変単語辞書１３２には、何も記憶されない。
【０１１６】
次に、名前登録用アプリケーション部２１１が、図５のステップＳ９で行う名前登録処理を、図２１のフローチャートを用いて、詳細に説明する。なお、この処理は、ユーザの発話によって名前登録用アプリケーション部２１１が起動されたときに開始される。この処理が開始される前に、ユーザは、例えば、不図示のモード切替ボタンによって、名前を登録する名前登録モードとして、音声により名前を入力する音声入力モード、またはキーボード等によるカナ入力により名前を入力するカナ入力モードのうちのいずれか一方を選択しておく。
【０１１７】
ステップＳ４１において、名前登録用アプリケーション部２１１は、音声認識エンジン部１１の名前登録用タスク７１３を有効にし、この名前登録用タスク７１３で音声を認識できるようにする。
【０１１８】
ステップＳ４１の処理後は、ステップＳ４２に進み、名前登録用アプリケーション部２１１は、名前登録モードが音声入力モードであるか否かを判定し、音声入力モードであると判定した場合、ステップＳ４３に進み、マッチング部５４に名前認識処理を行わせ、ステップＳ４４に進む。（または、ステップＳ４２でユーザが発話した場合は「名前を音声で入力した」と判定してステップＳ４３に進み、不図示のカナ入力ボタンが押された場合は、「名前をカナ文字で入力した」と判定してステップＳ４６に進む。）この名前認識処理の詳細は、図２２で後述する。
【０１１９】
ステップＳ４４において、名前登録用アプリケーション部２１１は、マッチング部５４でステップＳ４３の名前認識処理が行われることにより得られる名前の音声認識結果（認識された名前）が正しいか否かを判定する。この判定は、例えば、認識結果をユーザに向かって発話し、ユーザから不図示のＯＫボタンが操作されたか否かによって行われる。
【０１２０】
ステップＳ４４において、名前の音声認識結果が正しくないと判定された場合、ユーザに再度発話するよう促し、ステップＳ４３に戻り、再び名前認識処理を行う。ステップＳ４４において、認識結果が正しいと判定された場合、ステップＳ４７に進む。
【０１２１】
一方、ステップＳ４２において、名前登録アプリケーション部２１１は、名前登録モードが音声入力モードではないと判定した場合、ステップＳ４５に進み、名前登録モードがカナ入力モードであるか否かを判定する。
【０１２２】
ステップＳ４５において、名前登録モードがカナ入力モードではないと判定された場合、ユーザによって名前登録モードが選択されていないので、名前登録モードが選択されるまで待機し、ユーザによる名前入力モードの選択を待って、ステップＳ４２に戻る。
【０１２３】
ステップＳ４５において、名前登録モードがカナ入力モードであると判定された場合、ステップＳ４６に進み、名前登録用アプリケーション部２１１は、ユーザによって入力された名前のカナ列と、その名前のカテゴリを取得する。
【０１２４】
カナ列を入力する方法としては、例えば、ユーザが一時的にキーボードを接続してカナ文字を入力する方法、ロボットの各種スイッチを使用して入力する方法、文字を書いた紙等をロボットに見せて文字認識する方法（例えば、特願２００１−１３５４２３参照）、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等でロボットとパーソナルコンピュータを接続し、そのパーソナルコンピュータからロボットに転送する方法、インターネット等を経由して、ロボットにダウンロードする方法等がある。また、文字を書いた紙等をロボットに見せて文字認識する方法において、カナ文字を入力するのではなく、カナ漢字交じりの文字列を入力し、名前登録用アプリケーション部２１１が、カナ列に変換してもよい（特願２００１−１３５４２３参照）。
【０１２５】
さらに、ユーザが名前のカナ列を入力するのではなく、予め共通辞書部５５の共通辞書に、名前のカナ文字を付加したエントリを与えておき、名前登録用アプリケーション部２１１は、共通辞書部５５を参照することによって、名前のカナ列を取得してもよい。
【０１２６】
ステップＳ４４またはＳ４６の処理後は、ステップＳ４７に進み、名前登録用アプリケーション部２１１は、登録する名前のカテゴリを決定する。名前登録モードがカナ入力モードである場合、名前登録用アプリケーション部２１１は、ステップＳ４６で取得した（ユーザによって入力された）カテゴリを、登録する名前のカテゴリに決定する。
【０１２７】
即ち、カナ入力モードにおいては、ステップＳ４６において、ユーザに、名前の他、その名前のカテゴリも入力してもらい、ユーザが入力した名前のカテゴリを、登録する名前のカテゴリに決定する。一方、名前登録モードが音声入力モードである場合、名前登録用アプリケーション部２１１は、ステップＳ４３の名前認識処理で得られた名前のカテゴリを推測して決定する。
【０１２８】
例えば、音声認識エンジン部１１から供給された認識結果が「君」で始まる場合は、登録する名前の属するカテゴリは、“＿ロボット名＿”であると推測し、「私」で始まる場合は、登録する名前の属するカテゴリは、“＿ユーザ名＿”であると推測する。また、本出願人が先に提案した特願２００１−３８２５７９に開示されている、各種のカテゴリ推定方法も用いることができる。
【０１２９】
ステップＳ４７の処理後は、ステップＳ４８に進み、名前登録用アプリケーション部２１１は、マッチング部５４を制御して、登録する名前の発音情報とカテゴリを共通辞書部５５の共通辞書にエントリし、ステップＳ４９に進む。ステップＳ４９において、名前登録用アプリケーション部２１１は、マッチング部５４を制御して、共通辞書の内容を、雑談用タスク７１４、音声コマンダ用タスク７１５、・・・、その他のタスク７１Ｎに反映させる。この反映の詳細は、図２５のフローチャートを参照して後述する。
【０１３０】
このように、共通辞書に登録した名前を他のタスクに反映させることにより、他のタスクでも、この登録した名前を認識することができる。
【０１３１】
ステップＳ４９の処理後は、ステップＳ５０に進み、名前登録用アプリケーション部２１１は、名前登録処理を終了するか否かを判定する。この判定は、例えば、終了するかという質問をユーザに向けて発話し、ユーザにより不図示のＯＫボタンが操作（押圧）されたか否かによって行う。ステップＳ４９において、名前登録用アプリケーションを終了しない（例えば、ＯＫボタンが押されていない）と判定された場合、ステップＳ４２に戻り、他の名前を登録する処理を行なう。
【０１３２】
また、ステップＳ５０において、名前登録処理を終了する（例えば、ＯＫボタンが押された）と判定された場合、ステップＳ５１に進み、名前登録用アプリケーション部２１１は、名前登録用タスク７１３を無効にし、ステップＳ５２に進む。ステップＳ５２において、名前登録用アプリケーション部２１１は処理を終了する。
【０１３３】
図２２は、図２１のステップＳ４３で、図２のマッチング部５４が行う名前認識処理を説明するフローチャートである。
【０１３４】
ステップＳ６１において、マッチング部５４は、音声がマイク５１に入力されたか否かを判定し、音声が入力されていないと判定した場合、音声が入力されるまで待機する。ステップＳ６１において、音声が入力されたと判定された場合、ステップＳ６２に進む。ここで入力される音声は、例えば、「私の名前は太郎です」、「君の名前はエスディーアールだよ」といった通常の会話でよく、ユーザは、名前登録を意識して、「太郎」「エスディーアール」という名前だけを単独で入力する必要はない。
【０１３５】
ステップＳ６２において、マッチング部５４は、音声を認識し、名前を抽出する。例えば、「君の名前はエスディーアールだよ」という発話がされた場合、図１４に示すような言語モデル１１２と図１５に示すような固定単語辞書１３１を有する名前登録用タスク７１３を参照して、マッチング部５４は、例えば、「＜先頭＞君の名前は＜ＯＯＶ＞だよ＜終端＞」という認識結果を生成する。また、マッチング部５４は、＜ＯＯＶ＞が発話のどの区間（最初の発話の何秒目から何秒目まで）であるかという情報を得る。
【０１３６】
さらに、マッチング部５４は、同じ発話に対して、図９に示すような言語モデル１１２と図１０に示すような固定単語辞書１３１を有する音韻タイプライタ用タスク７１１を参照して、例えば、“ｋ／ｉ／ｍ／ｉ／ｎ／ｏ／ｎ／ａ／ｍ／ａ／ｅ／ｗ／ａ／ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ／ｄ／ａ／ｙ／ｏ”という音韻系列と、「キミノナマエワエスディーアールダヨ」というカナ列を得る。
【０１３７】
そして、マッチング部５４は、＜ＯＯＶ＞が発話のどの区間であるかという情報に基づき、得られた音韻系列およびカナ列から、＜ＯＯＶ＞に相当する区間、すなわち、名前の区間の音韻系列とカナ列とを切り出し、“ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ”という音韻系列と「エスディーアール」というカナ列とを得る。また、マッチング部５４は、同区間の音声データも得る。この名前を抽出する処理の詳細は、本出願人が先に提案した特願２００１−３８２５７９号に開示されている。
【０１３８】
ステップＳ６２の処理後は、ステップＳ６３に進み、マッチング部５４は、ステップＳ６２の処理で抽出した名前の音韻系列、カナ列、および音声データを、未知語獲得部５６に供給し、クラスタリングを行う。クラスタリングの詳細は、本出願人が先に提案した特願２００１−０９７８４３号に開示されている。このクラスタリングの結果、未知語獲得部５６の各クラスタは、代表の音韻系列とカナ列とを有する。
【０１３９】
ステップＳ６３の処理後は、ステップＳ６４に進み、ステップＳ６２で認識された音声の認識結果（例えば、「キミノナマエワエスディーアールダヨ」というカナ列）を、名前登録用アプリケーション部２１１に供給する。
【０１４０】
図２３は、図２２のステップＳ６３の処理で、未知語獲得部５６においてクラスタリングされた、特徴空間の例を示している。なお、図２３においては、図が煩雑になるのを避けるため、２つの特徴量（特徴パラメータ）１と２で定義される特徴空間を示してある（上述の図３においても同様）。図２３では、特徴空間において、「あらら」、「さにー」、「とーきょー」、「たろう」という４個の名前がクラスタリングされている。
【０１４１】
即ち、図２３では、特徴空間において、「あらら」クラスタ１５１、「さにー」クラスタ１５２、「とーきょー」クラスタ１５３、「たろう」クラスタ１５４の４つのクラスタが構成されており、各クラスタには、代表となる音韻系列（図２３の例の場合、“ａ／ｒ／ａ／ｒ／ａ”、“ｓ／ａ／ｎ／ｉ：”、“ｔ／ｏ：／ｋｙ／ｏ：”、“ｔ／ａ／ｒ／ｏ／ｕ”）、代表的なカナ表記（図２３の例の場合、「アララ」、「サニー」、「トーキョー」、「タロウ」）、およびＩＤ（図２３の例の場合、「１」、「２」、「３」、「５」）が付加されている。
【０１４２】
図２４は、図２１のステップＳ４８で単語の情報がエントリされた共通辞書部５５の共通辞書の例を示している。図２４において、第１行目のエントリは、発音がカナ列で入力され、その発音が「エスディーアール」という文字列であり、カテゴリが“＿ロボット名＿”と入力されたことを表している。
【０１４３】
第２行目のエントリは、発音が音声で入力され、その発音のカナ表記と音韻系列が、未知語獲得部５６のＩＤが「５」のクラスタに付加された代表的なカナ表記（図２３の例の場合「タロウ」）と音韻系列（図２３の例の場合“ｔ／ａ／ｒ／ｏ：”）であることを表している。第２行目のエントリのカテゴリは、図２１のステップＳ４７で、名前登録アプリケーション部２１により決定され、“＿ユーザ名＿”となっている。例えば、ユーザによって「私の名前は太郎です」という発話がされた場合、共通辞書部５５に、第２行目のようなエントリが構成される。
【０１４４】
同様に、第３行目、第４行目のエントリは、発音がカナ列で入力され、その発音がそれぞれ「サニータロウ」、「キタシナガワ」という文字列であり、カテゴリが“＿ユーザ名＿”“＿地名＿”と入力されたことを表している。また、第５行目のエントリは、発音が音声で入力され、その発音のカナ表記と音韻系列が、未知語獲得部５６のＩＤが「３」のクラスタに付加された代表的なカナ表記（図２３の例の場合「トーキョー」）と音韻系列（図２３の例の場合“ｔ／ｏ：／ｋｙ／ｏ：”）であることを表している。さらに、第５行目のエントリのカテゴリは、名前登録アプリケーション部２１によって、“＿地名＿”に決定されている。
【０１４５】
なお、共通辞書においては、発音がカナ列で入力された単語については、その単語の発音を表すカナ列とカテゴリとの組が１つのエントリに登録され、発音が音声入力された単語については、その単語のクラスタを表すＩＤとカテゴリとの組が１つのエントリに登録される。
【０１４６】
図２５は、図２１のステップＳ４９の処理で、マッチング部５４が共通辞書部５５の内容をタスクに反映させる処理を説明するフローチャートである。なお、この処理は、有効にされているタスク毎に行なわれる。
【０１４７】
ステップＳ８１において、マッチング部５４は、タスク７１（図６）における可変単語辞書１３２とカテゴリテーブル１３３を初期化する。即ち、可変単語辞書１３２は、エントリが１つもない状態にされ、カテゴリテーブル１３３は、各カテゴリに単語が何も属していない状態にされる。
【０１４８】
ステップＳ８１の処理後は、ステップＳ８２に進み、マッチング部５４は、共通辞書部５５の内容を可変単語辞書１３２とカテゴリテーブル１３３に反映させる。
【０１４９】
即ち、マッチング部５４は、共通辞書部５５の共通辞書の中から、カテゴリテーブル１３３にエントリされているカテゴリと共通する（同一の）カテゴリを選択し、そのカテゴリと、そのカテゴリに対応するクラスタＩＤまたはカナ発音（カナ列）を取得する。さらに、マッチング部５４は、共通辞書からクラスタＩＤを取得した場合、未知語獲得部５６からクラスタＩＤに対応するカナ列を取得する。
【０１５０】
マッチング部５４は、以上のようにして、共通辞書部５５の共通辞書から選択したカテゴリに属する単語のカナ列を取得すると、そのカナ列を、可変単語辞書１３２にエントリする。また、マッチング部５４は、共通辞書から取得したカナ列で表される単語の情報を、カテゴリテーブル１３３の対応するカテゴリにエントリする。
【０１５１】
上述の処理によれば、各タスクにおいて、可変単語辞書１３２は、初期化されてから、共通辞書の内容が反映される。即ち、可変単語辞書１３２は、共通辞書の内容に基づいて、構築または再構築される。このため、辞書中の特定のエントリに対して削除や変更を行う方法に比べて、容易に、各タスクで整合を保つことができる。
【０１５２】
また、上述の処理によれば、音声で登録した単語については、各タスクに反映させるたびに、そのときの最新の発音情報を未知語獲得部５６から取得するので、可変単語辞書１３２に登録した後も、未知語獲得部５６に音声データを供給するだけで発音情報が更新され、マッチング部５４は、そのときの最新の発音情報を参照して、音声を認識することができる。
【０１５３】
図２６は、図２５の反映処理を説明するブロック図である。共通辞書部５５の共通辞書に、カテゴリに対応してカナ列が記述されている場合、そのカナ列が可変単語辞書１３２に登録され、カテゴリテーブル１３３の、共通辞書のカテゴリと同一のカテゴリに、共通辞書のカナ列で表される単語の情報が登録される。
【０１５４】
一方、共通辞書に、カテゴリに対応してクラスタＩＤが記述されている場合、未知語獲得部５６が参照され、そのクラスタＩＤに対応する代表カナ列と代表音韻系列が可変単語辞書１３２に登録されて、カテゴリテーブル１３３の、共通辞書のカテゴリと同一のカテゴリに、共通辞書のクラスタＩＤで表される単語の情報が登録される。なお、後述する音声認識処理では、固定単語辞書１３１と可変単語辞書１３２の両方が使用される。
【０１５５】
図２７は、図２４に示す共通辞書部５５の内容が反映された、アプリケーション切替用タスク７１２の可変単語辞書１３２の例である。アプリケーション切替用タスク７１２のカテゴリテーブル１３３が図１３に示すような場合、図２４の共通辞書と共通しているカテゴリは、“＿ロボット名＿”であるので、マッチング部５４は、図２４の共通辞書から“＿ロボット名＿”に対応する「エスディーアール」というカナ発音を取得する。
【０１５６】
そして、マッチング部５４は、図２７に示すように、可変単語辞書１３２のトランスクリプションに、図２４の共通辞書から取得したカナ発音「エスディーアール」をエントリする。さらに、マッチング部５４は、トランスクリプション「エスディーアール」に対応する音韻系列に、カナ音韻変換規則１１５（図８）に基づいて、カナ発音「エスディーアール」に対応する“ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ”を記述する。
【０１５７】
また、マッチング部５４は、トランスクリプション「エスディーアール」で表される単語のシンボルとして、「ＯＯＶ００００１」を登録する。ここでは、シンボルを、「“ＯＯＶ”＋通し番号」を意味する「ＯＯＶ００００１」としたが、シンボルは、その単語を一意に識別できる文字列であればよい。即ち、シンボルとしては、例えば、カテゴリ名を先頭に付加して、「＿ロボット名＿：：ＯＯＶ００００１」などを用いることも可能である。
【０１５８】
図２８は、図２４の共通辞書の内容が反映されたアプリケーション切替用タスク７１２のカテゴリテーブル１３３の例を示している。図２７に示したように、可変単語辞書１３２に、図２４の共通辞書の内容が反映された場合、カテゴリテーブル１３３の内容は、図１３に示した、“＿ロボット名＿”のカテゴリに単語が登録されていない状態から、図２７の可変単語辞書１３２に登録されたカテゴリ“＿ロボット名＿”に属する単語のシンボル「ＯＯＶ００００１」がエントリされた状態となる。
【０１５９】
次に、図２９のフローチャートを参照して、図２１のステップＳ４８で共通辞書部５５の共通辞書に登録された単語を、マッチング部５４が、削除または変更する処理を説明する。共通辞書の単語を削除または変更する処理は、例えば、名前登録アプリケーション部２１から指令があった場合や、メモリの制約のために登録単語の不要になったものを削除する必要がある場合など開始される。
【０１６０】
また、共通辞書の単語を削除または変更する処理は、その他、例えば、未知語獲得部５６においてクラスタが削除され、あるいはクラスタが分割、併合されることによって、クラスタに付されるＩＤが変更され、未知語獲得部５６のクラスタに付されているＩＤと共通辞書に記述されているＩＤ（図２４で説明したクラスタＩＤ）との整合をとる必要がある場合に、共通辞書に記述されたＩＤを書き替えるために行われる。
【０１６１】
さらに、共通辞書を削除または変更する処理は、あるカテゴリを言語モデル１１２に記述されているタスク全てが以後使用しなくなった場合に、そのカテゴリの情報を共通辞書から削除して、共通辞書のスリム化を図るために行われる。
【０１６２】
なお、未知語獲得部５６においてクラスタの代表音韻系列とカナ列とが変更された場合は、その変更内容は、図２５の反映処理で、共通辞書に反映されるため、単語の削除または変更する処理（以下、適宜、変更削除する処理という）を行なう必要はない。
【０１６３】
ステップＳ１０１において、マッチング部５４は、変更削除処理の対象となる単語を共通辞書の中から決定し、ステップＳ１０２に進む。対象となる単語は、ユーザが不図示のボタンによって決定してもよいし、マッチング部５４が推定して決定してもよい。
【０１６４】
ステップＳ１０２において、マッチング部５４は、変更削除処理の対象となる単語を削除するか否かを判定し、削除すると判定した場合、ステップＳ１０３に進む。ステップＳ１０３において、マッチング部５４は、変更削除処理の対象となる単語のエントリを、共通辞書から削除する。削除とは、カテゴリと発音情報とで特定されるエントリを削除すること、特定のカテゴリのエントリをまとめて削除すること、または特定の発音情報（カナ列またはクラスタＩＤ）を有するエントリをまとめて削除することを意味する。
【０１６５】
一方、ステップＳ１０２において、マッチング部５４は、変更削除処理の対象となる単語を削除しないと判定した場合、ステップＳ１０４に進み、単語を変更するか否かを判定し、単語を変更しないと判定した場合、ステップＳ１０２に戻り、変更または削除のどちらかに判定されるまで待機する。
【０１６６】
また、ステップＳ１０４において、マッチング部５４は、変更削除処理の対象とする単語を変更すると判定した場合、ステップＳ１０５に進み、共通辞書において、変更削除処理の対象となる単語のエントリを変更する。
【０１６７】
例えば、マッチング部５４は、未知語獲得部５６のクラスタに分割または併合が発生してクラスタのＩＤ番号に変化が生じた場合、未知語獲得部５６と整合をとるように、共通辞書のクラスタＩＤを変更する。また、例えば、ユーザが登録時に入力したカナ列を後で修正したくなった場合、マッチング部５４は、名前登録用アプリケーション部２１１の指令により、共通辞書の対象となる単語（図２１のステップＳ４８で共通辞書にエントリされた単語）のカナ発音を、ユーザが、共通辞書の対象となる単語を決定した後入力したカナ列に変更する。
【０１６８】
ステップＳ１０３の処理、またはステップＳ１０５の処理の後は、ステップＳ１０６に進み、マッチング部５４は、図２５の反映処理を行ない、共通辞書の内容を各タスクに反映させる。
【０１６９】
このように、共通辞書の単語を削除または変更した場合、その変更後の内容を各タスクに反映させるので、各アプリケーション部での登録単語の整合性を保つことができる。
【０１７０】
図３０と図３１は、図２９のステップＳ１０５の処理で、マッチング部５４が共通辞書の単語のエントリを変更する例を示している。例えば、未知語獲得部５６のＩＤが「５」のクラスタが、ＩＤが「８」のクラスタとＩＤが「９」のクラスタに分割された場合、マッチング部５４は、共通辞書を図３０Ａに示すような状態から図３０Ｂに示すような状態に変更する。
【０１７１】
即ち、マッチング部５４は、共通辞書部５５のクラスタＩＤが「５」のエントリ（図３０Ａの第１行目のエントリ）を削除し、その削除したエントリに登録されていた“＿ユーザ名＿”のカテゴリの２つのエントリを登録する。さらに、マッチング部５４は、新たな２つのエントリに、クラスタＩＤ番号「８」と「９」をそれぞれ記述する（図３０Ｂの第１行目と第２行目のエントリ）。
【０１７２】
また、例えば、未知語獲得部５６のクラスタＩＤが「５」のクラスタとＩＤが「３」のクラスタが併合されて、ＩＤが「１０」のクラスタが新たに生成された場合、マッチング部５４は、共通辞書を図３１Ａに示すような状態から図３１Ｂに示すような状態に変更する。
【０１７３】
即ち、マッチング部５４は、共通辞書のクラスタＩＤが「５」と「３」のエントリ（図３１Ａの全てのエントリ）のクラスタＩＤを「１０」に変更し、その結果、重複する“＿ユーザ名＿”というカテゴリとそれに対応するクラスタＩＤ番号「１０」の２つのエントリを１つにする（例えば、一方を削除する）（図３１Ｂ）。
【０１７４】
次に、図５のステップＳ１２の雑談処理を、図３２のフローチャートを参照して詳細に説明する。
【０１７５】
ステップＳ１２１において、雑談用アプリケーション部２１２は、雑談用タスク７１４を有効にし、ステップＳ１２２に進む。ステップＳ１２２において、雑談用アプリケーション部２１２は、マッチング部５４を制御して、図２５に示すような反映処理を行ない、共通辞書部５５の共通辞書の内容を、雑談用タスク７１４（可変単語辞書１３２とカテゴリテーブル１３３）に反映させる。したがって、雑談用タスク７１４は、無効である間に共通辞書に登録、変更、および削除された単語を獲得することができる。
【０１７６】
ステップＳ１２２の処理後は、ステップＳ１２３に進み、雑談用アプリケーション部２１２は、音声認識エンジン部１１を制御して音声認識処理を行い、ステップＳ１２４に進む。この音声認識処理の詳細は、図３５で後述する。
【０１７７】
ステップＳ１２４において、雑談用アプリケーション部２１２は、音声認識エンジン部１１から認識結果を取得し、その認識結果に対する応答を生成する。即ち、ロボットは、ユーザからの発話に対して応答する。例えば、ユーザからの発話が「エスディーアール（ロボット名）は、何時に起きたの？」である場合、雑談用アプリケーション部２１２は、ロボットが起きた（起動された）時間（例えば、「７時」）の応答を生成し、ロボットに発話させる。
【０１７８】
ステップＳ１２４の処理後は、ステップＳ１２５に進み、雑談用アプリケーション部２１２は、処理を終了するか否かを判定する。この判定は、例えば、雑談用アプリケーション部２１２が、ユーザに向かって「終了する？」という発話をさせ、ユーザが不図示のＯＫボタンを操作（押圧）した（押圧した）か否かによって行う。
【０１７９】
ステップＳ１２５において、処理を終了しないと判定された場合、処理はステップＳ１２３に戻り、以下同様の処理を繰り返す。即ち、ロボットはユーザとの雑談を続行する。
【０１８０】
ステップＳ１２５において、処理を終了すると判定された場合、処理はステップＳ１２６に進み、雑談用アプリケーション部２１２は、雑談用タスク７１４を無効にし、ステップＳ１２７に進む。ステップＳ１２７において、雑談用アプリケーション部２１２は処理を終了する。
【０１８１】
上述の処理では、ユーザが１回発話する毎に雑談用アプリケーション部２１２が応答を生成したが、ロボットが自発的に発話することで、ユーザの発話を促してもよい。
【０１８２】
また、図３２の処理では、雑談用アプリケーション部２１２の雑談処理について説明したが、音声コマンダ用アプリケーション部２１３の音声コマンダ処理、・・・・、その他のアプリケーション部２１Ｍの処理も同様に行われる。但し、ステップＳ１２４では、アプリケーション部２１に応じて、音声認識エンジン部１１による音声認識結果に基づく処理が行なわれる。
【０１８３】
図３３は、図３２のステップＳ１２２の処理で、図２４に示す共通辞書部５５の共通辞書の内容が、雑談用タスク７１４の可変単語辞書１３２に反映された状態を示している。
【０１８４】
雑談用タスク７１４のカテゴリテーブル１３３が図１８に示すような場合、図２４の共通辞書と共通しているカテゴリは、“＿ロボット名＿”と“＿地名＿”であるので、マッチング部５４は、“＿ロボット名＿”に対応する共通辞書エントリとして図２４の１番目のエントリ、“＿地名＿”に対応するエントリとして図２４の４番目と５番目のエントリを取得する。さらに、１番目のエントリからはカナ発音「エスディーアール」を、４番目のエントリからはカナ発音「キタシナガワ」を、５番目のエントリからはクラスタＩＤ番号「３」をそれぞれ取得する。
【０１８５】
そして、マッチング部５４は、図３３に示すように、可変単語辞書１３２のトランスクリプションに「エスディーアール」と「キタシナガワ」をエントリする。さらに、マッチング部５４は、可変単語辞書１３２の音韻系列に、カナ音韻変換規則１１５（図８）に基づき、トランスクリプション「エスディーアール」に対応して“ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ”、トランスクリプション「キタシナガワ」に対応して“ｋ／ｉ／ｔ／ａ／ｓｈ／ｉ／ｎ／ａ／ｇ／ａ／ｗ／ａ”を記述する。
【０１８６】
また、マッチング部５４は、未知語獲得部５６からクラスタＩＤが「３」のクラスタを抽出し、その代表的な音韻系列と、カナ列を取得する。例えば、未知語獲得部５６が図２３に示すような状態の場合、マッチング部５４は、クラスタＩＤが「３」のクラスタ１５３から、“ｔ／ｏ：／ｋｙ／ｏ：”という音韻系列と「トーキョー」というカナ列を取得する。そして、マッチング部は、図３３に示すように、取得した音韻系列“ｔ／ｏ：／ｋｙ／ｏ：”とカナ列「トーキョー」を、可変単語辞書１３２の音韻系列とトランスクリプションにそれぞれエントリする。
【０１８７】
さらに、マッチング部５４は、トランスクリプション「エスディーアール」で表される単語のシンボルとして、「ＯＯＶ００００１」を、トランスクリプション「キタシナガワ」で表される単語のシンボルとして、「ＯＯＶ００００２」を、トランスクリプション「トーキョー」で表される単語のシンボルとして、「ＯＯＶ００００３」を登録する。
【０１８８】
なお、いまの場合、音韻タイプライタ用タスク７１１と雑談用タスク７１４のカナ音韻系列規則１１５が同じであるとして、音韻タイプライタ用タスク７１１を用いて得られるクラスタの代表的な音韻系列を、そのまま、雑談用タスク７１４の可変単語辞書１３２に登録するようにしたが、カナ音韻系列規則１１５が、音韻タイプライタ用タスク７１１と雑談用タスク７１４のカナ音韻系列規則１１５が異なる場合は、マッチング部５４は、未知語獲得部５６からクラスタの代表的なカナ列を取得し、雑談用タスク７１４のカナ音韻系列規則１１５に基づいて、その可変単語辞書１３２の音韻系列を記述する。
【０１８９】
図３４は、図２４の共通辞書の内容が、図１８の雑談用タスク７１４のカテゴリテーブル１３３に反映された状態を示している。カテゴリテーブル１３３においては、“＿ロボット名＿”のカテゴリに対し、そのカテゴリ“＿ロボット名＿”に属する単語（トランスクリプションが「エスディーアール」の単語（図３３））について可変単語辞書１３２のシンボル「ＯＯＶ００００１」がエントリされる。さらに、カテゴリテーブル１３３の“＿地名＿”のカテゴリに対し、そのカテゴリ“＿地名＿”に属する単語（トランスクリプション「キタシナガワ」と「トーキョー」の単語（図３３））について可変単語辞書１３２に登録されたシンボル「ＯＯＶ００００２」、「ＯＯＶ００００３」がエントリされる。
【０１９０】
次に、図３２のステップＳ１２３の処理で、図２の音声認識エンジン部１１が行う音声認識処理を、図３５のフローチャートを参照して詳細に説明する。この処理は、ユーザからマイクロホン５１に音声が入力されたとき、開始され、アプリケーション切替用タスク７１２、雑談用タスク７１４、音声コマンダ用タスク７１５、・・・、その他のタスク７１Ｎのうち、有効になっているタスク毎に行われる。
【０１９１】
マイクロホン５１で生成された音声信号は、ステップＳ１４１において、ＡＤ変換部５２により、ディジタル信号である音声データに変換され、特徴量抽出部５３に供給される。ステップＳ１４１の処理後は、ステップＳ１４２に進み、特徴量抽出部５３は、供給された音声信号から、メルケプストラム等の特徴量を抽出し、ステップＳ１４３に進む。
【０１９２】
ステップＳ１４３において、マッチング部５４は、固定単語辞書１３１と可変単語辞書１３２のシンボルで表される単語のいくつかを連結して、単語列を生成し、音響スコアを計算する。音響スコアは、音声認識結果の候補である単語列と入力音声とが音として（音響的に）どれだけ近いかを表す。
【０１９３】
ステップＳ１４３の処理後は、ステップＳ１４４に進み、マッチング部５４は、ステップＳ１４３で計算された音響スコアに基づいて、音響スコアの高い単語列を所定の個数選択し、ステップＳ１４５に進む。
【０１９４】
ステップＳ１４５において、マッチング部５４は、ステップＳ１４４で選択した各単語列の言語スコアを、言語モデル１１２を用いて計算し、ステップＳ１４６に進む。例えば、言語モデル１１２として、文法や有限状態オートマンを使用している場合、単語列がその言語モデル１１２で受理することができるとき、言語スコアは「１」であり、受理することができないとき、言語スコアは「０」である。
【０１９５】
なお、マッチング部５４は、受理することができるとき、ステップＳ１４４で選択した単語列を残し、受理することができないとき、ステップＳ１４４で選択した単語列を削除してもよい。
【０１９６】
また、言語モデル１１２として、統計言語モデルを使用している場合、その単語列の生成確率を言語スコアとする。この言語スコアを求める方法の詳細は、本出願人が先に提案した特願２００１−３８２５７９号に開示されている。
【０１９７】
例えば、音声コマンダ用アプリケーション部２１３の音声コマンダ処理において音声認識処理を行う場合、マッチング部５４がステップＳ１４４の処理で「＜先頭＞ＯＯＶ００００１  前  に  進め＜終端＞」という単語列を選択したとき、その言語スコアは、単語列「＜先頭＞ＯＯＶ００００１  前  に  進め＜終端＞」が、図１９に示す文法の言語モデル１１２で受理することができるので「１」となる。
【０１９８】
即ち、マッチング部５４は、カテゴリテーブル１３３（図２８）を参照して、シンボル“ＯＯＶ００００１”のカテゴリが“＿ロボット名＿”であることを認識し、ステップＳ１４４で得られた単語列「＜先頭＞ＯＯＶ００００１  前  に  進め＜終端＞」を、カテゴリ名を使用した単語列「＜先頭＞＿ロボット名＿  前  に  進め＜終端＞」に変換して、図１９に示す言語モデル１１２で受理することができると判定する。
【０１９９】
一方、例えば、ステップＳ１４４で単語列「＜先頭＞ＯＯＶ００００１  に  進め  前＜終端＞」が選択された場合、マッチング部５４は、カテゴリテーブル１３３（図２８）を参照して、シンボル“ＯＯＶ００００１”のカテゴリが“＿ロボット名＿”であることを認識し、ステップＳ１４４で得られた単語列「＜先頭＞ＯＯＶ００００１  に進め  前＜終端＞」を、カテゴリ名を使用した単語列「＜先頭＞＿ロボット名＿  に  進め  前＜終端＞」に変換して、図１９に示す言語モデル１１２で受理することができないと判定し、この単語列の言語スコアを「０」とする。
【０２００】
ステップＳ１４６において、マッチング部５４は、ステップＳ１４３で計算された音響スコアと、ステップＳ１４５で計算された言語スコアを統合して、各単語列をソートし、例えば、統合したスコアの一番大きい単語列を認識結果として決定する。
【０２０１】
これにより、音響的にも言語的にも最もふさわしい単語列が認識結果として決定される。
【０２０２】
ステップＳ１４６の処理後は、ステップＳ１４７に進み、マッチング部５４は、認識結果に音声で登録された単語（未知語獲得部５６にクラスタリングされている単語）が含まれているか否かを判定する。
【０２０３】
ステップＳ１４７において、音声で登録された単語が認識結果に含まれていると判定された場合、ステップＳ１４８に進み、マッチング部５４は、未知語獲得部５６にその単語を供給し、未知語獲得部５６は、再クラスタリングを行う。そして、処理はステップＳ１４９に進む。
【０２０４】
例えば、ステップＳ１４４で、地名（未知語）の「トーキョー」を含む単語列「＜先端＞今日はトーキョーに行ったんだよ＜終端＞」が得られた場合、マッチング部５４は、未知語である「トーキョー」の音声データ、音韻タイプライタ用タスク７１１を参照して認識された音韻系列（例えば、“ｔ／ｏ：／ｋｙ／ｏ：”）およびカナ列（例えば、「トーキョー」）を未知語獲得部５６に供給する。そして、未知語獲得部５６は、再クラスタリングを行う。
【０２０５】
これにより、未知語獲得部５６に供給される音声データの量が増え、各クラスタの代表音韻系列と代表カナ列が、正しい値に更新される可能性がある。ただし、副作用として、正しい音韻カナ系列・カナ列が取得された後も、再クラスタリングによって正しくない値に変化してしまう可能性がある。そのような副作用を防ぐため、ユーザからの指示があった場合は、その時点でのカナ列を共通辞書のエントリに記述すれば、発音を固定することができる。例えば、図２３において、ＩＤ＝３のクラスタのカナ列が「トーキョー」という発音になった時点で、図２４の共通辞書において「クラスタＩＤ＝３」と記述されている箇所を「カナ発音：トーキョー」に書き換える（５番目のエントリがその書き換えの対象となる）。こうすることで、以降でＩＤ＝３のクラスタのカナ列が「トーキョー」以外に変化しても、共通辞書の５番目のエントリの発音は「トーキョー」で固定される。
【０２０６】
一方、ステップＳ１４７において、マッチング部５４は、音声認識結果に音声で登録された単語が含まれていないと判定した場合、ステップＳ１４８をスキップして、ステップＳ１４９に進む。
【０２０７】
ステップＳ１４９において、マッチング部５４は、タスクに対応するアプリケーション部２１に、ステップＳ１４６の処理で決定された認識結果を供給する。
【０２０８】
ここで、雑談用アプリケーション部２１２の雑談処理において、マッチング部５４が、図３５のステップＳ１４４で、例えば、単語列「＜先頭＞ＯＯＶ００００１  は何時  に  起きた  の＜終端＞」を選択した場合の言語スコアを求める式を図３６に示す。
【０２０９】
言語スコア「Ｓｃｏｒｅ（＜先頭＞ＯＯＶ００００１  は  何時  に  起きた  の＜終端＞）」は、式（１）に示すように、単語列「＜先頭＞ＯＯＶ００００１  は  何時  に  起きた  の＜終端＞」の生成確率である。
【０２１０】
言語スコア「Ｓｃｏｒｅ（＜先頭＞ＯＯＶ００００１  は  何時  に  起きた  の＜終端＞）」の値は、正確には、式（２）に示すように、「Ｐ（＜先頭＞）Ｐ（ＯＯＶ００００１｜＜先頭＞）Ｐ（は｜＜先頭＞ＯＯＶ００００１）Ｐ（何時｜＜先頭＞ＯＯＶ００００１  は）Ｐ（に｜＜先頭＞ＯＯＶ００００１  は  何時）Ｐ（起きた｜＜先頭＞ＯＯＶ００００１  は  何時  に）Ｐ（の｜＜先頭＞ＯＯＶ００００１  は  何時  に  起きた）Ｐ（＜終端＞｜＜先頭＞ＯＯＶ００００１  は  何時  に  起きた  の）で求められるが、図１６に示すように、言語モデル１１２は、ｔｒｉ−ｇｒａｍを用いているので、条件部分「＜先頭＞ＯＯＶ００００１  は」、「＜先頭＞ＯＯＶ００００１  は  何時」、「＜先頭＞ＯＯＶ００００１  は  何時  に」、「＜先頭＞ＯＯＶ００００１  は  何時  に  起きた」、および「＜先頭＞ＯＯＶ００００１  は  何時  に  起きた  の」は、直前の最大２単語「ＯＯＶ００００１  は」、「は  何時」、「何時  に」、「に  起きた」、および「起きた  の」にそれぞれ限定した条件付確率で近似する（式（３））。
【０２１１】
この条件付確率は、言語モデル１１２（図１６）を参照することによって求められるが、言語モデル１１２は、シンボル「ＯＯＶ００００１」を含んでいないので、マッチング部５４は、図３４のカテゴリテーブル１３３を参照して、シンボル「ＯＯＶ００００１」で表される単語のカテゴリが、“＿ロボット名＿”であることを認識し、「ＯＯＶ００００１」を“＿ロボット名＿”に変換する。
【０２１２】
即ち、式（４）に示すように、「Ｐ（ＯＯＶ００００１｜＜先頭＞）」は、「Ｐ（＿ロボット名＿｜＜先頭＞）Ｐ（ＯＯＶ００００１｜＿ロボット名）」に変更され、「Ｐ（＿ロボット名＿｜＜先頭＞）」／Ｎ」で近似される。なお、Ｎは、カテゴリテーブル１３３の“＿ロボット名＿”のカテゴリに属している単語の数を表す。
【０２１３】
即ち、確率をＰ（Ｘ｜Ｙ）という形式で記述した場合、単語ＸがカテゴリＣに属する単語である場合、言語モデル１１２からＰ（Ｃ｜Ｙ）を求め、その値に、Ｐ（Ｘ｜Ｃ）（カテゴリＣから単語Ｘが生成される確率）を掛ける。カテゴリＣに属する単語が全て等確率で生成されると仮定すれば、カテゴリＣに属する単語がＮ個ある場合、Ｐ（Ｘ｜Ｃ）は、１／Ｎと近似できる。
【０２１４】
図３４において、カテゴリ“＿ロボット名＿”には、シンボル「ＯＯＶ００００１」で表される単語のみが属しているので、Ｎ」は「１」となる。したがって、式（５）に示すように、「Ｐ（は｜＜先頭＞ＯＯＶ００００１）」は、「Ｐ（は｜＜先頭＞＿ロボット名＿）」となる。また、「Ｐ（何時｜ＯＯＶ００００１  は）」は、式（６）に示すように、「Ｐ（何時｜＿ロボット名＿  は）となる。
【０２１５】
これにより、可変単語を含む単語列に対しても、言語スコアを計算することができ、可変単語を認識結果に出現させることが可能となる。
【０２１６】
上述の例では、アプリケーション部２１の起動とタスク７１の有効、アプリケーション部２１の終了とタスク７１の無効が連動するようにしたが、これを別のタイミングに行って、例えば、アプリケーション部２１の起動中にタスクの有効や無効を何度も切り替えたり、１つのアプリケーションで複数のタスクを制御したりすることも可能である。
【０２１７】
この場合、有効や無効の切替を頻繁に繰り返すタスクでは、そのたびにメモリの確保や開放を繰り返すと、効率が悪いので、無効後もフラグ（そのタスクが無効であることを表すフラグ）を立てるだけで、メモリを確保したままにしておくこともできる。
【０２１８】
また、上述の例では、ロボットシステムの起動時に共通辞書部５５の共通辞書には何も記億されていない状態であるとしたが、共通辞書に、いくつかの単語が予め記憶されていてもよい。例えば、ロボットの商品名は、そのロボットの名前に登録されることが多いので、ロボットの商品名を予め共通辞書の“＿ロボット名＿”のカテゴリに登録しておいてもよい。
【０２１９】
図３７は、ロボットシステムの起動時に、ロボットの商品名「エスディーアール」がカテゴリ“＿ロボット名＿”にエントリされている場合の共通辞書の例を示している。図３７において、ロボットシステムの起動時には、カテゴリ“＿ロボット名＿”に、カナ発音「エスディーアール」がエントリされているので、ユーザは、名前登録を行わなくても、カナ発音「エスディーアール」で表される単語を用いて、ロボットを制御することができる。
【０２２０】
また、上述の例では、初期段階（出荷時）には未知語獲得部のクラスタは何も生成されていないことを想定していた。しかし、主要な名称についてはクラスタを最初から用意しておくと、図２１の名前登録処理において名前を音声で入力する場合に、クラスタが用意されている名前については認識されやすくなる。例えば、図３のようなクラスタを出荷時に用意しておくと、「アカ」、「アオ」、「ミドリ」、「クロ」という音声については発音を正しい音韻系列で認識（取得）できる。さらに、クラスタが用意されている名前については、共通辞書に登録した後で発音が変化することは望ましくない。そこで、共通辞書に発音情報を登録する際には、クラスタＩＤを記述する代わりに、「アカ」、「アオ」、「ミドリ」、「クロ」といったカナ発音（クラスタの代表カナ列）で記述する。
【０２２１】
さらに、上述の例では、マッチング部５４は、共通辞書の内容を全てのタスクに反映させるとしたが、反映させたいタスクにのみ反映させてもよい。例えば、予めタスクに番号（タスクＩＤ）を付加しておき、図２４の共通辞書を拡張して、「このエントリが有効（または無効）なタスクのリスト」を表す欄を設け、図２５の反映処理において、マッチング部５４は、「このエントリが有効なタスクのリスト」を表す欄に記述されたタスクＩＤが付加されたタスクにのみ、共通辞書の内容を反映させればよい。
【０２２２】
図３８は、反映させたいタスクのＩＤが、共通辞書の「有効なタスク」を表す欄に記述された例を示している。図３８において、カテゴリ“＿ロボット名＿”に属するカナ発音が「エスディーアール」で表される単語は、有効なタスクのＩＤが「１」、「２」、「４」であるので、タスクＩＤが「１」、「２」、「４」のタスクの可変単語辞書１３２とカテゴリテーブル１３３にのみ、カナ発音「エスディーアール」で表される単語の共通辞書の内容が反映される。
【０２２３】
また、上述の例では、固定単語辞書１３１に記憶されている単語は、言語モデル１１２に記述されている単語であり、可変単語辞書１３２に記憶される単語は、カテゴリに属する単語であるとしたが、カテゴリに属する単語の一部を、固定単語辞書１３１に記憶してもよい。
【０２２４】
図３９は、アプリケーション切替用タスク７１２の固定単語辞書１３１の例を示し、図４０は、起動時のカテゴリテーブル１３３の例を示している。即ち、図４０のカテゴリテーブル１３３には、カテゴリ“＿ロボット名＿”と、そのカテゴリ“＿ロボット名＿”に属する単語のシンボル「ＯＯＶ００００１」が予め登録されている。また、図４０の固定単語辞書１３１には、シンボル「ＯＯＶ００００１」と、そのシンボル「ＯＯＶ００００１」で表される単語のトランスクリプション「エスディーアール」、および音韻系列“ｅ／ｓ／ｕ／ｄ／ｉ：／ａ：／ｒ／ｕ”が予め登録されている。
【０２２５】
この場合、単語「エスディーアール」は、カテゴリ“＿ロボット名＿”に属するものとして音声認識処理が行われる。即ち、単語「エスディーアール」は、最初からロボットの名前として扱われることになる。但し、単語「エスディーアール」は固定単語辞書１３１に記憶されているため、削除したり、変更することはできない。
【０２２６】
このように、例えば、ロボットの商品名等、        名前に設定されると想定される単語を予め固定単語辞書１３１に記憶しておくことによって、ユーザは名前登録を行わずに、ロボットを制御することができる。
【０２２７】
また、上述の例では、カテゴリのシンボルは全タスクで共通にしていたが、共通でなくてもよい。この場合、図４１乃至図４４に示すような変換テーブルをタスク内に用意すればよい。
【０２２８】
即ち、例えば、あるタスクＴで、カテゴリ“＿ＲＯＢＯＴ＿ＮＡＭＥ＿”とカテゴリ“＿ＵＳＥＲ＿ＮＡＭＥ＿”が記述されている場合、図４１の変換テーブルによれば、タスクＴにおいて、共通辞書部５５でカテゴリ“＿ロボット名＿”に属する単語の共通辞書の内容は、“＿ＲＯＢＯＴ＿ＮＡＭＥ＿”というカテゴリに反映される。また、タスクＴにおいて、カテゴリ“＿ユーザ名＿”に属する単語の共通辞書の内容は、“＿ＵＳＥＲ＿ＮＡＭＥ＿”というカテゴリに反映される。
【０２２９】
また、例えば、あるタスクＴで、カテゴリ“＿固有名詞＿”が記述されている場合、図４２の変換テーブルによれば、タスクＴにおいて、共通辞書部５５で、カテゴリ“＿ロボット名＿”に属する単語の共通辞書の内容も、カテゴリ“＿ユーザ名＿”に属する単語の共通辞書の内容も、“＿固有名詞＿”というカテゴリに反映される。
【０２３０】
さらに、例えば、あるタスクＴで、カテゴリ“＿姓＿”とカテゴリ“＿名＿”が記述されている場合、図４３の変換テーブルによれば、タスクＴにおいて、共通辞書部５５で、カテゴリ“＿ユーザ名＿”に属する単語の共通辞書の内容は、カテゴリ“＿姓＿”とカテゴリ“＿名＿”とに変換・複製される。共通辞書の内容をこのタスクに反映させるステップ（図２５）において、例えば、図２４の２番目のエントリは、変換テーブルにしたがって「＿ユーザ名＿  クラスタＩＤ＝５」から「＿姓＿  クラスタＩＤ＝５」と「＿名＿  クラスタＩＤ＝５」との２エントリに変換・複製され、それからこのタスクの固定単語辞書とカテゴリテーブルとに反映される。
【０２３１】
また、例えば、あるタスクＴで、カテゴリが記述されていない場合、図４４の変換テーブルによれば、タスクＴにおいて、共通辞書部５５のカテゴリ“＿ロボット名＿”、カテゴリ“＿ユーザ名＿”、カテゴリ“＿地名＿”に属する単語が、シンボル「ＵＮＫ」で表される。なお、「ＵＮＫ」は、「Ｕｎｋｎｏｗｎ  ｗｏｒｄ」を意味する。
【０２３２】
これにより、カテゴリが記述されていないタスクにおいても、言語モデル１１２に、シンボル「ＵＮＫ」を記述しておくだけで、マッチング部５４は、カテゴリ“＿ロボット名＿”、カテゴリ“＿ユーザ名＿”、カテゴリ“＿地名＿”に属する単語を認識することができる。
【０２３３】
図４５は、本発明を適用したロボット制御システム１を備えた２足歩行型のロボットの外観構成例を示している。ロボット２０１は、胴体部ユニット２１３の上部に頭部ユニット２１１が配設されるとともに、胴体部ユニット２１３の上部左右にそれぞれ同じ構成の腕部ユニット２１２Ａ、２１２Ｂがそれぞれ配設され、かつ胴体部ユニット２１３の下部左右にそれぞれ同じ構成の脚部ユニット２１４Ａ、２１４Ｂがそれぞれ所定位置に取り付けられことにより構成されている。
【０２３４】
また、頭部ユニット２１１には、このロボット２０１の「目」として機能するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）カメラ２２１Ａ，２２１Ｂ、「耳」として機能するマイクロホン２２２Ａ，２２２Ｂ、および「口」として機能するスピーカ２２３がそれぞれ所定位置に配置されている。
【０２３５】
図４６は、ロボットの電気的構成例を示している。ロボット制御システム１の指令により、ユニット制御システム２３１および対話制御システム２３２は、ロボット２０１の動作を制御する。即ち、ユニット制御システム２３１は、ロボット２０１の頭部ユニット２１１、腕部ユニット２１２Ａ，２１２Ｂ、および脚部ユニット２１４Ａ，２１４Ｂのそれぞれを必要に応じて制御し、ロボット２０１に所定の動作をさせる。また、対話制御システム２３２は、ロボット２０１の発話を制御し、必要に応じて、スピーカ２２３から、所定の発話をさせる。
【０２３６】
なお、上述の説明において、単語とは、音声を認識する処理において、１つのまとまりとして扱った方がよい単位のことであり、言語学的な単語とは必ずしも一致しない。例えば、「タロウ君」は、それ全体を１単語として扱ってもよいし、「タロウ」、「君」という２単語として扱ってもよい。さらに、もっと大きな単位である「こんにちはタロウ君」等を１単語として扱ってもよい。
【０２３７】
また、音韻とは、音響的に１つの単位として扱った方が処理上都合のよいもののことであり、音声学的な音韻や音素とは必ずしも一致しない。例えば、「東京」の「とう」の部分を“ｔ／ｏ／ｕ”という３個の音韻記号で表すことも可能であり、または“ｏ”の長音である“ｏ：”という記号を用意してもよい。さらに、“ｔ／ｏ／ｏ”と表してもよい。他にも、無音を表す記号を用意したり、さらにそれを「発話前の無音」「発話に挟まれた短い無音区間」「「っ」」の部分の無音」のように細かく分類してもよい。
【０２３８】
また、以上においては、ロボット装置について説明したが、本発明は、音声認識や音声合成、翻訳、その他の言語処理を利用したアプリケーションを有する装置に適用することができる。
【０２３９】
さらに、本発明は、例えば、広辞苑に登録された辞書の中から、所定の用語だけを抜き出して、その用語辞書をつくる装置に適用することができる。
【０２４０】
また、上述の説明において、アプリケーション部が複数ある場合について説明したが、アプリケーション部は１つでもよい。
【０２４１】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、上述した処理は、図４７に示されるようなパーソナルコンピュータ６００により実行される。
【０２４２】
図４７において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６０２に記憶されているプログラム、または、記憶部６０８からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ６０３にはまた、ＣＰＵ６０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０２４３】
ＣＰＵ６０１、ＲＯＭ６０２、およびＲＡＭ６０３は、内部バス６０４を介して相互に接続されている。この内部バス６０４にはまた、入出力インターフェース６０５も接続されている。
【０２４４】
入出力インターフェース６０５には、キーボード、マウスなどよりなる入力部６０６、ＣＲＴ，ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部６０７、ハードディスクなどより構成される記憶部６０８、モデム、ターミナルアダプタなどより構成される通信部６０９が接続されている。通信部６０９は、電話回線やＣＡＴＶを含む各種のネットワークを介しての通信処理を行なう。
【０２４５】
入出力インターフェース６０５にはまた、必要に応じてドライブ６１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア６２１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部６０８にインストールされる。
【０２４６】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０２４７】
この記録媒体は、図４７に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア６２１よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ６０２や記憶部６０８が含まれるハードディスクなどで構成される。
【０２４８】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２４９】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表わすものである。
【０２５０】
ところで、本出願人が先に提案した特願２００１−３８２５７９号には、未知語獲得機構で獲得した単語を言語モデルに反映させるまでの一連の処理と、言語モデルに反映させた単語を以降の認識結果に出現させるための処理についての発明が開示されている。
【０２５１】
しかしながら、特願２００１−３８２５７９号の発明は、１つの単語登録用のアプリケーションと、１つの登録した単語を使用するアプリケーションから構成されており、音声認識を行うアプリケーションが複数になった場合については想定していないため、アプリケーションが複数、しかも可変個存在するシステムにおいて、登録した単語をそのアプリケーションに反映させるときの上述した課題、および複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題を解決することが困難であった。
【０２５２】
また、本出願人が先に提案した特願２００２−０７２７１８号には、「私の名前はタロウ（未知語）です。」という発話から、未知語である「タロウ」という単語を抽出して、名前として獲得するという発明が開示されている。
【０２５３】
しかしながら、特願２００２−０７２７１８号の発明は、未知語を言語モデルに反映させるという上述した課題、登録した単語をそのアプリケーションに反映させるときの上述した課題、および複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題を解決することが困難であった。
【０２５４】
したがって、特願２００１−３８２５７９号の発明、および特願２００２−０７２７１８号の発明では、未知語を言語モデルに反映させるという上述した課題、登録した単語をそのアプリケーションに反映させるときの上述した課題、および複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題すべてを解決することが困難であった。
【０２５５】
しかしながら、図１のロボット制御システム１においては、言語モデル１１２にカテゴリを記述しているため、未知語をカテゴリに属させることによって、未知語を言語モデルに反映させるという上述した課題を解決することができる。
【０２５６】
また、図１のロボット制御システム１においては、共通辞書に基づき、アプリケーションで利用される音声認識の対象となる単語が登録される可変単語辞書１３２を構築、または再構築するようにしたので、登録した単語をそのアプリケーションに反映させるときの上述した課題、複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題を解決することができる。
【０２５７】
さらに、キーボードを持たないシステム（例えば、ロボット等）の場合、単語登録時に、発音情報を入力することが困難であるという課題があるが、その課題を解決する手段として、例えば、音韻タイプライタを用いて、音声で発音情報を入力する方法が提案されている。
【０２５８】
しかしながら、音韻タイプライタは、誤認識することがあり、音韻タイプライタをそのまま使用すると、間違った発音で単語を登録してしまうおそれがあるという課題があった。例えば、「エスディーアール」の発音を音韻タイプライタで認識させ、音韻タイプライタが誤認識して「イルニヤル」という結果を出力した場合、「イルニヤル」を発音情報として採用してしまうと、間違った発音で単語が登録されるため、以降は、例えば、「エスディーアール、こんにちは」という発話は認識されにくいが、「イスニヤル、こんにちは」という発話は認識されやすいという状況が発生してしまう。
【０２５９】
そこで、図１のロボット制御システム１においては、音声で登録した単語について、各タスクに反映させるたびに、そのときの最新の発音情報を未知語獲得部５６から取得するので、音韻タイプライタが誤認識し、誤認識された単語が可変単語辞書１３２に登録した後も、未知語獲得部５６に音声データを供給するだけで発音情報が更新され、そのときの最新の発音情報を得ることができ、正常な認識結果を得る可能性がある。
【０２６０】
即ち、図１のロボット制御システム１においては、未知語を言語モデルに反映させるという上述した課題、登録した単語をそのアプリケーションに反映させるときの上述した課題、複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題、およびキーボードを持たないシステムにおいて、登録したい単語の発音情報を入力するときの上述した課題、すなわち上述した全ての課題を解決することができる。
【０２６１】
【発明の効果】
以上の如く、本願発明によれば、単語を登録することができる。特に、複数のアプリケーションに対応する単語を登録する場合においても、登録した単語を、各アプリケーションにおいて共通に使用することができる。また、アプリケーションの起動前に登録した単語も、そのアプリケーションで使用することができる。さらに、登録単語を変更した場合においても、各アプリケーションで整合性を保つことができる。
【図面の簡単な説明】
【図１】本発明を適用したロボット制御システムの構成例を示すブロック図である。
【図２】図１の音声認識エンジン部の構成例を示すブロック図である。
【図３】図２の未知語獲得部のクラスタの例を示す図である。
【図４】図１のロボット制御システムにおけるロボット制御処理を説明するフローチャートである。
【図５】図１のロボット制御システムにおけるロボット制御処理を説明するフローチャートである。
【図６】図２のタスクの構成例を示す図である。
【図７】図６の音韻リストの例を示す図である。
【図８】図６のカナ音韻変換規則の例を示す図である。
【図９】図２の音韻タイプライタ用タスクの言語モデルの例を示す図である。
【図１０】図２の音韻タイプライタ用タスクの固定単語辞書の例を示す図である。
【図１１】図２のアプリケーション切替用タスクの言語モデルの例を示す図である。
【図１２】図２のアプリケーション切替用タスクの固定単語辞書の例を示す図である。
【図１３】図２のアプリケーション切替用タスクのカテゴリテーブルの例を示す図である。
【図１４】図２の名前登録用タスクの言語モデルの例を示す図である。
【図１５】図２の名前登録用タスクの固定単語辞書の例を示す図である。
【図１６】図２の雑談用タスクの言語モデルの例を示す図である。
【図１７】図２の雑談用タスクの固定単語辞書の例を示す図である。
【図１８】図２の雑談用タスクのカテゴリテーブルの例を示す図である。
【図１９】図２の音声コマンダ用タスクの言語モデルの例を示す図である。
【図２０】図２の音声コマンダ用タスクの固定単語辞書の例を示す図である
【図２１】図５のステップＳ９の名前登録処理を説明するフローチャートである。
【図２２】図２１のステップＳ４３の名前認識処理を説明するフローチャートである。
【図２３】図２の未知語獲得部のクラスタの例を示す図である。
【図２４】図２の共通辞書部の例を示す図である。
【図２５】図２１のステップＳ４９の反映処理を説明するフローチャートである。
【図２６】図２５の反映処理を説明するブロック図である。
【図２７】図２の名前登録用タスクの可変単語辞書の例を示す図である。
【図２８】図２の名前登録用タスクのカテゴリテーブルの例を示す図である。
【図２９】図２のマッチング部における単語の削除または変更処理を説明するフローチャートである。
【図３０】図２の共通辞書部の変更の例を示す図である。
【図３１】図２の共通辞書部の変更の例を示す図である。
【図３２】図５のステップＳ１２の雑談処理を説明するフローチャートである。
【図３３】図２の雑談用タスクの可変単語辞書の例である。
【図３４】図２の雑談用タスクのカテゴリテーブルの例である。
【図３５】図３２のステップＳ１２３の音声認識処理を説明するフローチャートである。
【図３６】言語スコアの計算式の例を示すである。
【図３７】図２の共通辞書部の変形例を示すである。
【図３８】図２の共通辞書部の変形例を示す図である。
【図３９】図６の固定単語辞書の変形例を示す図である。
【図４０】図６のカテゴリテーブルの例を示す図である。
【図４１】カテゴリ変換テーブルの例を示す図である。
【図４２】カテゴリ変換テーブルの例を示す図である。
【図４３】カテゴリ変換テーブルの例を示す図である。
【図４４】カテゴリ変換テーブルの例を示す図である。
【図４５】ロボットの外観構成を示す斜視図である。
【図４６】ロボットの電気的構成を示すブロック図である。
【図４７】パーソナルコンピュータの例を示す図である。
【符号の説明】
１１  音声認識エンジン部，  ２１  アプリケーション部，  ３１  アプリケーション管理部，  ５１  マイクロホン，  ５２  ＡＤ変換部，  ５３  特徴量抽出部，  ５４  マッチング部，  ５５  共通辞書部，  ５６  未知語獲得部，７１  タスク，  １１１  音響モデル，  １１２  言語モデル，  １１３  辞書，  １１４  音韻リスト，  １１５  カナ音韻変換規則，  １１６  サーチパラメータ，  １３１  固定単語辞書，  １３２  可変単語辞書，  １３３  カテゴリテーブル
【図１】
2004252121.tif 000003
【図２】
2004252121.tif 000004
【図３】
2004252121.tif 000005
【図４】
2004252121.tif 000006
【図５】
2004252121.tif 000007
【図６】
2004252121.tif 000008
【図７】
2004252121.tif 000009
【図８】
2004252121.tif 000010
【図９】
2004252121.tif 000011
【図１０】
2004252121.tif 000012
【図１１】
2004252121.tif 000013
【図１２】
2004252121.tif 000014
【図１３】
2004252121.tif 000015
【図１４】
2004252121.tif 000016
【図１５】
2004252121.tif 000017
【図１６】
2004252121.tif 000018
【図１７】
2004252121.tif 000019
【図１８】
2004252121.tif 000020
【図１９】
2004252121.tif 000021
【図２０】
2004252121.tif 000022
【図２１】
2004252121.tif 000023
【図２２】
2004252121.tif 000024
【図２３】
2004252121.tif 000025
【図２４】
2004252121.tif 000026
【図２５】
2004252121.tif 000027
【図２６】
2004252121.tif 000028
【図２７】
2004252121.tif 000029
【図２８】
2004252121.tif 000030
【図２９】
2004252121.tif 000031
【図３０】
2004252121.tif 000032
【図３１】
2004252121.tif 000033
【図３２】
2004252121.tif 000034
【図３３】
2004252121.tif 000035
【図３４】
2004252121.tif 000036
【図３５】
2004252121.tif 000037
【図３６】
2004252121.tif 000038
【図３７】
2004252121.tif 000039
【図３８】
2004252121.tif 000040
【図３９】
2004252121.tif 000041
【図４０】
2004252121.tif 000042
【図４１】
2004252121.tif 000043
【図４２】
2004252121.tif 000044
【図４３】
2004252121.tif 000045
【図４４】
2004252121.tif 000046
【図４５】
2004252121.tif 000047
【図４６】
2004252121.tif 000048
【図４７】
2004252121.tif 000049