説明

音声認識装置、音声認識方法、音声認識プログラム

【課題】 メモリに制約のある装置において、補助記憶装置からの、単語辞書を読み込みによる音声認識処理の遅延を削減することができる音声認識装置を提供する。
【解決手段】音声に含まれる複数の連続する単語を認識する音声認識装置は、音響モデル11を読み込む音響モデル読み込み部5と、辞書データ12から、必要なデータを読み込む辞書管理部9と、音響モデル11を用いて、辞書データ12が表す単語群と、入力された前記音声とを照合することで、連続する単語を順次認識する認識部7とを備え、辞書データ11は、単語の語頭を示す語頭辞書と、語末を示すデータが記録された語末辞書群とを含み、認識部7が認識した単語に応じて、語末辞書および/または語頭辞書を読み込み、認識部7は、辞書管理部9が語末辞書および/または語頭辞書を読み込む間に、後に続く音声と、語頭辞書に含まれる単語の語頭とを照合する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、利用者の発声する連続単語を認識する音声認識装置、音声認識方法、音声認識プログラムに関する。
【背景技術】
【0002】
音声認識装置は、大量の単語が格納された単語辞書データをCPUが直接読み書きできる主記憶装置(メインメモリ(以下メモリと称する))に展開して音声認識処理に用いている。従来の音声認識装置は、単語辞書を複数のファイルに分割してHDDやDVDやROMなどの補助記憶装置に記録しておき、補助記憶装置から必要なファイルのみをメモリ上に読み込んで認識処理を行っていた。これにより、音声認識処理に使用するメモリ容量を抑えることができる。しかし、補助記憶装置からメモリへの単語辞書データの読み込み(ロード)を行っている間は、認識処理を進めることができない。そのため、音声認識処理の遅延が生じる問題があった。
【0003】
例えば、住所認識装置では、県名辞書と市名辞書とがそれぞれファイルとして補助記憶装置に記録されている。この住所認識装置が、例えば、「愛知県、名古屋市」のように、県名と市名とが連続に発声された音声を認識するとき、県名「愛知県」を認識した後に、その県名に対応する市名辞書をメモリ上に読み込む。住所認識装置は、市名辞書を読み込んでいる間、読み込みが完了するまで認識処理を進めることができない。その結果、住所認識処理の遅延が生じていた。
【0004】
このような遅延への対策を施した音声認識装置が提案されている(例えば、特許文献1参照)。この音声認識装置は、DVDなどの補助記憶装置から辞書データを読み込んでいる間に、RAMから読み込んだ照合データを用いた照合処理を先行して行う。読み込んだ辞書データは、遅延照合データ記録手段に記録され、読み込み終了後に、遅延照合データ記録手段に記録されたデータを用いた照合処理が行われる。その後、前記遅延照合データと前記照合データとが統合される。
【特許文献1】特開平2002−268673号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記音声認識装置は、照合中の結果と遅延して照合を行った結果とを統合(マージ)する必要が生じる。そのため、上記音声認識装置とは異なる方法で、補助記憶装置から辞書データを読み込む際の待ち時間による処理の遅延を削減する方法が求められていた。
【0006】
上記課題に鑑み、本発明は、補助記憶装置から辞書データを読み込む際の待ち時間による音声認識処理の遅延を削減することができる音声認識装置、音声認識プログラム、音声認識方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明にかかる音声認識装置は、入力された音声に含まれる複数の連続して対応づけられた単語を認識し、その認識結果を出力する音声認識装置であって、補助記憶装置に予め記録された音響モデルを主記憶装置に読み込む音響モデル読み込み部と、補助記憶装置に予め記録された、認識する単語の候補となる単語群の語頭を表す語頭辞書と、前記単語群の語末を表す語末辞書と、単語の語順を表す語順データと、語頭辞書と語末辞書の対応を表す対応データとを含む辞書データから、前記語順データ、前記対応データ、前記語頭辞書および前記語末辞書を前記主記憶装置へ読み込む辞書管理部と、前記主記憶装置へ読み込まれた音響モデルおよび対応データを用いて、前記主記憶装置へ読み込まれた語頭辞書および語末辞書が表す単語群と、入力された前記音声とを照合することで、前記入力音声に含まれる複数の連続して対応づけられた単語を順次認識する認識部とを備え、前記辞書データは、複数の単語の語頭を示すデータが記録された少なくとも1つの語頭辞書と、前記語頭辞書が示す語頭群に対応する語末群を示すデータが複数の語末辞書として記録された語末辞書群とを含み、前記辞書管理部は、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とを主記憶装置へ読み込んでおき、前記認識部が、主記憶装置へ読み込まれた前記語頭辞書を用いて単語を認識している間に、前記語順データに基づいて前記語末辞書および/または語頭辞書を読み込む。
【0008】
補助記憶装置は、音響モデル読み込み部、辞書管理部および認識部が高速にデータを読み書きすることができない記憶装置であり、例えば、ハードディスク、DVD、MO、CD、フレキシブルディスク、磁気テープ、ROM等である。なお、補助記憶装置は、外部記憶装置と呼ばれることもある。
【0009】
辞書管理部または音響モデル読み込み部がデータを読み込むという動作は、補助記憶装置に記録された辞書データを、主記憶装置(メインメモリ以下、単にメモリと称する)に記録する動作を指す。メモリは、音響モデル読み込み部、辞書管理部および認識部が直接かつ高速に読み書きすることができる記憶装置である。メモリには、例えば、半導体素子を利用して電気的にデータを記録する記録媒体が用いられる。メモリの例として、RAM等が挙げられる。
【0010】
語頭辞書は、複数の単語の語頭を示すデータが、論理的にまとめて記録されたデータである。語末辞書は、複数の単語の語末を示すデータが論理的にまとめて記録されたデータである。例えば、1つの語頭辞書または1つの語末辞書は、1のファイルで構成されてもよいし、データベースにおける1つのテーブルで構成されてもよい。または、例えば、1つのファイルの中に複数の語頭辞書または語末辞書が含まれる構成であってもよい。
【0011】
前記辞書管理部は、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とをメモリへ読み込んでおくので、認識部は、入力された音声に含まれる単語の語頭に相当する部分を、メモリの語頭辞書と照合することができる。辞書管理部は、認識部が単語の語頭を認識をしている時間に、語末辞書または語頭辞書を語順データに基づいて読み込むことができる。そのため、音声認識のための辞書データの補助記憶装置からの読み込みによる音声認識処理の遅延が削減される。特に、メモリに制約があるために音声認識のための辞書データを全て主記憶装置上に記録できない音声認識装置において、辞書データの補助記憶装置からの読み込みによる音声認識処理の遅延が削減される。
【0012】
本発明にかかる音声認識装置において、前記語頭辞書には、認識対象となる複数の連続して対応づけられた単語の候補となる全ての単語群についての語頭が記録されており、前記辞書管理部は、前記認識部による入力された音声の認識開始前に、前記語頭辞書と、前記音声に含まれる単語のうち1番目の単語の候補となる単語群の語末辞書とを読み込み、前記認識部によりN番目(N=1,2,3,・・・)の単語が認識されると、(N+1)番目の単語の候補となる単語群の語末を含む語末辞書を、N番目の単語と前記語順データとに基づき前記複数の語末辞書の中から選択して読み込みを開始し、当該読み込みの間に前記認識部は、(N+1)番目の単語の語頭を前記語頭辞書を用いて認識することが好ましい。
【0013】
前記語頭辞書には、認識対象となる複数の連続する単語の候補となる全ての単語群についての語頭が記録されている。そのため、辞書管理部がN番目の単語と語順データとに基づいて(N+1)番目の単語の候補となる単語群を含む語末辞書を読み込む間に、認識部は、語頭辞書を用いて(N+1)番目の単語の認識処理を行うことができる。これにより、辞書管理部は、認識部が認識した単語に応じて、必要な語末辞書を適切なタイミングで読み込むことができる。そのため、メモリ上の語末辞書のデータ量を抑えつつも、効率のよい音声認識が可能になる。
【0014】
本発明にかかる音声認識装置において、前記辞書管理部は、前記認識部による認識開始前に、前記入力音声に含まれる単語のうち1番目の単語の候補となる単語群の語末を含む語末辞書と、1番目と2番目の単語の候補となる単語群の語頭を含む語頭辞書とを読み込み、前記認識部によりN番目(N=1,2,3,・・・)の単語が認識されると、(N+1)番目の単語の候補となる単語群の語末を含む語末辞書と、(N+2)番目の単語の候補となる単語群の語頭を含む語頭辞書とを読み込むことが好ましい。
【0015】
これにより、辞書管理部は、1番目の単語の候補となる単語群の語末を含む語末辞書と、1番目と2番目の単語の候補となる単語群の語頭を含む語頭辞書と読み込んでおくので、認識部がこの連続する1番目の単語を認識した時点で、2番目の単語を認識する処理を開始することが可能となる。また、辞書管理部は、認識部がN番目の単語を認識した時点で、(N+1)番目の単語の候補となる単語群を含む語末辞書と(N+2)番目の単語の候補となる単語群の語頭を含む語頭辞書を読み込む。これにより、認識部は、2番目以降の単語を認識した場合も同様に、次の単語の認識を開始することができる。すなわち、辞書管理部は、認識部が認識した単語に応じて、認識部が必要とする語末辞書および語頭辞書を適切なタイミングで読み込むことができる。
【0016】
本発明にかかる音声認識装置において、前記辞書管理部は、前記認識部が主記憶装置へ読み込まれた前記語頭辞書を用いて単語の語頭の一部を前記音声と照合した時点で、前記照合した結果に基づいて前記語末辞書および/または語頭辞書の読み込みを開始することが好ましい。
【0017】
これにより、辞書管理部は、照合結果が示す語頭の一部に対応した語末辞書を読み込むことができる。これにより、適切な語末辞書を効率よく読み込むことができる。
【0018】
本発明にかかる音声認識装置では、前記語末辞書において、単語の語末それぞれに対応して、その単語の後に続く可能性のある単語群の語頭を含む語頭辞書または該単語群の語末を含む語末辞書を示す辞書識別データが記録されており、前記辞書管理部は、認識部が認識した単語の語末に対応する辞書識別データに基づいて、語頭辞書または語末辞書を読み込むことが好ましい。
【0019】
辞書管理部は、認識部が認識した単語の語末に対応付けられた辞書識別データを用いることによって、その単語の後に続く可能性のある単語群の語頭を含む語頭辞書または、該単語群の語末を含む語頭辞書を読み込むことができる。
【0020】
本発明にかかる音声認識装置において、前記辞書データは、語頭辞書を複数含み、前記認識部は、認識した単語の語末に対応する辞書識別データに基づいて、前記認識した単語の次に続く可能性のある単語群の語頭を含む語頭辞書を前記複数の語頭辞書から選択し、選択した語頭辞書を用いて、前記認識した単語の後に続く単語を認識することが好ましい。
【0021】
認識部は、すでに認識した単語の語末に対応付けられた辞書識別データに基づいて、次の認識した単語の後に続く可能性のある単語群の語頭を含む語頭辞書を選択することができる。そのため、適切な語頭辞書を用いて、認識された単語の後に続く単語の認識処理を効率よく行うことができる。
【0022】
本発明にかかる音声認識装置において、前記辞書管理部は、主記憶装置に読み込んだ語末辞書および語頭辞書のうち、前記認識部による単語の認識に用いられた後に不要になった語末辞書または語頭辞書を主記憶装置から削除することが好ましい。メモリ上の不要なデータが削除されるので、使用メモリ容量を削減することができる。
【0023】
本発明にかかる音声認識装置において、前記辞書データは、音声に含まれる可能性のある単語群が、音素数、音節数、モーラ数、単語の出現頻度および使用可能なメモリ容量の少なくとも1つに応じて語頭と語末に分割され、それぞれが前記語頭辞書と前記語尾辞書群に含められて記録された辞書データであることが好ましい。
【0024】
本発明にかかる音声認識方法は、入力された音声に含まれる複数の連続して対応づけられた単語をコンピュータが認識し、その認識結果を出力する音声認識方法であって、前記コンピュータが、補助記憶装置に予め記録された音響モデルを主記憶装置に読み込む音響モデル読み込む工程と、補助記憶装置に予め記録された、認識する単語の候補となる単語群の語頭を表す語頭辞書と、前記単語群の語末を表す語末辞書と、単語の語順を表す語順データと、語頭辞書と語末辞書の対応を表す対応データとを含む辞書データから、前記コンピュータが、前記語順データ、前記対応データ、前記語頭辞書および前記語末辞書を前記主記憶装置へ読み込む辞書管理工程と、前記コンピュータが、前記主記憶装置へ読み込まれた音響モデルおよび対応データを用いて、前記主記憶装置へ読み込まれた語頭辞書および語末辞書が表す単語群と、入力された前記音声とを照合することで、前記入力音声に含まれる複数の連続して対応づけられた単語を順次認識する認識工程とを含み、前記辞書データは、複数の単語の語頭を示すデータが記録された少なくとも1つの語頭辞書と、前記語頭辞書が示す語頭群に対応する語末群を示すデータが複数の語末辞書として記録された語末辞書群とを含んでおり、前記辞書管理工程において、前記コンピュータは、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とを主記憶装置へ読み込んでおき、前記認識工程で、主記憶装置へ読み込まれた前記語頭辞書を用いて単語を認識している間に、前記語順データに基づいて前記語末辞書および/または語頭辞書を読み込む。
【0025】
本発明にかかる音声認識プログラムは、入力された音声に含まれる複数の連続して対応づけられた単語をが認識し、その認識結果を出力する処理をコンピュータに実行させる音声認識プログラムであって、補助記憶装置に予め記録された音響モデルを主記憶装置に読み込む音響モデル読み込む処理と、補助記憶装置に予め記録された、認識する単語の候補となる単語群の語頭を表す語頭辞書と、前記単語群の語末を表す語末辞書と、単語の語順を表す語順データと、語頭辞書と語末辞書の対応を表す対応データとを含む辞書データから、前記語順データ、前記対応データ、前記語頭辞書および前記語末辞書を前記主記憶装置へ読み込む辞書管理処理と、前記主記憶装置へ読み込まれた音響モデルおよび対応データを用いて、前記主記憶装置へ読み込まれた語頭辞書および語末辞書が表す単語群と、入力された前記音声とを照合することで、前記入力音声に含まれる複数の連続して対応づけられた単語を順次認識する認識処理とをコンピュータに実行させ、前記辞書データは、複数の単語の語頭を示すデータが記録された少なくとも1つの語頭辞書と、前記語頭辞書が示す語頭群に対応する語末群を示すデータが複数の語末辞書として記録された語末辞書群とを含み、前記辞書管理処理において、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とを主記憶装置へ読み込んでおき、前記認識処理で、主記憶装置へ読み込まれた前記語頭辞書を用いて単語を認識している間に、前記語順データに基づいて前記語末辞書および/または語頭辞書を読み込む処理をコンピュータに実行させる。
【発明の効果】
【0026】
本発明によれば、補助記憶装置から辞書データを読み込む際の待ち時間による音声認識処理の遅延を削減することができる音声認識装置、音声認識プログラム、音声認識方法を提供することができる。
【発明を実施するための最良の形態】
【0027】
(実施の形態1)
図1は、本実施形態における音声認識装置の構成の一例を示す機能ブロック図である。図1に示す音声認識装置1は、入力された音声に含まれる複数の連続する単語を認識し、その認識結果を出力する。音声認識装置1は、例えば、マイクロフォン等の入力装置で入力された音声を認識し、認識結果をディスプレイ、スピーカ、プリンタ等の出力装置に出力してもよい。また、別の例として、音声認識装置1は、上位アプリケーションから音声データを受け取って、その音声データの認識結果を上位アプリケーションに返してもよい。
【0028】
音声認識装置1は、音声分析部3、音響モデル読み込み部5、認識部7、メモリ8、辞書管理部9を備える。音声認識装置1は、補助記憶装置2に接続されている。本実施形態において、補助記憶装置2には、音響モデル11と辞書データ12が記録されている。
【0029】
音声認識装置1は、少なくともCPUおよびメモリ8を有するコンピュータによって構成される。音声分析部3、音響モデル読み込み部5、認識部7、辞書管理部9の各機能は、CPUがメモリ8にロードされた所定のプログラムを実行することによって実現される。なお、図1には、1つのメモリ8に対して音響モデル読み込み部5、認識部7、メモリ8、辞書管理部9が読み書きを行う構成を例示しているが、メモリ8は複数設けられても良い。
【0030】
補助記憶装置2は、例えば、音声認識装置1のCPUにバスを介して接続された記憶装置でもよいし、ネットワークを介して音声認識装置1と接続されている記憶装置でもよい。
【0031】
音声認識装置1は、例えば、パーソナルコンピュータのような汎用コンピュータで構成されてよい。また、音声認識装置1は、カーナビゲーション装置、携帯電話、PDA、ディスプレイ等の電子機器に組み込まれたコンピュータにより構成することもできる。
【0032】
辞書管理部9は、辞書データ12のうち必要なデータを読み込む。すなわち、辞書管理部9は、辞書データ12の中から認識処理に必要なデータのみを随時読み出して、音声認識装置1のコンピュータが備えるメモリ8上に展開する。辞書データ12は、認識する単語の候補となる単語群を表すデータである。辞書データ12には、例えば、各単語の文字列データ、各単語の読みを示す情報および各単語の語順を表す文法の情報等が含まれる。各単語の読みを示す情報の例として、例えば、音素列、音節列、発音記号列等のデータが挙げられる。また、単語の語順を表す文法の例として、例えば、文脈自由文法、有限状態文法等のデータが挙げられる。
【0033】
辞書データには、少なくとも1つの語頭辞書と複数の語末辞書とが含まれる。語頭辞書は、複数の単語の語頭を示すデータである。語末辞書は、語頭辞書が示す語頭群に対応する語末群を示すデータである。語末群は、複数の語末辞書に分けて記録されている。なお、辞書データの具体例は後述する。
【0034】
音響モデル11は、例えば、音声の特徴を、音素ごとに統計的にモデル化したデータである。音響モデル11の例として、HMM(Hidden Markov Model)が挙げられる。音響モデル読み込み部は、音響モデル11を補助記憶装置2から主記憶装置上に読み込む。
【0035】
認識部7は、辞書管理部9から、認識する単語の候補となる単語群の語頭および語末の音素列を受け取る。認識部7は、受け取った語頭および語末の音素列に対応するデータを音響モデル11から抽出し、語頭の音響モデル列と語末の音響モデル列を生成する。
【0036】
音声認識装置1へ音声が入力されると、音声分析部3は、入力された音声を分析して音声特徴量に変換する。音声特徴量は、認識部7へ渡される。
【0037】
認識部7は、入力音声の音声特徴量と、語頭群の音響モデル列および語末群の音響モデル列とを照合することにより、候補となる各単語の語頭および語末について類似度を計算する。これらの類似度に基づいて、音声に含まれる単語が認識される。認識部7は、入力音声の前から順に、音声が終了するまで順次単語を認識していく。認識部7は、認識した単語を示すデータを辞書管理部9に渡す。
【0038】
辞書管理部9は、認識部7が認識した単語に従って、次に発声されうる単語の候補となる単語群の語頭または語末の音素列を、補助記憶装置2から読み出して認識部7に渡す。認識部7および辞書管理部9は、入力音声が終了するまで、上記の認識処理を繰り返す。入力音声が終了した場合、認識部7は、認識した単語列を認識結果として出力する。認識結果は、例えば、文字列データで出力される。
【0039】
(辞書データの具体例)
図2は、辞書データ12に含まれる語頭辞書および語末辞書の具体例を示す図である。図2に示す例は、音声認識装置1に日本国内の住所が音声で入力された場合に、その住所を認識する場合に用いられる辞書データの例である。住所を表す音声は、例えば、県名を表す単語→市名を表す単語→区名を表す単語→町域名を表す単語、のように連続する複数の単語を含む。ここで、町域名は、市区町村名の後に続く地名であって丁目および番地を除く部分とする。
【0040】
図2に示す語頭辞書10は、音声に含まれうる全ての単語群の語頭を示すデータである。語頭辞書10では、語頭の音素列と、その語頭と語末とを対応付けるためのデータとが、各語頭について記録されている。例えば、語頭辞書10の初めのデータ“ai→1”は、単語「愛知県」の語頭「あい」の音素列“ai”と、語頭「あい」を語末の「ちけん」と対応付けるための番号“1”とが対応付けられたデータである。なお、図2では、語頭辞書10の内容の表示を一部省略している。
【0041】
語末辞書20a、20b−1、20b−2、20c−1、20c−2は、語頭辞書10で表される語頭に対応する語末を示すデータである。語末辞書20b−1、20b−2、20c−1、20c−2は、それぞれの語末辞書を識別するための辞書識別データ“C1”、“C2”、“E1”、“E11”を含む。
【0042】
語末辞書20a、20b−1、20b−2、20c−1、20c−2では、語末の音素列と、その語末と語頭とを対応付けるためのデータと、その語末が表す単語の文字列と、その語末に対応付けられた辞書識別データとが、各語末について記録されている。その語末に対応付けられた辞書識別データは、例えば、その語末の次に続く単語の候補となる単語群を含む語末辞書を示すデータである。
【0043】
例えば、語末辞書20aには、県名の語末を示すデータが集められている。語末辞書20aの初めのデータ“1.tiken→愛知県:C1”は、語末の音素列“tiken”と、語末「ちけん」を語頭「あい」と対応付けるための番号“1”と、単語を示す文字列“愛知県”と、辞書識別データ“C1”とを含んでいる。辞書識別データ“C1”は、「愛知県」の次に続く単語の候補となる単語群が含まれる語末辞書(ここでは、愛知県の市名の語末辞書20b−1)を示す。
【0044】
語末辞書20b−1は、語末辞書を識別するための識別データ“C1”と、愛知県内の市(町、村も含む)の名前の語末を示すデータを含んでいる。同様に、語末辞書20b−2は、識別データ“C2”と、青森県内の市(町、村、群も含む)の名前の語末を示すデータを含んでいる。語末辞書20c−1は識別データ“E1”と名古屋市内の区の名前を示すデータを、語末辞書20c−2は識別データ“E11”と青森市内の町域名の語末を示すデータをそれぞれ含んでいる。
【0045】
語頭辞書10および語末辞書語末辞書20a、20b−1、20b−2、20c−1、20c−2は、例えば、辞書ごとのファイルとして記録されてもよいし、辞書ごとのテーブルとして記録されてもよい。また、複数の辞書を1つのファイルで記録してもよいし、1つの辞書を複数のファイルに分割して記録してもよい。また、例えば、語頭辞書10と県名の語末辞書20aとの組み合わせのように、同時に読み込まれる可能性がある辞書群を1つのファイルまたはテーブルに記録することもできる。つまり、辞書データの形態は、辞書管理部9が辞書データ12から必要なデータを読み出す際に、データを辞書ごとに識別できる形態であればよい。
【0046】
このように、音声に含まれ得る単語群の語末は、単語の持つ意味を考慮して、複数の語末辞書に分けて記録される。なお、図2に示した例では、語頭辞書10に対応する語末辞書を全て示しておらず、一部を省略している。また、各語末辞書に含まれるデータの表示も一部省略している。また、語末辞書および語頭辞書のデータ構成は、図2に示した例に限られない。
【0047】
(単語を語頭と語末に区切る方法)
図2に示すような、語頭辞書と語末辞書を作成するには、1つの単語を語頭と語末とに分けて記録する必要がある。ここで、単語を語頭と語末に区切る方法の例を説明する。1つの方法として、音響モデルの単位(音素、音節またはモーラ数)で単語を区切り、その区切り位置のいずれかを、語頭と語末の区切り位置とすることができる。例えば、単語を音節で区切った場合、単語の先頭から2音節を語頭、3音節目以降を語末とすることができる。先頭の何個分の音節を語頭にするかは、例えば、利用可能なメモリ8の容量、外部記録装置からの読み込み時間、出現頻度等に応じて計算により決めてもよい。また、使用可能メモリ容量が十分にある場合は、語頭を長くすることで、処理の遅延の削減量を多くすることができる。例えば、発声頻度が他の単語と比べて高い単語は、他の単語よりも語頭の長さを長くすることができる。
【0048】
(音声認識装置の動作例)
図3は、音声認識装置1が音声を認識する処理の一例を示すフローチャートである。本動作例では、日本国内の住所が音声で入力され、その住所を認識する場合を具体例に挙げて説明する。本動作例で音声認識装置1は、入力された音声に含まれる最初の単語は県名を表す単語であり、次の単語はその県に含まれる市、町、群または村の名前を表す単語であり、その後の単語は、その市、町、群または村に含まれる区または町域の名前を表す単語であることを前提として音声を認識する。このように、本実施形態において、認識の対象となる連続する複数の単語それぞれの候補となる単語群は、単語の語順を表す文法等により関連付けられていることが前提である。この関連付けの具体例として、以下説明するのは、日本国内の県、愛知県内の市、名古屋市内の区等である。
【0049】
音声認識装置1に音声が入力される前に、まず、辞書管理部9は、語頭辞書を補助記憶装置2から主記憶装置であるメモリ8に読み込んでおく(Op1)。ここで読み込まれる語頭辞書には、音声に含まれ得る全ての単語の語頭を示すデータが含まれている。
【0050】
辞書管理部9は、入力音声の先頭に発声され得る単語の候補となる単語群の語末を含む語末辞書も読み込んでおく(Op2)。先頭に発声され得る単語の候補となる単語群は、音声認識装置1の仕様によって予め決められる。例えば、音声認識装置1の仕様が住所を認識する仕様である場合、先頭に発声され得る単語は県名と決められる。Op1とOp2の具体例としては、図2に示した、全ての単語の語頭を示す語頭辞書10と、県名の語末を示す語末辞書20aが辞書管理部9によってまず読み込まれる。
【0051】
音響モデル読み込み部5は、音響モデル11を補助記憶装置2からメモリ8へ読み込んでおく(Op3)。これにより、認識部7は、少なくとも先頭の単語の語頭および語末については、メモリ8に読み込まれた音響モデル、語頭辞書および語末辞書を用いて認識処理ができる。また先頭の単語の後に続く単語の語頭については、メモリ8に読み込まれた音響モデル、および語頭辞書を用いて認識処理ができるようになる。
【0052】
音声入力が開始されると(Op4)、音声分析部3が、入力された音声を分析して音声特徴量に変換する(Op5)。ここで、音声分析部3は、入力された音声を時間軸に沿って幾つかのフレームに分割し、各フレームに対して音声特徴量を計算する。音声特徴量の例としては、スペクトルやケプストラム等が挙げられる。
【0053】
認識部7は、変数iを“1”に初期化する(Op6)。認識部7は、Op1でメモリ8に読み込まれた語頭辞書が表す単語の語頭と、入力音声の先頭からi番目の単語の語頭に相当するフレームの音声特徴量とを照合する(Op7)。この照合の際には、Op3で読み込まれた音響モデルが用いられる。
【0054】
語頭辞書においては、各語頭が音素列で表されている。認識部7は、語頭辞書に含まれる各音素列に対応する音響モデル列を、音響モデル11を用いて生成する。図2に示す例においては、語頭辞書10に含まれる各音素列“ai”、“ao”、“ak”、“na”・・・(以下の音素列省略)のそれぞれに対応する音響モデル列が生成される。認識部7は、この各音素列に対応する音響モデル列と、入力音声の先頭からi番目の単語の語頭に相当するフレームの音声特徴量とを照合して、各音素列に対応する音響モデル列と音声特徴量との類似度を計算する。i=1の場合、認識部7は、入力音声の先頭部分に相当するフレームの特徴量と音響モデル列との類似度を計算する。
【0055】
次に、認識部7は、音響モデルを用いて、メモリ8に読み込まれている語末辞書が表す単語の語末と、入力音声の先頭からi番目の単語の語末に相当するフレームの音声特徴量とを照合する(Op8)。ここで照合に用いられる語末辞書は、認識部7がi番目に認識する単語の候補となる単語群の語末を含む語末辞書(以下、「i番目の単語の語末辞書」と称する)である。i番目の単語の語末辞書がメモリ8に読み込まれていなければ、辞書管理部9が読み込み完了するまで、認識部7は待機する。i=1の場合は、1番目の単語の語末辞書20aはOp2で既に読み込まれている。そのため、認識部7は待機することなく、その語末辞書20aを用いて1番目の単語の語末を認識することができる。図2に示す例においては、既に読み込まれている県名の語末辞書20aの各音素列“tiken”、“moriken”、“itaken”、・・・(以下の音素列省略)のそれぞれに対応する音響モデル列が生成され、これらの音響モデル列と、1番目の単語の語末に相当するフレームの音声特徴量との類似度が計算される。
【0056】
認識部7は、Op7で計算された語頭辞書の各音素列についての類似度と、Op8で計算された語末辞書の各音素列についての類似度とから、入力音声の先頭からi番目の単語を認識する(Op9)。認識部7は、例えば、語頭辞書に含まれる複数の語頭と、語末辞書に含まれる複数の語末とを組み合わせてできる単語のうち、語頭の類似度と語末の類似度との和が最も高い音素列の単語をi番目の単語と認識することができる。
【0057】
図2に示す例においては、i=1の場合、認識部7は、語頭辞書10に含まれる語頭と、県名の語末辞書20aに含まれる語末とを組み合わせて県名の音素列を生成する。ここで、例えば、語頭辞書10の音素列“ai”には、語頭と語末とを対応付けるためのデータ“1”が記録されているので、認識部7は、語頭辞書10の語頭“ai”と語末辞書20aの語末“1.tiken”と組み合わせて県名の音素列“aitiken”を生成することができる。
【0058】
このようにして生成される県名の音素列“aitiken”、“aomoriken”、“akitaken”、“naganoken”、・・・(以下の音素列省略)それぞれについて、語頭の音響モデル列の類似度と語末の音響モデル列の類似度の和を計算し、、最も類似度が高い音素列の県名を、入力音声の1番目の単語と認識する。
【0059】
なお、語頭の音響モデル列と語末の音響モデル列とを連結した連結音響モデル列と、入力音声との類似度を計算し、最も類似度が高い連結音響モデル列に対応する単語を、入力音声の単語と認識することもできる。
【0060】
認識部7は、上記のように認識した単語を辞書管理部9に渡す。辞書管理部9は、渡された単語に基づいて、(i+1)番目の単語の候補となる単語群が含まれる語末辞書を決定する(Op10)。辞書管理部9は、すでに読み込まれている語末辞書中の、渡された単語の語末に対応付けられた辞書識別データを基に、(i+1)番目の語末辞書を決定することができる。辞書識別データは、語末辞書において、各語末に対応付けられて記録されたデータであり、語末の次に続く単語の候補となる単語群を含む語末辞書を示すデータである。
【0061】
例えば、図2に示す県名の語末辞書20aにおいて、語末の音素列“tiken”、“moriken”・・・(以下の音素列省略)にそれぞれ対応する辞書識別データ“C1”、“C2”が記録されている。図2に示す例では、これら辞書識別データ“C1”、“C2”は、語末辞書20b−1、20b―2をそれぞれ示している。例えば、i番目の単語として“aitiken”が辞書管理部9へ渡された場合、辞書管理部9は、語末辞書20aの音素列“tiken”に対応付けられた辞書識別データ“C1”を参照する。これにより、辞書管理部9は、辞書識別データとして“C1”を持つ語末辞書20b−1(愛知県の市名を含む語末辞書)が、次に続く(i+1)番目の単語の候補となる単語群が含まれる語末辞書(すなわち、(i+1)番目の単語の語末辞書)であると決定する。このように、次に来る単語の認識に用いる語末辞書を決定することで、適切なタイミングで単語の認識に必要な語末辞書のみ読み込むことが可能となる。
【0062】
また、例えば、図2に示す語末辞書20c−1、20c−2のように、辞書識別データがなく、次の辞書の指定がない場合がある。この場合、認識するべき単語は全て認識したと判断して、音声認識処理は終了する。すなわち、(i+1)番目の単語の語末辞書がない場合(Op11でNo)、音声認識処理は終了する。
【0063】
(i+1)番目の単語の語末辞書が決定すると(Op11でYes)、辞書管理部9は、i番目の単語の照合に使用した語末辞書をメモリ8上から削除する。このように使わなくなった辞書をメモリ8上から削除することで、使用メモリ量を抑えることができる。例えば、i=1の場合に、入力音声の1番目の単語として県名が認識されると、辞書管理部9は、県名の語末辞書20aをメモリ8上から削除する。
【0064】
Op11の後、変数iに1が足される(Op12)。その後、辞書管理部9は、Op10で決定した語末辞書、すなわちi番目の単語の語末辞書の読み込みを開始する(Op13)。この語末辞書読み込み(Op13)と略同時に、認識部7は、語頭辞書が表す単語の語頭を、i番目の単語に相当するフレームの音声特徴量と照合する(Op7)。
【0065】
i=2の場合であって、図2に示す例において、1番目の単語として“aitiken”(愛知県)という県名が認識された場合について説明する。この場合、辞書管理部9は、語末辞書20aの“tiken”の辞書識別データ“C1”が示す語末辞書20b−1を補助記憶装置2からメモリ8へ読み込む。これと略同時に、認識部7は、語頭辞書10の音素列と、入力音声の先頭から2番目の単語に相当するフレームの音声特徴量とを照合する。これにより、辞書管理部9が、認識部7で認識された県名を基に、その県名の次に発声されうる市名の語末辞書20b−1を読み込む処理と並行して、認識部7が市名の語頭を照合する処理が行われる。
【0066】
Op7〜Op13の処理は、Op11で後に続く辞書がなくなったと判断されるまで繰り返される。これにより、音声に含まれる連続する単語の列が順次認識される。例えば、i=2の時に、入力音声の先頭から2番目の単語が、語頭“na”(図2の語頭辞書10参照)と語末“goyasi”(語末辞書20b−1参照)との組み合わせの単語“nagoyasi”と認識された場合、辞書管理部9は、名古屋市内の区名を表す語末辞書20c−1を読み込む。これと同時に、認識部7は語頭辞書10を基に区名の語頭を照合する。また、認識部7は、読み込まれた語末辞書20c−1を用いて、区名の語末を照合する。認識結果として例えば、“nakaku”が得られるとする。ここで区名に続く単語の候補となる単語群を含む語末辞書がない場合(Op11でNo)、認識結果として「愛知県 名古屋市 中区」が出力される。このようにして、音声に含まれる県名、市名、区名を表す単語が順次認識される。
【0067】
図4は、図3に示す処理の実行状況を時間軸上に表した図である。図4において、T軸は時間を表す。図4においては、図3に示したOp7〜13の処理を実行している時間がそれぞれ矢印で示されている。一例として、i=1におけるOp7、8、9、10〜12の処理と、i=2におけるOp13、7、8の処理の実行時間がそれぞれ矢印で示されている。i=1において、Op7、8、9およびOp10〜12の処理が順次実行されてT1でOp12の処理が終了する。T1から、Op13の2番目の単語の語末辞書をメモリ8へ読み込む処理と、Op7の2番目の単語の語頭を照合する処理とが同時に開始される。ここで、Op13の語末辞書読み込み処理の間にも、Op7の処理が進められているので、処理の遅延が削減される。Op13の処理は時刻T2に終了する、すなわち、時刻T2に語末辞書の読み込みが完了する。時刻T2より、Op13で読み込まれた語末辞書を用いて、Op8の照合処理が行われる。
【0068】
なお、図4に示す処理の実行時間は、一例であって、音声認識装置1の動作はこれに限定されない。例えば、図4では、i=2においてOp13の処理よりOp7の処理の方が早く終了しているが、Op13の処理がOp7の処理より早く終了する場合もあり得る。
【0069】
また、図3に示す上記処理も、音声認識装置1の動作の一例を示す処理であって、本発明にかかる音声認識装置の動作は、これに限られるものではない。例えば、図3に示す処理においては、認識部7は、語頭辞書を用いて計算された類似度と、語末辞書を用いて計算された類似度との和に基づいて単語を認識しているが、語頭辞書を用いて語頭だけを認識し、語末辞書を用いて語末だけを認識して、認識した語頭と語末を組み合わせた単語を認識結果としてもよい。
【0070】
また、辞書データ12に含まれる語頭辞書と語末辞書の構成も図2に示す構成に限られない。図2に示す語末辞書は、ある1つの上位概念に含まれる下位概念を表す単語を1つの語末辞書に集めた構造を有する。すなわち、図2に示す例では、県名を表す単語の語末が設けられ、さらに各県に含まれる市を表す単語の語末辞書が県ごとに設けられている。しかし、概念の異なる単語が1つの辞書に含まれる構成であってもよい。例えば、ある単語の次に続く候補となる単語群を1つの辞書に含ませ、その辞書を前記単語に対応付けるデータとともに記録してもよい。
【0071】
(語末辞書の変形例)
また、図2に示す語末辞書の変形例として、1つの上位概念に含まれる下位概念を表す単語を、その単語の語頭によってさらに複数の語末辞書に分けて記録することもできる。図5は、図2に示す語末辞書20b−1に含まれる語末を、複数の語末辞書に分けた場合の例を示す図である。図5では、語末辞書20b−1に含まれる語末が、語頭“n”に対応する語末“goyasi”、“gakutecho”・・・を含む語末辞書20b−11と、語頭“t”に対応する語末“yotasi”、“yohasisi”、“yokawasi”・・・を含む語末辞書20b−12およびその他(図示せず)の語末辞書に分けて記録されている。
【0072】
このように、各語頭に対応した語末を集めた語末辞書を記録することにより、辞書管理部9は、認識部7が単語の語頭の一部の照合した時点で、その照合結果に基づいて、読み込む語末辞書を選択することができる。例えば、認識部7が市名を表す単語の語頭の最初の一音素を“n”と認識した場合、辞書管理部9は、図5に示す語末辞書20b−11を読み込む語末辞書として選択することができる。これにより、読み込む語末辞書のサイズが小さくなる。その結果、語末辞書を読み込む時間が短縮し、かつ使用メモリ量を節約することができる。
【0073】
図6は、上記の単語の語頭の照合結果を基に読み込む語末辞書を選択する場合の図3に示す処理の実行状況を時間軸上に表した図である。図6に示す実行状況では、i=1におけるOp10〜12が終了した時刻T1で、i=2におけるOp7の処理が開始されているが、Op13の処理が開始されていない。Op13は、時刻T1´に開始されている。時刻T1´は、Op7の照合処理により、2番目の単語の語頭の照合結果が得られた時刻である。Op13の語末辞書読み込み処理は、2番目の照合結果に基づいて実行される。
【0074】
(実施の形態2)
実施の形態1では、辞書データに1つの語頭辞書のみが含まれる場合の音声認識処理について説明した。実施の形態2では、辞書データに複数の語頭辞書が含まれる場合の音声認識処理について説明する。本実施形態において認識部1は、複数の語頭辞書の中から適切な語頭辞書を適宜選んで音声認識処理を行う。なお、本実施形態における音声認識装置の構成は、図1に示す音声認識装置1の構成と同様である。
【0075】
図7は、実施の形態2における辞書データに含まれる語頭辞書および語末辞書の具体例を示す図である。図7において、図2に示す辞書と同じ内容の辞書には同じ番号を付し説明を省略する。図7に示す辞書データにおける語頭辞書には、複数の語頭辞書100−1、100−2、100−3、100−4が含まれている。これらの語頭辞書は、入力音声に含まれる可能性のある全ての単語の語頭が、複数の語頭辞書に分けて記録されたデータである。ここでは、一例として、県名を表す単語の語頭を含む語頭辞書100−1、各県に含まれる市町村の名前を表す単語の語頭を含む語頭辞書100−2、100−3、・・・、各市に含まれる区名または町域名を表す単語の語頭を含む語頭辞書100−4、・・・に分けて単語群の語頭が記録されている。
【0076】
このように単語群の語頭を複数の語頭辞書に分けて記録するのは、後述するように、認識部7が、認識する単語の候補に応じて必要な語頭群のみを参照することを可能にするためである。したがって、語頭辞書は、認識対象となる連続する単語それぞれの候補となる単語群に対応して設けられることが好ましい。
【0077】
なお、複数の語頭辞書100−1、100−2、100−3、100−4は、例えば、辞書ごとのファイルとして記録されてもよいし、辞書ごとのテーブルとして記録されてもよい。また、複数の辞書を1つのファイルで記録してもよいし、1つの辞書を複数のファイルに分割して記録してもよい。また、例えば、県名の語頭辞書100−1と県名の語末辞書20aとの組み合わせのように、同時に読み込まれる可能性がある辞書群を1つのファイルまたはテーブルに記録することもできる。
【0078】
図8は、実施の形態2における音声認識装置が音声を認識する処理の一例を示すフローチャートである。図8において、図2に示す処理と同じ処理には同じ番号を付し、詳細な説明を省略する。
【0079】
図8に示すように、辞書管理部9は、まず、辞書データ12に含まれる複数の語頭辞書全てをメモリ8へ読み込む(Op1a)。入力音声に含まれる可能性のある全ての単語の語頭が、ここで読み込まれた複数の語頭辞書に分けて記録されている。読み込まれる複数の語頭辞書の一部の具体例が、図7に示す語頭辞書100−1、100−2、100−3、100−4である。
【0080】
Op2〜6の処理は、図2と同様である。Op7aにおいて、認識部7は、音響モデルを用いて、語頭辞書が表す単語の語頭と、入力音声の先頭からi番目の単語の語頭に相当するフレームの音声特徴量とを照合する。ここで照合に用いられる語頭辞書は、i番目の単語の候補となる単語群の語頭を含む語頭辞書(以下、i番目の単語の語頭辞書と称する)である。。認識部7は、このi番目の語頭辞書に含まれる各音素列に対応する音響モデル列と、入力音声の先頭からi番目の単語の語頭に相当するフレームの音声特徴量とを照合して、両者の類似度を計算する。
【0081】
i=1の場合、1番目の語頭辞書の具体例は、図7に示す語頭辞書100−1である。語頭辞書100−1は、音声の初めに発声されうる県名を表す単語の語頭の音素列“ai”、“ao”、“ak”、・・・(以下、音素列省略)を含む。認識部7は、これらの各音素列に対応する音響モデル列と、音声の冒頭部分に相当するフレームの特徴量との類似度を計算する。
【0082】
次に、認識部7は、音響モデルを用いて、語末辞書が表す単語の語末と、i番目の単語の語末に相当するフレームの音声特徴量とを照合する(Op8)。ここで照合に用いられる語末辞書は、i番目の単語の語末辞書である。
【0083】
認識部7は、Op7aで計算された語頭辞書の各音素列について類似度と、Op8で計算された語末辞書の各音素列についての類似度とから、入力音声の先頭からi番目の単語を認識する(Op9)
i番目の単語が認識されると、辞書管理部9は、i番目の単語に基づいて、(i+1)番目の単語の候補となる単語群の語末が含まれる語末辞書(以下、「(i+1)番目の単語の語末辞書」と称する)を決定する(Op10)。(i+1)番目の単語の語末辞書がある場合(Op11でYes)さらに、辞書管理部9は、(i+1)番目の単語の候補となる単語群の語頭が含まれる語頭辞書(以下、「(i+1)番目の単語の語頭辞書」と称する)も決定する(Op10a)。辞書管理部9は、すでに読み込まれている語末辞書中の、渡された単語の語末に対応付けられた辞書識別データを基に、(i+1)番目の語頭辞書および(i+1)番目の語末辞書を決定することができる。
【0084】
例えば、図7に示す県名の語末辞書20aにおいて、語末の音素列“tiken”・・・(以下の音素列省略)に対応する辞書識別データ“C1”が記録されている。図7に示す例では、辞書識別データ“C1”は、語末辞書20b−1および語頭辞書100−2を示している。例えば、1番目の単語として“aitiken”が辞書管理部9へ渡された場合、辞書管理部9は、“C1”を辞書識別データに持つ語頭辞書100−2が、次に続く(i+1)番目の単語の語頭辞書であると決定することができる。また、辞書管理部9は、“C1”を辞書識別データに持つ語末辞書20b−1が、(i+1)番目の語頭辞書であると決定する。このようにして次に来る単語の認識に用いる語頭辞書および語末辞書を決定することで、適切なタイミングで単語の認識に必要な語末辞書のみメモリ8へ読み込むことが可能となるとともに、認識に必要な語頭辞書のみを参照して単語を認識することが可能になる。
【0085】
Op10の後、辞書管理部9は、i番目の単語の照合に使用した語末辞書をメモリ8上から削除する。i=1の場合、1番目の単語についてOp10の処理が終了すると、辞書管理部9は、県名の語頭辞書100−1および県名の語末辞書20aをメモリ8上から削除する。このように、認識部7が既に認識した単語の語頭辞書および語末辞書をメモリ8から削除することで、使用メモリ量を節約することができる。
【0086】
その後、変数iに1が足され(Op12)、辞書管理部9による語末辞書読み込み(Op13)と略同時に、認識部7は、Op10aで決定した語頭辞書、すなわちi番目の単語の語頭辞書が表す単語の語頭を、i番目の単語に相当するフレームの音声特徴量と照合する(Op7a)。
【0087】
i=2で、図7に示す例において、1番目の単語として“aitiken”(愛知県)という県名が認識された場合について説明する。この場合、辞書管理部9は、語末辞書20aの“tiken”の辞書識別データ“C1”が示す語末辞書20b−1を補助記憶装置2からメモリ8へ読み込む。これと略同時に、認識部7は、辞書識別データ“C1”が示す語頭辞書100−2の音素列と、2番目の単語に相当するフレームの音声特徴量とを照合する。これにより、認識部7が認識した県名を基に、その県名の次に発声されうる市名の語末辞書20b−1を読み込む処理が行われる。さらにこれと並行して、認識部7が、その県名の次に発声されうる市名の語頭辞書100−2と、県名に続く音声に相当するフレームの音声特徴量とを照合する。その結果、認識部7は、複数ある語頭辞書のうち、認識に必要な語頭辞書についてのみ照合処理(Op7a)を行うことができる。そのため、音声認識処理にかかる時間が短縮される。
【0088】
Op7a〜Op13の処理は、Op11で後に続く辞書がなくなったと判断されるまで繰り返される。これにより、音声に含まれる連続する単語の列が順次認識される。
【0089】
(実施の形態3)
実施の形態1、2では、全ての単語の語頭を含む語頭辞書が予め読み込まれる場合の音声認識処理について説明した。実施の形態3では、辞書管理部9は、辞書データ12に含まれる複数の語頭辞書のうち、一部を予め読み込んでおく。すなわち、本実施形態は、辞書管理部9が認識部7の処理に応じて随時適切な語頭辞書を読み込む形態である。本実施形態における音声認識装置の構成は、図1に示す音声認識装置1の構成と同様である。
【0090】
図9は、実施の形態3における辞書データに含まれる語頭辞書および語末辞書の具体例を示す図である。図9において、図7に示す辞書と同じ内容の辞書には同じ番号を付し詳細な説明を省略する。図9に示す辞書データにおける語頭辞書には、複数の語頭辞書100−1、100−2、100−3、100−4、100−5が含まれている。
【0091】
これらのうち、辞書管理部9が、音声が入力される前に予め読み込んでおく語頭辞書は、県名の語頭辞書100−1と、それぞれの県における市名(町名も含む)の語頭辞書100−2、100−3である。このように、辞書管理部9は、2つの連続する単語(例えば、県名を表す単語と市名を表す単語)の候補となる単語群の語頭を含む語頭辞書を読み込んでおく。
【0092】
図10は、実施の形態3における音声認識装置が音声を認識する処理の一例を示すフローチャートである。図10において、図8に示す処理と同じ処理には同じ番号を付し、詳細な説明を省略する。
【0093】
図10に示すように、辞書管理部9は、まず、2つの連続する単語の候補となる単語群を含む語頭辞書をメモリ8へ読み込む(Op1b)。入力音声の先頭の単語と、2番目の単語の候補となる全ての単語の語頭が、ここでメモリ8に読み込まれた複数の語頭辞書に分けて記録されている。読み込まれる複数の語頭辞書の具体例は、図9に示す語頭辞書100−1、100−2、100−3である。図9に示す例では、音声の先頭の県名を表す単語の候補となる単語群の語頭を含む語頭辞書100−1と、音声の先頭から2番目の市、町、群または村の名前を表す単語の候補となる単語群の語頭を含む語頭辞書100−1、100−2、・・・がメモリ8へ読み込まれる。
【0094】
Op2〜11の処理は、図8と同様である。i+1番目の語末辞書がある場合(Op11でYes)、Op10bにおいて、辞書管理部9は、(i+1)番目の語頭辞書を決定する。さらに、辞書管理部9は、(i+2)番目の単語の候補となる単語群の語頭が含まれる語頭辞書(以下、(i+2)番目の単語の語頭辞書と称する)も決定する。辞書管理部9は、すでに読み込まれている語末辞書中の、渡された単語の語末に対応付けられた辞書識別データを基に、(i+2)番目の語頭辞書を決定することができる。
【0095】
例えば、図9に示す県名の語末辞書20aにおいて、語末の音素列“tiken”・・・(以下の音素列省略)に対応付けられた辞書識別データ“C1”が記録されている。図9に示す例では、辞書識別データ“C1”は、語末辞書20b−1および語頭辞書100−2を示している。例えば、1番目の単語として“aitiken”が辞書管理部9へ渡された場合、辞書管理部9は、“C1”を辞書識別データに有する語頭辞書100−2が、次に続く(i+1)番目の語頭辞書であると決定することができる。また、辞書管理部9は、“C1”を辞書識別データに有する語末辞書20b−1が、(i+1)番目の語頭辞書であると決定する。
【0096】
そしてさらに、辞書管理部9は、語末辞書20b−1に含まれる語末の各音素列に対応付けられた辞書識別データ“E1”、“E2”を参照する。これらの辞書識別データにより、辞書管理部9は、(i+2)番目の単語の語頭辞書を決定する。この場合、(i+2)番目の単語の語頭辞書は、辞書識別データ“E1”、“E2”が示す語頭辞書100−4、100−5である。なお、語末辞書20b−1に含まれる語末は、紙面の制約のため、“goyasi”“gakute”の2つだけ表示し、残りの表示は省略している。
【0097】
Op10bの後、辞書管理部9は、i番目の単語の照合に使用した語頭辞書および語末辞書をメモリ8上から削除する。図9に示す例において、i=1の場合であって、1番目の単語として県名が認識された場合、辞書管理部9は、県名の語頭辞書100−1および県名の語末辞書20aをメモリ8上から削除する。
【0098】
Op10bの後、変数iに1が足され(Op12)、辞書管理部9は、Op10で決定した語末辞書、すなわちi番目の単語の語末辞書の読み込みを開始する(Op13b)。また、Op13bにおいて辞書管理部9は、Op10bで決定した(i+1)番目の単語の語頭辞書の読み込みも開始する。
【0099】
この語末辞書および語末辞書の読み込み(Op13b)と略同時に、認識部7は、Op10bで決定した語頭辞書、すなわちi番目の単語の語頭辞書が表す単語の語頭を、i番目の単語に相当するフレームの音声特徴量と照合する(Op7a)。
【0100】
i=2で、図9に示す例において、1番目の単語として“aitiken”(愛知県)という県名が認識された場合について説明する。この場合、辞書管理部9は、語末辞書20aの“tiken”に対応付けられた辞書識別データ“C1”が示す語末辞書20b−1を補助記憶装置2からメモリ8へ読み込む。さらに、辞書管理部9は、語頭辞書100−4、100−5もメモリ8へ読み込む。これと略同時に、認識部7は、辞書識別データ“C1”が示す語頭辞書100−2の音素列と、2番目の単語に相当するフレームの音声特徴量とを照合する。
【0101】
これにより、認識部7が認識した県名を基に、その県名の次に発声されうる市名の語末辞書20b−1を読み込む処理が行われる。また、その市名の次に発声されうる単語の語頭辞書100−4、100−5を読み込む処理も行われる。さらにこれらの処理と並行して、認識部7が、その県名の次に発声されうる市名の語頭辞書100−2と、県名に続く音声に相当するフレームの音声特徴量とを照合する。
【0102】
このように、本実施形態によれば、語末辞書に加えて語頭辞書も、認識処理に合わせて随時読み込まれるので、辞書管理部9は、全ての単語の候補についての語頭辞書を予め読み込んでおく必要はない。少なくとも2つの連続する単語の候補について語頭辞書を読み込んでおくだけで、随時、必要に応じて語頭辞書が読み込まれる。これにより、メモリ使用量を節約することができる。
【0103】
なお、本実施形態では、2つの連続する単語の候補について語頭辞書を読み込む例を説明したが、読み込む語頭辞書は、2つの連続する単語の候補分に限られない。辞書管理部9は、少なくとも2つの連続する単語の候補となる単語群の語頭を含む語頭辞書をメモリへ読み込んでおけば、認識部7は、入力された音声に含まれる少なくとも2つの連続する単語の語頭に相当する部分を、メモリに読み込まれた語頭辞書と照合することができる。したがって、認識部7が1つの単語を認識した後に、辞書管理部9がその認識された単語に応じて語末辞書および/または語頭辞書を読み込む間に、その単語の次に続く音声を、その単語の次に続く単語の候補となる単語の語頭を含む語頭辞書と照合することができる。
【0104】
上記実施の形態1〜3にかかる音声認識装置は、組み込み機器のようにリソース(CPU、メモリ)の少ないプラットフォームで構成された場合に、レスポンス(発声が終了してから認識結果を提示するまでの時間)が削減される効果を特に奏する。
【0105】
なお、上記の実施形態1〜3においては、住所を認識する例を説明したが、本発明にかかる音声認識装置の対象となる音声内容は住所に限られない。それぞれの単語の候補となる単語群が1つ前の単語と関連付けられているような連続する単語を含む音声を認識する音声認識装置に本発明を適用できる。このような連続する単語が発声される場合の例として、アーティスト名、アルバム名、曲名が続いて発声される場合、会社名、所属部署名、役職名、氏名が続けて発声される場合、所要時間または距離、施設名が続けて発声される場合等があげられる。
【0106】
また、上記実施の形態1〜3においては、単語を1つずつ認識することにより、複数の単語を認識する場合について説明したが、連続する単語を認識する処理は、このような処理に限られない。
【0107】
(語順を表すデータの変形例)
また、上記実施の形態1〜3では、語順を表すデータは、語末辞書において、各語末に対応付けられた辞書識別データとして記録されていた。しかし、語順を表すデータは、必ずしも語末辞書に含まれて記録される必要はない。例えば、語順を表すデータが記録された文法ファイルが設けられてもよい。
【0108】
図11は、語頭辞書、語末辞書およびそれらに含まれる単語の語順を表す文法ファイル30の例を示す図である。図11に示す語頭辞書には、それぞれ辞書識別データとして“0”、“23”、“12”、“13”、“2301”が記録されている。また、これらの語頭辞書に対応する語末辞書にも、辞書識別データとして“1”、“23”、“12”、“13”、“2301”が記録されている。
【0109】
文法ファイル30には、1行目に、入力された音声において最初に認識する単語の候補となる単語群が含まれる辞書の辞書識別データ“0”が記録されている。すなわち、最初に読み込むべき辞書の辞書識別データが記録されている。2行目の“0-1”は、辞書識別データ“0”が示す辞書の1番目の単語を表している。図2において“0-1”は、語頭辞書 “0”の一番目の語頭“ai”と、語末辞書“0”の一番目の語末“tiken”からなる単語“aitiken”を表す。この“0-1” の“→”を隔てて隣の“23”は、“aitiken”の次に続く単語の候補となる単語群が含まれる辞書の辞書識別データである。
【0110】
文法ファイル30の3〜5行目は、2行目と同様に、単語を表すデータと、その単語に続く単語の候補となる単語群を含む辞書の辞書識別データとが対応付けられて記録されている。6行目の“2301-1 → −1”は、辞書識別データ“2301”で示される辞書の1番目単語“nakaku”の後に続く単語はなく、認識するべき単語が終了したことを意味している。これにより、例えば、認識部7は、“aitiken”、“nagoyasi”、“nakaku”の順で発声された音声を認識することができる。
【0111】
このような文法ファイル30を参照することにより、辞書管理部9は、最初に読み込む辞書、認識部7が単語を認識した後に次に読み込む辞書、および、認識すべき単語が終了したことを示す情報を得ることができる。また、文法ファイル30の内容を書き換えれば、同じ語頭辞書および同じ語末辞書を用いて、異なる発声を認識することができる。例えば、単語“nakaku”が1番目に発声され、その次に“nagoyasi”が発声される可能性がある場合は、文法ファイル30の1行目に“nakaku”を含む辞書の辞書識別データ “2301”を記録するとよい。2行目以降に、“nakaku”の後に続く単語の候補となる辞書が“nagoyasi”を含む辞書となるように、 “2301-1 → 23”と記録することによって、“nakaku nagoyasi”という発声を識別することが可能になる。
【産業上の利用可能性】
【0112】
本発明は、音声認識辞書を全て主記憶装置上に置けない、メモリに制約のある、利用者の発声する連続単語を認識する音声認識処理において、単語認識のための単語辞書がある補助記憶装置からのロードの待ち時間による認識時間の遅延を削減することができる音声認識装置、音声認識プログラム、音声認識方法およびこれらに用いられる辞書データを記録した記録媒体として有用である。
【図面の簡単な説明】
【0113】
【図1】実施の形態1における音声認識装置の構成の一例を示す機能ブロック図
【図2】辞書データに含まれる語頭辞書および語末辞書の具体例を示す図
【図3】音声認識装置が音声を認識する処理の一例を示すフローチャート
【図4】図3に示す処理の実行状況を時間軸上に表した図
【図5】図2に示す語末辞書20b−1に含まれる語末を、複数の語末辞書に分けた場合の例を示す図
【図6】図3に示す処理の他の実行状況を時間軸上に表した図
【図7】実施の形態2における語頭辞書および語末辞書の具体例を示す図
【図8】実施の形態2における音声を認識する処理の一例を示すフローチャート
【図9】実施の形態3における語頭辞書および語末辞書の具体例を示す図
【図10】実施の形態3における音声を認識する処理の一例を示すフローチャート
【図11】語頭辞書、語末辞書および文法ファイルの例を示す図
【符号の説明】
【0114】
1 音声認識装置
2 補助記憶装置
3 音声分析部
5 音響モデル読み込み部
7 認識部
9 辞書管理部
10 語頭辞書
11 音響モデル
12 辞書データ
20 語末辞書

