JP4392581B2 - 言語処理装置および言語処理方法、並びにプログラムおよび記録媒体 - Google Patents
言語処理装置および言語処理方法、並びにプログラムおよび記録媒体 Download PDFInfo
- Publication number
- JP4392581B2 JP4392581B2 JP2003042019A JP2003042019A JP4392581B2 JP 4392581 B2 JP4392581 B2 JP 4392581B2 JP 2003042019 A JP2003042019 A JP 2003042019A JP 2003042019 A JP2003042019 A JP 2003042019A JP 4392581 B2 JP4392581 B2 JP 4392581B2
- Authority
- JP
- Japan
- Prior art keywords
- dictionary
- registered
- word
- words
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、言語処理装置および言語処理方法、並びにプログラムおよび記録媒体に関し、特に、例えば、登録した単語を複数のアプリケーションで共通に認識できるようにした言語処理装置および言語処理方法、並びにプログラムに関する。
【0002】
【従来の技術】
音声認識には、単独の単語を認識する孤立単語認識と複数の単語からなる単語列を認識する連続単語認識がある。従来の連続単語認識では、言語モデルという「単語間のつながりやすさについてのデータベース」を持つことで、「音は似ているが滅茶苦茶な単語列」が認識結果として生成されることを防いでいる。
【0003】
しかしながら、言語モデルには、最初から認識できる単語(以下、適宜、既知語と称する)についての情報のみ記述されるため、後で登録された単語(以下、適宜、登録単語と称する)を正しく認識することが困難であった。すなわち、孤立単語認識では、認識辞書に単語を登録すれば、以降その単語は認識されるようになるが、連続単語認識では辞書への登録だけでは不十分であり、登録単語を言語モデルにも反映させる必要があるが、言語モデルへの反映は一般的には困難であった。
【0004】
そこで、登録単語を「人名」、「地名」等のカテゴリに分類し、そのカテゴリに対応した認識文法を用意して、音声を認識することが提案されている(例えば、特許文献1参照)。
【0005】
また、音声認識を使用するアプリケーションが複数、しかも可変個存在するシステムにおいて、1つのアプリケーションで登録された単語を、他のアプリケーションに反映させる場合、アプリケーションが1つの場合とは違った問題が発生する。例えば、既に起動しているアプリケーションに対してのみ単語登録を行うようにすると、アプリケーションが1つの場合と異なり、登録後に起動、またはインストールされたアプリケーションに、登録単語を反映させることが困難であるという課題があった。
【0006】
さらに、アプリケーションが複数ある場合、複数のアプリケーションで、何度も同一の登録単語を削除することは面倒である。また、アプリケーションが複数である場合、登録単語を全て削除することは容易であるが、その一部だけを削除したり発音を変更することは困難であるという課題があった。
【0007】
即ち、アプリケーションが1つである場合、例えば、削除または変更する登録単語を「n回目に登録した単語」や「認識辞書中のn番目のエントリ」といった情報で特定できるが、アプリケーションが複数である場合、各アプリケーションによって、「n回目に登録した単語」や「辞書エントリの何番目に追加したか」が異なるため特定することが困難であった。
【0008】
また、アプリケーションが複数である場合、発音で、登録単語を特定することができるが、発音で登録単語を特定した場合、同音異義語が削除または変更されてしまうおそれがあった。
【0009】
そこで、各アプリケーションが個別に音声認識を行う代わりに、「音声コマンダ」というモジュールが、全てのアプリケーションに対する音声認識を行い、その認識結果を各アプリケーションに転送することが提案されている(例えば、特許文献1参照)。
【0010】
【特許文献1】
特開2001−216128号公報
【0011】
【発明が解決しようとする課題】
しかしながら、特許文献1に記載の発明では、各アプリケーションに対応した認識辞書と言語モデルとを、「音声コマンダ」が所持している必要がある。即ち、「音声コマンダ」を開発する際に、どのようなアプリケーションが同時に使用されるかを想定して、それに適した認識辞書、言語モデルを用意しておく必要があるため、想定外のアプリケーションに対しては、登録単語を反映させることが困難であるという課題があった。
【0012】
本発明はこのような状況に鑑みてなされたものであり、登録した単語を複数のアプリケーションで共通に使用することができるようにするものである。
【0013】
【課題を解決するための手段】
本発明の言語処理装置は、単語が登録される登録辞書を記憶する登録辞書記億手段と、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、アプリケーションごとに、登録辞書に基づいて構築する構築手段と、登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理手段と、専用辞書の単語を削除する削除手段とを備え、専用辞書に登録されたすべての単語が削除された後、構築手段は、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書を再構築することを特徴とする。
【0015】
専用辞書は、所定の単語が予め登録されている固定辞書と、登録される単語が可変の可変辞書とを、少なくとも含み、構築手段は、専用辞書のうちの可変辞書を構築するようにすることができる。
【0016】
専用辞書は、単語のカテゴリが登録されたカテゴリテーブルをさらに含み、構築手段は、登録辞書の単語のうち、カテゴリテーブルに登録されたカテゴリの単語を、可変辞書に登録することにより、可変辞書を構築するようにすることができる。
【0017】
カテゴリの単語がどのように連鎖するかを示す連鎖情報を記述する言語モデルを記憶する言語モデル記憶手段と、専用辞書と言語モデルに基づいて音声認識を行う認識処理手段とをさらに設けることができる。
【0018】
本発明の言語処理方法は、単語が登録される登録辞書を記憶する登録辞書記億ステップと、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、アプリケーションごとに、登録辞書に基づいて構築する構築ステップと、登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理ステップと、専用辞書の単語を削除する削除ステップと、専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書を再構築する再構築ステップとを含むことを特徴とする。
【0019】
本発明の記録媒体に記録されているプログラムは、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、アプリケーションごとに、単語が登録される登録辞書に基づいて構築する構築ステップと、登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理ステップと、専用辞書の単語を削除する削除ステップと、専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書を再構築する再構築ステップとをコンピュータに実行させることを特徴とする。
【0020】
本発明のプログラムは、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、アプリケーションごとに、単語が登録される登録辞書に基づいて構築する構築ステップと、登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理ステップと、専用辞書の単語を削除する削除ステップと、専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書を再構築する再構築ステップとをコンピュータに実行させることを特徴とする。
【0021】
本発明においては、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書が、アプリケーションごとに、単語が登録される登録辞書に基づいて構築され、登録辞書に対して、単語を追加、削除、または変更する処理が行なわれ、専用辞書の単語が削除され、専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書が再構築される。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。図1は、本発明を適用したロボット制御システム1の構成例を表わしている。
【0023】
このロボット制御システム1において、音声認識エンジン部11は、入力された音声データを認識し、認識結果として、音声データに対応する単語列を生成する。音声認識エンジン部11は、その認識結果を、名前登録用アプリケーション部211、雑談用アプリケーション部212、音声コマンダ用アプリケーション部213、・・・、その他のアプリケーション部21M、並びに、アプリケーション管理部31に供給する。
【0024】
名前登録用アプリケーション部211、雑談用アプリケーション部212、音声コマンダ用アプリケーション部213、・・・、その他のアプリケーション部21Mは、音声認識エンジン部11から供給された認識結果に基づいて、各種の処理を行う。
【0025】
名前登録用アプリケーション部211は、音声認識エンジン部11から供給された認識結果に基づいて、ロボット名、ユーザ名等を音声で登録し、それ以外のアプリケーション部は、名前登録用アプリケーション部211が登録した名前を用い、ユーザからの発話に対応してロボットの動作を制御する。
【0026】
したがって、雑談用アプリケーション部212、音声コマンダ用アプリケーション部213、・・・・、およびその他のアプリケーション部21Mで行われる音声認識は、名前登録用アプリケーション部211で登録されたロボット名、ユーザ名等に対応する必要がある。
【0027】
雑談用アプリケーション部212は、ロボットに、ユーザと音声で雑談させ、音声コマンダ用アプリケーション部213は、ロボットに、ユーザからの発話に対応する動作を行わせる。例えば、音声コマンダ用アプリケーション部213は、「エスディーアール(ロボット名)、前に進め!」といったユーザからの発話に対応して、ロボットを前に進める。
【0028】
なお、アプリケーション部は、任意の個数用意することができる。以下、名前登録用アプリケーション部211、雑談用アプリケーション部212、音声コマンダ用アプリケーション部213、・・・、およびその他のアプリケーション部21Mのそれぞれを個々に区別する必要がない場合、適宜、まとめて、アプリケーション部21と称する。
【0029】
アプリケーション管理部31は、音声認識エンジン部11から供給された認識結果に基づいて、アプリケーション部21に対して、起動、終了の指令を行う。例えば、アプリケーション管理部31は、音声認識エンジン部11から「音声コマンダを起動」という認識結果が供給された場合、音声コマンダ用アプリケーション部213を起動する。このとき、複数のアプリケーション部を同時に起動させてもよい。
【0030】
また、アプリケーション部21、およびアプリケーション管理部31は、音声認識エンジン部11に対して、タスク切替コマンドを発行し、それぞれに対応したタスク(図2で後述する)が、音声認識エンジン部11の内部で有効(アクティブ)、または無効(ディアクティブ)になるように制御する。
【0031】
図2は、音声認識エンジン部11の構成を示している。ユーザの発話は、マイクロホン51に入力され、マイクロホン51では、その発話が、電気信号としての音声信号に変換される。マイクロホン51は、この音声信号を、AD(Analog Digital)変換部52に供給する。AD変換部52は、マイクロホン51からのアナログ信号である音声信号をサンプリングし、量子化して、ディジタル信号である音声データに変換する。この音声データは、特徴量抽出部43に供給される。
【0032】
特徴量抽出部53は、AD変換部52からの音声データについて、適当なフレーム毎に、例えば、スペクトル、パワー線形予測計数、ケプストラム計数、線スペクトル対等の特徴パラメータを抽出し、マッチング部54に供給する。
【0033】
マッチング部54は、特徴量抽出部53からの特徴パラメータに基づき、音韻タイプライタ用タスク711、アプリケーション切替用タスク712、名前登録用タスク713、雑談用タスク714、音声コマンダ用タスク715、・・・、およびその他のタスク71Nのうち、その時点で有効にされているタスク毎に、タスク内部のデータベースを必要に応じて参照しながら、マイクロホン51に入力された音声(入力音声)に最も近い単語列を、認識結果として求める。マッチング部54は、その認識結果を、それぞれのタスクに対応するアプリケーション部21、およびアプリケーション管理部31に供給する。
【0034】
なお、タスクとは、音声認識を行うのに必要なデータのセットのことである。即ち、音声認識エンジン部11を、マッチング等を行うプログラム部分と、音響モデル、言語モデル、認識辞書等のデータ部分とに分類した場合のデータ部分、およびデータにアクセスするためのプログラムのことである。
【0035】
したがって、複数のアプリケーションが異なる音響モデル、言語モデル、辞書を用いて音声認識を行う場合であっても、タスクを複数用意することによって、音声認識エンジン部は1つにすることができる。タスクの内部の詳細については、図6で後述する。
【0036】
音韻タイプライタ用タスク711は、音韻タイプライタとして働くタスクであり、音声認識エンジン部11の指令により、有効にされる。この音韻タイプライタによって、マッチング部54は、入力された任意の音声に対して、音韻系列を取得する他、カナ表記の発音も取得する。例えば、「君の名前はエスディーアールだよ」という音声から、“k/i/m/i/n/o/n/a/m/a/e/w/a/e/s/u/d/i:/a:/r/u/d/a/y/o”(“i:”、“a:”は、それぞれ“i”、“a”の長音)という音韻系列と、「キミノナマエワエスディーアールダヨ」というカナ表記を取得する。この音韻系列とカナ表記は、未知語獲得部56で用いられる。
【0037】
アプリケーション切替用タスク712は、アプリケーション管理部31に対応したタスクであり、アプリケーション管理部31が起動した後、アプリケーション管理部31からタスク切替コマンドが供給されると、有効にされる。アプリケーション切替用タスク712によって、マッチング部54は、例えば、「雑談アプリを起動」、「音声コマンダを起動」、「名前登録を起動して」等のアプリケーション部の起動、または終了命令に対応する音声を認識する。
【0038】
名前登録用タスク713は、名前登録用アプリケーション部211に対応したタスクであり、アプリケーション管理部31からの指令により、名前登録用アプリケーション部211が起動された後、名前登録用アプリケーション部211からタスク切替コマンドが供給されると、有効にされる。名前登録用タスク713によって、マッチング部54は、例えば、「君の名前は、<ロボット名を表す未知語>だよ。」、「私の名前は、<人名を表す未知語>です。」といった名前に対応する音声を認識する。
【0039】
雑談用タスク714、音声コマンダ用タスク715、・・・、およびその他のタスク71Nは、それぞれ雑談用アプリケーション部212、音声コマンダ用アプリケーション部213、・・・、その他のアプリケーション部21Mに対応したタスクであり、アプリケーション管理部31からの指令により、対応するアプリケーション部が起動された後、対応するアプリケーション部からそれぞれタスク切替コマンドが供給されると、有効にされる。
【0040】
マッチング部54は、雑談用タスク714によって、例えば、「エスディーアール(ロボット名)、何時に起きたの?」というユーザからの雑談としての発話を認識することができる。また、マッチング部54は、音声コマンダ用タスク715によって、例えば、「エスディーアール(ロボット名)、前に1歩進め」というユーザからの指令としての発話を認識することができる。
【0041】
また、マッチング部54は、後述する共通辞書部55に登録された単語を、各タスクに反映させる。
【0042】
なお、以下、音韻タイプライタ用タスク711、アプリケーション切替用タスク712、名前登録用タスク713、雑談用タスク714、音声コマンダ用タスク715、・・・、およびその他のタスク71Nのそれぞれを個々に区別する必要がない場合、適宜、まとめて、タスク71と称する。
【0043】
共通辞書部55は、タスク71で共通に用いる単語の辞書としての共通辞書を記憶している。共通辞書部55に記憶されている共通辞書には、そこに登録された全単語について、発音情報とカテゴリ情報が記述される。例えば、固有名詞である「エスディーアール(ロボット名)」が共通辞書に登録される場合、「エスディーアール」という発音(音韻情報)と“_ロボット名_”というカテゴリが共通辞書に記述される。詳細は、図24で後述する。
【0044】
未知語獲得部56は、認識用の辞書(図6で後述する固定単語辞書131)に登録されていない名前等の単語(未知語)について、音韻タイプライタ用タスク711によって認識され、マッチング部54から供給された音韻系列およびカナ表記を記憶し、それ以降、その単語の音声を認識できる(他の音声と識別できる)ようにする。
【0045】
即ち、未知語獲得部56は、音韻タイプライタ用タスク711によって認識された未知語の音韻系列およびカナ表記を、いくつかのクラスタに分類する。各クラスタはID、代表音韻系列、および代表カナ表記を持ち、IDで管理される。
【0046】
図3は、未知語獲得部56のクラスタの状態を示している。
【0047】
「あか」、「あお」、「みどり」の3回の音声が入力されたとき、未知語獲得部56は、3回の入力音声を、それぞれに対応した「あか」クラスタ91、「あお」クラスタ92、および「みどり」クラスタ93の3つのクラスタに分類し、各クラスタに、代表となる音韻系列(図3の例の場合、“a/k/a”、“a/o”、“m/i/d/o/r/i”)、代表的なカナ表記(図3の例の場合、「アカ」、「アオ」、「ミドリ」)、およびID(図3の例の場合、「1」、「2」、「3」)を付加する。
【0048】
ここで、再び「あか」という音声が入力されると、対応するクラスタが既に存在するので、未知語獲得部56は、入力音声を「あか」クラスタ91に分類し、新しいクラスタは生成しない。これに対して、「くろ」という音声が入力された場合、対応するクラスタが存在しないので、未知語獲得部56は、「くろ」に対応した「くろ」クラスタ94を新たに生成し、そのクラスタに、代表的な音韻系列(図3の例の場合、“k/u/r/o”)、代表的なカナ表記(図3の例の場合、「クロ」)、およびID(図3の例の場合、「4」)を付加する。
【0049】
この方法を用いると、ユーザが同じ音声を何度も入力することによって、各クラスタの代表音韻系列と代表カナ発音の精度をあげることができる。例えば、「みどり」を1度入力した時点では、音韻タイプライタが誤認識して、“m/e/r/a/a”という音韻系列と、「メラア」というカナ発音とを出力したとする。その後、「みどり」という発話を何回もすることにより、音韻系列とカナ発音とが正しい値(“m/i/d/o/r/i”と「ミドリ」)に収束していく可能性がある。このような単語獲得処理の詳細は、本出願人が先に提案した特願2001-097843号、および特願2001-382579号に開示されている。
【0050】
次に、図4と図5を参照して、図1のロボット制御システム1におけるロボット制御処理を説明する。なお、この処理は、ユーザによりロボット制御システム1が起動されたとき、開始される。
【0051】
ステップS1において、音声認識エンジン部11が起動し、ステップS2に進む。ステップS2において、音声認識エンジン部11は、前回のロボット制御システム1の終了時に、不図示の記憶部に記憶しておいた(後述するステップS17の処理)共通辞書部55の内容(共通辞書)と未知語獲得部56のクラスタの状態をロードする。共通辞書とクラスタの状態が記憶部に記憶されていない場合は、共通辞書部55と未知語獲得部56のクラスタのエントリが何もない状態のままにする。記憶部にクラスタの状態は記憶されているが共通辞書の状態は記憶されていないという場合は、共通辞書のみ初期化(エントリが何もない状態に)する。逆に、共通辞書の状態は記憶されているがクラスタの状態は記憶されていない場合は、クラスタ由来のエントリ(図24でクラスタIDが記述されているエントリ)は共通辞書から削除し、カナ発音由来のエントリ(図24でカナ発音が記述されているエントリ)は残す。
【0052】
ステップS2の処理後は、ステップS3に進み、音声認識エンジン部11は、音韻タイプライタ用タスク711を有効にし、音韻タイプライタ用タスク711が音声認識に使用できる状態にして、ステップS4に進む。ステップS4において、アプリケーション管理部31が起動し、ステップS5に進む。
【0053】
ステップS5において、アプリケーション管理部31は、対応するタスクであるアプリケーション切替用タスク712を有効にし、ステップS6に進む。ステップS6において、音声認識エンジン部11は、マイクロホン51に音声で入力された、アプリケーション部21の起動命令を認識し、認識結果をアプリケーション管理部31に供給する。この音声認識処理の詳細は、図35のフローチャートで後述する。
【0054】
ステップS6の処理後は、図5のステップS7に進み、アプリケーション管理部31は、音声認識エンジン部11から供給された認識結果から、名前登録用アプリケーション部211を起動するか否かを判定し、名前登録用アプリケーション部211を起動すると判定した場合(例えば、認識結果が「名前登録を起動」である場合)、ステップS8に進む。
【0055】
ステップS8において、アプリケーション管理部31は、名前登録用アプリケーション部211を起動させる。ステップS8の処理後は、ステップS9に進み、名前登録用アプリケーション部211は、名前登録処理を行なう。この名前登録処理の詳細は、図21のフローチャートで後述する。
【0056】
ステップS7において、アプリケーション管理部31は、名前登録用アプリケーション部211を起動しないと判定した場合、ステップS10に進み、音声認識エンジン部11による認識結果から、雑談用アプリケーション部212を起動するか否かを判定する。ステップS10において、アプリケーション管理部31は、雑談用アプリケーション部212を起動すると判定した場合(例えば、認識結果が「雑談を起動して」である場合)、ステップS11に進み、雑談用アプリケーション部212を起動させる。
【0057】
ステップS11の処理後は、ステップS12に進み、雑談用アプリケーション部212は、雑談処理を行なう。この雑談処理の詳細は、図32のフローチャートで後述する。
【0058】
ステップS10において、アプリケーション管理部31は、雑談用アプリケーション部212を起動しないと判定した場合、ステップS13に進み、音声認識エンジン部11による認識結果から、音声コマンダ用アプリケーション部213を起動するか否かを判定する。ステップS13の処理において、アプリケーション管理部31は、音声コマンダ用アプリケーション部213を起動すると判定した場合(例えば、認識結果が「音声コマンダ起動」である場合)、ステップS14に進み、音声コマンダ用アプリケーション部213を起動させる。
【0059】
ステップS14の処理後は、ステップS15に進み、音声コマンダ用アプリケーション部213は、音声コマンダ処理を行なう。この音声コマンダ処理の詳細は、図32のフローチャートで後述する。
【0060】
ステップS13において、アプリケーション管理部31は、音声コマンダ用アプリケーション部213を起動しないと判定した場合、音声認識エンジン部11による認識結果が誤っているため(アプリケーション切り替え以外の発話の場合もある)、図4のステップS6に戻り、音声認識エンジン部11は、新たに入力された音声を認識する処理を行う。
【0061】
このように、アプリケーション管理部31は、音声認識エンジン部11による認識結果に応じて、アプリケーション部21を起動させる。
【0062】
ステップS9,S12,S15の処理の後は、ステップS16に進み、アプリケーション管理部31は、ロボット制御処理を終了するか否かを判定する。例えば、アプリケーション管理部31は、ユーザにより不図示の終了ボタンが押圧されたか否かを判定し、終了ボタンが押圧された場合、ロボット制御処理を終了すると判定する。
【0063】
ステップS16において、ロボット制御処理を終了しないと判定された場合、処理は図4のステップS6に戻り、入力された音声を認識する処理を繰り返す。ステップS16において、アプリケーション管理部31は、ロボット制御処理を終了する(終了ボタンが押圧された)と判定した場合、ステップS17に進み、共通辞書部55の共通辞書および未知語獲得部56のクラスタの状態を、不図示の記憶部に記憶させる。
【0064】
そして、アプリケーション管理部31は、起動しているアプリケーション部21がある場合、そのアプリケーション部を終了する。このとき、アプリケーション部21は、対応するタスク71を無効にする。また、アプリケーション管理部31は、アプリケーション切替用タスク712を無効にし、音声認識エンジン部11は、音韻タイプライタ用タスク711を無効にして、アプリケーション管理部31および音声認識エンジン部11は、処理を終了する。
【0065】
なお、上述の処理では、アプリケーション部が、名前登録用アプリケーション部211、雑談用アプリケーション部212、音声コマンダ用アプリケーション部213の3個のときを説明したが、さらにその他のアプリケーション部がある場合は、ステップS13で、音声コマンダ用アプリケーションを起動しないと判定した場合、ステップS6に戻らず、ステップS7,S10,S13と同様に、他のアプリケーションを起動するか否かが判定され、その判定結果に応じて他のアプリケーションが起動される。
【0066】
また、上述の処理では、音声認識の終了は、ユーザによって指令されたが、例えば、所定時間音声が入力されない場合に終了する等、ロボット制御システム1が自動的に判断してもよい。
【0067】
上述の処理によれば、アプリケーション切替用タスク712は、各アプリケーション部21の起動中も有効になっているため、「○○を起動して」という発話が他のアプリケーション部の起動中になされた場合も、その発話を認識して、対応するアプリケーションを起動することができる。例えば、音声コマンダアプリケーション部213が起動中に、ユーザによって「雑談を起動して」と発話された場合、雑談用アプリケーション部212を起動することができる。
【0068】
この場合、起動中のアプリケーション部を終了させてから新しいアプリケーション部を起動させるか、起動中のアプリケーション部は一時停止状態にしてから新しいアプリケーション部を起動し、新しいアプリケーション部が終了してから元のアプリケーション部を再開するか、あるいは両方を並列に起動させるかは、アプリケーション部同士の組み合わせによって予め設定されている(メモリ等のリソース制約などから動的に判断することもある)。
【0069】
図6は、タスク71の構成を示している。タスク71は、音響モデル111、言語モデル112、辞書113、音韻リスト114、カナ音韻変換規則115、およびサーチパラメータ116から構成されている。
【0070】
音響モデル111は、音声認識する音声の個々の音韻、音節等の音響的な特徴を表すモデルを記憶している。音響モデルとしては、例えば、HMM(Hidden Markov Model)を用いることができる。
【0071】
言語モデル112は、辞書113の単語辞書に登録されている各単語がどのように連鎖する(接続する)かを示す情報(以下、適宜、連鎖情報と称する)を記述している。記述方法としては、統計的な単語連鎖確率(n-gram)、生成文法、有限状態オートマン等がある。
【0072】
言語モデル112は、単語についての連鎖情報の他に、単語を特定の観点で分類したカテゴリについての連鎖情報も含んでいる。例えば、「ユーザ名を表す単語からなるカテゴリを“_ユーザ名_”というシンボルで表し、「ロボット名を表す単語からなるカテゴリ」を“_ロボット名_”というシンボルで表す場合、言語モデル112は、“_ユーザ名_”、“_ロボット名_”についての連鎖情報(カテゴリ同士の連鎖、カテゴリと辞書に予め記憶されている単語との連鎖等)も記述している。
【0073】
したがって、言語モデル112に含まれない単語についても連鎖情報を取得することができる。例えば、「エスディーアール」と「は(助詞)」の連鎖情報を取得する場合、言語モデル112に「エスディーアール」についての連鎖情報が記述されていなくても、「エスディーアール」が“_ロボット名_”というシンボルで表されるカテゴリに属していることがわかれば、代わりに“_ロボット名_”と「は」との連鎖情報を取得することによって、「エスディーアール」と「は」の連鎖情報を取得することができる。
【0074】
なお、カテゴリは、意味属性に基づく分類(“_ロボット名_”、“_ユーザ名_”、“_地名_”、“_店名_”等)ではなく、品詞に基づく分類(“_名詞_”、“_動詞_”、“_助詞_”等)にしてもよい。以下、“_・・・_”という表記は、カテゴリ名を表すものとする。
【0075】
辞書113は、固定単語辞書131、可変単語辞書132、およびカテゴリテーブル133から構成されている。
【0076】
固定単語辞書131には、単語登録および削除の対象外の単語、すなわち、予めロボット制御システム1に設定されている単語(以下、適宜、固定単語と称する)についての発音(音韻系列)、音韻および音節の連鎖関係を記述したモデル等、各種の情報が記述されている。
【0077】
なお、固定単語辞書131には、タスク71毎に、そのタスク71に対応するアプリケーション部21で用いられる専用の単語についての情報が記述されている。上述の音響モデル111および言語モデル112において、並びに後述するカテゴリテーブル133、音韻リスト114、カナ音韻変換規則115、およびサーチパラメータ116においても同様である。
【0078】
可変単語辞書132には、単語登録および削除の対象となる単語、すなわち、登録単語についての発音、音韻および音節の連鎖関係を記述したモデル等、各種の情報が記述されており、共通辞書部55に新たな登録単語が登録されると、その登録単語が反映される。この反映処理については、図25で後述する。単語の削除や発音の変更は、この可変単語辞書132のエントリに対してのみ行うことができる。なお、可変単語辞書132は、何も記億されていなくてもよい。
【0079】
カテゴリテーブル133は、言語モデル112に含まれているカテゴリとそのカテゴリに含まれている単語の情報との対応を示すテーブルを記憶している。また、タスク71がカテゴリ独自のID(カテゴリID)を付与している場合には、カテゴリテーブル133は、カテゴリのシンボルとそのIDの対応関係も記憶する。例えば、“_ロボット名_”のカテゴリに、カテゴリID「4」が付与されている場合、“_ロボット名_”に対応して、カテゴリID=4も記憶する。なお、カテゴリテーブル133は、言語モデル112がカテゴリを含まない場合、何も記憶しない。
【0080】
音韻リスト114は、タスク71で使用する音韻記号の一覧である。カナ音韻変換規則115は、カナ文字列を音韻系列に変換するための規則である。このように、カナ音韻変換規則115をタスク毎に記憶することによって、共通辞書部55は、発音情報として、音韻系列とは独立であるカナ文字列を保持することができる。
【0081】
サーチパラメータ116は、マッチング部54がマッチング(サーチ)する場合に用いるパラメータを保持している。パラメータには、音響モデル111に依存した値、語彙数に依存した値、言語モデル112の種類に依存した値等があるので、タスク毎に保持しておく必要がある。ただし、タスクに依存しないパラメータは、認識エンジン部11で共通に保持すればよい。
【0082】
なお、上述の説明では、全てのデータをタスク毎に記憶するようにしたが、複数のタスクで共通に用いるデータは、タスク間で共有することでメモリ使用量を減らすことができる。例えば、音韻リスト114が全てのタスクで共通である場合、音韻リスト114を音声認識エンジン部11で1つだけ用意し、各タスクはそれを参照するようにすればよい。この場合、カナ音韻変換規則115も1つだけ用意すれば十分である。
【0083】
また、音響モデル111は、静かな環境用(静かな環境で高い認識率が出る音響モデル)と雑音環境用(騒がしい環境でもそれなりの認識率が出る音響モデル)との2種類を用意し、タスク毎にどちらかを参照するようにしてもよい。
【0084】
例えば、名前登録用タスク713と雑談用タスク714は、静かな環境で使用することを想定しているので、静かな環境用の音響モデル111を参照し、音声コマンダ用タスク715は、騒がしい環境(ロボットの動作音が大きい環境)で使うことを想定しているので、雑音環境用の音響モデルを参照するようにすることができる。
【0085】
図7は、図6の音韻リスト114の例を示している。図7において、1つの記号は1つの音韻(に相当するもの)を表す。なお、図7の音韻リスト114において、母音+コロン(例えば、“a:”)は、長音を表し、“N”は、撥音(「ん」)を表す。また、“sp”、“silB”、“silE”、“q”は、全て無音を表すが、それぞれ「発話の中の無音」、「発話前の無音」、「発話後の無音」、「促音(「っ」)」を表す。
【0086】
図8は、図6のカナ音韻変換規則115の例を示している。図8のカナ音韻変換規則115によれば、例えば、「エスディーアール」というカナ文字列は、“e/s/u/d/i:/a:/r/u”という音韻系列に変換される。
【0087】
次に、各タスクの言語モデル112と辞書113(図6)の例を示す。
【0088】
図9は、音韻タイプライタ用タスク711の言語モデル112(図6)の例を示している。図9において、第1行目の変数“$SYLLABLE”は、全てのカナ表記が「または」を意味する“|”で繋がれているので、そのカナ表記の内の任意の1つを意味する。
【0089】
即ち、ここでは、音韻タイプライタ用タスク711は、音節(シラブル)を単位とする音声認識用のタスクであるとして、図9の言語モデル112は、任意のシラブルが、任意に接続できるという連鎖規則を、BNF(Backus-Naur-Form)形式の文法で表している。なお、言語モデル112は、後述する統計言語モデルを用いてもよい。
【0090】
図10は、音韻タイプライタ用タスク711の固定単語辞書131(図6)の例を示している。「シンボル」は単語を識別するための文字列であり、例えば、カナ表記などを用いることができる。シンボルが同じエントリは、同じ単語のエントリであるとみなされる。また、言語モデル112は、このシンボルを用いて表されている。なお、「<先頭>」と「<終端>」は特殊なシンボルであり、それぞれ「発話前の無音」と「発話後の無音」を表す(後述する図11等においても同様)。
【0091】
また、「トランスクリプション」は、単語の表記を表し、認識結果として出力される文字列はこのトランスクリプションである。「音韻系列」は、単語の発音を音韻系列で表したものである。
【0092】
音韻タイプライタ用タスク711の可変単語辞書132には、音韻タイプライタ用タスク711に単語を追加することは想定していないので、何も記憶されない。また、音韻タイプライタ用タスク711の言語モデル112は、図9に示すように、カテゴリを含まないので、カテゴリテーブル133にも何も記憶されない。
【0093】
図11は、アプリケーション切替用タスク712の言語モデル112(図6)の例を示している。図11の言語モデル112は、BNF形式の文法で記述されている。第1行目の変数“$APPLICATIONS”は、全てのアプリケーション名(「雑談」、「音声コマンダ」、「名前登録」等)が「または」を意味する“|”で繋がれているので、アプリケーション名の内のどれか1つを意味する。
【0094】
また、第2行目の変数“$UTTERANCE”は、“_ロボット名_”と「を」のそれぞれに、「省略可能」を意味する“[]”が付加されているので、「(ロボット名)アプリケーション名(を)起動して」を意味する。ここで、「ロボット名」とは、“_ロボット名_”のカテゴリに登録された単語を示している。
【0095】
例えば、“_ロボット名_”に「エスディーアール」が登録されていた場合、「エスディーアール、音声コマンダ(を)起動して」、「音声コマンダ(を)起動して」等の発話が、図11の言語モデル112を用いて認識される。
【0096】
このように言語モデル112を、カテゴリ名を用いて記述することによって、新たに登録された単語であっても、その単語が、言語モデル112に記述されているカテゴリに含まれるものである場合には、その新たに登録された単語を含む発話を、言語モデル112を用いて認識することができる。
【0097】
図12は、アプリケーション切替用タスク712の固定単語辞書131(図6)の例を示している。図12の固定単語辞書131には、図11の言語モデル112の文法中に記述されるシンボル(図11における「雑談」や「音声コマンダ」等)について、トランスクリプションと音韻系列が記述されている。
【0098】
図13は、アプリケーション切替用タスク712のカテゴリテーブル133(図6)の例を示している。カテゴリテーブル133は、言語モデル112に使用されているカテゴリの種類と、カテゴリに属する単語の情報を記憶する。言語モデル112が図11に示すような場合、アプリケーション切替用タスク712の言語モデル112には、“_ロボット名_”のカテゴリが使用されているため、カテゴリテーブル133には、図13に示すように、“_ロボット名_”がエントリされている。図13においては“_ロボット名_”のカテゴリに属する単語の集合は、空集合であり、まだ“_ロボット名_”に属する単語は何もないことを表している。
【0099】
図13に示したように、カテゴリテーブル133に、カテゴリがエントリされている場合であっても、そのエントリに属する単語がない場合(空集合の場合)、可変単語辞書132には、そのカテゴリに属する単語の情報は記憶されない。
【0100】
図14は、名前登録用タスク713の言語モデル112(図6)の例を示している。図14の言語モデル112は、BNF形式の文法で記述されている。変数“$UTTERANCE”は、「私[の 名前] は<OOV>[です][と いい ます]」と「君[の 名前]は<OOV>[と いうん]だよ」が、「または」を意味する“|”で繋がっており、「の 名前」、「です」、「と いい ます」、「と いうん だよ」それぞれに、「省略可能」を意味する“[]”が付加されている。
【0101】
したがって、図14の言語モデル112を用いて、「私(の名前)は<OOV>(です)(といいます)」または「君(の名前)は<OOV>(というん)だよ」が認識される。なお、<OOV>は、「Out Of Vocabulary」を意味するシンボルであり、任意の発音の語句(固定単語辞書131に記述されていない単語)を意味する。
【0102】
シンボル<OOV>を用いることによって、例えば、「私の名前は太郎です」、「君の名前はエスディーアールだよ」といった発話(「太郎」と「エスディーアール」は、固定単語辞書131に記述されていない)に対して、それぞれ図14の言語モデル112の「<先頭>私の名前は<OOV>です<終端>」、「<先頭>君の名前は<OOV>だよ」が適用されることにより、「私の名前はタロウです」、「君の名前はエスディーアールだよ」という音声認識結果を得ることができる。
【0103】
図15は、名前登録用タスク713の固定単語辞書131(図6)の例を示している。固定単語辞書131には、図14に示されるような言語モデル112の文法中に記述されるシンボルについて、トランスクリプションと音韻系列が記述されている。
【0104】
名前登録用タスク713の可変単語辞書132には、ここでは、名前登録用タスク713に単語を追加することは想定していないので、何も記憶されない。また、名前登録用タスク713の言語モデル112は、図14に示すように、カテゴリを含まないので、カテゴリテーブル133にも何も記憶されない。
【0105】
図16は、雑談用タスク714の言語モデル112(図6)の例を示している。雑談は、語彙も発話のバリエーションも多いため、言語モデル112として、統計言語モデルが用いられている。統計言語モデルは、単語の連鎖情報を条件付確率で記述したモデルであり、図16の言語モデル112では、3つの単語1,2,3の並び、すなわち単語の3連鎖の確率を表すtri-gramが用いられている。
【0106】
図16において、「P(単語3|単語1単語2)」は、単語列中に「単語1」、「単語2」という並びがあった場合に、その次に「単語3」が出現する確率を表す。例えば、「<先頭>“_ロボット名_”」という並びがあった場合に、その次に「は」が出現する確率は、「0.012」である。なお、この確率は、大量の雑談を記述したテキストを解析することにより、予め求められる。また、言語モデル112としては、tri-gramの他に、bi-gram(2連鎖の確率)やuni-gram(単語の出現確率)等も、必要に応じて用いることが可能である。
【0107】
図16の言語モデル112においても、図11における場合と同様に、単語の他、カテゴリを用いて文法が記述されている。即ち、図16において、「_ロボット名_」、「_地名_」は、カテゴリ“_ロボット名_”、“_地名_”を意味するが、これらのカテゴリを用いてtri-gramを記述することによって、ロボット名や地名を表す単語が可変単語辞書132に登録された場合に、その単語を雑談用タスク714で認識することができる。
【0108】
図17は、雑談用タスク714の固定単語辞書131の例を示している。固定単語辞書131には、図16に示されるような言語モデル112の文法中に記述されるシンボルについて、トランスクリプションと音韻系列が記述されている。
【0109】
図18は、雑談用タスク714のカテゴリテーブル133の例を示している。カテゴリテーブル133は、言語モデル112に使用されているカテゴリの種類と、そのカテゴリに属する単語の情報を記憶する。言語モデル112が図16に示すような場合、雑談用タスク714の言語モデル112には、“_ロボット名_”と“_地名_”の2個のカテゴリが使用されているため、カテゴリテーブル133には、図18に示すように、“_ロボット名_”と“_地名_”の2つのカテゴリがエントリされている。図18では、カテゴリ“_ロボット名_”と“_地名_”に属する単語は、まだ何もないことを表している。
【0110】
図19は、音声コマンダ用タスク715の言語モデル112(図6)の例を示している。図19の言語モデル112は、BNF形式の文法で記述されている。第1行目の変数“$NUMBER”は、数字(「1」、「2」、「3」等)が「または」を意味する“|”で繋がっているので、数字の内のどれか1つを意味する。
【0111】
第2行目の変数“$DIRECTION”は、方向(「前」、「後」、「右」、「左」等)が「または」を意味する“|”で繋がっているので、方向の内のどれか1つを意味する。第3行目の変数“UTTERANCE”は、“_ロボット名_”、「$DIRECTION に」、および「$NUMBER 歩」に「進め」を付加したものとなっており、さらに、変数“$UTTERANCE”の“_ロボット名_”、「$DIRECTION に」、および「$NUMBER 歩」に、「省略可能」を意味する“[]”が付加されている。
【0112】
したがって、図19の言語モデル112において、例えば、「(ロボット名)前に3歩進め」といった音声が認識される。
【0113】
図20は、音声コマンダ用タスク715の固定単語辞書131の例を示している。固定単語辞書131には、図19に示されるような言語モデル112の文法中に記述するシンボルについて、トランスクリプションと音韻系列が記述されている。
【0114】
なお、「1」と「歩」については、シンボルが重複しているが、これは「1」と「歩」が、それぞれ2つの発音(「イチ」と「イッ」、「ホ」と「ポ」)を持つことを表している。これによって、例えば、「イチホ」、「イッポ」という異なる発音がされた発話を、同じ「1歩」として認識することができる。
【0115】
言語モデル112が図19に示すような場合、音声コマンダ用タスク715の言語モデル112には、“_ロボット名_”のカテゴリだけが使用されているため、音声コマンダ用タスク715のカテゴリテーブル133は、図13に示した、アプリケーション切替用タスク712のカテゴリテーブル133と同じになる。また、“_ロボット名_”に属する単語がまだ発話されていない状態では、音声コマンダ用タスク715の可変単語辞書132には、何も記憶されない。
【0116】
次に、名前登録用アプリケーション部211が、図5のステップS9で行う名前登録処理を、図21のフローチャートを用いて、詳細に説明する。なお、この処理は、ユーザの発話によって名前登録用アプリケーション部211が起動されたときに開始される。この処理が開始される前に、ユーザは、例えば、不図示のモード切替ボタンによって、名前を登録する名前登録モードとして、音声により名前を入力する音声入力モード、またはキーボード等によるカナ入力により名前を入力するカナ入力モードのうちのいずれか一方を選択しておく。
【0117】
ステップS41において、名前登録用アプリケーション部211は、音声認識エンジン部11の名前登録用タスク713を有効にし、この名前登録用タスク713で音声を認識できるようにする。
【0118】
ステップS41の処理後は、ステップS42に進み、名前登録用アプリケーション部211は、名前登録モードが音声入力モードであるか否かを判定し、音声入力モードであると判定した場合、ステップS43に進み、マッチング部54に名前認識処理を行わせ、ステップS44に進む。(または、ステップS42でユーザが発話した場合は「名前を音声で入力した」と判定してステップS43に進み、不図示のカナ入力ボタンが押された場合は、「名前をカナ文字で入力した」と判定してステップS46に進む。)この名前認識処理の詳細は、図22で後述する。
【0119】
ステップS44において、名前登録用アプリケーション部211は、マッチング部54でステップS43の名前認識処理が行われることにより得られる名前の音声認識結果(認識された名前)が正しいか否かを判定する。この判定は、例えば、認識結果をユーザに向かって発話し、ユーザから不図示のOKボタンが操作されたか否かによって行われる。
【0120】
ステップS44において、名前の音声認識結果が正しくないと判定された場合、ユーザに再度発話するよう促し、ステップS43に戻り、再び名前認識処理を行う。ステップS44において、認識結果が正しいと判定された場合、ステップS47に進む。
【0121】
一方、ステップS42において、名前登録アプリケーション部211は、名前登録モードが音声入力モードではないと判定した場合、ステップS45に進み、名前登録モードがカナ入力モードであるか否かを判定する。
【0122】
ステップS45において、名前登録モードがカナ入力モードではないと判定された場合、ユーザによって名前登録モードが選択されていないので、名前登録モードが選択されるまで待機し、ユーザによる名前入力モードの選択を待って、ステップS42に戻る。
【0123】
ステップS45において、名前登録モードがカナ入力モードであると判定された場合、ステップS46に進み、名前登録用アプリケーション部211は、ユーザによって入力された名前のカナ列と、その名前のカテゴリを取得する。
【0124】
カナ列を入力する方法としては、例えば、ユーザが一時的にキーボードを接続してカナ文字を入力する方法、ロボットの各種スイッチを使用して入力する方法、文字を書いた紙等をロボットに見せて文字認識する方法(例えば、特願2001-135423参照)、無線LAN(Local Area Network)等でロボットとパーソナルコンピュータを接続し、そのパーソナルコンピュータからロボットに転送する方法、インターネット等を経由して、ロボットにダウンロードする方法等がある。また、文字を書いた紙等をロボットに見せて文字認識する方法において、カナ文字を入力するのではなく、カナ漢字交じりの文字列を入力し、名前登録用アプリケーション部211が、カナ列に変換してもよい(特願2001-135423参照)。
【0125】
さらに、ユーザが名前のカナ列を入力するのではなく、予め共通辞書部55の共通辞書に、名前のカナ文字を付加したエントリを与えておき、名前登録用アプリケーション部211は、共通辞書部55を参照することによって、名前のカナ列を取得してもよい。
【0126】
ステップS44またはS46の処理後は、ステップS47に進み、名前登録用アプリケーション部211は、登録する名前のカテゴリを決定する。名前登録モードがカナ入力モードである場合、名前登録用アプリケーション部211は、ステップS46で取得した(ユーザによって入力された)カテゴリを、登録する名前のカテゴリに決定する。
【0127】
即ち、カナ入力モードにおいては、ステップS46において、ユーザに、名前の他、その名前のカテゴリも入力してもらい、ユーザが入力した名前のカテゴリを、登録する名前のカテゴリに決定する。一方、名前登録モードが音声入力モードである場合、名前登録用アプリケーション部211は、ステップS43の名前認識処理で得られた名前のカテゴリを推測して決定する。
【0128】
例えば、音声認識エンジン部11から供給された認識結果が「君」で始まる場合は、登録する名前の属するカテゴリは、“_ロボット名_”であると推測し、「私」で始まる場合は、登録する名前の属するカテゴリは、“_ユーザ名_”であると推測する。また、本出願人が先に提案した特願2001-382579に開示されている、各種のカテゴリ推定方法も用いることができる。
【0129】
ステップS47の処理後は、ステップS48に進み、名前登録用アプリケーション部211は、マッチング部54を制御して、登録する名前の発音情報とカテゴリを共通辞書部55の共通辞書にエントリし、ステップS49に進む。ステップS49において、名前登録用アプリケーション部211は、マッチング部54を制御して、共通辞書の内容を、雑談用タスク714、音声コマンダ用タスク715、・・・、その他のタスク71Nに反映させる。この反映の詳細は、図25のフローチャートを参照して後述する。
【0130】
このように、共通辞書に登録した名前を他のタスクに反映させることにより、他のタスクでも、この登録した名前を認識することができる。
【0131】
ステップS49の処理後は、ステップS50に進み、名前登録用アプリケーション部211は、名前登録処理を終了するか否かを判定する。この判定は、例えば、終了するかという質問をユーザに向けて発話し、ユーザにより不図示のOKボタンが操作(押圧)されたか否かによって行う。ステップS49において、名前登録用アプリケーションを終了しない(例えば、OKボタンが押されていない)と判定された場合、ステップS42に戻り、他の名前を登録する処理を行なう。
【0132】
また、ステップS50において、名前登録処理を終了する(例えば、OKボタンが押された)と判定された場合、ステップS51に進み、名前登録用アプリケーション部211は、名前登録用タスク713を無効にし、ステップS52に進む。ステップS52において、名前登録用アプリケーション部211は処理を終了する。
【0133】
図22は、図21のステップS43で、図2のマッチング部54が行う名前認識処理を説明するフローチャートである。
【0134】
ステップS61において、マッチング部54は、音声がマイク51に入力されたか否かを判定し、音声が入力されていないと判定した場合、音声が入力されるまで待機する。ステップS61において、音声が入力されたと判定された場合、ステップS62に進む。ここで入力される音声は、例えば、「私の名前は太郎です」、「君の名前はエスディーアールだよ」といった通常の会話でよく、ユーザは、名前登録を意識して、「太郎」「エスディーアール」という名前だけを単独で入力する必要はない。
【0135】
ステップS62において、マッチング部54は、音声を認識し、名前を抽出する。例えば、「君の名前はエスディーアールだよ」という発話がされた場合、図14に示すような言語モデル112と図15に示すような固定単語辞書131を有する名前登録用タスク713を参照して、マッチング部54は、例えば、「<先頭>君の名前は<OOV>だよ<終端>」という認識結果を生成する。また、マッチング部54は、<OOV>が発話のどの区間(最初の発話の何秒目から何秒目まで)であるかという情報を得る。
【0136】
さらに、マッチング部54は、同じ発話に対して、図9に示すような言語モデル112と図10に示すような固定単語辞書131を有する音韻タイプライタ用タスク711を参照して、例えば、“k/i/m/i/n/o/n/a/m/a/e/w/a/e/s/u/d/i:/a:/r/u/d/a/y/o”という音韻系列と、「キミノナマエワエスディーアールダヨ」というカナ列を得る。
【0137】
そして、マッチング部54は、<OOV>が発話のどの区間であるかという情報に基づき、得られた音韻系列およびカナ列から、<OOV>に相当する区間、すなわち、名前の区間の音韻系列とカナ列とを切り出し、“e/s/u/d/i:/a:/r/u”という音韻系列と「エスディーアール」というカナ列とを得る。また、マッチング部54は、同区間の音声データも得る。この名前を抽出する処理の詳細は、本出願人が先に提案した特願2001-382579号に開示されている。
【0138】
ステップS62の処理後は、ステップS63に進み、マッチング部54は、ステップS62の処理で抽出した名前の音韻系列、カナ列、および音声データを、未知語獲得部56に供給し、クラスタリングを行う。クラスタリングの詳細は、本出願人が先に提案した特願2001-097843号に開示されている。このクラスタリングの結果、未知語獲得部56の各クラスタは、代表の音韻系列とカナ列とを有する。
【0139】
ステップS63の処理後は、ステップS64に進み、ステップS62で認識された音声の認識結果(例えば、「キミノナマエワエスディーアールダヨ」というカナ列)を、名前登録用アプリケーション部211に供給する。
【0140】
図23は、図22のステップS63の処理で、未知語獲得部56においてクラスタリングされた、特徴空間の例を示している。なお、図23においては、図が煩雑になるのを避けるため、2つの特徴量(特徴パラメータ)1と2で定義される特徴空間を示してある(上述の図3においても同様)。図23では、特徴空間において、「あらら」、「さにー」、「とーきょー」、「たろう」という4個の名前がクラスタリングされている。
【0141】
即ち、図23では、特徴空間において、「あらら」クラスタ151、「さにー」クラスタ152、「とーきょー」クラスタ153、「たろう」クラスタ154の4つのクラスタが構成されており、各クラスタには、代表となる音韻系列(図23の例の場合、“a/r/a/r/a”、“s/a/n/i:”、“t/o:/ky/o:”、“t/a/r/o/u”)、代表的なカナ表記(図23の例の場合、「アララ」、「サニー」、「トーキョー」、「タロウ」)、およびID(図23の例の場合、「1」、「2」、「3」、「5」)が付加されている。
【0142】
図24は、図21のステップS48で単語の情報がエントリされた共通辞書部55の共通辞書の例を示している。図24において、第1行目のエントリは、発音がカナ列で入力され、その発音が「エスディーアール」という文字列であり、カテゴリが“_ロボット名_”と入力されたことを表している。
【0143】
第2行目のエントリは、発音が音声で入力され、その発音のカナ表記と音韻系列が、未知語獲得部56のIDが「5」のクラスタに付加された代表的なカナ表記(図23の例の場合「タロウ」)と音韻系列(図23の例の場合“t/a/r/o:”)であることを表している。第2行目のエントリのカテゴリは、図21のステップS47で、名前登録アプリケーション部21により決定され、“_ユーザ名_”となっている。例えば、ユーザによって「私の名前は太郎です」という発話がされた場合、共通辞書部55に、第2行目のようなエントリが構成される。
【0144】
同様に、第3行目、第4行目のエントリは、発音がカナ列で入力され、その発音がそれぞれ「サニータロウ」、「キタシナガワ」という文字列であり、カテゴリが“_ユーザ名_”“_地名_”と入力されたことを表している。また、第5行目のエントリは、発音が音声で入力され、その発音のカナ表記と音韻系列が、未知語獲得部56のIDが「3」のクラスタに付加された代表的なカナ表記(図23の例の場合「トーキョー」)と音韻系列(図23の例の場合“t/o:/ky/o:”)であることを表している。さらに、第5行目のエントリのカテゴリは、名前登録アプリケーション部21によって、“_地名_”に決定されている。
【0145】
なお、共通辞書においては、発音がカナ列で入力された単語については、その単語の発音を表すカナ列とカテゴリとの組が1つのエントリに登録され、発音が音声入力された単語については、その単語のクラスタを表すIDとカテゴリとの組が1つのエントリに登録される。
【0146】
図25は、図21のステップS49の処理で、マッチング部54が共通辞書部55の内容をタスクに反映させる処理を説明するフローチャートである。なお、この処理は、有効にされているタスク毎に行なわれる。
【0147】
ステップS81において、マッチング部54は、タスク71(図6)における可変単語辞書132とカテゴリテーブル133を初期化する。即ち、可変単語辞書132は、エントリが1つもない状態にされ、カテゴリテーブル133は、各カテゴリに単語が何も属していない状態にされる。
【0148】
ステップS81の処理後は、ステップS82に進み、マッチング部54は、共通辞書部55の内容を可変単語辞書132とカテゴリテーブル133に反映させる。
【0149】
即ち、マッチング部54は、共通辞書部55の共通辞書の中から、カテゴリテーブル133にエントリされているカテゴリと共通する(同一の)カテゴリを選択し、そのカテゴリと、そのカテゴリに対応するクラスタIDまたはカナ発音(カナ列)を取得する。さらに、マッチング部54は、共通辞書からクラスタIDを取得した場合、未知語獲得部56からクラスタIDに対応するカナ列を取得する。
【0150】
マッチング部54は、以上のようにして、共通辞書部55の共通辞書から選択したカテゴリに属する単語のカナ列を取得すると、そのカナ列を、可変単語辞書132にエントリする。また、マッチング部54は、共通辞書から取得したカナ列で表される単語の情報を、カテゴリテーブル133の対応するカテゴリにエントリする。
【0151】
上述の処理によれば、各タスクにおいて、可変単語辞書132は、初期化されてから、共通辞書の内容が反映される。即ち、可変単語辞書132は、共通辞書の内容に基づいて、構築または再構築される。このため、辞書中の特定のエントリに対して削除や変更を行う方法に比べて、容易に、各タスクで整合を保つことができる。
【0152】
また、上述の処理によれば、音声で登録した単語については、各タスクに反映させるたびに、そのときの最新の発音情報を未知語獲得部56から取得するので、可変単語辞書132に登録した後も、未知語獲得部56に音声データを供給するだけで発音情報が更新され、マッチング部54は、そのときの最新の発音情報を参照して、音声を認識することができる。
【0153】
図26は、図25の反映処理を説明するブロック図である。共通辞書部55の共通辞書に、カテゴリに対応してカナ列が記述されている場合、そのカナ列が可変単語辞書132に登録され、カテゴリテーブル133の、共通辞書のカテゴリと同一のカテゴリに、共通辞書のカナ列で表される単語の情報が登録される。
【0154】
一方、共通辞書に、カテゴリに対応してクラスタIDが記述されている場合、未知語獲得部56が参照され、そのクラスタIDに対応する代表カナ列と代表音韻系列が可変単語辞書132に登録されて、カテゴリテーブル133の、共通辞書のカテゴリと同一のカテゴリに、共通辞書のクラスタIDで表される単語の情報が登録される。なお、後述する音声認識処理では、固定単語辞書131と可変単語辞書132の両方が使用される。
【0155】
図27は、図24に示す共通辞書部55の内容が反映された、アプリケーション切替用タスク712の可変単語辞書132の例である。アプリケーション切替用タスク712のカテゴリテーブル133が図13に示すような場合、図24の共通辞書と共通しているカテゴリは、“_ロボット名_”であるので、マッチング部54は、図24の共通辞書から“_ロボット名_”に対応する「エスディーアール」というカナ発音を取得する。
【0156】
そして、マッチング部54は、図27に示すように、可変単語辞書132のトランスクリプションに、図24の共通辞書から取得したカナ発音「エスディーアール」をエントリする。さらに、マッチング部54は、トランスクリプション「エスディーアール」に対応する音韻系列に、カナ音韻変換規則115(図8)に基づいて、カナ発音「エスディーアール」に対応する“e/s/u/d/i:/a:/r/u”を記述する。
【0157】
また、マッチング部54は、トランスクリプション「エスディーアール」で表される単語のシンボルとして、「OOV00001」を登録する。ここでは、シンボルを、「“OOV”+通し番号」を意味する「OOV00001」としたが、シンボルは、その単語を一意に識別できる文字列であればよい。即ち、シンボルとしては、例えば、カテゴリ名を先頭に付加して、「_ロボット名_::OOV00001」などを用いることも可能である。
【0158】
図28は、図24の共通辞書の内容が反映されたアプリケーション切替用タスク712のカテゴリテーブル133の例を示している。図27に示したように、可変単語辞書132に、図24の共通辞書の内容が反映された場合、カテゴリテーブル133の内容は、図13に示した、“_ロボット名_”のカテゴリに単語が登録されていない状態から、図27の可変単語辞書132に登録されたカテゴリ“_ロボット名_”に属する単語のシンボル「OOV00001」がエントリされた状態となる。
【0159】
次に、図29のフローチャートを参照して、図21のステップS48で共通辞書部55の共通辞書に登録された単語を、マッチング部54が、削除または変更する処理を説明する。共通辞書の単語を削除または変更する処理は、例えば、名前登録アプリケーション部21から指令があった場合や、メモリの制約のために登録単語の不要になったものを削除する必要がある場合など開始される。
【0160】
また、共通辞書の単語を削除または変更する処理は、その他、例えば、未知語獲得部56においてクラスタが削除され、あるいはクラスタが分割、併合されることによって、クラスタに付されるIDが変更され、未知語獲得部56のクラスタに付されているIDと共通辞書に記述されているID(図24で説明したクラスタID)との整合をとる必要がある場合に、共通辞書に記述されたIDを書き替えるために行われる。
【0161】
さらに、共通辞書を削除または変更する処理は、あるカテゴリを言語モデル112に記述されているタスク全てが以後使用しなくなった場合に、そのカテゴリの情報を共通辞書から削除して、共通辞書のスリム化を図るために行われる。
【0162】
なお、未知語獲得部56においてクラスタの代表音韻系列とカナ列とが変更された場合は、その変更内容は、図25の反映処理で、共通辞書に反映されるため、単語の削除または変更する処理(以下、適宜、変更削除する処理という)を行なう必要はない。
【0163】
ステップS101において、マッチング部54は、変更削除処理の対象となる単語を共通辞書の中から決定し、ステップS102に進む。対象となる単語は、ユーザが不図示のボタンによって決定してもよいし、マッチング部54が推定して決定してもよい。
【0164】
ステップS102において、マッチング部54は、変更削除処理の対象となる単語を削除するか否かを判定し、削除すると判定した場合、ステップS103に進む。ステップS103において、マッチング部54は、変更削除処理の対象となる単語のエントリを、共通辞書から削除する。削除とは、カテゴリと発音情報とで特定されるエントリを削除すること、特定のカテゴリのエントリをまとめて削除すること、または特定の発音情報(カナ列またはクラスタID)を有するエントリをまとめて削除することを意味する。
【0165】
一方、ステップS102において、マッチング部54は、変更削除処理の対象となる単語を削除しないと判定した場合、ステップS104に進み、単語を変更するか否かを判定し、単語を変更しないと判定した場合、ステップS102に戻り、変更または削除のどちらかに判定されるまで待機する。
【0166】
また、ステップS104において、マッチング部54は、変更削除処理の対象とする単語を変更すると判定した場合、ステップS105に進み、共通辞書において、変更削除処理の対象となる単語のエントリを変更する。
【0167】
例えば、マッチング部54は、未知語獲得部56のクラスタに分割または併合が発生してクラスタのID番号に変化が生じた場合、未知語獲得部56と整合をとるように、共通辞書のクラスタIDを変更する。また、例えば、ユーザが登録時に入力したカナ列を後で修正したくなった場合、マッチング部54は、名前登録用アプリケーション部211の指令により、共通辞書の対象となる単語(図21のステップS48で共通辞書にエントリされた単語)のカナ発音を、ユーザが、共通辞書の対象となる単語を決定した後入力したカナ列に変更する。
【0168】
ステップS103の処理、またはステップS105の処理の後は、ステップS106に進み、マッチング部54は、図25の反映処理を行ない、共通辞書の内容を各タスクに反映させる。
【0169】
このように、共通辞書の単語を削除または変更した場合、その変更後の内容を各タスクに反映させるので、各アプリケーション部での登録単語の整合性を保つことができる。
【0170】
図30と図31は、図29のステップS105の処理で、マッチング部54が共通辞書の単語のエントリを変更する例を示している。例えば、未知語獲得部56のIDが「5」のクラスタが、IDが「8」のクラスタとIDが「9」のクラスタに分割された場合、マッチング部54は、共通辞書を図30Aに示すような状態から図30Bに示すような状態に変更する。
【0171】
即ち、マッチング部54は、共通辞書部55のクラスタIDが「5」のエントリ(図30Aの第1行目のエントリ)を削除し、その削除したエントリに登録されていた“_ユーザ名_”のカテゴリの2つのエントリを登録する。さらに、マッチング部54は、新たな2つのエントリに、クラスタID番号「8」と「9」をそれぞれ記述する(図30Bの第1行目と第2行目のエントリ)。
【0172】
また、例えば、未知語獲得部56のクラスタIDが「5」のクラスタとIDが「3」のクラスタが併合されて、IDが「10」のクラスタが新たに生成された場合、マッチング部54は、共通辞書を図31Aに示すような状態から図31Bに示すような状態に変更する。
【0173】
即ち、マッチング部54は、共通辞書のクラスタIDが「5」と「3」のエントリ(図31Aの全てのエントリ)のクラスタIDを「10」に変更し、その結果、重複する“_ユーザ名_”というカテゴリとそれに対応するクラスタID番号「10」の2つのエントリを1つにする(例えば、一方を削除する)(図31B)。
【0174】
次に、図5のステップS12の雑談処理を、図32のフローチャートを参照して詳細に説明する。
【0175】
ステップS121において、雑談用アプリケーション部212は、雑談用タスク714を有効にし、ステップS122に進む。ステップS122において、雑談用アプリケーション部212は、マッチング部54を制御して、図25に示すような反映処理を行ない、共通辞書部55の共通辞書の内容を、雑談用タスク714(可変単語辞書132とカテゴリテーブル133)に反映させる。したがって、雑談用タスク714は、無効である間に共通辞書に登録、変更、および削除された単語を獲得することができる。
【0176】
ステップS122の処理後は、ステップS123に進み、雑談用アプリケーション部212は、音声認識エンジン部11を制御して音声認識処理を行い、ステップS124に進む。この音声認識処理の詳細は、図35で後述する。
【0177】
ステップS124において、雑談用アプリケーション部212は、音声認識エンジン部11から認識結果を取得し、その認識結果に対する応答を生成する。即ち、ロボットは、ユーザからの発話に対して応答する。例えば、ユーザからの発話が「エスディーアール(ロボット名)は、何時に起きたの?」である場合、雑談用アプリケーション部212は、ロボットが起きた(起動された)時間(例えば、「7時」)の応答を生成し、ロボットに発話させる。
【0178】
ステップS124の処理後は、ステップS125に進み、雑談用アプリケーション部212は、処理を終了するか否かを判定する。この判定は、例えば、雑談用アプリケーション部212が、ユーザに向かって「終了する?」という発話をさせ、ユーザが不図示のOKボタンを操作(押圧)した(押圧した)か否かによって行う。
【0179】
ステップS125において、処理を終了しないと判定された場合、処理はステップS123に戻り、以下同様の処理を繰り返す。即ち、ロボットはユーザとの雑談を続行する。
【0180】
ステップS125において、処理を終了すると判定された場合、処理はステップS126に進み、雑談用アプリケーション部212は、雑談用タスク714を無効にし、ステップS127に進む。ステップS127において、雑談用アプリケーション部212は処理を終了する。
【0181】
上述の処理では、ユーザが1回発話する毎に雑談用アプリケーション部212が応答を生成したが、ロボットが自発的に発話することで、ユーザの発話を促してもよい。
【0182】
また、図32の処理では、雑談用アプリケーション部212の雑談処理について説明したが、音声コマンダ用アプリケーション部213の音声コマンダ処理、・・・・、その他のアプリケーション部21Mの処理も同様に行われる。但し、ステップS124では、アプリケーション部21に応じて、音声認識エンジン部11による音声認識結果に基づく処理が行なわれる。
【0183】
図33は、図32のステップS122の処理で、図24に示す共通辞書部55の共通辞書の内容が、雑談用タスク714の可変単語辞書132に反映された状態を示している。
【0184】
雑談用タスク714のカテゴリテーブル133が図18に示すような場合、図24の共通辞書と共通しているカテゴリは、“_ロボット名_”と“_地名_”であるので、マッチング部54は、“_ロボット名_”に対応する共通辞書エントリとして図24の1番目のエントリ、“_地名_”に対応するエントリとして図24の4番目と5番目のエントリを取得する。さらに、1番目のエントリからはカナ発音「エスディーアール」を、4番目のエントリからはカナ発音「キタシナガワ」を、5番目のエントリからはクラスタID番号「3」をそれぞれ取得する。
【0185】
そして、マッチング部54は、図33に示すように、可変単語辞書132のトランスクリプションに「エスディーアール」と「キタシナガワ」をエントリする。さらに、マッチング部54は、可変単語辞書132の音韻系列に、カナ音韻変換規則115(図8)に基づき、トランスクリプション「エスディーアール」に対応して“e/s/u/d/i:/a:/r/u”、トランスクリプション「キタシナガワ」に対応して“k/i/t/a/sh/i/n/a/g/a/w/a”を記述する。
【0186】
また、マッチング部54は、未知語獲得部56からクラスタIDが「3」のクラスタを抽出し、その代表的な音韻系列と、カナ列を取得する。例えば、未知語獲得部56が図23に示すような状態の場合、マッチング部54は、クラスタIDが「3」のクラスタ153から、“t/o:/ky/o:”という音韻系列と「トーキョー」というカナ列を取得する。そして、マッチング部は、図33に示すように、取得した音韻系列“t/o:/ky/o:”とカナ列「トーキョー」を、可変単語辞書132の音韻系列とトランスクリプションにそれぞれエントリする。
【0187】
さらに、マッチング部54は、トランスクリプション「エスディーアール」で表される単語のシンボルとして、「OOV00001」を、トランスクリプション「キタシナガワ」で表される単語のシンボルとして、「OOV00002」を、トランスクリプション「トーキョー」で表される単語のシンボルとして、「OOV00003」を登録する。
【0188】
なお、いまの場合、音韻タイプライタ用タスク711と雑談用タスク714のカナ音韻系列規則115が同じであるとして、音韻タイプライタ用タスク711を用いて得られるクラスタの代表的な音韻系列を、そのまま、雑談用タスク714の可変単語辞書132に登録するようにしたが、カナ音韻系列規則115が、音韻タイプライタ用タスク711と雑談用タスク714のカナ音韻系列規則115が異なる場合は、マッチング部54は、未知語獲得部56からクラスタの代表的なカナ列を取得し、雑談用タスク714のカナ音韻系列規則115に基づいて、その可変単語辞書132の音韻系列を記述する。
【0189】
図34は、図24の共通辞書の内容が、図18の雑談用タスク714のカテゴリテーブル133に反映された状態を示している。カテゴリテーブル133においては、“_ロボット名_”のカテゴリに対し、そのカテゴリ“_ロボット名_”に属する単語(トランスクリプションが「エスディーアール」の単語(図33))について可変単語辞書132のシンボル「OOV00001」がエントリされる。さらに、カテゴリテーブル133の“_地名_”のカテゴリに対し、そのカテゴリ“_地名_”に属する単語(トランスクリプション「キタシナガワ」と「トーキョー」の単語(図33))について可変単語辞書132に登録されたシンボル「OOV00002」、「OOV00003」がエントリされる。
【0190】
次に、図32のステップS123の処理で、図2の音声認識エンジン部11が行う音声認識処理を、図35のフローチャートを参照して詳細に説明する。この処理は、ユーザからマイクロホン51に音声が入力されたとき、開始され、アプリケーション切替用タスク712、雑談用タスク714、音声コマンダ用タスク715、・・・、その他のタスク71Nのうち、有効になっているタスク毎に行われる。
【0191】
マイクロホン51で生成された音声信号は、ステップS141において、AD変換部52により、ディジタル信号である音声データに変換され、特徴量抽出部53に供給される。ステップS141の処理後は、ステップS142に進み、特徴量抽出部53は、供給された音声信号から、メルケプストラム等の特徴量を抽出し、ステップS143に進む。
【0192】
ステップS143において、マッチング部54は、固定単語辞書131と可変単語辞書132のシンボルで表される単語のいくつかを連結して、単語列を生成し、音響スコアを計算する。音響スコアは、音声認識結果の候補である単語列と入力音声とが音として(音響的に)どれだけ近いかを表す。
【0193】
ステップS143の処理後は、ステップS144に進み、マッチング部54は、ステップS143で計算された音響スコアに基づいて、音響スコアの高い単語列を所定の個数選択し、ステップS145に進む。
【0194】
ステップS145において、マッチング部54は、ステップS144で選択した各単語列の言語スコアを、言語モデル112を用いて計算し、ステップS146に進む。例えば、言語モデル112として、文法や有限状態オートマンを使用している場合、単語列がその言語モデル112で受理することができるとき、言語スコアは「1」であり、受理することができないとき、言語スコアは「0」である。
【0195】
なお、マッチング部54は、受理することができるとき、ステップS144で選択した単語列を残し、受理することができないとき、ステップS144で選択した単語列を削除してもよい。
【0196】
また、言語モデル112として、統計言語モデルを使用している場合、その単語列の生成確率を言語スコアとする。この言語スコアを求める方法の詳細は、本出願人が先に提案した特願2001-382579号に開示されている。
【0197】
例えば、音声コマンダ用アプリケーション部213の音声コマンダ処理において音声認識処理を行う場合、マッチング部54がステップS144の処理で「<先頭>OOV00001 前 に 進め<終端>」という単語列を選択したとき、その言語スコアは、単語列「<先頭>OOV00001 前 に 進め<終端>」が、図19に示す文法の言語モデル112で受理することができるので「1」となる。
【0198】
即ち、マッチング部54は、カテゴリテーブル133(図28)を参照して、シンボル“OOV00001”のカテゴリが“_ロボット名_”であることを認識し、ステップS144で得られた単語列「<先頭>OOV00001 前 に 進め<終端>」を、カテゴリ名を使用した単語列「<先頭>_ロボット名_ 前 に 進め<終端>」に変換して、図19に示す言語モデル112で受理することができると判定する。
【0199】
一方、例えば、ステップS144で単語列「<先頭>OOV00001 に 進め 前<終端>」が選択された場合、マッチング部54は、カテゴリテーブル133(図28)を参照して、シンボル“OOV00001”のカテゴリが“_ロボット名_”であることを認識し、ステップS144で得られた単語列「<先頭>OOV00001 に進め 前<終端>」を、カテゴリ名を使用した単語列「<先頭>_ロボット名_ に 進め 前<終端>」に変換して、図19に示す言語モデル112で受理することができないと判定し、この単語列の言語スコアを「0」とする。
【0200】
ステップS146において、マッチング部54は、ステップS143で計算された音響スコアと、ステップS145で計算された言語スコアを統合して、各単語列をソートし、例えば、統合したスコアの一番大きい単語列を認識結果として決定する。
【0201】
これにより、音響的にも言語的にも最もふさわしい単語列が認識結果として決定される。
【0202】
ステップS146の処理後は、ステップS147に進み、マッチング部54は、認識結果に音声で登録された単語(未知語獲得部56にクラスタリングされている単語)が含まれているか否かを判定する。
【0203】
ステップS147において、音声で登録された単語が認識結果に含まれていると判定された場合、ステップS148に進み、マッチング部54は、未知語獲得部56にその単語を供給し、未知語獲得部56は、再クラスタリングを行う。そして、処理はステップS149に進む。
【0204】
例えば、ステップS144で、地名(未知語)の「トーキョー」を含む単語列「<先端>今日はトーキョーに行ったんだよ<終端>」が得られた場合、マッチング部54は、未知語である「トーキョー」の音声データ、音韻タイプライタ用タスク711を参照して認識された音韻系列(例えば、“t/o:/ky/o:”)およびカナ列(例えば、「トーキョー」)を未知語獲得部56に供給する。そして、未知語獲得部56は、再クラスタリングを行う。
【0205】
これにより、未知語獲得部56に供給される音声データの量が増え、各クラスタの代表音韻系列と代表カナ列が、正しい値に更新される可能性がある。ただし、副作用として、正しい音韻カナ系列・カナ列が取得された後も、再クラスタリングによって正しくない値に変化してしまう可能性がある。そのような副作用を防ぐため、ユーザからの指示があった場合は、その時点でのカナ列を共通辞書のエントリに記述すれば、発音を固定することができる。例えば、図23において、ID=3のクラスタのカナ列が「トーキョー」という発音になった時点で、図24の共通辞書において「クラスタID=3」と記述されている箇所を「カナ発音:トーキョー」に書き換える(5番目のエントリがその書き換えの対象となる)。こうすることで、以降でID=3のクラスタのカナ列が「トーキョー」以外に変化しても、共通辞書の5番目のエントリの発音は「トーキョー」で固定される。
【0206】
一方、ステップS147において、マッチング部54は、音声認識結果に音声で登録された単語が含まれていないと判定した場合、ステップS148をスキップして、ステップS149に進む。
【0207】
ステップS149において、マッチング部54は、タスクに対応するアプリケーション部21に、ステップS146の処理で決定された認識結果を供給する。
【0208】
ここで、雑談用アプリケーション部212の雑談処理において、マッチング部54が、図35のステップS144で、例えば、単語列「<先頭>OOV00001 は何時 に 起きた の<終端>」を選択した場合の言語スコアを求める式を図36に示す。
【0209】
言語スコア「Score(<先頭>OOV00001 は 何時 に 起きた の<終端>)」は、式(1)に示すように、単語列「<先頭>OOV00001 は 何時 に 起きた の<終端>」の生成確率である。
【0210】
言語スコア「Score(<先頭>OOV00001 は 何時 に 起きた の<終端>)」の値は、正確には、式(2)に示すように、「P(<先頭>)P(OOV00001|<先頭>)P(は|<先頭>OOV00001)P(何時|<先頭>OOV00001 は)P(に|<先頭>OOV00001 は 何時)P(起きた|<先頭>OOV00001 は 何時 に)P(の|<先頭>OOV00001 は 何時 に 起きた)P(<終端>|<先頭>OOV00001 は 何時 に 起きた の)で求められるが、図16に示すように、言語モデル112は、tri-gramを用いているので、条件部分「<先頭>OOV00001 は」、「<先頭>OOV00001 は 何時」、「<先頭>OOV00001 は 何時 に」、「<先頭>OOV00001 は 何時 に 起きた」、および「<先頭>OOV00001 は 何時 に 起きた の」は、直前の最大2単語「OOV00001 は」、「は 何時」、「何時 に」、「に 起きた」、および「起きた の」にそれぞれ限定した条件付確率で近似する(式(3))。
【0211】
この条件付確率は、言語モデル112(図16)を参照することによって求められるが、言語モデル112は、シンボル「OOV00001」を含んでいないので、マッチング部54は、図34のカテゴリテーブル133を参照して、シンボル「OOV00001」で表される単語のカテゴリが、“_ロボット名_”であることを認識し、「OOV00001」を“_ロボット名_”に変換する。
【0212】
即ち、式(4)に示すように、「P(OOV00001|<先頭>)」は、「P(_ロボット名_|<先頭>)P(OOV00001|_ロボット名)」に変更され、「P(_ロボット名_|<先頭>)」/N」で近似される。なお、Nは、カテゴリテーブル133の“_ロボット名_”のカテゴリに属している単語の数を表す。
【0213】
即ち、確率をP(X|Y)という形式で記述した場合、単語XがカテゴリCに属する単語である場合、言語モデル112からP(C|Y)を求め、その値に、P(X|C)(カテゴリCから単語Xが生成される確率)を掛ける。カテゴリCに属する単語が全て等確率で生成されると仮定すれば、カテゴリCに属する単語がN個ある場合、P(X|C)は、1/Nと近似できる。
【0214】
図34において、カテゴリ“_ロボット名_”には、シンボル「OOV00001」で表される単語のみが属しているので、N」は「1」となる。したがって、式(5)に示すように、「P(は|<先頭>OOV00001)」は、「P(は|<先頭>_ロボット名_)」となる。また、「P(何時|OOV00001 は)」は、式(6)に示すように、「P(何時|_ロボット名_ は)となる。
【0215】
これにより、可変単語を含む単語列に対しても、言語スコアを計算することができ、可変単語を認識結果に出現させることが可能となる。
【0216】
上述の例では、アプリケーション部21の起動とタスク71の有効、アプリケーション部21の終了とタスク71の無効が連動するようにしたが、これを別のタイミングに行って、例えば、アプリケーション部21の起動中にタスクの有効や無効を何度も切り替えたり、1つのアプリケーションで複数のタスクを制御したりすることも可能である。
【0217】
この場合、有効や無効の切替を頻繁に繰り返すタスクでは、そのたびにメモリの確保や開放を繰り返すと、効率が悪いので、無効後もフラグ(そのタスクが無効であることを表すフラグ)を立てるだけで、メモリを確保したままにしておくこともできる。
【0218】
また、上述の例では、ロボットシステムの起動時に共通辞書部55の共通辞書には何も記億されていない状態であるとしたが、共通辞書に、いくつかの単語が予め記憶されていてもよい。例えば、ロボットの商品名は、そのロボットの名前に登録されることが多いので、ロボットの商品名を予め共通辞書の“_ロボット名_”のカテゴリに登録しておいてもよい。
【0219】
図37は、ロボットシステムの起動時に、ロボットの商品名「エスディーアール」がカテゴリ“_ロボット名_”にエントリされている場合の共通辞書の例を示している。図37において、ロボットシステムの起動時には、カテゴリ“_ロボット名_”に、カナ発音「エスディーアール」がエントリされているので、ユーザは、名前登録を行わなくても、カナ発音「エスディーアール」で表される単語を用いて、ロボットを制御することができる。
【0220】
また、上述の例では、初期段階(出荷時)には未知語獲得部のクラスタは何も生成されていないことを想定していた。しかし、主要な名称についてはクラスタを最初から用意しておくと、図21の名前登録処理において名前を音声で入力する場合に、クラスタが用意されている名前については認識されやすくなる。例えば、図3のようなクラスタを出荷時に用意しておくと、「アカ」、「アオ」、「ミドリ」、「クロ」という音声については発音を正しい音韻系列で認識(取得)できる。さらに、クラスタが用意されている名前については、共通辞書に登録した後で発音が変化することは望ましくない。そこで、共通辞書に発音情報を登録する際には、クラスタIDを記述する代わりに、「アカ」、「アオ」、「ミドリ」、「クロ」といったカナ発音(クラスタの代表カナ列)で記述する。
【0221】
さらに、上述の例では、マッチング部54は、共通辞書の内容を全てのタスクに反映させるとしたが、反映させたいタスクにのみ反映させてもよい。例えば、予めタスクに番号(タスクID)を付加しておき、図24の共通辞書を拡張して、「このエントリが有効(または無効)なタスクのリスト」を表す欄を設け、図25の反映処理において、マッチング部54は、「このエントリが有効なタスクのリスト」を表す欄に記述されたタスクIDが付加されたタスクにのみ、共通辞書の内容を反映させればよい。
【0222】
図38は、反映させたいタスクのIDが、共通辞書の「有効なタスク」を表す欄に記述された例を示している。図38において、カテゴリ“_ロボット名_”に属するカナ発音が「エスディーアール」で表される単語は、有効なタスクのIDが「1」、「2」、「4」であるので、タスクIDが「1」、「2」、「4」のタスクの可変単語辞書132とカテゴリテーブル133にのみ、カナ発音「エスディーアール」で表される単語の共通辞書の内容が反映される。
【0223】
また、上述の例では、固定単語辞書131に記憶されている単語は、言語モデル112に記述されている単語であり、可変単語辞書132に記憶される単語は、カテゴリに属する単語であるとしたが、カテゴリに属する単語の一部を、固定単語辞書131に記憶してもよい。
【0224】
図39は、アプリケーション切替用タスク712の固定単語辞書131の例を示し、図40は、起動時のカテゴリテーブル133の例を示している。即ち、図40のカテゴリテーブル133には、カテゴリ“_ロボット名_”と、そのカテゴリ“_ロボット名_”に属する単語のシンボル「OOV00001」が予め登録されている。また、図40の固定単語辞書131には、シンボル「OOV00001」と、そのシンボル「OOV00001」で表される単語のトランスクリプション「エスディーアール」、および音韻系列“e/s/u/d/i:/a:/r/u”が予め登録されている。
【0225】
この場合、単語「エスディーアール」は、カテゴリ“_ロボット名_”に属するものとして音声認識処理が行われる。即ち、単語「エスディーアール」は、最初からロボットの名前として扱われることになる。但し、単語「エスディーアール」は固定単語辞書131に記憶されているため、削除したり、変更することはできない。
【0226】
このように、例えば、ロボットの商品名等、 名前に設定されると想定される単語を予め固定単語辞書131に記憶しておくことによって、ユーザは名前登録を行わずに、ロボットを制御することができる。
【0227】
また、上述の例では、カテゴリのシンボルは全タスクで共通にしていたが、共通でなくてもよい。この場合、図41乃至図44に示すような変換テーブルをタスク内に用意すればよい。
【0228】
即ち、例えば、あるタスクTで、カテゴリ“_ROBOT_NAME_”とカテゴリ“_USER_NAME_”が記述されている場合、図41の変換テーブルによれば、タスクTにおいて、共通辞書部55でカテゴリ“_ロボット名_”に属する単語の共通辞書の内容は、“_ROBOT_NAME_”というカテゴリに反映される。また、タスクTにおいて、カテゴリ“_ユーザ名_”に属する単語の共通辞書の内容は、“_USER_NAME_”というカテゴリに反映される。
【0229】
また、例えば、あるタスクTで、カテゴリ“_固有名詞_”が記述されている場合、図42の変換テーブルによれば、タスクTにおいて、共通辞書部55で、カテゴリ“_ロボット名_”に属する単語の共通辞書の内容も、カテゴリ“_ユーザ名_”に属する単語の共通辞書の内容も、“_固有名詞_”というカテゴリに反映される。
【0230】
さらに、例えば、あるタスクTで、カテゴリ“_姓_”とカテゴリ“_名_”が記述されている場合、図43の変換テーブルによれば、タスクTにおいて、共通辞書部55で、カテゴリ“_ユーザ名_”に属する単語の共通辞書の内容は、カテゴリ“_姓_”とカテゴリ“_名_”とに変換・複製される。共通辞書の内容をこのタスクに反映させるステップ(図25)において、例えば、図24の2番目のエントリは、変換テーブルにしたがって「_ユーザ名_ クラスタID=5」から「_姓_ クラスタID=5」と「_名_ クラスタID=5」との2エントリに変換・複製され、それからこのタスクの固定単語辞書とカテゴリテーブルとに反映される。
【0231】
また、例えば、あるタスクTで、カテゴリが記述されていない場合、図44の変換テーブルによれば、タスクTにおいて、共通辞書部55のカテゴリ“_ロボット名_”、カテゴリ“_ユーザ名_”、カテゴリ“_地名_”に属する単語が、シンボル「UNK」で表される。なお、「UNK」は、「Unknown word」を意味する。
【0232】
これにより、カテゴリが記述されていないタスクにおいても、言語モデル112に、シンボル「UNK」を記述しておくだけで、マッチング部54は、カテゴリ“_ロボット名_”、カテゴリ“_ユーザ名_”、カテゴリ“_地名_”に属する単語を認識することができる。
【0233】
図45は、本発明を適用したロボット制御システム1を備えた2足歩行型のロボットの外観構成例を示している。ロボット201は、胴体部ユニット213の上部に頭部ユニット211が配設されるとともに、胴体部ユニット213の上部左右にそれぞれ同じ構成の腕部ユニット212A、212Bがそれぞれ配設され、かつ胴体部ユニット213の下部左右にそれぞれ同じ構成の脚部ユニット214A、214Bがそれぞれ所定位置に取り付けられことにより構成されている。
【0234】
また、頭部ユニット211には、このロボット201の「目」として機能するCCD(Charge Coupled Device)カメラ221A,221B、「耳」として機能するマイクロホン222A,222B、および「口」として機能するスピーカ223がそれぞれ所定位置に配置されている。
【0235】
図46は、ロボットの電気的構成例を示している。ロボット制御システム1の指令により、ユニット制御システム231および対話制御システム232は、ロボット201の動作を制御する。即ち、ユニット制御システム231は、ロボット201の頭部ユニット211、腕部ユニット212A,212B、および脚部ユニット214A,214Bのそれぞれを必要に応じて制御し、ロボット201に所定の動作をさせる。また、対話制御システム232は、ロボット201の発話を制御し、必要に応じて、スピーカ223から、所定の発話をさせる。
【0236】
なお、上述の説明において、単語とは、音声を認識する処理において、1つのまとまりとして扱った方がよい単位のことであり、言語学的な単語とは必ずしも一致しない。例えば、「タロウ君」は、それ全体を1単語として扱ってもよいし、「タロウ」、「君」という2単語として扱ってもよい。さらに、もっと大きな単位である「こんにちはタロウ君」等を1単語として扱ってもよい。
【0237】
また、音韻とは、音響的に1つの単位として扱った方が処理上都合のよいもののことであり、音声学的な音韻や音素とは必ずしも一致しない。例えば、「東京」の「とう」の部分を“t/o/u”という3個の音韻記号で表すことも可能であり、または“o”の長音である“o:”という記号を用意してもよい。さらに、“t/o/o”と表してもよい。他にも、無音を表す記号を用意したり、さらにそれを「発話前の無音」「発話に挟まれた短い無音区間」「「っ」」の部分の無音」のように細かく分類してもよい。
【0238】
また、以上においては、ロボット装置について説明したが、本発明は、音声認識や音声合成、翻訳、その他の言語処理を利用したアプリケーションを有する装置に適用することができる。
【0239】
さらに、本発明は、例えば、広辞苑に登録された辞書の中から、所定の用語だけを抜き出して、その用語辞書をつくる装置に適用することができる。
【0240】
また、上述の説明において、アプリケーション部が複数ある場合について説明したが、アプリケーション部は1つでもよい。
【0241】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、上述した処理は、図47に示されるようなパーソナルコンピュータ600により実行される。
【0242】
図47において、CPU(Central Processing Unit)601は、ROM(Read Only Memory)602に記憶されているプログラム、または、記憶部608からRAM(Random Access Memory)603にロードされたプログラムに従って各種の処理を実行する。RAM603にはまた、CPU601が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【0243】
CPU601、ROM602、およびRAM603は、内部バス604を介して相互に接続されている。この内部バス604にはまた、入出力インターフェース605も接続されている。
【0244】
入出力インターフェース605には、キーボード、マウスなどよりなる入力部606、CRT,LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部607、ハードディスクなどより構成される記憶部608、モデム、ターミナルアダプタなどより構成される通信部609が接続されている。通信部609は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行なう。
【0245】
入出力インターフェース605にはまた、必要に応じてドライブ610が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア621が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部608にインストールされる。
【0246】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0247】
この記録媒体は、図47に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア621よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM602や記憶部608が含まれるハードディスクなどで構成される。
【0248】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0249】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表わすものである。
【0250】
ところで、本出願人が先に提案した特願2001-382579号には、未知語獲得機構で獲得した単語を言語モデルに反映させるまでの一連の処理と、言語モデルに反映させた単語を以降の認識結果に出現させるための処理についての発明が開示されている。
【0251】
しかしながら、特願2001-382579号の発明は、1つの単語登録用のアプリケーションと、1つの登録した単語を使用するアプリケーションから構成されており、音声認識を行うアプリケーションが複数になった場合については想定していないため、アプリケーションが複数、しかも可変個存在するシステムにおいて、登録した単語をそのアプリケーションに反映させるときの上述した課題、および複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題を解決することが困難であった。
【0252】
また、本出願人が先に提案した特願2002-072718号には、「私の名前はタロウ(未知語)です。」という発話から、未知語である「タロウ」という単語を抽出して、名前として獲得するという発明が開示されている。
【0253】
しかしながら、特願2002-072718号の発明は、未知語を言語モデルに反映させるという上述した課題、登録した単語をそのアプリケーションに反映させるときの上述した課題、および複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題を解決することが困難であった。
【0254】
したがって、特願2001-382579号の発明、および特願2002-072718号の発明では、未知語を言語モデルに反映させるという上述した課題、登録した単語をそのアプリケーションに反映させるときの上述した課題、および複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題すべてを解決することが困難であった。
【0255】
しかしながら、図1のロボット制御システム1においては、言語モデル112にカテゴリを記述しているため、未知語をカテゴリに属させることによって、未知語を言語モデルに反映させるという上述した課題を解決することができる。
【0256】
また、図1のロボット制御システム1においては、共通辞書に基づき、アプリケーションで利用される音声認識の対象となる単語が登録される可変単語辞書132を構築、または再構築するようにしたので、登録した単語をそのアプリケーションに反映させるときの上述した課題、複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題を解決することができる。
【0257】
さらに、キーボードを持たないシステム(例えば、ロボット等)の場合、単語登録時に、発音情報を入力することが困難であるという課題があるが、その課題を解決する手段として、例えば、音韻タイプライタを用いて、音声で発音情報を入力する方法が提案されている。
【0258】
しかしながら、音韻タイプライタは、誤認識することがあり、音韻タイプライタをそのまま使用すると、間違った発音で単語を登録してしまうおそれがあるという課題があった。例えば、「エスディーアール」の発音を音韻タイプライタで認識させ、音韻タイプライタが誤認識して「イルニヤル」という結果を出力した場合、「イルニヤル」を発音情報として採用してしまうと、間違った発音で単語が登録されるため、以降は、例えば、「エスディーアール、こんにちは」という発話は認識されにくいが、「イスニヤル、こんにちは」という発話は認識されやすいという状況が発生してしまう。
【0259】
そこで、図1のロボット制御システム1においては、音声で登録した単語について、各タスクに反映させるたびに、そのときの最新の発音情報を未知語獲得部56から取得するので、音韻タイプライタが誤認識し、誤認識された単語が可変単語辞書132に登録した後も、未知語獲得部56に音声データを供給するだけで発音情報が更新され、そのときの最新の発音情報を得ることができ、正常な認識結果を得る可能性がある。
【0260】
即ち、図1のロボット制御システム1においては、未知語を言語モデルに反映させるという上述した課題、登録した単語をそのアプリケーションに反映させるときの上述した課題、複数のアプリケーションに対して登録した単語を削除または変更するときの上述した課題、およびキーボードを持たないシステムにおいて、登録したい単語の発音情報を入力するときの上述した課題、すなわち上述した全ての課題を解決することができる。
【0261】
【発明の効果】
以上の如く、本願発明によれば、単語を登録することができる。特に、複数のアプリケーションに対応する単語を登録する場合においても、登録した単語を、各アプリケーションにおいて共通に使用することができる。また、アプリケーションの起動前に登録した単語も、そのアプリケーションで使用することができる。さらに、登録単語を変更した場合においても、各アプリケーションで整合性を保つことができる。
【図面の簡単な説明】
【図1】本発明を適用したロボット制御システムの構成例を示すブロック図である。
【図2】図1の音声認識エンジン部の構成例を示すブロック図である。
【図3】図2の未知語獲得部のクラスタの例を示す図である。
【図4】図1のロボット制御システムにおけるロボット制御処理を説明するフローチャートである。
【図5】図1のロボット制御システムにおけるロボット制御処理を説明するフローチャートである。
【図6】図2のタスクの構成例を示す図である。
【図7】図6の音韻リストの例を示す図である。
【図8】図6のカナ音韻変換規則の例を示す図である。
【図9】図2の音韻タイプライタ用タスクの言語モデルの例を示す図である。
【図10】図2の音韻タイプライタ用タスクの固定単語辞書の例を示す図である。
【図11】図2のアプリケーション切替用タスクの言語モデルの例を示す図である。
【図12】図2のアプリケーション切替用タスクの固定単語辞書の例を示す図である。
【図13】図2のアプリケーション切替用タスクのカテゴリテーブルの例を示す図である。
【図14】図2の名前登録用タスクの言語モデルの例を示す図である。
【図15】図2の名前登録用タスクの固定単語辞書の例を示す図である。
【図16】図2の雑談用タスクの言語モデルの例を示す図である。
【図17】図2の雑談用タスクの固定単語辞書の例を示す図である。
【図18】図2の雑談用タスクのカテゴリテーブルの例を示す図である。
【図19】図2の音声コマンダ用タスクの言語モデルの例を示す図である。
【図20】図2の音声コマンダ用タスクの固定単語辞書の例を示す図である
【図21】図5のステップS9の名前登録処理を説明するフローチャートである。
【図22】図21のステップS43の名前認識処理を説明するフローチャートである。
【図23】図2の未知語獲得部のクラスタの例を示す図である。
【図24】図2の共通辞書部の例を示す図である。
【図25】図21のステップS49の反映処理を説明するフローチャートである。
【図26】図25の反映処理を説明するブロック図である。
【図27】図2の名前登録用タスクの可変単語辞書の例を示す図である。
【図28】図2の名前登録用タスクのカテゴリテーブルの例を示す図である。
【図29】図2のマッチング部における単語の削除または変更処理を説明するフローチャートである。
【図30】図2の共通辞書部の変更の例を示す図である。
【図31】図2の共通辞書部の変更の例を示す図である。
【図32】図5のステップS12の雑談処理を説明するフローチャートである。
【図33】図2の雑談用タスクの可変単語辞書の例である。
【図34】図2の雑談用タスクのカテゴリテーブルの例である。
【図35】図32のステップS123の音声認識処理を説明するフローチャートである。
【図36】言語スコアの計算式の例を示すである。
【図37】図2の共通辞書部の変形例を示すである。
【図38】図2の共通辞書部の変形例を示す図である。
【図39】図6の固定単語辞書の変形例を示す図である。
【図40】図6のカテゴリテーブルの例を示す図である。
【図41】カテゴリ変換テーブルの例を示す図である。
【図42】カテゴリ変換テーブルの例を示す図である。
【図43】カテゴリ変換テーブルの例を示す図である。
【図44】カテゴリ変換テーブルの例を示す図である。
【図45】ロボットの外観構成を示す斜視図である。
【図46】ロボットの電気的構成を示すブロック図である。
【図47】パーソナルコンピュータの例を示す図である。
【符号の説明】
11 音声認識エンジン部, 21 アプリケーション部, 31 アプリケーション管理部, 51 マイクロホン, 52 AD変換部, 53 特徴量抽出部, 54 マッチング部, 55 共通辞書部, 56 未知語獲得部,71 タスク, 111 音響モデル, 112 言語モデル, 113 辞書, 114 音韻リスト, 115 カナ音韻変換規則, 116 サーチパラメータ, 131 固定単語辞書, 132 可変単語辞書, 133 カテゴリテーブル
Claims (7)
- 言語処理を利用する複数のアプリケーションを有する言語処理装置であって、
単語が登録される登録辞書を記憶する登録辞書記億手段と、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記アプリケーションごとに、前記登録辞書に基づいて構築する構築手段と、
前記登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理手段と、
前記専用辞書の単語を削除する削除手段と
を備え、
前記専用辞書に登録されたすべての単語が削除された後、
前記構築手段は、単語が追加、削除、または変更された前記登録辞書に基づいて、前記専用辞書を再構築する
ことを特徴とする言語処理装置。 - 前記専用辞書は、所定の単語が予め登録されている固定辞書と、登録される単語が可変の可変辞書とを、少なくとも含み、
前記構築手段は、前記専用辞書のうちの前記可変辞書を構築する
ことを特徴とする請求項1に記載の言語処理装置。 - 前記専用辞書は、単語のカテゴリが登録されたカテゴリテーブルをさらに含み、
前記構築手段は、前記登録辞書の単語のうち、前記カテゴリテーブルに登録されたカテゴリの単語を、前記可変辞書に登録することにより、前記可変辞書を構築する
ことを特徴とする請求項2に記載の言語処理装置。 - 前記カテゴリの単語がどのように連鎖するかを示す連鎖情報を記述する言語モデルを記憶する言語モデル記憶手段と、
前記専用辞書と前記言語モデルに基づいて音声認識を行う認識処理手段と
をさらに備える
請求項3に記載の言語処理装置。 - 言語処理を利用する複数のアプリケーションを有する言語処理装置の言語処理方法であって、
単語が登録される登録辞書を記憶する登録辞書記億ステップと、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記アプリケーションごとに、前記登録辞書に基づいて構築する構築ステップと、
前記登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理ステップと、
前記専用辞書の単語を削除する削除ステップと、
前記専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された前記登録辞書に基づいて、前記専用辞書を再構築する再構築ステップと
を含むことを特徴とする言語処理方法。 - 複数のアプリケーションの言語処理を行なうプログラムであって、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記アプリケーションごとに、単語が登録される前記登録辞書に基づいて構築する構築ステップと、
前記登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理ステップと、
前記専用辞書の単語を削除する削除ステップと、
前記専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された前記登録辞書に基づいて、前記専用辞書を再構築する再構築ステップと
をコンピュータに実行させることを特徴とするプログラムが記録されている記録媒体。 - 複数のアプリケーションの言語処理を行なうプログラムであって、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記アプリケーションごとに、単語が登録される前記登録辞書に基づいて構築する構築ステップと、
前記登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理ステップと、
前記専用辞書の単語を削除する削除ステップと、
前記専用辞書に登録されたすべての単語が削除された後、単語が追加、削除、または変更された前記登録辞書に基づいて、前記専用辞書を再構築する再構築ステップと
をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003042019A JP4392581B2 (ja) | 2003-02-20 | 2003-02-20 | 言語処理装置および言語処理方法、並びにプログラムおよび記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003042019A JP4392581B2 (ja) | 2003-02-20 | 2003-02-20 | 言語処理装置および言語処理方法、並びにプログラムおよび記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004252121A JP2004252121A (ja) | 2004-09-09 |
JP4392581B2 true JP4392581B2 (ja) | 2010-01-06 |
Family
ID=33025410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003042019A Expired - Fee Related JP4392581B2 (ja) | 2003-02-20 | 2003-02-20 | 言語処理装置および言語処理方法、並びにプログラムおよび記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4392581B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7634406B2 (en) * | 2004-12-10 | 2009-12-15 | Microsoft Corporation | System and method for identifying semantic intent from acoustic information |
JP5062171B2 (ja) * | 2006-03-23 | 2012-10-31 | 日本電気株式会社 | 音声認識システム、音声認識方法および音声認識用プログラム |
JP2008064885A (ja) * | 2006-09-05 | 2008-03-21 | Honda Motor Co Ltd | 音声認識装置、音声認識方法、及び音声認識プログラム |
US8620658B2 (en) | 2007-04-16 | 2013-12-31 | Sony Corporation | Voice chat system, information processing apparatus, speech recognition method, keyword data electrode detection method, and program for speech recognition |
JP4987682B2 (ja) * | 2007-04-16 | 2012-07-25 | ソニー株式会社 | 音声チャットシステム、情報処理装置、音声認識方法およびプログラム |
TW201505023A (zh) * | 2013-07-19 | 2015-02-01 | Richplay Information Co Ltd | 個人化語音助理之方法 |
KR102323640B1 (ko) * | 2018-08-29 | 2021-11-08 | 주식회사 케이티 | 음성 인식 서비스를 제공하는 장치, 방법 및 컴퓨터 판독가능 매체 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3105930B2 (ja) * | 1991-02-28 | 2000-11-06 | 株式会社リコー | 音声認識装置 |
JPH09230889A (ja) * | 1996-02-23 | 1997-09-05 | Hitachi Ltd | 音声認識応答装置 |
JPH1124695A (ja) * | 1997-06-27 | 1999-01-29 | Sony Corp | 音声認識処理装置および音声認識処理方法 |
JPH11296181A (ja) * | 1998-04-07 | 1999-10-29 | Ricoh Co Ltd | 音楽再生装置 |
JPH11327030A (ja) * | 1998-05-15 | 1999-11-26 | Canon Inc | カメラ制御装置及び方法並びに記憶媒体 |
JP2001249686A (ja) * | 2000-03-08 | 2001-09-14 | Matsushita Electric Ind Co Ltd | 音声認識方法、音声認識装置、およびナビゲーション装置 |
JP2002358095A (ja) * | 2001-03-30 | 2002-12-13 | Sony Corp | 音声処理装置および音声処理方法、並びにプログラムおよび記録媒体 |
-
2003
- 2003-02-20 JP JP2003042019A patent/JP4392581B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004252121A (ja) | 2004-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1575030B1 (en) | New-word pronunciation learning using a pronunciation graph | |
US6910012B2 (en) | Method and system for speech recognition using phonetically similar word alternatives | |
US6374224B1 (en) | Method and apparatus for style control in natural language generation | |
US6952665B1 (en) | Translating apparatus and method, and recording medium used therewith | |
US7299178B2 (en) | Continuous speech recognition method and system using inter-word phonetic information | |
Rabiner et al. | An overview of automatic speech recognition | |
Neto et al. | Free tools and resources for Brazilian Portuguese speech recognition | |
JP2001215993A (ja) | 対話処理装置および対話処理方法、並びに記録媒体 | |
JP2001188781A (ja) | 会話処理装置および方法、並びに記録媒体 | |
WO2004047075A1 (ja) | 音声処理装置および方法、記録媒体並びにプログラム | |
JP4392581B2 (ja) | 言語処理装置および言語処理方法、並びにプログラムおよび記録媒体 | |
Kayte et al. | Implementation of Marathi Language Speech Databases for Large Dictionary | |
EP1111587B1 (en) | Speech recognition device implementing a syntactic permutation rule | |
JP3059398B2 (ja) | 自動通訳装置 | |
Vancha et al. | Word-level speech dataset creation for sourashtra and recognition system using kaldi | |
AbuZeina et al. | Cross-word modeling for Arabic speech recognition | |
Lee et al. | A survey on automatic speech recognition with an illustrative example on continuous speech recognition of Mandarin | |
Fosler-Lussier | A tutorial on pronunciation modeling for large vocabulary speech recognition | |
JPH08263499A (ja) | 自動翻訳装置及び自動通訳装置 | |
JP2001117921A (ja) | 翻訳装置および翻訳方法、並びに記録媒体 | |
Seneff | The use of subword linguistic modeling for multiple tasks in speech recognition | |
Delić et al. | A Review of AlfaNum Speech Technologies for Serbian, Croatian and Macedonian | |
JP2001188556A (ja) | 音声認識方法及び装置 | |
JP2001117583A (ja) | 音声認識装置および音声認識方法、並びに記録媒体 | |
JP4790956B2 (ja) | 音声認識器における綴りモード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081002 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081112 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090917 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090930 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121023 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121023 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131023 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |