JP2004252121A - Language processing apparatus and language processing method, and program and recording medium - Google Patents

Language processing apparatus and language processing method, and program and recording medium Download PDF

Info

Publication number
JP2004252121A
JP2004252121A JP2003042019A JP2003042019A JP2004252121A JP 2004252121 A JP2004252121 A JP 2004252121A JP 2003042019 A JP2003042019 A JP 2003042019A JP 2003042019 A JP2003042019 A JP 2003042019A JP 2004252121 A JP2004252121 A JP 2004252121A
Authority
JP
Japan
Prior art keywords
dictionary
registered
word
name
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.)
Granted
Application number
JP2003042019A
Other languages
Japanese (ja)
Other versions
JP4392581B2 (en
Inventor
Atsuo Hiroe
厚夫 廣江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003042019A priority Critical patent/JP4392581B2/en
Publication of JP2004252121A publication Critical patent/JP2004252121A/en
Application granted granted Critical
Publication of JP4392581B2 publication Critical patent/JP4392581B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To make a registered word commonly usable when the word for a plurality of applications is registered. <P>SOLUTION: When voices are inputted to a microphone 51, an analog-to-digital conversion section 52 converts a voice signal which is an analog signal into voice data which is a digital signal. A characteristic amount extraction section 53 extracts a characteristic amount from voice data and supplies the same to a matching section. The matching section 54 references the task corresponding to the application, recognizes the voice based on the characteristic amount and registers the word in a common dictionary section 55. Also, the matching section 54 changes the word registered in the section 55. The matching section 54 reflects the content of the section 55 to the respective tasks. The invention is applicable to a robot control system. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、言語処理装置および言語処理方法、並びにプログラムおよび記録媒体に関し、特に、例えば、登録した単語を複数のアプリケーションで共通に認識できるようにした言語処理装置および言語処理方法、並びにプログラムに関する。
【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】
【課題を解決するための手段】
本発明の言語処理装置は、単語が登録される登録辞書を記憶する登録辞書記億手段と、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、登録辞書に基づいて構築する構築手段とを備えることを特徴とする。
【0014】
登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理手段と、専用辞書の単語を削除する削除手段とをさらに備え、専用辞書に登録されたすべての単語が削除された後、構築手段は、単語が追加、削除、または変更された登録辞書に基づいて、専用辞書を再構築するようにすることができる。
【0015】
専用辞書は、所定の単語が予め登録されている固定辞書と、登録される単語が可変の可変辞書とを、少なくとも含み、構築手段は、専用辞書のうちの可変辞書を構築するようにすることができる。
【0016】
専用辞書は、単語のカテゴリが登録されたカテゴリテーブルをさらに含み、構築手段は、登録辞書の単語のうち、カテゴリテーブルに登録されたカテゴリの単語を、可変辞書に登録することにより、可変辞書を構築するようにすることができる。
【0017】
アプリケーションは複数存在し、構築手段は、複数のアプリケーション毎の専用辞書を構築するようにすることができる。
【0018】
本発明の言語処理方法は、単語が登録される登録辞書を記憶する登録辞書記億ステップと、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、登録辞書に基づいて構築する構築ステップとを含むことを特徴とする。
【0019】
本発明の記録媒体に記録されているプログラムは、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される登録辞書に基づいて構築する構築ステップを含むことを特徴とする。
【0020】
本発明のプログラムは、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される登録辞書に基づいて構築する構築ステップをコンピュータに実行させることを特徴とする。
【0021】
本発明においては、単語が登録される登録辞書が記憶され、アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書が、登録辞書に基づいて構築される。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。図1は、本発明を適用したロボット制御システム1の構成例を表わしている。
【0023】
このロボット制御システム1において、音声認識エンジン部11は、入力された音声データを認識し、認識結果として、音声データに対応する単語列を生成する。音声認識エンジン部11は、その認識結果を、名前登録用アプリケーション部21、雑談用アプリケーション部21、音声コマンダ用アプリケーション部21、・・・、その他のアプリケーション部21、並びに、アプリケーション管理部31に供給する。
【0024】
名前登録用アプリケーション部21、雑談用アプリケーション部21、音声コマンダ用アプリケーション部21、・・・、その他のアプリケーション部21は、音声認識エンジン部11から供給された認識結果に基づいて、各種の処理を行う。
【0025】
名前登録用アプリケーション部21は、音声認識エンジン部11から供給された認識結果に基づいて、ロボット名、ユーザ名等を音声で登録し、それ以外のアプリケーション部は、名前登録用アプリケーション部21が登録した名前を用い、ユーザからの発話に対応してロボットの動作を制御する。
【0026】
したがって、雑談用アプリケーション部21、音声コマンダ用アプリケーション部21、・・・・、およびその他のアプリケーション部21で行われる音声認識は、名前登録用アプリケーション部21で登録されたロボット名、ユーザ名等に対応する必要がある。
【0027】
雑談用アプリケーション部21は、ロボットに、ユーザと音声で雑談させ、音声コマンダ用アプリケーション部21は、ロボットに、ユーザからの発話に対応する動作を行わせる。例えば、音声コマンダ用アプリケーション部21は、「エスディーアール(ロボット名)、前に進め!」といったユーザからの発話に対応して、ロボットを前に進める。
【0028】
なお、アプリケーション部は、任意の個数用意することができる。以下、名前登録用アプリケーション部21、雑談用アプリケーション部21、音声コマンダ用アプリケーション部21、・・・、およびその他のアプリケーション部21のそれぞれを個々に区別する必要がない場合、適宜、まとめて、アプリケーション部21と称する。
【0029】
アプリケーション管理部31は、音声認識エンジン部11から供給された認識結果に基づいて、アプリケーション部21に対して、起動、終了の指令を行う。例えば、アプリケーション管理部31は、音声認識エンジン部11から「音声コマンダを起動」という認識結果が供給された場合、音声コマンダ用アプリケーション部21を起動する。このとき、複数のアプリケーション部を同時に起動させてもよい。
【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からの特徴パラメータに基づき、音韻タイプライタ用タスク71、アプリケーション切替用タスク71、名前登録用タスク71、雑談用タスク71、音声コマンダ用タスク71、・・・、およびその他のタスク71のうち、その時点で有効にされているタスク毎に、タスク内部のデータベースを必要に応じて参照しながら、マイクロホン51に入力された音声(入力音声)に最も近い単語列を、認識結果として求める。マッチング部54は、その認識結果を、それぞれのタスクに対応するアプリケーション部21、およびアプリケーション管理部31に供給する。
【0034】
なお、タスクとは、音声認識を行うのに必要なデータのセットのことである。即ち、音声認識エンジン部11を、マッチング等を行うプログラム部分と、音響モデル、言語モデル、認識辞書等のデータ部分とに分類した場合のデータ部分、およびデータにアクセスするためのプログラムのことである。
【0035】
したがって、複数のアプリケーションが異なる音響モデル、言語モデル、辞書を用いて音声認識を行う場合であっても、タスクを複数用意することによって、音声認識エンジン部は1つにすることができる。タスクの内部の詳細については、図6で後述する。
【0036】
音韻タイプライタ用タスク71は、音韻タイプライタとして働くタスクであり、音声認識エンジン部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】
アプリケーション切替用タスク71は、アプリケーション管理部31に対応したタスクであり、アプリケーション管理部31が起動した後、アプリケーション管理部31からタスク切替コマンドが供給されると、有効にされる。アプリケーション切替用タスク71によって、マッチング部54は、例えば、「雑談アプリを起動」、「音声コマンダを起動」、「名前登録を起動して」等のアプリケーション部の起動、または終了命令に対応する音声を認識する。
【0038】
名前登録用タスク71は、名前登録用アプリケーション部21に対応したタスクであり、アプリケーション管理部31からの指令により、名前登録用アプリケーション部21が起動された後、名前登録用アプリケーション部21からタスク切替コマンドが供給されると、有効にされる。名前登録用タスク71によって、マッチング部54は、例えば、「君の名前は、<ロボット名を表す未知語>だよ。」、「私の名前は、<人名を表す未知語>です。」といった名前に対応する音声を認識する。
【0039】
雑談用タスク71、音声コマンダ用タスク71、・・・、およびその他のタスク71は、それぞれ雑談用アプリケーション部21、音声コマンダ用アプリケーション部21、・・・、その他のアプリケーション部21に対応したタスクであり、アプリケーション管理部31からの指令により、対応するアプリケーション部が起動された後、対応するアプリケーション部からそれぞれタスク切替コマンドが供給されると、有効にされる。
【0040】
マッチング部54は、雑談用タスク71によって、例えば、「エスディーアール(ロボット名)、何時に起きたの?」というユーザからの雑談としての発話を認識することができる。また、マッチング部54は、音声コマンダ用タスク71によって、例えば、「エスディーアール(ロボット名)、前に1歩進め」というユーザからの指令としての発話を認識することができる。
【0041】
また、マッチング部54は、後述する共通辞書部55に登録された単語を、各タスクに反映させる。
【0042】
なお、以下、音韻タイプライタ用タスク71、アプリケーション切替用タスク71、名前登録用タスク71、雑談用タスク71、音声コマンダ用タスク71、・・・、およびその他のタスク71のそれぞれを個々に区別する必要がない場合、適宜、まとめて、タスク71と称する。
【0043】
共通辞書部55は、タスク71で共通に用いる単語の辞書としての共通辞書を記憶している。共通辞書部55に記憶されている共通辞書には、そこに登録された全単語について、発音情報とカテゴリ情報が記述される。例えば、固有名詞である「エスディーアール(ロボット名)」が共通辞書に登録される場合、「エスディーアール」という発音(音韻情報)と“_ロボット名_”というカテゴリが共通辞書に記述される。詳細は、図24で後述する。
【0044】
未知語獲得部56は、認識用の辞書(図6で後述する固定単語辞書131)に登録されていない名前等の単語(未知語)について、音韻タイプライタ用タスク71によって認識され、マッチング部54から供給された音韻系列およびカナ表記を記憶し、それ以降、その単語の音声を認識できる(他の音声と識別できる)ようにする。
【0045】
即ち、未知語獲得部56は、音韻タイプライタ用タスク71によって認識された未知語の音韻系列およびカナ表記を、いくつかのクラスタに分類する。各クラスタは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は、音韻タイプライタ用タスク71を有効にし、音韻タイプライタ用タスク71が音声認識に使用できる状態にして、ステップS4に進む。ステップS4において、アプリケーション管理部31が起動し、ステップS5に進む。
【0053】
ステップS5において、アプリケーション管理部31は、対応するタスクであるアプリケーション切替用タスク71を有効にし、ステップS6に進む。ステップS6において、音声認識エンジン部11は、マイクロホン51に音声で入力された、アプリケーション部21の起動命令を認識し、認識結果をアプリケーション管理部31に供給する。この音声認識処理の詳細は、図35のフローチャートで後述する。
【0054】
ステップS6の処理後は、図5のステップS7に進み、アプリケーション管理部31は、音声認識エンジン部11から供給された認識結果から、名前登録用アプリケーション部21を起動するか否かを判定し、名前登録用アプリケーション部21を起動すると判定した場合(例えば、認識結果が「名前登録を起動」である場合)、ステップS8に進む。
【0055】
ステップS8において、アプリケーション管理部31は、名前登録用アプリケーション部21を起動させる。ステップS8の処理後は、ステップS9に進み、名前登録用アプリケーション部21は、名前登録処理を行なう。この名前登録処理の詳細は、図21のフローチャートで後述する。
【0056】
ステップS7において、アプリケーション管理部31は、名前登録用アプリケーション部21を起動しないと判定した場合、ステップS10に進み、音声認識エンジン部11による認識結果から、雑談用アプリケーション部21を起動するか否かを判定する。ステップS10において、アプリケーション管理部31は、雑談用アプリケーション部21を起動すると判定した場合(例えば、認識結果が「雑談を起動して」である場合)、ステップS11に進み、雑談用アプリケーション部21を起動させる。
【0057】
ステップS11の処理後は、ステップS12に進み、雑談用アプリケーション部21は、雑談処理を行なう。この雑談処理の詳細は、図32のフローチャートで後述する。
【0058】
ステップS10において、アプリケーション管理部31は、雑談用アプリケーション部21を起動しないと判定した場合、ステップS13に進み、音声認識エンジン部11による認識結果から、音声コマンダ用アプリケーション部21を起動するか否かを判定する。ステップS13の処理において、アプリケーション管理部31は、音声コマンダ用アプリケーション部21を起動すると判定した場合(例えば、認識結果が「音声コマンダ起動」である場合)、ステップS14に進み、音声コマンダ用アプリケーション部21を起動させる。
【0059】
ステップS14の処理後は、ステップS15に進み、音声コマンダ用アプリケーション部21は、音声コマンダ処理を行なう。この音声コマンダ処理の詳細は、図32のフローチャートで後述する。
【0060】
ステップS13において、アプリケーション管理部31は、音声コマンダ用アプリケーション部21を起動しないと判定した場合、音声認識エンジン部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は、アプリケーション切替用タスク71を無効にし、音声認識エンジン部11は、音韻タイプライタ用タスク71を無効にして、アプリケーション管理部31および音声認識エンジン部11は、処理を終了する。
【0065】
なお、上述の処理では、アプリケーション部が、名前登録用アプリケーション部21、雑談用アプリケーション部21、音声コマンダ用アプリケーション部21の3個のときを説明したが、さらにその他のアプリケーション部がある場合は、ステップS13で、音声コマンダ用アプリケーションを起動しないと判定した場合、ステップS6に戻らず、ステップS7,S10,S13と同様に、他のアプリケーションを起動するか否かが判定され、その判定結果に応じて他のアプリケーションが起動される。
【0066】
また、上述の処理では、音声認識の終了は、ユーザによって指令されたが、例えば、所定時間音声が入力されない場合に終了する等、ロボット制御システム1が自動的に判断してもよい。
【0067】
上述の処理によれば、アプリケーション切替用タスク71は、各アプリケーション部21の起動中も有効になっているため、「○○を起動して」という発話が他のアプリケーション部の起動中になされた場合も、その発話を認識して、対応するアプリケーションを起動することができる。例えば、音声コマンダアプリケーション部21が起動中に、ユーザによって「雑談を起動して」と発話された場合、雑談用アプリケーション部21を起動することができる。
【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】
例えば、名前登録用タスク71と雑談用タスク71は、静かな環境で使用することを想定しているので、静かな環境用の音響モデル111を参照し、音声コマンダ用タスク71は、騒がしい環境(ロボットの動作音が大きい環境)で使うことを想定しているので、雑音環境用の音響モデルを参照するようにすることができる。
【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は、音韻タイプライタ用タスク71の言語モデル112(図6)の例を示している。図9において、第1行目の変数“$SYLLABLE”は、全てのカナ表記が「または」を意味する“|”で繋がれているので、そのカナ表記の内の任意の1つを意味する。
【0089】
即ち、ここでは、音韻タイプライタ用タスク71は、音節(シラブル)を単位とする音声認識用のタスクであるとして、図9の言語モデル112は、任意のシラブルが、任意に接続できるという連鎖規則を、BNF(Backus−Naur−Form)形式の文法で表している。なお、言語モデル112は、後述する統計言語モデルを用いてもよい。
【0090】
図10は、音韻タイプライタ用タスク71の固定単語辞書131(図6)の例を示している。「シンボル」は単語を識別するための文字列であり、例えば、カナ表記などを用いることができる。シンボルが同じエントリは、同じ単語のエントリであるとみなされる。また、言語モデル112は、このシンボルを用いて表されている。なお、「<先頭>」と「<終端>」は特殊なシンボルであり、それぞれ「発話前の無音」と「発話後の無音」を表す(後述する図11等においても同様)。
【0091】
また、「トランスクリプション」は、単語の表記を表し、認識結果として出力される文字列はこのトランスクリプションである。「音韻系列」は、単語の発音を音韻系列で表したものである。
【0092】
音韻タイプライタ用タスク71の可変単語辞書132には、音韻タイプライタ用タスク71に単語を追加することは想定していないので、何も記憶されない。また、音韻タイプライタ用タスク71の言語モデル112は、図9に示すように、カテゴリを含まないので、カテゴリテーブル133にも何も記憶されない。
【0093】
図11は、アプリケーション切替用タスク71の言語モデル112(図6)の例を示している。図11の言語モデル112は、BNF形式の文法で記述されている。第1行目の変数“$APPLICATIONS”は、全てのアプリケーション名(「雑談」、「音声コマンダ」、「名前登録」等)が「または」を意味する“|”で繋がれているので、アプリケーション名の内のどれか1つを意味する。
【0094】
また、第2行目の変数“$UTTERANCE”は、“_ロボット名_”と「を」のそれぞれに、「省略可能」を意味する“[]”が付加されているので、「(ロボット名)アプリケーション名(を)起動して」を意味する。ここで、「ロボット名」とは、“_ロボット名_”のカテゴリに登録された単語を示している。
【0095】
例えば、“_ロボット名_”に「エスディーアール」が登録されていた場合、「エスディーアール、音声コマンダ(を)起動して」、「音声コマンダ(を)起動して」等の発話が、図11の言語モデル112を用いて認識される。
【0096】
このように言語モデル112を、カテゴリ名を用いて記述することによって、新たに登録された単語であっても、その単語が、言語モデル112に記述されているカテゴリに含まれるものである場合には、その新たに登録された単語を含む発話を、言語モデル112を用いて認識することができる。
【0097】
図12は、アプリケーション切替用タスク71の固定単語辞書131(図6)の例を示している。図12の固定単語辞書131には、図11の言語モデル112の文法中に記述されるシンボル(図11における「雑談」や「音声コマンダ」等)について、トランスクリプションと音韻系列が記述されている。
【0098】
図13は、アプリケーション切替用タスク71のカテゴリテーブル133(図6)の例を示している。カテゴリテーブル133は、言語モデル112に使用されているカテゴリの種類と、カテゴリに属する単語の情報を記憶する。言語モデル112が図11に示すような場合、アプリケーション切替用タスク71の言語モデル112には、“_ロボット名_”のカテゴリが使用されているため、カテゴリテーブル133には、図13に示すように、“_ロボット名_”がエントリされている。図13においては“_ロボット名_”のカテゴリに属する単語の集合は、空集合であり、まだ“_ロボット名_”に属する単語は何もないことを表している。
【0099】
図13に示したように、カテゴリテーブル133に、カテゴリがエントリされている場合であっても、そのエントリに属する単語がない場合(空集合の場合)、可変単語辞書132には、そのカテゴリに属する単語の情報は記憶されない。
【0100】
図14は、名前登録用タスク71の言語モデル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は、名前登録用タスク71の固定単語辞書131(図6)の例を示している。固定単語辞書131には、図14に示されるような言語モデル112の文法中に記述されるシンボルについて、トランスクリプションと音韻系列が記述されている。
【0104】
名前登録用タスク71の可変単語辞書132には、ここでは、名前登録用タスク71に単語を追加することは想定していないので、何も記憶されない。また、名前登録用タスク71の言語モデル112は、図14に示すように、カテゴリを含まないので、カテゴリテーブル133にも何も記憶されない。
【0105】
図16は、雑談用タスク71の言語モデル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に登録された場合に、その単語を雑談用タスク71で認識することができる。
【0108】
図17は、雑談用タスク71の固定単語辞書131の例を示している。固定単語辞書131には、図16に示されるような言語モデル112の文法中に記述されるシンボルについて、トランスクリプションと音韻系列が記述されている。
【0109】
図18は、雑談用タスク71のカテゴリテーブル133の例を示している。カテゴリテーブル133は、言語モデル112に使用されているカテゴリの種類と、そのカテゴリに属する単語の情報を記憶する。言語モデル112が図16に示すような場合、雑談用タスク71の言語モデル112には、“_ロボット名_”と“_地名_”の2個のカテゴリが使用されているため、カテゴリテーブル133には、図18に示すように、“_ロボット名_”と“_地名_”の2つのカテゴリがエントリされている。図18では、カテゴリ“_ロボット名_”と“_地名_”に属する単語は、まだ何もないことを表している。
【0110】
図19は、音声コマンダ用タスク71の言語モデル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は、音声コマンダ用タスク71の固定単語辞書131の例を示している。固定単語辞書131には、図19に示されるような言語モデル112の文法中に記述するシンボルについて、トランスクリプションと音韻系列が記述されている。
【0114】
なお、「1」と「歩」については、シンボルが重複しているが、これは「1」と「歩」が、それぞれ2つの発音(「イチ」と「イッ」、「ホ」と「ポ」)を持つことを表している。これによって、例えば、「イチホ」、「イッポ」という異なる発音がされた発話を、同じ「1歩」として認識することができる。
【0115】
言語モデル112が図19に示すような場合、音声コマンダ用タスク71の言語モデル112には、“_ロボット名_”のカテゴリだけが使用されているため、音声コマンダ用タスク71のカテゴリテーブル133は、図13に示した、アプリケーション切替用タスク71のカテゴリテーブル133と同じになる。また、“_ロボット名_”に属する単語がまだ発話されていない状態では、音声コマンダ用タスク71の可変単語辞書132には、何も記憶されない。
【0116】
次に、名前登録用アプリケーション部21が、図5のステップS9で行う名前登録処理を、図21のフローチャートを用いて、詳細に説明する。なお、この処理は、ユーザの発話によって名前登録用アプリケーション部21が起動されたときに開始される。この処理が開始される前に、ユーザは、例えば、不図示のモード切替ボタンによって、名前を登録する名前登録モードとして、音声により名前を入力する音声入力モード、またはキーボード等によるカナ入力により名前を入力するカナ入力モードのうちのいずれか一方を選択しておく。
【0117】
ステップS41において、名前登録用アプリケーション部21は、音声認識エンジン部11の名前登録用タスク71を有効にし、この名前登録用タスク71で音声を認識できるようにする。
【0118】
ステップS41の処理後は、ステップS42に進み、名前登録用アプリケーション部21は、名前登録モードが音声入力モードであるか否かを判定し、音声入力モードであると判定した場合、ステップS43に進み、マッチング部54に名前認識処理を行わせ、ステップS44に進む。(または、ステップS42でユーザが発話した場合は「名前を音声で入力した」と判定してステップS43に進み、不図示のカナ入力ボタンが押された場合は、「名前をカナ文字で入力した」と判定してステップS46に進む。)この名前認識処理の詳細は、図22で後述する。
【0119】
ステップS44において、名前登録用アプリケーション部21は、マッチング部54でステップS43の名前認識処理が行われることにより得られる名前の音声認識結果(認識された名前)が正しいか否かを判定する。この判定は、例えば、認識結果をユーザに向かって発話し、ユーザから不図示のOKボタンが操作されたか否かによって行われる。
【0120】
ステップS44において、名前の音声認識結果が正しくないと判定された場合、ユーザに再度発話するよう促し、ステップS43に戻り、再び名前認識処理を行う。ステップS44において、認識結果が正しいと判定された場合、ステップS47に進む。
【0121】
一方、ステップS42において、名前登録アプリケーション部21は、名前登録モードが音声入力モードではないと判定した場合、ステップS45に進み、名前登録モードがカナ入力モードであるか否かを判定する。
【0122】
ステップS45において、名前登録モードがカナ入力モードではないと判定された場合、ユーザによって名前登録モードが選択されていないので、名前登録モードが選択されるまで待機し、ユーザによる名前入力モードの選択を待って、ステップS42に戻る。
【0123】
ステップS45において、名前登録モードがカナ入力モードであると判定された場合、ステップS46に進み、名前登録用アプリケーション部21は、ユーザによって入力された名前のカナ列と、その名前のカテゴリを取得する。
【0124】
カナ列を入力する方法としては、例えば、ユーザが一時的にキーボードを接続してカナ文字を入力する方法、ロボットの各種スイッチを使用して入力する方法、文字を書いた紙等をロボットに見せて文字認識する方法(例えば、特願2001−135423参照)、無線LAN(Local Area Network)等でロボットとパーソナルコンピュータを接続し、そのパーソナルコンピュータからロボットに転送する方法、インターネット等を経由して、ロボットにダウンロードする方法等がある。また、文字を書いた紙等をロボットに見せて文字認識する方法において、カナ文字を入力するのではなく、カナ漢字交じりの文字列を入力し、名前登録用アプリケーション部21が、カナ列に変換してもよい(特願2001−135423参照)。
【0125】
さらに、ユーザが名前のカナ列を入力するのではなく、予め共通辞書部55の共通辞書に、名前のカナ文字を付加したエントリを与えておき、名前登録用アプリケーション部21は、共通辞書部55を参照することによって、名前のカナ列を取得してもよい。
【0126】
ステップS44またはS46の処理後は、ステップS47に進み、名前登録用アプリケーション部21は、登録する名前のカテゴリを決定する。名前登録モードがカナ入力モードである場合、名前登録用アプリケーション部21は、ステップS46で取得した(ユーザによって入力された)カテゴリを、登録する名前のカテゴリに決定する。
【0127】
即ち、カナ入力モードにおいては、ステップS46において、ユーザに、名前の他、その名前のカテゴリも入力してもらい、ユーザが入力した名前のカテゴリを、登録する名前のカテゴリに決定する。一方、名前登録モードが音声入力モードである場合、名前登録用アプリケーション部21は、ステップS43の名前認識処理で得られた名前のカテゴリを推測して決定する。
【0128】
例えば、音声認識エンジン部11から供給された認識結果が「君」で始まる場合は、登録する名前の属するカテゴリは、“_ロボット名_”であると推測し、「私」で始まる場合は、登録する名前の属するカテゴリは、“_ユーザ名_”であると推測する。また、本出願人が先に提案した特願2001−382579に開示されている、各種のカテゴリ推定方法も用いることができる。
【0129】
ステップS47の処理後は、ステップS48に進み、名前登録用アプリケーション部21は、マッチング部54を制御して、登録する名前の発音情報とカテゴリを共通辞書部55の共通辞書にエントリし、ステップS49に進む。ステップS49において、名前登録用アプリケーション部21は、マッチング部54を制御して、共通辞書の内容を、雑談用タスク71、音声コマンダ用タスク71、・・・、その他のタスク71に反映させる。この反映の詳細は、図25のフローチャートを参照して後述する。
【0130】
このように、共通辞書に登録した名前を他のタスクに反映させることにより、他のタスクでも、この登録した名前を認識することができる。
【0131】
ステップS49の処理後は、ステップS50に進み、名前登録用アプリケーション部21は、名前登録処理を終了するか否かを判定する。この判定は、例えば、終了するかという質問をユーザに向けて発話し、ユーザにより不図示のOKボタンが操作(押圧)されたか否かによって行う。ステップS49において、名前登録用アプリケーションを終了しない(例えば、OKボタンが押されていない)と判定された場合、ステップS42に戻り、他の名前を登録する処理を行なう。
【0132】
また、ステップS50において、名前登録処理を終了する(例えば、OKボタンが押された)と判定された場合、ステップS51に進み、名前登録用アプリケーション部21は、名前登録用タスク71を無効にし、ステップS52に進む。ステップS52において、名前登録用アプリケーション部21は処理を終了する。
【0133】
図22は、図21のステップS43で、図2のマッチング部54が行う名前認識処理を説明するフローチャートである。
【0134】
ステップS61において、マッチング部54は、音声がマイク51に入力されたか否かを判定し、音声が入力されていないと判定した場合、音声が入力されるまで待機する。ステップS61において、音声が入力されたと判定された場合、ステップS62に進む。ここで入力される音声は、例えば、「私の名前は太郎です」、「君の名前はエスディーアールだよ」といった通常の会話でよく、ユーザは、名前登録を意識して、「太郎」「エスディーアール」という名前だけを単独で入力する必要はない。
【0135】
ステップS62において、マッチング部54は、音声を認識し、名前を抽出する。例えば、「君の名前はエスディーアールだよ」という発話がされた場合、図14に示すような言語モデル112と図15に示すような固定単語辞書131を有する名前登録用タスク71を参照して、マッチング部54は、例えば、「<先頭>君の名前は<OOV>だよ<終端>」という認識結果を生成する。また、マッチング部54は、<OOV>が発話のどの区間(最初の発話の何秒目から何秒目まで)であるかという情報を得る。
【0136】
さらに、マッチング部54は、同じ発話に対して、図9に示すような言語モデル112と図10に示すような固定単語辞書131を有する音韻タイプライタ用タスク71を参照して、例えば、“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で認識された音声の認識結果(例えば、「キミノナマエワエスディーアールダヨ」というカナ列)を、名前登録用アプリケーション部21に供給する。
【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の内容が反映された、アプリケーション切替用タスク71の可変単語辞書132の例である。アプリケーション切替用タスク71のカテゴリテーブル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の共通辞書の内容が反映されたアプリケーション切替用タスク71のカテゴリテーブル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は、名前登録用アプリケーション部21の指令により、共通辞書の対象となる単語(図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において、雑談用アプリケーション部21は、雑談用タスク71を有効にし、ステップS122に進む。ステップS122において、雑談用アプリケーション部21は、マッチング部54を制御して、図25に示すような反映処理を行ない、共通辞書部55の共通辞書の内容を、雑談用タスク71(可変単語辞書132とカテゴリテーブル133)に反映させる。したがって、雑談用タスク71は、無効である間に共通辞書に登録、変更、および削除された単語を獲得することができる。
【0176】
ステップS122の処理後は、ステップS123に進み、雑談用アプリケーション部21は、音声認識エンジン部11を制御して音声認識処理を行い、ステップS124に進む。この音声認識処理の詳細は、図35で後述する。
【0177】
ステップS124において、雑談用アプリケーション部21は、音声認識エンジン部11から認識結果を取得し、その認識結果に対する応答を生成する。即ち、ロボットは、ユーザからの発話に対して応答する。例えば、ユーザからの発話が「エスディーアール(ロボット名)は、何時に起きたの?」である場合、雑談用アプリケーション部21は、ロボットが起きた(起動された)時間(例えば、「7時」)の応答を生成し、ロボットに発話させる。
【0178】
ステップS124の処理後は、ステップS125に進み、雑談用アプリケーション部21は、処理を終了するか否かを判定する。この判定は、例えば、雑談用アプリケーション部21が、ユーザに向かって「終了する?」という発話をさせ、ユーザが不図示のOKボタンを操作(押圧)した(押圧した)か否かによって行う。
【0179】
ステップS125において、処理を終了しないと判定された場合、処理はステップS123に戻り、以下同様の処理を繰り返す。即ち、ロボットはユーザとの雑談を続行する。
【0180】
ステップS125において、処理を終了すると判定された場合、処理はステップS126に進み、雑談用アプリケーション部21は、雑談用タスク71を無効にし、ステップS127に進む。ステップS127において、雑談用アプリケーション部21は処理を終了する。
【0181】
上述の処理では、ユーザが1回発話する毎に雑談用アプリケーション部21が応答を生成したが、ロボットが自発的に発話することで、ユーザの発話を促してもよい。
【0182】
また、図32の処理では、雑談用アプリケーション部21の雑談処理について説明したが、音声コマンダ用アプリケーション部21の音声コマンダ処理、・・・・、その他のアプリケーション部21の処理も同様に行われる。但し、ステップS124では、アプリケーション部21に応じて、音声認識エンジン部11による音声認識結果に基づく処理が行なわれる。
【0183】
図33は、図32のステップS122の処理で、図24に示す共通辞書部55の共通辞書の内容が、雑談用タスク71の可変単語辞書132に反映された状態を示している。
【0184】
雑談用タスク71のカテゴリテーブル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】
なお、いまの場合、音韻タイプライタ用タスク71と雑談用タスク71のカナ音韻系列規則115が同じであるとして、音韻タイプライタ用タスク71を用いて得られるクラスタの代表的な音韻系列を、そのまま、雑談用タスク71の可変単語辞書132に登録するようにしたが、カナ音韻系列規則115が、音韻タイプライタ用タスク71と雑談用タスク71のカナ音韻系列規則115が異なる場合は、マッチング部54は、未知語獲得部56からクラスタの代表的なカナ列を取得し、雑談用タスク71のカナ音韻系列規則115に基づいて、その可変単語辞書132の音韻系列を記述する。
【0189】
図34は、図24の共通辞書の内容が、図18の雑談用タスク71のカテゴリテーブル133に反映された状態を示している。カテゴリテーブル133においては、“_ロボット名_”のカテゴリに対し、そのカテゴリ“_ロボット名_”に属する単語(トランスクリプションが「エスディーアール」の単語(図33))について可変単語辞書132のシンボル「OOV00001」がエントリされる。さらに、カテゴリテーブル133の“_地名_”のカテゴリに対し、そのカテゴリ“_地名_”に属する単語(トランスクリプション「キタシナガワ」と「トーキョー」の単語(図33))について可変単語辞書132に登録されたシンボル「OOV00002」、「OOV00003」がエントリされる。
【0190】
次に、図32のステップS123の処理で、図2の音声認識エンジン部11が行う音声認識処理を、図35のフローチャートを参照して詳細に説明する。この処理は、ユーザからマイクロホン51に音声が入力されたとき、開始され、アプリケーション切替用タスク71、雑談用タスク71、音声コマンダ用タスク71、・・・、その他のタスク71のうち、有効になっているタスク毎に行われる。
【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】
例えば、音声コマンダ用アプリケーション部21の音声コマンダ処理において音声認識処理を行う場合、マッチング部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は、未知語である「トーキョー」の音声データ、音韻タイプライタ用タスク71を参照して認識された音韻系列(例えば、“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】
ここで、雑談用アプリケーション部21の雑談処理において、マッチング部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は、アプリケーション切替用タスク71の固定単語辞書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 カテゴリテーブル
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a language processing apparatus, a language processing method, a program, and a recording medium, and more particularly to, for example, a language processing apparatus, a language processing method, and a program that allow a registered word to be commonly recognized by a plurality of applications.
[0002]
[Prior art]
Speech recognition includes isolated word recognition for recognizing a single word and continuous word recognition for recognizing a word string composed of a plurality of words. In conventional continuous word recognition, having a "language model of a database of the ease of connection between words" prevents the generation of "similar but messy word strings" as recognition results. In.
[0003]
However, since only information on words that can be recognized from the beginning (hereinafter, appropriately referred to as known words) is described in the language model, words registered later (hereinafter, appropriately referred to as registered words) are correctly recognized. It was difficult to do. In other words, in isolated word recognition, if a word is registered in the recognition dictionary, that word will be recognized in the future. However, in continuous word recognition, registration in the dictionary alone is not sufficient. Although it is necessary to reflect it, it was generally difficult to reflect it on the language model.
[0004]
Therefore, it has been proposed to classify the registered words into categories such as "person name" and "place name", prepare a recognition grammar corresponding to the category, and recognize speech (for example, see Patent Document 1).
[0005]
Further, in a system in which a plurality of applications that use voice recognition and a variable number of applications exist, when a word registered in one application is reflected in another application, a problem different from the case of a single application occurs. . For example, if word registration is performed only for an application that has already been started, it is difficult to reflect the registered word on an application that has been started or installed after registration, unlike the case where there is only one application. There were challenges.
[0006]
Further, when there are a plurality of applications, it is troublesome to delete the same registered word many times in a plurality of applications. Further, when there are a plurality of applications, it is easy to delete all the registered words, but it is difficult to delete only a part of the words or change the pronunciation.
[0007]
That is, when there is one application, for example, the registered word to be deleted or changed can be specified by information such as “the word registered in the nth time” or “the nth entry in the recognition dictionary”, but there are a plurality of applications. In such a case, it is difficult to specify the “word registered in the nth time” or “the number of the dictionary entry added” depending on each application.
[0008]
When there are a plurality of applications, the registered word can be specified by pronunciation. However, when the registered word is specified by pronunciation, the homonym may be deleted or changed.
[0009]
Therefore, it has been proposed that instead of each application performing voice recognition individually, a module called “voice commander” performs voice recognition for all applications and transfers the recognition result to each application (for example, see Patent Reference 1).
[0010]
[Patent Document 1]
JP 2001-216128 A
[0011]
[Problems to be solved by the invention]
However, in the invention described in Patent Literature 1, it is necessary for the “voice commander” to possess a recognition dictionary and a language model corresponding to each application. In other words, when developing a "voice commander", it is necessary to suppose what applications will be used at the same time, and to prepare a recognition dictionary and language model suitable for those applications. On the other hand, there is a problem that it is difficult to reflect registered words.
[0012]
The present invention has been made in view of such a situation, and aims to allow a registered word to be commonly used by a plurality of applications.
[0013]
[Means for Solving the Problems]
The language processing apparatus of the present invention includes a registered dictionary storage unit that stores a registered dictionary in which words are registered, and a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered. Constructing means for constructing based on the registered dictionary.
[0014]
A processing unit for adding, deleting, or changing words to the registered dictionary, and a deleting unit for deleting words in the dedicated dictionary are further provided. After all words registered in the dedicated dictionary are deleted, The construction means may reconstruct the dedicated dictionary based on the registered dictionary in which the word has been added, deleted, or changed.
[0015]
The dedicated dictionary includes at least a fixed dictionary in which predetermined words are registered in advance and a variable dictionary in which registered words are variable, and the construction unit is configured to construct a variable dictionary among the dedicated dictionaries. Can be.
[0016]
The dedicated dictionary further includes a category table in which categories of words are registered, and the constructing unit registers words of the categories registered in the category table among words of the registered dictionaries in the variable dictionary. Can be built.
[0017]
There are a plurality of applications, and the construction means can construct a dedicated dictionary for each of the plurality of applications.
[0018]
The language processing method of the present invention includes a registered dictionary storage step for storing a registered dictionary in which words are registered, and a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered. And a construction step of constructing based on the registered dictionary.
[0019]
The program recorded on the recording medium of the present invention constructs a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered based on the registered dictionary in which the words are registered. It is characterized by including a construction step.
[0020]
A program of the present invention causes a computer to execute a construction step of constructing a dedicated dictionary dedicated to an application in which words to be subjected to language processing used in an application are registered based on the registered dictionary in which the words are registered. It is characterized by the following.
[0021]
In the present invention, a registered dictionary in which words are registered is stored, and a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered is constructed based on the registered dictionary.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows a configuration example of a robot control system 1 to which the present invention is applied.
[0023]
In the robot control system 1, the voice recognition engine unit 11 recognizes the input voice data, and generates a word string corresponding to the voice data as a recognition result. The speech recognition engine unit 11 sends the recognition result to the name registration application unit 21. 1 , Chat application unit 21 2 , Voice commander application section 21 3 ,..., Other application units 21 M And to the application management unit 31.
[0024]
Name registration application section 21 1 , Chat application unit 21 2 , Voice commander application section 21 3 ,..., Other application units 21 M Performs various processes based on the recognition result supplied from the speech recognition engine unit 11.
[0025]
Name registration application section 21 1 Registers the robot name, the user name, and the like by voice based on the recognition result supplied from the voice recognition engine unit 11, and the other application units include the name registration application unit 21 1 Controls the operation of the robot in response to the user's utterance using the name registered by the user.
[0026]
Therefore, the chat application unit 21 2 , Voice commander application section 21 3 ,... And other application units 21 M Is performed by the name registration application unit 21. 1 It is necessary to correspond to the robot name, user name, etc. registered in.
[0027]
Chat application unit 21 2 Makes the robot chat with the user by voice, and the voice commander application unit 21 3 Causes the robot to perform an operation corresponding to the utterance from the user. For example, the voice commander application unit 21 3 Moves the robot forward in response to an utterance from the user such as "SDR (robot name), move forward!"
[0028]
Note that an arbitrary number of application units can be prepared. Hereinafter, the name registration application unit 21 1 , Chat application unit 21 2 , Voice commander application section 21 3 ,... And other application units 21 M Are not collectively referred to as the application unit 21 as appropriate.
[0029]
The application management unit 31 instructs the application unit 21 to start and end based on the recognition result supplied from the speech recognition engine unit 11. For example, when the recognition result of “activate voice commander” is supplied from the voice recognition engine unit 11, the application management unit 31 3 Start At this time, a plurality of application units may be started simultaneously.
[0030]
Further, the application unit 21 and the application management unit 31 issue a task switching command to the speech recognition engine unit 11, and a corresponding task (to be described later with reference to FIG. 2) is stored in the speech recognition engine unit 11. Is controlled to be valid (active) or invalid (deactive).
[0031]
FIG. 2 shows the configuration of the speech recognition engine unit 11. The utterance of the user is input to the microphone 51, where the utterance is converted into an audio signal as an electric signal. The microphone 51 supplies this audio signal to an AD (Analog Digital) converter 52. The AD converter 52 samples and quantizes the audio signal that is an analog signal from the microphone 51 and converts it into audio data that is a digital signal. This audio data is supplied to the feature amount extraction unit 43.
[0032]
The feature amount extraction unit 53 extracts feature parameters such as a spectrum, a power linear prediction count, a cepstrum count, and a line spectrum pair from the audio data from the AD conversion unit 52 for each appropriate frame, and supplies the extracted feature parameters to the matching unit 54. I do.
[0033]
The matching unit 54 performs a phonemic typewriter task 71 based on the feature parameters from the feature amount extraction unit 53. 1 , Application switching task 71 2 , Name registration task 71 3 , Chat task 71 4 , Voice commander task 71 5 , ..., and other tasks 71 N Of these, for each task enabled at that time, a word string closest to the voice (input voice) input to the microphone 51 is obtained as a recognition result while referring to a database inside the task as necessary. . The matching unit 54 supplies the recognition result to the application unit 21 and the application management unit 31 corresponding to each task.
[0034]
Note that a task is a set of data necessary for performing speech recognition. That is, it is a program for accessing the data part when the speech recognition engine unit 11 is classified into a program part for performing matching or the like, and a data part such as an acoustic model, a language model, a recognition dictionary, and the like. .
[0035]
Therefore, even when a plurality of applications perform speech recognition using different acoustic models, language models, and dictionaries, a single speech recognition engine unit can be provided by preparing a plurality of tasks. Details of the inside of the task will be described later with reference to FIG.
[0036]
Phonemic Typewriter Task 71 1 Is a task that works as a phoneme typewriter, and is enabled by a command from the speech recognition engine unit 11. With this phoneme typewriter, the matching unit 54 obtains a phoneme sequence and also obtains pronunciation in kana notation for any input speech. For example, from the sound "Your name is SDR", "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: ”and“ a: ”are the long sounds of“ i ”and“ a ”, respectively), and“ Kimino Namae ” We get Kana notation called "WSDD Dayo". The phoneme sequence and the kana notation are used in the unknown word acquisition unit 56.
[0037]
Application switching task 71 2 Is a task corresponding to the application management unit 31, and is activated when a task switching command is supplied from the application management unit 31 after the application management unit 31 is activated. Application switching task 71 2 Accordingly, the matching unit 54 recognizes a voice corresponding to an activation of an application unit such as “launch a chat application”, “launch a voice commander”, “launch a name registration”, or an end command.
[0038]
Name registration task 71 3 Is the name registration application unit 21 1 This is a task corresponding to the name registration application unit 21 according to a command from the application management unit 31. 1 Is activated, the name registration application section 21 1 When a task switching command is supplied from, it is enabled. Name registration task 71 3 For example, the matching unit 54 outputs a voice corresponding to a name such as "Your name is <unknown word representing a robot name>." And "My name is <unknown word representing a person name." Recognize.
[0039]
Chat task 71 4 , Voice commander task 71 5 , ..., and other tasks 71 N Is the chat application unit 21 2 , Voice commander application section 21 3 ,..., Other application units 21 M The task is enabled when a task switching command is supplied from the corresponding application unit after the corresponding application unit is activated by a command from the application management unit 31.
[0040]
The matching unit 54 includes a chat task 71. 4 Thereby, for example, it is possible to recognize an utterance as a chat from the user, "SDR (robot name), when did it happen?" The matching unit 54 includes a voice commander task 71. 5 Thereby, for example, it is possible to recognize an utterance as a command from the user, "SDR (robot name), move forward one step".
[0041]
Further, the matching unit 54 reflects words registered in a common dictionary unit 55 described later in each task.
[0042]
In the following, a phonemic typewriter task 71 will be described. 1 , Application switching task 71 2 , Name registration task 71 3 , Chat task 71 4 , Voice commander task 71 5 , ..., and other tasks 71 N Are not collectively referred to as a task 71 when it is not necessary to individually distinguish them.
[0043]
The common dictionary unit 55 stores a common dictionary as a dictionary of words commonly used in the task 71. In the common dictionary stored in the common dictionary unit 55, pronunciation information and category information are described for all words registered therein. For example, when the proper noun “SDR (robot name)” is registered in the common dictionary, the pronunciation (phonetic information) of “SDR” and the category “_robot name_” are described in the common dictionary. Details will be described later with reference to FIG.
[0044]
The unknown word acquisition unit 56 performs a phoneme typewriter task 71 on a word (unknown word) such as a name that is not registered in a recognition dictionary (fixed word dictionary 131 described later in FIG. 6). 1 The phoneme sequence and the kana notation supplied from the matching unit 54 are stored, and thereafter, the voice of the word can be recognized (can be distinguished from other voices).
[0045]
That is, the unknown word acquisition unit 56 performs the task 71 for the phoneme typewriter. 1 Is classified into several clusters. Each cluster has an ID, a representative phoneme sequence, and a representative kana notation, and is managed by the ID.
[0046]
FIG. 3 shows the state of the cluster of the unknown word acquisition unit 56.
[0047]
When three voices “Aka”, “Ao”, and “Midori” are input, the unknown word acquisition unit 56 converts the three input voices into “Aka” cluster 91 and “Ao” cluster corresponding to the three voices, respectively. 92 and a “green” cluster 93, and each cluster has a representative phoneme sequence (“a / k / a”, “a / o”, “m / i / d / o / r / i ″), representative kana notation (“red”, “blue”, “midori” in the example of FIG. 3), and ID (“1” in the example of FIG. 3). , "2", "3").
[0048]
Here, when the voice “red” is input again, the corresponding cluster already exists, so the unknown word acquisition unit 56 classifies the input voice into the “red” cluster 91 and does not generate a new cluster. On the other hand, when the voice of “kuro” is input, there is no corresponding cluster, so the unknown word acquisition unit 56 newly generates a “kuro” cluster 94 corresponding to “kuro”, and 3, a representative phoneme sequence (“k / u / r / o” in the example of FIG. 3), a representative kana notation (“black” in the example of FIG. 3), and an ID (FIG. In the case of the example, “4”) is added.
[0049]
By using this method, the accuracy of the representative phoneme sequence and the representative kana pronunciation of each cluster can be improved by the user inputting the same voice many times. For example, it is assumed that, when "Midori" is input once, the phonological typewriter misrecognizes and outputs a phonological sequence "m / e / r / a / a" and a kana pronunciation "Meraa". . After that, by repeating the utterance "Midori" many times, the phonemic sequence and Kana pronunciation may converge to the correct values ("m / i / d / o / r / i" and "Midori"). There is. Details of such a word acquisition process are disclosed in Japanese Patent Application Nos. 2001-097842 and 2001-382579 previously proposed by the present applicant.
[0050]
Next, a robot control process in the robot control system 1 of FIG. 1 will be described with reference to FIGS. This process is started when the robot control system 1 is started by a user.
[0051]
In step S1, the speech recognition engine unit 11 starts up, and proceeds to step S2. In step S2, the voice recognition engine unit 11 stores the contents of the common dictionary unit 55 (common dictionary) stored in a storage unit (not shown) at the end of the previous robot control system 1 (processing in step S17 described later). And the state of the cluster of the unknown word acquisition unit 56 are loaded. When the state of the common dictionary and the cluster is not stored in the storage unit, the common dictionary unit 55 and the unknown word acquiring unit 56 leave no cluster entry. In the case where the state of the cluster is stored in the storage unit but the state of the common dictionary is not stored, only the common dictionary is initialized (the state where there is no entry). Conversely, when the state of the common dictionary is stored but the state of the cluster is not stored, the entry derived from the cluster (the entry in which the cluster ID is described in FIG. 24) is deleted from the common dictionary, and the kana pronunciation is performed. The entry of origin (the entry in which kana pronunciation is described in FIG. 24) is left.
[0052]
After the processing in step S2, the process proceeds to step S3, where the speech recognition engine unit 11 executes the phoneme typewriter task 71. 1 And enable phonetic typewriter task 71 1 Is made available for speech recognition, and the process proceeds to step S4. In step S4, the application management unit 31 is activated, and proceeds to step S5.
[0053]
In step S5, the application management unit 31 determines that the corresponding task is the application switching task 71. 2 Is enabled, and the process proceeds to step S6. In step S <b> 6, the voice recognition engine unit 11 recognizes a start command of the application unit 21 input by voice to the microphone 51 and supplies a recognition result to the application management unit 31. The details of the voice recognition processing will be described later with reference to the flowchart in FIG.
[0054]
After the process in step S6, the process proceeds to step S7 in FIG. 5, and the application management unit 31 determines the name registration application unit 21 from the recognition result supplied from the speech recognition engine unit 11. 1 It is determined whether or not to start up, and the name registration application unit 21 1 Is started (for example, when the recognition result is "start name registration"), the process proceeds to step S8.
[0055]
In step S8, the application management unit 31 sends the name registration application unit 21 1 Start. After the processing in step S8, the process proceeds to step S9, where the name registration application unit 21 1 Performs a name registration process. The details of the name registration process will be described later with reference to the flowchart of FIG.
[0056]
In step S7, the application management unit 31 sends the name registration application unit 21 1 If not, the process proceeds to step S10, and based on the recognition result by the speech recognition engine unit 11, the chat application unit 21 2 Is determined. In step S10, the application management unit 31 2 Is started (for example, when the recognition result is “start chat”), the process proceeds to step S11, and the chat application unit 21 is started. 2 Start.
[0057]
After the processing in step S11, the process proceeds to step S12, where the chat application unit 21 2 Performs chat processing. Details of the chat processing will be described later with reference to a flowchart of FIG.
[0058]
In step S10, the application management unit 31 2 If it is determined not to activate the voice commander application unit 21 based on the recognition result by the voice recognition engine unit 11, 3 Is determined. In the processing of step S13, the application management unit 31 3 Is started (for example, when the recognition result is “voice commander activation”), the process proceeds to step S14, and the voice commander application unit 21 is started. 3 Start.
[0059]
After the processing of step S14, the process proceeds to step S15, where the voice commander application unit 21 3 Performs voice commander processing. Details of the voice commander processing will be described later with reference to the flowchart of FIG.
[0060]
In step S13, the application management unit 31 sends the voice commander application unit 21 3 Is determined not to be activated, the recognition result by the voice recognition engine unit 11 is incorrect (there may be an utterance other than the application switching), so the process returns to step S6 in FIG. 4, and the voice recognition engine unit 11 A process for recognizing the input voice is performed.
[0061]
Thus, the application management unit 31 activates the application unit 21 according to the recognition result by the speech recognition engine unit 11.
[0062]
After the processes in steps S9, S12, and S15, the process proceeds to step S16, and the application management unit 31 determines whether to end the robot control process. For example, the application management unit 31 determines whether or not the end button (not shown) is pressed by the user, and determines that the robot control process is to be ended when the end button is pressed.
[0063]
If it is determined in step S16 that the robot control process is not to be ended, the process returns to step S6 in FIG. 4 and repeats the process of recognizing the input voice. If the application management unit 31 determines in step S16 that the robot control process is to be ended (the end button has been pressed), the process proceeds to step S17, in which the common dictionary of the common dictionary unit 55 and the cluster of the unknown word acquisition unit 56 are created. The state is stored in a storage unit (not shown).
[0064]
Then, when there is an activated application unit 21, the application management unit 31 ends the application unit. At this time, the application unit 21 invalidates the corresponding task 71. Further, the application management unit 31 includes an application switching task 71. 2 Is invalidated, and the speech recognition engine unit 11 executes the phoneme typewriter task 71. 1 Is invalidated, and the application management unit 31 and the speech recognition engine unit 11 end the processing.
[0065]
Note that, in the above-described processing, the application section is executed by the name registration application section 21. 1 , Chat application unit 21 2 , Voice commander application section 21 3 The above three cases have been described. However, if there is another application unit, if it is determined in step S13 that the voice commander application is not to be activated, the process does not return to step S6, and is similar to steps S7, S10, and S13. Then, it is determined whether or not to start another application, and the other application is started according to the determination result.
[0066]
Further, in the above-described processing, the end of the voice recognition is instructed by the user. However, the robot control system 1 may automatically determine, for example, end when no voice is input for a predetermined time.
[0067]
According to the above processing, the application switching task 71 2 Is valid even during the activation of each application unit 21. Therefore, even when the utterance "Start OO" is made during the activation of another application unit, the utterance is recognized and the corresponding Applications can be launched. For example, the voice commander application unit 21 3 When the user utters “Start chat” during the startup, the chat application unit 21 2 Can be started.
[0068]
In this case, terminate the running application section and then start the new application section, or place the running application section in a paused state and then start the new application section. Whether to restart the application unit or to start both in parallel is set in advance by a combination of the application units (it may be dynamically determined based on resource constraints such as memory).
[0069]
FIG. 6 shows the configuration of the task 71. The task 71 includes an acoustic model 111, a language model 112, a dictionary 113, a phoneme list 114, kana phoneme conversion rules 115, and search parameters 116.
[0070]
The acoustic model 111 stores a model representing acoustic features such as individual phonemes and syllables of the speech to be recognized. As the acoustic model, for example, HMM (Hidden Markov Model) can be used.
[0071]
The language model 112 describes information indicating how the words registered in the word dictionary of the dictionary 113 are linked (connected) (hereinafter, referred to as chain information as appropriate). Description methods include statistical word chain probability (n-gram), generation grammar, and finite state automan.
[0072]
The language model 112 includes, in addition to the chain information about the words, chain information about a category in which the words are classified from a specific viewpoint. For example, when the “category consisting of words representing user names is represented by a symbol“ _user name_ ”and the“ category consisting of words representing robot names ”is represented by a symbol“ _robot name_ ”, the language model 112 , “_User name_” and “_robot name_” (chains between categories, chains between categories and words stored in a dictionary in advance, etc.) are also described.
[0073]
Therefore, chain information can be obtained for words not included in the language model 112. For example, when acquiring the chain information of “SD” and “wa (particle)”, even if the language model 112 does not describe the chain information of “SD”, “SD” is “_ robot name”. If it is known that the robot belongs to the category represented by the symbol “_”, the chain information of “_robot name_” and “ha” is obtained instead, so that the chain of “SD” and “ha” are obtained. Information can be obtained.
[0074]
The category is not a classification based on the semantic attribute (“_robot name_”, “_user name_”, “_place name_”, “_store name_”, etc.), but a classification based on the part of speech (“_noun_ "," _Verb_ "," _particle_ ", etc.). Hereinafter, the notation “_... _” Represents a category name.
[0075]
The dictionary 113 includes a fixed word dictionary 131, a variable word dictionary 132, and a category table 133.
[0076]
The fixed word dictionary 131 stores pronunciations (phonological sequences), phonemes, and words for words that are not registered and deleted, that is, words (hereinafter, appropriately referred to as fixed words) set in advance in the robot control system 1. Various information such as a model describing a syllable chain relationship is described.
[0077]
The fixed word dictionary 131 describes, for each task 71, information about a dedicated word used by the application unit 21 corresponding to the task 71. The same applies to the above-described acoustic model 111 and language model 112, and also to a category table 133, phoneme list 114, kana phoneme conversion rules 115, and search parameters 116 described later.
[0078]
The variable word dictionary 132 describes various information such as a word to be registered and deleted, that is, a model that describes the pronunciation, phoneme, and syllable chain relation of the registered word. Is registered, the registered word is reflected. This reflection processing will be described later with reference to FIG. Deletion of words and change of pronunciation can be performed only for entries in the variable word dictionary 132. Note that the variable word dictionary 132 does not have to store anything.
[0079]
The category table 133 stores a table indicating a correspondence between a category included in the language model 112 and information on a word included in the category. When the task 71 assigns an ID unique to the category (category ID), the category table 133 also stores the correspondence between the symbol of the category and the ID. For example, when a category ID “4” is assigned to the category “_robot name_”, the category ID = 4 is also stored corresponding to “_robot name_”. Note that the category table 133 does not store anything when the language model 112 does not include a category.
[0080]
The phoneme list 114 is a list of phoneme symbols used in the task 71. The kana phoneme conversion rule 115 is a rule for converting a kana character string into a phoneme sequence. In this way, by storing the kana phoneme conversion rules 115 for each task, the common dictionary unit 55 can hold, as pronunciation information, a kana character string that is independent of the phoneme sequence.
[0081]
The search parameter 116 holds a parameter used when the matching unit 54 performs matching (search). The parameters include a value depending on the acoustic model 111, a value depending on the number of vocabulary words, a value depending on the type of the language model 112, and the like. However, parameters that do not depend on the task may be held in the recognition engine unit 11 in common.
[0082]
In the above description, all data is stored for each task. However, data used in common by a plurality of tasks can be shared between tasks to reduce the memory usage. For example, when the phoneme list 114 is common to all tasks, only one phoneme list 114 is prepared by the speech recognition engine unit 11, and each task may refer to it. In this case, it is sufficient to prepare only one kana phoneme conversion rule 115.
[0083]
In addition, two types of acoustic models 111 are prepared, one for a quiet environment (an acoustic model that provides a high recognition rate in a quiet environment) and one for a noise environment (an acoustic model that provides a reasonable recognition rate in a noisy environment). Either one may be referred to each time.
[0084]
For example, the name registration task 71 3 And chat task 71 4 Is assumed to be used in a quiet environment, so reference is made to the acoustic model 111 for the quiet environment, and the voice commander task 71 5 Is assumed to be used in a noisy environment (an environment in which the operation sound of the robot is loud), so that an acoustic model for a noisy environment can be referred to.
[0085]
FIG. 7 shows an example of the phoneme list 114 of FIG. In FIG. 7, one symbol represents (corresponds to) one phoneme. In the phoneme list 114 of FIG. 7, a vowel + colon (for example, “a:”) represents a long sound, and “N” represents a plucked sound (“n”). “Sp”, “silB”, “silE”, and “q” all represent silence, but “silence in speech”, “silence before speech”, “silence after speech”, and “prompting sound”. ("Tsu") ".
[0086]
FIG. 8 shows an example of the kana phoneme conversion rule 115 of FIG. According to the kana phoneme conversion rule 115 of FIG. 8, for example, a kana character string “SD” is converted into a phoneme sequence “e / s / u / d / i: / a: / r / u”. .
[0087]
Next, examples of the language model 112 and the dictionary 113 (FIG. 6) of each task are shown.
[0088]
FIG. 9 shows a phoneme typewriter task 71. 1 9 shows an example of the language model 112 (FIG. 6). In FIG. 9, the variable “$ SYLLABLE” on the first line means an arbitrary one of the kana notations because all kana notations are connected by “|” meaning “or”. .
[0089]
That is, here, the phonemic typewriter task 71 1 Is a task for speech recognition in units of syllables (syllables), and the language model 112 in FIG. 9 describes a chain rule that an arbitrary syllable can be arbitrarily connected in a BNF (Backus-Naur-Form) format. In the grammar. The language model 112 may use a statistical language model described later.
[0090]
FIG. 10 shows a phonemic typewriter task 71. 1 6 shows an example of the fixed word dictionary 131 (FIG. 6). The “symbol” is a character string for identifying a word, and can use, for example, kana notation. Entries with the same symbol are considered to be entries of the same word. The language model 112 is represented by using this symbol. Note that “<head>” and “<end>” are special symbols and represent “silence before utterance” and “silence after utterance”, respectively (the same applies to FIG. 11 and the like described later).
[0091]
Further, “transcription” indicates a notation of a word, and the character string output as a recognition result is this transcription. The “phonological sequence” is a representation of the pronunciation of a word as a phonological sequence.
[0092]
Phonemic Typewriter Task 71 1 Of the phonemic typewriter task 71 1 Nothing is stored because it is not assumed that words will be added to. Also, the phonemic typewriter task 71 1 Since the language model 112 does not include a category as shown in FIG. 9, nothing is stored in the category table 133.
[0093]
FIG. 11 shows an application switching task 71. 2 9 shows an example of the language model 112 (FIG. 6). The language model 112 in FIG. 11 is described in a BNF format grammar. The variable “$ APPLICATIONS” on the first line indicates that all application names (“chat”, “voice commander”, “name registration”, etc.) are connected by “|” which means “or”. Means one of the names.
[0094]
Also, in the variable “@UTTERANCE” on the second line, “[]” meaning “can be omitted” is added to each of “_robot name_” and “wo”, so “(robot name ) Start the application name ()). Here, the “robot name” indicates a word registered in the category of “_robot name_”.
[0095]
For example, when “SDR” is registered in “_robot name_”, utterances such as “SDR, voice commander (activate)” and “voice commander (activate)” are generated as shown in FIG. It is recognized by using 11 language models 112.
[0096]
By describing the language model 112 using the category name in this way, even if a newly registered word is included in the category described in the language model 112, Can recognize the utterance including the newly registered word by using the language model 112.
[0097]
FIG. 12 shows an application switching task 71. 2 6 shows an example of the fixed word dictionary 131 (FIG. 6). In the fixed word dictionary 131 of FIG. 12, transcriptions and phoneme sequences are described for symbols (“chat” and “voice commander” in FIG. 11) described in the grammar of the language model 112 of FIG. I have.
[0098]
FIG. 13 shows an application switching task 71. 2 6 shows an example of the category table 133 (FIG. 6). The category table 133 stores the type of category used for the language model 112 and information on words belonging to the category. When the language model 112 is as shown in FIG. 2 Since the category of “_robot name_” is used for the language model 112, “_robot name_” is entered in the category table 133 as shown in FIG. In FIG. 13, the set of words belonging to the category of “_robot name_” is an empty set, indicating that there is no word belonging to “_robot name_”.
[0099]
As shown in FIG. 13, even when a category is entered in the category table 133, if there is no word belonging to the entry (in the case of an empty set), the variable word dictionary 132 stores The information of the word to which it belongs is not stored.
[0100]
FIG. 14 shows a name registration task 71. 3 9 shows an example of the language model 112 (FIG. 6). The language model 112 in FIG. 14 is described in a BNF format grammar. The variables "@UTTERNANCE" are "or [your name] is <OOV> [is] [it is called]" and "You [name] is <OOV> [it is]." Are connected by “|”, which means “name”, “is”, “says” and “says”, and “[]” is added to indicate “optional”. ing.
[0101]
Therefore, using the language model 112 of FIG. 14, “I (name) is <OOV> (is) (called)” or “You (name) is <OOV> (called)” Be recognized. Note that <OOV> is a symbol meaning “Out Of Vocabulary”, and means a phrase with an arbitrary pronunciation (a word not described in the fixed word dictionary 131).
[0102]
By using the symbol <OOV>, for example, utterances such as “My name is Taro” and “Your name is SDR” (“Taro” and “SDR” are described in the fixed word dictionary 131 14 are applied to the language model 112 in FIG. 14, “<head> My name is <OOV><end>” and “<head> Your name is <OOV>”. As a result, you can get the speech recognition results of "My name is Taro" and "Your name is SDR".
[0103]
FIG. 15 shows a name registration task 71. 3 6 shows an example of the fixed word dictionary 131 (FIG. 6). In the fixed word dictionary 131, transcriptions and phoneme sequences are described for the symbols described in the grammar of the language model 112 as shown in FIG.
[0104]
Name registration task 71 3 Here, the name registration task 71 3 Nothing is stored because it is not assumed that words will be added to. The name registration task 71 3 Since the language model 112 does not include a category as shown in FIG. 14, nothing is stored in the category table 133.
[0105]
FIG. 16 shows a chat task 71. 4 9 shows an example of the language model 112 (FIG. 6). Since the chat has many vocabulary and utterance variations, a statistical language model is used as the language model 112. The statistical language model is a model in which chain information of words is described with conditional probabilities. In the language model 112 of FIG. 16, a tri-line representing the arrangement of three words 1, 2, and 3, that is, the probability of three chains of words. Gram is used.
[0106]
In FIG. 16, “P (word 3 | word 1 word 2)” is a probability that “word 3” will appear next when “word 1” and “word 2” are arranged in the word string. Represents For example, when there is a sequence of “<head>“ _ robot name_ ””, the probability that “ha” appears next is “0.012”. This probability is obtained in advance by analyzing a text describing a large amount of chat. As the language model 112, besides the tri-gram, a bi-gram (probability of two chains), a uni-gram (probability of appearance of a word), and the like can be used as necessary.
[0107]
In the language model 112 of FIG. 16 as well, the grammar is described using categories in addition to words, as in the case of FIG. That is, in FIG. 16, “_robot name_” and “_place name_” mean the categories “_robot name_” and “_place name_”, and a tri-gram is described using these categories. Thus, when a word representing a robot name or a place name is registered in the variable word dictionary 132, the word is stored in the chat task 71. 4 Can be recognized.
[0108]
FIG. 17 shows a chat task 71. 4 Of the fixed word dictionary 131 of FIG. In the fixed word dictionary 131, transcription and phoneme sequences are described for symbols described in the grammar of the language model 112 as shown in FIG.
[0109]
FIG. 18 shows a chat task 71. 4 Of the category table 133 of FIG. The category table 133 stores types of categories used for the language model 112 and information on words belonging to the categories. When the language model 112 is as shown in FIG. 4 Since two categories “_robot name_” and “_location name_” are used in the language model 112 of “.”, The category table 133 includes “_robot name_” as shown in FIG. And "_place name_" are entered. In FIG. 18, words belonging to the categories “_robot name_” and “_place name_” indicate that there is no word yet.
[0110]
FIG. 19 shows a task 71 for voice commander. 5 9 shows an example of the language model 112 (FIG. 6). The language model 112 in FIG. 19 is described in a BNF-format grammar. The variable “@NUMBER” on the first line indicates that any one of the numbers (“1”, “2”, “3”, etc.) Means one.
[0111]
The variable “$ DIRECTION” on the second line is connected with “|” meaning “or” in the directions (“front”, “back”, “right”, “left”, etc.). Means any one of The variable “UTTERANCE” in the third line is obtained by adding “advance” to “_robot name_”, “$ DIRECTION”, and “$ NUMBER step”. "[]" Meaning "can be omitted" is added to "_robot name_", "@DIRECTION", and "@NUMBER step".
[0112]
Therefore, in the language model 112 of FIG. 19, for example, a voice such as “three steps ahead of (robot name)” is recognized.
[0113]
FIG. 20 shows a task 71 for a voice commander. 5 Of the fixed word dictionary 131 of FIG. In the fixed word dictionary 131, transcriptions and phoneme sequences are described for symbols described in the grammar of the language model 112 as shown in FIG.
[0114]
Note that the symbols of “1” and “step” overlap, which means that “1” and “step” have two pronunciations (“ichi” and “it”, “ho” and “po”, respectively). ]). As a result, for example, utterances with different pronunciations such as “Ichiho” and “Ippo” can be recognized as the same “one step”.
[0115]
When the language model 112 is as shown in FIG. 5 Since only the category “_robot name_” is used in the language model 112 of 5 The category table 133 of the application switching task 71 shown in FIG. 2 Is the same as the category table 133 of FIG. In the state where the word belonging to “_robot name_” has not been uttered yet, the voice commander task 71 5 Nothing is stored in the variable word dictionary 132.
[0116]
Next, the name registration application unit 21 1 However, the name registration process performed in step S9 in FIG. 5 will be described in detail with reference to the flowchart in FIG. This processing is performed by the user's utterance, 1 Triggered when is invoked. Before this processing is started, the user may input a name by voice input mode of inputting a name by voice or kana input by a keyboard or the like as a name registration mode for registering a name by a mode switching button (not shown), for example. One of the kana input modes for input is selected in advance.
[0117]
In step S41, the name registration application unit 21 1 Is a name registration task 71 of the speech recognition engine unit 11. 3 And enable this name registration task 71 3 To be able to recognize voice.
[0118]
After the process in step S41, the process proceeds to step S42, where the name registration application unit 21 1 Determines whether or not the name registration mode is the voice input mode. If it is determined that the name registration mode is the voice input mode, the process proceeds to step S43, in which the matching unit 54 performs a name recognition process, and then proceeds to step S44. (Or, if the user utters in step S42, it is determined that "the name has been input by voice," and the process proceeds to step S43. If the kana input button (not shown) has been pressed, the user has input the And proceeds to step S46.) Details of this name recognition processing will be described later with reference to FIG.
[0119]
In step S44, the name registration application unit 21 1 Determines whether the speech recognition result (recognized name) of the name obtained by performing the name recognition process in step S43 by the matching unit 54 is correct. This determination is made based on, for example, whether the recognition result is uttered to the user and the user operates an OK button (not shown).
[0120]
If it is determined in step S44 that the name speech recognition result is incorrect, the user is prompted to speak again, and the process returns to step S43 to perform name recognition processing again. If it is determined in step S44 that the recognition result is correct, the process proceeds to step S47.
[0121]
On the other hand, in step S42, the name registration application unit 21 1 Determines that the name registration mode is not the voice input mode, proceeds to step S45, and determines whether the name registration mode is the kana input mode.
[0122]
If it is determined in step S45 that the name registration mode is not the kana input mode, the user has not selected the name registration mode, so the user waits until the name registration mode is selected. After waiting, the process returns to step S42.
[0123]
If it is determined in step S45 that the name registration mode is the kana input mode, the process proceeds to step S46, where the name registration application unit 21 1 Acquires the kana sequence of the name input by the user and the category of the name.
[0124]
As a method of inputting the kana sequence, for example, a method in which a user temporarily connects a keyboard to input kana characters, a method of inputting using various switches of the robot, a method of displaying paper on which characters are written to the robot, or the like. (For example, refer to Japanese Patent Application No. 2001-135423), a method of connecting a robot to a personal computer by a wireless LAN (Local Area Network) or the like, and transferring the robot from the personal computer to the robot, There is a method of downloading to a robot. Also, in the method of recognizing characters by showing a paper or the like on which characters are written to a robot, instead of inputting kana characters, a character string containing kana and kanji characters is input, and a name registration application unit 21 is input. 1 May be converted to kana strings (see Japanese Patent Application No. 2001-135423).
[0125]
Further, instead of the user inputting the kana string of the name, an entry to which the kana character of the name is added is given to the common dictionary of the common dictionary unit 55 in advance, and the name registration application unit 21 is provided. 1 May refer to the common dictionary unit 55 to obtain a kana sequence of names.
[0126]
After the processing in step S44 or S46, the process proceeds to step S47, where the name registration application unit 21 1 Determines the category of the name to be registered. When the name registration mode is the kana input mode, the name registration application unit 21 1 Determines the category (input by the user) acquired in step S46 as the category of the name to be registered.
[0127]
That is, in the kana input mode, in step S46, the user is requested to input a category of the name in addition to the name, and the category of the name input by the user is determined as a category of the name to be registered. On the other hand, when the name registration mode is the voice input mode, the name registration application unit 21 1 Is determined by estimating the category of the name obtained in the name recognition processing in step S43.
[0128]
For example, if the recognition result supplied from the voice recognition engine unit 11 starts with “Kimi”, the category to which the registered name belongs is assumed to be “_robot name_”, and if it starts with “I”, It is assumed that the category to which the registered name belongs is “_user name_”. Further, various category estimation methods disclosed in Japanese Patent Application No. 2001-382579 previously proposed by the present applicant can also be used.
[0129]
After the process of step S47, the process proceeds to step S48, where the name registration application unit 21 1 Controls the matching unit 54 to enter the pronunciation information and category of the name to be registered in the common dictionary of the common dictionary unit 55, and proceeds to step S49. In step S49, the name registration application unit 21 1 Controls the matching unit 54 to store the contents of the common dictionary in the chat task 71. 4 , Voice commander task 71 5 , ..., other tasks 71 N To reflect. The details of this reflection will be described later with reference to the flowchart in FIG.
[0130]
In this way, by reflecting the name registered in the common dictionary in another task, the registered name can be recognized in another task.
[0131]
After the process of step S49, the process proceeds to step S50, where the name registration application unit 21 1 Determines whether to end the name registration process. This determination is made, for example, by speaking to the user a question as to whether or not to end, and whether or not the user has operated (pressed) an OK button (not shown). If it is determined in step S49 that the name registration application is not to be terminated (for example, the OK button has not been pressed), the process returns to step S42 to perform processing for registering another name.
[0132]
If it is determined in step S50 that the name registration process is to be ended (for example, the OK button has been pressed), the process proceeds to step S51, and the name registration application unit 21 1 Is the name registration task 71 3 Is invalidated, and the process proceeds to step S52. In step S52, the name registration application unit 21 1 Ends the processing.
[0133]
FIG. 22 is a flowchart illustrating a name recognition process performed by the matching unit 54 of FIG. 2 in step S43 of FIG.
[0134]
In step S61, the matching unit 54 determines whether or not a voice has been input to the microphone 51. If it is determined that no voice has been input, the matching unit 54 waits until a voice is input. If it is determined in step S61 that a voice has been input, the process proceeds to step S62. The voice input here may be a normal conversation such as "My name is Taro" or "Your name is SDR", and the user is aware of the name registration and "Taro"" You don't have to enter the name "SDR" alone.
[0135]
In step S62, the matching unit 54 recognizes the voice and extracts the name. For example, if the utterance “Your name is SDR” is made, a name registration task 71 having a language model 112 as shown in FIG. 14 and a fixed word dictionary 131 as shown in FIG. 3 , The matching unit 54 generates a recognition result that “Your name is <OOV><End>”, for example. Also, the matching unit 54 obtains information indicating which section of the utterance the <OOV> is (from what second to what second of the first utterance).
[0136]
Further, the matching unit 54 performs a phoneme typewriter task 71 having a language model 112 as shown in FIG. 9 and a fixed word dictionary 131 as shown in FIG. 1 With reference to, for example, “k / i / m / i / n / o / n / a / m / a / e / w / a / e / s / u / d / i: / a: / r / A phonemic sequence “u / d / a / y / o” and a kana sequence “Kimino Nama Eva Sd R Dayo” are obtained.
[0137]
Then, based on information indicating which section of the utterance the <OOV> is, the matching unit 54 determines, based on the obtained phoneme sequence and kana sequence, a section corresponding to <OOV>, that is, a phoneme sequence of the name section. The kana sequence is cut out to obtain a phoneme sequence "e / s / u / d / i: / a: / r / u" and a kana sequence "ESD". Further, the matching unit 54 also obtains audio data of the same section. The details of the process of extracting the name are disclosed in Japanese Patent Application No. 2001-382579 previously proposed by the present applicant.
[0138]
After the process in step S62, the process proceeds to step S63, in which the matching unit 54 supplies the phoneme sequence, kana sequence, and voice data of the name extracted in the process in step S62 to the unknown word acquisition unit 56, and performs clustering. The details of the clustering are disclosed in Japanese Patent Application No. 2001-097845 previously proposed by the present applicant. As a result of this clustering, each cluster of the unknown word acquisition unit 56 has a representative phoneme sequence and a kana sequence.
[0139]
After the processing in step S63, the process proceeds to step S64, in which the recognition result of the voice recognized in step S62 (for example, the kana sequence "Kimino Nama Eva Sd R Dayo") is stored in the name registration application section 21. 1 To supply.
[0140]
FIG. 23 shows an example of the feature space clustered by the unknown word acquisition unit 56 in the process of step S63 in FIG. Note that FIG. 23 shows a feature space defined by two feature amounts (feature parameters) 1 and 2 to avoid complicating the drawing (the same applies to FIG. 3 described above). In FIG. 23, in the feature space, four names “arara”, “sana”, “tokyo”, and “taro” are clustered.
[0141]
That is, in FIG. 23, in the feature space, four clusters of an “arara” cluster 151, a “saw” cluster 152, a “tokyo” cluster 153, and a “tarou” cluster 154 are formed, Each cluster has a representative phoneme series (in the example of FIG. 23, “a / r / a / r / a”, “s / a / n / i:”, “t / o: / ky / o”). : "," T / a / r / o / u "), representative kana notation (" Alara "," Sunny "," Tokyo "," Taro "in the example of FIG. 23), and ID (FIG. In the example of 23, “1”, “2”, “3”, “5”) are added.
[0142]
FIG. 24 shows an example of a common dictionary of the common dictionary unit 55 in which word information has been entered in step S48 of FIG. In FIG. 24, the entry on the first line is that the pronunciation is input in a kana sequence, the pronunciation is a character string of "SD", and indicates that the category is input as "_robot name_". .
[0143]
The entry on the second line is a representative kana notation in which the pronunciation is input in speech, and the kana notation and the phonological sequence of the pronunciation are added to the cluster whose ID of the unknown word acquisition unit 56 is “5” (FIG. 23). In the example of FIG. 23, “tarrow”) and the phoneme sequence (“t / a / r / o:” in the example of FIG. 23). The category of the entry on the second line is determined by the name registration application unit 21 in step S47 in FIG. 21 and is “_user name_”. For example, when the user utters “My name is Taro”, an entry like the second line is configured in the common dictionary unit 55.
[0144]
Similarly, in the entries on the third and fourth lines, pronunciations are input in kana columns, and the pronunciations are character strings "Sunitarou" and "Kitashinagawa", respectively, and the category is "_user name_". This indicates that “_place name_” has been input. In the entry on the fifth line, the pronunciation is input in speech, and the kana notation and the phoneme sequence of the pronunciation are represented by a representative kana notation (ID) of the unknown word acquisition unit 56 added to the cluster with the ID “3”. In the case of the example of FIG. 23, “Tokyo”) and the phoneme sequence (“t / o: / ky / o:” in the example of FIG. 23) are shown. Further, the category of the entry on the fifth line is determined to be “_place name_” by the name registration application unit 21.
[0145]
In the common dictionary, for a word whose pronunciation is entered in a kana sequence, a set of a kana sequence and a category representing the pronunciation of the word is registered in one entry, and for a word whose pronunciation is spoken, A pair of an ID and a category representing the cluster of the word is registered in one entry.
[0146]
FIG. 25 is a flowchart illustrating a process in which the matching unit 54 reflects the contents of the common dictionary unit 55 to the task in the process of step S49 in FIG. This process is performed for each enabled task.
[0147]
In step S81, the matching unit 54 initializes the variable word dictionary 132 and the category table 133 in the task 71 (FIG. 6). That is, the variable word dictionary 132 has no entry, and the category table 133 has a state in which no word belongs to each category.
[0148]
After the process in step S81, the process proceeds to step S82, where the matching unit 54 reflects the contents of the common dictionary unit 55 in the variable word dictionary 132 and the category table 133.
[0149]
That is, the matching unit 54 selects, from the common dictionary of the common dictionary unit 55, a category common (same) to the category entered in the category table 133, and selects the category and the cluster ID corresponding to the category. Or, get kana pronunciation (kana sequence). Further, when acquiring the cluster ID from the common dictionary, the matching unit 54 acquires a kana sequence corresponding to the cluster ID from the unknown word acquisition unit 56.
[0150]
When the matching unit 54 obtains the kana sequence of the word belonging to the selected category from the common dictionary of the common dictionary unit 55 as described above, the matching unit enters the kana sequence into the variable word dictionary 132. Further, the matching unit 54 enters the information of the word represented by the kana sequence acquired from the common dictionary into the corresponding category of the category table 133.
[0151]
According to the above-described processing, in each task, the contents of the common dictionary are reflected after the variable word dictionary 132 is initialized. That is, the variable word dictionary 132 is constructed or reconstructed based on the contents of the common dictionary. Therefore, it is possible to easily maintain consistency in each task as compared with a method of deleting or changing a specific entry in the dictionary.
[0152]
Further, according to the above-described processing, the word registered in the voice is acquired in the variable word dictionary 132 because the latest pronunciation information at that time is acquired from the unknown word acquisition unit 56 every time the word is reflected in each task. Thereafter, the pronunciation information is updated simply by supplying the speech data to the unknown word acquisition unit 56, and the matching unit 54 can recognize the speech by referring to the latest pronunciation information at that time.
[0153]
FIG. 26 is a block diagram illustrating the reflection processing of FIG. When the kana sequence is described in the common dictionary of the common dictionary unit 55 corresponding to the category, the kana sequence is registered in the variable word dictionary 132, and the category table 133 has the same category as the category of the common dictionary. Information of words represented by kana strings in the common dictionary is registered.
[0154]
On the other hand, if the common dictionary describes a cluster ID corresponding to the category, the unknown word acquisition unit 56 is referred to, and the representative kana sequence and the representative phoneme sequence corresponding to the cluster ID are registered in the variable word dictionary 132. Then, the information of the word represented by the cluster ID of the common dictionary is registered in the same category as the category of the common dictionary in the category table 133. In the speech recognition processing described later, both the fixed word dictionary 131 and the variable word dictionary 132 are used.
[0155]
FIG. 27 shows an application switching task 71 reflecting the contents of the common dictionary unit 55 shown in FIG. 2 Is an example of the variable word dictionary 132. Application switching task 71 2 When the category table 133 shown in FIG. 13 is as shown in FIG. 13, the category common to the common dictionary in FIG. 24 is “_robot name_”. A kana pronunciation of "SD" corresponding to name_ "is acquired.
[0156]
Then, as shown in FIG. 27, the matching unit 54 enters the kana pronunciation “SDR” acquired from the common dictionary in FIG. 24 into the transcription of the variable word dictionary 132. Further, the matching unit 54 adds “e / s / u /” corresponding to the kana pronunciation “SD” to the phoneme sequence corresponding to the transcription “SD” based on the kana phoneme conversion rule 115 (FIG. 8). d / i: / a: / r / u ".
[0157]
In addition, the matching unit 54 registers “OOV00001” as a symbol of the word represented by the transcription “SDR”. Here, the symbol is “OOV00001”, which means “OOV” + serial number, but the symbol may be any character string that can uniquely identify the word. That is, as the symbol, for example, "_robot name _ :: OOV00001" or the like can be used by adding a category name to the head.
[0158]
FIG. 28 shows an application switching task 71 in which the contents of the common dictionary of FIG. 24 are reflected. 2 Of the category table 133 of FIG. As shown in FIG. 27, when the contents of the common dictionary of FIG. 24 are reflected in the variable word dictionary 132, the contents of the category table 133 are stored in the category of “_robot name_” shown in FIG. Are registered, the symbol “OOV00001” of the word belonging to the category “_robot name_” registered in the variable word dictionary 132 of FIG. 27 is entered.
[0159]
Next, a process in which the matching unit 54 deletes or changes a word registered in the common dictionary of the common dictionary unit 55 in step S48 of FIG. 21 will be described with reference to a flowchart of FIG. The process of deleting or changing words in the common dictionary is started, for example, when there is a command from the name registration application unit 21 or when it becomes necessary to delete unnecessary words from registered words due to memory restrictions. Is done.
[0160]
In addition, the process of deleting or changing the words in the common dictionary includes, for example, changing the ID assigned to the cluster by deleting the cluster in the unknown word acquisition unit 56 or dividing or merging the cluster. When it is necessary to match the ID assigned to the cluster of the unknown word acquisition unit 56 with the ID described in the common dictionary (the cluster ID described in FIG. 24), the ID described in the common dictionary is changed to This is done to rewrite.
[0161]
Further, when the common dictionary is deleted or changed, when a certain category is no longer used by all the tasks described in the language model 112, the category information is deleted from the common dictionary, and the common dictionary is slimmed. This is done in order to achieve
[0162]
If the unknown word acquisition unit 56 changes the representative phoneme sequence and the kana sequence of the cluster, the changes are reflected in the common dictionary by the reflection processing in FIG. 25, so that the words are deleted or changed. It is not necessary to perform the processing (hereinafter, appropriately referred to as change deletion processing).
[0163]
In step S101, the matching unit 54 determines a word to be subjected to change deletion processing from the common dictionary, and proceeds to step S102. The target word may be determined by the user using a button (not shown), or may be determined and determined by the matching unit 54.
[0164]
In step S102, the matching unit 54 determines whether or not to delete the word targeted for the change deletion process. If it is determined that the word is to be deleted, the process proceeds to step S103. In step S103, the matching unit 54 deletes the entry of the word targeted for the change deletion process from the common dictionary. Deletion means deleting entries specified by a category and pronunciation information, deleting entries of a specific category at once, or deleting entries having specific pronunciation information (kana sequence or cluster ID) at once. Means to do.
[0165]
On the other hand, if the matching unit 54 determines in step S102 that the word to be subjected to the change deletion process is not to be deleted, the process proceeds to step S104, where it is determined whether the word is to be changed, and it is determined that the word is not to be changed. In this case, the process returns to step S102 and waits until it is determined that the change or the deletion is performed.
[0166]
When the matching unit 54 determines in step S104 to change the word to be subjected to the change deletion process, the process proceeds to step S105, and changes the entry of the word to be subjected to the change deletion process in the common dictionary.
[0167]
For example, when the cluster of the unknown word acquiring unit 56 is divided or merged and the ID number of the cluster changes, the matching unit 54 performs the matching with the unknown word acquiring unit 56 by using the cluster ID of the common dictionary. To change. Further, for example, when the user wants to later correct the kana sequence input at the time of registration, the matching unit 54 uses the name registration application unit 21. 1 , The kana pronunciation of the word to be a target of the common dictionary (the word entered in the common dictionary in step S48 of FIG. 21) is converted to the kana sequence input by the user after determining the word to be a target of the common dictionary. change.
[0168]
After the processing of step S103 or the processing of step S105, the process proceeds to step S106, where the matching unit 54 performs the reflection processing of FIG. 25, and reflects the contents of the common dictionary to each task.
[0169]
As described above, when a word in the common dictionary is deleted or changed, the changed content is reflected in each task, so that the consistency of the registered words in each application unit can be maintained.
[0170]
FIGS. 30 and 31 show an example in which the matching unit 54 changes the entry of a word in the common dictionary in the process of step S105 in FIG. For example, when the cluster with the ID “5” of the unknown word acquisition unit 56 is divided into the cluster with the ID “8” and the cluster with the ID “9”, the matching unit 54 shows the common dictionary in FIG. 30A. The state is changed from the state shown in FIG. 30B to the state shown in FIG. 30B.
[0171]
That is, the matching unit 54 deletes the entry with the cluster ID “5” (the entry on the first line in FIG. 30A) of the common dictionary unit 55, and “_user name_” registered in the deleted entry. Register two entries of the category. Further, the matching unit 54 describes the cluster ID numbers “8” and “9” in the two new entries, respectively (entries on the first and second lines in FIG. 30B).
[0172]
Further, for example, when the cluster with the cluster ID “5” and the cluster with the ID “3” of the unknown word acquisition unit 56 are merged to generate a new cluster with the ID “10”, the matching unit 54 Then, the common dictionary is changed from the state shown in FIG. 31A to the state shown in FIG. 31B.
[0173]
That is, the matching unit 54 changes the cluster ID of the entries having the cluster IDs “5” and “3” of the common dictionary (all the entries in FIG. 31A) to “10”. The two entries of the category “_” and the corresponding cluster ID number “10” are made one (for example, one is deleted) (FIG. 31B).
[0174]
Next, the chat processing in step S12 in FIG. 5 will be described in detail with reference to the flowchart in FIG.
[0175]
In step S121, the chat application unit 21 2 Is a chat task 71 4 Is enabled, and the process proceeds to step S122. In step S122, the chat application unit 21 2 Controls the matching unit 54 to perform the reflection processing as shown in FIG. 25, and stores the contents of the common dictionary of the common dictionary unit 55 into the chat task 71. 4 (The variable word dictionary 132 and the category table 133). Therefore, the chat task 71 4 Can obtain words registered, changed, and deleted in the common dictionary while being invalid.
[0176]
After the process of step S122, the process proceeds to step S123, and the chat application unit 21 2 Controls the voice recognition engine unit 11 to perform voice recognition processing, and proceeds to step S124. Details of the voice recognition processing will be described later with reference to FIG.
[0177]
In step S124, the chat application unit 21 2 Acquires a recognition result from the speech recognition engine unit 11 and generates a response to the recognition result. That is, the robot responds to the utterance from the user. For example, if the utterance from the user is “When did the SDR (robot name) wake up?”, The chat application unit 21 2 Generates a response for the time the robot was awakened (activated) (eg, “7:00”) and causes the robot to speak.
[0178]
After the process of step S124, the process proceeds to step S125, and the chat application unit 21 2 Determines whether to end the processing. This determination is made, for example, by the chat application unit 21. 2 However, the user makes an utterance “End?” To the user, and determines whether the user has operated (pressed) (pressed) the OK button (not shown).
[0179]
If it is determined in step S125 that the process is not to be ended, the process returns to step S123, and the same process is repeated. That is, the robot continues the chat with the user.
[0180]
If it is determined in step S125 that the process is to be ended, the process proceeds to step S126, and the chat application unit 21 2 Is a chat task 71 4 Is invalidated, and the process proceeds to step S127. In step S127, the chat application unit 21 2 Ends the processing.
[0181]
In the above-described processing, the chat application unit 21 each time the user speaks once. 2 Generated the response, but the robot may prompt the user to speak by spontaneously speaking.
[0182]
In the process of FIG. 32, the chat application unit 21 2 Has been described, the voice commander application unit 21 3 Voice commander processing,..., And other application units 21 M Is similarly performed. However, in step S124, processing based on the speech recognition result by the speech recognition engine unit 11 is performed according to the application unit 21.
[0183]
FIG. 33 shows the contents of the common dictionary of the common dictionary unit 55 shown in FIG. 4 In the variable word dictionary 132 shown in FIG.
[0184]
Chat task 71 4 When the category table 133 shown in FIG. 18 is as shown in FIG. 18, the categories common to the common dictionary in FIG. 24 are “_robot name_” and “_place name_”, so that the matching unit 54 The first entry in FIG. 24 is acquired as a common dictionary entry corresponding to “name_”, and the fourth and fifth entries in FIG. 24 are acquired as entries corresponding to “_place name_”. Further, from the first entry, the pronunciation of kana "ESD" is obtained, from the fourth entry, the pronunciation of kana "Kitashinagawa" is obtained, and from the fifth entry, the cluster ID number "3" is obtained.
[0185]
Then, as shown in FIG. 33, the matching unit 54 enters “SDR” and “Kitashinagawa” into the transcription of the variable word dictionary 132. Further, the matching unit 54 adds “e / s / u / d / i:” to the phoneme sequence of the variable word dictionary 132 based on the kana phoneme conversion rule 115 (FIG. 8) in correspondence with the transcription “SDR”. "/ A: / r / u" and "k / i / t / a / sh / i / n / a / g / a / w / a" corresponding to the transcription "Kitashinagawa".
[0186]
Further, the matching unit 54 extracts the cluster with the cluster ID “3” from the unknown word acquisition unit 56, and acquires a representative phoneme sequence and a kana sequence. For example, when the unknown word acquisition unit 56 is in a state as shown in FIG. 23, the matching unit 54 starts the cluster 153 with the cluster ID “3” and outputs the phoneme sequence “t / o: / ky / o:” and “ To get the kana sequence "Tokyo". Then, as shown in FIG. 33, the matching unit enters the acquired phoneme sequence “t / o: / ky / o:” and the kana sequence “Tokyo” into the phoneme sequence and the transcription of the variable word dictionary 132, respectively. I do.
[0187]
Further, the matching unit 54 transcribes “OOV00001” as the symbol of the word represented by the transcription “SDR” and “OOV00002” as the symbol of the word represented by the transcription “Kitashinagawa”. “OOV00003” is registered as a symbol of the word represented by the option “Tokyo”.
[0188]
In this case, the phonemic typewriter task 71 1 And chat task 71 4 Of the phoneme typewriter task 71 1 The representative phoneme sequence of the cluster obtained by using 4 Is registered in the variable word dictionary 132, but the phonetic typewriter task 71 for kana 1 And chat task 71 4 If the kana phoneme sequence rules 115 of the cluster are different, the matching unit 54 acquires a representative kana sequence of the cluster from the unknown word acquisition unit 56, and the chat task 71 4 Based on the kana phoneme sequence rule 115, the phoneme sequence of the variable word dictionary 132 is described.
[0189]
FIG. 34 shows that the contents of the common dictionary of FIG. 4 Is reflected in the category table 133 of FIG. In the category table 133, for the category of “_robot name_”, the words belonging to the category “_robot name_” (the words whose transcription is “SD” (FIG. 33)) are stored in the variable word dictionary 132. The symbol “OOV00001” is entered. Further, for the category of “_place name_” in the category table 133, the words belonging to the category “_place name_” (the words of the transcriptions “Kitashinagawa” and “Tokyo” (FIG. 33)) are stored in the variable word dictionary 132. The registered symbols “OOV00002” and “OOV00003” are entered.
[0190]
Next, the speech recognition processing performed by the speech recognition engine unit 11 in FIG. 2 in the processing in step S123 in FIG. 32 will be described in detail with reference to the flowchart in FIG. This processing is started when a voice is input from the user to the microphone 51, and the application switching task 71 is started. 2 , Chat task 71 4 , Voice commander task 71 5 , ..., other tasks 71 N Of these tasks, this is performed for each enabled task.
[0191]
The audio signal generated by the microphone 51 is converted into audio data as a digital signal by the AD conversion unit 52 in step S141, and is supplied to the feature amount extraction unit 53. After the process in step S141, the process proceeds to step S142, in which the feature amount extraction unit 53 extracts a feature amount such as a mel cepstrum from the supplied audio signal, and proceeds to step S143.
[0192]
In step S143, the matching unit 54 connects some of the words represented by the symbols of the fixed word dictionary 131 and the variable word dictionary 132, generates a word string, and calculates an acoustic score. The acoustic score indicates how close (acoustically) the word string that is a candidate for the speech recognition result and the input speech are (acoustically) as sounds.
[0193]
After the process of step S143, the process proceeds to step S144, where the matching unit 54 selects a predetermined number of word strings having a high acoustic score based on the acoustic score calculated in step S143, and proceeds to step S145.
[0194]
In step S145, the matching unit 54 calculates the language score of each word string selected in step S144 using the language model 112, and proceeds to step S146. For example, when a grammar or a finite state automan is used as the language model 112, when the word string can be accepted by the language model 112, the language score is “1”, and when it cannot be accepted. , The language score is “0”.
[0195]
The matching unit 54 may leave the word string selected in step S144 when it can be accepted, and may delete the word string selected in step S144 when it cannot be accepted.
[0196]
When a statistical language model is used as the language model 112, the generation probability of the word string is used as a language score. The details of the method of obtaining the language score are disclosed in Japanese Patent Application No. 2001-382579 previously proposed by the present applicant.
[0197]
For example, the voice commander application unit 21 3 When the voice recognition processing is performed in the voice commander processing of the above, when the matching unit 54 selects the word string “<head> OOV00001 before moving forward <end>” in the processing of step S144, the language score is determined by the word string “< The head> OOV00001 advance to <end> ”can be accepted by the grammar language model 112 shown in FIG.
[0198]
That is, the matching unit 54 recognizes that the category of the symbol “OOV00001” is “_robot name_” with reference to the category table 133 (FIG. 28), and the word string “<head” obtained in step S144. > OOV00001 advance <end> is converted to a word string “<head> _robotic name_advance <end>” using a category name, and accepted by the language model 112 shown in FIG. Determine that you can.
[0199]
On the other hand, for example, when the word sequence “<head> OOV00001 and before <end>” is selected in step S144, the matching unit 54 refers to the category table 133 (FIG. 28) and refers to the category of the symbol “OOV00001”. Is recognized as "_robot name_", and the word string "<head> OOV00001 and proceeding to <end>" obtained in step S144 is replaced with the word string "<head> _robot name" using the category name. _ To "before <end>", it is determined that the language model 112 shown in FIG. 19 cannot accept the word sequence, and the language score of this word string is set to "0".
[0200]
In step S146, the matching unit 54 sorts the word strings by integrating the acoustic score calculated in step S143 and the language score calculated in step S145, and for example, sorts the word strings having the largest integrated score. Is determined as a recognition result.
[0201]
As a result, a word string most suitable acoustically and linguistically is determined as a recognition result.
[0202]
After the process in step S146, the process proceeds to step S147, and the matching unit 54 determines whether the recognition result includes a word registered as a voice (a word clustered in the unknown word acquisition unit 56).
[0203]
If it is determined in step S147 that the word registered in the voice is included in the recognition result, the process proceeds to step S148, where the matching unit 54 supplies the word to the unknown word acquiring unit 56, and 56 performs re-clustering. Then, the process proceeds to step S149.
[0204]
For example, in step S144, if the word string “<top> today went to Tokyo <end>” including the place name (unknown word) “Tokyo” is obtained, the matching unit 54 is an unknown word. "Tokyo" voice data, phonemic typewriter task 71 1 Is supplied to the unknown word acquisition unit 56 with the phoneme sequence (for example, “t / o: / ky / o:”) and the kana sequence (for example, “Tokyo”) recognized with reference to. Then, the unknown word acquisition unit 56 performs re-clustering.
[0205]
As a result, the amount of voice data supplied to the unknown word acquisition unit 56 increases, and the representative phoneme sequence and the representative kana sequence of each cluster may be updated to correct values. However, as a side effect, even after a correct phonemic kana sequence / kana sequence is obtained, the value may be changed to an incorrect value by re-clustering. In order to prevent such side effects, if there is an instruction from the user, the pronunciation can be fixed by describing the kana sequence at that time in an entry of the common dictionary. For example, in FIG. 23, when the kana sequence of the cluster with the ID = 3 is pronounced as “Tokyo”, the part described as “Cluster ID = 3” in the common dictionary in FIG. 24 is changed to “Kana pronunciation: Tokyo”. (The fifth entry is to be rewritten). By doing so, even if the kana sequence of the cluster with ID = 3 changes to a value other than “Tokyo”, the pronunciation of the fifth entry in the common dictionary is fixed at “Tokyo”.
[0206]
On the other hand, if the matching unit 54 determines in step S147 that the word registered in the voice is not included in the voice recognition result, the process skips step S148 and proceeds to step S149.
[0207]
In step S149, the matching unit 54 supplies the recognition result determined in the process of step S146 to the application unit 21 corresponding to the task.
[0208]
Here, the chat application unit 21 2 In the chat processing of FIG. 36, an expression for calculating a language score when the matching unit 54 selects the word string “<head> OOV00001 occurred at <end>” in step S144 of FIG. Show.
[0209]
As shown in equation (1), the language score “Score (<head> OOV00001 occurred at <end>)” is a word string “<head> OOV00001 occurred at <end>” as shown in equation (1). Probability.
[0210]
The value of the language score “Score (<head> OOV00001 is what occurred <end>)” is exactly “P (<head>) P (OOV00001 | <head”) as shown in equation (2). >) P (was | <head> OOV00001) P (when | <head> OOV00001 is) P (is | <head> OOV00001 is what time) P (was || <head> OOV00001 is when) P (| < The head> OOV00001 is obtained at what time occurred P (<end> | <head> OOV00001 was generated at what time). As shown in FIG. 16, the language model 112 uses tri-gram. Therefore, the condition parts "<head> OOV00001 is", "<head> OOV00001 is what time", "<head> OOV00001 is what time", "<head>OOV0" 001 happened at what time "and"<head> OOV00001 happened at what time "are up to two words immediately before" OOV00001 is "," was what time "," what time "," was happened ", and It is approximated by conditional probabilities each limited to "was happened" (equation (3)).
[0211]
The conditional probability is obtained by referring to the language model 112 (FIG. 16). However, since the language model 112 does not include the symbol “OOV00001”, the matching unit 54 refers to the category table 133 in FIG. Then, it recognizes that the category of the word represented by the symbol “OOV00001” is “_robot name_”, and converts “OOV00001” to “_robot name_”.
[0212]
That is, as shown in Expression (4), “P (OOV00001 | <head>)” is changed to “P (_robot name_ | <head>) P (OOV00001 | _robot name)” and “P (OOV00001 | _robot name)” (_Robot name_ | <head>) "/ N". N represents the number of words belonging to the category of “_robot name_” in the category table 133.
[0213]
That is, when the probability is described in the form of P (X | Y), when the word X is a word belonging to the category C, P (C | Y) is obtained from the language model 112, and the value is represented by P (X | C) (the probability that the word X is generated from the category C). Assuming that all words belonging to category C are generated with equal probability, if there are N words belonging to category C, P (X | C) can be approximated as 1 / N.
[0214]
In FIG. 34, since only the word represented by the symbol “OOV00001” belongs to the category “_robot name_”, N becomes “1”. Therefore, as shown in equation (5), “P (|| <head> OOV00001)” becomes “P (= | <head> _robot name_)”. In addition, “P (what | OOV00001)” becomes “P (what | _ robot name _)” as shown in Expression (6).
[0215]
Thus, a language score can be calculated for a word string including a variable word, and the variable word can appear in the recognition result.
[0216]
In the above example, the activation of the application unit 21 and the validity of the task 71, and the termination of the application unit 21 and the invalidation of the task 71 are linked. However, this is performed at another timing, for example, the activation of the application unit 21. It is also possible to switch the validity and invalidity of the task many times during the operation, and to control a plurality of tasks by one application.
[0219]
In this case, for a task that frequently switches between valid and invalid, if the memory is repeatedly reserved and released each time, the efficiency is low. Therefore, a flag (a flag indicating that the task is invalid) is set even after the invalidation. By itself, it is possible to keep the memory secured.
[0218]
Further, in the above-described example, it is assumed that nothing is stored in the common dictionary of the common dictionary unit 55 when the robot system is activated, but even if some words are stored in the common dictionary in advance. Good. For example, since the product name of the robot is often registered as the robot name, the product name of the robot may be registered in advance in the category of “_robot name_” in the common dictionary.
[0219]
FIG. 37 shows an example of a common dictionary when the robot product name "SDR" is entered in the category "_robot name_" when the robot system is activated. In FIG. 37, when the robot system is activated, the kana pronunciation “SDR” is entered in the category “_robot name_”. Therefore, the user can use the kana pronunciation “SDR” without registering the name. The robot can be controlled using the words represented.
[0220]
Also, in the above example, it was assumed that no cluster of unknown word acquisition units was generated at the initial stage (at the time of shipment). However, if a cluster is prepared for the main name from the beginning, when the name is input by voice in the name registration process of FIG. 21, it is easy to recognize the name for which the cluster is prepared. For example, if a cluster as shown in FIG. 3 is prepared at the time of shipment, the pronunciation of “red”, “blue”, “midori”, and “black” can be recognized (acquired) with a correct phoneme sequence. Further, it is not desirable that the pronunciation of a name for which a cluster is prepared is changed after the name is registered in the common dictionary. Therefore, when registering the pronunciation information in the common dictionary, instead of describing the cluster ID, the pronunciation is described in kana pronunciations (representative kana sequence of the cluster) such as “red”, “ao”, “midori”, and “kuro”. .
[0221]
Further, in the above-described example, the matching unit 54 reflects the contents of the common dictionary on all tasks. However, the matching unit 54 may reflect only the tasks to be reflected. For example, a number (task ID) is added to a task in advance, and the common dictionary in FIG. 24 is expanded to provide a column indicating “a list of tasks in which this entry is valid (or invalid)”, and the reflection in FIG. In the processing, the matching unit 54 only needs to reflect the contents of the common dictionary only on the task to which the task ID described in the column indicating “a list of valid tasks for this entry” is added.
[0222]
FIG. 38 shows an example in which the ID of the task to be reflected is described in a column indicating “valid tasks” in the common dictionary. In FIG. 38, the words belonging to the category “_robot name_” whose pronunciation in kana is represented by “SD” are valid task IDs “1”, “2”, and “4”. The contents of the common dictionary of words represented by the kana pronunciation “SD” are reflected only in the variable word dictionary 132 and the category table 133 of the tasks “1”, “2”, and “4”.
[0223]
Further, in the above-described example, the words stored in the fixed word dictionary 131 are words described in the language model 112, and the words stored in the variable word dictionary 132 are words belonging to the category. However, some of the words belonging to the category may be stored in the fixed word dictionary 131.
[0224]
FIG. 39 shows an application switching task 71. 2 40 shows an example of the category table 133 at the time of startup. That is, in the category table 133 in FIG. 40, the category “_robot name_” and the symbol “OOV00001” of the word belonging to the category “_robot name_” are registered in advance. Also, the fixed word dictionary 131 of FIG. 40 includes a symbol “OOV00001”, a transcription of a word represented by the symbol “OOV00001”, “ESD”, and a phoneme sequence “e / s / u / d / i”. : / A: / r / u "is registered in advance.
[0225]
In this case, the word “SDR” is subjected to the voice recognition process as belonging to the category “_robot name_”. That is, the word "SD" is treated as the robot name from the beginning. However, since the word "SD" is stored in the fixed word dictionary 131, it cannot be deleted or changed.
[0226]
In this way, for example, by storing words assumed to be set in a name, such as a product name of a robot, in the fixed word dictionary 131 in advance, the user can control the robot without performing name registration. Can be.
[0227]
In the above example, the category symbols are common to all tasks, but may not be common. In this case, a conversion table as shown in FIGS. 41 to 44 may be prepared in the task.
[0228]
That is, for example, when a certain task T describes a category “_ROBOT_NAME_” and a category “_USER_NAME_”, according to the conversion table in FIG. Are reflected in the category “_ROBOT_NAME_”. In the task T, the contents of the common dictionary of words belonging to the category “_user name_” are reflected in the category “_USER_NAME_”.
[0229]
For example, when a certain task T describes a category “_proper noun_”, according to the conversion table in FIG. 42, in the task T, the common dictionary unit 55 assigns the category “_robot name_”. Both the contents of the common dictionary of the words belonging thereto and the contents of the common dictionary of the words belonging to the category “_user name_” are reflected in the category “_proper noun_”.
[0230]
Further, for example, when a certain task T describes a category “_last name_” and a category “_first_”, according to the conversion table of FIG. The contents of the common dictionary of the words belonging to “_user name_” are converted and copied into a category “_surname_” and a category “_name_”. In the step of reflecting the contents of the common dictionary in this task (FIG. 25), for example, the second entry in FIG. 24 changes “_user name_cluster ID = 5” to “_last name_cluster ID = It is converted and duplicated into two entries of “5” and “_name_cluster ID = 5”, and then reflected in the fixed word dictionary and the category table of this task.
[0231]
Further, for example, when a category is not described in a certain task T, according to the conversion table in FIG. 44, in the task T, the category “_robot name_” and the category “_user name_” , The word belonging to the category “_place name_” is represented by the symbol “UNK”. Note that “UNK” means “Unknown word”.
[0232]
Thus, even in a task in which a category is not described, the matching unit 54 merely describes the symbol “UNK” in the language model 112 and the category “_robot name_” and the category “_user name_” , Words belonging to the category “_place name_” can be recognized.
[0233]
FIG. 45 shows an example of the external configuration of a bipedal walking robot provided with the robot control system 1 to which the present invention is applied. In the robot 201, a head unit 211 is provided above a body unit 213, and arm units 212 A and 212 B having the same configuration are provided on the left and right of the body unit 213, respectively. Leg units 214A and 214B having the same configuration are attached to predetermined positions on the lower left and right of 213, respectively.
[0234]
The head unit 211 includes CCD (Charge Coupled Device) cameras 221A and 221B functioning as “eyes” of the robot 201, microphones 222A and 222B functioning as “ears”, and a speaker 223 functioning as “mouth”. Are arranged at predetermined positions.
[0235]
FIG. 46 shows an example of the electrical configuration of the robot. The unit control system 231 and the dialogue control system 232 control the operation of the robot 201 according to a command from the robot control system 1. That is, the unit control system 231 controls the head unit 211, the arm units 212A and 212B, and the leg units 214A and 214B of the robot 201 as necessary, and causes the robot 201 to perform a predetermined operation. Further, the dialogue control system 232 controls the utterance of the robot 201 and causes the speaker 223 to make a predetermined utterance as necessary.
[0236]
In the above description, a word is a unit that should be treated as one unit in the process of recognizing speech, and does not always match a linguistic word. For example, “Taro-kun” may be treated as one word, or may be treated as two words “Taro” and “Kimi”. In addition, may be dealing with more is a major unit of "Hello Taro" or the like as one word.
[0237]
A phoneme is one that is more conveniently processed acoustically as one unit, and does not always match a phonetic phoneme or phoneme. For example, the "to" portion of "Tokyo" can be represented by three phonetic symbols "t / o / u", or a symbol "o:" which is a long sound of "o" is prepared. You may. Further, it may be expressed as “t / o / o”. In addition, symbols that represent silence are prepared, and they are further classified as "silence before utterance", "short silence section sandwiched between utterances", "silence in" tsu "part". Good.
[0238]
In the above description, the robot device has been described. However, the present invention can be applied to a device having an application using speech recognition, speech synthesis, translation, and other language processing.
[0239]
Further, the present invention can be applied to, for example, a device that extracts only predetermined terms from a dictionary registered in Kojien and creates the term dictionary.
[0240]
Further, in the above description, the case where there are a plurality of application units has been described, but one application unit may be provided.
[0241]
The above-described series of processes can be executed by hardware or can be executed by software. In this case, the above-described processing is executed by a personal computer 600 as shown in FIG.
[0242]
In FIG. 47, a CPU (Central Processing Unit) 601 performs various processes according to a program stored in a ROM (Read Only Memory) 602 or a program loaded from a storage unit 608 into a RAM (Random Access Memory) 603. Execute. The RAM 603 also appropriately stores data necessary for the CPU 601 to execute various processes.
[0243]
The CPU 601, the ROM 602, and the RAM 603 are mutually connected via an internal bus 604. The internal bus 604 is also connected to an input / output interface 605.
[0244]
The input / output interface 605 includes an input unit 606 including a keyboard and a mouse, a display including a CRT, an LCD (Liquid Crystal Display), an output unit 607 including a speaker, a storage unit 608 including a hard disk, and a modem. And a communication unit 609 including a terminal adapter and the like. The communication unit 609 performs communication processing via various networks including a telephone line and a CATV.
[0245]
A drive 610 is connected to the input / output interface 605 as necessary, and a removable medium 621 composed of a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted. It is installed in the storage unit 608 as needed.
[0246]
When a series of processing is executed by software, a program constituting the software executes various functions by installing a computer built in dedicated hardware or installing various programs. For example, it is installed on a general-purpose personal computer or the like from a network or a recording medium.
[0247]
As shown in FIG. 47, this recording medium is constituted not only by a package medium consisting of a removable medium 621 on which the program is recorded but also distributed to provide the user with the program, separately from the computer. And a hard disk including a ROM 602 and a storage unit 608 in which a program is recorded, which is provided to the user in a state where the program is incorporated in the apparatus main body in advance.
[0248]
In this specification, a step of describing a computer program refers to not only a process performed in chronological order according to the described order, but also a process executed in parallel or individually even if not necessarily performed in chronological order. Is also included.
[0249]
Also, in this specification, a system represents the entire device including a plurality of devices.
[0250]
Incidentally, Japanese Patent Application No. 2001-382579 previously proposed by the present applicant includes a series of processes until a word acquired by an unknown word acquiring mechanism is reflected on a language model, and a word reflected on a language model is referred to as a subsequent process. An invention is disclosed for a process for causing the recognition result to appear.
[0251]
However, the invention of Japanese Patent Application No. 2001-382579 is composed of an application for registering one word and an application using one registered word. It is assumed that there are a plurality of applications for performing voice recognition. In a system in which there are a plurality of applications and a variable number of applications, the above-described problem when reflecting registered words in the application and the above-described problem when deleting or changing words registered for a plurality of applications are described. It was difficult to solve the problem.
[0252]
Also, in Japanese Patent Application No. 2002-072718 previously proposed by the present applicant, the word “Taro”, which is an unknown word, is extracted from the utterance “My name is Taro (unknown word).” The invention of acquiring as a name is disclosed.
[0253]
However, the invention of Japanese Patent Application No. 2002-072718 discloses the above-described problem of reflecting an unknown word in a language model, the above-described problem of reflecting a registered word in an application, and a word registered in a plurality of applications. It has been difficult to solve the above-described problem when deleting or changing the.
[0254]
Therefore, in the invention of Japanese Patent Application No. 2001-382579 and the invention of Japanese Patent Application No. 2002-072718, the above-described problem of reflecting an unknown word in a language model, the above-described problem of reflecting a registered word in its application, In addition, it is difficult to solve all the problems described above when deleting or changing words registered for a plurality of applications.
[0255]
However, in the robot control system 1 of FIG. 1, since the category is described in the language model 112, it is possible to solve the above-described problem that the unknown word is reflected in the language model by making the unknown word belong to the category. Can be.
[0256]
Further, in the robot control system 1 of FIG. 1, the variable word dictionary 132 in which words to be subjected to speech recognition used in the application are registered or reconstructed based on the common dictionary. It is possible to solve the above-described problem when reflecting the word on the application and the problem when deleting or changing the word registered for a plurality of applications.
[0257]
Further, in the case of a system without a keyboard (for example, a robot or the like), there is a problem that it is difficult to input pronunciation information at the time of registering a word. As a means for solving the problem, for example, a phoneme typewriter is used. There has been proposed a method of inputting pronunciation information using voice.
[0258]
However, there is a problem that a phoneme typewriter may be erroneously recognized, and if the phoneme typewriter is used as it is, a word may be registered with an incorrect pronunciation. For example, if the pronunciation of "ESD" is recognized by the phoneme typewriter and the phoneme typewriter misrecognizes and outputs a result of "Irnyal", if "Irnyal" is adopted as the pronunciation information, an incorrect pronunciation will be made. in order to word is registered, and later, for example, "es Dr, Hello" that although the speech is difficult to be recognized, "Isuniyaru, Hello" speech that the context of recognized easily occurs.
[0259]
Therefore, in the robot control system 1 of FIG. 1, the latest pronunciation information at that time is acquired from the unknown word acquisition unit 56 every time a word registered by voice is reflected on each task, so that the phoneme typewriter is erroneous. Even after the recognized and misrecognized word is registered in the variable word dictionary 132, the pronunciation information is updated only by supplying the speech data to the unknown word acquisition unit 56, and the latest pronunciation information at that time can be obtained. , Normal recognition results may be obtained.
[0260]
That is, in the robot control system 1 of FIG. 1, the above-described problem of reflecting an unknown word in a language model, the above-described problem of reflecting a registered word in an application, and a word registered in a plurality of applications are referred to. The above-described problem when deleting or changing, and the above-mentioned problem when inputting pronunciation information of a word to be registered in a system without a keyboard, that is, all the above-described problems can be solved.
[0261]
【The invention's effect】
As described above, according to the present invention, words can be registered. In particular, even when words corresponding to a plurality of applications are registered, the registered words can be commonly used in each application. Also, words registered before the application is started can be used in the application. Further, even when the registered word is changed, consistency can be maintained in each application.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of a robot control system to which the present invention has been applied.
FIG. 2 is a block diagram illustrating a configuration example of a speech recognition engine unit in FIG. 1;
FIG. 3 is a diagram illustrating an example of a cluster of an unknown word acquisition unit in FIG. 2;
FIG. 4 is a flowchart illustrating a robot control process in the robot control system of FIG. 1;
FIG. 5 is a flowchart illustrating a robot control process in the robot control system of FIG. 1;
FIG. 6 is a diagram illustrating a configuration example of a task in FIG. 2;
FIG. 7 is a diagram showing an example of a phoneme list in FIG. 6;
FIG. 8 is a diagram showing an example of kana phoneme conversion rules of FIG. 6;
FIG. 9 is a diagram showing an example of a language model of the phoneme typewriter task of FIG. 2;
FIG. 10 is a diagram showing an example of a fixed word dictionary of the phoneme typewriter task of FIG. 2;
11 is a diagram illustrating an example of a language model of the application switching task in FIG. 2;
FIG. 12 is a diagram illustrating an example of a fixed word dictionary of the application switching task in FIG. 2;
FIG. 13 is a diagram illustrating an example of a category table of the application switching task in FIG. 2;
FIG. 14 is a diagram illustrating an example of a language model of the name registration task in FIG. 2;
FIG. 15 is a diagram illustrating an example of a fixed word dictionary of the name registration task in FIG. 2;
FIG. 16 is a diagram illustrating an example of a language model of the chat task of FIG. 2;
17 is a diagram illustrating an example of a fixed word dictionary of the chat task of FIG. 2;
FIG. 18 is a diagram illustrating an example of a category table of the chat task of FIG. 2;
19 is a diagram illustrating an example of a language model of the voice commander task in FIG. 2;
20 is a diagram showing an example of a fixed word dictionary of the voice commander task of FIG. 2;
FIG. 21 is a flowchart illustrating a name registration process in step S9 of FIG. 5;
FIG. 22 is a flowchart illustrating a name recognition process in step S43 of FIG. 21;
FIG. 23 is a diagram illustrating an example of a cluster of an unknown word acquisition unit in FIG. 2;
FIG. 24 is a diagram illustrating an example of a common dictionary unit in FIG. 2;
FIG. 25 is a flowchart illustrating a reflection process in step S49 of FIG. 21;
FIG. 26 is a block diagram illustrating a reflection process of FIG. 25;
FIG. 27 is a diagram showing an example of a variable word dictionary of the name registration task of FIG. 2;
FIG. 28 is a diagram illustrating an example of a category table of the name registration task in FIG. 2;
FIG. 29 is a flowchart illustrating a process of deleting or changing a word in the matching unit of FIG. 2;
FIG. 30 is a diagram showing an example of changing the common dictionary unit of FIG. 2;
FIG. 31 is a diagram illustrating an example of changing the common dictionary unit in FIG. 2;
FIG. 32 is a flowchart illustrating the chat processing of step S12 in FIG. 5;
FIG. 33 is an example of a variable word dictionary of the chat task of FIG. 2;
FIG. 34 is an example of a category table of the chat task in FIG. 2;
FIG. 35 is a flowchart illustrating a speech recognition process in step S123 of FIG. 32;
FIG. 36 is a diagram illustrating an example of a formula for calculating a language score.
FIG. 37 is a diagram illustrating a modification of the common dictionary unit in FIG. 2;
FIG. 38 is a diagram illustrating a modification of the common dictionary unit in FIG. 2;
FIG. 39 is a diagram showing a modification of the fixed word dictionary of FIG. 6;
FIG. 40 is a diagram showing an example of the category table of FIG. 6;
FIG. 41 is a diagram showing an example of a category conversion table.
FIG. 42 is a diagram illustrating an example of a category conversion table.
FIG. 43 is a diagram showing an example of a category conversion table.
FIG. 44 is a diagram showing an example of a category conversion table.
FIG. 45 is a perspective view showing an external configuration of the robot.
FIG. 46 is a block diagram illustrating an electrical configuration of the robot.
FIG. 47 is a diagram illustrating an example of a personal computer.
[Explanation of symbols]
11 Speech Recognition Engine Unit, 21 Application Unit, 31 Application Management Unit, 51 Microphone, 52 AD Conversion Unit, 53 Feature Extraction Unit, 54 Matching Unit, 55 Common Dictionary Unit, 56 Unknown Word Acquisition Unit, 71 Task, 111 Acoustic Model , 112 language models, 113 dictionaries, 114 phoneme lists, 115 kana phoneme conversion rules, 116 search parameters, 131 fixed word dictionaries, 132 variable word dictionaries, 133 category tables

Claims (8)

言語処理を利用するアプリケーションを有する言語処理装置であって、
単語が登録される登録辞書を記憶する登録辞書記億手段と、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記登録辞書に基づいて構築する構築手段と
を備えることを特徴とする言語処理装置。
A language processing apparatus having an application using language processing,
A registered dictionary storage means for storing a registered dictionary in which words are registered;
A language processing apparatus comprising: a construction unit configured to construct, based on the registered dictionary, a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered.
前記登録辞書に対して、単語を追加、削除、または変更する処理を行なう処理手段と、
前記専用辞書の単語を削除する削除手段と
をさらに備え、
前記専用辞書に登録されたすべての単語が削除された後、
前記構築手段は、単語が追加、削除、または変更された前記登録辞書に基づいて、前記専用辞書を再構築する
ことを特徴とする請求項1に記載の言語処理装置。
Processing means for adding, deleting, or changing a word to the registered dictionary;
A deleting unit for deleting a word in the dedicated dictionary,
After all words registered in the dedicated dictionary have been deleted,
2. The language processing apparatus according to claim 1, wherein the construction unit reconstructs the dedicated dictionary based on the registered dictionary in which a word has been added, deleted, or changed.
前記専用辞書は、所定の単語が予め登録されている固定辞書と、登録される単語が可変の可変辞書とを、少なくとも含み、
前記構築手段は、前記専用辞書のうちの前記可変辞書を構築する
ことを特徴とする請求項1に記載の言語処理装置。
The dedicated dictionary includes at least a fixed dictionary in which predetermined words are registered in advance, and a variable dictionary in which words to be registered are variable,
2. The language processing apparatus according to claim 1, wherein the construction unit constructs the variable dictionary among the dedicated dictionaries.
前記専用辞書は、単語のカテゴリが登録されたカテゴリテーブルをさらに含み、
前記構築手段は、前記登録辞書の単語のうち、前記カテゴリテーブルに登録されたカテゴリの単語を、前記可変辞書に登録することにより、前記可変辞書を構築する
ことを特徴とする請求項3に記載の言語処理装置。
The dedicated dictionary further includes a category table in which categories of words are registered,
4. The variable dictionary according to claim 3, wherein the constructing unit constructs the variable dictionary by registering, in the variable dictionary, words of a category registered in the category table among words of the registered dictionary. Language processor.
前記アプリケーションは複数存在し、
前記構築手段は、複数の前記アプリケーション毎の前記専用辞書を構築する
ことを特徴とする請求項1に記載の言語処理装置。
There are a plurality of the applications,
The language processing apparatus according to claim 1, wherein the construction unit constructs the dedicated dictionary for each of the plurality of applications.
言語処理を利用するアプリケーションを有する言語処理装置の言語処理方法であって、
単語が登録される登録辞書を記憶する登録辞書記億ステップと、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、前記登録辞書に基づいて構築する構築ステップと
を含むことを特徴とする言語処理方法。
A language processing method of a language processing apparatus having an application that uses language processing,
A registered dictionary storage step for storing a registered dictionary in which words are registered;
A construction step of constructing, based on the registered dictionary, a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered.
アプリケーションの言語処理を行なうプログラムであって、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される前記登録辞書に基づいて構築する構築ステップ
を含むことを特徴とするコンピュータが読み取り可能なプログラムが格納されているプログラム格納媒体。
A language processing program for an application,
A computer is characterized by including a construction step of constructing a dedicated dictionary dedicated to the application in which words to be subjected to language processing used in the application are registered based on the registered dictionary in which words are registered. A program storage medium that stores a readable program.
アプリケーションの言語処理を行なうプログラムであって、
前記アプリケーションで利用される言語処理の対象となる単語が登録される、そのアプリケーション専用の専用辞書を、単語が登録される前記登録辞書に基づいて構築する構築ステップ
をコンピュータに実行させることを特徴とするプログラム。
A language processing program for an application,
A word to be subjected to linguistic processing used in the application is registered. The computer executes a construction step of constructing a dedicated dictionary dedicated to the application based on the registered dictionary in which words are registered. Program to do.
JP2003042019A 2003-02-20 2003-02-20 Language processing apparatus, language processing method, program, and recording medium Expired - Fee Related JP4392581B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003042019A JP4392581B2 (en) 2003-02-20 2003-02-20 Language processing apparatus, language processing method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003042019A JP4392581B2 (en) 2003-02-20 2003-02-20 Language processing apparatus, language processing method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2004252121A true JP2004252121A (en) 2004-09-09
JP4392581B2 JP4392581B2 (en) 2010-01-06

Family

ID=33025410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003042019A Expired - Fee Related JP4392581B2 (en) 2003-02-20 2003-02-20 Language processing apparatus, language processing method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP4392581B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171710A (en) * 2004-12-10 2006-06-29 Microsoft Corp System and method for discriminating meaningful intention from acoustic information
WO2007108500A1 (en) * 2006-03-23 2007-09-27 Nec Corporation Speech recognition system, speech recognition method, and speech recognition program
JP2008064885A (en) * 2006-09-05 2008-03-21 Honda Motor Co Ltd Voice recognition device, voice recognition method and voice recognition program
JP2008287210A (en) * 2007-04-16 2008-11-27 Sony Corp Speech chat system, information processor, speech recognition method and program
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
JP2015022310A (en) * 2013-07-19 2015-02-02 英奇達資訊股▲ふん▼有限公司 Voice assistant personalizing method
KR20200025065A (en) * 2018-08-29 2020-03-10 주식회사 케이티 Device, method and computer program for providing voice recognition service

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04273299A (en) * 1991-02-28 1992-09-29 Ricoh Co Ltd Voice recognition device
JPH09230889A (en) * 1996-02-23 1997-09-05 Hitachi Ltd Speech recognition and response device
JPH1124695A (en) * 1997-06-27 1999-01-29 Sony Corp Speech recognition processing device and speech recognition processing method
JPH11296181A (en) * 1998-04-07 1999-10-29 Ricoh Co Ltd Music reproducing device
JPH11327030A (en) * 1998-05-15 1999-11-26 Canon Inc Device and method for controlling camera and storage medium
JP2001249686A (en) * 2000-03-08 2001-09-14 Matsushita Electric Ind Co Ltd Method and device for recognizing speech and navigation device
JP2002358095A (en) * 2001-03-30 2002-12-13 Sony Corp Method and device for speech processing, program, recording medium

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04273299A (en) * 1991-02-28 1992-09-29 Ricoh Co Ltd Voice recognition device
JPH09230889A (en) * 1996-02-23 1997-09-05 Hitachi Ltd Speech recognition and response device
JPH1124695A (en) * 1997-06-27 1999-01-29 Sony Corp Speech recognition processing device and speech recognition processing method
JPH11296181A (en) * 1998-04-07 1999-10-29 Ricoh Co Ltd Music reproducing device
JPH11327030A (en) * 1998-05-15 1999-11-26 Canon Inc Device and method for controlling camera and storage medium
JP2001249686A (en) * 2000-03-08 2001-09-14 Matsushita Electric Ind Co Ltd Method and device for recognizing speech and navigation device
JP2002358095A (en) * 2001-03-30 2002-12-13 Sony Corp Method and device for speech processing, program, recording medium

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171710A (en) * 2004-12-10 2006-06-29 Microsoft Corp System and method for discriminating meaningful intention from acoustic information
WO2007108500A1 (en) * 2006-03-23 2007-09-27 Nec Corporation Speech recognition system, speech recognition method, and speech recognition program
JP5062171B2 (en) * 2006-03-23 2012-10-31 日本電気株式会社 Speech recognition system, speech recognition method, and speech recognition program
US8781837B2 (en) 2006-03-23 2014-07-15 Nec Corporation Speech recognition system and method for plural applications
JP2008064885A (en) * 2006-09-05 2008-03-21 Honda Motor Co Ltd Voice recognition device, voice recognition method and voice recognition program
JP2008287210A (en) * 2007-04-16 2008-11-27 Sony Corp Speech chat system, information processor, speech recognition method and program
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
JP2015022310A (en) * 2013-07-19 2015-02-02 英奇達資訊股▲ふん▼有限公司 Voice assistant personalizing method
KR20200025065A (en) * 2018-08-29 2020-03-10 주식회사 케이티 Device, method and computer program for providing voice recognition service
KR102323640B1 (en) 2018-08-29 2021-11-08 주식회사 케이티 Device, method and computer program for providing voice recognition service

Also Published As

Publication number Publication date
JP4392581B2 (en) 2010-01-06

Similar Documents

Publication Publication Date Title
US10140973B1 (en) Text-to-speech processing using previously speech processed data
JP3126985B2 (en) Method and apparatus for adapting the size of a language model of a speech recognition system
US10176809B1 (en) Customized compression and decompression of audio data
US6952665B1 (en) Translating apparatus and method, and recording medium used therewith
JP3994368B2 (en) Information processing apparatus, information processing method, and recording medium
US6937983B2 (en) Method and system for semantic speech recognition
US7299178B2 (en) Continuous speech recognition method and system using inter-word phonetic information
US7630878B2 (en) Speech recognition with language-dependent model vectors
US10163436B1 (en) Training a speech processing system using spoken utterances
EP1575030A1 (en) New-word pronunciation learning using a pronunciation graph
Rabiner et al. An overview of automatic speech recognition
US20130090921A1 (en) Pronunciation learning from user correction
Neto et al. Free tools and resources for Brazilian Portuguese speech recognition
JP2001215993A (en) Device and method for interactive processing and recording medium
JPH07219578A (en) Method for voice recognition
JP2001188781A (en) Device and method for processing conversation and recording medium
JP4392581B2 (en) Language processing apparatus, language processing method, program, and recording medium
JPH08505957A (en) Voice recognition system
US20040006469A1 (en) Apparatus and method for updating lexicon
Franco et al. Dynaspeak: SRI’s scalable speech recognizer for embedded and mobile systems
JP3059398B2 (en) Automatic interpreter
JP2001209644A (en) Information processor, information processing method and recording medium
AbuZeina et al. Cross-word modeling for Arabic speech recognition
Isotani et al. An automatic speech translation system on PDAs for travel conversation
US10854196B1 (en) Functional prerequisites and acknowledgments

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