【特許請求の範囲】
【請求項1】
入力された音声に含まれる複数の連続して対応づけられた単語を認識し、その認識結果を出力する音声認識装置であって、
補助記憶装置に予め記録された音響モデルを主記憶装置に読み込む音響モデル読み込み部と、
補助記憶装置に予め記録された、認識する単語の候補となる単語群の語頭を表す語頭辞書と、前記単語群の語末を表す語末辞書と、単語の語順を表す語順データと、語頭辞書と語末辞書の対応を表す対応データとを含む辞書データから、前記語順データ、前記対応データ、前記語頭辞書および前記語末辞書を前記主記憶装置へ読み込む辞書管理部と、
前記主記憶装置へ読み込まれた音響モデルおよび対応データを用いて、前記主記憶装置へ読み込まれた語頭辞書および語末辞書が表す単語群と、入力された前記音声とを照合することで、前記入力音声に含まれる複数の連続して対応づけられた単語を順次認識する認識部とを備え、
前記辞書データは、複数の単語の語頭を示すデータが記録された少なくとも1つの語頭辞書と、前記語頭辞書が示す語頭群に対応する語末群を示すデータが複数の語末辞書として記録された語末辞書群とを含み、
前記辞書管理部は、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とを主記憶装置へ読み込んでおき、前記認識部が、主記憶装置へ読み込まれた前記語頭辞書を用いて単語を認識している間に、前記語順データに基づいて前記語末辞書および/または語頭辞書を読み込む、音声認識装置。
【請求項2】
前記語頭辞書には、認識対象となる複数の連続して対応づけられた単語の候補となる全ての単語群についての語頭が記録されており、
前記辞書管理部は、前記認識部による入力された音声の認識開始前に、前記語頭辞書と、前記音声に含まれる単語のうち1番目の単語の候補となる単語群の語末辞書とを読み込み、前記認識部によりN番目(Nは自然数)の単語が認識されると、(N+1)番目の単語の候補となる単語群の語末を含む語末辞書を、前記語順データに基づき前記複数の語末辞書の中から選択して読み込みを開始し、当該読み込みの間に前記認識部は、(N+1)番目の単語の語頭を前記語頭辞書を用いて認識する、請求項1に記載の音声認識装置。
【請求項3】
前記辞書管理部は、前記認識部による認識開始前に、前記入力音声に含まれる単語のうち1番目の単語の候補となる単語群の語末を含む語末辞書と、1番目と2番目の単語の候補となる単語群の語頭を含む語頭辞書とを読み込み、前記認識部によりN番目(Nは自然数)の単語が認識されると、(N+1)番目の単語の候補となる単語群の語末を含む語末辞書と、(N+2)番目の単語の候補となる単語群の語頭を含む語頭辞書とを読み込む、請求項1に記載の音声認識装置。
【請求項4】
前記辞書管理部は、前記認識部が主記憶装置へ読み込まれた前記語頭辞書を用いて単語の語頭の一部を前記音声と照合した時点で、前記照合した結果に基づいて前記語末辞書および/または語頭辞書の読み込みを開始する、請求項1に記載の音声認識装置。
【請求項5】
前記語順データは、前記語末辞書において、単語の語末それぞれに対応して、その単語の後に続く可能性のある単語群の語頭を含む語頭辞書または該単語群の語末を含む語末辞書を示す辞書識別データとして記録されており、
前記辞書管理部は、認識部が認識した単語の語末に対応する辞書識別データに基づいて、語頭辞書または語末辞書を読み込む、請求項1に記載の音声認識装置。
【請求項6】
前記辞書データは、語頭辞書を複数含み、
前記認識部は、認識した単語の語末に対応する辞書識別データに基づいて、前記認識した単語の次に続く可能性のある単語群の語頭を含む語頭辞書を前記複数の語頭辞書から選択し、選択した語頭辞書を用いて、前記認識した単語の後に続く単語を認識する、請求項5に記載の音声認識装置。
【請求項7】
前記辞書管理部は、主記憶装置に読み込んだ語末辞書および語頭辞書のうち、前記認識部による単語の認識に用いられた後に不要になった語末辞書または語頭辞書を主記憶装置から削除する、請求項1に記載の音声認識装置。
【請求項8】
前記辞書データは、音声に含まれる可能性のある単語群が、音素数、音節数、モーラ数、単語の出現頻度および使用可能なメモリ容量の少なくとも1つに応じて語頭と語末に分割され、それぞれが前記語頭辞書と前記語尾辞書群に含められて記録された辞書データである、請求項1に記載の音声認識装置。
【請求項9】
入力された音声に含まれる複数の連続して対応づけられた単語をコンピュータが認識し、その認識結果を出力する音声認識方法であって、
前記コンピュータが、補助記憶装置に予め記録された音響モデルを主記憶装置に読み込む音響モデル読み込む工程と、
補助記憶装置に予め記録された、認識する単語の候補となる単語群の語頭を表す語頭辞書と、前記単語群の語末を表す語末辞書と、単語の語順を表す語順データと、語頭辞書と語末辞書の対応を表す対応データとを含む辞書データから、前記コンピュータが、前記語順データ、前記対応データ、前記語頭辞書および前記語末辞書を前記主記憶装置へ読み込む辞書管理工程と、
前記コンピュータが、前記主記憶装置へ読み込まれた音響モデルおよび対応データを用いて、前記主記憶装置へ読み込まれた語頭辞書および語末辞書が表す単語群と、入力された前記音声とを照合することで、前記入力音声に含まれる複数の連続して対応づけられた単語を順次認識する認識工程とを含み、
前記辞書データは、複数の単語の語頭を示すデータが記録された少なくとも1つの語頭辞書と、前記語頭辞書が示す語頭群に対応する語末群を示すデータが複数の語末辞書として記録された語末辞書群とを含んでおり、
前記辞書管理工程において、前記コンピュータは、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とを主記憶装置へ読み込んでおき、前記認識工程で、主記憶装置へ読み込まれた前記語頭辞書を用いて単語を認識している間に、前記語順データに基づいて前記語末辞書および/または語頭辞書を読み込む、音声認識方法。
【請求項10】
入力された音声に含まれる複数の連続して対応づけられた単語をが認識し、その認識結果を出力する処理をコンピュータに実行させる音声認識プログラムであって、
補助記憶装置に予め記録された音響モデルを主記憶装置に読み込む音響モデル読み込む処理と、
補助記憶装置に予め記録された、認識する単語の候補となる単語群の語頭を表す語頭辞書と、前記単語群の語末を表す語末辞書と、単語の語順を表す語順データと、語頭辞書と語末辞書の対応を表す対応データとを含む辞書データから、前記語順データ、前記対応データ、前記語頭辞書および前記語末辞書を前記主記憶装置へ読み込む辞書管理処理と、
前記主記憶装置へ読み込まれた音響モデルおよび対応データを用いて、前記主記憶装置へ読み込まれた語頭辞書および語末辞書が表す単語群と、入力された前記音声とを照合することで、前記入力音声に含まれる複数の連続して対応づけられた単語を順次認識する認識処理とをコンピュータに実行させ、
前記辞書データは、複数の単語の語頭を示すデータが記録された少なくとも1つの語頭辞書と、前記語頭辞書が示す語頭群に対応する語末群を示すデータが複数の語末辞書として記録された語末辞書群とを含み、
前記辞書管理処理において、前記語順データと、前記入力音声に含まれる単語のうち少なくとも1つの単語の候補となる単語群の語頭を含む語頭辞書とを主記憶装置へ読み込んでおき、前記認識処理で、主記憶装置へ読み込まれた前記語頭辞書を用いて単語を認識している間に、前記語順データに基づいて前記語末辞書および/または語頭辞書を読み込む処理をコンピュータに実行させる、音声認識プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2007−271772(P2007−271772A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−95287(P2006−95287)
【出願日】平成18年3月30日(2006.3.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】