(57)【特許請求の範囲】
【請求項１】
音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する音響モデル記憶手段と、
音声データの特徴量と前記部分音響モデルとの間の音響距離を計算する距離計算手段と、
前記距離計算手段により処理された前記部分音響モデルに対応する仮説についてのみ、前記音響距離に基づいて、尤度を算出するサーチ手段と、
を少なくとも前記所定の単位毎に備え、
一の前記サーチ手段は、単語を登録する単語辞書から、尤度を算出した仮説の次の仮説を検索し、前記次の仮説の尤度を算出する他の前記サーチ手段に、算出した前記尤度を入力する音声認識装置。
【請求項２】
前記音響モデル記憶手段と、前記距離計算手段と、前記サーチ手段とを、複数の前記所定の単位毎に備える請求項１に記載の音声認識装置。
【請求項３】
前記単語辞書は、前記所定の単位毎にアークを有する木構造辞書であり、
当該単語辞書に登録された複数の単語を構成する前記所定の単位であって、当該複数の単語において前側から共通の前記所定の単位は、前記アークを共有する請求項１又は２に記載の音声認識装置。
【請求項４】
前記所定の単位は、音素、又は、音響モデルが複数の状態から構成される場合の当該音響モデルの状態の何れかである請求項１〜３の何れか一項に記載の音声認識装置。
【請求項５】
複数の前記サーチ手段が、前記単語辞書に登録された単語の終端に位置する仮説について尤度を算出した場合に、尤度が最も高い仮説を選択する終端処理手段を備える請求項１〜４の何れか一項に記載の音声認識装置。
【請求項６】
前記単語辞書における前記所定の単位が対応する仮説数に応じて、前記サーチ手段が尤度を算出する仮説の数が略均等となるように、前記サーチ手段に仮説を分配する辞書分配手段を備える請求項１〜５の何れか一項に記載の音声認識装置。
【請求項７】
前記辞書分配手段は、前記単語辞書において前記仮説数の多い前記所定の単位から順に前記サーチ手段に対して仮説を分配し、分配後の一の前記サーチ手段あたりの仮説数が所定量に達するか、又は、仮説を分配された前記サーチ手段の数が所定数に達するまで分配を行う請求項６に記載の音声認識装置。
【請求項８】
前記音響モデル記憶手段と、前記距離計算手段と、前記サーチ手段とを、前記所定の単位毎に、並列処理プロセッサの一のプロセッサに割り当てる請求項１〜７の何れか一項に記載の音声認識装置。
【請求項９】
音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する音響モデル記憶処理と、
音声データの特徴量と前記部分音響モデルとの間の音響距離を計算する距離計算処理と、
前記距離計算処理において処理された前記部分音響モデルに対応する仮説についてのみ、前記音響距離に基づいて、尤度を算出するサーチ処理と、
を少なくとも前記所定の単位毎に行い、
一の前記サーチ処理では、単語を登録する単語辞書から、尤度を算出した仮説の次の仮説を検索し、前記次の仮説の尤度を算出する他の前記サーチ処理は、一の前記サーチ処理において算出した前記尤度を用いる音声認識方法。
【請求項１０】
前記音響モデル記憶処理と、前記距離計算処理と、前記サーチ処理とを、複数の前記所定の単位毎に行う請求項９に記載の音声認識方法。
【請求項１１】
前記単語辞書は、前記所定の単位毎にアークを有する木構造辞書であり、
当該単語辞書に登録された複数の単語を構成する前記所定の単位であって、当該複数の単語において前側から共通の前記所定の単位は、前記アークを共有する請求項９又は１０に記載の音声認識方法。
【請求項１２】
前記所定の単位は、音素、又は、音響モデルが複数の状態から構成される場合の当該音響モデルの状態の何れかである請求項９〜１１の何れか一項に記載の音声認識方法。
【請求項１３】
複数の前記サーチ処理において、前記単語辞書に登録された単語の終端に位置する仮説について尤度を算出した場合に、尤度が最も高い仮説を選択する終端処理を行う請求項９〜１２の何れか一項に記載の音声認識方法。
【請求項１４】
前記単語辞書における前記所定の単位が対応する仮説数に応じて、前記サーチ処理において尤度を算出する仮説の数が略均等となるように、前記サーチ処理に仮説を分配する辞書分配処理を行う請求項９〜１３の何れか一項に記載の音声認識方法。
【請求項１５】
前記辞書分配処理では、前記単語辞書において前記仮説数の多い前記所定の単位から順に前記サーチ処理に仮説を分配し、分配後の一の前記サーチ処理あたりの仮説数が所定量に達するか、又は、仮説を分配された前記サーチ処理の数が所定数に達するまで分配を行う請求項１４に記載の音声認識方法。
【請求項１６】
音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する音響モデル記憶処理と、
音声データの特徴量と前記部分音響モデルとの間の音響距離を計算する距離計算処理と、
前記距離計算処理により処理された前記部分音響モデルに対応する仮説についてのみ、前記音響距離に基づいて、尤度を算出するサーチ処理と、
を少なくとも前記所定の単位毎に備えられたプロセッサに実行させ、
一の前記プロセッサに、前記サーチ処理において、単語を登録する単語辞書から、尤度を算出した仮説の次の仮説を検索させ、前記次の仮説の尤度を算出する前記サーチ処理を実行する他の前記プロセッサに、算出した前記尤度を入力させる音声認識プログラム。
【請求項１７】
前記音響モデル記憶処理と、前記距離計算処理と、前記サーチ処理とを、複数の前記所定の単位毎に備えられた前記プロセッサに実行させる請求項１６に記載の音声認識プログラム。
【請求項１８】
前記単語辞書は、前記所定の単位毎にアークを有する木構造辞書であり、
当該単語辞書に登録された複数の単語を構成する前記所定の単位であって、当該複数の単語において前側から共通の前記所定の単位は、前記アークを共有する請求項１６又は１７に記載の音声認識プログラム。
【請求項１９】
前記所定の単位は、音素、又は、音響モデルが複数の状態から構成される場合の当該音響モデルの状態の何れかである請求項１６〜１８の何れか一項に記載の音声認識プログラム。
【請求項２０】
複数の前記プロセッサにおける前記サーチ処理において、前記単語辞書に登録された単語の終端に位置する仮説について尤度を算出した場合に、尤度が最も高い仮説を選択する終端処理をコンピュータに実行させる請求項１６〜１９の何れか一項に記載の音声認識プログラム。
【請求項２１】
前記単語辞書における前記所定の単位が対応する仮説数に応じて、前記プロセッサが前記サーチ処理において尤度を算出する仮説の数が略均等となるように、前記プロセッサに仮説を分配する辞書分配処理をコンピュータに実行させる請求項１６〜２０の何れか一項に記載の音声認識プログラム。
【請求項２２】
前記辞書分配処理は、前記単語辞書において前記仮説数の多い前記所定の単位から順に前記プロセッサに対して仮説を分配し、分配後の一の前記プロセッサあたりの仮説数が所定量に達するか、又は、仮説を分配された前記プロセッサの数が所定数に達するまで分配を行う請求項２１に記載の音声認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声認識装置、音声認識方法、及び、音声認識プログラムが記録された記録媒体に関し、特に、並列処理プロセッサを利用する音声認識装置、音声認識方法、及び、音声認識プログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
並列処理プロセッサは、複数のプロセッサが並べられて構成され、複数の処理を同時に処理する。並列処理プロセッサは、ローカルメモリが限られている、データ転送に時間がかかる、ＳＩＭＤ（Single  Instruction  Multiple  Data）の命令セットを用いる必要がある等の制限を有する。一方、並列処理プロセッサは、負荷を適切に分散すれば、高速に処理を行うことができる。並列処理プロセッサが音声認識処理を行う場合、モデル照合処理や単語サーチ処理等の負荷の高い処理を複数のプロセッサに分散することができる。そのため、高速・高精度に音声認識処理を行うことができる。【０００３】
特許文献１には、並列処理プロセッサを用いて音声認識処理を行う技術の一例が記載されている。特許文献１では、モデル照合処理（距離計算処理）をモデル単位で複数のプロセッサに分散させて行っている。また、単語サーチ処理は、認識辞書に含まれる単語毎に各プロセッサに分散させて行っている。
【特許文献１】特開２００３−０２２０９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、一のプロセッサにおいて、モデル照合処理を行ったモデル単位と、単語サーチ処理を行う単語が有するモデル単位とが一致しない場合がある。そのため、単語サーチ処理を行う際に、プロセッサ間においてモデル照合処理結果を転送する必要がある。そのため、並列処理プロセッサの処理速度が遅くなるという問題がある。【０００５】
本発明は、並列処理プロセッサを用いて音声認識をより効率よく行うことができる音声認識装置、音声認識方法、及び、音声認識プログラムが記録された記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様にかかる音声認識装置は、音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する音響モデル記憶手段と、音声データの特徴量と前記部分音響モデルとの間の音響距離を計算する距離計算手段と、前記距離計算手段により処理された前記部分音響モデルに対応する仮説についてのみ、前記音響距離に基づいて、尤度を算出するサーチ手段と、を少なくとも前記所定の単位毎に備えるものである。【０００７】
また、本発明の第２の態様にかかる音声認識方法は、音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する音響モデル記憶処理と、音声データの特徴量と前記部分音響モデルとの間の音響距離を計算する距離計算処理と、前記距離計算処理において処理された前記部分音響モデルに対応する仮説についてのみ、前記音響距離に基づいて、尤度を算出するサーチ処理と、を少なくとも前記所定の単位毎に行うものである。【０００８】
また、本発明の第３の態様にかかる音声認識プログラムは、  音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する音響モデル記憶処理と、音声データの特徴量と前記部分音響モデルとの間の音響距離を計算する距離計算処理と、前記距離計算処理により処理された前記部分音響モデルに対応する仮説についてのみ、前記音響距離に基づいて、尤度を算出するサーチ処理と、を少なくとも前記所定の単位毎に備えられたプロセッサに実行させるものである。
【発明の効果】
【０００９】
本発明により、並列処理プロセッサを用いて音声認識をより効率よく行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態１にかかる音声認識装置の一例を示す図である。
【図２】本発明の実施形態１にかかる音声認識装置における音声認識方法の一例を説明するフローチャートである。
【図３】実施例１にかかる木構造辞書の一例を示す図である。
【図４Ａ】実施例１における仮説情報を説明する図である。
【図４Ｂ】実施例１における仮説情報を説明する図である。
【図５】本発明の実施形態２にかかる音声認識装置の一例を示す図である。
【図６】実施例２における木構造辞書の一例を示す図である。
【図７Ａ】実施例２における仮説情報を説明する図である。
【図７Ｂ】実施例２における仮説情報を説明する図である。
【図７Ｃ】実施例２における仮説情報を説明する図である。
【符号の説明】
【００１１】
３１、３２、・・・、３ｎ  音響モデル記憶手段
４１、４２、・・・、４ｎ  距離計算手段
５１、５２、・・・、５ｎ、５１１、５１２、・・・、５１ｎ  サーチ手段
６  木構造辞書（単語辞書）
７  終端処理手段
９  プロセッサ
１０  辞書分配手段
１００、２００  音声認識装置
【発明を実施するための最良の形態】
【００１２】
以下に、本発明を適用可能な実施形態を説明する。なお、本発明は、以下の実施形態に限定されるものではない。【００１３】
実施形態１．
本発明の実施形態１にかかる音声認識装置１００について、図１を参照しながら説明する。音声認識装置１００は、図１に示すように、音響分析手段２、音響モデル記憶手段３１、３２、・・・、３ｎ（ｎは、ｎ＞１を満たす整数）、距離計算手段４１、４２、・・・、４ｎ、サーチ手段５１、５２、・・・、５ｎ、木構造辞書６（単語辞書）、終端処理手段７等を有している。また、音声認識装置１００は、複数のプロセッサ９１、９２、・・・、９ｎから構成される並列処理プロセッサを有している。
そして、各プロセッサ９１、９２、・・・、９ｎは、それぞれ、音響モデル記憶手段３１、３２、・・・、３ｎ、距離計算手段４１、４２、・・・、４ｎ、サーチ手段５１、５２、・・・、５ｎを有している。従って、各プロセッサ９は、並列的に、音響モデル記憶処理、距離計算処理、サーチ処理を実行する。【００１４】
以下、個々の音響モデル記憶手段３１、３２、・・・、３ｎを区別しない場合には、単に音響モデル記憶手段３と称する。同様に、以下、個々の距離計算手段４１、４２、・・・、４ｎを区別しない場合には、単に距離計算手段４と称する。また、個々のサーチ手段５１、５２、・・・、５ｎを区別しない場合には、単にサーチ手段５と称する。また、以下、個々のプロセッサ９１、９２、・・・、９ｎを区別しない場合には、単にプロセッサ９と称する。【００１５】
また、音声認識装置１００は、ＣＰＵ（Central  Processing  Unit；図示省略）等を備えるコンピュータ（図示省略）等を有している。そして、ＣＰＵが、音声認識装置１００の各種機能を実現するためのプログラムを実行することにより、音声認識装置１００の各種機能が動作する。具体的には、ＣＰＵは、音声認識プログラムを実行することにより、音響分析手段１、終端処理手段７として機能する。
また、各プロセッサ９は、音声認識プログラムを実行することにより、音響モデル記憶手段３、距離計算手段４、サーチ手段５として機能する。【００１６】
また、音声認識装置１００は、入力手段１、出力手段８と接続されている。
入力手段１は、音声データを音声認識装置１００に入力する。また、出力手段８は、音声認識装置１００による音声認識処理の結果（以下、音声認識結果と称する。）を出力する。【００１７】
音響分析手段２は、入力手段１から入力された音声データを分析して特徴量を抽出する。そして、抽出した特徴量を距離計算手段４に入力する。ここで、特徴量とは、例えば、ケプストラム等である。【００１８】
音響モデル記憶手段３は、音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルのうち何れかの分割単位別音響モデルを部分音響モデルとして記憶する。ここで、所定の単位とは、例えば、音素や音響モデルの状態などである。音響モデルの状態とは、例えば、音響モデルが３状態ＨＭＭ（隠れマルコフモデル；Hidden  Markov  Model）を用いて形成されている場合、３状態ＨＭＭの各状態である。そして、音響モデルを所定の単位毎に分割するとは、所定の単位毎に別々のモデルを作成するということである。具体的には、例えば、複数の音素について作成された音響モデルを、個々の音素毎に作成した音響モデルに分けるということである。
また、音響モデルを所定の単位毎に分割して形成された分割単位別音響モデル（部分音響モデル）は、当該所定の単位の音響モデルである。例えば、音響モデルを音素毎に分割した場合、分割単位別音響モデルは、当該音素の音響モデルである。また、音響モデルを音響モデルの状態で分割した場合、分割単位別音響モデルは、当該状態の音響モデルである。
そして、複数の分割単位別音響モデルは、何れかの音響モデル記憶手段３に記憶される。また、各プロセッサ９は、何れかの音響モデル記憶手段３を備える。従って、各プロセッサ９は、当該プロセッサ９に備えられた音響モデル記憶手段３に記憶された分割単位別音響モデルを用いて音声認識処理を実行する。【００１９】
距離計算手段４は、音声データの特徴量と、同一プロセッサ９内に備えられた音響モデル記憶手段３に記憶された分割単位別音響モデルとの間の音響スコア（音響距離）を計算する。また、距離計算手段４は、計算した音響スコアを同一プロセッサ９内に備えられたサーチ手段５に入力する。【００２０】
サーチ手段５は、同一プロセッサ９内に備えられた距離計算手段４により処理された分割単位別音響モデルの所定の単位に対応する仮説（後述）を木構造辞書６から検索する。そして、サーチ手段５は、検索した仮説についてのみ、当該距離計算手段４により計算された音響スコアに基づいて、累積スコア（尤度）を計算する。具体的には、サーチ手段５は、Viterbi処理を行うことにより、累積スコアを計算する。なお、サーチ手段５は、他のプロセッサ９内に備えられたサーチ手段５から累積スコアが入力された場合には、当該累積スコアと、同一プロセッサ９内に備えられた距離計算手段４により計算された音響スコアとに基づいて、仮説の累積スコアを計算する。
また、サーチ手段５は、累積スコアを算出した仮説の次の仮説を木構造辞書６から検索し、当該次の仮説の累積スコアを算出する他のプロセッサ９内に備えられるサーチ手段５に、算出した累積スコアを入力する。【００２１】
木構造辞書６は、分割単位別音響モデルの所定の単位と、当該所定の単位の仮説とを対応付けて記憶することにより、単語を登録している。具体的には、木構造辞書６は、分割単位別音響モデルの所定の単位毎にアーク（枝）を有する木構造で構成されている。そして、木構造辞書６に登録された複数の単語を構成する当該所定の単位であって、当該複数の単語において前側から共通の当該所定の単位は、アークを共有している。
通常、木構造辞書６が複数の単語を登録する場合、同一の所定の単位に対応するアークは、木構造において複数の箇所に位置する。即ち、木構造辞書６において、所定の単位に対応するアークは複数本になる。そして、所定の単位の仮説とは、当該所定の単位に対応する全てのアークのことである。なお、中には、１本のアークのみを有する所定の単位も存在する場合がある。この場合にも、当該所定の単位の仮説とは、当該アークのことである。【００２２】
終端処理手段７は、複数のサーチ手段５が、木構造辞書６に登録された単語の終端に位置する仮説の累積スコアを算出した場合に、もっとも数値の大きい累積スコアの仮説を選択する。なお、累積スコアの数値が大きいほど、尤度が高い。そして、終端処理手段７は、選択した仮説を終端に有する単語を音声認識結果として出力手段８に入力する。【００２３】
次に、実施形態１にかかる音声認識装置１００における音声認識方法の一例について、図２に示すフローチャートを参照しながら説明する。図２では、所定の単位が音素である場合を例に挙げて説明する。
まず、入力手段１から音声データが入力される（ステップＳ１）。なお、音声データは、フレーム時間に同期して、順に１フレームずつ入力される。
次に、音響分析手段２が、音声データの特徴量を抽出する（ステップＳ２）。
次に、距離計算手段４が、同一プロセッサ９内に備えられた音響モデル記憶手段３に記憶された分割単位別音響モデルと、ステップＳ２において抽出された特徴量との間の音響スコアを計算する（ステップＳ３；距離計算処理）。【００２４】
次に、サーチ手段５が、同一プロセッサ９内に備えられた距離計算手段４により処理された分割単位別音響モデルの音素に対応する仮説を木構造辞書６から検索し、検索した仮説についてのみ累積スコアを計算する（ステップＳ４；サーチ処理）。
次に、プロセッサ９が、当該プロセッサ９内の音響モデル記憶手段３に記憶された分割単位別音響モデルの音素についての距離計算処理及びサーチ処理が終了したか否かを判断する（ステップＳ５）。【００２５】
ステップＳ５において、プロセッサ９が、当該分割単位別音響モデルの音素についての距離計算処理及びサーチ処理が終了していないと判断した場合には（ステップＳ５；Ｎｏ）、ステップＳ１に戻る。
ステップＳ５において、プロセッサ９が、当該分割単位別音響モデルの音素についての距離計算処理及びサーチ処理が終了したと判断した場合には（ステップＳ５；Ｙｅｓ）、サーチ手段５は、累積スコアを算出した仮説の次の仮説を木構造辞書６から検索し、当該次の仮説の累積スコアを算出する他のプロセッサ９内に備えられるサーチ手段５に、算出した累積スコアを入力する（ステップＳ６）。【００２６】
次に、終端処理手段７は、サーチ手段５が木構造辞書６に登録された単語の終端に位置する仮説の累積スコアを算出したか否かを判断する（ステップＳ７）。
ステップＳ７において、木構造辞書６に登録された単語の終端に位置する仮説の累積スコアを算出していない場合（ステップＳ７；Ｎｏ）、ステップＳ１に戻る。
ステップＳ７において、木構造辞書６に登録された単語の終端に位置する仮説の累積スコアを算出した場合（ステップＳ７；Ｙｅｓ）、終端処理手段７は、もっとも数値の大きい累積スコアの仮説を選択する。そして、終端処理手段７は、選択した仮説を終端に有する単語を音声認識結果として出力手段８に入力する（ステップＳ８；終端処理）。
次に、出力手段８により、音声認識結果が出力され（ステップＳ９）、本処理が終了する。【００２７】
実施例１．
次に、本発明の実施形態１の具体的な実施例１について説明する。
実施例１では、所定の単位として音素を用いている。従って、分割単位別音響モデルは、音響モデルを音素毎に分割して形成されている。また、各プロセッサ９は、何れかの分割単位別音響モデルを用いて音声認識処理を行う。さらに、実施例１では、音声認識装置１００は、４並列プロセッサを有していることとする。即ち、音声認識装置１００に備えられるプロセッサ９の数は４つである。【００２８】
次に、実施例１にかかる木構造辞書６の一例について図３を参照しながら説明する。図３は、「ＫＩＴＡ」（「ＫＩＴＡ」は、英語で「ｎｏｒｔｈ」を意味する。）、「ＫＡＴＡ」（「ＫＡＴＡ」は、英語で「ｓｈｏｕｌｄｅｒ」を意味する。）、「ＫＡＩ」（「ＫＡＩ」は、英語で「ｓｈｅｌｌｆｉｓｈ」を意味する。）、「ＫＡＫＩ」（「ＫＡＫＩ」は、英語で「ｐｅｒｓｉｍｍｏｎ」を意味する。）という４つの単語を登録している木構造辞書６の構造を示している。ここで、「ＫＩＴＡ」という単語は、/k/、/i/、/t/、/a/という４種類の音素で構成される。また、「ＫＡＴＡ」という単語は、/k/、/a/、/t/という３種類の音素で構成される。「ＫＡＩ」という単語は、/k/、/a/、/i/という３種類の音素で構成される。また、「ＫＡＫＩ」という単語は、/k/、/a/、/i/という３種類の音素で構成される。従って、木構造辞書６に記憶される音素は、/k/、/a/、/t/、/i/の４種類である。【００２９】
そして、木構造辞書６では、各音素/k/、/a/、/t/、/i/毎にアークを有する。また、各単語「ＫＩＴＡ」、「ＫＡＴＡ」、「ＫＡＩ」、「ＫＡＫＩ」において、前側から共通の音素がアークを共有するように、木構造が形成される。具体的には、図３に示すように、「ＫＩＴＡ」、「ＫＡＴＡ」、「ＫＡＩ」、「ＫＡＫＩ」において、最初の音素/k/は共通であるため、１本のアークk1を共有する。また、「ＫＡＴＡ」、「ＫＡＩ」、「ＫＡＫＩ」において、２番目の音素/a/は共通であるため、１本のアークa1を共有する。このようにして、「ＫＩＴＡ」、「ＫＡＴＡ」、「ＫＡＩ」、「ＫＡＫＩ」の４つの単語を登録する木構造を形成すると、音素/k/に対応するアークは、k1、k2の２本となる。従って、音素/k/の仮説は、k1、k2である。同様に、音素/i/に対応するアークは、i1、i2、i3の３本となる。従って、音素/i/の仮説は、i1、i2、i3である。【００３０】
そして、実施例１にかかる音声認識装置１００に備えられた４つのプロセッサ９は、音素/k/、/a/、/t/、/i/の何れかについて、距離計算処理及びサーチ処理を担当する。図４Ａに、音素/k/の仮説と当該仮説の仮説情報とを対応付けて示す。当該仮説と当該仮説情報とは、音素/k/についての音声認識処理を行うプロセッサ９が保持する。また、図４Ｂに、音素/i/の仮説と当該仮説の仮説情報とを対応付けて示す。同様に、当該仮説と当該仮説情報とは、音素/i/についての音声認識処理を行うプロセッサ９が保持する。【００３１】
ここで、音素の仮説の仮説情報とは、当該仮説の前側に直近の仮説、当該仮説の後側に直近の仮説、及び、当該仮説の累積スコアである。例えば、図４Ａに示すように、音素/k/の仮説k1の仮説情報においては、仮説k1の前側に直近の仮説（IN）は「始端」であり、仮説k1の後側に直近の仮説（OUT）は「i1、a1」であり、仮説k1の累積スコアは「384」である。また、図４Ｂに示すように、音素/i/の仮説i2の仮説情報においては、仮説i2の前側に直近の仮説（IN）は「a1」であり、仮説i2の後側に直近の仮説（OUT）は「終端」であり、仮説i2の累積スコアは「1031」である。【００３２】
次に、実施例１にかかる音声認識処理１００における音声認識動作について説明する。例えば、入力手段１から「ＫＡＫＩ」という音声データが入力された場合を例に挙げて説明する。
まず、フレーム時間に同期して、音声データの特徴量が音響分析手段２により抽出される。
次いで、フレーム時間に同期して、各プロセッサ９において、距離計算手段４が特徴量と分割単位別音響モデルとの間の音響スコアを計算する。具体的には、各音素/k/、/a/、/t/、/i/を表す分割単位別音響モデルとして、例えば、モノフォンＨＭＭ（コンテキスト非依存ＨＭＭ）が用いられる。そして、例えば、音素/k/の分割単位別音響モデルと特徴量との間の音響スコアが「150」と算出され、音素/i/の分割単位別音響モデルと特徴量との間の音響スコアが「142」と算出される。【００３３】
次に、フレーム時間に同期して、各プロセッサ９において、サーチ手段５が、同一プロセッサ９内に備えられた音響モデル記憶手段３により記憶されている分割単位別音響モデルの音素に対応する仮説を木構造辞書６から検索し、検索した仮説についてのみ累積スコアを計算する。
例えば、サーチ手段５は、音素/k/の仮説の累積スコアを算出する場合、音素/k/の分割単位別音響モデルと特徴量との間の音響スコア「150」を用いて累積スコアを算出する。具体的には、サーチ手段５は、音素/k/の仮説k1について累積スコアを算出する場合、当該音響スコア「150」と仮説k1が持っている累積スコア「384」とを用いてViterbi処理することにより、新しい累積スコアを算出し、算出した累積スコアにより仮説k1の累積スコアを書き換える。
また、サーチ手段５は、累積スコアを算出した仮説の次の仮説の累積スコアを算出する他のプロセッサ９内に備えられるサーチ手段５に、算出した累積スコアを入力する。
例えば、サーチ手段５は、音素/k/の仮説k1について累積スコアを算出した場合、仮説k1の次の仮説はi1とa1であるため、音素/i/の仮説の累積スコアを算出するサーチ手段５と、音素/a/の仮説の累積スコアを算出するサーチ手段とに、算出した仮説k1の累積スコアを入力する。
同様に、サーチ手段５は、音素/i/の仮説の累積スコアを算出する場合、音素/i/の分割単位別音響モデルと特徴量との間の音響スコア「142」を用いて、仮説i1、i2、i3の累積スコアを算出する。【００３４】
そして、複数のサーチ手段５が、木構造辞書６に登録された単語の終端に位置する仮説の累積スコアを算出した場合に、終端処理手段７は、もっとも数値の大きい累積スコアの仮説を選択する。次いで、終端処理手段７は、選択した仮説を終端に有する単語を音声認識結果として出力手段８に入力する。
例えば、図３において、仮説i2とi3は単語の終端に位置する。従って、仮説i2の累積スコアが「1031」と算出され、仮説i3の累積スコアが「1034」と算出された場合、終端処理手段７は、より累積スコアが大きい仮説i3を選択する。次いで、終端処理手段７は、選択した仮説i3を終端に有する単語「ＫＡＫＩ」を音声認識結果として出力手段８に入力する。
そして、出力手段８により、音声認識結果として「ＫＡＫＩ」が出力される。【００３５】
以上に説明した本発明の実施形態１にかかる音声認識装置１００、音声認識方法、及び、音声認識プログラムによれば、音響モデル記憶手段３と距離計算手段４とサーチ手段５とを所定の単位毎に備える。また、各音響モデル記憶手段３は、音響モデルを所定の単位毎に分割して形成された複数の分割単位別音響モデルの何れかの分割単位別音響モデルを記憶している。
具体的には、音声認識装置１００は、各プロセッサ９毎に、音響モデル記憶手段３と距離計算手段４とサーチ手段５とを備えている。従って、各プロセッサ９は、何れかの分割単位別音響モデルを用いて音声認識処理を実行する。
このように構成した場合、各プロセッサ９間では、仮説の累積スコアのみがデータ転送されることとなる。具体的には、一のサーチ手段５は、木構造辞書６から、累積スコアを算出した仮説の次の仮説を検索し、当該次の仮説の累積スコアを算出する他のサーチ手段５に、算出した累積スコアを入力する。
従って、一のプロセッサ９においてサーチ処理される仮説数と同数の数値情報（例えば、整数）のみを他のプロセッサ９にデータ転送するだけでよい。そのため、プロセッサ間のデータ転送速度が遅い並列処理プロセッサを使用する場合でも、より効率よく音声認識処理を行うことができる。【００３６】
例えば、実施例１では、４つのプロセッサ９で４単語の音声認識処理が可能である。そして、４つのプロセッサ９が何れかの音素についての音声認識処理を担当するため、各プロセッサ９間では、当該プロセッサ９が担当する音素が有する仮説数（例えば、音素/k/の仮説k1、k2の２つ）と同数の数値情報をデータ転送するだけでよい。一方、従来では、４つのプロセッサが何れかの単語の音声認識処理を担当するため、各単語が持つ全ての音素が有する仮説数と同数の数値情報をデータ転送する必要がある。例えば、プロセッサが「ＫＩＴＡ」という単語の音声認識処理を行う場合、「ＫＩＴＡ」という単語は音素/k/、/i/、/t/、/a/の４種類の音素を有するため、音素/k/の仮説k1、k2、音素/i/の仮説i1、i2、i3、音素/t/の仮説t1、t2、音素/a/の仮説a1、a2、a3の計１０個の数値情報を他のプロセッサにデータ転送する必要がある。従って、実施例１にかかる音声認識装置１００の方がデータ転送する数値情報の数が少ない。そのため、実施例１にかかる音声認識装置１００は、プロセッサ間のデータ転送速度が遅い並列処理プロセッサを搭載する場合でも、より効率よく音声認識処理を行うことができる。【００３７】
また、従来の音声認識装置では、各プロセッサが何れかの単語の音声認識処理を担当するため、木構造辞書６に登録された複数の単語の先頭部分の音素が共有しているアークについて、複数のプロセッサが冗長にサーチ処理を行うこととなる。一方、実施例１にかかる音声認識装置１００では、各プロセッサ９が何れかの音素についての音声認識処理を担当するため、木構造辞書６に登録された複数の単語の先頭部分の音素が共有しているアークについてサーチ処理を行うのは、当該アークの音素の音声認識処理を行うプロセッサ９のみである。従って、この点においても、本実施形態１にかかる音声認識装置１００は、より効率よく音声認識処理を行うことができる。【００３８】
また、各プロセッサ９は、何れかの音素についての距離計算処理とサーチ処理をフレーム時間に同期して行うため、並列処理プロセッサで用いられるＳＩＭＤの命令セットと親和性が高い。
また、各プロセッサ９は、何れかの音素についてサーチ処理を行うため、木構造辞書６における当該音素の仮説毎に仮説情報を保持することとなる。換言すれば、各プロセッサ９は、木構造辞書６におけるアーク毎に仮説情報を保持する。そのため、木構造辞書６が形成されれば、プロセッサ９あたりの仮説数の最大値を事前に見積もることができる。これにより、見積もった仮説数の最大値によっては、木構造辞書６におけるアーク数を削減せずに、音声認識処理を行うことができる。また、木構造辞書６におけるアーク数を削減する場合には、各プロセッサ９毎、即ち、音素毎に、許容できる仮説数の最大値を決めればよい。そのため、容易に木構造辞書６におけるアーク数を削減することができる。【００３９】
実施形態２．
本発明の実施形態２にかかる音声認識装置２００について、図５を参照しながら説明する。実施形態２にかかる音声認識装置２００では、サーチ手段５１１、５１２、・・・、５１ｎ（個々のサーチ手段５１１、５１２、・・・、５１ｎを区別しない場合には、単にサーチ手段５１と称する。）、辞書分配手段１０の構成のみが、実施形態１にかかる音声認識装置１００と異なるので、同一の構成については、同一の符号を付すとともにその説明を省略する。また、実施形態２にかかる音声認識装置２００の音声認識方法は、実施例１にかかる音声認識装置１００の音声認識方法と略同じであるため、その説明を省略する。【００４０】
辞書分配手段１０は、木構造辞書６における所定の単位が対応する仮説数に応じて、サーチ手段５１が累積スコア（尤度）を算出する仮説の数が略均等となるように、サーチ手段５１に、当該サーチ手段５１が累積スコアを算出する仮説を分配する。
具体的には、辞書分配手段１０は、木構造辞書６において仮説数が多い所定の単位から順にサーチ手段５１に対して仮説を分配する。そして、辞書分配手段１０は、分配後のサーチ手段５１あたりの仮説数が所定量に達するか、又は、仮説を分配されたサーチ手段５１の数が所定数に達するまで、分配を行っていく。【００４１】
サーチ手段５１は、同一プロセッサ９内に備えられた距離計算手段４により処理された分割単位別音響モデルの所定の単位に対応する仮説のうち、辞書分配手段１０により分配された仮説を木構造辞書６から検索する。そして、サーチ手段５１は、検索した仮説についてのみ、当該距離計算手段４により計算された音響スコアに基づいて、累積スコア（尤度）を計算する。具体的には、サーチ手段５１は、Viterbi処理を行うことにより、累積スコアを計算する。なお、サーチ手段５１は、他のプロセッサ９内に備えられたサーチ手段５１から累積スコアが入力された場合には、当該累積スコアと、同一プロセッサ９内に備えられた距離計算手段４により計算された音響スコアとに基づいて、仮説の累積スコアを計算する。
また、サーチ手段５１は、累積スコアを算出した仮説の次の仮説を木構造辞書６から検索し、当該次の仮説の累積スコアを算出する他のプロセッサ９内に備えられるサーチ手段５１に、算出した累積スコアを入力する。【００４２】
実施例２．
次に、本発明の実施形態２の具体的な実施例２について説明する。
実施例２では、所定の単位として音素を用いている。従って、分割単位別音響モデルは、音響モデルを音素毎に分割して形成されている。また、各プロセッサ９は、何れかの分割単位別音響モデルを用いて音声認識処理を行う。さらに、実施例２では、音声認識装置２００は、６並列プロセッサを有していることとする。即ち、音声認識装置２００に備えられるプロセッサ９の数は６つである。【００４３】
次に、実施例２にかかる木構造辞書６の一例について図６を参照しながら説明する。図６は、「ＩＴＩ」（「ＩＴＩ」は、英語で「ｏｎｅ」を意味する。）、「ＮＩ」（「ＮＩ」は、英語で「ｔｗｏ」を意味する。）、「ＳＡＮ」（「ＳＡＮ」は、英語で「ｔｈｒｅｅ」を意味する。）、「ＳＩ」（「ＳＩ」は、英語で「ｆｏｕｒ」を意味する。）という４つの単語を登録している木構造辞書６の構造を示している。ここで、「ＩＴＩ」という単語は、/i/、/t/という２種類の音素で構成される。また、「ＮＩ」という単語は、/n/、/i/という２種類の音素で構成される。「ＳＡＮ」という単語は、/s/、/a/、/n/という３種類の音素で構成される。また、「ＳＩ」という単語は、/s/、/i/という２種類の音素で構成される。従って、木構造辞書６に記憶される音素は、/s/、/n/、/i/、/a/、/t/の５種類である。【００４４】
そして、木構造辞書６では、各音素/s/、/n/、/i/、/a/、/t/毎にアークを有する。また、各単語において、前側から共通の音素がアークを共有するように、木構造が形成される。
具体的には、図６に示すように、「ＳＡＮ」、「ＳＩ」において、最初の音素/s/は共通であるため、１本のアークs1を共有する。このようにして、「ＩＴＩ」、「ＮＩ」、「ＳＡＮ」、「ＳＩ」の４つの単語を登録する木構造を形成すると、音素/s/に対応するアークは、s1の１本となる。また、音素/n/に対応するアークは、n1、n2の２本となる。また、音素/i/に対応するアークは、i1、i2、i3、i4の４本となる。また、音素/a/に対応するアークは、a1の１本となる。また、音素/t/に対応するアークは、t1の１本となる。
換言すれば、音素/s/の仮説は、s1の１つであり、音素/n/の仮説は、n1、n2の２つであり、音素/i/の仮説は、i1、i2、i3、i4の４つであり、音素/a/の仮説は、a1の１つであり、音素/t/の仮説は、t1の１つである。【００４５】
そこで、辞書分配手段１０は、木構造辞書６における音素が有する仮説数に応じて、サーチ手段５１が累積スコア（尤度）を算出する仮説の数が略均等となるように、サーチ手段５１に、当該サーチ手段５１が累積スコアを算出する仮説を分配する。【００４６】
具体的には、辞書分配手段１０は、木構造辞書６において仮説数が多い音素から順にサーチ手段５１に対して仮説を分配する。例えば、図６に示すように、木構造辞書６において仮説数が最も多い音素は/i/である。従って、辞書分配手段１０は、音素/i/の仮説を２つに分けて、２つのサーチ手段５１に分配する。例えば、辞書分配手段１０は、音素/i/の仮説を、i1、i2とi3、i4とに分け、仮説i1、i2を１つ目のサーチ手段５１に分配し、仮説i3、i4を２つ目のサーチ手段５１に分配する。次いで、辞書分配手段１０は、次に仮説数の多い音素は/n/であるため、音素/n/の仮説n1、n2を３つ目のサーチ手段５１に分配する。次いで、辞書分配手段１０は、音素/s/、/a/、/t/の仮説は全て同数（１つ）であるため、音素/s/の仮説s1、音素/a/の仮説a1、音素/t/の仮説t1をそれぞれ３つのプロセッサ９に分配する。
そして、辞書分配手段１０は、６つのサーチ手段５１の全てに仮説を分配したので、分配処理を終了する。【００４７】
図７Ａに、音素/n/の仮説と当該仮説の仮説情報とを対応付けて示す。当該仮説と当該仮説情報とは、音素/n/についての音声認識処理を行うプロセッサ９が保持する。また、図７Ｂに、音素/i/の仮説i1、i2と当該仮説の仮説情報とを対応付けて示す。同様に、当該仮説と当該仮説情報とは、音素/i/の仮説i1、i2についてのサーチ処理を行うプロセッサ９が保持する。また、図７Ｃに、音素/i/の仮説i3、i4と当該仮説の仮説情報とを対応付けて示す。同様に、当該仮説と当該仮説情報とは、音素/i/の仮説i3、i4についてのサーチ処理を行うプロセッサ９が保持する。【００４８】
図７に示すように、辞書分配手段１０による分配処理によって、音素/i/についての音声認識処理を行うプロセッサ９は２つになる。そのため、音素/i/についての音響スコアの算出は、２つのプロセッサ９において冗長に行われることとなる。しかし、辞書分配手段１０による分配処理によって、各プロセッサ９においてサーチ処理を行う仮説数が１又は２となるように略均等化されている。そのため、各プロセッサ９の処理負荷が略均等となり、並列処理プロセッサによる処理の効率を向上できる。【００４９】
以上に説明した本発明の実施形態２にかかる音声認識装置２００、音声認識方法、及び、音声認識プログラムによれば、実施形態１と同様の効果が得られることは勿論である。特に、実施形態２では、辞書分配手段１０が、木構造辞書６における音素が有する仮説数に応じて、サーチ手段５１が累積スコアを算出する仮説の数が略均等となるように、サーチ手段５１に仮説を分配する。
これにより、各プロセッサ９においてサーチ処理を行う仮説数が略均等化される。そのため、各プロセッサ９の処理負荷が略均等となり、並列処理プロセッサによる処理の効率を向上できる。【００５０】
なお、実施例１、実施例２では、所定の単位として音素を例示して説明したが、これに限られるものではない。例えば、所定の単位として、音響モデルの状態であってもよい。
また、サーチ手段５（５１）に、予め、当該サーチ手段５（５１）が累積スコアを算出する仮説の仮説情報を与えておいてもよい。この場合には、サーチ手段５（５１）は、木構造辞書６をいちいち検索する必要がない。
また、一のサーチ手段５（５１）が、木構造辞書６から、累積スコアを算出する仮説の前の仮説を検索し、当該前の仮説の累積スコアを算出する他のサーチ手段５（５１）から、当該他のサーチ手段５（５１）算出した累積スコアを取得してもよい。【００５１】
この出願は、２００８年２月２８日に出願された日本出願特願２００８−０４７４２６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００５２】
本発明は、音声認識装置に関し、特に、並列処理プロセッサを用いて音声認識をより効率よく行うことができる。
【図１】
0005381973.tif 000002
【図２】
0005381973.tif 000003
【図３】
0005381973.tif 000004
【図４Ａ】
0005381973.tif 000005
【図４Ｂ】
0005381973.tif 000006
【図５】
0005381973.tif 000007
【図６】
0005381973.tif 000008
【図７Ａ】
0005381973.tif 000009
【図７Ｂ】
0005381973.tif 000010
【図７Ｃ】
0005381973.tif 000011