テキスト修正装置およびプログラム
【課題】音声認識結果を用いながら発話単位等の長さに依らない所定の限られた遅延時間で、認識結果を修正してテキストとして逐次出力するテキスト修正装置を提供する。
【解決手段】テキスト区間推定部は、認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと認識結果単語列データとのマッチング処理を行ってテキスト単語列データと認識結果単語列データとの間の類似度を算出し、算出された類似度に基づいてテキスト単語列データを修正候補として選択する。誤り修正部は、テキスト区間推定部によって選択されたテキスト単語列データとの間の不一致区間について、テキスト区間推定部によって選択されたテキスト単語列データに基づく修正を行う。
【解決手段】テキスト区間推定部は、認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと認識結果単語列データとのマッチング処理を行ってテキスト単語列データと認識結果単語列データとの間の類似度を算出し、算出された類似度に基づいてテキスト単語列データを修正候補として選択する。誤り修正部は、テキスト区間推定部によって選択されたテキスト単語列データとの間の不一致区間について、テキスト区間推定部によって選択されたテキスト単語列データに基づく修正を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テキスト修正装置およびプログラムに関する。
【背景技術】
【0002】
音声認識結果に基づいてテキストを出力する技術は、様々な分野に応用可能である。例えば、会議等における人の発話を記録したり、自動音声翻訳を行ったり、テレビ放送等のコンテンツの字幕(クローズドキャプション)を生成したりするために、音声認識結果からテキストを出力する技術を応用することができる。
このとき、音声認識処理の精度を100%にすることは困難であるため、音声認識結果を何らかの方法で修正することが求められる。
例えば、特許文献1には、音声認識結果を発話単位で修正するための装置が記載されている。ここで、発話単位とは、発話開始から発話終了までの区間などの単位である。
また、非特許文献1には、音声認識誤りを人手で修正するための装置が記載されている。この装置は、タッチパネルモニタに音声認識結果を提示するものであり、オペレータが提示された認識結果を一字一句目視でチェックし、誤りを発見したらその単語をタッチして選択し、キーボードで修正を行うものである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−089786号公報
【非特許文献】
【0004】
【非特許文献1】本間真一,外5名,ダイレクト方式とリスピーク方式の音声認識を併用したリアルタイム字幕制作システム,映像情報メディア学会誌,2009年,Vol. 63,No. 3, pp. 331-338.
【発明の概要】
【発明が解決しようとする課題】
【0005】
音声認識の性能が年々向上してきているとは言え、現状の技術では、まだ100%の精度を保証できるレベルには達していない。例えばテレビ放送におけるニュースのような、原稿(テキスト)を元にして発話される音声を認識する際には、音声認識装置に予めそのテキストを学習させておけばかなり高い認識精度が得られるが、雑音や言い誤り・言い淀みなどの原因によっても、認識誤りが発生し得る。
【0006】
従って、発話内容を忠実に表すテキストを出力するためには、このような認識誤りを、テキストを元に自動的に修復(修正)することが必要である。また、発話記録や自動翻訳や放送等のための字幕生成の目的では、このような音声認識結果をリアルタイムに修正して出力させることも求められている。
特許文献1に記載された技術では、文単位でのマッチングによって認識結果の修正を行うため、一つの文の発話終了後にしか修正結果を得ることができない。つまり、リアルタイムな修正ができない。
【0007】
本発明の課題は、特に、音声認識結果を用いながらリアルタイムで、言い換えれば所定の短い遅れ時間で、認識結果を修正してテキストとして逐次出力することのできる、テキスト修正装置およびプログラムを提供することである。
【0008】
また、そのような修正を行う際に、非特許文献1に記載されたような、人手を介する修正装置では、すべての認識結果をオペレータが一字一句目視でチェックする必要があったが、このようなオペレータの負荷を軽減することのできるテキスト修正装置およびプログラムを提供することも、課題の一つである。
【課題を解決するための手段】
【0009】
[1]上記の課題を解決するため、本発明の一態様によるテキスト修正装置は、テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部とを具備する。
【0010】
この構成によれば、認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さがN以上になると、文末や発話終了などを待つことなく、テキスト区間推定部は、認識結果単語列データとテキスト単語列データとのマッチングを行って、類似度に基づき、修正候補のテキスト単語列データを選択する。これにより、文末等を待つことなく、誤り修正部は認識結果単語列データを修正し、テキスト出力部は修正された認識結果単語列データに基づいてテキストを出力する。つまり、文の長さや発話単位の長さに依らず、Nの値のみに依る限られた遅延時間で、テキストを逐次修正して出力する。つまり、テキスト修正装置は、高いリアルタイム性によって、音声認識結果を修正し、出力する。
【0011】
[2]また、本発明の一態様では、前記のテキスト修正装置において、前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間における、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間のマッチング処理を行って、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間の発音類似度を算出し、算出された前記発音類似度が、予め設定された発音類似度閾値より高いか否かを判定する発音マッチング部、をさらに具備し、前記誤り修正部は、前記発音類似度が前記発音類似度閾値より高い場合にのみ、実際に前記修正を行う、ものである。
【0012】
この構成によれば、修正候補のテキスト(単語)間の発音の類似度により、その修正候補を用いた修正を実際に行うか否かを決定する。つまり、この構成によれば、認識結果単語列データとテキスト単語列データとの間の単語レベルの類似度が高い場合であっても、修正候補の単語の発音の類似度が低い場合には、その修正候補による修正を回避する。つまり、テキスト修正装置の修正精度がより一層高まる。
【0013】
[3]また、本発明の一態様では、前記のテキスト修正装置において、前記テキスト区間推定部は、修正候補として選択した前記テキスト単語列データの前記テキストデータ内における位置情報を記憶するとともに、前記認識結果単語列データと前記テキスト単語列データのマッチング処理を行う際には前回選択した前記テキスト単語列データの前記位置情報を読み出して、読み出した前記位置情報に基づいて限定された範囲の前記テキスト単語列データを、前記認識結果単語列データとのマッチング処理の対象とする、ものである。
【0014】
この構成により、位置情報に基づき、限られた範囲のテキスト単語列データのみをマッチング対象とする。位置情報は、前回のマッチングの結果得られたものであるので、そのような限られた範囲のテキスト単語列データが、今回のマッチングにおいて類似度の高いテキスト単語列データである可能性は高い。つまり、マッチングの精度を維持しながら、マッチングに要する処理量を削減し、よって処理時間を削減することとなる。
【0015】
[4]また、本発明の一態様では、前記のテキスト修正装置において、前記テキスト単語列データ記憶部は、複数のコンテンツに対応する前記テキストデータに基づいて得られる前記テキスト単語列データを、前記コンテンツを識別する情報と関連付けて記憶するものであり、前記テキスト区間推定部は、現コンテンツとは異なるコンテンツに対応する前記テキストデータの先頭から所定の範囲内に該当する前記テキスト単語列データを、さらに、前記認識結果単語列データとのマッチング処理の対象とする、ものである。
【0016】
この構成により、音声認識結果が現コンテンツから他のコンテンツに移っても、それら他のコンテンツの先頭部分のテキストをマッチングの対象とすることができる。
【0017】
[5]また、本発明の一態様では、前記のテキスト修正装置において、前記テキスト区間推定部は、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さがN以上でない場合であっても、前記認識結果単語列データの長さが所定値M(Mは正整数であり且つ、M<N)以上である場合には、そのときの前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致するか否かを判定し、前記テキスト出力部は、前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致した場合には、前記認識結果単語列データにおける一致部分の少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除する、ものである。
【0018】
この構成により、認識結果単語列データの長さMの部分がテキストデータから得られた単語列と一致する場合には、認識結果単語列データの長さがNになるのを待たずに、一致した単語列の少なくとも一部を出力する。つまり、より一層、遅延時間を短くすることができる。
【0019】
[6]また、本発明の一態様では、前記のテキスト修正装置において、前記誤り修正部は、前記認識結果単語列データと、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正候補とを表示し、当該修正を行うことを表す指示が入力された場合にのみ、前記修正を行う、ものである。
【0020】
[7]また、本発明の一態様では、発音マッチング部を有する態様のテキスト修正装置において、置換候補の単語ペアと、前記単語ペアのうちの一方の単語の発音音素数と、前記単語ペアに関する発音類似度と、前記単語ペアが置換可能か否かを表すデータとから、学習処理により、前記単語ペアが置換可能か否かを決定するための発音類似度閾値を求め、求められた前記発音類似度閾値を設定する学習処理手段、をさらに具備し、前記発音マッチング部は、前記学習処理手段によって設定された前記発音類似度閾値を用いた判定を行う、ものである。
【0021】
この構成により、サンプルに基づき、自動的に適切な発音類似度閾値を設定することができる。
【0022】
[8]また、本発明の一態様では、発音マッチング部を有する態様のテキスト修正装置において、前記発音類似度閾値の設定を書き換える閾値変更手段、をさらに具備する。
【0023】
[9]また、本発明の一態様によるプログラムは、テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部と、を具備するテキスト修正装置としてコンピュータを機能させる。
【発明の効果】
【0024】
本発明によれば、従来よりも短い遅延時間でほぼリアルタイムに、自動的に音声認識結果を修正することができる。
また、本発明の一態様によれば、音声認識結果を修正する装置において、利用者が音声認識結果のテキストを逐一目視する必要がなく、提示された修正候補が適切な習性化否かを判断するだけで、音声認識結果の修正を行える。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態によるテキスト修正装置の機能構成を示すブロック図である。
【図2】同実施形態によるテキスト記憶部が記憶するデータの構造と例を示す概略図である。
【図3】同実施形態によるテキストNグラム記憶部が記憶するデータの構造と例を示す構造図である。
【図4】同実施形態による認識結果記憶部が記憶する認識結果データの構造とデータ例を示す概略図である。
【図5】同実施形態によるテキストNグラム取得部が、与えられたテキストデータを元にテキストNグラムを予め抽出する処理の手順を示すフローチャートである。
【図6】同実施形態によるテキスト修正装置が、音声認識装置から認識結果を受信し、その認識結果を修正する処理の手順を示すフローチャートである。
【図7】同実施形態において利用するDPマッチングの処理を示す概略図である。
【図8】本発明の第2の実施形態によるテキスト修正装置の機能構成を示すブロック図である。
【図9】同実施形態による発音辞書データ記憶部が記憶する単語ごとの発音データの構成を示す概略図である。
【図10】同実施形態によるテキスト修正装置が、音声認識装置から認識結果を受信し、その認識結果を修正する処理の手順を示すフローチャートである。
【図11】同実施形態による処理実行結果の実例を示す概略図である。
【図12】本発明の変形例において、遅延時間を短くするための処理の手順を示すフローチャートである。
【図13】本発明の変形例において、誤り修正部が利用者からの確認入力に基づいて修正を行なう処理の手順を示すフローチャートである。
【図14】音素数と類似度に応じた、置換すべき単語および置換すべきでない単語の分布を示すグラフである。
【発明を実施するための形態】
【0026】
[第1の実施の形態]
次に、図面を参照しながら、本発明の実施形態について説明する。
図1は、第1の実施形態によるテキスト修正装置の機能構成を示すブロック図である。図示するように、テキスト修正装置1は、認識結果受信部10と、認識結果記憶部20(認識結果単語列データ記憶部)と、テキスト記憶部30と、テキストNグラム取得部40と、テキストNグラム記憶部50(テキスト単語列データ記憶部)と、テキスト区間推定部60と、誤り修正部80と、テキスト出力部90とを備えて構成される。また、テキスト修正装置1は、外部の音声認識装置200から、音声認識結果を受信するように構成される。
【0027】
認識結果受信部10は、外部の音声認識装置200から音声認識結果を逐次受信して認識結果記憶部20に書き込む。認識結果受信部10は、音声認識結果を単語単位で受信し、受信した単語を逐次、認識結果記憶部20に書き込む。
認識結果記憶部20は、認識結果受信部10が受信した音声認識結果に基づいて得られる認識結果Nグラム(認識結果単語列データ)を記憶する。
【0028】
テキスト記憶部30は、予め与えられるテキストデータを記憶する。
テキストNグラム取得部40は、テキスト記憶部30に記憶されているテキストデータを元に、テキストNグラム(テキスト単語列データ)を取得し、テキストNグラム記憶部50に書き込む。
テキストNグラム記憶部50は、テキストデータに基づいて得られるテキストNグラムを記憶する。
テキスト区間推定部60は、認識結果記憶部20に書き込まれた認識結果Nグラムの長さ(単語数)が予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、その長さがN以上であると判定されると、テキストNグラム記憶部50に記憶されている複数のテキストNグラムのそれぞれと、長さNの認識結果Nグラムとのマッチング処理を行って、そのテキストNグラムと認識結果Nグラムとの間の類似度を算出し、算出された類似度に基づいて、類似度の高いテキストNグラムを修正候補として選択する。
【0029】
誤り修正部80は、認識結果記憶部20に記憶された認識結果Nグラム内における、テキスト区間推定部60によって修正候補として選択されたテキストNグラムとの間の不一致区間について、選択された修正候補であるテキストNグラムに基づく修正を行う。つまり、誤り修正部80は、認識結果の誤りと推定された部分を、テキストNグラムを用いて修正する。また、そのテキストNグラムは与えられたテキストデータから取得されたものであるので、誤り修正部80は、つまり、テキストデータの中のテキスト区間推定部60によって推定された区間を用いて認識結果を修正する。
テキスト出力部90は、認識結果記憶部20に記憶されている認識結果Nグラムのうちの前方の少なくとも一部分(例えば、単語数が(N/2)に相当する部分)を出力するとともに、その認識結果Nグラムのうち出力した部分を認識結果記憶部20から削除する。
【0030】
なお、音声認識装置200は、既存の技術を用いて、入力される音声を認識する処理を行い、認識結果である単語列を逐次出力するものである。一例として、音声認識装置は、音響特徴量と認識結果に対応する音素の確率的関係を表す音響モデルのデータと、言語の構成要素(文字や単語等)のNグラム(N-gram,エヌグラム)の出現確率を表す言語モデルのデータとに基づき、入力される音声に対応する最尤単語列を算出して出力するように構成される。
【0031】
図2は、テキスト記憶部30が記憶するデータの構造と例を示す概略図である。図示するように、テキスト記憶部30は、複数のテキストファイルを記憶する。各々のテキストファイルは、放送番組の台本から起こしたテキストデータや、放送番組の電子的台本データのテキストや、ニュース番組で使用するニュース原稿のテキストデータなどといったテキストを保持する。各ファイルは、ファイル名などによってコンテンツIDと関連付けられている。このコンテンツIDは、コンテンツを識別する情報である。ここでコンテンツとは、例えば、テレビ放送番組や、ニュース記事や、会議における議題など、意味的なまとまりを持つ単位である。図示する例では、ファイル名そのものがコンテンツIDである。そして、第1のファイルのコンテンツID(ファイル名)は「1012345」であり、そのファイルは「京都市の川村市長は・・・」というニュース原稿のテキストデータを保持する。また、第2のファイルのコンテンツIDは「1012346」であり、そのファイルは「2010年のノーベル化学賞は、・・・」というテキストデータを保持する。
【0032】
図3は、テキストNグラム記憶部50が記憶するデータの構造と例を示す構造図である。図示するように、テキストNグラム記憶部50は記憶するデータは表形式のものであり、コンテンツIDとNグラムIDとテキストNグラムのデータ項目を有する。このコンテンツIDは、テキスト記憶部30が記憶するデータにおけるコンテンツIDに対応する。また、NグラムIDは、あるコンテンツ内におけるテキストNグラムを識別する情報である。図示するデータ例は、コンテンツIDが「1012345」であるコンテンツに関するテキストNグラムを含んでいる。ここでテキストNグラムと呼ぶものは、所定の長さの単語連鎖のことである。そして、NグラムID「1」に対応するテキストNグラムは、「京都市−の−川村−市長」である。また、NグラムID「2」に対応するテキストNグラムは、「の−川村−市長−は」である。NグラムIDが「3」以上の場合も同様である。なお、テキストNグラム記憶部50は、単語のNグラムを記憶する。また、ここではNグラムの長さを4としている。そして、上記のテキストNグラム内に便宜上含まれている「−」(ハイフン)は、Nグラム内における単語間の区切りを表すためのものである。
【0033】
図4は、認識結果記憶部20が記憶する認識結果データの構造とデータ例を示す概略図である。図示する認識結果データの例は「ニュース−です−京都市−の−河浦−・・・」である。ここで、「−」(ハイフン)は、認識結果データ内における単語の区切りを表すために便宜上挿入されているものである。なお、認識結果記憶部20は、FIFO(First-in, First-out)式に、単語列の前から順に削除(つまり先に書き込まれた単語から先に削除)できるように構成されている。
【0034】
次に、テキスト修正装置1の動作について説明する。
図5は、テキストNグラム取得部40が、テキスト記憶部30に記憶されているテキストが含む情報を予め単語Nグラムの形式でテキストNグラム記憶部50に格納するための処理手順を示すフローチャートである。なお、認識結果受信部10が音声認識装置200から音声認識結果の受信を開始する前に、テキストNグラム取得部40はこのフローチャートに示す処理を行う。以下、フローチャートに沿って説明する。
【0035】
まずステップS1で、テキストNグラム取得部40は、テキスト記憶部30からテキストを読み込む。このテキストは、前述の通り、放送番組の台本や、ニュース番組の原稿であり、発話の情報源となるテキストである。
次にステップS2で、テキストNグラム取得部40は、読み込んだテキストに対して形態素解析処理を行う。そして、その結果、単語単位に分割されたテキストを得る。
【0036】
次にステップS3で、テキストNグラム取得部40は、ステップS2で単語単位に分割されたテキストを元に、単語Nグラムを取得する。ここで、単語Nグラムの長さは、予め設定されており、例えば長さ4とする。具体的には、テキストNグラム取得部40は、当該テキストに関して、第1単語から始まるNグラム、第2単語から始まるNグラム(以下同様)を順次取得する。
次にステップS4で、テキストNグラム取得部40は、ステップS3で得られたNグラムの各々にNグラムIDを付与する。NグラムIDとしては、例えば、1から始まる整数値を順次用いる。そして、テキストNグラム取得部40は、各テキストNグラムの出現順に、NグラムIDを付与している。つまりNグラムIDは、コンテンツごとに、元のテキストデータにおけるそのテキストNグラムの位置を表している。
次にステップS5で、テキストNグラム取得部40は、NグラムIDと単語Nグラムとを関連付けて、テキストNグラム記憶部50に書き込む。
【0037】
なお、テキスト記憶部30が複数のコンテンツのテキストを記憶する場合には、テキストNグラム取得部40は、それらのコンテンツの各々について、上述したステップS1からS5までの処理を行う。
【0038】
図6は、テキスト修正装置1が、音声認識装置200から認識結果を受信し、その認識結果を修正する処理の手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
まずステップS11において、認識結果受信部10が、音声認識装置200から認識結果のデータを受信する。音声認識装置200は、前述した最尤単語列を逐次出力する。認識結果受信部10は、単語単位で、あるいは所定数のまとまった単語の単位で、その単語列のデータを受信する。そして、認識結果受信部10は、受信したデータを逐次、認識結果記憶部20に書き込む。
次にステップS12において、テキスト区間推定部60は、認識結果記憶部20に所定の長さの単語列(N単語)が既に格納されているか否かを判断する。ここで所定の長さNとは、予め設定された長さであり、例えばN=4である。なお、ここで認識結果記憶部20から取り出す単語の長さと、テキストNグラム取得部40が取得した単語Nグラムの長さとは、等しい。具体的には、認識結果記憶部20は前述の通りFIFOとして構成されているので、テキスト区間推定部60は、そのFIFOの先頭からの単語数が所定の長さ以上であるか否かを判断する。そして、所定の長さの単語列が既に格納されている場合(ステップS12:YES)には次のステップS13に進み、単語列の長さがまだ所定の長さに達していない場合(ステップS12:NO)にはさらに音声認識結果を受信するためにステップS11に戻る。
【0039】
次にステップS13に進んだ場合、テキスト区間推定部60は、認識結果記憶部20から先頭のN単語の列を読み出す。なお、この読み出された単語列を、便宜上、認識結果Nグラムと呼ぶ。そして、テキスト区間推定部60は、この認識結果Nグラムと、テキストNグラム記憶部50に記憶されている当該コンテンツのテキストNグラムとの間で、DP(Dynamic Programming,動的計画法)マッチングの処理を行う。テキスト区間推定部60は、このDPマッチングの処理により、認識結果Nグラムと各々のテキストNグラムとの間の類似度を算出する。具体的には、テキスト区間推定部60は、マッチング対象の両Nグラムに基づき、一致精度、一致率、脱落率、挿入率、編集距離などといった数値のいずれかを算出し、これに基づき類似度として用いる。なお、一致精度または一致率を用いる場合には、これらの数値が大きいほど、類似度が高い(より類似している)ことを表す。また、脱落率や挿入率や編集距離を用いる場合には、これらの数値が小さいほど、類似度が高い(より類似している)ことを表す。なお、DPマッチングの処理自体については、後で説明する。
【0040】
なお、複数のコンテンツIDに相当するテキストNグラムがテキストNグラム記憶部50に記憶されている場合、テキスト区間推定部60がマッチングの対象とするテキストNグラムのコンテンツIDは、適宜与えられる。例えば、利用者が選択したコンテンツのIDをテキスト区間推定部60に渡すようにしても良いし、前回までのマッチングにおいて類似度の高いテキストNグラムが属するコンテンツを現在のコンテンツと推定するようにしても良い。
【0041】
次にステップS14において、テキスト区間推定部60は、ステップS13で求めた類似度に基づき、ひとつのテキストNグラムを修正候補単語列として選択しメモリに一時的に格納する。ここでテキスト区間推定部60が選択するテキストNグラムは、現在対象としている認識結果Nグラムとの間で最も類似度の高いテキストNグラムである。
【0042】
次にステップS15において、テキスト区間推定部60が、ステップS14において選択されメモリに格納されたテキストNグラムについて、類似度が所定の閾値よりも高いか否かを判定する。なお、この類似度に関する閾値は、予め設定される。このテキストNグラムと認識結果Nグラムとの間の類似度が所定の閾値よりも高い場合(ステップS15:YES)には、次のステップS16に進む。また、そうでない場合(この類似度が低い場合,ステップS15:NO)にはステップS17に進む。
【0043】
次にステップS16に進んだ場合、誤り修正部80は、メモリに格納されたテキストNグラムを用いて、認識結果Nグラムの修正を行なう。具体的には、誤り修正部80は、ステップS13におけるDPマッチング処理の結果に基づき、認識結果Nグラムと選択されたテキストNグラムとの間の不一致区間を抽出し、不一致区間において置換と判定された単語の部分を修正する。例えば、認識結果Nグラムが「京都市−の−河浦−市長」で、選択されたテキストNグラムが「京都市−の−川村−市長」の場合、DPマッチング処理においては「河浦」と「川村」が対応し、これらの両単語は置換関係である。従って、誤り修正部80は認識結果記憶部20に記憶されている認識結果Nグラム内の「河浦」を「川村」に変更する修正を行なう。
【0044】
ステップS17において、テキスト出力部90が、認識結果記憶部20に記憶されている認識結果Nグラムのうち、前の半分の単語列に相当するテキストを出力する。例えば、単語列の長さNが4の場合、テキスト出力部90は、前半の2単語に相当する分を出力する。つまり、ステップS16において誤り修正部80がその部分を修正している場合には、修正済みのテキストがテキスト出力部90によって出力される。そして、テキスト出力部90は、出力済みの単語列を認識結果記憶部20から削除する。この処理は、テキスト出力部90が全体の単語長の半分だけ認識結果Nグラムを前にシフトすることと同等である。ステップS17の処理が終わると、さらに音声認識結果を受信するためにステップS11に戻る。
【0045】
なお、図6に示した処理では、ステップS13において認識結果Nグラムとのマッチングの対象となり得る全てのテキストNグラムについて類似度を算出してから、ステップS14において類似度が最高のテキストNグラムを選択して修正候補単語列としてメモリに格納していた。
この代わりに、第1の代替処理として、ステップS13において認識結果Nグラムと完全に一致するテキストNグラムが見つかった場合に、この認識結果を正解とみなして、直ちにステップS17の処理に移る手順としても良い。この場合、ステップS17では、Nグラム長の半分の単語列を出力する。このようにすることにより、認識結果NグラムとテキストNグラムとの間のDPマッチングの処理量を減らすことができ、全体の処理時間を短縮することができる。
またさらに、第2の代替処理として、ステップS13において認識結果Nグラムと完全に一致するテキストNグラムが見つかった場合に、この認識結果を正解とみなして、直ちに、当該認識結果Nグラムに相当するテキストの全体を出力するとともに、認識結果記憶部20から当該認識結果Nグラムの全体を削除して、ステップS11の処理に戻るようにしても良い。これにより全体の処理時間をさらに短縮することができる。
【0046】
ここで、上記の手順において用いたDPマッチングの処理について、説明する。
単語列や文字列や音素列などは、それぞれ1次元のパターンである。このとき、単語列の要素は単語であり、文字列の要素は文字であり、音素列の要素は音素である。ある1次元パターンから一部の要素を脱落させたり、ある1次元パターンに一部の要素を挿入したり、ある1次元パターンにおける一部の要素を他の要素で置換したりすると、別のパターンが得られる。このとき、元のパターンと、新たに得られたパターンとの間には、共通の部分列が存在する。共通の部分列の割合が大きいほど、概ね、両者間の類似度が高いと言える。DPマッチングは、これらのような複数の1次元パターンについて、効率よく共通部分列をマッチングさせ、パターン間の類似度を求める手法である。DPマッチングは、動的計画法を用いて2つのパターンの要素間の対応付けを行う。なお、DPマッチングの処理自体は、既存の技術である。
【0047】
図7は、本実施形態におけるDPマッチング処理の概略を示す図である。この図における「パターン」は、本実施形態における単語Nグラムに相当する。図示する例は長さN=6の場合である。つまり、例えば「abcdef」というパターンにおいて、「a」、「b」、・・・、「f」の各々は単語に相当する。そして、このパターン「abcdef」は、長さ6の単語Nグラムに相当する。そして、同図におけるリファレンスパターンが認識結果から得られる認識結果Nグラムに相当し、パターンA〜FがテキストNグラム記憶部に記憶されるとともにマッチングの対象となるテキストNグラムの各々に相当する。
【0048】
同図において、リファレンスパターン「abcdef」は、パターンA「abcdef」と完全に一致する。よって、ヒット数H=6である。置換数S、脱落数D、挿入数Iは、すべて0である。
また、パターンB「abzdef」は、リファレンスパターンにおける「c」を「z」で置換したパターンであり、その他の「ab」および「def」は一致している。よって、置換数S=1、ヒット数H=5である。脱落数Dと挿入数Iはともに0である。
また、パターンC「abdef」は、リファレンスパターンにおける「c」が脱落しており、その他の「ab」および「def」は一致している。よって、脱落数D=1、ヒット数H=5である。置換数Sと挿入数Iはともに0である。
【0049】
また、パターンD「abczdef」は、リファレンスパターン内に「z」が挿入されたパターンであり、その他の「abc」および「def」は一致している。よって、挿入数I=1、ヒット数H=6である。置換数Sと脱落数Dはともに0である。
また、パターンE「acdzef」は、リファレンスパターンから「b」が脱落し、「z」が挿入されているパターンである。そして、「a」と「cd」と「ef」は一致している。よって、脱落数D=1、挿入数I=1、ヒット数H=5である。また、置換数S=0である。
また、パターンF「abzdf」は、リファレンスパターンにおける「c」を「z」で置換し、「e」が脱落したパターンである。そして、「ab」と「d」と「f」は一致している。よって、置換数S=1、脱落数D=1、ヒット数H=4である。また、挿入数I=0である。
【0050】
そして、パターン間の一致率、一致精度、脱落率、挿入率はそれぞれ、下記の数式(1)〜(4)を用いて算出される。なお、これらの計算結果の値は、パーセントによるものである。
一致率:%Corr=(H/N)×100=((N−S−D)/N)×100・・・(1)
一致精度:%Acc=((H−I)/N)×100=((N−S−D−I)/N)×100・・・(2)
脱落率:%Del=(D/N)×100・・・(3)
挿入率:%Ins=(I/N)×100・・・(4)
【0051】
また、パターン間の編集距離は、一方のパターンから、挿入、削除、置換といった操作を行なうことによって、他方のパターンに編集する際に、必要とされる操作の最小回数である。
【0052】
図6に示した処理手順では、テキスト修正装置1は、認識結果を受信しながら、テキストNグラムとのDPマッチング、類似度の高いテキストNグラムの選択、そして修正が必要な場合には修正、という処理を繰り返す。
一方で、このままの処理では、音声認識結果が終了した場合や、長い無音区間(ポーズ)が挿入された場合に、即ち、バッファにN単語格納する前に認識結果の逐次受信が停止した場合に、最後まで修正結果の出力がなされないまま、待ち状態となってしまうケース(つまり、ステップS12の判定結果が常に「NO」となるケース)が生じ得る。これを回避するため、実際の処理手順では、所定時間(予め設定されたT秒間。一例としてT=3など。)音声認識装置200からの音声認識結果が到着しない状況が検知された直後に、下記の処理を実行する。
【0053】
即ち、認識結果受信部10が受信した音声認識結果として、長さm(0<m<N)の単語列が認識結果記憶部20に残っている状態のまま、T秒経過しても次の単語が受信されない(つまり、ポーズを検出した)ならば、その時点で、予め退避させておいたその直前の長さ(N−m)の単語列を補完して、長さNの単語列を生成する。その後、図6のステップS13からの処理を実行する。但し、このポーズが検出された状態でステップS17の処理を行う場合には、前半の(N/2)単語を出力するのではなく、(N−m)単語を補完する前の未出力のm単語に相当する部分のテキストを出力するようにする。
このような処理により、認識途中の無音区間において速やかに認識結果を出力することができ、また、認識結果のデータが全て終了したときにも正しく全体の処理を終了することができる。
【0054】
[第2の実施の形態]
次に、本発明の第2の実施形態について説明する。なお、既に述べた実施形態と共通する事項については説明を省略し、本実施形態特有の事項についてのみ説明する。
図8は、第2の実施形態によるテキスト修正装置の機能構成を示すブロック図である。図示するように、テキスト修正装置2は、認識結果受信部10と、認識結果記憶部20と、テキスト記憶部30と、テキストNグラム取得部40と、テキストNグラム記憶部50と、テキスト区間推定部60と、誤り修正部80と、テキスト出力部90とを備える。これらの各部の構成および機能は、第1実施形態におけるそれらと同様である。
【0055】
また、テキスト修正装置2は、さらに、発音マッチング部70と発音辞書データ記憶部71とを備える。
この発音マッチング部70は、認識結果記憶部20に記憶された認識結果Nグラム内における、テキスト区間推定部60によって修正候補として選択されたテキストNグラムとの間の不一致区間における、認識結果Nグラムの側の発音とそのテキストNグラム側の発音との間のマッチング処理を行って、両者間の発音類似度を算出し、算出された発音類似度が予め設定された発音類似度閾値より高いか否かを判定する。なお、発音マッチング部70は、音素ラベルの列(音素列)同士のマッチング処理を行うことによって、上記の発音と発音との間のマッチング処理を行う。
また、発音辞書データ記憶部71は、単語と発音との対応関係を保持するデータである。このようなデータは、既存技術による音声認識装置が備えているものであり、本実施形態においても、音声認識装置200が備えている発音辞書データをコピーすることによって予め発音辞書データ記憶部71に発音辞書を書き込んでおく。
【0056】
なお、本実施形態における誤り修正部80は、発音マッチング部70によって算出された発音類似度が設定されている発音類似度閾値より高い場合にのみ、実際に修正を行う。誤り修正部80は、その他の場合(算出された発音類似度が低い場合)には、単語置換処理を回避する。
【0057】
図9は、発音辞書データ記憶部71が記憶するデータの構成を示す概略図である。図示するように、発音辞書データ記憶部71は、単語と発音(音素列)の各項目を有する表形式のデータである。そして、各行が、単語と発音の対応関係を保持する。例えば、単語「会見」に対応する発音(音素列)は「kaiken」である。その他の単語についても同様である。
【0058】
次に、テキスト修正装置2による処理の手順について説明する。なお、テキストNグラム取得部40が予めテキストNグラムを抽出してテキストNグラム記憶部50に保存しておく点は、第1実施形態と同様である。
図10は、テキストNグラムが既にテキストNグラム記憶部50に書き込まれている状態での、テキスト修正装置2による処理の手順を示すフローチャートである。
ステップS21からS25までの処理は、図6で説明したステップS11からS15までの処理と、それぞれ、同様である。
【0059】
ステップS25において、類似度が最高であるテキストNグラムの類似度が所定の閾値よりも高い場合(ステップS25:YES)にはステップS26に進む。そして、ステップS26においては、発音マッチング部70が、修正候補単語列の発音と、対応する認識結果Nグラムの発音を、発音辞書データ記憶部71から読み出す。ここで修正候補単語列は、ステップS24で選択されたテキストNグラム(認識結果Nグラムとの間の類似度が最大のもの)が、DPマッチングの結果、認識結果Nグラムの中の一部の単語の置換であると判定されたときの、置換対象の単語の列である。発音マッチング部70は、認識結果Nグラムの中で置き換えられる可能性のある単語の音素列と、その単語を置き換える可能性のある単語の音素列を、それぞれ、発音辞書データ記憶部71から取得する。一例では、「京都市−の−河浦−市長」という認識結果Nグラムと「京都市−の−川村−市長」というテキストNグラムとをDPマッチングしたとき、「河浦」は「川村」の置換と判定される。この場合、発音マッチング部70は、単語「河浦」に対応する音素列「kawaura」と、「川村」に対応する音素列「kawamura」とを、発音辞書データ記憶部71から取得する。
【0060】
次にステップS27において、発音マッチング部70は、置換候補の単語に対応する発音(音素列)同士のDPマッチング処理を実行する。このDPマッチング処理は、音素単位でのマッチングを行う。その結果、発音マッチング部70は、両音素列間の類似度を算出する。なお、音素列間の類似度は、音素レベルでの一致率(式(1))や、一致精度(式(2))や、脱落率(式(3))や、挿入率(式(4))や、編集距離に基づいて算出される。
次にステップS28において、発音マッチング部70は、ステップS27のDPマッチング処理によって算出された音素列間の類似度が予め設定された所定の閾値よりも高いか否かを判定する。類似度が高い場合(ステップS28:YES)には次のステップS29へ進む。類似度が低い場合(ステップS28:NO)には、ステップS30へ飛ぶ。
【0061】
ステップS29へ進んだ場合、誤り修正部80が認識結果Nグラムの単語を置換することにより、修正を行う。この処理の詳細は、図6のステップS16と同様である。
次にステップS30では、テキスト出力部90が、認識結果Nグラムの前半を出力するとともに、認識結果Nグラムを前にシフトする処理を行う。この処理の詳細は、図6のステップS17と同様である。
【0062】
なお、図10に示した処理では、ステップS23において認識結果Nグラムとのマッチングの対象となり得る全てのテキストNグラムについて類似度を算出してから、ステップS24において類似度が最高のテキストNグラムを選択して修正候補単語列としてメモリに格納していた。この代わりに、ステップS23において認識結果Nグラムと完全に一致するテキストNグラムが見つかった場合に、この認識結果を正解とみなして、直ちにステップS30の処理に移る手順としても良い。この場合、ステップS30では、Nグラム長の半分の単語列を出力する。このようにすることにより、認識結果NグラムとテキストNグラムとの間のDPマッチングの処理量を減らすことができ、全体の処理時間を短縮することができる。
【0063】
次に、具体的なデータに基づく処理の例を説明する。図11は、テキスト修正装置2が図10に示した処理を実行したときの認識結果Nグラムと、類似度最大で選択されるテキストNグラムと、単語の置換判定の関係を示す概略図である。以下、この図に沿って順次説明する。なおここで、テキスト修正装置2が処理対象とするテキストNグラムは図3に示した通りであり、音声認識装置200から渡される認識結果は図4に示した通りである。また、この例では、単語Nグラムの長さNを4としている。
【0064】
認識結果受信部10は、図4に示した認識結果「ニュース−です−京都市−の−河浦−市長−は−会見−で−次−の−ように−述べ−ました・・・」を、単語毎に、あるいはいくつかの単語をひとまとまりとして、順次、音声認識装置200から受信する(図10のステップS21)。
認識結果受信部10は、上記の単語列を逐次受信した場合、これを順次、認識結果記憶部20のバッファ(FIFO)に書き込む。そして、4単語(N単語)分蓄積された段階で、その4単語を認識結果Nグラム(4−グラム)として取り扱う。
【0065】
<図11における処理回数「1回目」>
つまり最初の認識結果Nグラムは、「ニュース−です−京都市−の」である。
テキスト区間推定部60は、図3に示した、コンテンツIDが「1012345」であるテキストNグラムのそれぞれと、認識結果Nグラム「ニュース−です−京都市−の」とのDPマッチングを行い、類似度を算出する(ステップS23)。しかし、テキストNグラムの中で類似度が最高のものについても、その類似度は設定された閾値を超えるものではない。よってテキスト出力部90は、認識結果Nグラムの前半の2単語(4単語の半分)である「ニュース−です」を出力する。さらにテキスト出力部90は、認識結果Nグラムの後半の「京都市−の」をシフトして前半に移す(ステップS30)。
【0066】
<図11における処理回数「2回目」>
従って、次の認識結果Nグラムは、「京都市−の−河浦−市長」となる。
テキスト区間推定部60は、同様に、コンテンツIDが「1012345」であるテキストNグラムのそれぞれと、認識結果Nグラム「京都市−の−河浦−市長」とのDPマッチングを行い、類似度を算出する(ステップS23)。その結果、NグラムIDが「1」である「京都市−の−川村−市長」が、類似度最高のテキストNグラムとして判定される(ステップS24)。
そして、選択されたテキストNグラム「京都市−の−川村−市長」は、認識結果Nグラムとの類似度が閾値より高いと判定される(ステップS25)。
【0067】
また、既に行ったDPマッチングにおいてテキストNグラム中の「川村」は、認識結果Nグラム中の「河浦」の置換であると判定されたため、発音マッチング部70は、単語「川村」および単語「河浦」のそれぞれの発音(音素列)を発音辞書データ記憶部71から取得する(ステップS26)。そして、発音マッチング部70は、取得した音素列「kawamura」と「kawaura」との間で、音素レベルのDPマッチングを行い、両音素列間の類似度を算出する(ステップS27)。そして、発音マッチング部70は、算出された音素列間の類似度が所定の閾値よりも高いか否かを判定する(ステップS28)。
そして、音素列間の類似度が閾値よりも高いため、誤り修正部80は、認識結果Nグラム中の「河浦」を、テキストNグラム中の「川村」で置き換える修正を行う(ステップS29)。
テキスト出力部90は、認識結果Nグラムの前半の2単語である「京都市−の」を出力する。さらにテキスト出力部90は、認識結果Nグラムの後半の「川村−市長」(既に修正済み)をシフトして前半に移す(ステップS30)。
【0068】
<図11における処理回数「3回目」>
次の認識結果Nグラムは、「川村−市長−は−会見」である。これは、前回処理で「河浦」が「川村」に既に修正されているためである。この認識結果Nグラムに対して類似度最大で選択されるテキストNグラムは、「川村−市長−は−記者」である。ここで、置換候補となるのは、認識結果Nグラム側の「会見」とテキストNグラム側の「記者」である。そして、発音マッチング部70が両者の発音の類似度を算出するが、類似度は閾値より高くないため、この置換(修正)は行われない。よって「川村−市長」が出力され、「は−記者」がシフトされる。
【0069】
以下同様に、テキスト修正装置1は、音声認識装置200から受信する認識結果に含まれる単語を順次使用しながら、認識結果Nグラムを特定し、テキストNグラムとのDPマッチングを行い、類似度に応じて、置換候補の単語を特定し、それらの単語の発音同士の類似度が高い場合にその修正を行い、認識結果Nグラムの前半を出力し、認識結果Nグラムの後半を前にシフトする、という一連の処理を繰り返し実行する。
【0070】
次に、上記実施形態(第1および第2の実施形態)の複数の変形例について説明する。
【0071】
[変形例1]
前述した処理手順(図6および図10)では、無音区間(ポーズ)の直前を除いて、N単語を受信するのを待ってから以後の処理を行っていた(図6のステップS12および図10のステップS22での判定)。しかしながら、N単語の到着を常に待ってからその後の処理を行うと、修正結果の出力は、N単語を受信する時間分だけ常に遅延してしまう。この遅延時間を極力短くするため、この変形例1では、次のようにする。
即ち、長さNの単語Nグラムを予めテキストNグラム記憶部50に書き込んでおくとともに、テキストNグラム取得部40による図5と同様の処理により、長さM(0<M<N)のテキストNグラムを予め取得しておく。そして、長さMのテキストNグラムも、テキストNグラム記憶部50に予め書き込んでおく。
そして、長さNの単語列が既に受信されていない場合も、認識結果Nグラムのうちの先頭のM単語と、上記の長さMのテキストNグラムとの間で一致するものがある場合には、バッファの先頭のL単語(0<L≦M)のみを出力し、残りの単語をシフトする処理を行う。
【0072】
図12は、この変形例1に特有の処理手順を示すフローチャートである。図12におけるステップS41、S42、S43、S60はそれぞれ、図6におけるステップS11、S12、S13、S17に対応し、また図10におけるステップS21、S22、S23、S30に対応する。
ステップS42において、認識結果記憶部20のFIFOにまだN単語が格納されていないとき(ステップS42:NO)には、ステップS51に進む。
そして、ステップS51では、テキスト区間推定部60が、認識結果記憶部20にM単語以上が格納されている場合に、先頭のM単語が、当該コンテンツIDに該当する長さMのテキストNグラムのいずれかと一致するか否かを判定する。そして、一致する場合(ステップS51:YES)にはステップS52に進む。一致しない場合(ステップS51:NO)にはそのままステップS41に戻る。
ステップS52に進んだ場合には、テキスト出力部90が、認識結果記憶部20のFIFOに格納されている先頭のL単語のみを出力し、残りの単語列をL単語分、前にシフトする。そして、ステップS52の処理が終了すると、ステップS41に戻る。
なお、ステップS43に進んだ場合、ステップS43におけるDPマッチングを実行した後の処理は、図6や図10の場合と同様である。
【0073】
つまり、本例におけるテキスト区間推定部60は、認識結果記憶部20に書き込まれた認識結果Nグラムの長さがN以上でない場合であっても、認識結果Nグラムの長さが所定値M(Mは正整数であり且つ、M<N)以上である場合には、そのときの認識結果Nグラムの先頭の長さMの部分が、テキストデータから予め得られた長さMの単語列のいずれかと一致するか否かを判定する。
そして、本例におけるテキスト出力部90は、認識結果Nグラムのうちの先頭の長さMの部分が、テキストデータから予め得られた長さMの単語列のいずれかと一致した場合には、認識結果Nグラムにおける一致部分の少なくとも一部分(例えば、1単語分など)を出力するとともに、認識結果Nグラムのうち出力した部分を認識結果記憶部20から削除する。
【0074】
なお、NとMとLの関係は、0<L≦M<Nであるが、NとMとLの組み合わせとして好適なものは、例えば、N=20のとき、M=4、L=1とすることである。
なお、発明者が行った実証実験によれば、M≧4のときに、良い結果が得られることがわかっている。また、L=Mとしても良いが、Mと比べてLを小さくするほうが、出力されるテキストの修正精度が上がり、良い結果が得られる。特に、L=1とするときに良い結果が得られることが、発明者が行った実証実験によってわかっている。
【0075】
[変形例2]
この変形例においては、テキスト区間推定部60が行うDPマッチングの処理に特徴がある。前提として、既に述べたように、テキストNグラム取得部40がテキストNグラムを取得してテキストNグラム記憶部50に書き込む際に、当該コンテンツ内においてテキストの前から順に1、2、3、・・・というNグラムIDを付与している。図3に示したデータ例では、そのように、テキストの前方ほどNグラムIDの数値が小さく、テキストの後方ほどNグラムIDの数値が大きくなっている。
そして、テキスト区間推定部60は、図6のステップS14や図10のステップS24において、認識結果Nグラムとの類似度が最大のテキストNグラムを選択した際に、選択されたテキストNグラムのNグラムID(位置情報)をメモリに保存しておく。
そして、テキスト区間推定部60は、次回、図6のステップS13や図10のステップS23の処理を行う際には、前回保存したNグラムIDをメモリから読み出し、そのNグラムIDを基準として、−Jから+Kまでの位置の範囲内のNグラムIDを有するテキストNグラムのみを対象として、DPマッチングの処理を行う。
なお、JおよびKは、適宜設定される正整数であり、N=20のとき、一例としては、J=150、K=100などとする。
【0076】
つまり、本例では、テキスト区間推定部60は、修正候補として選択したテキストNグラムの元のテキストデータ内における位置情報をメモリに記憶するとともに、認識結果NグラムとテキストNグラムとの間のマッチング処理を行う際には前回選択したテキストNグラムの位置情報をメモリから読み出して、読み出した位置情報に基づいて限定された範囲(例えば前回位置から前方へ所定単語数の位置から、後方へ所定単語数の位置までの範囲)のテキストNグラムのみを、現在の認識結果Nグラムとのマッチング処理の対象とする。
【0077】
一般にDPマッチングに要する計算量は膨大である。本例では、前回のDPマッチングの結果に基づき、テキスト全体におけるその近傍に、次の回で類似度最大となるテキストNグラムが来る可能性が高いことを利用することによって、マッチング対象とするテキストNグラムを予め絞り込んでいる。これにより、全てのテキストNグラムをDPマッチングの対象とする場合に比べて、処理に必要な計算量を大幅に削減することができる。
【0078】
[変形例3]
本例では、テキスト区間推定部60が、認識結果NグラムとテキストNグラムとのDPマッチングを行う際に、比較対象とするコンテンツIDを拡張する。
具体的には、テキスト区間推定部60は、図6のステップS13や図10のステップS23の処理を行う際に、現在のコンテンツと同一のコンテンツに含まれるテキストNグラムのみをDPマッチングの対象とするのではなく、他のコンテンツのテキストに含まれる最初の所定数文に相当するテキストNグラムをも、DPマッチングの対象とする。
例えば、現在のコンテンツのコンテンツIDが「1012345」であるとき、テキスト区間推定部60は、コンテンツIDが「1012345」である全てのテキストNグラムと、コンテンツIDが「1012345」以外であって且つNグラムIDが1以上でP以下(Pは適宜設定される正整数であり、例えばP=10)であるようなテキストNグラムとを、認識結果NグラムとのDPマッチングの対象とする。NグラムIDが1以上でP以下という範囲には、当該コンテンツにおける最初のP個のNグラムが含まれる。
【0079】
つまり、本例において、テキスト区間推定部60は、現コンテンツ(現在、認識結果を受信しているコンテンツ)とは異なるコンテンツに対応するテキストデータの、先頭から所定の範囲内(例えば、1番目から10番目)に該当するテキストNグラムを、さらに、認識結果Nグラムとのマッチング処理の対象とする。
【0080】
このように、現コンテンツに加えて、現コンテンツ以外のコンテンツのテキストをもDPマッチングの対象とすることにより、図2に示したように、テキスト記憶部30が複数のファイルを保持しており、個々のファイルがそれぞれのコンテンツに対応しており、コンテンツ毎にコンテンツIDが付与されている状況に対応可能となる。
【0081】
つまり、本例では、現コンテンツ以外のコンテンツにおけるテキスト原稿等の冒頭部分をマッチングの対象とすることができる。つまり、音声認識処理を行っている間に他のコンテンツに移った場合にも、適切にテキストNグラムを用いたテキストの修正を行うことができる。一例としては、あるニュース番組の中で、各々のニュース項目がコンテンツに該当する場合、番組中に別のニュース項目に移っても適切にテキストNグラムを用いたテキストの修正を行うことができる。つまり、ニュース番組でニュース項目の順番が予め決まっていない場合や、状況に応じてニュース項目の順番が動的に変更される場合にも、適切にテキストの修正を行うことができる。
【0082】
[変形例4]
本例は、既に述べた変形例2と変形例3の組み合わせである。
本例では、具体的には、テキスト区間推定部60は、図6のステップS13や図10のステップS23の処理を行う際に、現コンテンツにおける前回の類似度最高のテキストNグラムの位置の近傍と、他のコンテンツのテキストに含まれる最初の所定数文に相当するテキストNグラムとを、DPマッチングの対象とする。
【0083】
例えば、現在のコンテンツのコンテンツIDが「1012345」であって、前回類似度最高であったテキストNグラムのNグラムIDが「20」であるとき、テキスト区間推定部60は、コンテンツIDが「1012345」で且つNグラムIDが(20−J)以上で(20+K)以下であるようなテキストNグラムと、コンテンツIDが「1012345」以外であって且つNグラムIDが1以上でP以下であるようなテキストNグラムとを、認識結果NグラムとのDPマッチングの対象とする。あの、J、K、Pはそれぞれ設定値であり、それらの意味は既に述べた通りである。
本例による処理では、変形例2と変形例3の両方の効果を得ることができる。
【0084】
[変形例5]
本例は、図6のステップS15や図10のステップS25での判定に用いる類似度(認識結果NグラムとテキストNグラムとの間の類似度)の閾値(パラメータ)を変更することを可能とする。この類似度の閾値を低くすると、選択されたテキストNグラムを用いて認識結果Nグラムを修正する場合がより多くなる。この類似度の閾値を高くすると、選択されたテキストNグラムを用いて認識結果Nグラムを修正する場合がより少なくなる。
また、本例では、図10のステップS28での判定に用いる類似度(置換される単語の発音と、置換する単語候補の発音との間の類似度)の閾値(パラメータ)を変更することを可能とする。この類似度の閾値を低くすると、候補の単語を用いて認識結果Nグラムを修正する場合がより多くなる。この類似度の閾値を高くすると、候補の単語を用いて認識結果Nグラムを修正する場合がより少なくなる。
【0085】
なお、本例によるテキスト修正装置は閾値変更手段(不図示)を備え、利用者がキーボードやマウス等を用いて、上記のパラメータの各々を調整できるようにする。閾値変更手段は、利用者の操作に基づいて、類似度の閾値を書き換える。例えば、テキスト(放送番組の台本や、ニュース原稿など)の完成度が高い場合や、放送内におけるアドリブが少ないと予想される場合や、読み上げ音声とテキストの内容がかなり近いことが想定される場合には、利用者がこれらの閾値を低く設定する。これにより、テキスト修正装置は、より積極的に自動修正を実行する。逆に、テキストの信頼性が低い場合などには、利用者がこれらの閾値を高く設定する。これにより、テキスト修正装置が認識結果を自動修正する区間を限定することができる。
このように、本変形例では、利用者が自動修正の度合いを変更することができ、与えられるテキストデータの性質に応じて調整することができる。
【0086】
なお、この変形例5では、認識結果NグラムとテキストNグラムとの間の類似度の閾値を変更可能とし、且つ、置換される単語の発音と置換する単語候補の発音との間の類似度の閾値をも変更可能としている。これに対し、後者(置換される単語の発音と置換する単語候補の発音との間の類似度の閾値)のみを変更可能とするように装置を構成しても良い。
【0087】
[変形例6]
本例では、誤り修正部80は、利用者(オペレータ)に対して修正を実行するか否かを確認し、利用者が肯定的な回答を入力した場合のみに実際に修正を実行し、その他の場合には修正処理を回避する。
図13は、本例における誤り修正部80の詳細な処理手順を示すフローチャートである。このフローチャート全体の処理が、図6のステップS16や図10のステップS29の処理に相当する。
【0088】
このフローチャートのステップS71において、誤り修正部80は、音声認識結果と、それに対応する修正候補を画面に表示する。ここで表示される音声認識結果は、テキストNグラムとのDPマッチング処理等により、誤りであると推定されている音声認識結果である。またこのとき、誤り修正部80は、利用者に対して「本当にこの修正を実行するか否か」を問うためのメッセージを画面に表示する。また、誤り修正部80は、利用者が「YES」か「NO」のいずれかを選択できるよう、ボタンの表示等を行なう。
これに対応して、利用者は、キーボードやマウス等の手段を用いて、「YES」または「NO」を選択できる。
次に、ステップS72において、誤り修正部80は、利用者からの入力が「修正する」ことを表わすものであるか否かを判定する。利用者からの入力が「修正する」ことを示すものである場合(ステップS72:YES)は、次のステップS73に進む。利用者からの入力が「修正しない」ことを示すものである場合(ステップS72:NO)、ステップS73の処理をスキップして、このフローチャート全体の処理を終了する。
そして、ステップS73に進んだ場合、誤り修正部80は、実際に修正を行なう。つまり、認識結果記憶部20を書き換えることにより、修正を行なう。
【0089】
つまり、本例における誤り修正部80は、認識結果Nグラムと、テキスト区間推定部60によって選択されたテキストNグラムに基づく修正候補とを表示し、利用者から当該修正を行うことを表す指示が入力された場合にのみ、前記修正を行う。
【0090】
テキスト修正装置1または2は、予め取得したテキストNグラムを利用して認識結果を自動的に修正することを可能とするものである。そして、本変形例によると、さらに、修正候補を本当に適用してよいかどうかを利用者に確認することができる。つまり、従来技術を用いる場合には利用者は認識結果が正しいかどうかを一字一句目視でチェックして、修正が必要な場合には手作業で修正する必要があったのに対して、本例を用いた場合には、利用者は提示される修正候補を確認し、その候補を適用するか否かをYES/NOの二者択一の形で入力するだけで、テキストの修正を行なうことができる。つまり、放送番組の字幕をリアルタイムに作成したりする場合に、オペレータの負荷や疲労を軽減することが可能となる。
【0091】
[変形例7]
変形例7は、第2の実施形態に適用する変形例である。
発音マッチング部70が、置換される単語の音素列と置換する単語の音素列との間の類似度が閾値より高いか否かに応じて、この置換を行なうかどうかを決定することを、既に述べた(図10のステップS28における判断)。変形例7では、発音マッチング部70が、置換される単語の音素列の長さ(音素数)に応じて異なる閾値を用いることができるようにしている。なお、音素数は、音素列の文字数をカウントすることにより得られる。例えば、単語「河浦」に対応する音素列は「kawaura」であり、その音素数は7である。
【0092】
図14は、音素数と類似度に応じた、置換すべき単語および置換すべきでない単語の分布を示すグラフである。同図において、(a)は一致率(%Corr)を類似度として用いた場合の分布を示し、(b)は一致精度(%Acc)を類似度として用いた場合の分布を示し、(c)は脱落率(%Del)を類似度として用いた場合の分布を示し、(d)は挿入率(%Ins)を類似度として用いた場合の分布を示す。
(a)から(d)までの各グラフにおいて、縦軸は、類似度として用いた数値(それぞれ、一致率、一致精度、脱落率、挿入率)である。また、横軸は、音素数である。
また、これらの図に示す分布は、テキスト修正装置2を用いて、実データに基づいて単語修正候補を求めたときに、各々の候補ごとに、その置換を行なうべきであるか否かを人が判断した結果に基づく。
【0093】
同図(a)が示すように、音素数に応じた所定の閾値よりも一致率が高い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも一致率が低い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
また、同図(b)が示すように、音素数に応じた所定の閾値よりも一致精度が高い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも一致精度が低い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
また、同図(c)が示すように、音素数に応じた所定の閾値よりも脱落率が低い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも脱落率が高い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
また、同図(d)が示すように、音素数に応じた所定の閾値よりも挿入率が低い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも挿入率が高い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
【0094】
つまり、類似度の算出のために用いる数値が一致率、一致精度、脱落率、挿入率のいずれであるかに応じて、置換対象の単語に対応する発音の音素数ごとに、適宜閾値を設定し、音素数と対応付けてそれらの閾値を予めメモリに記憶させておく。そして、発音マッチング部70は、図10のステップS28における判断をする際に、置換対象の単語の音素数をカウントし、その音素数に応じた閾値をメモリから読み出して使用する。
これにより、その置換を行なうべきか否かの判定をより良好に行い、テキスト修正の精度をよりいっそう向上させることができる。
【0095】
[変形例8]
変形例8は、上記の変形例7において、音素数ごとの類似度の閾値を決定する際に、機械学習処理を利用する。
具体的には、テキスト修正装置2を用いて、実データに基づいて単語修正候補を求めたときに、各々の候補ごとに、その置換を行なうべきであるか否かを人が判断し、人による判断結果を含んだデータを、教師データとして予め準備する。この教師データは、図14に示した各サンプルの集合に相当する。
そして、発音マッチング部70は機械学習処理手段を備えている。そして、類似度を算出するために一致率(%Corr)を用いる場合、上記の教師データに基づき、置換OKか置換NGかを判定するときの正解率を評価関数として、機械学習処理手段が機械学習処理を行なうことにより、単語発音の音素数ごとに一致率の最適閾値を求める。なお、機械学習処理手段としては、例えば、既存技術であるSVM(サポート・ベクタ・マシン)などを用いる。
一致率以外を用いて類似度を算出する場合も、上記と同様である。
【0096】
つまり、本例は、置換候補の単語ペアと、単語ペアのうちの一方の単語の発音音素数(音素列の長さ)と、単語ペアに関する発音類似度と、単語ペアが置換可能か否かを表すデータとから、機械学習処理により、単語ペアが置換可能か否かを決定するための発音類似度閾値を求め、得られた発音類似度閾値を設定する学習処理手段を具備している。
そして、発音マッチング部70は、学習処理手段によって設定された発音類似度閾値を用いた判定を行う。
【0097】
このような構成により、人の判断を必要とせず、教師データに基づいて自動的に、単語の音素数ごとに最適な発音類似度閾値を求めることができる。求められた発音類似度閾値を音素数と関連付けて設定値としてメモリに記憶しておく。そして、類似度の判定を行なう際には、音素数に応じて閾値をメモリから読み出して使用する。
【0098】
なお、上述した実施形態およびその変形例における、テキスト修正装置の一部または全部の機能をコンピュータで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0099】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
例えば、上述した実施形態では、認識結果NグラムとテキストNグラムとの間、あるいは単語の発音相互間でのマッチングにDPマッチングを用いて、類似度を算出したが、他のアルゴリズムによりマッチング処理を行うようにしても良い。
【産業上の利用可能性】
【0100】
本発明は、例えば、放送等のためのコンテンツ制作に利用することができる。また、会議録の作成に利用することができる。その他、一般に、音声認識装置による認識結果を修正して精度を高めるためる目的で利用することができる。
【符号の説明】
【0101】
1,2 テキスト修正装置
10 認識結果受信部
20 認識結果記憶部(認識結果単語列データ記憶部)
30 テキスト記憶部
40 テキストNグラム取得部
50 テキストNグラム記憶部(テキスト単語列データ記憶部)
60 テキスト区間推定部
70 発音マッチング部
71 発音辞書データ記憶部
80 誤り修正部
90 テキスト出力部
200 音声認識装置
【技術分野】
【0001】
本発明は、テキスト修正装置およびプログラムに関する。
【背景技術】
【0002】
音声認識結果に基づいてテキストを出力する技術は、様々な分野に応用可能である。例えば、会議等における人の発話を記録したり、自動音声翻訳を行ったり、テレビ放送等のコンテンツの字幕(クローズドキャプション)を生成したりするために、音声認識結果からテキストを出力する技術を応用することができる。
このとき、音声認識処理の精度を100%にすることは困難であるため、音声認識結果を何らかの方法で修正することが求められる。
例えば、特許文献1には、音声認識結果を発話単位で修正するための装置が記載されている。ここで、発話単位とは、発話開始から発話終了までの区間などの単位である。
また、非特許文献1には、音声認識誤りを人手で修正するための装置が記載されている。この装置は、タッチパネルモニタに音声認識結果を提示するものであり、オペレータが提示された認識結果を一字一句目視でチェックし、誤りを発見したらその単語をタッチして選択し、キーボードで修正を行うものである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−089786号公報
【非特許文献】
【0004】
【非特許文献1】本間真一,外5名,ダイレクト方式とリスピーク方式の音声認識を併用したリアルタイム字幕制作システム,映像情報メディア学会誌,2009年,Vol. 63,No. 3, pp. 331-338.
【発明の概要】
【発明が解決しようとする課題】
【0005】
音声認識の性能が年々向上してきているとは言え、現状の技術では、まだ100%の精度を保証できるレベルには達していない。例えばテレビ放送におけるニュースのような、原稿(テキスト)を元にして発話される音声を認識する際には、音声認識装置に予めそのテキストを学習させておけばかなり高い認識精度が得られるが、雑音や言い誤り・言い淀みなどの原因によっても、認識誤りが発生し得る。
【0006】
従って、発話内容を忠実に表すテキストを出力するためには、このような認識誤りを、テキストを元に自動的に修復(修正)することが必要である。また、発話記録や自動翻訳や放送等のための字幕生成の目的では、このような音声認識結果をリアルタイムに修正して出力させることも求められている。
特許文献1に記載された技術では、文単位でのマッチングによって認識結果の修正を行うため、一つの文の発話終了後にしか修正結果を得ることができない。つまり、リアルタイムな修正ができない。
【0007】
本発明の課題は、特に、音声認識結果を用いながらリアルタイムで、言い換えれば所定の短い遅れ時間で、認識結果を修正してテキストとして逐次出力することのできる、テキスト修正装置およびプログラムを提供することである。
【0008】
また、そのような修正を行う際に、非特許文献1に記載されたような、人手を介する修正装置では、すべての認識結果をオペレータが一字一句目視でチェックする必要があったが、このようなオペレータの負荷を軽減することのできるテキスト修正装置およびプログラムを提供することも、課題の一つである。
【課題を解決するための手段】
【0009】
[1]上記の課題を解決するため、本発明の一態様によるテキスト修正装置は、テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部とを具備する。
【0010】
この構成によれば、認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さがN以上になると、文末や発話終了などを待つことなく、テキスト区間推定部は、認識結果単語列データとテキスト単語列データとのマッチングを行って、類似度に基づき、修正候補のテキスト単語列データを選択する。これにより、文末等を待つことなく、誤り修正部は認識結果単語列データを修正し、テキスト出力部は修正された認識結果単語列データに基づいてテキストを出力する。つまり、文の長さや発話単位の長さに依らず、Nの値のみに依る限られた遅延時間で、テキストを逐次修正して出力する。つまり、テキスト修正装置は、高いリアルタイム性によって、音声認識結果を修正し、出力する。
【0011】
[2]また、本発明の一態様では、前記のテキスト修正装置において、前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間における、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間のマッチング処理を行って、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間の発音類似度を算出し、算出された前記発音類似度が、予め設定された発音類似度閾値より高いか否かを判定する発音マッチング部、をさらに具備し、前記誤り修正部は、前記発音類似度が前記発音類似度閾値より高い場合にのみ、実際に前記修正を行う、ものである。
【0012】
この構成によれば、修正候補のテキスト(単語)間の発音の類似度により、その修正候補を用いた修正を実際に行うか否かを決定する。つまり、この構成によれば、認識結果単語列データとテキスト単語列データとの間の単語レベルの類似度が高い場合であっても、修正候補の単語の発音の類似度が低い場合には、その修正候補による修正を回避する。つまり、テキスト修正装置の修正精度がより一層高まる。
【0013】
[3]また、本発明の一態様では、前記のテキスト修正装置において、前記テキスト区間推定部は、修正候補として選択した前記テキスト単語列データの前記テキストデータ内における位置情報を記憶するとともに、前記認識結果単語列データと前記テキスト単語列データのマッチング処理を行う際には前回選択した前記テキスト単語列データの前記位置情報を読み出して、読み出した前記位置情報に基づいて限定された範囲の前記テキスト単語列データを、前記認識結果単語列データとのマッチング処理の対象とする、ものである。
【0014】
この構成により、位置情報に基づき、限られた範囲のテキスト単語列データのみをマッチング対象とする。位置情報は、前回のマッチングの結果得られたものであるので、そのような限られた範囲のテキスト単語列データが、今回のマッチングにおいて類似度の高いテキスト単語列データである可能性は高い。つまり、マッチングの精度を維持しながら、マッチングに要する処理量を削減し、よって処理時間を削減することとなる。
【0015】
[4]また、本発明の一態様では、前記のテキスト修正装置において、前記テキスト単語列データ記憶部は、複数のコンテンツに対応する前記テキストデータに基づいて得られる前記テキスト単語列データを、前記コンテンツを識別する情報と関連付けて記憶するものであり、前記テキスト区間推定部は、現コンテンツとは異なるコンテンツに対応する前記テキストデータの先頭から所定の範囲内に該当する前記テキスト単語列データを、さらに、前記認識結果単語列データとのマッチング処理の対象とする、ものである。
【0016】
この構成により、音声認識結果が現コンテンツから他のコンテンツに移っても、それら他のコンテンツの先頭部分のテキストをマッチングの対象とすることができる。
【0017】
[5]また、本発明の一態様では、前記のテキスト修正装置において、前記テキスト区間推定部は、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さがN以上でない場合であっても、前記認識結果単語列データの長さが所定値M(Mは正整数であり且つ、M<N)以上である場合には、そのときの前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致するか否かを判定し、前記テキスト出力部は、前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致した場合には、前記認識結果単語列データにおける一致部分の少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除する、ものである。
【0018】
この構成により、認識結果単語列データの長さMの部分がテキストデータから得られた単語列と一致する場合には、認識結果単語列データの長さがNになるのを待たずに、一致した単語列の少なくとも一部を出力する。つまり、より一層、遅延時間を短くすることができる。
【0019】
[6]また、本発明の一態様では、前記のテキスト修正装置において、前記誤り修正部は、前記認識結果単語列データと、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正候補とを表示し、当該修正を行うことを表す指示が入力された場合にのみ、前記修正を行う、ものである。
【0020】
[7]また、本発明の一態様では、発音マッチング部を有する態様のテキスト修正装置において、置換候補の単語ペアと、前記単語ペアのうちの一方の単語の発音音素数と、前記単語ペアに関する発音類似度と、前記単語ペアが置換可能か否かを表すデータとから、学習処理により、前記単語ペアが置換可能か否かを決定するための発音類似度閾値を求め、求められた前記発音類似度閾値を設定する学習処理手段、をさらに具備し、前記発音マッチング部は、前記学習処理手段によって設定された前記発音類似度閾値を用いた判定を行う、ものである。
【0021】
この構成により、サンプルに基づき、自動的に適切な発音類似度閾値を設定することができる。
【0022】
[8]また、本発明の一態様では、発音マッチング部を有する態様のテキスト修正装置において、前記発音類似度閾値の設定を書き換える閾値変更手段、をさらに具備する。
【0023】
[9]また、本発明の一態様によるプログラムは、テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部と、を具備するテキスト修正装置としてコンピュータを機能させる。
【発明の効果】
【0024】
本発明によれば、従来よりも短い遅延時間でほぼリアルタイムに、自動的に音声認識結果を修正することができる。
また、本発明の一態様によれば、音声認識結果を修正する装置において、利用者が音声認識結果のテキストを逐一目視する必要がなく、提示された修正候補が適切な習性化否かを判断するだけで、音声認識結果の修正を行える。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態によるテキスト修正装置の機能構成を示すブロック図である。
【図2】同実施形態によるテキスト記憶部が記憶するデータの構造と例を示す概略図である。
【図3】同実施形態によるテキストNグラム記憶部が記憶するデータの構造と例を示す構造図である。
【図4】同実施形態による認識結果記憶部が記憶する認識結果データの構造とデータ例を示す概略図である。
【図5】同実施形態によるテキストNグラム取得部が、与えられたテキストデータを元にテキストNグラムを予め抽出する処理の手順を示すフローチャートである。
【図6】同実施形態によるテキスト修正装置が、音声認識装置から認識結果を受信し、その認識結果を修正する処理の手順を示すフローチャートである。
【図7】同実施形態において利用するDPマッチングの処理を示す概略図である。
【図8】本発明の第2の実施形態によるテキスト修正装置の機能構成を示すブロック図である。
【図9】同実施形態による発音辞書データ記憶部が記憶する単語ごとの発音データの構成を示す概略図である。
【図10】同実施形態によるテキスト修正装置が、音声認識装置から認識結果を受信し、その認識結果を修正する処理の手順を示すフローチャートである。
【図11】同実施形態による処理実行結果の実例を示す概略図である。
【図12】本発明の変形例において、遅延時間を短くするための処理の手順を示すフローチャートである。
【図13】本発明の変形例において、誤り修正部が利用者からの確認入力に基づいて修正を行なう処理の手順を示すフローチャートである。
【図14】音素数と類似度に応じた、置換すべき単語および置換すべきでない単語の分布を示すグラフである。
【発明を実施するための形態】
【0026】
[第1の実施の形態]
次に、図面を参照しながら、本発明の実施形態について説明する。
図1は、第1の実施形態によるテキスト修正装置の機能構成を示すブロック図である。図示するように、テキスト修正装置1は、認識結果受信部10と、認識結果記憶部20(認識結果単語列データ記憶部)と、テキスト記憶部30と、テキストNグラム取得部40と、テキストNグラム記憶部50(テキスト単語列データ記憶部)と、テキスト区間推定部60と、誤り修正部80と、テキスト出力部90とを備えて構成される。また、テキスト修正装置1は、外部の音声認識装置200から、音声認識結果を受信するように構成される。
【0027】
認識結果受信部10は、外部の音声認識装置200から音声認識結果を逐次受信して認識結果記憶部20に書き込む。認識結果受信部10は、音声認識結果を単語単位で受信し、受信した単語を逐次、認識結果記憶部20に書き込む。
認識結果記憶部20は、認識結果受信部10が受信した音声認識結果に基づいて得られる認識結果Nグラム(認識結果単語列データ)を記憶する。
【0028】
テキスト記憶部30は、予め与えられるテキストデータを記憶する。
テキストNグラム取得部40は、テキスト記憶部30に記憶されているテキストデータを元に、テキストNグラム(テキスト単語列データ)を取得し、テキストNグラム記憶部50に書き込む。
テキストNグラム記憶部50は、テキストデータに基づいて得られるテキストNグラムを記憶する。
テキスト区間推定部60は、認識結果記憶部20に書き込まれた認識結果Nグラムの長さ(単語数)が予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、その長さがN以上であると判定されると、テキストNグラム記憶部50に記憶されている複数のテキストNグラムのそれぞれと、長さNの認識結果Nグラムとのマッチング処理を行って、そのテキストNグラムと認識結果Nグラムとの間の類似度を算出し、算出された類似度に基づいて、類似度の高いテキストNグラムを修正候補として選択する。
【0029】
誤り修正部80は、認識結果記憶部20に記憶された認識結果Nグラム内における、テキスト区間推定部60によって修正候補として選択されたテキストNグラムとの間の不一致区間について、選択された修正候補であるテキストNグラムに基づく修正を行う。つまり、誤り修正部80は、認識結果の誤りと推定された部分を、テキストNグラムを用いて修正する。また、そのテキストNグラムは与えられたテキストデータから取得されたものであるので、誤り修正部80は、つまり、テキストデータの中のテキスト区間推定部60によって推定された区間を用いて認識結果を修正する。
テキスト出力部90は、認識結果記憶部20に記憶されている認識結果Nグラムのうちの前方の少なくとも一部分(例えば、単語数が(N/2)に相当する部分)を出力するとともに、その認識結果Nグラムのうち出力した部分を認識結果記憶部20から削除する。
【0030】
なお、音声認識装置200は、既存の技術を用いて、入力される音声を認識する処理を行い、認識結果である単語列を逐次出力するものである。一例として、音声認識装置は、音響特徴量と認識結果に対応する音素の確率的関係を表す音響モデルのデータと、言語の構成要素(文字や単語等)のNグラム(N-gram,エヌグラム)の出現確率を表す言語モデルのデータとに基づき、入力される音声に対応する最尤単語列を算出して出力するように構成される。
【0031】
図2は、テキスト記憶部30が記憶するデータの構造と例を示す概略図である。図示するように、テキスト記憶部30は、複数のテキストファイルを記憶する。各々のテキストファイルは、放送番組の台本から起こしたテキストデータや、放送番組の電子的台本データのテキストや、ニュース番組で使用するニュース原稿のテキストデータなどといったテキストを保持する。各ファイルは、ファイル名などによってコンテンツIDと関連付けられている。このコンテンツIDは、コンテンツを識別する情報である。ここでコンテンツとは、例えば、テレビ放送番組や、ニュース記事や、会議における議題など、意味的なまとまりを持つ単位である。図示する例では、ファイル名そのものがコンテンツIDである。そして、第1のファイルのコンテンツID(ファイル名)は「1012345」であり、そのファイルは「京都市の川村市長は・・・」というニュース原稿のテキストデータを保持する。また、第2のファイルのコンテンツIDは「1012346」であり、そのファイルは「2010年のノーベル化学賞は、・・・」というテキストデータを保持する。
【0032】
図3は、テキストNグラム記憶部50が記憶するデータの構造と例を示す構造図である。図示するように、テキストNグラム記憶部50は記憶するデータは表形式のものであり、コンテンツIDとNグラムIDとテキストNグラムのデータ項目を有する。このコンテンツIDは、テキスト記憶部30が記憶するデータにおけるコンテンツIDに対応する。また、NグラムIDは、あるコンテンツ内におけるテキストNグラムを識別する情報である。図示するデータ例は、コンテンツIDが「1012345」であるコンテンツに関するテキストNグラムを含んでいる。ここでテキストNグラムと呼ぶものは、所定の長さの単語連鎖のことである。そして、NグラムID「1」に対応するテキストNグラムは、「京都市−の−川村−市長」である。また、NグラムID「2」に対応するテキストNグラムは、「の−川村−市長−は」である。NグラムIDが「3」以上の場合も同様である。なお、テキストNグラム記憶部50は、単語のNグラムを記憶する。また、ここではNグラムの長さを4としている。そして、上記のテキストNグラム内に便宜上含まれている「−」(ハイフン)は、Nグラム内における単語間の区切りを表すためのものである。
【0033】
図4は、認識結果記憶部20が記憶する認識結果データの構造とデータ例を示す概略図である。図示する認識結果データの例は「ニュース−です−京都市−の−河浦−・・・」である。ここで、「−」(ハイフン)は、認識結果データ内における単語の区切りを表すために便宜上挿入されているものである。なお、認識結果記憶部20は、FIFO(First-in, First-out)式に、単語列の前から順に削除(つまり先に書き込まれた単語から先に削除)できるように構成されている。
【0034】
次に、テキスト修正装置1の動作について説明する。
図5は、テキストNグラム取得部40が、テキスト記憶部30に記憶されているテキストが含む情報を予め単語Nグラムの形式でテキストNグラム記憶部50に格納するための処理手順を示すフローチャートである。なお、認識結果受信部10が音声認識装置200から音声認識結果の受信を開始する前に、テキストNグラム取得部40はこのフローチャートに示す処理を行う。以下、フローチャートに沿って説明する。
【0035】
まずステップS1で、テキストNグラム取得部40は、テキスト記憶部30からテキストを読み込む。このテキストは、前述の通り、放送番組の台本や、ニュース番組の原稿であり、発話の情報源となるテキストである。
次にステップS2で、テキストNグラム取得部40は、読み込んだテキストに対して形態素解析処理を行う。そして、その結果、単語単位に分割されたテキストを得る。
【0036】
次にステップS3で、テキストNグラム取得部40は、ステップS2で単語単位に分割されたテキストを元に、単語Nグラムを取得する。ここで、単語Nグラムの長さは、予め設定されており、例えば長さ4とする。具体的には、テキストNグラム取得部40は、当該テキストに関して、第1単語から始まるNグラム、第2単語から始まるNグラム(以下同様)を順次取得する。
次にステップS4で、テキストNグラム取得部40は、ステップS3で得られたNグラムの各々にNグラムIDを付与する。NグラムIDとしては、例えば、1から始まる整数値を順次用いる。そして、テキストNグラム取得部40は、各テキストNグラムの出現順に、NグラムIDを付与している。つまりNグラムIDは、コンテンツごとに、元のテキストデータにおけるそのテキストNグラムの位置を表している。
次にステップS5で、テキストNグラム取得部40は、NグラムIDと単語Nグラムとを関連付けて、テキストNグラム記憶部50に書き込む。
【0037】
なお、テキスト記憶部30が複数のコンテンツのテキストを記憶する場合には、テキストNグラム取得部40は、それらのコンテンツの各々について、上述したステップS1からS5までの処理を行う。
【0038】
図6は、テキスト修正装置1が、音声認識装置200から認識結果を受信し、その認識結果を修正する処理の手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
まずステップS11において、認識結果受信部10が、音声認識装置200から認識結果のデータを受信する。音声認識装置200は、前述した最尤単語列を逐次出力する。認識結果受信部10は、単語単位で、あるいは所定数のまとまった単語の単位で、その単語列のデータを受信する。そして、認識結果受信部10は、受信したデータを逐次、認識結果記憶部20に書き込む。
次にステップS12において、テキスト区間推定部60は、認識結果記憶部20に所定の長さの単語列(N単語)が既に格納されているか否かを判断する。ここで所定の長さNとは、予め設定された長さであり、例えばN=4である。なお、ここで認識結果記憶部20から取り出す単語の長さと、テキストNグラム取得部40が取得した単語Nグラムの長さとは、等しい。具体的には、認識結果記憶部20は前述の通りFIFOとして構成されているので、テキスト区間推定部60は、そのFIFOの先頭からの単語数が所定の長さ以上であるか否かを判断する。そして、所定の長さの単語列が既に格納されている場合(ステップS12:YES)には次のステップS13に進み、単語列の長さがまだ所定の長さに達していない場合(ステップS12:NO)にはさらに音声認識結果を受信するためにステップS11に戻る。
【0039】
次にステップS13に進んだ場合、テキスト区間推定部60は、認識結果記憶部20から先頭のN単語の列を読み出す。なお、この読み出された単語列を、便宜上、認識結果Nグラムと呼ぶ。そして、テキスト区間推定部60は、この認識結果Nグラムと、テキストNグラム記憶部50に記憶されている当該コンテンツのテキストNグラムとの間で、DP(Dynamic Programming,動的計画法)マッチングの処理を行う。テキスト区間推定部60は、このDPマッチングの処理により、認識結果Nグラムと各々のテキストNグラムとの間の類似度を算出する。具体的には、テキスト区間推定部60は、マッチング対象の両Nグラムに基づき、一致精度、一致率、脱落率、挿入率、編集距離などといった数値のいずれかを算出し、これに基づき類似度として用いる。なお、一致精度または一致率を用いる場合には、これらの数値が大きいほど、類似度が高い(より類似している)ことを表す。また、脱落率や挿入率や編集距離を用いる場合には、これらの数値が小さいほど、類似度が高い(より類似している)ことを表す。なお、DPマッチングの処理自体については、後で説明する。
【0040】
なお、複数のコンテンツIDに相当するテキストNグラムがテキストNグラム記憶部50に記憶されている場合、テキスト区間推定部60がマッチングの対象とするテキストNグラムのコンテンツIDは、適宜与えられる。例えば、利用者が選択したコンテンツのIDをテキスト区間推定部60に渡すようにしても良いし、前回までのマッチングにおいて類似度の高いテキストNグラムが属するコンテンツを現在のコンテンツと推定するようにしても良い。
【0041】
次にステップS14において、テキスト区間推定部60は、ステップS13で求めた類似度に基づき、ひとつのテキストNグラムを修正候補単語列として選択しメモリに一時的に格納する。ここでテキスト区間推定部60が選択するテキストNグラムは、現在対象としている認識結果Nグラムとの間で最も類似度の高いテキストNグラムである。
【0042】
次にステップS15において、テキスト区間推定部60が、ステップS14において選択されメモリに格納されたテキストNグラムについて、類似度が所定の閾値よりも高いか否かを判定する。なお、この類似度に関する閾値は、予め設定される。このテキストNグラムと認識結果Nグラムとの間の類似度が所定の閾値よりも高い場合(ステップS15:YES)には、次のステップS16に進む。また、そうでない場合(この類似度が低い場合,ステップS15:NO)にはステップS17に進む。
【0043】
次にステップS16に進んだ場合、誤り修正部80は、メモリに格納されたテキストNグラムを用いて、認識結果Nグラムの修正を行なう。具体的には、誤り修正部80は、ステップS13におけるDPマッチング処理の結果に基づき、認識結果Nグラムと選択されたテキストNグラムとの間の不一致区間を抽出し、不一致区間において置換と判定された単語の部分を修正する。例えば、認識結果Nグラムが「京都市−の−河浦−市長」で、選択されたテキストNグラムが「京都市−の−川村−市長」の場合、DPマッチング処理においては「河浦」と「川村」が対応し、これらの両単語は置換関係である。従って、誤り修正部80は認識結果記憶部20に記憶されている認識結果Nグラム内の「河浦」を「川村」に変更する修正を行なう。
【0044】
ステップS17において、テキスト出力部90が、認識結果記憶部20に記憶されている認識結果Nグラムのうち、前の半分の単語列に相当するテキストを出力する。例えば、単語列の長さNが4の場合、テキスト出力部90は、前半の2単語に相当する分を出力する。つまり、ステップS16において誤り修正部80がその部分を修正している場合には、修正済みのテキストがテキスト出力部90によって出力される。そして、テキスト出力部90は、出力済みの単語列を認識結果記憶部20から削除する。この処理は、テキスト出力部90が全体の単語長の半分だけ認識結果Nグラムを前にシフトすることと同等である。ステップS17の処理が終わると、さらに音声認識結果を受信するためにステップS11に戻る。
【0045】
なお、図6に示した処理では、ステップS13において認識結果Nグラムとのマッチングの対象となり得る全てのテキストNグラムについて類似度を算出してから、ステップS14において類似度が最高のテキストNグラムを選択して修正候補単語列としてメモリに格納していた。
この代わりに、第1の代替処理として、ステップS13において認識結果Nグラムと完全に一致するテキストNグラムが見つかった場合に、この認識結果を正解とみなして、直ちにステップS17の処理に移る手順としても良い。この場合、ステップS17では、Nグラム長の半分の単語列を出力する。このようにすることにより、認識結果NグラムとテキストNグラムとの間のDPマッチングの処理量を減らすことができ、全体の処理時間を短縮することができる。
またさらに、第2の代替処理として、ステップS13において認識結果Nグラムと完全に一致するテキストNグラムが見つかった場合に、この認識結果を正解とみなして、直ちに、当該認識結果Nグラムに相当するテキストの全体を出力するとともに、認識結果記憶部20から当該認識結果Nグラムの全体を削除して、ステップS11の処理に戻るようにしても良い。これにより全体の処理時間をさらに短縮することができる。
【0046】
ここで、上記の手順において用いたDPマッチングの処理について、説明する。
単語列や文字列や音素列などは、それぞれ1次元のパターンである。このとき、単語列の要素は単語であり、文字列の要素は文字であり、音素列の要素は音素である。ある1次元パターンから一部の要素を脱落させたり、ある1次元パターンに一部の要素を挿入したり、ある1次元パターンにおける一部の要素を他の要素で置換したりすると、別のパターンが得られる。このとき、元のパターンと、新たに得られたパターンとの間には、共通の部分列が存在する。共通の部分列の割合が大きいほど、概ね、両者間の類似度が高いと言える。DPマッチングは、これらのような複数の1次元パターンについて、効率よく共通部分列をマッチングさせ、パターン間の類似度を求める手法である。DPマッチングは、動的計画法を用いて2つのパターンの要素間の対応付けを行う。なお、DPマッチングの処理自体は、既存の技術である。
【0047】
図7は、本実施形態におけるDPマッチング処理の概略を示す図である。この図における「パターン」は、本実施形態における単語Nグラムに相当する。図示する例は長さN=6の場合である。つまり、例えば「abcdef」というパターンにおいて、「a」、「b」、・・・、「f」の各々は単語に相当する。そして、このパターン「abcdef」は、長さ6の単語Nグラムに相当する。そして、同図におけるリファレンスパターンが認識結果から得られる認識結果Nグラムに相当し、パターンA〜FがテキストNグラム記憶部に記憶されるとともにマッチングの対象となるテキストNグラムの各々に相当する。
【0048】
同図において、リファレンスパターン「abcdef」は、パターンA「abcdef」と完全に一致する。よって、ヒット数H=6である。置換数S、脱落数D、挿入数Iは、すべて0である。
また、パターンB「abzdef」は、リファレンスパターンにおける「c」を「z」で置換したパターンであり、その他の「ab」および「def」は一致している。よって、置換数S=1、ヒット数H=5である。脱落数Dと挿入数Iはともに0である。
また、パターンC「abdef」は、リファレンスパターンにおける「c」が脱落しており、その他の「ab」および「def」は一致している。よって、脱落数D=1、ヒット数H=5である。置換数Sと挿入数Iはともに0である。
【0049】
また、パターンD「abczdef」は、リファレンスパターン内に「z」が挿入されたパターンであり、その他の「abc」および「def」は一致している。よって、挿入数I=1、ヒット数H=6である。置換数Sと脱落数Dはともに0である。
また、パターンE「acdzef」は、リファレンスパターンから「b」が脱落し、「z」が挿入されているパターンである。そして、「a」と「cd」と「ef」は一致している。よって、脱落数D=1、挿入数I=1、ヒット数H=5である。また、置換数S=0である。
また、パターンF「abzdf」は、リファレンスパターンにおける「c」を「z」で置換し、「e」が脱落したパターンである。そして、「ab」と「d」と「f」は一致している。よって、置換数S=1、脱落数D=1、ヒット数H=4である。また、挿入数I=0である。
【0050】
そして、パターン間の一致率、一致精度、脱落率、挿入率はそれぞれ、下記の数式(1)〜(4)を用いて算出される。なお、これらの計算結果の値は、パーセントによるものである。
一致率:%Corr=(H/N)×100=((N−S−D)/N)×100・・・(1)
一致精度:%Acc=((H−I)/N)×100=((N−S−D−I)/N)×100・・・(2)
脱落率:%Del=(D/N)×100・・・(3)
挿入率:%Ins=(I/N)×100・・・(4)
【0051】
また、パターン間の編集距離は、一方のパターンから、挿入、削除、置換といった操作を行なうことによって、他方のパターンに編集する際に、必要とされる操作の最小回数である。
【0052】
図6に示した処理手順では、テキスト修正装置1は、認識結果を受信しながら、テキストNグラムとのDPマッチング、類似度の高いテキストNグラムの選択、そして修正が必要な場合には修正、という処理を繰り返す。
一方で、このままの処理では、音声認識結果が終了した場合や、長い無音区間(ポーズ)が挿入された場合に、即ち、バッファにN単語格納する前に認識結果の逐次受信が停止した場合に、最後まで修正結果の出力がなされないまま、待ち状態となってしまうケース(つまり、ステップS12の判定結果が常に「NO」となるケース)が生じ得る。これを回避するため、実際の処理手順では、所定時間(予め設定されたT秒間。一例としてT=3など。)音声認識装置200からの音声認識結果が到着しない状況が検知された直後に、下記の処理を実行する。
【0053】
即ち、認識結果受信部10が受信した音声認識結果として、長さm(0<m<N)の単語列が認識結果記憶部20に残っている状態のまま、T秒経過しても次の単語が受信されない(つまり、ポーズを検出した)ならば、その時点で、予め退避させておいたその直前の長さ(N−m)の単語列を補完して、長さNの単語列を生成する。その後、図6のステップS13からの処理を実行する。但し、このポーズが検出された状態でステップS17の処理を行う場合には、前半の(N/2)単語を出力するのではなく、(N−m)単語を補完する前の未出力のm単語に相当する部分のテキストを出力するようにする。
このような処理により、認識途中の無音区間において速やかに認識結果を出力することができ、また、認識結果のデータが全て終了したときにも正しく全体の処理を終了することができる。
【0054】
[第2の実施の形態]
次に、本発明の第2の実施形態について説明する。なお、既に述べた実施形態と共通する事項については説明を省略し、本実施形態特有の事項についてのみ説明する。
図8は、第2の実施形態によるテキスト修正装置の機能構成を示すブロック図である。図示するように、テキスト修正装置2は、認識結果受信部10と、認識結果記憶部20と、テキスト記憶部30と、テキストNグラム取得部40と、テキストNグラム記憶部50と、テキスト区間推定部60と、誤り修正部80と、テキスト出力部90とを備える。これらの各部の構成および機能は、第1実施形態におけるそれらと同様である。
【0055】
また、テキスト修正装置2は、さらに、発音マッチング部70と発音辞書データ記憶部71とを備える。
この発音マッチング部70は、認識結果記憶部20に記憶された認識結果Nグラム内における、テキスト区間推定部60によって修正候補として選択されたテキストNグラムとの間の不一致区間における、認識結果Nグラムの側の発音とそのテキストNグラム側の発音との間のマッチング処理を行って、両者間の発音類似度を算出し、算出された発音類似度が予め設定された発音類似度閾値より高いか否かを判定する。なお、発音マッチング部70は、音素ラベルの列(音素列)同士のマッチング処理を行うことによって、上記の発音と発音との間のマッチング処理を行う。
また、発音辞書データ記憶部71は、単語と発音との対応関係を保持するデータである。このようなデータは、既存技術による音声認識装置が備えているものであり、本実施形態においても、音声認識装置200が備えている発音辞書データをコピーすることによって予め発音辞書データ記憶部71に発音辞書を書き込んでおく。
【0056】
なお、本実施形態における誤り修正部80は、発音マッチング部70によって算出された発音類似度が設定されている発音類似度閾値より高い場合にのみ、実際に修正を行う。誤り修正部80は、その他の場合(算出された発音類似度が低い場合)には、単語置換処理を回避する。
【0057】
図9は、発音辞書データ記憶部71が記憶するデータの構成を示す概略図である。図示するように、発音辞書データ記憶部71は、単語と発音(音素列)の各項目を有する表形式のデータである。そして、各行が、単語と発音の対応関係を保持する。例えば、単語「会見」に対応する発音(音素列)は「kaiken」である。その他の単語についても同様である。
【0058】
次に、テキスト修正装置2による処理の手順について説明する。なお、テキストNグラム取得部40が予めテキストNグラムを抽出してテキストNグラム記憶部50に保存しておく点は、第1実施形態と同様である。
図10は、テキストNグラムが既にテキストNグラム記憶部50に書き込まれている状態での、テキスト修正装置2による処理の手順を示すフローチャートである。
ステップS21からS25までの処理は、図6で説明したステップS11からS15までの処理と、それぞれ、同様である。
【0059】
ステップS25において、類似度が最高であるテキストNグラムの類似度が所定の閾値よりも高い場合(ステップS25:YES)にはステップS26に進む。そして、ステップS26においては、発音マッチング部70が、修正候補単語列の発音と、対応する認識結果Nグラムの発音を、発音辞書データ記憶部71から読み出す。ここで修正候補単語列は、ステップS24で選択されたテキストNグラム(認識結果Nグラムとの間の類似度が最大のもの)が、DPマッチングの結果、認識結果Nグラムの中の一部の単語の置換であると判定されたときの、置換対象の単語の列である。発音マッチング部70は、認識結果Nグラムの中で置き換えられる可能性のある単語の音素列と、その単語を置き換える可能性のある単語の音素列を、それぞれ、発音辞書データ記憶部71から取得する。一例では、「京都市−の−河浦−市長」という認識結果Nグラムと「京都市−の−川村−市長」というテキストNグラムとをDPマッチングしたとき、「河浦」は「川村」の置換と判定される。この場合、発音マッチング部70は、単語「河浦」に対応する音素列「kawaura」と、「川村」に対応する音素列「kawamura」とを、発音辞書データ記憶部71から取得する。
【0060】
次にステップS27において、発音マッチング部70は、置換候補の単語に対応する発音(音素列)同士のDPマッチング処理を実行する。このDPマッチング処理は、音素単位でのマッチングを行う。その結果、発音マッチング部70は、両音素列間の類似度を算出する。なお、音素列間の類似度は、音素レベルでの一致率(式(1))や、一致精度(式(2))や、脱落率(式(3))や、挿入率(式(4))や、編集距離に基づいて算出される。
次にステップS28において、発音マッチング部70は、ステップS27のDPマッチング処理によって算出された音素列間の類似度が予め設定された所定の閾値よりも高いか否かを判定する。類似度が高い場合(ステップS28:YES)には次のステップS29へ進む。類似度が低い場合(ステップS28:NO)には、ステップS30へ飛ぶ。
【0061】
ステップS29へ進んだ場合、誤り修正部80が認識結果Nグラムの単語を置換することにより、修正を行う。この処理の詳細は、図6のステップS16と同様である。
次にステップS30では、テキスト出力部90が、認識結果Nグラムの前半を出力するとともに、認識結果Nグラムを前にシフトする処理を行う。この処理の詳細は、図6のステップS17と同様である。
【0062】
なお、図10に示した処理では、ステップS23において認識結果Nグラムとのマッチングの対象となり得る全てのテキストNグラムについて類似度を算出してから、ステップS24において類似度が最高のテキストNグラムを選択して修正候補単語列としてメモリに格納していた。この代わりに、ステップS23において認識結果Nグラムと完全に一致するテキストNグラムが見つかった場合に、この認識結果を正解とみなして、直ちにステップS30の処理に移る手順としても良い。この場合、ステップS30では、Nグラム長の半分の単語列を出力する。このようにすることにより、認識結果NグラムとテキストNグラムとの間のDPマッチングの処理量を減らすことができ、全体の処理時間を短縮することができる。
【0063】
次に、具体的なデータに基づく処理の例を説明する。図11は、テキスト修正装置2が図10に示した処理を実行したときの認識結果Nグラムと、類似度最大で選択されるテキストNグラムと、単語の置換判定の関係を示す概略図である。以下、この図に沿って順次説明する。なおここで、テキスト修正装置2が処理対象とするテキストNグラムは図3に示した通りであり、音声認識装置200から渡される認識結果は図4に示した通りである。また、この例では、単語Nグラムの長さNを4としている。
【0064】
認識結果受信部10は、図4に示した認識結果「ニュース−です−京都市−の−河浦−市長−は−会見−で−次−の−ように−述べ−ました・・・」を、単語毎に、あるいはいくつかの単語をひとまとまりとして、順次、音声認識装置200から受信する(図10のステップS21)。
認識結果受信部10は、上記の単語列を逐次受信した場合、これを順次、認識結果記憶部20のバッファ(FIFO)に書き込む。そして、4単語(N単語)分蓄積された段階で、その4単語を認識結果Nグラム(4−グラム)として取り扱う。
【0065】
<図11における処理回数「1回目」>
つまり最初の認識結果Nグラムは、「ニュース−です−京都市−の」である。
テキスト区間推定部60は、図3に示した、コンテンツIDが「1012345」であるテキストNグラムのそれぞれと、認識結果Nグラム「ニュース−です−京都市−の」とのDPマッチングを行い、類似度を算出する(ステップS23)。しかし、テキストNグラムの中で類似度が最高のものについても、その類似度は設定された閾値を超えるものではない。よってテキスト出力部90は、認識結果Nグラムの前半の2単語(4単語の半分)である「ニュース−です」を出力する。さらにテキスト出力部90は、認識結果Nグラムの後半の「京都市−の」をシフトして前半に移す(ステップS30)。
【0066】
<図11における処理回数「2回目」>
従って、次の認識結果Nグラムは、「京都市−の−河浦−市長」となる。
テキスト区間推定部60は、同様に、コンテンツIDが「1012345」であるテキストNグラムのそれぞれと、認識結果Nグラム「京都市−の−河浦−市長」とのDPマッチングを行い、類似度を算出する(ステップS23)。その結果、NグラムIDが「1」である「京都市−の−川村−市長」が、類似度最高のテキストNグラムとして判定される(ステップS24)。
そして、選択されたテキストNグラム「京都市−の−川村−市長」は、認識結果Nグラムとの類似度が閾値より高いと判定される(ステップS25)。
【0067】
また、既に行ったDPマッチングにおいてテキストNグラム中の「川村」は、認識結果Nグラム中の「河浦」の置換であると判定されたため、発音マッチング部70は、単語「川村」および単語「河浦」のそれぞれの発音(音素列)を発音辞書データ記憶部71から取得する(ステップS26)。そして、発音マッチング部70は、取得した音素列「kawamura」と「kawaura」との間で、音素レベルのDPマッチングを行い、両音素列間の類似度を算出する(ステップS27)。そして、発音マッチング部70は、算出された音素列間の類似度が所定の閾値よりも高いか否かを判定する(ステップS28)。
そして、音素列間の類似度が閾値よりも高いため、誤り修正部80は、認識結果Nグラム中の「河浦」を、テキストNグラム中の「川村」で置き換える修正を行う(ステップS29)。
テキスト出力部90は、認識結果Nグラムの前半の2単語である「京都市−の」を出力する。さらにテキスト出力部90は、認識結果Nグラムの後半の「川村−市長」(既に修正済み)をシフトして前半に移す(ステップS30)。
【0068】
<図11における処理回数「3回目」>
次の認識結果Nグラムは、「川村−市長−は−会見」である。これは、前回処理で「河浦」が「川村」に既に修正されているためである。この認識結果Nグラムに対して類似度最大で選択されるテキストNグラムは、「川村−市長−は−記者」である。ここで、置換候補となるのは、認識結果Nグラム側の「会見」とテキストNグラム側の「記者」である。そして、発音マッチング部70が両者の発音の類似度を算出するが、類似度は閾値より高くないため、この置換(修正)は行われない。よって「川村−市長」が出力され、「は−記者」がシフトされる。
【0069】
以下同様に、テキスト修正装置1は、音声認識装置200から受信する認識結果に含まれる単語を順次使用しながら、認識結果Nグラムを特定し、テキストNグラムとのDPマッチングを行い、類似度に応じて、置換候補の単語を特定し、それらの単語の発音同士の類似度が高い場合にその修正を行い、認識結果Nグラムの前半を出力し、認識結果Nグラムの後半を前にシフトする、という一連の処理を繰り返し実行する。
【0070】
次に、上記実施形態(第1および第2の実施形態)の複数の変形例について説明する。
【0071】
[変形例1]
前述した処理手順(図6および図10)では、無音区間(ポーズ)の直前を除いて、N単語を受信するのを待ってから以後の処理を行っていた(図6のステップS12および図10のステップS22での判定)。しかしながら、N単語の到着を常に待ってからその後の処理を行うと、修正結果の出力は、N単語を受信する時間分だけ常に遅延してしまう。この遅延時間を極力短くするため、この変形例1では、次のようにする。
即ち、長さNの単語Nグラムを予めテキストNグラム記憶部50に書き込んでおくとともに、テキストNグラム取得部40による図5と同様の処理により、長さM(0<M<N)のテキストNグラムを予め取得しておく。そして、長さMのテキストNグラムも、テキストNグラム記憶部50に予め書き込んでおく。
そして、長さNの単語列が既に受信されていない場合も、認識結果Nグラムのうちの先頭のM単語と、上記の長さMのテキストNグラムとの間で一致するものがある場合には、バッファの先頭のL単語(0<L≦M)のみを出力し、残りの単語をシフトする処理を行う。
【0072】
図12は、この変形例1に特有の処理手順を示すフローチャートである。図12におけるステップS41、S42、S43、S60はそれぞれ、図6におけるステップS11、S12、S13、S17に対応し、また図10におけるステップS21、S22、S23、S30に対応する。
ステップS42において、認識結果記憶部20のFIFOにまだN単語が格納されていないとき(ステップS42:NO)には、ステップS51に進む。
そして、ステップS51では、テキスト区間推定部60が、認識結果記憶部20にM単語以上が格納されている場合に、先頭のM単語が、当該コンテンツIDに該当する長さMのテキストNグラムのいずれかと一致するか否かを判定する。そして、一致する場合(ステップS51:YES)にはステップS52に進む。一致しない場合(ステップS51:NO)にはそのままステップS41に戻る。
ステップS52に進んだ場合には、テキスト出力部90が、認識結果記憶部20のFIFOに格納されている先頭のL単語のみを出力し、残りの単語列をL単語分、前にシフトする。そして、ステップS52の処理が終了すると、ステップS41に戻る。
なお、ステップS43に進んだ場合、ステップS43におけるDPマッチングを実行した後の処理は、図6や図10の場合と同様である。
【0073】
つまり、本例におけるテキスト区間推定部60は、認識結果記憶部20に書き込まれた認識結果Nグラムの長さがN以上でない場合であっても、認識結果Nグラムの長さが所定値M(Mは正整数であり且つ、M<N)以上である場合には、そのときの認識結果Nグラムの先頭の長さMの部分が、テキストデータから予め得られた長さMの単語列のいずれかと一致するか否かを判定する。
そして、本例におけるテキスト出力部90は、認識結果Nグラムのうちの先頭の長さMの部分が、テキストデータから予め得られた長さMの単語列のいずれかと一致した場合には、認識結果Nグラムにおける一致部分の少なくとも一部分(例えば、1単語分など)を出力するとともに、認識結果Nグラムのうち出力した部分を認識結果記憶部20から削除する。
【0074】
なお、NとMとLの関係は、0<L≦M<Nであるが、NとMとLの組み合わせとして好適なものは、例えば、N=20のとき、M=4、L=1とすることである。
なお、発明者が行った実証実験によれば、M≧4のときに、良い結果が得られることがわかっている。また、L=Mとしても良いが、Mと比べてLを小さくするほうが、出力されるテキストの修正精度が上がり、良い結果が得られる。特に、L=1とするときに良い結果が得られることが、発明者が行った実証実験によってわかっている。
【0075】
[変形例2]
この変形例においては、テキスト区間推定部60が行うDPマッチングの処理に特徴がある。前提として、既に述べたように、テキストNグラム取得部40がテキストNグラムを取得してテキストNグラム記憶部50に書き込む際に、当該コンテンツ内においてテキストの前から順に1、2、3、・・・というNグラムIDを付与している。図3に示したデータ例では、そのように、テキストの前方ほどNグラムIDの数値が小さく、テキストの後方ほどNグラムIDの数値が大きくなっている。
そして、テキスト区間推定部60は、図6のステップS14や図10のステップS24において、認識結果Nグラムとの類似度が最大のテキストNグラムを選択した際に、選択されたテキストNグラムのNグラムID(位置情報)をメモリに保存しておく。
そして、テキスト区間推定部60は、次回、図6のステップS13や図10のステップS23の処理を行う際には、前回保存したNグラムIDをメモリから読み出し、そのNグラムIDを基準として、−Jから+Kまでの位置の範囲内のNグラムIDを有するテキストNグラムのみを対象として、DPマッチングの処理を行う。
なお、JおよびKは、適宜設定される正整数であり、N=20のとき、一例としては、J=150、K=100などとする。
【0076】
つまり、本例では、テキスト区間推定部60は、修正候補として選択したテキストNグラムの元のテキストデータ内における位置情報をメモリに記憶するとともに、認識結果NグラムとテキストNグラムとの間のマッチング処理を行う際には前回選択したテキストNグラムの位置情報をメモリから読み出して、読み出した位置情報に基づいて限定された範囲(例えば前回位置から前方へ所定単語数の位置から、後方へ所定単語数の位置までの範囲)のテキストNグラムのみを、現在の認識結果Nグラムとのマッチング処理の対象とする。
【0077】
一般にDPマッチングに要する計算量は膨大である。本例では、前回のDPマッチングの結果に基づき、テキスト全体におけるその近傍に、次の回で類似度最大となるテキストNグラムが来る可能性が高いことを利用することによって、マッチング対象とするテキストNグラムを予め絞り込んでいる。これにより、全てのテキストNグラムをDPマッチングの対象とする場合に比べて、処理に必要な計算量を大幅に削減することができる。
【0078】
[変形例3]
本例では、テキスト区間推定部60が、認識結果NグラムとテキストNグラムとのDPマッチングを行う際に、比較対象とするコンテンツIDを拡張する。
具体的には、テキスト区間推定部60は、図6のステップS13や図10のステップS23の処理を行う際に、現在のコンテンツと同一のコンテンツに含まれるテキストNグラムのみをDPマッチングの対象とするのではなく、他のコンテンツのテキストに含まれる最初の所定数文に相当するテキストNグラムをも、DPマッチングの対象とする。
例えば、現在のコンテンツのコンテンツIDが「1012345」であるとき、テキスト区間推定部60は、コンテンツIDが「1012345」である全てのテキストNグラムと、コンテンツIDが「1012345」以外であって且つNグラムIDが1以上でP以下(Pは適宜設定される正整数であり、例えばP=10)であるようなテキストNグラムとを、認識結果NグラムとのDPマッチングの対象とする。NグラムIDが1以上でP以下という範囲には、当該コンテンツにおける最初のP個のNグラムが含まれる。
【0079】
つまり、本例において、テキスト区間推定部60は、現コンテンツ(現在、認識結果を受信しているコンテンツ)とは異なるコンテンツに対応するテキストデータの、先頭から所定の範囲内(例えば、1番目から10番目)に該当するテキストNグラムを、さらに、認識結果Nグラムとのマッチング処理の対象とする。
【0080】
このように、現コンテンツに加えて、現コンテンツ以外のコンテンツのテキストをもDPマッチングの対象とすることにより、図2に示したように、テキスト記憶部30が複数のファイルを保持しており、個々のファイルがそれぞれのコンテンツに対応しており、コンテンツ毎にコンテンツIDが付与されている状況に対応可能となる。
【0081】
つまり、本例では、現コンテンツ以外のコンテンツにおけるテキスト原稿等の冒頭部分をマッチングの対象とすることができる。つまり、音声認識処理を行っている間に他のコンテンツに移った場合にも、適切にテキストNグラムを用いたテキストの修正を行うことができる。一例としては、あるニュース番組の中で、各々のニュース項目がコンテンツに該当する場合、番組中に別のニュース項目に移っても適切にテキストNグラムを用いたテキストの修正を行うことができる。つまり、ニュース番組でニュース項目の順番が予め決まっていない場合や、状況に応じてニュース項目の順番が動的に変更される場合にも、適切にテキストの修正を行うことができる。
【0082】
[変形例4]
本例は、既に述べた変形例2と変形例3の組み合わせである。
本例では、具体的には、テキスト区間推定部60は、図6のステップS13や図10のステップS23の処理を行う際に、現コンテンツにおける前回の類似度最高のテキストNグラムの位置の近傍と、他のコンテンツのテキストに含まれる最初の所定数文に相当するテキストNグラムとを、DPマッチングの対象とする。
【0083】
例えば、現在のコンテンツのコンテンツIDが「1012345」であって、前回類似度最高であったテキストNグラムのNグラムIDが「20」であるとき、テキスト区間推定部60は、コンテンツIDが「1012345」で且つNグラムIDが(20−J)以上で(20+K)以下であるようなテキストNグラムと、コンテンツIDが「1012345」以外であって且つNグラムIDが1以上でP以下であるようなテキストNグラムとを、認識結果NグラムとのDPマッチングの対象とする。あの、J、K、Pはそれぞれ設定値であり、それらの意味は既に述べた通りである。
本例による処理では、変形例2と変形例3の両方の効果を得ることができる。
【0084】
[変形例5]
本例は、図6のステップS15や図10のステップS25での判定に用いる類似度(認識結果NグラムとテキストNグラムとの間の類似度)の閾値(パラメータ)を変更することを可能とする。この類似度の閾値を低くすると、選択されたテキストNグラムを用いて認識結果Nグラムを修正する場合がより多くなる。この類似度の閾値を高くすると、選択されたテキストNグラムを用いて認識結果Nグラムを修正する場合がより少なくなる。
また、本例では、図10のステップS28での判定に用いる類似度(置換される単語の発音と、置換する単語候補の発音との間の類似度)の閾値(パラメータ)を変更することを可能とする。この類似度の閾値を低くすると、候補の単語を用いて認識結果Nグラムを修正する場合がより多くなる。この類似度の閾値を高くすると、候補の単語を用いて認識結果Nグラムを修正する場合がより少なくなる。
【0085】
なお、本例によるテキスト修正装置は閾値変更手段(不図示)を備え、利用者がキーボードやマウス等を用いて、上記のパラメータの各々を調整できるようにする。閾値変更手段は、利用者の操作に基づいて、類似度の閾値を書き換える。例えば、テキスト(放送番組の台本や、ニュース原稿など)の完成度が高い場合や、放送内におけるアドリブが少ないと予想される場合や、読み上げ音声とテキストの内容がかなり近いことが想定される場合には、利用者がこれらの閾値を低く設定する。これにより、テキスト修正装置は、より積極的に自動修正を実行する。逆に、テキストの信頼性が低い場合などには、利用者がこれらの閾値を高く設定する。これにより、テキスト修正装置が認識結果を自動修正する区間を限定することができる。
このように、本変形例では、利用者が自動修正の度合いを変更することができ、与えられるテキストデータの性質に応じて調整することができる。
【0086】
なお、この変形例5では、認識結果NグラムとテキストNグラムとの間の類似度の閾値を変更可能とし、且つ、置換される単語の発音と置換する単語候補の発音との間の類似度の閾値をも変更可能としている。これに対し、後者(置換される単語の発音と置換する単語候補の発音との間の類似度の閾値)のみを変更可能とするように装置を構成しても良い。
【0087】
[変形例6]
本例では、誤り修正部80は、利用者(オペレータ)に対して修正を実行するか否かを確認し、利用者が肯定的な回答を入力した場合のみに実際に修正を実行し、その他の場合には修正処理を回避する。
図13は、本例における誤り修正部80の詳細な処理手順を示すフローチャートである。このフローチャート全体の処理が、図6のステップS16や図10のステップS29の処理に相当する。
【0088】
このフローチャートのステップS71において、誤り修正部80は、音声認識結果と、それに対応する修正候補を画面に表示する。ここで表示される音声認識結果は、テキストNグラムとのDPマッチング処理等により、誤りであると推定されている音声認識結果である。またこのとき、誤り修正部80は、利用者に対して「本当にこの修正を実行するか否か」を問うためのメッセージを画面に表示する。また、誤り修正部80は、利用者が「YES」か「NO」のいずれかを選択できるよう、ボタンの表示等を行なう。
これに対応して、利用者は、キーボードやマウス等の手段を用いて、「YES」または「NO」を選択できる。
次に、ステップS72において、誤り修正部80は、利用者からの入力が「修正する」ことを表わすものであるか否かを判定する。利用者からの入力が「修正する」ことを示すものである場合(ステップS72:YES)は、次のステップS73に進む。利用者からの入力が「修正しない」ことを示すものである場合(ステップS72:NO)、ステップS73の処理をスキップして、このフローチャート全体の処理を終了する。
そして、ステップS73に進んだ場合、誤り修正部80は、実際に修正を行なう。つまり、認識結果記憶部20を書き換えることにより、修正を行なう。
【0089】
つまり、本例における誤り修正部80は、認識結果Nグラムと、テキスト区間推定部60によって選択されたテキストNグラムに基づく修正候補とを表示し、利用者から当該修正を行うことを表す指示が入力された場合にのみ、前記修正を行う。
【0090】
テキスト修正装置1または2は、予め取得したテキストNグラムを利用して認識結果を自動的に修正することを可能とするものである。そして、本変形例によると、さらに、修正候補を本当に適用してよいかどうかを利用者に確認することができる。つまり、従来技術を用いる場合には利用者は認識結果が正しいかどうかを一字一句目視でチェックして、修正が必要な場合には手作業で修正する必要があったのに対して、本例を用いた場合には、利用者は提示される修正候補を確認し、その候補を適用するか否かをYES/NOの二者択一の形で入力するだけで、テキストの修正を行なうことができる。つまり、放送番組の字幕をリアルタイムに作成したりする場合に、オペレータの負荷や疲労を軽減することが可能となる。
【0091】
[変形例7]
変形例7は、第2の実施形態に適用する変形例である。
発音マッチング部70が、置換される単語の音素列と置換する単語の音素列との間の類似度が閾値より高いか否かに応じて、この置換を行なうかどうかを決定することを、既に述べた(図10のステップS28における判断)。変形例7では、発音マッチング部70が、置換される単語の音素列の長さ(音素数)に応じて異なる閾値を用いることができるようにしている。なお、音素数は、音素列の文字数をカウントすることにより得られる。例えば、単語「河浦」に対応する音素列は「kawaura」であり、その音素数は7である。
【0092】
図14は、音素数と類似度に応じた、置換すべき単語および置換すべきでない単語の分布を示すグラフである。同図において、(a)は一致率(%Corr)を類似度として用いた場合の分布を示し、(b)は一致精度(%Acc)を類似度として用いた場合の分布を示し、(c)は脱落率(%Del)を類似度として用いた場合の分布を示し、(d)は挿入率(%Ins)を類似度として用いた場合の分布を示す。
(a)から(d)までの各グラフにおいて、縦軸は、類似度として用いた数値(それぞれ、一致率、一致精度、脱落率、挿入率)である。また、横軸は、音素数である。
また、これらの図に示す分布は、テキスト修正装置2を用いて、実データに基づいて単語修正候補を求めたときに、各々の候補ごとに、その置換を行なうべきであるか否かを人が判断した結果に基づく。
【0093】
同図(a)が示すように、音素数に応じた所定の閾値よりも一致率が高い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも一致率が低い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
また、同図(b)が示すように、音素数に応じた所定の閾値よりも一致精度が高い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも一致精度が低い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
また、同図(c)が示すように、音素数に応じた所定の閾値よりも脱落率が低い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも脱落率が高い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
また、同図(d)が示すように、音素数に応じた所定の閾値よりも挿入率が低い領域(つまり類似度が高い領域)に、単語を置換すべき(置換OK)であるサンプルが多く分布し、その閾値よりも挿入率が高い領域(つまり類似度が低い領域)に、単語を置換すべきでない(置換NG)サンプルが多く分布している。
【0094】
つまり、類似度の算出のために用いる数値が一致率、一致精度、脱落率、挿入率のいずれであるかに応じて、置換対象の単語に対応する発音の音素数ごとに、適宜閾値を設定し、音素数と対応付けてそれらの閾値を予めメモリに記憶させておく。そして、発音マッチング部70は、図10のステップS28における判断をする際に、置換対象の単語の音素数をカウントし、その音素数に応じた閾値をメモリから読み出して使用する。
これにより、その置換を行なうべきか否かの判定をより良好に行い、テキスト修正の精度をよりいっそう向上させることができる。
【0095】
[変形例8]
変形例8は、上記の変形例7において、音素数ごとの類似度の閾値を決定する際に、機械学習処理を利用する。
具体的には、テキスト修正装置2を用いて、実データに基づいて単語修正候補を求めたときに、各々の候補ごとに、その置換を行なうべきであるか否かを人が判断し、人による判断結果を含んだデータを、教師データとして予め準備する。この教師データは、図14に示した各サンプルの集合に相当する。
そして、発音マッチング部70は機械学習処理手段を備えている。そして、類似度を算出するために一致率(%Corr)を用いる場合、上記の教師データに基づき、置換OKか置換NGかを判定するときの正解率を評価関数として、機械学習処理手段が機械学習処理を行なうことにより、単語発音の音素数ごとに一致率の最適閾値を求める。なお、機械学習処理手段としては、例えば、既存技術であるSVM(サポート・ベクタ・マシン)などを用いる。
一致率以外を用いて類似度を算出する場合も、上記と同様である。
【0096】
つまり、本例は、置換候補の単語ペアと、単語ペアのうちの一方の単語の発音音素数(音素列の長さ)と、単語ペアに関する発音類似度と、単語ペアが置換可能か否かを表すデータとから、機械学習処理により、単語ペアが置換可能か否かを決定するための発音類似度閾値を求め、得られた発音類似度閾値を設定する学習処理手段を具備している。
そして、発音マッチング部70は、学習処理手段によって設定された発音類似度閾値を用いた判定を行う。
【0097】
このような構成により、人の判断を必要とせず、教師データに基づいて自動的に、単語の音素数ごとに最適な発音類似度閾値を求めることができる。求められた発音類似度閾値を音素数と関連付けて設定値としてメモリに記憶しておく。そして、類似度の判定を行なう際には、音素数に応じて閾値をメモリから読み出して使用する。
【0098】
なお、上述した実施形態およびその変形例における、テキスト修正装置の一部または全部の機能をコンピュータで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0099】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
例えば、上述した実施形態では、認識結果NグラムとテキストNグラムとの間、あるいは単語の発音相互間でのマッチングにDPマッチングを用いて、類似度を算出したが、他のアルゴリズムによりマッチング処理を行うようにしても良い。
【産業上の利用可能性】
【0100】
本発明は、例えば、放送等のためのコンテンツ制作に利用することができる。また、会議録の作成に利用することができる。その他、一般に、音声認識装置による認識結果を修正して精度を高めるためる目的で利用することができる。
【符号の説明】
【0101】
1,2 テキスト修正装置
10 認識結果受信部
20 認識結果記憶部(認識結果単語列データ記憶部)
30 テキスト記憶部
40 テキストNグラム取得部
50 テキストNグラム記憶部(テキスト単語列データ記憶部)
60 テキスト区間推定部
70 発音マッチング部
71 発音辞書データ記憶部
80 誤り修正部
90 テキスト出力部
200 音声認識装置
【特許請求の範囲】
【請求項1】
テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、
音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、
音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、
前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、
前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、
前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部と、
を具備することを特徴とするテキスト修正装置。
【請求項2】
前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間における、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間のマッチング処理を行って、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間の発音類似度を算出し、算出された前記発音類似度が、予め設定された発音類似度閾値より高いか否かを判定する発音マッチング部、をさらに具備し、
前記誤り修正部は、前記発音類似度が前記発音類似度閾値より高い場合にのみ、実際に前記修正を行う、
ことを特徴とする請求項1に記載のテキスト修正装置。
【請求項3】
前記テキスト区間推定部は、修正候補として選択した前記テキスト単語列データの前記テキストデータ内における位置情報を記憶するとともに、前記認識結果単語列データと前記テキスト単語列データのマッチング処理を行う際には前回選択した前記テキスト単語列データの前記位置情報を読み出して、読み出した前記位置情報に基づいて限定された範囲の前記テキスト単語列データを、前記認識結果単語列データとのマッチング処理の対象とする、
ことを特徴とする請求項1または2のいずれか一項に記載のテキスト修正装置。
【請求項4】
前記テキスト単語列データ記憶部は、複数のコンテンツに対応する前記テキストデータに基づいて得られる前記テキスト単語列データを、前記コンテンツを識別する情報と関連付けて記憶するものであり、
前記テキスト区間推定部は、現コンテンツとは異なるコンテンツに対応する前記テキストデータの先頭から所定の範囲内に該当する前記テキスト単語列データを、さらに、前記認識結果単語列データとのマッチング処理の対象とする、
ことを特徴とする請求項3に記載のテキスト修正装置。
【請求項5】
前記テキスト区間推定部は、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さがN以上でない場合であっても、前記認識結果単語列データの長さが所定値M(Mは正整数であり且つ、M<N)以上である場合には、そのときの前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致するか否かを判定し、
前記テキスト出力部は、前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致した場合には、前記認識結果単語列データにおける一致部分の少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除する、
ことを特徴とする請求項1から4までのいずれか一項に記載のテキスト修正装置。
【請求項6】
前記誤り修正部は、前記認識結果単語列データと、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正候補とを表示し、当該修正を行うことを表す指示が入力された場合にのみ、前記修正を行う、
ことを特徴とする請求項1から請求項5までのいずれか一項に記載のテキスト修正装置。
【請求項7】
置換候補の単語ペアと、前記単語ペアのうちの一方の単語の発音音素数と、前記単語ペアに関する発音類似度と、前記単語ペアが置換可能か否かを表すデータとから、学習処理により、前記単語ペアが置換可能か否かを決定するための発音類似度閾値を求め、求められた前記発音類似度閾値を設定する学習処理手段を、さらに具備し、
前記発音マッチング部は、前記学習処理手段によって設定された前記発音類似度閾値を用いた判定を行う、
ことを特徴とする請求項2に記載のテキスト修正装置。
【請求項8】
前記発音類似度閾値の設定を書き換える閾値変更手段、をさらに具備することを特徴とする請求項2に記載のテキスト修正装置。
【請求項9】
テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、
音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、
音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、
前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、
前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、
前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部と、
を具備するテキスト修正装置としてコンピュータを機能させるプログラム。
【請求項1】
テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、
音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、
音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、
前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、
前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、
前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部と、
を具備することを特徴とするテキスト修正装置。
【請求項2】
前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間における、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間のマッチング処理を行って、前記認識結果単語列データの側の発音と選択された前記テキスト単語列データ側の発音との間の発音類似度を算出し、算出された前記発音類似度が、予め設定された発音類似度閾値より高いか否かを判定する発音マッチング部、をさらに具備し、
前記誤り修正部は、前記発音類似度が前記発音類似度閾値より高い場合にのみ、実際に前記修正を行う、
ことを特徴とする請求項1に記載のテキスト修正装置。
【請求項3】
前記テキスト区間推定部は、修正候補として選択した前記テキスト単語列データの前記テキストデータ内における位置情報を記憶するとともに、前記認識結果単語列データと前記テキスト単語列データのマッチング処理を行う際には前回選択した前記テキスト単語列データの前記位置情報を読み出して、読み出した前記位置情報に基づいて限定された範囲の前記テキスト単語列データを、前記認識結果単語列データとのマッチング処理の対象とする、
ことを特徴とする請求項1または2のいずれか一項に記載のテキスト修正装置。
【請求項4】
前記テキスト単語列データ記憶部は、複数のコンテンツに対応する前記テキストデータに基づいて得られる前記テキスト単語列データを、前記コンテンツを識別する情報と関連付けて記憶するものであり、
前記テキスト区間推定部は、現コンテンツとは異なるコンテンツに対応する前記テキストデータの先頭から所定の範囲内に該当する前記テキスト単語列データを、さらに、前記認識結果単語列データとのマッチング処理の対象とする、
ことを特徴とする請求項3に記載のテキスト修正装置。
【請求項5】
前記テキスト区間推定部は、前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さがN以上でない場合であっても、前記認識結果単語列データの長さが所定値M(Mは正整数であり且つ、M<N)以上である場合には、そのときの前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致するか否かを判定し、
前記テキスト出力部は、前記認識結果単語列データの先頭の長さMの部分が、前記テキストデータから予め得られた長さMの単語列のいずれかと一致した場合には、前記認識結果単語列データにおける一致部分の少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除する、
ことを特徴とする請求項1から4までのいずれか一項に記載のテキスト修正装置。
【請求項6】
前記誤り修正部は、前記認識結果単語列データと、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正候補とを表示し、当該修正を行うことを表す指示が入力された場合にのみ、前記修正を行う、
ことを特徴とする請求項1から請求項5までのいずれか一項に記載のテキスト修正装置。
【請求項7】
置換候補の単語ペアと、前記単語ペアのうちの一方の単語の発音音素数と、前記単語ペアに関する発音類似度と、前記単語ペアが置換可能か否かを表すデータとから、学習処理により、前記単語ペアが置換可能か否かを決定するための発音類似度閾値を求め、求められた前記発音類似度閾値を設定する学習処理手段を、さらに具備し、
前記発音マッチング部は、前記学習処理手段によって設定された前記発音類似度閾値を用いた判定を行う、
ことを特徴とする請求項2に記載のテキスト修正装置。
【請求項8】
前記発音類似度閾値の設定を書き換える閾値変更手段、をさらに具備することを特徴とする請求項2に記載のテキスト修正装置。
【請求項9】
テキストデータに基づいて得られるテキスト単語列データを記憶するテキスト単語列データ記憶部と、
音声認識結果に基づいて得られる認識結果単語列データを記憶する認識結果単語列データ記憶部と、
音声認識結果を逐次受信して前記認識結果単語列データ記憶部に書き込む認識結果受信部と、
前記認識結果単語列データ記憶部に書き込まれた認識結果単語列データの長さが予め定められた所定値N(Nは正整数)以上であるか否かを判定するとともに、当該長さがN以上であると判定されると、前記テキスト単語列データ記憶部に記憶されている前記テキスト単語列データと前記認識結果単語列データとのマッチング処理を行って前記テキスト単語列データと前記認識結果単語列データとの間の類似度を算出し、算出された前記類似度に基づいて前記テキスト単語列データを修正候補として選択するテキスト区間推定部と、
前記認識結果単語列データ内における、前記テキスト区間推定部によって選択された前記テキスト単語列データとの間の不一致区間について、前記テキスト区間推定部によって選択された前記テキスト単語列データに基づく修正を行う誤り修正部と、
前記認識結果単語列データの少なくとも一部分を出力するとともに、前記認識結果単語列データのうち出力した部分を前記認識結果単語列データ記憶部から削除するテキスト出力部と、
を具備するテキスト修正装置としてコンピュータを機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−128188(P2012−128188A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−279647(P2010−279647)
【出願日】平成22年12月15日(2010.12.15)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年12月15日(2010.12.15)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】
[ Back to top ]