(57)【要約】【課題】音声認識処理において、発話内容のジャンルあるいはドメインが推移していく場合に、辞書データの使用メモリ量の増加を抑えながら高精度な認識を実現する。【解決手段】統合辞書記憶部は、音響モデルに関連付けられた音素の列である音素列を表わす音素列データと、音素列データに関連付けられた単語表記を表わす単語表記データと、単語表記データに関連付けられ単語表記の出現確率を表わす単語出現確率値を複数の言語モデルの各々に対応して保持する単語出現確率値データとを記憶する。正解単語探索部は、音響分析部から出力された音響特徴量と音響モデルとの関係により音素列ごとの音響スコアを算出するとともに、音素列に対応する単語表記データについて所定言語モデルに対応する単語出現確率値を統合辞書記憶部から取得して単語表記ごとの言語スコアを算出し、算出された音響スコアおよび言語スコアにより、正解の単語表記を探索する。【選択図】図１
2013125144.tif 000002
【特許請求の範囲】
【請求項１】
音響特徴量に関する統計量である音響モデルに関連付けられた音素の列である音素列を表わす音素列データと、前記音素列データに関連付けられた単語表記を表わす単語表記データと、前記単語表記データに関連付けられ前記単語表記の出現確率を表わす単語出現確率値を複数の言語モデルの各々に対応して保持する単語出現確率値データとを記憶する統合辞書記憶部と、
入力音声を分析して音響特徴量を出力する音響分析部と、
前記音響分析部から出力された前記音響特徴量と前記音響モデルとの関係により前記音素列ごとの音響スコアを算出するとともに、前記音素列に対応する前記単語表記データについて所定言語モデルに対応する前記単語出現確率値を前記統合辞書記憶部から取得して前記単語表記ごとの言語スコアを算出し、算出された前記音響スコアおよび前記言語スコアにより、正解の単語表記を探索して出力する正解単語探索部と、
を具備することを特徴とする音声認識装置。
【請求項２】
請求項１に記載の音声認識装置であって、
前記統合辞書記憶部が記憶する前記単語出現確率値データは、どの言語モデルが選択されているかを表わす言語モデル選択制御データを含むものであり、
設定に応じて前記言語モデル選択制御データを更新する統合辞書管理部を具備し、
前記正解単語探索部は、前記言語モデル選択制御データによって選択されていることが示されている前記所定言語モデルに対応する前記単語出現確率値を前記統合辞書記憶部から取得して前記単語表記ごとの言語スコアを算出する、
ことを特徴とする音声認識装置。
【請求項３】
請求項２に記載の音声認識装置であって、
言語モデルごとの重み値を記憶する重み値記憶部を具備し、
前記統合辞書管理部は、前記単語出現確率値データにおける複数の言語モデルに対応する前記単語出現確率値を、前記重み値記憶部から取得した前記重み値で加重平均することにより、前記複数の言語モデルを合成して得られる新たな単語出現確率値を算出し、算出された前記単語出現確率値で前記単語出現確率値データを更新する、
ことを特徴とする音声認識装置。
【請求項４】
請求項２または３のいずれか一項に記載の音声認識装置であって、
前記統合辞書管理部は、
前記複数の言語モデルの各々に対応して、前記単語表記データと前記単語出現確率値と前記単語表記データの各々に対応する発音データとを取得し、
前記単語表記データごとに前記発音データを前記音素列データに展開して前記統合辞書記憶部に書き込み、
展開された前記音素列データに関連付けて前記単語表記データを前記統合辞書記憶部に書き込み、
前記単語表記データに関連付けた前記単語出現確率値を前記言語モデルに対応させて前記統合辞書記憶部の前記単語出現確率値データに書き込むとともに、
言語モデル間で単語表記が共通の単語が存在する場合には単一の前記単語表記データに関連付けるように言語モデルごとの前記単語出現確率値を前記単語出現確率値データに書き込み、言語モデル間で発音データが共通の単語が存在する場合には単一の音素列データに関連付けるように言語モデルごとの前記単語出現確率値を前記単語出現確率値データに書き込む、
ことを特徴とする音声認識装置。
【請求項５】
請求項１から４までのいずれか一項に記載の音声認識装置であって、
前記統合辞書記憶部は、前記音素列データにおける単語始端から単語途中音素までの部分音素列に対応して、言語モデルごとに、前記部分音素列を共有する全ての前記単語表記データに関連付けられた前記単語出現確率値の最大値を、前記部分音素列に対応する単語内確率値として保持する単語内確率値データをも記憶するものであり、
前記正解単語探索部は、前記単語内確率値が所定閾値より低い場合には対応する前記部分音素列を共有する単語表記データを探索対象から除外する、
ことを特徴とする音声認識装置。
【請求項６】
音響特徴量に関する統計量である音響モデルに関連付けられた音素の列である音素列を表わす音素列データと、前記音素列データに関連付けられた単語表記を表わす単語表記データと、前記単語表記データに関連付けられ前記単語表記の出現確率を表わす単語出現確率値を複数の言語モデルの各々に対応して保持する単語出現確率値データとを記憶する統合辞書記憶部と、
入力音声を分析して音響特徴量を出力する音響分析部と、
前記音響分析部から出力された前記音響特徴量を前記音響モデルとの関係により前記音素列ごとの音響スコアを算出するとともに、前記音素列に対応する前記単語表記データについての所定の言語モデルに対応する前記単語出現確率値データを前記統合辞書記憶部から取得して前記単語表記ごとの言語スコアを算出し、算出された前記音響スコアおよび前記言語スコアにより、正解の単語表記を探索して出力する正解単語探索部と、
を具備する音声認識装置としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力される音声を認識する処理を行なう音声認識装置、およびそのプログラムに関する。
【背景技術】
【０００２】
一般に音声認識処理では、単語の連鎖が出現する確率値（単語Ｎ−ｇｒａｍ（エヌグラム））を言語モデルとして事前に学習しておき、この言語モデルを頼りにして入力音声に最適な正解単語列を探索する。このような統計的な言語モデルを用いた音声認識処理のために、音声認識対象と同じジャンルあるいはドメインのテキストを大量に用意しておき、用途別に学習することが一般的である。例えば、放送番組におけるジャンル別用途とは、料理用、園芸用、健康用などである。
【０００３】
放送における長時間の情報番組のように、音声認識対象の入力音声の発話内容のジャンルあるいはドメインが時間とともに推移していく場合には、広く一般的な話題のテキストで学習された言語モデルでは、十分な認識性能が得られない。
【０００４】
そこで、非特許文献１には、用途別あるいはドメイン別に用意された複数の言語モデルのうち、最適な１つの言語モデルを認識前に何らかの規準で選択してから音声認識を実行する手法が記載されている。
【０００５】
また、特許文献１には、複数の言語モデルで複数の音声認識を並列に実行し、最適な１つの認識結果を何らかの規準で選択する手法が記載されている。
【０００６】
また、特許文献２には、複数の言語モデルを１つに統合した言語モデルを生成しておき、この統合した言語モデルを用いた音声認識結果から、最適な言語モデルを選択する手法が提案されている。
【０００７】
また、非特許文献２には、複数の文法を単一のグローバルな文法として展開する手法が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−１９８８３１号公報
【特許文献２】特開２０１０−２２４０２９号公報
【非特許文献】
【０００９】
【非特許文献１】本間真一，小林彰夫，奥貴裕，今井亨，「情報番組向け話題スイッチング言語モデルの検討」，日本音響学会研究発表会講演論文集，3-P-9，２０１１年
【非特許文献２】李晃伸，鹿野清宏，「複数文法の同時認識および動的切り替えを行う認識エンジンJulius／Julian-3.3」，日本音響学会研究発表会講演論文集，3-9-12，pp. 153-154，２００２年
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術は次のような課題を持っている。
例えば特許文献１に記載されている技術では、複数の音声認識処理を並行して稼動させるため、計算量およびメモリ消費量が並列度に比例して大きくなり、装置規模が増大するという問題がある。
また、特許文献２に記載されている技術では、複数の言語モデルをひとつに統合する際に、それぞれの言語モデルに同じ表記の単語が語彙として登録されている場合でも、各言語モデルに対応したそれらの単語表記を別のものとして識別し、それぞれの単語に別の単語Ｎ−ｇｒａｍを付与する。そのため、正解単語探索の対象となる木構造化辞書データにおいては同じ単語が複数箇所で展開され、冗長であり、使用メモリの増加や音声認識処理時間の増加をもたらすという問題がある。
また、非特許文献１に記載されている技術では、複数の言語モデルの中から１つの言語モデルを認識前に選択してから、音声認識処理を実行する。このため、言語モデルを動的に切り替えたり調整したりすることができない。
また、非特許文献２に記載されている技術では、複数の文法ごとの木構造化辞書が独立にメモリに展開され、同じ単語が複数個所でメモリを占有する。このため、使用メモリの増加や音声認識処理時間の増加をもたらすという問題がある。
【００１１】
本発明は、上記の課題認識に基づいて行なわれたものであり、例えば情報番組のように、１つの番組の中で時間とともに発話内容のジャンルあるいはドメインが推移していく場合に、複数の言語モデルを切り替える等の調整を行ないながら認識処理を行い、且つ複数の言語モデルに対応した辞書データの使用メモリ量の増加を抑えることのできる音声認識装置を提供するものである。
【００１２】
また、本発明は、複数の言語モデルから１つを選択して使用する場合や、複数の言語モデルを重み付き線形結合させて使用する場合に、オンラインで動作している音声認識処理を中断・遅滞させることなく、認識処理することのできる音声認識装置を提供するものである。
【課題を解決するための手段】
【００１３】
［１］上記の課題を解決するため、本発明の一態様による音声認識装置は、音響特徴量に関する統計量である音響モデルに関連付けられた音素の列である音素列を表わす音素列データと、前記音素列データに関連付けられた単語表記を表わす単語表記データと、前記単語表記データに関連付けられ前記単語表記の出現確率を表わす単語出現確率値を複数の言語モデルの各々に対応して保持する単語出現確率値データとを記憶する統合辞書記憶部と、入力音声を分析して音響特徴量を出力する音響分析部と、前記音響分析部から出力された前記音響特徴量と前記音響モデルとの関係により前記音素列ごとの音響スコアを算出するとともに、前記音素列に対応する前記単語表記データについて所定言語モデルに対応する前記単語出現確率値を前記統合辞書記憶部から取得して前記単語表記ごとの言語スコアを算出し、算出された前記音響スコアおよび前記言語スコアにより、正解の単語表記を探索して出力する正解単語探索部とを具備する。
【００１４】
ここで、統合辞書記憶部は、複数の言語モデルに共通の領域に音素列データと単語表記データを記憶する。また、単語表記データは、日本語の場合には漢字カナ混じりによる表記に対応している。単語出現確率値データは、ユニグラム、バイグラム、トライグラム等の単語連鎖に基づく確率値である。単語の連鎖数が２以上の場合には、直前の単語（列）に基づく条件付確率を用いる。なお、単語出現確率値データは、単語出現確率値を言語モデルごとに保持する。
【００１５】
［２］また、本発明の一態様は、上記の音声認識装置において、前記統合辞書記憶部が記憶する前記単語出現確率値データは、どの言語モデルが選択されているかを表わす言語モデル選択制御データを含むものであり、設定に応じて前記言語モデル選択制御データを更新する統合辞書管理部を具備し、前記正解単語探索部は、前記言語モデル選択制御データによって選択されていることが示されている前記所定言語モデルに対応する前記単語出現確率値を前記統合辞書記憶部から取得して前記単語表記ごとの言語スコアを算出するものである。
【００１６】
［３］また、本発明の一態様は、上記の音声認識装置において、言語モデルごとの重み値を記憶する重み値記憶部を具備し、前記統合辞書管理部は、前記単語出現確率値データにおける複数の言語モデルに対応する前記単語出現確率値を、前記重み値記憶部から取得した前記重み値で加重平均することにより、前記複数の言語モデルを合成して得られる新たな単語出現確率値を算出し、算出された前記単語出現確率値で前記単語出現確率値データを更新するものである。
【００１７】
この構成により、複数の言語モデルを所望の比率で混合して新たな言語モデルを合成し、認識処理に用いることができる。また、混合比率（重み値）が変更された場合には、その合成された言語モデルを自動的に更新することができる。
【００１８】
［４］また、本発明の一態様は、上記の音声認識装置において、前記統合辞書管理部は、前記複数の言語モデルの各々に対応して、前記単語表記データと前記単語出現確率値と前記単語表記データの各々に対応する発音データとを取得し、前記単語表記データごとに前記発音データを前記音素列データに展開して前記統合辞書記憶部に書き込み、展開された前記音素列データに関連付けて前記単語表記データを前記統合辞書記憶部に書き込み、前記単語表記データに関連付けた前記単語出現確率値を前記言語モデルに対応させて前記統合辞書記憶部の前記単語出現確率値データに書き込むとともに、言語モデル間で単語表記が共通の単語が存在する場合には単一の前記単語表記データに関連付けるように言語モデルごとの前記単語出現確率値を前記単語出現確率値データに書き込み、言語モデル間で発音データが共通の単語が存在する場合には単一の音素列データに関連付けるように言語モデルごとの前記単語出現確率値を前記単語出現確率値データに書き込むものである。
【００１９】
この構成により、複数の言語モデルを統合して、各言語モデルに依存した音素列データおよび単語表記データに関して、言語モデル間で共通の静的に統合された木構造データをメモリ上に展開し、それらの単語表記データから、言語モデル別の単語出現確率値を関連付けるようにできる。
【００２０】
［５］また、本発明の一態様は、上記の音声認識装置において、前記統合辞書記憶部は、前記音素列データにおける単語始端から単語途中音素までの部分音素列に対応して、言語モデルごとに、前記部分音素列を共有する全ての前記単語表記データに関連付けられた前記単語出現確率値の最大値を、前記部分音素列に対応する単語内確率値として保持する単語内確率値データをも記憶するものであり、前記正解単語探索部は、前記単語内確率値が所定閾値より低い場合には対応する前記部分音素列を共有する単語表記データを探索対象から除外するものである。
【００２１】
［６］また、本発明の一態様は、音響特徴量に関する統計量である音響モデルに関連付けられた音素の列である音素列を表わす音素列データと、前記音素列データに関連付けられた単語表記を表わす単語表記データと、前記単語表記データに関連付けられ前記単語表記の出現確率を表わす単語出現確率値を複数の言語モデルの各々に対応して保持する単語出現確率値データとを記憶する統合辞書記憶部と、入力音声を分析して音響特徴量の統計データを出力する音響分析部と、前記音響分析部から出力された前記音響特徴量を前記音響モデルとの関係により前記音素列ごとの音響スコアを算出するとともに、前記音素列に対応する前記単語表記データについての所定の言語モデルに対応する前記単語出現確率値データを前記統合辞書記憶部から取得して前記単語表記ごとの言語スコアを算出し、算出された前記音響スコアおよび前記言語スコアにより、正解の単語表記を探索して出力する正解単語探索部とを具備する音声認識装置としてコンピューターを機能させるためのプログラムである。
【発明の効果】
【００２２】
本発明によれば、複数の言語モデルを切り替えることなどにより、高精度な音声認識を実現し、且つ、複数の言語モデルに対応した辞書データのメモリ使用量を抑制することができる。
また、本発明によれば、単語の出現確率値のテーブルを更新する際にも、認識処理を遅延させたり中断させたりすることがない。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態による音声認識装置の機能構成を示すブロック図である。
【図２】同実施形態による統合辞書記憶部が記憶する辞書データに含まれる、音素列探索用データの構成例を示す概略図である。
【図３】同実施形態による統合辞書記憶部が記憶する辞書データに含まれる、音素列探索用データの構成例を示すもう一つの概略図である。
【図４】同実施形態による重みベクトル記憶部が記憶するデータの構成を示す概略図である。
【図５】同実施形態による統合辞書記憶部内に記憶される単語終端Ｎ−ｇｒａｍテーブルの構成例を示す概略図である。
【図６】同実施形態による統合辞書記憶部内に記憶される単語内Ｎ−ｇｒａｍテーブルの構成例を示す概略図である。
【図７】同実施形態による音声認識処理（特に、Ｎ−ｇｒａｍテーブルの更新と、正解単語の探索）の手順を示したフローチャートである。
【発明を実施するための形態】
【００２４】
次に、図面を参照しながら、本発明の一実施形態について説明する。
図１は、同実施形態による音声認識装置の機能構成を示すブロック図である。図示するように、音声認識装置１は、音響分析部２と、正解単語探索部３と、統合辞書記憶部４と、言語モデル記憶部６−１，６−２，・・・，６−Ｍと、発音辞書記憶部７−１，７−２，・・・，７−Ｍと、統合辞書管理部８と、音響モデル記憶部９と、重みベクトル記憶部１０（重み値記憶部）と、手動設定部１１と、自動設定部１２とを含んで構成される。
【００２５】
なお、言語モデル記憶部６−１と発音辞書記憶部７−１が対として用いられる。なお、言語モデル記憶部６−２と発音辞書記憶部７−２が対として用いられ、以下も同様である。
【００２６】
一例としては、音声認識装置１は、放送番組の音声から放送用の字幕テキストを制作する目的で使用される。この場合、入力音声は、放送番組の音声そのもの、あるいは放送番組の音声を字幕制作専用アナウンサーが認識処理のために言い直した音声（いわゆる、リスピーク音声）である。
【００２７】
音響分析部２は、入力音声を読み込み、パワーや周波数特性などの音響特徴量を抽出する。また、音響分析部２は、音響特徴量を抽出すると同時に、入力音声における声の発話始端と発話終端を逐次検出する。発話始端および発話終端の検出自体は、既存の技術により行なうことができる。例えば、音響分析部２は、話者クラスタごとのスピーチに対する音響モデルと非スピーチに対する音響モデルとを参照しながら、スピーチに対する最大の累積尤度と非スピーチに対する累積尤度との比を逐次算出し、算出された比の値と予め設定された閾値とを比較することにより、発話始端および発話終端を検出する。
【００２８】
正解単語探索部３は、音響分析部２において抽出された音響特徴量を元に、統合辞書記憶部４から読み出した辞書データを用いて、正解単語を探索し、その結果得られたテキストを認識結果テキストとして出力する。具体的には、正解単語探索部３は、音響分析部２から出力された音響特徴量と、音響モデル記憶部９に記憶されている音響モデルとの関係により、音素列ごとの音響スコアを算出する。また、正解単語探索部３は、音素列に対応する単語表記データについての、選択されている言語モデルに対応する単語出現確率値を前記統合辞書記憶部から取得して単語表記ごとの言語スコアを算出する。そして、正解単語探索部３は、算出された音響スコアおよび言語スコアにより、正解の単語表記を探索して出力する。なお、正解単語探索部３は、制御フラグによって選択が示されている言語モデルに対応する単語出現確率値を統合辞書記憶部から取得して、言語スコア算出に使用する。
【００２９】
統合辞書記憶部４は、複数の言語モデルおよび複数の発音辞書の情報を統合した統合辞書のデータを記憶する。具体的には、統合辞書記憶部４は、単語始端ノードおよび単語終端ノードに関するデータと、音素列データと、単語表記データと、単語終端Ｎ−ｇｒａｍテーブルと、単語内Ｎ−ｇｒａｍテーブルとを記憶する。また、統合辞書記憶部４は、それらのデータ間の関連付けを行なうリンクの情報を記憶する。これらのデータの詳細については、後述する。
【００３０】
言語モデル記憶部６−１，６−２，・・・，６−Ｍは、言語モデルのデータを記憶するものであり、それぞれ、言語モデル１，言語モデル２，・・・，言語モデルＭに対応している。各々の言語モデルのデータは、単語表記データと単語出現確率値のデータとを関連付けて保持している。なお、本実施形態において単語出現確率値はバイグラムの確率値であるが、任意の数の単語連鎖に基づく確率値であってもよい。
【００３１】
発音辞書記憶部７−１，７−２，・・・，７−Ｍは、発音辞書のデータを記憶するものであり、それぞれ、言語モデル１，言語モデル２，・・・，言語モデルＭに対応している。各々の発音辞書のデータは、単語表記データと発音データとを関連付けて保持している。発音データは、音素列と等価である。
【００３２】
統合辞書管理部８は、複数の言語モデルのデータ、即ち、言語モデル記憶部６−１，６−２，・・・，６−Ｍおよび発音辞書記憶部７−１，７−２，・・・，７−Ｍから読み出したデータを統合し、言語モデル間で共通の音素列データおよび単語表記データをメモリ上に展開するとともに、言語モデルごとに確率値を保持する単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルに、値を書き込む。この言語モデルの統合および展開の処理の詳細については、後述する。
【００３３】
また、統合辞書管理部８は、音響分析部２が検出した発話始端および発話終端のタイミングに基づいて、発話終端と次の発話始端の間の発話間ポーズにおいて、必要な場合に統合辞書記憶部４を更新する。具体的には、重みベクトル記憶部１０の重みベクトルが変更されていた場合には、統合辞書管理部８は、変更後の重みベクトルを用いて、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルの値を再計算し、これらのテーブルを更新する。このテーブル更新処理の詳細については、後述する。
【００３４】
また、統合辞書管理部８は、手動設定または自動設定により言語モデル（ケース）の選択を制御するための制御フラグを更新する。このフラグの更新により、正解単語探索部３が使用する言語モデルを瞬時に切り替えることができる。なお、複数の言語モデルの重み付き合成結果である言語モデル（後述する「ケースＸ」）が選択される場合にも、同様に、統合辞書管理部８が上記の制御フラグを更新することにより行なう。
【００３５】
音響モデル記憶部９は、音響特徴量に関する統計量を、音素に関連付けた形式で記憶する。音響モデル記憶部９内の音響特徴量の統計量とは、例えば、音素のパワーや周波数特性などの平均値および分散値（ベクトルで表現される場合には分散共分散行列）である。
音響特徴量としては、例えば、隠れマルコフモデル（ＨＭＭ）を用いる。
【００３６】
重みベクトル記憶部１０は、複数の言語モデルを合成するための、各言語モデルの寄与度を表わす重み値のベクトルを記憶する。重みベクトルの詳細については、後述する。
【００３７】
手動設定部１１は、利用者からの手動設定により、重みベクトルの値を設定する。手動設定部１１は、言語モデルに対する各重み係数の値を直接入力できるようにしてもよいし、あらかじめ何通りかの重み係数の組み合わせ（例えば、後述するケース１、ケース２、・・・、ケースＸ）を設定しておき、そのうちのひとつを選択できるようにしておいてもよい。
【００３８】
自動設定部１２は、音声認識結果のテキストを分析することによって話題を推定し、特定された話題に応じて言語モデルを切り替える設定を行なう。話題を推定すること自体は、既存技術を利用して行なうことができる。例えば、認識結果テキスト中の単語ごとの出現頻度をカウントし、すべての単語の出現頻度を特徴ベクトルとして、コサイン尺度等によるベクトル間の類似度を用いて話題を推定できる。自動設定部１２は、随時、話題を推定し、推定結果に応じて、予め準備された候補の中から重みベクトルを選択したり、重みベクトルを新たに生成したりする。
【００３９】
図２は、統合辞書記憶部４が記憶する辞書データに含まれる、音素列探索用データの構成例を示す概略図である。図示するように、統合辞書記憶部４が記憶する辞書データは、ノードと有向リンクを表わすデータを含んで構成される。各ノードは例えば構造体データとして表わされる。また、有向リンクは、リンクの終点の記憶領域へのポインタ等を用いて表わされる。同図において、符号２０は、単語始端に対応する単語始端ノードである。また、３１から４０までは、音素に対応する音素ノードである。また、５１から５７までは、日本語の漢字仮名交じりで表わされる単語表記に対応する単語表記ノードである。また、７０は単語終端に対応する単語終端ノードである。なお、音素ノード３１〜４０と音素ノード間のリンクとが、正解単語探索部３による探索対象空間である音素列を表わしており、これを音素列データと呼ぶ。
【００４０】
統合辞書記憶部４が記憶する単語表記データは、単語表記ノードに対応し、単語表記を表わすものである。また、単語表記データは、音素列データ中の終端の音素ノードからリンクによって関連付けられている。
【００４１】
例えば、単語表記ノード５１に対応する単語「朝」は、音素列／ａｓａ／で発音されるため、／ａ／の音素ノード３１と、／ｓ／の音素ノード３２と、／ａ／の音素ノード３４とを直列するネットワークに関連付けられて居る。また例えば、単語表記ノード５３に対応する単語「明日」は、音素列／ａｓｕ／で発音されるため、／ａ／の音素ノード３１と、／ｓ／の音素ノード３２とを、上記の単語表記ノード５１（単語「朝」）との間で共有する。そして、／ｓ／の音素ノード３２から枝分かれして／ｕ／の音素ノード３５に至るネットワーク（音素ノード３１、３２、３５と直列するネットワーク）に、単語表記ノード５３（単語「明日」）は関連付けられる。なお、音素列／ａｓａ／には、単語表記ノード５１（単語「朝」）だけでなく、単語表記ノード５２（単語「麻」）も同様に、関連付けられる。
【００４２】
また、音素ノード３１〜４０の各々は、音響モデル記憶部９内の音響特徴量の統計量への関連付けが行なわれている。この関連付けは、各音素ノードがリンク情報（図２では図示省略）を保持することによって実現される。
【００４３】
また、音素ノード３１〜４０の各々は、単語内Ｎ−ｇｒａｍテーブルのエントリーへの関連付けのためのリンク情報（図２ではこのリンク情報の図示を省略）を保持している。この関連付けは、ポインタや音素ノード識別情報の値によって行なう。なお、単語内Ｎ−ｇｒａｍテーブルについては、後述する。
【００４４】
また、単語表記ノード５１〜５７の各々は、単語終端Ｎ−ｇｒａｍテーブルのエントリーへのリンク情報（図２ではこのリンク情報の図示を省略）を保持している。単語終端Ｎ−ｇｒａｍテーブルについては、後述する。
【００４５】
図３は、統合辞書記憶部４が記憶する辞書データに含まれる、音素列探索用データの構成例を示すもう一つの概略図である。図３に示すデータと図２で説明したデータとは、概念的な構成において同一である。図３において、符号２１は、単語始端ノードである。また、４１から４３までは、音素ノードである。また、５８から６１までは、単語表記ノードである。また、７１は、単語終端ノードである。なお、音素ノード４１〜４３と音素ノード間のリンクとが、正解単語探索部３による探索対象空間である音素列を表わしており、これを音素列データと呼ぶ。
【００４６】
この例では、単語表記ｗ１と単語表記ｗ２とは、ともに音素列／ｎ１ｎ２／に関連付けられている。つまり、ｗ１とｗ２は同音異義語である。また、単語表記ｗ３と単語表記ｗ４とは、ともに音素列／ｎ１ｎ３／に関連付けられている。つまり、ｗ３とｗ４は同音異義語である。後で単語内Ｎ−ｇｒａｍテーブルおよび単語終端Ｎ−ｇｒａｍテーブルについて説明する際に、また図３内のデータに言及する。
【００４７】
図４は、重みベクトル記憶部１０が記憶するデータの構成を示す概略図である。図示するように、重みベクトル記憶部１０は、ケースごとに、各言語モデルの重みの値を記憶する。図示する例では、ケース１のベクトルは（１．０，  ０．０，  ・・・，  ０．０）である。つまり、ケース１では、言語モデル１の重みを１．０とし、その他の言語モデルの重みをすべて０．０とする。また、ケース２では、言語モデル２の重みを１．０とし、その他の言語モデルの重みをすべて０．０とする。また、ケースＸでは、言語モデル１および２の重みをそれぞれ０．５ずつとし、その他の言語モデルの重みをすべて０．０とする。つまり、ケース１あるいはケース２の場合には、実質的に、複数の言語モデルのうち一つの言語モデルを単独で使用することを意味する。また、ケースＸのように、重みベクトルを用いて、複数の言語モデルの任意の重み付き線形結合による統計量を、言語モデルとして使用することもできる。
【００４８】
言語モデルに対する重みベクトルの意味は、次の通りである。即ち、任意の言語モデルｍ∈｛１，２，・・・，Ｍ｝に対する重み係数をλｍとし、入力音声に含まれる（ｎ−１）番目の単語ｗｎ−１からn番目の単語ｗｎへの単語連鎖（バイグラム）の言語モデルｍに基づく出現確率をＰｍ（ｗｎ｜ｗｎ−１）とすると、これらＭ個の言語モデルから重み付き線形結合で構成される言語モデル（ケースＸ）の単語連鎖の出現確率は、それぞれの重み係数を各言語モデルの出現確率に乗じて足し合わせることで、下の式（１）のように計算できる。
【００４９】
【数１】
2013125144.tif 000003
【００５０】
なお、ここで、下の式（２）で表わされる条件を前提とする。
【００５１】
【数２】
2013125144.tif 000004
【００５２】
つまり、あるケースに対する重み値の総和は１であり、各々の重み値は非負である。
なお、ここでは、１つの直前単語から次単語への２単語連鎖の出現確率、すなわちバイグラム確率について説明したが、さらにもう１つ前の直前単語も条件に加えた、３単語連鎖の出現確率、すなわちトライグラム確率についても、同様に重みを用いて計算できる。
【００５３】
前述の手動設定部１１あるいは自動設定部１２は、ケース１、ケース２、・・・、ケースＸの中から重みベクトルを選択するか、あるいはケースＸのベクトル値を適宜変更することによって、重みを決定する。また、ケース１やケース２のように、選択された重みベクトルにおいてある特定の言語モデルの重みのみが１．０である場合には、元の言語モデルを単純に選択することと同じ作用を得られる。
【００５４】
図５は、統合辞書記憶部４内に記憶される単語終端Ｎ−ｇｒａｍテーブル（単語出現確率値データ）の構成例を示す概略図である。ここに図示する例は、バイグラム確率を用いる場合のデータである。なお前述の通り、図２および図３で説明した単語表記ノードから、この単語終端Ｎ−ｇｒａｍテーブルのエントリーへのリンクによる関連付けが行なわれている。
【００５５】
図示するように、単語終端Ｎ−ｇｒａｍテーブルは、言語モデルのケースごとに、単語Ｎ−ｇｒａｍの確率値（単語出現確率値）を保持している。例えば、ケース１では、直前単語ｗ１に対して次単語ｗ２およびｗ４それぞれに接続する場合の確率値として、それぞれ、０．８および０．２を保持している。このとき、直前単語ｗ１に対して、次単語への接続の確率の総和は１．０である。即ち、直前単語ｗ１−次単語ｗ２の接続確率０．８と、直前単語ｗ１−次単語ｗ４の接続確率０．２との和は１．０である。同様に、ケース１では、直前単語ｗ２から次単語への接続確率の総和も１．０である。また、この単語終端Ｎ−ｇｒａｍテーブルは、ケース２やケースＸ等においても、同様に単語のＮ−ｇｒａｍ（ここでは、バイグラム）による確率値を保持している。
【００５６】
ケースＸについて、詳細に説明する。図４にも示した通り、ケースＸにおける重み値が言語モデル１と言語モデル２の各々に対して０．５である場合、図５のケースＸにおける直前単語ｗ１−次単語ｗ２の接続確率は、ケース１における確率０．８に重み０．５を乗じた値と、ケース２における確率０．０に重み０．５を乗じた値との和、即ち０．４である。同様に、ケースＸにおける直前単語ｗ１−次単語ｗ３の接続確率は、ケース１における確率０．０に重み０．５を乗じた値と、ケース２における確率０．４に重み０．５を乗じた値との和、即ち０．２である。同様に、ケースＸにおける直前単語ｗ１−次単語ｗ４の接続確率は、ケース１における確率０．２に重み０．５を乗じた値と、ケース２における確率０．６に重み０．５を乗じた値との和、即ち０．４である。そして、他の直前単語についても同様である。
【００５７】
つまり、単語終端Ｎ−ｇｒａｍテーブルは、単語表記データに関連付けられ、直前の単語または直前の単語連鎖を前提とした当該単語表記の条件付出現確率を表わす単語出現確率値を、複数の言語モデルの各々に対応して保持する。
【００５８】
また、単語終端Ｎ−ｇｒａｍテーブルは、言語モデル（ケース）の選択を制御するための制御フラグ（言語モデル選択制御データ）を有している。図示する例では、ケース１が選択されているために、ケース１に対応する制御フラグの値は「○」である。また、選択されていないケース２やケースＸに対応する制御フラグの値は「×」である。音声認識処理の実行中は、この制御フラグが「○」で示されている言語モデルのデータを参照するようにすることにより、音素列データの木構造を言語モデルごとにメモリ上に複数展開したり、言語モデルごとの木構造全体を切り替えたりすることなく、言語モデルを切り替えることと等価な処理を行うことが可能となる。また、制御フラグの更新のみにより、迅速な言語モデルの変更が可能となる。
【００５９】
図６は、統合辞書記憶部４内に記憶される単語内Ｎ−ｇｒａｍテーブル（単語内確率値データ）の構成例を示す概略図である。図示するように、単語内Ｎ−ｇｒａｍテーブルは、直前単語ごとに、音素ノードに対応する確率値（単語内確率値）を保持している。なお前述の通り、各音素ノードから、この単語内Ｎ−ｇｒａｍテーブルのエントリーへのリンクによる関連付けが行なわれている。また、単語内Ｎ−ｇｒａｍテーブルは、前述の単語終端Ｎ−ｇｒａｍテーブルと同様に、言語モデル（ケース）の選択を制御するための制御フラグ（言語モデル選択制御データ）を有している。選択されているケースにおいては、制御フラグの値は「○」である。また、選択されていないケースにおいては、制御フラグの値は「×」である。
【００６０】
つまり、統合辞書記憶部４は、音素列データにおける単語始端から単語途中音素（単語途中音素とは、単語表記ノードへの直接リンクを持たない音素）までの部分音素列に対応して、言語モデルごとに、部分音素列を共有する全ての単語表記データに関連付けられた単語出現確率値の最大値を、部分音素列に対応する単語内確率値として保持する単語内Ｎ−ｇｒａｍテーブルを記憶する。部分音素列（音素ノード）を共有する単語表記データの意味については、次に説明する。
【００６１】
図６に示すデータ例は、図３で説明した音素列の木構造に対応している。図３で示したように、音素ノードｎ１は、単語表記ノード５８〜６１の各々に対応する単語ｗ１とｗ２とｗ３とｗ４である。つまり、音素ノードｎ１は、単語ｗ１とｗ２とｗ３とｗ４を共有している。一般に音素ノードpにおける共有単語（この音素ノードを含む複数の単語）の集合をｓｐとすると、ｓ１＝｛ｗ１，ｗ２，ｗ３，ｗ４｝，ｓ２＝｛ｗ１，ｗ２}，ｓ３＝｛ｗ３，ｗ４｝である。言い換えれば、音素ノードｐを共有する全ての単語表記ノードの集合が、ｓｐである。単語内Ｎ−ｇｒａｍテーブルが保持する確率値は、ある直前単語を前提として、ある音素ノードが共有する共有単語集合に含まれる単語を次単語としたときの接続確率の最大値である。
【００６２】
即ち、直前単語ｗｎ−１に後続する音素ノードpにおける共有単語集合ｓｐ（音素ノードｐを含む複数の単語の集合）の連鎖出現確率の最大値は、下の式（３）で表わされる。
【００６３】
【数３】
2013125144.tif 000005
【００６４】
なお、式（３）において、Ｐｍ（ｗｎ｜ｗｎ−１）は、ケースｍ（いずれか単独の言語モデルあるいは重み付け線形和）における、単語ｗｎ−１から単語ｗｎへの接続確率であり、前述の単語終端Ｎ−ｇｒａｍテーブルがその確率値を保持している。
【００６５】
なお、ここでは一つの直前単語から次単語への２単語連鎖の出現確率、すなわちバイグラム確率の最大値について説明したが、さらにもう一つ前の直前単語も条件に加えた、３単語連鎖の出現確率、すなわちトライグラム確率の最大値や、直前単語によらずに１単語単独の出現確率、すなわちユニグラム確率の最大値等を用いるようにしても良い。これら、トライグラム確率やユニグラム確率等を用いる場合にも、単語内Ｎ−ｇｒａｍテーブルが保持する値の算出方法は、同様である。
【００６６】
例えば、ケース１（図４に示す例では言語モデル１のみを使用）において、直前単語がｗ１であるとき、音素ノードｎ１の共有単語の集合はｓ１＝｛ｗ１，ｗ２，ｗ３，ｗ４}であるので、直前単語ｗ１−次単語ｗ１の接続確率０．０と、直前単語ｗ１−次単語ｗ２の接続確率０．８と、直前単語ｗ１−次単語ｗ３接続確率０．０と、直前単語ｗ１−次単語ｗ４の接続確率０．２の最大値は０．８である。よって、直前単語ｗ１−音素ノードｎ１の確率値は０．８である。他の直前単語、および他の音素ノードについても同様である。
【００６７】
このような単語内Ｎ−ｇｒａｍテーブルを用いることにより、音声認識処理を行う場合に、単語終端まで言語モデルの適用（対数言語スコアの加算）を遅らせるのではなく、探索途中の各音素ノードで、その音素を共有する単語への連鎖出現確率の最大値に基づいて、可能性の低い単語の探索を打ち切る（即ち、探索空間における枝刈りを行なう）ことが可能となる。つまり、その音素を共有する単語への連鎖出現確率の最大値が、所定の閾値よりも低い場合には、当該共有単語集合のどれもが、正解単語である可能性が閾値よりも低いため、安全に探索空間の枝刈りを行なうことができる。
【００６８】
なお、単語内Ｎ−ｇｒａｍテーブルに、可能性のある全ての音素ノードについて予め確率値を書き込んでおいても良いが、データ量が膨大になることを避けるために、次のような工夫をしても良い。第１の工夫は、音素の列のツリーにおいてそれ以上分岐が起きない音素ノード以降（つまり、その音素ノードに共通する単語の発音が１種類のみの場合）では音素ノード間で確率値が不変なので確率値の登録を省略する。第２の工夫は、計算頻度の高い、単語始端に近い音素ノードに関してのみ確率値を事前計算して単語内Ｎ−ｇｒａｍテーブルに登録しておく。そして、計算頻度の低い、単語終端に近い音素ノードについては認識時に必要になった時だけ確率値を計算する。
【００６９】
次に、音声認識装置１による処理の手順について説明する。
図７は、音声認識装置１による動作の手順を示すフローチャートである。
【００７０】
まず、ステップＳ１において、統合辞書管理部８が、言語モデル記憶部６−１〜６−Ｍから各言語モデルのデータを読み出すとともに、発音辞書記憶部７−１〜７−Ｍから発音辞書データを読み出す。また、統合辞書管理部８は、音響モデル記憶部９から音響モデルのデータを読み出す。そして、統合辞書管理部８は、音素ノードの木構造を展開するなどの処理により、統合辞書データを作成し、統合辞書記憶部４にそのデータを書き込む。このときに作成されるデータとしては、図２および図３で示した音素ノードの木構造とそれに関連付けられた単語表記ノードのデータ、図５で示した単語終端Ｎ−ｇｒａｍテーブル、そして、図６で示した単語内Ｎ−ｇｒａｍテーブルが含まれる。統合辞書管理部８による統合辞書作成処理の詳細については、後述する。
【００７１】
次に、ステップＳ２において、自動設定部１２が、重みベクトルの初期値として、ケース１のベクトルを使用するよう設定する。つまり、言語モデル１に対する重み係数が１．０に設定され、その他の言語モデルに対する重み係数が０．０に設定される。また、このとき、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルの制御フラグが、特定のケースを選択するように設定される。
【００７２】
次に、ステップＳ３において、統合辞書管理部８が、重みベクトルが初期値以外の値に手動設定されているか否かを調べる。そして、重みベクトルの手動設定がある場合（ステップＳ３：ＹＥＳ）には次のステップＳ４に進み、手動設定がない場合（ステップＳ３：ＮＯ）にはステップＳ５に飛ぶ。
【００７３】
次に、ステップＳ４に進んだ場合には、統合辞書管理部８が、変更後の重みベクトルの値に従って、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルが保持する確率値を再計算し、更新する。
【００７４】
次に、ステップＳ５において、音響分析部２が、入力音声の分析を行い、音響特徴量を抽出する。具体的には、音響分析部２は、所定の時間長の入力音声に基づき、その時間長に対応して、音響特徴量の離散的な時系列を求める。またこのとき、音響分析部２は、既に述べた方法で発話始端および発話終端の検出も同時に行なう。
【００７５】
次に、ステップＳ６において、音響分析部２は、ステップＳ５で検出された発話始端および発話終端のタイミングに応じて、現時点での入力音声が発話間ポーズ（無音、非スピーチ）であるか否かを判定する。そして、発話間ポーズである場合（ステップＳ６：ＹＥＳ）には次のステップＳ７に進み、発話間ポーズでない場合（ステップＳ６：ＮＯ）にはステップＳ１１に飛ぶ。
【００７６】
次に、ステップＳ７において、統合辞書管理部８は、前回以後、自動設定部１２によって重みベクトルが自動設定されたかどうか調べる。そして、自動設定されていた場合（ステップＳ７：ＹＥＳ）にはステップＳ８に進み、自動設定されていなかった場合（ステップＳ７：ＮＯ）にはステップＳ９に進む。
【００７７】
次に、ステップＳ８に進んだ場合には、変更された重みベクトルを用いるように、使用する重みベクトルの設定を更新する。このステップの処理のあとは、ステップＳ１０に進む。
【００７８】
次に、ステップＳ９に進んだ場合には、統合辞書管理部８は、前回以後、手動設定部１１によって重みベクトルが設定（変更）されたかどうか調べる。そして、変更されていた場合（ステップＳ９：ＹＥＳ）にはステップＳ１０に進み、変更されていなかった場合（ステップＳ９：ＮＯ）にはステップＳ１１に飛ぶ。
【００７９】
次に、ステップＳ１０に進んだ場合には、統合辞書管理部８が、変更後の重みベクトルの値に従って、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルが保持する確率値を再計算し、更新する。
【００８０】
そして、ステップＳ１１において、正解単語探索部３が、音響分析部２によって得られた音響特徴量を元に、統合辞書記憶部４に記憶されている統合辞書データ（Ｎ−ｇｒａｍテーブルを含む）を用いて、正解単語を探索し、各正解候補のスコア（尤度）を算出する。正解単語探索部３は、例えば、単語単位の確率値の対数の時系列方向の和をスコアとして算出する。
【００８１】
そして、ステップＳ１２において、単語終端に達したとき、あるいは文の終端に達したとき、あるいは発話終端に達したときなど、適切なタイミングに達した場合には、正解単語探索部３は、最尤単語列を認識結果テキストとして逐次出力する。
【００８２】
次に、ステップＳ１３において、音響分析部２は、入力音声の終了であるか否かを判定する。入力終了の場合（ステップＳ１３：ＹＥＳ）にはこのフローチャート全体の処理を終了する。まだ入力終了ではない場合（ステップＳ１３：ＮＯ）には、次の入力音声を分析するためにステップＳ５へ戻る。つまり、音声認識装置１は、入力音声が終了するまで、音声認識処理を繰り返す。
【００８３】
＜正解単語探索処理の詳細＞
ここで、正解単語探索部３の処理の詳細について説明する。正解単語探索部３は、上述した手順において、統合辞書記憶部４の統合辞書を探索し、探索が単語表記ノード（符号５１〜６０）に達した時、その単語に対応する確率値を単語終端Ｎ−ｇｒａｍテーブルから読み出して、その対数を取り、その単語を含む系列（正解候補）の音響スコアにその対数値を加算する。なお、確率値の対数値の系列方向の加算が、確率値の積によるスコアと同じ意味を持つことは言うまでもない。また、単語終端Ｎ−ｇｒａｍテーブルについての説明でも述べたように、バイグラム確率の最大値によって正解単語を探索する方法に限らず、トライグラム確率の最大値や、ユニグラム確率の最大値を用いる方法を採用しても良い。また、４以上の連鎖数のＮ−ｇｒａｍを用いても良い。
【００８４】
なお、制御フラグで「○」で示されているケース（選択されている単独の言語モデルあるいはこれらの重み付け線形和）に関して、単語終端Ｎ−ｇｒａｍテーブルに記載のない次単語については、次のように連鎖出現確率を扱う。即ち、当該ケースにおける語彙に、その次単語が含まれない場合にはその次単語への接続確率を０．０とする。そして、当該ケースにおける語彙に、その次単語が含まれる場合には、連鎖数がひとつ下のＮ−ｇｒａｍ（つまり、トライグラムを用いている場合にはひとつ下のバイグラム。バイグラムを用いている場合にはひとつ下のユニグラム）を利用したバックオフ言語モデルの確率値を用いるようにする。
【００８５】
また、正解単語探索部３は、上述した手順における探索時に、各音素ノードでは、入力音声がどの音素に近いのかを評価するため、音素ノードに関連付けされている音響モデルを用いて、仮説候補単語に対する音響スコアを算出する。正解単語探索部３は、この音響スコアＰ（Ｏ｜Ｗ）を、下の式（４）によって算出する。
【００８６】
【数４】
2013125144.tif 000006
【００８７】
ここでＷは入力音声Ｏ中の単語列である。また、ｗｎは入力音声Ｏ中のｎ番目の単語である。また、Ｏｎはこのｎ番目の単語に対応する入力音声の音響特徴量のベクトル列（時系列）である。
【００８８】
また、正解単語探索部３は、単語単位だけではなく、複数単語からなるフレーズや文を音声認識するために、各単語の単語終端ノードから次単語の単語始端ノードへの遷移をたどる。これにより、正解単語探索部３は、次々に連続した単語の探索を行なうことができるようになっている。例えば、「秋の朝ね」という文発声を音声認識する際には、正解単語探索部３は、図２の単語始端ノード２０から、音素ノード３１〜４０のそれぞれに関連付けられた音響モデルによって音響スコアの計算を行い、可能性の高い（つまり、音響スコアが所定の閾値より高い）音素ノードのみを正解候補として保持して、可能性の低い（つまり、音響スコアが所定の閾値より低い）音素ノード以降の探索を打ち切る。つまり、音素ノードの枝刈りを行なう。そして、正解単語探索部３は、音響スコアと言語スコアの和が最大となる「秋」→「の」→「朝」→「ね」という単語列を認識結果として採用することで、音声認識処理を完了する。なお、ここで言語スコアとは、単語連鎖の出現確率（単語Ｎ−ｇｒａｍ）の対数を取った値である。
【００８９】
正解単語探索部３は、音素を共有する単語への連鎖出現確率の最大値を保持する単語内Ｎ−ｇｒａｍテーブルを参照することにより、上記のような探索空間の枝刈りを行なうことができる。言い換えれば、正解単語探索部３は、単語内確率値が所定閾値より低い場合には対応する部分音素列を共有する単語表記データを探索対象から除外する。
【００９０】
つまり、単語終端まで言語モデルの適用（対数言語スコアの加算）を遅らせるのではなく、探索途中の各音素ノードで、その音素を共有する単語への連鎖出現確率の最大値に基づいて、可能性の低い単語の探索を打ち切ることが可能となる。言い換えれば、正解単語探索部３は、単語終端まで言語モデルの適用（対数言語スコアの加算）を遅らせるのではなく、探索途中の各音素ノードで、その音素を共有する単語への連鎖出現確率の最大値を仮に加算（言語スコアを先読み）する。
【００９１】
＜統合辞書管理処理の詳細＞
次に、統合辞書管理部８の処理の詳細について説明する。統合辞書管理部８は、初期（図７のステップＳ１）において、Ｍ個の言語モデルおよびそれらに対応するＭ個の発音辞書を順次読み込み、木構造に展開し、図２および図３で示した統合辞書を生成する。また、それらＭ個の言語モデルに対応して、さらにこれらのＭ個の言語モデルの重み付け線形和のケースに対応して、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルを生成する。
【００９２】
このとき、統合辞書管理部８は、Ｍ個の言語モデル間で、共通の単語表記による単語や、共通の音素列（つまり、同一の発音）による単語が含まれる場合には、これらを重複して音素列の木構造に展開することを行なわず、共通の音素列間で木構造のデータを共用できるようにする。具体的手順の例として、統合辞書管理部８は、例えば言語モデル１の語彙の全単語を木構造に展開し終えた後で、言語モデル２も中に、同一の単語表記や同一の発音（音素列）の単語を含む場合には、これらを再度別ノードとして展開することをしない。つまり、同一の単語表記が言語モデル１と言語モデル２の両方に存在する場合には、既存の言語モデル１用に作成した単語表記ノードから関連付けられている先の、単語終端Ｎ−ｇｒａｍテーブルのエントリーに対応させて、言語モデル２（ケース２）用の確率値を書き込む。また、同一の発音で新たな単語表記が言語モデル２の中に存在した場合には、言語モデル１用に作成した音素列のネットワークをそのまま用いて、それに関連付けられた単語表記ノードのみを新たに作成する。統合辞書管理部８は、言語モデル３以後についても同様の方法で、統合辞書データを作成していく。
【００９３】
言い換えれば、統合辞書管理部８は、複数の言語モデルの各々に対応して、言語モデル記憶部６−１〜６−Ｍから単語表記データと単語出現確率値とを取得するとともに、発音辞書記憶部７−１〜７−Ｍから単語表記データの各々に対応する発音データを取得する。そして、統合辞書管理部８は、単語表記データごとの発音データを音素列データの木構造に展開して統合辞書記憶部４に書き込む。そして、統合辞書管理部８は、展開された木構造の音素列データに関連付けて単語表記データを統合辞書記憶部４に書き込む。そして、統合辞書管理部８は、単語表記データに関連付けた単語出現確率値を言語モデルに対応させて統合辞書記憶部４の単語終端Ｎ−ｇｒａｍテーブルに書き込む。但し、統合辞書管理部８は、言語モデル間で単語表記が共通の単語が存在する場合には単一の単語表記データ（すなわち、単一のメモリ領域だけを占める）に関連付けるように言語モデルごとの単語出現確率値を単語終端Ｎ−ｇｒａｍテーブルに書き込み、言語モデル間で発音データ（即ち、音素列）が共通の単語が存在する場合には単一の音素列データ（つまり、単一のメモリ領域だけを占める音素ノードの連鎖）に関連付けるように言語モデルごとの単語出現確率値を単語終端Ｎ−ｇｒａｍテーブルに書き込む。
【００９４】
これにより、統合辞書管理部８は、言語モデルごとの木構造をメモリ上に展開する必要がなく、冗長性を廃した木構造を有する辞書に、複数の言語モデルを静的に統合することが可能となる。つまり、複数の言語モデルを切り替えて使用しながらも、消費するメモリ量を大幅に削減することが可能となり、装置のハードウェア規模を削減することが出来る。
【００９５】
重みベクトル記憶部１０に記憶されている重みベクトルが手動設定部１１または自動設定部１２によって変更された場合には、統合辞書管理部８は、必要に応じて単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルに記憶されている確率値を再計算して更新する。図７のステップＳ４およびＳ１０における処理がこれに相当する。図４に示した、ケース１およびケース２の重みベクトルはその値が不変であるので、ベクトル値そのものの変更によって単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルの更新が必要になることはない。単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルにおける制御フラグで選択を切り替えるだけで、ケースの切り替えを行うことができる。一方で、ケースＸでは重みベクトルの値が変更され得るため、変更された場合には、統合辞書管理部８が、変更後のベクトル値を用いて単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブル内の確率値を再計算する。
【００９６】
言い換えれば、統合辞書管理部８は、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルにおける、複数の言語モデルに対応する単語出現確率値を、重みベクトル記憶部１０から取得した重み値を用いて加重平均することにより、複数の言語モデルを合成して得られる新たな言語モデル（ケースＸに相当）の単語出現確率値を算出し、算出された単語出現確率値で単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルを更新する、なお、このテーブル更新のきっかけとなるのは、初期において重みベクトルが設定されていたとき、または発話間ポーズにおいて重みベクトルが変更されていたときである。
【００９７】
図７のステップＳ４は、入力音声の読み込みを開始する前の処理であるため、テーブル更新に関する特別の時間制約はない。一方で、ステップＳ１０の処理は、発話間ポーズ中の処理であるため、次の発話始端の前にテーブル更新処理を終える必要がある。そのため、統合辞書管理部８は、発話間ポーズの時間内に確率値の再計算が完了しない場合には、そのときには単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルを更新せず、バックグラウンド処理で確率値の再計算を継続する。この場合、次の発話では、正解単語探索部３は、更新前の単語終端N-gramテーブルおよび単語内N-gramテーブルの値をそのまま利用して正解単語を探索することとなる。また、次の発話間ポーズのときに、統合辞書管理部８は、再計算された確率値を用いてこれらのテーブルを更新する。このような制御により、音声認識処理が中断あるいは遅滞されることを防ぐことができる。
【００９８】
以上述べた音声認識装置１の構成により、次の効果が得られる。
複数の言語モデルを切り替えたり、重みベクトルによる線形和を取って合成したりするためことができるため、複数の話題にまたがる入力音声に対しても認識精度が上がる。
複数の言語モデルを統合する際に、音素列および単語に関する情報が重複することなくメモリ上に展開するため、メモリ消費を抑制することができる。ひいては、装置規模を小さくすることができる。
また、制御フラグの切り替えのみで、認識に使用する言語モデルを切り替えることができるため、認識処理中にオンラインで迅速に話題の変化に追従できる。
また、単語内Ｎ−ｇｒａｍテーブルを用いた探索を行なう際に、可能性の低い候補を枝刈り処理できるため、正解単語の探索のための計算量を減らすことができる。
このように、使用メモリ量を抑えつつ、リアルタイムに、高精度な音声認識を実現できる。
【００９９】
なお、上述した実施形態における音声認識装置の機能を、コンピューターで実現するようにしても良い。その場合、各機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１００】
以上、実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。
例えば、重み付き線形結合による言語モデルを使用する場合、単語連鎖の出現確率に対する重みベクトルが変更されると、統合辞書管理部８は、入力音声に対する前記正解単語探索において探索対象となった木構造化単語辞書上の単語内音素および単語終端のみについて、単語終端Ｎ−ｇｒａｍテーブルおよび単語内Ｎ−ｇｒａｍテーブルの出現確率の再計算および更新を行い、他の単語内音素および単語終端については更新を行なわないようにする。これにより、重みベクトルの変更に対してオンラインで迅速に対応でき、認識処理の遅延や中断を防ぐことができる。
【０１０１】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【０１０２】
本発明は、音声認識処理全般に利用できる。例えば、放送番組の字幕データ作成に利用することができる。特に、話題が時間とともに推移していくような音声の認識処理に利用することができる。
【符号の説明】
【０１０３】
１  音声認識装置
２  音響分析部
３  正解単語探索部
４  統合辞書記憶部
６−１，６−２，・・・，６−Ｍ  言語モデル記憶部
７−１，７−２，・・・，７−Ｍ  発音辞書記憶部
８  統合辞書管理部
９  音響モデル記憶部
１０  重みベクトル記憶部（重み値記憶部）
１１  手動設定部
１２  自動設定部
２０，２１  単語始端ノード
３１〜４３  音素ノード
５１〜６１  単語表記ノード
７０，７１  単語終端ノード
【図１】
2013125144.tif 000007
【図２】
2013125144.tif 000008
【図３】
2013125144.tif 000009
【図４】
2013125144.tif 000010
【図５】
2013125144.tif 000011
【図６】
2013125144.tif 000012
【図７】
2013125144.tif 000013